/* ══════════════════════════════════════════════════════════════
   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 ── */
.cx-insight-card { display:flex; gap:12px; padding:14px 16px; background:var(--bg-soft); border-left:4px solid var(--neutral); border-radius:8px; margin-bottom:10px; }
.cx-insight-card.is-ok   { border-left-color:var(--ok);   background:var(--ok-bg); }
.cx-insight-card.is-warn { border-left-color:var(--warn); background:var(--warn-bg); }
.cx-insight-card.is-bad  { border-left-color:var(--crit); 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); }
.dfc-prog__item.is-ok   { border-left:4px solid var(--ok); }
.dfc-prog__item.is-warn { border-left:4px solid var(--warn); }
.dfc-prog__item.is-erro { border-left:4px solid 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:#381d54; 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 #58c8dc; 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:#58c8dc; 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:#381d54; 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:#381d54; 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:#58c8dc; 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:#381d54; margin:0 0 10px; }
.sv-root .dfc-chartslot { min-height:120px; }
.sv-root .dfc-tip { background:#f6f8fb; border-left:3px solid #58c8dc; 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-left:3px solid #58c8dc; 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 #58c8dc; 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:#58c8dc; 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:#381d54; }
.sv-root .dfc-regime__btn.is-on { background:#fff; box-shadow:0 1px 3px rgba(16,24,40,.13); color:#381d54; }
.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:#58c8dc; 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:#381d54; 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:#f3f0f8; }
.sv-root .dre-chev { color:#c2cad4; margin-left:6px; font-size:15px; }
.sv-root .dre-row.is-clk:hover .dre-chev { color:#58c8dc; }
.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; }
