:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d1220;--bg-2:#131a2d;--surface:#182139;--surface-2:#212c4a;--border:#2d3a5e;--text:#e9edf7;--muted:#9eaac6;--accent:#39d98a;--accent-strong:#2bc47a;--accent-ink:#052414;--red:#e8574f;--red-ink:#2a0a08;--blue:#4a8fe6;--blue-ink:#06162b;--warn:#f5b84a;--danger:#ff6b6b;--focus:#9cc2ff;--radius:12px;--radius-sm:8px;--tap:44px;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--shadow:0 10px 30px #00000073}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;margin:0;font-size:16px;line-height:1.45}h1,h2,h3,p{margin:0}a{color:inherit}ul,ol{margin:0;padding:0;list-style:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}kbd{border:1px solid var(--border);background:var(--surface-2);font-family:var(--mono);border-bottom-width:3px;border-radius:6px;padding:2px 8px;font-size:.9em;display:inline-block}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{z-index:100;border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-ink);padding:10px 16px;font-weight:700;text-decoration:none;position:absolute;top:-64px;left:8px}.skip-link:focus{top:8px}.muted{color:var(--muted)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.btn{min-height:var(--tap);min-width:var(--tap);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);justify-content:center;align-items:center;gap:8px;padding:0 16px;font-weight:600;line-height:1.1;text-decoration:none;transition:background .12s,border-color .12s,transform 60ms;display:inline-flex}.btn:hover:not(:disabled){background:#2a3760;border-color:#41578c}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5}.btn--primary{background:var(--accent);border-color:var(--accent-strong);color:var(--accent-ink)}.btn--primary:hover:not(:disabled){border-color:var(--accent);background:#52e79c}.btn--danger{color:#ffd0d0;border-color:#7a3040}.btn--danger:hover:not(:disabled){border-color:var(--danger);background:#4b2330}.btn--red{border-color:var(--red)}.btn--blue{border-color:var(--blue)}.btn--ghost{background:0 0;border-color:#0000}.btn--icon{padding:0;font-size:20px}.btn--small{padding:0 12px;font-size:.9rem}.btn--block{justify-content:flex-start;width:100%;display:flex}.btn--hero{border-radius:var(--radius);min-height:64px;padding:0 32px;font-size:1.35rem}.btn--key{min-width:64px;font-family:var(--mono)}.btn--key.is-capturing{border-color:var(--warn);color:var(--warn)}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field--narrow{flex:none;width:7.5rem}.field--inline{min-width:11rem}.field__label{color:var(--muted);font-size:.9rem;font-weight:600}.field__hint{color:var(--muted);font-size:.82rem}.field__error{color:var(--danger);font-size:.85rem}.input{width:100%;min-height:var(--tap);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);padding:8px 12px}.input::placeholder{color:#6d7a9a}.input[aria-invalid=true]{border-color:var(--danger)}select.input{appearance:auto}.check{flex-direction:column;display:flex}.check__label{min-height:var(--tap);cursor:pointer;align-items:center;gap:10px;display:flex}.check__box{width:24px;height:24px;accent-color:var(--accent);flex:none;margin:0}.check__hint{margin:-6px 0 6px 34px}.radio{min-height:var(--tap);cursor:pointer;align-items:center;gap:10px;display:flex}.radio input{width:22px;height:22px;accent-color:var(--accent);margin:0}.range{align-items:center;gap:12px;display:flex}.range__input{min-height:var(--tap);accent-color:var(--accent);flex:1}.range__value{text-align:right;font-variant-numeric:tabular-nums;min-width:3.5em}.fieldset{border:1px solid var(--border);border-radius:var(--radius-sm);margin:16px 0 0;padding:12px 16px}.fieldset legend{padding:0 6px;font-weight:600}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;display:grid}.form-grid__wide{grid-column:1/-1}.form-grid__checks{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;display:grid}.form-actions{justify-content:flex-end;gap:12px;display:flex}.nick-fields{align-items:flex-start;gap:12px;display:flex}.nick-fields__nick{flex:1}.card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;gap:16px;padding:20px;display:flex}.card__title{font-size:1.05rem}.alert{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-2);flex-direction:column;gap:2px;padding:10px 14px;display:flex}.alert--error{background:#3a1d28;border-color:#7a3040}.chip{background:var(--surface-2);color:var(--muted);border-radius:999px;align-items:center;padding:2px 10px;font-size:.82rem;display:inline-flex}.badge{background:var(--surface-2);border-radius:6px;align-items:center;padding:0 6px;font-size:.7rem;font-weight:700;line-height:1.5;display:inline-flex}.badge--admin{color:var(--warn)}.badge--bot{color:#b9a8ff;text-transform:uppercase}.badge--off{color:var(--danger)}.avatar{color:#fff;background:#6b7894;border:2px solid #10151f;border-radius:50%;flex:none;place-items:center;width:26px;height:26px;font-size:.72rem;font-weight:800;display:inline-grid}.avatar--red{background:var(--red)}.avatar--blue{background:var(--blue)}.spinner{border:4px solid #fff3;border-top-color:var(--accent);border-radius:50%;width:36px;height:36px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.lang{border:1px solid var(--border);border-radius:var(--radius-sm);display:inline-flex;overflow:hidden}.lang__btn{min-width:var(--tap);min-height:var(--tap);color:var(--muted);background:0 0;border:0;padding:0 12px;font-weight:700}.lang__btn[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}.modal-backdrop{z-index:200;background:#04070eb3;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:min(100%,440px);max-height:calc(100dvh - 32px);box-shadow:var(--shadow);flex-direction:column;display:flex}.modal--wide{width:min(100%,720px)}.modal__head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:12px 12px 12px 20px;display:flex}.modal__title{font-size:1.1rem}.modal__body{padding:16px 20px;overflow-y:auto}.modal__foot{border-top:1px solid var(--border);justify-content:flex-end;gap:12px;padding:12px 20px;display:flex}.menu{flex-direction:column;gap:8px;display:flex}.toasts{z-index:9;pointer-events:none;flex-direction:column;align-items:center;gap:8px;max-width:calc(100% - 24px);display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.toast{min-height:var(--tap);border:2px solid var(--border);box-shadow:var(--shadow);pointer-events:auto;background:#0d1220eb;border-radius:999px;padding:8px 20px;font-size:1.05rem;font-weight:800;animation:.2s ease-out toast-in}.toast--red{border-color:var(--red)}.toast--blue{border-color:var(--blue)}.toast--error{border-color:var(--danger);font-weight:600}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)scale(.96)}}.overlay{z-index:8;background:#080c16c7;flex-direction:column;justify-content:center;align-items:center;gap:16px;font-size:1.1rem;display:flex;position:absolute;inset:0}.banner{z-index:8;text-align:center;padding:10px 16px;font-weight:600;position:absolute;top:0;left:0;right:0}.banner--warn{background:var(--warn);color:#2a1c00}.shell{background:radial-gradient(1200px 500px at 50% -10%, #39d98a1f, transparent 60%), var(--bg);flex-direction:column;min-height:100%;display:flex}.shell__header{border-bottom:1px solid var(--border);background:#131a2dd9;flex-wrap:wrap;align-items:center;gap:8px 20px;padding:8px 20px;display:flex}.brand{min-height:var(--tap);letter-spacing:.02em;align-items:center;gap:10px;font-size:1.2rem;font-weight:800;text-decoration:none;display:inline-flex}.brand__ball{width:22px;height:22px;box-shadow:0 0 0 3px var(--red);background:radial-gradient(circle at 35% 30%,#fff,#c9d4ea 60%,#8e9bb8);border-radius:50%}.shell__nav{flex-wrap:wrap;flex:1;gap:4px;display:flex}.nav-link{min-height:var(--tap);border-radius:var(--radius-sm);color:var(--muted);align-items:center;padding:0 14px;font-weight:600;text-decoration:none;display:inline-flex}.nav-link:hover{color:var(--text);background:var(--surface)}.nav-link.active{color:var(--text);background:var(--surface-2)}.shell__main{outline:none;flex:1}.page{width:min(100%,1040px);margin:0 auto;padding:24px 20px 48px}.page--narrow{width:min(100%,760px)}.page--center{place-items:center;min-height:100%;display:grid}.page__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 24px;margin-bottom:20px;display:flex}.page__title{font-size:1.8rem;line-height:1.2}.page__subtitle{color:var(--muted);margin-top:4px}.page__actions{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.page>.alert,.page>.muted{margin-bottom:16px}.empty{border:1px dashed var(--border);border-radius:var(--radius);text-align:center;flex-direction:column;align-items:center;gap:8px;padding:40px 16px;display:flex}.empty p{color:var(--muted);margin-bottom:8px}.home{flex-direction:column;gap:24px;width:min(100%,760px);margin:0 auto;padding:32px 20px 48px;display:flex}.hero{border:1px solid var(--border);background:linear-gradient(135deg, #e8574f24, transparent 40%), linear-gradient(225deg, #4a8fe629, transparent 45%), var(--surface);border-radius:20px;flex-direction:column;gap:16px;padding:28px;display:flex}.hero__title{font-size:clamp(2rem,6vw,3rem);line-height:1.1}.hero__subtitle{color:var(--muted)}.hero__form{flex-direction:column;gap:14px;display:flex}.hero__links{flex-wrap:wrap;gap:10px;display:flex}.controls__list{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:0;display:grid}.controls__list dt{color:var(--muted);margin-bottom:4px;font-size:.85rem}.controls__list dd{margin:0}.table-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow-x:auto}.rooms-table{border-collapse:collapse;width:100%}.rooms-table th,.rooms-table td{text-align:left;vertical-align:middle;padding:10px 14px}.rooms-table thead th{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border);font-size:.8rem}.rooms-table tbody tr+tr td{border-top:1px solid var(--border)}.rooms-table__name{font-weight:700}.rooms-table__name .lock{margin-right:6px}.rooms-table__action{text-align:right!important}.ping{font-variant-numeric:tabular-nums;background:var(--surface-2);border-radius:999px;padding:0 8px;font-size:.8rem;display:inline-block}.ping--good{color:var(--accent)}.ping--ok{color:var(--warn)}.ping--bad{color:var(--danger)}.ping--unknown{color:var(--muted)}.create{gap:20px}.settings{flex-direction:column;gap:16px;display:flex}.settings__footer{justify-content:flex-end;display:flex}.keys{flex-direction:column;gap:12px;display:flex}.keys__list{flex-direction:column;gap:8px;display:flex}.keys__row{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:6px 0;display:flex}.keys__action{min-width:6rem;font-weight:600}.keys__codes{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.keys__chip{align-items:center;display:inline-flex}.error-card{text-align:center;align-items:center;max-width:460px}.error-card__title{font-size:1.5rem}.error-card__actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.turnstile:empty{display:none}.match{background:#090d18;flex-direction:column;display:flex;position:fixed;inset:0}.match__top{z-index:10;border-bottom:1px solid var(--border);background:var(--bg-2);grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;padding:6px 12px;display:grid;position:relative}.match__left{align-items:center;gap:8px;display:flex}.match__right{justify-content:flex-end;align-items:center;gap:8px;display:flex}.match__sub{border-bottom:1px solid var(--border);background:var(--bg);flex-wrap:wrap;align-items:center;gap:8px 12px;padding:4px 12px;font-size:.9rem;display:flex}.match__name{font-weight:700}.match__copied{min-height:1.2em;color:var(--accent);font-size:.85rem}.match__body{flex:1;grid-template-columns:minmax(0,1fr) clamp(340px,30vw,440px);min-height:0;display:grid;position:relative}.match__stage{background:#090d18;min-width:0;min-height:0;position:relative}.viewport{touch-action:none;-webkit-user-select:none;user-select:none;position:absolute;inset:0;overflow:hidden}.viewport canvas{width:100%;height:100%;display:block}.match__side{border-left:1px solid var(--border);background:var(--bg-2);flex-direction:column;gap:14px;min-height:0;padding:12px;display:flex;overflow-y:auto}.match__scrim{z-index:40;background:#0000008c;position:fixed;inset:0}.match__side-close{align-self:flex-end}.panel__title{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-size:.8rem;font-weight:700}.scoreboard{text-align:center;justify-self:center}.scoreboard__row{font-variant-numeric:tabular-nums;justify-content:center;align-items:center;gap:10px;display:flex}.scoreboard__score{min-width:var(--tap);border-radius:var(--radius-sm);color:#fff;padding:0 12px;font-size:1.9rem;font-weight:800;line-height:1.3}.scoreboard__score--red{background:var(--red)}.scoreboard__score--blue{background:var(--blue)}.scoreboard__time{min-width:4.6ch;font-size:1.5rem;font-weight:700}.scoreboard__meta{min-height:22px;color:var(--muted);justify-content:center;align-items:center;gap:8px;font-size:.78rem;display:flex}.phase-badge{background:var(--surface-2);color:var(--text);border-radius:999px;padding:1px 10px;font-weight:700}.phase-badge--0{color:var(--muted)}.phase-badge--1{color:var(--focus)}.phase-badge--3,.phase-badge--4{background:var(--accent);color:var(--accent-ink)}.phase-badge--paused{background:var(--warn);color:#2a1c00}.hud-bottom{z-index:6;pointer-events:none;position:absolute;bottom:14px;left:14px}.boost{background:#090d18b8;border-radius:999px;align-items:center;gap:10px;padding:6px 16px 6px 6px;display:flex}.boost__ring{width:52px;height:52px}.boost__track{fill:none;stroke:#ffffff29;stroke-width:5px}.boost__fill{fill:none;stroke:var(--accent);stroke-width:5px;stroke-linecap:round;transition:stroke-dashoffset .1s linear}.boost--charging .boost__fill{stroke:#6aa8ff}.boost--active .boost__fill{stroke:#ffd24a;filter:drop-shadow(0 0 6px #ffd24a)}.boost__text{flex-direction:column;line-height:1.2;display:flex}.boost__label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.7rem;font-weight:700}.boost__status{font-size:.9rem;font-weight:700}.boost__pips{gap:4px;display:flex}.boost__pip{border:2px solid var(--muted);border-radius:50%;width:10px;height:10px}.boost__pip.is-full{background:var(--accent);border-color:var(--accent)}.netstats{z-index:7;border-radius:var(--radius-sm);font-family:var(--mono);pointer-events:none;background:#090d18b3;flex-direction:column;gap:6px;padding:6px 10px;font-size:.72rem;display:flex;position:absolute;top:8px;right:8px}.netstats__list{grid-template-columns:auto auto;gap:2px 14px;margin:0;display:grid}.netstats__list>div{display:contents}.netstats dt{color:var(--muted)}.netstats dd{text-align:right;font-variant-numeric:tabular-nums;margin:0}.netstats__report{pointer-events:auto;font-family:var(--font)}.chat-overlay{z-index:5;pointer-events:none;text-shadow:0 1px 3px #000;flex-direction:column;gap:2px;max-width:min(72%,440px);font-size:.85rem;display:none;position:absolute;bottom:84px;left:14px}.admin-tools{flex-direction:column;gap:6px;display:flex}.admin-bar{flex-wrap:wrap;gap:8px;display:flex}.players__cols{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.team-col{border-top:3px solid var(--muted);border-radius:var(--radius-sm);background:var(--surface);flex-direction:column;gap:6px;min-width:0;padding:8px;display:flex}.team-col--red{border-top-color:var(--red)}.team-col--blue{border-top-color:var(--blue)}.team-col.is-drop-target{outline:2px dashed var(--accent);outline-offset:-2px}.team-col__head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px;display:flex}.team-col__title{font-size:.85rem}.team-col__count{color:var(--muted);font-weight:400}.team-col__list{flex-direction:column;gap:6px;min-height:44px;display:flex}.player{background:var(--bg-2);border-radius:6px}.player.is-me{outline:1px solid var(--accent)}.player.is-disconnected{opacity:.55}.player[draggable=true]{cursor:grab}.player__main{width:100%;min-width:0;color:inherit;text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;padding:4px 6px;display:flex}.player__main--button{min-height:var(--tap);cursor:pointer}.player__main--button:hover{background:var(--surface-2)}.player__body{flex-direction:column;min-width:0;display:flex}.player__name{text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;font-weight:600;overflow:hidden}.player__you{color:var(--muted);font-weight:400}.player__badges{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.player__ping{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.7rem}.player__ping--good{color:var(--accent)}.player__ping--fair{color:var(--warn)}.player__ping--bad{color:var(--danger);font-weight:700}.players__hint{color:var(--muted);margin-top:8px;font-size:.78rem}.match__side>*{flex-shrink:0}.chat{flex-direction:column;flex:190px;min-height:190px;display:flex}.chat__log{border-radius:var(--radius-sm);background:#00000047;flex:1;min-height:120px;padding:8px 10px;font-size:.9rem;overflow-y:auto}.chat__line{overflow-wrap:anywhere;padding:1px 0}.chat__nick{color:var(--focus);font-weight:700}.chat__nick:after{content:": "}.chat__line--own .chat__nick{color:var(--accent)}.chat__line--system{color:var(--muted);font-style:italic}.chat__line--red{color:#ff9a93}.chat__line--blue{color:#9cc4ff}.chat__empty{color:var(--muted)}.chat__form{gap:8px;margin-top:8px;display:flex}.chat__hint{color:var(--muted);margin-top:4px;font-size:.78rem}@media (width<=1023px){.match__body{grid-template-columns:minmax(0,1fr)}.match__side{z-index:50;border-left:1px solid var(--border);width:min(92vw,420px);box-shadow:var(--shadow);visibility:hidden;transition:transform .2s ease-out;position:fixed;top:0;bottom:0;right:0;transform:translate(105%)}.match__side.is-open{visibility:visible;transform:none}.chat-overlay{display:flex}.hud-bottom{left:50%;transform:translate(-50%)}}@media (width<=720px){.shell__header{padding:6px 12px}.page,.home{padding-left:16px;padding-right:16px}.hero{padding:18px}.form-grid,.form-grid__checks{grid-template-columns:minmax(0,1fr)}.nick-fields{flex-wrap:wrap}.page__title{font-size:1.5rem}.btn__label{display:none}.match__top{grid-template-columns:auto 1fr auto;padding:4px 8px}.scoreboard__score{font-size:1.5rem}.scoreboard__time{font-size:1.2rem}.table-wrap{background:0 0;border:0}.rooms-table thead{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;overflow:hidden}.rooms-table,.rooms-table tbody{display:block}.rooms-table tr{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);grid-template-columns:1fr 1fr;gap:6px 12px;margin-bottom:12px;padding:12px;display:grid}.rooms-table td{padding:0;display:block;border:0!important}.rooms-table td:before{content:attr(data-label);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.7rem;display:block}.rooms-table td.rooms-table__name{grid-column:1/-1;font-size:1.1rem}.rooms-table td.rooms-table__name:before{display:none}.rooms-table td.rooms-table__action{grid-column:1/-1;text-align:stretch!important}.rooms-table td.rooms-table__action:before{display:none}.rooms-table td.rooms-table__action .btn{width:100%}}@media (orientation:landscape) and (height<=520px){.match__top{pointer-events:none;background:linear-gradient(#090d18d9,#0000);border:0;padding:2px 8px;position:absolute;top:0;left:0;right:0}.match__top .btn{pointer-events:auto;background:#182139cc}.match__sub{display:none}.match__body{position:absolute;inset:0}.scoreboard__row{gap:6px}.scoreboard__score{font-size:1.2rem;line-height:1.2}.scoreboard__time{font-size:1rem}.scoreboard__meta{min-height:0}.hud-bottom{bottom:6px}.chat-overlay{bottom:70px}}.stack{flex-direction:column;gap:16px;display:flex}.section{flex-direction:column;gap:12px;margin-top:24px;display:flex}.section__title{font-size:1.15rem}.form-actions--start{flex-wrap:wrap;justify-content:flex-start}.alert--ok{background:#15342a;border-color:#2b6b4a}.alert--warn{background:#38301a;border-color:#7a6130}.alert__detail{font-family:var(--mono);overflow-wrap:anywhere;white-space:pre-wrap;background:#0000004d;border-radius:6px;margin-top:4px;padding:6px 8px;font-size:.85rem;display:block}.field__hint--error{color:var(--danger)}.input--code{font-family:var(--mono);tab-size:2;resize:vertical;white-space:pre;font-size:.88rem;line-height:1.45;overflow:auto}.chip--mode{color:var(--accent);vertical-align:middle;margin-left:8px}.stat-row{grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:12px;margin:0;display:grid}.stat-row dt{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.78rem}.stat-row dd{font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:1.4rem;font-weight:800}.rating-hero{align-items:baseline;gap:12px;display:flex}.rating-hero__label{color:var(--muted);font-weight:600}.rating-hero__value{color:var(--accent);font-variant-numeric:tabular-nums;font-size:2.6rem;font-weight:800;line-height:1}.account-chip{border:1px solid var(--border);gap:8px;min-width:0;max-width:14rem}.shell__nav .nav-link{padding:0 10px}.account-chip__text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.account-chip__dot{background:var(--muted);border-radius:50%;flex:none;width:10px;height:10px}.account-chip[data-state=ready] .account-chip__dot{background:var(--accent)}.account-chip[data-state=invalid] .account-chip__dot{background:var(--danger)}.account-chip[data-state=guest]{color:var(--text);border-color:var(--accent-strong)}.rooms-table tr.is-me td{background:#39d98a14}.rooms-table .rank,.rooms-table .rating{font-variant-numeric:tabular-nums;font-weight:800}.rooms-table .rank{width:4rem}.rooms-table__name .chip{margin-left:8px}.replay-room{color:var(--muted);font-size:.85rem;font-weight:500;display:block}.score{font-variant-numeric:tabular-nums;font-weight:800}.score--red,.replay-players__red{color:#ff9a93}.score--blue,.replay-players__blue{color:#9cc4ff}.replay-players{flex-wrap:wrap;align-items:center;gap:2px 6px;display:inline-flex}.filters{flex-wrap:wrap;align-items:flex-end;gap:12px 16px;margin-bottom:20px;display:flex}.filters__room{flex:12rem;min-width:12rem;max-width:20rem}.segmented{border:0;flex-wrap:wrap;gap:4px;margin:0;padding:0;display:flex}.segmented legend{color:var(--muted);margin-bottom:6px;padding:0;font-size:.9rem;font-weight:600}.segmented__option{min-height:var(--tap);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);cursor:pointer;align-items:center;padding:0 16px;font-weight:600;display:inline-flex;position:relative}.segmented__option input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.segmented__option:has(input:checked){border-color:var(--accent-strong);background:var(--accent);color:var(--accent-ink)}.segmented__option:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.mode-picker{flex-direction:column;gap:4px;margin:0;display:flex}.mode-option{min-height:var(--tap);cursor:pointer;align-items:flex-start;gap:12px;padding:8px 4px;display:flex}.mode-option input{width:22px;height:22px;accent-color:var(--accent);flex:none;margin:2px 0 0}.mode-option__text{flex-direction:column;gap:2px;display:flex}.mode-option__name{font-weight:700}.custom-stadium{flex-direction:column;gap:8px;margin:0;display:flex}.custom-stadium__current{font-weight:600}.gallery{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:16px;display:grid}.gallery__card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;gap:10px;padding:12px;display:flex}.gallery__card.is-selected{border-color:var(--accent);box-shadow:0 0 0 2px #39d98a59}.gallery__preview{border-radius:var(--radius-sm);background:#0a0f1c;place-items:center;min-height:100px;display:grid;position:relative;overflow:hidden}.gallery__canvas{width:100%;height:auto;display:block}.gallery__preview[data-status=loading] .gallery__canvas,.gallery__preview[data-status=failed] .gallery__canvas{visibility:hidden}.gallery__preview-note{text-align:center;color:var(--muted);place-items:center;padding:8px;font-size:.85rem;display:grid;position:absolute;inset:0}.gallery__body{flex-direction:column;gap:2px;min-width:0;display:flex}.gallery__name{overflow-wrap:anywhere;font-size:1.05rem}.gallery__meta{color:var(--muted);overflow-wrap:anywhere;font-size:.85rem}.gallery__meta a,.rooms-table__name a{min-width:var(--tap);min-height:var(--tap);align-items:center;display:inline-flex}.gallery__meta a{color:var(--focus)}.replay__meta{flex-wrap:wrap;gap:6px;display:flex}.replay__stage{aspect-ratio:16/9;border:1px solid var(--border);border-radius:var(--radius);background:#0a0f1c;width:100%;max-height:70dvh;margin:0 auto 12px;position:relative;overflow:hidden}.replay__canvas{width:100%;height:100%;display:block}.replay__score{flex-wrap:wrap;align-items:center;gap:8px 16px;margin-bottom:12px;display:flex}.replay__scoreline{font-variant-numeric:tabular-nums;font-size:1.4rem;font-weight:800}.verify{border:1px solid var(--border);background:var(--surface-2);min-height:28px;color:var(--muted);border-radius:999px;align-items:center;padding:0 12px;font-size:.85rem;font-weight:700;display:inline-flex}.verify--ok{border-color:var(--accent-strong);color:var(--accent)}.verify--fail{color:var(--warn);background:#38301a;border-color:#7a6130}.replay__controls{gap:12px}.replay__transport{flex-wrap:wrap;align-items:center;gap:12px 16px;display:flex}.replay__play{min-width:8.5rem}.timeline{--thumb:20px;flex:14rem;min-width:0;position:relative}.timeline__slider{width:100%;min-height:var(--tap);accent-color:var(--accent);background:0 0;margin:0;display:block}.timeline__marks{pointer-events:none;height:10px;position:absolute;top:2px;left:0;right:0}.timeline__mark{width:4px;height:10px;top:0;left:calc(var(--thumb) / 2 + (100% - var(--thumb)) * var(--at,0));background:var(--muted);border-radius:2px;margin-left:-2px;position:absolute}.timeline__mark--red{background:var(--red)}.timeline__mark--blue{background:var(--blue)}.replay__time{text-align:right;font-variant-numeric:tabular-nums;min-width:6.5rem;color:var(--muted)}.replay__options{flex-wrap:wrap;align-items:flex-end;gap:12px 24px;display:flex}.replay__speeds{flex-wrap:wrap;gap:6px;display:flex}.replay__follow{min-width:12rem}.replay__goals{flex-wrap:wrap;gap:8px;display:flex}.replay__goal--red{border-color:var(--red)}.replay__goal--blue{border-color:var(--blue)}.script-log__list{border-radius:var(--radius-sm);max-height:14rem;font-family:var(--mono);background:#00000059;padding:8px 10px;font-size:.82rem;overflow-y:auto}.script-log__line{align-items:baseline;gap:8px;padding:1px 0;display:flex}.script-log__level{min-width:3.5em;color:var(--muted);flex:none;font-weight:700}.script-log__line--error .script-log__level,.script-log__line--error .script-log__text{color:var(--danger)}.script-log__text{overflow-wrap:anywhere;white-space:pre-wrap}.script-log__empty{color:var(--muted)}.chat__line--room{border-left:3px solid var(--warn);color:#ffe2a8;background:#f5b84a1a;border-radius:0 6px 6px 0;margin:2px 0;padding:4px 8px;font-weight:600}.chat__line--replay a{color:var(--accent);font-weight:700}@media (width<=720px){.shell__header{gap:8px 10px}.shell__nav{scrollbar-width:none;flex-wrap:nowrap;flex:1 0 100%;order:3;overflow-x:auto}.shell__nav::-webkit-scrollbar{display:none}.shell__nav .nav-link{white-space:nowrap;flex:none}.account-chip{gap:6px;max-width:6.8rem;margin-left:auto;padding:0 8px;font-size:.9rem}.replay__stage{max-height:56dvh}.replay__transport{flex-direction:column;align-items:stretch}.timeline{flex:none}.replay__time{text-align:left}.replay__play{width:100%}.replay__speeds .btn{flex:1}.replay__follow{flex:100%}.gallery{grid-template-columns:minmax(0,1fr)}.filters__room{max-width:none}}.details{padding:0}.details__summary{min-height:var(--tap);cursor:pointer;align-items:center;padding:0 16px;font-size:1.05rem;font-weight:700;display:flex}.details__body{flex-direction:column;gap:14px;padding:0 16px 16px;display:flex}.keys__lag{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 16px;padding:6px 0;display:flex}.keys__lag-hint{flex-basis:100%}.field__label .chip{margin-left:8px}.chip--ok{color:var(--accent);background:#15342a}.chip--warn{color:var(--warn);background:#38301a}.rtt-warning{z-index:7;color:#2a1c00;background:#f5b84aeb;justify-content:center;align-items:center;gap:8px;padding:0 8px 0 16px;font-size:.9rem;font-weight:600;display:flex;position:absolute;top:0;left:0;right:0}.rtt-warning__text{padding:6px 0}.rtt-warning__close{color:inherit}.rtt-warning~.toasts{top:56px}.rtt-warning~.netstats{top:52px}@media (orientation:landscape) and (height<=520px){.rtt-warning{top:44px}}.advice{flex-direction:column;gap:8px;padding:12px;display:flex}.advice__list{flex-direction:column;gap:2px;font-size:.88rem;display:flex}.advice .btn{align-self:flex-start}.relocate__target{overflow-wrap:anywhere;margin-top:8px;font-weight:600}
