:root{--bg:#0f1218;--panel:#171b23;--line:#262c38;--text:#d9dee7;--mute:#8a93a3;--up:#20b26c;--down:#ef454a;--acc:#4c8dff;--warn:#e0a526}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}
.hidden{display:none!important}
header{display:flex;align-items:center;gap:16px;padding:10px 18px;border-bottom:1px solid var(--line);background:var(--panel);flex-wrap:wrap}
.brand{font-weight:600}.badge{font-size:12px;padding:2px 8px;border-radius:10px;margin-left:6px}.paper{background:#2a3d1f;color:#9be36b}
nav{display:flex;gap:4px;flex-wrap:wrap;flex:1}nav button{background:none;border:0;color:var(--mute);padding:6px 10px;border-radius:6px;cursor:pointer;font-size:14px}
nav button.on{background:#222938;color:var(--text)}.link{background:none;border:0;color:var(--acc);cursor:pointer}
.banner{background:#1d2a1a;color:#a9d98f;padding:6px 18px;font-size:12px}
main{padding:16px 18px;max-width:1500px;margin:0 auto}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-bottom:16px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px 12px}.card .k{color:var(--mute);font-size:12px}.card .v{font-size:20px;font-weight:600;margin-top:2px}
.up{color:var(--up)}.down{color:var(--down)}.mute{color:var(--mute)}.warn{color:var(--warn)}
h2{font-size:15px;margin:18px 0 8px}
table{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--line);border-radius:8px;overflow:hidden;font-size:13px}
th,td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}th{color:var(--mute);font-weight:500;background:#141821}
td.wrap{white-space:normal;max-width:520px}tr.click{cursor:pointer}tr.click:hover{background:#1c2230}
.tablewrap{overflow-x:auto}
canvas{width:100%;height:280px;background:var(--panel);border:1px solid var(--line);border-radius:8px}
.login{display:flex;align-items:center;justify-content:center;height:100vh}
.login form{background:var(--panel);border:1px solid var(--line);padding:28px;border-radius:10px;width:320px;display:flex;flex-direction:column;gap:10px}
.login h1{font-size:18px;margin:0 0 8px}input{background:#0f1218;border:1px solid var(--line);color:var(--text);padding:8px;border-radius:6px}
button[type=submit]{background:var(--acc);border:0;color:#fff;padding:9px;border-radius:6px;cursor:pointer}.err{color:var(--down);min-height:18px}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;justify-content:center;align-items:flex-start;overflow:auto;padding:30px 10px;z-index:9}
.modal-body{background:var(--panel);border:1px solid var(--line);border-radius:10px;max-width:1100px;width:100%;padding:16px 20px}
pre.report{white-space:pre-wrap;word-break:break-word;background:#11151c;border:1px solid var(--line);border-radius:6px;padding:10px;font:13px/1.55 ui-monospace,Menlo,Consolas,monospace;max-height:520px;overflow:auto}
details{margin:8px 0}summary{cursor:pointer;color:var(--acc)}
.pill{display:inline-block;padding:1px 8px;border-radius:10px;font-size:12px;background:#222938}
.pill.LONG{background:#173524;color:#5fdc98}.pill.SHORT{background:#3a1a1c;color:#ff8a8d}.pill.WAIT{background:#2a2a2a}.pill.CLOSE{background:#3a3016;color:#f0c75e}
.toolbar{display:flex;gap:8px;align-items:center;margin-bottom:8px}select{background:#0f1218;color:var(--text);border:1px solid var(--line);padding:4px 6px;border-radius:6px}
