:root{--bg:#f2f2f7;--surface:#fff;--fg:#1c1c1e;--muted:#6c6c70;--line:#d8d8dd;--accent:#0a6cff;--accent-fg:#fff;--danger:#d70015;--warning-bg:#fff4d6;--warning-fg:#7a4d00;--font-brand:"JetBrains Mono", ui-monospace, Menlo, monospace;--font-body:-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--radius:12px}@media (prefers-color-scheme:dark){:root{--bg:#000;--surface:#1c1c1e;--fg:#f2f2f7;--muted:#98989f;--line:#38383a;--accent:#3d8bff;--danger:#ff453a;--warning-bg:#3a2c05;--warning-fg:#ffd36b}}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);font-family:var(--font-body);margin:0;font-size:15px;line-height:1.45}a{color:var(--accent)}.muted{color:var(--muted)}.brand{font-family:var(--font-brand);letter-spacing:-.05em;font-size:22px;font-weight:300}.offline-notice{background:var(--warning-bg);color:var(--warning-fg);padding:10px 24px;font-size:14px}.shell-header{justify-content:space-between;align-items:center;gap:16px;padding:14px 24px;display:flex}.shell-header nav{align-items:center;gap:16px;display:flex}.shell-main{max-width:960px;padding:8px 24px 48px}.page-title{color:var(--accent);margin:0 0 4px;font-size:34px}.panel{background:var(--surface);border-radius:var(--radius);margin-top:20px;padding:20px}.panel h2{margin:0 0 12px;font-size:17px}.auth{place-items:center;min-height:100vh;padding:24px 16px;display:grid}.auth-card{background:var(--surface);border-radius:16px;flex-direction:column;gap:14px;width:100%;max-width:400px;padding:28px;display:flex}.auth-card h1{margin:4px 0 0;font-size:24px}.auth-card p{margin:0}.divider{color:var(--muted);align-items:center;gap:10px;font-size:13px;display:flex}.divider:before,.divider:after{content:"";border-top:1px solid var(--line);flex:1}form{flex-direction:column;gap:12px;display:flex}.field{flex-direction:column;gap:4px;display:flex}.field label{color:var(--muted);font-size:13px}.field input,.field select{font:inherit;border:1px solid var(--line);background:var(--bg);color:var(--fg);border-radius:10px;padding:10px 12px}.field input:focus,.field select:focus{outline:2px solid var(--accent);outline-offset:1px}.field [aria-invalid=true]{border-color:var(--danger)}.field-error,.form-error{color:var(--danger);margin:0;font-size:13px}.hint{color:var(--muted);font-size:12px}.row{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.row .field{flex:1;min-width:180px}.btn{font:inherit;cursor:pointer;border:0;border-radius:999px;padding:10px 18px;font-weight:600}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--accent-fg)}.btn-secondary{background:var(--bg);color:var(--fg);border:1px solid var(--line)}.btn-danger{color:var(--danger);border:1px solid var(--danger);background:0 0}.btn-link{color:var(--accent);background:0 0;padding:0;font-weight:500}.list{margin:0;padding:0;list-style:none}.list li{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.list li:first-child{border-top:0}.list a{font-weight:600;text-decoration:none}.badge{color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:2px 8px;font-size:12px}.spinner{text-align:center;color:var(--muted);padding:40px}.qr{background:#fff;border-radius:8px;align-self:center;width:200px;height:200px;padding:8px}code.key{word-break:break-all;background:var(--bg);border-radius:8px;padding:8px;font-size:13px}.update-notice{background:var(--bg);border-bottom:1px solid var(--line);padding:8px 24px;font-size:14px}.brand-tag{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-left:8px;font-size:13px}.shell-header nav a{color:var(--muted);font-weight:600;text-decoration:none}.shell-header nav a.active{color:var(--accent)}
