/* =================================================================
   Cyriskeval - feuille de style principale
   Palette héritée de Cyriskintel :
     bleu           #0B769F
     bleu profond   #042433
     violet         #842479
     pêche          #F4BA9A
   ================================================================= */

:root{
  --bleu:#0B769F;
  --bleu-clair:#E7F2F7;
  --bleu-vif:#0E8CBC;
  --bleu-profond:#042433;
  --bleu-nuit:#0A3549;
  --violet:#842479;
  --violet-clair:#F3E6F1;
  --peche:#F4BA9A;
  --peche-clair:#FDF1EA;

  --texte:#1F2A30;
  --texte-doux:#5A6B74;
  --bordure:#D8E2E8;
  --fond:#F4F7F9;
  --blanc:#FFFFFF;

  --vert:#2E7D32;
  --vert-clair:#7CB342;
  --jaune:#F9A825;
  --orange:#EF6C00;
  --rouge:#C62828;

  --rayon:10px;
  --rayon-sm:6px;
  --ombre:0 1px 2px rgba(4,36,51,.06), 0 4px 16px rgba(4,36,51,.07);
  --ombre-forte:0 8px 28px rgba(4,36,51,.14);
  --police:"Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

*,*::before,*::after{box-sizing:border-box}

html{ -webkit-text-size-adjust:100% }

body{
  margin:0;
  font-family:var(--police);
  font-size:16px;
  line-height:1.6;
  color:var(--texte);
  background:var(--fond);
  display:flex;
  flex-direction:column;
  min-height:100vh;
}

img{max-width:100%;height:auto}

a{color:var(--bleu);text-decoration:none}
a:hover{color:var(--violet);text-decoration:underline}

.saut-contenu{
  position:absolute;left:-9999px;top:0;background:var(--bleu-profond);color:#fff;
  padding:10px 16px;z-index:1000;border-radius:0 0 var(--rayon-sm) 0;
}
.saut-contenu:focus{left:0}

/* ---------------------------------------------------------------- */
/*  En-tête                                                          */
/* ---------------------------------------------------------------- */

.entete{
  background:var(--blanc);
  border-bottom:3px solid var(--bleu);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:10px 24px;
  flex-wrap:wrap;
}
.entete-logo img{height:54px;width:auto;display:block}
.entete-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.entete-user{font-size:.86rem;color:var(--texte-doux)}
.entete-user em{color:var(--violet);font-style:normal;font-weight:600}
.entete-invite{
  background:var(--peche-clair);color:#8a4a22;border:1px solid var(--peche);
  padding:4px 10px;border-radius:999px;
}

/* ---------------------------------------------------------------- */
/*  Disposition : menu latéral + contenu                             */
/* ---------------------------------------------------------------- */

.disposition{
  display:flex;
  align-items:stretch;
  flex:1;
  width:100%;
}

.menu{
  width:262px;
  flex:0 0 262px;
  background:var(--bleu-profond);
  color:#cfe0e9;
  padding:22px 0 40px;
}
.menu-bloc{margin-bottom:22px}
.menu-titre{
  display:block;
  font-size:.72rem;
  letter-spacing:.11em;
  text-transform:uppercase;
  color:var(--peche);
  padding:0 22px 8px;
  font-weight:700;
}
.menu ul{list-style:none;margin:0;padding:0}
.menu li a{
  display:block;
  padding:9px 22px;
  color:#dceaf1;
  font-size:.94rem;
  border-left:3px solid transparent;
  transition:background .15s, border-color .15s, color .15s;
  text-decoration:none;
}
.menu li a:hover{background:rgba(255,255,255,.07);color:#fff;text-decoration:none}
.menu li a.actif{
  background:rgba(11,118,159,.35);
  border-left-color:var(--peche);
  color:#fff;font-weight:600;
}
.menu-admin .menu-titre{color:#e9b9e2}
.menu-admin li a.actif{background:rgba(132,36,121,.45);border-left-color:#e9b9e2}
.etiquette{
  font-size:.65rem;background:var(--violet);color:#fff;border-radius:999px;
  padding:1px 7px;margin-left:6px;vertical-align:middle;letter-spacing:.03em;
}
.menu-bascule{
  display:none;width:100%;border:0;background:var(--bleu-profond);color:#fff;
  padding:12px 18px;font-size:1rem;font-family:inherit;text-align:left;cursor:pointer;
}

.contenu{
  flex:1;
  min-width:0;
  padding:30px 36px 56px;
  max-width:1180px;
}

/* ---------------------------------------------------------------- */
/*  Titres et texte                                                  */
/* ---------------------------------------------------------------- */

h1{
  font-size:1.85rem;line-height:1.25;color:var(--bleu-profond);margin:0 0 6px;
  font-weight:650;
}
h1 + .sous-titre{color:var(--texte-doux);margin:0 0 26px;font-size:1.02rem;max-width:75ch}
h2{font-size:1.28rem;color:var(--bleu-profond);margin:34px 0 12px;font-weight:640}
h3{font-size:1.06rem;color:var(--bleu);margin:22px 0 8px;font-weight:640}
h4{font-size:.92rem;color:var(--bleu-profond);margin:18px 0 8px;font-weight:650}
p{margin:0 0 14px}
.discret{color:var(--texte-doux);font-size:.9rem}
.centre{text-align:center}

.fil{font-size:.82rem;color:var(--texte-doux);margin-bottom:14px}
.fil a{color:var(--texte-doux)}

/* ---------------------------------------------------------------- */
/*  Cartes et grilles                                                */
/* ---------------------------------------------------------------- */

.carte{
  background:var(--blanc);
  border:1px solid var(--bordure);
  border-radius:var(--rayon);
  padding:22px 24px;
  box-shadow:var(--ombre);
  margin-bottom:22px;
}
.carte > :first-child{margin-top:0}
.carte > :last-child{margin-bottom:0}
.carte-titre{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  border-bottom:1px solid var(--bordure);margin:-4px 0 16px;padding-bottom:12px;flex-wrap:wrap;
}
.carte-titre h2,.carte-titre h3{margin:0}

.grille{display:grid;gap:20px}
.grille-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.grille-3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.grille-4{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.grille-matrices{grid-template-columns:repeat(auto-fit,minmax(460px,1fr))}

/* Cartes de méthode (page d'accueil / choix) */
.carte-methode{
  background:var(--blanc);border:1px solid var(--bordure);border-left:5px solid var(--bleu);
  border-radius:var(--rayon);padding:20px 22px;box-shadow:var(--ombre);
  display:flex;flex-direction:column;transition:transform .15s, box-shadow .15s;
}
.carte-methode:hover{transform:translateY(-2px);box-shadow:var(--ombre-forte)}
.carte-methode h3{margin-top:0}
.carte-methode p{flex:1;font-size:.93rem;color:var(--texte-doux)}
.carte-methode.violet{border-left-color:var(--violet)}
.carte-methode.peche{border-left-color:var(--peche)}
.carte-methode.profond{border-left-color:var(--bleu-profond)}

.badges{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.badge{
  font-size:.72rem;background:var(--bleu-clair);color:var(--bleu-profond);
  border-radius:999px;padding:3px 10px;font-weight:600;
}
.badge.violet{background:var(--violet-clair);color:var(--violet)}
.badge.peche{background:var(--peche-clair);color:#8a4a22}

/* Indicateurs chiffrés */
.stat{
  background:var(--blanc);border:1px solid var(--bordure);border-radius:var(--rayon);
  padding:16px 18px;box-shadow:var(--ombre);
}
.stat-valeur{font-size:1.9rem;font-weight:700;color:var(--bleu-profond);line-height:1.1}
.stat-libelle{font-size:.8rem;color:var(--texte-doux);text-transform:uppercase;letter-spacing:.06em;margin-top:4px}

/* ---------------------------------------------------------------- */
/*  Formulaires                                                      */
/* ---------------------------------------------------------------- */

form{margin:0}
fieldset{border:1px solid var(--bordure);border-radius:var(--rayon-sm);padding:16px 18px;margin:0 0 18px}
legend{font-weight:640;color:var(--bleu-profond);padding:0 8px;font-size:.92rem;
  letter-spacing:.01em}

label{display:block;font-weight:600;font-size:.88rem;margin-bottom:5px;color:var(--bleu-profond)}
/* Texte d'aide, quel que soit son parent : une taille unique sur tout le site. */
.aide{display:block;font-weight:400;font-style:normal;color:var(--texte-doux);
  font-size:.82rem;line-height:1.5;margin-top:3px}

input[type=text],input[type=email],input[type=password],input[type=number],
input[type=date],input[type=search],select,textarea{
  width:100%;padding:9px 11px;border:1px solid var(--bordure);border-radius:var(--rayon-sm);
  font-family:inherit;font-size:.94rem;color:var(--texte);background:var(--blanc);
  transition:border-color .15s, box-shadow .15s;
}
input:focus,select:focus,textarea:focus{
  outline:none;border-color:var(--bleu);box-shadow:0 0 0 3px rgba(11,118,159,.16);
}
textarea{min-height:88px;resize:vertical}
select[multiple]{min-height:150px}

.champ{margin-bottom:16px}
.champs{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}

.cases{display:grid;gap:6px 18px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.cases label,.case-ligne label{font-weight:400;font-size:.9rem;display:flex;gap:8px;align-items:flex-start;color:var(--texte)}
.cases input[type=checkbox],.cases input[type=radio]{margin-top:4px;flex:0 0 auto}

.btn{
  display:inline-block;border:0;border-radius:var(--rayon-sm);cursor:pointer;
  background:var(--bleu);color:#fff;font-family:inherit;font-size:.94rem;font-weight:600;
  padding:10px 20px;text-decoration:none;transition:background .15s, box-shadow .15s;
}
.btn:hover{background:var(--bleu-vif);color:#fff;text-decoration:none}
.btn-violet{background:var(--violet)}
.btn-violet:hover{background:#9c3a8f}
.btn-profond{background:var(--bleu-profond)}
.btn-profond:hover{background:var(--bleu-nuit)}
.btn-contour{background:transparent;color:var(--bleu);border:1px solid var(--bleu)}
.btn-contour:hover{background:var(--bleu-clair);color:var(--bleu-profond)}
.btn-danger{background:var(--rouge)}
.btn-danger:hover{background:#a51f1f}
.btn-fin{padding:6px 14px;font-size:.84rem}
.btn[disabled],.btn.desactive{opacity:.5;cursor:not-allowed}
.barre-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:18px}

/* ---------------------------------------------------------------- */
/*  Tableaux                                                         */
/* ---------------------------------------------------------------- */

.tableau-defilant{overflow-x:auto;border-radius:var(--rayon);border:1px solid var(--bordure);background:var(--blanc)}
table{width:100%;border-collapse:collapse;font-size:.9rem;background:var(--blanc)}
thead th{
  background:var(--bleu-profond);color:#fff;text-align:left;font-weight:600;
  padding:10px 12px;white-space:nowrap;font-size:.83rem;letter-spacing:.02em;
}
tbody td,tbody th{padding:9px 12px;border-top:1px solid var(--bordure);vertical-align:top;text-align:left}
tbody tr:nth-child(even){background:#FAFCFD}
tbody tr:hover{background:var(--bleu-clair)}
table.compact td,table.compact th{padding:6px 9px;font-size:.85rem}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}

/* ---------------------------------------------------------------- */
/*  Pastilles, alertes, matrices                                     */
/* ---------------------------------------------------------------- */

.pastille{
  display:inline-block;color:#fff;font-size:.78rem;font-weight:600;
  padding:2px 10px;border-radius:999px;white-space:nowrap;
}

.alerte{
  border-radius:var(--rayon-sm);padding:12px 16px;margin:0 0 18px;font-size:.92rem;
  border-left:4px solid;
}
.alerte-info{background:var(--bleu-clair);border-color:var(--bleu);color:#0a4a63}
.alerte-succes{background:#E8F5E9;border-color:var(--vert);color:#1B5E20}
.alerte-erreur{background:#FDECEA;border-color:var(--rouge);color:#8E1D1D}
.alerte-attention{background:var(--peche-clair);border-color:var(--peche);color:#8a4a22}
.alerte ul{margin:6px 0 0 18px;padding:0}

.encart{
  background:var(--bleu-clair);border-left:4px solid var(--bleu);
  padding:14px 18px;border-radius:0 var(--rayon-sm) var(--rayon-sm) 0;margin:0 0 20px;font-size:.92rem;
}
.encart-violet{background:var(--violet-clair);border-left-color:var(--violet)}
.encart-peche{background:var(--peche-clair);border-left-color:var(--peche)}
.encart h3,.encart h4{margin-top:0}

/* Matrice de risque 5x5 */
.matrice{border-collapse:collapse;font-size:.8rem;margin:10px 0 4px}
.matrice td,.matrice th{border:1px solid #fff;padding:7px 4px;text-align:center;min-width:52px}
.matrice th:first-child{min-width:120px;font-size:.74rem}
.matrice th{background:var(--bleu-profond);color:#fff;font-weight:600}
.matrice td{color:#fff;font-weight:600}
.matrice td.vide{background:var(--fond);color:var(--texte)}
.matrice .marqueur{
  display:inline-block;background:#fff;color:var(--bleu-profond);border-radius:999px;
  padding:1px 8px;font-size:.72rem;box-shadow:0 0 0 2px rgba(0,0,0,.25);
}

/* Barres de progression / jauges */
.jauge{background:var(--bordure);border-radius:999px;height:10px;overflow:hidden;min-width:90px}
.jauge span{display:block;height:100%;border-radius:999px}

/* Étapes (fil d'analyse) */
.etapes{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0 0 26px;padding:0;font-size:.84rem}
.etapes li{
  background:var(--blanc);border:1px solid var(--bordure);border-radius:999px;
  padding:6px 15px;color:var(--texte-doux);
}
.etapes li.courante{background:var(--bleu);border-color:var(--bleu);color:#fff;font-weight:600}
.etapes li.faite{background:var(--bleu-clair);border-color:var(--bleu-clair);color:var(--bleu-profond)}

/* Répéteur de lignes (menaces, mesures…) */
.repeteur .ligne{
  background:#FAFCFD;border:1px solid var(--bordure);border-radius:var(--rayon-sm);
  padding:14px 16px;margin-bottom:12px;position:relative;
}
.repeteur .ligne .supprimer{
  position:absolute;top:8px;right:10px;background:none;border:0;color:var(--rouge);
  cursor:pointer;font-size:1.1rem;line-height:1;padding:2px 6px;
}
.repeteur .ligne .supprimer:hover{background:#FDECEA;border-radius:4px}

/* Onglets */
.onglets{display:flex;gap:4px;border-bottom:2px solid var(--bordure);margin:0 0 20px;flex-wrap:wrap}
.onglets button,.onglets .onglet{
  background:none;border:0;border-bottom:3px solid transparent;margin-bottom:-2px;
  padding:9px 16px;font-family:inherit;font-size:.92rem;font-weight:600;color:var(--texte-doux);cursor:pointer;
}
.onglets .onglet{text-decoration:none;display:inline-flex;align-items:center;gap:8px}
.onglets .onglet:hover{color:var(--bleu);text-decoration:none;background:var(--bleu-clair);
  border-radius:var(--rayon-sm) var(--rayon-sm) 0 0}
.onglets button.actif,.onglets .onglet.actif{color:var(--bleu-profond);border-bottom-color:var(--bleu)}
.onglet-nb{
  background:var(--bordure);color:var(--texte-doux);border-radius:999px;
  padding:1px 8px;font-size:.74rem;font-weight:700;
}
.onglet.actif .onglet-nb{background:var(--bleu);color:#fff}
.panneau[hidden]{display:none}

/* ---------------------------------------------------------------- */
/*  Bannière d'accueil                                               */
/* ---------------------------------------------------------------- */

.hero{
  background:var(--bleu-profond);
  background-image:linear-gradient(100deg, #04202D 0%, #072F41 55%, #0A3E56 100%);
  color:#fff;
  border-radius:4px;
  border-left:5px solid var(--bleu);
  padding:40px 44px 38px;
  margin-bottom:26px;
  position:relative;
  overflow:hidden;
}
/* Fine trame diagonale, très discrète, rappel du logo */
.hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:repeating-linear-gradient(135deg,
    rgba(255,255,255,.030) 0px, rgba(255,255,255,.030) 1px,
    transparent 1px, transparent 11px);
}
.hero > *{position:relative}
.hero-surtitre{
  font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--peche);font-weight:700;margin:0 0 12px;
}
.hero h1{
  color:#fff;font-size:1.95rem;line-height:1.24;font-weight:600;
  margin:0 0 16px;max-width:24ch;
}
.hero-texte{
  color:#c5d9e4;max-width:72ch;font-size:1rem;margin-bottom:24px;
}
.hero-texte strong{color:#fff;font-weight:600}
.hero .barre-actions{margin-top:0}
.hero .btn{background:var(--bleu);color:#fff}
.hero .btn:hover{background:var(--bleu-vif);color:#fff}
.hero .btn-contour{background:transparent;color:#dceaf1;border:1px solid rgba(255,255,255,.38)}
.hero .btn-contour:hover{background:rgba(255,255,255,.10);color:#fff;border-color:rgba(255,255,255,.6)}

/* ---------------------------------------------------------------- */
/*  Pied de page                                                     */
/* ---------------------------------------------------------------- */

.pied{background:var(--bleu-profond);color:#b9cdd7;margin-top:auto;padding:26px 24px}
.pied-inner{max-width:1180px;margin:0 auto;text-align:center;font-size:.88rem}
.pied a{color:#9fd3e8}
.pied a:hover{color:var(--peche)}
.pied p{margin:0 0 6px}
.pied-legal{font-size:.8rem;color:#7f9aa8;margin-top:10px}

/* ---------------------------------------------------------------- */
/*  Impression                                                       */
/* ---------------------------------------------------------------- */

@media print{
  .menu,.entete-actions,.menu-bascule,.barre-actions,.pied-liens,.saut-contenu{display:none !important}
  body{background:#fff}
  .contenu{padding:0;max-width:none}
  .carte{box-shadow:none;break-inside:avoid}
}

/* ---------------------------------------------------------------- */
/*  Responsive                                                       */
/* ---------------------------------------------------------------- */

@media (max-width:960px){
  .disposition{flex-direction:column}
  .menu-bascule{display:block}
  .menu{width:100%;flex:none;display:none;padding-top:8px}
  .menu.ouvert{display:block}
  .contenu{padding:22px 18px 40px}
  .entete{padding:10px 16px}
  .entete-logo img{height:42px}
  .hero{padding:26px 22px}
  .hero h1{font-size:1.6rem}
  h1{font-size:1.5rem}
}

/* ---------------------------------------------------------------- */
/*  Saisie à trois points et exemples                                */
/* ---------------------------------------------------------------- */

.triplet{
  border:1px solid var(--bordure);border-left:3px solid var(--bleu);
  border-radius:var(--rayon-sm);padding:14px 16px;margin:0 0 14px;background:#FCFDFE;
}
.triplet-entete{margin-bottom:10px}
.triplet-titre{display:block;font-weight:650;color:var(--bleu-profond);font-size:.9rem}
.triplet-unite{font-weight:400;color:var(--texte-doux);font-size:.85rem}
.triplet .champs{gap:12px}
.triplet .champ{margin-bottom:0}

details.exemple{
  background:var(--bleu-clair);border-radius:var(--rayon-sm);
  margin:-6px 0 18px;padding:0;border:1px solid #CFE3ED;
}
details.exemple > summary{
  cursor:pointer;padding:9px 14px;font-size:.88rem;font-weight:600;color:#0a4a63;
  list-style:none;
}
details.exemple > summary::before{content:"▸ ";font-size:.9em}
details.exemple[open] > summary::before{content:"▾ "}
details.exemple > summary::-webkit-details-marker{display:none}
details.exemple > div{padding:2px 16px 14px;font-size:.9rem;color:#123c4e}
details.exemple ul{margin:6px 0 10px 18px;padding:0}
details.exemple p:last-child{margin-bottom:0}

/* Chaîne du scénario FAIR : cinq blocs de largeur égale, alignés */
.chaine-scenario{
  display:grid;grid-template-columns:repeat(5,1fr);gap:10px;
  list-style:none;margin:0 0 22px;padding:0;
}
.chaine-scenario > li{display:flex;flex-direction:column;min-width:0}
.chaine-lien{
  display:block;font-size:.74rem;font-style:italic;color:var(--texte-doux);
  text-align:center;padding:0 0 5px;min-height:1.2em;position:relative;
}
.chaine-scenario > li + li .chaine-lien::before{
  content:"→";position:absolute;left:-11px;top:50%;transform:translateY(-60%);
  color:var(--peche);font-style:normal;font-size:.9rem;
}
.chaine-titre{
  display:flex;align-items:center;justify-content:center;text-align:center;
  background:var(--bleu-profond);color:#fff;border-radius:4px;
  padding:10px 8px;font-weight:600;font-size:.85rem;line-height:1.25;min-height:52px;
}
.chaine-def{
  display:block;font-size:.76rem;line-height:1.4;color:var(--texte-doux);
  text-align:center;padding:7px 4px 0;
}
@media (max-width:820px){
  .chaine-scenario{grid-template-columns:repeat(2,1fr)}
  .chaine-scenario > li + li .chaine-lien::before{content:none}
}
@media (max-width:520px){
  .chaine-scenario{grid-template-columns:1fr}
}

/* ---------------------------------------------------------------- */
/*  Carte thermique                                                  */
/* ---------------------------------------------------------------- */

.heatmap-bloc{margin:0 0 24px}
.heatmap-titre{margin:0 0 8px;color:var(--bleu-profond)}
table.heatmap{border-collapse:separate;border-spacing:3px;font-size:.82rem;width:auto}
table.heatmap th{
  background:var(--bleu-profond);color:#fff;font-weight:600;padding:8px 10px;
  text-align:center;vertical-align:middle;border-radius:3px;font-size:.78rem;
}
table.heatmap th.heatmap-coin{background:var(--bleu-nuit);font-size:.72rem;min-width:150px}
table.heatmap th.heatmap-ligne{text-align:left;min-width:200px;line-height:1.35;padding:9px 12px}
.heatmap-niveau{
  display:inline-block;background:rgba(255,255,255,.22);border-radius:3px;
  padding:0 6px;margin-right:5px;font-weight:700;
}
.heatmap-eq{display:block;font-weight:400;font-size:.7rem;color:#a9c6d4;margin-top:4px}
table.heatmap thead th{line-height:1.3}
.heatmap-libelle{display:inline}
table.heatmap td{
  min-width:110px;height:64px;padding:5px;vertical-align:top;border-radius:3px;
  text-align:center;
}
table.heatmap tbody tr:hover{background:none}
table.heatmap tbody tr:nth-child(even){background:none}
.heatmap-vide{display:block;height:100%}
table.heatmap .marqueur{
  display:inline-block;background:#fff;color:var(--bleu-profond);border-radius:3px;
  padding:2px 7px;margin:2px;font-size:.72rem;font-weight:700;cursor:default;
  box-shadow:0 1px 3px rgba(0,0,0,.3);position:relative;
}
table.heatmap .marqueur:hover::after,
table.heatmap .marqueur:focus::after{
  content:attr(data-infobulle);
  position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);
  background:var(--bleu-profond);color:#fff;padding:7px 11px;border-radius:5px;
  font-size:.76rem;font-weight:400;white-space:normal;width:max-content;max-width:280px;
  text-align:left;line-height:1.4;z-index:60;box-shadow:var(--ombre-forte);
}
.heatmap-legende{display:flex;gap:18px;flex-wrap:wrap;margin-top:12px;font-size:.8rem;color:var(--texte-doux)}
.heatmap-legende > span{display:inline-flex;align-items:center}
.heatmap-legende i{display:inline-block;width:14px;height:14px;border-radius:3px;margin-right:6px;vertical-align:-2px}

/* ---------------------------------------------------------------- */
/*  Graphiques SVG                                                   */
/* ---------------------------------------------------------------- */

svg.graphique{width:100%;height:auto;max-width:900px;display:block;margin:0 0 22px;
  background:var(--blanc);border:1px solid var(--bordure);border-radius:var(--rayon-sm)}
svg.graphique .axe{font-size:11px;fill:var(--texte-doux);font-family:var(--police)}
svg.graphique .axe-titre{font-size:12px;fill:var(--bleu-profond);font-family:var(--police);font-weight:600}

/* Lignes de synthèse dans les tableaux de calcul */
tbody tr.ligne-forte td{background:#F2F8FB}
tbody tr.ligne-total td{background:var(--bleu-clair);border-top:2px solid var(--bleu)}

/* Marqueur « à réviser » */
.a-reviser{
  background:var(--peche-clair);color:#8a4a22;border:1px solid var(--peche);
  border-radius:999px;padding:1px 9px;font-size:.72rem;font-weight:600;white-space:nowrap;
}

/* Section désactivée (facteur d'exposition sans objet) */
fieldset.desactive{opacity:.5;background:#F7F9FA}
fieldset.desactive legend{color:var(--texte-doux)}
fieldset.desactive input{background:#EEF2F4;cursor:not-allowed}

/* Note de références chiffrées, en petits caractères */
.note-reference{font-size:.79rem;line-height:1.6;margin-top:16px;
  border-top:1px solid var(--bordure);padding-top:12px}

/* Filtre des tableaux de mesures */
.filtre-mesures{
  background:#F7FAFC;border:1px solid var(--bordure);border-radius:var(--rayon-sm);
  padding:14px 16px 10px;margin:0 0 14px;
}
.filtre-mesures .champs{gap:12px}
.filtre-mesures .champ{margin-bottom:0}
.filtre-compte{margin:10px 0 0;font-size:.83rem}

/* Pastilles de nature */
.badge.nature-preventive{background:var(--bleu-clair);color:#0a4a63}
.badge.nature-detective{background:#FFF4D6;color:#7a5200}
.badge.nature-reactive{background:var(--peche-clair);color:#8a4a22}
.badge.nature-mixte{background:#EEE;color:#666}

/* ================== Quiz ================== */

.quiz-barre{
  position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:16px;
  background:var(--bleu);color:#fff;border-radius:10px;
  padding:10px 16px;margin:0 0 20px;box-shadow:0 2px 10px rgba(0,0,0,.12);
}
.quiz-chrono{
  font-variant-numeric:tabular-nums;font-weight:700;font-size:1.35rem;
  letter-spacing:.5px;min-width:76px;
}
.quiz-chrono.alerte-temps{color:#FFD54F}
.quiz-chrono.urgence{color:#FF8A80;animation:quiz-pulse 1s ease-in-out infinite}
@keyframes quiz-pulse{50%{opacity:.45}}
.quiz-progression{flex:1;min-width:0}
.quiz-progression .quiz-jauge{
  background:rgba(255,255,255,.28);border-radius:999px;height:8px;overflow:hidden;
}
.quiz-progression .quiz-jauge span{
  display:block;height:100%;width:0;background:#fff;border-radius:999px;transition:width .2s ease;
}
.quiz-progression .discret{color:rgba(255,255,255,.85);font-size:.78rem;display:block;margin-top:4px}
.quiz-barre .btn{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.5);flex:0 0 auto}
.quiz-barre .btn:hover{background:rgba(255,255,255,.3)}

.quiz-titre{font-size:1.15rem;color:var(--texte-doux);font-weight:600;margin:0 0 12px}
.quiz-form{min-height:360px}
.quiz-form.js .quiz-question{display:none}
.quiz-form.js .quiz-question.visible{display:block}
.quiz-form:not(.js) .quiz-question{border-bottom:1px solid var(--bordure);padding-bottom:18px;margin-bottom:22px}
.quiz-form:not(.js) .quiz-navigation{display:none}
.quiz-numero{
  font-size:.8rem;color:var(--texte-doux);margin:0 0 8px;
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
}
.quiz-enonce{font-size:1.08rem;line-height:1.5;margin:0 0 18px;color:var(--texte)}
.quiz-choix{display:grid;gap:10px;margin:0 0 22px}
.quiz-choix label{
  display:flex;gap:10px;align-items:flex-start;font-weight:400;font-size:.94rem;
  border:1px solid var(--bordure);border-radius:8px;padding:10px 14px;cursor:pointer;
  background:#fff;transition:border-color .12s ease,background .12s ease;
}
.quiz-choix label:hover{border-color:var(--bleu);background:var(--bleu-tres-clair,#F2F6FA)}
.quiz-choix label:has(input:checked){border-color:var(--bleu);background:var(--bleu-tres-clair,#EEF4FA);font-weight:500}
.quiz-choix input{margin-top:3px;flex:0 0 auto}
.quiz-navigation{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--bordure);padding-top:14px}
.quiz-fin{justify-content:center;margin-top:18px}

.quiz-resultat{text-align:center;padding:32px 20px}
.quiz-score{font-size:3.4rem;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.quiz-mention{font-size:1.15rem;font-weight:600;margin:8px 0 6px;color:var(--texte)}
.quiz-niveau{
  font-size:1.3rem;margin:10px 0 4px;color:var(--texte);font-weight:400;
}
.quiz-niveau strong{
  font-weight:700;color:var(--violet);
  border-bottom:2px solid var(--peche);padding-bottom:2px;
}
.quiz-boutade{
  font-size:1rem;font-style:italic;color:var(--texte-doux);
  margin:14px auto 4px;max-width:34em;
}

@media (max-width:640px){
  .quiz-barre{flex-wrap:wrap;gap:8px}
  .quiz-progression{order:3;flex-basis:100%}
  .quiz-score{font-size:2.6rem}
}

/* Barre de filtres générique des tableaux d'administration */
.barre-filtres{
  background:#F7FAFC;border:1px solid var(--bordure);border-radius:var(--rayon-sm);
  padding:12px 16px;margin:0 0 14px;display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;
}
.barre-filtres .champ{margin-bottom:0}
.champ-inline{min-width:170px}
.champ-inline label{font-size:.8rem}
tr.inactive td{opacity:.55}
tr.inactive td:first-child{opacity:1}

/* Colonne d'actions d'un tableau : boutons alignés, hauteur de ligne contenue */
.actions-ligne{white-space:nowrap}
.actions-ligne form{display:inline-block;margin:0}
.actions-ligne .btn{margin:2px 4px 2px 0;vertical-align:middle}
