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