/* Theme Engine — variables de thème (Sprint UX Premium v1.0, Phase 1 — infrastructure).
   Deux thèmes : Institutionnel Sombre (rendu actuel, inchangé) et Institutionnel Clair
   (Premium, esprit Microsoft Fabric / Power BI / ArcGIS Dashboard, identité FDSU conservée).

   Règle : les couleurs métier (zones FDSU, symbologie cartographique) ne dépendent
   jamais du thème — elles sont dupliquées à l'identique dans les deux blocs ci-dessous. */

:root,
[data-theme="dark"] {
  color-scheme: dark;

  /* Fond / surfaces */
  --bg: #0f172a;
  --background: var(--bg);
  --surface: #111827;
  --panel: var(--surface);
  --surface-muted: #1f2937;
  --surface-alt: var(--surface-muted);
  --surface-soft: #17233b;
  --panel-hover: #1a2338;

  /* Texte */
  --text: #e2e8f0;
  --text-primary: var(--text);
  --text-muted: #94a3b8;
  --text-secondary: var(--text-muted);

  /* Accent institutionnel */
  --accent: #38bdf8;
  --accent-strong: #22d3ee;

  /* Bordures / ombres */
  --border: rgba(148, 163, 184, 0.16);
  --shadow: 0 24px 80px rgba(15, 23, 42, 0.35);

  /* Superposition légère (boutons "chip", survols) */
  --chip-bg: rgba(255, 255, 255, 0.04);
  /* Liseré translucide (topbar, cadres "verre dépoli") */
  --hairline: rgba(255, 255, 255, 0.06);
  /* Texte des éléments de navigation actifs/survolés (fond accent translucide) */
  --nav-active-text: #ffffff;
  /* Panneaux "verre dépoli" (Synthèse nationale, Couverture du référentiel) */
  --summary-panel-bg: linear-gradient(135deg, rgba(14, 165, 233, 0.08), rgba(15, 23, 42, 0.35));
  --coverage-panel-bg: rgba(2, 6, 23, 0.3);
  /* Texte d'avertissement (notes, disclaimers) sur fond de panneau */
  --warning-text: #fbbf24;
  /* Boutons utilitaires "chip" (bascule sidebar, palette de commandes) */
  --utility-chip-bg: rgba(15, 23, 42, 0.72);
  /* Cartes KPI / Synthèse nationale (Sprint v1.5 : superposition translucide, rendu
     "verre" déjà validé — inchangé) */
  --card-bg: rgba(255, 255, 255, 0.03);
  /* Champ de recherche topbar (superposition déjà validée — inchangée) */
  --input-bg: rgba(255, 255, 255, 0.04);
  /* Bordure des cartes KPI (valeur déjà validée — inchangée) */
  --card-border: rgba(148, 163, 184, 0.1);
  /* Ombre statique des cartes au repos — "carte flottante" (Sprint Polish) :
     ombre de contact resserrée + ombre secondaire très diffuse + reflet supérieur
     discret, au lieu d'une ombre unique. */
  --card-shadow: 0 1px 2px rgba(0, 0, 0, 0.4), 0 18px 40px -22px rgba(0, 0, 0, 0.55),
    inset 0 1px 0 rgba(255, 255, 255, 0.045);

  /* ── Dark Glass Premium (Sprint Polish — esprit iOS) ──────────────────────────────
     Le mode sombre reste une référence évolutive : panneaux (topbar, sidebar,
     menus, carte) translucides + flou plus prononcé, bordure fine lumineuse, ombre
     de profondeur en deux niveaux (contact + ambiante) avec reflet supérieur
     discret. Toujours élégant : un seul niveau de flou, une seule intensité de
     bordure, jamais transparent au point de nuire à la lisibilité. */
  --glass-panel-bg: rgba(17, 24, 39, 0.64);
  --glass-panel-bg-strong: rgba(15, 23, 42, 0.78);
  --glass-border: rgba(255, 255, 255, 0.13);
  --glass-blur: 22px;
  --glass-shadow: 0 1px 1px rgba(0, 0, 0, 0.3), 0 32px 70px -24px rgba(0, 0, 0, 0.65),
    inset 0 1px 0 rgba(255, 255, 255, 0.07);

  /* Couleurs métier — zones FDSU (jamais pilotées par le thème) */
  --zone-nd: #6f735d;
  --zone-ot: #facc15;
  --zone-ce: #f472b6;
  --zone-sd: #34d399;
  --zone-et: #60a5fa;
}

[data-theme="light"] {
  color-scheme: light;

  /* Fond / surfaces — Sprint v1.6 "Soft Light Premium" : les trois teintes de v1.5
     étaient trop proches (7 niveaux de gris d'écart entre fond et carte, quasi
     imperceptible). Écart désormais volontairement marqué entre chaque palier —
     Fond < Panneaux < Cartes — tout en restant gris-bleuté, jamais blanc pur ni
     gris terne. */
  --bg: #e6ebf3;
  --background: var(--bg);
  --surface: #f0f3f8;
  --panel: var(--surface);
  --surface-muted: #eaf0f6;
  --surface-alt: var(--surface-muted);
  --surface-soft: #edf1f7;
  --panel-hover: #e2e9f1;

  /* Texte — bleu nuit institutionnel (contraste inchangé) */
  --text: #0b1f3a;
  --text-primary: var(--text);
  --text-muted: #55647a;
  --text-secondary: var(--text-muted);

  /* Accent institutionnel (même famille de bleu que le logo FDSU) */
  --accent: #106ebe;
  --accent-strong: #0b57c6;

  /* Bordures / ombres — nettes, avec assez de présence pour détacher les cartes
     du fond. Sprint Polish : même principe "carte flottante" qu'en sombre (ombre
     de contact + ombre ambiante très diffuse), toujours courte et élégante,
     jamais un aplat sombre agressif. */
  --border: #cfd9e6;
  --shadow: 0 1px 2px rgba(15, 23, 42, 0.05), 0 12px 28px -16px rgba(15, 23, 42, 0.16);

  --chip-bg: rgba(11, 31, 58, 0.06);
  --hairline: rgba(11, 31, 58, 0.08);
  --nav-active-text: #0b57c6;
  --summary-panel-bg: var(--surface);
  --coverage-panel-bg: var(--surface-muted);
  --warning-text: #92400e;
  --utility-chip-bg: var(--surface-muted);
  /* Cartes KPI / Synthèse nationale : palier le plus clair de la hiérarchie —
     nettement détaché du panneau porteur (couleur + ombre + bordure), jamais un
     blanc éclatant (mandat "les cartes ne doivent plus se fondre dans le fond"). */
  --card-bg: #fbfdff;
  --card-border: #d7e0ec;
  --card-shadow: var(--shadow);
  --input-bg: var(--card-bg);

  /* Pas de glass en clair (non demandé) : équivalents opaques "Soft Light" déjà
     validés (v1.6), pour que les composants partagés puissent référencer les
     mêmes variables sans condition de thème. */
  --glass-panel-bg: var(--surface);
  --glass-panel-bg-strong: var(--surface);
  --glass-border: var(--border);
  --glass-blur: 0px;
  --glass-shadow: var(--shadow);

  /* Couleurs métier — zones FDSU (identiques au thème sombre) */
  --zone-nd: #6f735d;
  --zone-ot: #facc15;
  --zone-ce: #f472b6;
  --zone-sd: #34d399;
  --zone-et: #60a5fa;
}

/* ── Cartes du Dashboard — ombre statique au repos (couleur + bordure + ombre,
   pas seulement au survol) — désormais dans les deux thèmes : le mode sombre
   rejoint le niveau de finition du clair (v1.6) au lieu de rester figé. */
.dashboard-card,
.status-card {
  box-shadow: var(--card-shadow);
}

/* ── Sélecteur de thème (menu utilisateur) ───────────────────────────────────────────
   Nouveau composant introduit par ce sprint : pas d'ajout dans la barre supérieure,
   uniquement sous "Administrateur / En ligne" (topbar-actions > profile-card). */

.user-menu {
  position: relative;
}

.user-menu-trigger {
  cursor: pointer;
  text-align: left;
}

.user-menu-panel {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 60;
  min-width: 220px;
  padding: 8px;
  background: var(--glass-panel-bg-strong);
  border: 1px solid var(--glass-border);
  border-radius: 14px;
  box-shadow: var(--glass-shadow);
  backdrop-filter: blur(var(--glass-blur));
  -webkit-backdrop-filter: blur(var(--glass-blur));
}

.user-menu-panel[hidden] {
  display: none;
}

.user-menu-section + .user-menu-section {
  margin-top: 4px;
  padding-top: 8px;
  border-top: 1px solid var(--border);
}

.user-menu-section-title {
  margin: 4px 8px 6px;
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--text-secondary);
}

.workspace-menu-option {
  display: grid;
  grid-template-columns: 18px 1fr;
  align-items: center;
  width: 100%;
  gap: 8px;
  padding: 8px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--text-primary);
  font: inherit;
  font-size: 0.86rem;
  text-align: left;
  cursor: pointer;
}

.workspace-menu-option:hover,
.workspace-menu-option:focus-visible,
.workspace-menu-option.is-active {
  background: var(--panel-hover);
}

.workspace-menu-option:focus-visible {
  outline: 2px solid var(--accent-strong);
  outline-offset: -2px;
}

.workspace-menu-option[hidden] {
  display: none;
}

.workspace-menu-check {
  color: var(--accent-strong);
  opacity: 0;
}

.workspace-menu-option.is-active .workspace-menu-check {
  opacity: 1;
}

.theme-option {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px;
  border-radius: 10px;
  cursor: pointer;
  color: var(--text-primary);
  font-size: 0.86rem;
}

.theme-option:hover,
.theme-option:focus-within {
  background: var(--panel-hover);
}

.theme-option input[type="radio"] {
  accent-color: var(--accent-strong);
  width: 16px;
  height: 16px;
  margin: 0;
}
