:root{
  --bg:#0d1117; --card:#161b22; --line:#30363d; --fg:#e6edf3; --muted:#8b949e;
  --up:#2ea043; --down:#f85149; --accent:#3b82f6; --warn:#d29922;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);
  font:14px/1.5 -apple-system,Segoe UI,Roboto,"PingFang SC","Microsoft YaHei",sans-serif}
.muted{color:var(--muted);font-weight:400;font-size:12px}
a{color:var(--accent);text-decoration:none}

.topbar{display:flex;justify-content:space-between;align-items:center;
  padding:12px 20px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg);z-index:5}
.brand{font-size:16px;font-weight:600}
.topright{display:flex;align-items:center;gap:12px}
.badge{padding:3px 10px;border-radius:12px;font-size:12px;background:#21262d;border:1px solid var(--line)}
.badge.paper{background:#1f2937;color:var(--warn);border-color:var(--warn)}
.badge.live{background:#12261a;color:var(--up);border-color:var(--up)}
.badge.kill{background:#2d1416;color:var(--down);border-color:var(--down)}

main{padding:20px;max-width:1200px;margin:0 auto}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px}
@media(max-width:820px){.grid{grid-template-columns:repeat(2,1fr)}}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px;margin-bottom:14px}
.card .label{color:var(--muted);font-size:12px;margin-bottom:6px}
.card .big{font-size:24px;font-weight:700}
.card .sub{color:var(--muted);font-size:12px;margin-top:4px}
.card-head{font-weight:600;margin-bottom:10px;display:flex;gap:8px;align-items:baseline}

.pos{color:var(--up)} .neg{color:var(--down)}

.controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.switch{display:flex;align-items:center;gap:6px;color:var(--muted)}
.form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px}
@media(max-width:820px){.form-grid{grid-template-columns:repeat(2,1fr)}}
.form-grid label{display:flex;flex-direction:column;font-size:12px;color:var(--muted);gap:4px}
input,textarea{background:#0d1117;border:1px solid var(--line);color:var(--fg);
  border-radius:6px;padding:8px;font-size:13px;width:100%}
textarea{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;resize:vertical}

.btn{background:#21262d;border:1px solid var(--line);color:var(--fg);
  padding:8px 14px;border-radius:6px;cursor:pointer;font-size:13px}
.btn:hover{border-color:var(--accent)}
.btn.small{padding:4px 10px}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.danger{background:#2d1416;border-color:var(--down);color:var(--down)}
.btn.danger.active{background:var(--down);color:#fff}

table{width:100%;border-collapse:collapse;font-size:12px}
th,td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
th{color:var(--muted);font-weight:500}
tbody tr:hover{background:#1c2128}
.preview{background:#0d1117;border:1px solid var(--line);border-radius:6px;padding:10px;
  overflow:auto;max-height:260px;font-size:11px;color:var(--muted);margin-top:10px}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:820px){.two-col{grid-template-columns:1fr}}

/* login */
.login-body{display:flex;align-items:center;justify-content:center;height:100vh}
.login-card{background:var(--card);border:1px solid var(--line);border-radius:12px;
  padding:32px;width:320px;display:flex;flex-direction:column;gap:12px}
.login-card h1{font-size:18px;margin:0}
.err{color:var(--down);font-size:13px}

/* ===== 宽屏适配（4K / 5K / 超宽） =====
   1200px 以下保持原样。以上逐级放宽容器，并提高每行信息密度：
   状态卡 4->8 列、配置表单 4->8 列、风控与抓包并排。 */
.wide-two-col{display:block}

@media(min-width:1600px){
  main{max-width:1560px}
  .grid{grid-template-columns:repeat(8,1fr)}
  .form-grid{grid-template-columns:repeat(8,1fr)}
}
@media(min-width:2000px){
  main{max-width:1900px}
  .wide-two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
  .wide-two-col > .card{margin-bottom:0}
}
@media(min-width:2560px){
  main{max-width:2400px;padding:24px}
  body{font-size:15px}
  .card .big{font-size:28px}
  table{font-size:13px}
  .preview{max-height:340px}
}
@media(min-width:3400px){
  main{max-width:3000px}
}
