/* Lokale Schriften. Ersetzt den fruehen Google-Fonts-@import, siehe
   static/fonts/ANLEITUNG.txt. Sobald hier geladen, an keinen Drittanbieter
   wird mehr die IP der Besucher uebertragen. */
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:400;
  font-display:swap;src:url('/static/fonts/barlow-condensed-v13-latin_latin-ext-regular.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:500;
  font-display:swap;src:url('/static/fonts/barlow-condensed-v13-latin_latin-ext-500.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:600;
  font-display:swap;src:url('/static/fonts/barlow-condensed-v13-latin_latin-ext-600.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;
  font-display:swap;src:url('/static/fonts/barlow-condensed-v13-latin_latin-ext-700.woff2') format('woff2')}

@font-face{font-family:'Barlow Semi Condensed';font-style:normal;font-weight:400;
  font-display:swap;src:url('/static/fonts/barlow-semi-condensed-v16-latin_latin-ext-regular.woff2') format('woff2')}
@font-face{font-family:'Barlow Semi Condensed';font-style:normal;font-weight:500;
  font-display:swap;src:url('/static/fonts/barlow-semi-condensed-v16-latin_latin-ext-500.woff2') format('woff2')}
@font-face{font-family:'Barlow Semi Condensed';font-style:normal;font-weight:600;
  font-display:swap;src:url('/static/fonts/barlow-semi-condensed-v16-latin_latin-ext-600.woff2') format('woff2')}

@font-face{font-family:'Newsreader';font-style:normal;font-weight:400;
  font-display:swap;src:url('/static/fonts/newsreader-v26-latin_latin-ext-regular.woff2') format('woff2')}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:500;
  font-display:swap;src:url('/static/fonts/newsreader-v26-latin_latin-ext-500.woff2') format('woff2')}
@font-face{font-family:'Newsreader';font-style:italic;font-weight:400;
  font-display:swap;src:url('/static/fonts/newsreader-v26-latin-italic.woff2') format('woff2')}

/* ---------------------------------------------------------------
   FCBayernXtra · Almanach
   Hell = getoentes Papier. Dunkel = dieselbe Ordnung, invertiert.
   Alle Farben laufen ueber Variablen, deswegen genuegt ein Wechsel
   der Wurzelwerte fuer den Nachtmodus.
   --------------------------------------------------------------- */
:root{
  --stock:#E9E7E0; --stock2:#DFDCD3; --ink:#14120F;
  --soft:#5E5851;  --rule:#B9B2A6;   --red:#C4122F;
  --warn:#8A6A1F;
  --cond:'Barlow Condensed',system-ui,sans-serif;
  --semi:'Barlow Semi Condensed',system-ui,sans-serif;
  --serif:'Newsreader',Georgia,serif;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --stock:#15130F; --stock2:#1E1B16; --ink:#E8E4DA;
    --soft:#9A9186;  --rule:#3A342C;   --red:#E0384F;
    --warn:#C9A24A;
  }
}
:root[data-theme="dark"]{
  --stock:#15130F; --stock2:#1E1B16; --ink:#E8E4DA;
  --soft:#9A9186;  --rule:#3A342C;   --red:#E0384F;
  --warn:#C9A24A;
}
*{box-sizing:border-box;margin:0;padding:0}
/* Muss vor allen display-Regeln stehen: sonst ueberschreibt ein
   eigenes display das hidden-Attribut und Filter greifen nicht. */
[hidden]{display:none !important}
html{-webkit-text-size-adjust:100%}
body{background:var(--stock);color:var(--ink);
  font-family:var(--semi);font-size:16px;line-height:1.45;
  transition:background .15s linear,color .15s linear}
@media (prefers-reduced-motion:reduce){body{transition:none}}

/* Breite waechst mit dem Fenster, Fliesstext bleibt lesbar schmal */
.wrap{width:100%;max-width:1140px;margin:0 auto;padding:0 clamp(18px,4vw,44px) 80px}
.measureline{max-width:62ch}
a{color:inherit}

.top{display:flex;justify-content:space-between;align-items:baseline;gap:16px;
  padding:14px 0 8px;border-bottom:2px solid var(--ink);flex-wrap:wrap}
.top a{text-decoration:none}
.brand{font-family:var(--cond);text-transform:uppercase;line-height:1;
  font-size:clamp(19px,2.4vw,25px);letter-spacing:.005em;
  display:inline-block;padding-bottom:1px}
.bm-a{font-weight:400;color:var(--soft)}
.bm-b{font-weight:800;color:var(--red)}
.brand:hover .bm-a{color:var(--ink)}
.tools{display:flex;gap:18px;align-items:baseline;flex-wrap:wrap}
nav{display:flex;gap:18px;flex-wrap:wrap}
nav a,.tool{font-family:var(--cond);font-weight:600;font-size:13px;
  letter-spacing:.09em;text-transform:uppercase;color:var(--soft);
  text-decoration:none;border-bottom:2px solid transparent;padding-bottom:2px}
nav a:hover,.tool:hover{color:var(--ink);border-color:var(--red)}
nav a[aria-current]{color:var(--ink);border-color:var(--ink)}
.tool{background:none;border-top:0;border-left:0;border-right:0;cursor:pointer;
  font-family:var(--cond)}
:focus-visible{outline:2px solid var(--red);outline-offset:2px}

.page-head{padding:30px 0 16px;border-bottom:1px solid var(--rule)}
.page-head::after{content:"";display:block;height:4px;margin-top:16px;
  border-top:3px solid var(--ink);border-bottom:1px solid var(--ink)}
h1{font-family:var(--cond);font-weight:700;
  font-size:clamp(38px,9vw,72px);line-height:.88;
  letter-spacing:-.005em;text-transform:uppercase}
.page-head p{font-family:var(--serif);font-size:clamp(16px,1.4vw,19px);
  line-height:1.5;color:var(--soft);margin-top:14px;max-width:58ch}

h2.sect{background:var(--ink);color:var(--stock);
  font-family:var(--cond);font-weight:600;font-size:13px;
  letter-spacing:.14em;text-transform:uppercase;
  padding:4px 9px 3px;margin-bottom:14px;display:inline-block}
section{padding:24px 0;border-bottom:1px solid var(--rule)}
section:last-of-type{border-bottom:none}

.figure{display:flex;align-items:flex-end;gap:18px;flex-wrap:wrap}
.pct{font-family:var(--cond);font-weight:700;
  font-size:clamp(66px,12vw,112px);line-height:.78;letter-spacing:-.02em;
  font-variant-numeric:tabular-nums}
.pct span{font-size:.34em;letter-spacing:0;margin-left:.05em}
.figure p{font-family:var(--serif);font-size:16px;line-height:1.4;
  color:var(--soft);max-width:30ch;padding-bottom:6px}

.measure{margin-top:20px;max-width:620px}
.measure .track{height:16px;border:1px solid var(--ink);display:flex;
  background:var(--stock2)}
.measure .track i{display:block;height:100%;background:var(--ink)}
.measure .ticks{display:flex;justify-content:space-between;margin-top:3px;
  font-family:var(--cond);font-size:11px;letter-spacing:.06em;color:var(--soft)}
.measure .ticks span{border-left:1px solid var(--rule);padding-left:4px;flex:1}
.measure .ticks span:last-child{flex:0;border:none;padding:0}
.fraction{font-family:var(--cond);font-size:15px;letter-spacing:.05em;
  color:var(--soft);margin-top:10px;font-variant-numeric:tabular-nums}

.vitals{display:grid;grid-template-columns:repeat(2,1fr);gap:0 28px;
  margin-top:22px;border-top:1px solid var(--rule)}
@media (min-width:820px){.vitals{grid-template-columns:repeat(4,1fr)}}
.vital{padding:10px 0;border-bottom:1px solid var(--rule)}
.vital dt{font-family:var(--cond);font-size:12px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--soft)}
.vital dd{font-family:var(--cond);font-size:19px;font-weight:600;margin-top:2px}
.vital dd small{display:block;font-family:var(--semi);font-size:13px;
  font-weight:400;color:var(--soft);margin-top:2px;letter-spacing:0}

table{width:100%;border-collapse:collapse;margin-top:4px;
  font-variant-numeric:tabular-nums}
th{font-family:var(--cond);font-size:12px;letter-spacing:.11em;
  text-transform:uppercase;color:var(--soft);text-align:right;
  font-weight:600;padding:0 10px 4px 0;border-bottom:2px solid var(--ink)}
th:first-child,td:first-child{text-align:left;padding-left:0}
th:last-child,td:last-child{padding-right:0}
td{font-family:var(--cond);font-size:17px;padding:5px 10px 4px 0;
  text-align:right;border-bottom:1px solid var(--rule)}
tbody tr:nth-child(even){background:var(--stock2)}
td a{text-decoration:none;border-bottom:1px solid var(--rule)}
td a:hover{border-color:var(--red);color:var(--red)}
td.rank{width:2.5em;color:var(--soft);padding-right:14px}
tr.self td{font-weight:700}
tr.self td:first-child::after{content:" \25C2";color:var(--red)}
.note{font-family:var(--serif);font-style:italic;font-size:15px;
  color:var(--soft);margin-top:10px;max-width:62ch}
.note + table,.note + .figure{margin-top:22px}

.badge{font-family:var(--cond);font-size:12px;font-weight:600;
  letter-spacing:.13em;text-transform:uppercase;padding:2px 7px 1px;
  white-space:nowrap;border:1px solid var(--ink);line-height:1.3;
  display:inline-block}
.b-official{background:var(--ink);color:var(--stock)}
.b-advanced{color:var(--red);border-color:var(--red)}
.b-credible{color:var(--ink)}
.b-thin{color:var(--soft);border-style:dotted}
.b-dormant{color:var(--soft);border-style:dashed}
.b-closed{color:var(--soft);border-color:var(--rule);text-decoration:line-through}

.chain{margin-top:16px;border-top:1px solid var(--rule);max-width:820px}
.link{display:grid;grid-template-columns:auto 1fr;gap:16px;
  padding:6px 0;border-bottom:1px solid var(--rule)}
.link .when{font-family:var(--cond);font-size:14px;letter-spacing:.05em;
  color:var(--soft);white-space:nowrap;font-variant-numeric:tabular-nums}
.link .what{font-size:15px;line-height:1.4}
.link.key .what{font-weight:600}
.link.key .when{color:var(--red)}

.read p{font-family:var(--serif);font-size:clamp(17px,1.5vw,20px);
  line-height:1.55;max-width:60ch;margin-top:6px}
.prose p{margin-top:14px}
.prose h3{font-family:var(--cond);font-weight:700;font-size:22px;
  letter-spacing:.02em;text-transform:uppercase;margin-top:30px;
  padding-bottom:3px;border-bottom:2px solid var(--ink);max-width:60ch}
.prose strong{font-weight:600}
.prose em{color:var(--soft)}
/* ---- Grafiken ---------------------------------------------------- */
.chart{width:100%;height:auto;display:block;margin-top:6px}
.bleed{position:relative}
@media (min-width:1180px){
  .bleed .chart{width:calc(100% + 120px);margin-left:-60px}
}
.chart text{font-family:var(--cond);fill:var(--soft)}

/* Minutenfeld */
.field .c-bar{fill:var(--ink)}
.field .c-bar.hi{fill:var(--red)}
.field .c-bar.zero{fill:var(--rule)}
.field .c-median{stroke:var(--red);stroke-width:1;stroke-dasharray:6 5}
.field .c-mtext{font-size:13px;fill:var(--red);letter-spacing:.1em;
  text-transform:uppercase}
.field .c-name{font-size:12px;text-anchor:start;
  dominant-baseline:middle;letter-spacing:.02em}
.field .c-name.hi{fill:var(--ink);font-weight:600}

/* Vertragszeitleiste */
.timeline .c-grid{stroke:var(--rule);stroke-width:1}
.timeline .c-year{font-size:13px;letter-spacing:.14em;fill:var(--soft)}
.timeline .c-row{font-size:13.5px;fill:var(--ink)}
.timeline .c-span{fill:var(--ink);opacity:.82}
.timeline .c-span.soon{fill:var(--red);opacity:1}
.timeline .c-end{font-size:12px;dominant-baseline:middle}

/* kleines Feld auf dem Spielerprofil */
.head-grid{display:grid;gap:22px}
@media (min-width:760px){
  .head-grid{grid-template-columns:1fr 168px;align-items:start}
  .head-grid .vitals{margin-top:0}
}
.mini-wrap{max-width:168px;justify-self:end}
.mini-pitch .pl{fill:none;stroke:var(--rule);stroke-width:.6}
.mini-pitch .mp.main{fill:var(--red);stroke:none}
.mini-pitch .mp.alt{fill:none;stroke:var(--ink);stroke-width:.8;
  stroke-dasharray:1.6 1.4}
.mini-pitch .mp.dot{fill:var(--rule)}
.mini-pitch .mp-t{text-anchor:middle;dominant-baseline:central;
  font-family:var(--cond);font-weight:700;font-size:5px}
.mini-pitch .mp-t.main{fill:#fff}
.mini-pitch .mp-t.alt{fill:var(--ink);font-weight:600;font-size:4.4px}

/* ---- Datumsstreifen -------------------------------------------- */
.dateline{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;
  padding:7px 0 6px;border-bottom:1px solid var(--rule);
  font-family:var(--cond);font-size:12.5px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--soft);
  font-variant-numeric:tabular-nums}

/* ---- Ticker ----------------------------------------------------- */
.ticker{list-style:none;border-top:2px solid var(--ink);counter-reset:tk}
.ticker li{display:grid;grid-template-columns:auto 1fr auto;gap:14px;
  align-items:baseline;padding:9px 0;border-bottom:1px solid var(--rule);
  transition:background .12s linear}
.ticker li:hover{background:var(--stock2)}
.tk-date{font-family:var(--cond);font-weight:600;font-size:15px;
  letter-spacing:.06em;color:var(--red);font-variant-numeric:tabular-nums;
  white-space:nowrap}
.tk-claim{display:block;font-family:var(--cond);font-weight:600;font-size:19px;
  line-height:1.15}
.tk-meta{display:block;font-family:var(--cond);font-size:12.5px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--soft);margin-top:2px}
.ticker-more{margin-top:12px;font-family:var(--cond);font-size:14px;
  letter-spacing:.12em;text-transform:uppercase}
.ticker-more a{text-decoration:none;border-bottom:2px solid var(--red);
  padding-bottom:2px}
@media (max-width:560px){
  .ticker li{grid-template-columns:auto 1fr}
  .ticker li .badge{grid-column:2;justify-self:start;margin-top:4px}
}

/* ---- invertierter Block ----------------------------------------- */
.invert{background:var(--ink);color:var(--stock);border-bottom:none;
  margin:0 calc(-1 * clamp(18px,4vw,44px));padding:0}
.invert-in{max-width:1140px;margin:0 auto;
  padding:30px clamp(18px,4vw,44px) 34px}
.invert h2.sect{background:var(--stock);color:var(--ink)}
.invert .note{color:#a49b90}
.tally{display:grid;grid-template-columns:repeat(2,1fr);gap:20px 28px;
  margin-top:6px}
@media (min-width:700px){.tally{grid-template-columns:repeat(4,1fr)}}
.t-num{display:block;font-family:var(--cond);font-weight:700;
  font-size:clamp(44px,7vw,68px);line-height:.86;
  font-variant-numeric:tabular-nums}
.t-num.accent{color:var(--red)}
.invert .t-num.accent{color:#E0384F}
.t-lab{display:block;font-family:var(--cond);font-size:12.5px;
  letter-spacing:.14em;text-transform:uppercase;color:#a49b90;margin-top:6px}

/* ---- Bewegung ---------------------------------------------------- */
.wrap > *{animation:rise .5s cubic-bezier(.2,.7,.3,1) backwards}
.wrap > *:nth-child(2){animation-delay:.05s}
.wrap > *:nth-child(3){animation-delay:.1s}
.wrap > *:nth-child(4){animation-delay:.15s}
.wrap > *:nth-child(5){animation-delay:.2s}
.wrap > *:nth-child(n+6){animation-delay:.25s}
@keyframes rise{from{opacity:0;transform:translateY(10px)}}
.entry-card{transition:transform .14s ease,border-color .14s ease}
.entry-card:hover{transform:translateX(4px)}
tbody tr{transition:background .12s linear}
tbody tr:hover{background:var(--stock2)}
@media (prefers-reduced-motion:reduce){
  .wrap > *{animation:none}
  .entry-card,tbody tr,.ticker li{transition:none}
}

/* ---- Spielfeld ------------------------------------------------- */
.pitch-wrap{max-width:520px;margin:6px auto 0}
.pitch{width:100%;height:auto;display:block}
.pitch .pl{fill:none;stroke:var(--rule);stroke-width:.5}
.pitch .node circle{fill:var(--stock);stroke:var(--ink);stroke-width:.7}
.pitch .node.empty circle{stroke:var(--rule);stroke-dasharray:1.5 1.5}
.pitch text{text-anchor:middle;font-family:var(--cond);fill:var(--ink)}
.pitch .pcode{font-size:5.4px;font-weight:700;letter-spacing:.04em;
  dominant-baseline:central}
.pitch .pname{font-size:4.4px;font-weight:600}
.pitch .pcount{font-size:3.6px;fill:var(--red);font-weight:700}
.pitch .node.empty .pname,.pitch .node.empty .pcount{fill:var(--soft)}

/* ---- Spielankuendigung ---------------------------------------- */
.fixture-body{display:flex;justify-content:space-between;align-items:flex-end;
  gap:24px;flex-wrap:wrap;border-bottom:3px solid var(--ink);padding-bottom:12px}
.fixture-meta{font-family:var(--cond);font-size:13px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--red)}
.fixture-opp{font-family:var(--cond);font-weight:700;
  font-size:clamp(34px,7vw,60px);line-height:.92;text-transform:uppercase;
  letter-spacing:-.01em;margin-top:4px}
.fixture-when{font-family:var(--cond);font-size:17px;letter-spacing:.06em;
  color:var(--soft);margin-top:6px;font-variant-numeric:tabular-nums}
.fixture-count{text-align:right;line-height:.85}
.cd-num{display:block;font-family:var(--cond);font-weight:700;
  font-size:clamp(40px,8vw,70px);font-variant-numeric:tabular-nums}
.cd-word{display:block;font-family:var(--cond);font-size:13px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--soft);margin-top:4px}
.fixture .fraction{margin-top:12px}

/* ---- Einstiege ------------------------------------------------- */
.entries{display:grid;gap:0;border-top:1px solid var(--rule)}
@media (min-width:760px){.entries{grid-template-columns:1fr 1fr;gap:0 34px}}
.entry-card{display:block;text-decoration:none;padding:13px 0;
  border-bottom:1px solid var(--rule)}
.ec-title{display:block;font-family:var(--cond);font-weight:700;font-size:22px;
  letter-spacing:.02em;text-transform:uppercase}
.entry-card:hover .ec-title{color:var(--red)}
.ec-text{display:block;font-family:var(--serif);font-size:15.5px;
  color:var(--soft);line-height:1.4;margin-top:3px;max-width:44ch}

.contact{margin-top:24px;max-width:44ch;display:grid;gap:16px}
.contact label{font-family:var(--cond);font-size:13px;letter-spacing:.11em;
  text-transform:uppercase;color:var(--soft);display:grid;gap:5px}
.contact input,.contact textarea{font-family:var(--semi);font-size:16px;
  color:var(--ink);background:var(--stock2);border:1px solid var(--rule);
  padding:9px 10px;width:100%}
.contact input:focus,.contact textarea:focus{border-color:var(--ink);outline:none}
.contact button{font-family:var(--cond);font-weight:600;font-size:14px;
  letter-spacing:.14em;text-transform:uppercase;background:var(--ink);
  color:var(--stock);border:none;padding:10px 18px;cursor:pointer;
  justify-self:start}

.entry{padding:22px 0;border-bottom:1px solid var(--rule)}
.entry-head{display:flex;justify-content:space-between;gap:14px;
  align-items:baseline;flex-wrap:wrap}
.direction{font-family:var(--cond);font-size:13px;letter-spacing:.11em;
  text-transform:uppercase;color:var(--red);margin-top:10px}
.claim{font-family:var(--cond);font-weight:600;
  font-size:clamp(21px,3vw,30px);line-height:1.14;margin-top:4px;max-width:36ch}
.entry.settled .claim{color:var(--soft)}
.outcome{margin-top:16px;display:inline-block;border:2px solid var(--red);
  padding:4px 11px 3px;transform:rotate(-1.1deg)}
.outcome .verdict{font-family:var(--cond);font-size:15px;font-weight:700;
  letter-spacing:.18em;text-transform:uppercase;color:var(--red)}

footer{margin-top:34px;padding:12px 0 0;border-top:3px solid var(--ink);
  font-family:var(--cond);font-size:13px;letter-spacing:.07em;
  text-transform:uppercase;color:var(--soft);line-height:1.9}
footer a{color:var(--soft)}
.mono{font-family:var(--cond);font-size:13px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--soft)}

@media (max-width:460px){
  .vitals{grid-template-columns:1fr}
  .link{grid-template-columns:1fr;gap:2px}
}


/* =================================================================
   KADERSEITE
   ================================================================= */
.season-tag{margin-top:12px;font-family:var(--cond);font-size:16px;
  letter-spacing:.1em;text-transform:uppercase}
.season-tag strong{font-weight:700;margin-left:6px}

/* ---- Kennzahlenleiste ---- */
.snapshot{display:grid;grid-template-columns:repeat(2,1fr);
  border-top:2px solid var(--ink);border-bottom:1px solid var(--rule)}
@media (min-width:720px){.snapshot{grid-template-columns:repeat(5,1fr)}}
.snapshot > div{padding:12px 16px 12px 0;border-right:1px solid var(--rule)}
.snapshot > div:last-child{border-right:none}
@media (max-width:719px){
  .snapshot > div:nth-child(2n){border-right:none}
  .snapshot > div{border-bottom:1px solid var(--rule)}
  .snapshot > div:nth-last-child(-n+1){border-bottom:none}
}
.snapshot dt{font-family:var(--cond);font-size:11.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--soft)}
.snapshot dd{font-family:var(--cond);font-weight:700;
  font-size:clamp(28px,4.4vw,40px);line-height:1;margin-top:4px;
  font-variant-numeric:tabular-nums}
.snapshot dd.warn{color:var(--red)}

/* ---- zweispaltiger Hauptbereich ---- */
.split{display:grid;gap:32px}
@media (min-width:900px){.split{grid-template-columns:55fr 45fr;gap:40px}}

/* Elf auf dem Feld */
.xi-wrap{max-width:520px;margin-top:4px}
.xi{width:100%;height:auto;display:block}
.xi .pl{fill:none;stroke:var(--rule);stroke-width:.5}
.xi-chip{fill:var(--stock2);stroke:var(--ink);stroke-width:.5}
.xi-chip.empty{fill:none;stroke:var(--rule);stroke-dasharray:1.4 1.4}
.xi text{font-family:var(--cond)}
.xi-no{font-size:5.4px;font-weight:700;fill:var(--red);
  dominant-baseline:middle}
.xi-nm{font-size:4px;font-weight:600;fill:var(--ink);dominant-baseline:middle}
.xi-pos{font-size:3.6px;font-weight:600;fill:var(--soft);
  dominant-baseline:middle;text-anchor:end}
.xi-pos.mid{text-anchor:middle;fill:var(--rule)}

/* Minutenführende */
.leaders{list-style:none;margin-top:4px;border-top:2px solid var(--ink)}
.leaders li{display:grid;grid-template-columns:1fr auto;gap:2px 12px;
  padding:9px 0 10px;border-bottom:1px solid var(--rule)}
.ld-name{font-family:var(--cond);font-weight:600;font-size:18px;line-height:1.1}
.ld-name a{text-decoration:none;border-bottom:1px solid transparent}
.leaders li:hover .ld-name a{border-color:var(--red);color:var(--red)}
.ld-val{font-family:var(--cond);font-size:16px;color:var(--soft);
  font-variant-numeric:tabular-nums;align-self:center}
.ld-track{grid-column:1 / -1;position:relative;height:6px;
  background:var(--stock2);margin-top:4px}
.ld-track i{display:block;height:100%;background:var(--ink);
  animation:grow .7s cubic-bezier(.2,.7,.3,1) backwards}
.leaders li.top .ld-track i{background:var(--red)}
.leaders li:nth-child(2) .ld-track i{animation-delay:.05s}
.leaders li:nth-child(3) .ld-track i{animation-delay:.1s}
.leaders li:nth-child(n+4) .ld-track i{animation-delay:.15s}
@keyframes grow{from{width:0 !important}}
.ld-median{border-bottom:none;padding-top:12px}
.ld-median .ld-name,.ld-median .ld-val{font-size:12.5px;color:var(--soft);
  letter-spacing:.12em;text-transform:uppercase;font-weight:500}
.ld-median .ld-track{background:none;border-top:1px dashed var(--rule)}
.ld-median u{position:absolute;top:-4px;width:2px;height:10px;
  background:var(--red);display:block}

/* ---- Filterleiste ---- */
.filters{display:flex;gap:8px;padding:26px 0 4px;flex-wrap:nowrap;
  overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.filters::-webkit-scrollbar{display:none}
.chip{font-family:var(--cond);font-weight:600;font-size:12.5px;
  letter-spacing:.13em;text-transform:uppercase;background:none;
  border:1px solid var(--rule);color:var(--soft);padding:7px 13px;
  cursor:pointer;white-space:nowrap;transition:color .12s,border-color .12s}
.chip:hover{color:var(--ink)}
.chip[aria-pressed="true"]{color:var(--ink);border-color:var(--red);
  box-shadow:inset 0 -2px 0 var(--red)}

/* ---- Spielerzeilen ---- */
.roster{list-style:none;border-top:2px solid var(--ink)}
.pr{display:grid;align-items:center;gap:4px 14px;padding:9px 0;
  border-bottom:1px solid var(--rule);
  grid-template-columns:auto 1fr auto auto;
  grid-template-areas:"no name con con" "mins mins share share";
  transition:background .12s linear}
@media (min-width:760px){
  .pr{grid-template-columns:44px minmax(160px,1fr) minmax(150px,1.1fr) 62px 62px;
      grid-template-areas:"no name mins share con"}
}
.pr:hover{background:var(--stock2)}
.pr-no{grid-area:no;font-family:var(--cond);font-weight:700;
  font-size:26px;line-height:1;color:var(--soft);
  font-variant-numeric:tabular-nums;min-width:2ch}
.pr:hover .pr-no{color:var(--red)}
.pr-name{grid-area:name;font-family:var(--cond);font-weight:600;font-size:19px;
  line-height:1.1}
.pr-name a{text-decoration:none;border-bottom:1px solid transparent}
.pr:hover .pr-name a{border-color:var(--red)}
.pr-pos{display:block;font-size:11.5px;font-weight:500;letter-spacing:.13em;
  text-transform:uppercase;color:var(--soft);margin-top:2px}
.pr-mins{grid-area:mins;display:flex;align-items:center;gap:10px}
.pr-val{font-family:var(--cond);font-size:16px;color:var(--soft);
  font-variant-numeric:tabular-nums;min-width:4.4ch;text-align:right}
.pr-bar{flex:1;height:5px;background:var(--stock2);min-width:60px}
.pr-bar i{display:block;height:100%;background:var(--ink);
  animation:grow .7s cubic-bezier(.2,.7,.3,1) backwards}
.pr-share{grid-area:share;font-family:var(--cond);font-size:16px;
  text-align:right;font-variant-numeric:tabular-nums;color:var(--soft)}
.pr-con{grid-area:con;font-family:var(--cond);font-weight:600;font-size:16px;
  text-align:right;font-variant-numeric:tabular-nums}
.pr-con.warn{color:var(--warn)}
.pr-con.soon{color:var(--red)}

/* ---- Vertragsausblick ---- */
.outlook{display:flex;gap:0;overflow-x:auto;border-top:2px solid var(--ink);
  scrollbar-width:none}
.outlook::-webkit-scrollbar{display:none}
.ol-col{flex:1 0 140px;padding:12px 14px 16px 0;
  border-right:1px solid var(--rule);position:relative}
.ol-col:last-child{border-right:none}
.ol-col.soon::before{content:"";position:absolute;top:0;left:0;right:14px;
  height:3px;background:var(--red)}
.ol-year{font-family:var(--cond);font-weight:700;
  font-size:clamp(26px,3.4vw,34px);line-height:1;
  font-variant-numeric:tabular-nums}
.ol-col.soon .ol-year{color:var(--red)}
.ol-count{font-family:var(--cond);font-size:11.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--soft);margin-top:2px}
.ol-col ul{list-style:none;margin-top:10px}
.ol-col li{font-family:var(--cond);font-size:15px;padding:3px 0;
  border-bottom:1px solid var(--rule)}
.ol-col li:last-child{border-bottom:none}
.ol-col a{text-decoration:none}
.ol-col a:hover{color:var(--red)}

@media (prefers-reduced-motion:reduce){
  .ld-track i,.pr-bar i{animation:none}
}

/* =================================================================
   VERTRAGSSEITE
   ================================================================= */

/* ---- Horizont ---- */
.horizon{border-top:2px solid var(--ink)}
.hz{display:grid;grid-template-columns:70px 1fr 42px;gap:4px 14px;
  align-items:center;padding:11px 0;border-bottom:1px solid var(--rule);
  grid-template-areas:"year bar count" ". names names"}
.hz-year{grid-area:year;font-family:var(--cond);font-weight:700;font-size:26px;
  line-height:1;font-variant-numeric:tabular-nums}
.hz-bar{grid-area:bar;height:12px;background:var(--stock2)}
.hz-bar i{display:block;height:100%;background:var(--ink);
  animation:grow .7s cubic-bezier(.2,.7,.3,1) backwards}
.hz-count{grid-area:count;font-family:var(--cond);font-weight:600;
  font-size:18px;text-align:right;font-variant-numeric:tabular-nums;
  color:var(--soft)}
.hz-names{grid-area:names;font-family:var(--cond);font-size:13px;
  letter-spacing:.05em;color:var(--soft)}
.hz.next .hz-year,.hz.next .hz-count{color:var(--red)}
.hz.next .hz-bar i{background:var(--red)}
.hz.upcoming .hz-year{color:var(--warn)}
.hz.upcoming .hz-bar i{background:var(--warn)}

/* ---- Nächste Entscheidungen ---- */
.decisions{list-style:none;border-top:2px solid var(--ink);counter-reset:d}
.decisions li{padding:11px 0;border-bottom:1px solid var(--rule)}
.dc-when{display:block;font-family:var(--cond);font-size:12.5px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.dc-name{display:block;font-family:var(--cond);font-weight:700;font-size:22px;
  line-height:1.1;margin-top:2px}
.dc-name a{text-decoration:none;border-bottom:1px solid transparent}
.decisions li:hover .dc-name a{border-color:var(--red)}
.dc-meta{display:block;font-family:var(--cond);font-size:12.5px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--soft);margin-top:3px}

/* ---- Jahressektionen ---- */
.yr{position:relative;padding:22px 0 8px;border-bottom:1px solid var(--rule);
  overflow:hidden}
.yr-ghost{position:absolute;right:-6px;top:-14px;font-family:var(--cond);
  font-weight:700;font-size:clamp(90px,17vw,190px);line-height:.8;
  color:var(--ink);opacity:.055;pointer-events:none;user-select:none;
  font-variant-numeric:tabular-nums}
.yr.next{border-left:3px solid var(--red);padding-left:16px;
  background:linear-gradient(90deg,
    color-mix(in srgb, var(--red) 7%, transparent), transparent 55%)}
.yr.upcoming{border-left:3px solid var(--warn);padding-left:16px}
.yr-head{display:flex;align-items:baseline;gap:12px;position:relative;
  flex-wrap:wrap}
.yr-label{font-family:var(--cond);font-weight:600;font-size:11.5px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--soft);
  border:1px solid var(--rule);padding:3px 8px 2px}
.yr.next .yr-label{color:var(--red);border-color:var(--red)}
.yr.upcoming .yr-label{color:var(--warn);border-color:var(--warn)}
.yr-num{font-family:var(--cond);font-weight:700;
  font-size:clamp(30px,4vw,42px);line-height:1;
  font-variant-numeric:tabular-nums}
.yr-count{font-family:var(--cond);font-size:12.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--soft)}

/* ---- Vertragszeilen ---- */
.clist{list-style:none;margin-top:14px;position:relative}
.cr{display:grid;align-items:center;gap:3px 14px;padding:8px 0;
  border-bottom:1px solid var(--rule);transition:background .12s linear;
  grid-template-columns:1fr auto;
  grid-template-areas:"name date" "state bar"}
@media (min-width:760px){
  .cr{grid-template-columns:minmax(170px,1fr) 96px minmax(90px,150px) 100px;
      grid-template-areas:"name state bar date"}
}
.cr:hover{background:var(--stock2)}
.cr-name{grid-area:name;font-family:var(--cond);font-weight:600;font-size:19px;
  line-height:1.1}
.cr-name a{text-decoration:none;border-bottom:1px solid transparent}
.cr:hover .cr-name a{border-color:var(--red)}
.cr-sub{display:block;font-size:11.5px;font-weight:500;letter-spacing:.13em;
  text-transform:uppercase;color:var(--soft);margin-top:2px}
.tag-ac{border:1px solid var(--rule);padding:1px 5px 0;letter-spacing:.1em}
.cr-state{grid-area:state;font-family:var(--cond);font-weight:600;
  font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--soft)}
.cr-state.st-expiring{color:var(--red)}
.cr-state.st-one{color:var(--warn)}
.cr-bar{grid-area:bar;height:4px;background:var(--stock2)}
.cr-bar i{display:block;height:100%;background:var(--soft);
  animation:grow .7s cubic-bezier(.2,.7,.3,1) backwards}
.cr[data-state="expiring"] .cr-bar i{background:var(--red)}
.cr[data-state="one"] .cr-bar i{background:var(--warn)}
.cr-date{grid-area:date;font-family:var(--cond);font-size:16px;
  text-align:right;font-variant-numeric:tabular-nums;color:var(--soft)}

@media (prefers-reduced-motion:reduce){
  .hz-bar i,.cr-bar i{animation:none}
}

/* =================================================================
   KADERTIEFE
   ================================================================= */
.split.wide{grid-template-columns:1fr}
@media (min-width:960px){.split.wide{grid-template-columns:65fr 35fr;gap:40px}}

/* ---- Depth Map als Raster, nicht als Spielfeldgrafik ---- */
.dmap{border-top:2px solid var(--ink);padding-top:14px;
  display:grid;gap:10px;
  background:
    repeating-linear-gradient(to bottom,transparent 0 39px,
      var(--rule) 39px 39.5px);
  background-attachment:local}
.dm-row{display:grid;gap:10px;justify-content:center}
.dm-row.cols-1{grid-template-columns:minmax(0,1fr);max-width:34%;
  margin:0 auto;width:100%}
.dm-row.cols-2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:74%;
  margin:0 auto;width:100%}
.dm-row.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:620px){
  .dm-row.cols-1,.dm-row.cols-2{max-width:100%}
  .dm-row.cols-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
}
.dm-cell{display:block;text-decoration:none;background:var(--stock2);
  border-top:3px solid var(--rule);padding:9px 11px 10px;min-height:76px;
  transition:background .12s linear,border-color .12s linear}
.dm-cell:hover{background:var(--stock);border-color:var(--ink)}
.dm-cell:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.dm-cell.st-thin{border-top-color:var(--red)}
.dm-cell.st-covered{border-top-color:var(--warn)}
.dm-code{display:block;font-family:var(--cond);font-weight:700;font-size:13px;
  letter-spacing:.16em;color:var(--soft)}
.dm-name{display:block;font-family:var(--cond);font-weight:600;
  font-size:clamp(15px,1.6vw,19px);line-height:1.1;margin-top:3px;
  overflow-wrap:anywhere}
.dm-count{display:block;font-family:var(--cond);font-size:11.5px;
  letter-spacing:.13em;text-transform:uppercase;color:var(--soft);margin-top:5px}
.dm-status{display:block;font-family:var(--cond);font-weight:600;
  font-size:11px;letter-spacing:.15em;text-transform:uppercase;margin-top:2px;
  color:var(--soft)}
.dm-cell.st-thin .dm-status{color:var(--red)}
.dm-cell.st-covered .dm-status{color:var(--warn)}

/* ---- Druckpunkte ---- */
.pressure{list-style:none;border-top:2px solid var(--ink)}
.pressure li{padding:11px 0;border-bottom:1px solid var(--rule)}
.pp-pos{display:block;font-family:var(--cond);font-weight:700;font-size:19px;
  line-height:1.1}
.pp-txt{display:block;font-family:var(--cond);font-size:13px;
  letter-spacing:.08em;color:var(--soft);margin-top:2px}
.pressure li:first-child .pp-pos{color:var(--red)}

/* ---- Positionspanels ---- */
.panels{display:grid;gap:0 34px;margin-top:8px}
@media (min-width:860px){.panels{grid-template-columns:1fr 1fr}}
.dpanel{position:relative;overflow:hidden;padding:20px 0 18px;
  border-bottom:1px solid var(--rule)}
.dpanel:focus{outline:none}
.dp-ghost{position:absolute;right:0;top:2px;font-family:var(--cond);
  font-weight:700;font-size:76px;line-height:.8;color:var(--ink);
  opacity:.06;pointer-events:none;user-select:none;letter-spacing:.02em}
.dp-head{display:flex;align-items:baseline;justify-content:space-between;
  gap:12px;border-bottom:2px solid var(--ink);padding-bottom:6px;
  position:relative}
.dp-head h2{font-family:var(--cond);font-weight:700;
  font-size:clamp(20px,2.4vw,25px);text-transform:uppercase;line-height:1}
.dp-status{font-family:var(--cond);font-weight:600;font-size:11.5px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--soft);
  white-space:nowrap}
.dp-status.st-thin{color:var(--red)}
.dp-status.st-covered{color:var(--warn)}
.dp-label{font-family:var(--cond);font-weight:600;font-size:10.5px;
  letter-spacing:.18em;text-transform:uppercase;color:var(--soft);
  margin-top:14px}
.dp-label.alt{margin-top:16px}
.dp-list{font-family:var(--cond);font-size:15.5px;color:var(--ink);
  margin-top:4px;line-height:1.35}

/* ---- Rangliste ---- */
.rank{list-style:none;margin-top:6px}
.rank li{display:grid;grid-template-columns:22px 1fr auto;gap:2px 10px;
  padding:6px 0;border-bottom:1px solid var(--rule)}
.rk-no{font-family:var(--cond);font-size:14px;color:var(--soft);
  font-variant-numeric:tabular-nums}
.rk-name{font-family:var(--cond);font-weight:600;font-size:17px;line-height:1.1}
.rk-name a{text-decoration:none;border-bottom:1px solid transparent}
.rank li:hover .rk-name a{border-color:var(--red)}
.rk-val{font-family:var(--cond);font-size:14px;color:var(--soft);
  font-variant-numeric:tabular-nums;white-space:nowrap}
.rk-bar{grid-column:2 / -1;height:4px;background:var(--stock2);margin-top:2px}
.rk-bar i{display:block;height:100%;background:var(--ink);min-width:2px;
  animation:grow .6s cubic-bezier(.2,.7,.3,1) backwards}
.rank li:first-child .rk-bar i{background:var(--red)}

/* ---- Methodik ---- */
.method-list{list-style:none;border-top:1px solid var(--rule)}
.method-list li{font-family:var(--serif);font-size:15.5px;color:var(--soft);
  padding:9px 0;border-bottom:1px solid var(--rule);max-width:70ch;
  line-height:1.45}

@media (prefers-reduced-motion:reduce){.rk-bar i{animation:none}}

/* =================================================================
   TRANSFER LEDGER
   ================================================================= */
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap}

/* ---- Verteilungsbalken ---- */
.dist{display:flex;height:10px;margin-top:16px;background:var(--stock2)}
.dist i{display:block;height:100%}
.d-open{background:var(--soft)}
.d-happened{background:var(--red)}
.d-didnot{background:var(--ink)}
.d-unver{background:var(--rule)}
.dist-key{display:flex;gap:18px;flex-wrap:wrap;margin-top:8px;
  font-family:var(--cond);font-size:11.5px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--soft)}
.dist-key span{display:inline-flex;align-items:center;gap:6px}
.dist-key u{width:12px;height:8px;display:inline-block;text-decoration:none}

/* ---- Methodikstreifen ---- */
.method-strip{padding:20px 0;border-bottom:1px solid var(--rule);
  display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px}
.ms-levels{font-family:var(--cond);font-size:12px;letter-spacing:.16em;
  color:var(--soft)}
.ms-toggle{font-family:var(--cond);font-weight:600;font-size:12px;
  letter-spacing:.14em;text-transform:uppercase;background:none;
  border:1px solid var(--rule);color:var(--ink);padding:6px 12px;
  cursor:pointer}
.ms-toggle:hover{border-color:var(--red)}
.ms-toggle[aria-expanded="true"]{border-color:var(--red);color:var(--red)}
.ms-body{flex:1 0 100%;margin-top:6px}
.lvl{display:grid;gap:6px 16px;border-top:1px solid var(--rule);padding-top:12px}
@media (min-width:700px){.lvl{grid-template-columns:1fr 1fr;gap:6px 34px}}
.lvl > div{display:grid;grid-template-columns:96px 1fr;gap:12px;
  align-items:baseline;padding:5px 0}
.lvl dd{font-family:var(--serif);font-size:15px;color:var(--soft);
  line-height:1.4}

/* ---- Steuerleiste ---- */
.ledger-controls{display:flex;gap:12px 18px;flex-wrap:wrap;
  align-items:center;padding:22px 0 6px}
.ledger-controls .filters{padding:0;flex:0 1 auto}
.ledger-controls .chip b{font-weight:700;color:var(--red);margin-left:4px}
.search{flex:1 1 240px;min-width:0}
.search input{width:100%;font-family:var(--semi);font-size:15px;
  color:var(--ink);background:var(--stock2);border:1px solid var(--rule);
  padding:9px 11px}
.search input:focus{border-color:var(--ink);outline:none}

/* ---- Saga ---- */
.saga{margin-top:26px;border-top:3px solid var(--ink)}
.saga-head{display:flex;justify-content:space-between;gap:14px;
  flex-wrap:wrap;padding:12px 0 14px}
.saga-name{font-family:var(--cond);font-weight:700;
  font-size:clamp(24px,3.6vw,34px);line-height:1;text-transform:uppercase}
.saga-route{font-family:var(--cond);font-size:13px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--red);margin-top:4px}
.saga-meta{display:flex;flex-direction:column;gap:2px;text-align:right;
  font-family:var(--cond);font-size:12px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--soft)}
@media (max-width:640px){.saga-meta{text-align:left;flex-direction:row;
  flex-wrap:wrap;gap:4px 14px}}

/* ---- Claim ---- */
.claim{border-bottom:1px solid var(--rule);background:var(--stock)}
.claim-h{margin:0}
.claim-toggle{display:block;width:100%;text-align:left;background:none;
  border:none;cursor:pointer;padding:13px 0;font:inherit;color:inherit}
.claim-toggle:hover{background:var(--stock2)}
.claim-toggle:focus-visible{outline:2px solid var(--red);outline-offset:-2px}
.cl-top{display:flex;justify-content:space-between;align-items:center;
  gap:12px;flex-wrap:wrap}
.cl-logged{font-family:var(--cond);font-size:11.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--soft)}
.cl-route{display:block;font-family:var(--cond);font-size:12px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--soft);
  margin-top:9px}
.cl-head{display:block;font-family:var(--cond);font-weight:600;
  font-size:clamp(20px,2.6vw,26px);line-height:1.16;margin-top:3px;
  max-width:46ch}
.cl-meta{display:block;font-family:var(--cond);font-size:11.5px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--soft);margin-top:6px}
.claim-toggle[aria-expanded="true"] .cl-head{color:var(--red)}
.claim-body{padding:2px 0 18px}

/* ---- Herkunftshinweis ---- */
.provenance{border-left:3px solid var(--warn);padding:9px 0 9px 13px;
  margin-bottom:16px}
.pv-label{font-family:var(--cond);font-weight:600;font-size:11px;
  letter-spacing:.17em;text-transform:uppercase;color:var(--warn)}
.provenance p{font-family:var(--serif);font-size:15px;color:var(--soft);
  line-height:1.45;margin-top:3px;max-width:62ch}

/* ---- Quellen-Timeline ---- */
.tl-label{font-family:var(--cond);font-weight:600;font-size:10.5px;
  letter-spacing:.18em;text-transform:uppercase;color:var(--soft)}
.tl{list-style:none;margin-top:8px;padding-left:15px;
  border-left:1px solid var(--rule)}
.tl li{position:relative;display:grid;grid-template-columns:66px 1fr;
  gap:4px 14px;padding:7px 0}
@media (max-width:520px){.tl li{grid-template-columns:1fr;gap:1px}}
.tl li::before{content:"";position:absolute;left:-19px;top:15px;width:8px;
  height:1px;background:var(--rule)}
.tl li:first-child::before{background:var(--red);width:12px;left:-21px}
.tl-date{font-family:var(--cond);font-size:12.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--soft);white-space:nowrap;
  font-variant-numeric:tabular-nums}
.tl-src{display:block;font-family:var(--cond);font-weight:600;font-size:12px;
  letter-spacing:.13em;text-transform:uppercase}
.tl-txt{display:block;font-size:15px;line-height:1.4;color:var(--soft);
  max-width:62ch}

/* ---- Ausgang ---- */
.verdict{margin-top:18px;border-top:2px solid var(--ink);padding-top:11px}
.vd-label{display:block;font-family:var(--cond);font-weight:600;font-size:10.5px;
  letter-spacing:.18em;text-transform:uppercase;color:var(--soft)}
.vd-value{display:block;font-family:var(--cond);font-weight:700;
  font-size:clamp(22px,3vw,30px);line-height:1;text-transform:uppercase;
  margin-top:5px}
.verdict.did_not .vd-value{color:var(--red)}
.verdict.happened .vd-value{color:var(--ink)}
.verdict.unverifiable .vd-value,.verdict.open .vd-value{color:var(--soft)}
.verdict.happened{border-top-color:var(--red)}
.vd-meta{display:block;font-family:var(--cond);font-size:11.5px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--soft);margin-top:6px}

/* =================================================================
   MATCHDAY-HERO
   ================================================================= */
.hero{display:grid;gap:26px;padding:28px 0 6px;
  border-bottom:1px solid var(--rule)}
.hero::after{content:"";display:block;grid-column:1/-1;height:4px;
  border-top:3px solid var(--ink);border-bottom:1px solid var(--ink)}
@media (min-width:900px){
  .hero{grid-template-columns:52fr 48fr;gap:0}
  .hero-a{padding-right:40px}
  .hero-b{padding-left:40px;border-left:1px solid var(--rule)}
}
.hero-a h1{font-family:var(--cond);font-weight:700;
  font-size:clamp(38px,7.4vw,74px);line-height:.86;text-transform:uppercase}
.hero-season{font-family:var(--cond);font-weight:700;
  font-size:clamp(20px,2.6vw,28px);letter-spacing:.06em;color:var(--red);
  margin-top:10px;font-variant-numeric:tabular-nums}
.hero-sub{font-family:var(--serif);font-size:16px;line-height:1.5;
  color:var(--soft);margin-top:14px;max-width:46ch}

.hero-b{position:relative;overflow:hidden;min-height:100%}
.mx-ghost{position:absolute;right:-8px;top:-18px;font-family:var(--cond);
  font-weight:700;font-size:clamp(110px,15vw,200px);line-height:.78;
  color:var(--ink);opacity:.055;pointer-events:none;user-select:none;
  font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.mx-ghost span{opacity:.5}
.mx-state{position:relative;font-family:var(--cond);font-weight:700;
  font-size:13px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--red)}
.hero[data-state="in_progress"] .mx-state{animation:pulse 2.2s infinite}
@keyframes pulse{50%{opacity:.45}}
.mx-comp{position:relative;font-family:var(--cond);font-size:12.5px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--soft);
  margin-top:6px}
.mx-teams{position:relative;margin-top:14px}
.mx-team{display:flex;align-items:baseline;justify-content:space-between;
  gap:16px}
.mx-name{font-family:var(--cond);font-weight:700;
  font-size:clamp(26px,4.4vw,44px);line-height:1.02;text-transform:uppercase;
  overflow-wrap:anywhere}
.mx-score{font-family:var(--cond);font-weight:700;
  font-size:clamp(30px,5vw,52px);line-height:1;color:var(--red);
  font-variant-numeric:tabular-nums}
.mx-vs{font-family:var(--cond);font-size:14px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--red);margin:2px 0}
.mx-note{position:relative;font-family:var(--cond);font-size:13px;
  letter-spacing:.1em;color:var(--soft);margin-top:6px}

.mx-facts{position:relative;display:grid;grid-template-columns:repeat(2,1fr);
  gap:0 18px;margin-top:18px;border-top:1px solid var(--rule)}
@media (min-width:520px){.mx-facts{grid-template-columns:repeat(3,1fr)}}
.mx-facts > div{padding:9px 0;border-bottom:1px solid var(--rule)}
.mx-facts dt{font-family:var(--cond);font-size:10.5px;letter-spacing:.15em;
  text-transform:uppercase;color:var(--soft)}
.mx-facts dd{font-family:var(--cond);font-weight:600;font-size:16px;
  margin-top:2px;font-variant-numeric:tabular-nums}
.mx-facts dd small{display:block;font-weight:400;font-size:12.5px;
  color:var(--soft);letter-spacing:.06em}

.mx-count{position:relative;display:flex;gap:22px;margin-top:16px}
.cd-unit{display:flex;flex-direction:column;line-height:1}
.cd-unit b{font-family:var(--cond);font-weight:700;
  font-size:clamp(30px,4.6vw,46px);font-variant-numeric:tabular-nums}
.cd-unit i{font-family:var(--cond);font-style:normal;font-size:10.5px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--soft);
  margin-top:3px}

@media (prefers-reduced-motion:reduce){
  .hero[data-state="in_progress"] .mx-state{animation:none}
}

/* =================================================================
   GLOBAL · Kopf, Navigation, Sprungmarken
   ================================================================= */
.skip{position:absolute;left:-9999px;top:0;background:var(--ink);
  color:var(--stock);padding:10px 16px;font-family:var(--cond);
  font-size:13px;letter-spacing:.14em;text-transform:uppercase;z-index:50}
.skip:focus{left:0}

.top{position:relative}
.nav-toggle{display:none;align-items:center;gap:8px;background:none;
  border:1px solid var(--rule);color:var(--ink);padding:7px 11px;
  cursor:pointer;font-family:var(--cond);font-weight:600;font-size:12px;
  letter-spacing:.14em;text-transform:uppercase}
.nt-bars{width:15px;height:9px;border-top:2px solid currentColor;
  border-bottom:2px solid currentColor;position:relative}
.nt-bars::after{content:"";position:absolute;left:0;top:3px;width:100%;
  height:2px;background:currentColor}
.tool-row{display:flex;gap:16px;align-items:baseline}

@media (max-width:820px){
  .top{flex-wrap:nowrap;align-items:center}
  .nav-toggle{display:inline-flex}
  .tools{display:none;flex:1 0 100%;flex-direction:column;
    align-items:flex-start;gap:12px;padding:14px 0 6px;
    border-top:1px solid var(--rule);margin-top:10px}
  .tools.open{display:flex}
  .tools nav{flex-direction:column;gap:0;width:100%}
  .tools nav a{display:block;width:100%;padding:9px 0;font-size:16px;
    border-bottom:1px solid var(--rule);border-top:none}
  .tools nav a[aria-current]{color:var(--red)}
}

/* =================================================================
   HOMEPAGE · Module
   ================================================================= */
.status-strip{padding-top:20px}
.mx-facts{position:relative;display:flex;flex-wrap:wrap;gap:2px 16px;
  margin-top:12px;font-family:var(--cond);font-size:14px;letter-spacing:.06em;
  color:var(--soft);font-variant-numeric:tabular-nums}
.mx-count{position:relative;margin-top:14px}
.cd-label{display:block;font-family:var(--cond);font-size:10.5px;
  letter-spacing:.18em;text-transform:uppercase;color:var(--soft)}
.cd-values{display:flex;gap:20px;margin-top:4px}

.modules{display:grid;gap:18px;margin-top:26px}
@media (min-width:900px){
  .modules{grid-template-columns:repeat(12,1fr)}
  .mod-squad{grid-column:span 7}
  .mod-contracts{grid-column:span 5}
  .mod-depth{grid-column:span 5}
  .mod-ledger{grid-column:span 7}
}
.mod{display:flex;flex-direction:column;text-decoration:none;
  border-top:3px solid var(--ink);padding:14px 0 16px;position:relative}
.mod:hover{border-top-color:var(--red)}
.mod:focus-visible{outline:2px solid var(--red);outline-offset:3px}
.mod-label{font-family:var(--cond);font-weight:700;font-size:12.5px;
  letter-spacing:.2em;text-transform:uppercase;color:var(--soft)}
.mod-go{font-family:var(--cond);font-weight:600;font-size:12px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--red);
  margin-top:auto;padding-top:14px}

.mod-figure{display:flex;align-items:baseline;gap:10px;font-family:var(--cond);
  font-weight:700;font-size:clamp(52px,8vw,84px);line-height:.9;margin-top:6px;
  font-variant-numeric:tabular-nums}
.mod-figure small{font-size:.2em;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--soft)}
.mod-split{display:flex;gap:26px;margin-top:14px;flex-wrap:wrap}
.mod-split span{display:flex;flex-direction:column}
.mod-split b{font-family:var(--cond);font-weight:700;font-size:24px;
  line-height:1;font-variant-numeric:tabular-nums}
.mod-split i{font-family:var(--cond);font-style:normal;font-size:10.5px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--soft);margin-top:3px}

.mod-bars{display:grid;gap:5px;margin-top:12px}
.mb{display:grid;grid-template-columns:44px 1fr 26px;gap:10px;
  align-items:center}
.mb b{font-family:var(--cond);font-weight:600;font-size:15px;
  font-variant-numeric:tabular-nums;color:var(--soft)}
.mb i{display:block;height:10px;background:var(--stock2)}
.mb u{display:block;height:100%;background:var(--ink);text-decoration:none}
.mb em{font-family:var(--cond);font-style:normal;font-size:14px;
  text-align:right;font-variant-numeric:tabular-nums;color:var(--soft)}
.mb.next b,.mb.next em{color:var(--red)}
.mb.next u{background:var(--red)}
.mb.upcoming u{background:var(--warn)}

.mod-grid{display:grid;gap:5px;margin-top:12px}
.mg-row{display:flex;gap:5px;justify-content:center}
.mg-cell{flex:0 1 74px;border-top:2px solid var(--rule);padding:5px 6px 6px;
  background:var(--stock2);font-family:var(--cond);font-size:11px;
  letter-spacing:.13em;color:var(--soft);display:flex;
  justify-content:space-between;align-items:baseline}
.mg-cell b{font-size:15px;font-weight:700;color:var(--ink)}
.mg-cell.st-thin{border-top-color:var(--red)}
.mg-cell.st-thin b{color:var(--red)}
.mg-cell.st-covered{border-top-color:var(--warn)}

.mod-tally{display:flex;gap:24px;flex-wrap:wrap;margin-top:12px}
.mod-tally span{display:flex;flex-direction:column}
.mod-tally b{font-family:var(--cond);font-weight:700;
  font-size:clamp(30px,4vw,44px);line-height:1;font-variant-numeric:tabular-nums}
.mod-tally b.accent{color:var(--red)}
.mod-tally i{font-family:var(--cond);font-style:normal;font-size:10.5px;
  letter-spacing:.15em;text-transform:uppercase;color:var(--soft);margin-top:4px}
.mod-ledger .dist{margin-top:14px}

/* Datenstand je Seite */
.stamp{display:flex;flex-wrap:wrap;gap:4px 20px;margin-top:14px;
  font-family:var(--cond);font-size:11.5px;letter-spacing:.15em;
  text-transform:uppercase;color:var(--soft)}
.stamp span{position:relative;padding-left:14px}
.stamp span::before{content:"";position:absolute;left:0;top:.45em;width:7px;
  height:1px;background:var(--red)}

/* Sticky Filter auf langen Seiten */
.filters{position:sticky;top:0;z-index:20;background:var(--stock);
  padding-top:14px;padding-bottom:10px;
  box-shadow:0 1px 0 var(--rule)}
@media (prefers-reduced-motion:no-preference){
  html{scroll-behavior:smooth}
}
.dpanel,.pos-block,.yr{scroll-margin-top:74px}

/* Zurück nach oben */
.to-top{display:inline-block;margin-top:22px;font-family:var(--cond);
  font-weight:600;font-size:12px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--soft);text-decoration:none;border-bottom:1px solid var(--rule);
  padding-bottom:2px}
.to-top:hover{color:var(--red);border-color:var(--red)}

/* Teaser statt zweiter Vertragsliste */
.teaser{padding:24px 0;border-bottom:1px solid var(--rule)}
.teaser-line{font-family:var(--cond);font-size:clamp(22px,3.4vw,30px);
  line-height:1.15;margin-top:4px}
.teaser-line strong{font-weight:700;font-size:1.5em;color:var(--red);
  font-variant-numeric:tabular-nums;margin-right:8px}
.teaser-go{display:inline-block;margin-top:12px;font-family:var(--cond);
  font-weight:600;font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--red);text-decoration:none;border-bottom:1px solid var(--red);
  padding-bottom:2px}

/* Druckpunkte als Links */
a.pp-pos{display:block;text-decoration:none;border-bottom:1px solid transparent}
.pressure li:hover a.pp-pos{border-color:var(--red);color:var(--red)}

.cl-open{color:var(--red)}
.claim-toggle[aria-expanded="true"] .cl-open{display:none}

/* Vertragsprovenienz */
.prov{display:block;font-family:var(--cond);font-size:10.5px;
  letter-spacing:.15em;text-transform:uppercase;margin-top:2px;
  color:var(--soft);font-weight:600}
.prov a{text-decoration:none;border-bottom:1px solid var(--rule)}
.prov a:hover{color:var(--red);border-color:var(--red)}
.prov.p-official{color:var(--ink)}
.prov.p-reported{color:var(--soft)}
.prov.p-inferred,.prov.p-estimated{color:var(--warn)}
.prov.p-none{color:var(--rule)}

/* Quellenlinks in der Timeline */
.tl-src a{text-decoration:none;border-bottom:1px solid var(--rule)}
.tl-src a:hover{color:var(--red);border-color:var(--red)}

/* Latest movement */
.movement{padding:26px 0 6px;border-top:1px solid var(--rule);margin-top:26px}
.mv{list-style:none;border-top:2px solid var(--ink)}
.mv li{border-bottom:1px solid var(--rule)}
.mv a{display:grid;grid-template-columns:64px 1fr auto;gap:6px 14px;
  align-items:baseline;padding:11px 0;text-decoration:none}
@media (max-width:620px){
  .mv a{grid-template-columns:64px 1fr}
  .mv-tags{grid-column:2}
}
.mv a:hover{background:var(--stock2)}
.mv-date{font-family:var(--cond);font-weight:600;font-size:13px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--red);
  white-space:nowrap}
.mv-head{font-family:var(--cond);font-weight:600;font-size:18px;
  line-height:1.15}
.mv-tags{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.mv-out{font-family:var(--cond);font-weight:600;font-size:11px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--soft);
  white-space:nowrap}
.mv-out.o-did_not{color:var(--red)}
.mv-out.o-happened{color:var(--ink)}
.prov-src{display:block;font-weight:400;letter-spacing:.1em;
  text-transform:none;color:var(--soft);font-size:10px;margin-top:1px}

/* =================================================================
   NOTES
   ================================================================= */
.notes{list-style:none;border-top:2px solid var(--ink)}
.nt{display:grid;gap:6px 26px;padding:16px 0;
  border-bottom:1px solid var(--rule)}
@media (min-width:760px){.nt{grid-template-columns:128px 1fr}}
.nt.key{border-left:3px solid var(--red);padding-left:15px}
.nt-meta{display:flex;flex-direction:column;gap:2px}
.nt-date{font-family:var(--cond);font-weight:600;font-size:13px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--red);
  white-space:nowrap}
.nt-topic{font-family:var(--cond);font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--soft)}
.nt-title{font-family:var(--cond);font-weight:700;
  font-size:clamp(20px,2.6vw,25px);line-height:1.14;max-width:44ch}
.nt-text{font-size:16px;line-height:1.55;color:var(--soft);
  max-width:70ch;margin-top:5px}
.nt-foot{display:flex;gap:18px;flex-wrap:wrap;margin-top:9px;
  font-family:var(--cond);font-size:11.5px;letter-spacing:.13em;
  text-transform:uppercase}
.nt-src{color:var(--ink)}
.nt-src a{text-decoration:none;border-bottom:1px solid var(--rule)}
.nt-src a:hover{color:var(--red);border-color:var(--red)}
.nt-player{color:var(--soft)}
.nt-player a{text-decoration:none;border-bottom:1px solid var(--rule)}
.notes.tight .nt{grid-template-columns:1fr;padding:11px 0}
.notes.tight .nt-meta{flex-direction:row;gap:14px}

/* Kanaele im Fuss */
.social{display:flex;gap:20px;flex-wrap:wrap;padding-bottom:12px;
  margin-bottom:12px;border-bottom:1px solid var(--rule)}
.social a{font-family:var(--cond);font-weight:600;font-size:12.5px;
  letter-spacing:.15em;text-transform:uppercase;color:var(--ink);
  text-decoration:none;border-bottom:1px solid var(--rule);padding-bottom:2px}
.social a:hover{color:var(--red);border-color:var(--red)}
