:root{--bg-0: #111111;--bg-1: #111111;--bg-2: #1a1a1a;--surface: #202020;--surface-strong: #2a2a2a;--border: #3a3a3a;--text: #f5f5f5;--text-dim: #d4d4d4;--text-mute: #a3a3a3;--accent: #eab308;--accent-2: #eab308;--accent-soft: rgba(234, 179, 8, .16);--yes: #22c55e;--no: #ef4444;--missed: #eab308;--warn: #eab308;--critical: #ef4444;--shadow: 0 8px 24px -18px rgba(0, 0, 0, .7);--radius: 18px;--radius-sm: 12px;--transition: .2s cubic-bezier(.2, .8, .2, 1)}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;background:var(--bg-0);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}body{min-height:100dvh}button{font:inherit;color:inherit;cursor:pointer}input,textarea{font:inherit;color:inherit}input::placeholder,textarea::placeholder{color:var(--text-mute)}.app-shell{min-height:100dvh;max-width:540px;margin:0 auto;padding:env(safe-area-inset-top) 16px env(safe-area-inset-bottom);display:flex;flex-direction:column;gap:16px}.header{display:flex;align-items:center;justify-content:space-between;padding:16px 4px 0;gap:8px}.header-title{display:flex;flex-direction:column;gap:4px}.brand{font-size:20px;font-weight:700;letter-spacing:-.02em;color:var(--text)}.round-pill{font-size:12px;color:var(--text-dim);letter-spacing:.04em;text-transform:uppercase}.header-actions{display:flex;gap:8px}.icon-btn{width:38px;height:38px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:18px;display:inline-flex;align-items:center;justify-content:center;transition:transform var(--transition),background var(--transition),color var(--transition)}.icon-btn:hover{background:var(--surface-strong)}.icon-btn:active{transform:scale(.94)}.icon-btn.off{color:var(--text-mute)}.icon-btn.danger{color:var(--no);border-color:#ef444459}.icon-btn.warn{color:var(--warn);border-color:#f59e0b59}.screen{flex:1;display:flex;flex-direction:column;gap:16px;padding-bottom:16px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px 20px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:16px;animation:card-in var(--transition)}@keyframes card-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.screen-title{font-size:26px;margin:0;letter-spacing:-.02em}.section{display:flex;flex-direction:column;gap:10px}.section-title{font-size:14px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);margin:0 0 4px}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.16em;color:var(--text-dim);margin:0}.hint{color:var(--text-dim);font-size:14px;line-height:1.55;margin:0}.hint.big{font-size:16px}.warn-text{color:var(--warn);font-size:13px;line-height:1.5;margin:0}.validation{color:var(--warn);font-size:14px;margin:4px 0 0}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:var(--surface-strong);color:var(--text);border-radius:var(--radius-sm);padding:14px 18px;font-size:16px;font-weight:600;letter-spacing:.01em;transition:transform var(--transition),background var(--transition),box-shadow var(--transition),opacity var(--transition);text-align:center}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:none}.btn.primary:hover:not(:disabled){background:#ca8a04;border-color:#ca8a04}.btn.ghost{background:transparent;color:var(--text-dim);border-color:var(--border)}.btn.big{padding:18px 22px;font-size:18px;border-radius:14px}.btn.vote-yes{background:#16a34a;border-color:#16a34a;color:#fff;font-size:24px;padding:28px;box-shadow:none}.btn.vote-no{background:#dc2626;border-color:#dc2626;color:#fff;font-size:24px;padding:28px;box-shadow:none}.text-input,.text-area{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;font-size:16px;color:var(--text);transition:border-color var(--transition),box-shadow var(--transition);width:100%}.text-input:focus,.text-area:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.text-area{resize:vertical;min-height:96px;line-height:1.45}.flex{flex:1 1 auto;min-width:0}.player-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.player-row{display:flex;align-items:center;gap:8px;background:var(--bg-2);border-radius:var(--radius-sm);padding:6px 6px 6px 12px;border:1px solid var(--border)}.player-index{color:var(--text-mute);font-variant-numeric:tabular-nums;width:22px;font-size:14px}.add-row{display:flex;gap:8px}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:13px;color:var(--text-dim);letter-spacing:.03em}.field-hint{font-size:11px;color:var(--text-mute)}.question .text-area{min-height:120px;font-size:18px}.discussion{align-items:stretch;text-align:center}.question-text{font-size:22px;margin:0;line-height:1.35;letter-spacing:-.01em}.timer{display:flex;align-items:center;justify-content:center;margin:8px 0}.timer-ring{position:relative;width:200px;height:200px}.timer-ring-svg{width:100%;height:100%;transform:rotate(-90deg)}.timer-ring-track{stroke:#ffffff14}.timer-ring-progress{stroke:var(--accent-2);transition:stroke-dashoffset .25s linear,stroke .2s}.timer-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.timer-num{font-size:64px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.04em;line-height:1}.timer-unit{font-size:13px;letter-spacing:.2em;color:var(--text-dim);text-transform:uppercase}.timer.small{margin:4px 0}.timer.small .timer-num{font-size:80px}.urgency-warn .timer-ring-progress{stroke:var(--warn)}.urgency-warn .timer-num{color:var(--warn)}.urgency-critical .timer-ring-progress{stroke:var(--critical)}.urgency-critical .timer-num{color:var(--critical);animation:pulse 1s ease-in-out infinite}.urgency-critical{animation:shake .6s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.07)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-2px)}75%{transform:translate(2px)}}.vote{text-align:center}.voter-name{font-size:36px;margin:0;letter-spacing:-.03em}.vote-progress{color:var(--text-dim);font-size:14px;margin:0}.vote-buttons{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:4px}.reveal{text-align:center;align-items:stretch}.reveal-name{font-size:30px;margin:0;letter-spacing:-.02em}.reveal-vote{margin:8px 0;padding:32px 16px;border-radius:var(--radius);font-size:56px;font-weight:800;letter-spacing:.08em;animation:reveal-pop .4s cubic-bezier(.2,1.4,.4,1)}.reveal-vote.vote-yes{background:#22c55e26;color:var(--yes);border:1px solid rgba(34,197,94,.3)}.reveal-vote.vote-no{background:#ef444426;color:var(--no);border:1px solid rgba(239,68,68,.3)}.reveal-vote.vote-missed{background:#f59e0b26;color:var(--missed);border:1px solid rgba(245,158,11,.3);font-size:38px}@keyframes reveal-pop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.reveal.splash{text-align:center;align-items:stretch}.splash-title{font-size:30px;margin:0;letter-spacing:-.02em;color:var(--text);animation:splash-pop .38s cubic-bezier(.2,1.4,.4,1)}.splash-neutral .splash-title{color:var(--text-dim)}.splash-positive .splash-title{color:var(--missed)}.splash-winners{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.splash-winner-row{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:#fbbf241f;border:1px solid rgba(251,191,36,.35);border-radius:var(--radius-sm);font-size:18px;animation:splash-pop .42s cubic-bezier(.2,1.4,.4,1)}.splash-winner-name{font-weight:700;letter-spacing:-.01em}.splash-winner-pts{font-variant-numeric:tabular-nums;font-weight:700;color:var(--missed)}@keyframes splash-pop{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.scoreboard{align-items:stretch}.result-title{font-size:22px;margin:0;letter-spacing:-.01em}.result-counts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.count{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px 6px;text-align:center;display:flex;flex-direction:column;gap:2px}.count.yes{color:var(--yes);border-color:#22c55e4d}.count.no{color:var(--no);border-color:#ef44444d}.count.missed{color:var(--missed);border-color:#f59e0b4d}.count-num{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums}.count-label{font-size:11px;letter-spacing:.16em;color:var(--text-dim)}.result-msg{margin:0;font-size:16px;line-height:1.4}.result-msg.positive{color:var(--yes)}.result-msg.neutral{color:var(--text-dim)}.mini-scoreboard{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px;display:flex;flex-direction:column;gap:10px}.mini-scoreboard.compact{padding:10px 12px;gap:6px}.mini-title{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:var(--text-dim)}.mini-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.mini-row{display:grid;grid-template-columns:minmax(80px,1fr) 2fr auto;align-items:center;gap:10px}.mini-name{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-bar{height:8px;background:var(--border);border-radius:999px;overflow:hidden}.mini-bar-fill{height:100%;background:var(--accent);transition:width .4s ease-out}.mini-score{font-variant-numeric:tabular-nums;font-weight:700;font-size:16px;min-width:24px;text-align:end}.final-reveal{text-align:center;position:relative;overflow:hidden;animation:final-card-in .36s cubic-bezier(.2,1.4,.4,1)}.final-reveal:before{content:none;pointer-events:none}.final-reveal.is-winner{border-color:#fbbf248c;box-shadow:0 0 0 1px #fbbf2433}.final-reveal.is-loser{border-color:#ffffff0f;opacity:.95}.final-name{font-size:36px;margin:0;letter-spacing:-.03em;position:relative}.final-reveal.is-winner .final-name{color:var(--missed);animation:none}.final-reveal.is-loser .final-name{color:var(--text-dim)}.final-score-block{display:flex;align-items:baseline;justify-content:center;gap:8px;position:relative}.final-score-num{font-size:64px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.04em;line-height:1}.final-reveal.is-winner .final-score-num{color:var(--missed)}.final-reveal.is-loser .final-score-num{color:var(--text-mute)}.final-score-label{font-size:14px;text-transform:uppercase;letter-spacing:.16em;color:var(--text-dim)}.final-status{font-size:14px;letter-spacing:.18em;text-transform:uppercase;margin:0;position:relative}.winner-status{color:var(--missed);font-weight:700;font-size:18px;animation:none}.loser-status{color:var(--text-mute)}.final-dots{display:flex;justify-content:center;gap:6px;margin-top:4px;position:relative}.final-dot{width:8px;height:8px;border-radius:50%;background:#ffffff26;transition:background var(--transition),transform var(--transition)}.final-dot.past{background:#fff6}.final-dot.current{background:var(--accent-2);transform:scale(1.4)}.final-dot.winner.past,.final-dot.winner.pending{background:#fbbf244d}.final-dot.winner.current{background:var(--missed);transform:scale(1.5)}@keyframes final-card-in{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@media (prefers-reduced-motion: reduce){.final-reveal,.final-reveal.is-winner .final-name,.winner-status,.splash-title,.splash-winner-row{animation:none}}.winner{text-align:center}.winner-title{font-size:32px;margin:0;color:var(--missed);letter-spacing:-.02em;animation:none}.winner-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.winner-row{display:flex;justify-content:space-between;background:#fbbf241a;border:1px solid rgba(251,191,36,.3);border-radius:var(--radius-sm);padding:12px 16px;font-size:18px;font-weight:600}.winner-score{font-variant-numeric:tabular-nums;color:var(--missed)}@media (prefers-reduced-motion: reduce){.urgency-critical,.urgency-critical .timer-num,.winner-title,.reveal-vote,.card{animation:none}}
