/* Shared tournament presentation. The 2028 Finals/Summary screens are the reference.
   Data-specific variants retain the same hierarchy; route files own placement only. */
:root {
  --t-surface: #12181b;
  --t-raised: #1a2227;
  --t-ink: #e6ede9;
  --t-muted: #9ca9a3;
  --t-line: #ffffff17;
  --t-accent: #3fbf7f;
  --t-usa: #d5a0a6;
  --t-int: #d2bd85;
  --t-eur: #abc0dd;
  --t-active-bg: #3fbf7f2e;
  --t-active-line: #3fbf7f7a;
  --t-rail-background: linear-gradient(180deg,rgba(255,255,255,.048),rgba(255,255,255,.014)),rgba(18,24,27,.94);
}
/* The Cup desk and experiment share one content-navigation composition. */
.tournament-view-nav {position:static;display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:8px;width:100%;max-width:none;padding:0;margin:0 0 20px;background:transparent;font-family:"Public Sans",sans-serif;}
.tournament-view-nav :is(a,button) {display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 16px;border:1px solid var(--t-line);border-radius:999px;background:#ffffff0a;color:var(--t-muted);font-size:12px;font-weight:650;line-height:1.6;text-transform:uppercase;letter-spacing:.04em;text-decoration:none;}
.tournament-view-nav :is(a,button):hover {background:#ffffff12;color:var(--t-ink);}
.tournament-view-nav :is(a,button).active {background:var(--t-active-bg);color:#62d49a;border-color:var(--t-active-line);}
.tournament-view-nav :is(a,button):focus-visible {outline:2px solid var(--t-accent);outline-offset:3px;}
.tournament-view-nav.tournament-view-nav-compact {display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;scrollbar-width:none;}
.tournament-view-nav-compact::-webkit-scrollbar {display:none;}
.tournament-view-nav.tournament-view-nav-compact :is(a,button) {flex-shrink:0;min-height:36px;padding:8px 12px;font-size:11px;letter-spacing:.02em;}

/* Shared funnel/stat card. Players remains the visual reference; event routes only adapt labels and data. */
.tournament-stat-card.sir-funnel-card,.tournament-view-nav .tournament-stat-card.sir-funnel-card {display:flex;min-width:0;min-height:0;flex-direction:column;align-items:stretch;justify-content:initial;gap:12px;padding:16px;border:0;border-radius:10px;background:transparent;box-shadow:inset 0 -1px rgba(255,255,255,.1);color:#c9d4ce;font-size:inherit;font-weight:inherit;line-height:normal;letter-spacing:normal;text-align:left;text-transform:none;cursor:pointer;}
.tournament-stat-card.sir-funnel-card:hover,.tournament-view-nav .tournament-stat-card.sir-funnel-card:hover {background:#141c20;color:#c9d4ce;}
.tournament-stat-card.sir-funnel-card:focus-visible {outline:2px solid var(--c-green,#62d49a);outline-offset:2px;}
.tournament-stat-card.sir-funnel-card.is-selected {background:#151d21;box-shadow:inset 0 -3px #e2b45e;color:#e6ede9;}
.tournament-stat-card.sir-funnel-card.is-played {cursor:default;color:#7c8a84;}
.tournament-stat-card.sir-funnel-card.is-played:hover {background:transparent;}
.tournament-stat-card.sir-funnel-card:disabled,.tournament-stat-card.sir-funnel-card.is-disabled {cursor:not-allowed;opacity:.62;}
.tournament-stat-card .sir-funnel-top {display:flex;align-items:center;justify-content:space-between;gap:8px;color:#7c8a84;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;}
.tournament-stat-card .sir-funnel-top small {color:#5f6d67;font-size:12px;font-weight:500;letter-spacing:0;text-transform:none;}
.tournament-stat-card.is-selected .sir-funnel-top>span {color:#e2b45e;}
.tournament-stat-card.sir-funnel-card>strong {font:600 40px/1 Oswald,sans-serif;}
.tournament-stat-card .tournament-stat-note {color:#7c8a84;font-size:11px;line-height:1.35;}
.tournament-stat-card .sir-funnel-track {display:block;width:100%;height:4px;flex:none;overflow:hidden;border-radius:2px;background:rgba(255,255,255,.06);}
.tournament-stat-card .sir-funnel-track i {display:block;height:100%;border-radius:inherit;background:#3fbf7f;transition:width .5s;}
.tournament-stat-card.is-selected .sir-funnel-track i {background:#e2b45e;}
.tournament-stat-card.is-played .sir-funnel-track i {background:#5f6d67;}
@media(max-width:600px) {
  .tournament-stat-card.sir-funnel-card>strong {font-size:32px;}
  .tournament-stat-card .sir-funnel-top,.tournament-stat-card .sir-funnel-top small {font-size:10px;}
}
@media(prefers-reduced-motion:reduce) {.tournament-stat-card .sir-funnel-track i {transition:none!important;}}
/* One frame owns Cup and experiment page/column boundaries. */
.tournament-desk {max-width:1600px;padding:32px 32px 48px;margin:auto;}
.cup-history-desk {padding-top:32px;}
.tournament-desk-layout,.cup-desk-layout {display:grid;grid-template-columns:340px minmax(0,1fr);gap:26px;align-items:start;}
.tournament-desk-detail {grid-column:2;min-width:0;}
.tournament-desk-main {width:100%;min-width:0;}
.tournament-context-embedded.summary-rail {position:static;max-height:none;}
.tournament-context-embedded .summary-rail-list {max-height:none;overflow:visible;}
.tournament-desk-layout>.tournament-desk-rail {min-width:0;width:100%;position:sticky;top:calc(var(--cup-header-height,55px) + 18px);max-height:calc(100dvh - var(--cup-header-height,55px) - 36px);overflow:auto;scrollbar-width:thin;}
@media(max-width:1100px) {
  .tournament-desk {padding:32px 20px 36px;}
  .tournament-desk-layout,.cup-desk-layout {grid-template-columns:300px minmax(0,1fr);gap:20px;}
}
@media(max-width:800px) {
  .tournament-desk {padding:32px 14px 32px;}
  .tournament-desk-layout,.cup-desk-layout {display:flex;flex-direction:column;gap:24px;}
  .tournament-desk-detail {display:contents;}
  .tournament-desk-layout>.tournament-desk-rail {position:static;max-height:none;overflow:visible;}
  .tournament-desk-detail>.tournament-view-nav {order:-3;margin-bottom:0;}
  .tournament-desk-content-first .tournament-desk-main {order:-2;}
  .tournament-view-nav {gap:6px;}
  .tournament-view-nav :is(a,button) {padding:8px 13px;font-size:11px;}
}
@media(max-width:400px) {
  .tournament-view-nav {display:grid;grid-template-columns:1fr 1fr;}
  .tournament-view-nav :is(a,button) {font-size:11px;padding:8px 10px;}
}
/* Optional addition to the shared team total; no chart styles affect 2028. */
.tournament-cup-score-chart {--score-label:64px;margin:20px 0 0;color:var(--t-ink);font:400 12px/1.5 "Public Sans",sans-serif;}
.tournament-cup-score-chart,.tournament-cup-score-surface {padding:24px;border:1px solid var(--t-line);border-radius:12px;background:var(--t-surface);}
.tournament-cup-score-chart>summary {gap:16px;}
.tournament-cup-score-chart[open]>summary {margin-bottom:36px;}
.tournament-cup-score-chart:not([open])>summary :is(p,.tournament-cup-score-legend) {display:none;}
.tournament-cup-score-chart h3 {margin:0;font:500 22px/1.2 Oswald,sans-serif;text-transform:uppercase;letter-spacing:.02em;}
.tournament-cup-score-chart p {margin:5px 0 0;color:var(--t-muted);font:400 11px/1.5 "Public Sans",sans-serif;}
.tournament-cup-score-usa,.tournament-cup-score-opponent,.cup-session-points>[data-team] {color:var(--team-color);}
.tournament-cup-score-legend {display:flex;flex-wrap:wrap;gap:8px 20px;font-size:11px;}
.tournament-cup-score-legend>span {display:flex;align-items:center;gap:7px;}
.tournament-cup-score-legend i {width:20px;border-top:2px solid currentColor;}
.tournament-cup-score-plot {display:grid;grid-template-columns:var(--score-label) minmax(0,1fr);height:180px;}
.tournament-cup-score-axis,.tournament-cup-score-canvas {position:relative;min-width:0;min-height:0;}
.tournament-cup-score-axis>small {position:absolute;top:-27px;left:0;color:var(--t-muted);font-size:10px;}
.tournament-cup-score-axis>span {position:absolute;right:14px;transform:translateY(-50%);font-size:11px;color:var(--t-muted);font-variant-numeric:tabular-nums;}
.tournament-cup-score-canvas>svg {display:block;width:100%;height:100%;overflow:visible;}
.tournament-cup-score-canvas path {fill:none;vector-effect:non-scaling-stroke;}
.tournament-cup-score-grid {stroke:var(--t-line);stroke-width:1;}
.tournament-cup-score-zero {stroke:var(--t-muted);stroke-width:1.5;}
.tournament-cup-score-line {stroke:currentColor;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round;}
.tournament-cup-score-dot {position:absolute;left:50%;top:50%;width:10px;height:10px;border:2px solid currentColor;background:currentColor;border-radius:50%;transform:translate(-50%,-50%);}
.tournament-cup-score-dot.tournament-cup-score-opponent {width:7px;height:7px;border-radius:0;}
.tournament-cup-score-dot.partial {background:var(--c-panel,var(--t-surface));}
.tournament-cup-score-line-hit {stroke:transparent;stroke-width:16;pointer-events:stroke;cursor:crosshair;}
.tournament-cup-score-point {position:absolute;display:block;width:28px;height:28px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--team-color);transform:translate(-50%,-50%);cursor:crosshair;}
.tournament-cup-score-point.split-left {margin-left:-14px;}
.tournament-cup-score-point.split-right {margin-left:14px;}
.tournament-cup-score-point.split-left .tournament-cup-score-dot {left:100%;}
.tournament-cup-score-point.split-right .tournament-cup-score-dot {left:0;}
.tournament-cup-score-point.is-active {z-index:1;}
.tournament-cup-score-point.is-active .tournament-cup-score-dot {box-shadow:0 0 0 4px color-mix(in srgb,var(--team-color) 18%,transparent);}
.tournament-cup-score-point:focus-visible {outline:1px solid var(--team-color);outline-offset:1px;}
.tournament-cup-score-guide {position:absolute;border-left:1px dashed var(--t-muted);opacity:.55;pointer-events:none;}
.tournament-cup-score-tooltip {position:absolute;z-index:2;display:grid;gap:6px;transform:translateX(-50%);width:max-content;max-width:100%;padding:9px 11px;border:1px solid var(--t-line);border-radius:8px;background:var(--t-raised);color:var(--t-ink);font:650 11px/1.3 "Public Sans",sans-serif;white-space:nowrap;box-shadow:0 3px 10px #0004;pointer-events:none;}
.tournament-cup-score-tooltip-row {display:flex;align-items:center;gap:8px;color:var(--team-color);font-variant-numeric:tabular-nums;}
.tournament-cup-score-tooltip-row img {display:block;width:20px;height:16px;object-fit:contain;flex-shrink:0;}
.tournament-cup-score-tooltip[hidden],.tournament-cup-score-guide[hidden] {display:none;}
.tournament-cup-score-chart .tournament-cup-score-empty {position:absolute;inset:0;display:grid;place-items:center;margin:0;text-align:center;}
.tournament-cup-score-days {display:grid;grid-template-columns:repeat(var(--score-days),minmax(0,1fr));margin:16px 0 0 var(--score-label);color:var(--t-muted);font-size:11px;text-align:center;}
.tournament-team-stats-chart {margin:0;}
.tournament-team-stats-chart>nav {margin:0;padding:0;border:0;}
.tournament-team-stats-chart>.tournament-cup-score-surface {margin-top:20px;}
.tournament-cup-score-surface>.tournament-cup-score-legend {justify-content:center;flex-direction:row;margin:20px 0 0 var(--score-label);gap:8px 20px;}
.tournament-team-stats-heading {display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;}
.tournament-team-stats-heading>div:first-child {flex:1 1 190px;min-width:0;}
.tournament-team-stats-heading p {margin-top:3px;}
.tournament-team-stats-options {display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px 12px;margin-left:auto;flex-shrink:0;max-width:100%;}
.tournament-team-stats-options>nav.summary-filter-pills {margin:0;padding:0;border:0;}
.tournament-team-stats-options .tournament-chart-select {max-width:150px;min-height:34px;padding:7px 12px;border:1px solid #ffffff1a;border-radius:999px;background:var(--t-raised);color:var(--t-muted);font:650 11px "Public Sans",sans-serif;text-transform:uppercase;letter-spacing:.035em;cursor:pointer;color-scheme:dark;}
.tournament-team-stats-options .tournament-chart-select.active {background:color-mix(in srgb,var(--t-accent) 16%,transparent);color:var(--t-accent);border-color:color-mix(in srgb,var(--t-accent) 55%,transparent);}
.tournament-team-stats-options .tournament-chart-select:focus-visible {outline:2px solid var(--t-accent);outline-offset:3px;}
.tournament-team-stats-chart .tournament-cup-score-plot {margin-top:42px;}
.tournament-team-stats-chart .tournament-cup-score-days {column-gap:4px;}
.tournament-team-stats-chart .tournament-cup-score-days small {display:block;font-size:9px;margin-top:3px;}
.tournament-hole-axis .tournament-cup-score-days {position:relative;column-gap:0;}
.tournament-hole-axis .tournament-cup-score-axis-title {position:absolute;left:calc(-1 * var(--score-label));font-size:10px;}
.tournament-hole-axis .tournament-cup-score-point {width:min(28px,calc(100% / var(--score-count)));}
.tournament-hole-axis .tournament-cup-score-point.split-upper {margin-top:-14px;}
.tournament-hole-axis .tournament-cup-score-point.split-lower {margin-top:14px;}
.tournament-hole-axis .tournament-cup-score-point.split-upper .tournament-cup-score-dot {top:100%;}
.tournament-hole-axis .tournament-cup-score-point.split-lower .tournament-cup-score-dot {top:0;}
.tournament-chart-sr {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0;}
@media(max-width:550px) {
  .tournament-cup-score-chart {--score-label:32px;margin-top:16px;}
  .tournament-cup-score-chart,.tournament-cup-score-surface {padding:18px 12px;}
  .tournament-cup-score-chart>summary {align-items:flex-start;gap:12px;}
  .tournament-cup-score-chart[open]>summary {margin-bottom:34px;}
  .tournament-cup-score-chart h3 {font-size:20px;}
  .tournament-cup-score-legend {flex-direction:column;gap:5px;font-size:10px;}
  .tournament-cup-score-plot {height:150px;}
  .tournament-cup-score-days {font-size:10px;}
  .tournament-team-stats-chart {margin:0;}
  .tournament-team-stats-heading {flex-wrap:wrap;gap:10px;}
  .tournament-team-stats-heading>div:first-child {flex:1 1 170px;}
  .tournament-team-stats-options {max-width:100%;}
  .tournament-team-stats-chart .tournament-cup-score-days small {font-size:8px;}
  .tournament-hole-axis .tournament-cup-score-days>span:not(:first-of-type):not(:nth-of-type(3n)) {visibility:hidden;}
  .tournament-hole-axis .tournament-cup-score-dot {width:7px;height:7px;}
  .tournament-hole-axis .tournament-cup-score-dot.tournament-cup-score-opponent {width:5px;height:5px;}
}
.tournament-portrait {
  position:relative; display:inline-grid; place-items:center; flex:none;
  width:76px; height:76px; overflow:hidden; border-radius:50%;
  background:var(--t-raised); color:var(--t-muted);
  box-shadow:0 0 0 2px #ffffff24,0 0 0 8px #ffffff0a;
}
.tournament-portrait>span {padding:0;background:none;border:0;color:inherit;font:500 25px/1 Oswald,sans-serif;}
.tournament-portrait>img {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:var(--t-raised);}
.tournament-match-panel {width:100%;min-width:0;box-shadow:none;overflow:hidden;color:var(--t-ink);}
.tournament-match-panel>.gs-panel-head {padding:20px;border-radius:20px 20px 0 0;}
.tournament-match-panel .gs-panel-badge {background:#ffffff17;color:var(--t-ink);width:58px;}
.tournament-match-panel .gs-panel-head h2 {margin:0;font:500 clamp(22px,2.4vw,30px)/1.15 Oswald,sans-serif;text-transform:uppercase;color:var(--t-ink);}
.tournament-match-panel .gs-panel-head .panel-close {display:inline-flex;align-items:center;justify-content:center;width:auto;height:auto;min-height:40px;padding:9px 14px;border:1px solid var(--t-line);border-radius:999px;background:#ffffff09;color:var(--t-ink);font:700 11px/1.3 "Public Sans",sans-serif;letter-spacing:.08em;text-transform:uppercase;text-align:center;}
.tournament-match-panel .gs-panel-head .tournament-close-match {min-width:44px;min-height:44px;padding:5px;font-size:24px;}
.tournament-match-panel .gs-panel-head .copy-link-button {width:36px;height:36px;}
.tournament-match-panel .gs-panel-body {padding:20px;min-width:0;}
.tournament-panel-actions {display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;border-top:1px solid var(--t-line);}
.tournament-panel-actions .panel-close {display:inline-flex;align-items:center;min-height:44px;color:var(--t-muted);font:600 12px/1.4 "Public Sans",sans-serif;text-decoration:none;background:none;border:0;padding:0;cursor:pointer;}
.tournament-panel-actions .panel-close:hover {color:var(--t-ink);}
.tournament-panel-actions :is(a,button):focus-visible {outline:2px solid var(--t-accent);outline-offset:3px;}
/* Shared matchup identity; session rows opt into the inline variant below. */
.tournament-matchup {container-type:inline-size;grid-template-columns:minmax(0,1fr) minmax(76px,.34fr) minmax(0,1fr);gap:14px;}
.h2h-player.tournament-side {min-width:0;padding:12px 14px 12px;justify-content:flex-start;}
.tournament-matchup .h2h-result strong {padding:12px 14px;font-size:28px;white-space:nowrap;}
.tournament-matchup .h2h-result>span {margin-top:10px;color:var(--t-muted);letter-spacing:.08em;font-size:11px;line-height:1.4;}
:is(.tournament-side,.tournament-player-identity) .tournament-portrait-stack {position:relative;display:inline-flex;flex-wrap:nowrap;gap:0;isolation:isolate;width:max-content;max-width:100%;}
.tournament-side .tournament-portrait-stack {margin:6px auto 2px;}
.tournament-side .tournament-portrait {width:58px;height:58px;padding:0;border-radius:50%;box-shadow:0 0 0 3px #364044,0 0 0 9px #ffffff04;}
.tournament-side .paired .tournament-portrait + .tournament-portrait {margin-left:-18px;}
.tournament-side .tournament-portrait:last-of-type {z-index:1;}
.tournament-side.winner .tournament-portrait {box-shadow:0 0 0 3px var(--t-accent),0 0 0 9px #ffffff04;}
.tournament-portrait-stack>.tournament-side-flag {position:absolute;right:-6px;bottom:-6px;z-index:2;width:32px;height:23px;object-fit:cover;border:2px solid var(--t-surface);border-radius:5px;background:var(--t-surface);}
.tournament-matchup .tournament-side-names {margin:10px 0 0;font:500 clamp(18px,1.5vw,23px)/1.25 Oswald,sans-serif;color:var(--t-ink);text-transform:uppercase;overflow-wrap:normal;}
.tournament-side-names .tournament-participant,.tournament-side-names .tournament-name-divider {display:inline;padding:0;background:none;border:0;border-radius:0;color:inherit;font:inherit;text-transform:inherit;}
.tournament-side-names a:hover {text-decoration:underline;text-underline-offset:4px;}
.tournament-side>div:empty {display:none;}
.tournament-h2h-compact .h2h-player.tournament-side {padding:12px 10px 10px;}
.tournament-h2h-compact .tournament-portrait {width:48px;height:48px;}
.tournament-h2h-compact .paired .tournament-portrait + .tournament-portrait {margin-left:-16px;}
.tournament-h2h-compact .tournament-side-names {font-size:clamp(17px,1.3vw,21px);}
.tournament-h2h-compact .h2h-result strong {font-size:26px;}
/* Selectable variant retains the match layout and native radio keyboard behavior. */
.tournament-choice {position:relative;}
.tournament-choice>.tournament-choice-input {position:absolute;inset:0;z-index:3;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;}
.tournament-choice>.tournament-choice-input:disabled {cursor:default;}
.tournament-choice:has(>.tournament-choice-input:focus-visible) {outline:2px solid var(--t-accent);outline-offset:4px;}
.tournament-choice:has(>.tournament-choice-input:checked) {border-color:var(--t-accent);background:#3fbf7f18;box-shadow:inset 0 0 0 1px var(--t-accent);}
.tournament-choice.h2h-result:has(>.tournament-choice-input) {align-self:center;min-height:88px;border:1px solid var(--t-line);border-radius:14px;padding:12px 0;}
.tournament-matchup .tournament-choice.h2h-result>strong {font-size:clamp(16px,5cqw,18px);padding:0;border:0;background:none;}
.tournament-matchup .tournament-choice>.tournament-choice-check {display:none;margin:0;padding:0;position:absolute;top:7px;right:7px;border-radius:50%;width:18px;height:18px;background:var(--t-accent);color:#071b12;font:700 12px/18px "Public Sans",sans-serif;text-align:center;}
.tournament-choice-input:checked+.tournament-choice-check {display:block;}
.tournament-choice.h2h-result .tournament-choice-check {top:-8px;right:-5px;}
/* Form identities keep their own radio labels and are not match-result cards. */
.tournament-participants {display:flex;justify-content:center;align-items:start;gap:18px;width:100%;}
.tournament-participants .tournament-participant {display:flex;flex:1;min-width:0;flex-direction:column;align-items:center;gap:16px;}
.tournament-participants .tournament-participant>strong {display:block;margin:0;font:500 20px/1.2 Oswald,sans-serif;text-transform:uppercase;color:var(--t-ink);text-align:center;}
.tournament-participants.compact {flex-direction:column;gap:12px;}
.tournament-participants.compact .tournament-participant {flex-direction:row;gap:10px;width:100%;align-items:center;}
.tournament-participants.compact .tournament-portrait {width:36px;height:36px;box-shadow:0 0 0 1px #ffffff24;}
.tournament-participants.compact .tournament-portrait>span {font-size:14px;}
.tournament-participants.compact .tournament-participant>strong {text-align:left;font:600 13px/1.4 "Public Sans",sans-serif;text-transform:none;}
@container(max-width:520px) {
  .tournament-matchup>.h2h-player.tournament-side {padding:10px 8px 10px;}
  .tournament-matchup .tournament-portrait {width:40px;height:40px;box-shadow:0 0 0 2px #364044;}
  .tournament-matchup .winner .tournament-portrait {box-shadow:0 0 0 2px var(--t-accent);}
  .tournament-matchup .paired .tournament-portrait + .tournament-portrait {margin-left:-18px;}
  .tournament-matchup .tournament-side-flag {width:25px;height:19px;right:-3px;bottom:-5px;}
  .tournament-matchup .tournament-side-names {font-size:17px;line-height:1.3;margin-top:10px;}
  .tournament-side .paired + .tournament-side-names {display:flex;flex-direction:column;gap:2px;font-size:clamp(13px,4.2cqw,20px);}
  .tournament-side .paired + .tournament-side-names .tournament-participant {white-space:nowrap;}
  .tournament-side .paired + .tournament-side-names .tournament-name-divider {display:none;}
  .tournament-matchup .h2h-result strong {font-size:22px;padding:10px 8px;}
  .tournament-matchup .h2h-result>span {font-size:9px;letter-spacing:.04em;}
}
/* Slim list variant keeps paired portraits, team surfaces and the result treatment. */
.tournament-matchup.tournament-h2h-inline {grid-template-columns:minmax(0,1fr) 80px minmax(0,1fr);gap:12px;}
.tournament-matchup.tournament-h2h-inline>.tournament-side {flex-direction:row;align-items:center;gap:14px;padding:8px 12px;text-align:left;border-radius:12px;}
.tournament-matchup.tournament-h2h-inline>.tournament-side:first-child {flex-direction:row-reverse;text-align:right;}
.tournament-h2h-inline .tournament-side .tournament-portrait-stack {flex:none;margin:0 0 3px;}
.tournament-matchup.tournament-h2h-inline .tournament-portrait {width:32px;height:32px;box-shadow:0 0 0 2px #364044;}
.tournament-matchup.tournament-h2h-inline .winner .tournament-portrait {box-shadow:0 0 0 2px var(--t-accent);}
.tournament-matchup.tournament-h2h-inline .paired .tournament-portrait+.tournament-portrait {margin-left:-12px;}
.tournament-matchup.tournament-h2h-inline .tournament-side-flag {width:21px;height:16px;right:-4px;bottom:-5px;border-width:1px;border-radius:3px;}
.tournament-matchup.tournament-h2h-inline .tournament-side-names {display:block;margin:0;font-size:16px;line-height:1.25;min-width:0;}
.tournament-h2h-inline .paired+.tournament-side-names .tournament-participant {display:block;white-space:nowrap;}
.tournament-h2h-inline .tournament-side-names .tournament-name-divider {display:none;}
.tournament-matchup.tournament-h2h-inline .h2h-result strong {padding:5px 8px;font-size:23px;line-height:1.15;}
.tournament-matchup.tournament-h2h-inline .h2h-result>span {margin-top:4px;font-size:9px;letter-spacing:.04em;}
@container(max-width:540px) {
  .tournament-matchup.tournament-h2h-inline {grid-template-columns:minmax(0,1fr) 50px minmax(0,1fr);gap:6px;align-items:stretch;}
  .tournament-matchup.tournament-h2h-inline>.tournament-side,
  .tournament-matchup.tournament-h2h-inline>.tournament-side:first-child {flex-direction:column;justify-content:flex-start;gap:9px;padding:8px 4px;text-align:center;}
  .tournament-matchup.tournament-h2h-inline .tournament-portrait {width:28px;height:28px;}
  .tournament-matchup.tournament-h2h-inline .paired .tournament-portrait+.tournament-portrait {margin-left:-10px;}
  .tournament-matchup.tournament-h2h-inline .tournament-side-names {display:flex;flex-direction:column;justify-content:center;min-height:2.5em;font-size:clamp(12px,4.3cqw,16px);line-height:1.25;}
  .tournament-matchup.tournament-h2h-inline .h2h-result strong {font-size:19px;padding:5px 3px;}
  .tournament-matchup.tournament-h2h-inline .h2h-result>span {font-size:8px;letter-spacing:0;}
}
.tournament-match-panel .chart-side-pill {max-width:100%;}
.tournament-match-panel .chart-side-pill strong {white-space:normal;line-height:1.4;}
.tournament-chart-portraits {display:inline-flex;flex:none;isolation:isolate;}
.tournament-chart-portraits .tournament-portrait+.tournament-portrait {margin-left:-9px;}
.chart-side-pill .tournament-portrait,.score-player-label .tournament-portrait {width:24px;height:24px;box-shadow:none;}
.chart-side-pill .tournament-portrait>span,.score-player-label .tournament-portrait>span {font:500 11px/1 Oswald,sans-serif;}
.tournament-match-panel .scorecard-table th:first-child {min-width:165px;max-width:220px;}
.matchplay-scorecard .cup-par-row>:is(th,td) {color:var(--t-muted);font-size:11px;padding-top:5px;padding-bottom:5px;}
.matchplay-scorecard .cup-standing-row>:is(th,td) {border-top:2px solid var(--t-line);border-bottom:2px solid var(--t-line);padding-top:10px;padding-bottom:10px;font-weight:600;background:#ffffff09;}
.tournament-match-panel .score-player-label {min-width:0;max-width:100%;display:flex;gap:6px;align-items:center;white-space:normal;}
.tournament-match-panel .score-player-label>span:last-child {min-width:0;white-space:normal;overflow-wrap:anywhere;font-size:12px;line-height:1.4;}
.tournament-match-panel .score-player-label small {display:block;margin-top:3px;color:var(--t-muted);font:500 10px/1.4 "Public Sans",sans-serif;}
.tournament-match-panel .scorecard-table th:not(:first-child) {text-align:center;}
.tournament-match-panel .scorecard-table td {min-width:30px;}
.tournament-match-panel .matchplay-scorecard td {min-width:38px;white-space:nowrap;}
.tournament-match-panel .scorecard-table .cup-stroke-row>:is(th,td) {padding:4px 8px;font-size:13px;}
.tournament-match-panel .cup-stroke-row .score-player-label>span:last-child {font-size:11px;line-height:1.25;}
.tournament-hole-score {position:relative;display:inline-grid;place-items:center;width:24px;height:24px;box-sizing:border-box;border:1px solid transparent;line-height:1;}
.tournament-hole-score:is(.score-under-par,.score-over-par) {border-color:#8a9891;}
.tournament-hole-score.score-under-par {border-radius:50%;}
.tournament-hole-score.score-multiple::after {content:"";position:absolute;inset:2px;border:1px solid #8a9891;border-radius:inherit;pointer-events:none;}
.tournament-match-panel .cup-standing-row .cup-lead-usa {background:rgba(181,62,76,.12);color:var(--t-usa);}
.tournament-match-panel .cup-standing-row .cup-lead-int {background:rgba(210,171,67,.1);color:var(--t-int);}
.tournament-match-panel .cup-standing-row .cup-lead-eur {background:rgba(82,126,190,.12);color:var(--t-eur);}
.tournament-record-line {display:block;margin-top:6px;}
.tournament-fact-pills {display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin-top:6px;}
.tournament-fact-pills>b,.summary-rank-row .tournament-fact-pills>b {display:inline-block;border:1px solid var(--t-line);border-radius:999px;padding:3px 8px;background:#ffffff05;color:var(--t-muted);font:500 10px/1.4 "Public Sans",sans-serif;white-space:nowrap;}
.tournament-record-line .tournament-fact-pills {margin-top:0;}
.tournament-context-rail.summary-rail {position:static;max-height:none;}
.tournament-context-back {display:block;position:sticky;top:0;z-index:1;min-height:44px;padding:15px 16px;border-bottom:1px solid var(--t-line);background:var(--t-surface);color:var(--t-muted);font:600 13px/1.4 "Public Sans",sans-serif;text-decoration:none;}
.tournament-context-heading {padding:12px 16px 14px;}
.tournament-context-heading>div {min-width:0;}
.tournament-context-heading .tournament-context-back {position:static;min-height:32px;padding:3px 0 10px;border:0;background:none;font-size:11px;}
.tournament-context-heading h3 {font-size:20px;}
.tournament-context-back:hover {color:var(--t-ink);background:var(--t-raised);}
.tournament-context-rail :is(a,button):focus-visible {outline:2px solid var(--t-accent);outline-offset:-3px;}
.tournament-context-rail .summary-rail-head {justify-content:flex-start;}
.tournament-context-rail .summary-rail-head>div {min-width:0;}
.tournament-context-rail .summary-rail-head h3 {line-height:1.2;}
.tournament-context-rail .summary-rank-copy>strong {white-space:normal;overflow:visible;text-overflow:clip;}
.tournament-context-rail .summary-rail-list {max-height:none;overflow:visible;}
.tournament-match-row {container-type:inline-size;display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:8px;min-width:0;padding:12px 10px;border:1px solid var(--t-line);border-radius:10px;background:#ffffff04;color:var(--t-ink);text-decoration:none;}
.tournament-match-row:hover {background:#ffffff09;}
.tournament-match-row.active {border-color:rgba(var(--team-rgb,230,237,233),.5);background:rgba(var(--team-rgb,230,237,233),.1);box-shadow:none;}
.tournament-match-row-teams {display:grid;gap:10px;min-width:0;}
.tournament-match-row-team {display:flex;align-items:center;gap:8px;min-width:0;}
.tournament-match-row-portraits {display:flex;flex:none;isolation:isolate;}
.tournament-match-row-portraits .tournament-portrait {width:24px;height:24px;box-shadow:0 0 0 1px var(--t-surface);}
.tournament-match-row-portraits .tournament-portrait + .tournament-portrait {margin-left:-9px;}
.tournament-match-row-portraits .tournament-portrait>span {font-size:10px;}
.tournament-match-row-names {font:500 clamp(11px,5.2cqw,13px)/1.3 Oswald,sans-serif;text-transform:uppercase;white-space:nowrap;}
.tournament-match-row-team.leading .tournament-match-row-names {color:var(--team-color,var(--t-accent));}
.tournament-match-row-score {display:grid;gap:5px;justify-items:end;text-align:right;}
.tournament-match-row-score strong {color:var(--team-color,var(--t-ink));font:500 20px/1.1 Oswald,sans-serif;white-space:nowrap;}
.tournament-match-row-score small {color:var(--t-muted);font:500 9px/1.2 "Public Sans",sans-serif;white-space:nowrap;}
.tournament-match-row.live .tournament-match-row-score small {color:var(--t-accent);}
@media(max-width:800px) {
  .tournament-context-rail .summary-rail-list {max-height:300px;overflow:auto;}
}
.cup :is(.cup-pill,.cup-segmented button,.cup-pool-view-nav button,.cup-stats-controls a,.cup-history-tabs a) {
  color:var(--t-muted);border:1px solid var(--t-line);background:#ffffff0a;border-radius:999px;
}
.cup :is(.cup-pill[aria-pressed="true"],.cup-segmented button.active,.cup-pool-view-nav button.active,.cup-stats-controls a.active,.cup-history-tabs a.active) {
  color:var(--t-accent);border-color:var(--t-active-line);background:var(--t-active-bg);
}
.cup :is(.cup-pill,.cup-segmented button,.cup-pool-view-nav button,.cup-stats-controls a,.cup-history-tabs a):hover {border-color:#ffffff40;color:var(--t-ink);}
.cup .cup-card,.cup .cup-scout-card {border-radius:16px;}
.cup .cup-dialog {border-radius:20px;background:var(--t-surface);}
.cup .cup-dialog-head {border-bottom:1px solid var(--t-line);background:#ffffff06;}
.cup-faceoff .tournament-participants {margin-top:10px;}
.cup-faceoff .tournament-participant>strong {font-size:14px;}
.cup-history-detail .cup-desk-layout {grid-template-columns:260px minmax(0,1fr);}
@media(max-width:800px) {
  .cup-history-detail .cup-desk-layout {display:flex;}
  :is(.cup-history-detail,.cup-history-stats) .cup-desk-main {order:-2;}
  :is(.cup-history-detail,.cup-history-stats) .cup-tournament-rail {order:0;}
  :is(.cup-history-detail,.cup-history-stats) .cup-history-jump {display:none;}
}
@media(max-width:600px) {
  .tournament-match-panel>.gs-panel-head {padding:14px;gap:10px;flex-wrap:wrap;}
  .tournament-match-panel .gs-panel-head>span:nth-child(2) {flex-basis:calc(100% - 70px);}
  .tournament-match-panel .gs-panel-head .panel-close {margin-left:auto;min-height:40px;}
  .tournament-match-panel .gs-panel-head h2 {font-size:23px;}
  .tournament-match-panel .gs-panel-body {padding:12px;}
  .tournament-matchup {grid-template-columns:minmax(0,1fr) 62px minmax(0,1fr);gap:8px;}
  .tournament-match-panel .scorecard-summary {padding:12px;gap:6px;}
  .tournament-match-panel .scorecard-summary span {font-size:9px;letter-spacing:.07em;}
  .tournament-match-panel .match-chart {margin:10px;padding:8px 2px;}
  .tournament-match-panel .match-chart svg {min-width:720px;}
  .tournament-match-panel .chart-side-pill {font-size:10px;}
  .tournament-match-panel .chart-side-pill .tournament-portrait,.tournament-match-panel .score-player-label .tournament-portrait {width:22px;height:22px;}
  .tournament-match-panel .table-wrap {margin:0 10px 10px;}
  .cup-faceoff .tournament-portrait {display:none;}

}

/* Cup profile facts sit directly beneath selection status. */
.tournament-player-identity {padding:26px;}
.tournament-player-identity-main {display:flex;align-items:flex-start;gap:22px;}
.tournament-player-identity .tournament-portrait {width:88px;height:88px;min-width:88px;border:2px solid var(--t-accent);}
.tournament-player-identity .tournament-portrait-stack {flex-shrink:0;}
.tournament-player-identity-copy {min-width:0;}
.tournament-player-identity h1 {font:600 clamp(28px,3vw,38px)/1.2 Oswald,sans-serif;text-transform:uppercase;letter-spacing:0;margin:7px 0;overflow-wrap:anywhere;}
.tournament-player-selection {font-size:13px;color:var(--t-muted);margin:0;}
.tournament-player-stat-groups {display:grid;gap:14px;margin-top:18px;}
.tournament-player-stat-group h2 {margin:0;color:var(--t-muted);font:650 10px/1.4 "Public Sans",sans-serif;text-transform:uppercase;letter-spacing:.08em;}
.tournament-player-stat-group .tournament-fact-pills>b {font-size:11px;}
.tournament-player-stat-group-inline {display:flex;flex-wrap:wrap;align-items:center;gap:5px 6px;}
.tournament-player-stat-group-inline .tournament-fact-pills {display:contents;}
@media(max-width:800px) {
 .tournament-player-identity {padding:20px;}
 .tournament-player-identity-main {gap:16px;align-items:flex-start;}
 .tournament-player-identity .tournament-portrait {width:64px;height:64px;min-width:64px;}
 .tournament-player-identity h1 {font-size:28px;}
}
@media(max-width:550px) {
 .tournament-player-identity {padding:18px;}
 .tournament-player-identity-main {gap:13px;}
 .tournament-player-identity .tournament-portrait {width:56px;height:56px;min-width:56px;}
 .tournament-player-identity h1 {font-size:27px;}
 .tournament-player-selection {font-size:12px;}
}
@media(max-width:360px) {
 .tournament-player-identity-main {gap:10px;}
 .tournament-player-identity h1 {font-size:25px;}
}


.tournament-chart-plot {overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;}
.tournament-chart-plot:focus-visible {outline:2px solid var(--t-accent);outline-offset:2px;}

/* Stroke-play variant shares the scorecard frame, table and chart language. */
.tournament-stroke-play{min-width:0;}
.tournament-stroke-play .scorecard-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px 20px;}
.tournament-stroke-player{display:flex;gap:10px;align-items:center;min-width:0;}
.tournament-stroke-player .tournament-portrait{width:34px;height:34px;flex-shrink:0;}
.tournament-stroke-player>span:last-child{white-space:normal;}
.tournament-stroke-play .tournament-stroke-player>span:last-child{color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;}
.tournament-stroke-play .stroke-play-context{color:var(--t-muted);font-size:11px;}
.tournament-stroke-play .tournament-stroke-round-controls{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;padding:0;margin:0;border:0;}
.tournament-stroke-round-controls button{min-width:44px;min-height:38px;}
.tournament-stroke-round-controls button:focus-visible{outline:2px solid var(--t-accent);outline-offset:3px;}
.tournament-stroke-play .stroke-play-chart{margin:16px;padding:8px 0;}
.stroke-play-chart svg{display:block;width:100%;min-width:720px;}
.stroke-play-chart .stroke-play-line{stroke:var(--t-accent);}
.stroke-play-chart .stroke-play-point{fill:var(--t-accent);}
.stroke-play-chart .stroke-play-even-line{stroke:var(--t-muted);stroke-width:1.5;}
.stroke-play-chart .stroke-play-round-boundary{stroke-dasharray:4 4;}
.tournament-stroke-play .stroke-play-scorecard{margin:0 16px 16px;overflow:auto;}
.stroke-play-scorecard .scorecard-table th:first-child{min-width:126px;}
.stroke-play-scorecard .stroke-play-hole-cell{min-width:44px;}
.stroke-play-scorecard .stroke-play-relative-row{background:#ffffff07;color:var(--t-ink);}
@media(max-width:600px){.tournament-stroke-play .scorecard-summary{grid-template-columns:minmax(0,1fr);padding:14px;gap:10px;}.tournament-stroke-play .stroke-play-chart{margin:10px;}.tournament-stroke-play .stroke-play-scorecard{margin:0 10px 10px;}}

.tournament-chart-hint {display:none;margin:4px 0 8px;color:var(--t-muted);font:400 11px/1.5 "Public Sans",sans-serif;}
@media(max-width:600px) {.tournament-chart-hint {display:block;}}

@media(max-width:360px) {
  .tournament-matchup {grid-template-columns:minmax(0,1fr) 50px minmax(0,1fr);gap:6px;}
  .tournament-matchup .tournament-portrait {width:40px;height:40px;}
  .tournament-matchup .tournament-side-names {font-size:16px;}
  .tournament-matchup .h2h-result strong {font-size:19px;padding:10px 5px;}
}

/* Accessible table captions keep the shared Insights geometry unchanged. */
.tournament-sr-only {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

.summary-player-head .tournament-player-avatar .tournament-portrait {width:78px;height:78px;font-size:24px;box-shadow:0 0 0 2px #3fbf7f,0 0 0 8px rgba(255,255,255,.04);}
#cup-history-player {scroll-margin-top:calc(var(--cup-header-height,55px) + 18px);}
.cup-match-days {display:grid;gap:12px;margin:24px 0 36px;min-width:0;}
.cup-match-session {min-width:0;}
.tournament-disclosure>summary {display:flex;align-items:center;gap:12px;min-height:44px;list-style:none;cursor:pointer;}
.tournament-disclosure>summary::-webkit-details-marker {display:none;}
.tournament-disclosure>summary::after {content:'+';flex:none;color:var(--t-muted);font:400 22px/1 "Public Sans",sans-serif;}
.tournament-disclosure[open]>summary::after {content:'−';}
.tournament-disclosure>summary>:first-child {flex:1;min-width:0;}
.tournament-disclosure>summary:focus-visible {outline:2px solid var(--t-accent);outline-offset:3px;border-radius:3px;}
.cup-match-session[open]>.cup-match-session-heading {margin-bottom:12px;}
.cup-match-session-heading {padding:8px 0;border-bottom:1px solid var(--c-line);}
.cup-match-session-heading h2 {margin:0;font:500 20px/1.3 Oswald,sans-serif;}
.cup-session-points {display:inline-flex;flex-shrink:0;align-items:center;gap:4px;padding:3px 8px;border:1px solid var(--c-line);border-radius:999px;background:#ffffff06;font:500 14px/1.25 Oswald,sans-serif;white-space:nowrap;}
.cup-match-session-heading>.cup-session-detail {flex-shrink:0;color:var(--c-dim);font-size:12px;white-space:nowrap;}

/* Shared player section shell; routes supply the established match component. */
.tournament-player-match-section {border-top:1px solid var(--t-line);}
.tournament-player-match-section .tournament-player-match-title {margin:0;padding:16px 16px 0;font:500 26px/1.3 Oswald,sans-serif;}

/* Explicit team identities leave the experiment's green/blue styling intact. */
[data-team="USA"] {--team-rgb:181,62,76;--team-fill:#b53e4c;--team-color:var(--t-usa);}
[data-team="INT"] {--team-rgb:210,171,67;--team-fill:#d2ab43;--team-color:var(--t-int);}
[data-team="EUR"] {--team-rgb:82,126,190;--team-fill:#527ebe;--team-color:var(--t-eur);}
.h2h-player.winner[data-team] {border-color:rgba(var(--team-rgb),.45);background:linear-gradient(180deg,rgba(var(--team-rgb),.13),rgba(var(--team-rgb),.02));}
.tournament-side.winner[data-team] .tournament-portrait {box-shadow:0 0 0 2px rgba(var(--team-rgb),.65);}
[data-team-match] .h2h-result strong {background:#ffffff09;color:var(--t-ink);}
[data-team-match] .h2h-result[data-team] strong {background:rgba(var(--team-rgb),.12);color:var(--team-color);}
.chart-side-pill[data-team] {border-color:rgba(var(--team-rgb),.36);box-shadow:inset 0 0 0 1px rgba(var(--team-rgb),.08);}
.chart-top-zone[data-team],.chart-bottom-zone[data-team] {fill:rgba(var(--team-rgb),.035);}
.hover-point[data-team] {fill:var(--team-color);}

/* Scheduled matches use prose in the existing scorecard frame. */
.tournament-match-preview {padding:18px;color:var(--t-ink);font:400 14px/1.7 "Public Sans",sans-serif;}
.tournament-match-preview p {margin:0 0 14px;}
.tournament-match-preview p:last-child {margin-bottom:0;}

.tournament-preview-date {display:block;margin-top:16px;color:var(--t-muted);font-size:11px;}
