/* 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),var(--surface-1) 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: var(--text-2); font-size:12px; font-variant-numeric:tabular-nums; font-weight:850; }
.standing-record-heading b { color: var(--lime); }
.qualification-heading { text-align:center; }

/* The score generates a concise side-by-side goal ledger.  Chronology stays
   optional, so organizers can add it without blocking a quick result entry. */
.compact-goals-panel .goal-stats-toggle { display:inline-flex; align-items:center; gap:8px; color: var(--text-1); 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: var(--muted); 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 color-mix(in srgb, var(--text-1) 18%, transparent); 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 color-mix(in srgb, var(--text-1) 14%, transparent); }
.goal-side > header b { overflow:hidden; color: var(--text-1); font-size:16px; text-overflow:ellipsis; white-space:nowrap; }
.goal-side > header small { color: var(--muted); 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 color-mix(in srgb, var(--text-1) 18%, transparent); background: var(--panel-2); }
.compact-goal-row legend { padding:0 4px; color: var(--lime); font-size:12px; font-weight:900; }
.compact-goal-row label { display:grid; gap:4px; min-width:0; color: var(--muted); font-size:12px; }
.compact-goal-row select { min-width:0; min-height:34px; border: 1px solid color-mix(in srgb, var(--text-1) 25%, transparent); background: var(--panel-3); color: var(--text-1); font-size:14px; }
.goal-time-fields { display:grid; grid-column:1/-1; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding-top:7px; border-top: 1px solid color-mix(in srgb, var(--text-1) 13%, transparent); }
.goal-time-fields input { min-width:0; min-height:34px; border: 1px solid color-mix(in srgb, var(--text-1) 25%, transparent); background: var(--panel-3); color: var(--text-1); font-size:14px; font-variant-numeric:tabular-nums; }
.goal-time-fields input:disabled { border-style:dashed; opacity:.52; cursor:not-allowed; }
.goal-time-fields input:focus-visible { outline: 2px solid var(--lime); outline-offset:2px; }
.compact-goals-panel.is-player-tracking-off .goal-stats-hint { color: var(--gold); }
.leaderboard-data-warning { margin:16px 18px 0; padding:10px 12px; border-left: 3px solid #e5b94c; background:rgba(229,185,76,.1); color: var(--gold); 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 { width:100%; min-width:0; max-width:none; margin:0; overflow:visible; }
.schedule-centre-page .playoff-bracket-scroll {
  box-sizing:border-box;
  width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-inline:contain;
  scrollbar-color:rgba(183,255,74,.58) var(--surface-inset);
  scrollbar-gutter:stable;
}
.schedule-centre-page .playoff-bracket-scroll:focus-visible {
  outline: 2px solid var(--lime);
  outline-offset:-2px;
}
.schedule-centre-page .bracket-scroll-hint {
  display:none;
  align-items:center;
  gap:8px;
  margin:0;
  padding:9px 14px;
  border-bottom: 1px solid color-mix(in srgb, var(--text-1) 14%, transparent);
  background:var(--surface-inset);
  color: var(--text-2);
  font-size:13px;
  line-height:1.4;
}
.schedule-centre-page .bracket-scroll-hint>i {
  color: var(--lime);
  font-size:17px;
  font-style:normal;
  font-weight:900;
}
.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: var(--lime); 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: var(--line); background: linear-gradient(145deg,var(--panel-grad-1),var(--backdrop-tint)); 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),var(--backdrop-tint)); }
.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: var(--text-1); font-size:14px !important; font-weight:900; }
.playoff-bracket .knockout-match>header b { color: var(--muted); 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 var(--line); }
.playoff-bracket .fixture-time-control>summary { color: var(--text-2); 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: color-mix(in srgb, var(--lime) 34%, transparent); background: linear-gradient(145deg,var(--surface-inset),var(--backdrop-tint)); }
.playoff-preview-note { margin-top:14px; }

@media (min-width:2400px) {
  .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,
  .goal-time-fields input { 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:2400px){.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}}

/* Bracket canvases should feel like a cup-night surface without competing
   with the route lines, team names, scores, or organizer controls. */
.schedule-centre-page .playoff-bracket,
.schedule-centre-page .football-knockout-bracket{
  border: 1px solid rgba(139,190,211,.2);
  background: radial-gradient(ellipse at 50% -12%,rgba(117,190,222,.12),transparent 43%),
    radial-gradient(ellipse at 50% 112%,color-mix(in srgb, var(--lime) 7.5%, transparent),transparent 46%),
    linear-gradient(135deg,var(--panel-grad-1),var(--backdrop-tint) 54%,var(--backdrop-tint))!important;
  box-shadow:
    inset 0 1px 0 rgba(230,250,255,.055),
    inset 0 -42px 80px rgba(0,7,14,.2),
    0 18px 38px rgba(0,0,0,.18);
}
.schedule-centre-page .playoff-bracket::before,
.schedule-centre-page .football-knockout-bracket::before{
  z-index:0;
  border: 1px solid var(--line);
  background:
    radial-gradient(circle at 50% 50%,transparent 0 92px,rgba(190,233,221,.052) 93px 94px,transparent 95px),
    linear-gradient(90deg,transparent calc(50% - .5px),rgba(190,233,221,.05) calc(50% - .5px),rgba(190,233,221,.05) calc(50% + .5px),transparent calc(50% + .5px)),
    repeating-linear-gradient(0deg,rgba(255,255,255,.012) 0 1px,transparent 1px 46px);
  box-shadow:inset 0 0 70px rgba(44,126,151,.035);
  pointer-events:none;
}
.schedule-centre-page .playoff-bracket .knockout-match,
.schedule-centre-page .football-knockout-bracket .knockout-match{
  background: radial-gradient(circle at 12% -18%,rgba(93,173,211,.13),transparent 46%),
    linear-gradient(145deg,var(--panel-grad-1),var(--backdrop-tint));
  box-shadow:
    inset 0 1px 0 rgba(222,246,255,.045),
    0 12px 25px rgba(0,0,0,.24);
}
.schedule-centre-page .playoff-bracket .knockout-match.complete,
.schedule-centre-page .football-knockout-bracket .knockout-match.complete{
  background: radial-gradient(circle at 12% -18%,color-mix(in srgb, var(--lime) 14%, transparent),transparent 47%),
    linear-gradient(145deg,rgba(23,61,51,.96),var(--backdrop-tint));
}
.schedule-centre-page .football-knockout-bracket .bracket-final .knockout-match{
  background: radial-gradient(circle at 50% -12%,rgba(213,255,135,.16),transparent 49%),
    linear-gradient(145deg,rgba(29,67,56,.97),var(--backdrop-tint));
}
.schedule-centre-page .playoff-qualification-slot{
  background: radial-gradient(circle at 15% -15%,rgba(92,170,207,.11),transparent 48%),
    linear-gradient(145deg,var(--backdrop-tint),var(--backdrop-tint));
}
.schedule-centre-page .playoff-qualification-slot.resolved{
  background: radial-gradient(circle at 15% -15%,color-mix(in srgb, var(--lime) 13%, transparent),transparent 48%),
    linear-gradient(145deg,rgba(23,58,48,.94),var(--backdrop-tint));
}

/* 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 .bracket-fixture-actions.has-report{grid-template-columns:repeat(3,minmax(0,1fr))}
.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 var(--line);background: var(--panel-3);color: var(--text-1);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: color-mix(in srgb, var(--lime) 70%, transparent);background: color-mix(in srgb, var(--lime) 12%, transparent);color: #efffcf;outline: 0}
.schedule-centre-page .fixture-card-time{border-color: color-mix(in srgb, var(--blue) 52%, transparent);background: linear-gradient(135deg,color-mix(in srgb, var(--blue) 16%, transparent),rgba(17,47,72,.9));color: var(--text-1)}
.schedule-centre-page .fixture-card-record{border-color: color-mix(in srgb, var(--lime) 52%, transparent);background: linear-gradient(135deg,color-mix(in srgb, var(--lime) 13%, transparent),rgba(15,53,49,.92));color: var(--lime)}
.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: var(--gold);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 color-mix(in srgb, var(--lime) 45%, transparent);background: color-mix(in srgb, var(--lime) 10%, transparent);color: var(--lime);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}
.schedule-centre-page .knockout-match.with-actions .public-report-action{margin-top:5px}
.schedule-centre-page .knockout-match.with-actions .public-report-action .group-match-public-report{min-height:21px;font-size:11px;line-height:1}
.schedule-centre-page .knockout-match.with-actions .public-report-action+.bracket-fixture-actions{margin-top:5px}
.fixture-kickoff-dialog{width:min(500px,calc(100vw - 36px));padding:0;border: 1px solid color-mix(in srgb, var(--blue) 48%, transparent);background: linear-gradient(145deg,var(--panel-3),var(--panel-2));color: var(--text-1);box-shadow:0 30px 90px rgba(0,0,0,.62)}
.fixture-kickoff-dialog::backdrop{background:var(--surface-inset);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 color-mix(in srgb, var(--text-1) 25%, transparent);background: var(--panel-3);color: var(--text-1);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 color-mix(in srgb, var(--text-1) 18%, transparent)}
.fixture-kickoff-form header span{color: var(--blue);font-size:12px;font-weight:900;letter-spacing:.12em}
.fixture-kickoff-form h3{margin:6px 0 0;color: var(--text-1);font-size:21px;line-height:1.25}
.fixture-kickoff-form h3 i{color: var(--muted);font-style:normal}
.fixture-kickoff-form label{display:grid;gap:7px;color: var(--text-2);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: var(--panel-2);color: var(--text-1);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 var(--line);background: color-mix(in srgb, var(--text-1) 8%, transparent);color: var(--text-2)}
@media(min-width:2400px){.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}}

/* Group fixtures share the phase navigation's content width. Public report
   access lives inside the score column so published rows keep one rhythm. */
.mobile-group-round-filter,
.mobile-fixture-context,
.fixture-progress-group{display:none}
.schedule-centre-page .fixture-queue-row.is-public{
  grid-template-columns:minmax(136px,.62fr) minmax(0,2.3fr)!important;
}
.schedule-centre-page .group-fixture-workbench .fixture-queue-row{
  box-sizing:border-box;
  height:92px;
  min-height:92px;
}
.schedule-centre-page .fixture-queue-teams{
  grid-template-columns:minmax(0,1fr) clamp(112px,6vw,128px) minmax(0,1fr);
}
.schedule-centre-page .fixture-score{
  display:grid;
  align-content:center;
  justify-items:center;
  gap:2px;
  min-width:0;
  color: var(--text-1);
  font-size:36px!important;
  font-variant-numeric:tabular-nums;
  line-height:1;
}
.schedule-centre-page .fixture-score>small{
  color: var(--gold);
  font-size:21px;
  font-weight:900;
  line-height:1.1;
  white-space:nowrap;
}
.schedule-centre-page .fixture-score>.group-match-public-report{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:0;
  margin:2px 0 0;
  padding:0;
  border: 0;
  color: var(--lime);
  font-size:11px;
  font-weight:850;
  line-height:1.1;
  text-decoration:underline;
  text-decoration-color:rgba(183,255,74,.36);
  text-underline-offset:3px;
  white-space:nowrap;
}
.schedule-centre-page .fixture-score>.group-match-public-report:hover,
.schedule-centre-page .fixture-score>.group-match-public-report:focus-visible{
  color: #efffcf;
  text-decoration-color:#b7ff4a;
  outline: 2px solid color-mix(in srgb, var(--lime) 58%, transparent);
  outline-offset:3px;
}
@media(min-width:2400px){
  .schedule-centre-page .fixture-queue-teams{grid-template-columns:minmax(0,1fr) 152px minmax(0,1fr)}
  .schedule-centre-page .fixture-score{font-size:44px!important}
  .schedule-centre-page .fixture-score>small{font-size:25px}
  .schedule-centre-page .fixture-score>.group-match-public-report{font-size:14px}
  .schedule-centre-page .group-fixture-workbench .fixture-queue-row{height:106px;min-height:106px}
}
@media(min-width:761px){
  .schedule-centre-page .group-fixture-workbench .fixture-queue-row{
    padding-block:10px;
  }
}
@media(min-width:761px) and (max-width:1380px){
  .schedule-centre-page .group-match-centre{
    box-sizing:border-box;
    width:100%;
    min-width:0;
    grid-template-columns:minmax(500px,.82fr) minmax(0,1.18fr);
  }
  .schedule-centre-page .group-overview-column,
  .schedule-centre-page .group-fixture-workbench,
  .schedule-centre-page .fixture-queue-list{min-width:0}
  .schedule-centre-page .fixture-queue-list[data-reorder-url] .fixture-queue-row{
    grid-template-columns:20px 105px minmax(250px,1fr) auto;
    gap:8px;
    padding:10px;
  }
  .schedule-centre-page .fixture-queue-actions{gap:5px}
  .schedule-centre-page .fixture-queue-actions summary,
  .schedule-centre-page .fixture-queue-actions .button-link{
    min-height:32px;
    padding:0 8px;
    font-size:13px;
    line-height:30px;
  }
}
@media(min-width:761px) and (max-width:1200px){
  .schedule-centre-page .group-match-centre{
    grid-template-columns:minmax(0,1fr);
    gap:14px;
  }
  .schedule-centre-page .group-overview-column,
  .schedule-centre-page .group-fixture-workbench{
    width:100%;
    min-width:0;
  }
}
@media(max-width:1380px){
  .schedule-centre-page .bracket-scroll-hint{display:flex}
}

/* Mobile match recording must stay inside the viewport. The desktop ledger is
   intentionally side by side; phones use one team per row instead of creating
   a page- or dialog-level horizontal scroller. */
@media(max-width:760px){
  body.match-report-page{overflow-x:hidden}
  .match-report-page .site-main{
    box-sizing:border-box;
    width:100%;
    max-width:100%;
    min-width:0;
    padding-right:12px;
    padding-left:12px;
    overflow-x:hidden;
  }
  .match-report-page .report-workspace,
  .match-report-page .compact-report-editor,
  .match-record-dialog,
  .match-record-dialog-body,
  .match-record-dialog .compact-report-editor,
  .compact-report-editor .tournament-panel,
  .compact-score-grid,
  .shootout-control,
  .compact-goals-panel,
  .team-goal-columns,
  .goal-side,
  .goal-side-list,
  .compact-goal-row,
  .report-editor-actions{
    box-sizing:border-box;
    width:auto;
    max-width:100%;
    min-width:0;
  }
  .match-report-page .report-workspace{width:100%}
  .match-report-page .team-goal-columns,
  .match-record-dialog .team-goal-columns{
    width:100%;
    min-width:0;
    grid-template-columns:minmax(0,1fr);
  }
  .match-record-dialog{
    width:calc(100vw - 18px);
    overflow-x:hidden;
    overflow-y:auto;
  }
  .compact-report-editor .tournament-panel>header>div,
  .compact-report-editor h3,
  .compact-goal-row label,
  .compact-goal-row select,
  .compact-goal-row input{min-width:0}
  .compact-report-editor h3{overflow-wrap:anywhere}
  .compact-report-editor .report-editor-actions{flex-wrap:wrap}

  /* Reordering controls are direct-touch actions on phones. Keep the 40 px
     target in the grid rather than enlarging the visual glyph. */
  .schedule-centre-page .fixture-queue-list[data-reorder-url] .fixture-queue-row{
    grid-template-columns:40px 66px minmax(0,1fr) auto;
  }
  .schedule-centre-page .fixture-drag-handle{
    box-sizing:border-box;
    display:grid;
    width:40px;
    min-width:40px;
    height:40px;
    min-height:40px;
    padding:0;
    place-items:center;
  }
  .schedule-centre-page .group-tiebreak-panel li{
    grid-template-columns:22px minmax(0,1fr) 40px 40px;
    min-height:46px;
  }
  .schedule-centre-page .group-tiebreak-panel li button{
    width:40px;
    min-width:40px;
    height:40px;
    min-height:40px;
  }
}
