:root{--bg:#f3f5f9;--surface:#fff;--border:#dfe4ec;--line:#edf0f4;--text:#1c2433;--muted:#667085;--accent:#2563eb;--accent-dark:#1d4fc4;--accent-soft:#e8effd;--good:#137a4b;--good-soft:#e3f5ec;--bad:#b42318;--bad-soft:#fdeceb;--warn:#a15c07;--warn-soft:#fdf2dc;--head:#f7f8fb;color:var(--text);font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:14px}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);margin:0}h1{margin:0;font-size:22px;font-weight:600}h2{margin:0;font-size:15px;font-weight:600}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code,.mono{font-family:Consolas,Cascadia Mono,monospace}.layout{min-height:100%;display:flex}.side{color:#d0d5dd;background:#101828;flex-direction:column;flex:none;width:212px;height:100vh;padding:18px 12px;display:flex;position:sticky;top:0}.brand{color:#fff;align-items:center;gap:10px;padding:0 8px 18px;font-size:16px;font-weight:600;display:flex}.brand-mark{background:var(--accent);border-radius:7px;place-items:center;width:28px;height:28px;font-size:15px;display:grid}.side a{color:#d0d5dd;border-radius:6px;margin-bottom:2px;padding:8px 10px;display:block}.side a:hover{background:#1d2939;text-decoration:none}.side a.active{color:#fff;background:#2563eb}.side-group{text-transform:uppercase;letter-spacing:.06em;color:#7c8798;padding:14px 10px 6px;font-size:11px}.side-foot{border-top:1px solid #27303f;margin-top:auto;padding:10px;font-size:12px}.side-foot .who{color:#fff;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.side-foot button{color:#98a2b3;cursor:pointer;background:0 0;border:0;min-height:0;padding:4px 0 0;font-size:12px}.side-foot button:hover{color:#fff;background:0 0}.main{flex:1;min-width:0;padding:22px 26px 40px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.muted{color:var(--muted)}.small{font-size:12px}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;margin-bottom:14px}.card-pad{padding:16px}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.grow{flex:1}.right{margin-left:auto}button,.btn{font:inherit;border:1px solid var(--border);background:var(--surface);min-height:32px;color:var(--text);cursor:pointer;border-radius:6px;padding:5px 12px}button:hover:not(:disabled){background:#f4f6fa}button:disabled{opacity:.55;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover:not(:disabled){background:var(--accent-dark)}button.danger{color:var(--bad)}button.link{color:var(--accent);background:0 0;border:0;min-height:0;padding:0}input,select,textarea{font:inherit;border:1px solid var(--border);color:var(--text);background:#fff;border-radius:6px;width:100%;padding:6px 9px}input[type=checkbox]{width:auto}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:2px solid #bcd0fa}label.field{margin-bottom:11px;display:block}label.field>span{color:var(--muted);margin-bottom:3px;font-size:12px;display:block}label.check{align-items:center;gap:6px;display:inline-flex}.grid2{grid-template-columns:1fr 1fr;gap:0 12px;display:grid}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th{text-align:left;color:var(--muted);background:var(--head);border-top:1px solid var(--border);border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 10px;font-size:12px;font-weight:600}td{border-bottom:1px solid var(--line);vertical-align:middle;padding:8px 10px}tr:last-child td{border-bottom:0}tbody tr.click{cursor:pointer}tbody tr.click:hover td{background:#f8fafd}td.msg{text-overflow:ellipsis;white-space:nowrap;max-width:420px;overflow:hidden}td.nowrap,th.nowrap{white-space:nowrap}td.center,th.center{text-align:center}.pill{background:var(--line);color:var(--muted);white-space:nowrap;border-radius:999px;padding:2px 9px;font-size:12px;font-weight:600;display:inline-block}.pill.good{background:var(--good-soft);color:var(--good)}.pill.bad{background:var(--bad-soft);color:var(--bad)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.info{background:var(--accent-soft);color:var(--accent)}.alert{border-radius:7px;margin-bottom:12px;padding:9px 12px}.alert.bad{background:var(--bad-soft);color:var(--bad)}.alert.warn{background:var(--warn-soft);color:var(--warn)}.alert.good{background:var(--good-soft);color:var(--good)}.alert.info{background:var(--accent-soft);color:#1d4fc4}.empty{text-align:center;color:var(--muted);padding:32px 16px}.dot{background:#98a2b3;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.dot.on{background:#12b76a}.dot.paused{background:#f79009}.tiles{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}.tile{background:var(--surface);border:1px solid var(--border);color:inherit;border-radius:10px;padding:14px 16px;display:block}.tile:hover{border-color:var(--accent);text-decoration:none}.tile-name{margin-bottom:8px;font-size:15px;font-weight:600}.tile-stats{color:var(--muted);gap:16px;font-size:13px;display:flex}.auth{place-items:center;min-height:100%;padding:20px;display:grid}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;width:100%;max-width:380px;padding:26px}.auth-card h1{margin-bottom:4px}.auth-card p{color:var(--muted);margin:0 0 16px}.auth-card button.primary{width:100%;min-height:38px;margin-top:4px}.qr{border-radius:6px;margin:0 auto 10px;display:block}.secret{text-align:center;word-break:break-all;margin-bottom:14px;font-size:12px}.backdrop{z-index:20;background:#10182873;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.dialog{background:var(--surface);border-radius:12px;width:100%;max-width:520px;max-height:calc(100vh - 32px);padding:20px;overflow:auto}.dialog.wide{max-width:860px}.dialog h2{margin-bottom:14px;font-size:17px}.dialog-foot{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.logs{color:#d0d5dd;white-space:pre-wrap;background:#101828;border-radius:8px;height:60vh;padding:12px;font-family:Consolas,monospace;font-size:12px;overflow:auto}.progress{background:var(--line);border-radius:3px;height:5px;margin-top:10px;overflow:hidden}.progress>div{background:var(--accent);height:100%;transition:width .2s}.code-box{letter-spacing:.08em;text-align:center;background:var(--accent-soft);color:var(--accent-dark);-webkit-user-select:all;user-select:all;border-radius:8px;padding:14px;font-family:Consolas,monospace;font-size:26px}.sticky-col{background:var(--surface);position:sticky;left:0}th.sticky-col{background:var(--head)}@media (width<=760px){.layout{flex-direction:column}.side{width:auto;height:auto;padding:10px 12px;position:static}.side nav{flex-wrap:wrap;gap:4px;display:flex}.side-group{display:none}.side-foot{margin-top:8px}.main{padding:16px}.grid2{grid-template-columns:1fr}}
