:root{color-scheme:light dark;--color-bg: #eef1f4;--color-surface: #ffffff;--color-surface-muted: #f7f9fb;--color-surface-sunken: #f5f6f7;--color-surface-sunken-strong: #e4e9ef;--color-surface-inverse: #223042;--color-text: #17202a;--color-muted: #636f7e;--color-label: #52606f;--color-text-faint: #6c7784;--color-on-dark: #e9eef3;--color-on-dark-muted: #bfc8d2;--color-on-accent: #ffffff;--color-border: #dce1e7;--color-border-strong: #8796a8;--color-border-soft: #cfd7e2;--color-border-muted: #8a95a3;--color-primary: #17202a;--color-primary-hover: #253140;--color-ink: #17202a;--color-on-ink: #ffffff;--color-on-primary: #ffffff;--color-focus: #6293d1;--color-accent: #2f7d68;--color-danger: #912018;--color-discord: #5865f2;--color-discord-bg: #eef0ff;--color-discord-text: #3442c7;--tone-success-bg: #e5f3ee;--tone-success-bg-soft: #f4fbf8;--tone-success-text: #21715e;--tone-success-text-strong: #185746;--tone-success-border: #b7d9ce;--tone-success-border-strong: #8ab4a6;--tone-success-on-dark: #7fd3bb;--tone-danger-bg: #fee4e2;--tone-danger-bg-soft: #fff7f6;--tone-danger-text: #ca2a1e;--tone-danger-text-strong: #b42318;--tone-danger-border: #fecdca;--tone-danger-border-strong: #f0b8b3;--tone-danger-on-dark: #ffd6d3;--tone-warning-bg: #ffe9d6;--tone-warning-bg-soft: #fff6ed;--tone-warning-bg-strong: #fff0c7;--tone-warning-text: #a04414;--tone-warning-text-strong: #8f3a11;--tone-warning-text-alt: #7a4b00;--tone-warning-border: #d96b2b;--tone-warning-border-soft: #f0c7a8;--tone-warning-on-dark: #f0a86e;--tone-info-bg: #e5f0ff;--tone-info-bg-soft: #f1f7ff;--tone-info-text: #245fa3;--tone-info-border: #3b78c2;--tone-info-border-soft: #b9d4f4;--radius-sm: 6px;--radius-md: 8px;--page-max-width: 1240px;--space-1: 6px;--space-2: 8px;--space-3: 10px;--space-4: 12px;--space-5: 16px;--space-6: 20px;color:var(--color-text);background:var(--color-bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}@media(prefers-color-scheme:dark){:root{--color-bg: #11161d;--color-surface: #181f28;--color-surface-muted: #1e2630;--color-surface-sunken: #222b36;--color-surface-sunken-strong: #2b3542;--color-surface-inverse: #0c1117;--color-text: #e7edf4;--color-muted: #9aa7b5;--color-label: #b3c0ce;--color-text-faint: #7c8896;--color-on-dark: #e9eef3;--color-on-dark-muted: #b0bcc9;--color-border: #2b3542;--color-border-strong: #596b82;--color-border-soft: #333e4b;--color-border-muted: #66727f;--color-primary: #e7edf4;--color-primary-hover: #ffffff;--color-ink: #2a3542;--color-on-ink: #eef3f9;--color-on-primary: #10161d;--color-focus: #7ba7dd;--color-accent: #58b299;--color-danger: #f0736a;--color-discord: #5865f2;--color-discord-bg: #262b57;--color-discord-text: #c3c8ff;--tone-success-bg: #163a31;--tone-success-bg-soft: #14302a;--tone-success-text: #7fd3bb;--tone-success-text-strong: #a6e3d0;--tone-success-border: #2c5a4d;--tone-success-border-strong: #3d7566;--tone-danger-bg: #45211f;--tone-danger-bg-soft: #3a1c1a;--tone-danger-text: #f6867c;--tone-danger-text-strong: #ffa39b;--tone-danger-border: #6b2f2b;--tone-danger-border-strong: #8a3b36;--tone-danger-on-dark: #ffd6d3;--tone-warning-bg: #472e18;--tone-warning-bg-soft: #3a2614;--tone-warning-bg-strong: #4a3a12;--tone-warning-text: #f0a86e;--tone-warning-text-strong: #ffc08c;--tone-warning-text-alt: #e8c56a;--tone-warning-border: #8a5326;--tone-warning-border-soft: #6d431f;--tone-info-bg: #1c3350;--tone-info-bg-soft: #182b42;--tone-info-text: #8ec0f5;--tone-info-border: #3a6ca8;--tone-info-border-soft: #2f5580}}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select{font:inherit}button{align-items:center;background:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--radius-sm);color:var(--color-on-primary);cursor:pointer;display:inline-flex;font-weight:750;gap:var(--space-2);justify-content:center;min-height:36px;padding:var(--space-2) var(--space-4)}button:where(:hover):not(:disabled){background:var(--color-primary-hover)}button:disabled{background:var(--color-border);border-color:var(--color-border);color:var(--color-text-faint);cursor:not-allowed;opacity:1}.secondaryButton,.iconButton{background:var(--color-bg);border-color:var(--color-border-soft);color:var(--color-text)}.secondaryButton:hover,.iconButton:hover{background:var(--color-surface-sunken-strong)}.dangerButton{background:var(--color-surface);border-color:var(--tone-danger-border-strong);color:var(--color-danger)}.dangerButton:hover{background:var(--tone-danger-bg)}input,select{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text);min-height:42px;padding:9px 10px;width:100%}input[aria-invalid=true],select[aria-invalid=true]{border-color:var(--tone-danger-text);box-shadow:inset 3px 0 0 var(--tone-danger-text)}input:focus,select:focus,button:focus{outline:2px solid var(--color-focus);outline-offset:2px}label{color:var(--color-label);display:grid;font-size:13px;font-weight:750;gap:6px}h1,h2,h3,p{margin:0}h1{font-size:26px;letter-spacing:0}h2{font-size:18px;letter-spacing:0}h3{font-size:14px;letter-spacing:0}.appShell{min-height:100vh;padding:16px}.appHeader{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;display:grid;gap:16px;grid-auto-columns:auto;grid-auto-flow:column;grid-template-columns:minmax(180px,1fr);margin:0 auto;max-width:var(--page-max-width);padding:16px 18px}.appHeader.rulesHeader{grid-template-columns:minmax(180px,1fr) auto}.eyebrow,.muted,small{color:var(--color-muted)}.eyebrow{font-size:12px;font-weight:850;text-transform:uppercase}.headerStats,.headerActions,.iconRow,.phaseButtons,.scoreStrip,.setupActions,.wizardFooter,.roleSummary{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.headerStats span,.scoreStrip span{background:var(--color-bg);border:1px solid var(--color-border);border-radius:999px;color:var(--color-text);font-size:13px;font-weight:800;padding:7px 10px}.setupLayout{display:grid;margin:22px auto 0;max-width:980px}.onlineEntry,.onlineHostSetup,.playerRoom{display:grid;gap:14px;margin:16px auto 0;width:100%}.onlineEntry{align-content:center;max-width:min(430px,calc(100vw - 32px));min-height:calc(100vh - 32px);padding-bottom:4vh;position:relative}.discordLogin{background:var(--color-discord);border-radius:7px;color:var(--color-on-accent);font-size:13px;font-weight:850;padding:9px 12px;text-decoration:none}.authProfile{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;display:inline-flex;gap:8px;padding:7px}.authProfile img,.authProfile>span{border-radius:50%;height:28px;width:28px}.authProfile>span{background:var(--color-primary);color:var(--color-on-primary);display:grid;font-weight:850;place-items:center}.authProfile button{min-height:28px;padding:4px 8px}.onlineHostSetup{align-items:start;grid-template-columns:minmax(0,1fr) minmax(300px,380px);max-width:var(--page-max-width)}.playerRoom{max-width:var(--page-max-width)}.waitingRoom{display:grid;gap:14px;margin:16px auto 0;max-width:980px;width:100%}.waitingHero{align-items:center;background:var(--color-ink);border-radius:8px;color:var(--color-on-ink);display:grid;gap:16px;grid-template-columns:minmax(0,1fr) auto;padding:20px}.waitingHero .eyebrow,.waitingHero p{color:var(--color-on-dark-muted)}.waitingHero h1{font-size:28px}.waitingHero p{margin-top:6px}.waitingHeroAside{align-items:center;display:flex;gap:var(--space-2)}.hostBadge{align-items:center;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:999px;display:flex;gap:var(--space-2);max-width:100%;min-width:0;padding:5px 12px 5px 5px}.hostBadgeAvatar{align-items:center;background:#ffffff24;border-radius:50%;color:var(--color-on-dark);display:flex;flex:0 0 auto;font-size:13px;font-weight:850;height:30px;justify-content:center;width:30px}.hostBadgeText{display:grid;min-width:0}.hostBadgeText span{color:var(--color-on-dark-muted);font-size:10px;font-weight:850;letter-spacing:.04em;text-transform:uppercase}.hostBadgeText strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hostBadgeState{border-radius:999px;flex:0 0 auto;font-size:11px;font-weight:800;padding:2px 8px}.hostBadge.online .hostBadgeState{color:var(--tone-success-on-dark)}.hostBadge.offline .hostBadgeState{color:var(--tone-warning-on-dark)}.iconButton.waitingLeave{background:#ffffff14;border-color:var(--tone-danger-on-dark);color:var(--tone-danger-on-dark);flex:0 0 auto;height:40px;width:40px}.iconButton.waitingLeave:hover:not(:disabled){background:color-mix(in srgb,var(--tone-danger-on-dark) 24%,transparent)}.waitingGrid{align-items:start;display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.waitingStats,.waitingRules,.waitingRoleList,.settingsGroup{display:grid;gap:8px}.settingsGroup+.settingsGroup{margin-top:6px}.settingsGroupTitle{color:var(--color-muted);font-size:11px;font-weight:850;letter-spacing:.04em;text-transform:uppercase}.waitingSidebar{align-content:start;display:grid;gap:14px;min-width:0}.waitingStats{grid-template-columns:repeat(3,minmax(0,1fr))}.waitingRules{margin-top:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.waitingStats div,.waitingRules div,.waitingRole{background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:7px;padding:9px 10px}.waitingStats span,.waitingRules span,.waitingRole span{color:var(--color-muted);display:block;font-size:12px;font-weight:800}.waitingRole{align-items:center;color:inherit;display:grid;font-weight:inherit;gap:var(--space-3);grid-template-columns:minmax(0,1fr) auto auto;text-align:left}.waitingRole:where(:hover):not(:disabled){background:var(--color-surface-sunken-strong);border-color:var(--color-border-strong)}.waitingRole svg{color:var(--color-text-faint);flex:0 0 auto}.waitingRole strong{color:var(--tone-success-text);font-size:18px}.waitingNotes{display:grid;gap:8px}.waitingNotes p{background:var(--color-surface-muted);border-left:4px solid var(--color-accent);border-radius:8px;color:var(--color-label);font-weight:750;padding:10px 12px}.onlineActions,.entryPanel,.resumeRooms,.roomPlayerList,.playerCard{display:grid;gap:6px}.resumeRooms{background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:8px;padding:10px}.resumeRooms>span{color:var(--color-muted);font-size:12px;font-weight:850;text-transform:uppercase}.resumeRow{display:grid;gap:6px;grid-template-columns:minmax(0,1fr) auto}.resumeRow .secondaryButton{min-width:0}.resumeEndButton{border-color:var(--tone-danger-border-strong);color:var(--color-danger);width:40px}.resumeEndButton:hover:not(:disabled){background:var(--tone-danger-bg);border-color:var(--tone-danger-text)}.projectMark{color:var(--color-text);font-size:clamp(40px,13.8vw,60px);font-weight:900;letter-spacing:0;line-height:1;justify-self:center;max-width:100%;white-space:nowrap;text-align:center}.entryPanel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 10px 28px #17202a14;gap:var(--space-5);padding:22px}.entryPanel h1{font-size:24px;line-height:1.15}.entryPanel button{min-height:44px;width:100%}.entryPanel input{font-size:16px}.entryPanel label:nth-of-type(2) input{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.createRoomButton{margin-top:2px}.onlinePlayers{align-content:start;gap:8px;padding:14px}button,input,select,textarea{-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent}input,select,textarea{border-radius:var(--radius-sm)}select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5l5-5' stroke='%2352606f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;background-size:12px 8px;padding-right:30px}select::-ms-expand{display:none}input[type=number]{-moz-appearance:textfield;appearance:textfield}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=checkbox]{background:var(--color-surface);padding:0;border:1px solid var(--color-border-strong);border-radius:4px;cursor:pointer;display:inline-grid;flex:0 0 auto;height:18px;min-height:0;place-content:center;position:relative;width:18px}input[type=checkbox]:before{border:solid var(--color-on-accent);border-width:0 2px 2px 0;content:"";height:9px;opacity:0;transform:rotate(45deg) translate(-1px,-1px);width:5px}input[type=checkbox]:checked{background:var(--color-accent);border-color:var(--color-accent)}input[type=checkbox]:checked:before{opacity:1}input[type=checkbox]:disabled{cursor:not-allowed;opacity:.55}input[type=radio]{border-radius:50%;padding:0}input,select,textarea{color-scheme:inherit}@media(max-width:768px){input,select,textarea{font-size:16px}}@media(prefers-color-scheme:dark){select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5l5-5' stroke='%23b3c0ce' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 1000px var(--color-surface) inset;-webkit-text-fill-color:var(--color-text)}}.selectField{position:relative;width:100%}.selectTrigger{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer;font-weight:500;gap:var(--space-2);justify-content:space-between;min-height:42px;padding:9px 10px;text-align:left;width:100%}.selectTrigger:hover:not(:disabled){background:var(--color-surface);border-color:var(--color-border-muted)}.selectTrigger:active:not(:disabled){background:var(--color-surface-muted)}.selectTrigger:disabled{background:var(--color-surface-muted);border-color:var(--color-border);color:var(--color-text-faint);cursor:not-allowed;opacity:1}.selectValue{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selectValue.placeholder{color:var(--color-text-faint)}.selectList{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);box-shadow:0 12px 28px #00000047;overflow-y:auto;padding:4px;position:fixed;z-index:40;-webkit-overflow-scrolling:touch}.selectOption{border-radius:5px;cursor:pointer;font-size:13px;font-weight:600;padding:8px 10px}.selectOption.active{background:var(--color-surface-sunken-strong)}.selectOption.selected{background:var(--color-accent);color:var(--color-on-accent)}.selectOption.disabled{color:var(--color-text-faint);cursor:not-allowed}.fieldBlock{display:grid;gap:6px}.fieldLabel{color:var(--color-label);font-size:13px;font-weight:750}.roleSettings{border-top:1px solid var(--color-border);display:grid;gap:var(--space-2);margin-top:var(--space-2);padding-top:var(--space-4)}.roleSettingsTitle{color:var(--color-label);font-size:12px;font-weight:850;letter-spacing:.04em;text-transform:uppercase}.roleSettingsHint{color:var(--color-muted);font-size:12px;line-height:1.45;margin:0}.ruleSummary{display:grid;gap:var(--space-1);margin:0}.ruleSummaryLine{align-items:baseline;background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-sm);display:grid;gap:var(--space-2);grid-template-columns:minmax(0,1fr) auto;padding:8px 10px}.ruleSummaryLine dt{color:var(--color-label);font-size:13px;font-weight:700}.ruleSummaryLine dd{color:var(--tone-success-text);font-size:13px;font-weight:800;margin:0;text-align:right}.ruleSummaryLine.off dt{color:var(--color-muted)}.ruleSummaryLine.off dd{color:var(--color-text-faint)}@media(max-width:420px){.ruleSummaryLine{grid-template-columns:minmax(0,1fr)}.ruleSummaryLine dd{text-align:left}}.appModal{max-height:min(90vh,720px);overflow-y:auto}.roomCodeHeader{align-items:center;display:flex;gap:8px;margin-bottom:0;position:relative}.roomCodeHeader h2{min-width:0}.copyButtonWrap{display:inline-grid;flex:0 0 auto;position:relative}.roomCopyButton{flex:0 0 auto;height:30px;padding:0;width:30px}.copyStatus{background:var(--color-ink);border-radius:7px;color:var(--color-on-ink);font-size:12px;font-weight:850;left:50%;opacity:0;padding:5px 8px;pointer-events:none;position:absolute;top:-34px;transform:translateY(4px);translate:-50% 0;transition:opacity .18s ease,transform .18s ease;white-space:nowrap}.copyStatus.visible{opacity:1;transform:translateY(0)}.roomPlayer{align-items:center;background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:7px;display:grid;gap:10px;grid-auto-columns:auto;grid-auto-flow:column;grid-template-columns:32px minmax(0,1fr);padding:9px 10px}.roomPlayer.eliminated{opacity:.55}.roomPlayer.eliminated strong{text-decoration:line-through}.roomPlayer .connectionIndicator,.roomPlayer .connectionIndicator span{background:none;border-radius:0;color:inherit;height:auto;place-items:initial;width:auto}.roomPlayer .connectionIndicator .connectionDot{border-radius:50%;height:8px;min-height:8px;min-width:8px;width:8px}.roomPlayer .connectionIndicator .visuallyHidden{height:1px;width:1px}.roomPlayer>span{background:var(--color-ink);border-radius:50%;color:var(--color-on-ink);display:grid;font-size:13px;font-weight:850;height:28px;place-items:center;width:28px}.roomPlayerName{align-items:center;display:flex;gap:6px;min-width:0}.roomPlayerNameText{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.accountMark{align-items:center;display:inline-flex;flex:none}.accountMark.discord{color:var(--color-discord-text)}.accountMark.guest{color:var(--color-muted)}.roomPlayer small{font-size:12px;font-weight:750}.accountBadge{border-radius:999px;font-size:11px;font-style:normal;font-weight:850;padding:4px 7px}.accountBadge.discord{background:var(--color-discord-bg);color:var(--color-discord-text)}.accountBadge.guest{background:var(--color-bg);color:var(--color-muted)}.roomPlayerActions{display:flex;gap:6px}.roomPlayerActions button{font-size:12px;min-height:28px;padding:4px 7px}.playerCard{grid-template-columns:minmax(180px,1fr) repeat(3,minmax(130px,auto))}.playerRoleCard{background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:7px;display:grid;gap:3px;padding:12px}.playerRoleCard span{color:var(--color-muted);font-size:12px;font-weight:800;text-transform:uppercase}.playerRoleCard strong{font-size:18px}.compactLog{max-height:360px}.rulesPage{display:grid;gap:16px;margin:16px auto 0;max-width:1240px;width:100%}.rulesHero{align-items:end;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;display:grid;gap:16px;grid-template-columns:minmax(260px,1fr) minmax(260px,380px) auto;padding:16px 18px}.rulesHero h2{font-size:24px;line-height:1.15}.rulesHero p{color:var(--color-muted);font-size:14px;line-height:1.4;margin-top:6px}.rulesSearch{align-items:center;background:var(--color-surface-muted);border:1px solid var(--color-border-soft);border-radius:8px;display:grid;gap:8px;grid-template-columns:auto 1fr;padding:0 10px}.rulesSearch input{background:transparent;border:0;min-height:42px;padding-left:0}.rulesSearch input:focus{outline:0}.rulesHero>button{min-height:42px;white-space:nowrap}.rulesWorkspace{display:grid;align-items:start;gap:16px;grid-template-columns:220px minmax(0,1fr)}.rulesNav{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;display:grid;gap:6px;padding:8px;position:sticky;top:16px}.rulesNav button{background:transparent;border-color:transparent;color:var(--color-label);display:grid;font-size:13px;grid-template-columns:1fr auto;justify-content:stretch;min-height:38px;padding:8px 10px;text-align:left}.rulesNav button:hover,.rulesNav button.active{background:var(--color-bg);border-color:var(--color-border);color:var(--color-text)}.rulesNav button.active{box-shadow:inset 3px 0 0 var(--color-accent)}.rulesNav small{background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;font-size:11px;padding:1px 7px}.rulesContent{display:grid;gap:14px;min-width:0}.rulesSection{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;display:grid;gap:14px;padding:16px}.rulesSectionHeader h3{font-size:22px;margin-top:2px}.rulesList{display:grid;gap:8px}.ruleItem{background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:7px;padding:10px 12px}.ruleItem h4{font-size:15px;margin:0}.ruleItem p{color:var(--color-label);font-size:14px;line-height:1.45;margin-top:4px}.emptyState{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;color:var(--color-muted);padding:18px}.wizard{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;display:grid;gap:18px;padding:22px}.wizardHeader{align-items:start;display:flex;gap:18px;justify-content:space-between}.stepper{display:flex;gap:8px}.stepper span{background:var(--color-bg);border:1px solid var(--color-border-soft);border-radius:50%;display:grid;font-weight:850;height:34px;place-items:center;width:34px}.stepper span.active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.wizardBody{display:grid;gap:14px}.lobbySettings{display:grid;gap:14px;min-width:0}.lobbyStartPanel{gap:12px}.roomLaunch{display:grid;gap:7px;margin-top:0}.roomLaunch .summaryGrid{gap:8px}.roomLaunch .summaryGrid div,.roomLaunch .fieldError{padding:8px 10px}.modeSwitch{background:var(--color-bg);border:1px solid var(--color-border-soft);border-radius:8px;display:grid;gap:4px;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));padding:4px}.modeSwitch button{background:transparent;border-color:transparent;color:var(--color-label);min-height:38px}.modeSwitch button.active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.toggleField{align-items:center;background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:8px;color:var(--color-text);display:flex;gap:10px;padding:10px 12px}.toggleField input{min-height:18px;width:18px}.lobbyStartFooter{align-items:end;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto}.summaryGrid.compact{gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.roleRuleList{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.lobbySidebar{align-content:start;display:grid;gap:12px;min-width:0}.chatPanel{gap:10px;grid-template-rows:auto minmax(0,1fr) auto;min-height:320px}.chatTabs{display:flex;gap:6px}.chatTabs button{background:var(--color-bg);border-color:var(--color-border-soft);color:var(--color-muted);font-size:13px;min-height:30px;padding:4px 12px}.chatTabs button:hover:not(:disabled){background:var(--color-surface-muted);color:var(--color-text)}.chatTabs button.active,.chatTabs button.active:hover:not(:disabled){background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.chatTabs button.mafiaTab{border-color:var(--tone-danger-border-strong);color:var(--color-danger)}.chatTabs button.mafiaTab.active{background:var(--tone-danger-bg);border-color:var(--tone-danger-text);color:var(--tone-danger-text-strong)}.chatList{display:grid;align-content:start;gap:6px;max-height:420px;min-height:0;overflow-y:auto}.chatMessage{background:var(--color-surface-muted);border-radius:7px;display:grid;gap:2px;padding:6px 9px}.chatMessage.mafia{background:var(--tone-danger-bg-soft)}.chatMessage strong{color:var(--color-label);font-size:12px}.chatMessage span{font-size:14px;overflow-wrap:anywhere}.emojiPicker{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);bottom:calc(100% + 6px);box-shadow:0 12px 32px #17202a47;display:grid;gap:4px;grid-template-columns:repeat(auto-fill,minmax(34px,1fr));left:0;padding:8px;position:absolute;right:0;z-index:5}.chatComposerWrap{position:relative}.emojiPicker button{background:var(--color-bg);border-color:var(--color-border-soft);font-size:17px;min-height:34px;padding:0}.chatComposer{display:grid;gap:6px;grid-template-columns:auto minmax(0,1fr) auto}.chatComposer .iconButton{height:42px;width:42px}.notesPanel textarea{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text);font:inherit;line-height:1.5;min-height:150px;padding:9px 10px;resize:vertical;width:100%}.notesPanel textarea:focus{outline:2px solid var(--color-focus);outline-offset:2px}.playerLeave{grid-column:1 / -1}.chatTabs button.spectatorsTab{border-color:var(--tone-info-border-soft);color:var(--tone-info-text)}.chatTabs button.spectatorsTab.active{background:var(--tone-info-bg);border-color:var(--tone-info-border);color:var(--tone-info-text)}.chatMessage.spectators{background:var(--tone-info-bg-soft)}.playerCodeCard{align-items:center;display:grid;gap:8px;grid-template-columns:minmax(0,1fr) auto auto}.playerCodeCard span{grid-column:1}.playerCodeCard .playerCode{font-size:15px}.roleRule{align-items:stretch;background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:8px;color:var(--color-text);display:grid;grid-template-columns:minmax(0,1fr) 38px;overflow:hidden}.roleRule.selected{background:var(--tone-success-bg-soft);border-color:var(--tone-success-border);box-shadow:inset 4px 0 0 var(--color-accent)}.roleRule.mutedRole{background:var(--color-surface-sunken);color:var(--color-muted)}.roleRuleMain{align-items:center;background:transparent;border:0;border-radius:0;color:inherit;cursor:pointer;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) 54px;min-height:58px;padding:10px 12px;text-align:left}.roleRuleMain:hover{background:#2f7d6812}.roleRuleMain span{display:grid;gap:2px;min-width:0}.roleRuleMain small{color:var(--color-muted);font-size:12px;font-weight:800}.roleRuleMain input{font-size:14px;font-weight:850;min-height:34px;padding:5px 6px;text-align:center}.roleCountBadge{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:7px;display:inline-flex;font-size:15px;height:34px;justify-content:center;min-width:42px;padding:0 10px}.roleRule.selected .roleCountBadge{border-color:var(--tone-success-border);color:var(--tone-success-text)}.roleInfoButton{background:var(--color-bg);border:0;border-left:1px solid var(--color-border);border-radius:0;color:var(--color-label);min-height:100%;padding:0}.roleInfoButton:hover{background:var(--color-surface-sunken-strong);color:var(--color-text)}.modalOverlay{align-items:center;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#090e14b8;display:grid;inset:0;justify-items:center;padding:16px;position:fixed;z-index:20}.appModal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;box-shadow:0 24px 70px #00000073;display:grid;gap:14px;max-width:min(460px,100%);padding:20px}.modalNote{background:var(--color-surface-muted);border:1px solid var(--color-border);border-left:4px solid var(--color-accent);border-radius:8px;color:var(--color-label);font-weight:750;padding:10px 12px}.noticeModal p{color:var(--color-label);font-weight:700;line-height:1.45}.modalActions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.modeNote{background:var(--color-surface-muted);border:1px solid var(--color-border);border-left:4px solid var(--color-accent);border-radius:8px;color:var(--color-label);display:grid;gap:8px;padding:12px}.modeNote strong{color:var(--color-text);line-height:1.35}.modeNote ul{display:grid;gap:5px;margin:0;padding-left:18px}.modeNote li{font-size:13px;line-height:1.35}.fieldError{background:var(--tone-danger-bg-soft);border:1px solid var(--tone-danger-border);border-radius:7px;color:var(--color-danger);font-size:13px;font-weight:750;line-height:1.35;padding:9px 10px}.startRequirement{background:var(--tone-danger-bg-soft);border:1px solid var(--tone-danger-border);border-left:4px solid var(--tone-danger-text);border-radius:8px;color:var(--tone-danger-text-strong);font-size:13px;font-weight:750;line-height:1.35;padding:10px 12px}.summaryGrid{display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr))}.summaryGrid div,.balanceBox,.roleSummary span{background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:7px;padding:10px}.summaryGrid span{color:var(--color-muted);display:block;font-size:12px;font-weight:750}.summaryGrid strong{display:block;margin-top:3px}.balanceBox{border-left:4px solid var(--color-accent);color:var(--tone-success-text);font-weight:750}.balanceBox.warning{background:var(--tone-warning-bg-soft);border-color:var(--tone-warning-border-soft);border-left-color:var(--tone-warning-border);color:var(--tone-warning-text-strong)}.tableLayout{align-items:start;display:grid;gap:14px;grid-template-columns:minmax(300px,360px) minmax(0,1fr) minmax(280px,330px);margin:14px auto 0;max-width:var(--page-max-width)}.tableColumn{align-content:start;display:grid;gap:14px;min-width:0}.seatBoard{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.seatCard{background:var(--color-surface-muted);border:1px solid var(--color-border);border-left:3px solid var(--color-border-strong);border-radius:8px;display:grid;gap:5px;padding:8px 9px}.seatCard.own{border-left-color:var(--color-accent)}.seatCard.speaking{border-color:var(--tone-success-border-strong);border-left-color:var(--tone-success-text)}.seatCard.nominated{border-color:var(--tone-warning-border);border-left-color:var(--tone-warning-text)}.seatCard.dead,.seatCard.empty{opacity:.55}.seatCardTop{align-items:center;display:grid;gap:7px;grid-template-columns:auto minmax(0,1fr) auto}.seatCardTop .connectionIndicator{flex:0 0 auto}.seatNumber{background:var(--color-ink);border-radius:50%;color:var(--color-on-ink);display:grid;font-size:12px;font-weight:850;height:24px;place-items:center;width:24px}.seatCardName{font-size:14px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layout{align-items:stretch;display:grid;gap:16px;height:calc(100vh - 138px);grid-template-columns:minmax(280px,350px) minmax(420px,1fr) minmax(280px,360px);margin:16px auto 0;max-width:var(--page-max-width);min-height:0}.leftRail,.centerRail,.rightRail{display:grid;gap:16px;min-width:0}.centerRail{align-content:start;grid-auto-rows:max-content}.leftRail,.rightRail{grid-template-rows:minmax(0,1fr);min-height:0}.leftRail>.panel,.rightRail>.panel{height:100%;min-height:0}.leftRail>.panel{grid-template-rows:auto auto minmax(0,1fr)}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;display:grid;gap:14px;padding:16px}.phasePanel{background:var(--color-ink);border-radius:8px;color:var(--color-on-ink);display:grid;gap:14px;padding:16px 18px;position:relative}.phasePanel .phasePanelTop h2{padding-right:130px}.phasePanelTop{align-items:center;display:grid;gap:16px;grid-template-columns:minmax(260px,1fr) auto}.phaseAside{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:flex-end}.phasePanel .eyebrow,.phasePanel p{color:var(--color-on-dark-muted)}.phaseSpeaker{font-weight:800;margin-top:4px}.phasePanel .phaseSpeaker{color:var(--color-on-accent)}.phasePanel h2{color:var(--color-on-accent);font-size:30px;margin-top:2px}.phasePanel p{line-height:1.45;margin-top:6px}.phaseMetrics{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.phaseMetrics span{background:#ffffff1a;border:1px solid rgba(255,255,255,.18);border-radius:999px;color:var(--color-on-accent);font-size:13px;font-weight:800;padding:7px 10px}.phasePanel .phaseButtons{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.phasePanel .phaseButtons button{background:#ffffff1f;border-color:#fff3;color:var(--color-on-accent);min-height:36px}.phasePanel .phaseButtons button:hover{background:#ffffff2e}.phasePanel .phaseButtons .secondaryButton{background:transparent;border-color:#ffffff47;color:var(--color-on-dark)}.phasePanel .phaseButtons .secondaryButton:hover{background:#ffffff1a;color:var(--color-on-accent)}.phasePanel .phaseButtons .dangerButton{background:#9120182e;border-color:#f0b8b37a;color:var(--tone-danger-on-dark)}.phasePanel .phaseButtons .dangerButton:hover{background:#91201847;color:var(--color-on-accent)}.phasePanel button:disabled{background:#ffffff12;border-color:#ffffff29;color:var(--color-text-faint)}.panel.accent{border-color:var(--tone-success-border-strong);box-shadow:inset 4px 0 0 var(--color-accent)}.panel.warning{border-color:var(--tone-warning-border);box-shadow:inset 4px 0 0 var(--tone-warning-text)}.confirmActions{display:flex;flex-wrap:wrap;gap:8px}.panelTitle{align-items:center;display:flex;gap:9px}.panelTitle .scoreStrip{margin-left:auto}.panelTitle .scoreStrip span{font-size:12px;padding:4px 8px}.formGrid{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.wideField{grid-column:1 / -1}.roleCounterGrid{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.roleCounter{background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:7px;display:grid;gap:7px;padding:10px}.roleCounter span{color:var(--color-label)}.roleCounter input{min-height:34px}.civilianCounter{align-content:center;grid-template-columns:1fr auto}.civilianCounter strong{color:var(--color-accent);font-size:24px}.seatGrid{align-content:start;display:grid;gap:10px;grid-template-columns:1fr;min-height:0;overflow:auto;padding-right:2px}.seat{border:1px solid var(--color-border);border-radius:8px;display:grid;gap:9px;min-width:0;padding:10px}.seatCard .statusActions{display:grid;gap:3px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:2px}.seatCard .statusActions button{font-size:11px;gap:0;min-height:26px;overflow:hidden;padding:2px 4px;text-overflow:ellipsis;white-space:nowrap}.tableColumn .phaseButtons,.tableColumn .inlineForm,.tableColumn .workArea{flex-wrap:wrap}.tableColumn .inlineForm{display:flex;gap:6px}.tableColumn .inlineForm>*{flex:1 1 auto;min-width:0}.tableColumn .phasePanelTop{grid-template-columns:minmax(0,1fr)}.tableColumn .playerCard{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}.tableColumn .playerCard .panelTitle,.tableColumn .playerCard .authProfile,.tableColumn .playerCard .discordLogin{grid-column:1 / -1}.tableColumn .playerCard .discordLogin{text-align:center}.tableColumn .phaseMetrics{justify-content:flex-start}@media(min-width:1181px){.appShell:has(>.tableLayout){display:flex;flex-direction:column;height:100vh;overflow:hidden}.appShell:has(>.tableLayout)>.appHeader,.appShell>.tableLayout{width:100%}.appShell>.tableLayout{align-items:stretch;flex:1;margin-bottom:0;min-height:0}.tableColumn{min-height:0;overflow-y:auto}.tableColumn:has(>.columnScroll){grid-template-rows:auto minmax(0,1fr);overflow:hidden}.columnScroll{display:flex;flex-direction:column;gap:12px;min-height:0;overflow-y:auto;scrollbar-color:var(--color-border-strong) transparent;scrollbar-width:thin}.columnScroll>:last-child{flex:1 0 auto}.columnScroll>.panel:last-child{align-content:start}.tableColumn.centerColumn,.tableColumn.sideColumn{grid-template-rows:minmax(0,auto) minmax(0,1fr);overflow:hidden}.centerColumn>.panel,.sideColumn>.panel{min-height:0}.centerColumn>.panel:first-child{grid-template-rows:auto auto minmax(0,1fr);overflow:hidden}.centerColumn .seatBoard{min-height:0;overflow-y:auto}.chatPanel{min-height:0}.chatList{max-height:none}.sideColumn .logPanel{grid-template-rows:auto minmax(0,1fr)}.sideColumn .logList{max-height:none;min-height:0;overflow-y:auto}}.sideColumn .notesPanel textarea{height:180px;min-height:0;overflow-y:auto;resize:none}.seatNumber.out{background:var(--tone-danger-bg);color:var(--tone-danger-text-strong)}.seatCard.empty .seatNumber.out,.seatCard.replaced .seatNumber.out{background:var(--color-surface-sunken-strong);color:var(--color-muted)}.phaseTools{display:flex;gap:6px;position:absolute;right:14px;top:14px}.phasePanel .serviceButton{background:#ffffff1f;border-color:#fff3;color:var(--color-on-accent)}.phasePanel .serviceButton:hover{background:#ffffff2e}.serviceActionList{display:grid;gap:8px}.speakerRow{align-items:center;display:flex;gap:10px;justify-content:space-between}.speakerNow{color:var(--color-muted);font-size:13px;font-weight:750}.speakerNow strong{color:var(--color-text)}.nightActionBlock{display:grid;gap:8px}.nightActionPrompt{font-size:15px;font-weight:800}.nightTargets{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.nightTarget{align-items:center;background:var(--color-surface-muted);border:1px solid var(--color-border);color:var(--color-text);display:flex;gap:8px;justify-content:flex-start;min-height:44px;padding:6px 10px}.nightTarget:hover:not(:disabled){background:var(--color-bg);border-color:var(--color-border-strong);color:var(--color-text)}.nightTarget.selected{background:var(--tone-danger-bg);border-color:var(--tone-danger-text);color:var(--tone-danger-text-strong)}.nightTarget.selected:hover:not(:disabled){background:var(--tone-danger-bg);border-color:var(--tone-danger-text);color:var(--tone-danger-text-strong)}.nightTargetNumber{background:var(--color-ink);border-radius:50%;color:var(--color-on-ink);display:grid;flex:none;font-size:12px;font-weight:850;height:24px;place-items:center;width:24px}.nightTargetName{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settingsSplit{align-items:start;display:grid;gap:14px;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}.settingsColumn{align-content:start;display:grid;gap:10px;min-width:0}.timerRow{align-items:end;display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.settingsSplit .toggleList{margin-top:0}@media(min-width:1181px){.appShell:has(>.onlineHostSetup){display:flex;flex-direction:column;height:100vh;overflow:hidden}.appShell:has(>.onlineHostSetup)>.appHeader,.appShell>.onlineHostSetup{width:100%}.appShell>.onlineHostSetup{align-items:stretch;flex:1;margin-bottom:0;min-height:0}.onlineHostSetup>.lobbySettings{grid-template-rows:auto minmax(0,1fr) auto;min-height:0;overflow:hidden}.onlineHostSetup>.lobbySettings>.panel:nth-child(2){grid-template-rows:auto minmax(0,1fr) auto;min-height:0}.onlineHostSetup .roleRuleList{align-content:start;grid-auto-rows:max-content;min-height:0;overflow-y:auto}.onlineHostSetup>.lobbySidebar{align-content:stretch;grid-template-rows:auto auto minmax(0,1fr);min-height:0;overflow:hidden}.onlineHostSetup>.lobbySidebar>.panel:last-child{grid-template-rows:auto minmax(0,1fr);min-height:0}.onlineHostSetup .roomPlayerList{align-content:start;min-height:0;overflow-y:auto}.onlineHostSetup .roleRuleList,.onlineHostSetup .roomPlayerList{scrollbar-color:var(--color-border-strong) transparent;scrollbar-width:thin}}.seatStatusRow{align-items:center;display:flex;gap:6px;min-width:0}.seatStatusRow .roleBadge{min-width:0;overflow:hidden;text-overflow:ellipsis}.seatFoulMark{color:var(--color-muted);flex:none;font-size:11px;font-weight:850;letter-spacing:.02em}.seatFoulMark.silenced{color:var(--tone-warning-text)}.seatManageButton{flex:none;min-height:24px;opacity:.55;width:24px}.seatManageButton:hover,.seatCard:hover .seatManageButton{opacity:1}.foulControl{align-items:center;display:grid;gap:10px;grid-template-columns:auto minmax(0,1fr) auto;justify-items:center}.foulControl strong{font-size:20px}.seatCard.silenced{border-color:var(--tone-warning-border)}.silencedNote{color:var(--tone-warning-text);display:block;font-size:11px;font-weight:750}.foulWarning{color:var(--tone-warning-text)}.foulHint{align-self:end;color:var(--color-muted);font-size:11px;font-weight:700;padding-bottom:10px}.lockedField input:disabled{opacity:.7}.listBlockTop{align-items:center;display:flex;gap:10px;justify-content:space-between}.smallButton{font-size:12px;min-height:30px;padding:4px 10px}.voterCube.death{background:var(--tone-warning-bg);border-color:var(--tone-warning-border-strong);color:var(--tone-warning-text-strong)}.voterCube.computed:disabled{background:var(--tone-warning-bg);border-color:var(--tone-warning-text);color:var(--tone-warning-text-strong);opacity:1}.resolutionGrid{max-height:240px;overflow-y:auto;scrollbar-color:var(--color-border-strong) transparent;scrollbar-width:thin}.seatBoard.final .seatCard.dead,.seatBoard.final .seatCard.empty{opacity:1}.finalPanel{gap:12px;grid-template-rows:auto minmax(0,1fr)}.finalBanner{align-items:center;align-self:start;background:var(--tone-success-bg);border:1px solid var(--tone-success-border);border-radius:8px;color:var(--tone-success-text-strong);display:flex;gap:10px;padding:12px 14px}.finalBanner strong{font-size:18px}.finalRoster{align-content:start;display:grid;gap:6px;grid-auto-rows:max-content;min-height:0;overflow-y:auto;scrollbar-color:var(--color-border-strong) transparent;scrollbar-width:thin}.finalRow{align-items:center;background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:7px;display:grid;gap:10px;grid-template-columns:28px minmax(0,1fr) auto;padding:7px 10px}.finalNumber{background:var(--color-ink);border-radius:50%;color:var(--color-on-ink);display:grid;font-size:12px;font-weight:850;height:26px;place-items:center;width:26px}.finalWho{display:grid;gap:1px;min-width:0}.finalWho strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.finalWho small{color:var(--color-muted);font-size:11px;font-weight:750}.finalNights{display:grid;gap:6px}.finalNight{align-items:center;color:var(--color-muted);display:flex;font-size:13px;gap:8px;justify-content:space-between}.finalNight strong{color:var(--color-text);font-weight:750}.phasePanel .leaveButton{background:#91201847;border-color:#f0b8b380;color:var(--tone-danger-on-dark)}.phasePanel .leaveButton:hover{background:#9120186b;color:var(--color-on-accent)}.nominationRow{align-items:center;background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:7px;display:grid;gap:10px;grid-template-columns:28px minmax(0,1fr) auto;padding:7px 10px}.nominationNumber{background:var(--color-ink);border-radius:50%;color:var(--color-on-ink);display:grid;font-size:12px;font-weight:850;height:26px;place-items:center;width:26px}.nominationWho{display:grid;gap:1px;min-width:0}.nominationWho strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nominationWho small{color:var(--color-muted);font-size:11px;font-weight:750}.nominationRow .iconButton{min-height:28px;width:28px}.seat.alive{border-left:4px solid var(--color-accent)}.seat.dead{background:var(--color-surface-sunken);border-left:4px solid var(--color-border-muted);color:var(--color-text-faint)}.seat.empty{background:var(--tone-warning-bg-soft);border-left:4px solid var(--tone-warning-border)}.seat.replaced{background:var(--tone-info-bg-soft);border-left:4px solid var(--tone-info-border)}.seatTop{align-items:center;display:flex;gap:8px;justify-content:space-between}.seatIdentity{align-items:center;display:flex;gap:8px;min-width:0}.seatPlayerName{color:var(--color-muted);font-size:12px;font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.statusDot{align-items:center;border-radius:50%;display:inline-flex;flex:0 0 auto;height:22px;justify-content:center;width:22px}.statusDot.alive{background:var(--tone-success-bg);color:var(--tone-success-text)}.statusDot.dead{background:var(--color-surface-sunken-strong);color:var(--color-muted)}.statusDot.empty{background:var(--tone-warning-bg);color:var(--tone-warning-text)}.statusDot.replaced{background:var(--tone-info-bg);color:var(--tone-info-text)}.roleBadge{border-radius:999px;font-size:11px;font-weight:850;padding:4px 7px;white-space:nowrap}.roleBadge.town{background:var(--tone-danger-bg);color:var(--color-danger)}.roleBadge.civilian{background:var(--color-ink);color:var(--color-on-ink)}.roleBadge.mafia{background:var(--color-bg);color:var(--color-label)}.roleBadge.neutral{background:var(--tone-warning-bg-strong);color:var(--tone-warning-text-alt)}.roleBadge.unknown{background:var(--color-bg);color:var(--color-label)}.statusActions{display:grid;gap:6px;grid-template-columns:repeat(3,minmax(0,1fr))}.statusAction{background:var(--color-surface);border-color:var(--color-border-soft);color:var(--color-label);font-size:11px;font-weight:850;min-height:36px;padding:6px 8px}.statusAction:hover{background:var(--color-surface-muted)}.statusAction.alive{border-color:var(--tone-success-border);color:var(--tone-success-text-strong)}.statusAction.dead{border-color:var(--color-border-soft);color:var(--color-label)}.statusAction.empty{border-color:var(--tone-warning-border-soft);color:var(--tone-warning-text-strong)}.statusAction.replaced{border-color:var(--tone-info-border-soft);color:var(--tone-info-text)}.hint{color:var(--color-muted);font-size:13px;line-height:1.45}.timer{align-items:center;background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:8px;display:flex;justify-content:space-between;padding:12px}.timerValue{font-size:34px;font-weight:850;line-height:1}.timerValue.danger{color:var(--tone-danger-text-strong)}.iconButton{aspect-ratio:1;min-height:36px;padding:0;width:36px}.workArea{display:grid;gap:12px;grid-template-columns:minmax(210px,280px) 1fr}.currentSpeaker{align-content:center;background:var(--color-surface-inverse);border-radius:8px;color:var(--color-on-accent);display:grid;gap:4px;padding:16px}.currentSpeaker span{color:var(--color-on-dark-muted);font-size:13px;font-weight:700}.currentSpeaker strong{font-size:30px}.inlineForm{align-items:end;display:grid;gap:10px;grid-template-columns:minmax(140px,1fr) auto auto}.listBlock,.finalRoles,.nightGrid{display:grid;gap:8px}.nightAction{display:grid;gap:6px;grid-template-columns:minmax(0,1fr) auto}.nightAction>:last-child{grid-column:1 / -1}.nightActionTitle{display:grid;gap:1px;min-width:0}.nightActionTitle strong{font-size:13px}.nightActionTitle small{color:var(--color-muted);font-size:11px;font-weight:750;text-transform:none}.nightActionState{align-items:center;align-self:start;border:1px solid var(--color-border);border-radius:999px;display:inline-flex;font-size:11px;font-weight:800;gap:4px;padding:3px 9px;white-space:nowrap}.nightActionState.done{background:var(--tone-success-bg);border-color:var(--tone-success-border);color:var(--tone-success-text)}.nightActionState.waiting{color:var(--color-muted)}.searchField{align-items:center;background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:7px;color:var(--color-muted);display:flex;gap:8px;padding:0 10px}.searchField input{background:none;border:0;color:var(--color-text);min-height:38px;padding:0;width:100%}.searchField input:focus{outline:none}.searchField:focus-within{border-color:var(--color-focus)}.candidateList{display:grid;gap:6px;max-height:240px;overflow-y:auto}.candidateRow{align-items:center;background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:7px;display:grid;gap:8px;grid-template-columns:auto minmax(0,1fr) auto auto;padding:7px 10px;position:relative}.candidateName{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.playerCode{background:var(--color-bg);border:1px solid var(--color-border);border-radius:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;font-weight:700;letter-spacing:.08em;padding:3px 7px}.inactiveAction{background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:7px;padding:9px}.listRow,.logEntry{align-items:center;background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:6px;display:grid;gap:10px;grid-template-columns:34px 1fr auto;min-width:0;padding:9px 10px}.listRow span{background:var(--color-ink);border-radius:50%;color:var(--color-on-ink);display:inline-grid;font-weight:800;height:28px;place-items:center;width:28px}.voteMatrix{display:grid;gap:8px}.voteRow{align-items:center;background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:7px;display:grid;gap:12px;grid-template-columns:minmax(160px,1fr) minmax(240px,auto);min-width:0;padding:10px}.voteTarget{align-items:center;display:grid;gap:10px;grid-template-columns:34px minmax(0,1fr);min-width:0}.voteTarget span{background:var(--color-ink);border-radius:50%;color:var(--color-on-ink);display:inline-grid;font-weight:850;height:30px;place-items:center;width:30px}.voteTarget strong,.voteTarget small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.voteTarget small{color:var(--color-muted);font-size:12px;font-weight:750;margin-top:2px}.voterCubes{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.voterCube{background:var(--color-surface);border-color:var(--color-border-soft);color:var(--color-label);font-size:12px;font-weight:850;height:36px;min-height:36px;padding:0;width:36px}.voterCube:hover{background:var(--color-bg)}.voterCube.selected{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent)}.voterCube:disabled{background:var(--color-bg);border-color:var(--color-border);color:var(--color-text-faint)}.payload{background:var(--color-ink);border-radius:8px;color:var(--color-on-dark);font-size:12px;margin:0;overflow:auto;padding:12px}.winner{background:var(--tone-success-bg);border:1px solid var(--tone-success-border);border-radius:8px;color:var(--tone-success-text-strong);font-weight:800;padding:12px}.logPanel{grid-template-rows:auto minmax(0,1fr);overflow:hidden}.logList{align-content:start;display:grid;gap:8px;grid-auto-rows:max-content;min-height:0;overflow:auto}.logEntry{align-items:start;font-size:13px;grid-template-columns:70px 1fr}.logEntry time{color:var(--color-muted);font-variant-numeric:tabular-nums}.logEntry div{display:grid;gap:3px}.logEntry strong{font-weight:650;line-height:1.35}.logEntry small{font-size:11px}@media(max-width:1180px){.appHeader,.layout,.onlineHostSetup,.phasePanelTop,.playerCard,.waitingHero,.waitingGrid,.rulesHero,.summaryGrid,.rulesWorkspace{grid-template-columns:1fr}.rulesNav{display:flex;overflow-x:auto;position:static;scroll-padding-inline:8px}.rulesNav button{flex:0 0 auto;grid-template-columns:auto auto;min-width:max-content}.rulesNav button.active{box-shadow:inset 0 -3px 0 var(--color-accent)}.phaseMetrics{justify-content:flex-start}.layout{height:auto}.leftRail>.panel,.rightRail>.panel{height:auto}.seatGrid{max-height:min(620px,calc(100vh - 260px))}.voteRow{grid-template-columns:1fr}.voterCubes{justify-content:flex-start}}@media(max-width:860px){.appHeader{display:flex;flex-wrap:wrap;gap:10px}.appHeader>div:first-child{flex:1 1 auto;min-width:0}.appHeader .headerStats{flex:0 1 auto}.appHeader .authProfile,.appHeader .discordLogin{flex:0 0 auto;margin-left:auto}.appHeader .authProfile strong{max-width:12ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media(max-width:560px){.appHeader{flex-wrap:nowrap;gap:8px;padding:12px}.appHeader .eyebrow{display:none}.appHeader h1{font-size:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roomChipWord{display:none}.appHeader .authProfile strong{max-width:8ch}}@media(max-width:430px){.appHeader>div:first-child{display:none}.appHeader .authProfile{gap:6px;padding:5px}}@media(max-width:560px){.roleRuleList{grid-template-columns:minmax(0,1fr)}}@media(max-width:720px){.appShell{padding:10px}.seatGrid,.workArea,.inlineForm,.formGrid,.roleCounterGrid{grid-template-columns:1fr}.settingsSplit{grid-template-columns:minmax(0,1fr)}.timerRow{grid-template-columns:repeat(2,minmax(0,1fr))}.headerActions button,.setupActions button,.wizardFooter button{flex:1}}@media(max-width:1180px){.tableLayout{grid-template-columns:minmax(0,1fr)}}.mobileShell{display:flex;flex-direction:column;height:100dvh;min-height:0;overflow:hidden;padding:10px 10px 0}.mobileMain{display:flex;flex-direction:column;flex:1;gap:10px;min-height:0;width:100%}.mobileTopBar{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;display:flex;gap:8px;justify-content:space-between;padding:8px 12px}.mobileTopBar .roomChip{margin:0}.mobileTabPanel{align-content:start;display:grid;flex:1;gap:10px;min-height:0;overflow-y:auto}.mobileTabPanel.fill{align-content:stretch;grid-template-rows:minmax(0,1fr);overflow:hidden}.mobileTabPanel.fill .chatPanel{min-height:0}.mobileTabPanel.fill .chatList{max-height:none}.mobileTabBar{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;display:grid;gap:4px;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;margin-top:auto;padding:6px;margin-bottom:max(6px,env(safe-area-inset-bottom))}.mobileTab{align-items:center;background:none;border:1px solid transparent;border-radius:8px;color:var(--color-muted);display:grid;gap:2px;min-height:48px;justify-items:center;padding:4px}.mobileTab:hover:not(:disabled){background:var(--color-surface-muted);color:var(--color-text)}.mobileTab.active,.mobileTab.active:hover:not(:disabled){background:var(--color-surface-muted);border-color:var(--color-border);color:var(--color-text)}.mobileTabIcon{display:grid;place-items:center}.mobileTabLabel{font-size:11px;font-weight:800;letter-spacing:.01em}.mobileShell .waitingHero{gap:10px;padding:12px}.mobileShell .waitingHero h1{font-size:20px}.mobileShell .waitingHero p{display:none}.mobileShell .seatBoard{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.identityField{display:grid;gap:var(--space-2)}.identityHead{align-items:center;display:flex;gap:var(--space-2);justify-content:space-between}.identityAccount,.identityHead label{color:var(--color-label);display:block;font-size:13px;font-weight:650}.identityRow{align-items:center;display:grid;gap:var(--space-2);grid-template-columns:auto minmax(0,1fr) auto}.identityRow input{min-width:0;width:100%}.identityAvatar{align-items:center;background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:50%;color:var(--color-label);display:flex;flex:0 0 auto;font-size:15px;font-weight:700;height:40px;justify-content:center;overflow:hidden;width:40px}.identityAvatar img{display:block;height:100%;object-fit:cover;width:100%}.identityAction{flex:0 0 auto;white-space:nowrap}a.discordLogin.identityAction{align-items:center;display:inline-flex;gap:6px;height:40px;padding-inline:var(--space-4)}.iconButton.identityAction{height:40px;width:40px}.identityHint{color:var(--color-muted);font-size:12px;line-height:1.45;margin:0}@media(max-width:520px){.identityRow{grid-template-columns:auto minmax(0,1fr) auto}a.discordLogin.identityAction{grid-column:1 / -1;justify-content:center;width:100%}}.headerStats .connectionIndicator,.headerStats .connectionLabel{background:none;border:0;border-radius:0;padding:0}.headerStats .connectionDot,.connectionDot{border:0;border-radius:50%;height:8px;min-height:8px;min-width:8px;padding:0;width:8px}.connectionIndicator{align-items:center;display:inline-flex;gap:6px}.connectionDot{flex:0 0 auto;position:relative}.connectionLabel{font-size:12px;font-weight:700}.connectionIndicator.connected .connectionDot{background:var(--tone-success-text);box-shadow:0 0 0 3px color-mix(in srgb,var(--tone-success-text) 22%,transparent)}.connectionIndicator.connected .connectionLabel{color:var(--tone-success-text)}.connectionIndicator.connecting .connectionDot{background:var(--tone-warning-text);animation:connectionPulse 1.4s ease-in-out infinite}.connectionIndicator.connecting .connectionLabel{color:var(--tone-warning-text)}.connectionIndicator.offline .connectionDot{background:var(--tone-danger-text);box-shadow:0 0 0 3px color-mix(in srgb,var(--tone-danger-text) 22%,transparent)}.connectionIndicator.offline .connectionLabel{color:var(--tone-danger-text)}@keyframes connectionPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.8)}}.roomChip{align-items:center;display:inline-flex;gap:8px;padding-right:4px}.headerStats .roomChip span{background:none;border:0;border-radius:0;font-size:inherit;font-weight:inherit;padding:0}.headerStats .roomChip .connectionDot{border-radius:50%;height:8px;width:8px}.authProfile .authLogout{height:28px;min-height:28px;width:28px}.authLogout,.iconButton.identityAction{border-color:var(--tone-danger-border);color:var(--tone-danger-text)}.authLogout:hover:not(:disabled),.iconButton.identityAction:hover:not(:disabled){background:var(--tone-danger-bg-soft);border-color:var(--tone-danger-text)}:where(button,a,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--color-focus);outline-offset:2px;border-radius:var(--radius-sm)}:where(button,a,input,select,textarea,[tabindex]):focus:not(:focus-visible){outline:none}.roleRuleMain[role=button]{cursor:pointer}.visuallyHidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.roomPlayer,.seatCard,.connectionIndicator{position:relative}.toggleList{display:grid;gap:var(--space-2);margin-top:var(--space-4)}.toggleList .toggleField{align-items:center;display:flex;gap:var(--space-2);font-size:13px;line-height:1.4}.toggleList .toggleField input{flex:0 0 auto;margin:0}.resolutionGrid{display:grid;gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin:var(--space-4) 0}.resolutionGrid>div{background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-sm);display:grid;gap:2px;padding:var(--space-3)}.resolutionGrid span{color:var(--color-muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.resolutionGrid strong{font-size:14px;font-weight:650}.deathToggles{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}.voterCube.voted:not(.selected){opacity:.45}.listRow .iconButton{margin-left:auto}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media(max-width:720px){.resolutionGrid{grid-template-columns:1fr}.phaseButtons button{flex:1 1 100%}}.toggleField.locked{opacity:.75}.toggleField.locked small{color:var(--color-muted);font-weight:700}
