:root{--bg-color:#121212;--surface-color:#1e1e1e;--surface-light:#2c2c2c;--text-main:#ffffff;--text-muted:#a0a0a0;--border-color:#444444;--modal-overlay:rgba(0,0,0,0.8);--primary:#4caf50;--primary-hover:#45a049;--danger:#f44336;--warning:#ff9800;--accent:#2196f3;--board-black:#000000;--board-white:#f5f5dc;--board-red:#e53935;--board-green:#43a047;--font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;--transition:0.3s ease}[data-theme="light"]{--bg-color:#f0f2f5;--surface-color:#ffffff;--surface-light:#e4e6eb;--text-main:#1c1e21;--text-muted:#65676b;--border-color:#ced0d4;--modal-overlay:rgba(0,0,0,0.5)}*{box-sizing:border-box;margin:0;padding:0;user-select:none}html{font-size:90%}body{background-color:var(--bg-color);color:var(--text-main);font-family:var(--font-family);min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden;overscroll-behavior:none;transition:background-color var(--transition),color var(--transition)}label{display:block;margin-bottom:8px;font-weight:bold;color:var(--text-muted)}button{cursor:pointer;border:none;outline:none;font-family:inherit;color:var(--text-main);border-radius:8px;transition:background-color var(--transition),transform 0.1s}button:active{transform:scale(0.95)}input,select,textarea{font-family:inherit;background:var(--surface-light);color:var(--text-main);border:1px solid var(--border-color);padding:12px;border-radius:8px;width:100%;margin-bottom:15px;transition:background-color var(--transition),color var(--transition),border-color var(--transition)}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:var(--text-muted);opacity:0.7}h1,h2,h3{margin-bottom:10px}.title-main{font-weight:600;color:var(--text-main)}.title-pro{font-weight:300;color:var(--danger);margin-left:5px}#ui-title-setup{text-align:center}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a0a0a0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 15px center;background-size:16px;padding-right:45px;cursor:pointer}.view-container{display:none;flex:1;width:100%;height:100vh;overflow:hidden}.view-container.active{display:flex;flex-direction:column}#setup-view,#winner-view,#stats-view{justify-content:flex-start;align-items:center;padding:20px;overflow-y:auto}.card{background:var(--surface-color);padding:30px;border-radius:16px;width:100%;max-width:500px;box-shadow:0 10px 30px rgba(0,0,0,0.15);transition:background-color var(--transition);position:relative;margin-top:auto;margin-bottom:auto}.card-toolbar{display:flex;justify-content:flex-end;gap:10px;margin-bottom:15px}.toolbar-btn{width:42px;height:42px;border-radius:50%;background:var(--surface-light);border:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:bold;box-shadow:0 4px 10px rgba(0,0,0,0.1);transition:background-color var(--transition),transform 0.1s;text-transform:uppercase}.toolbar-btn:hover{background:var(--border-color)}.btn-primary{background:var(--primary);padding:15px;font-size:1.1rem;font-weight:bold;width:100%;margin-top:10px;color:white}.btn-primary:hover{background:var(--primary-hover)}.player-inputs{padding-right:0px}.format-row{display:flex;gap:10px}.sticky-banner{background:var(--surface-color);padding:15px 20px;display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid var(--surface-light);position:sticky;top:0;z-index:10;transition:background-color var(--transition),border-color var(--transition)}.banner-stats h2{font-size:1.5rem;margin:0 0 8px 0}.banner-stats p{color:var(--text-muted);font-size:0.9rem;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.stat-badge{background:var(--surface-light);padding:3px 8px;border-radius:6px;color:var(--text-muted);font-weight:bold;border:1px solid var(--border-color)}.checkout-hint{color:var(--warning);font-weight:bold;font-size:1.1rem;text-align:right;max-width:200px;line-height:1.4}.dart-history{display:flex;gap:10px;margin:15px 0;justify-content:center}.dart-box{min-width:60px;height:60px;padding:0 10px;white-space:nowrap;background:var(--surface-light);border-radius:12px;display:flex;justify-content:center;align-items:center;font-size:1.2rem;font-weight:bold;border:2px solid var(--border-color);transition:background-color var(--transition),border-color var(--transition)}.copyright-footer{margin-top:20px;padding-bottom:20px;width:100%;text-align:center;color:var(--text-muted);font-size:0.9rem;flex-shrink:0}.scoreboard-container{display:flex;flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x mandatory;padding:10px;gap:15px;scrollbar-width:none}.scoreboard-container::-webkit-scrollbar{display:none}.player-card{flex:0 0 140px;scroll-snap-align:center;background:var(--surface-light);padding:15px;border-radius:12px;text-align:center;opacity:0.6;transition:opacity 0.3s,transform 0.3s,background-color var(--transition),border-color var(--transition);border:2px solid transparent}.player-card.active{opacity:1;transform:scale(1.05);border-color:var(--primary)}.score-wrapper{position:relative;display:flex;justify-content:center;align-items:center;height:3rem;margin:5px 0}.score-delta{position:absolute;font-size:2rem;font-weight:bold;animation:hideDelta 0.8s forwards;z-index:2;text-align:center}.score-delta.good{color:var(--primary)}.score-delta.bad{color:var(--danger)}.score-value{font-size:2rem;font-weight:bold;text-align:center;z-index:1}.score-value.animated{animation:showValue 0.8s forwards}@keyframes hideDelta{0%{opacity:1;transform:scale(1.2)}15%{opacity:1;transform:scale(1.1)}80%{opacity:1;transform:scale(1)}100%{opacity:0;visibility:hidden}}@keyframes showValue{0%{opacity:0;visibility:hidden}80%{opacity:0;visibility:hidden}100%{opacity:1;visibility:visible}}.legs-sets{font-size:0.85rem;color:var(--text-muted);font-weight:bold}.controls-bar{display:flex;gap:10px;padding:10px;justify-content:center}.btn-control{background:var(--surface-light);padding:10px 20px;border-radius:8px;font-weight:bold;border:1px solid var(--border-color)}.input-area{flex:1;display:flex;justify-content:center;align-items:center;padding:20px;position:relative;overflow:hidden}#dartboard-container{display:none;position:relative;aspect-ratio:1;width:min(100%,calc(100vh - 40px));max-height:100%;overflow:hidden;border-radius:16px;-webkit-tap-highlight-color:transparent;z-index:10}svg{width:100%;height:100%;transition:transform 0.2s cubic-bezier(0.2,0.8,0.2,1);will-change:transform;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;position:relative;z-index:20}.segment{cursor:pointer;transition:opacity 0.1s,stroke 0.1s}.segment.highlighted{opacity:0.8;stroke:var(--warning);stroke-width:3px}.segment-label{font-size:32px;fill:#ffffff;font-weight:bold;text-anchor:middle;dominant-baseline:central;pointer-events:none}#dart-indicator{position:absolute;top:10px;left:10px;background:rgba(0,0,0,0.8);color:var(--warning);padding:6px 16px;border-radius:8px;font-size:1.5rem;font-weight:bold;pointer-events:none;opacity:0;transition:opacity 0.2s ease;z-index:100;border:2px solid var(--border-color);box-shadow:0 4px 10px rgba(0,0,0,0.5)}#dart-indicator.visible{opacity:1}#keypad-container{width:100%;max-width:400px;display:flex;flex-direction:column;gap:10px}.keypad-row{display:flex;gap:10px;justify-content:center}.key-btn{flex:1;aspect-ratio:1.5;background:var(--surface-light);font-size:1.5rem;font-weight:bold;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-color)}.key-btn.modifier{background:var(--surface-color)}.key-btn.modifier.active{background:var(--accent);color:white;border-color:var(--accent)}.key-btn.miss{background:var(--danger);color:white;border-color:var(--danger)}.key-btn.bull{background:var(--board-green);color:white;aspect-ratio:auto;padding:15px 0;border-color:var(--board-green)}.key-btn.bullseye{background:var(--board-red);color:white;aspect-ratio:auto;padding:15px 0;border-color:var(--board-red)}.highlight-target{animation:pulse-target 1s infinite alternate}@keyframes pulse-target{0%{box-shadow:0 0 5px var(--warning);border:2px solid transparent}100%{box-shadow:0 0 20px var(--warning);border:2px solid var(--warning)}}#calculator-container{width:100%;max-width:400px;display:flex;flex-direction:column;gap:10px;justify-content:center;position:relative}.calc-display-container{background:var(--board-black);padding:10px 20px;border-radius:8px;border:1px solid var(--border-color);text-align:right;overflow:hidden;display:flex;align-items:center;justify-content:flex-end;height:60px;margin-bottom:5px}#calc-display{font-size:2.5rem;font-weight:bold;color:var(--primary);font-family:monospace;line-height:1}.calc-row{display:flex;gap:10px;justify-content:center}.calc-btn{flex:1;aspect-ratio:2;background:var(--surface-light);font-size:1.5rem;font-weight:bold;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-color);border-radius:8px}.calc-btn.danger{background:var(--danger);color:white;border-color:var(--danger)}.calc-btn.primary{background:var(--primary);color:white;border-color:var(--primary)}@media (min-width:768px){#game-view.active{flex-direction:row}.left-panel{flex:0 0 400px;border-right:2px solid var(--surface-light);display:flex;flex-direction:column;height:100vh;overflow-y:auto}.right-panel{flex:1;display:flex;flex-direction:column}.scoreboard-container{flex-wrap:wrap;overflow-x:visible;justify-content:center}.player-card{flex:0 0 45%}}@media (max-width:767px){.left-panel,.right-panel{display:contents}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--modal-overlay);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;flex-direction:column;align-items:center;overflow-y:auto;padding:40px 20px;z-index:1000;opacity:0;pointer-events:none;transition:opacity 0.3s ease,background 0.3s ease}.modal-overlay.active{opacity:1;pointer-events:auto}.modal-content{background:var(--surface-color);padding:30px;border-radius:16px;text-align:center;transform:scale(0.8);transition:transform 0.3s cubic-bezier(0.175,0.885,0.32,1.275);width:100%;max-width:640px;margin:auto;flex-shrink:0}.modal-overlay.active .modal-content{transform:scale(1)}.modal-pill-container{display:flex;gap:10px;justify-content:center;margin:20px 0}.modal-pill{padding:10px 20px;border-radius:20px;background:var(--surface-light);font-weight:bold}.modal-pill.bust{background:var(--danger);color:white}.special-effect-text{font-size:3rem;color:var(--warning);font-weight:bold;margin-bottom:10px;text-shadow:0 0 20px var(--warning);white-space:nowrap}.floating-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:4rem;font-weight:bold;color:var(--warning);text-shadow:0 5px 15px rgba(0,0,0,0.8);pointer-events:none;z-index:50;animation:floatUpFade 1.2s forwards;white-space:nowrap}@keyframes floatUpFade{0%{opacity:0;transform:translate(-50%,-30%) scale(0.5)}20%{opacity:1;transform:translate(-50%,-50%) scale(1.2)}80%{opacity:1;transform:translate(-50%,-60%) scale(1)}100%{opacity:0;transform:translate(-50%,-80%) scale(1)}}canvas#confetti{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:999}table{width:100%;border-collapse:collapse;margin-top:20px}th,td{padding:10px;border-bottom:1px solid var(--border-color);text-align:left;transition:border-color var(--transition)}textarea::-webkit-resizer{display:none}.marks-container{display:grid;gap:8px;margin-top:15px;background:var(--surface-color);padding:10px;border-radius:8px}.marks-grid-15{grid-template-columns:repeat(4,1fr)}.marks-grid-10{grid-template-columns:repeat(6,1fr)}@media (orientation:landscape){.marks-grid-10{grid-template-columns:repeat(4,1fr)}}