.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}.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}@media (max-width:768px){main{grid-template-columns:1fr}}.left-column,.right-column{display:flex;flex-direction:column;gap:1.5rem}.full-width{grid-column:1/-1;max-width:500px}.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;border-radius:8px;width:100%;padding:.75rem;font-size:1rem}.selector select:focus{outline:none;border-color:var(--accent-primary)}.vs{color:var(--text-subtle);padding-top:1.25rem;font-weight:700}.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)}.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;flex-direction:column;flex:1}.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}.match-list{display:flex;flex-direction:column;gap:.5rem}.match-item{display:flex;background:var(--bg-input);border-radius:6px;align-items: center;gap: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 .elo-change{color:var(--accent-primary);font-variant-numeric:tabular-nums;font-weight:600}.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}: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}
