.app-shell{width:100%;max-width:1500px;margin:0 auto;min-height:100vh;background:transparent;color:var(--text)}.topbar{justify-content:space-between;gap:24px;min-height:96px;padding:22px 28px;border-bottom:1px solid var(--border)}.brand-lockup,.topbar{display:flex;align-items:center}.brand-lockup{gap:18px}.header-clock{display:inline-flex;align-items:center;gap:11px;color:var(--accent-strong)}.header-clock-text{display:flex;flex-direction:column;line-height:1.05}.header-clock-text strong{color:var(--text-strong);font-size:28px;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em}.header-clock-text small{color:var(--muted);font-size:14px;font-weight:700}@media (max-width:640px){.header-clock{display:none}}.brand-logo{display:block;width:auto;height:clamp(54px,8vw,74px);max-width:300px;object-fit:contain;object-position:left center}:root[data-theme=dark] .brand-logo{filter:invert(1) brightness(1.2) contrast(.92)}.notice-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 28px;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:var(--accent-soft);color:var(--accent-strong);font-size:16px;font-weight:700}.notice-dismiss{display:inline-flex;width:28px;height:28px;border:0;border-radius:8px;background:transparent;color:inherit;cursor:pointer}.load-banner,.notice-dismiss{align-items:center;justify-content:center}.load-banner{display:flex;gap:12px;margin:0 28px 12px;padding:12px 14px;border:1px dashed var(--border);border-radius:10px;color:var(--muted);font-size:16px;font-weight:700}.load-banner.error{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.app-loading{display:flex;align-items:center;justify-content:center;min-height:60vh;color:var(--muted);font-size:16px;font-weight:700}.form-actions{display:flex;flex-wrap:wrap;gap:10px}.recent-match-actions{display:inline-flex;gap:6px}.icon-button.danger{color:var(--danger)}.recent-games-panel{overflow:hidden;border-radius:14px}.recent-games-search{padding:0 var(--table-inset) 12px}.recent-games-weeks{display:flex;flex-direction:column;gap:12px;padding:0 var(--table-inset) var(--table-inset)}.recent-games-weeks .empty-table{padding:18px 0}.week-subwindow{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--surface-alt)}.week-subwindow-header-row{display:flex;align-items:center;gap:8px;padding-right:12px;background:var(--surface-alt)}.week-edit-button{flex-shrink:0}.week-subwindow-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:1 1;min-width:0;padding:14px 18px;border:none;background:transparent;font-size:17px;font-weight:700;color:var(--text-strong);cursor:pointer;text-align:left}.week-subwindow-header:hover{background:var(--surface-elevated)}.week-title{flex:1 1}.week-count{font-size:15px;font-weight:600;color:var(--muted)}.recent-games-table{width:100%;border-collapse:separate;border-spacing:0;font-size:16px}.recent-player-highlight{padding:0 4px;border-radius:4px;color:var(--accent-strong);font-weight:800}.recent-games-table tbody tr.editing,.recent-player-highlight{background:var(--accent-soft)}.recent-games-table tbody tr.editing td{border-bottom-color:var(--accent)}.recent-games-table tbody td strong,.score-badge{font-size:15px;color:var(--text-strong)}.score-badge{display:inline-block;padding:4px 10px;border-radius:8px;background:var(--surface-alt);border:1px solid var(--border);font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.panel-heading p,.topbar p,td span{margin:0;color:var(--muted);font-size:15px;line-height:1.45}.topbar-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:10px}.ghost-link{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 13px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text);font-size:15px;font-weight:800;text-decoration:none;box-shadow:var(--shadow-soft)}.ghost-link:hover{border-color:var(--border-strong);background:var(--surface-alt)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--accent-strong);box-shadow:var(--shadow-soft);cursor:pointer}.admin-link{min-width:104px}.theme-toggle:hover{border-color:var(--border-strong);background:var(--surface-alt)}.summary-strip{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:20px;gap:20px;padding:34px 28px 16px}.summary-card{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;grid-gap:22px;gap:22px;min-height:124px;padding:22px 28px;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-soft)}.summary-icon{display:inline-flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:999px;background:var(--accent-soft);color:var(--accent-strong)}.summary-strip .summary-card>div>span{display:flex;align-items:center;gap:7px;margin-bottom:7px;color:var(--muted);font-size:14px;font-weight:900;text-transform:uppercase}.summary-strip strong{display:block;color:var(--text-strong);font-size:25px;line-height:1.2}.summary-strip b{display:block;margin-top:4px;color:var(--accent-strong);font-size:27px;line-height:1}.summary-strip small{display:block;margin-top:7px;color:var(--muted);font-size:15px}.admin-page{display:grid;grid-gap:18px;gap:18px;align-items:flex-start;margin:18px 28px 28px}.view-tabs{display:inline-flex;gap:0;padding:0;max-width:100%;overflow-x:auto;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.view-tabs a,.view-tabs button{min-width:132px;height:48px;padding:0 18px;border:0;border-right:1px solid var(--border);border-radius:0;background:transparent;color:var(--muted);font-size:17px;font-weight:900;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;text-align:center}.view-tabs a:last-child,.view-tabs button:last-child{border-right:0}.view-tabs a.active,.view-tabs button.active{background:var(--accent-strong);color:var(--surface);box-shadow:none}:root[data-theme=dark] .view-tabs a.active,:root[data-theme=dark] .view-tabs button.active{background:var(--accent-strong);color:#101317}.header-tabs{margin:0}.mobile-view-menu{display:none;position:relative}.mobile-view-menu summary{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:0 13px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text-strong);font-size:15px;font-weight:900;list-style:none;cursor:pointer;box-shadow:var(--shadow-soft)}.mobile-view-menu summary::-webkit-details-marker{display:none}.mobile-view-menu div{position:absolute;top:calc(100% + 8px);left:0;z-index:20;display:grid;min-width:210px;overflow:hidden;border:1px solid var(--border-strong);border-radius:10px;background:var(--surface);box-shadow:var(--shadow)}.mobile-view-menu a{padding:12px 14px;border-bottom:1px solid var(--border);color:var(--text);font-size:15px;font-weight:850;text-decoration:none}.mobile-view-menu a:last-child{border-bottom:0}.mobile-view-menu a[aria-current=page]{background:var(--accent-soft);color:var(--accent-strong)}.leaderboard-panel,.players-workspace,.weekly-workspace{margin:18px 28px 28px}.players-workspace,.weekly-workspace{display:grid;grid-gap:18px;gap:18px;align-items:flex-start}.weekly-workspace{grid-template-columns:minmax(0,1fr) 430px}.weekly-main-column{display:grid;grid-gap:18px;gap:18px;min-width:0;align-content:start}.weekly-workspace>.weekly-detail-panel{align-self:flex-start}.players-workspace{grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr);grid-template-areas:"player-search player-search" "player-profile player-compare";align-content:start}.players-workspace.no-profile{grid-template-areas:"player-search player-search" "player-compare player-compare"}.players-workspace.no-profile .head-to-head-inputs{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-grid>*,.players-workspace>*,.weekly-workspace>*{min-width:0}.players-list-panel{grid-area:player-search;overflow:visible}.head-to-head-panel{grid-area:player-compare;overflow:visible;padding:22px}.head-to-head-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.head-to-head-head h2{margin:4px 0 0;color:var(--text-strong);font-size:1.05rem}.head-to-head-inputs{display:grid;grid-template-columns:1fr;grid-gap:12px;gap:12px;margin-bottom:14px}.head-to-head-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.head-to-head-player-card{min-width:0;padding:14px;border:1px solid var(--border);border-radius:8px;background:var(--surface-alt)}.head-to-head-player-card.winning{border-color:rgba(40,114,79,.38);background:color-mix(in srgb,var(--accent) 16%,var(--surface-alt))}.head-to-head-player-card.losing{border-color:rgba(176,67,57,.38);background:color-mix(in srgb,var(--danger) 10%,var(--surface-alt))}.head-to-head-player-top{display:flex;justify-content:space-between;gap:12px;align-items:center}.head-to-head-player-card span,.head-to-head-summary span{display:block;color:var(--muted);font-size:13px;font-weight:800;text-transform:uppercase}.head-to-head-player-top strong{color:var(--muted);font-size:15px}.head-to-head-player-card b{display:block;margin-top:8px;color:var(--text-strong);font-size:36px;line-height:1}.head-to-head-player-card.winning .head-to-head-player-top strong,.head-to-head-player-card.winning b{color:var(--accent-strong)}.head-to-head-player-card.losing .head-to-head-player-top strong,.head-to-head-player-card.losing b{color:var(--danger)}.head-to-head-empty,.head-to-head-summary small{display:block;color:var(--muted);font-size:13px;font-weight:700;line-height:1.25}.head-to-head-summary{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:1px;gap:1px;overflow:hidden;border:1px solid var(--border);border-radius:8px;background:var(--border)}.head-to-head-summary>div{min-width:0;padding:12px;background:var(--surface-alt)}.head-to-head-summary strong{display:block;margin:5px 0 3px;overflow-wrap:anywhere;color:var(--text-strong);font-size:17px}.head-to-head-empty{margin:0;font-size:15px}.panel-heading.players-heading{display:grid;grid-template-columns:minmax(180px,1fr) minmax(360px,760px);align-items:center;padding:16px 18px;border-bottom:0}.players-search-copy h2{margin:4px 0 0;color:var(--text-strong);font-size:1.15rem;white-space:nowrap}.players-search{width:100%}.players-list{display:flex;flex-direction:column;max-height:min(72vh,760px);overflow-y:auto}.players-empty-history{margin:0;padding:18px;color:var(--muted);font-size:16px;font-weight:700}.players-profile-panel{grid-area:player-profile;overflow:hidden;position:-webkit-sticky;position:sticky;top:18px}.players-profile-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px;border-bottom:1px solid var(--border)}.players-profile-identity{display:flex;align-items:center;gap:14px;min-width:0}.player-avatar.large{width:52px;height:52px;font-size:22px}.players-profile-identity h2{margin:4px 0;overflow-wrap:anywhere;color:var(--text-strong);font-size:1.35rem}.players-profile-identity p{margin:0;color:var(--muted);font-size:15px;font-weight:700}.players-profile-rating{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.players-profile-rating span{color:var(--muted);font-size:13px;font-weight:800;text-transform:uppercase}.players-profile-rating strong{color:var(--accent-strong);font-size:1.8rem;line-height:1}.players-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:1px;gap:1px;background:var(--border);border-bottom:1px solid var(--border)}.players-stat-grid>div{padding:12px 14px;background:var(--surface-alt)}.players-stat-grid span{display:block;margin-bottom:5px;color:var(--muted);font-size:13px;font-weight:800;text-transform:uppercase}.players-stat-grid strong{display:block;overflow-wrap:anywhere;color:var(--text-strong);font-size:17px}.players-stat-grid small{display:block;margin-top:3px;color:var(--muted);font-size:13px;font-weight:700;line-height:1.25}.players-stat-grid strong.positive{color:var(--accent-strong)}.players-stat-grid strong.negative{color:var(--danger)}.players-history{padding:0}.players-history-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:var(--table-inset) var(--table-inset) 10px}.players-history-head h3{margin:0;color:var(--text-strong);font-size:17px}.players-history-head span{color:var(--muted);font-size:14px;font-weight:700}.players-history-table td,.players-history-table th{font-size:15px}.players-history-table td.positive{color:var(--accent-strong);font-weight:800}.players-history-table td.negative{color:var(--danger);font-weight:800}.players-history-row{cursor:pointer}.players-history-row:focus-visible td,.players-history-row:hover td{background:color-mix(in srgb,var(--accent-soft) 68%,var(--surface))}.players-history-row:focus-visible{outline:2px solid var(--accent-strong);outline-offset:-2px}.login-panel{width:min(560px,100%);max-width:560px;padding:0 18px 18px}.login-panel>.panel-heading{margin:0 -18px}.admin-grid{display:grid;grid-template-columns:minmax(0,1fr) 410px;grid-gap:18px;gap:18px;align-items:flex-start}.panel{border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.public-dashboard{padding-bottom:1px}.overall-leaderboard{display:grid}.overall-leaderboard .summary-strip{order:1}.overall-leaderboard .sticky-player-bar{order:2}.leaderboard-toolbar-panel{order:3;margin:2px 28px 0;overflow:visible;border:0;background:transparent;box-shadow:none}.leaderboard-toolbar-panel .leaderboard-toolbar{padding:0;background:transparent}.overall-leaderboard .leaderboard-panel{order:4}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dashboard-table-panel{overflow:hidden;border-radius:14px}.leaderboard-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;padding:var(--table-inset);border-bottom:none;background:var(--surface)}.leaderboard-panel,.weekly-panel{overflow:clip}.weekly-controls-panel{overflow:visible}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 18px 15px;border-bottom:1px solid var(--border)}.panel-heading h2{margin:0 0 4px;color:var(--text-strong);font-size:20px;line-height:1.2}.table-wrap{overflow-x:auto;border:1px solid #000;border-radius:8px;background:var(--surface);scrollbar-gutter:stable;-webkit-overflow-scrolling:touch}.panel>.table-wrap,.players-history>.table-wrap{margin:var(--table-inset)}.dashboard-table-panel>.table-wrap,.players-history>.table-wrap{margin-top:0}.leaderboard-panel.panel{border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible}.leaderboard-panel .leaderboard-toolbar{padding:0 0 var(--table-inset);background:transparent}.minimum-games-filter{display:inline-flex;align-items:center;min-height:44px;overflow:hidden;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.minimum-games-filter button{min-height:44px;padding:0 13px;border:0;border-right:1px solid var(--border);background:transparent;color:var(--muted);font-size:14px;font-weight:900;cursor:pointer}.minimum-games-filter button:last-child{border-right:0}.minimum-games-filter button.active{background:var(--accent-strong);color:var(--surface)}.mobile-leaderboard-sort{display:none}.leaderboard-range-button{min-width:136px;padding-inline:14px}.leaderboard-compact-note{margin:12px 0 0;color:var(--muted);font-size:14px;font-weight:800;text-align:center}.leaderboard-panel>.leaderboard-table-wrap{margin:0;border:1px solid #000;border-radius:8px}table{width:100%;border-collapse:separate;border-spacing:0}td,th{padding:14px 16px;border-bottom:1px solid #000;text-align:left;white-space:nowrap}tbody tr:last-child td,tbody tr:last-child th{border-bottom:0}th{color:var(--muted);background:var(--surface-alt);font-size:14px;font-weight:800;letter-spacing:.03em;text-transform:uppercase}.leaderboard-table th,.player-breakdown th,.players-history-table th,.points-breakdown th,.recent-games-table thead th,.weekly-table th{background:var(--surface-alt);color:var(--muted);padding:14px 16px;border-right:1px solid #000;border-bottom:1px solid #000}.leaderboard-table td,.player-breakdown td,.players-history-table td,.points-breakdown td,.recent-games-table tbody td,.weekly-table td{height:56px;padding:14px 16px;vertical-align:middle;border-right:1px solid #000;border-bottom:1px solid #000}.leaderboard-table td:last-child,.leaderboard-table th:last-child,.player-breakdown td:last-child,.player-breakdown th:last-child,.players-history-table td:last-child,.players-history-table th:last-child,.points-breakdown td:last-child,.points-breakdown th:last-child,.recent-games-table td:last-child,.recent-games-table th:last-child,.weekly-table td:last-child,.weekly-table th:last-child{border-right:0}.sort-button{display:inline-flex;align-items:center;gap:6px;width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;text-transform:inherit;cursor:pointer}.sort-button span{color:color-mix(in srgb,var(--muted) 72%,transparent);font-size:14px;line-height:1}.sort-button.active{color:var(--text-strong)}.sort-button.active span{color:var(--accent-strong)}td{font-size:17px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}td,td strong{color:var(--text-strong)}td strong{display:block;font-size:16px}.leaderboard-player-cell{display:flex;align-items:center;gap:10px;min-width:0}.leaderboard-player-cell a{min-width:0;overflow:hidden;color:var(--text-strong);font-size:20px;font-weight:800;line-height:1.15;text-decoration-thickness:1px;-webkit-text-decoration-color:transparent;text-decoration-color:transparent;text-underline-offset:3px;text-overflow:ellipsis;white-space:nowrap}.leaderboard-table tbody tr{position:relative}.leaderboard-player-cell a:after{position:absolute;z-index:1;inset:0;content:""}.leaderboard-player-cell a:focus-visible:after{outline:3px solid var(--accent-strong);outline-offset:-3px}.leaderboard-player-cell a:focus-visible,.leaderboard-player-cell a:hover{color:var(--accent-strong);-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}tbody tr{cursor:pointer}tbody tr>*{transition:background-color 90ms ease,color 90ms ease}.leaderboard-table tbody tr:nth-child(odd),.recent-games-table tbody tr:nth-child(odd),.weekly-table tbody tr:nth-child(odd){background-color:var(--surface)}tbody tr:nth-child(2n){background-color:var(--row-stripe)}tbody tr:hover{background-color:transparent}tbody tr:focus-visible>*,tbody tr:hover>*{background-color:color-mix(in srgb,var(--accent-soft) 68%,var(--surface))}tbody tr:focus-visible>:first-child,tbody tr:hover>:first-child{box-shadow:inset 5px 0 0 var(--accent-strong)}tbody tr:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}tbody tr.selected-row{background:var(--selected-row)}.rank-cell{width:48px;font-weight:800}.leaderboard-table .rank-cell{width:70px;text-align:center}.leaderboard-table .rank-badge{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:var(--accent-soft);color:var(--text-strong);font-size:15px;font-weight:900}.leaderboard-table .rank-pos-1 .rank-badge{background:#f3d542!important;color:#2a250b!important}.leaderboard-table .rank-pos-2 .rank-badge{background:#dce0df!important;color:#202726!important}.leaderboard-table .rank-pos-3 .rank-badge{background:#d5a04f!important;color:#261706!important}.rank-pos-1{color:var(--warning)}.rank-pos-2{color:var(--muted)}.rank-pos-3{color:#b86b3c}.rank-pos-other,.rating-cell{color:var(--accent-strong)}.rating-cell{font-size:20px;font-weight:800}.player-cell{gap:12px}.player-avatar,.player-cell{display:inline-flex;align-items:center}.player-avatar{justify-content:center;width:30px;height:30px;border-radius:999px;background:var(--surface-alt);color:var(--muted);font-size:14px;font-weight:900;text-transform:uppercase}.movement{display:inline-flex;align-items:center;gap:4px;min-width:74px;font-weight:800}.movement.positive{color:var(--accent-strong)}.movement.negative{color:var(--danger)}.eyebrow{color:var(--accent-strong);font-size:13px;font-weight:900;letter-spacing:0;text-transform:uppercase}.chart-card{padding:20px 22px 22px;min-width:0}.chart-title{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:17px;font-weight:800}.chart-title strong{color:var(--text-strong)}.chart-hover-summary{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-top:12px;padding:16px 18px;border:1px solid var(--border);border-radius:10px;background:var(--surface-alt)}.chart-hover-label{display:block;color:var(--text-strong);font-size:20px;font-weight:800}.chart-hover-summary small{display:block;margin-top:3px;color:var(--muted);font-size:16px;font-weight:700}.chart-hover-values{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.chart-hover-rating{color:var(--accent-strong);font-size:38px;line-height:1}.chart-hover-change{font-size:16px;font-weight:800}.chart-hover-change.positive{color:var(--accent-strong)}.chart-hover-change.negative{color:var(--danger)}.chart-placeholder{visibility:hidden}.chart-wrap{position:relative;margin-top:18px;min-width:0;overflow:hidden}.chart-tooltip{position:absolute;top:0;z-index:2;display:grid;grid-gap:2px;gap:2px;min-width:88px;padding:10px 12px;border:1px solid var(--border-strong);border-radius:10px;background:var(--surface-elevated);box-shadow:var(--shadow);text-align:center;pointer-events:none;transform:translate(-50%,-8px)}.chart-tooltip-rating{color:var(--text-strong);font-size:20px;font-weight:900;line-height:1.1}.chart-tooltip-label{color:var(--muted);font-size:15px;font-weight:700}.rating-chart-svg{display:block;width:100%;height:min(520px,62vw);min-height:430px;overflow:visible;touch-action:none}.chart-hit-area{cursor:crosshair}.chart-grid-line{stroke:var(--border);stroke-width:1;stroke-dasharray:3 6;opacity:.75}.chart-zero{stroke:var(--border-strong);stroke-width:1.75;stroke-dasharray:5 6}.chart-line{fill:none;stroke:var(--accent-strong);stroke-width:4.5;stroke-linecap:round;stroke-linejoin:round}.chart-hover-line{stroke:var(--accent-strong);stroke-width:2;stroke-dasharray:4 4;opacity:.45;pointer-events:none}.chart-dot-ring{fill:var(--accent-soft);stroke:var(--accent-strong);stroke-width:2;opacity:.55;pointer-events:none}.chart-dot{stroke:var(--surface);stroke-width:2.5;pointer-events:none}.chart-dot.active{stroke-width:3}.chart-dot.positive{fill:var(--accent-strong)}.chart-dot.negative{fill:var(--danger)}.chart-dot-start{fill:var(--muted)}.chart-dot-start.active{fill:var(--text-strong)}.chart-label{fill:var(--muted);font-size:15px;font-weight:700;font-family:Inter,ui-sans-serif,system-ui,sans-serif}.empty-chart{margin:18px;padding:28px 16px;border:1px dashed var(--border-strong);border-radius:8px;color:var(--muted);text-align:center;font-size:15px}.positive{color:var(--accent-strong)}.negative{color:var(--danger)}.match-entry-panel{overflow:hidden}.add-player-form,.admin-form,.game-entry-form{display:grid;grid-gap:14px;gap:14px;padding:16px 18px 18px}.pair-entry-grid,.score-inputs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.score-stepper{display:grid;grid-template-columns:52px minmax(0,1fr) 52px;align-items:stretch;min-height:56px;overflow:hidden;border:1px solid var(--border-strong);border-radius:12px;background:var(--surface-elevated);color:var(--text-strong)}.score-stepper:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.score-stepper input{width:100%;height:auto;align-self:stretch;min-width:0;border:0;border-radius:0;background:transparent;box-shadow:none;color:var(--text-strong);font-size:26px;font-weight:800;text-align:center;outline:none;padding:0 8px}.score-stepper input:focus{border:0;box-shadow:none}.score-stepper-button{display:inline-flex;align-items:center;justify-content:center;min-width:0;min-height:0;border:0;background:var(--surface-alt);color:var(--accent-strong);cursor:pointer;transition:background .15s ease}.score-stepper-button:first-child{border-right:1px solid var(--border)}.score-stepper-button:last-child{border-left:1px solid var(--border)}.score-stepper-button:hover:not(:disabled){background:var(--accent-soft)}.score-stepper-button:disabled{color:var(--muted);cursor:not-allowed;opacity:.45}.score-stepper.is-readonly{grid-template-columns:minmax(0,1fr)}.score-stepper.is-readonly .score-stepper-button{display:none}.pair-entry{display:grid;grid-gap:10px;gap:10px}.pair-entry-title{margin:0;color:var(--muted);font-size:15px;font-weight:700}.add-player-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 42px;align-items:flex-end}.add-player-form .form-error,.game-entry-form .form-error,.game-entry-form .primary-button{grid-column:auto}.admin-field{display:grid;grid-gap:6px;gap:6px;margin:0}.admin-field>span{color:var(--muted);font-size:15px;font-weight:700;text-transform:none}input,select{width:100%;box-sizing:border-box;border:1px solid var(--border-strong);border-radius:7px;background:var(--surface);color:var(--text-strong);font:500 16px/1.35 Inter,ui-sans-serif,system-ui,sans-serif;outline:none;height:40px;padding:0 11px}input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus)}.form-error{grid-column:span 2;margin:-2px 0 0;color:var(--danger);font-size:14px;font-weight:800;line-height:1.35}.ghost-button,.icon-button,.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;border-radius:7px;font-size:15px;font-weight:800;line-height:1;cursor:pointer}.primary-button{grid-column:span 2;border:1px solid var(--accent-strong);background:var(--accent);color:var(--surface)}.primary-button:hover{background:var(--accent-strong)}.ghost-button:disabled,.icon-button:disabled,.primary-button:disabled{cursor:not-allowed;opacity:.52}.ghost-button,.icon-button{border:1px solid var(--border-strong);background:var(--surface);color:var(--text)}.ghost-button:hover,.icon-button:hover{border-color:var(--border-strong);background:var(--surface-alt)}.icon-button{width:42px;flex:0 0 42px}.admin-form .form-error,.admin-form .primary-button{grid-column:auto}.admin-status{display:grid;grid-gap:12px;gap:12px;padding:16px 18px 18px}.admin-status span{color:var(--muted);font-size:15px;font-weight:700}.weekly-heading{align-items:center}.weekly-heading .week-select{margin-left:auto}.week-select{width:150px;flex:0 0 auto}.themed-select{position:relative}.themed-select-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;height:40px;padding:0 12px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--text-strong);font:600 15px/1.35 Inter,ui-sans-serif,system-ui,sans-serif;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.themed-select-trigger:hover{border-color:var(--accent)}.themed-select-trigger:focus-visible,.themed-select[data-open=true] .themed-select-trigger{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--focus)}.themed-select-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.themed-select-chevron{flex:0 0 auto;color:var(--muted);transition:transform .18s ease}.themed-select-trigger[aria-expanded=true] .themed-select-chevron{transform:rotate(180deg);color:var(--accent-strong)}.themed-select-menu{position:fixed;z-index:1000;margin:0;padding:6px;list-style:none;width:max-content;max-width:min(360px,92vw);max-height:280px;overflow-y:auto;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:var(--shadow);outline:none;animation:themed-select-in .14s ease}@keyframes themed-select-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.themed-select-option{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:8px;font-size:15px;font-weight:600;color:var(--text);cursor:pointer;white-space:nowrap}.themed-select-option.active{background:var(--accent-soft);color:var(--accent-strong)}.themed-select-option.selected{color:var(--accent-strong);font-weight:800}.themed-select-check{display:inline-flex;align-items:center;justify-content:center;width:16px;flex:0 0 16px;color:var(--accent-strong)}.weekly-table td,.weekly-table th{padding-inline:14px}.weekly-controls-panel,.weekly-table-panel{border:0;background:transparent;box-shadow:none;overflow:visible}.weekly-controls-panel .weekly-heading{padding:0 0 4px;border-bottom:0}.weekly-table-panel .table-wrap{margin:0;border:1px solid #000;border-radius:8px;overflow-x:auto}.weekly-table tbody tr:last-child td{border-bottom:0}.weekly-detail-panel{display:flex;flex-direction:column;position:static;max-height:none;overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none}.weekly-detail-panel.empty-weekly-detail{max-height:none;display:block}.weekly-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px;border:1px solid var(--border);border-bottom:0;border-radius:10px 10px 0 0;background:linear-gradient(135deg,var(--accent-tint),var(--panel-wash)),var(--surface)}.empty-weekly-detail h2,.weekly-detail-head h2{margin:4px 0 5px;color:var(--text-strong);font-size:25px;line-height:1.15}.empty-weekly-detail p,.weekly-detail-head p{margin:0;color:var(--muted);font-size:15px;line-height:1.4}.weekly-detail-head>strong{flex:0 0 auto;padding:8px 10px;border:1px solid var(--accent-tint);border-radius:8px;background:var(--surface);color:var(--accent-strong);font-size:25px}.weekly-detail-metrics{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:1px;gap:1px;background:var(--border);border:1px solid var(--border);border-top:0;border-radius:0 0 10px 10px;overflow:hidden}.weekly-detail-metrics div{padding:12px;background:var(--surface-alt)}.weekly-detail-metrics span{display:block;margin-bottom:5px;color:var(--muted);font-size:13px;font-weight:900;text-transform:uppercase}.weekly-detail-metrics strong{color:var(--text-strong);font-size:18px}.weekly-games-list{display:grid;grid-gap:12px;gap:12px;padding:14px 0 0;overflow:visible}.weekly-game-card{display:grid;grid-gap:14px;gap:14px;padding:14px;border:1px solid var(--border);border-radius:8px;background:linear-gradient(180deg,var(--card-wash),rgba(255,255,255,0)),var(--surface)}.game-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.game-card-top h3{margin:0;color:var(--text-strong);font-size:34px;line-height:1}.matchup-board{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-gap:10px;gap:10px;align-items:stretch}.matchup-divider{align-self:center;color:var(--warning);font-size:13px;font-weight:900;text-transform:uppercase}.game-team{display:grid;grid-gap:7px;gap:7px;min-width:0;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-alt)}.game-team.winner{border-color:var(--accent-tint);background:var(--accent-soft)}.game-team.loser{border-color:color-mix(in srgb,var(--danger) 22%,transparent);background:var(--danger-soft)}.game-team div{display:flex;align-items:center;justify-content:space-between;gap:8px}.game-team span{color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase}.game-team strong{color:var(--text-strong);font-size:25px;line-height:1}.game-team p{margin:0;overflow:hidden;color:var(--text);font-size:14px;font-weight:800;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.selected-player-name{color:var(--accent-strong)!important}.game-stat-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:1px;gap:1px;overflow:hidden;border:1px solid var(--border);border-radius:8px;background:var(--border)}.game-stat-grid div{padding:12px;background:var(--surface);text-align:center}.game-stat-grid span,.probability-head span{display:block;color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase}.game-stat-grid strong{display:block;margin-top:4px;color:var(--text-strong);font-size:29px;line-height:1}.probability-block{display:grid;grid-gap:7px;gap:7px}.probability-head{display:flex;justify-content:space-between;gap:10px}.probability-head strong{color:var(--accent-strong);font-size:14px}.probability-track{overflow:hidden;height:12px;border-radius:999px;background:var(--border)}.probability-track span{display:block;height:100%;border-radius:inherit;background:repeating-linear-gradient(45deg,rgba(255,255,255,.16) 0 7px,transparent 7px 14px),var(--accent)}.probability-block p{margin:0;color:var(--muted);font-size:14px;font-weight:800;text-align:center}.player-breakdown,.points-breakdown{width:100%;font-size:14px}.weekly-game-card>.table-wrap{margin:0;border:1px solid #000;border-radius:8px;overflow-x:auto}.weekly-details-body{display:grid;grid-gap:18px;gap:18px}.weekly-details-body .table-wrap{border:1px solid #000;border-radius:8px;background:var(--surface);overflow-x:auto}.player-breakdown td,.player-breakdown th,.points-breakdown td,.points-breakdown th{border-right:1px solid #000;border-bottom:1px solid #000;white-space:nowrap}.points-breakdown thead th:first-child{background:var(--surface);color:transparent}.player-breakdown th:first-child,.points-breakdown th:first-child{text-align:left}.player-breakdown tbody th,.points-breakdown tbody th{background:var(--surface);color:var(--text-strong);text-transform:none}.player-breakdown tr.selected-player{background:var(--accent-tint)}.player-breakdown tbody tr:last-child td,.player-breakdown tbody tr:last-child th,.points-breakdown tbody tr:last-child td,.points-breakdown tbody tr:last-child th{border-bottom:0}.result-loss,.result-win{display:inline-flex;align-items:center;height:24px;padding:0 8px;border-radius:6px;font-size:14px;font-weight:900}.result-win{background:var(--accent-soft);color:var(--accent-strong)}.result-loss{background:var(--danger-soft);color:var(--danger)}.empty-weekly-detail{padding:18px}.empty-table{padding:28px 16px;color:var(--muted);text-align:center;white-space:normal}@media (max-width:1080px){.admin-grid,.players-workspace,.weekly-workspace{grid-template-columns:1fr}.weekly-controls-panel,.weekly-table-panel,.weekly-workspace>.weekly-detail-panel{grid-column:auto;grid-row:auto}.players-workspace{grid-template-areas:"player-search" "player-profile" "player-compare"}.players-workspace.no-profile{grid-template-areas:"player-search" "player-compare"}.players-profile-panel{position:static;max-height:none;overflow:visible}.head-to-head-summary,.players-stat-grid,.summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-strip .summary-card:nth-child(3){grid-column:1/-1}}@media (max-width:680px){.topbar{align-items:flex-start;flex-direction:column;gap:16px;min-height:auto;padding:16px}.players-list-panel,.players-profile-panel,.weekly-detail-panel,.weekly-detail-panel.empty-weekly-detail{max-height:none;overflow:visible}.players-list,.weekly-games-list{max-height:none;overflow:visible;overscroll-behavior:auto}.brand-lockup,.brand-logo{max-width:100%}.brand-logo{width:auto;height:52px;max-width:min(220px,72vw)}.topbar-actions{flex-wrap:wrap;justify-content:stretch;width:100%}.view-tabs.header-tabs{display:none}.mobile-view-menu{display:block;flex:1 1 auto;min-width:0}.mobile-view-menu summary{width:100%}.mobile-view-menu div{right:0;left:0;min-width:0}.topbar-actions .theme-toggle{flex:0 0 44px}.topbar-actions .header-admin-link{display:none}.overall-leaderboard .leaderboard-toolbar-panel{order:1;margin:12px 12px 0}.overall-leaderboard .sticky-player-bar{order:2}.overall-leaderboard .leaderboard-panel{order:3}.overall-leaderboard .summary-strip{order:4}.header-tabs{width:100%;order:3}.view-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;overflow:hidden}.view-tabs a,.view-tabs button{min-width:0;height:44px;padding:0 10px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);font-size:14px;line-height:1.15;white-space:normal}.view-tabs a:last-child,.view-tabs a:nth-child(2n),.view-tabs button:last-child,.view-tabs button:nth-child(2n){border-right:0}.view-tabs a:nth-last-child(-n+2),.view-tabs button:nth-last-child(-n+2){border-bottom:0}.topbar-actions .admin-link,.topbar-actions .ghost-link{flex:1 1;min-width:min(150px,100%);padding-inline:10px}.summary-strip{padding:16px;gap:12px}.summary-card{grid-template-columns:46px minmax(0,1fr);gap:12px;min-height:auto;padding:14px}.summary-icon{width:46px;height:46px}.summary-strip strong{font-size:20px}.summary-strip b{font-size:22px}.leaderboard-toolbar{gap:10px;padding:12px}.leaderboard-range-button{width:100%}.mobile-leaderboard-sort{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;grid-gap:10px;gap:10px;width:100%}.mobile-leaderboard-sort>span{color:var(--muted);font-size:13px;font-weight:900;text-transform:uppercase}.mobile-leaderboard-sort select{min-height:44px;padding:8px 34px 8px 11px;font-weight:800}.minimum-games-filter{width:100%}.minimum-games-filter button{flex:1 1;padding-inline:8px}.admin-page,.leaderboard-panel,.players-workspace,.weekly-workspace{margin:12px}.players-list{max-height:none}.panel-heading.players-heading{grid-template-columns:1fr}.players-search-copy{display:none}.add-player-form,.admin-grid,.head-to-head-inputs,.head-to-head-results,.head-to-head-summary,.pair-entry-grid,.players-workspace.no-profile .head-to-head-inputs,.score-inputs,.summary-strip{grid-template-columns:1fr}.primary-button{grid-column:span 1}.dev-mode-banner,.load-banner,.notice-banner,.rating-explainer-page{margin-inline:12px}.notice-banner{align-items:flex-start}.chart-hover-summary,.chart-title,.game-card-top,.head-to-head-head,.panel-heading,.players-profile-head,.weekly-detail-head{flex-direction:column;align-items:stretch}.panel-heading{padding:14px}.panel-heading h2{font-size:18px}td,th{padding:11px 12px;border-right-width:2px;border-bottom-width:2px;font-size:15px}.players-history-table,.recent-games-table{min-width:560px}.table-wrap{border-width:2px}.players-history-table td,.players-history-table th,.recent-games-table td,.recent-games-table th{border-color:#000;border-right-width:1px;border-bottom-width:1px}.leaderboard-table-wrap,.weekly-table-panel .table-wrap{overflow-x:visible;border:0;border-radius:0}.leaderboard-table,.weekly-table{min-width:0}.leaderboard-table thead,.weekly-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.leaderboard-table tbody,.weekly-table tbody{display:flex;flex-direction:column;gap:10px}.leaderboard-table tbody tr,.weekly-table tbody tr{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));align-items:center;grid-gap:10px 12px;gap:10px 12px;padding:14px;border:1px solid #000;border-radius:8px;background:var(--surface);box-shadow:none}.leaderboard-table tbody tr.pinned-row,.leaderboard-table tbody tr.selected-row,.weekly-table tbody tr.selected-row{border-color:var(--accent)}.leaderboard-table tbody td,.weekly-table tbody td{height:auto;padding:0;border:0;white-space:normal}.leaderboard-table .rank-cell,.weekly-table .rank-cell{grid-column:1/2;grid-row:1;width:auto;text-align:left}.leaderboard-table .leaderboard-player-cell,.weekly-table .weekly-player-cell{grid-column:2/5;grid-row:1;min-width:0}.leaderboard-table .rating-cell,.weekly-table .rating-cell{grid-column:5/7;grid-row:1;justify-self:flex-end;font-size:22px}.weekly-table .weekly-player-cell strong{display:block;font-size:17px}.leaderboard-table tbody td[data-label]:not(.rating-cell),.weekly-table tbody td[data-label]:not(.rating-cell){display:flex;flex-direction:column;gap:3px;padding:9px 10px;border-radius:8px;background:var(--surface-alt);font-size:17px;font-weight:800;color:var(--text-strong);text-align:left}.leaderboard-table tbody td[data-label]:not(.rating-cell):before,.weekly-table tbody td[data-label]:not(.rating-cell):before{content:attr(data-label);color:var(--muted);font-size:11px;font-weight:900;letter-spacing:.02em;text-transform:uppercase}.leaderboard-table tbody td[data-label]:not(.rating-cell){grid-column:span 2}.weekly-table tbody td[data-label]:not(.rating-cell){grid-column:span 3}.leaderboard-table tbody td.empty-table,.weekly-table tbody td.empty-table{grid-column:1/-1;padding:24px 12px;background:transparent;text-align:center;font-weight:700}.leaderboard-table tbody td.empty-table:before,.weekly-table tbody td.empty-table:before{content:none}.players-profile-rating{align-items:flex-start}.players-profile-rating strong{font-size:1.45rem}.players-profile-head{padding:14px}.players-profile-identity{align-items:flex-start}.player-avatar.large{width:44px;height:44px;flex:0 0 44px}.players-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-card{padding:14px}.chart-hover-values{align-items:flex-start}.chart-hover-rating{font-size:23px}.rating-chart-svg{height:260px;min-height:240px}.chart-tooltip{display:none}.weekly-detail-head>strong{width:-moz-fit-content;width:fit-content;font-size:20px}.weekly-game-card,.weekly-games-list{padding:12px}.game-card-top h3{font-size:27px}.matchup-board{grid-template-columns:1fr}.matchup-divider{text-align:center}.game-team p{white-space:normal}.confirm-actions,.form-actions,.local-data-actions{flex-direction:column}.confirm-actions>*,.form-actions>*,.local-data-actions>*{width:100%}}.admin-tabs{width:-moz-fit-content;width:fit-content}.tournament-panel{display:flex;flex-direction:column;gap:18px;padding:0 18px 22px;border:none;background:transparent;box-shadow:none}.tournament-hero{margin:0 -18px;padding:20px 18px;border-bottom:1px solid var(--border);background:linear-gradient(135deg,var(--accent-soft),transparent 55%),var(--surface)}.tournament-hero-copy{display:flex;align-items:center;gap:14px}.tournament-hero-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:var(--accent-strong);color:var(--surface);flex:0 0 auto}.tournament-active h2,.tournament-hero h2{margin:0 0 6px;color:var(--text-strong);font-size:1.2rem}.tournament-hero h2{margin-bottom:0}.tournament-hero p,.tournament-round-hint{margin:0;color:var(--muted);font-size:16px;line-height:1.5}.tournament-setup-grid{display:grid;grid-template-columns:minmax(180px,220px) minmax(0,1fr);grid-gap:16px;gap:16px;align-items:flex-end}.tournament-stat-pills{display:flex;flex-wrap:wrap;gap:10px}.tournament-meta-chip,.tournament-stat-pill{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:8px 14px;border:1px solid var(--border);border-radius:999px;background:var(--surface-alt);color:var(--text);font-size:16px;font-weight:700}.tournament-stat-pill.muted{color:var(--muted)}.tournament-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:0 -18px;padding:16px 18px 0}.tournament-toolbar-meta{display:flex;flex-wrap:wrap;gap:10px}.tournament-toolbar-actions{display:flex;flex-wrap:wrap;align-items:center;gap:20px}.tournament-cancel{margin-left:auto}.tournament-timer{--timer-progress:1;position:relative;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 22px 24px;border:1px solid var(--border);border-radius:16px;background:radial-gradient(120% 140% at 0 0,color-mix(in srgb,var(--accent) 12%,transparent),transparent 55%),var(--surface);box-shadow:var(--shadow-soft);overflow:hidden;transition:border-color .25s ease,box-shadow .25s ease,background .25s ease}.tournament-timer.running{border-color:color-mix(in srgb,var(--accent) 42%,var(--border));box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 22%,transparent),var(--shadow-soft)}.tournament-timer.done{border-color:color-mix(in srgb,var(--danger) 55%,var(--border));background:radial-gradient(120% 140% at 0 0,color-mix(in srgb,var(--danger) 14%,transparent),transparent 55%),var(--surface);animation:timer-flash 1.1s ease-in-out infinite}@keyframes timer-flash{0%,to{box-shadow:0 0 0 1px color-mix(in srgb,var(--danger) 24%,transparent),var(--shadow-soft)}50%{box-shadow:0 0 0 4px color-mix(in srgb,var(--danger) 26%,transparent),var(--shadow-soft)}}.tournament-timer-display{display:flex;align-items:center;gap:16px;min-width:0}.tournament-timer-icon{display:inline-grid;place-items:center;width:52px;height:52px;flex:0 0 52px;border-radius:14px;background:linear-gradient(160deg,var(--accent),var(--accent-strong));color:var(--surface);box-shadow:0 6px 16px color-mix(in srgb,var(--accent) 32%,transparent)}.tournament-timer.running .tournament-timer-icon{animation:timer-pulse 2s ease-in-out infinite}@keyframes timer-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.tournament-timer.done .tournament-timer-icon{background:linear-gradient(160deg,color-mix(in srgb,var(--danger) 80%,white),var(--danger));box-shadow:0 6px 16px color-mix(in srgb,var(--danger) 36%,transparent)}.tournament-timer-readout{display:flex;flex-direction:column;min-width:0}.tournament-timer-label{display:block;color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.tournament-timer-display strong{display:block;margin-top:2px;color:var(--text-strong);font-size:46px;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.01em;line-height:1}.tournament-timer.done .tournament-timer-display strong{color:var(--danger)}.tournament-timer-status{margin-top:6px;display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:12.5px;font-weight:700}.tournament-timer-status:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--muted)}.tournament-timer.running .tournament-timer-status{color:var(--accent-strong)}.tournament-timer.running .tournament-timer-status:before{background:var(--accent);box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 60%,transparent);animation:timer-dot 1.6s ease-out infinite}@keyframes timer-dot{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 55%,transparent)}to{box-shadow:0 0 0 7px transparent}}.tournament-timer.done .tournament-timer-status{color:var(--danger)}.tournament-timer.done .tournament-timer-status:before{background:var(--danger)}.tournament-timer-controls{display:flex;align-items:flex-end;gap:12px}.tournament-timer-minutes{display:grid;grid-gap:6px;gap:6px}.tournament-timer-minutes-label{color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.tournament-timer-stepper{display:inline-flex;align-items:center;height:48px;padding:4px;gap:2px;border:1px solid var(--border-strong);border-radius:12px;background:var(--surface)}.tournament-timer-step{display:inline-grid;place-items:center;width:38px;height:38px;border:0;border-radius:9px;background:var(--surface-alt);color:var(--text-strong);cursor:pointer;transition:background .15s ease,color .15s ease}.tournament-timer-step:hover:not(:disabled){background:var(--accent-soft);color:var(--accent-strong)}.tournament-timer-step:disabled{opacity:.4;cursor:not-allowed}.tournament-timer-minutes-input{width:52px;height:38px;padding:0;border:0;background:transparent;text-align:center;font-size:22px;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text-strong)}.tournament-timer-minutes-input:focus{outline:none;box-shadow:none}.tournament-timer-minutes-input::-webkit-inner-spin-button,.tournament-timer-minutes-input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}.tournament-timer-minutes-input{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.tournament-timer-actions{display:flex;align-items:flex-end;gap:10px}.tournament-timer-button{height:48px;padding:0 20px;border-radius:12px;font-size:16px;white-space:nowrap}.tournament-timer .ghost-button.tournament-timer-button{border-color:transparent;background:var(--surface-alt);color:var(--text-strong)}.tournament-timer .ghost-button.tournament-timer-button:hover{background:color-mix(in srgb,var(--accent) 14%,var(--surface-alt));color:var(--accent-strong)}.tournament-timer .primary-button.tournament-timer-button{box-shadow:0 6px 16px color-mix(in srgb,var(--accent) 28%,transparent)}.tournament-timer-track{position:absolute;left:0;right:0;bottom:0;height:4px;background:color-mix(in srgb,var(--border) 70%,transparent)}.tournament-timer-fill{display:block;height:100%;width:100%;transform-origin:left center;transform:scaleX(var(--timer-progress));background:linear-gradient(90deg,var(--accent),var(--accent-strong));transition:transform .3s linear}.tournament-timer.done .tournament-timer-fill{background:var(--danger)}.timer-fullscreen{--timer-angle:360deg;position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:28px;background:var(--surface)}.timer-fullscreen:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at center,var(--accent-tint),transparent 56%),linear-gradient(180deg,var(--surface),var(--bg-soft));pointer-events:none}.timer-fullscreen.done:before{background:radial-gradient(circle at center,color-mix(in srgb,var(--danger) 14%,transparent),transparent 56%),linear-gradient(180deg,var(--surface),var(--bg-soft))}.timer-fullscreen-close{position:absolute;top:24px;right:24px;z-index:1;display:inline-grid;place-items:center;width:48px;height:48px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-strong);cursor:pointer}.timer-fullscreen-content{position:relative;z-index:1;display:grid;justify-items:center;grid-gap:24px;gap:24px;width:min(92vw,720px)}.timer-fullscreen-label{color:var(--muted);font-size:16px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.timer-fullscreen-ring{display:grid;place-items:center;width:min(68vw,520px);aspect-ratio:1;border-radius:50%;background:conic-gradient(var(--accent-strong) var(--timer-angle),color-mix(in srgb,var(--border) 68%,transparent) 0);box-shadow:0 28px 80px rgb(20 35 28/16%);transition:background .3s linear}.timer-fullscreen.done .timer-fullscreen-ring{background:conic-gradient(var(--danger) var(--timer-angle),color-mix(in srgb,var(--border) 68%,transparent) 0)}.timer-fullscreen-face{display:grid;place-items:center;align-content:center;width:calc(100% - 34px);height:calc(100% - 34px);border-radius:50%;border:1px solid var(--border);background:var(--surface);text-align:center}.timer-fullscreen-face strong{color:var(--text-strong);font-size:clamp(72px,15vw,172px);font-weight:850;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:.92}.timer-fullscreen.done .timer-fullscreen-face strong{color:var(--danger)}.timer-fullscreen-face span{margin-top:18px;color:var(--muted);font-size:clamp(18px,2.4vw,28px);font-weight:800}.timer-fullscreen-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px}.timer-fullscreen-actions .tournament-timer-button{height:54px;padding-inline:24px;font-size:18px}.tournament-round-tabs{display:inline-flex;width:-moz-fit-content;width:fit-content;max-width:100%;overflow-x:auto;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.tournament-round-tab{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:108px;height:42px;padding:0 16px;border:0;border-right:1px solid var(--border);background:transparent;color:var(--muted);font-size:16px;font-weight:800;cursor:pointer}.tournament-round-tab:last-child{border-right:0}.tournament-round-tab.active{background:var(--accent-strong);color:var(--surface)}.tournament-round-tab.complete:not(.active){background:var(--accent-soft);color:var(--accent-strong)}.tournament-round-tab.saved:not(.active):not(.complete){color:var(--accent-strong)}.tournament-round-hint.saved{padding:10px 14px;border:1px dashed var(--border-strong);border-radius:10px;background:var(--surface-alt)}.tournament-round-hint.editing{padding:10px 14px;border:1px solid color-mix(in srgb,var(--accent) 45%,var(--border));border-radius:10px;background:var(--accent-soft);color:var(--accent-strong);font-weight:700}.player-autocomplete{position:relative;display:grid;grid-gap:10px;gap:10px;max-width:none}.field-input-wrap{display:flex;align-items:center;gap:8px;min-height:44px;padding:8px 12px;border:1px solid var(--border-strong);border-radius:10px;background:var(--surface-elevated);color:var(--muted)}.field-input-wrap:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.field-input-wrap input{width:100%;min-width:0;height:auto;border:none;background:transparent;font-size:17px;font-weight:700;color:var(--text-strong);outline:none;padding:0;box-shadow:none}.field-input-wrap input::placeholder{color:var(--muted);font-weight:600}.field-input-wrap .icon-button{width:32px;height:32px;flex:0 0 32px}.weekly-mover{display:flex;align-items:center;gap:14px;width:100%;margin-bottom:16px;padding:14px 18px;border:1px solid var(--accent);border-radius:14px;background:var(--accent-soft);color:var(--text-strong);text-align:left;cursor:pointer}.weekly-mover:hover{background:var(--accent-tint);border-color:var(--accent-strong)}.weekly-mover-flame{font-size:22px;line-height:1}.weekly-mover-text{display:flex;flex-direction:column;gap:2px}.weekly-mover-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--accent-strong)}.weekly-mover-text strong{font-size:17px}.weekly-mover-change{margin-left:auto;font-size:18px;font-weight:800;color:var(--accent-strong)}.players-share-button{margin-top:8px;padding:5px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font-size:13px;font-weight:700;cursor:pointer}.players-share-button:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.head-to-head-share-button{flex:0 0 auto;margin-top:0}.players-form-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:16px 18px;margin:0}.players-form-label{font-size:13px;font-weight:700;color:var(--muted)}.players-form-pills{display:inline-flex;gap:5px}.players-form-pill{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:7px;font-size:13px;font-weight:800;color:var(--bg)}.players-form-pill.win{background:var(--accent)}.players-form-pill.loss{background:var(--danger)}.players-form-streak{font-size:13px;font-weight:700}.players-form-streak.win{color:var(--accent-strong)}.players-form-streak.loss{color:var(--danger)}.app-crash{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px;background:var(--bg)}.app-crash-card{max-width:420px;text-align:center;padding:32px 28px;border:1px solid var(--border-strong);border-radius:16px;background:var(--surface-elevated);box-shadow:var(--shadow)}.app-crash-card h1{margin:0 0 10px;font-size:22px;color:var(--text-strong)}.app-crash-card p{margin:0 0 20px;color:var(--muted);line-height:1.5}.header-admin-link{border-color:var(--accent);color:var(--accent-strong);background:var(--accent-soft)}.header-admin-link:hover{border-color:var(--accent-strong);background:var(--accent-tint)}.date-picker{position:relative}.date-picker-trigger{width:100%;cursor:pointer;text-align:left;color:var(--accent-strong)}.date-picker-trigger:hover{border-color:var(--accent)}.date-picker-value{flex:1 1;min-width:0;font-size:17px;font-weight:700;color:var(--text-strong)}.date-picker-trigger.is-empty .date-picker-value{color:var(--muted);font-weight:600}.date-picker-validation{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;bottom:0;left:12px}.date-picker-popover{position:absolute;z-index:40;top:calc(100% + 8px);left:0;width:280px;max-width:calc(100vw - 32px);padding:14px;border:1px solid var(--border-strong);border-radius:14px;background:var(--surface-elevated);box-shadow:var(--shadow)}.date-picker-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.date-picker-title{font-size:16px;font-weight:800;color:var(--text-strong)}.date-picker-nav{display:flex;align-items:center;gap:4px}.date-picker-nav button{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);cursor:pointer}.date-picker-nav button:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.date-picker-today-dot{width:8px;height:8px;border-radius:50%;background:var(--accent)}.date-picker-weekdays{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:2px;gap:2px;margin-bottom:4px}.date-picker-weekdays span{text-align:center;font-size:12px;font-weight:700;color:var(--muted);padding:4px 0}.date-picker-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:2px;gap:2px}.date-picker-blank{aspect-ratio:1}.date-picker-day{display:inline-flex;align-items:center;justify-content:center;aspect-ratio:1;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--text);font-size:14px;font-weight:600;cursor:pointer}.date-picker-day:hover{background:var(--accent-soft);color:var(--accent-strong)}.date-picker-day.is-today{border-color:var(--border-strong)}.date-picker-day.is-selected{background:var(--accent);border-color:var(--accent);color:var(--table-head-text);font-weight:800}.date-picker-day.is-selected:hover{background:var(--accent-strong);color:var(--table-head-text)}.autocomplete-dropdown{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:10;max-height:260px;overflow-y:auto;border:1px solid var(--border);border-radius:10px;background:var(--surface-elevated);box-shadow:var(--shadow);font-size:16px;font-weight:700}.autocomplete-dropdown div{padding:10px 14px;cursor:pointer;color:var(--text)}.autocomplete-dropdown .suggestion-highlight,.autocomplete-dropdown div:hover{background:var(--accent-soft);color:var(--accent-strong)}.autocomplete-dropdown.empty{padding:10px 14px;color:var(--muted);cursor:default}.selected-player-chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(176px,1fr));grid-gap:8px;gap:8px}.player-chip{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 8px 8px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface);font-size:15px;font-weight:700;color:var(--text-strong);box-shadow:0 1px 2px color-mix(in srgb,var(--text-strong) 5%,transparent);transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.player-chip:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--border));box-shadow:0 2px 8px color-mix(in srgb,var(--accent) 14%,transparent)}.player-chip>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.01em}.player-chip .icon-button{flex:0 0 auto;width:24px;height:24px;border-radius:8px;background:var(--surface-alt);color:var(--muted);transition:background .15s ease,color .15s ease}.player-chip .icon-button:hover{background:var(--danger-soft);color:var(--danger)}.tournament-roster{display:grid;grid-gap:12px;gap:12px}.tournament-roster-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.tournament-roster-title{font-size:16px;font-weight:700;color:var(--text)}.tournament-roster-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tournament-roster-empty{width:100%;padding:18px;border:1px dashed var(--border-strong);border-radius:12px;background:var(--surface-alt);color:var(--muted);font-size:15px;font-weight:600;text-align:center;cursor:pointer}.tournament-roster-empty:hover{color:var(--accent-strong);border-color:var(--accent-strong)}.confirm-dialog.player-picker{width:min(880px,100%);height:min(720px,calc(100dvh - 40px));display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;grid-gap:18px;gap:18px;padding:24px;overflow:hidden}.player-picker-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.player-picker-head h3{margin:0;font-size:22px}.player-picker-head span{display:block;margin-top:3px;color:var(--muted);font-size:14px;font-weight:700}.player-picker-search{min-height:52px}.player-picker-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:16px;gap:16px;min-height:0}.player-picker-column{display:grid;grid-template-rows:auto minmax(0,1fr);grid-gap:12px;gap:12px;min-width:0;min-height:0;padding:14px;border:1px solid var(--border);border-radius:14px;background:var(--surface-alt)}.player-picker-column-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.player-picker-column-head h4{margin:0;color:var(--text-strong);font-size:15px}.player-picker-column-head span{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 8px;border-radius:999px;background:var(--surface);color:var(--muted);font-size:13px;font-weight:800}.player-picker-list{display:grid;align-content:start;grid-gap:6px;gap:6px;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:2px 4px 2px 0}.player-picker-option{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:var(--surface-elevated);color:var(--text);font-size:16px;font-weight:700;text-align:left;cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.player-picker-option:hover{border-color:var(--accent-strong);box-shadow:var(--shadow-soft)}.player-picker-option>span:first-child{overflow-wrap:anywhere}.player-picker-option.selected{background:var(--accent-soft);border-color:var(--accent-strong);color:var(--accent-strong)}.player-picker-check{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0;border:1px solid var(--border-strong);border-radius:999px;color:transparent}.player-picker-option.selected .player-picker-check{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}.player-picker-check.remove{background:var(--surface);color:var(--muted)}.player-picker-option.selected:hover .player-picker-check.remove{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.player-picker-empty{margin:0;padding:18px 8px;color:var(--muted);text-align:center}.player-picker-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:14px}.player-picker-count{display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:700;color:var(--muted)}.player-picker-foot-actions{display:flex;align-items:center;gap:10px}@media (max-width:640px){.confirm-dialog.player-picker{width:100%;height:min(680px,calc(100dvh - 24px));padding:18px}.player-picker-columns{grid-template-columns:1fr}.player-picker-column{min-height:180px}.player-picker-option{padding:11px 12px;font-size:15px}.player-picker-foot,.player-picker-foot-actions{align-items:stretch}.player-picker-foot-actions,.player-picker-foot-actions>button{width:100%}}.tournament-game-list{display:grid;grid-gap:16px;gap:16px}.tournament-game-block{overflow:hidden;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-soft)}.tournament-game-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border-bottom:1px solid var(--border);background:linear-gradient(135deg,var(--surface-alt),var(--surface))}.tournament-game-head p{margin:4px 0 0;color:var(--muted);font-size:15px;font-weight:700;line-height:1.35}.tournament-game-head strong{color:var(--text-strong)}.tournament-game-kicker{color:var(--accent-strong);font-size:14px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.tournament-game-progress,.tournament-score-status{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:4px 10px;border-radius:999px;font-size:14px;font-weight:900;white-space:nowrap}.tournament-game-progress{border:1px solid var(--border);background:var(--surface);color:var(--muted)}.tournament-game-head-end{display:inline-flex;align-items:center;gap:10px}.tournament-game-remove{display:inline-grid;place-items:center;width:32px;height:32px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--muted);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.tournament-game-remove:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:var(--accent-soft);color:var(--accent-strong)}.tournament-game-block.skipped .tournament-game-courts{opacity:.45;pointer-events:none;filter:grayscale(.6)}.tournament-game-courts{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:12px;gap:12px;padding:14px}.tournament-court-badge{display:inline-flex;align-items:center;width:-moz-fit-content;width:fit-content;padding:5px 10px;border-radius:999px;background:var(--accent-strong);color:var(--surface);font-size:14px;font-weight:800;letter-spacing:.02em;text-transform:uppercase}.tournament-match{display:flex;flex-direction:column;gap:10px;min-width:0;padding:14px;border:1px solid var(--border);border-radius:10px;background:var(--surface-alt)}.tournament-match-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.tournament-score-status{background:var(--accent-soft);color:var(--accent-strong)}.tournament-match-body.pickleball-court{position:relative;display:grid;grid-template-rows:minmax(86px,1fr) auto minmax(86px,1fr);grid-gap:10px;gap:10px;min-height:330px;overflow:hidden;padding:14px;border:1px solid rgb(255 255 255/70%);border-radius:12px;background:linear-gradient(90deg,transparent calc(50% - 1px),rgb(255 255 255/62%) calc(50% - 1px),rgb(255 255 255/62%) calc(50% + 1px),transparent calc(50% + 1px)),linear-gradient(180deg,rgb(255 255 255/60%) 0 2px,transparent 2px calc(100% - 2px),rgb(255 255 255/60%) calc(100% - 2px)),#dcefe6}.court-team,.tournament-match-team{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;grid-gap:10px;gap:10px;min-width:0;color:var(--text-strong)}.court-team-top{align-self:end}.court-team-bottom{align-self:start}.court-team>span,.tournament-match-team>span{display:flex;align-items:center;justify-content:center;min-height:44px;padding:9px 10px;border:1px solid rgb(16 95 67/24%);border-radius:10px;background:rgb(255 255 255/76%);color:var(--text-strong);font-size:16px;font-weight:850;line-height:1.15;text-align:center;overflow-wrap:normal;word-break:normal}.court-team>span.empty,.tournament-match-team>span.empty{color:var(--surface);font-weight:800;border-color:var(--danger);background:var(--danger)}.player-slot-combobox{position:relative;min-width:0}.player-slot-input{width:100%;height:44px;padding:0 12px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--text-strong);font-size:14px;font-weight:800}.player-slot-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--focus)}.player-slot-combobox.empty .player-slot-input{border-color:var(--danger);background:var(--danger);color:var(--surface)}.player-slot-combobox.empty .player-slot-input::placeholder{color:rgb(255 255 255/90%)}.themed-select-option.empty-result{cursor:default;color:var(--muted);font-weight:600}.tournament-match.editing-lineups .court-team{grid-template-columns:1fr}.tournament-match.editing-lineups .tournament-match-body.pickleball-court{min-height:0}.tournament-lineup-bar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:2px}.tournament-lineup-hint{flex:1 1 280px;color:var(--muted);font-size:13px;font-weight:600}.tournament-lineup-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-left:auto}.court-net-zone{grid-template-rows:auto auto auto;justify-items:center;grid-gap:6px;gap:6px;min-width:0}.court-net,.court-net-zone{display:grid;align-items:center}.court-net{grid-template-columns:minmax(28px,1fr) auto minmax(28px,1fr);grid-gap:8px;gap:8px;width:100%;color:var(--accent-strong);font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.court-net:after,.court-net:before{content:"";height:3px;border-radius:999px;background:repeating-linear-gradient(90deg,var(--accent-strong) 0 8px,transparent 8px 12px)}.tournament-score-input{width:min(150px,100%);min-height:46px;background:var(--surface);grid-template-columns:34px minmax(0,1fr) 34px;border-color:rgb(16 95 67/35%);box-shadow:0 8px 20px rgb(16 95 67/8%)}.tournament-score-input input{text-align:center;font-size:20px;padding:0 4px}.tournament-score-input .score-stepper-button{color:var(--accent-strong)}.tournament-score-input input:-moz-read-only{color:var(--muted)}.tournament-score-input input:read-only{color:var(--muted)}.tournament-court-results{display:flex;flex-direction:column;gap:8px;padding:14px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.tournament-results-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:12px;gap:12px}.tournament-results-label{color:var(--muted);font-size:14px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.tournament-court-standings{display:grid;grid-template-columns:1fr;grid-gap:8px;gap:8px}.tournament-rank{display:block;width:100%;padding:5px 10px;border-radius:8px;font-size:14px;font-weight:700}.tournament-rank.moving-up{background:var(--accent-soft);color:var(--accent-strong)}.tournament-rank.moving-down{background:var(--danger-soft);color:var(--danger)}.tournament-rank.staying{background:var(--surface-alt);color:var(--text)}.tournament-rank-move{margin-left:6px;font-size:12px;font-weight:800;opacity:.85}.tournament-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding-top:4px}.tournament-draft-saved{display:inline-flex;align-items:center;gap:6px;color:var(--accent-strong);font-size:13px;font-weight:700}@media (max-width:680px){.tournament-setup-grid{grid-template-columns:1fr}.tournament-round-tabs{width:100%}.tournament-round-tab{min-width:0;flex:1 1}.tournament-timer{align-items:stretch;flex-direction:column}.tournament-timer-display strong{font-size:34px}.tournament-timer-controls{flex-direction:column;align-items:stretch}.tournament-timer-minutes{width:100%}.tournament-timer-stepper{justify-content:space-between}.tournament-timer-actions{width:100%}.tournament-timer-actions .tournament-timer-button{flex:1 1}.tournament-timer-button{width:100%}.timer-fullscreen{padding:18px}.timer-fullscreen-close{top:16px;right:16px}.timer-fullscreen-content{gap:18px}.timer-fullscreen-ring{width:min(86vw,390px)}.timer-fullscreen-actions{width:100%}.timer-fullscreen-actions .tournament-timer-button{flex:1 1 150px}.tournament-game-head{align-items:flex-start;flex-direction:column}.tournament-game-progress{width:100%}.tournament-game-courts{grid-template-columns:1fr;padding:12px}.tournament-match-body{grid-template-columns:1fr;gap:10px}.tournament-actions .ghost-button,.tournament-actions .primary-button{width:100%}}.dev-mode-banner{margin:0 28px 12px;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:var(--surface-alt);color:var(--muted);font-size:16px;line-height:1.5}.dev-mode-banner strong{color:var(--text-strong)}.rating-explainer-page{margin:18px 28px 0;overflow:hidden}.rating-explainer-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:24px 28px 20px;border-bottom:1px solid var(--border);background:linear-gradient(135deg,var(--accent-soft),transparent 58%),var(--surface)}.rating-explainer-hero h2{margin:6px 0 8px;color:var(--text-strong);font-size:clamp(1.8rem,3vw,2.55rem);line-height:1.05}.rating-explainer-hero p{max-width:720px;margin:0;color:var(--muted);font-size:17px;line-height:1.65}.rating-explainer-baseline{min-width:150px;padding:14px 16px;border:1px solid var(--border);border-radius:10px;background:var(--surface);text-align:right}.rating-explainer-baseline span{display:block;color:var(--muted);font-size:14px;font-weight:900;text-transform:uppercase}.rating-explainer-baseline strong{display:block;margin-top:6px;color:var(--accent-strong);font-size:2rem;line-height:1}.rating-explainer-content{display:grid;grid-gap:22px;gap:22px;padding:22px 28px 28px}.explainer-overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px}.explainer-example,.explainer-feature-card,.explainer-panel{border:1px solid var(--border);border-radius:12px;background:var(--surface-alt)}.explainer-feature-card{padding:16px}.explainer-feature-card span{display:inline-grid;place-items:center;width:30px;height:30px;margin-bottom:14px;border-radius:999px;background:var(--accent-soft);color:var(--accent-strong);font-size:15px;font-weight:900}.explainer-example,.explainer-panel{display:grid;grid-template-columns:minmax(240px,.78fr) minmax(0,1.22fr);grid-gap:18px;gap:18px;padding:18px}.explainer-section h3{margin:0 0 10px;color:var(--text-strong);font-size:1.05rem}.explainer-section p{margin:0;color:var(--muted);font-size:16px;line-height:1.65}.explainer-section p+p{margin-top:10px}.explainer-rule-list{display:grid;grid-gap:10px;gap:10px}.explainer-rule-list div{display:grid;grid-template-columns:minmax(120px,.55fr) minmax(180px,1fr);grid-gap:6px 14px;gap:6px 14px;align-items:baseline;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.explainer-example-grid span,.explainer-rule-list span{color:var(--muted);font-size:14px;font-weight:900;text-transform:uppercase}.explainer-example-grid strong,.explainer-rule-list strong{color:var(--text-strong);font-size:18px}.explainer-rule-list small{grid-column:2;color:var(--muted);font-size:14px;font-weight:700;line-height:1.4}.explainer-card-label{display:block;margin-bottom:6px;color:var(--accent-strong);font-size:14px;font-weight:900;text-transform:uppercase}.explainer-example-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:10px;gap:10px}.explainer-example-grid div{display:grid;align-content:start;grid-gap:8px;gap:8px;min-height:92px;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.confirm-overlay{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:20px;background:rgb(15 23 42/42%)}.confirm-dialog{width:min(420px,100%);padding:22px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}.confirm-dialog h3{margin:0 0 8px;font-size:22px}.confirm-dialog p{margin:0;color:var(--muted);line-height:1.5}.confirm-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.primary-button.danger-button{background:var(--danger);color:#fff}.local-admin-tools{display:grid;grid-gap:12px;gap:12px;padding:0 18px 18px}.local-data-actions{display:flex;flex-wrap:wrap;gap:10px}.weekly-search{min-width:min(240px,100%)}.leaderboard-table-wrap{-webkit-overflow-scrolling:touch}@media (max-width:680px){.dev-mode-banner,.rating-explainer-page{margin-inline:14px}.explainer-example,.explainer-panel,.rating-explainer-hero{grid-template-columns:1fr}.rating-explainer-hero{display:grid;padding:20px}.rating-explainer-baseline{text-align:left}.rating-explainer-content{padding:18px}.explainer-example-grid,.explainer-overview-grid,.explainer-rule-list div{grid-template-columns:1fr}.explainer-rule-list small{grid-column:auto}.weekly-heading{flex-wrap:wrap}.weekly-controls-panel{order:1}.weekly-table-panel{order:2}.weekly-workspace>.weekly-detail-panel{order:3}.weekly-table-panel .table-wrap{max-height:360px;overflow:auto;overscroll-behavior:contain;scroll-behavior:smooth;transform:translateZ(0);will-change:scroll-position}.weekly-heading .week-select{margin-left:0;width:100%}.weekly-search{width:100%}}@media (hover:none) and (pointer:coarse){.players-history-row,tbody tr{transition:none}.players-history-row:hover,.recent-games-table tbody tr:hover,tbody tr:hover{background:inherit;box-shadow:none;transform:none}.players-history-row:hover td,tbody tr:focus-visible>*,tbody tr:hover>*{background:inherit;box-shadow:none}tbody tr.selected-row{background:var(--selected-row)}}.skip-link{position:absolute;left:-9999px;top:0;z-index:100;padding:10px 14px;background:var(--accent-strong);color:var(--surface);border-radius:8px}.skip-link:focus{left:12px;top:12px}.brand-logo-button{border:0;padding:0;background:transparent;cursor:pointer}.topbar{flex-wrap:wrap}.sync-status{display:flex;align-items:center;gap:8px;width:100%;margin:0;padding:0 28px 12px;color:var(--muted);font-size:14px;font-weight:700}.sync-dot{width:8px;height:8px;border-radius:50%;background:var(--muted)}.sync-dot.live{background:var(--accent-strong)}.sync-dot.syncing{animation:sync-pulse 1s ease-in-out infinite}@keyframes sync-pulse{50%{opacity:.35}}.app-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 28px 24px;padding-top:8px;border-top:1px solid var(--border);color:var(--muted);font-size:14px}.sticky-player-bar{position:-webkit-sticky;position:sticky;top:8px;z-index:5;display:none;align-items:center;gap:8px;margin:0 28px 12px;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-soft)}.sticky-player-main{display:flex;flex:1 1;align-items:center;gap:10px;text-align:left}.sticky-player-dismiss,.sticky-player-main{border:0;background:transparent;cursor:pointer}.sticky-player-dismiss{color:var(--muted)}.leaderboard-row{cursor:default}.rank-movement{display:inline-flex;align-items:center;flex-shrink:0;width:-moz-fit-content;width:fit-content;margin-top:0;padding:3px 7px;border-radius:999px;background:var(--surface-alt);color:var(--muted);font-size:12px;font-weight:900;line-height:1.1}.rank-movement.up{background:var(--accent-soft);color:var(--accent-strong)}.rank-movement.down{background:var(--danger-soft);color:var(--danger)}.leaderboard-row.pinned-row{outline:2px solid var(--accent-strong);outline-offset:-2px}.weekly-details-toggle{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:12px;padding:10px;border:1px dashed var(--border);border-radius:10px;background:transparent;color:var(--muted);font-weight:700;cursor:pointer}.head-to-head-games{list-style:none;margin:12px 0 0;padding:0;border-top:1px solid var(--border)}.head-to-head-games li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}@media (max-width:680px){.sticky-player-bar{display:flex;margin-inline:14px}.app-footer,.sync-status{margin-inline:14px}.app-footer{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){.sync-dot.syncing{animation:none}}