.scoreboard{width:100%}.scoreboard-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:1.75rem;padding-bottom:1rem;display:flex;position:relative}.scoreboard-header:after{content:"";background:var(--gold-dark);width:48px;height:2px;position:absolute;bottom:-3px;left:0}.scoreboard-header h2{letter-spacing:.14em;color:var(--cream);font-family:Bebas Neue,sans-serif;font-size:1.6rem}.reset-button{border:1px solid var(--border-mid);color:var(--text-secondary);letter-spacing:.05em;cursor:pointer;background:0 0;border-radius:2px;padding:.45rem 1.1rem;font-family:EB Garamond,Georgia,serif;font-size:1.05rem;transition:all .18s}.reset-button:hover{border-color:var(--gold-dark);color:var(--gold);background:#c9a2270d}.winner-banner{background:linear-gradient(135deg, var(--green) 0%, #0f3a1a 100%);text-align:center;box-shadow:0 0 40px var(--green-glow);border:1px solid #27ae604d;border-radius:2px;margin-bottom:2rem;padding:2rem;position:relative;overflow:hidden}.winner-banner:before{content:"";pointer-events:none;background:radial-gradient(#27ae6026 0%,#0000 70%);position:absolute;inset:0}.winner-banner h3{color:var(--cream);letter-spacing:.12em;margin-bottom:1rem;font-family:Bebas Neue,sans-serif;font-size:2.4rem}.print-button{color:var(--cream);cursor:pointer;letter-spacing:.06em;background:0 0;border:1px solid #f0e8d066;border-radius:2px;padding:.6rem 1.5rem;font-family:EB Garamond,Georgia,serif;font-size:1rem;transition:all .2s}.print-button:hover{border-color:var(--cream);background:#f0e8d01a;transform:translateY(-1px)}.players-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem;margin-bottom:2rem;display:grid}.player-card{background:var(--surface);border:1px solid var(--border);border-radius:2px;padding:1.5rem;transition:all .28s;position:relative}.player-card:before{content:"";background:var(--border);height:2px;transition:background .28s;position:absolute;top:0;left:0;right:0}.player-card.active{border-color:var(--gold-dark);box-shadow:0 0 0 1px #c9a22726, 0 8px 32px #00000080, 0 0 24px var(--gold-glow)}.player-card.active:before{background:linear-gradient(90deg, transparent, var(--gold), transparent)}.player-card.winner{border-color:var(--green-bright);box-shadow:0 0 0 1px #27ae6033, 0 0 28px var(--green-glow)}.player-card.winner:before{background:linear-gradient(90deg, transparent, var(--green-bright), transparent)}.player-header{justify-content:space-between;align-items:center;margin-bottom:1.1rem;display:flex}.player-header h3{color:var(--text);letter-spacing:.03em;font-family:EB Garamond,Georgia,serif;font-size:1.25rem;font-weight:600}.active-badge{background:var(--gold-dark);color:#0b0f0d;text-transform:uppercase;letter-spacing:.14em;border-radius:1px;padding:.2rem .65rem;font-family:EB Garamond,Georgia,serif;font-size:1.05rem;font-weight:700}.player-score{text-align:center;background:var(--surface-mid);border:1px solid var(--border);border-radius:2px;margin-bottom:1rem;padding:1rem;position:relative}.score-value{color:var(--cream);letter-spacing:-.01em;font-family:Bebas Neue,sans-serif;font-size:5rem;line-height:1;transition:color .2s}.player-card.active .score-value{color:var(--gold-light)}.player-card.winner .score-value{color:var(--green-bright)}.score-label{color:var(--text-muted);letter-spacing:.2em;text-transform:uppercase;margin-top:.25rem;font-family:EB Garamond,Georgia,serif;font-size:1.05rem}.current-turn{justify-content:center;align-items:center;min-height:2.75rem;margin-bottom:1rem;display:flex}.turn-darts{align-items:center;gap:.5rem;display:flex}.dart-value{background:var(--gold-dark);color:#0b0f0d;letter-spacing:.06em;border-radius:1px;padding:.35rem .85rem;font-family:Bebas Neue,sans-serif;font-size:1.3rem}.score-history{border-top:1px solid var(--border);padding-top:.85rem}.history-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.2em;margin-bottom:.6rem;font-family:EB Garamond,Georgia,serif;font-size:1.05rem}.history-list{flex-direction:column;gap:.35rem;padding-right:.25rem;display:flex}.history-turn{align-items:center;gap:.4rem;display:flex}.history-dart{background:var(--surface-light);border:1px solid var(--border);color:var(--text-secondary);text-align:center;border-radius:1px;min-width:1.8rem;padding:.18rem .45rem;font-family:EB Garamond,Georgia,serif;font-size:1rem}.turn-total{color:var(--text-muted);letter-spacing:.06em;margin-left:auto;font-family:Bebas Neue,sans-serif;font-size:1.05rem}.checkout-hint{border:1px solid var(--gold-dark);background:#c9a22712;border-radius:2px;align-items:center;gap:.6rem;margin-bottom:1rem;padding:.45rem .75rem;display:flex}.checkout-label{letter-spacing:.18em;text-transform:uppercase;color:var(--gold-dark);white-space:nowrap;font-family:EB Garamond,Georgia,serif;font-size:1.05rem}.checkout-value{letter-spacing:.1em;color:var(--gold);font-family:Bebas Neue,sans-serif;font-size:1.05rem}.score-projected{color:var(--text-secondary);margin-top:.2rem;font-family:EB Garamond,Georgia,serif;font-size:1rem}.score-projected.bust{color:var(--red-bright);font-style:normal;font-weight:600}.winner-sub{color:#f0e8d0b3;margin-bottom:1rem;font-family:EB Garamond,Georgia,serif;font-size:1rem}.turn-header{flex-wrap:wrap;align-items:center;gap:.3rem;margin-bottom:1.25rem;display:flex}.turn-player-name{letter-spacing:.08em;color:var(--cream);margin-right:.75rem;font-family:Bebas Neue,sans-serif;font-size:2rem}.dart-slots{align-items:center;gap:.4rem;margin-left:auto;display:flex}.dart-slot{border:1px solid var(--border-mid);background:var(--surface-mid);letter-spacing:.05em;width:2.6rem;height:2.6rem;color:var(--text-muted);border-radius:2px;justify-content:center;align-items:center;font-family:Bebas Neue,sans-serif;font-size:1rem;transition:all .18s;display:flex}.dart-slot.filled{background:var(--gold-dark);border-color:var(--gold-dark);color:#0b0f0d}.dart-slot.next{border-color:var(--gold-dark);color:var(--text-secondary);border-style:dashed}.dart-subtotal{letter-spacing:.06em;color:var(--gold);margin-left:.2rem;font-family:Bebas Neue,sans-serif;font-size:1.1rem}.history-round{letter-spacing:.06em;color:var(--text-muted);min-width:1.8rem;font-family:Bebas Neue,sans-serif;font-size:.875rem}.input-section{background:var(--surface);border:1px solid var(--border);border-radius:2px;padding:1.75rem;position:relative}.input-section:before{content:"";background:linear-gradient(90deg, transparent, var(--gold-dark), transparent);height:1px;position:absolute;top:0;left:0;right:0}.input-container{align-items:stretch;gap:.6rem;margin-bottom:1.5rem;display:flex}.dart-input{background:var(--surface-mid);border:1px solid var(--border-mid);color:var(--cream);letter-spacing:.08em;border-radius:2px;flex:1;padding:.8rem 1rem;font-family:Bebas Neue,sans-serif;font-size:1.4rem;transition:all .18s}.dart-input::placeholder{color:var(--text-muted);letter-spacing:.04em;font-family:EB Garamond,Georgia,serif;font-size:1rem}.dart-input:focus{border-color:var(--gold-dark);background:var(--surface-light);box-shadow:0 0 0 3px var(--gold-glow);outline:none}.submit-button{background:var(--gold-dark);color:#0b0f0d;letter-spacing:.14em;cursor:pointer;white-space:nowrap;border:none;border-radius:2px;padding:.8rem 1.5rem;font-family:Bebas Neue,sans-serif;font-size:1rem;transition:all .18s}.submit-button:hover{background:var(--gold);box-shadow:0 4px 16px var(--gold-glow);transform:translateY(-1px)}.undo-button{border:1px solid var(--border-mid);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border-radius:2px;padding:.8rem 1rem;font-family:EB Garamond,Georgia,serif;font-size:1.05rem;transition:all .18s}.undo-button:hover:not(:disabled){border-color:var(--red);color:var(--red-bright);background:#9b233514}.undo-button:disabled,.end-turn-button:disabled{opacity:.35;cursor:not-allowed}.end-turn-button{border:1px solid var(--border-mid);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border-radius:2px;padding:.8rem 1rem;font-family:EB Garamond,Georgia,serif;font-size:1.05rem;transition:all .18s}.end-turn-button:hover:not(:disabled){border-color:var(--green-bright);color:var(--green-bright);background:#1b5e321f}.score-selector{flex-direction:column;gap:1.25rem;display:flex}.special-scores{justify-content:center;gap:.6rem;display:flex}.numbers-grid{grid-template-columns:repeat(5,1fr);gap:.5rem;padding:.25rem;display:grid}.number-group{background:var(--surface-mid);border:1px solid var(--border);border-radius:2px;flex-direction:column;gap:.35rem;padding:.6rem .5rem;transition:border-color .15s;display:flex}.number-group:hover{border-color:var(--border-mid)}.number-label{text-align:center;letter-spacing:.05em;color:var(--cream);border-bottom:1px solid var(--border);padding-bottom:.3rem;font-family:Bebas Neue,sans-serif;font-size:1.2rem;line-height:1}.score-options{justify-content:center;gap:.25rem;display:flex}.score-button{letter-spacing:.08em;cursor:pointer;color:#fff;border:none;border-radius:1px;flex:1;min-width:1.8rem;padding:.4rem .3rem;font-family:Bebas Neue,sans-serif;font-size:.875rem;line-height:1;transition:all .14s}.score-button:hover{transform:translateY(-1px)}.score-button:active{transform:translateY(0)}.score-button.single{background:var(--surface-light);color:var(--text-secondary);border:1px solid var(--border-mid)}.score-button.single:hover{background:var(--border-mid);color:var(--cream)}.score-button.double{background:var(--gold-dark);color:#0b0f0d}.score-button.double:hover{background:var(--gold);box-shadow:0 2px 8px var(--gold-glow)}.score-button.triple{background:var(--red);color:var(--cream)}.score-button.triple:hover{background:var(--red-bright);box-shadow:0 2px 8px #9b233566}.score-button.miss{background:var(--surface-mid);color:var(--text-muted);border:1px solid var(--border);flex:none;padding:.6rem 1.2rem;font-size:1.05rem}.score-button.miss:hover{color:var(--text-secondary);border-color:var(--border-mid);background:var(--surface-light)}.score-button.single-bull{background:var(--surface-mid);color:var(--gold);border:1px solid var(--gold-dark);flex:none;padding:.6rem 1.2rem;font-size:1.05rem}.score-button.single-bull:hover{box-shadow:0 2px 8px var(--gold-glow);background:#c9a2271a}.score-button.double-bull{background:var(--red);color:var(--cream);flex:none;padding:.6rem 1.2rem;font-size:1.05rem}.score-button.double-bull:hover{background:var(--red-bright);box-shadow:0 2px 8px #9b233566}@media (width>=601px) and (width<=1024px){.players-grid{grid-template-columns:repeat(2,1fr)}.numbers-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=600px){.scoreboard{padding-bottom:0}.scoreboard-header{margin-bottom:1rem}.players-grid{grid-template-columns:1fr;gap:.75rem;margin-bottom:1rem}.player-card{padding:1rem}.score-value{font-size:3.5rem}.input-section{z-index:20;border-bottom:none;border-left:none;border-right:none;border-radius:0;padding:.875rem;position:sticky;bottom:0;box-shadow:0 -6px 24px #00000080}.turn-header{flex-direction:column;align-items:flex-start;gap:.5rem;margin-bottom:.875rem}.dart-slots{margin-left:0}.input-container{grid-template-rows:auto auto;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:1rem;display:grid}.dart-input{grid-column:1/-1}.submit-button{grid-column:1/-1;padding:.9rem 1rem}.undo-button{text-align:center;grid-column:1;padding:.8rem 1rem}.end-turn-button{text-align:center;grid-column:2;padding:.8rem 1rem;display:block}.numbers-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}.number-group{padding:.75rem .5rem}.number-label{padding-bottom:.4rem;font-size:1.3rem}.score-button{min-width:0;padding:.65rem .4rem;font-size:1rem}.special-scores{gap:.4rem}.score-button.miss,.score-button.single-bull,.score-button.double-bull{flex:1;padding:.6rem .5rem;font-size:.9rem}}@media print{body{background:#fff}.scoreboard-header,.reset-button,.print-button,.input-section,.winner-banner{display:none!important}.players-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;display:grid}.player-card{box-shadow:none!important;background:#fff!important;border:2px solid #333!important}.player-card.winner{background:#f5f5f5!important;border:3px solid #000!important}.player-header h3,.score-value,.score-label,.history-label,.turn-total{color:#000!important}.player-score{border:1px solid #333;background:#f5f5f5!important}.active-badge,.current-turn{display:none}.score-history{border-top:1px solid #333}.history-dart{border:1px solid #ccc;color:#000!important;background:#f5f5f5!important}.history-list{max-height:none!important;overflow:visible!important}@page{margin:1cm;size:A4}}.game-setup{justify-content:center;align-items:center;min-height:70vh;padding:2rem 0;display:flex}.setup-card{background:var(--surface);border:1px solid var(--border);border-radius:2px;width:100%;max-width:480px;padding:3rem;position:relative;box-shadow:0 0 0 1px #c9a22714,0 20px 60px #0009,inset 0 1px #c9a22714}.setup-card:before,.setup-card:after{content:"";border-color:var(--gold-dark);border-style:solid;width:24px;height:24px;position:absolute}.setup-card:before{border-width:1px 0 0 1px;top:12px;left:12px}.setup-card:after{border-width:0 1px 1px 0;bottom:12px;right:12px}.setup-heading{text-align:center;margin-bottom:2.5rem}.setup-heading-label{letter-spacing:.28em;text-transform:uppercase;color:var(--gold-dark);margin-bottom:.5rem;font-family:EB Garamond,Georgia,serif;font-size:1.05rem;display:block}.setup-card h2{letter-spacing:.1em;color:var(--cream);font-family:Bebas Neue,sans-serif;font-size:3rem;line-height:1}.setup-divider{background:linear-gradient(90deg, transparent, var(--gold-dark), transparent);width:48px;height:1px;margin:.85rem auto 0}.setup-section{margin-bottom:2rem}.setup-label{letter-spacing:.22em;color:var(--text-secondary);text-transform:uppercase;margin-bottom:.85rem;font-family:EB Garamond,Georgia,serif;font-size:1.05rem;display:block}.mode-selector{border:1px solid var(--border-mid);border-radius:2px;gap:0;display:flex;overflow:hidden}.mode-button{color:var(--text-secondary);letter-spacing:.12em;cursor:pointer;background:0 0;border:none;flex:1;padding:.85rem 1.5rem;font-family:Bebas Neue,sans-serif;font-size:1.4rem;transition:all .18s;position:relative}.mode-button+.mode-button:before{content:"";background:var(--border-mid);width:1px;position:absolute;top:20%;bottom:20%;left:0}.mode-button:hover{color:var(--cream);background:var(--surface-mid)}.mode-button.active{background:var(--surface-light);color:var(--gold);box-shadow:inset 0 -2px 0 var(--gold)}.players-list{flex-direction:column;gap:.6rem;margin-bottom:.75rem;display:flex}.player-input-row{align-items:center;gap:.5rem;display:flex}.player-number{color:var(--text-muted);letter-spacing:.05em;flex-shrink:0;width:1.2rem;font-family:Bebas Neue,sans-serif;font-size:1rem}.player-input{background:var(--surface-mid);border:1px solid var(--border);color:var(--cream);border-radius:2px;flex:1;padding:.7rem 1rem;font-family:EB Garamond,Georgia,serif;font-size:1.05rem;transition:all .18s}.player-input::placeholder{color:var(--text-muted)}.player-input:focus{border-color:var(--gold-dark);background:var(--surface-light);box-shadow:0 0 0 3px var(--gold-glow);outline:none}.remove-button{border:1px solid var(--border);width:2.2rem;height:2.2rem;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.1rem;line-height:1;transition:all .18s;display:flex}.remove-button:hover{border-color:var(--red);color:var(--red-bright);background:#9b233533}.add-player-button{border:1px dashed var(--border);width:100%;color:var(--text-muted);cursor:pointer;letter-spacing:.05em;background:0 0;border-radius:2px;padding:.7rem;font-family:EB Garamond,Georgia,serif;font-size:1.05rem;transition:all .18s}.add-player-button:hover{border-color:var(--gold-dark);color:var(--gold);background:#c9a2270a}.start-button{border:1px solid var(--gold-dark);width:100%;color:var(--gold);letter-spacing:.18em;cursor:pointer;background:0 0;border-radius:2px;margin-top:1.5rem;padding:1.1rem;font-family:Bebas Neue,sans-serif;font-size:1.4rem;transition:all .22s;position:relative;overflow:hidden}.start-button:before{content:"";opacity:0;background:linear-gradient(135deg,#c9a22714,#c9a22705);transition:opacity .22s;position:absolute;inset:0}.start-button:hover:not(:disabled):before{opacity:1}.start-button:hover:not(:disabled){border-color:var(--gold);color:var(--gold-light);box-shadow:0 0 24px var(--gold-glow), inset 0 0 24px #c9a2270d;transform:translateY(-1px)}.start-button:disabled{opacity:.3;cursor:not-allowed;border-color:var(--border);color:var(--text-muted)}@media (width<=768px){.game-setup{min-height:unset;align-items:flex-start;padding:0}.setup-card{box-shadow:none;border-left:none;border-right:none;border-radius:0;max-width:100%;padding:2rem 1.5rem}.setup-card:before,.setup-card:after{display:none}.setup-card h2{font-size:2.4rem}.mode-button{padding:.75rem 1rem;font-size:1.2rem}.start-button{padding:1rem;font-size:1.25rem}}.confirm-dialog-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1000;background:#000000bf;justify-content:center;align-items:center;animation:.22s ease-out overlayIn;display:flex;position:fixed;inset:0}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.confirm-dialog{background:var(--surface);border:1px solid var(--border-mid);border-radius:2px;width:90%;max-width:400px;animation:.28s cubic-bezier(.34,1.2,.64,1) dialogIn;position:relative;overflow:hidden;box-shadow:0 0 0 1px #c9a22714,0 24px 64px #000000b3}.confirm-dialog:before{content:"";background:linear-gradient(90deg, transparent, var(--gold-dark), transparent);height:1px;position:absolute;top:0;left:0;right:0}@keyframes dialogIn{0%{opacity:0;transform:translateY(18px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.confirm-dialog-header{padding:1.5rem 2rem 1.2rem}.confirm-dialog-header h3{letter-spacing:.1em;color:var(--cream);font-family:Bebas Neue,sans-serif;font-size:1.6rem}.confirm-dialog-body{padding:0 2rem 1.5rem}.confirm-dialog-body p{color:var(--text-secondary);font-family:EB Garamond,Georgia,serif;font-size:1.05rem;line-height:1.65}.confirm-dialog-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:.75rem;padding:1.2rem 2rem;display:flex}.confirm-button{cursor:pointer;letter-spacing:.04em;border-radius:2px;padding:.6rem 1.4rem;font-family:EB Garamond,Georgia,serif;font-size:1.05rem;transition:all .18s}.confirm-button.cancel{border:1px solid var(--border-mid);color:var(--text-secondary);background:0 0}.confirm-button.cancel:hover{border-color:var(--border-mid);background:var(--surface-mid);color:var(--text)}.confirm-button.confirm{background:var(--gold-dark);border:1px solid var(--gold-dark);color:#0b0f0d;font-weight:600}.confirm-button.confirm:hover{background:var(--gold);border-color:var(--gold);box-shadow:0 4px 16px var(--gold-glow);transform:translateY(-1px)}.confirm-button:active{transform:translateY(0)!important}@media (width<=768px){.confirm-dialog{width:94%}.confirm-dialog-header,.confirm-dialog-body,.confirm-dialog-footer{padding-left:1.5rem;padding-right:1.5rem}.confirm-dialog-header h3{font-size:1.35rem}}.app{flex-direction:column;min-height:100vh;display:flex}.app-header{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding:0 2.5rem;display:flex;position:relative}.app-header:after{content:"";background:linear-gradient(90deg, transparent, var(--gold-dark), var(--gold), var(--gold-dark), transparent);height:2px;position:absolute;bottom:-3px;left:0;right:0}.header-brand{align-items:center;gap:.75rem;padding:1.1rem 0;display:flex}.header-dart-icon{opacity:.85;flex-shrink:0;width:36px;height:36px}.app-header h1{letter-spacing:.08em;color:var(--cream);font-family:Bebas Neue,sans-serif;font-size:2.2rem;line-height:1}.header-mode-badge{color:var(--text-secondary);letter-spacing:.12em;text-transform:uppercase;align-self:flex-end;padding-bottom:1.35rem;font-family:EB Garamond,Georgia,serif;font-size:1rem}.app-main{flex:1;width:100%;max-width:1440px;margin:0 auto;padding:2rem}@media (width<=768px){.app-header{padding:0 1rem}.app-header h1{font-size:1.6rem}.header-dart-icon{width:26px;height:26px}.app-main{padding:1rem .75rem}}@media (width<=600px){.app-main{padding:.875rem .75rem 0}}@media print{.app-header{display:none}.app-main{max-width:100%;padding:0}}*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0b0f0d;--surface:#131a17;--surface-mid:#192019;--surface-light:#212e27;--border:#2c3c33;--border-mid:#3a5042;--gold:#c9a227;--gold-light:#e2bb3f;--gold-dark:#8c6f14;--gold-glow:#c9a22740;--green:#1b5e32;--green-bright:#27ae60;--green-glow:#1b5e3266;--red:#9b2335;--red-bright:#e53935;--cream:#faf5e8;--text:#f0e8d5;--text-secondary:#cfc4a8;--text-muted:#a0957e}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg);color:var(--text);background-image:radial-gradient(80% 60% at 20% 0,#1b5e321f 0%,#0000 60%),radial-gradient(60% 40% at 80% 100%,#c9a22712 0%,#0000 50%);min-height:100vh;font-family:EB Garamond,Georgia,serif}#root{flex-direction:column;min-height:100vh;display:flex}@media (width>=601px){::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:var(--surface)}::-webkit-scrollbar-thumb{background:var(--gold-dark);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--gold)}}
