/* ═══════════════════════════════════════════════════════════════════════════
   AGENCIADOR · sistema visual v3
   Paleta tirada das duas referências de logística do dossiê: Terminal Industries
   e Flock Freight — preto absoluto com UM acento verde-limão ácido. O osso claro
   vem do The Modern House e serve de contraponto nas páginas editoriais.
   Superfícies em Liquid Glass: refração na aresta, brilho especular no topo,
   tinta adaptativa. Não é o card fosco de 2020.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Em pedidos separados: juntas, a Fontshare devolve General Sans no lugar da Switzer. */
@import url('https://api.fontshare.com/v2/css?f[]=clash-display@400,500,600,700&display=swap');
@import url('https://api.fontshare.com/v2/css?f[]=switzer@400,500,600,700&display=swap');

:root{
  /* base */
  --void:#07080A;      --ink:#0B0D10;       --surf:#12151A;      --surf-2:#191D24;
  --bone:#EFF0EA;      --bone-2:#E2E4DA;
  /* tinta */
  --t1:#F5F7F2;        --t2:#A2ABA6;        --t3:#6B746F;
  --t1-d:#0B0D10;      --t2-d:#565C58;
  /* acento */
  --lime:#CBFF3C;      --lime-d:#AEE01F;    --lime-g:rgba(203,255,60,.16);
  /* estrutura */
  --hair:rgba(255,255,255,.09);
  --hair-2:rgba(255,255,255,.16);
  --hair-lt:rgba(11,13,16,.10);
  --r:18px;  --r-s:12px;  --r-p:999px;
  --gut:30px;
}

*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;background:var(--void);max-width:100%;overflow-x:clip}
body{
  font-family:Switzer,system-ui,-apple-system,'Segoe UI',sans-serif;font-weight:400;
  background:var(--void);color:var(--t1);font-size:16px;line-height:1.55;
  -webkit-font-smoothing:antialiased;max-width:100%;overflow-x:clip;
}
img,svg,video{display:block;max-width:100%}
/* hidden precisa vencer qualquer display definido por classe */
[hidden]{display:none!important}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}
input,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--lime);outline-offset:3px;border-radius:4px}
::selection{background:var(--lime);color:var(--ink)}

/* ── tipografia ─────────────────────────────────────────────────────────── */
.d1,.d2,.d3,.d4{font-family:'Clash Display',Switzer,sans-serif;font-weight:600;letter-spacing:-.018em;line-height:1.03}
.d1{font-size:clamp(38px,5.4vw,74px)}
.d2{font-size:clamp(29px,3.5vw,48px)}
.d3{font-size:clamp(24px,2.3vw,33px);line-height:1.08}
.d4{font-size:21px;line-height:1.12;letter-spacing:-.022em}
.lab{font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--t3);font-family:Switzer,sans-serif}
.lab-lm{color:var(--lime)}
.lead{font-size:17.5px;line-height:1.55;color:var(--t2);font-weight:400}
.num{font-family:'Clash Display',Switzer,sans-serif;font-variant-numeric:tabular-nums;font-weight:600;letter-spacing:-.03em}

/* ── LIQUID GLASS ───────────────────────────────────────────────────────────
   Três camadas: tinta translúcida com gradiente vertical, aresta refratada por
   máscara, e brilho especular no topo. O blur satura para a cor de baixo
   atravessar — é o que separa isto de um retângulo cinza fosco. */
.glass{
  position:relative;border-radius:var(--r);isolation:isolate;
  background:linear-gradient(168deg,rgba(255,255,255,.13) 0%,rgba(255,255,255,.045) 44%,rgba(255,255,255,.075) 100%);
  backdrop-filter:blur(26px) saturate(180%);
  -webkit-backdrop-filter:blur(26px) saturate(180%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.34),
    inset 0 -1px 0 rgba(255,255,255,.07),
    0 26px 64px -22px rgba(0,0,0,.8),
    0 2px 10px -4px rgba(0,0,0,.5);
}
.glass::before{
  content:'';position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;
  background:linear-gradient(150deg,rgba(255,255,255,.55),rgba(255,255,255,.07) 32%,rgba(255,255,255,0) 62%,rgba(255,255,255,.22));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  mask-composite:exclude;
}
/* brilho que corre na aresta superior — a "lente" */
.glass::after{
  content:'';position:absolute;left:8%;right:8%;top:0;height:1px;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.75),transparent);
}
.glass-lt{
  background:linear-gradient(168deg,rgba(255,255,255,.82) 0%,rgba(255,255,255,.6) 46%,rgba(255,255,255,.72) 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 20px 48px -24px rgba(11,13,16,.42);
  color:var(--t1-d);
}
.glass-lt::before{background:linear-gradient(150deg,rgba(255,255,255,.95),rgba(11,13,16,.06) 34%,transparent 64%,rgba(255,255,255,.6))}
.glass-lt::after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.95),transparent)}

/* ── grade ──────────────────────────────────────────────────────────────── */
.wrap{max-width:1340px;margin:0 auto;padding:0 var(--gut)}
.claro{background:var(--bone);color:var(--t1-d)}
.claro .lab{color:var(--t2-d)}
.claro .lead{color:#4A514C}

/* ── botões ─────────────────────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;height:48px;padding:0 24px;
  border-radius:var(--r-p);font-family:Switzer,system-ui,sans-serif;font-size:14.5px;font-weight:600;letter-spacing:-.005em;
  white-space:nowrap;transition:transform .18s cubic-bezier(.16,1,.3,1),background .18s,box-shadow .18s;
  background:var(--lime);color:var(--ink);position:relative}
.btn:hover{background:var(--lime-d);transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn-g{background:rgba(255,255,255,.10);color:var(--t1);backdrop-filter:blur(18px) saturate(160%);
  -webkit-backdrop-filter:blur(18px) saturate(160%);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),inset 0 0 0 1px rgba(255,255,255,.13)}
.btn-g:hover{background:rgba(255,255,255,.17)}
.btn-o{background:transparent;color:var(--t1);box-shadow:inset 0 0 0 1.5px var(--hair-2)}
.btn-o:hover{background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1.5px var(--hair-2)}
.claro .btn-o{color:var(--t1-d);box-shadow:inset 0 0 0 1.5px rgba(11,13,16,.22)}
.claro .btn-o:hover{background:rgba(11,13,16,.06)}
.btn-d{background:var(--ink);color:var(--t1)}
.btn-d:hover{background:#000}
.btn-s{height:40px;padding:0 17px;font-size:13.5px}
.btn-b{height:56px;padding:0 30px;font-size:16px}
.lnk{font-size:14.5px;font-weight:500;display:inline-flex;align-items:center;gap:7px;color:var(--lime)}
.lnk:hover{gap:11px}
.lnk svg{transition:transform .2s}
.claro .lnk{color:var(--t1-d);border-bottom:1.5px solid rgba(11,13,16,.2);padding-bottom:2px}

/* ── HEADER: barra de vidro flutuante ───────────────────────────────────── */
.top{position:fixed;top:14px;left:var(--gut);right:var(--gut);z-index:600;border-radius:var(--r-p)}
.top-in{display:flex;align-items:center;gap:34px;height:62px;padding:0 10px 0 24px}
.marca{font-family:'Clash Display';font-weight:600;font-size:21px;letter-spacing:-.04em;display:flex;align-items:center;gap:8px}
.marca i{width:8px;height:8px;border-radius:50%;background:var(--lime);font-style:normal;box-shadow:0 0 12px var(--lime)}
.top nav{display:flex;gap:4px}
.top nav a{font-size:14px;font-weight:500;color:var(--t2);padding:8px 13px;border-radius:var(--r-p);transition:.16s}
.top nav a:hover{color:var(--t1);background:rgba(255,255,255,.07)}
.top nav a[aria-current]{color:var(--ink);background:var(--lime)}
.top .dir{margin-left:auto;display:flex;align-items:center;gap:8px}
.top .dir .lnk{color:var(--t2);font-size:14px;padding:0 10px}
.top .dir .lnk:hover{color:var(--t1)}
.espaco{height:92px}

/* ── HERO com vídeo ─────────────────────────────────────────────────────── */
.hero{position:relative;min-height:min(880px,100vh);display:flex;align-items:center;overflow:hidden;background:var(--void)}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;filter:saturate(.85) contrast(1.04) brightness(1.5)}
.hero-scrim{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(96deg,rgba(7,8,10,.93) 0%,rgba(7,8,10,.84) 26%,rgba(7,8,10,.5) 48%,rgba(7,8,10,.16) 70%,rgba(7,8,10,.05) 100%),
    linear-gradient(180deg,rgba(7,8,10,.7) 0%,transparent 22%,transparent 60%,rgba(7,8,10,.92) 100%)}
.hero-in{position:relative;z-index:2;width:100%;max-width:1340px;margin:0 auto;padding:128px var(--gut) 56px}
.hero-col{max-width:660px}
.hero .d1{margin:18px 0 22px;text-wrap:balance}
.hero .lead{max-width:44ch}
.vivo{display:inline-flex;align-items:center;gap:9px;padding:7px 14px 7px 11px;border-radius:var(--r-p);
  background:rgba(203,255,60,.12);box-shadow:inset 0 0 0 1px rgba(203,255,60,.3);font-size:12px;font-weight:600;color:var(--lime);letter-spacing:.02em}
.vivo b{width:6px;height:6px;border-radius:50%;background:var(--lime);box-shadow:0 0 10px var(--lime)}

/* painel de busca em vidro */
.painel{margin-top:34px;max-width:700px;padding:8px}
.painel-abas{display:flex;gap:4px;padding:0 0 8px}
.painel-abas button{flex:1;height:40px;border-radius:var(--r-p);font-size:13.5px;font-weight:600;color:var(--t2);transition:.16s}
.painel-abas button[aria-selected="true"]{background:rgba(255,255,255,.14);color:var(--t1);box-shadow:inset 0 1px 0 rgba(255,255,255,.24)}
.painel-campos{display:grid;grid-template-columns:1fr 1fr auto;gap:6px;align-items:stretch}
.campo{padding:11px 16px;border-radius:var(--r-s);background:rgba(255,255,255,.07);min-width:0;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.13);transition:background .16s}
.campo:focus-within{background:rgba(255,255,255,.13)}
.campo label{display:block;font-size:9.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--t3);margin-bottom:2px}
.campo select,.campo input{width:100%;border:0;outline:0;font-size:15px;font-weight:500;background:transparent;color:var(--t1)}
.campo select option{background:var(--surf);color:var(--t1)}
.painel .btn{height:auto;align-self:stretch;padding:0 26px}
.prova{display:flex;align-items:baseline;gap:14px 30px;margin-top:30px;flex-wrap:wrap}
.prova div{display:flex;align-items:baseline;gap:8px;min-width:0}
.prova b{font-family:'Clash Display';font-size:24px;font-weight:600;letter-spacing:-.04em;color:var(--t1);font-variant-numeric:tabular-nums}
.prova span{font-size:13px;color:var(--t2);white-space:nowrap}
.hero-pe{position:absolute;left:var(--gut);right:var(--gut);bottom:22px;z-index:2;display:flex;
  justify-content:space-between;align-items:center;gap:20px;font-size:11px;color:var(--t3);flex-wrap:wrap}

/* ── seções ─────────────────────────────────────────────────────────────── */
.sec{padding:104px 0;position:relative}
.sec-hair{border-top:1px solid var(--hair)}
.claro.sec-hair{border-top-color:var(--hair-lt)}
.cab{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:60px;align-items:end;margin-bottom:46px}
.cab .lead{margin-top:14px;max-width:50ch;font-size:16px}
.cab .dir{justify-self:end}

/* ── cartões de transportador ───────────────────────────────────────────── */
.grade{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.card{border-radius:var(--r);padding:20px;display:flex;flex-direction:column;gap:15px;min-width:0;
  background:var(--surf);box-shadow:inset 0 0 0 1px var(--hair);transition:.22s cubic-bezier(.16,1,.3,1)}
.card:hover{background:var(--surf-2);transform:translateY(-3px);box-shadow:inset 0 0 0 1px var(--hair-2),0 18px 44px -20px rgba(0,0,0,.9)}
.claro .card{background:#fff;box-shadow:inset 0 0 0 1px var(--hair-lt);color:var(--t1-d)}
.claro .card:hover{box-shadow:inset 0 0 0 1px rgba(11,13,16,.2),0 18px 40px -22px rgba(11,13,16,.3)}
.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}
.est{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--lime);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.est b{width:5px;height:5px;border-radius:50%;background:var(--lime)}
.est-off{color:var(--t3)}.est-off b{background:var(--t3)}
.claro .est{color:#4C7A00}.claro .est b{background:#4C7A00}
.claro .est-off{color:var(--t2-d)}.claro .est-off b{background:var(--t2-d)}
.avali{display:flex;align-items:center;gap:5px;font-size:13px;font-weight:600;white-space:nowrap;flex:none}
.avali s{text-decoration:none;color:var(--t3);font-weight:400}
.claro .avali s{color:var(--t2-d)}
.card-veh{height:84px;display:flex;align-items:center;color:var(--t2);opacity:.9}
.claro .card-veh{color:#3C433E}
.card-veh svg{width:100%;height:100%}
.card-nome{font-family:'Clash Display';font-size:18px;font-weight:600;letter-spacing:-.028em;display:flex;align-items:center;gap:7px;min-width:0}
.cred{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:500;letter-spacing:.05em;color:var(--t3);margin-top:5px;font-variant-numeric:tabular-nums}
.claro .cred{color:var(--t2-d)}
.card-meta{font-size:13px;color:var(--t2);line-height:1.45}
.claro .card-meta{color:#4A514C}
.card-pe{margin-top:auto;padding-top:15px;border-top:1px solid var(--hair);display:flex;align-items:flex-end;justify-content:space-between;gap:10px}
.claro .card-pe{border-top-color:var(--hair-lt)}
.card-pe .num{font-size:21px}

/* ── tabela de rotas ────────────────────────────────────────────────────── */
.rotas{width:100%;border-collapse:collapse}
.rotas th{padding:0 0 14px;border-bottom:1px solid var(--hair-lt);text-align:left}
.rotas td{padding:0;border-bottom:1px solid var(--hair-lt)}
.rotas tr{transition:background .16s}
.rotas tbody tr:hover{background:rgba(11,13,16,.035)}
.rt{display:grid;grid-template-columns:minmax(0,1fr) 92px minmax(150px,1fr) 148px;align-items:center;gap:26px;padding:17px 0}
.rt-nome{font-weight:500;font-size:15.5px;display:flex;align-items:center;gap:9px}
.rt-nome i{color:var(--t2-d);font-style:normal}
.rt-km{font-size:13.5px;color:var(--t2-d);font-variant-numeric:tabular-nums}
.rt-faixa{position:relative;height:6px;border-radius:3px;background:var(--bone-2)}
.rt-faixa i{position:absolute;top:0;height:6px;border-radius:3px;background:var(--ink);display:block;min-width:6px}
.rt-val{text-align:right;font-family:'Clash Display';font-weight:600;font-variant-numeric:tabular-nums;font-size:16px;letter-spacing:-.03em}

/* ── passos ─────────────────────────────────────────────────────────────── */
.passos{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--hair)}
.claro .passos{border-top-color:var(--hair-lt)}
.passo{padding:32px 34px 34px 0;border-right:1px solid var(--hair)}
.claro .passo{border-right-color:var(--hair-lt)}
.passo:last-child{border-right:0;padding-right:0}
.passo:not(:first-child){padding-left:34px}
.passo-n{display:block;font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--t3);margin-bottom:12px}
.claro .passo-n{color:#4C7A00}
.passo h3{font-family:'Clash Display';font-size:20px;font-weight:600;letter-spacing:-.026em;margin-bottom:10px}
.passo p{font-size:14.5px;color:var(--t2);line-height:1.55}
.claro .passo p{color:#4A514C}
.passo-ic{display:block;width:24px;height:24px;color:var(--lime);margin-bottom:20px}
.passo-ic svg{width:24px;height:24px}
.claro .passo-ic{color:#4C7A00}
.passos-4{grid-template-columns:repeat(4,1fr)}

/* ── BUSCA ──────────────────────────────────────────────────────────────── */
.pag-busca{display:grid;grid-template-columns:278px minmax(0,1fr) 36%;min-height:100vh}
.filtros{padding:112px 26px 60px;border-right:1px solid var(--hair);position:sticky;top:0;height:100vh;overflow-y:auto}
.fg{padding-bottom:22px;margin-bottom:22px;border-bottom:1px solid var(--hair)}
.fg:last-child{border-bottom:0}
.fg .lab{margin-bottom:14px;display:flex;align-items:center;justify-content:space-between}
.fo{display:flex;align-items:center;gap:11px;padding:6px 0;font-size:14px;cursor:pointer;color:var(--t2);transition:color .14s}
.fo:hover{color:var(--t1)}
.fo input{position:absolute;opacity:0;width:0;height:0}
.cx{width:17px;height:17px;border-radius:5px;flex:none;position:relative;box-shadow:inset 0 0 0 1.5px var(--hair-2);transition:.16s}
.fo input:checked+.cx{background:var(--lime);box-shadow:inset 0 0 0 1.5px var(--lime)}
.fo input:checked+.cx:after{content:'';position:absolute;left:5.5px;top:2.5px;width:4px;height:8px;border:solid var(--ink);border-width:0 2px 2px 0;transform:rotate(42deg)}
.fo input:checked~span{color:var(--t1)}
.fo .c{margin-left:auto;font-size:12px;color:var(--t3);font-variant-numeric:tabular-nums}
.faixa-in{-webkit-appearance:none;width:100%;height:4px;border-radius:2px;background:var(--hair-2);outline:0;margin:10px 0 0}
.faixa-in::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--lime);cursor:pointer;box-shadow:0 0 0 4px rgba(203,255,60,.18)}
.limpar{font-size:12px;color:var(--t3);text-decoration:underline;text-underline-offset:3px}
.limpar:hover{color:var(--lime)}
.filtro-abre{display:none;align-items:center;gap:9px;height:40px;padding:0 16px;border-radius:var(--r-p);
  font-size:13.5px;font-weight:600;background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1px var(--hair)}
.filtro-abre b{background:var(--lime);color:var(--ink);border-radius:var(--r-p);padding:1px 7px;font-size:11px}

.lista{padding:112px 28px 60px;border-right:1px solid var(--hair)}
.lista-cab{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding-bottom:18px;border-bottom:1px solid var(--hair);margin-bottom:20px}
.ordenar{display:flex;gap:4px}
.ordenar button{font-size:12.5px;font-weight:500;color:var(--t3);padding:6px 12px;border-radius:var(--r-p);transition:.16s}
.ordenar button[aria-pressed="true"]{background:rgba(255,255,255,.1);color:var(--t1)}
.li{display:grid;grid-template-columns:132px minmax(0,1fr) 172px;gap:20px;padding:18px;margin-bottom:12px;
  border-radius:var(--r);background:var(--surf);box-shadow:inset 0 0 0 1px var(--hair);transition:.2s cubic-bezier(.16,1,.3,1)}
.li:hover{background:var(--surf-2);box-shadow:inset 0 0 0 1px var(--hair-2)}
.li.on{box-shadow:inset 0 0 0 1.5px var(--lime)}
.li-veh{border-radius:var(--r-s);background:rgba(255,255,255,.04);display:flex;align-items:center;padding:12px;color:var(--t2)}
.li-dir{border-left:1px solid var(--hair);padding-left:20px;display:flex;flex-direction:column;justify-content:space-between;gap:14px}
.vazio{padding:60px 0;text-align:center;color:var(--t2)}
.vazio .d4{margin-bottom:10px;color:var(--t1)}
.mapa-col{position:sticky;top:0;height:100vh}
#mapa-busca{width:100%;height:100%}

/* ── PERFIL ─────────────────────────────────────────────────────────────── */
.perfil{display:grid;grid-template-columns:minmax(0,1fr) 362px;gap:64px;padding:0 0 90px}
.pf-cab{display:grid;grid-template-columns:224px minmax(0,1fr);gap:32px;padding-bottom:30px;border-bottom:1px solid var(--hair)}
.pf-veh{border-radius:var(--r);background:var(--surf);box-shadow:inset 0 0 0 1px var(--hair);padding:24px;color:var(--t2)}
.pf-cab h1{margin-bottom:9px;display:flex;align-items:center;gap:11px}
.pf-sub{font-size:15px;color:var(--t2);margin-bottom:20px}
.selos{display:flex;gap:8px;flex-wrap:wrap}
.selo{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:var(--r-p);
  background:rgba(255,255,255,.05);box-shadow:inset 0 0 0 1px var(--hair);font-size:12.5px;color:var(--t2)}
.selo b{color:var(--t1);font-weight:600;font-variant-numeric:tabular-nums}
.selo svg{width:15px;height:15px;color:var(--lime)}
.pf-sec{padding:30px 0;border-bottom:1px solid var(--hair)}
.pf-sec>.lab{margin-bottom:18px}
.ficha{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.ficha div span{display:block;font-size:10.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--t3);margin-bottom:6px}
.ficha div b{font-family:'Clash Display';font-size:18px;font-weight:600;letter-spacing:-.028em}
.tags{display:flex;gap:8px;flex-wrap:wrap}
.tag{font-size:13px;font-weight:500;padding:8px 14px;border-radius:var(--r-p);background:rgba(255,255,255,.05);box-shadow:inset 0 0 0 1px var(--hair);color:var(--t2)}
#mapa-perfil{height:320px;width:100%;border-radius:var(--r);overflow:hidden}
.lado{position:sticky;top:100px;align-self:start}
.cotacao{padding:26px}
.cotacao .faixa{display:flex;align-items:baseline;gap:9px;margin:8px 0 6px}
.cotacao .faixa .num{font-size:38px}
.cotacao .obs{font-size:12.5px;color:var(--t2);margin-bottom:20px}
.cotacao .btn{width:100%;margin-bottom:10px}
.cotacao .fim{font-size:11.5px;color:var(--t3);line-height:1.5;text-align:center}
.av{display:grid;grid-template-columns:46px minmax(0,1fr);gap:16px;padding:20px 0;border-bottom:1px solid var(--hair)}
.av:last-child{border-bottom:0}
.av-i{width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.06);display:flex;align-items:center;justify-content:center;
  font-family:'Clash Display';font-weight:600;font-size:15px;color:var(--t2)}
.av-q{font-size:14.5px;color:var(--t2);margin-top:7px}
.av-n{font-size:14.5px;font-weight:600}
.av-d{font-size:12px;color:var(--t3);font-weight:400}

/* ── páginas editoriais ─────────────────────────────────────────────────── */
.cab-pag{padding:0 0 48px;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:60px;align-items:end}
.cab-pag>.lab{grid-column:1}
.cab-pag .d1{grid-column:1;max-width:15ch;margin-top:16px}
.cab-pag .lead{grid-column:2;max-width:46ch;padding-bottom:6px}
.rota-lista{display:grid;grid-template-columns:repeat(3,1fr);gap:0 32px}
.rota-lista a{padding:15px 0;border-bottom:1px solid var(--hair-lt);font-size:14.5px;display:flex;justify-content:space-between;gap:14px;transition:.16s}
.rota-lista a:hover{padding-left:8px}
.rota-lista a span{color:var(--t2-d);font-variant-numeric:tabular-nums;font-size:13.5px}
.faq dt{font-family:'Clash Display';font-size:19px;font-weight:600;letter-spacing:-.024em;padding-top:26px;border-top:1px solid var(--hair-lt)}
.faq dd{font-size:15px;color:#4A514C;padding:10px 0 26px;max-width:72ch}

/* ── cadastro ───────────────────────────────────────────────────────────── */
.cad{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:80px;padding:0 0 100px;align-items:start}
.etapas{display:flex;gap:8px;margin-bottom:38px}
.etapa{display:flex;align-items:center;gap:9px;padding:9px 16px;border-radius:var(--r-p);font-size:13px;font-weight:500;color:var(--t3);background:rgba(255,255,255,.04)}
.etapa[aria-current]{background:var(--lime);color:var(--ink);font-weight:600}
.etapa i{font-style:normal;font-variant-numeric:tabular-nums;opacity:.6}
.etapa[aria-current] i{opacity:1}
.form-l{display:block;margin-bottom:20px}
.form-l .lab{margin-bottom:9px}
.form-l input,.form-l select{width:100%;height:56px;padding:0 18px;border-radius:var(--r-s);background:rgba(255,255,255,.05);
  box-shadow:inset 0 0 0 1px var(--hair);font-size:16px;font-weight:500;transition:.16s}
.form-l input:focus{box-shadow:inset 0 0 0 1.5px var(--lime);background:rgba(255,255,255,.08)}
.dica{font-size:13px;color:var(--t3);margin-top:9px}
.cad-lado{padding:30px}

/* ── painel ─────────────────────────────────────────────────────────────── */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.kpi{padding:24px;border-radius:var(--r);background:var(--surf);box-shadow:inset 0 0 0 1px var(--hair)}
.kpi .num{font-size:40px;display:block;margin:10px 0 4px}
.kpi small{font-size:13px;color:var(--t2)}
.kpi .var{font-size:12.5px;font-weight:600;color:var(--lime)}
.leads{width:100%;border-collapse:collapse;font-size:14.5px}
.leads th{text-align:left;padding:0 0 14px;border-bottom:1px solid var(--hair)}
.leads td{padding:18px 0;border-bottom:1px solid var(--hair);vertical-align:top}
.leads tr:hover td{background:rgba(255,255,255,.02)}
.pill{font-size:10.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:5px 11px;border-radius:var(--r-p);
  background:rgba(255,255,255,.07);color:var(--t2)}
.pill-n{background:var(--lime);color:var(--ink)}

/* ── rodapé ─────────────────────────────────────────────────────────────── */
.pe{padding:88px 0 34px;border-top:1px solid var(--hair);background:var(--void)}
.pe-marca{font-family:'Clash Display';max-width:100%;overflow:hidden;font-size:clamp(44px,10.5vw,150px);font-weight:600;letter-spacing:-.05em;line-height:.82;
  color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.16);margin-bottom:52px;user-select:none}
.pe-g{display:grid;grid-template-columns:minmax(0,4fr) repeat(3,minmax(0,2fr));gap:46px;padding-bottom:44px;border-bottom:1px solid var(--hair)}
.pe-g p{font-size:14px;color:var(--t2);max-width:32ch}
.pe h4{font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--t3);margin-bottom:16px}
.pe ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.pe ul a{font-size:14px;color:var(--t2)}
.pe ul a:hover{color:var(--lime)}
.pe-b{display:flex;justify-content:space-between;gap:24px;padding-top:24px;font-size:12.5px;color:var(--t3);flex-wrap:wrap}

/* ── aviso ──────────────────────────────────────────────────────────────── */
.aviso{position:fixed;bottom:14px;right:14px;z-index:700;padding:9px 18px;border-radius:var(--r-p);
  font-size:11.5px;color:var(--t2);display:flex;gap:9px;align-items:center;max-width:calc(100vw - 40px);
  overflow-x:auto;white-space:nowrap;scrollbar-width:none}
.aviso::-webkit-scrollbar{display:none}
.aviso b{color:var(--lime);font-weight:600}
.aviso a{color:var(--t2)}
.aviso a:hover{color:var(--t1)}

/* ── Leaflet ────────────────────────────────────────────────────────────── */
.leaflet-container{background:var(--void);font-family:Switzer,sans-serif}
.leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) saturate(.1) brightness(.92) contrast(.84)}
.leaflet-control-attribution{background:rgba(7,8,10,.7);color:var(--t3);font-size:10px;border-radius:6px 0 0 0}
.leaflet-control-attribution a{color:var(--t2)}
.leaflet-bar{border:0!important;box-shadow:none!important}
.leaflet-bar a{background:rgba(18,21,26,.86)!important;color:var(--t1)!important;border:0!important;
  backdrop-filter:blur(14px);box-shadow:inset 0 0 0 1px var(--hair)!important;border-radius:10px!important;margin-bottom:5px}
.leaflet-bar a:hover{background:rgba(30,35,42,.94)!important}
.leaflet-popup-content-wrapper{background:rgba(18,21,26,.9);color:var(--t1);border-radius:14px;
  backdrop-filter:blur(22px) saturate(170%);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 18px 40px -18px rgba(0,0,0,.9)}
.leaflet-popup-tip{background:rgba(18,21,26,.9)}
.leaflet-popup-content{margin:15px 17px;font-size:13.5px;line-height:1.5;color:var(--t2)}
.leaflet-popup-content b{font-family:'Clash Display';font-size:16px;color:var(--t1);letter-spacing:-.02em}
.leaflet-popup-content a{color:var(--lime);font-weight:600}
.leaflet-popup-close-button{color:var(--t3)!important}
.pino-c{width:30px;height:30px;border-radius:50%;background:rgba(18,21,26,.9);color:var(--t1);display:flex;align-items:center;justify-content:center;
  font-size:11.5px;font-weight:600;font-variant-numeric:tabular-nums;box-shadow:inset 0 0 0 1px rgba(255,255,255,.3),0 4px 14px rgba(0,0,0,.6);
  backdrop-filter:blur(10px);transition:.2s cubic-bezier(.16,1,.3,1)}
.pino-a .pino-c{background:var(--lime);color:var(--ink);box-shadow:0 0 0 5px rgba(203,255,60,.2),0 4px 16px rgba(0,0,0,.5)}
.pino.on .pino-c{transform:scale(1.22)}

/* ── mobile ─────────────────────────────────────────────────────────────── */
@media (max-width:1020px){
  :root{--gut:18px;--r:16px}
  .top{top:10px;left:12px;right:12px}
  .top-in{height:56px;padding:0 8px 0 18px;gap:12px}
  .top nav,.top .dir .lnk{display:none}
  .marca{font-size:19px}
  .espaco{height:78px}
  .hero{min-height:0;flex-direction:column;align-items:stretch}
  .hero-in{padding:96px var(--gut) 30px}
  .d1{font-size:clamp(30px,7.6vw,46px)}
  .top-in{padding:0 6px 0 14px}
  .marca{font-size:17px}
  .top .btn-s{height:36px;padding:0 13px;font-size:12.5px}
  .hero-col{max-width:none}
  .hero-scrim{background:linear-gradient(180deg,rgba(7,8,10,.9) 0%,rgba(7,8,10,.72) 40%,rgba(7,8,10,.9) 100%)}
  .painel{margin-top:26px}
  .painel-campos{grid-template-columns:1fr}
  .painel .btn{height:50px}
  .prova{gap:16px 22px;margin-top:22px}
  .prova b{font-size:20px}
  .hero-pe{position:static;order:9;padding:0 var(--gut) 22px;margin:0;font-size:10.5px}
  .sec{padding:56px 0}
  .cab{grid-template-columns:1fr;gap:16px;margin-bottom:26px}
  .cab .dir{justify-self:start}
  .grade{grid-template-columns:1fr 1fr;gap:12px}
  .est{font-size:9px;letter-spacing:.07em}
  .avali{font-size:12px}
  .card{padding:15px;gap:12px}
  .card-veh{height:58px}
  .card-nome{font-size:16px}
  .passos,.passos-4{grid-template-columns:1fr}
  .passo{border-right:0;border-bottom:1px solid var(--hair);padding:24px 0}
  .passo:not(:first-child){padding-left:0}
  .passo:last-child{border-bottom:0}
  .claro .passo{border-bottom-color:var(--hair-lt)}
  .rt{grid-template-columns:minmax(0,1fr) auto;gap:8px 14px;padding:15px 0}
  .rt-km{display:none}.rt-faixa{grid-column:1/-1;order:3}
  .cab-pag{grid-template-columns:1fr;gap:16px;padding-bottom:28px}
  .cab-pag>.lab,.cab-pag .d1,.cab-pag .lead{grid-column:1}
  .cab-pag .lead{padding-bottom:0}
  .pag-busca{grid-template-columns:1fr}
  .filtros{display:none;position:static;height:auto;border-right:0;border-bottom:1px solid var(--hair);
    padding:16px var(--gut) 22px;grid-template-columns:1fr 1fr;gap:0 20px}
  .filtros.aberto{display:grid}
  .filtros .fg:nth-child(n+5){grid-column:1/-1}
  .filtro-abre{display:inline-flex}
  .mapa-col{display:none}
  .lista{border-right:0;padding:92px var(--gut) 60px}
  .filtros.aberto ~ .lista{padding-top:24px}
  .lista-cab{flex-direction:column;align-items:flex-start;gap:10px}
  .li{grid-template-columns:92px minmax(0,1fr);gap:15px;padding:15px}
  .li-dir{grid-column:1/-1;border-left:0;border-top:1px solid var(--hair);padding:15px 0 0;
    display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px}
  .li-dir>div{display:flex;align-items:baseline;gap:8px;white-space:nowrap}
  .li-dir>div>div:last-child{display:none}
  .li-dir .num{font-size:20px!important;margin:0!important}
  .li-dir .lab{font-size:9px;letter-spacing:.12em}
  .li-dir .btn{flex:1 1 auto;width:auto;min-width:0}
  .perfil,.cad{grid-template-columns:1fr;gap:26px;padding-bottom:104px}
  .pf-cab{grid-template-columns:1fr;gap:18px}
  .ficha{grid-template-columns:1fr 1fr;gap:18px}
  .lado{position:fixed;left:12px;right:12px;bottom:12px;top:auto;z-index:650}
  .cotacao{padding:12px 14px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px}
  .cotacao .obs,.cotacao .fim,.cotacao .btn-o,.cotacao>div>.lab{display:none}
  .cotacao .btn{margin:0;width:100%}
  .cotacao .faixa{margin:0;gap:5px}
  .cotacao .faixa .num{font-size:23px}
  .rota-lista{grid-template-columns:1fr}
  .kpis{grid-template-columns:1fr 1fr;gap:10px}
  .kpi{padding:16px}
  .kpi .num{font-size:28px}
  .leads .oculta{display:none}
  .pe{padding:56px 0 26px}
  .pe-marca{margin-bottom:32px}
  .pe-g{grid-template-columns:1fr 1fr;gap:28px}
  .pe-g>div:first-child{grid-column:1/-1}
  .aviso{left:10px;right:10px;bottom:10px;top:auto;font-size:10px;padding:7px 12px;justify-content:flex-start}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ═══ CALCULADORA DE FRETE ═══════════════════════════════════════════════ */
.marca em{font-style:normal;font-weight:400;opacity:.55;margin-left:6px}
.calc{display:grid;grid-template-columns:minmax(0,1fr) 40%;gap:22px;align-items:start}
.calc-form{padding:10px;grid-column:1}
.calc-res{grid-column:1;padding-top:4px}
#mapa-calc{grid-column:2;grid-row:1/span 2;height:560px;border-radius:var(--r);overflow:hidden;
  box-shadow:inset 0 0 0 1px var(--hair)}
.res-linha{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:24px 0 22px;border-bottom:1px solid var(--hair)}
.res-linha .num{font-size:30px;margin-top:6px}
.res-precos{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:22px}
.res-cx{padding:22px;border-radius:var(--r);background:var(--surf);box-shadow:inset 0 0 0 1px var(--hair)}
.res-cx .num{font-size:36px;display:block;margin:10px 0 8px}
.res-cx p{font-size:12.5px;color:var(--t2);line-height:1.5}
.res-alerta{margin-top:16px;padding:16px 18px;border-radius:var(--r-s);font-size:13.5px;line-height:1.55;
  color:#FFE9C7;background:rgba(232,150,12,.10);box-shadow:inset 0 0 0 1px rgba(232,150,12,.28)}
.res-alerta b{color:#FFC46B}
.taxa-aviso{display:grid;grid-template-columns:16px 1fr;gap:12px;margin-top:26px;padding-top:20px;
  border-top:1px solid var(--hair);font-size:12.5px;color:var(--t2);line-height:1.55}
.taxa-aviso b{color:var(--t1);font-weight:600}
.taxa-aviso>span:first-child{color:var(--lime)}

/* ═══ COBERTURA ═════════════════════════════════════════════════════════ */
.meso{padding:30px 0;border-top:1px solid var(--hair)}
.meso h3{font-family:'Clash Display';font-size:21px;font-weight:600;letter-spacing:-.024em;margin-bottom:4px}
.meso .lab{margin-bottom:18px}
.meso ul{list-style:none;columns:5;column-gap:26px}
.meso li{font-size:13.5px;color:var(--t2);padding:4px 0;break-inside:avoid}
.meso li b{color:var(--t1);font-weight:500}
.busca-cidade{width:100%;height:52px;padding:0 18px;border-radius:var(--r-s);background:rgba(255,255,255,.05);
  box-shadow:inset 0 0 0 1px var(--hair);font-size:15px;margin-bottom:8px}
.busca-cidade:focus{outline:0;box-shadow:inset 0 0 0 1.5px var(--lime)}

/* ═══ ADMIN ═════════════════════════════════════════════════════════════ */
.admin-g{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:36px;align-items:start}
.fila{border-top:1px solid var(--hair)}
.fila-i{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:16px;padding:18px 0;border-bottom:1px solid var(--hair);align-items:center}
.fila-i .av-i{width:52px;height:52px;border-radius:var(--r-s)}
.fila-i h4{font-size:15.5px;font-weight:600;letter-spacing:-.015em}
.fila-i p{font-size:13px;color:var(--t2);margin-top:3px}
.fila-i .acoes{display:flex;gap:8px}
.barra{height:8px;border-radius:4px;background:rgba(255,255,255,.07);overflow:hidden;display:flex;margin:14px 0 10px}
.barra i{display:block;height:8px}
.legenda{display:flex;gap:18px;flex-wrap:wrap;font-size:12.5px;color:var(--t2)}
.legenda span{display:inline-flex;align-items:center;gap:7px}
.legenda b{width:9px;height:9px;border-radius:2px}

@media (max-width:1020px){
  .calc{grid-template-columns:1fr}
  .calc-form .painel-campos{grid-template-columns:1fr!important;gap:8px!important}
  .calc-form .btn{height:50px}
  .res-linha>div{min-width:0}
  .res-linha .lab{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .calc-form,.calc-res{grid-column:1}
  #mapa-calc{grid-column:1;grid-row:auto;height:300px;order:3}
  .res-linha{grid-template-columns:1fr 1fr;gap:14px;padding:18px 0}
  .res-linha>div:last-child{grid-column:1/-1}
  .res-linha .num{font-size:24px}
  .res-precos{grid-template-columns:1fr}
  .res-cx .num{font-size:30px}
  .meso ul{columns:2;column-gap:18px}
  .admin-g{grid-template-columns:1fr;gap:26px}
  .fila-i{grid-template-columns:44px minmax(0,1fr);gap:12px}
  .fila-i .acoes{grid-column:1/-1;padding-top:10px}
  .fila-i .av-i{width:44px;height:44px}
}

/* ═══ BACK-END: mensagens, modal, painel ════════════════════════════════ */
.msg{margin:8px 0 12px;padding:11px 14px;border-radius:var(--r-s);font-size:13.5px;line-height:1.45}
.msg-erro{color:#FFD6D6;background:rgba(220,60,60,.12);box-shadow:inset 0 0 0 1px rgba(220,60,60,.32)}
.msg-ok{color:#E9FFC2;background:rgba(203,255,60,.10);box-shadow:inset 0 0 0 1px rgba(203,255,60,.3)}
.modal{position:fixed;inset:0;z-index:900;background:rgba(4,5,6,.72);display:grid;place-items:center;padding:18px}
.modal[hidden]{display:none}
.modal-caixa{width:min(520px,100%);max-height:92vh;overflow:auto;padding:26px;position:relative}
.modal-x{position:absolute;right:14px;top:10px;font-size:26px;color:var(--t2);width:36px;height:36px}
.status-faixa{padding:14px 18px;border-radius:var(--r-s);font-size:14px;color:var(--t2);background:var(--surf);box-shadow:inset 0 0 0 1px var(--hair)}
.status-faixa b{color:var(--t1);margin-right:6px}
.st-aprovado{box-shadow:inset 0 0 0 1px rgba(203,255,60,.35)} .st-aprovado b{color:var(--lime)}
.st-pendente{box-shadow:inset 0 0 0 1px rgba(232,150,12,.4)} .st-pendente b{color:#FFC46B}
.st-recusado,.st-suspenso{box-shadow:inset 0 0 0 1px rgba(220,60,60,.4)} .st-recusado b,.st-suspenso b{color:#FF9C9C}
.grade-form{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.servs{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.form-l select,.form-l input[type=file]{width:100%;height:56px;padding:0 14px;border-radius:var(--r-s);background:rgba(255,255,255,.05);box-shadow:inset 0 0 0 1px var(--hair);font-size:15px}
.form-l input[type=file]{padding:15px 14px;height:auto}
.form-l select option{background:var(--surf)}
.filtro-adm{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.filtro-adm button{font-size:13px;padding:7px 13px;border-radius:var(--r-p);color:var(--t2);background:rgba(255,255,255,.04)}
.filtro-adm button[aria-pressed="true"]{background:var(--lime);color:var(--ink);font-weight:600}
.docs-adm{margin-top:6px;font-size:13px;line-height:1.9}
.sel-lead{background:var(--surf);color:var(--t1);border-radius:8px;padding:6px 8px;box-shadow:inset 0 0 0 1px var(--hair);border:0}
code{font-family:ui-monospace,monospace;font-size:.92em;background:rgba(255,255,255,.08);padding:1px 6px;border-radius:5px}
@media (max-width:1020px){ .grade-form,.servs{grid-template-columns:1fr} }

/* abas sobre fundo claro precisam de contraste próprio */
.claro .painel-abas button{color:var(--t2-d);background:rgba(11,13,16,.05)}
.claro .painel-abas button[aria-selected="true"]{background:var(--ink);color:var(--t1);box-shadow:none}
/* no celular o aviso sobe para não cobrir o botão fixo do perfil */
@media (max-width:1020px){ .aviso{top:74px;bottom:auto} }
