.league-page-shell{max-width:1180px;min-height:80vh;margin:0 auto;padding:22px 24px 56px}.league-page-nav{justify-content:space-between;align-items:center;gap:18px;margin-bottom:28px;display:flex}.league-page-nav .hero-brand{color:var(--ink)}.league-page-home-link{border:1px solid var(--panel-border);color:var(--ink);border-radius:6px;align-items:center;min-height:44px;padding:0 16px;font-weight:900;text-decoration:none;display:inline-flex}.league-page-hero{background:var(--pitch);color:var(--chalk);gap:14px;margin:0 0 26px;padding:34px;display:grid}.league-page-hero h1{font-family:var(--font-display);max-width:980px;margin:0;font-size:clamp(2.4rem,7vw,6.2rem);line-height:.92}.league-page-hero p{color:color-mix(in srgb, var(--chalk) 84%, transparent);max-width:760px;margin:0;font-size:1.1rem;line-height:1.55}.league-detail-hero{background:linear-gradient(135deg, color-mix(in srgb, var(--turf) 25%, transparent), transparent 38%), var(--pitch)}.league-season-stats{flex-wrap:wrap;gap:10px;display:flex}.league-season-stats span,.league-card-code,.league-sync-status,.league-fixture-meta,.league-fixture-footer,.league-gameweek-tab{font-family:var(--font-data);font-variant-numeric:tabular-nums}.league-season-stats span{border:1px solid var(--border-on-dark);color:var(--chalk);text-transform:uppercase;border-radius:6px;padding:8px 10px;font-size:.78rem;font-weight:900}.league-card-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}.league-card{background:var(--surface);border:1px solid var(--panel-border);color:var(--ink);border-radius:8px;gap:10px;min-height:190px;padding:20px;text-decoration:none;display:grid}.league-card:hover{border-color:var(--turf);box-shadow:4px 4px 0 var(--shadow-subtle);transform:translate(-1px,-1px)}.league-card-code{color:var(--away-blue);font-size:.8rem;font-weight:900}.league-card h2,.league-empty-state h2,.league-predictor-toolbar h2{font-family:var(--font-display);margin:0;line-height:1}.league-card h2{font-size:2rem}.league-gameweek-links{border-bottom:1px solid var(--panel-border);border-top:1px solid var(--panel-border);gap:12px;padding:16px 0;display:grid}.league-gameweek-links .eyebrow{margin:0}.league-gameweek-link-grid{flex-wrap:wrap;gap:8px;display:flex}.league-gameweek-link{border:1px solid var(--panel-border);color:var(--ink);font-family:var(--font-data);border-radius:6px;padding:9px 11px;font-size:.75rem;font-weight:900;text-decoration:none}.league-gameweek-link:hover,.league-gameweek-pagination a:hover{border-color:var(--turf);color:var(--turf)}.league-indexable-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;display:grid}.league-indexable-grid article{border-top:4px solid var(--away-blue);padding:20px 4px 0}.league-indexable-grid h2{font-family:var(--font-display);letter-spacing:0;margin:0;font-size:2.8rem;line-height:.98}.league-indexable-grid p{color:var(--muted);line-height:1.6}.league-indexable-grid ul{color:var(--muted);margin:18px 0 0;padding-left:20px;line-height:1.8}.league-gameweek-pagination{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;display:grid}.league-gameweek-pagination a{border:1px solid var(--panel-border);color:var(--ink);text-align:center;border-radius:6px;padding:12px 14px;font-weight:900;text-decoration:none}.league-gameweek-pagination a:nth-child(2){background:var(--pitch);border-color:var(--pitch);color:var(--chalk)}.league-card p,.league-card span:last-child,.league-empty-state p,.league-page-disclaimer p{color:var(--muted);margin:0;line-height:1.45}.league-empty-state{background:var(--surface);border:1px solid var(--panel-border);border-radius:8px;grid-column:1/-1;gap:12px;padding:24px;display:grid}.league-empty-state code{background:var(--surface-neutral);border:1px solid var(--border-subtle);color:var(--ink);border-radius:6px;padding:12px;display:block;overflow-x:auto}.league-predictor{gap:18px;display:grid}.league-predictor-toolbar{justify-content:space-between;align-items:end;gap:18px;display:flex}.league-predictor-toolbar h2{font-size:2.4rem}.league-sync-status{border:1px solid var(--panel-border);color:var(--text-muted-strong);text-align:right;text-transform:uppercase;border-radius:6px;max-width:320px;min-height:36px;padding:9px 10px;font-size:.72rem;font-weight:900}.league-sync-status[data-state=saving]{background:var(--surface-warning);border-color:var(--border-warning)}.league-sync-status[data-state=error]{background:var(--surface-danger);border-color:var(--border-danger);color:var(--error)}.league-gameweek-tabs{gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.league-gameweek-tab{background:var(--surface);border:1px solid var(--panel-border);color:var(--ink);flex:none;min-width:46px;padding:0 10px}.league-gameweek-tab[aria-selected=true]{background:var(--pitch);border-color:var(--pitch);color:var(--chalk)}.league-fixture-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.league-fixture-card{background:var(--surface);border:1px solid var(--panel-border);border-radius:8px;gap:12px;padding:16px;display:grid}.league-fixture-meta,.league-fixture-footer{color:var(--text-meta);text-transform:uppercase;flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:.72rem;font-weight:900;display:flex}.league-community-forecast{border-top:1px solid var(--border-subtle);gap:10px;padding-top:12px;display:grid}.league-community-forecast-heading{color:var(--text-meta);font-family:var(--font-data);text-transform:uppercase;flex-wrap:wrap;justify-content:space-between;gap:8px;font-size:.68rem;font-weight:900;display:flex}.league-outcome-split{gap:4px;min-height:62px;display:flex}.league-outcome-split>span{background:var(--surface-neutral);flex-direction:column;flex-basis:0;justify-content:center;align-items:flex-start;min-width:64px;padding:8px 10px;display:flex;overflow:hidden}.league-outcome-split>span:first-child{background:var(--pitch);color:var(--chalk)}.league-outcome-split>span:last-child{background:var(--away-blue);color:var(--chalk)}.league-outcome-split strong{font-family:var(--font-data);font-size:1.1rem}.league-outcome-split small{text-overflow:ellipsis;white-space:nowrap;width:100%;font-size:.68rem;font-weight:800;display:block;overflow:hidden}.league-common-score{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 12px;margin:0;display:flex}.league-common-score span,.league-community-empty{color:var(--text-meta);font-family:var(--font-data);text-transform:uppercase;font-size:.68rem;font-weight:900}.league-common-score strong{font-size:.86rem}.league-community-empty{border-top:1px solid var(--border-subtle);margin:0;padding-top:12px}.league-seo-shell{gap:28px;display:grid}.league-seo-shell .league-page-nav{margin-bottom:0}.league-seo-hero{background:var(--pitch);color:var(--chalk);grid-template-columns:minmax(0,1.7fr) minmax(260px,.7fr);align-items:end;gap:28px;min-height:430px;padding:42px;display:grid}.league-seo-hero>div:first-child{gap:16px;display:grid}.league-seo-hero h1,.league-seo-editorial h2,.league-community-table-section h2,.league-section-intro h2,.league-conversion-band h2,.season-share-copy h2,.league-seo-faq h2{font-family:var(--font-display);letter-spacing:0;margin:0;line-height:.98}.league-seo-hero h1{max-width:980px;font-size:clamp(2.8rem,7vw,6.5rem)}.league-seo-hero>div>p:not(.eyebrow){color:color-mix(in srgb, var(--chalk) 84%, transparent);max-width:740px;margin:0;font-size:1.08rem;line-height:1.55}.league-seo-hero-actions,.league-conversion-actions{flex-wrap:wrap;gap:10px;display:flex}.league-seo-hero-actions a,.league-conversion-actions a{border:1px solid var(--border-on-dark);color:var(--chalk);border-radius:6px;align-items:center;min-height:46px;padding:0 16px;font-weight:900;text-decoration:none;display:inline-flex}.league-seo-hero-actions a:first-child,.league-conversion-actions a:first-child{background:var(--chalk);color:var(--pitch)}.league-seo-summary{border-left:1px solid var(--border-on-dark);margin:0;padding-left:24px;display:grid}.league-seo-summary div{border-bottom:1px solid var(--border-on-dark);justify-content:space-between;align-items:baseline;gap:12px;padding:14px 0;display:flex}.league-seo-summary dt{color:color-mix(in srgb, var(--chalk) 70%, transparent);text-transform:uppercase;font-size:.72rem;font-weight:900}.league-seo-summary dd{font-family:var(--font-data);margin:0;font-size:1.4rem;font-weight:900}.league-seo-editorial{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.league-seo-editorial article{border-top:4px solid var(--away-blue);padding:20px 4px 0}.league-seo-editorial .league-partner-slot{grid-column:1/-1}.league-seo-editorial h2{font-size:2rem}.league-seo-editorial p,.league-section-intro p,.league-community-table-section>div>p:last-child,.league-conversion-band p,.league-seo-faq p{color:var(--muted);line-height:1.6}.league-partner-slot{background:var(--surface-warning);border:1px solid var(--border-warning);color:var(--ink);border-radius:8px;flex-direction:column;justify-content:space-between;min-height:190px;padding:18px;text-decoration:none;display:flex}.league-partner-slot>span,.league-partner-slot>small{color:var(--text-meta);font-family:var(--font-data);text-transform:uppercase;font-size:.68rem;font-weight:900}.league-partner-slot>strong{font-family:var(--font-display);font-size:1.45rem;line-height:1}.league-partner-slot>p{color:var(--muted);margin:8px 0;line-height:1.4}.league-community-table-section,.league-seo-predictor-section,.league-seo-faq{gap:22px;display:grid}.league-community-table-section h2,.league-section-intro h2,.league-conversion-band h2,.season-share-copy h2,.league-seo-faq h2{font-size:2.8rem}.league-community-table{border:1px solid var(--panel-border);margin:0;padding:0;list-style:none}.league-community-table li{background:var(--surface);border-bottom:1px solid var(--panel-border);grid-template-columns:36px minmax(180px,1fr) minmax(120px,.5fr) 90px;align-items:center;gap:12px;min-height:54px;padding:8px 14px;display:grid}.league-community-table li:last-child{border-bottom:0}.league-community-table li>span,.league-community-table li>b{font-family:var(--font-data);font-variant-numeric:tabular-nums}.league-community-table li>small{color:var(--text-meta)}.league-community-table li>b{text-align:right}.league-community-table-empty{background:var(--surface-neutral);border:1px solid var(--panel-border);margin:0;padding:22px}.community-forecast-data{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.community-forecast-card{background:var(--surface);border:1px solid var(--panel-border);gap:14px;padding:18px;display:grid}.community-forecast-card-heading{justify-content:space-between;align-items:start;gap:16px;display:flex}.community-forecast-card-heading h3{margin:4px 0 0;font-size:1.35rem;line-height:1.1}.community-forecast-date,.community-forecast-count,.community-forecast-scoreline span,.community-forecast-result{color:var(--text-meta);font-family:var(--font-data);text-transform:uppercase;font-size:.68rem;font-weight:900}.community-forecast-date,.community-forecast-count,.community-forecast-result{margin:0}.community-forecast-outcomes{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0;display:grid}.community-forecast-outcomes div{background:var(--surface-neutral);gap:4px;padding:10px;display:grid}.community-forecast-outcomes dt{color:var(--text-meta);text-transform:uppercase;font-size:.68rem;font-weight:900}.community-forecast-outcomes dd{font-family:var(--font-data);margin:0;font-size:1.45rem;font-weight:900}.community-forecast-scoreline{border-top:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 14px;margin:0;padding-top:12px;display:flex}.community-forecast-scoreline strong{font-size:.9rem}.community-forecast-result{border-top:1px solid var(--border-subtle);padding-top:12px}.community-forecast-model{background:var(--surface-neutral);border-left:3px solid var(--accent);gap:8px;padding:12px;display:grid}.community-forecast-model p{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;margin:0;display:flex}.community-forecast-model span{color:var(--text-meta);font-family:var(--font-data);text-transform:uppercase;font-size:.68rem;font-weight:900}.community-forecast-model strong{text-align:right;font-size:.92rem}.league-seo-predictor-section{border-top:1px solid var(--panel-border);padding-top:28px}.league-section-intro{max-width:760px}.league-conversion-band{background:var(--away-blue);color:var(--chalk);grid-template-columns:minmax(0,1.2fr) minmax(240px,.8fr) minmax(240px,.6fr);align-items:center;gap:24px;padding:28px;display:grid}.league-conversion-band p{color:color-mix(in srgb, var(--chalk) 82%, transparent)}.league-conversion-band .league-partner-slot{background:var(--surface);color:var(--ink);min-height:170px}.season-share-section{background:var(--surface-neutral);border:1px solid var(--panel-border);grid-template-columns:minmax(240px,.65fr) minmax(340px,1fr);align-items:stretch;gap:24px;padding:28px;display:grid}.season-share-copy{align-content:center;gap:14px;display:grid}.season-share-copy label{color:var(--text-meta);text-transform:uppercase;gap:6px;font-size:.72rem;font-weight:900;display:grid}.season-share-copy button{background:var(--pitch);color:var(--chalk);min-height:46px}.season-share-copy>p:last-child{color:var(--muted);margin:0}.season-share-card{background:var(--pitch);color:var(--chalk);gap:8px;min-height:310px;padding:28px;display:grid}.season-share-card>span,.season-share-card>small,.season-share-card>p,.season-share-card>div{font-family:var(--font-data);text-transform:uppercase;font-weight:900}.season-share-card>strong{font-family:var(--font-display);align-self:end;font-size:7rem;line-height:.8}.season-share-card>div{border-top:1px solid var(--border-on-dark);flex-wrap:wrap;justify-content:space-between;gap:10px;padding-top:14px;display:flex}.season-share-card>p{color:color-mix(in srgb, var(--chalk) 75%, transparent);margin:0}.league-seo-faq>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.league-seo-faq article{border-top:1px solid var(--panel-border);padding-top:18px}.league-seo-faq h3{margin:0;font-size:1.1rem}.league-related-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.league-related-links a{border:1px solid var(--panel-border);color:var(--ink);border-radius:6px;min-width:0;padding:14px;font-weight:900;text-decoration:none}@media (max-width:900px){.league-seo-hero,.league-conversion-band{grid-template-columns:1fr}.league-seo-summary{border-left:0;border-top:1px solid var(--border-on-dark);padding-left:0}.league-seo-editorial{grid-template-columns:repeat(2,minmax(0,1fr))}.league-seo-editorial .league-partner-slot{grid-column:1/-1;min-height:160px}}@media (max-width:680px){.league-fixture-list{grid-template-columns:1fr}.league-seo-hero{min-height:0;padding:28px 20px}.league-seo-hero h1{font-size:3.1rem}.league-seo-editorial,.community-forecast-data,.league-seo-faq>div,.league-indexable-grid,.league-related-links,.season-share-section{grid-template-columns:1fr}.league-community-table li{grid-template-columns:28px minmax(0,1fr) 74px;gap:8px}.league-community-table li>small{display:none}.season-share-card{min-height:270px;padding:22px}.season-share-card>strong{font-size:5.5rem}.league-outcome-split{min-height:68px}.league-outcome-split>span{min-width:0;padding:8px 6px}.league-outcome-split small{font-size:.58rem}}.league-fixture-row{grid-template-columns:minmax(0,1fr) 74px;align-items:center;gap:12px;display:grid}.league-team{min-width:0}.league-team span:last-child{min-width:0;font-weight:900}.league-fixture-row input{text-align:center}.league-fixture-row input:disabled{cursor:not-allowed;opacity:.58}.league-page-disclaimer{border-top:1px solid var(--panel-border);margin-top:28px;padding-top:18px}.season-table-tool-link,.league-tool-links{border-bottom:1px solid var(--panel-border);border-top:1px solid var(--panel-border);justify-content:space-between;align-items:center;gap:24px;margin-top:26px;padding:22px 0;display:flex}.season-table-tool-link h2,.league-tool-links h2{font-family:var(--font-display);margin:0;font-size:2.35rem;line-height:1}.season-table-tool-link p:not(.eyebrow),.league-tool-links>p:not(.eyebrow){color:var(--muted);max-width:640px;margin:8px 0 0;line-height:1.5}.season-table-tool-link>a,.league-tool-links a,.season-table-share-cta{background:var(--turf);border:1px solid var(--turf);color:var(--chalk);white-space:nowrap;border-radius:5px;justify-content:center;padding:13px 16px;font-weight:900;text-decoration:none;display:inline-flex}.league-tool-links{justify-content:stretch;align-items:start;display:grid}.league-tool-links>div{flex-wrap:wrap;gap:9px;display:flex}.league-tool-links a{background:var(--surface);border-color:var(--panel-border);color:var(--ink)}.season-table-home-link{color:var(--away-blue);margin-top:14px;margin-left:12px;font-weight:900;display:inline-block}.season-table-tool{background:var(--surface-neutral);border:1px solid var(--panel-border);gap:18px;padding:18px;display:grid}.season-table-tool-header{justify-content:space-between;align-items:end;gap:18px;display:flex}.season-table-tool-header p:last-child{color:var(--muted);max-width:640px;margin:6px 0 0;line-height:1.5}.season-table-save-state{border:1px solid var(--panel-border);color:var(--text-meta);font-family:var(--font-data);text-transform:uppercase;white-space:nowrap;padding:8px 10px;font-size:.7rem;font-weight:900}.season-table-save-state[data-state=saving]{background:var(--surface-warning);border-color:var(--border-warning)}.season-table-save-state[data-state=error]{background:var(--surface-danger);border-color:var(--border-danger);color:var(--error)}.season-table-order{gap:7px;margin:0;padding:0;list-style:none;display:grid}.season-table-order-row{background:var(--surface);border:1px solid var(--panel-border);grid-template-columns:38px 20px minmax(0,1fr) 54px auto;align-items:center;gap:10px;min-height:54px;padding:7px 10px;display:grid}.season-table-order-row.is-dragged{border-color:var(--turf);box-shadow:3px 3px 0 var(--shadow-subtle);opacity:.6}.season-table-rank{color:var(--text-meta);font-family:var(--font-data);text-align:center;font-size:.86rem;font-weight:900}.season-table-drag-handle{color:var(--text-meta);cursor:grab;text-align:center;font-size:1.5rem;line-height:1;transform:rotate(90deg)}.season-table-order-row strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.season-table-tla{color:var(--text-meta);font-family:var(--font-data);text-align:center;font-size:.74rem;font-weight:900}.season-table-row-actions{gap:5px;display:flex}.season-table-row-actions button,.season-table-tool-actions button{background:var(--surface);border:1px solid var(--panel-border);color:var(--ink);cursor:pointer;border-radius:4px;min-width:36px;min-height:36px;font-weight:900}.season-table-row-actions button:disabled,.season-table-tool-actions button:disabled{cursor:not-allowed;opacity:.4}.season-table-tool-actions{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.season-table-tool-actions button:first-child{background:var(--turf);border-color:var(--turf);color:var(--chalk);padding:0 14px}.season-table-tool-actions a{color:var(--away-blue);margin-left:auto;padding:9px 0;font-weight:900}.season-table-share-message,.season-table-share-url,.season-table-calculator-note{color:var(--text-meta);font-family:var(--font-data);margin:0;font-size:.72rem}.season-table-share-url{overflow-wrap:anywhere}.season-table-shared-output{gap:18px;margin-top:26px;display:grid}.season-table-shared-order{max-width:760px}.season-table-shared-order .season-table-order-row{grid-template-columns:38px minmax(0,1fr) 54px}.season-table-share-cta{justify-self:start}@media (max-width:720px){.league-page-shell{padding:18px 14px 48px}.league-page-nav{align-items:stretch;display:grid}.league-page-hero{padding:24px 18px}.league-predictor-toolbar{align-items:stretch;display:grid}.league-sync-status{text-align:left;max-width:none}.season-table-tool-link,.season-table-tool-header{align-items:stretch;display:grid}.season-table-tool-link>a{justify-self:start}.season-table-home-link{margin-left:0}.season-table-order-row{grid-template-columns:30px 16px minmax(0,1fr) auto;gap:7px;min-height:52px;padding:6px 7px}.season-table-tla{display:none}.season-table-row-actions button{min-width:34px;min-height:34px}.season-table-tool-actions a{width:100%;margin-left:0}}
