:root{--bg:#f4f6f9;--card:#fff;--line:#e3e7ee;--text:#18202b;--muted:#6b7584;--brand:#1f6feb;--brand-soft:#e8f0fe;--good:#1f9d55;--slow:#d97706;--bad:#d64545;--idle:#c4cad3;--shadow:0 1px 2px #18202b0d,0 4px 16px #18202b0a}
@media (prefers-color-scheme:dark){:root{--bg:#12161c;--card:#1b2129;--line:#2a323d;--text:#e8edf3;--muted:#93a0b0;--brand:#5b9dff;--brand-soft:#1d2a3d;--good:#3cc47c;--slow:#f0a43a;--bad:#f06a6a;--idle:#3a4350;--shadow:none}}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;-webkit-text-size-adjust:100%}
main{max-width:520px;margin:0 auto;padding:max(24px,env(safe-area-inset-top)) 16px max(28px,env(safe-area-inset-bottom))}
.hero{display:flex;align-items:center;gap:14px;margin:8px 0 22px}
.hero h1{margin:0;font-size:22px;font-weight:700}.notice{margin:2px 0 0;color:var(--muted);font-size:13px}
.mark{width:46px;height:46px;flex:none;border-radius:14px;background:var(--brand);display:flex;align-items:flex-end;justify-content:center;gap:4px;padding-bottom:12px}
.mark i{width:5px;border-radius:2px;background:#fff}.mark i:nth-child(1){height:8px;opacity:.6}.mark i:nth-child(2){height:14px;opacity:.8}.mark i:nth-child(3){height:20px}
.tabs{display:flex;border-bottom:1px solid var(--line);margin-bottom:14px}
.tabs button{flex:1;min-height:44px;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;background:none;color:var(--muted);font:inherit;font-size:16px;cursor:pointer}
.tabs button[aria-selected=true]{color:var(--brand);border-bottom-color:var(--brand);font-weight:600}
.meta{display:flex;justify-content:space-between;color:var(--muted);font-size:13px;margin:0 2px 10px}
.status{margin:0 0 10px;padding:10px 12px;border-radius:10px;background:var(--brand-soft);color:var(--text);font-size:13px}.status:empty{display:none}
.lines{list-style:none;margin:0;padding:0;border-radius:14px;background:var(--card);box-shadow:var(--shadow);border:1px solid var(--line);overflow:hidden}
.lines li+li{border-top:1px solid var(--line)}
.lines a{display:flex;align-items:center;gap:14px;min-height:62px;padding:0 16px;color:var(--text);text-decoration:none}
.lines a:active{background:var(--brand-soft)}
.signal{display:flex;align-items:flex-end;gap:3px;width:22px;height:18px;flex:none}
.signal i{flex:1;border-radius:1.5px;background:var(--idle)}.signal i:nth-child(1){height:6px}.signal i:nth-child(2){height:11px}.signal i:nth-child(3){height:16px}
.good .signal i{background:var(--good)}.slow .signal i:nth-child(-n+2){background:var(--slow)}.bad .signal i:nth-child(1){background:var(--bad)}
.checking .signal i{animation:wait 1.2s infinite ease-in-out}.checking .signal i:nth-child(2){animation-delay:.15s}.checking .signal i:nth-child(3){animation-delay:.3s}
@keyframes wait{50%{background:var(--brand)}}
.name{flex:1;font-size:16px;font-weight:500}.ms{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.good .ms{color:var(--good)}.slow .ms{color:var(--slow)}.bad .ms{color:var(--bad)}.go{color:var(--idle);font-size:22px;line-height:1}
.empty{padding:22px 16px;color:var(--muted);text-align:center}
.actions{display:flex;gap:10px;margin:18px 0 22px}
.actions .primary,.actions .ghost{flex:1;min-height:46px;border-radius:12px;font:inherit;font-weight:600;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;text-decoration:none}
.primary{border:0;background:var(--brand);color:#fff}.primary:disabled{opacity:.55}.ghost{border:1px solid var(--line);background:var(--card);color:var(--text)}
.ghost[hidden]{display:none}
.mirrors{padding:14px 16px;border-radius:14px;background:var(--card);border:1px solid var(--line)}.mirrors h2{margin:0 0 2px;font-size:15px}.mirrors p{margin:0 0 6px;color:var(--muted);font-size:12px}
.mirrors a{display:block;padding:7px 0;color:var(--brand);word-break:break-all;font-size:14px}
