:root{--primary: #3b82f6;--primary-dark: #2563eb;--success: #10b981;--success-light: #d1fae5;--error: #ef4444;--error-light: #fee2e2;--warning: #f59e0b;--text: #1f2937;--text-light: #6b7280;--bg: #f9fafb;--bg-light: #f3f4f6;--border: #e5e7eb;--border-light: #f3f4f6}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:var(--text);background-color:var(--bg);line-height:1.5}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background:#fff;border-bottom:1px solid var(--border);padding:1.5rem 2rem;display:flex;justify-content:space-between;align-items:center;box-shadow:0 1px 3px #0000001a}.app-header h1{font-size:1.875rem;font-weight:700}.tabs{display:flex;gap:1rem;background:#fff;border-bottom:1px solid var(--border);padding:0 2rem;overflow-x:auto}.tab{padding:1rem 1.5rem;border:none;background:none;cursor:pointer;font-size:.95rem;font-weight:500;color:var(--text-light);border-bottom:3px solid transparent;transition:all .2s}.tab:hover{color:var(--text);border-bottom-color:var(--primary)}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.app-content{flex:1;padding:2rem;max-width:1200px;margin:0 auto;width:100%}.card{background:#fff;border-radius:.5rem;border:1px solid var(--border);padding:1.5rem;box-shadow:0 1px 3px #0000000d;margin-bottom:1.5rem}.card h2{font-size:1.5rem;margin-bottom:1.5rem;color:var(--text)}.card h3{font-size:1.125rem;margin:1.5rem 0 1rem;color:var(--text)}.card:last-child{margin-bottom:0}.form-group{margin-bottom:1rem}.form-group label{display:block;font-weight:500;margin-bottom:.5rem;color:var(--text)}.form-group input,.form-group select{width:100%;padding:.625rem .75rem;border:1px solid var(--border);border-radius:.375rem;font-size:.95rem;transition:all .2s}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #3b82f61a}.form-group input:disabled,.form-group select:disabled{background-color:var(--bg-light);cursor:not-allowed;opacity:.6}button{padding:.75rem 1.5rem;font-size:.95rem;font-weight:500;border:none;border-radius:.375rem;cursor:pointer;transition:all .2s}.btn-primary,button[type=submit]{background-color:var(--primary);color:#fff}.btn-primary:hover,button[type=submit]:hover{background-color:var(--primary-dark);box-shadow:0 4px 6px #3b82f64d}.btn-primary:disabled,button[type=submit]:disabled{background-color:var(--text-light);cursor:not-allowed;opacity:.6}button[type=button]{background-color:var(--bg-light);color:var(--text);border:1px solid var(--border)}button[type=button]:hover{background-color:var(--border)}button[type=button]:disabled{opacity:.6;cursor:not-allowed}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;border-radius:.5rem;padding:2rem;max-width:400px;width:90%;box-shadow:0 20px 25px -5px #0000001a}.modal-content h2{margin-bottom:1.5rem;color:var(--text)}.modal-content form{display:flex;flex-direction:column;gap:1rem}.modal-buttons{display:flex;gap:1rem;justify-content:flex-end;margin-top:1rem}.modal-buttons button{flex:1}.error-message{background-color:var(--error-light);color:var(--error);padding:.75rem 1rem;border-radius:.375rem;font-size:.9rem;border-left:4px solid var(--error)}.success-message{background-color:var(--success-light);color:var(--success);padding:.75rem 1rem;border-radius:.375rem;font-size:.9rem;border-left:4px solid var(--success)}.leaderboard-table{width:100%;border-collapse:collapse}.leaderboard-table thead{background-color:var(--bg-light)}.leaderboard-table th{padding:1rem;text-align:left;font-weight:600;color:var(--text);border-bottom:2px solid var(--border)}.leaderboard-table td{padding:1rem;border-bottom:1px solid var(--border-light)}.leaderboard-table tbody tr:hover{background-color:var(--bg)}.leaderboard-table tbody tr.clickable-row{cursor:pointer}.rank{font-weight:600;color:var(--primary);width:60px}.name{font-weight:500}.elo{font-weight:600;font-size:1.125rem;color:var(--primary)}.matches{text-align:center;color:var(--text-light)}.record{text-align:center;font-weight:500}.winrate{text-align:center;font-weight:500;color:var(--success)}.match-history-list{display:flex;flex-direction:column;gap:1.5rem}.match-card{background:var(--bg);border:1px solid var(--border);border-radius:.5rem;padding:1.5rem;transition:all .2s}.match-card:hover{box-shadow:0 4px 6px #0000001a}.match-teams{display:flex;align-items:center;gap:1.5rem;margin-bottom:1rem}.team{flex:1;padding:1rem;border-radius:.375rem;border:2px solid var(--border)}.team.winner{background-color:var(--success-light);border-color:var(--success)}.team.loser{background-color:var(--error-light);border-color:var(--error);opacity:.7}.team-name{font-weight:600;margin-bottom:.75rem;color:var(--text)}.team-players{display:flex;flex-direction:column;gap:.5rem}.player{display:flex;justify-content:space-between;align-items:center;font-size:.95rem}.elo-change{font-weight:600;font-size:.9rem;padding:.25rem .5rem;border-radius:.25rem}.elo-change.positive{color:var(--success);background-color:#10b9811a}.elo-change.negative{color:var(--error);background-color:#ef44441a}.player-elo-details{display:flex;align-items:center;gap:.75rem;font-size:.9rem;padding:.5rem;border-radius:.25rem;background:#fff6}.player-name{font-weight:500;min-width:100px}.elo-before{color:var(--text-light);font-size:.85rem}.elo-arrow{color:var(--text-light);font-weight:300}.elo-after{font-weight:600;min-width:45px}.elo-after.positive{color:var(--success)}.elo-after.negative{color:var(--error)}.elo-change-detail{font-size:.8rem;padding:.25rem .5rem;border-radius:.25rem;font-weight:500}.elo-change-detail.positive{color:var(--success);background-color:#10b98126}.elo-change-detail.negative{color:var(--error);background-color:#ef444426}.match-divider{display:flex;align-items:center;justify-content:center;width:60px;font-weight:600;color:var(--text-light);flex-shrink:0}.match-time{font-size:.85rem;color:var(--text-light);text-align:right}.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-light);font-size:.95rem}.loading{display:flex;align-items:center;justify-content:center;height:100vh;font-size:1.125rem;color:var(--text-light)}@media (max-width: 768px){.app-header{flex-direction:column;gap:1rem;align-items:flex-start}.app-header h1{font-size:1.5rem}.tabs{padding:0 1rem}.tab{padding:.75rem 1rem}.app-content,.card{padding:1rem}.match-teams{flex-direction:column;gap:1rem}.match-divider{width:100%}@media (max-width: 640px){.leaderboard-table{font-size:.85rem}.leaderboard-table th,.leaderboard-table td{padding:.5rem}.match-card{padding:1rem}.team{padding:.75rem}}}.player-detail-modal{max-width:900px}.player-detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.player-detail-header h2{margin:0}.close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-light);padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.close-btn:hover{color:var(--text)}.player-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem;margin-bottom:2rem}.stat-card{background:var(--bg);padding:1rem;border-radius:.375rem;border:1px solid var(--border);text-align:center}.stat-label{font-size:.75rem;color:var(--text-light);text-transform:uppercase;font-weight:600;margin-bottom:.5rem}.stat-value{font-size:1.5rem;font-weight:700;color:var(--primary)}.chart-container{margin-bottom:2rem}.chart-container h3{margin-bottom:1rem;color:var(--text)}.loading-state{text-align:center;padding:2rem;color:var(--text-light)}.name-edit-form{display:flex;gap:.5rem;align-items:center;flex:1}.name-edit-form input{flex:1;padding:.5rem;font-size:1.5rem;font-weight:700}.btn-small{padding:.5rem .75rem;font-size:.9rem;background-color:var(--primary);color:#fff;border:none;border-radius:.25rem;cursor:pointer}.btn-small:hover{background-color:var(--primary-dark)}.btn-small:disabled{opacity:.6;cursor:not-allowed}.btn-cancel,.btn-cancel:hover{background-color:var(--error)}.clickable-name{cursor:pointer;transition:opacity .2s}.clickable-name:hover{opacity:.7}.header-buttons{display:flex;gap:.5rem}.btn-delete-sm{background:none;border:none;font-size:1.25rem;cursor:pointer;padding:.5rem;transition:transform .2s}.btn-delete-sm:hover{transform:scale(1.2)}.btn-delete{background-color:var(--error);color:#fff;padding:.5rem 1rem;border:none;border-radius:.25rem;cursor:pointer;font-size:.85rem;transition:all .2s}.btn-delete:hover{background-color:var(--error);opacity:.8}.btn-delete:disabled{opacity:.6;cursor:not-allowed}.match-footer{display:flex;justify-content:space-between;align-items:center;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-light)}
