*{box-sizing:border-box}html,body{color:#17202a;background:#f3f5f8;margin:0;padding:0;font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}.shell{max-width:1120px;margin:0 auto;padding:24px 18px 60px}.topbar{color:#fff;background:#1f6fb2;align-items:center;min-height:62px;display:flex}.nav-inner{flex-wrap:wrap;align-items:center;gap:18px;width:100%;max-width:1120px;margin:0 auto;padding:0 18px;display:flex}.brand{margin-right:auto;font-weight:800}.nav-link{opacity:.95}.nav-link.active{text-underline-offset:4px;-webkit-text-decoration:underline #fff;text-decoration:underline #fff;text-decoration-thickness:2px}.user-chip{white-space:nowrap;background:#ffffff24;border-radius:999px;align-items:center;gap:4px;padding:7px 10px;display:flex}.user-chip span{opacity:.9}.card{background:#fff;border:1px solid #d9e0e7;border-radius:14px;padding:18px;box-shadow:0 3px 10px #0000000a}.grid{gap:16px;display:grid}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.stack{flex-direction:column;gap:12px;display:flex}.muted{color:#66717f}.btn{color:#fff;background:#1f6fb2;border:0;border-radius:10px;padding:10px 14px;font-weight:700}.btn.secondary{color:#17202a;background:#e8edf3}.btn.danger{background:#a33}.btn:disabled{opacity:.5;cursor:not-allowed}.input{background:#fff;border:1px solid #c8d1db;border-radius:10px;width:100%;padding:10px 12px}.label{margin-bottom:4px;font-size:.9rem;font-weight:700;display:block}.team-pick{text-align:left;background:#fff;border:2px solid #d8dee6;border-radius:14px;align-items:center;gap:12px;width:100%;padding:14px;display:flex}.team-pick.selected{background:#edf6ff;border-color:#1f6fb2}.team-pick:disabled{cursor:not-allowed}.team-pick.locked-unselected{opacity:.42}.team-pick.locked-selected{opacity:1;background:#edf6ff;border-color:#1f6fb2}.logo{object-fit:contain;width:42px;height:42px}.game-line{grid-template-columns:minmax(160px,1fr) 44px minmax(160px,1fr) minmax(160px,.7fr);align-items:center;gap:10px;display:grid}.score{font-size:1.4rem;font-weight:800}.badge{background:#e8edf3;border-radius:999px;padding:4px 9px;font-size:.82rem}.badge.live{color:#8b1d1d;background:#ffe8e8}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;vertical-align:middle;border-bottom:1px solid #e1e6eb;padding:10px}h1,h2,h3{margin-top:0}.hero{padding:44px 0 10px}@media (max-width:760px){.team-name{display:none}.grid-2,.game-line{grid-template-columns:1fr}.desktop-only{display:none}.user-chip{order:10}}.admin-toggle{color:#fff;background:#ffffff1a;border:1px solid #ffffff8c;border-radius:999px;padding:8px 11px;font-weight:700}.admin-toggle.on{color:#6a4a00;background:#fff2cc;border-color:#f0d27a}.segmented{background:#e8edf3;border-radius:10px;padding:3px;display:inline-flex}.segment{color:#42505f;background:0 0;border:0;border-radius:8px;padding:7px 12px;font-weight:700}.segment.active{color:#17202a;background:#fff;box-shadow:0 1px 3px #0000001a}.badge.success{color:#236b34;background:#e4f5e8}.status-correct{color:#236b34;font-weight:700}.picks-made-complete{color:#236b34;font-weight:inherit}.status-wrong{color:#9b2c2c;font-weight:700}.score-input{max-width:90px}.compact-stack{gap:3px}.compact-table th,.compact-table td{padding-top:7px;padding-bottom:7px}.between{justify-content:space-between}.test-clock-banner{border-style:dashed}.link-button{color:#1f6fb2;cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.link-button:hover{text-decoration:underline}details.card>summary{list-style:none}details.card>summary::-webkit-details-marker{display:none}.setting-row{border-bottom:1px solid #e5e9ee;align-items:flex-start;gap:12px;padding:12px 0;display:flex}.setting-row input{width:18px;height:18px;margin-top:4px}.setting-row>span{flex-direction:column;gap:3px;display:flex}.notice{background:#f7f9fb;border:1px solid #d9e0e7;border-radius:10px;padding:12px 14px}.chart-wrap{width:100%;overflow-x:auto}.chart-wrap svg{width:100%;min-width:640px;height:auto;display:block}.chart-axis{stroke:currentColor;stroke-width:1.2px;opacity:.45}.chart-grid{stroke:currentColor;stroke-width:1px;opacity:.1}.chart-line{fill:none;stroke:currentColor;stroke-width:3px}.chart-point{fill:currentColor}.chart-missed{fill:none;stroke:currentColor;stroke-width:2px;opacity:.55}.chart-label{fill:currentColor;opacity:.72;font-size:12px}.chart-missed-label{fill:currentColor;opacity:.65;font-size:11px}.schedule-grid{grid-template-columns:minmax(180px,1fr) minmax(150px,.7fr);gap:14px;max-width:560px;display:grid}.switch-line{align-items:center;gap:8px;font-weight:700;display:flex}.switch-line input{width:18px;height:18px}.season-dashboard{grid-template-columns:minmax(320px,.78fr) minmax(620px,1.65fr);align-items:start;gap:16px;display:grid}.season-performance-card{min-width:0}.season-chart-controls{grid-template-columns:210px minmax(0,1fr);align-items:stretch;gap:14px;display:grid}.player-filter-panel{border:1px solid #e1e6eb;border-radius:12px;min-width:0;padding:12px}.player-check-list{border-top:1px solid #edf0f3;max-height:340px;margin-top:8px;overflow:auto}.chart-player-check{align-items:center;gap:8px;padding:7px 2px;font-size:.9rem;display:flex}.chart-player-check input{flex:none;width:16px;height:16px}.line-swatch{background:hsl(var(--swatch-hue) 68% 42%);border-radius:999px;flex:none;width:20px;height:3px}.season-chart-panel{border:1px solid #e1e6eb;border-radius:12px;min-width:0;padding:8px;overflow-x:auto}.season-chart-wrap svg{width:100%;min-width:720px;height:auto;display:block}.chart-week-grid{stroke:currentColor;stroke-width:1px;opacity:.045}.chart-axis-title{fill:currentColor;opacity:.75;font-size:13px;font-weight:700}.chart-empty{justify-content:center;align-items:center;min-height:390px;display:flex}@media (max-width:1050px){.season-dashboard{grid-template-columns:1fr}}@media (max-width:760px){.schedule-grid,.season-chart-controls{grid-template-columns:1fr}.player-check-list{max-height:220px}}.version-badge{vertical-align:middle;opacity:.88;background:#ffffff29;border-radius:999px;margin-left:6px;padding:2px 6px;font-size:.68rem;font-weight:700;line-height:1.2;display:inline-block}.season-standings-card,.season-chart-panel{overflow:visible}.responsive-table-wrap{width:100%;overflow:visible}.admin-role-badge{font-weight:700}@media (max-width:980px){.season-standings-card,.season-chart-panel,.season-chart-wrap,.responsive-table-wrap{overflow-x:auto}.season-chart-wrap svg{min-width:720px}}@media (max-width:640px){.responsive-table-wrap .table{min-width:700px}}.player-actions{flex-wrap:wrap;gap:7px}.game-intro{border:1px solid #e1e6eb;border-radius:12px;margin:0 0 18px;padding:12px 14px;line-height:1.45}.game-intro strong{margin-bottom:4px;display:block}.scoring-rules summary{cursor:pointer}.scoring-rules-body{margin-top:12px}.scoring-rules-body p{margin:7px 0}.rules-page{max-width:920px;margin:0 auto}.rules-hero h1{margin-bottom:8px}.rules-list{gap:8px;margin:0;padding-left:22px;display:grid}.rules-definition-grid,.rules-score-grid,.rules-example-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.rules-definition-grid>div,.rules-score-grid>div,.rules-example-grid>div{border:1px solid #e1e6eb;border-radius:10px;gap:4px;padding:12px;display:grid}.rules-definition-grid span,.rules-score-grid span,.rules-example-grid span{color:#667085}.rules-points{font-weight:700;color:inherit!important}.formula-box{background:#f7f9fb;border:1px solid #d8dee6;border-radius:10px;padding:12px 14px;font-weight:700}.scoring-rules-link{margin:-4px 0 4px}.brand-stack{flex-direction:column;align-items:flex-start;margin-right:auto;line-height:1.1;display:flex}.brand-stack .brand{margin-right:0}.bug-report-link{opacity:.72;text-underline-offset:2px;margin-top:4px;font-size:.72rem;font-weight:500;text-decoration:underline}.bug-report-link:hover{opacity:1}.admin-mode-control{white-space:nowrap;align-items:center;gap:7px;display:flex}.admin-mode-status{background:#ffffff14;border:1px solid #ffffff73;border-radius:999px;padding:6px 9px;font-size:.86rem;font-weight:700}.admin-mode-status.on{color:#6a4a00;background:#fff2cc;border-color:#f0d27a}.topbar-action-link{color:#fff;text-underline-offset:2px;opacity:.8;background:0 0;border:0;padding:0;font-size:.76rem;font-weight:600;text-decoration:underline}.topbar-action-link:hover{opacity:1}.setting-action-group{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.setting-status{color:#42505f;background:#e8edf3;border-radius:999px;padding:6px 10px;font-size:.84rem;font-weight:700}.setting-status.on{color:#236b34;background:#e4f5e8}.bug-details{resize:vertical;min-height:150px}@media (max-width:760px){.brand-stack{width:100%;margin-right:0}.admin-mode-control{width:100%}}.shell,.nav-inner{max-width:1280px}.ui-toggle,.nav-admin-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:7px;display:inline-flex}.ui-toggle input,.nav-admin-toggle input{opacity:0;pointer-events:none;position:absolute}.ui-toggle-track,.nav-toggle-track{background:#c9d2dc;border-radius:999px;flex:none;align-items:center;width:38px;height:22px;padding:3px;transition:all .18s;display:inline-flex}.ui-toggle-thumb,.nav-toggle-thumb{background:#fff;border-radius:50%;width:16px;height:16px;transition:all .18s;transform:translate(0);box-shadow:0 1px 3px #0003}.ui-toggle input:checked+.ui-toggle-track,.nav-admin-toggle input:checked+.nav-toggle-track{background:#2f9e5b}.ui-toggle input:checked+.ui-toggle-track .ui-toggle-thumb,.nav-admin-toggle input:checked+.nav-toggle-track .nav-toggle-thumb{transform:translate(16px)}.ui-toggle input:disabled+.ui-toggle-track{opacity:.55}.ui-toggle-text,.nav-toggle-state{min-width:24px;font-size:.78rem;font-weight:700}.nav-admin-toggle{color:#fff;white-space:nowrap;font-size:.82rem}.nav-toggle-track{background:#ffffff57}.nav-admin-toggle input:checked+.nav-toggle-track{background:#f3d77c}.nav-toggle-state{opacity:.9}.developer-tools-panel{margin-top:18px;padding:0;overflow:hidden}.developer-tools-panel>summary{cursor:pointer;justify-content:space-between;align-items:center;padding:12px 16px;font-size:.92rem;display:flex}.developer-tools-panel>summary:after{content:"▾";color:#66717f}.developer-tools-panel[open]>summary:after{content:"▴"}.developer-summary-note{margin-left:8px;font-size:.78rem;font-weight:400}.developer-tools-body{border-top:1px solid #e5e9ee;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px 16px;display:grid}.developer-control{background:#fafbfc;border:1px solid #e1e6eb;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;min-height:64px;padding:10px 12px;display:flex}.developer-control.disabled{opacity:.52;background:#f3f5f7}.developer-control-note{margin-top:3px;font-size:.78rem}.developer-inline-message{font-size:.75rem}.developer-tool-link{color:#1f6fb2;text-underline-offset:2px;font-size:.82rem;font-weight:700;text-decoration:underline}.developer-tool-link.disabled{color:#7c8793;cursor:not-allowed;text-decoration:none}.standings-wide{width:100%}.season-standings-card{overflow:hidden}.season-total-table-wrap{overflow-x:auto}.season-total-table{min-width:760px}.season-total-table th,.season-total-table td{white-space:nowrap;padding-left:8px;padding-right:8px}.rank-movement-cell{width:26px;text-align:center!important;padding-right:2px!important}.rank-arrow{text-align:center;min-width:14px;font-size:.82rem;font-weight:900;display:inline-block}.rank-arrow.neutral{color:#9aa4ae}@media (max-width:1120px){.season-dashboard{grid-template-columns:1fr}}@media (max-width:760px){.developer-tools-body{grid-template-columns:1fr}.nav-admin-toggle{width:auto}}.season-standings-card,.season-performance-card{padding:14px 16px}.season-standings-card h2,.season-performance-card h2{margin-bottom:10px;font-size:1.25rem;line-height:1.2}.season-total-table-wrap{overflow:hidden}.season-total-table{table-layout:fixed;width:100%;font-size:.79rem}.season-total-table th,.season-total-table td{white-space:nowrap;padding:7px 4px;line-height:1.18}.season-total-table th{letter-spacing:-.01em;font-size:.72rem}.rank-cell{font-variant-numeric:tabular-nums;align-items:center;gap:5px;display:flex}.rank-arrow{font-size:.72rem;font-weight:800;line-height:1}.rank-arrow.up{color:#16803c}.rank-arrow.down{color:#b42318}.rank-arrow.neutral{color:#98a2b3;font-size:.9rem}.player-name-cell{overflow-wrap:anywhere;white-space:normal!important}.season-chart-controls{flex-direction:column;gap:10px;display:flex}.player-filter-panel{padding:9px 10px}.player-filter-panel>.label{margin-bottom:5px}.player-filter-panel>.input{max-width:190px;padding:7px 9px;font-size:.82rem}.player-check-list{flex-wrap:wrap;gap:2px 10px;max-height:none;margin-top:6px;display:flex;overflow:visible}.chart-player-check{padding:4px 1px;font-size:.78rem}.all-check{padding-top:6px}.line-swatch{width:15px}.season-chart-panel{width:100%;min-width:0;padding:6px}.season-performance-card>.muted,.season-performance-card .muted{font-size:.78rem;line-height:1.3}.weekly-standings-recap-body{white-space:pre-wrap;font-size:.95rem;line-height:1.55}.weekly-standings-recap-disclosure{margin-top:2px;font-size:.72rem}@media (max-width:1100px){.season-dashboard{grid-template-columns:1fr}.season-total-table{font-size:.82rem}}@media (max-width:760px){.season-total-table-wrap{overflow-x:auto}.season-total-table{min-width:620px}}.nav-admin-toggle{gap:6px}.developer-control-copy{flex:auto;min-width:0}.developer-control-toggle{flex:none;justify-content:flex-end;min-width:76px}.developer-inline-message{color:#66717f;min-height:1.1em;margin-top:3px;font-size:.75rem}.bug-success{color:#236b34;flex-wrap:wrap;align-items:center;gap:10px;font-weight:600;display:flex}.bug-another-link{font-weight:700}.account-message{font-size:.9rem;font-weight:600}.account-message.error{color:#b42318}.account-message.success{color:#236b34}.admin-heading-row{align-items:center}.bug-count-link{color:#536273;background:#fff;border:1px solid #d9e0e7;border-radius:999px;padding:6px 10px;font-size:.85rem;font-weight:700;text-decoration:none}.bug-count-link.active{color:#9f1c1c;background:#fff3f3;border-color:#efb7b7}.bug-count-link:hover{text-underline-offset:2px;text-decoration:underline}.bug-report-admin-card{gap:8px}.bug-report-meta,.bug-report-source{font-size:.8rem}.bug-report-details-text{white-space:pre-wrap;line-height:1.45}.player-dropdown{z-index:3;width:min(320px,100%);position:relative}.player-dropdown>summary{cursor:pointer;background:#fff;border:1px solid #d8dee6;border-radius:9px;justify-content:space-between;align-items:center;gap:12px;padding:8px 11px;font-size:.84rem;font-weight:700;list-style:none;display:flex}.player-dropdown>summary::-webkit-details-marker{display:none}.player-dropdown>summary:after{content:"▾";color:#667085;margin-left:auto}.player-dropdown[open]>summary:after{content:"▴"}.player-dropdown-menu{background:#fff;border:1px solid #d8dee6;border-radius:10px;width:min(340px,90vw);padding:10px;position:absolute;top:calc(100% + 5px);left:0;box-shadow:0 10px 28px #14202d24}.player-dropdown-menu>.input{width:100%;padding:7px 9px;font-size:.82rem}.player-dropdown .player-check-list{max-height:260px;margin-top:5px;display:block;overflow-y:auto}.player-dropdown .chart-player-check{align-items:center;gap:7px;padding:6px 2px;font-size:.82rem;display:flex}.player-dropdown .all-check{border-bottom:1px solid #e7ebef;margin-top:5px;padding-bottom:8px}.season-chart-controls,.season-performance-card{overflow:visible}.season-dashboard{grid-template-columns:minmax(0,.82fr) minmax(0,1.48fr);gap:14px}.season-total-table-wrap{scrollbar-gutter:stable;max-height:min(62vh,620px);overflow:hidden auto}.season-total-table thead th{z-index:1;background:#fff;position:sticky;top:0}.season-chart-wrap{width:100%;overflow:visible}.season-chart-legend-scroll{scrollbar-width:thin;width:100%;margin-bottom:2px;padding:1px 0 7px;overflow:auto hidden}.season-chart-legend{align-items:center;gap:7px;width:max-content;min-width:100%;display:flex}.season-chart-legend-item{white-space:nowrap;background:#fff;border:1px solid #e1e6eb;border-radius:8px;flex:none;align-items:center;gap:6px;padding:5px 8px;font-size:.78rem;font-weight:700;display:inline-flex}.season-chart-legend-dot{border-radius:50%;flex:none;width:8px;height:8px}.season-chart-wrap svg{width:100%;min-width:0;max-width:100%}@media (max-width:1100px){.season-dashboard{grid-template-columns:1fr}.season-total-table-wrap{max-height:520px}}.season-dashboard{grid-template-columns:minmax(560px,.9fr) minmax(0,1.1fr);align-items:start;gap:14px}.season-right-column{flex-direction:column;gap:14px;min-width:0;display:flex}.season-standings-card{min-width:0;overflow:hidden}.season-total-table-wrap{scrollbar-gutter:stable;width:100%;max-height:min(62vh,620px);overflow:hidden auto}.season-total-table{table-layout:fixed;width:100%;min-width:0;font-size:.78rem}.season-total-table th,.season-total-table td{padding:7px 3px}.season-total-table th:first-child{width:42px}.season-total-table th:nth-child(2){width:102px}.season-total-table th:nth-child(3){width:48px}.season-total-table th:nth-child(4){width:50px}.season-total-table th:nth-child(5){width:46px}.season-total-table th:nth-child(6){width:48px}.season-total-table th:nth-child(7){width:44px}.season-total-table th:nth-child(8){width:58px}.season-total-table th:nth-child(9){width:50px}.season-chart-svg-area{width:100%;position:relative}.season-chart-svg-area svg{width:100%;height:auto;display:block}.chart-plot-layer{pointer-events:none}.chart-hover-layer{pointer-events:all}.chart-hover-target{cursor:pointer;pointer-events:all}.season-chart-tooltip{z-index:8;color:#18212b;pointer-events:none;background:#fffffffa;border:1px solid #cfd6df;border-radius:8px;min-width:156px;max-width:190px;padding:8px 9px;font-size:.74rem;line-height:1.25;position:absolute;transform:translate(12px,-50%);box-shadow:0 8px 24px #14202d29}.season-chart-tooltip-title{white-space:nowrap;margin-bottom:6px;font-size:.78rem;font-weight:800}.season-chart-tooltip-grid{grid-template-columns:1fr auto;gap:3px 10px;display:grid}.season-chart-tooltip-grid span{color:#66717f}.season-chart-tooltip-grid strong{font-variant-numeric:tabular-nums}.season-chart-tooltip-names{flex-direction:column;gap:2px;display:flex}@media (max-width:1180px){.season-dashboard{grid-template-columns:1fr}.season-total-table-wrap{max-height:520px}}
