:root{color-scheme:dark;--bg: #0d1021;--panel: #171b34;--panel-2: #20274a;--text: #eef2ff;--muted: #b7c0e0;--accent: #7c9cff;--danger: #ff5d6e;--success: #4fd18b;--border: rgba(255,255,255,.1)}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,sans-serif;background:radial-gradient(circle at top,#1b2457,var(--bg) 55%);color:var(--text)}button,input,textarea{font:inherit}button{background:var(--accent);color:#fff;border:0;border-radius:14px;padding:.8rem 1rem;font-weight:700;cursor:pointer}button.danger{background:var(--danger)}button.selected{outline:3px solid white}button:disabled{opacity:.65;cursor:not-allowed}input,textarea{width:100%;margin-top:.4rem;margin-bottom:1rem;background:#0d1330;color:var(--text);border:1px solid var(--border);border-radius:12px;padding:.8rem .9rem}code{background:#ffffff14;padding:.15rem .35rem;border-radius:6px}.page{min-height:100vh;padding:2rem}.centered{display:flex;flex-direction:column;justify-content:center}.narrow{max-width:560px;margin:0 auto}.hero{max-width:760px;margin-bottom:2rem}.grid{display:grid;gap:1rem}.grid.two{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.admin-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.span-2{grid-column:span 2}.card{background:#141830d9;border:1px solid var(--border);border-radius:24px;padding:1.25rem;box-shadow:0 20px 60px #00000059;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.topbar{display:flex;justify-content:space-between;gap:1rem;margin-bottom:1rem;align-items:start}.pill-row,.screen-pills{display:flex;flex-wrap:wrap;gap:.5rem}.pill,.screen-pills span{padding:.5rem .8rem;border-radius:999px;background:#ffffff14}.pill.red{background:#ff5d6e33}.pill.green{background:#4fd18b33}.pill.gray{background:#ffffff1f}.stack{display:flex;flex-direction:column;gap:.75rem}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:.65rem;border-bottom:1px solid var(--border)}.plain-list{padding-left:1rem}.error{color:#ffb2bc}.muted{color:var(--muted)}.announcement-box{background:#7c9cff26;border:1px solid rgba(124,156,255,.35);border-radius:16px;padding:1rem}.vote-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.dead-card{border-color:#ff5d6e73;background:#47131bb3}.screen{min-height:100vh;padding:2rem;background:linear-gradient(180deg,#070b1f,#141c42)}.screen-header{display:flex;justify-content:space-between;align-items:center}.announcement-stage{margin:2rem 0;padding:2rem;border-radius:28px;background:linear-gradient(135deg,#7c9cff33,#ff5d6e2e);border:1px solid var(--border);text-align:center}.announcement-stage h2{font-size:clamp(2rem,4vw,4rem);margin:0}.screen-grid{display:grid;gap:1rem;grid-template-columns:1fr 2fr 1fr}.timer-big{font-size:clamp(2rem,7vw,6rem);font-weight:800}.roster{display:flex;flex-wrap:wrap;gap:.6rem}.roster-item{background:#ffffff1a;padding:.55rem .75rem;border-radius:999px}.roster-item.dead{text-decoration:line-through;opacity:.55}.winner-banner{margin-top:2rem;padding:2rem;border-radius:28px;text-align:center;background:#4fd18b26}@media(max-width:900px){.topbar,.screen-header{flex-direction:column}.screen-grid{grid-template-columns:1fr}.span-2{grid-column:auto}}select{width:100%;margin-top:.4rem;margin-bottom:1rem;background:#0d1330;color:var(--text);border:1px solid var(--border);border-radius:12px;padding:.8rem .9rem}.button-row{display:flex;gap:.75rem;flex-wrap:wrap}.subpanel{background:#ffffff0d;border:1px solid var(--border);border-radius:16px;padding:.9rem}.compact{gap:.5rem}.chat-box{max-height:220px;overflow-y:auto;background:#ffffff0a;border:1px solid var(--border);border-radius:12px;padding:.75rem;margin-bottom:1rem}.chat-message{padding:.35rem 0;border-bottom:1px solid rgba(255,255,255,.06);word-break:break-word}.chat-message:last-child{border-bottom:none}.button-row{display:flex;gap:.5rem;flex-wrap:wrap}.chat-flash{margin-bottom:1rem;padding:.9rem 1rem;border-radius:14px;background:#ffc4002e;border:1px solid rgba(255,196,0,.45);font-weight:700;text-align:center;animation:chatFlashPop 1.8s ease}@keyframes chatFlashPop{0%{opacity:0;transform:scale(.92) translateY(-8px)}15%{opacity:1;transform:scale(1.03) translateY(0)}30%{transform:scale(1)}to{opacity:1;transform:scale(1)}}
