/*
 * voltea_theme — Brand tokens (charte Voltea appliquée le 11/06/2026)
 *
 * SEUL FICHIER À ÉDITER pour faire évoluer la charte.
 * Section 1 : palette officielle Voltea (source de vérité).
 * Section 2 : tokens dérivés consommés par les autres CSS de l'app
 *             (voltea-sidebar.css, voltea-accents.css, voltea-frappe-map.css).
 *             Ils ne contiennent AUCUNE couleur en dur : tout dérive de la
 *             section 1, sauf le rouge danger (hors charte, sémantique).
 */

:root {
  /* ------------------------------------------------------------------
   * 1. Charte Voltea — palette officielle
   * ------------------------------------------------------------------ */
  --voltea-navy: #0B1630;
  --voltea-navy-700: #1C2B4F;
  --voltea-navy-100: #E8ECF4;
  --voltea-green: #4E8F3C;
  --voltea-green-700: #2F7A3C;
  --voltea-green-100: #EAF3DE;
  --voltea-amber: #EC9D32;
  --voltea-amber-100: #FAEEDA;
  --voltea-bg: #FBFBFC;
  /* Gris NEUTRES (sans voile bleu) — direction « neutre & reposant ».
   * La couleur ne sert plus qu'à signaler ; le fond ne fatigue plus l'œil. */
  --voltea-surface: #F3F4F5;
  --voltea-border: #E2E3E7;
  --voltea-text: #0B1630;
  --voltea-text-muted: #62666E;

  /* ------------------------------------------------------------------
   * 2. Tokens dérivés
   * ------------------------------------------------------------------ */

  /* Couleur forte unique : navy (boutons primaires, liens, focus, actifs) */
  --voltea-primary: var(--voltea-navy);
  --voltea-primary-hover: var(--voltea-navy-700);
  /* Tint de survol : gris neutre TRANSPARENT (plus de voile navy au hover). */
  --voltea-primary-soft: rgba(100, 104, 112, 0.10);

  /* Secondaire / accent */
  --voltea-secondary: var(--voltea-green);
  --voltea-secondary-hover: var(--voltea-green-700);
  --voltea-accent: var(--voltea-amber);

  /* Statuts sémantiques */
  --voltea-success: var(--voltea-green-700);
  --voltea-warning: var(--voltea-amber);
  --voltea-danger: #C0392B;
  --voltea-info: var(--voltea-navy-700);
  --voltea-neutral: var(--voltea-text-muted);

  /* Déclinaisons statut pour le texte et les fonds doux.
   * --voltea-warning-text : l'ambre officiel (#EC9D32) ne passe pas le
   * contraste 4,5:1 en texte sur blanc ; cette variante foncée sert à tout
   * texte "warning" (les fonds/bordures restent sur --voltea-warning). */
  --voltea-warning-text: #A66300;
  --voltea-success-100: #EAF7EF;
  --voltea-danger-100: #FDECEA;

  /* Neutres complémentaires */
  --voltea-surface-alt: #ECEDF0;
  --voltea-border-strong: #CDD0D6;
  --voltea-text-subtle: #8A8F98;
  /* Canvas du desk : gris neutre PRÉSENT (les cartes blanches ressortent,
   * mais aucune dominante colorée → l'œil se repose). */
  --voltea-canvas: #ECEDEF;

  /* Mise en forme — bordures 1px, radius 8px, pas de dégradés */
  --voltea-radius-sm: 6px;
  --voltea-radius: 8px;
  --voltea-radius-lg: 12px;
  --voltea-radius-pill: 999px;
  /* Ombres plus présentes : les cartes « décollent » du canvas (anti-pâle). */
  --voltea-shadow-sm: 0 1px 3px rgba(11, 22, 48, 0.10);
  --voltea-shadow-md: 0 6px 18px rgba(11, 22, 48, 0.11);
  --voltea-shadow-lg: 0 16px 36px rgba(11, 22, 48, 0.15);

  /* Typographie */
  --voltea-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --voltea-font-size-base: 14px;
  --voltea-font-size-sm: 12.5px;
  --voltea-font-size-lg: 16px;
  --voltea-font-size-xl: 20px;
  --voltea-line-height: 1.55;
  --voltea-line-height-tight: 1.35;
  --voltea-font-weight-medium: 500;
  --voltea-font-weight-semibold: 600;
  --voltea-font-weight-bold: 700;

  /* Espacements */
  --voltea-space-xs: 4px;
  --voltea-space-sm: 8px;
  --voltea-space-md: 16px;
  --voltea-space-lg: 24px;
  --voltea-space-xl: 32px;
  --voltea-space-2xl: 48px;

  /* Transitions */
  --voltea-transition-fast: 120ms ease;
  --voltea-transition: 180ms ease;

  /* Focus — navy */
  --voltea-focus-ring: 0 0 0 3px rgba(11, 22, 48, 0.22);

  /* ------------------------------------------------------------------
   * 3. V3 anti-fade (08/07/2026) — tokens additifs
   *    Fonds teintés (icon chips, KPI cards), dégradés discrets
   *    (bandeaux hero uniquement — amende le « pas de dégradés » du
   *    11/06, cf. DECISIONS 08/07), palette graphique catégorielle.
   * ------------------------------------------------------------------ */
  /* Tints doux — usage RARE (signal), volontairement discrets. */
  --voltea-navy-soft: rgba(11, 22, 48, 0.06);
  --voltea-green-soft: rgba(78, 143, 60, 0.12);
  --voltea-amber-soft: rgba(236, 157, 50, 0.14);
  --voltea-danger-soft: rgba(192, 57, 43, 0.10);

  --voltea-gradient-hero: linear-gradient(135deg, var(--voltea-navy) 0%, var(--voltea-navy-700) 100%);

  /* Palette graphique (barres, donuts) — dérivée de la charte */
  --voltea-chart-1: var(--voltea-navy-700);
  --voltea-chart-2: var(--voltea-green);
  --voltea-chart-3: var(--voltea-amber);
  --voltea-chart-4: #5B7DB1; /* bleu acier dérivé du navy (data-viz only) */
  --voltea-chart-5: var(--voltea-green-700);
  --voltea-chart-6: #C86A5A; /* terracotta doux (data-viz only) */
}

/* ====================================================================
 * 4. MODE SOMBRE (22/07/2026) — piloté par le switch natif Frappe, qui pose
 *    data-theme="dark" sur <html>. On redéfinit les tokens SÉMANTIQUES ; les
 *    surfaces en dur (cartes blanches, mesh sidebar…) sont traitées dans
 *    voltea-dark.css. La charte (navy/vert/ambre) reste, adaptée en luminosité.
 * ==================================================================== */
:root[data-theme="dark"] {
  /* Fonds : du plus profond (canvas) au plus clair (surface-alt). */
  --voltea-canvas: #0E1117;       /* fond du desk */
  --voltea-bg: #161A22;           /* fond général / cartes */
  --voltea-surface: #1B2029;      /* surfaces secondaires */
  --voltea-surface-alt: #232935;  /* survols, zones alternées */
  --voltea-border: #2A303C;
  --voltea-border-strong: #3A4150;

  /* Textes : clairs sur fond sombre (contraste AA). */
  --voltea-text: #E7EAF1;
  --voltea-text-muted: #A5ACBB;
  --voltea-text-subtle: #79808F;

  /* Marque éclaircie pour rester lisible/vivante sur fond sombre. */
  --voltea-navy: #9FB4E0;         /* le navy pur serait invisible → bleu clair */
  --voltea-navy-700: #B7C7EA;
  --voltea-navy-100: #202737;     /* ex-tint clair → tint sombre */
  --voltea-primary: #6E8DD6;      /* boutons/liens/actifs : bleu lisible sur sombre */
  --voltea-primary-hover: #85A0DE;
  --voltea-primary-soft: rgba(160, 180, 224, 0.14);
  --voltea-green: #6FBF57;
  --voltea-green-700: #7FCB66;
  --voltea-amber: #F0AE4E;
  --voltea-warning-text: #F0AE4E;
  --voltea-secondary: var(--voltea-green);
  --voltea-accent: var(--voltea-amber);

  /* Tints doux : versions claires (les rgba sombres disparaîtraient). */
  --voltea-navy-soft: rgba(160, 180, 224, 0.12);
  --voltea-green-soft: rgba(111, 191, 87, 0.16);
  --voltea-amber-soft: rgba(240, 174, 78, 0.16);
  --voltea-danger-soft: rgba(224, 108, 95, 0.16);
  --voltea-success-100: rgba(111, 191, 87, 0.14);
  --voltea-danger-100: rgba(224, 108, 95, 0.14);
  --voltea-danger: #E0705F;

  /* Ombres plus profondes sur fond sombre + focus éclairci. */
  --voltea-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.45);
  --voltea-shadow-md: 0 6px 18px rgba(0, 0, 0, 0.50);
  --voltea-shadow-lg: 0 16px 36px rgba(0, 0, 0, 0.55);
  --voltea-focus-ring: 0 0 0 3px rgba(160, 180, 224, 0.30);

  /* Navbar & hero restent SOMBRES (le navy-token est éclairci pour le texte,
     mais ces surfaces doivent rester foncées). */
  --voltea-gradient-hero: linear-gradient(135deg, #10161F 0%, #1A2233 100%);

  /* ------------------------------------------------------------------
   * FIX SYSTÉMIQUE : on redéfinit les variables NATIVES de Frappe avec la
   * palette Voltea dark. Frappe applique son propre dark (fond, cartes, listes,
   * carte…) via ces tokens ; sans ça, deux systèmes de sombre coexistent (fond
   * derrière le contenu ≠ canvas → mismatch PARTOUT). En les alignant, toutes
   * les surfaces natives prennent nos couleurs → un seul ton sur toutes les pages.
   * ------------------------------------------------------------------ */
  --bg-color: var(--voltea-canvas);
  --fg-color: var(--voltea-canvas);
  --card-bg: var(--voltea-bg);
  --control-bg: var(--voltea-surface);
  --control-bg-on-gray: var(--voltea-surface-alt);
  --disabled-control-bg: var(--voltea-surface-alt);
  --modal-bg: var(--voltea-bg);
  --toast-bg: var(--voltea-bg);
  --popover-bg: var(--voltea-bg);
  --awesomplete-hover-bg: var(--voltea-surface-alt);
  --sidebar-bg: var(--voltea-canvas);
  --navbar-bg: var(--voltea-canvas);
  --text-color: var(--voltea-text);
  --text-muted: var(--voltea-text-muted);
  --text-light: var(--voltea-text);
  --heading-color: var(--voltea-text);
  --subtle-fg: var(--voltea-surface);
  --border-color: var(--voltea-border);
  --dark-border-color: var(--voltea-border-strong);
  --table-border-color: var(--voltea-border);
  --highlight-color: var(--voltea-surface-alt);
  --btn-default-bg: var(--voltea-surface);
  --scrollbar-thumb-color: var(--voltea-border-strong);

  /* Data-viz : mêmes teintes éclaircies pour rester lisibles. */
  --voltea-chart-1: #7E9CDD;
  --voltea-chart-2: #6FBF57;
  --voltea-chart-3: #F0AE4E;
  --voltea-chart-4: #7E9CC9;
  --voltea-chart-5: #7FCB66;
  --voltea-chart-6: #D98577;
}
