/* Confirmed Football League season; scoped to avoid affecting other events. */
.fl-programme { --fl-line:#d9dce0; --fl-muted:#5c626e; }
.fl-programme [hidden] { display:none!important; }
.fl-programme .fl-nav { display:flex; flex-wrap:wrap; gap:0; border-bottom:1px solid var(--fl-line); margin-bottom:32px; }
.fl-programme .fl-nav > button { flex:1 0 auto; min-width:100px; background:transparent; border:0; border-bottom:3px solid transparent; color:#191c27; padding:15px 20px; }
.fl-programme .fl-nav > button[aria-pressed=true] { border-color:#191c27; background:#ffdd6d; color:#191c27; }
.fl-programme :is(button,a,select,summary):focus-visible { outline:3px solid #bc8d00; outline-offset:3px; }
.fl-eyebrow { display:block; font-size:12px; font-weight:850; letter-spacing:.09em; text-transform:uppercase; }
.fl-season-banner { display:flex; justify-content:space-between; align-items:center; gap:24px; background:#191c27; color:#fff; padding:32px; }
.fl-season-banner .fl-eyebrow { color:#ffdd6d; }
.fl-season-banner h3 { font-size:clamp(24px,2.2vw,32px); margin:8px 0; letter-spacing:-.025em; }
.fl-season-banner p { color:#cdd0d7; font-size:15px; }
.fl-download { color:#fff; font-weight:800; font-size:14px; text-decoration:underline; text-underline-offset:5px; flex-shrink:0; }
.fl-fixture-tools { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:28px 0 20px; }
.fl-fixture-tools > p { display:grid; gap:5px; }
.fl-fixture-tools > p > strong { font-size:13px; text-transform:uppercase; letter-spacing:.07em; color:var(--fl-muted); }
.fl-fixture-tools > p > a { font-size:22px; font-weight:850; letter-spacing:-.02em; }
.fl-fixture-tools label { display:flex; align-items:center; gap:12px; font-size:14px; font-weight:800; }
.fl-fixture-tools select { min-height:46px; border:1px solid var(--fl-line); border-radius:0; background:#fff; color:#191c27; padding:8px 36px 8px 12px; font:inherit; min-width:215px; }
.fl-programme .fl-note { font-size:13px; line-height:1.65; color:var(--fl-muted); margin-top:16px; max-width:100%; }
.fl-programme .fl-public-notice { margin:0 0 24px; }
.fl-calendar { display:grid; gap:14px; }
.fl-matchday { border:1px solid var(--fl-line); background:#fff; scroll-margin-top:180px; }
.fl-matchday.fl-next { border-color:#191c27; border-top:4px solid #ffdd6d; }
.fl-matchday summary { display:flex; gap:24px; align-items:center; padding:20px 24px; cursor:pointer; list-style:none; }
.fl-matchday summary::-webkit-details-marker { display:none; }
.fl-day-date { display:grid; grid-template-columns:auto auto; column-gap:8px; min-width:122px; }
.fl-day-date > span { font-size:12px; color:var(--fl-muted); align-self:center; }
.fl-day-date > strong { grid-column:2; grid-row:1/3; font-size:23px; letter-spacing:-.03em; }
.fl-day-label { display:grid; gap:5px; flex:1; }
.fl-day-label > strong { font-size:16px; font-weight:850; }
.fl-day-label > span { font-size:12px; color:var(--fl-muted); }
.fl-next-label { font-size:11px; font-weight:900; text-transform:uppercase; letter-spacing:.06em; background:#ffdd6d; padding:6px 10px; }
.fl-expand { font-size:26px; line-height:1; width:20px; text-align:center; flex-shrink:0; }
.fl-matchday[open] .fl-expand { transform:rotate(45deg); }
.fl-match-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.fl-matchday > .fl-match-grid { padding:0 24px 24px; }
.fl-match { min-width:0; background:#fff; border:1px solid var(--fl-line); display:flex; flex-direction:column; }
.fl-match-meta { display:flex; justify-content:space-between; align-items:center; gap:8px; padding:12px 16px; font-size:11px; color:var(--fl-muted); border-bottom:1px solid var(--fl-line); }
.fl-match-meta > span:first-child { font-weight:800; color:#191c27; }
.fl-match .fl-status { padding:3px 7px; background:#f1f3f5; border-radius:3px; font-size:10px; }
.fl-match .fl-status-completed { color:#27613d; background:#edf5ef; }
.fl-match .fl-status-postponed { color:#925200; background:#fff5db; font-weight:800; }
.fl-match-sides { display:grid; grid-template-columns:minmax(0,1fr) 76px minmax(0,1fr); align-items:start; gap:10px; padding:24px 14px; flex:1; }
.fl-match-team { display:flex; flex-direction:column; align-items:center; gap:12px; min-width:0; text-align:center; text-decoration:none; color:#191c27; }
.fl-match-team .ifr-team-crest { width:52px; height:52px; }
.fl-match-team-name { font-size:13px; font-weight:800; line-height:1.4; overflow-wrap:anywhere; }
.fl-match-score { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:52px; gap:5px; text-align:center; font-variant-numeric:tabular-nums; }
.fl-match-score strong { font-size:25px; letter-spacing:-.03em; font-weight:900; line-height:1.15; white-space:nowrap; }
.fl-match-score small { font-size:10px; color:var(--fl-muted); }
.fl-match-score a { color:inherit; text-decoration:none; }.fl-match-score a:hover { text-decoration:underline; }
.fl-team-logo { width:38px; height:38px; object-fit:contain; flex-shrink:0; }
.fl-match-foot { display:flex; justify-content:space-between; flex-wrap:wrap; align-items:center; gap:8px; border-top:1px solid var(--fl-line); padding:12px 16px; font-size:10px; color:var(--fl-muted); }
.fl-match-foot .flr-report-link-public { margin:0; white-space:nowrap; }
.fl-break { display:flex; gap:24px; padding:16px 24px; background:#eaecee; color:var(--fl-muted); border-left:2px solid #d0d3d8; }
.fl-break time { width:122px; flex-shrink:0; font-size:12px; padding-top:2px; }
.fl-break > span { display:grid; gap:3px; font-size:12px; }
.fl-break strong { color:#353b46; font-size:13px; }
.fl-date-notice { padding:0 24px 24px; font-size:13px; color:var(--fl-muted); }
.fl-panel-heading { margin-bottom:28px; max-width:780px; }
.fl-panel-heading .fl-eyebrow { color:var(--fl-muted); }
.fl-panel-heading h3 { font-size:clamp(26px,3vw,38px); line-height:1.15; letter-spacing:-.035em; margin:10px 0 12px; }
.fl-panel-heading p { color:var(--fl-muted); line-height:1.65; }
.fl-table-scroll { overflow-x:auto; border:1px solid var(--fl-line); }
.fl-table { width:100%; min-width:780px; border-collapse:separate; border-spacing:0; text-align:center; font-size:14px; font-variant-numeric:tabular-nums; }
.fl-table th,.fl-table td { padding:16px 13px; border-bottom:1px solid var(--fl-line); white-space:nowrap; }
.fl-table thead th { background:#191c27; color:#fff; font-size:12px; }
.fl-table th:nth-child(2),.fl-table tbody th { text-align:left; position:sticky; left:0; background:#fff; z-index:1; min-width:210px; }
.fl-table thead th:nth-child(2) { background:#191c27; }
.fl-table tbody td { background:#fff; }
.fl-table tr:last-child :is(th,td) { border-bottom:0; }
.fl-table-team { display:flex; align-items:center; gap:12px; font-weight:850; }
.fl-table-team > .ifr-team-crest { width:34px; height:34px; }
.fl-table .fl-points { font-weight:900; background:#fff5cf; }
.fl-cup-slot { display:flex; flex-direction:column; min-width:0; }.fl-cup-slot > .fl-match { flex:1; }
.fl-cup-stage { margin-top:32px; }
.fl-cup-stage h4 { font-size:18px; font-weight:850; padding-bottom:16px; border-bottom:1px solid var(--fl-line); margin-bottom:16px; }
.fl-cup-date { font-size:12px; font-weight:800; margin-bottom:10px; }
.fl-cup-winner { display:grid; gap:12px; background:#191c27; color:#ffdd6d; padding:28px; margin-top:28px; }
.fl-cup-winner strong { font-size:28px; }
.fl-team-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.fl-team-grid article { border:1px solid var(--fl-line); padding:32px 24px; background:#fff; text-align:center; }
.fl-team-grid article > .ifr-team-crest { width:84px; height:84px; margin:0 auto 22px; }
.fl-team-grid h4 { font-size:20px; margin-bottom:10px; font-weight:850; }
.fl-team-grid article > span:not(.ifr-team-crest) { color:var(--fl-muted); font-size:12px; }
.fl-rules-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border:1px solid var(--fl-line); background:#fff; }
.fl-rules-grid article { padding:28px; }
.fl-rules-grid article+article { border-left:1px solid var(--fl-line); }
.fl-rules-grid .fl-eyebrow { color:var(--fl-muted); }
.fl-rules-grid h4 { font-size:21px; line-height:1.25; margin:18px 0; font-weight:850; }
.fl-rules-grid p { font-size:14px; color:var(--fl-muted); line-height:1.7; margin-top:14px; }
@media(max-width:1000px){
 .fl-match-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .fl-rules-grid { grid-template-columns:1fr; }
 .fl-rules-grid article+article { border-left:0; border-top:1px solid var(--fl-line); }
 .fl-season-banner { align-items:flex-start; flex-direction:column; }
}
@media(max-width:640px){
 .fl-programme .fl-nav > button { flex:1 1 30%; min-width:0; padding:13px 8px; }
 .fl-programme .fl-nav { margin-bottom:24px; }
 .fl-season-banner { padding:24px; gap:20px; }
 .fl-fixture-tools { flex-direction:column; align-items:stretch; gap:20px; }
 .fl-fixture-tools label { justify-content:space-between; }
 .fl-fixture-tools select { flex:1; min-width:0; max-width:270px; }
 .fl-matchday summary { padding:16px; gap:12px; flex-wrap:wrap; }
 .fl-day-date { min-width:90px; column-gap:6px; }
 .fl-day-date > strong { font-size:20px; }
 .fl-day-label > strong { font-size:14px; }
 .fl-next-label { display:none; }
 .fl-match-grid { grid-template-columns:1fr; gap:12px; }
 .fl-matchday > .fl-match-grid { padding:0 16px 16px; }
 .fl-match-sides { padding:22px 12px; grid-template-columns:minmax(0,1fr) 72px minmax(0,1fr); gap:8px; }
 .fl-match-team-name { font-size:13px; }
 .fl-match-meta { font-size:12px; }.fl-match-foot { font-size:11px; }
 .fl-team-logo { width:40px; height:40px; }
 .fl-break { padding:14px 16px; gap:14px; }
 .fl-break time { width:90px; font-size:11px; }
 .fl-programme .fl-scroll-hint[hidden] { display:block!important; margin:0 0 12px; color:var(--fl-muted); font-size:12px; line-height:1.5; }
 .fl-table-scroll { container-type:inline-size; }
 /* One statistics column fits between the pinned team/rank and points columns. */
 .fl-table { table-layout:fixed; min-width:0; width:calc(100cqw + 336px); }
 .fl-table th,.fl-table td { padding:12px 8px; }
 .fl-table thead th { width:56px; }
 .fl-table tr > :first-child { position:sticky; left:0; z-index:2; width:32px; padding-inline:4px; }
 .fl-table th:nth-child(2),.fl-table tbody th { left:32px; z-index:2; width:calc(100cqw - 144px); min-width:0; max-width:none; white-space:normal; box-shadow:1px 0 0 var(--fl-line); }
 .fl-table tr > :last-child { position:sticky; right:0; z-index:2; width:56px; box-shadow:-1px 0 0 var(--fl-line); }
 .fl-table-team { gap:8px; font-size:12px; }
 .fl-table-team > .ifr-team-crest { width:30px; height:30px; }
 .fl-team-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
 .fl-team-grid article { padding:24px 12px; }
 .fl-team-grid article > .ifr-team-crest { width:68px; height:68px; margin-bottom:16px; }
 .fl-team-grid h4 { font-size:16px; }
 .fl-team-grid article > span:not(.ifr-team-crest) { font-size:11px; }
 .fl-rules-grid article { padding:24px; }
}

/* Team profiles link from the existing competition screens. */
.fl-programme .fl-profile-link{margin-top:18px;font-size:13px;font-weight:800}
.fl-programme .fl-profile-link a{display:inline-block;border-bottom:1px solid currentColor;padding-bottom:3px}
.fl-programme a.fl-match-team:hover .fl-match-team-name,.fl-programme .fl-table-team a:hover{text-decoration:underline;text-underline-offset:4px}

/* Compact statistics introduction with competition controls alongside the heading. */
.fl-stats-header { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:24px; margin-bottom:16px; }
.fl-stats-header .fl-panel-heading { max-width:none; margin:0; }
.fl-programme .fl-stats-header .flr-competition { margin:0; flex-wrap:nowrap; justify-content:flex-end; }
.fl-programme .fl-stats-header .flr-competition button { white-space:nowrap; }
.fl-programme .fl-stats-panel .flr-coverage { max-width:none; margin:0 0 20px; font-size:13px; line-height:1.6; }
@media(max-width:760px){
 .fl-stats-header { grid-template-columns:minmax(0,1fr); gap:14px; margin-bottom:14px; }
 .fl-programme .fl-stats-header .flr-competition { justify-content:flex-start; }
 .fl-programme .fl-stats-header .flr-competition button { padding:10px 16px; }
 .fl-programme .fl-stats-panel .flr-coverage { margin-bottom:18px; }
}

/* Keep the cup introduction and draw information on one compact desktop row. */
.fl-cup-header { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:40px; margin-bottom:24px; }
.fl-cup-header .fl-panel-heading { max-width:none; margin:0; }
.fl-programme .fl-cup-draw { display:grid; gap:4px; margin:0; padding-left:20px; border-left:3px solid #ffdd6d; max-width:320px; }
.fl-cup-draw strong { color:#191c27; font-size:14px; }
.fl-cup-header + .fl-cup-stage { margin-top:0; }
@media(max-width:900px){
 .fl-cup-header { grid-template-columns:minmax(0,1fr); gap:16px; margin-bottom:20px; }
 .fl-programme .fl-cup-draw { max-width:none; padding-left:14px; }
}
