/* Saisonarchiv, Block sgh/season-archive (inc/season-archive.php). Quelle: work/entwuerfe-2026-10/saisonarchiv/saisonarchiv.css.
   Motive des Themes: Höhenlinien (Kopfband, Mannschafts-Platzhalter) und Strömung. Farben nur aus den Theme-Tokens. */

.sa {
  --sa-ink: var(--wp--preset--color--ink);
  --sa-muted: var(--wp--preset--color--muted);
  --sa-line: var(--wp--preset--color--line);
  --sa-tint: var(--wp--preset--color--tint);
  --sa-paper: var(--wp--preset--color--paper);
  --sa-surface: var(--wp--preset--color--surface);
  --sa-accent: var(--sgh-accent);
  --sa-strong: var(--sgh-line-strong, #7C7F8F);
  /* Ströme: eine Vereinsfarbe in fünf Stufen, beschriftet (Farbe ist nie das einzige Merkmal) */
  --sa-g0: #1111BB; --sa-g1: #3D42CC; --sa-g2: #666AD4; --sa-g3: #9A9EE7; --sa-g4: #C5C8F3;
  --sa-g0-ink: #fff; --sa-g1-ink: #fff; --sa-g2-ink: #fff; --sa-g3-ink: #14151F; --sa-g4-ink: #14151F;
  --sa-relief-a: rgb(17 17 187 / .16); --sa-relief-b: rgb(17 17 187 / .02);
  --sa-ease: var(--sgh-ease, cubic-bezier(.2, .7, .2, 1));
  font-variant-numeric: tabular-nums;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-scheme="light"]) .sa {
    --sa-g0: #AEB2FF; --sa-g1: #8C92FF; --sa-g2: #6C73F2; --sa-g3: #5158D8; --sa-g4: #4148C0;
    --sa-g0-ink: #0B0C18; --sa-g1-ink: #0B0C18; --sa-g2-ink: #0B0C18; --sa-g3-ink: #fff; --sa-g4-ink: #fff;
    --sa-relief-a: rgb(124 132 255 / .22); --sa-relief-b: rgb(124 132 255 / .02);
  }
}
:root[data-scheme="dark"] .sa {
  --sa-g0: #AEB2FF; --sa-g1: #8C92FF; --sa-g2: #6C73F2; --sa-g3: #5158D8; --sa-g4: #4148C0;
  --sa-g0-ink: #0B0C18; --sa-g1-ink: #0B0C18; --sa-g2-ink: #0B0C18; --sa-g3-ink: #fff; --sa-g4-ink: #fff;
  --sa-relief-a: rgb(124 132 255 / .22); --sa-relief-b: rgb(124 132 255 / .02);
}


/* ---------- Kopf ---------- */
.sa-hero { position: relative; isolation: isolate; padding: var(--wp--preset--spacing--60) 0 var(--wp--preset--spacing--40); }
.sa-hero-lines {
  position: absolute; z-index: -1; inset: -1rem calc(-1 * var(--sgh-gutter, 1.25rem)) 0; pointer-events: none;
  background: var(--sgh-contour-on-paper, var(--sa-accent)); opacity: var(--sgh-contour-quiet, .16);
  /* Dieselben Ringe um das Spielfeld wie in den Seitenköpfen (style.css, main.sgh-head-lines). */
  -webkit-mask-image: url("head-contours.svg"), linear-gradient(to right, transparent 22%, #000 62%), linear-gradient(#000 40%, transparent);
          mask-image: url("head-contours.svg"), linear-gradient(to right, transparent 22%, #000 62%), linear-gradient(#000 40%, transparent);
  -webkit-mask-size: 1600px 640px, 100% 100%, 100% 100%; mask-size: 1600px 640px, 100% 100%, 100% 100%;
  -webkit-mask-position: right -4rem top -7rem, 0 0, 0 0; mask-position: right -4rem top -7rem, 0 0, 0 0;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-composite: source-in, source-in; mask-composite: intersect;
}
.sa-kicker { margin: 0 0 .5rem; font: 700 var(--wp--preset--font-size--label)/1 var(--wp--preset--font-family--heading); letter-spacing: .12em; text-transform: uppercase; color: var(--sa-accent); }
.sa-hero h1 { margin: 0; }
.sa-lead { max-width: 62ch; margin: var(--wp--preset--spacing--40) 0 0; font-size: var(--wp--preset--font-size--reading); line-height: 1.5; color: var(--sgh-ink-2, var(--sa-ink)); }
.sa-facts { display: flex; flex-wrap: wrap; gap: .75rem 2.25rem; margin: var(--wp--preset--spacing--50) 0 0; }
.sa-facts div { display: flex; flex-direction: column-reverse; }
.sa-facts dt { font-size: var(--wp--preset--font-size--meta); color: var(--sa-muted); }
.sa-facts dd { margin: 0; font: 700 var(--wp--preset--font-size--headline-m)/1.1 var(--wp--preset--font-family--heading); color: var(--sa-ink); }

.sa-figure { position: relative; margin: var(--wp--preset--spacing--50) 0 0; }
.sa-figure figcaption { margin-top: .5rem; max-width: 70ch; color: var(--sa-muted); font-size: var(--wp--preset--font-size--meta); line-height: 1.45; }
.sa-chart-scroll { overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin; }
.sa-axis { fill: var(--sa-muted); font: 500 12px/1 var(--wp--preset--font-family--text); }
.sa-tip { position: absolute; z-index: 5; pointer-events: none; max-width: min(22rem, 90vw); background: var(--sa-ink); color: var(--sa-paper);
  font-size: .8125rem; line-height: 1.35; padding: .4rem .6rem; border-radius: 6px; transform: translate(-50%, calc(-100% - 12px)); box-shadow: var(--sgh-shadow); }

/* ---------- Strom der Mannschaften ---------- */
.sa-stream { display: block; width: 100%; height: auto; overflow: visible; }
.sa-stream.is-schmal { display: none; }
@media (max-width: 600px) { .sa-stream.is-breit { display: none; } .sa-stream.is-schmal { display: block; } }
.sa-legend { display: flex; flex-wrap: wrap; gap: .3rem 1.1rem; margin: .6rem 0 0; padding: 0; list-style: none; font-size: var(--wp--preset--font-size--meta); }
.sa-legend li::before { content: ""; display: inline-block; width: .8rem; height: .8rem; margin-right: .4rem; border-radius: 3px; vertical-align: -1px; background: var(--sa-g0); }
.sa-legend li[data-g="1"]::before { background: var(--sa-g1); } .sa-legend li[data-g="2"]::before { background: var(--sa-g2); }
.sa-legend li[data-g="3"]::before { background: var(--sa-g3); } .sa-legend li[data-g="4"]::before { background: var(--sa-g4); }
.sa-legend a { color: inherit; text-decoration: none; } .sa-legend a:hover, .sa-legend a:focus-visible { text-decoration: underline; }
.sa-stream-band { transition: opacity var(--sgh-dur-2, .18s); }
.sa-stream:has(.sa-stream-label:hover) .sa-stream-band { opacity: .45; }
.sa-stream:has(.sa-stream-label[data-g="0"]:hover) .sa-stream-band[data-g="0"], .sa-stream:has(.sa-stream-label[data-g="1"]:hover) .sa-stream-band[data-g="1"],
.sa-stream:has(.sa-stream-label[data-g="2"]:hover) .sa-stream-band[data-g="2"], .sa-stream:has(.sa-stream-label[data-g="3"]:hover) .sa-stream-band[data-g="3"],
.sa-stream:has(.sa-stream-label[data-g="4"]:hover) .sa-stream-band[data-g="4"] { opacity: 1; }
.sa-stream-band[data-g="0"] { fill: var(--sa-g0); } .sa-stream-band[data-g="1"] { fill: var(--sa-g1); } .sa-stream-band[data-g="2"] { fill: var(--sa-g2); }
.sa-stream-band[data-g="3"] { fill: var(--sa-g3); } .sa-stream-band[data-g="4"] { fill: var(--sa-g4); }
.sa-stream-iso { fill: none; stroke-width: 1; opacity: .28; pointer-events: none; }
.sa-stream-iso[data-g="0"] { stroke: var(--sa-g0-ink); } .sa-stream-iso[data-g="1"] { stroke: var(--sa-g1-ink); } .sa-stream-iso[data-g="2"] { stroke: var(--sa-g2-ink); }
.sa-stream-iso[data-g="3"] { stroke: var(--sa-g3-ink); } .sa-stream-iso[data-g="4"] { stroke: var(--sa-g4-ink); }
.sa-stream-label text { font: 700 13px/1 var(--wp--preset--font-family--heading); letter-spacing: .02em; pointer-events: auto; }
.sa-stream-label[data-g="0"] text { fill: var(--sa-g0-ink); } .sa-stream-label[data-g="1"] text { fill: var(--sa-g1-ink); } .sa-stream-label[data-g="2"] text { fill: var(--sa-g2-ink); }
.sa-stream-label[data-g="3"] text { fill: var(--sa-g3-ink); } .sa-stream-label[data-g="4"] text { fill: var(--sa-g4-ink); }
.sa-stream-label:focus-visible { outline: 2px solid var(--sgh-focus, #B35C00); outline-offset: 2px; } .sa-stream-label:focus-visible text { text-decoration: underline; }
.sa-stream-hit { fill: transparent; cursor: crosshair; }
.sa-stream-cross { stroke: var(--sa-ink); stroke-width: 1; stroke-dasharray: 2 3; pointer-events: none; display: none; }
.sa-stream-cross.is-on { display: inline; }
.sa-axis-live { fill: var(--sa-accent); font-weight: 700; }
/* Aufbau: die Ströme fließen von links ein */
.sa-js .sa-stream-flow { clip-path: inset(0 100% 0 0); transition: clip-path 1.6s var(--sa-ease); }
.sa-js .sa-stream.is-in .sa-stream-flow { clip-path: inset(0 0 0 0); }

/* ---------- Navigation ---------- */
.sa-nav { position: sticky; top: 0; z-index: 20; margin: var(--wp--preset--spacing--50) calc(-1 * var(--sgh-gutter, 1.25rem)) 0; padding: 0 var(--sgh-gutter, 1.25rem);
  background: color-mix(in srgb, var(--sa-paper) 92%, transparent); backdrop-filter: blur(6px); border-block: 1px solid var(--sa-line); }
.sa-nav ul { display: flex; gap: .25rem; margin: 0; padding: .5rem 0; list-style: none; overflow-x: auto; scrollbar-width: none; }
.sa-nav a { display: block; padding: .4rem .7rem; border-radius: 999px; white-space: nowrap; text-decoration: none; color: var(--sa-ink);
  font: 600 var(--wp--preset--font-size--meta)/1.2 var(--wp--preset--font-family--heading); }
.sa-nav a:hover, .sa-nav a:focus-visible, .sa-nav a[aria-current="true"] { background: var(--sa-tint); color: var(--sa-accent); }
.sa-howto { margin: var(--wp--preset--spacing--50) 0 0; color: var(--sa-muted); font-size: var(--wp--preset--font-size--meta); }

/* ---------- Abschnitte ---------- */
.sa-section { margin-top: var(--wp--preset--spacing--80); scroll-margin-top: 4rem; }
.sa-section > h2 { display: flex; align-items: baseline; gap: .75rem; margin: 0 0 var(--wp--preset--spacing--40); padding-top: .75rem; border-top: var(--sgh-rule, 1px solid); }
.sa-section > h2 small { font: 500 var(--wp--preset--font-size--meta)/1 var(--wp--preset--font-family--text); color: var(--sa-muted); }
.sa-intro { max-width: 68ch; margin: 0 0 var(--wp--preset--spacing--40); }
.sa-photo { margin: var(--wp--preset--spacing--40) 0; max-width: 40rem; }
.sa-photo img { width: 100%; height: auto; display: block; }
.sa-photo figcaption { color: var(--sa-muted); font-size: var(--wp--preset--font-size--meta); margin-top: .4rem; }
.sa-plain { padding-left: 1.1rem; } .sa-plain li { margin: .4rem 0; }
.sa-muted { color: var(--sa-muted); }

/* ---------- Höhenprofil ---------- */
.sa-relief { display: block; width: 100%; height: auto; min-width: 640px; overflow: visible; }
.sa-relief-grid { stroke: var(--sa-line); stroke-width: 1; }
.sa-relief-level { font-weight: 600; }
.sa-relief-area { fill: url(#sa-relief-fill); }
.sa-relief-stop1 { stop-color: var(--sa-relief-a); } .sa-relief-stop2 { stop-color: var(--sa-relief-b); }
.sa-relief-stop1 { stop-color: var(--sa-accent); stop-opacity: .14; } .sa-relief-stop2 { stop-color: var(--sa-accent); stop-opacity: 0; }
.sa-relief-iso path { fill: none; stroke: var(--sa-accent); stroke-width: 1; opacity: calc(.42 - var(--k) * .045); }
.sa-relief-line { fill: none; stroke: var(--sa-accent); stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; }
.sa-relief-live { fill: none; stroke: var(--sa-accent); stroke-width: 2.5; stroke-dasharray: 5 5; }
.sa-relief-open { fill: none; stroke: var(--sa-accent); stroke-width: 2; stroke-dasharray: 2 6; stroke-linecap: round; opacity: .55; }
.sa-relief-open-t { fill: var(--sa-accent); font-weight: 700; }
.sa-js .sa-relief-line { stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 2.2s var(--sa-ease); }
.sa-js .sa-relief-iso, .sa-js .sa-relief-area, .sa-js .sa-relief .sa-pt, .sa-js .sa-relief-live, .sa-js .sa-relief-open, .sa-js .sa-relief-open-t { opacity: 0; transition: opacity .8s var(--sa-ease) 1.2s; }
.sa-js .sa-relief.is-in .sa-relief-line { stroke-dashoffset: 0; }
.sa-js .sa-relief.is-in :is(.sa-relief-iso, .sa-relief-area, .sa-pt, .sa-relief-live, .sa-relief-open-t) { opacity: 1; }
.sa-js .sa-relief.is-in .sa-relief-open { opacity: .55; }
.sa-pt { cursor: pointer; outline: none; }
.sa-hit { fill: transparent; }
.sa-dot { fill: var(--sa-accent); stroke: var(--sa-paper); stroke-width: 2; transition: r var(--sgh-dur-1, .12s); }
.sa-pt.is-title .sa-dot { fill: var(--sa-paper); stroke: var(--sa-accent); stroke-width: 3; }
.sa-pt.is-live .sa-dot { fill: var(--sa-paper); stroke: var(--sa-accent); stroke-width: 2.5; }
.sa-pt.is-live .sa-dot { animation: sa-pulse 2.4s ease-in-out infinite; }
.sa-pt:is(:hover, :focus-visible) .sa-dot { r: 7; }
.sa-plabel { fill: var(--sa-ink); font: 600 11px/1 var(--wp--preset--font-family--text); }
@keyframes sa-pulse { 50% { stroke-width: 6; stroke-opacity: .45; } }

/* ---------- Saisonliste ---------- */
.sa-seasons { --sa-cols: 5.25rem minmax(0, 1fr) 9.5rem 8.5rem 5.25rem 1.25rem; margin-top: var(--wp--preset--spacing--40); }
.sa-list-head, .sa-s-sum { display: grid; grid-template-columns: var(--sa-cols); column-gap: 1rem; align-items: center; }
.sa-list-head { padding: 0 .75rem .4rem; color: var(--sa-muted); font: 600 var(--wp--preset--font-size--label)/1 var(--wp--preset--font-family--text); letter-spacing: .06em; text-transform: uppercase; }
.sa-list-head span:nth-child(5) { text-align: left; }
.sa-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--sa-line); }
.sa-s { border-bottom: 1px solid var(--sa-line); scroll-margin-top: 4.5rem; }
.sa-s details > summary { list-style: none; cursor: pointer; }
/* Fokus per Tastatur (auch Umschalt+Tab): unter der klebenden Sprungleiste (48 px) halten. Zusammen mit
   scroll-padding-top der Seite (2rem, style.css) stehen fokussierte Zeilen und Links 56 px unter dem Fensterrand. */
.sa :is(summary, a, button) { scroll-margin-top: 1.5rem; }
.sa-s details > summary::-webkit-details-marker { display: none; }
.sa-s-sum { min-height: 3.25rem; padding: .55rem .75rem; border-radius: 6px; transition: background-color var(--sgh-dur-1, .12s); }
.sa-s details > summary:hover, .sa-s details[open] > summary { background: var(--sa-tint); }
.sa-s details > summary:focus-visible { outline: 2px solid var(--sgh-focus, #B35C00); outline-offset: -2px; }
.sa-s:target .sa-s-sum { box-shadow: inset 3px 0 0 var(--sa-accent); }
.sa-s-year { font: 700 var(--wp--preset--font-size--small)/1.2 var(--wp--preset--font-family--heading); }
.sa-s-league { display: flex; flex-wrap: wrap; align-items: center; gap: .2rem .5rem; min-width: 0; }
.sa-s-liga { font-weight: 600; }
.sa-s-sub, .sa-s-note { flex-basis: 100%; color: var(--sa-muted); font-size: var(--wp--preset--font-size--meta); line-height: 1.35; }
.sa-s-rank { display: flex; align-items: center; gap: .5rem; }
.sa-rank { width: 88px; height: 16px; flex: none; overflow: visible; }
.sa-rank-tick { stroke: var(--sa-line); stroke-width: 2; stroke-linecap: round; }
.sa-rank-tick.is-auf { stroke: var(--sa-accent); opacity: .55; }
.sa-rank-tick.is-ab { stroke: var(--sa-strong); stroke-dasharray: 1.5 1.5; }
.sa-rank-dot { fill: var(--sa-accent); stroke: var(--sa-paper); stroke-width: 2; }
.sa-rank-dot.is-live { fill: var(--sa-paper); stroke: var(--sa-accent); stroke-width: 2; }
.sa-s-pl { white-space: nowrap; }
.sa-s-pl b { font: 700 var(--wp--preset--font-size--body)/1 var(--wp--preset--font-family--heading); }
.sa-s-pl small { color: var(--sa-muted); font-size: var(--wp--preset--font-size--meta); }
.sa-star { color: var(--sa-accent); margin-right: .15em; font-size: .9em; }
.sa-s-pts { color: var(--sgh-ink-2, var(--sa-ink)); font-size: var(--wp--preset--font-size--meta); white-space: nowrap; }
.sa-s-cup { display: inline-flex; align-items: center; gap: .3rem; padding: .15rem .45rem .15rem .35rem; border-radius: 999px; border: 1px solid var(--sa-line);
  font: 600 var(--wp--preset--font-size--label)/1.3 var(--wp--preset--font-family--text); color: var(--sa-muted); white-space: nowrap; }
.sa-s-cup.is-sieger { background: var(--sa-accent); border-color: var(--sa-accent); color: var(--sa-paper); }
.sa-s-cup.is-finale, .sa-s-cup.is-laeuft { border-color: var(--sa-accent); color: var(--sa-accent); }
.sa-cup-ico { width: 14px; height: 14px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linejoin: round; stroke-linecap: round; }
.sa-s-chev { width: 1.25rem; height: 1.25rem; justify-self: end; }
.sa-s details > summary .sa-s-chev { background: currentColor; opacity: .55;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 7.5l5 5 5-5' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 7.5l5 5 5-5' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform var(--sgh-dur-2, .18s) var(--sa-ease); }
.sa-s details[open] > summary .sa-s-chev { transform: rotate(180deg); opacity: .9; }

.sa-badge { display: inline-flex; align-items: center; gap: .3rem; padding: .1rem .45rem; border-radius: 4px; font: 700 var(--wp--preset--font-size--label)/1.4 var(--wp--preset--font-family--text); letter-spacing: .02em; }
.sa-badge.is-up { color: var(--sa-accent); background: color-mix(in srgb, var(--sa-accent) 12%, transparent); }
.sa-badge.is-up::before { content: "▲"; font-size: .7em; }
.sa-badge.is-down { color: var(--sa-muted); background: color-mix(in srgb, var(--sa-muted) 12%, transparent); }
.sa-badge.is-down::before { content: "▼"; font-size: .7em; }
.sa-badge.is-live { color: var(--sa-accent); border: 1px solid var(--sa-accent); }
.sa-badge.is-live i { width: .45rem; height: .45rem; border-radius: 50%; background: var(--sa-accent); animation: sa-blink 1.8s ease-in-out infinite; }
@keyframes sa-blink { 50% { opacity: .25; } }
.sa-s.is-live .sa-s-sum { background: linear-gradient(90deg, color-mix(in srgb, var(--sa-accent) 7%, transparent), transparent 70%); }

/* aufgeklappt */
.sa-s-body { display: grid; gap: var(--wp--preset--spacing--50); padding: var(--wp--preset--spacing--40) .75rem var(--wp--preset--spacing--50); }
.sa-s-body.has-cup.has-table { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); align-items: start; }
.sa-s-body.has-cup.has-table > .sa-tab ~ .sa-tab { grid-column: 1; }
.sa-s-body.has-cup.has-table > .sa-cup { grid-column: 2; grid-row: 1 / span 4; position: sticky; top: 4.5rem; }
.sa-js .sa-s details[open] .sa-s-body { animation: sa-open .32s var(--sa-ease); }
@keyframes sa-open { from { opacity: 0; transform: translateY(-4px); } }
/* Noch nicht geladen (season-archive.js holt Tabellen und Pokalweg beim Aufklappen): eine Zeile Platz für den Hinweis,
   der Link für Seiten ohne JavaScript ist dann überflüssig. */
.sa-s-more { margin: 0; }
.sa.is-lazy [data-sa-body] { min-height: calc(var(--wp--preset--spacing--40) + var(--wp--preset--spacing--50) + 1.5em); align-content: start; }
.sa.is-lazy .sa-s-more { display: none; }
.sa-s-wait { margin: 0; color: var(--sa-muted); font-size: var(--wp--preset--font-size--meta); line-height: 1.5; }
.sa-s-retry { padding: 0; border: 0; background: none; font: inherit; font-weight: 600; color: var(--sa-accent); text-decoration: underline; text-underline-offset: .15em; cursor: pointer; }
.sa-s-retry:focus-visible { outline: 2px solid var(--sgh-focus, #B35C00); outline-offset: 2px; border-radius: 2px; }

/* h3 unter den Mannschaften, h4 im Nachwuchs: gleich gestaltet, stärker als die allgemeinen h3-Regeln (style.css). */
.sa .sa-tab-h { display: flex; flex-wrap: wrap; align-items: baseline; gap: .1rem .6rem; margin: 0 0 .5rem; font: 700 var(--wp--preset--font-size--small)/1.3 var(--wp--preset--font-family--heading);
  overflow-wrap: normal; -webkit-hyphens: manual; hyphens: manual; }
.sa-tab-liga { font: 400 var(--wp--preset--font-size--meta)/1.3 var(--wp--preset--font-family--text); color: var(--sa-muted); }
.sa-tab-scroll { overflow-x: auto; }
.sa-table { width: 100%; border-collapse: collapse; font-size: var(--wp--preset--font-size--meta); line-height: 1.3; }
.sa-table th, .sa-table td { padding: .32rem .45rem; border-bottom: 1px solid var(--sa-line); text-align: left; white-space: nowrap; }
.sa-table td:nth-child(2) { white-space: normal; min-width: 9rem; }
.sa-table thead th { color: var(--sa-muted); font-weight: 600; border-bottom-color: var(--sa-strong); }
.sa-table abbr { text-decoration: none; }
.sa-table .num { text-align: right; }
.sa-table tbody tr { box-shadow: inset 3px 0 0 transparent; }
.sa-table tr.is-auf { box-shadow: inset 3px 0 0 var(--sa-accent); }
.sa-table tr.is-ab { box-shadow: inset 3px 0 0 var(--sa-strong); }
.sa-table tr.is-us td { background: color-mix(in srgb, var(--sa-accent) 13%, transparent); font-weight: 700; }
.sa-table tr.is-us td:first-child { border-radius: 4px 0 0 4px; } .sa-table tr.is-us td:last-child { border-radius: 0 4px 4px 0; }
.sa-tab-foot { display: flex; flex-wrap: wrap; gap: .25rem 1rem; margin: .4rem 0 0; color: var(--sa-muted); font-size: var(--wp--preset--font-size--label); }
.sa-key::before { content: ""; display: inline-block; width: 3px; height: .85em; margin-right: .35rem; vertical-align: -1px; background: var(--sa-accent); }
.sa-key.is-ab::before { background: var(--sa-strong); }

/* Variante „eigene Zeile + Link“ */
.sa-own-row { display: grid; grid-template-columns: repeat(5, minmax(0, auto)); justify-content: start; gap: .25rem 1.75rem; margin: .25rem 0 0; padding: .7rem .9rem;
  border-radius: 8px; background: color-mix(in srgb, var(--sa-accent) 10%, transparent); box-shadow: inset 3px 0 0 var(--sa-accent); }
.sa-own-row div { display: flex; flex-direction: column-reverse; }
.sa-own-row dt { color: var(--sa-muted); font-size: var(--wp--preset--font-size--label); }
.sa-own-row dd { margin: 0; font: 700 var(--wp--preset--font-size--body)/1.2 var(--wp--preset--font-family--heading); white-space: nowrap; }
.sa-ext { font-weight: 600; }
@media (max-width: 700px) { .sa-own-row { grid-template-columns: repeat(3, minmax(0, auto)); gap: .5rem 1.25rem; } }

/* ---------- Pokalweg ---------- */
.sa-cup { margin: 0; padding: var(--wp--preset--spacing--40); border: 1px solid var(--sa-line); border-radius: 10px; background: var(--sa-surface); position: relative; overflow: hidden; }
.sa-cup > * { position: relative; z-index: 1; }
.sa-cup-h { display: flex; gap: .5rem; align-items: flex-start; margin: 0 0 .75rem; font-size: var(--wp--preset--font-size--meta); line-height: 1.35; }
.sa-cup-h .sa-cup-ico { width: 18px; height: 18px; margin-top: .05rem; color: var(--sa-accent); }
.sa-cup-h strong { font-family: var(--wp--preset--font-family--heading); font-size: var(--wp--preset--font-size--small); }
.sa-cup-res { display: block; color: var(--sa-muted); }
.sa-cup.is-winner .sa-cup-res, .sa-cup.is-live .sa-cup-res { color: var(--sa-accent); font-weight: 700; }
.sa-cup-track { position: relative; padding: 2.6rem 0 0; }
.sa-cup-canvas { position: absolute; left: 0; top: 0; width: 100%; height: 3.6rem; pointer-events: none; }
.sa-cup-steps { display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; position: relative; }
.sa-cup-steps::before { content: ""; position: absolute; top: 7px; left: calc(50% / var(--n)); right: calc(50% / var(--n)); border-top: 2px dotted var(--sa-line); }
.sa-cup-steps li { display: flex; flex-direction: column; align-items: center; gap: .3rem; text-align: center; min-width: 0; position: relative; }
.sa-cup-node { width: 16px; height: 16px; border-radius: 50%; background: var(--sa-surface); border: 2px solid var(--sa-strong); box-sizing: border-box; transition: transform .3s var(--sa-ease), background-color .3s, border-color .3s; }
.sa-cup-r { font: 700 var(--wp--preset--font-size--label)/1 var(--wp--preset--font-family--heading); color: var(--sa-muted); text-decoration: none; letter-spacing: .03em; }
.sa-cup-score { font-size: var(--wp--preset--font-size--label); font-weight: 700; color: var(--sa-ink); white-space: nowrap; }
.sa-cup-score.is-loss { color: var(--sa-muted); }

.sa-cup-steps li.is-later { opacity: .55; }
.sa-cup-steps li.is-passed .sa-cup-node, .sa-cup-steps li.is-end .sa-cup-node { background: var(--sa-accent); border-color: var(--sa-accent); }
.sa-cup-steps li.is-passed .sa-cup-r, .sa-cup-steps li.is-end .sa-cup-r { color: var(--sa-accent); }
.sa-cup.is-out .sa-cup-steps li.is-end .sa-cup-node, .sa-cup.is-final .sa-cup-steps li.is-end .sa-cup-node { background: var(--sa-surface); border-color: var(--sa-ink); }
.sa-cup.is-out .sa-cup-steps li.is-end .sa-cup-node::after, .sa-cup.is-final .sa-cup-steps li.is-end .sa-cup-node::after {
  content: "×"; display: grid; place-items: center; height: 100%; font: 700 13px/1 var(--wp--preset--font-family--text); color: var(--sa-ink); margin-top: -1px; }
.sa-cup.is-out .sa-cup-steps li.is-end .sa-cup-r, .sa-cup.is-final .sa-cup-steps li.is-end .sa-cup-r { color: var(--sa-ink); }
.sa-cup.is-winner .sa-cup-steps li.is-end .sa-cup-node { transform: scale(1.35); box-shadow: 0 0 0 4px color-mix(in srgb, var(--sa-accent) 25%, transparent); }
.sa-cup.is-reached .sa-cup-steps li.is-end .sa-cup-node { background: var(--sa-surface); border-color: var(--sa-accent); border-width: 3px; }
.sa-cup-steps li.is-next .sa-cup-node { border-color: var(--sa-accent); border-style: dashed; animation: sa-next 1.8s ease-in-out infinite; }
.sa-cup-steps li.is-next .sa-cup-r::after { content: " ?"; }
@keyframes sa-next { 50% { box-shadow: 0 0 0 5px color-mix(in srgb, var(--sa-accent) 22%, transparent); } }
/* Während der Animation: alle Knoten zunächst leer, JS setzt is-hit nacheinander */
.sa-cup-steps li.is-bye .sa-cup-node, .sa-cup.is-anim .sa-cup-steps li.is-bye .sa-cup-node { background: var(--sa-surface); border-style: dashed; border-color: var(--sa-strong); }
.sa-cup-steps li.is-bye .sa-cup-r { color: var(--sa-muted); }
.sa-cup.is-anim .sa-cup-steps li:is(.is-passed, .is-end):not(.is-hit) .sa-cup-node { background: var(--sa-surface); border-color: var(--sa-strong); transform: none; box-shadow: none; }
.sa-cup.is-anim .sa-cup-steps li:is(.is-passed, .is-end):not(.is-hit) .sa-cup-node::after { content: none; }
.sa-cup.is-anim .sa-cup-steps li:is(.is-passed, .is-end):not(.is-hit) :is(.sa-cup-score, .sa-cup-r) { opacity: .35; }
.sa-cup.is-anim .sa-cup-steps li.is-hit .sa-cup-node { animation: sa-pop .38s var(--sa-ease); }
@keyframes sa-pop { 40% { transform: scale(1.5); } }
.sa-cup-list { margin: var(--wp--preset--spacing--40) 0 0; padding: 0; list-style: none; font-size: var(--wp--preset--font-size--meta); }
.sa-cup-m { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr) auto; column-gap: .75rem; padding: .3rem 0; border-top: 1px solid var(--sa-line); }
.sa-cup-m-r { color: var(--sa-muted); }
.sa-cup-m-t { font-weight: 700; text-align: right; white-space: nowrap; }
.sa-cup-m.is-loss .sa-cup-m-t { color: var(--sa-muted); }
.sa-cup-m-t a { color: inherit; text-decoration: none; } .sa-cup-m-t a:hover, .sa-cup-m-t a:focus-visible { text-decoration: underline; }
.sa-cup-m-t a span { font-size: .8em; color: var(--sa-muted); }
.sa-cup-m-d { grid-column: 2 / -1; color: var(--sa-muted); font-size: var(--wp--preset--font-size--label); }
.sa-cup-m-d:empty { display: none; }
.sa-cup-m.is-next { border-top-style: dashed; }
.sa-cup-m.is-next .sa-cup-m-t { color: var(--sa-accent); font-weight: 700; }
.sa-cup-m small, .sa-cup-score small { font-weight: 500; color: var(--sa-muted); }
.sa-cup-src { margin: .6rem 0 0; color: var(--sa-muted); font-size: var(--wp--preset--font-size--label); }

/* ---------- Nachwuchs: Altersklassen als Reiter ---------- */
.sa-tabs { display: flex; gap: .4rem; margin: 0 0 var(--wp--preset--spacing--40); overflow-x: auto; padding-bottom: .25rem; scrollbar-width: thin; }
.sa-tabs button { display: flex; flex-direction: column; align-items: flex-start; gap: .15rem; min-width: 5.5rem; padding: .5rem .8rem; border: 1px solid var(--sa-line); border-radius: 8px;
  background: var(--sa-surface); color: var(--sa-ink); font: inherit; cursor: pointer; text-align: left; }
.sa-tabs button b { font: 700 var(--wp--preset--font-size--small)/1 var(--wp--preset--font-family--heading); }
.sa-tabs button span { font-size: var(--wp--preset--font-size--label); color: var(--sa-muted); }
.sa-tabs button[aria-selected="true"] { border-color: var(--sa-accent); background: var(--sa-tint); box-shadow: inset 0 -3px 0 var(--sa-accent); }
.sa-tabs button[aria-selected="true"] b { color: var(--sa-accent); }
.sa-tabs button:focus-visible { outline: 2px solid var(--sgh-focus, #B35C00); outline-offset: 2px; }
.sa-panel-h { margin: 0; font-size: var(--wp--preset--font-size--headline-s); }
.sa-panel-h small { font: 400 var(--wp--preset--font-size--meta)/1 var(--wp--preset--font-family--text); color: var(--sa-muted); margin-left: .4rem; }
html:not(.sa-js) .sa-panel[hidden] { display: block; }
html:not(.sa-js) .sa-tabs { display: none; }

/* ---------- schmal ---------- */
@media (max-width: 860px) {
  .sa-s-body.has-cup.has-table { grid-template-columns: minmax(0, 1fr); }
  .sa-s-body.has-cup.has-table > .sa-cup { grid-column: auto; grid-row: auto; position: static; }
}
@media (max-width: 700px) {
  .sa-list-head { display: none; }
  .sa-s-sum { grid-template-columns: 4.6rem minmax(0, 1fr) 1.25rem; grid-template-areas: "y l c" ". r c" ". p c"; row-gap: .35rem; column-gap: .6rem; align-items: start; }
  .sa-s-year { grid-area: y; padding-top: .1rem; }
  .sa-s-league { grid-area: l; }
  .sa-s-rank { grid-area: r; flex-wrap: wrap; }
  .sa-s-rank:empty { display: none; }
  .sa-s-pts { grid-area: p; display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .6rem; }
  .sa-s-pts:empty { display: none; }
  .sa-s-cupcell { grid-area: p; justify-self: end; }
  .sa-s-cupcell:empty { display: none; }
  .sa-s-chev { grid-area: c; align-self: center; }
  .sa-rank { width: 72px; }
  .sa-table .sa-opt { display: none; }
  .sa-s-body { padding-inline: 0; }
  .sa-cup { padding: .9rem; }
  .sa-cup-m { grid-template-columns: 6rem minmax(0, 1fr) auto; }
  .sa-section { margin-top: var(--wp--preset--spacing--70); }
}
@media (prefers-reduced-motion: reduce) {
  .sa *, .sa *::before, .sa *::after { animation: none !important; transition: none !important; }
  .sa-js .sa-stream-flow { clip-path: none; }
  .sa-js .sa-relief-line { stroke-dashoffset: 0; }
  .sa-js .sa-relief :is(.sa-relief-iso, .sa-relief-area, .sa-pt, .sa-relief-live, .sa-relief-open-t) { opacity: 1; }
}
@media print {
  .sa-nav, .sa-hero-lines, .sa-tabs { display: none; }
  .sa-panel[hidden] { display: block; }
}
