:root{
  --bg:#0d1117; --panel:#161b22; --panel2:#1c2330; --border:#2b3444;
  --text:#e6edf3; --muted:#8b98a9; --accent:#4c9aff; --green:#3fb950;
  --red:#f85149; --amber:#d29922; --mono:'SFMono-Regular',ui-monospace,Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;font-size:14px}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.layout{display:flex;min-height:100vh}
.sidebar{width:220px;background:var(--panel);border-right:1px solid var(--border);
  padding:18px 0;position:sticky;top:0;height:100vh;flex-shrink:0}
.brand{font-weight:700;font-size:16px;padding:0 20px 16px;letter-spacing:.3px}
.brand small{display:block;color:var(--muted);font-weight:400;font-size:11px;margin-top:2px}
.nav a{display:flex;align-items:center;gap:10px;padding:10px 20px;color:var(--muted);
  border-left:3px solid transparent}
.nav a:hover{background:var(--panel2);color:var(--text);text-decoration:none}
.nav a.active{color:var(--text);border-left-color:var(--accent);background:var(--panel2)}
.nav .ic{width:16px;text-align:center}
.logout{position:absolute;bottom:16px;left:0;right:0;padding:0 20px}
.main{flex:1;padding:24px 30px;max-width:100%;overflow-x:auto}
h1{font-size:20px;margin:0 0 4px}
.sub{color:var(--muted);margin:0 0 22px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:24px}
.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:16px}
.card .k{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.5px}
.card .v{font-size:26px;font-weight:700;margin-top:6px}
.card .v.small{font-size:16px;font-weight:600}
.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;margin-bottom:22px;overflow:hidden}
.panel h2{font-size:14px;margin:0;padding:14px 16px;border-bottom:1px solid var(--border);
  background:var(--panel2);text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}
table{width:100%;border-collapse:collapse;font-size:13px}
th,td{text-align:left;padding:9px 14px;border-bottom:1px solid var(--border);white-space:nowrap}
th{color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.4px}
tr:hover td{background:var(--panel2)}
td.mono,.mono{font-family:var(--mono);font-size:12px}
td.wrap{white-space:normal;max-width:420px}
.pill{display:inline-block;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:600}
.pill.paper{background:#1f6feb33;color:#79c0ff}
.pill.live{background:#f8514933;color:#ff7b72}
.pill.ok{background:#3fb95033;color:#56d364}
.pill.no{background:#8b98a933;color:var(--muted)}
.pill.warn{background:#d2992233;color:#e3b341}
.lat{font-family:var(--mono);font-size:12px}
.lat.hi{color:var(--amber)}.lat.vhi{color:var(--red)}
.fired-yes{color:var(--green);font-weight:600}
.fired-no{color:var(--muted)}
.bars{display:flex;flex-direction:column;gap:6px}
.bar-row{display:flex;align-items:center;gap:10px}
.bar-row .lbl{width:180px;color:var(--muted);font-size:12px;text-align:right}
.bar-track{flex:1;background:var(--panel2);border-radius:4px;height:16px;overflow:hidden}
.bar-fill{height:100%;background:var(--accent)}
.bar-row .num{width:60px;font-family:var(--mono);font-size:12px}
.login-wrap{display:flex;align-items:center;justify-content:center;height:100vh}
.login-box{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:32px;width:320px}
.login-box h1{text-align:center;margin-bottom:20px}
input[type=password]{width:100%;padding:11px;background:var(--bg);border:1px solid var(--border);
  border-radius:8px;color:var(--text);font-size:14px;margin-bottom:14px}
button{width:100%;padding:11px;background:var(--accent);color:#fff;border:0;border-radius:8px;
  font-size:14px;font-weight:600;cursor:pointer}
button:hover{opacity:.9}
.err{color:var(--red);text-align:center;margin-bottom:12px;font-size:13px}
.detail-grid{display:grid;grid-template-columns:180px 1fr;gap:2px 14px;font-size:13px}
.detail-grid .dk{color:var(--muted)}
pre{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:14px;
  overflow:auto;font-family:var(--mono);font-size:12px;color:var(--text)}
.refresh{color:var(--muted);font-size:12px;float:right}
