.app{max-width:1200px;margin:0 auto;padding:2rem}header{display:flex;justify-content:space-between;align-items: center;margin-bottom:1rem}header h1{background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0;font-size:2rem}.tabs{display:flex;border-bottom:1px solid var(--border-color);gap:.5rem;margin-bottom:1.5rem;padding-bottom:1rem}.header-emoji{letter-spacing:.25rem;font-size:1.5rem}.tabs button{border:1px solid var(--border-color);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:8px;padding:.75rem 1.5rem;transition:all .2s;font-size:1rem;font-weight:500}.tabs button:hover{border-color:var(--accent-primary);color:var(--text-secondary)}.tabs button.active{background:var(--accent-gradient);color:#fff;border-color:#0000}main{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.left-column,.right-column{display:flex;flex-direction:column;gap:1.5rem}.full-width{grid-column:1/-1}.card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:1.5rem}.card h2{color:var(--text-secondary);margin:0 0 1rem;font-size:1.25rem}.card h3{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin:1rem 0 .5rem;font-size:.875rem}.hint{color:var(--text-subtle);font-style:italic}.btn-primary{background:var(--accent-gradient);color:#fff;cursor:pointer;border:none;border-radius:8px;width:100%;padding:.75rem 1.5rem;transition:transform .2s,box-shadow .2s;font-weight:600}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-reset{color:var(--color-danger);border:1px solid var(--color-danger);cursor:pointer;background:0 0;border-radius:6px;padding:.5rem 1rem;transition:all .2s}.btn-reset:hover{background:var(--color-danger);color:#fff}.btn-remove{color:var(--text-subtle);cursor:pointer;display:flex;background:0 0;border:none;border-radius:4px;justify-content:center;align-items: center;width:24px;height:24px;transition:all .2s;font-size:1.25rem}.btn-remove:hover{color:var(--color-danger);background:#ef444433}.player-manager form{display:flex;flex-direction:column;gap:1rem}.player-manager input,.player-manager textarea{background:var(--bg-input);border:1px solid var(--border-color);color:var(--text-primary);border-radius:8px;padding:.75rem;font-size:1rem}.player-manager input:focus,.player-manager textarea:focus{outline:none;border-color:var(--accent-primary)}.player-manager textarea{resize:vertical;min-height:80px}.mode-toggle{display:flex;gap:.5rem}.mode-toggle button{background:var(--bg-input);border:1px solid var(--border-color);color:var(--text-muted);cursor:pointer;border-radius:6px;flex:1;padding:.5rem;transition:all .2s}.mode-toggle button.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.player-list ul{list-style:none;display:flex;flex-direction:column;gap:.5rem;margin:0;padding:0}.player-list li{display:flex;background:var(--bg-input);border-radius:6px;justify-content:space-between;align-items: center;padding:.5rem .75rem}.winner-announcement{text-align:center;color:var(--color-success);animation:winner-pulse .5s ease-out;background:linear-gradient(135deg,#10b98133 0%,#667eea33 100%);border:1px solid #10b98166;border-radius:8px;margin-bottom:1rem;padding:1rem;font-size:1.25rem;font-weight:600}@keyframes winner-pulse{0%{transform:scale(.9);opacity:0}50%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}.match-selectors{display:flex;align-items: center;gap:1rem;margin-bottom:1rem}.selector{flex:1}.selector label{display:block;color:var(--text-muted);text-transform:uppercase;margin-bottom:.5rem;font-size:.75rem}.selector select{background:var(--bg-input);border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;border-radius:8px;width:100%;padding:.75rem 1.5rem .75rem .75rem;font-size:1rem}.selector select:focus{outline:none;border-color:var(--accent-primary)}.btn-swap{color:var(--text-muted);border:1px solid var(--border-color);cursor:pointer;display:flex;background:0 0;border-radius:6px;justify-content:center;align-items: center;width:32px;height:32px;margin-top:1.25rem;transition:all .2s;font-size:1rem}.btn-swap:hover:not(:disabled){border-color:var(--accent-primary);color:var(--accent-primary)}.btn-swap:disabled{opacity:.3;cursor:not-allowed}.match-actions{display:flex;gap:.75rem}.match-actions .btn-primary{flex:1}.btn-undo{color:var(--color-warning);border:1px solid var(--color-warning);cursor:pointer;white-space:nowrap;background:0 0;border-radius:8px;padding:.75rem 1rem;transition:all .2s;font-weight:600}.btn-undo:hover{background:var(--color-warning);color:var(--bg-primary)}.btn-rematch{color:var(--accent-primary);border:1px solid var(--accent-primary);cursor:pointer;white-space:nowrap;background:0 0;border-radius:8px;padding:.75rem 1rem;transition:all .2s;font-weight:600}.btn-rematch:hover:not(:disabled){background:var(--accent-primary);color:#fff}.btn-rematch:disabled{opacity:.4;cursor:not-allowed}.leaderboard-list{display:flex;flex-direction:column;gap:.5rem}.leaderboard-item{display:flex;background:var(--bg-input);border:1px solid #0000;border-radius:8px;align-items: center;gap:1rem;padding:1rem}.leaderboard-item.rank-1{background:linear-gradient(135deg,#ffd7001a 0%,#ffd7000d 100%);border-color:#ffd7004d}.leaderboard-item.rank-2{background:linear-gradient(135deg,#c0c0c01a 0%,#c0c0c00d 100%);border-color:#c0c0c04d}.leaderboard-item.rank-3{background:linear-gradient(135deg,#cd7f321a 0%,#cd7f320d 100%);border-color:#cd7f324d}.leaderboard-item .rank{text-align:center;min-width:2rem;font-size:1.25rem}.leaderboard-item .player-info{display:flex;cursor:pointer;text-align:left;background:0 0;border:none;flex-direction:column;flex:1;align-items: flex-start;padding:0;transition:opacity .2s}.leaderboard-item .player-info:hover{opacity:.7}.leaderboard-item .name{font-weight:600}.leaderboard-item .record{color:var(--text-muted);font-size:.75rem}.leaderboard-item .elo{font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:700}.inactive-note{color:var(--text-muted);text-align:center;margin:1rem 0 0;font-size:.85rem}.match-list{display:flex;flex-direction:column;gap:.5rem}.match-item{display:flex;background:var(--bg-input);border-radius:6px;flex-wrap:wrap;align-items: center;gap:.5rem 1rem;padding:.75rem;font-size:.875rem}.match-item .time{color:var(--text-subtle);min-width:50px;font-size:.75rem}.match-item .match-result{display:flex;flex:1;align-items: center;gap:.5rem}.match-item .winner{color:var(--color-success);font-weight:600}.match-item .vs{color:var(--text-subtle);padding:0}.match-item .loser{color:var(--color-danger)}.match-item .btn-remove{flex-shrink:0;margin-left:auto}.match-item .elo-change{color:var(--accent-primary);font-variant-numeric:tabular-nums;font-weight:600}.match-item .elo-details{display:flex;font-variant-numeric:tabular-nums;gap:1rem;width:100%;font-size:.75rem}.match-item .elo-player.winner{color:var(--color-success)}.match-item .elo-player.loser{color:var(--color-danger)}.pagination{display:flex;justify-content:center;align-items: center;gap:1rem;margin-top:1rem}.pagination-info{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.875rem}.view-all-link{display:block;text-align:center;color:var(--accent-primary);cursor:pointer;background:0 0;border:none;width:100%;margin-top:.75rem;padding:.5rem;transition:opacity .2s;font-size:.875rem}.view-all-link:hover{opacity:.7}.player-stats-page{display:flex;flex-direction:column;gap:1.5rem;max-width:1000px}.player-stats-columns{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.player-stats-left,.player-stats-right{display:flex;flex-direction:column;gap:1.5rem}.btn-back{color:var(--text-muted);border:1px solid var(--border-color);cursor:pointer;background:0 0;border-radius:6px;align-self: flex-start;margin-bottom:1rem;padding:.5rem 1rem;transition:all .2s}.btn-back:hover{border-color:var(--accent-primary);color:var(--text-secondary)}.player-stats-header h2{margin-bottom:1rem;font-size:1.75rem}.player-stats-overview{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.stat-box{display:flex;background:var(--bg-input);border-radius:8px;flex-direction:column;align-items: center;padding:1rem}.stat-value{font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:700}.stat-label{color:var(--text-muted);text-transform:uppercase;margin-top:.25rem;font-size:.75rem}.player-stats-matchups h3{color:var(--text-secondary);margin-bottom:1rem;font-size:1rem}.matchups-list{display:flex;flex-direction:column;gap:.75rem}.matchup-item{display:grid;grid-template-columns:1fr auto;background:var(--bg-input);border-radius:8px;gap:.5rem 1rem;padding:.75rem 1rem}.matchup-opponent{display:flex;flex-direction:column}.opponent-name{font-weight:600}.opponent-elo{color:var(--text-muted);font-size:.75rem}.matchup-record{display:flex;font-variant-numeric:tabular-nums;align-items: center;font-weight:600}.matchup-record .winning{color:var(--color-success)}.matchup-record .losing{color:var(--color-danger)}.matchup-bar{grid-column:1/-1;background:var(--bg-secondary);overflow:hidden;border-radius:3px;height:6px}.matchup-bar-fill{height:100%;transition:width .3s}.matchup-bar-fill.winning{background:var(--color-success)}.matchup-bar-fill.losing{background:var(--color-danger)}.matchup-bar-fill.even{background:var(--text-muted)}@media (max-width:768px){.player-stats-overview{grid-template-columns:repeat(2,1fr)}.player-stats-columns{grid-template-columns:1fr}}.player-stats-chart{overflow:hidden}.player-stats-chart h3{color:var(--text-secondary);margin-bottom:1rem;font-size:1rem}.elo-chart{width:100%}.elo-chart svg{display:block;width:100%;height:auto}.elo-chart-point{cursor:pointer;transition:r .15s,fill .15s}.elo-chart-point.active{fill:var(--accent-secondary)}.h2h-list{display:flex;flex-direction:column;gap:.75rem}.h2h-item{background:var(--bg-input);border-radius:8px;padding:.75rem 1rem}.h2h-players{display:flex;justify-content:space-between;align-items: center;margin-bottom:.5rem}.h2h-player{color:var(--text-secondary);font-weight:500}.h2h-player.leading{color:var(--text-primary);font-weight:700}.h2h-vs{color:var(--text-subtle);text-transform:uppercase;font-size:.75rem}.h2h-record{display:flex;font-variant-numeric:tabular-nums;justify-content:center;align-items: center;gap:.5rem;margin-bottom:.5rem;font-size:1.25rem;font-weight:600}.h2h-record .leading{color:var(--color-success)}.h2h-dash{color:var(--text-subtle)}.h2h-bar{display:flex;overflow:hidden;background:var(--bg-secondary);border-radius:3px;height:6px}.h2h-bar-p1{background:var(--accent-primary);transition:width .3s}.h2h-bar-p2{background:var(--accent-secondary);transition:width .3s}.login-overlay{position:fixed;background:var(--overlay-bg);display:flex;z-index:1000;justify-content:center;align-items: center;inset:0}.login-modal{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;width:100%;max-width:360px;padding:2rem}.login-modal h2{text-align:center;background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0 0 1.5rem;font-size:1.5rem}.login-modal form{display:flex;flex-direction:column;gap:1rem}.login-modal input{background:var(--bg-input);border:1px solid var(--border-color);color:var(--text-primary);border-radius:8px;padding:.75rem;font-size:1rem}.login-modal input:focus{outline:none;border-color:var(--accent-primary)}.login-error{color:var(--color-danger);text-align:center;font-size:.875rem}.auth-info{display:flex;align-items: center;gap:.75rem;margin-left:auto}.role-badge{background:var(--bg-input);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;border-radius:4px;padding:.25rem .75rem;font-size:.75rem}.btn-logout{color:var(--text-muted);border:1px solid var(--border-color);cursor:pointer;background:0 0;border-radius:6px;padding:.5rem 1rem;transition:all .2s;font-size:.875rem}.btn-logout:hover{border-color:var(--accent-primary);color:var(--text-secondary)}.theme-switcher{position:relative}.theme-btn{color:var(--text-muted);border:1px solid var(--border-color);cursor:pointer;display:flex;background:0 0;border-radius:6px;align-items: center;gap:.5rem;padding:.5rem .75rem;transition:all .2s;font-size:.875rem}.theme-btn:hover{border-color:var(--accent-primary);color:var(--text-secondary)}.theme-dropdown{position:absolute;background:var(--bg-secondary);border:1px solid var(--border-color);z-index:100;border-radius:8px;min-width:140px;padding:.5rem;top:calc(100% + .5rem);right:0;box-shadow:0 4px 12px #0000004d}.theme-option{display:flex;color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:4px;align-items: center;gap:.5rem;width:100%;padding:.5rem .75rem;transition:all .2s;font-size:.875rem}.theme-option:hover{background:var(--bg-input)}.theme-option.active{background:var(--accent-primary);color:#fff}.theme-icon{font-size:1rem}.app-footer{border-top:1px solid var(--border-color);display:flex;justify-content:center;gap:1rem;margin-top:4rem;padding-top:2rem}.app-footer button:not(.btn-reset){color:var(--text-muted);border:1px solid var(--border-color);cursor:pointer;background:0 0;border-radius:6px;padding:.5rem 1rem;transition:all .2s}.app-footer button:not(.btn-reset):hover{border-color:var(--accent-primary);color:var(--text-secondary)}.app-footer button:not(.btn-reset).active{background:var(--accent-gradient);color:#fff;border-color:#0000}@media (max-width:768px){.app{padding:1rem}main{display:flex;flex-direction:column;gap:1.5rem}.left-column,.right-column{display:contents}.match-recorder{order:1}.leaderboard{order:2}.match-history{order:3}.head-to-head{order:4}.tabs{flex-wrap:wrap}.tabs>button:first-child{width:100%}.auth-info{justify-content:flex-end;width:100%;margin-top:.5rem}.card{padding:1rem}}:root,:root[data-theme=dark]{--bg-primary:#0f0f1a;--bg-secondary:#1a1a2e;--bg-input:#0f0f1a;--text-primary:#ffffffde;--text-secondary:#e0e0e0;--text-muted:#888;--text-subtle:#666;--border-color:#333;--accent-primary:#667eea;--accent-secondary:#764ba2;--accent-gradient:linear-gradient(135deg,#667eea 0%,#764ba2 100%);--color-success:#10b981;--color-danger:#ef4444;--color-warning:#f59e0b;--rank-gold:gold;--rank-silver:silver;--rank-bronze:#cd7f32;--link-color:#646cff;--link-hover:#535bf2;--overlay-bg:#000c;--buncss-light: ;--buncss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg-primary:#f5f5f7;--bg-secondary:#fff;--bg-input:#fff;--text-primary:#1a1a2e;--text-secondary:#333;--text-muted:#666;--text-subtle:#999;--border-color:#e0e0e0;--accent-primary:#5a67d8;--accent-secondary:#6b46c1;--accent-gradient:linear-gradient(135deg,#5a67d8 0%,#6b46c1 100%);--color-success:#059669;--color-danger:#dc2626;--color-warning:#d97706;--rank-gold:#ca8a04;--rank-silver:#71717a;--rank-bronze:#a16207;--link-color:#5a67d8;--link-hover:#4c51bf;--overlay-bg:#00000080;--buncss-light:initial;--buncss-dark: ;color-scheme:light}:root[data-theme=midnight]{--bg-primary:#0d1117;--bg-secondary:#161b22;--bg-input:#0d1117;--text-primary:#c9d1d9;--text-secondary:#b1bac4;--text-muted:#8b949e;--text-subtle:#6e7681;--border-color:#30363d;--accent-primary:#58a6ff;--accent-secondary:#a371f7;--accent-gradient:linear-gradient(135deg,#58a6ff 0%,#a371f7 100%);--color-success:#3fb950;--color-danger:#f85149;--color-warning:#d29922;--rank-gold:#d29922;--rank-silver:#8b949e;--rank-bronze:#a16207;--link-color:#58a6ff;--link-hover:#79c0ff;--overlay-bg:#000c;--buncss-light: ;--buncss-dark:initial;color-scheme:dark}:root[data-theme=forest]{--bg-primary:#0f1a14;--bg-secondary:#1a2e23;--bg-input:#0f1a14;--text-primary:#ffffffde;--text-secondary:#d4e5db;--text-muted:#8ba898;--text-subtle:#5a7a65;--border-color:#2d4a3a;--accent-primary:#4ade80;--accent-secondary:#22c55e;--accent-gradient:linear-gradient(135deg,#4ade80 0%,#22c55e 100%);--color-success:#4ade80;--color-danger:#f87171;--color-warning:#fbbf24;--rank-gold:#fbbf24;--rank-silver:#94a3b8;--rank-bronze:#d97706;--link-color:#4ade80;--link-hover:#86efac;--overlay-bg:#000c;--buncss-light: ;--buncss-dark:initial;color-scheme:dark}:root{color:var(--text-primary);background-color:var(--bg-primary);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,Avenir,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}a{color:var(--link-color);text-decoration:inherit;font-weight:500}a:hover{color:var(--link-hover)}body{position:relative;min-width:320px;min-height:100vh;margin:0}[data-theme=forest] body:before{content:"🌲🌳🌲🌳🌲🌲🌳🌲🌳🌲🌲🌳🌲🌳🌲🌲🌳🌲";position:fixed;text-align:center;opacity:.15;pointer-events:none;z-index:0;letter-spacing:.5rem;padding-bottom:.5rem;font-size:3rem;line-height:1;bottom:0;left:0;right:0}[data-theme=forest] body:after{content:"🌳🌲🌳🌲🌲🌳🌲🌳🌲🌲🌳🌲🌳🌲🌳🌲🌲🌳";position:fixed;text-align:center;opacity:.1;pointer-events:none;z-index:0;letter-spacing:1rem;font-size:2rem;line-height:1;bottom:2.5rem;left:0;right:0}h1{font-size:3.2em;line-height:1.1}button{background-color:var(--bg-secondary);cursor:pointer;border:1px solid #0000;border-radius:8px;padding:.6em 1.2em;transition:border-color .25s;font-family:inherit;font-size:1em;font-weight:500}button:hover{border-color:var(--accent-primary)}button:focus{outline:4px auto -webkit-focus-ring-color}button:focus-visible{outline:4px auto -webkit-focus-ring-color}
