:root{--bg:#0b0e14;--panel:#141925;--panel-2:#1b2230;--border:#232c3d;--ink:#e6edf3;--muted:#8b97a8;--green:#2ea043;--amber:#d29922;--red:#f85149;--blue:#4493f8;--accent:#58a6ff}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);margin:0;padding:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Noto Sans TC,sans-serif;font-size:14px}.wrap{max-width:1280px;margin:0 auto;padding:24px 20px 64px}header.top{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:20px;display:flex}header.top h1{letter-spacing:.3px;margin:0;font-size:20px}.sub{color:var(--muted);font-size:12px}.agg{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:24px;display:grid}.stat{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:14px 16px}.stat .k{color:var(--muted);text-transform:uppercase;letter-spacing:.6px;font-size:11px}.stat .v{margin-top:4px;font-size:26px;font-weight:600}.stat .v small{color:var(--muted);font-size:13px;font-weight:400}.grid{grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px;display:grid}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px}.card.down{border-color:color-mix(in srgb, var(--red) 55%, var(--border))}.card.parked{opacity:.5;border-style:dashed}.pill.parked{color:var(--amber);border-color:color-mix(in srgb, var(--amber) 45%, var(--border))}.card-head{align-items:center;gap:10px;margin-bottom:12px;display:flex}.dot{border-radius:50%;flex:none;width:10px;height:10px}.dot.green{background:var(--green);box-shadow:0 0 8px color-mix(in srgb, var(--green) 70%, transparent)}.dot.amber{background:var(--amber);box-shadow:0 0 8px color-mix(in srgb, var(--amber) 70%, transparent)}.dot.red{background:var(--red);box-shadow:0 0 8px color-mix(in srgb, var(--red) 70%, transparent)}.card-head .name{font-size:15px;font-weight:600}.card-head .url{color:var(--muted);font-size:11px}.rows{grid-template-columns:1fr 1fr;gap:10px 18px;display:grid}.metric .lab{color:var(--muted);font-size:11px}.metric .val{margin-top:1px;font-size:15px;font-weight:500}.bar{background:var(--panel-2);border-radius:4px;height:6px;margin-top:5px;overflow:hidden}.bar>span{border-radius:4px;height:100%;display:block}.spark-row{border-top:1px solid var(--border);grid-template-columns:1fr 1fr;gap:10px 18px;margin-top:14px;padding-top:12px;display:grid}.spark .lab{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;justify-content:space-between;font-size:10px;display:flex}.err{color:var(--red);word-break:break-word;margin-top:10px;font-size:12px}.muted{color:var(--muted)}.empty{background:var(--panel);border:1px dashed var(--border);text-align:center;color:var(--muted);border-radius:12px;padding:40px}.pill{border:1px solid var(--border);color:var(--muted);border-radius:999px;margin-left:auto;padding:1px 7px;font-size:10px}.hdr-right{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.btn{border:1px solid var(--border);background:var(--panel-2);color:var(--ink);cursor:pointer;border-radius:8px;padding:5px 12px;font-size:12px;transition:border-color .15s,color .15s}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:disabled{opacity:.6;cursor:default}.btn.warn{border-color:var(--amber);color:var(--amber)}.panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;margin-bottom:24px;padding:14px 16px 8px}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.panel-title{letter-spacing:.3px;font-size:14px;font-weight:600}.seg{border:1px solid var(--border);border-radius:8px;display:inline-flex;overflow:hidden}.seg button{background:var(--panel-2);color:var(--muted);border:none;border-left:1px solid var(--border);cursor:pointer;padding:4px 12px;font-size:12px}.seg button:first-child{border-left:none}.seg button.on{background:color-mix(in srgb, var(--accent) 22%, var(--panel-2));color:var(--ink)}.seg button:hover:not(.on){color:var(--ink)}.chart-legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:14px;margin:8px 0 4px;font-size:11px;display:flex}.seg.sm button{padding:3px 10px;font-size:11px}.chart-legend i,.chart-tip i{vertical-align:middle;border-radius:2px;width:9px;height:9px;margin-right:5px;display:inline-block}.chart-legend b{color:var(--ink);margin-left:3px;font-weight:600}.chart-tip{pointer-events:none;background:var(--panel-2);border:1px solid var(--border);white-space:nowrap;border-radius:8px;padding:6px 9px;font-size:11px;line-height:1.6;position:absolute;box-shadow:0 4px 14px #0006}.chart-tip .t{margin-bottom:2px;font-weight:600}
