:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;color:#f1eee6;--canvas:#0b0d14;--surface:#171923;--surface-raised:#202330;--border:#2b3040;--text:#f1eee6;--muted:#aeb4c2;--accent:#61c7c1;--accent-ink:#092c2a;--danger:#c43b4d;--focus:#dcefa8;--radius:18px;--shadow:0 18px 50px #00000047;background:#0b0d14;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:radial-gradient(circle at 14% -8%, #61c7c126, transparent 31rem), radial-gradient(circle at 95% 18%, #66488724, transparent 28rem), var(--canvas);min-width:320px}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.52}.app-shell{width:min(100%,1180px);margin:0 auto;padding:20px 16px 40px}.app-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;min-height:68px;display:flex}.brand{align-items:center;gap:10px;min-width:0;display:flex}.brand-mark{border:1px solid var(--accent);width:38px;height:38px;color:var(--accent);border-radius:50%;place-items:center;font-size:24px;line-height:1;display:grid}.brand h1,.lobby-card h2,.invite-card h2{letter-spacing:-.03em;margin:0;font-size:clamp(1.25rem,4vw,1.75rem)}.eyebrow{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;margin:0 0 4px;font-size:.75rem;font-weight:700}.connection-status{border:1px solid var(--border);color:var(--muted);border-radius:999px;flex:none;align-items:center;gap:6px;margin:0;padding:8px 10px;font-size:.875rem;display:inline-flex}.connection-status:before{content:"";background:currentColor;border-radius:50%;width:8px;height:8px}.connection-status.is-connected{color:var(--accent);border-color:#61c7c185}.connection-status.is-error{color:#ff9fac;border-color:#c43b4d9e}.game-status-bar{color:var(--muted);flex-wrap:wrap;flex:auto;justify-content:center;gap:12px;font-size:.875rem;display:flex}.game-status-bar p{margin:0}.phase-status{color:var(--text);font-weight:700}.phase-countdown{color:var(--accent);font-variant-numeric:tabular-nums}.phase-skip{min-height:34px;padding:5px 10px;font-size:.8125rem}.app-content{justify-items:center;padding-top:clamp(28px,9vw,88px);display:grid}.app-content.has-room{padding-top:24px;display:block}.lobby-card,.invite-card,.room-board{border:1px solid var(--border);border-radius:var(--radius);width:min(100%,520px);box-shadow:var(--shadow);background:linear-gradient(145deg,#202330f0,#171923f0)}.lobby-card{gap:16px;padding:clamp(22px,6vw,36px);display:grid}.card-description,.room-code,.room-summary p,.start-game-control p{color:var(--muted);margin:0;line-height:1.55}.form-field{color:var(--text);gap:7px;font-size:.9375rem;font-weight:650;display:grid}.form-input{border:1px solid var(--border);width:100%;min-height:46px;color:var(--text);background:#10121a;border-radius:10px;padding:10px 12px}.form-input:focus-visible,button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.button-primary,.button-secondary{border:1px solid #0000;border-radius:10px;min-height:46px;padding:10px 16px;font-weight:750}.button-primary{background:var(--accent);color:var(--accent-ink)}.button-primary:hover:not(:disabled){background:#89dfda}.button-secondary{border-color:var(--border);background:var(--surface-raised);color:var(--text)}.room-board{gap:18px;width:100%;max-width:none;padding:clamp(18px,4vw,32px);display:grid}.room-summary{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 20px;padding-bottom:14px;display:flex}.lobby-board-layout{gap:18px;display:grid}.lobby-side-panel{align-content:start;gap:18px;display:grid}.game-board-layout{gap:18px;display:grid}.game-board-layout.is-role-reveal{grid-template-columns:minmax(0,620px);justify-content:center}.game-board-layout.is-role-reveal .role-card{align-content:center;min-height:min(60vh,520px)}.game-players-panel,.game-support-panel{min-width:0}.start-game-control{gap:8px;display:grid}.role-card,.phase-workspace>section,.player-list-card,.phase-workspace>p,.room-board>[role=timer],.room-board>[role=status]{border:1px solid var(--border);background:#0b0d149e;border-radius:14px;padding:18px}.role-card{text-align:center}.role-card h2,.player-list-card h2,.phase-workspace h2{margin:0 0 12px;font-size:1.125rem}.role-card-toggle{border:1px dashed var(--accent);width:100%;min-height:124px;color:var(--text);background:linear-gradient(135deg,#162b36,#18202c);border-radius:12px;font-size:1rem;font-weight:750}.role-card-toggle[aria-expanded=true]{border-style:solid;min-height:56px}.role-name{color:var(--accent);margin:12px 0 0;font-size:1.25rem;font-weight:800}.player-list-card{min-width:0}.player-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.player-card{border:1px solid var(--border);background:#202330a8;border-radius:10px;flex-wrap:wrap;align-items:center;gap:6px;min-width:0;padding:10px;display:flex}.player-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:700;overflow:hidden}.status-badge,.host-badge{border-radius:999px;padding:3px 7px;font-size:.75rem;font-weight:700}.status-badge.is-alive{color:#a9f1dc;background:#61c7c12e}.status-badge.is-dead,.status-badge.is-resigned{color:#ffc1c9;background:#c43b4d29}.host-badge{color:#d9dbff;background:#776ed540}.phase-workspace{gap:14px;min-width:0;display:grid}.phase-workspace>section{gap:12px;display:grid}.phase-workspace>section button:not(.role-card-toggle),.phase-workspace>button{border:1px solid var(--border);background:var(--surface-raised);min-height:46px;color:var(--text);text-align:left;border-radius:10px;padding:10px 12px}.action-picker>p{color:var(--muted);margin:-4px 0 2px;line-height:1.5}.selection-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.phase-workspace .player-choice{text-align:center;text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.phase-workspace .player-choice:hover{border-color:var(--accent);background:#61c7c121}.phase-workspace .player-choice[aria-pressed=true]{border-color:var(--accent);color:#d5fffc;background:#61c7c140;box-shadow:inset 0 0 0 1px #61c7c170}.selection-confirmed{color:var(--accent);margin-top:4px;font-size:.75rem;font-weight:800;display:block}.game-result-panel{text-align:center;border-width:2px!important;padding:clamp(24px,7vw,48px)!important}.game-result-panel h2{color:var(--muted);text-transform:uppercase;letter-spacing:.12em}.game-result-panel [role=status]{margin:0;font-size:clamp(1.55rem,6vw,2.35rem);font-weight:900}.game-result-panel.winner-citizens{background:linear-gradient(145deg,#113b3dd9,#171923f0);border-color:#61c7c1c7}.game-result-panel.winner-mafia{background:linear-gradient(145deg,#521625db,#171923f0);border-color:#c43b4dd1}.elimination-notice{color:#ffd2d8;font-weight:700;background:#c43b4d26!important;border-color:#c43b4d85!important}.vote-result-notice ul{gap:7px;margin:0;padding:0;list-style:none;display:grid}.vote-result-notice li{border-bottom:1px solid var(--border);justify-content:space-between;padding:8px 0;display:flex}.result-controls{grid-template-columns:1fr 1fr;gap:10px;display:grid!important}.button-danger{color:#ffc1c9;background:0 0;border:1px solid #c43b4db8;border-radius:10px;min-height:46px;font-weight:750}.waiting-notice,.private-result,.phase-instruction{color:var(--muted);margin:0;line-height:1.5}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.invite-card{padding:clamp(18px,4vw,28px)}.invite-card h2{margin-bottom:8px}.invite-content{align-items:center;gap:22px;margin-top:18px;display:flex}.invite-qr{background:#fff;border:8px solid #fff;border-radius:8px;flex:none;max-width:150px;height:auto}.invite-link-group{flex:1;gap:10px;min-width:0;display:grid}.copy-message{color:var(--accent);margin:0;font-size:.875rem}.error-message{color:#ffc1c9;background:#c43b4d21;border:1px solid #c43b4db3;border-radius:10px;width:min(100%,520px);margin:16px 0 0;padding:12px}@media (width<=479px){.app-shell{padding-inline:12px}.app-header{align-items:flex-start}.connection-status{max-width:126px;font-size:.75rem}.game-status-bar{order:3;justify-content:space-between;width:100%}.app-header{flex-wrap:wrap}.invite-content{flex-direction:column;align-items:stretch}.invite-qr{align-self:center}}@media (width>=768px){.app-shell{padding-inline:28px}.room-board{grid-template-columns:minmax(0,1fr) minmax(260px,.8fr)}.room-summary{grid-column:1/-1}.lobby-board-layout{grid-column:1/-1;grid-template-columns:minmax(0,1fr) minmax(260px,.6fr);align-items:start}.game-board-layout{grid-column:1/-1;grid-template-columns:minmax(180px,.72fr) minmax(280px,1.35fr) minmax(180px,.72fr);align-items:start}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
