
/* ══ TOKENS ══════════════════════════════════════════════════════════════
   Escala de marca — única fonte da cor institucional:
     --brand-navy-*  azul-marinho do logotipo → cor de comando e interação
     --brand-mag-*   magenta do logotipo → assinatura de marca
     --brand-grad    gradiente marinho → roxo → magenta (faixas, selos)
   Papéis semânticos derivados:
     --pri     interação (botões, chips ativos, foco, links de comando)
     --mag     marca (faixas, logotipo, selos institucionais)
     --ok / --warn / --crit   ESTADO DO DADO — nunca decoração
     --tx / --tx2…--tx5       texto em 5 níveis de ênfase
   Regra de leitura: magenta não comunica estado; vermelho é exclusivo de
   reprovação/erro e verde de conformidade.
   ══════════════════════════════════════════════════════════════════════ */
:root{
  color-scheme:light;
  --brand-navy-900:#0d1c44;
  --brand-navy-700:#14306e;
  --brand-navy-500:#1f3a80;
  --brand-navy-300:#8d9bc4;
  --brand-navy-100:#e5ebf6;
  --brand-mag-700:#a10e66;
  --brand-mag-500:#c8107c;
  --brand-mag-100:#fbeaf3;
  --brand-grad:linear-gradient(135deg,var(--brand-navy-700) 0%,#7a2f80 55%,var(--brand-mag-500) 100%);
  --bg:#f4f7fb;
  --card:#fff;
  --card2:#f7f9fd;
  --card3:#fbfcfe;
  --track:#eef3f9;
  --line:#d8e1ec;
  --line2:#cbd7e6;
  --line3:#e2e9f2;
  --line4:#f0f4f9;
  --scroll:#cfdae8;
  --tx:#132033;
  --tx2:#3d4d63;
  --tx3:#5e6e84;
  --tx4:#6b7a90;
  --tx5:#6d7c93;
  --lilac:var(--brand-mag-500);
  --pri:var(--brand-navy-500);
  --onpri:#ffffff;
  --pri-b:var(--brand-navy-300);
  --pri-b2:#bcc7de;
  --pri-b3:#a3b1d2;
  --pri-b4:#d6dded;
  --pri-w:#eef2f9;
  --pri-w2:var(--brand-navy-100);
  --pri-w3:#f5f7fc;
  --pri-w4:#f2f5fb;
  --pri-d:#14275c;
  --blue:#1f4fbf;
  --blue2:#17409e;
  --blue-w:#e7eefb;
  --mag:var(--brand-mag-500);
  --mag-w:var(--brand-mag-100);
  --navy:var(--brand-navy-700);
  --grad:var(--brand-grad);
  --teal:#0e6d6f;
  --teal2:#058f91;
  --ok:#0f6644;
  --ok-w:#e4f4ec;
  --ok-w2:#f8fcfa;
  --ok-b:#d3e9dc;
  --warn:#9a4a0c;
  --warn2:#d99f15;
  --warn3:#d96b15;
  --warn-w:#fdf3e3;
  --warn-w2:#fdfaf2;
  --warn-w3:#fdf8ec;
  --warn-b:#eee1bd;
  --warn-b2:#e6d3a8;
  --warn-tx:#7a5a05;
  --warn-w4:#fdefe2;
  --crit:#c43535;
  --crit2:#b02b2b;
  --crit-w:#fbe9e9;
  --crit-w2:#fdf7f7;
  --crit-w3:#fdf8f8;
  --crit-b:#f0d4d4;
  --crit-tx:#8a2020;
  --crit-tx2:#9a4646;
  --bar:#c6d2e2;
  --bar-proj:#dbe3ef;
  --bar2:#b3c0d1;
  --brush:#93a8c2;
  --brush-proj:#c39cc8;
  --tipbg:#132033;
  --tiptx:#ffffff;
  --tiptx2:#c4d0e2;
  --sh-card:0 6px 20px rgba(28,45,76,.05);
  --sh-pop:0 20px 48px rgba(9,18,35,.22);
  --sh-tip:0 12px 32px rgba(9,18,35,.35);
  --sh-toast:0 14px 36px rgba(9,18,35,.32);
  --sh-logo:0 8px 18px rgba(20,48,110,.22);
  --hdbg:rgba(244,247,251,.93);
}
html[data-theme="dark"]{
  color-scheme:dark;
  --bg:#0d1219;
  --card:#151c27;
  --card2:#1b2330;
  --card3:#1a2230;
  --track:#232d3d;
  --line:#2b3646;
  --line2:#35435a;
  --line3:#2b3646;
  --line4:#202a38;
  --scroll:#33415a;
  --tx:#e8eef7;
  --tx2:#b3c1d3;
  --tx3:#93a3b8;
  --tx4:#8695a9;
  --tx5:#9dabbf;
  --lilac:#f072b0;
  --pri:#8fa8f2;
  --onpri:#0b1226;
  --pri-b:#4c5f95;
  --pri-b2:#33436f;
  --pri-b3:#3e5183;
  --pri-b4:#26335a;
  --pri-w:#17223c;
  --pri-w2:#1c2a4c;
  --pri-w3:#141d33;
  --pri-w4:#121a2e;
  --pri-d:#b9cbff;
  --mag:#f072b0;
  --mag-w:#3a1730;
  --navy:#8fa8f2;
  --grad:linear-gradient(135deg,#2c4a9c 0%,#8a3b90 55%,#e02b91 100%);
  --blue:#60a5fa;
  --blue2:#7cb0fb;
  --blue-w:#14263f;
  --teal:#4fd1c5;
  --teal2:#2dd4bf;
  --ok:#34d399;
  --ok-w:#102a20;
  --ok-w2:#10251d;
  --ok-b:#1d4034;
  --warn:#fbbf24;
  --warn2:#f5c451;
  --warn3:#fb923c;
  --warn-w:#33270d;
  --warn-w2:#2a2210;
  --warn-w3:#2a2210;
  --warn-b:#4a3a15;
  --warn-b2:#4a3a15;
  --warn-tx:#f5c451;
  --warn-w4:#33230f;
  --crit:#f87171;
  --crit2:#fca5a5;
  --crit-w:#3a1a1c;
  --crit-w2:#2a1618;
  --crit-w3:#241417;
  --crit-b:#4d2427;
  --crit-tx:#fca5a5;
  --crit-tx2:#f0a0a0;
  --bar:#5a6d8e;
  --bar-proj:#44536f;
  --bar2:#5d7191;
  --brush:#5e7391;
  --brush-proj:#9c5590;
  --tipbg:#28323f;
  --tiptx:#eef3fa;
  --tiptx2:#aebbcd;
  --sh-card:0 6px 20px rgba(0,0,0,.45);
  --sh-pop:0 20px 48px rgba(0,0,0,.6);
  --sh-tip:0 12px 32px rgba(0,0,0,.65);
  --sh-toast:0 14px 36px rgba(0,0,0,.6);
  --sh-logo:0 8px 18px rgba(200,16,126,.30);
  --hdbg:rgba(13,18,25,.92);
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);font-family:system-ui,system-ui,-apple-system,sans-serif;color:var(--tx);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}
.wrap{max-width:1920px;margin:0 auto;padding-bottom:56px;position:relative}
a{color:var(--blue);text-decoration:none}
button{font-family:inherit}
.mono{font-family:ui-monospace,ui-monospace,monospace}
code{font:600 11px ui-monospace,ui-monospace,monospace;color:var(--teal)}
input::placeholder{color:var(--tx5);opacity:1}
input[type=date]{color-scheme:inherit}
::selection{background:var(--pri-w2);color:var(--tx)}
:focus-visible{outline:2px solid var(--pri);outline-offset:1px}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:var(--scroll);border-radius:8px;border:3px solid var(--bg)}

/* ── blocos ─────────────────────────────────────────────────────────────── */
.card{border:1px solid var(--line);border-radius:15px;background:var(--card);box-shadow:var(--sh-card)}
.cardpad{padding:16px 18px 14px;display:flex;flex-direction:column}
.chead{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.eyebrow{font:800 9.5px system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--pri)}
.h3{margin:4px 0 0;font:700 15px/1.25 system-ui,sans-serif;letter-spacing:-.01em}
.sub{margin:4px 0 0;font:400 11.5px/1.45 system-ui,sans-serif;color:var(--tx2)}
.foot{font:500 10px system-ui,sans-serif;color:var(--tx3)}
.cfoot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px;padding-top:9px;border-top:1px solid var(--track);flex-wrap:wrap}
.lg{display:inline-flex;align-items:center;gap:5px;font:600 10.5px system-ui,sans-serif;color:var(--tx2)}
.lgs{width:9px;height:9px;border-radius:3px;flex:none}
.navlink:hover{background:var(--track)!important;border-color:var(--pri-b2)!important}
.rowh:hover{background:var(--card2)!important}
th{user-select:none}

/* ── grades ─────────────────────────────────────────────────────────────── */
.hd{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;padding:20px 32px 16px;background:var(--hdbg);border-bottom:1px solid var(--line);flex-wrap:wrap;position:relative}
.hd::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--grad)}
.logotile{flex:none;display:grid;place-items:center;width:64px;height:44px;padding:6px 8px;border-radius:12px;background:#fff;border:1px solid var(--line3);box-shadow:var(--sh-logo);margin-top:3px}
.logotile img{width:100%;height:auto;display:block}
.brandmark{display:block;width:100%;height:100%;min-height:30px;background:url(/assets/images/logo-004506582d.png) center/contain no-repeat}
.hdr{display:flex;flex-direction:column;align-items:flex-end;gap:9px;flex:none}
.bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:13px 32px;background:var(--card);border-bottom:1px solid var(--line);position:relative;z-index:60}
.pad{padding:22px 32px 0}
.kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}
.row3{display:grid;grid-template-columns:1.28fr 1fr 1fr;gap:14px;margin-top:14px}
.row2{display:grid;grid-template-columns:1.55fr 1fr;gap:14px;margin-top:14px;align-items:start}
.row2b{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
.colstack{display:flex;flex-direction:column;gap:14px}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.scrollx{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tbl{width:100%;border-collapse:collapse;font:500 12px system-ui,sans-serif;min-width:760px}
.listscroll{max-height:452px;overflow:auto}
.tblscroll{max-height:690px;overflow:auto}

/* ── controles ──────────────────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border:1px solid var(--line2);border-radius:10px;background:var(--card);color:var(--tx2);font:600 11.5px system-ui,sans-serif;cursor:pointer;white-space:nowrap}
.btn:hover{border-color:var(--pri-b);color:var(--pri)}
.btn.pri{border-color:var(--pri);background:var(--pri);color:var(--onpri)}
.gbtn{padding:4px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--tx3);font:700 10.5px system-ui,sans-serif;cursor:pointer}
.gbtn.on{background:var(--pri);border-color:var(--pri);color:var(--onpri)}
.gbtn.auto{background:var(--pri-w);border-color:var(--pri-b2);color:var(--pri)}
.chip{display:inline-flex;align-items:center;gap:7px;padding:6px 9px 6px 11px;border-radius:9px;font:600 11.5px system-ui,sans-serif;white-space:nowrap;max-width:340px;cursor:pointer}
.pop{position:absolute;top:38px;left:0;z-index:90;border:1px solid var(--line2);border-radius:12px;background:var(--card);box-shadow:var(--sh-pop);padding:8px;max-width:calc(100vw - 24px)}
.opt{display:grid;grid-template-columns:16px 1fr auto;gap:9px;align-items:center;padding:7px 8px;border-radius:8px;cursor:pointer}
.opt:hover{background:var(--track)}
.bx{width:15px;height:15px;border-radius:4px;border:1.5px solid var(--line2);background:var(--card)}
.bx.on{background:var(--pri);border-color:var(--pri);color:var(--onpri);display:grid;place-items:center;font:800 9px system-ui,sans-serif}
#brushWrap,#brushWrap svg{touch-action:none}
#busy{position:fixed;left:0;right:0;top:0;height:3px;z-index:190;background:transparent;overflow:hidden;display:none}
#busy::after{content:"";position:absolute;inset:0;width:38%;background:linear-gradient(90deg,transparent,var(--pri) 35%,var(--mag) 75%,transparent);animation:desliza 1s linear infinite}
@keyframes desliza{0%{transform:translateX(-40%)}100%{transform:translateX(300%)}}
body.ocupado #busy{display:block}
body.ocupado .pad{opacity:.5;transition:opacity .15s}
.pad{transition:opacity .15s}
.diagbtn{border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--tx3);font:600 10px ui-monospace,monospace;padding:3px 8px;cursor:pointer}
.diagbtn:hover{border-color:var(--pri-b2);color:var(--pri)}
.shot{flex:none;width:24px;height:24px;display:grid;place-items:center;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--tx5);font-size:12px;cursor:pointer;opacity:.35;transition:opacity .12s,border-color .12s}
.card:hover .shot{opacity:.8}
.shot:hover{opacity:1!important;border-color:var(--pri-b2);color:var(--pri);background:var(--pri-w3)}
@media (hover:none){.shot{opacity:.65}}

/* ── responsivo ─────────────────────────────────────────────────────────── */
@media (max-width:1660px){
  .kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .row3{grid-template-columns:1fr 1fr}
  .row3>article:first-child{grid-column:1/-1}
}
@media (max-width:1180px){
  .row3,.row2,.row2b{grid-template-columns:1fr}
  .row3>article:first-child{grid-column:auto}
  .listscroll{max-height:none}
  .tblscroll{max-height:520px}
}
@media (max-width:860px){
  .chead{flex-wrap:wrap;gap:8px}
  .chead>div{min-width:0}
  .chead>div:first-child{flex:1 1 100%}
  .chead>div:last-child{flex:1 1 100%;flex-direction:row!important;align-items:center!important;justify-content:space-between;flex-wrap:wrap;gap:8px!important}
  .hd{padding:16px 14px 14px;gap:14px}
  .hdr{align-items:flex-start;width:100%}
  .bar{padding:11px 14px;gap:7px}
  .pad{padding:14px 14px 0}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .row3,.row2,.row2b,.colstack{gap:10px;margin-top:10px}
  .g4{grid-template-columns:repeat(3,1fr)}
  .cardpad{padding:14px 14px 12px}
  .pop{position:fixed;left:12px;right:12px;top:auto;width:auto!important;max-height:78vh;overflow:auto}
  .hidesm{display:none}
  .tbl{min-width:540px}
}
@media (max-width:520px){
  .chead>div:last-child{justify-content:flex-start}
  .chead>div:last-child>div{flex-wrap:wrap!important;justify-content:flex-start!important}
  .gbtn{padding:4px 8px;font-size:10px}
  .kpis{grid-template-columns:1fr}
  .g4{grid-template-columns:repeat(2,1fr)}
  .g2{grid-template-columns:1fr}
  .chip{max-width:calc(100vw - 44px)}
  .hidexs{display:none}
}

/* ── tipografia: Poppins nos títulos, Inter nos dados ───────────────────── */
h1,h2,h3,.h3,.eyebrow,.kpit,.kpiv,.ph-t{font-family:Poppins,system-ui,system-ui,sans-serif!important}
.kpiv{font-variant-numeric:tabular-nums}
.kpit{letter-spacing:-.005em}

/* ── utilitários (antes repetidos como estilo inline em cada card) ──────── */
.cside{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:none}
.cside.g5{gap:5px}
.crow{display:flex;align-items:center;gap:6px}
.cgrp{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
[data-sel]:focus-visible,[data-sort]:focus-visible{outline:2px solid var(--pri);outline-offset:2px}

/* ── resumo fixo: em tela estreita o painel fica longo, os números somem ── */
#resumo{display:none}
@media (max-width:1180px){
  #resumo{display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:58;padding:8px 14px;
    background:var(--hdbg);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);overflow-x:auto;white-space:nowrap}
  #resumo::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--grad)}
}

/* ── impressão / PDF ────────────────────────────────────────────────────── */
#printHead,#printFoot{display:none}
@media print{
  @page{size:A3 landscape;margin:8mm}
  html,body{background:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .wrap{max-width:none;zoom:.74;padding-bottom:0}
  .noprint{display:none!important}
  header.hd,#filtros,#bannerProj{display:none!important}
  .card{box-shadow:none;break-inside:avoid;page-break-inside:avoid}
  .hd{background:#fff;border-bottom:1px solid var(--line)}
  .listscroll,.tblscroll{max-height:none!important;overflow:visible!important}
  .scrollx{overflow:visible!important}
  .tbl{min-width:0}
  #printHead{display:block;padding:0 0 10px;border-bottom:3px solid transparent;border-image:var(--grad) 1;margin-bottom:12px}
  #printFoot{display:block;margin-top:14px;padding-top:10px;position:relative}
  #printFoot::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--grad)}
  #tip,.shot,.pop{display:none!important}
  .kpis{grid-template-columns:repeat(6,minmax(0,1fr))!important}
  .row3{grid-template-columns:1.28fr 1fr 1fr!important}
  .row3>article:first-child{grid-column:auto!important}
  .row2{grid-template-columns:1.55fr 1fr!important}
  .row2b{grid-template-columns:1fr 1fr!important}
  .g2{grid-template-columns:1fr 1fr!important}
  .g4{grid-template-columns:repeat(4,1fr)!important}
  .hidesm,.hidexs{display:revert!important}
}

.demo-direct-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;background:#182863;color:#fff;font:600 13px system-ui}.demo-direct-nav a{color:#fff}.is-embedded .demo-direct-nav{display:none} @media print{.demo-direct-nav{display:none}}
