/* Tournament diagrams only: preserve the shared home/report fixture geometry. */
.schedule-page{--graph-win:#4bd29b;--graph-loss:#ff7b87;--graph-canvas-start:#102235c2;--graph-canvas-end:#0a1420e6}
:root[data-theme=light] .schedule-page{--graph-win:#147349;--graph-loss:#ba3049;--graph-canvas-start:#edf4fac9;--graph-canvas-end:#e3edf5e0}
.schedule-page .tournament-graph{--graph-card-height:58px;--graph-name-size:12px;--graph-gap:22px;--graph-unit:25.75px;--graph-column:210px;--graph-outcome:144px;--graph-board-width:1304px;--graph-playoff-height:440px;min-width:0}
.schedule-page .tournament-graph{background-image:linear-gradient(115deg,var(--graph-canvas-start),var(--graph-canvas-end)),var(--scenery-image);background-size:cover;background-position:center,72% 36%;background-repeat:no-repeat}
.schedule-page .tournament-graph [data-graph-viewport]{padding:10px 12px 16px;overflow:auto;max-width:100%;overscroll-behavior-x:contain;scrollbar-width:thin;background:color-mix(in srgb,var(--surface) 28%,transparent);backdrop-filter:blur(10px) saturate(.85);-webkit-backdrop-filter:blur(10px) saturate(.85)}
.schedule-page .tournament-graph .swiss-layout{grid-template-columns:repeat(5,var(--graph-column)) var(--graph-outcome);gap:var(--graph-gap);width:var(--graph-board-width);min-width:0;padding:0;box-sizing:border-box}
.schedule-page .tournament-graph .swiss-layout,:root[data-theme=light] .schedule-page .tournament-graph .swiss-layout{--flow-win:var(--graph-win);--flow-loss:var(--graph-loss)}
.schedule-page .tournament-graph .swiss-layout .round-groups{grid-template-rows:repeat(24,var(--graph-unit))}
.schedule-page .tournament-graph .round-heading{height:32px;min-height:32px;margin:0 0 8px;padding:0 0 8px;align-items:center;border-bottom:2px solid var(--line)}
.schedule-page .tournament-graph .round-heading h2{font-size:14px;letter-spacing:.02em;margin:0}
.schedule-page .tournament-graph .round-state{font-size:10px;padding:0;background:none;border:0}
.schedule-page .tournament-graph .record-heading{height:28px;min-height:28px;padding:0 8px}
.schedule-page .tournament-graph .record-matches{padding:3px 4px;gap:4px;justify-content:center}
.schedule-page .tournament-graph .graph-match{height:var(--graph-card-height);min-height:var(--graph-card-height);min-width:0;flex:none;position:relative;border:1px solid color-mix(in srgb,var(--text) 24%,var(--line));border-radius:5px;background:var(--surface-2);overflow:visible;display:flex;flex-direction:column}
.schedule-page .tournament-graph .graph-match:focus-within{outline:2px solid var(--blue);outline-offset:2px}
.schedule-page .tournament-graph .graph-match-heading{display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:14px;line-height:14px;padding:0 6px;color:var(--muted);font-size:10px;white-space:nowrap}
.schedule-page .tournament-graph .graph-match-heading>strong{font:650 10px/14px "Segoe UI",Arial,sans-serif;letter-spacing:.035em;color:var(--text);font-variant-numeric:tabular-nums}
.schedule-page .tournament-graph .graph-match .fixture-card{display:flex;flex-direction:column;justify-content:center;gap:1px;position:static;flex:1;height:auto;min-height:0;margin:0;padding:1px 5px 2px;border:0;border-radius:0 0 4px 4px;background:transparent;box-shadow:none}
.schedule-page .tournament-graph .graph-match .fixture-card:hover{background:var(--surface-3)}
.schedule-page .tournament-graph .graph-match .fixture-card .match-meta{display:none}
.schedule-page .tournament-graph .graph-match .fixture-card .match-teams{display:grid;grid-template-columns:minmax(0,1fr) 30px minmax(0,1fr);align-items:center;gap:4px;min-height:20px;margin:0;padding:0}
.schedule-page .tournament-graph .graph-match .fixture-card .match-team{display:flex;align-items:center;gap:4px;min-width:0;min-height:20px;height:auto;margin:0;padding:0;border:0}
.schedule-page .tournament-graph .graph-match .fixture-card .match-team-a{justify-content:flex-start;text-align:left}
.schedule-page .tournament-graph .graph-match .fixture-card .match-team-b{justify-content:flex-end;text-align:right}
.schedule-page .tournament-graph .graph-match .fixture-card .match-team-name{font-size:var(--graph-name-size);font-weight:550;line-height:1.35;letter-spacing:var(--graph-letter-spacing,0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}
.schedule-page .tournament-graph .graph-match .fixture-card .team-mark{width:18px;height:18px;flex:0 0 18px;order:0;border-radius:3px;background:var(--surface);font-size:7px}
.schedule-page .tournament-graph .graph-match .fixture-card .team-mark img{padding:1px;background:transparent}
.schedule-page .tournament-graph .graph-match .fixture-card .match-result{position:static;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:3px;width:auto;height:auto;padding:0;margin:0;font:650 calc(var(--graph-name-size) + 1px)/20px "Segoe UI",Arial,sans-serif;color:var(--text)}
.schedule-page .tournament-graph .graph-match .fixture-card .match-result::before{display:none}
.schedule-page .tournament-graph .graph-match .fixture-card .score-separator{display:inline;font-size:11px}
.schedule-page .tournament-graph .graph-match .fixture-card .match-result-pending{font-size:11px}
.schedule-page .tournament-graph .graph-match .fixture-winner{display:none}
.schedule-page .tournament-graph .graph-match .fixture-card .is-winner .match-team-name,.schedule-page .tournament-graph .graph-match .fixture-card .score-value.is-winner{color:var(--win);font-weight:700}
.schedule-page .tournament-graph .graph-match .fixture-card .fixture-support{position:static;display:flex;flex-direction:column-reverse;flex:none;gap:1px;height:auto;margin:0;padding:0;border:0;min-width:0}
.schedule-page .tournament-graph .graph-match .fixture-support .support-track{display:flex;flex:none;height:3px;margin:0;gap:1px;opacity:1}
.schedule-page .tournament-graph .graph-match .fixture-support .support-track.is-empty{visibility:hidden}
.schedule-page .tournament-graph .graph-match .fixture-support-label{position:static;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);width:auto;max-width:100%;padding:0;transform:none;opacity:1;border:0;background:none;box-shadow:none;font-size:10px;line-height:11px;color:var(--muted);white-space:nowrap;text-align:center;font-variant-numeric:tabular-nums}
.schedule-page .tournament-graph .graph-match [data-match-support-percent="a"]{text-align:left}
.schedule-page .tournament-graph .graph-match [data-match-support-percent="b"]{text-align:right}
.schedule-page .tournament-graph .graph-match-pending{border-style:dashed;background:var(--surface)}
.schedule-page .tournament-graph .graph-pending-label{margin:0 8px 3px;padding:0;color:var(--muted);font-size:10px;line-height:12px;text-align:center}
.schedule-page .playoff-flow.is-pending{stroke-dasharray:4 5;opacity:.4}
.schedule-page .source-notice-icon{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;flex:0 0 16px;width:16px;height:16px;padding:0;font:700 11px/1 Arial,sans-serif;letter-spacing:0;text-indent:0;vertical-align:middle}
.schedule-page .tournament-graph .graph-pool-source{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin:auto 5px;padding:1px 0;font-size:11px;line-height:13px;text-align:center;color:var(--muted)}
.schedule-page .tournament-graph .graph-pending-teams{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:18px;flex:1;min-height:0;padding:2px 7px;font-size:var(--graph-name-size);line-height:1.4;color:var(--muted)}
.schedule-page .tournament-graph .graph-pending-team{display:flex;align-items:center;gap:5px;min-width:0}
.schedule-page .tournament-graph .graph-pending-team:last-child{flex-direction:row-reverse;text-align:right}
.schedule-page .tournament-graph .graph-pending-mark{display:inline-flex;align-items:center;justify-content:center;flex:0 0 20px;width:20px;height:20px;border:1px solid var(--line);border-radius:5px;background:var(--surface-2);color:var(--muted);font:650 13px/1 "Segoe UI",sans-serif}
.schedule-page .tournament-graph .graph-pending-name{font:600 11px/1.4 "Segoe UI",sans-serif;letter-spacing:.06em}
.schedule-page .tournament-graph[data-tournament-graph=playoff] .graph-pending-teams{padding-inline:12px}
.schedule-page .tournament-graph[data-tournament-graph=playoff] .graph-pending-mark{width:26px;height:26px;flex-basis:26px;font-size:16px;border-radius:7px}
.schedule-page .tournament-graph[data-tournament-graph=playoff] .graph-pending-name{font-size:13px}
.schedule-page .tournament-graph .record-outcome{--outcome-color:var(--graph-win);padding:4px 6px;gap:3px;border:1px solid color-mix(in srgb,var(--outcome-color) 60%,var(--line));border-left:3px solid var(--outcome-color);border-radius:5px;background:color-mix(in srgb,var(--outcome-color) 10%,var(--surface));box-shadow:inset 0 1px 0 #ffffff0c}
.schedule-page .tournament-graph .outcome-eliminated{--outcome-color:var(--graph-loss)}
.schedule-page .tournament-graph .record-outcome>strong{min-height:14px;font-size:12px;line-height:14px;color:var(--text)}
.schedule-page .tournament-graph .record-outcome>strong span{padding:1px 4px;border-radius:3px;background:color-mix(in srgb,var(--outcome-color) 14%,var(--surface));color:var(--outcome-color);font-size:10px;line-height:12px;font-weight:650}
.schedule-page .tournament-graph .outcome-teams{display:flex;flex-direction:column;flex-wrap:nowrap;gap:2px;min-width:0;margin:0;padding:0;list-style:none}
.schedule-page .tournament-graph :is(.outcome-entry,.outcome-empty){min-width:0;margin:0;padding:0;list-style:none}
.schedule-page .tournament-graph .outcome-team{display:flex;align-items:center;flex:none;gap:5px;min-width:0;width:100%;max-width:100%;min-height:clamp(20px,calc(var(--graph-unit) - 3px),27px);padding:1px 2px;border-radius:3px;font-size:11px;line-height:16px;text-decoration:none}
.schedule-page .tournament-graph .outcome-team:hover{color:var(--text);background:color-mix(in srgb,var(--outcome-color) 14%,var(--surface))}
.schedule-page .tournament-graph .outcome-team:focus-visible{outline:2px solid var(--outcome-color);outline-offset:1px}
.schedule-page .tournament-graph .outcome-team .team-mark{width:16px;height:16px;flex-basis:16px;background:transparent}
.schedule-page .tournament-graph .outcome-team .team-mark img{padding:0;background:transparent}
.schedule-page .tournament-graph .outcome-team>span:not(.team-mark){color:var(--outcome-color);font-weight:650}
.schedule-page .tournament-graph .swiss-connections path{stroke-width:1.7;opacity:.94}
.schedule-page .tournament-graph .swiss-layout.has-flow-focus .swiss-connections path:not(.is-flow-active){opacity:.2}
.schedule-page .tournament-graph .swiss-layout.has-flow-focus .swiss-connections path.is-flow-active{opacity:1;stroke-width:2.8}
.schedule-page .schedule-key .key-dot{width:7px;height:7px;border-radius:50%}
.schedule-page .schedule-key .key-dot.qualified{background:var(--graph-win)}
.schedule-page .schedule-key .key-dot.eliminated{background:var(--graph-loss)}
.schedule-page .tournament-graph .playoff-board{display:flex;gap:var(--graph-gap);width:var(--graph-board-width);min-width:0;padding:0;min-height:var(--graph-playoff-height)}
.schedule-page .tournament-graph .playoff-round{min-width:0;flex:1}
.schedule-page .tournament-graph .playoff-slots{gap:20px;justify-content:space-around}
.schedule-page .tournament-graph .playoff-slot{background:transparent}
.schedule-page .tournament-graph .champion-panel{width:144px;flex-basis:144px;padding:18px 10px;border-radius:6px}
.schedule-page .tournament-graph .champion-panel h2{font-size:17px}
@media(min-width:901px){
  .schedule-page:has([data-tournament-graph]) .site-main{padding-top:12px}
  .schedule-page:has([data-tournament-graph]) .site-main>.page-heading{margin-bottom:6px;min-height:36px}.schedule-page:has([data-tournament-graph]) .site-main>.page-heading h1{font-size:26px}
  .schedule-page:has([data-tournament-graph]) .schedule-stagebar{padding:0 14px;min-height:44px}
  .schedule-page:has([data-tournament-graph]) .stage-tabs>a{min-height:44px;padding:10px 14px;font-size:14px}
  .schedule-page:has([data-tournament-graph]) .schedule-statusbar{padding:8px 14px}
  .schedule-page .tournament-graph[data-graph-sized] [data-graph-viewport]{padding:8px 10px;max-height:none;scrollbar-gutter:auto}
}
@media(max-width:900px){
  .schedule-page .tournament-graph{--graph-card-height:58px;--graph-name-size:12px;--graph-column:250px;--graph-outcome:200px;--graph-gap:26px;--graph-unit:32px;--graph-board-width:1580px}
  .schedule-page .tournament-graph .record-matches{padding:3px 4px;gap:4px}
  .schedule-page .tournament-graph[data-tournament-graph=playoff]{--graph-card-height:86px;--graph-board-width:970px;--graph-playoff-height:470px}
  .schedule-page .tournament-graph .graph-match-heading{font-size:10px}
  .schedule-page .tournament-graph .outcome-team{min-height:44px;padding-block:3px;font-size:12px}
  .schedule-page .tournament-graph .outcome-team .team-mark{width:20px;height:20px;flex-basis:20px}
  .schedule-page .tournament-graph .swiss-round[data-round="4"] .outcome-qualified{grid-row:1/5}
  .schedule-page .tournament-graph .swiss-round[data-round="4"] .record-group[data-wins="2"]{grid-row:5/13;margin-block:3px}
  .schedule-page .tournament-graph .swiss-round[data-round="4"] .record-group[data-losses="2"]{grid-row:13/21;margin-block:3px}
  .schedule-page .tournament-graph .swiss-round[data-round="4"] .outcome-eliminated{grid-row:21/25}
  .schedule-page .tournament-graph .swiss-round[data-round="5"] .outcome-qualified{grid-row:2/8}
  .schedule-page .tournament-graph .swiss-round[data-round="5"] .record-group{grid-row:9/18}
  .schedule-page .tournament-graph .swiss-round[data-round="5"] .outcome-eliminated{grid-row:19/25}
  .schedule-page .tournament-graph .swiss-final-outcomes .outcome-qualified{grid-row:8/15}
  .schedule-page .tournament-graph .swiss-final-outcomes .outcome-eliminated{grid-row:16/23}
}
@media(prefers-reduced-transparency:reduce){.schedule-page .tournament-graph{background-image:none}.schedule-page .tournament-graph [data-graph-viewport]{background:var(--surface);backdrop-filter:none;-webkit-backdrop-filter:none}}
@media(forced-colors:active){.schedule-page .tournament-graph{background-image:none}.schedule-page .tournament-graph [data-graph-viewport]{background:Canvas;backdrop-filter:none;-webkit-backdrop-filter:none}.schedule-page .tournament-graph :is(.graph-match,.record-outcome){border-color:CanvasText}.schedule-page .tournament-graph .graph-match:focus-within{outline-color:Highlight}.schedule-page .tournament-graph .fixture-support .support-track{border:1px solid CanvasText}.schedule-page .tournament-graph .record-outcome>strong span{color:CanvasText}}

/* The note and match share one visual card; its form stays outside the link.
   Move the old inner border outward without changing the fixture's row budget. */
.schedule-page .tournament-graph .graph-fixture{flex:none;min-width:0;box-sizing:border-box;border:1px solid var(--graph-fixture-border,color-mix(in srgb,var(--line) 90%,var(--text)));border-radius:6px;background:var(--graph-fixture-bg,var(--surface-2));box-shadow:0 2px 7px #00000008}
.schedule-page .tournament-graph .graph-fixture>.graph-match{height:calc(var(--playoff-card-height,var(--graph-card-height)) - 2px - var(--graph-card-trim,2px) - var(--graph-empty-trim,0px));min-height:calc(var(--playoff-card-height,var(--graph-card-height)) - 2px - var(--graph-card-trim,2px) - var(--graph-empty-trim,0px));border:0;border-radius:0 0 5px 5px;background:transparent;box-shadow:none}
.schedule-page .tournament-graph .graph-fixture:has(>.graph-match-pending){border-style:dashed;background:var(--graph-fixture-bg,var(--surface))}
.schedule-page .tournament-graph .graph-fixture:focus-within{outline:2px solid var(--blue);outline-offset:2px}
.schedule-page .tournament-graph .graph-fixture>.graph-match:focus-within{outline:0}
.schedule-page .tournament-graph .graph-fixture>.graph-match>.fixture-card{border-radius:0 0 5px 5px;gap:1px}
.schedule-page .tournament-graph .graph-fixture:has(>.graph-match-note:not(.is-empty))>.graph-match>.fixture-card{justify-content:flex-start;padding-top:1px;padding-bottom:1px}
.schedule-page .tournament-graph .graph-fixture .fixture-card .fixture-support{gap:1px}
.schedule-page .tournament-graph.playoff-presentation{--graph-card-trim:6px}
.schedule-page .tournament-graph .graph-fixture:has(.support-track.is-empty){--graph-empty-trim:2px}
.schedule-page .tournament-graph .graph-match .fixture-card .fixture-support:has(.support-track.is-empty){gap:0}
.schedule-page .tournament-graph .graph-match .fixture-card .fixture-support .support-track.is-empty{display:none}
.schedule-page .tournament-graph .graph-match-note{height:12px;min-height:12px;margin:0;padding:0 4px;font-size:11px;line-height:12px;color:var(--muted);text-align:center}
:root .schedule-page .tournament-graph .graph-match-note .schedule-time input[data-schedule-time-input]{height:12px;line-height:12px;background:transparent;border:0;border-radius:0;box-shadow:none;color:inherit}
:root .schedule-page .tournament-graph .graph-match-note .schedule-time input[data-schedule-time-input]:is(:hover,:focus-visible){box-shadow:inset 0 -1px 0 currentColor}
.schedule-page .tournament-graph .schedule-time:not(.has-time-fallback) [data-schedule-time-input]::placeholder{opacity:0}
.schedule-page .tournament-graph .schedule-time:not(.has-time-fallback):is(:hover,:focus-within) [data-schedule-time-input]::placeholder{opacity:.8}
.schedule-page .tournament-graph .graph-match-note .schedule-time [data-schedule-time-input]::placeholder{color:currentColor;opacity:0}
.schedule-page .tournament-graph .graph-match-note .schedule-time:is(:hover,:focus-within) [data-schedule-time-input]::placeholder{opacity:.8}
.schedule-page .tournament-graph .graph-fixture:hover>.graph-match-note [data-schedule-time-input]::placeholder{opacity:.8}
.schedule-page .tournament-graph .graph-match-note.is-empty{display:none}
@media(min-width:901px){.schedule-page .tournament-graph .graph-match-note{display:block;height:12px;min-height:12px;line-height:12px}.schedule-page .tournament-graph .graph-match-note .schedule-time [data-schedule-time-input]{height:12px;line-height:12px}}

@media(min-width:901px){.schedule-page .tournament-graph .graph-match-note.is-empty{display:block}}
@media(forced-colors:active){.schedule-page .tournament-graph .graph-fixture{border-color:CanvasText;background:Canvas}.schedule-page .tournament-graph .graph-fixture:focus-within{outline-color:Highlight}}

/* Light cards read as individual matches against the warmer grouping frame. */
:root[data-palette=crimson][data-theme=light] .schedule-page{--graph-fixture-bg:#fffefa;--graph-fixture-border:#b1a391;--graph-fixture-hover:#fff;--graph-group-bg:#e8e1d6;--graph-group-heading:#dcd1bf}
@media(prefers-color-scheme:light){:root[data-palette=crimson][data-theme=auto] .schedule-page{--graph-fixture-bg:#fffefa;--graph-fixture-border:#b1a391;--graph-fixture-hover:#fff;--graph-group-bg:#e8e1d6;--graph-group-heading:#dcd1bf}}
.schedule-page .tournament-graph.swiss-presentation .record-group{background:var(--graph-group-bg,transparent)}
.schedule-page .tournament-graph.swiss-presentation .record-heading{background:var(--graph-group-heading,var(--surface-3))}
.schedule-page .schedule-panel .fixture-card{background:var(--graph-fixture-bg,var(--surface));border-color:var(--graph-fixture-border,var(--line))}
.schedule-page .tournament-graph .graph-fixture>.graph-match>.fixture-card{background:transparent}
.schedule-page .tournament-graph .graph-fixture>.graph-match>.fixture-card:hover{background:var(--graph-fixture-hover,var(--surface-3))}
@media(forced-colors:active){:root .schedule-page{--graph-fixture-bg:Canvas;--graph-fixture-border:CanvasText;--graph-fixture-hover:Canvas;--graph-group-bg:Canvas;--graph-group-heading:Canvas}}
