/* Pórtico · Painel executivo (TV da direção)
   Identidade: navy #06142E + cyan + azul elétrico + coral.
   Tokens únicos. Sem branco. Sem neon gamer. */

:root{
  --z-base:0; --z-sticky:20; --z-nav:40; --z-overlay:50;

  --background:#06142E;
  --bg-2:#071B3D;
  --bg-3:#082451;
  --foreground:#F5F9FF;
  --card:#0A2147;
  --card2:#0C2855;
  --muted:#0D3063;
  --muted-fg:#A8BAD5;
  --muted-fg2:#7188A9;
  --border:rgba(83,145,255,.25);
  --line:rgba(255,255,255,.08);
  --secondary:#0C2855;
  --primary:#159DFF;
  --primary-fg:#06142E;
  --c1:#00E7E7;
  --c1-bg:rgba(0,231,231,.14);
  --c2:#159DFF;
  --c2-bg:rgba(21,157,255,.14);
  --c3:#4A6FA0;
  --destructive:#FF5E8A;
  --destructive-bg:rgba(255,94,138,.14);
  --ok:#00F0A8;
  --ok-bg:rgba(0,240,168,.14);
  --radius:16px;
  --r:16px;
  --sh:0 8px 24px rgba(0,10,30,.35); --sh-sm:0 1px 2px rgba(0,10,30,.3);
  --elev:inset 0 1px 0 rgba(255,255,255,.06);
  --nav:15.5rem;
  --sidebar:oklch(0.2452 0.0305 256.8649);
  --sidebar-fg:oklch(0.9392 0.0101 238.5151);
  --sidebar-accent:oklch(0.3056 0.0334 255.7755);
  --sidebar-border:oklch(0.3053 0.0296 254.6806);
  --ease:cubic-bezier(.16,1,.3,1);
  --font:"Inter","Inter Tight","SF Pro Display",Arial,sans-serif;
  --font-num:"Inter Tight","Inter","SF Pro Display",Arial,sans-serif;
}

*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
.metrica,.metricas,.stat,.ranking,.rk,.chart,.aneis,.anel,.linha{min-width:0}
.stat__val,.rk__nome,.grande{overflow-wrap:anywhere}

html{color-scheme:dark}

body{
  min-height:100dvh;
  color:var(--foreground);
  background:
    radial-gradient(1200px 600px at 80% -10%, rgba(21,157,255,.08), transparent 55%),
    var(--background);
  font-family:var(--font);
  font-variant-numeric:tabular-nums;
  -webkit-font-smoothing:antialiased;
  letter-spacing:-.011em;
  line-height:1.45;
  overflow-x:hidden;
  padding-bottom:env(safe-area-inset-bottom);
}

.skip{
  position:absolute;left:-999px;top:0;z-index:var(--z-overlay);
  background:var(--primary);color:var(--primary-fg);padding:.6rem 1rem;border-radius:var(--radius);
}
.skip:focus{left:.75rem;top:.75rem}

.shell-nav{display:contents}
.marca{display:none}
.shell-nav__pe{display:none}

.abas{
  position:fixed;left:0;right:0;bottom:0;z-index:var(--z-nav);
  display:grid;grid-auto-flow:column;grid-auto-columns:1fr;
  background:var(--background);
  backdrop-filter:none;-webkit-backdrop-filter:none;
  border-top:1px solid var(--line);
  padding:.3rem .15rem calc(.3rem + env(safe-area-inset-bottom));
}
.aba{
  background:none;border:none;font:inherit;cursor:pointer;color:var(--muted-fg2);
  display:flex;flex-direction:column;align-items:center;gap:.18rem;
  padding:.4rem .08rem;border-radius:12px;
  transition:color .18s var(--ease),background .18s var(--ease),transform .13s var(--ease);
}
.aba:focus-visible{outline:2px solid var(--c1);outline-offset:2px}
.aba:active{transform:scale(.94)}
.aba__ic{display:grid;place-items:center;width:1.45rem;height:1.45rem;background:none;border-radius:0}
.aba__ic svg{width:1.45rem;height:1.45rem;display:block}
.aba__lb{font-size:.55rem;font-weight:500;letter-spacing:.01em;white-space:nowrap}
.aba:hover{color:var(--muted-fg)}
.aba--on{color:var(--c1)}

.topo{
  position:sticky;top:0;z-index:var(--z-sticky);
  display:grid;grid-template-columns:1fr auto;grid-template-areas:"marca dir" "sub sub";
  gap:.35rem 1rem;align-items:center;
  padding:calc(env(safe-area-inset-top) + .85rem) 1.2rem .85rem;
  background:rgba(6,20,46,.86);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid var(--border);
}
.topo__marca{grid-area:marca;display:flex;align-items:center;gap:.75rem;min-width:0}
.topo__logo{height:2.6rem;width:auto;flex:none;object-fit:contain}
.topo__logo--claro,.marca__logo--claro{display:none}
.topo__logo--escuro,.marca__logo--escuro{display:block}
.topo__titulo{font-size:1.15rem;font-weight:650;letter-spacing:-.025em;color:var(--foreground);text-wrap:balance}
.topo__sub{grid-area:sub;font-size:.82rem;color:var(--muted-fg);margin:0}
.topo__dir{grid-area:dir;display:flex;align-items:center;gap:.75rem}
.tema-btn{display:none}
.topo__status{display:flex;align-items:center;gap:.45rem;font-size:.7rem;color:var(--muted-fg2);white-space:nowrap}
.pulso{width:.45rem;height:.45rem;border-radius:50%;background:var(--ok);flex:none}
.pulso[data-estado="ok"]{box-shadow:0 0 0 3px var(--ok-bg)}
.pulso[data-estado="erro"]{background:var(--destructive);box-shadow:0 0 0 3px var(--destructive-bg)}
.pulso[data-estado="velho"]{background:var(--c2)}
@media (prefers-reduced-motion: no-preference){
  .pulso[data-estado="ok"]{animation:blink 2.6s var(--ease) infinite}
}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.4}}

.shell{min-width:0}
.app{
  max-width:80rem;margin:0 auto;
  padding:1.25rem 1.2rem calc(5.4rem + env(safe-area-inset-bottom));
  display:flex;flex-direction:column;gap:1rem;
}
.painel-aba{display:flex;flex-direction:column;gap:1rem}
.painel-aba.oculto{display:none}

.periodo{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}
.per{
  background:var(--card);border:1px solid var(--border);color:var(--muted-fg);
  font:inherit;font-size:.8rem;font-weight:600;padding:.42rem .9rem;border-radius:999px;
  cursor:pointer;white-space:nowrap;transition:background .18s,color .18s,border-color .18s,transform .13s var(--ease);
}
.per:hover{color:var(--foreground);border-color:rgba(83,145,255,.5)}
.per:active{transform:scale(.97)}
.per:focus-visible{outline:2px solid var(--c1);outline-offset:2px}
.per--on{background:var(--c1);border-color:var(--c1);color:var(--primary-fg)}
.periodo__sep{width:1px;height:1.25rem;background:var(--line);margin:0 .15rem}
.per-custom{display:flex;flex-wrap:nowrap;align-items:center;gap:.35rem;font-size:.78rem;color:var(--muted-fg2);min-width:0}
.per-custom input[type=date]{
  flex:0 1 8.4rem;min-width:7.2rem;max-width:9rem;height:2.05rem;
  background:var(--card);border:1px solid var(--border);
  color:var(--muted-fg);border-radius:999px;padding:.25rem .7rem;font:inherit;font-size:.72rem;
  color-scheme:dark;
}

.cardish{
  background:
    linear-gradient(180deg, rgba(255,255,255,.035), transparent 42%),
    var(--card);
  border:1px solid var(--border);
  border-radius:var(--r);
  box-shadow:var(--sh),var(--elev);
}

.metricas{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.metrica{
  container-type:inline-size;
  background:linear-gradient(180deg, rgba(255,255,255,.04), transparent 48%), var(--card);
  border:1px solid var(--border);border-radius:var(--r);
  box-shadow:var(--sh),var(--elev);padding:14px 14px 12px;
  display:flex;flex-direction:column;gap:.35rem;min-width:0;
}
.metrica__top{display:flex;align-items:flex-start;justify-content:space-between;gap:.6rem}
.metrica__rot{
  font-size:.68rem;font-weight:600;color:var(--muted-fg);
  letter-spacing:.08em;text-transform:uppercase;
}
.metrica__ic{
  width:2.2rem;height:2.2rem;flex:none;border-radius:10px;
  display:grid;place-items:center;background:var(--c2-bg);color:var(--c2);
}
.metrica__ic svg{width:1.15rem;height:1.15rem}
.metrica--spark{flex-direction:column;gap:.45rem}
.metrica__col{flex:1;min-width:0;display:flex;flex-direction:column;gap:.3rem}
.spark{width:100%;height:2.35rem;min-width:0}
.spark__svg{width:100%;height:100%;display:block}
.metrica__val{
  font-family:var(--font-num);
  font-feature-settings:"tnum" 1;
  font-size:clamp(1.05rem, 8.6cqi, 3.6rem);font-weight:700;
  letter-spacing:-.035em;line-height:1.08;color:var(--foreground);
  margin-top:.2rem;white-space:nowrap;
}
.metrica__val[data-positivo="sim"]{color:var(--ok)}
.metrica__val[data-positivo="nao"]{color:var(--destructive)}
.metrica__pe{font-size:.78rem;color:var(--muted-fg);margin-top:auto}
.metrica__pe b{color:var(--foreground);font-weight:600;font-family:var(--font-num)}

.cor-verde{color:var(--ok)!important}
.cor-rosa{color:var(--destructive)!important}
b.ruim,.ruim{color:var(--destructive)}

.aneis{display:grid;grid-template-columns:1fr;gap:12px}
.anel{
  background:linear-gradient(180deg, rgba(255,255,255,.035), transparent 48%), var(--card);
  border:1px solid var(--border);border-radius:var(--r);
  box-shadow:var(--sh),var(--elev);padding:16px 18px 18px;
  display:flex;flex-direction:column;gap:.9rem;
}
.anel__rot{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.68rem;font-weight:600;color:var(--muted-fg);letter-spacing:.08em;text-transform:uppercase}
.vivo{display:inline-flex;align-items:center;gap:.4rem;font-size:.64rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted-fg2);white-space:nowrap}
.vivo__dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--ok);flex:none;box-shadow:0 0 0 3px var(--ok-bg)}
.vivo b{color:var(--muted-fg);font-weight:650;font-variant-numeric:tabular-nums;letter-spacing:0}
@media (prefers-reduced-motion:no-preference){.vivo__dot{animation:blink 2.6s var(--ease) infinite}}
.anel__corpo{display:flex;flex-direction:column;align-items:center;gap:.85rem}
.ring{position:relative;width:9.5rem;height:9.5rem}
.ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.ring circle{fill:none;stroke-width:12;stroke-linecap:round}
.ring__tk{stroke:#082451}
.ring__vl{stroke:var(--c2);stroke-dasharray:326.73;stroke-dashoffset:326.73;transition:stroke-dashoffset 1s var(--ease)}
.ring[data-tone="verde"] .ring__vl{stroke:var(--ok)}
.ring[data-tone="rosa"] .ring__vl{stroke:var(--destructive)}
.ring[data-tone="ouro"] .ring__vl,.ring[data-tone="azul"] .ring__vl{stroke:var(--c1)}
.ring__c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}
.ring__pct{
  font-family:var(--font-num);
  font-size:1.9rem;font-weight:750;letter-spacing:-.04em;color:var(--foreground);
}
.ring__cap{margin-top:.3rem;font-size:.62rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-fg2)}
.ring-foot{
  display:flex;gap:1.6rem;width:100%;justify-content:center;
  padding-top:.85rem;border-top:1px solid var(--line);
}
.ring-foot>div{display:flex;flex-direction:column;gap:.12rem}
.ring-foot span{font-size:.62rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-fg2)}
.ring-foot b{
  font-family:var(--font-num);
  font-size:clamp(.68rem, .9vw, .88rem);font-weight:700;color:var(--foreground);white-space:nowrap;
}

.sec{
  background:linear-gradient(180deg, rgba(255,255,255,.03), transparent 40%), var(--card);
  border:1px solid var(--border);border-radius:var(--r);
  box-shadow:var(--sh),var(--elev);padding:16px 18px 18px;
}
.sec__head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}
.sec__head h2{font-size:.78rem;font-weight:650;letter-spacing:.08em;text-transform:uppercase;text-wrap:balance}
.sec__tag{font-size:.74rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-fg2)}
.sec__topo{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}
.rot-mini{font-size:.68rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-fg2)}

.statrow{display:grid;grid-template-columns:1fr;gap:0}
.stat{display:flex;flex-direction:column;gap:.3rem;padding:.9rem 0;border-top:1px solid var(--line)}
.statrow .stat:first-child{border-top:none;padding-top:0}
.stat__rot{font-size:.68rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-fg)}
.stat__val{
  font-family:var(--font-num);
  font-size:clamp(1.05rem, 2.4vw, 1.45rem);font-weight:700;letter-spacing:-.03em;line-height:1.15;color:var(--foreground);
  white-space:nowrap;
}
.statrow .stat{min-width:0}
/* Em 3 colunas o valor cheio (R$ 22.293.412,41) nao cabe no tamanho grande e
   encostava no vizinho. Escala com a largura da coluna em vez da tela inteira. */
.statrow .stat__val{font-size:clamp(.92rem,1.15vw,1.18rem)}
.stat__val[data-positivo="sim"]{color:var(--ok)}
.stat__val[data-positivo="nao"]{color:var(--destructive)}
.stat__pe{font-size:.75rem;color:var(--muted-fg2)}
.stat__pe b{color:var(--foreground);font-weight:600}

.dois{display:grid;grid-template-columns:1fr;gap:1.5rem}
.dois__a{display:flex;flex-direction:column;gap:.55rem}
.grande{
  font-family:var(--font-num);
  font-size:clamp(1.4rem, 4vw, 2.15rem);font-weight:750;letter-spacing:-.03em;color:var(--foreground);line-height:1.1;
  white-space:nowrap;
}
.linha-r{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem;font-size:.82rem;color:var(--muted-fg)}
.linha-r b{font-weight:650;font-family:var(--font-num)}
.linha-r em{font-style:normal;color:var(--muted-fg2)}
.linha-r em b{color:var(--destructive);margin-right:.25rem}

.ranking{display:flex;flex-direction:column;gap:.7rem}
.rk{display:grid;grid-template-columns:1fr auto;gap:.2rem .8rem;align-items:baseline}
.rk--av{grid-template-columns:auto 1fr auto;align-items:center}
.rk--av .rk__bar{grid-column:1 / -1}
.rk--av .av{align-self:center}
.rk__nome{font-size:.84rem;color:var(--foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}
.dois__b-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.15rem}
.av-stack{display:flex;align-items:center;padding-left:.35rem}
.av-stack .av{margin-left:-.35rem;border:2px solid var(--card)}
.av{
  width:1.65rem;height:1.65rem;border-radius:999px;display:grid;place-items:center;
  font-size:.58rem;font-weight:700;letter-spacing:-.02em;flex:none;
  color:#F5F9FF;background:#0D3063;
}
.av--mais{background:var(--muted);color:var(--c1);font-size:.55rem}
.rk__val{
  font-family:var(--font-num);
  font-size:.84rem;font-weight:650;color:var(--foreground);text-align:right;white-space:nowrap;
}
.rk__bar{grid-column:1/3;height:8px;border-radius:99px;background:#082451;overflow:hidden;margin-top:.2rem}
.rk__fill{height:100%;border-radius:99px;width:0;transition:width .85s var(--ease);background:var(--c2)}
.ranking--verde .rk__fill,.ranking--azul .rk__fill{background:var(--c1)}
.ranking .rk:nth-child(1) .rk__fill{background:var(--c1)}

.aging{margin:.4rem 0 .2rem}
.aging__barra{display:flex;height:.85rem;border-radius:99px;overflow:hidden;background:#082451}
.aging__seg{height:100%}
.aging__leg{display:flex;flex-wrap:wrap;gap:.4rem 1rem;margin-top:.7rem}
.aging__it{display:flex;align-items:center;gap:.35rem;font-size:.75rem;color:var(--muted-fg)}
.aging__pt{width:.55rem;height:.55rem;border-radius:2px;flex:none}
.aging__it b{color:var(--foreground);font-weight:650;font-family:var(--font-num)}

.legenda{display:flex;gap:1rem}
.leg{font-size:.83rem;color:var(--muted-fg);display:flex;align-items:center;gap:.4rem;font-weight:550}
.leg::before{content:"";width:.7rem;height:.7rem;border-radius:2px;background:var(--c1)}
.leg--desp::before{background:var(--c2)}
.resumo-lin{display:flex;flex-wrap:wrap;gap:.2rem 1rem;font-size:.88rem;color:var(--muted-fg);justify-content:flex-end}
.resumo-lin b{color:var(--foreground);font-weight:650;font-family:var(--font-num)}
.resumo-lin .pos{color:var(--ok)}

.chart--duplo{position:relative;display:block;height:auto;padding:0;border:none}
.chart-svg{width:100%;height:16rem;display:block}
.chart-svg .area-fat{fill:url(#grad-fat)}
.chart-svg .area-desp{fill:url(#grad-desp)}
.chart-svg .line-fat{fill:none;stroke:oklch(0.81 0.10 252);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.chart-svg .line-desp{fill:none;stroke:oklch(0.62 0.19 260);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.chart-svg .grid-l{stroke:rgba(255,255,255,.07);stroke-width:1}
.chart-svg .bar__lab{fill:var(--muted-fg2);font-size:13px;font-family:var(--font);text-transform:none}
.chart-svg .cbar--on .bar__lab{fill:var(--foreground);font-weight:600}
.chart-svg .cbar__hit{cursor:crosshair}
.chart-scroll{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;cursor:grab;scrollbar-width:thin;scrollbar-color:rgba(122,160,214,.35) transparent}
.chart-scroll.drag{cursor:grabbing}
.chart-scroll::-webkit-scrollbar{height:8px}
.chart-scroll::-webkit-scrollbar-thumb{background:rgba(122,160,214,.3);border-radius:99px}
.chart-scroll .chart-svg{height:15rem;width:auto}
.chart-vazio{height:9rem;display:grid;place-items:center;color:var(--muted-fg);font-size:.85rem}
.chart-tip{
  position:absolute;z-index:5;background:#0D3063;color:var(--foreground);
  border:1px solid var(--border);
  font-size:.82rem;padding:.45rem .7rem;border-radius:10px;pointer-events:none;white-space:nowrap;
}

.obras-lista{display:flex;flex-direction:column;gap:1rem}
.obra{display:flex;flex-direction:column;gap:.35rem}
.obra__lin{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}
.obra__nome{font-size:.9rem;font-weight:550;color:var(--foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.obra__fat{font-family:var(--font-num);font-size:1rem;font-weight:650;color:var(--foreground);white-space:nowrap}
.obra__bar{height:8px;border-radius:99px;background:#082451;overflow:hidden}
.obra__fill{height:100%;border-radius:99px;width:0;background:var(--c2);transition:width .85s var(--ease)}
.obra:nth-child(1) .obra__fill{background:var(--c1)}
.obra__sub{font-size:.78rem;color:var(--muted-fg)}
.obra__sub b{color:var(--foreground);font-weight:600;font-family:var(--font-num)}
.obra__sub .pos{color:var(--ok)}
.obra__sub .neg{color:var(--destructive)}
.obra__sub .sem-custo{color:var(--muted-fg2)}

.nota-dado{
  margin:0;padding:.95rem 1.1rem;border-radius:var(--r);
  background:var(--card);border:1px solid var(--border);
  font-size:.8rem;color:var(--muted-fg);line-height:1.5;
}
.nota-dado b{color:var(--foreground)}
.rodape{text-align:center;font-size:.72rem;color:var(--muted-fg2);margin:.2rem 0 0}
.vazio{color:var(--muted-fg2)!important;font-weight:500!important;font-size:.85em!important}
.obsoleto{
  padding:.85rem 1rem;border-radius:var(--r);
  border:1px solid var(--c2);background:var(--c2-bg);
  color:var(--foreground);font-size:.82rem;
}

.tabela-wrap{overflow-x:auto;border-radius:var(--r);border:1px solid var(--border);background:var(--card)}
.tabela{width:100%;border-collapse:collapse;font-size:.84rem}
.tabela th{
  text-align:left;font-size:.62rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-fg2);
  padding:.8rem 1rem;border-bottom:1px solid var(--border);white-space:nowrap;background:var(--card2);
}
.tabela td{
  padding:.75rem 1rem;border-bottom:1px solid var(--line);color:var(--muted-fg);white-space:nowrap;
  font-family:var(--font-num);font-size:.8rem;
}
.tabela td.td-forte{color:var(--foreground);font-weight:550;font-family:var(--font);font-size:.84rem}
.tabela tbody tr:last-child td{border-bottom:none}
.tabela tbody tr:hover td{background:rgba(13,48,99,.55)}

.grade2{display:grid;grid-template-columns:1fr;gap:12px}
.oculto{display:none}

.kpi__val,.card__val,.rk__val,.ring-foot b,.aging__it b,.resumo-lin b,.linha-r b,
.stat__pe b,.obra__sub b,.metrica__val,.stat__val,.ring__pct,.grande,.obra__fat{
  font-family:var(--font-num);font-feature-settings:"tnum" 1;
}

.carregando .metrica__val,.carregando .stat__val,.carregando .ring__pct,.carregando .grande{
  color:transparent!important;border-radius:6px;
  background:linear-gradient(90deg,#082451 25%,#0C2855 37%,#082451 63%);
  background-size:400% 100%;
}
@media (prefers-reduced-motion: no-preference){
  .carregando .metrica__val,.carregando .stat__val,.carregando .ring__pct,.carregando .grande{
    animation:shimmer 1.4s ease infinite;
  }
  .painel-aba:not(.oculto) > .metricas,
  .painel-aba:not(.oculto) > .aneis,
  .painel-aba:not(.oculto) > .periodo{animation:rise .5s var(--ease) both}
}
@keyframes shimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion: reduce){
  .painel-aba:not(.oculto) > .metricas,
  .painel-aba:not(.oculto) > .aneis,
  .painel-aba:not(.oculto) > .periodo{animation:none}
}

@media(min-width:64rem){
  body{display:grid;grid-template-columns:var(--nav) 1fr;align-items:stretch}
  .shell-nav{
    display:flex;flex-direction:column;gap:.35rem;
    position:sticky;top:0;height:100dvh;
    border-right:1px solid var(--line);
    background:var(--background);
    padding:1.1rem .7rem 1rem;
    z-index:var(--z-nav);
  }
  .marca{display:flex;align-items:center;justify-content:center;padding:.35rem .4rem 1.15rem}
  .marca__logo{height:4.6rem;width:auto;object-fit:contain}
  .shell-nav__pe{display:block;margin-top:auto;padding:.75rem .55rem 0;border-top:1px solid var(--line)}
  .abas{
    position:static;display:flex;flex-direction:column;grid-auto-flow:row;
    background:transparent;backdrop-filter:none;border:none;padding:0;box-shadow:none;gap:2px;
  }
  .aba{
    flex-direction:row;justify-content:flex-start;gap:.7rem;
    padding:.52rem .7rem;border-radius:.625rem;color:var(--muted-fg);
  }
  .aba__ic{
    width:1.15rem;height:1.15rem;border-radius:0;background:none;
    color:inherit;
  }
  .aba__ic svg{width:1.15rem;height:1.15rem;stroke-width:1.7}
  .aba__lb{font-size:.875rem;font-weight:500;letter-spacing:0;text-transform:none}
  .aba:hover{color:var(--foreground);background:rgba(13,48,99,.55)}
  .aba--on{color:var(--foreground);background:#0D3063}
  .aba--on .aba__ic{background:none;color:var(--c1)}
  .aba--on:hover{background:#0D3063;color:var(--foreground)}

  .topo{
    grid-template-columns:1fr auto;grid-template-areas:"marca dir" "sub dir";
    align-items:start;
    padding:1.15rem 2rem .35rem;background:transparent;backdrop-filter:none;border-bottom:none;
  }
  .topo__marca{grid-area:marca}
  .topo__logo{display:none}
  .topo__titulo{font-size:1.55rem;letter-spacing:-.03em}
  .topo__sub{display:block;grid-area:sub;margin:0 0 .4rem}
  .topo__dir .topo__status{display:none}

  .app{max-width:none;padding:0 32px 32px;gap:16px}
  .periodo{gap:.4rem}
  .per-custom{margin-left:auto}
  .metricas{grid-template-columns:1fr 1fr;gap:16px}
  .metricas:has(.metrica:nth-child(3):last-child){grid-template-columns:repeat(3,1fr)}
  .metricas:has(.metrica:nth-child(2):last-child){grid-template-columns:1fr 1fr}
  .aneis{grid-template-columns:repeat(3,1fr);gap:16px}
  .statrow{grid-template-columns:repeat(3,1fr);gap:0}
  .statrow .stat{border-top:none;border-left:1px solid var(--line);padding:.15rem 0 .15rem 1.05rem}
  .statrow .stat:first-child{border-left:none;padding-left:0}
  .dois{grid-template-columns:1.05fr 1fr;gap:2.4rem}
  .grade2{grid-template-columns:1fr 1fr;gap:16px}
  .grade2 > .sec.abrange{grid-column:1 / -1}
  .metrica{min-height:0;padding:22px 24px 18px}
  .spark{height:3.1rem}
}

@media(min-width:90rem){
  .grande{font-size:clamp(1.8rem, 2.4vw, 2.6rem)}
  .ring{width:10.5rem;height:10.5rem}
  .chart-svg{height:16rem}
  .metrica{padding:24px 28px 20px}
  .spark{height:3.4rem}
}

@media(max-width:39.99rem){
  .periodo__sep,.per-custom{display:none}
  .periodo{gap:.3rem}
  .per{padding:.4rem .72rem;font-size:.75rem}
  .metricas{gap:8px}
  .metrica{padding:12px 12px 10px;border-radius:14px}
  .metrica__rot{font-size:.58rem;letter-spacing:.07em}
  .metrica__ic{width:1.85rem;height:1.85rem}
  .metrica__ic svg{width:1rem;height:1rem}
  .metrica__pe{font-size:.68rem}
  .spark{height:1.85rem}
  .topo{padding:calc(env(safe-area-inset-top) + .7rem) 1rem .7rem;gap:.25rem .6rem}
  .topo__logo{height:2.15rem}
  .topo__titulo{font-size:1.05rem}
  .topo__sub{font-size:.75rem}
  .aba{min-height:3.1rem;padding:.42rem .06rem}
  .aba__ic{width:1.4rem;height:1.4rem;background:none}
  .aba__lb{font-size:.48rem;letter-spacing:.03em}
  .app{padding:1rem 12px calc(5.6rem + env(safe-area-inset-bottom));gap:12px}
  .aneis{gap:8px}
  .anel{padding:14px 14px 16px}
  .sec{padding:14px}
}
@media(min-width:40rem) and (max-width:63.99rem){
  .metricas{grid-template-columns:1fr 1fr}
  .aneis{grid-template-columns:1fr}
}
@media(min-width:46rem) and (max-width:63.99rem){
  .statrow{grid-template-columns:repeat(3,1fr)}
  .statrow .stat{border-top:none;border-left:1px solid var(--line);padding:.2rem 0 .2rem 1.05rem}
  .statrow .stat:first-child{border-left:none;padding-left:0}
  .dois{grid-template-columns:1.05fr 1fr;gap:2rem}
}

@media (prefers-reduced-transparency: reduce){
  .abas,.topo{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--background)}
}

/* ============ DRILL-DOWN: itens clicaveis + gaveta ============ */
.rk--click,[data-drill]{cursor:pointer}
.rk--click{border-radius:8px;transition:background .15s;padding:.15rem .4rem;margin:0 -.4rem}
.rk--click:hover{background:var(--secondary)}
.obra[data-drill]{border-radius:10px;padding:.5rem;margin:0 -.5rem;transition:background .15s}
.obra[data-drill]:hover{background:var(--secondary)}

.drawer{position:fixed;inset:0;z-index:60;visibility:hidden;pointer-events:none}
.drawer.aberto{visibility:visible;pointer-events:auto}
.drawer__bg{position:absolute;inset:0;background:oklch(0.16 0 0 / .5);opacity:0;transition:opacity .25s;backdrop-filter:blur(2px)}
.drawer.aberto .drawer__bg{opacity:1}
.drawer__pane{position:absolute;top:0;right:0;height:100%;width:min(560px,94vw);background:var(--background);
  border-left:1px solid var(--border);box-shadow:-20px 0 60px -20px oklch(0 0 0 / .35);
  display:flex;flex-direction:column;transform:translateX(100%);transition:transform .28s cubic-bezier(.22,1,.36,1)}
.drawer.aberto .drawer__pane{transform:none}
.drawer__head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.3rem 1.4rem 1rem;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--background);z-index:2}
.drawer__eyebrow{font-size:.62rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--c2)}
.drawer__head h3{font-size:1.2rem;font-weight:700;letter-spacing:-.02em;margin-top:.15rem;line-height:1.2}
.drawer__x{flex:none;width:2rem;height:2rem;border-radius:999px;border:1px solid var(--border);background:var(--card);color:var(--muted-fg);font-size:1.2rem;cursor:pointer;line-height:1;display:grid;place-items:center}
.drawer__x:hover{color:var(--foreground)}
.drawer__body{flex:1;overflow-y:auto;padding:1.3rem 1.4rem 2.5rem;display:flex;flex-direction:column;gap:1.3rem}
.carreg{color:var(--muted-fg2);font-size:.85rem;padding:1rem 0}
.det-resumo{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.sm{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:.85rem 1rem;display:flex;flex-direction:column;gap:.2rem}
.sm span{font-size:.64rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-fg2)}
.sm b{font-size:1.2rem;font-weight:700;font-family:var(--font-num);letter-spacing:-.02em}
.sm em{font-style:normal;font-size:.72rem;color:var(--muted-fg2)}
.det-campos{display:grid;grid-template-columns:1fr;gap:0;border:1px solid var(--border);border-radius:var(--r);overflow:hidden;background:var(--card)}
.det-campo{display:flex;justify-content:space-between;gap:1rem;padding:.75rem 1rem;border-bottom:1px solid var(--line)}
.det-campo:last-child{border-bottom:none}
.det-campo span{font-size:.8rem;color:var(--muted-fg2)} .det-campo b{font-size:.85rem;font-weight:600;text-align:right;word-break:break-word}
.det-h{font-size:.9rem;font-weight:700;margin-top:.2rem}
.det-nota{font-size:.76rem;color:var(--muted-fg2)}
.busca{margin-bottom:1rem}
.busca input{width:100%;background:var(--card);border:1px solid var(--border);color:var(--foreground);border-radius:999px;padding:.7rem 1.1rem;font:inherit;font-size:.9rem;box-shadow:var(--sh-sm)}
.busca input:focus{outline:none;border-color:var(--c2)}
.btn-mais{margin-top:1rem;background:var(--card);border:1px solid var(--border);color:var(--foreground);font:inherit;font-weight:600;font-size:.82rem;padding:.7rem 1.2rem;border-radius:999px;cursor:pointer;box-shadow:var(--sh-sm)}
.btn-mais:hover{border-color:var(--muted-fg2)}
.cart-linha{display:grid;grid-template-columns:1fr auto;gap:.2rem .8rem;align-items:center;padding:.85rem .6rem;border-bottom:1px solid var(--line);cursor:pointer;border-radius:8px;transition:background .15s}
.cart-linha:hover{background:var(--secondary)}
.cart-linha__nome{font-weight:600;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cart-linha__doc{font-family:var(--font-num);font-size:.8rem;color:var(--muted-fg);text-align:right;white-space:nowrap}
.cart-linha__sub{grid-column:1/3;font-size:.75rem;color:var(--muted-fg2)}

/* corrige gaveta cortando cards (flex-column nao pode comprimir os filhos) */
.drawer__body>*{flex:0 0 auto;min-width:0}
.det-campos{overflow:visible}

/* ===================== ESCONDER VALORES (botao de olho) ===================== */
.olho-btn{
  display:grid;place-items:center;position:relative;
  width:2.35rem;height:2.35rem;flex:none;
  background:var(--card2);border:1px solid var(--border);border-radius:11px;
  color:var(--muted-fg);cursor:pointer;padding:0;
  transition:color .16s var(--ease),border-color .16s var(--ease),background .16s var(--ease);
}
.olho-btn svg{width:1.15rem;height:1.15rem}
.olho-btn:hover{color:var(--foreground);background:var(--muted)}
.olho-btn:focus-visible{outline:2px solid var(--c1);outline-offset:2px}
.olho-btn:active{transform:scale(.94)}
.olho-btn .olho-btn__ver{display:block}
.olho-btn .olho-btn__esconder{display:none}
html.privado .olho-btn .olho-btn__ver{display:none}
html.privado .olho-btn .olho-btn__esconder{display:block}
html.privado .olho-btn{color:var(--c1);border-color:var(--c1)}

/* Todo elemento que carrega numero entra nesta lista. Borrado o bastante
   para nao dar pra ler nem de perto, mas mantendo o desenho da tela. */
html.privado .metrica__val,
html.privado .metrica__pe b,
html.privado .stat__val,
html.privado .grande,
html.privado .rk__val,
html.privado .obra__fat,
html.privado .obra__sub b,
html.privado .aging__it b,
html.privado .linha-r b,
html.privado .linha-r em b,
html.privado .resumo-lin b,
html.privado .ring__pct,
html.privado .ring-foot b,
html.privado .cart-linha__doc,
html.privado .cifra,
html.privado [data-brl],
html.privado [data-curto],
html.privado [data-pct],
html.privado [data-pct1],
html.privado [data-obras]{
  filter:blur(.42em);
  user-select:none;
  -webkit-user-select:none;
  pointer-events:none;
  transition:filter .16s var(--ease);
}
/* barras e graficos tambem entregam grandeza: achatamos a leitura */
html.privado .rk__fill,
html.privado .aging__barra,
html.privado .aging__seg,
html.privado .chart,
html.privado .spark,
html.privado .obra__fill,
html.privado .ring__vl,
html.privado .av-stack{filter:blur(.3rem);opacity:.55;pointer-events:none}
html.privado .drawer__body{filter:blur(.42em);user-select:none;pointer-events:none}
@media (prefers-reduced-motion:reduce){
  html.privado .metrica__val,html.privado .stat__val,html.privado .cifra{transition:none}
}

/* ===================== ABA RELATORIOS ===================== */
.rel-capa{
  background:var(--card);border:1px solid var(--border);border-radius:var(--r);
  padding:1.5rem 1.4rem;box-shadow:var(--sh);
}
.rel-capa__eyebrow{
  display:block;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--c1);margin-bottom:.7rem;font-weight:600;
}
.rel-capa h2{
  font-family:var(--font-num);font-size:clamp(1.35rem,3.4vw,1.9rem);font-weight:750;
  letter-spacing:-.03em;line-height:1.1;margin:0 0 .6rem;text-wrap:balance;
}
.rel-capa p{color:var(--muted-fg);font-size:.92rem;line-height:1.6;margin:0 0 .85rem;max-width:64ch}
.rel-capa__pe{font-size:.7rem;color:var(--muted-fg2);letter-spacing:.02em}

.rel-indice{
  display:flex;flex-wrap:wrap;gap:.4rem;
  padding:.9rem 0 .2rem;
}
.rel-indice a{
  display:inline-flex;align-items:baseline;gap:.42rem;
  padding:.4rem .72rem;border-radius:10px;
  background:var(--card2);border:1px solid var(--line);
  color:var(--muted-fg);text-decoration:none;font-size:.76rem;font-weight:500;
  transition:color .16s var(--ease),border-color .16s var(--ease),background .16s var(--ease);
}
.rel-indice a i{font-style:normal;font-size:.62rem;color:var(--c1);font-weight:700;letter-spacing:.04em}
.rel-indice a:hover,.rel-indice a:focus-visible{color:var(--foreground);border-color:var(--border);background:var(--muted)}

.rel-corpo{display:flex;flex-direction:column;gap:1rem;margin-top:.9rem}

.rel-cap{padding:1.4rem 0 .1rem;scroll-margin-top:5.5rem}
.rel-cap:first-child{padding-top:.2rem}
.rel-cap__num{
  display:block;font-family:var(--font-num);font-size:.66rem;letter-spacing:.18em;
  color:var(--c1);font-weight:700;margin-bottom:.45rem;
}
.rel-cap__tit{
  font-family:var(--font-num);font-size:1.32rem;font-weight:700;letter-spacing:-.026em;
  margin:0 0 .45rem;line-height:1.15;text-wrap:balance;
}
.rel-cap__res{color:var(--muted-fg);font-size:.9rem;line-height:1.6;margin:0;max-width:70ch}

.rel-texto{
  color:var(--muted-fg);font-size:.9rem;line-height:1.68;margin:0;max-width:74ch;
  padding:0 .1rem;
}
.rel-texto b{color:var(--foreground);font-weight:600}
.rel-texto i{color:var(--muted-fg);font-style:italic}

.rel-fluxo{
  display:flex;flex-wrap:wrap;gap:0;
  background:var(--card);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;
}
.rel-fluxo__p{
  flex:1 1 10.5rem;padding:.95rem 1.05rem;
  border-right:1px solid var(--line);display:flex;flex-direction:column;gap:.28rem;
}
.rel-fluxo__p:last-child{border-right:none}
.rel-fluxo__p--fim{background:var(--card2)}
.rel-fluxo__p i{font-style:normal;font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:var(--c1);font-weight:600}
.rel-fluxo__p b{font-family:var(--font-num);font-size:.95rem;font-weight:650;letter-spacing:-.015em}
.rel-fluxo__p span{font-size:.74rem;line-height:1.5;color:var(--muted-fg2)}

.rel-ficha{
  background:var(--card);border:1px solid var(--border);border-radius:var(--r);
  box-shadow:var(--sh);overflow:hidden;
}
.rel-ficha--alerta{border-color:var(--destructive)}
.rel-ficha__cab{
  display:flex;flex-wrap:wrap;gap:.8rem;align-items:baseline;justify-content:space-between;
  padding:1rem 1.2rem;border-bottom:1px solid var(--line);background:var(--card2);
}
.rel-ficha__cab h3{font-family:var(--font-num);font-size:1rem;font-weight:650;letter-spacing:-.018em;margin:0}
.rel-ficha__val{
  font-family:var(--font-num);font-size:1.28rem;font-weight:750;letter-spacing:-.03em;
  text-align:right;white-space:nowrap;
}
.rel-ficha__val em{
  display:block;font-style:normal;font-size:.62rem;font-weight:500;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted-fg2);margin-top:.2rem;
}
.rel-ficha__corpo{padding:1.05rem 1.2rem 1.2rem;display:flex;flex-direction:column;gap:.9rem}
.rel-ficha__def{margin:0;font-size:.88rem;line-height:1.6;color:var(--muted-fg)}

.rel-regra{
  margin:0;font-family:var(--font-num);font-size:.76rem;line-height:1.75;
  background:var(--bg-2);border:1px solid var(--line);border-left:3px solid var(--c1);
  border-radius:0 10px 10px 0;padding:.8rem 1rem;
  overflow-x:auto;white-space:pre;color:var(--muted-fg);
  font-variant-numeric:tabular-nums;
  -webkit-overflow-scrolling:touch;
}

.rel-notas{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.55rem}
.rel-notas li{
  position:relative;padding-left:1.05rem;font-size:.86rem;line-height:1.6;
  color:var(--muted-fg);max-width:74ch;
}
.rel-notas li::before{
  content:"";position:absolute;left:.15rem;top:.62em;
  width:.32rem;height:.32rem;border-radius:50%;background:var(--muted-fg2);
}
.rel-notas li b{color:var(--foreground);font-weight:600}
.rel-notas li i{font-style:italic}
.rel-notas--alerta{color:var(--foreground)}
.rel-notas--alerta::before{background:var(--destructive)}

.rel-tabela{display:flex;flex-direction:column;gap:.5rem}
.rel-tabela__cap{
  font-size:.64rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--muted-fg2);font-weight:600;padding-left:.15rem;
}
.tabela--rel{font-size:.82rem}
.tabela--rel .td-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tabela--rel tfoot td{
  font-weight:650;color:var(--foreground);
  background:var(--card2);border-top:1px solid var(--border);
}
.tabela--rel .cifra{font-family:var(--font-num);font-weight:600;color:var(--foreground)}
.tabela--rel .cifra--neg{color:var(--destructive)}

.rel-confronto{display:flex;flex-direction:column;gap:.5rem}
.rel-confronto__gr{
  display:flex;flex-wrap:wrap;gap:0;
  background:var(--card);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;
}
.rel-confronto__it{
  flex:1 1 9rem;padding:.85rem 1.05rem;border-right:1px solid var(--line);
  display:flex;flex-direction:column;gap:.3rem;
}
.rel-confronto__it:last-child{border-right:none}
.rel-confronto__it span{font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-fg2)}
.rel-confronto__it b{
  font-family:var(--font-num);font-size:1.15rem;font-weight:750;letter-spacing:-.028em;
  font-variant-numeric:tabular-nums;
}

.rel-alerta{
  background:var(--card);border:1px solid var(--border);border-radius:var(--r);
  box-shadow:var(--sh);padding:1.05rem 1.2rem;
  display:flex;flex-direction:column;gap:.65rem;
  border-left:4px solid var(--muted-fg2);
}
.rel-alerta[data-nivel="critico"]{border-left-color:var(--destructive)}
.rel-alerta[data-nivel="atencao"]{border-left-color:var(--c2)}
.rel-alerta[data-nivel="nota"]{border-left-color:var(--c3)}
.rel-alerta__top{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}
.rel-alerta__top h3{font-family:var(--font-num);font-size:.97rem;font-weight:650;letter-spacing:-.018em;margin:0}
.rel-alerta p{margin:0;font-size:.87rem;line-height:1.62;color:var(--muted-fg);max-width:76ch}
.rel-alerta p b{color:var(--foreground);font-weight:600}
.rel-chip{
  font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;
  padding:.24rem .5rem;border-radius:6px;white-space:nowrap;
}
.rel-chip[data-nivel="critico"]{background:var(--destructive-bg);color:var(--destructive)}
.rel-chip[data-nivel="atencao"]{background:var(--c2-bg);color:var(--c2)}
.rel-chip[data-nivel="nota"]{background:var(--muted);color:var(--muted-fg)}
.rel-alerta__acao{
  background:var(--bg-2);border:1px solid var(--line);border-radius:10px;
  padding:.65rem .85rem;font-size:.82rem;line-height:1.55;color:var(--muted-fg);
}
.rel-alerta__acao b{
  display:block;font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted-fg2);margin-bottom:.25rem;font-weight:600;
}

.rel-nota{
  background:var(--card);border:1px solid var(--border);border-left:3px solid var(--c1);
  border-radius:0 var(--r) var(--r) 0;padding:.95rem 1.15rem;
}
.rel-nota h4{font-family:var(--font-num);font-size:.85rem;font-weight:650;color:var(--c1);margin:0 0 .35rem;letter-spacing:-.01em}
.rel-nota p{margin:0;font-size:.85rem;line-height:1.6;color:var(--muted-fg);max-width:74ch}
.rel-nota p b{color:var(--foreground);font-weight:600}

@media(max-width:39.99rem){
  .rel-capa{padding:1.15rem 1rem}
  .rel-ficha__cab{padding:.85rem .95rem}
  .rel-ficha__corpo{padding:.9rem .95rem 1rem}
  .rel-ficha__val{font-size:1.1rem}
  .rel-regra{font-size:.7rem;padding:.7rem .8rem}
  .rel-alerta{padding:.9rem 1rem}
  .rel-cap__tit{font-size:1.15rem}
  .rel-fluxo__p{flex:1 1 100%;border-right:none;border-bottom:1px solid var(--line)}
  .rel-fluxo__p:last-child{border-bottom:none}
  .rel-confronto__it{flex:1 1 100%;border-right:none;border-bottom:1px solid var(--line)}
  .rel-confronto__it:last-child{border-bottom:none}
  .aba__lb{font-size:.45rem}
}

/* ===================== SUB-ABAS DO RELATORIO ===================== */
.sub-abas{
  display:flex;gap:.35rem;flex-wrap:wrap;
  border-bottom:1px solid var(--border);
  padding-bottom:.55rem;margin-bottom:.2rem;
}
.sub-aba{
  display:inline-flex;align-items:center;gap:.45rem;
  background:none;border:1px solid transparent;border-radius:10px;
  padding:.45rem .85rem;font:inherit;font-size:.85rem;font-weight:550;
  color:var(--muted-fg2);cursor:pointer;
  transition:color .16s var(--ease),background .16s var(--ease),border-color .16s var(--ease);
}
.sub-aba:hover{color:var(--foreground);background:var(--card2)}
.sub-aba:focus-visible{outline:2px solid var(--c1);outline-offset:2px}
.sub-aba--on{color:var(--background);background:var(--c1);border-color:var(--c1)}
.sub-aba__badge{
  display:inline-grid;place-items:center;min-width:1.25rem;height:1.25rem;padding:0 .35rem;
  border-radius:99px;background:var(--destructive);color:#fff;
  font-size:.66rem;font-weight:700;font-variant-numeric:tabular-nums;
}
.sub-aba--on .sub-aba__badge{background:var(--background);color:var(--c1)}

.rel-capa--erros{border-left:3px solid var(--destructive)}
.rel-nota--alerta{border-left-color:var(--destructive)}
.rel-nota--alerta h4{color:var(--destructive)}

/* faixa de resumo dos achados */
.erro-resumo{
  display:flex;flex-wrap:wrap;gap:0;
  background:var(--card);border:1px solid var(--border);border-radius:var(--r);
  overflow:hidden;margin-top:.9rem;
}
.erro-resumo>div{
  flex:1 1 8.5rem;padding:.85rem 1.05rem;border-right:1px solid var(--line);
  display:flex;flex-direction:column;gap:.3rem;min-width:0;
}
.erro-resumo>div:last-child{border-right:none}
.erro-resumo span{font-size:.6rem;letter-spacing:.11em;text-transform:uppercase;color:var(--muted-fg2)}
.erro-resumo b{
  font-family:var(--font-num);font-size:1.3rem;font-weight:750;letter-spacing:-.03em;
  font-variant-numeric:tabular-nums;
}

/* cartao de achado */
.erro{
  background:var(--card);border:1px solid var(--border);border-radius:var(--r);
  box-shadow:var(--sh);overflow:hidden;border-left:4px solid var(--muted-fg2);
}
.erro[data-nivel="critico"]{border-left-color:var(--destructive)}
.erro[data-nivel="alto"]{border-left-color:var(--c2)}
.erro[data-nivel="medio"]{border-left-color:var(--c1)}
.erro[data-nivel="baixo"]{border-left-color:var(--c3)}
.erro__cab{
  display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-start;justify-content:space-between;
  padding:1rem 1.2rem;border-bottom:1px solid var(--line);background:var(--card2);
}
.erro__ident{min-width:0;flex:1 1 18rem}
.erro__chips{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin-bottom:.5rem}
.erro__cat{
  font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;font-weight:600;
  color:var(--muted-fg);background:var(--muted);padding:.24rem .5rem;border-radius:6px;
}
.erro__cat--api{background:var(--c1-bg);color:var(--c1)}
.erro__escopo{font-size:.68rem;color:var(--muted-fg2)}
.erro__cab h3{font-family:var(--font-num);font-size:1.02rem;font-weight:650;letter-spacing:-.018em;margin:0;text-wrap:balance}
.erro__num{
  display:flex;flex-direction:column;align-items:flex-end;gap:.1rem;
  text-align:right;white-space:nowrap;flex:none;
}
.erro__num b{font-family:var(--font-num);font-size:1.4rem;font-weight:750;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.erro__num span{font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-fg2)}
.erro__num em{font-style:normal;font-size:.82rem;font-weight:600;color:var(--destructive);margin-top:.2rem}

.erro__corpo{padding:1.05rem 1.2rem 1.15rem;display:flex;flex-direction:column;gap:.85rem}
.erro__linha{display:grid;grid-template-columns:9.5rem minmax(0,1fr);gap:1rem;align-items:baseline}
.erro__linha>b{
  font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-fg2);font-weight:600;
}
.erro__linha p{margin:0;font-size:.87rem;line-height:1.6;color:var(--muted-fg);max-width:72ch}
.erro__linha p b{color:var(--foreground);font-weight:600}
.erro__linha--acao p{color:var(--foreground)}
.erro__linha--acao{
  background:var(--bg-2);border:1px solid var(--line);border-radius:10px;
  padding:.7rem .85rem;grid-template-columns:9.5rem minmax(0,1fr);
}

.erro__reg{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--bg-2)}
.erro__reg summary{
  cursor:pointer;padding:.6rem .9rem;font-size:.8rem;font-weight:600;color:var(--c1);
  list-style:none;display:flex;align-items:center;gap:.4rem;
}
.erro__reg summary::-webkit-details-marker{display:none}
.erro__reg summary::before{content:"▸";font-size:.7rem;transition:transform .16s var(--ease)}
.erro__reg[open] summary::before{transform:rotate(90deg)}
.erro__reg summary span{color:var(--muted-fg2);font-weight:400}
.erro__reg summary:hover{color:var(--foreground)}
.erro__reg summary:focus-visible{outline:2px solid var(--c1);outline-offset:-2px}
.erro__reg .tabela-wrap{border-top:1px solid var(--line)}
.erro__reg .tabela--rel{font-size:.78rem}

@media(max-width:47.99rem){
  .erro__linha,.erro__linha--acao{grid-template-columns:1fr;gap:.25rem}
  .erro__cab{padding:.85rem .95rem}
  .erro__corpo{padding:.9rem .95rem 1rem}
  .erro__num{align-items:flex-start;text-align:left}
  .erro-resumo>div{flex:1 1 45%;border-bottom:1px solid var(--line)}
}

/* "Todo o periodo": afastado dos demais por ser uma varredura da base inteira */
.per--tudo{margin-left:.45rem}

/* ===================== IDENTIFICACAO DO USUARIO ===================== */
/* A tela fica escondida ate a sessao ser confirmada: sem isso apareceria
   um lampejo do painel com dados antes do redirecionamento para o login. */
html:not(.com-sessao) .shell,
html:not(.com-sessao) .abas{visibility:hidden}

.usuario{position:relative;flex:none}
.usuario__bt{
  display:grid;place-items:center;width:2.35rem;height:2.35rem;padding:0;
  background:var(--card2);border:1px solid var(--border);border-radius:50%;
  color:var(--foreground);cursor:pointer;font:inherit;
  transition:border-color .16s var(--ease),background .16s var(--ease);
}
.usuario__bt:hover{background:var(--muted);border-color:var(--c1)}
.usuario__bt:focus-visible{outline:2px solid var(--c1);outline-offset:2px}
.usuario__ini{font-family:var(--font-num);font-size:.78rem;font-weight:700;letter-spacing:.02em}
.usuario__menu{
  position:absolute;right:0;top:calc(100% + .5rem);z-index:var(--z-overlay);
  min-width:13.5rem;background:var(--card);border:1px solid var(--border);
  border-radius:14px;box-shadow:var(--sh);overflow:hidden;
}
.usuario__id{padding:.85rem 1rem;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:.15rem}
.usuario__id b{font-family:var(--font-num);font-size:.9rem;font-weight:650;letter-spacing:-.015em}
.usuario__id span{font-size:.75rem;color:var(--muted-fg2);overflow-wrap:anywhere}
.usuario__papel{
  align-self:flex-start;margin-top:.35rem;font-size:.58rem;letter-spacing:.12em;
  text-transform:uppercase;font-weight:700;padding:.2rem .45rem;border-radius:6px;
  background:var(--c1-bg);color:var(--c1);
}
.usuario__item{
  display:block;width:100%;text-align:left;font:inherit;font-size:.86rem;
  padding:.65rem 1rem;background:none;border:0;color:var(--muted-fg);
  cursor:pointer;text-decoration:none;
}
.usuario__item:hover{background:var(--card2);color:var(--foreground)}
.usuario__item:focus-visible{outline:2px solid var(--c1);outline-offset:-2px}
.usuario__item--sair{color:var(--destructive);border-top:1px solid var(--line)}

/* Aba escondida por permissao nao pode ocupar coluna na barra do celular. */
.aba[hidden]{display:none!important}

/* ===================== GERAR PDF (aba Relatorios) ===================== */
.pdf-form{
  display:flex;flex-direction:column;gap:1rem;
  background:var(--card);border:1px solid var(--border);border-radius:var(--r);
  box-shadow:var(--sh);padding:1.15rem 1.25rem 1.3rem;
}
.pdf-form h2{
  font-family:var(--font-num);font-size:1.15rem;font-weight:700;
  letter-spacing:-.025em;margin:0;
}
.pdf-form p.lead{
  margin:0;color:var(--muted-fg);font-size:.88rem;line-height:1.55;max-width:62ch;
}
.pdf-bloco{display:flex;flex-direction:column;gap:.55rem}
.pdf-bloco > span{
  font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted-fg2);font-weight:700;
}
.pdf-datas{
  display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;
}
.pdf-datas input[type=date]{
  height:2.15rem;min-width:9.2rem;
  background:var(--card2);border:1px solid var(--border);color:var(--foreground);
  border-radius:999px;padding:.25rem .85rem;font:inherit;font-size:.8rem;
  color-scheme:dark;
}
.pdf-datas input[type=date]:focus-visible{outline:2px solid var(--c1);outline-offset:2px}
.pdf-hint{font-size:.75rem;color:var(--muted-fg2);margin:0}
.pdf-acoes-linha{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}
.pdf-link{
  background:none;border:0;color:var(--c1);font:inherit;font-size:.8rem;font-weight:600;
  cursor:pointer;padding:.2rem .1rem;
}
.pdf-link:hover{color:var(--foreground)}
.pdf-link:focus-visible{outline:2px solid var(--c1);outline-offset:2px}
.pdf-grade{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(14.5rem,1fr));gap:.55rem;
}
.pdf-opcao{
  display:flex;gap:.7rem;align-items:flex-start;
  padding:.8rem .9rem;background:var(--card2);border:1px solid var(--border);
  border-radius:14px;cursor:pointer;transition:border-color .16s var(--ease),background .16s var(--ease);
}
.pdf-opcao:hover{border-color:rgba(83,145,255,.55)}
.pdf-opcao:has(input:checked){
  border-color:var(--c1);background:var(--c1-bg);
}
.pdf-opcao input{margin-top:.2rem;accent-color:var(--c1);flex:none}
.pdf-opcao b{display:block;font-size:.88rem;font-weight:650;letter-spacing:-.015em}
.pdf-opcao em{display:block;font-style:normal;font-size:.72rem;color:var(--muted-fg2);margin-top:.15rem;line-height:1.35}
.pdf-gerar{
  align-self:flex-start;border:0;cursor:pointer;font:inherit;font-weight:700;font-size:.92rem;
  background:var(--c1);color:var(--primary-fg);padding:.7rem 1.25rem;border-radius:999px;
  box-shadow:var(--sh-sm);
}
.pdf-gerar:hover{filter:brightness(1.08)}
.pdf-gerar:disabled{opacity:.65;cursor:wait}
.pdf-gerar:focus-visible{outline:2px solid var(--c1);outline-offset:3px}
.pdf-aviso{color:var(--destructive);font-size:.82rem;margin:0;min-height:1.1em}
.pdf-barra-print{
  display:flex;flex-wrap:wrap;gap:.55rem;align-items:center;justify-content:space-between;
  padding:.7rem .9rem;background:var(--c1-bg);border:1px solid rgba(0,231,231,.35);
  border-radius:12px;
}
.pdf-barra-print p{margin:0;font-size:.8rem;color:var(--muted-fg);max-width:52ch;line-height:1.45}
.pdf-imprimir{
  border:0;cursor:pointer;font:inherit;font-weight:700;font-size:.85rem;
  background:var(--c2);color:#fff;padding:.6rem 1.05rem;border-radius:999px;
}

/* Folha A4: relatório de diretoria (compacto, sem capa vazia) */
.pdf-folha{
  background:#fff;color:#1a2740;
  border-radius:4px;padding:1.15rem 1.2rem 1.4rem;
  box-shadow:0 12px 40px rgba(0,10,30,.45);
  color-scheme:light;
  -webkit-print-color-adjust:exact;print-color-adjust:exact;
}
.pdf-folha .carreg,.pdf-folha .nota-dado{color:#1a2740}
.pdf-faixa{
  height:5px;margin:0 -1.2rem 0.85rem;border-radius:4px 4px 0 0;
  background:linear-gradient(90deg,#06142E 0 46%,#159DFF 46% 78%,#00E7E7 78% 100%);
}
.pdf-topo{
  display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;
  padding-bottom:.7rem;margin-bottom:.7rem;
  border-bottom:1.5px solid #06142E;
  break-after:avoid;page-break-after:avoid;break-inside:avoid;
}
.pdf-topo__marca{display:flex;align-items:center;gap:.75rem;min-width:0}
.pdf-topo__marca img{height:2.6rem;width:auto;object-fit:contain;flex:none}
.pdf-topo__marca strong{
  display:block;font-family:var(--font-num);font-size:1.02rem;font-weight:750;
  letter-spacing:-.02em;color:#06142E;line-height:1.15;
}
.pdf-topo__marca span{display:block;font-size:.72rem;color:#5b6f8a;margin-top:.12rem}
.pdf-topo__meta{
  display:flex;gap:1.1rem;flex:none;text-align:right;margin:0;
}
.pdf-topo__meta div{display:flex;flex-direction:column;gap:.08rem}
.pdf-topo__meta dt{
  font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;
  color:#7a8aa3;font-weight:700;margin:0;
}
.pdf-topo__meta dd{
  margin:0;font-family:var(--font-num);font-size:.82rem;font-weight:650;
  color:#06142E;letter-spacing:-.015em;
}
.pdf-inc{
  font-size:.72rem;color:#4a5d78;margin:0 0 .85rem;line-height:1.45;
  padding:.4rem .65rem;background:#f4f7fb;border-left:3px solid #159DFF;
  break-after:avoid;page-break-after:avoid;
}
.pdf-inc b{color:#06142E;font-weight:650}
.pdf-cap{margin:.15rem 0 .35rem}
.pdf-cap h2{
  font-family:var(--font-num);font-size:.92rem;color:#06142E;margin:.55rem 0 .45rem;
  letter-spacing:.04em;text-transform:uppercase;font-weight:750;
  padding-bottom:.28rem;border-bottom:1px solid #d5deec;
  break-after:avoid;page-break-after:avoid;
}
.pdf-cap h2 i{
  font-style:normal;color:#159DFF;margin-right:.45rem;letter-spacing:.08em;
  font-variant-numeric:tabular-nums;
}
.pdf-cap h3{
  font-family:var(--font-num);font-size:.72rem;color:#06142E;margin:.55rem 0 .28rem;
  letter-spacing:.08em;text-transform:uppercase;font-weight:700;
  break-after:avoid;page-break-after:avoid;
}
.pdf-resumo{
  display:grid;grid-template-columns:repeat(4,1fr);
  border:1px solid #c5d0e0;margin:0 0 .7rem;background:#fff;
}
.pdf-resumo>div{
  padding:.42rem .55rem .48rem;
  border-right:1px solid #e3ebf4;border-bottom:1px solid #e3ebf4;
  min-width:0;
}
.pdf-resumo>div:nth-child(4n){border-right:none}
.pdf-resumo>div:nth-last-child(-n+4){border-bottom:none}
.pdf-resumo--3{grid-template-columns:repeat(3,1fr)}
.pdf-resumo--3>div:nth-child(4n){border-right:1px solid #e3ebf4}
.pdf-resumo--3>div:nth-child(3n){border-right:none}
.pdf-resumo--2{grid-template-columns:repeat(2,1fr)}
.pdf-resumo--2>div:nth-child(4n){border-right:1px solid #e3ebf4}
.pdf-resumo--2>div:nth-child(2n){border-right:none}
.pdf-resumo span{
  display:block;font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;
  color:#6b7f99;font-weight:700;
}
.pdf-resumo b{
  display:block;font-family:var(--font-num);font-size:.92rem;font-weight:750;
  letter-spacing:-.03em;margin-top:.12rem;color:#06142E;
  font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.pdf-resumo em{display:block;font-style:normal;font-size:.64rem;color:#7a8aa3;margin-top:.08rem}
.pdf-resumo .neg b{color:#b4234e}
.pdf-resumo .pos b{color:#0a7a52}
.pdf-cols{
  display:grid;grid-template-columns:1fr 1fr;gap:0 1.1rem;margin:0 0 .35rem;
  align-items:start;
}
.pdf-folha table{width:100%;border-collapse:collapse;font-size:.72rem;margin:0 0 .65rem}
.pdf-folha thead{display:table-header-group}
.pdf-folha tr{break-inside:avoid;page-break-inside:avoid}
.pdf-folha th{
  text-align:left;background:#06142E;color:#fff;font-weight:650;
  padding:.32rem .5rem;letter-spacing:.04em;font-size:.62rem;text-transform:uppercase;
}
.pdf-folha td{padding:.28rem .5rem;border-bottom:1px solid #e6edf6;vertical-align:top;color:#1a2740}
.pdf-folha tbody tr:nth-child(even) td{background:#f7faff}
.pdf-folha .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;font-family:var(--font-num)}
.pdf-folha .neg{color:#b4234e}
.pdf-folha .pos{color:#0a7a52}
.pdf-vazio{font-size:.78rem;color:#5b6f8a;margin:.15rem 0 .55rem}
.pdf-nota{
  font-size:.72rem;line-height:1.45;color:#33445c;
  background:#f4f8fe;border-left:3px solid #159DFF;padding:.4rem .6rem;margin:.15rem 0 .55rem;
}
.pdf-pe{
  margin-top:.9rem;padding-top:.45rem;border-top:1px solid #d5deec;
  font-size:.62rem;color:#7a8aa3;letter-spacing:.02em;
}

@media(max-width:39.99rem){
  .pdf-resumo{grid-template-columns:1fr 1fr}
  .pdf-resumo>div:nth-child(4n){border-right:1px solid #e3ebf4}
  .pdf-resumo>div:nth-child(2n){border-right:none}
  .pdf-resumo>div:nth-last-child(-n+4){border-bottom:1px solid #e3ebf4}
  .pdf-resumo>div:nth-last-child(-n+2){border-bottom:none}
  .pdf-cols{grid-template-columns:1fr}
  .pdf-topo{flex-direction:column;align-items:flex-start}
  .pdf-topo__meta{text-align:left}
}

/* Impressão: só a folha. Seções longas PODEM quebrar de página
   (senão o bloco inteiro vai para a folha 2 e a 1 fica em branco). */
@media print{
  @page{size:A4;margin:10mm 12mm 12mm}
  html{color-scheme:light!important}
  html,body{
    display:block!important;background:#fff!important;color:#1a2740!important;
    overflow:visible!important;padding:0!important;margin:0!important;
    min-height:0!important;height:auto!important;
  }
  .skip,.shell-nav,.abas,.marca,.topo,.drawer,.olho-btn,.tema-btn,.usuario,
  .sub-abas,.pdf-form,.pdf-barra-print,.pdf-folha[hidden]{display:none!important}
  .painel-aba.oculto{display:none!important}
  .shell,.app,[data-painel="relatorios"]{
    display:block!important;margin:0!important;padding:0!important;
    max-width:none!important;gap:0!important;min-height:0!important;
    background:#fff!important;position:static!important;height:auto!important;
  }
  .pdf-folha{
    display:block!important;background:#fff;color:#1a2740;box-shadow:none;border-radius:0;
    padding:0;margin:0;
    -webkit-print-color-adjust:exact;print-color-adjust:exact;
  }
  .pdf-faixa{margin:0 0 8px;border-radius:0}
  .pdf-resumo{grid-template-columns:repeat(4,1fr)!important}
  .pdf-resumo--3{grid-template-columns:repeat(3,1fr)!important}
  .pdf-resumo--2{grid-template-columns:repeat(2,1fr)!important}
  .pdf-cols{grid-template-columns:1fr 1fr!important;gap:0 6mm}
  .pdf-topo,.pdf-inc,h2,h3{break-after:avoid;page-break-after:avoid}
}

html.imprimindo .skip,
html.imprimindo .shell-nav,
html.imprimindo .abas,
html.imprimindo .topo,
html.imprimindo .drawer,
html.imprimindo .sub-abas,
html.imprimindo .pdf-form,
html.imprimindo .pdf-barra-print{display:none!important}
