/* Vermögeninsider · Design „Register“ – Token siehe docs/vermoegeninsider-DESIGN.md */

@font-face { font-family: "Archivo"; src: url("fonts/archivo-wdth.woff2") format("woff2"); font-weight: 100 900; font-stretch: 62% 125%; font-display: swap; }
@font-face { font-family: "Newsreader"; src: url("fonts/newsreader-opsz.woff2") format("woff2"); font-weight: 200 800; font-style: normal; font-display: swap; }
@font-face { font-family: "Newsreader"; src: url("fonts/newsreader-opsz-italic.woff2") format("woff2"); font-weight: 200 800; font-style: italic; font-display: swap; }

:root {
  --papier: #f4f4f0;
  --blatt: #ffffff;
  --druck: #101318;
  --druck-2: #1b2027;
  --tinte: #1d3a6e;
  --signal: #e0522a;
  --signal-dunkel: #b83d1b;
  --auf: #1f7a4a;
  --ab: #b3261e;
  --text: #101318;
  --text-2: #4e5560;
  --text-3: #6b717b;
  --linie: #d9dad4;
  --linie-stark: #101318;
  --s1: #7d8580; --s2: #c0453b; --s3: #3a6db0; --s4: #d9752b; --s5: #3f8a58; --s6: #b8932f; --s7: #77509a;
  --sans: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --serif: "Newsreader", Georgia, "Times New Roman", serif;
  --t-xs: .8125rem; --t-s: .9375rem; --t-m: 1.0625rem; --t-l: 1.3125rem; --t-xl: 1.75rem; --t-2xl: 2.5rem; --t-3xl: 3.75rem; --t-4xl: 5.5rem;
  --breite: 1320px;
  --rand: clamp(16px, 4vw, 48px);
  --kurve: cubic-bezier(.2, .7, .2, 1);
  --d1: 120ms; --d2: 200ms; --d3: 320ms;
}

[data-stufe="1"] { --stufe: var(--s1); } [data-stufe="2"] { --stufe: var(--s2); } [data-stufe="3"] { --stufe: var(--s3); }
[data-stufe="4"] { --stufe: var(--s4); } [data-stufe="5"] { --stufe: var(--s5); } [data-stufe="6"] { --stufe: var(--s6); }
[data-stufe="7"] { --stufe: var(--s7); } [data-stufe="0"] { --stufe: var(--linie); }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 90px; }
body { margin: 0; background: var(--papier); color: var(--text); font-family: var(--sans); font-size: var(--t-m); line-height: 1.5;
  font-variant-numeric: tabular-nums; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img, svg { max-width: 100%; }
a { color: var(--tinte); text-underline-offset: .18em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
button { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; }
[hidden] { display: none !important; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.sprung { position: absolute; left: -999px; top: 0; background: var(--druck); color: #fff; padding: .6rem 1rem; z-index: 100; }
.sprung:focus { left: 8px; top: 8px; }
.icon { flex: none; vertical-align: -3px; }
h1, h2, h3 { font-family: var(--sans); margin: 0; line-height: 1.08; letter-spacing: -.012em; }
/* Lange deutsche Wörter (Durchschnittsgehalt, Datenschutzerklärung) passen in großen Überschriften nicht auf schmale Schirme: trennen statt überstehen */
@media (max-width: 760px) { h1, h2, h3 { hyphens: auto; -webkit-hyphens: auto; hyphenate-limit-chars: 10 4 4; overflow-wrap: break-word; } }
kbd { font-family: var(--sans); font-size: .75rem; border: 1px solid currentColor; border-radius: 3px; padding: 0 .35em; opacity: .6; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition-duration: 0ms !important; animation-duration: 0ms !important; } }

/* ───────── Kurszettel ───────── */
.kurszettel { background: var(--druck); color: #e9eaec; display: flex; align-items: center; gap: 1.25rem; padding: 0 var(--rand);
  font-size: var(--t-xs); font-stretch: 85%; height: 36px; overflow: hidden; }
.kz-stand, .kz-fuss { margin: 0; white-space: nowrap; color: #9aa0a8; }
.kz-fuss { margin-left: auto; }
.kz-liste { list-style: none; margin: 0; padding: 0; display: flex; gap: 0; overflow-x: auto; scrollbar-width: none; flex: 1; min-width: 0; }
.kz-liste::-webkit-scrollbar { display: none; }
.kz-liste li { flex: none; }
.kz-liste button { background: none; border: 0; border-left: 1px solid #2c323b; padding: 0 .9rem; height: 36px; cursor: pointer; display: flex; gap: .45rem; align-items: center; white-space: nowrap; }
.kz-liste button:hover { background: var(--druck-2); }
.kz-name { font-weight: 600; }
.kz-wert { color: #c9ccd1; }
.kz-delta.auf { color: #6fd39a; } .kz-delta.ab { color: #ff8f84; }

/* ───────── Kopf ───────── */
.kopf { background: var(--papier); border-bottom: 1px solid var(--linie-stark); position: sticky; top: 0; z-index: 30; }
.kopf-innen { max-width: var(--breite); margin: 0 auto; padding: 0 var(--rand); display: flex; align-items: center; gap: 2rem; height: 64px; }
.marke { display: inline-flex; align-items: center; gap: .6rem; text-decoration: none; color: var(--text); margin: 0; }
.marke-zeichen { display: inline-grid; place-items: center; width: 34px; height: 34px; background: var(--druck); color: var(--papier);
  font-weight: 800; font-stretch: 125%; font-size: .8rem; letter-spacing: .04em; border-radius: 2px; }
.marke-wort { font-weight: 800; font-stretch: 112%; font-size: 1.22rem; letter-spacing: -.02em; }
.hauptnav { display: flex; gap: 1.5rem; }
.hauptnav a { color: var(--text-2); text-decoration: none; font-size: var(--t-s); font-weight: 500; padding: 1.4rem 0 1.2rem; border-bottom: 3px solid transparent; transition: color var(--d1) var(--kurve); }
.hauptnav a:hover { color: var(--text); }
.hauptnav a[aria-current="page"] { color: var(--text); border-bottom-color: var(--druck); }
.kopf-werkzeuge { margin-left: auto; display: flex; gap: .25rem; align-items: center; }
.werkzeug { display: inline-flex; align-items: center; gap: .45rem; background: none; border: 1px solid transparent; border-radius: 4px; padding: .45rem .7rem;
  color: var(--text); text-decoration: none; font-size: var(--t-s); cursor: pointer; position: relative; }
.werkzeug:hover { border-color: var(--linie); background: var(--blatt); }
.werkzeug.anmelden { border-color: var(--druck); }
.glocke .zaehler { position: absolute; top: 2px; right: 2px; min-width: 17px; height: 17px; border-radius: 9px; background: var(--signal); color: #fff;
  font-size: .68rem; font-weight: 700; display: grid; place-items: center; padding: 0 4px; }
.glocke-wrap { position: relative; }
.glocke-panel { position: absolute; right: 0; top: calc(100% + 8px); width: min(380px, 92vw); background: var(--blatt); border: 1px solid var(--druck);
  box-shadow: 0 18px 40px -18px rgba(16,19,24,.35); border-radius: 2px; }
.gp-kopf { display: flex; justify-content: space-between; align-items: baseline; padding: .8rem 1rem; border-bottom: 1px solid var(--linie); font-size: var(--t-s); }
.gp-liste { list-style: none; margin: 0; padding: 0; max-height: 420px; overflow: auto; }
.gp-liste li a { display: block; padding: .75rem 1rem; border-bottom: 1px solid var(--linie); color: var(--text); text-decoration: none; }
.gp-liste li a:hover { background: var(--papier); }
.gp-liste li.neu a { box-shadow: inset 3px 0 0 var(--signal); }
.gp-liste .gp-titel { display: block; font-weight: 600; font-size: var(--t-s); }
.gp-liste .gp-text, .gp-liste .gp-wann { display: block; font-size: var(--t-xs); color: var(--text-2); }
.gp-leer { padding: 1rem; color: var(--text-2); font-size: var(--t-s); }

/* ───────── Sofortsuche ───────── */
.suche-ebene { position: fixed; inset: 0; z-index: 60; background: rgba(16,19,24,.55); display: grid; align-items: start; justify-items: center; padding: 10vh var(--rand) 0; }
.suche-ebene[hidden] { display: none; }
.suche-kasten { width: min(720px, 100%); background: var(--blatt); border-radius: 2px; box-shadow: 0 30px 80px -20px rgba(0,0,0,.5); }
.suche-feld { display: flex; align-items: center; gap: .8rem; padding: 0 1.2rem; border-bottom: 2px solid var(--druck); }
.suche-feld input { flex: 1; border: 0; font: inherit; font-size: var(--t-xl); font-weight: 600; font-stretch: 105%; padding: 1.1rem 0; background: none; outline: none; min-width: 0; }
.suche-treffer { list-style: none; margin: 0; padding: 0; max-height: 60vh; overflow: auto; }
.suche-treffer li button, .suche-treffer li a { width: 100%; display: grid; grid-template-columns: 40px 1fr auto; gap: .9rem; align-items: center; text-align: left;
  background: none; border: 0; border-bottom: 1px solid var(--linie); padding: .7rem 1.2rem; cursor: pointer; color: var(--text); text-decoration: none; }
.suche-treffer li [aria-selected="true"], .suche-treffer li button:hover { background: var(--papier); }
.st-name { font-weight: 600; display: block; }
.st-zusatz { font-size: var(--t-xs); color: var(--text-2); display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.st-wert { font-weight: 600; font-stretch: 90%; white-space: nowrap; }
.suche-hinweis { margin: 0; padding: .7rem 1.2rem; font-size: var(--t-xs); color: var(--text-2); }

/* ───────── Startseite: Kopf ───────── */
.start-kopf { max-width: var(--breite); margin: 0 auto; padding: clamp(2rem, 6vw, 5rem) var(--rand) clamp(2rem, 5vw, 4rem);
  display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.vorzeile { font-size: var(--t-s); color: var(--text-2); margin: 0 0 1.4rem; display: flex; gap: .5rem; align-items: center; }
.vorzeile::before { content: ""; width: 28px; height: 2px; background: var(--druck); }
.start-kopf h1 { font-size: clamp(2.6rem, 6.4vw, var(--t-4xl)); font-weight: 760; font-stretch: 108%; line-height: .98; letter-spacing: -.035em; }
.sk-zahl { font-stretch: 125%; font-weight: 820; }
.sk-unterzeile { font-family: var(--serif); font-size: var(--t-l); line-height: 1.45; color: var(--text-2); margin: 1.6rem 0 2rem; }
.sk-suche { position: relative; display: flex; gap: 0; max-width: 760px; border: 2px solid var(--druck); background: var(--blatt); border-radius: 4px; }
.sk-suche label { flex: 1; display: flex; align-items: center; gap: .7rem; padding-left: 1rem; }
.sk-suche input { flex: 1; border: 0; background: none; font: inherit; font-size: var(--t-l); padding: 1rem 0; outline: none; min-width: 0; }
.sk-suche .knopf { border-radius: 0 2px 2px 0; }
.suche-treffer.start { position: absolute; left: -2px; right: -2px; top: calc(100% + 2px); background: var(--blatt); border: 2px solid var(--druck); border-top: 0; z-index: 20; box-shadow: 0 20px 40px -20px rgba(0,0,0,.35); }
.sk-oft { margin: 1rem 0 0; font-size: var(--t-s); color: var(--text-2); display: flex; flex-wrap: wrap; gap: .3rem .9rem; align-items: baseline; }
.sk-oft button { background: none; border: 0; padding: 0; color: var(--tinte); text-decoration: underline; text-underline-offset: .18em; cursor: pointer; }

.sk-heute { display: grid; gap: 1.5rem; }
.heute-blatt { position: relative; background: var(--blatt); border: 1px solid var(--druck); padding: 1.6rem 1.5rem 1.4rem; text-align: center; overflow: hidden; }
.heute-blatt .guilloche { position: absolute; left: 0; right: 0; top: 0; width: 100%; height: 120px; }
.heute-blatt > *:not(.guilloche) { position: relative; }
.heute-vorzeile { display: inline-flex; gap: .4rem; align-items: center; margin: 0 0 1rem; background: var(--signal); color: #fff; font-size: var(--t-xs); font-weight: 600; padding: .25rem .6rem; border-radius: 2px; }
.heute-blatt .avatar { margin: 0 auto .8rem; }
.heute-blatt h2 { font-size: var(--t-xl); font-stretch: 105%; font-weight: 750; }
.heute-blatt h2 button { background: none; border: 0; padding: 0; cursor: pointer; font: inherit; }
.heute-alter { margin: .3rem 0 .2rem; font-family: var(--serif); font-size: var(--t-l); }
.heute-alter strong { font-family: var(--sans); font-stretch: 125%; font-size: var(--t-2xl); line-height: 1; vertical-align: -.1em; }
.heute-wert { margin: .4rem 0 0; font-size: var(--t-s); color: var(--text-2); }
.heute-weitere { margin: 1rem 0 0; padding-top: .8rem; border-top: 1px solid var(--linie); font-size: var(--t-xs); color: var(--text-2); }
.heute-weitere button { background: none; border: 0; padding: 0; color: var(--tinte); text-decoration: underline; cursor: pointer; font-size: inherit; }
.klein-titel { font-size: var(--t-s); font-weight: 650; padding-bottom: .5rem; border-bottom: 2px solid var(--druck); margin-bottom: .2rem; }
.heute-woche ol { list-style: none; margin: 0; padding: 0; }
.heute-woche li button { width: 100%; display: grid; grid-template-columns: 32px 1fr; grid-template-rows: auto auto; column-gap: .7rem; text-align: left;
  background: none; border: 0; border-bottom: 1px solid var(--linie); padding: .55rem 0; cursor: pointer; }
.heute-woche li button:hover .hw-name { text-decoration: underline; }
.heute-woche .avatar { grid-row: span 2; }
.hw-name { font-weight: 600; font-size: var(--t-s); }
.mehr { display: inline-block; margin-top: .8rem; font-size: var(--t-s); font-weight: 600; }

/* ───────── Abschnitte ───────── */
.abschnitt { max-width: var(--breite); margin: 0 auto; padding: clamp(2.5rem, 6vw, 5rem) var(--rand); }
.abschnitt-kopf { display: grid; grid-template-columns: minmax(0, 1fr); gap: .7rem; align-items: end; padding-bottom: 1.2rem; margin-bottom: 1.6rem; border-bottom: 2px solid var(--druck); }
.abschnitt-kopf h2 { font-size: clamp(2rem, 4vw, var(--t-3xl)); font-weight: 760; font-stretch: 110%; letter-spacing: -.03em; }
.abschnitt-kopf p { margin: 0; font-family: var(--serif); font-size: var(--t-l); line-height: 1.45; color: var(--text-2); }
.abschnitt-kopf p.aussage { color: var(--text); }
.abschnitt-kopf .knopf { justify-self: start; grid-column: 1; }
.abschnitt.dunkel { max-width: none; background: var(--druck); color: #eef0f2; }
.abschnitt.dunkel > * { max-width: calc(var(--breite) - 2 * var(--rand)); margin-left: auto; margin-right: auto; }
.abschnitt.dunkel .abschnitt-kopf { border-bottom-color: #eef0f2; }
.abschnitt.dunkel .abschnitt-kopf p { color: #b9bec6; }

/* ───────── Knöpfe ───────── */
.knopf { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; padding: .8rem 1.25rem; border-radius: 4px; border: 1.5px solid var(--druck);
  font-weight: 600; font-size: var(--t-s); text-decoration: none; cursor: pointer; transition: background var(--d1) var(--kurve), color var(--d1) var(--kurve); white-space: nowrap; }
.knopf.haupt { background: var(--druck); color: var(--papier); }
.knopf.haupt:hover { background: var(--tinte); border-color: var(--tinte); }
.knopf.zweit { background: var(--blatt); color: var(--text); }
.knopf.zweit:hover { background: var(--druck); color: var(--papier); }
.knopf.signal { background: var(--signal); border-color: var(--signal); color: #fff; }
.knopf.signal:hover { background: var(--signal-dunkel); border-color: var(--signal-dunkel); }
.knopf.hell { background: transparent; color: #fff; border-color: #fff; }
.knopf.hell:hover { background: #fff; color: var(--druck); }
.knopf:disabled { opacity: .5; cursor: not-allowed; }

/* ───────── Notenstufen, Beleg, Avatare ───────── */
.note { display: inline-grid; place-items: center; min-width: 2.2rem; height: 1.5rem; padding: 0 .35rem; border-radius: 2px; background: var(--stufe); color: #fff;
  font-size: .72rem; font-weight: 700; font-stretch: 112%; letter-spacing: .02em; }
.note.mini { min-width: 1.7rem; height: 1.1rem; font-size: .62rem; }
.stufe-chip { display: inline-flex; align-items: center; gap: .3rem; font-size: var(--t-xs); font-weight: 600; color: var(--text); white-space: nowrap; }
.stufe-chip::before { content: ""; width: .7rem; height: .7rem; border-radius: 1px; background: var(--stufe); }
.stufenbalken { display: block; height: 6px; background: #eceee8; border-radius: 1px; overflow: hidden; min-width: 80px; }
.stufenbalken i { display: block; height: 100%; background: var(--stufe); }
.beleg { display: inline-flex; align-items: center; gap: .4rem; }
.beleg .striche { display: inline-flex; gap: 2px; }
.beleg .striche i { width: 3px; height: 10px; background: #cfd1cb; border-radius: 1px; }
.beleg .striche i.an { background: var(--druck); }
.beleg-text { font-size: var(--t-xs); color: var(--text-2); }
.ca { font-size: .5em; font-weight: 400; color: var(--text-2); letter-spacing: 0; vertical-align: .15em; margin-right: .05em; }
.avatar { --g: 44px; position: relative; display: inline-grid; place-items: center; width: var(--g); height: var(--g); border-radius: 50%; flex: none;
  background: var(--papier); box-shadow: 0 0 0 2px var(--blatt), 0 0 0 3.5px var(--stufe); overflow: hidden; }
.avatar img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 25%; position: relative; z-index: 1; filter: grayscale(.15) contrast(1.03); }
.avatar .mono { position: absolute; font-weight: 750; font-stretch: 115%; font-size: calc(var(--g) * .34); color: var(--druck); z-index: 0; }
.avatar .rosette { position: absolute; inset: 0; width: 100%; height: 100%; stroke: var(--stufe); opacity: .55; }
.avatar.ohne-foto .mono { z-index: 1; background: rgba(255,255,255,.82); padding: 0 .18em; border-radius: 2px; }
.guilloche { display: block; stroke: var(--stufe, var(--tinte)); opacity: .32; }

/* ───────── Geburtstag ───────── */
.geburtstag { display: inline-flex; align-items: center; gap: .3rem; font-size: var(--t-xs); font-weight: 600; color: var(--signal-dunkel); white-space: nowrap; }
.geburtstag .icon { width: 14px; height: 14px; }
.geburtstag.heute.klein { background: var(--signal); color: #fff; padding: .05rem .45rem .05rem .3rem; border-radius: 2px; }
.geburtstag.vorbei { color: var(--text-2); }
.geburtstag.gross { display: flex; gap: .7rem; align-items: center; white-space: normal; background: var(--signal); color: #fff; padding: .9rem 1.1rem; font-size: var(--t-m); font-weight: 500; border-radius: 2px; }
.geburtstag.gross .icon { width: 26px; height: 26px; }
.geburtstag.gross span { opacity: .9; }
.geburtstag.gross.bald, .geburtstag.gross.vorbei { background: #fbe9e3; color: var(--signal-dunkel); }

/* ───────── KI-Hinweis ───────── */
.ki-hinweis { font-size: .75rem; color: var(--text-2); margin: 0; letter-spacing: .01em; }
/* KI-Hinweis im Seitenkopf: rechtsbündig auf Höhe der Vorzeile, aus der Aufmerksamkeit (Felix 12.10.2026) */
.seiten-kopf, .blatt-kopf-innen, .sb-kopf { position: relative; }
.seiten-kopf > h1 + .ki-hinweis, .seiten-kopf > .ki-hinweis { position: absolute; top: clamp(2rem, 5vw, 4rem); right: var(--rand); margin: 0; }
.blatt-kopf .ki-hinweis.oben { position: absolute; top: clamp(2rem, 5vw, 3.5rem); right: var(--rand); }
@media (max-width: 700px) { .seiten-kopf > h1 + .ki-hinweis, .seiten-kopf > .ki-hinweis, .blatt-kopf .ki-hinweis.oben { position: static; margin: .5rem 0 0; } }
.ki-text { padding: .8rem 0 0; font-family: var(--serif); font-size: var(--t-s); line-height: 1.5; }
.ki-text p { margin: 0 0 .4rem; }

/* ───────── Register-Tabelle ───────── */
.register { background: var(--blatt); border: 1px solid var(--druck); }
.register-filter { display: flex; flex-wrap: wrap; gap: .8rem 1.2rem; align-items: center; padding: 1rem 1.2rem; border-bottom: 1px solid var(--linie); background: #fafaf7; }
.feld-suche { display: flex; align-items: center; gap: .5rem; border: 1.5px solid var(--druck); border-radius: 4px; padding: 0 .7rem; background: var(--blatt); flex: 1 1 240px; max-width: 340px; }
.feld-suche input { border: 0; background: none; font: inherit; font-size: var(--t-s); padding: .55rem 0; outline: none; width: 100%; }
.segmente, .noten, .schalter { display: flex; flex-wrap: wrap; gap: .3rem; }
.segmente input, .noten input, .schalter input { position: absolute; opacity: 0; pointer-events: none; }
/* Bezugsrahmen der versteckten Eingabe = ihr Label. Sonst liegt sie außerhalb des waagerecht scrollenden Filters und macht die Seite auf dem Handy breiter. */
.segmente label, .noten label, .schalter label { position: relative; }
.segmente span, .schalter span { display: inline-block; padding: .38rem .7rem; border: 1px solid var(--linie); border-radius: 3px; font-size: var(--t-xs); font-weight: 550; cursor: pointer; background: var(--blatt); transition: background var(--d1) var(--kurve); }
.segmente label:hover span, .schalter label:hover span { border-color: var(--druck); }
.segmente input:checked + span, .schalter input:checked + span { background: var(--druck); color: var(--papier); border-color: var(--druck); }
.segmente input:focus-visible + span, .schalter input:focus-visible + span, .noten input:focus-visible + span { outline: 2px solid var(--signal); outline-offset: 1px; }
.noten > label > span:not(.note) { display: inline-block; padding: .2rem .5rem; font-size: var(--t-xs); border: 1px solid var(--linie); border-radius: 2px; cursor: pointer; background: var(--blatt); }
.noten input:checked + span:not(.note) { background: var(--druck); color: #fff; border-color: var(--druck); }
.noten .note { cursor: pointer; opacity: .38; transition: opacity var(--d1) var(--kurve); }
.noten label:hover .note, .noten input:checked + .note { opacity: 1; }
.noten input:checked + .note { box-shadow: 0 0 0 2px var(--blatt), 0 0 0 3.5px var(--druck); }
.register-kopf { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .8rem 1.2rem; font-size: var(--t-s); color: var(--text-2); flex-wrap: wrap; }
.register-kopf p { margin: 0; }
.register-kopf strong { color: var(--text); }
.register-legende { display: flex; gap: 3px; align-items: center; }
.legende-text { margin-left: .5rem; font-size: var(--t-xs); }
.tabelle-rahmen { overflow-x: auto; }
.register-tabelle { width: 100%; border-collapse: collapse; font-size: var(--t-s); }
.register-tabelle thead th { text-align: left; font-weight: 600; font-size: var(--t-xs); color: var(--text-2); border-top: 2px solid var(--druck); border-bottom: 1px solid var(--druck); padding: 0; white-space: nowrap; }
.register-tabelle thead th button { background: none; border: 0; padding: .6rem .8rem; font-weight: 600; color: inherit; cursor: pointer; }
.register-tabelle thead th button:hover { color: var(--text); }
.register-tabelle thead th button[aria-sort]::after { content: " ▾"; }
.register-tabelle thead th button[aria-sort="ascending"]::after { content: " ▴"; }
.register-tabelle thead th > span { display: block; padding: .6rem .8rem; }
.register-tabelle tbody tr { border-bottom: 1px solid var(--linie); cursor: pointer; transition: background var(--d1) var(--kurve); }
.register-tabelle tbody tr:hover, .register-tabelle tbody tr:focus-visible { background: #f7f7f2; }
.register-tabelle td { padding: .6rem .8rem; vertical-align: middle; }
.sp-rang { width: 64px; text-align: right; color: var(--text-2); font-stretch: 90%; }
.register-tabelle th.sp-rang button { width: 100%; text-align: right; }
.sp-person { min-width: 280px; }
td.sp-person { display: flex; align-items: center; gap: .8rem; }
.pn { display: flex; flex-direction: column; min-width: 0; align-items: flex-start; gap: .1rem; }
.pn-name { font-weight: 650; font-size: var(--t-m); }
.pn-zusatz { font-size: var(--t-xs); color: var(--text-2); }
.sp-stufe { width: 140px; }
td.sp-vermoegen { white-space: nowrap; }
.sp-vermoegen .betrag { font-weight: 700; font-stretch: 95%; font-size: var(--t-m); margin-right: .6rem; }
.sp-alter { width: 64px; text-align: right; }
.register-tabelle th.sp-alter button { width: 100%; text-align: right; }
.sp-bereich, .sp-land { color: var(--text-2); font-size: var(--t-xs); }
.register-tabelle tr.leer td { padding: 2.5rem 1.2rem; text-align: center; font-family: var(--serif); cursor: default; }
.ohne-rang { color: var(--text-3); }
.register-fuss { padding: 1rem 1.2rem; display: flex; justify-content: center; border-top: 1px solid var(--linie); }
.register[aria-busy="true"] tbody { opacity: .45; transition: opacity var(--d2) var(--kurve); }

/* ───────── Verteilung ───────── */
.verteilung-grafik { display: grid; gap: .9rem; }
.vt-reihe { display: grid; grid-template-columns: 110px 1fr; align-items: center; gap: 1rem; }
.vt-label { font-size: var(--t-s); font-weight: 600; }
.vt-balken { display: flex; height: 44px; gap: 2px; }
.vt-balken i { background: var(--stufe); min-width: 3px; }
.vt-legende { list-style: none; padding: 0; margin: .8rem 0 0 calc(110px + 1rem); display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: .4rem 2rem; font-size: var(--t-s); }
.vt-legende li { display: grid; grid-template-columns: auto 1fr auto auto; gap: .6rem; align-items: center; border-bottom: 1px solid var(--linie); padding: .35rem 0; }
.vt-n { color: var(--text-2); font-size: var(--t-xs); }
.vt-s { font-weight: 650; min-width: 7em; text-align: right; }

/* ───────── Ranglisten ───────── */
.rl-raster { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(1.5rem, 4vw, 3.5rem); }
.rl-gross { display: block; background: var(--druck); color: #fff; text-decoration: none; padding: 1.8rem; border-radius: 2px; position: relative; }
.rl-gross:hover { background: var(--druck-2); }
.rl-gruppe { margin: 0 0 .4rem; font-size: var(--t-xs); color: #9aa0a8; }
.rl-gross h3 { font-size: var(--t-2xl); font-stretch: 110%; font-weight: 780; letter-spacing: -.03em; margin-bottom: 1.6rem; }
.rl-spitze { list-style: none; margin: 0; padding: 0; }
.rl-spitze li { display: grid; grid-template-columns: 2.2rem 1fr auto; align-items: baseline; padding: .7rem 0; border-top: 1px solid #2c323b; font-size: var(--t-l); }
.rl-platz { font-stretch: 125%; font-weight: 800; color: #9aa0a8; }
.rl-wert { font-weight: 650; font-stretch: 95%; }
.rl-fuss { margin: 1.2rem 0 0; font-size: var(--t-s); color: #b9bec6; }
.rl-liste { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 2.5rem; }
.rl-liste li { break-inside: avoid; }
.rl-liste a { display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto; column-gap: 1rem; padding: .75rem 0; border-bottom: 1px solid var(--linie); color: var(--text); text-decoration: none; }
.rl-liste a:hover .rl-titel { text-decoration: underline; }
.rl-titel { font-weight: 650; }
.rl-erster { grid-row: 2; font-size: var(--t-xs); color: var(--text-2); }
.rl-n { grid-row: span 2; align-self: center; font-size: var(--t-xs); color: var(--text-2); }

/* ───────── Netz ───────── */
.netz { margin: 0; }
.netz svg { width: 100%; height: auto; display: block; }
.netz line { stroke-width: 1.2; }
.netz .k-ehe { stroke: var(--signal); }
.netz .k-familie { stroke: currentColor; opacity: .55; }
.netz .k-firma { stroke: currentColor; opacity: .5; stroke-dasharray: 4 4; }
.netz .knoten { cursor: pointer; }
.netz .knoten circle { fill: var(--stufe); stroke: var(--druck); stroke-width: 3; }
.netz .knoten:hover .n, .netz .knoten:focus-visible .n { text-decoration: underline; }
.netz text { fill: currentColor; font-family: var(--sans); }
.netz .n { font-size: 14px; font-weight: 650; }
.netz .r { font-size: 11.5px; opacity: .72; }
.netz .mitte circle { fill: var(--stufe); }
.netz .mitte text { font-size: 17px; font-weight: 800; fill: #fff; }
.netz-legende { display: flex; gap: 1.5rem; font-size: var(--t-xs); margin-top: .5rem; flex-wrap: wrap; }
.netz-legende span::before { content: ""; display: inline-block; width: 22px; height: 0; border-top: 1.5px solid currentColor; vertical-align: middle; margin-right: .4rem; }
.netz-legende .l-ehe::before { border-color: var(--signal); }
.netz-legende .l-firma::before { border-top-style: dashed; }
.dunkel .netz .knoten circle { stroke: var(--druck); }
.beziehungen-teaser .netz { color: #eef0f2; }

/* ───────── Balkenliste ───────── */
.balkenliste { list-style: none; margin: 0; padding: 0; counter-reset: bl; }
.balkenliste button { width: 100%; display: grid; grid-template-columns: minmax(160px, 260px) 1fr auto; gap: 1.2rem; align-items: center; background: none; border: 0;
  border-bottom: 1px solid var(--linie); padding: .7rem 0; text-align: left; cursor: pointer; }
.balkenliste button:hover .bl-name { text-decoration: underline; }
.bl-name { font-weight: 600; }
.bl-balken { height: 14px; background: #eceee8; }
.bl-balken i { display: block; height: 100%; background: var(--tinte); }
.bl-wert { font-weight: 650; min-width: 9em; text-align: right; }

/* ───────── Methodik kurz ───────── */
.methodik-kurz { border-top: 2px solid var(--druck); }
.mk-spalten { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.5rem, 4vw, 3.5rem); }
.mk-spalten p { margin: 0; font-family: var(--serif); font-size: var(--t-m); line-height: 1.55; color: var(--text-2); }
.mk-spalten strong { font-family: var(--sans); color: var(--text); display: block; font-size: var(--t-m); margin-bottom: .3rem; }

/* ───────── Fuß ───────── */
.fuss { background: var(--druck); color: #c9ccd1; margin-top: clamp(2rem, 5vw, 4rem); }
.fuss-innen { max-width: var(--breite); margin: 0 auto; padding: 3rem var(--rand) 2rem; display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 2rem; }
.fuss .marke { color: #fff; margin-bottom: 1rem; }
.fuss .marke-zeichen { background: #fff; color: var(--druck); }
.fuss-marke p:not(.marke) { font-family: var(--serif); margin: 0; }
.fuss-nav { display: flex; flex-direction: column; gap: .45rem; font-size: var(--t-s); }
.fuss-titel { color: #fff; font-weight: 650; margin: 0 0 .3rem; }
.fuss-nav a { color: #c9ccd1; text-decoration: none; }
.fuss-nav a:hover { color: #fff; text-decoration: underline; }
.fuss-quellen { max-width: var(--breite); margin: 0 auto; padding: 1.2rem var(--rand) 2rem; border-top: 1px solid #2c323b; font-size: var(--t-xs); color: #9aa0a8; }

/* ───────── Schublade (Register-Auszug) ───────── */
.schublade { position: fixed; inset: 0; z-index: 70; }
.schublade[hidden] { display: none; }
.schublade-hintergrund { position: absolute; inset: 0; background: rgba(16,19,24,.45); opacity: 0; transition: opacity var(--d2) var(--kurve); }
.schublade.offen .schublade-hintergrund { opacity: 1; }
.schublade-blatt { position: absolute; top: 0; right: 0; bottom: 0; width: min(560px, 100%); background: var(--blatt); overflow-y: auto; transform: translateX(24px); opacity: 0;
  transition: transform var(--d3) var(--kurve), opacity var(--d2) var(--kurve); border-left: 1px solid var(--druck); }
.schublade.offen .schublade-blatt { transform: none; opacity: 1; }
.schublade-zu { position: absolute; top: .8rem; right: .8rem; z-index: 2; background: var(--blatt); border: 1px solid var(--linie); border-radius: 4px; padding: .4rem; cursor: pointer; display: grid; }
.schublade-zu:hover { border-color: var(--druck); }
.auszug-kopf { position: relative; padding: 2.4rem 1.6rem 1.2rem; border-bottom: 1px solid var(--linie); }
.auszug-kopf .guilloche { position: absolute; inset: 0; width: 100%; height: 100%; }
.auszug-id { position: relative; display: flex; gap: 1rem; align-items: center; }
.regnr { margin: 0; font-size: var(--t-xs); color: var(--text-2); font-stretch: 112%; letter-spacing: .04em; }
.auszug h2 { font-size: var(--t-xl); font-weight: 760; font-stretch: 106%; }
.auszug .zusatz { margin: .2rem 0 0; font-family: var(--serif); color: var(--text-2); font-size: var(--t-s); }
.auszug > .geburtstag.gross { margin: 1rem 1.6rem 0; }
.auszug-zahl { padding: 1.2rem 1.6rem; border-bottom: 1px solid var(--linie); }
.kennzahl { margin: 0; line-height: 1; }
.kennzahl .z { font-size: var(--t-3xl); font-weight: 800; font-stretch: 118%; letter-spacing: -.03em; }
.kennzahl .e { font-size: var(--t-l); font-weight: 600; color: var(--text-2); }
.stand { margin: .7rem 0 0; display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .6rem; font-size: var(--t-xs); color: var(--text-2); }
.fakten { margin: 0; padding: .4rem 1.6rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.5rem; }
.fakten div { padding: .6rem 0; border-bottom: 1px solid var(--linie); }
.fakten dt { font-size: var(--t-xs); color: var(--text-2); }
.fakten dd { margin: 0; font-weight: 600; font-size: var(--t-s); }
.auszug-teil { padding: 1.2rem 1.6rem 0; }
.auszug-teil h3 { font-size: var(--t-s); font-weight: 650; margin-bottom: .6rem; }
.verbindungen { list-style: none; margin: 0; padding: 0; display: grid; gap: .1rem; }
.verbindungen button { width: 100%; display: grid; grid-template-columns: 28px 1fr auto; gap: .7rem; align-items: center; background: none; border: 0; border-bottom: 1px solid var(--linie); padding: .45rem 0; text-align: left; cursor: pointer; font-size: var(--t-s); }
.verbindungen button:hover span { text-decoration: underline; }
.verbindungen small { color: var(--text-2); font-size: var(--t-xs); text-align: right; }
.auszug-fuss { display: flex; flex-wrap: wrap; gap: .6rem; padding: 1.6rem; position: sticky; bottom: 0; background: linear-gradient(to top, var(--blatt) 75%, rgba(255,255,255,0)); }

/* ───────── Diagramme ───────── */
.diagramm { margin: 0; position: relative; }
.diagramm svg { width: 100%; height: auto; display: block; overflow: visible; }
.diagramm text { font-family: var(--sans); font-size: 12px; fill: var(--text-2); font-stretch: 90%; }
.diagramm.klein text { font-size: 18px; }
.diagramm .raster line { stroke: var(--linie); }
.diagramm .linie { fill: none; stroke: var(--druck); stroke-width: 2; vector-effect: non-scaling-stroke; }
.diagramm .flaeche { fill: var(--tinte); opacity: .07; }
.diagramm .punkte circle { fill: var(--blatt); stroke: var(--druck); stroke-width: 1.5; cursor: crosshair; }
.diagramm .punkte circle:hover, .diagramm .punkte circle.aktiv { fill: var(--stufe); r: 5; }
.diagramm.nachfrage rect { fill: var(--tinte); opacity: .8; }
.diagramm.nachfrage rect:hover { opacity: 1; fill: var(--signal); }
.tooltip { position: absolute; pointer-events: none; background: var(--druck); color: #fff; font-size: var(--t-xs); padding: .35rem .55rem; border-radius: 2px; white-space: nowrap; transform: translate(-50%, -130%); }

/* ───────── Dialog ───────── */
.alarm-dialog { border: 1px solid var(--druck); border-radius: 2px; padding: 0; width: min(520px, 94vw); box-shadow: 0 30px 80px -20px rgba(0,0,0,.5); }
.alarm-dialog::backdrop { background: rgba(16,19,24,.5); }
.alarm-form { padding: 1.6rem; }
.alarm-form h2 { font-size: var(--t-xl); font-weight: 760; margin-bottom: 1rem; }
.alarm-form p { font-family: var(--serif); color: var(--text-2); }
.alarm-arten { border: 0; padding: 0; margin: 0 0 1rem; display: grid; gap: .1rem; }
.alarm-arten legend { font-weight: 600; margin-bottom: .5rem; font-size: var(--t-s); }
.alarm-arten label { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; padding: .55rem 0; border-bottom: 1px solid var(--linie); font-size: var(--t-s); }
.alarm-arten input[type="text"] { border: 1.5px solid var(--linie); border-radius: 4px; padding: .3rem .5rem; font: inherit; width: 9rem; }
.alarm-arten input[type="text"]:focus { border-color: var(--druck); outline: none; }
.mail-schalter { display: flex; gap: .5rem; font-size: var(--t-s); color: var(--text-2); }
.alarm-meldung { min-height: 1.4em; margin: .8rem 0 0; }
.dialog-knoepfe { display: flex; justify-content: flex-end; gap: .6rem; margin-top: 1.2rem; }

/* ───────── Mobil ───────── */
@media (max-width: 1100px) {
  .hauptnav { display: none; }
  .start-kopf { grid-template-columns: 1fr; }
  .sk-heute { grid-template-columns: 1fr 1fr; }
  .rl-raster { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .kz-stand, .kz-fuss, .werkzeug-text, .werkzeug kbd { display: none; }
  .kopf-innen { height: 56px; gap: 1rem; }
  .marke-wort { font-size: 1.05rem; }
  .sk-heute { grid-template-columns: 1fr; }
  .sk-suche { flex-direction: column; }
  .sk-suche .knopf { border-radius: 0; }
  .abschnitt-kopf { grid-template-columns: 1fr; gap: .8rem; }
  .abschnitt-kopf .knopf { grid-column: 1; }
  .sp-stufe, .sp-bereich, .sp-land, .sp-alter { display: none; }
  .sp-person { min-width: 0; }
  .register-tabelle td { padding: .55rem .5rem; }
  .sp-rang { width: 40px; }
  td.sp-vermoegen { text-align: right; }
  .sp-vermoegen .beleg { display: none; }
  .register-filter { padding: .8rem; }
  .segmente, .noten { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; max-width: 100%; }
  .rl-liste { columns: 1; }
  .mk-spalten { grid-template-columns: 1fr; }
  .fuss-innen { grid-template-columns: 1fr 1fr; }
  .fuss-marke { grid-column: 1 / -1; }
  .vt-legende { margin-left: 0; }
  .vt-reihe { grid-template-columns: 1fr; gap: .3rem; }
  .balkenliste button { grid-template-columns: 1fr auto; }
  .bl-balken { grid-column: 1 / -1; grid-row: 2; }
  .fakten { grid-template-columns: 1fr; }
}

/* ───────── Unterseiten ───────── */
.seiten-kopf { max-width: var(--breite); margin: 0 auto; padding: clamp(2rem, 5vw, 4rem) var(--rand) 1.5rem; }
.seiten-kopf h1 { font-size: clamp(2.2rem, 5vw, 4.4rem); font-weight: 780; font-stretch: 110%; letter-spacing: -.035em; }
.seiten-kopf h1 .jahr { font-stretch: 125%; color: var(--text-3); }
.seiten-zusatz { font-family: var(--serif); font-size: var(--t-l); color: var(--text-2); margin: 1rem 0 0; line-height: 1.45; }
.vorzeile a { color: inherit; }
.abschnitt.eng { padding-top: 1rem; }
.rl-kopf-raster { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 2rem; align-items: end; }
.rl-kennzahlen { display: flex; gap: 2.5rem; margin: 0; flex-wrap: wrap; }
.rl-kennzahlen dt { font-size: var(--t-xs); color: var(--text-2); }
.rl-kennzahlen dd { margin: 0; font-size: var(--t-xl); font-weight: 760; font-stretch: 112%; }
.rl-stufen { display: flex; gap: 2px; height: 10px; margin: 2rem 0 0; }
.rl-stufen i { background: var(--stufe); }
.podest { list-style: none; margin: 2rem 0 0; padding: 0; display: grid; grid-template-columns: 1.25fr 1fr 1fr; gap: 1rem; }
.podest button { width: 100%; height: 100%; display: grid; grid-template-columns: auto auto 1fr; grid-template-rows: auto auto auto; column-gap: 1rem; align-items: center; text-align: left;
  background: var(--blatt); border: 1px solid var(--linie); border-top: 4px solid var(--druck); padding: 1.1rem 1.2rem; cursor: pointer; }
.podest button:hover { border-color: var(--druck); }
.podest-platz { grid-row: span 3; font-size: var(--t-3xl); font-weight: 820; font-stretch: 125%; line-height: .9; color: var(--text-3); }
.podest .avatar { grid-row: span 3; }
.podest-name { font-weight: 700; font-size: var(--t-l); line-height: 1.15; }
.podest-wert { font-weight: 650; color: var(--text-2); }
.platz-1 .podest-platz { color: var(--druck); }
.rl-alarm { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; padding: 1rem 1.2rem; background: var(--blatt); border: 1px dashed #b5b8b0; margin-bottom: 1.2rem; }
.rl-alarm p { margin: 0; font-size: var(--t-s); }
.register + .ki-hinweis { margin-top: 1.2rem; }
.rl-gruppen { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 2rem 3rem; }
.rl-gruppe-block h2 { font-size: var(--t-xl); font-stretch: 110%; font-weight: 760; padding-bottom: .5rem; border-bottom: 2px solid var(--druck); }
.rl-gruppe-block ul { list-style: none; margin: 0; padding: 0; }
.rl-gruppe-block a { display: grid; grid-template-columns: 1fr auto; padding: .8rem 0; border-bottom: 1px solid var(--linie); color: var(--text); text-decoration: none; }
.rl-gruppe-block a:hover .rg-titel { text-decoration: underline; }
.rg-titel { font-weight: 650; }
.rg-spitze { grid-row: 2; font-size: var(--t-xs); color: var(--text-2); }
.rg-n { grid-row: span 2; align-self: center; font-size: var(--t-xs); color: var(--text-2); }

/* Register-Blatt (Profil) */
.blatt-kopf { position: relative; background: var(--blatt); border-bottom: 2px solid var(--druck); overflow: hidden; }
.blatt-kopf > .guilloche { position: absolute; inset: 0; width: 100%; height: 100%; opacity: .22; }
.blatt-kopf-innen { position: relative; max-width: var(--breite); margin: 0 auto; padding: clamp(2rem, 5vw, 3.5rem) var(--rand); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2.5rem; align-items: end; }
.blatt-identitaet { display: flex; gap: 2rem; align-items: center; }
.avatar.gross { box-shadow: 0 0 0 4px var(--blatt), 0 0 0 7px var(--stufe); }
.blatt h1 { font-size: clamp(2.4rem, 5.5vw, var(--t-4xl)); font-weight: 800; font-stretch: 108%; letter-spacing: -.04em; line-height: .95; margin: .3rem 0 .5rem; }
.blatt-zusatz { font-family: var(--serif); font-size: var(--t-l); color: var(--text-2); margin: 0 0 1.2rem; }
.blatt-fakten { list-style: none; display: flex; gap: 2rem; margin: 0; padding: 0; flex-wrap: wrap; }
.blatt-fakten span { display: block; font-size: var(--t-xs); color: var(--text-2); }
.blatt-fakten strong { font-size: var(--t-l); font-weight: 720; font-stretch: 108%; }
.blatt-wert { text-align: right; min-width: 320px; }
.wert-label { margin: 0 0 .4rem; font-size: var(--t-s); color: var(--text-2); }
.kennzahl.gross .z { font-size: clamp(3.4rem, 7vw, 6.4rem); font-weight: 820; font-stretch: 122%; letter-spacing: -.04em; }
.kennzahl.gross .e { font-size: var(--t-xl); }
.blatt-wert .stand { justify-content: flex-end; }
.delta { font-weight: 650; } .delta.auf { color: var(--auf); } .delta.ab { color: var(--ab); }
.blatt-knoepfe { display: flex; gap: .6rem; justify-content: flex-end; margin-top: 1.2rem; flex-wrap: wrap; }
[data-merken][aria-pressed="true"] { background: var(--druck); color: var(--papier); }
.blatt-band { max-width: var(--breite); margin: 1.2rem auto 0; padding: 0 var(--rand); }
.blatt-raster { max-width: var(--breite); margin: 0 auto; padding: 2rem var(--rand) 0; display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: clamp(2rem, 5vw, 4.5rem); }
.blatt-teil { padding: 2rem 0; border-bottom: 1px solid var(--linie); }
.blatt-teil:first-child { padding-top: 0; }
.blatt-teil h2 { font-size: var(--t-2xl); font-weight: 760; font-stretch: 108%; letter-spacing: -.025em; }
@media (max-width: 760px) { .blatt-teil h2 { font-size: clamp(1.75rem, 8.4vw, var(--t-2xl)); } }  /* 40px ließ „Durchschnittsgehalt“ auf 360–414 px nicht in die Zeile */
.teil-zusatz { margin: .4rem 0 1.4rem; color: var(--text-2); font-size: var(--t-s); }
.zerlegt { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0; border-top: 2px solid var(--druck); }
.zerlegt div { padding: 1rem 1rem 1rem 0; border-bottom: 1px solid var(--linie); }
.zerlegt div:nth-child(3n+2), .zerlegt div:nth-child(3n) { padding-left: 1rem; border-left: 1px solid var(--linie); }
.zerlegt dt { font-size: var(--t-xs); color: var(--text-2); }
.zerlegt dd { margin: 0; font-size: var(--t-xl); font-weight: 760; font-stretch: 112%; }
.vergleich { font-family: var(--serif); font-size: var(--t-l); margin: 1.2rem 0 0; }
.artikel-meta { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.2rem; }
.fliesstext { font-family: var(--serif); font-size: 1.1875rem; line-height: 1.62; }
.fliesstext h2, .fliesstext h3 { font-family: var(--sans); font-weight: 720; letter-spacing: -.015em; margin: 2em 0 .6em; line-height: 1.15; }
.fliesstext h2 { font-size: var(--t-xl); } .fliesstext h3 { font-size: var(--t-l); }
.fliesstext p { margin: 0 0 1.1em; }
.fliesstext a { color: var(--tinte); }
.fliesstext img { height: auto; border-radius: 2px; }
.fliesstext table { width: 100%; border-collapse: collapse; font-family: var(--sans); font-size: var(--t-s); margin: 1.5em 0; }
.fliesstext th, .fliesstext td { border-bottom: 1px solid var(--linie); padding: .5rem .6rem; text-align: left; vertical-align: top; }
.fliesstext thead th, .fliesstext tr:first-child th { border-bottom: 2px solid var(--druck); }
.fliesstext ul, .fliesstext ol { padding-left: 1.2em; }
.fliesstext figure { margin: 1.5em 0; }
.blatt-rand { display: flex; flex-direction: column; gap: 2rem; }
.rand-teil h2 { font-size: var(--t-m); font-weight: 700; padding-bottom: .5rem; border-bottom: 2px solid var(--druck); margin-bottom: .6rem; }
.schaetzen form { display: grid; grid-template-columns: 1fr auto; gap: .5rem; }
.schaetzen input { width: 100%; border: 1.5px solid var(--druck); border-radius: 4px; padding: .7rem .8rem; font: inherit; }
.schaetz-ergebnis { grid-column: 1 / -1; margin: .4rem 0 0; font-size: var(--t-s); }
.firmen { list-style: none; margin: 0; padding: 0; }
.firmen li { display: flex; justify-content: space-between; gap: 1rem; padding: .45rem 0; border-bottom: 1px solid var(--linie); font-size: var(--t-s); }
.firmen small { color: var(--text-2); white-space: nowrap; }
.mini-tabelle { width: 100%; border-collapse: collapse; font-size: var(--t-s); }
.mini-tabelle th, .mini-tabelle td { padding: .45rem .3rem; border-bottom: 1px solid var(--linie); text-align: left; }
.mini-tabelle td { font-weight: 600; }
.mini-tabelle .klein { font-weight: 400; color: var(--text-2); font-size: var(--t-xs); }
.nachbarn { list-style: none; margin: 0; padding: 0; }
.nachbarn button { width: 100%; display: grid; grid-template-columns: 3rem 1fr auto; gap: .5rem; background: none; border: 0; border-bottom: 1px solid var(--linie); padding: .5rem 0; text-align: left; cursor: pointer; font-size: var(--t-s); }
.nachbarn button:hover .nb-name { text-decoration: underline; }
.nb-rang { color: var(--text-2); }
.nb-wert { font-weight: 650; }
.quellen p { font-size: var(--t-s); color: var(--text-2); margin: 0 0 .6rem; }
.klein { font-size: var(--t-xs); }
.artikel.ohne-register { max-width: var(--breite); margin: 0 auto; padding: 2rem var(--rand); }
.artikel-kopf-schlicht h1 { font-size: var(--t-3xl); font-weight: 780; margin-bottom: .6rem; }
.stand-zeile { color: var(--text-2); font-size: var(--t-s); }

/* Konto, Formulare */
.konto-raster { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 2rem; align-items: start; }
.formular { display: grid; gap: 1rem; background: var(--blatt); border: 1px solid var(--druck); padding: 1.6rem; }
.formular h2 { font-size: var(--t-xl); font-weight: 760; }
.formular label { display: grid; gap: .35rem; font-size: var(--t-s); font-weight: 600; }
.formular label small { font-weight: 400; color: var(--text-2); }
.formular input:not([type=file]):not([type=checkbox]), .formular select, .formular textarea { border: 1.5px solid var(--linie); border-radius: 4px; padding: .7rem .8rem; font: inherit; font-weight: 400; background: var(--blatt); width: 100%; }
.formular input:focus, .formular select:focus, .formular textarea:focus { border-color: var(--druck); outline: none; }
.formular .knopf { justify-self: start; }
.formular label.mail-schalter { display: flex; align-items: flex-start; gap: .5rem; font-weight: 500; }
.honig { position: absolute; left: -9999px; }
.formular-fehler { background: #fbe9e3; color: var(--signal-dunkel); padding: .8rem 1rem; border-left: 3px solid var(--signal); font-weight: 600; margin: 0 0 1rem; }
.konto-beispiele h2 { font-size: var(--t-l); font-weight: 720; margin-bottom: .6rem; }
.konto-beispiele ul { list-style: none; padding: 0; margin: 0; font-family: var(--serif); font-size: var(--t-m); }
.konto-beispiele > ul li { padding: .55rem 0 .55rem 1.6rem; border-bottom: 1px solid var(--linie); position: relative; }
.konto-beispiele > ul li::before { content: ""; position: absolute; left: 0; top: .95rem; width: 10px; height: 10px; border: 1.5px solid var(--signal); border-radius: 50%; }
.konto-tabs { display: flex; gap: 1.5rem; align-items: center; margin-top: 1.6rem; border-bottom: 1px solid var(--linie); flex-wrap: wrap; }
.konto-tabs a { padding: .7rem 0; text-decoration: none; color: var(--text-2); font-weight: 600; border-bottom: 3px solid transparent; }
.konto-tabs a[aria-current] { color: var(--text); border-bottom-color: var(--druck); }
.konto-tabs form { margin-left: auto; }
@media (max-width: 760px) { .konto-tabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; gap: 1.2rem; } .konto-tabs::-webkit-scrollbar { display: none; } .konto-tabs > * { flex: none; white-space: nowrap; } }   /* Reiter in einer Zeile, seitlich wischbar */
.link-knopf { background: none; border: 0; padding: 0; color: var(--tinte); text-decoration: underline; cursor: pointer; font-size: var(--t-s); }
.konto-tabelle { width: 100%; border-collapse: collapse; background: var(--blatt); border: 1px solid var(--druck); font-size: var(--t-s); }
.konto-tabelle th, .konto-tabelle td { padding: .7rem .9rem; border-bottom: 1px solid var(--linie); text-align: left; }
.konto-tabelle thead th { border-bottom: 1px solid var(--druck); font-size: var(--t-xs); color: var(--text-2); }
.leerzustand { font-family: var(--serif); font-size: var(--t-l); color: var(--text-2); background: var(--blatt); border: 1px dashed #b5b8b0; padding: 2rem; }
.meldungsliste { list-style: none; margin: 0; padding: 0; background: var(--blatt); border: 1px solid var(--druck); }
.meldungsliste a { display: grid; gap: .2rem; padding: .9rem 1.1rem; border-bottom: 1px solid var(--linie); color: var(--text); text-decoration: none; }
.meldungsliste li.neu a { box-shadow: inset 3px 0 0 var(--signal); }
.meldungsliste span, .meldungsliste time { font-size: var(--t-xs); color: var(--text-2); }

/* Geburtstagskalender */
.kalender { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1rem; }
.kalender > li { background: var(--blatt); border: 1px solid var(--linie); padding: 1rem 1.1rem; }
.kalender > li.heute { border: 2px solid var(--signal); }
.kalender > li.vorbei { opacity: .72; }
.kalender h2 { display: flex; align-items: baseline; gap: .4rem; font-size: var(--t-l); padding-bottom: .5rem; border-bottom: 1px solid var(--druck); margin-bottom: .3rem; }
.k-tag { font-size: var(--t-2xl); font-weight: 820; font-stretch: 125%; }
.k-wochentag { margin-left: auto; font-size: var(--t-xs); font-weight: 600; color: var(--text-2); }
.heute .k-wochentag { color: #fff; background: var(--signal); padding: .1rem .45rem; border-radius: 2px; }
.kalender ul { list-style: none; margin: 0; padding: 0; }
.kalender ul button { width: 100%; display: grid; grid-template-columns: 36px 1fr auto auto; gap: .6rem; align-items: center; background: none; border: 0; border-bottom: 1px solid var(--linie); padding: .45rem 0; text-align: left; cursor: pointer; font-size: var(--t-s); }
.kalender ul button:hover .k-name { text-decoration: underline; }
.k-name { font-weight: 600; }
.k-alter { font-weight: 800; font-stretch: 120%; }
.k-wert { font-size: var(--t-xs); color: var(--text-2); min-width: 5.5em; text-align: right; }
.k-leer { font-size: var(--t-xs); color: var(--text-3); margin: .6rem 0 0; }

/* Abgeordnete, Beziehungen */
.balkenliste.mit-rang .bl-name { display: grid; grid-template-columns: 2.2rem 1fr; }
.balkenliste .bl-name small { grid-column: 2; font-weight: 400; color: var(--text-2); font-size: var(--t-xs); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bl-rang { grid-row: span 2; color: var(--text-3); font-stretch: 112%; }
.balkenliste.mit-rang button { grid-template-columns: minmax(240px, 380px) 1fr auto; }
.kreise { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.kreis { background: var(--blatt); border: 1px solid var(--linie); padding: 1.1rem; }
.kreis.gross { grid-column: span 2; grid-row: span 2; border-color: var(--druck); }
.kreis h2 { font-size: var(--t-l); font-weight: 720; }
.kreis h2 button { background: none; border: 0; padding: 0; font: inherit; cursor: pointer; text-align: left; }
.kreis h2 button:hover { text-decoration: underline; }
.kreis-zusatz { margin: .2rem 0 .6rem; font-size: var(--t-xs); color: var(--text-2); }
.kreis:not(.gross) .netz .r { display: none; }
.kreis:not(.gross) .netz .n { font-size: 20px; }
.kreis:not(.gross) .netz-legende { display: none; }
.paare { list-style: none; margin: 0; padding: 0; }
.paare li { display: grid; grid-template-columns: minmax(0, 1.2fr) 1fr auto; gap: 1.5rem; align-items: center; padding: .8rem 0; border-bottom: 1px solid var(--linie); }
.paar-namen button { background: none; border: 0; padding: 0; font: inherit; font-weight: 650; cursor: pointer; }
.paar-namen button:hover { text-decoration: underline; }
.paar-balken { display: flex; gap: 2px; height: 12px; }
.paar-balken i:first-child { background: var(--druck); } .paar-balken i:last-child { background: var(--signal); }
.paar-wert { font-weight: 700; min-width: 7em; text-align: right; }

/* Löschantrag, Methodik, Listen */
.la-raster { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 3rem; align-items: start; }
.person-wahl { position: relative; }
.suche-treffer.wahl { position: absolute; left: 0; right: 0; background: var(--blatt); border: 1px solid var(--druck); z-index: 5; }
.suche-treffer.wahl button { display: block; grid-template-columns: none; padding: .55rem .8rem; }
.la-ablauf h2 { font-size: var(--t-l); font-weight: 720; margin-bottom: .6rem; }
.la-ablauf ol { margin: 0; padding-left: 1.2rem; font-family: var(--serif); font-size: var(--t-m); }
.la-ablauf li { padding: .4rem 0; }
.bestaetigung { background: var(--blatt); border: 2px solid var(--auf); padding: 1.6rem; }
.bestaetigung h2 { font-size: var(--t-xl); margin-bottom: .4rem; }
.methodik .fliesstext h2:first-child { margin-top: 0; }
.mini-tabelle.breit { max-width: 40em; }
.stufen-liste { list-style: none; padding: 0; display: grid; gap: .4rem; font-family: var(--sans); font-size: var(--t-s); }
.beitragsliste { list-style: none; margin: 0; padding: 0; }
.beitragsliste a { display: flex; justify-content: space-between; gap: 1rem; padding: .7rem 0; border-bottom: 1px solid var(--linie); color: var(--text); text-decoration: none; }
.bt-datum { color: var(--text-2); font-size: var(--t-xs); }

@media (max-width: 1100px) {
  .blatt-kopf-innen, .blatt-raster, .la-raster, .rl-kopf-raster { grid-template-columns: minmax(0, 1fr); }  /* minmax(0): langer Inhalt darf die Spalte nicht über den Schirm hinaus verbreitern */
  .blatt-wert { text-align: left; min-width: 0; }
  .blatt-wert .stand, .blatt-knoepfe { justify-content: flex-start; }
  .konto-raster { grid-template-columns: 1fr 1fr; }
  .kreise { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  .blatt-identitaet { flex-direction: column; align-items: flex-start; gap: 1rem; }
  .blatt-identitaet .avatar.gross { --g: 104px !important; }
  .podest { grid-template-columns: 1fr; }
  .zerlegt { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .zerlegt dd { font-size: clamp(1.25rem, 6.4vw, var(--t-xl)); }
  .zerlegt div:nth-child(n) { padding-left: 0; border-left: 0; }
  .zerlegt div:nth-child(2n) { padding-left: 1rem; border-left: 1px solid var(--linie); }
  .konto-raster, .kreise { grid-template-columns: 1fr; }
  .kreis.gross { grid-column: auto; grid-row: auto; }
  .paare li { grid-template-columns: 1fr auto; }
  .paar-balken { grid-column: 1 / -1; grid-row: 2; }
  .balkenliste.mit-rang button { grid-template-columns: 1fr auto; }
}

/* ───────── Runde 1: Korrekturen ───────── */
.start-kopf h1 { font-size: clamp(2.3rem, 5vw, 4.6rem); font-weight: 560; font-stretch: 100%; line-height: 1.02; letter-spacing: -.03em; }
.sk-zahl { font-weight: 830; font-stretch: 125%; letter-spacing: -.035em; }
.abschnitt { padding: clamp(2rem, 4.5vw, 3.75rem) var(--rand); }
.abschnitt-kopf h2 { font-size: clamp(1.9rem, 3.2vw, 2.75rem); font-stretch: 106%; }
.abschnitt-kopf { grid-template-columns: minmax(0, 1fr); }
.register-tabelle td { padding: .45rem .8rem; }
.register-tabelle .avatar { --g: 34px !important; width: 34px; height: 34px; }
.pn-name { font-size: var(--t-s); }
.sp-stufe { width: 110px; }
.register.kompakt .register-filter { padding: .8rem 1.2rem; }
.register-fuss .knopf.haupt { min-width: 320px; }
.noten .note { opacity: 1; filter: saturate(.55) brightness(1.08); }
.noten label:hover .note, .noten input:checked + .note { filter: none; }
.heute-blatt .avatar { display: grid; }
.heute-vorzeile { margin-bottom: .9rem; }
.text-stand { font-size: var(--t-s); color: var(--text-2); background: var(--blatt); border-left: 3px solid var(--tinte); padding: .7rem 1rem; margin: 0 0 1.4rem; }
.fliesstext img { max-height: 460px; width: auto; object-fit: cover; }
.fliesstext > p:first-child img:first-child, .fliesstext > figure:first-child { display: none; }

/* ───────── Runde 2 ───────── */
.start-kopf { position: relative; }
.start-kopf > * { position: relative; }
.kopf-muster { position: absolute !important; left: 0; right: 0; top: 0; width: 100%; height: 100%; opacity: .09; stroke: var(--tinte); pointer-events: none;
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, transparent 85%); mask-image: linear-gradient(to bottom, #000 0%, transparent 85%); }
.gefragt { margin-top: 2.2rem; max-width: 760px; }
.klein-titel span { font-weight: 400; color: var(--text-2); font-size: var(--t-xs); margin-left: .5rem; }
.gefragt ol { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; column-gap: 2rem; }
.gefragt button { width: 100%; display: grid; grid-template-columns: 40px 1fr auto; grid-template-rows: auto auto; column-gap: .7rem; align-items: center; text-align: left;
  background: none; border: 0; border-bottom: 1px solid var(--linie); padding: .55rem 0; cursor: pointer; }
.gefragt .avatar { grid-row: span 2; }
.gf-name { font-weight: 650; font-size: var(--t-s); display: flex; flex-direction: column; }
.gf-name small { font-weight: 400; color: var(--text-2); font-size: var(--t-xs); }
.gefragt button:hover .gf-name { text-decoration: underline; }
.gf-trend { grid-row: 1; grid-column: 3; color: var(--auf); font-weight: 700; font-size: var(--t-s); text-align: right; }
.gf-wert { grid-row: 2; grid-column: 3; color: var(--text-2); font-size: var(--t-xs); text-align: right; }
.sk-oft { margin-top: 1.4rem; }
.spark { display: inline-flex; align-items: center; gap: .6rem; white-space: nowrap; }
.spark svg { overflow: visible; }
.spark path { fill: none; stroke: var(--druck); stroke-width: 1.4; stroke-linejoin: round; }
.spark circle { fill: var(--signal); }
.spark .delta { font-size: var(--t-xs); min-width: 3.6em; text-align: right; }
.register-tabelle .sp-stufe { width: 170px; }
.register-tabelle thead .sp-stufe span { padding: .6rem .8rem; display: block; }
@media (max-width: 760px) { .gefragt ol { grid-template-columns: 1fr; } }

/* ───────── Runde 3: Alarm-Baukasten, Feinschliff ───────── */
.start-kopf { padding-bottom: clamp(1rem, 3vw, 2rem); }
.gf-name small, .pn-zusatz { display: block; max-width: 34em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.alarm-baukasten { max-width: none; background: var(--blatt); border-top: 2px solid var(--druck); border-bottom: 2px solid var(--druck); }
.ab-innen { max-width: calc(var(--breite) - 2 * var(--rand)); margin: 0 auto; }
.alarm-baukasten h2 { font-size: var(--t-s); font-weight: 650; color: var(--text-2); margin-bottom: 1rem; }
.ab-satz { display: flex; flex-wrap: wrap; align-items: baseline; gap: .6rem .8rem; font-family: var(--serif); font-size: clamp(1.4rem, 2.6vw, 2.1rem); line-height: 1.3; }
.ab-satz input, .ab-satz select { font: inherit; font-family: var(--sans); font-weight: 700; font-stretch: 105%; border: 0; border-bottom: 2px solid var(--druck); background: transparent;
  padding: .05em .1em; color: var(--text); border-radius: 0; }
.ab-satz input:focus, .ab-satz select:focus { outline: none; border-bottom-color: var(--signal); background: #fbf3ef; }
.ab-satz [data-baukasten-person] { width: 11em; }
.ab-satz [data-baukasten-betrag] { width: 5.5em; }
.ab-satz select { cursor: pointer; padding-right: .3em; }
.ab-satz .knopf { font-family: var(--sans); align-self: center; margin-left: .4rem; }
.ab-person { position: relative; display: inline-block; }
.ab-person .wahl { font-size: var(--t-s); top: 100%; min-width: 18em; }
.ab-person .wahl small { color: var(--text-2); margin-left: .4rem; }
.ab-meldung { min-height: 1.4em; margin: .8rem 0 0; font-weight: 600; color: var(--auf); }
.ab-zusatz { margin: .2rem 0 0; font-size: var(--t-s); color: var(--text-2); }
.diagramm.klein text { font-size: 12px; }
.ab-satz input, .ab-satz select { field-sizing: content; min-width: 3ch; }
.ab-satz [data-baukasten-person] { min-width: 9em; width: auto; }
.segmente span, .schalter span { white-space: nowrap; }
.kreis .netz svg { overflow: visible; }
@media (max-width: 760px) {
  .abschnitt-kopf { grid-template-columns: 1fr; }
  .pn-zusatz, .gf-name small { max-width: 52vw; }
  .register-tabelle .sp-stufe { display: none; }
  .heute-weitere { overflow-wrap: anywhere; }
  .ab-satz { font-size: 1.35rem; }
  .gefragt button { grid-template-columns: 40px 1fr auto; }
}

/* ───────── Runde 4 ───────── */
.partei-tabelle { width: 100%; border-collapse: collapse; font-size: var(--t-s); }
.partei-tabelle th, .partei-tabelle td { padding: .7rem .6rem; border-bottom: 1px solid var(--linie); text-align: left; }
.partei-tabelle thead th { font-size: var(--t-xs); color: var(--text-2); border-bottom: 1px solid var(--druck); font-weight: 600; }
.partei-tabelle tbody th { font-weight: 700; font-size: var(--t-m); width: 9rem; }
.pt-balken { display: flex; align-items: center; gap: 1rem; width: 55%; }
.pt-balken .bl-balken { flex: 1; }
.pt-balken span:last-child { min-width: 7em; font-weight: 650; text-align: right; }
.glocke-vorschau { background: var(--blatt); border: 1px solid var(--druck); margin-bottom: 1.8rem; box-shadow: 0 18px 40px -24px rgba(16,19,24,.35); }
.glocke-vorschau .gp-kopf strong { display: inline-flex; gap: .4rem; align-items: center; }
.zaehler-statisch { background: var(--signal); color: #fff; font-size: var(--t-xs); font-weight: 700; padding: .05rem .45rem; border-radius: 9px; }
.glocke-vorschau .gp-zeile { display: block; padding: .75rem 1rem; border-bottom: 1px solid var(--linie); box-shadow: inset 3px 0 0 var(--signal); }
@media (max-width: 760px) {
  .pn-zusatz { max-width: 36vw; }
  .sp-rang { width: 30px; padding-left: .3rem !important; }
  .sp-vermoegen .betrag { font-size: var(--t-s); margin-right: 0; }
  td.sp-person { gap: .5rem; }
  .pt-balken { width: auto; }
  .partei-tabelle td:nth-child(2), .partei-tabelle th:nth-child(2) { display: none; }
}
.partei-tabelle td.pt-summe { width: 55%; }
.pt-balken { width: 100%; }
.partei-tabelle td:last-child, .partei-tabelle th:last-child { text-align: right; }

@media (max-width: 760px) {
  .register-tabelle { table-layout: fixed; }
  .register-tabelle th.sp-rang, .register-tabelle td.sp-rang { width: 46px; }
  .register-tabelle th.sp-vermoegen, .register-tabelle td.sp-vermoegen { width: 96px; }
  .register-tabelle th.sp-person { width: auto; }
  td.sp-person { display: flex; min-width: 0; overflow: hidden; }
  .pn { min-width: 0; }
  .pn-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
  .pn-zusatz { max-width: 100%; }
}

/* ═════════ Version 0.2: „Register“ in groß ═════════ */
body { background-color: var(--papier);
  background-image: repeating-linear-gradient(115deg, rgba(29,58,110,.018) 0 1px, transparent 1px 7px), repeating-linear-gradient(65deg, rgba(29,58,110,.014) 0 1px, transparent 1px 9px);
  padding-bottom: 44px; }
.knopf.klein { padding: .45rem .8rem; font-size: var(--t-xs); }
.vorzeile.hell { color: #b9bec6; } .vorzeile.hell::before { background: #eef0f2; }
.admin-hinweis { max-width: var(--breite); margin: 1rem auto 0; padding: .6rem var(--rand); background: #fff4d6; border-left: 4px solid #b8932f; font-size: var(--t-s); }
.unveroeffentlicht { opacity: .55; text-decoration-style: dashed !important; }
.block-titel { font-size: var(--t-xl); font-weight: 760; font-stretch: 106%; letter-spacing: -.02em; padding-bottom: .5rem; border-bottom: 2px solid var(--druck); margin: 0 0 .6rem; }

/* Mega-Menü */
.hauptnav { align-items: center; }
.mega-wrap { position: relative; }
.mega-knopf { background: none; border: 0; color: var(--text-2); font-size: var(--t-s); font-weight: 500; padding: 1.4rem 0 1.2rem; border-bottom: 3px solid transparent; cursor: pointer; }
.mega-knopf::after { content: " ▾"; font-size: .7em; }
.mega-knopf:hover, .mega-knopf[aria-expanded="true"] { color: var(--text); }
.mega-knopf.aktiv { color: var(--text); border-bottom-color: var(--druck); }
.mega { position: fixed; left: 0; right: 0; top: 64px; background: var(--druck); color: #eef0f2; z-index: 40; border-top: 1px solid #2c323b; box-shadow: 0 30px 60px -30px rgba(0,0,0,.6); }
.mega-innen { max-width: var(--breite); margin: 0 auto; padding: 2rem var(--rand); display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 1.6rem 2rem; }
.mega-titel { margin: 0 0 .6rem; font-size: var(--t-xs); color: #9aa0a8; font-weight: 600; }
.mega-link { display: block; color: #eef0f2; text-decoration: none; padding: .3rem 0; font-size: var(--t-s); }
.mega-link:hover { color: #fff; text-decoration: underline; }
.mega-alle { align-self: end; }

/* Kopf: dunkles Band mit Punktfeld */
.start-held { position: relative; background: radial-gradient(120% 90% at 75% 40%, #1a2230 0%, #0b0e12 70%); color: #fff; overflow: hidden; min-height: clamp(560px, 78vh, 760px); }
.held-feld { position: absolute; inset: 0 0 0 30%; }
.held-feld canvas { display: block; }
.held-text { position: relative; z-index: 2; max-width: var(--breite); margin: 0 auto; padding: clamp(2.5rem, 7vw, 6rem) var(--rand) 3rem; pointer-events: none; }
.held-text > * { pointer-events: auto; max-width: 640px; }
.start-held h1 { font-size: clamp(2.4rem, 5.4vw, 4.8rem); font-weight: 560; line-height: 1.02; letter-spacing: -.03em; text-shadow: 0 2px 30px rgba(0,0,0,.6); }
.start-held .sk-zahl { color: #fff; }
.held-unter { font-family: var(--serif); font-size: var(--t-l); color: #c9ccd1; margin: 1.4rem 0 1.8rem; }
.sk-suche.dunkel { border-color: #fff; background: rgba(16,19,24,.85); backdrop-filter: blur(6px); }
.sk-suche.dunkel input { color: #fff; } .sk-suche.dunkel input::placeholder { color: #9aa0a8; } .sk-suche.dunkel .icon { color: #9aa0a8; }
.sk-suche.dunkel .suche-treffer.start { color: var(--text); }
.held-legende { display: flex; gap: 3px; align-items: center; margin-top: 1.4rem; font-size: var(--t-xs); color: #9aa0a8; flex-wrap: wrap; }
.held-legende > span:last-child { margin-left: .6rem; }
@media (max-width: 900px) { .held-feld { inset: auto 0 0 0; height: 46%; opacity: .9; } .start-held { min-height: 820px; } }

/* Heute-Band */
.heute-band { background: var(--blatt); border-bottom: 1px solid var(--linie); }
.heute-innen { max-width: var(--breite); margin: 0 auto; padding: 2rem var(--rand); display: grid; grid-template-columns: 340px 1fr 1fr; gap: 2.5rem; align-items: start; }
.kompakt-liste { list-style: none; margin: 0; padding: 0; }
.kl-zeile { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; gap: .7rem; align-items: center; padding: .5rem 0; border-bottom: 1px solid var(--linie); color: var(--text); text-decoration: none; background: none; border-left: 0; border-right: 0; border-top: 0; width: 100%; text-align: left; cursor: pointer; font: inherit; }
.kl-zeile:hover .kl-name { text-decoration: underline; }
.kl-name { font-weight: 650; font-size: var(--t-s); display: flex; flex-direction: column; min-width: 0; }
.kl-name small { font-weight: 400; color: var(--text-2); font-size: var(--t-xs); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kl-wert { text-align: right; display: flex; flex-direction: column; font-size: var(--t-s); font-weight: 700; }
.kl-wert small { font-weight: 400; color: var(--text-2); font-size: var(--t-xs); }
.kl-wert .auf { color: var(--auf); }
@media (max-width: 1000px) { .heute-innen { grid-template-columns: 1fr; } }

/* Register: technische Filter */
.feldgruppe { display: flex; flex-wrap: wrap; gap: .6rem; align-items: end; }
.mini-feld { display: grid; gap: .15rem; font-size: .72rem; color: var(--text-2); font-weight: 600; }
.mini-feld select, .mini-feld input { font: inherit; font-size: var(--t-xs); font-weight: 500; color: var(--text); border: 1px solid var(--linie); border-radius: 3px; padding: .38rem .5rem; background: var(--blatt); }
.mini-feld input { width: 5.5rem; }
.mini-feld select:focus, .mini-feld input:focus { border-color: var(--druck); outline: none; }
.abfragezeit { color: var(--text-3); font-size: var(--t-xs); }
.export { font-size: var(--t-xs); }
.register-tabelle a.pn-name { color: var(--text); text-decoration: none; font-weight: 650; }
.register-tabelle a.pn-name:hover { text-decoration: underline; }
.register-tabelle button.pn-name { background: none; border: 0; padding: 0; font: inherit; font-weight: 650; cursor: pointer; text-align: left; color: var(--text); }

/* Ticker unten */
.ticker { position: fixed; left: 0; right: 0; bottom: 0; z-index: 35; height: 40px; display: flex; align-items: center; background: var(--druck); color: #eef0f2; border-top: 2px solid var(--signal); font-size: var(--t-s); font-stretch: 92%; padding-bottom: env(safe-area-inset-bottom, 0px); }
.ticker-marke { flex: none; background: var(--signal); color: #fff; font-weight: 700; padding: 0 .9rem; height: 100%; display: grid; place-items: center; font-size: var(--t-xs); letter-spacing: .02em; }
.ticker-bahn { flex: 1; overflow: hidden; min-width: 0; -webkit-mask-image: linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent); mask-image: linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent); }
.ticker-band { display: inline-flex; white-space: nowrap; animation: ticker 120s linear infinite; will-change: transform; }
.ticker:hover .ticker-band, .ticker:focus-within .ticker-band, .ticker.pausiert .ticker-band { animation-play-state: paused; }
@keyframes ticker { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .ticker-band { animation: none; } .ticker-bahn { overflow-x: auto; } }
.t-eintrag { display: inline-flex; gap: .45rem; align-items: center; padding: 0 1.2rem; height: 40px; color: inherit; text-decoration: none; background: none; border: 0; border-right: 1px solid #2c323b; font: inherit; cursor: pointer; }
.t-eintrag:hover .t-name { text-decoration: underline; }
.t-name { font-weight: 650; } .t-wert { color: #c9ccd1; }
.t-delta.auf { color: #6fd39a; } .t-delta.ab { color: #ff8f84; }
.t-geburtstag .t-name::before { content: "Heute Geburtstag · "; color: var(--signal); font-weight: 700; }
.t-tod .t-name::before { content: "† "; } .t-nebentaetigkeit .t-name::before { content: "Neue Nebentätigkeit · "; color: #9aa0a8; font-weight: 400; } .t-sprung .t-name::before { content: "Sprung · "; color: #9aa0a8; font-weight: 400; }
.ticker-pause { flex: none; background: none; border: 0; border-left: 1px solid #2c323b; color: #c9ccd1; width: 44px; height: 100%; cursor: pointer; font-size: .7rem; }
.ticker-pause:hover { color: #fff; }

/* Visualisierungen */
.viz-tip { position: fixed; z-index: 90; pointer-events: none; background: var(--druck); color: #fff; font-size: var(--t-xs); line-height: 1.4; padding: .45rem .65rem; border-radius: 2px; max-width: 280px; box-shadow: 0 10px 30px -10px rgba(0,0,0,.5); }
.viz-tip small { color: #b9bec6; }
.netz-abschnitt .abschnitt-kopf { margin-bottom: 1rem; }
.netz-suche { position: relative; max-width: 520px; margin-bottom: 1rem; }
.netz-suche label { display: flex; align-items: center; gap: .6rem; border: 1.5px solid currentColor; border-radius: 4px; padding: 0 .8rem; background: rgba(255,255,255,.04); }
.netz-suche input { flex: 1; border: 0; background: none; font: inherit; color: inherit; padding: .7rem 0; outline: none; min-width: 0; }
.netz-suche.gross { max-width: 680px; margin-top: 1.6rem; }
.netz-suche.gross label { border-color: var(--druck); background: var(--blatt); }
.netz-suche.gross input { font-size: var(--t-l); }
.netz-suche .wahl { color: var(--text); }
.kraftnetz { position: relative; height: 560px; border: 1px solid #2c323b; background: radial-gradient(80% 80% at 50% 50%, #161c25, #0d1015); border-radius: 2px; overflow: hidden; }
.kraftnetz.hoch { height: min(78vh, 760px); }
.kraftnetz.profil { height: 420px; background: var(--blatt); border-color: var(--linie); }
.kraftnetz:not(.fertig)::after { content: "Netz wird berechnet …"; position: absolute; inset: 0; display: grid; place-items: center; color: #9aa0a8; font-size: var(--t-s); }
.kraftnetz svg { width: 100%; height: 100%; display: block; cursor: grab; }
.kraftnetz .kante { stroke-width: 1.2; transition: opacity var(--d1) var(--kurve); }
.kraftnetz .k-ehe { stroke: var(--signal); stroke-width: 1.8; } .kraftnetz .k-familie { stroke: #8f98a6; } .kraftnetz .k-firma { stroke: #5b6574; stroke-dasharray: 3 3; }
.kraftnetz.profil .k-familie { stroke: #4e5560; } .kraftnetz.profil .k-firma { stroke: #9aa0a8; }
.kraftnetz .knoten { cursor: pointer; transition: opacity var(--d1) var(--kurve); }
.kraftnetz .knoten text { fill: #dfe3e8; font-family: var(--sans); font-size: 11px; font-weight: 600; paint-order: stroke; stroke: #0d1015; stroke-width: 3px; pointer-events: none; }
.kraftnetz.profil .knoten text { fill: var(--text); stroke: #fff; }
.kraftnetz .blass { opacity: .12; }
.netz-legende.hell { color: #c9ccd1; } .netz-legende.hell a { color: #fff; }
.abschnitt.voll { padding-left: 0; padding-right: 0; }
.abschnitt.voll .kraftnetz { border-left: 0; border-right: 0; }
.treemap { position: relative; }
.treemap svg { width: 100%; display: block; }
.treemap svg:not([viewBox]) { aspect-ratio: 2 / 1; min-height: 360px; max-height: 560px; }   /* Fläche vor dem Zeichnen reservieren (= viz.js: Höhe = Breite/2, 360–560 px) – kein Layoutsprung */
.treemap [data-zurueck] { margin-bottom: .8rem; }
.tm-zelle { cursor: pointer; } .tm-zelle rect { transition: filter var(--d1) var(--kurve); } .tm-zelle:hover rect { filter: brightness(1.35); }
.tm-name { fill: #fff; font-family: var(--sans); font-weight: 700; font-size: 13px; } .tm-wert { fill: #b9bec6; font-family: var(--sans); font-size: 12px; }

/* Jahreskalender (Heatmap) */
.jahreskalender { background: var(--blatt); border: 1px solid var(--druck); padding: 1.2rem; overflow-x: auto; }
.kal-raster { display: grid; gap: 3px; min-width: 760px; }
.kal-zeile { display: grid; grid-template-columns: 2.6rem repeat(31, 1fr); gap: 3px; align-items: center; }
.kal-monat { font-size: var(--t-xs); color: var(--text-2); font-weight: 600; }
.kal-tag { aspect-ratio: 1; border-radius: 2px; display: block; }
a.kal-tag:hover { outline: 2px solid var(--signal); outline-offset: 1px; }
.kal-tag.heute { outline: 2px solid var(--signal); }
.monat-kopf { display: flex; justify-content: space-between; align-items: end; gap: 1rem; flex-wrap: wrap; border-bottom: 2px solid var(--druck); padding-bottom: .6rem; margin-bottom: 1rem; }
.monat-kopf h2 { font-size: var(--t-2xl); font-weight: 780; font-stretch: 110%; }
.monat-nav { display: flex; flex-wrap: wrap; gap: .25rem; }
.monat-nav a { padding: .3rem .55rem; border: 1px solid var(--linie); border-radius: 3px; font-size: var(--t-xs); text-decoration: none; color: var(--text); background: var(--blatt); }
.monat-nav a[aria-current] { background: var(--druck); color: var(--papier); border-color: var(--druck); }
.kalender h3 { font-size: var(--t-m); display: flex; gap: .5rem; align-items: baseline; padding-bottom: .4rem; border-bottom: 1px solid var(--druck); margin-bottom: .2rem; }
.kalender .k-titel { color: var(--text); text-decoration: none; font-weight: 750; } a.k-titel:hover { text-decoration: underline; }
.k-zeile { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto 5.5em; gap: .6rem; align-items: center; padding: .4rem 0; border-bottom: 1px solid var(--linie); color: var(--text); text-decoration: none; background: none; border-left: 0; border-right: 0; border-top: 0; width: 100%; font: inherit; text-align: left; cursor: pointer; }
.k-zeile:hover .k-name { text-decoration: underline; }
.k-zeile .k-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--t-s); }
.k-zeile .k-wert { text-align: right; }

/* Personenkarten (Tagesseiten, Erben) – Wert immer auf gleicher Höhe */
.tag-karten { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(360px, 1fr)); gap: .8rem; }
.karte-person { display: grid; grid-template-columns: auto auto minmax(0, 1fr) auto; gap: .9rem; align-items: center; background: var(--blatt); border: 1px solid var(--linie); border-left: 0; box-shadow: inset 4px 0 0 var(--stufe); padding: .9rem 1rem .9rem 1.1rem; }
.kp-platz { font-weight: 820; font-stretch: 125%; color: var(--text-3); min-width: 1.6rem; }
.karte-person:not(:has(.kp-platz)) { grid-template-columns: auto minmax(0, 1fr) auto; }
.kp-text { min-width: 0; display: flex; flex-direction: column; }
.kp-name { font-weight: 700; color: var(--text); text-decoration: none; font-size: var(--t-m); background: none; border: 0; padding: 0; text-align: left; cursor: pointer; font-family: inherit; }
.kp-name:hover { text-decoration: underline; }
.kp-zusatz { font-size: var(--t-xs); color: var(--text-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kp-zahlen { display: flex; flex-direction: column; align-items: flex-end; min-width: 6.5em; }
.kp-wert { font-weight: 750; font-size: var(--t-m); white-space: nowrap; }
.kp-alter { font-size: var(--t-xs); color: var(--text-2); }
.tag-blaettern { display: flex; justify-content: space-between; gap: .6rem; flex-wrap: wrap; margin-top: 2rem; }

/* Podest – feste Zeilen, Wert immer unten auf gleicher Höhe */
.podest li { display: grid; grid-template-columns: auto auto minmax(0, 1fr); grid-template-rows: auto 1fr auto; column-gap: 1rem; align-items: start;
  background: var(--blatt); border: 1px solid var(--linie); border-top: 4px solid var(--stufe, var(--druck)); padding: 1.1rem 1.2rem; min-height: 132px; }
.podest .podest-platz { grid-row: 1 / 4; align-self: center; }
.podest .avatar { grid-row: 1 / 4; align-self: center; }
.podest-name { grid-column: 3; font-weight: 750; font-size: var(--t-l); line-height: 1.15; }
.podest-name a, .podest-name button { color: var(--text); text-decoration: none; background: none; border: 0; padding: 0; font: inherit; cursor: pointer; text-align: left; }
.podest-name a:hover { text-decoration: underline; }
.podest-zusatz { grid-column: 3; font-size: var(--t-xs); color: var(--text-2); }
.podest-wert { grid-column: 3; grid-row: 3; align-self: end; font-size: var(--t-xl); font-weight: 780; font-stretch: 110%; }

/* Paare */
.paare-filter { display: flex; flex-wrap: wrap; gap: .8rem 1.2rem; align-items: center; margin-bottom: 1.2rem; }
.paare { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.paar { background: var(--blatt); border: 1px solid var(--linie); padding: .9rem 1.1rem 1rem; }
.paar-kopf { display: grid; grid-template-columns: 1fr auto 1fr; gap: 1rem; align-items: baseline; margin-bottom: .5rem; }
.paar-a { color: var(--druck); } .paar-b { color: var(--signal-dunkel); text-align: right; }
.paar-a a, .paar-a button { color: var(--druck); font-weight: 750; } .paar-b a, .paar-b button { color: var(--signal-dunkel); font-weight: 750; }
.paar a, .paar button { text-decoration: none; background: none; border: 0; padding: 0; font: inherit; font-weight: 750; cursor: pointer; }
.paar a:hover { text-decoration: underline; }
.paar small { color: var(--text-2); font-weight: 500; }
.paar-summe { font-weight: 800; font-stretch: 112%; font-size: var(--t-l); }
.paar-balken { display: flex; height: 12px; background: var(--signal); border-radius: 1px; overflow: hidden; }
.paar-balken .a { background: var(--druck); height: 100%; } .paar-balken .b { flex: 1; }
.paare-zaehler { color: var(--text-2); font-size: var(--t-s); margin-left: 1rem; align-self: center; }

/* Familien, Firmen */
.familien-karten { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(380px, 1fr)); gap: 1rem; }
.familie { background: var(--blatt); border: 1px solid var(--linie); padding: 1rem 1.1rem; }
.fam-kopf { display: grid; grid-template-columns: auto 1fr auto; gap: .8rem; align-items: baseline; }
.fam-platz { font-weight: 820; font-stretch: 125%; color: var(--text-3); }
.fam-kopf h3 { font-size: var(--t-l); font-weight: 760; }
.fam-wert { font-weight: 780; font-size: var(--t-l); white-space: nowrap; }
.fam-zusatz { margin: .2rem 0 .6rem; font-size: var(--t-xs); color: var(--text-2); }
.fam-mitglieder { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
.fam-person { display: grid; grid-template-columns: 30px minmax(0, 1fr); grid-template-rows: auto auto; column-gap: .5rem; padding: .3rem 0; color: var(--text); text-decoration: none; font-size: var(--t-xs); background: none; border: 0; text-align: left; cursor: pointer; font-family: inherit; width: 100%; }
.fam-person .avatar { grid-row: span 2; }
.fam-person span { font-weight: 650; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fam-person small { color: var(--text-2); }
.familien-liste, .firmen-tabelle { list-style: none; margin: 0; padding: 0; }
.familien-liste li, .firmen-tabelle li { display: grid; grid-template-columns: 2rem minmax(0, 1fr) auto; gap: .8rem; align-items: center; padding: .6rem 0; border-bottom: 1px solid var(--linie); }
.firmen-tabelle li { grid-template-columns: 2rem minmax(0, 1fr) auto 8em; }
.fl-platz, .ft-platz { color: var(--text-3); font-weight: 700; }
.fl-name { display: flex; flex-direction: column; font-weight: 650; background: none; border: 0; padding: 0; font: inherit; font-weight: 650; text-align: left; cursor: pointer; color: var(--text); min-width: 0; }
button.fl-name:hover, .firmen-tabelle button:hover { text-decoration: underline; }
.fl-name small { font-weight: 400; color: var(--text-2); font-size: var(--t-xs); }
.fl-wert, .ft-wert { font-weight: 750; text-align: right; white-space: nowrap; }
.firmen-tabelle button { background: none; border: 0; padding: 0; font: inherit; font-weight: 650; cursor: pointer; text-align: left; color: var(--text); }
.ft-n { color: var(--text-2); font-size: var(--t-xs); }
.firmen-suche { max-width: 480px; margin-bottom: 1rem; }
.firma-zeichen { display: grid; place-items: center; width: 64px; height: 64px; background: var(--druck); color: #fff; font-weight: 800; font-stretch: 120%; font-size: 1.3rem; border-radius: 2px; }
.abschnitt.doppel { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.5rem, 4vw, 4rem); }
@media (max-width: 900px) { .abschnitt.doppel { grid-template-columns: 1fr; } .fam-mitglieder { grid-template-columns: 1fr; } .familien-karten, .tag-karten { grid-template-columns: 1fr; } }

/* Erben */
.erben-balken { display: flex; height: 64px; gap: 2px; margin: .4rem 0 1rem; }
.erben-balken.gross { height: 110px; }
.erben-balken i { position: relative; display: flex; flex-direction: column; justify-content: flex-end; padding: .6rem .7rem; color: #fff; font-style: normal; min-width: 0; overflow: hidden; }
.erben-balken i span { font-size: var(--t-xs); opacity: .85; white-space: nowrap; } .erben-balken i b { font-size: var(--t-s); white-space: nowrap; }
.eb-geerbt { background: #77509a; } .eb-vermehrt { background: #9a7bb8; } .eb-uebernommen { background: #3a6db0; } .eb-selbst { background: #3f8a58; }
.erben-legende { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .8rem 1.5rem; font-size: var(--t-s); }
.erben-legende li { padding-left: .8rem; box-shadow: inset 4px 0 0 currentColor; color: var(--text); }
.erben-legende li.eb-geerbt { color: #77509a; background: none; } .erben-legende li.eb-vermehrt { color: #9a7bb8; background: none; } .erben-legende li.eb-uebernommen { color: #3a6db0; background: none; } .erben-legende li.eb-selbst { color: #3f8a58; background: none; }
.erben-legende li span { color: var(--text-2); }

/* Erkenntnisse */
.erk-raster { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; }
.erk-karte { display: flex; flex-direction: column; gap: .3rem; background: var(--blatt); border: 1px solid var(--linie); border-top: 3px solid var(--druck); padding: 1.1rem; text-decoration: none; color: var(--text); }
a.erk-karte:hover { border-color: var(--druck); }
.erk-titel { font-size: var(--t-xs); color: var(--text-2); font-weight: 600; }
.erk-wert { font-size: var(--t-2xl); font-weight: 800; font-stretch: 115%; letter-spacing: -.03em; line-height: 1.05; }
.erk-text { font-family: var(--serif); font-size: var(--t-s); color: var(--text-2); }

/* Mehr aus dem Register, Verwandtes */
.mehr-liste { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: .2rem 1.5rem; }
.mehr-person { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .5rem; align-items: center; padding: .45rem 0; border-bottom: 1px solid var(--linie); color: var(--text); text-decoration: none; font-size: var(--t-s); background: none; border-left: 0; border-right: 0; border-top: 0; width: 100%; font-family: inherit; text-align: left; cursor: pointer; }
.mehr-person:not(:has(.avatar)) { grid-template-columns: minmax(0, 1fr) auto; }
.mehr-person span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.mehr-person small { color: var(--text-2); font-size: var(--t-xs); }
.mehr-person:hover span { text-decoration: underline; }
.rl-gruppen-start { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1.5rem 2.5rem; }
.rl-gruppe-block h3 { font-size: var(--t-m); font-weight: 750; padding-bottom: .4rem; border-bottom: 2px solid var(--druck); margin-bottom: .3rem; }
.rl-gruppe-block li { display: flex; justify-content: space-between; gap: .6rem; padding: .35rem 0; border-bottom: 1px solid var(--linie); font-size: var(--t-s); }
.rg-link { color: var(--text); text-decoration: none; font-weight: 600; } a.rg-link:hover { text-decoration: underline; }

/* Konto-Band */
.konto-band { background: linear-gradient(135deg, #101318 0%, #1d2735 100%); color: #eef0f2; margin-top: 2rem; }
.kb-innen { max-width: var(--breite); margin: 0 auto; padding: clamp(2.5rem, 5vw, 4rem) var(--rand); display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 3rem; align-items: center; }
.konto-band h2 { font-size: clamp(1.9rem, 3.4vw, 2.8rem); font-weight: 780; letter-spacing: -.03em; margin: .4rem 0 .8rem; }
.kb-text p:not(.vorzeile) { font-family: var(--serif); color: #c9ccd1; font-size: var(--t-l); margin: 0 0 1.4rem; }
.kb-anmelden { color: #c9ccd1; margin-left: 1rem; font-size: var(--t-s); }
.kb-gruende { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: #2c323b; border: 1px solid #2c323b; }
.kb-gruende li { background: #141920; padding: 1rem 1.1rem; display: flex; flex-direction: column; gap: .25rem; }
.kb-gruende strong { color: #fff; } .kb-gruende span { color: #b9bec6; font-size: var(--t-s); }
@media (max-width: 900px) { .kb-innen { grid-template-columns: 1fr; } .kb-gruende { grid-template-columns: 1fr; } }

/* Profil: Badges, Raten, Lebenslauf */
.rang-badges { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 1.1rem; }
.rang-badge { display: inline-flex; align-items: baseline; gap: .25rem; padding: .3rem .65rem; border: 1.5px solid var(--druck); border-radius: 2px; font-weight: 700; font-size: var(--t-s); color: var(--text); text-decoration: none; background: var(--blatt); }
.rang-badge.welt { background: var(--druck); color: #fff; } .rang-badge small, .rang-badge span { font-weight: 500; }
a.rang-badge:hover { background: var(--druck); color: #fff; }
.auszug-badges { padding: .8rem 1.6rem 0; }
.bekannt strong { font-size: var(--t-m) !important; font-stretch: 100% !important; }
.raten { position: relative; }
.raten.verdeckt .kennzahl { filter: blur(14px); user-select: none; }
.raten-deckel { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: flex-end; justify-content: center; gap: .4rem; }
.raten-deckel label { font-weight: 700; font-size: var(--t-s); }
.raten-feld { display: flex; gap: .4rem; }
.raten-feld input { width: 9rem; border: 1.5px solid var(--druck); border-radius: 4px; padding: .55rem .7rem; font: inherit; }
.raten-ergebnis { font-size: var(--t-s); margin: .4rem 0 0 auto; }
.zusatz-raster { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 2rem; }
.zusatz-teil h3 { font-size: var(--t-s); font-weight: 700; margin: 0 0 .5rem; }
.zeitleiste { list-style: none; margin: 0; padding: 0; border-left: 2px solid var(--druck); }
.zeitleiste li { display: grid; grid-template-columns: 6.5em minmax(0, 1fr); gap: .8rem; padding: .45rem 0 .45rem .9rem; position: relative; font-size: var(--t-s); }
.zeitleiste li::before { content: ""; position: absolute; left: -6px; top: .85rem; width: 10px; height: 10px; border-radius: 50%; background: var(--blatt); border: 2px solid var(--druck); }
.zl-jahr { color: var(--text-2); font-weight: 600; font-stretch: 90%; }
.zl-text small { display: block; color: var(--text-3); font-size: var(--t-xs); }
.chip-liste { list-style: none; padding: 0; margin: 0 0 1rem; display: flex; flex-wrap: wrap; gap: .3rem; }
.chip-liste li { padding: .25rem .6rem; border: 1px solid var(--linie); border-radius: 2px; font-size: var(--t-s); background: var(--blatt); }
.besitz-liste { list-style: none; padding: 0; margin: 0 0 1rem; }
.besitz-liste li { display: flex; justify-content: space-between; gap: 1rem; padding: .35rem 0; border-bottom: 1px solid var(--linie); font-size: var(--t-s); }
.besitz-liste small { color: var(--text-2); }
.verbindungen.spalten { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); column-gap: 1.5rem; margin-top: 1rem; }
.verbindung { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: .6rem; align-items: center; padding: .4rem 0; border-bottom: 1px solid var(--linie); color: var(--text); text-decoration: none; font-size: var(--t-s); background: none; border-left: 0; border-right: 0; border-top: 0; width: 100%; font-family: inherit; text-align: left; cursor: pointer; }
.verbindung span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.verbindung small { color: var(--text-2); font-size: var(--t-xs); text-align: right; }
.verbindung:hover span { text-decoration: underline; }
.nb-zeile { display: grid; grid-template-columns: 3rem minmax(0, 1fr) auto; gap: .5rem; padding: .5rem 0; border-bottom: 1px solid var(--linie); color: var(--text); text-decoration: none; font-size: var(--t-s); background: none; border-left: 0; border-right: 0; border-top: 0; width: 100%; font-family: inherit; text-align: left; cursor: pointer; }
.nb-zeile:hover .nb-name { text-decoration: underline; }
@media (max-width: 760px) { .zusatz-raster { grid-template-columns: 1fr; } .raten-deckel { align-items: flex-start; } }

/* Kopf-Kennzahlen (Abgeordnete, Partei) */
.kopf-kennzahlen { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1px; background: var(--linie); border: 1px solid var(--druck); margin: 1.6rem 0 1rem; }
.kopf-kennzahlen div { background: var(--blatt); padding: .9rem 1.1rem; }
.kopf-kennzahlen dt { font-size: var(--t-xs); color: var(--text-2); }
.kopf-kennzahlen dd { margin: .15rem 0 0; font-size: var(--t-xl); font-weight: 780; font-stretch: 108%; letter-spacing: -.02em; }
.bl-zeile { display: grid; grid-template-columns: minmax(240px, 380px) 1fr auto; gap: 1.2rem; align-items: center; padding: .7rem 0; border-bottom: 1px solid var(--linie); }
.bl-zeile a, .bl-zeile button { color: var(--text); font-weight: 650; text-decoration: none; background: none; border: 0; padding: 0; font: inherit; font-weight: 650; cursor: pointer; }
.bl-zeile a:hover { text-decoration: underline; }
.balkenliste > li:not(:has(button, .bl-zeile)) { display: grid; grid-template-columns: minmax(140px, 240px) 1fr auto; gap: 1.2rem; align-items: center; padding: .55rem 0; border-bottom: 1px solid var(--linie); }
.parteien-vergleich li.diese .bl-balken i { background: var(--signal); }
.parteien-vergleich a { color: var(--text); font-weight: 650; }
@media (max-width: 760px) { .bl-zeile, .balkenliste > li:not(:has(button, .bl-zeile)) { grid-template-columns: 1fr auto; } .bl-zeile .bl-balken, .balkenliste > li .bl-balken { grid-column: 1 / -1; grid-row: 2; } .mega { top: 56px; } }
.seiten-kopf.mit-suche { padding-bottom: 2rem; }

.paare li.paar { display: block; }
.kp-label { font-size: .7rem; color: var(--text-3); }

@media (max-width: 760px) {
  .kopf-werkzeuge > a.werkzeug { display: none; }
  .kopf-werkzeuge .knopf.signal.klein { padding: .4rem .55rem; font-size: .72rem; }
  .kopf-werkzeuge .knopf.signal.klein .lang { display: none; }
}
@media (min-width: 761px) { .kopf-werkzeuge .knopf.signal.klein .kurz { display: none; } }

/* ═════════ Runde 4: Felix-Rückmeldungen ═════════ */
/* Logo: VI größer und orange, i-Punkte orange */
.marke-zeichen { width: 38px; height: 38px; font-size: 1.02rem; color: var(--signal); background: var(--druck); letter-spacing: .02em; }
.fuss .marke-zeichen { background: #fff; color: var(--signal); }
.marke-wort .i { position: relative; display: inline-block; }
.marke-wort .i::after { content: ""; position: absolute; left: 50%; top: .02em; width: .2em; height: .2em; margin-left: -.1em; background: var(--signal); border-radius: 1px; }
/* Paare: Innenabstand */
.paar { padding: 1rem 1.3rem 1.1rem; }
.paar-kopf { padding: 0 .1rem; }
/* Balkenlisten: lange Namen umbrechen statt überlaufen */
@media (min-width: 761px) { .balkenliste > li:not(:has(button, .bl-zeile)) { grid-template-columns: minmax(0, 220px) minmax(80px, 1fr) auto; } }  /* nur breit: überschrieb sonst die Handy-Spalten */
.balkenliste .bl-name { min-width: 0; overflow-wrap: anywhere; }
.balkenliste .bl-wert { white-space: nowrap; }
/* Schublade: Fußleiste mit Knöpfen über den Listen */
.auszug-fuss { z-index: 3; }
.auszug .verbindungen, .auszug .avatar { position: relative; z-index: 1; }
/* Mega-Menü: klarer Kontrast, größere Überschriften */
.mega { background: #0b0e12; }
.mega-titel { font-size: var(--t-l); color: #fff; font-weight: 750; letter-spacing: -.01em; padding-bottom: .5rem; border-bottom: 1px solid #2c323b; margin-bottom: .4rem; }
.mega-link { color: #f2a48a; font-weight: 500; }
.mega-link:hover, .mega-link:focus-visible { color: #fff; text-decoration: underline; text-decoration-color: var(--signal); }
.mega .knopf.hell:hover { background: var(--signal); border-color: var(--signal); color: #fff; }
/* Nebeneinanderliegende Blöcke: Überschriften gleich hoch */
.abschnitt.doppel > div { display: flex; flex-direction: column; }
.abschnitt.doppel .block-titel { min-height: 2.6em; display: flex; align-items: flex-end; }

button.kal-tag { border: 0; padding: 0; cursor: pointer; width: 100%; }
button.kal-tag:hover, button.kal-tag:focus-visible { outline: 2px solid var(--signal); outline-offset: 1px; }
.tag-feld { margin-top: 1.2rem; background: var(--blatt); border: 1px solid var(--druck); padding: 1.2rem; }
.tf-kopf { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; margin-bottom: 1rem; }
.tf-kopf h2 { font-size: var(--t-xl); font-weight: 760; margin-right: auto; }
.tag-karten.klein { grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
.tag-alle { margin-top: .6rem; width: 100%; }
.unternav { display: flex; gap: 1.4rem; margin-top: 1.4rem; border-bottom: 1px solid var(--linie); flex-wrap: wrap; }
.unternav a { padding: .6rem 0; text-decoration: none; color: var(--text-2); font-weight: 600; border-bottom: 3px solid transparent; }
.unternav a[aria-current] { color: var(--text); border-bottom-color: var(--druck); }
.bez-raster { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem; }
.bez-raster > div { display: flex; flex-direction: column; gap: .8rem; }
.bez-raster .block-titel { min-height: 0; }
.paare.kompakt .paar { padding: .7rem .9rem .8rem; }
@media (max-width: 1000px) { .bez-raster { grid-template-columns: 1fr; } }
.dynastien { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.2rem; }
.dynastie { background: var(--blatt); border: 1px solid var(--linie); padding: 1.1rem 1.3rem; }
.dyn-kopf { display: grid; grid-template-columns: auto 1fr auto; gap: .8rem; align-items: baseline; }
.dyn-kopf h2 { font-size: var(--t-xl); font-weight: 760; }
.dyn-gen { font-weight: 800; font-stretch: 112%; color: var(--signal-dunkel); }
.dyn-baum { list-style: none; margin: .6rem 0 0; padding: 0 0 0 .4rem; border-left: 2px solid var(--druck); }
.dyn-baum li { display: grid; grid-template-columns: 2.4rem minmax(0, 1fr); gap: .6rem; padding: .3rem 0 .3rem .6rem; font-size: var(--t-s); }
.dyn-ebene { color: var(--text-3); font-weight: 700; }
.dyn-leute { display: flex; flex-wrap: wrap; gap: .3rem .8rem; }
.dyn-person { color: var(--text-2); }
.dyn-person.im-register { color: var(--text); font-weight: 650; text-decoration: none; background: none; border: 0; padding: 0; font: inherit; font-weight: 650; cursor: pointer; }
a.dyn-person:hover { text-decoration: underline; }
.dyn-mehr { color: var(--text-3); }

/* Schätzen als Hauptfeature des Profils */
.raten.verdeckt { min-height: 230px; border: 2px solid var(--signal); background: var(--blatt); padding: 1.2rem 1.4rem; box-shadow: 0 20px 40px -24px rgba(224,82,42,.45); }
.raten.verdeckt .kennzahl { opacity: 0; }
.raten-deckel { padding: 1.2rem 1.4rem; align-items: stretch; }
.raten-deckel label { font-size: var(--t-xl); font-weight: 780; letter-spacing: -.02em; text-align: left; display: flex; flex-direction: column; }
.raten-deckel label small { font-size: var(--t-s); font-weight: 500; color: var(--text-2); letter-spacing: 0; margin-top: .2rem; }
.raten-feld { margin-top: .4rem; }
.raten-feld input { flex: 1; width: auto; font-size: var(--t-l); padding: .8rem 1rem; border-width: 2px; }
.raten-feld .knopf { font-size: var(--t-m); padding: .8rem 1.4rem; }
.raten-deckel [data-raten-direkt] { align-self: flex-start; }
.blatt-wert { min-width: 400px; }
@media (max-width: 760px) { .blatt-wert { min-width: 0; } }
.mein-platz { max-width: none; background: var(--blatt); border-top: 1px solid var(--linie); border-bottom: 1px solid var(--linie); }
.mp-innen { max-width: calc(var(--breite) - 2 * var(--rand)); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 1rem 3rem; align-items: center; }
.mp-text h2 { font-size: var(--t-2xl); font-weight: 780; letter-spacing: -.02em; }
.mp-text p { font-family: var(--serif); color: var(--text-2); font-size: var(--t-m); }
.mp-form { display: flex; flex-wrap: wrap; gap: .8rem; align-items: end; }
.mp-form label { display: grid; gap: .25rem; font-size: var(--t-xs); font-weight: 600; color: var(--text-2); }
.mp-form input[type=text], .mp-form select { font: inherit; font-size: var(--t-l); border: 2px solid var(--druck); border-radius: 4px; padding: .6rem .8rem; min-width: 10em; background: var(--blatt); }
.mp-merken { display: flex !important; align-items: center; gap: .4rem; font-weight: 500 !important; }
.mp-ergebnis { grid-column: 1 / -1; border-top: 2px solid var(--druck); padding-top: 1rem; }
.mp-rang { font-size: var(--t-l); margin: 0; } .mp-rang strong { font-size: var(--t-3xl); font-weight: 820; font-stretch: 120%; letter-spacing: -.03em; }
.mp-nachbarn { color: var(--text-2); }
@media (max-width: 900px) { .mp-innen { grid-template-columns: 1fr; } }
.listen-menue { position: absolute; z-index: 80; background: var(--blatt); border: 1px solid var(--druck); box-shadow: 0 18px 40px -18px rgba(0,0,0,.4); min-width: 280px; padding: .4rem; display: grid; gap: .2rem; }
.listen-menue > button { background: none; border: 0; text-align: left; padding: .5rem .6rem; cursor: pointer; font: inherit; display: flex; justify-content: space-between; }
.listen-menue > button:hover { background: var(--papier); }
.listen-menue form { display: flex; gap: .3rem; border-top: 1px solid var(--linie); padding-top: .4rem; }
.listen-menue input { flex: 1; font: inherit; border: 1px solid var(--linie); border-radius: 3px; padding: .4rem .5rem; }
.siegel-inhaber { display: inline-flex; align-items: center; gap: .35rem; font-size: var(--t-xs); font-weight: 700; color: var(--auf); border: 1.5px solid var(--auf); border-radius: 2px; padding: .2rem .5rem; margin: 0 0 .8rem; }
.konto-liste { margin-bottom: 2rem; } .kl-kopf { display: flex; align-items: baseline; gap: 1rem; flex-wrap: wrap; margin-bottom: .6rem; } .kl-kopf h2 { font-size: var(--t-xl); font-weight: 760; } .kl-kopf span { color: var(--text-2); font-size: var(--t-s); }

.erk-raster.gross { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 900px) { .erk-raster.gross { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.netz-feld { position: relative; height: 560px; border-radius: 2px; overflow: hidden; }
.netz-feld.hoch { height: min(78vh, 760px); }
.netz-feld.profil { height: 440px; }

/* Runde 5 (09.10.2026): Mega-Menü – Links immer orange, Hover weiß ohne Strich; Regeln der Hauptnavigation gezielt überschreiben */
.hauptnav .mega-link { color: var(--signal); font-weight: 500; padding: .38rem 0; border-bottom: 0; line-height: 1.35; transition: color var(--d1) var(--kurve); }
.hauptnav .mega-link:hover, .hauptnav .mega-link:focus-visible { color: #fff; text-decoration: none; }
.mega-spalte { display: flex; flex-direction: column; }
/* Logo: VI so groß wie der Kasten erlaubt, i-Punkte gleich groß direkt über dem Stamm */
.marke-zeichen { font-size: 1.42rem; font-weight: 800; letter-spacing: -.01em; line-height: 1; }
.marke-wort .i::after { top: .19em; width: .19em; height: .19em; margin-left: 0; transform: translateX(-50%); border-radius: 0; }
/* Netz-Suche: Browser-Kreuz aus, eigenes Kreuz im CI, immer sichtbar sobald Text drinsteht */
.netz-suche input::-webkit-search-cancel-button { -webkit-appearance: none; appearance: none; display: none; }
.netz-suche-leeren { flex: none; display: grid; place-items: center; width: 28px; height: 28px; margin-right: -.3rem; border: 0; border-radius: 2px; background: none; color: var(--signal); cursor: pointer; }
.netz-suche-leeren[hidden] { display: none; }
.netz-suche-leeren svg { width: 16px; height: 16px; stroke: currentColor; stroke-width: 2; fill: none; }
.netz-suche-leeren:hover, .netz-suche-leeren:focus-visible { background: var(--signal); color: #fff; }
/* Footer wie der Header: Papier, dunkle Schrift, Logo unverändert; kräftige Linie oben trennt ihn vom Inhalt */
.fuss { background: var(--papier); color: var(--text-2); border-top: 4px solid var(--druck); }
.fuss .marke { color: var(--text); }
.fuss .marke-zeichen { background: var(--druck); color: var(--signal); }
.fuss-titel { color: var(--text); }
.fuss-nav a { color: var(--text-2); }
.fuss-nav a:hover { color: var(--text); text-decoration: underline; text-decoration-color: var(--signal); }
.fuss-quellen { border-top-color: var(--linie-stark); color: var(--text-3); }
/* Beziehungen-Übersicht: Paare links über zwei Reihen, rechts Familien/Firmen und darunter Stammbäume/Eltern & Kinder */
.bez-raster { grid-auto-flow: row dense; row-gap: 3rem; }  /* Spalten kommen aus der Grundregel samt Handy-Umbruch */
.bez-raster > .bez-paare { grid-row: span 2; }
@media (max-width: 1000px) { .bez-raster > .bez-paare { grid-row: auto; } }
.paare.kompakt { gap: .55rem; }
.paare.kompakt li.paar { display: block; padding: .6rem .8rem .7rem; }
.paare.kompakt .paar-kopf { grid-template-columns: minmax(0, 1fr) auto; row-gap: .1rem; column-gap: .8rem; margin-bottom: .45rem; }
.paare.kompakt .paar-a, .paare.kompakt .paar-b { grid-column: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-align: left; font-size: var(--t-s); }
.paare.kompakt .paar-b { grid-row: 2; }
.paare.kompakt .paar-b small { display: none; }
.paare.kompakt .paar-a small { display: none; }
.paare.kompakt .paar-summe { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-weight: 750; }
.paare.kompakt .paar-balken { height: 6px; }
.generationen-liste { list-style: none; margin: 0; padding: 0; }
.generationen-liste li { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: .6rem; align-items: center; padding: .55rem 0; border-bottom: 1px solid var(--linie); }
.generationen-liste.lang li { padding: .7rem 0; }
.gl-link { display: flex; align-items: center; gap: .55rem; min-width: 0; text-decoration: none; color: var(--text); }
.gl-link > span { min-width: 0; display: flex; flex-direction: column; font-size: var(--t-s); font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gl-link small { font-weight: 400; color: var(--text-2); font-size: var(--t-xs); }
.gl-link:hover > span { text-decoration: underline; text-decoration-color: var(--signal); }
.gl-pfeil { color: var(--signal); font-weight: 700; }
.bez-fakten .kopf-kennzahlen { margin-top: 1rem; }
/* Header-Menü Beziehungen: Bereiche mit kurzer Erklärung */
.mega-bereiche { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hauptnav .mega-bereich { display: flex; flex-direction: column; gap: .25rem; padding: .9rem 1rem; border: 1px solid #2c323b; border-bottom: 1px solid #2c323b; text-decoration: none; transition: border-color var(--d1) var(--kurve); }
.mega-bereich strong { color: var(--signal); font-size: var(--t-m); font-weight: 700; }
.mega-bereich span { color: #b9bec6; font-size: var(--t-s); font-weight: 400; }
.hauptnav .mega-bereich:hover, .hauptnav .mega-bereich:focus-visible { border-color: var(--signal); }
.mega-bereich:hover strong { color: #fff; }
.gl-person { min-width: 0; }
.gl-link { border: 0; background: none; padding: 0; font: inherit; text-align: left; cursor: pointer; width: 100%; }
.generationen-liste li { grid-template-columns: minmax(0, 1fr) 1.2rem minmax(0, 1fr); }
.gl-pfeil { text-align: center; }
.bez-zahlen div { display: flex; flex-direction: column; }
.bez-zahlen dd { margin-top: auto; padding-top: .4rem; }
.beliebt-zahlen { margin: 1rem 0 1.4rem; }
.beliebt-zahlen dd { color: var(--text); }
.beliebt-zahlen div:first-child dd { color: var(--signal); }
.quelle-zeile { margin: .6rem 0 0; font-size: var(--t-xs); color: var(--text-3); }
/* Runde 7: Header und Footer gleich, leicht abgesetzt vom Seitenhintergrund */
.kopf, .fuss { background: #ebeae3; }
.fuss { border-top: 1px solid var(--linie-stark); }
/* Fließtext ohne Witwen, Überschriften ausgewogen */
p, li, dd { text-wrap: pretty; }
h1, h2, h3, .block-titel { text-wrap: balance; }
.seiten-zusatz { }
/* Beziehungen: Überschriften gleich hoch, Knöpfe unten bündig */
.bez-raster > div > .block-titel { min-height: 2.4em; display: flex; align-items: flex-end; }
.bez-raster > div > .knopf { margin-top: auto; }
/* Startseite Ranglisten: jeder Eintrag gleich hoch, egal ob ein- oder zweizeilig */
.rl-gruppe-block li { align-items: center; min-height: calc(2 * 1.35em + .7rem); line-height: 1.35; box-sizing: border-box; }
.rl-gruppe-block li .rg-link { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
/* Tagesseite: Abstand vor den Verstorbenen, Tabelle im Register-Stil */
.tag-verstorbene { margin-top: clamp(2.5rem, 5vw, 3.5rem); }
.tag-tabelle thead th { padding: .6rem .8rem; }
.tag-tabelle td { padding: .6rem .8rem; border-bottom: 1px solid var(--linie); vertical-align: middle; }
.tag-tabelle .zahl { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.tag-tabelle .tt-name { font-weight: 650; color: var(--text); text-decoration: none; background: none; border: 0; padding: 0; font: inherit; cursor: pointer; }
.tag-tabelle .tt-name:hover { text-decoration: underline; text-decoration-color: var(--signal); }
/* Kennzahl-Kacheln überall: Zahlen auf einer Linie, auch bei zweizeiliger Beschriftung */
.kopf-kennzahlen div { display: flex; flex-direction: column; }
.kopf-kennzahlen dd { margin-top: auto; padding-top: .3rem; }
.quelle-zeile { text-wrap: balance; }
.rl-gruppe-block li a.rg-link, .rl-gruppe-block li span.rg-link { padding: 0; border: 0; }
/* Rechtstexte */
.rechtstext > * { }
.rechtstext h2 { font-size: var(--t-l); margin: 2.2rem 0 .6rem; }
.rechtstext p, .rechtstext li { line-height: 1.6; }
.rechtstext ul { padding-left: 1.2rem; display: grid; gap: .5rem; }
.hinweis-kasten { background: var(--blatt); border: 2px solid var(--druck); border-left: 6px solid var(--signal); padding: 1.2rem 1.4rem; margin: 0 0 1rem; }
.hinweis-kasten h2 { margin-top: 0; }
.formular-hinweis { font-size: var(--t-xs); color: var(--text-2); }
/* Sammelseiten: Analyse, Balken, Mini-Listen, Fragen */
.rl-analyse-text { font-family: var(--serif); font-size: var(--t-l); line-height: 1.55; margin: 0 0 1.6rem; }
.rl-analyse-raster { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 2rem; align-items: start; }
.rl-analyse-raster h3 { font-size: var(--t-m); font-weight: 750; padding-bottom: .4rem; border-bottom: 2px solid var(--druck); margin: 0 0 .5rem; min-height: 1.4em; }
.rl-balken, .rl-mini { list-style: none; margin: 0; padding: 0; }
.rl-balken li { display: grid; grid-template-columns: minmax(0, 10.5rem) 1fr 2.6rem; gap: .6rem; align-items: center; padding: .4rem 0; border-bottom: 1px solid var(--linie); font-size: var(--t-s); }
.rb-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rb-spur { height: 8px; background: var(--linie); } .rb-spur i { display: block; height: 100%; background: var(--druck); }
.rb-n { text-align: right; color: var(--text-2); font-variant-numeric: tabular-nums; }
.rl-mini li { display: flex; justify-content: space-between; gap: .8rem; padding: .45rem 0; border-bottom: 1px solid var(--linie); font-size: var(--t-s); }
.rl-mini-link { color: var(--text); font-weight: 600; text-decoration: none; background: none; border: 0; padding: 0; font: inherit; cursor: pointer; text-align: left; }
.rl-mini-link:hover { text-decoration: underline; text-decoration-color: var(--signal); }
.rl-mini .plus { color: #1f7a4a; font-weight: 650; }
.rl-mini li > span:last-child { color: var(--text-2); white-space: nowrap; font-variant-numeric: tabular-nums; }
.rl-fragen details { border-bottom: 1px solid var(--linie); padding: .8rem 0; }
.rl-fragen summary { cursor: pointer; font-weight: 650; }
.rl-fragen details p { margin: .5rem 0 0; }
/* Runde 8: keine harten Linien mehr zwischen Header/Footer und Inhalt – nur Farbton und ein Hauch Schatten */
.kopf { border-bottom: 0; box-shadow: 0 1px 0 rgba(16, 19, 24, .06), 0 6px 18px -12px rgba(16, 19, 24, .18); }
.fuss { border-top: 0; }
.fuss-quellen { border-top: 0; background: linear-gradient(var(--linie), var(--linie)) no-repeat; background-size: calc(100% - 2 * var(--rand)) 1px; background-position: var(--rand) 0; }

/* Beziehungen: „Das Netz in Zahlen“ mit zehn Kacheln in vollen Reihen (5 / 2 Spalten) */
.bez-fakten .bez-zahlen { grid-template-columns: repeat(5, minmax(0, 1fr)); }
@media (max-width: 900px) { .bez-fakten .bez-zahlen { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.netz-legende .l-geschwister::before { border-color: #baa0e4; }
.netz-legende .l-gruendung::before { border-color: #d8a840; }
.netz-legende .l-beteiligung::before { border-color: #68b284; border-top-style: dashed; }
.netz-legende .l-hinweis { opacity: .75; }
.netz-legende .l-hinweis::before { display: none; }

/* Textfluss (Felix-Regel): Absätze nie schmal begrenzen, keine Witwenwörter */
p, li, dd, figcaption, summary { text-wrap: pretty; }
h1, h2, h3, h4 { text-wrap: balance; }

/* Bildnachweise + Nachladen */
.bn-tabelle td { font-size: var(--t-s); vertical-align: top; }
.bn-tabelle td:first-child { font-weight: 600; white-space: nowrap; }
.bn-tabelle td a:not(.bn-name) { color: var(--text-2); }
.nachladen-zeile { text-align: center; padding: 1.4rem 0; font-size: var(--t-s); }
.nachladen-zeile[aria-busy] { opacity: .5; }


.kopf .marke-wort, .hauptnav > a, .mega-knopf { white-space: nowrap; }
/* Badge „Maschinell erstellt“ direkt unter der Seitenüberschrift */
h1 + .ki-hinweis, .sb-kopf h1 + .ki-hinweis { margin: .6rem 0 0; }
.held-text .ki-hinweis { margin: 0 0 1.4rem; color: #c9ccd1; }
.held-text .ki-text { color: #c9ccd1; }
.bn-tabelle td:last-child { white-space: nowrap; }
.bn-tabelle button.bn-name { font: inherit; font-weight: 600; background: none; border: 0; padding: 0; color: var(--tinte); cursor: pointer; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .18em; }
/* Personen ohne eigenes Profil: Knopf, der wie ein Namenslink aussieht (öffnet die Schublade) */
:where(button.ohne-profil) { font: inherit; color: var(--tinte); background: none; border: 0; padding: 0; cursor: pointer; text-align: left; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .18em; }
.erben-legende .eb-text { display: block; }
.erben-legende.kurz { margin: 0 0 1rem; }
.erben-legende.kurz span { color: var(--text-2); margin-left: .3rem; }
/* Ranglisten: acht Gruppen in vier Spalten, zwei volle Reihen (Startseite und Mega-Menü) */
.rl-gruppen-start { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.mega-innen:not(.mega-bereiche) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.mega-innen:not(.mega-bereiche) .mega-alle { grid-column: 1 / -1; }
@media (max-width: 1000px) { .rl-gruppen-start, .mega-innen:not(.mega-bereiche) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .rl-gruppen-start { grid-template-columns: 1fr; } }
.tm-wert { fill: rgba(255,255,255,.8); }
.rl-gruppe-block a { grid-template-columns: minmax(0, 1fr) auto; gap: .15rem 1rem; align-items: baseline; }
.rl-gruppe-block .rg-titel { grid-column: 1; font-weight: 650; }
.rl-gruppe-block .rg-n { grid-column: 2; grid-row: 1; font-size: var(--t-xs); color: var(--text-2); white-space: nowrap; }
.rl-gruppe-block .rg-spitze { grid-column: 1 / -1; font-size: var(--t-xs); color: var(--text-2); }
.rl-gruppen { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2.5rem 2rem; align-items: start; }
@media (max-width: 1000px) { .rl-gruppen { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .rl-gruppen { grid-template-columns: 1fr; } }
/* Schätzfeld: Eingabe darf schrumpfen, Knopf bleibt im Kasten (Handy) */
.raten-feld { display: flex; min-width: 0; }
.raten-feld input { flex: 1 1 auto; min-width: 0; width: 100%; }
.raten-feld .knopf { flex: none; }
@media (max-width: 760px) { .register-tabelle .sp-rang button { white-space: nowrap; font-size: .7rem; } }
.rl-mehr summary { cursor: pointer; font-weight: 650; font-size: var(--t-s); padding: .8rem 0; color: var(--tinte); }
.rl-mehr summary:hover { text-decoration: underline; }
.rl-gruppe-block ul:empty { display: none; }

/* Semantischer Verlinker in der Seitenleiste */
.vl-liste { list-style: none; margin: 0; padding: 0; display: grid; gap: .1rem; }
.vl-liste a, .vl-liste .link-knopf { display: flex; justify-content: space-between; gap: .8rem; align-items: baseline; padding: .35rem 0; border-bottom: 1px solid var(--linie); text-decoration: none; color: var(--text); font-size: var(--t-s); width: 100%; text-align: left; background: none; border-left: 0; border-right: 0; border-top: 0; cursor: pointer; font: inherit; }
.vl-liste a span, .vl-liste .link-knopf span { text-decoration: underline; text-decoration-color: var(--linie); text-underline-offset: .18em; }
.vl-liste a:hover span, .vl-liste .link-knopf:hover span { text-decoration-color: currentColor; color: var(--tinte); }
.vl-liste small { color: var(--text-2); font-size: var(--t-xs); white-space: nowrap; }
.vl-raster { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 1.5rem 2.5rem; margin-top: 1rem; }
.vl-gruppe h3 { font-size: var(--t-m); font-weight: 700; padding-bottom: .5rem; border-bottom: 2px solid var(--druck); margin: 0 0 .4rem; }
.vl-familie { max-width: var(--breite); margin: 0 auto; padding: 2rem var(--rand); }
button.auto-link { background: none; border: 0; padding: 0; font: inherit; color: var(--tinte); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .18em; cursor: pointer; }

/* ───────── Firmen- und Organisationsseiten (13.10.2026) ───────── */
.fi-kopf h1 .fi-h1-zusatz { display: block; font-size: .42em; font-weight: 600; font-stretch: 100%; letter-spacing: -.01em; color: var(--text-2); margin-top: .5rem; }
.fi-namen { margin: .9rem 0 0; font-size: var(--t-s); color: var(--text-2); }
.fi-namen a { color: var(--tinte); }
.fi-personen, .fi-eigner, .fi-familien { list-style: none; margin: 1.1rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); column-gap: 2rem; }
.fi-eigner { grid-template-columns: 1fr; }
.fi-zeile, .fi-org, .fi-familien li { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; gap: .8rem; align-items: center; min-height: 60px; padding: .55rem 0; border-bottom: 1px solid var(--linie);
  width: 100%; background: none; border-top: 0; border-left: 0; border-right: 0; text-align: left; color: var(--text); text-decoration: none; font: inherit; cursor: pointer; }
.fi-org, .fi-familien li { cursor: default; }
.fi-familien li { grid-template-columns: minmax(0, 1fr) auto; }
.fi-name { display: flex; flex-direction: column; min-width: 0; }
.fi-name b { font-weight: 650; overflow-wrap: anywhere; }
.fi-name small, .fi-familien small { color: var(--text-2); font-size: var(--t-xs); }
.fi-familien a { display: flex; flex-direction: column; text-decoration: none; color: var(--text); }
.fi-familien a b, .fi-name a { text-decoration: underline; text-decoration-color: var(--linie); text-underline-offset: .18em; color: inherit; }
.fi-zeile:hover .fi-name b, .fi-familien a:hover b, .fi-name a:hover { color: var(--tinte); text-decoration: underline; text-decoration-color: currentColor; }
.fi-wert, .fi-anteil { font-size: var(--t-s); font-weight: 700; font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.fi-anteil { font-weight: 600; white-space: normal; text-wrap: pretty; color: var(--text); }
.fi-eigner .fi-zeile, .fi-eigner .fi-org { grid-template-columns: 40px minmax(0, 1fr) minmax(0, 1fr); }
.fi-anteil a { color: var(--tinte); }
.fi-person.vorsitz .fi-zeile { box-shadow: inset 3px 0 0 var(--tinte); padding-left: .7rem; grid-template-columns: 40px minmax(0, 1fr) auto; background: color-mix(in srgb, var(--tinte) 5%, transparent); }
.fi-person.vorsitz small { color: var(--tinte); font-weight: 650; }
.fi-marke { width: 40px; height: 40px; display: grid; place-items: center; border: 1.5px solid var(--druck); border-radius: 2px; font-weight: 780; font-stretch: 112%; background: var(--blatt); }
.fi-frueher { margin-top: 1rem; }
.fi-frueher summary { cursor: pointer; font-weight: 650; color: var(--tinte); padding: .4rem 0; }
.fi-frueher summary:hover { text-decoration: underline; }
.fi-alles .vl-gruppe + .vl-gruppe { margin-top: 1.2rem; }
.fi-alles .vl-gruppe h3 { font-size: var(--t-s); border-bottom-width: 1px; }
.fi-uebersicht { grid-template-columns: 1fr; }
.tf-faq { display: grid; gap: 1.1rem; }
.tf-faq h3 { font-size: var(--t-m); font-weight: 700; margin: 0 0 .25rem; }
.tf-faq p { margin: 0; font-family: var(--serif); font-size: var(--t-m); color: var(--text); }
.blatt-teil h2 + .tf-faq { margin-top: 1.2rem; }
@media (max-width: 700px) {
  .fi-eigner .fi-org, .fi-org { grid-template-columns: 40px minmax(0, 1fr); }
  .fi-org .fi-anteil { grid-column: 2; text-align: left; font-size: var(--t-xs); }
}
.firmen-tabelle a.fi-link, a.fl-name { font-weight: 650; color: var(--text); text-decoration: none; }
.firmen-tabelle a.fi-link:hover, a.fl-name:hover { text-decoration: underline; color: var(--tinte); }
a.fl-name small { text-decoration: none; display: block; }
.auszug-mehr { padding: .9rem 1.6rem 0; margin: 0; }

/* ───────── Kaufkraft von heute (2h, 14.10.2026) ───────── */
.kk-zeile { margin-top: .35rem; }
.kk-zeile strong { color: var(--text); font-weight: 650; font-variant-numeric: tabular-nums; }
.kk-zeile a { color: var(--tinte); }
.kk-umschalter { display: inline-flex; border: 1px solid var(--linie-stark); border-radius: 4px; overflow: hidden; margin: 0 0 .8rem; font-family: var(--sans); font-size: var(--t-xs); }
.kk-umschalter input { position: absolute; opacity: 0; pointer-events: none; }
.kk-umschalter { position: relative; }  /* Bezugsrahmen der versteckten Eingaben */
.kk-umschalter label { padding: .4rem .8rem; cursor: pointer; color: var(--text-2); transition: background var(--d1) var(--kurve), color var(--d1) var(--kurve); }
.kk-umschalter label + input + label { border-left: 1px solid var(--linie-stark); }
.kk-umschalter label:hover { background: var(--papier); color: var(--text); }
.kk-umschalter input:checked + label { background: var(--druck); color: var(--blatt); }
.kk-umschalter input:focus-visible + label { outline: 2px solid var(--tinte); outline-offset: -3px; }
.kk-verlauf .kk-real { display: none; }
.kk-verlauf:has(input[value="real"]:checked) .kk-real { display: block; }
.kk-verlauf:has(input[value="real"]:checked) .kk-nominal { display: none; }
.kk-hinweis { margin: .4rem 0 0; font-family: var(--sans); font-size: var(--t-xs); color: var(--text-2); }
.kk-methode { margin: .9rem 0 0; border-top: 1px solid var(--linie); padding-top: .6rem; font-family: var(--sans); font-size: var(--t-xs); color: var(--text-2); }
.kk-methode summary { cursor: pointer; color: var(--tinte); font-weight: 600; }
.kk-methode summary:hover { text-decoration: underline; }
.kk-methode summary:focus-visible { outline: 2px solid var(--tinte); outline-offset: 2px; }
.kk-methode p { margin: .5rem 0 0; line-height: 1.5; text-wrap: pretty; }
.kk-methode a { color: var(--tinte); }
.kk-zahlen { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--linie); border: 1px solid var(--linie); margin: .4rem 0 0; }
.kk-zahlen div { background: var(--blatt); padding: .8rem 1rem; display: grid; grid-template-rows: auto 1fr; gap: .3rem; }
.kk-zahlen span { font-family: var(--sans); font-size: var(--t-xs); color: var(--text-2); }
.kk-zahlen b { font-family: var(--sans); font-size: var(--t-xl); font-stretch: 115%; font-weight: 760; font-variant-numeric: tabular-nums; line-height: 1.1; align-self: end; }
@media (max-width: 600px) { .kk-zahlen { grid-template-columns: 1fr; } }
.kk-tabelle { width: 100%; border-collapse: collapse; font-family: var(--sans); font-size: var(--t-s); background: var(--blatt); border: 1px solid var(--linie); }
.kk-tabelle td small { display: block; font-size: var(--t-xs); color: var(--text-3); }
@media (max-width: 600px) { .kk-tabelle .kk-faktor { display: none; } .kk-tabelle th, .kk-tabelle td { padding: .55rem .5rem; } }
.kk-tabelle th, .kk-tabelle td { text-align: left; padding: .55rem .75rem; border-bottom: 1px solid var(--linie); font-variant-numeric: tabular-nums; }
.kk-tabelle th { font-size: var(--t-xs); font-weight: 600; color: var(--text-2); }
.kk-tabelle th:nth-child(n+2), .kk-tabelle td:nth-child(n+2) { text-align: right; }
.kk-tabelle tr:last-child td { border-bottom: 0; }
.kk-tabelle td a { color: var(--text); font-weight: 600; text-decoration: none; }
.kk-tabelle td a:hover { color: var(--tinte); text-decoration: underline; }
.kk-rangliste .seiten-zusatz { font-size: var(--t-m); margin: .2rem 0 .8rem; }
.blatt-wert:has(.raten-deckel:not([hidden])) .kk-zeile { visibility: hidden; } /* verrät sonst die Lösung des Schätzspiels */

/* Eigentümer aus Pflichtmeldungen (BaFin/SEC/GLEIF, 14.10.2026) – Firmenseite, Organisation, Profil-Block „Beteiligungen“ */
.fi-meldung { align-items: start; }
.fi-meldung .fi-marke { margin-top: .15rem; }
.fi-eigner .fi-meldung { grid-template-columns: 40px minmax(0, 1fr) minmax(9.5rem, auto); }
.fi-zu { display: block; margin-top: .2rem; color: var(--text-2); font-size: var(--t-xs); text-wrap: pretty; }
.fi-zu a, .fi-zu .auto-link { color: var(--tinte); }
.fi-prozent { display: flex; flex-direction: column; align-items: flex-end; gap: .1rem; white-space: nowrap; }
.fi-prozent b { font-size: var(--t-l); font-weight: 780; font-stretch: 112%; font-variant-numeric: tabular-nums; letter-spacing: -.01em; line-height: 1.15; }
.fi-prozent b.fi-stueck { font-size: var(--t-s); font-stretch: 100%; white-space: normal; text-align: right; }
.fi-prozent small { color: var(--text-2); font-size: var(--t-xs); font-weight: 450; }
.fi-beleg a { color: var(--tinte); }
.fi-kennung { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); gap: 0 2rem; margin: 1rem 0 0; }
.fi-kennung div { padding: .6rem 0; border-bottom: 1px solid var(--linie); }
.fi-kennung dt { font-size: var(--t-xs); color: var(--text-2); }
.fi-kennung dd { margin: .15rem 0 0; font-weight: 650; overflow-wrap: anywhere; }
.fi-kennung dd a { color: var(--tinte); }
.fi-kennung code { font-family: var(--sans); font-variant-numeric: tabular-nums; font-weight: 600; letter-spacing: .02em; }
.insider-tabelle { width: 100%; border-collapse: collapse; font-size: var(--t-s); font-stretch: 85%; }
.insider-tabelle th { text-align: left; font-size: var(--t-xs); font-weight: 600; color: var(--text-2); padding: .4rem .5rem; border-bottom: 2px solid var(--linie-stark); white-space: nowrap; }
.insider-tabelle td { padding: .55rem .5rem; border-bottom: 1px solid var(--linie); vertical-align: top; }
.insider-tabelle .zahl { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.insider-tabelle .ig-datum { white-space: nowrap; font-variant-numeric: tabular-nums; }
.insider-tabelle .ig-name small { display: block; color: var(--text-2); font-size: var(--t-xs); }
.insider-tabelle .ig-name a { color: var(--text); font-weight: 650; }
.insider-tabelle .ig-art { font-weight: 700; }
.insider-tabelle .ig-art.auf { color: var(--auf); }
.insider-tabelle .ig-art.ab { color: var(--ab); }
.insider-tabelle .ig-quelle a { color: var(--tinte); font-size: var(--t-xs); }
@media (max-width: 700px) {
  .fi-eigner .fi-meldung { grid-template-columns: 40px minmax(0, 1fr); }
  .fi-meldung .fi-prozent { grid-column: 2; align-items: flex-start; flex-direction: row; flex-wrap: wrap; gap: .1rem .5rem; align-items: baseline; }
  .fi-meldung .fi-prozent b { font-size: var(--t-m); }
  .fi-meldung .fi-prozent .fi-beleg { flex-basis: 100%; }
  .insider-tabelle th:nth-child(5), .insider-tabelle td:nth-child(5) { display: none; }
}
.fi-avatar-link { display: block; width: 40px; height: 40px; line-height: 0; border: 0; padding: 0; background: none; cursor: pointer; }

/* Kopfzeile passt in jede Breite (19.10.2026): Logo + 7 Menüpunkte + Werkzeuge brauchen 1.400 px, verfügbar sind höchstens 1.320 px –
   „Kostenloses Konto“ lief am PC rechts aus dem Bild. Stufenweise kürzen statt abschneiden. */
/* Inhaltsbreite höchstens 1.224 px (1.320 minus Rand): Suche am PC als Symbol (wie am Handy, Beschriftung bleibt als aria-label) */
@media (min-width: 1101px) { .kopf-werkzeuge [data-suche-oeffnen] .werkzeug-text, .kopf-werkzeuge [data-suche-oeffnen] kbd { display: none; } }
@media (min-width: 1360px) { .kopf-innen { gap: 1.5rem; } }
@media (min-width: 1101px) and (max-width: 1359px) {
  .kopf-werkzeuge > a.werkzeug:not(:has(.icon)) { display: none; }   /* „Anmelden“ (Gäste) – „Konto“ führt auf dieselbe Seite */
  .kopf-werkzeuge > a.werkzeug .werkzeug-text { display: none; }     /* Angemeldete: Konto nur als Symbol */
  .kopf-werkzeuge .knopf.signal.klein .lang { display: none; }
  .kopf-werkzeuge .knopf.signal.klein .kurz { display: inline; }
}
@media (min-width: 1101px) and (max-width: 1239px) { .kopf-innen { gap: 1.25rem; } .hauptnav { gap: 1rem; } }

/* ───── Menü am Handy und Tablet (bis 1100 px; darüber steht die Navigation in der Kopfzeile) ───── */
.menue-knopf { display: none; width: 44px; height: 44px; justify-content: center; padding: 0; }
.menue-striche, .menue-striche::before, .menue-striche::after { display: block; width: 20px; height: 2px; background: var(--druck); border-radius: 1px; transition: transform var(--d1) var(--kurve), opacity var(--d1) var(--kurve); }
.menue-striche { position: relative; }
.menue-striche::before, .menue-striche::after { content: ""; position: absolute; left: 0; }
.menue-striche::before { top: -6px; }
.menue-striche::after { top: 6px; }
.kopf.menue-offen .menue-striche { background: transparent; }
.kopf.menue-offen .menue-striche::before { transform: translateY(6px) rotate(45deg); }
.kopf.menue-offen .menue-striche::after { transform: translateY(-6px) rotate(-45deg); }
@media (max-width: 1100px) {
  .menue-knopf { display: inline-flex; }
  .kopf.menue-offen .hauptnav { display: flex; flex-direction: column; align-items: stretch; gap: 0; position: fixed; top: 64px; left: 0; right: 0; bottom: 0; z-index: 45;
    background: var(--papier); border-top: 1px solid var(--linie-stark); overflow-y: auto; overscroll-behavior: contain; padding: .5rem var(--rand) 3rem; }
  .kopf.menue-offen .hauptnav > a, .kopf.menue-offen .mega-knopf { display: block; width: 100%; text-align: left; padding: 1rem 0; font-size: var(--t-m); font-weight: 600; color: var(--text); border-bottom: 1px solid var(--linie); }
  .kopf.menue-offen .hauptnav > a[aria-current="page"], .kopf.menue-offen .mega-knopf.aktiv { border-bottom-color: var(--linie); color: var(--signal); }
  .kopf.menue-offen .mega-wrap { position: static; }
  .kopf.menue-offen .mega { position: static; box-shadow: none; border-top: 0; margin: 0 calc(var(--rand) * -1); }
  .kopf.menue-offen .mega-innen, .kopf.menue-offen .mega-bereiche { grid-template-columns: 1fr; padding: 1.2rem var(--rand); gap: 1.2rem; }
  body.menue-offen { overflow: hidden; }
}
@media (max-width: 760px) { .kopf.menue-offen .hauptnav { top: 56px; } }
@media (prefers-reduced-motion: reduce) { .menue-striche, .menue-striche::before, .menue-striche::after { transition: none; } }
/* Bildnachweise: unter 900 px je Foto ein Block (Name, Urheber, Lizenz · Quelle) statt vier gequetschter Spalten */
@media (max-width: 900px) {
  .bn-tabelle thead { display: none; }
  .bn-tabelle, .bn-tabelle tbody { display: block; }
  .bn-tabelle tr { display: grid; grid-template-columns: auto 1fr; column-gap: 1rem; row-gap: .15rem; padding: .8rem .9rem; border-bottom: 1px solid var(--linie); }
  .bn-tabelle td { display: block; padding: 0; border: 0; white-space: normal !important; min-width: 0; overflow-wrap: anywhere; }
  .bn-tabelle td:nth-child(1), .bn-tabelle td:nth-child(2) { grid-column: 1 / -1; }
  .bn-tabelle td:nth-child(2) { color: var(--text-2); }
  .bn-tabelle td:nth-child(2)::before { content: "Foto: "; }
  .bn-tabelle td:nth-child(4)::before { content: "· "; color: var(--text-3); }
}

/* Kopfzeile am Handy: „Anmelden“ ohne sichtbaren Text weglassen (Konto-Knopf führt dorthin), schmale Geräte enger */
@media (max-width: 760px) { .kopf-werkzeuge > a.werkzeug:not(:has(svg)) { display: none; } }
@media (max-width: 420px) { .kopf-innen { gap: .5rem; } .kopf-werkzeuge { gap: 0; } .marke-zeichen { width: 34px; height: 34px; } .marke-wort { font-size: .98rem; } }

/* ═════════ Rahmen (19.10.2026): Kopf, Menü, Ticker, Fußzeile, Register-Tabelle, Schublade, Suche, Konto ═════════ */
/* Menü offen: Kopf liegt über dem Ticker (Ticker z 35), unter Suche (60) und Schublade (70) – sonst verdeckt der Ticker die letzten Menüpunkte */
.kopf.menue-offen { z-index: 50; }
/* Pfeil der Mega-Knöpfe zeigt den Zustand; im Handy-Menü mittig rechts statt hochgestellt */
.mega-knopf[aria-expanded="true"]::after { content: " ▴"; }
@media (max-width: 1100px) {
  .kopf.menue-offen .mega-knopf { display: flex; justify-content: space-between; align-items: center; }
  .kopf.menue-offen .mega-knopf::after { font-size: .8em; color: var(--text-2); }
  .kopf.menue-offen .mega-knopf[aria-expanded="true"] { border-bottom-color: transparent; }
}
@media (min-width: 601px) and (max-width: 1100px) { .kopf.menue-offen .mega-bereiche { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* Suche: Spalte darf nicht breiter als der Schirm werden (Grid-Spalte wuchs mit dem Platzhalter auf 435 px) */
.suche-ebene { grid-template-columns: minmax(0, 1fr); }
/* Seitenende: Platz für den Ticker auch mit Home-Balken (iOS) */
body { padding-bottom: calc(44px + env(safe-area-inset-bottom, 0px)); }
/* Fußzeile: drei Spalten ohne leere vierte; Linktexte brechen ausgewogen („Eintrag entfernen lassen“) */
.fuss-innen { grid-template-columns: 2fr 1fr 1fr; }
.fuss-nav a { text-wrap: balance; }
@media (max-width: 760px) { .fuss-innen { grid-template-columns: 1fr 1fr; } }
/* Register-Tabelle: Beschreibung bis zu zwei Zeilen statt einer abgeschnittenen Zeile mit fester Breite;
   Sparkline behält ihre Breite (max-width:100% machte sie in der Tabelle „zusammendrückbar“, das Delta lief in die Vermögensspalte) */
.pn-zusatz { max-width: none; white-space: normal; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; text-wrap: pretty; }
.register-tabelle .pn-zusatz { overflow-wrap: anywhere; hyphens: auto; -webkit-hyphens: auto; }
td.sp-person > .avatar { flex: none; }
.spark svg { flex: none; max-width: none; }
.spark .delta { flex: none; }
.register-tabelle .sp-person { min-width: 220px; }
@media (min-width: 761px) and (max-width: 1100px) { .register-tabelle .sp-land { display: none; } }
@media (min-width: 761px) and (max-width: 900px) { .register-tabelle .sp-bereich, .register-tabelle .sp-alter { display: none; } }
@media (max-width: 760px) {
  .register-tabelle .sp-person { min-width: 0; }
  .register-tabelle .pn-name { white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; line-height: 1.25; }
}
.noten > label > span:not(.note) { white-space: nowrap; }
/* Register-Auszug: Stand-Datum als eigene Zeile unter Notenstufe und Beleg (vorher brach „· Stand …“ mit dem Punkt vorn um) */
.stand-datum { white-space: nowrap; flex-basis: 100%; }
/* Konto (Gast): beide Formulare gleich hoch; Beispiele-Spalte läuft daneben über zwei Zeilen */
.konto-raster { grid-template-rows: auto 1fr; }
.konto-raster > .formular { align-self: stretch; }
@media (min-width: 1101px) { .konto-raster > .konto-beispiele { grid-row: span 2; } }
/* Glocke: Personen-Verweise im Meldungstext sind normale Textlinks, keine Listeneinträge */
.gp-liste .gp-zeile a { display: inline; padding: 0; border: 0; box-shadow: none; color: inherit; text-decoration: underline; text-decoration-color: var(--linie-stark); }
/* Datei-Feld (Löschantrag, Profil übernehmen) im Knopf-Stil */
.formular input[type=file] { font: inherit; font-size: var(--t-s); color: var(--text-2); max-width: 100%; }
.formular input[type=file]::file-selector-button { font: inherit; font-weight: 600; color: var(--text); background: var(--blatt); border: 1.5px solid var(--linie-stark); border-radius: 4px; padding: .45rem .8rem; margin-right: .7rem; cursor: pointer; }
.formular input[type=file]::file-selector-button:hover { border-color: var(--druck); }
/* Bildnachweise am Handy: ohne Quelle kein „· –“, Trennpunkt dicht an der Lizenz */
@media (max-width: 900px) {
  .bn-tabelle tr { column-gap: .35rem; }
  .bn-tabelle td:nth-child(4):not(:has(a)) { display: none; }
}

/* ───── Bereich „Profile“ (Darstellungsprüfung 19.10.2026): Profilblatt ───── */
/* Schätzspiel: Der Deckel liegt im selben Rasterfeld wie die verdeckte Zahl (statt absolut darüber). So wächst der Kasten mit,
   wenn Frage oder Name zweizeilig werden – vorher lief „Direkt anzeigen“ am Handy über die Zeilen darunter. */
.raten.verdeckt { display: grid; padding: 0; }
.raten.verdeckt > .kennzahl, .raten.verdeckt > .raten-deckel { grid-area: 1 / 1; }
.raten.verdeckt > .raten-deckel { position: static; }
.raten.verdeckt .kennzahl { visibility: hidden; }   /* verdeckt heißt unsichtbar, auch für Vorleseprogramme */
/* Zugeklappte Erklärung: Inhalt wirklich aus dem Fluss (wie die Browser-Vorgabe, aber auch für Prüfwerkzeuge eindeutig) */
details.kk-methode:not([open]) > :not(summary) { display: none; }
/* Verbindungen unter dem Netz: Namen nie abschneiden („Greg Broc…“) – der Name nimmt sich seine Breite, die Rolle bricht um */
.verbindungen.spalten { grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); }  /* zwei breite statt drei gequetschter Spalten */
.verbindungen.spalten .verbindung { grid-template-columns: 28px auto 1fr; align-items: center; }
.verbindungen.spalten .verbindung span { overflow: visible; white-space: normal; text-overflow: clip; }
.verbindungen.spalten .verbindung small { text-wrap: balance; }
/* Lebenslauf: Abstand zwischen Abschnittstitel und „Stationen“ */
.zusatz-teil > h2 + .zusatz-raster { margin-top: 1rem; }
/* Bildnachweis: Lizenzname („CC BY-SA 4.0“) bleibt eine Einheit */
.bildnachweis a { white-space: nowrap; }
/* Konto-Band: „Schon dabei? Anmelden“ nie mitten im Satz trennen; am Handy als eigene Zeile unter dem Knopf */
.kb-anmelden { white-space: nowrap; }
@media (max-width: 480px) { .kb-anmelden { display: block; width: fit-content; margin: .9rem 0 0; } }

/* ═════════ Bereich „Beziehungen“ (Agent Beziehungen, 19.10.2026): Beziehungen, Stammbäume, Firmen, Geburtstage – Darstellungskorrekturen ═════════ */
/* Unterseiten: Reiter am Handy zweizeilig ohne Riesenabstand, Inhalt direkt darunter statt ~90 px Leerraum */
.unternav { column-gap: 1.4rem; row-gap: 0; }
.seiten-kopf:has(> .unternav) { padding-bottom: 0; }
.seiten-kopf:has(> .unternav) + .abschnitt { padding-top: 1.6rem; }
@media (max-width: 600px) { .unternav { column-gap: 1.1rem; } }
/* Paare: Text nie am Kartenrand (die Grundregel .paare li nahm den Innenabstand weg) */
.paare li.paar { padding: .9rem 1.1rem 1rem; }
.paare.kompakt .paar-a, .paare.kompakt .paar-b { white-space: normal; overflow: visible; text-overflow: clip; }
@media (max-width: 600px) {
  .paare:not(.kompakt) .paar-kopf { grid-template-columns: minmax(0, 1fr) auto; column-gap: .8rem; row-gap: .15rem; align-items: center; }
  .paare:not(.kompakt) .paar-a, .paare:not(.kompakt) .paar-b { grid-column: 1; display: flex; flex-wrap: wrap; align-items: baseline; column-gap: .35rem; text-align: left; min-width: 0; }
  .paare:not(.kompakt) .paar-a { grid-row: 1; } .paare:not(.kompakt) .paar-b { grid-row: 2; }
  .paare:not(.kompakt) .paar-b small { order: 2; }
  .paare:not(.kompakt) .paar-summe { grid-column: 2; grid-row: 1 / span 2; }
  .paare-filter .segmente { flex-wrap: wrap; overflow: visible; }
}
/* Familien: Namen ganz zeigen; Kopf, Zusatz und Mitglieder je Reihe auf gleicher Höhe */
.fam-person > span:not(.avatar) { white-space: normal; overflow: visible; text-overflow: clip; }
.familien-karten > .familie { display: grid; grid-template-rows: subgrid; grid-row: span 3; row-gap: 0; align-content: start; }
/* Eltern & Kinder: Namen umbrechen statt abschneiden */
.gl-link > span:not(.avatar) { white-space: normal; overflow: visible; text-overflow: clip; }
/* Firmen: Suchfeld breit genug für den Platzhalter; am Handy „n Personen“ unter dem Namen statt darüber geschoben */
.firmen-suche .feld-suche { max-width: none; }
@media (max-width: 700px) {
  .firmen-tabelle li { grid-template-columns: 2rem minmax(0, 1fr) auto; row-gap: .1rem; }
  .firmen-tabelle .ft-platz { grid-row: 1 / span 2; }
  .firmen-tabelle .ft-n { grid-column: 2; grid-row: 2; }
  .firmen-tabelle .ft-wert { grid-column: 3; grid-row: 1 / span 2; }
}
/* Netz-Legende unter dem Netz: Rand wie der übrige Inhalt (lag am Handy direkt am Bildschirmrand) */
@media (max-width: 1240px) { .netz-abschnitt > .netz-legende { padding-inline: var(--rand); } }
/* Angaben mit Trennpunkt (Firmenseite „Familien hinter …“): Umbruch nur zwischen den Angaben, der Punkt am Zeilenanfang fällt weg */
.bz-teile { display: flex; flex-wrap: wrap; column-gap: .9rem; overflow: hidden; }
.bz-teile span { white-space: nowrap; margin-left: -.9rem; }
.bz-teile span::before { content: "·"; display: inline-block; width: .9rem; text-align: center; }
/* Insider-Geschäfte am Handy: je Geschäft ein Block (Person · Datum / Art · Stück · Quelle) statt zerquetschter Spalten */
@media (max-width: 600px) {
  .insider-tabelle thead { display: none; }
  .insider-tabelle, .insider-tabelle tbody { display: block; }
  .insider-tabelle tr { display: grid; grid-template-columns: auto auto minmax(0, 1fr) auto; column-gap: .9rem; row-gap: .2rem; align-items: baseline; padding: .6rem 0; border-bottom: 1px solid var(--linie); }
  .insider-tabelle td { display: block; padding: 0; border: 0; min-width: 0; }
  .insider-tabelle .ig-name { grid-column: 1 / 4; grid-row: 1; }
  .insider-tabelle .ig-datum { grid-column: 4; grid-row: 1; text-align: right; color: var(--text-2); font-size: var(--t-xs); }
  .insider-tabelle .ig-art { grid-column: 1; grid-row: 2; }
  .insider-tabelle td.zahl:nth-child(4) { grid-column: 2; grid-row: 2; text-align: left; }
  .insider-tabelle td.zahl:nth-child(4)::after { content: " Stück"; color: var(--text-2); }
  .insider-tabelle .ig-quelle { grid-column: 4; grid-row: 2; text-align: right; }
}
/* Geburtstage: Monatsliste – Namen ganz, Alter in fester Spalte (alle Zeilen bündig, auch Personen ohne Profil) */
.kalender ul .k-zeile { grid-template-columns: 32px minmax(0, 1fr) 2.3em 5.5em; }
.k-zeile .k-name { white-space: normal; overflow: visible; text-overflow: clip; hyphens: auto; overflow-wrap: break-word; }
.k-zeile .k-alter { text-align: right; }
/* Jahreskalender: Tageszahlen nur am Handy; dort hochkant (Monate als Spalten), damit das ganze Jahr ohne Querwischen sichtbar ist */
.kal-tageszahlen { display: none; }
@media (max-width: 640px) {
  .jahreskalender { padding: .8rem .7rem; overflow-x: visible; }
  .kal-raster { min-width: 0; grid-auto-flow: column; grid-template-rows: auto repeat(31, auto); grid-template-columns: 1.3rem repeat(12, minmax(0, 1fr)); gap: 2px 3px; }
  .kal-zeile, .kal-tageszahlen { display: contents; }
  .kal-monat { font-size: 11px; text-align: center; padding-bottom: .25rem; }
  .kal-tag, .kal-leer { aspect-ratio: auto; height: 15px; }
  .kal-zahl { font-size: 10px; line-height: 15px; color: var(--text-3); text-align: right; font-variant-numeric: tabular-nums; padding-right: 2px; }
}
/* Tagesseite: Beschreibung ganz zeigen; am Handy Zahlen unter dem Namen statt Name in drei Zeilen */
.tag-karten .kp-zusatz { white-space: normal; overflow: visible; text-overflow: clip; }
@media (max-width: 600px) {
  .tag-karten .karte-person { grid-template-columns: auto minmax(0, 1fr); row-gap: .35rem; }
  .tag-karten .karte-person > .avatar { grid-row: 1 / span 2; align-self: start; }
  .tag-karten .kp-zahlen { grid-column: 2; flex-direction: row; flex-wrap: wrap; align-items: baseline; column-gap: .5rem; min-width: 0; }
  .tag-tabelle thead { display: none; }
  .tag-tabelle, .tag-tabelle tbody { display: block; }
  .tag-tabelle tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 1rem; row-gap: .1rem; padding: .6rem .75rem; border-bottom: 1px solid var(--linie); }
  .tag-tabelle td { display: block; padding: 0; border: 0; min-width: 0; }
  .tag-tabelle td:nth-child(1) { grid-column: 1; grid-row: 1; }
  .tag-tabelle td:nth-child(4) { grid-column: 2; grid-row: 1; text-align: right; }
  .tag-tabelle td:nth-child(2) { grid-column: 1; grid-row: 2; font-size: var(--t-xs); color: var(--text-2); }
  .tag-tabelle td:nth-child(3) { grid-column: 2; grid-row: 2; font-size: var(--t-xs); color: var(--text-2); text-align: right; }
  .tag-blaettern { display: grid; grid-template-columns: 1fr 1fr; }
  .tag-blaettern > :nth-child(2) { grid-column: 1 / -1; order: 3; }
  .tag-blaettern > * { text-align: center; justify-content: center; }
}
/* Bereich „Profile“: „Zu Liste“-Menü – Platz für den vollen Platzhalter, nie breiter als der Bildschirm */
.listen-menue { min-width: min(380px, calc(100vw - 16px)); max-width: calc(100vw - 16px); }
.listen-menue input { min-width: 0; }


/* ═════ Listen (19.10.2026): Startseite, Register, Ranglisten, Partei, Abgeordnete, Erkenntnisse – nichts überlappt, in jeder Breite ═════ */
/* Register-Tabelle: Bezugsrahmen für die Bildschirmleser-Texte in .beleg. Ohne ihn liegen sie außerhalb des waagerecht scrollenden Rahmens und machen die Seite breiter (768 px → 839 px). */
.tabelle-rahmen { position: relative; }
/* Handy: Kopfzeilen passen in ihre Spalte („Weltrang ▾“, „Gehalt im Jahr“) */
@media (max-width: 760px) {
  .register-tabelle th.sp-rang, .register-tabelle td.sp-rang { width: 3.9rem; }  /* „Weltrang ▾“ braucht 55 px */
  .register-tabelle thead th button, .register-tabelle thead th > span { padding: .6rem .3rem; font-size: .7rem; }
  .register-tabelle th.sp-vermoegen button, .register-tabelle th.sp-vermoegen > span { white-space: normal; text-align: right; width: 100%; hyphens: auto; }
  /* Partei-Seite: zwei Wertspalten (Nebeneinkünfte, Vermögen) nebeneinander */
  .register-tabelle:has(th.sp-vermoegen + th.sp-vermoegen) th.sp-vermoegen, .register-tabelle:has(th.sp-vermoegen + th.sp-vermoegen) td.sp-vermoegen { width: 5.6rem; }
  .register-tabelle:has(th.sp-vermoegen + th.sp-vermoegen) .betrag { font-size: var(--t-xs); }
  .register-tabelle:has(th.sp-vermoegen + th.sp-vermoegen) th.sp-rang, .register-tabelle:has(th.sp-vermoegen + th.sp-vermoegen) td.sp-rang { width: 2.4rem; }
}

/* Startseite · Kopf: am Handy steht das Punktfeld unter dem Text statt hinter der Legende */
@media (max-width: 900px) {
  .start-held { display: flex; flex-direction: column; min-height: 0; }
  .start-held .held-text { order: 1; padding-bottom: 1.2rem; }
  .start-held .held-feld { order: 2; position: relative; inset: auto; height: clamp(300px, 62vw, 420px); }
}
/* Startseite · Verteilung: Stufenname in einer Zeile, Spalten breit genug */
.vt-legende { grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.vt-legende li > span:nth-child(2) { white-space: nowrap; }
/* Startseite · Familien: Umbruch nur zwischen „N Mitglieder im Register“ und den Vornamen */
.fl-name small .fl-einheit { white-space: nowrap; }
/* Startseite · Erkenntnisse: fünf Karten in vollen Reihen (5 / 3+2 / 2+2+1 als 1 breite / 1) */
@media (min-width: 521px) and (max-width: 900px) {
  .erk-raster:not(.gross) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .erk-raster:not(.gross) > :last-child:nth-child(odd) { grid-column: 1 / -1; }
}
@media (min-width: 901px) and (max-width: 1180px) {
  .erk-raster:not(.gross) { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .erk-raster:not(.gross) > * { grid-column: span 2; }
  .erk-raster:not(.gross) > :nth-child(4):nth-last-child(2), .erk-raster:not(.gross) > :nth-child(5):last-child { grid-column: span 3; }
}
@media (min-width: 1181px) { .erk-raster:not(.gross) { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
@media (max-width: 520px) { .erk-raster:not(.gross) { grid-template-columns: 1fr; } }
/* Erkenntnisse-Seite: große Werte („3. Januar“) passen auch in die halbe Handybreite */
@media (max-width: 520px) { .erk-raster.gross .erk-wert { font-size: clamp(1.5rem, 7.4vw, var(--t-2xl)); overflow-wrap: anywhere; } }
/* Mein Platz: Eingabe und Auswahl gleich hoch, Beschriftungen auf einer Linie */
.mp-form input[type=text], .mp-form select { box-sizing: border-box; height: 3.25rem; line-height: 1.2; }
/* Ranglisten-Übersicht: Einträge über die volle Spaltenbreite (Linie und Zahl rechtsbündig), „Weitere …“ einer Reihe auf gleicher Höhe */
.rl-gruppen { align-items: stretch; }
.rl-gruppen .rl-gruppe-block { display: flex; flex-direction: column; height: 100%; }
.rl-gruppen .rl-gruppe-block li > a { flex: 1 1 auto; min-width: 0; }
.rl-gruppen .rl-mehr { margin-top: auto; }
/* Rangliste · Weitere Ranglisten: Linien einer Reihe auf gleicher Höhe, auch wenn ein Titel zweizeilig ist */
.verwandt .mehr-liste li { display: flex; }
.verwandt .mehr-liste .mehr-person { align-items: center; }
/* Abgeordnete: Betragsspalte nur so breit wie der Betrag – Namen bleiben am Handy einzeilig */
@media (max-width: 760px) { .bl-zeile .bl-wert { min-width: 0; } }
.partei-tabelle thead th { white-space: nowrap; }
/* Ranglisten-Podest: Spalten dürfen schrumpfen (vorher 1.25fr/1fr/1fr = mindestens Inhaltsbreite → Seite 851 px breit bei 768 px); bis 1.100 px untereinander */
.podest { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr) minmax(0, 1fr); }
@media (max-width: 1100px) { .podest { grid-template-columns: minmax(0, 1fr); } }
@media (min-width: 1101px) and (max-width: 1180px) { .podest .podest-platz { font-size: var(--t-2xl); } .podest-wert { font-size: var(--t-l); } .podest li { column-gap: .8rem; padding: 1rem; } }
.podest-wert { white-space: nowrap; }
/* Geburtstags-Hinweis unter dem Namen („Gestern 74 geworden“) darf in schmalen Zellen umbrechen statt aus der Zelle zu ragen */
.register-tabelle .pn .geburtstag { white-space: normal; }
/* Rangliste · Auf einen Blick: lange Ländernamen („Deutsche Demokratische Republik“) umbrechen statt abgeschnitten */
.rb-name { white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: break-word; }
/* Zugeklappte Fragen und „Weitere … Ranglisten“: Inhalt wirklich aus dem Fluss (wie die Browser-Vorgabe, auch für Prüfwerkzeuge eindeutig) */
.rl-fragen details:not([open]) > :not(summary), details.rl-mehr:not([open]) > :not(summary) { display: none; }
/* Bereich „Profile“: Verlaufsdiagramm am Handy – das SVG (960 Einheiten) ist dort auf rund 37 % verkleinert, die Achsenschrift
   wäre 4–5 px hoch. Schrift in Diagrammeinheiten vergrößern, Wertachse innen links mit Papier-Rand, damit sie lesbar bleibt. */
@media (max-width: 600px) {
  .blatt .diagramm.verlauf.gross text { font-size: 19px; paint-order: stroke; stroke: var(--papier); stroke-width: 5px; stroke-linejoin: round; }
  .blatt .diagramm.verlauf.gross .raster text { text-anchor: start; transform: translate(-40px, -12px); }
}
@media (max-width: 480px) { .blatt .diagramm.verlauf.gross text { font-size: 25px; } }
/* Konto: E-Mail in der Vorzeile bricht als Ganzes um (nicht am Bindestrich); Reiterleiste zeigt rechts an, dass es weitergeht */
.vorzeile:has(.vz-mail) { flex-wrap: wrap; row-gap: .15rem; }
.vz-mail { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 760px) { .konto-tabs.weiter-rechts { -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 2.5rem), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 2.5rem), transparent); } }
/* Alarme am Handy: je Alarm ein Block (Text, darunter Angaben in einer Zeile, „Entfernen“ rechts) statt fünf gequetschter Spalten */
@media (max-width: 600px) {
  .alarm-tabelle thead { display: none; }
  .alarm-tabelle, .alarm-tabelle tbody { display: block; }
  .alarm-tabelle tr { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: .7rem; row-gap: .2rem; padding: .75rem .9rem; border-bottom: 1px solid var(--linie); }
  .alarm-tabelle td { display: block; padding: 0; border: 0; font-size: var(--t-xs); color: var(--text-2); }
  .alarm-tabelle td:first-child { flex: 1 0 100%; font-size: var(--t-s); font-weight: 600; color: var(--text); }
  .alarm-tabelle td:nth-child(2)::before { content: "seit "; }
  .alarm-tabelle td:nth-child(3)::before { content: "ausgelöst "; }
  .alarm-tabelle td:nth-child(4)::before { content: "E-Mail: "; }
  .alarm-tabelle td:last-child { margin-left: auto; }
}
/* Register-Tabelle breit: Personenspalte nicht auf Kosten von Bereich/Land (Beschreibungen sind jetzt umbrechbar) */
@media (min-width: 1101px) { .register-tabelle th.sp-person { width: 34%; } .register-tabelle td.sp-bereich { min-width: 7.5rem; } }
/* Ranglisten-Übersicht: lange Wörter („Immobilienunternehmer“) trennen statt in die Eintragszahl zu laufen (4 schmale Spalten bei 1.001–1.200 px) */
.rl-gruppe-block .rg-titel { hyphens: auto; -webkit-hyphens: auto; overflow-wrap: break-word; min-width: 0; }
/* Gehaltsranglisten: Prüfdatum der Pflichtveröffentlichungen unter Einleitung und Kennzahlen */
.rl-stand { margin: .8rem 0 0; }
/* Geburtstage (Bereich Beziehungen): „Alle n Geburtstage“ in jeder Tageskarte unten bündig */
.kalender > li { display: flex; flex-direction: column; }
.kalender > li > .tag-alle { margin-top: auto; }
.kalender > li > ul { margin-bottom: .8rem; }
