/* ============================================================================
   SILINA MRS — Habillage des FORMULAIRES cliniques (charte CHP Aného)
   Variante B : bandeau de titre de section en BLEU ROI plein + texte blanc.

   - Chargé dans index.html via `sub_filter` (voir frontend/nginx.conf) → permanent,
     sans modifier le fichier baké de l'image (durable à l'upgrade).
   - Scopé au conteneur du moteur de formulaires
     (`-esm-form-engine__page-renderer__accordionContainer___…`) : sélecteur
     `[class*="accordionContainer"]` insensible au hash CSS-module. Ne touche
     AUCUN autre accordéon Carbon de l'application (dossier, menus, tableaux…).
   - Échec « silencieux et sûr » : si le moteur renomme ses classes lors d'un
     upgrade, l'habillage disparaît simplement — rien ne casse.
   Charte : bleu roi #021d88 (logo), survol #00156b.
   ============================================================================ */

/* chaque section = une "carte" encadrée */
[class*="accordionContainer"] .cds--accordion__item {
  border: 1px solid #d7e0f4;
  border-radius: 6px;
  margin-bottom: 10px;
  overflow: hidden;
  background: #ffffff !important;
}

/* bandeau de titre : bleu roi plein */
[class*="accordionContainer"] .cds--accordion__heading {
  background: #021d88 !important;
  transition: background-color .15s ease;
}
[class*="accordionContainer"] .cds--accordion__heading:hover {
  background: #00156b !important;
}

/* texte du titre en blanc, un peu appuyé */
[class*="accordionContainer"] .cds--accordion__title {
  color: #ffffff !important;
  font-weight: 600;
}

/* chevron (icône d'ouverture/fermeture) en blanc */
[class*="accordionContainer"] .cds--accordion__heading .cds--accordion__arrow {
  fill: #ffffff !important;
}

/* NB : pas de liseré sur les champs obligatoires — on garde uniquement
   l'astérisque rouge natif du moteur (choix utilisateur). */


/* ============================================================================
   THÈME — Barre de navigation gauche du dossier patient (variante B)
   Icônes en bleu roi Aného + élément ACTIF surligné (liseré + fond + texte bleus)
   + survol bleu très clair. Scopé au side-nav du dossier (`active-left-nav-link`)
   → n'affecte pas les autres menus Carbon de l'application.
   ============================================================================ */
nav.cds--side-nav__navigation a.cds--side-nav__link svg {
  fill: #021d88 !important;
}
nav.cds--side-nav__navigation a.active-left-nav-link {
  border-left: 4px solid #021d88 !important;
  background: #eef2fb !important;
}
nav.cds--side-nav__navigation a.active-left-nav-link span {
  color: #021d88 !important;
  font-weight: 600;
}
nav.cds--side-nav__navigation a.cds--side-nav__link:hover {
  background: #eef2fb !important;
}

/* Icônes des 3 tableaux de bord SILINA qui n'en ont pas nativement (Bloc
   opératoire / Résumé de sortie / Imagerie). Ajoutées en ::before (SVG bleu),
   alignées comme les vraies icônes (16px, margin-right 24px). Ciblées par le
   chemin du lien → robuste, sans toucher au bundle ESM. */
nav.cds--side-nav__navigation a.cds--side-nav__link[href$="/anesthesie"]::before,
nav.cds--side-nav__navigation a.cds--side-nav__link[href$="/resume-sortie"]::before,
nav.cds--side-nav__navigation a.cds--side-nav__link[href$="/imagerie"]::before {
  content: ""; display: inline-block; flex: 0 0 auto;
  width: 16px; height: 16px; margin-right: 24px;
  background-repeat: no-repeat; background-position: center; background-size: 16px 16px;
}
/* Bloc opératoire → hôpital (bâtiment + croix + porte) */
nav.cds--side-nav__navigation a[href$="/anesthesie"]::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='%23021d88' fill-rule='evenodd' d='M8 6H24V28H8Z M14.5 8H17.5V10H19.5V13H17.5V15H14.5V13H12.5V10H14.5Z M13.5 22H18.5V28H13.5Z'/%3E%3C/svg%3E");
}
/* Résumé de sortie → document */
nav.cds--side-nav__navigation a[href$="/resume-sortie"]::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='%23021d88' d='M25.7 9.3l-7-7A.91.91 0 0 0 18 2H8a2 2 0 0 0-2 2v24a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V10a.91.91 0 0 0-.3-.7zM18 4.4 23.6 10H18zM24 28H8V4h8v6a2 2 0 0 0 2 2h6z'/%3E%3C/svg%3E");
}
/* Imagerie → image */
nav.cds--side-nav__navigation a[href$="/imagerie"]::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='%23021d88' d='M19 14a3 3 0 1 0 3 3 3 3 0 0 0-3-3zm0 4a1 1 0 1 1 1-1 1 1 0 0 1-1 1z'/%3E%3Cpath fill='%23021d88' d='M26 4H6a2 2 0 0 0-2 2v20a2 2 0 0 0 2 2h20a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2zM6 26v-6l5-5 5.59 5.59a2 2 0 0 0 2.82 0L21 19l5 5v2zm20-4.83-3.59-3.59a2 2 0 0 0-2.82 0L18 19.17l-3.59-3.59a2 2 0 0 0-2.82 0L6 20.17V6h20z'/%3E%3C/svg%3E");
}


/* ============================================================================
   MASQUAGE PAR RÔLE (segmentation des profils)
   Activé par silina-roles.js, qui pose `body.role-<slug>` selon l'utilisateur
   connecté (slug = nom du rôle sans accents ni espaces). Chaque profil ne voit
   que ses options. DOUBLÉ par la sécurité backend (privilèges Initializer) :
   le masquage est le confort visible, le 403 serveur est la vraie barrière.

   Les règles par profil sont ajoutées et validées ÉCRAN PAR ÉCRAN (connexion
   avec chaque compte). Convention de slug des rôles visés :
     Infirmier             → role-infirmier
     Chirurgien pédiatre   → role-chirurgien-pediatre
     Interne               → role-interne
     Anesthésiste          → role-anesthesiste
     Agent d'entretien     → role-agent-d-entretien
     Superviseur entretien → role-superviseur-entretien
   ============================================================================ */

/* Agent d'entretien : aucune donnée patient → masque toute la navigation du
   dossier patient (son travail se fait sur l'app Entretien, pas le dossier). */
body.role-agent-d-entretien nav.cds--side-nav__navigation a.cds--side-nav__link {
  display: none !important;
}

/* --- INFIRMIER : soins + caisse. Masqué : anesthésie/CRO, prescription, chirurgie. --- */
/* Tableau de bord « Bloc opératoire » (anesthésie/CRO) */
body.role-infirmier nav.cds--side-nav__navigation a.cds--side-nav__link[href$="/anesthesie"] {
  display: none !important;
}
/* Accueil : « Laboratoire » n'est pas son rôle */
body.role-infirmier a.cds--side-nav__link[href$="/home/laboratory"] {
  display: none !important;
}
/* Liste des formulaires : ne garde que les siens (F6 suivi, F7 soins, F10 suppuration).
   Masque consultation chir (F1), pré-anesthésie (F2), surveillance per-op (F5),
   saisie de résultats (F8), résumé de sortie (F9), compte rendu d'imagerie (F11).
   (F3/F4 = CRO déjà filtrés nativement par le privilège manquant.) */
body.role-infirmier tr[data-silina-form="F1"],
body.role-infirmier tr[data-silina-form="F2"],
body.role-infirmier tr[data-silina-form="F5"],
body.role-infirmier tr[data-silina-form="F8"],
body.role-infirmier tr[data-silina-form="F9"],
body.role-infirmier tr[data-silina-form="F11"] {
  display: none !important;
}

/* --- ANESTHÉSISTE : dossier d'anesthésie. Voit F2 (pré-anesthésique) + F5
   (surveillance per-op) ; garde « Bloc opératoire ». Masqué : caisse, labo,
   consultation chir. et formulaires hors anesthésie. (F3/F4 CRO déjà filtrés
   nativement.) --- */
body.role-anesthesiste a.cds--side-nav__link[href$="/home/laboratory"],
body.role-anesthesiste a.cds--side-nav__link[href$="/home/billing"] {
  display: none !important;
}
body.role-anesthesiste tr[data-silina-form="F1"],
body.role-anesthesiste tr[data-silina-form="F6"],
body.role-anesthesiste tr[data-silina-form="F7"],
body.role-anesthesiste tr[data-silina-form="F8"],
body.role-anesthesiste tr[data-silina-form="F9"],
body.role-anesthesiste tr[data-silina-form="F10"],
body.role-anesthesiste tr[data-silina-form="F11"] {
  display: none !important;
}

/* --- CHIRURGIEN : clinique COMPLET (seul à voir/valider le CRO — F3/F4 — via
   son privilège, filtrage natif). Masqué seulement : caisse + worklist labo,
   qui ne sont pas ses outils. --- */
body.role-chirurgien-pediatre a.cds--side-nav__link[href$="/home/laboratory"],
body.role-chirurgien-pediatre a.cds--side-nav__link[href$="/home/billing"] {
  display: none !important;
}

/* --- INTERNE : comme le chirurgien, mais NE VALIDE PAS le CRO (F4 masqué
   nativement, privilège « Valider » manquant ; il garde F3 « Rédiger »).
   Masqué à l'accueil : caisse + worklist labo. --- */
body.role-interne a.cds--side-nav__link[href$="/home/laboratory"],
body.role-interne a.cds--side-nav__link[href$="/home/billing"] {
  display: none !important;
}

/* --- CRO : la validation se fait via le bouton « Valider le CRO » injecté sur le
   compte rendu (silina-cro-validate.js), plus par le formulaire F4 séparé.
   On masque donc F4 de la liste des formulaires cliniques (pour tous). --- */
tr[data-silina-form="F4"] {
  display: none !important;
}
