/* Dashboard executivo: uma página, lida de cima para baixo. Mesma identidade visual do painel (azul de água, nível da caixa d'água). */
:root{
  --bg:#eef3f4; --surface:#ffffff; --ink:#0c2b36; --muted:#4f6b76; --line:#d3dee2; --grid:#e3eaed;
  --deep:#0c2b36; --water:#1765a8; --on-water:#ffffff; --warn:#9a5d0e; --warn-bg:#fbf1df; --crit:#b3463a;
  --sF:#2f86c9; --sP:#9cc8ea; --sM:#c2564a; --sN:#b5c0c5; --sU:#e6ecee;
  --q1:#d3e6f1; --q2:#9cc5de; --q3:#5f9cc6; --q4:#2f6f9c;
  --display:"Bricolage Grotesque",system-ui,sans-serif; --body:"Atkinson Hyperlegible",system-ui,sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#0a1b22; --surface:#11262f; --ink:#e3eff2; --muted:#9ab2bb; --line:#23404b; --grid:#1b3540;
  --deep:#06141a; --water:#6db4e8; --on-water:#06202d; --warn:#e0ae4e; --warn-bg:#2b2410; --crit:#e58376;
  --sF:#5fb0ea; --sP:#2f6286; --sM:#e07467; --sN:#5d7079; --sU:#1d3640;
  --q1:#21445a; --q2:#2f6585; --q3:#4f8bb3; --q4:#8fbcd9;
  color-scheme:dark}}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font:16px/1.45 var(--body);font-variant-numeric:tabular-nums}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:1280px;margin:0 auto;padding-inline:max(16px,env(safe-area-inset-left,0px))}
a{color:var(--water)}
:focus-visible{outline:2px solid var(--water);outline-offset:2px}

/* cabeçalho */
header.top{background:var(--deep);color:#e8f3f6}
header.top .wrap{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 20px;padding-block:14px}
.brand{display:flex;align-items:center;gap:14px}
.alogo{display:block;width:128px;height:56px;flex:none;background:#e8f3f6;-webkit-mask:url(logo-aqua.png) center/contain no-repeat;mask:url(logo-aqua.png) center/contain no-repeat}
.brand b{font:700 20px/1.1 var(--display);display:block}
.brand small{font:500 11px/1 var(--body);letter-spacing:.12em;color:#8fbccc;text-transform:uppercase}
.hact{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.btn{font:600 13px var(--body);border:1px solid #2c5868;border-radius:999px;background:transparent;color:#cfe8f0;padding:8px 14px;cursor:pointer;text-decoration:none;white-space:nowrap;min-height:36px;display:inline-flex;align-items:center}
.btn:hover{border-color:#8fbccc}
.btn.solid{background:var(--water);border-color:var(--water);color:var(--on-water)}
.when{font:500 13px var(--body);color:#a9cfdb}

/* título e frase-resumo */
.intro{padding-block:26px 6px}
.eyebrow{font:600 11px var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--water)}
h1{font:700 clamp(26px,3.4vw,40px)/1.1 var(--display);margin:6px 0 10px;text-wrap:balance}
.lead{margin:0;font-size:18px;max-width:70ch}
.lead b{font-weight:700}

/* números principais */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-block:22px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px 18px;display:flex;flex-direction:column;gap:4px;min-width:0}
.kpi .lab{font:600 13px var(--body);color:var(--muted);display:flex;align-items:center;gap:7px}
.kpi .big{font:700 40px/1 var(--display);letter-spacing:-.01em}
.kpi .big small{font:500 14px var(--body);color:var(--muted);letter-spacing:0;margin-left:4px}
.kpi .why{font-size:13px;color:var(--muted)}
.kpi.crit .big{color:var(--crit)}
.sd{width:11px;height:11px;border-radius:3px;display:inline-block;flex:none}
.sd.F{background:var(--sF)}.sd.P{background:var(--sP)}.sd.M{background:var(--sM)}.sd.N{background:var(--sN)}.sd.U{background:var(--sU);outline:1px solid var(--line)}
.sd.q1{background:var(--q1)}.sd.q2{background:var(--q2)}.sd.q3{background:var(--q3)}.sd.q4{background:var(--q4)}.sd.Z{background:var(--sM)}

/* blocos */
.grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px;margin-bottom:16px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px 20px;min-width:0}
.card h2{font:700 19px/1.2 var(--display);margin:0 0 4px}
.card .sub{margin:0 0 14px;color:var(--muted);font-size:14px}
.full{grid-column:1/-1}

/* barra empilhada (100%) */
.stack{display:flex;gap:2px;height:28px;border-radius:6px;overflow:hidden}
.stack i{display:block;height:100%;min-width:0}
.stack i:first-child{border-radius:4px 0 0 4px}.stack i:last-child{border-radius:0 4px 4px 0}
.stack .F{background:var(--sF)}.stack .P{background:var(--sP)}.stack .M{background:var(--sM)}.stack .N{background:var(--sN)}
.stack.big{height:44px}
.legend{display:flex;flex-wrap:wrap;gap:6px 18px;margin:12px 0 0;padding:0;list-style:none;font-size:14px}
.legend li{display:flex;align-items:center;gap:7px}
.legend b{font-weight:700}
.legend span{color:var(--muted)}

/* regiões */
.regions{display:flex;flex-direction:column;gap:14px;margin-top:20px;border-top:1px solid var(--grid);padding-top:16px}
.reg{display:grid;grid-template-columns:minmax(150px,190px) minmax(0,1fr) 64px;align-items:center;gap:12px}
.reg .nm{font-weight:700;font-size:14px;line-height:1.2}
.reg .nm small{display:block;font-weight:400;color:var(--muted);font-size:12px}
.reg .stack{height:18px}
.reg .pct{text-align:right;font:700 18px var(--display)}

/* histograma */
.hist{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;align-items:end;height:190px;border-bottom:1px solid var(--muted);padding-top:22px}
.hist .col{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;position:relative}
.hist .bar{width:100%;max-width:56px;background:var(--sF);border-radius:4px 4px 0 0;min-height:2px}
.hist .bar.z{background:var(--sM)}
.hist .v{font:700 14px var(--display);margin-bottom:4px}
.hlab{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;font-size:12px;color:var(--muted);text-align:center;margin-top:6px}

/* ranking */
.rank{display:flex;flex-direction:column;gap:9px;margin:0;padding:0;list-style:none}
.rank li{display:grid;grid-template-columns:minmax(120px,190px) minmax(0,1fr) 96px;align-items:center;gap:10px;font-size:14px}
.rank .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rank .nm small{color:var(--muted)}
.rank .track{height:14px;position:relative;background:linear-gradient(to right,var(--grid) 1px,transparent 1px) 0 0/25% 100%}
.rank .bar{height:100%;background:var(--sF);border-radius:0 4px 4px 0;min-width:3px}
.rank .val{text-align:right;font-weight:700}
.rank .val small{color:var(--muted);font-weight:400}

/* mapa */
.maphead{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:10px 16px;margin-bottom:12px}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:3px;gap:3px}
.seg button{font:600 13px var(--body);border:0;background:transparent;color:var(--ink);border-radius:999px;padding:7px 14px;cursor:pointer;min-height:34px}
.seg button[aria-pressed="true"]{background:var(--water);color:var(--on-water)}
#map{height:min(560px,70vh);border-radius:12px;border:1px solid var(--line);background:var(--grid)}
.leaflet-tooltip{font:14px/1.35 var(--body)}
.leaflet-tooltip small{color:#4f6b76}

/* onde agir */
.att{margin:0;padding:0;list-style:none;display:flex;flex-direction:column}
.att li{display:grid;grid-template-columns:128px minmax(0,1fr);gap:12px;padding:10px 0;border-top:1px solid var(--grid);font-size:14px}
.att li:first-child{border-top:0}
.tag{font:700 12px var(--body);padding:4px 9px;border-radius:999px;align-self:start;justify-self:start;border:1px solid currentColor;color:var(--crit)}
.tag.m{color:var(--warn)}
.att .ar{font-weight:700}
.att .ar small{font-weight:400;color:var(--muted)}
.att p{margin:2px 0 0;color:var(--muted)}
.more{margin:12px 0 0;font-size:14px;color:var(--muted)}

/* tabela completa */
details.tbl{margin-top:16px}
details.tbl summary{cursor:pointer;font-weight:700;color:var(--water);padding:6px 0}
.tscroll{overflow:auto;max-height:520px;margin-top:8px;border:1px solid var(--line);border-radius:10px}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{padding:8px 10px;border-bottom:1px solid var(--grid);text-align:left;white-space:nowrap}
th{position:sticky;top:0;background:var(--surface);font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
td.n,th.n{text-align:right}

/* avisos e estados */
.warnbox{background:var(--warn-bg);border:1px solid var(--warn);color:var(--ink);border-radius:12px;padding:12px 16px;margin-top:16px}
.state{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:28px 22px;margin-block:22px}
.prog{height:8px;border-radius:99px;background:var(--grid);overflow:hidden;margin-top:14px}
.prog i{display:block;height:100%;background:var(--water);width:0;transition:width .3s}
.err{color:var(--crit);font-weight:600}
.spin{display:inline-block;width:16px;height:16px;border:2px solid var(--grid);border-top-color:var(--water);border-radius:50%;animation:sp 1s linear infinite;vertical-align:-3px;margin-right:8px}
@keyframes sp{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.spin{animation:none}.prog i{transition:none}}

/* dica ao passar o mouse */
#tip{position:fixed;z-index:5000;pointer-events:none;background:var(--deep);color:#e8f3f6;font-size:13px;line-height:1.35;padding:7px 10px;border-radius:8px;max-width:260px;box-shadow:0 8px 20px -8px rgba(0,0,0,.5)}
[data-tip]{cursor:default}

footer{color:var(--muted);font-size:13px;padding-block:8px 36px}
footer p{margin:4px 0}

@media (max-width:980px){.kpis{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}}
@media (max-width:560px){.kpi .big{font-size:32px}.reg{grid-template-columns:1fr 56px}.reg .stack{grid-column:1/-1;grid-row:2}
  .rank li{grid-template-columns:minmax(0,1fr) 86px}.rank .track{grid-column:1/-1;grid-row:2}.att li{grid-template-columns:1fr}.alogo{width:96px;height:42px}}

/* impressão / PDF: uma página limpa para levar à reunião */
@media print{
  @page{size:A4;margin:12mm}
  :root{--bg:#fff;--surface:#fff;--ink:#0c2b36;--muted:#4f6b76;--line:#cfd9dd;--grid:#e3eaed;--deep:#0c2b36;--water:#1765a8;--crit:#b3463a;--warn:#9a5d0e;--warn-bg:#fbf1df;
    --sF:#2f86c9;--sP:#9cc8ea;--sM:#c2564a;--sN:#b5c0c5;--sU:#e6ecee;--q1:#d3e6f1;--q2:#9cc5de;--q3:#5f9cc6;--q4:#2f6f9c;color-scheme:light}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  body{font-size:12px}
  .hact .btn,.seg,details.tbl,.leaflet-control-zoom{display:none!important}
  header.top{background:#fff;color:var(--ink);border-bottom:2px solid var(--deep)}
  .alogo{background:var(--ink)}.brand small,.when{color:var(--muted)}
  .card,.kpi{break-inside:avoid}
  .kpis{grid-template-columns:repeat(4,1fr)}
  .grid{grid-template-columns:1fr 1fr}
  #map{height:420px}
}
