/* ══════════════════════════════════════════════════════════════
   DFC · CSS · v1.0
   Escopo sob .dfc. Reusa tokens.css (paleta institucional).
   Define localmente os componentes cx-* que a tela usa, pra o
   módulo ser autossuficiente (não depende de diesel/manutencao css).
   ══════════════════════════════════════════════════════════════ */

.dfc { --dfc-pad: 22px; color: var(--txt); }

/* ── Cabeçalho ── */
.dfc-head { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin-bottom:20px; flex-wrap:wrap; }
.dfc-crumb { font-size:11px; font-weight:700; letter-spacing:.08em; color:var(--accent-dark); text-transform:uppercase; margin-bottom:4px; }
.dfc-head h1 { font-size:24px; font-weight:700; margin:0 0 6px; color:var(--primary); }
.dfc-sub { font-size:14px; color:var(--sub); margin:0; max-width:60ch; line-height:1.5; }

/* ── KPIs ── */
.cx-kpis { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; margin-bottom:18px; }
.dfc .cx-kpi { background:var(--card); border:1px solid var(--borda); border-radius:12px; padding:16px 18px; }
.dfc .cx-kpi__lbl { font-size:12px; font-weight:600; color:var(--sub); text-transform:uppercase; letter-spacing:.04em; margin-bottom:8px; }
.dfc .cx-kpi__val { font-size:26px; font-weight:700; color:var(--primary); font-variant-numeric:tabular-nums; line-height:1.1; }
.dfc .cx-kpi__hint { font-size:12px; color:var(--muted); margin-top:6px; }
.dfc .cx-kpi--ok  .cx-kpi__val { color:var(--ok); }
.dfc .cx-kpi--bad .cx-kpi__val { color:var(--crit); }
.dfc .cx-kpi--skel { height:96px; background:linear-gradient(90deg,#f3f3f5,#fafafb,#f3f3f5); border-radius:12px; animation:dfc-pulse 1.4s ease-in-out infinite; }
@keyframes dfc-pulse { 0%,100%{opacity:.6} 50%{opacity:1} }

/* ── Painel ── */
.dfc .cx-panel { background:var(--card); border:1px solid var(--borda); border-radius:14px; padding:var(--dfc-pad); margin-bottom:18px; }
.dfc .cx-h3 { font-size:14px; font-weight:700; color:var(--primary); text-transform:uppercase; letter-spacing:.04em; margin:0 0 14px; display:flex; align-items:baseline; gap:10px; }
.dfc .cx-h3-sub { font-size:12px; font-weight:500; color:var(--sub); text-transform:none; letter-spacing:0; }
.dfc-chart { width:100%; }
.dfc-chart-vazio, .dfc-loading { padding:30px; text-align:center; color:var(--muted); font-size:13px; }

/* ── Cards consultivos ── */
/* 04/09 · sem filete lateral em card nenhum: borda uniforme. */
.cx-insight-card { display:flex; gap:12px; padding:14px 16px; background:var(--bg-soft); border:1px solid var(--borda); border-radius:8px; margin-bottom:10px; }
.cx-insight-card.is-ok   { background:var(--ok-bg); }
.cx-insight-card.is-warn { background:var(--warn-bg); }
.cx-insight-card.is-bad  { background:var(--crit-bg); }
.cx-insight-card__ico { font-size:22px; flex-shrink:0; line-height:1.3; }
.cx-insight-card__corpo { flex:1; min-width:0; }
.cx-insight-card__lbl { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--sub); margin-bottom:3px; }
.cx-insight-card__val { font-size:20px; font-weight:700; color:var(--primary); font-variant-numeric:tabular-nums; margin-bottom:3px; }
.cx-insight-card.is-bad  .cx-insight-card__val { color:var(--crit); }
.cx-insight-card.is-warn .cx-insight-card__val { color:var(--warn); }
.cx-insight-card.is-ok   .cx-insight-card__val { color:var(--ok); }
.cx-insight-card__hint { font-size:13px; color:var(--txt); line-height:1.5; }
.cx-insight-card__hint b { font-weight:700; }

/* ── Tabelas ── */
.dfc-tabela-wrap { overflow-x:auto; }
.dfc-tabela { width:100%; border-collapse:collapse; font-size:13px; font-variant-numeric:tabular-nums; }
.dfc-tabela th { text-align:right; padding:8px 12px; font-size:11px; font-weight:700; color:var(--sub); text-transform:uppercase; letter-spacing:.04em; border-bottom:2px solid var(--borda); white-space:nowrap; }
.dfc-tabela th:first-child { text-align:left; }
.dfc-tabela td { text-align:right; padding:7px 12px; border-bottom:1px solid var(--borda-soft); white-space:nowrap; }
.dfc-tabela td:first-child { text-align:left; }
.dfc-tabela td.pos { color:var(--ok); }
.dfc-tabela td.neg { color:var(--crit); }
.dfc-tabela td.zero { color:var(--muted); }
.dfc-td-mes { font-weight:600; }

/* Demonstrativo: grupos/subtotais */
.dfc-demo .dfc-grp td { background:var(--primary-soft); font-weight:700; color:var(--primary); text-transform:uppercase; font-size:11px; letter-spacing:.05em; padding-top:12px; }
.dfc-demo .dfc-td-sub { padding-left:22px; color:var(--txt); }
.dfc-demo .dfc-subtot td { font-weight:700; border-top:1px solid var(--borda); border-bottom:1px solid var(--borda); background:var(--bg-soft); }
.dfc-demo .dfc-total td { font-weight:700; font-size:14px; color:var(--primary); border-top:2px solid var(--primary); background:var(--accent-soft); }
.dfc-demo-meta { font-size:12px; color:var(--sub); margin-bottom:12px; font-style:italic; }

/* ── Regime toggle ── */
.dfc-regime { display:inline-flex; background:var(--bg-soft); border:1px solid var(--borda); border-radius:10px; padding:3px; gap:2px; }
.dfc-regime__btn { border:0; background:transparent; padding:7px 14px; border-radius:8px; font-size:13px; font-weight:600; color:var(--sub); cursor:pointer; }
.dfc-regime__btn.is-active { background:var(--primary); color:#fff; }

/* ── Central de Dados ── */
.dfc-fontes-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:16px; margin-bottom:20px; }
.dfc-fonte-card { background:var(--card); border:1px solid var(--borda); border-radius:14px; padding:20px; }
.dfc-fonte-card__ico { font-size:28px; margin-bottom:8px; }
.dfc-fonte-card h3 { font-size:15px; font-weight:700; color:var(--primary); margin:0 0 8px; }
.dfc-fonte-card p { font-size:13px; color:var(--sub); line-height:1.55; margin:0 0 12px; }
.dfc-fonte-card__tag { display:inline-block; font-size:11px; font-weight:700; color:var(--accent-dark); background:var(--accent-soft); padding:4px 10px; border-radius:20px; text-transform:uppercase; letter-spacing:.04em; }
.dfc-cta { display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.dfc-btn-primary { display:inline-block; background:var(--primary); color:#fff; text-decoration:none; padding:11px 20px; border-radius:10px; font-weight:600; font-size:14px; }
.dfc-btn-primary:hover { background:var(--primary-dark); }
.dfc-cta__hint { font-size:12px; color:var(--muted); }

/* ── Dropzone (upload no lugar) ── */
.dfc-drop { border:2px dashed var(--borda); border-radius:14px; padding:34px 20px; text-align:center; cursor:pointer; background:var(--bg-soft); transition:border-color .15s, background .15s; outline:none; }
.dfc-drop:hover, .dfc-drop:focus-visible { border-color:var(--accent); background:var(--accent-soft); }
.dfc-drop.is-over { border-color:var(--accent); background:var(--accent-soft); }
.dfc-drop__ico { font-size:30px; margin-bottom:8px; }
.dfc-drop__txt { font-size:15px; font-weight:600; color:var(--primary); }
.dfc-drop__link { color:var(--accent-dark); text-decoration:underline; }
.dfc-drop__hint { font-size:12px; color:var(--muted); margin-top:6px; }

/* ── Progresso de ingestão ── */
.dfc-prog { margin-top:14px; display:flex; flex-direction:column; gap:8px; }
.dfc-prog__item { display:flex; align-items:center; gap:12px; padding:12px 14px; border:1px solid var(--borda); border-radius:10px; background:var(--card); }
/* 04/09 · sem filete lateral: a semântica fica no texto do status e
   numa borda apenas insinuada, não num anel colorido. */
.dfc-prog__item.is-ok   { border-color:color-mix(in srgb, var(--ok) 32%, var(--borda)); }
.dfc-prog__item.is-warn { border-color:color-mix(in srgb, var(--warn) 32%, var(--borda)); }
.dfc-prog__item.is-erro { border-color:color-mix(in srgb, var(--crit) 32%, var(--borda)); }
.dfc-prog__item.is-ok   .dfc-prog__status { color:var(--ok); }
.dfc-prog__item.is-warn .dfc-prog__status { color:var(--warn); }
.dfc-prog__item.is-erro .dfc-prog__status { color:var(--crit); }
.dfc-prog__ico { font-size:20px; }
.dfc-prog__body { flex:1; min-width:0; }
.dfc-prog__nome { font-weight:600; font-size:14px; color:var(--primary); }
.dfc-prog__sz { font-weight:400; color:var(--muted); font-size:12px; margin-left:6px; }
.dfc-prog__status { font-size:13px; color:var(--sub); margin-top:2px; }
.dfc-prog__meta { font-size:12px; color:var(--muted); margin-top:2px; }
.dfc-prog__spin { width:18px; height:18px; border:2px solid var(--borda); border-top-color:var(--accent); border-radius:50%; animation:dfc-spin .8s linear infinite; flex-shrink:0; }
@keyframes dfc-spin { to { transform:rotate(360deg); } }

/* ── Cobertura ── */
.dfc-cobertura { margin-top:16px; }
.dfc-cob__titulo { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--sub); margin-bottom:6px; }
.dfc-cob__row { display:flex; gap:24px; flex-wrap:wrap; font-size:13px; color:var(--txt); }

/* ── Desdobramento (DRE de caixa) ── */
.dfc-dd { font-variant-numeric:tabular-nums; }
.dfc-dd__grp { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--primary); margin:14px 0 6px; }
.dfc-dd__grp:first-child { margin-top:0; }
.dfc-dd__row, .dfc-dd__subtot, .dfc-dd__total { display:grid; grid-template-columns:minmax(140px,1.4fr) 3fr minmax(90px,auto); align-items:center; gap:12px; padding:4px 0; }
.dfc-dd__lbl { font-size:13px; color:var(--txt); }
.dfc-dd__bar { height:10px; background:var(--bg-soft); border-radius:6px; overflow:hidden; }
.dfc-dd__bar span { display:block; height:100%; border-radius:6px; }
.dfc-dd__bar span.pos { background:#1D9E75; }
.dfc-dd__bar span.neg { background:#D85A30; }
.dfc-dd__val { text-align:right; font-size:13px; font-weight:600; }
.dfc-dd__val.pos { color:var(--ok); }
.dfc-dd__val.neg { color:var(--crit); }
.dfc-dd__subtot { border-top:1px solid var(--borda); margin-top:4px; }
.dfc-dd__subtot .dfc-dd__lbl, .dfc-dd__subtot .dfc-dd__val { font-weight:700; }
.dfc-dd__total { border-top:2px solid var(--primary); margin-top:6px; }
.dfc-dd__total .dfc-dd__lbl { font-weight:700; color:var(--primary); }
.dfc-dd__total .dfc-dd__val { font-size:15px; font-weight:700; }

/* ── Pai/filho (grupo de conta → natureza) ── */
.dfc-pf__head, .dfc-pf__row {
  display:grid; grid-template-columns: 1fr 96px 92px 130px; align-items:center; gap:10px;
}
.dfc-pf__head { padding:6px 12px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--sub); border-bottom:2px solid var(--borda); }
.dfc-pf__head span:not(.dfc-pf__lbl) { text-align:right; }
.dfc-pf__grp { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--primary); margin:14px 0 4px; padding:0 12px; }
.dfc-pf__row { width:100%; border:0; background:transparent; padding:9px 12px; border-bottom:1px solid var(--borda-soft); cursor:pointer; font-size:13px; text-align:left; font-variant-numeric:tabular-nums; }
.dfc-pf__row:hover { background:var(--bg-soft); }
.dfc-pf__lbl { color:var(--txt); display:flex; align-items:center; gap:8px; }
.dfc-pf__lbl em { color:var(--muted); font-style:normal; font-size:11px; }
.dfc-pf__chev { color:var(--accent-dark); font-size:11px; }
.dfc-pf__rkm, .dfc-pf__pct { text-align:right; color:var(--sub); }
.dfc-pf__val { text-align:right; font-weight:600; }
.dfc-pf__val.pos { color:var(--ok); }
.dfc-pf__val.neg { color:var(--crit); }
.dfc-pf__det { padding:8px 12px 14px; background:var(--bg-soft); border-bottom:1px solid var(--borda); }
.dfc-drawer-tab { width:100%; }
.dfc-drawer-tab th, .dfc-drawer-tab td { font-size:13px; }

/* ── Vazio / erro ── */
.dfc-vazio { text-align:center; padding:48px 24px; color:var(--sub); }
.dfc-vazio__ico { font-size:40px; margin-bottom:12px; }
.dfc-vazio h3 { font-size:17px; color:var(--primary); margin:0 0 8px; }
.dfc-vazio p { font-size:14px; max-width:46ch; margin:0 auto; line-height:1.5; }
.dfc-vazio a { color:var(--accent-dark); font-weight:600; }
.dfc-erro { padding:16px; background:var(--crit-bg); color:var(--crit); border-radius:8px; font-size:13px; }

/* ── Tags de situação (recebíveis) ── */
.dfc-tag { display:inline-block; font-size:11px; font-weight:700; padding:3px 9px; border-radius:20px; white-space:nowrap; }
.dfc-tag.is-ok   { background:var(--ok-bg);   color:var(--ok); }
.dfc-tag.is-warn { background:var(--warn-bg); color:var(--warn); }
.dfc-tag.is-bad  { background:var(--crit-bg); color:var(--crit); }
.dfc-tabela td .dfc-tag { font-variant-numeric:normal; }

/* ── Panorama no padrão Segurança (.sv-root): pai/filho clicável ── */
.sv-root .dfc-pf-grupo { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--primary, #064d57); margin:18px 0 2px; }
.sv-root .dfc-pf-grupo:first-child { margin-top:4px; }
.sv-root .dfc-pf-row { cursor:pointer; border-radius:10px; transition:background .15s ease; }
.sv-root .dfc-pf-row:hover { background:rgba(88,200,220,.09); }
.sv-root .dfc-pf-row:focus-visible { outline:2px solid var(--accent, #029d66); outline-offset:2px; }
.sv-root .dfc-pf-chev { align-self:center; color:#c2cad4; font-size:22px; line-height:1; transition:transform .15s ease, color .15s ease; }
.sv-root .dfc-pf-row:hover .dfc-pf-chev { color:var(--accent, #029d66); transform:translateX(3px); }

/* ── Gráfico receita × despesa: rótulo resumido + minicard ── */
.sv-root .dfc-evolwrap { position:relative; }
.sv-root .dfc-evolsvg { display:block; width:100%; height:auto; }
.sv-root .dfc-lblmini { font-size:10px; font-weight:700; paint-order:stroke; stroke:#fff; stroke-width:3px; stroke-linejoin:round; }
.sv-root .dfc-guide { position:absolute; width:1px; background:rgba(56,29,84,.18); pointer-events:none; display:none; }
.sv-root .dfc-tt {
  position:absolute; z-index:6; pointer-events:none; transform:translateX(-50%);
  background:#fff; border:1px solid #e9ecef; border-radius:10px;
  box-shadow:0 10px 28px rgba(16,24,40,.16); padding:9px 11px; min-width:158px; display:none;
}
.sv-root .dfc-tt__mes { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--primary, #064d57); margin-bottom:6px; }
.sv-root .dfc-tt__row { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:2px 0; font-size:12px; }
.sv-root .dfc-tt__lbl { display:flex; align-items:center; gap:6px; color:#475467; }
.sv-root .dfc-tt__lbl i { width:8px; height:8px; border-radius:50%; display:inline-block; }
.sv-root .dfc-tt__val { font-weight:700; font-variant-numeric:tabular-nums; }
.sv-root .dfc-tt__res { border-top:1px solid #eef0f2; margin-top:5px; padding-top:6px; }

/* ── Donuts cromáticos lado a lado ── */
.sv-root .dfc-donuts { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
@media (max-width:820px){ .sv-root .dfc-donuts { grid-template-columns:1fr; } }
.sv-root .dfc-donut-tit { font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--primary, #064d57); margin-bottom:8px; }

/* ── Visão por veículo ── */
.sv-root .dfc-placa-resumo { display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:13px; color:#475467; margin-bottom:10px; }
.sv-root .dfc-tab-wrap { max-height:420px; overflow:auto; border-radius:10px; }
.sv-root .dfc-placa-tab tbody tr { cursor:pointer; }
.sv-root .dfc-placa-nome { font-weight:600; display:flex; align-items:center; gap:8px; }
.sv-root .dfc-placa-rk { display:inline-flex; align-items:center; justify-content:center; min-width:20px; height:20px; padding:0 5px; border-radius:6px; background:#f1f3f9; color:#475467; font-size:11px; font-weight:700; }
.sv-root .dfc-placa-chev { color:#c2cad4; font-size:18px; text-align:right; transition:transform .15s, color .15s; }
.sv-root .dfc-placa-tab tbody tr:hover .dfc-placa-chev { color:var(--accent, #029d66); transform:translateX(3px); }
.sv-root .dfc-badge { display:inline-block; padding:2px 9px; border-radius:999px; font-size:11px; font-weight:700; }
.sv-root .dfc-badge--ok { background:#d1fae5; color:#047857; }
.sv-root .dfc-badge--warn { background:#fef3c7; color:#b45309; }
.sv-root .dfc-badge--crit { background:#fee2e2; color:#b91c1c; }

/* ── Seções e dicas dentro dos drawers (conteúdo agora em .sv-root) ── */
.sv-root .dfc-drawer-sec { margin-bottom:22px; }
.sv-root .dfc-drawer-sec h5 { font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--primary, #064d57); margin:0 0 10px; }
.sv-root .dfc-chartslot { min-height:120px; }
.sv-root .dfc-tip { background:#f6f8fb; border:1px solid var(--borda, #e2e6e5); border-radius:8px; padding:10px 12px; font-size:13px; color:#344054; margin-bottom:22px; }
.sv-root .dfc-tips { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.sv-root .dfc-tips li { background:#f6f8fb; border:1px solid var(--borda, #e2e6e5); border-radius:8px; padding:9px 12px; font-size:13px; color:#344054; }

/* ── Donut profissional (miolo com total + legenda em grid) ── */
.sv-root .dfc-donut { display:flex; flex-direction:column; align-items:center; gap:14px; }
.sv-root .dfc-donut-svg svg { width:170px; height:170px; display:block; }
.sv-root .dfc-donut-cv { font-size:21px; font-weight:800; fill:#1f2937; }
.sv-root .dfc-donut-cl { font-size:10px; font-weight:600; fill:#98a2b3; text-transform:uppercase; letter-spacing:.06em; }
.sv-root .dfc-donut-leg { width:100%; display:flex; flex-direction:column; gap:1px; }
.sv-root .dfc-leg-item { display:grid; grid-template-columns:12px 1fr auto auto; align-items:center; gap:10px; padding:5px 6px; border-radius:6px; font-size:13px; }
.sv-root .dfc-leg-item:hover { background:#f6f8fb; }
.sv-root .dfc-leg-dot { width:10px; height:10px; border-radius:3px; }
.sv-root .dfc-leg-nome { color:#344054; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sv-root .dfc-leg-pct { font-weight:700; color:#1f2937; font-variant-numeric:tabular-nums; }
.sv-root .dfc-leg-val { color:#98a2b3; font-variant-numeric:tabular-nums; font-size:12px; }

/* ── Tela Veículos ── */
.sv-root .dfc-filtros { display:flex; gap:14px; flex-wrap:wrap; margin-bottom:16px; }
.sv-root .dfc-filtro { display:flex; flex-direction:column; gap:4px; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.04em; color:#98a2b3; }
.sv-root .dfc-filtro select { padding:9px 12px; border:1px solid #d8dee6; border-radius:9px; background:#fff; font-size:13px; color:#1f2937; min-width:210px; cursor:pointer; }
.sv-root .dfc-filtro select:focus { outline:2px solid var(--accent, #029d66); outline-offset:1px; }
.sv-root .dfc-v-resumo { display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:13px; color:#475467; margin-bottom:16px; padding:10px 14px; background:#f6f8fb; border-radius:10px; }
.sv-root .dfc-v-grid2 { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
@media (max-width:880px){ .sv-root .dfc-v-grid2 { grid-template-columns:1fr; } }

/* diverging bars (na média x fora) */
.sv-root .dfc-div { display:flex; flex-direction:column; gap:6px; }
.sv-root .dfc-div-row { display:grid; grid-template-columns:92px 1fr 96px; align-items:center; gap:12px; cursor:pointer; padding:3px 6px; border-radius:7px; transition:background .12s; }
.sv-root .dfc-div-row:hover { background:#f6f8fb; }
.sv-root .dfc-div-nome { font-weight:600; font-size:13px; color:#344054; }
.sv-root .dfc-div-track { position:relative; height:14px; background:#eef1f4; border-radius:7px; }
.sv-root .dfc-div-mid { position:absolute; left:50%; top:-3px; bottom:-3px; width:2px; background:#cbd5e1; border-radius:2px; }
.sv-root .dfc-div-bar { position:absolute; top:0; bottom:0; border-radius:7px; transition:width .35s ease; }
.sv-root .dfc-div-val { text-align:right; font-size:12px; font-weight:700; font-variant-numeric:tabular-nums; }

/* tabela limpa por veículo */
.sv-root .dfc-vtab { width:100%; border-collapse:collapse; font-variant-numeric:tabular-nums; }
.sv-root .dfc-vtab thead th { font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:#98a2b3; text-align:left; padding:8px 10px; border-bottom:1px solid #e6e9e8; }
.sv-root .dfc-vtab th.num { text-align:right; }
.sv-root .dfc-vtab td { padding:10px; font-size:13px; border-bottom:1px solid #f1f3f2; }
.sv-root .dfc-vtab td.num { text-align:right; }
.sv-root .dfc-vtab tbody tr:last-child td { border-bottom:0; }
.sv-root .dfc-vtab-row { cursor:pointer; transition:background .12s; }
.sv-root .dfc-vtab-row:hover { background:#f6f8fb; }
.sv-root .dfc-vtab-rk { color:#98a2b3; font-size:12px; }
.sv-root .dfc-vtab-placa { font-weight:600; color:#1f2937; }
.sv-root .dfc-vtab-chev { color:#c2cad4; font-size:17px; text-align:right; transition:transform .15s, color .15s; }
.sv-root .dfc-vtab-row:hover .dfc-vtab-chev { color:var(--accent, #029d66); transform:translateX(3px); }
.sv-root .dfc-chartslot1, .sv-root .dfc-chartslot2 { min-height:120px; }

/* ── Cabeçalho com botão de regime ── */
.sv-root .dfc-head-row { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; flex-wrap:wrap; }
.sv-root .dfc-regime { display:inline-flex; background:#eef1f4; border-radius:12px; padding:4px; gap:3px; flex-shrink:0; margin-top:4px; }
.sv-root .dfc-regime__btn { display:flex; flex-direction:column; align-items:center; gap:1px; border:0; background:transparent; cursor:pointer; padding:7px 18px; border-radius:9px; color:#667085; transition:background .15s, color .15s, box-shadow .15s; line-height:1.12; }
.sv-root .dfc-regime__btn:hover { color:var(--primary, #064d57); }
.sv-root .dfc-regime__btn.is-on { background:#fff; box-shadow:0 1px 3px rgba(16,24,40,.13); color:var(--primary, #064d57); }
.sv-root .dfc-regime__t { font-size:13px; font-weight:700; }
.sv-root .dfc-regime__s { font-size:9px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; opacity:.55; }
.sv-root .dfc-regime__btn.is-on .dfc-regime__s { color:var(--accent, #029d66); opacity:1; }

/* ── DRE montado ── */
.sv-root .dre-tab { width:100%; border-collapse:collapse; font-variant-numeric:tabular-nums; }
.sv-root .dre-tab thead th { font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:#98a2b3; text-align:left; padding:7px 10px; border-bottom:1px solid #e6e9e8; }
.sv-root .dre-tab th.num, .sv-root .dre-tab td.num { text-align:right; }
.sv-root .dre-row td { padding:9px 10px; font-size:13.5px; border-bottom:1px solid #f4f6f5; color:#475467; }
.sv-root .dre-lbl { color:#344054; }
.sv-root .dre-mut { color:#98a2b3; font-size:12px; }
.sv-root .dre-row.is-sub td { font-weight:700; color:#1f2937; background:#fafbfc; border-top:1px solid #e6e9e8; }
.sv-root .dre-row.is-sub .dre-lbl { color:#1f2937; }
.sv-root .dre-row.is-forte td { font-weight:800; font-size:15px; color:#fff; background:var(--primary, #064d57); border:0; }
.sv-root .dre-row.is-forte .dre-lbl, .sv-root .dre-row.is-forte .dre-mut { color:#fff; }
.sv-root .dre-row.is-forte td:first-child { border-radius:9px 0 0 9px; }
.sv-root .dre-row.is-forte td:last-child { border-radius:0 9px 9px 0; }
.sv-root .dre-row.is-clk { cursor:pointer; }
.sv-root .dre-row.is-clk:hover td { background:color-mix(in srgb, var(--primary, #064d57) 6%, #fff); }
.sv-root .dre-chev { color:#c2cad4; margin-left:6px; font-size:15px; }
.sv-root .dre-row.is-clk:hover .dre-chev { color:var(--accent, #029d66); }
.sv-root .dre-d-sub td { font-weight:700; background:#fafbfc; }
.sv-root .dre-d-nat { padding-left:22px !important; color:#667085; }

/* tips em drawers */
.sv-root .dfc-tips { margin:0; padding-left:18px; display:flex; flex-direction:column; gap:6px; }
.sv-root .dfc-tips li { font-size:13px; color:#475467; line-height:1.5; }

/* ── DRE montado · 3 blocos ── */
.sv-root .dre-grid3 { display:grid; grid-template-columns:1fr 1.25fr 1fr; gap:16px; align-items:start; }
@media (max-width:980px){ .sv-root .dre-grid3 { grid-template-columns:1fr; } }
.sv-root .dfc-tab-wrap { overflow-x:auto; }

/* ranking de conjunto */
.sv-root .dre-rank { display:flex; flex-direction:column; gap:2px; max-height:560px; overflow-y:auto; }
.sv-root .dre-rank-row { display:flex; align-items:center; gap:8px; padding:5px 6px; border-radius:6px; cursor:pointer; transition:background .12s; }
.sv-root .dre-rank-row:hover { background:#f6f8fb; }
.sv-root .dre-rank-pl { font-weight:600; font-size:12px; width:72px; flex-shrink:0; color:#344054; }
.sv-root .dre-rank-km { font-size:10px; color:#98a2b3; width:56px; flex-shrink:0; text-align:right; }
.sv-root .dre-rank-bar { flex:1; height:8px; background:#f1f3f5; border-radius:5px; position:relative; min-width:30px; }
.sv-root .dre-rank-bar span { position:absolute; left:0; top:0; bottom:0; border-radius:5px; transition:width .35s ease; }
.sv-root .dre-rank-v { font-size:11px; font-weight:700; width:80px; text-align:right; flex-shrink:0; font-variant-numeric:tabular-nums; }

/* árvore tipo da conta */
.sv-root .dre-tree-head, .sv-root .dre-tree-row, .sv-root .dre-tree-sub, .sv-root .dre-tree-tot { display:grid; grid-template-columns:1fr 72px 56px 46px; gap:4px; align-items:center; font-variant-numeric:tabular-nums; }
.sv-root .dre-tree-head { font-size:10px; text-transform:uppercase; letter-spacing:.03em; color:#98a2b3; padding:4px 6px; border-bottom:1px solid #e6e9e8; }
.sv-root .dre-tree-head .num { text-align:right; }
.sv-root .dre-tree-row { padding:8px 6px; font-size:12.5px; cursor:pointer; border-radius:6px; }
.sv-root .dre-tree-grp:hover .dre-tree-row { background:#f6f8fb; }
.sv-root .dre-tree-name { font-weight:600; display:flex; align-items:center; gap:6px; color:#344054; }
.sv-root .dre-tree-tw { font-size:9px; color:#98a2b3; width:10px; }
.sv-root .dre-tree-row .num, .sv-root .dre-tree-sub .num, .sv-root .dre-tree-tot .num { text-align:right; font-size:11.5px; }
.sv-root .dre-tree-sub { padding:4px 6px 4px 24px; font-size:11.5px; color:#667085; }
.sv-root .dre-tree-tot { padding:9px 6px; font-weight:700; color:#1f2937; border-top:1px solid #e6e9e8; margin-top:4px; }

/* benchmark por conjunto */
.sv-root .dre-bench { width:100%; border-collapse:collapse; font-variant-numeric:tabular-nums; font-size:12px; }
.sv-root .dre-bench thead th { font-size:10px; text-transform:uppercase; letter-spacing:.02em; color:#98a2b3; text-align:left; padding:8px 6px; border-bottom:1px solid #e6e9e8; white-space:nowrap; }
.sv-root .dre-bench th.num { text-align:right; }
.sv-root .dre-bench td { padding:8px 6px; border-bottom:1px solid #f4f6f5; }
.sv-root .dre-bench td.num { text-align:right; white-space:nowrap; }
.sv-root .dre-bench tbody tr:last-child td { border-bottom:0; }
.sv-root .dre-bench-row { cursor:pointer; transition:background .12s; }
.sv-root .dre-bench-row:hover td { background:#f6f8fb; }
.sv-root .dre-bench-pl { font-weight:600; color:#1f2937; }
.sv-root .dre-ic { display:inline-block; margin-left:5px; font-size:10px; font-weight:800; width:12px; text-align:center; }
.sv-root .dre-ic.ok { color:#1D9E75; }
.sv-root .dre-ic.bad { color:#D9442B; }
.sv-root .dre-ic.warn { color:#E0922F; }

/* ── DRE v2: gráfico primeiro, DRE largo, ranking+árvore em dupla ── */
.sv-root .dre-grid2 { display:grid; grid-template-columns:1fr 1fr; gap:16px; align-items:start; }
@media (max-width:880px){ .sv-root .dre-grid2 { grid-template-columns:1fr; } }

/* demonstração em largura total, legível, sem quebra de valor */
.sv-root .dre-demo .dre-tab { max-width:880px; margin:0 auto; }
.sv-root .dre-tab td, .sv-root .dre-tab th { white-space:nowrap; }
.sv-root .dre-tab thead th:first-child, .sv-root .dre-tab td.dre-lbl { white-space:normal; }
.sv-root .dre-tab th.num { min-width:112px; }
.sv-root .dre-demo .dre-row td { padding:12px 16px; font-size:14px; }
.sv-root .dre-demo .dre-lbl { font-size:14px; }
.sv-root .dre-demo .dre-row.is-sub td { font-size:14px; }
.sv-root .dre-demo .dre-row.is-forte td { font-size:16px; padding:15px 16px; }
.sv-root .dre-demo .dre-mut { font-size:12.5px; }

/* ranking: mais respiro, barra maior */
.sv-root .dre-rank { max-height:none; }
.sv-root .dre-rank-row { padding:7px 8px; gap:10px; }
.sv-root .dre-rank-pl { width:78px; font-size:12.5px; }
.sv-root .dre-rank-km { width:62px; }
.sv-root .dre-rank-bar { height:9px; }
.sv-root .dre-rank-v { width:84px; font-size:12px; }

/* árvore: linhas mais altas */
.sv-root .dre-tree-row { padding:10px 8px; font-size:13px; }
.sv-root .dre-tree-grp { border-bottom:1px solid #f4f6f5; }
.sv-root .dre-tree-row .num, .sv-root .dre-tree-sub .num, .sv-root .dre-tree-tot .num { font-size:12px; white-space:nowrap; }
.sv-root .dre-tree-head, .sv-root .dre-tree-row, .sv-root .dre-tree-sub, .sv-root .dre-tree-tot { grid-template-columns:1fr 84px 64px 50px; }

/* ── Cabeçalho limpo (título + regime), no lugar do hero ── */
.sv-root .dre-head { display:flex; justify-content:space-between; align-items:center; gap:18px; flex-wrap:wrap; padding-bottom:14px; margin-bottom:14px; border-bottom:1px solid #ececf0; }
.sv-root .dre-head-l { min-width:0; }
.sv-root .dre-eyebrow { font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#8a7fb0; }
.sv-root .dre-h1 { font-size:23px; font-weight:800; color:#2a1745; margin:3px 0 2px; line-height:1.15; }
.sv-root .dre-h1sub { font-size:13px; color:#667085; margin:0; }
.sv-root .dre-head-r { flex-shrink:0; }

/* ══════════════════════════════════════════════════════════════
   v2026-07-08 · Meta do ano · Δ setas · Comparador · filtro recebíveis
   ══════════════════════════════════════════════════════════════ */

/* setinha de variação (DRE e Demonstrativo) */
.sv-root .dre-delta { font-size:11px; font-weight:700; white-space:nowrap; font-variant-numeric:tabular-nums; }
.sv-root .dre-delta.is-ok { color:#0b6b27; }
.sv-root .dre-delta.is-bad { color:#b91c1c; }
.sv-root .dre-row.is-forte .dre-delta.is-ok { color:#8ef0b9; }
.sv-root .dre-row.is-forte .dre-delta.is-bad { color:#ffb3a6; }

/* seção Meta do ano */
.sv-root .dre-meta { margin-bottom:16px; }
.sv-root .dre-meta-edit { border:0; background:none; cursor:pointer; font-size:12px; padding:0 2px; opacity:.65; }
.sv-root .dre-meta-edit:hover { opacity:1; }
.sv-root .dre-meta-grid { display:grid; grid-template-columns:1.3fr 1fr; gap:20px; align-items:center; }
@media (max-width:860px){ .sv-root .dre-meta-grid { grid-template-columns:1fr; } }
.sv-root .dre-meta-bar { position:relative; height:18px; background:#f1f3f5; border-radius:10px; overflow:hidden; }
.sv-root .dre-meta-bar > span { position:absolute; left:0; top:0; bottom:0; border-radius:10px; transition:width .4s ease; }
.sv-root .dre-meta-mark { position:absolute; top:-2px; bottom:-2px; width:2px; background:var(--primary, #064d57); opacity:.55; }
.sv-root .dre-meta-legs { display:flex; justify-content:space-between; margin-top:7px; font-size:12.5px; color:#475467; }
.sv-root .dre-meta-kpis { display:grid; grid-template-columns:1fr 1fr; gap:8px 16px; }
.sv-root .dre-meta-kpi { display:flex; flex-direction:column; gap:2px; padding:7px 10px; background:#fafbfc; border:1px solid #eef1f0; border-radius:9px; }
.sv-root .dre-meta-kpi .l { font-size:10.5px; text-transform:uppercase; letter-spacing:.03em; color:#98a2b3; }
.sv-root .dre-meta-kpi .v { font-size:14.5px; font-weight:800; color:#1f2937; font-variant-numeric:tabular-nums; }

/* comparador de conjuntos */
.sv-root .dre-comp-head { display:flex; align-items:center; justify-content:center; gap:18px; margin-bottom:12px; flex-wrap:wrap; }
.sv-root .dre-comp-side { display:flex; flex-direction:column; align-items:center; gap:4px; }
.sv-root .dre-comp-sel { font-size:14px; font-weight:700; padding:7px 12px; border:1px solid #d8dee4; border-radius:9px; background:#fff; color:#1f2937; cursor:pointer; }
.sv-root .dre-comp-score { font-size:11px; color:#98a2b3; }
.sv-root .dre-comp-vs { font-size:20px; font-weight:800; color:var(--primary, #064d57); }
.sv-root .dre-comp-tab { width:100%; border-collapse:collapse; font-variant-numeric:tabular-nums; }
.sv-root .dre-comp-tab td { padding:8px 10px; font-size:13px; border-bottom:1px solid #f4f6f5; color:#475467; }
.sv-root .dre-comp-tab td.num { width:30%; text-align:center; font-weight:600; }
.sv-root .dre-comp-lbl { text-align:center; font-size:11px; text-transform:uppercase; letter-spacing:.03em; color:#98a2b3; }
.sv-root .dre-comp-tab td.is-win { background:#eefaf3; color:#0b6b27; font-weight:800; border-radius:7px; }

/* filtro dos recebíveis */
.dfc-rec-filtros { margin-bottom:14px; }
.dfc-check { display:inline-flex; align-items:center; gap:8px; font-size:13px; color:#475467; cursor:pointer; padding:8px 12px; background:#fff; border:1px solid #e6e9e8; border-radius:9px; }
.dfc-check input { accent-color:var(--primary, #064d57); width:15px; height:15px; cursor:pointer; }

/* ══════════════════════════════════════════════════════════════
   v2026-07-08b · layout DRE tradicional · chips · heat · tabela do gráfico
   ══════════════════════════════════════════════════════════════ */

/* barra de filtros: chips de ano + botões de mês */
.sv-root .dre-fbar { display:flex; flex-direction:column; gap:8px; margin:4px 0 14px; }
.sv-root .dre-anos { display:flex; gap:6px; }
.sv-root .dre-mchips { display:flex; gap:5px; flex-wrap:wrap; }
.sv-root .dre-chip { border:1px solid #d8dee4; background:#fff; color:#475467; font-size:12px; font-weight:600; padding:6px 12px; border-radius:8px; cursor:pointer; transition:all .12s; text-transform:capitalize; }
.sv-root .dre-chip:hover:not(:disabled) { border-color:var(--primary, #064d57); color:var(--primary, #064d57); }
.sv-root .dre-chip.is-on { background:var(--primary, #064d57); border-color:var(--primary, #064d57); color:#fff; }
.sv-root .dre-chip:disabled { opacity:.35; cursor:default; }
.sv-root .dre-chip--ano { font-size:13px; font-weight:800; padding:6px 16px; }
.sv-root .dre-chip--todos { border-style:dashed; }

/* DRE tradicional (card central) */
.sv-root .dre-card { border:1px solid #e6e9e8; border-radius:12px; overflow:hidden; background:#fff; }
.sv-root .dre-card-head { display:flex; justify-content:space-between; align-items:center; background:var(--primary, #064d57); color:#fff; font-weight:800; font-size:13px; letter-spacing:.04em; padding:10px 14px; text-transform:uppercase; }
.sv-root .dre-card-tab { width:100%; border-collapse:collapse; font-variant-numeric:tabular-nums; }
.sv-root .dre-card-tab td { padding:7px 14px; font-size:13px; border-bottom:1px solid #f4f6f5; color:#475467; }
.sv-root .dre-card-tab td.num { text-align:right; font-weight:600; white-space:nowrap; }
.sv-root .dre-card-tab td.dre-c-d { width:74px; }
.sv-root .dre-card-tab tr:nth-child(odd) td { background:#fcfdfd; }
.sv-root .dre-c-sub td { font-weight:800; color:#1f2937; background:#f4f2f8 !important; border-top:1px solid #e6e2ee; }
.sv-root .dre-c-pct td { font-size:11.5px; color:#8a7fa8; padding-top:2px; padding-bottom:8px; background:#fff !important; border-bottom:1px solid #eee; font-style:italic; }
.sv-root .dre-c-info td { font-size:12px; color:#667085; background:#fafbfc !important; }
.sv-root .dre-c-final td { font-weight:800; font-size:15px; border:0; }
.sv-root .dre-c-final.is-pos td { background:#1D9E75 !important; color:#fff; }
.sv-root .dre-c-final.is-neg td { background:#D9442B !important; color:#fff; }
.sv-root .dre-c-final2 td { font-weight:800; color:var(--primary, #064d57); background:#efecf8 !important; }
.sv-root .dre-card-tab .is-clk { cursor:pointer; }
.sv-root .dre-card-tab .is-clk:hover td { background:color-mix(in srgb, var(--primary, #064d57) 6%, #fff) !important; }

/* conjunto x resultado (heat) */
.sv-root .dre-heat { width:100%; border-collapse:collapse; font-variant-numeric:tabular-nums; font-size:12.5px; }
.sv-root .dre-heat thead th { font-size:10.5px; text-transform:uppercase; letter-spacing:.03em; color:#98a2b3; text-align:left; padding:7px 8px; border-bottom:1px solid #e6e9e8; }
.sv-root .dre-heat thead th.num { text-align:right; }
.sv-root .dre-heat td { padding:5px 8px; border-bottom:1px solid #f4f6f5; color:#475467; }
.sv-root .dre-heat td.num { text-align:right; }
.sv-root .dre-heat tbody tr[data-placa] { cursor:pointer; }
.sv-root .dre-heat tbody tr[data-placa]:hover .dre-heat-pl { color:var(--primary, #064d57); text-decoration:underline; }
.sv-root .dre-heat-pl { font-weight:700; color:#344054; }
.sv-root .dre-heat-v { font-weight:800; border-radius:6px; }
.sv-root .dre-heat-tot td { font-weight:800; color:#1f2937; border-top:2px solid #e6e9e8; background:#fafbfc; }

/* benchmark: linha total */
.sv-root .dre-bench-tot td { font-weight:800; color:#1f2937; border-top:2px solid #d8dee4; background:#fafbfc; padding:9px 6px; }

/* tabela de dados embaixo do gráfico de linhas */
.dfc-chart-tabwrap { overflow-x:auto; margin-top:10px; border-top:1px solid #eef1f0; padding-top:8px; }
.dfc-chart-tab { border-collapse:collapse; font-variant-numeric:tabular-nums; width:100%; min-width:560px; }
.dfc-chart-tab th { font-size:10px; text-transform:uppercase; letter-spacing:.02em; color:#98a2b3; padding:4px 7px; text-align:right; white-space:nowrap; }
.dfc-chart-tab td { font-size:11.5px; color:#475467; padding:4px 7px; border-top:1px solid #f4f6f5; white-space:nowrap; }
.dfc-chart-tab td.num { text-align:right; }
.dfc-chart-tab .dfc-ct-lbl { font-weight:700; color:#344054; text-align:left; display:flex; align-items:center; gap:6px; }
.dfc-chart-tab .dfc-ct-lbl i { width:9px; height:9px; border-radius:3px; display:inline-block; flex-shrink:0; }
.dfc-chart-tab .dfc-ct-res td { font-weight:800; border-top:2px solid #e6e9e8; }

/* seletor da linha da meta */
.sv-root .dre-meta-sel { font-size:11.5px; border:1px solid #d8dee4; border-radius:7px; padding:3px 6px; background:#fff; color:#475467; cursor:pointer; }

/* ══════════════════════════════════════════════════════════════
   v2026-07-08c · grid sem buraco · demonstrativo fino · drawers em card
   comparador · listas roláveis · filtro período · insights
   ══════════════════════════════════════════════════════════════ */

/* grade do Resultado: colunas esticam, sem buraco embaixo */
.sv-root .dre-grid3 { align-items: stretch !important; }
.sv-root .dre-grid3 > .painel { display:flex; flex-direction:column; min-height:0; }
.sv-root .dre-grid3 > .painel > div:last-child { flex:1; min-height:0; }
.sv-root #dre-rank .dfc-tab-wrap, .sv-root #dre-tree .dre-tree { height:100%; max-height:620px; overflow-y:auto; }
.sv-root #dre-rank .dfc-tab-wrap { overflow-x:hidden; }
.sv-root .dre-heat thead th { position:sticky; top:0; background:#fff; z-index:2; }

/* demonstrativo: card fino, zebra, congelado, clicável */
.dfc-demo-card { padding:0 !important; overflow:hidden; }
.dfc-demo-card .dfc-demo-meta { margin:14px 16px 10px; }
.dfc-demo-wrap { max-height:640px; overflow:auto; border-top:1px solid #eef1f0; }
.dfc-tabela.dfc-demo--fina { font-size:12px; }
.dfc-tabela.dfc-demo--fina th { position:sticky; top:0; background:#fff; z-index:3; box-shadow:inset 0 -1px 0 #e6e9e8; font-size:10px; padding:8px 9px; white-space:nowrap; }
.dfc-tabela.dfc-demo--fina th:first-child { left:0; z-index:4; min-width:190px; text-align:left; }
.dfc-tabela.dfc-demo--fina td { padding:6px 9px; white-space:nowrap; }
.dfc-tabela.dfc-demo--fina td:first-child { position:sticky; left:0; background:#fff; z-index:2; box-shadow:inset -1px 0 0 #eef1f0; }
.dfc-tabela.dfc-demo--fina tbody tr:nth-child(even) td { background:#fafbfc; }
.dfc-tabela.dfc-demo--fina .dfc-grp td { background:#f1f4f3 !important; font-weight:800; font-size:10.5px; text-transform:uppercase; letter-spacing:.04em; color:#667085; }
.dfc-tabela.dfc-demo--fina .dfc-subtot td { background:color-mix(in srgb, var(--primary, #064d57) 7%, #fff) !important; font-weight:800; }
.dfc-tabela.dfc-demo--fina .dfc-total td { background:var(--primary, #064d57) !important; color:#fff; font-weight:800; }
.dfc-tabela.dfc-demo--fina .dfc-total td.pos { color:#8ef0b9; }
.dfc-tabela.dfc-demo--fina .dfc-total td.neg { color:#ffb3a6; }
.dfc-lin--clk { cursor:pointer; }
.dfc-lin--clk:hover td { background:color-mix(in srgb, var(--primary, #064d57) 6%, #fff) !important; }
.dfc-lin-chev { color:#c2cad4; margin-left:6px; font-size:13px; }
.dfc-lin--clk:hover .dfc-lin-chev { color:var(--accent, #029d66); }

/* drawers do módulo: corpo cinza claro, seções como cards brancos */
.fb-drawer__body .sv-root { background:#f4f6f5; margin:-16px; padding:16px; min-height:100%; }
.fb-drawer__body .dfc-drawer-sec { background:#fff; border:1px solid #e6e9e8; border-radius:12px; padding:16px 18px; margin-bottom:14px; box-shadow:0 1px 2px rgba(16,24,40,.04); }

/* comparador: header com placas, vencedor em chip suave */
.sv-root .dre-comp-head { margin-bottom:14px; }

.sv-root .dre-comp-score { font-size:11px; font-weight:700; color:#667085; background:#f1f4f3; padding:2px 10px; border-radius:99px; }
.sv-root .dre-comp-tab td { padding:9px 12px; }
/* zebra removida: as unicas linhas com fundo sao os separadores de secao */
.sv-root .dre-comp-lbl { font-size:10.5px !important; letter-spacing:.05em; }
.sv-root .dre-comp-tab td.is-win { background:transparent !important; }
.sv-root .dre-comp-tab td.num.is-win { position:relative; }
.sv-root .dre-comp-tab td.num.is-win::before { content:''; position:absolute; inset:4px 14%; background:#e4f6ed; border-radius:8px; z-index:0; }
.sv-root .dre-comp-tab td.num { position:relative; }
.sv-root .dre-comp-tab td.num > * { position:relative; }
.sv-root .dre-comp-tab td.num.is-win { color:#0b6b27; font-weight:800; }

/* listas com 4 visíveis e rolagem (tops de veículos/fornecedores) */
.dfc-roll4 { position:relative; }
.dfc-roll4__scroll { max-height:352px; overflow-y:auto; padding-right:4px; }
.dfc-roll4::after { content:''; position:absolute; left:0; right:0; bottom:0; height:44px; background:linear-gradient(180deg, rgba(255,255,255,0), #fff 85%); pointer-events:none; }
.dfc-roll4__more { position:absolute; left:50%; transform:translateX(-50%); bottom:2px; z-index:2; width:26px; height:26px; border-radius:50%; background:#fff; border:1px solid #d8dee4; color:#667085; font-size:14px; font-weight:800; display:flex; align-items:center; justify-content:center; cursor:pointer; box-shadow:0 2px 6px rgba(16,24,40,.12); transition:opacity .2s; }
.dfc-roll4__scroll .sv-tipo__row:nth-child(5) { opacity:.45; }
.dfc-roll4__scroll:hover .sv-tipo__row, .dfc-roll4__scroll .sv-tipo__row:hover { opacity:1; }

/* filtro de período (popover padrão do sistema) */
.dfc-per { position:relative; display:inline-flex; flex-direction:column; gap:4px; }
.dfc-per__lbl { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:#98a2b3; }
.dfc-per__btn { display:inline-flex; align-items:center; gap:8px; border:1.5px solid #1f2937; background:#fff; color:#1f2937; font-size:13px; font-weight:700; padding:8px 14px; border-radius:10px; cursor:pointer; }
.dfc-per__car { font-size:10px; color:#98a2b3; }
.dfc-per__pop { position:absolute; top:calc(100% + 6px); left:0; z-index:60; width:300px; background:#fff; border:1px solid #e6e9e8; border-radius:14px; box-shadow:0 12px 32px rgba(16,24,40,.16); padding:14px; }
.dfc-per__presets { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:12px; }
.dfc-per__presets button { border:1px solid #e6e9e8; background:#f7f9f8; color:#344054; font-size:12px; font-weight:700; padding:9px 10px; border-radius:9px; cursor:pointer; }
.dfc-per__presets button:hover { background:var(--primary, #064d57); border-color:var(--primary, #064d57); color:#fff; }
.dfc-per__presets button:last-child { grid-column:1 / -1; }
.dfc-per__range { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:12px; }
.dfc-per__range label { display:flex; flex-direction:column; gap:4px; font-size:10px; font-weight:700; text-transform:uppercase; color:#98a2b3; }
.dfc-per__range input { border:1px solid #d8dee4; border-radius:8px; padding:7px 8px; font-size:12.5px; color:#1f2937; }
.dfc-per__acoes { display:flex; justify-content:space-between; gap:10px; }
.dfc-per__limpar { border:1px solid #d8dee4; background:#fff; color:#475467; font-size:12.5px; font-weight:700; padding:8px 16px; border-radius:9px; cursor:pointer; }
.dfc-per__aplicar { border:0; background:var(--accent, #029d66); color:#fff; font-size:12.5px; font-weight:800; padding:8px 22px; border-radius:9px; cursor:pointer; flex:1; }
.dfc-per__aplicar:hover { filter:brightness(.95); }

/* insights do recorte */
.dfc-insights .painel__title h4 { display:flex; align-items:baseline; gap:10px; }
.dfc-insights__sub { font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:#98a2b3; }
.dfc-insights .cx-insight-card { background:#fff; border:1px solid #eef1f0; box-shadow:0 1px 2px rgba(16,24,40,.04); }
.dfc-insights .cx-insight-card__hint b { color:#1f2937; }

/* ══════════════════════════════════════════════════════════════
   v2026-07-08d · alturas da grade · tipo da conta explodido · headout
   chevron fino · insights delicados e retráteis
   ══════════════════════════════════════════════════════════════ */

/* grade: laterais preenchem a altura do card DRE, sem cortar antes */
.sv-root #dre-rank .dfc-tab-wrap { max-height:none; height:100%; overflow-y:auto; }
.sv-root #dre-tree .dre-tree { max-height:none; height:auto; overflow:visible; }
.sv-root #dre-rank { display:flex; flex-direction:column; min-height:0; }
.sv-root #dre-rank .dfc-tab-wrap { flex:1; min-height:0; }
.sv-root .dre-tree-subs { display:block; }
.sv-root .dre-tree-sub { padding:5px 6px 5px 26px; border-bottom:1px dashed #f0f2f1; }

/* headout: faixa fixa embaixo do gráfico (substitui o tooltip flutuante) */
.dfc-headout { display:flex; flex-wrap:wrap; align-items:center; gap:8px 18px; margin-top:10px; padding:10px 14px; background:#f7f9f8; border:1px solid #eef1f0; border-radius:10px; font-size:12.5px; color:#475467; min-height:38px; }
.dfc-headout .dfc-ho__mes { font-weight:800; color:#1f2937; text-transform:uppercase; font-size:11.5px; letter-spacing:.04em; padding-right:10px; border-right:1px solid #e2e6e5; }
.dfc-headout .dfc-ho__it { display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.dfc-headout .dfc-ho__it i { width:9px; height:9px; border-radius:50%; display:inline-block; }
.dfc-headout .dfc-ho__it b { color:#1f2937; font-variant-numeric:tabular-nums; }
.dfc-headout .dfc-ho__chip { font-style:normal; font-size:10.5px; font-weight:800; padding:1px 7px; border-radius:99px; }
.dfc-headout .dfc-ho__chip.is-up { color:#0b6b27; background:#e4f6ed; }
.dfc-headout .dfc-ho__chip.is-down { color:#b91c1c; background:#fdeceb; }
.dfc-guide { position:absolute; width:0; border-left:1.5px dashed color-mix(in srgb, var(--primary, #064d57) 45%, #fff); display:none; pointer-events:none; }

/* chevron fino e elegante nas listas roláveis */
.dfc-roll4__more { width:auto; height:auto; padding:3px 12px; border-radius:99px; background:rgba(255,255,255,.92); border:1px solid #e6e9e8; color:#98a2b3; box-shadow:0 1px 4px rgba(16,24,40,.08); }
.dfc-roll4__more:hover { color:var(--primary, #064d57); border-color:#cfd6dd; }
.dfc-roll4__more svg { display:block; }
.dfc-roll4__scroll .sv-tipo__row:nth-child(5) { opacity:.45; }
.dfc-roll10 .dfc-roll4__scroll { max-height:392px; }
.dfc-roll10 .dfc-roll4__scroll .sv-tipo__row:nth-child(5) { opacity:1; }
.dfc-roll10 .dfc-roll4__scroll .dfc-div-row:nth-child(11) { opacity:.45; }
.dfc-roll10 .dfc-roll4__scroll .dfc-div-row:hover { opacity:1; }

/* insights: delicados e retráteis */
details.dfc-insights { padding:12px 16px; }
details.dfc-insights > summary { list-style:none; cursor:pointer; display:flex; align-items:baseline; gap:10px; font-size:13.5px; font-weight:800; color:#1f2937; user-select:none; }
details.dfc-insights > summary::-webkit-details-marker { display:none; }
details.dfc-insights .dfc-insights__tog { margin-left:auto; font-size:11px; color:#98a2b3; transition:transform .15s; }
details.dfc-insights:not([open]) .dfc-insights__tog { transform:rotate(-90deg); }
details.dfc-insights .dfc-insights__body { margin-top:10px; display:flex; flex-direction:column; gap:6px; }
.dfc-ins { display:flex; align-items:flex-start; gap:9px; padding:8px 12px; background:#fff; border:1px solid #eef1f0; border-radius:9px; font-size:12.5px; color:#475467; line-height:1.45; }
.dfc-ins.is-ok   .dfc-ins__ico { color:#1D9E75; }
.dfc-ins.is-warn .dfc-ins__ico { color:#EFA93C; }
.dfc-ins.is-bad  .dfc-ins__ico { color:#D9442B; }
.dfc-ins.is-info .dfc-ins__ico { color:#4F86C6; }
.dfc-ins__ico { font-size:13px; line-height:1.4; }
.dfc-ins__txt b { color:#1f2937; }

/* ══════════════════════════════════════════════════════════════
   v2026-07-08e · comparador (valor visível no chip) · header compacto
   sem botões de caixa · respiro do topo
   ══════════════════════════════════════════════════════════════ */
.sv-root .dre-comp-tab td.num span { position:relative; z-index:1; }
.sv-root .dre-head { margin:0 0 12px; min-height:0; }
.sv-root .dre-head-r:empty { display:none; }
.sv-root .dre-fbar { margin:0 0 14px; }
.sv-root .dre-h1 { margin:2px 0 2px; }
.sv-root .dre-h1sub { margin:0; }
.dfc-regime { display:none; }   /* botões de caixa aposentados em todo o módulo */

/* ══════════════════════════════════════════════════════════════
   v2026-07-09f · logo do cliente menor · heat fina · plano de ação · guia
   ══════════════════════════════════════════════════════════════ */

/* logo do cliente na sidebar: -40% (pedido de 09/07) */
.sb-logo img { height: 58px !important; }
.sb-logo { padding: 18px 10px 12px !important; }

/* heat Conjunto x Resultado: mais fina e claramente clicável */
.sv-root .dre-heat { font-size: 11.5px; }
.sv-root .dre-heat td { padding: 4px 7px; }
.sv-root .dre-heat .dre-heat-v { font-size: 11px; font-weight: 700; }
.sv-root .dre-heat tbody tr[data-placa]:hover td { background: color-mix(in srgb, var(--primary, #064d57) 6%, #fff); }
.sv-root .dre-heat tbody tr[data-placa]:hover td.dre-heat-v { filter: brightness(1.06); }

/* guia "Como ler" */
.dre-guia { margin-bottom: 14px; }
.dre-guia summary { font-size: 13px; }

/* plano de ação */
.pl-add { border: 0; background: var(--accent, #029d66); color: #fff; font-size: 12.5px; font-weight: 800; padding: 8px 16px; border-radius: 9px; cursor: pointer; }
.pl-add:hover { filter: brightness(.95); }
.pl-tab .pl-pilar { white-space: nowrap; font-size: 11.5px; color: #667085; }
.pl-tab .pl-tarefa { font-weight: 700; color: #344054; max-width: 420px; }
.pl-tab .pl-venc { color: #b91c1c; font-weight: 700; }
.pl-tab .dfc-tag { cursor: pointer; border: 0; font: inherit; }
.pl-tab .dfc-tag:hover { filter: brightness(.94); }
.pl-form { display: flex; flex-direction: column; gap: 12px; }
.pl-form2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pl-campo { display: flex; flex-direction: column; gap: 4px; font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: #98a2b3; }
.pl-campo input, .pl-campo select, .pl-campo textarea { border: 1px solid #d8dee4; border-radius: 8px; padding: 8px 10px; font-size: 13px; font-family: inherit; color: #1f2937; text-transform: none; letter-spacing: 0; font-weight: 500; }
.pl-salvar { border: 0; background: var(--primary, #064d57); color: #fff; font-size: 13px; font-weight: 800; padding: 11px 20px; border-radius: 10px; cursor: pointer; margin-top: 4px; }
.pl-salvar:hover { filter: brightness(1.08); }

/* ══════════════════════════════════════════════════════════════
   v2026-07-09h · grid 2 colunas · ranking com frota · botões detalhar CPK
   ══════════════════════════════════════════════════════════════ */
.sv-root .dre-grid2 { display:grid; grid-template-columns: 1.45fr 1fr; gap:16px; align-items:stretch; margin-bottom:16px; }
.sv-root .dre-grid2 > .painel { display:flex; flex-direction:column; min-height:0; }
.sv-root .dre-grid2 > .painel > div:last-child { flex:1; min-height:0; }
.sv-root .dre-grid2 #dre-rank .dfc-tab-wrap { height:100%; overflow-y:auto; }
@media (max-width: 1100px) { .sv-root .dre-grid2 { grid-template-columns: 1fr; } }
.sv-root .dre-heat--full { font-size:11px; }
.sv-root .dre-heat--full td, .sv-root .dre-heat--full th { padding:4px 6px; }
.sv-root .dre-heat-fr { color:#667085; font-size:10.5px; white-space:nowrap; max-width:150px; overflow:hidden; text-overflow:ellipsis; }
.dfc-cpk-abrir { display:flex; gap:10px; margin-top:12px; flex-wrap:wrap; }
/* CPK com um único mês no período: valor por conta, sem gráfico */
.dfc-cpk-um { display:flex; gap:28px; flex-wrap:wrap; padding:18px 4px 6px; font-size:15px; color:var(--texto, #1d2b2f); }
.dfc-cpk-um span { font-size:22px; margin-right:4px; }
.dfc-cpk-btn { display:inline-flex; align-items:center; gap:8px; border:1px solid #d8dee4; background:#fff; color:#344054; font-size:12.5px; font-weight:700; padding:8px 16px; border-radius:99px; cursor:pointer; }
.dfc-cpk-btn i { width:11px; height:11px; border-radius:50%; display:inline-block; }
.dfc-cpk-btn:hover { border-color:var(--primary, #064d57); color:var(--primary, #064d57); }

/* ══════════════════════════════════════════════════════════════
   v2026-07-09i · alinhamento da grade · ordenação/filtro no ranking
   colunas agrupadas no drawer
   ══════════════════════════════════════════════════════════════ */

/* cards da grade nascem e terminam juntos */
.sv-root .dre-grid2 > .painel { margin: 0 !important; }
.sv-root .dre-grid2 .painel__title { min-height: 64px; }
/* equaliza densidades: ranking mais alto, DRE mais compacto */
.sv-root .dre-heat--full { font-size: 12px; }
.sv-root .dre-heat--full td { padding: 7px 8px; }
.sv-root .dre-heat--full thead th { padding: 8px 8px; }
.sv-root .dre-card-tab td { padding: 6px 14px; font-size: 12.5px; }
.sv-root .dre-c-final td { font-size: 14px; }
.sv-root .dre-grid2 #dre-rank { display:flex; flex-direction:column; }
.sv-root .dre-grid2 #dre-rank .dfc-tab-wrap { flex:1; }

/* ordenação por cabeçalho */
.sv-root .dre-hsort { cursor: pointer; user-select: none; white-space: nowrap; }
.sv-root .dre-hsort:hover { color: var(--primary, #064d57); }
.sv-root .dre-hsort.is-on { color: var(--primary, #064d57); }

/* filtro disfarçado: botão sutil no th + popover */
.sv-root .dre-hfil { border: 0; background: transparent; color: #c2cad4; font-size: 11px; cursor: pointer; padding: 0 2px; margin-left: 3px; border-radius: 4px; }
.sv-root .dre-hfil:hover { color: var(--primary, #064d57); background: #f1f4f3; }
.sv-root .dre-hfil.is-fil { color: #fff; background: var(--accent, #029d66); }
.sv-root .dre-filpop { position: absolute; z-index: 50; width: 240px; max-height: 320px; overflow-y: auto; background: #fff; border: 1px solid #e6e9e8; border-radius: 12px; box-shadow: 0 12px 32px rgba(16,24,40,.16); padding: 10px; }
.sv-root .dre-filpop__h { font-size: 10.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: #98a2b3; padding: 2px 6px 8px; }
.sv-root .dre-filpop__it { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: #344054; padding: 6px 8px; border-radius: 7px; cursor: pointer; }
.sv-root .dre-filpop__it:hover { background: color-mix(in srgb, var(--primary, #064d57) 6%, #fff); }
.sv-root .dre-filpop__it input { accent-color: var(--accent, #029d66); }
.sv-root .dre-filpop__limpar { width: 100%; margin-top: 8px; border: 1px solid #d8dee4; background: #fff; color: #475467; font-size: 12px; font-weight: 700; padding: 7px; border-radius: 8px; cursor: pointer; }
.sv-root .dre-filpop__limpar:hover { border-color: var(--primary, #064d57); color: var(--primary, #064d57); }

/* legenda com marcador de linha */
.sv-chart-leg .leg-linha { height: 3px !important; width: 18px !important; border-radius: 2px !important; }

/* v2026-07-09k · drawer de CPK: busca no padrão + filtros alinhados */
.fb-drawer__body .dfc-filtro input[type="search"] { border: 1px solid #d8dee4; border-radius: 8px; padding: 8px 10px; font-size: 13px; color: #1f2937; min-width: 170px; }
.fb-drawer__body .dfc-per__pop { z-index: 120; }

/* ══════════════════════════════════════════════════════════════
   v2026-07-09l · grade Resultado: o DRE dita a altura; o ranking
   rola por dentro com cabeçalho e Total congelados
   ══════════════════════════════════════════════════════════════ */

/* o card da esquerda não empurra a linha do grid: vira moldura, e o
   conteúdo preenche em absoluto a altura definida pelo card do DRE */
.sv-root .dre-grid2 > .painel:first-child { display:flex; flex-direction:column; min-height:0; }
.sv-root .dre-grid2 #dre-rank { flex:1 1 0; min-height:0; position:relative; }
.sv-root .dre-grid2 #dre-rank .dfc-tab-wrap { position:absolute; inset:0; overflow-y:auto; overflow-x:auto; height:auto; }

/* cabeçalho congelado (sólido, acima do heat) e Total congelado embaixo */
.sv-root .dre-heat--full thead th { position:sticky; top:0; background:#fff; z-index:4; box-shadow:inset 0 -1px 0 #e6e9e8; }
.sv-root .dre-heat--full .dre-heat-tot td { position:sticky; bottom:0; background:#fafbfc; z-index:3; box-shadow:inset 0 2px 0 #e6e9e8; }

/* popover de filtro acompanha a rolagem sem ser cortado */
.sv-root .dre-grid2 #dre-rank .dre-filpop { position:fixed; }

/* ══════════════════════════════════════════════════════════════
   v2026-07-09n · lançamentos (micro detalhe) · sem-km · tendências
   ══════════════════════════════════════════════════════════════ */

/* ── lançamentos ── */
.lc-wrap { display: flex; flex-direction: column; gap: 12px; }
.lc-filtros { display: flex; align-items: flex-end; gap: 12px; flex-wrap: wrap; }
.lc-busca { flex: 1 1 320px; min-width: 240px; border: 1px solid #d8dee4; border-radius: 9px; padding: 10px 14px; font-size: 13px; color: #1f2937; font-family: inherit; }
.lc-busca:focus { outline: none; border-color: var(--primary, #064d57); box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary, #064d57) 12%, transparent); }
.lc-csv { border: 1px solid #d8dee4; background: #fff; color: #475467; font-size: 12.5px; font-weight: 700; padding: 9px 16px; border-radius: 9px; cursor: pointer; white-space: nowrap; }
.lc-csv:hover { border-color: var(--primary, #064d57); color: var(--primary, #064d57); }
.lc-chips { display: flex; gap: 8px; flex-wrap: wrap; flex-basis: 100%; }
.lc-chip { display: inline-flex; align-items: center; gap: 6px; background: color-mix(in srgb, var(--primary, #064d57) 8%, #fff); color: var(--primary, #064d57); border: 1px solid color-mix(in srgb, var(--primary, #064d57) 22%, #fff); font-size: 11.5px; font-weight: 700; padding: 5px 8px 5px 12px; border-radius: 99px; }
.lc-chip button { border: 0; background: transparent; color: inherit; cursor: pointer; font-size: 15px; line-height: 1; padding: 0 4px; opacity: .6; }
.lc-chip button:hover { opacity: 1; }
.lc-kpis { display: flex; gap: 10px; flex-wrap: wrap; }
.lc-kpi { flex: 1 1 130px; background: #fff; border: 1px solid #e6e9e8; border-radius: 10px; padding: 10px 14px; display: flex; flex-direction: column; gap: 2px; }
.lc-kpi__l { font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: #98a2b3; }
.lc-kpi b { font-size: 17px; font-weight: 800; color: #123047; font-variant-numeric: tabular-nums; }
.lc-kpi--warn { background: #fffaf0; border-color: #f2d9a0; }
.lc-kpi--warn b { font-size: 12px; color: #a5741a; font-weight: 700; }
.lc-tabwrap { max-height: 62vh; overflow: auto; }
.lc-tab { width: 100%; border-collapse: collapse; font-size: 12px; font-variant-numeric: tabular-nums; }
.lc-tab thead th { position: sticky; top: 0; background: #fff; z-index: 3; text-align: left; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: #98a2b3; padding: 9px 8px; box-shadow: inset 0 -1px 0 #e6e9e8; white-space: nowrap; }
.lc-tab thead th.num { text-align: right; }
.lc-tab tbody td { padding: 7px 8px; border-bottom: 1px solid #f2f4f3; color: #475467; }
.lc-tab tbody tr:hover td { background: color-mix(in srgb, var(--primary, #064d57) 4%, #fff); }
.lc-tab .lc-dt, .lc-tab .lc-nota { white-space: nowrap; color: #667085; }
.lc-tab .lc-pl { font-weight: 800; color: #123047; white-space: nowrap; }
.lc-tab .lc-nat, .lc-tab .lc-forn { max-width: 190px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lc-tab .lc-hist { max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #667085; }
.lc-tab .lc-v { font-weight: 700; white-space: nowrap; }
.lc-tab .lc-hsort { cursor: pointer; user-select: none; }
.lc-tab .lc-hsort:hover, .lc-tab .lc-hsort.is-on { color: var(--primary, #064d57); }
.lc-tab--agr tbody tr { cursor: pointer; }
.lc-abrir { border: 1px solid #d8dee4; background: #fff; color: var(--primary, #064d57); font-size: 12.5px; font-weight: 700; padding: 9px 16px; border-radius: 9px; cursor: pointer; margin-top: 10px; }
.lc-abrir:hover { border-color: var(--primary, #064d57); background: color-mix(in srgb, var(--primary, #064d57) 5%, #fff); }
.lc-inline { border: 0; background: transparent; color: var(--primary, #064d57); font: inherit; font-weight: 700; cursor: pointer; padding: 0; text-decoration: underline; text-underline-offset: 2px; }
.lc-inline:hover { filter: brightness(1.25); }

/* ── diagnóstico sem-km ── */
.lc-motivo { white-space: nowrap; }
.lc-diag { padding: 6px 0; margin-bottom: 10px; }
.lc-diag b { font-size: 13px; color: #123047; }
.lc-diag p { margin: 2px 0 0; font-size: 12.5px; color: #667085; line-height: 1.45; }

/* ── tendências ── */
.td-tab td .td-v { display: block; font-weight: 800; font-size: 12px; }
.td-tab td .td-abs { display: block; font-size: 10.5px; color: #98a2b3; font-weight: 600; }
.td-tab .td-na { color: #c2cad4; }
.td-acoes { display: flex; gap: 10px; flex-wrap: wrap; }
.td-acoes .lc-abrir { margin-top: 0; }

/* seta de sentido no comparador */
.dre-comp-dir { margin-left: 6px; font-size: 11px; color: #b0b8c1; font-weight: 700; }

/* checkbox "mostrar concluídas" no plano de ação */
.pl-check { display: inline-flex; align-items: center; gap: 8px; font-size: 12.5px; font-weight: 600; color: #475467; cursor: pointer; padding-bottom: 9px; user-select: none; }
.pl-check input { accent-color: var(--accent, #029d66); width: 15px; height: 15px; cursor: pointer; }
.pl-check:hover span { color: var(--primary, #064d57); }

/* ══════════════════════════════════════════════════════════════
   v2026-07-09p · filtro padrão pra opções · popover sem estouro
   ══════════════════════════════════════════════════════════════ */

/* correção do estouro do campo "Até" (input[type=month] tem largura intrínseca) */
.dfc-per__range { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.dfc-per__range label { min-width: 0; }
.dfc-per__range input { width: 100%; min-width: 0; box-sizing: border-box; }
.dfc-per__pop { box-sizing: border-box; max-width: calc(100vw - 32px); }

/* filtro de opções (mesmo visual do Período) */
.dfc-sel__pop { padding: 8px; }
.dfc-sel__opts { display: flex; flex-direction: column; gap: 4px; max-height: 300px; overflow-y: auto; }
.dfc-sel__opts button { text-align: left; border: 0; background: transparent; color: #344054; font-size: 12.5px; font-weight: 600; padding: 9px 12px; border-radius: 8px; cursor: pointer; }
.dfc-sel__opts button:hover { background: color-mix(in srgb, var(--primary, #064d57) 7%, #fff); color: var(--primary, #064d57); }
.dfc-sel__opts button.is-on { background: var(--primary, #064d57); color: #fff; font-weight: 800; }

/* ranking: cabe sem rolagem lateral, sem tremer */
.sv-root .dre-grid2 #dre-rank .dfc-tab-wrap { overflow-x: hidden; }
.sv-root .dre-heat--full { table-layout: fixed; width: 100%; font-size: 11.5px; }
.sv-root .dre-heat--full th, .sv-root .dre-heat--full td { padding: 6px 5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sv-root .dre-heat--full col.c-pl { width: 15%; }
.sv-root .dre-heat--full col.c-mo { width: 17%; }
.sv-root .dre-heat--full col.c-an { width: 8%; }
.sv-root .dre-heat--full col.c-ti { width: 17%; }
.sv-root .dre-heat--full col.c-km { width: 11%; }
.sv-root .dre-heat--full col.c-rk { width: 9%; }
.sv-root .dre-heat--full col.c-ck { width: 9%; }
.sv-root .dre-heat--full col.c-re { width: 14%; }
.sv-root .dre-heat--full .dre-heat-v { font-size: 11px; padding: 5px 6px; }

/* separador de seção no comparador (absolutos x por km) */

/* dois filtros de período lado a lado (Tendências) */
.dfc-filtros > div[id^="td-p"] { position: relative; }
.dfc-filtros #td-pb[hidden] { display: none; }

/* ══════════════════════════════════════════════════════════════
   v2026-07-09r · popover no body · plano (excluir, contínuas, ordenar)
   ══════════════════════════════════════════════════════════════ */

/* popover flutuante: vive no <body>, nenhum card corta */
.fb-pop { position: fixed; z-index: 3000; background: #fff; border: 1px solid #e6e9e8; border-radius: 12px; box-shadow: 0 14px 38px rgba(16,24,40,.18); padding: 10px; box-sizing: border-box; max-height: 60vh; display: flex; flex-direction: column; gap: 8px; }
.fb-pop__h { font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #98a2b3; padding: 2px 4px; }
.fb-pop__busca { border: 1px solid #d8dee4; border-radius: 8px; padding: 8px 10px; font-size: 12.5px; color: #1f2937; font-family: inherit; width: 100%; box-sizing: border-box; }
.fb-pop__busca:focus { outline: none; border-color: var(--primary, #064d57); }
.fb-pop__lista { overflow-y: auto; display: flex; flex-direction: column; gap: 2px; min-height: 0; }
.fb-pop__it { display: flex; align-items: center; gap: 9px; font-size: 12.5px; color: #344054; padding: 7px 6px; border-radius: 7px; cursor: pointer; white-space: nowrap; }
.fb-pop__it:hover { background: #f7f9f8; }
.fb-pop__it input { accent-color: var(--accent, #029d66); flex-shrink: 0; }
.fb-pop__it span { overflow: hidden; text-overflow: ellipsis; }
.fb-pop__opt { text-align: left; border: 0; background: transparent; color: #344054; font-size: 12.5px; font-weight: 700; padding: 8px 10px; border-radius: 7px; cursor: pointer; font-family: inherit; }
.fb-pop__opt:hover { background: color-mix(in srgb, var(--primary, #064d57) 8%, #fff); color: var(--primary, #064d57); }
.fb-pop__opt.is-on { background: var(--primary, #064d57); color: #fff; }
.fb-pop__limpar { border: 1px solid #d8dee4; background: #fff; color: #475467; font-size: 12px; font-weight: 700; padding: 7px 12px; border-radius: 8px; cursor: pointer; font-family: inherit; }
.fb-pop__limpar:hover { border-color: var(--primary, #064d57); color: var(--primary, #064d57); }

/* comparador: linhas mais baixas + seletor com busca */
.sv-root .dre-comp-tab td { padding: 5px 10px; font-size: 12.5px; }
.sv-root .dre-comp-side > div { display: inline-block; }
.sv-root .dre-comp-sel { display: inline-flex; align-items: center; gap: 6px; }

/* plano: cabeçalho ordenável e filtrável, botão de excluir */
.pl-tab .pl-h { cursor: pointer; user-select: none; white-space: nowrap; }
.pl-tab .pl-h:hover { color: var(--primary, #064d57); }
.pl-hfil { border: 0; background: transparent; color: #c2cad4; font-size: 9px; cursor: pointer; padding: 0 2px; margin-left: 4px; vertical-align: middle; }
.pl-hfil:hover, .pl-hfil.is-on { color: var(--primary, #064d57); }
.pl-hfil.is-on::after { content: '●'; font-size: 7px; color: var(--accent, #029d66); margin-left: 2px; }
.pl-excluir { border: 1px solid #f0c9c0; background: #fff; color: #b3401e; font-size: 12.5px; font-weight: 700; padding: 10px 18px; border-radius: 9px; cursor: pointer; margin-left: 10px; font-family: inherit; }
.pl-excluir:hover { background: #fdf3f0; border-color: #d9442b; }
.pl-excluir.is-armado { background: #c0392b; border-color: #c0392b; color: #fff; }
.pl-excluir:disabled { opacity: .6; cursor: wait; }

/* ══════════════════════════════════════════════════════════════
   v2026-07-09s · alinhamento dos filtros e dos cards de barras
   ══════════════════════════════════════════════════════════════ */

/* barra de filtros: tudo alinhado pela base, com ou sem rótulo */
.dfc-filtros { display: flex; align-items: flex-end; gap: 18px; flex-wrap: wrap; margin-bottom: 14px; }
.dfc-filtros > div { display: flex; align-items: flex-end; }
.dfc-per { display: flex; flex-direction: column; align-items: flex-start; gap: 5px; position: relative; }
.dfc-per__lbl { font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #98a2b3; line-height: 1; }
.pl-check { align-self: flex-end; padding-bottom: 9px; margin-bottom: 0; }

/* os dois cards de barras: mesma altura, títulos na mesma linha */
.dfc-v-grid2 { align-items: stretch; }
/* zera o margin-top que ".sv-root .painel + .painel" (raiox.css) injeta no
   2o card e desalinhava as duas colunas em 16px. Mesmo fix do .dre-grid2. */
.sv-root .dfc-v-grid2 > .painel { margin: 0 !important; }
.dfc-v-grid2 > .painel { display: flex; flex-direction: column; }
.dfc-v-grid2 > .painel > .painel__title { min-height: 46px; }
.dfc-v-grid2 > .painel > div:last-child { flex: 1 1 auto; min-height: 0; }

/* totais das barras um pouco menores, e a barra inteira clicável */
.dfc-v-grid2 .sv-tipo__val { font-size: 15px; font-weight: 800; }
.dfc-v-grid2 .sv-tipo__nome { font-size: 12.5px; }
.sv-tipo__row.is-clk { cursor: pointer; border-radius: 8px; transition: background .12s; }
.sv-tipo__row.is-clk:hover { background: color-mix(in srgb, var(--primary, #064d57) 5%, #fff); }
.sv-tipo__row.is-clk:focus-visible { outline: 2px solid var(--primary, #064d57); outline-offset: 2px; }

/* plano: dica do prazo e campo desabilitado */
.pl-dica { font-size: 11.5px; color: #98a2b3; line-height: 1.45; margin: -4px 0 14px; }
.pl-campo input.is-off { background: #f4f6f5; color: #b0b8c1; cursor: not-allowed; }

/* ══════════════════════════════════════════════════════════════
   v2026-07-09w · comparador: sem zebra, só os separadores escuros
   A regra da faixa precisa ser MAIS específica que a do transparente,
   senão perde por especificidade mesmo vindo depois no arquivo.
   ══════════════════════════════════════════════════════════════ */
.sv-root .dre-comp-tab tbody tr:not(.dre-comp-sep) td { background: transparent; }
.sv-root .dre-comp-tab tbody tr.dre-comp-sep td {
  background: var(--primary, #0B5560);
  color: #fff;
  padding: 9px 14px;
  font-size: 9.5px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .1em;
  text-align: center;
  border-bottom: 0;
  border-radius: 8px;
}
.sv-root .dre-comp-tab tbody tr.dre-comp-sep + tr td { padding-top: 10px; }
/* a primeira faixa não precisa de respiro em cima */
.sv-root .dre-comp-tab tbody tr.dre-comp-sep:first-child td { margin-top: 0; }

/* seletor de placa: texto centralizado, sem o vão antes da seta */
.sv-root .dre-comp-sel { min-width: 0; padding: 7px 14px; justify-content: center; gap: 8px; }
.sv-root .dre-comp-sel .dfc-per__car { font-size: 10px; color: #98a2b3; }
.sv-root .dre-comp-side > div { min-width: 0; }

/* ══════════════════════════════════════════════════════════════
   v2026-07-09v · reconciliação do drawer da placa
   ══════════════════════════════════════════════════════════════ */
.pl-reconc td { padding: 8px 10px; font-size: 12.5px; color: #475467; border-bottom: 1px solid #f2f4f3; }
.pl-reconc td.num { text-align: right; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.pl-reconc .pl-reconc-sub td { background: #f4f6f5; font-weight: 800; color: #123047; }
.pl-reconc .pl-reconc-tot td { background: color-mix(in srgb, var(--primary, #064d57) 10%, #fff); font-weight: 800; color: #123047; border-bottom: 0; }
.pl-nd-h td { padding: 12px 10px 6px; font-size: 9.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #98a2b3; }
.pl-nd td { color: #98a2b3; }

/* ══════════════════════════════════════════════════════════════
   v2026-07-09x · rodapé do ranking que fecha com o DRE
   ══════════════════════════════════════════════════════════════ */
.sv-root .dre-heat-rec td { background: #f7f9f8; font-size: 11.5px; font-weight: 700; color: #475467; padding: 8px 6px; border-top: 1px solid #eceff1; }
.sv-root .dre-heat-rec.is-clk { cursor: pointer; }
.sv-root .dre-heat-rec.is-clk:hover td { background: color-mix(in srgb, var(--primary, #064d57) 7%, #fff); color: var(--primary, #064d57); }
.sv-root .dre-heat-rec .dre-chev { color: #b0b8c1; font-weight: 800; margin-left: 4px; }
.sv-root .dre-heat-rec.is-clk:hover .dre-chev { color: var(--primary, #064d57); }
.sv-root .dre-heat-dre td { background: color-mix(in srgb, var(--primary, #064d57) 10%, #fff); font-size: 12px; font-weight: 800; color: #123047; padding: 9px 6px; border-top: 2px solid color-mix(in srgb, var(--primary, #064d57) 30%, #fff); }

/* rodapé do ranking: as 4 linhas grudam empilhadas (offsets vêm do JS) */
.sv-root .dre-heat--full .dre-heat-rec td,
.sv-root .dre-heat--full .dre-heat-dre td { position: sticky; }
.sv-root .dre-heat-rec.is-clk:focus-visible td { outline: 2px solid var(--primary, #064d57); outline-offset: -2px; }

/* ══════════════════════════════════════════════════════════════
   ANÁLISE DE PRODUTIVIDADE (telas/produtividade.js) · 20261001a
   ══════════════════════════════════════════════════════════════ */
.sv-root.dfc-pd .portal-grid { grid-template-columns:repeat(auto-fit, minmax(190px, 1fr)); }
.dfc-pd .dfc-pd-aviso { font-size:12.5px; color:#8a6a1c; background:#fbf4e2; border:1px solid #efdfb4; border-radius:9px; padding:8px 12px; margin:0 0 12px; }
.dfc-pd .dfc-pd-causas { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:8px; margin-bottom:4px; }
.dfc-pd .dfc-pd-causas > div { display:flex; flex-direction:column; gap:2px; padding:9px 12px; background:var(--bg-soft, #f6f8f7); border:1px solid #eef1f0; border-radius:9px; font-size:12.5px; color:#475467; line-height:1.4; }
.dfc-pd .dfc-pd-causas b { color:var(--primary, #064d57); font-size:13px; }
.dfc-pd [hidden] { display:none !important; }
.dfc-pd .dfc-pd-tabtop { display:flex; justify-content:flex-end; min-height:26px; margin-bottom:4px; }
.dfc-pd .dfc-pd-setas { display:inline-flex; gap:4px; }
.dfc-pd .dfc-pd-setas button { width:28px; height:26px; border:1px solid var(--borda, #e4e4e7); border-radius:7px; background:#fff; color:var(--primary); font-size:16px; font-weight:700; cursor:pointer; line-height:1; }
.dfc-pd .dfc-pd-setas button:disabled { opacity:.35; cursor:default; }
.dfc-pd .dfc-pd-tw { overflow-x:auto; scrollbar-width:none; }
.dfc-pd .dfc-pd-tw::-webkit-scrollbar { display:none; }
.dfc-pd .dfc-pd-rk th:nth-child(1), .dfc-pd .dfc-pd-rk td:nth-child(1) { position:sticky; left:0; z-index:1; background:#fff; width:36px; min-width:36px; }
.dfc-pd .dfc-pd-rk th:nth-child(2), .dfc-pd .dfc-pd-rk td:nth-child(2) { position:sticky; left:36px; z-index:1; background:#fff; box-shadow:1px 0 0 var(--borda, #e4e4e7); }
.dfc-pd .dfc-pd-rk .dfc-pd-grp th { position:static; box-shadow:none; }
.dfc-pd .dfc-pd-rk thead th { background:var(--bg-soft, #fafafb); }
.dfc-pd .dfc-pd-rk tbody tr:hover td { background:var(--bg-soft, #fafafb); }
.dfc-pd .dfc-pd-tab th, .dfc-pd .dfc-pd-tab td { white-space:nowrap; padding:8px 10px; }
.dfc-pd .dfc-pd-tab td.is-neg, .dfc-pd .dfc-pd-tab .is-neg { color:#b91c1c; }
.dfc-pd .dfc-pd-tab .is-pos { color:#0b6b27; }
.dfc-pd .dfc-pd-res { font-weight:800; }
.dfc-pd .dfc-pd-sort { cursor:pointer; user-select:none; }
.dfc-pd .dfc-pd-sort:hover { color:var(--primary, #064d57); }
.dfc-pd .dfc-pd-ar { color:var(--accent, #029d66); }
.dfc-pd .dfc-pd-gap { border-left:2px solid var(--borda, #e4e4e7); }
.dfc-pd .dfc-pd-grp th { text-align:center; color:var(--primary, #064d57); border-bottom:0; padding-bottom:2px; background:transparent; }
.dfc-pd .dfc-pd-row { cursor:pointer; }
.dfc-pd .dfc-pd-pl { display:block; font-weight:700; color:var(--primary, #064d57); }
.dfc-pd .dfc-pd-mod { display:block; font-size:10px; line-height:1.25; color:var(--sub, #6b7280); white-space:normal; max-width:190px; }
.dfc-pd .dfc-pd-tipo { white-space:normal !important; min-width:120px; font-size:12px; }
.dfc-pd .dfc-pd-tot td { font-weight:800; border-top:2px solid var(--borda, #e4e4e7); background:var(--bg-soft, #f6f8f7); }
.dfc-pd .dfc-pd-pill { display:inline-block; font-size:11px; font-weight:700; padding:2px 9px; border-radius:999px; }
.dfc-pd .dfc-pd-pill.is-ok { background:#e3f4ec; color:#0b6b27; }
.dfc-pd .dfc-pd-pill.is-bad { background:#fbe7e3; color:#b91c1c; }
.dfc-pd .dfc-pd-pill.is-warn { background:#fbf1dc; color:#8a6a1c; }
.dfc-pd .dfc-pd-cmp td:first-child, .dfc-pd .dfc-pd-cmp th:first-child { position:sticky; left:0; background:#fff; z-index:3; }
.dfc-pd .dfc-pd-cmp th.is-best { color:#0b6b27; }
.dfc-pd .dfc-pd-cmp th.is-worst { color:#b91c1c; }
/* Média defensores e Média ofensores ficam fixas ao lado da coluna de indicador: no deslize
   horizontal as colunas de veículo passam por baixo e as duas médias seguem inteiras na tela.
   Fundo opaco (equivale ao rgba(6,77,87,.06) sobre branco) porque a célula sobrepõe conteúdo. */
.dfc-pd .dfc-pd-cmp .dfc-pd-avg { background:#f0f4f5; font-weight:700; }
.dfc-pd .dfc-pd-cmp .dfc-pd-avg1, .dfc-pd .dfc-pd-cmp .dfc-pd-avg2 { position:sticky; z-index:2; }
.dfc-pd .dfc-pd-cmp .dfc-pd-avg1 { left:var(--pd-l1, 210px); }
.dfc-pd .dfc-pd-cmp .dfc-pd-avg2 { left:var(--pd-l2, 346px); box-shadow:1px 0 0 var(--borda, #e4e4e7); }
.dfc-pd .dfc-pd-sec td { background:var(--bg-soft, #f6f8f7) !important; color:var(--primary, #064d57); font-size:11px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.dfc-pd .dfc-pd-tt td { font-weight:800; }
.dfc-pd .dfc-pd-bold td:first-child { font-weight:700; }
.dfc-pd .dfc-pd-fin td { color:var(--sub, #6b7280); }
.dfc-pd .dfc-pd-cli { white-space:normal !important; min-width:150px; max-width:200px; font-size:11px; line-height:1.25; vertical-align:top; padding-top:8px !important; padding-bottom:8px !important; }
.dfc-pd .dfc-pd-cli__it { display:flex; justify-content:space-between; align-items:baseline; gap:8px; color:#344054; }
.dfc-pd .dfc-pd-cli__it + .dfc-pd-cli__it { margin-top:4px; }
.dfc-pd .dfc-pd-cli__it b { color:var(--primary, #064d57); font-variant-numeric:tabular-nums; }
.dfc-pd .dfc-pd-sec__lbl { position:sticky; left:12px; display:inline-block; }
.dfc-pd .painel:has(> #pd-cmp) { position:relative; }
.dfc-pd .dfc-pd-cmp-reset { position:absolute; top:16px; right:18px; }
.dfc-pd .dfc-pd-svg svg { display:block; width:100%; height:auto; }
.dfc-pd .dfc-pd-pel { font-size:12px; font-weight:800; fill:#8a6a1c; }
.dfc-pd .dfc-pd-pe { display:flex; flex-direction:column; gap:3px; max-height:640px; overflow-y:auto; }
.dfc-pd .dfc-pd-pe__row { display:grid; grid-template-columns:84px minmax(0, 1fr) 110px 110px 96px; align-items:center; gap:14px; padding:4px 14px 4px 6px; border-radius:6px; cursor:pointer; transition:background .12s; }
.dfc-pd .dfc-pd-pe__row:hover, .dfc-pd .dfc-pd-pe__row:focus-visible { background:var(--bg-soft, #f6f8f7); outline:none; }
.dfc-pd .dfc-pd-pe__pl { font-size:12px; font-weight:700; color:#344054; }
.dfc-pd .dfc-pd-pe__trk { position:relative; height:16px; background:#f1f3f2; border-radius:4px; }
.dfc-pd .dfc-pd-pe__bar { position:absolute; left:0; top:0; bottom:0; border-radius:4px; background:linear-gradient(180deg, rgba(255,255,255,.15), rgba(0,0,0,0)), #B9BEC6; }
.dfc-pd .dfc-pd-pe__bar.is-ok { background-color:#34A853; }
.dfc-pd .dfc-pd-pe__bar.is-no { background-color:#DB5A4B; }
.dfc-pd .dfc-pd-pe__bar.is-cv, .dfc-pd .dfc-pd-pe__bar.is-na { background-color:#E9B949; }
.dfc-pd .dfc-pd-pe__mk { position:absolute; top:-3px; bottom:-3px; width:3px; margin-left:-1px; background:#1f2937; border-radius:2px; }
.dfc-pd .dfc-pd-pe__fora { position:absolute; right:6px; top:0; font-size:10.5px; line-height:16px; color:#6b7280; }
.dfc-pd .dfc-pd-pe__v { font-size:12px; text-align:right; color:#344054; font-variant-numeric:tabular-nums; }
.dfc-pd .dfc-pd-pe__g { font-size:12px; font-weight:800; font-variant-numeric:tabular-nums; }
.dfc-pd .dfc-pd-pe__g.is-pos { color:#0b6b27; } .dfc-pd .dfc-pd-pe__g.is-neg { color:#b91c1c; } .dfc-pd .dfc-pd-pe__g.is-warn { color:#b45309; }
.dfc-pd .dfc-pd-pe__g, .dfc-pd .dfc-pd-pe__m { text-align:right; }
.dfc-pd .dfc-pd-pe__m { font-size:12px; font-weight:800; font-variant-numeric:tabular-nums; }
.dfc-pd .dfc-pd-pe__m.is-pos { color:#0b6b27; } .dfc-pd .dfc-pd-pe__m.is-neg { color:#b91c1c; } .dfc-pd .dfc-pd-pe__m.is-warn { color:#b45309; }
.dfc-pd .dfc-pd-pe__cab { cursor:default; padding-bottom:6px; margin-bottom:4px; border-bottom:1px solid #eef1f0; border-radius:0; }
.dfc-pd .dfc-pd-pe__cab:hover { background:none; }
.dfc-pd .dfc-pd-pe__cab span { font-size:10px !important; font-weight:800 !important; letter-spacing:.05em; text-transform:uppercase; color:#98a2b3 !important; }
.dfc-pd .sv-chart-leg i.is-ok { background:#34A853; } .dfc-pd .sv-chart-leg i.is-no { background:#DB5A4B; }
.dfc-pd .sv-chart-leg i.is-cv { background:#E9B949; } .dfc-pd .sv-chart-leg i.is-mk { background:#1f2937; width:3px; }
.dfc-pd .dfc-pd-ptl { font-size:12px; font-weight:800; }
.dfc-pd .dfc-pd-conc { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:12px; }
.dfc-pd .dfc-pd-ex { border:1px solid #eef1f0; border-radius:10px; padding:14px 16px; min-width:0; }
.dfc-pd .dfc-pd-ex h5 { margin:0 0 10px; font-size:14px; font-weight:800; color:#1f2937; display:flex; justify-content:space-between; align-items:center; gap:8px; }
.dfc-pd .dfc-pd-ex dl { display:grid; grid-template-columns:1fr auto; gap:5px 0; margin:0; font-size:13px; }
.dfc-pd .dfc-pd-ex dd { padding-left:14px; }
.dfc-pd .dfc-pd-ex dt { color:var(--sub, #6b7280); }
.dfc-pd .dfc-pd-ex dd { margin:0; text-align:right; font-weight:700; color:#1f2937; }
.dfc-pd .dfc-pd-ex .dfc-pd-exr { border-top:1px solid #eef1f0; padding-top:7px; margin-top:3px; font-size:14px; }
.dfc-pd .dfc-pd-ex dd.dfc-pd-exr.is-pos { color:#0b6b27; font-weight:800; }
.dfc-pd .dfc-pd-ex dd.dfc-pd-exr.is-neg { color:#b91c1c; font-weight:800; }
.dfc-pd .dfc-pd-formula { font-size:12.5px; font-weight:600; color:#344054; background:var(--bg-soft, #f6f8f7); border-radius:9px; padding:9px 14px; margin:12px 0; }
.dfc-pd .dfc-pd-pontos { display:grid; grid-template-columns:repeat(5, minmax(0, 1fr)); gap:10px; }
.dfc-pd .dfc-pd-pontos > div { background:var(--bg-soft, #f6f8f7); border-radius:9px; padding:10px 12px; font-size:12.5px; color:#475467; line-height:1.4; }
.dfc-pd .dfc-pd-pontos b { display:block; color:var(--primary, #064d57); margin-bottom:3px; }
.dfc-pd .dfc-pd-sim { display:grid; grid-template-columns:300px minmax(0, 1fr); gap:20px; }
.dfc-pd .dfc-pd-simf { display:flex; flex-direction:column; gap:9px; }
.dfc-pd .dfc-pd-simf label { display:flex; flex-direction:column; gap:4px; font-size:11.5px; font-weight:700; color:var(--sub, #6b7280); }
.dfc-pd .dfc-pd-simf input[type=number], .dfc-pd .dfc-pd-simf select { border:1px solid #d8dee4; border-radius:8px; padding:7px 10px; font-size:13px; font-weight:600; color:#1f2937; background:#fff; }
.dfc-pd .dfc-pd-simf input:disabled { opacity:.5; }
.dfc-pd .dfc-pd-simf .dfc-pd-chk { flex-direction:row; align-items:center; gap:8px; color:#344054; }
.dfc-pd .dfc-pd-simk { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:10px; margin-bottom:12px; }
.dfc-pd .dfc-pd-simk > div { background:var(--bg-soft, #f6f8f7); border-radius:9px; padding:10px 12px; display:flex; flex-direction:column; gap:2px; min-width:0; }
.dfc-pd .dfc-pd-lbl { font-size:10.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--sub, #6b7280); }
.dfc-pd .dfc-pd-simk b { font-size:18px; font-weight:800; color:#1f2937; }
.dfc-pd .dfc-pd-simk b.is-neg { color:#b91c1c; } .dfc-pd .dfc-pd-simk b.is-pos { color:#0b6b27; }
.dfc-pd .dfc-pd-simk small { font-size:11.5px; color:var(--sub, #6b7280); }
.dfc-pd .dfc-pd-notas { margin:0; padding-left:18px; display:flex; flex-direction:column; gap:5px; font-size:12.5px; color:#475467; line-height:1.45; }
.dfc-pd-dacts { display:flex; gap:10px; }
.dfc-pd-dacts .dfc-per__aplicar { flex:0 0 auto; }
@media (max-width:1100px) { .dfc-pd .dfc-pd-pontos { grid-template-columns:repeat(2, minmax(0, 1fr)); } }
@media (max-width:820px) { .dfc-pd .dfc-pd-conc, .dfc-pd .dfc-pd-sim, .dfc-pd .dfc-pd-causas { grid-template-columns:1fr; } .dfc-pd .dfc-pd-simk { grid-template-columns:repeat(2, minmax(0, 1fr)); } }
.dfc-pd .dfc-pd-rk .dfc-pd-tot td { background:var(--bg-soft, #f6f8f7); }
.dfc-pd .dfc-pd-simr { min-width:0; }

/* ── Produtividade · rodada 02/10: cards alinhados, grupos editáveis, leitura das diferenças, km/R$ por km, simulador ── */
.sv-root.dfc-pd .portal-grid.dfc-pd-kpis { grid-template-columns:repeat(6, minmax(0, 1fr)); }
.dfc-pd .dfc-pd-kpis .pc-label, .dfc-pd .dfc-pd-kpis .pc-desc { overflow-wrap:anywhere; white-space:normal; }
.dfc-rec-tag { display:inline-block; margin-left:8px; padding:1px 8px; border-radius:999px; background:var(--bg-soft, #f0f3f2); font-size:10.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--sub, #6b7280); vertical-align:middle; }
.dfc-pd .dfc-pd-grupos { display:flex; flex-wrap:wrap; align-items:flex-start; gap:10px 16px; margin-bottom:12px; }
.dfc-pd .dfc-pd-grupo { display:flex; flex-wrap:wrap; align-items:center; gap:6px; padding:8px 10px; border:1px solid #eef1f0; border-radius:10px; flex:1 1 360px; min-width:0; }
.dfc-pd .dfc-pd-grupo.is-best { border-color:#cfe9db; } .dfc-pd .dfc-pd-grupo.is-worst { border-color:#f3d3cd; }
.dfc-pd .dfc-pd-grupo__lbl { flex:1 1 100%; font-size:10.5px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--sub, #6b7280); }
.dfc-pd .dfc-pd-grupo.is-best .dfc-pd-grupo__lbl { color:#0b6b27; } .dfc-pd .dfc-pd-grupo.is-worst .dfc-pd-grupo__lbl { color:#b91c1c; }
.dfc-pd .dfc-pd-chip { display:inline-flex; align-items:center; gap:5px; padding:3px 6px 3px 9px; border-radius:999px; font-size:12px; font-weight:600; color:#1f2937; background:var(--bg-soft, #f6f8f7); }
.dfc-pd .dfc-pd-chip.is-best { background:#e3f4ec; } .dfc-pd .dfc-pd-chip.is-worst { background:#fbe7e3; }
.dfc-pd .dfc-pd-chip b { font-size:11px; color:var(--sub, #6b7280); }
.dfc-pd .dfc-pd-chip button { border:none; background:none; width:18px; height:18px; border-radius:50%; font-size:14px; line-height:1; color:var(--sub, #6b7280); cursor:pointer; padding:0; }
.dfc-pd .dfc-pd-chip button:hover { background:rgba(0,0,0,.08); color:#1f2937; }
.dfc-pd .dfc-pd-add { border:1px dashed #c9d1cf; border-radius:999px; padding:3px 10px; font:inherit; font-size:12px; font-weight:600; color:var(--primary); background:#fff; cursor:pointer; max-width:220px; }
.dfc-pd .dfc-pd-grupos .dfc-per__limpar { align-self:center; }
.dfc-pd .dfc-pd-dif { margin-top:16px; padding:14px 16px; border:1px solid #eef1f0; border-radius:10px; }
.dfc-pd .dfc-pd-dif h5 { margin:0 0 6px; font-size:13px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:var(--primary); }
.dfc-pd .dfc-pd-dif__res { margin:0 0 12px; font-size:13.5px; line-height:1.5; color:#1f2937; }
.dfc-pd .dfc-pd-dif__res b.is-pos, .dfc-pd .dfc-pd-dif__top b.is-pos { color:#0b6b27; } .dfc-pd .dfc-pd-dif__res b.is-neg, .dfc-pd .dfc-pd-dif__top b.is-neg { color:#b91c1c; }
.dfc-pd .dfc-pd-dif__lista { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px 16px; }
.dfc-pd .dfc-pd-dif__it { padding:12px 14px; border-radius:9px; background:var(--bg-soft, #f6f8f7); min-width:0; display:flex; flex-direction:column; }
.dfc-pd .dfc-pd-dif__it.is-principal { background:#fff; border:1px solid var(--primary); }
.dfc-pd .dfc-pd-dif__top { display:flex; justify-content:space-between; align-items:baseline; gap:10px; flex-wrap:wrap; }
.dfc-pd .dfc-pd-dif__tit { font-size:12.5px; font-weight:800; color:#1f2937; }
.dfc-pd .dfc-pd-dif__top b { font-size:15px; font-weight:800; font-variant-numeric:tabular-nums; white-space:nowrap; }
.dfc-pd .dfc-pd-dif__bar { height:6px; border-radius:3px; background:#e6e9e8; margin:6px 0 8px; overflow:hidden; }
.dfc-pd .dfc-pd-dif__bar i { display:block; height:100%; border-radius:3px; background:#0b6b27; }
.dfc-pd .dfc-pd-dif__bar i.is-neg { background:#b91c1c; }
.dfc-pd .dfc-pd-dif__it p { margin:0; font-size:12.5px; line-height:1.5; color:#344054; }
.dfc-pd .dfc-pd-ctl { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; margin-bottom:12px; }
.dfc-pd .dfc-pd-ctl__lbl { font-size:10.5px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--sub, #6b7280); }
.dfc-pd .dfc-pd-ctl__hint { font-size:12px; color:var(--sub, #6b7280); flex:1 1 260px; }
.dfc-pd .dfc-pd-seg { display:inline-flex; padding:3px; border-radius:999px; background:var(--bg-soft, #f3f5f4); gap:3px; }
.dfc-pd .dfc-pd-seg button { border:1px solid transparent; border-radius:999px; padding:5px 12px; background:none; font:inherit; font-size:12px; font-weight:700; color:var(--sub, #6b7280); cursor:pointer; white-space:nowrap; }
.dfc-pd .dfc-pd-seg button.is-on { background:#fff; border-color:#d8dee4; color:var(--primary); box-shadow:0 1px 2px rgba(0,0,0,.06); }
.dfc-pd .dfc-pd-ex dt.dfc-pd-exo, .dfc-pd .dfc-pd-ex dd.dfc-pd-exo { font-size:11px; font-weight:500; color:var(--sub, #6b7280); margin-top:-3px; }
.dfc-pd .dfc-pd-ex dd.dfc-pd-exo { text-align:right; max-width:260px; justify-self:end; }
.dfc-pd .dfc-pd-card { background:var(--bg-soft, #f6f8f7); border-radius:9px; padding:8px 10px 10px; display:flex; flex-direction:column; gap:4px; min-width:0; }
.dfc-pd .dfc-pd-card__sel { border:1px dashed #c9d1cf; border-radius:7px; padding:4px 6px; font:inherit; font-size:11.5px; font-weight:600; color:var(--primary); background:#fff; cursor:pointer; max-width:100%; }
.dfc-pd .dfc-pd-card__corpo { display:flex; flex-direction:column; gap:2px; min-height:58px; }
.dfc-pd .dfc-pd-card__corpo b { font-size:18px; font-weight:800; color:#1f2937; }
.dfc-pd .dfc-pd-card__corpo b.is-neg { color:#b91c1c; } .dfc-pd .dfc-pd-card__corpo b.is-pos { color:#0b6b27; }
.dfc-pd .dfc-pd-card__corpo small { font-size:11.5px; color:var(--sub, #6b7280); }
.dfc-pd .dfc-pd-card__vazio { font-size:12px; color:var(--sub, #6b7280); padding-top:14px; }
.dfc-pd .dfc-pd-sens { margin-top:0; }
.dfc-pd details.dfc-pd-dobra > summary { list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:0; user-select:none; }
.dfc-pd details.dfc-pd-dobra > summary::-webkit-details-marker { display:none; }
.dfc-pd details.dfc-pd-dobra[open] > summary { margin-bottom:14px; }
.dfc-pd .dfc-pd-dobra__tog { font-size:12px; color:#98a2b3; transition:transform .15s; margin-top:4px; }
.dfc-pd details.dfc-pd-dobra:not([open]) .dfc-pd-dobra__tog { transform:rotate(-90deg); }
.dfc-pd .dfc-pd-sens h5 { margin:0 0 4px; font-size:13px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:var(--primary); }
.dfc-pd .dfc-pd-mes td:first-child, .dfc-pd .dfc-pd-mes th:first-child { position:sticky; left:0; background:#fff; z-index:1; }
@media (max-width:1280px) { .sv-root.dfc-pd .portal-grid.dfc-pd-kpis { grid-template-columns:repeat(3, minmax(0, 1fr)); } }
@media (max-width:820px) { .sv-root.dfc-pd .portal-grid.dfc-pd-kpis { grid-template-columns:repeat(2, minmax(0, 1fr)); } .dfc-pd .dfc-pd-dif__lista { grid-template-columns:1fr; } }

/* ── Produtividade · rodada 3 (02/10): origem retraída, sensibilidade com % editáveis ── */
.dfc-pd .dfc-pd-exo__det summary { cursor:pointer; list-style:none; color:var(--primary, #064d57); font-weight:600; }
.dfc-pd .dfc-pd-exo__det summary::-webkit-details-marker { display:none; }
.dfc-pd .dfc-pd-exo__lista { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:4px 10px; margin-top:6px; font-size:11px; color:#344054; }
.dfc-pd .dfc-pd-exo__lista span { background:var(--bg-soft, #f6f8f7); border-radius:999px; padding:2px 8px; white-space:nowrap; }
.dfc-pd .dfc-pd-exo__lista b { color:var(--primary, #064d57); }
.dfc-pd .dfc-pd-sens__como { margin:2px 0 10px; font-size:12.5px; color:#344054; }
.dfc-pd .dfc-pd-sens__como summary { cursor:pointer; font-size:12px; font-weight:700; color:var(--primary, #064d57); }
.dfc-pd .dfc-pd-sens__como p { margin:6px 0 0; line-height:1.5; }
.dfc-pd .dfc-pd-sens__f { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:10px; }
.dfc-pd .dfc-pd-sens__f label { display:flex; flex-direction:column; gap:4px; font-size:11.5px; font-weight:700; color:var(--sub, #6b7280); }
.dfc-pd .dfc-pd-sens__f input { width:140px; border:1px solid #d8dee4; border-radius:8px; padding:7px 10px; font-size:13px; font-weight:600; color:#1f2937; background:#fff; }

/* ══════════════════════════════════════════════════════════════
   TABELA COM CABEÇALHO DE FILTRO E CLASSIFICAÇÃO (03/10/2026)
   Padrão do módulo para tabela de registros (tabfiltro.js, sobre
   core/tabela-filtros.js). O popover (.gmed-aud-pop) é global.
   ══════════════════════════════════════════════════════════════ */
table.dfc-ft thead th { position: sticky; top: 0; z-index: 3; background: #fff; }
table.dfc-ft thead tr.dfc-pd-grp th { position: static; }
table.dfc-ft thead th:has(.gmed-aud-th) { padding: 0 !important; }
.dfc-ft .gmed-aud-th { display: flex; align-items: center; gap: 2px; padding: 6px 8px; }
.dfc-ft th.num .gmed-aud-th { justify-content: flex-end; }
.dfc-ft .gmed-aud-th__lbl { border: 0; background: none; cursor: pointer; padding: 3px 2px; font: inherit; font-size: 10.5px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: #98a2b3; white-space: nowrap; }
.dfc-ft .gmed-aud-th__lbl:hover { color: var(--primary, #064d57); }
.dfc-ft .gmed-aud-th__lbl i { font-style: normal; font-size: 8.5px; color: var(--accent, #029d66); }
.dfc-ft .gmed-aud-th__f { border: 0; background: none; cursor: pointer; padding: 3px; border-radius: 5px; color: #c3c9cf; display: inline-flex; line-height: 0; }
.dfc-ft .gmed-aud-th__f:hover { color: var(--accent, #029d66); background: color-mix(in srgb, var(--accent, #029d66) 12%, transparent); }
.dfc-ft .gmed-aud-th__f.is-on { color: #fff; background: var(--accent, #029d66); }
.dfc-ft td.dfc-ft__nada { text-align: center; color: #98a2b3; font-size: 12.5px; padding: 18px 8px; }
.dfc-ft__ativos { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 8px; padding: 7px 12px; border-radius: 8px; background: color-mix(in srgb, var(--accent, #029d66) 7%, #fff); font-size: 12px; color: #344054; }
.dfc-ft__ativos b { color: var(--primary, #064d57); }
.dfc-ft__limpar { border: 0; background: none; padding: 0; font: inherit; font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--accent-dark, var(--accent, #029d66)); cursor: pointer; }
.lc-tab .lc-conta { white-space: nowrap; }
/* nada de reticências: natureza, fornecedor e histórico quebram linha */
.lc-tab .lc-nat, .lc-tab .lc-forn { max-width: 200px; min-width: 110px; white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; line-height: 1.3; }
.lc-tab .lc-hist { max-width: 300px; min-width: 170px; white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; line-height: 1.3; font-size: 11.5px; }

/* ── Plano de Contas ── */
.dfc-pc .pc-wrap { max-height: 640px; }
.dfc-pc .pc-wrap--log { max-height: 360px; }
.dfc-pc .pc-tab td { padding: 8px 10px; font-size: 12.5px; vertical-align: middle; }
.dfc-pc .pc-tab .pc-cod { color: #667085; font-variant-numeric: tabular-nums; white-space: nowrap; }
.dfc-pc .pc-nat { border: 0; background: none; padding: 0; font: inherit; font-weight: 700; color: #1f2937; text-align: left; cursor: pointer; }
.dfc-pc .pc-nat:hover { color: var(--primary, #064d57); text-decoration: underline; }
.dfc-pc .pc-linha { color: #475467; min-width: 110px; }
.dfc-pc .pc-sel { width: 185px; border: 1px solid #d8dee4; border-radius: 8px; padding: 6px 8px; font: inherit; font-size: 12.5px; font-weight: 600; color: #1f2937; background: #fff; cursor: pointer; }
.dfc-pc .pc-sel:focus { outline: 2px solid var(--accent, #029d66); outline-offset: 1px; }
.dfc-pc .pc-sit { white-space: nowrap; }
.dfc-pc .pc-sit .pc-volta { display: block; margin-top: 5px; }
.dfc-pc .pc-tab--nat td:nth-child(2) { min-width: 170px; }
.dfc-pc .pc-tab--nat td { padding: 8px 7px; }
.dfc-pc .pc-tab--nat td:nth-child(3) { min-width: 80px; }
.dfc-pc .pc-volta { border: 1px solid #d8dee4; background: #fff; border-radius: 8px; padding: 3px 8px; font: inherit; font-size: 11px; font-weight: 700; color: var(--primary, #064d57); cursor: pointer; white-space: nowrap; }
.dfc-pc .pc-volta:hover { border-color: var(--accent, #029d66); }
.dfc-pc .pc-nova { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; min-width: 300px; }
.dfc-pc .pc-nova__nome { flex: 1 1 140px; border: 1px solid #d8dee4; border-radius: 8px; padding: 6px 8px; font: inherit; font-size: 12.5px; }
.dfc-pc .pc-nova__linha { border: 1px solid #d8dee4; border-radius: 8px; padding: 6px 8px; font: inherit; font-size: 12px; background: #fff; }
.dfc-pc .pc-nova__acoes { display: inline-flex; gap: 4px; }
.dfc-pc .pc-nova__ok { border: 0; border-radius: 8px; padding: 6px 12px; font: inherit; font-size: 12px; font-weight: 700; color: #fff; background: var(--accent, #029d66); cursor: pointer; }
.dfc-pc .pc-nova__x { border: 1px solid #d8dee4; border-radius: 8px; padding: 4px 9px; background: #fff; font-size: 15px; line-height: 1; color: #667085; cursor: pointer; }
.dfc-pd .dfc-pd-rk td:nth-child(2) { min-width: 150px; }
