:root{--bg-primary: #1a1a2e;--bg-secondary: #16213e;--bg-card: #0f3460;--accent: #00d2ff;--accent-glow: rgba(0, 210, 255, .3);--text-primary: #ffffff;--text-secondary: #a0a0b0;--danger: #ff4757;--success: #2ed573;--warning: #ffa502;--dartboard-red: #d32f2f;--dartboard-green: #1b5e20;--dartboard-black: #212121;--dartboard-cream: #f5f5dc;--shadow: 0 4px 20px rgba(0, 0, 0, .3)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-primary);color:var(--text-primary);min-height:100vh;overflow-x:hidden}.app{max-width:480px;margin:0 auto;padding:16px;min-height:100vh}.game-setup{display:flex;flex-direction:column;gap:20px;padding:20px 0}.game-setup h1{text-align:center;font-size:28px;color:var(--accent);margin-bottom:10px}.game-setup h2{font-size:18px;color:var(--text-secondary);margin-bottom:12px}.input-group{display:flex;flex-direction:column;gap:8px}.input-group label{font-size:14px;color:var(--text-secondary)}.input-group input,.input-group select{padding:12px 16px;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:var(--bg-secondary);color:var(--text-primary);font-size:16px;outline:none;transition:border-color .2s}.input-group input:focus,.input-group select:focus{border-color:var(--accent)}.players-list{display:flex;flex-direction:column;gap:8px}.player-input{display:flex;gap:8px}.player-input input{flex:1;padding:12px 16px;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:var(--bg-secondary);color:var(--text-primary);font-size:16px;outline:none}.player-input button{padding:12px 16px;border-radius:12px;border:none;background:var(--danger);color:#fff;font-size:18px;cursor:pointer;transition:opacity .2s}.player-input button:hover{opacity:.8}.btn-add-player{padding:12px;border-radius:12px;border:2px dashed rgba(255,255,255,.2);background:transparent;color:var(--text-secondary);font-size:14px;cursor:pointer;transition:all .2s}.btn-add-player:hover{border-color:var(--accent);color:var(--accent)}.btn-primary{padding:16px 32px;border-radius:12px;border:none;background:linear-gradient(135deg,var(--accent),#0099cc);color:#fff;font-size:18px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 15px var(--accent-glow)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px var(--accent-glow)}.btn-primary:active{transform:translateY(0)}.btn-secondary{padding:12px 24px;border-radius:12px;border:1px solid rgba(255,255,255,.2);background:transparent;color:var(--text-primary);font-size:16px;cursor:pointer;transition:all .2s}.btn-secondary:hover{background:#ffffff1a}.scoreboard{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.player-card{display:flex;align-items:center;gap:16px;padding:16px;border-radius:16px;background:var(--bg-secondary);border:2px solid transparent;transition:all .3s}.player-card.active{border-color:var(--accent);box-shadow:0 0 20px var(--accent-glow)}.player-card .avatar{width:48px;height:48px;border-radius:50%;background:var(--bg-card);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:600;color:var(--accent)}.player-card .info{flex:1}.player-card .name{font-size:16px;font-weight:500;margin-bottom:4px}.player-card .legs{font-size:12px;color:var(--text-secondary)}.player-card .score{font-size:36px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--accent)}.player-card.active .score{color:var(--accent);text-shadow:0 0 10px var(--accent-glow)}.dartboard-container{display:flex;flex-direction:column;align-items:center;margin:20px 0}.dartboard-svg{width:100%;max-width:320px;cursor:crosshair}.dartboard-svg circle,.dartboard-svg path{transition:opacity .15s}.dartboard-svg:hover circle,.dartboard-svg:hover path{opacity:.9}.dartboard-svg circle:active,.dartboard-svg path:active{opacity:.7}.throw-result{position:fixed;bottom:100px;left:50%;transform:translate(-50%);padding:12px 24px;border-radius:12px;background:var(--bg-card);border:1px solid var(--accent);box-shadow:var(--shadow);font-size:18px;font-weight:600;color:var(--accent);z-index:100;animation:slideUp .3s ease-out}.throw-result.bust{border-color:var(--danger);color:var(--danger)}.throw-result.win{border-color:var(--success);color:var(--success)}@keyframes slideUp{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.throw-history{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:12px 0;min-height:40px}.throw-chip{padding:6px 12px;border-radius:8px;background:var(--bg-card);font-size:14px;font-weight:500;color:var(--text-primary);border:1px solid rgba(255,255,255,.1)}.throw-chip.miss{color:var(--text-secondary);border-color:#ffffff0d}.throw-chip.triple{color:var(--dartboard-red);border-color:var(--dartboard-red)}.throw-chip.double{color:var(--dartboard-green);border-color:var(--dartboard-green)}.throw-chip.bull{color:var(--warning);border-color:var(--warning)}.throw-chip.undone{opacity:.4;text-decoration:line-through}.turn-total{display:flex;justify-content:center;gap:16px;margin:12px 0;font-size:14px;color:var(--text-secondary)}.turn-total span{padding:4px 12px;border-radius:8px;background:var(--bg-secondary)}.turn-total .total{color:var(--accent);font-weight:600}.checkout-suggestions{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:12px;background:#ffa5021a;border:1px solid var(--warning);margin:12px 0}.checkout-suggestions .title{font-size:12px;color:var(--warning);text-transform:uppercase;letter-spacing:1px}.checkout-suggestions .combo{font-size:16px;font-weight:500;color:var(--text-primary)}.undo-button{position:fixed;bottom:20px;left:20px;width:56px;height:56px;border-radius:50%;border:none;background:var(--bg-card);color:var(--text-secondary);font-size:24px;cursor:pointer;box-shadow:var(--shadow);transition:all .2s;z-index:100}.undo-button:hover{background:var(--danger);color:#fff}.undo-button:disabled{opacity:.3;cursor:not-allowed}.end-turn-button{position:fixed;bottom:20px;right:20px;width:56px;height:56px;border-radius:50%;border:none;background:var(--accent);color:#fff;font-size:20px;font-weight:600;cursor:pointer;box-shadow:var(--shadow);transition:all .2s;z-index:100}.end-turn-button:hover{transform:scale(1.1)}.miss-button{padding:12px 24px;border-radius:12px;border:2px solid rgba(255,255,255,.2);background:transparent;color:var(--text-secondary);font-size:14px;cursor:pointer;transition:all .2s;margin-top:12px}.miss-button:hover{border-color:var(--danger);color:var(--danger)}.match-result{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#000000e6;z-index:200;animation:fadeIn .5s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.match-result h1{font-size:36px;color:var(--accent);margin-bottom:16px}.match-result .winner{font-size:24px;color:var(--success);margin-bottom:32px}.loading{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--text-secondary)}.loading:after{content:"";width:32px;height:32px;border:3px solid var(--bg-card);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin-left:12px}@keyframes spin{to{transform:rotate(360deg)}}.error{padding:12px 16px;border-radius:12px;background:#ff47571a;border:1px solid var(--danger);color:var(--danger);font-size:14px;margin:12px 0}
