/* ══════════════════════════════════════════════════════════════
   MODULE · DESEMPENHO DO MOTORISTA · v0.1.0
   ──────────────────────────────────────────────────────────────
   Estilos do lado consultor (cadastro de motoristas + acesso do
   gestor). Reusa .btn, .field e tokens do design system.
   ══════════════════════════════════════════════════════════════ */

.dsmp-root{ padding:4px 2px 40px; }

/* ── cabeçalho ── */
.dsmp-head{
  display:flex;align-items:flex-start;justify-content:space-between;
  gap:16px;flex-wrap:wrap;margin-bottom:18px;
}
.dsmp-head h1{
  font-family:var(--font-display);font-weight:700;
  font-size:var(--fs-3xl);color:var(--txt);line-height:1.15;
}
.dsmp-head p{ font-size:var(--fs-base);color:var(--sub);margin-top:2px; }
.dsmp-head__acoes{ display:flex;gap:8px;flex-wrap:wrap; }

/* ── banner explicativo ── */
.dsmp-banner{
  display:flex;gap:12px;align-items:flex-start;
  background:var(--accent-soft);border:1px solid rgba(88, 200, 220,.22);
  border-radius:var(--radius-lg);padding:14px 16px;margin-bottom:18px;
}
.dsmp-banner__ico{ font-size:20px;line-height:1; }
.dsmp-banner div{ font-size:var(--fs-base);color:var(--txt);line-height:1.55; }
.dsmp-banner b{ color:var(--primary);font-weight:var(--fw-semibold); }

/* ── tabela ── */
.dsmp-tab{
  width:100%;border-collapse:collapse;background:var(--card);
  border:1px solid var(--borda);border-radius:var(--radius-lg);overflow:hidden;
}
.dsmp-tab thead th{
  text-align:left;font-size:var(--fs-2xs);font-weight:var(--fw-bold);
  letter-spacing:.07em;text-transform:uppercase;color:var(--sub);
  background:var(--bg-soft);padding:11px 14px;border-bottom:1px solid var(--borda);
}
.dsmp-tab tbody td{
  padding:12px 14px;border-bottom:1px solid var(--borda-soft);
  font-size:var(--fs-base);color:var(--txt);vertical-align:middle;
}
.dsmp-tab tbody tr:last-child td{ border-bottom:none; }
.dsmp-tab tbody tr:hover{ background:var(--bg-soft); }
.dsmp-tr--off{ opacity:.55; }
.dsmp-tab__acoes{ white-space:nowrap; }

.dsmp-mot-nome{ font-weight:var(--fw-semibold);color:var(--txt); }
.dsmp-mot-sub{ font-size:var(--fs-sm);color:var(--muted);margin-top:2px; }

.dsmp-cred{
  font-family:var(--font-mono);font-size:var(--fs-sm);
  background:var(--info-soft);color:var(--primary);
  padding:3px 8px;border-radius:var(--radius-sm);font-weight:var(--fw-semibold);
}
.dsmp-mut{ color:var(--muted);font-size:var(--fs-sm); }

.dsmp-rodape{ font-size:var(--fs-sm);color:var(--muted);margin-top:10px; }

/* ── badges de situação ── */
.dsmp-badge{
  display:inline-block;font-size:var(--fs-2xs);font-weight:var(--fw-bold);
  letter-spacing:.05em;text-transform:uppercase;
  padding:4px 9px;border-radius:20px;white-space:nowrap;
}
.dsmp-bg-ok  { background:var(--ok-bg);  color:var(--ok);   }
.dsmp-bg-warn{ background:var(--warn-bg);color:var(--warn); }
.dsmp-bg-info{ background:var(--info-bg);color:var(--info); }
.dsmp-bg-crit{ background:var(--crit-bg);color:var(--crit); }
.dsmp-bg-mut { background:var(--neutral-bg);color:var(--neutral); }

/* ── botões-link inline ── */
.dsmp-link{
  background:none;border:none;cursor:pointer;
  font-family:var(--font-ui);font-size:var(--fs-sm);font-weight:var(--fw-semibold);
  color:var(--accent-dark);padding:4px 6px;border-radius:var(--radius-sm);
}
.dsmp-link:hover{ background:var(--accent-soft); }
.dsmp-link--mut{ color:var(--sub); }
.dsmp-link--mut:hover{ background:var(--neutral-bg); }
.dsmp-link + .dsmp-link{ margin-left:2px; }

/* ── modais ── */
.dsmp-modal-hint{
  font-size:var(--fs-base);color:var(--sub);line-height:1.55;margin-bottom:14px;
}
.dsmp-field-sub{
  display:block;font-size:var(--fs-sm);color:var(--muted);margin-top:4px;line-height:1.45;
}

/* ── revelar credenciais ── */
.dsmp-rev{
  background:var(--bg-soft);border:1px solid var(--borda);
  border-radius:var(--radius);padding:6px 14px;
}
.dsmp-rev-linha{
  display:flex;align-items:center;gap:10px;
  padding:10px 0;border-bottom:1px solid var(--borda-soft);
}
.dsmp-rev-linha:last-child{ border-bottom:none; }
.dsmp-rev-lbl{
  font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:.06em;
  text-transform:uppercase;color:var(--sub);min-width:118px;
}
.dsmp-rev-val{
  font-family:var(--font-mono);font-size:var(--fs-lg);font-weight:var(--fw-bold);
  color:var(--primary);background:var(--gold-soft);
  padding:5px 12px;border-radius:var(--radius-sm);letter-spacing:.04em;flex:1;
}
.dsmp-rev-aviso{
  font-size:var(--fs-sm);color:var(--warn);line-height:1.5;
  margin-top:12px;padding:9px 12px;background:var(--warn-bg);
  border-radius:var(--radius-sm);
}

/* ── card do gestor ── */
.dsmp-card{
  background:var(--card);border:1px solid var(--borda);
  border-radius:var(--radius-lg);padding:22px;max-width:560px;
}
.dsmp-card__status{ display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px; }
.dsmp-card__txt{
  font-size:var(--fs-base);color:var(--txt);line-height:1.6;margin-bottom:18px;
}
.dsmp-card__txt a{ color:var(--accent-dark);font-weight:var(--fw-semibold); }
.dsmp-card__txt b{ color:var(--primary);font-weight:var(--fw-semibold); }

/* ── responsivo ── */
@media (max-width:680px){
  .dsmp-head{ flex-direction:column; }
  .dsmp-tab{ display:block;overflow-x:auto;white-space:nowrap; }
}

/* ══════════════════════════════════════════════════════════════
   TELA · COMPARATIVO DE MOTORISTAS (gestor)
   ══════════════════════════════════════════════════════════════ */
.dsmp-root .cmp-filtros{
  display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:18px;
}
.dsmp-root .cmp-presets{
  display:inline-flex;gap:3px;background:var(--bg-soft);
  border:1px solid var(--borda);border-radius:var(--radius-md,10px);padding:3px;
}
.dsmp-root .cmp-preset{
  border:0;background:transparent;border-radius:8px;padding:8px 14px;cursor:pointer;
  font-family:var(--font-ui);font-weight:var(--fw-semibold);font-size:var(--fs-sm);
  color:var(--sub);transition:background .15s,color .15s,box-shadow .15s;
}
.dsmp-root .cmp-preset.is-on{ background:var(--card);color:var(--primary);box-shadow:0 1px 3px rgba(0,0,0,.12); }
.dsmp-root .cmp-range{ display:inline-flex;align-items:center;gap:8px; }
.dsmp-root .cmp-range input[type=date]{
  border:1px solid var(--borda);border-radius:var(--radius-sm);padding:7px 9px;
  font-size:var(--fs-sm);color:var(--txt);background:var(--card);
}
.dsmp-root .cmp-busca{
  flex:1;min-width:180px;border:1px solid var(--borda);border-radius:var(--radius-sm);
  padding:8px 12px;font-size:var(--fs-base);color:var(--txt);background:var(--card);
}
.dsmp-root .cmp-kpis{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:12px;margin-bottom:16px;
}
.dsmp-root .cmp-kpi{
  background:var(--card);border:1px solid var(--borda);
  border-radius:var(--radius-lg);padding:14px 16px;
}
.dsmp-root .cmp-kpi-top{ display:flex;align-items:center;gap:7px;margin-bottom:9px; }
.dsmp-root .cmp-kpi-ico{ font-size:15px;line-height:1; }
.dsmp-root .cmp-kpi-lbl{
  font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:.05em;
  text-transform:uppercase;color:var(--sub);line-height:1.2;
}
.dsmp-root .cmp-kpi-val{ font-family:var(--font-display);font-weight:700;font-size:var(--fs-2xl);color:var(--txt);line-height:1.05; }
.dsmp-root .cmp-kpi-sub{ font-size:var(--fs-sm);color:var(--muted);margin-top:4px; }
.dsmp-root .cmp-panel{
  background:var(--card);border:1px solid var(--borda);
  border-radius:var(--radius-lg);padding:18px;margin-bottom:16px;
}

/* distribuição das notas */
.dsmp-root .cmp-distrib{ }
.dsmp-root .cmp-distrib-tit{
  font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:.07em;
  text-transform:uppercase;color:var(--sub);margin-bottom:10px;
}
.dsmp-root .cmp-distrib-bar{
  display:flex;height:18px;border-radius:6px;overflow:hidden;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.05);
}
.dsmp-root .cmp-distrib-seg{ height:100%; }
.dsmp-root .cmp-distrib-seg:not(:last-child){ box-shadow:inset -1px 0 0 rgba(255,255,255,.4); }
.dsmp-root .cmp-distrib-legs{ display:flex;flex-wrap:wrap;gap:16px;margin-top:11px; }
.dsmp-root .cmp-distrib-leg{ display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--txt); }
.dsmp-root .cmp-distrib-leg i{ width:10px;height:10px;border-radius:3px;display:inline-block; }
.dsmp-root .cmp-distrib-leg b{ font-weight:var(--fw-bold); }

/* tabelão */
.dsmp-root .cmp-tab-wrap{ overflow-x:auto;margin-bottom:8px; }
.dsmp-root .cmp-tab{ width:100%;min-width:720px; }
.dsmp-root .cmp-th{ cursor:pointer;user-select:none;white-space:nowrap; }
.dsmp-root .cmp-th:hover{ color:var(--primary); }
.dsmp-root .cmp-th--num{ text-align:right; }
.dsmp-root .cmp-num{ text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap; }
.dsmp-root .cmp-mini{
  display:inline-block;width:54px;height:7px;border-radius:4px;background:var(--borda);
  vertical-align:middle;margin-right:7px;overflow:hidden;
}
.dsmp-root .cmp-mini-fill{ display:block;height:100%;border-radius:4px; }
.dsmp-root .cmp-mini-val{ font-variant-numeric:tabular-nums; }
.dsmp-root .cmp-nota{
  display:inline-block;min-width:34px;text-align:center;color:#fff;font-weight:var(--fw-bold);
  font-family:var(--font-display);padding:3px 8px;border-radius:7px;
}
.dsmp-root .cmp-flag{
  font-size:var(--fs-2xs);font-weight:var(--fw-semibold);color:#9A6A00;background:#FBF0D2;
  padding:1px 7px;border-radius:999px;margin-left:6px;white-space:nowrap;
}
.dsmp-root .cmp-tab tbody td{ vertical-align:middle; }

/* linha clicável + coluna de rank */
.dsmp-root .cmp-row{ cursor:pointer; }
.dsmp-root .cmp-th--rank,
.dsmp-root .cmp-tab .cmp-rank{ width:38px;text-align:center;color:var(--muted);font-variant-numeric:tabular-nums; }
.dsmp-root .cmp-tab .cmp-rank{ font-weight:var(--fw-bold); }

/* ── Drawer do motorista (renderiza fora do .dsmp-root) ── */
.fb-drawer .cmp-dw-sec{ padding:18px 0;border-bottom:1px solid var(--borda-soft); }
.fb-drawer .cmp-dw-sec:first-child{ padding-top:4px; }
.fb-drawer .cmp-dw-sec:last-child{ border-bottom:0; }
.fb-drawer .cmp-dw-cap{
  font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;
  color:var(--sub);margin-bottom:12px;
}
.fb-drawer .cmp-dw-banda{ font-family:var(--font-display);font-weight:700;font-size:18px;margin-bottom:14px; }
.fb-drawer .cmp-dw-bar{ margin-bottom:12px; }
.fb-drawer .cmp-dw-bar:last-child{ margin-bottom:0; }
.fb-drawer .cmp-dw-bar-top{ display:flex;justify-content:space-between;font-size:14px;color:var(--txt);margin-bottom:5px; }
.fb-drawer .cmp-dw-bar-top b{ font-variant-numeric:tabular-nums; }
.fb-drawer .cmp-dw-track{ height:9px;border-radius:5px;background:var(--borda);overflow:hidden; }
.fb-drawer .cmp-dw-track span{ display:block;height:100%;border-radius:5px; }
.fb-drawer .cmp-dw-grid{ display:grid;grid-template-columns:repeat(2,1fr);gap:14px 24px; }
.fb-drawer .cmp-dw-grid .l{ font-size:12px;color:var(--muted);margin-bottom:2px; }
.fb-drawer .cmp-dw-grid .v{ font-family:var(--font-display);font-weight:700;font-size:17px;color:var(--txt); }
.fb-drawer .cmp-dw-ev{ display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px dashed var(--borda-soft); }
.fb-drawer .cmp-dw-ev:last-child{ border-bottom:0; }
.fb-drawer .cmp-dw-ev-l{ font-size:14px;color:var(--txt); }
.fb-drawer .cmp-dw-ev-v{ font-variant-numeric:tabular-nums;font-weight:700;color:var(--txt); }
.fb-drawer .cmp-dw-ev-v i{ font-style:normal;font-weight:400;color:var(--muted);font-size:12px;margin-left:3px; }
.fb-drawer .cmp-dw-aviso{
  margin-top:14px;font-size:13px;color:#9A6A00;background:#FBF0D2;border-radius:8px;padding:10px 12px;
}

/* dois painéis de barra lado a lado (notas + composição) */
.dsmp-root .cmp-pansel{ display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px; }
.dsmp-root .cmp-pansel .cmp-panel{ margin-bottom:0; }
@media (max-width:900px){ .dsmp-root .cmp-pansel{ grid-template-columns:1fr; } }

/* mini-barra de composição (coluna Condução) */
.dsmp-root .cmp-compcell{ display:inline-flex;align-items:center;gap:8px;justify-content:flex-end; }
.dsmp-root .cmp-compbar{
  display:inline-flex;width:96px;height:9px;border-radius:5px;overflow:hidden;
  background:var(--borda);box-shadow:inset 0 0 0 1px rgba(0,0,0,.04);
}
.dsmp-root .cmp-compbar span{ height:100%; }
.dsmp-root .cmp-compbar span + span{ box-shadow:inset 1px 0 0 rgba(255,255,255,.5); }

/* distribuição das notas como chips de contagem (distinto da barra) */
.dsmp-root .cmp-nchips{ display:flex;flex-wrap:wrap;gap:10px; }
.dsmp-root .cmp-nchip{
  display:flex;align-items:center;gap:9px;flex:1 1 0;min-width:96px;
  background:var(--bg-soft);border:1px solid var(--borda-soft);border-radius:10px;padding:10px 12px;
}
.dsmp-root .cmp-nchip-bar{ width:4px;align-self:stretch;min-height:30px;border-radius:3px; }
.dsmp-root .cmp-nchip-n{ font-family:var(--font-display);font-weight:700;font-size:var(--fs-xl);color:var(--txt);line-height:1; }
.dsmp-root .cmp-nchip-l{ font-size:var(--fs-sm);color:var(--sub); }

/* ════ leitura consultiva — matriz 2×2 (econômico × seguro) ════ */
.dsmp-root .cmp-ins-head{ font-size:var(--fs-base);color:var(--txt);line-height:1.5;margin-bottom:16px; }
.dsmp-root .cmp-ins-head b{ font-weight:var(--fw-bold); }
.dsmp-root .cmp-ins-head em{ font-style:normal;font-weight:var(--fw-bold); }
/* Segmentos da frota — chips limpos (sem stripe de canto vivo) */
.dsmp-root .cmp-seg{ display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px; }
@media (max-width:820px){ .dsmp-root .cmp-seg{ grid-template-columns:repeat(2,1fr); } }
.dsmp-root .cmp-seg-cell{ background:var(--bg-soft);border:1px solid var(--borda);border-radius:var(--radius-md);padding:12px 14px;display:flex;flex-direction:column;gap:5px; }
.dsmp-root .cmp-seg-n{ font-family:var(--font-display);font-weight:700;font-size:var(--fs-2xl);line-height:1;color:var(--txt); }
.dsmp-root .cmp-seg-l{ display:flex;align-items:center;gap:7px;font-size:var(--fs-sm);color:var(--sub);line-height:1.2; }
.dsmp-root .cmp-seg-dot{ width:8px;height:8px;border-radius:50%;flex:0 0 8px; }

/* Rankings top 3 — cartões limpos */
.dsmp-root .cmp-ins-row2{ display:grid;grid-template-columns:1fr 1fr;gap:12px; }
@media (max-width:820px){ .dsmp-root .cmp-ins-row2{ grid-template-columns:1fr; } }
.dsmp-root .cmp-rank{ background:var(--bg-soft);border:1px solid var(--borda);border-radius:var(--radius-md);padding:14px 16px; }
.dsmp-root .cmp-rank-tag{ font-size:var(--fs-2xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.04em;color:var(--sub);margin-bottom:8px; }
.dsmp-root .cmp-rank-tag span{ display:block;text-transform:none;letter-spacing:0;font-weight:var(--fw-normal);color:var(--muted);margin-top:2px; }
.dsmp-root .cmp-rank-row{ display:flex;align-items:center;gap:10px;padding:7px 0;border-top:1px solid var(--borda); }
.dsmp-root .cmp-rank-row:first-of-type{ border-top:0; }
.dsmp-root .cmp-rank-pos{ width:20px;height:20px;border-radius:50%;background:var(--bg);color:var(--sub);font-size:var(--fs-2xs);font-weight:var(--fw-bold);display:flex;align-items:center;justify-content:center;flex:0 0 20px; }
.dsmp-root .cmp-rank-nome{ flex:1;min-width:0;font-size:var(--fs-sm);color:var(--txt);font-weight:var(--fw-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.dsmp-root .cmp-rank-val{ font-family:var(--font-display);font-weight:700;font-size:var(--fs-lg);font-variant-numeric:tabular-nums; }
.dsmp-root .cmp-rank-vazio{ color:var(--muted);font-size:var(--fs-sm);padding:7px 0; }
.dsmp-root .cmp-ins-foot{ margin-top:13px;font-size:var(--fs-sm);color:var(--muted); }

/* medalhas no ranking (top-3) — emoji */
.dsmp-root .cmp-rank-n{ color:var(--muted);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums; }
.dsmp-root .cmp-medal{ font-size:18px;line-height:1; }

/* drawer: leitura consultiva + detalhamento de cada nota */
.fb-drawer .cmp-dw-leitura{
  font-size:14px;color:var(--txt);line-height:1.5;margin:2px 0 4px;
  padding:12px 14px 12px 16px;border-radius:10px;box-shadow:inset 4px 0 0 0 var(--borda);
  background:var(--bg-soft);font-weight:500;
}
.fb-drawer .cmp-dw-leitura--ok{   box-shadow:inset 4px 0 0 0 var(--ok);   background:var(--ok-bg); }
.fb-drawer .cmp-dw-leitura--warn{ box-shadow:inset 4px 0 0 0 var(--warn); background:var(--warn-bg); }
.fb-drawer .cmp-dw-leitura--crit{ box-shadow:inset 4px 0 0 0 var(--crit); background:var(--crit-bg); }
.fb-drawer .cmp-dw-metric{ display:flex;justify-content:space-between;align-items:baseline;margin-bottom:9px;font-size:14px;color:var(--txt); }
.fb-drawer .cmp-dw-metric b{ font-family:var(--font-display);font-size:22px;font-variant-numeric:tabular-nums; }
.fb-drawer .cmp-dw-segbar{ display:flex;height:14px;border-radius:7px;overflow:hidden;background:var(--borda); }
.fb-drawer .cmp-dw-segbar span{ height:100%; }
.fb-drawer .cmp-dw-segbar span + span{ box-shadow:inset 1px 0 0 rgba(255,255,255,.5); }
.fb-drawer .cmp-dw-legs{ display:flex;flex-wrap:wrap;gap:12px;margin-top:10px; }
.fb-drawer .cmp-dw-leg{ display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--txt); }
.fb-drawer .cmp-dw-leg i{ width:9px;height:9px;border-radius:3px;display:inline-block; }
.fb-drawer .cmp-dw-leg b{ font-variant-numeric:tabular-nums; }
.fb-drawer .cmp-dw-sub{ margin-top:11px;font-size:12.5px;color:var(--muted); }
.fb-drawer .cmp-dw-loads{ margin-top:12px; }
.fb-drawer .cmp-dw-load{ display:flex;align-items:center;gap:9px;padding:8px 0;border-bottom:1px dashed var(--borda-soft); }
.fb-drawer .cmp-dw-load:last-child{ border-bottom:0; }
.fb-drawer .cmp-dw-load-dot{ width:9px;height:9px;border-radius:3px;flex:none; }
.fb-drawer .cmp-dw-load-l{ flex:1;font-size:14px;color:var(--txt); }
.fb-drawer .cmp-dw-load-l em{ display:block;font-style:normal;font-size:12px;color:var(--muted);margin-top:1px; }
.fb-drawer .cmp-dw-load-v{ font-family:var(--font-display);font-weight:700;font-variant-numeric:tabular-nums;color:var(--txt); }
.fb-drawer .cmp-dw-note{ margin-top:12px;font-size:12.5px;color:var(--muted);line-height:1.5; }
.fb-drawer .cmp-dw-note b{ color:var(--txt);font-weight:600; }
.fb-drawer .cmp-dw-okline{ font-size:14px;color:var(--ok);font-weight:600;background:var(--ok-bg);border-radius:9px;padding:11px 13px; }
.fb-drawer .cmp-dw-cells{ display:grid;grid-template-columns:repeat(2,1fr);gap:12px; }
.fb-drawer .cmp-dw-cell{ background:var(--bg-soft);border-radius:10px;padding:11px 13px; }
.fb-drawer .cmp-dw-cell .l{ font-size:12px;color:var(--muted);margin-bottom:3px; }
.fb-drawer .cmp-dw-cell .v{ font-family:var(--font-display);font-weight:700;font-size:18px;color:var(--txt);font-variant-numeric:tabular-nums; }
/* ════════════════════════════════════════════════════════════
   MAPA DE OCORRÊNCIAS  (porte do padrão Segurança Viária / Print)
   ════════════════════════════════════════════════════════════ */
.dsmp-root .sv-mapa-head h2 { font-size: 1.4rem; margin: 0 0 2px; color: #1D3B3A; }
.dsmp-root .sv-mapa .sv-sub { color: #6b7280; font-size: .9rem; margin: 0 0 16px; }
.dsmp-root .sv-mapa .sv-mut { color: #9ca3af; font-size: .8rem; }

/* Filtros */
.dsmp-root .sv-mapa-filtros {
  background: #fff; border: 1px solid #e5e7eb; border-radius: 12px;
  padding: 14px 18px; margin-bottom: 16px;
}
.dsmp-root .sv-mapa-slider-wrap { margin-bottom: 14px; }
.dsmp-root .sv-mapa-slider-wrap > label {
  display: block; font-weight: 600; font-size: .82rem; color: #374151; margin-bottom: 8px;
}
.dsmp-root .sv-mapa-slider-wrap > label span { color: #05AB34; font-weight: 700; }
.dsmp-root .sv-mapa-slider { position: relative; height: 30px; }
.dsmp-root .sv-mapa-slider-track {
  position: absolute; left: 9px; right: 9px; top: 50%; height: 6px;
  transform: translateY(-50%); border-radius: 3px;
  background: linear-gradient(90deg,#16a34a,#eab308,#f97316,#dc2626);
}
.dsmp-root .sv-mapa-slider-track::before,
.dsmp-root .sv-mapa-slider-track::after {
  content: ''; position: absolute; top: -1px; bottom: -1px;
  background: #fff; opacity: .78; border-radius: 3px;
}
.dsmp-root .sv-mapa-slider-track::before { left: 0; width: var(--a, 0%); }
.dsmp-root .sv-mapa-slider-track::after  { left: var(--b, 100%); right: 0; }
.dsmp-root .sv-mapa-slider input[type=range] {
  position: absolute; left: 0; top: 0; width: 100%; height: 30px; margin: 0;
  -webkit-appearance: none; appearance: none; background: transparent; pointer-events: none;
}
.dsmp-root .sv-mapa-slider input[type=range]::-webkit-slider-thumb {
  -webkit-appearance: none; pointer-events: auto;
  width: 18px; height: 18px; border-radius: 50%; background: #fff;
  border: 2px solid #1D3B3A; cursor: pointer; box-shadow: 0 1px 4px rgba(0,0,0,.35);
}
.dsmp-root .sv-mapa-slider input[type=range]::-moz-range-thumb {
  pointer-events: auto; width: 18px; height: 18px; border-radius: 50%;
  background: #fff; border: 2px solid #1D3B3A; cursor: pointer;
}
.dsmp-root .sv-mapa-filtros-row { display: flex; gap: 14px; align-items: flex-end; flex-wrap: wrap; }
.dsmp-root .sv-mapa-filtros-row label {
  display: flex; flex-direction: column; gap: 4px;
  font-size: .78rem; font-weight: 600; color: #374151;
}
.dsmp-root .sv-mapa-filtros-row select,
.dsmp-root .sv-mapa-filtros-row input[type=text],
.dsmp-root .sv-mapa-filtros-row input[type=date] {
  border: 1px solid #d1d5db; border-radius: 8px; padding: 7px 10px;
  font-size: .88rem; background: #fff; min-width: 160px;
}
.dsmp-root .sv-mapa-filtros-row input[type=date] { min-width: 150px; }
.dsmp-root .sv-mapa-filtros .cmp-presets { margin-bottom: 12px; }
.dsmp-root .sv-mapa-busca { flex: 1; }
.dsmp-root .sv-mapa-busca input { width: 100%; }
.dsmp-root .sv-btn { border: none; border-radius: 8px; padding: 8px 18px; font-weight: 600; font-size: .88rem; cursor: pointer; }
.dsmp-root .sv-btn-primary { background: #1D3B3A; color: #fff; }
.dsmp-root .sv-btn-primary:hover { background: #142a29; }

/* Grid mapa | tabela */
.dsmp-root .sv-mapa-grid { display: grid; grid-template-columns: 1.45fr 1fr; gap: 16px; align-items: stretch; }
@media (max-width: 980px) { .dsmp-root .sv-mapa-grid { grid-template-columns: 1fr; } }
.dsmp-root .sv-mapa-col-mapa { display: flex; flex-direction: column; gap: 8px; }
.dsmp-root .sv-mapa-canvas { height: 580px; border-radius: 12px; overflow: hidden; border: 1px solid #e5e7eb; z-index: 0; }
.dsmp-root .sv-mapa-erro { padding: 40px; text-align: center; color: #dc2626; }

/* Legenda */
.dsmp-root .sv-mapa-legenda { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: .74rem; color: #4b5563; }
.dsmp-root .sv-leg-grad { width: 120px; height: 9px; border-radius: 5px; background: linear-gradient(90deg, rgb(22,163,74), rgb(234,179,8), rgb(220,38,38)); }
.dsmp-root .sv-leg-lbl { color: #6b7280; }
.dsmp-root .sv-leg-sep { width: 1px; height: 16px; background: #e5e7eb; margin: 0 4px; }
.dsmp-root .sv-mapa-legenda i { display: inline-block; width: 11px; height: 11px; margin-right: 4px; vertical-align: middle; }

/* Tabela de detalhe */
.dsmp-root .sv-mapa-col-tab { display: flex; flex-direction: column; background: #fff; border: 1px solid #e5e7eb; border-radius: 12px; overflow: hidden; }
.dsmp-root .sv-mapa-tab-head { padding: 10px 14px; border-bottom: 1px solid #eef0f2; font-size: .82rem; color: #374151; font-weight: 600; background: #fafbfb; }
.dsmp-root .sv-mapa-tab-scroll { overflow: auto; max-height: 600px; }
.dsmp-root .sv-mapa-tab { width: 100%; border-collapse: collapse; font-size: .82rem; }
.dsmp-root .sv-mapa-tab thead th {
  position: sticky; top: 0; background: #f3f4f6; z-index: 1;
  text-align: left; padding: 8px 10px; font-size: .72rem; text-transform: uppercase;
  letter-spacing: .03em; color: #6b7280; border-bottom: 1px solid #e5e7eb;
}
.dsmp-root .sv-mapa-tab th.num, .dsmp-root .sv-mapa-tab td.num { text-align: right; }
.dsmp-root .sv-mapa-tab tbody td { padding: 8px 10px; border-bottom: 1px solid #f1f2f4; }
.dsmp-root .sv-mapa-tab tbody tr { cursor: pointer; transition: background .12s; }
.dsmp-root .sv-mapa-tab tbody tr:hover { background: #f0fdf4; }
.dsmp-root .sv-mapa-tab tbody tr.is-ativa { background: #dcfce7; box-shadow: inset 3px 0 0 #05AB34; }
.dsmp-root .sv-mapa-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 7px; vertical-align: middle; }
.dsmp-root .sv-mapa-vazio { text-align: center; color: #9ca3af; padding: 28px 12px; }

/* Marcadores / clusters / tooltip — GLOBAIS (Leaflet renderiza fora do root) */
.sv-pt-wrap, .sv-clu-wrap { background: transparent !important; border: 0 !important; }
.sv-pt { display: block; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 1px 4px rgba(0,0,0,.45); }
.sv-pt-foco { animation: sv-pt-bounce 1.2s ease; }
@keyframes sv-pt-bounce { 0%,100% { transform: scale(1); } 30% { transform: scale(1.8); } 60% { transform: scale(1.2); } }
.sv-clu { border-radius: 50%; color: #fff; font-weight: 700; font-size: .82rem; text-align: center; border: 2px solid #fff; box-shadow: 0 2px 8px rgba(0,0,0,.35); }
.leaflet-tooltip.sv-mapa-tip { font-size: .78rem; line-height: 1.35; }

/* ════════════════════════════════════════════════════════════
   CTA na SIDEBAR · "Abrir app do motorista" (injetado pelo módulo)
   Regra GLOBAL — o CTA vive na sidebar, fora de .dsmp-root.
   ════════════════════════════════════════════════════════════ */
.sidebar__acao-wrap { padding: 0 16px 10px; }
.sidebar__acao {
  display: flex; align-items: center; gap: 9px;
  width: 100%; box-sizing: border-box;
  padding: 9px 13px; border-radius: 10px;
  background: rgba(5,171,52,.12);
  color: #cdf4d9; font-weight: 600; font-size: 12.5px; letter-spacing: .1px;
  text-decoration: none; border: 1px solid rgba(5,171,52,.34);
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.sidebar__acao:hover { background: rgba(5,171,52,.2); border-color: rgba(5,171,52,.6); color: #eafff1; }
.sidebar__acao:active { transform: scale(.99); }
.sidebar__acao-ico { font-size: 16px; line-height: 1; flex-shrink: 0; }
.sidebar__acao-lbl { line-height: 1; }

/* ── "i" didático: como a nota é formada (Comparativo) ── */
.cmp-info-i{
  display:inline-flex;align-items:center;justify-content:center;
  width:22px;height:22px;border-radius:50%;border:1px solid var(--borda);
  background:var(--card);color:var(--sub);font:700 12px var(--font-ui,sans-serif);
  cursor:pointer;vertical-align:middle;margin-left:8px;padding:0;transition:.15s;
}
.cmp-info-i:hover{ color:var(--primary);border-color:var(--primary); }
.cmp-info{
  background:var(--card);border:1px solid var(--borda);
  border-radius:var(--radius-lg);padding:16px 18px;margin-bottom:18px;
}
.cmp-info-grid{ display:grid;grid-template-columns:1fr 1fr;gap:12px; }
.cmp-info-card{ background:var(--accent-soft);border-radius:10px;padding:12px 14px; }
.cmp-info-h{
  display:flex;align-items:center;gap:8px;
  font:700 14px var(--font-display);color:var(--txt);margin-bottom:5px;
}
.cmp-info-peso{
  font:700 12px var(--font-ui,sans-serif);background:var(--card);color:var(--primary);
  padding:2px 9px;border-radius:999px;
}
.cmp-info-card p{ font-size:13px;color:var(--sub);line-height:1.45; }
.cmp-info-foot{ margin-top:12px;font-size:var(--fs-base);color:var(--txt);line-height:1.5; }
@media (max-width:560px){ .cmp-info-grid{ grid-template-columns:1fr; } }
