:root{--bg:#0b0f14;--panel:#121821;--panel-2:#18202b;--border:#233042;--text:#e6edf3;--muted:#8b98a8;--accent:#4da3ff;--pos:#2fbf71;--neg:#ef5350;--warn:#f2b84b;--radius:10px;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0}body{font:14px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent);text-decoration:none}h1{margin:0 0 16px;font-size:20px;font-weight:600}h2{margin:0 0 12px;font-size:15px;font-weight:600}p.muted,.muted{color:var(--muted)}code,.mono{font-family:var(--mono);font-size:12.5px}.shell{grid-template-columns:220px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--panel);border-right:1px solid var(--border);height:100vh;padding:16px 10px;position:sticky;top:0;overflow-y:auto}.brand{letter-spacing:.3px;padding:4px 10px 16px;font-weight:700}.brand small{color:var(--muted);font-size:11px;font-weight:400;display:block}.nav a{color:var(--muted);border-radius:8px;padding:8px 10px;display:block}.nav a:hover{background:var(--panel-2);color:var(--text)}.nav a.active{background:var(--panel-2);color:var(--text);box-shadow:inset 3px 0 0 var(--accent)}.main{min-width:0;padding:0 24px 40px}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 0;display:flex}.menu-btn{display:none}.mode-banner{z-index:10;margin:0 -24px;padding:8px 24px;font-size:13px;font-weight:600;position:sticky;top:0}.mode-banner.paper{color:#cfe5ff;background:#1d3a5f}.mode-banner.live{color:#ffd9d9;background:#6b1d1d}.mode-banner.locked{color:#ffe9b8;background:#5a4310}.grid{gap:14px;display:grid}.kpis{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.cols-2{grid-template-columns:repeat(auto-fit,minmax(380px,1fr))}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);min-width:0;padding:16px}.kpi .label{color:var(--muted);text-transform:uppercase;letter-spacing:.4px;font-size:12px}.kpi .value{font-variant-numeric:tabular-nums;margin-top:4px;font-size:22px;font-weight:600}.kpi .sub{color:var(--muted);margin-top:2px;font-size:12px}.pos{color:var(--pos)}.neg{color:var(--neg)}.warn{color:var(--warn)}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 10px}th{color:var(--muted);font-size:12px;font-weight:500}td.num,th.num{text-align:right}.table-wrap{overflow-x:auto}tr:last-child td{border-bottom:none}.badge{background:var(--panel-2);border:1px solid var(--border);border-radius:99px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.badge.ok{color:var(--pos);border-color:#1f5a3a}.badge.bad{color:var(--neg);border-color:#6a2626}.badge.warn{color:var(--warn);border-color:#6a5220}button,.btn{font:inherit;border:1px solid var(--border);background:var(--panel-2);color:var(--text);cursor:pointer;border-radius:8px;padding:8px 14px}button:hover{border-color:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:#1f4f86;border-color:#2c6db6}button.danger{background:#5c1a1a;border-color:#8a2b2b}button.danger:hover{border-color:var(--neg)}.actions{flex-wrap:wrap;gap:8px;display:flex}input,select{font:inherit;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 10px}.alert{border:1px solid;border-radius:8px;margin-bottom:12px;padding:10px 12px}.alert.error{color:#ffcdcd;background:#2a1414;border-color:#6a2626}.alert.warn{color:#ffe9b8;background:#2a2210;border-color:#6a5220}.alert.info{color:#cfe5ff;background:#111f30;border-color:#24476e}.list{margin:0;padding-left:18px}.list li{margin:2px 0}.chart{width:100%;height:auto;display:block}.kv{grid-template-columns:max-content 1fr;gap:6px 16px;display:grid}.kv dt{color:var(--muted)}.kv dd{font-variant-numeric:tabular-nums;margin:0}pre.json{background:var(--bg);border:1px solid var(--border);max-height:420px;font-family:var(--mono);border-radius:8px;padding:12px;font-size:12px;overflow:auto}.login{max-width:360px;margin:12vh auto}.login input{width:100%;margin:8px 0 12px}@media (max-width:860px){.shell{grid-template-columns:1fr}.sidebar{z-index:20;width:240px;transition:transform .2s;position:fixed;transform:translate(-100%)}.sidebar.open{transform:none}.menu-btn{display:inline-block}.main{padding:0 12px 32px}.mode-banner{margin:0 -12px;padding:8px 12px}.cols-2{grid-template-columns:1fr}.kpi .value{font-size:18px}}
