:root{--surface:#fff;--surface-1:#f8fafc;--surface-subtle:#f8fafc;--border:#d8dee8;--border-strong:#b8c2d0;--text-primary:#071520;--text-secondary:#4b5a69;--text-muted:#7a8794;--accent:#1769e0;--accent-subtle:#edf5ff;--danger:#b42318;--success:#047857;--bg-danger:#fff1f0;--bg-success:#ecfdf3;--bg-warning:#fffbeb;--text-danger:#b42318;--text-success:#047857;--text-warning:#92400e;--rank-gold:#d4a017;--radius:8px;--sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--font-mono:var(--mono);color:var(--text-secondary);background:var(--surface-subtle);font:14px/1.5 var(--sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:subpixel-antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{min-width:320px;margin:0}a{color:inherit}button{background:var(--accent);border:.5px solid var(--accent);border-radius:var(--radius);color:var(--surface);cursor:pointer;font:500 14px/1 var(--sans);justify-content:center;align-items:center;min-height:36px;padding:0 14px;display:inline-flex}button:disabled{cursor:not-allowed;opacity:.58}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}#root,.app-shell{min-height:100svh}.top-nav{background:color-mix(in srgb, var(--surface) 94%, transparent);border-bottom:.5px solid var(--border);z-index:10;align-items:center;gap:36px;min-height:64px;padding:0 40px;display:flex;position:sticky;top:0}.brand-link{flex:none;align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand-mark{width:42px;height:42px;display:block}.brand-wordmark{color:var(--text-primary);letter-spacing:0;font-size:18px;font-weight:650;line-height:1}.nav-links{align-items:center;gap:6px;display:flex}.auth-nav{align-items:center;gap:10px;min-width:0;margin-left:auto;display:flex}.auth-nav>span,.auth-nav>.nav-link span{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.nav-link{border-radius:var(--radius);color:var(--text-secondary);border:.5px solid #0000;align-items:center;gap:8px;min-height:36px;padding:0 12px;text-decoration:none;display:inline-flex}.auth-button{background:0 0;padding-bottom:1px;font-size:14px;font-weight:500;line-height:1.35}.nav-link:hover{background:var(--surface-subtle);color:var(--text-primary)}.nav-link-active{background:var(--accent-subtle);border-color:color-mix(in srgb, var(--accent) 30%, var(--border));color:var(--accent)}main{max-width:1120px;margin:0 auto;padding:48px 40px 72px}h1,h2{color:var(--text-primary);letter-spacing:0;margin:0;font-weight:600}h1{font-size:30px;line-height:1.2}h2{font-size:15px;line-height:1.35}h3{color:var(--text-primary);letter-spacing:0;margin:0;font-size:13px;font-weight:600}p{margin:0}table{border-collapse:collapse;color:var(--text-secondary);width:100%;font-size:13px}th,td{border-bottom:.5px solid var(--border);text-align:left;padding:12px 14px}th{color:var(--text-secondary);font-weight:350}.status-panel{background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius);max-width:560px;margin-top:24px;padding:24px}.status-panel>*+*{margin-top:14px}.error{color:var(--danger)}.success{color:var(--success)}.page-header{gap:8px;margin-bottom:24px;display:grid}.page-header h1{color:var(--text-primary);letter-spacing:-.025em;margin-bottom:12px;font-size:36px;font-weight:700}.page-header p{max-width:620px;font-size:15px}.match-viewer-header{gap:2px;margin-bottom:12px}.match-viewer-header h1{margin-bottom:0;font-size:24px}.match-viewer-header p{color:var(--text-muted);margin:0;font-size:14px;font-weight:500}.match-viewer-back-link{color:var(--text-muted);justify-self:start;margin-bottom:8px;font-size:14px;font-weight:500;text-decoration:none}.match-viewer-back-link:hover{color:var(--accent);text-decoration:underline}.match-detail-page{padding-top:24px;padding-bottom:40px}.bot-header-info{color:var(--text-primary);flex-wrap:wrap;align-items:center;gap:6px;margin-top:0;font-weight:500;display:flex}.bot-header-info strong{font-weight:700}.bot-header-info a{color:inherit;text-decoration:none}.bot-header-info a:hover,.bot-header-info a:focus-visible{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.page-header:has(.header-stat){justify-content:space-between;align-items:flex-start;display:flex}.header-stat{white-space:nowrap;justify-items:end;gap:12px;padding-top:2px;display:grid}.header-stat strong{color:var(--text-primary);font-family:var(--font-mono);letter-spacing:-.025em;font-size:34px;font-weight:700;line-height:1}.header-stat span{color:var(--text-muted);font-size:15px;font-weight:400}.game-tabs{border-bottom:.5px solid var(--border);align-items:flex-end;gap:22px;margin-bottom:24px;padding:0;display:inline-flex}.game-tab{color:var(--text-muted);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;align-items:center;gap:7px;min-height:38px;padding:0 2px 10px;display:inline-flex}.game-tab.active{border-bottom-color:var(--text-primary);color:var(--text-primary);background:0 0;font-weight:700}.game-tab svg{flex:none}.home-page{gap:24px;display:grid}.home-grid{grid-template-columns:minmax(0,1fr) 320px;align-items:stretch;gap:16px;display:grid}.match-panel,.featured-panel,.stat-card,.queue-card{background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius)}.match-panel,.featured-panel{gap:18px;padding:24px;display:grid}.history-panel{background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius);gap:18px;padding:24px;display:grid}.section-heading{border-bottom:.5px solid var(--border);justify-content:space-between;align-items:center;gap:16px;margin:-4px 0 2px;padding-bottom:12px;display:flex}.section-heading h2{font-size:18px;font-weight:700;line-height:1.2}.section-heading span,.section-heading a{color:var(--text-muted);font-size:13px}.section-heading a{text-decoration:none}.section-heading a:hover{color:var(--accent)}.bot-version-suffix{color:var(--text-muted);font:500 .88em/1 var(--mono);white-space:nowrap;margin-left:.35em}.match-history-meta{justify-content:flex-end;margin:-4px 0 -2px;display:flex}.match-history-meta span{color:var(--text-muted);font-size:13px}.leaderboard-heading{align-items:end}.page-size-control,.version-filter-control{color:var(--text-muted);align-items:center;gap:8px;font-size:13px;display:inline-flex}.page-size-control select,.version-filter-control select{color:var(--text-primary);font:13px/1.2 var(--sans);min-width:92px;min-height:34px}.match-controls{grid-template-columns:minmax(150px,.8fr) minmax(0,1fr) auto minmax(0,1fr) auto;align-items:end;gap:14px;display:grid}.match-controls label{color:var(--text-primary);gap:7px;min-width:0;font-weight:500;display:grid}.match-controls label span{font-size:13px}select{appearance:none;background:linear-gradient(45deg, transparent 50%, var(--text-muted) 50%) right 15px top 16px / 6px 6px no-repeat, linear-gradient(135deg, var(--text-muted) 50%, transparent 50%) right 9px top 16px / 6px 6px no-repeat, var(--surface);border:.5px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font:14px/1.2 var(--sans);width:100%;min-height:38px;padding:0 32px 0 11px}input{background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font:14px/1.2 var(--sans);width:100%;min-height:38px;padding:0 11px}textarea{background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font:13px/1.5 var(--mono);resize:vertical;width:100%;min-height:260px;padding:11px}select:disabled{color:var(--text-muted);opacity:.7}.versus{color:var(--text-muted);padding-bottom:11px;font-size:13px}.match-feedback{min-height:21px}.match-feedback p{margin:0}.login-gate{background:var(--surface-subtle);border:.5px solid var(--border);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:16px;padding:16px;display:flex}.login-gate>div{gap:4px;display:grid}.login-gate p{color:var(--text-muted)}.button-link{background:var(--accent);border:.5px solid var(--accent);border-radius:var(--radius);color:var(--surface);flex:none;justify-content:center;align-items:center;min-height:36px;padding:0 14px;font-weight:500;text-decoration:none;display:inline-flex}.bot-header-card{background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius);gap:16px;padding:24px;display:grid}.bot-header-card h1{color:var(--text-primary);letter-spacing:-.025em;margin:0;font-size:36px;font-weight:700;line-height:1.2}.profile-description-row{justify-self:start;align-items:center;gap:10px;width:auto;min-width:0;max-width:680px;display:inline-flex}.profile-description{color:var(--text-secondary);overflow-wrap:anywhere;white-space:pre-wrap;word-break:break-word;flex:auto;min-width:0;max-width:620px;line-height:1.55}.profile-description.empty,.profile-description.muted{color:var(--text-muted)}.icon-button{flex:none;width:34px;min-height:34px;padding:0}.icon-button.secondary{background:var(--surface);color:var(--text-primary);border-color:#0000;flex:0 0 32px;width:32px;min-height:32px;display:inline-flex}.icon-button.secondary:hover{background:var(--surface-subtle);color:var(--accent);border-color:#0000}.add-description-button{color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:999px;justify-self:start;align-items:center;gap:6px;min-height:32px;padding:4px 10px 4px 0;font-size:14px;line-height:1.35;display:inline-flex}.add-description-button:hover{background:var(--surface-subtle);color:var(--text-primary)}.add-description-button svg{flex:none;width:14px;height:14px}.description-editor{gap:8px;width:min(620px,100%);max-width:620px;display:grid}.description-editor-input{font:14px/1.5 var(--sans);resize:vertical;min-height:96px}.description-editor-footer{justify-content:space-between;align-items:center;gap:12px;display:flex}.description-editor-footer>span:first-child{color:var(--text-muted);font-size:13px}.description-editor-actions{gap:8px;display:inline-flex}.description-save-button{background:var(--accent);border:.5px solid var(--accent);border-radius:var(--radius);color:var(--surface);min-height:34px;padding:0 14px;font-weight:600}.description-cancel-button{color:var(--text-muted);background:0 0;border-color:#0000;min-height:34px;padding:0 6px;font-weight:600}.description-cancel-button:hover{background:var(--surface-subtle);color:var(--text-primary)}.form-panel{background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius);gap:18px;max-width:720px;padding:24px;display:grid}.bot-registration-flow{gap:18px;display:grid}.form-panel label{color:var(--text-primary);gap:7px;font-weight:500;display:grid}.form-panel label span{font-size:13px}.form-panel .field-help,.form-panel .field-error{font-size:13px;font-weight:400;line-height:1.4}.form-panel .field-help{color:var(--text-muted)}.form-panel .field-error{color:var(--danger)}.executable-field{color:var(--text-primary);gap:8px;display:grid}.executable-label{font-size:13px;font-weight:500}.visually-hidden-file-input{opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}.executable-picker{background:var(--surface-subtle);border:.5px dashed var(--border-strong);color:var(--text-primary);align-items:center;gap:12px;justify-content:initial;text-align:left;grid-template-columns:auto 1fr auto;min-height:76px;padding:12px 14px;display:grid}.executable-picker:hover{background:var(--accent-subtle);border-color:var(--accent)}.executable-picker-icon{background:var(--surface);border:.5px solid var(--border);color:var(--accent);border-radius:6px;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.executable-picker-copy{gap:2px;display:grid}.executable-picker-copy strong{font-size:14px;font-weight:600}.executable-picker-copy small,.selected-executable small{color:var(--text-muted);font-size:12px;font-weight:400}.executable-picker-action{border:.5px solid var(--border);color:var(--text-secondary);border-radius:6px;padding:6px 9px;font-size:13px}.selected-executable{background:var(--bg-success);border:.5px solid color-mix(in srgb, var(--success) 25%, var(--border));color:var(--success);border-radius:6px;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;min-height:38px;padding:8px 10px;display:grid}.selected-executable>span{color:var(--text-primary);font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.form-footer{color:var(--text-muted);margin:0;font-size:14px}.form-message{border-radius:var(--radius);gap:6px;padding:12px 14px;display:grid}.form-message.success{background:var(--bg-success)}.form-footer a{color:var(--accent);font-weight:500}.registration-sent{gap:12px}.auth-success-state{color:var(--text-primary);gap:4px;display:grid}.auth-success-heading{align-items:baseline;gap:7px;display:flex}.auth-success-heading svg{color:var(--success);stroke-width:2px;flex:none;width:1.35em;height:1.35em;transform:translateY(.2em)}.auth-success-state h2{margin:0 0 4px;font-size:18px;line-height:1.25}.auth-success-state p{color:var(--text-muted);margin:0}.inline-success{color:var(--success);gap:6px;margin:0;font-weight:500;display:grid}.inline-success p{margin:0}.text-action{color:var(--accent);cursor:pointer;font:inherit;text-underline-offset:2px;background:0 0;border:0;padding:0;font-weight:500;text-decoration:underline}.text-action:disabled{cursor:default;opacity:.65}.empty-state{color:var(--text-muted)}.stats-row{gap:16px;display:grid}.stat-card{gap:12px;padding:20px;display:grid}.stat-card span{color:var(--text-primary);font-size:14px;font-weight:600}.stat-label{align-items:center;gap:8px;display:inline-flex}.stat-label svg{color:var(--accent);flex:none}.stat-card strong{color:var(--text-primary);font-size:32px;font-weight:650;line-height:1}.stat-card strong.stat-value-muted{color:var(--text-muted);font-weight:600}.queue-card{gap:14px;padding:20px;display:grid}.queue-summary{color:var(--text-secondary);margin:0;font-size:14px;font-weight:600;line-height:1.5}.queue-position{color:var(--accent);font-weight:700}.queue-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.queue-job{align-items:center;gap:10px;min-width:0;display:flex}.queue-job-details{align-items:baseline;gap:12px;min-width:0;display:flex;overflow:hidden}.queue-matchup{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;font-size:14px;font-weight:600;overflow:hidden}.queue-job-meta strong{color:var(--text-primary);font-weight:600}.queue-job-meta{color:var(--text-secondary);white-space:nowrap;flex:1 0 auto;align-items:center;gap:8px;font-size:13px;display:inline-flex}.queue-job-meta span{color:var(--text-secondary)}.queue-job-summary{color:var(--text-secondary);padding-top:2px;font-size:13px;font-weight:600}.job-status{border:.5px solid var(--border);color:var(--text-secondary);border-radius:999px;flex:none;justify-self:start;padding:4px 9px;font-size:12px;font-weight:600}.job-status.queued,.job-status.running{background:var(--accent-subtle);border-color:color-mix(in srgb, var(--accent) 28%, var(--border));color:var(--accent)}.job-status.failed{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.featured-games-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.featured-game-card{border:.5px solid var(--border);border-radius:var(--radius);color:inherit;gap:14px;min-width:0;padding:14px;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s;display:grid}.featured-game-card:hover,.featured-game-card:focus-visible{border-color:color-mix(in srgb, var(--accent) 36%, var(--border));transform:translateY(-2px);box-shadow:0 10px 24px #07152014}.featured-game-card-header{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px;min-width:0;display:grid}.featured-matchup{color:var(--text-primary);gap:5px;min-width:0;font-size:14px;font-weight:600;line-height:1.35;display:grid}.featured-player-name{grid-template-columns:auto minmax(0,1fr) 20px;align-items:center;gap:6px;min-width:0;display:grid}.featured-player-name-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.featured-player-marker{border-radius:50%;flex:none;justify-content:center;align-items:center;width:16px;height:16px;display:inline-flex}.featured-player-marker-connect-four{box-shadow:inset 0 1px 3px #0715203d}.featured-player-marker-connect-four.featured-player-marker-p1{background:var(--danger)}.featured-player-marker-connect-four.featured-player-marker-p2{background:#facc15}.featured-player-marker-tictactoe{background:var(--surface-subtle);border:.5px solid;border-radius:4px;font-size:11px;font-weight:750;line-height:1}.featured-player-marker-tictactoe.featured-player-marker-p1{color:var(--accent)}.featured-player-marker-tictactoe.featured-player-marker-p2{color:var(--danger)}.featured-result-badge{border-radius:999px;flex:none;justify-content:center;justify-self:end;align-items:center;width:19px;height:19px;font-size:11px;font-weight:750;line-height:1;display:inline-flex}.featured-result-badge-w{background:var(--bg-success);color:var(--text-success)}.featured-result-badge-l{background:var(--bg-danger);color:var(--text-danger)}.featured-result-badge-draw{background:var(--bg-warning);color:var(--text-warning)}.featured-draw-badge{background:var(--surface-subtle);border:.5px solid var(--border);color:var(--text-muted);border-radius:999px;flex:none;justify-self:end;align-items:center;padding:5px 8px;font-size:12px;font-weight:600;line-height:1;display:inline-flex}.featured-live-badge{background:var(--bg-danger);border:.5px solid color-mix(in srgb, var(--danger) 28%, var(--border));color:var(--text-danger);border-radius:999px;flex:none;justify-self:end;align-items:center;gap:5px;padding:5px 8px;font-size:11px;font-weight:750;line-height:1;display:inline-flex}.featured-live-badge-dot{background:currentColor;border-radius:50%;width:7px;height:7px;animation:1.15s ease-in-out infinite featured-live-flicker}@keyframes featured-live-flicker{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--danger) 30%, transparent);opacity:.7}50%{opacity:1;box-shadow:0 0 0 5px #0000}}.featured-board-wrap{background:color-mix(in srgb, var(--surface-subtle) 70%, var(--border));border:.5px solid var(--border-strong);border-radius:var(--radius);justify-items:center;min-width:0;padding:12px;display:grid;box-shadow:inset 0 1px 5px #0715201a,0 1px #fffc}.featured-board-wrap .tictactoe-board{grid-template-columns:repeat(3,minmax(48px,72px));width:min(100%,218px)}.featured-board-wrap .tictactoe-cell{font-size:30px}.featured-board-wrap .connect-four-board{grid-template-columns:repeat(7,minmax(22px,34px));gap:4px;width:min(100%,278px);padding:8px}.featured-card-affordance{color:var(--text-muted);opacity:.72;justify-self:end;font-size:13px;font-weight:600;transition:color .15s,opacity .15s,transform .15s}.featured-game-card:hover .featured-card-affordance,.featured-game-card:focus-visible .featured-card-affordance{color:var(--accent);opacity:1;transform:translate(2px)}.table-scroll{margin:0 -14px;overflow-x:auto}.data-table{min-width:780px}.leaderboard-table{min-width:820px}.bot-version-table{min-width:680px}.version-upload-form{gap:8px;display:grid}.version-upload-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.version-file-button{background:var(--surface-subtle);border-color:var(--border);color:var(--text-secondary);gap:6px;min-height:32px;padding:0 10px}.version-file-button:hover{background:var(--accent-subtle);border-color:var(--accent);color:var(--accent)}.version-selected-file{color:var(--text-secondary);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:6px;max-width:min(420px,100%);min-height:32px;display:inline-grid}.version-selected-file>span{color:var(--text-primary);font:12px/1.2 var(--mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.version-selected-file small{color:var(--text-muted);font-size:12px}.version-submit-button{min-height:32px;padding:0 12px}.version-active-badge{background:color-mix(in srgb, var(--accent) 12%, transparent);border:.5px solid color-mix(in srgb, var(--accent) 35%, var(--border));color:var(--accent);text-transform:uppercase;border-radius:999px;margin-left:8px;padding:4px 7px;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.match-history-table th:nth-child(2),.match-history-table td:nth-child(2){width:54%}.player-page,.bot-page{gap:24px;display:grid}.player-header{justify-content:space-between;align-items:end;gap:16px;display:flex}.player-header-content{flex:620px;gap:16px;width:100%;min-width:0;max-width:620px;display:grid}.player-header-content h1{margin-bottom:0}.player-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.player-section-heading{align-items:end}.player-section-heading>div{gap:3px;display:grid}.player-empty-state{text-align:center;place-items:center;gap:10px;padding:22px 0 10px;display:grid}.player-empty-state>svg{color:var(--text-muted)}.empty-state-link{color:var(--accent);align-items:center;gap:5px;font-weight:600;text-decoration:none;display:inline-flex}.empty-state-link:hover{text-decoration:underline}.player-bot-table{min-width:760px}.history-panel.match-replay-panel{background:0 0;border:0;border-radius:0;gap:16px;padding:0}.match-detail-grid{grid-template-columns:minmax(0,1fr) minmax(340px,390px);align-items:stretch;gap:16px;display:grid}.replay-board-panel{background:var(--surface-subtle);border:.5px solid var(--border);border-radius:var(--radius);align-content:center;place-items:center;gap:12px;min-width:0;padding:14px;display:grid}.tictactoe-board{aspect-ratio:1;background:var(--border);border:.5px solid var(--border);border-radius:var(--radius);grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,minmax(84px,1fr));place-self:center;gap:1px;width:min(100%,380px);max-width:380px;display:grid;overflow:hidden}.tictactoe-cell{aspect-ratio:1;background:var(--surface);color:var(--text-muted);justify-content:center;align-items:center;font-size:48px;font-weight:750;line-height:1;display:flex;position:relative}.tictactoe-cell.last-move.tictactoe-marker-x{background:color-mix(in srgb, var(--accent) 12%, var(--surface));box-shadow:inset 0 0 0 4px var(--accent)}.tictactoe-cell.last-move.tictactoe-marker-o{background:color-mix(in srgb, var(--danger) 11%, var(--surface));box-shadow:inset 0 0 0 4px var(--danger)}.connect-four-board{border-radius:var(--radius);background:#1557b0;border:.5px solid #0f4490;grid-template-columns:repeat(7,minmax(34px,1fr));place-self:center;gap:6px;width:min(100%,460px);max-width:460px;padding:10px;display:grid}.connect-four-cell{aspect-ratio:1;justify-content:center;align-items:center;display:flex;position:relative}.connect-four-piece{background:var(--surface);border-radius:50%;width:100%;height:100%;display:block;box-shadow:inset 0 2px 6px #0715203d}.connect-four-cell.connect-four-marker-x .connect-four-piece{background:var(--danger)}.connect-four-cell.connect-four-marker-o .connect-four-piece{background:#facc15}.connect-four-cell.last-move .connect-four-piece{box-shadow:0 0 0 2px #ffffffd1,0 0 0 3px #38bdf8,0 0 9px 2px #38bdf873,inset 0 2px 6px #0715203d}.tictactoe-marker-x{color:#1769e0}.tictactoe-marker-o,.connect-four-marker-x{color:var(--danger)}.connect-four-marker-o{color:#ca8a04}.marker-empty{color:#0000}.replay-controls{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.replay-controls button{width:34px;min-height:34px;padding:0}.replay-controls button:disabled{background:var(--surface);border-color:var(--border);color:var(--text-muted);cursor:not-allowed;opacity:.55}.match-side-panel{grid-template-rows:auto minmax(0,auto) auto;gap:12px;min-width:0;display:grid}.match-summary-panel,.move-history{background:var(--surface-subtle);border:.5px solid var(--border);border-radius:var(--radius);gap:10px;padding:14px;display:grid}.match-info-header{border-bottom:.5px solid var(--border);color:var(--text-primary);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px;padding-bottom:10px;display:grid}.match-info-header>svg{color:var(--accent)}.match-info-header strong,.match-info-header span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.match-info-header strong{font-size:14px;font-weight:650;line-height:1.2}.match-info-header span{color:var(--text-muted);text-transform:uppercase;margin-top:2px;font-size:11px;font-weight:650;line-height:1.2}.player-summary-row{color:var(--text-primary);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.player-summary-row>strong{min-width:0;font-size:14px;font-weight:600;line-height:1.2}.player-summary-row>.player-current-rating{color:var(--text-primary);font-variant-numeric:tabular-nums;place-self:center end;font-size:12px;font-weight:600;line-height:1}.marker-pill{background:var(--surface);border:.5px solid;border-radius:5px;justify-content:center;align-items:center;width:24px;height:24px;font-weight:650;display:inline-flex}.marker-pill.connect-four-marker-x,.marker-pill.connect-four-marker-o{color:#0000;border:0;border-radius:50%;font-size:0;box-shadow:inset 0 1px 3px #0715203d}.marker-pill.connect-four-marker-x{background:var(--danger)}.marker-pill.connect-four-marker-o{background:#facc15}.match-rating-line{grid-template-columns:38px 32px;justify-content:end;align-items:center;gap:4px;display:grid}.match-rating-line em{color:var(--text-muted);font-variant-numeric:normal;text-align:left;white-space:nowrap;place-self:center start;width:32px;margin-left:4px;font-size:12px;font-style:normal;line-height:1;display:inline-block}.match-rating-line>span:first-child{display:none}.match-rating-line strong{color:var(--text-primary);place-self:center end;font-size:12px;font-weight:600;line-height:1}.match-rating-line .positive-delta{color:var(--success);font-weight:600}.match-rating-line .negative-delta{color:var(--danger);font-weight:600}.move-history{grid-template-rows:auto auto;gap:10px;min-height:0}.move-history h3{border-bottom:.5px solid var(--border);padding-bottom:8px;font-size:16px}.move-history .empty-state{align-content:center;height:252px;font-size:16px;display:grid}.move-history ol{align-content:start;gap:4px;height:252px;min-height:0;max-height:252px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.move-history button{color:var(--text-secondary);background:0 0;border-color:#0000;grid-template-columns:30px minmax(0,1fr);justify-content:stretch;gap:12px;width:100%;min-height:36px;padding:0 10px;display:grid}.move-history button:hover{background:var(--surface);border-color:var(--border);color:var(--text-primary)}.move-history button:focus{outline:none}.move-history button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.match-result-summary{gap:8px;margin:2px 0;display:grid}.match-result-divider{background:var(--border);height:.5px}.match-result-summary p{color:var(--text-secondary);text-align:center;margin:0;font-size:13px;font-weight:500;line-height:1.3}.move-history li.active-move{background:color-mix(in srgb, var(--accent) 18%, var(--surface));border-radius:var(--radius)}.move-history li.active-move button{border-color:color-mix(in srgb, var(--accent) 42%, var(--border));color:var(--text-primary);background:0 0;font-weight:700}.move-history li.active-move button span{color:var(--accent);font-weight:750}.move-history li.active-move code{font-weight:700}.move-history button span{color:var(--text-muted);font-size:16px}.move-history button strong{color:var(--text-primary)}.move-history button em{text-align:left;text-overflow:ellipsis;white-space:nowrap;font-style:normal;overflow:hidden}.move-history code{border-color:#0000;justify-self:end;padding:3px 8px;font-size:15px}.data-table th:first-child,.data-table td:first-child{padding-left:14px}.data-table th:last-child,.data-table td:last-child{padding-right:14px}.data-table th{border-bottom:.5px solid var(--border-strong);color:var(--text-primary);font-size:14px;font-weight:500}.data-table td{border-bottom:.5px solid var(--border);color:var(--text-secondary);font-size:14px;font-weight:500}.data-table tbody tr:nth-child(2n){background:var(--surface-1)}.data-table .clickable-row{cursor:pointer}.data-table .clickable-row:hover{background:var(--surface-1)}.rank-cell{align-items:center;gap:5px;display:inline-flex}.rank-icon-slot{justify-content:center;width:13px;display:inline-flex}.top-rank{color:var(--rank-gold);font-weight:700}.clickable-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.players-cell{white-space:nowrap;grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr);align-items:center;gap:8px;width:min(100%,560px);display:grid}.players-cell .player-name:first-child,.players-cell .player-name:last-child{justify-self:stretch}.player-matchup-name{align-items:center;gap:7px;min-width:0;display:flex}.player-matchup-name .bot-name-link{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.player-result-mark{border-radius:999px;flex:none;justify-content:center;align-items:center;width:19px;height:19px;font-size:11px;font-weight:750;line-height:1;display:inline-flex}.player-result-win{background:var(--bg-success);color:var(--text-success)}.player-result-loss{background:var(--bg-danger);color:var(--text-danger)}.player-result-draw{background:var(--bg-warning);color:var(--text-warning)}.data-table .completed-date,.data-table .muted-info{color:var(--text-muted);font-size:13px;font-weight:400}.players-cell span[aria-hidden=true]{color:inherit;font-size:inherit;font-weight:inherit;text-align:center;justify-self:center}.player-rating{color:var(--text-secondary);font-size:14px;font-weight:500;line-height:inherit;flex:none;margin-left:2px}.match-result-badge{white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:3px 8px;font-size:12px;font-weight:500;line-height:1.35;display:inline-flex}.match-result-badge.result-win{background:var(--bg-success);color:var(--text-success)}.match-result-badge.result-draw{background:var(--surface);border:.5px solid var(--border);color:var(--text-muted)}.bot-page .match-result-badge.result-loss{background:var(--bg-danger);color:var(--text-danger)}.bot-page .match-result-badge.result-draw{background:var(--bg-warning);color:var(--text-warning);border:0}.record-summary{white-space:nowrap;display:inline-flex}.record-value{display:inline-flex}.record-value.record-win{color:var(--text-success)}.record-value.record-loss{color:var(--text-danger)}.record-value.record-draw{color:var(--text-warning)}.record-separator{color:var(--text-muted)}.data-table .player-name,.data-table .winner-name,.player-name,.winner-name{color:var(--text-primary);font-weight:600}.bot-name-link{color:inherit;font:inherit;font-weight:inherit;border-bottom:1px solid #0000;text-decoration:none;transition:color .15s,border-color .15s}.bot-name-link:hover{border-bottom-color:var(--accent-border,var(--accent));color:var(--accent)}.bot-name-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.pagination-controls{justify-content:flex-end;align-items:center;gap:16px;display:flex}.pagination-controls span{color:var(--text-muted);margin:0 2px;font-size:13px}.pagination-button{border-radius:8px;min-height:36px;padding:0 14px;font-weight:600}.pagination-button.previous{background:var(--surface);color:var(--text-primary);border:.5px solid #dcdcdc}.pagination-button.next{background:var(--text-primary);border:.5px solid var(--text-primary);color:var(--surface)}.pagination-button:disabled{cursor:default;opacity:.45}.pagination-button.previous:disabled{background:var(--surface);color:var(--text-muted);border-color:#e5e5e5}.pagination-button.next:disabled{background:var(--text-primary);border-color:var(--text-primary);color:var(--surface)}code{background:var(--surface-subtle);border:.5px solid var(--border);color:var(--text-primary);font:13px/1.35 var(--mono);border-radius:6px;padding:3px 7px;display:inline-flex}@media (width<=720px){.top-nav{flex-direction:column;align-items:flex-start;gap:10px;padding:12px 20px}.nav-links{flex-wrap:wrap;width:100%}.auth-nav{width:100%;margin-left:0}.nav-link{flex:auto;justify-content:center}main{padding:36px 20px 56px}.page-header:has(.header-stat){flex-direction:column;align-items:flex-start}.header-stat{justify-items:start}.home-grid,.match-controls,.match-detail-grid{grid-template-columns:1fr}.versus{padding:0}.login-gate{flex-direction:column;align-items:stretch}.featured-games-grid{grid-template-columns:1fr}.history-panel{padding:18px}.table-scroll{margin:0 -8px}.pagination-controls{justify-content:space-between}.player-header,.player-section-heading{flex-direction:column;align-items:stretch}.bot-header-card{padding:18px}.bot-header-card h1{font-size:30px}.description-editor-footer{flex-direction:column;align-items:stretch}.description-editor-actions{justify-content:flex-end}.player-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.page-size-control{justify-content:space-between}}
