/* ═══════════════════════════════════════════════════════════════════════════
 * Thèmes du site — chargé sur TOUTES les pages, APRÈS leur feuille propre.
 *
 * Le principe : « Original » est l'absence de thème. Aucune règle ici ne
 * s'applique tant que <html> ne porte pas data-theme — le site d'origine ne
 * traverse pas ce fichier, il ne peut donc pas être abîmé par lui.
 *
 * « Dark » suit la recette de Dark Reader, pas celle du noir pur. Un premier
 * essai en quasi-noir (#0a0a0c) a montré pourquoi : le contraste écrase tout,
 * et les couleurs qui doivent porter du sens — le vert des DO'S, le rouge des
 * DON'TS — n'ont plus d'air pour briller. Dark Reader éclaire ses fonds à
 * #181a1b, un graphite doux, et réchauffe le texte (#e8e6e3 plutôt que blanc
 * bleuté). C'est ce couple-là qui rend son anti-lumière confortable.
 *
 * Deuxième leçon du même essai : garder le violet d'origine au milieu d'un
 * thème sombre, c'est garder un morceau de l'ancien thème planté dans le
 * nouveau. Ici le violet est REMPLACÉ par l'accent du thème — un bleu ardoise
 * désaturé, famille Dark Reader — via les mêmes variables (--purple, --accent…)
 * que les pages consomment déjà. Les couleurs de SENS (vert = ok, rouge =
 * danger, jaune = attention) ne bougent pas : elles gagnent même en présence
 * sur le fond adouci.
 *
 * Deux leviers :
 *  1. les variables — 23 pages sur 28 héritent du :root de style.css, les
 *     pages mobiles ont le leur (mobile.1.css). html[data-theme] gagne en
 *     spécificité sur :root, aucun !important nécessaire ;
 *  2. les surfaces peintes en dur (dégradés de sidebar, fonds de modals…),
 *     relevées feuille par feuille — une surface oubliée resterait bleu-nuit
 *     au milieu du graphite, c'est le seul vrai risque de ce fichier.
 *     Les voiles translucides (rgba blanc/noir) suivent le fond tout seuls ;
 *     les maquettes qui imitent autre chose (écran Meta de /sop-instagram,
 *     aperçu téléphone de /lien-editeur) sont du contenu, pas le site.
 *
 * Le choix vit dans localStorage (voir public/js/theme.1.js et le sélecteur
 * de /settings). CSS uniquement : aucune route, aucun comportement modifié.
 * ═══════════════════════════════════════════════════════════════════════════ */


/* ── Jetons de couleur : la famille violette de l'Original, nommee ────────
 * Chaque violet pose en dur dans le site (CSS, HTML, styles inline generes
 * par le JS) est remplace par var(--vio-XXXXXX), ou XXXXXX est SA valeur
 * d'origine. En theme Original ces jetons valent exactement cette valeur :
 * zero changement, au pixel. En Dark ils basculent vers la famille azur.
 * C'est ce qui permet de ne laisser AUCUNE trace de l'Original en sombre
 * sans jamais toucher a l'Original lui-meme.
 * Les valeurs -rgb- servent aux lavis : rgba(var(--vio-rgb-XXXXXX), .15). */
:root {
  --vio-8b5cf6: #8b5cf6;  --vio-a78bfa: #a78bfa;  --vio-7c3aed: #7c3aed;
  --vio-6d28d9: #6d28d9;  --vio-a855f7: #a855f7;  --vio-c084fc: #c084fc;
  --vio-c4b5fd: #c4b5fd;  --vio-7c6aff: #7c6aff;  --vio-a796ff: #a796ff;
  --vio-5a4ad8: #5a4ad8;  --vio-c8b8ff: #c8b8ff;
  --vio-rgb-8b5cf6: 139,92,246;   --vio-rgb-a855f7: 168,85,247;
  --vio-rgb-7c6aff: 124,106,255;  --vio-rgb-c4b5fd: 196,181,253;
  --vio-rgb-c084fc: 192,132,252;  --vio-rgb-a78bfa: 167,139,250;
  --vio-8b7bff: #8b7bff;  --vio-6d5ce0: #6d5ce0;
  --fond-13131a: #13131a;  --fond-0a0a14: #0a0a14;  --fond-13131f: #13131f;
}
html[data-theme="dark"] {
  --vio-8b5cf6: #58a6ff;  --vio-a78bfa: #79c0ff;  --vio-7c3aed: #388bfd;
  --vio-6d28d9: #1f6feb;  --vio-a855f7: #58a6ff;  --vio-c084fc: #79c0ff;
  --vio-c4b5fd: #a5d0ff;  --vio-7c6aff: #58a6ff;  --vio-a796ff: #79c0ff;
  --vio-5a4ad8: #316dca;  --vio-c8b8ff: #a5d0ff;
  --vio-rgb-8b5cf6: 88,166,255;   --vio-rgb-a855f7: 88,166,255;
  --vio-rgb-7c6aff: 88,166,255;   --vio-rgb-c4b5fd: 165,208,255;
  --vio-rgb-c084fc: 121,192,255;  --vio-rgb-a78bfa: 121,192,255;
  --vio-8b7bff: #58a6ff;  --vio-6d5ce0: #316dca;
  --fond-13131a: #1e2021;  --fond-0a0a14: #161718;  --fond-13131f: #1e2021;
}

/* ── DARK : les variables globales (style.css) ─────────────────────────── */
html[data-theme="dark"] {
  /* Fonds — le #181a1b de Dark Reader, décliné */
  --bg:           #181a1b;
  --bg2:          #1e2021;
  --panel:        rgba(30, 32, 33, 0.94);
  --card:         rgba(36, 39, 40, 0.94);
  --card2:        rgba(46, 49, 50, 0.72);
  --border:       rgba(255, 255, 255, 0.12);
  --border2:      rgba(255, 255, 255, 0.19);

  /* Texte — blanc cassé chaud, pas blanc bleuté */
  --text:         #eceae7;
  --text2:        #c0beb7;
  --muted:        #98958d;

  /* L'accent du thème : le violet d'origine devient bleu ardoise désaturé.
     Mêmes variables, donc remplacé PARTOUT où les pages font var(--purple). */
  --purple:       #58a6ff;
  --purple-l:     #79c0ff;
  --purple-d:     #388bfd;
  --pink:         #f472b6;
  --border-glow:  rgba(88, 166, 255, 0.4);
  --grad-main:    linear-gradient(135deg, #316dca 0%, #58a6ff 100%);
  --grad-blue:    linear-gradient(135deg, #1f6feb 0%, #58a6ff 100%);
  --shadow-glow:  0 0 40px rgba(88, 166, 255, 0.18);

  /* Pages mobiles (mobile.1.css) — fonds et accent, même logique */
  --bg-deep:      #121415;
  --surface:      #232627;
  --surface2:     #2a2d2e;
  --accent:        #58a6ff;
  --accent-bright: #79c0ff;
  --accent-deep:   #316dca;
  --accent-soft:   rgba(88, 166, 255, .18);
}

/* ── DARK : surfaces peintes en dur ────────────────────────────────────── */

/* La lueur ambiante du fond : elle suit l'accent du thème, plus le violet. */
html[data-theme="dark"] body::before {
  background: radial-gradient(circle, rgba(88, 166, 255, .05) 0%, transparent 60%);
}
html[data-theme="dark"] body::after {
  background: radial-gradient(circle, rgba(88, 166, 255, .04) 0%, transparent 60%);
}

/* La sidebar : même raccord au pixel près que l'original avec son fond,
   refait en graphite (voir le commentaire dans style.css). */
html[data-theme="dark"] .sidebar {
  background:
    linear-gradient(180deg, rgba(88, 166, 255, .06) 0%, transparent 40%),
    linear-gradient(90deg, rgba(30, 32, 33, .96) 0%, rgba(24, 26, 27, .86) 100%);
}
@media (max-width: 768px) {
  /* style.css force #080616 !important sur mobile — même arme, même poids. */
  html[data-theme="dark"] .sidebar { background: #1d1f20 !important; }
}

/* style.css — journaux, toasts, vignettes */
html[data-theme="dark"] .model-card-image::after { background: linear-gradient(to top, rgba(24,26,27,1), transparent); }
html[data-theme="dark"] .log-wrap      { background: rgba(20, 21, 22, 0.95); }
html[data-theme="dark"] .log-toolbar   { background: rgba(26, 28, 29, 0.95); }
html[data-theme="dark"] .log-container { background: linear-gradient(to bottom, rgba(18,19,20,.98), rgba(22,23,24,.98)); }
html[data-theme="dark"] .toast         { background: rgba(30,32,33,.95); }

/* Connexion (index.1.css) et 404 */
html[data-theme="dark"] .panel-left  { background: #1b1d1e; }
html[data-theme="dark"] .panel-right { background: #212324; }
html[data-theme="dark"] body { background-color: var(--bg); }
html[data-theme="dark"] .box { background: rgba(32,34,35,.7); }

/* Dashboard (dashboard-glass.css + dashboard-activity.1.css) */
html[data-theme="dark"] body.dashboard-page {
  background:
    radial-gradient(ellipse 90% 50% at 15% 5%,  rgba(88, 166, 255, .12), transparent 55%),
    radial-gradient(ellipse 70% 45% at 95% 30%, rgba(56, 189, 248, .07), transparent 60%),
    radial-gradient(ellipse 70% 40% at 50% 95%, rgba(181, 138, 158, .07), transparent 60%),
    #17191a;
}
html[data-theme="dark"] body.dashboard-page .dash-stat-card { background: linear-gradient(160deg, rgba(255,255,255,.06) 0%, rgba(255,255,255,.02) 100%), rgba(33, 35, 36, .55); }
html[data-theme="dark"] body.dashboard-page .da-card        { background: linear-gradient(160deg, rgba(255,255,255,.04) 0%, rgba(255,255,255,.015) 100%), rgba(31, 33, 34, .65); }
html[data-theme="dark"] body.dashboard-page .ig-card-frame  { background: linear-gradient(180deg, rgba(48, 51, 54, .5) 0%, rgba(26, 28, 29, .82) 100%); }
html[data-theme="dark"] body.dashboard-page .modal-box      { background: linear-gradient(180deg, rgba(45, 48, 50, .92) 0%, rgba(30, 32, 33, .96) 100%); }
html[data-theme="dark"] .da-card            { background: linear-gradient(180deg, rgba(35,38,39,.78) 0%, rgba(29,31,32,.78) 100%); }
html[data-theme="dark"] .da-growth-dd-panel { background: linear-gradient(180deg, #26292a 0%, #1e2021 100%); }
html[data-theme="dark"] .da-cal-panel       { background: rgba(30, 32, 33, .985); }

/* Le grand panneau générique gris-bleu (team, facture, planning, import,
   mobile — tous déclinent le même dégradé 26,26,46 → 20,20,42) */
html[data-theme="dark"] .ta-dd-trigger,
html[data-theme="dark"] .fac-sum-card,
html[data-theme="dark"] .pl-grid-wrap,
html[data-theme="dark"] .tk-toolbar { background: linear-gradient(180deg, rgba(35,38,39,.78) 0%, rgba(29,31,32,.78) 100%); }
html[data-theme="dark"] .ta-dd-panel { background: linear-gradient(180deg, rgba(30,32,33,.98), rgba(25,27,28,.98)); }

/* Facture / planning — modals et menus déroulants */
html[data-theme="dark"] .fac-modal-content,
html[data-theme="dark"] .fac-cselect-panel,
html[data-theme="dark"] .tk-cselect-panel { background: rgba(30, 32, 33, .98); }
html[data-theme="dark"] #pl-modal .fac-modal-content { background: linear-gradient(160deg, rgba(33,35,36,.99) 0%, rgba(26,28,29,.99) 100%); }
html[data-theme="dark"] .pl-cselect-panel   { background: #202324; }
html[data-theme="dark"] .pl-status-popover  { background: linear-gradient(160deg, rgba(34,36,37,.97), rgba(26,28,29,.98)); }

/* Import (import.1.css) */
html[data-theme="dark"] .tk-progress            { background: linear-gradient(180deg, rgba(88,166,255,.08) 0%, rgba(29,31,32,.85) 100%); }
html[data-theme="dark"] .tk-results             { background: linear-gradient(180deg, rgba(35,38,39,.65) 0%, rgba(29,31,32,.65) 100%); }
html[data-theme="dark"] .tk-modal-content       { background: #212425; }
html[data-theme="dark"] .tk-card-thumb-fallback { background: linear-gradient(135deg, #26292a, #17191a); }
html[data-theme="dark"] .tk-target-card         { background: linear-gradient(135deg, rgba(34,197,94,.10), rgba(29,31,32,.6)); }
html[data-theme="dark"] .tk-cselect-open .tk-cselect-trigger { background: rgba(30,32,33,.6); }

/* Générateur, geelark, scraper, veille, liens.
   Le .toast du générateur (#13131a) est déjà couvert : la règle générique
   html[data-theme] .toast plus haut gagne en spécificité sur toutes les pages. */
html[data-theme="dark"] .aud-modal-box   { background: #212425; }
html[data-theme="dark"] .stats-modal-box { background: #1d2021; }
html[data-theme="dark"] .scr-info-bubble { background: #26292a; }
html[data-theme="dark"] .scr-thumb       { background: linear-gradient(135deg, #2a2d2e, #191b1c); }
html[data-theme="dark"] .vl-suggestions  { background: #212425; }
html[data-theme="dark"] .lk-tip          { background: #1f2122; }

/* IA (ia.1.css) — le fond dégradé de la page garde sa lueur, sa base #05041a
   est neutralisée par la règle générique background-color posée sur body plus
   haut : le raccourci background pose la couleur en dernière couche, et une
   règle background-color plus spécifique ne remplace QUE cette couche. */
html[data-theme="dark"] .ia-lay-panel { background: #242728; }

/* Phone Farm (phone-farm.1.css) — la lueur cyan reste (identité de la page,
   pas du violet), la base devient graphite */
html[data-theme="dark"] .pf-nav {
  background:
    linear-gradient(180deg, rgba(34, 211, 238, .05) 0%, transparent 40%),
    linear-gradient(90deg, rgba(30, 32, 33, .96) 0%, rgba(24, 26, 27, .86) 100%);
}
html[data-theme="dark"] .pf-menu,
html[data-theme="dark"] .pf-node    { background: #26292a; }
html[data-theme="dark"] .pf-toolbar { background: rgba(30, 32, 33, .92); }
html[data-theme="dark"] .pf-dd2-panel,
html[data-theme="dark"] .pf-dd-panel { background: linear-gradient(180deg, #26292a 0%, #1e2021 100%); }
html[data-theme="dark"] select.pf-input option,
html[data-theme="dark"] select.pf-select option { background: #1e2021; }
html[data-theme="dark"] .pf-cap-preview canvas  { background: #161718; }

/* Fenêtres génériques (ui-modal.css) */
html[data-theme="dark"] .um-overlay  { background: rgba(10, 11, 11, .72); }
html[data-theme="dark"] .um-box      { background: #242728; }
html[data-theme="dark"] select.um-input option { background: #1e2021; }
html[data-theme="dark"] .um-dd-panel { background: linear-gradient(180deg, #26292a 0%, #1e2021 100%); }

/* Cartes Instagram (ig-cards.css) */
html[data-theme="dark"] .ig-card-frame { background: linear-gradient(180deg, #26292a 0%, #191b1c 100%); }

/* Formation — les cartes DO'S / DON'TS. C'est ELLES qui ont montré le
   problème du premier essai : leur teinte à 6% n'existait plus sur du
   quasi-noir. Sur le graphite on la remonte même un peu, pour que le vert
   et le rouge portent à nouveau. */
html[data-theme="dark"] .fm-do   { background: rgba(34,197,94,.09);  border-color: rgba(34,197,94,.38); }
html[data-theme="dark"] .fm-dont { background: rgba(239,68,68,.09);  border-color: rgba(239,68,68,.38); }

/* Info Modèles, Formation, Trophées — les surfaces bleu-nuit posées dans le
   <style> de la page elle-même. La cartographie initiale ne lisait que les
   feuilles .css : ces trois pages portent leurs cartes en inline, repérées au
   ratissage des <style> après coup. Même recette : luminosité conservée,
   teinte bleue retirée ; les lavis violets de ces mêmes cartes passent déjà
   par les jetons. */
html[data-theme="dark"] .mi-card  { background: linear-gradient(160deg, rgba(35,38,39,.9) 0%, rgba(22,24,25,.95) 100%); }
html[data-theme="dark"] .mi-modal { background: linear-gradient(155deg, rgba(32,34,35,.98), rgba(20,22,23,.99)); }
html[data-theme="dark"] .fm-card  { background: linear-gradient(135deg, rgba(var(--vio-rgb-7c6aff),.08), rgba(22,24,25,.6)); }
html[data-theme="dark"] .tr-card.unlocked { background: linear-gradient(135deg, rgba(var(--vio-rgb-7c6aff),.18), rgba(22,24,25,.7)); }

/* App mobile VA (mobile.1.css + mobile-accounts.1.css) */
html[data-theme="dark"] .m-header   { background: linear-gradient(180deg, rgba(29,31,32,.92) 0%, rgba(29,31,32,.82) 100%); }
html[data-theme="dark"] .m-select,
html[data-theme="dark"] .m-dd-trigger { background: linear-gradient(180deg, rgba(35,38,39,.8) 0%, rgba(29,31,32,.8) 100%); }
html[data-theme="dark"] .m-dd.m-dd-open .m-dd-trigger { background: linear-gradient(180deg, rgba(88,166,255,.08) 0%, rgba(29,31,32,.85) 100%); }
html[data-theme="dark"] .m-dd-panel,
html[data-theme="dark"] .m-settings-card { background: linear-gradient(180deg, #26292a 0%, #202324 100%); }
html[data-theme="dark"] .m-card  { background: linear-gradient(180deg, rgba(35,38,39,.95) 0%, rgba(29,31,32,.95) 100%); }
html[data-theme="dark"] .m-thumb { background: linear-gradient(135deg, #26292a 0%, #141516 100%); }
html[data-theme="dark"] .ma-card-add  { background: linear-gradient(180deg, rgba(88,166,255,.10) 0%, rgba(29,31,32,.85) 100%); }
html[data-theme="dark"] .ma-card-list { background: linear-gradient(180deg, rgba(35,38,39,.65) 0%, rgba(29,31,32,.65) 100%); }


/* ═══════════════════════════════════════════════════════════════════════════
 * STATUE — noir profond, marbre et clair-obscur.
 *
 * L'inspiration : les visuels de statues greco-romaines en noir et blanc sur
 * fond noir. Contrairement au Dark, ce theme GARDE l'accent violet d'origine
 * (aucune surcharge de --purple ni des jetons --vio-*) : sur du noir profond,
 * le violet redevient exactement ce qu'il doit etre — la seule couleur.
 *
 * Deux images en filigrane (recette fournie par Will via Gemini) : l'ange
 * muscle en bas a gauche (Doryphoros, MANN, CC BY 4.0), le David en haut a
 * droite (CC BY 3.0) — noir et blanc sur noir, ffmpeg. Pour changer de decor :
 * remplacer public/images/theme-statue-ange.jpg et theme-statue-david.jpg.
 *
 * Les surfaces ci-dessous sont le clone des surfaces du Dark, assombri de
 * moitie (gris neutres uniquement — les couleurs de sens ne bougent pas),
 * genere depuis le bloc Dark pour ne pas maintenir deux listes a la main.
 * ═══════════════════════════════════════════════════════════════════════════ */

html[data-theme="statue"] {
  --bg:       #070709;
  --bg2:      #0b0b0e;
  --panel:    rgba(11, 11, 15, 0.78);
  --card:     rgba(11, 11, 15, 0.78);
  --card2:    rgba(28, 28, 34, 0.6);
  --border:   rgba(255, 255, 255, 0.08);
  --border2:  rgba(255, 255, 255, 0.15);
  --text:     #ffffff;
  /* La palette Gemini donnait #8e8e99 / #52525b : lisible sur noir uni, plus
     sur le marbre qui transparait a travers les cartes a 45 %. Deux crans de
     clarte, et le texte principal recoit une ombre portee (ci-dessous) pour
     se detacher des zones claires de la statue. */
  --text2:    #a5a5b1;
  --muted:    #7e7e8a;
  /* L'accent : le violet profond de la maquette, pas celui de l'Original */
  --purple:   #7c3aed;
  --purple-d: #6d28d9;
  --border-glow: rgba(124, 58, 237, 0.25);
  /* Pages mobiles */
  --bg-deep:  #030304;
  --surface:  #161617;
  --surface2: #1d1d1f;
}




html[data-theme="statue"] .sidebar {
  background:
    linear-gradient(180deg, rgba(139, 92, 246, .06) 0%, transparent 40%),
    linear-gradient(90deg, rgba(15, 16, 16, .96) 0%, rgba(12, 13, 14, .86) 100%);
}
@media (max-width: 768px) {
    html[data-theme="statue"] .sidebar { background: #0e1010 !important; }
}

html[data-theme="statue"] .model-card-image::after { background: linear-gradient(to top, rgba(12, 13, 14,1), transparent); }
html[data-theme="statue"] .log-wrap      { background: rgba(10, 10, 11, 0.95); }
html[data-theme="statue"] .log-toolbar   { background: rgba(13, 14, 14, 0.95); }
html[data-theme="statue"] .log-container { background: linear-gradient(to bottom, rgba(9, 10, 10,.98), rgba(11, 12, 12,.98)); }
html[data-theme="statue"] .toast         { background: rgba(15, 16, 16,.95); }

html[data-theme="statue"] .panel-left  { background: #0e0e0f; }
html[data-theme="statue"] .panel-right { background: #101212; }
html[data-theme="statue"] body { background-color: var(--bg); }
html[data-theme="statue"] .box { background: rgba(16, 17, 18,.7); }

html[data-theme="statue"] body.dashboard-page {
  background:
    radial-gradient(ellipse 90% 50% at 15% 5%,  rgba(139, 92, 246, .12), transparent 55%),
    radial-gradient(ellipse 70% 45% at 95% 30%, rgba(56, 189, 248, .07), transparent 60%),
    radial-gradient(ellipse 70% 40% at 50% 95%, rgba(181, 138, 158, .07), transparent 60%),
    #0c0c0d;
}
html[data-theme="statue"] body.dashboard-page .dash-stat-card { background: linear-gradient(160deg, rgba(128, 128, 128,.06) 0%, rgba(128, 128, 128,.02) 100%), rgba(16, 18, 18, .55); }
html[data-theme="statue"] body.dashboard-page .da-card        { background: linear-gradient(160deg, rgba(128, 128, 128,.04) 0%, rgba(128, 128, 128,.015) 100%), rgba(16, 16, 17, .65); }
html[data-theme="statue"] body.dashboard-page .ig-card-frame  { background: linear-gradient(180deg, rgba(24, 26, 27, .5) 0%, rgba(13, 14, 14, .82) 100%); }
html[data-theme="statue"] body.dashboard-page .modal-box      { background: linear-gradient(180deg, rgba(22, 24, 25, .92) 0%, rgba(15, 16, 16, .96) 100%); }
html[data-theme="statue"] .da-card            { background: linear-gradient(180deg, rgba(18, 19, 20,.78) 0%, rgba(14, 16, 16,.78) 100%); }
html[data-theme="statue"] .da-growth-dd-panel { background: linear-gradient(180deg, #131415 0%, #0f1010 100%); }
html[data-theme="statue"] .da-cal-panel       { background: rgba(15, 16, 16, .985); }

html[data-theme="statue"] .ta-dd-trigger,
html[data-theme="statue"] .fac-sum-card,
html[data-theme="statue"] .pl-grid-wrap,
html[data-theme="statue"] .tk-toolbar { background: linear-gradient(180deg, rgba(18, 19, 20,.78) 0%, rgba(14, 16, 16,.78) 100%); }
html[data-theme="statue"] .ta-dd-panel { background: linear-gradient(180deg, rgba(15, 16, 16,.98), rgba(12, 14, 14,.98)); }

html[data-theme="statue"] .fac-modal-content,
html[data-theme="statue"] .fac-cselect-panel,
html[data-theme="statue"] .tk-cselect-panel { background: rgba(15, 16, 16, .98); }
html[data-theme="statue"] #pl-modal .fac-modal-content { background: linear-gradient(160deg, rgba(16, 18, 18,.99) 0%, rgba(13, 14, 14,.99) 100%); }
html[data-theme="statue"] .pl-cselect-panel   { background: #101212; }
html[data-theme="statue"] .pl-status-popover  { background: linear-gradient(160deg, rgba(17, 18, 18,.97), rgba(13, 14, 14,.98)); }

html[data-theme="statue"] .tk-progress            { background: linear-gradient(180deg, rgba(139, 92, 246,.08) 0%, rgba(14, 16, 16,.85) 100%); }
html[data-theme="statue"] .tk-results             { background: linear-gradient(180deg, rgba(18, 19, 20,.65) 0%, rgba(14, 16, 16,.65) 100%); }
html[data-theme="statue"] .tk-modal-content       { background: #101212; }
html[data-theme="statue"] .tk-card-thumb-fallback { background: linear-gradient(135deg, #131415, #0c0c0d); }
html[data-theme="statue"] .tk-target-card         { background: linear-gradient(135deg, rgba(34,197,94,.10), rgba(14, 16, 16,.6)); }
html[data-theme="statue"] .tk-cselect-open .tk-cselect-trigger { background: rgba(15, 16, 16,.6); }

html[data-theme="statue"] .aud-modal-box   { background: #101212; }
html[data-theme="statue"] .stats-modal-box { background: #0e1010; }
html[data-theme="statue"] .scr-info-bubble { background: #131415; }
html[data-theme="statue"] .scr-thumb       { background: linear-gradient(135deg, #151617, #0c0e0e); }
html[data-theme="statue"] .vl-suggestions  { background: #101212; }
html[data-theme="statue"] .lk-tip          { background: #101011; }

html[data-theme="statue"] .ia-lay-panel { background: #121414; }

html[data-theme="statue"] .pf-nav {
  background:
    linear-gradient(180deg, rgba(34, 211, 238, .05) 0%, transparent 40%),
    linear-gradient(90deg, rgba(15, 16, 16, .96) 0%, rgba(12, 13, 14, .86) 100%);
}
html[data-theme="statue"] .pf-menu,
html[data-theme="statue"] .pf-node    { background: #131415; }
html[data-theme="statue"] .pf-toolbar { background: rgba(15, 16, 16, .92); }
html[data-theme="statue"] .pf-dd2-panel,
html[data-theme="statue"] .pf-dd-panel { background: linear-gradient(180deg, #131415 0%, #0f1010 100%); }
html[data-theme="statue"] select.pf-input option,
html[data-theme="statue"] select.pf-select option { background: #0f1010; }
html[data-theme="statue"] .pf-cap-preview canvas  { background: #0b0c0c; }

html[data-theme="statue"] .um-overlay  { background: rgba(5, 6, 6, .72); }
html[data-theme="statue"] .um-box      { background: #121414; }
html[data-theme="statue"] select.um-input option { background: #0f1010; }
html[data-theme="statue"] .um-dd-panel { background: linear-gradient(180deg, #131415 0%, #0f1010 100%); }

html[data-theme="statue"] .ig-card-frame { background: linear-gradient(180deg, #131415 0%, #0c0e0e 100%); }

html[data-theme="statue"] .fm-do   { background: rgba(34,197,94,.09);  border-color: rgba(34,197,94,.38); }
html[data-theme="statue"] .fm-dont { background: rgba(239,68,68,.09);  border-color: rgba(239,68,68,.38); }

html[data-theme="statue"] .mi-card  { background: linear-gradient(160deg, rgba(18, 19, 20,.9) 0%, rgba(11, 12, 12,.95) 100%); }
html[data-theme="statue"] .mi-modal { background: linear-gradient(155deg, rgba(16, 17, 18,.98), rgba(10, 11, 12,.99)); }
html[data-theme="statue"] .fm-card  { background: linear-gradient(135deg, rgba(var(--vio-rgb-7c6aff),.08), rgba(11, 12, 12,.6)); }
html[data-theme="statue"] .tr-card.unlocked { background: linear-gradient(135deg, rgba(var(--vio-rgb-7c6aff),.18), rgba(11, 12, 12,.7)); }

html[data-theme="statue"] .m-header   { background: linear-gradient(180deg, rgba(14, 16, 16,.92) 0%, rgba(14, 16, 16,.82) 100%); }
html[data-theme="statue"] .m-select,
html[data-theme="statue"] .m-dd-trigger { background: linear-gradient(180deg, rgba(18, 19, 20,.8) 0%, rgba(14, 16, 16,.8) 100%); }
html[data-theme="statue"] .m-dd.m-dd-open .m-dd-trigger { background: linear-gradient(180deg, rgba(139, 92, 246,.08) 0%, rgba(14, 16, 16,.85) 100%); }
html[data-theme="statue"] .m-dd-panel,
html[data-theme="statue"] .m-settings-card { background: linear-gradient(180deg, #131415 0%, #101212 100%); }
html[data-theme="statue"] .m-card  { background: linear-gradient(180deg, rgba(18, 19, 20,.95) 0%, rgba(14, 16, 16,.95) 100%); }
html[data-theme="statue"] .m-thumb { background: linear-gradient(135deg, #131415 0%, #0a0a0b 100%); }
html[data-theme="statue"] .ma-card-add  { background: linear-gradient(180deg, rgba(139, 92, 246,.10) 0%, rgba(14, 16, 16,.85) 100%); }
html[data-theme="statue"] .ma-card-list { background: linear-gradient(180deg, rgba(18, 19, 20,.65) 0%, rgba(14, 16, 16,.65) 100%); }



/* La toile : UNE image complete, posee telle quelle en pleine page — plus
   aucun montage cote CSS. C'est l'image qui porte la composition (ange a
   gauche, David a droite, deja sur noir) : pour changer de decor, remplacer
   public/images/theme-statue-fond2.jpg et bumper son ?v=. Fixee au viewport,
   les cartes en verre glissent dessus. Ecran large uniquement. */
@media (min-width: 900px) {
  /* Le calque du filigrane vit SOUS tout le contenu (z-index -1) : en z-index
     0 il peignait par-dessus les elements non positionnes — l ecran des
     telephones de la Phone Farm, notamment, apparaissait sous la statue.
     Contrepartie : un fond opaque sur body peindrait au-dessus d un calque
     negatif et l effacerait — la couleur descend donc sur <html>, et body
     devient transparent. */
  html[data-theme="statue"] { background: #070709; }
  html[data-theme="statue"] body:not(.page-404),
  html[data-theme="statue"] body.dashboard-page { background: transparent; }
  html[data-theme="statue"] body:not(.page-404)::before {
    content: '';
    position: fixed;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background: var(--theme-fond, url('/images/theme-statue-fond2.jpg?v=2')) center / cover no-repeat;
    opacity: .5;
    filter: contrast(112%);
    animation: none;
    width: auto; height: auto;
  }
  html[data-theme="statue"] body:not(.page-404)::after { content: none; }
}


/* Le verre depoli des cartes principales — fond translucide + flou : le
   marbre se devine a travers sans jamais gener la lecture. Les modals et
   menus deroulants du clone restent opaques, eux. */
html[data-theme="statue"] .card,
html[data-theme="statue"] #alerts-banner,
html[data-theme="statue"] #table-wrap,
html[data-theme="statue"] .ta-table-wrap,
html[data-theme="statue"] .lk-grp-body,
html[data-theme="statue"] .fac-workspace-bar-inner,
html[data-theme="statue"] .lk-card,
html[data-theme="statue"] .dash-stat-card,
html[data-theme="statue"] body.dashboard-page .dash-stat-card,
html[data-theme="statue"] .da-card,
html[data-theme="statue"] body.dashboard-page .da-card,
html[data-theme="statue"] .fac-sum-card,
html[data-theme="statue"] .pl-grid-wrap,
html[data-theme="statue"] .tk-toolbar,
html[data-theme="statue"] .tk-results,
html[data-theme="statue"] .gen-section,
html[data-theme="statue"] .status-bar,
html[data-theme="statue"] #config-bar,
html[data-theme="statue"] .gen-folder-card,
html[data-theme="statue"] .queue-bar,
html[data-theme="statue"] .empty-state,
html[data-theme="statue"] .output-card,
html[data-theme="statue"] .folder-card,
html[data-theme="statue"] .upload-card,
html[data-theme="statue"] .warmup-card,
html[data-theme="statue"] .stat-card,
html[data-theme="statue"] .ig-stat-card,
html[data-theme="statue"] .mi-card,
html[data-theme="statue"] .fm-card,
html[data-theme="statue"] .agence-card {
  background: rgba(11, 11, 15, 0.78);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-color: rgba(255, 255, 255, 0.08);
}

/* Les pages generateur et modele sont un mur de petits voiles translucides
   (dossiers V1-V10, stock, rangements) : les traiter carte par carte laisse
   toujours un trou qui montre la statue en pleine lumiere sous le contenu.
   Elles recoivent donc ce que /liens et /team ont naturellement : une
   colonne de contenu posee sur un panneau de verre — la statue reste
   presente en filigrane a travers, plus jamais en projecteur sous un
   chiffre. Cible via :has(.folders-grid), la signature de ces pages. */
html[data-theme="statue"] body:has(.folders-grid) .main {
  background: rgba(9, 9, 12, 0.72);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

/* Le texte se detache du marbre : une ombre douce sous chaque lettre. Posee
   sur le corps entier plutot que carte par carte — elle est invisible sur
   fond sombre et ne travaille que la ou la statue eclaire. */
html[data-theme="statue"] body {
  text-shadow: 0 1px 3px rgba(0, 0, 0, .5);
}

/* La sidebar de la maquette : noir presque absolu, filet discret. */
html[data-theme="statue"] .sidebar {
  background: #040405;
  border-right: 1px solid rgba(255, 255, 255, 0.08);
}
@media (max-width: 768px) {
  html[data-theme="statue"] .sidebar { background: #040405 !important; }
}


/* ═══════════════════════════════════════════════════════════════════════════
 * Le sélecteur de thème (/settings) — deux vignettes-aperçus.
 * Stylé ici pour que tout ce qui touche au thème vive dans un seul fichier.
 * ═══════════════════════════════════════════════════════════════════════════ */

.theme-pick { display: flex; gap: 10px; }

.theme-opt {
  background: var(--card, rgba(28, 26, 58, .94));
  border: 1px solid var(--border, rgba(255,255,255,.1));
  border-radius: 12px;
  padding: 7px;
  cursor: pointer;
  font: inherit;
  color: var(--text2, #a5a3cc);
  display: flex;
  flex-direction: column;
  gap: 6px;
  transition: border-color .15s ease, transform .15s ease;
}
.theme-opt:hover { transform: translateY(-1px); border-color: var(--border2, rgba(255,255,255,.17)); }
.theme-opt[aria-checked="true"] {
  border-color: var(--purple, #8b5cf6);
  box-shadow: 0 0 0 1px var(--purple, #8b5cf6);
  color: var(--text, #f0efff);
}

/* La vignette : une mini-page (colonne + deux barres + une carte) peinte dans
   les couleurs RÉELLES du thème qu'elle propose — on voit avant de cliquer. */
.theme-prev {
  display: flex;
  width: 132px;
  height: 64px;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.08);
}
.theme-prev-side { width: 26px; flex-shrink: 0; }
.theme-prev-body { flex: 1; padding: 8px 9px; display: flex; flex-direction: column; gap: 5px; }
.theme-prev-bar  { height: 7px; border-radius: 99px; width: 72%; }
.theme-prev-bar--accent { width: 52%; }
.theme-prev-card { flex: 1; border-radius: 6px; }

/* Original : le bleu-nuit violet du site tel qu'il est. */
.theme-prev--original                          { background: #05041a; }
.theme-prev--original .theme-prev-side         { background: linear-gradient(90deg, rgba(12,10,40,.96), rgba(6,5,27,.86)); border-right: 1px solid rgba(255,255,255,.05); }
.theme-prev--original .theme-prev-bar--accent  { background: #8b5cf6; }
.theme-prev--original .theme-prev-bar          { background: rgba(255,255,255,.14); }
.theme-prev--original .theme-prev-card         { background: rgba(28,26,58,.94); border: 1px solid rgba(255,255,255,.08); }

/* Dark : le même écran en graphite Dark Reader, accent ardoise. */
.theme-prev--dark                              { background: #181a1b; }
.theme-prev--dark .theme-prev-side             { background: linear-gradient(90deg, rgba(30,32,33,.96), rgba(24,26,27,.86)); border-right: 1px solid rgba(255,255,255,.06); }
.theme-prev--dark .theme-prev-bar--accent      { background: #58a6ff; }
.theme-prev--dark .theme-prev-bar              { background: rgba(255,255,255,.14); }
.theme-prev--dark .theme-prev-card             { background: #232627; border: 1px solid rgba(255,255,255,.09); }


/* Le libellé sous la vignette, avec sa pastille radio. */
.theme-opt-label {
  display: flex; align-items: center; gap: 7px;
  font-size: 12px; font-weight: 700;
  padding: 0 2px 2px;
}
.theme-opt-dot {
  width: 12px; height: 12px; border-radius: 50%;
  border: 2px solid var(--muted, #8582b0);
  flex-shrink: 0;
  transition: all .15s ease;
}
.theme-opt[aria-checked="true"] .theme-opt-dot {
  border-color: var(--purple, #8b5cf6);
  background: radial-gradient(circle, var(--purple, #8b5cf6) 45%, transparent 50%);
}

/* Les actions de la vignette Statue : personnaliser / revenir au defaut.
   Des spans cliquables DANS le bouton de theme (un vrai <button> imbrique
   serait du HTML invalide) — stopPropagation les isole du choix de theme. */
.theme-perso-actions { display: inline-flex; gap: 5px; margin-left: auto; }
.theme-perso-actions [role="button"] {
  cursor: pointer; font-size: 12px; line-height: 1;
  padding: 2px 5px; border-radius: 5px;
  background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12);
}
.theme-perso-actions [role="button"]:hover { background: rgba(255,255,255,.14); }

/* La carte « + » de la galerie : meme gabarit que les vignettes, en pointille. */
.theme-opt--add .theme-prev--add {
  display: flex; align-items: center; justify-content: center;
  width: 132px; height: 64px; border-radius: 8px;
  border: 1px dashed rgba(255,255,255,.25);
  color: rgba(255,255,255,.45);
  font-size: 26px; font-weight: 300;
  background: rgba(255,255,255,.02);
}
.theme-opt--add:hover .theme-prev--add { border-color: rgba(255,255,255,.45); color: rgba(255,255,255,.75); }
.theme-opt-titre { max-width: 88px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
