.party-pane { overflow:auto; min-height:0; flex:1; overscroll-behavior:contain; }
.party-wrap { max-width:640px; margin:auto; padding:24px 20px 40px; display:grid; gap:16px; color:var(--ink); }
.party-heading { display:flex; gap:13px; align-items:center; margin-bottom:8px; }.party-heading h2 { font-size:30px; letter-spacing:-.06em; margin:0; }.party-heading p { margin:3px 0 0; font-size:13px; }
.party-emblem { display:grid; place-items:center; width:50px; height:50px; border-radius:18px; background:#dfd2fa; color:#345338; font-size:35px; }
.party-welcome { padding:24px; border:1px solid #d8dfcd; border-radius:25px; background:#e6eecb; }.party-mafia { background:#eae1f5; border-color:#ded2ed; }.party-kicker { display:block; font-size:10px; font-weight:750; letter-spacing:.08em; }.party-welcome h3,.party-round h3,.party-result h3 { font-size:25px; letter-spacing:-.035em; margin:8px 0; }.party-welcome p { font-size:14px; line-height:1.5; }.party-welcome>.btn { width:100%; margin:7px 0 12px; }.party-wrap details summary { cursor:pointer; min-height:44px; display:flex; align-items:center; font-size:13px; font-weight:650; }.party-wrap details p { line-height:1.6; }
.party-round,.party-private,.party-result { border:1px solid #d9dfcf; border-radius:23px; padding:20px; background:var(--paper); }.party-status { display:flex; align-items:center; justify-content:space-between; gap:10px; }.party-phase { font-size:11px; font-weight:700; color:#476341; }.party-timer { font-size:12px; font-variant-numeric:tabular-nums; border-radius:10px; padding:5px 9px; background:#eef0e7; }.party-round p,.party-result p { font-size:14px; line-height:1.5; margin-bottom:0; }.party-private { background:#f0ebf8; border-color:#ded5eb; }.party-reveal { display:block; width:100%; min-height:44px; background:none; border:0; color:var(--ink); text-align:left; font:inherit; font-size:14px; font-weight:700; }.party-secret { display:block; font-size:30px; letter-spacing:-.04em; padding:8px 0; overflow-wrap:anywhere; }.party-private p { margin:5px 0; }.party-invite-count { font-weight:650; margin:0; }.party-choices { display:grid; gap:9px; }.party-choices h4,.party-roster h4 { margin:0; font-size:15px; }.party-choices p { margin:0 0 7px; }
.party-person { display:flex; align-items:center; gap:12px; width:100%; min-height:57px; border:1px solid #d9dfcf; border-radius:16px; background:var(--paper); padding:8px 12px; color:var(--ink); text-align:left; font:inherit; font-size:14px; }.party-person.selected { border-color:#78985b; background:#e8efcf; }.party-roster { display:grid; gap:10px; padding:8px 0; }.party-roster-person,.party-result-row { display:flex; align-items:center; gap:10px; font-size:13px; min-width:0; }.party-roster-person .grow,.party-result-row .grow { overflow-wrap:anywhere; min-width:0; }.party-result-row { flex-wrap:wrap; margin-top:12px; }.party-result-row strong { font-size:12px; }.party-wrap .avatar { width:33px; height:35px; flex:0 0 33px; border-radius:12px; }.party-roster-person.is-out { opacity:.6; }.party-locked { background:#e9efda; border-radius:16px; padding:16px; font-size:14px; line-height:1.5; }.party-waiting,.party-spectator { font-size:14px; line-height:1.5; }.party-end { background:none; border:0; color:#765252; font:inherit; font-size:13px; min-height:44px; }.party-error { border:1px solid #e3c2b1; background:#fff3e8; border-radius:15px; padding:14px; font-size:13px; }.party-rules { border-top:1px solid var(--line); padding-top:6px; }.party-wrap button:focus-visible,.party-wrap summary:focus-visible { outline:2px solid var(--ink); outline-offset:3px; }.party-wrap button:disabled { opacity:.5; }
@media(max-width:360px){.party-wrap { padding:18px 14px 30px; }.party-welcome,.party-round,.party-private,.party-result { padding:16px; }.party-secret { font-size:26px; }}
@media(forced-colors:active){.party-person.selected { border:2px solid Highlight; }.party-emblem,.party-phase { color:CanvasText; }}

.party-host-odd .party-emblem { background:#e3ecb9; }.party-host-mafia .party-emblem { background:#dfd2fa; }.party-welcome h3 { max-width:25ch; font-size:24px; line-height:1.15; }.party-how { list-style:none; margin:20px 0 12px; padding:0; display:grid; gap:12px; }.party-how li { display:flex; align-items:center; gap:10px; font-size:14px; }.party-how li>span { display:grid; place-items:center; width:25px; height:25px; flex:none; border-radius:9px; background:rgba(255,255,255,.65); font-size:11px; font-weight:750; }.party-host-busy { padding:13px; border:1px solid rgba(47,75,47,.18); border-radius:13px; background:rgba(255,255,255,.5); }
