:root{--canvas: #010102;--surface-1: #0f1011;--surface-2: #141516;--surface-3: #18191a;--hairline: #23252a;--hairline-strong: #34343a;--ink: #f7f8f8;--ink-muted: #d0d6e0;--ink-subtle: #8a8f98;--ink-tertiary: #62666d;--primary: #5e6ad2;--primary-hover: #828fff;--success: #27a644;--danger: #e5484d;--warn: #d9a441;--radius: 8px;--font: "Inter", -apple-system, "Segoe UI", "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif}*{box-sizing:border-box}html,body{margin:0;background:var(--canvas);color:var(--ink);font-family:var(--font);font-size:14px;line-height:1.5}a{color:var(--primary-hover);text-decoration:none}h1{font-size:22px;font-weight:600;letter-spacing:-.4px;margin:0 0 16px}h2{font-size:15px;font-weight:600;margin:24px 0 10px;color:var(--ink-muted)}.muted{color:var(--ink-subtle)}.small{font-size:12px}.shell{display:grid;grid-template-columns:208px 1fr;min-height:100vh}.side{border-right:1px solid var(--hairline);padding:16px 10px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:2px}.brand{font-weight:600;padding:4px 10px 14px;letter-spacing:-.3px}.side a{color:var(--ink-subtle);padding:6px 10px;border-radius:6px}.side a:hover{background:var(--surface-2);color:var(--ink)}.side a.active{background:var(--surface-3);color:var(--ink)}.side .sep{margin:12px 10px 4px;font-size:11px;color:var(--ink-tertiary);text-transform:uppercase;letter-spacing:.6px}.side .foot{margin-top:auto;padding:8px 10px;font-size:12px;color:var(--ink-subtle)}.main{padding:28px 32px 64px;max-width:1100px;width:100%}.banner{background:#3a1517;border-bottom:1px solid #6b2226;color:#ffb4b7;padding:8px 16px;text-align:center}.card{background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--radius);padding:16px}.grid{display:grid;gap:12px}.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.spread{justify-content:space-between}.stat{font-size:26px;font-weight:600;letter-spacing:-.5px}label{display:block;font-size:12px;color:var(--ink-subtle);margin-bottom:4px}input,select,textarea{width:100%;background:var(--surface-2);color:var(--ink);border:1px solid var(--hairline-strong);border-radius:6px;padding:7px 10px;font:inherit;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--primary)}input[type=checkbox]{width:auto}textarea{resize:vertical;min-height:60px}.field{margin-bottom:12px}button,.btn{background:var(--surface-3);color:var(--ink);border:1px solid var(--hairline-strong);border-radius:6px;padding:7px 14px;font:inherit;cursor:pointer;display:inline-block}button:hover{border-color:var(--ink-tertiary)}button.primary{background:var(--primary);border-color:var(--primary);color:#fff}button.primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}button.danger{color:var(--danger)}button.ghost{background:transparent}button:disabled{opacity:.5;cursor:default}button.sm{padding:3px 8px;font-size:12px}table{width:100%;border-collapse:collapse}th{text-align:left;font-weight:500;font-size:12px;color:var(--ink-subtle);padding:8px 10px;border-bottom:1px solid var(--hairline)}td{padding:9px 10px;border-bottom:1px solid var(--hairline);vertical-align:top}tr:hover td{background:var(--surface-1)}.tag{display:inline-block;padding:1px 8px;border-radius:999px;font-size:11px;border:1px solid var(--hairline-strong);color:var(--ink-muted)}.tag.live{color:var(--success);border-color:#1d5a2c}.tag.short{color:var(--ink-muted)}.tag.mid{color:#9aa4ff;border-color:#3b4188}.tag.long{color:#c8a5ff;border-color:#55388a}.err{color:var(--danger);font-size:13px}.ok{color:var(--success);font-size:13px}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:grid;place-items:center;z-index:20;padding:16px}.modal{background:var(--surface-1);border:1px solid var(--hairline-strong);border-radius:12px;padding:20px;width:min(560px,100%);max-height:90vh;overflow:auto}.login{min-height:100vh;display:grid;place-items:center;padding:16px}.login .card{width:min(380px,100%)}.code{font:600 22px ui-monospace,Menlo,Consolas,monospace;letter-spacing:4px;background:var(--surface-3);padding:10px 14px;border-radius:6px;display:inline-block}svg text{fill:var(--ink-subtle);font-family:var(--font);font-size:11px}svg .strong{fill:var(--ink)}.filters>*{flex:1 1 150px;width:auto!important;min-width:0}.filters label.inline{display:flex;align-items:center;gap:6px;margin:0;color:var(--ink-subtle);flex:1 1 100%}.filters label.inline input{flex:1;min-width:0}.side .who{color:var(--ink-subtle);font-size:12px}@media (max-width: 760px){.shell{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr}.main{min-width:0}.card{overflow-x:auto}.main table{min-width:560px}.main .card table.narrow{min-width:0}.side{position:sticky;top:0;z-index:10;height:auto;background:var(--canvas);flex-direction:row;flex-wrap:nowrap;overflow-x:auto;align-items:center;align-content:flex-start;gap:4px;padding:8px;border-right:0;border-bottom:1px solid var(--hairline);-webkit-overflow-scrolling:touch;scrollbar-width:none}.side::-webkit-scrollbar{display:none}.side a{flex:none;white-space:nowrap;padding:8px 12px}.side .brand,.side .sep{display:none}.side .foot{flex:none;margin:0 0 0 auto;padding:0 4px;display:flex;align-items:center;gap:4px;white-space:nowrap}.side .who{display:none}.main{padding:16px}.cols-2,.cols-3{grid-template-columns:1fr}input,select,textarea{font-size:16px}.modal{padding:16px}.stat{font-size:22px}}
