:root{--color-abyss-teal:#00262b;--color-botanical-teal:#0b363b;--color-sulfur-glow:#abffae;--color-rust-oxide:#8b3911;--color-cobalt-indigo:#0a3890;--color-patina-teal:#437278;--color-signal-blue:#006af2;--color-chalk:#ffffff;--color-bone:#fafafa;--color-graphite-hairline:#ebebeb;--color-slate-ink:#354d51;--color-dove:#4f6466;--color-sea-mist:#a1c2c6;--color-sky-tint:#e0f4ff;--color-cream-tint:#feefe8;--bg:var(--color-chalk);--surface:var(--color-chalk);--surface-2:var(--color-bone);--border:var(--color-graphite-hairline);--border-strong:var(--color-botanical-teal);--text:var(--color-abyss-teal);--text-muted:var(--color-dove);--primary:var(--color-abyss-teal);--primary-hover:var(--color-botanical-teal);--primary-fg:var(--color-chalk);--accent:var(--color-sulfur-glow);--danger:var(--color-rust-oxide);--danger-hover:#6f2d0e;--danger-fg:var(--color-chalk);--danger-text:var(--color-rust-oxide);--warning:var(--color-rust-oxide);--warning-text:var(--color-rust-oxide);--link:var(--color-botanical-teal);--focus:var(--color-abyss-teal);--focus-ring:rgba(0,38,43,0.14);--wash-warm:var(--color-cream-tint);--st-disconnected:var(--color-dove);--st-connecting:var(--color-cobalt-indigo);--st-qr:var(--color-cobalt-indigo);--st-connected:var(--color-patina-teal);--st-logged-out:var(--color-rust-oxide);--st-banned:var(--color-rust-oxide);--font:var(--font-inter,"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif);--fs-caption:0.75rem;--fs-body:1rem;--fs-h3:1.25rem;--fs-h2:1.5rem;--fs-h1:1.875rem;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--radius:2px;--radius-pill:2px;--radius-img:6px;--container:1120px}*{box-sizing:border-box}body,html{margin:0}body{font-family:var(--font);font-size:var(--fs-body);line-height:1.5;letter-spacing:.005em;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}h1,h2,h3{letter-spacing:.011em;font-weight:600;line-height:1.25}h1{font-size:var(--fs-h1)}h2{font-size:var(--fs-h2)}h3{font-size:var(--fs-h3)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:2px}.text-muted{color:var(--text-muted)}.link{color:var(--link);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}.link-muted{color:var(--text-muted);text-decoration:none}.link-muted:hover,.skip-link{color:var(--text)}.skip-link{position:absolute;left:-9999px;top:0;background:var(--surface);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border-strong);border-radius:var(--radius);z-index:100}.skip-link:focus{left:var(--sp-3);top:var(--sp-3)}.container,.page{max-width:var(--container);margin:0 auto;padding:var(--sp-5) var(--sp-4)}@media (min-width:768px){.container,.page{padding:var(--sp-6) var(--sp-5)}}.stack{display:flex;flex-direction:column;gap:var(--sp-3)}.row,.row-between{display:flex;align-items:center;gap:var(--sp-3)}.row-between{justify-content:space-between}.wrap{flex-wrap:wrap}.app-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-5);height:64px;padding:0 var(--sp-5);background:var(--surface);border-bottom:1px solid var(--border)}.app-nav{display:flex;gap:var(--sp-4);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;max-width:100%}.app-nav::-webkit-scrollbar{display:none}@media (min-width:768px){.app-nav{gap:var(--sp-5)}}.app-nav a{color:var(--text-muted);text-decoration:none;padding:var(--sp-2) 0;border-bottom:2px solid transparent;white-space:nowrap}.app-nav a:hover{color:var(--text)}.app-nav a[aria-current=page]{color:var(--text);border-bottom-color:var(--accent)}.app-nav .nav-divider{flex-shrink:0;align-self:center;width:1px;height:16px;background:var(--border)}.tabs{display:flex;gap:var(--sp-4);border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none;margin:var(--sp-4) 0 var(--sp-5)}.tabs::-webkit-scrollbar{display:none}.tab{background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;padding:var(--sp-2) var(--sp-1);color:var(--text-muted);font:inherit;font-weight:500;white-space:nowrap;cursor:pointer}.tab:hover{color:var(--text)}.tab[aria-selected=true]{color:var(--text);border-bottom-color:var(--accent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5);border-radius:var(--radius);border:1px solid transparent;font-family:inherit;font-size:var(--fs-body);font-weight:500;letter-spacing:.005em;cursor:pointer;transition:background .12s ease,box-shadow .12s ease,opacity .12s ease}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);color:var(--primary-fg);box-shadow:0 0 0 3px var(--accent)}.btn-primary:hover:not(:disabled){background:var(--primary-hover);box-shadow:0 0 0 4px var(--accent)}.btn-danger{background:var(--danger);color:var(--danger-fg)}.btn-danger:hover:not(:disabled){background:var(--danger-hover)}.btn-ghost{background:transparent;color:var(--text);border-color:var(--border-strong)}.btn-ghost:hover:not(:disabled){background:var(--surface-2)}.btn-danger-ghost{background:transparent;color:var(--danger-text);border-color:var(--danger-text)}.btn-danger-ghost:hover:not(:disabled){background:var(--wash-warm)}.btn-sm{padding:var(--sp-1) var(--sp-3);font-size:var(--fs-caption)}.btn-sm.btn-primary{box-shadow:0 0 0 2px var(--accent)}.field{display:flex;flex-direction:column;gap:var(--sp-1)}.field-label{font-size:var(--fs-caption);color:var(--text-muted);letter-spacing:.01em}.input,.select{padding:var(--sp-2) var(--sp-3);border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-family:inherit;font-size:var(--fs-body)}.input::placeholder{color:var(--color-sea-mist)}.input:focus-visible,.select:focus-visible{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px var(--focus-ring)}.input[aria-invalid=true]{border-color:var(--danger-text)}.field-error{color:var(--danger-text)}.field-error,.field-hint{font-size:var(--fs-caption)}.field-hint{color:var(--text-muted)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--sp-5)}.list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--sp-2)}.list-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap;padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--radius)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.badge{display:inline-flex;align-items:center;gap:var(--sp-1);padding:2px 8px;border-radius:var(--radius-pill);border:1px solid;font-size:var(--fs-caption);letter-spacing:.01em}.callout{display:flex;gap:var(--sp-2);padding:var(--sp-3);border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2)}.callout-warning{border-color:var(--warning);background:var(--wash-warm)}.callout-danger{border-color:var(--danger-text);color:var(--danger-text);background:var(--wash-warm)}.toaster{position:fixed;bottom:var(--sp-4);right:var(--sp-4);flex-direction:column;z-index:50;max-width:min(380px,calc(100vw - 32px))}.toast,.toaster{display:flex;gap:var(--sp-2)}.toast{align-items:flex-start;padding:var(--sp-3);border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:0 8px 24px rgba(0,38,43,.1)}.toast-success{border-left:3px solid var(--color-patina-teal)}.toast-error{border-left:3px solid var(--danger-text)}.toast-info{border-left:3px solid var(--color-cobalt-indigo)}.dialog-backdrop{position:fixed;inset:0;background:rgba(0,38,43,.45);display:flex;align-items:center;justify-content:center;padding:var(--sp-4);z-index:60}.dialog{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--sp-5);max-width:420px;width:100%;display:flex;flex-direction:column;gap:var(--sp-4);box-shadow:0 12px 32px rgba(0,38,43,.12)}.spinner{width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--text);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2s}.btn{transition:none}}.skeleton{background:linear-gradient(90deg,var(--surface-2) 25%,var(--color-graphite-hairline) 50%,var(--surface-2) 75%);background-size:200% 100%;animation:shimmer 1.3s infinite;border-radius:var(--radius)}@keyframes shimmer{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}@media (max-width:560px){.app-header,.form-inline,.row{flex-wrap:wrap}.app-header{height:auto;padding:var(--sp-3) var(--sp-4)}}:root[data-theme=dark]{color-scheme:dark;--bg:#04181b;--surface:#06262b;--surface-2:#0b363b;--border:#143e44;--border-strong:#2f6068;--text:#eaf6f2;--text-muted:#a1c2c6;--primary:var(--color-sulfur-glow);--primary-hover:#c7ffc9;--primary-fg:var(--color-abyss-teal);--accent:var(--color-sulfur-glow);--danger:#c2542a;--danger-hover:#a8461a;--danger-fg:#ffffff;--danger-text:#e8a07e;--warning:#e8a07e;--warning-text:#e8a07e;--link:#a1c2c6;--focus:var(--color-sulfur-glow);--focus-ring:rgba(171,255,174,0.22);--wash-warm:#2a1c12;--st-disconnected:#a1c2c6;--st-connecting:#8fb3ff;--st-qr:#8fb3ff;--st-connected:var(--color-sulfur-glow);--st-logged-out:#e8a07e;--st-banned:#e8a07e}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#04181b;--surface:#06262b;--surface-2:#0b363b;--border:#143e44;--border-strong:#2f6068;--text:#eaf6f2;--text-muted:#a1c2c6;--primary:var(--color-sulfur-glow);--primary-hover:#c7ffc9;--primary-fg:var(--color-abyss-teal);--accent:var(--color-sulfur-glow);--danger:#c2542a;--danger-hover:#a8461a;--danger-fg:#ffffff;--danger-text:#e8a07e;--warning:#e8a07e;--warning-text:#e8a07e;--link:#a1c2c6;--focus:var(--color-sulfur-glow);--focus-ring:rgba(171,255,174,0.22);--wash-warm:#2a1c12;--st-disconnected:#a1c2c6;--st-connecting:#8fb3ff;--st-qr:#8fb3ff;--st-connected:var(--color-sulfur-glow);--st-logged-out:#e8a07e;--st-banned:#e8a07e}}:root[data-theme=dark] .btn-primary,:root[data-theme=dark] .btn-sm.btn-primary{box-shadow:0 0 0 3px rgba(171,255,174,.22)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .btn-primary,:root:not([data-theme=light]) .btn-sm.btn-primary{box-shadow:0 0 0 3px rgba(171,255,174,.22)}}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_8b3a0b{font-family:Inter,Inter Fallback;font-style:normal}.__variable_8b3a0b{--font-inter:"Inter","Inter Fallback"}