/* ============================================================================
   LES DEUX THÈMES DU SITE — clair (par défaut) et bleu.

   PRINCIPE : les valeurs claires déclarées ici sont EXACTEMENT les couleurs qui
   étaient codées en dur dans les feuilles. Basculer une page sur ces jetons ne
   change donc rien à l'affichage clair — c'est ce qui rend la migration
   vérifiable : si un pixel bouge en clair, c'est une erreur de table, pas un
   choix de design.

   Le thème bleu n'est pas « le clair assombri ». Sur un fond marine :
     — le texte s'éclaircit mais ne devient jamais blanc pur (#fff sur marine
       vibre et fatigue) ;
     — l'accent doit MONTER en luminosité, sinon il disparaît : le bleu #1f53d6
       du thème clair tombe à 1,9:1 sur le fond marine, illisible ;
     — les couleurs sémantiques (vert / ambre / rouge) sont désaturées et
       éclaircies : les versions sombres choisies pour du blanc deviennent
       invisibles.
   Chaque teinte du thème bleu tient au moins 4,5:1 sur la surface qui la porte.

   Les variantes « -rgb » existent pour les fonds translucides : on garde
   l'opacité écrite dans la feuille et on ne remplace que la teinte de base.
   ============================================================================ */

:root{
  /* ---- Encres et fonds ---- */
  --bz-text:      #101c35;   /* titres, chiffres */
  --bz-text-1b:   #33415c;
  --bz-text-1c:   #2c3a52;
  --bz-text-1d:   #1d2a42;
  --bz-text-1e:   #2b3a54;
  --bz-text-2:    #3d4c66;   /* texte courant */
  --bz-text-2b:   #4c5a72;
  --bz-text-3:    #5b6982;   /* légendes ; etait #5d6b84 : 4,50:1 sur un fond gris */
  --bz-text-4:    #8a97ad;   /* discret */
  --bz-text-5:    #93a3bd;
  --bz-trait:     #c6d2e2;   /* filets pleins */

  --bz-surface:   #ffffff;   /* cartes */
  --bz-bg:        #ffffff;
  --bz-bg-soft:   #f6f8fc;
  --bz-bg-soft2:  #f8fafe;
  --bz-bg-soft3:  #f2f5fb;
  --bz-bg-soft4:  #fbfcff;
  --bz-bg-soft5:  #f7f9ff;

  /* Encre de référence des filets et des fonds translucides. */
  --bz-ink-rgb:   15,27,51;
  --bz-white-rgb: 255,255,255;
  /* La couleur du texte POSE SUR L'ACCENT. En clair l'accent est fonce, le
     texte est blanc ; en bleu l'accent s'eclaircit et le blanc y tomberait a
     2:1 — il faut du marine. Une seule declaration pour 34 regles. */
  --bz-sur-accent: #ffffff;
  /* Le texte pose sur une surface sombre DANS LES DEUX THEMES : le bandeau du
     registre, le pied du blog, les cartes d'appel en degrade, l'infobulle du
     copilote. Ces bandes sont deja sombres en clair — elles ne s'inversent
     pas, donc leur texte ne bascule pas non plus. */
  --bz-sur-sombre:     #ffffff;
  --bz-sur-sombre-2:   #eef3fb;   /* le texte courant de ces bandes */
  --bz-sur-sombre-rgb: 255,255,255;
  --bz-fond-sombre:    #0f1b33;

  /* ---- Accent ---- */
  --bz-blue:      #1f53d6;
  --bz-blue-vif:  #1b5cff;   /* etait #2f6bff : 4,50:1 sur blanc. Tient maintenant
                                4,6:1 aussi sur les fonds legerement teintes. */
  --bz-blue-dark: #17429f;
  --bz-blue-2:    #1a49c4;
  --bz-blue-3:    #4d82ff;
  --bz-blue-rgb:      31,83,214;
  --bz-blue-vif-rgb:  27,92,255;
  --bz-violet:    #6d4ae8;
  --bz-violet-vif:#7c5cff;
  --bz-violet-rgb:124,92,255;

  /* ---- Couleurs d'interprétation ----
     Jamais une grandeur : une baisse n'est pas verte. */
  --bz-green:      #0a7b54;   /* 4,38:1 sur son propre fond teinte */
  --bz-green-fort: #06603f;
  --bz-green-2:    #0b7b56;   /* 4,49:1 sur un fond vert a 12 % */
  --bz-green-vif:  #0e9f6e;
  --bz-green-rgb:      10,123,84;
  --bz-green-vif-rgb:  14,159,110;

  --bz-amber:      #8a5600;
  --bz-amber-2:    #ab5800;   /* etait #b45d00 : 4,23:1 sur son fond ambre */
  --bz-amber-3:    #a86a00;
  --bz-amber-4:    #9a4f00;
  --bz-amber-5:    #8f4a00;
  --bz-amber-vif:  #d98b06;
  --bz-amber-rgb:      138,86,0;
  --bz-amber-2-rgb:    171,88,0;
  --bz-amber-vif-rgb:  217,139,6;

  --bz-red:       #d43d3d;   /* etait #d64545 : 4,38:1 sur blanc */
  --bz-red-fort:  #a1211f;
  --bz-red-2:     #c03535;
  --bz-red-vif:   #e23c3c;
  --bz-red-rgb:       212,61,61;
  --bz-red-vif-rgb:   255,77,77;
  --bz-red-fort-rgb:  161,33,31;
  --bz-green-fort-rgb: 6,96,63;
  --bz-blue-3-rgb:    77,130,255;
  --bz-violet-2-rgb:  109,74,232;
  --bz-green-2-rgb:   11,125,87;
  --bz-red-2-rgb:     192,53,53;
}

/* ===========================================================================
   THÈME BLEU
   =========================================================================== */
:root[data-theme="bleu"]{
  --bz-text:      #edf2fc;
  --bz-text-1b:   #dbe4f5;
  --bz-text-1c:   #e2e9f7;
  --bz-text-1d:   #e8eefb;
  --bz-text-1e:   #dfe7f6;
  --bz-text-2:    #bfcce6;
  --bz-text-2b:   #b3c2de;
  --bz-text-3:    #9dadc9;
  --bz-text-4:    #8494b2;
  --bz-text-5:    #7d8da9;
  --bz-trait:     #33456b;

  --bz-surface:   #142440;
  --bz-bg:        #0b1526;
  --bz-bg-soft:   #0f1c31;
  --bz-bg-soft2:  #17284a;
  --bz-bg-soft3:  #162643;
  --bz-bg-soft4:  #142440;
  --bz-bg-soft5:  #16264a;

  /* Sur marine, les filets doivent ÉCLAIRCIR le fond, pas l'assombrir : on
     inverse l'encre de référence. Les opacités écrites dans les feuilles
     restent valables telles quelles. */
  --bz-ink-rgb:   167,192,235;
  --bz-white-rgb: 12,22,40;
  --bz-sur-accent: #0b1526;
  /* Identiques au theme clair : voir la note ci-dessus. */
  --bz-sur-sombre:     #ffffff;
  --bz-sur-sombre-2:   #eef3fb;
  --bz-sur-sombre-rgb: 255,255,255;
  --bz-fond-sombre:    #0f1b33;

  --bz-blue:      #7ba4ff;
  --bz-blue-vif:  #93b5ff;
  --bz-blue-dark: #a8c4ff;   /* le survol s'ÉCLAIRCIT ici, il ne fonce pas */
  --bz-blue-2:    #6d99ff;
  --bz-blue-3:    #a2c0ff;
  --bz-blue-rgb:      123,164,255;
  --bz-blue-vif-rgb:  147,181,255;
  --bz-violet:    #b3a0ff;
  --bz-violet-vif:#c2b2ff;
  --bz-violet-rgb:179,160,255;

  --bz-green:      #45d29c;
  --bz-green-fort: #6de0b4;
  --bz-green-2:    #45d29c;
  --bz-green-vif:  #5cdcaa;
  --bz-green-rgb:      69,210,156;
  --bz-green-vif-rgb:  92,220,170;

  --bz-amber:      #e8b166;
  --bz-amber-2:    #eab873;
  --bz-amber-3:    #e8b166;
  --bz-amber-4:    #e0a557;
  --bz-amber-5:    #dfa557;
  --bz-amber-vif:  #f0c78c;
  --bz-amber-rgb:      232,177,102;
  --bz-amber-2-rgb:    234,184,115;
  --bz-amber-vif-rgb:  240,199,140;

  --bz-red:       #ff8f8f;
  --bz-red-fort:  #ffa3a3;
  --bz-red-2:     #ff8f8f;
  --bz-red-vif:   #ff9d9d;
  --bz-red-rgb:       255,143,143;
  --bz-red-vif-rgb:   255,157,157;
  --bz-red-fort-rgb:  255,163,163;
  --bz-green-fort-rgb: 109,224,180;
  --bz-blue-3-rgb:    162,192,255;
  --bz-violet-2-rgb:  179,160,255;
  --bz-green-2-rgb:   69,210,156;
  --bz-red-2-rgb:     255,143,143;

  color-scheme: dark;
}

/* ===========================================================================
   LA COQUILLE DE L'APPLICATION EN BLEU.
   css/app-light.css remappe les variables du thème sombre d'origine vers la
   palette claire, sur « body.app-body ». On ne le désactive pas : on repasse
   par-dessus, avec un sélecteur plus spécifique, pour que la bascule tienne
   quel que soit l'ordre de chargement des feuilles.
   =========================================================================== */
:root[data-theme="bleu"] body.app-body{
  --bg:#0b1526;
  --bg-alt:#142440;
  --surface:#142440;
  --surface-2:#17284a;
  --border:rgba(167,192,235,.14);
  --border-strong:rgba(167,192,235,.26);
  --text:#edf2fc;
  --text-dim:#bfcce6;
  --text-mute:#9dadc9;
  --accent:#7ba4ff;
  --accent-2:#b3a0ff;
  --accent-gold:#e8b166;
  --danger:#ff8f8f;
  --lime:#7ba4ff;
  --noir:#0b1526;          /* texte posé sur l'accent : marine sur bleu clair */
  --hl:#7ba4ff;
  --gradient:linear-gradient(135deg,#7ba4ff,#b3a0ff);
  --shadow:0 14px 40px rgba(0,0,0,.45);
  background:#0b1526;
  color:#bfcce6;
}
:root[data-theme="bleu"] body.app-body h1,
:root[data-theme="bleu"] body.app-body h2,
:root[data-theme="bleu"] body.app-body h3,
:root[data-theme="bleu"] body.app-body h4{ color:#edf2fc; }

/* Boutons : sur marine, l'accent porte du texte SOMBRE, pas du blanc. */
:root[data-theme="bleu"] .app-body .btn-primary{ background:#7ba4ff; color:#0b1526; }
:root[data-theme="bleu"] .app-body .btn-outline{ color:#edf2fc; border-color:rgba(167,192,235,.30);
  background:transparent; }
:root[data-theme="bleu"] .app-body .btn-ghost{ color:#bfcce6; }
:root[data-theme="bleu"] .app-body .alert-success{ background:rgba(69,210,156,.10);
  border-color:rgba(69,210,156,.35); color:#6de0b4; }
:root[data-theme="bleu"] .app-body .alert-error{ background:rgba(255,143,143,.10);
  border-color:rgba(255,143,143,.35); color:#ff9d9d; }
:root[data-theme="bleu"] .app-body .is-up{ color:#45d29c; }
:root[data-theme="bleu"] .app-body .is-down{ color:#ff8f8f; }

/* Le graphique et les onglets : détails codés en dur dans theme-v4.css. */
:root[data-theme="bleu"] .app-body .fchart-grid{ stroke:rgba(167,192,235,.12); }
:root[data-theme="bleu"] .app-body .fchart-cross{ stroke:rgba(167,192,235,.40); }
:root[data-theme="bleu"] .app-body .fchart-periods button.on,
:root[data-theme="bleu"] .app-body .pfolio-tab.on{ color:#0b1526; }
:root[data-theme="bleu"] .app-body .fchart-stats .is-up,
:root[data-theme="bleu"] .app-body .fchart-tip .is-up{ color:#45d29c; }
:root[data-theme="bleu"] .app-body .fchart-stats .is-down,
:root[data-theme="bleu"] .app-body .fchart-tip .is-down{ color:#ff8f8f; }

/* La page elle-même, avant que body.app-body ne s'applique. */
:root[data-theme="bleu"]{ background:#0b1526; }
:root[data-theme="bleu"] body{ background:#0b1526; }

/* Les champs de saisie : un fond blanc sur marine agresse. */
:root[data-theme="bleu"] input, :root[data-theme="bleu"] select,
:root[data-theme="bleu"] textarea{ background:#0f1c31; color:#edf2fc;
  border-color:rgba(167,192,235,.22); }
:root[data-theme="bleu"] ::placeholder{ color:#7d8da9; }

/* ---- LA BASCULE, dans la barre ---- */
.abar-theme{ display:inline-flex; align-items:center; justify-content:center; width:36px;
  height:36px; padding:0; border-radius:10px; cursor:pointer; color:inherit;
  background:transparent; border:1px solid rgba(var(--bz-ink-rgb),.16); }
.abar-theme:hover{ background:rgba(var(--bz-ink-rgb),.06); }
.abar-theme:focus-visible{ outline:2px solid var(--bz-blue-vif); outline-offset:2px; }
.abar-theme svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8;
  stroke-linecap:round; stroke-linejoin:round; }
/* Une seule icône visible à la fois : celle du thème vers lequel on irait. */
.abar-theme .th-lune{ display:block; }
.abar-theme .th-soleil{ display:none; }
:root[data-theme="bleu"] .abar-theme .th-lune{ display:none; }
:root[data-theme="bleu"] .abar-theme .th-soleil{ display:block; }

/* Les sept pastilles de rubrique du tableau de bord gardent leurs teintes
   propres — elles n'existent que pour se distinguer entre elles. Sur marine,
   on les éclaircit en bloc plutôt que de les ramener dans la palette. */
:root[data-theme="bleu"] .dnews-tag.t-blue{ color:#8fb4ff; }
:root[data-theme="bleu"] .dnews-tag.t-purple{ color:#b9a5ff; }
:root[data-theme="bleu"] .dnews-tag.t-amber{ color:#e8b166; }
:root[data-theme="bleu"] .dnews-tag.t-green{ color:#4fd6a0; }
:root[data-theme="bleu"] .dnews-tag.t-orange{ color:#f0a267; }
:root[data-theme="bleu"] .dnews-tag.t-cyan{ color:#63c4dd; }
:root[data-theme="bleu"] .dnews-tag.t-rose{ color:#f291ab; }

/* Les étiquettes de stratégie tombaient à 4,43:1 sur leur propre fond teinté —
   juste sous le seuil. Un cran plus clair suffit ; on ne touche pas à l'accent
   général, qui sert ailleurs sur des fonds différents. */
:root[data-theme="bleu"] .app-body .idee-tag{ color:#a8c4ff; }

/* L'étiquette de bande du radar tombait à 4,43:1 sur son propre fond teinté —
   juste sous le seuil. Un cran plus clair suffit, sans toucher à l'accent
   général qui sert ailleurs sur d'autres fonds. */
:root[data-theme="bleu"] .radar-band-lab.sig-high,
:root[data-theme="bleu"] .radar-band-lab.sig-solid{ color:#a8c4ff; }

/* LA BASCULE DE LANGUE. Deux lettres, pas un drapeau : un drapeau designe un
   pays, pas une langue — et l'anglais n'appartient a aucun des deux. */
.bz-lang { display: inline-flex; align-items: center; gap: 1px; }
.bz-lang > a, .bz-lang > span {
    display: inline-block;
    padding: .3rem .5rem;
    font-size: .78rem; font-weight: 700; letter-spacing: .03em;
    text-decoration: none; border-radius: 7px;
}
.bz-lang > a { color: var(--text-mute); }
.bz-lang > a:hover { color: var(--text); background: var(--surface-2); }
.bz-lang > .bz-lang-on { color: var(--text); background: var(--surface-2); cursor: default; }

/* Sur les pages sans en-tete (connexion, inscription), la bascule se pose sous
   le logo : centree, discrete, mais presente — sans elle on ne peut plus revenir. */
.bz-lang.auth-lang { justify-content: center; margin: .2rem 0 1rem; }
