/* ══════════════════════════════════════════════════════════════════════════
   DESIGN SYSTEM : REXORA (flat / minimal)
   ──────────────────────────────────────────────────────────────────────────
   Active uniquement quand <html data-design="rexora">. Annule l'esthetique
   glassmorphism (blur, gradient borders, glow, orbes ambiants) et la
   remplace par : cards pleines (blanches en light, sombres en dark),
   bordure subtile #E5E7EB, ombre douce 0 1px 3px rgba(0,0,0,.05),
   background plat sans mesh ni orbe.

   Mode jour/nuit (data-theme) et couleur accent (var(--acc)) restent
   pleinement respectes.
   ════════════════════════════════════════════════════════════════════════ */

/* ──────────────────────────────────────────────────────────────────────────
   REFONTE IMORIA (2026-06)
   Thème AUTONOME, sans rapport avec Orbit. Clair/chaud, accent piloté par le
   picker (var(--acc) → var(--accent)), dégradé + ombres recalculés via
   color-mix(). Typo Rexora inchangée : on ne touche qu'aux couleurs, ombres,
   rayons et traitements de surface.

   IMPORTANT : le picker écrit --acc sur <body> (inline + JS). Les tokens
   dérivés de l'accent sont donc déclarés sur une portée body (...[theme] body)
   pour suivre le picker. Les neutres/rayons (sans dépendance accent) restent
   sur la portée html.
   ────────────────────────────────────────────────────────────────────────── */

html[data-design="rexora"] {
  /* Rayons (doc Imoria) */
  --r-compact: 6px;
  --r-input:   8px;
  --r-icon:    10px;
  --r-card:    12px;
  --r-block:   28px;
  --r-pill:    999px;

  /* Alias des noms historiques Rexora → rayons Imoria */
  --rxr-radius:    var(--r-card);
  --rxr-radius-sm: var(--r-input);
}

/* ════════════════════════════════════════════════════════════════════════
   NEUTRES — LIGHT (crème chaud, fidèle aux captures)
   Pour revenir au doc strict : --bg:#FFFFFF; --surface:#F7F5F4;
   ════════════════════════════════════════════════════════════════════════ */
html[data-design="rexora"][data-theme="light"] {
  --bg:            #F6F2EC;
  --surface:       #FBF8F3;
  --surface-2:     #F1EBE3;
  --surface-hover: #EFE8DF;

  --text:        #292524;
  --text-2:      #57514A;
  --text-muted:  #77716E;
  --text-faint:  #A3989E;

  --text-on-accent:       #FFFFFF;
  --text-on-accent-muted: rgba(255,255,255,0.78);

  --border:        #E8E6E5;
  --border-strong: #D0CAC5;

  --dot:           rgba(41,37,36,0.06);
  --dot-on-accent: rgba(255,255,255,0.14);

  /* Ombres signature « inset + drop minime » (doc, statiques) */
  --shadow-surface: rgba(255,255,255,0.03) 0 1px 0 0 inset,
                    rgba(0,0,0,0.02) 0 1px 1px 0;
  --shadow-raised:  rgba(255,255,255,0.9) 0 1px 0 0 inset,
                    rgba(0,0,0,0.05) 0 -1px 0 0 inset,
                    rgba(0,0,0,0.08) 0 1px 2px 0,
                    rgba(0,0,0,0.04) 0 2px 4px 0;
  --shadow-overlay: rgba(255,255,255,0.18) 0 1px 0 0 inset,
                    rgba(0,0,0,0.08) 0 -1px 0 0 inset,
                    rgba(0,0,0,0.10) 0 8px 24px 0;

  /* ── Alias noms historiques Rexora → neutres Imoria ── */
  --bg2: var(--surface);
  --card: var(--surface);
  --card2: var(--surface-2);
  --inp: var(--surface-2);            /* champ solide (pas de transparence) */
  --elev: var(--surface);
  --bg-primary: var(--bg);
  --bg-secondary: var(--surface);
  --bg-card: var(--surface);
  --bg-card-hover: var(--surface-hover);
  --bg-elevated: var(--surface);
  --bg-sidebar: var(--surface);

  --t1: var(--text);
  --t2: var(--text-2);
  --t3: var(--text-muted);
  --t4: var(--text-faint);
  --text-primary: var(--text);
  --text-secondary: var(--text-2);
  --text-tertiary: var(--text-muted);

  --brd: var(--border);
  --brd2: var(--border-strong);
  --card-border: var(--border);
  --card-border-hover: var(--border-strong);
  --card-bg-solid: var(--surface);
  --card-bg: var(--surface);

  --glass-bg: var(--surface);
  --glass-bg-strong: var(--surface);
  --glass-bg-soft: var(--surface-2);
  --glass-border: 1px solid var(--border);
  --glass-blur: none;

  --rxr-shadow-card: var(--shadow-surface);
  --rxr-shadow-card-hover: var(--shadow-raised);
  --glass-shadow: var(--shadow-surface);
  --glass-shadow-strong: var(--shadow-raised);
}

/* ════════════════════════════════════════════════════════════════════════
   NEUTRES — DARK (gris très foncé neutre, type zinc — PAS de brun)
   ════════════════════════════════════════════════════════════════════════ */
html[data-design="rexora"][data-theme="dark"] {
  --bg:            #0F0F11;
  --surface:       #18181B;
  --surface-2:     #1F1F23;
  --surface-hover: #26262B;

  --text:        #FAFAFA;
  --text-2:      #C4C4C9;
  --text-muted:  #8A8A91;
  --text-faint:  #5C5C63;

  --text-on-accent:       #FFFFFF;
  --text-on-accent-muted: rgba(255,255,255,0.75);

  --border:        rgba(255,255,255,0.08);
  --border-strong: rgba(255,255,255,0.14);

  --dot:           rgba(255,255,255,0.05);
  --dot-on-accent: rgba(255,255,255,0.12);

  --shadow-surface: rgba(255,255,255,0.02) 0 1px 0 0 inset,
                    rgba(0,0,0,0.30) 0 1px 1px 0;
  --shadow-raised:  rgba(255,255,255,0.04) 0 1px 0 0 inset,
                    rgba(0,0,0,0.45) 0 2px 4px 0;
  --shadow-overlay: rgba(255,255,255,0.05) 0 1px 0 0 inset,
                    rgba(0,0,0,0.55) 0 8px 24px 0;

  /* ── Alias noms historiques ── */
  --bg2: var(--surface);
  --card: var(--surface);
  --card2: var(--surface-2);
  --inp: var(--surface-2);
  --elev: var(--surface);
  --bg-primary: var(--bg);
  --bg-secondary: var(--surface);
  --bg-card: var(--surface);
  --bg-card-hover: var(--surface-hover);
  --bg-elevated: var(--surface);
  --bg-sidebar: var(--surface);

  --t1: var(--text);
  --t2: var(--text-2);
  --t3: var(--text-muted);
  --t4: var(--text-faint);
  --text-primary: var(--text);
  --text-secondary: var(--text-2);
  --text-tertiary: var(--text-muted);

  --brd: var(--border);
  --brd2: var(--border-strong);
  --card-border: var(--border);
  --card-border-hover: var(--border-strong);
  --card-bg-solid: var(--surface);
  --card-bg: var(--surface);

  --glass-bg: var(--surface);
  --glass-bg-strong: var(--surface);
  --glass-bg-soft: var(--surface-2);
  --glass-border: 1px solid var(--border);
  --glass-blur: none;

  --rxr-shadow-card: var(--shadow-surface);
  --rxr-shadow-card-hover: var(--shadow-raised);
  --glass-shadow: var(--shadow-surface);
  --glass-shadow-strong: var(--shadow-overlay);
}

/* ════════════════════════════════════════════════════════════════════════
   ACCENT — dérivé du picker (--acc sur <body>). Déclaré en portée body pour
   que color-mix() se recalcule à chaque changement de couleur. #E85C2B = défaut
   Imoria, simple fallback ; le picker écrase --acc et tout suit.
   ════════════════════════════════════════════════════════════════════════ */
html[data-design="rexora"][data-theme="light"] body {
  --accent:        var(--acc, #E85C2B);
  --accent-hover:  color-mix(in srgb, var(--accent) 90%, black);
  --accent-active: color-mix(in srgb, var(--accent) 82%, black);
  --accent-soft:   color-mix(in srgb, var(--accent) 10%, var(--surface));
  --accent-tint:   color-mix(in srgb, var(--accent) 8%, transparent);
  --accent-border: color-mix(in srgb, var(--accent) 35%, transparent);
  --accent-text:   var(--accent);
  --accent-ring:   color-mix(in srgb, var(--accent) 10%, transparent);

  --block-grad: linear-gradient(150deg,
      color-mix(in srgb, var(--accent) 92%, white) 0%,
      color-mix(in srgb, var(--accent) 96%, black) 100%);

  --shadow-cta: rgba(255,255,255,0.18) 0 1px 0 0 inset,
                rgba(0,0,0,0.08) 0 -1px 0 0 inset,
                color-mix(in srgb, var(--accent) 35%, transparent) 0 1px 2px 0;

  /* Neutralise les gradients accent historiques (auraos) en les branchant sur
     l'accent piloté — corrige aussi le fait qu'ils ne suivaient pas le picker. */
  --acc-grad:        var(--accent);
  --acc-grad-soft:   var(--accent-soft);
  --acc-grad-subtle: var(--accent-tint);
}

/* Dégradé radial des cartes KPI (centre légèrement plus clair) + pointillés
   très légers — partagé clair/sombre, portée body pour suivre le picker. */
html[data-design="rexora"][data-theme="light"] body,
html[data-design="rexora"][data-theme="dark"] body {
  --kpi-grad: radial-gradient(130% 150% at 50% -10%,
      color-mix(in srgb, var(--accent) 72%, white) 0%,
      var(--accent) 46%,
      color-mix(in srgb, var(--accent) 88%, black) 100%);
  --dot-kpi: rgba(255,255,255,0.07);
}

html[data-design="rexora"][data-theme="dark"] body {
  --accent:        var(--acc, #E85C2B);
  --accent-hover:  color-mix(in srgb, var(--accent) 85%, white);
  --accent-active: color-mix(in srgb, var(--accent) 78%, black);
  --accent-soft:   color-mix(in srgb, var(--accent) 16%, var(--surface));
  --accent-tint:   color-mix(in srgb, var(--accent) 14%, transparent);
  --accent-border: color-mix(in srgb, var(--accent) 45%, transparent);
  --accent-text:   color-mix(in srgb, var(--accent) 78%, white);
  --accent-ring:   color-mix(in srgb, var(--accent) 22%, transparent);

  --block-grad: linear-gradient(150deg,
      color-mix(in srgb, var(--accent) 92%, white) 0%,
      color-mix(in srgb, var(--accent) 90%, black) 100%);

  --shadow-cta: rgba(255,255,255,0.10) 0 1px 0 0 inset,
                color-mix(in srgb, var(--accent) 40%, transparent) 0 2px 8px 0;

  --acc-grad:        var(--accent);
  --acc-grad-soft:   var(--accent-soft);
  --acc-grad-subtle: var(--accent-tint);
}

/* ══════════════════════════════════════════════════════════════════════════
   BODY : fond plat, suppression des orbes/mesh/noise/aura-orbs
   ════════════════════════════════════════════════════════════════════════ */
html[data-design="rexora"] body {
  background: var(--bg) !important;
  background-attachment: scroll !important;
}
html[data-design="rexora"] body:not(.has-bg-image)::before,
html[data-design="rexora"] body:not(.has-bg-image):has(.app-container)::after {
  display: none !important;
  background: none !important;
}
html[data-design="rexora"] body:not(.has-bg-image):has(.app-container) {
  background-color: var(--bg) !important;
}

/* aura-orbs : 3 orbes blurés position:fixed inset:0, posés directement dans
   <body>. Rien dans Rexora ne doit en montrer trace. */
html[data-design="rexora"] .aura-orbs,
html[data-design="rexora"] .aura-orb,
html[data-design="rexora"] .aura-liquid,
html[data-design="rexora"] .aura-noise {
  display: none !important;
  background: none !important;
  filter: none !important;
  opacity: 0 !important;
}

/* content-frame : par defaut rgba(255,255,255,0.32) (overlay glass) qui
   produit un fond translucide. En Rexora flat on veut un fond opaque
   pleine couleur var(--bg) pour que la page ait un fond solide. */
html[data-design="rexora"] body .content-frame,
html[data-design="rexora"] body div.content-frame {
  background-color: var(--bg) !important;
  /* Semis de points qui s'estompent légèrement et irrégulièrement : 3 voiles
     doux en couleur de fond par-dessus la trame de points (suit --dot/--bg). */
  background-image:
    radial-gradient(circle at 78% 14%, color-mix(in srgb, var(--bg) 88%, transparent) 0%, transparent 46%),
    radial-gradient(circle at 16% 82%, color-mix(in srgb, var(--bg) 88%, transparent) 0%, transparent 44%),
    radial-gradient(circle at 46% 52%, color-mix(in srgb, var(--bg) 72%, transparent) 0%, transparent 58%),
    radial-gradient(var(--dot) 1px, transparent 1px) !important;
  background-size: 100% 100%, 100% 100%, 100% 100%, 22px 22px !important;
  background-attachment: scroll !important;   /* scroll (pas fixed) : évite le
     scintillement Firefox quand une modale plein écran scrolle par-dessus */
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* ══════════════════════════════════════════════════════════════════════════
   SIDEBAR : flat solide, separateur 1px, radius modeste (8px au lieu de 28px)
   Note : on utilise html[data-design="rexora"] body .sidebar (et variantes
   nav/#sidebar) pour battre la regle volontairement haute specificite de
   auraos.css ligne 189 (html body nav.sidebar { border-radius: 28px }).
   ════════════════════════════════════════════════════════════════════════ */
html[data-design="rexora"] .sidebar,
html[data-design="rexora"] body .sidebar,
html[data-design="rexora"] body nav.sidebar,
html[data-design="rexora"] body #sidebar {
  background: var(--bg-sidebar) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border-right: 1px solid var(--brd) !important;
  box-shadow: none !important;
  border-radius: 8px !important;
}

/* App-container, topbar et content-frame : on aligne aussi a 8px pour un
   rendu coherent. content-frame n'arrondit qu'en bas (top = topbar arrondi).
   Meme contrainte de specificite pour battre auraos.css. */
html[data-design="rexora"] body .app-container,
html[data-design="rexora"] body div.app-container {
  border-radius: 8px !important;
}
html[data-design="rexora"] body .topbar,
html[data-design="rexora"] body header.topbar,
html[data-design="rexora"] body div.topbar {
  border-radius: 8px 8px 0 0 !important;
}
html[data-design="rexora"] .content-frame {
  border-radius: 0 0 8px 8px !important;
}

/* ══════════════════════════════════════════════════════════════════════════
   TOPBAR : effet FROST (translucide + flou) — overlay au-dessus du contenu
   ════════════════════════════════════════════════════════════════════════ */
html[data-design="rexora"] .topbar,
html[data-design="rexora"] header.topbar,
html[data-design="rexora"] div.topbar {
  background: color-mix(in srgb, var(--surface) 32%, transparent) !important;
  backdrop-filter: blur(14px) saturate(1.3) !important;
  -webkit-backdrop-filter: blur(14px) saturate(1.3) !important;
  border-bottom: 1px solid var(--border) !important;
  box-shadow: none !important;
}

/* ══════════════════════════════════════════════════════════════════════════
   CARDS : tout devient flat (annule glass-unified + theme.css glass)
   ════════════════════════════════════════════════════════════════════════ */
html[data-design="rexora"] .card,
html[data-design="rexora"] .card-strato,
html[data-design="rexora"] .kpi-card,
html[data-design="rexora"] .kpi,
html[data-design="rexora"] .stat-card,
html[data-design="rexora"] .chart-card,
html[data-design="rexora"] .chart-card-new,
html[data-design="rexora"] .nf-card,
html[data-design="rexora"] .glass-card,
html[data-design="rexora"] .pd-kpi,
html[data-design="rexora"] .pd-client-infos,
html[data-design="rexora"] .orbit-card {
  background: var(--card) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: 1px solid var(--brd) !important;
  border-radius: var(--rxr-radius) !important;
  box-shadow: var(--rxr-shadow-card) !important;
}
html[data-design="rexora"] .card:hover,
html[data-design="rexora"] .card-strato:hover,
html[data-design="rexora"] .kpi-card:hover,
html[data-design="rexora"] .stat-card:hover,
html[data-design="rexora"] .chart-card:hover,
html[data-design="rexora"] .chart-card-new:hover,
html[data-design="rexora"] .glass-card:hover,
html[data-design="rexora"] .orbit-card:hover {
  transform: none !important;
  box-shadow: var(--rxr-shadow-card-hover) !important;
  border-color: var(--brd2) !important;
}

/* Cards dans grid-2/grid-3 contenant un <canvas> (= chart) : la regle
   dashboard_style.css ligne 162 force background:transparent !important pour
   les charts (heritage Glass : le wrapper devait laisser passer les orbes).
   En Rexora, on veut un fond plat plein. Specificite (0,4,1) pour battre
   (0,4,0) de la regle source. */
html[data-design="rexora"] .grid-2 > .card:has(canvas),
html[data-design="rexora"] .grid-2 > .strato-card:has(canvas),
html[data-design="rexora"] .grid-3 > .card:has(canvas),
html[data-design="rexora"] .grid-3 > .strato-card:has(canvas),
html[data-design="rexora"][data-theme="dark"] .grid-2 > .card:has(canvas),
html[data-design="rexora"][data-theme="dark"] .grid-2 > .strato-card:has(canvas),
html[data-design="rexora"][data-theme="light"] .grid-2 > .card:has(canvas),
html[data-design="rexora"][data-theme="light"] .grid-2 > .strato-card:has(canvas) {
  background: var(--card) !important;
  background-color: var(--card) !important;
  background-image: none !important;
  border: 1px solid var(--brd) !important;
  box-shadow: var(--rxr-shadow-card) !important;
  border-radius: var(--rxr-radius) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* Annule les pseudo-elements glass (gradient borders, inner shine).
   Inclut .kpi seul (sans -card), .pd-kpi, .stat-card, .chart-card*, .nf-card,
   sinon le radial-gradient inner-shine reste visible sur les KPI Dashboard. */
html[data-design="rexora"] .card::before,
html[data-design="rexora"] .card::after,
html[data-design="rexora"] .card-strato::before,
html[data-design="rexora"] .card-strato::after,
html[data-design="rexora"] .kpi-card::before,
html[data-design="rexora"] .kpi-card::after,
html[data-design="rexora"] .kpi::before,
html[data-design="rexora"] .kpi::after,
html[data-design="rexora"] .stat-card::before,
html[data-design="rexora"] .stat-card::after,
html[data-design="rexora"] .chart-card::before,
html[data-design="rexora"] .chart-card::after,
html[data-design="rexora"] .chart-card-new::before,
html[data-design="rexora"] .chart-card-new::after,
html[data-design="rexora"] .nf-card::before,
html[data-design="rexora"] .nf-card::after,
html[data-design="rexora"] .pd-kpi::before,
html[data-design="rexora"] .pd-kpi::after,
html[data-design="rexora"] .pd-client-infos::before,
html[data-design="rexora"] .pd-client-infos::after,
html[data-design="rexora"] .glass-card::before,
html[data-design="rexora"] .glass-card::after,
html[data-design="rexora"] .orbit-card::before,
html[data-design="rexora"] .orbit-card::after {
  display: none !important;
  background: none !important;
  border: none !important;
  filter: none !important;
  box-shadow: none !important;
}

/* ══════════════════════════════════════════════════════════════════════════
   INPUTS / SELECTS / TEXTAREAS : flat avec bordure visible.
   Specificite haute (2 attrs sur html + 5 :not) pour battre
   glass-unified.css qui a [data-theme="light"] input:not()...×5 (0,7,1).
   Notre selecteur = (0,7,2) — gagne d'un type.
   Bordure renforcee (--brd2 au lieu de --brd) pour bien distinguer le
   champ de la card blanche/sombre qui le contient. Texte en --t1 plein.
   ════════════════════════════════════════════════════════════════════════ */
html[data-design="rexora"][data-theme="light"] input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]),
html[data-design="rexora"][data-theme="light"] select,
html[data-design="rexora"][data-theme="light"] textarea,
html[data-design="rexora"][data-theme="light"] .input-strato,
html[data-design="rexora"][data-theme="dark"] input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]),
html[data-design="rexora"][data-theme="dark"] select,
html[data-design="rexora"][data-theme="dark"] textarea,
html[data-design="rexora"][data-theme="dark"] .input-strato {
  background: var(--inp) !important;            /* champ solide (surface-2) */
  background-color: var(--inp) !important;
  border: 1px solid var(--border) !important;   /* bordure hairline */
  color: var(--text) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: none !important;
  border-radius: var(--r-input) !important;
}
html[data-design="rexora"] input::placeholder,
html[data-design="rexora"] textarea::placeholder {
  color: var(--text-faint) !important;          /* placeholder = text-faint */
  opacity: 1 !important;
}
html[data-design="rexora"] .input-strato:focus,
html[data-design="rexora"] input:focus,
html[data-design="rexora"] select:focus,
html[data-design="rexora"] textarea:focus {
  border-color: var(--accent) !important;
  box-shadow: 0 0 0 2px var(--accent-ring) !important;
  outline: none !important;
}

/* ══════════════════════════════════════════════════════════════════════════
   BOUTONS : flat radius 10px partout. On garde l'accent user pour primary.
   Specificite haute (reproduit le pattern :not() de style.css ligne 6669
   qui force 100px sur tous les boutons) pour battre le pill complet en
   Rexora. Selecteur final = (0, 9, 2) > (0, 8, 1) de style.css.
   ════════════════════════════════════════════════════════════════════════ */
/* Reproduit le pattern :not() de style.css ligne 6669 (qui force 100px
   pill complet sur quasi tous les boutons) — meme spec + 1 attr en plus
   = (0, 9, 2) qui bat (0, 8, 1) → ma regle gagne le radius en Rexora. */
html[data-design="rexora"] button:not(.faq-q):not(.toggle):not(.theme-toggle):not(.theme-switch-btn):not(.wp-thumb):not([class*="chart"]):not([class*="tab"]):not([class*="dropdown"]),
html[data-design="rexora"] [type="submit"],
html[data-design="rexora"] [type="button"],
html[data-design="rexora"] a.btn,
html[data-design="rexora"] a[class*="btn-"],
html[data-design="rexora"] .status-pill,
html[data-design="rexora"] .filter-pill,
html[data-design="rexora"] .badge,
html[data-design="rexora"] .badge-pill,
html[data-design="rexora"] .chip,
html[data-design="rexora"] .tag,
html[data-design="rexora"] .search-pill,
html[data-design="rexora"] .search-pill-input,
html[data-design="rexora"] .user-badge,
html[data-design="rexora"] .btn-glass-pill,
html[data-design="rexora"] .btn-glass-select {
  border-radius: var(--r-pill) !important;   /* boutons/badges en pill (Imoria) */
}

/* Exception : elements vraiment ronds (icon buttons, dots, hamburger, etc.)
   doivent conserver border-radius: 50% ou pill complet pour rester
   reconnaissables comme un bouton-icone ou un indicateur visuel. */
html[data-design="rexora"] .color-dot,
html[data-design="rexora"] .color-dot-picker,
html[data-design="rexora"] .topbar-icon-btn,
html[data-design="rexora"] .topbar-nav-btn,
html[data-design="rexora"] .hamburger-btn,
html[data-design="rexora"] .sidebar-collapse-btn,
html[data-design="rexora"] .timer-stop,
html[data-design="rexora"] .icon-only,
html[data-design="rexora"] .status-pill-dot,
html[data-design="rexora"] .knob,
html[data-design="rexora"] [class*="-dot"] {
  border-radius: 50% !important;
}

/* Boutons secondaires / ghost : fond solide (pas de transparence), bordure
   hairline, ombre « raised ». Hover → surface-hover. */
html[data-design="rexora"] .btn,
html[data-design="rexora"] .btn-secondary,
html[data-design="rexora"] .btn-secondary-strato,
html[data-design="rexora"] .btn-ghost {
  background: var(--surface) !important;
  border: 1px solid var(--border) !important;
  box-shadow: var(--shadow-raised) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  color: var(--text) !important;
}
html[data-design="rexora"] .btn:hover,
html[data-design="rexora"] .btn-secondary:hover,
html[data-design="rexora"] .btn-secondary-strato:hover,
html[data-design="rexora"] .btn-ghost:hover {
  background: var(--surface-hover) !important;
  border-color: var(--border-strong) !important;
  color: var(--text) !important;
}

/* Bouton PRIMARY : fond accent plein, texte blanc dans les 2 etats.
   Override IMPORTANT du :hover de redesign.css qui forcait bg en
   rgba(accent, 0.25) + color accent => doré sur quasi-blanc illisible. */
html[data-design="rexora"] .btn-primary,
html[data-design="rexora"] .btn-primary-strato,
html[data-design="rexora"] .btn.btn-primary {
  background: var(--block-grad) !important;   /* dégradé accent (suit le picker) */
  background-color: var(--accent) !important; /* fallback couleur pleine */
  color: var(--text-on-accent) !important;
  border: 1px solid transparent !important;
  box-shadow: var(--shadow-cta) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
html[data-design="rexora"] .btn-primary:hover,
html[data-design="rexora"] .btn-primary-strato:hover,
html[data-design="rexora"] .btn.btn-primary:hover {
  background: var(--accent-hover) !important;
  background-image: none !important;
  color: var(--text-on-accent) !important;
  border-color: transparent !important;
  box-shadow: var(--shadow-cta) !important;
}
html[data-design="rexora"] .btn-primary:active,
html[data-design="rexora"] .btn-primary-strato:active,
html[data-design="rexora"] .btn.btn-primary:active {
  background: var(--accent-active) !important;
  background-image: none !important;
  color: var(--text-on-accent) !important;
}

/* ══════════════════════════════════════════════════════════════════════════
   MODALS — IMPORTANT : on NE TOUCHE PAS aux modales en Rexora.
   Decision utilisateur 2026-05-28 : les modales doivent rester en style
   glass (fond translucide + backdrop-filter blur) dans les 2 themes
   (Glass et Rexora). Le rendu vient de glass-unified.css qui s'applique
   partout. Aucun override Rexora ici sinon on casse l'effet "modale qui
   se detache visuellement de la page floutee derriere".
   ════════════════════════════════════════════════════════════════════════ */

/* ══════════════════════════════════════════════════════════════════════════
   POPOVERS (theme picker, dropdowns)
   ════════════════════════════════════════════════════════════════════════ */
html[data-design="rexora"] .theme-popover,
html[data-design="rexora"] .header-dropdown,
html[data-design="rexora"] .notif-panel,
html[data-design="rexora"] .phase-dropdown {
  background: color-mix(in srgb, var(--surface) 80%, transparent) !important;
  backdrop-filter: blur(18px) saturate(1.4) !important;
  -webkit-backdrop-filter: blur(18px) saturate(1.4) !important;
  border: 1px solid var(--border) !important;
  box-shadow: var(--shadow-overlay) !important;
  border-radius: var(--r-card) !important;
}

/* ══════════════════════════════════════════════════════════════════════════
   SIDEBAR : items actifs / hover
   ════════════════════════════════════════════════════════════════════════ */
html[data-design="rexora"] .sidebar-item {
  border-radius: var(--rxr-radius-sm) !important;
}
html[data-design="rexora"] .sidebar-item.active {
  background: var(--accent-soft) !important;
  color: var(--accent-text) !important;
  border-left: 3px solid var(--accent) !important;
}
html[data-design="rexora"] .sidebar-item:hover {
  background: var(--card2) !important;
}

/* ══════════════════════════════════════════════════════════════════════════
   BADGES TENDANCE (KPI "+3.1% vs Last Week") : pill plein doux
   ════════════════════════════════════════════════════════════════════════ */
html[data-design="rexora"] .kpi-card .trend,
html[data-design="rexora"] .kpi-trend,
html[data-design="rexora"] .stat-card .trend {
  background: var(--accent-soft) !important;
  color: var(--accent-text) !important;
  border: none !important;
  border-radius: var(--r-pill) !important;
  padding: 3px 10px !important;
  box-shadow: none !important;
}

/* ══════════════════════════════════════════════════════════════════════════
   TABLES : lignes alternees subtiles + bordure plate
   ════════════════════════════════════════════════════════════════════════ */
html[data-design="rexora"] table {
  background: var(--card) !important;
  border: 1px solid var(--brd) !important;
  border-radius: var(--rxr-radius) !important;
}
html[data-design="rexora"] th,
html[data-design="rexora"] td {
  border-color: var(--brd) !important;
  background: transparent !important;
}
html[data-design="rexora"] tr:hover td {
  background: var(--card2) !important;
}

/* ══════════════════════════════════════════════════════════════════════════
   TOAST NOTIFICATIONS
   ════════════════════════════════════════════════════════════════════════ */
html[data-design="rexora"] .toast-notification {
  background: color-mix(in srgb, var(--surface) 80%, transparent) !important;
  border: 1px solid var(--border) !important;
  box-shadow: var(--shadow-overlay) !important;
  backdrop-filter: blur(18px) saturate(1.4) !important;
  -webkit-backdrop-filter: blur(18px) saturate(1.4) !important;
}

/* ══════════════════════════════════════════════════════════════════════════
   ANIMATIONS : on conserve les transitions douces mais on annule les
   effets de halo/glow qui jurent avec le flat design.
   ════════════════════════════════════════════════════════════════════════ */
html[data-design="rexora"] *,
html[data-design="rexora"] *::before,
html[data-design="rexora"] *::after {
  /* Annule les box-shadow inset glow accent qui parsement le design glass */
  text-shadow: none !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   SYSTÈME UNIFIÉ DES BOUTONS D'EXPORT / ENVOI (app-wide)
   Demande utilisateur : chaque format d'export a une teinte fixe sur fond
   transparent coloré (pattern badge .btn-*-strato) :
     PDF      → rouge          #EF4444
     Excel    → vert           #10B981
     Word     → bleu           #3B82F6
     Factur-X → jaune moutarde #D4A017 (éclairci en dark pour lisibilité)
     Envoyer  → gris neutre, s'éclaircit en mode nuit (var --t2)
   Placé en fin de design-rexora.css (dernier CSS chargé) et préfixé
   html[data-design] pour battre la règle rexora .btn-secondary-strato
   (spécificité 0,2,1) ET le design glass. Combiner avec .btn-secondary-strato
   / .cht-btn-primary (forme + taille), ou utiliser seul. Couleurs FIXES,
   jamais var(--acc). ═══ */
/* Boutons export UNIFIÉS : surface NEUTRE identique (style secondary), la
   distinction se fait par ICÔNE colorée + LIBELLÉ. Fini l'arc-en-ciel de fonds
   multicolores (Fondation 5). */
html[data-design] .btn-exp-pdf,
html[data-design] .btn-exp-excel,
html[data-design] .btn-exp-word,
html[data-design] .btn-exp-facturx,
html[data-design] .btn-exp-send {
  background: rgba(148, 163, 184, 0.10) !important;
  color: var(--t1) !important;
  border: 1px solid rgba(148, 163, 184, 0.22) !important;
}
[data-theme="light"] html[data-design] .btn-exp-pdf,
[data-theme="light"] html[data-design] .btn-exp-excel,
[data-theme="light"] html[data-design] .btn-exp-word,
[data-theme="light"] html[data-design] .btn-exp-facturx,
[data-theme="light"] html[data-design] .btn-exp-send {
  background: rgba(100, 116, 139, 0.08) !important;
  border-color: rgba(100, 116, 139, 0.20) !important;
}
html[data-design] .btn-exp-pdf:hover,
html[data-design] .btn-exp-excel:hover,
html[data-design] .btn-exp-word:hover,
html[data-design] .btn-exp-facturx:hover,
html[data-design] .btn-exp-send:hover {
  background: rgba(148, 163, 184, 0.18) !important;
  border-color: rgba(148, 163, 184, 0.34) !important;
  color: var(--t1) !important;
}
/* Icône colorée par type = le seul repère couleur conservé (couleurs FIXES). */
html[data-design] .btn-exp-pdf i     { color: #EF4444 !important; }
html[data-design] .btn-exp-excel i   { color: #10B981 !important; }
html[data-design] .btn-exp-word i    { color: #3B82F6 !important; }
html[data-design] .btn-exp-facturx i { color: #D4A017 !important; }
html[data-design] .btn-exp-send i    { color: var(--acc) !important; } /* accent RÉSERVÉ à Envoyer (action primaire d'envoi) */
[data-theme="dark"] html[data-design] .btn-exp-facturx i { color: #E3B341 !important; }

/* Hauteur de bouton UNIFIÉE (Fondation 5) : tous les boutons strato à la même
   hauteur (32px), contenu centré. Corrige les écarts 29/30/32px dus aux overrides
   contextuels (barres filtre). design-rexora.css charge après style.css/redesign
   → gagne les égalités de spécificité. */
html[data-design="rexora"] .btn-primary-strato,
html[data-design="rexora"] .btn-strato,
html[data-design="rexora"] .btn-secondary-strato,
html[data-design="rexora"] .btn-danger-strato,
html[data-design="rexora"] .btn-delete,
html[data-design="rexora"] .btn-ghost {
  min-height: 32px !important;
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
}

/* ══════════════════════════════════════════════════════════════════════════
   ENTÊTE DE PAGE « FULL COLOR » (signature Imoria) : la barre de titre de
   chaque page devient un grand bloc accent arrondi, texte blanc, texture
   pointillés. Le dégradé suit le picker (--block-grad). Sur clair ET sombre.
   ══════════════════════════════════════════════════════════════════════════ */
html[data-design="rexora"] .page-header,
html[data-design="rexora"] .content-frame > .content > .page-header,
html[data-design="rexora"] .content-frame > .content > .page-header:first-child {
  position: relative;
  display: flex !important;
  flex-direction: column;
  justify-content: center;   /* texte centré verticalement dans le bloc */
  align-items: flex-start;
  min-height: 76px;
  background: var(--block-grad) !important;
  border: 1px solid transparent !important;
  border-radius: var(--r-block) !important;
  box-shadow: var(--shadow-cta) !important;
  padding: 18px 32px !important;   /* symétrique : bat le padding-top:0 du base */
  /* Symétrie verticale : gap sous le bandeau = gap au-dessus.
     Gap au-dessus = contenu padding-top (54px) − hauteur topbar (38px) = 16px.
     Bat le margin-bottom:6px de glass-unified.css (spécificité (0,4,1) > (0,3,0)). */
  margin-bottom: 16px !important;
  overflow: hidden;
}
html[data-design="rexora"] .page-header::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(var(--dot-on-accent) 1px, transparent 1px);
  background-size: 22px 22px;
  pointer-events: none;
}
html[data-design="rexora"] .page-header > * { position: relative; z-index: 1; }
html[data-design="rexora"] .page-header h1,
html[data-design="rexora"] .page-header h2,
html[data-design="rexora"] .page-header h1 * {
  color: var(--text-on-accent) !important;
}
html[data-design="rexora"] .page-header .subtitle {
  color: var(--text-on-accent-muted) !important;
}
/* Icônes SVG (img.icon-glass) de l'entête : forcées en blanc sur l'accent */
html[data-design="rexora"] .page-header .icon-glass,
html[data-design="rexora"] .page-header img {
  filter: brightness(0) invert(1) !important;
}
/* Boutons éventuels dans l'entête : pill crème, lisible sur l'accent */
html[data-design="rexora"] .page-header .btn-primary,
html[data-design="rexora"] .page-header .btn-primary-strato {
  background: var(--surface) !important;
  background-image: none !important;
  color: var(--text) !important;
  border-color: transparent !important;
}

/* ══════════════════════════════════════════════════════════════════════════
   CARTES KPI « FULL COLOR » : bloc accent radial (centre plus clair),
   pointillés très légers, contenu en blanc. Le watermark SVG (traits blancs)
   ressort naturellement. Tendances en pill blanc translucide (la flèche + le
   signe portent le sens ↑/↓, pas seulement la couleur).
   ══════════════════════════════════════════════════════════════════════════ */
html[data-design="rexora"][data-theme="light"] .kpi,
html[data-design="rexora"][data-theme="dark"] .kpi,
html[data-design="rexora"][data-theme="light"] .kpi-card,
html[data-design="rexora"][data-theme="dark"] .kpi-card,
html[data-design="rexora"][data-theme="light"] .stat-card,
html[data-design="rexora"][data-theme="dark"] .stat-card,
html[data-design="rexora"][data-theme="light"] .pd-kpi,
html[data-design="rexora"][data-theme="dark"] .pd-kpi,
html[data-design="rexora"] .kpi-g .kpi,
html[data-design="rexora"] .kpi-grid > *,
html[data-design="rexora"] .cht-kpi-row .kpi,
html[data-design="rexora"] .dash-cht-kpi-row .kpi {
  position: relative !important;
  background: var(--kpi-grad) !important;
  border: 1px solid transparent !important;
  border-left: 1px solid transparent !important;   /* annule le border-left inline/statut */
  box-shadow: var(--shadow-cta) !important;
  border-radius: var(--r-card) !important;
  overflow: hidden;
  /* Tue l'animation d'entrée blurInSoft (auraos:770) qui laissait la carte
     dans son état initial (non colorée) au repos. Rexora = flat. */
  animation: none !important;
  opacity: 1 !important;
  filter: none !important;
  transform: none !important;
}
/* Pointillés très légers (réactive ::after, neutralisé plus haut) */
html[data-design="rexora"] .kpi::after,
html[data-design="rexora"] .kpi-card::after,
html[data-design="rexora"] .stat-card::after,
html[data-design="rexora"] .pd-kpi::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  background: none !important;
  background-image: radial-gradient(var(--dot-kpi) 1px, transparent 1px) !important;
  background-size: 22px 22px !important;
  pointer-events: none !important;
  border: none !important;
  box-shadow: none !important;
  filter: none !important;
  z-index: 0 !important;
}
/* Valeur en blanc (bat les couleurs de statut inline + le CSS dashboard) */
html[data-design="rexora"] .kpi .kpi-val,
html[data-design="rexora"] .kpi .kpi-value,
html[data-design="rexora"] .kpi-card .kpi-card-value,
html[data-design="rexora"] .kpi-card .kpi-value,
html[data-design="rexora"] .stat-card .stat-value,
html[data-design="rexora"] .pd-kpi .pd-kpi-value,
html[data-design="rexora"] .cht-kpi-row .kpi .kpi-val,
html[data-design="rexora"] .dash-cht-kpi-row .kpi .kpi-val {
  color: var(--text-on-accent) !important;
}
/* Label en blanc atténué */
html[data-design="rexora"] .kpi .kpi-label,
html[data-design="rexora"] .kpi-card .kpi-card-label,
html[data-design="rexora"] .kpi-card .kpi-label,
html[data-design="rexora"] .kpi-card .text-gray-400,
html[data-design="rexora"] .stat-card .stat-label,
html[data-design="rexora"] .pd-kpi .pd-kpi-label {
  color: var(--text-on-accent-muted) !important;
}
/* Icônes SVG (img.icon-glass) des labels KPI → blanches sur l'accent */
html[data-design="rexora"] .kpi .icon-glass,
html[data-design="rexora"] .kpi-card .icon-glass {
  filter: brightness(0) invert(1) !important;
}
/* Puce d'icône → pastille solide (accent éclairci, PAS de transparence),
   icône blanche (bat Tailwind) */
html[data-design="rexora"] .kpi .kpi-icon-circle,
html[data-design="rexora"] .kpi-card .kpi-icon-circle,
html[data-design="rexora"] .stat-card .kpi-icon-circle {
  background: rgba(255,255,255,0.15) !important;   /* pastille translucide */
  color: rgba(255,255,255,0.85) !important;
  box-shadow: none !important;
}
html[data-design="rexora"] .kpi .kpi-icon-circle i,
html[data-design="rexora"] .kpi-card .kpi-icon-circle i,
html[data-design="rexora"] .kpi-card .kpi-icon-circle svg,
html[data-design="rexora"] .stat-card .kpi-icon-circle i {
  color: rgba(255,255,255,0.85) !important;
  stroke: rgba(255,255,255,0.85) !important;
}
/* Tendances → pill blanc translucide, lisible sur l'accent. Le sens reste
   porté par la flèche ↑/↓ et le signe +/−. */
html[data-design="rexora"] .kpi .kpi-trend,
html[data-design="rexora"] .kpi .kpi-trend.up,
html[data-design="rexora"] .kpi .kpi-trend.dn,
html[data-design="rexora"] .kpi .kpi-trend.down,
html[data-design="rexora"] .kpi-card .kpi-trend,
html[data-design="rexora"] .kpi-card .kpi-trend.positive,
html[data-design="rexora"] .kpi-card .kpi-trend.negative,
html[data-design="rexora"] .kpi-card .kpi-trend.neutral,
html[data-design="rexora"] .kpi-card .kpi-trend.up,
html[data-design="rexora"] .kpi-card .kpi-trend.down,
html[data-design="rexora"] .stat-card .kpi-trend,
html[data-design="rexora"] .cht-kpi-row .kpi .kpi-trend,
html[data-design="rexora"] .dash-cht-kpi-row .kpi .kpi-trend {
  background: transparent !important;   /* pas de boîte translucide sous le texte */
  color: #fff !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 2px 0 !important;
  box-shadow: none !important;
}
/* « vs N-1 » / sous-texte des tendances → blanc atténué */
html[data-design="rexora"] .kpi .kpi-trend .vs,
html[data-design="rexora"] .kpi-card .kpi-trend .vs,
html[data-design="rexora"] .cht-kpi-row .kpi .kpi-trend .vs,
html[data-design="rexora"] .dash-cht-kpi-row .kpi .kpi-trend .vs {
  color: var(--text-on-accent-muted) !important;
}
/* CONTENU KPI/cartes/entête toujours visible : annule le gating blur-in
   (html:not(.blur-ready) ... { opacity:0 }) qui laissait les cartes pleines
   vides jusqu'au survol. Rexora est flat → on désactive le blur-in ici. */
html[data-design="rexora"][data-theme] .kpi-label,
html[data-design="rexora"][data-theme] .kpi-val,
html[data-design="rexora"][data-theme] .kpi-value,
html[data-design="rexora"][data-theme] .kpi-card-value,
html[data-design="rexora"][data-theme] .kpi-card-label,
html[data-design="rexora"][data-theme] .kpi-card-content,
html[data-design="rexora"][data-theme] .kpi-card-inner,
html[data-design="rexora"][data-theme] .kpi-ct,
html[data-design="rexora"][data-theme] .kpi-trend,
html[data-design="rexora"][data-theme] .kpi-trend .vs,
html[data-design="rexora"][data-theme] .kpi-sub,
html[data-design="rexora"][data-theme] .pd-kpi-label,
html[data-design="rexora"][data-theme] .pd-kpi-value,
html[data-design="rexora"][data-theme] .stat-label,
html[data-design="rexora"][data-theme] .stat-value,
html[data-design="rexora"][data-theme] .page-header h1,
html[data-design="rexora"][data-theme] .page-header h2,
html[data-design="rexora"][data-theme] .blur-char {
  opacity: 1 !important;
  filter: none !important;
  animation: none !important;
  transform: none !important;
}
/* Topbar : on masque le fil d'Ariane (nom de l'onglet) — il fait doublon avec
   l'entête coloré qui affiche déjà le titre de la page. */
html[data-design="rexora"] .topbar-breadcrumb {
  display: none !important;
}
/* Le contenu passe au-dessus des pointillés ::after — MAIS on exclut le
   watermark .kpi-icon-3d / .kpi-watermark : il doit rester position:absolute
   (sinon le SVG 130×130 passe dans le flux et pousse tout le contenu en bas). */
html[data-design="rexora"] .kpi > *:not(.kpi-icon-3d):not(.kpi-watermark),
html[data-design="rexora"] .kpi-card > *:not(.kpi-icon-3d):not(.kpi-watermark),
html[data-design="rexora"] .stat-card > *:not(.kpi-icon-3d):not(.kpi-watermark) {
  position: relative;
  z-index: 1;
}
/* Watermark décoratif : toujours hors flux (sinon pousse le contenu) */
html[data-design="rexora"] .kpi-icon-3d,
html[data-design="rexora"] .kpi-watermark {
  position: absolute !important;
  z-index: 0 !important;
}
/* HOVER : auraos force background:var(--glass-bg) → la carte repassait en crème
   uni et le texte blanc disparaissait. On garde le dégradé + le contenu au survol.
   Spécificité (0,4,1) pour battre [data-theme] .kpi:hover (0,3,0) !important. */
html[data-design="rexora"][data-theme="light"] .kpi:hover,
html[data-design="rexora"][data-theme="dark"] .kpi:hover,
html[data-design="rexora"][data-theme="light"] .kpi-card:hover,
html[data-design="rexora"][data-theme="dark"] .kpi-card:hover,
html[data-design="rexora"][data-theme="light"] .stat-card:hover,
html[data-design="rexora"][data-theme="dark"] .stat-card:hover,
html[data-design="rexora"][data-theme="light"] .pd-kpi:hover,
html[data-design="rexora"][data-theme="dark"] .pd-kpi:hover,
html[data-design="rexora"][data-theme="light"] .kpi-g .kpi:hover,
html[data-design="rexora"][data-theme="dark"] .kpi-g .kpi:hover,
html[data-design="rexora"] .cht-kpi-row .kpi:hover,
html[data-design="rexora"] .dash-cht-kpi-row .kpi:hover {
  background: var(--kpi-grad) !important;
  border-color: transparent !important;
  box-shadow: var(--shadow-cta) !important;
}

/* ══════════════════════════════════════════════════════════════════════════
   UTILITAIRES IMORIA (réutilisables, tout via variables — suivent le picker)
   ══════════════════════════════════════════════════════════════════════════ */

/* Texture pointillés réutilisable (sur n'importe quel conteneur clair) */
html[data-design="rexora"] .rxr-dots {
  background-image: radial-gradient(var(--dot) 1px, transparent 1px);
  background-size: 22px 22px;
}

/* Carte sélectionnée : fond doux accent + bordure accent */
html[data-design="rexora"] .card.selected,
html[data-design="rexora"] .card.is-selected,
html[data-design="rexora"] .kpi-card.selected,
html[data-design="rexora"] .stat-card.selected {
  background: var(--accent-soft) !important;
  border: 1px solid var(--accent-border) !important;
}

/* Puce d'icône : carré arrondi, fond doux accent, trait accent */
html[data-design="rexora"] .rxr-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: var(--r-icon);
  background: var(--accent-soft);
  color: var(--accent);
  box-shadow: var(--shadow-surface);
}
html[data-design="rexora"] .rxr-chip i,
html[data-design="rexora"] .rxr-chip svg {
  color: var(--accent);
  stroke: var(--accent);
}

/* Mots en emphase dans les titres */
html[data-design="rexora"] .rxr-emph {
  color: var(--accent-text);
}

/* Bloc plein hero / CTA : dégradé accent, texte sur accent, pointillés en
   overlay, gros rayon, ombre CTA. Le bouton interne se met en pill crème. */
html[data-design="rexora"] .rxr-block {
  position: relative;
  background: var(--block-grad);
  color: var(--text-on-accent);
  border-radius: var(--r-block);
  box-shadow: var(--shadow-cta);
  overflow: hidden;
}
html[data-design="rexora"] .rxr-block::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(var(--dot-on-accent) 1px, transparent 1px);
  background-size: 22px 22px;
  pointer-events: none;
}
html[data-design="rexora"] .rxr-block > * { position: relative; }
html[data-design="rexora"] .rxr-block .rxr-block-btn {
  background: var(--surface) !important;
  color: var(--text) !important;
  border: none !important;
  border-radius: var(--r-pill) !important;
  box-shadow: var(--shadow-raised) !important;
}

/* ══════════════════════════════════════════════════════════════════════════
   FILET DE SÉCURITÉ — contenu KPI toujours visible (Rexora)
   animations.js (cascade) pose style.opacity:0 en inline sur les conteneurs
   de cartes puis les révèle en JS ; sur les cartes pleines Rexora ça restait
   bloqué → cartes rouges vides. On force tout le sous-arbre visible. !important
   bat l'inline ; spécificité [data-theme] bat le gating blur-in.
   ══════════════════════════════════════════════════════════════════════════ */
html[data-design="rexora"][data-theme] .kpi-card,
html[data-design="rexora"][data-theme] .kpi-card *,
html[data-design="rexora"][data-theme] .kpi,
html[data-design="rexora"][data-theme] .kpi *,
html[data-design="rexora"][data-theme] .stat-card,
html[data-design="rexora"][data-theme] .stat-card *,
html[data-design="rexora"][data-theme] .pd-kpi,
html[data-design="rexora"][data-theme] .pd-kpi * {
  opacity: 1 !important;
  visibility: visible !important;
  animation: none !important;
}
/* Annule un éventuel décalage (translateY de la cascade) sur les conteneurs
   de contenu (pas sur le watermark, qui a ses propres transforms). */
html[data-design="rexora"][data-theme] .kpi-card .kpi-card-inner,
html[data-design="rexora"][data-theme] .kpi-card .kpi-card-content,
html[data-design="rexora"][data-theme] .kpi .kpi-ct,
html[data-design="rexora"][data-theme] .stat-card .kpi-card-content {
  transform: none !important;
  filter: none !important;
}

/* ══════════════════════════════════════════════════════════════════════════
   WATERMARK KPI atténué (comme les KPI « Mes chantiers ») — bat le filet de
   sécurité opacity:1 ci-dessus. Icône décorative discrète sur la carte colorée.
   ══════════════════════════════════════════════════════════════════════════ */
html[data-design="rexora"][data-theme] .kpi .kpi-icon-3d,
html[data-design="rexora"][data-theme] .kpi-card .kpi-icon-3d,
html[data-design="rexora"][data-theme] .stat-card .kpi-icon-3d,
html[data-design="rexora"][data-theme] .pd-kpi .kpi-icon-3d,
html[data-design="rexora"][data-theme] .kpi .kpi-watermark,
html[data-design="rexora"][data-theme] .kpi-card .kpi-watermark {
  opacity: 0.16 !important;
}

/* ══════════════════════════════════════════════════════════════════════════
   MODALE PLEIN ÉCRAN (« élargir » devis/factures) : fond solide opaque.
   .modal-fullscreen ne définit pas de background → en plein écran (inset:0)
   la page passait au travers → illisible. On force un fond plein en Rexora.
   ══════════════════════════════════════════════════════════════════════════ */
html[data-design="rexora"] .modal-fullscreen,
html[data-design="rexora"] .htmx-modal-panel.modal-fullscreen,
html[data-design="rexora"] #strato-modal-content.modal-fullscreen {
  background: var(--bg) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* ══════════════════════════════════════════════════════════════════════════
   TOPBAR EN OVERLAY (Rexora) : la topbar est en flux (relative) dans .main et
   pousse le contenu dessous (aucun chevauchement → frost sans rien à flouter).
   On la passe en position:absolute (hors flux) : le content-frame remonte sous
   elle et le contenu défile DERRIÈRE → vrai effet frost. .main est relative.
   ══════════════════════════════════════════════════════════════════════════ */
html[data-design="rexora"] .main > .topbar,
html[data-design="rexora"] #main-content > .topbar {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 200 !important;
}
/* Le contenu démarre sous la topbar (≈38px) avec une marge confortable. */
html[data-design="rexora"] .content-frame > #contentScroll,
html[data-design="rexora"] .content-frame > main.content,
html[data-design="rexora"] .content-frame > .content {
  padding-top: 54px !important;
}

/* ═══ JOUR = thème Rexora : EXACTEMENT le fond du mode Rexora de la
   landing — crème + grille de points discrète (token --dot). ═══ */
html[data-design="rexora"][data-theme="light"] body {
  background-color: var(--bg) !important;
  background-image: radial-gradient(var(--dot, rgba(41,37,36,.07)) 1.2px, transparent 1.2px) !important;
  background-size: 22px 22px !important;
}
