:root{--bg:#0f1419;--card:#1a2230;--fg:#e8edf4;--mut:#8b98ab;--acc:#4da3ff;--pos:#43c98a;--neg:#ff7a7a;--warn:#ffcf5c;--line:#2a3546}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--fg);font:15px/1.45 -apple-system,"Segoe UI",Roboto,sans-serif}
.hidden{display:none!important}
header{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--card);border-bottom:1px solid var(--line)}
header strong{font-size:17px}
#periodo{margin-left:auto}
#periodo input{background:var(--bg);color:var(--fg);border:1px solid var(--line);border-radius:8px;padding:5px 8px}
#menuBtn{background:none;border:none;color:var(--fg);font-size:22px;cursor:pointer}
nav{position:fixed;z-index:6;top:0;left:0;bottom:0;width:240px;background:var(--card);padding:16px 10px;border-right:1px solid var(--line);transform:translateX(-100%);transition:transform .2s}
nav.open{transform:none}
nav a{display:block;padding:11px 12px;border-radius:9px;color:var(--fg);cursor:pointer;text-decoration:none;margin-bottom:2px}
nav a.active,nav a:hover{background:var(--line)}
@media(min-width:900px){nav{transform:none}main{margin-left:240px}#menuBtn{display:none}}
main{padding:16px;max-width:1100px}
h2{font-size:19px;margin:6px 0 4px}
h3{font-size:15px;margin:20px 0 8px;color:var(--mut);text-transform:uppercase;letter-spacing:.4px}
.explain{color:var(--mut);font-size:13px;margin-bottom:14px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin:14px 0}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;cursor:pointer}
.kpi:hover{border-color:var(--acc)}
.kpi .lbl{color:var(--mut);font-size:12.5px}
.kpi .val{font-size:20px;font-weight:650;margin-top:4px;font-variant-numeric:tabular-nums}
.kpi .sub{color:var(--mut);font-size:12px;margin-top:2px}
.pos{color:var(--pos)}.neg{color:var(--neg)}.warn{color:var(--warn)}
table{width:100%;border-collapse:collapse;margin:8px 0 18px;font-size:13.5px}
th,td{padding:7px 9px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th.num,td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
th{color:var(--mut);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.3px}
tr.tot td{font-weight:700;border-top:2px solid var(--line);border-bottom:none}
tr.arc{opacity:.45;text-decoration:line-through}
.card-sec{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:10px 0}
button{background:var(--acc);color:#06121f;border:none;border-radius:8px;padding:8px 14px;font-weight:600;cursor:pointer;font-size:13.5px}
button.ghost{background:none;border:1px solid var(--line);color:var(--fg)}
button.sm{padding:4px 9px;font-size:12px}
input,select{background:var(--bg);color:var(--fg);border:1px solid var(--line);border-radius:8px;padding:7px 9px;font-size:13.5px}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 14px;align-items:center}
.badge{display:inline-block;padding:2px 8px;border-radius:99px;font-size:11.5px;background:var(--line);color:var(--mut)}
.badge.warn{background:#4a3d1e;color:var(--warn)}
.badge.ok{background:#173b2c;color:var(--pos)}
.badge.err{background:#472227;color:var(--neg)}
.chart{display:flex;align-items:flex-end;gap:6px;height:120px;margin:10px 0 4px}
.chart .bar{flex:1;min-width:7px;background:var(--acc);border-radius:4px 4px 0 0;position:relative;opacity:.85}
.chart .bar.gast{background:var(--neg);opacity:.7}
.chart .bar.negb{background:var(--neg)}
.chart-l{display:flex;gap:6px;font-size:11px;color:var(--mut)}
.chart-l span{flex:1;min-width:14px;text-align:center;overflow:hidden}
.hbar{display:flex;align-items:center;gap:8px;margin:3px 0;font-size:13px}
.hbar .n{width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg)}
.hbar .b{height:14px;background:var(--acc);border-radius:4px;opacity:.8}
.hbar .v{margin-left:auto;font-variant-numeric:tabular-nums;color:var(--mut);white-space:nowrap}
.login{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--bg);z-index:10}
.login-box{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:28px;width:320px;text-align:center}
.login-box h1{font-size:20px;margin-bottom:6px}
.login-box p{color:var(--mut);font-size:13px;margin-bottom:16px}
.login-box input{width:100%;margin-bottom:12px}
.login-box button{width:100%}
.err{color:var(--neg);font-size:13px;margin-top:10px}
@media(max-width:640px){
  table{font-size:12.5px;display:block;overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}
  th,td{padding:6px 5px}
  td.num,th.num{white-space:nowrap}
  .hbar .n{width:110px}
  .grid{grid-template-columns:repeat(2,1fr)}
  .kpi .val{font-size:17px}
}
details{margin:14px 0}
summary{cursor:pointer;color:var(--acc);font-size:13.5px}
.tblwrap{overflow-x:auto}
