:root{--bg:#0f1115;--card:#181b22;--line:#2a2f3a;--text:#e8eaf0;--muted:#9aa3b2;--pos:#2ecc71;--neg:#ff5c5c;--warn:#f5b041;--accent:#5aa9ff}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:15px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;padding-bottom:40px}
a{color:var(--accent);text-decoration:none}
.paper{background:var(--warn);color:#111;text-align:center;font-weight:700;padding:6px 8px;font-size:13px;letter-spacing:.03em}
header{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 12px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg);z-index:2}
header .brand{font-weight:700;margin-right:auto}
nav a{display:inline-block;padding:6px 10px;border:1px solid var(--line);border-radius:16px;font-size:14px;color:var(--text)}
nav a.on{background:var(--accent);border-color:var(--accent);color:#06121f}
nav form{display:inline}
button,.btn{background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:16px;padding:6px 10px;font-size:14px}
main{padding:12px;max-width:1100px;margin:0 auto}
h1{font-size:20px;margin:6px 0 4px}h2{font-size:17px;margin:18px 0 8px}h3{font-size:15px;margin:14px 0 6px}
.muted{color:var(--muted);font-size:13px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px;margin:10px 0}
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
@media(min-width:700px){.grid{grid-template-columns:repeat(4,1fr)}.cards{display:grid;grid-template-columns:1fr 1fr;gap:12px}}
.stat{background:#11141a;border-radius:8px;padding:8px}
.stat .k{color:var(--muted);font-size:12px}.stat .v{font-size:18px;font-weight:700}
.pos{color:var(--pos)}.neg{color:var(--neg)}.warn{color:var(--warn)}
.ok-badge,.bad-badge{display:inline-block;border-radius:10px;padding:2px 8px;font-size:12px;font-weight:700}
.ok-badge{background:#163a26;color:var(--pos)}.bad-badge{background:#4a1717;color:var(--neg)}
.meter{height:8px;background:#11141a;border-radius:4px;overflow:hidden;margin-top:4px}
.meter span{display:block;height:100%;background:var(--warn)}
.meter.w0 span{width:0}.meter.w10 span{width:10%}.meter.w20 span{width:20%}.meter.w30 span{width:30%}.meter.w40 span{width:40%}
.meter.w50 span{width:50%}.meter.w60 span{width:60%}.meter.w70 span{width:70%}.meter.w80 span{width:80%}.meter.w90 span{width:90%}.meter.w100 span{width:100%;background:var(--neg)}
.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:10px}
table{border-collapse:collapse;width:100%;font-size:14px;white-space:nowrap}
th,td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:left}
th{color:var(--muted);font-weight:600;font-size:12px;background:#13161c;position:sticky;top:0}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}
tr:last-child td{border-bottom:none}
.empty{padding:16px;text-align:center;color:var(--muted)}
.alert-text{white-space:pre-wrap;background:#11141a;border-left:3px solid var(--accent);padding:8px;border-radius:6px;font-size:14px;margin:4px 0}
.tag{display:inline-block;font-size:11px;padding:1px 6px;border-radius:8px;background:#232836;color:var(--muted)}
.login{max-width:360px;margin:40px auto}
.login input{width:100%;padding:12px;margin:6px 0 12px;border-radius:8px;border:1px solid var(--line);background:#11141a;color:var(--text);font-size:16px}
.login button{width:100%;padding:12px;font-size:16px;background:var(--accent);color:#06121f;border:none;font-weight:700}
.error{background:#4a1717;color:#ffd0d0;padding:8px 10px;border-radius:8px}
svg.chart{width:100%;height:auto;background:#11141a;border-radius:10px}
svg .pos{fill:var(--pos)}svg .neg{fill:var(--neg)}svg .zero{stroke:#555;stroke-width:1}
svg .cum{fill:none;stroke:var(--accent);stroke-width:2}svg text{fill:var(--muted);font-size:11px}
footer{color:var(--muted);font-size:12px;text-align:center;margin-top:24px}
td.wrap{white-space:normal;min-width:240px}
