/* XGLD LIGHT MODE V2 - SHELL + HOME V1 - 2026-08-26
   Diese Datei ist neu (ABSENT_BEFORE), keine Markerblock-Konvention noetig
   (siehe assets/css/xgld-light-mode.css fuer dieselbe Begruendung). Sie
   laedt NACH der V1-Legacy-Datei (Enqueue-Abhaengigkeit + Prioritaet 210,
   siehe functions.php) und ist fuer genau diesen Scope massgeblich:
   globaler Seitenrahmen, Header, Kursleiste, Startseite, Footer. Shop,
   Produkt, Warenkorb, Checkout, Konto, Support und Infoseiten bleiben in
   diesem Pass unberuehrt und weiterhin allein von V1 getragen.

   RICHTUNG (Gate A, "Kopfsteg und Satzspiegel")
   Zwei Seitentoene, wie im Dark Mode (dort #090D12 Apparat / #0B1620
   Katalog, Abstand 1,066:1): Apparat (Header+Kursleiste+Footer) traegt
   --xgld-light-page-muted (#EDE8DE), Katalog (Seite/Startseite) traegt
   --xgld-light-page (#F3F0E9) - Abstand 1,073:1, derselbe Zug, kein neuer
   Ton. Beide Tokens existieren bereits in der V1-Datei.

   LOGO (Nachtrag nach gescheiterter visueller Pruefung des Markenfelds)
   Das ehemalige dunkle Markenfeld hinter dem Logo (Gate-B-Korrektur K1)
   wurde bei der manuellen Pruefung NICHT freigegeben - ein dunkler Kasten
   auf hellem Header blieb sichtbar, unabhaengig von seiner Geometrie.
   Ersetzt durch echte Freistellung: aus der Originaldatei
   (/root/xgld-logo-source.png, schwarzer Hintergrund fest eingebrannt,
   kein Alphakanal) wurden per deterministischem Skript (Pass-Ordner,
   extract-logo.php, nutzt nur die bereits installierte PHP-Imagick-
   Erweiterung als PNG-Lese-/Schreibbruecke - kein KI-Neuzeichnen) zwei eng
   zugeschnittene, echte transparente PNGs erzeugt:
     assets/images/xgld-logo-header-dark.png   (Weiss/Gold, wie bisher)
     assets/images/xgld-logo-header-light.png  (Weissanteile -> Graphit
                                                 --xgld-light-heading,
                                                 Gold unveraendert)
   Beide Dateien liegen jetzt UEBEREINANDER in header.php (zwei <img>,
   position:absolute in einem fest bemessenen Anchor) - die Umschaltung
   ist eine reine display:none/block-Regel hier unten, kein Markenfeld,
   keine dunkle Flaeche mehr noetig. Geometrie/Breakpoint-Groessen des
   Anchors stehen in style.css (gilt fuer beide Themes gleich, reine
   Geometrie), siehe dortigen Block gleichen Namens.

   BUG-FIX AUS V1 (siehe README dieses Passes)
   Der V1-Generator hat durch einen Parserfehler (@import ohne eigene
   Klammern direkt vor der ersten echten Regel) die globale body-Regel
   verschluckt. Diese Datei schreibt html/body/Wrapper deshalb von Hand,
   nicht generiert - siehe Abschnitt 1 unten.

   GOLD AUF DEM APPARAT (Sonderfall, siehe Gate-A-Messung)
   --xgld-light-gold-interactive (#8A6115) faellt auf #EDE8DE von 4,85:1
   auf 4,52:1 - besteht, aber ohne Reserve. Deshalb: auf dem Apparat nie
   kleiner als 12px setzen, nicht zusaetzlich aufhellen. --xgld-light-
   text-status (#727E8A) ist auf dem Apparat gesperrt (nur 3,39:1) -
   dort mindestens --xgld-light-text-tertiary (#59666F, 4,84:1) verwenden.

   Rollback: .xgld-light-mode-v2-shell-home-v1-20260826/rollback.sh (Datei
   wird geloescht, kein Markerblock zu entfernen). */

html[data-xgld-theme="light"] {
    /* Kleiner, lesbarer V2-Tokenblock - keine neuen Farben, nur Aliasse
       auf die bereits in V1 definierten Custom Properties. */
    --xgld-light-band: var(--xgld-light-page-muted);
    --xgld-light-band-line: var(--xgld-light-border);
}

/* ===========================================================================
   1. GLOBALER SEITENRAHMEN (Bug-Fix, von Hand geschrieben, nicht generiert)
   =========================================================================== */

html[data-xgld-theme="light"] body {
    background-color: var(--xgld-light-page);
    color: var(--xgld-light-text);
}

/* ===========================================================================
   2. HEADER
   =========================================================================== */

html[data-xgld-theme="light"] header.xgld-header {
    background: var(--xgld-light-band) !important;
    border-bottom-color: var(--xgld-light-band-line) !important;
}

/* --- Logo: echtes Light-Logo installiert --------------------------------
   XGLD LIGHT LOGO INSTALL V1 - 2026-08-27 (Korrektur 2026-08-27)
   header.php hat wieder zwei uebereinanderliegende <img> im Anchor (Dark +
   das neu installierte, echte Light-Logo mit Alphakanal). Umschaltung wie
   im urspruenglichen Zwei-Bild-Konzept (XGLD LIGHT MODE V2 SHELL HOME V1):
   im Light Mode das Dark-Bild ausblenden, das Light-Bild einblenden - kein
   JavaScript, kein src-Wechsel.

   KORREKTUR: Beim ersten Schreiben dieses Blocks wurde nur der Kommentar
   aktualisiert (er behauptete bereits, die Anchor-Regel sei entfallen) -
   die tatsaechliche Regel "visibility:hidden" auf .xgld-hd-logo (aus
   XGLD LIGHT LOGO CLEAN RESET V1, dort noetig, weil damals kein Light-Bild
   existierte) blieb jedoch versehentlich stehen und ueberdeckte das neu
   eingeblendete Light-Bild vollstaendig - ein Kind-Element kann
   visibility:hidden auf einem Vorfahren nicht durch display:block
   aufheben. Da dieser gesamte Block bereits zu diesem noch offenen Pass
   gehoert (nicht zum laengst abgeschlossenen Clean-Reset-Pass), wird die
   verwaiste Regel hier direkt entfernt statt durch eine zusaetzliche
   visibility:visible-Regel ueberschrieben - sie ist die einzige
   visibility-Regel auf diesem Selektor im gesamten Theme, eine reine
   Ueberschreibung waere unnoetiger Ballast. Kein !important noetig, da
   keine hoeher-spezifische oder spaeter geladene Konkurrenzregel existiert.
   Rollback: .xgld-light-logo-install-v1-20260827/rollback.sh */
html[data-xgld-theme="light"] .xgld-hd-logo-img-dark {
    display: none;
}

/* XGLD HEADER LIGHT LOGO LIGHT MODE ONLY V1 - 2026-08-28 (Korrektur)
   Ursache, warum das Light-Logo trotz dieser (korrekten) Regel unsichtbar
   blieb: das <img> selbst trug inline display:none in header.php. Eine
   Inline-Deklaration schlaegt jede externe Regel ohne !important,
   unabhaengig von deren Spezifitaet - display:block hier unten konnte das
   inline gesetzte display:none also nie ueberschreiben, ganz gleich wie
   die Selektoren aussahen.

   Fix: das inline display:none wurde in header.php entfernt. Die
   Sichtbarkeit steht jetzt ausschliesslich hier, rein extern, ueber zwei
   Regeln - eine neue Basisregel (Standardzustand ohne data-xgld-theme
   sowie jeder andere Wert ausser "light": verborgen) und die bestehende
   Override-Regel darunter (nur unter data-xgld-theme="light": sichtbar).
   Ohne Inline-Konkurrenz gewinnt die spezifischere Override-Regel ganz
   regulaer, kein !important noetig.

   Dark Mode bekommt in diesem Pass weiterhin bewusst kein Logo - das
   Dark-<img> wird nicht wieder eingefuegt, keine Dark-Logo-Datei
   wiederhergestellt.
   Rollback: .xgld-header-light-logo-light-mode-only-v1-20260828/rollback.sh */
.xgld-hd-logo-img-light {
    display: none;
}

/* XGLD LIGHT LOGO SCALE V1 - 2026-08-28
   Reine optische Vergroesserung, PNG-Pixel unveraendert. Ursache der
   kleinen Wirkung: die Leinwand (1774x887, Verhaeltnis 2,0:1) ist
   niedriger im Verhaeltnis als der Anchor (171x72, Verhaeltnis 2,375:1) -
   object-fit:contain skaliert deshalb nach der Hoehe, nicht nach der
   Breite, und stellt das Bild bisher nur 144x72px innerhalb der 171x72px-
   Box dar (84,2% der verfuegbaren Breite). Bei allen drei Breakpoints
   (171x72 / 135x57 / 107x45, siehe style.css "XGLD LIGHT MODE V2 SHELL
   HOME V1") liegt dasselbe Verhaeltnis vor (~84%), weil Anchor- und
   Canvas-Seitenverhaeltnis ueberall im gleichen Verhaeltnis zueinander
   stehen - ein einziger Skalierungsfaktor wirkt deshalb an allen drei
   Breakpoints gleich (rechnerisch gegengeprueft: 99,4% / 99,6% / 99,3%
   der jeweiligen Container-Breite), kein eigener Wert pro Breakpoint
   noetig.

   transform:scale(1.18) auf dem bereits vorhandenen <img> vergroessert
   nur die Darstellung (kein Reflow, keine Layoutverschiebung), zentriert
   um transform-origin:center center - Nachbarelemente ruecken nicht,
   der Anchor behaelt seine bisherige 171x72px-Flaeche (siehe header.php).
   Vertikaler Ueberhang ueber die Anchor-Hoehe hinaus rechnerisch ca. 4-
   6,5px je Seite je nach Breakpoint - unkritisch, da weder .xgld-header
   noch .xgld-hd-logo irgendwo overflow:hidden setzen (gezielt geprueft,
   kein Treffer) und der Header historisch bereits weit groessere Logo-
   Boxen (190px) ohne Ueberlappung mit der Kursleiste getragen hat.

   Bewusst kein separater Wert fuer die Tablet-/Mobil-Breakpoints - die
   Rechnung oben zeigt denselben Zielbereich (~99% Breite) an allen drei
   Groessen. Falls die manuelle Pruefung dort trotzdem zu eng wirkt, kann
   ein eigener Wert innerhalb der bestehenden @media-Bloecke in style.css
   (Abschnitt "XGLD LIGHT MODE V2 SHELL HOME V1") ergaenzt werden, ohne
   diese Regel hier zu aendern.

   NACHTRAG 2026-08-28 (manuelle QA nicht bestanden - historische Achse):
   Forensischer Abgleich gegen den letzten Pass-Stand vor der Logo-
   Bereinigung (.xgld-light-logo-clean-reset-v1-20260827/header.php.pre)
   ergab: .xgld-hd-search, der Anchor selbst (171x72px), die Kursleiste
   und das .xgld-header-Inline-Style sind seit VOR der Logo-Bereinigung
   bytegenau unveraendert (diff geprueft, keine Abweichung) - keiner
   dieser Bereiche wurde in irgendeinem Logo-Pass beruehrt. Die alte
   Logo-Datei (600x253, kein object-fit, reines width:100%;height:100%)
   fuellte die 171x72px-Box damals randvoll, ohne Letterboxing.

   Die aktuelle Datei (1774x887, Verhaeltnis 2,0:1) braucht object-fit:
   contain (anderes Seitenverhaeltnis) und wird dadurch anders im Kasten
   platziert - object-fit:contain zentriert per Default (object-position:
   50% 50%) exakt auf denselben Boxmittelpunkt wie die alte, randvoll
   fuellende Datei; geometrisch liegt also kein Versatz vor.

   Einzige messbare Abweichung: das sichtbare Motiv sitzt nicht exakt in
   der Mitte der 1774x887-Leinwand (Alpha-Bounding-Box in voller
   Aufloesung vermessen: x 138..1676, y 177..760 -> Motivmittelpunkt
   (907, 468.5) gegenueber Canvasmittelpunkt (887, 443.5) = Versatz
   dx=20px, dy=25px in Canvas-Pixeln). Hochgerechnet auf die dargestellte
   Groesse (Skalierungsfaktor Canvas->Box 0,08117, danach x1,18 fuer den
   bereits akzeptierten Scale-Wert): dx=1,92px, dy=2,39px - das ist die
   einzige aus Messwerten hergeleitete, nicht frei geratene Korrektur.
   translate() wirkt nach scale() (CSS wendet Funktionen von rechts nach
   links auf den Punkt an), die Werte sind deshalb bereits in bereits
   skalierten Pixeln angegeben und muessen nicht zusaetzlich mit 1,18
   multipliziert werden.

   Diese Korrektur ist klein (<2,5px) und behebt keinen Header-Bug, weil
   keiner gefunden wurde - Suchfeld, Anchor und Kursleiste stehen bereits
   exakt wie vor der Bereinigung. Die verbleibende, groessere optische
   Differenz (die neue Datei wirkt "leerer" als die alte) liegt daran,
   dass ihr Motiv nur ~65,7% der Canvashoehe einnimmt (alte Datei fuellte
   ihre Leinwand nahezu vollstaendig) - das ist eine Eigenschaft der
   Bilddatei selbst, nicht der Header-Geometrie.

   NACHTRAG 2026-08-28 (2) - Asset statt Transform:
   scale()/translate() haben die Grundursache nicht behoben: das gerenderte
   Bild wurde durch scale(1.18) ca. 85px hoch - 13px hoeher als die 72px-
   Box, sichtbarer Ueberhang Richtung Kursleiste. Statt die Darstellung
   weiter per Transform zu biegen, wurde die Datei selbst (nicht ihr
   Motiv) neu zugeschnitten: assets/images/xgld-logo-header-light.png ist
   jetzt 1596x672px, exakt 19:8 = 171:72 wie der Anchor (Pass-Ordner
   normalize_logo.php, deterministisch, imagecopy() ohne Resampling,
   Pixel-Identitaetscheck 961.184/961.184 ohne Abweichung gegenueber der
   Originaldatei - siehe Pass-README fuer die vollstaendige Herleitung).
   Weil die Canvas-Breite jetzt dem Anchor-Verhaeltnis entspricht, stellt
   object-fit:contain das Bild praktisch randfuellend dar (kein
   nennenswerter Ueberhang mehr) - transform ist dadurch ueberfluessig
   und komplett entfernt, reines display:block reicht.
   Rollback: .xgld-light-logo-scale-v1-20260828/rollback.sh

   NACHTRAG 2026-08-28 (3) - minimale vertikale Korrektur nach Freigabe:
   Groesse und horizontale Position wurden visuell freigegeben ("perfekt").
   Einziger Rest-Punkt: zu wenig Abstand zwischen sichtbarer Logo-
   Unterkante/Unterzeile und der Trennlinie zur Kursleiste - Logo soll
   4px hoeher sitzen, sonst nichts.

   Hinweis zur Umsetzung: der Nutzerauftrag nannte als Ausgangspunkt
   "transform: translate(-1.92px, -2.39px) scale(1.18);" - diese Regel
   war zum Zeitpunkt dieses Nachtrags bereits nicht mehr aktiv (durch die
   Asset-Normalisierung im vorherigen Nachtrag ersetzt, seitdem reicht
   reines display:block ohne Transform). Da genau dieser transformfreie
   Zustand die soeben freigegebene Groesse/Position ist, wird hier
   ausschliesslich ein reiner vertikaler Versatz ergaenzt - kein scale
   (die Datei ist bereits korrekt proportioniert, ein zusaetzliches
   scale(1.18) wuerde sie erneut vergroessern und den behobenen Ueberhang
   zurueckbringen) und kein horizontaler translate (Position soll
   ausdruecklich unveraendert bleiben).
   Rollback: .xgld-light-logo-scale-v1-20260828/rollback.sh */
html[data-xgld-theme="light"] .xgld-hd-logo-img-light {
    display: block;
    transform: translateY(-4px);
}

/* --- Suchfeld -------------------------------------------------------- */
html[data-xgld-theme="light"] #xgld-search-input {
    background: var(--xgld-light-surface) !important;
    border-color: var(--xgld-light-border-field) !important;
    color: var(--xgld-light-heading) !important;
}

html[data-xgld-theme="light"] #xgld-search-input::placeholder {
    color: var(--xgld-light-text-tertiary);
}

html[data-xgld-theme="light"] .xgld-hd-searchhints {
    color: var(--xgld-light-text-secondary) !important;
}

/* Lupe im Suchfeld-Submit - Praesentationsattribut, kein !important. */
html[data-xgld-theme="light"] .xgld-hd-search button[type="submit"] svg {
    stroke: var(--xgld-light-text-tertiary);
}

html[data-xgld-theme="light"] .xgld-quicksearch {
    color: var(--xgld-light-gold-interactive) !important;
}

/* --- BTC-Sicherheit / Versicherter Wertversand (Trust-Links) --------- */
html[data-xgld-theme="light"] .xgld-hd-trust-link > div:last-child {
    color: var(--xgld-light-text-secondary) !important;
}

/* INTEX-Unterzeile setzt ihre Farbe selbst (eigenes Inline-Attribut,
   erbt die Wrapperfarbe darueber deshalb nicht) - Gate-B-Korrektur K3. */
html[data-xgld-theme="light"] .xgld-hd-trust-link > div:last-child > div:last-child {
    color: var(--xgld-light-text-tertiary) !important;
}

html[data-xgld-theme="light"] .xgld-hd-trust-title {
    color: var(--xgld-light-heading);
}

html[data-xgld-theme="light"] .xgld-hd-trust-link:hover .xgld-hd-trust-title {
    color: var(--xgld-light-gold-hover);
}

/* Schild-/Versand-Icon (Kontur). Das Bitcoin-Icon (fill-basiert, eigene
   Markenfarben #F7931A/#FFFFFF) wird bewusst nicht angefasst. SVG-
   Praesentationsattribute (stroke="...") haben ohnehin die niedrigste
   Kaskadenprioritaet - kein !important noetig. */
html[data-xgld-theme="light"] .xgld-hd-trust-link svg[stroke] {
    stroke: var(--xgld-light-gold-decorative);
}

/* --- Support-Link ("Fragen?" / "Zum Support") ------------------------
   Ergaenzt die bestehende Klasse aus "XGLD HEADER SUPPORT LINK MINI
   HOTFIX V1" um ihre Light-Entsprechung - jener Block selbst bleibt
   unangetastet (Dark-Werte darin sind fremd). */
html[data-xgld-theme="light"] .xgld-hd-contact-title {
    color: var(--xgld-light-heading);
}

html[data-xgld-theme="light"] .xgld-hd-contact-link:hover .xgld-hd-contact-title {
    color: var(--xgld-light-gold-hover);
}

html[data-xgld-theme="light"] .xgld-hd-contact-link svg[stroke] {
    stroke: var(--xgld-light-gold-decorative);
}

/* Zweite Zeile "Zum Support" - bleibt Gold, nur dunkler (Textkontrast). */
html[data-xgld-theme="light"] .xgld-hd-contact-link > div:last-child > div:last-child {
    color: var(--xgld-light-gold-interactive) !important;
}

/* --- Konto / Merkzettel / Warenkorb ----------------------------------- */
html[data-xgld-theme="light"] .xgld-navlink {
    color: var(--xgld-light-text-secondary) !important;
}

html[data-xgld-theme="light"] .xgld-navlink svg {
    stroke: var(--xgld-light-text-tertiary) !important;
}

/* Der bestehende <style>-Block in header.php (vor jedem enqueueten
   Stylesheet im Kopf) faerbt Hover mit !important auf #F5F5F5 - ohne
   eigenes !important auf hoeherer Spezifitaet wuerde diese Regel jede
   Light-Anpassung schlagen (siehe README, Diagnose). */
html[data-xgld-theme="light"] .xgld-navlink:hover {
    color: var(--xgld-light-heading) !important;
}

html[data-xgld-theme="light"] .xgld-navlink:hover svg {
    stroke: var(--xgld-light-heading) !important;
}

/* Warenkorb (kein eigenes .xgld-navlink - dritter Link in .xgld-hd-account,
   deshalb strukturell als letztes Kind adressiert): Icon bleibt Gold-
   Kontur, Text/Zaehler wird Gold-Text - beides dunkler als der Dark-Wert,
   wie beim uebrigen Gold-als-Text der Seite. */
html[data-xgld-theme="light"] .xgld-hd-account a:last-child {
    color: var(--xgld-light-gold-interactive) !important;
}

html[data-xgld-theme="light"] .xgld-hd-account a:last-child svg {
    stroke: var(--xgld-light-gold-decorative) !important;
}

/* --- Theme-Schalter (Gate-B-Korrektur K2) -----------------------------
   Spur/Knopf/Fokusring stammen aus "XGLD HEADER UTILITY - 2026-08-18"
   (V1) unter der damaligen Annahme, der Schalter bleibe Teil eines
   durchgehend dunklen Bandes. Mit "Kopfsteg und Satzspiegel" liegt er
   jetzt auf hellem Apparat-Grund und braucht seine eigene Light-Optik -
   reiner Farbwechsel, keine Geometrieaenderung. */
html[data-xgld-theme="light"] .xgld-theme-toggle-track {
    background: var(--xgld-light-surface);
    border-color: var(--xgld-light-border-field);
}

html[data-xgld-theme="light"] .xgld-theme-toggle-knob {
    background: var(--xgld-light-text-tertiary);
    /* currentColor der Mondsichel/Sonne = Spurfarbe, wie im Dark-Original -
       die Aussparung bleibt dieselbe optische Idee, nur umgekehrt hell. */
    color: var(--xgld-light-surface);
}

html[data-xgld-theme="light"] .xgld-theme-toggle:focus-visible {
    outline-color: var(--xgld-light-focus);
}

/* --- DE/EN-Sprachumschalter -------------------------------------------- */
html[data-xgld-theme="light"] .xgld-hd-lang a {
    color: var(--xgld-light-text-secondary) !important;
}

html[data-xgld-theme="light"] .xgld-hd-lang a[style*="D5A137"] {
    color: var(--xgld-light-gold-interactive) !important;
}

html[data-xgld-theme="light"] .xgld-hd-lang span {
    color: var(--xgld-light-border-strong) !important;
}

/* ===========================================================================
   3. KURSLEISTE
   =========================================================================== */

html[data-xgld-theme="light"] #xgld-price-bar.xgld-pricebar {
    background: var(--xgld-light-band) !important;
    color: var(--xgld-light-text-secondary) !important;
}

/* Kurswerte (Ladeplatzhaltertext und nach dem Laden per JS neu geschrieben) -
   !important gewinnt zuverlaessig auch gegen wiederholt neu gesetzte
   Inline-Styles, da CSS-!important einen NICHT-!important-Inline-Style
   immer schlaegt, unabhaengig davon, wie oft das innerHTML ersetzt wird. */
html[data-xgld-theme="light"] .xgld-pb-item > span:not(.xgld-pb-badge) {
    color: var(--xgld-light-heading) !important;
}

/* Trend-Badges - Klassen aus renderBadge() (XGLD LIGHT MODE V2 SHELL HOME
   V1, header.php). Auch der positive Chip wird korrigiert: #16A34A auf
   #DCFCE7 misst 3,00:1 und verfehlt 4,5:1 bei 12px (Gate-A-Messung). Chip-
   Form (Flaeche/Radius/Schrift) bleibt in beiden Modi identisch, nur Farbe
   aendert sich - keine Aenderung an Berechnung, API oder Vorzeichenlogik. */
html[data-xgld-theme="light"] .xgld-pb-badge--up {
    background: #DCFCE7 !important;
    /* Gate-B-Korrektur K4: #15803D auf #DCFCE7 misst bei 12px 4,15:1 und
       verfehlt 4,5:1 weiterhin knapp. #166534 erreicht 6,49:1. */
    color: #166534 !important;
}

html[data-xgld-theme="light"] .xgld-pb-badge--down {
    background: #FECACA !important;
    color: var(--xgld-light-error) !important;
}

/* Metall-/Bitcoin-Icons (fill-basiert, eigene Illustrationsfarben) bleiben
   unangetastet - nur der textuelle Teil der Kacheln aendert sich. */

/* --- Kurskarte (Tooltip-Popover bei Hover, xgldBuildPriceCard()) ------
   Echte schwebende Ebene ueber der jetzt hellen Seite - dafuer ist
   --xgld-light-surface-elevated reserviert (dieselbe Rolle wie beim
   Select2-Dropdown in V1). Ueber .xgld-tooltip adressiert (eigene Klasse),
   nicht ueber das Inline-position:absolute. */
html[data-xgld-theme="light"] .xgld-tooltip {
    background: var(--xgld-light-surface-elevated) !important;
    border-color: var(--xgld-light-border) !important;
    box-shadow: var(--xgld-light-shadow-overlay);
}

/* Ueberschriften/Low/High-Labels (#94A0AA) und -Werte (#F5F5F5). */
html[data-xgld-theme="light"] .xgld-tooltip [style*="color:#94A0AA"] {
    color: var(--xgld-light-text-tertiary) !important;
}

html[data-xgld-theme="light"] .xgld-tooltip [style*="color:#F5F5F5"] {
    color: var(--xgld-light-heading) !important;
}

/* "Aktuell"-Wert bleibt Gold-Text, wie ueberall sonst auf der Seite. */
html[data-xgld-theme="light"] .xgld-tooltip [style*="color:#D5A137"] {
    color: var(--xgld-light-gold-interactive) !important;
}

/* Trendprozent im Kartenkopf - dasselbe Gruen wie im korrigierten Chip
   (K4: #166534), nicht die dark-modekalibrierten #22C55E/#EF4444, die auf
   der jetzt hellen Karte zu wenig Kontrast haetten. Auf der weissen
   Kartenflaeche unkritisch (7,2:1), hier zaehlt vor allem: genau ein Gruen
   auf der ganzen Kursleiste. */
html[data-xgld-theme="light"] .xgld-tooltip [style*="color:#22C55E"] {
    color: #166534 !important;
}

html[data-xgld-theme="light"] .xgld-tooltip [style*="color:#EF4444"] {
    color: var(--xgld-light-error) !important;
}

html[data-xgld-theme="light"] .xgld-tooltip a {
    background: var(--xgld-light-page-muted) !important;
    color: var(--xgld-light-gold-interactive) !important;
    border-top-color: var(--xgld-light-border) !important;
}

/* Datum/Preis-Minitooltip beim Bewegen ueber den Chart (xgldChartHover) -
   sitzt innerhalb der bereits hellen Kurskarte, braucht deshalb einen
   sichtbar abgesetzten, nicht denselben Ton wie deren Flaeche. */
html[data-xgld-theme="light"] .xgld-chart-tip {
    background: var(--xgld-light-page-muted) !important;
    border-color: var(--xgld-light-border) !important;
    color: var(--xgld-light-heading) !important;
}

/* ===========================================================================
   4. STARTSEITE
   =========================================================================== */

/* Keine neue Komposition (Gate A, Frage F: bestaetigt). Die V1-Zuordnungen
   fuer Hero/Editorial-Index/Weight-Discovery/Coin-Showcase/Orientation sind
   rollengetreu und bleiben unveraendert in xgld-light-mode.css stehen - sie
   waren nie das Problem, siehe README. Diese Datei ergaenzt hier bewusst
   NICHTS, ausser dem globalen body-Fix in Abschnitt 1, der die Flaeche
   liefert, auf der jene Zuordnungen erst korrekt lesbar werden.

   Offener Pruefpunkt (kein Fix in diesem Pass, siehe Gate A):
   Coin-Showcase-Bilder sind fuer dunklen Grund freigestellt - ob sie einen
   eingebackenen dunklen Rand/Schein tragen, der auf Creme sichtbar wird,
   ist ohne Browser nicht pruefbar und Teil der manuellen QA. */

/* ===========================================================================
   5. FOOTER
   =========================================================================== */

html[data-xgld-theme="light"] .xgld-footer {
    background: var(--xgld-light-band);
    border-top-color: transparent;
}

html[data-xgld-theme="light"] .xgld-footer-divider {
    background: var(--xgld-light-band-line);
}

html[data-xgld-theme="light"] .xgld-trust-heading {
    color: var(--xgld-light-text-tertiary);
}

html[data-xgld-theme="light"] .xgld-trust-text-main {
    color: var(--xgld-light-text);
}

html[data-xgld-theme="light"] .xgld-trust-text-sub {
    color: var(--xgld-light-text-tertiary);
}

/* Trust-Kacheln: ersatzlos flach (Gate A). Im Dark Mode traegt nicht die
   Flaeche (#0E151C auf #090D12 = 1,06:1, praktisch unsichtbar), sondern
   allein der Rahmen die Abgrenzung - auf Papier braucht derselbe Inhalt
   keines von beidem, Icon und Text stehen direkt auf dem Band. Keine
   Ersatzflaeche, kein Rahmen, kein Hover-Rahmen - nur der Icon-Hover
   bleibt als Feedback. */
html[data-xgld-theme="light"] .xgld-trust-item {
    background: transparent;
    border-color: transparent;
    color: var(--xgld-light-text);
}

html[data-xgld-theme="light"] .xgld-trust-item:hover {
    background: transparent;
    border-color: transparent;
}

html[data-xgld-theme="light"] .xgld-trust-item svg[stroke] {
    stroke: var(--xgld-light-gold-decorative);
}

/* XGLD LIGHT V2 TARGETED CORRECTIONS - 2026-08-27 (K10): war zuvor
   ":hover svg" ohne [stroke]-Filter - traf dadurch auch die Flagge
   (Rects mit fill, kein eigenes stroke) und das Bitcoin-Icon (Kreis+Text,
   ebenfalls nur fill). Beide erbten die neu gesetzte CSS-stroke-Farbe und
   zeigten dadurch eine unerwuenschte duenne goldene Kontur. Jetzt wie die
   Ruheregel oben auf echte Strich-Icons beschraenkt (SSL, BTCPay, Versand);
   Flagge und Bitcoin-Icon bleiben bei Hover unangetastet. */
html[data-xgld-theme="light"] .xgld-trust-item:hover svg[stroke] {
    stroke: var(--xgld-light-gold-hover);
}

/* Hosting in Deutschland / Bitcoin: nur der Text hebt sich bei Hover hervor
   (Flagge bzw. Bitcoin-Icon bleiben laut vorigem Absatz ohnehin unveraendert -
   diese Regel ergaenzt zusaetzlich die bislang fehlende Textfarbe). */
html[data-xgld-theme="light"] .xgld-trust-item--hosting:hover > span,
html[data-xgld-theme="light"] .xgld-trust-item--bitcoin:hover > span {
    color: var(--xgld-light-gold-hover);
}

html[data-xgld-theme="light"] .xgld-footer-lang a {
    color: var(--xgld-light-text-secondary);
}

html[data-xgld-theme="light"] .xgld-footer-lang a:hover {
    color: var(--xgld-light-heading);
}

html[data-xgld-theme="light"] .xgld-footer-lang a.active {
    color: var(--xgld-light-gold-interactive);
}

html[data-xgld-theme="light"] .xgld-footer-copy {
    color: var(--xgld-light-text-tertiary);
}

html[data-xgld-theme="light"] .xgld-footer-nav a,
html[data-xgld-theme="light"] .xgld-footer-legal a {
    color: var(--xgld-light-text-secondary);
}

html[data-xgld-theme="light"] .xgld-footer-nav a:hover,
html[data-xgld-theme="light"] .xgld-footer-legal a:hover {
    color: var(--xgld-light-gold-interactive);
}

/* Fahnen: reine Nationalfarben, unveraendert in beiden Modi. */

/* XGLD HEADER DARK LIGHT LOGO SWITCH V1 - 2026-08-28
   Basisregel fuer das neu in den Anchor eingesetzte Dark-<img>
   (.xgld-hd-logo-img-dark). Sie ist das Spiegelbild der Light-Regel:

     Light-<img>:  Basis .xgld-hd-logo-img-light { display:none } (weiter oben)
                   + html[data-xgld-theme="light"] ... { display:block;
                     transform:translateY(-4px) }
     Dark-<img>:   Basis hier { display:block; transform:translateY(-4px) }
                   + html[data-xgld-theme="light"] .xgld-hd-logo-img-dark
                     { display:none } - diese Regel existiert bereits weiter
                     oben in dieser Datei (aus XGLD LIGHT LOGO INSTALL V1,
                     nach .xgld-logo-remove-both-v1 bewusst stehen geblieben,
                     damit sie beim Wiedereinsetzen eines Dark-<img> von
                     selbst greift). Ihr Attribut-Selektor hat hoehere
                     Spezifitaet als diese Basisregel und gewinnt im Light
                     Mode ohne !important.

   Ergebnis - zu jedem Zeitpunkt genau ein <img> mit display != none:
     kein data-xgld-theme / jeder Wert ausser "light":
         dark  = block  (diese Regel)
         light = none   (Basisregel weiter oben)
     html[data-xgld-theme="light"]:
         dark  = none   (bestehende Attribut-Regel weiter oben)
         light = block  (bestehende Attribut-Regel weiter oben)

   transform:translateY(-4px): das Dark-Logo liegt seit
   .xgld-dark-logo-normalize-v1-20260828 pixelgleich zum Light-Logo auf
   derselben 1596x672-Leinwand. Damit es im Dark Mode exakt dieselbe
   vertikale Position hat wie das im Light Mode bereits freigegebene
   Light-Logo, bekommt es hier denselben, ausdruecklich als eigene Regel
   gefuehrten Versatz. Die Light-Logo-Transform-Regel wird dabei NICHT
   angefasst (anderer Selektor). Kein scale, kein horizontaler translate.

   Keine Umschaltung ueber opacity / visibility / z-index, kein Bild ueber
   dem anderen, kein Inline-display, kein JavaScript am Logo, kein
   !important (die saubere Kaskade traegt).
   Rollback: .xgld-header-dark-light-logo-switch-v1-20260828/rollback.sh
   (Vollsicherung dieser Datei wird zurueckgespielt). */
.xgld-hd-logo-img-dark {
    display: block;
    transform: translateY(-4px);
}

/* ===== XGLD UI RESTKORREKTUREN LIGHT DARK V1 - 2026-08-28 START ============
   Pass .xgld-ui-restkorrekturen-light-dark-v1-20260828/. Light-Anteile von
   Punkt 4 (blaugraue Sekundaerschrift) und Punkt 5 (Negativ-Kurs-Badges).
   Diese Datei laedt nach xgld-light-mode.css; alle Ueberschreibungen hier
   gewinnen bei gleicher Spezifitaet ueber die Ladeposition. Rollback: Block
   entfernen. Keine verursachende Zeile eines fremden Blocks wird editiert -
   die Korrektur steht als spaeter geladene, selektorgleiche Regel.

   --- PUNKT 4: blaugraue Sekundaerschrift im Light Mode eine Stufe dunkler.
   Farbrichtung identisch (HSL-Hue ~206, Blaustich bleibt), Schritt ~6,5 L*
   ("minimal dunkler"). Zentral ueber die zwei Tokens statt gruppierter
   Einzelselektoren - die betroffenen Texte (Header-Unterzeilen "Direkt ueber
   BTCPay"/"mit INTEX", "Beliebte Suchbegriffe:", .xgld-navlink, Ticker-
   Metall-Labels, "Gesamtes Sortiment"/.xgld-idx-sub, Footer-Unterzeilen,
   Shop-Subline, der Produktlink aus Punkt 2) haengen alle an
   var(--xgld-light-text-secondary) bzw. -tertiary. Kontrast neu:
   secondary #3B4750 = 7,8:1 auf #EDE8DE / 8,4:1 auf #F3F0E9; tertiary
   #4A5761 = 6,1 / 6,5:1. Hierarchie bleibt intakt und staffelt sauberer:
   Primaer ~12,7 > Sekundaer 7,8 > Tertiaer 6,1 > Status 3,4.
   --xgld-light-text-status (#727E8A) bleibt unveraendert (Placeholder,
   Metadaten der Kurskarte, deaktivierte Elemente - diese sollen NICHT wie
   normale Information wirken). Dark unveraendert: die Tokens existieren nur
   unter html[data-xgld-theme="light"]. Alte Werte: secondary #4A5761,
   tertiary #59666F (Definition xgld-light-mode.css:52 ff.). */
html[data-xgld-theme="light"] {
    --xgld-light-text-secondary: #3B4750;
    --xgld-light-text-tertiary: #4A5761;
}

/* Rollenkorrektur nach dem Token-Schritt: der Suchfeld-Platzhalter hing an
   tertiary. Nach dem Absenken traegt tertiary #4A5761 - auf der Feldflaeche
   --xgld-light-surface (#F8F5F0) waeren das 6,8:1, also wie eingegebener
   Text. Auf die Platzhalterrolle (--xgld-light-text-status) umgehaengt: dort
   3,8:1 auf #F8F5F0, identisch zu jedem anderen Platzhalter des Themes
   (Z608/Z627/Z2916). Kein Tokenwechsel, selektorgleich zu Z246 spaeter
   geladen. */
html[data-xgld-theme="light"] #xgld-search-input::placeholder {
    color: var(--xgld-light-text-status);
}

/* HINWEIS (Gate-B-F3): .xgld-sortierung-label wird in diesem Pass NICHT
   angehoben. Das 11px-Versallabel steht im Dark bei #5C7185 (3,61:1) und im
   Light bei status (3,64:1) - eine saubere Modus-Spiegelung, kein Light-
   Fehler. Eine einseitige Anhebung nur im Light haette die Paritaet
   gebrochen. Die 11px-Kontrastfrage gehoert in einen eigenen, beidseitigen
   Pass und ist nicht Teil der sechs Punkte. */

/* --- PUNKT 5: negative Kurs-Badges im Light Mode neutral statt rot.
   Der Dark-Default (renderBadge, header.php) ist bereits neutral
   (background rgba(143,163,179,.18) / color #C7D0D8). Nur die Light-
   Ueberschreibung Z407 macht rot (#FECACA / var(--xgld-light-error)). Hier
   mit identischem Selektor (0,2,1) spaeter neutralisiert: Flaeche als
   Sekundaerton bei niedriger Deckung (als rgba formuliert -> bandunabhaengig,
   ~6,4:1 Text-auf-Chip), Text = --xgld-light-text-secondary. Damit wiegt der
   Negativ-Chip exakt so schwer wie der positive (#166534 auf #DCFCE7 =
   6,49:1). Chip-Form (padding/radius/font aus dem Inline-Style),
   Minuszeichen und Zahl unveraendert. --up (Z400) und die positive Tooltip-
   Farbe (Z445) bleiben. !important noetig, da die Badge-<span> background/
   color inline traegt (bestehende Praxis, Z391). Keine Aenderung an
   renderBadge, Geometrie, Berechnung, API, Transient, Timer, REST. Dark
   rendert byte-identisch weiter (Regeln nur unter html[..light]). */
html[data-xgld-theme="light"] .xgld-pb-badge--down {
    background: rgba(74, 87, 97, 0.14) !important;
    color: var(--xgld-light-text-secondary) !important;
}

/* HINWEIS (Gate-B-F4): der Trendprozentwert im Kurskarten-Tooltip wird in
   diesem Pass NICHT neutralisiert. Grund: der Chart-Linienzug im selben
   280px-Popover bezieht seine rote Farbe ueber SVG-Attribute
   (header.php:599/605/607) und ist per CSS nicht erreichbar; eine neutrale
   Zahl direkt ueber dem weiterhin roten Linienzug waere ein schlechterer,
   in sich widerspruechlicher Zustand als der jetzige - und Light waere die
   einzige Stelle, an der der Pass von Dark abweicht (Dark-Tooltip bleibt
   #EF4444). Die Tooltip-Rotfrage (Zahl UND Linienzug, beide Modi) gehoert
   in einen eigenen, modusneutralen Pass. Der Chip oben ist die vom Auftrag
   gemeinte "Minusdarstellung in der Kursleiste" und ist neutralisiert. */
/* ===== XGLD UI RESTKORREKTUREN LIGHT DARK V1 - 2026-08-28 END ===== */

/* ===== XGLD FOOTER TEXT HOTFIX - 2026-08-31 START ==========================
   Pass .xgld-ui-restkorrekturen-light-dark-v1-20260828/, Nachtrag zum
   Light-Footer (Abschnitt "5. FOOTER", Bestandscode ~Z541-547 dieser Datei).
   Dort machte .xgld-trust-item--hosting/--bitcoin:hover > span die beiden
   Texte "Hosted in Germany" und "Bitcoin" per var(--xgld-light-gold-hover)
   golden - anfangs unerwuenscht, "SSL-verschluesselt", "BTCPay Server" und
   "Versand ueber INTEX" hatten ohnehin keine Textregel.

   Alle fuenf Texte tragen jetzt dieselbe Klasse .xgld-trust-text-main
   (footer.php, minimal ergaenzt - siehe Dark-Gegenstueck in style.css,
   selber Pass). Eine Regel deckt damit alle fuenf ab und ueberschreibt die
   Bestandsregel fuer hosting/bitcoin per hoeherer Spezifitaet (vier
   Klassenselektoren ggue. drei dort), OHNE sie zu loeschen oder anzufassen -
   sie bleibt fuer sich genommen unveraendert stehen. Selektor greift
   ausschliesslich am Text-<span>, nicht an .xgld-trust-item, daher kein
   currentColor-Risiko fuer Flagge/Bitcoin-Icon (beide ohne stroke-Attribut,
   nur fill, per svg[stroke]-Eingrenzung ohnehin nie erfasst).

   Korrektur 2026-08-31 (spaeter, separater Auftrag, eigene Sicherung
   xgld-light-mode-v2.css.vor-lichtgoldkorrektur-20260831): die erste Fassung
   dieses Blocks setzte hier bewusst var(--xgld-light-heading) (neutral-
   dunkel statt Gold). Diese Vorgabe wurde ausdruecklich zurueckgenommen -
   jetzt wieder var(--xgld-light-gold-hover), derselbe Ton, den die
   Bestandsregel fuer hosting/bitcoin (s.o.) und .xgld-toast-link:hover
   (assets/css/xgld-light-mode.css ~Z538) im Light Mode bereits als
   Hover-Gold verwenden - kein neuer Ton. Rollback: Block entfernen (nimmt
   den gesamten Nachtrag inkl. dieser Korrektur zurueck) oder gezielt nur
   diese Zeile aus der Sicherung wiederherstellen. */
html[data-xgld-theme="light"] .xgld-trust-item:hover .xgld-trust-text-main {
    color: var(--xgld-light-gold-hover);
}
/* ===== XGLD FOOTER TEXT HOTFIX - 2026-08-31 END ===== */
