/* Layout: cabeçalho escuro com KPIs, barra de filtros fixa, grade de cards com o mapa como peça central */
:root{
  --marca:#0b6d32; --marca-2:#16a34a; --destaque:#ffd400; --tinta:#0b1410;
  --bg:#f3f6f3; --surface:#ffffff; --surface-2:#eef3ef; --line:#dbe5dd;
  --fg:#0f1d16; --muted:#55665b; --link:#0b6d32; --chart:#5cc576;
  --hero-a:#07120c; --hero-b:#0b3a1d; --hero-fg:#f4fbf5; --hero-muted:#b9d3bf;
  --glass:rgba(255,255,255,.08); --glass-line:rgba(255,255,255,.16);
  --filterbar:rgba(243,246,243,.86);
  --m0:#e3f4e5; --m1:#b9e2c0; --m2:#7fc98f; --m3:#3fa95c; --m4:#16803c; --m5:#0b4f23; --m-empty:#eef1ee;
  --ok:#16a34a; --warn:#b45309; --crit:#b91c1c; --info:#1d4ed8;
  --tip-bg:#0b1410; --tip-fg:#f4fbf5;
  --f-display:"Nunito",ui-rounded,"Segoe UI",system-ui,sans-serif;
  --f-body:"Nunito",ui-rounded,"Segoe UI",system-ui,sans-serif;
  --r:16px; --r-sm:10px; --gap:16px;
  --shadow:0 1px 2px rgba(11,20,16,.05),0 6px 20px rgba(11,20,16,.06);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0b1410; --surface:#111d17; --surface-2:#16251d; --line:#22362a;
  --fg:#e8f3eb; --muted:#9db3a4; --link:#6fd98d; --chart:#5cc576;
  --filterbar:rgba(11,20,16,.86);
  --m0:#163222; --m1:#1c4a2d; --m2:#22693a; --m3:#2d8c4b; --m4:#46b265; --m5:#86dda0; --m-empty:#14211a;
  --ok:#4ade80; --warn:#fbbf24; --crit:#f87171; --info:#93c5fd;
  --tip-bg:#e8f3eb; --tip-fg:#0b1410;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 6px 20px rgba(0,0,0,.25);
  color-scheme:dark;
}}
:root[data-theme="dark"]{
  --bg:#0b1410; --surface:#111d17; --surface-2:#16251d; --line:#22362a;
  --fg:#e8f3eb; --muted:#9db3a4; --link:#6fd98d; --chart:#5cc576;
  --filterbar:rgba(11,20,16,.86);
  --m0:#163222; --m1:#1c4a2d; --m2:#22693a; --m3:#2d8c4b; --m4:#46b265; --m5:#86dda0; --m-empty:#14211a;
  --ok:#4ade80; --warn:#fbbf24; --crit:#f87171; --info:#93c5fd;
  --tip-bg:#e8f3eb; --tip-fg:#0b1410;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 6px 20px rgba(0,0,0,.25);
  color-scheme:dark;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--f-body);font-size:15px;line-height:1.5;font-weight:500}
a{color:var(--link)}
:focus-visible{outline:3px solid var(--destaque);outline-offset:2px;border-radius:6px}
.wrap{max-width:1320px;margin:0 auto;padding-inline:16px}
.num{font-variant-numeric:tabular-nums}

/* Cabeçalho */
.hero{background:radial-gradient(1200px 400px at 85% -10%,rgba(255,212,0,.16),transparent 60%),linear-gradient(135deg,var(--hero-a),var(--hero-b));color:var(--hero-fg);padding-block:22px 26px}
.topline{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;font-weight:900;letter-spacing:.2px}
.brand svg{width:34px;height:34px;flex:none}
.brand span{font-size:16px}
.top-actions{display:flex;gap:8px;align-items:center}
.badge{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:800;padding:6px 12px;border-radius:999px;background:var(--glass);border:1px solid var(--glass-line);letter-spacing:.3px}
.pulse{width:8px;height:8px;border-radius:50%;background:var(--destaque);box-shadow:0 0 0 0 rgba(255,212,0,.6);animation:pulse 2s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(255,212,0,.55)}70%{box-shadow:0 0 0 9px rgba(255,212,0,0)}100%{box-shadow:0 0 0 0 rgba(255,212,0,0)}}
.iconbtn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;border:1px solid var(--glass-line);background:var(--glass);color:var(--hero-fg);cursor:pointer}
.iconbtn svg{width:18px;height:18px}
h1{font-family:var(--f-display);font-weight:900;font-size:clamp(30px,5vw,52px);line-height:1.05;margin:18px 0 8px;text-wrap:balance;letter-spacing:-.5px}
h1 .grad{background:linear-gradient(90deg,var(--destaque),#9be37a);-webkit-background-clip:text;background-clip:text;color:transparent}
.sub{color:var(--hero-muted);max-width:70ch;margin:0;font-size:15.5px}
.status{margin-top:10px;font-size:13px;color:var(--hero-muted);display:flex;gap:6px;align-items:center}
.status svg{width:14px;height:14px}
.kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:20px}
.kpi{background:var(--glass);border:1px solid var(--glass-line);border-radius:var(--r);padding:14px 16px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);min-width:0}
.kpi .l{font-size:12px;text-transform:uppercase;letter-spacing:.7px;color:var(--hero-muted);font-weight:800;display:flex;gap:6px;align-items:center}
.kpi .l svg{width:14px;height:14px}
.kpi .v{font-size:clamp(20px,2.6vw,28px);font-weight:900;margin-top:4px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tabs{display:flex;gap:6px;margin-top:20px}
.tab{appearance:none;border:1px solid var(--glass-line);background:transparent;color:var(--hero-fg);font:inherit;font-weight:800;padding:8px 16px;border-radius:999px;cursor:pointer;text-decoration:none;display:inline-flex;gap:6px;align-items:center}
.tab svg{width:16px;height:16px}
.tab[aria-selected="true"]{background:var(--destaque);color:var(--tinta);border-color:var(--destaque)}

/* Filtros */
.filters{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--filterbar);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.frow{display:flex;flex-wrap:wrap;gap:8px;align-items:end;padding-block:10px}
.f{display:flex;flex-direction:column;gap:3px;min-width:0}
.f label{font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}
.f input,.f select{font:inherit;font-size:14px;color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:7px 9px;min-width:0;max-width:100%}
.f select{max-width:220px}
.f.q{flex:1 1 180px}
.f.q input{width:100%}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{font:inherit;font-size:13px;font-weight:800;border:1px solid var(--line);background:var(--surface);color:var(--fg);border-radius:999px;padding:7px 12px;cursor:pointer}
.chip[aria-pressed="true"]{background:var(--marca);border-color:var(--marca);color:#fff}
.btn{font:inherit;font-size:13.5px;font-weight:800;border-radius:var(--r-sm);padding:8px 12px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);color:var(--fg)}
.btn svg{width:15px;height:15px}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn.primary{background:var(--marca);border-color:var(--marca);color:#fff}
.factive{font-size:12px;font-weight:800;color:var(--muted);align-self:center}
.factive b{color:var(--fg)}

/* Grade */
main{padding-block:18px 32px}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:16px;min-width:0;display:flex;flex-direction:column;gap:10px}
.card h2{font-size:15px;font-weight:900;margin:0;display:flex;align-items:center;gap:8px}
.card h2 svg{width:17px;height:17px;color:var(--marca-2)}
.card .hint{font-size:12.5px;color:var(--muted);margin:0}
.span2{grid-column:span 2}.span3{grid-column:1/-1}
.mapbox{position:relative;width:100%;aspect-ratio:1/0.92;max-width:100%}
.mapbox svg{width:100%;height:100%;display:block}
.uf{stroke:var(--surface);stroke-width:.8;cursor:pointer;transition:opacity .15s}
.uf.sel{stroke:var(--destaque);stroke-width:2.4}
.uf:hover{opacity:.85}
.dot{fill:var(--destaque);fill-opacity:.82;stroke:var(--tinta);stroke-width:.8;cursor:pointer}
.legend{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);flex-wrap:wrap}
.legend i{display:inline-block;width:22px;height:10px;border-radius:3px}
.tip{position:absolute;pointer-events:none;background:var(--tip-bg);color:var(--tip-fg);font-size:12.5px;line-height:1.4;border-radius:10px;padding:10px 12px;max-width:280px;box-shadow:0 8px 24px rgba(0,0,0,.3);z-index:5}
.tip b{display:block;margin-bottom:4px}
.tip ul{margin:0;padding-left:16px}
.chartbox{position:relative;height:240px}
.chartbox.tall{height:320px}
.orgs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.orgs li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;font-size:13.5px}
.orgs .bar{grid-column:1/-1;height:6px;border-radius:4px;background:var(--surface-2);overflow:hidden}
.orgs .bar span{display:block;height:100%;background:var(--chart);border-radius:4px}

/* Tabela */
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-sm)}
table{border-collapse:collapse;width:100%;font-size:13.5px}
th{position:sticky;top:0;background:var(--surface-2);text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-weight:900;padding:9px 10px;white-space:nowrap;cursor:pointer;user-select:none}
th[aria-sort="ascending"]::after{content:" \2191"}th[aria-sort="descending"]::after{content:" \2193"}
td{padding:10px;border-top:1px solid var(--line);vertical-align:top}
td.c-data{white-space:nowrap}
td .t{font-weight:800}
td .r{color:var(--muted);font-size:12.5px;margin-top:2px}
.tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.tag{font-size:11px;font-weight:800;padding:2px 8px;border-radius:999px;background:var(--surface-2);color:var(--fg);border:1px solid var(--line)}
.tag.op{background:transparent;border-style:dashed}
.pill{font-size:11.5px;font-weight:900;padding:3px 9px;border-radius:999px;white-space:nowrap;display:inline-block;color:#fff}
.pill.prisao{background:#b91c1c}.pill.operacao{background:#0b6d32}.pill.mandados{background:#1d4ed8}.pill.denuncia{background:#7c3aed}.pill.bloqueio{background:#b45309}.pill.derrubada{background:#0e7490}.pill.outro{background:#475569}
.nums{font-size:12.5px;color:var(--muted);white-space:nowrap}
.nums b{color:var(--fg)}
.src a{display:inline-flex;gap:4px;align-items:center;font-weight:800;text-decoration:none}
.src a svg{width:13px;height:13px}
.src .s2{font-size:12px;font-weight:700}
.more{display:flex;justify-content:center;gap:8px;align-items:center;font-size:13px;color:var(--muted)}
.empty{padding:28px;text-align:center;color:var(--muted)}
.runs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.runs li{display:grid;grid-template-columns:110px minmax(0,1fr);gap:10px;font-size:13.5px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.runs .d{font-weight:900}
.runs .n{color:var(--muted)}
.skel{background:linear-gradient(90deg,var(--surface-2),var(--line),var(--surface-2));background-size:200% 100%;animation:sk 1.4s infinite;border-radius:8px}
@keyframes sk{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* Nota metodológica */
.doc{max-width:78ch;margin:0 auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:clamp(18px,4vw,40px);box-shadow:var(--shadow)}
.doc h2{font-size:24px;font-weight:900;margin:0 0 6px}
.doc h3{font-size:17px;font-weight:900;margin:26px 0 6px;display:flex;gap:10px;align-items:baseline}
.doc h3 .n{color:var(--marca-2);font-variant-numeric:tabular-nums}
.doc p,.doc li{color:var(--fg)}
.doc ul{padding-left:20px}
.doc .lead{color:var(--muted)}
.doc code{background:var(--surface-2);padding:1px 6px;border-radius:6px;font-size:13px}

footer{border-top:1px solid var(--line);padding-block:20px 28px;color:var(--muted);font-size:13px;text-align:center}
footer p{margin:4px 0}
footer a{font-weight:800}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

@media (max-width:1000px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.span2{grid-column:1/-1}.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:680px){.filters{position:static}.grid{grid-template-columns:minmax(0,1fr)}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.c-num,.c-tipo,th.c-num,th.c-tipo{display:none}.f select{max-width:150px}.runs li{grid-template-columns:1fr}}
@media (max-width:420px){.f{flex:1 1 44%}.f select,.f input{width:100%;max-width:none}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
