:root{--bg:#0a0a0c;--surface:#131316;--card:#1c1c20;--card-alt:#17171a;--border:#ffffff14;--border-strong:#ffffff1f;--text:#f3f1ea;--text-dim:#f3f1ea8c;--text-faint:#f3f1ea73;--accent:oklch(72% .19 150);--accent-soft:oklch(72% .19 150/.15);--accent-border:oklch(72% .19 150/.4);--danger:oklch(62% .2 25);--font-display:"Rajdhani", sans-serif;--font-body:"Inter", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;overscroll-behavior:none;margin:0}button{font-family:var(--font-body);-webkit-tap-highlight-color:transparent}input{font-family:var(--font-body)}@keyframes bustFlash{0%,to{background:#dc283200}30%{background:#dc283259}}@keyframes pulseGlow{0%,to{box-shadow:0 0 oklch(72% .19 150/.5)}50%{box-shadow:0 0 0 6px oklch(72% .19 150/0)}}.app{background:var(--bg);height:100%;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);flex-direction:column;display:flex}.screen{flex-direction:column;flex:1;width:100%;max-width:1100px;min-height:0;margin:0 auto;display:flex}.section-label{letter-spacing:1px;color:var(--text-faint);text-transform:uppercase;margin-bottom:8px;font-size:11px;font-weight:600}.chip{border:1px solid var(--border-strong);background:var(--card);color:var(--text);cursor:pointer;border-radius:10px;padding:9px 14px;font-size:13px;font-weight:700}.chip.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.btn-primary{background:var(--accent);color:var(--bg);font-family:var(--font-display);letter-spacing:1px;cursor:pointer;border:none;border-radius:14px;padding:16px;font-size:18px;font-weight:700}.btn-secondary{background:var(--card);border:1px solid var(--border-strong);color:var(--text);cursor:pointer;border-radius:12px;padding:12px;font-size:13px;font-weight:600}.btn-next{background:var(--accent);color:var(--bg);cursor:pointer;border:none;border-radius:12px;padding:12px;font-size:13px;font-weight:700}.toggle{cursor:pointer;background:#ffffff26;border:none;border-radius:13px;flex:none;width:44px;height:26px;padding:0;position:relative}.toggle.on{background:var(--accent)}.toggle-knob{background:var(--bg);border-radius:50%;width:20px;height:20px;transition:left .15s;position:absolute;top:3px;left:3px}.toggle.on .toggle-knob{left:21px}.setup{padding:22px 20px 20px;overflow:auto}.setup-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.setup-title{font-family:var(--font-display);letter-spacing:.5px;font-size:26px;font-weight:700}.setup-subtitle{color:var(--text-dim);margin-top:2px;margin-bottom:18px;font-size:12px}.mode-chips{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.double-out-row{background:var(--card);border:1px solid var(--border);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;max-width:400px;margin-bottom:20px;padding:12px 14px;display:flex}.double-out-row .label{font-size:13px;font-weight:500}.player-list{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.player-row{background:var(--card);border:1px solid var(--border);border-radius:12px;align-items:center;gap:10px;padding:8px 10px;display:flex}.player-avatar{width:30px;height:30px;color:var(--text);background:#ffffff1a;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.player-row input{min-width:0;color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:14px;font-weight:600}.player-remove{color:var(--danger);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:18px}.player-remove:disabled{color:#ffffff26;cursor:default}.player-add{color:var(--text-dim);cursor:pointer;background:0 0;border:1.5px dashed #ffffff2e;border-radius:12px;padding:10px;font-size:13px;font-weight:600}.setup .btn-primary{margin-top:auto}@media (width>=900px) and (height>=500px){.setup,.stats{flex:none;width:100%;max-width:620px;margin:auto}.stats{max-width:760px}.setup .btn-primary{margin-top:28px}}.live{padding:16px}.live.bust{animation:.8s ease-out bustFlash}.live-header{flex:none;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.live-header .mode-label{letter-spacing:1px;color:var(--text-faint);font-size:11px;font-weight:600}.live-header-actions{gap:8px;display:flex}.pill-btn{color:#f3f1eab3;cursor:pointer;background:0 0;border:1px solid #ffffff26;border-radius:8px;padding:5px 10px;font-size:11px;font-weight:600}.pill-btn.active{background:var(--accent);border-color:var(--accent);color:var(--bg)}.manual-panel{background:var(--card);border:1px solid var(--border-strong);border-radius:14px;flex:none;margin-bottom:10px;padding:12px}.manual-mults{gap:8px;margin-bottom:10px;display:flex}.manual-mult{border:1.5px solid var(--border-strong);background:var(--card);color:var(--text);cursor:pointer;border-radius:8px;flex:1;padding:8px 0;font-size:12px;font-weight:700}.manual-mult.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.manual-grid{grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:8px;display:grid}.manual-num{aspect-ratio:1;border:1px solid var(--border-strong);background:var(--card);color:var(--text);font-family:var(--font-display);cursor:pointer;border-radius:9px;font-size:15px;font-weight:700}.manual-special{gap:6px;display:flex}.manual-bull{border:1px solid var(--border-strong);color:var(--text);font-family:var(--font-display);cursor:pointer;background:#b91c2c;border-radius:9px;flex:1;padding:9px 0;font-size:14px;font-weight:700}.manual-miss{border:1px solid var(--border-strong);background:var(--surface);color:#f3f1ea99;font-family:var(--font-display);cursor:pointer;border-radius:9px;flex:1;padding:9px 0;font-size:14px;font-weight:700}.players-strip{flex:none;gap:8px;margin-bottom:6px;padding-bottom:10px;display:flex;overflow-x:auto}.player-card{background:var(--card);border:1.5px solid var(--border);text-align:center;border-radius:12px;flex:none;min-width:84px;padding:8px 12px}.player-card.current{background:var(--accent-soft);border-color:var(--accent);animation:1.8s ease-in-out infinite pulseGlow}.player-card .name{opacity:.7;white-space:nowrap;text-overflow:ellipsis;max-width:120px;font-size:11px;font-weight:600;overflow:hidden}.player-card .score{font-family:var(--font-display);font-size:26px;font-weight:700;line-height:1.1}.player-card .avg{opacity:.5;font-size:10px}.turn-slots{flex:none;justify-content:center;align-items:center;gap:8px;margin-bottom:10px;display:flex}.turn-slot{border:1.5px solid var(--border-strong);width:52px;height:38px;font-family:var(--font-display);background:0 0;border-radius:9px;justify-content:center;align-items:center;font-size:15px;font-weight:700;display:flex}.turn-slot.filled{background:#ffffff14}.board-wrap{flex:1;justify-content:center;align-items:center;min-height:0;display:flex}.board-wrap svg{filter:drop-shadow(0 8px 24px #00000080);width:auto;max-width:100%;height:auto;max-height:100%}.live-actions{flex:none;gap:8px;margin-top:8px;display:flex}.live-actions button{flex:1}.players-col{display:none}@media (width>=900px){.live{padding:16px 24px 20px}.live-body{flex:1;justify-content:center;align-items:stretch;gap:20px;min-height:0;display:flex}.players-strip{display:none}.players-col{flex-direction:column;justify-content:center;gap:14px;display:flex}.players-col .player-card{min-width:140px;padding:10px 16px}.players-col .player-card .name{font-size:12px}.players-col .player-card .score{font-size:34px}.players-col .player-card .avg{font-size:11px}.board-column{flex-direction:column;flex:1;gap:14px;min-width:0;min-height:0;display:flex}.live-actions{width:100%;margin-top:0}}@media (width<=899px){.live-body,.board-column{flex-direction:column;flex:1;min-height:0;display:flex}}.stats{padding:22px 20px 20px;overflow:auto}.winner-banner{background:linear-gradient(135deg, var(--accent-soft), transparent);border:1px solid var(--accent-border);border-radius:16px;margin-bottom:18px;padding:16px 18px}.winner-banner .label{color:var(--accent);letter-spacing:1px;font-size:11px;font-weight:600}.winner-banner .name{font-family:var(--font-display);margin-top:2px;font-size:28px;font-weight:700}.stat-cards{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px;display:grid}@media (width>=900px){.stat-cards{grid-template-columns:repeat(4,1fr)}}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:12px}.stat-card .name{margin-bottom:8px;font-size:13px;font-weight:700}.stat-row{color:var(--text-dim);justify-content:space-between;gap:8px;margin-bottom:2px;font-size:11px;display:flex}.stat-row .value{color:var(--text);font-weight:700}.history-list{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.history-row{background:var(--card-alt);border:1px solid #ffffff0f;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;display:flex}.history-row .player{font-size:12px;font-weight:600}.history-row .darts{color:var(--text-dim);text-align:right;flex:1;font-size:11px}.history-row .points{font-family:var(--font-display);text-align:right;min-width:40px;font-size:15px;font-weight:700}.history-row .points.bust{color:var(--danger)}.history-row .points.checkout{color:var(--accent)}.history-game-list{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.history-game-row{background:var(--card);border:1px solid var(--border);font-family:var(--font-body);color:var(--text);cursor:pointer;text-align:left;border-radius:12px;align-items:center;gap:12px;padding:12px 14px;display:flex}.history-game-mode{letter-spacing:.5px;min-width:90px;font-size:12px;font-weight:700}.history-game-date{color:var(--text-dim);flex:1;font-size:12px}.history-game-winner{color:var(--accent);font-size:13px;font-weight:700}.history-back{margin-bottom:14px}
