:root{--bg:#0d0f12;--fg:#d7dbe0;--mut:#7d8590;--line:#ffffff14;--acc:#e8922c;--red:#ff4a3d;--ok:#52c48a;--cy:#6fb6d9}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);height:100%;color:var(--fg);font:12px/1.5 PingFang SC,Noto Sans CJK SC,Microsoft YaHei,system-ui,sans-serif;overflow:hidden}#app{position:fixed;inset:0}.glass{-webkit-backdrop-filter:blur(18px)saturate(140%);background:#16191e6b;border:1px solid #ffffff12;border-radius:6px;position:fixed;box-shadow:0 8px 30px #00000059,inset 0 1px #ffffff0a}.top{align-items:center;gap:28px;height:44px;padding:0 16px;display:flex;top:12px;left:12px;right:12px}.brand{letter-spacing:.5px;align-items:center;gap:8px;font-size:13px;display:flex}.brand b{color:var(--acc);font-weight:600}.brand i{color:var(--mut);font-style:normal}.logo{border:1.5px solid var(--acc);border-radius:2px;width:14px;height:14px;position:relative}.logo:after{content:"";background:var(--acc);position:absolute;inset:3px}nav{gap:4px;display:flex}nav a{color:var(--mut);cursor:pointer;border-radius:3px;padding:4px 12px}nav a.on{color:var(--fg);background:#ffffff0f}.meta{color:var(--mut);font-variant-numeric:tabular-nums;align-items:center;gap:8px;margin-left:auto;display:flex}.dot{border-radius:50%;width:6px;height:6px;display:inline-block}.dot.ok{background:var(--ok)}.dot.warn{background:var(--acc)}.dot.err{background:var(--red);box-shadow:0 0 6px var(--red)}.left{flex-direction:column;width:236px;padding:12px;display:flex;top:68px;bottom:76px;left:12px}.ph{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:6px;font-size:12px;display:flex}.ph em{color:var(--mut);letter-spacing:1px;font-size:10px;font-style:normal}.ph.sub{margin-top:10px}#q{border:1px solid var(--line);color:var(--fg);font:inherit;background:#00000040;border-radius:3px;outline:none;margin-bottom:8px;padding:5px 8px}#tree{scrollbar-width:thin;scrollbar-color:#333 transparent;flex:1;overflow:auto}.node{cursor:pointer;color:#b9bec5;white-space:nowrap;border-radius:3px;align-items:center;gap:6px;padding:3px 6px;display:flex}.node:hover{background:#ffffff0d}.node.sel{color:#fff;background:#e8922c24}.node .car{width:10px;color:var(--mut);font-size:9px}.node .n{flex:1}.node .v{color:var(--mut);font-variant-numeric:tabular-nums;font-size:10px}.grp>.kids{padding-left:12px}.grp.closed>.kids{display:none}#agents .ag{border-bottom:1px dashed var(--line);gap:8px;padding:6px 0;display:flex}#agents .ag b{font-weight:500}#agents .ag small{color:var(--mut);font-size:10px;display:block}.title{pointer-events:none;position:fixed;top:80px;left:268px}.crumb{color:var(--mut);font-size:11px}.title h1{letter-spacing:1px;margin:2px 0;font-size:26px;font-weight:500}.title p{color:var(--mut)}.right{scrollbar-width:none;width:320px;padding:14px;top:68px;bottom:76px;right:12px;overflow:auto}.right h2{font-size:15px;font-weight:500}.right .sub{color:var(--mut);margin-bottom:10px;font-size:11px}.kpis{background:var(--line);border:1px solid var(--line);border-radius:4px;grid-template-columns:repeat(3,1fr);gap:1px;margin:10px 0 14px;display:grid;overflow:hidden}.kpi{background:#1012168c;padding:8px}.kpi s{color:var(--mut);font-size:10px;text-decoration:none;display:block}.kpi b{font-variant-numeric:tabular-nums;font-size:18px;font-weight:500}.kpi u{color:var(--mut);margin-left:2px;font-size:10px;text-decoration:none}.card{margin-bottom:14px}.card .hd{color:#aeb4bb;justify-content:space-between;margin-bottom:4px;display:flex}.card .hd em{color:var(--mut);font-size:10px;font-style:normal}svg.ch{width:100%;height:78px;display:block}svg.ch .g{stroke:#ffffff0f;stroke-width:1px}svg.ch .l{fill:none;stroke-width:1.2px;vector-effect:non-scaling-stroke}svg.ch text{fill:#6b727b;font-size:9px}.u{grid-template-columns:repeat(2,1fr);gap:2px 10px;display:grid}.u div{color:#9aa1a9;border-bottom:1px solid var(--line);justify-content:space-between;padding:3px 0;display:flex}.u div b{color:var(--fg);font-weight:400}.bar{background:#ffffff12;border-radius:2px;height:3px;margin-top:4px}.bar i{background:var(--acc);border-radius:2px;height:100%;display:block}.alarm{color:#ffb3ad;background:#ff4a3d14;border:1px solid #ff4a3d59;border-radius:4px;margin-bottom:12px;padding:8px}.alarm b{color:var(--red)}.rk{grid-template-columns:repeat(42,1fr);gap:1px;margin-top:4px;display:grid}.slots{border:1px solid var(--line);border-radius:3px;flex-direction:column-reverse;gap:1px;padding:3px;display:flex}.slots i{background:#ffffff0a;height:5px}.slots i.s{background:#4a5059}.slots i.h{background:var(--acc)}.slots i.e{background:var(--red)}.tools{gap:2px;padding:4px;display:flex;bottom:84px;left:50%;transform:translate(-50%)}.tools button{color:var(--mut);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:3px;padding:6px 12px}.tools button:hover{color:var(--fg)}.tools button.on{color:#111;background:var(--acc)}.legend{color:var(--mut);align-items:center;gap:8px;padding:6px 10px;font-size:10px;display:none;bottom:84px;left:268px}.legend i{background:linear-gradient(90deg,#2b6f9e,#3ea58a,#d9b13b,#e8722c,#ff3b30);border-radius:1px;width:120px;height:6px}.bottom{white-space:nowrap;align-items:center;gap:22px;height:52px;padding:0 16px;display:flex;bottom:12px;left:12px;right:12px;overflow:hidden}.bottom .st{flex-direction:column;display:flex}.bottom .st s{color:var(--mut);font-size:10px;text-decoration:none}.bottom .st b{font-variant-numeric:tabular-nums;font-size:15px;font-weight:500}.bottom .sep{background:var(--line);width:1px;height:26px}.bottom .ev{color:#9aa1a9;font-size:11px}.bottom .ev em{color:var(--acc);margin-right:6px;font-style:normal}.lbl{pointer-events:none;-webkit-backdrop-filter:blur(10px);border:1px solid #ffffff1a;border-left:2px solid var(--acc);color:var(--fg);white-space:nowrap;background:#1214188c;border-radius:3px;padding:5px 9px;font-size:11px;transform:translateY(-14px)}.lbl b{font-weight:500}.lbl small{color:var(--mut);font-size:10px;display:block}.lbl.err{border-left-color:var(--red)}.tag{pointer-events:none;color:var(--mut);letter-spacing:1px;border:1px solid var(--line);background:#0a0c0e80;border-radius:2px;padding:1px 6px;font-size:10px}
