/* ==========================================================================
   NEUES FANPAGE DESIGN-SYSTEM (UNIFIED STYLESHEET)
   Zentralisierte & vereinheitlichte Styles aller neuen Templates (*_neu.php)
   ========================================================================== */

/* ==========================================================================
   SCHRIFTARTEN & WEB-FONTS
   Hinweis: Die Caveat-Webfont wird seit Phase -1 (Asset-Optimierung) als
   <link> im <head> geladen (bootstrap.inc.php, Relaunch-Zweig), nicht mehr
   per @import -> vermeidet die Render-Blocking-Kette.
   ========================================================================== */

@font-face {
    font-family: 'concert';
    src: url('fonts/concertone-regular-webfont.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

/* ==========================================================================
   1. GLOBALE DESIGN-TOKENS & ALIASE (:root)
   ========================================================================== */
:root {
    /* --- Globale Fanpage Design-Tokens --- */
    --fan-ink: #14213d;
    --fan-muted: #607089;
    --fan-sky: #edf5fb;
    --fan-line: #d9e2ec;
    --fan-accent: #0b66b2;
    --fan-accent-hover: #08589d;
    --fan-accent-dark: #064a84;
    --fan-accent-soft: #d9e9fb;
    --fan-radius: 8px;
    --fan-shadow: 0 8px 22px rgba(20, 33, 61, 0.08);
    --fan-card-shadow: 0 2px 8px rgba(20, 33, 61, 0.04);
    --fan-focus: #f0b429;

    /* --- Statusfarben --- */
    --fan-win: #126132;
    --fan-win-bg: #e5f5ea;
    --fan-draw: #805000;
    --fan-draw-bg: #fff4dc;
    --fan-loss: #9d1d2a;
    --fan-loss-bg: #fde8ea;
    --fan-gold: #b27900;
    --fan-gold-bg: #fff3c4;

    /* --- Abwärtskompatible Aliase für bestehende Template-Präfixe --- */
    --sr-ink: var(--fan-ink); --sr-muted: var(--fan-muted); --sr-sky: var(--fan-sky); --sr-line: var(--fan-line); --sr-accent: var(--fan-accent); --sr-radius: var(--fan-radius); --sr-shadow: var(--fan-shadow);
    --vp-ink: var(--fan-ink); --vp-muted: var(--fan-muted); --vp-sky: var(--fan-sky); --vp-line: var(--fan-line); --vp-accent: var(--fan-accent); --vp-accent-dark: var(--fan-accent-dark); --vp-radius: var(--fan-radius); --vp-shadow: var(--fan-shadow);
    --sp-ink: var(--fan-ink); --sp-muted: var(--fan-muted); --sp-sky: var(--fan-sky); --sp-line: var(--fan-line); --sp-accent: var(--fan-accent); --sp-radius: var(--fan-radius); --sp-shadow: var(--fan-shadow);
    --st-ink: var(--fan-ink); --st-muted: var(--fan-muted); --st-sky: var(--fan-sky); --st-line: var(--fan-line); --st-accent: var(--fan-accent); --st-radius: var(--fan-radius); --st-shadow: var(--fan-shadow);
    --so-ink: var(--fan-ink); --so-muted: var(--fan-muted); --so-sky: var(--fan-sky); --so-line: var(--fan-line); --so-accent: var(--fan-accent); --so-radius: var(--fan-radius); --so-shadow: var(--fan-shadow);
    --ma-ink: var(--fan-ink); --ma-muted: var(--fan-muted); --ma-sky: var(--fan-sky); --ma-line: var(--fan-line); --ma-accent: var(--fan-accent); --ma-radius: var(--fan-radius); --ma-shadow: var(--fan-shadow);
    --tr-ink: var(--fan-ink); --tr-muted: var(--fan-muted); --tr-sky: var(--fan-sky); --tr-line: var(--fan-line); --tr-accent: var(--fan-accent); --tr-radius: var(--fan-radius); --tr-shadow: var(--fan-shadow);
    --stx-ink: var(--fan-ink); --stx-muted: var(--fan-muted); --stx-sky: var(--fan-sky); --stx-line: var(--fan-line); --stx-accent: var(--fan-accent); --stx-radius: var(--fan-radius); --stx-shadow: var(--fan-shadow);
    --sz-ink: var(--fan-ink); --sz-muted: var(--fan-muted); --sz-sky: var(--fan-sky); --sz-line: var(--fan-line); --sz-accent: var(--fan-accent); --sz-radius: var(--fan-radius); --sz-shadow: var(--fan-shadow);
    --sa-ink: var(--fan-ink); --sa-muted: var(--fan-muted); --sa-sky: var(--fan-sky); --sa-line: var(--fan-line); --sa-accent: var(--fan-accent); --sa-radius: var(--fan-radius); --sa-shadow: var(--fan-shadow);
    --sw-ink: var(--fan-ink); --sw-muted: var(--fan-muted); --sw-sky: var(--fan-sky); --sw-line: var(--fan-line); --sw-accent: var(--fan-accent); --sw-red: var(--fan-loss); --sw-gold: var(--fan-gold); --sw-radius: var(--fan-radius); --sw-shadow: var(--fan-shadow);
    --swd-ink: var(--fan-ink); --swd-muted: var(--fan-muted); --swd-sky: var(--fan-sky); --swd-line: var(--fan-line); --swd-accent: var(--fan-accent); --swd-red: var(--fan-loss); --swd-gray: #eef0f2; --swd-radius: var(--fan-radius); --swd-shadow: var(--fan-shadow);
    --swa-ink: var(--fan-ink); --swa-muted: var(--fan-muted); --swa-sky: var(--fan-sky); --swa-line: var(--fan-line); --swa-accent: var(--fan-accent); --swa-radius: var(--fan-radius); --swa-shadow: var(--fan-shadow);
    --pt-ink: var(--fan-ink); --pt-muted: var(--fan-muted); --pt-sky: var(--fan-sky); --pt-line: var(--fan-line); --pt-accent: var(--fan-accent); --pt-radius: var(--fan-radius); --pt-shadow: var(--fan-shadow);
    --ps-ink: var(--fan-ink); --ps-muted: var(--fan-muted); --ps-sky: var(--fan-sky); --ps-line: var(--fan-line); --ps-accent: var(--fan-accent); --ps-accent-hover: var(--fan-accent-hover); --ps-accent-soft: var(--fan-accent-soft); --ps-radius: var(--fan-radius); --ps-shadow: var(--fan-shadow);
    --km-ink: var(--fan-ink); --km-muted: var(--fan-muted); --km-sky: var(--fan-sky); --km-line: var(--fan-line); --km-accent: var(--fan-accent); --km-accent-hover: var(--fan-accent-hover); --km-accent-soft: var(--fan-accent-soft); --km-radius: var(--fan-radius); --km-shadow: var(--fan-shadow);
    --kmd-ink: var(--fan-ink); --kmd-muted: var(--fan-muted); --kmd-sky: var(--fan-sky); --kmd-line: var(--fan-line); --kmd-accent: var(--fan-accent); --kmd-accent-hover: var(--fan-accent-hover); --kmd-accent-soft: var(--fan-accent-soft); --kmd-radius: var(--fan-radius); --kmd-shadow: var(--fan-shadow);
}

/* ==========================================================================
   2. GEMEINSAME BASIS- UND KOMPONENTEN-STYLES
   ========================================================================== */

/* Globale Typografie, Body- & Basis-Stile (übernommen aus bootstrap.css) */
html, body {
    font-size: 1rem;
}

body a {
    font-size: inherit;
    line-height: inherit;
}

a {
    text-decoration: none;
}

/* Navigation: Schriftart, Schriftgröße & Verlinkungsstil (Verdana wie im bisherigen Design) */
.wsmenu,
.wsmenu a,
.wsmenu-list a,
.wsmobileheader,
.wsmobileheader a,
.desktoplogo a {
    font-family: Verdana, Arial, Helvetica, sans-serif;
}

/* Burger-Toggle: padding vom Gruppen-Selektor oben zuruecksetzen,
   sonst kollabiert der Button (span ist absolut positioniert). */
.wsmobileheader #wsnavtoggle {
    padding: 16px 35px 16px 0;
}

.span_abgang {
    border: 1px solid darkred;
    color: darkred;
    display: inline-block;
    font-size: 0.7rem;
    font-weight: bold;
    margin-top: 5px;
    padding: 2px;
}

.span_besonders {
    border: 1px solid #0000ff;
    color: #0000ff;
    display: inline-block;
    font-size: 0.7rem;
    font-weight: bold;
    margin-top: 5px;
    padding: 2px;
}

.span_rueckennummer {
    color: #ffffff;
    font-size: 3.5rem;
    font-weight: bold;
}

/* Bild-Container-Overlays */
.image-container {
    display: block;
    float: left;
    height: 120px;
    position: relative;
    width: 110px;
}

.image-container .after {
    background-color: grey;
    color: black;
    height: 20%;
    left: 5px;
    opacity: 0.8;
    padding: 2px;
    position: absolute;
    top: 98px;
    width: 35%;
}

.image-container .after2 {
    background-color: grey;
    color: white;
    height: 20%;
    left: 67px;
    opacity: 0.8;
    padding: 2px;
    position: absolute;
    top: 98px;
    width: 35%;
}

.image-container-saisonuebersicht {
    display: block;
    float: left;
    height: 130px;
    margin: 2px;
    position: relative;
    width: 110px;
}

.image-container-saisonuebersicht .after {
    background-color: darkblue;
    bottom: -12%;
    color: white;
    font-weight: bold;
    left: 50%;
    opacity: 0.9;
    padding: 5px;
    position: absolute;
    transform: translate(-50%, -50%);
}


/* Spieler-Statusbilder */
img.image_aktiv {
    border: 1px solid blue;
}

img.image_inaktiv {
    border: 1px solid grey;
}

/* Farb- & Hintergrund-Hilfsklassen */
.text-lightblue {
    color: lightblue;
}

.bg-lightblue,
td.bg-lightblue {
    background-color: #f0f8ff;
}

.bg-contrast {
    background-color: #f9f6e7;
}

/* Schriftgrößen-Hilfsklassen */
.text-doublebig {
    font-size: 220%;
}

.text-verybig {
    font-size: 130%;
}

.text-big {
    font-size: 115%;
}

.text-normal {
    font-size: 100%;
}

.text-small {
    font-size: 85%;
}

.text-verysmall {
    font-size: 70%;
}

/* Social & Widget-Klassen */
.fb_iframe_widget {
    display: block;
    float: left;
    margin-top: -4px;
}

/* Mobile Header / Navigation Ausgleich */
@media only screen and (max-width: 991px) {
    body {
        padding-top: 52px;
    }
}

/* Desktop Hintergrund & Layout */
@media only screen and (min-width: 992px) {
    body {
        background-image: url('/pictures/background/hintergrund_logos_grau1.png');
        background-repeat: repeat;
        background-position-y: 70px;
    }

    #wrapper {
        padding-top: 20px;
    }
}

.carousel-control-next,
.carousel-control-prev {
    filter: invert(100%);
}

/* Farben für Spieltag/Tabellen */
td.cell_green { background-color: #b3ffb2; }
td.cell_lightgreen { background-color: #d9ffd9; }
td.cell_red { background-color: #ffcccc; }
td.cell_lightred { background-color: #ffebeb; }
/* Legende der farbig markierten Tabellenplätze */
.st-table-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 1.1rem;
    list-style: none;
    margin: 0.6rem 0 0;
    padding: 0;
}
.st-table-legend li {
    align-items: center;
    color: var(--fan-muted);
    display: flex;
    font-size: 0.82rem;
    gap: 0.4rem;
}
.st-table-legend__swatch {
    border: 1px solid var(--fan-line);
    border-radius: 3px;
    display: inline-block;
    height: 0.85rem;
    width: 0.85rem;
}
.st-table-legend__swatch.cell_green { background-color: #b3ffb2; }
.st-table-legend__swatch.cell_lightgreen { background-color: #d9ffd9; }
.st-table-legend__swatch.cell_red { background-color: #ffcccc; }
.st-table-legend__swatch.cell_lightred { background-color: #ffebeb; }

/* Seiten-Container & Grundgerüst */
main[class*="-page"],
main[class*="_page"] {
    max-width: 1120px;
}
main[class*="-page"],
main[class*="_page"] {
    background: #fff;
    box-sizing: border-box;
    color: var(--fan-ink);
    margin: 0 auto;
    min-height: 80vh;
    padding: 0 1.25rem 2.5rem;
}
@media (max-width: 767.98px) {
    main[class*="-page"],
main[class*="_page"] {
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }
}

/* Breadcrumb-Leiste */
.sr-breadcrumb, .vp-breadcrumb, .sp-breadcrumb, .st-breadcrumb, .so-breadcrumb, .ma-breadcrumb, .sz-breadcrumb, .sw-breadcrumb, .swd-breadcrumb, .swa-breadcrumb, .pt-breadcrumb, .ps-breadcrumb, .km-breadcrumb, .kmd-breadcrumb, .tr-breadcrumb, .stx-breadcrumb, .spa-breadcrumb,
.sa-breadcrumb, .nu-breadcrumb, .nud-breadcrumb, .cnt-breadcrumb, .book-breadcrumb, .book-detail-breadcrumb, .fh-breadcrumb, .fhd-breadcrumb, .ss-breadcrumb, .opponent-breadcrumb, .opponent-detail-breadcrumb,
.sb-breadcrumb, .spc-breadcrumb, .spd-breadcrumb, .fs-breadcrumb, .sm-breadcrumb, .dl-breadcrumb {
    font-size: 0.78rem;
    padding-top: 1.1rem;
    padding-bottom: 0.25rem;
    margin: 0;
}
.sr-breadcrumb .breadcrumb, .vp-breadcrumb .breadcrumb, .sp-breadcrumb .breadcrumb, .st-breadcrumb .breadcrumb, .so-breadcrumb .breadcrumb, .ma-breadcrumb .breadcrumb, .sz-breadcrumb .breadcrumb, .sw-breadcrumb .breadcrumb, .swd-breadcrumb .breadcrumb, .swa-breadcrumb .breadcrumb, .pt-breadcrumb .breadcrumb, .ps-breadcrumb .breadcrumb, .km-breadcrumb .breadcrumb, .kmd-breadcrumb .breadcrumb, .tr-breadcrumb .breadcrumb, .stx-breadcrumb .breadcrumb, .spa-breadcrumb .breadcrumb,
.sa-breadcrumb .breadcrumb, .nu-breadcrumb .breadcrumb, .nud-breadcrumb .breadcrumb, .cnt-breadcrumb .breadcrumb, .book-breadcrumb .breadcrumb, .book-detail-breadcrumb .breadcrumb, .fh-breadcrumb .breadcrumb, .fhd-breadcrumb .breadcrumb, .ss-breadcrumb .breadcrumb, .opponent-breadcrumb .breadcrumb, .opponent-detail-breadcrumb .breadcrumb,
.sb-breadcrumb .breadcrumb, .spc-breadcrumb .breadcrumb, .spd-breadcrumb .breadcrumb, .fs-breadcrumb .breadcrumb, .sm-breadcrumb .breadcrumb, .dl-breadcrumb .breadcrumb {
    background: transparent;
    margin: 0 0 0.5rem 0;
    padding: 0;
}
.sr-breadcrumb .breadcrumb-item, .vp-breadcrumb .breadcrumb-item, .sp-breadcrumb .breadcrumb-item, .st-breadcrumb .breadcrumb-item, .so-breadcrumb .breadcrumb-item, .ma-breadcrumb .breadcrumb-item, .sz-breadcrumb .breadcrumb-item, .sw-breadcrumb .breadcrumb-item, .swd-breadcrumb .breadcrumb-item, .swa-breadcrumb .breadcrumb-item, .pt-breadcrumb .breadcrumb-item, .ps-breadcrumb .breadcrumb-item, .km-breadcrumb .breadcrumb-item, .kmd-breadcrumb .breadcrumb-item, .tr-breadcrumb .breadcrumb-item, .stx-breadcrumb .breadcrumb-item, .spa-breadcrumb .breadcrumb-item,
.sa-breadcrumb .breadcrumb-item, .nu-breadcrumb .breadcrumb-item, .nud-breadcrumb .breadcrumb-item, .cnt-breadcrumb .breadcrumb-item, .book-breadcrumb .breadcrumb-item, .book-detail-breadcrumb .breadcrumb-item, .fh-breadcrumb .breadcrumb-item, .fhd-breadcrumb .breadcrumb-item, .ss-breadcrumb .breadcrumb-item, .opponent-breadcrumb .breadcrumb-item, .opponent-detail-breadcrumb .breadcrumb-item,
.sb-breadcrumb .breadcrumb-item, .spc-breadcrumb .breadcrumb-item, .spd-breadcrumb .breadcrumb-item, .fs-breadcrumb .breadcrumb-item, .sm-breadcrumb .breadcrumb-item, .dl-breadcrumb .breadcrumb-item {
    line-height: 1.4;
}

/* Hero-Banner (Standard-Farbverlauf) */
.sr-hero, .vp-hero, .sp-context, .st-context, .st-hero, .so-hero, .ma-hero, .sz-hero, .sw-hero, .swd-hero, .swa-title, .pt-hero, .ps-hero, .km-hero, .kmd-hero, .tr-hero, .stx-hero {
    background-image: linear-gradient(to top, rgb(33, 143, 195), rgb(117, 184, 254));
    border-radius: var(--fan-radius);
    box-shadow: var(--fan-shadow);
    color: #fff;
    margin: 0.75rem 0 1.25rem;
    overflow: hidden;
    padding: 1.25rem 1.5rem;
}
.sr-hero__type, .vp-hero__type, .sp-context__eyebrow, .st-context__eyebrow, .st-hero__eyebrow, .so-hero__eyebrow, .ma-hero__eyebrow, .sz-hero__eyebrow, .sw-hero__eyebrow, .swd-hero__eyebrow, .pt-hero__eyebrow, .ps-hero__eyebrow, .km-hero__eyebrow, .kmd-hero__eyebrow, .tr-hero__eyebrow, .stx-hero__eyebrow {
    color: rgba(255, 255, 255, 0.9);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}
.sr-content > h1, .vp-content > h1, .st-heading, .sw-hero h1, .swd-hero h1, .pt-hero h1, .ps-hero__title, .km-hero__title, .kmd-hero__title, .sp-context__title, .st-context__title, .so-hero__title, .ma-hero h1, .sz-hero__title, .tr-hero h1, .tr-hero__title, .stx-hero h1, .stx-hero__title {
    font: 1.85rem/1.15 concert, Verdana, sans-serif;
    margin: 0.35rem 0 0;
    text-transform: uppercase;
}
.ps-hero__subtitle, .km-hero__subtitle, .tr-hero__subtitle, .stx-hero__subtitle, .st-hero__text {
    color: rgba(255, 255, 255, 0.95);
    font-size: 0.92rem;
    margin: 0;
}

/* ==========================================================================
   GEMEINSAME KOMPONENTEN (.fp-*)
   Generische Bausteine, die in allen *_neu.php-Templates die bisherigen
   Präfix-Kopien (ps-, km-, sa-, spa-, ...) abloesen. Ein Modul behaelt seine
   Präfix-Klasse nur dort, wo es eine echte Abweichung vom Standard braucht.
   ========================================================================== */

/* --- Buttons (Primaer/Sekundaer/Ghost/klein) ---
   Basierend auf der gemeinsamen Button-Basis von ps/km/kmd/sw/sz/swa. */
.fp-btn {
    align-items: center;
    border: 1px solid transparent;
    border-radius: 6px;
    cursor: pointer;
    display: inline-flex;
    font-size: 0.88rem;
    font-weight: 600;
    gap: 0.4rem;
    height: 38px;
    justify-content: center;
    padding: 0.4rem 0.9rem;
    text-decoration: none !important;
    transition: all 0.15s ease-in-out;
    white-space: nowrap;
}
.fp-btn--primary {
    background: var(--fan-accent);
    border-color: var(--fan-accent);
    color: #fff !important;
}
.fp-btn--primary:hover, .fp-btn--primary:focus-visible {
    background: var(--fan-accent-hover);
    border-color: var(--fan-accent-hover);
    box-shadow: 0 4px 10px rgba(11, 102, 178, 0.2);
    color: #fff !important;
}
.fp-btn--secondary {
    background: var(--fan-sky);
    border-color: var(--fan-line);
    color: var(--fan-ink) !important;
}
.fp-btn--secondary:hover, .fp-btn--secondary:focus-visible {
    background: #e1edf7;
    border-color: #b7cde3;
    color: var(--fan-ink) !important;
}

/* --- Hero-Kopf (Standard-Farbverlauf) --- */
.fp-hero {
    background-image: linear-gradient(to top, rgb(33, 143, 195), rgb(117, 184, 254));
    border-radius: var(--fan-radius);
    box-shadow: var(--fan-shadow);
    color: #fff;
    margin: 0.75rem 0 1.25rem;
    overflow: hidden;
    padding: 1.25rem 1.5rem;
}
.fp-hero__eyebrow {
    color: rgba(255, 255, 255, 0.9);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}
.fp-hero__title {
    font: 1.85rem/1.15 concert, Verdana, sans-serif;
    margin: 0.35rem 0 0;
    text-transform: uppercase;
}
.fp-hero__text {
    color: rgba(255, 255, 255, 0.95);
    font-size: 0.92rem;
    line-height: 1.55;
    margin: 0.45rem 0 0;
    max-width: 48rem;
}
/* Hero mit seitlichem Bild (z. B. Sternstunden) */
.fp-hero--media {
    align-items: stretch;
    display: flex;
    justify-content: space-between;
    min-height: 14rem;
    padding: 0;
}
.fp-hero__copy { align-self: center; max-width: 60%; padding: 1.5rem; }
.fp-hero__image { align-self: stretch; max-width: 42%; min-height: 14rem; object-fit: cover; }
/* Tag-Badge im Hero (z. B. News-Uebersicht) */
/* Meta-Zeile im Hero (z. B. Detail-Seiten) */
@media (max-width: 700px) {
    .fp-hero--media { min-height: 11rem; }
    .fp-hero__copy { max-width: 100%; padding: 1.25rem; }
    .fp-hero__image { display: none; }
}

/* --- Filterkarte --- */
.fp-filter-card {
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: var(--fan-radius);
    box-shadow: var(--fan-card-shadow);
    margin-bottom: 1.5rem;
    padding: 1.25rem 1.5rem;
}
.fp-filter-card__title {
    color: var(--fan-ink);
    font: 1.05rem/1.2 concert, Verdana, sans-serif;
    margin-bottom: 0.8rem;
    text-transform: uppercase;
}

/* --- Ergebnisleiste (Ueberschrift + Trefferzahl) --- */
.fp-results-bar {
    align-items: baseline;
    border-bottom: 2px solid var(--fan-line);
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: space-between;
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
}
.fp-results-bar h2 {
    font: 1.35rem/1.2 concert, Verdana, sans-serif;
    margin: 0;
    text-transform: uppercase;
}
.fp-results-bar span {
    color: var(--fan-muted);
    font-size: 0.86rem;
}
/* Einheitliche Treffer-/Seitenanzeige: links Treffer (sans-serif), rechts Seiten */
.fp-results-bar__count, .fp-results-bar__pages {
    color: var(--fan-muted);
    font: 400 0.86rem/1.4 Verdana, Arial, sans-serif;
}

/* --- Leerer Zustand --- */
.fp-empty {
    background: #fff;
    border: 1px dashed var(--fan-line);
    border-radius: var(--fan-radius);
    color: var(--fan-muted);
    padding: 3rem 1.5rem;
    text-align: center;
}

/* --- Kartenraster (Spaltenzahl per Modifikator) --- */
.fp-grid {
    display: grid;
    gap: 1.25rem;
}
.fp-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fp-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fp-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

/* Raster brechen auf kleinen Screens um */
@media (max-width: 991.98px) {
    .fp-grid--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
    .fp-grid--3, .fp-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
    .fp-grid--2, .fp-grid--3, .fp-grid--4 { grid-template-columns: minmax(0, 1fr); }
}

/* Überschriften in Abschnitten */
.sr-content h2, .sr-section > h2, .vp-content > h2, .vp-prose > h2, .vp-statistics h2, .vp-opponent-links > h2, .sp-section > h2, .st-section > h2, .so-section h2, .ma-section h2, .fh-category-heading, .pt-section h2, .swa-season__title {
    border-bottom: 2px solid var(--fan-line);
    color: var(--fan-ink);
    font: 1.35rem/1.2 concert, Verdana, sans-serif;
    margin: 1.75rem 0 1rem;
    padding-bottom: 0.5rem;
}

/* Karten, Boxen & Panels */
.so-card, .ma-stat, .sz-season, .sw-panel, .swd-panel, .swa-card, .km-item, .kmd-article-card, .kmd-nav-card {
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: var(--fan-radius);
    box-shadow: var(--fan-card-shadow);
}
.sw-panel h2, .swd-panel h2, .sz-season__head {
    background: var(--fan-sky);
    border-left: 4px solid var(--fan-accent);
    color: var(--fan-ink);
    font: 1.05rem/1.2 concert, Verdana, sans-serif;
    margin: 0;
    padding: 0.8rem 1rem;
    text-transform: uppercase;
}

/* Buttons sind jetzt generisch: siehe Abschnitt GEMEINSAME KOMPONENTEN (.fp-btn)
   oben. Die Präfix-Kopien (ps/km/kmd/dl/ss/book/fh/opponent/sb/spc/fs/nu/nud/cnt/kmd/spd)
   wurden durch .fp-btn + .fp-btn--primary/--secondary/--ghost/--sm ersetzt.
   Verbleibende modulare Basis (sw-action, sz-filter-reset, swa-filter__button): */
.sw-action, .sz-filter-reset, .swa-filter__button {
    align-items: center;
    border: 1px solid transparent;
    border-radius: 6px;
    cursor: pointer;
    display: inline-flex;
    font-size: 0.88rem;
    font-weight: 600;
    gap: 0.4rem;
    height: 38px;
    justify-content: center;
    padding: 0.4rem 0.9rem;
    text-decoration: none !important;
    transition: all 0.15s ease-in-out;
    white-space: nowrap;
}

/* Pill-Filter (z. B. Spielplan, Spielzeiten, Spielerwahl-Archiv) */
.sp-filters, .sz-club-filter, .swa-filter__buttons, .swa-ranking__filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-bottom: 1rem;
}
.sp-filters a, .sz-club-filter a, .swa-filter__button, .swa-ranking__filters a {
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: 999px;
    color: var(--fan-accent);
    cursor: pointer;
    display: inline-flex;
    font: 600 0.82rem/1.2 Verdana, Arial, sans-serif;
    padding: 0.38rem 0.75rem;
    text-decoration: none !important;
    transition: all 0.15s ease-in-out;
}
.sp-filters a:hover, .sp-filters a:focus-visible, .sp-filters a.is-active,
.sz-club-filter a:hover, .sz-club-filter a:focus-visible, .sz-club-filter a.is-active,
.swa-filter__button:hover, .swa-filter__button:focus-visible, .swa-filter__button.is-active,
.swa-ranking__filters a:hover, .swa-ranking__filters a:focus-visible, .swa-ranking__filters a.is-active {
    background: var(--fan-accent);
    border-color: var(--fan-accent);
    color: #fff !important;
}

/* Leerstufen (Empty States): generisch, siehe .fp-empty oben. */

/* Paginierungsleisten */
.ps-pagination, .km-pagination, .sp-paging, .sa-pagination, .spa-pagination, .archive-pagination {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: center;
    margin-top: 2rem;
}

/* Fokus-Indikatoren für Barrierefreiheit */
.sr-page a:focus-visible, .vp-page a:focus-visible, .sp-page a:focus-visible, .st-page a:focus-visible, .so-page a:focus-visible, .ma-page a:focus-visible, .sz-page a:focus-visible, .sw-page a:focus-visible, .swd-page a:focus-visible, .swa-page a:focus-visible, .pt-page a:focus-visible, .ps-page a:focus-visible, .km-page a:focus-visible, .kmd-page a:focus-visible, .sa-page a:focus-visible, .spa-page a:focus-visible {
    outline: 3px solid var(--fan-focus);
    outline-offset: 2px;
}

/* ==========================================================================
   3. MODUL: SPIELBERICHT & VORBERICHT (.sr-*, .vp-*)
   ========================================================================== */
.sr-hero__teams, .vp-hero__teams {
    align-items: center;
    display: grid;
    gap: 1.25rem;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    padding: 1.5rem 1.25rem 1.25rem;
}
.sr-team, .vp-team { align-items: center; display: flex; gap: 0.85rem; min-width: 0; }
.sr-team--home, .vp-team--home { justify-content: flex-end; text-align: right; }
.sr-team--away, .vp-team--away { text-align: left; }
.sr-team__crest, .vp-team__crest { aspect-ratio: auto; flex: 0 0 auto; height: 68px; max-width: 82px; object-fit: contain; width: auto !important; }
.sr-team__name, .vp-team__name { color: #fff; font: 1.35rem/1.08 concert, Verdana, sans-serif; overflow-wrap: anywhere; text-transform: uppercase; }
.sr-score { color: #fff; font: 2.2rem/1 concert, Verdana, sans-serif; text-align: center; white-space: nowrap; }
.sr-score__halftime { color: rgba(255, 255, 255, 0.88); display: block; font: 600 0.72rem/1.25 Verdana, Arial, sans-serif; margin-top: 0.3rem; }
.vp-versus { color: #d6e7f7; font: 1.05rem/1 concert, Verdana, sans-serif; text-transform: uppercase; }
.sr-hero__facts, .vp-hero__facts { border-top: 1px solid rgba(255, 255, 255, 0.3); display: flex; flex-wrap: wrap; gap: 0.35rem 1.25rem; justify-content: center; padding: 0.8rem 1rem; }
.sr-jumpnav, .vp-jumpnav { border-bottom: 1px solid var(--fan-line); border-top: 1px solid var(--fan-line); display: flex; gap: 0.25rem; margin: 1.75rem 0; overflow-x: auto; padding: 0.5rem 0; scrollbar-width: thin; }
.sr-jumpnav a, .vp-jumpnav a { align-items: center; color: var(--fan-accent); display: inline-flex; font-size: 0.8rem; font-weight: 700; min-height: 36px; padding: 0.25rem 0.7rem; text-transform: uppercase; white-space: nowrap; }
.sr-jumpnav a:hover, .sr-jumpnav a:focus-visible, .vp-jumpnav a:hover, .vp-jumpnav a:focus-visible { background: var(--fan-sky); text-decoration: none; }
.sr-article, .vp-prose { color: #26384f; font-size: 1.05rem; line-height: 1.7; overflow-wrap: break-word; }
.sr-article p, .vp-prose p { margin-bottom: 1.1rem; }
.sr-article img, .vp-prose img { border-radius: var(--fan-radius); height: auto; max-width: 100%; }
.vp-author { color: var(--fan-muted); font-size: 0.9rem; margin: 0.4rem 0 1.2rem; }
.sr-events { display: grid; gap: 0.75rem; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); }
.sr-event { border: 1px solid var(--fan-line); border-radius: var(--fan-radius); min-width: 0; padding: 1rem; }
.sr-event__title { color: var(--fan-muted); font-size: 0.78rem; font-weight: 800; margin: 0 0 0.5rem; text-transform: uppercase; }
.sr-event__body { color: var(--fan-ink); font-size: 0.94rem; line-height: 1.55; overflow-wrap: anywhere; }
.sr-squads { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sr-squad { border: 1px solid var(--fan-line); border-radius: var(--fan-radius); min-width: 0; overflow: hidden; }
.sr-squad__team { align-items: center; background: var(--fan-sky); color: var(--fan-ink); display: flex; font-size: 1rem; font-weight: 800; justify-content: space-between; line-height: 1.25; margin: 0; padding: 0.75rem 0.9rem; }
.sr-squad__team > span { min-width: 0; overflow-wrap: anywhere; }
.sr-squad__crest { flex: 0 0 auto; height: 2rem; object-fit: contain; width: auto; }
.sr-squad__players { font-size: 0.9rem; line-height: 1.55; padding: 0.9rem; }
.sr-quote { border-left: 3px solid var(--fan-accent); color: #26384f; line-height: 1.65; margin: 0 0 1rem; padding-left: 1rem; }
.sr-quote--plain { border-left: 0; padding-left: 0; }
.sr-statements__subheading { border-bottom: 1px solid var(--fan-line); color: var(--fan-ink); font-size: 1rem; font-weight: 700; line-height: 1.3; margin: 1rem 0 .55rem; padding-bottom: .3rem; }
.sr-gallery { display: grid; gap: 0.75rem; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.sr-gallery__item { align-items: center; background: #f7fafc; border-radius: var(--fan-radius); display: flex; height: 90px; justify-content: center; overflow: hidden; }
.sr-gallery__item img { height: 100%; object-fit: contain; transition: transform 0.2s ease; width: 100%; }
.sr-gallery__item:hover img { transform: scale(1.03); }
.sr-forum, .vp-forum-link { align-items: center; background: var(--fan-sky); border-radius: var(--fan-radius); display: flex; gap: 1rem; justify-content: space-between; margin-top: 2rem; padding: 1rem; }

/* Vorbericht: Quervergleiche, Form-Chips & Bilanz */
.vp-comparison { background: #fff; border: 1px solid var(--fan-line); border-radius: var(--fan-radius); margin: 1rem 0 2rem; overflow: hidden; }
.vp-comparison__teams { align-items: center; background: var(--fan-sky); color: var(--fan-ink); display: grid; font: 1.05rem/1.2 concert, Verdana, sans-serif; gap: 0.75rem; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); padding: 0.85rem 1rem; text-transform: uppercase; }
.vp-comparison__row { align-items: center; border-bottom: 1px solid var(--fan-line); display: grid; gap: 0.75rem; grid-template-columns: minmax(0, 1fr) 142px minmax(0, 1fr); min-height: 48px; padding: 0.55rem 0; }
.vp-comparison__value { color: var(--fan-ink); font-size: 0.94rem; font-weight: 700; line-height: 1.4; overflow-wrap: anywhere; }
.vp-comparison__value--home { text-align: right; }
.vp-comparison__value--away { text-align: left; }
.vp-comparison__label { color: var(--fan-muted); font-size: 0.73rem; font-weight: 800; text-align: center; text-transform: uppercase; }
.vp-form-chip { align-items: center; border-radius: 3px; display: inline-flex; font-size: 0.76rem; font-weight: 800; min-height: 28px; padding: 0.2rem 0.4rem; text-decoration: none !important; }
.vp-form-chip--win, .vp-result-label--win { background: var(--fan-win-bg); color: var(--fan-win); }
.vp-form-chip--draw, .vp-result-label--draw { background: var(--fan-draw-bg); color: var(--fan-draw); }
.vp-form-chip--loss, .vp-result-label--loss { background: var(--fan-loss-bg); color: var(--fan-loss); }
.vp-recent-matches { display: grid; gap: 0.75rem; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 1rem 0 2rem; }
.vp-recent-match { background: #fff; border: 1px solid var(--fan-line); border-left: 4px solid var(--fan-muted); border-radius: var(--fan-radius); display: grid; gap: 0.65rem; min-width: 0; padding: 1rem; }
.vp-recent-match--win { border-left-color: #16803c; }
.vp-recent-match--draw { border-left-color: #a66a00; }
.vp-recent-match--loss { border-left-color: #bd2737; }
.vp-page .vp-recent-match__meta { color: var(--fan-muted);    }
.vp-page .vp-recent-match__teams { align-items: center;        }
.vp-page .vp-recent-match__teams a { color: var(--fan-ink);  }
.vp-page .vp-recent-match__teams a:hover, .vp-page .vp-recent-match__teams a:focus-visible { color: var(--fan-accent); }
.vp-page .vp-recent-match__footer {  border-top: 1px solid var(--fan-line);      }
.vp-page .vp-recent-match__score { color: var(--fan-ink); font: 1.35rem/1 concert, Verdana, sans-serif; }
.vp-page .vp-recent-match__detail { color: var(--fan-muted);    }
@media (max-width: 767.98px) {
    .vp-page .vp-recent-match { min-height: 0; }
}
.vp-balance { background: #fff; border: 1px solid var(--fan-line); border-radius: var(--fan-radius); margin: 2.25rem 0; overflow: hidden; }
.vp-balance__content { display: grid; gap: 1rem 1.5rem; grid-template-columns: minmax(0, 1fr) auto; padding: 1rem; }
.vp-balance__chart { background: #f7fafc; border: 1px solid var(--fan-line); border-radius: 5px; display: flex; height: 28px; overflow: hidden; }
.vp-balance__segment { align-items: center; color: #fff; display: flex; font-size: 0.78rem; font-weight: 800; justify-content: center; min-width: 0; }
.vp-balance__segment--win { background: #16803c; }
.vp-balance__segment--draw { background: #a66a00; }
.vp-balance__segment--loss { background: #bd2737; }
.vp-balance__values { display: grid; gap: 0.6rem; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 1rem 0 0; }
.vp-balance__value { border-left: 2px solid var(--fan-line); min-width: 0; padding-left: 0.6rem; }
.vp-balance__value--win { border-color: #16803c; }
.vp-balance__value--draw { border-color: #a66a00; }
.vp-balance__value--loss { border-color: #bd2737; }
.vp-balance__badge { align-items: center; border: 2px solid var(--fan-line); border-radius: 5px; display: flex; flex-direction: column; font-weight: 800; justify-content: center; min-height: 105px; min-width: 145px; padding: 0.75rem; text-align: center; text-transform: uppercase; }
.vp-balance__badge--positive { background: var(--fan-win-bg); border-color: #16803c; color: var(--fan-win); }
.vp-balance__badge--neutral { background: var(--fan-draw-bg); border-color: #a66a00; color: var(--fan-draw); }
.vp-balance__badge--negative { background: var(--fan-loss-bg); border-color: #bd2737; color: var(--fan-loss); }

/* ==========================================================================
   4. MODUL: SPIELPLAN & TABELLE/SPIELTAG (.sp-*, .st-*)
   ========================================================================== */
.sp-list, .st-matchday { display: grid; gap: 0.65rem; }
.sp-match, .st-matchday__row {
    align-items: center;
    border: 1px solid var(--fan-line);
    border-radius: var(--fan-radius);
    display: grid;
    gap: 0.75rem;
    min-height: 64px;
    padding: 0.8rem 0.9rem;
}
.sp-match { grid-template-columns: 390px minmax(0, 1fr) auto 32px; }
.st-matchday__row { grid-template-columns: 220px minmax(0, 1fr) 92px; }
.sp-match--cup { background: #f7fbff; border-color: #c9dfef; }
.sp-match--postponed, .st-matchday__row--postponed { border-left: 4px solid #c98221; }
.st-matchday__row--cfc { background: #eaf4fb; border-left: 4px solid var(--fan-accent); }
.sp-match__status, .st-matchday__status { background: #fff3e0; border: 1px solid #e0b66f; border-radius: 4px; color: #805000; display: inline-block; font-size: 0.7rem; font-weight: 700; margin-left: 0.25rem; padding: 0.12rem 0.35rem; }
.sp-match__meta, .st-matchday__date { color: var(--fan-muted); font-size: 0.8rem; line-height: 1.4; }
.sp-match__category { display: inline-flex; font-size: .95rem; margin-right: .2rem; vertical-align: middle; }
.sp-match__category--stars { color: #0b66b2; }
.sp-match__category--special { color: #198754; }
.sp-match__category--disappointment { color: #dc3545; }
.sp-match__category--special,
.sp-match__category--disappointment { display: none; }
.sp-match__fixture, .st-matchday__match { color: var(--fan-ink); font-size: 0.98rem; font-weight: 500; overflow-wrap: anywhere; }
.sp-match__result, .st-matchday__result { font-size: 1.1rem; font-weight: 850; text-align: right; white-space: nowrap; }
.sp-match__result--win { color: var(--fan-win); }
.sp-match__result--draw { color: var(--fan-draw); }
.sp-match__result--loss { color: var(--fan-loss); }
.sp-match__gallery { align-items: center; color: var(--fan-accent); display: flex; font-size: 1rem; grid-column: 4; justify-content: center; }

/* Tabellen & SVG-Verlaufscharts */
.st-table-wrap { border: 1px solid var(--fan-line); border-radius: var(--fan-radius); overflow-x: auto; }
.st-table-wrap table { margin: 0; min-width: 690px; }
.st-table-wrap th { background: var(--fan-sky); color: var(--fan-ink); font-size: 0.8rem; }
.st-table-wrap tr.st-cfc-row td { font-weight: 800; }
.st-chart, .vp-standings-chart, .stx-chart { background: #fff; border: 1px solid var(--fan-line); border-radius: var(--fan-radius); overflow: hidden; }
.st-chart__header, .vp-standings-chart__header { align-items: center; background: var(--fan-sky); display: flex; flex-wrap: wrap; gap: 0.75rem; justify-content: space-between; padding: 1rem; }
.st-chart__viewport, .vp-standings-chart__viewport { padding: 1rem; position: relative; }
.st-chart__viewport svg { display: block; height: clamp(220px, 30vw, 320px); width: 100%; }
.st-chart__tooltip, .vp-standings-chart__tooltip { background: var(--fan-ink); border-radius: 4px; box-shadow: var(--fan-shadow); color: #fff; display: none; font-size: 0.78rem; line-height: 1.35; padding: 0.45rem 0.6rem; pointer-events: none; position: absolute; transform: translate(-50%, -115%); z-index: 2; }
.st-chart__tooltip.is-visible, .vp-standings-chart__tooltip.is-visible { display: block; }
.st-chart__zones, .vp-standings-chart__zones { border-top: 1px solid var(--fan-line); color: var(--fan-muted); display: flex; flex-wrap: wrap; font-size: 0.75rem; gap: 0.45rem 1rem; padding: 0.75rem 1rem; }

/* ==========================================================================
   5. MODUL: SAISONÜBERSICHT & SPIELZEITEN (.so-*, .sz-*)
   ========================================================================== */
.so-links, .sz-links { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.so-links a, .sz-links a { border: 1px solid var(--fan-line); border-radius: 4px; color: var(--fan-accent); font-size: 0.88rem; padding: 0.45rem 0.7rem; text-decoration: none !important; transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease; }
.so-links a:hover, .so-links a:focus-visible, .sz-links a:hover, .sz-links a:focus-visible { background: var(--fan-sky); border-color: var(--fan-accent); color: var(--fan-accent-hover); }
.so-news--ticker { background: var(--fan-sky); line-height: 1.7; padding: 0.2rem 0.75rem; list-style: none; margin: 0; }
.so-news--ticker li { display: inline; padding: 0; }
.so-news--ticker li::after { color: var(--fan-accent); content: ' +++ '; font-weight: 400; }
.so-news--ticker li:last-child::after { content: ''; }
.so-people, .so-gallery { display: flex; flex-wrap: wrap; gap: 0.85rem; }
.so-person { color: var(--fan-ink); display: flex; flex-direction: column; font-size: 0.8rem; max-width: 120px; text-align: center; text-decoration: none !important; }
.so-person img, .so-player-image { border: 0 !important; border-radius: 12px !important; clip-path: inset(0 round 12px); display: block; height: 100px; max-width: 100%; object-fit: contain; overflow: hidden; width: auto; }
.so-match-list { display: grid; gap: 0.55rem; }
.so-vote { align-items: flex-start; background: var(--fan-sky) !important; border-radius: var(--fan-radius); display: flex; gap: 1rem; padding: 1rem; }

/* Spielzeiten-Archivliste (.sz-*) */
.sz-club-filter {
    align-items: center;
    background: var(--fan-sky);
    border: 1px solid var(--fan-line);
    border-left: 4px solid var(--fan-accent);
    border-radius: var(--fan-radius);
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin: 0 0 1rem;
    padding: 0.75rem 1rem;
}
.sz-club-filter > span {
    color: var(--fan-muted);
    font-size: 0.8rem;
    font-weight: 800;
    margin-right: 0.35rem;
    text-transform: uppercase;
}
.sz-filter-reset {
    border: 1px solid var(--fan-line);
    border-radius: 4px;
    color: var(--fan-accent);
    display: block;
    font-size: 0.82rem;
    font-weight: 700;
    margin: -0.35rem 0 1.25rem auto;
    padding: 0.4rem 0.8rem;
    text-decoration: none !important;
    width: max-content;
}
.sz-filter-reset:hover, .sz-filter-reset:focus-visible {
    background: var(--fan-accent);
    border-color: var(--fan-accent);
    color: #fff !important;
}

/* Schnellsprung-Akkordeon */
.sz-season-accordion {
    border: 1px solid var(--fan-line);
    border-radius: var(--fan-radius);
    box-shadow: var(--fan-card-shadow);
    margin-bottom: 1.5rem;
    overflow: hidden;
}
.sz-season-accordion .accordion-button {
    background: #fff;
    color: var(--fan-ink);
    font-size: 0.95rem;
    font-weight: 800;
    padding: 0.85rem 1.15rem;
}
.sz-season-accordion .accordion-button:not(.collapsed) {
    background: var(--fan-sky);
    box-shadow: none;
    color: var(--fan-ink);
}
.sz-season-accordion .accordion-body {
    padding: 1rem 1.15rem;
}

/* Schnellsprung-Inhalt */
.sz-quick-nav {
    color: var(--fan-muted);
    font-size: 0.78rem;
    margin: 0;
    padding: 0.25rem 0;
}
.sz-quick-nav__label {
    display: block;
    font-weight: 800;
    margin-bottom: 0.5rem;
    text-transform: uppercase;
}
.sz-quick-nav__row {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 0.4rem;
    margin-bottom: 0.4rem;
}
.sz-quick-nav__level {
    color: var(--fan-ink);
    font-weight: 800;
    margin-right: 0.35rem;
    min-width: 65px;
}
.sz-quick-nav__row a {
    color: var(--fan-accent);
    text-decoration: none;
}
.sz-quick-nav__row a:hover, .sz-quick-nav__row a:focus-visible {
    text-decoration: underline;
}
.sz-quick-nav__separator {
    color: var(--fan-muted);
    margin: 0 0.15rem;
}

/* Saisonkarten */
.sz-list {
    display: grid;
    gap: 1rem;
}
.sz-season {
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: var(--fan-radius);
    box-shadow: var(--fan-card-shadow);
    overflow: hidden;
    scroll-margin-top: 80px;
}
.sz-season__head {
    align-items: center;
    background: var(--fan-sky);
    border-bottom: 1px solid var(--fan-line);
    color: var(--fan-ink);
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0.85rem 1.15rem;
}
.sz-season__head strong {
    font: 1.25rem/1.2 concert, Verdana, sans-serif;
}
.sz-season__level {
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: 999px;
    color: var(--fan-accent);
    font-size: 0.76rem;
    font-weight: 800;
    margin-left: 0.35rem;
    padding: 0.15rem 0.55rem;
    text-transform: uppercase;
}
.sz-season__team {
    color: var(--fan-muted);
    font-size: 0.88rem;
    margin-left: 0.35rem;
}
.sz-season__icons {
    align-items: center;
    display: flex;
    gap: 0.65rem;
    margin-left: auto;
}
.sz-season__champion, .sz-season__trophy {
    color: var(--fan-gold);
    font-size: 1.15rem;
}
.sz-season__champion:hover, .sz-season__trophy:hover {
    color: #8a6500;
}
.sz-season__promotion {
    color: var(--fan-win);
    font-size: 1.1rem;
}
.sz-season__relegation {
    color: var(--fan-loss);
    font-size: 1.1rem;
}
.sz-season__international {
    color: var(--fan-accent);
    font-size: 1.1rem;
}
.sz-season__body {
    padding: 1.15rem;
}
.sz-season__headline {
    color: #9d1d2a;
    font-size: 0.95rem;
    font-style: italic;
    margin-bottom: 0.85rem;
}

/* Saisonerfolge (Liga & Pokal) */
.sz-achievements {
    align-items: center;
    background: var(--fan-sky);
    border: 1px solid var(--fan-line);
    border-left: 3px solid var(--fan-accent);
    border-radius: 6px;
    display: flex;
    font-size: 0.88rem;
    gap: 1rem;
    justify-content: space-between;
    margin-bottom: 0.85rem;
    padding: 0.6rem 0.85rem;
}
.sz-achievements__info {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}
.sz-achievements__league,
.sz-achievements__cup {
    display: block;
    margin: 0;
}
.sz-team-photo {
    display: block;
    flex-shrink: 0;
    line-height: normal;
    margin: 0;
    text-align: center;
    transition: opacity 0.18s ease;
}
.sz-team-photo:hover, .sz-team-photo:focus-visible {
    opacity: 0.85;
}
.sz-team-photo img {
    border: 1px solid var(--fan-line);
    border-radius: 4px;
    display: block;
    height: 65px;
    object-fit: contain;
    width: auto;
}

/* ==========================================================================
   6. MODUL: MANNSCHAFT & TRANSFERS (.ma-*, .tr-*)
   ========================================================================== */
.ma-team-photo {
    margin-bottom: 1.5rem;
}
.ma-team-photo img {
    border: 1px solid var(--fan-line);
    border-radius: var(--fan-radius);
    box-shadow: var(--fan-card-shadow);
    display: block;
    max-height: 480px;
    object-fit: contain;
    width: 100%;
}
.ma-photo-caption {
    margin-top: 0.5rem;
}
.ma-summary {
    display: grid;
    gap: 0.75rem;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    margin-bottom: 2rem;
}
.ma-stat {
    align-items: center;
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: var(--fan-radius);
    box-shadow: var(--fan-card-shadow);
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0.85rem 0.5rem;
    text-align: center;
}
.ma-stat__icon {
    align-items: center;
    display: flex;
    height: 24px;
    justify-content: center;
    margin-bottom: 0.35rem;
}
.ma-stat__icon img {
    height: 20px;
    max-width: 28px;
    object-fit: contain;
    vertical-align: middle;
}
.ma-stat__icon i {
    color: var(--fan-accent);
    font-size: 1.15rem;
}
.ma-stat__value {
    color: var(--fan-ink);
    display: block;
    font: 1.45rem/1 concert, Verdana, sans-serif;
}
.ma-stat__label {
    color: var(--fan-muted);
    display: block;
    font-size: 0.75rem;
    font-weight: 500;
    margin-top: 0.35rem;
}

.ma-section {
    margin-bottom: 2rem;
}
.ma-section h2 {
    background: var(--fan-sky);
    border-left: 4px solid var(--fan-accent);
    border-radius: 0 4px 4px 0;
    color: var(--fan-ink);
    font: 1.2rem concert, Verdana, sans-serif;
    margin-bottom: 1rem;
    padding: 0.6rem 1rem;
}

.ma-players {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.ma-player {
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: var(--fan-radius);
    box-shadow: var(--fan-card-shadow);
    display: grid;
    gap: 0.85rem;
    grid-template-columns: 85px minmax(0, 1fr);
    padding: 0.85rem;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.ma-player:hover {
    box-shadow: 0 4px 12px rgba(20, 33, 61, 0.1);
    transform: translateY(-2px);
}
.ma-player__photo {
    display: block;
}
.ma-player__photo img {
    border: 1px solid var(--fan-line);
    border-radius: 6px;
    display: block;
    height: 105px;
    object-fit: cover;
    width: 100%;
}
.ma-player__info {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-width: 0;
}
.ma-player__top {
    align-items: flex-start;
    display: flex;
    gap: 0.4rem;
    justify-content: space-between;
}
.ma-player__name-wrap {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    min-width: 0;
}
.ma-player__name {
    color: var(--fan-ink);
    font-size: 0.95rem;
    font-weight: 700;
    text-decoration: none;
}
.ma-player__name:hover {
    color: var(--fan-accent);
    text-decoration: underline;
}
.ma-player__number {
    background: var(--fan-sky);
    border: 1px solid var(--fan-line);
    border-radius: 4px;
    color: var(--fan-ink);
    font-family: concert, Verdana, sans-serif;
    font-size: 0.85rem;
    font-weight: 700;
    padding: 0.15rem 0.45rem;
    white-space: nowrap;
}
.ma-player__badge-new {
    background: #e6f4ea;
    border: 1px solid #126132;
    border-radius: 4px;
    color: #126132;
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.1rem 0.4rem;
    white-space: nowrap;
}
.ma-player__meta {
    color: var(--fan-muted);
    font-size: 0.78rem;
    margin-top: 0.25rem;
}
.ma-player__contract {
    color: var(--fan-muted);
    font-size: 0.75rem;
    margin-top: 0.15rem;
}
.ma-player__icons {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.4rem;
}
.ma-flag {
    border-radius: 2px;
    height: 14px;
    object-fit: contain;
    vertical-align: middle;
    width: auto;
}
.ma-icon {
    height: 18px;
    object-fit: contain;
    vertical-align: middle;
    width: auto;
}

.ma-season-nav {
    display: flex;
    justify-content: space-between;
    margin: 2rem 0;
}
.ma-season-nav a {
    align-items: center;
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: var(--fan-radius);
    color: var(--fan-ink);
    display: inline-flex;
    font-size: 0.9rem;
    font-weight: 600;
    gap: 0.4rem;
    padding: 0.5rem 1rem;
    text-decoration: none;
    transition: background 0.15s ease, border-color 0.15s ease;
}
.ma-season-nav a:hover {
    background: var(--fan-sky);
    border-color: var(--fan-accent);
    color: var(--fan-accent);
}

/* Transfers Neu (.tr-*) */
.tr-page {
    padding-bottom: 2.5rem;
}
.tr-hero {
    margin-bottom: 1.25rem;
}
.tr-grid {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: 2rem;
}
.tr-column {
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: var(--fan-radius);
    box-shadow: var(--fan-card-shadow);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.tr-column--in {
    border-top: 4px solid var(--fan-win);
}
.tr-column--out {
    border-top: 4px solid var(--fan-loss);
}
.tr-column__head {
    align-items: center;
    background: var(--fan-sky);
    border-bottom: 1px solid var(--fan-line);
    display: flex;
    justify-content: space-between;
    padding: 0.85rem 1.15rem;
}
.tr-column__head h2 {
    color: var(--fan-ink);
    font: 1.25rem concert, Verdana, sans-serif;
    margin: 0;
}
.tr-column--in .tr-column__head h2 {
    color: var(--fan-win);
}
.tr-column--out .tr-column__head h2 {
    color: var(--fan-loss);
}
.tr-column__count {
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: 999px;
    color: var(--fan-muted);
    font-size: 0.8rem;
    font-weight: 700;
    padding: 0.15rem 0.65rem;
}

.tr-list {
    display: flex;
    flex-direction: column;
    padding: 0.5rem 0;
}
.tr-item {
    align-items: center;
    border-bottom: 1px solid var(--fan-line);
    display: grid;
    gap: 0.85rem;
    grid-template-columns: 75px minmax(0, 1fr);
    padding: 0.85rem 1.15rem;
    transition: background 0.15s ease;
}
.tr-item:last-child {
    border-bottom: 0;
}
.tr-item:hover {
    background: var(--fan-sky);
}
.tr-item__photo {
    display: block;
}
.tr-item__photo img {
    border: 1px solid var(--fan-line);
    border-radius: 6px;
    display: block;
    height: 85px;
    object-fit: cover;
    width: 100%;
}
.tr-item__photo img.is-inaktiv {
    opacity: 0.75;
}
.tr-item__info {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}
.tr-item__top {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}
.tr-item__name {
    color: var(--fan-ink);
    font-size: 0.95rem;
    font-weight: 700;
    text-decoration: none;
}
.tr-item__name:hover {
    color: var(--fan-accent);
    text-decoration: underline;
}
.tr-item__flags {
    align-items: center;
    display: inline-flex;
    gap: 0.25rem;
}
.tr-flag {
    border-radius: 2px;
    height: 14px;
    object-fit: contain;
    width: auto;
}
.tr-item__meta {
    color: var(--fan-muted);
    font-size: 0.8rem;
}
.tr-item__meta strong {
    color: var(--fan-ink);
}
.tr-item__date {
    color: var(--fan-muted);
    font-size: 0.75rem;
}

/* News-Sektionen auf der Transferseite */
.tr-news-section {
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: var(--fan-radius);
    box-shadow: var(--fan-card-shadow);
    margin-bottom: 1.5rem;
    padding: 1.25rem;
}
.tr-news-header {
    align-items: center;
    border-bottom: 2px solid var(--fan-line);
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: space-between;
    margin-bottom: 1rem;
    padding-bottom: 0.65rem;
}
.tr-news-header h2 {
    color: var(--fan-ink);
    font: 1.2rem concert, Verdana, sans-serif;
    margin: 0;
}
.tr-news-list {
    display: flex;
    flex-direction: column;
}
.tr-news-item {
    align-items: center;
    border-bottom: 1px solid var(--fan-line);
    display: grid;
    gap: 1rem;
    grid-template-columns: 100px minmax(0, 1fr);
    padding: 0.65rem 0;
}
.tr-news-item:last-child {
    border-bottom: 0;
}
.tr-news-item__date {
    color: var(--fan-muted);
    font-size: 0.82rem;
}
.tr-news-item__title {
    color: var(--fan-ink);
    font-size: 0.92rem;
    font-weight: 600;
    text-decoration: none;
}
.tr-news-item__title:hover {
    color: var(--fan-accent);
    text-decoration: underline;
}

.tr-season-nav {
    display: flex;
    justify-content: space-between;
    margin: 2rem 0 1rem;
}
.tr-season-nav a {
    align-items: center;
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: var(--fan-radius);
    color: var(--fan-ink);
    display: inline-flex;
    font-size: 0.9rem;
    font-weight: 600;
    gap: 0.4rem;
    padding: 0.5rem 1rem;
    text-decoration: none;
    transition: background 0.15s ease, border-color 0.15s ease;
}
.tr-season-nav a:hover {
    background: var(--fan-sky);
    border-color: var(--fan-accent);
    color: var(--fan-accent);
}

.tr-empty {
    color: var(--fan-muted);
    font-size: 0.88rem;
    font-style: italic;
    padding: 1.5rem 1.15rem;
    text-align: center;
}

/* Wrapper-spezifische Hilfsstile für Legacy-Wrappers (Transfer, Spielerarchiv, Statistik) */
#wrapper > .row > .col-lg-6 {
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: var(--fan-radius);
    box-shadow: var(--fan-card-shadow);
    margin-bottom: 1.25rem;
    padding: 1rem !important;
}
#wrapper > .row > .col-lg-6 h2 {
    background: var(--fan-sky);
    border-bottom: 0;
    border-left: 4px solid var(--fan-accent);
    margin: -1rem -1rem 1rem;
    padding: 0.85rem 1rem;
}
#wrapper > .row > .col-lg-6 > .row > div[class*="col-3"] img {
    border: 1px solid var(--fan-line);
    border-radius: 6px;
    height: 100px !important;
    max-width: 100%;
    object-fit: contain;
    width: auto !important;
}
#wrapper > .row > .col-lg-6 > .row > div[class*="col-8"] {
    background: #f8fbfe !important;
    border: 1px solid var(--fan-line);
    border-radius: 6px;
    margin: 0.45rem 0;
    padding: 0.75rem !important;
}
#wrapper > .row > .col-lg-6:nth-of-type(3) { border-top: 4px solid #16803c; }
#wrapper > .row > .col-lg-6:nth-of-type(4) { border-top: 4px solid #bd2737; }
#wrapper > .row > .col-lg-6:nth-of-type(3) h2 { border-left-color: #16803c; }
#wrapper > .row > .col-lg-6:nth-of-type(4) h2 { border-left-color: #bd2737; }
#wrapper .col-lg-2 + .col-lg-10 {
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: 6px;
    margin-bottom: 0.45rem;
    padding: 0.7rem 0.85rem;
}
#wrapper .col-lg-2 + .col-lg-10 a { font-size: 0.95rem; }

/* ==========================================================================
   7. MODUL: SPIELERARCHIV & PORTRÄTS (.sa-*, .pt-*)
   ========================================================================== */

/* --- Spielerarchiv Hauptseite (.sa-*) --- */
.sa-page {
    background: #fff;
    box-sizing: border-box;
    color: var(--fan-ink);
    margin: 0 auto;
    max-width: 1200px;
    min-height: 80vh;
    padding: 0 1rem 2.5rem;
}
.sa-breadcrumb { font-size: 0.78rem; padding-top: 1rem; }
.sa-breadcrumb .breadcrumb { background: transparent; margin-bottom: 0.5rem; padding: 0; }

.sa-filter-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-bottom: 1.1rem;
}
.sa-filter-btn {
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: 999px;
    color: var(--fan-accent);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font: 600 0.82rem/1.2 Verdana, Arial, sans-serif;
    padding: 0.4rem 0.85rem;
    text-decoration: none !important;
    transition: all 0.15s ease-in-out;
    white-space: nowrap;
}
.sa-filter-btn:hover, .sa-filter-btn:focus-visible, .sa-filter-btn.is-active {
    background: var(--fan-accent);
    border-color: var(--fan-accent);
    color: #fff !important;
    box-shadow: 0 2px 6px rgba(11, 102, 178, 0.2);
}
.sa-filter-btn--voting { border-left-color: var(--fan-gold) !important; }
.sa-filter-btn--voting:hover, .sa-filter-btn--voting.is-active {
    background: #b27900 !important;
    border-color: #b27900 !important;
    color: #fff !important;
}
.sa-filter-btn .sa-count-badge {
    background: var(--fan-sky);
    color: var(--fan-muted);
    font-size: 0.72rem;
    font-weight: 700;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    transition: background 0.15s ease, color 0.15s ease;
}
.sa-filter-btn.is-active .sa-count-badge {
    background: rgba(255, 255, 255, 0.25);
    color: #fff;
}

.sa-controls {
    display: grid;
    gap: 0.85rem;
    grid-template-columns: minmax(13rem, 1.8fr) repeat(3, minmax(8.5rem, 1.2fr)) minmax(7rem, 0.9fr) auto;
    align-items: end;
}
.sa-controls > .d-flex { justify-self: end; }
.sa-control-group {
    display: flex;
    flex-direction: column;
}
.sa-control-group label {
    display: block;
    color: var(--fan-muted);
    font-size: 0.75rem;
    font-weight: 700;
    margin-bottom: 0.35rem;
    text-transform: uppercase;
}

.sa-view-toggle {
    display: inline-flex;
    background: var(--fan-sky);
    border: 1px solid var(--fan-line);
    border-radius: 6px;
    padding: 2px;
}
.sa-view-btn {
    border: none;
    background: transparent;
    color: var(--fan-muted);
    padding: 0.3rem 0.65rem;
    font-size: 0.82rem;
    font-weight: 700;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.15s ease;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}
.sa-view-btn.is-active {
    background: #fff;
    color: var(--fan-accent);
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
}

.sa-table-wrap {
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: var(--fan-radius);
    box-shadow: var(--fan-card-shadow);
    overflow-x: auto;
    margin-bottom: 2rem;
}
.sa-table {
    margin: 0;
    min-width: 880px;
    width: 100%;
    border-collapse: collapse;
}
.sa-table th {
    background: var(--fan-sky);
    border-bottom: 1px solid var(--fan-line);
    color: var(--fan-ink);
    font-size: 0.78rem;
    font-weight: 800;
    padding: 0.85rem 0.85rem;
    text-transform: uppercase;
    white-space: nowrap;
    cursor: pointer;
    user-select: none;
    transition: background 0.15s ease;
}
.sa-table th:hover {
    background: #e1edf7;
}
.sa-table th.is-sorted {
    color: var(--fan-accent);
}
.sa-table td {
    border-bottom: 1px solid var(--fan-line);
    color: var(--fan-ink);
    font-size: 0.88rem;
    padding: 0.65rem 0.85rem;
    vertical-align: middle;
}
.sa-table tr:hover td {
    background-color: #f8fbfe;
}

.sa-player-cell {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}
.sa-player-photo {
    width: 44px;
    height: 44px;
    border-radius: 6px;
    object-fit: cover;
    border: 1px solid var(--fan-line);
    background: #f0f4f8;
    flex-shrink: 0;
}
.sa-player-photo--active {
    border-color: #126132;
    box-shadow: 0 0 0 2px rgba(18, 97, 50, 0.25);
}
.sa-player-info {
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.sa-player-name {
    font-weight: 700;
    color: var(--fan-ink);
    text-decoration: none !important;
    font-size: 0.95rem;
    line-height: 1.3;
}
.sa-player-name:hover {
    color: var(--fan-accent);
    text-decoration: underline !important;
}

.sa-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
}
.sa-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.72rem;
    font-weight: 700;
    padding: 0.18rem 0.48rem;
    border-radius: 4px;
    background: var(--fan-sky);
    color: var(--fan-accent);
    border: 1px solid var(--fan-line);
    white-space: nowrap;
    text-decoration: none !important;
}
.sa-filter-link { cursor: pointer; }
.sa-filter-link:hover, .sa-filter-link:focus-visible { border-color: var(--fan-accent); box-shadow: 0 0 0 2px rgba(11, 102, 178, 0.14); color: var(--fan-accent-dark); text-decoration: none !important; }
.sa-filter-link.is-filtered { box-shadow: inset 0 0 0 1px currentColor; }
.sa-player-meta.sa-filter-text { color: var(--fan-muted); display: inline-block; font-size: .76rem; text-decoration: none; }
.sa-player-meta.sa-filter-text:hover, .sa-player-meta.sa-filter-text:focus-visible { color: var(--fan-accent); text-decoration: underline; }
.sa-badge--pos {
    background: #eef3f8;
    color: #34485e;
}
.sa-badge--active {
    background: var(--fan-win-bg);
    color: var(--fan-win);
    border-color: #b7e4c7;
}
.sa-badge--captain {
    background: #fff8e7;
    color: #8a6500;
    border-color: #ead9a5;
}
.sa-badge--icon {
    background: #fff3c4;
    color: #805000;
    border-color: #f0b429;
}
.sa-badge--special {
    background: #eaf4fb;
    color: #0b66b2;
    border-color: #b9d8f3;
}
.sa-badge--youth {
    background: #e8f5e9;
    color: #2e7d32;
    border-color: #c8e6c9;
}
.sa-badge--voting {
    background: #fff8e1;
    color: #b27900;
    border-color: #ffe082;
}

.sa-flag {
    border-radius: 2px;
    height: 16px;
    object-fit: contain;
    vertical-align: middle;
    margin-right: 0.25rem;
}

.sa-icon-img {
    height: 20px;
    width: auto;
    object-fit: contain;
    vertical-align: middle;
    margin-right: 0.2rem;
}

.sa-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-bottom: 2rem;
}
.sa-card {
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: var(--fan-radius);
    box-shadow: var(--fan-card-shadow);
    display: flex;
    flex-direction: column;
    padding: 1rem;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.sa-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(20, 33, 61, 0.08);
}
.sa-card__top {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 0.85rem;
    align-items: center;
    margin-bottom: 0.75rem;
}
.sa-card__photo {
    width: 64px;
    height: 64px;
    border-radius: 6px;
    object-fit: cover;
    border: 1px solid var(--fan-line);
    background: #f0f4f8;
}
.sa-card__photo--active {
    border-color: #126132;
    box-shadow: 0 0 0 2px rgba(18, 97, 50, 0.25);
}
.sa-card__name {
    font: 1.1rem concert, Verdana, sans-serif;
    color: var(--fan-ink);
    text-decoration: none !important;
    margin: 0 0 0.2rem;
}
.sa-card__name:hover {
    color: var(--fan-accent);
    text-decoration: underline !important;
}
.sa-card__meta {
    font-size: 0.78rem;
    color: var(--fan-muted);
}
.sa-card__stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.5rem;
    background: var(--fan-sky);
    border-radius: 6px;
    padding: 0.5rem 0.75rem;
    margin-top: auto;
    font-size: 0.82rem;
    text-align: center;
}
.sa-card__stats strong {
    color: var(--fan-ink);
    display: block;
    font-size: 1.15rem;
    font-family: concert, Verdana, sans-serif;
}
.sa-card__stats span {
    color: var(--fan-muted);
    font-size: 0.7rem;
    text-transform: uppercase;
}
.sa-card__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 0.75rem;
}

@media (max-width: 991.98px) {
    .sa-controls { grid-template-columns: 1fr 1fr; }
    .sa-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
    .sa-controls, .sa-grid { grid-template-columns: 1fr; }
    .sa-filter-buttons { gap: 0.35rem; }
    .sa-filter-btn { width: 100%; justify-content: space-between; }
}

/* --- Spiele-Archiv (.spa-*) --- */
.spa-page {
    background: #fff;
    box-sizing: border-box;
    color: var(--fan-ink);
    margin: 0 auto;
    max-width: 1280px;
    min-height: 80vh;
    padding: 0 1rem 2.5rem;
}
.spa-breadcrumb { font-size: 0.78rem; padding-top: 1rem; }
.spa-breadcrumb .breadcrumb { background: transparent; margin-bottom: 0.5rem; padding: 0; }

/* Spielearchiv: Filter-Sektion ohne eigenen Rahmen (das Akkordeon hat bereits einen) */
.spa-filter-section { margin-bottom: 1.5rem; }

/* Genau ein äußerer Rahmen um das gesamte Akkordeon statt zwei verschachtelten */
#spaFilterAccordion {
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: var(--fan-radius);
    box-shadow: var(--fan-card-shadow);
}
#spaFilterAccordion .accordion-item {
    border: none;
    border-radius: 0;
}
#spaFilterAccordion .accordion-item + .accordion-item {
    border-top: 1px solid var(--fan-line);
}
#spaFilterAccordion .accordion-button {
    padding: 1rem 1.25rem;
}
#spaFilterAccordion .accordion-body {
    padding: 0.5rem 1.25rem 1.25rem;
}

.spa-filter-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-bottom: 1.1rem;
}
.spa-filter-btn {
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: 999px;
    color: var(--fan-accent);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font: 600 0.82rem/1.2 Verdana, Arial, sans-serif;
    padding: 0.4rem 0.85rem;
    text-decoration: none !important;
    transition: all 0.15s ease-in-out;
    white-space: nowrap;
}
.spa-filter-btn:hover, .spa-filter-btn:focus-visible, .spa-filter-btn.is-active {
    background: var(--fan-accent);
    border-color: var(--fan-accent);
    color: #fff !important;
    box-shadow: 0 2px 6px rgba(11, 102, 178, 0.2);
}
.spa-player-filter-bar { align-items: end; background: var(--fan-sky); border: 1px solid var(--fan-line); border-radius: 6px; display: grid; gap: .75rem; grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: .75rem; width: 100%; }
.spa-player-filter-bar .spa-control-group { min-width: 0; }
@media (max-width: 767.98px) {
    .spa-player-filter-bar { align-items: stretch; grid-template-columns: 1fr; }
}
.spa-filter-btn--special { border-left-color: var(--fan-gold) !important; }
.spa-filter-btn--special:hover, .spa-filter-btn--special.is-active {
    background: #b27900 !important;
    border-color: #b27900 !important;
    color: #fff !important;
}
.spa-filter-btn--loss { border-left-color: var(--fan-loss) !important; }
.spa-filter-btn--loss:hover, .spa-filter-btn--loss.is-active {
    background: var(--fan-loss) !important;
    border-color: var(--fan-loss) !important;
    color: #fff !important;
}
.spa-filter-btn .spa-count-badge {
    background: var(--fan-sky);
    color: var(--fan-muted);
    font-size: 0.72rem;
    font-weight: 700;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    transition: background 0.15s ease, color 0.15s ease;
}
.spa-filter-btn.is-active .spa-count-badge {
    background: rgba(255, 255, 255, 0.25);
    color: #fff;
}

/* Team-Filter (CFC/FCK/Alle): visuell abgesetzt, wirkt auf alle nachfolgenden Filter */
.spa-team-filter {
    border-bottom: 1px dashed var(--fan-line);
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-bottom: 1.1rem;
    padding-bottom: 0.9rem;
}
.spa-team-filter__btn {
    font-weight: 700;
}

/* Durchsuchbare Spieler-/Trainer-Dropdowns */
.spa-searchable-select { position: relative; }
.spa-searchable-select__input { cursor: text; }
.spa-searchable-select__list {
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: 6px;
    box-shadow: 0 8px 22px rgba(20, 33, 61, 0.12);
    left: 0;
    margin-top: 2px;
    max-height: 260px;
    overflow-y: auto;
    position: absolute;
    right: 0;
    top: 100%;
    z-index: 1050;
}
.spa-searchable-select__option {
    background: #fff;
    border: 0;
    color: var(--fan-ink);
    cursor: pointer;
    display: block;
    font-size: .88rem;
    padding: .55rem .85rem;
    text-align: left;
    width: 100%;
}
.spa-searchable-select__option:hover, .spa-searchable-select__option:focus-visible {
    background: var(--fan-sky);
    color: var(--fan-accent);
}
.spa-searchable-select__option[data-selected] {
    background: var(--fan-accent);
    color: #fff;
    font-weight: 600;
}
.spa-searchable-select__empty {
    color: var(--fan-muted);
    font-size: .85rem;
    padding: .75rem .85rem;
}

.spa-controls {
    display: grid;
    gap: 0.85rem;
    grid-template-columns: 1.6fr 1.3fr 1fr 1fr 0.85fr 0.85fr auto;
    align-items: end;
}
.spa-control-group {
    display: flex;
    flex-direction: column;
}
.spa-control-group label {
    display: block;
    color: var(--fan-muted);
    font-size: 0.75rem;
    font-weight: 700;
    margin-bottom: 0.35rem;
    text-transform: uppercase;
}
/* Suchen-Button sitzt in derselben Grid-Zeile wie die Eingabefelder */
.spa-control-group--submit { align-self: end; }
.spa-control-group--submit .btn { height: 38px; white-space: nowrap; }

.spa-balance { background: var(--fan-sky); border: 1px solid var(--fan-line); border-radius: 999px; padding: .25rem .65rem; }
#wrapper .fp-results-bar .spa-balance--positive { background: #d9f1df !important; border-color: #198754; border-left: 4px solid #198754; color: #176b37 !important; }
#wrapper .fp-results-bar .spa-balance--neutral { background: #fff3c4 !important; border-color: #b27900; border-left: 4px solid #b27900; color: #805000 !important; }
#wrapper .fp-results-bar .spa-balance--negative { background: #fde8ea !important; border-color: #dc3545; border-left: 4px solid #dc3545; color: #9d1d2a !important; }
.spa-balance strong:first-child { color: #198754; }
.spa-balance strong:nth-of-type(2) { color: #b27900; }
.spa-balance strong:nth-of-type(3) { color: #dc3545; }

.spa-table-wrap {
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: var(--fan-radius);
    box-shadow: var(--fan-card-shadow);
    overflow-x: auto;
    margin-bottom: 2rem;
}
.spa-table {
    margin: 0;
    min-width: 980px;
    width: 100%;
    border-collapse: collapse;
}
.spa-table th {
    background: var(--fan-sky);
    border-bottom: 1px solid var(--fan-line);
    color: var(--fan-ink);
    font-size: 0.78rem;
    font-weight: 800;
    padding: 0.85rem 0.75rem;
    text-transform: uppercase;
    white-space: nowrap;
    cursor: pointer;
    user-select: none;
    transition: background 0.15s ease;
}
.spa-table th:hover {
    background: #e1edf7;
}
.spa-table th.is-sorted {
    color: var(--fan-accent);
}
.spa-table td {
    border-bottom: 1px solid var(--fan-line);
    color: var(--fan-ink);
    font-size: 0.88rem;
    padding: 0.7rem 0.75rem;
    vertical-align: middle;
}
.spa-table tr:hover td {
    background-color: #f8fbfe;
}
/* Datum/Saison auf Wettbewerb-Badge-Größe verkleinern, schafft mehr sichtbaren Platz in der Tabelle */
.spa-table-compact-text {
    font-size: 0.72rem;
}

.spa-match-cell {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 280px;
}
.spa-match-team {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex: 1;
    min-width: 0;
    font-size: 0.9rem;
    font-weight: 600;
}
.spa-match-team--home {
    justify-content: flex-end;
    text-align: right;
}
.spa-match-team--away {
    justify-content: flex-start;
    text-align: left;
}
.spa-match-team.is-cfc {
    font-weight: 800;
    color: var(--fan-accent);
}
/* Gegnername als Filter-Link: Farbe erben, erst bei Hover unterstreichen */
.spa-match-team a {
    color: inherit;
    text-decoration: none;
}
.spa-match-team a:hover {
    text-decoration: underline;
}
/* Wettbewerbs-Badge als Filter-Link nutzbar machen */
.spa-badge--link {
    cursor: pointer;
}
.spa-badge--link:hover {
    text-decoration: underline !important;
    filter: brightness(0.95);
}
/* Kategorie-Badge (Sternstunde/Besonderes Spiel/Enttäuschung) unter dem Wettbewerb: bleibt so breit wie der Text */
.spa-badge--stack {
    margin-top: 0.3rem;
}
.spa-crest {
    height: 22px;
    max-width: 24px;
    object-fit: contain;
    flex-shrink: 0;
}

.spa-score-badge {
    align-items: center;
    border-radius: 5px;
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    font-family: concert, Verdana, sans-serif;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1;
    min-width: 52px;
    padding: 0.3rem 0.45rem;
    text-decoration: none !important;
    transition: transform 0.12s ease, box-shadow 0.12s ease;
    white-space: nowrap;
}
.spa-score-badge:hover {
    transform: scale(1.06);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}
.spa-score-badge--win {
    background: var(--fan-win-bg);
    border: 1px solid #b7e4c7;
    color: var(--fan-win) !important;
}
.spa-score-badge--draw {
    background: var(--fan-draw-bg);
    border: 1px solid #ead9a5;
    color: var(--fan-draw) !important;
}
.spa-score-badge--loss {
    background: var(--fan-loss-bg);
    border: 1px solid #f8b4bb;
    color: var(--fan-loss) !important;
}
.spa-score-badge--future {
    background: var(--fan-sky);
    border: 1px solid var(--fan-line);
    color: var(--fan-muted) !important;
    font-family: Verdana, sans-serif;
    font-size: 0.8rem;
}
.spa-score-extra {
    display: block;
    font-family: Verdana, Arial, sans-serif;
    font-size: 0.65rem;
    font-weight: 600;
    margin-top: 0.15rem;
    opacity: 0.9;
}

.spa-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.72rem;
    font-weight: 700;
    padding: 0.18rem 0.48rem;
    border-radius: 4px;
    background: var(--fan-sky);
    color: var(--fan-accent);
    border: 1px solid var(--fan-line);
    white-space: nowrap;
    text-decoration: none !important;
}
.spa-badge--competition {
    background: #eef3f8;
    color: #26384f;
    font-weight: 600;
}
.spa-badge--round {
    background: #fff;
    border-color: var(--fan-line);
    color: var(--fan-muted);
}
.spa-badge--special {
    background: #fff8e7;
    border-color: #ead9a5;
    color: #805000;
}
.spa-badge--loss {
    background: #fde8ea;
    border-color: #f8b4bb;
    color: #9d1d2a;
}
.spa-badge--postponed {
    background: #fff3e0;
    border-color: #e0b66f;
    color: #805000;
}

.spa-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: 2rem;
}
.spa-card {
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: var(--fan-radius);
    box-shadow: var(--fan-card-shadow);
    display: flex;
    flex-direction: column;
    padding: 1.1rem;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.spa-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(20, 33, 61, 0.08);
}
.spa-card__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.85rem;
    border-bottom: 1px solid var(--fan-line);
    padding-bottom: 0.6rem;
    font-size: 0.8rem;
    color: var(--fan-muted);
}
.spa-card__match {
    align-items: center;
    display: grid;
    gap: 0.75rem;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    margin-bottom: 1rem;
}
.spa-card__team {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.35rem;
}
.spa-card__team img {
    height: 38px;
    max-width: 48px;
    object-fit: contain;
}
.spa-card__team span {
    font-size: 0.88rem;
    font-weight: 600;
    line-height: 1.25;
}
.spa-card__footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: auto;
    border-top: 1px solid var(--fan-line);
    padding-top: 0.65rem;
    font-size: 0.78rem;
    color: var(--fan-muted);
}

@media (max-width: 991.98px) {
    .spa-controls { grid-template-columns: 1fr 1fr; }
    .spa-grid { grid-template-columns: 1fr; }
}
@media (max-width: 575.98px) {
    .spa-controls { grid-template-columns: 1fr; }
    .spa-filter-buttons { gap: 0.35rem; }
    .spa-filter-btn { width: 100%; justify-content: space-between; }
    .spa-pagination { flex-direction: column; width: 100%; }
    .spa-pagination a, .spa-pagination button { width: 100%; }
}

/* --- Spielerporträt (.pt-*) --- */
.pt-hero {
    align-items: center;
    background-image: linear-gradient(to top, rgb(33, 143, 195), rgb(117, 184, 254));
    border-radius: var(--fan-radius);
    box-shadow: var(--fan-shadow);
    color: #fff;
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem;
    justify-content: space-between;
    margin: 0.75rem 0 1.5rem;
    padding: 1.25rem 1.5rem;
}
.pt-hero__info {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    min-width: 0;
}
.pt-hero__eyebrow {
    color: rgba(255, 255, 255, 0.88);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}
.pt-hero__title {
    color: #fff;
    font: 2.1rem/1.1 concert, Verdana, sans-serif;
    margin: 0;
    text-transform: uppercase;
}
.pt-hero__flags {
    display: inline-flex;
    gap: 0.2rem;
    margin-left: 0.25rem;
    vertical-align: baseline;
}
.pt-hero__flags img {
    border-radius: 2px;
    height: 0.85em;
    object-fit: contain;
    transform: translateY(0.08em);
    vertical-align: baseline;
    width: auto;
}
.pt-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.5rem;
}
.pt-badge {
    background: rgba(255, 255, 255, 0.95);
    border-radius: 999px;
    color: var(--fan-accent);
    font-size: 0.75rem;
    font-weight: 700;
    padding: 0.28rem 0.65rem;
    text-decoration: none !important;
    transition: background 0.15s ease, color 0.15s ease;
}
.pt-badge:hover {
    background: #fff;
    color: var(--fan-ink);
}
.pt-badge--gold {
    background: #fff8e7;
    border: 1px solid #ead9a5;
    color: #805000;
}

.pt-hero__photo {
    background: #fff;
    border: 3px solid rgba(255, 255, 255, 0.9);
    border-radius: 10px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2);
    flex-shrink: 0;
    overflow: hidden;
}
.pt-hero__photo img {
    display: block;
    height: 120px;
    object-fit: cover;
    width: 96px;
}

/* Tabs & Tab-Panes */
.pt-tabs {
    border-bottom: 2px solid var(--fan-line);
    display: flex;
    flex-wrap: nowrap;
    gap: 0.4rem;
    margin-bottom: 1.5rem;
    overflow-x: auto;
    padding-bottom: 0.5rem;
}
.pt-tabs .nav-link {
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: 999px;
    color: var(--fan-accent);
    font-size: 0.88rem;
    font-weight: 700;
    padding: 0.45rem 1rem;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
    white-space: nowrap;
}
.pt-tabs .nav-link:hover {
    background: var(--fan-sky);
    border-color: var(--fan-accent);
}
.pt-tabs .nav-link.active {
    background: var(--fan-accent);
    border-color: var(--fan-accent);
    color: #fff !important;
}

.pt-card {
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: var(--fan-radius);
    box-shadow: var(--fan-card-shadow);
    margin-bottom: 1.5rem;
    padding: 1.5rem;
}
.pt-card h2, .pt-section h2 {
    background: var(--fan-sky);
    border-left: 4px solid var(--fan-accent);
    border-radius: 0 4px 4px 0;
    color: var(--fan-ink);
    font: 1.25rem concert, Verdana, sans-serif;
    margin: -1.5rem -1.5rem 1.25rem;
    padding: 0.75rem 1.25rem;
}
.pt-career { margin-bottom: 1.5rem; width: 100%; }
.pt-career > h2 { background: var(--fan-sky); border-left: 4px solid var(--fan-accent); border-radius: 0 4px 4px 0; color: var(--fan-ink); font: 1.25rem concert, Verdana, sans-serif; margin: 0 0 1.25rem; padding: .75rem 1.25rem; }

.pt-details {
    display: grid;
    gap: 0.6rem;
}
.pt-detail {
    border-bottom: 1px solid var(--fan-line);
    display: grid;
    gap: 0.75rem;
    grid-template-columns: 160px minmax(0, 1fr);
    padding: 0.6rem 0;
}
.pt-detail:last-child {
    border-bottom: 0;
}
.pt-detail dt {
    color: var(--fan-muted);
    font-size: 0.86rem;
    font-weight: 700;
}
.pt-detail dd {
    color: var(--fan-ink);
    font-size: 0.92rem;
    margin: 0;
}
/* Erfolge & Titel: jeder Eintrag in eigener Zeile */
.pt-detail__achievement {
    display: block;
    line-height: 1.5;
}
.pt-detail__achievement + .pt-detail__achievement {
    margin-top: 0.15rem;
}
/* Bisherige Vereine: jeder Eintrag in eigener Zeile, CFC/FCK fett */
.pt-detail__club {
    display: block;
    line-height: 1.5;
}
.pt-detail__club + .pt-detail__club {
    margin-top: 0.15rem;
}
.pt-detail__club--cfc {
    font-weight: 700;
}
.pt-flag {
    border-radius: 2px;
    height: 14px;
    margin-left: 0.35rem;
    object-fit: contain;
    vertical-align: middle;
}

.pt-copy {
    color: var(--fan-ink);
    font-size: 0.95rem;
    line-height: 1.6;
}
.pt-career-list { display: grid; gap: 1rem; }
.pt-career-total { align-items: center; background: var(--fan-sky); border-left: 4px solid var(--fan-accent); display: flex; justify-content: space-between; margin-bottom: 1rem; padding: .75rem 1rem; }
.pt-career-total > span { color: var(--fan-muted); font-size: .78rem; font-weight: 800; text-transform: uppercase; }
.pt-career-total__links { display: flex; flex-wrap: wrap; gap: .75rem; }
.pt-career-total__links a { color: var(--fan-accent); font-size: 1rem; text-decoration: none; }
.pt-career-total__links a:hover, .pt-career-total__links a:focus-visible { color: var(--fan-accent-hover); text-decoration: underline; }
.pt-career-total span { color: var(--fan-muted); font-size: .78rem; font-weight: 800; text-transform: uppercase; }
.pt-career-total strong { color: var(--fan-accent); font-size: 1rem; }
.pt-career-season { align-items: start; background: #fff; border: 1px solid var(--fan-line); border-radius: var(--fan-radius); display: grid; gap: 1rem; grid-template-columns: 150px minmax(0, 1fr); padding: 1rem; }
.pt-career-season__photo { position: relative; }
.pt-career-season__photo img { aspect-ratio: 1 / 1; border-radius: 6px; display: block; height: 150px; object-fit: contain; width: 150px; }
.pt-career-season__best { align-items: center; background: var(--fan-accent); border: 2px solid #fff; border-radius: 999px; color: #fff; display: flex; font-size: .78rem; font-weight: 800; height: 34px; justify-content: center; min-width: 34px; padding: 0 .35rem; position: absolute; right: -.35rem; top: -.35rem; }
.pt-career-season__heading { align-items: baseline; border-bottom: 1px solid var(--fan-line); display: flex; gap: 1rem; justify-content: space-between; margin-bottom: .7rem; padding-bottom: .55rem; }
.pt-career-season__heading h3 { color: var(--fan-ink); font: 1.15rem/1.2 concert, Verdana, sans-serif; margin: 0; text-transform: uppercase; }
.pt-career-season__periods { color: var(--fan-muted); font-size: .78rem; line-height: 1.4; margin-top: .3rem; }
.pt-career-season__heading strong { color: var(--fan-accent); font-size: .86rem; text-align: right; }
.pt-career-table { border-collapse: collapse; width: 100%; }
.pt-career-table th, .pt-career-table td { border-bottom: 1px solid var(--fan-line); padding: .45rem .55rem; text-align: right; }
.pt-career-table th:first-child, .pt-career-table td:first-child { text-align: left; }
.pt-career-table th { background: var(--fan-sky); color: var(--fan-muted); font-size: .76rem; text-transform: uppercase; }
.pt-career-table td { font-size: .88rem; }
.pt-career-table__detail { color: var(--fan-muted); display: block; font-size: .75rem; margin-top: .15rem; }
.pt-career-previous { margin-top: 1.5rem; }
@media (max-width: 575.98px) {
    .pt-career-total { align-items: flex-start; flex-direction: column; gap: .5rem; }
    .pt-career-season { grid-template-columns: 86px minmax(0, 1fr); padding: .75rem; }
    .pt-career-season__photo img { height: 86px; width: 86px; }
    .pt-career-season__heading { align-items: flex-start; flex-direction: column; gap: .25rem; }
    .pt-career-season__heading strong { text-align: left; }
}

/* News-Bereich im Porträt */
.pt-news-controls {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 1rem;
}
.pt-news-search {
    background-color: #fff;
    border: 1px solid var(--fan-line);
    border-radius: 6px;
    color: var(--fan-ink);
    flex: 1;
    font-size: 0.9rem;
    height: 40px;
    min-width: 200px;
    padding: 0.4rem 0.85rem;
}
.pt-news-search:focus {
    border-color: var(--fan-accent);
    box-shadow: 0 0 0 3px rgba(11, 102, 178, 0.15);
    outline: none;
}
.pt-news-sort {
    border: 1px solid var(--fan-line);
    border-radius: 6px;
    color: var(--fan-ink);
    font-size: 0.88rem;
    height: 40px;
    padding: 0.4rem 0.75rem;
}
.pt-news-tags {
    background: var(--fan-sky);
    border: 1px solid var(--fan-line);
    border-radius: var(--fan-radius);
    margin-bottom: 1.25rem;
    padding: 0.85rem 1rem;
}
.pt-news-tag-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 0.85rem;
}
.pt-news-tag-list a {
    color: var(--fan-ink);
    font-size: 0.82rem;
    font-weight: 600;
    text-decoration: none;
}
.pt-news-tag-list a:hover, .pt-news-tag-list a.active {
    color: var(--fan-accent);
    text-decoration: underline;
}
.pt-news-reset {
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: 4px;
    color: var(--fan-accent);
    cursor: pointer;
    font-size: 0.8rem;
    font-weight: 600;
    margin-top: 0.65rem;
    padding: 0.25rem 0.65rem;
}
.pt-news-item {
    border-bottom: 1px solid var(--fan-line);
    display: grid;
    gap: 0.85rem;
    grid-template-columns: 95px minmax(0, 1fr);
    padding: 0.75rem 0;
}
.pt-news-item:last-child {
    border-bottom: 0;
}
.pt-news-item__date {
    color: var(--fan-muted);
    font-size: 0.82rem;
}
.pt-news-item__title {
    color: var(--fan-ink);
    font-size: 0.92rem;
    font-weight: 600;
    text-decoration: none;
}
.pt-news-item__title:hover {
    color: var(--fan-accent);
    text-decoration: underline;
}
.pt-actions {
    display: flex;
    justify-content: flex-end;
    margin: 1.5rem 0;
}

/* ==========================================================================
   8. MODUL: SPIELERWAHL (.sw-*, .swa-*, .swd-*)
   ========================================================================== */
.swd-page { padding-bottom: 3rem; }
.swd-panel {
    margin-bottom: 1.5rem;
    padding: 1.25rem;
}
.swd-panel h2 {
    margin: -1.25rem -1.25rem 1.25rem;
}
.swd-intro {
    color: var(--fan-ink);
    line-height: 1.7;
}
.swd-intro p {
    margin: 0 0 0.9rem;
}
.swd-intro p:last-child {
    margin-bottom: 0;
}
.swd-meta {
    border-top: 1px solid var(--fan-line);
    color: var(--fan-muted);
    margin-top: 1rem;
    padding-top: 0.85rem;
}
.swd-results { display: grid; gap: 1.1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.swd-result { background: #fff; border: 1px solid var(--fan-line); border-radius: 8px; padding: 1.1rem; text-align: center; }
.swd-result--winner { border-top: 4px solid var(--fan-gold); }
.swd-result img { border: 0; border-radius: 10px; display: block; height: 140px; margin: 0 auto 0.8rem; object-fit: contain; width: 100%; }
.swd-result__place { color: var(--fan-accent); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.08em; margin-bottom: 0.55rem; text-transform: uppercase; }
.swd-result__name { color: var(--fan-ink); display: block; font-size: 1rem; font-weight: 700; line-height: 1.35; }
.swd-result__text, .swd-disappointment__text { color: var(--fan-muted); line-height: 1.6; margin-top: 0.75rem; }
.swd-result__text { text-align: left; }
.swd-extra { overflow-x: auto; }
.swd-extra table { margin: 0; max-width: 100%; }
.swd-disappointment__body { align-items: center; display: grid; gap: 1.25rem; grid-template-columns: 140px minmax(0, 1fr); }
.swd-disappointment__body img { border: 0; border-radius: 10px; display: block; height: 140px; object-fit: contain; width: 100%; }
.swd-disappointment__name { color: var(--fan-ink); font-size: 1.05rem; font-weight: 700; }

@media (max-width: 767.98px) {
    .swd-panel { padding: 1rem; }
    .swd-panel h2 { margin: -1rem -1rem 1rem; }
    .swd-results { gap: 0.85rem; grid-template-columns: 1fr; }
    .swd-result { padding: 1rem; }
    .swd-result img { height: 160px; }
    .swd-disappointment__body { align-items: start; grid-template-columns: 100px minmax(0, 1fr); }
    .swd-disappointment__body img { height: 100px; }
}
.swa-page { max-width: 1120px; margin: 0 auto; padding: 0 1rem 2.5rem; }
.swa-breadcrumb { font-size: 0.78rem; padding-top: 1rem; }
.swa-breadcrumb a { color: var(--fan-accent); }
.swa-title {
    background-image: linear-gradient(to top, rgb(33, 143, 195), rgb(117, 184, 254));
    border-radius: var(--fan-radius);
    box-shadow: var(--fan-shadow);
    color: #fff;
    margin: 0.75rem 0 1.25rem;
    overflow: hidden;
    padding: 1.25rem 1.5rem;
}
.swa-hero__eyebrow {
    color: rgba(255,255,255,0.9);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}
.swa-title h1 {
    font: 1.85rem/1.15 concert, Verdana, sans-serif;
    margin: 0.35rem 0 0;
    text-transform: uppercase;
}
.swa-intro, .swa-filter { margin-bottom: 1.25rem; }
.swa-active-filters { align-items: center; background: var(--fan-sky); border: 1px solid var(--fan-line); border-left: 4px solid var(--fan-accent); display: flex; flex-wrap: wrap; gap: .5rem .75rem; margin: -.5rem 0 1.25rem; padding: .65rem .8rem; }
.swa-active-filters__title { color: var(--fan-ink); font-size: .78rem; text-transform: uppercase; }
.swa-active-filters__list { align-items: center; display: flex; flex-wrap: wrap; gap: .4rem; }
.swa-active-filter { align-items: center; background: #fff; border: 1px solid var(--fan-line); border-radius: 4px; color: var(--fan-ink); display: inline-flex; font-size: .8rem; gap: .3rem; padding: .2rem .4rem .2rem .55rem; }
.swa-active-filter a { align-items: center; background: var(--fan-sky); border-radius: 50%; color: var(--fan-muted); display: inline-flex; font-size: .9rem; font-weight: 800; height: 1.2rem; justify-content: center; line-height: 1; text-decoration: none; width: 1.2rem; }
.swa-active-filter a:hover, .swa-active-filter a:focus-visible { background: var(--fan-loss); color: #fff; }
.swa-active-filters__reset { color: var(--fan-accent); font-size: .78rem; font-weight: 700; text-decoration: underline; }
.swa-ranking { margin-bottom: 2rem; }
.swa-ranking__title { border-bottom: 2px solid var(--fan-line); color: var(--fan-ink); font: 1.35rem/1.2 concert, Verdana, sans-serif; margin: 0 0 1rem; padding-bottom: .5rem; }
.swa-filter__buttons, .swa-ranking__filters {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.swa-filter__button {
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: 999px;
    color: var(--fan-accent);
    cursor: pointer;
    display: inline-flex;
    font: 600 0.82rem/1.2 Verdana, Arial, sans-serif;
    line-height: 1.2;
    min-height: 2.2rem;
    padding: 0.42rem 0.9rem;
    text-decoration: none !important;
    transition: all 0.15s ease-in-out;
    white-space: nowrap;
}
.swa-filter__button:hover, .swa-filter__button:focus-visible, .swa-filter__button.is-active {
    background: var(--fan-accent);
    border-color: var(--fan-accent);
    box-shadow: 0 4px 10px rgba(11, 102, 178, 0.18);
    color: #fff !important;
}
.swa-ranking__list { display: grid; gap: 1rem; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.swa-ranking__item { background: #fff; border: 1px solid var(--fan-line); border-radius: 8px; padding: 0.8rem; text-align: center; }
.swa-ranking__item img {
    background: transparent;
    border: 0;
    border-radius: 10px;
    display: block;
    height: 92px;
    margin: 0 auto 0.65rem;
    object-fit: contain;
    width: 100%;
}
.swa-ranking__name { color: var(--fan-ink); display: block; font-size: .9rem; font-weight: 700; line-height: 1.4; margin-bottom: .35rem; }
.swa-ranking__count { color: var(--fan-muted); font-size: .82rem; line-height: 1.5; }
.swa-ranking__wins { color: var(--fan-win);  }
.swa-card__results {
    display: grid;
    gap: 0.85rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.swa-season { margin-bottom: 2rem; }
.swa-season__title {
    background: var(--fan-sky);
    border-left: 4px solid var(--fan-accent);
    color: var(--fan-ink);
    font: 1.35rem/1.2 concert, Verdana, sans-serif;
    margin: 0 0 1rem;
    padding: 0.8rem 1rem;
}
.swa-list {
    display: grid;
    gap: 1rem;
}
.swa-card {
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: var(--fan-radius);
    box-shadow: var(--fan-card-shadow);
    padding: 1rem;
}
.swa-card__head {
    align-items: center;
    display: flex;
    gap: 0.75rem;
    justify-content: space-between;
    margin-bottom: 0.9rem;
}
.swa-card__type {
    background: var(--fan-accent-soft);
    border-radius: 999px;
    color: var(--fan-accent);
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    padding: 0.28rem 0.6rem;
    text-transform: uppercase;
}
.swa-card__period {
    color: var(--fan-muted);
    font-size: 0.82rem;
    font-weight: 600;
}
.swa-person {
    align-items: stretch;
    background: #fff;
    border: 1px solid transparent;
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding: 0.7rem;
    text-align: center;
}
.swa-person img {
    background: transparent;
    border: 0;
    border-radius: 10px;
    display: block;
    height: 118px;
    margin: 0 auto 0.6rem;
    object-fit: contain;
    width: 100%;
}
.swa-person__place {
    color: var(--fan-muted);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    margin-bottom: 0.45rem;
    text-transform: uppercase;
}
.swa-person__name {
    color: var(--fan-ink);
    display: block;
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1.4;
}
.swa-card__foot {
    border-top: 1px solid var(--fan-line);
    color: var(--fan-muted);
    font-size: 0.82rem;
    margin-top: 0.9rem;
    padding-top: 0.7rem;
}
.swa-card__foot a {
    color: var(--fan-accent);
    font-weight: 700;
}
.swa-card__results .swa-person:nth-child(-n+3) {
    background: var(--fan-sky);
    border-color: rgba(11, 102, 178, 0.08);
}
.swa-card__results .swa-person:nth-child(-n+3) .swa-person__place { color: var(--fan-accent); }
.swa-card__results .swa-person--loss {
    border-color: rgba(105, 117, 134, 0.08);
}

@media (max-width: 991.98px) {
    .swa-ranking__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .swa-card__results { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 575.98px) {
    .swa-page { padding-left: 0.75rem; padding-right: 0.75rem; }
    .swa-ranking__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .swa-card__results { grid-template-columns: 1fr; }
    .swa-card { padding: 0.85rem; }
    .swa-card__head { align-items: flex-start; flex-direction: column; }
    .swa-person img { height: 130px; }
    .swa-filter__buttons, .swa-ranking__filters { gap: 0.4rem; }
    .swa-filter__button { width: 100%; justify-content: center; }
}

.sw-panel {
    margin-bottom: 1.5rem;
    padding: 1.1rem 1.25rem 1.25rem;
}
.sw-panel > h2 {
    margin: 0 0 0.9rem;
}
.sw-copy {
    color: var(--fan-ink);
    font-size: 0.96rem;
    line-height: 1.7;
}
.sw-copy p {
    margin: 0 0 0.9rem;
}
.sw-copy p:last-child {
    margin-bottom: 0;
}
.sw-history__press { display: block; float: right; margin: 0 0 1rem 1.25rem; width: 160px; }
.sw-history__press img { display: block; height: auto; width: 100%; }
.sw-history .sw-actions { clear: both; }
@media (max-width: 575.98px) {
    .sw-history__press { float: none; margin: 0 auto 1rem; max-width: 100%; }
}
.sw-actions {
    margin-top: 1rem;
}
.sw-action {
    display: inline-flex;
    margin-top: 0.25rem;
}
.sw-current {
    align-items: center;
    display: grid;
    gap: 1.5rem;
    grid-template-columns: minmax(0, 1.75fr) 200px;
    padding: 1.25rem 1.4rem;
}
.sw-current__label {
    color: var(--fan-muted);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    margin-bottom: 0.4rem;
    text-transform: uppercase;
}
.sw-current__winner {
    font: 1.5rem/1.2 concert, Verdana, sans-serif;
    margin: 0.35rem 0 0.8rem;
    text-transform: uppercase;
}
.sw-current__meta {
    color: var(--fan-muted);
    font-size: 0.88rem;
    margin-top: 1rem;
}
.sw-current__meta a {
    color: var(--fan-accent);
    font-weight: 700;
}
.sw-current > img {
    background: transparent;
    border: 0;
    border-radius: 10px;
    box-shadow: var(--fan-card-shadow);
    display: block;
    height: 220px;
    object-fit: cover;
    width: 100%;
}
.sw-best {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    padding-top: 0.5rem;
}
.sw-best__item {
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: 8px;
    padding: 0.7rem;
    text-align: center;
    transition: transform 0.12s ease, box-shadow 0.12s ease;
}
.sw-best__item:hover {
    box-shadow: var(--fan-card-shadow);
    transform: translateY(-1px);
}
.sw-best__item img {
    background: transparent;
    border: 0;
    border-radius: 10px;
    display: block;
    height: 150px;
    margin: 0 auto 0.75rem;
    object-fit: cover;
    width: 100%;
}
.sw-best__name {
    color: var(--fan-ink);
    display: block;
    font-size: 0.94rem;
    font-weight: 700;
    margin-bottom: 0.15rem;
}
.sw-best__season {
    color: var(--fan-muted);
    display: block;
    font-size: 0.8rem;
}

@media (max-width: 640px) {
    .sw-current {
        grid-template-columns: 1fr;
        padding: 1rem;
    }
    .sw-current > img {
        height: 180px;
        max-width: 100%;
    }
    .sw-best {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* ==========================================================================
   9. MODUL: PRESSESCHAU & KOMMENTARE (.ps-*, .km-*, .kmd-*)
   ========================================================================== */

/* --- Presseschau & Medienübersicht --- */
.ps-list, .km-list {
    display: grid;
    gap: 0.85rem;
}

.ps-notice {
    align-items: flex-start;
    background: var(--fan-sky);
    border: 1px solid var(--fan-line);
    border-left: 4px solid var(--fan-accent);
    border-radius: var(--fan-radius);
    display: flex;
    font-size: 0.88rem;
    gap: 0.75rem;
    line-height: 1.5;
    margin-bottom: 1.25rem;
    padding: 0.85rem 1.1rem;
}

.ps-notice__icon {
    color: var(--fan-accent);
    flex-shrink: 0;
    font-size: 1.15rem;
    margin-top: 0.1rem;
}

/* Filterkarten für Presseschau & Kommentare */

.ps-filter-title, .km-filter-title {
    color: var(--fan-ink);
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    margin-bottom: 0.85rem;
}

.ps-filter-grid {
    align-items: end;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(15rem, 1.6fr) minmax(13rem, 1.4fr) minmax(9rem, 1fr) auto auto;
}
.ps-filter-grid > .d-flex { align-items: end; min-width: max-content; }

.km-filter-grid {
    align-items: end;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(15rem, 1.6fr) minmax(10rem, 1fr) minmax(13rem, 1.4fr) minmax(9rem, 1fr) auto;
}
.km-filter-grid > .d-flex { align-items: end; min-width: max-content; }

.ps-form-label, .km-form-label {
    color: var(--fan-muted);
    display: block;
    font-size: 0.8rem;
    font-weight: 700;
    margin-bottom: 0.35rem;
    text-transform: uppercase;
}

.ps-input, .ps-select, .km-input, .km-select, #wrapper #searchInput {
    background-color: #fff;
    border: 1px solid var(--fan-line);
    border-radius: 6px;
    color: var(--fan-ink);
    font-size: 0.92rem;
    height: 42px;
    line-height: 1.4;
    padding: 0.5rem 1rem;
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
    width: 100%;
}

.ps-input::placeholder, .km-input::placeholder, #wrapper #searchInput::placeholder {
    color: var(--fan-muted);
    opacity: 0.8;
}

.ps-input:focus, .ps-select:focus, .km-input:focus, .km-select:focus, #wrapper #searchInput:focus {
    border-color: var(--fan-accent);
    box-shadow: 0 0 0 3px rgba(11, 102, 178, 0.15);
    outline: none;
}

/* Segmentierte Radio-Kategorieauswahl */
.ps-segmented {
    background: var(--fan-sky);
    border: 1px solid var(--fan-line);
    border-radius: 6px;
    display: flex;
    height: 42px;
    padding: 3px;
    width: 100%;
}

.ps-segmented input[type="radio"] {
    display: none;
}

.ps-segmented label {
    align-items: center;
    border-radius: 4px;
    color: var(--fan-muted);
    cursor: pointer;
    display: flex;
    flex: 1;
    font-size: 0.82rem;
    font-weight: 600;
    justify-content: center;
    margin: 0;
    padding: 0 0.35rem;
    text-align: center;
    transition: all 0.15s ease-in-out;
    user-select: none;
    white-space: nowrap;
}

.ps-segmented input[type="radio"]:checked + label {
    background: var(--fan-accent);
    box-shadow: 0 2px 4px rgba(11, 102, 178, 0.2);
    color: #fff;
}

/* Status- und Trefferleiste */



/* Einzelner Presse-Artikel */
.ps-item {
    align-items: center;
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: var(--fan-radius);
    box-shadow: 0 2px 6px rgba(20, 33, 61, 0.03);
    display: grid;
    gap: 1rem;
    grid-template-columns: 170px minmax(0, 1fr) 230px;
    padding: 0.85rem 1.1rem;
    transition: transform 0.12s ease, box-shadow 0.12s ease, border-color 0.12s ease;
}

.ps-item:hover, .km-item:hover {
    border-color: #b9d5ee;
    box-shadow: 0 6px 16px rgba(11, 102, 178, 0.08);
    transform: translateY(-1px);
}

.ps-item__meta {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.ps-item__date, .km-item__date {
    color: var(--fan-muted);
    font-size: 0.84rem;
    font-weight: 600;
}

.ps-badge, .km-badge {
    border-radius: 999px;
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    padding: 0.15rem 0.55rem;
    text-transform: uppercase;
}

.ps-badge--cfc {
    background: var(--fan-accent-soft);
    color: var(--fan-accent);
}

.ps-badge--football {
    background: #eef3f8;
    border: 1px solid var(--fan-line);
    color: var(--fan-muted);
}

.ps-item__content {
    min-width: 0;
    overflow-wrap: anywhere;
}

.ps-item__headline {
    color: var(--fan-ink);
    display: inline-flex;
    font-size: 0.96rem;
    font-weight: 600;
    line-height: 1.4;
    margin: 0;
}

.ps-item__headline a {
    color: var(--fan-ink);
    display: inline;
}

.ps-item__headline a:hover, .ps-item__headline a:focus-visible {
    color: var(--fan-accent);
    text-decoration: underline;
}

.ps-item__ext-icon {
    color: var(--fan-muted);
    display: inline-block;
    font-size: 0.75rem;
    margin-left: 0.35rem;
    opacity: 0.75;
    vertical-align: middle;
}

.ps-item__source {
    color: var(--fan-muted);
    font-size: 0.82rem;
    line-height: 1.35;
    min-width: 0;
    overflow-wrap: anywhere;
    text-align: right;
}

.ps-item__source strong {
    color: var(--fan-ink);
    display: block;
    font-size: 0.88rem;
    font-weight: 700;
}

/* --- Kommentare Übersicht (.km-*) --- */
.km-item {
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: var(--fan-radius);
    box-shadow: 0 2px 6px rgba(20, 33, 61, 0.03);
    display: grid;
    gap: 0.6rem;
    padding: 1.1rem 1.25rem;
    transition: transform 0.12s ease, box-shadow 0.12s ease, border-color 0.12s ease;
}

.km-item__top {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    justify-content: space-between;
}

.km-item__meta-left {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.km-badge--season {
    background: var(--fan-accent-soft);
    color: var(--fan-accent);
}

.km-item__author {
    color: var(--fan-muted);
    font-size: 0.85rem;
}

.km-item__author strong {
    color: var(--fan-ink);
}

.km-item__title {
    color: var(--fan-ink);
    font-size: 1.1rem;
    font-weight: 700;
    line-height: 1.35;
    margin: 0.2rem 0 0.1rem;
}

.km-item__title a {
    color: var(--fan-ink);
    text-decoration: none;
}

.km-item__title a:hover, .km-item__title a:focus-visible {
    color: var(--fan-accent);
    text-decoration: underline;
}

.km-item__teaser {
    color: var(--fan-muted);
    font-size: 0.9rem;
    line-height: 1.5;
    margin: 0;
}

.km-item__footer {
    align-items: center;
    display: flex;
    justify-content: flex-end;
    margin-top: 0.25rem;
}

.km-item__more {
    color: var(--fan-accent);
    font-size: 0.86rem;
    font-weight: 700;
}

/* --- Kommentar Detailansicht (.kmd-*) --- */
.kmd-hero__badge {
    background: rgba(255, 255, 255, 0.2);
    border-radius: 999px;
    color: #fff;
    font-size: 0.75rem;
    font-weight: 700;
    padding: 0.2rem 0.65rem;
}

.kmd-hero__meta {
    align-items: center;
    color: rgba(255, 255, 255, 0.95);
    display: flex;
    flex-wrap: wrap;
    font-size: 0.88rem;
    gap: 1rem;
    margin-top: 0.5rem;
}

.kmd-hero__meta strong {
    color: #fff;
}

.kmd-article-card {
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: var(--fan-radius);
    box-shadow: 0 2px 8px rgba(20, 33, 61, 0.04);
    margin-bottom: 1.5rem;
    padding: 2rem 2.25rem;
}

.kmd-article-body {
    color: var(--fan-ink);
    font-size: 1rem;
    line-height: 1.75;
    overflow-wrap: break-word;
}

.kmd-article-body p {
    margin-bottom: 1.25rem;
}

.kmd-article-body p:last-child {
    margin-bottom: 0;
}

.kmd-article-body h2, .kmd-article-body h3 {
    color: var(--fan-ink);
    font-weight: 700;
    margin: 1.75rem 0 0.75rem;
}

.kmd-article-body blockquote {
    background: var(--fan-sky);
    border-left: 4px solid var(--fan-accent);
    border-radius: 4px;
    font-style: italic;
    margin: 1.25rem 0;
    padding: 0.85rem 1.2rem;
}

.kmd-article-body img {
    border-radius: var(--fan-radius);
    height: auto;
    margin: 0.5rem 0;
    max-width: 100%;
}

.kmd-article-footer {
    align-items: center;
    border-top: 1px solid var(--fan-line);
    display: flex;
    flex-wrap: wrap;
    font-size: 0.88rem;
    gap: 1rem;
    justify-content: space-between;
    margin-top: 2rem;
    padding-top: 1rem;
}

.kmd-author-box {
    color: var(--fan-muted);
}

.kmd-author-box strong {
    color: var(--fan-ink);
}

.kmd-nav-card {
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: var(--fan-radius);
    box-shadow: 0 2px 8px rgba(20, 33, 61, 0.04);
    display: grid;
    gap: 1rem;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    padding: 1rem 1.25rem;
}

.kmd-nav-link {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    text-decoration: none !important;
}

.kmd-nav-link--prev {
    text-align: left;
}

.kmd-nav-link--next {
    text-align: right;
}

.kmd-nav-label {
    color: var(--fan-muted);
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
}

.kmd-nav-title {
    color: var(--fan-accent);
    font-size: 0.9rem;
    font-weight: 600;
    line-height: 1.3;
}

.kmd-nav-link:hover .kmd-nav-title,
.kmd-nav-link:focus-visible .kmd-nav-title {
    color: var(--fan-accent-hover);
    text-decoration: underline;
}

/* ==========================================================================
   10. MODUL: STATISTIK & REKORDE (.stx-*)
   ========================================================================== */
.stx-player-cell {
    align-items: center;
    display: inline-flex;
    gap: 0.45rem;
}
.stx-player-thumb {
    border: 1px solid var(--fan-line);
    border-radius: 4px;
    flex-shrink: 0;
    height: 32px;
    object-fit: cover;
    width: 27px;
}
.stx-player-name { display: inline-flex; flex-direction: column; font-size: .82rem; line-height: 1.15; }
.stx-player-name strong { font-weight: 700; }
.stx-player-name > span { font-weight: 400; }
#spielerstatistik { font-size: .8rem; }
#spielerstatistik th, #spielerstatistik td { padding: .35rem .45rem; vertical-align: middle; }
#spielerstatistik thead th { white-space: nowrap; }
#spielerstatistik .stx-icon-shirt { color: #218fc3; }
#torschuetzenstatistik { font-size: .8rem; }
#torschuetzenstatistik th, #torschuetzenstatistik td { padding: .35rem .45rem; vertical-align: middle; }
#torschuetzenstatistik thead th { white-space: nowrap; }
#stx-balance .stx-table, #stx-mix .stx-table { font-size: .8rem; margin-bottom: 0; }
#stx-balance .stx-table { table-layout: fixed; width: 100%; }
#stx-balance .stx-table th, #stx-balance .stx-table td, #stx-mix .stx-table th, #stx-mix .stx-table td { padding: .25rem .2rem; vertical-align: middle; }
#stx-balance .stx-table th { font-size: .7rem; white-space: nowrap; }
#stx-balance .stx-table th:first-child { width: 3.5rem; }
#stx-mix .stx-table th { font-weight: 600; }
#stx-mix .stx-table th:first-child { width: 75%; }
#zuschauerstatistikHeim, #zuschauerstatistikAuswaerts { font-size: .8rem; margin-bottom: 0; table-layout: fixed; width: 100% !important; }
#zuschauerstatistikHeim col:first-child, #zuschauerstatistikAuswaerts col:first-child { width: 3.5rem !important; }
#zuschauerstatistikHeim col:nth-child(2), #zuschauerstatistikAuswaerts col:nth-child(2) { width: auto !important; }
#zuschauerstatistikHeim col:last-child, #zuschauerstatistikAuswaerts col:last-child { width: 6rem !important; }
#zuschauerstatistikHeim th, #zuschauerstatistikHeim td, #zuschauerstatistikAuswaerts th, #zuschauerstatistikAuswaerts td { padding: .35rem .45rem; vertical-align: middle; }
#zuschauerstatistikHeim th:first-child, #zuschauerstatistikHeim td:first-child, #zuschauerstatistikAuswaerts th:first-child, #zuschauerstatistikAuswaerts td:first-child,
#zuschauerstatistikHeim th:last-child, #zuschauerstatistikHeim td:last-child, #zuschauerstatistikAuswaerts th:last-child, #zuschauerstatistikAuswaerts td:last-child { white-space: nowrap; }
#zuschauerstatistikHeim td:nth-child(2), #zuschauerstatistikAuswaerts td:nth-child(2) { overflow-wrap: anywhere; }
#zuschauerstatistikHeim td img, #zuschauerstatistikAuswaerts td img { height: 18px; max-width: 24px; object-fit: contain; }
@media (max-width: 575.98px) {
    #spielerstatistik { min-width: 416px; table-layout: fixed; width: 416px !important; }
    #spielerstatistik col:first-child { width: 150px !important; }
    #spielerstatistik col:not(:first-child) { width: 38px !important; }
    #spielerstatistik th:first-child, #spielerstatistik td:first-child { width: 150px !important; }
    #spielerstatistik th, #spielerstatistik td { padding: .25rem .3rem; }
    #spielerstatistik th:not(:first-child), #spielerstatistik td:not(:first-child) { width: 38px !important; white-space: nowrap; }
    #spielerstatistik .stx-player-cell { gap: .3rem; }
    #spielerstatistik .stx-player-thumb { display: block; height: 28px; width: 22px; }
    .stx-player-name { font-size: .75rem; }
    #torschuetzenstatistik { min-width: 295px; table-layout: fixed; width: 295px !important; }
    #torschuetzenstatistik col:first-child { width: 105px !important; }
    #torschuetzenstatistik col:not(:first-child) { width: 38px !important; }
    #torschuetzenstatistik th:first-child, #torschuetzenstatistik td:first-child { width: 105px !important; }
    #torschuetzenstatistik th, #torschuetzenstatistik td { padding: .25rem .3rem; }
    #torschuetzenstatistik th:not(:first-child), #torschuetzenstatistik td:not(:first-child) { width: 38px !important; white-space: nowrap; }
    #torschuetzenstatistik .stx-player-cell { gap: .3rem; }
    #torschuetzenstatistik .stx-player-thumb { display: block; height: 28px; width: 22px; }
    #torschuetzenstatistik .stx-player-name { font-size: .75rem; }
    #zuschauerstatistikHeim th, #zuschauerstatistikHeim td, #zuschauerstatistikAuswaerts th, #zuschauerstatistikAuswaerts td { padding: .3rem .35rem; }
    #zuschauerstatistikHeim th:first-child, #zuschauerstatistikHeim td:first-child, #zuschauerstatistikAuswaerts th:first-child, #zuschauerstatistikAuswaerts td:first-child { white-space: nowrap; width: 4rem; }
    #zuschauerstatistikHeim th:last-child, #zuschauerstatistikHeim td:last-child, #zuschauerstatistikAuswaerts th:last-child, #zuschauerstatistikAuswaerts td:last-child { white-space: nowrap; width: 6rem; }
    #stx-balance .stx-table { min-width: 560px; table-layout: fixed; }
    #stx-balance .stx-table th:first-child { width: 90px; }
    #stx-balance .stx-table th:not(:first-child), #stx-balance .stx-table td:not(:first-child) { white-space: nowrap; }
    #stx-mix .stx-table { table-layout: fixed; width: 100%; }
}

.stx-content {
    min-width: 0;
}
.stx-summary-row {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: 1.5rem;
}
.stx-summary-row > :only-child {
    grid-column: 1 / -1;
}
.stx-page .stx-summary-row > .stx-card,
.stx-page .stx-summary-row > .stx-section {
    margin-bottom: 0;
    min-width: 0;
}
.stx-summary-row > #stx-table-position,
.stx-summary-row > #stx-form,
.stx-summary-row > #stx-table-position .stx-card__body {
    display: flex;
    flex-direction: column;
}
.stx-summary-row > #stx-table-position .stx-card__body { flex: 1; }
.stx-summary-link { margin-top: auto; padding-top: .75rem; text-align: right; }
@media (max-width: 767.98px) {
    .stx-summary-row { gap: .75rem; grid-template-columns: minmax(0, 1fr); margin-bottom: .75rem; }
}

.stx-jumpnav {
    background: var(--fan-sky);
    border: 1px solid var(--fan-line);
    border-radius: var(--fan-radius);
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
    margin-bottom: 1.5rem;
    padding: 0.75rem 1rem;
}
.stx-jumpnav a {
    color: var(--fan-accent);
    font-size: 0.88rem;
    font-weight: 700;
    text-decoration: none;
}
.stx-jumpnav a:hover {
    color: var(--fan-ink);
    text-decoration: underline;
}

.stx-section {
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: var(--fan-radius);
    box-shadow: var(--fan-card-shadow);
    margin-bottom: 1.5rem;
    padding: 1.25rem 1.5rem;
}
.stx-section h2 {
    background: var(--fan-sky);
    border-left: 4px solid var(--fan-accent);
    border-radius: 0 4px 4px 0;
    color: var(--fan-ink);
    font: 1.25rem concert, Verdana, sans-serif;
    margin: -1.25rem -1.5rem 1.25rem;
    padding: 0.75rem 1.25rem;
}
.stx-goal-timeline { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.stx-goal-period { align-items: center; border-bottom: 1px solid var(--fan-line); display: grid; gap: .8rem; grid-template-columns: 3.25rem minmax(0, 1fr); min-width: 0; padding: .65rem .5rem; }
.stx-goal-period__minute { align-items: center; background: #f0f0f0; border: 2px solid #566578; border-radius: 50%; color: var(--fan-ink); display: flex; font-size: .95rem; font-weight: 800; height: 48px; justify-content: center; line-height: 1; width: 48px; }
.stx-goal-period__minute span { font-size: .72rem; }
.stx-goal-period__scores { display: grid; gap: .3rem; min-width: 0; }
.stx-goal-period__row { align-items: center; display: grid; gap: .35rem; grid-template-columns: 3rem minmax(0, 1fr) 1.2rem; min-height: 20px; }
.stx-goal-period__label { color: var(--fan-muted); font-size: .72rem; font-weight: 700; }
.stx-goal-period__balls { align-items: center; display: flex; flex-wrap: wrap; gap: 2px; min-width: 0; }
.stx-goal-period__balls img { display: block; height: 14px; object-fit: contain; width: 14px; }
.stx-goal-period__row strong { color: var(--fan-ink); font-size: .78rem; text-align: right; }
@media (max-width: 767.98px) {
    .stx-goal-timeline { grid-template-columns: 1fr; }
    .stx-page .stx-section,
    .stx-page .stx-card { background: #fff; border: 1px solid var(--fan-line); border-radius: var(--fan-radius); box-shadow: none; margin-bottom: .75rem; padding: .75rem; }
    .stx-page .stx-section > h2 { margin: -.75rem -.75rem .75rem; padding: .65rem .75rem; }
    .stx-page .stx-card__title { margin: -.75rem -.75rem 0; }
    .stx-page .stx-card__body { padding: .25rem 0 0; }
}

.stx-card {
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: var(--fan-radius);
    box-shadow: var(--fan-card-shadow);
    overflow: hidden;
}
.stx-card__title {
    background: var(--fan-sky);
    border-left: 4px solid var(--fan-accent);
    color: var(--fan-ink);
    font: 1.1rem concert, Verdana, sans-serif;
    margin: 0;
    padding: 0.75rem 1rem;
}
.stx-card__body {
    padding: 1rem;
}
#stx-table-position {
    margin-bottom: 1.5rem;
}
.stx-summary-row > #stx-table-position {
    margin-bottom: 0;
}

.stx-form-icons {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}
.stx-icon-win, .stx-icon-draw, .stx-icon-loss {
    align-items: center;
    border-radius: 6px;
    display: inline-flex;
    font-family: Verdana, sans-serif;
    font-size: 0.78rem;
    font-weight: 800;
    height: 32px;
    justify-content: center;
    width: 32px;
}
.stx-icon-win { background: #d9f1df; color: #176b37; }
.stx-icon-draw { background: #fff3c4; color: #8a6500; }
.stx-icon-loss { background: #fde8ea; color: #a51c30; }

.stx-player-summary { display: grid; gap: .5rem; grid-template-columns: repeat(5, minmax(0, 1fr)); margin-top: .35rem; padding: .8rem .45rem 0; }
.stx-scorer-summary { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.stx-player-summary > div { align-items: center; display: flex; flex-direction: column; gap: .2rem; min-width: 0; text-align: center; }
.stx-player-summary i { color: var(--fan-accent); font-size: .9rem; height: 1rem; }
.stx-player-summary strong { color: var(--fan-ink); font-size: 1rem; line-height: 1.2; }
.stx-player-summary .stx-card-swatch { margin: .025rem 0; }
.stx-squad-link { display: flex; justify-content: flex-end; margin-top: .75rem; }
.stx-squad-link .btn { align-items: center; display: inline-flex; gap: .4rem; min-height: 40px; }
@media (max-width: 575.98px) {
    .stx-player-summary { gap: .25rem; padding-left: 0; padding-right: 0; }
    .stx-player-summary strong { font-size: .9rem; }
    .stx-squad-link .btn { justify-content: center; width: auto; }
}

.stx-summary-row .stx-player-card__people {
    display: grid;
    gap: .75rem;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 110px), 1fr));
}
.stx-summary-row .stx-player-card__person {
    min-width: 0;
}
.stx-summary-row .stx-player-card__person > div {
    font-size: .8rem;
    line-height: 1.25;
    overflow-wrap: anywhere;
}
.stx-player-card__person img {
    border: 1px solid var(--fan-line);
    border-radius: 6px;
    height: 80px;
    object-fit: cover;
    width: 65px;
}
.stx-player-card__value {
    color: var(--fan-ink);
    font: 1.5rem/1.1 concert, Verdana, sans-serif;
    margin-top: 0.35rem;
}

.stx-season-nav {
    display: flex;
    justify-content: space-between;
    margin: 2rem 0 1rem;
}
.stx-season-nav a {
    align-items: center;
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: var(--fan-radius);
    color: var(--fan-ink);
    display: inline-flex;
    font-size: 0.9rem;
    font-weight: 600;
    gap: 0.4rem;
    padding: 0.5rem 1rem;
    text-decoration: none;
    transition: background 0.15s ease, border-color 0.15s ease;
}
.stx-season-nav a:hover {
    background: var(--fan-sky);
    border-color: var(--fan-accent);
    color: var(--fan-accent);
}

/* responsive Anpassungen */

/* Statistik-Charts, Balken & Zusammenfassungen */
#wrapper .stx-chart { background: #fff; border: 1px solid var(--fan-line); border-radius: 8px; box-shadow: 0 2px 8px rgba(20, 33, 61, 0.04); margin: 1rem 0 1.5rem; overflow: hidden; }
#wrapper .stx-chart__title { align-items: center; background: var(--fan-sky); border-left: 4px solid var(--fan-accent); color: var(--fan-ink); display: flex; font: 1.25rem concert, Verdana, sans-serif; justify-content: space-between; gap: .75rem; padding: .75rem 1.25rem; }
#wrapper .stx-chart__current-place { color: var(--fan-accent-dark); font: 700 1rem/1.2 Verdana, sans-serif; white-space: nowrap; }
#wrapper .stx-chart__viewport { min-height: 260px; overflow: hidden; padding: 1rem; }
#wrapper .stx-chart__viewport svg { display: block; height: clamp(260px, 34vw, 360px); min-height: 260px; width: 100%; }
#wrapper .stx-chart__viewport circle { cursor: crosshair; }
#wrapper .stx-chart__viewport circle:focus-visible { outline: none; stroke: var(--fan-focus); stroke-width: 3; }
.stx-chart__tooltip { background: var(--fan-ink); border-radius: 4px; box-shadow: var(--fan-shadow); color: #fff; display: none; font-size: .82rem; font-weight: 700; line-height: 1.35; padding: .45rem .65rem; pointer-events: none; position: fixed; transform: translate(-50%, -115%); white-space: nowrap; z-index: 1100; }
.stx-chart__tooltip.is-visible { display: block; }
#wrapper .stx-chart__legend { align-items: center; display: flex; flex-wrap: wrap; gap: .45rem 1rem; padding: .7rem 1rem; }
#wrapper .stx-chart__legend span { align-items: center; color: var(--fan-muted); display: inline-flex; font-size: .76rem; gap: .35rem; }
#wrapper .stx-chart__legend-swatch { border-radius: 2px; border-top: 2px solid; display: inline-block; height: .75rem; width: .9rem; }
#wrapper .stx-chart__legend-swatch--promotion { background: #d9f1df; border-color: #16803c; }
#wrapper .stx-chart__legend-swatch--promotion-playoff { background: #eef8ef; border-color: #6fad7d; }
#wrapper .stx-chart__legend-swatch--relegation-playoff { background: #fff3e0; border-color: #c98221; }
#wrapper .stx-chart__legend-swatch--relegation { background: #fde8ea; border-color: #bd2737; }
.stx-card-swatch { border: 1px solid rgba(20, 33, 61, .22); border-radius: 2px; display: inline-block; height: .95rem; vertical-align: middle; width: .68rem; }
.stx-card-swatch--yellow { background: #ffc928; }
.stx-card-swatch--yellow-red { background: linear-gradient(to bottom, #ffc928 0 50%, #bd2737 50% 100%); }
.stx-card-swatch--red { background: #bd2737; }

#wrapper .stx-attendance, #wrapper .stx-points { background: transparent; border: 0; border-radius: 0; box-shadow: none; margin: 0 0 1rem; max-width: none; padding: 0; }
#wrapper .stx-attendance__bar-row, #wrapper .stx-points__bar-row { align-items: center; display: grid; gap: 0.6rem; grid-template-columns: 58px minmax(100px, 1fr) 72px; margin: 0.55rem 0; }
#wrapper .stx-attendance__bar-row > span, #wrapper .stx-points__bar-row > span { color: var(--fan-muted); font-size: 0.78rem; }
#wrapper .stx-attendance__track, #wrapper .stx-points__track { background: #fff; border-radius: 999px; height: 13px; overflow: hidden; }
#wrapper .stx-attendance__track i { background: #16803c; border-radius: 999px; display: block; height: 100%; }
#wrapper .stx-attendance__track i.is-previous, #wrapper .stx-points__track i.is-previous { background: #8a98a8; }
#wrapper .stx-points__track i { background: #0b66b2; border-radius: 999px; display: block; height: 100%; }
#wrapper .stx-attendance__bar-row b, #wrapper .stx-points__bar-row b { text-align: right; font-size: 0.85rem; }
#wrapper .stx-attendance__difference, #wrapper .stx-points__difference { border-top: 1px solid var(--fan-line); font-size: 0.82rem; font-weight: 800; margin-top: 0.75rem; padding-top: 0.65rem; }
#wrapper .stx-attendance__peaks { display: flex; flex-wrap: wrap; gap: .25rem 1rem; margin-top: .75rem; font-size: .82rem; }
#wrapper .stx-attendance__peaks strong { color: var(--fan-ink); margin-left: .25rem; }
#wrapper .stx-summary-row .stx-attendance, #wrapper .stx-summary-row .stx-points { margin-bottom: 0; }
#wrapper .stx-attendance__difference.is-more, #wrapper .stx-points__difference.is-more { color: #16803c; }
#wrapper .stx-attendance__difference.is-less, #wrapper .stx-points__difference.is-less { color: #a51c30; }

#wrapper .stx-rank-summary { align-items: stretch; display: flex; flex-wrap: wrap; gap: 0.65rem; margin: 0 0 1rem; max-width: 720px; }
#wrapper .stx-rank-summary__item { align-items: center; background: var(--fan-sky); border: 1px solid var(--fan-line); border-radius: 8px; display: flex; gap: 0.7rem; min-width: 145px; padding: 0.65rem 0.8rem; }
#wrapper .stx-rank-summary__item span { color: var(--fan-muted); font-size: 0.76rem; font-weight: 800; text-transform: uppercase; }
#wrapper .stx-rank-summary__item strong { color: var(--fan-ink); font-size: 1.15rem; }
#wrapper .stx-rank-summary__item--place { background: #d9f1df; border-color: #b8dec1; }
#wrapper .stx-rank-summary__item--place strong { color: #176b37; font-size: 1.45rem; }
#wrapper .stx-rank-summary__previous { color: var(--fan-muted); font-size: .8rem; white-space: nowrap; }

#wrapper .stx-cup-achievement { align-items: center; background: #fff8e7; border: 1px solid #ead9a5; border-left: 4px solid #b27900; border-radius: 8px; display: flex; flex-wrap: wrap; gap: 0.45rem 0.8rem; margin: 0 0 1rem; max-width: 720px; padding: 0.8rem 1rem; }
#wrapper .stx-cup-achievement__label { color: #8a6500; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
#wrapper .stx-cup-achievement span:not(.stx-cup-achievement__label) { color: var(--fan-muted); }
#wrapper .stx-cup-achievement .is-winner { background: #d9f1df; border-radius: 999px; color: #176b37; font-size: 0.78rem; padding: 0.25rem 0.55rem; }

#wrapper .iconWin, #wrapper .iconDraw, #wrapper .iconDefeat { border: 0; border-radius: 7px; box-shadow: 0 2px 5px rgba(20, 33, 61, 0.14); font-family: Verdana, Arial, sans-serif; font-size: 0.72rem; font-weight: 800; height: 34px; margin: 3px; width: 34px; transition: transform 0.18s ease, box-shadow 0.18s ease; }
#wrapper .iconWin { background: #d9f1df; color: #176b37; }
#wrapper .iconDraw { background: #fff3c4; color: #8a6500; }
#wrapper .iconDefeat { background: #fde8ea; color: #a51c30; }
#wrapper .iconWin:hover, #wrapper .iconDraw:hover, #wrapper .iconDefeat:hover { box-shadow: 0 4px 10px rgba(20, 33, 61, 0.2); transform: translateY(-2px); }

/* Gegnerbilanzen in der Saison */
.stx-balance-table { margin-bottom: 0; }
.stx-balance-table td { vertical-align: middle; padding: 0.55rem 0.4rem; }
.stx-balance-table .stx-balance-category { padding-left: .2rem; padding-right: .2rem; text-align: center; vertical-align: top; width: 82px; }
.stx-balance-category .stx-balance-count { display: flex; margin: 0 auto; }
.stx-balance-category strong { color: var(--fan-muted); display: block; font-size: .7rem; line-height: 1.2; margin-top: .25rem; }
.stx-balance-count {
    align-items: center;
    border: 1px solid transparent;
    border-radius: 6px;
    color: var(--fan-ink);
    display: inline-flex;
    font-family: concert, Verdana, sans-serif;
    font-size: 1.2rem;
    font-weight: 700;
    height: 38px;
    justify-content: center;
    min-width: 38px;
    padding: 0 0.5rem;
}
.stx-balance-count--win { background: #d9f1df; border-color: #176b37; color: #176b37; }
.stx-balance-count--draw { background: #fff3c4; border-color: #8a6500; color: #8a6500; }
.stx-balance-count--loss { background: #fde8ea; border-color: #a51c30; color: #a51c30; }
.stx-balance-logos { align-items: center; display: flex; flex-wrap: wrap; gap: .4rem; }
.stx-balance-logos a { display: inline-block; line-height: normal; }
.stx-balance-logos img { height: 36px; width: auto; object-fit: contain; transition: transform 0.15s ease; }
.stx-balance-logos img:hover { transform: scale(1.18); }

/* Rekorde Grid (Höchste Siege / Niederlagen) */


/* Wrapper-spezifische Stile für Statistik & Spielerarchiv Relaunch */
#wrapper > .row > [class*="col-lg-8"],
#wrapper > .row > [class*="col-md-4"] {
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: var(--fan-radius);
    box-shadow: var(--fan-card-shadow);
    margin-bottom: 1.25rem;
    padding: 1rem !important;
}
#wrapper > .row > [class*="col-lg-8"] h2,
#wrapper > .row > [class*="col-md-4"] h2 {
    background: var(--fan-sky);
    border-bottom: 0;
    border-left: 4px solid var(--fan-accent);
    margin: -1rem -1rem 1rem;
    padding: 0.85rem 1rem;
}
#wrapper .dataTables_filter input {
    border: 1px solid var(--fan-line);
    border-radius: 4px;
    margin-left: 0.5rem;
    padding: 0.35rem 0.55rem;
}
#wrapper .dataTables_info, #wrapper .dataTables_paginate {
    color: var(--fan-muted);
    font-size: 0.8rem;
    padding-top: 0.7rem;
}

/* Spielerarchiv-Filterbuttons & Ranking-Highlights */
.swa-card__results .swa-person:nth-child(-n+3) { background: var(--fan-sky); border-radius: 6px; padding: 0.5rem; }
.swa-card__results .swa-person:nth-child(-n+3) .swa-person__place { color: var(--fan-accent); }
.swa-card__results .swa-person--loss { background: #eef0f2; border-radius: 6px; padding: 0.5rem; }
.swa-card__results .swa-person--loss .swa-person__place { color: #697586; }
.swa-ranking__wins { color: var(--fan-win); font-weight: 800; }
.swa-ranking__metric { color: var(--fan-ink); text-decoration: none; }
.swa-ranking__metric:hover, .swa-ranking__metric:focus-visible { text-decoration: underline; }
.swa-ranking__metric--wins { color: var(--fan-win); font-weight: 800; }
.swa-ranking__title { align-items: center; display: flex; flex-wrap: wrap; gap: 0.75rem; justify-content: space-between; }
.swa-filter__reset {
    border-left: 1px solid #b8c9d8 !important;
    border-radius: 4px !important;
    margin-left: auto;
    padding-left: 1rem !important;
}
.swa-filter__reset:hover, .swa-filter__reset:focus-visible {
    background: #fff !important;
    border-color: var(--fan-accent) !important;
    color: var(--fan-accent) !important;
    text-decoration: underline;
}

/* ==========================================================================
   11. GLOBALE RESPONSIVE ANPASSUNGEN
   ========================================================================== */
@media (max-width: 991.98px) {
    .ps-item { grid-template-columns: 150px minmax(0, 1fr); gap: 0.75rem; }
    .ps-item__source { grid-column: 1 / -1; border-top: 1px dashed var(--fan-line); padding-top: 0.5rem; text-align: left; }
    .ps-filter-grid, .km-filter-grid { grid-template-columns: 1fr 1fr; }
    .ma-players { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tr-grid { grid-template-columns: 1fr; }
}

@media (max-width: 767.98px) {
    .sr-events, .sr-squads, .kmd-nav-card { grid-template-columns: 1fr; }
    .kmd-article-card { padding: 1.25rem; }
}

@media (max-width: 575.98px) {
    .sr-page, .vp-page, .sp-page, .st-page, .so-page, .ma-page, .sz-page, .sw-page, .swd-page, .swa-page, .pt-page, .ps-page, .km-page, .kmd-page, .tr-page { padding-left: 0.75rem; padding-right: 0.75rem; }
    .sr-hero__teams, .vp-hero__teams { gap: 0.6rem; padding: 1.15rem 0.75rem 1rem; }
    .sr-team, .vp-team { flex-direction: column; gap: 0.5rem; }
    .sr-score { font-size: 1.7rem; }
    .st-matchday__row { grid-template-columns: minmax(0, 1fr) 76px; }
    .ma-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ma-players { grid-template-columns: 1fr; }
    .tr-news-item { grid-template-columns: 1fr; gap: 0.2rem; }
        .ps-filter-grid, .km-filter-grid, .ps-item { grid-template-columns: 1fr; }
    .ps-pagination, .km-pagination { flex-direction: column; }
    .ps-pagination .fp-btn, .km-pagination .fp-btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

/* Downloads: neues Archiv-Layout */
.dl-page { --dl-ink: #152536; --dl-blue: #174b72; --dl-blue-dark: #0d3a5d; --dl-sky: #eaf3f8; --dl-yellow: #f2c94c; background: #fff; color: var(--dl-ink); padding: 0 1rem 2.5rem; }
.dl-breadcrumb { padding-top: 1rem; }
.dl-breadcrumb .breadcrumb { margin-bottom: .5rem; }
.dl-toolbar { background: #fff; border: 1px solid var(--fan-line); border-radius: var(--fan-radius); box-shadow: var(--fan-card-shadow); margin-bottom: 1.5rem; padding: 1rem; }
.dl-toolbar__row { display: flex; gap: .75rem; align-items: end; flex-wrap: wrap; }
.dl-toolbar__search { flex: 1 1 18rem; }
.dl-toolbar label { color: var(--fan-muted); display: block; margin-bottom: .35rem; font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.dl-filters { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .9rem; }
.dl-filter { background: #fff; border: 1px solid var(--fan-line); border-radius: 999px; color: var(--fan-accent); display: inline-flex; font: 600 0.82rem/1.2 Verdana, Arial, sans-serif; padding: 0.38rem 0.75rem; text-decoration: none !important; transition: all 0.15s ease-in-out; }
.dl-filter:hover, .dl-filter:focus-visible, .dl-filter.is-active { background: var(--fan-accent); border-color: var(--fan-accent); color: #fff !important; }
.dl-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); gap: 1rem; }
.dl-card { display: flex; flex-direction: column; min-width: 0; border: 1px solid #d8e2e8; background: #fff; box-shadow: 0 3px 12px rgba(21, 37, 54, .06); }
.dl-card__media { display: flex; align-items: center; justify-content: center; min-height: 10rem; padding: .75rem; background: #f3f7f9; }
.dl-card__media img { max-width: 100%; max-height: 13rem; object-fit: contain; }
.dl-card__placeholder { color: #6b7d89; font-size: 2.5rem; }
.dl-card__body { display: flex; flex: 1; flex-direction: column; padding: 1rem; }
.dl-card__category { color: #b08300; font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.dl-card h3 { margin: .25rem 0 .4rem; font-size: 1.15rem; }
.dl-card__description { flex: 1; margin-bottom: 1rem; color: #526572; font-size: .9rem; }
.dl-card__meta { margin: 0 0 1rem; padding-top: .75rem; border-top: 1px solid #e5ecef; color: #687985; font-size: .8rem; }
.dl-card__meta span { display: inline-block; margin-right: .65rem; }
.dl-card__meta-item { align-items: center; display: inline-flex; gap: .3rem; }
.dl-card__meta-item i { color: var(--fan-accent); font-size: .82rem; }
.dl-card__meta-item a { color: inherit; }

.dl-card__action { align-self: flex-start; }
.dl-empty { padding: 2rem 1rem; border: 1px dashed #a9c2d2; background: #f7fafb; text-align: center; }


/* Sternstunden: neues Archiv-Layout */
.ss-page {
    background: #fff;
    box-sizing: border-box;
    color: var(--fan-ink);
    margin: 0 auto;
    max-width: 1120px;
    min-height: 80vh;
    padding: 0 1rem 2.5rem;
}
.ss-breadcrumb { font-size: .78rem; padding-top: 1rem; }
.ss-breadcrumb .breadcrumb { background: transparent; margin-bottom: .5rem; padding: 0; }
.ss-intro { background: var(--fan-sky); border-left: 4px solid var(--fan-accent); border-radius: var(--fan-radius); margin-bottom: 1.25rem; padding: 1rem 1.25rem; }
.ss-intro__text { color: var(--fan-ink); line-height: 1.65; }
.ss-category-nav { display: flex; flex-wrap: wrap; gap: .45rem; justify-content: center; margin-bottom: 1.25rem; }
.ss-category-link { background: #fff; border: 1px solid var(--fan-line); border-radius: 999px; color: var(--fan-accent); font: 600 .82rem/1.2 Verdana, Arial, sans-serif; padding: .38rem .75rem; text-decoration: none !important; transition: all .15s ease-in-out; }
.ss-category-link:hover, .ss-category-link:focus-visible, .ss-category-link.is-active { background: var(--fan-accent); border-color: var(--fan-accent); color: #fff !important; }
.ss-category-link.ss-category--stars { border-color: #0b66b2; color: #0b66b2; }
.ss-category-link.ss-category--stars:hover, .ss-category-link.ss-category--stars:focus-visible, .ss-category-link.ss-category--stars.is-active { background: #0b66b2; border-color: #0b66b2; }
.ss-category-link.ss-category--stars.is-active { color: #fff !important; }
.ss-category-link.ss-category--special { border-color: #198754; color: #198754; }
.ss-category-link.ss-category--special:hover, .ss-category-link.ss-category--special:focus-visible, .ss-category-link.ss-category--special.is-active { background: #198754; border-color: #198754; }
.ss-category-link.ss-category--special.is-active { color: #fff !important; }
.ss-category-link.ss-category--disappointments { border-color: #dc3545; color: #dc3545; }
.ss-category-link.ss-category--disappointments:hover, .ss-category-link.ss-category--disappointments:focus-visible, .ss-category-link.ss-category--disappointments.is-active { background: #dc3545; border-color: #dc3545; }
.ss-category-link.ss-category--disappointments.is-active { color: #fff !important; }
.ss-filter-form { align-items: end; display: grid; gap: .75rem; grid-template-columns: repeat(4, minmax(0, 1fr)) auto; }
.ss-filter-option { min-width: 0; }
.ss-filter-option span { color: var(--fan-muted); display: block; font-size: .75rem; font-weight: 700; margin-bottom: .35rem; text-transform: uppercase; }
@media (max-width: 991.98px) {
    .ss-filter-form { display: flex; flex-wrap: wrap; }
    .ss-filter-option { flex: 1 1 15rem; }
}
.ss-match-grid { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ss-match-card { background: #fff; border: 1px solid var(--fan-line); border-radius: var(--fan-radius); box-shadow: var(--fan-card-shadow); display: flex; flex-direction: column; overflow: hidden; }
.ss-match-card__header { background: var(--fan-sky); border-bottom: 1px solid var(--fan-line); color: var(--fan-muted); display: flex; font-size: .78rem; justify-content: space-between; padding: .65rem .85rem; }
.ss-match-card__header span { color: var(--fan-accent); font-weight: 700; text-align: right; }
.ss-match-card__body { flex: 1; padding: 1rem; }
.ss-match-card__teams { align-items: center; display: grid; gap: .6rem; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); }
.ss-team { align-items: center; display: flex; flex-direction: column; gap: .4rem; text-align: center; }
.ss-team img { height: 48px; max-width: 64px; object-fit: contain; }
.ss-team span { font-size: .86rem; font-weight: 600; line-height: 1.25; }
.ss-score { font-size: 1.5rem; white-space: nowrap; }
.ss-score--win { color: #16804b; }
.ss-score--loss { color: #b33b3b; }
.ss-score--draw { color: var(--fan-accent); }
.ss-match-card h3 { font-size: 1rem; line-height: 1.35; margin: 1rem 0 .5rem; text-align: center; }
.ss-match-card h3 a { color: var(--fan-ink); text-decoration: none; }
.ss-match-card h3 a:hover { color: var(--fan-accent); }
.ss-match-card__note { color: var(--fan-muted); font-size: .82rem; margin-bottom: .8rem; text-align: center; }
.ss-match-card__body .fp-btn { display: flex; margin: .75rem auto 0; width: max-content; }
.ss-match-card__footer { border-top: 1px solid var(--fan-line); color: var(--fan-muted); font-size: .76rem; padding: .65rem .85rem; text-align: center; }

@media (max-width: 700px) {
    .ss-match-grid { grid-template-columns: 1fr; }
}

/* Bücher: neues Archiv-Layout */
.book-page {
    background: #fff;
    box-sizing: border-box;
    color: var(--fan-ink);
    margin: 0 auto;
    max-width: 1120px;
    min-height: 80vh;
    padding: 0 1rem 2.5rem;
}
.book-breadcrumb { font-size: .78rem; padding-top: 1rem; }
.book-breadcrumb .breadcrumb { background: transparent; margin-bottom: .5rem; padding: 0; }
.book-filter-form { align-items: end; display: flex; flex-wrap: wrap; gap: .75rem; }
.book-filter-form label { flex: 1 1 12rem; }
.book-filter-form label span { color: var(--fan-muted); display: block; font-size: .75rem; font-weight: 700; margin-bottom: .35rem; text-transform: uppercase; }
.book-filter-form .book-filter-form__search { flex-basis: 22rem; }
/* book-grid: generisch, siehe .fp-grid--3 */
.book-card { background: #fff; border: 1px solid var(--fan-line); border-radius: var(--fan-radius); box-shadow: var(--fan-card-shadow); display: flex; flex-direction: column; min-width: 0; overflow: hidden; }
.book-card__cover { align-items: center; aspect-ratio: 4 / 3; background: var(--fan-sky); display: flex; justify-content: center; overflow: hidden; padding: .75rem; }
.book-card__cover a { align-items: center; display: flex; height: 100%; justify-content: center; min-width: 0; width: 100%; }
.book-card__cover img { display: block; height: auto; max-height: 100%; max-width: 100%; object-fit: contain; width: auto; }
.book-card__content { flex: 1; min-width: 0; padding: 1rem; }
.book-card h3 { font-size: 1.05rem; line-height: 1.3; margin: 0 0 .45rem; overflow-wrap: anywhere; }
.book-card h3 a { color: var(--fan-ink); text-decoration: none; }
.book-card h3 a:hover { color: var(--fan-accent); }
.book-card__author { color: var(--fan-muted); font-size: .84rem; line-height: 1.45; margin-bottom: .9rem; overflow-wrap: anywhere; }
.book-card__facts { border-top: 1px solid var(--fan-line); font-size: .8rem; margin: 0 0 .9rem; padding-top: .7rem; }
.book-card__facts div { display: flex; gap: .5rem; justify-content: space-between; }
.book-card__facts dt { color: var(--fan-muted); }
.book-card__facts dd { margin: 0; max-width: 65%; overflow-wrap: anywhere; text-align: right; }
.book-card__ratings { border-top: 1px solid var(--fan-line); display: grid; gap: .8rem; padding-top: .8rem; }
.book-card__ratings > div { display: grid; gap: .25rem; }
.book-card__ratings strong { font-size: .78rem; }
.book-card__ratings small { color: var(--fan-muted); font-size: .72rem; }
.book-rating { display: flex; gap: .12rem; }
.book-rating img { height: 24px; width: 24px; }
.book-card__footer { align-items: center; border-top: 1px solid var(--fan-line); display: flex; flex-wrap: wrap; gap: .65rem; justify-content: space-between; padding: .75rem 1rem; }
.book-card__footer > span { color: var(--fan-muted); font-size: .72rem; overflow-wrap: anywhere; }
.book-card__footer .fp-btn { font-size: .78rem; height: 34px; padding: .3rem .65rem; }


@media (max-width: 620px) {
    .book-card__cover { aspect-ratio: 4 / 3; }
}

/* Buchdetail: neues Rezension-Layout */
.book-detail-page {
    background: #fff;
    box-sizing: border-box;
    color: var(--fan-ink);
    margin: 0 auto;
    max-width: 1120px;
    min-height: 80vh;
    padding: 0 1rem 2.5rem;
}
.book-detail-breadcrumb { font-size: .78rem; padding-top: 1rem; }
.book-detail-breadcrumb .breadcrumb { background: transparent; margin-bottom: .5rem; padding: 0; }
.book-detail-profile { background: #fff; border: 1px solid var(--fan-line); border-radius: var(--fan-radius); box-shadow: var(--fan-card-shadow); display: grid; gap: 1.25rem; grid-template-columns: 14rem minmax(0, 1fr) 15rem; margin-bottom: 1.5rem; padding: 1.25rem; }
.book-detail-cover { align-items: flex-start; background: var(--fan-sky); display: flex; justify-content: center; min-height: 18rem; padding: .75rem; }
.book-detail-cover img { max-height: 22rem; max-width: 100%; object-fit: contain; }
.book-detail-facts h2 { border-bottom: 2px solid var(--fan-line); font: 1.25rem/1.2 concert, Verdana, sans-serif; margin: 0 0 .75rem; padding-bottom: .45rem; text-transform: uppercase; }
.book-detail-facts dl { margin: 0; }
.book-detail-facts dl > div { border-bottom: 1px solid var(--fan-line); display: flex; gap: .75rem; justify-content: space-between; padding: .45rem 0; }
.book-detail-facts dt { color: var(--fan-muted); font-size: .84rem; }
.book-detail-facts dd { margin: 0; text-align: right; }
.book-detail-ratings { align-self: start; background: var(--fan-sky); border-left: 4px solid var(--fan-accent); padding: .9rem; }
.book-detail-rating { display: grid; gap: .35rem; }
.book-detail-rating + .book-detail-rating { border-top: 1px solid var(--fan-line); margin-top: 1rem; padding-top: 1rem; }
.book-detail-rating strong { font-size: .82rem; text-transform: uppercase; }
.book-detail-rating > span:not(.book-detail-rating__icons) { color: var(--fan-muted); font-size: .8rem; }
.book-detail-rating small { color: var(--fan-muted); font-size: .78rem; line-height: 1.45; }
.book-detail-rating__icons { display: flex; gap: .15rem; }
.book-detail-rating__icons img { height: 28px; width: 28px; }
.book-detail-review { border-top: 3px solid var(--fan-accent); margin: 0 auto; max-width: 860px; padding: 1.5rem 0; }
.book-detail-review__eyebrow { color: var(--fan-accent); font-size: .76rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.book-detail-review h2 { font: 1.7rem/1.2 concert, Verdana, sans-serif; margin: .4rem 0 .5rem; }
.book-detail-review__byline { color: var(--fan-muted); font-size: .88rem; margin-bottom: 1.5rem; }
.book-detail-review__text { font-size: 1rem; line-height: 1.75; }
.book-detail-review__text img { height: auto; max-width: 100%; }
.book-detail-actions { border-top: 1px solid var(--fan-line); display: flex; justify-content: center; padding-top: 1.25rem; }
.book-detail-btn { align-items: center; border: 1px solid transparent; border-radius: 6px; display: inline-flex; font-size: .88rem; font-weight: 600; height: 38px; justify-content: center; padding: .4rem .9rem; text-decoration: none !important; transition: all .15s ease-in-out; }
.book-detail-btn-secondary { background: var(--fan-sky); border-color: var(--fan-line); color: var(--fan-ink) !important; }
.book-detail-btn-secondary:hover, .book-detail-btn-secondary:focus-visible { background: #e1edf7; border-color: #b7cde3; color: var(--fan-ink) !important; }

@media (max-width: 900px) {
    .book-detail-profile { grid-template-columns: 12rem minmax(0, 1fr); }
    .book-detail-ratings { grid-column: 1 / -1; }
}

@media (max-width: 620px) {
    .book-detail-profile { grid-template-columns: 1fr; }
    .book-detail-cover { min-height: 16rem; }
    .book-detail-facts dd { max-width: 60%; }
}

/* Forumhits: neues Übersichts- und Detailseitenlayout */
.fh-page, .fhd-page {
    background: #fff;
    box-sizing: border-box;
    color: var(--fan-ink);
    margin: 0 auto;
    max-width: 1120px;
    min-height: 80vh;
    padding: 0 1rem 2.5rem;
}
.fh-breadcrumb, .fhd-breadcrumb { font-size: .78rem; padding-top: 1rem; }
.fh-breadcrumb .breadcrumb, .fhd-breadcrumb .breadcrumb { background: transparent; margin-bottom: .5rem; padding: 0; }
.fh-filter-form { align-items: end; display: grid; gap: .75rem; grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr)) auto; }
.fh-filter-form label { min-width: 0; }
.fh-filter-form label span { color: var(--fan-muted); display: block; font-size: .75rem; font-weight: 700; margin-bottom: .35rem; text-transform: uppercase; }
.fh-filter-form .fh-filter-form__search { flex-basis: 22rem; }

.fh-list { display: grid; gap: 1rem; }
.fh-category-heading { background: var(--fan-sky); border: 0; border-left: 4px solid var(--fan-accent); border-radius: 0 4px 4px 0; font: 1.2rem concert, Verdana, sans-serif; margin: 1.75rem 0 1rem; padding: .6rem 1rem; }
.fhd-comment { background: var(--fan-sky); border-left: 4px solid var(--fan-accent); margin: 0 auto 1.5rem; max-width: 860px; padding: 1rem 1.25rem; }
.fhd-comment strong, .fhd-article__label { color: var(--fan-accent); font-size: .76rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.fhd-comment p { color: var(--fan-ink); margin: .4rem 0 0; }
.fhd-article { margin: 0 auto; max-width: 860px; padding: 0 0 1.5rem; }
.fhd-article__text { font-size: 1.02rem; line-height: 1.8; margin-top: 1rem; overflow-wrap: anywhere; }
.fhd-article__text p { margin: 0 0 1.1rem; }
.fhd-article__text img { height: auto; max-width: 100%; }
.fhd-article__text h2, .fhd-article__text h3, .fhd-article__text h4 { font-family: concert, Verdana, sans-serif; line-height: 1.25; margin: 1.6rem 0 .6rem; }
.fhd-link { background: var(--fan-sky); border: 1px solid var(--fan-line); border-radius: var(--fan-radius); display: grid; gap: .35rem; margin: 0 auto 1.5rem; max-width: 860px; overflow-wrap: anywhere; padding: .9rem 1rem; }
.fhd-link strong { color: var(--fan-ink); font-size: .82rem; text-transform: uppercase; }
.fhd-link a { color: var(--fan-accent); }
.fhd-actions { display: flex; justify-content: center; margin-top: .5rem; }

@media (max-width: 700px) {
    .fh-filter-form { grid-template-columns: 1fr; }
    .fh-filter-form > .fp-btn { width: 100%; }
}

/* Gegnerbilanz: neues Übersichts- und Detailseitenlayout */
.opponent-page, .opponent-detail-page { background: #fff; box-sizing: border-box; color: var(--fan-ink); margin: 0 auto; max-width: 1120px; min-height: 80vh; padding: 0 1rem 2.5rem; }
.opponent-breadcrumb, .opponent-detail-breadcrumb { font-size: .78rem; padding-top: 1rem; }
.opponent-breadcrumb .breadcrumb, .opponent-detail-breadcrumb .breadcrumb { background: transparent; margin-bottom: .5rem; padding: 0; }
.opponent-detail-hero__meta { color: rgba(255,255,255,.95); margin-top: .65rem; }
.opponent-filter-form { align-items: end; display: flex; flex-wrap: wrap; gap: .75rem; }
.opponent-filter-form label { flex: 1 1 12rem; }
.opponent-filter-form label span { color: var(--fan-muted); display: block; font-size: .75rem; font-weight: 700; margin-bottom: .35rem; text-transform: uppercase; }
.opponent-filter-form .opponent-filter-form__search { flex-basis: 22rem; }
.opponent-filter-buttons { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1rem; }
.opponent-filter-group { display: flex; align-items: center; flex-wrap: wrap; gap: .45rem; }
.opponent-filter-group__label { color: var(--fan-muted); font-size: .75rem; font-weight: 800; margin-right: .15rem; text-transform: uppercase; }
.opponent-quick-filter { background: #fff; border: 1px solid var(--fan-line); border-radius: 999px; color: var(--fan-accent); cursor: pointer; font-size: .82rem; font-weight: 700; padding: .4rem .75rem; transition: all .15s ease-in-out; }
.opponent-quick-filter:hover, .opponent-quick-filter:focus-visible, .opponent-quick-filter.is-active { background: var(--fan-accent); border-color: var(--fan-accent); color: #fff; }
@media (max-width: 767.98px) {
    .opponent-filter-buttons { align-items: flex-start; flex-direction: column; gap: .75rem; }
}

/* opponent-grid: generisch, siehe .fp-grid--4 */
.opponent-card { background: #fff; border: 1px solid var(--fan-line); border-radius: var(--fan-radius); box-shadow: var(--fan-card-shadow); display: flex; flex-direction: column; min-width: 0; overflow: hidden; }
.opponent-card--international { border-top: 4px solid var(--fan-gold); }
.opponent-card--positive { border-bottom: 4px solid var(--fan-win); }
.opponent-card--negative { border-bottom: 4px solid #b33b3b; }
.opponent-card--neutral { border-bottom: 4px solid var(--fan-accent); }
.opponent-card__logo { align-items: center; background: var(--fan-sky); display: flex; height: 8rem; justify-content: center; padding: .8rem; }
.opponent-card__logo img { height: 68px; max-width: 100%; object-fit: contain; }
.opponent-card__body { flex: 1; padding: .85rem; text-align: center; }
.opponent-card h3 { font-size: .95rem; line-height: 1.3; margin: 0; overflow-wrap: anywhere; }
.opponent-card h3 a { color: var(--fan-ink); text-decoration: none; }
.opponent-card h3 a:hover { color: var(--fan-accent); }
.opponent-card__other-names { color: var(--fan-muted); font-size: .76rem; margin-top: .25rem; overflow-wrap: anywhere; }
.opponent-card__country { align-items: center; color: var(--fan-muted); display: flex; font-size: .76rem; gap: .35rem; justify-content: center; margin-top: .5rem; }
.opponent-card__country img { height: 16px; width: auto; }
.opponent-card__balance { border-top: 1px solid var(--fan-line); display: grid; gap: .2rem; margin-top: .75rem; padding-top: .65rem; }
.opponent-card__balance strong { font-size: .72rem; text-transform: uppercase; }
.opponent-card--positive .opponent-card__balance strong { color: var(--fan-win); }
.opponent-card--negative .opponent-card__balance strong { color: #b33b3b; }
.opponent-card--neutral .opponent-card__balance strong { color: var(--fan-accent); }
.opponent-card__balance span, .opponent-card__balance small { color: var(--fan-muted); font-size: .72rem; }
.opponent-history { align-items: start; background: var(--fan-sky); border-left: 4px solid var(--fan-accent); display: grid; gap: 1rem; grid-template-columns: 10rem minmax(0, 1fr); margin-bottom: 1.5rem; padding: 1rem; }
.opponent-history__country { align-items: center; color: var(--fan-muted); display: flex; flex-direction: column; font-size: .8rem; gap: .4rem; text-align: center; }
.opponent-history__country img { max-height: 24px; width: auto; }
.opponent-history__clubs { display: flex; flex-wrap: wrap; gap: 1rem; }
.opponent-history__clubs > div { align-items: center; display: grid; gap: .3rem .6rem; grid-template-columns: 42px minmax(0, 1fr); min-width: 14rem; }
.opponent-history__clubs img { grid-row: span 2; height: 40px; max-width: 42px; object-fit: contain; }
.opponent-history__clubs span { font-weight: 700; }
.opponent-history__clubs small { color: var(--fan-muted); font-size: .75rem; }
.opponent-section-heading { border-bottom: 2px solid var(--fan-line); margin-bottom: 1rem; padding-bottom: .55rem; }
.opponent-section-heading__eyebrow { color: var(--fan-accent); font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.opponent-section-heading h2 { font: 1.35rem/1.2 concert, Verdana, sans-serif; margin: .25rem 0 0; text-transform: uppercase; }
.opponent-balance-section, .opponent-table-section, .opponent-matches { margin: 0 auto 2rem; max-width: 980px; }
.opponent-balance-grid { display: grid; gap: .75rem; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.opponent-stat { background: var(--fan-sky); border: 1px solid var(--fan-line); border-radius: var(--fan-radius); display: flex; flex-direction: column; min-width: 0; padding: .8rem; text-align: center; }
.opponent-stat--highlight { background: var(--fan-accent); border-color: var(--fan-accent); color: #fff; }
.opponent-stat strong { font-size: 1.65rem; line-height: 1; }
.opponent-stat span { font-size: .78rem; font-weight: 700; margin-top: .4rem; }
.opponent-stat small { font-size: .7rem; margin-top: .5rem; opacity: .8; }
.opponent-balance-group { margin-bottom: 1.25rem; }
.opponent-balance-group h3 { font: 1.05rem/1.2 concert, Verdana, sans-serif; margin: 0 0 .5rem; text-transform: uppercase; }
.opponent-balance-table { border: 1px solid var(--fan-line); border-radius: var(--fan-radius); overflow: hidden; }
.opponent-balance-table__row { display: grid; grid-template-columns: minmax(10rem, 1fr) repeat(5, 4rem); padding: .55rem .7rem; }
.opponent-balance-table__row:nth-child(even) { background: #f8fbfd; }
.opponent-balance-table__row--head { background: var(--fan-sky); color: var(--fan-muted); font-size: .75rem; font-weight: 700; text-transform: uppercase; }
.opponent-balance-table__row span:not(:first-child) { text-align: center; }
.opponent-season-heading { background: var(--fan-sky); border-left: 4px solid var(--fan-accent); font: 1rem/1.2 concert, Verdana, sans-serif; margin: 1rem 0 0; padding: .55rem .75rem; }
.opponent-match-list { display: grid; gap: .65rem; }
.opponent-match { align-items: center; border: 1px solid var(--fan-line); border-radius: var(--fan-radius); display: grid; gap: .75rem; grid-template-columns: 300px minmax(0, 1fr) auto 32px; min-height: 64px; padding: .8rem .9rem; }
.opponent-match__meta { color: var(--fan-muted); font-size: .8rem; line-height: 1.4; }
.opponent-match__category { display: inline-flex; font-size: .95rem; margin-right: .2rem; vertical-align: middle; }
.opponent-match__category--stars { color: #0b66b2; }
.opponent-match__category--special { color: #198754; }
.opponent-match__category--disappointment { color: #dc3545; }
.opponent-match__teams { color: var(--fan-ink); display: flex; font-size: .98rem; font-weight: 500; justify-content: space-between; gap: .6rem; overflow-wrap: anywhere; }
.opponent-match__teams a { color: inherit; font-size: inherit; font-weight: inherit; text-decoration: none; }
.opponent-match__score { font-size: 1.1rem; white-space: nowrap; }
.opponent-match a { color: var(--fan-accent); font-size: .78rem; white-space: nowrap; }
.opponent-match .opponent-match__teams a { color: inherit; font-size: inherit; font-weight: inherit; }
.opponent-match .opponent-match__report { align-items: center; display: flex; font-size: 1rem; height: 32px; justify-content: center; min-width: 32px; }
.opponent-detail-actions { border-top: 1px solid var(--fan-line); display: flex; justify-content: center; padding-top: 1.25rem; }
.opponent-balance-chart { background: #fff; border: 1px solid var(--fan-line); border-radius: var(--fan-radius); margin: 0 auto 2rem; max-width: 980px; overflow: hidden; }
.opponent-balance-chart__filters { background: var(--fan-sky); display: flex; flex-wrap: wrap; gap: .45rem; padding: 1rem; }
.opponent-balance-chart__filter { background: #fff; border: 1px solid var(--fan-line); border-radius: 999px; color: var(--fan-accent); cursor: pointer; font-size: .82rem; font-weight: 700; padding: .4rem .75rem; transition: all .15s ease-in-out; }
.opponent-balance-chart__filter:hover, .opponent-balance-chart__filter:focus-visible, .opponent-balance-chart__filter.is-active { background: var(--fan-accent); border-color: var(--fan-accent); color: #fff; }
.opponent-balance-chart__content { display: grid; gap: 1rem 1.5rem; grid-template-columns: minmax(0, 1fr) auto; padding: 1rem; }
.opponent-balance-chart__intro { color: var(--fan-muted); font-size: .86rem; margin: 0 0 .6rem; }
.opponent-balance-chart__bar { background: #f7fafc; border: 1px solid var(--fan-line); border-radius: 5px; display: flex; height: 28px; overflow: hidden; }
.opponent-balance-chart__segment { align-items: center; color: var(--fan-ink); display: flex; font-size: .78rem; font-weight: 800; justify-content: center; min-width: 0; transition: width .2s ease-in-out; }
.opponent-balance-chart__segment--win { background: #d9f1df; color: #176b37; }
.opponent-balance-chart__segment--draw { background: #fff3c4; color: #8a6500; }
.opponent-balance-chart__segment--loss { background: #fde8ea; color: #a51c30; }
.opponent-balance-chart__values { display: grid; gap: .6rem; grid-template-columns: repeat(5, minmax(0, 1fr)); margin-top: 1rem; }
.opponent-balance-chart__values > div { border-left: 2px solid var(--fan-line); display: grid; gap: .2rem; min-width: 0; padding-left: .6rem; }
.opponent-balance-chart__values span { color: var(--fan-muted); font-size: .72rem; }
.opponent-balance-chart__values strong { font-size: 1.15rem; }
.opponent-balance-chart__value--win { border-color: #176b37 !important; }
.opponent-balance-chart__value--draw { border-color: #8a6500 !important; }
.opponent-balance-chart__value--loss { border-color: #a51c30 !important; }
.opponent-balance-chart__badge { align-items: center; border: 2px solid var(--fan-line); border-radius: 5px; display: flex; flex-direction: column; font-weight: 800; justify-content: center; min-height: 105px; min-width: 145px; padding: .75rem; text-align: center; text-transform: uppercase; }
.opponent-balance-chart__badge--positive { background: #d9f1df; border-color: #176b37; color: #176b37; }
.opponent-balance-chart__badge--neutral { background: #fff3c4; border-color: #8a6500; color: #8a6500; }
.opponent-balance-chart__badge--negative { background: #fde8ea; border-color: #a51c30; color: #a51c30; }

@media (max-width: 950px) {  .opponent-balance-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 700px) {  .opponent-history { grid-template-columns: 1fr; } .opponent-history__country { align-items: flex-start; flex-direction: row; } 
 .opponent-balance-chart__content { grid-template-columns: 1fr; } .opponent-balance-chart__badge { min-height: 70px; } }
@media (max-width: 520px) { .opponent-balance-grid { grid-template-columns: 1fr; } .opponent-balance-table { overflow-x: auto; } .opponent-balance-table__row { min-width: 32rem; } .opponent-balance-chart__values { grid-template-columns: repeat(2, minmax(0, 1fr)); }  }

/* Startbilder & Collagen: neues Archiv-Layout */
.sb-page {
    background: #fff;
    box-sizing: border-box;
    color: var(--fan-ink);
    margin: 0 auto;
    max-width: 1120px;
    min-height: 80vh;
    padding: 0 1rem 2.5rem;
}
.sb-breadcrumb { font-size: .78rem; padding-top: 1rem; }
.sb-breadcrumb .breadcrumb { background: transparent; margin-bottom: .5rem; padding: 0; }
.sb-filter-form { align-items: end; display: grid; gap: .75rem; grid-template-columns: minmax(15rem, 1.6fr) repeat(3, minmax(10rem, 1fr)) auto; }
.sb-filter-form label { flex: 1 1 12rem; }
.sb-filter-form label span { color: var(--fan-muted); display: block; font-size: .75rem; font-weight: 700; margin-bottom: .35rem; text-transform: uppercase; }
.sb-filter-form .sb-filter-form__search { flex-basis: 22rem; }
.sb-filter-form__actions { align-items: end; display: flex; gap: .5rem; min-width: max-content; }

/* sb-grid: generisch, siehe .fp-grid--3 */
.sb-card { background: #fff; border: 1px solid var(--fan-line); border-radius: var(--fan-radius); box-shadow: var(--fan-card-shadow); display: flex; flex-direction: column; min-width: 0; overflow: hidden; }
.sb-card__media { background: #f8fbfd; border-bottom: 1px solid var(--fan-line); display: flex; justify-content: center; overflow: hidden; padding: 1rem; }
.sb-card__media a { align-items: center; display: flex; justify-content: center; width: 100%; }
.sb-card__media img { border-radius: 4px; display: block; height: auto; max-height: 24rem; max-width: 100%; object-fit: contain; transition: transform .2s ease; width: auto; }
.sb-card__media a:hover img { transform: scale(1.015); }
.sb-card__body { display: flex; flex: 1; flex-direction: column; padding: 1rem; }
.sb-card__title { font: 1.1rem/1.3 concert, Verdana, sans-serif; margin: 0 0 .35rem; text-transform: uppercase; }
.sb-card__meta { color: var(--fan-muted); font-size: .82rem; margin-bottom: .5rem; }
.sb-card__description { color: var(--fan-ink); font-size: .92rem; line-height: 1.55; margin-top: .25rem; }

@media (max-width: 991.98px) {
    .sb-filter-form { display: flex; flex-wrap: wrap; }
}



/* Specials: neues Archiv-Layout */
.spc-page {
    background: #fff;
    box-sizing: border-box;
    color: var(--fan-ink);
    margin: 0 auto;
    max-width: 1120px;
    min-height: 80vh;
    padding: 0 1rem 2.5rem;
}
.spc-breadcrumb { font-size: .78rem; padding-top: 1rem; }
.spc-breadcrumb .breadcrumb { background: transparent; margin-bottom: .5rem; padding: 0; }
.spc-filter-form { align-items: end; display: grid; gap: .75rem; grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr)) auto; }
.spc-filter-form label { min-width: 0; }
.spc-filter-form label span { color: var(--fan-muted); display: block; font-size: .75rem; font-weight: 700; margin-bottom: .35rem; text-transform: uppercase; }
.spc-filter-form .spc-filter-form__search { flex-basis: 22rem; }
.spc-filter-form > .fp-btn { margin-left: 0; }

@media (max-width: 768px) {
    .spc-filter-form { grid-template-columns: 1fr; }
    .spc-filter-form > .fp-btn { width: 100%; }
    }

/* Specials Detailansicht: neues Archiv-Layout */
.spd-page {
    background: #fff;
    box-sizing: border-box;
    color: var(--fan-ink);
    margin: 0 auto;
    max-width: 1120px;
    min-height: 80vh;
    padding: 0 1rem 2.5rem;
}
.spd-breadcrumb { font-size: .78rem; padding-top: 1rem; }
.spd-breadcrumb .breadcrumb { background: transparent; margin-bottom: .5rem; padding: 0; }
.spd-hero {
    background-image: linear-gradient(to top, rgb(33, 143, 195), rgb(117, 184, 254));
    border-radius: var(--fan-radius);
    box-shadow: var(--fan-shadow);
    color: #fff;
    margin: .75rem 0 1.5rem;
    padding: 1.5rem;
}
.spd-hero__eyebrow { color: rgba(255,255,255,.9); font-size: .76rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.spd-hero__title { font: 2rem/1.15 concert, Verdana, sans-serif; margin: .4rem 0 0; text-transform: uppercase; }
.spd-hero__meta { color: rgba(255,255,255,.95); font-size: .9rem; margin-top: .75rem; }
.spd-article { margin: 0 auto; max-width: 860px; padding: 0 0 1.5rem; }
.spd-article__lead { color: var(--fan-ink); font-size: 1.12rem; font-weight: 600; line-height: 1.6; margin-bottom: 1.5rem; }
.spd-article__content { font-size: 1.02rem; line-height: 1.8; overflow-wrap: anywhere; }
.spd-article__content p { margin: 0 0 1.25rem; }
.spd-article__content img { border-radius: 4px; height: auto; max-width: 100%; }
.spd-article__content h2, .spd-article__content h3, .spd-article__content h4 { color: var(--fan-ink); font-family: concert, Verdana, sans-serif; line-height: 1.25; margin: 1.75rem 0 .65rem; text-transform: uppercase; }
.spd-article__content blockquote { border-left: 4px solid var(--fan-accent); color: var(--fan-muted); margin: 1.25rem 0; padding: .25rem 1rem; }
.spd-actions { display: flex; justify-content: center; margin-top: .5rem; }

.spd-empty { border: 1px dashed var(--fan-line); margin-top: 1rem; padding: 3rem 1.5rem; text-align: center; }
.spd-empty__icon { font-size: 2.5rem; margin-bottom: .5rem; }
.spd-empty h2 { font: 1.7rem/1.2 concert, Verdana, sans-serif; margin-bottom: .75rem; }
.spd-empty p { color: var(--fan-muted); margin-bottom: 1.25rem; }

@media (max-width: 620px) {
    .spd-hero__title { font-size: 1.65rem; }
}

/* Statische Inhaltsseiten (Content): neues Archiv-Layout */
.cnt-page {
    background: #fff;
    box-sizing: border-box;
    color: var(--fan-ink);
    margin: 0 auto;
    max-width: 1120px;
    min-height: 80vh;
    padding: 0 1rem 2.5rem;
}
.cnt-breadcrumb { font-size: .78rem; padding-top: 1rem; }
.cnt-breadcrumb .breadcrumb { background: transparent; margin-bottom: .5rem; padding: 0; }
.cnt-hero {
    background-image: linear-gradient(to top, rgb(33, 143, 195), rgb(117, 184, 254));
    border-radius: var(--fan-radius);
    box-shadow: var(--fan-shadow);
    color: #fff;
    margin: .75rem 0 1.5rem;
    padding: 1.5rem;
}
.cnt-hero__eyebrow { color: rgba(255,255,255,.9); font-size: .76rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.cnt-hero__title { font: 2rem/1.15 concert, Verdana, sans-serif; margin: .4rem 0 0; text-transform: uppercase; }
.cnt-hero__meta { color: rgba(255,255,255,.95); font-size: .9rem; margin-top: .75rem; }
.cnt-article { border-top: 3px solid var(--fan-accent); margin: 0 auto; max-width: 860px; padding: 1.75rem 0 2.25rem; }
.cnt-article__content { font-size: 1.02rem; line-height: 1.8; overflow-wrap: anywhere; }
.cnt-article__content p { margin: 0 0 1.25rem; }
.cnt-article__content img { border-radius: 4px; height: auto; max-width: 100%; }
.cnt-article__content h2, .cnt-article__content h3, .cnt-article__content h4 { color: var(--fan-ink); font-family: concert, Verdana, sans-serif; line-height: 1.25; margin: 1.75rem 0 .65rem; text-transform: uppercase; }
.cnt-article__content blockquote { border-left: 4px solid var(--fan-accent); color: var(--fan-muted); margin: 1.25rem 0; padding: .25rem 1rem; }

.cnt-empty { border: 1px dashed var(--fan-line); margin-top: 1rem; padding: 3rem 1.5rem; text-align: center; }
.cnt-empty__icon { font-size: 2.5rem; margin-bottom: .5rem; }
.cnt-empty h2 { font: 1.7rem/1.2 concert, Verdana, sans-serif; margin-bottom: .75rem; }
.cnt-empty p { color: var(--fan-muted); margin-bottom: 1.25rem; }

@media (max-width: 620px) {
    .cnt-hero__title { font-size: 1.65rem; }
}

/* Fundstücke: neues Archiv-Layout */
.fs-page {
    background: #fff;
    box-sizing: border-box;
    color: var(--fan-ink);
    margin: 0 auto;
    max-width: 1120px;
    min-height: 80vh;
    padding: 0 1rem 2.5rem;
}
.fs-breadcrumb { font-size: .78rem; padding-top: 1rem; }
.fs-breadcrumb .breadcrumb { background: transparent; margin-bottom: .5rem; padding: 0; }
.fs-filter-form { align-items: end; display: flex; flex-wrap: wrap; gap: .75rem; }
.fs-filter-form label { flex: 1 1 12rem; }
.fs-filter-form label span { color: var(--fan-muted); display: block; font-size: .75rem; font-weight: 700; margin-bottom: .35rem; text-transform: uppercase; }
.fs-filter-form .fs-filter-form__search { flex-basis: 22rem; }

/* fs-grid: generisch, siehe .fp-grid--2 */
.fs-card { background: #fff; border: 1px solid var(--fan-line); border-radius: var(--fan-radius); box-shadow: var(--fan-card-shadow); display: flex; flex-direction: column; min-width: 0; overflow: hidden; }
.fs-card__media { background: #f8fbfd; border-bottom: 1px solid var(--fan-line); display: flex; justify-content: center; overflow: hidden; padding: 1rem; }
.fs-card__media a { align-items: center; display: flex; justify-content: center; width: 100%; }
.fs-card__media img { border-radius: 4px; display: block; height: auto; max-height: 24rem; max-width: 100%; object-fit: contain; transition: transform .2s ease; width: auto; }
.fs-card__media a:hover img { transform: scale(1.015); }
.fs-card__body { display: flex; flex: 1; flex-direction: column; padding: 1rem; }
.fs-card__title { font: 1.1rem/1.3 concert, Verdana, sans-serif; margin: 0 0 .35rem; text-transform: uppercase; }
.fs-card__meta { color: var(--fan-muted); font-size: .82rem; margin-bottom: .6rem; }
.fs-card__meta span { display: inline-block; margin-right: .75rem; }
.fs-card__description { color: var(--fan-ink); font-size: .92rem; line-height: 1.55; margin-top: .25rem; }
.fs-card__footer-meta { border-top: 1px solid var(--fan-line); color: var(--fan-muted); font-size: .76rem; margin-top: auto; padding-top: .75rem; }


/* News-Übersicht: neues Archiv-Layout */
.nu-page {
    background: #fff;
    box-sizing: border-box;
    color: var(--fan-ink);
    margin: 0 auto;
    max-width: 1120px;
    min-height: 80vh;
    padding: 0 1rem 2.5rem;
}
.nu-breadcrumb { font-size: .78rem; padding-top: 1rem; }
.nu-breadcrumb .breadcrumb { background: transparent; margin-bottom: .5rem; padding: 0; }
.nu-filter-accordion-btn { display: none; }
.nu-filter-collapse { display: block !important; }
.nu-filter-form { align-items: end; display: grid; gap: .75rem; grid-template-columns: minmax(15rem, 1.6fr) minmax(15rem, 1.4fr) minmax(10rem, 1fr) auto auto; }
.nu-filter-form label { flex: 1 1 10rem; }
.nu-filter-form label span { color: var(--fan-muted); display: block; font-size: .75rem; font-weight: 700; margin-bottom: .35rem; text-transform: uppercase; }
.nu-filter-form .nu-filter-form__search { flex-basis: 16rem; }
.nu-filter-form .nu-filter-form__year-range { flex: 1.4 1 15rem; }
.nu-filter-form__actions { align-items: end; display: flex; gap: .5rem; min-width: max-content; }
.nu-year-range-inputs { display: flex; align-items: center; gap: .4rem; }
.nu-year-range-inputs select { flex: 1 1 auto; }
.nu-year-range-inputs__sep { color: var(--fan-muted); font-size: .8rem; font-weight: 700; flex-shrink: 0; }
.fp-btn.disabled { cursor: default; opacity: .55; pointer-events: none; }
.nu-tag-cloud { display: flex; flex-wrap: wrap; gap: .4rem; max-height: 15rem; overflow-y: auto; padding: .25rem; }

@media (max-width: 767.98px) {
        .nu-filter-accordion-btn { align-items: center; background: var(--fan-sky); border: 1px solid var(--fan-line); border-radius: 4px; color: var(--fan-ink); display: flex; font: 700 .9rem/1.2 Verdana, Arial, sans-serif; justify-content: space-between; padding: .65rem .8rem; text-align: left; width: 100%; }
    .nu-filter-accordion-btn::after { content: "\f078"; font-family: "Font Awesome 5 Free"; font-weight: 900; transition: transform .15s ease; }
    .nu-filter-accordion-btn[aria-expanded="true"]::after { transform: rotate(180deg); }
    .nu-filter-collapse { display: none !important; padding-top: .85rem; }
    .nu-filter-collapse.show { display: block !important; }
    .nu-filter-form { align-items: end; display: flex; flex-wrap: wrap; }
}
.nu-tag-group { width: 100%; margin-bottom: .6rem; }
.nu-tag-group:last-child { margin-bottom: 0; }
.nu-tag-group__title { color: var(--fan-muted); display: flex; align-items: center; font-size: .75rem; font-weight: 800; letter-spacing: .06em; margin-bottom: .4rem; text-transform: uppercase; }
.nu-tag-group__list { display: flex; flex-wrap: wrap; gap: .35rem; }
.nu-tag-pill { background: #fff; border: 1px solid var(--fan-line); border-radius: 999px; color: var(--fan-accent); font-size: .8rem; font-weight: 600; padding: .25rem .65rem; text-decoration: none !important; transition: all .15s ease; }
.nu-tag-pill:hover, .nu-tag-pill:focus-visible, .nu-tag-pill.is-active { background: var(--fan-accent); border-color: var(--fan-accent); color: #fff !important; }
.nu-tag-pill--main { background: var(--fan-accent-soft); border-color: #b3d4f3; color: var(--fan-accent-dark); font-weight: 700; box-shadow: 0 1px 3px rgba(11, 102, 178, 0.12); }
.nu-tag-pill--main:hover, .nu-tag-pill--main:focus-visible, .nu-tag-pill--main.is-active { background: var(--fan-accent); border-color: var(--fan-accent); color: #fff !important; }
.nu-tag-pill--sub { background: #fff; border-color: var(--fan-line); color: #495e75; font-size: .76rem; font-weight: 500; }

@media (max-width: 991.98px) {
    .nu-filter-form { align-items: end; display: flex; flex-wrap: wrap; }
}
.nu-tag-pill--sub:hover, .nu-tag-pill--sub:focus-visible, .nu-tag-pill--sub.is-active { background: var(--fan-accent); border-color: var(--fan-accent); color: #fff !important; }

/* Aktive Tags oberhalb der Stichwörter & ODER/UND Schalter */
.nu-tag-op-switch { display: inline-flex; align-items: center; background: #fff; border: 1px solid var(--fan-line); border-radius: 6px; padding: 2px; gap: 2px; }
.nu-tag-op-switch__label { font-size: .75rem; font-weight: 700; color: var(--fan-muted); padding: 0 .4rem; text-transform: uppercase; }
.nu-tag-op-btn { border: none; border-radius: 4px; color: var(--fan-muted); font-size: .76rem; font-weight: 700; padding: .2rem .55rem; text-decoration: none !important; transition: all 0.15s ease; }
.nu-tag-op-btn:hover, .nu-tag-op-btn:focus-visible { background: var(--fan-sky); color: var(--fan-ink); }
.nu-tag-op-btn.is-active { background: var(--fan-accent); color: #fff !important; box-shadow: 0 1px 3px rgba(11, 102, 178, 0.2); }
.nu-filter-summary { background: var(--fan-sky); border: 1px solid var(--fan-line); border-left: 4px solid var(--fan-accent); border-radius: var(--fan-radius); margin: 1rem 0 1.25rem; padding: .8rem 1rem; }
.nu-filter-summary__header { align-items: center; display: flex; flex-wrap: wrap; gap: .5rem 1rem; justify-content: space-between; }
.nu-filter-summary__header h2 { color: var(--fan-ink); font-size: .8rem; font-weight: 800; letter-spacing: .08em; margin: 0; text-transform: uppercase; }
.nu-filter-summary__reset { color: var(--fan-loss); font-size: .8rem; font-weight: 700; text-decoration: none; }
.nu-filter-summary__reset:hover, .nu-filter-summary__reset:focus-visible { text-decoration: underline; }
.nu-filter-summary__list { margin-top: .55rem; }
.nu-filter-summary__group { display: flex; flex-wrap: wrap; gap: .4rem; }
.nu-filter-summary__group--other { border-top: 1px solid var(--fan-line); margin-top: .7rem; padding-top: .7rem; }
.nu-filter-summary__group--tags + .nu-filter-summary__group--other { border-top-color: var(--fan-accent); }
.nu-filter-summary__item { background: #fff; border: 1px solid var(--fan-line); border-radius: 999px; color: var(--fan-ink); font-size: .8rem; padding: .25rem .65rem; }
.nu-filter-summary__label { color: var(--fan-muted); font-weight: 700; }
.nu-filter-summary__remove { align-items: center; background: var(--fan-sky); border-radius: 50%; color: var(--fan-muted) !important; display: inline-flex; font-size: .8rem; font-weight: 800; height: 18px; justify-content: center; margin-left: .35rem; text-decoration: none !important; width: 18px; }
.nu-filter-summary__remove:hover, .nu-filter-summary__remove:focus-visible { background: var(--fan-loss); color: #fff !important; }
.season-nav {
    align-items: center;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    margin: 2rem 0;
    width: 100%;
}
.season-nav > a,
.season-nav > span {
    box-sizing: border-box;
    min-width: 0;
}
.season-nav > :first-child { order: 1; }
.season-nav > :last-child { order: 2; }
.season-nav > span { flex: 1 1 0; }
.season-nav > a {
    align-items: center;
    background: #fff;
    border: 1px solid var(--fan-line);
    border-radius: var(--fan-radius);
    color: var(--fan-ink);
    display: inline-flex;
    font-size: .88rem;
    font-weight: 600;
    gap: .4rem;
    line-height: 1.3;
    max-width: 48%;
    padding: .5rem 1rem;
    text-decoration: none;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.season-nav > a:last-of-type { margin-left: auto; text-align: right; }
.season-nav > a:hover, .season-nav > a:focus-visible {
    background: var(--fan-sky);
    border-color: var(--fan-accent);
    color: var(--fan-accent);
}
.sr-page .season-nav.stx-season-nav { padding-left: 0; padding-right: 0; }
.vp-page .season-nav.stx-season-nav { align-items: center; display: flex; justify-content: space-between; margin-left: 0; margin-right: 0; padding-left: 0; padding-right: 0; width: 100%; }
.so-page > .row > .so-breadcrumb { padding-top: 1rem !important; }
.so-page > .row > .pb-4 { padding-bottom: 0 !important; }
/* max-width laeuft ueber den Bootstrap-Container im Template (container statt container-lg) */
.so-page > .row > [class*="col-"] { padding-left: 0 !important; padding-right: 0 !important; }
.so-page .so-hero {
    margin: .75rem 0 1.5rem;
    padding: 1.5rem;
}
.so-page .so-hero__title {
    color: #fff;
    font: 1.85rem/1.15 concert, Verdana, sans-serif;
    margin: .35rem 0 0;
    text-transform: uppercase;
}
.so-page .so-section { margin: 0 0 2.25rem; }
.so-page .so-section > h2 { border-bottom: 1px solid var(--fan-line); font-size: 1.15rem; line-height: 1.25; margin: 0 0 .85rem; padding-bottom: .4rem; }
.so-page .so-card { margin-bottom: 0; }
/* Saison-Navigation nutzt die generische .season-nav (space-between, Platzhalter-Span) */
.so-page .so-season-info { margin: 0 0 2rem; }
.so-page .so-season-info__headline {
    color: #d39e00;
    font-family: 'Caveat', cursive, sans-serif;
    font-size: 2.2rem;
    font-weight: 600;
    line-height: 1.2;
    padding: .25rem 0 .65rem;
}
.so-page .so-season-info__description {
    background: var(--fan-sky);
    color: var(--fan-ink);
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 1rem;
    line-height: 1.65;
    padding: .85rem 1rem;
}
.so-page .so-links {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}
.so-page .so-links a {
    border: 1px solid var(--fan-line);
    border-radius: 4px;
    color: var(--fan-accent);
    font-size: .9rem;
    padding: .45rem .7rem;
    text-decoration: none !important;
}
.so-page .so-links a:hover, .so-page .so-links a:focus-visible {
    background: var(--fan-sky);
    border-color: var(--fan-accent);
    color: var(--fan-accent-hover);
}
.so-page .so-news--ticker {
    background: #fff;
    line-height: 1.45;
    padding: .35rem 1rem;
}
.so-page .so-news:not(.so-news--ticker) li {
    align-items: baseline;
    border-bottom: 1px solid var(--fan-line);
    display: grid;
    gap: 1rem;
    grid-template-columns: 7.5rem minmax(0, 1fr);
    list-style: none;
    padding: .7rem 0;
}
.so-page .so-news--ticker li {
    border: 0;
    display: inline;
    padding: 0;
}
.so-page .so-news--ticker li::after {
    color: var(--fan-accent);
    content: '+++';
    display: inline-block;
    font-weight: 700;
    margin: 0 .85rem;
}
.so-page .so-news--ticker li:last-child::after { content: none; }
.so-page .so-news--ticker time { display: inline-block; margin-right: .45rem; }
.so-page .so-news:not(.so-news--ticker) li:last-child { border-bottom: 0; }
.so-page .so-news time { color: var(--fan-muted); font-size: .78rem; white-space: nowrap; }
.so-page .so-news a { color: var(--fan-ink); font-weight: 600; text-decoration: none; }
.so-page .so-news a:hover, .so-page .so-news a:focus-visible { color: var(--fan-accent); }
.so-page .so-people,
.so-page .so-gallery { gap: 1rem; padding: 1rem; }
.so-page .so-person { padding: .25rem; }
.so-page .so-person img { background: transparent; padding: 0; }
.so-page .so-gallery a { background: #f8fbfd; border: 1px solid var(--fan-line); border-radius: var(--fan-radius); display: block; padding: .5rem; }
.so-page .so-gallery img { border-radius: 4px; display: block; height: 7rem; max-width: 100%; object-fit: contain; width: 9rem; }
.so-page .so-vote { gap: 1.25rem; padding: 1.25rem; }
.so-page .so-vote .so-player-image { background: transparent; flex: 0 0 100px; padding: 0; }
.so-page .so-vote h3 { font-size: 1rem; line-height: 1.3; margin: 0 0 .5rem; text-align: center; }
.sr-page > .row > .pb-4 { padding-bottom: 0 !important; }
.vp-page .vp-hero,
.sr-page .sr-hero { margin-bottom: 1.25rem; }
.sr-page .sr-hero { padding: 1rem 1.25rem; }
.sr-page .sr-hero__meta { font-size: .88rem; line-height: 1.4;  }
.sr-page .sr-hero__meta { padding-top: .5rem !important; }
.sr-page .sr-hero__teams { gap: .85rem; padding: .9rem .85rem .8rem; }
.sr-page .sr-team { width: 100%; }
.sr-page .sr-team > div { flex: 1 1 auto; min-width: 0; }
.vp-page .vp-team__name,
.sr-page .sr-team__name { font-size: 1.2rem; line-height: 1.15; }
.vp-page .vp-team__crest,
.sr-page .sr-team__crest { height: 60px; max-width: 72px; }
.sr-page .sr-score { font-size: 2rem; }
.vp-page .vp-hero__facts,
.sr-page .sr-hero__facts { font-size: .82rem; gap: .3rem .9rem; padding: .5rem .75rem; }
.vp-page .vp-jumpnav,
.sr-page .sr-jumpnav { margin: 1.25rem 0 1.5rem; }
.vp-page .vp-content > h1,
.sr-page .sr-content > h1 { color: var(--fan-ink); font: 1.6rem/1.2 concert, Verdana, sans-serif; margin: 0 0 .75rem; text-transform: uppercase; }
.vp-page .vp-prose,
.sr-page .sr-article { color: #26384f; font-size: 1rem; line-height: 1.7; max-width: 72ch; }
.vp-page .vp-prose p,
.sr-page .sr-article p { margin: 0 0 1rem; }
.sr-page .sr-article h2,
.sr-page .sr-section > h2 { font-size: 1.25rem; margin: 1.75rem 0 .75rem; }
.vp-page .vp-author { font-size: .82rem; margin: 0 0 1rem; }
.sr-page .sr-section > h2 { border-bottom: 1px solid var(--fan-line); font-size: 1.1rem; line-height: 1.25; margin: 1.5rem 0 .75rem; padding-bottom: .4rem; }
.vp-page .vp-balance__filters { align-items: center; background: var(--fan-sky); border-bottom: 1px solid var(--fan-line);     }
.vp-page .vp-balance__filter {  border: 1px solid var(--fan-line);  color: var(--fan-accent); cursor: pointer;   line-height: 1.2;   }
.vp-page .vp-balance__filter:hover, .vp-page .vp-balance__filter:focus-visible, .vp-page .vp-balance__filter.is-active, .vp-page .vp-balance__filter[aria-pressed="true"] { background: var(--fan-accent); border-color: var(--fan-accent); color: #fff; }
.vp-page .vp-standings-chart__legend { align-items: center; display: flex; flex-wrap: wrap; gap: .5rem .9rem; }
.vp-page .vp-standings-chart__team { align-items: center; display: inline-flex;    line-height: 1.25; }
.vp-page .vp-standings-chart__team img { height: 22px; object-fit: contain; width: 22px; }
.vp-page .vp-standings-chart__zones { align-items: center;     }
.vp-page .vp-opponent-links__grid { display: grid;  grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); }
.vp-page .vp-opponent-link { align-items: center;  border: 1px solid var(--fan-line); border-radius: var(--fan-radius); display: grid;  grid-template-columns: 42px minmax(0, 1fr) auto;   }
.vp-page .vp-opponent-link__crest {  max-width: 40px;   }
.vp-page .vp-opponent-link__name {   line-height: 1.25; }
.vp-page .vp-opponent-link__url { color: var(--fan-muted);  line-height: 1.25; overflow-wrap: anywhere; }
.vp-page .vp-opponent-link__action { align-items: center; color: var(--fan-accent);   justify-content: center; }
.vp-page .vp-opponent-links__grid img { border-radius: 3px; }
.vp-page .vp-statistics,
.vp-page .vp-comparison,
.vp-page .vp-balance,
.vp-page .vp-opponent-links,
.sr-page .sr-section { margin-top: 1.75rem; }
.vp-page .vp-forum-link .btn { align-items: center; border-radius: 5px; display: inline-flex; font-size: .78rem; font-weight: 700; justify-content: center; min-height: 36px; padding: .45rem .75rem; }
.vp-page .vp-statistics h2,
.vp-page .vp-comparison > h2,
.vp-page .vp-balance > h2,
.vp-page .vp-opponent-links > h2 { margin-bottom: .85rem; }
.vp-page .vp-standings-chart__fallback { color: var(--fan-muted);    }
.vp-page .vp-standings-chart__zone--promotion { background: var(--fan-win-bg); color: var(--fan-win); }
.vp-page .vp-standings-chart__zone--promotion-playoff {  color: var(--fan-accent); }
.vp-page .vp-standings-chart__zone--relegation-playoff { background: var(--fan-draw-bg); color: var(--fan-draw); }
.vp-page .vp-standings-chart__zone--relegation { background: var(--fan-loss-bg); color: var(--fan-loss); }
.vp-page .vp-balance__intro, .vp-page .vp-balance__value-label { color: var(--fan-muted);    }
.vp-page .vp-balance__value strong { display: block; font-size: 1.15rem; margin-top: .2rem; }
@media (max-width: 767.98px) {
    .vp-page .vp-hero__teams,
    .sr-page .sr-hero__teams { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: .5rem; padding: .9rem .65rem; }
    .vp-page .vp-team__name,
    .sr-page .sr-team__name { font-size: 1rem; }
    .vp-page .vp-team__crest,
    .sr-page .sr-team__crest { height: 48px; max-width: 58px; }
    .sr-page .sr-score { font-size: 1.7rem; }
    .vp-page .vp-content > h1,
    .sr-page .sr-content > h1 { font-size: 1.4rem; }
    .vp-page .vp-opponent-link { grid-template-columns: 36px minmax(0, 1fr) auto; }
}

/* ========================================================================
   VORBERICHT: REFERENZLAYOUT AUS DEM GELIEFERTEN TEMPLATE
   ======================================================================== */
.vp-page.vp-page { max-width: 1120px; }
.vp-page .vp-hero__meta {  font-size: .9rem;  }
.vp-page .vp-content > h1 { color: var(--fan-ink); font: 1.6rem/1.2 concert, Verdana, sans-serif; margin: 0 0 .75rem; text-transform: uppercase; }
.vp-page .vp-content > h2,
.vp-page .vp-prose > h2,
.vp-page .vp-statistics h2,
.vp-page .vp-opponent-links > h2 { border-bottom: 2px solid var(--fan-line); color: var(--fan-ink); font-size: 1.45rem; margin: 2.3rem 0 1rem; padding-bottom: .55rem; }
.vp-page .vp-comparison, .vp-page .vp-standings-chart { margin: 1rem 0 2rem; }
.vp-page .vp-standings-chart__viewport { padding: 1rem; }
.vp-page .vp-balance { margin: 2.25rem 0; }
.vp-page .vp-balance__content { gap: 1rem 1.5rem; padding: 1rem; }
.vp-page .vp-balance__intro { font-size: .88rem; margin: 0 0 .75rem; }
.vp-page .vp-recent-matches { gap: .75rem; margin: 1rem 0 2rem; }
.vp-page .vp-recent-match { gap: .65rem; padding: 1rem; }
.vp-page .vp-opponent-links { margin: 2.25rem 0 0; }
.vp-page .vp-opponent-links__grid { gap: .65rem; grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 1rem; }
.vp-page .vp-opponent-link { grid-template-columns: minmax(0,1fr) auto; min-height: 76px; padding: .8rem .9rem; }
.vp-page .vp-forum-link { margin: 2rem 0 0; padding: 1rem; }
.record-page { color: var(--fan-ink); }
.record-breadcrumb { font-size: .78rem; padding: 1rem 0 .25rem; }
.record-breadcrumb .breadcrumb { background: transparent; margin: 0 0 .5rem; padding: 0; }

.record-section { margin: 0 0 2rem; }
.record-section h2 { border-bottom: 2px solid var(--fan-line); color: var(--fan-ink); font: 1.35rem/1.2 concert, Verdana, sans-serif; margin: 0 0 1rem; padding-bottom: .5rem; text-transform: uppercase; }
.record-grid { display: grid; gap: 1rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.record-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.record-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.record-card { background: #fff; border: 1px solid var(--fan-line); border-radius: var(--fan-radius); box-shadow: var(--fan-card-shadow); min-width: 0; padding: 1rem; }
.record-card--win { border-top: 4px solid var(--fan-win); }
.record-card--loss { border-top: 4px solid var(--fan-loss); }
.record-card--goals { border-top: 4px solid var(--fan-accent); }
.record-card--crowd { border-top: 4px solid var(--fan-gold); }
.record-card--season, .record-card--player, .record-card--age { border-top: 4px solid #5f7f9f; }
.record-card__title { color: var(--fan-muted); font-size: .75rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.record-card__value { color: var(--fan-ink); display: block; font: 2rem/1.1 concert, Verdana, sans-serif; margin: .75rem 0 .6rem; }
.record-card--age .record-card__value { font-size: 1.5rem; }
.record-card__detail { font-size: .92rem; font-weight: 700; line-height: 1.4; overflow-wrap: anywhere; }
.record-card__meta { color: var(--fan-muted); font-size: .78rem; line-height: 1.45; margin-top: .55rem; }
.record-card__link { color: var(--fan-accent);  font-size: .8rem; font-weight: 700; margin-top: .75rem; text-decoration: none; }
.record-card__link:hover, .record-card__link:focus-visible { color: var(--fan-accent-hover); text-decoration: underline; }
.record-card__matches { display: grid; gap: .75rem; }
.record-card__match { border-top: 1px solid var(--fan-line); padding-top: .65rem; }
.record-card__match:first-child { border-top: 0; padding-top: 0; }
.record-card__match strong, .record-card__match span { display: block; line-height: 1.4; }
.record-card__match strong { font-size: .86rem; }
.record-card__match span { color: var(--fan-muted); font-size: .75rem; margin-top: .2rem; }
.record-card__match .record-card__link { margin-top: .35rem; }
.record-card__match .record-goal-rate { color: var(--fan-ink); font-size: .86rem; font-weight: 800; margin-top: .35rem; }
.record-person { align-items: center; display: inline-flex; gap: .55rem; max-width: 100%; min-width: 0; text-decoration: none; }
.record-person img { border: 1px solid var(--fan-line); border-radius: 3px; flex: 0 0 36px; height: 42px; object-fit: cover; width: 36px; }
.record-person > span, .record-card__match .record-person > span { color: var(--fan-accent); font-size: .88rem; font-weight: 700; margin: 0; overflow-wrap: anywhere; }
a.record-person:hover > span, a.record-person:focus-visible > span { color: var(--fan-accent-hover); text-decoration: underline; }
.record-person-dates { color: var(--fan-muted); display: block; font-size: .8rem; margin-top: .4rem; }
.record-card__matches--ranking { counter-reset: player-rank; margin-top: .9rem; }
.record-card__matches--ranking .record-card__match { counter-increment: player-rank; padding-left: 1.6rem; position: relative; }
.record-card__matches--ranking .record-card__match::before { color: var(--fan-muted); content: counter(player-rank) "."; font-size: .85rem; font-weight: 800; left: 0; position: absolute; top: .8rem; }
.record-streak-details { border-top: 1px solid var(--fan-line); margin-top: .9rem; padding-top: .65rem; }
.record-streak-details summary { color: var(--fan-accent); cursor: pointer; font-size: .85rem; font-weight: 700; }
.record-streak-details summary:focus-visible { outline: 2px solid var(--fan-accent); outline-offset: 3px; }
.record-streak-list { margin: .7rem 0 0; padding-left: 1.6rem; }
.record-streak-list li { border-top: 1px solid var(--fan-line); padding: .65rem 0; }
.record-streak-list__heading { align-items: center; display: flex; gap: .5rem; justify-content: space-between; min-width: 0; }
.record-streak-list__heading > span { min-width: 0; overflow-wrap: anywhere; }
.record-streak-list__heading > strong { color: var(--fan-ink); flex: 0 0 auto; font-size: .84rem; white-space: nowrap; }
.record-streak-list small { color: var(--fan-muted); display: block; font-size: .72rem; line-height: 1.4; margin-top: .35rem; overflow-wrap: anywhere; }
.record-top-list { counter-reset: season-rank; list-style: none; margin: .9rem 0 0; padding: 0; }
.record-top-list[start="2"] { counter-reset: season-rank 1; }
.record-top-list li { align-items: baseline; border-top: 1px solid var(--fan-line); counter-increment: season-rank; display: grid; gap: .15rem .5rem; grid-template-columns: minmax(0, 1fr) auto; padding: .65rem 0 .65rem 1.7rem; position: relative; }
.record-top-list li::before { color: var(--fan-muted); content: counter(season-rank) "."; font-size: .85rem; font-weight: 800; left: 0; position: absolute; top: .7rem; }
.record-top-list a { color: var(--fan-accent); font-size: .88rem; font-weight: 700; min-width: 0; }
.record-season-label { min-width: 0; overflow-wrap: anywhere; }
.record-season-placement { color: var(--fan-muted); font-size: .75rem; font-weight: 400; }
.record-top-list strong { color: var(--fan-ink); font-size: .88rem; white-space: nowrap; }
.record-top-list small { color: var(--fan-muted); font-size: .74rem; grid-column: 1 / -1; }
.record-rankings__note { color: var(--fan-muted); font-size: .78rem; margin: .75rem 0 0; }
.record-attendance__caption { color: var(--fan-muted); font-size: .82rem; margin: 0 0 .75rem; }
.record-grid + .record-attendance__caption { margin-top: 1rem; }
.record-attendance__scroll { border: 1px solid var(--fan-line); border-radius: var(--fan-radius); max-width: 100%; overflow-x: auto; padding: 1rem .75rem .75rem; }
.record-attendance__scroll:focus-visible { outline: 2px solid var(--fan-accent); outline-offset: 2px; }
.record-attendance__chart { align-items: end; display: flex; gap: .45rem; min-width: max-content; }
.record-attendance__season { align-items: center; display: flex; flex: 0 0 68px; flex-direction: column; min-width: 0; text-align: center; }
.record-attendance__value { color: var(--fan-ink); font-size: .7rem; line-height: 1.3; margin-bottom: .35rem; }
.record-attendance__bar-area { align-items: end; background: #f3f6f8; border-bottom: 1px solid var(--fan-line); display: flex; height: 220px; justify-content: center; width: 100%; }
.record-attendance__bar { background: #177d9e; min-height: 2px; width: 38px; }
.record-attendance__bar--fck { background: #b85645; }
.record-attendance__season-name { color: var(--fan-ink); font-size: .7rem; font-weight: 700; margin-top: .5rem; white-space: nowrap; }
.record-attendance__club { color: var(--fan-muted); font-size: .65rem; }
.record-attendance__legend { color: var(--fan-muted); display: flex; flex-wrap: wrap; gap: 1rem; margin: 0 0 .75rem; font-size: .78rem; }
.record-attendance__legend span { align-items: center; display: inline-flex; gap: .35rem; }
.record-attendance__key { background: #bdcbd5; display: inline-block; height: 11px; width: 11px; }
.record-attendance__key--average { background: #177d9e; }
.record-attendance__season--combined { flex-basis: 76px; }
.record-attendance__bar--combined { background: #bdcbd5; position: relative; width: 48px; }
.record-attendance__average-fill { background: #177d9e; bottom: 0; left: 0; position: absolute; width: 100%; }
.record-attendance__average-fill--fck { background: #b85645; }
.record-attendance__average-value { color: var(--fan-ink); font-size: .68rem; font-weight: 700; margin-top: .35rem; white-space: nowrap; }
.record-attendance__season--combined .record-attendance__season-name { margin-top: .25rem; }
.record-note { background: var(--fan-sky); border-left: 4px solid var(--fan-accent); color: var(--fan-muted); font-size: .82rem; line-height: 1.55; margin: 0 0 2rem; padding: .85rem 1rem; }
@media (max-width: 950px) { .record-grid, .record-grid--three { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575.98px) {  .record-grid, .record-grid--two, .record-grid--three { grid-template-columns: 1fr; } .record-card__value { font-size: 1.75rem; } 

    .so-page .so-news:not(.so-news--ticker) li { gap: .5rem; grid-template-columns: 1fr; }
    .so-page .so-vote { align-items: center; flex-direction: column; text-align: left; }
    .so-page .so-vote > div { width: 100%; }
    .season-nav { align-items: stretch; flex-direction: column; gap: .65rem; }
    .season-nav > a { max-width: none; width: 100%; }
    .season-nav > a:last-of-type { margin-left: 0; text-align: left; }
    .so-season-nav { align-items: center; flex-direction: row; }
    .so-season-nav > a { max-width: 48%; width: auto; }
    .so-season-nav > a:last-of-type { margin-left: 0; text-align: right; }
    .ma-season-nav, .stx-season-nav, .tr-season-nav, .sp-paging { align-items: center; flex-direction: row; gap: .5rem; }
    .ma-season-nav > a, .stx-season-nav > a, .tr-season-nav > a, .sp-paging > a { max-width: 48%; width: auto; }
    .ma-season-nav > span, .stx-season-nav > span, .tr-season-nav > span, .sp-paging > span { flex: 1 1 0; }
    .ma-season-nav > a:last-of-type, .stx-season-nav > a:last-of-type, .tr-season-nav > a:last-of-type, .sp-paging > a:last-of-type { margin-left: auto; text-align: right; }
    .sp-paging { flex-wrap: nowrap; }
    .sp-paging > a { margin: 0; }
    /* Spieltag-Navigation bleibt auch mobil nebeneinander statt gestapelt */
    .st-season-nav { flex-direction: row; }
    .st-season-nav > a { max-width: 48%; width: auto; }
    .st-season-nav > a:last-of-type { margin-left: auto; text-align: right; }
}
.filter-summary { background: var(--fan-sky); border: 1px solid var(--fan-line); border-left: 4px solid var(--fan-accent); border-radius: var(--fan-radius); margin: 1rem 0 1.25rem; padding: .8rem 1rem; }
.filter-summary__header { align-items: center; display: flex; flex-wrap: wrap; gap: .5rem 1rem; justify-content: space-between; }
.filter-summary__header h2 { color: var(--fan-ink); font-size: .8rem; font-weight: 800; letter-spacing: .08em; margin: 0; text-transform: uppercase; }
.filter-summary__reset { color: var(--fan-loss); font-size: .8rem; font-weight: 700; text-decoration: none; }
.filter-summary__reset:hover, .filter-summary__reset:focus-visible { text-decoration: underline; }
.filter-summary__list { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .55rem; }
.filter-summary__item { background: #fff; border: 1px solid var(--fan-line); border-radius: 999px; color: var(--fan-ink); font-size: .8rem; padding: .25rem .65rem; }
.spa-filter-summary__remove { align-items: center; background: var(--fan-sky); border-radius: 50%; color: var(--fan-muted) !important; display: inline-flex; font-size: .75rem; font-weight: 800; height: 18px; justify-content: center; margin-left: .3rem; text-decoration: none !important; width: 18px; }
.spa-filter-summary__remove:hover, .spa-filter-summary__remove:focus-visible { background: var(--fan-loss); color: #fff !important; }
.filter-summary__item strong { color: var(--fan-muted); font-weight: 700; }
.pagination-page-select { align-items: center; color: var(--fan-muted); display: inline-flex; font-size: .88rem; font-weight: 600; gap: .35rem; }
.pagination-page-select select { background: #fff; border: 1px solid var(--fan-line); border-radius: 6px; color: var(--fan-ink); font-size: .88rem; min-height: 38px; min-width: 3.25rem; padding: .35rem .3rem; width: 3.25rem; }
.pagination-page-total { background: #f1f3f5; border: 0; border-radius: 6px; color: var(--fan-muted); cursor: default; display: inline-flex; font-size: .88rem; font-weight: 400; min-width: 0; padding: .4rem .65rem; }
.pagination-page-total strong { font-weight: inherit; }
.pagination-page-control { align-items: center; display: inline-flex; flex: 0 0 auto; gap: .35rem; padding: 0 .25rem; white-space: nowrap; }
.pagination-page-total, .nu-pagination:not(.archive-pagination) > span { white-space: nowrap; }
.archive-pagination { gap: .75rem; margin-bottom: 1rem; padding: 0 .75rem; }
.archive-pagination > a, .archive-pagination > span:not(.pagination-page-control), .archive-pagination .pagination-page-control { white-space: nowrap; }
.archive-pagination .pagination-page-control { background: transparent; border: 0; color: inherit; height: auto; min-width: 0; padding: 0; }
.archive-pagination .fp-btn { align-items: center; border: 1px solid transparent; border-radius: 6px; cursor: pointer; display: inline-flex; font-size: .88rem; font-weight: 600; gap: .4rem; height: 38px; justify-content: center; min-width: 2.5rem; padding: .4rem .85rem; text-decoration: none !important; transition: all .15s ease-in-out; white-space: nowrap; }
.archive-pagination .fp-btn--secondary { background: var(--fan-sky); border-color: var(--fan-line); color: var(--fan-ink) !important; }
.archive-pagination .fp-btn--secondary:hover, .archive-pagination .fp-btn--secondary:focus-visible { background: #e1edf7; border-color: var(--fan-accent); color: var(--fan-ink) !important; }
.archive-pagination .fp-btn--primary { background: var(--fan-accent); border-color: var(--fan-accent); color: #fff !important; }
.archive-pagination .fp-btn--primary:hover, .archive-pagination .fp-btn--primary:focus-visible { background: var(--fan-accent-hover); border-color: var(--fan-accent-hover); box-shadow: 0 4px 10px rgba(11,102,178,.2); color: #fff !important; }
.archive-pagination .archive-pagination__label { background: transparent; border: 0; border-radius: 0; color: inherit; cursor: inherit; display: inline; font: inherit; height: auto; min-width: 0; padding: 0; transition: none; }
.archive-pagination .fp-btn--primary .archive-pagination__label,
.archive-pagination .fp-btn--primary:hover .archive-pagination__label,
.archive-pagination .fp-btn--primary:focus-visible .archive-pagination__label { color: #fff !important; }
.archive-pagination .disabled { cursor: default; opacity: .55; pointer-events: none; }
@media (max-width: 575.98px) {
    .archive-pagination { flex-direction: row; flex-wrap: nowrap; gap: .25rem; padding-left: 0; padding-right: 0; }
    .archive-pagination > .fp-btn { flex: 0 0 auto; width: auto; }
    .archive-pagination > a, .archive-pagination > span:not(.pagination-page-control) { flex: 0 0 auto; }
    .archive-pagination .pagination-page-control { flex: 0 0 auto; justify-content: center; min-width: 0; }
    .archive-pagination > .archive-first, .archive-pagination > .archive-last { display: inline-flex; }
    .archive-pagination__label { display: none !important; }
}
@media (max-width: 359.98px) {
    .archive-pagination > .archive-first, .archive-pagination > .archive-last { display: none; }
    .archive-pagination { justify-content: center; }
}
.nu-list { display: grid; gap: 1rem; }
.nu-card { background: #fff; border: 1px solid var(--fan-line); border-radius: var(--fan-radius); box-shadow: var(--fan-card-shadow); display: grid; grid-template-columns: minmax(0, 1fr); overflow: hidden; }
.nu-card:has(.nu-card__media) { grid-template-columns: 200px minmax(0, 1fr); }
.nu-card__media { background: #f8fbfd; border-right: 1px solid var(--fan-line); display: flex; justify-content: center; overflow: hidden; }
.nu-card__media a { align-items: center; display: flex; justify-content: center; width: 100%; height: 100%; }
.nu-card__media img { display: block; height: 100%; max-height: 12rem; max-width: 100%; object-fit: cover; transition: transform .2s ease; width: 100%; }
.nu-card__media a:hover img { transform: scale(1.03); }
.nu-card__body { display: flex; flex: 1; flex-direction: column; padding: 1rem; }
.nu-card__meta { color: var(--fan-muted); font-size: .8rem; margin-bottom: .4rem; }
.nu-card__meta span { display: inline-block; margin-right: .85rem; }
.nu-card__title { font: 1.15rem/1.3 concert, Verdana, sans-serif; margin: 0 0 .4rem; text-transform: uppercase; }
.nu-card__title a { color: var(--fan-ink); text-decoration: none; }
.nu-card__title a:hover { color: var(--fan-accent); }
.nu-card__teaser { color: var(--fan-ink); font-size: .92rem; line-height: 1.55; margin-bottom: .75rem; }
.nu-card__teaser a { color: var(--fan-accent); text-decoration: underline; }
.nu-card__teaser a:hover, .nu-card__teaser a:focus-visible { color: var(--fan-accent-hover); }
.nu-card__tags { color: var(--fan-muted); font-size: .78rem; margin-top: auto; padding-top: .5rem; border-top: 1px solid var(--fan-line); }
.nu-card__tag { color: var(--fan-accent); font-weight: 600; text-decoration: none !important; margin-right: .35rem; }
.nu-card__tag:hover { text-decoration: underline !important; }
.nu-empty { background: #fff; border: 1px dashed var(--fan-line); border-radius: var(--fan-radius); color: var(--fan-muted); padding: 3rem 1.5rem; text-align: center; }
.nu-pagination:not(.archive-pagination) { align-items: center; display: flex; flex-wrap: wrap; gap: .75rem; justify-content: center; margin-top: 2rem; padding: 0 .75rem; }
.nu-pagination:not(.archive-pagination) > span { color: var(--fan-muted); font-size: .9rem; }

@media (max-width: 650px) {
    .nu-card:has(.nu-card__media) { grid-template-columns: 1fr; }
    .nu-card__media { border-bottom: 1px solid var(--fan-line); border-right: none; max-height: none; }
    .nu-card__media a { height: auto; }
    .nu-card__media img { height: auto; max-height: none; object-fit: contain; width: 100%; }
    }

/* News Detailansicht: neues Archiv-Layout */
.nud-page {
    background: #fff;
    box-sizing: border-box;
    color: var(--fan-ink);
    margin: 0 auto;
    max-width: 1120px;
    min-height: 80vh;
    padding: 0 1rem 2.5rem;
}
.nud-breadcrumb { font-size: .78rem; padding-top: 1rem; }
.nud-breadcrumb .breadcrumb { background: transparent; margin-bottom: .5rem; padding: 0; }
.nud-article { margin: 0 auto; max-width: 860px; padding: .25rem 0 2.25rem; }
.nud-article__media { background: var(--fan-sky); border: 1px solid var(--fan-line); border-radius: var(--fan-radius); margin-bottom: 1.5rem; overflow: hidden; text-align: center; width: 100%; }
.nud-article__media img { display: block; height: auto; max-height: none; max-width: none; margin: 0; object-fit: contain; width: 100%; }
.nud-article__media-caption { background: #fff; border-top: 1px solid var(--fan-line); color: var(--fan-muted); font-size: .82rem; padding: .5rem .85rem; }
.nud-article__lead { color: var(--fan-ink); font-size: 1.12rem; font-weight: 600; line-height: 1.65; margin-bottom: 1.5rem; }
.nud-article__content { font-size: 1.02rem; line-height: 1.8; overflow-wrap: anywhere; }
.nud-article__content p { margin: 0 0 1.25rem; }
.nud-article__content img { border-radius: 4px; max-width: 100%; }
.nud-article__content h2, .nud-article__content h3, .nud-article__content h4 { color: var(--fan-ink); font-family: concert, Verdana, sans-serif; line-height: 1.25; margin: 1.75rem 0 .65rem; text-transform: uppercase; }
.nud-article__content blockquote { border-left: 4px solid var(--fan-accent); color: var(--fan-muted); margin: 1.25rem 0; padding: .25rem 1rem; }
.nud-surftipps { background: var(--fan-sky); border-left: 4px solid var(--fan-accent); border-radius: var(--fan-radius); margin: 1.5rem 0; padding: 1rem 1.25rem; }
.nud-surftipps strong { color: var(--fan-ink); font-size: .88rem; text-transform: uppercase; }
.nud-surftipps ul { margin: .5rem 0 0; padding-left: 1.2rem; }
.nud-surftipps li { margin-bottom: .25rem; }
.nud-surftipps a { color: var(--fan-accent); font-weight: 600; }
.nud-forum-box { margin: 1.5rem 0; text-align: center; }
.nud-tags { border-top: 1px solid var(--fan-line); display: flex; flex-wrap: wrap; gap: .4rem; margin-top: 1.5rem; padding-top: 1rem; }
.nud-tag-pill { background: var(--fan-sky); border: 1px solid var(--fan-line); border-radius: 999px; color: var(--fan-accent); font-size: .8rem; font-weight: 600; padding: .25rem .65rem; text-decoration: none !important; transition: all .15s ease; }
.nud-tag-pill:hover, .nud-tag-pill:focus-visible { background: var(--fan-accent); border-color: var(--fan-accent); color: #fff !important; }
.nud-related { margin: 1.25rem auto 0; max-width: 860px; }
.nud-related h2 { font: 1.35rem/1.2 concert, Verdana, sans-serif; margin: 0 0 1rem; text-transform: uppercase; }
.nud-related__list { border: 1px solid var(--fan-line); border-radius: var(--fan-radius); overflow: hidden; }
.nud-related__item { align-items: center; border-bottom: 1px solid var(--fan-line); display: grid; gap: 1rem; grid-template-columns: 11rem minmax(0, 1fr); padding: .75rem 1rem; }
.nud-related__item:last-child { border-bottom: none; }
.nud-related__item:nth-child(even) { background: #f8fbfd; }
.nud-related__item.is-current { background: var(--fan-sky); font-weight: 700; }
.nud-related__item time { color: var(--fan-muted); font-size: .82rem; }
.nud-related__item a { color: var(--fan-ink); text-decoration: none; }
.nud-related__item a:hover { color: var(--fan-accent); }
.nud-actions { display: flex; justify-content: center; margin-top: 1.25rem; }

.nud-empty { border: 1px dashed var(--fan-line); margin-top: 1rem; padding: 3rem 1.5rem; text-align: center; }
.nud-empty__icon { font-size: 2.5rem; margin-bottom: .5rem; }
.nud-empty h2 { font: 1.7rem/1.2 concert, Verdana, sans-serif; margin-bottom: .75rem; }
.nud-empty p { color: var(--fan-muted); margin-bottom: 1.25rem; }

@media (max-width: 620px) {
    .nud-related__item { grid-template-columns: 1fr; gap: .25rem; }
}

/* Sitemap: neues Archiv-Layout */
.sm-page {
    background: #fff;
    box-sizing: border-box;
    color: var(--fan-ink);
    margin: 0 auto;
    max-width: 1120px;
    min-height: 80vh;
    padding: 0 1rem 2.5rem;
}
.sm-breadcrumb { font-size: .78rem; padding-top: 1rem; }
.sm-breadcrumb .breadcrumb { background: transparent; margin-bottom: .5rem; padding: 0; }
/* sm-grid: generisch, siehe .fp-grid--3 */
.sm-card { background: #fff; border: 1px solid var(--fan-line); border-radius: var(--fan-radius); box-shadow: var(--fan-card-shadow); display: flex; flex-direction: column; overflow: hidden; }
.sm-card__header { background: var(--fan-sky); border-bottom: 1px solid var(--fan-line); border-left: 4px solid var(--fan-accent); padding: .75rem 1rem; }
.sm-card__title { align-items: center; color: var(--fan-ink); display: flex; font: 1.1rem/1.2 concert, Verdana, sans-serif; gap: .5rem; margin: 0; text-transform: uppercase; }
.sm-card__title i { color: var(--fan-accent); }
.sm-card__body { flex: 1; padding: 1rem; }
.sm-list { display: grid; gap: .6rem; list-style: none; margin: 0; padding: 0; }
.sm-list__item { display: flex; flex-direction: column; font-size: .9rem; }
.sm-list__item a { align-items: center; color: var(--fan-accent); display: inline-flex; font-weight: 600; gap: .35rem; text-decoration: none !important; }
.sm-list__item a:hover { color: var(--fan-accent-dark); text-decoration: underline !important; }
.sm-list__desc { color: var(--fan-muted); font-size: .78rem; line-height: 1.35; margin-top: .15rem; }
.sm-subgroup { border-top: 1px dashed var(--fan-line); margin-top: .85rem; padding-top: .85rem; }
.sm-subgroup__title { align-items: center; color: var(--fan-ink); display: flex; font-size: .82rem; font-weight: 800; gap: .35rem; letter-spacing: .08em; margin-bottom: .5rem; text-transform: uppercase; }



/* ==========================================================================
   12. FINALE KONSISTENZ FÜR ALLE NEUEN TEMPLATES
   ========================================================================== */
main[class*="-page"],
main[class*="_page"],
.sr-page,
.vp-page,
.sp-page,
.st-page,
.so-page,
.ma-page,
.sz-page,
.sw-page,
.swd-page,
.swa-page,
.pt-page,
.ps-page,
.km-page,
.kmd-page,
.tr-page,
.stx-page,
.spa-page,
.sa-page,
.nu-page,
.nud-page,
.cnt-page,
.book-page,
.book-detail-page,
.fh-page,
.fhd-page,
.ss-page,
.opponent-page,
.opponent-detail-page,
.sb-page,
.spc-page,
.spd-page,
.fs-page,
.sm-page,
.dl-page,
.dl-page,
.dl-page {
    background: #fff;
    box-sizing: border-box;
    color: var(--fan-ink);
    margin: 0 auto;
    max-width: 1120px;
    min-height: 80vh;
    padding: 0 1.25rem 2.5rem;
}

@media (max-width: 767.98px) {
    main[class*="-page"],
main[class*="_page"],
.sr-page,
.vp-page,
.sp-page,
.st-page,
.so-page,
.ma-page,
.sz-page,
.sw-page,
.swd-page,
.swa-page,
.pt-page,
.ps-page,
.km-page,
.kmd-page,
.tr-page,
.stx-page,
.spa-page,
.sa-page,
.nu-page,
.nud-page,
.cnt-page,
.book-page,
.book-detail-page,
.fh-page,
.fhd-page,
.ss-page,
.opponent-page,
.opponent-detail-page,
.sb-page,
.spc-page,
.spd-page,
.fs-page,
.sm-page,
.dl-page {
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }
}

/* Bootstrap row/column wrappers must not change the shared content edge. */
main[class*="-page"] > .row {
    margin-left: 0;
    margin-right: 0;
}

main[class*="-page"] > .row > [class*="col-"] {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Saisonübersicht: dieselbe breite Contentfläche wie Vorbericht */
.so-page.so-page { max-width: 1120px; }

/* ==========================================================================
   13. VORBERICHT: 1:1-ABGLEICH MIT DEM REFERENZ-TEMPLATE
   Überschreibt bewusst alle früheren Kompakt-Overrides.
   ========================================================================== */
main.vp-page .vp-hero__meta {   font-weight: 600;  }

/* Vorbericht-Artikel zentriert wie eine News-Detailseite (siehe .nud-article) */
.vp-page .vp-article { margin: 0 auto; max-width: 860px; padding: 1.75rem 0 2.25rem; }

.vp-page .vp-hero__facts { color: #fff;    }
.vp-page .vp-jumpnav a { color: var(--fan-accent-dark); }
.vp-page .vp-jumpnav a:hover, .vp-page .vp-jumpnav a:focus-visible { background: var(--fan-sky); color: var(--fan-accent-dark); }
.vp-page .vp-prose { font-size: 1.05rem; line-height: 1.7; max-width: none; }
.vp-page .vp-intro { color: #26384f; font-size: 1.08rem; line-height: 1.7; margin-bottom: 1.7rem; padding: .2rem 0; }
.vp-page .vp-author { color: var(--fan-muted); font-size: .9rem; margin: .4rem 0 1.2rem; }
.vp-page .vp-table-scroll { -webkit-overflow-scrolling: touch; overflow-x: auto; }
.vp-page .vp-table-scroll table { min-width: 580px; }
.vp-page .vp-statistics .table { font-size: .92rem; }
.vp-page .vp-legacy-comparison { -webkit-overflow-scrolling: touch; overflow-x: auto; }
.vp-page .vp-legacy-comparison table { min-width: 580px; }
.vp-legacy-comparison__header-cell { background-color: #eeeeee; font-weight: bold; text-align: left; }
.vp-legacy-comparison__header-cell--home { text-align: right; }
.vp-legacy-comparison__header-cell--versus { text-align: center; }

/* Vergleich inkl. Form und Bestwerte */
.vp-page .vp-comparison__teams { font-size: 1.05rem; padding: .85rem 1rem; }
.vp-page .vp-comparison__team--home { text-align: right; }
.vp-page .vp-comparison__team--away { text-align: left; }
.vp-page .vp-comparison__versus { color: var(--fan-muted); font-size: .8rem; }
.vp-page .vp-comparison__body { display: grid; gap: .75rem; padding: 1rem; }
.vp-page .vp-comparison__row { min-height: 48px; padding: .55rem 0; }
.vp-page .vp-comparison__row:last-child { border-bottom: 0; }
.vp-page .vp-comparison__value { font-size: .94rem; }
.vp-page .vp-comparison__label { font-size: .73rem; line-height: 1.25; }
.vp-page .vp-comparison__group { border-top: 1px solid var(--fan-line); margin-top: .35rem; padding-top: .85rem; }
.vp-page .vp-comparison__group-title { color: var(--fan-ink); font-size: .85rem; font-weight: 800; margin: 0 0 .2rem; text-transform: uppercase; }
.vp-page .vp-comparison__form { display: flex; flex-wrap: wrap; gap: .3rem; justify-content: flex-end; }
.vp-page .vp-comparison__value--away .vp-comparison__form { justify-content: flex-start; }
.vp-page .vp-form-chip { border-radius: 3px; font-size: .76rem; font-weight: 800; min-height: 28px; padding: .2rem .4rem; }
.vp-page .vp-form-chip--win { background: #e5f5ea; color: #126132; }
.vp-page .vp-form-chip--draw { background: #fff4dc; color: #805000; }
.vp-page .vp-form-chip--loss { background: #fde8ea; color: #9d1d2a; }
.vp-page .vp-form-chip:hover { filter: brightness(.96); }

/* Tabellenverlauf: Legende, Platzierungen und Zonen wie in der Referenz */
.vp-page .vp-standings-chart__header { align-items: center; gap: .75rem 1.5rem; min-height: 0; padding: 1rem; }
.vp-page .vp-standings-chart__team { font-size: .85rem; font-weight: 800; gap: .4rem; }
.vp-page .vp-standings-chart__dot { border-radius: 50%; display: inline-block; height: 10px; width: 10px; }
.vp-page .vp-standings-chart__dot--home { background: #0b66b2; }
.vp-page .vp-standings-chart__dot--away { background: #d37519; }
.vp-page .vp-standings-chart__places { display: flex; gap: .6rem; }
.vp-page .vp-standings-chart__place { border-left: 3px solid var(--fan-line); color: var(--fan-ink); font-size: .82rem; padding-left: .5rem; }
.vp-page .vp-standings-chart__place strong { display: block; font-size: 1.25rem; line-height: 1; }
.vp-page .vp-standings-chart__place--home { border-color: #0b66b2; }
.vp-page .vp-standings-chart__place--away { border-color: #d37519; }
.vp-page .vp-standings-chart__viewport svg { display: block; height: clamp(220px, 30vw, 320px); overflow: visible; width: 100%; }
.vp-page .vp-standings-chart__tooltip { max-width: 190px; }
.vp-page .vp-standings-chart__tooltip strong { display: block; font-size: .85rem; }
.vp-page .vp-standings-chart__zones { color: var(--fan-muted); font-size: .75rem; gap: .45rem 1rem; line-height: normal; padding: .75rem 1rem; }
.vp-page .vp-standings-chart__zone { align-items: center; background: transparent; border-radius: 0; color: var(--fan-muted); display: inline-flex; font-weight: 400; gap: .35rem; padding: 0; }
.vp-page .vp-standings-chart__zone::before { background: #fff; border: 1px solid var(--fan-line); content: ""; display: inline-block; height: 9px; width: 9px; }
.vp-page .vp-standings-chart__zone--promotion { background: transparent; color: var(--fan-muted); }
.vp-page .vp-standings-chart__zone--promotion::before { background: #d9f1df; border-color: #16803c; }
.vp-page .vp-standings-chart__zone--promotion-playoff { background: transparent; color: var(--fan-muted); }
.vp-page .vp-standings-chart__zone--promotion-playoff::before { background: #eef8ef; border-color: #6fad7d; }
.vp-page .vp-standings-chart__zone--relegation-playoff { background: transparent; color: var(--fan-muted); }
.vp-page .vp-standings-chart__zone--relegation-playoff::before { background: #fff3e0; border-color: #c98221; }
.vp-page .vp-standings-chart__zone--relegation { background: transparent; color: var(--fan-muted); }
.vp-page .vp-standings-chart__zone--relegation::before { background: #fde8ea; border-color: #bd2737; }
.vp-page .vp-standings-chart__fallback { color: var(--fan-muted); font-size: .9rem; margin: 0; padding: 1rem; text-align: left; }

/* Bilanz-Chart inkl. Filterleiste, Werten und Badge */
.vp-page .vp-balance__filters { background: transparent; border-bottom: 0; display: flex; flex-wrap: nowrap; gap: .35rem; overflow-x: auto; padding: 0 1rem .8rem; scrollbar-width: thin; }
.vp-page .vp-balance__filter { background: #fff; border: 1px solid var(--fan-line); border-radius: 4px; color: var(--fan-accent-dark); font-size: .8rem; font-weight: 700; min-height: 38px; padding: .35rem .7rem; white-space: nowrap; }
.vp-page .vp-balance__filter:hover, .vp-page .vp-balance__filter:focus-visible, .vp-page .vp-balance__filter.is-active, .vp-page .vp-balance__filter[aria-pressed="true"] { background: var(--fan-accent); border-color: var(--fan-accent); color: #fff; }
.vp-page .vp-balance__segment { transition: width .2s ease; }
.vp-page .vp-balance__value-label { color: var(--fan-muted); display: block; font-size: .72rem; font-weight: 700; text-transform: uppercase; }
.vp-page .vp-balance__value-number { color: var(--fan-ink); display: block; font-size: 1.15rem; font-weight: 800; line-height: 1.2; overflow-wrap: anywhere; }
.vp-page .vp-balance__badge { font-size: 1rem; min-height: 105px; min-width: 145px; }
.vp-page .vp-balance__badge strong { font-size: 1.25rem; line-height: 1.05; }
.vp-page .vp-balance__badge span { font-size: .72rem; margin-top: .35rem; }
.vp-page .vp-balance__badge--positive { background: #e5f5ea; border-color: #16803c; color: #126132; }
.vp-page .vp-balance__badge--neutral { background: #fff4dc; border-color: #a66a00; color: #805000; }
.vp-page .vp-balance__badge--negative { background: #fde8ea; border-color: #bd2737; color: #9d1d2a; }

/* Rückblick auf die letzten Spiele */
.vp-page .vp-recent-match__meta { color: var(--fan-muted); font-size: .78rem; line-height: 1.35; min-height: 0; }
.vp-page .vp-recent-match__teams { color: var(--fan-ink); display: block; font-size: 1rem; font-weight: 700; justify-content: flex-start; line-height: 1.35; min-height: 0; overflow-wrap: anywhere; text-align: left; }
.vp-page .vp-recent-match__teams a { color: inherit; text-decoration: underline; text-decoration-color: var(--fan-line); text-underline-offset: 2px; }
.vp-page .vp-recent-match__teams a:hover, .vp-page .vp-recent-match__teams a:focus-visible { color: inherit; }
.vp-page .vp-recent-match__footer { align-items: center; border-top: 0; display: flex; flex-wrap: wrap; gap: .5rem; justify-content: space-between; margin-top: 0; padding-top: 0; }
.vp-page .vp-recent-match__score { color: var(--fan-ink); font-family: inherit; font-size: 1.2rem; font-weight: 800; line-height: inherit; }
.vp-page .vp-recent-match__detail { color: var(--fan-muted); font-size: .78rem; font-weight: 400; line-height: 1.35; margin-top: 0; }
.vp-page .vp-result-label { border-radius: 3px; display: inline-block; font-size: .72rem; font-weight: 800; letter-spacing: 0; line-height: normal; padding: .25rem .45rem; text-align: left; text-transform: uppercase; }
.vp-page .vp-result-label--win { background: #e5f5ea; color: #126132; }
.vp-page .vp-result-label--draw { background: #fff4dc; color: #805000; }
.vp-page .vp-result-label--loss { background: #fde8ea; color: #9d1d2a; }

/* Gegnerlinks */
.vp-page .vp-opponent-link { background: transparent; gap: .2rem .75rem; }
.vp-page .vp-opponent-link:hover { background: var(--fan-sky); border-color: var(--fan-accent); color: var(--fan-ink); text-decoration: none; }
.vp-page .vp-opponent-link__name { font-size: .95rem; font-weight: 800; overflow-wrap: anywhere; }
.vp-page .vp-opponent-link__url { font-size: .78rem; grid-column: 1; }
.vp-page .vp-opponent-link__action { color: var(--fan-accent-dark); display: flex; font-size: 1.05rem; grid-column: 2; grid-row: 1 / span 2; min-height: 36px; min-width: 36px; }
.vp-page .vp-opponent-link__crest { filter: grayscale(1) contrast(1.1); height: 28px; object-fit: contain; width: 28px; }

.opponent-detail-page .vp-opponent-links { margin: 2.25rem 0; }
.opponent-detail-page .vp-opponent-links > h2 { border-bottom: 2px solid var(--fan-line); color: var(--fan-ink); font: 1.45rem/1.2 concert, Verdana, sans-serif; margin: 2.3rem 0 1rem; padding-bottom: .55rem; }
.opponent-detail-page .vp-opponent-links__grid { display: grid; gap: .65rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 1rem; }
.opponent-detail-page .vp-opponent-link { align-items: center; background: transparent; border: 1px solid var(--fan-line); border-radius: var(--fan-radius); color: var(--fan-ink); display: grid; gap: .2rem .75rem; grid-template-columns: minmax(0, 1fr) auto; min-height: 76px; padding: .8rem .9rem; text-decoration: none; }
.opponent-detail-page .vp-opponent-link:hover, .opponent-detail-page .vp-opponent-link:focus-visible { background: var(--fan-sky); border-color: var(--fan-accent); color: var(--fan-ink); text-decoration: none; }
.opponent-detail-page .vp-opponent-link__name { font-size: .95rem; font-weight: 800; overflow-wrap: anywhere; }
.opponent-detail-page .vp-opponent-link__url { color: var(--fan-muted); font-size: .78rem; grid-column: 1; overflow-wrap: anywhere; }
.opponent-detail-page .vp-opponent-link__action { color: var(--fan-accent-dark); display: flex; font-size: 1.05rem; grid-column: 2; grid-row: 1 / span 2; min-height: 36px; min-width: 36px; }
.opponent-detail-page .vp-opponent-link__crest { filter: grayscale(1) contrast(1.1); height: 28px; object-fit: contain; width: 28px; }
@media (max-width: 767.98px) {
    .opponent-detail-page .vp-opponent-links__grid { grid-template-columns: 1fr; }
}

/* Buttons in Karten und Forum-Hinweis: Bootstrap-Standard wie in der Referenz */
.vp-page .vp-forum-link .btn { border-radius: .375rem; font-size: 1rem; font-weight: 400; margin: 0; min-height: 44px; padding: .375rem .75rem; }

/* Responsives Verhalten aus dem Referenz-Template */
@media (max-width: 991.98px) {
    .vp-page { padding-bottom: 2rem; }
}
@media (max-width: 767.98px) {
    main.vp-page > .row > [class*="col-"] { padding-left: 0 !important; padding-right: 0 !important; }
    .vp-page .season-nav.stx-season-nav { flex-direction: row; gap: .5rem; }
    .vp-page .season-nav.stx-season-nav { margin-left: 0; margin-right: 0; width: 100%; }
    .vp-page .season-nav.stx-season-nav > a { max-width: 48%; width: auto; }
    .vp-page .season-nav.stx-season-nav > span { flex: 1 1 0; }
    .vp-page .season-nav.stx-season-nav > a:last-of-type { margin-left: auto; text-align: right; }
    .vp-page .vp-recent-matches { grid-template-columns: 1fr; }
    .vp-page .vp-recent-match { grid-template-columns: minmax(0, 1fr) auto; }
    .vp-page .vp-recent-match__meta, .vp-page .vp-recent-match__teams { grid-column: 1 / -1; }
    .vp-page .vp-comparison__row { gap: .45rem; grid-template-columns: minmax(0, 1fr) 100px minmax(0, 1fr); }
    .vp-page .vp-opponent-links__grid { grid-template-columns: 1fr; }
    .vp-page .vp-opponent-link { grid-template-columns: minmax(0, 1fr) auto; }
    .vp-page .vp-standings-chart__viewport { padding: .75rem; }
    .vp-page .vp-standings-chart__header { align-items: center; flex-direction: row; }
    .vp-page .vp-balance__content { grid-template-columns: 1fr; }
    .vp-page .vp-balance__badge { min-height: 76px; }
}
@media (max-width: 450px) {
    .vp-page .vp-comparison__teams { font-size: .92rem; gap: .45rem; padding: .75rem; }
    .vp-page .vp-comparison__body { padding: .75rem; }
    .vp-page .vp-comparison__row { gap: .3rem; grid-template-columns: minmax(0, 1fr) 78px minmax(0, 1fr); }
    .vp-page .vp-comparison__label { font-size: .65rem; }
    .vp-page .vp-comparison__value { font-size: .84rem; }
}
@media (max-width: 575.98px) {
    .vp-page .vp-hero__teams { gap: .6rem; padding: .9rem .65rem .8rem; }
    .vp-page .vp-team { flex-direction: column; gap: .5rem; }
    .vp-page .vp-team__crest { flex-basis: auto; height: 54px; max-width: 64px; }
    .vp-page .vp-team__name { font-size: 1.05rem; }
    .vp-page .vp-versus { font-size: .88rem; }
    .vp-page .vp-hero__facts {    padding: .5rem .75rem; }
    .vp-page .vp-prose { font-size: 1rem; line-height: 1.65; }
    .vp-page .vp-intro { font-size: 1.02rem; }
    .vp-page .vp-balance__values { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .vp-page .vp-forum-link { align-items: stretch; flex-direction: column; }
    .vp-page .vp-table-scroll { margin-left: -.75rem; margin-right: -.75rem; padding: 0 .75rem; }
}

/* ==========================================================================
   14. SPIELBERICHT: 1:1-ABGLEICH MIT DEM BISHERIGEN INLINE-STYLESHEET
   Ersetzt die ausgelagerten Regeln aus spielbericht_neu.php.
   ========================================================================== */
.sr-page .sr-hero__type { align-items: center; border-bottom: 1px solid rgba(255,255,255,.35); color: rgba(255,255,255,.95); display: flex; font-size: .74rem; gap: .75rem; justify-content: space-between; padding: .8rem 1.25rem .55rem; text-align: left; }
.sr-page .sr-hero__hits { color: rgba(255,255,255,.7); font-weight: 600; letter-spacing: normal; text-transform: none; }
.sr-page .sr-hero__meta { color: rgba(255,255,255,.9); font-weight: 600; }
.sr-page .sr-hero-actions { margin: 0 0 1.5rem; }
.sr-page .sr-hero-actions .btn { margin: 0 .25rem; }
/* Spielbericht, Bilder und Stimmen zentriert wie eine News-Detailseite (siehe .vp-article) */
.sr-page .sr-article-wrap { margin: 0 auto; max-width: 860px; padding: 1.75rem 0 2.25rem; }
.sr-page .sr-article { max-width: none; }
.sr-page .sr-gallery__source { color: var(--fan-muted); font-size: .85rem; margin: .9rem 0 0; }
.sr-page .sr-forum .btn { margin: 0; min-height: 44px; }
@media (max-width: 991.98px) {
    .sr-page { padding-bottom: 2rem; }
    .sr-page .sr-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
    .sr-page .sr-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
    .sr-page .sr-breadcrumb { overflow-x: auto; white-space: nowrap; }
    .sr-page .sr-team--home { align-items: flex-end; }
    .sr-page .sr-team--away { align-items: flex-start; }
    .sr-page .sr-hero__facts { align-items: flex-start; flex-direction: column; gap: .3rem; }
    .sr-page .sr-squads { grid-template-columns: 1fr; }
    .sr-page .sr-forum { align-items: stretch; flex-direction: column; }
}

/* ==========================================================================
   15. GESAMTSUCHE (.gs-*): VOLLTEXTSUCHE ÜBER DEN GESAMTEN CONTENT
   ========================================================================== */
.gs-breadcrumb { font-size: .78rem; padding: 1rem 0 .25rem; }
.gs-breadcrumb .breadcrumb { background: transparent; margin: 0 0 .5rem; padding: 0; }
.gs-hero { background-image: linear-gradient(to top, rgb(33, 143, 195), rgb(117, 184, 254)); border-radius: var(--fan-radius); box-shadow: var(--fan-shadow); color: #fff; margin: .75rem 0 1.75rem; padding: 1.5rem; }
.gs-hero__eyebrow { color: rgba(255, 255, 255, .9); font-size: .76rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.gs-hero__title { color: #fff; font: 2rem/1.15 concert, Verdana, sans-serif; margin: .4rem 0 0; text-transform: uppercase; }
.gs-hero__text { color: rgba(255, 255, 255, .95); font-size: .95rem; line-height: 1.55; margin: .65rem 0 0; max-width: 48rem; }
.gs-form { display: flex; gap: .5rem; margin-top: 1.1rem; max-width: 40rem; }
.gs-form__input { background: #fff; border: 1px solid rgba(255, 255, 255, .6); border-radius: var(--fan-radius); color: var(--fan-ink); flex: 1 1 auto; font-size: 1rem; min-height: 46px; min-width: 0; padding: .5rem .9rem; }
.gs-form__input:focus { border-color: var(--fan-focus); box-shadow: 0 0 0 3px rgba(240, 180, 41, .4); outline: 0; }
.gs-form__sort { background: #fff; border: 1px solid rgba(255, 255, 255, .6); border-radius: var(--fan-radius); color: var(--fan-ink); min-height: 46px; padding: .5rem .65rem; }
.gs-form__submit { align-items: center; background: var(--fan-accent-dark); border: 0; border-radius: var(--fan-radius); color: #fff; cursor: pointer; display: inline-flex; font-size: .95rem; font-weight: 700; gap: .45rem; min-height: 46px; padding: .5rem 1.2rem; white-space: nowrap; }
.gs-form__submit:hover, .gs-form__submit:focus-visible { background: #053a68; color: #fff; }
.gs-sort-summary { color: var(--fan-muted); font-size: .82rem; margin: .65rem 0 1rem; }
.gs-summary { color: var(--fan-ink); font-size: 1rem; margin: 0 0 .85rem; }
.gs-chips { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 1.75rem; }
.gs-chip { align-items: center; background: #fff; border: 1px solid var(--fan-line); border-radius: 4px; color: var(--fan-accent-dark); display: inline-flex; font-size: .8rem; font-weight: 700; gap: .4rem; line-height: 1.2; min-height: 38px; padding: .35rem .7rem; text-decoration: none; white-space: nowrap; }
.gs-chip:hover, .gs-chip:focus-visible, .gs-chip.is-active { background: var(--fan-accent); border-color: var(--fan-accent); color: #fff; text-decoration: none; }
.gs-chip__count { background: var(--fan-sky); border-radius: 999px; color: var(--fan-accent-dark); font-size: .72rem; line-height: 1; padding: .25rem .45rem; }
.gs-chip.is-active .gs-chip__count { background: rgba(255, 255, 255, .25); color: #fff; }
.gs-section { margin: 0 0 2rem; }
.gs-section__title { align-items: center; border-bottom: 2px solid var(--fan-line); color: var(--fan-ink); display: flex; font: 1.35rem/1.2 concert, Verdana, sans-serif; gap: .5rem; margin: 0 0 .25rem; padding-bottom: .5rem; text-transform: uppercase; }
.gs-section__title i { color: var(--fan-accent); font-size: 1.05rem; }
.gs-section__count { background: var(--fan-sky); border-radius: 999px; color: var(--fan-accent-dark); font: 700 .78rem/1 Verdana, Arial, sans-serif; padding: .3rem .55rem; }
.gs-hits { list-style: none; margin: 0; padding: 0; }
.gs-hit { border-bottom: 1px solid var(--fan-line); padding: .85rem 0; }
.gs-hit:last-child { border-bottom: 0; }
.gs-hit__title { font-size: 1rem; font-weight: 700; line-height: 1.35; overflow-wrap: anywhere; }
.gs-hit__title a { color: var(--fan-accent-dark); text-decoration: none; }
.gs-hit__title a:hover, .gs-hit__title a:focus-visible { color: var(--fan-accent); text-decoration: underline; }
.gs-hit__external { font-size: .7rem; margin-left: .25rem; opacity: .75; }
.gs-hit__meta { color: var(--fan-muted); display: flex; flex-wrap: wrap; font-size: .78rem; gap: .25rem .75rem; margin-top: .2rem; }
.gs-hit__snippet { color: #26384f; font-size: .9rem; line-height: 1.55; margin: .35rem 0 0; overflow-wrap: anywhere; }
.gs-hit mark, .gs-summary mark { background: #fff4dc; border-radius: 2px; color: inherit; padding: 0 .1em; }
.gs-section__more { color: var(--fan-accent-dark); display: inline-block; font-size: .85rem; font-weight: 700; margin-top: .65rem; text-decoration: none; }
.gs-section__more:hover, .gs-section__more:focus-visible { color: var(--fan-accent); text-decoration: underline; }
.gs-empty { background: var(--fan-sky); border-left: 4px solid var(--fan-accent); border-radius: 0 var(--fan-radius) var(--fan-radius) 0; color: var(--fan-ink); font-size: .95rem; line-height: 1.55; margin: 0 0 2rem; padding: .85rem 1rem; }
.gs-empty p { margin: 0 0 .35rem; }
.gs-empty p:last-child { margin-bottom: 0; }
.gs-intro { color: var(--fan-muted); font-size: .95rem; margin: 0 0 2rem; }
.gs-intro__list { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; list-style: none; margin: .75rem 0 0; padding: 0; }
.gs-intro__list li { align-items: center; color: var(--fan-ink); display: inline-flex; font-size: .9rem; font-weight: 700; gap: .45rem; }
.gs-intro__list i { color: var(--fan-accent); }
.gs-page a:focus-visible { outline: 3px solid var(--fan-focus); outline-offset: 2px; }
@media (max-width: 575.98px) {
    .gs-hero { padding: 1.25rem 1rem; }
    .gs-form { flex-direction: column; }
    .gs-form__sort { width: 100%; }
    .gs-form__submit { justify-content: center; }
    .gs-chips { gap: .35rem; }
}

/* Sitemap: kompaktes Suchformular im Hero */
.fp-hero__search { display: flex; gap: .5rem; margin-top: 1rem; max-width: 34rem; }
.fp-hero__search .gs-form__input, .fp-hero__search .gs-form__submit { min-height: 44px; }

/* ==========================================================================
   16. SPIELPLAN & SPIELTAG: MOBILE DARSTELLUNG DER PARTIEN UND TABELLE
   Meta-Zeile in voller Breite, darunter Paarung links und Ergebnis rechts.
   ========================================================================== */
@media (max-width: 767.98px) {
    .sp-match { gap: .3rem .6rem; grid-template-columns: minmax(0, 1fr) auto auto; min-height: 0; padding: .7rem .8rem; }
    .sp-match__meta { border-bottom: 1px dashed var(--fan-line); grid-column: 1 / -1; padding-bottom: .4rem; }
    .sp-match__fixture { font-size: .95rem; grid-column: 1; }
    .sp-match__result { font-size: 1.05rem; grid-column: 2; }
    .sp-match__gallery { grid-column: 3; min-height: 32px; min-width: 32px; }
    .st-matchday__row { gap: .3rem .6rem; grid-template-columns: minmax(0, 1fr) auto; min-height: 0; padding: .7rem .8rem; }
    .st-matchday__date { border-bottom: 1px dashed var(--fan-line); grid-column: 1 / -1; padding-bottom: .4rem; }
    .st-matchday__match { font-size: .95rem; grid-column: 1; }
    .st-matchday__result { font-size: 1.05rem; font-weight: 850; grid-column: 2; text-align: right; }
    /* Tabelle passt ohne horizontales Scrolling in den Viewport */
    .st-table-wrap table { min-width: 0; width: 100%; }
    .st-table-wrap th { font-size: .74rem; padding: .35rem .3rem; }
    .st-table-wrap td { font-size: .82rem; overflow-wrap: anywhere; padding: .35rem .3rem; }
    .st-table-wrap th:first-child, .st-table-wrap td:first-child,
    .st-table-wrap th:nth-child(7), .st-table-wrap td:nth-child(7),
    .st-table-wrap th:nth-child(9), .st-table-wrap td:nth-child(9) {
        min-width: 2.9rem;
        overflow-wrap: normal;
        white-space: nowrap;
    }
}

/* Tabellenverlauf: Vereinslinie und Zonenlegende */
.st-chart__header { gap: .65rem 1.25rem; padding: .8rem 1rem; }
.st-chart__team { align-items: center; color: var(--fan-ink); display: inline-flex; font-weight: 800; gap: .4rem; }
.st-chart__dot { background: var(--fan-accent); border-radius: 50%; display: inline-block; flex: 0 0 10px; height: 10px; width: 10px; }
.st-chart__place { align-items: baseline; color: var(--fan-muted); display: inline-flex; gap: .35rem; }
.st-chart__place strong { color: var(--fan-ink); font-size: 1.25rem; line-height: 1; }
.st-chart__viewport { padding: .75rem .5rem; }
.st-chart__zones { gap: .45rem 1rem; padding: .65rem .75rem; }
.st-chart__zone { align-items: center; display: inline-flex; gap: .35rem; }
.st-chart__zone::before { background: #fff; border: 1px solid var(--fan-line); content: ""; display: inline-block; flex: 0 0 9px; height: 9px; width: 9px; }
.st-chart__zone--up::before { background: #d9f1df; border-color: #16803c; }
.st-chart__zone--up-playoff::before { background: #eef8ef; border-color: #6fad7d; }
.st-chart__zone--down-playoff::before { background: #fff3e0; border-color: #c98221; }
.st-chart__zone--down::before { background: #fde8ea; border-color: #bd2737; }

/* Spielearchiv: kompakte mobile Tabellenansicht mit horizontalem Scrollen */
@media (max-width: 767.98px) {
    .spa-table-wrap { -webkit-overflow-scrolling: touch; overflow-x: auto; }
    .spa-table { min-width: 760px; table-layout: auto; width: 100%; }
    .spa-table th, .spa-table td { padding: .55rem .45rem; }
    .spa-table th:nth-child(1) { width: 112px !important; }
    .spa-table th:nth-child(2) { width: 78px !important; }
    .spa-table th:nth-child(3) { width: 102px !important; }
    .spa-table th:nth-child(4) { width: 82px !important; }
    .spa-table th:nth-child(5) { min-width: 220px !important; }
    .spa-table th:nth-child(6) { width: 130px !important; }
    .spa-table th:nth-child(7) { width: 78px !important; }
    .spa-table th { font-size: .68rem; }
    .spa-table td { font-size: .78rem; }
    .spa-table td:nth-child(1) strong { display: block; line-height: 1.25; }
    .spa-match-cell { gap: .3rem; min-width: 220px; }
    .spa-match-team { font-size: .8rem; gap: .22rem; line-height: 1.2; }
    .spa-crest { height: 19px; max-width: 20px; }
    .spa-score-badge { font-size: .9rem; min-width: 44px; padding: .25rem .25rem; }
    .spa-score-extra { font-size: .62rem; }
    .spa-table .spa-badge { font-size: .64rem; line-height: 1.15; max-width: 8rem; overflow: hidden; padding: .18rem .3rem; text-overflow: ellipsis; white-space: nowrap; }
}

/* Archivübersicht */
.ar-page { max-width: 1120px; padding-bottom: 3rem; }
.ar-breadcrumb .breadcrumb { background: transparent;  padding: 0; }
.ar-header { border-bottom: 2px solid var(--fan-line); padding: 1.6rem 0 1.25rem; }
.ar-header h1 { color: var(--fan-ink); font: 2rem/1.15 concert, Verdana, sans-serif; margin: 0 0 .6rem; text-transform: uppercase; }
.ar-header p { color: #26384f; line-height: 1.6; margin: 0; max-width: 52rem; }
.ar-index { display: flex; flex-wrap: wrap; gap: .45rem 1.25rem; margin: 1.25rem 0 2rem; }
.ar-index a { border-bottom: 2px solid transparent; color: var(--fan-accent-dark); font-size: .86rem; font-weight: 700; padding: .3rem 0; text-decoration: none; }
.ar-index a:hover, .ar-index a:focus-visible { border-color: var(--fan-accent); text-decoration: none; }
.ar-sections { display: grid; gap: 2rem 2.5rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ar-section { min-width: 0; scroll-margin-top: 5rem; }
.ar-section__heading { border-bottom: 2px solid var(--fan-line); margin-bottom: .25rem; padding-bottom: .7rem; }
.ar-section h2 { color: var(--fan-ink); font: 1.35rem/1.2 concert, Verdana, sans-serif; margin: 0 0 .35rem; text-transform: uppercase; }
.ar-section__heading p { color: var(--fan-muted); font-size: .86rem; line-height: 1.5; margin: 0; }
.ar-links { list-style: none; margin: 0; padding: 0; }
.ar-links li { border-bottom: 1px solid var(--fan-line); padding: .7rem 0; }
.ar-links a { color: var(--fan-accent-dark); font-weight: 700; text-decoration: none; }
.ar-links a:hover, .ar-links a:focus-visible { text-decoration: underline; }
.ar-links a i { font-size: .72rem; margin-left: .25rem; }
.ar-links p { color: var(--fan-muted); font-size: .84rem; line-height: 1.5; margin: .15rem 0 0; }
@media (max-width: 767.98px) {
    .ar-sections { grid-template-columns: 1fr; }
    .ar-header h1 { font-size: 1.7rem; }
}

/* Gegnerbilanz-Detail: Filter über "Alle Spiele" */
.opponent-matches__count { color: var(--fan-muted); font-size: .9rem; font-weight: 400; }
.opponent-matches__filterbox { border: 1px solid var(--fan-line); border-radius: var(--fan-radius); margin-bottom: 1rem; overflow: hidden; }
.opponent-matches__filterbox .opponent-balance-chart__filters + .opponent-balance-chart__filters { border-top: 1px solid var(--fan-line); }
.opponent-matches .filter-summary { margin-top: 0; }
.opponent-matches .filter-summary__reset { background: none; border: 0; padding: 0; }
.opponent-matches .spa-filter-summary__remove { border: 0; cursor: pointer; line-height: 1; padding: 0; }
.opponent-matches__empty { background: var(--fan-sky); border-radius: var(--fan-radius); color: var(--fan-muted); margin: 0 0 1rem; padding: 1rem; text-align: center; }
.opponent-match-list > [hidden] { display: none !important; }

/* Vorbericht: Vereinslogos im Tabellenverlauf (HTML-Bilder über dem SVG, Seitenverhältnis bleibt immer erhalten) */
.vp-standings-chart__logo { height: 22px; max-width: 44px; object-fit: contain; pointer-events: none; position: absolute; transform: translate(-50%, -50%); width: auto; z-index: 1; }
@media (max-width: 575.98px) { .vp-standings-chart__logo { height: 18px; max-width: 36px; } }

/* Rekorde: filter- und sortierbare Zuschauertabellen */
.record-table { display: flex; flex-direction: column; }
.record-table__controls { display: flex; flex-wrap: wrap; gap: .5rem 1rem; justify-content: space-between; margin: .8rem 0 .7rem; }
.record-table__filters { display: flex; flex-wrap: wrap; gap: .35rem; }
.record-table__filter { background: #fff; border: 1px solid var(--fan-line); border-radius: 999px; color: var(--fan-accent); cursor: pointer; font-size: .78rem; font-weight: 700; line-height: 1.2; padding: .35rem .7rem; transition: all .15s ease-in-out; }
.record-table__filter:hover, .record-table__filter:focus-visible, .record-table__filter.is-active { background: var(--fan-accent); border-color: var(--fan-accent); color: #fff; }
.record-table__filter i { margin-right: .2rem; }
.record-table__scroll { border: 1px solid var(--fan-line); border-radius: var(--fan-radius); max-height: 26rem; overflow: auto; }
.record-table__scroll:focus-visible { outline: 2px solid var(--fan-accent); outline-offset: 2px; }
.record-table__table { border-collapse: collapse; font-size: .85rem; width: 100%; }
.record-table__table th { background: var(--fan-sky); color: var(--fan-muted); font-size: .72rem; font-weight: 800; letter-spacing: .05em; padding: .5rem .6rem; position: sticky; text-align: left; text-transform: uppercase; top: 0; z-index: 1; }
.record-table__table td { border-top: 1px solid var(--fan-line); padding: .5rem .6rem; vertical-align: top; }
.record-table__table th:last-child, .record-table__table td:last-child { text-align: right; white-space: nowrap; }
.record-table__table td small { color: var(--fan-muted); display: block; font-size: .72rem; margin-top: .15rem; }
.record-table__table td a { color: var(--fan-accent); font-weight: 700; text-decoration: none; }
.record-table__table td a:hover, .record-table__table td a:focus-visible { text-decoration: underline; }
.record-table__table td strong { color: var(--fan-ink); }
.record-table__table tr[hidden] { display: none; }
.record-table__rank { color: var(--fan-muted); font-weight: 800; width: 2.6rem; }
.record-table__club { border-radius: 3px; display: inline-block; font-size: .65rem; font-weight: 800; letter-spacing: .04em; line-height: 1; margin-left: .25rem; padding: .2rem .3rem; vertical-align: .1em; }
.record-table__club--fck { background: #f6e3df; color: #9c4436; }
.record-table__club--cfc { background: var(--fan-sky); color: var(--fan-accent); }
.record-table__count { color: var(--fan-muted); font-size: .75rem; margin: .5rem 0 0; }
.record-table .record-rankings__note { margin-top: .25rem; }
@media (max-width: 991.98px) { .record-grid--two:has(> .record-table) { grid-template-columns: 1fr; } }
.record-table__table td:nth-child(2) { white-space: nowrap; }

/* Rekorde: Kartenrekorde */
.record-card--card-yellow { border-top: 4px solid #e8b600; }
.record-card--card-yellow-red { border-top: 4px solid #e0701b; }
.record-card--card-red { border-top: 4px solid #c8102e; }

/* Gegnerbilanz-Detail: Überschrift "Bilanz gegen …" außerhalb des Rahmens */
.opponent-balance-chart-section { margin: 0 auto 2rem; max-width: 980px; }
.opponent-balance-chart-section .opponent-balance-chart { margin: 0; max-width: none; }

/* =====================================================================
   UX-Quick-Wins (neue Templates)
   ===================================================================== */

/* Einheitliche Umschalter (Spiel-Navigation, Wettbewerbe Statistik) */
.fp-pill-group { align-items: center; display: flex; flex-wrap: wrap; gap: .4rem; }
.fp-pill { align-items: center; background: #fff; border: 1px solid var(--fan-line); border-radius: 999px; color: var(--fan-accent); display: inline-flex; font-size: .82rem; font-weight: 700; line-height: 1.2; min-height: 34px; padding: .35rem .85rem; text-decoration: none; transition: all .15s ease-in-out; }
a.fp-pill:hover, a.fp-pill:focus-visible { background: var(--fan-sky); border-color: var(--fan-accent); color: var(--fan-accent); text-decoration: none; }
.fp-pill.is-active { background: var(--fan-accent); border-color: var(--fan-accent); color: #fff; cursor: default; }
.sr-page .sr-hero-actions, .vp-page .vp-hero-actions { display: flex; flex-wrap: wrap; gap: .4rem; justify-content: center; }

/* Formkurve: Farblegende */
.stx-form-legend { align-items: center; color: var(--fan-muted); display: flex; flex-wrap: wrap; font-size: .78rem; gap: .35rem .9rem; margin-top: .5rem; }
.stx-form-legend__item { align-items: center; display: inline-flex; gap: .3rem; }
.stx-form-legend__item::before { border-radius: 3px; content: ""; display: inline-block; height: .75rem; width: .75rem; }
.stx-form-legend__item--win::before { background: #d9f1df; border: 1px solid #176b37; }
.stx-form-legend__item--draw::before { background: #fff3c4; border: 1px solid #8a6500; }
.stx-form-legend__item--loss::before { background: #fde8ea; border: 1px solid #a51c30; }

/* Mindestschriftgröße 12 px für bisher zu kleine Texte */
.opponent-card__balance, .opponent-card__balance *,
.swa-person__place, .swa-card__type, .vp-comparison__label, .spa-badge,
.record-top-list small, .record-attendance__club, .record-attendance__season-name, .record-attendance__value,
.opponent-section-heading__eyebrow, .opponent-stat small, .dl-card__category, .book-card__ratings, .book-card__footer,
.km-badge, .ps-badge, .ma-player__badge-new, .sa-badge, .sa-count-badge, .stx-goal-period__label,
.sp-match__status, .st-matchday__status, .vp-balance__value-label, .vp-result-label,
.record-streak-list small, .record-streak-list a, .record-table__table td small, .record-attendance__average-value,
.spa-table-compact-text, .spa-score-extra { font-size: .75rem !important; }

/* Größere Tippflächen */
.breadcrumb { align-items: center; }
/* Eintrag als Flex-Zeile: Trennzeichen und Text bleiben auf einer Linie, auch wenn der Link wegen der Tippfläche höher ist */
.breadcrumb-item { align-items: center; display: inline-flex; }
.breadcrumb-item + .breadcrumb-item::before { float: none; }
.breadcrumb-item a { display: inline-block; padding-block: .3rem; }
/* Archiv-Startseite: gleiche Breadcrumb-Optik wie die übrigen neuen Templates */
.ar-breadcrumb { font-size: .78rem; margin: 0; padding: 1.1rem 0 .25rem; }
.ar-breadcrumb .breadcrumb { margin: 0 0 .5rem; }
.ar-breadcrumb .breadcrumb-item { line-height: 1.4; }
.nu-card__tag { display: inline-flex; align-items: center; min-height: 28px; }
.record-card__link { align-items: center; display: inline-flex; min-height: 32px; }
.record-streak-details summary { padding-block: .35rem; }
.stx-jumpnav a { display: inline-block; padding-block: .3rem; }

@media (max-width: 575.98px) {
    /* Breadcrumb komplett anzeigen: alle Ebenen sichtbar, lange Einträge brechen um */
    .breadcrumb { flex-wrap: wrap; row-gap: 0; }
    .breadcrumb-item { max-width: 100%; white-space: normal; }
    .breadcrumb-item a { display: inline-block; padding-block: .45rem; }
    .nu-card__tag { min-height: 32px; }

    /* Vorbericht-Überschrift wie Spielbericht */
    .vp-page .vp-content > h1 { font-size: 1.4rem; }

    /* Saisonübersicht: Schlagzeilen als Liste statt Lauftext */
    .so-page .so-news--ticker li { border-bottom: 1px solid var(--fan-line); display: block; padding: .5rem 0; }
    .so-page .so-news--ticker li:last-child { border-bottom: 0; }
    .so-page .so-news--ticker li::after { content: none !important; }
    .so-page .so-news--ticker time { display: block; margin: 0 0 .15rem; }
}

@media (max-width: 991.98px) {
    /* Teilen-Leiste unten als volle Leiste, Seite bekommt Platz dafür */
    .a2a_kit.a2a_floating_style.a2a_default_style { background: #fff !important; border-radius: 0 !important; border-top: 1px solid var(--fan-line); bottom: 0 !important; box-shadow: 0 -2px 8px rgba(16, 42, 67, .08) !important; text-align: center; left: 0 !important; padding: 6px 0 !important; right: 0 !important; }
    .a2a_kit.a2a_floating_style.a2a_default_style > a { display: inline-block; float: none !important; margin: 0 4px; }
    body { padding-bottom: 56px; }
}

/* =====================================================================
   Vorbericht: Hero, Abstände und Schriftgrößen wie im Spielbericht (Master)
   Automatisch aus den .sr-page-Regeln übernommen (sr- -> vp-), gleiche Reihenfolge.
   ===================================================================== */
main.vp-page > .row > [class*="col-"] { padding-left: 0 !important; padding-right: 0 !important; }
main.vp-page > .row > .pb-4 { padding-bottom: 0 !important; }
.vp-page .vp-hero { margin-bottom: 1.25rem; }
.vp-page .vp-hero { padding: 1rem 1.25rem; }
main.vp-page .vp-hero__meta { font-size: .88rem; line-height: 1.4; padding-top: .5rem !important; }
.vp-page .vp-hero__meta { padding-top: .5rem !important; }
.vp-page .vp-hero__teams { gap: .85rem; padding: .9rem .85rem .8rem; }
.vp-page .vp-team { width: 100%; }
.vp-page .vp-team > div { flex: 1 1 auto; min-width: 0; }
.vp-page .vp-team__name { font-size: 1.2rem; line-height: 1.15; }
.vp-page .vp-team__crest { height: 60px; max-width: 72px; }
.vp-page .vp-hero__facts { font-size: .82rem; gap: .3rem .9rem; padding: .5rem .75rem; }
.vp-page .vp-jumpnav { margin: 1.25rem 0 1.5rem; }
@media (max-width: 767.98px) { .vp-page .vp-hero__teams { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: .5rem; padding: .9rem .65rem; } 
 .vp-page .vp-team__name { font-size: 1rem; } 
 .vp-page .vp-team__crest { height: 48px; max-width: 58px; } }
.vp-page .vp-hero__type { align-items: center; border-bottom: 1px solid rgba(255,255,255,.35); color: rgba(255,255,255,.95); display: flex; font-size: .74rem; gap: .75rem; justify-content: space-between; padding: .8rem 1.25rem .55rem; text-align: left; }
.vp-page .vp-hero__hits { color: rgba(255,255,255,.7); font-weight: 600; letter-spacing: normal; text-transform: none; }
.vp-page .vp-hero__meta { color: rgba(255,255,255,.9); font-weight: 600; }
.vp-page .vp-hero-actions { margin: 0 0 1.5rem; }
.vp-page .vp-hero-actions .btn { margin: 0 .25rem; }
@media (max-width: 575.98px) { .vp-page .vp-breadcrumb { overflow-x: auto; white-space: nowrap; } 
 .vp-page .vp-team--home { align-items: flex-end; } 
 .vp-page .vp-team--away { align-items: flex-start; } 
 .vp-page .vp-hero__facts { align-items: flex-start; flex-direction: column; gap: .3rem; } }
.vp-page .vp-hero-actions { display: flex; flex-wrap: wrap; gap: .4rem; justify-content: center; }

/* Spiel- und Vorbericht: Punkt zwischen Datum und Spielort im Hero (auf dem Handy untereinander, ohne Punkt) */
.sr-page .sr-hero__facts > * + *::before, .vp-page .vp-hero__facts > * + *::before { content: "\00B7"; font-weight: 700; margin-right: .9rem; }
@media (max-width: 575.98px) { .sr-page .sr-hero__facts > * + *::before, .vp-page .vp-hero__facts > * + *::before { content: none; } }

/* Breadcrumb überall gleich: Linkfarbe, Abstand zur Navigation und zum Hero */
.breadcrumb-item a { color: var(--fan-accent); }
.breadcrumb-item a:hover, .breadcrumb-item a:focus-visible { color: var(--fan-accent-dark, #084f8a); }
.col-12.py-3:has(> .sp-context), .col-12.py-3:has(> .st-hero) { padding-top: 0 !important; }
.sw-breadcrumb, .swd-breadcrumb, .swa-breadcrumb { padding-top: 1rem; }
@media (min-width: 992px) { main.sw-page, main.swd-page, main.swa-page { padding-top: 20px; } }

/* Suche: Hinweis zur Such-Syntax unter dem Formular */
.gs-hint { color: rgba(255, 255, 255, .9); font-size: .8rem; line-height: 1.6; margin: .6rem 0 0; }
.gs-hint code { background: rgba(255, 255, 255, .2); border-radius: 3px; color: #fff; font-size: .78rem; padding: .05rem .3rem; white-space: nowrap; }

/* Spieltag/Tabelle: Bemerkungen unter der Tabelle umbrechen statt das Layout zu verbreitern */
.st-table-note { background: var(--fan-sky); border-left: 4px solid var(--fan-accent); border-radius: var(--fan-radius); color: var(--fan-ink); font-size: .85rem; line-height: 1.5; margin: .9rem 0 0; max-width: 100%; min-width: 0; overflow-wrap: anywhere; padding: .75rem 1rem; word-break: normal; }
.st-table-note > strong { display: block; margin-bottom: .3rem; }
.st-table-note * { font-size: inherit !important; max-width: 100%; white-space: normal !important; }

/* Gegnerbilanz-Detail: Spieleliste responsiv (Paarung bricht um, nichts läuft ins Ergebnis) */
.opponent-matches .opponent-match { grid-template-columns: minmax(0, 300px) minmax(0, 1fr) auto 32px; }
.opponent-matches .opponent-match__teams { display: block; min-width: 0; }
.opponent-matches .opponent-match .opponent-match__teams a { white-space: normal; }
.opponent-matches .opponent-match__score { justify-self: end; text-align: right; }
.opponent-matches .opponent-match__report { grid-column: 4; }
@media (max-width: 991.98px) {
    .opponent-matches .opponent-match { gap: .35rem .75rem; grid-template-columns: minmax(0, 1fr) auto 32px; min-height: 0; padding: .7rem .85rem; }
    .opponent-matches .opponent-match__meta { border-bottom: 1px dashed var(--fan-line); grid-column: 1 / -1; padding-bottom: .4rem; }
    .opponent-matches .opponent-match__teams { grid-column: 1; }
    .opponent-matches .opponent-match__score { grid-column: 2; }
    .opponent-matches .opponent-match__report { grid-column: 3; }
}
@media (max-width: 575.98px) {
    .opponent-matches .opponent-match { gap: .3rem .55rem; grid-template-columns: minmax(0, 1fr) auto 28px; padding: .65rem .75rem; }
    .opponent-matches .opponent-match__teams { font-size: .92rem; }
    .opponent-matches .opponent-match__score { font-size: 1rem; }
    .opponent-matches .opponent-match .opponent-match__report { height: 28px; min-width: 28px; }
}

/* Breadcrumb in allen Templates vollständig: kein seitliches Wegscrollen auf dem Handy (Spiel-/Vorbericht) */
@media (max-width: 575.98px) { .sr-page .sr-breadcrumb, .vp-page .vp-breadcrumb { overflow-x: visible; white-space: normal; } }

/* =====================================================================
   Die CFC-Fanpage Fussballwoche (fussballwoche_neu.php) – Zeitungsstil
   ===================================================================== */
.fw-page { --fw-paper: #f4f0e6; --fw-ink: #161616; --fw-rule: #b9b2a3; --fw-head: "Oswald", "Arial Narrow", "Helvetica Neue", Arial, sans-serif; --fw-serif: Georgia, "Times New Roman", serif; }
.fw-controls { align-items: center; background: var(--fan-sky); border-radius: var(--fan-radius); display: flex; flex-wrap: wrap; gap: .5rem .75rem; margin: .5rem 0 1rem; padding: .75rem 1rem; }
.fw-controls label { color: var(--fan-ink); font-size: .85rem; font-weight: 700; }
.fw-controls input[type="date"] { border: 1px solid var(--fan-line); border-radius: var(--fan-radius); min-height: 34px; padding: .25rem .5rem; }
.fw-controls__nav { display: flex; flex-wrap: wrap; gap: .4rem; }
.fw-controls__pdf { margin-left: auto; }
button.fp-pill { cursor: pointer; font-family: inherit; }
.fp-pill { gap: .35rem; }
@media (max-width: 575.98px) { .fw-lead__intro { font-size: 1rem; } }

.fw-paper { background: var(--fw-paper); box-shadow: 0 2px 14px rgba(0, 0, 0, .18); color: var(--fw-ink); font-family: var(--fw-serif); margin: 0 auto 2rem; max-width: 1080px; padding: 1.5rem 1.75rem 1rem; }
#wrapper.fw-page .fw-paper a:not(.btn):not(.is-active), #wrapper.fw-page .fw-paper a:not(.btn):not(.is-active):visited { color: var(--fw-ink); text-decoration: none; }
.fw-paper a:hover, .fw-paper a:focus-visible { text-decoration: underline; }

/* Zeitungskopf */
.fw-masthead { align-items: end; border-bottom: 3px solid var(--fw-ink); display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr) auto; padding-bottom: .6rem; }
.fw-masthead__kicker { border-bottom: 2px solid var(--fw-ink); font: 700 1.55rem/1.1 var(--fw-head); letter-spacing: .04em; padding-bottom: .2rem; text-transform: uppercase; }
.fw-masthead__logo { background-color: var(--fw-ink); background-image: radial-gradient(circle, var(--fw-paper) 32%, transparent 34%); background-size: 6px 6px; -webkit-background-clip: text; background-clip: text; color: transparent; font: 700 7.5rem/0.95 var(--fw-head); letter-spacing: -.02em; margin-top: .2rem; -webkit-text-stroke: 3px var(--fw-ink); }
.fw-masthead__issue { border-left: 2px solid var(--fw-ink); padding-left: 1rem; text-align: right; }
.fw-masthead__number { font: 700 2.4rem/1 var(--fw-head); }
.fw-masthead__meta { font-family: var(--fw-head); font-size: .85rem; font-weight: 500; line-height: 1.45; margin-top: .4rem; }

/* Aufmacher */
.fw-lead { border-bottom: 2px solid var(--fw-ink); padding: 1rem 0 .8rem; }
.fw-lead__photo { margin: 0 0 .8rem; }
.fw-lead__photo img { display: block; filter: grayscale(1) contrast(1.08); max-height: 520px; object-fit: cover; width: 100%; }
.fw-lead__photo figcaption, .fw-season__photo figcaption { display: flex; font: 700 .78rem/1.35 var(--fw-head); gap: 1rem; justify-content: space-between; margin-top: .35rem; }
.fw-lead__photo figcaption span { font-weight: 500; white-space: nowrap; }
.fw-lead__kicker, .fw-item__kicker, .fw-game__meta { font: 500 .8rem/1.3 var(--fw-head); letter-spacing: .03em; text-transform: uppercase; }
.fw-lead__title { font: 700 2.4rem/1.05 var(--fw-head); margin: .2rem 0 .5rem; }
.fw-lead__intro { font-size: 1.1rem; font-weight: 700; line-height: 1.45; margin: 0 0 .7rem; }
.fw-lead__score { font: 700 1.3rem/1.2 var(--fw-head); margin: 0 0 .6rem; }

/* Fließtext in Spalten */
.fw-text { font-size: .88rem; -webkit-hyphens: auto; hyphens: auto; line-height: 1.5; overflow-wrap: break-word; text-align: justify; }
.fw-text * { font-size: inherit; }
.fw-text p { margin: 0 0 .6rem; }
.fw-columns { column-gap: 1.4rem; column-rule: 1px solid var(--fw-rule); }
.fw-columns--3 { column-count: 3; }
.fw-columns--2 { column-count: 2; }
.fw-byline, .fw-note { font: 500 .78rem/1.35 var(--fw-head); margin: .4rem 0 0; text-transform: uppercase; }
.fw-more { font: 700 .78rem var(--fw-head); text-transform: uppercase; white-space: nowrap; }

/* Teaser-Kästen wie unten auf der FUWO-Titelseite */
.fw-teasers { border: 2px solid var(--fw-ink); display: grid; grid-template-columns: repeat(var(--fw-teaser-cols, 4), minmax(0, 1fr)); margin: 1rem 0; }
.fw-teaser { border-left: 1px solid var(--fw-ink); display: flex; flex-direction: column; gap: .3rem; padding: .7rem .8rem; }
.fw-teaser:first-child { border-left: 0; }
.fw-teaser__kicker { font: 500 .72rem var(--fw-head); letter-spacing: .05em; text-transform: uppercase; }
.fw-teaser__title { font: 700 1.15rem/1.15 var(--fw-head); }
.fw-teaser__text { font-size: .85rem; hyphens: auto; line-height: 1.45; text-align: justify; }

/* Haupt- und Randspalte */
.fw-layout { display: grid; gap: 1.5rem; grid-template-columns: minmax(0, 1fr) 300px; }
.fw-section { border-top: 2px solid var(--fw-ink); margin-bottom: 1.2rem; padding-top: .5rem; }
.fw-section__title { background: var(--fw-ink); color: var(--fw-paper); display: inline-block; font: 700 1rem/1 var(--fw-head); letter-spacing: .06em; margin: 0 0 .8rem; padding: .35rem .6rem; text-transform: uppercase; }
.fw-game, .fw-item { border-bottom: 1px solid var(--fw-rule); break-inside: avoid; margin-bottom: .9rem; padding-bottom: .8rem; }
.fw-game__result { align-items: baseline; display: flex; font: 700 1.25rem/1.2 var(--fw-head); gap: 1rem; justify-content: space-between; margin: .15rem 0 .35rem; }
.fw-game__result strong { white-space: nowrap; }
.fw-game__headline, .fw-item__title, .fw-brief__title { font: 700 1.2rem/1.15 var(--fw-head); margin: .2rem 0 .4rem; }
.fw-item__title--big { font-size: 1.6rem; }
.fw-item__photo { float: right; margin: .2rem 0 .6rem 1rem; max-width: 45%; }
.fw-item__photo img { display: block; filter: grayscale(1) contrast(1.08); width: 100%; }
.fw-item--top::after { clear: both; content: ""; display: block; }
.fw-item--comment .fw-text { font-style: italic; }
.fw-brief { break-inside: avoid; border-bottom: 1px dotted var(--fw-rule); margin-bottom: .7rem; padding-bottom: .6rem; }

/* Kästen in der Randspalte */
.fw-box { border: 2px solid var(--fw-ink); margin-bottom: 1.2rem; padding: 0 .8rem .8rem; }
.fw-box__title { background: var(--fw-ink); color: var(--fw-paper); font: 700 1rem/1.2 var(--fw-head); letter-spacing: .05em; margin: 0 -.8rem .7rem; padding: .4rem .8rem; text-transform: uppercase; }
.fw-box__subtitle { border-bottom: 1px solid var(--fw-ink); font: 700 .85rem var(--fw-head); margin: .9rem 0 .4rem; padding-bottom: .2rem; text-transform: uppercase; }
.fw-box__more { font: 700 .78rem var(--fw-head); margin: .7rem 0 0; text-transform: uppercase; }
.fw-season__photo { margin: 0 0 .6rem; }
.fw-season__photo img { display: block; filter: grayscale(1) contrast(1.05); width: 100%; }
.fw-season__photo figcaption { display: block; font-weight: 500; }
.fw-season__place { font: 500 1rem var(--fw-head); }
.fw-season__place strong { font-size: 2.6rem; line-height: 1; }
.fw-season__place span { display: block; font-size: .78rem; text-transform: uppercase; }
.fw-season__table { border-collapse: collapse; font-family: var(--fw-head); font-size: .85rem; margin-top: .5rem; width: 100%; }
.fw-season__table th, .fw-season__table td { border-top: 1px solid var(--fw-rule); padding: .25rem 0; }
.fw-season__table th { font-weight: 500; text-align: left; }
.fw-season__table td { font-weight: 700; text-align: right; }
.fw-season__list, .fw-list { font-size: .85rem; line-height: 1.4; list-style: none; margin: 0; padding: 0; }
.fw-season__list li, .fw-list li { border-bottom: 1px dotted var(--fw-rule); padding: .35rem 0; }
.fw-season__list small, .fw-list small, .fw-forum small { display: block; font-family: var(--fw-head); font-size: .72rem; }
.fw-season__tag { display: block; font: 700 .68rem var(--fw-head); letter-spacing: .05em; text-transform: uppercase; }
.fw-season__next { font-family: var(--fw-head); font-size: .9rem; margin: 0; }
.fw-forum { border-bottom: 1px dotted var(--fw-rule); padding: .4rem 0; }
.fw-forum h3 { font: 700 .95rem/1.2 var(--fw-head); margin: 0 0 .2rem; }
.fw-forum .fw-text { font-size: .82rem; margin: 0 0 .2rem; }
.fw-empty { border-bottom: 2px solid var(--fw-ink); padding: 1.5rem 0; text-align: center; }
.fw-empty h2 { font: 700 1.8rem var(--fw-head); }
.fw-imprint { border-top: 3px solid var(--fw-ink); font: 500 .75rem var(--fw-head); margin-top: 1rem; padding-top: .4rem; text-align: center; text-transform: uppercase; }

@media (max-width: 991.98px) {
    .fw-layout { grid-template-columns: 1fr; }
    .fw-columns--3 { column-count: 2; }
    .fw-teasers { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .fw-teaser:nth-child(3) { border-left: 0; }
    .fw-teaser:nth-child(n+3) { border-top: 1px solid var(--fw-ink); }
}
@media (max-width: 575.98px) {
    .fw-paper { padding: 1rem .9rem .8rem; }
    .fw-masthead { grid-template-columns: 1fr; }
    .fw-masthead__kicker { font-size: 1.05rem; }
    .fw-masthead__logo { font-size: 4.6rem; -webkit-text-stroke: 2px var(--fw-ink); }
    .fw-masthead__issue { border-left: 0; border-top: 1px solid var(--fw-ink); display: flex; gap: 1rem; justify-content: space-between; padding: .4rem 0 0; text-align: left; }
    .fw-masthead__number { font-size: 1.9rem; }
    .fw-lead__title { font-size: 1.7rem; }
    .fw-columns--3, .fw-columns--2 { column-count: 1; }
    .fw-teasers { grid-template-columns: 1fr; }
    .fw-teaser { border-left: 0; border-top: 1px solid var(--fw-ink); }
    .fw-teaser:first-child { border-top: 0; }
    .fw-item__photo { float: none; margin: 0 0 .6rem; max-width: 100%; }
    .fw-controls__pdf { margin-left: 0; }
}

/* Druckansicht / PDF: DIN A4, nur die Zeitung */
@media print {
    @page { margin: 11mm 11mm 13mm; size: A4 portrait; }
    body.fw-body { background: #fff !important; padding: 0 !important; }
    body.fw-body > *:not(main), .fw-noprint, .a2a_kit, .cookie-notice, #klaro { display: none !important; }
    .fw-page { margin: 0 !important; max-width: none !important; padding: 0 !important; width: auto !important; }
    .fw-paper { box-shadow: none; font-size: 9.5pt; margin: 0; max-width: none; padding: 0; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .fw-masthead__logo { font-size: 6rem; }
    .fw-layout { grid-template-columns: minmax(0, 1fr) 62mm; }
    .fw-columns--3 { column-count: 3; }
    .fw-columns--2 { column-count: 2; }
    .fw-teasers { grid-template-columns: repeat(var(--fw-teaser-cols, 4), minmax(0, 1fr)); }
    .fw-teaser { border-top: 0 !important; }
    .fw-teaser:nth-child(n+2) { border-left: 1px solid var(--fw-ink) !important; }
    .fw-lead__photo img { max-height: 105mm; }
    .fw-game, .fw-item, .fw-brief, .fw-box, .fw-forum, figure { break-inside: avoid; }
    .fw-section__title, .fw-box__title, h2, h3 { break-after: avoid; }
    .fw-paper a { text-decoration: none; }
}

/* Fussballwoche: Geburtstage ("Wir gratulieren") */
.fw-birthday { align-items: flex-start; border-bottom: 1px dotted var(--fw-rule); display: flex; gap: .6rem; padding: .45rem 0; }
.fw-birthday:last-child { border-bottom: 0; }
.fw-birthday img { border: 1px solid var(--fw-ink); filter: grayscale(1) contrast(1.05); flex: 0 0 48px; height: 60px; object-fit: cover; width: 48px; }
.fw-birthday h3 { font: 700 1rem/1.15 var(--fw-head); margin: 0 0 .15rem; }
.fw-birthday p { font-size: .82rem; line-height: 1.35; margin: 0; }
.fw-birthday small { display: block; font-family: var(--fw-head); font-size: .72rem; margin-top: .15rem; }
.fw-birthday__trait { display: block; font: 700 .66rem var(--fw-head); letter-spacing: .05em; text-transform: uppercase; }

/* Fussballwoche: Fanpage-Logo im Zeitungskopf */
.fw-masthead { grid-template-columns: minmax(0, 1fr) auto auto; }
.fw-masthead__crest { align-self: center; display: block; line-height: 0; }
.fw-masthead__crest img { display: block; filter: grayscale(1) contrast(1.15); height: 150px; width: auto; }
@media (max-width: 575.98px) {
    .fw-masthead { grid-template-columns: minmax(0, 1fr) auto; }
    .fw-masthead__brand { grid-column: 1; grid-row: 1; }
    .fw-masthead__crest { grid-column: 2; grid-row: 1; }
    .fw-masthead__crest img { height: 92px; }
    .fw-masthead__issue { grid-column: 1 / -1; grid-row: 2; }
}
@media print {
    .fw-masthead { grid-template-columns: minmax(0, 1fr) auto auto; }
    .fw-masthead__crest img { height: 120px; }
}

/* Fussballwoche: Pressestimmen als Bericht (ältere Spiele) */
.fw-press { margin-bottom: .6rem; }
.fw-press__source { font: 700 .78rem var(--fw-head); letter-spacing: .03em; margin: .1rem 0 .7rem; text-align: right; text-transform: uppercase; }

/* Fussballwoche: kompakte Spielstatistik (Aufstellungen, Tore, Schiedsrichter, Zuschauer, Spielort) */
.fw-stats { border-top: 1px solid var(--fw-ink); font-size: .78rem; hyphens: auto; line-height: 1.45; margin: .6rem 0 0; padding-top: .4rem; text-align: justify; }
.fw-stats strong { font-family: var(--fw-head); font-weight: 700; }

/* Fussballwoche: Vorschaubilder der Anrisse */
.fw-brief__thumb { aspect-ratio: 4 / 3; float: right; filter: grayscale(1) contrast(1.08); margin: .25rem 0 .3rem .7rem; object-fit: cover; width: 34%; }
.fw-brief::after { clear: both; content: ""; display: block; }
.fw-more { font: 700 .78rem var(--fw-head); text-transform: uppercase; white-space: nowrap; }
.fw-more::after { content: " \203A"; }

@media print {
    .fw-more { display: none; }
}

/* Fussballwoche: Startbild, Fundstücke und Forumhits */
.fw-startbild .fw-lead__photo img { max-height: 420px; object-fit: contain; }
.fw-find .fw-brief__thumb { width: 28%; }

/* Fussballwoche: Bilder in allen Rubriken (Teaser, Spiele, Vorschau, Kommentar, Specials, Forum) */
.fw-game::after, .fw-item::after { clear: both; content: ""; display: block; }
.fw-teaser__img { aspect-ratio: 16 / 9; display: block; max-height: 8rem; filter: grayscale(1) contrast(1.08); margin-bottom: .2rem; object-fit: cover; width: 100%; }
.fw-forum__img { display: block; filter: grayscale(1) contrast(1.08); margin-bottom: .35rem; max-height: 150px; object-fit: cover; width: 100%; }
.fw-preview__teams { align-items: center; justify-content: flex-start; gap: .5rem; }
.fw-crest { filter: grayscale(1); height: 1.9rem; object-fit: contain; width: auto; }

/* Fussballwoche: Kasten "Aus der Stadt" */
.fw-city__title { font: 700 1.05rem/1.2 var(--fw-head); margin: .15rem 0 .3rem; }
.fw-city__source { display: block; font: 600 .7rem var(--fw-head); letter-spacing: .03em; text-transform: uppercase; }
.fw-city__more { border-top: 1px dotted var(--fw-rule); margin-top: .5rem; padding-top: .35rem; }

/* Fussballwoche: Fotos im Fließtext des Aufmachers */
.fw-inline-photo { break-inside: avoid; display: block; margin: .5rem 0 .8rem; }
.fw-inline-photo img { display: block; filter: grayscale(1) contrast(1.08); height: auto; max-height: 15rem; object-fit: cover; width: 100%; }
.fw-inline-photo figcaption { font: 700 .72rem/1.3 var(--fw-head); margin-top: .3rem; text-align: left; }

/* =============================================================================
   Fussballwoche als Zeitung (fussballwoche_zeitung_neu.php): A4-Blätter
   ============================================================================= */
.fz-toc { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 1rem; }
.fz-toc a { border: 1px solid var(--fan-line, #d5dbe3); border-radius: 999px; color: var(--fan-ink, #1f2a37); font-size: .8rem; padding: .2rem .65rem .2rem .25rem; text-decoration: none; }
.fz-toc a span { background: var(--fw-ink); border-radius: 999px; color: #fff; display: inline-block; font-weight: 700; margin-right: .35rem; min-width: 1.4rem; text-align: center; }
.fz-toc a:hover { border-color: var(--fw-ink); }
.fz-paper { background: #d8d4cb; border-radius: 6px; display: flex; flex-direction: column; gap: 1.6rem; margin-bottom: 2rem; padding: 1.6rem 1rem; }
.fz-sheet { page: fz; }
.fz-sheet.fw-paper { display: flex; flex-direction: column; font-size: 1rem; margin: 0 auto; max-width: 100%; min-height: 297mm; padding: 11mm 12mm 7mm; scroll-margin-top: 1rem; width: 210mm; }
.fz-sheet::after { clear: both; content: ""; display: block; }
.fz-body { flex: 0 0 auto; }
/* Nach dem Umbruch (Skript) ist jedes Blatt genau eine A4-Seite */
.fz-paginated .fz-sheet.fw-paper { height: 297mm; min-height: 0; overflow: hidden; }
.fz-paginated .fz-sheet.fz-sheet--overfull { height: auto; min-height: 297mm; }
/* Abgeschlossene Blätter abkapseln: Änderungen in einem Blatt lösen keine Neuberechnung der übrigen aus (schneller Umbruch) */
.fz-paginated .fz-sheet:not(.fz-sheet--overfull) { contain: size layout paint; }

/* Kopf- und Fußzeile jeder Seite */
.fz-head { align-items: baseline; border-bottom: 2px solid var(--fw-ink); display: flex; font: 500 .7rem/1.2 var(--fw-head); gap: 1rem; justify-content: space-between; letter-spacing: .04em; margin-bottom: 4mm; padding-bottom: 1.5mm; text-transform: uppercase; }
.fz-head strong { font-size: 1.05rem; letter-spacing: .06em; }
.fz-foot { border-top: 1px solid var(--fw-ink); font: 700 .8rem var(--fw-head); margin-top: auto; padding-top: 2mm; text-align: center; }
.fz-foot span::before, .fz-foot span::after { content: " – "; }

/* Seitenverweis */
.fz-ref { background: var(--fw-ink); color: var(--fw-paper); display: inline-block; font: 700 .64rem/1.4 var(--fw-head); letter-spacing: .04em; padding: 0 .35rem; text-transform: uppercase; white-space: nowrap; }

/* Satzgrößen wie gedruckt (etwa 9,5 pt Fließtext) */
.fz-sheet .fw-text { font-size: .8rem; line-height: 1.42; }
.fz-sheet .fw-lead__title { font-size: 2rem; }
.fz-sheet .fw-stats { font-size: .72rem; }
.fz-lead .fw-lead__photo img { max-height: 95mm; }

/* Titelseite */
.fz-index { border-bottom: 1px solid var(--fw-ink); display: flex; flex-wrap: wrap; font: 500 .72rem var(--fw-head); gap: .2rem 1.1rem; letter-spacing: .03em; padding: .35rem 0; text-transform: uppercase; }
.fz-index b { background: var(--fw-ink); color: var(--fw-paper); margin-left: .2rem; padding: 0 .3rem; }
.fz-cover-lead { border-bottom: 2px solid var(--fw-ink); display: grid; gap: .3rem 1.1rem; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); padding: .8rem 0; }
.fz-cover-lead > :not(.fz-cover-lead__photo) { grid-column: 2; }
.fz-cover-lead__photo { grid-column: 1; grid-row: 1 / span 5; margin: 0; }
.fz-cover-lead__photo img { aspect-ratio: 4 / 3; display: block; filter: grayscale(1) contrast(1.08); max-height: 72mm; object-fit: cover; width: 100%; }
.fz-cover-lead__photo figcaption { font: 700 .7rem/1.3 var(--fw-head); margin-top: .25rem; }
.fz-cover-lead__title { font: 700 1.8rem/1.04 var(--fw-head); margin: .1rem 0 .3rem; }
.fz-cover-lead__text { font-size: .9rem; hyphens: auto; line-height: 1.5; margin: 0; text-align: justify; }
/* Aufmacher ohne Foto (fehlt oder lädt nicht): volle Breite, Text zweispaltig */
.fz-cover-lead:not(:has(.fz-cover-lead__photo)) { grid-template-columns: minmax(0, 1fr); }
.fz-cover-lead:not(:has(.fz-cover-lead__photo)) > * { grid-column: 1; }
.fz-cover-lead:not(:has(.fz-cover-lead__photo)) .fz-cover-lead__title { font-size: 2.4rem; }
.fz-cover-lead:not(:has(.fz-cover-lead__photo)) .fz-cover-lead__text { column-count: 2; column-gap: 1.2rem; column-rule: 1px solid var(--fw-rule); }
.fz-cover-grid { display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr) minmax(0, 1fr); margin-top: .8rem; }
.fz-cover-col + .fz-cover-col { border-left: 1px solid var(--fw-rule); padding-left: 1rem; }
.fz-cover-box { border-top: 2px solid var(--fw-ink); margin-bottom: .9rem; padding-top: .3rem; }
.fz-cover-box__title { font: 700 .9rem/1.2 var(--fw-head); letter-spacing: .04em; margin: 0 0 .35rem; text-transform: uppercase; }
.fz-cover-box__more { font: 500 .72rem var(--fw-head); margin: .35rem 0 0; text-align: right; text-transform: uppercase; }
.fz-cover-box small { display: block; font: 500 .72rem var(--fw-head); margin-bottom: .2rem; }
.fz-cover-news h4 { font: 700 1rem/1.15 var(--fw-head); margin: .35rem 0 .15rem; }
.fz-cover-news p { font-size: .8rem; hyphens: auto; line-height: 1.4; margin: 0 0 .45rem; }
.fz-result { align-items: baseline; border-bottom: 1px dotted var(--fw-rule); display: flex; font: 500 .82rem/1.3 var(--fw-head); gap: .6rem; justify-content: space-between; margin: 0; padding: .16rem 0; }
.fz-result.is-cfc { font-weight: 700; }
.fz-result strong { white-space: nowrap; }
.fz-mini-table { border-collapse: collapse; font: 500 .8rem var(--fw-head); width: 100%; }
.fz-mini-table td { border-bottom: 1px dotted var(--fw-rule); padding: .12rem .15rem; }
.fz-mini-table td:last-child { text-align: right; }
.fz-mini-table .is-cfc td { font-weight: 700; }
.fz-vote-mini { align-items: center; display: flex; font-family: var(--fw-head); gap: .6rem; }
.fz-vote-mini__img { border: 1px solid var(--fw-ink); filter: grayscale(1); height: 68px; object-fit: cover; width: 54px; }

/* Innenseiten: Artikel */
.fz-article { border-bottom: 1px solid var(--fw-rule); margin-bottom: 1rem; padding-bottom: .8rem; }
.fz-article:last-child { border-bottom: 0; }
.fz-article__title { font: 700 1.45rem/1.1 var(--fw-head); margin: .15rem 0 .35rem; }
.fz-article__title--small { font-size: 1.1rem; }
.fz-article__intro { font-size: .9rem; font-weight: 700; line-height: 1.45; margin: 0 0 .5rem; }
.fz-article__photo { float: right; margin: .2rem 0 .5rem 1rem; width: 44%; }
.fz-news { column-count: 3; column-gap: 1.2rem; column-rule: 1px solid var(--fw-rule); }
.fz-news .fz-article { break-inside: auto; }
.fz-news .fz-article__title { break-after: avoid; font-size: 1.15rem; }
.fz-news .fz-article__photo { float: none; margin: 0 0 .4rem; width: 100%; }
.fz-split { display: grid; gap: 1.2rem; grid-template-columns: minmax(0, 1fr) 62mm; }
.fz-split--stats { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); }
/* Vermischtes ohne Hauptbeiträge: Kästen über die ganze Breite */
.fz-split--boxes { grid-template-columns: minmax(0, 1fr); }
.fz-split--boxes > div:first-child { display: none; }
.fz-split--boxes > aside { align-items: start; display: grid; gap: 0 1.2rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fz-imprint p { font-size: .78rem; line-height: 1.4; }

/* Statistikseite */
.fz-stat-facts { border: 2px solid var(--fw-ink); display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); margin-bottom: 1rem; }
.fz-stat-facts div { padding: .45rem .3rem; text-align: center; }
.fz-stat-facts div + div { border-left: 1px solid var(--fw-ink); }
.fz-stat-facts strong { display: block; font: 700 1.55rem/1.1 var(--fw-head); }
.fz-stat-facts span { display: block; font: 500 .64rem/1.2 var(--fw-head); letter-spacing: .03em; text-transform: uppercase; }
.fz-stat { margin-bottom: 1rem; }
.fz-stat__line { font-size: .84rem; margin: .2rem 0; }
.fz-table { border-collapse: collapse; font: 500 .76rem var(--fw-head); width: 100%; }
.fz-table th { border-bottom: 2px solid var(--fw-ink); font-weight: 700; padding: .2rem; text-align: center; }
.fz-table td { border-bottom: 1px solid var(--fw-rule); padding: .17rem .2rem; text-align: center; }
.fz-table .fz-table__team { text-align: left; }
.fz-table .is-cfc td { background: rgba(22, 22, 22, .1); font-weight: 700; }
.fz-move { font-size: .6rem; }
.fz-form { display: flex; gap: .3rem; margin: .3rem 0 .5rem; }
.fz-form__item { border: 1.5px solid var(--fw-ink); display: grid; font: 700 .8rem var(--fw-head); height: 1.6rem; place-items: center; width: 1.6rem; }
.fz-form__item--S { background: var(--fw-ink); color: var(--fw-paper); }
.fz-form__item--U { background: #8d877b; color: #fff; }
.fz-scorers { counter-reset: fz; list-style: none; margin: 0; padding: 0; }
.fz-scorers li { border-bottom: 1px dotted var(--fw-rule); counter-increment: fz; display: flex; font: 500 .85rem var(--fw-head); gap: .5rem; padding: .18rem 0; }
.fz-scorers li::before { content: counter(fz) "."; min-width: 1.4rem; }
.fz-scorers li span { flex: 1; }

/* Mannschaftsseite und Spielerwahl */
.fz-team__intro { font: 500 .8rem var(--fw-head); margin: 0 0 .6rem; text-transform: uppercase; }
.fz-team__photo img { height: auto; max-height: none; object-fit: contain; }
.fz-squad { display: grid; gap: .2rem 1rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.fz-squad__group .fw-box__subtitle { margin-top: .4rem; }
.fz-player { align-items: baseline; border-bottom: 1px dotted var(--fw-rule); display: grid; font: 500 .78rem/1.3 var(--fw-head); gap: .35rem; grid-template-columns: minmax(0, 1fr) auto; padding: .12rem 0; }
.fz-player__meta { font-size: .7rem; white-space: nowrap; }
.fz-flag { height: .6rem; margin-left: .25rem; vertical-align: baseline; width: auto; }

/* Spielerwahl: Einleitung, vier gleich große Porträts mit Texten, Rangliste */
.fz-vote__title { font-size: 1.9rem; }
.fz-vote__intro { margin-bottom: 1rem; }
.fz-vote-grid { border-top: 2px solid var(--fw-ink); display: grid; grid-template-columns: repeat(var(--fz-vote-cols, 4), minmax(0, 1fr)); margin: 0 -.6rem 1rem; padding-top: .6rem; }
.fz-vote-card { border-left: 1px solid var(--fw-rule); padding: 0 .6rem; }
.fz-vote-card:first-child { border-left-color: transparent; }
.fz-vote-card__img { aspect-ratio: 3 / 4; border: 1px solid var(--fw-ink); display: block; filter: grayscale(1) contrast(1.05); margin-bottom: .45rem; object-fit: cover; object-position: top; width: 36mm; max-width: 100%; }
.fz-vote-card__rank { background: var(--fw-ink); color: var(--fw-paper); display: inline-block; font: 700 .7rem/1.5 var(--fw-head); letter-spacing: .05em; padding: 0 .4rem; text-transform: uppercase; }
.fz-vote-card--flop .fz-vote-card__rank { background: #8d877b; }
/* Enttäuschung: eigene Zeile über die ganze Breite, Foto links, Text zweispaltig */
.fz-vote-card--flop { border-left-color: transparent; border-top: 1px solid var(--fw-ink); column-gap: 1rem; display: grid; grid-column: 1 / -1; grid-template-columns: 36mm minmax(0, 1fr); grid-template-rows: auto auto auto 1fr; margin-top: .9rem; padding-top: .8rem; }
.fz-vote-card--flop > :not(.fz-vote-card__img) { grid-column: 2; justify-self: start; }
.fz-vote-card--flop .fz-vote-card__img { grid-column: 1; grid-row: 1 / span 4; }
.fz-vote-card--flop .fw-text { column-count: 2; column-gap: 1.2rem; column-rule: 1px solid var(--fw-rule); justify-self: stretch; }
.fz-vote-card__name { font: 700 1.15rem/1.15 var(--fw-head); margin: .25rem 0 .1rem; }
.fz-vote-card__points { font: 500 .75rem var(--fw-head); margin: 0 0 .35rem; text-transform: uppercase; }
.fz-vote__ranking .fz-table { font-size: .74rem; }

/* Tablet und Handy: Blätter werden fließend (kein Umbruch) */
@media screen and (max-width: 991.98px) {
    .fz-paper { padding: 1rem .5rem; }
    .fz-sheet.fw-paper { min-height: 0; padding: 1.2rem 1rem .8rem; width: 100%; }
    .fz-squad { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .fz-news { column-count: 2; }
}
@media screen and (max-width: 767.98px) {
    .fz-cover-lead, .fz-cover-grid, .fz-split, .fz-split--stats { grid-template-columns: minmax(0, 1fr); }
    .fz-vote-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .fz-cover-lead > :not(.fz-cover-lead__photo), .fz-cover-lead__photo { grid-column: 1; grid-row: auto; }
    .fz-cover-col + .fz-cover-col { border-left: 0; padding-left: 0; }
    .fz-split--boxes > aside { grid-template-columns: minmax(0, 1fr); }
    .fz-stat-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .fz-stat-facts div:nth-child(4) { border-left: 0; }
    .fz-stat-facts div:nth-child(n+4) { border-top: 1px solid var(--fw-ink); }
    .fz-news { column-count: 1; }
    .fz-article__photo { float: none; margin: 0 0 .5rem; width: 100%; }
    .fz-head { flex-wrap: wrap; }
    .fz-table { font-size: .7rem; }
}
@media screen and (max-width: 575.98px) {
    .fz-squad, .fz-vote-grid { grid-template-columns: minmax(0, 1fr); }
    .fz-vote-card { border-left: 0; }
    .fz-vote-card--flop { grid-template-columns: minmax(0, 1fr); }
    .fz-vote-card--flop > *, .fz-vote-card--flop .fz-vote-card__img { grid-column: 1; grid-row: auto; }
    .fz-vote-card--flop .fw-text { column-count: 1; }
    .fz-cover-lead__title { font-size: 1.6rem; }
}

/* Druck / PDF: ein Blatt je A4-Seite, gleiches Layout wie am Bildschirm */
@page fz { margin: 0; size: A4 portrait; }
@media print {
    .fz-paper { background: none; border-radius: 0; display: block; margin: 0; padding: 0; }
    .fz-sheet.fw-paper { break-after: page; box-shadow: none; margin: 0; width: 210mm; }
    .fz-sheet.fw-paper:last-child { break-after: auto; }
    .fz-sheet .fw-masthead__logo { font-size: 7.5rem; }
    .fz-sheet .fw-masthead__crest img { height: 150px; }
    .fz-sheet .fw-game, .fz-sheet .fw-item, .fz-sheet .fw-brief, .fz-sheet .fw-box, .fz-sheet .fw-forum { break-inside: auto; }
}

/* Saisonchronik / Zeitung: Fortschritt des Seitenumbruchs */
.fz-status { align-self: center; color: var(--fan-ink, #1f2a37); font-size: .8rem; font-style: italic; margin-left: auto; }

/* =============================================================================
   Saisonchronik (saisonchronik_neu.php): baut auf den A4-Blättern der Zeitung auf
   ============================================================================= */
.sc-select { border: 1px solid var(--fan-line, #d5dbe3); border-radius: 6px; font-weight: 600; padding: .3rem .5rem; }
.sc-cover { border-bottom: 3px solid var(--fw-ink); padding: 6mm 0 4mm; text-align: center; }
.sc-cover__kicker { font: 700 1.1rem var(--fw-head); letter-spacing: .3em; text-transform: uppercase; }
.sc-cover__title { background-color: var(--fw-ink); background-image: radial-gradient(circle, var(--fw-paper) 32%, transparent 34%); background-size: 6px 6px; -webkit-background-clip: text; background-clip: text; color: transparent; font: 700 6.2rem/1 var(--fw-head); margin: .2rem 0; -webkit-text-stroke: 3px var(--fw-ink); }
.sc-cover__season { font: 700 3rem/1 var(--fw-head); }
.sc-cover__sub { font: 500 .85rem var(--fw-head); letter-spacing: .05em; margin-top: .5rem; text-transform: uppercase; }
.sc-cover__photo { margin: 5mm 0 4mm; }
.sc-cover__photo img { height: auto; max-height: 92mm; object-fit: contain; }
.sc-facts { margin-bottom: 5mm; }
.sc-cover__grid { display: grid; gap: 1.2rem; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.sc-toc { columns: 2; column-gap: 1rem; list-style: none; margin: 0; padding: 0; }
.sc-toc li { border-bottom: 1px dotted var(--fw-rule); break-inside: avoid; display: flex; font: 500 .78rem/1.3 var(--fw-head); justify-content: space-between; padding: .12rem 0; }
.sc-toc b { margin-left: .4rem; }

/* Überblick: Ergebnisliste und Platzierungsverlauf */
.sc-result { align-items: baseline; border-bottom: 1px dotted var(--fw-rule); display: grid; font: 500 .76rem/1.25 var(--fw-head); gap: .4rem; grid-template-columns: 2.6rem minmax(0, 1fr) auto 1.1rem; margin: 0; padding: .1rem 0; }
.sc-result__match small { display: block; font-size: .64rem; text-transform: uppercase; }
.sc-outcome { font-size: .62rem; height: 1rem; width: 1rem; }
.sc-chart { display: block; height: auto; width: 100%; }
.sc-chart__grid { stroke: var(--fw-rule); stroke-dasharray: 3 3; stroke-width: 1; }
.sc-chart__label { fill: var(--fw-ink); font: 500 10px var(--fw-head); }
.sc-chart__line { fill: none; stroke: var(--fw-ink); stroke-linejoin: round; stroke-width: 2; }
.sc-chart__dot { fill: var(--fw-paper); stroke: var(--fw-ink); stroke-width: 1.5; }
.sc-squad .fz-player__meta { font-weight: 700; }
.sc-transfers .fz-stat { margin-bottom: 1.2rem; }

/* Monatskapitel */
.sc-month { border-bottom: 3px double var(--fw-ink); margin-bottom: 4mm; padding-bottom: 2mm; }
.sc-month__title { font: 700 2.6rem/1 var(--fw-head); margin: 0 0 .4rem; }
.sc-month__results { display: flex; flex-wrap: wrap; gap: .3rem; }
.sc-chip { border: 1px solid var(--fw-ink); font: 500 .72rem/1.4 var(--fw-head); padding: 0 .35rem; }
.sc-game__photo img { max-height: 85mm; }
.sc-topnews { border-top: 2px solid var(--fw-ink); padding-top: .4rem; }
.sc-short__list { column-count: 3; column-gap: 1.2rem; column-rule: 1px solid var(--fw-rule); }
.sc-short__item { border-bottom: 1px dotted var(--fw-rule); break-inside: avoid; margin-bottom: .5rem; padding-bottom: .4rem; }
.sc-short__item::after { clear: both; content: ""; display: block; }
.sc-short__meta { font: 500 .66rem var(--fw-head); letter-spacing: .03em; text-transform: uppercase; }
.sc-short__title { font: 700 .95rem/1.15 var(--fw-head); margin: .1rem 0 .2rem; }
.sc-short__item .fw-text { margin: 0; }
.sc-short__item .fw-brief__thumb { width: 38%; }
.sc-press__list { columns: 2; column-gap: 1.2rem; }
.sc-press__list li { break-inside: avoid; font-size: .76rem; }

@media screen and (max-width: 767.98px) {
    .sc-cover__title { font-size: 3.6rem; -webkit-text-stroke: 2px var(--fw-ink); }
    .sc-cover__season { font-size: 2rem; }
    .sc-cover__grid { grid-template-columns: minmax(0, 1fr); }
    .sc-short__list, .sc-press__list { column-count: 1; columns: 1; }
}
.sc-results--wide { column-count: 2; column-gap: 1.4rem; column-rule: 1px solid var(--fw-rule); }
.sc-results--wide .sc-result { break-inside: avoid; }
.sc-crowds { display: grid; gap: 0 1.2rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sc-crowds > .fw-section__title { grid-column: 1 / -1; justify-self: start; }
.sc-chart__label { font-size: 15px; }
@media screen and (max-width: 767.98px) {
    .sc-results--wide { column-count: 1; }
    .sc-crowds { grid-template-columns: minmax(0, 1fr); }
}
/* Saisonchronik: Topnews-Bild über die volle Breite, Spiele nach Wettbewerben */
.sc-topnews__photo { margin: .3rem 0 .6rem; }
.sc-topnews__photo img { max-height: 95mm; object-fit: cover; }
.sc-comp { margin-bottom: .6rem; }
.sc-comp__title small { font-family: var(--fw-head); font-size: .72rem; font-weight: 500; margin-left: .4rem; text-transform: none; }
.sc-full__startbild img { height: auto; max-height: 150mm; object-fit: contain; }

/* Sprungleiste in Vor- und Spielbericht: Links zentriert; passen sie nicht in eine Zeile, bleibt die Leiste wischbar
   (Auto-Ränder statt justify-content: center, damit links nichts abgeschnitten wird). Der Abstand zum Seitenkopf
   beim Springen kommt aus js/fp_jumpnav.js (--fp-jump-offset). */
.sr-jumpnav a:first-child, .vp-jumpnav a:first-child { margin-left: auto; }
.sr-jumpnav a:last-child, .vp-jumpnav a:last-child { margin-right: auto; }
/* Sprungleiste kompakter, Links durch einen Punkt getrennt */
.sr-jumpnav, .vp-jumpnav { align-items: center; gap: 0; }
.sr-jumpnav a, .vp-jumpnav a { border-radius: 4px; font-size: .95rem; font-weight: 400; letter-spacing: 0; padding: .25rem .55rem; position: relative; text-transform: none; transition: background-color .15s, color .15s; }
/* Trenner außerhalb des Links, damit die Hover-Fläche nur das Wort umfasst */
.sr-jumpnav a + a, .vp-jumpnav a + a { margin-left: .9rem; }
.sr-jumpnav a + a::before, .vp-jumpnav a + a::before { color: var(--fan-muted, #8a97a8); content: "·"; font-size: 1.1rem; font-weight: 700; left: -.6rem; line-height: 1; pointer-events: none; position: absolute; top: 50%; transform: translate(-50%, -50%); }
.sr-page .sr-jumpnav a:hover, .sr-page .sr-jumpnav a:focus-visible, .vp-page .vp-jumpnav a:hover, .vp-page .vp-jumpnav a:focus-visible { background: var(--fan-sky); color: var(--fan-accent-dark, #084c86); text-decoration: underline; text-underline-offset: 3px; }

/* Hero Vor-/Spielbericht: Datum nicht fett, Datum und Spielort in der Farbe der Spieltagszeile */
.vp-page .vp-hero__facts, .sr-page .sr-hero__facts { color: rgba(255, 255, 255, .9); }
.vp-page .vp-hero__facts > strong, .sr-page .sr-hero__facts > strong { color: inherit; font-weight: 400; }
.vp-page .vp-hero__facts > span, .sr-page .sr-hero__facts > span { color: inherit; }
.vp-page [id], .sr-page [id] { scroll-margin-top: var(--fp-jump-offset, 16px); }

/* Statistik: Sprungleiste im Layout von Vor- und Spielbericht (Linien oben/unten, zentriert, Punkt als Trenner,
   normale Schrift, Hover mit leicht abgerundeter Fläche). Viele Abschnitte: auf breiten Schirmen mehrzeilig,
   auf dem Handy wischbar in einer Zeile. */
.stx-page .stx-jumpnav { align-items: center; background: none; border: 0; border-bottom: 1px solid var(--fan-line); border-radius: 0; border-top: 1px solid var(--fan-line); gap: .15rem 0; justify-content: center; margin: 1.25rem 0 1.5rem; padding: .5rem 0; }
.stx-page .stx-jumpnav a { align-items: center; border-radius: 4px; color: var(--fan-accent-dark, #084c86); display: inline-flex; font-size: .95rem; font-weight: 400; min-height: 36px; padding: .25rem .55rem; position: relative; text-decoration: none; transition: background-color .15s, color .15s; white-space: nowrap; }
.stx-page .stx-jumpnav a + a { margin-left: .9rem; }
.stx-page .stx-jumpnav a + a::before { color: var(--fan-muted, #8a97a8); content: "·"; font-size: 1.1rem; font-weight: 700; left: -.6rem; line-height: 1; pointer-events: none; position: absolute; top: 50%; transform: translate(-50%, -50%); }
.stx-page .stx-jumpnav a:hover, .stx-page .stx-jumpnav a:focus-visible { background: var(--fan-sky); color: var(--fan-accent-dark, #084c86); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 767.98px) {
    .stx-page .stx-jumpnav { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; scrollbar-width: thin; }
    .stx-page .stx-jumpnav a:first-child { margin-left: auto; }
    .stx-page .stx-jumpnav a:last-child { margin-right: auto; }
}
.stx-page [id] { scroll-margin-top: var(--fp-jump-offset, 16px); }
.vp-jumpnav a.is-line-start, .sr-jumpnav a.is-line-start, .stx-page .stx-jumpnav a.is-line-start { margin-left: 0; }
.vp-jumpnav a.is-line-start::before, .sr-jumpnav a.is-line-start::before, .stx-page .stx-jumpnav a.is-line-start::before { content: none; }

/* Sprungleisten (Vorbericht, Spielbericht, Statistik) kompakter */
.vp-page .vp-jumpnav, .sr-page .sr-jumpnav, .stx-page .stx-jumpnav { margin: 1rem 0 1.25rem; padding: .3rem 0; row-gap: 0; }
.vp-page .vp-jumpnav a, .sr-page .sr-jumpnav a, .stx-page .stx-jumpnav a { font-size: .88rem; min-height: 30px; padding: .1rem .4rem; }
.vp-page .vp-jumpnav a + a, .sr-page .sr-jumpnav a + a, .stx-page .stx-jumpnav a + a { margin-left: .55rem; }
.vp-page .vp-jumpnav a + a::before, .sr-page .sr-jumpnav a + a::before, .stx-page .stx-jumpnav a + a::before { left: -.28rem; }
.vp-page .vp-jumpnav a.is-line-start, .sr-page .sr-jumpnav a.is-line-start, .stx-page .stx-jumpnav a.is-line-start { margin-left: 0; }

/* Wettbewerbsfilter auf Statistik und Spielplan zentriert */
.stx-page .fp-pill-group, .sp-filters { justify-content: center; }

/* Zeitung: Vorschau mit Bilanz und den letzten Duellen */
.fz-h2h { border-bottom: 1px solid var(--fw-rule); border-top: 2px solid var(--fw-ink); display: grid; gap: .3rem 1.4rem; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); margin: .5rem 0 .7rem; padding: .3rem 0 .5rem; }
.fz-h2h p { font-family: var(--fw-head); font-size: .82rem; margin: 0; }
.fz-h2h .fz-result { grid-template-columns: none; }
.fz-h2h .fz-result small { font-size: .68rem; }
.fz-h2h .sc-outcome { margin-left: .4rem; }
@media screen and (max-width: 767.98px) { .fz-h2h { grid-template-columns: minmax(0, 1fr); } }

/* Zeitung: Forum ohne Kommentar über die volle Breite, Schlagzeilen der Woche zweispaltig */
.fz-split--wide > aside { grid-template-columns: minmax(0, 1fr); }
.fz-split--wide .fw-forum { display: grid; gap: 0 1rem; grid-template-columns: minmax(0, 1fr); }
.fz-headlines { margin-top: 1rem; padding-bottom: .5rem; }
.fz-headlines__list { column-count: 2; column-gap: 1.4rem; column-rule: 1px solid var(--fw-rule); list-style: none; margin: 0; padding: 0; }
.fz-headlines__list li { border-bottom: 1px dotted var(--fw-rule); break-inside: avoid; padding: .4rem 0; }
.fz-headlines__source { font: 500 .66rem var(--fw-head); letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
.fz-headlines__list a { font: 700 .95rem/1.25 var(--fw-head); }
@media screen and (max-width: 767.98px) { .fz-headlines__list { column-count: 1; } }

/* Zeitung: Forum und Schlagzeilen der Woche nebeneinander, Schlagzeilen im Stil der Forumseinträge */
.fz-boxpair { align-items: start; display: grid; gap: 1.2rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: .4rem; }
.fz-boxpair--single { grid-template-columns: minmax(0, 1fr); }
.fz-boxpair--single .fz-headlines { column-count: 2; column-gap: 1.4rem; column-rule: 1px solid var(--fw-rule); }
.fz-boxpair--single .fz-headlines > .fw-box__title { column-span: all; }
.fz-boxpair--single .fz-headlines .fw-forum { break-inside: avoid; }
.fz-headlines .fw-forum h3 a { color: inherit; }
.fz-headlines .fw-forum small { letter-spacing: .04em; text-transform: uppercase; }
@media screen and (max-width: 767.98px) { .fz-boxpair { grid-template-columns: minmax(0, 1fr); } .fz-boxpair--single .fz-headlines { column-count: 1; } }

/* Zeitung: Topnews-Bild zum Spielbericht über die volle Breite; Impressum unten auf der letzten Seite */
.fz-game__photo { margin: .3rem 0 .6rem; }
.fz-game__photo img { max-height: 95mm; object-fit: cover; }
.fz-imprint { border-top: 2px solid var(--fw-ink); margin-top: 1rem; padding-top: .35rem; }
.fz-sheet > .fz-imprint { margin-top: auto; }
.fz-sheet > .fz-imprint + .fz-foot { margin-top: .4rem; }
.fz-imprint__title { display: inline; font: 700 .78rem var(--fw-head); letter-spacing: .05em; margin: 0 .5rem 0 0; text-transform: uppercase; }
.fz-imprint p { display: inline; font-size: .76rem; line-height: 1.4; margin: 0; }

/* Fussballwoche/Zeitung/Chronik: Zwischentitel im Fließtext (aus h2 oder fett gesetzten Zeilen) */
.fw-text h4 { break-after: avoid; font: 700 .95rem/1.2 var(--fw-head); letter-spacing: .01em; margin: .7rem 0 .25rem; text-align: left; }
.fw-text h4:first-child { margin-top: 0; }

/* Impressum als Kasten am Ende der letzten Seite mit Inhalt */
.fz-imprint.fw-box { border-top: 2px solid var(--fw-ink); margin-bottom: 0; padding-top: 0; }
.fz-imprint.fw-box .fw-box__title { font-size: .85rem; padding: .3rem .8rem; }
.fz-imprint.fw-box p { display: block; font-size: .76rem; line-height: 1.45; margin: 0; }

/* Fussballwoche: Slogan im Zeitungskopf */
.fw-masthead__slogan { border-top: 2px solid var(--fw-ink); font: 700 .9rem/1.2 var(--fw-head); letter-spacing: .08em; white-space: nowrap; margin-top: .35rem; padding-top: .3rem; text-transform: uppercase; }
@media screen and (max-width: 575.98px) { .fw-masthead__slogan { font-size: .72rem; letter-spacing: .08em; } }
