:root{
  --bg:#0f1216; --panel:#171b21; --panel2:#1e242c; --line:#2a323c;
  --fg:#e6edf3; --muted:#8b97a6; --accent:#4a9eff;
  --ok:#2ea043; --bad:#e5534b; --warn:#d29922; --probe:#a371f7;
}
@media (prefers-color-scheme: light){
  :root{ --bg:#f6f8fa; --panel:#fff; --panel2:#f0f3f6; --line:#d8dee4;
         --fg:#1f2328; --muted:#636c76; }
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);
  font:14px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif}
a{color:var(--accent);text-decoration:none} a:hover{text-decoration:underline}
main{max-width:1500px;margin:0 auto;padding:20px}
h1{font-size:20px;margin:14px 0 6px}
h2.grp{font-size:14px;text-transform:none;color:var(--muted);margin:26px 0 8px;
  border-bottom:1px solid var(--line);padding-bottom:6px;font-weight:600}
.mono{font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,monospace}
.small{font-size:12px}
.muted{color:var(--muted)}
.danger{color:var(--bad)}
.hot{color:var(--bad);font-weight:700}
.warn-t{color:var(--warn);font-weight:600}

/* 顶栏 */
.topbar{display:flex;align-items:center;gap:20px;padding:10px 20px;
  background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap}
.brand{font-weight:700} .logo{margin-right:4px}
.topbar nav{display:flex;gap:16px}
.topbar .right{margin-left:auto;display:flex;align-items:center;gap:14px}
.inline{display:inline}
.linkbtn{background:none;border:none;color:var(--accent);cursor:pointer;font-size:14px;padding:0}

/* 横幅 */
.banner{padding:10px 14px;border-radius:6px;margin:14px 20px}
.banner.err{background:rgba(229,83,75,.14);border:1px solid var(--bad)}

/* 卡片 */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:6px 0 4px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:14px 16px}
.card .num{font-size:28px;font-weight:700;font-family:ui-monospace,monospace}
.card .num small{font-size:14px;color:var(--muted)}
.card .lbl{color:var(--muted);font-size:12px;margin-top:2px}
.card.bad{border-color:var(--bad)} .card.bad .num{color:var(--bad)}
.card.good{border-color:var(--ok)}
.card.warn{border-color:var(--warn)} .card.warn .num{color:var(--warn)}

/* 表格 */
.grid{width:100%;border-collapse:collapse;background:var(--panel);
  border:1px solid var(--line);border-radius:8px;overflow:hidden;display:table}
.grid th,.grid td{padding:9px 11px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.grid thead th{background:var(--panel2);font-size:12px;color:var(--muted);font-weight:600;white-space:nowrap}
.grid tbody tr:last-child td{border-bottom:none}
.grid.compact th,.grid.compact td{padding:6px 10px}
.row-blocked{background:rgba(229,83,75,.07)}
.row-ours{background:rgba(210,153,34,.07)}
.row-probe{background:rgba(163,113,247,.07)}
.reason{color:var(--muted);font-size:12px;margin-top:3px;max-width:520px}
.pri{color:var(--muted);font-size:11px;margin-left:6px}

/* 标签 */
.badge{display:inline-block;padding:2px 8px;border-radius:99px;font-size:12px;white-space:nowrap;font-weight:600}
.sev-ok{background:rgba(46,160,67,.16);color:var(--ok);border:1px solid var(--ok)}
.sev-blocked{background:rgba(229,83,75,.16);color:var(--bad);border:1px solid var(--bad)}
.sev-ours{background:rgba(210,153,34,.16);color:var(--warn);border:1px solid var(--warn)}
.sev-probe{background:rgba(163,113,247,.16);color:var(--probe);border:1px solid var(--probe)}
.sev-unknown{background:var(--panel2);color:var(--muted);border:1px solid var(--line)}
.state{font-size:12px;color:var(--muted)}
.st-确认{color:var(--bad);font-weight:700}
.st-疑似{color:var(--warn);font-weight:600}
.st-恢复中{color:var(--accent)}
.st-正常{color:var(--ok)}

button.recheck{background:var(--panel2);border:1px solid var(--line);color:var(--fg);
  border-radius:5px;padding:3px 9px;cursor:pointer;font-size:12px;white-space:nowrap}
button.recheck:hover{border-color:var(--accent)}
button.recheck:disabled{opacity:.5;cursor:default}

/* 详情 */
.detail{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:16px;margin:12px 0}
.reason-lg{font-size:15px;margin:10px 0 14px}
.detail dl{display:grid;grid-template-columns:120px 1fr;gap:6px 14px;margin:0}
.detail dt{color:var(--muted);font-size:12px}
.detail dd{margin:0}
.prose p{max-width:900px;color:var(--fg)}
.prose strong{color:var(--fg)}

/* 登录 */
.loginwrap{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px}
.loginbox{background:var(--panel);border:1px solid var(--line);border-radius:10px;
  padding:32px;width:100%;max-width:360px;text-align:center}
.loginbox h1{font-size:17px;margin:6px 0 20px}
.logo-lg{font-size:40px}
.loginbox label{display:block;text-align:left;margin:12px 0;font-size:13px;color:var(--muted)}
.loginbox input{width:100%;margin-top:5px;padding:9px 11px;border-radius:6px;
  border:1px solid var(--line);background:var(--bg);color:var(--fg);font-size:14px}
.loginbox input:focus{outline:none;border-color:var(--accent)}
.loginbox button{width:100%;margin-top:16px;padding:10px;border:none;border-radius:6px;
  background:var(--accent);color:#fff;font-size:14px;font-weight:600;cursor:pointer}
.loginbox button:hover{filter:brightness(1.1)}
.loginbox .banner{margin:12px 0}

.foot{max-width:1500px;margin:30px auto 20px;padding:14px 20px;border-top:1px solid var(--line);
  display:flex;gap:20px;flex-wrap:wrap;font-size:12px;color:var(--muted)}

@media (max-width:820px){
  .grid{display:block;overflow-x:auto;white-space:nowrap}
  .detail dl{grid-template-columns:1fr}
}
