.strong{color:#29354a;font-weight:700}
.num{font-variant-numeric:tabular-nums;white-space:nowrap}
.warn-num{color:#c77a14}
.link-btn{border:0;background:transparent;color:#2770cf;font-size:0.75rem;font-weight:700;padding:4px 0;white-space:nowrap}
.link-btn:hover{text-decoration:underline}
.ai-tip{display:flex;gap:12px;align-items:flex-start;background:#eef4fc;border:1px solid #d6e3f5;border-radius:10px;padding:12px 14px;margin-bottom:16px}
.ai-tip>span{width:28px;height:28px;flex:none;border-radius:8px;background:linear-gradient(135deg,#2079ec,#3cb4f5);color:#fff;display:grid;place-items:center;font-size:0.8125rem}
.ai-tip strong{font-size:0.8125rem}.ai-tip p{margin:4px 0 0;font-size:0.75rem;color:#4f607a;line-height:1.5;max-width:90ch}
.modal.wide{width:min(600px,100%)}
.modal-body>.modal-step{margin-top:6px}
.cands{display:flex;flex-direction:column;gap:9px;margin:12px 0 10px}
.cand{border:1px solid #e1e6ee;border-radius:10px;padding:12px 13px;cursor:pointer;background:#fff;outline:none}
.cand:hover{border-color:#b9cde8}
.cand:focus-visible{box-shadow:0 0 0 3px #2c75d233}
.cand.on{border-color:#2672d3;background:#f5f9ff;box-shadow:0 0 0 1px #2672d3}
.cand-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cand-head strong{font-size:0.8125rem;color:#1f2b40}
.cand-head em{font-style:normal;background:#1f8a5c;color:#fff;font-size:0.625rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;border-radius:5px;padding:3px 6px}
.cand-mode{margin-left:auto;font-size:0.625rem;font-weight:700;border-radius:10px;padding:3px 8px;background:#eef1f5;color:#5d687b}
.cand-mode.m-encaixe{background:#e7f6ee;color:#1f7a50}.cand-mode.m-base{background:#e7f0fc;color:#276fc9}.cand-mode.m-retorno,.cand-mode.m-rota{background:#fff3df;color:#a8690f}
.cand-sub{font-size:0.6875rem;color:#8993a2;margin-top:4px}
.cand-nums{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:6px;margin:10px 0 9px}
.cand-nums span{background:#f5f7fa;border-radius:7px;padding:6px 8px;font-size:0.625rem;color:#7a8495}
.cand-nums b{display:block;font-size:0.875rem;color:#1f2b40;font-variant-numeric:tabular-nums;margin-bottom:1px}
.reasons{display:flex;flex-direction:column;gap:4px}
.rs{font-size:0.6875rem;line-height:1.4;padding-left:14px;position:relative;color:#4f5b6e}
.rs:before{content:'';position:absolute;left:2px;top:5px;width:6px;height:6px;border-radius:50%;background:#aab3c0}
.rs.good:before{background:#26a56c}.rs.warn:before{background:#eaa43e}.rs.bad:before{background:#d85845}.rs.bad{color:#b0412f}
.saving{font-size:0.6875rem;color:#1f7a50;background:#edf8f2;border:1px solid #d6eee1;border-radius:8px;padding:8px 10px;margin:0 0 10px}
.sug-empty{font-size:0.75rem;color:#b0412f;margin:10px 0}
.excluded{margin:0 0 16px;font-size:0.6875rem;color:#6d788a}
.excluded summary{cursor:pointer;font-weight:700;color:#5d687b;padding:4px 0}
.excluded ul{margin:6px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:3px}
.calc-note{font-size:0.625rem;color:#8993a2;line-height:1.5;margin:12px 0 0}
.field input{display:block;width:100%;margin-top:6px;height:39px;border:1px solid #dfe3e8;border-radius:8px;background:#fff;padding:0 11px;color:#364257;font-size:0.875rem;outline:none;font-variant-numeric:tabular-nums}
.field input:focus{border-color:#2c75d2;box-shadow:0 0 0 3px #2c75d214}
.check{display:flex;align-items:center;gap:8px;font-size:0.75rem;color:#445067;margin:0 0 10px}
.check input{accent-color:#2470d1;width:15px;height:15px}
.form-err{margin:-6px 0 12px;font-size:0.6875rem;color:#b0412f}
.km-facts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}
.km-facts p{margin:0;background:#f7f9fb;border-radius:8px;padding:8px 10px}.km-facts span{display:block;font-size:0.625rem;color:#8993a2}.km-facts b{font-size:0.8125rem;font-variant-numeric:tabular-nums}
/* frota */
.fleet-content{max-width:1500px}
.fleet-alerts{margin-bottom:16px}.fleet-alerts .panel-title{border-bottom:1px solid #edf0f3}
.fleet-alerts ul{list-style:none;margin:0;padding:6px 20px 10px}
.fleet-alerts li{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #f0f2f5;font-size:0.75rem;color:#4f5b6e}
.fleet-alerts li:last-child{border-bottom:0}
.fleet-alerts li b{color:#29354a;min-width:140px}
.fleet-alerts li>span:nth-child(3){flex:1}
.fa-dot{width:8px;height:8px;border-radius:50%;background:#eaa43e;flex:none}
.fleet-alerts li.bad .fa-dot{background:#d85845}
.fleet-table td{vertical-align:top}
.pill{display:inline-flex;border-radius:12px;padding:3px 8px;font-size:0.625rem;font-weight:700;background:#edf0f4;color:#738096}
.p-base{background:#e7f6ee;color:#26875d}.p-retorno{background:#e8f5ef;color:#2c8a63}.p-rota{background:#e7f0fc;color:#276fc9}.p-carregando{background:#fff3df;color:#b4761e}.p-manutencao{background:#fdecea;color:#c0412f}
.meter{height:6px;border-radius:6px;background:#e6e9ee;overflow:hidden;min-width:110px;margin-top:3px}
.meter i{display:block;height:100%;background:#8fb3e3;border-radius:6px}
.meter i.warn{background:#eaa43e}
.how{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}
.how>div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.how h3{margin:0 0 6px;font-size:0.8125rem}.how p{margin:0;font-size:0.75rem;color:#5d687b;line-height:1.55}
/* clientes */
.clients-content{max-width:1500px}
.seller-filter{display:flex;align-items:center;gap:8px;font-size:0.75rem;color:#5d687b;font-weight:600}
.seller-filter select{height:38px;border:1px solid #dfe3e9;border-radius:8px;background:#fff;padding:0 10px;color:#364257;font-size:0.8125rem}
.compare{display:grid;grid-template-columns:minmax(220px,1fr) repeat(2,minmax(0,1fr));gap:12px;background:#13223a;border-radius:12px;padding:14px;margin-bottom:16px;color:#fff;align-items:stretch}
.cmp-intro{padding:4px 6px}.cmp-intro span{display:block;color:#6fa9f0;font-size:0.625rem;letter-spacing:.12em;font-weight:800;margin-bottom:6px}.cmp-intro strong{display:block;font-size:0.875rem;line-height:1.3;text-wrap:balance}.cmp-intro p{font-size:0.75rem;color:#a9b6cb;line-height:1.5;margin:8px 0 0}
.cmp-card{background:#1b2c47;border:1px solid #30405a;border-radius:10px;padding:12px 14px;cursor:pointer}
.cmp-card:hover{border-color:#4a6a98}
.cmp-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.cmp-top b{font-size:0.875rem}
.cmp-meta{font-size:0.6875rem;color:#91a0b7;margin:4px 0 10px}
.cmp-card dl{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cmp-card dl div{background:#15243c;border-radius:7px;padding:7px 9px}
.cmp-card dt{font-size:0.625rem;color:#91a0b7}.cmp-card dd{margin:2px 0 0;font-size:0.875rem;font-weight:700;font-variant-numeric:tabular-nums}
.cmp-card dl .hl{background:#20395e}
.cmp-verdict{grid-column:1/-1;margin:2px 6px 0;font-size:0.8125rem;color:#d7e2f3}.cmp-verdict b{color:#fff}
.rating{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:6px;color:#fff;font-weight:800;font-size:0.8125rem}
.rating.big{width:36px;height:36px;font-size:1.125rem;border-radius:9px}
.rA{background:#1f9d63}.rB{background:#2f7ddd}.rC{background:#e0a030}.rD{background:#d4533f}
.clients-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,1fr);gap:16px;margin-bottom:16px}
.map-panel .panel-title{padding-bottom:6px}
.cmap{display:block;width:100%;height:auto;padding:0 16px 16px}
.cpin{cursor:pointer}.cpin:focus{outline:none}.cpin:focus circle{stroke:#111c32;stroke-width:3}
.detail-panel .panel-title{border-bottom:1px solid #edf0f3;align-items:center}
.detail-body{padding:14px 20px 18px}
.score-line{margin:0 0 12px;font-size:0.75rem;color:#5d687b}.score-line b{font-size:0.875rem;color:#1f2b40}
.calc{background:#f7f9fb;border-radius:9px;padding:4px 12px;margin-bottom:14px}
.calc p{display:flex;justify-content:space-between;gap:10px;margin:0;padding:8px 0;border-bottom:1px solid #e8ebef;font-size:0.75rem;color:#5d687b}
.calc p:last-child{border-bottom:0}
.calc p small{display:block;font-size:0.625rem;color:#98a0ae;margin-top:2px}
.calc b{color:#29354a;font-variant-numeric:tabular-nums;white-space:nowrap}
.calc p.tot b{color:#1f7a50}
.parts{display:flex;flex-direction:column;gap:9px;margin-bottom:14px}
.parts p{display:flex;align-items:baseline;gap:8px;margin:0;font-size:0.75rem;color:#4f5b6e}.parts p small{color:#98a0ae;font-size:0.625rem}.parts p b{margin-left:auto;font-variant-numeric:tabular-nums}
.parts .meter{min-width:0}
.kv{display:grid;grid-template-columns:1fr auto;gap:4px 10px;margin:0;font-size:0.75rem;color:#6d788a}.kv b{color:#29354a;text-align:right}
tr.row-on td{background:#f3f8ff}
.clients-content tbody tr{cursor:pointer}
@media(max-width:1100px){.compare{grid-template-columns:1fr 1fr}.cmp-intro{grid-column:1/-1}.clients-grid{grid-template-columns:1fr}.how{grid-template-columns:1fr}}
@media(max-width:760px){.clients-content,.fleet-content{padding-bottom:100px}.compare{grid-template-columns:1fr;margin-left:-16px;margin-right:-16px;border-radius:0;padding:14px 16px}.cmap{padding:0 8px 8px}.fleet-alerts li{flex-wrap:wrap}.fleet-alerts li b{min-width:0}.heading-actions .seller-filter{font-size:0}.mobile-nav button{font-size:0.5625rem;padding:0 2px}.ai-tip{align-items:flex-start}.page-heading{gap:12px}}
@media(max-width:430px){.km-facts{grid-template-columns:1fr 1fr}.cmp-card dl{grid-template-columns:1fr 1fr}}

/* ===== Filtros da carteira (13/11) ===============================
   Pedido dele: filtrar por vendedor, cliente, cidade e se retira ou
   recebe. Só forma; a cor vem das classes que o tema já pinta. */
.cf-barra{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.cf-busca{flex:1 1 230px;min-width:0}
.cf-busca input{margin-top:0}
.cf-conta{font-size:0.6875rem;font-variant-numeric:tabular-nums;margin-left:auto;padding-bottom:10px;opacity:.7}
.cf-barra .link-btn{padding-bottom:10px}
.cf-vazio{padding:26px 22px;text-align:center;font-size:0.8125rem;line-height:1.6}
.cf-vazio p{margin:0}
.cf-vazio p+p{margin-top:5px;opacity:.75}
@media(max-width:760px){.cf-busca{flex:1 1 100%}.cf-conta{margin-left:0}}

/* ===== Barra lateral: ocultos e visualização (13/11) =============
   Pedido dele: tirar os contadores e as etiquetas da barra, e ter uma
   área de Ocultos para esconder o que não faz sentido para o cliente
   agora. O botão de ocultar só aparece no acesso do dono. */
.nav-row{display:block;position:relative}
.nav-hide{position:absolute;right:9px;top:50%;transform:translateY(-50%);
  width:22px;height:22px;border-radius:7px;border:1px solid var(--va-line,currentColor);
  background:transparent;color:inherit;font:inherit;font-size:0.875rem;line-height:1;
  display:grid;place-items:center;padding:0;opacity:0;cursor:pointer;transition:opacity .12s}
.nav-row:hover .nav-hide,.nav-hide:focus-visible{opacity:.8}

.nav-ocultos{margin:10px 0 0;padding-top:10px;border-top:1px solid var(--va-line,currentColor)}
.oc-tit{display:flex;align-items:center;gap:8px;width:100%;background:transparent;border:0;
  color:inherit;font:inherit;font-size:0.6875rem;letter-spacing:.04em;text-transform:uppercase;
  opacity:.6;padding:5px 2px;cursor:pointer}
.oc-tit b{font-size:0.6875rem}
.oc-tit i{margin-left:auto;font-style:normal;font-size:0.875rem}
.oc-lista{display:flex;flex-direction:column;gap:3px;margin-top:5px}
.oc-lista button{display:flex;align-items:center;gap:10px;width:100%;background:transparent;
  border:0;color:inherit;font:inherit;font-size:0.75rem;padding:7px 9px;border-radius:8px;
  cursor:pointer;opacity:.7;text-align:left}
.oc-lista button:hover{opacity:1;background:var(--va-panel,transparent)}
.oc-lista button i{margin-left:auto;font-style:normal}
.oc-nota{margin:7px 2px 0;font-size:0.625rem;line-height:1.5;opacity:.5}

.visao-pick{margin-bottom:12px}
.visao-pick>span{display:block;font-size:0.6875rem;letter-spacing:.04em;text-transform:uppercase;
  opacity:.55;margin-bottom:5px}
.vp-botoes{display:flex;gap:5px}
.vp-botoes button{flex:1;height:30px;border-radius:8px;border:1px solid var(--va-line,currentColor);
  background:transparent;color:inherit;font:inherit;font-size:0.6875rem;font-weight:650;cursor:pointer;opacity:.6}
.vp-botoes button.on{opacity:1;border-color:currentColor}

/* ===== Sino do topo: vendas lançadas pelos vendedores ============ */
.sino-wrap{position:relative}
.sino-caixa{position:absolute;right:0;top:calc(100% + 9px);width:310px;max-height:62vh;overflow:auto;
  z-index:20;padding:13px 15px;border-radius:12px;border:1px solid var(--va-line,currentColor);
  background:var(--va-panel,#111);box-shadow:0 16px 40px rgba(0,0,0,.45)}
.sc-tit{margin:0 0 9px;font-size:0.6875rem;letter-spacing:.04em;text-transform:uppercase;opacity:.55}
.sc-vazio{margin:0;font-size:0.75rem;opacity:.6}
.sc-item{padding:10px 0;border-top:1px solid var(--va-line,currentColor)}
.sc-item b{font-size:0.8125rem}
.sc-item p{margin:3px 0 0;font-size:0.75rem;line-height:1.45;opacity:.8}
.sc-item small{display:block;margin-top:5px;font-size:0.625rem;opacity:.5}
.sc-obs{opacity:.65}
.sc-item.nova b:after{content:'novo';margin-left:7px;font-size:0.5625rem;letter-spacing:.08em;
  text-transform:uppercase;opacity:.75;vertical-align:middle}

@media(max-width:760px){
  .nav-hide{opacity:.6}
  .sino-caixa{width:min(300px,86vw)}
}

/* Visualização real: relatórios sem dados */
.rp-vazio{padding:26px 22px;text-align:center;font-size:0.8125rem;line-height:1.6;margin-top:14px}
.rp-vazio p{margin:0}
.rp-vazio p+p{margin-top:6px;opacity:.75;max-width:62ch;margin-left:auto;margin-right:auto}

/* ===== Barra lateral: rolar a lista, prender o rodapé (14/11) =====
   Com 22 telas a lista passou da altura da tela e o seletor de
   visualização e o perfil, que ficam no pé, saíram do alcance — dava
   para ver mas não para clicar. Agora só a LISTA rola; marca em cima
   e rodapé em baixo ficam parados.
   A barra já é flex-column em styles.css; aqui só se diz quem estica
   e quem não encolhe. */
.sidebar>nav{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;
  scrollbar-width:thin;margin-right:-6px;padding-right:6px}
.sidebar>.brand,.sidebar>.nav-ocultos,.sidebar>.sidebar-bottom{flex:0 0 auto}
.sidebar>.sidebar-bottom{margin-top:14px;padding-top:2px}
.sidebar>.nav-ocultos{max-height:30vh;overflow-y:auto;scrollbar-width:thin}

/* Perfil fixo: na visualização Real não há seletor, só quem entrou (14/11) */
.pf-fixo{margin:8px 0 0;font-size:0.6875rem;line-height:1.4;opacity:.6;
  word-break:break-all;text-transform:none;letter-spacing:0}
