/* White Mode — EXAKTE UMKEHRUNG des Dunkelmodus
 * ═══════════════════════════════════════════════════════════════════════════════════════════
 *
 * Fabian 04.10.2026: „Will es einfach exakt so haben wie den Dark Mode, bloß dann umgeändert auf White Mode. Das heißt:
 * Alles, was schwarz ist, dann weiß machen, einfach umgedreht, aber nicht irgendwelche anderen Schriftfarben dunkler
 * oder heller oder sonst irgendwas. Es soll exakt gleich sein.“ Und: „Auch die Kopfzeile und die Fußzeile sollen die
 * gleichen Farben haben, gleiche Helligkeit, alles gleich.“
 *
 * DIE EINE REGEL DIESER DATEI
 *   - Schwarz, Weiß und Grau werden gespiegelt: Helligkeit L → 1 − L, Farbton und Sättigung bleiben.
 *     Rechnung je Kanal: neu = alt + 255 − max − min (#000 → #fff, #e4e4ec → #13131b, #06060e → #f1f1f9).
 *     Weiß mit Deckkraft a → Schwarz mit Deckkraft a und umgekehrt. Schwarze Schatten werden weiße.
 *   - JEDE bunte Farbe bleibt exakt: Violett, Blau, Grün, der Markenverlauf (auch als Schrift), die Leistungsnummern,
 *     die Blog-Kategorien, WhatsApp-Grün, Rot, „Du bist hier“-Blau, die blaue Glut.
 *   - Schrift AUF einer bunten Fläche (Hauptknopf, gewählter Termin, WhatsApp-Knopf) bleibt, wie sie ist.
 *   ⛔ WAR bis 04.10. nachmittags eine „Lesefassung“ (700er-Stufen, Helligkeitsfilter auf Nummern und Kategorien,
 *      Akzent #0369a1). Fabian: „Du hast es ja schon einfach Sachen dunkler gemacht, die du nicht dunkler machen solltest.“
 *   Prüfung: tools/hellmodus-exakt.cjs vergleicht jede berechnete Farbe jedes Elements hell gegen dunkel.
 *
 * ⛔ Jede Regel steht unter :root[data-theme="hell"] (Kopf-Skript in Basis.astro, Modul kopfzeile/darstellung.ts).
 *    Im Dunkelmodus greift aus dieser Datei nichts.
 * ⛔ Gewicht: Das Seiten-CSS steht inline NACH dieser Datei ([data-astro-cid-…]); deshalb body:not(#_hell) vor jeder
 *    Bauteil-Regel. !important nur für Farben im style-Attribut (Rechtstexte).
 * ⛔ Bühnen mit Nachtbild bleiben dunkel: Ein Nachtfoto lässt sich nicht umdrehen. Hell wird eine Bühne mit eigenem
 *    hellen Bild derselben Szene (Klasse lb--hellbild, heute /starlink/).
 * ⛔ Version im Link: Inhaltsschlüssel (Basis.astro), weil Cloudflare die Datei ein Jahr „immutable“ speichert.
 */

/* ── Rollen: nur die neutralen. Bunte Rollen (--akzent*, --violett, --blau, --gruen, --verlauf*, --signal, --glut*)
      und --tinte (Schrift auf bunten Flächen) bleiben aus tokens.css. ─────────────────────────────────────────────── */
:root[data-theme='hell'] {
  color-scheme: light;
  --nacht: #ffffff;        /* #000000 */
  --nacht-2: #f5f5f5;      /* #0a0a0a */
  --nacht-3: #ebebeb;      /* #141414 */
  --kalk: #000000;         /* #ffffff */
  --kalk-2: #13131b;       /* #e4e4ec */
  --kalk-3: #414152;       /* #adadbe */
  --kante: #d1d1dd;        /* #22222e */
  --kante-hell: #b5b5cb;   /* #34344a */
  --umriss: #7f7f95;       /* #6a6a80 */
  --tiefe: 0 30px 60px -30px rgb(255 255 255 / 0.9);
  --knopf-grund: rgb(0 0 0 / 0.1);
  --knopf-grund-hover: rgb(0 0 0 / 0.16);
  background: #ffffff;
  color: #000000;
}
:root[data-theme='hell'] body { background: #ffffff; color: #000000; }
:root[data-theme='hell'] ::selection { background: #000000; color: #ffffff; }

/* ── Bühnen mit Nachtbild bleiben dunkel: die neutralen Rollen wie im Dunkelmodus ───────────────────────────────── */
:root[data-theme='hell'] body:not(#_hell) :is(.lb, .villa__buehne, .eb, .ub):not(.lb--hellbild) {
  color-scheme: dark;
  --nacht: #000000;
  --nacht-2: #0a0a0a;
  --nacht-3: #141414;
  --kalk: #ffffff;
  --kalk-2: #e4e4ec;
  --kalk-3: #adadbe;
  --kante: #22222e;
  --kante-hell: #34344a;
  --umriss: #6a6a80;
  --tiefe: 0 30px 60px -30px rgb(0 0 0 / 0.9);
  --knopf-grund: rgb(255 255 255 / 0.1);
  --knopf-grund-hover: rgb(255 255 255 / 0.16);
  color: var(--kalk);
}

/* Weißer Schleier 25 % stärker als der schwarze (Fabian 04.10.2026 ~23:50: „das hintergrund weiß bitte 25% weißer machen“):
   --schleier-hell = --schleier × 1,25 (heute 0,625 statt 0,5). Ausnahme von der Umkehrung, hellmodus-exakt.cjs. */
:root[data-theme='hell'] { --schleier-hell: calc(var(--schleier, 0.5) * 1.25); }
/* Verlauf als SCHRIFT im White Mode satter (Fabian 05.10.2026: „Diese Schriften hier müssen viel intensiver, viel farbiger sein, weil es so
   aussieht, als wäre es ausgeblichen … viel präsenter“): Violett bleibt #A855F7, Blau und Grün je eine Stufe kräftiger (#0EA5E9 statt
   #38BDF8, #10B981 statt #34D399). Auf Weiß 2,8:1 und 2,5:1 statt 1,9:1 und 1,7:1. Ausnahme von der Umkehrung, hellmodus-exakt.cjs. */
:root[data-theme='hell'] {
  --verlauf-text: linear-gradient(120deg, #a855f7 0%, #0ea5e9 50%, #10b981 100%);
  --verlauf-text-lauf: linear-gradient(90deg, #a855f7, #9333ea 15%, #0ea5e9 42%, #10b981 62%, #06b6d4 80%, #a855f7);
}
/* Bühnen mit Nachtbild bleiben dunkel, also auch ihre Verlaufsschrift (Startseite und Orts-Startseiten: Villa, „Spezialisiert“, Kennung).
   ⛔ WAR 05.10. vormittags: der satte Tag-Verlauf lag auch auf der Nacht-Villa (gefunden mit hellmodus-exakt.cjs, Schlüssel verlaufSchrift). */
:root[data-theme='hell'] :is(.lb, .villa__buehne, .eb, .ub):not(.lb--hellbild) {
  --verlauf-text: var(--verlauf-text-nacht);
  --verlauf-text-lauf: var(--verlauf-text-lauf-nacht);
  --verlauf-schrift: var(--verlauf-text-nacht);   /* geerbte Werte sind schon aufgelöst, deshalb alle drei */
}
/* ── Bühne mit hellem Bild: weißer Schleier, Schwarz gespiegelt, 50 % über --schleier (Fabian 04.10.2026 ~23 Uhr: „Wir brauchen
   wieder diesen weißen Hintergrund-Effekt … bei 00 … 02 bis 09 … Nicht zu stark, sodass man sehr gut lesen kann, aber nicht so
   übertrieben“). Ohne Schleier fiel die Schrift an den schwächsten Stellen auf 1,0–1,6:1 (lesbarkeit-seiten.cjs).
   Starlink 01 (Modelle auf Weiß, Klasse .lb--frei) nennt er nicht und bleibt ohne Schleier (dort 12–21:1 ohne Schleier).
   ⛔ WAR 04.10. ~22–23 Uhr: kein Schleier auf allen hellen Bühnen (Fabian: „Den brauchen wir nicht mehr“), zurückgenommen. */
:root[data-theme='hell'] body:not(#_hell) .lb--hellbild .lb__schleier {
  background:
    linear-gradient(90deg, rgb(255 255 255 / calc(0.90 * var(--schleier-hell, 1))), rgb(255 255 255 / calc(0.72 * var(--schleier-hell, 1))) 34%,
                           rgb(255 255 255 / calc(0.24 * var(--schleier-hell, 1))) 62%, rgb(255 255 255 / calc(0.04 * var(--schleier-hell, 1)))),
    linear-gradient(0deg, rgb(255 255 255 / calc(0.72 * var(--schleier-hell, 1))), rgb(255 255 255 / calc(0.34 * var(--schleier-hell, 1))) 34%, rgb(255 255 255 / 0) 62%);
}
:root[data-theme='hell'] body:not(#_hell) .lb--hellbild .krumen--bild ol { text-shadow: 0 1px 3px rgb(255 255 255 / 0.85); }
@media (max-width: 767px) {
  /* Handy: gleichmäßig über die ganze Schriftbreite wie der schwarze (LeistungsSeite.astro), Weiß gespiegelt. */
  :root[data-theme='hell'] body:not(#_hell) .lb--hellbild:not(.lb--frei) .lb__schleier {
    background: linear-gradient(0deg, rgb(255 255 255 / calc(0.90 * var(--schleier-hell, 1))) 0%, rgb(255 255 255 / calc(0.90 * var(--schleier-hell, 1))) 70%, rgb(255 255 255 / 0) 84%);
  }
}
/* ── VILLA HELL (Startseite, Orts-Startseiten, /villa/; Fabian 05.10.2026 nachmittags: „Bau das jetzt bitte ein, mit Villa hell, ohne weißen
   Schleier“). Tagbilder, KEIN Schleier; die dunklen Schatten der Schrift werden weißer Schein (exakte Umkehrung), Schrift schwarz über die
   Rollen. Einzige Ausnahme: der zweite Knopf steht ohne Schleier direkt auf dem Rasen und bekommt einen hellen Glasgrund (sonst dunkler,
   durchscheinender Grund auf Grün, kaum lesbar; hellmodus-exakt.cjs nimmt ihn aus). */
:root[data-theme='hell'] body:not(#_hell) .villa__buehne.lb--hellbild .buehne__titel {
  filter: drop-shadow(0 6px 22px rgb(255 255 255 / 0.95)) drop-shadow(0 2px 6px rgb(255 255 255 / 0.9));
}
:root[data-theme='hell'] body:not(#_hell) .villa__buehne.lb--hellbild .buehne__kennung {
  filter: drop-shadow(0 0 1px rgb(255 255 255 / 0.9)) drop-shadow(0 0 3px rgb(255 255 255 / 0.8))
    drop-shadow(0 6px 22px rgb(255 255 255 / 0.95)) drop-shadow(0 2px 6px rgb(255 255 255 / 0.9)); /* wie die Überschrift + enger Rand (05.10.2026) */
}
:root[data-theme='hell'] body:not(#_hell) .villa__buehne.lb--hellbild .villa__maus {
  border-color: rgb(0 0 0 / 0.55);
  background: rgb(255 255 255 / 0.15);
}
:root[data-theme='hell'] body:not(#_hell) .villa__buehne.lb--hellbild .villa__rad { background: #000000; }
:root[data-theme='hell'] body:not(#_hell) .villa__buehne.lb--hellbild .villa__hinweis::after { border-color: rgb(0 0 0 / 0.85); }
:root[data-theme='hell'] body:not(#_hell) .villa__buehne.lb--hellbild .knopf:not(.knopf--haupt) {
  background: rgb(255 255 255 / 0.84);
  color: #000000;
  border-color: rgb(0 0 0 / 0.14);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
/* Starlink 01: Modelle auf Weiß, kein Schleier (Ausnahme von der Umkehrung, hellmodus-exakt.cjs). */
:root[data-theme='hell'] body:not(#_hell) .lb--hellbild.lb--frei .lb__schleier { background: none; }
/* Zeile unter der Überschrift (.lb__kurz) auf ALLEN hellen Bühnen: SCHWARZ, voll deckend, ohne Unterlage (Fabian 05.10.2026 nachts zu
   „Bestandsaufnahme vor Ort · Fahrplan · Umsetzung“: „okay klappt nicht all diese texte müssen auch in schwarz geschrieben werden sonst ist
   es nicht leserlich!“). Dafür bleibt der weiße Schleier 25 % stärker (--schleier-hell). Von Fabian bestellte Ausnahme von der Umkehrung
   (dunkel bleibt Markenblau), hellmodus-exakt.cjs. ⛔ WAR 04.10./05.10.: Schwarz, weißes Band, Lila #7c3aed, Hellblau #38bdf8 (gemessen
   bis 1,0:1, „klappt nicht“). */
:root[data-theme='hell'] body:not(#_hell) .lb--hellbild .lb__kurz { color: #000000; opacity: 1; }
/* Dieselbe Textart überall (kleine Versal-Überzeilen in Markenblau, auf Weiß 1,9:1 und darunter): ebenfalls schwarz, „all diese
   texte“. Gemessen 05.10.2026 mit pruefung/blaue-texte.cjs. Nicht in dunkel gebliebenen Bühnen (dort wäre Schwarz unsichtbar). */
:root[data-theme='hell'] body:not(#_hell) :is(.eb__marke, .ub__marke, .guete__marke, .ablauf__marke, .fragen__marke, .anfrage__marke,
                                              .gg__kopf, .bb__marke, .bl__kategorie, .fa__marke, .karte-rolle):not(
                                              :is(.lb, .villa__buehne, .eb, .ub):not(.lb--hellbild) *) {
  color: #000000;
}
/* Einsatzgebiet und Über uns haben seit 05.10.2026 ein helles Bild (Klasse lb--hellbild): ihre Schleier weiß gespiegelt, 25 % stärker
   als der schwarze wie auf allen hellen Bühnen (Fabian 04.10.2026 ~23:50). Ausnahme von der Umkehrung, hellmodus-exakt.cjs. */
:root[data-theme='hell'] body:not(#_hell) .eb.lb--hellbild .eb__schleier {
  background:
    linear-gradient(90deg, rgb(255 255 255 / calc(0.90 * 1.25)) 0%, rgb(255 255 255 / calc(0.72 * 1.25)) 34%,
                           rgb(255 255 255 / calc(0.24 * 1.25)) 62%, rgb(255 255 255 / calc(0.04 * 1.25)) 100%),
    linear-gradient(0deg, rgb(255 255 255 / calc(0.72 * 1.25)) 0%, rgb(255 255 255 / calc(0.34 * 1.25)) 34%, rgb(255 255 255 / 0) 62%);
}
:root[data-theme='hell'] body:not(#_hell) .ub.lb--hellbild .ub__schleier {
  background: linear-gradient(0deg, rgb(255 255 255 / calc(0.88 * 1.25)) 0%, rgb(255 255 255 / calc(0.55 * 1.25)) 38%,
                                    rgb(255 255 255 / calc(0.10 * 1.25)) 70%, rgb(255 255 255 / 0) 100%);
}
@media (max-width: 767px) {
  /* Das helle Handybild hat sein eigenes Seitenverhältnis (deckungsgleicher Ausschnitt des Querbilds). */
  :root[data-theme='hell'] body:not(#_hell) .lb--hellbild.lb--frei .lb__bild {
    aspect-ratio: var(--hoch-format-hell, var(--hoch-format));
  }
}

/* ── Kopfzeile (kopfzeile.css). --gn-blau und --gn-lila bleiben, Nummern behalten ihre Farbe. ─────────────────── */
:root[data-theme='hell'] body:not(#_hell) .gn-huelle {
  --gn-grund: rgb(241 241 249 / 0.86);   /* rgb(6 6 14 / 0.86) */
  --gn-voll: #f1f1f9;                    /* #06060e */
  /* Köpfe der Menüflächen kräftiger (Fabian 04.10.2026 ~23:30: „diese Farbe müsste kräftiger in den Menüs sein so sieht es farblich
     viel zu schwach aus und schon ausgeblichen“): #c084fc auf #f1f1f9 = 2,4:1, #7c3aed = 5,1:1. Von Fabian bestellte Ausnahme
     von der Umkehrung (dunkel bleibt #c084fc), hellmodus-exakt.cjs. */
  --gn-lila: #7c3aed;
}
/* Nummern der Leistungen in Menü und Produktleiste: tiefe Töne derselben Farbreihe (menue.ts FARBEN_HELL), Fabian 04.10.2026 ~23:50:
   „diese Farbe ist wie ausgeblichen und praktisch nicht zu sehen … das soll kräftig und sichtbar sein“. Ausnahme, hellmodus-exakt.cjs. */
:root[data-theme='hell'] body:not(#_hell) :is(.gn-nr, .ln-nr) { color: var(--nr-hell, var(--nr)); }
:root[data-theme='hell'] body:not(#_hell) :is(.gn-sprung, .gn-link, .gn-ausklapp, .gn-symbol, .gn-thema-wahl, .gn-a, .gn-zusatz,
                                              .ln-name, .ln-knopf, .ln-link, .ln-drop a, .gn-m-punkt, .gn-m-kontakt a,
                                              .gn-m-thema-wahl button, .gn-m-zurueck, .gn-m-titel) {
  color: #000000;
}
/* „Du bist hier“ im White Mode: SCHRIFT IM MARKENVERLAUF, darunter der Verlaufsstrich (Fabian 05.10.2026 nachts: „Ich will nicht, dass
   sich das in diesem hässlichen Blau von der Farbe her umändert … Das kann ruhig schwarz werden, aber halt mit dieser Gradient-Unterschrift.
   Oder wir machen einfach den Text dann in Gradient, wenn es ausgewählt ist. Das würde sogar noch am besten passen.“). Verlauf = derselbe
   wie jede Verlaufsschrift im White Mode (--verlauf-text, seit 05.10. mittags satter; ⛔ WAR --verlauf-weich). Zwei Bildschichten: die erste auf die Schrift geschnitten, die zweite als
   2-px-Strich unten; Nummern und Zusätze behalten ihre eigene Farbe. Gilt auch beim Überfahren (sonst ersetzte der Hover-Grund den
   Verlauf und die Schrift wäre durchsichtig). Gewählte Darstellung: Schwarz, fett, mit Haken bzw. Rahmen.
   ⛔ WAR 04.10. abends bis 05.10.: tiefes Blau #0369a1. Von Fabian bestellte Ausnahme von der exakten Umkehrung (hellmodus-exakt.cjs). */
:root[data-theme='hell'] body:not(#_hell) :is(.gn-a.ist-hier, .gn-a.ist-hier:hover, .gn-a.ist-hier:focus-visible,
                                              .ln-link.ist-hier, .ln-link.ist-hier:hover, .ln-link.ist-hier:focus-visible,
                                              .ln-drop a[aria-current], .ln-drop a[aria-current]:hover,
                                              .ln-drop a[aria-current]:focus-visible, .gn-m-punkt.ist-hier > span) {
  color: transparent;
  -webkit-text-fill-color: transparent;
  background-image: var(--verlauf-text), var(--verlauf-text);
  background-size: 100% 100%, 100% 2px;
  background-position: 0 0, 0 100%;
  background-repeat: no-repeat;
  -webkit-background-clip: text, border-box;
  background-clip: text, border-box;
  text-decoration: none;
  box-shadow: none;
}
/* Die Leiste zeichnet ihren Strich schon mit ::after; dort nur die Schrift im Verlauf (eigene Regel: in der :is()-Gruppe oben
   gälte das höhere Gewicht der Gruppe, und der zweite Strich läge am unteren Rand der Leiste — gesehen 05.10.2026). */
:root[data-theme='hell'] body:not(#_hell) .gn-link.ist-hier {
  color: transparent;
  -webkit-text-fill-color: transparent;
  background-image: var(--verlauf-text);
  background-size: 100% 100%;
  background-repeat: no-repeat;
  -webkit-background-clip: text;
  background-clip: text;
}
:root[data-theme='hell'] body:not(#_hell) :is(.gn-a.ist-hier, .ln-link.ist-hier, .ln-drop a[aria-current], .gn-m-punkt.ist-hier > span) :is(.gn-nr, .gn-zusatz, svg) {
  -webkit-text-fill-color: currentColor;
}
:root[data-theme='hell'] body:not(#_hell) :is(.gn-a.ist-hier, .ln-link.ist-hier, .ln-drop a[aria-current]) .gn-zusatz { color: #545465; }
:root[data-theme='hell'] body:not(#_hell) .ln-link.ist-hier svg { color: #000000; }
:root[data-theme='hell'] body:not(#_hell) :is(.gn-thema-wahl[aria-checked='true'], .gn-m-thema-wahl button[aria-pressed='true']) {
  color: #000000;
  font-weight: 700;
}
@media (hover: hover) {
  :root[data-theme='hell'] body:not(#_hell) .gn-symbol:hover { background: rgb(0 0 0 / 0.08); color: var(--gn-blau); }
  :root[data-theme='hell'] body:not(#_hell) .ln-knopf:hover { background: rgb(0 0 0 / 0.08); }
}
:root[data-theme='hell'] body:not(#_hell) .gn-symbol:focus-visible { background: rgb(0 0 0 / 0.08); color: var(--gn-blau); }
:root[data-theme='hell'] body:not(#_hell) :is(.gn-thema-wahl, .ln-knopf, .ln-link, .ln-drop a):focus-visible {
  background: rgb(0 0 0 / 0.08);
}
:root[data-theme='hell'] body:not(#_hell) :is(.gn-knopf, .ln-anfrage):focus-visible { outline-color: #000000; }
:root[data-theme='hell'] body:not(#_hell) :is(.gn-thema-menue, .ln-drop) {
  border-color: rgb(0 0 0 / 0.12);
  box-shadow: 0 24px 48px -16px rgb(255 255 255 / 0.8);
}
:root[data-theme='hell'] body:not(#_hell) .gn-vorhang { background: rgb(255 255 255 / 0.45); }
:root[data-theme='hell'] body:not(#_hell) .ln::before { background: rgb(241 241 249 / 0.82); }   /* rgb(6 6 14 / 0.82) */
:root[data-theme='hell'] body:not(#_hell) .ln::after { background: rgb(0 0 0 / 0.12); }
:root[data-theme='hell'] body:not(#_hell) .ln-flaeche { border-bottom-color: rgb(0 0 0 / 0.12); }
:root[data-theme='hell'] body:not(#_hell) .gn-burger span { background: #000000; }
:root[data-theme='hell'] body:not(#_hell) .gn-m-thema-wahl button { border-color: rgb(0 0 0 / 0.14); }
:root[data-theme='hell'] body:not(#_hell) .gn-m-thema-wahl button[aria-pressed='true'] { border-color: transparent; }

/* Logo: die Fassung „Hell · für weiße Hintergründe“ aus dem Marken-Kit ist die Umkehrung (weißes Feld, schwarzes X). */
:root[data-theme='hell'] body:not(#_hell) :is(.gn-logo, .fuss__logo) img.logo-dunkel { display: none; }
:root[data-theme='hell'] body:not(#_hell) :is(.gn-logo, .fuss__logo) img.logo-hell { display: block; }
:root[data-theme='hell'] body:not(#_hell) .gn-thema-zeichen--dunkel { display: none; }
:root[data-theme='hell'] body:not(#_hell) .gn-thema-zeichen--hell { display: block; }

/* ── Bauteile mit festen Neutralfarben (Kommentar = Wert im Dunkeln) ─────────────────────────────────────────────── */
/* Übersicht aller Starlink-Lösungen */
:root[data-theme='hell'] body:not(#_hell) .al__gruppe a { border-bottom-color: rgb(0 0 0 / 0.08); }      /* Weiß .08 */
:root[data-theme='hell'] body:not(#_hell) .al__gruppe a:not(:hover):not(:focus-visible) { color: #000000; }  /* #fff */

/* Preistabelle */
:root[data-theme='hell'] body:not(#_hell) .pk__tab thead th { background: #f7f7fa; border-bottom-color: #aaaac5; } /* #050508, #3a3a55 */
:root[data-theme='hell'] body:not(#_hell) .pk__gruppe td { background: #ebebf2; }                        /* #0d0d14 */
:root[data-theme='hell'] body:not(#_hell) .pk__tab tbody td.pk__nein { color: #aaaac5; }                 /* #3a3a55 */

/* Anfragemodul */
:root[data-theme='hell'] body:not(#_hell) .anfrage .knopf:not(.knopf--haupt) { background: rgb(0 0 0 / 0.08); }
:root[data-theme='hell'] body:not(#_hell) .anfrage .knopf:not(.knopf--haupt):hover { background: rgb(0 0 0 / 0.14); }
:root[data-theme='hell'] body:not(#_hell) .karte__wa:not(:hover):not(:focus-visible) { color: #373747; }  /* #b8b8c8 */
:root[data-theme='hell'] body:not(#_hell) .feld__wahl option { background: #e5e5ed; color: #0f0f17; }    /* #12121a, #e8e8f0 */
/* Pfeil der Auswahlliste: Strich #94a3b8 → #47566b */
:root[data-theme='hell'] body:not(#_hell) .feld__wahl {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2347566b' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
}
:root[data-theme='hell'] body:not(#_hell) .tw__gitter button:disabled { color: rgb(0 0 0 / 0.22); }      /* Weiß .22 */
/* Gewählter Termin: Schrift auf dem Verlauf bleibt schwarz (im Dunkeln var(--nacht) = #000). */
:root[data-theme='hell'] body:not(#_hell) .tw__gitter button[aria-pressed='true'] { color: #000000; }

/* QR-Karte (/karte/) */
:root[data-theme='hell'] body:not(#_hell) :is(.karte-ort, .karte-unter, .karte-fuss a:not(:hover)) { color: #545465; } /* #9a9aab */
:root[data-theme='hell'] body:not(#_hell) :is(.karte-wege a:hover, .karte-wege a:focus-visible) .karte-unter { color: inherit; }

/* Über uns, Einsatzgebiet */
:root[data-theme='hell'] body:not(#_hell) .gg__seite--alt { background: rgb(0 0 0 / 0.02); }
:root[data-theme='hell'] body:not(#_hell) .gg__seite--wir {
  background: radial-gradient(120% 100% at 0 100%, rgb(168 85 247 / 0.16), transparent 60%), rgb(0 0 0 / 0.04);
}
:root[data-theme='hell'] body:not(#_hell) .ot__raster a { background: rgb(0 0 0 / 0.03); }
:root[data-theme='hell'] body:not(#_hell) :is(.ot__raster a:hover, .ot__raster a:focus-visible) { background: rgb(0 0 0 / 0.06); }

/* Beratungsfenster und Einwilligungskasten: schwarze Schatten und Abdunkelung → weiß */
:root[data-theme='hell'] body:not(#_hell) .beratung__knopf { box-shadow: var(--glut), 0 18px 40px -18px rgb(255 255 255 / 0.9); }
:root[data-theme='hell'] body:not(#_hell) .beratung__knopf:hover { box-shadow: var(--glut-stark), 0 22px 44px -18px rgb(255 255 255 / 0.9); }
:root[data-theme='hell'] body:not(#_hell) .fenster { box-shadow: 0 0 0 1px var(--kante-hell), 0 40px 80px -30px rgb(255 255 255 / 0.95); }
:root[data-theme='hell'] .fenster::backdrop { background: rgb(255 255 255 / 0.55); }
:root[data-theme='hell'] body:not(#_hell) .ew { box-shadow: 0 -18px 40px -20px rgb(255 255 255 / 0.9); }

/* WhatsApp-Knopf: Fokusrahmen #fff → #000 (Grün und Zeichen bleiben) */
:root[data-theme='hell'] body:not(#_hell) .wa:focus-visible { outline-color: #000000; }

/* Rechtstexte: Hinweiszeilen mit Weiß .5 im style-Attribut */
:root[data-theme='hell'] body:not(#_hell) .rt__text [style*='rgba(255,255,255,0.5'] { color: rgb(0 0 0 / 0.5) !important; }

/* ── Technik-Grafiken: schwarze Tafel → weiße Tafel (StarlinkSchaubild, StarlinkDatenweg, StarlinkZahlen) ────────── */
:root[data-theme='hell'] body:not(#_hell) :is(.sb__bild, .dw__bild) { background: #ffffff; }
:root[data-theme='hell'] body:not(#_hell) .sb__bild stop[stop-color='#16112e'] { stop-color: #d6d1ee; }
:root[data-theme='hell'] body:not(#_hell) .sb__bild stop[stop-color='#000000'] { stop-color: #ffffff; }
:root[data-theme='hell'] body:not(#_hell) .sb__sterne circle { fill: #000000; }
:root[data-theme='hell'] body:not(#_hell) .sb__bahnlinie { stroke: rgb(0 0 0 / 0.28); }
:root[data-theme='hell'] body:not(#_hell) .sb__erde { fill: #f0f0f7; }                                   /* #08080f */
:root[data-theme='hell'] body:not(#_hell) :is(.sb__kreis, .dw__kreis) { fill: #e9e9f4; stroke: rgb(0 0 0 / 0.22); } /* #0b0b16 */
:root[data-theme='hell'] body:not(#_hell) :is(.sb__zeichen, .dw__zeichen:not(.dw__zeichen--farbe)) { stroke: #000000; }
:root[data-theme='hell'] body:not(#_hell) :is(.sb__klein, .dw__raumwort) { fill: rgb(0 0 0 / 0.55); }
:root[data-theme='hell'] body:not(#_hell) :is(.sb__name, .sb__nrtext, .dw__name, .dw__zonenwort--tunnel) { fill: #000000; }
:root[data-theme='hell'] body:not(#_hell) :is(.sb__zusatz, .dw__zusatz) { fill: rgb(0 0 0 / 0.62); }
:root[data-theme='hell'] body:not(#_hell) :is(.sb__nr, .dw__schlosskreis) { fill: #ffffff; }
:root[data-theme='hell'] body:not(#_hell) .sb__schrittnr { background: linear-gradient(#fff, #fff) padding-box, var(--verlauf) border-box; }
:root[data-theme='hell'] body:not(#_hell) .dw__raum { fill: rgb(0 0 0 / 0.035); }
:root[data-theme='hell'] body:not(#_hell) .sz__spur { background: rgb(0 0 0 / 0.06); }
:root[data-theme='hell'] body:not(#_hell) .sz__wert--grau { background: rgb(0 0 0 / 0.32); }
:root[data-theme='hell'] body:not(#_hell) :is(.sz__ruhe, .sz__legende-ruhe) { background: #000000; }
