/* =========================================================================
   THEME-BS-BRIDGE.CSS — complète le mapping Bootstrap de theme.css.
   À charger APRÈS bootstrap.min.css ET APRÈS theme.css.

   Pourquoi un fichier séparé : theme.css est le kit Anw, marqué « NE PAS
   ÉDITER par projet » ; y toucher se ferait écraser à la prochaine mise à
   jour du kit. Ce fichier ne contient QUE des corrections de mapping, aucune
   décoration de marque (ça, c'est main/css/brand.css).

   Ce qu'il corrige : le vert de marque était bien poussé dans --bs-primary et
   --bs-link-color, mais Bootstrap 5.3 ne lit pas toujours ces variables-là.
   Restait donc du bleu Bootstrap par défaut sur les liens, la ligne
   surlignée des menus déroulants et l'anneau de focus.
   ========================================================================= */

/* ----- Liens -----
   Bootstrap applique `a { color: rgba(var(--bs-link-color-RGB), …) }` : il lit
   la variante -rgb, jamais --bs-link-color. Surcharger --bs-link-color (ce que
   fait theme.css) n'avait donc aucun effet et les liens restaient #0d6efd en
   clair / #6ea8fe en sombre.
   On repointe la règle `a` sur la variable de couleur plutôt que de dupliquer
   un triplet r,g,b : les tokens de marque sont en OKLCH et n'ont pas de RGB
   figé, et un triplet en dur dériverait à la prochaine retouche de palette.
   Le sélecteur de type `a` (0,0,1) reste sous les composants à classe
   (.btn, .nav-link, .dropdown-item… en 0,1,0) : seuls les liens nus changent. */
a { color: var(--bs-link-color); }
a:hover { color: var(--bs-link-hover-color); }

/* En sombre, theme.css laisse --bs-link-hover-color sur --brand-800 (vert très
   foncé) : illisible sur fond sombre. On remonte l'échelle au survol. */
[data-bs-theme="dark"] { --bs-link-hover-color: var(--brand-300); }

/* ----- Menus déroulants -----
   Bootstrap pose --bs-dropdown-link-active-bg EN DUR (#0d6efd) sur
   .dropdown-menu. Une redéfinition sur :root ne servirait à rien : la
   .dropdown-menu englobante est l'ancêtre le plus proche, c'est sa valeur que
   lisent les .dropdown-item. Il faut donc surcharger à la même portée. */
.dropdown-menu {
  --bs-dropdown-link-active-bg: var(--brand-600);
  --bs-dropdown-link-active-color: #fff;
}

/* La ligne active passe sur fond vert, mais les utilitaires de texte atténué
   qu'elle contient (ex. le code langue « (FR) » du sélecteur de langue)
   gardent leur gris et deviennent illisibles. Bootstrap les déclare en
   !important, d'où le !important ici pour repasser en `inherit`. */
.dropdown-item.active .text-muted,
.dropdown-item.active .text-secondary,
.dropdown-item:active .text-muted,
.dropdown-item:active .text-secondary {
  color: inherit !important;
  opacity: .8;
}

/* ----- Anneau de focus et primary-rgb ----- */
:root {
  --bs-focus-ring-color: color-mix(in oklch, var(--brand-600) 30%, transparent);
  /* theme.css laisse un fallback resté sur un vert-bleu d'origine
     (34, 139, 90) qui n'est pas le vert du logo ; toutes les surfaces qui ne
     chargent pas brand.css (console, platform_admin) en héritaient. */
  --bs-primary-rgb: 51, 126, 22;
}

/* ----- Badges de statut -----
   theme.css repose les couleurs de la charte sur `.badge.text-bg-*`, mais sans
   `!important` sur toutes les variantes. Or les utilitaires `.text-bg-*` de
   Bootstrap 5.3 posent COULEUR ET FOND en `!important` : à spécificité égale,
   ils gagnent quel que soit l'ordre de chargement. Seul `primary` portait le
   `!important` côté kit — d'où un tableau de bord où « nouveau » sortait en
   vert pâle de la charte pendant que « Confirmé » sortait en cyan Bootstrap
   plein, deux langages de couleur dans la même vue.

   On rétablit ici la règle du kit sur les variantes restées à découvert. Fond
   pâle + texte foncé : un badge est une étiquette qu'on lit, pas un bouton. */
.badge.text-bg-success { background: var(--success-100) !important; color: var(--success-600) !important; }
.badge.text-bg-warning { background: var(--warning-100) !important; color: oklch(45% .15 var(--status-warning-hue)) !important; }
.badge.text-bg-danger  { background: var(--danger-100)  !important; color: var(--danger-600)  !important; }
.badge.text-bg-info    { background: var(--info-100)    !important; color: var(--info-600)    !important; }
.badge.text-bg-secondary { background: var(--gray-100)  !important; color: var(--gray-700)   !important; }

/* `.badge-solid` reste le fond plein, pour le petit nombre de cas où le badge
   doit crier (une alerte, pas un statut courant). */
.badge.badge-solid.text-bg-success { background: var(--success-600) !important; color: #fff !important; }
.badge.badge-solid.text-bg-danger  { background: var(--danger-600)  !important; color: #fff !important; }

/* ----- Attribut `hidden` -----
   `[hidden] { display: none }` est une règle de la FEUILLE DU NAVIGATEUR : elle
   perd contre n'importe quel utilitaire d'affichage de Bootstrap, tous déclarés
   en `!important`. Un élément portant `hidden` ET `d-flex` reste donc
   parfaitement visible.

   Ce n'était pas théorique : la barre d'actions groupées des listes de la
   console (`<div class="d-flex …" hidden>`) s'affichait en permanence, bouton
   rouge « Supprimer la sélection » compris, sur les vingt-cinq écrans de liste
   — alors que son JavaScript la croyait masquée tant que rien n'est coché. */
[hidden] { display: none !important; }
