:root{--bg:#0b0e14;--card:#141a24;--card2:#1b2330;--txt:#e6edf3;--mut:#7d8aa0;--ok:#3fb950;--bad:#f85149;--warn:#d29922;--acc:#388bfd;--line:#222c3a}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--txt);font:15px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;-webkit-text-size-adjust:100%}
header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.brand{font-weight:800;letter-spacing:1px;font-size:18px}
.brand span{color:var(--acc);margin:0 2px}
.refresh{background:var(--card2);border:1px solid var(--line);color:var(--txt);font-size:20px;width:40px;height:40px;border-radius:10px}
.refresh:active{transform:scale(.94)}
nav{display:flex;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:67px;z-index:4}
.tab{flex:1;background:none;border:none;color:var(--mut);padding:13px 4px;font-size:13px;font-weight:600;letter-spacing:.3px;border-bottom:2px solid transparent}
.tab.active{color:var(--txt);border-bottom-color:var(--acc)}
main{padding:14px;max-width:760px;margin:0 auto}
.panel{display:none}
.panel.active{display:block}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:12px}
.row{display:flex;justify-content:space-between;align-items:center;gap:10px}
.node-name{font-weight:700;font-size:16px}
.dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:8px}
.on{background:var(--ok)}.off{background:var(--bad)}
.mut{color:var(--mut);font-size:12px;word-break:break-all}
.svc{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-top:1px solid var(--line);font-size:13px}
.btn{background:var(--card2);border:1px solid var(--line);color:var(--txt);border-radius:8px;padding:6px 10px;font-size:12px;font-weight:600}
.btn:active{transform:scale(.95)}
.btn.warn{border-color:var(--warn);color:var(--warn)}
.btn.danger{border-color:var(--bad);color:var(--bad)}
.kpi{display:flex;gap:10px;flex-wrap:wrap}
.kpi .card{flex:1;min-width:120px;margin:0 0 12px}
.kpi .n{font-size:26px;font-weight:800}
.kpi .l{color:var(--mut);font-size:12px}
.lead{display:flex;justify-content:space-between;padding:8px 0;border-top:1px solid var(--line);font-size:13px}
.score{font-weight:800;color:var(--acc)}
.alert{display:flex;gap:10px;padding:10px 0;border-top:1px solid var(--line);font-size:13px}
.alert .lvl{font-size:10px;font-weight:800;text-transform:uppercase;padding:2px 6px;border-radius:5px;height:fit-content}
.lvl.info{background:#16314f;color:var(--acc)}
.lvl.warn{background:#3a2e0c;color:var(--warn)}
.lvl.bad{background:#3a1414;color:var(--bad)}
.alert .ts{color:var(--mut);font-size:11px}
h3{font-size:13px;color:var(--mut);text-transform:uppercase;letter-spacing:.5px;margin:4px 0 10px}
.pill{display:inline-block;background:var(--card2);border:1px solid var(--line);border-radius:20px;padding:3px 10px;font-size:11px;margin:2px;color:var(--mut)}
#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--card2);border:1px solid var(--acc);color:var(--txt);padding:10px 18px;border-radius:10px;opacity:0;transition:.25s;pointer-events:none;z-index:9}
#toast.show{opacity:1}
