/* ---------------------------------------------------------------------------
   styles.css — tecis-CI.
   Navy #00325b · Himmelblau #009ee3 · Limette #d3d800 · Sand #cbcdb9
   Schriften: DM Sans überall. Tinos liegt als Rückfall bei (tecis.de nutzt es
   für Überschriften), wird hier aber nicht gesetzt. Beide liegen unter
   assets/fonts und werden von build.mjs
   als base64 hier eingesetzt; kein Laufzeitaufruf bei Google.
--------------------------------------------------------------------------- */

/* Wird beim Bauen durch die eingebetteten @font-face-Regeln ersetzt. */
@font-face{font-family:"DM Sans";font-style:normal;font-weight:100 1000;font-display:swap;src:url("data:font/woff2;base64,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") format("woff2")}
@font-face{font-family:"Tinos";font-style:normal;font-weight:400;font-display:swap;src:url("data:font/woff2;base64,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") format("woff2")}
@font-face{font-family:"Tinos";font-style:normal;font-weight:700;font-display:swap;src:url("data:font/woff2;base64,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") format("woff2")}

/* Das hidden-Attribut setzt nur `display: none` in der Browservorgabe — jede
   eigene Regel mit `display: flex` schlägt es, weil sie spezifischer ist. Das
   ist hier schon zweimal passiert: Das Rückgängig-Band stand dauerhaft im Bild,
   und beim Werkzeugwechsel blieben BEIDE Kapitelleisten stehen. Beide Male sah
   der Zustand im DOM richtig aus und nur die Anzeige war falsch — deshalb steht
   die Regel jetzt einmal ganz oben statt als Flicken an jeder Fundstelle. */
[hidden] { display: none !important; }

/* Farben liegen als Variablen vor, damit der Dark Mode nur die Werte tauscht.
   Das Theme setzt ein Inline-Skript im <head> VOR dem ersten Paint auf
   data-theme, deshalb genügt hier ein einziger Dark-Block ohne Media-Query. */
:root {
  --navy: #00325b;
  --himmelblau: #009ee3;
  --limette: #d3d800;
  /* Die Schrift, die AUF Limette steht.
     Sie darf nicht `--navy` sein: In der dunklen Ansicht wird `--navy` zu
     einem hellen Blau, damit Überschriften auf dunklem Grund lesbar bleiben —
     auf der limettenen Fläche ergab das hell auf hell. Gemessen am
     Berateransicht-Merker: Kontrast 1,36 : 1, gefordert sind 4,5 : 1.
     Wer eine eigene Fläche setzt, muss auch die Schrift dazu setzen; ein Paar
     aus Grund und Schrift lässt sich nicht zur Hälfte erben.
     Dieser Wert wird deshalb in KEINER Ansicht überschrieben. */
  --auf-limette: #00325b;

  /* Farbpaare: Fläche und Schrift gehören zusammen.
     `--himmelblau` und `--navy` sind Marken- und Flächenfarben. Sobald SCHRIFT
     darauf steht, entscheidet nicht mehr die Marke, sondern die Lesbarkeit —
     und die ist messbar. Gemessen wurde jedes sichtbare Textelement in beiden
     Ansichten und allen sieben Werkzeugen gegen WCAG AA (4,5 : 1):

       weiß auf #009ee3 …………… 3,00   der Hauptknopf des ganzen Werkzeugs
       weiß auf #35b6f0 …………… 2,31   dieselbe Fläche in der dunklen Ansicht
       weiß auf #8ab8dd …………… 2,10   alles, was in Dunkel auf „Navy" liegt

     Die Markenfarbe bleibt unangetastet, wo sie keine Schrift trägt: Linien,
     Marken, Fortschrittsbalken, Diagramme. Nur die textTRAGENDE Fläche
     bekommt einen eigenen Wert — im Hellen etwas tiefer, damit Weiß darauf
     steht; im Dunklen bleibt sie hell und die Schrift wird dunkel. */
  --akzent-fuell: #007cb4;   /* weiß darauf: 4,62 */
  --auf-akzent: #ffffff;
  --betont-fuell: #00325b;   /* weiß darauf: 13,07 */
  --auf-betont: #ffffff;
  /* Das Blau als SCHRIFT auf hellem Grund. #009ee3 kam dort auf 2,80. */
  --akzent-text: #0b6f9c;    /* 5,19 auf der Seitenfläche */
  /* Die Farbe des Vorsprungs — die eine Zahl, um die es im AVD-Rechner geht.
     Sie stand als fester Wert #6f7300 im Stylesheet und konnte der Ansicht
     deshalb nicht folgen: dunkles Oliv auf dunklem Grund, 3,05 : 1. */
  --vorsprung: #6f7300;      /* 5,09 auf Weiß */

  --sand: #cbcdb9;
  --text: #23384d;
  /* War #66788c und blieb mit 4,23 : 1 knapp unter der Schwelle — auf dem
     grauen Fußzeilengrund sogar bei 3,86. Betroffen war der gesamte
     Zweittext: Hinweise, Fußnoten, die Begrüßung, jede Reglerbeschriftung. */
  --gedaempft: #5a6b7d;      /* 5,10 auf der Seitenfläche, 4,66 in der Fußzeile */
  --linie: #dfe4ea;
  --flaeche: #f5f7fa;
  --weiss: #fff;
  --warnung: #b8860b;
  --fehler: #b3261e;
  --radius: 10px;

  /* --- Materialstufen -----------------------------------------------------
     Drei Ebenen, und jede hat eine Aufgabe. Vorher gab es nur zwei, und die
     Folge war sichtbar: Der Ergebnisblock „Kipppunkt" stand auf --flaeche,
     also auf derselben Farbe wie die Seite — er war da, aber er trat nicht
     hervor. Materialgewicht trägt die Hierarchie, nicht nur die Schriftgröße. */
  --ebene-0: #f5f7fa;   /* die Seite selbst */
  --ebene-1: #fff;      /* Karten, Formulare — das Normale */
  --ebene-2: #00325b;   /* die eine Antwort, um die es geht */
  --ebene-2-text: #fff;
  --ebene-2-still: rgba(255, 255, 255, .72);

  /* Schatten steigen mit der Ebene: Eine größere Fläche liest sich als
     dickeres Material und wirft deshalb einen tieferen Schatten. */
  --schatten-1: 0 1px 2px rgb(0 50 91 / .04), 0 2px 8px rgb(0 50 91 / .04);
  --schatten-2: 0 2px 6px rgb(0 50 91 / .10), 0 12px 32px rgb(0 50 91 / .14);
  --schatten-schwebend: 0 8px 24px rgb(0 50 91 / .12), 0 24px 64px rgb(0 50 91 / .18);

  /* --- Bewegung -----------------------------------------------------------
     Zwei Kurven statt fünfzehn verstreuter Werte. `--kurve` ist kritisch
     gedämpft (kein Überschwingen) und die Vorgabe für alles, was nicht aus
     einer Geste kommt; `--kurve-schwung` schwingt leicht über und ist NUR für
     Bewegungen gedacht, denen ein Wurf oder ein Ziehen vorausging. */
  --kurve: cubic-bezier(.32, .72, 0, 1);
  --kurve-schwung: cubic-bezier(.34, 1.32, .48, 1);
  --kurve-raus: cubic-bezier(.4, 0, 1, 1);
  --zeit-tipp: .1s;     /* Druckrückmeldung — muss sofort sein */
  --zeit-kurz: .18s;
  --zeit-mittel: .28s;
  --zeit-lang: .42s;
  --seite: 1800px;   /* Nutzbreite; das Diagramm ist der Platzfresser */
  --rand: 1rem;      /* Seitenabstand — für Kopf, Inhalt und Fuß derselbe */

  /* Kopfleiste getrennt geführt: im Dark Mode darf sie nicht heller sein
     als der Seitenhintergrund. */
  --kopf-bg: #00325b;
  --kopf-text: #fff;
  --kopf-still-bg: rgba(255, 255, 255, .12);
  --kopf-still-rand: rgba(255, 255, 255, .28);
  --fuss-bg: #e9edf2;   /* Abbinder, dunkler als --flaeche */

  /* Diagramme: von charts.mjs als var(--name, #fallback) ausgegeben. */
  --chart-grid: #e6e9ee;
  --chart-text: #33475b;
  --chart-achse: #8a97a8;
  --chart-betont: #00325b;
  --reihe-1: #00325b;   /* Navy */
  --reihe-2: #8a8d00;   /* Limette, auf Weiß abgedunkelt */
  --reihe-3: #009ee3;   /* Himmelblau */
  --reihe-4: #6b4f9e;
  --reihe-5: #c4622d;
  --reihe-6: #7d8471;
}

:root[data-theme="dark"] {
  /* Materialstufen im Dunkeln: Die Seite ist am dunkelsten, Karten heben sich
     ab, die Antwort bleibt Navy — sie ist die Markenfarbe und dieselbe wie in
     der Kopfleiste, das hält die Ebene über alle Ansichten hinweg gleich. */
  --ebene-0: #0f1720;
  --ebene-1: #1a2532;
  --ebene-2: #00436f;
  --ebene-2-text: #fff;
  --ebene-2-still: rgba(255, 255, 255, .70);
  --schatten-1: 0 1px 2px rgb(0 0 0 / .28), 0 2px 8px rgb(0 0 0 / .24);
  --schatten-2: 0 2px 6px rgb(0 0 0 / .40), 0 12px 32px rgb(0 0 0 / .44);
  --schatten-schwebend: 0 8px 24px rgb(0 0 0 / .44), 0 24px 64px rgb(0 0 0 / .52);

  --navy: #8ab8dd;          /* Überschriften bleiben lesbar */
  --himmelblau: #35b6f0;
  /* Umgekehrt als im Hellen: Die Fläche bleibt hell, die Schrift wird dunkel.
     #06131f auf #35b6f0 ergibt 8,12, auf #8ab8dd 8,91. */
  --akzent-fuell: #35b6f0;
  --auf-akzent: #06131f;
  --betont-fuell: #8ab8dd;
  --auf-betont: #06131f;
  --akzent-text: #35b6f0;   /* 7,83 auf der Seitenfläche */
  --vorsprung: #a5a800;     /* 6,05 auf der Kartenfläche */
  --text: #dbe4ed;
  --gedaempft: #93a3b3;
  --linie: #27343f;
  --flaeche: #0e1720;
  --weiss: #16212c;         /* „weiß" heißt hier: Kartenfläche */
  --warnung: #e0b34a;
  --fehler: #ef7a72;

  --kopf-bg: #0a1219;
  --kopf-text: #e8eef4;
  --kopf-still-bg: rgba(255, 255, 255, .07);
  --kopf-still-rand: rgba(255, 255, 255, .16);
  --fuss-bg: #0a1219;

  --chart-grid: #27343f;
  --chart-text: #b3c1cf;
  --chart-achse: #7c8b9a;
  --chart-betont: #8ab8dd;
  --reihe-1: #6fb3e0;   /* Navy verschwindet auf dunklem Grund */
  --reihe-2: #d3d800;   /* Limette trägt hier voll */
  --reihe-3: #35b6f0;
  --reihe-4: #a98fd6;
  --reihe-5: #e08a55;
  --reihe-6: #b6b8a4;
}

/* Farbschema an den Browser melden: Formularelemente und Scrollbalken
   übernehmen es dann von selbst. */
:root[data-theme="dark"] { color-scheme: dark; }
:root[data-theme="light"] { color-scheme: light; }

* { box-sizing: border-box; }

/* Sticky Footer: der Körper ist mindestens fensterhoch, <main> nimmt den Rest.
   Damit sitzt die Fußzeile bei kurzem Inhalt am unteren Fensterrand und rückt
   bei langem Inhalt nach unten weg — sie überlagert nie etwas. `position:
   fixed` wäre hier falsch: es legte die Leiste ÜBER den Inhalt. */
/* scrollbar-gutter reserviert den Platz für den Rollbalken IMMER. Ohne das
   sind Kapitel, die scrollen, um dessen Breite schmaler als solche, die es
   nicht tun — genau der Sprung zwischen den Kapiteln. */
html { height: 100%; scrollbar-gutter: stable; }
body {
  margin: 0; min-height: 100%;
  display: flex; flex-direction: column;
  font-family: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  color: var(--text);
  background: var(--flaeche);
  line-height: 1.55;
}
/* width: 100% ist Pflicht: `margin-inline: auto` schaltet als Auto-Rand auf
   der Querachse das `stretch` des Flex-Containers ab, und main schrumpfte auf
   Inhaltsbreite — sichtbar als völlig verschieden breite Kapitel. */
main { flex: 1 0 auto; width: 100%; }
.fuss { flex: none; }

/* Überschriften in DM Sans, nicht in Tinos.
   tecis.de setzt zwar Tinos für Überschriften — Tinos ist aber metrisch
   kompatibel zu Times New Roman und liest sich in dieser dichten
   Zahlenoberfläche wie ein Textverarbeitungsdokument. Bewusste Abweichung vom
   Webauftritt zugunsten eines ruhigen Schriftbilds; die Farbe bleibt Navy. */
h1, h2, h3, h4 {
  font-family: "DM Sans", system-ui, sans-serif;
  color: var(--navy); margin: 0 0 .35rem; letter-spacing: -.01em;
}
h2 { font-size: 1.5rem; }
h3 { font-size: 1.05rem; }

/* --- Kopf ---------------------------------------------------------------- */
.kopf { background: var(--kopf-bg); color: var(--kopf-text); }
.kopf-inhalt {
  max-width: var(--seite); margin: 0 auto; padding: .9rem var(--rand);
  display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
}
.marke { display: flex; align-items: baseline; gap: .75rem; }
/* Die Marke ist ein Schriftzug, kein Logo: „Zuversicht mit dem Löwen“ mit
   der limettenen Linie darunter — im Werkzeug und auf allen Seiten gleich.
   Ein fremdes Markenzeichen (früher das tecis-Logo) gehört hier nicht hin. */
.marke-logo {
  color: var(--kopf-text);
  font-weight: 700; font-size: 1.15rem; letter-spacing: .005em; white-space: nowrap;
  border-bottom: 3px solid var(--limette); padding-bottom: 2px;
}
.marke-titel { font-size: 1.05rem; opacity: .9; font-weight: 500; }
.kopf-aktionen { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; }
.theme-knopf {
  font: inherit; font-size: 1rem; line-height: 1; cursor: pointer;
  width: 2.1rem; height: 2.1rem; display: grid; place-items: center;
  border-radius: 6px; background: var(--kopf-still-bg);
  border: 1px solid var(--kopf-still-rand); color: var(--kopf-text);
}
.theme-knopf:hover { background: color-mix(in srgb, var(--kopf-text) 18%, transparent); }

.schritte {
  max-width: var(--seite); margin: 0 auto; padding: 0 var(--rand);
  display: flex; gap: .25rem; flex-wrap: wrap; position: relative;
}
.schritt-knopf {
  background: none; border: 0; font: inherit; font-size: .9rem;
  color: color-mix(in srgb, var(--kopf-text) 72%, transparent);
  padding: .55rem .9rem; cursor: pointer;
  transition: color .2s ease;
}
.schritt-knopf:hover { color: var(--kopf-text); }
.schritt-knopf[aria-current="true"] { color: var(--kopf-text); }

/* Ein einziges Element, das zum aktiven Kapitel wandert. Ein Rahmen je Knopf
   ließe sich nicht von einem zum nächsten animieren. */
.schritt-marke {
  /* left: 0 — nicht der Innenabstand der Leiste: offsetLeft misst bereits ab
     deren Rahmenkante, beides zusammen schöbe die Marke um genau diesen
     Abstand nach rechts. */
  position: absolute; left: 0; bottom: 0; height: 3px; width: 0;
  background: var(--limette); border-radius: 2px 2px 0 0;
  transition: transform .28s cubic-bezier(.4, 0, .2, 1), width .28s cubic-bezier(.4, 0, .2, 1);
}

/* Kapitelwechsel: der neue Inhalt kommt aus der Richtung, in die navigiert
   wurde. Ohne fill-mode — im ausgeblendeten Zustand fröre die Animation sonst
   bei Zeit 0 ein und der Abschnitt bliebe seitlich versetzt liegen. */
@keyframes schiebt-rein-rechts {
  from { opacity: 0; transform: translateX(28px); }
  to   { opacity: 1; transform: none; }
}
@keyframes schiebt-rein-links {
  from { opacity: 0; transform: translateX(-28px); }
  to   { opacity: 1; transform: none; }
}
.schritt.kommt-von-rechts { animation: schiebt-rein-rechts .34s cubic-bezier(.4, 0, .2, 1); }
.schritt.kommt-von-links  { animation: schiebt-rein-links  .34s cubic-bezier(.4, 0, .2, 1); }

@media (prefers-reduced-motion: reduce) {
  .schritt-marke { transition: none; }
  .schritt.kommt-von-rechts, .schritt.kommt-von-links { animation: none; }
}

/* --- Layout -------------------------------------------------------------- */
main {
  max-width: var(--seite); margin-inline: auto; padding: 1.25rem var(--rand) 2.5rem;
  /* Der Kapitelwechsel schiebt Abschnitte um 28 px zur Seite. Nach LINKS ist
     das folgenlos — Überstand am linken Rand wird verworfen. Nach RECHTS
     vergrößert er die Bildbreite, und für die Dauer der Bewegung erschien eine
     waagerechte Bildlaufleiste.
     `clip` statt `hidden`: `hidden` würde `main` zum Bildlaufbehälter machen,
     und die klebende Seitenspalte klebte dann an einem Behälter, der nie
     rollt. `clip` schneidet nur ab, ohne Bildlauf einzuführen.
     Der Rand von 8 px lässt Fokusrahmen und Schatten stehen — abgeschnitten
     wird nur, was ohnehin außerhalb liegt; eine Bildlaufleiste entsteht bei
     `clip` in keinem Fall. */
  overflow-x: clip;
  overflow-clip-margin: 8px;
}
.schritt > .hinweis { color: var(--gedaempft); margin: 0 0 1.25rem; max-width: 68ch; }
/* Ohne beschreibenden Absatz braucht die Überschrift den Abstand selbst. */
.schritt-titel { margin-bottom: 1.1rem; }

.formular {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: .85rem 1.1rem; background: var(--weiss); padding: 1.15rem;
  border: 1px solid var(--linie); border-radius: var(--radius); margin-bottom: 1.25rem;
}
.feld { display: flex; flex-direction: column; gap: .25rem; min-width: 0; }
.feld > label {
  font-size: .8rem; color: var(--gedaempft); font-weight: 500;
  display: flex; align-items: center; gap: .3rem;
}
/* Zahnrad neben der Beschriftung — öffnet die Detailfelder im Dialog. */
.feld-zahnrad {
  background: none; border: 0; padding: 0 .15rem; cursor: pointer;
  color: var(--gedaempft); font-size: .9rem; line-height: 1;
}
.feld-zahnrad:hover { color: var(--himmelblau); }
.feld input[type="text"], .feld input[type="number"], .feld select, .feld-select {
  font: inherit; padding: .45rem .55rem; border: 1px solid var(--linie);
  border-radius: 6px; background: var(--weiss); color: var(--text); min-width: 0; width: 100%;
}
.feld-eingabe { position: relative; display: flex; align-items: center; }
.feld-eingabe input { padding-right: 3.6rem; }
.feld-eingabe .einheit { position: absolute; right: .6rem; pointer-events: none; }
.feld input:focus, .feld select:focus { outline: 2px solid var(--himmelblau); outline-offset: -1px; }
.feld .einheit { font-size: .75rem; color: var(--gedaempft); white-space: nowrap; }
.feld-schalter { flex-direction: row; align-items: center; gap: .5rem; }
.feld-schalter > label { font-size: .875rem; color: var(--text); }
.feld-voll { grid-column: 1 / -1; }

/* --- Kacheln ------------------------------------------------------------- */
.kacheln {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
  gap: .85rem; margin-bottom: 1.25rem;
}
.kachel {
  background: var(--ebene-1); border: 1px solid var(--linie);
  border-left: 4px solid var(--himmelblau); border-radius: var(--radius);
  padding: .85rem 1rem; box-shadow: var(--schatten-1);
}
.kachel.betont { border-left-color: var(--limette); }
.kachel dt {
  font-size: .74rem; color: var(--gedaempft); margin-bottom: .25rem;
  letter-spacing: .04em; text-transform: uppercase; font-weight: 600;
}
.kachel dd {
  margin: 0; font-size: 1.3rem; font-weight: 600; color: var(--navy);
  letter-spacing: -.014em; font-variant-numeric: tabular-nums;
}
.kachel .fussnote { font-size: .73rem; color: var(--gedaempft); font-weight: 400; }

/* --- Rechenkette --------------------------------------------------------- */
.kette {
  background: var(--weiss); border: 1px solid var(--linie); border-radius: var(--radius);
  padding: 1.15rem; margin-bottom: 1.25rem;
}
.kette ol { margin: 0; padding-left: 1.35rem; }
.kette li { margin-bottom: .45rem; }
.kette .rechnung { color: var(--gedaempft); font-size: .875rem; }
.kette b { color: var(--navy); }

/* --- Tabs und Tabellen --------------------------------------------------- */
.tabs {
  display: flex; gap: .3rem; border-bottom: 2px solid var(--linie);
  margin-bottom: 1.1rem; flex-wrap: wrap; position: relative;
}
.tab {
  background: none; border: 0; font: inherit; font-size: .9rem;
  color: var(--gedaempft); padding: .5rem .9rem; cursor: pointer;
  transition: color .2s ease;
}
.tab[aria-selected="true"] { color: var(--navy); font-weight: 600; }

/* Wandernde Marke wie in der Kopfleiste — ein Element statt eines Rahmens je
   Reiter. Bei umgebrochener Leiste zählt auch offsetTop, sonst läge sie unter
   der falschen Zeile. */
.tab-marke {
  position: absolute; left: 0; top: 0; height: 3px; width: 0;
  background: var(--himmelblau); border-radius: 2px 2px 0 0;
  transition: transform .28s cubic-bezier(.4, 0, .2, 1), width .28s cubic-bezier(.4, 0, .2, 1);
}

@media (prefers-reduced-motion: reduce) { .tab-marke { transition: none; } }

.karte {
  background: var(--ebene-1); border: 1px solid var(--linie); border-radius: var(--radius);
  padding: 1.15rem; margin-bottom: 1.25rem; box-shadow: var(--schatten-1);
}
table { width: 100%; border-collapse: collapse; font-size: .9rem; }
th, td { padding: .5rem .6rem; text-align: right; border-bottom: 1px solid var(--linie); }
th:first-child, td:first-child { text-align: left; }
thead th { color: var(--navy); font-size: .8rem; text-transform: uppercase; letter-spacing: .03em; }
tbody tr:last-child td { border-bottom: 0; }
tr.summe td { font-weight: 700; color: var(--navy); border-top: 2px solid var(--linie); }
td.gut { color: #1a7f4b; font-weight: 600; }
td.schlecht { color: var(--fehler); }

.diagramm { background: var(--ebene-1); border: 1px solid var(--linie);
  box-shadow: var(--schatten-1); border-radius: var(--radius);
  padding: .8rem 1rem; margin-bottom: 1rem; }
.diagramm h3 { margin-bottom: .6rem; }
.untertabs { display: flex; gap: .2rem; justify-content: center;
  border-bottom: 1px solid var(--linie); margin-bottom: .9rem; }
.untertab {
  background: none; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px;
  font: inherit; font-size: .88rem; color: var(--gedaempft); padding: .4rem 1rem; cursor: pointer;
}
.untertab[aria-selected="true"] { color: var(--himmelblau); border-bottom-color: var(--himmelblau); }
.diagramm-titel { text-align: center; font-size: 1.25rem; margin-bottom: .1rem; }
.diagramm-untertitel { text-align: center; color: var(--gedaempft); font-size: .95rem;
  margin: 0 0 .5rem; }

/* --- Schritt 3: Eingaben links, Ergebnis rechts --------------------------- */
.anlagefinder {
  display: grid; grid-template-columns: minmax(240px, 290px) minmax(0, 1fr);
  gap: 1.5rem; align-items: start;
}
/* Die Eingaben bleiben beim Scrollen stehen — Ergebnis und Stellschraube
   sollen gleichzeitig sichtbar sein. Eigener Scrollbereich, falls die Spalte
   höher wird als das Fenster. */
.seitenspalte {
  position: sticky; top: 1rem;
  max-height: calc(100vh - 2rem); overflow-y: auto;
  /* Eine Achse auf `auto` zwingt die andere von `visible` auf `auto` — so
     steht es in der CSS-Spezifikation, und der Rechner meldet für diese Spalte
     tatsächlich `overflow-x: auto`, obwohl hier nur die y-Achse gesetzt ist.
     Safari blendet dafür eine waagerechte Leiste ein, auch wenn nichts
     übersteht (scrollWidth == clientWidth). `clip` unterbindet den Scroll-
     container auf der x-Achse ganz; `hidden` davor ist der Rückfall für
     Safari vor 16, das `clip` noch nicht kennt. */
  overflow-x: hidden;
  overflow-x: clip;
  padding-right: .35rem; scrollbar-width: thin;
}
.seitenspalte h3 { margin-bottom: .5rem; }
.seitenspalte .schritt-titel { margin: 0 0 .9rem; line-height: 1.2; }
.seitenhinweis { color: var(--gedaempft); font-size: .8rem; margin: 0 0 .6rem; }
.formular-schmal { grid-template-columns: 1fr; gap: .6rem; padding: .8rem .9rem; }
.formular-schmal .feld > label { font-size: .78rem; }
.formular-schmal input, .formular-schmal select { padding: .35rem .5rem; font-size: .9rem; }
.ergebnisspalte { min-width: 0; }

@media (max-width: 900px) {
  .anlagefinder { grid-template-columns: 1fr; }
  .seitenspalte { position: static; max-height: none; overflow: visible; }
  .formular-schmal { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
}

/* --- Einflussfaktoren: kompakte Zeile mit Schalter ------------------------ */
.faktoren {
  background: var(--weiss); border: 1px solid var(--linie);
  border-radius: var(--radius); padding: .3rem .2rem; margin-bottom: 1.25rem;
}
/* Der farbige Balken zeigt auf einen Blick, welche Annahmen greifen.
   Er ist ein Pseudo-Element und KEIN border-left: ein Rahmen füllt die ganze
   Zellenhöhe und übernimmt die Eckenrundung der Zeile — die erste Zeile war
   dadurch rund, alle folgenden (border-radius: 0 wegen der Trennlinie) eckig.
   Das Pseudo-Element trägt seine eigene Rundung und sieht in jeder Zeile
   gleich aus. */
.faktor {
  position: relative;
  display: flex; align-items: center; gap: .4rem;
  padding: .45rem .5rem .45rem .7rem; border-radius: 6px;
}
.faktor::before {
  content: ""; position: absolute; left: 0; top: .25rem; bottom: .25rem;
  width: 3px; border-radius: 999px; background: transparent;
  transition: background-color .18s ease;
}
.faktor + .faktor { border-top: 1px solid var(--linie); border-radius: 0; }
.faktor-an::before { background: var(--himmelblau); }
.faktor-name { flex: 1; font-size: .85rem; line-height: 1.25; min-width: 0; }
.faktor:not(.faktor-an) .faktor-name { color: var(--gedaempft); }

.faktor-zahnrad {
  flex: none; width: 1.6rem; height: 1.6rem; display: grid; place-items: center;
  background: none; border: 0; border-radius: 5px; cursor: pointer;
  color: var(--gedaempft); font-size: .95rem; line-height: 1;
}
.faktor-zahnrad:hover { background: var(--flaeche); color: var(--navy); }

/* Schiebeschalter — ein <button role="switch">, kein Ersatz-Markup. */
.schalter {
  flex: none; width: 2.15rem; height: 1.2rem; padding: 0; cursor: pointer;
  border: 0; border-radius: 999px; background: var(--linie);
  transition: background .15s ease;
}
.schalter > span {
  display: block; width: .9rem; height: .9rem; margin-left: .15rem;
  border-radius: 50%; background: var(--weiss);
  box-shadow: 0 1px 3px rgba(0, 0, 0, .3);
  transition: transform .15s ease;
}
.schalter[aria-checked="true"] { background: var(--himmelblau); }
.schalter[aria-checked="true"] > span { transform: translateX(.95rem); }
.schalter:focus-visible { outline: 2px solid var(--himmelblau); outline-offset: 2px; }

/* --- Faktor-Dialog -------------------------------------------------------- */
.faktor-dialog {
  width: min(30rem, calc(100vw - 2rem)); padding: 1.25rem;
  border: 1px solid var(--linie); border-radius: var(--radius);
  background: var(--weiss); color: var(--text);
}
.faktor-dialog::backdrop { background: rgba(0, 0, 0, .45); }

/* Ein Fenster entsteht dort, wo es angefordert wurde. Ohne verankerten
   Ursprung erscheint es aus dem Nichts in der Bildmitte, und die räumliche
   Beziehung zwischen Knopf und Inhalt geht verloren — man muss suchen, wozu
   der Inhalt gehört. `--dlg-x`/`--dlg-y` setzt die Oberfläche beim Öffnen auf
   die Mitte des auslösenden Knopfes.

   Ein- und Austritt laufen denselben Weg: Was aus einem Knopf wächst, muss
   auch dorthin zurück. */
.faktor-dialog {
  transform-origin: var(--dlg-x, 50%) var(--dlg-y, 50%);
}
@keyframes dialog-waechst {
  from { opacity: 0; transform: scale(.94); }
  to   { opacity: 1; transform: none; }
}
@keyframes dialog-schrumpft {
  from { opacity: 1; transform: none; }
  to   { opacity: 0; transform: scale(.94); }
}
@keyframes schleier-auf { from { opacity: 0; } to { opacity: 1; } }
.dialog-oeffnet { animation: dialog-waechst .22s cubic-bezier(.2, .8, .3, 1); }
.dialog-oeffnet::backdrop { animation: schleier-auf .22s ease-out; }
/* Der Austritt spiegelt den Eintritt — dieselbe Kurve, rückwärts gelesen. */
.dialog-schliesst { animation: dialog-schrumpft .16s cubic-bezier(.7, .2, .8, .2); }
.dialog-schliesst::backdrop { animation: schleier-auf .16s ease-in reverse; }
@media (prefers-reduced-motion: reduce) {
  /* Kein Maßstab, kein Weg — nur ein kurzes Aufblenden. Das hilft beim
     Verstehen und belastet das Gleichgewicht nicht. */
  @keyframes dialog-waechst { from { opacity: 0; } to { opacity: 1; } }
  @keyframes dialog-schrumpft { from { opacity: 1; } to { opacity: 0; } }
  .dialog-oeffnet, .dialog-schliesst { animation-duration: .12s; }
}
.dialog-kopf { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.dialog-kopf h3 { margin: 0; }
.dialog-zu {
  background: none; border: 0; cursor: pointer; color: var(--gedaempft);
  font-size: 1.5rem; line-height: 1; padding: 0 .25rem;
}
.dialog-zu:hover { color: var(--navy); }
.dialog-hinweis { color: var(--gedaempft); font-size: .82rem; margin: .4rem 0 1rem; }
.faktor-dialog .formular { margin-bottom: 0; border: 0; padding: 0; background: none; }

/* --- Schieberegler mit sichtbarer Spanne --------------------------------- */
.feld-bereich > label { justify-content: space-between; }
.feld-badge {
  margin-left: auto; font-weight: 600; font-size: .78rem;
  color: var(--auf-akzent); background: var(--akzent-fuell);
  padding: .1rem .45rem; border-radius: 999px;
}
.feld-bereich input[type="range"] {
  width: 100%; margin: .35rem 0 .1rem; accent-color: var(--himmelblau);
}
.bereich-enden {
  display: flex; justify-content: space-between;
  font-size: .72rem; color: var(--gedaempft);
}
.feld-hinweis { font-size: .74rem; color: var(--gedaempft); margin: .35rem 0 0; line-height: 1.4; }

/* --- Schritt 2: Einkommenskette ------------------------------------------- */
.einkommenskette {
  background: var(--weiss); border: 1px solid var(--linie);
  border-radius: var(--radius); padding: .3rem .2rem; margin-bottom: 1.25rem;
}
.ek-zeile {
  display: flex; align-items: center; gap: .5rem;
  padding: .45rem .6rem; font-size: .82rem; align-items: flex-start;
}
.ek-zeile + .ek-zeile { border-top: 1px solid var(--linie); }
.ek-zeichen {
  flex: none; width: 1.25rem; height: 1.25rem; display: grid; place-items: center;
  border-radius: 5px; font-weight: 700; font-size: .8rem;
  background: color-mix(in srgb, var(--himmelblau) 16%, transparent); color: var(--himmelblau);
}
/* Lange Namen wie "Kranken-/Pflegeversicherung" müssen in der schmalen
   Seitenspalte umbrechen, sonst schieben sie sich über den Betrag. */
.ek-name { flex: 1; min-width: 0; line-height: 1.25; overflow-wrap: anywhere; }
.ek-name em { display: block; font-style: normal; font-size: .72rem; color: var(--gedaempft); }
.ek-betrag { font-weight: 600; white-space: nowrap; align-self: center; }
.ek-abzug .ek-zeichen { background: color-mix(in srgb, var(--fehler) 14%, transparent); color: var(--fehler); }
.ek-abzug .ek-betrag { color: var(--fehler); }
.ek-summe { border-top: 2px solid var(--himmelblau) !important; }
.ek-summe .ek-betrag { font-size: 1.02rem; color: var(--navy); }

/* --- Regler über dem Ergebnis --------------------------------------------- */
.reglerleiste {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 1.1rem; margin-bottom: 1rem; align-items: end;
}
.regler-breit { margin-top: 1rem; max-width: 26rem; }
/* Der Kaufkraft-Schalter steht als Rasterzelle NEBEN dem Inflationsregler,
   nicht darunter — er gehört zur selben Frage. Er braucht keine volle
   Spaltenbreite, deshalb schmaler. */
.regler-schmal { flex: none; display: flex; align-items: flex-end; }
.regler-kopf {
  display: flex; justify-content: space-between; align-items: baseline;
  font-size: .8rem; color: var(--gedaempft); margin-bottom: .1rem;
}
.regler-kopf b { color: var(--text); font-size: .92rem; }
.regler input[type="range"] { width: 100%; accent-color: var(--himmelblau); }

/* Knopf statt Kontrollkästchen — abgewählt ist er blasser, nicht anders.
   Ausrichtung an der Reglerschiene, nicht an der Beschriftung darüber. */
.kaufkraft-knopf {
  font: inherit; font-size: .82rem; font-weight: 600; cursor: pointer;
  padding: .4rem .8rem; border-radius: 8px; white-space: nowrap;
  background: var(--weiss); color: var(--navy);
  border: 1px solid var(--linie); border-left: 3px solid var(--himmelblau);
  align-self: end; margin-bottom: .1rem;
  transition: opacity .18s ease, border-color .18s ease, background-color .18s ease;
}
.kaufkraft-knopf:hover { background: var(--flaeche); }
.kaufkraft-aus { opacity: .45; border-left-color: var(--linie); font-weight: 400; }
.kaufkraft-knopf:focus-visible { outline: 2px solid var(--himmelblau); outline-offset: 2px; }

.ergebniskopf { margin-bottom: 1.1rem; }
.ergebniskopf h3 { font-size: 1.35rem; margin-bottom: .3rem; }
.ergebniskopf p { margin: .15rem 0; color: var(--gedaempft); font-size: .9rem; }
.ergebniskopf b { color: var(--text); }
.mehrbedarf { color: var(--fehler); font-weight: 600; }

.pillenreihe { display: flex; gap: 2rem; flex-wrap: wrap; margin-bottom: 1.2rem; }
.pillen-titel { display: block; font-size: .72rem; letter-spacing: .04em;
  text-transform: uppercase; color: var(--gedaempft); margin-bottom: .4rem; }
.pille {
  display: inline-flex; flex-direction: column; gap: .1rem; margin-right: .5rem;
  border: 1px solid var(--linie); border-radius: 8px; padding: .35rem .7rem;
}
.pille em { font-style: normal; font-size: .7rem; color: var(--gedaempft); }
.pille b { color: var(--navy); font-size: 1rem; }

/* --- Fördertabelle (Anlageform) ------------------------------------------ */
.foerdertabelle { font-size: .8rem; }
.foerdertabelle th, .foerdertabelle td {
  text-align: left; vertical-align: top; padding: .55rem .7rem;
  border: 1px solid var(--linie);
}
.foerdertabelle thead th {
  background: var(--betont-fuell); color: var(--auf-betont); font-size: .82rem;
  text-transform: none; letter-spacing: 0; white-space: nowrap;
}
/* Merkmalsspalte hebt sich ab, damit die Zeile beim Querlesen führt. */
.foerdertabelle tbody th {
  background: color-mix(in srgb, var(--himmelblau) 16%, transparent);
  font-weight: 600; min-width: 12rem;
}
.foerdertabelle tbody td { background: var(--weiss); min-width: 13rem; }
.foerdertabelle tbody tr:nth-child(even) td {
  background: color-mix(in srgb, var(--flaeche) 60%, transparent);
}

/* --- Modus-Umschalter ----------------------------------------------------- */
.modi {
  display: inline-flex; margin-bottom: .75rem;
  border: 1px solid var(--linie); border-radius: 8px; overflow: hidden;
  background: var(--weiss);
}
.modus {
  font: inherit; font-size: .84rem; padding: .4rem .9rem; cursor: pointer;
  background: none; border: 0; color: var(--gedaempft); white-space: nowrap;
  /* Ohne Übergang springt die Fläche hart um. Damit er greift, darf der Knopf
     beim Umschalten NICHT ersetzt werden — die Modusleiste steht deshalb in
     einem eigenen, bleibenden Behälter (#modus3). */
  transition: background-color .22s ease, color .22s ease;
}
.modus + .modus { border-left: 1px solid var(--linie); }
.modus:hover { color: var(--navy); }
.modus[aria-pressed="true"] {
  background: var(--akzent-fuell); color: var(--auf-akzent); font-weight: 600;
}

.modusleiste { display: flex; align-items: center; gap: .5rem; margin-bottom: .75rem; }
.modusleiste .modi { margin-bottom: 0; }
.dialog-weit { width: min(34rem, calc(100vw - 2rem)); max-height: 86vh; overflow-y: auto; }
.dialog-block { margin-bottom: 1.2rem; }
.dialog-block h4 { margin: 0 0 .4rem; font-size: .92rem; color: var(--navy); }
.dialog-block .optional { font-family: inherit; font-weight: 400; font-size: .76rem;
  color: var(--gedaempft); }
.modi-voll { display: flex; width: 100%; }
/* Die Beschriftungen sind lang ("Eigenen Abgeltungssteuersatz festlegen") und
   dürfen deshalb umbrechen statt abgeschnitten zu werden. */
.modi-voll .modus {
  flex: 1 1 0; min-width: 0; text-align: center;
  white-space: normal; line-height: 1.25; padding: .5rem .7rem;
}

.strategien { display: flex; flex-direction: column; gap: .4rem; }
.strategie { border: 1px solid var(--linie); border-radius: 8px; overflow: hidden; }
.strategie-aktiv { border-color: var(--himmelblau); }
.strategie-kopf {
  display: flex; flex-direction: column; align-items: flex-start; gap: .1rem;
  width: 100%; text-align: left; font: inherit; cursor: pointer;
  background: none; border: 0; padding: .55rem .8rem; color: var(--text);
}
.strategie-kopf em { font-style: normal; font-size: .78rem; color: var(--gedaempft); }
.strategie-aktiv .strategie-kopf { background: color-mix(in srgb, var(--himmelblau) 12%, transparent); }
.strategie-feld { padding: .6rem .8rem .8rem; }
.dialog-felder { display: grid; gap: .7rem; }

/* Unterabschnitt im Faktor-Dialog, wie in der Referenz mit Symbolplakette. */
.dialog-unterkopf {
  display: flex; align-items: center; gap: .5rem;
  font-family: "DM Sans", system-ui, sans-serif; font-size: .95rem; color: var(--text);
  margin: 1rem 0 .6rem;
}
.dialog-symbol {
  display: grid; place-items: center; width: 1.6rem; height: 1.6rem; flex: none;
  border-radius: 7px; background: var(--akzent-fuell); color: var(--auf-akzent);
  font-family: system-ui, sans-serif; font-size: .8rem; font-weight: 700;
}
.infokasten {
  margin-top: 1rem; padding: .7rem .85rem; font-size: .78rem;
  color: var(--gedaempft); background: var(--flaeche);
  border: 1px solid var(--linie); border-radius: 8px; line-height: 1.5;
}
.infokasten ul { margin: .4rem 0 0; padding-left: 1.1rem; }
.infokasten li { margin-bottom: .15rem; }

/* --- Entnahme-Balken ------------------------------------------------------ */
.plan {
  background: var(--weiss); border: 1px solid var(--linie);
  border-radius: var(--radius); padding: .65rem .9rem; margin-bottom: .5rem;
  line-height: 1.35;
}
.plan-kopf { display: flex; align-items: center; gap: .5rem; margin-bottom: .3rem; flex-wrap: wrap; }
.plan-marke {
  font-size: .66rem; letter-spacing: .03em; text-transform: uppercase;
  color: var(--gedaempft); border: 1px solid var(--linie);
  border-radius: 999px; padding: .12rem .5rem;
}
.plan-titel { font-family: "DM Sans", system-ui, sans-serif; font-size: .98rem; color: var(--navy); font-weight: 700; }
.plan-summe { margin-left: auto; font-size: .82rem; color: var(--gedaempft); }
.plan-summe b { color: var(--navy); font-size: 1.02rem; margin-left: .3rem; }
.plan-teil { transition: filter .12s ease; }
.plan-teil:hover { filter: brightness(1.18); }
.plan-vorteil {
  margin-left: auto; font-weight: 700; font-size: .88rem;
  color: #1a7f4b; background: color-mix(in srgb, #1a7f4b 14%, transparent);
  border-radius: 999px; padding: .15rem .6rem;
}
.plan-zeile {
  display: flex; gap: 1rem; flex-wrap: wrap; align-items: baseline;
  font-size: .78rem; color: var(--gedaempft); margin-bottom: .3rem;
}
.plan-zeile b { color: var(--text); font-size: .88rem; }
.plan-gesamt { margin-left: auto; text-align: right; }
.plan-gesamt b { color: var(--navy); font-size: 1.02rem; }

.plan-spur { background: var(--flaeche); border-radius: 999px; height: .85rem; overflow: visible; }
.plan-fuellung { position: relative; display: flex; height: 100%; border-radius: 999px; }
/* Längsseiten als EINZELECKEN, nicht als Kurzschreibweise: bei nur einem
   Abschnitt trägt er beide Klassen und wird dann rundum rund. Mit der
   Kurzschreibweise überschrieb die zweite Regel die erste und die linke Seite
   blieb eckig — sichtbar bei „Summe Rentenzahlungen", die aus einem Stück
   besteht. Die Klassen kommen aus balkenKarte(); :first-child/:last-child
   wären falsch, weil der Ziehgriff als weiteres Kind dazwischenliegt. */
.plan-teil { height: 100%; }
.plan-teil-anfang { border-start-start-radius: 999px; border-end-start-radius: 999px; }
.plan-teil-ende { border-start-end-radius: 999px; border-end-end-radius: 999px; }
/* Restkapital schraffiert — es ist noch nicht ausgezahlt, nur vorhanden. */
.plan-rest {
  background: repeating-linear-gradient(45deg,
    var(--rest-farbe) 0 4px, transparent 4px 9px);
  opacity: .75;
}
.plan-griff {
  position: absolute; top: 50%; transform: translate(-50%, -50%);
  width: .95rem; height: 1.3rem; padding: 0; cursor: ew-resize;
  border: 1px solid var(--linie); border-radius: 4px;
  background: var(--weiss); color: var(--gedaempft);
  font-size: .8rem; line-height: 1; touch-action: none;
}
.plan-griff:hover, .plan-griff:focus-visible { color: var(--navy); border-color: var(--himmelblau); }
/* Während des Ziehens keine Textauswahl und durchgehend derselbe Zeiger —
   der Zeiger verlässt den Griff, weil die Karte laufend neu gezeichnet wird. */
body.zieht { user-select: none; cursor: ew-resize; }
body.zieht .plan-griff { border-color: var(--himmelblau); color: var(--navy); }

.plan-legende {
  display: flex; gap: 1.1rem; flex-wrap: wrap;
  font-size: .76rem; color: var(--gedaempft); margin-top: .35rem;
}
.plan-legende b { color: var(--text); }
.plan-legende em { font-style: normal; opacity: .8; }
.plan-punkt {
  display: inline-block; width: .7rem; height: .7rem; border-radius: 3px;
  margin-right: .35rem; vertical-align: -1px;
}
.plan-punkt-rest {
  background: repeating-linear-gradient(45deg,
    var(--rest-farbe) 0 3px, transparent 3px 6px);
}

@media print { .plan-griff { display: none; } }

/* --- Übergang beim Reiter-/Moduswechsel ---------------------------------- */
/* Die Linien morphen per JS; Karten, Tabellen und Achsen blenden sich dazu ein.
   Nur bei echten Wechseln, nicht beim Tippen oder Ziehen.

   BEWUSST OHNE animation-fill-mode: mit `both` hielte der Startzustand
   (opacity 0) so lange an, bis die Animation läuft — in einem ausgeblendeten
   Tab pausieren CSS-Animationen jedoch, und der Inhalt bliebe dauerhaft
   unsichtbar. Ohne Fill-Mode ist der Ruhezustand die normale Darstellung: läuft
   die Animation nicht, ist der Inhalt einfach sofort da. */
@keyframes einblenden {
  from { opacity: 0; transform: translateY(5px); }
  to   { opacity: 1; transform: none; }
}
.wechselt .plan,
.wechselt .karte,
.wechselt .diagramm > h3,
.wechselt .diagramm-titel,
.wechselt .diagramm-untertitel,
.wechselt .untertabs { animation: einblenden .3s ease-out; }
.wechselt .diagramm svg text,
.wechselt .diagramm svg line { animation: einblenden .34s ease-out; }

@media (prefers-reduced-motion: reduce) {
  .wechselt * { animation: none !important; }
}

/* --- Diagramm-Tooltip ----------------------------------------------------- */
.diagramm-flaeche { position: relative; }
.chart-tooltip {
  position: absolute; z-index: 2; pointer-events: none;
  transform: translate(-50%, calc(-100% - 12px));
  background: var(--weiss); border: 1px solid var(--linie);
  border-radius: 8px; padding: .5rem .65rem; font-size: .8rem;
  box-shadow: 0 4px 16px rgba(0, 0, 0, .18); white-space: nowrap;
}
.chart-tooltip .tt-x { color: var(--gedaempft); margin-bottom: .3rem; }
.chart-tooltip .tt-reihe { display: flex; align-items: center; gap: .45rem; }
.chart-tooltip .tt-punkt { width: 9px; height: 9px; border-radius: 50%; flex: none; }
.chart-tooltip .tt-wert { margin-left: 1.2rem; font-weight: 600; color: var(--navy); }

/* --- Gutachten: Jahrestabelle -------------------------------------------- */
.kopfwerte { display: flex; gap: 1.5rem; flex-wrap: wrap; font-size: .82rem;
  color: var(--gedaempft); margin-bottom: .8rem; }
.kopfwerte b { color: var(--text); }
/* Die Tabelle ist breiter als die Spalte — sie scrollt in sich, nicht die Seite. */
.tabelle-scroll { overflow-x: auto; }
.jahrestabelle { font-size: .76rem; white-space: nowrap; width: 100%; }
.jahrestabelle th, .jahrestabelle td { padding: .25rem .45rem; }

/* Zahlen rechtsbündig und in Tabellenziffern: nur so stehen Tausenderstellen
   untereinander und die Spalten werden so schmal wie ihr breitester Wert. */
.jahrestabelle td { text-align: right; font-variant-numeric: tabular-nums; }
.jahrestabelle thead th { text-align: right; }

/* Die Alter-Spalte bekam den gesamten Restplatz, weil die Abschlusszeile darin
   einen langen Satz trägt ("Restkapital-Auflösung mit 87"). Sie wird jetzt auf
   ihren Inhalt geschrumpft, der Satz darf umbrechen. Sticky, damit beim
   waagerechten Scrollen sichtbar bleibt, zu welchem Alter eine Zeile gehört. */
.jahrestabelle th:first-child, .jahrestabelle td:first-child {
  width: 1%; text-align: left;
  position: sticky; left: 0; z-index: 1; background: var(--weiss);
}
.jahrestabelle tbody tr:nth-child(even) td:first-child {
  background: color-mix(in srgb, var(--flaeche) 55%, var(--weiss));
}
.jahrestabelle tr.summe td { font-weight: 600; }
.jahrestabelle tr.summe { border-top: 2px solid var(--himmelblau); }
.jahrestabelle .summe-text { text-align: left; }
.phasenmarke { color: var(--himmelblau); font-weight: 700; margin-left: .2rem; }
.jahrestabelle th.gruppe {
  text-align: center; border-bottom: 2px solid var(--himmelblau);
  border-left: 1px solid var(--linie);
}
.jahrestabelle tbody tr:nth-child(even) { background: color-mix(in srgb, var(--flaeche) 55%, transparent); }
.jahrestabelle tr.auszahljahr td:first-child { color: var(--himmelblau); font-weight: 600; }
.plan-warnung {
  font-size: .72rem; color: var(--warnung);
  border: 1px solid currentColor; border-radius: 999px; padding: .05rem .5rem;
}

/* --- Schritt 4 ----------------------------------------------------------- */
.tarif-spalten { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 1.25rem; }
.statuszeile {
  background: var(--weiss); border: 1px solid var(--linie); border-left: 4px solid var(--sand);
  border-radius: var(--radius); padding: .7rem 1rem; margin-bottom: 1.1rem; font-size: .9rem;
}
.meldung { font-size: .85rem; padding: .35rem 0; }
.meldung.warnung { color: var(--warnung); }
.meldung.fehler { color: var(--fehler); }

/* --- Schritt 5 ----------------------------------------------------------- */
/* Bausteine als Knöpfe. Der abgewählte Zustand ist eine Abschwächung des
   gewählten, kein anderes Aussehen — man sieht dem Knopf an, dass er dazu-
   gehört und gerade nicht mitgedruckt wird. */
.bausteine {
  display: flex; flex-direction: column; gap: .35rem;
  margin-bottom: 1rem;
}
.baustein {
  font: inherit; font-size: .86rem; text-align: left;
  padding: .5rem .8rem; border-radius: 8px; cursor: pointer;
  background: var(--weiss); border: 1px solid var(--linie);
  border-left: 3px solid var(--himmelblau); color: var(--navy); font-weight: 600;
  transition: opacity .18s ease, border-color .18s ease, background-color .18s ease;
}
.baustein:hover { background: var(--flaeche); }
.baustein-aus {
  opacity: .42; border-left-color: var(--linie); font-weight: 400; color: var(--text);
}
.baustein-alle {
  margin-top: .35rem; border-left-color: var(--limette);
  font-size: .8rem; color: var(--gedaempft); font-weight: 500;
}
.baustein:focus-visible { outline: 2px solid var(--himmelblau); outline-offset: 2px; }
.knopfleiste { display: flex; gap: .6rem; margin-bottom: 1.5rem; flex-wrap: wrap; }

.knopf {
  font: inherit; font-size: .88rem; padding: .5rem .95rem; border-radius: 6px;
  border: 1px solid transparent; background: var(--akzent-fuell); color: var(--auf-akzent); cursor: pointer;
}
.knopf:hover { filter: brightness(1.08); }
/* Der stille Knopf, richtig herum gedacht.
   Vorher war die durchscheinende Fassung die Vorgabe und die helle die
   Ausnahme für `main` und `dialog` — also eine Erlaubnisliste. Jeder neue
   Behälter außerhalb davon bekam weiß auf weiß, zuletzt die geführte
   Anleitung: Ihre Knöpfe „Überspringen" und „Zurück" waren unsichtbar. Jetzt
   ist die helle Fassung die Vorgabe, und nur die dunkle Kopfleiste hat die
   Ausnahme. Ein neuer Behälter ist damit von selbst richtig. */
.knopf-still { background: var(--weiss); border-color: var(--linie); color: var(--navy); }
.kopf .knopf-still {
  background: var(--kopf-still-bg); border-color: var(--kopf-still-rand);
  color: var(--kopf-text);
}

.gutachten { background: var(--weiss); border: 1px solid var(--linie); border-radius: var(--radius); padding: 1.5rem; }
.gutachten-block { margin-bottom: 2rem; }
.gutachten-block:last-child { margin-bottom: 0; }
.deckblatt { text-align: center; padding: 2.5rem 1rem; border-bottom: 3px solid var(--limette); }
.deckblatt h1 { font-family: "DM Sans", system-ui, sans-serif; color: var(--navy); font-size: 2rem; margin: .5rem 0; }
.deckblatt .untertitel { color: var(--gedaempft); }
.deckblatt .marke-logo { color: var(--navy); }

/* Startdiagnose — nur sichtbar, solange das Skript nicht gelaufen ist. */
.startfehler {
  background: #fff6e5; border: 1px solid #e3c78a; border-left: 4px solid var(--warnung);
  border-radius: var(--radius); padding: 1rem 1.15rem; margin-bottom: 1.5rem; font-size: .9rem;
}
.startfehler code { background: rgba(0,0,0,.05); padding: .1em .35em; border-radius: 4px; }

/* Abgesetzte Fußzeile: dunkler als der Seitengrund, Inhalt mittig. Sie ist
   der Abbinder der Seite und soll sich vom Arbeitsbereich lösen. */
.fuss {
  margin-top: 2rem; padding: 2rem var(--rand) 2.5rem;
  background: var(--fuss-bg); border-top: 1px solid var(--linie);
}
.fuss > * { max-width: 90ch; margin-inline: auto; }
.fuss p { font-size: .8rem; color: var(--gedaempft); text-align: center; }

/* --- Druck: echtes Vektor-PDF über den Browser-Druckdialog ---------------- */
@page { size: A4; margin: 16mm 14mm; }

@media print {
  /* Gedruckt wird immer hell — dunkle Flächen kosten Toner und lesen sich
     auf Papier schlecht. Die Variablen werden dafür zurückgesetzt. */
  :root, :root[data-theme="dark"] {
    --text: #23384d; --gedaempft: #66788c; --linie: #dfe4ea;
    --flaeche: #fff; --weiss: #fff; --navy: #00325b;
    --chart-grid: #e6e9ee; --chart-text: #33475b; --chart-achse: #8a97a8;
    --chart-betont: #00325b; --reihe-1: #00325b; --reihe-2: #8a8d00;
    --reihe-3: #009ee3; --reihe-4: #6b4f9e; --reihe-5: #c4622d; --reihe-6: #7d8471;
  }
  body { background: #fff; font-size: 10.5pt; }
  .chart-tooltip, .fadenkreuz, .faktoren, .faktor-dialog { display: none !important; }
  .anlagefinder { display: block; }
  .seitenspalte { position: static; max-height: none; overflow: visible; }
  .kopf, .schritte, .kopf-aktionen, .theme-knopf, .tabs, .formular, .bausteine, .knopfleiste,
  .statuszeile, .schritt > .hinweis { display: none !important; }
  main { max-width: none; padding: 0; }
  .schritt:not([data-schritt="5"]) { display: none !important; }
  .schritt[data-schritt="5"] > h2 { display: none; }
  .gutachten { border: 0; padding: 0; }
  .gutachten-block { break-inside: avoid; page-break-inside: avoid; margin-bottom: 1.2rem; }
  .deckblatt { break-after: page; page-break-after: always; padding-top: 6rem; }
  .diagramm, .karte { border: 1px solid var(--linie); break-inside: avoid; page-break-inside: avoid; }
  .fuss { padding: 0; margin-top: 1rem; }
  a[href]::after { content: ""; }
}

/* Die @font-face-Regeln setzt build.mjs oben in die Datei — siehe /* SCHRIFTEN *""" + """/. */

/* --- Schritt 1: Personenbezogene Daten ------------------------------------ */
/* Wertanzeige in der Schalterzeile (z. B. der Freibetrag). Sie steht zwischen
   Name und Zahnrad und darf die Zeile nicht umbrechen lassen. */
.faktor-wert {
  flex: none; font-size: .78rem; color: var(--gedaempft);
  font-variant-numeric: tabular-nums; white-space: nowrap;
}
.faktor-an .faktor-wert { color: var(--navy); font-weight: 600; }

.feld-block { margin-bottom: 1.25rem; }
.block-label {
  display: block; font-size: .78rem; color: var(--gedaempft); margin-bottom: .3rem;
}
.kv-zeile { display: flex; align-items: center; gap: .4rem; }
.kv-zeile .modi { margin-bottom: 0; flex: 1; min-width: 0; }
.kv-zeile .faktor-zahnrad {
  border: 1px solid var(--linie); width: 2rem; height: 2rem; background: var(--weiss);
}

.knopf.breit { display: block; width: 100%; text-align: center; }

.karte-kopf {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 1rem; margin-bottom: .6rem;
}
.karte-kopf h3 { margin: 0; }

/* --- Kunden-/Profilübersicht ---------------------------------------------- */
.profilsuche { margin-bottom: 1rem; }
.profilsuche input { width: 100%; box-sizing: border-box; padding: .55rem .7rem; }

.profil-anzahl {
  display: inline-block; margin-left: .4rem; padding: .05rem .45rem;
  border-radius: 999px; background: var(--flaeche); color: var(--gedaempft);
  font-family: "DM Sans", system-ui, sans-serif;   /* nicht die Serifenschrift der h3 */
  font-size: .72rem; font-weight: 600; vertical-align: middle;
}

.profilliste { list-style: none; margin: 0; padding: 0; }
.profilzeile {
  display: flex; align-items: center; gap: .6rem;
  padding: .55rem .1rem; border-top: 1px solid var(--linie); font-size: .88rem;
}
.profilzeile:first-child { border-top: 0; }
.profilzeile.leer { color: var(--gedaempft); font-size: .82rem; padding: .8rem .1rem; }

/* Initialenkachel — ersetzt ein Foto, das es hier nicht gibt. */
.profil-initialen {
  flex: none; width: 2.1rem; height: 2.1rem; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--akzent-fuell); color: var(--auf-akzent);
  font-size: .76rem; font-weight: 700; letter-spacing: .02em;
}
.profilname { flex: 1; min-width: 0; font-weight: 600; color: var(--navy); }
.profildatum {
  font-size: .76rem; color: var(--gedaempft); font-variant-numeric: tabular-nums;
}
.profilzeile .knopf { padding: .25rem .6rem; font-size: .78rem; }
.profil-weg { color: var(--gedaempft); font-size: 1rem; line-height: 1; }

.profil-badge {
  padding: .25rem .6rem; border-radius: 6px; font-size: .78rem; font-weight: 600;
  background: color-mix(in srgb, var(--limette) 30%, var(--weiss));
  border: 1px solid var(--limette); color: var(--navy); white-space: nowrap;
}
.profil-geladen .profil-initialen { background: var(--navy); }

/* --- Überschlag der gesetzlichen Rente (Seitenspalte Schritt 2) ----------- */
.grv-block {
  background: var(--weiss); border: 1px solid var(--linie);
  border-radius: var(--radius); padding: .7rem .8rem; margin-bottom: .8rem;
}
.grv-zeile { display: flex; align-items: baseline; justify-content: space-between; gap: .6rem; }
.grv-label { font-size: .78rem; color: var(--gedaempft); }
.grv-zeile b { font-size: 1.05rem; color: var(--navy); font-variant-numeric: tabular-nums; }
.grv-block .feld-hinweis { margin: .35rem 0 .55rem; }
.grv-block .knopf { padding: .35rem .6rem; font-size: .8rem; }
.grv-block .knopf[disabled] { opacity: .55; cursor: default; }

/* --- Rechenweg im Dialog -------------------------------------------------- */
.rechenweg {
  border: 1px solid var(--linie); border-radius: var(--radius);
  padding: .5rem .8rem; margin-top: .5rem; background: var(--flaeche);
}
.rechenweg summary { cursor: pointer; font-size: .85rem; color: var(--navy); font-weight: 600; }
.rechenweg h4 { margin: .9rem 0 .3rem; font-size: .85rem; color: var(--navy); }
.rechenweg ul { margin: 0; padding-left: 1.1rem; }
.rechenweg li, .rechenweg p { font-size: .8rem; line-height: 1.45; color: var(--text); }
.rechenweg p { margin: .5rem 0 0; }

/* --- Kassensturz ---------------------------------------------------------- */
.dialog-breit { width: min(62rem, calc(100vw - 2rem)); max-height: 88vh; overflow-y: auto; }
.cashflow {
  display: grid; grid-template-columns: minmax(0, 20rem) minmax(0, 1fr); gap: 1.6rem;
  align-items: start; margin-top: .8rem;
}
.cashflow h4 {
  margin: 1.1rem 0 .4rem; font-size: .78rem; letter-spacing: .04em;
  text-transform: uppercase; color: var(--gedaempft);
}
.cashflow h4:first-child { margin-top: 0; }
.cashflow .optional { text-transform: none; letter-spacing: 0; font-weight: 400; }
.cashflow .formular { margin-bottom: 0; }

.summenzeile {
  display: flex; justify-content: space-between; align-items: baseline;
  padding: .55rem .1rem 0; border-top: 1px solid var(--linie); margin-top: .6rem;
  font-size: .88rem; color: var(--gedaempft);
}
.summenzeile b { font-size: 1.05rem; color: var(--navy); font-variant-numeric: tabular-nums; }

/* Feste Dreiteilung statt auto-fill: die 190-px-Mindestbreite der Grundfassung
   sprengt im Dialog die Zeile und erzeugt einen waagerechten Rollbalken. */
.kacheln-drei { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; }
.kacheln-drei .kachel { padding: .6rem .7rem; }
.kacheln-drei .kachel dd { font-size: 1.05rem; }

.ausgaben-block { display: flex; align-items: center; gap: 1.4rem; flex-wrap: wrap; }
.ring { flex: none; }
.ring-mitte { font-size: 15px; font-weight: 700; }
.ring-unten { font-size: 10px; }

.postenliste { list-style: none; margin: 0; padding: 0; flex: 1; min-width: 15rem; }
.posten {
  display: flex; align-items: center; gap: .55rem;
  padding: .22rem 0; font-size: .85rem;
}
.posten-punkt { flex: none; width: .6rem; height: .6rem; border-radius: 2px; }
.posten-name { flex: 1; min-width: 0; }
.posten-anteil {
  flex: none; font-size: .76rem; color: var(--gedaempft);
  font-variant-numeric: tabular-nums; min-width: 3rem; text-align: right;
}
.posten-feld { flex: none; width: 7rem; }
/* Rechtsbündig, aber das €-Zeichen liegt absolut am rechten Rand — ohne den
   Innenabstand schöbe sich die Zahl darunter. */
/* width: 100% ist Pflicht — die Breitenregel der Formulare greift nur innerhalb
   von .formular, und ein <input type="text"> ist von sich aus rund 180 px breit.
   Ohne sie liefe die Zahl rechts aus der Liste heraus. */
.posten-feld input {
  width: 100%; box-sizing: border-box;
  text-align: right; padding: .25rem 1.5rem .25rem .4rem; font-size: .85rem;
}

.sparpotenzial { font-size: .86rem; margin: 0 0 .5rem; line-height: 1.5; }
.quotenbalken {
  height: .5rem; border-radius: 999px; background: var(--linie); overflow: hidden;
}
.quotenbalken > div {
  height: 100%; background: var(--himmelblau); transition: width .2s ease;
}
.warnung { color: #b23c17; font-weight: 600; }

@media (max-width: 860px) {
  .cashflow { grid-template-columns: 1fr; }
  .kacheln-drei { grid-template-columns: 1fr; }
}

/* Baustempel in der Fußzeile — verrät auf einen Blick, ob der Browser eine
   alte Fassung aus dem Cache zeigt. */
.baustempel { font-size: .72rem; color: var(--gedaempft); margin: .5rem 0 0; }

/* --- lin/log-Umschalter am Diagramm --------------------------------------- */
.diagramm-kopf {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 1rem; margin-bottom: .4rem;
}
.diagramm-kopf h3 { margin: 0; }
.diagramm-kopf .diagramm-untertitel { margin: .1rem 0 0; }
/* Titel und Untertitel sind global zentriert — das passt über einem Diagramm,
   das die volle Breite einnimmt. HIER stehen sie aber in einer Flexbox neben
   dem lin/log-Umschalter, und ihre Box ist nur so breit wie die längere der
   beiden Zeilen. Der kürzere Untertitel wurde darin zentriert und sah dadurch
   eingerückt aus: linksbündige Überschrift, scheinbar zentrierte Unterzeile.
   Im Flex-Kopf richten sich deshalb beide links aus. */
.diagramm-kopf .diagramm-titel,
.diagramm-kopf .diagramm-untertitel { text-align: left; }
.skalawahl {
  display: inline-flex; flex: none; border: 1px solid var(--linie);
  border-radius: 8px; overflow: hidden; background: var(--weiss);
}
.skalawahl .modus { padding: .22rem .6rem; font-size: .76rem; }

/* Fadenkreuz und Blase gleiten dem Zeiger nach, statt zu springen. Bei
   Diagrammen mit wenigen Stützstellen — der Renditebandbreite etwa — rastet
   die Anzeige auf den nächsten Punkt ein; ohne Übergang wirkt das ruckartig. */
.chart-tooltip { transition: left .13s ease-out, top .13s ease-out; }
.fadenkreuz-schiene { transition: transform .13s ease-out; }
.fadenkreuz-punkt { transition: cx .13s ease-out, cy .13s ease-out; }

@media (prefers-reduced-motion: reduce) {
  .chart-tooltip, .fadenkreuz-schiene, .fadenkreuz-punkt { transition: none; }
}

/* --- Signatur in der Fußzeile --------------------------------------------- */
.fuss-signatur {
  display: flex; align-items: baseline; justify-content: center;
  gap: .5rem; flex-wrap: wrap;
  margin: 1rem auto 0; font-size: .8rem; color: var(--gedaempft);
}
.ersteller {
  font: inherit; font-weight: 600; color: var(--navy);
  background: none; border: 0; padding: 0; cursor: pointer;
  border-bottom: 1px dashed currentColor;
}
.ersteller:hover { color: var(--himmelblau); }
.fuss-signatur .baustempel { font-size: .72rem; opacity: .8; }

.kontakt-rolle { margin: .2rem 0 1rem; color: var(--gedaempft); font-size: .88rem; }
.kontaktliste { display: grid; gap: .1rem; }
.kontaktzeile {
  display: grid; grid-template-columns: 10rem minmax(0, 1fr); gap: .6rem;
  padding: .45rem 0; border-top: 1px solid var(--linie); font-size: .88rem;
}
.kontaktzeile:first-child { border-top: 0; }
.kontakt-label { color: var(--gedaempft); font-size: .8rem; }
.kontakt-wert { font-weight: 600; color: var(--navy); overflow-wrap: anywhere; }
.kontakt-wert a { color: inherit; }

/* Die vCard steht als eigene, mittige Zeile unter der Liste — sie ist keine
   Angabe zum Nachlesen, sondern eine Handlung. */
.kontakt-vcard { text-align: center; margin: 1.1rem 0 .6rem; }
.kontakt-vcard a {
  display: inline-block; padding: .45rem 1.4rem; border-radius: 6px;
  background: var(--akzent-fuell); color: var(--auf-akzent); font-weight: 600;
  font-size: .9rem; text-decoration: none;
}
.kontakt-vcard a:hover { filter: brightness(1.08); }

@media (max-width: 480px) {
  .kontaktzeile { grid-template-columns: 1fr; gap: 0; }
}


.profil-stand { color: var(--himmelblau); font-weight: 600; }


/* --- Reiter BUZ ----------------------------------------------------------- */
/* Der leere Zustand ist eine Aufforderung, kein Fehler: die Angaben KÖNNEN
   nicht aus den übrigen Eingaben kommen. Deshalb gedämpft statt alarmierend. */
.buz-leer {
  border-left: 4px solid var(--sand);
  background: color-mix(in srgb, var(--flaeche) 60%, var(--weiss));
}
.buz-leer p { color: var(--gedaempft); font-size: .9rem; max-width: 72ch; }
.buz-leer .knopf { margin-top: .6rem; }

.buz-kopf { font-size: .88rem; color: var(--gedaempft); }
.buz-kopf b { color: var(--navy); }

/* Ausgegraut, solange der Faktor keine Werte hat — er ist eingeschaltet, aber
   wirkungslos, und genau das soll man sehen. */
.faktor-unvollstaendig .faktor-name { font-style: italic; }
.faktor-unvollstaendig .faktor-wert { color: var(--warnung); font-weight: 700; }


/* --- Schritt 4: Tarifauswahl und Rangliste -------------------------------- */
.anbieterliste {
  background: var(--weiss); border: 1px solid var(--linie);
  border-radius: var(--radius); overflow: hidden; margin-bottom: 1.25rem;
}
.anbieter + .anbieter { border-top: 1px solid var(--linie); }
.anbieter > summary {
  display: flex; align-items: center; justify-content: space-between; gap: .5rem;
  padding: .55rem .8rem; cursor: pointer; font-size: .88rem;
  font-weight: 600; color: var(--navy); list-style: none;
}
.anbieter > summary::-webkit-details-marker { display: none; }
.anbieter > summary::after { content: "⌄"; color: var(--gedaempft); font-size: .9rem; }
.anbieter[open] > summary::after { content: "⌃"; }
.anbieter > summary:hover { background: var(--flaeche); }
.anbieter-anzahl {
  margin-left: auto; margin-right: .4rem; font-weight: 400; font-size: .74rem;
  color: var(--gedaempft); background: var(--flaeche);
  border-radius: 999px; padding: .05rem .4rem;
}

/* Tarifknopf: gewählt = voll, ungewählt = zurückgenommen. Gleiche Sprache wie
   die Bausteine in Schritt 5 und der Kaufkraft-Schalter. */
.tarifknopf {
  display: flex; flex-direction: column; align-items: flex-start; gap: .05rem;
  width: 100%; text-align: left; font: inherit; cursor: pointer;
  padding: .45rem .8rem .45rem 1.1rem; background: none; border: 0;
  border-left: 3px solid transparent; transition: background-color .16s ease;
}
.tarifknopf:hover { background: var(--flaeche); }
.tarifname { font-size: .82rem; color: var(--text); }
.tarifart { font-size: .7rem; color: var(--gedaempft); }

/* Eine Tarifzeile trägt den Wahlknopf und — bei eigenen Tarifen — Zahnrad und
   ×. Die Markierung liegt an der ZEILE, damit sie den Knopfbereich mit
   einschließt und nicht am Rand der Zusatzknöpfe endet. */
.tarifzeile { display: flex; align-items: center; border-left: 3px solid transparent;
  min-width: 0; }
.tarifzeile .tarifknopf { border-left: 0; padding-left: .8rem; min-width: 0; }
/* Lange Tarifnamen kürzen statt die Seitenspalte aufzublähen: ein Flex- oder
   Grid-Kind schrumpft ohne min-width:0 nie unter seine Inhaltsbreite, und
   `.seitenspalte` bekäme dadurch die Breite des längsten Tarifnamens. */
.tarifname, .tarifart {
  max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.tarifzeile:hover { background: var(--flaeche); }
.tarif-drin { border-left-color: var(--himmelblau); background: var(--flaeche); }
.tarif-drin .tarifname { color: var(--navy); font-weight: 600; }
.tarifzeile-knoepfe {
  display: flex; gap: .1rem; flex: none; padding-right: .45rem;
}

/* Suchfeld über der Anbieterliste. */
.tarifsuche input {
  width: 100%; box-sizing: border-box; padding: .45rem .65rem; font-size: .84rem;
}

/* Was im Vergleich steht — der Kopf der Auswahl in Schritt 4. */
.gewaehlte {
  display: grid; gap: .2rem; background: var(--weiss); min-width: 0;
  border: 1px solid var(--linie); border-radius: 10px; padding: .3rem;
}
.gewaehlt-zeile {
  display: flex; align-items: center; gap: .45rem; min-width: 0;
  padding: .25rem .2rem .25rem .45rem; border-left: 3px solid var(--himmelblau);
}
/* Name über Produktart, zweizeilig — in einer 280 px schmalen Spalte bliebe von
   einem einzeiligen Tarifnamen neben einem Art-Etikett kaum etwas übrig. */
.gewaehlt-text { display: grid; gap: .05rem; flex: 1 1 auto; min-width: 0; }
.gewaehlt-name { font-size: .8rem; color: var(--navy); font-weight: 600; }
.gewaehlt-art { font-size: .7rem; color: var(--gedaempft); }
.gewaehlt-zeile .tarifzeile-knoepfe { margin-left: auto; padding-right: 0; }

.rangzeile {
  background: var(--weiss); border: 1px solid var(--linie);
  border-left: 4px solid var(--linie); border-radius: var(--radius);
  padding: .7rem .9rem; margin-bottom: .6rem;
}
.rang-erster { border-left-color: var(--limette); }
.rang-kopf { display: flex; align-items: baseline; gap: .6rem; flex-wrap: wrap; }
.rang-nummer {
  flex: none; width: 1.5rem; height: 1.5rem; border-radius: 50%;
  display: grid; place-items: center; align-self: center;
  background: var(--flaeche); color: var(--gedaempft);
  font-size: .74rem; font-weight: 700;
}
.rang-erster .rang-nummer { background: var(--limette); color: var(--auf-limette); }
.rang-marke {
  font-size: .68rem; text-transform: uppercase; letter-spacing: .04em;
  color: var(--gedaempft); border: 1px solid var(--linie);
  border-radius: 4px; padding: .05rem .35rem;
}
.rang-titel { flex: 1; min-width: 0; font-weight: 600; color: var(--navy); font-size: .92rem; }
.rang-wert { font-size: 1.15rem; font-weight: 700; color: var(--navy);
  font-variant-numeric: tabular-nums; }
.rang-spur {
  height: .5rem; background: var(--flaeche); border-radius: 999px;
  overflow: hidden; margin: .45rem 0 .3rem;
}
.rang-fuellung { height: 100%; background: var(--himmelblau); border-radius: 999px; }
.rang-erster .rang-fuellung { background: var(--navy); }
.rang-fuss { font-size: .76rem; color: var(--gedaempft); }

/* Knöpfe an der Rangzeile: bearbeiten und entfernen. */
.rang-knoepfe { display: flex; gap: .1rem; flex: none; align-self: center; }
.rang-weg:hover { color: var(--fehler); }
.rang-angepasst {
  font-size: .68rem; font-weight: 600; color: var(--warnung);
  border: 1px solid currentColor; border-radius: 4px; padding: 0 .3rem;
  vertical-align: middle;
}

.eigene-tarife { margin: 0 0 1.25rem; padding-top: .7rem; border-top: 1px solid var(--linie); }
.eigene-tarife .block-label { margin-bottom: .4rem; }
.eigene-knoepfe { display: flex; flex-wrap: wrap; gap: .35rem; }
.eigene-knoepfe .knopf { padding: .3rem .6rem; font-size: .78rem; }

/* Ansichtsschalter rechts in der Modusleiste von Schritt 4. */
.modusleiste-rechts { margin-left: auto; }
.skalawahl .modus[data-tarifansicht] { padding: .22rem .5rem; font-size: .9rem; line-height: 1.2; }

/* --- Produktartfilter der Tarifauswahl ------------------------------------ */
.artfilter { display: flex; flex-wrap: wrap; gap: .25rem; margin-bottom: .6rem; }
.artknopf {
  font: inherit; font-size: .74rem; padding: .2rem .55rem; cursor: pointer;
  border: 1px solid var(--linie); border-radius: 999px;
  background: var(--weiss); color: var(--gedaempft);
  transition: background-color .16s ease, color .16s ease, border-color .16s ease;
}
.artknopf:hover { color: var(--navy); }
.artknopf[aria-pressed="true"] {
  background: var(--himmelblau); border-color: var(--himmelblau);
  color: #fff; font-weight: 600;
}
.artleer { padding: .8rem; }

/* Legendeneinträge sind im Tarifvergleich anklickbar (Anlage entfernen). */
.schritt[data-schritt="4"] .legende-eintrag { cursor: pointer; }
.schritt[data-schritt="4"] .legende-eintrag:hover text { fill: var(--fehler); }

/* --- Tarifauswahl Schritt 3 ----------------------------------------------
   Dieselbe Anbieterliste wie Schritt 4, davor der Rollenschalter: er sagt,
   welche der beiden Anlagen der nächste Klick besetzt. Ohne ihn wäre bei
   einer gemeinsamen Liste nicht zu erkennen, wohin eine Wahl fällt. */
.tarifwahl3 { display: grid; gap: .5rem; min-width: 0; }
.tarifwahl3 > *, .tarifwahl3 .anbieter, .tarifwahl3 .anbieter > summary { min-width: 0; }
.rollenwahl { display: grid; grid-template-columns: 1fr 1fr; gap: .4rem; }
.rollenknopf {
  display: grid; gap: .1rem; text-align: left; padding: .4rem .55rem;
  border: 1px solid var(--linie); border-radius: 10px;
  background: var(--flaeche); color: inherit; cursor: pointer;
  transition: border-color .18s ease, background .18s ease;
}
.rollenknopf:hover { border-color: var(--himmelblau); }
.rollenknopf.rolle-aktiv {
  border-color: var(--himmelblau); background: var(--flaeche);
  box-shadow: inset 3px 0 0 var(--himmelblau);
}
.rollen-label { font-size: .72rem; color: var(--gedaempft); text-transform: uppercase;
  letter-spacing: .03em; }
.rollen-tarif { font-size: .82rem; font-weight: 600; line-height: 1.25;
  overflow-wrap: anywhere; }
.tarifwahl3 .anbieterliste { max-height: 40vh; overflow-y: auto;
  overflow-x: hidden; overflow-x: clip; scrollbar-width: thin;
  border: 1px solid var(--linie); border-radius: 10px; padding: .25rem;
  margin-bottom: 0; }
/* Die Anlegen-Knöpfe schließen die Auswahl ab — die Trennlinie der freistehenden
   Fassung wäre hier eine zweite Kante direkt unter der Liste. */
.tarifwahl3 .eigene-tarife { margin: .3rem 0 0; padding-top: .5rem; }

/* Entnahme-Regler in der Modusleiste von Schritt 4. Er gilt für ALLE
   verglichenen Anlagen — deshalb steht er über der Rangliste und nicht als
   Griff in einer einzelnen Zeile, wo er nach einer Einzeleinstellung aussähe. */
/* Der Balken einer Rangzeile trägt beim Entnahmeplan denselben ziehbaren
   Griff wie die Karten in Schritt 3. `.rang-fuellung` braucht dafür einen
   Bezugsrahmen, sonst positioniert sich der Griff am nächsten positionierten
   Vorfahren — irgendwo weiter oben in der Seite. */
.rang-fuellung { position: relative; }
/* Die schmale Rangspur schneidet ihren Inhalt ab (`overflow: hidden`) — der
   Griff ragt aber oben und unten heraus und wäre so weder sichtbar noch
   greifbar. Beim Entnahmeplan bekommt sie deshalb die Maße der Karten aus
   Schritt 3. */
.rang-spur-griff { height: .85rem; overflow: visible; }
.rang-spur-griff .rang-fuellung { display: flex; background: none; }
.rang-spur-griff .plan-griff { z-index: 2; }
/* Aufschlüsselung Entnahmen/Restkapital unter dem Balken — wie in Schritt 3. */
.rang-legende { margin: .15rem 0 .3rem; }

/* --- Fazit des Bestandsvertrags ------------------------------------------ */
/* Der Rat ist das Ergebnis des ganzen Kapitels — er bekommt einen farbigen
   Balken links, dessen Farbe die Richtung trägt: grün weiterlaufen lassen,
   gelb ein Wechsel, der abzuwägen ist. */
.fazit-karte { border-left: 4px solid var(--linie); }
.fazit-karte h3 { margin-top: 0; }
.fazit-weiterlaufen { border-left-color: var(--limette); }
.fazit-beitragsfrei, .fazit-kuendigen { border-left-color: var(--warnung); }
.fazit-text { margin: .3rem 0 .7rem; line-height: 1.5; }
.fazit-gruende { margin: 0 0 .8rem; padding-left: 1.1rem; }
.fazit-gruende li { margin-bottom: .35rem; font-size: .88rem; color: var(--gedaempft); }
/* Die Erfassungsmaske ist breiter als die Formulare der Seitenspalte — sie
   steht in der Ergebnisspalte und hat dort Platz für drei Spalten. */
.formular-breit { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }

/* --- Rückmeldung beim Drücken --------------------------------------------
   Sie gehört auf das Drücken, nicht auf das Loslassen: Wer eine Fläche
   berührt, muss im selben Bild sehen, dass er sie hat. Am Rechner fiel das
   Fehlen kaum auf, weil :hover vorher greift — auf einem Tablet gibt es kein
   :hover, und dort blieb zwischen Berührung und Ergebnis gar keine Antwort.
   Genau der Fall, für den dieses Werkzeug im Gespräch gedacht ist.

   Bewegt wird ausschließlich `transform`: Das übernimmt der Compositor, es
   löst keinen Umbruch aus und läuft auch dann rund, wenn im selben Augenblick
   gerechnet wird. */
.knopf, .knopf-still, .schritt-knopf, .tab, .untertab, .theme-knopf,
.baustein, .artknopf, .faktor-zahnrad, .dialog-zu, .verweis-knopf,
.mix-info-knopf, .plan-griff {
  transition: transform var(--zeit-tipp) ease-out,
              background-color var(--zeit-kurz) var(--kurve),
              color var(--zeit-kurz) var(--kurve),
              border-color var(--zeit-kurz) var(--kurve),
              opacity var(--zeit-kurz) var(--kurve);
}
.knopf:active, .knopf-still:active, .schritt-knopf:active, .tab:active,
.untertab:active, .theme-knopf:active, .baustein:active, .artknopf:active,
.faktor-zahnrad:active, .dialog-zu:active, .verweis-knopf:active,
.mix-info-knopf:active {
  transform: scale(.96);
}
/* Breite Zeilen bekommen weniger Maßstab: 4 % auf einer 40 rem breiten
   Fläche wären ein Sprung, kein Andrücken. Dafür trägt hier der Untergrund
   die Rückmeldung mit. */
.mix-option, .tarifknopf, .tarifzeile {
  transition: transform 100ms ease-out, background-color .16s ease,
              color .16s ease, border-color .16s ease;
}
.mix-option:active, .tarifknopf:active {
  transform: scale(.995);
  background: var(--flaeche);
}
/* Der Ziehgriff wird gegriffen, nicht gedrückt — er wächst, statt zu
   schrumpfen: Die Fläche unter dem Finger soll größer werden, nicht kleiner. */
.plan-griff:active, body.zieht .plan-griff {
  transform: translate(-50%, -50%) scale(1.15);
}
@media (prefers-reduced-motion: reduce) {
  .knopf, .knopf-still, .schritt-knopf, .tab, .untertab, .theme-knopf,
  .baustein, .artknopf, .faktor-zahnrad, .dialog-zu, .verweis-knopf,
  .mix-info-knopf, .mix-option, .tarifknopf, .tarifzeile, .plan-griff {
    transition: background-color .16s ease, color .16s ease, border-color .16s ease;
  }
  /* Reduzierte Bewegung heißt nicht: keine Rückmeldung. Der Maßstab entfällt,
     der Untergrund übernimmt. */
  .knopf:active, .knopf-still:active, .schritt-knopf:active, .tab:active,
  .untertab:active, .theme-knopf:active, .baustein:active, .artknopf:active,
  .faktor-zahnrad:active, .dialog-zu:active, .verweis-knopf:active,
  .mix-info-knopf:active, .mix-option:active, .tarifknopf:active {
    transform: none; background: var(--flaeche);
  }
  .plan-griff:active, body.zieht .plan-griff {
    transform: translate(-50%, -50%);
  }
}

/* --- Ziehbare Ränder eines hervorgehobenen Zeitraums ---------------------- */
/* Die gestrichelte Linie ist einen Pixel breit und damit nicht zu greifen.
   Der Griff ist deshalb ein unsichtbares 12-px-Band darüber, das erst beim
   Überfahren sichtbar wird — sonst stünden zwei kräftige Linien dauerhaft im
   Diagramm und lenkten von den Kurven ab. */
.bereich-griff:hover .bereich-griff-linie,
.bereich-griff:hover .bereich-griff-pfeil { opacity: .9; }
.zieht .bereich-griff-linie, .zieht .bereich-griff-pfeil { opacity: .9; }

/* Rückmeldung gehört auf das DRÜCKEN, nicht auf das Loslassen: Wer den Griff
   berührt, muss im selben Bild sehen, dass er ihn hat. Die Linie wird kräftiger
   und der Pfeil wächst leicht — beides über transform und opacity, damit es
   der Compositor übernimmt und keinen Umbruch auslöst. */
.bereich-griff-gedrueckt .bereich-griff-linie {
  opacity: 1; stroke-width: 2.5;
}
.bereich-griff-gedrueckt .bereich-griff-pfeil {
  opacity: 1;
}
.bereich-griff-linie, .bereich-griff-pfeil {
  transition: opacity 100ms ease-out, stroke-width 100ms ease-out;
}
/* Beim Ziehen selbst darf nichts nachlaufen — der Griff folgt 1:1. */
.zieht .bereich-griff-linie, .zieht .bereich-griff-pfeil { transition: none; }
@media (prefers-reduced-motion: reduce) {
  .bereich-griff-linie, .bereich-griff-pfeil { transition: none; }
}

/* --- Gutachten: Textbausteine --------------------------------------------- */
.gutachten-block h4 {
  margin: 1.1rem 0 .3rem; font-size: .95rem; color: var(--navy);
}
.gutachten-block h4:first-of-type { margin-top: .6rem; }
.gutachten-block p { line-height: 1.55; margin: .5rem 0; }
.gutachten-block ul { margin: .4rem 0 .8rem; padding-left: 1.2rem; line-height: 1.5; }
.gutachten-block li { margin-bottom: .3rem; }
/* Die eine Zahl, um die es im Absatz geht — abgesetzt, damit sie im Gespräch
   gefunden wird, ohne den Text zu zerreißen. */
.gutachten-kennzahl {
  background: var(--flaeche); border-left: 3px solid var(--himmelblau);
  padding: .6rem .8rem; margin: .8rem 0;
}
@media print {
  .gutachten-block { break-inside: avoid; }
  .gutachten-block h3, .gutachten-block h4 { break-after: avoid; }
}
/* Die Mitte verschiebt den ganzen Zeitraum — Greifhand statt Größenpfeil. */
.bereich-griff-mitte:hover rect { cursor: grab; }
.zieht .bereich-griff-mitte rect { cursor: grabbing; }
/* Beim Ziehen keine Tooltips: sie zeigen Werte, die schon veraltet sind. */
.zieht .chart-tooltip { display: none !important; }
.zieht .fadenkreuz { display: none; }

/* --- Vorsorge-Mix: Fragestrecke ------------------------------------------- */
.mix-frage { margin-bottom: 1.1rem; }
.mix-frage:last-child { margin-bottom: 0; }
.mix-optionen { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .35rem; }
.mix-option {
  display: grid; gap: .1rem; text-align: left; font: inherit; cursor: pointer;
  padding: .45rem .7rem; border: 1px solid var(--linie); border-radius: 10px;
  background: var(--weiss); color: inherit; min-width: 0;
  transition: border-color .16s ease, background .16s ease;
}
.mix-option:hover { border-color: var(--himmelblau); }
.mix-aktiv {
  border-color: var(--himmelblau); background: var(--flaeche);
  box-shadow: inset 3px 0 0 var(--himmelblau);
}
.mix-option-titel { font-size: .84rem; font-weight: 600; color: var(--navy); }
.mix-option-unter { font-size: .72rem; color: var(--gedaempft); }

/* --- Vorsorge-Mix: Fragestrecke, eine Frage je Bildschirm ----------------- */
/* Zentriert, nicht linksbündig: Die Strecke steht allein auf der Fläche, und
   das Ergebnis muss auf derselben Achse bleiben — sonst springt die Ansicht
   beim Übergang von der letzten Frage zum Ergebnis. */
.mix-spalte { max-width: 42rem; margin-inline: auto; }
.mix-karte { max-width: 42rem; margin-inline: auto; }

/* --- Hintergrundinformationen zur Frage ----------------------------------
   Der Knopf steht UNTER den Antworten: Die Entscheidung ist die Hauptsache,
   der Hintergrund die Rückversicherung. Er öffnet ein Fenster, weil der Text
   mehrere Absätze lang ist — aufgeklappt schöbe er die Antworten aus dem Bild. */
.mix-info { margin: 1rem 0 0; padding-top: .8rem; border-top: 1px solid var(--linie); }
.mix-info-knopf {
  display: inline-flex; align-items: center; gap: .4rem;
  font: inherit; font-size: .8rem; font-weight: 600; cursor: pointer;
  color: var(--himmelblau); background: none; border: 0; padding: .2rem 0;
}
.mix-info-knopf:hover { text-decoration: underline; }
.mix-info-zeichen {
  display: grid; place-items: center; width: 1.05rem; height: 1.05rem;
  border-radius: 50%; border: 1.5px solid currentColor;
  font-size: .68rem; font-weight: 700; font-style: italic; line-height: 1;
}
/* Im Fenster darf die Frage über mehrere Zeilen laufen — sie ist lang. */
/* Etwas breiter als die übrigen Dialoge und in der Höhe begrenzt: Bei fünf
   Absätzen liefe das Fenster sonst über den Bildschirmrand hinaus. */
#infoDialog { width: min(38rem, calc(100vw - 2rem)); }
#infoInhalt { max-height: min(60vh, 32rem); overflow-y: auto; margin-top: .6rem; }
#infoDialog .dialog-kopf h3 { font-size: 1rem; line-height: 1.35; }
.info-dialog-text p { margin: 0 0 .7rem; font-size: .86rem; line-height: 1.55; }
.info-dialog-text p:first-child { font-weight: 500; color: var(--navy); }
.info-dialog-text p:last-child { margin-bottom: 0; }

/* --- Bestandsvertrag: geführte Erfassung --------------------------------- */
.bestand-frage-feld { margin: .9rem 0 1.2rem; }
.bestand-frage-feld input { font-size: 1.05rem; padding: .55rem .7rem; }
.bestand-weiter { display: flex; align-items: center; gap: .5rem; }
.bestand-umschalter { margin: .9rem 0 0; text-align: center; }
/* Ein Knopf, der wie ein Verweis aussieht: die Handlung ist nebensächlich,
   soll aber auffindbar bleiben. */
.verweis-knopf {
  font: inherit; font-size: .78rem; color: var(--gedaempft);
  background: none; border: 0; padding: 0; cursor: pointer;
  text-decoration: underline; text-underline-offset: 2px;
}
.verweis-knopf:hover { color: var(--himmelblau); }

/* --- Herkunftsmarke an der Tarifzeile ------------------------------------ */
.tarif-marke {
  display: inline-block; margin-left: .4rem; vertical-align: middle;
  font-size: .62rem; font-weight: 700; letter-spacing: .03em;
  text-transform: uppercase; white-space: nowrap;
  padding: .08rem .35rem; border-radius: 999px;
  background: var(--flaeche); color: var(--gedaempft);
  border: 1px solid var(--linie);
}
/* Der Altvertrag ist kein Angebot, sondern der Ist-Zustand — er hebt sich ab. */
.tarif-marke-bestand {
  background: var(--akzent-fuell); color: var(--auf-akzent); border-color: transparent;
}
.mix-fortschritt {
  height: 4px; background: var(--flaeche); border-radius: 999px;
  overflow: hidden; margin: -.3rem 0 .9rem;
}
.mix-fortschritt-balken {
  display: block; height: 100%; background: var(--limette);
  transition: width .25s ease;
}
.mix-kopf {
  display: flex; align-items: center; justify-content: space-between;
  gap: .6rem; margin-bottom: .5rem;
}
.mix-marke {
  font-size: .68rem; font-weight: 700; letter-spacing: .04em;
  text-transform: uppercase; color: var(--auf-akzent); background: var(--akzent-fuell);
  border-radius: 999px; padding: .15rem .55rem;
}
.mix-zaehler { font-size: .78rem; color: var(--gedaempft); }
.mix-karte h3 { margin: .2rem 0 .3rem; }
/* In der Strecke steht je Zeile eine Option — nicht nebeneinander wie im
   Formular: die Wahl soll gelesen, nicht überflogen werden. */
.mix-karte .mix-optionen { flex-direction: column; margin: .9rem 0 1.2rem; }
.mix-karte .mix-option { width: 100%; padding: .7rem .9rem; }
.mix-navigation {
  display: flex; align-items: center; justify-content: space-between; gap: .6rem;
}
.mix-zusammenfassung { max-width: 42rem; }
.mix-zusammenfassung table { margin-top: .2rem; }
.mix-zusammenfassung td:first-child { text-align: left; color: var(--gedaempft); }


/* ==========================================================================
   Compositor-Hinweise
   ========================================================================== */

/* `will-change` sagt dem Browser, dass gleich Bewegung kommt: Er legt die
   Fläche vorab auf eine eigene Ebene, statt sie beim ersten Bild neu
   aufzubauen — das erste Bild einer Geste ist sonst das teuerste.
   Gesetzt wird es NUR, solange wirklich gezogen wird. Dauerhaft gesetzt hält
   es Ebenen im Speicher, die niemand braucht, und macht alles langsamer. */
body.zieht .plan-griff,
body.zieht .bereich-flaeche,
body.zieht .bereich-kante,
body.zieht [data-bereichgriff] { will-change: transform; }
.dialog-oeffnet, .dialog-schliesst { will-change: transform, opacity; }
.schritt.geht-nach-rechts, .schritt.geht-nach-links,
.schritt.kommt-von-rechts, .schritt.kommt-von-links {
  will-change: transform, opacity;
}

/* --- Kapitelwechsel: der alte Inhalt geht dorthin, wo der neue herkommt ---
   „If something disappears one way, we expect it to emerge from where it
   came." Bisher kam der neue Inhalt aus der Navigationsrichtung, der alte
   verschwand ohne Weg — die Hälfte der Bewegung fehlte. */
@keyframes schiebt-raus-links {
  from { opacity: 1; transform: none; }
  to   { opacity: 0; transform: translateX(-28px); }
}
@keyframes schiebt-raus-rechts {
  from { opacity: 1; transform: none; }
  to   { opacity: 0; transform: translateX(28px); }
}
/* Der Austritt ist kürzer als der Eintritt: Das Verlassen darf nicht warten
   lassen, das Ankommen soll sich Zeit nehmen. */
.schritt.geht-nach-links  { animation: schiebt-raus-links  .16s cubic-bezier(.4, 0, 1, 1); }
.schritt.geht-nach-rechts { animation: schiebt-raus-rechts .16s cubic-bezier(.4, 0, 1, 1); }
@media (prefers-reduced-motion: reduce) {
  .schritt.geht-nach-links, .schritt.geht-nach-rechts { animation: none; }
}

/* ==========================================================================
   Zugänglichkeit — die drei Signale des Systems
   ========================================================================== */

/* Was hier steht, ist der Auffangblock: Er deckt die Bewegungen ab, die in
   ihren eigenen Abschnitten keinen eigenen Ausschalter haben. Farb-, Deckkraft-
   und Rahmenwechsel bleiben absichtlich stehen — sie helfen beim Verstehen und
   belasten das Gleichgewicht nicht. Abgeschaltet wird, was den Ort ändert. */
@media (prefers-reduced-motion: reduce) {
  .schalter > span,                 /* Schaltknauf wandert */
  .quotenbalken > div,              /* Entnahmebalken wächst */
  .mix-fortschritt-balken {         /* Fortschritt der Fragestrecke */
    transition: none;
  }
}

/* Erhöhter Kontrast: festere Flächen, klar gezeichnete Rahmen. Der Skill
   verlangt „near-solid backgrounds with a defined, contrasting border" — hier
   heißt das vor allem: keine gedämpften Trennlinien mehr, und Text, der auf
   Flächen liegt, bekommt die volle Textfarbe statt des gedämpften Grautons. */
@media (prefers-contrast: more) {
  :root {
    --linie: var(--text);
    --gedaempft: var(--text);
  }
  .karte, .formular, .kachel, .faktor-dialog, .mix-karte, .plan {
    border: 1px solid var(--text);
  }
  .feld-hinweis, .fussnote, .untertitel { color: var(--text); }
  /* Der Zustand eines Knopfes darf sich nicht allein aus einer Tönung
     ergeben — bei erhöhtem Kontrast trägt ihn der Rahmen mit. */
  .baustein-aus { border-style: dashed; }
  [aria-pressed="true"], [aria-selected="true"], [aria-current="true"] {
    outline: 2px solid currentColor; outline-offset: -2px;
  }
}

/* Weiche Kante statt harter Linie: Wo Inhalt unter die klebende Seitenspalte
   läuft, blendet er aus, statt an einer 1-px-Linie abgeschnitten zu werden.
   Nur dort, wo sich wirklich etwas überlagert — darum am oberen Rand der
   Spalte und nicht als Rahmen um sie herum. */
.seitenspalte::before {
  content: ""; position: sticky; top: 0; z-index: 2;
  display: block; height: 1rem; margin: -1rem -.25rem .25rem;
  background: linear-gradient(to bottom,
              var(--flaeche) 25%, transparent);
  pointer-events: none;
}
@media (prefers-reduced-transparency: reduce) {
  /* Ohne Verlauf: eine klare Kante ist hier ehrlicher als ein Halbschatten. */
  .seitenspalte::before { background: var(--flaeche); }
}


/* --- Rückgängig-Leiste ----------------------------------------------------
   Sie schwebt über dem Inhalt, ohne ihn zu blockieren: Wer weiterarbeiten
   will, kann das — der Weg zurück drängt sich nicht auf, er steht bereit.
   Deshalb kein Schleier und kein Fokusfang.

   ACHTUNG bei der Sichtbarkeit: `display: flex` auf der Klasse schlägt das
   `hidden`-Attribut, weil dessen `display: none` nur aus dem Browser-Stylesheet
   kommt und damit die schwächere Regel ist. Die Leiste stand deshalb dauerhaft
   im Bild. Die Darstellung hängt jetzt ausdrücklich am NICHT gesetzten
   Attribut — so bleibt `hidden` die eine Wahrheit. */
.rueckgaengig { display: none; }
.rueckgaengig:not([hidden]) {
  position: fixed; left: 50%; bottom: 1.5rem; z-index: 60;
  display: flex; align-items: center; flex-wrap: nowrap; gap: 1rem;
  padding: .55rem .55rem .55rem 1.1rem;
  border-radius: 999px;
  background: var(--navy);
  box-shadow: 0 6px 24px rgba(0, 0, 0, .3), 0 1px 0 rgba(255, 255, 255, .12) inset;
  color: #fff; font-size: .86rem; line-height: 1.3;
  /* Breite folgt dem Inhalt, bis der Platz knapp wird. Ein fester Wert wäre
     bei kurzen Meldungen zu breit und bei langen zu schmal. */
  width: max-content; max-width: min(34rem, calc(100vw - 2rem));
  transform: translate(-50%, 0);
  animation: rueckgaengig-kommt .24s cubic-bezier(.2, .8, .3, 1);
}
/* Der Name des gelöschten Eintrags kann lang sein — er kürzt, statt die
   Leiste über den Bildschirm zu schieben oder den Knopf umzubrechen. */
#rueckgaengigText {
  min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
/* Sie kommt von unten und geht nach unten — derselbe Weg in beide Richtungen. */
@keyframes rueckgaengig-kommt {
  from { opacity: 0; transform: translate(-50%, 14px); }
  to   { opacity: 1; transform: translate(-50%, 0); }
}
@keyframes rueckgaengig-geht {
  from { opacity: 1; transform: translate(-50%, 0); }
  to   { opacity: 0; transform: translate(-50%, 14px); }
}
.rueckgaengig-geht { animation: rueckgaengig-geht .18s cubic-bezier(.4, 0, 1, 1); }

/* Der Knopf trägt das Limettengrün der Marke — dieselbe Farbe, die in der
   Kopfzeile das aktive Kapitel markiert. Er ist die einzige Handlung hier und
   darf danach aussehen. */
#rueckgaengigKnopf {
  flex: 0 0 auto; font: inherit; font-weight: 700; font-size: .82rem;
  cursor: pointer; white-space: nowrap;
  padding: .4rem .9rem; border-radius: 999px;
  background: var(--limette); border: 0; color: var(--auf-limette);
}
#rueckgaengigKnopf:hover { filter: brightness(1.08); }
#rueckgaengigKnopf:active { transform: scale(.96); }
#rueckgaengigKnopf:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }

@media (prefers-reduced-motion: reduce) {
  .rueckgaengig:not([hidden]) { animation: none; }
  .rueckgaengig-geht { animation: none; }
  #rueckgaengigKnopf:active { transform: none; filter: brightness(1.15); }
}
@media (prefers-contrast: more) {
  .rueckgaengig:not([hidden]) { border: 2px solid #fff; }
}
/* Auf schmalen Bildschirmen steht sie über die volle Breite — ein mittiges
   Oval mit Rändern links und rechts verschenkt dort Platz. */
@media (max-width: 30rem) {
  .rueckgaengig:not([hidden]) {
    left: .75rem; right: .75rem; width: auto; max-width: none;
    transform: none; border-radius: 14px;
    justify-content: space-between;
  }
  @keyframes rueckgaengig-kommt {
    from { opacity: 0; transform: translateY(14px); }
    to   { opacity: 1; transform: none; }
  }
  @keyframes rueckgaengig-geht {
    from { opacity: 1; transform: none; }
    to   { opacity: 0; transform: translateY(14px); }
  }
}

/* --- Förderrechner: Altersvorsorgedepot gegen Riester ---------------------- */
.fr-eingaben {
  display: grid; gap: .9rem 1.1rem; margin: 1rem 0 1.2rem;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  align-items: end;
}
.fr-feld { display: grid; gap: .3rem; font-size: .8rem; color: var(--gedaempft); }
.fr-feld > span { line-height: 1.3; }
.fr-feld b { color: var(--navy); font-size: .9rem; }
.fr-feld-breit { grid-column: span 2; }
.fr-feld select, .fr-feld input[type="text"] {
  font: inherit; font-size: .9rem; padding: .45rem .6rem;
  border: 1px solid var(--linie); border-radius: 8px;
  background: var(--weiss); color: var(--text); width: 100%;
}
/* Zwei Spalten, die sich gegenüberstehen — der Vergleich ist die Aussage,
   nicht die Einzelzahl. Sie stehen deshalb nebeneinander und nicht
   untereinander, solange der Platz reicht. */
.fr-vergleich {
  display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  margin-bottom: 1.2rem;
}
.fr-spalte {
  border: 1px solid var(--linie); border-radius: var(--radius);
  padding: .9rem 1rem; background: var(--flaeche);
}
/* Der bessere Weg wird gekennzeichnet, nicht der schlechtere abgewertet:
   beide Zahlen bleiben gleich gut lesbar. Ein ausgegrauter Verlierer würde
   das Gespräch in eine Richtung drücken, die die Zahlen nicht hergeben —
   der Unterschied ist oft klein. */
.fr-sieger { border-color: var(--himmelblau); background: var(--weiss); }
.fr-kopf { display: flex; align-items: center; gap: .6rem; margin-bottom: .4rem; }
.fr-titel { font-weight: 700; color: var(--navy); font-size: .95rem; }
.fr-marke {
  font-size: .64rem; font-weight: 700; letter-spacing: .03em;
  text-transform: uppercase; white-space: nowrap;
  padding: .1rem .45rem; border-radius: 999px;
  background: var(--akzent-fuell); color: var(--auf-akzent);
}
.fr-betrag { font-size: 1.6rem; font-weight: 700; color: var(--navy); line-height: 1.1; }
.fr-quote { font-size: .78rem; color: var(--gedaempft); margin-bottom: .6rem; }
.fr-spalte table { font-size: .82rem; }
.fr-spalte .tabelle-scroll { margin: 0; }
@media (prefers-contrast: more) {
  .fr-spalte { border: 1px solid var(--text); }
  .fr-sieger { border-width: 2px; }
}

/* Grenzsteuersatz: Wert, Schalter und Feld in EINER Zeile. Der Schalter
   gehört neben den Satz, den er verändert — steht er darunter, muss man
   erst suchen, worauf er sich bezieht. */
.fr-satz-zeile {
  display: flex; align-items: center; gap: 1rem; flex-wrap: wrap;
  grid-column: 1 / -1;
}
.fr-satz-wert { color: var(--text); }
.fr-schalter {
  display: inline-flex; align-items: center; gap: .4rem;
  font-size: .8rem; color: var(--text); cursor: pointer; white-space: nowrap;
}
.fr-schalter input { width: auto; margin: 0; cursor: pointer; }
.fr-satz-feld { max-width: 8rem; }
.fr-satz-feld input { text-align: right; }
/* Der Detailvergleich trägt links das Merkmal und rechts zwei Antworten —
   die erste Spalte bekommt deshalb mehr Platz und bricht um. */
.fr-karte table th:first-child, .fr-karte table td:first-child {
  width: 34%; white-space: normal;
}
.fr-karte table td { vertical-align: top; }
/* Die letzte Zeile ist die Summe, auf die alles hinausläuft. */
.fr-karte table tbody tr:last-child { font-weight: 700; }
.fr-karte table tbody tr:last-child td { border-top: 2px solid var(--linie); }

/* --- Hintergrundwissen für Berater ----------------------------------------
   Abgesetzt vom Rechner darüber: Es sind keine Ergebnisse, sondern Wissen,
   das unabhängig von den Eingaben gilt. Eine Linie und ein ruhigerer
   Untergrund genügen, um das zu zeigen — ein eigener Kasten je Abschnitt
   würde die Seite zerhacken. */
.fr-wissen {
  margin-top: 1.6rem; padding-top: 1.2rem;
  border-top: 1px solid var(--linie);
}
.fr-wissen h4 {
  margin: 1.3rem 0 .4rem; font-size: .92rem; color: var(--navy);
}
.fr-wissen h4:first-child { margin-top: 0; }
.fr-wissen p { margin: .4rem 0; font-size: .86rem; line-height: 1.55; }
.fr-wissen ul { margin: .4rem 0 .8rem; padding-left: 1.2rem; }
.fr-wissen li { margin-bottom: .35rem; font-size: .86rem; line-height: 1.5; }
.fr-wissen b { color: var(--navy); }

/* Die zweite Spalte der Frühstart-Rechnung steht leer, solange nichts eigenes
   eingezahlt wird — sie bleibt trotzdem stehen, damit die erste nicht über die
   ganze Breite läuft und der Regler ins Leere zu zeigen scheint. */
.fr-leer { background: none; border-style: dashed; }
.fr-leer .fr-titel { color: var(--gedaempft); }

/* Angekündigt, aber ohne veröffentlichte Konditionen — die Marke warnt, sie
   wirbt nicht: Bernstein statt des Himmelblaus der Bestandsmarke. */
.tarif-marke-offen {
  background: var(--warnung-rand, #b45309); color: #fff; border-color: transparent;
}
/* Das Fenster selbst bekommt keinen Fokusring — es ist der Fokusträger, nicht
   ein Bedienelement. */
.faktor-dialog:focus { outline: none; }

/* === Werkzeugwechsel ====================================================== */
/* Der Wechsler sitzt an der Marke. Er sieht nicht aus wie ein Knopf, solange
   niemand hinsieht — erst beim Überfahren zeigt er, dass er einer ist. Eine
   dauerhaft umrandete Marke wäre lauter als das, was sie leistet. */
.werkzeugwechsel { position: relative; }
.marke-knopf {
  display: flex; align-items: baseline; gap: .75rem;
  font: inherit; color: inherit; cursor: pointer;
  background: none; border: 1px solid transparent; border-radius: 8px;
  padding: .25rem .5rem; margin: -.25rem -.5rem;
  transition: background .18s cubic-bezier(.2, .8, .3, 1), border-color .18s cubic-bezier(.2, .8, .3, 1);
}
.marke-knopf:hover, .marke-knopf[aria-expanded="true"] {
  background: var(--kopf-still-bg); border-color: var(--kopf-still-rand);
}
.marke-pfeil {
  font-size: .7rem; opacity: .6; align-self: center;
  transition: transform .18s cubic-bezier(.2, .8, .3, 1);
}
.marke-knopf[aria-expanded="true"] .marke-pfeil { transform: rotate(180deg); }

.werkzeugmenue {
  position: absolute; top: calc(100% + .45rem); left: 0; z-index: 40;
  min-width: 22rem; padding: .35rem;
  background: var(--weiss); color: var(--text);
  border: 1px solid var(--linie); border-radius: var(--radius);
  box-shadow: 0 12px 32px rgb(0 0 0 / .18);
  animation: menue-auf .18s cubic-bezier(.2, .8, .3, 1);
}
@keyframes menue-auf {
  from { opacity: 0; transform: translateY(-4px) scale(.98); }
  to   { opacity: 1; transform: none; }
}
.werkzeug-eintrag {
  display: flex; align-items: flex-start; gap: .7rem; width: 100%;
  padding: .6rem .7rem; text-align: left; cursor: pointer;
  background: none; border: 0; border-radius: 8px; font: inherit; color: inherit;
}
.werkzeug-eintrag:hover { background: var(--flaeche); }
.werkzeug-eintrag:active { transform: scale(.985); }
.werkzeug-aktiv { background: var(--flaeche); }
.werkzeug-zeichen { font-size: 1.2rem; line-height: 1.3; }
.werkzeug-text { display: flex; flex-direction: column; gap: .1rem; min-width: 0; }
.werkzeug-name { font-weight: 600; color: var(--navy); }
.werkzeug-zweck { font-size: .8rem; color: var(--gedaempft); line-height: 1.4; }
.werkzeug-haken { margin-left: auto; color: var(--himmelblau); font-weight: 700; }

/* Startbild. Es steht statt einer Anwendung da, nicht über ihr — wer zum
   ersten Mal öffnet, soll nicht raten, welches der beiden Werkzeuge er
   gerade sieht. */
.werkzeugwahl { max-width: 46rem; margin: 3rem auto; text-align: center; }
.werkzeugwahl-titel { font-size: 1.8rem; margin-bottom: .4rem; }
.werkzeugwahl-unter { color: var(--gedaempft); margin-bottom: 2rem; }
.werkzeugwahl-karten {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 1rem;
}
.werkzeugwahl-karte {
  display: flex; flex-direction: column; align-items: flex-start; gap: .35rem;
  padding: 1.4rem; text-align: left; cursor: pointer; font: inherit; color: inherit;
  background: var(--weiss); border: 1px solid var(--linie);
  border-left: 4px solid var(--himmelblau); border-radius: var(--radius);
  transition: transform .18s cubic-bezier(.2, .8, .3, 1),
              box-shadow .18s cubic-bezier(.2, .8, .3, 1);
}
.werkzeugwahl-karte:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgb(0 0 0 / .10); }
.werkzeugwahl-karte:active { transform: scale(.985); }
.werkzeugwahl-zeichen { font-size: 1.8rem; }
.werkzeugwahl-name { font-weight: 700; color: var(--navy); font-size: 1.05rem; }
.werkzeugwahl-zweck { font-size: .85rem; color: var(--gedaempft); line-height: 1.45; }

@media (max-width: 720px) {
  .werkzeugmenue { min-width: min(22rem, calc(100vw - 2rem)); }
}

/* Wer Bewegung abbestellt hat, bekommt den Zustand ohne den Weg dorthin —
   die Karten und das Menü erscheinen, sie wachsen nur nicht. */
@media (prefers-reduced-motion: reduce) {
  .werkzeugmenue { animation: none; }
  .werkzeugwahl-karte, .marke-knopf, .marke-pfeil, .depot-kurve { transition: none; }
  .werkzeugwahl-karte:hover { transform: none; }
}

/* === AV-Analyse ========================================================== */

/* Vertragsart als zwei Karten statt eines Auswahlfelds: Die Wahl ändert alles
   Weitere, sie soll nicht in einer Klappliste versteckt sein. */
.an-art { display: grid; gap: .4rem; margin-bottom: 1.1rem; }
.an-artknopf {
  display: flex; flex-direction: column; gap: .15rem; text-align: left;
  padding: .6rem .75rem; cursor: pointer; font: inherit; color: inherit;
  background: var(--weiss); border: 1px solid var(--linie);
  border-left: 3px solid transparent; border-radius: var(--radius);
  transition: border-color .18s cubic-bezier(.2, .8, .3, 1);
}
.an-artknopf:hover { background: var(--flaeche); }
.an-artknopf:active { transform: scale(.99); }
.an-artknopf-an { border-left-color: var(--himmelblau); }
.an-artname { font-weight: 600; color: var(--navy); font-size: .88rem; }
.an-artzweck { font-size: .74rem; color: var(--gedaempft); line-height: 1.4; }

/* --- Fondsliste ----------------------------------------------------------
   Eine Zeile je Fonds. Vorher stand hier ein Formular je Fonds — bei fünf
   Positionen zwanzig Eingabefelder, in denen die Liste selbst unterging. Die
   Zeile trägt jetzt, was man beim Überfliegen braucht; alles Weitere steht ein
   Fenster tiefer. */
.an-liste { display: flex; flex-direction: column; gap: .3rem; margin-bottom: 1rem; }
.an-zeile {
  background: var(--weiss); border: 1px solid var(--linie);
  border-radius: var(--radius); overflow: hidden;
}
.an-zeile-ohne { border-style: dashed; }
.an-zeile-haupt {
  display: flex; align-items: flex-start; gap: .5rem; width: 100%;
  padding: .55rem .65rem .35rem; text-align: left; cursor: pointer;
  background: none; border: 0; font: inherit; color: inherit;
}
.an-zeile-haupt:hover { background: var(--flaeche); }
.an-zeile-haupt:active { transform: scale(.995); }
.an-zeile-text { display: flex; flex-direction: column; gap: .1rem; min-width: 0; flex: 1; }
.an-zeile-name {
  font-size: .82rem; font-weight: 600; color: var(--navy); line-height: 1.3;
  /* Zwei Zeilen, dann Auslassungspunkte: „iShares Core MSCI World UCITS ETF
     USD (Acc) Distributing" darf die Zeile nicht dreizeilig machen. */
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden;
}
.an-zeile-unten { display: flex; gap: .4rem; align-items: baseline; font-size: .72rem; }
.an-quote { font-weight: 600; color: var(--himmelblau); }
.an-kursstand { color: var(--gedaempft); }
.an-kursfehlt { color: var(--warnung); font-weight: 600; }
.an-zeile-wert { font-size: .8rem; font-weight: 600; color: var(--navy); white-space: nowrap; }
.an-punkt {
  display: inline-block; width: .55rem; height: .55rem; border-radius: 50%;
  flex: 0 0 auto; margin-top: .25rem; margin-right: .3rem;
}
.an-zeile-haupt .an-punkt { margin-right: 0; }

.an-zeile-werkzeuge {
  display: flex; align-items: center; justify-content: space-between;
  gap: .4rem; padding: 0 .65rem .45rem 1.7rem;
}
/* Die ISIN ist ein echter Link, kein Knopf — Mittelklick und „Adresse
   kopieren" sollen funktionieren. Sie sieht nur nicht nach einem aus, solange
   niemand hinsieht. */
.an-isin {
  font-size: .7rem; letter-spacing: .04em; color: var(--gedaempft);
  text-decoration: none; border-bottom: 1px dotted transparent;
}
.an-isin:hover { color: var(--himmelblau); border-bottom-color: currentColor; }
.an-extern { font-size: .65rem; margin-left: .15rem; opacity: .7; }
.an-weg {
  background: none; border: 0; font: inherit; font-size: 1rem; line-height: 1;
  color: var(--gedaempft); cursor: pointer; padding: 0 .2rem; border-radius: 4px;
}
.an-weg:hover { color: var(--fehler); }

/* --- Suche --------------------------------------------------------------- */
.an-treffer { display: flex; flex-direction: column; gap: .2rem; margin-bottom: 1.1rem; }
.an-treffer:empty { display: none; }
.an-treffer-zeile {
  display: flex; flex-direction: column; gap: .1rem; text-align: left;
  padding: .45rem .6rem; cursor: pointer; font: inherit; color: inherit;
  background: var(--weiss); border: 1px solid var(--linie); border-radius: var(--radius);
}
.an-treffer-zeile:hover { background: var(--flaeche); border-color: var(--himmelblau); }
.an-treffer-zeile:active { transform: scale(.99); }
.an-treffer-name { font-size: .8rem; font-weight: 600; color: var(--navy); line-height: 1.3; }
.an-treffer-zusatz { font-size: .7rem; color: var(--gedaempft); }

/* --- Kurvenschalter und Chips -------------------------------------------- */
.an-kurven { display: flex; flex-wrap: wrap; gap: .3rem; margin-bottom: 1.1rem; }
.an-kurve {
  display: inline-flex; align-items: center; font: inherit; font-size: .75rem;
  padding: .25rem .55rem; cursor: pointer; border-radius: 999px;
  background: var(--flaeche); border: 1px solid var(--linie); color: var(--gedaempft);
  transition: background .18s cubic-bezier(.2, .8, .3, 1), color .18s cubic-bezier(.2, .8, .3, 1);
}
.an-kurve .an-punkt { opacity: .3; margin-top: 0; }
.an-kurve-an { background: var(--weiss); color: var(--navy); font-weight: 600; }
.an-kurve-an .an-punkt { opacity: 1; }
.an-kurve:active { transform: scale(.97); }

.an-schnellwahl { display: flex; gap: .3rem; margin: -.6rem 0 1rem; }
.an-chip {
  flex: 1; font: inherit; font-size: .78rem; padding: .3rem 0; cursor: pointer;
  background: var(--flaeche); border: 1px solid var(--linie); border-radius: 6px;
  color: var(--gedaempft);
}
.an-chip-an { background: var(--akzent-fuell); border-color: var(--akzent-fuell);
  color: var(--auf-akzent); font-weight: 600; }
.an-chip:active { transform: scale(.97); }

.an-quelle .knopf { margin-bottom: .5rem; }
.an-csv { display: block; text-align: center; cursor: pointer; }
.an-kursstatus { margin-top: 1rem; padding-top: .8rem; border-top: 1px solid var(--linie); }

/* --- Tabellen ------------------------------------------------------------ */
.an-tabelle { font-size: .85rem; }
/* Zahlen dürfen nicht umbrechen — „21.034 €" auf zwei Zeilen liest sich als
   zwei Zahlen. Zu enge Tabellen laufen stattdessen in die Scrollhülle. */
.an-tabelle td, .an-tabelle tfoot th { white-space: nowrap; }
.an-tabelle td:first-child { white-space: normal; min-width: 11rem; }
.an-tabelle .text { text-align: left; white-space: normal; }
.an-tabelle .an-zahl { text-align: right; }
.an-tabelle .fussnote { font-size: .7rem; color: var(--gedaempft); font-weight: 400; }
.an-tabelle tfoot th { border-top: 2px solid var(--linie); color: var(--navy); }
.an-tabelle .gut { color: #1a7f4b; font-weight: 600; }
.an-tabelle .schlecht { color: var(--fehler); font-weight: 600; }
.an-hervor td { background: var(--flaeche); font-weight: 600; }
.an-liste-punkte { margin: .5rem 0 .8rem; padding-left: 1.2rem; }
.an-liste-punkte li { margin-bottom: .3rem; }

#anAusgabe .karte h4 { margin: 1.4rem 0 .5rem; font-size: .95rem; color: var(--navy); }
#anAusgabe .karte h4:first-child { margin-top: 0; }
#anAusgabe .karte ol { margin: .5rem 0 .8rem; padding-left: 1.3rem; }
#anAusgabe .karte ol li { margin-bottom: .3rem; }
.statuszeile.fehler { border-left-color: var(--fehler); color: var(--fehler); }
.statuszeile:empty { display: none; }

@media (max-width: 720px) {
  .an-zeile-werkzeuge { padding-left: .65rem; }
}

/* === Zwei Ansichten ====================================================== */
/* Was `nur-berater` trägt, verschwindet im Kundengespräch. Die Regel steht
   bewusst mit !important: Sie muss jede spätere Layoutregel schlagen, sonst
   steht ein Arbeitsmittel im Termin auf dem Bildschirm, obwohl der Schalter
   etwas anderes sagt. Rechtliche Hinweise tragen diese Klasse nie. */
[data-ansicht="kunde"] .nur-berater { display: none !important; }

.ansicht-schalter {
  display: flex; gap: 2px; padding: 2px; border-radius: 8px;
  background: var(--kopf-still-bg); border: 1px solid var(--kopf-still-rand);
}
.ansicht-knopf {
  font: inherit; font-size: .78rem; padding: .3rem .7rem; cursor: pointer;
  background: none; border: 0; border-radius: 6px; white-space: nowrap;
  color: color-mix(in srgb, var(--kopf-text) 70%, transparent);
  transition: background .18s cubic-bezier(.2, .8, .3, 1), color .18s cubic-bezier(.2, .8, .3, 1);
}
.ansicht-knopf:hover { color: var(--kopf-text); }
.ansicht-knopf-an {
  background: var(--kopf-text); color: var(--navy); font-weight: 600;
}
.ansicht-knopf:active { transform: scale(.97); }

@media (max-width: 720px) {
  .ansicht-knopf { font-size: .72rem; padding: .28rem .5rem; }
}
@media print { .ansicht-schalter { display: none !important; } }

/* Kontobereich — nur in der gehosteten Fassung sichtbar. */
.konto { display: flex; align-items: center; gap: .5rem; font-size: .8rem; }
.konto-name { color: color-mix(in srgb, var(--kopf-text) 80%, transparent); }
.konto-ab {
  font: inherit; font-size: .78rem; padding: .3rem .6rem; cursor: pointer;
  background: var(--kopf-still-bg); border: 1px solid var(--kopf-still-rand);
  border-radius: 6px; color: var(--kopf-text);
}
.konto-ab:hover { background: color-mix(in srgb, var(--kopf-text) 18%, transparent); }
@media print { .konto { display: none !important; } }

/* === Derselbe Beitrag, drei Ziele ======================================== */
.dz-modi {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
  gap: .4rem; margin-bottom: 1.1rem;
}
.dz-modus {
  display: flex; flex-direction: column; gap: .15rem; text-align: left;
  padding: .6rem .8rem; cursor: pointer; font: inherit; color: inherit;
  background: var(--weiss); border: 1px solid var(--linie);
  border-bottom: 3px solid transparent; border-radius: var(--radius);
  transition: border-color .18s cubic-bezier(.2, .8, .3, 1);
}
.dz-modus:hover { background: var(--flaeche); }
.dz-modus:active { transform: scale(.99); }
.dz-modus-an { border-bottom-color: var(--himmelblau); }
.dz-modusname { font-weight: 600; color: var(--navy); font-size: .9rem; }
.dz-moduszweck { font-size: .76rem; color: var(--gedaempft); line-height: 1.4; }

/* Der Kopf trägt die eine Zahl, um die es geht — und daneben, klein, die
   beiden, aus denen sie sich ergibt. */
.dz-kopf {
  display: flex; flex-wrap: wrap; align-items: stretch; gap: 1rem;
  margin: 1.2rem 0 .6rem;
}
/* Die eine Antwort, um die es geht — deshalb die oberste Materialstufe.
   Vorher stand hier `--flaeche`, also exakt die Farbe der Seite: Der Block war
   vorhanden und trat trotzdem nicht hervor. Hierarchie entsteht aus dem
   Material, nicht aus der Schriftgröße allein. */
.dz-gross {
  flex: 1 1 14rem; display: flex; flex-direction: column; gap: .15rem;
  padding: 1.05rem 1.25rem; border-radius: var(--radius);
  background: var(--ebene-2); color: var(--ebene-2-text);
  box-shadow: var(--schatten-2);
  /* Die Limette liegt als schmale Kante oben statt als Balken links: Auf Navy
     ist sie die einzige helle Marke, und oben trägt sie die ganze Breite. */
  border-top: 3px solid var(--limette);
}
.dz-gross .dz-label { color: var(--ebene-2-still); }
.dz-gross .dz-unter { color: var(--ebene-2-still); }
/* Große Zahlen brauchen NEGATIVE Laufweite — je größer die Schrift, desto
   weiter stehen die Ziffern optisch auseinander. Bei 2,3rem ist das der
   Unterschied zwischen „gesetzt" und „getippt". */
.dz-gross strong {
  font-size: clamp(1.9rem, 3.4vw, 2.4rem); line-height: 1.05;
  letter-spacing: -.022em; font-weight: 700;
  color: var(--ebene-2-text);
  font-variant-numeric: tabular-nums;
}
.dz-paar { flex: 1 1 16rem; display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.dz-paar > div {
  padding: .9rem 1rem; border-radius: var(--radius);
  background: var(--ebene-1); border: 1px solid var(--linie);
  box-shadow: var(--schatten-1);
}
.dz-paar strong {
  display: block; font-size: 1.3rem; color: var(--navy);
  letter-spacing: -.014em; font-variant-numeric: tabular-nums;
}
/* Kleine Versalien laufen zu eng — sie brauchen POSITIVE Laufweite, genau
   umgekehrt zu den großen Zahlen darüber. */
.dz-label { font-size: .72rem; color: var(--gedaempft); text-transform: uppercase;
            letter-spacing: .06em; font-weight: 600; }
.dz-unter { font-size: .78rem; color: var(--gedaempft); }
.dz-satz { font-size: .9rem; margin: 0 0 1.1rem; }
.dz-satz b { color: var(--navy); }
.fr-schalter-zeile { display: flex; align-items: center; gap: .5rem; font-size: .84rem; }

@media (max-width: 720px) { .dz-paar { grid-template-columns: 1fr; } }

/* === Vier Wege =========================================================== */
.vw-stufen { display: flex; flex-direction: column; gap: .25rem; margin-bottom: .8rem; }
.vw-stufe {
  display: flex; align-items: center; gap: .4rem; width: 100%; text-align: left;
  padding: .45rem .6rem; cursor: pointer; font: inherit; font-size: .84rem;
  background: var(--flaeche); border: 1px solid var(--linie);
  border-radius: var(--radius); color: var(--gedaempft);
  transition: background .18s cubic-bezier(.2, .8, .3, 1), color .18s cubic-bezier(.2, .8, .3, 1);
}
.vw-stufe .an-punkt { opacity: .3; margin-top: 0; }
.vw-stufe-an { background: var(--weiss); color: var(--navy); font-weight: 600; }
.vw-stufe-an .an-punkt { opacity: 1; }
.vw-stufe:active { transform: scale(.99); }
.vw-knoepfe { display: flex; gap: .4rem; margin-bottom: 1rem; }
.vw-knoepfe .knopf { flex: 1; }
.vw-legende { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .7rem; }
.vw-legende b { margin-left: .35rem; color: var(--navy); }

/* === Strukturrechner ===================================================== */
.st-tabelle { font-size: .8rem; }
.st-tabelle td, .st-tabelle th { padding: .35rem .45rem; }
.st-tabelle select { font-size: .78rem; padding: .2rem .3rem; max-width: 13rem; }
.st-namefeld { font-size: .8rem; padding: .2rem .35rem; width: 8.5rem; }
.st-zahl { font-size: .8rem; padding: .2rem .35rem; width: 6rem; text-align: right; }
.st-name { white-space: nowrap; }
.st-ast { color: var(--gedaempft); margin-right: .2rem; }
.st-schalter { display: flex; gap: .4rem; font-size: .72rem; white-space: nowrap; }
.st-schalter label { display: inline-flex; align-items: center; gap: .15rem; cursor: pointer; }
/* Wer durch einen Datenfehler an keinem Ast hängt, wird gezeigt statt versteckt. */
.st-verwaist td { background: color-mix(in srgb, var(--warnung) 8%, transparent); }
.st-daten { display: flex; flex-direction: column; gap: .35rem; }
.st-import { display: block; text-align: center; cursor: pointer; }

/* === AVD-Umsatzplanung =================================================== */
.up-schmal { width: 4.5rem; }
.up-datum { width: 7rem; }
.up-riester { display: flex; gap: .25rem; align-items: center; }
.up-riester select { font-size: .74rem; padding: .2rem .25rem; }


/* === Kopfleiste: Material statt Farbfläche ================================ */
/* Die Leiste liegt als eigene Ebene über dem Inhalt — aber in der VOLLEN
   Markenfarbe. Ein durchscheinendes Navy war ein aufgehelltes Navy, und eine
   Hausfarbe, die je nach Untergrund anders aussieht, ist keine Hausfarbe mehr.
   Die Tiefe kommt deshalb aus Kante und Schatten statt aus Transparenz. */
.kopf {
  position: sticky; top: 0; z-index: 30;
  background: var(--kopf-bg);
  border-bottom: 1px solid rgb(255 255 255 / .10);
  /* Der Schatten erscheint ERST, wenn Inhalt darunter läuft. Eine Kante, die
     immer da ist, behauptet eine Überlappung, die es am Seitenanfang nicht
     gibt — und nimmt der Leiste die Ruhe. */
  box-shadow: none;
  transition: box-shadow var(--zeit-mittel) var(--kurve);
}
:root.gescrollt .kopf {
  box-shadow: 0 1px 0 rgb(0 0 0 / .08), 0 8px 24px rgb(0 50 91 / .16);
}
.kopf-knopf {
  font: inherit; font-size: .78rem; padding: .35rem .7rem; cursor: pointer;
  background: var(--kopf-still-bg); border: 1px solid var(--kopf-still-rand);
  border-radius: 6px; color: var(--kopf-text); white-space: nowrap;
  transition: background var(--zeit-kurz) var(--kurve);
}
.kopf-knopf:hover { background: color-mix(in srgb, var(--kopf-text) 20%, transparent); }
.kopf-knopf:active { transform: scale(.97); }

/* Der stille Hinweis auf die Berateransicht. Er steht nur da, wenn die
   Ansicht vom Normalfall abweicht — im Kundengespräch braucht niemand ein
   Etikett für den Normalzustand. */
.ansicht-merker {
  font-size: .68rem; letter-spacing: .06em; text-transform: uppercase;
  font-weight: 600; padding: .12rem .4rem; border-radius: 999px;
  background: var(--limette); color: var(--auf-limette); align-self: center;
}

/* === Ansichtsumschalter im Menü ========================================== */
.werkzeugmenue-trenner {
  height: 1px; background: var(--linie); margin: .35rem .25rem;
}
.werkzeugmenue-abschnitt { padding: .1rem .35rem .35rem; }
.werkzeugmenue-titel {
  display: block; font-size: .68rem; letter-spacing: .08em; font-weight: 700;
  text-transform: uppercase; color: var(--gedaempft); padding: .2rem .35rem .3rem;
}
.ansicht-schalter { display: flex; flex-direction: column; gap: .15rem; }
.ansicht-knopf {
  display: flex; flex-direction: column; gap: .05rem; width: 100%; text-align: left;
  font: inherit; padding: .45rem .6rem; cursor: pointer; border-radius: 8px;
  background: none; border: 1px solid transparent; color: var(--text);
  transition: background var(--zeit-kurz) var(--kurve),
              border-color var(--zeit-kurz) var(--kurve);
}
.ansicht-knopf:hover { background: var(--flaeche); }
.ansicht-knopf:active { transform: scale(.985); }
.ansicht-knopf-an { background: var(--flaeche); border-color: var(--himmelblau); }
.ansicht-name { font-size: .84rem; font-weight: 600; color: var(--navy); }
.ansicht-zweck { font-size: .72rem; color: var(--gedaempft); line-height: 1.35; }

/* Die Aussage zur Stufe — sie fasst das Diagramm in einem Satz zusammen und
   trägt dessen Farbe. Ein Balken links statt einer Umrandung: Er ordnet die
   Aussage der Kurve zu, ohne einen zweiten Rahmen ins Bild zu bringen. */
.vw-aussage {
  display: flex; gap: .9rem; align-items: flex-start;
  background: var(--ebene-1); border: 1px solid var(--linie);
  border-radius: var(--radius); padding: .95rem 1.15rem;
  margin-bottom: 1.25rem; box-shadow: var(--schatten-1);
}
.vw-aussage-marke {
  flex: 0 0 4px; align-self: stretch; border-radius: 2px;
  background: var(--vw-farbe, var(--himmelblau));
}
.vw-aussage p { margin: 0; font-size: .95rem; line-height: 1.55; }
.vw-aussage b { color: var(--navy); }

/* === Geführte Anleitung ================================================== */
/* Vier Flächen um das erklärte Element herum statt einer Fläche mit Loch: So
   bleibt das Element völlig unberührt — kein eigener z-index, kein Hintergrund,
   keine Kante durch einen Filter. Es sieht aus wie sonst, und genau das soll
   der Rundgang zeigen. */
.rg { position: fixed; inset: 0; z-index: 3000; }
.rg-sperre { position: fixed; inset: 0; background: transparent; }
/* `all` war zu viel: Es übergeht auch Eigenschaften, die hier in jedem Bild
   neu gesetzt werden, und macht aus einer Messung eine Verfolgung. Benannt
   wird deshalb genau das, was sich zwischen zwei SCHRITTEN ändert. */
.rg-schatten {
  position: fixed; background: rgb(0 20 38 / .58); pointer-events: none;
  transition: left var(--zeit-mittel) var(--kurve), top var(--zeit-mittel) var(--kurve),
              width var(--zeit-mittel) var(--kurve), height var(--zeit-mittel) var(--kurve);
}
.rg-rahmen {
  position: fixed; pointer-events: none; border-radius: 12px;
  box-shadow: 0 0 0 2px var(--limette), 0 8px 28px rgb(0 0 0 / .28);
  transition: left var(--zeit-mittel) var(--kurve), top var(--zeit-mittel) var(--kurve),
              width var(--zeit-mittel) var(--kurve), height var(--zeit-mittel) var(--kurve),
              opacity var(--zeit-kurz) var(--kurve);
}
/* Während die Seite zum nächsten Ziel gleitet, wird jedes Bild nachgemessen.
   Ein Übergang würde dabei in jedem Bild neu angesetzt — der Ausschnitt liefe
   dem Element hinterher, statt darauf zu liegen. */
.rg-folgt .rg-schatten, .rg-folgt .rg-rahmen, .rg-folgt .rg-blase {
  transition: none;
}
.rg-blase {
  position: fixed; width: min(24rem, calc(100vw - 24px));
  background: var(--ebene-1); color: var(--text);
  border: 1px solid var(--linie); border-radius: var(--radius);
  box-shadow: var(--schatten-schwebend); padding: 1rem 1.15rem 1.05rem;
  /* Die Lage kommt aus `translate`, nicht aus `left`/`top`: Nur so übernimmt
     der Compositor die Bewegung, und während des Bildlaufs wird sie in JEDEM
     Bild neu gesetzt.

     `translate` und `scale` sind eigene Eigenschaften, nicht Teile eines
     gemeinsamen `transform`. Deshalb können sich Lage (hier) und Ankunft
     (im Keyframe) nicht gegenseitig überschreiben — mit `transform` für
     beides ginge das eine beim anderen verloren. */
  left: 0; top: 0;
  transition: translate var(--zeit-mittel) var(--kurve);
  /* Materialisieren statt einblenden: Maßstab und Deckkraft zusammen lesen
     sich als eine Fläche, die ankommt — nicht als ein Bild, das erscheint. */
  animation: rg-kommt var(--zeit-mittel) var(--kurve);
}
@keyframes rg-kommt {
  from { opacity: 0; scale: .94; }
  to   { opacity: 1; scale: 1; }
}
.rg-geht { animation: rg-weg var(--zeit-kurz) var(--kurve-raus) forwards; }
@keyframes rg-weg { to { opacity: 0; } }
.rg-zaehler {
  font-size: .68rem; letter-spacing: .08em; text-transform: uppercase;
  font-weight: 700; color: var(--himmelblau); margin-bottom: .3rem;
}
.rg-titel { margin: 0 0 .35rem; font-size: 1.02rem; color: var(--navy);
            letter-spacing: -.01em; }
.rg-text { margin: 0 0 .9rem; font-size: .88rem; line-height: 1.55; color: var(--text); }
.rg-text b { color: var(--navy); }
.rg-knoepfe { display: flex; align-items: center; gap: .4rem; }
.rg-luecke { flex: 1; }
.rg-knoepfe .knopf { font-size: .82rem; padding: .4rem .8rem; }
.rg-knoepfe .knopf:disabled { opacity: .4; cursor: default; }

@media (prefers-reduced-motion: reduce) {
  .rg-schatten, .rg-rahmen, .rg-blase { transition: none; animation: none; }
  .rg-geht { animation: none; }
}
@media (prefers-contrast: more) {
  .rg-schatten { background: rgb(0 20 38 / .75); }
  .rg-blase { border: 2px solid var(--navy); }
}

/* Die Begrüßung. Sie steht ÜBER der Frage, weil sie die Antwort auf eine
   frühere ist: „bin ich hier richtig?" — und danach erst kommt „womit
   arbeite ich?". Große Schrift braucht negative Laufweite. */
.werkzeugwahl-gruss {
  font-size: clamp(1.05rem, 2.2vw, 1.3rem); color: var(--gedaempft);
  margin: 0 0 .15rem; letter-spacing: -.008em; font-weight: 500;
}
.werkzeugwahl-name {
  display: flex; align-items: center; justify-content: center; gap: .5rem;
  margin: 1.6rem 0 0; font-size: .82rem; color: var(--gedaempft);
}
.werkzeugwahl-name input {
  font: inherit; font-size: .85rem; padding: .35rem .6rem; width: 10rem;
  border: 1px solid var(--linie); border-radius: 8px;
  background: var(--ebene-1); color: var(--text); text-align: center;
}
.werkzeugwahl-name input:focus { outline: 2px solid var(--himmelblau); outline-offset: -1px; }

/* === Rückmeldung auf Druck ===============================================
   Alles, was man drücken kann, antwortet auf den Druck — nicht erst auf das
   Loslassen. Die neuen Werkzeuge waren hier lückenhaft; eine Sammelregel
   fängt auch das ab, was später dazukommt. */
.an-treffer-zeile, .an-zeile-haupt, .an-weg, .an-kurve, .an-chip, .an-artknopf,
.dz-modus, .vw-stufe, .werkzeug-eintrag, .werkzeugwahl-karte, .ansicht-knopf,
.kopf-knopf, .rg-knoepfe .knopf, .st-namefeld, .depot-laden {
  transition: transform var(--zeit-tipp) ease-out,
              background-color var(--zeit-kurz) var(--kurve),
              border-color var(--zeit-kurz) var(--kurve),
              color var(--zeit-kurz) var(--kurve);
}
.an-treffer-zeile:active, .an-zeile-haupt:active, .an-weg:active, .an-kurve:active,
.an-chip:active, .an-artknopf:active, .dz-modus:active, .vw-stufe:active,
.werkzeug-eintrag:active, .werkzeugwahl-karte:active, .ansicht-knopf:active,
.kopf-knopf:active, .rg-knoepfe .knopf:active {
  transform: scale(.97);
}

/* === Weniger Bewegung, weniger Transparenz, mehr Kontrast ================ */
@media (prefers-reduced-motion: reduce) {
  .an-treffer-zeile, .an-zeile-haupt, .an-kurve, .an-chip, .dz-modus, .vw-stufe,
  .werkzeug-eintrag, .werkzeugwahl-karte, .ansicht-knopf, .kopf-knopf, .kopf {
    transition: none;
  }
  .werkzeugwahl-karte:hover { transform: none; }
  /* Der Druck bleibt — er ist keine Bewegung durch den Raum, sondern eine
     Bestätigung, dass der Finger angekommen ist. */
}
@media (prefers-reduced-transparency: reduce) {
  .rg-schatten { background: rgb(0 20 38 / .82); }
  .werkzeugmenue { backdrop-filter: none; background: var(--ebene-1); }
}
@media (prefers-contrast: more) {
  .dz-gross { border: 2px solid var(--limette); }
  .kachel, .karte, .diagramm { border-color: var(--navy); }
  .ansicht-knopf-an { border-width: 2px; }
  .vw-aussage { border-color: var(--navy); }
}
.kopf-knopf:disabled { opacity: .45; cursor: default; }
.kopf-knopf:disabled:active { transform: none; }

/* === AVD-Rechner: eine Spalte ============================================ */
/* Bewusst schmaler als die volle Seitenbreite: Sieben Regler über 1.800 px
   sind eine Landebahn, keine Eingabe. Eine Textspalte, in der das Auge den
   Zeilenanfang wiederfindet, ist auch für Formulare die richtige Breite. */
.ar-bahn { max-width: 90rem; margin: 0 auto; }

/* Zwei Spalten wie im Vorbild: eine schmale Eingabespalte und eine breite
   Bühne. Die 22rem sind kein Zufall — ein Regler mit Beschriftung links und
   Wert rechts braucht sie, und mehr würde die Bühne unnötig verkleinern. */
.ar-zwei {
  display: grid; gap: 1.25rem;
  grid-template-columns: minmax(20rem, 22rem) minmax(0, 1fr);
  align-items: start;
}
.ar-panel {
  background: var(--ebene-1); border: 1px solid var(--linie);
  border-radius: var(--radius); box-shadow: var(--schatten-1);
  padding: .9rem 1rem 1rem;
  position: sticky; top: 4.6rem; max-height: calc(100vh - 5.6rem);
  overflow-y: auto;
}
.ar-panelkopf {
  display: flex; align-items: center; justify-content: space-between;
  gap: .8rem; padding: .2rem 0 .5rem;
}
.ar-zurueck {
  font: inherit; font-size: .74rem; padding: .22rem .5rem; cursor: pointer;
  background: none; border: 1px solid var(--linie); border-radius: 6px;
  color: var(--gedaempft); white-space: nowrap;
}
.ar-zurueck:hover { color: var(--navy); border-color: var(--himmelblau); }
.ar-zurueck:active { transform: scale(.97); }

/* Schnellwahl unter einem Regler — die drei Werte, die im Gespräch fallen. */
.ar-chips { display: flex; gap: .25rem; margin-top: .4rem; flex-wrap: wrap; }
.ar-chip {
  font: inherit; font-size: .74rem; padding: .22rem .5rem; cursor: pointer;
  background: var(--flaeche); border: 1px solid var(--linie); border-radius: 6px;
  color: var(--gedaempft);
  transition: background var(--zeit-kurz) var(--kurve), color var(--zeit-kurz) var(--kurve);
}
.ar-chip:hover { color: var(--navy); }
.ar-chip-an { background: var(--betont-fuell); border-color: var(--betont-fuell);
  color: var(--auf-betont); font-weight: 600; }
.ar-chip:active { transform: scale(.96); }

/* Zwei Möglichkeiten nebeneinander statt eines Häkchens: Man sieht, wogegen
   man sich entscheidet. */
.ar-wahl { display: grid; grid-template-columns: 1fr 1fr; gap: .25rem; }
.ar-wahlknopf {
  font: inherit; font-size: .78rem; padding: .4rem .5rem; cursor: pointer;
  background: var(--flaeche); border: 1px solid var(--linie); border-radius: 7px;
  color: var(--gedaempft); text-align: center; line-height: 1.25;
  transition: background var(--zeit-kurz) var(--kurve), color var(--zeit-kurz) var(--kurve);
}
.ar-wahl-an { background: var(--betont-fuell); border-color: var(--betont-fuell);
  color: var(--auf-betont); font-weight: 600; }
.ar-wahlknopf:active { transform: scale(.98); }

.ar-legal { margin-top: 1rem; border-top: 1px solid var(--linie); padding-top: .7rem; }
.ar-legal summary {
  cursor: pointer; font-size: .78rem; color: var(--gedaempft); font-weight: 600;
}
.ar-legal .ad-fuss { columns: 1; border-top: 0; margin-top: .5rem; padding-top: 0; }

.ar-pdfkarte {
  margin-top: 1rem; padding-top: .9rem; border-top: 1px solid var(--linie);
}
.ar-pdfkarte p { font-size: .76rem; color: var(--gedaempft); margin: .25rem 0 .6rem; }

@media (max-width: 1100px) {
  .ar-zwei { grid-template-columns: 1fr; }
  .ar-panel { position: static; max-height: none; }
}

.ar-kicker {
  font-size: .72rem; letter-spacing: .1em; text-transform: uppercase;
  font-weight: 700; color: var(--akzent-text); margin: 0 0 .1rem;
}
.ar-titel {
  font-size: clamp(1.4rem, 3vw, 1.9rem); color: var(--navy); margin: 0 0 1.1rem;
  letter-spacing: -.018em; line-height: 1.15;
}

/* Die Modusleiste: drei gleich breite Segmente in einer Schiene. Ein
   Segmentregler statt dreier Knöpfe — er zeigt, dass genau eines gilt. */
.ar-modi {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 3px;
  padding: 3px; margin-bottom: .8rem;
  background: var(--flaeche); border: 1px solid var(--linie);
  border-radius: 12px;
}
.ar-modus {
  display: flex; flex-direction: column; align-items: center; gap: .05rem;
  padding: .45rem .3rem; cursor: pointer; font: inherit; text-align: center;
  background: none; border: 0; border-radius: 9px; color: var(--gedaempft);
  transition: background var(--zeit-kurz) var(--kurve),
              color var(--zeit-kurz) var(--kurve),
              box-shadow var(--zeit-kurz) var(--kurve);
}
.ar-modus:hover { color: var(--navy); }
.ar-modus-an {
  background: var(--ebene-1); color: var(--navy);
  box-shadow: var(--schatten-1);
}
.ar-modus:active { transform: scale(.985); }
.ar-modusname { font-weight: 600; font-size: .8rem; }
.ar-moduszweck { font-size: .66rem; line-height: 1.25; }

.ar-angaben-kopf {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; margin-bottom: 1.1rem;
}
.ar-angaben-kopf h3 { margin: 0; }
.ar-zurueck { font-size: .78rem; padding: .3rem .65rem; }

/* --- Regler --------------------------------------------------------------- */
.ar-regler { padding: .85rem 0; border-top: 1px solid var(--linie); }
.ar-regler:first-of-type { border-top: 0; padding-top: 0; }
.ar-kopf {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 1rem; margin-bottom: .5rem;
}
.ar-kopf label { font-size: .92rem; font-weight: 500; color: var(--text); }
.ar-wert { display: inline-flex; align-items: baseline; gap: .25rem; }
.ar-wert input {
  font: inherit; font-size: 1.15rem; font-weight: 700; color: var(--navy);
  text-align: right; width: 5.5rem; padding: .1rem .2rem;
  background: none; border: 0; border-bottom: 1px solid transparent;
  letter-spacing: -.014em; font-variant-numeric: tabular-nums;
  transition: border-color var(--zeit-kurz) var(--kurve);
}
.ar-wert input.ar-breit { width: 9rem; font-size: .95rem; font-weight: 600; }
.ar-wert input:hover { border-bottom-color: var(--linie); }
.ar-wert input:focus { outline: none; border-bottom-color: var(--himmelblau); }
.ar-einheit { font-size: .8rem; color: var(--akzent-text); font-weight: 600; }
.ar-fuss { font-size: .76rem; color: var(--gedaempft); margin-top: .45rem; line-height: 1.4; }
.ar-fuss strong { color: var(--navy); }

/* Der Schieber. Die Spur ist dünn, der Griff groß genug zum Treffen — und er
   antwortet auf den Druck, nicht erst auf das Loslassen. */
.ar-schieber {
  -webkit-appearance: none; appearance: none; width: 100%; height: 22px;
  background: none; cursor: pointer; display: block;
}
.ar-schieber::-webkit-slider-runnable-track {
  height: 4px; border-radius: 2px; background: var(--linie);
}
.ar-schieber::-moz-range-track { height: 4px; border-radius: 2px; background: var(--linie); }
.ar-schieber::-webkit-slider-thumb {
  -webkit-appearance: none; appearance: none;
  width: 18px; height: 18px; margin-top: -7px; border-radius: 50%;
  background: var(--navy); border: 2px solid var(--weiss);
  box-shadow: 0 1px 4px rgb(0 50 91 / .35);
  transition: transform var(--zeit-tipp) ease-out;
}
.ar-schieber::-moz-range-thumb {
  width: 18px; height: 18px; border-radius: 50%;
  background: var(--navy); border: 2px solid var(--weiss);
  box-shadow: 0 1px 4px rgb(0 50 91 / .35);
}
.ar-schieber:active::-webkit-slider-thumb { transform: scale(1.18); }
.ar-schieber:focus-visible::-webkit-slider-thumb { box-shadow: 0 0 0 4px rgb(0 158 227 / .35); }

.ar-schalter {
  display: flex; align-items: flex-start; gap: .55rem; padding: .85rem 0 0;
  border-top: 1px solid var(--linie); font-size: .9rem; cursor: pointer;
}
.ar-schalter .ar-fuss { margin-top: .15rem; display: block; }

@media (max-width: 640px) {
  .ar-modi { grid-template-columns: 1fr; }
  .ar-moduszweck { font-size: .72rem; }
}

/* === AVD-Rechner: der Ergebnisbogen ======================================
   Vier Bänder statt eines Stapels. Vorher stand hier Kachel unter Kachel,
   jede gleich laut — auf dem Bildschirm gerade noch lesbar, gedruckt nicht
   mehr. Jetzt beantwortet jedes Band eine Frage, und dieselbe Gliederung
   trägt Bildschirm und Papier. */
.ad-bogen {
  background: var(--ebene-1); border: 1px solid var(--linie);
  border-radius: var(--radius); box-shadow: var(--schatten-1);
  padding: 1.4rem 1.5rem; margin: 1.4rem 0;
}
.ad-band { padding: 1.1rem 0; border-top: 1px solid var(--linie); }
.ad-band:first-of-type { border-top: 0; padding-top: 0; }

/* Der Briefkopf gehört aufs Papier, nicht auf den Bildschirm — dort steht er
   schon in der Kopfleiste und über den Reglern. */
.ad-druckkopf { display: none; }

/* --- Band 1: was die Förderung bringt ----------------------------------- */
.ad-band-1 {
  display: grid; gap: 1.4rem;
  grid-template-columns: minmax(13rem, 1fr) minmax(11rem, 1fr) minmax(15rem, 1.2fr);
  align-items: start;
}
.ad-vorsprung {
  background: var(--ebene-2); color: var(--ebene-2-text);
  border-radius: var(--radius); padding: 1.1rem 1.25rem;
  box-shadow: var(--schatten-2); display: flex; flex-direction: column; gap: .1rem;
}
.ad-vorsprung strong {
  font-size: clamp(1.8rem, 3.2vw, 2.3rem); line-height: 1.05;
  letter-spacing: -.024em; color: var(--limette);
  font-variant-numeric: tabular-nums;
  /* Eine Haarlinie zwischen Beschriftung und Zahl — sie trennt die Frage von
     der Antwort, ohne einen zweiten Rahmen einzuziehen. */
  border-top: 1px solid rgb(255 255 255 / .25); padding-top: .45rem; margin-top: .35rem;
}
.ad-vorsprung .ad-label, .ad-vorsprung .ad-unter { color: var(--ebene-2-still); }
.ad-label {
  font-size: .7rem; letter-spacing: .08em; text-transform: uppercase;
  font-weight: 700; color: var(--gedaempft);
}
.ad-unter { font-size: .8rem; }

.ad-gegenueber { display: flex; flex-direction: column; gap: .8rem; }
.ad-gegenueber > div { border-bottom: 1px solid var(--linie); padding-bottom: .6rem; }
.ad-gegenueber strong {
  display: block; font-size: 1.5rem; color: var(--navy); letter-spacing: -.018em;
  font-variant-numeric: tabular-nums; margin-top: .15rem;
}

.ad-bausteine { display: flex; flex-direction: column; gap: .1rem; }
.ad-bausteine .ad-label { margin-bottom: .35rem; }
/* Auch das, was NICHT greift, steht da — ausgegraut. Es wegzulassen wäre
   bequemer und holte die Frage „gibt es da nicht noch was?" ins Gespräch
   zurück; ausgegraut ist sie beantwortet, bevor sie gestellt wird. */
.ad-baustein {
  display: grid; grid-template-columns: auto 1fr auto; align-items: baseline;
  gap: .5rem; padding: .28rem 0; font-size: .85rem; color: var(--gedaempft);
  border-bottom: 1px solid var(--linie);
}
.ad-baustein:last-child { border-bottom: 0; }
.ad-baustein .ad-punkt { background: var(--linie); }
.ad-baustein-wenn { font-size: .78rem; font-style: italic; }
.ad-baustein-an { color: var(--navy); font-weight: 600; }
.ad-baustein-an .ad-punkt { background: var(--himmelblau); }
.ad-baustein-an .ad-baustein-wenn { font-style: normal; color: var(--text); }
.ad-punkt {
  display: inline-block; width: .5rem; height: .5rem; border-radius: 2px;
  flex: 0 0 auto;
}

.ad-satz {
  font-size: 1rem; line-height: 1.55; margin: .2rem 0 0;
  padding: .9rem 0 0; border-top: 1px solid var(--linie);
}
.ad-satz b { color: var(--navy); }
.ad-gruen { color: var(--vorsprung); }

/* --- Band 2: die Bestandteile ------------------------------------------- */
.ad-posten {
  display: grid; gap: 1.2rem;
  grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
}
.ad-posten-teil { display: flex; flex-direction: column; gap: .2rem; }
.ad-posten-teil strong {
  font-size: 1.45rem; color: var(--navy); letter-spacing: -.018em;
  font-variant-numeric: tabular-nums;
}
.ad-posten-teil .ad-label { display: flex; align-items: center; gap: .4rem; }

/* --- Band 3: Verlauf und Vergleich -------------------------------------- */
/* Das Diagramm über die volle Zeile, der Vergleich darunter.
   Vorher standen beide nebeneinander — auf einer Bühne von 1.000 px ging das,
   darunter wurde die Kurve zum Streifen. Ein Wachstumsverlauf über vierzig
   Jahre braucht Breite; die zwei Vergleichsbalken brauchen sie nicht. */
.ad-verlauf { display: block; }
.ad-verlauf .ad-diagramm { margin-bottom: 1.1rem; }
.ad-vergleich-reihe {
  display: grid; gap: 1.1rem 2rem;
  grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
  align-items: end;
}
.ad-verlauf h3 { margin: 0 0 .5rem; font-size: .98rem; color: var(--navy); }
.ad-vergleich { display: flex; flex-direction: column; gap: .9rem; }
.ad-balken { display: flex; flex-direction: column; gap: .3rem; }
.ad-balken-name { font-size: .84rem; color: var(--text); }
.ad-balken-spur {
  display: block; height: 10px; border-radius: 5px; background: var(--flaeche);
  overflow: hidden;
}
.ad-balken-fuell {
  display: block; height: 100%; border-radius: 5px;
  transition: width var(--zeit-lang) var(--kurve);
}
.ad-balken strong {
  font-size: 1.15rem; color: var(--navy); letter-spacing: -.014em;
  font-variant-numeric: tabular-nums;
}
.ad-vorsprung-zeile {
  margin: .3rem 0 0; padding-top: .8rem; border-top: 1px solid var(--linie);
  font-size: .9rem;
}
.ad-vorsprung-zeile b { color: var(--vorsprung); font-size: 1.05rem; }

/* --- Band 4: die Annahmen ------------------------------------------------ */
.ad-annahmen h3 { margin: 0 0 .7rem; font-size: .98rem; color: var(--navy); }
.ad-annahmen-gitter {
  display: grid; gap: .8rem 1.6rem;
  grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
}
.ad-annahmen-gitter strong {
  display: block; color: var(--navy); font-size: .95rem;
}
.ad-annahmen-gitter span { font-size: .8rem; color: var(--gedaempft); }

.ad-fuss {
  margin-top: 1.1rem; padding-top: .9rem; border-top: 1px solid var(--linie);
  columns: 3; column-gap: 1.6rem; font-size: .7rem; line-height: 1.45;
  color: var(--gedaempft);
}
.ad-fuss p { margin: 0 0 .5rem; break-inside: avoid; }

@media (max-width: 900px) {
  .ad-band-1, .ad-verlauf { grid-template-columns: 1fr; }
  .ad-fuss { columns: 1; }
}

.ad-aktionen {
  display: flex; align-items: center; gap: .8rem; flex-wrap: wrap;
  margin-top: 1.25rem;
}
.ad-aktionen-hinweis { font-size: .78rem; color: var(--gedaempft); }

/* === Der Kundenbogen als Druckseite ======================================
   Eine Seite, quer. Gedruckt wird NUR der Bogen: keine Kopfleiste, keine
   Regler, keine Modusleiste — der Kunde bekommt das Ergebnis, nicht das
   Werkzeug. Dieselbe Gliederung wie am Bildschirm, nur enger gesetzt. */
/* Das Querformat wird NICHT hier gesetzt: `@page` gilt für das ganze Dokument
   und lässt sich nicht auf einen Selektor beschränken. Eine zweite Regel hätte
   auch das Gutachten des Altersvorsorge-Vergleichs quer gedruckt, das hochkant
   gehört. Der Druckknopf legt sie deshalb für die Dauer des Drucks selbst an
   (s. avdrechner.mjs). */

@media print {
  /* NUR die Bedienelemente dieses Werkzeugs verschwinden. Die anderen
     Werkzeuge sind ohnehin `hidden` — sie hier zusätzlich über den Elternteil
     auszublenden hätte den Gutachten-Druck des Altersvorsorge-Vergleichs
     miterwischt, der aus demselben `main` kommt. */
  /* Nur die Bildschirmfassung von Kicker und Titel verschwindet — der
     Briefkopf des Bogens benutzt dieselben Klassen und muss bleiben.

     Der Kindselektor `.ar-bahn > .ar-kicker` traf NICHTS: Beide stehen in
     `.ar-titelzeile > div`, also zwei Ebenen tiefer. Auf dem Kundenblatt
     standen damit die Bildschirmüberschrift („Geförderte Altersvorsorge ·
     ab 01.01.2027" / „Ihr Altersvorsorgedepot") UND der Briefkopf
     untereinander. Jetzt wird die Titelzeile als Ganzes ausgeblendet — sie
     enthält nichts anderes —, und der Briefkopf bleibt, weil er in
     `.ad-druckkopf` steht. */
  .ar-titelzeile, .ar-panel, .ad-aktionen { display: none !important; }
  .ar-zwei { display: block; }
  .rg, .werkzeugmenue { display: none !important; }
  .ar-bahn { max-width: none; }

  .ad-bogen {
    border: 0; box-shadow: none; padding: 0; margin: 0;
    font-size: 9pt;
  }
  .ad-druckkopf {
    display: flex; align-items: flex-start; justify-content: space-between;
    gap: 2rem; padding-bottom: .5rem; margin-bottom: .6rem;
    border-bottom: 2px solid var(--navy);
  }
  .ad-druckkopf h1 {
    font-size: 20pt; color: var(--navy); margin: .1rem 0 .15rem;
    letter-spacing: -.02em;
  }
  .ad-unterzeile { font-size: 9pt; color: var(--gedaempft); margin: 0; }
  .ad-marke {
    font-weight: 700; font-size: 11pt; letter-spacing: .005em; white-space: nowrap; color: var(--navy);
    border-bottom: 3px solid var(--limette); padding-bottom: 1px;
  }
  /* Die Bänder rücken zusammen — auf einer Seite zählt jeder Millimeter.
     Gemessen: ohne diese Verdichtung braucht der Bogen 955 px, verfügbar sind
     auf A4 quer bei 10 mm Rand rund 718. */
  .ad-band { padding: .28rem 0; break-inside: avoid; }
  .ad-druckkopf { padding-bottom: .35rem; margin-bottom: .4rem; }
  .ad-druckkopf h1 { font-size: 17pt; margin: .05rem 0 .1rem; }
  .ad-unterzeile { font-size: 8pt; }
  .ad-vorsprung { box-shadow: none; padding: .55rem .75rem; }
  .ad-vorsprung strong { font-size: 18pt; padding-top: .3rem; margin-top: .25rem; }
  .ad-gegenueber { gap: .5rem; }
  .ad-gegenueber > div { padding-bottom: .35rem; }
  .ad-gegenueber strong, .ad-posten-teil strong { font-size: 13pt; }
  .ad-baustein { padding: .16rem 0; font-size: 8pt; }
  .ad-baustein-wenn { font-size: 7.5pt; }
  .ad-satz { font-size: 9.5pt; padding-top: .3rem; }

  /* Auf dem Papier stehen Diagramm und Vergleich WIEDER nebeneinander: Dort
     ist die Breite reichlich und die Höhe knapp — genau umgekehrt zum
     Bildschirm, wo gescrollt werden darf. */
  .ad-verlauf {
    display: grid; gap: .9rem;
    grid-template-columns: minmax(0, 2fr) minmax(12rem, 1fr);
    align-items: start;
  }
  .ad-verlauf .ad-diagramm { margin-bottom: 0; }
  .ad-vergleich-reihe { display: block; }
  .ad-vergleich-reihe > * + * { margin-top: .5rem; }
  .ad-verlauf h3 { font-size: 9.5pt; margin-bottom: .3rem; }
  .ad-vergleich { gap: .5rem; }
  .ad-balken { gap: .15rem; }
  .ad-balken-name { font-size: 8pt; }
  .ad-balken strong { font-size: 11pt; }
  .ad-balken-spur { height: 8px; }
  .ad-vorsprung-zeile { font-size: 8.5pt; padding-top: .45rem; margin-top: .15rem; }
  .ad-vorsprung-zeile b { font-size: 9.5pt; }

  .ad-annahmen h3 { font-size: 9.5pt; margin-bottom: .35rem; }
  .ad-annahmen-gitter strong { font-size: 9pt; }
  .ad-annahmen-gitter span { font-size: 7.5pt; }
  .ad-modusband h3 { font-size: 9.5pt; }
  .ad-modusband p { font-size: 8.5pt; margin: .25rem 0 0; }
  /* Sechs Angaben in EINER Zeile statt in zwei — auf dem Papier ist die
     Breite da, und zwei Zeilen kosten 35 px, die am Ende fehlen. */
  .ad-annahmen-gitter {
    grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .2rem .8rem;
  }
  .ad-annahmen-gitter strong { font-size: 8pt; }
  .ad-annahmen-gitter span { font-size: 6.5pt; line-height: 1.25; display: block; }
  .ad-posten { gap: .8rem; }
  .ad-fuss { columns: 3; column-gap: 1.1rem; font-size: 5.6pt; line-height: 1.3;
             margin-top: .35rem; padding-top: .3rem; }
  .ad-fuss p { margin-bottom: .3rem; }
  .ad-fuss { font-size: 6.5pt; margin-top: .5rem; padding-top: .4rem; }
  /* Die erklärenden Nebensätze im Modusband sind Beraterstoff — auf dem
     Kundenblatt zählen die Zahlen und der eine Satz darüber. Ohne diese Zeile
     rutscht der Bogen auf eine zweite Seite. */
  .ad-modusband .feld-hinweis { display: none !important; }
  /* Im Modusband werden aus Kacheln Wertepaare in einer Zeile. Vier Karten
     nebeneinander kosten 150 px Höhe für vier Zahlen — als Zeile sind es 40,
     und gelesen wird dasselbe. */
  .ad-modusband .kacheln {
    display: flex; flex-wrap: wrap; gap: .3rem 1.6rem; margin: .3rem 0 0;
  }
  .ad-modusband .kachel {
    border: 0; border-left: 3px solid var(--himmelblau); background: none;
    padding: 0 0 0 .45rem; box-shadow: none; margin: 0;
    display: flex; flex-direction: column; gap: 0;
  }
  .ad-modusband .kachel.betont { border-left-color: var(--limette); }
  .ad-modusband .kachel dt { font-size: 6.5pt; margin: 0; }
  .ad-modusband .kachel dd { font-size: 11pt; }
  .ad-modusband .kachel .fussnote { display: none; }
  .ad-annahmen-gitter { gap: .35rem 1.2rem; }

  /* Farbflächen müssen mitgedruckt werden — ohne diese Zeile lässt der Browser
     Navy und Limette weg, und der Bogen verliert genau das, was ihn ordnet. */
  .ad-vorsprung, .ad-punkt, .ad-balken-fuell, .ad-marke {
    -webkit-print-color-adjust: exact; print-color-adjust: exact;
  }
}

/* Der modusabhängige Block sitzt im Bogen und braucht dort keinen eigenen
   Rahmen mehr — die Bänder sind schon die Gliederung. */
.ad-modusband .karte {
  border: 0; box-shadow: none; padding: 0; margin: 0; background: none;
}
.ad-modusband h3 { margin-top: 0; }

/* Kopfzeile des Rechners: Titel links, Zusage rechts. */
.ar-titelzeile {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 1rem; flex-wrap: wrap;
}
/* Keine Auszeichnung, sondern eine Zusage: Es wird nichts gesendet. Wer mit
   echten Kundendaten arbeitet, will das sehen und nicht nachlesen. */
.ar-lokal {
  display: inline-flex; align-items: center; gap: .35rem; white-space: nowrap;
  font-size: .74rem; font-weight: 600; color: #1a7f4b;
  background: color-mix(in srgb, #1a7f4b 10%, transparent);
  border: 1px solid color-mix(in srgb, #1a7f4b 28%, transparent);
  border-radius: 999px; padding: .22rem .6rem; margin-top: .35rem;
}

/* Der PDF-Bereich am Seitenende — über die volle Breite. */
.ar-pdf {
  display: grid; gap: 1rem 1.4rem; align-items: center;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) auto;
  margin-top: 1.25rem;
}
.ar-pdf h3 { margin: 0 0 .2rem; font-size: 1rem; }
.ar-pdf-text p { margin: 0; font-size: .82rem; color: var(--gedaempft); line-height: 1.5; }
.ar-pdf-felder { display: flex; flex-direction: column; gap: .4rem; }
.ar-pdf-felder input {
  font: inherit; font-size: .85rem; padding: .45rem .65rem;
  border: 1px solid var(--linie); border-radius: 8px;
  background: var(--flaeche); color: var(--text);
}
.ar-pdf-felder input:focus { outline: 2px solid var(--himmelblau); outline-offset: -1px; }
.ar-pdf-knopf { white-space: nowrap; }

@media (max-width: 820px) {
  .ar-pdf { grid-template-columns: 1fr; }
  .ar-pdf-knopf { width: 100%; }
}
@media print { .ar-pdf, .ar-lokal { display: none !important; } }

/* Die Zusage in der Kopfzeile — sie gilt für jedes Werkzeug. */
.kopf-lokal {
  display: inline-flex; align-items: center; gap: .3rem; white-space: nowrap;
  font-size: .72rem; font-weight: 600; color: var(--kopf-text);
  background: rgb(255 255 255 / .12); border: 1px solid rgb(255 255 255 / .24);
  border-radius: 999px; padding: .2rem .55rem;
}

/* Der Rückmeldeknopf schwebt unten rechts — dort, wo er nichts verdeckt und
   trotzdem im Blick bleibt. Im Druck und in der Kundenansicht verschwindet er:
   Rückmeldungen sind Sache des Beraters. */
.feedback-knopf {
  position: fixed; right: 1rem; bottom: 1rem; z-index: 25;
  font: inherit; font-size: .82rem; font-weight: 600; padding: .5rem .9rem;
  background: var(--betont-fuell); color: var(--auf-betont); border: 0; border-radius: 999px;
  box-shadow: var(--schatten-2); cursor: pointer;
  transition: transform var(--zeit-tipp) ease-out, box-shadow var(--zeit-kurz) var(--kurve);
}
.feedback-knopf:hover { box-shadow: var(--schatten-schwebend); }
.feedback-knopf:active { transform: scale(.96); }
[data-ansicht="kunde"] .feedback-knopf { display: none; }
@media print { .feedback-knopf, .kopf-lokal { display: none !important; } }
@media (max-width: 640px) { .feedback-knopf { font-size: .76rem; padding: .4rem .7rem; } }
/* Freiraum unter dem letzten Inhalt.
   Dass schwebende Bedienteile beim Blättern über den Inhalt gleiten, ist
   richtig — der Inhalt läuft darunter hindurch. Am SEITENENDE ist es das
   nicht: Dort gibt es kein Weiterblättern mehr, und was unter dem Knopf liegt,
   bleibt für immer verdeckt. Gemessen bei 820 px Breite: Die Fußzeile
   („Entwickelt von … · Stand …") war vollständig überdeckt.
   In der Kundenansicht gibt es keinen Knopf und deshalb auch keinen Freiraum.

   3,25 rem wären die Höhe des Knopfes plus sein Abstand — der Text stünde dann
   genau auf Kantenberührung. Ein knapper Zuschlag macht daraus einen sichtbaren
   Abstand statt einer Berührung. */
body:has(.feedback-knopf) .fuss { padding-bottom: 4.25rem; }
[data-ansicht="kunde"] .fuss { padding-bottom: 0; }
@media print { .fuss { padding-bottom: 0 !important; } }

/* === Feinschliff ========================================================= */

/* --- Ein Fokusring für alles -----------------------------------------------
   Vorher hatten nur Eingabefelder einen; Knöpfe verließen sich auf die Vorgabe
   des Browsers, die je nach Browser anders aussieht und auf Navy fast
   verschwindet. Wer mit der Tastatur arbeitet, muss jederzeit sehen, wo er
   steht — das ist keine Kür, sondern die Voraussetzung dafür, das Werkzeug
   ohne Maus zu bedienen.
   `:focus-visible` statt `:focus`: Ein Mausklick soll keinen Ring hinterlassen. */
:where(button, a, select, summary, [tabindex]):focus-visible {
  outline: 2px solid var(--himmelblau);
  outline-offset: 2px;
  border-radius: 6px;
}
/* Auf dunklem Grund braucht der Ring die helle Fassung — Himmelblau auf Navy
   ist zu wenig Kontrast. */
.kopf :where(button, a):focus-visible,
.ad-vorsprung :where(button, a):focus-visible {
  outline-color: var(--limette);
}
/* Elemente mit eigener Rundung behalten sie. */
.werkzeugwahl-karte:focus-visible, .an-zeile-haupt:focus-visible,
.werkzeug-eintrag:focus-visible { border-radius: var(--radius); }
.an-kurve:focus-visible, .ar-chip:focus-visible, .feedback-knopf:focus-visible {
  border-radius: 999px;
}

/* --- Typografie: Überschriften laufen enger --------------------------------
   Je größer die Schrift, desto weiter stehen die Buchstaben optisch
   auseinander. Ohne diese Korrektur wirken Überschriften gesetzt wie getippt. */
h1 { letter-spacing: -.022em; }
h2 { letter-spacing: -.018em; }
h3 { letter-spacing: -.012em; }

/* --- Zahlen stehen still ---------------------------------------------------
   Tabellenziffern überall dort, wo sich eine Zahl beim Tippen oder Ziehen
   ändert. Ohne sie tanzen die Stellen, und das Auge liest die Bewegung als
   Sprung des Werts. */
.kachel dd, .an-tabelle td, .an-tabelle th, .st-tabelle td, .st-tabelle th,
.ad-gegenueber strong, .ad-posten-teil strong, .ad-balken strong,
.dz-paar strong, .an-zeile-wert, .ar-wert input {
  font-variant-numeric: tabular-nums;
}

/* --- Bewegung nur, wo sie erwünscht ist ------------------------------------
   Die Sammelregel deckt auch das ab, was künftig dazukommt. Der DRUCK auf
   einen Knopf bleibt in jedem Fall: Er ist keine Bewegung durch den Raum,
   sondern die Bestätigung, dass der Finger angekommen ist. */
@media (prefers-reduced-motion: reduce) {
  .ar-chip, .ar-wahlknopf, .ar-zurueck, .ar-modus, .feedback-knopf,
  .ad-balken-fuell, .kopf-knopf, .kopf {
    transition: none !important;
  }
  .feedback-knopf:hover { box-shadow: var(--schatten-2); }
  html { scroll-behavior: auto !important; }
}

@media (prefers-contrast: more) {
  :where(button, a, select, summary):focus-visible { outline-width: 3px; }
  .ar-modus-an, .ar-chip-an, .ar-wahl-an { outline: 2px solid var(--navy); }
  .feedback-knopf { border: 2px solid #fff; }
}

/* --- Ankommen nach dem Werkzeugwechsel -------------------------------------
   Vorher wurde nur `hidden` umgelegt: Das alte Werkzeug war weg und das neue
   im selben Bild da — ein Schnitt, kein Wechsel. Innerhalb eines Werkzeugs
   gleiten die Kapitel dagegen seitlich herein; dass ausgerechnet der größere
   Sprung ohne Bewegung auskam, las sich als Fehler.

   Die Bewegung ist bewusst klein (6 px) und kurz: Sie beantwortet „es hat sich
   etwas geändert", ohne den Beginn der Arbeit zu verzögern. Sie läuft NACH
   OBEN, weil der Blick nach dem Sprung an den Seitenanfang ohnehin dort steht
   — das Zwischenbild zeigt, wohin es geht. */
@keyframes werkzeug-ankommen {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: none; }
}
.werkzeug-kommt { animation: werkzeug-ankommen var(--zeit-mittel) var(--kurve); }
@media (prefers-reduced-motion: reduce) {
  /* Kein Weg durch den Raum, aber der Wechsel bleibt sichtbar. */
  @keyframes werkzeug-ankommen { from { opacity: 0; } to { opacity: 1; } }
  .werkzeug-kommt { animation-duration: var(--zeit-kurz); }
}

/* --- Rückmeldung beim Drücken: die Nachzügler -----------------------------
   Der erste Durchgang hatte die großen Flächen erfasst. Eine Bestandsaufnahme
   aller Knöpfe, Verweise und Zeilen gegen die Regeln zeigte elf, die leer
   ausgingen — durchweg kleine, häufig benutzte Bedienteile: die Modusleiste,
   die Marke oben links, das Abmelden, die ISIN, die beiden Zahnräder.

   Auf einem Zeigegerät fiel es nicht auf, weil :hover vorher greift. Auf einem
   Tablet — dem Gerät im Kundengespräch — gibt es kein :hover; dort blieb
   zwischen Berührung und Ergebnis nichts. */
.modus, .marke-knopf, .konto-ab, .an-isin, .feld-zahnrad, .baustein-alle,
.rang-weg, .profil-weg, .strategie-kopf, .ersteller {
  transition: transform var(--zeit-tipp) ease-out,
              background-color var(--zeit-kurz) var(--kurve),
              color var(--zeit-kurz) var(--kurve),
              border-color var(--zeit-kurz) var(--kurve);
}
/* Kleine Ziele dürfen deutlicher nachgeben, breite nur andeuten: 4 % auf einer
   schmalen Schaltfläche liest sich als Andrücken, dieselben 4 % auf einer
   40 rem breiten Zeile als Sprung. */
.feld-zahnrad:active, .rang-weg:active, .profil-weg:active, .an-isin:active,
.ersteller:active { transform: scale(.92); }
.modus:active, .konto-ab:active, .marke-knopf:active { transform: scale(.96); }
.baustein-alle:active, .strategie-kopf:active { transform: scale(.99); }
.strategie-kopf:active { background: var(--flaeche); }

/* Der Schalter kippt, er wird nicht gedrückt: Der Knauf wächst unter dem
   Finger, statt die ganze Schiene schrumpfen zu lassen. */
.schalter > span { transition: transform .15s ease, width .12s ease-out; }
.schalter:active > span { transform: scale(1.1); }
.schalter[aria-checked="true"]:active > span { transform: translateX(.95rem) scale(1.1); }

@media (prefers-reduced-motion: reduce) {
  .modus, .marke-knopf, .konto-ab, .an-isin, .feld-zahnrad, .baustein-alle,
  .rang-weg, .profil-weg, .strategie-kopf, .ersteller, .schalter > span {
    transition: background-color var(--zeit-kurz) ease, color var(--zeit-kurz) ease;
  }
  /* Weniger Bewegung heißt nicht: keine Antwort. Der Maßstab entfällt, die
     Fläche übernimmt. */
  .modus:active, .marke-knopf:active, .konto-ab:active, .an-isin:active,
  .feld-zahnrad:active, .baustein-alle:active, .rang-weg:active,
  .profil-weg:active, .strategie-kopf:active, .ersteller:active {
    transform: none; background: var(--flaeche);
  }
  .schalter:active > span { transform: none; }
  .schalter[aria-checked="true"]:active > span { transform: translateX(.95rem); }
}
/* Ein ausgeschalteter Knopf gibt nicht nach — sonst verspricht er eine
   Wirkung, die er nicht hat. */
.modus:disabled:active, .knopf:disabled:active, .knopf-still:disabled:active,
.rg-knoepfe .knopf:disabled:active { transform: none; }


/* === Seiten rund um das Werkzeug ========================================
   Startseite, Übersicht, Anmeldung, Impressum und Datenschutz laden DIESES
   Stylesheet (build.mjs legt es als /stil.css ab) — es gibt kein zweites.
   Wer hier etwas ändert, ändert es überall. Die Seiten werden auch auf dem
   iPhone geöffnet, das Werkzeug selbst nicht; die Regeln für schmale
   Bildschirme stehen deshalb in diesem Abschnitt.
   Bauteile tragen ein „s-“ vorn, damit sie keinem Werkzeugbaustein in die
   Quere kommen. Knöpfe sind die des Werkzeugs: .knopf und .knopf-still. */

.marke-link { text-decoration: none; color: inherit; }
/* Dieselbe Box wie der Werkzeugwechsler im AV-Tool (.marke-knopf): Die Marke
   steht dadurch auf jeder Seite auf den Pixel an derselben Stelle. */
.marke-link {
  display: flex; align-items: baseline; border: 1px solid transparent; border-radius: 8px;
  padding: .25rem .5rem; margin: -.25rem -.5rem;
  transition: background var(--zeit-kurz) var(--kurve), border-color var(--zeit-kurz) var(--kurve);
}
.marke-link:hover { background: var(--kopf-still-bg); border-color: var(--kopf-still-rand); }
.marke-link:focus-visible { outline: 2px solid var(--limette); outline-offset: 2px; }
/* Gleiche Kopfhöhe auf allen Seiten, egal welche Knöpfe gerade dastehen. */
.kopf-inhalt { min-height: 4.1rem; }
a.kopf-knopf { text-decoration: none; display: inline-flex; align-items: center; }

/* Fußzeile: Signatur, darunter Impressum und Datenschutz — auf jeder Seite. */
.fuss .fuss-links {
  display: flex; justify-content: center; gap: 1.25rem; flex-wrap: wrap;
  margin: .55rem auto 0;
}
.fuss-links a { color: var(--gedaempft); text-underline-offset: 2px; }
.fuss-links a:hover { color: var(--akzent-text); }

.s-seite { width: 100%; max-width: 46rem; margin: 0 auto; padding: 1.75rem var(--rand) 0; }
.s-seite.breit { max-width: 62rem; }
.s-seite.schmal { max-width: 26rem; padding-top: 3rem; }

.s-karte {
  background: var(--ebene-1); border: 1px solid var(--linie);
  border-radius: 14px; padding: 1.6rem; margin-bottom: 1rem;
  box-shadow: var(--schatten-1);
}
.s-karte > :last-child { margin-bottom: 0; }
.s-karte h1 { font-size: 1.65rem; line-height: 1.2; margin: .75rem 0 .45rem; }
.s-karte h1:first-child { margin-top: 0; }
.s-karte h2 { font-size: 1.15rem; margin-bottom: .4rem; }
.s-karte p { margin: 0 0 .8rem; }
.s-leise { color: var(--gedaempft); }
.s-karte a:not(.knopf) { color: var(--akzent-text); text-underline-offset: 2px; }
.s-raster { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); }
.s-raster .s-karte { margin: 0; display: flex; flex-direction: column; }

/* Das Etikett „In Entwicklung“ — dieselbe Form wie der Berateransicht-Merker. */
.s-abzeichen {
  display: inline-block; font-size: .68rem; letter-spacing: .06em; text-transform: uppercase;
  font-weight: 600; padding: .15rem .55rem; border-radius: 999px;
  background: var(--limette); color: var(--auf-limette);
}

/* Formulare. 16 px Mindestgröße in Feldern: darunter zoomt Safari auf dem
   iPhone beim Antippen hinein und lässt die Seite verschoben stehen. */
.s-form label:not(.s-haken) {
  display: block; font-size: .82rem; color: var(--gedaempft); margin: .95rem 0 .3rem;
}
.s-form input[type="text"], .s-form input[type="email"], .s-linkfeld input {
  width: 100%; font: inherit; font-size: 1rem; min-height: 2.75rem;
  padding: .6rem .8rem; border: 1px solid var(--linie); border-radius: 10px;
  background: var(--ebene-0); color: var(--text);
}
.s-form input:focus-visible, .s-linkfeld input:focus-visible {
  outline: 2px solid var(--himmelblau); outline-offset: -1px;
}
.s-code { font-size: 1.6rem !important; letter-spacing: .5em; text-align: center; padding-left: 1.3em !important; }
.s-haken {
  display: flex; gap: .65rem; align-items: flex-start; margin-top: 1rem;
  font-size: .84rem; color: var(--gedaempft); cursor: pointer;
}
.s-haken input { width: 1.15rem; height: 1.15rem; margin: .15rem 0 0; flex: none; accent-color: var(--akzent-fuell); }
.s-voll {
  display: flex; justify-content: center; align-items: center; width: 100%;
  min-height: 2.75rem; margin-top: 1.1rem; font-size: 1rem; font-weight: 600;
  text-decoration: none; text-align: center;
}
.s-voll:disabled { opacity: .5; cursor: default; }
.s-textknopf {
  display: block; width: 100%; margin-top: .5rem; min-height: 2.75rem; padding: 0;
  font: inherit; font-size: .88rem; color: var(--gedaempft);
  background: none; border: 0; cursor: pointer;
}
.s-meldung { font-size: .88rem; margin-top: .85rem; min-height: 1.3em; }
.s-meldung.fehler { color: var(--fehler); }
.s-meldung.gut { color: #1d7a46; }
:root[data-theme="dark"] .s-meldung.gut { color: #6fcf97; }
.s-falle { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.s-linkfeld { display: flex; gap: .5rem; margin-top: .7rem; }
.s-linkfeld input { flex: 1; min-width: 0; color: var(--gedaempft); }
.s-linkfeld .knopf-still { flex: none; min-height: 2.75rem; padding-inline: 1rem; }
.s-qr { margin-top: 1rem; display: flex; justify-content: center; }
.s-qr svg { width: 11rem; height: 11rem; background: #fff; border-radius: 10px; padding: 6px; }

/* Rechtstexte: ruhige Lesespalte. */
.s-text h1 { font-size: 1.65rem; }
.s-text h2 { font-size: 1.05rem; margin: 1.6rem 0 .4rem; }
.s-text p, .s-text li { font-size: .95rem; overflow-wrap: anywhere; }
.s-text ul { padding-left: 1.2rem; }

/* --- iPhone ---------------------------------------------------------------
   Tippziele mindestens 44 pt (Apple HIG). Der Name des Angemeldeten fällt
   weg — die Marke und zwei Knöpfe passen nebeneinander, mehr nicht. */
@media (max-width: 600px) {
  :root { --rand: 1rem; }
  .kopf-inhalt { padding-block: .6rem; flex-wrap: nowrap; gap: .75rem; }
  .kopf .marke-logo { font-size: 1rem; }
  .kopf-aktionen { flex-wrap: nowrap; }
  .theme-knopf { width: 2.75rem; height: 2.75rem; border-radius: 10px; }
  .kopf-knopf { min-height: 2.75rem; padding: 0 .9rem; font-size: .88rem; border-radius: 10px; }
  .konto-name { display: none; }
  .konto .kopf-knopf + .konto-ab { display: none; }
  .s-seite { padding-top: 1.1rem; }
  .s-seite.schmal { padding-top: 1.5rem; }
  .s-karte { padding: 1.25rem; border-radius: 12px; }
  .s-karte h1, .s-text h1 { font-size: 1.4rem; }
  .fuss { padding-bottom: calc(2rem + env(safe-area-inset-bottom)); }
}
@media (max-width: 360px) {
  .kopf .marke-logo { font-size: .92rem; }
}

