:root{--primary: #2563eb;--primary-dark: #1d4ed8;--secondary: #64748b;--success: #22c55e;--warning: #f59e0b;--error: #ef4444;--bg-primary: #0f172a;--bg-secondary: #1e293b;--bg-card: #334155;--text-primary: #f8fafc;--text-secondary: #94a3b8;--text-muted: #64748b;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: 1rem}*{margin:0;padding:0;box-sizing:border-box}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100vh}#root{min-height:100vh;display:flex;flex-direction:column}.container{max-width:800px;margin:0 auto;padding:var(--space-md)}.card{background-color:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-lg)}button{cursor:pointer;font-size:1rem;padding:var(--space-sm) var(--space-lg);border:none;border-radius:var(--radius-md);transition:all .2s ease}button.primary{background-color:var(--primary);color:#fff}button.primary:hover{background-color:var(--primary-dark)}button.secondary{background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--secondary)}button.secondary:hover{background-color:var(--bg-card)}button:disabled{opacity:.5;cursor:not-allowed}input,select{font-size:1rem;padding:var(--space-sm) var(--space-md);border:1px solid var(--secondary);border-radius:var(--radius-md);background-color:var(--bg-secondary);color:var(--text-primary)}input:focus,select:focus{outline:none;border-color:var(--primary)}input::placeholder{color:var(--text-muted)}h1{font-size:2rem;font-weight:700;margin-bottom:var(--space-md)}h2{font-size:1.5rem;font-weight:600;margin-bottom:var(--space-md)}h3{font-size:1.25rem;font-weight:600;margin-bottom:var(--space-sm)}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background-color:var(--bg-secondary);padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--bg-card);display:flex;align-items:center;justify-content:center;position:relative}.app-header h1{margin:0;font-size:1.5rem}.history-button{position:absolute;right:var(--space-lg);background:transparent;border:none;font-size:1.5rem;cursor:pointer;padding:.25rem;border-radius:8px;transition:background .2s}.history-button:hover{background:var(--bg-card)}.app-main{flex:1;padding:var(--space-lg) 0}.player-setup form{display:flex;flex-direction:column;gap:var(--space-xl)}.player-count-section,.player-names-section{display:flex;flex-direction:column;gap:var(--space-sm)}.player-count-section label,.player-names-section label{font-weight:600;color:var(--text-secondary);font-size:.9rem;text-transform:uppercase;letter-spacing:.05em}.player-count-controls{display:flex;align-items:center;gap:var(--space-md)}.count-btn{width:48px;height:48px;border-radius:50%;font-size:1.5rem;font-weight:600;background-color:var(--bg-secondary);color:var(--text-primary);border:2px solid var(--secondary);display:flex;align-items:center;justify-content:center;padding:0}.count-btn:hover:not(:disabled){background-color:var(--primary);border-color:var(--primary)}.count-btn:disabled{opacity:.3;cursor:not-allowed}.count-display{font-size:2rem;font-weight:700;min-width:60px;text-align:center}.player-inputs{display:flex;flex-direction:column;gap:var(--space-sm)}.player-input{display:flex;align-items:center;gap:var(--space-sm);position:relative}.player-number{width:32px;height:32px;border-radius:50%;background-color:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.9rem;flex-shrink:0}.player-input input{flex:1;padding:var(--space-md)}.player-input.error input{border-color:var(--error)}.error-msg{position:absolute;right:var(--space-sm);color:var(--error);font-size:.8rem}.start-btn{margin-top:var(--space-md);padding:var(--space-md) var(--space-xl);font-size:1.1rem;font-weight:600}.confirm-dialog-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.confirm-dialog{background:var(--bg-card, #ffffff);border-radius:12px;padding:1.5rem;max-width:400px;width:100%;box-shadow:0 10px 40px #0000004d}.confirm-dialog-title{margin:0 0 .75rem;font-size:1.25rem;color:var(--text-primary, #1a1a2e)}.confirm-dialog-message{margin:0 0 1.5rem;color:var(--text-secondary, #64748b);line-height:1.5}.confirm-dialog-actions{display:flex;gap:.75rem;justify-content:flex-end}.confirm-dialog-actions button{padding:.625rem 1.25rem;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s}.confirm-dialog-actions button.secondary{background:var(--bg-secondary, #f1f5f9);border:1px solid var(--border-color, #e2e8f0);color:var(--text-primary, #1a1a2e)}.confirm-dialog-actions button.secondary:hover{background:var(--bg-hover, #e2e8f0)}.confirm-dialog-actions button.primary{background:var(--primary, #6366f1);border:none;color:#fff}.confirm-dialog-actions button.primary:hover{background:var(--primary-hover, #4f46e5)}.confirm-dialog-actions button.danger{background:#ef4444;border:none;color:#fff}.confirm-dialog-actions button.danger:hover{background:#dc2626}.scoreboard{padding:var(--space-md) 0}.winner-banner{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#1a1a1a;padding:var(--space-xl);border-radius:var(--radius-lg);text-align:center;margin-bottom:var(--space-lg);animation:celebrate .5s ease-out}@keyframes celebrate{0%{transform:scale(.8);opacity:0}50%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}.winner-banner .trophy{font-size:3rem;margin-bottom:var(--space-sm)}.winner-banner h2{margin:0;font-size:1.75rem}.winner-banner p{margin:var(--space-sm) 0 0;opacity:.9}.game-stats{display:flex;justify-content:center;gap:var(--space-xl);margin-bottom:var(--space-lg)}.stat{text-align:center}.stat-value{display:block;font-size:2rem;font-weight:700;color:var(--primary)}.stat-label{font-size:.8rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.final-standings-title{text-align:center;color:var(--text-secondary);margin-bottom:var(--space-md);font-size:1rem;text-transform:uppercase;letter-spacing:.1em}.round-header{display:flex;flex-direction:column;align-items:center;margin-bottom:var(--space-lg)}.round-label{text-transform:uppercase;font-size:.8rem;letter-spacing:.1em;color:var(--text-muted)}.round-number{font-size:3rem;font-weight:700;color:var(--primary)}.player-cards{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-xl)}.player-card{background-color:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-lg);display:flex;align-items:center;gap:var(--space-md);position:relative;border:2px solid transparent;transition:all .2s ease}.player-card:hover{transform:translate(4px)}.player-card.phase-complete{border-color:var(--success)}.player-card.winner{border-color:#fbbf24;background:linear-gradient(135deg,var(--bg-card) 0%,rgba(251,191,36,.1) 100%)}.player-rank{font-size:1.25rem;font-weight:700;color:var(--text-muted);min-width:40px}.player-card:first-child .player-rank{color:#fbbf24}.player-card:nth-child(2) .player-rank{color:#94a3b8}.player-card:nth-child(3) .player-rank{color:#cd7f32}.player-info{flex:1}.player-name{margin:0 0 var(--space-xs) 0;font-size:1.1rem}.phase-info{display:flex;flex-wrap:wrap;gap:var(--space-sm);align-items:center}.phase-number{background-color:var(--primary);color:#fff;padding:2px 8px;border-radius:var(--radius-sm);font-size:.8rem;font-weight:600}.phase-desc{color:var(--text-muted);font-size:.85rem}.player-score{text-align:right}.score-value{font-size:1.5rem;font-weight:700;display:block}.score-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase}.complete-badge{position:absolute;top:-8px;right:-8px;width:28px;height:28px;background-color:var(--success);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem}.scoreboard-actions{display:flex;flex-direction:column;gap:var(--space-sm)}.scoreboard-actions button{width:100%;padding:var(--space-md);font-size:1rem}@media(min-width:480px){.scoreboard-actions{flex-direction:row}.scoreboard-actions button{flex:1}}.game-history{min-height:100vh;padding:1rem}.history-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.history-header h2{flex:1;margin:0;font-size:1.5rem}.back-button{background:var(--bg-secondary, #f1f5f9);border:1px solid var(--border-color, #e2e8f0);color:var(--text-primary, #1a1a2e);padding:.5rem 1rem;border-radius:8px;cursor:pointer;font-weight:500}.back-button:hover{background:var(--bg-hover, #e2e8f0)}.clear-button{background:transparent;border:1px solid #ef4444;color:#ef4444;padding:.5rem 1rem;border-radius:8px;cursor:pointer;font-size:.875rem}.clear-button:hover{background:#fef2f2}.no-history{text-align:center;padding:3rem 1rem;color:var(--text-secondary, #64748b)}.no-history p{margin:.5rem 0}.no-history .hint{font-size:.875rem;opacity:.7}.history-list{display:flex;flex-direction:column;gap:1rem}.history-card{background:var(--bg-card, #ffffff);border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #0000001a}.history-card-header{display:flex;align-items:center;padding:1rem;cursor:pointer;transition:background .2s}.history-card-header:hover{background:var(--bg-hover, #f8fafc)}.game-summary{flex:1;display:flex;flex-direction:column;gap:.25rem}.winner-name{font-weight:600;font-size:1rem}.game-meta{font-size:.875rem;color:var(--text-secondary, #64748b)}.game-date{font-size:.75rem;color:var(--text-secondary, #64748b);margin-right:.5rem}.expand-icon{font-size:.75rem;color:var(--text-secondary, #64748b);transition:transform .2s}.expand-icon.expanded{transform:rotate(180deg)}.history-card-details{padding:0 1rem 1rem;border-top:1px solid var(--border-color, #e2e8f0)}.final-scores,.round-breakdown{margin-top:1rem}.final-scores h4,.round-breakdown h4{font-size:.875rem;color:var(--text-secondary, #64748b);margin:0 0 .75rem;text-transform:uppercase;letter-spacing:.05em}.final-scores table,.rounds-table{width:100%;border-collapse:collapse;font-size:.875rem}.final-scores th,.final-scores td,.rounds-table th,.rounds-table td{padding:.5rem;text-align:left;border-bottom:1px solid var(--border-color, #e2e8f0)}.final-scores th,.rounds-table th{font-weight:600;color:var(--text-secondary, #64748b);font-size:.75rem;text-transform:uppercase}.winner-row{background:#fef9c3}.rounds-table-wrapper{overflow-x:auto;margin:0 -.5rem;padding:0 .5rem}.rounds-table .round-num{font-weight:600;color:var(--text-secondary, #64748b)}.rounds-table td.phase-complete{background:#dcfce7}.round-score{display:inline-block}.phase-badge{display:inline-block;margin-left:.25rem;color:#16a34a;font-size:.75rem}.score-input-overlay{position:fixed;inset:0;background-color:#000c;display:flex;align-items:center;justify-content:center;padding:var(--space-md);z-index:100;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.score-input-modal{background-color:var(--bg-secondary);border-radius:var(--radius-lg);padding:var(--space-lg);width:100%;max-width:500px;max-height:90vh;overflow-y:auto;animation:slideUp .2s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.score-input-modal h2{margin-bottom:var(--space-md);text-align:center}.scoring-reference{display:flex;flex-wrap:wrap;gap:var(--space-sm) var(--space-md);justify-content:center;padding:var(--space-sm) var(--space-md);background-color:var(--bg-card);border-radius:var(--radius-md);margin-bottom:var(--space-lg);font-size:.85rem;color:var(--text-secondary)}.scoring-reference strong{color:var(--text-primary)}.score-inputs{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-xl)}.score-row{background-color:var(--bg-card);border-radius:var(--radius-md);padding:var(--space-md);display:grid;grid-template-columns:1fr auto;gap:var(--space-sm) var(--space-md);align-items:center;border:2px solid transparent}.score-row.has-error{border-color:var(--error)}.player-info{display:flex;flex-direction:column;gap:2px}.player-name{font-weight:600}.player-phase{font-size:.8rem;color:var(--text-muted)}.score-field{position:relative}.score-field input{width:80px;text-align:center;font-size:1.25rem;font-weight:600;padding:var(--space-sm)}.score-field .error-text{position:absolute;top:100%;left:0;right:0;font-size:.75rem;color:var(--error);text-align:center}.phase-checkbox{grid-column:1 / -1;display:flex;align-items:center;gap:var(--space-sm);cursor:pointer;padding-top:var(--space-sm);border-top:1px solid var(--bg-secondary)}.phase-checkbox input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:var(--success)}.checkbox-label{font-size:.9rem;color:var(--text-secondary)}.phase-checkbox:has(input:checked) .checkbox-label{color:var(--success);font-weight:600}.modal-actions{display:flex;gap:var(--space-sm)}.modal-actions button{flex:1;padding:var(--space-md)}
