/* ══════════════════════════════════════════════════════════════════════════════
   GIRI ACADÉMIE — LA NUIT SUR LES PAGES PUBLIQUES (30/08/2026)
   Mentions légales · CGV · Confidentialité · Rétractation · Retrouver mon accès ·
   Continue ton chemin. Ces pages n'existaient qu'en marbre CLAIR : un élève qui
   sortait du portail en marbre de nuit tombait sur un blanc éblouissant.

   ⛔ DEUX raisons d'écrire CHAQUE règle avec le préfixe à 5 ID ci-dessous :
     1. `marbre-academie.css` est injecté par le vhost **avant `</body>`** :
        il passe donc APRÈS cette feuille. À spécificité égale, il gagne —
        y compris sur `body::before`, la pierre claire qu'il pose lui-même.
     2. Sa règle maîtresse repeint chaque texte en `#2f1d05` avec **4 ID**
        (quatre `:not(#id *)`). Il en faut 5 pour reprendre la main.
   Les id `#z1…#z5` n'existent pas : ils ne servent qu'à peser.
   Rien ne change en thème clair : tout ici est sous `[data-theme="dark"]`.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── LA PIERRE ────────────────────────────────────────────────────────── */
html:has(body[data-theme="dark"]){background-color:#070c17!important;background-image:none!important;-webkit-text-fill-color:#070c17!important}
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5){background-color:transparent!important;background-image:none!important;color:#edf1f8!important;-webkit-text-fill-color:transparent!important}
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5)::before{
  content:''!important;position:fixed!important;inset:0!important;z-index:-2!important;
  pointer-events:none!important;display:block!important;opacity:1!important;
  background:url('/charte-ga/pierre-nuit.webp') center center / cover no-repeat!important;
  filter:none!important;transform:none!important}
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5)::after{
  content:''!important;position:fixed!important;inset:0!important;z-index:-1!important;
  pointer-events:none!important;display:block!important;
  background:linear-gradient(180deg,rgba(4,8,17,.52),rgba(3,6,14,.68))!important}
/* Les fonds décoratifs clairs propres à chaque page (cgv-bg, ml-bg, privacy-bg…)
   s'effacent : la pierre de nuit les remplace. On ne les inverse JAMAIS —
   un `filter:invert` retourne aussi l'or et sort la page de la maison. */
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) :is([class*="-bg"],[class*="-container"],[class*="-wrap"],[class*="-page"],
      [class*="-body"],[class*="-main"],[class*="-inner"],[class*="-gate"],
      .wrap,.page,.container,main,article){
  background:transparent!important;background-image:none!important;background-color:transparent!important;-webkit-text-fill-color:transparent!important}

/* ── L'ENCRE ──────────────────────────────────────────────────────────── */
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) :is(p,span,li,a,div,h1,h2,h3,h4,h5,h6,td,th,dd,dt,label,figcaption,blockquote,
      small,em,strong,b,i,button,summary,figure,section,article,header,footer,nav,main){
  color:#dbe3ef!important;-webkit-text-fill-color:#dbe3ef!important}
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) :is(h1,h2,h3,h4,h5,h6){color:#f2f6fc!important;-webkit-text-fill-color:#f2f6fc!important}
/* l'or se redonne ici, et seulement ici — mais l'or de la nuit */
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) :is(.eyebrow,.kicker,.cta,.link,.or,.gold,[class*="badge"],[class*="eyebrow"],
      [class*="-or"],[class*="prix"],[class*="-symbol"],[class*="-signature"],[class*="-date"]){
  color:#f0d98c!important;-webkit-text-fill-color:#f0d98c!important}
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) :is(h1 em,h2 em,h3 em,.page-title em,.hero-title em,.titre em,.name,.or-texte,.or-mot,.brand-text){
  background:linear-gradient(180deg,#fdf3cf 0%,#f3d98c 32%,#e0b243 64%,#c9971b 100%)!important;
  -webkit-background-clip:text!important;background-clip:text!important;
  -webkit-text-fill-color:transparent!important;color:#e8b93a!important}
/* les titres découpés en or de la feuille du domaine : on remonte le dégradé */
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) :is([class*="title"],[class*="titre"]){-webkit-text-fill-color:currentColor!important;background:none!important}
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) :is([class*="footer"],[class*="footer"] *){color:#8593aa!important;-webkit-text-fill-color:#8593aa!important}
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) :is([class*="footer"] a:hover){color:#f0d98c!important;-webkit-text-fill-color:#f0d98c!important}

/* ⛔ [31/08] « nav[class] » visait TOUTE balise nav portant une classe.
   Sur la page d'accueil, <nav class="doors"> n'est pas une barre : c'est la
   colonne des trois portes, au milieu de l'écran. Elle recevait donc le fond
   opaque des barres — un grand rectangle sombre dessiné derrière les boutons,
   au beau milieu du marbre. Une barre se reconnaît à sa place, pas à sa balise.
   ── LES SURFACES ─────────────────────────────────────────────────────── */
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) :is([class*="-card"],[class*="-info-box"],[class*="-box"],[class*="-tile"],
      .card,.box,.offer,.hero,.form-block,.warn,.emailbar,.seal,[class*="panel"],
      .serment-line,[class*="charter"],[class*="-item"]){
  background:linear-gradient(180deg,rgba(20,32,54,.90),rgba(13,22,39,.94))!important;
  border-color:rgba(212,175,55,.28)!important;
  box-shadow:0 14px 34px rgba(0,0,0,.48),inset 0 1px 0 rgba(255,240,200,.08)!important;-webkit-text-fill-color:currentColor!important}
/* [31/08/2026] .top-nav n'est PAS une barre : c'est un bloc de liens CENTRÉ dans
   header.top, qui porte déjà son fond. Lui peindre le sien dessinait un rectangle
bleu foncé flottant autour des liens, coupé net à droite, sur les 29 pages du
   domaine en thème nuit. Même raison pour .top-nav-axes. Le backdrop-filter posé
   ici sur un conteneur centré est en plus le piège n°2 de la charte élève. */
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) :is([class*="-nav"],[class*="navbar"],body>nav,header nav,[class*="topbar"]):not(.top-nav):not(.top-nav-axes){
  background:rgba(7,13,25,.82)!important;border-bottom-color:rgba(212,175,55,.24)!important;
  backdrop-filter:blur(14px)!important;-webkit-backdrop-filter:blur(14px)!important;-webkit-text-fill-color:currentColor!important}
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) :is([class*="-divider"],hr){
  background:linear-gradient(90deg,transparent,rgba(201,151,27,.75) 18%,rgba(232,185,58,.9) 50%,rgba(201,151,27,.75) 82%,transparent)!important;
  border:0!important;height:1px!important}
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) :is([class*="-badge"]){
  background:rgba(212,175,55,.14)!important;border:1px solid rgba(212,175,55,.34)!important}

/* ── LES CHAMPS ET LES GESTES ─────────────────────────────────────────── */
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) :is(input:not([type="checkbox"]):not([type="radio"]),textarea,select){
  background:rgba(255,255,255,.06)!important;border-color:rgba(212,175,55,.30)!important;
  color:#edf1f8!important;-webkit-text-fill-color:currentColor!important}
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) :is(input::placeholder,textarea::placeholder){color:#8593aa!important;-webkit-text-fill-color:#8593aa!important}
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) :is(.btn,.bouton,a.btn,button.btn){
  background:linear-gradient(180deg,#fdf3cf 0%,#f0d78f 16%,#e0bd63 42%,#c9a144 68%,#e8cf8d 100%)!important;
  border:1px solid rgba(122,90,16,.55)!important;
  color:#3a2708!important;-webkit-text-fill-color:#3a2708!important;
  box-shadow:0 6px 16px rgba(125,90,25,.28),inset 0 1px 0 rgba(255,255,255,.8)!important}
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) :is(.btn.ghost,.btn-ghost,.back,a.back){
  background:rgba(255,255,255,.06)!important;border:1px solid rgba(212,175,55,.30)!important;
  color:#edf1f8!important;-webkit-text-fill-color:#edf1f8!important;box-shadow:none!important}


/* ── Les pages de choix (« Continue ton chemin », « Merci ») ──────────────
   Leurs cartes s'appellent `.offer` et `.box` : elles ne finissaient par
   aucun des motifs ci-dessus, et restaient CRÈME avec du texte clair dessus
   — les deux prix devenaient illisibles sur une page de vente. */
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) :is(.offer,.box,.hero,.emailbar){
  color:#edf1f8!important;-webkit-text-fill-color:#edf1f8!important}
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) :is(.offer .price,.box .big,.price,.big){color:#f7e3a4!important;-webkit-text-fill-color:#f7e3a4!important}
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) :is(.offer .desc,.box .small,.desc,.small,.per,.old,.life){color:#b4c2d6!important;-webkit-text-fill-color:#b4c2d6!important}
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) :is(.offer.feature){border-color:rgba(212,175,55,.55)!important;-webkit-text-fill-color:currentColor!important}
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) :is(.seal){background:rgba(212,175,55,.16)!important;color:#f0d98c!important;-webkit-text-fill-color:#f0d98c!important}
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) :is(.hero){background:transparent!important;box-shadow:none!important}
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) :is(.btn-gold,.btn.btn-gold,.cta){
  background:linear-gradient(180deg,#fdf3cf 0%,#f0d78f 16%,#e0bd63 42%,#c9a144 68%,#e8cf8d 100%)!important;
  color:#3a2708!important;-webkit-text-fill-color:#3a2708!important;border:1px solid rgba(122,90,16,.55)!important}
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) :is(.btn-soft,.btn.btn-soft){
  background:rgba(255,255,255,.07)!important;border:1px solid rgba(212,175,55,.30)!important;
  color:#edf1f8!important;-webkit-text-fill-color:#edf1f8!important}


/* ⛔ PIÈGE DE SÉLECTEUR, payé le 30/08 : `[class$="-card"]` teste l'attribut
   `class` ENTIER, pas chaque classe. `class="giri-charter-card serment"` n'y
   répond donc PAS — la modale de la charte de la Giri Family restait blanche
   en pleine nuit. Partout ici, on écrit `[class*="…"]`. */

/* ── La porte de la Giri Family ───────────────────────────────────────── */
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) :is(#gateBtn,.gate-btn,[id*="gateBtn"]){
  background:linear-gradient(180deg,#fdf3cf 0%,#f0d78f 16%,#e0bd63 42%,#c9a144 68%,#e8cf8d 100%)!important;
  color:#3a2708!important;-webkit-text-fill-color:#3a2708!important;
  border:1px solid rgba(122,90,16,.55)!important;text-shadow:none!important}
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) :is(#gateBtn *,.gate-btn *){color:#3a2708!important;-webkit-text-fill-color:#3a2708!important}
/* Google impose son fond blanc : son texte reste celui de Google. */
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) :is([class*="google"],[id*="google"],[class*="google"] *,[id*="google"] *){
  color:#3c4043!important;-webkit-text-fill-color:#3c4043!important}

/* ══ CORRECTIONS DE MISE EN PAGE — les deux thèmes ════════════════════════
   Ces trois-là ne sont pas des couleurs : ce sont des débordements trouvés
   au banc sur téléphone (390 px). Ils valent de jour comme de nuit. */

/* Le modèle de formulaire de rétractation est fait de lignes à remplir
   (« Je soussigné(e) ______ ») : elles ne se coupent pas, et poussaient
   toute la page à 459 px de large sur un écran de 390.
   ⛔ Surtout pas `overflow-wrap:anywhere` : ça casserait les mots et les noms.
      Un modèle à recopier garde sa mise en forme — il défile, comme un tableau. */
.form-block{overflow-x:auto!important;-webkit-overflow-scrolling:touch}

/* ── LES HALOS DÉCORATIFS (31/08) ───────────────────────────────────────
   Un grand ovale laiteux derrière un titre est une lumière, pas un panneau :
   on ne le retourne pas en bleu, on le rallume en or très bas. Marqué par le
   filet, qui MESURE le pseudo-élément — une feuille ne sait pas le faire. */
body[data-theme=dark]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) [data-ga-halo]::after,
body[data-theme=dark]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) [data-ga-halo-b]::before{
  background:radial-gradient(closest-side,rgba(240,217,140,.14),rgba(232,185,58,.06) 46%,transparent 74%)!important;
  filter:none!important}

/* ══ LE PIED D'UN PARCHEMIN GARDE SON ENCRE — 31/08/2026 ══════════════════
   Erreur payée le 31/08 : la couche nuit repeint tout pied de page en gris
   clair (#8593aa). Sur « Mes Attestations » — qui reste un PARCHEMIN CLAIR
   dans les deux lumières, on ne délivre pas un diplôme sur fond noir — cela
   donnait du gris clair sur du crème : 2,89, signalé par Didier.
   Un pied ne prend pas la couleur de l'heure : il prend celle de la surface
   sur laquelle il est posé. Là où la surface reste claire, l'encre reste sombre. */
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) [data-ga-clair] :is(footer,.pied,[class*="footer"],[class*="pied"]),
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) [data-ga-clair] :is(footer,.pied,[class*="footer"],[class*="pied"]) *,
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5).ga-parchemin :is(footer,.pied,[class*="footer"],[class*="pied"]),
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5).ga-parchemin :is(footer,.pied,[class*="footer"],[class*="pied"]) *{
  color:#5a4520!important;-webkit-text-fill-color:#5a4520!important}

/* ══════════════════════════════════════════════════════════════════════════
   LA BARRE DU HAUT ET LE PIED DE PAGE EN THÈME NUIT — 31/08/2026
   ──────────────────────────────────────────────────────────────────────────
   Signalé par Maha : en thème foncé, la barre du haut et le pied de page
   sortaient BLANCS. Cause : marbre-academie.css peint `.top` et `.foot` en
   clair sans condition de thème, et nuit.css n'a JAMAIS eu de règle pour eux.
   Jusqu'au 31/08 le fond sombre de `.top-nav` (le bloc de liens) masquait ce
   blanc par accident — un pansement, pas une règle. En retirant ce fond (il
   dessinait un rectangle coupé net autour des liens), le blanc est apparu.
   Voici la vraie règle, celle qui manquait : la barre et le pied prennent la
   nuit, et leurs textes avec.
   ══════════════════════════════════════════════════════════════════════════ */
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) .top{
  background:linear-gradient(180deg,rgba(7,13,25,.94),rgba(5,10,20,.88))!important;
  border-bottom:1px solid rgba(212,175,55,.24)!important;
  -webkit-backdrop-filter:blur(14px)!important; backdrop-filter:blur(14px)!important;
}
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) .foot{
  background:rgba(7,13,25,.78)!important;
  border-top:1px solid rgba(212,175,55,.22)!important;
}
/* Les textes suivent, sinon on remplace du sombre sur clair par du sombre sur sombre. */
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) .top-nav a,
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) .axes-trigger,
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) .foot a{
  color:#dbe3ef!important; -webkit-text-fill-color:#dbe3ef!important;
}
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) .top-nav a:hover,
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) .top-nav a.active,
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) .foot a:hover{
  color:#e8b93a!important; -webkit-text-fill-color:#e8b93a!important;
}
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) .top-back{
  color:#e8dfc9!important; -webkit-text-fill-color:#e8dfc9!important;
  background:rgba(255,255,255,.06)!important; border-color:rgba(212,175,55,.38)!important;
}
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) .top-back:hover{
  background:rgba(212,175,55,.16)!important; border-color:rgba(232,185,58,.6)!important;
}
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) .foot-sep{
  color:rgba(219,227,239,.45)!important; -webkit-text-fill-color:rgba(219,227,239,.45)!important;
}
/* Le menu déroulant des Axes est un vrai panneau : il garde son fond. */
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) .axes-menu{
  background:linear-gradient(180deg,rgba(16,26,44,.98),rgba(10,17,31,.98))!important;
  border:1px solid rgba(212,175,55,.30)!important;
}
/* ⛔⛔ [01/09/2026] LA CARTE RESTAIT CLAIRE, LE TITRE PASSAIT EN OR PALE.
   marbre-academie.css pose .axes-item{background:creme !important} SANS condition
   de theme : en nuit la carte restait creme, pendant que la charte de nuit
   repeignait son titre en #f0d98c. Mesure sur /professeurs/Maitre-Paramahansa-
   Lilian-Giri : 1,29 de contraste — « Business » etait invisible.
   Une carte qui garde son fond clair doit garder son encre sombre ; ici on lui
   donne le fond de la nuit, comme aux autres cartes. */
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) .axes-item{
  background:linear-gradient(180deg,rgba(20,32,54,.90),rgba(13,22,39,.94))!important;
  border:1px solid rgba(212,175,55,.26)!important;
  color:#dbe3ef!important}
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) .axes-item:hover{
  background:linear-gradient(180deg,rgba(28,44,72,.94),rgba(18,30,52,.96))!important}
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) .axes-item-title{
  color:#f0d98c!important; -webkit-text-fill-color:#f0d98c!important;
}
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) .axes-item-sub{
  color:rgba(219,227,239,.72)!important; -webkit-text-fill-color:rgba(219,227,239,.72)!important;
}

/* ══════════════════════════════════════════════════════════════════════════
   L'ACCUEIL EN THÈME NUIT — ON NE VOIT QUE LE MARBRE (31/08/2026)
   ──────────────────────────────────────────────────────────────────────────
   Demandé trois fois par Maha : « un cadre bleu foncé à moitié transparent
   autour du logo, des boutons, du titre » + « un fondu blanc très bizarre »
   en bas. Mesuré au pixel : le bas de page monte à rgb(152,152,151) sur une
   page dont le reste est à une luminance de 23-36.
   La chaîne : splash.css veut ces surfaces TRANSPARENTES (#legalfoot:none,
   .door-primary/.door-secondary:transparent) → marbre-academie.css les
   repeint en blanc cassé → le filet de nuit retourne ce blanc en bleu foncé.
   D'où trois rectangles bleutés derrière les boutons, et un footer resté blanc.
   On rend simplement à l'accueil ce que son propre CSS avait prévu.
   ══════════════════════════════════════════════════════════════════════════ */
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) #legalfoot{
  background:none!important; background-color:transparent!important;
  border-top:0!important; box-shadow:none!important;
}
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) #legalfoot,
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) #legalfoot a{
  color:rgba(219,227,239,.72)!important; -webkit-text-fill-color:rgba(219,227,239,.72)!important;
}
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) #legalfoot a:hover{
  color:#e8b93a!important; -webkit-text-fill-color:#e8b93a!important;
}
/* Les portes : un liseré d'or sur la pierre, pas une plaque bleue. */
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) .door-primary,
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) .door-secondary{
  background:transparent!important; background-color:transparent!important;
  border:1px solid rgba(212,175,55,.42)!important;
  -webkit-backdrop-filter:none!important; backdrop-filter:none!important;
}
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) .door-hall{
  background:linear-gradient(180deg,rgba(201,169,97,.10),rgba(201,169,97,.04))!important;
  border:1px solid rgba(212,175,55,.46)!important;
  -webkit-backdrop-filter:none!important; backdrop-filter:none!important;
}
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) .door-primary:hover,
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) .door-secondary:hover,
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) .door-hall:hover{
  background:rgba(212,175,55,.14)!important; border-color:rgba(232,185,58,.7)!important;
}
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) .door-primary,
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) .door-secondary,
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) .door-hall{
  color:#e8dfc9!important; -webkit-text-fill-color:#e8dfc9!important;
}

/* ══ LA SIGNATURE DU CONCEPTEUR SE LIT AUSSI LA NUIT — 01/09/2026 ══════════
   « Réalisé par Digital Giri » est écrit en gris-bleu très sombre, pensé pour
   le marbre clair. Posé sur la pierre de nuit, il disparaît : 4,36:1 au mieux
   sur /devenir-affilie, et franchement illisible en haut de /communaute.
   Une signature reste discrète — mais une signature qu'on ne lit pas ne signe
   rien. On la remonte au gris de nuit des mentions (5,4:1 sur la pierre). */
body[data-theme="dark"]:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5) :is(.dg-line,.dg-tag,.dg-sign,.dg-line *,.dg-tag *,.dg-sign *){
  color:#9fadc4!important;-webkit-text-fill-color:#9fadc4!important}
