:root {
  color-scheme: dark;
  --bg: #0c0c0e;
  --flaeche: #16161a;
  --flaeche-2: #1c1c21;
  --linie: #26262b;
  --text: #eceef0;
  --leise: #93979f;
  --sehr-leise: #6a6d73;
  --akzent: #ff6a3d;
  --akzent-weich: rgba(255, 106, 61, 0.14);
  --gut: #7fe0a8;
  --gut-weich: rgba(127, 224, 168, 0.12);
  --radius: 14px;
  --serif: 'EB Garamond', Georgia, serif;
  --sans: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
}
* { box-sizing: border-box; }
html, body { margin: 0; background: var(--bg); color: var(--text); font-family: var(--sans); font-size: 15px; line-height: 1.5; -webkit-font-smoothing: antialiased; }
a { color: inherit; }
button { font: inherit; color: inherit; }

/* ---------- Layout ---------- */
.layout { display: flex; min-height: 100vh; }
.seitenleiste {
  width: 232px; flex-shrink: 0; background: #111114; border-right: 1px solid var(--linie);
  display: flex; flex-direction: column; gap: 28px;
  padding: calc(28px + env(safe-area-inset-top, 0px)) 16px 24px;
  position: sticky; top: 0; height: 100vh;
}
.marke { font-family: var(--serif); font-size: 30px; font-weight: 600; color: var(--akzent); text-decoration: none; padding: 0 12px; }
.navlinks { display: flex; flex-direction: column; gap: 4px; }
.navlink { display: flex; align-items: center; gap: 12px; padding: 11px 12px; border-radius: 10px; color: var(--leise); text-decoration: none; font-weight: 500; }
.navlink svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.navlink:hover { background: var(--flaeche); color: var(--text); }
.navlink.aktiv { background: var(--flaeche-2); color: var(--text); }
.navlink.aktiv svg { color: var(--akzent); }
.konto { margin-top: auto; display: flex; flex-direction: column; gap: 6px; padding: 0 12px; }
.kontoname { font-weight: 600; }
.link-knopf { background: none; border: 0; padding: 0; color: var(--leise); cursor: pointer; text-align: left; }
.link-knopf:hover { color: var(--text); }
.demo-badge { align-self: flex-start; font-size: 12px; font-weight: 600; letter-spacing: .04em; color: var(--akzent); background: var(--akzent-weich); padding: 2px 8px; border-radius: 999px; }

.inhalt { flex: 1; min-width: 0; padding: 40px clamp(16px, 4vw, 48px) 64px; max-width: 1280px; }
.demo-hinweis { background: var(--akzent-weich); color: var(--text); border: 1px solid rgba(255,106,61,.35); border-radius: 10px; padding: 10px 14px; margin-bottom: 24px; font-size: 14px; }

/* ---------- Kopf ---------- */
.kopf { margin-bottom: 28px; }
.kopf .oberzeile { font-size: 13px; letter-spacing: .12em; text-transform: uppercase; color: var(--akzent); font-weight: 600; margin: 0 0 6px; }
.kopf h1 { font-family: var(--serif); font-weight: 600; font-size: clamp(30px, 4vw, 42px); line-height: 1.1; margin: 0; }
.kopf .unterzeile { color: var(--leise); margin: 8px 0 0; }

/* ---------- Karten ---------- */
.raster { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 20px; align-items: start; }
.karte { background: var(--flaeche); border: 1px solid var(--linie); border-radius: var(--radius); padding: 22px; min-width: 0; }
.karte.breit { grid-column: 1 / -1; }
.karte h2 { font-size: 13px; letter-spacing: .1em; text-transform: uppercase; color: var(--leise); font-weight: 600; margin: 0 0 14px; display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.karte h2 .zahl { color: var(--sehr-leise); letter-spacing: 0; text-transform: none; font-weight: 500; }
.leer { color: var(--sehr-leise); font-style: italic; margin: 0; }
.hinweis-fehler { color: var(--akzent); font-size: 14px; margin: 0 0 8px; }
.vortext { white-space: pre-wrap; margin: 0; }

/* Termine */
.termine { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.termin { display: grid; grid-template-columns: 96px 1fr; gap: 12px; align-items: baseline; }
.termin .zeit { font-variant-numeric: tabular-nums; color: var(--akzent); font-weight: 600; font-size: 14px; }
.termin .ort { display: block; color: var(--sehr-leise); font-size: 13px; }
.unterueberschrift { font-size: 13px; color: var(--sehr-leise); margin: 18px 0 8px; }

/* Checklisten */
.liste { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.haken-zeile { display: flex; align-items: flex-start; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--linie); cursor: pointer; user-select: none; }
.haken-zeile:last-child { border-bottom: 0; }
.haken { width: 22px; height: 22px; border-radius: 7px; border: 2px solid var(--sehr-leise); flex-shrink: 0; margin-top: 1px; display: grid; place-items: center; transition: background .15s, border-color .15s; }
.haken svg { width: 14px; height: 14px; stroke: var(--bg); stroke-width: 3; fill: none; opacity: 0; }
.erledigt .haken { background: var(--gut); border-color: var(--gut); }
.erledigt .haken svg { opacity: 1; }
.erledigt .zeilentext { color: var(--sehr-leise); text-decoration: line-through; }
.zeilentext { flex: 1; min-width: 0; }
.meta { display: block; font-size: 12.5px; color: var(--sehr-leise); }
.prio-1 .meta::before { content: '● '; color: var(--akzent); }
.faellig { color: var(--akzent); }
.serie { font-size: 12.5px; color: var(--leise); white-space: nowrap; }
.laed { opacity: .5; pointer-events: none; }

/* Ziele */
.ziele { display: flex; flex-direction: column; gap: 14px; }
.ziel .bereich { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--akzent); font-weight: 600; }
.ziel p { margin: 2px 0 0; }
.ziel .monat { color: var(--leise); font-size: 13.5px; }

.chip { display: inline-block; font-size: 12px; font-weight: 600; padding: 2px 9px; border-radius: 999px; background: var(--flaeche-2); color: var(--leise); border: 1px solid var(--linie); }
.chip.akzent { background: var(--akzent-weich); color: var(--akzent); border-color: transparent; }

/* ---------- Fundament ---------- */
.kette { display: flex; flex-direction: column; gap: 0; }
.stufe { position: relative; padding: 0 0 16px 22px; border-left: 2px solid var(--linie); margin-left: 5px; }
.stufe:last-child { padding-bottom: 0; border-left-color: transparent; }
.stufe::before { content: ''; position: absolute; left: -7px; top: 5px; width: 12px; height: 12px; border-radius: 50%; background: var(--bg); border: 2px solid var(--akzent); }
.stufe .label { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--sehr-leise); font-weight: 600; }
.stufe p { margin: 2px 0 0; }
.stufe.vision p { font-family: var(--serif); font-size: 19px; line-height: 1.35; }
.bereich-titel { font-family: var(--serif); font-size: 26px; font-weight: 600; margin: 0 0 16px; text-transform: capitalize; }

/* ---------- Journal ---------- */
.zwei-spalten { display: grid; grid-template-columns: 1.2fr 1fr; gap: 20px; align-items: start; }
.eintrag { padding: 16px 0; border-bottom: 1px solid var(--linie); }
.eintrag:first-of-type { padding-top: 0; }
.eintrag:last-child { border-bottom: 0; }
.eintrag-kopf { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; flex-wrap: wrap; }
.eintrag-datum { font-weight: 600; }
.stimmung { color: var(--akzent); letter-spacing: 2px; font-size: 13px; }
.journal-teil { margin-top: 12px; }
.journal-teil h3 { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--akzent); font-weight: 600; margin: 0 0 4px; }
.journal-fehlt { margin: 12px 0 0; font-size: 13px; color: var(--sehr-leise); }

/* ---------- Kalender ---------- */
.tag-block { display: grid; grid-template-columns: 120px 1fr; gap: 20px; padding: 18px 0; border-bottom: 1px solid var(--linie); }
.tag-block:last-child { border-bottom: 0; }
.tag-datum .wt { font-family: var(--serif); font-size: 24px; font-weight: 600; line-height: 1; }
.tag-datum .dm { color: var(--leise); font-size: 14px; }
.tag-block.ist-heute .wt { color: var(--akzent); }

/* ---------- Gewohnheiten-Raster ---------- */
.rasterwrap { overflow-x: auto; }
.gitter { border-collapse: separate; border-spacing: 4px; }
.gitter th { font-weight: 500; font-size: 11.5px; color: var(--sehr-leise); text-align: center; padding: 0 0 4px; }
.gitter th.name { text-align: left; font-size: 14px; color: var(--text); font-weight: 600; min-width: 180px; padding-right: 12px; }
.gitter th.woche-start { color: var(--leise); }
.zelle { width: 26px; height: 26px; border-radius: 7px; background: var(--flaeche-2); border: 1px solid var(--linie); cursor: pointer; padding: 0; display: block; }
.zelle.an { background: var(--gut); border-color: var(--gut); }
.zelle.heute-zelle { outline: 2px solid var(--akzent); outline-offset: 1px; }
.gitter td.serie-zelle { padding-right: 12px; white-space: nowrap; }

/* ---------- Login ---------- */
.login-seite { min-height: 100vh; display: grid; place-items: center; padding: 24px 16px; }
.login-karte { width: 100%; max-width: 380px; background: var(--flaeche); border: 1px solid var(--linie); border-radius: 18px; padding: 36px 32px; }
.login-karte .marke { padding: 0; display: block; font-size: 44px; margin-bottom: 4px; }
.login-karte p.unter { color: var(--leise); margin: 0 0 28px; }
.feld { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; }
.feld label { font-size: 13px; color: var(--leise); font-weight: 500; }
.feld input { background: var(--bg); border: 1px solid var(--linie); border-radius: 10px; padding: 12px 14px; color: var(--text); font: inherit; font-size: 16px; }
.feld input:focus { outline: 2px solid var(--akzent); outline-offset: 0; border-color: transparent; }
.knopf { width: 100%; background: var(--akzent); color: #1a0d07; border: 0; border-radius: 10px; padding: 13px; font-weight: 600; font-size: 16px; cursor: pointer; margin-top: 8px; }
.knopf:hover { filter: brightness(1.08); }
.fehler { background: var(--akzent-weich); color: var(--text); border-radius: 10px; padding: 10px 14px; margin-bottom: 16px; font-size: 14px; }
.login-fuss { text-align: center; margin-top: 20px; font-size: 13px; color: var(--sehr-leise); }
.login-fuss a { color: var(--leise); }

/* ---------- Schmal (iPad hochkant / Handy) ---------- */
@media (max-width: 900px) {
  .zwei-spalten { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .layout { flex-direction: column; }
  .seitenleiste { width: auto; height: auto; position: sticky; top: 0; z-index: 5; flex-direction: row; align-items: center; gap: 12px;
    padding: calc(10px + env(safe-area-inset-top, 0px)) 12px 10px; border-right: 0; border-bottom: 1px solid var(--linie); overflow-x: auto; }
  .marke { font-size: 22px; padding: 0 4px; }
  .navlinks { flex-direction: row; gap: 2px; }
  .navlink { padding: 8px 10px; }
  .navlink span { display: none; }
  .navlink.aktiv span { display: inline; }
  .konto { margin: 0 0 0 auto; flex-direction: row; align-items: center; gap: 10px; padding: 0; }
  .kontoname, .demo-badge { display: none; }
  .raster { grid-template-columns: 1fr; }
  .tag-block { grid-template-columns: 1fr; gap: 8px; }
  .inhalt { padding-top: 24px; }
}

/* ---------- Notizbuch ---------- */
.md { overflow-wrap: anywhere; }
.md > *:first-child { margin-top: 0; }
.md > *:last-child { margin-bottom: 0; }
.md h1 { font-family: var(--serif); font-size: 32px; font-weight: 600; line-height: 1.15; margin: 4px 0 14px; }
.md h2 { font-size: 13px; letter-spacing: .1em; text-transform: uppercase; color: var(--akzent); font-weight: 600; margin: 22px 0 8px; }
.md h3 { font-size: 16px; margin: 18px 0 6px; }
.md p { margin: 0 0 10px; }
.md ul, .md ol { margin: 0 0 10px; padding-left: 22px; }
.md li { margin: 3px 0; }
.md strong { color: var(--text); font-weight: 600; }
.md code { background: var(--flaeche-2); padding: 1px 5px; border-radius: 5px; font-size: 13.5px; }
.wikilink { color: var(--akzent); text-decoration: none; border-bottom: 1px solid rgba(255,106,61,.4); }
.wikilink:hover { border-bottom-color: var(--akzent); }
.wikilink.fehlt { color: var(--leise); border-bottom: 1px dashed var(--sehr-leise); }
.notiz-gruppe { margin-bottom: 32px; }
.gruppen-titel { font-size: 13px; letter-spacing: .1em; text-transform: uppercase; color: var(--leise); font-weight: 600; margin: 0 0 12px; }
.gruppen-titel .zahl { color: var(--sehr-leise); letter-spacing: 0; font-weight: 500; }
.notiz-raster { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.notiz-kachel { display: flex; flex-direction: column; gap: 6px; background: var(--flaeche); border: 1px solid var(--linie); border-radius: var(--radius); padding: 18px; text-decoration: none; transition: border-color .15s; }
.notiz-kachel:hover { border-color: var(--akzent); }
.notiz-name { font-family: var(--serif); font-size: 21px; font-weight: 600; line-height: 1.2; }
.notiz-vorschau { color: var(--leise); font-size: 14px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.zurueck { margin: 0 0 16px; }
.zurueck a { color: var(--leise); text-decoration: none; }
.zurueck a:hover { color: var(--text); }
.notiz-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 20px; align-items: start; }
.notiz-karte { padding: 28px 32px; }
.notiz-titel { font-family: var(--serif); font-size: 32px; font-weight: 600; margin: 8px 0 14px; }
.link-liste { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
@media (max-width: 900px) { .notiz-layout { grid-template-columns: 1fr; } .notiz-karte { padding: 22px; } }

/* ---------- System ---------- */
.kennzahlen { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 14px; margin-bottom: 20px; }
.kennzahl { background: var(--flaeche); border: 1px solid var(--linie); border-radius: var(--radius); padding: 16px 18px; display: flex; flex-direction: column; gap: 4px; }
.kz-label { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--leise); font-weight: 600; }
.kz-wert { font-size: 26px; font-weight: 600; font-variant-numeric: tabular-nums; }
.kz-fuss { font-size: 12.5px; color: var(--sehr-leise); }
.balken { display: flex; align-items: flex-end; gap: 4px; height: 180px; padding-top: 8px; }
.balken-spalte { flex: 1; min-width: 0; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; gap: 6px; }
.balken-stapel { width: 100%; max-width: 26px; display: flex; flex-direction: column; border-radius: 4px 4px 0 0; overflow: hidden; min-height: 2px; }
.balken-slack { background: var(--akzent); min-height: 0; }
.balken-takt { background: var(--leise); min-height: 0; }
.balken-tag { font-size: 11px; color: var(--sehr-leise); font-variant-numeric: tabular-nums; }
.legende-punkt { display: inline-block; width: 9px; height: 9px; border-radius: 2px; margin: 0 4px 0 10px; vertical-align: baseline; }
.legende-punkt.slack { background: var(--akzent); }
.legende-punkt.takt { background: var(--leise); }
.fussnote { font-size: 12.5px; color: var(--sehr-leise); margin: 14px 0 0; }
.schlicht-liste { list-style: none; margin: 0; padding: 0; }
.schlicht-liste li { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--linie); font-size: 14.5px; }
.schlicht-liste li:last-child { border-bottom: 0; }
.schlicht-liste a { color: var(--text); }
@media (max-width: 700px) { .balken-tag { display: none; } }
.haken-zeile.statisch { cursor: default; }

/* ---------- Aufgaben ---------- */
.aufgabe-zeile { display: flex; align-items: center; gap: 10px; border-bottom: 1px solid var(--linie); }
.aufgabe-zeile:last-child { border-bottom: 0; }
.aufgabe-zeile .haken-zeile { flex: 1; min-width: 0; border-bottom: 0; }
.einplan-knopf { flex-shrink: 0; font: inherit; font-size: 12.5px; font-weight: 600; padding: 5px 10px; border-radius: 999px; border: 1px solid transparent; background: var(--akzent-weich); color: var(--akzent); cursor: pointer; white-space: nowrap; }
.einplan-knopf.leise { background: transparent; border-color: var(--linie); color: var(--leise); }
.einplan-knopf:disabled { opacity: .5; cursor: default; }
.aufgabe-zeile.verschoben { opacity: .35; transition: opacity .3s; }
.mehr-link { display: inline-block; margin-top: 12px; font-size: 14px; font-weight: 600; color: var(--akzent); text-decoration: none; }

.fokus { margin: 0 0 12px; padding: 10px 12px; border-radius: 10px; background: var(--akzent-weich); white-space: pre-wrap; font-size: 14.5px; }
.fokus-label { display: block; font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; font-weight: 600; color: var(--akzent); margin-bottom: 4px; }
.komplett { margin: 0; font-weight: 600; color: var(--gut); }
.haken-zeile.weg { opacity: 0; max-height: 0; padding: 0; margin: 0; overflow: hidden; border: 0; transition: opacity .3s, max-height .3s .2s, padding .3s .2s; }

/* ---------- Kalender (Monat) ---------- */
.kalender-kopf { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; }
.monat-nav { display: flex; gap: 8px; align-items: center; }
.monat-nav a { display: grid; place-items: center; min-width: 40px; height: 40px; padding: 0 12px; border-radius: 10px; border: 1px solid var(--linie); background: var(--flaeche); color: var(--text); text-decoration: none; font-size: 20px; }
.monat-nav a.heute-knopf { font-size: 14px; font-weight: 600; color: var(--akzent); }
.monat-raster { padding: 0; overflow: hidden; }
.mr-kopf, .mr-woche { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.mr-kopf div { padding: 10px 8px; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--leise); border-bottom: 1px solid var(--linie); }
.mr-tag { min-height: 104px; padding: 6px 6px 8px; border-right: 1px solid var(--linie); border-bottom: 1px solid var(--linie); display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.mr-woche .mr-tag:last-child { border-right: 0; }
.mr-woche:last-child .mr-tag { border-bottom: 0; }
.mr-tag.wochenende { background: var(--flaeche-2); }
.mr-tag.fremd .mr-nr, .mr-tag.fremd .mr-termin { opacity: .45; }
.mr-nr { font-size: 13px; font-weight: 600; color: var(--leise); align-self: flex-start; min-width: 24px; height: 24px; display: grid; place-items: center; border-radius: 999px; }
.mr-tag.ist-heute .mr-nr { background: var(--akzent); color: #fff; }
.mr-termin { font-size: 12px; line-height: 1.3; padding: 2px 6px; border-radius: 6px; background: var(--akzent-weich); color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mr-termin b { font-weight: 600; color: var(--akzent); }
.mr-termin.ganztag { background: var(--akzent); color: #fff; }
.mr-mehr { font-size: 11.5px; color: var(--leise); padding-left: 4px; }
.monat-liste { margin-top: 20px; }
.tag-block.kompakt { grid-template-columns: 110px 1fr; padding: 12px 0; }
@media (max-width: 760px) {
  .monat-raster { display: none; }
  .monat-liste { margin-top: 0; }
}

/* ---------- Heute: Termine kompakt ---------- */
.termin-kompakt { list-style: none; margin: 0; padding: 0; }
.termin-kompakt li { display: grid; grid-template-columns: 74px 48px minmax(0, 1fr); gap: 8px; align-items: baseline; padding: 4px 0; font-size: 14px; }
.termin-kompakt li.neuer-tag { border-top: 1px solid var(--linie); padding-top: 8px; margin-top: 4px; }
.termin-kompakt li.neuer-tag:first-child { border-top: 0; padding-top: 0; margin-top: 0; }
.tk-tag { font-weight: 600; font-size: 13px; color: var(--leise); white-space: nowrap; }
.termin-kompakt li.ist-heute .tk-tag { color: var(--akzent); }
.tk-zeit { font-variant-numeric: tabular-nums; color: var(--leise); font-size: 13px; }
.tk-titel { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ---------- Zeitplan wie im Buch ---------- */
.stundenleiste { --zeile: 26px; position: relative; height: calc(var(--stunden) * var(--zeile)); margin-top: 4px; }
.sl-stunde { height: var(--zeile); border-top: 1px dashed var(--linie); font-size: 11.5px; color: var(--sehr-leise); }
.sl-stunde span { display: inline-block; width: 52px; padding-top: 3px; }
.sl-eintrag { position: absolute; left: 56px; right: 0; padding: 3px 8px; font-size: 13px; line-height: 1.3; border-left: 3px solid var(--akzent); background: var(--akzent-weich); border-radius: 0 6px 6px 0; overflow: hidden; }
.sl-eintrag.spanne { background: transparent; border-left-width: 3px; }
.sl-eintrag b { font-weight: 600; color: var(--akzent); margin-right: 4px; }
.zeitplan-heute { margin-bottom: 12px; }
.zeitplan-heute li { grid-template-columns: 48px minmax(0, 1fr); }

/* ---------- Ausklappen ---------- */
.aufklapp { margin: 0 0 12px; }
.aufklapp > summary { list-style: none; cursor: pointer; display: flex; align-items: baseline; gap: 8px; font-weight: 600; font-size: 14px; padding: 6px 0; user-select: none; }
.aufklapp > summary::-webkit-details-marker { display: none; }
.aufklapp > summary::before { content: '›'; display: inline-block; width: 12px; color: var(--akzent); font-size: 16px; transition: transform .2s; }
.aufklapp[open] > summary::before { transform: rotate(90deg); }
.aufklapp > summary h3 { display: inline; margin: 0; }
.aufklapp-info { font-weight: 400; font-size: 13px; color: var(--leise); }
.aufklapp[open] > :not(summary) { margin-top: 6px; }

/* ---------- Zeitplan: abgehakt wie im Buch ---------- */
.zp-ja .tk-titel::before, .sl-eintrag.zp-ja::after { content: '✓'; color: var(--gut); font-weight: 700; margin-right: 6px; }
.sl-eintrag.zp-ja::after, .sl-eintrag.zp-nein::after { position: absolute; right: 8px; top: 3px; margin: 0; }
.zp-nein .tk-titel { text-decoration: line-through; color: var(--sehr-leise); }
.zp-nein .tk-titel::before { content: '✗'; color: var(--sehr-leise); margin-right: 6px; text-decoration: none; display: inline-block; }
.sl-eintrag.zp-nein { opacity: .55; }
.sl-eintrag.zp-nein::after { content: '✗'; color: var(--sehr-leise); }

/* ---------- Graph wie Obsidian ---------- */
.graph-karte { margin-bottom: 24px; padding-bottom: 14px; }
#notiz-graph { display: block; width: 100%; height: 440px; border-radius: 12px; background: radial-gradient(circle at 50% 45%, var(--flaeche-2), var(--flaeche) 70%); touch-action: none; cursor: grab; }
.graph-legende { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 12px; font-size: 12.5px; color: var(--leise); align-items: center; }
.graph-legende i { display: inline-block; width: 10px; height: 10px; border-radius: 999px; margin-right: 6px; vertical-align: -1px; }
.graph-legende i.hohl { border: 1.5px solid var(--sehr-leise); background: transparent; }
.graph-tipp { margin-left: auto; color: var(--sehr-leise); }
@media (max-width: 700px) { #notiz-graph { height: 340px; } .graph-tipp { margin-left: 0; } }
.pool-bereich { margin: 0; border-bottom: 1px solid var(--linie); }
.pool-bereich:last-of-type { border-bottom: 0; }
.pool-bereich > summary { padding: 10px 0; }
.pool-bereich[open] > .liste { margin: 0 0 8px; }
.pool-karte { margin: 0; }
.pool-karte > summary { padding: 0; }
.pool-karte > summary h2 { display: flex; flex: 1; margin: 0; }
.pool-karte[open] > summary h2 { margin-bottom: 6px; }

.aufgabe-zeile.weg { opacity: 0; max-height: 0; overflow: hidden; border: 0; transition: opacity .3s, max-height .3s .2s; }

/* ---------- Chat ---------- */
.chat-karte { display: flex; flex-direction: column; padding: 0; height: calc(100vh - 230px); min-height: 420px; }
.chat-verlauf { flex: 1; overflow-y: auto; padding: 18px; display: flex; flex-direction: column; gap: 10px; }
.chat-blase { max-width: 78%; padding: 9px 13px 6px; border-radius: 16px; font-size: 14.5px; line-height: 1.45; overflow-wrap: anywhere; }
.chat-blase.alex { align-self: flex-start; background: var(--flaeche-2); border-bottom-left-radius: 5px; }
.chat-blase.ich { align-self: flex-end; background: var(--akzent); color: #fff; border-bottom-right-radius: 5px; white-space: pre-wrap; }
.chat-blase .md > *:last-child { margin-bottom: 0; }
.chat-zeit { display: block; font-size: 11px; opacity: .6; margin-top: 3px; text-align: right; }
.chat-takt { align-self: center; font-size: 12px; color: var(--sehr-leise); padding: 4px 10px; }
.chat-eingabe { display: flex; gap: 10px; padding: 12px; border-top: 1px solid var(--linie); align-items: flex-end; }
.chat-eingabe textarea { flex: 1; resize: none; font: inherit; font-size: 15px; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--linie); background: var(--bg); color: var(--text); max-height: 160px; }
.chat-eingabe button { width: 44px; height: 44px; border-radius: 12px; border: 0; background: var(--akzent); color: #fff; font-size: 18px; cursor: pointer; }
.chat-eingabe button:disabled { opacity: .5; cursor: default; }
.punkte i { display: inline-block; width: 6px; height: 6px; margin-right: 4px; border-radius: 50%; background: var(--leise); animation: punkt 1s infinite; }
.punkte i:nth-child(2) { animation-delay: .15s; } .punkte i:nth-child(3) { animation-delay: .3s; }
@keyframes punkt { 0%, 100% { opacity: .3; } 50% { opacity: 1; } }
@media (max-width: 700px) { .chat-karte { height: calc(100vh - 190px); } .chat-blase { max-width: 88%; } }

/* ---------- Bereiche: Alex / Coach ---------- */
.marke-zeile { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.wechsel { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; border: 1px solid var(--linie); color: var(--leise); }
.wechsel svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.wechsel:hover { color: var(--akzent); border-color: var(--akzent); }
body.bereich-coach { --akzent: #2fb36d; --akzent-weich: rgba(47, 179, 109, 0.15); }

/* ---------- Coach: ESPN-Tabellen ---------- */
.tabelle-wrap { overflow-x: auto; }
.ffl-tabelle { width: 100%; border-collapse: collapse; font-size: 14px; }
.ffl-tabelle th { text-align: left; font-size: 11.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--leise); font-weight: 600; padding: 6px 8px; border-bottom: 1px solid var(--linie); }
.ffl-tabelle td { padding: 8px; border-bottom: 1px solid var(--linie); vertical-align: middle; }
.ffl-tabelle tr.bank td { opacity: .7; }
.ffl-tabelle tr.verletzt td { opacity: .45; }
.ffl-tabelle tr.ich td { background: var(--akzent-weich); }
.zahl-r { text-align: right !important; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ffl-slot { font-weight: 700; color: var(--akzent); width: 56px; }
.ffl-meta { color: var(--leise); font-size: 12.5px; }
.ffl-pkt { font-weight: 700; }
.ffl-status { display: inline-block; font-size: 11px; font-weight: 700; padding: 1px 6px; border-radius: 999px; background: #c0392b22; color: #e0604f; }
.ffl-duell { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; text-align: center; gap: 12px; }
.ffl-duell > div { display: flex; flex-direction: column; gap: 4px; }
.ffl-name { font-weight: 600; }
.ffl-score { font-size: 40px; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--akzent); }
.ffl-vs { color: var(--sehr-leise); font-weight: 700; }
.ffl-filter { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.ffl-filter a { padding: 6px 12px; border-radius: 999px; border: 1px solid var(--linie); color: var(--text); text-decoration: none; font-size: 13.5px; }
.ffl-filter a.aktiv { background: var(--akzent); border-color: var(--akzent); color: #fff; }

/* ---------- Team-Menue (links oben) ---------- */
.team-menue { position: relative; }
.team-menue > summary { list-style: none; cursor: pointer; }
.team-menue > summary::-webkit-details-marker { display: none; }
.team-menue[open] > summary { color: var(--akzent); border-color: var(--akzent); }
.team-liste { position: fixed; top: 60px; left: 12px; z-index: 1000; max-width: calc(100vw - 24px); min-width: 230px; padding: 8px; border-radius: 14px;
  background: var(--flaeche, var(--hg)); border: 1px solid var(--linie); box-shadow: 0 12px 32px #0006; }
.team-titel { margin: 4px 10px 8px; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--leise); }
.team-eintrag { display: flex; align-items: center; gap: 12px; padding: 9px 10px; border-radius: 10px; color: var(--text); text-decoration: none; }
.team-eintrag:hover { background: var(--akzent-weich); }
.team-eintrag.aktiv { background: var(--akzent-weich); }
.team-eintrag b { display: block; font-weight: 600; }
.team-eintrag small { color: var(--leise); font-size: 12.5px; }
.team-eintrag .punkt { width: 10px; height: 10px; border-radius: 50%; flex: none; }

/* ---------- Testseite: grafische Startseite ---------- */
.testhinweis { font-size: 12.5px; color: var(--leise); margin: 0 0 10px; }
.testhinweis a { color: var(--akzent); }
.hn-kopf h1 { font-family: var(--serif); font-size: 34px; font-weight: 600; margin: 0; line-height: 1.15; }
.hn-kopf .unterzeile { margin: 4px 0 18px; color: var(--leise); }
.ring-spur { fill: none; stroke: var(--linie); }
.ring-wert { fill: none; stroke-linecap: round; transform: rotate(-90deg); transform-origin: 50% 50%; }
.ring-box { position: relative; display: inline-grid; place-items: center; }
.ring-box > svg { grid-area: 1 / 1; }
.hn-ringe { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 18px; }
.hn-ring { background: var(--flaeche); border: 1px solid var(--linie); border-radius: var(--radius); padding: 14px 6px 12px;
  display: flex; flex-direction: column; align-items: center; gap: 6px; cursor: pointer; }
.hn-ring:hover { border-color: var(--sehr-leise); }
.hn-ring .ring-box svg { width: 72px; height: 72px; }
.ring-zahl { grid-area: 1 / 1; font-weight: 600; font-size: 18px; font-variant-numeric: tabular-nums; }
.ring-zahl small { font-size: 12px; color: var(--leise); font-weight: 500; }
.ring-label { font-size: 13px; color: var(--leise); }
.hn-tag, .hn-chat, .hn-woche, .hn-detail { margin-bottom: 18px; }
.hn-ganztags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.hn-ganztags span { font-size: 12.5px; padding: 3px 10px; border-radius: 999px; background: var(--akzent-weich); color: var(--akzent); }
.hn-leiste-wrap { overflow-x: auto; margin: 0 -4px; padding: 10px 4px 0; scrollbar-width: none; }
.hn-leiste-wrap::-webkit-scrollbar { display: none; }
.hn-leiste { position: relative; min-width: 900px; height: calc(var(--spuren) * 40px + 26px); margin: 0 0 4px;
  background: repeating-linear-gradient(90deg, transparent 0 calc(100% / 17 - 1px), var(--linie) calc(100% / 17 - 1px) calc(100% / 17)); border-radius: 8px; }
.hn-stunde { position: absolute; bottom: 0; transform: translateX(-50%); font-size: 11px; color: var(--sehr-leise); }
.hn-stunde:first-child { transform: none; }
.hn-balken { position: absolute; top: calc(var(--spur) * 40px); height: 34px; border-radius: 7px; padding: 0 7px; overflow: hidden;
  display: flex; align-items: center; font-size: 13px; font-weight: 500; white-space: nowrap; min-width: 8px; }
.hn-balken span { overflow: hidden; text-overflow: ellipsis; }
.hn-balken.termin { background: var(--akzent); color: #1a0d07; }
.hn-balken.plan { background: var(--flaeche-2); border: 1px solid var(--sehr-leise); color: var(--text); }
.hn-balken.plan-ja { background: var(--gut-weich); border: 1px solid var(--gut); color: var(--gut); }
.hn-balken.plan-nein { background: transparent; border: 1px dashed var(--sehr-leise); color: var(--sehr-leise); text-decoration: line-through; }
.hn-jetzt { position: absolute; top: -4px; bottom: 16px; width: 2px; background: #ff4d4d; border-radius: 2px; }
.hn-jetzt::before { content: ''; position: absolute; top: -3px; left: -3px; width: 8px; height: 8px; border-radius: 50%; background: #ff4d4d; }
.hn-legende { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 12px; color: var(--leise); margin: 8px 0 0; align-items: center; }
.hn-legende i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: -8px; }
.hn-legende i.termin { background: var(--akzent); } .hn-legende i.plan { background: var(--flaeche-2); border: 1px solid var(--sehr-leise); }
.hn-legende i.plan-ja { background: var(--gut); }
.hn-chat-kopf { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 10px; }
.hn-chat-kopf .punkt { width: 10px; height: 10px; border-radius: 50%; }
.hn-chip { font-size: 12px; padding: 2px 9px; border-radius: 999px; border: 1px solid var(--linie); color: var(--leise); }
.hn-verlauf { max-height: 260px; }
.hn-bereiche { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; margin-bottom: 18px; }
.hn-bereich { display: flex; flex-direction: column; gap: 4px; padding: 12px 14px; border-radius: var(--radius); text-decoration: none;
  background: var(--flaeche); border: 1px solid var(--linie); border-top: 3px solid var(--farbe); color: var(--text); }
.hn-bereich-name { font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--farbe); }
.hn-bereich p { margin: 0; font-size: 13.5px; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.hn-bereich p.leise { color: var(--sehr-leise); }
.hn-bereich small { color: var(--sehr-leise); font-size: 11.5px; margin-top: auto; }
.hn-tage { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; text-align: center; }
.hn-wtag { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 6px 0; border-radius: 10px; }
.hn-wtag .wt { font-size: 12px; color: var(--leise); }
.hn-wtag.ist-heute { background: var(--flaeche-2); }
.hn-wtag.ist-heute .wt { color: var(--text); font-weight: 600; }
.hn-wtag.zukunft { opacity: .35; }
.ring-box.klein svg { width: 34px; height: 34px; }
.hn-jbalken { width: 70%; height: 4px; border-radius: 2px; background: var(--linie); overflow: hidden; }
.hn-jbalken i { display: block; height: 100%; background: var(--akzent); }
.hn-detail > summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; }
.hn-detail > summary::-webkit-details-marker { display: none; }
.hn-detail > summary h2 { margin: 0; }
.hn-detail > summary::after { content: '›'; font-size: 22px; color: var(--leise); transition: transform .2s; }
.hn-detail[open] > summary::after { transform: rotate(90deg); }
.hn-detail[open] > summary { margin-bottom: 12px; }
.hn-bausteine { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.hn-bausteine span { font-size: 13px; padding: 4px 10px; border-radius: 999px; border: 1px solid var(--linie); color: var(--sehr-leise); }
.hn-bausteine span.fertig { border-color: var(--akzent); color: var(--akzent); background: var(--akzent-weich); }
.hn-chat-alle { margin-left: auto; order: 9; font-size: 12.5px; color: var(--leise); text-decoration: none; }
.hn-chat-alle:hover { color: var(--akzent); }

/* ---------- Aufgaben mit Tag (seit 04.10.) ---------- */
.aufgabe-zeile { gap: 6px; }
.einplan-knopf { position: relative; overflow: hidden; }
.tag-waehler { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%; }
.tag-waehler::-webkit-calendar-picker-indicator { position: absolute; inset: 0; width: 100%; height: 100%; cursor: pointer; }
.unterueberschrift.ueberfaellig { color: #e0604f; }
.mr-aufgabe { background: transparent !important; border: 1px dashed var(--sehr-leise); color: var(--text); }
.mr-aufgabe.erledigt { color: var(--sehr-leise); text-decoration: line-through; border-style: solid; border-color: var(--linie); }
.kal-aufgabe .haken-zeile { padding: 0; }
.hn-aufgaben-heute { margin: 0 0 12px; }
.team-liste[hidden] { display: none; }
.team-menue .wechsel[aria-expanded="true"] { color: var(--akzent); border-color: var(--akzent); }
.zentrale-liste { display: flex; flex-direction: column; gap: 4px; max-width: 420px; }
.zentrale-liste .team-eintrag { padding: 14px 12px; }
.zentrale-liste .team-eintrag .punkt { width: 14px; height: 14px; }

/* ---------- Coach: Matchup Position gegen Position ---------- */
.ffl-duelle { margin-top: 20px; padding: 14px 10px; }
.fd-kopf { display: grid; grid-template-columns: 1fr 44px 1fr; font-size: 12px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--leise); padding: 0 6px 8px; border-bottom: 1px solid var(--linie); }
.fd-kopf span:last-child { text-align: right; }
.fd-zeile { display: grid; grid-template-columns: minmax(0, 1fr) 46px 38px 46px minmax(0, 1fr); align-items: center; gap: 4px; padding: 9px 4px; border-bottom: 1px solid var(--linie); }
.fd-spieler { min-width: 0; display: flex; flex-direction: column; }
.fd-spieler b { font-size: 13.5px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fd-spieler small { font-size: 11.5px; color: var(--leise); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fd-spieler.rechts { text-align: right; }
.fd-pkt { text-align: center; font-weight: 700; font-size: 16px; font-variant-numeric: tabular-nums; color: var(--text); display: flex; flex-direction: column; line-height: 1.15; }
.fd-pkt small { font-size: 10.5px; font-weight: 500; color: var(--sehr-leise); }
.fd-pkt.vorn { color: var(--akzent); }
.fd-slot { text-align: center; font-size: 11px; font-weight: 700; color: var(--sehr-leise); }
.fd-legende { margin: 10px 4px 0; }

/* ================= Coach 2.0 (08.10.): Noten-Ringe, Spielerkarten, Coach-Radar ================= */
body.bereich-coach { --n-top: #2fd67b; --n-gut: #a8d94c; --n-ok: #f0b93a; --n-mau: #ef6f53; --n-null: #4a4d55; }
.n-top { --f: var(--n-top); } .n-gut { --f: var(--n-gut); } .n-ok { --f: var(--n-ok); } .n-mau { --f: var(--n-mau); } .n-null { --f: var(--n-null); }

.note-ring { --g: 50px; width: var(--g); height: var(--g); border-radius: 50%; flex-shrink: 0; display: grid; place-items: center;
  background: conic-gradient(var(--f) calc(var(--w) * 1%), rgba(255,255,255,.07) 0); position: relative; }
.note-ring::before { content: ''; position: absolute; inset: 4px; border-radius: 50%; background: var(--flaeche); }
.note-ring span { position: relative; font-weight: 700; font-size: 17px; font-variant-numeric: tabular-nums; color: var(--f); letter-spacing: -.02em; }
.note-ring.n-null span { color: var(--sehr-leise); }
.note-ring.gross { --g: 84px; }
.note-ring.gross::before { inset: 6px; background: #121a16; }
.note-ring.gross span { font-size: 30px; }

/* Kopf mit Spielfeld-Linien */
.coach-held { position: relative; overflow: hidden; display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap;
  padding: 26px 28px; margin-bottom: 26px; border-radius: 20px; border: 1px solid rgba(47,179,109,.28);
  background:
    repeating-linear-gradient(90deg, transparent 0 58px, rgba(255,255,255,.035) 58px 60px),
    radial-gradient(120% 140% at 0% 0%, rgba(47,179,109,.30), transparent 55%),
    linear-gradient(135deg, #12201a, #0f1412 70%); }
.coach-held::after { content: '🏈'; position: absolute; right: -14px; bottom: -34px; font-size: 150px; opacity: .06; transform: rotate(-18deg); pointer-events: none; }
.coach-held .oberzeile { font-size: 12.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--akzent); font-weight: 600; margin: 0 0 6px; }
.coach-held h1 { font-family: var(--serif); font-weight: 600; font-size: clamp(30px, 5vw, 46px); line-height: 1.05; margin: 0; }
.held-bilanz { margin: 10px 0 0; color: var(--leise); font-size: 14px; }
.held-bilanz span { display: inline-block; font-weight: 700; font-size: 15px; color: var(--text); background: rgba(255,255,255,.08); border-radius: 999px; padding: 3px 12px; margin-right: 6px; font-variant-numeric: tabular-nums; }
.held-werte { display: flex; gap: 14px; align-items: stretch; flex-wrap: wrap; position: relative; z-index: 1; }
.held-wert { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; min-width: 104px; padding: 12px 14px;
  background: rgba(10,14,12,.55); border: 1px solid rgba(255,255,255,.07); border-radius: 14px; backdrop-filter: blur(4px); }
.held-wert small { font-size: 11.5px; color: var(--leise); }
.held-wert.text { align-items: flex-start; min-width: 150px; }
.held-wert.text em { font-style: normal; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; color: var(--n-top); }
.held-wert.text.baustelle em { color: var(--n-ok); }
.held-wert.text b { font-size: 15.5px; line-height: 1.2; }

.coach-h { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; font-family: var(--serif); font-size: 24px; font-weight: 600; margin: 30px 0 12px; }
.coach-h span { font-family: var(--sans); font-size: 12.5px; font-weight: 500; color: var(--sehr-leise); }

/* Coach-Radar: Wechsel-Vorschlaege */
.zuege { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 12px; }
.zug { position: relative; padding: 14px 16px 15px; border-radius: 14px; background: linear-gradient(160deg, rgba(47,179,109,.13), var(--flaeche) 60%); border: 1px solid rgba(47,179,109,.25); }
.zug-art { font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; color: var(--akzent); }
.zug-paar { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: center; gap: 10px; margin-top: 8px; padding-right: 54px; }
.zug-paar > div:not(.zug-pfeil) { display: flex; flex-direction: column; min-width: 0; gap: 2px; align-items: flex-start; }
.zug-paar small { font-size: 11px; color: var(--sehr-leise); }
.zug-paar b { font-size: 14.5px; line-height: 1.2; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.zug-raus b { color: var(--leise); font-weight: 600; }
.zug-pfeil { color: var(--akzent); font-size: 20px; font-weight: 700; }
.pille { font-style: normal; font-size: 11.5px; font-weight: 700; font-variant-numeric: tabular-nums; padding: 1px 8px; border-radius: 999px; color: var(--f); background: color-mix(in srgb, var(--f) 16%, transparent); }
.zug-plus { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); font-size: 24px; font-weight: 800; letter-spacing: -.03em; color: var(--n-top); font-variant-numeric: tabular-nums; }

/* Spielerkarten */
.sp-liste { display: grid; gap: 8px; }
.sp { display: grid; grid-template-columns: 50px minmax(0, 1fr) auto; column-gap: 14px; row-gap: 10px; align-items: center;
  padding: 13px 16px; background: var(--flaeche); border: 1px solid var(--linie); border-radius: 14px; transition: border-color .15s; }
.sp:hover { border-color: #34343b; }
.sp-bank { background: transparent; }
.sp-bank .note-ring::before { background: var(--bg); }
.sp-aus { opacity: .5; }
.sp-haupt { min-width: 0; }
.sp-name { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.sp-name b { font-size: 15.5px; font-weight: 600; }
.sp-slot { font-size: 10.5px; font-weight: 800; letter-spacing: .06em; color: var(--akzent); background: var(--akzent-weich); padding: 2px 7px; border-radius: 6px; }
.sp-chip { font-size: 10.5px; font-weight: 700; padding: 1px 7px; border-radius: 999px; background: var(--flaeche-2); color: var(--leise); border: 1px solid var(--linie); }
.sp-chip.warn { color: var(--n-ok); border-color: transparent; background: rgba(240,185,58,.13); }
.sp-chip.news { color: #7db7ff; border-color: transparent; background: rgba(125,183,255,.13); }
.sp-chip.hoch { color: var(--n-top); border-color: transparent; background: rgba(47,214,123,.13); }
.sp-meta { font-size: 12.5px; color: var(--leise); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sp-meta b { color: var(--text); font-weight: 600; }
.sp-fakten { display: flex; gap: 6px 14px; flex-wrap: wrap; margin-top: 5px; font-size: 12px; color: var(--sehr-leise); }
.sp-fakten b { color: var(--leise); font-weight: 600; font-variant-numeric: tabular-nums; }
.sp-zahl { display: flex; flex-direction: column; align-items: flex-end; line-height: 1.1; }
.sp-zahl b { font-size: 21px; font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.sp-zahl b.live, .sp-zahl b.plus { color: var(--n-top); }
.sp-zahl b.neutral { color: var(--sehr-leise); }
.sp-zahl small { font-size: 10.5px; color: var(--sehr-leise); margin-top: 3px; text-align: right; }
.sp-balken { grid-column: 2 / -1; display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.bk span { display: block; font-size: 9.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--sehr-leise); font-weight: 600; margin-bottom: 4px; }
.bk i { display: block; height: 4px; border-radius: 4px; background: rgba(255,255,255,.07); overflow: hidden; }
.bk u { display: block; height: 100%; border-radius: 4px; background: var(--f); }
.coach-legende { margin: 22px 0 0; font-size: 12.5px; color: var(--sehr-leise); line-height: 1.6; }
.coach-legende b { color: var(--leise); }

/* Matchup-Kopf */
.duell-held { padding: 24px 22px 20px; margin-bottom: 20px; border-radius: 20px; text-align: center; border: 1px solid rgba(47,179,109,.28);
  background: repeating-linear-gradient(90deg, transparent 0 58px, rgba(255,255,255,.03) 58px 60px), radial-gradient(90% 120% at 50% 0%, rgba(47,179,109,.22), transparent 60%), #101512; }
.duell-held .oberzeile { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--akzent); font-weight: 600; margin: 0 0 12px; }
.duell-reihe { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 12px; }
.duell-team { display: flex; flex-direction: column; gap: 2px; }
.duell-team .ffl-score { font-size: clamp(38px, 9vw, 58px); line-height: 1.05; color: var(--leise); letter-spacing: -.03em; }
.duell-team.vorn .ffl-score { color: var(--n-top); }
.duell-balken { height: 8px; border-radius: 8px; background: rgba(239,111,83,.55); overflow: hidden; margin: 18px auto 10px; max-width: 520px; }
.duell-balken i { display: block; height: 100%; background: var(--n-top); border-right: 2px solid #101512; }
.duell-text { margin: 0; font-size: 13.5px; color: var(--leise); }
.duell-text b { color: var(--text); }

/* Saison-Tabelle */
.rang-liste { display: grid; }
.rang { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto 84px; align-items: center; gap: 12px; padding: 12px 8px; border-bottom: 1px solid var(--linie); border-radius: 10px; }
.rang.ich { background: var(--akzent-weich); border-bottom-color: transparent; }
.rang.schnitt { border-bottom: 2px dashed rgba(47,179,109,.5); border-radius: 10px 10px 0 0; }
.rang-nr { font-family: var(--serif); font-size: 24px; font-weight: 600; color: var(--sehr-leise); text-align: center; }
.rang.playoff .rang-nr { color: var(--akzent); }
.rang-team b { font-size: 15px; margin-right: 6px; }
.rang-balken { height: 4px; border-radius: 4px; background: rgba(255,255,255,.06); margin-top: 7px; overflow: hidden; }
.rang-balken i { display: block; height: 100%; border-radius: 4px; background: var(--sehr-leise); }
.rang.playoff .rang-balken i { background: var(--akzent); }
.rang-bilanz { font-weight: 700; font-size: 16px; font-variant-numeric: tabular-nums; }
.rang-pkt { text-align: right; font-weight: 600; font-variant-numeric: tabular-nums; display: flex; flex-direction: column; line-height: 1.2; }
.rang-pkt small { font-size: 11px; font-weight: 400; color: var(--sehr-leise); }

@media (max-width: 620px) {
  .coach-held { padding: 20px 18px; }
  .held-werte { width: 100%; }
  .held-wert { flex: 1; min-width: 0; padding: 10px; }
  .held-wert.text { min-width: 0; }
  .held-wert.text b { font-size: 13.5px; }
  .note-ring.gross { --g: 64px; } .note-ring.gross span { font-size: 23px; }
  .sp { grid-template-columns: 44px minmax(0, 1fr) auto; column-gap: 11px; padding: 12px; }
  .note-ring { --g: 44px; } .note-ring span { font-size: 15px; }
  .sp-balken { grid-column: 1 / -1; gap: 8px; }
  .sp-zahl b { font-size: 18px; }
  .sp-zahl small { max-width: 64px; }
  .rang { grid-template-columns: 24px minmax(0, 1fr) auto 66px; gap: 9px; }
}

.zug-drop { margin: 12px 0 0; padding-top: 10px; border-top: 1px dashed rgba(255,255,255,.1); font-size: 13px; line-height: 1.45; }
.zug-drop em { font-style: normal; font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; color: var(--n-mau); margin-right: 4px; }
.zug-drop small { display: block; font-size: 11.5px; color: var(--sehr-leise); }
.zug-drop .zug-achtung { color: var(--n-ok); margin-top: 3px; }
.zug-plus { top: 46px; transform: none; }

.zug-drop .zug-alt { margin-top: 5px; color: var(--leise); }
.zug-drop .zug-alt b { color: var(--text); font-weight: 600; }
.zug-drop .zug-alt.besser { color: var(--n-top); }

/* Matchup mit Noten */
.duell-team { align-items: center; }
.duell-team .note-ring.gross { --g: 72px; margin-bottom: 2px; }
.duell-team .note-ring.gross::before { background: #101512; }
.duell-team .note-ring.gross span { font-size: 26px; }
.duell-ringtext { font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--sehr-leise); font-weight: 600; margin-bottom: 8px; }
.fd-spieler small .pille { font-size: 10.5px; padding: 0 6px; border: 1px solid transparent; }
.fd-spieler small .pille.hoch { border-color: var(--f); }
.fd-legende b { color: var(--text); }

.fd-spieler small.fd-zeile2 { display: flex; align-items: center; gap: 5px; overflow: visible; }
.fd-spieler small.fd-zeile2 > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fd-spieler small.fd-zeile2 .pille { flex-shrink: 0; }
.fd-spieler.rechts small.fd-zeile2 { flex-direction: row-reverse; }
.duell-reihe { align-items: start; }
.duell-reihe .ffl-vs { align-self: center; }
.duell-team .ffl-name { min-height: 2.9em; display: flex; align-items: center; text-align: center; line-height: 1.3; }

/* Saison: Playoff-Chance */
.rang { grid-template-columns: 30px minmax(0, 1fr) auto auto 84px; }
.rang-chance { display: flex; flex-direction: column; align-items: center; gap: 3px; }
.rang-chance .note-ring { --g: 46px; } .rang-chance .note-ring span { font-size: 15px; }
.rang.ich .rang-chance .note-ring::before { background: #17261f; }
.rang-chance small { font-size: 9.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--sehr-leise); font-weight: 600; }
.rang-bilanz { display: flex; flex-direction: column; align-items: flex-end; line-height: 1.2; min-width: 58px; }
.rang-bilanz small { font-size: 10.5px; font-weight: 400; color: var(--sehr-leise); white-space: nowrap; }
@media (max-width: 620px) {
  .rang { grid-template-columns: 22px minmax(0, 1fr) auto auto 58px; gap: 8px; }
  .rang-chance .note-ring { --g: 40px; } .rang-chance .note-ring span { font-size: 13.5px; }
  .rang-bilanz small { display: none; }
  .rang-team b { font-size: 14px; }
}

.rang-chance .note-ring span em { font-style: normal; font-size: .62em; font-weight: 600; margin-left: 1px; opacity: .8; }
.rang-chance { min-width: 54px; }
@media (max-width: 620px) {
  .rang { grid-template-columns: 20px minmax(0, 1fr) 50px 34px 50px; gap: 7px; padding: 12px 4px; }
  .rang-chance { min-width: 0; }
  .rang-pkt small { display: none; }
  .rang-pkt { font-size: 13.5px; }
  .rang-bilanz { min-width: 0; font-size: 14.5px; }
  .rang-team b { display: block; margin: 0; line-height: 1.25; }
  .rang-team .sp-chip { display: inline-block; margin-top: 3px; }
}

/* ================= Coach: Ranglisten ================= */
.rl { border: 1px solid var(--linie); border-radius: 14px; background: var(--flaeche); margin-bottom: 10px; overflow: hidden; }
.rl-kopf { width: 100%; display: grid; grid-template-columns: 48px minmax(0, 1fr) 24px; align-items: center; gap: 12px; padding: 14px 16px; background: none; border: 0; color: inherit; font: inherit; text-align: left; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.rl-kopf:hover { background: rgba(255,255,255,.02); }
.rl-pos { font-size: 12px; font-weight: 800; letter-spacing: .06em; color: var(--akzent); background: var(--akzent-weich); border-radius: 8px; padding: 6px 0; text-align: center; }
.rl-titel b { display: block; font-family: var(--serif); font-size: 20px; font-weight: 600; line-height: 1.15; }
.rl-titel small { display: block; font-size: 12px; color: var(--sehr-leise); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rl-pfeil { font-size: 20px; color: var(--leise); transition: transform .2s; text-align: center; }
.rl.offen > .rl-kopf .rl-pfeil { transform: rotate(180deg); }
.rl-liste { display: none; border-top: 1px solid var(--linie); padding: 4px 8px 8px; }
.rl.offen > .rl-liste { display: block; }
.rl-zeile { display: grid; grid-template-columns: 28px minmax(0, 1fr) minmax(0, 150px) 52px 44px; align-items: center; gap: 10px; padding: 9px 8px; border-bottom: 1px solid var(--linie); border-radius: 8px; }
.rl-zeile:last-child { border-bottom: 0; }
.rl-zeile.mein { background: var(--akzent-weich); border-bottom-color: transparent; }
.rl-zeile.aus { opacity: .45; }
.rl-spalten { font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--sehr-leise); font-weight: 600; padding-top: 8px; padding-bottom: 6px; }
.rl-rang { font-family: var(--serif); font-size: 18px; font-weight: 600; color: var(--sehr-leise); text-align: center; }
.rl-zeile.mein .rl-rang { color: var(--akzent); }
.rl-name { min-width: 0; }
.rl-name b { font-size: 14.5px; font-weight: 600; }
.rl-name small { display: block; font-size: 11.5px; color: var(--leise); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rl-b { justify-self: start; max-width: 100%; font-size: 11.5px; font-weight: 600; padding: 2px 9px; border-radius: 999px; background: var(--flaeche-2); color: var(--leise); border: 1px solid var(--linie); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rl-b.du { color: var(--n-top); background: rgba(47,214,123,.14); border-color: transparent; }
.rl-b.frei { color: var(--text); background: transparent; border: 1px dashed var(--sehr-leise); }
.rl-proj { font-weight: 600; font-variant-numeric: tabular-nums; display: flex; flex-direction: column; align-items: flex-end; line-height: 1.15; }
.rl-proj b { color: var(--n-top); } .rl-proj small { font-size: 10px; font-weight: 400; color: var(--sehr-leise); }
.rl-zeile .pille { font-size: 13px; padding: 2px 9px; }
.rl-legende { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; font-size: 12px; color: var(--sehr-leise); margin: 0 0 14px; }
.rl-legende .rl-b { margin-left: 8px; } .rl-legende .rl-b:first-child { margin-left: 0; }
@media (max-width: 620px) {
  .rl-kopf { grid-template-columns: 42px minmax(0, 1fr) 20px; gap: 10px; padding: 13px 12px; }
  .rl-liste { padding: 2px 4px 6px; }
  .rl-zeile { grid-template-columns: 22px minmax(0, 1fr) 40px 40px; gap: 8px; padding: 9px 6px; }
  .rl-zeile > .rl-b { grid-column: 2; grid-row: 2; margin-top: -4px; font-size: 10.5px; padding: 1px 8px; }
  .rl-spalten span:nth-child(3) { display: none; }
  .rl-rang { font-size: 16px; }
}

/* ================= Coach: Matchup-Auswahl + Spielplan ================= */
.mu-leiste { display: flex; gap: 8px; overflow-x: auto; padding: 2px 2px 10px; margin: 0 -2px 8px; scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
.mu-leiste::-webkit-scrollbar { display: none; }
.mu-spiel { position: relative; flex: 0 0 auto; min-width: 168px; display: flex; flex-direction: column; gap: 4px; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--linie); background: var(--flaeche); color: var(--leise); text-decoration: none; scroll-snap-align: start; }
.mu-spiel:hover { border-color: #3a3a42; }
.mu-spiel.aktiv { border-color: var(--akzent); background: linear-gradient(160deg, rgba(47,179,109,.16), var(--flaeche) 70%); }
.mu-spiel span { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; }
.mu-spiel b { font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 120px; }
.mu-spiel i { font-style: normal; font-variant-numeric: tabular-nums; font-weight: 600; }
.mu-spiel span.vorn { color: var(--text); } .mu-spiel span.vorn b { font-weight: 700; } .mu-spiel span.vorn i { color: var(--n-top); }
.mu-spiel em { font-style: normal; font-size: 9.5px; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; color: var(--akzent); margin-top: 2px; }
.rl-pos.leise { color: var(--sehr-leise); background: var(--flaeche-2); }
.sp-woche .rl-titel b { font-size: 18px; display: flex; align-items: center; gap: 8px; }
.sp-woche .rl-titel .sp-chip { font-family: var(--sans); }
.erg { display: grid; grid-template-columns: minmax(0, 1fr) 54px 18px 54px minmax(0, 1fr); align-items: center; gap: 8px; padding: 10px 8px; border-bottom: 1px solid var(--linie); border-radius: 8px; color: var(--leise); text-decoration: none; font-size: 14px; }
.erg:last-child { border-bottom: 0; }
.erg.ich { background: var(--akzent-weich); border-bottom-color: transparent; color: var(--text); }
a.erg:hover { background: rgba(255,255,255,.04); }
.erg-team { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.erg-team.links { text-align: right; }
.erg-team.sieger { color: var(--text); font-weight: 700; }
.erg-pkt { text-align: center; font-variant-numeric: tabular-nums; font-weight: 600; }
.erg-pkt.sieger { color: var(--n-top); font-weight: 700; }
.erg-mitte { text-align: center; color: var(--sehr-leise); font-size: 12px; }
@media (max-width: 620px) {
  .erg { grid-template-columns: minmax(0, 1fr) 44px 12px 44px minmax(0, 1fr); gap: 5px; font-size: 13px; padding: 10px 4px; }
  .mu-spiel { min-width: 150px; }
}

/* ================= Coach: News ================= */
.ns-art { font-style: normal; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: var(--flaeche-2); color: var(--leise); white-space: nowrap; }
.ns-art.a-verletzung { color: #ff8a73; background: rgba(239,111,83,.14); }
.ns-art.a-wechsel { color: #7db7ff; background: rgba(125,183,255,.13); }
.ns-art.a-spiel { color: var(--n-gut); background: rgba(168,217,76,.12); }
.ns-art.a-fantasy { color: var(--n-top); background: rgba(47,214,123,.13); }
.ns-art.a-liga { color: #c9a8ff; background: rgba(201,168,255,.12); }
.ns-art.a-top { color: #1a1206; background: var(--n-ok); }
.ns-art.a-mein { color: #06170e; background: var(--n-top); text-transform: none; letter-spacing: 0; font-size: 11px; }
.news-streifen { display: block; margin: 0 0 14px; padding: 12px 14px; border-radius: 14px; border: 1px solid rgba(47,179,109,.25); background: linear-gradient(160deg, rgba(47,179,109,.12), var(--flaeche) 65%); text-decoration: none; color: var(--text); }
.ns-kopf { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 8px; }
.ns-kopf b { font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--akzent); }
.ns-kopf i { font-style: normal; font-size: 12px; color: var(--leise); }
.ns-zeile { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 9px; padding: 5px 0; font-size: 13.5px; }
.ns-zeile > span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ns-zeile small { font-size: 11px; color: var(--sehr-leise); white-space: nowrap; }
.nw-raster { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; }
.nw-liste { display: grid; gap: 8px; }
.nw { display: flex; flex-direction: column; gap: 6px; padding: 14px 16px; border-radius: 14px; border: 1px solid var(--linie); background: var(--flaeche); color: var(--text); text-decoration: none; transition: border-color .15s; }
.nw:hover { border-color: #3a3a42; }
.nw.gross { background: linear-gradient(165deg, rgba(47,179,109,.10), var(--flaeche) 55%); border-color: rgba(47,179,109,.22); padding: 16px 18px; }
.nw.mein { border-color: rgba(47,214,123,.55); }
.nw-kopf { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.nw-kopf small { margin-left: auto; font-size: 11.5px; color: var(--sehr-leise); }
.nw > b { font-size: 15.5px; font-weight: 600; line-height: 1.3; }
.nw.gross > b { font-family: var(--serif); font-size: 21px; line-height: 1.2; }
.nw-text { font-size: 13.5px; color: var(--leise); line-height: 1.5; }
.nw-fuss { font-size: 11.5px; color: var(--sehr-leise); margin-top: 2px; }

/* ================= Coach: rechte Leiste ================= */
.coach-leiste { width: 318px; flex-shrink: 0; position: sticky; top: 0; height: 100vh; overflow-y: auto; padding: 32px 18px 40px; border-left: 1px solid var(--linie); background: #0f0f12; scrollbar-width: thin; }
.cl-laedt { color: var(--sehr-leise); font-size: 13px; margin: 8px 4px; }
.cl-block { margin-bottom: 26px; }
.cl-block h3 { display: flex; justify-content: space-between; align-items: baseline; margin: 0 0 8px; padding: 0 4px 8px; border-bottom: 1px solid var(--linie); font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--akzent); font-weight: 700; }
.cl-block h3 a { display: flex; justify-content: space-between; align-items: baseline; width: 100%; color: inherit; text-decoration: none; }
.cl-block h3 i { font-style: normal; font-size: 11px; letter-spacing: 0; text-transform: none; font-weight: 500; color: var(--sehr-leise); }
.cl-news { display: block; padding: 8px 4px; border-radius: 8px; text-decoration: none; color: var(--text); }
.cl-news:hover { background: rgba(255,255,255,.04); }
.cl-news > span { display: flex; justify-content: space-between; align-items: center; margin-bottom: 4px; }
.cl-news small { font-size: 10.5px; color: var(--sehr-leise); }
.cl-news b { display: block; font-size: 13.5px; font-weight: 500; line-height: 1.35; }
.cl-zeile { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 6px 4px; border-radius: 8px; }
.cl-zeile.mein { background: var(--akzent-weich); }
.cl-zeile.schnitt { border-bottom: 1px dashed rgba(47,179,109,.5); border-radius: 8px 8px 0 0; }
.cl-nr { font-family: var(--serif); font-size: 15px; font-weight: 600; color: var(--sehr-leise); text-align: center; }
.cl-nr.playoff { color: var(--akzent); }
.cl-name { min-width: 0; }
.cl-name b { display: block; font-size: 13.5px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cl-name small { display: block; font-size: 11px; color: var(--sehr-leise); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cl-zahl { text-align: right; font-weight: 700; font-size: 14px; font-variant-numeric: tabular-nums; display: flex; flex-direction: column; line-height: 1.15; }
.cl-zahl.gut { color: var(--n-top); }
.cl-zahl small { font-size: 10px; font-weight: 400; color: var(--sehr-leise); }
.cl-leer { font-size: 13px; color: var(--sehr-leise); margin: 6px 4px; }
.cl-nfl { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 7px 4px; border-bottom: 1px solid var(--linie); }
.cl-nfl:last-child { border-bottom: 0; }
.cl-teams { display: grid; gap: 2px; }
.cl-teams > span { display: flex; justify-content: space-between; font-size: 13px; color: var(--leise); max-width: 110px; }
.cl-teams b { font-variant-numeric: tabular-nums; }
.cl-teams .sieger { color: var(--text); font-weight: 700; } .cl-teams .sieger b { color: var(--n-top); }
.cl-nfl small { font-size: 11px; color: var(--sehr-leise); white-space: nowrap; }
.cl-nfl.in small { color: var(--n-ok); font-weight: 600; }
.cl-nfl.pre .cl-teams > span { color: var(--text); }
/* Leiste nur auf Tablet und Desktop (Jonas 09.10.): am Handy ganz weg */
@media (min-width: 901px) and (max-width: 1239px) { .coach-leiste { width: 264px; padding: 28px 12px 40px; } }
@media (min-width: 700px) and (max-width: 900px) { .coach-leiste { width: auto; position: static; height: auto; overflow: visible; border-left: 0; border-top: 1px solid var(--linie); padding: 24px 16px 40px; columns: 2; column-gap: 28px; } .coach-leiste .cl-block { break-inside: avoid; } }
@media (max-width: 699px) { .coach-leiste { display: none; } }

/* Spieler, deren Spiel laeuft oder vorbei ist: Note war die Einschaetzung VOR dem Spiel -> zuruecknehmen, Punkte zaehlen */
.sp-gespielt .note-ring { opacity: .4; filter: grayscale(.7); }
.sp-gespielt .sp-balken, .sp-gespielt .sp-fakten { opacity: .45; }

/* ================= Coach: Playoff-Bilder ================= */
.rl-aussen > .rl-liste { padding: 10px 10px 4px; background: rgba(0,0,0,.18); }
.rl-aussen .rl-pos { font-size: 11px; }
.po-baum { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; align-items: stretch; }
.po-spiel { display: flex; flex-direction: column; gap: 6px; padding: 14px; border-radius: 14px; border: 1px solid var(--linie); background: var(--flaeche); }
.po-spiel.finale { border-style: dashed; background: transparent; justify-content: center; }
.po-titel { font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; color: var(--akzent); margin-bottom: 2px; }
.po-team { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 10px; background: var(--flaeche-2); }
.po-team.ich { background: var(--akzent-weich); outline: 1px solid rgba(47,179,109,.45); }
.po-team.leer { background: transparent; border: 1px dashed var(--linie); color: var(--sehr-leise); }
.po-team i { font-style: normal; font-family: var(--serif); font-size: 18px; font-weight: 600; color: var(--akzent); text-align: center; }
.po-team.leer i { color: var(--sehr-leise); }
.po-team b { font-size: 14.5px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.po-team.leer b { font-weight: 400; font-size: 13px; }
.po-team small { font-size: 11.5px; color: var(--leise); white-space: nowrap; font-variant-numeric: tabular-nums; }
.po-jagd { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 12px; }
.po-jagd .po-titel { margin: 0 4px 0 0; color: var(--sehr-leise); }
.po-chip { font-size: 13px; padding: 6px 12px; border-radius: 999px; border: 1px solid var(--linie); background: var(--flaeche); }
.po-chip.ich { background: var(--akzent-weich); border-color: rgba(47,179,109,.45); }
.po-chip i { font-style: normal; font-family: var(--serif); font-weight: 600; color: var(--sehr-leise); margin-right: 4px; }
.po-chip small { color: var(--leise); font-size: 11.5px; margin-left: 4px; }
.nfl-po { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.nfl-conf { padding: 18px 16px; }
.nfl-conf h2 { font-family: var(--serif); font-size: 26px; letter-spacing: 0; text-transform: none; color: var(--text); }
.nfl-zeile { display: grid; grid-template-columns: 26px minmax(0, 1fr) 34px 52px; align-items: center; gap: 10px; padding: 8px 6px; border-bottom: 1px solid var(--linie); border-radius: 8px; }
.nfl-platz { font-family: var(--serif); font-size: 18px; font-weight: 600; text-align: center; color: var(--akzent); }
.nfl-name b { display: block; font-size: 14.5px; font-weight: 600; }
.nfl-name small { display: block; font-size: 11px; color: var(--sehr-leise); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nfl-serie { font-size: 11.5px; font-weight: 700; text-align: center; border-radius: 6px; padding: 2px 0; }
.nfl-serie.s { color: var(--n-top); background: rgba(47,214,123,.12); } .nfl-serie.n { color: var(--n-mau); background: rgba(239,111,83,.12); }
.nfl-bilanz { text-align: right; font-weight: 700; font-variant-numeric: tabular-nums; display: flex; flex-direction: column; line-height: 1.15; }
.nfl-bilanz small { font-size: 10.5px; font-weight: 400; color: var(--sehr-leise); }
.nfl-zeile.r-freilos { background: linear-gradient(90deg, rgba(47,179,109,.20), transparent 80%); border-bottom-color: transparent; }
.nfl-zeile.r-jagd .nfl-platz, .nfl-zeile.r-raus .nfl-platz { color: var(--sehr-leise); }
.nfl-zeile.r-raus { opacity: .55; }
.nfl-trenner { font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; color: var(--sehr-leise); padding: 14px 6px 6px; border-top: 2px dashed rgba(47,179,109,.4); margin-top: 6px; }
.nfl-paar { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 8px; padding: 8px 6px; font-size: 13.5px; border-bottom: 1px solid var(--linie); }
.nfl-paar span:last-child { text-align: right; } .nfl-paar em { font-style: normal; font-size: 11px; color: var(--sehr-leise); }
.nfl-paar i { font-style: normal; font-family: var(--serif); font-weight: 600; color: var(--akzent); margin-right: 3px; }
@media (max-width: 760px) { .po-baum, .nfl-po { grid-template-columns: 1fr; } }
/* Playoff-Bilder: Spalten nach verfuegbarem Platz (mit der rechten Leiste ist der Inhalt am Tablet schmal) */
.nfl-po { grid-template-columns: repeat(auto-fit, minmax(330px, 1fr)); }
.po-baum { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
.nfl-name { min-width: 0; }
.nfl-name b { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ================= NFL-Turnierbaum ================= */
.tb-wrap { container-type: inline-size; margin-bottom: 6px; }
.tb { display: grid; gap: 14px; padding: 18px 16px; border-radius: 20px; border: 1px solid rgba(47,179,109,.28);
  background: repeating-linear-gradient(90deg, transparent 0 58px, rgba(255,255,255,.025) 58px 60px), radial-gradient(80% 100% at 50% 0%, rgba(47,179,109,.16), transparent 65%), #101512; }
.tb-conf { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; position: relative; padding-top: 22px; }
.tb-conf::before { content: 'AFC'; position: absolute; top: -4px; left: 2px; font-family: var(--serif); font-size: 20px; font-weight: 600; }
.tb-conf.nfc::before { content: 'NFC'; }
.tb-runde { display: flex; flex-direction: column; justify-content: space-around; gap: 8px; min-width: 0; }
.tb-runde h4, .tb-sb h4 { margin: 0 0 2px; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--akzent); font-weight: 700; text-align: center; }
.tb-spiel { position: relative; display: grid; gap: 3px; padding: 5px; border-radius: 11px; background: rgba(10,14,12,.7); border: 1px solid rgba(255,255,255,.08); }
.tb-spiel.frei { border-color: rgba(47,179,109,.5); }
.tb-marke { font-size: 9px; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; color: var(--n-top); padding: 1px 5px 0; }
.tb-team { display: grid; grid-template-columns: 16px minmax(0, 1fr) auto; align-items: center; gap: 6px; padding: 5px 7px; border-radius: 7px; background: var(--flaeche-2); }
.tb-team i { font-style: normal; font-family: var(--serif); font-size: 14px; font-weight: 600; color: var(--akzent); text-align: center; }
.tb-team b { font-size: 12.5px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tb-team small { font-size: 10.5px; color: var(--leise); font-variant-numeric: tabular-nums; }
.tb-team.offen { background: transparent; border: 1px dashed rgba(255,255,255,.12); }
.tb-team.offen i { color: var(--sehr-leise); } .tb-team.offen b { font-weight: 400; font-size: 11px; color: var(--sehr-leise); }
.tb-sb { display: flex; flex-direction: column; justify-content: center; gap: 4px; }
.tb-spiel.pokal { border-color: rgba(240,185,58,.55); background: linear-gradient(160deg, rgba(240,185,58,.14), rgba(10,14,12,.7) 70%); padding-top: 30px; }
.tb-pokal { position: absolute; top: 4px; left: 50%; transform: translateX(-50%); font-size: 18px; }
.tb-hinweis { margin: 10px 2px 0; }
/* breit: klassischer Baum - AFC von links, NFC von rechts, Super Bowl in der Mitte */
@container (min-width: 900px) {
  .tb { grid-template-columns: minmax(0, 3fr) minmax(0, 1.05fr) minmax(0, 3fr); align-items: stretch; }
  .tb-conf.nfc { direction: rtl; } .tb-conf.nfc > * { direction: ltr; }
  .tb-conf.nfc::before { left: auto; right: 2px; }
}
@container (max-width: 520px) {
  .tb { padding: 16px 10px; }
  .tb-conf { gap: 6px; }
  .tb-team { grid-template-columns: 13px minmax(0, 1fr); gap: 4px; padding: 5px; }
  .tb-team small { display: none; }
  .tb-team b { font-size: 11.5px; } .tb-team.offen b { font-size: 9.5px; white-space: normal; line-height: 1.15; }
}
/* Turnierbaum: Runden-Ueberschriften bleiben oben auf einer Linie, die Spiele verteilen sich darunter */
.tb-runde { justify-content: flex-start; }
.tb-runde .tb-spiel { margin-top: auto; margin-bottom: auto; }
.tb-runde h4 { min-height: 14px; }

/* Unser Liga-Turnierbaum (4 Teams): Halbfinale links und rechts, Finale in der Mitte */
.tb.liga .tb-team { padding: 8px 10px; grid-template-columns: 20px minmax(0, 1fr) auto; }
.tb.liga .tb-team i { font-size: 17px; } .tb.liga .tb-team b { font-size: 14px; } .tb.liga .tb-team small { font-size: 11.5px; }
.tb.liga .tb-team.offen b { font-size: 12.5px; }
.tb-team.ich { background: var(--akzent-weich); outline: 1px solid rgba(47,179,109,.5); }
@container (min-width: 720px) { .tb.liga { grid-template-columns: minmax(0, 1fr) minmax(0, .9fr) minmax(0, 1fr); align-items: center; } }
@container (max-width: 719px) { .tb.liga .tb-sb { order: 3; } }
@container (max-width: 520px) { .tb.liga .tb-team { grid-template-columns: 18px minmax(0, 1fr) auto; } .tb.liga .tb-team small { display: block; } .tb.liga .tb-team b { font-size: 13.5px; } .tb.liga .tb-team.offen b { font-size: 12px; } }
.rl-aussen { margin-top: 18px; }

/* ================= Team-Logos ================= */
img.lg { width: 18px; height: 18px; object-fit: contain; vertical-align: -4px; margin-right: 6px; border-radius: 4px; flex-shrink: 0; }
img.lg.rechts { margin: 0 0 0 6px; }
img.lg.mittel { width: 26px; height: 26px; vertical-align: -7px; margin-right: 9px; }
img.lg.gross { width: 54px; height: 54px; vertical-align: -12px; margin-right: 14px; border-radius: 10px; }
.duell-team .ffl-name { flex-direction: column; gap: 6px; }
.duell-team .ffl-name img.lg.mittel { width: 40px; height: 40px; margin: 0; }
.nfl-zeile { grid-template-columns: 26px 26px minmax(0, 1fr) 34px 52px; }
.nfl-zeile img.lg.mittel { margin: 0; vertical-align: middle; }
.tb-team img.lg { width: 16px; height: 16px; vertical-align: -3px; margin-right: 5px; }
.tb.liga .tb-team img.lg { width: 20px; height: 20px; vertical-align: -5px; margin-right: 7px; }
.rang-team b { display: inline-flex; align-items: center; }
.rang-team b img.lg { margin-right: 9px; }
.cl-teams > span > span { display: inline-flex; align-items: center; }
.mu-spiel b img.lg { width: 16px; height: 16px; vertical-align: -3px; margin-right: 5px; }
@media (max-width: 620px) { img.lg.gross { width: 42px; height: 42px; margin-right: 10px; } .rang-team b { display: flex; } }
/* NFL-Baum in der breiten 7-Spalten-Form: Bilanz weglassen (steht in der Setzliste), damit die Teamnamen ganz zu lesen sind */
@container (min-width: 900px) and (max-width: 1300px) {
  .tb:not(.liga) .tb-team { grid-template-columns: 14px minmax(0, 1fr); gap: 5px; padding: 5px 6px; }
  .tb:not(.liga) .tb-team small { display: none; }
  .tb:not(.liga) .tb-team b { font-size: 12px; }
}

/* ================= Coach: Spieler-Fenster ================= */
[data-spieler] { cursor: pointer; }
.fd-spieler[data-spieler]:hover b, .cl-zeile[data-spieler]:hover b, .rl-zeile[data-spieler]:hover .rl-name b { text-decoration: underline; text-decoration-color: var(--akzent); text-underline-offset: 3px; }
body.spf-offen { overflow: hidden; }
.spf { position: fixed; inset: 0; z-index: 60; background: rgba(4,6,5,.72); backdrop-filter: blur(3px); display: grid; place-items: center; padding: 24px; }
.spf[hidden] { display: none; }
.spf-blatt { position: relative; width: min(620px, 100%); max-height: min(88vh, 900px); overflow-y: auto; background: #131518; border: 1px solid rgba(47,179,109,.3); border-radius: 20px; padding: 22px 22px 26px; box-shadow: 0 30px 80px rgba(0,0,0,.6); scrollbar-width: thin; }
.spf-zu { position: sticky; top: 0; float: right; z-index: 2; width: 36px; height: 36px; margin: -6px -6px 0 8px; border-radius: 50%; border: 1px solid var(--linie); background: #1c1e22; color: var(--text); font-size: 22px; line-height: 1; cursor: pointer; }
.spf-laedt, .spf-fehler { color: var(--leise); padding: 30px 6px; text-align: center; }
.spf-kopf { display: flex; gap: 16px; align-items: center; }
.spf-bild { width: 112px; height: 82px; object-fit: cover; object-position: top; border-radius: 14px; background: radial-gradient(circle at 50% 30%, rgba(47,179,109,.25), #0e1512 75%); flex-shrink: 0; }
.spf-bild.logo { object-fit: contain; padding: 10px; }
.spf-wer { min-width: 0; }
.spf-wer h2 { font-family: var(--serif); font-size: 28px; font-weight: 600; line-height: 1.1; margin: 0 0 4px; }
.spf-wer p { margin: 0; font-size: 13.5px; color: var(--leise); display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.spf-wer p img.lg { margin-right: 0; }
.spf-marken { margin-top: 8px !important; }
.spf-woche { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 16px; margin-top: 18px; padding: 16px; border-radius: 16px; border: 1px solid rgba(47,179,109,.25);
  background: repeating-linear-gradient(90deg, transparent 0 58px, rgba(255,255,255,.025) 58px 60px), linear-gradient(135deg, #12201a, #0f1412 70%); }
.spf-woche .note-ring.gross { --g: 78px; } .spf-woche .note-ring.gross span { font-size: 28px; }
.spf-woche .note-ring.matt { opacity: .4; filter: grayscale(.7); }
.spf-spiel em { display: block; font-style: normal; font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; font-weight: 700; color: var(--akzent); }
.spf-spiel b { display: block; font-size: 19px; font-weight: 700; margin: 2px 0; } .spf-spiel b small { font-size: 13px; font-weight: 500; color: var(--leise); }
.spf-spiel > small { display: block; font-size: 12.5px; color: var(--leise); }
.spf-punkte { text-align: right; display: flex; flex-direction: column; line-height: 1.1; }
.spf-punkte b { font-size: 30px; font-weight: 800; letter-spacing: -.03em; font-variant-numeric: tabular-nums; } .spf-punkte b.live { color: var(--n-top); }
.spf-punkte small { font-size: 11px; color: var(--sehr-leise); margin-top: 3px; }
.spf-hinweis { font-size: 12.5px; color: var(--sehr-leise); margin: 8px 4px 0; }
.spf-h { display: flex; justify-content: space-between; align-items: baseline; font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--akzent); font-weight: 700; margin: 24px 2px 10px; }
.spf-h span { font-size: 11.5px; letter-spacing: 0; text-transform: none; font-weight: 500; color: var(--sehr-leise); }
.spf-gruende { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.spf-grund { padding: 12px 13px; border-radius: 12px; background: var(--flaeche); border: 1px solid var(--linie); }
.spf-g-kopf { display: flex; align-items: baseline; gap: 8px; }
.spf-g-kopf b { font-size: 13.5px; } .spf-g-kopf i { font-style: normal; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--f); }
.spf-g-kopf small { margin-left: auto; font-size: 10.5px; color: var(--sehr-leise); }
.spf-g-balken { display: block; height: 4px; border-radius: 4px; background: rgba(255,255,255,.07); overflow: hidden; margin: 7px 0 8px; }
.spf-g-balken u { display: block; height: 100%; background: var(--f); border-radius: 4px; }
.spf-grund p { margin: 0; font-size: 12.5px; line-height: 1.5; color: var(--leise); }
.spf-wochen { display: flex; gap: 8px; align-items: flex-end; padding: 12px 10px 8px; border-radius: 12px; background: var(--flaeche); border: 1px solid var(--linie); overflow-x: auto; }
.spf-w { flex: 1 0 34px; display: flex; flex-direction: column; align-items: center; gap: 5px; }
.spf-w b { font-size: 12.5px; font-variant-numeric: tabular-nums; }
.spf-w span { width: 100%; max-width: 38px; height: 70px; display: flex; align-items: flex-end; }
.spf-w span i { display: block; width: 100%; border-radius: 6px 6px 2px 2px; background: linear-gradient(180deg, var(--n-top), rgba(47,214,123,.35)); min-height: 2px; }
.spf-w.laeuft span i { background: linear-gradient(180deg, var(--n-ok), rgba(240,185,58,.35)); }
.spf-w.leer b { color: var(--sehr-leise); }
.spf-w small { font-size: 10.5px; color: var(--sehr-leise); }
.spf-naechste { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.spf-n { display: flex; flex-direction: column; gap: 4px; padding: 10px; border-radius: 12px; background: var(--flaeche); border: 1px solid var(--linie); border-top-width: 3px; }
.spf-n small { font-size: 10.5px; color: var(--sehr-leise); } .spf-n b { font-size: 13.5px; white-space: nowrap; } .spf-n i { font-style: normal; font-size: 11px; color: var(--leise); }
.spf-n.a-leicht { border-top-color: var(--n-top); } .spf-n.a-mittel { border-top-color: var(--n-ok); } .spf-n.a-schwer { border-top-color: var(--n-mau); }
.spf-n.bye b { color: var(--sehr-leise); font-weight: 500; }
.spf-news { display: grid; gap: 8px; }
.spf-meldung { padding: 12px 13px; border-radius: 12px; background: var(--flaeche); border: 1px solid var(--linie); }
.spf-meldung em { font-style: normal; font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; font-weight: 700; color: var(--sehr-leise); }
.spf-meldung p { margin: 4px 0 0; font-size: 13.5px; line-height: 1.55; }
@media (max-width: 699px) {
  .spf { padding: 0; place-items: end center; }
  .spf-blatt { width: 100%; max-height: 92vh; border-radius: 22px 22px 0 0; border-bottom: 0; padding: 18px 16px calc(26px + env(safe-area-inset-bottom, 0px)); animation: spf-hoch .22s ease-out; }
  .spf-bild { width: 88px; height: 66px; } .spf-wer h2 { font-size: 23px; }
  .spf-woche { gap: 12px; padding: 14px 12px; } .spf-woche .note-ring.gross { --g: 64px; } .spf-woche .note-ring.gross span { font-size: 23px; }
  .spf-punkte b { font-size: 25px; } .spf-spiel b { font-size: 17px; }
  .spf-gruende { grid-template-columns: 1fr; } .spf-naechste { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@keyframes spf-hoch { from { transform: translateY(40px); opacity: .4; } to { transform: none; opacity: 1; } }

/* ================= Umschalter Aktuell / Live ================= */
.tab-schalter { display: inline-flex; gap: 4px; padding: 4px; margin: -4px 0 12px; border-radius: 12px; background: var(--bg); border: 1px solid var(--linie); }
.tab-schalter button { display: flex; align-items: center; gap: 7px; padding: 8px 14px; border: 0; border-radius: 9px; background: none; color: var(--leise); font: inherit; font-weight: 600; font-size: 14px; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.tab-schalter button small { font-weight: 400; font-size: 11.5px; color: var(--sehr-leise); }
.tab-schalter button.aktiv { background: var(--akzent-weich); color: var(--text); }
.live-punkt { width: 8px; height: 8px; border-radius: 50%; background: var(--n-mau); box-shadow: 0 0 0 0 rgba(239,111,83,.6); animation: live-puls 1.8s infinite; }
@keyframes live-puls { 70% { box-shadow: 0 0 0 7px rgba(239,111,83,0); } 100% { box-shadow: 0 0 0 0 rgba(239,111,83,0); } }
.rang-live { display: flex; flex-direction: column; align-items: center; min-width: 54px; line-height: 1.2; }
.rang-live b { font-size: 13.5px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.rang-live small { font-size: 10px; color: var(--sehr-leise); white-space: nowrap; max-width: 110px; overflow: hidden; text-overflow: ellipsis; }
.rang-live.vorn b { color: var(--n-top); } .rang-live.hinten b { color: var(--n-mau); }
.sp-chip.runter { color: var(--n-mau); border-color: transparent; background: rgba(239,111,83,.13); }
.rang-liste[hidden] { display: none; }
@media (max-width: 620px) {
  .tab-schalter { display: flex; } .tab-schalter button { flex: 1; justify-content: center; flex-wrap: wrap; padding: 8px 6px; }
  .tab-schalter button small { width: 100%; text-align: center; }
  .rang-live { min-width: 0; } .rang-live b { font-size: 12px; } .rang-live small { max-width: 62px; font-size: 9px; }
}

/* Umschalter klein und rechts in der Ueberschrift (Jonas 11.10.: die grosse Fassung war ueberdimensioniert) */
.tab-karte h2 { align-items: center; }
.tab-schalter, .tab-karte h2 .tab-schalter { display: inline-flex; gap: 2px; padding: 2px; margin: 0; border-radius: 999px; background: var(--bg); border: 1px solid var(--linie); letter-spacing: 0; text-transform: none; }
.tab-schalter button, .tab-karte .tab-schalter button { flex: none; width: auto; padding: 4px 11px; border-radius: 999px; font-size: 12px; font-weight: 600; gap: 5px; }
.live-punkt { width: 6px; height: 6px; }

/* Liga-Gaeste: Ansichten ohne unsere Note */
.sp.sp-ohne-note { grid-template-columns: minmax(0, 1fr) auto; }
.rl-ohne-note .rl-zeile { grid-template-columns: 28px minmax(0, 1fr) minmax(0, 150px) 52px; }
.spf-woche.ohne-note { grid-template-columns: minmax(0, 1fr) auto; }
@media (max-width: 620px) { .rl-ohne-note .rl-zeile { grid-template-columns: 22px minmax(0, 1fr) 44px; } }

/* ================= Liga-Chat ================= */
.lc-karte .chat-verlauf { gap: 12px; }
.lc-leer { color: var(--sehr-leise); text-align: center; margin: auto; }
.lc-zeile { display: flex; gap: 9px; align-items: flex-end; max-width: 82%; }
.lc-zeile.ich { align-self: flex-end; }
.lc-logo { width: 30px; height: 30px; border-radius: 9px; object-fit: contain; flex-shrink: 0; background: var(--flaeche-2); }
.lc-blase { padding: 8px 13px 6px; border-radius: 16px; background: var(--flaeche-2); border-bottom-left-radius: 5px; font-size: 14.5px; line-height: 1.45; min-width: 0; }
.lc-zeile.ich .lc-blase { background: var(--akzent); color: #fff; border-radius: 16px; border-bottom-right-radius: 5px; }
.lc-name { display: block; font-size: 11.5px; font-weight: 700; color: var(--akzent); margin-bottom: 2px; }
.lc-text { white-space: pre-wrap; overflow-wrap: anywhere; }
.lc-weg { background: none; border: 0; padding: 0; font: inherit; color: inherit; text-decoration: underline; cursor: pointer; opacity: .8; }
.lc-zeile.bericht { max-width: 100%; align-self: stretch; }
.lc-zeile.bericht .lc-blase { flex: 1; background: linear-gradient(160deg, rgba(47,179,109,.14), var(--flaeche) 70%); border: 1px solid rgba(47,179,109,.3); color: var(--text); border-radius: 14px; }
@media (max-width: 700px) { .lc-zeile { max-width: 92%; } }

/* ================= Anmeldeseite der Liga (Gaeste) ================= */
.liga-login { background: repeating-linear-gradient(90deg, transparent 0 78px, rgba(255,255,255,.028) 78px 80px), radial-gradient(90% 70% at 50% 0%, rgba(47,179,109,.26), transparent 62%), #0b0f0d; }
.liga-login .login-karte { max-width: 400px; background: rgba(18,22,20,.92); border-color: rgba(47,179,109,.32); box-shadow: 0 30px 80px rgba(0,0,0,.5); position: relative; overflow: hidden; }
.liga-login .login-karte::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: linear-gradient(90deg, #2fb36d, #a8d94c); }
.liga-kopf { text-align: center; margin-bottom: 26px; }
.liga-ball { display: block; font-size: 40px; line-height: 1; margin-bottom: 10px; }
.liga-ober { margin: 0 0 2px; font-size: 11.5px; letter-spacing: .18em; text-transform: uppercase; font-weight: 700; color: var(--akzent); }
.liga-login .login-karte .marke { font-size: 46px; color: var(--text); margin-bottom: 6px; }
.liga-login .login-karte p.unter { margin: 0; font-size: 14px; }
.liga-login .knopf { color: #06170e; font-weight: 700; letter-spacing: .02em; }

/* ================= Matchup: Big Plays + Bank ================= */
.bp-karte { margin-bottom: 20px; }
.bp-liste { display: grid; gap: 8px; max-height: 460px; overflow-y: auto; scrollbar-width: thin; padding-right: 2px; }
.bp { padding: 10px 12px; border-radius: 12px; background: var(--flaeche-2); border-left: 3px solid var(--sehr-leise); }
.bp.bp-ich { border-left-color: var(--n-top); } .bp.bp-gegner { border-left-color: var(--n-mau); } .bp.bp-beide { border-left-color: var(--n-ok); }
.bp-kopf { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 8px; }
.bp-kopf b { font-size: 14.5px; } .bp.bp-td .bp-kopf b::before { content: '🏈 '; }
.bp-kopf small { margin-left: auto; font-size: 11px; color: var(--sehr-leise); white-space: nowrap; }
.bp-wer { display: flex; flex-wrap: wrap; gap: 6px 10px; margin-top: 7px; }
.bp-spieler { display: inline-flex; align-items: baseline; gap: 7px; padding: 4px 10px; border-radius: 999px; background: var(--flaeche); border: 1px solid var(--linie); font-size: 13px; }
.bp-spieler em { font-style: normal; font-size: 10px; letter-spacing: .06em; text-transform: uppercase; font-weight: 700; color: var(--sehr-leise); max-width: 110px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bp-spieler.s-ich em { color: var(--n-top); } .bp-spieler.s-gegner em { color: var(--n-mau); }
.bp-spieler i { font-style: normal; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--text); }
.bp.bp-neg .bp-spieler i { color: var(--n-mau); }
.fd-kopf.fd-bank { margin-top: 14px; border-top: 2px dashed var(--linie); padding-top: 12px; }
.fd-bankzeile { opacity: .82; } .fd-bankzeile .fd-pkt { font-size: 14.5px; }
@media (max-width: 620px) { .bp-kopf small { margin-left: 0; width: 100%; } .bp-liste { max-height: 420px; } }

/* Big Plays einklappbar */
.bp-karte.rl-aussen { margin: 0 0 20px; }
.bp-karte .rl-pos { font-size: 16px; background: none; padding: 0; }
.bp-karte > .rl-liste { padding: 12px; }

/* ================= Matchup: Farben nach Spielstand (Jonas 11.10.) ================= */
.fd-pkt.s-final { color: var(--n-top); }
.fd-pkt.s-laeuft { color: #fff; }
.fd-pkt.s-vor { color: var(--sehr-leise); }
.fd-pkt.s-vor small { color: var(--leise); }
.fd-spieler.am-ball, .fd-pkt.am-ball { background: rgba(240,185,58,.20); }
.fd-spieler.rz, .fd-pkt.rz { background: rgba(239,83,60,.30); }
.fd-spieler.am-ball, .fd-spieler.rz { border-radius: 9px 0 0 9px; padding: 5px 0 5px 7px; margin: -5px 0 -5px -7px; }
.fd-spieler.rechts.am-ball, .fd-spieler.rechts.rz { border-radius: 0 9px 9px 0; padding: 5px 7px 5px 0; margin: -5px -7px -5px 0; }
.fd-pkt.am-ball, .fd-pkt.rz { border-radius: 0 9px 9px 0; padding: 5px 0; margin: -5px 0; align-self: stretch; justify-content: center; }
.fd-spieler.rechts + .x, .fd-slot + .fd-pkt.am-ball, .fd-slot + .fd-pkt.rz { border-radius: 9px 0 0 9px; }
.fd-spieler.am-ball small, .fd-spieler.rz small { color: var(--text); }
.fd-spieler.rz b::after, .fd-spieler.am-ball b::after { content: ''; display: inline-block; width: 7px; height: 7px; border-radius: 50%; margin-left: 6px; vertical-align: 1px; background: var(--n-ok); animation: live-puls 1.8s infinite; }
.fd-spieler.rz b::after { background: var(--n-mau); }
.fd-zeile { column-gap: 0; } .fd-zeile > .fd-slot { padding: 0 4px; }
.fd-farben { display: flex; flex-wrap: wrap; gap: 4px 12px; margin: 12px 4px 0; font-size: 11.5px; color: var(--sehr-leise); }
.fd-farben span { font-weight: 700; margin-right: -8px; } .fd-farben .s-final { color: var(--n-top); } .fd-farben .s-laeuft { color: #fff; }
.fd-farben .fl { padding: 0 6px; border-radius: 5px; color: var(--text); } .fd-farben .fl.am-ball { background: rgba(240,185,58,.30); } .fd-farben .fl.rz { background: rgba(239,83,60,.40); }

/* ================= Matchup: Siegchance live + verbleibende Spielzeit ================= */
.sieg { max-width: 520px; margin: 18px auto 0; }
.sieg-kopf { display: grid; grid-template-columns: 1fr auto 1fr; align-items: baseline; margin-bottom: 6px; }
.sieg-kopf b { font-size: 20px; font-weight: 800; font-variant-numeric: tabular-nums; color: var(--leise); text-align: left; letter-spacing: -.02em; }
.sieg-kopf b:last-child { text-align: right; } .sieg-kopf b.vorn { color: var(--n-top); }
.sieg-kopf span { font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; font-weight: 700; color: var(--sehr-leise); }
.sieg-balken { height: 10px; border-radius: 10px; background: rgba(239,111,83,.6); overflow: hidden; }
.sieg-balken i { display: block; height: 100%; background: var(--n-top); border-right: 2px solid #101512; transition: width .6s; }
.rest { max-width: 520px; margin: 12px auto 10px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: start; gap: 10px; }
.rest-balken { height: 5px; border-radius: 5px; background: rgba(255,255,255,.08); overflow: hidden; }
.rest-balken i { display: block; height: 100%; border-radius: 5px; background: #e9edf0; transition: width .6s; }
.rest-seite.rechts .rest-balken i { margin-left: auto; }
.rest-seite small { display: block; margin-top: 5px; font-size: 11px; color: var(--leise); text-align: left; }
.rest-seite.rechts small { text-align: right; }
.rest-mitte { font-size: 9.5px; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; color: var(--sehr-leise); margin-top: -2px; white-space: nowrap; }

/* Restspielzeit je Spieler */
.restm { font-style: normal; flex-shrink: 0; font-size: 10.5px; font-weight: 700; padding: 0 6px; border-radius: 999px; background: var(--flaeche-2); color: var(--leise); border: 1px solid var(--linie); white-space: nowrap; }
.restm.laeuft { color: #fff; border-color: #fff; background: transparent; }
.restm.fertig { color: var(--n-top); border-color: transparent; background: rgba(47,214,123,.12); }
.sp-chip.live { color: #fff; border-color: #fff; background: transparent; }
.spf-uhr { display: flex !important; align-items: center; flex-wrap: wrap; gap: 6px; margin-top: 4px; color: var(--text) !important; }
.spf-uhr b { font-weight: 700; }

/* Spieler-Fenster: Ergebnis des NFL-Spiels */
.spf-erg { display: flex; align-items: center; gap: 7px; margin: 6px 0 2px; font-size: 13px; font-weight: 600; color: var(--leise); }
.spf-erg img { width: 22px; height: 22px; object-fit: contain; }
.spf-erg b { display: inline !important; margin: 0 !important; font-size: 19px !important; font-weight: 800; color: var(--leise); font-variant-numeric: tabular-nums; }
.spf-erg b.vorn { color: var(--text); } .spf-erg i { font-style: normal; opacity: .5; }

/* Team-Leiste: zwischen den Liga-Teams blaettern */
.team-leiste .mu-spiel { min-width: 150px; } .team-leiste small { font-size: 11.5px; color: var(--leise); }
.team-leiste .mu-spiel span.vorn i { color: inherit; }
a.cl-name { color: inherit; text-decoration: none; min-width: 0; } a.cl-name:hover b { text-decoration: underline; }

.zug-plus small { display: block; font-size: 11px; font-weight: 600; letter-spacing: 0; color: var(--leise); text-align: right; margin-top: 2px; }

/* System: Kosten getrennt + Konten */
.sys-h { font-family: var(--serif, inherit); font-size: 22px; margin: 26px 0 12px; } .sys-h span, .sys-h3 span { font-size: 13px; font-weight: 500; color: var(--leise); margin-left: 8px; font-family: inherit; }
.sys-getrennt { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 14px; }
.sys-wer { background: var(--flaeche); border: 1px solid var(--linie); border-top: 3px solid #8a8f98; border-radius: var(--radius); padding: 16px 18px; }
.sys-wer.w-alex { border-top-color: #ff6a3d; } .sys-wer.w-coach { border-top-color: #2fb36d; } .sys-wer.w-nacht { border-top-color: #7b8cf3; }
.sys-wer > b { font-size: 18px; } .sys-wer small { display: block; margin-top: 10px; font-size: 12.5px; color: var(--leise); }
.sys-zahlen { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 12px; }
.sys-zahlen span { font-size: 16px; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; } .sys-zahlen span:first-child { font-size: 20px; }
.sys-zahlen em { display: block; font-style: normal; font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--leise); font-weight: 600; margin-bottom: 2px; }
.sys-wer ul { list-style: none; margin: 12px 0 0; padding: 10px 0 0; border-top: 1px solid var(--linie); } .sys-wer li { display: flex; justify-content: space-between; gap: 10px; font-size: 12.5px; color: var(--leise); padding: 2px 0; } .sys-wer li i { font-style: normal; font-variant-numeric: tabular-nums; white-space: nowrap; }
.sys-konten { margin-bottom: 20px; } .sys-punkt { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #3a3a42; margin-right: 8px; } .sys-punkt.an { background: #2fb36d; box-shadow: 0 0 0 3px rgba(47,179,109,.2); }
.sys-jetzt { color: #2fb36d; } .sys-system td { border-top: 1px solid var(--linie); color: var(--leise); } .sys-h3 { font-size: 15px; margin: 20px 0 6px; }
.sys-besuche { max-height: 320px; overflow-y: auto; }
@media (max-width: 700px) { .sys-zahlen { grid-template-columns: repeat(2, 1fr); } }
.sys-kliste { display: none; list-style: none; margin: 0; padding: 0; }
.sys-kliste li { display: flex; justify-content: space-between; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--linie); }
.sys-kliste em { font-style: normal; font-size: 12px; color: var(--leise); } .sys-kliste small { display: block; font-size: 12px; color: var(--leise); margin-top: 3px; }
.sys-kk { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
@media (max-width: 700px) { .sys-kliste { display: block; } .sys-ktabelle { display: none; } }

/* Journal: Wochenkarte (Stimmung + Vorsatz) */
.jw-karte { margin-bottom: 20px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 34px; } .jw-karte .fussnote { grid-column: 1 / -1; margin: 4px 0 0; }
.jw-kopf { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; flex-wrap: wrap; } .jw-kopf h2 { margin: 0; }
.jw-zahlen { font-size: 12.5px; color: var(--leise); } .jw-zahlen b { color: var(--text); }
.jw-tage { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; margin: 14px 0 8px; }
.jw-tag { display: flex; flex-direction: column; align-items: center; gap: 4px; font-variant-numeric: tabular-nums; }
.jw-tag small { font-size: 11px; color: var(--leise); text-transform: uppercase; letter-spacing: .06em; } .jw-tag.heute small { color: var(--akzent); font-weight: 700; }
.jw-saeule { width: 100%; max-width: 34px; height: 64px; border-radius: 8px; background: var(--flaeche-2); display: flex; align-items: flex-end; overflow: hidden; }
.jw-saeule i { display: block; width: 100%; border-radius: 8px 8px 0 0; background: #5b9cf2; } .jw-saeule i.n1, .jw-saeule i.n2 { background: #e0705a; } .jw-saeule i.n3 { background: #e8b33f; } .jw-saeule i.n4, .jw-saeule i.n5 { background: #2fb36d; }
.jw-tag b { font-size: 14px; } .jw-tag.zukunft { opacity: .35; }
.jw-tag em { font-style: normal; font-size: 12px; height: 14px; font-weight: 700; } .jw-tag em.ja { color: #2fb36d; } .jw-tag em.nein { color: #e0705a; }
.jw-vorsatz { margin: 4px 0 0; font-size: 13.5px; } .jw-vorsatz span { font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; color: var(--akzent); margin-right: 6px; }
.jw-vorsatz b { font-weight: 600; color: var(--leise); } .jw-vorsatz.leer { color: var(--leise); }
@media (max-width: 800px) { .jw-karte { grid-template-columns: 1fr; gap: 22px; } }

/* Spieltagsbericht: Entwurf (nur Jonas) + Darstellung im Liga-Chat */
.br-karte { margin-bottom: 18px; border-color: rgba(47,179,109,.35); }
.br-kopf h2 { margin: 4px 0 2px; font-size: 20px; } .br-kopf small { color: var(--leise); font-size: 12.5px; }
.br-marke { font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; font-weight: 700; color: var(--akzent); }
.br-text { margin: 14px 0; padding: 14px 16px; border-radius: 12px; background: var(--flaeche-2); font-size: 14.5px; line-height: 1.55; max-height: 460px; overflow-y: auto; }
.br-text p, .lc-bericht-text p { margin: 0 0 10px; } .br-text ul, .lc-bericht-text ul { margin: 0 0 10px; padding-left: 20px; }
.br-feld { width: 100%; margin: 14px 0; padding: 12px; border-radius: 12px; border: 1px solid var(--linie); background: var(--flaeche-2); color: var(--text); font: inherit; font-size: 14px; line-height: 1.5; }
.br-knoepfe, .br-neu { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.br-neu input { flex: 1 1 220px; min-width: 0; padding: 9px 12px; border-radius: 10px; border: 1px solid var(--linie); background: var(--flaeche-2); color: var(--text); font: inherit; font-size: 14px; }
.br-knopf { padding: 9px 14px; border-radius: 10px; border: 1px solid var(--linie); background: var(--flaeche-2); color: var(--text); font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; }
.br-knopf.haupt { background: var(--akzent); border-color: var(--akzent); color: #fff; } .br-knopf:disabled { opacity: .5; cursor: wait; }
.br-status { margin: 10px 0 0; font-size: 13px; color: var(--leise); min-height: 1em; }
.lc-coach { display: grid; place-items: center; font-size: 16px; }
.lc-bericht-text { white-space: normal; }

/* Liga-Chat: Zahl neuer Nachrichten im Menue + Marke im Verlauf; Konto-Seite */
.navlink { position: relative; }
.nav-zahl { margin-left: auto; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; background: #e0705a; color: #fff; font-style: normal; font-size: 11.5px; font-weight: 800; display: inline-grid; place-items: center; font-variant-numeric: tabular-nums; }
.nav-zahl[hidden] { display: none; }
@media (max-width: 900px) { .nav-zahl { position: absolute; top: 2px; right: 2px; margin: 0; min-width: 17px; height: 17px; font-size: 10.5px; padding: 0 4px; } }
.lc-neu-marke { display: flex; align-items: center; gap: 10px; color: #e0705a; font-size: 11.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; margin: 4px 0; }
.lc-neu-marke::before, .lc-neu-marke::after { content: ''; flex: 1; height: 1px; background: rgba(224,112,90,.5); }
.konto-karte { max-width: 520px; } .pw-form { display: grid; gap: 14px; margin-top: 10px; }
.pw-form label { display: grid; gap: 6px; font-size: 13.5px; font-weight: 600; } .pw-form label small { font-weight: 500; color: var(--leise); }
.pw-form input { padding: 10px 12px; border-radius: 10px; border: 1px solid var(--linie); background: var(--flaeche-2); color: var(--text); font: inherit; font-size: 15px; }
.konto a.link-knopf { display: block; margin-bottom: 4px; }

.konto-karte + .konto-karte { margin-top: 18px; } .siri-hinweis { margin: 14px 0 6px; font-size: 13px; color: var(--leise); }
.siri-schluessel { display: block; padding: 12px; border-radius: 10px; background: var(--flaeche-2); font-size: 13px; word-break: break-all; user-select: all; margin-bottom: 8px; }

/* Sprachnachricht im Alex-Chat */
.chat-mikro { flex-shrink: 0; width: 44px; height: 44px; border-radius: 12px; border: 1px solid var(--linie); background: var(--flaeche-2); color: var(--text); display: grid; place-items: center; cursor: pointer; }
.chat-mikro[hidden] { display: none; } .chat-mikro svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.chat-mikro.nimmt-auf { background: #e0705a; border-color: #e0705a; color: #fff; animation: mikro-puls 1.2s ease-in-out infinite; }
@keyframes mikro-puls { 50% { box-shadow: 0 0 0 6px rgba(224,112,90,.25); } }

.zug-pos { font-style: normal; font-size: 10.5px; font-weight: 800; letter-spacing: .05em; padding: 2px 6px; margin-right: 6px; border-radius: 6px; background: var(--flaeche-2); color: var(--akzent); vertical-align: 2px; }

/* Transfermarkt-Check RB/WR/TE */
.mc-liste { display: grid; gap: 8px; margin-bottom: 22px; }
.mc-zeile { display: grid; grid-template-columns: auto 1fr 1fr auto; gap: 12px; align-items: center; padding: 12px 14px; border-radius: 12px; background: var(--flaeche); border: 1px solid var(--linie); }
.mc-zeile small { display: block; font-size: 11px; color: var(--leise); } .mc-zeile b { font-size: 14px; } .mc-zeile span { font-size: 13px; color: var(--leise); font-variant-numeric: tabular-nums; }
.mc-zeile strong { text-align: right; font-size: 18px; font-variant-numeric: tabular-nums; } .mc-zeile strong small { font-size: 11px; font-weight: 600; }
.mc-zeile.gut { border-color: rgba(47,179,109,.5); } .mc-zeile.gut strong { color: #2fb36d; } .mc-zeile.knapp strong { color: #e8b33f; } .mc-zeile.nein strong { color: var(--leise); }
.mc-alt { margin-top: 2px; }
@media (max-width: 600px) { .mc-zeile { grid-template-columns: auto 1fr auto; } .mc-zeile > div:nth-of-type(2) { grid-column: 2; } }

.zelle-leer { display: block; width: 100%; min-height: 28px; }

.spf-stat { display: block; margin-top: 4px; font-size: 13px; font-weight: 600; color: var(--text); }
.fd-stat { display: block; font-size: 11px; color: var(--leise); margin-top: 2px; white-space: normal; line-height: 1.3; }
.fd-spieler.rechts .fd-stat { text-align: right; }

/* ---------- Transfermarkt 2.0 (18.10.) ---------- */
.wv-blick { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin: 6px 0 24px; }
.wv-blick > div { padding: 14px 14px 12px; border-radius: 14px; background: var(--flaeche); border: 1px solid var(--linie); }
.wv-blick b { display: block; font-size: 26px; line-height: 1.1; font-variant-numeric: tabular-nums; }
.wv-blick small { display: block; margin-top: 4px; font-size: 12px; color: var(--leise); line-height: 1.3; }
.wv-blick .gut { border-color: rgba(47,179,109,.45); background: linear-gradient(160deg, rgba(47,179,109,.14), var(--flaeche) 70%); } .wv-blick .gut b { color: #2fb36d; }
.wv-blick .ok b { color: #2fb36d; }
.wv-blick .warn { border-color: rgba(232,92,74,.5); } .wv-blick .warn b { color: #e85c4a; }
.wv-liste { display: grid; gap: 10px; margin-bottom: 24px; }
.wv-liste.zwei { grid-template-columns: 1fr 1fr; }
.wv-karte { padding: 12px 14px; border-radius: 14px; background: var(--flaeche); border: 1px solid var(--linie); display: grid; gap: 6px; }
.wv-karte.gut { border-color: rgba(47,179,109,.4); background: linear-gradient(160deg, rgba(47,179,109,.10), var(--flaeche) 60%); }
.wv-karte.rot { border-color: rgba(232,92,74,.55); } .wv-karte.gelb { border-color: rgba(232,179,63,.5); }
.wv-titel { margin: 0; font-size: 14px; font-weight: 600; }
.wv-grund, .wv-vergleich { margin: 0; font-size: 12.5px; color: var(--leise); line-height: 1.45; }
.wv-vergleich b { color: var(--text); }
.wv-gruende { margin: 0; padding: 0 0 0 2px; list-style: none; display: flex; flex-wrap: wrap; gap: 6px; }
.wv-gruende li { font-size: 12px; padding: 3px 9px; border-radius: 999px; background: rgba(47,179,109,.12); color: var(--gut); border: 1px solid rgba(47,179,109,.25); }
.wv-karte.leise .wv-gruende li { background: var(--flaeche-2); color: var(--leise); border-color: var(--linie); }
.wz { display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center; padding: 8px 10px; border-radius: 10px; background: var(--flaeche-2); cursor: pointer; }
.wz:hover { background: #222228; }
.wz.mein { background: transparent; border: 1px dashed var(--linie); }
.wz .zug-pos { margin: 0; }
.wz-name b { font-size: 14px; } .wz-name small { display: block; font-size: 11.5px; color: var(--leise); }
.wz-name .lg { width: 18px; height: 18px; vertical-align: -4px; margin-right: 6px; }
.wz strong { text-align: right; font-size: 17px; font-variant-numeric: tabular-nums; } .wz strong small { display: block; font-size: 10.5px; font-weight: 600; color: var(--leise); }
.wv-karte.gut .wz strong { color: #2fb36d; } .wz.mein strong { color: var(--leise); }
.wv-trenner { margin-top: 34px; padding-top: 18px; border-top: 1px solid var(--linie); }
@media (max-width: 700px) {
  .wv-blick { grid-template-columns: 1fr 1fr; }
  .wv-liste.zwei { grid-template-columns: 1fr; }
}

/* ---------- Spielernamen ueberall anklickbar (19.10.) ---------- */
[data-spieler] { cursor: pointer; }
b[data-spieler], span[data-spieler]:not(.sp-chip):not(.bp-spieler) { text-decoration: underline dotted rgba(147,151,159,.6); text-underline-offset: 3px; }
b[data-spieler]:hover, span[data-spieler]:not(.sp-chip):hover { text-decoration-color: currentColor; }
.nw-titel { color: inherit; text-decoration: none; } .nw-titel:hover b { text-decoration: underline; }
.nw > .nw-titel b { font-size: 15.5px; font-weight: 600; line-height: 1.3; }
.nw.gross > .nw-titel b { font-family: var(--serif); font-size: 21px; line-height: 1.2; }
.nw-spieler { display: flex; flex-wrap: wrap; gap: 6px; }
.nw-spieler .sp-chip { font-size: 11.5px; padding: 2px 9px; color: var(--text); }
.nw-spieler .sp-chip:hover { border-color: var(--gut); color: var(--gut); }
a.nw-fuss { text-decoration: none; }
.link-knopf.zahnrad { display: inline-flex !important; align-items: center; gap: 6px; }
.link-knopf.zahnrad svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.link-knopf.zahnrad { text-decoration: none; }
