/* Frente 35 · DRE redesenhada. Tudo escopado em .dx (e .dx-drill no modal); usa os tokens do app-glow.css. */
.dx{display:flex;flex-direction:column;gap:20px;min-width:0;
  --dx-foco:color-mix(in srgb,var(--roxo) 7%,var(--card));
  --dx-foco-2:color-mix(in srgb,var(--roxo) 12%,var(--card));
  --dx-grupo:var(--grupo-bg,var(--roxo-s));
  --dx-res:var(--res-bg,#1A1B45);--dx-res-fg:var(--res-fg,#fff);
  --dx-pos:var(--ok,#15805A);--dx-negc:var(--cr,#C0392B)}
.dx .dx-cab{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px}
.dx .dx-selo{display:inline-flex;align-items:center;gap:8px;font-family:var(--m);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--roxo);background:var(--roxo-s);padding:5px 11px;border-radius:999px;margin-bottom:10px}
.dx .dx-selo i{width:6px;height:6px;border-radius:50%;background:var(--roxo);box-shadow:0 0 0 3px color-mix(in srgb,var(--roxo) 25%,transparent)}
.dx h1{margin:0}
.dx .dx-cab .sub{margin-top:6px}

/* ---------- filtros em uma linha ---------- */
.dx-filtros{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px;background:var(--card);border-radius:var(--r);box-shadow:var(--anel),var(--sombra)}
.dx-filtros .dx-rot{font-family:var(--m);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--mudo);margin:0 2px 0 6px}
.dx-seg{display:inline-flex;background:var(--bg-2);border-radius:10px;padding:3px;gap:2px}
.dx-seg button{border:0;background:none;color:var(--mudo);font:600 12.5px var(--f);padding:7px 12px;border-radius:8px;cursor:pointer;transition:background .15s,color .15s,box-shadow .15s}
.dx-seg button:hover{color:var(--fg)}
.dx-seg button[aria-pressed="true"]{background:var(--card);color:var(--fg);box-shadow:var(--anel),var(--sombra)}
.dx-filtros select{padding:7px 10px;font-size:12.5px}
.dx-filtros .dx-esp{flex:1}
.dx-filtros label.dx-chk{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--fg-2);cursor:pointer}
.dx-filtros .pill{margin-left:4px}

/* ---------- cartões de indicadores ---------- */
.dx-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}
.dx-kpi{position:relative;overflow:hidden;background:var(--card);border-radius:var(--r);box-shadow:var(--anel),var(--sombra);padding:16px 16px 12px;display:flex;flex-direction:column;gap:6px;min-width:0;transition:transform .18s,box-shadow .18s}
.dx-kpi:hover{transform:translateY(-2px);box-shadow:0 0 0 1px var(--roxo-m),var(--sombra-2,var(--sombra))}
.dx-kpi::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--dx-k,var(--roxo));opacity:.85}
.dx-kpi small{font-family:var(--m);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--mudo);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dx-kpi b{font-size:21px;font-weight:640;letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--fg)}
.dx-kpi b.dx-neg{color:var(--dx-negc)}
.dx-kpi .dx-kv{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--mudo);min-height:18px;flex-wrap:wrap}
.dx-kpi svg.dx-spark{width:100%;height:30px;display:block;margin-top:2px;overflow:visible}
.dx-kpi svg.dx-spark polyline{fill:none;stroke:var(--dx-k,var(--roxo));stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round;opacity:.8}
.dx-kpi svg.dx-spark .dx-area{fill:var(--dx-k,var(--roxo));opacity:.08;stroke:none}
.dx-kpi svg.dx-spark circle{fill:var(--dx-k,var(--roxo));stroke:var(--card);stroke-width:2}

/* variação: seta + número, cor pelo que é bom para a linha */
.dx-var{display:inline-flex;align-items:center;gap:3px;font-family:var(--m);font-size:11px;font-weight:600;white-space:nowrap;padding:2px 7px;border-radius:999px;background:var(--bg-2);color:var(--mudo)}
.dx-var.bom{color:var(--dx-pos);background:color-mix(in srgb,var(--dx-pos) 12%,transparent)}
.dx-var.ruim{color:var(--dx-negc);background:color-mix(in srgb,var(--dx-negc) 12%,transparent)}
.dx-var svg{width:9px;height:9px;fill:currentColor}

/* ---------- gráficos ---------- */
.dx-graf{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:14px}
.dx-graf .dx-box:first-child{grid-column:1/-1}
.dx-box{background:var(--card);border-radius:var(--r);box-shadow:var(--anel),var(--sombra);padding:18px 20px;min-width:0}
.dx-box header{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.dx-box h2{margin:0;font-size:14.5px}
.dx-box header small{font-family:var(--m);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--mudo)}
.dx-cv{position:relative;height:260px}
.dx-cv.alto{height:300px}
.dx-leg{display:flex;flex-wrap:wrap;gap:14px;margin-top:10px;font-size:12px;color:var(--fg-2)}
.dx-leg i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.dx-leg i.ln{height:2px;border-radius:2px;vertical-align:3px;width:14px}
.dx-vazio-g{display:grid;place-items:center;height:100%;color:var(--mudo);font-size:13px;text-align:center}

/* ---------- tabela ---------- */
.dx-tab{background:var(--card);border-radius:var(--r);box-shadow:var(--anel),var(--sombra);overflow:hidden}
.dx-tab-cab{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px;flex-wrap:wrap}
.dx-tab-cab h2{margin:0;font-size:14.5px}
.dx-tab-cab .dx-acoes{display:flex;gap:6px;flex-wrap:wrap}
.dx-rolo{overflow:auto;max-height:76vh;overscroll-behavior:contain}
.dx table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:13px}
.dx th,.dx td{padding:0 12px;height:36px;white-space:nowrap;border-bottom:1px solid var(--linha);background:var(--card)}
.dx thead th{position:sticky;top:0;z-index:3;height:44px;font-family:var(--m);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;color:var(--mudo);text-align:right;border-bottom:1px solid var(--linha-2);cursor:default}
.dx thead th.dx-l{text-align:left;z-index:5}
.dx thead th.dx-mes{cursor:pointer;transition:color .15s}
.dx thead th.dx-mes:hover{color:var(--roxo)}
.dx th.dx-l,.dx td.dx-l{position:sticky;left:0;z-index:2;text-align:left;min-width:300px;max-width:300px;overflow:hidden;text-overflow:ellipsis;box-shadow:1px 0 0 var(--linha-2)}
.dx td.v{text-align:right;font-family:var(--m);font-size:12.3px;font-variant-numeric:tabular-nums;color:var(--fg);min-width:96px}
.dx td.v.dx-av{min-width:62px;color:var(--mudo);font-size:11.5px}
.dx td.v.dx-ah{min-width:92px}
.dx .dx-z{color:var(--mudo);opacity:.45}
.dx .dx-neg{color:var(--dx-negc)}
/* bloco do período em foco */
.dx th.dx-f,.dx td.dx-f{background:var(--dx-foco)}
.dx th.dx-f1,.dx td.dx-f1{box-shadow:inset 1px 0 0 var(--linha-2)}
.dx th.dx-f4,.dx td.dx-f4{box-shadow:inset -1px 0 0 var(--linha-2)}
.dx thead th.dx-f{color:var(--roxo)}
.dx thead th .dx-th2{display:block;font-size:8.5px;letter-spacing:.12em;color:var(--mudo);opacity:.85;margin-top:2px}
/* mês atual e mês em foco no quadro */
.dx thead th.dx-atual{color:var(--fg)}
.dx thead th.dx-atual::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--roxo);margin-right:6px;vertical-align:1px;box-shadow:0 0 0 3px var(--roxo-s)}
.dx td.dx-col-foco,.dx th.dx-col-foco{background:var(--dx-foco)}
.dx thead th.dx-col-foco{color:var(--roxo);box-shadow:inset 0 -2px 0 var(--roxo)}
.dx th.dx-acum,.dx td.dx-acum{box-shadow:inset 1px 0 0 var(--linha-2);font-weight:600}

/* hierarquia */
.dx td.dx-l{padding-left:calc(12px + var(--dx-p,0) * 18px)}
.dx td.dx-l .dx-in{display:flex;align-items:center;gap:6px;min-width:0}
.dx td.dx-l .dx-tx{overflow:hidden;text-overflow:ellipsis}
.dx .dx-car{flex:none;width:20px;height:20px;border-radius:6px;border:0;background:none;color:var(--mudo);display:grid;place-items:center;cursor:pointer;padding:0;transition:background .15s,color .15s,transform .2s}
.dx .dx-car:hover{background:var(--roxo-s);color:var(--roxo)}
.dx .dx-car svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2.2;transition:transform .2s}
.dx .dx-car[aria-expanded="true"] svg{transform:rotate(90deg)}
.dx .dx-sem{flex:none;width:20px}
.dx tr.dx-titulo td{height:40px;background:var(--bg);font-family:var(--m);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--roxo);font-weight:600;border-bottom:1px solid var(--linha-2)}
.dx tr.dx-titulo td.dx-l{background:var(--bg)}
.dx tr.dx-esp td{height:10px;border-bottom:0;padding:0}
.dx tr.dx-grupo td{background:var(--dx-grupo);font-weight:650;color:var(--fg)}
.dx tr.dx-grupo td.dx-f{background:color-mix(in srgb,var(--roxo) 9%,var(--dx-grupo))}
.dx tr.dx-grupo td.dx-col-foco{background:color-mix(in srgb,var(--roxo) 9%,var(--dx-grupo))}
.dx tr.dx-cat td{color:var(--fg-2)}
.dx tr.dx-cat td.v{color:var(--fg)}
.dx tr.dx-cod td{height:32px;font-size:12.3px;color:var(--mudo);background:color-mix(in srgb,var(--bg) 55%,var(--card))}
.dx tr.dx-cod td.dx-f,.dx tr.dx-cod td.dx-col-foco{background:color-mix(in srgb,var(--roxo) 6%,var(--bg))}
.dx tr.dx-cod td.v{color:var(--fg-2);font-size:11.8px}
.dx tr.dx-cod .dx-cd{font-family:var(--m);font-size:10.5px;color:var(--roxo);background:var(--roxo-s);padding:1px 6px;border-radius:5px;margin-right:4px}
.dx tr.dx-res td{background:var(--dx-res);color:var(--dx-res-fg);font-weight:650;border-bottom-color:transparent}
.dx tr.dx-res td.v{color:var(--dx-res-fg);font-weight:600}
.dx tr.dx-res td.dx-f,.dx tr.dx-res td.dx-col-foco{background:color-mix(in srgb,#fff 8%,var(--dx-res))}
.dx tr.dx-res .dx-neg{color:#FFB4A8}
.dx tr.dx-res .dx-z{color:var(--dx-res-fg)}
.dx tr.dx-res .dx-var{background:rgba(255,255,255,.1);color:#E6E3FF}
.dx tr.dx-res .dx-var.bom{color:#7BE7BC;background:rgba(123,231,188,.14)}
.dx tr.dx-res .dx-var.ruim{color:#FFB4A8;background:rgba(255,180,168,.14)}
.dx tr.dx-res td.dx-av{color:#CFCBF5}
.dx tr.dx-final td{height:44px;font-size:13.5px;background:linear-gradient(0deg,var(--dx-res),var(--dx-res))}
.dx tr.dx-final td.dx-l{box-shadow:inset 3px 0 0 var(--roxo),1px 0 0 var(--linha-2)}
.dx tr.dx-pct td{height:28px;font-size:11.5px;color:var(--mudo);font-style:italic}
.dx tr.dx-pct td.v{color:var(--mudo);font-size:11.3px}
.dx tr.dx-eq td{background:color-mix(in srgb,var(--dx-res) 14%,var(--card));font-weight:600}
/* célula que abre os lançamentos */
.dx td.dx-clic{cursor:pointer;transition:background .12s,color .12s}
.dx tbody tr:not(.dx-res):not(.dx-titulo):hover td{background:color-mix(in srgb,var(--roxo-s) 70%,var(--card))}
.dx td.dx-clic:hover{color:var(--roxo)!important;text-decoration:underline;text-decoration-color:var(--roxo-m);text-underline-offset:3px}
.dx tr.dx-res:hover td{background:color-mix(in srgb,#fff 6%,var(--dx-res))}
.dx-nota{font-size:12px;color:var(--mudo);padding:10px 18px 14px;line-height:1.5}

/* ---------- modal de lançamentos ---------- */
.dx-drill{display:flex;flex-direction:column;max-height:calc(100vh - 64px)}
.dx-drill header{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:20px 22px 14px}
.dx-drill header h2{margin:0;font-size:17px}
.dx-drill .dx-sel{font-family:var(--m);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--roxo);margin-bottom:6px}
.dx-drill .dx-corpo{overflow:auto;padding:0 22px 6px}
.dx-drill table{width:100%;border-collapse:separate;border-spacing:0;font-size:12.8px}
.dx-drill th{position:sticky;top:0;background:var(--card);font-family:var(--m);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--mudo);font-weight:500;text-align:left;padding:9px 10px;border-bottom:1px solid var(--linha-2)}
.dx-drill td{padding:9px 10px;border-bottom:1px solid var(--linha);vertical-align:top;white-space:normal;overflow-wrap:anywhere}
.dx-drill td.v,.dx-drill th.v{text-align:right;font-family:var(--m);font-variant-numeric:tabular-nums;white-space:nowrap}
.dx-drill .dx-neg{color:var(--cr)}
.dx-drill footer{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 22px 18px;flex-wrap:wrap}
.dx-drill footer b{font-family:var(--m);font-variant-numeric:tabular-nums}

@media screen and (max-width:1380px){.dx-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media screen and (max-width:900px){
  .dx-graf{grid-template-columns:minmax(0,1fr)}
  .dx th.dx-l,.dx td.dx-l{min-width:168px;max-width:168px}
  .dx td.dx-l{padding-left:calc(6px + var(--dx-p,0) * 9px);font-size:12.3px}
  .dx tr.dx-cod .dx-cd{display:none}
  .dx-cv{height:230px}
}
@media screen and (max-width:620px){
  .dx-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .dx-kpi{padding:13px 12px 10px}
  .dx-kpi b{font-size:16.5px}
  .dx-filtros{padding:8px;gap:8px}
  .dx-filtros .dx-esp{display:none}
  .dx-box{padding:14px}
  .dx-drill td:nth-child(3),.dx-drill th:nth-child(3),.dx-drill td:nth-child(4),.dx-drill th:nth-child(4),.dx-drill td:nth-child(5),.dx-drill th:nth-child(5){display:none}
  .dx-drill header,.dx-drill footer{padding-left:16px;padding-right:16px}.dx-drill .dx-corpo{padding:0 12px 6px}
}
@media print{.dx-filtros,.dx-tab-cab .dx-acoes,.dx .dx-car{display:none}.dx-rolo{max-height:none;overflow:visible}}
