/* Last-pass schedule polish: preserve a stable broadcast layout while making
   the dense operational controls comfortable at normal desktop scale. */
.draw-action-row { display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }
.draw-machine-row.ghost { grid-template-columns:58px minmax(0,1fr); }
.draw-machine-row.ghost .draw-reel-crest { opacity:.78; transform:scale(.78); }
.draw-reel-crest,
.draw-team-slot > i,
.standing-team em,
.knockout-team-row em,
.playoff-qualification-slot em { border-radius:4px !important; }
.draw-reel-crest img,
.draw-team-slot > i img,
.standing-team em img,
.knockout-team-row em img,
.playoff-qualification-slot em img { width:100%; height:100%; object-fit:contain !important; }

/* Team marks must read as crests, rather than as cropped flag thumbnails.
   Keep every schedule surface on a square canvas and leave a little breathing
   room around round or shield-shaped source art. */
.schedule-centre-page .draw-reel-crest,
.schedule-centre-page .draw-team-slot > i,
.schedule-centre-page .standing-team em,
.schedule-centre-page .round-match-teams em,
.schedule-centre-page .fixture-queue-teams em,
.schedule-centre-page .knockout-team-row em,
.schedule-centre-page .champion-callout em,
.schedule-centre-page .playoff-qualification-slot em {
  box-sizing:border-box;
  aspect-ratio:1;
  border-radius:4px !important;
}
.schedule-centre-page .draw-reel-crest { width:54px !important; height:54px !important; }
.schedule-centre-page .draw-team-slot { grid-template-columns:36px minmax(0,1fr); }
.schedule-centre-page .draw-team-slot > i { width:32px !important; height:32px !important; }
.schedule-centre-page .standing-team em,
.schedule-centre-page .fixture-queue-teams em { width:28px !important; height:28px !important; }
.schedule-centre-page .round-match-teams em,
.schedule-centre-page .knockout-team-row em { width:26px !important; height:26px !important; }
.schedule-centre-page .draw-reel-crest img,
.schedule-centre-page .draw-team-slot > i img,
.schedule-centre-page .standing-team em img,
.schedule-centre-page .round-match-teams em img,
.schedule-centre-page .fixture-queue-teams em img,
.schedule-centre-page .knockout-team-row em img,
.schedule-centre-page .champion-callout em img,
.schedule-centre-page .playoff-qualification-slot em img { box-sizing:border-box; object-fit:contain !important; padding:2px; }
.schedule-centre-page .draw-reel-crest.team-flag,
.schedule-centre-page .draw-team-slot > i.team-flag {
  border-color:color-mix(in srgb,var(--flag-color),#fff 42%);
  background:linear-gradient(135deg,color-mix(in srgb,var(--flag-color),#fff 20%),var(--flag-color) 62%,color-mix(in srgb,var(--flag-color),#06111d 42%));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.18),0 5px 14px rgba(0,0,0,.24);
}

/* The header uses the exact same 4-column rhythm as a standing row. */
.compact-standings-grid article > header.group-standing-head {
  display:grid;
  grid-template-columns:24px minmax(0,1fr) 112px 58px;
  align-items:center;
  gap:8px;
}
.compact-standings-grid article > header.group-standing-head > div { grid-column:1 / 3; }
.standing-record-heading { display:grid; grid-template-columns:repeat(5,1fr); gap:2px; text-align:center; }
.standing-record-heading span,
.standing-record-heading b,
.qualification-heading { color:#a9c0cb; font-size:12px; font-variant-numeric:tabular-nums; font-weight:850; }
.standing-record-heading b { color:#d8ff99; }
.qualification-heading { text-align:center; }

/* Score recording deliberately has no chronological goals: a concise side by
   side ledger is generated directly from the entered score. */
.compact-goals-panel .goal-stats-toggle { display:inline-flex; align-items:center; gap:8px; color:#dff5fb; font-size:15px; font-weight:850; cursor:pointer; }
.compact-goals-panel .goal-stats-toggle input { accent-color:#b8f83d; width:17px; height:17px; }
.goal-stats-hint { margin:0 0 14px; color:#9eb7c3; font-size:14px; line-height:1.45; }
.team-goal-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.goal-side { min-width:0; border:1px solid rgba(150,200,220,.18); background:rgba(2,15,26,.38); }
.goal-side > header { display:flex; align-items:baseline; justify-content:space-between; gap:10px; padding:10px 12px; border-bottom:1px solid rgba(150,200,220,.14); }
.goal-side > header b { overflow:hidden; color:#ecf8fb; font-size:16px; text-overflow:ellipsis; white-space:nowrap; }
.goal-side > header small { color:#91aab6; font-size:12px; white-space:nowrap; }
.goal-side-list { display:grid; gap:8px; padding:10px; }
.compact-goal-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:8px; min-width:0; margin:0; padding:8px; border:1px solid rgba(150,200,220,.18); background:#081c2b; }
.compact-goal-row legend { padding:0 4px; color:#bbf871; font-size:12px; font-weight:900; }
.compact-goal-row label { display:grid; gap:4px; min-width:0; color:#9bb2bd; font-size:12px; }
.compact-goal-row select { min-width:0; min-height:34px; border:1px solid rgba(150,200,220,.25); background:#102a3b; color:#eff8fc; font-size:14px; }
.compact-goals-panel.is-player-tracking-off .goal-stats-hint { color:#f0d28a; }
.leaderboard-data-warning { margin:16px 18px 0; padding:10px 12px; border-left:3px solid #e5b94c; background:rgba(229,185,76,.1); color:#ead8a6; font-size:14px; line-height:1.5; }

/* The playoff follows the same left-to-centre-to-right language as the main
   knockout bracket. Each route is independent: PO1/2 and PO3/4 each produce
   one of the last two eight-final places. */
.schedule-centre-page .playoff-workspace { max-width:none; margin:0; overflow-x:auto; }
.playoff-bracket { --playoff-route-height:640px; --playoff-card-height:148px; --playoff-card-half:74px; --playoff-stage-heading:40px; --playoff-stage-gap:13px; grid-template-columns:repeat(5,minmax(0,1fr)); column-gap:48px; min-width:1420px; min-height:716px; padding:28px 32px 34px; }
.playoff-bracket::before { inset:72px 32px 34px; }
.playoff-bracket .playoff-route-lines { top:calc(28px + var(--playoff-stage-heading) + var(--playoff-stage-gap)); right:32px; bottom:auto; left:32px; width:calc(100% - 64px); height:var(--playoff-route-height); }
.playoff-bracket .playoff-bracket-stage { grid-template-rows:var(--playoff-stage-heading) var(--playoff-route-height); gap:var(--playoff-stage-gap); }
.playoff-bracket .playoff-bracket-stage h3 { box-sizing:border-box; height:var(--playoff-stage-heading); color:#d6ff91; font-size:18px; font-weight:900; text-align:center; text-shadow:0 0 16px rgba(183,255,74,.2); }
.playoff-bracket .playoff-bracket-stage h3::after { display:block; width:28px; height:2px; margin:8px auto 0; background:linear-gradient(90deg,transparent,#caff75,transparent); content:""; }
.playoff-bracket .playoff-bracket-matches { position:relative; display:block; min-height:var(--playoff-route-height); height:var(--playoff-route-height); }
.playoff-bracket .knockout-match { position:absolute; z-index:2; right:0; left:0; display:block; box-sizing:border-box; height:var(--playoff-card-height); min-height:var(--playoff-card-height) !important; max-height:var(--playoff-card-height); margin:0; padding:10px 12px !important; overflow:hidden; border-color:rgba(148,195,206,.3); background:linear-gradient(145deg,rgba(11,35,52,.98),rgba(3,16,28,.96)); box-shadow:0 12px 24px rgba(0,0,0,.2); }
.playoff-bracket .knockout-match.complete { border-color:rgba(192,255,109,.62); background:linear-gradient(145deg,rgba(24,63,52,.94),rgba(4,19,30,.98)); }
.playoff-bracket .knockout-match>header { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:5px; }
.playoff-bracket .knockout-match>header span { color:#d5e5ec; font-size:14px !important; font-weight:900; }
.playoff-bracket .knockout-match>header b { color:#9fb7c3; font-size:12px; }
.playoff-bracket .knockout-team-row { grid-template-columns:28px minmax(0,1fr) auto; min-height:30px !important; }
.playoff-bracket .knockout-team-row>b { font-size:16px !important; }
.playoff-bracket .knockout-team-row>strong { font-size:19px !important; }
.playoff-bracket .knockout-match footer { display:none; }
.playoff-bracket .match-record-link { display:flex !important; align-items:center; justify-content:center; min-height:31px; margin-top:8px !important; font-size:13px; }
.playoff-bracket .fixture-time-control { margin-top:8px; padding-top:7px; border-top:1px solid rgba(142,181,200,.15); }
.playoff-bracket .fixture-time-control>summary { color:#c9dce5; font-size:12px; font-weight:850; }
.playoff-bracket .playoff-cross-left .knockout-match:first-child { top:calc(15.46875% - var(--playoff-card-half)); }
.playoff-bracket .playoff-cross-left .knockout-match:last-child { top:calc(43.125% - var(--playoff-card-half)); }
.playoff-bracket .playoff-final-left .knockout-match { top:calc(29.296875% - var(--playoff-card-half)); }
.playoff-bracket .playoff-cross-right .knockout-match:first-child { top:calc(68.4375% - var(--playoff-card-half)); }
.playoff-bracket .playoff-cross-right .knockout-match:last-child { top:calc(96.09375% - var(--playoff-card-half)); }
.playoff-bracket .playoff-final-right .knockout-match { top:calc(82.265625% - var(--playoff-card-half)); }
.playoff-bracket .playoff-qualifier-stage { padding:0; }
.playoff-bracket .playoff-qualification-slots { position:relative; display:block; min-height:var(--playoff-route-height); height:var(--playoff-route-height); }
.playoff-bracket .playoff-qualification-slot { position:absolute; right:0; left:0; box-sizing:border-box; height:var(--playoff-card-height); min-height:var(--playoff-card-height); max-height:var(--playoff-card-height); padding:15px; overflow:hidden; }
.playoff-bracket .playoff-qualification-slot:first-child { top:calc(29.296875% - var(--playoff-card-half)); }
.playoff-bracket .playoff-qualification-slot:last-child { top:calc(82.265625% - var(--playoff-card-half)); }
.playoff-bracket .playoff-qualification-slot>span { font-size:12px; }
.playoff-bracket .playoff-qualification-slot b { font-size:16px; }
.playoff-bracket.is-preview .knockout-match { border-style:dashed; border-color:rgba(183,255,74,.34); background:linear-gradient(145deg,rgba(17,45,49,.64),rgba(5,18,28,.9)); }
.playoff-preview-note { margin-top:14px; }

@media (min-width:2560px) {
  .compact-standings-grid article > header.group-standing-head { grid-template-columns:28px minmax(0,1fr) 144px 70px; }
  .standing-record-heading span,.standing-record-heading b,.qualification-heading { font-size:15px; }
  .team-goal-columns { gap:18px; }
  .compact-goal-row select { min-height:40px; font-size:17px; }
  .schedule-centre-page .draw-reel-crest { width:68px !important; height:68px !important; }
  .schedule-centre-page .draw-team-slot { grid-template-columns:46px minmax(0,1fr); }
  .schedule-centre-page .draw-team-slot > i { width:42px !important; height:42px !important; }
  .schedule-centre-page .standing-team em,
  .schedule-centre-page .fixture-queue-teams em { width:34px !important; height:34px !important; }
  .schedule-centre-page .round-match-teams em,
  .schedule-centre-page .knockout-team-row em { width:31px !important; height:31px !important; }
}
@media (max-width:1380px) {
  .team-goal-columns { min-width:760px; }
}
@media(min-width:2560px){.playoff-bracket{--playoff-route-height:740px;--playoff-card-height:174px;--playoff-card-half:87px;--playoff-stage-heading:40px;--playoff-stage-gap:16px;grid-template-columns:repeat(5,minmax(0,1fr));column-gap:66px;min-width:1840px;min-height:842px;padding:38px 46px 42px}.playoff-bracket::before{inset:98px 46px 42px}.playoff-bracket .playoff-route-lines{top:calc(38px + var(--playoff-stage-heading) + var(--playoff-stage-gap));right:46px;left:46px;width:calc(100% - 92px);height:var(--playoff-route-height)}.playoff-bracket .playoff-bracket-stage{grid-template-rows:var(--playoff-stage-heading) var(--playoff-route-height);gap:var(--playoff-stage-gap)}.playoff-bracket .playoff-bracket-stage h3{font-size:22px}.playoff-bracket .playoff-bracket-matches,.playoff-bracket .playoff-qualification-slots{min-height:var(--playoff-route-height);height:var(--playoff-route-height)}.playoff-bracket .knockout-match{height:var(--playoff-card-height);min-height:var(--playoff-card-height)!important;max-height:var(--playoff-card-height);padding:14px!important}.playoff-bracket .knockout-team-row>b{font-size:20px!important}.playoff-bracket .playoff-qualification-slot b{font-size:21px}.playoff-bracket .knockout-match.with-actions .fixture-card-action{min-height:34px;font-size:14px}}
@media(max-width:1380px){.playoff-bracket{min-width:1420px}}

/* Once a route is live, keep its cards as competition cards.  Scheduling and
   result entry stay one click away in overlays instead of expanding the tree. */
.schedule-centre-page .bracket-fixture-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:10px}
.schedule-centre-page .fixture-card-action{display:flex;grid-column:auto!important;align-items:center;justify-content:center;box-sizing:border-box;min-width:0;min-height:32px;margin:0;padding:0 8px;border:1px solid rgba(142,181,200,.38);background:#102a3b;color:#dceaf0;font-size:13px;font-weight:850;line-height:1;text-align:center;text-decoration:none;white-space:nowrap;cursor:pointer}
.schedule-centre-page .fixture-card-action:hover,.schedule-centre-page .fixture-card-action:focus-visible{border-color:rgba(183,255,74,.7);background:rgba(183,255,74,.12);color:#efffcf;outline:0}
.schedule-centre-page .fixture-card-time{border-color:rgba(87,168,255,.52);background:linear-gradient(135deg,rgba(87,168,255,.16),rgba(17,47,72,.9));color:#d8edff}
.schedule-centre-page .fixture-card-record{border-color:rgba(183,255,74,.52);background:linear-gradient(135deg,rgba(183,255,74,.13),rgba(15,53,49,.92));color:#e0ffac}
.schedule-centre-page .playoff-bracket .bracket-fixture-actions{margin-top:9px}
.schedule-centre-page .football-knockout-bracket .bracket-fixture-actions{margin-top:11px}
.schedule-centre-page .playoff-bracket .knockout-match.with-actions .bracket-fixture-actions{gap:6px;margin-top:7px}
.schedule-centre-page .playoff-bracket .knockout-match.with-actions .fixture-card-action{min-height:29px;padding:0 7px;font-size:12px}
.schedule-centre-page .football-knockout-bracket .knockout-match{height:178px!important;min-height:178px!important;max-height:178px;overflow:hidden}
.schedule-centre-page .football-knockout-bracket .knockout-match.with-actions{height:178px!important;min-height:178px!important}
.schedule-centre-page .football-knockout-bracket .knockout-match>header span,.schedule-centre-page .playoff-bracket .knockout-match>header span{display:inline-flex;align-items:center;gap:6px}
.fixture-decision{display:inline-flex;align-items:center;min-height:17px;padding:0 5px;border:1px solid rgba(229,185,76,.5);background:rgba(229,185,76,.12);color:#f5d67f;font-size:10px!important;font-style:normal;font-weight:900;letter-spacing:.04em;line-height:1}
.schedule-centre-page .public-report-action{margin-top:9px}
.schedule-centre-page .public-report-action .group-match-public-report{display:flex;grid-column:1 / -1;align-items:center;justify-content:center;box-sizing:border-box;min-height:32px;margin:0;padding:0 8px;border:1px solid rgba(183,255,74,.45);background:rgba(183,255,74,.1);color:#e0ffac;font-size:13px;font-weight:850;text-decoration:none}
.schedule-centre-page .playoff-bracket .public-report-action{margin-top:7px}
.schedule-centre-page .playoff-bracket .public-report-action .group-match-public-report{min-height:29px;padding:0 7px;font-size:12px}
.fixture-kickoff-dialog{width:min(500px,calc(100vw - 36px));padding:0;border:1px solid rgba(87,168,255,.48);background:linear-gradient(145deg,#102b3d,#071522);color:#edf8fc;box-shadow:0 30px 90px rgba(0,0,0,.62)}
.fixture-kickoff-dialog::backdrop{background:rgba(1,8,14,.72);backdrop-filter:blur(6px)}
.fixture-kickoff-dialog .dialog-close{position:absolute;z-index:2;top:12px;right:12px;width:35px;height:35px;border:1px solid rgba(164,208,230,.25);background:#102a3c;color:#fff;font-size:22px;cursor:pointer}
.fixture-kickoff-dialog-body{padding:22px}
.fixture-kickoff-form{display:grid;gap:16px}
.fixture-kickoff-form header{padding:0 46px 16px 0;border-bottom:1px solid rgba(164,208,230,.18)}
.fixture-kickoff-form header span{color:#8ec7ff;font-size:12px;font-weight:900;letter-spacing:.12em}
.fixture-kickoff-form h3{margin:6px 0 0;color:#f2f9fc;font-size:21px;line-height:1.25}
.fixture-kickoff-form h3 i{color:#98adba;font-style:normal}
.fixture-kickoff-form label{display:grid;gap:7px;color:#b8cbd5;font-size:14px;font-weight:850}
.fixture-kickoff-form input{box-sizing:border-box;min-height:42px;width:100%;border:1px solid var(--line-strong);background:#071825;color:#f6fbff;padding:0 10px;font-size:16px}
.fixture-kickoff-form footer{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.fixture-kickoff-form .button-link{display:inline-flex;align-items:center;justify-content:center;min-height:38px;margin:0;padding:0 10px;font-size:14px}
.fixture-kickoff-form .time-tbd-button{border:1px solid rgba(142,181,200,.46);background:rgba(142,181,200,.08);color:#cadbe4}
@media(min-width:2560px){.schedule-centre-page .fixture-card-action{min-height:38px;font-size:16px}.schedule-centre-page .football-knockout-bracket .knockout-match,.schedule-centre-page .football-knockout-bracket .knockout-match.with-actions{height:196px!important;min-height:196px!important;max-height:196px}.fixture-kickoff-dialog{width:620px}.fixture-kickoff-dialog-body{padding:28px}.fixture-kickoff-form h3{font-size:26px}.fixture-kickoff-form label{font-size:17px}.fixture-kickoff-form input{min-height:50px;font-size:19px}}
