:root{--bg:#0f1115;--panel:#171a21;--panel2:#1e222b;--line:#2a2f3a;--text:#e6e8ee;--muted:#8b93a7;--acc:#4f8cff;--ok:#2fbf71;--warn:#f0a020;--bad:#ef4f4f;--oc:#7c5cff;--wb:#18a999}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}
a{color:var(--acc)}.muted{color:var(--muted)}.center{max-width:420px;margin:12vh auto;padding:0 16px}.hidden{display:none!important}
header{display:flex;align-items:center;gap:16px;padding:12px 20px;border-bottom:1px solid var(--line);background:var(--panel);position:sticky;top:0;z-index:5}
header h1{font-size:16px;margin:0;font-weight:600}nav{display:flex;gap:4px;flex:1}nav button{background:none;border:0;color:var(--muted);padding:6px 12px;border-radius:6px;cursor:pointer;font-size:14px}
nav button.on{background:var(--panel2);color:var(--text)}main{max-width:1180px;margin:0 auto;padding:20px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px;margin-bottom:16px}.card h2{font-size:15px;margin:0 0 12px;display:flex;align-items:center;gap:8px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
input,select,textarea{background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:6px;padding:7px 9px;font:inherit}input:focus,select:focus{outline:1px solid var(--acc)}
button.btn{background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:6px;padding:6px 12px;cursor:pointer;font:inherit}button.btn:hover{border-color:var(--acc)}
button.pri{background:var(--acc);border-color:var(--acc);color:#fff}button.danger{color:var(--bad)}button.sm{padding:3px 8px;font-size:12px}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row+.row{margin-top:8px}.sp{flex:1}
.tag{display:inline-block;font-size:11px;padding:1px 7px;border-radius:10px;font-weight:600}.tag.oc{background:#7c5cff26;color:#a996ff}.tag.wb{background:#18a99926;color:#3fd1bf}.tag.off{background:#ef4f4f22;color:var(--bad)}.tag.ok{background:#2fbf7122;color:var(--ok)}
.bar{height:8px;background:var(--panel2);border-radius:4px;overflow:hidden;margin:4px 0 2px}.bar>i{display:block;height:100%;background:var(--ok)}.bar>i.w{background:var(--warn)}.bar>i.b{background:var(--bad)}
.win{margin-bottom:10px}.win .lbl{display:flex;justify-content:space-between;font-size:13px}.small{font-size:12px}
.key{font-family:ui-monospace,Consolas,monospace;font-size:12px;background:var(--panel2);padding:3px 7px;border-radius:5px;word-break:break-all}
table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:500;font-size:12px}
.lim{display:flex;gap:6px;align-items:center;margin-bottom:6px}.lim input.n{width:70px}.lim input.v{width:100px}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--panel2);border:1px solid var(--line);padding:10px 16px;border-radius:8px;z-index:50;max-width:90vw}
.toast.err{border-color:var(--bad);color:#ffb3b3}pre{background:var(--panel2);padding:10px;border-radius:6px;overflow:auto;font-size:12px;max-height:340px;white-space:pre-wrap}
.sub{border-top:1px dashed var(--line);margin-top:12px;padding-top:12px}.tabs2{display:flex;gap:6px;margin-bottom:16px}.tabs2 button.on{border-color:var(--acc)}
.big{font-size:22px;font-weight:600}.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 14px}
