:root{--bg: #14141f;--bg-elev: #1d1d2c;--bg-elev-2: #272739;--border: #34344a;--text: #f3f3fa;--text-dim: #a1a1b8;--accent: #f8b400;--accent-2: #43e0cf;--danger: #ff6b6b;--good: #6bcb77}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent}a{color:var(--accent-2);text-decoration:none}button{font:inherit;cursor:pointer;background:var(--bg-elev-2);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:10px 16px;transition:background .1s ease,transform .05s ease}button:hover{background:var(--border)}button:active{transform:translateY(1px)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);color:#1c1c1c;border-color:transparent;font-weight:600}button.primary:hover{background:#ffce4f}button.danger{background:transparent;border-color:var(--danger);color:var(--danger)}button.ghost{background:transparent;border-color:var(--border)}input,textarea,select{font:inherit;width:100%;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:10px 12px}input:focus,textarea:focus,select:focus{outline:2px solid var(--accent-2);outline-offset:1px}.page{min-height:100%;padding:24px;max-width:1200px;margin:0 auto}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:14px;padding:20px}.row{display:flex;gap:12px;align-items:center}.col{display:flex;flex-direction:column;gap:12px}.spacer{flex:1}.muted{color:var(--text-dim)}h1,h2,h3{margin:0 0 12px}.picker{display:flex;flex-direction:column;gap:10px;align-items:center}.picker-preview{padding:4px}.picker-tabs{display:flex;gap:8px}.picker-tabs button{padding:8px 14px}.picker-tabs button.on{background:var(--accent);color:#1c1c1c;border-color:transparent}.picker-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:8px;width:100%;max-width:380px}.picker-cell{padding:0;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;border-radius:10px;background:var(--bg-elev-2);border:2px solid var(--border)}.picker-cell.on{border-color:var(--accent)}.player-shell{min-height:100%;display:flex;flex-direction:column;padding:16px;gap:14px;max-width:540px;margin:0 auto}.bigtext{font-size:28px;font-weight:700}.hugetext{font-size:48px;font-weight:700}.qbar{display:flex;align-items:center;gap:8px}.presenter{min-height:100vh;display:flex;flex-direction:column;padding:32px;gap:24px}.presenter h1{font-size:72px}.presenter .qnum{font-size:220px;font-weight:800;text-align:center;line-height:1;color:var(--accent)}.leaderboard{display:flex;flex-direction:column;gap:8px}.lb-row{display:flex;align-items:center;gap:14px;background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;padding:10px 14px}.lb-rank{width:36px;font-weight:700;color:var(--text-dim);text-align:right}.lb-name{flex:1}.lb-score{font-weight:700}.podium{display:flex;gap:12px;justify-content:center;align-items:flex-end;padding:20px 0}.podium .step{background:var(--bg-elev);border:1px solid var(--border);border-radius:14px;padding:16px;min-width:140px;display:flex;flex-direction:column;align-items:center;gap:8px}.podium .step.gold{border-color:#ffd93d;height:240px}.podium .step.silver{border-color:silver;height:200px}.podium .step.bronze{border-color:#cd7f32;height:170px}.error{color:var(--danger)}.toast-stack{position:fixed;top:16px;right:16px;display:flex;flex-direction:column;gap:8px;z-index:1000;pointer-events:none}.toast{pointer-events:auto;background:var(--bg-elev-2);border:1px solid var(--border);border-radius:10px;padding:10px 14px;min-width:220px;max-width:360px;box-shadow:0 8px 24px #0000004d;font-size:14px;animation:toast-in .16s ease-out}.toast-success{border-color:var(--good)}.toast-success:before{content:"✓ ";color:var(--good);font-weight:700}.toast-error{border-color:var(--danger)}.toast-error:before{content:"✕ ";color:var(--danger);font-weight:700}.toast-info{border-color:var(--accent-2)}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.dirty-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--accent);margin-right:6px;vertical-align:middle}@media (max-width: 600px){.page{padding:16px}.picker-grid{grid-template-columns:repeat(6,1fr)}.presenter .qnum{font-size:140px}}
