:root{--ink:#050505;--card:#0C0C0C;--line:#1C1C1C;--line-2:#2A2A2A;--text:#F2F2F2;--text-2:#CFCFCF;--muted:#9A9A9A;--faint:#6E6E6E;
--accent:#C6F432;--pos:#7EE081;--neg:#FF6B6B;--warn:#FFB020;--sans:'Space Grotesk',system-ui,sans-serif;--mono:'JetBrains Mono',ui-monospace,monospace}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ink);color:var(--text);font-family:var(--sans);line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:var(--accent)}code{font-family:var(--mono);font-size:.9em;background:#141414;padding:2px 6px;border-radius:4px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.mono{font-family:var(--mono)}.muted{color:var(--muted)}.small{font-size:13px}.r{text-align:right}
.pos{color:var(--pos)}.neg{color:var(--neg)}.warn{color:var(--warn)}
.brand{display:flex;flex-direction:column;line-height:1}.brand b{font-size:15px;letter-spacing:.16em}.brand i{font-style:normal;font-size:8px;letter-spacing:.72em;margin-top:4px;color:var(--accent)}
.top{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(5,5,5,.9);backdrop-filter:blur(10px);z-index:5;flex-wrap:wrap}
.top-right{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:13px}.link{color:var(--text-2);text-decoration:none}.link:hover{color:var(--accent)}
.pill{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:5px 10px;border-radius:999px;border:1px solid var(--line-2);color:var(--text-2)}
.pill-record{border-color:#3a3a3a}.pill-dry{border-color:#5a4a10;color:var(--warn)}.pill-live{border-color:var(--accent);color:var(--accent)}
.wrap{max-width:1280px;margin:0 auto;padding:24px}
.banner{padding:12px 16px;border-radius:10px;margin-bottom:16px;font-size:14px}.banner.warn{background:#2a1f05;border:1px solid #5a4410}.banner.alert{background:#2a0b0b;border:1px solid #5a1a1a}
.empty{padding:64px 0;text-align:center}.empty h1{font-weight:500;margin:0 0 8px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:16px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:4px}
.kpi span{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.kpi b{font-family:var(--mono);font-size:26px;font-weight:500}.kpi small{color:var(--faint);font-size:12px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:16px;margin-bottom:16px}
@media (max-width:520px){.grid2{grid-template-columns:1fr}.wrap{padding:16px}.top{padding:12px 16px}.kpis{grid-template-columns:1fr 1fr}.kpi b{font-size:20px}.events li{grid-template-columns:auto 1fr}.events li span:last-child{grid-column:1/-1}.mkt.three{grid-template-columns:1fr 1fr}}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 20px;margin-bottom:16px;min-width:0}.grid2 .card{margin-bottom:0}
.card h2{font-size:15px;font-weight:500;margin:0 0 12px;letter-spacing:.02em}
.mkt{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin-bottom:14px}.mkt.three{grid-template-columns:repeat(3,1fr)}
.mkt div{display:flex;flex-direction:column;gap:2px}.mkt span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.mkt b{font-family:var(--mono);font-weight:500;font-size:18px}
.regime{display:flex;flex-direction:column;gap:8px}
.tag{align-self:flex-start;font-size:13px;padding:5px 10px;border-radius:6px;border:1px solid var(--line-2)}.tag-ib{border-color:var(--accent);color:var(--accent)}.tag-uf{border-color:var(--warn);color:var(--warn)}
.check{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text-2)}.check i{width:10px;height:10px;border-radius:50%;background:var(--faint)}
.check.ok i,.dot.ok{background:var(--pos)}.check.no i,.dot.no{background:var(--neg)}.check.na{color:var(--faint)}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--faint)}
.t{width:100%;border-collapse:collapse;font-size:14px}.t th{font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-align:left;padding:8px;border-bottom:1px solid var(--line-2)}
.t th.r{text-align:right}.t td{padding:8px;border-bottom:1px solid var(--line)}.t tfoot td{border-bottom:0;padding-top:12px}
.scroll{overflow-x:auto}
.chart{position:relative;height:260px}
.events{list-style:none;margin:0;padding:0;max-height:420px;overflow-y:auto;font-size:14px}
.events li{display:grid;grid-template-columns:96px 64px minmax(0,1fr);gap:10px;padding:8px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.events time{color:var(--faint);font-size:12px}.events .kind{font-family:var(--mono);font-size:11px;color:var(--muted);text-transform:uppercase}
.events .lv-warn span:last-child{color:var(--warn)}.events .lv-alert span:last-child{color:var(--neg)}.events .lv-report span:last-child{color:var(--text)}
.ledger-form{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 12px}
input,select,button{font:inherit;font-size:14px;background:#111;color:var(--text);border:1px solid var(--line-2);border-radius:8px;padding:8px 10px}
.ledger-form input[type=text]{flex:1;min-width:160px}.ledger-form input[type=number]{width:120px}
button{background:var(--accent);color:var(--ink);border-color:var(--accent);font-weight:500;cursor:pointer}button:hover{filter:brightness(1.08)}
.foot{text-align:center;color:var(--faint);font-size:13px;padding:24px 0 32px}
body.login{display:grid;place-items:center;min-height:100vh;padding:16px}
.login-card{width:100%;max-width:320px;display:flex;flex-direction:column;gap:12px}.login-card form{display:flex;flex-direction:column;gap:10px}
.login-card input{padding:12px}.login-card button{padding:12px}.err{color:var(--neg);margin:0;font-size:14px}.login-card .foot{padding:16px 0 0}
