:root{--bg:#0b0f17;--panel:#121826;--panel2:#1a2233;--border:#263049;--text:#e6ebf5;--muted:#8b97b0;--green:#22c55e;--red:#ef4444;--amber:#f59e0b;--blue:#3b82f6}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px}a{color:var(--blue);text-decoration:none}h1{margin:0 0 12px;font-size:20px}h2{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 10px;font-size:15px;font-weight:600}.shell{min-height:100vh;display:flex}.side{background:var(--panel);border-right:1px solid var(--border);flex-direction:column;gap:4px;width:210px;padding:14px;display:flex}.side .brand{margin-bottom:12px;font-weight:700}.side a{color:var(--text);border-radius:6px;padding:8px 10px}.side a.active,.side a:hover{background:var(--panel2)}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{border-bottom:1px solid var(--border);background:var(--panel);z-index:10;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 16px;display:flex;position:sticky;top:0}.topbar .spacer{flex:1}.content{flex-direction:column;gap:16px;padding:16px;display:flex}.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:14px;overflow-x:auto}.grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;display:grid}.kpi .label{color:var(--muted);font-size:12px}.kpi .value{margin-top:4px;font-size:22px;font-weight:700}.badge{border:1px solid var(--border);border-radius:999px;padding:3px 9px;font-size:12px;font-weight:700;display:inline-block}.badge.paper{color:#93c5fd;background:#1e3a8a55}.badge.live{color:#fecaca;background:#7f1d1d}.badge.ok{color:#86efac;background:#14532d66}.badge.warn{color:#fcd34d;background:#78350f66}.badge.bad{color:#fca5a5;background:#7f1d1d88}.pos{color:var(--green)}.neg{color:var(--red)}.muted{color:var(--muted)}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:7px 8px}th{color:var(--muted);font-weight:600}button,.btn{background:var(--panel2);color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:8px 12px;font-size:13px}button:hover{border-color:var(--blue)}button:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--blue);border-color:var(--blue)}.btn-danger{background:var(--red);border-color:var(--red);color:#fff;font-weight:700}.estop{color:#fff;letter-spacing:.03em;background:#dc2626;border:2px solid #fca5a5;padding:9px 14px;font-weight:800}input,select,textarea{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:8px;font-size:14px}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.empty{text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:8px;padding:18px}.banner{border:1px solid;border-radius:8px;padding:10px 14px}.banner.warn{color:#fde68a;background:#78350f33;border-color:#b45309}.banner.bad{color:#fecaca;background:#7f1d1d44;border-color:#dc2626}.banner.info{color:#bfdbfe;background:#1e3a8a33;border-color:#1d4ed8}.chat{flex-direction:column;gap:10px;display:flex}.msg{white-space:pre-wrap;border-radius:8px;padding:10px 12px;line-height:1.45}.msg.user{background:#1e3a8a55;align-self:flex-end;max-width:85%}.msg.bot{background:var(--panel2);max-width:100%}.login{max-width:360px;margin:12vh auto}.login input{width:100%;margin-bottom:10px}.mobile-nav{display:none}pre{white-space:pre-wrap;word-break:break-word;font-size:12px}@media (max-width:760px){.side{display:none}.mobile-nav{background:var(--panel);border-bottom:1px solid var(--border);gap:4px;padding:6px 10px;display:flex;overflow-x:auto}.mobile-nav a{color:var(--text);white-space:nowrap;border-radius:6px;padding:6px 10px;font-size:13px}.mobile-nav a.active{background:var(--panel2)}.content{padding:10px}.kpi .value{font-size:18px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
