body{background:#111418;color:#d6dbe1;font:14px/1.4 system-ui,sans-serif;margin:0;padding:16px 24px}
header{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid #2a3038;margin-bottom:16px}
h1{font-size:18px;margin:8px 0}h2{font-size:14px;text-transform:uppercase;color:#8a96a3;letter-spacing:.05em}
header span{color:#8a96a3;font-size:12px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.card{background:#1a1f25;border:1px solid #2a3038;border-radius:6px;padding:12px}
.lbl{color:#8a96a3;font-size:12px}.val{font-size:26px;font-weight:600}.sub{color:#8a96a3;font-size:12px}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}@media(max-width:900px){.grid{grid-template-columns:1fr}}
table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:5px 8px;border-bottom:1px solid #232a31}
th{color:#8a96a3;font-weight:500}td{font-family:ui-monospace,monospace;font-size:13px}.empty{color:#66717d;font-family:inherit}
button{background:#3a2226;color:#f2c4c9;border:1px solid #6b343c;border-radius:4px;padding:2px 8px;cursor:pointer}
button:disabled{opacity:.4;cursor:not-allowed}
.note,.flash{background:#1d2530;border-left:3px solid #d29b2a;padding:8px 12px;margin-bottom:12px}.flash{border-color:#3b8bd4}
code{color:#e6c07b}
.hint{color:#8a96a3;font-size:12px;margin:0 0 8px}
.banform{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end;margin:.5rem 0 1rem}
.banform label{display:flex;flex-direction:column;font-size:.85rem;gap:.25rem}
.banform input,.banform select{padding:.35rem .5rem}

.summary{font-size:1.15em;padding:12px 16px;margin:12px 0;border-radius:8px;background:#12351c;color:#e8f7ec;border:1px solid #2e7d4a;border-left:5px solid #4caf50;font-weight:500}
.summary.bad{background:#3d2410;color:#fff1e0;border-color:#a8581c;border-left-color:#ff9800}
.tgl{display:flex;gap:16px;margin-bottom:6px}.tgl label{cursor:pointer;color:#d6dbe1}
.tlbl{color:#c3cbd4;font-size:13px;margin:10px 0 2px}
.tgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.tcard{min-width:0}.rng[hidden]{display:none}
@media (max-width:800px){.tgrid{grid-template-columns:1fr}}
.trend{display:block;width:100%;height:auto;max-height:180px;background:#161a1f;border:1px solid #2a3038;border-radius:6px}
.trend .ax{fill:#9aa5b1;font-size:10px}.trend .vl{fill:#e8edf2;font-size:11px}
a{color:#8cc4ff}a:visited{color:#b9a6ff}a.ipl{text-decoration:none;border-bottom:1px dotted #8cc4ff}a.ipl:hover{color:#fff}
a.back{color:#8cc4ff;text-decoration:none;font-size:.8em}
.ipbig{font-size:1.8em;font-weight:600;color:#fff;font-family:ui-monospace,monospace}
.iplinks{margin:8px 0}.iplinks a{display:inline-block;margin-right:10px;padding:4px 10px;background:#1d2a3a;border:1px solid #2f5070;border-radius:4px;color:#cfe6ff;text-decoration:none}

.health{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;align-items:stretch}
@media (max-width:1000px){.health{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.health{grid-template-columns:1fr}}
.hrow{display:flex;gap:10px;align-items:flex-start;background:#1a1f25;border:1px solid #2a3038;border-left:5px solid #66717d;border-radius:6px;padding:10px 12px;color:#e8edf2}
.hrow.ok{border-left-color:#4caf50}.hrow.warn{border-left-color:#ff9800}.hrow.bad{border-left-color:#f44336;background:#2a1517}.hrow.unk{border-left-color:#8a96a3}
.hdot{font-size:18px;line-height:1.2}.htxt{color:#c3cbd4;font-size:13px;margin-top:2px}.htxt code{color:#e6c07b}

.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}@media(max-width:900px){.stats{grid-template-columns:1fr}}
.scard{background:#1a1f25;border:1px solid #2a3038;border-radius:6px;padding:10px 12px;min-width:0}
.scard h3{font-size:13px;margin:0 0 8px;color:#e8edf2}.scard p{margin:6px 0}
.sbar{display:block;height:8px;background:#232a31;border-radius:4px;overflow:hidden}.sbar span{display:block;height:100%;border-radius:4px}
td.bcell{width:40%}
.split{display:flex;height:14px;border-radius:7px;overflow:hidden;background:#232a31;margin:8px 0}.split .sl{background:#4caf50}.split .sc{background:#3b8bd4}
.kl{color:#7fd28a}.kc{color:#8cc4ff}
td.path{max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
