:root{
    --asfalto:#1c2733; --asfalto2:#2b3a4a; --placa:#f5b800; --placa2:#d99f00;
    --pista:#eef1f4; --neblina:#5b6b7a; --alerta:#c62828; --ok:#1e7d3a;
  }
  *{box-sizing:border-box}
  html,body{margin:0;height:100%;background:var(--pista);color:var(--asfalto);font-family:Barlow,system-ui,sans-serif;-webkit-tap-highlight-color:transparent}
  button,input,textarea{font:inherit;color:inherit}
  button{cursor:pointer}
  a{color:inherit}
  :focus-visible{outline:3px solid var(--placa);outline-offset:2px}
  h1,h2,h3{margin:0;letter-spacing:-.01em}
  p{margin:0}

  .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 20px;border-radius:12px;border:0;font-size:16px;font-weight:700;text-decoration:none}
  .btn-primary{background:var(--placa);color:var(--asfalto)}
  .btn-primary:hover{background:var(--placa2)}
  .btn-dark{background:var(--asfalto);color:#fff}
  .btn-ghost{background:transparent;color:var(--asfalto)}
  .btn-outline{background:#fff;border:2px solid var(--asfalto)}
  .btn-full{width:100%}
  .btn:disabled{opacity:.55;cursor:not-allowed}

  .logo{display:inline-flex;align-items:center;gap:10px;font-weight:800;font-size:18px;text-decoration:none}
  .logo i{width:26px;height:26px;transform:rotate(45deg);background:var(--placa);border:2px solid var(--asfalto);border-radius:5px;display:grid;place-items:center}
  .logo i::after{content:"";width:7px;height:7px;border-radius:50%;background:var(--asfalto)}

  /* Landing */
  .l-header{position:sticky;top:0;z-index:10;background:rgba(255,255,255,.93);backdrop-filter:blur(6px);border-bottom:1px solid rgba(0,0,0,.06)}
  .wrap{max-width:1100px;margin:0 auto;padding:0 20px}
  .l-header .wrap{height:64px;display:flex;align-items:center;justify-content:space-between;gap:12px}
  .l-nav{display:none;gap:24px;font-weight:600;font-size:14px}
  .l-nav a{text-decoration:none}
  @media(min-width:768px){.l-nav{display:flex}}
  .hero{background:var(--asfalto);color:#fff}
  .hero .wrap{display:grid;gap:40px;padding-top:64px;padding-bottom:72px}
  @media(min-width:768px){.hero .wrap{grid-template-columns:1.2fr 1fr;padding-top:96px;padding-bottom:96px}}
  .hero h1{font-size:clamp(36px,7vw,60px);line-height:1.04;font-weight:800}
  .hero .city{color:var(--placa);font-weight:600;margin-bottom:16px}
  .hero p.sub{margin-top:20px;font-size:18px;color:rgba(255,255,255,.8);max-width:560px}
  .road{position:relative;min-height:280px;border-radius:24px;background:var(--asfalto2);overflow:hidden;display:none}
  @media(min-width:768px){.road{display:block}}
  .road::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:12px;transform:translateX(-50%);background:repeating-linear-gradient(to bottom,var(--placa) 0 48px,transparent 48px 88px)}
  .road .sign{position:absolute;left:36px;top:40px;width:84px;height:84px;transform:rotate(45deg);background:var(--placa);border:4px solid var(--asfalto);border-radius:14px}
  section.block{padding:64px 0}
  section.block h2{font-size:30px;font-weight:800}
  .steps{list-style:none;padding:0;margin:32px 0 0;display:grid;gap:24px}
  @media(min-width:768px){.steps{grid-template-columns:repeat(3,1fr)}}
  .steps li{display:flex;gap:16px}
  .num{flex:none;width:40px;height:40px;border-radius:50%;background:var(--placa);display:grid;place-items:center;font-weight:800;font-size:18px}
  .steps h3{font-size:18px}
  .muted{color:var(--neblina)}
  .grid2{display:grid;gap:32px}
  @media(min-width:768px){.grid2{grid-template-columns:1fr 1fr}}
  .feat{list-style:none;padding:0;margin:0;display:grid;gap:14px}
  .feat li{background:#fff;border-radius:16px;padding:20px}
  .price-card{max-width:420px;margin:0 auto;border:2px solid var(--asfalto);border-radius:24px;padding:32px;text-align:center;background:#fff}
  .price{font-size:52px;font-weight:800;margin-top:14px}
  .price small{font-size:20px;color:var(--neblina);font-weight:600}
  details{background:#fff;padding:16px 20px;border-bottom:1px solid rgba(0,0,0,.08)}
  details:first-of-type{border-radius:16px 16px 0 0}
  details:last-of-type{border-radius:0 0 16px 16px;border-bottom:0}
  summary{font-weight:700;cursor:pointer;list-style:none}
  details p{margin-top:8px;color:var(--neblina)}
  footer{background:var(--asfalto);color:rgba(255,255,255,.8);font-size:14px}
  footer .wrap{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;padding-top:36px;padding-bottom:60px}
  footer nav{display:flex;flex-wrap:wrap;gap:18px}

  /* Auth */
  .auth{min-height:100dvh;display:flex;flex-direction:column;padding:20px 20px 60px}
  .auth-card{width:100%;max-width:440px;margin:32px auto 0;background:#fff;border-radius:24px;padding:28px}
  .auth-card h1{font-size:26px;font-weight:800}
  .form{display:flex;flex-direction:column;gap:16px;margin-top:22px}
  .field{display:flex;flex-direction:column;gap:6px}
  .field label{font-size:14px;font-weight:700}
  .field input,textarea{min-height:48px;border-radius:12px;border:1px solid rgba(0,0,0,.18);padding:0 16px;font-size:16px;background:#fff;outline:0}
  textarea{padding:12px;min-height:90px;resize:vertical;width:100%}
  .field input:focus,textarea:focus{border-color:var(--asfalto)}
  .field.err input{border-color:var(--alerta)}
  .field .msg{font-size:13px;color:var(--alerta)}
  .field .hint{font-size:13px;color:var(--neblina)}
  .check{display:flex;gap:12px;align-items:flex-start;font-size:14px}
  .check input{width:20px;height:20px;accent-color:var(--asfalto);margin-top:1px}
  .center{text-align:center}
  .notice{border-radius:12px;padding:12px 14px;font-size:14px;font-weight:600}
  .notice.ok{background:rgba(30,125,58,.12);color:var(--ok)}
  .notice.err{background:rgba(198,40,40,.1);color:var(--alerta)}

  /* Onboarding */
  .onb{min-height:100dvh;background:var(--asfalto);color:#fff;display:flex;flex-direction:column;padding:24px 24px 64px}
  .onb .body{flex:1;display:flex;flex-direction:column;justify-content:center;max-width:440px;margin:0 auto;width:100%}
  .onb .big{width:76px;height:76px;transform:rotate(45deg);background:var(--placa);border:4px solid #fff;border-radius:16px;margin-bottom:34px}
  .onb h1{font-size:30px;font-weight:800;line-height:1.1}
  .onb p{margin-top:14px;font-size:18px;color:rgba(255,255,255,.8)}
  .dots{display:flex;justify-content:center;gap:8px;margin-bottom:22px}
  .dots span{height:8px;width:8px;border-radius:8px;background:rgba(255,255,255,.3);transition:width .2s}
  .dots span.on{width:30px;background:var(--placa)}

  /* Map */
  .map-screen{position:fixed;inset:0;overflow:hidden}
  #map{position:absolute;inset:0}
  .map-header{position:absolute;left:12px;right:12px;top:max(env(safe-area-inset-top),12px);z-index:500;display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.96);border-radius:16px;padding:8px 10px;box-shadow:0 4px 14px rgba(0,0,0,.12)}
  .icon-btn{width:44px;height:44px;border-radius:50%;border:0;background:transparent;display:grid;place-items:center;position:relative}
  .icon-btn:hover{background:rgba(0,0,0,.05)}
  .icon-btn svg{width:22px;height:22px}
  .badge{position:absolute;top:5px;right:5px;min-width:16px;height:16px;border-radius:8px;background:var(--placa);font-size:10px;font-weight:800;display:grid;place-items:center}
  .fab-wrap{position:absolute;left:0;right:0;bottom:calc(max(env(safe-area-inset-bottom),20px) + 24px);z-index:500;display:flex;justify-content:center}
  .fab{min-height:64px;padding:0 32px;border-radius:40px;border:0;background:var(--placa);font-size:19px;font-weight:800;box-shadow:0 8px 20px rgba(0,0,0,.25);display:flex;align-items:center;gap:8px}
  .locate{position:absolute;right:16px;bottom:calc(max(env(safe-area-inset-bottom),20px) + 110px);z-index:500;width:50px;height:50px;border-radius:50%;background:#fff;border:0;box-shadow:0 4px 12px rgba(0,0,0,.18);display:grid;place-items:center}
  .locate svg{width:22px;height:22px}
  .pick-msg{position:absolute;left:16px;right:16px;top:max(env(safe-area-inset-top),16px);z-index:500;background:var(--asfalto);color:#fff;border-radius:16px;padding:12px 16px;text-align:center;font-weight:700}
  .pick-pin{position:absolute;left:50%;top:50%;z-index:500;transform:translate(-50%,-100%);pointer-events:none;width:46px;height:46px}
  .pick-actions{position:absolute;left:16px;right:16px;bottom:calc(max(env(safe-area-inset-bottom),20px) + 24px);z-index:500;display:flex;flex-direction:column;gap:8px;max-width:520px;margin:0 auto}
  .leaflet-control-attribution{font-size:10px}
  .leaflet-bottom{bottom:26px}

  /* Sheet */
  .sheet-bg{position:fixed;inset:0;z-index:1000;background:rgba(28,39,51,.42);display:flex;align-items:flex-end;justify-content:center}
  @media(min-width:640px){.sheet-bg{align-items:center}}
  .sheet{width:100%;max-width:520px;max-height:88dvh;overflow:auto;background:#fff;border-radius:24px 24px 0 0;padding:12px 20px calc(max(env(safe-area-inset-bottom),20px) + 26px);animation:up .22s cubic-bezier(.2,.8,.2,1)}
  @media(min-width:640px){.sheet{border-radius:24px}}
  @keyframes up{from{transform:translateY(100%)}to{transform:none}}
  .grab{width:40px;height:6px;border-radius:6px;background:rgba(0,0,0,.14);margin:0 auto 12px}
  .sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
  .sheet-head h2{font-size:19px;font-weight:800}
  .cat-ico{flex:none;width:48px;height:48px;border-radius:14px;display:grid;place-items:center;color:#fff}
  .cat-ico svg{width:24px;height:24px}
  .stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}
  .stats div{background:var(--pista);border-radius:12px;padding:12px;font-size:14px}
  .stats b{display:block}
  .actions{display:flex;flex-direction:column;gap:8px;margin-top:20px}
  .link-quiet{background:none;border:0;color:var(--neblina);text-decoration:underline;font-size:14px;min-height:44px}
  .chips{display:flex;flex-wrap:wrap;gap:8px}
  .chip{min-height:44px;padding:0 16px;border-radius:30px;border:2px solid rgba(0,0,0,.14);background:#fff;font-weight:700;font-size:14px}
  .chip[aria-pressed=true]{background:var(--asfalto);border-color:var(--asfalto);color:#fff}
  .toggle{display:flex;align-items:center;justify-content:space-between;min-height:52px;background:var(--pista);border-radius:12px;padding:0 16px;margin-top:18px;font-weight:700}
  .toggle input{width:22px;height:22px;accent-color:var(--asfalto)}
  .radio{display:flex;align-items:center;gap:12px;min-height:50px;border:2px solid rgba(0,0,0,.1);border-radius:12px;padding:0 14px;font-weight:700;margin-bottom:8px}
  .radio:has(input:checked){border-color:var(--asfalto)}
  .radio input{width:20px;height:20px;accent-color:var(--asfalto)}

  /* Flow */
  .flow{position:fixed;inset:0;z-index:900;background:#fff;display:flex;flex-direction:column}
  .flow-head{display:flex;align-items:center;gap:6px;padding:max(env(safe-area-inset-top),10px) 10px 8px;border-bottom:1px solid rgba(0,0,0,.06)}
  .flow-head h1{flex:1;text-align:center;font-size:17px;font-weight:800}
  .flow-body{flex:1;overflow:auto;padding:24px 20px 60px}
  .flow-inner{max-width:520px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
  .choice{display:flex;align-items:center;gap:16px;min-height:80px;padding:0 20px;border-radius:18px;border:2px solid rgba(0,0,0,.1);background:#fff;text-align:left}
  .choice.main{border-color:var(--asfalto)}
  .choice svg{width:28px;height:28px;flex:none}
  .choice b{display:block;font-size:18px}
  .choice small{color:var(--neblina)}
  .mini-map{height:200px;border-radius:18px;overflow:hidden}
  .cats{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  @media(min-width:520px){.cats{grid-template-columns:repeat(3,1fr)}}
  .cat{min-height:112px;border-radius:18px;border:2px solid rgba(0,0,0,.1);background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:10px;font-weight:700;font-size:14px;text-align:center;line-height:1.15}
  .cat[aria-pressed=true]{border-color:var(--asfalto);background:var(--pista)}
  .cat .cat-ico{width:44px;height:44px;border-radius:12px}
  .review{background:var(--pista);border-radius:18px}
  .review div{padding:14px 16px;border-bottom:1px solid rgba(0,0,0,.05)}
  .review div:last-child{border:0}
  .review small{display:block;color:var(--neblina);font-size:12px}
  .dup{border:2px solid rgba(0,0,0,.1);border-radius:18px;padding:16px}

  /* Pages */
  .page-head{display:flex;align-items:center;gap:6px;background:#fff;padding:max(env(safe-area-inset-top),12px) 10px 12px}
  .page-head h1{font-size:21px;font-weight:800}
  .page{max-width:520px;margin:16px auto 0;padding:0 16px 70px;display:flex;flex-direction:column;gap:14px}
  .card{background:#fff;border-radius:18px;padding:20px}
  .menu{background:#fff;border-radius:18px;overflow:hidden}
  .menu a,.menu button{display:flex;align-items:center;gap:12px;min-height:56px;padding:0 16px;font-weight:700;text-decoration:none;border:0;background:none;width:100%;border-bottom:1px solid rgba(0,0,0,.05);text-align:left}
  .menu svg{width:20px;height:20px}
  .pill{border-radius:30px;padding:3px 12px;font-size:13px;font-weight:800}
  .pill.ok{background:rgba(30,125,58,.14);color:var(--ok)}
  .pill.gray{background:rgba(0,0,0,.08)}
  .contrib{display:flex;gap:12px;background:#fff;border-radius:18px;padding:16px}
  .contrib .cat-ico{width:44px;height:44px;border-radius:12px}

  /* Toast */
  #toasts{position:fixed;left:0;right:0;top:max(env(safe-area-inset-top),12px);z-index:3000;display:flex;flex-direction:column;align-items:center;gap:8px;padding:0 16px;pointer-events:none}
  .toast{background:var(--asfalto);color:#fff;border-radius:12px;padding:12px 16px;font-weight:700;font-size:14px;box-shadow:0 8px 20px rgba(0,0,0,.2);animation:tin .18s ease-out;max-width:440px}
  .toast.err{background:var(--alerta)}
  @keyframes tin{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
  .spin{animation:sp 1s linear infinite}
  @keyframes sp{to{transform:rotate(360deg)}}
  @media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* ---------- Complementos do site ---------- */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.btn-danger{background:var(--alerta);color:#fff}
.btn .spin{width:18px;height:18px}
.offline{position:fixed;left:0;right:0;top:0;z-index:2500;background:var(--asfalto);color:#fff;text-align:center;font-weight:700;font-size:14px;padding:max(env(safe-area-inset-top),8px) 12px 8px}
.loading-screen{position:fixed;inset:0;display:grid;place-items:center;background:var(--pista)}
.loading-screen svg{width:34px;height:34px;color:var(--neblina)}
.zoom-hint{position:absolute;left:50%;top:92px;transform:translateX(-50%);z-index:500;background:var(--asfalto);color:#fff;border-radius:30px;padding:8px 16px;font-size:14px;font-weight:700;white-space:nowrap}
.pin-ico{width:34px;height:34px;border-radius:50%;border:3px solid #fff;display:grid;place-items:center;color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.pin-ico svg{width:17px;height:17px}
.cluster-ico{width:40px;height:40px;border-radius:50%;background:var(--asfalto);border:3px solid var(--placa);color:#fff;font-weight:800;display:grid;place-items:center}
.leaflet-div-icon{background:none;border:0}
.demo-tag{color:var(--alerta);font-size:12px;font-weight:800}
.leaflet-bottom{bottom:0}

/* Admin */
.admin-top{position:sticky;top:0;z-index:20;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.admin-top .row{display:flex;align-items:center;justify-content:space-between;padding:max(env(safe-area-inset-top),12px) 16px 8px}
.admin-nav{display:flex;gap:4px;overflow-x:auto;padding:0 12px 8px}
.admin-nav a{flex:none;min-height:44px;display:inline-flex;align-items:center;padding:0 16px;border-radius:30px;font-weight:700;font-size:14px;text-decoration:none}
.admin-nav a[aria-current=page]{background:var(--asfalto);color:#fff}
.admin-main{max-width:1100px;margin:0 auto;padding:24px 16px 60px;display:flex;flex-direction:column;gap:16px}
.admin-main h1{font-size:26px;font-weight:800}
.kpis{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(min-width:768px){.kpis{grid-template-columns:repeat(4,1fr)}}
.kpi{background:#fff;border-radius:16px;padding:16px}
.kpi p{color:var(--neblina);font-size:14px}
.kpi b{display:block;font-size:24px;font-weight:800;margin-top:4px}
.bars{display:flex;align-items:flex-end;gap:6px;height:160px;margin-top:16px}
.bars div{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;height:100%;font-size:10px;color:var(--neblina)}
.bars i{display:block;width:100%;background:var(--placa);border-radius:4px 4px 0 0}
.filters{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media(min-width:768px){.filters{grid-template-columns:repeat(5,1fr)}}
.filters input,.filters select,.inp{min-height:48px;border-radius:12px;border:1px solid rgba(0,0,0,.18);background:#fff;padding:0 12px;font:inherit;font-size:15px;width:100%}
.table-card{background:#fff;border-radius:16px;overflow:hidden}
.table-card table{width:100%;border-collapse:collapse;font-size:14px}
.table-card th{background:var(--pista);text-align:left;padding:12px}
.table-card td{padding:12px;border-top:1px solid rgba(0,0,0,.06);vertical-align:top}
@media(max-width:767px){.table-card thead{display:none}.table-card tr{display:block;padding:10px 12px;border-top:1px solid rgba(0,0,0,.06)}.table-card td{display:block;padding:2px 0;border:0}}
.tag{display:inline-block;border-radius:30px;padding:2px 10px;font-size:12px;font-weight:800;background:rgba(0,0,0,.08)}
.tag.ok{background:rgba(30,125,58,.14);color:var(--ok)}
.tag.bad{background:rgba(198,40,40,.12);color:var(--alerta)}
.tag.dark{background:var(--asfalto);color:#fff}
.row-actions{display:flex;flex-wrap:wrap;gap:8px}
.row-actions .btn{min-height:42px;padding:0 14px;font-size:14px}
.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 16px;font-size:14px;margin-top:8px}
.kv dt{color:var(--neblina)}
.two{display:grid;gap:16px}
@media(min-width:768px){.two{grid-template-columns:1fr 1fr}}
.list{list-style:none;padding:0;margin:8px 0 0;font-size:14px}
.list li{padding:8px 0;border-top:1px solid rgba(0,0,0,.06)}
.list li:first-child{border-top:0}
.legal{max-width:720px;margin:0 auto;padding:32px 20px 60px;line-height:1.6}
.legal h1{font-size:30px;font-weight:800}
.legal h2{font-size:20px;margin-top:28px}
.legal p,.legal ul{margin-top:10px}
.note{background:rgba(245,184,0,.25);border-radius:12px;padding:12px 14px;font-size:14px;font-weight:600}

/* ---------- Tela de rota ---------- */
.route-panel{position:absolute;left:12px;right:12px;top:max(env(safe-area-inset-top),12px);z-index:500;background:#fff;border-radius:18px;padding:12px;box-shadow:0 6px 20px rgba(0,0,0,.15);display:flex;flex-direction:column;gap:10px;max-width:560px;margin:0 auto}
.route-head{display:flex;align-items:center;gap:6px}
.suggest{position:absolute;left:0;right:0;top:calc(100% + 6px);background:#fff;border-radius:14px;box-shadow:0 8px 24px rgba(0,0,0,.18);overflow:hidden;z-index:600;max-height:260px;overflow-y:auto}
.sug-item{display:block;width:100%;text-align:left;border:0;background:none;padding:12px 14px;font-weight:700;border-bottom:1px solid rgba(0,0,0,.06);cursor:pointer}
.sug-item:hover{background:var(--pista)}
.sug-item span{display:block;font-weight:400;font-size:13px;color:var(--neblina);margin-top:2px}
.route-summary{position:absolute;left:0;right:0;bottom:0;z-index:500;background:#fff;border-radius:24px 24px 0 0;padding:10px 18px max(env(safe-area-inset-bottom),20px);box-shadow:0 -4px 20px rgba(0,0,0,.15);max-width:560px;margin:0 auto}
.route-info{display:flex;align-items:center;justify-content:space-between;gap:10px}
.route-info b{font-size:22px}
.route-alert{position:fixed;left:12px;right:12px;bottom:calc(max(env(safe-area-inset-bottom),20px) + 150px);z-index:1500;background:var(--alerta);color:#fff;border-radius:16px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px;box-shadow:0 8px 24px rgba(0,0,0,.25);max-width:560px;margin:0 auto;font-weight:700;font-size:14px}
.route-alert svg{width:18px;height:18px;vertical-align:-3px}
.route-alert .btn{min-height:40px;padding:0 14px;white-space:nowrap}

/* ---------- Navegação no site ---------- */
.nav-bar{position:fixed;left:12px;right:12px;top:max(env(safe-area-inset-top),12px);z-index:1200;background:var(--asfalto);color:#fff;border-radius:18px;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 6px 20px rgba(0,0,0,.25);max-width:560px;margin:0 auto}
.nav-step{display:flex;flex-direction:column;gap:2px;min-width:0}
.nav-step span{font-size:15px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav-step b{font-size:22px;color:var(--placa)}
.nav-bar .btn{min-height:44px;white-space:nowrap}

/* ---------- Aba fixa no rodapé ---------- */
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:800;display:flex;background:#fff;border-top:1px solid rgba(0,0,0,.08);padding-bottom:env(safe-area-inset-bottom)}
.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:58px;text-decoration:none;color:var(--neblina);font-size:11px;font-weight:700}
.tabbar a svg{width:24px;height:24px}
.tabbar a[aria-current=page]{color:var(--asfalto)}
.tabbar a[aria-current=page] svg{color:var(--placa-2,#d99f00)}
/* espaço para a barra não cobrir o conteúdo das páginas com rolagem */
body.has-tabbar .page{padding-bottom:84px}
/* no mapa/rota, subir os controles flutuantes acima da barra */
body.has-tabbar .fab-wrap{bottom:calc(max(env(safe-area-inset-bottom),20px) + 74px)}
body.has-tabbar .locate{bottom:calc(max(env(safe-area-inset-bottom),20px) + 158px)}
body.has-tabbar .leaflet-bottom{bottom:60px}
body.has-tabbar .route-summary{bottom:64px}
