/* Styles d'Apteo. Aucune couleur, police ou arrondi écrit en dur :
   tout vient des variables de /theme.css (charte de l'organisme). */

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

body {
  margin: 0;
  font-family: var(--police);
  font-size: 17px;
  line-height: 1.5;
  color: var(--texte);
  background: var(--fond);
}

h1 { font-size: 1.6rem; margin: 0 0 1rem; }
h2 { font-size: 1.15rem; margin: 0 0 .75rem; }
a { color: var(--primaire); }
.texte-secondaire { color: var(--texte-secondaire); }

/* En-tête : bandeau (logo, compte) puis onglets ; l'onglet actif prend la couleur de la page. */
.entete { background: var(--entete); color: var(--sur-entete); padding: 0 1.25rem; }
.entete__haut { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; padding: .6rem 0; }
.entete__marque { color: inherit; text-decoration: none; display: flex; align-items: center; }
.entete__logo { max-height: 40px; }
.entete__nom { font-weight: 700; font-size: 1.15rem; }
.entete__compte { display: flex; align-items: center; gap: 1rem; }
.entete__compte form { margin: 0; }
.entete__compte .bouton--discret { color: inherit; border-color: currentColor; background: transparent; }
.entete__utilisateur { color: inherit; opacity: .85; }
.entete__utilisateur--actif { opacity: 1; font-weight: 700; }

.onglets-principaux { display: flex; align-items: flex-end; gap: .25rem; flex-wrap: wrap; }
.onglet {
  flex: none; display: flex; align-items: center; min-height: 44px; padding: 0 1.1rem;
  color: var(--sur-entete); text-decoration: none; font-weight: 600; white-space: nowrap;
  border-radius: var(--rayon) var(--rayon) 0 0; border-top: 3px solid transparent; opacity: .8;
}
.onglet:hover { opacity: 1; background: color-mix(in srgb, var(--sur-entete) 12%, transparent); }
.onglet--actif, .onglet--actif:hover {
  opacity: 1; background: var(--fond); color: var(--primaire); border-top-color: var(--primaire);
}
.onglet:focus-visible { outline: 2px solid var(--sur-entete); outline-offset: -4px; }
@media (max-width: 900px) {
  .entete { padding: 0 .75rem; }
  .onglet { padding: 0 .65rem; font-size: .95rem; }
  .onglets-principaux { gap: .1rem; }
}
.onglets-principaux__separateur { flex: none; width: 1px; height: 24px; margin: 0 .5rem 10px; background: var(--sur-entete); opacity: .35; }

.page { max-width: 1100px; margin: 0 auto; padding: 1.5rem 1rem 3rem; }

/* Blocs */
.bloc {
  background: var(--surface);
  border: 1px solid var(--bordure);
  border-radius: var(--rayon);
  padding: 1.25rem;
  margin-bottom: 1rem;
}
.bloc--etroit { max-width: 420px; margin: 2rem auto; }
.grille { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.grille .bloc { margin: 0; }

/* Boutons : cibles tactiles d'au moins 44 px (tablette) */
.bouton {
  min-height: 44px; padding: .5rem 1.1rem;
  font: inherit; font-weight: 600; cursor: pointer;
  border: 1px solid transparent; border-radius: var(--rayon);
}
.bouton--primaire { background: var(--primaire); color: var(--sur-primaire); }
.bouton--secondaire { background: var(--secondaire); color: var(--sur-secondaire); }
.bouton--danger { background: var(--erreur); color: var(--sur-erreur); }
.bouton--discret { background: transparent; color: var(--texte); border-color: var(--bordure); min-height: 36px; }
.bouton:hover { filter: brightness(.94); }
.bouton:focus-visible, .champ__saisie:focus-visible { outline: 3px solid var(--primaire); outline-offset: 2px; }

/* Formulaires */
.formulaire { display: flex; flex-direction: column; gap: .9rem; }
.champ { display: flex; flex-direction: column; gap: .3rem; }
.champ__libelle { font-weight: 600; font-size: .95rem; }
.champ__saisie {
  min-height: 44px; padding: .5rem .7rem; font: inherit; color: var(--texte);
  background: var(--surface); border: 1px solid var(--bordure); border-radius: var(--rayon);
}

/* Messages et badges */
.message { padding: .7rem 1rem; border-radius: var(--rayon); border-left: 5px solid var(--bordure); background: var(--surface); }
.message--erreur { border-left-color: var(--erreur); background: color-mix(in srgb, var(--erreur) 10%, var(--surface)); color: var(--texte); font-weight: 600; }
.champ__saisie[aria-invalid="true"] { border-color: var(--erreur); box-shadow: 0 0 0 2px color-mix(in srgb, var(--erreur) 35%, transparent); }
.message--succes { border-left-color: var(--succes); }
.message--info { border-left-color: var(--primaire); }
.badge { display: inline-block; padding: .2rem .7rem; border-radius: 999px; font-size: .9rem; font-weight: 600; }
.badge--succes { background: var(--succes); color: var(--sur-succes); }
.badge--alerte { background: var(--alerte); color: var(--sur-alerte); }
.badge--erreur { background: var(--erreur); color: var(--sur-erreur); }

/* Tableaux */
.tableau { width: 100%; border-collapse: collapse; }
.tableau th, .tableau td { text-align: left; padding: .5rem; border-bottom: 1px solid var(--bordure); vertical-align: middle; }
.tableau form { margin: 0; }
.pastille { display: inline-block; width: 1.1rem; height: 1.1rem; border-radius: 50%; margin-right: .25rem; vertical-align: middle; border: 1px solid var(--bordure); }

/* Page Charte */
.charte { margin-bottom: 1rem; display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; }
.charte .bloc { margin: 0; }
.charte__couleurs { display: grid; gap: .8rem; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); }
.couleur { display: flex; gap: .4rem; align-items: center; }
.couleur input[type=color] { width: 48px; height: 44px; padding: 0; border: 1px solid var(--bordure); border-radius: var(--rayon); background: none; }
.couleur .champ__saisie { flex: 1; min-width: 0; text-transform: uppercase; }
.apercu { position: sticky; top: 1rem; background: var(--fond); color: var(--texte); font-family: var(--police); }
.apercu__entete { display: flex; align-items: center; min-height: 52px; background: var(--entete); color: var(--sur-entete); padding: .6rem 1rem; border-radius: var(--rayon); font-weight: 700; margin-bottom: 1rem; }
.apercu__boutons, .apercu__badges { display: flex; gap: .5rem; flex-wrap: wrap; }
.apercu__documents { display: flex; gap: 1rem; flex-wrap: wrap; align-items: flex-start; margin-top: 1rem; }
.apercu__avis { width: 150px; aspect-ratio: 210 / 297; background: #fff; border: 1px solid var(--bordure); padding: 8px; }
.apercu__avis-bandeau { background: var(--primaire); color: var(--sur-primaire); font-size: .7rem; font-weight: 700; padding: 4px 6px; margin-bottom: 8px; }
.apercu__ligne { height: 6px; background: var(--bordure); border-radius: 3px; margin: 6px 0; }
.apercu__ligne--courte { width: 60%; }
.carte-pvc { width: 214px; aspect-ratio: 85.6 / 54; background: #fff; border: 1px solid var(--bordure); border-radius: 10px; overflow: hidden; }
.carte-pvc__bandeau { background: var(--primaire); color: var(--sur-primaire); font-size: .75rem; font-weight: 700; padding: 6px 10px; }
.apercu__logo { max-height: 36px; max-width: 70%; }
.logo-actuel { display: flex; align-items: center; gap: 1rem; padding: .6rem; border: 1px dashed var(--bordure); border-radius: var(--rayon); background: var(--entete); }
.logo-actuel img { max-height: 40px; }
.case { display: flex; gap: .5rem; align-items: center; }
.case input { width: 22px; height: 22px; }
.carte-pvc__corps { display: grid; grid-template-columns: 44px 1fr; gap: 10px; padding: 10px; }
.carte-pvc__photo { width: 44px; height: 56px; background: var(--bordure); border-radius: 4px; }

@media (max-width: 820px) {
  .charte { grid-template-columns: 1fr; }
  .apercu { position: static; }
}

/* Utilisateurs */
.formulaire--ligne { display: grid; gap: .8rem; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); align-items: end; }
.en-ligne { display: inline-block; margin: 0; }
.actions { display: flex; gap: .4rem; flex-wrap: wrap; }
.ligne--inactive td { color: var(--texte-secondaire); background: color-mix(in srgb, var(--texte-secondaire) 14%, var(--surface)); }
.ligne--inactive td a:not(.bouton) { color: var(--texte-secondaire); }
.ligne--inactive td:not(:last-child) { opacity: .75; }
.tableau-defilant { overflow-x: auto; }
.provisoire { border-left: 5px solid var(--alerte); }
.provisoire__mdp { font-family: Consolas, "Courier New", monospace; font-size: 1.5rem; letter-spacing: .08em; margin: .5rem 0 0; user-select: all; }

/* Sessions */
.ligne--aujourdhui td { background: var(--fond); font-weight: 600; }
.fiche { display: grid; grid-template-columns: max-content 1fr; gap: .4rem 1.2rem; margin: 0; }
.fiche dt { font-weight: 600; color: var(--texte-secondaire); }
.fiche dd { margin: 0; }
.liste-simple { list-style: none; padding: 0; margin: 0; }
.liste-simple li { padding: .5rem 0; border-bottom: 1px solid var(--bordure); }

/* Formations */
.ligne--a-traiter td { background: var(--fond); }
.formulaire-ligne { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; margin: 0; }
.formulaire-ligne .champ__saisie { flex: 1; min-width: 180px; }

/* Sessions et stagiaires */
.titre-actions { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; margin-bottom: .5rem; }
.titre-actions h1, .titre-actions h2 { margin-bottom: 0; }
a.bouton { display: inline-flex; align-items: center; text-decoration: none; }
.etiquette { display: inline-block; font-size: .75rem; font-weight: 600; padding: .1rem .5rem; border: 1px solid var(--bordure); border-radius: 999px; color: var(--texte-secondaire); vertical-align: middle; }
.etiquette--alerte { border-color: var(--alerte); background: var(--alerte); color: var(--sur-alerte); }
.bloc--moyen { max-width: 720px; }
.vignette-cellule { width: 44px; }
.vignette { width: 36px; height: 48px; object-fit: cover; border-radius: 4px; display: block; }
.vignette--vide { background: var(--fond); border: 1px dashed var(--bordure); }
.ligne-action { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.fiche-stagiaire { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 1rem; align-items: start; }
.fiche-stagiaire .bloc { margin: 0; }
.photo-identite { width: 180px; aspect-ratio: 3 / 4; object-fit: cover; border-radius: var(--rayon); border: 1px solid var(--bordure); display: block; margin-bottom: .5rem; }
.photo-identite--vide { display: flex; align-items: center; justify-content: center; color: var(--texte-secondaire); background: var(--fond); }
@media (max-width: 820px) { .fiche-stagiaire { grid-template-columns: 1fr; } }

/* Banque de questions */
.onglets { display: flex; gap: .3rem; flex-wrap: wrap; margin-bottom: 1rem; align-items: center; }
.onglets a { padding: .45rem .9rem; border: 1px solid var(--bordure); border-radius: var(--rayon); background: var(--surface); color: var(--texte); text-decoration: none; font-weight: 600; }
.onglets a[aria-current="page"] { background: var(--primaire); color: var(--sur-primaire); border-color: var(--primaire); }
.onglets .onglets__lien { margin-left: auto; border: none; background: none; color: var(--primaire); }
.sans-cadre { border: 0; padding: 0; margin: 0; min-width: 0; display: flex; flex-direction: column; gap: .9rem; }
.propositions { border: 1px solid var(--bordure); border-radius: var(--rayon); padding: .8rem; display: flex; flex-direction: column; gap: .5rem; }
.proposition { display: grid; grid-template-columns: 2rem 1fr auto; gap: .6rem; align-items: center; }
.proposition[hidden] { display: none; }
.proposition__lettre { font-weight: 700; text-align: center; }
textarea.champ__saisie { resize: vertical; font: inherit; }
.image-question { max-width: 320px; max-height: 220px; border: 1px solid var(--bordure); border-radius: var(--rayon); margin: .3rem 0; display: block; }
.marge-bas { margin-bottom: 1rem; }
.champ__saisie--court { width: 4.5rem; min-height: 44px; }
.reponse--bonne { font-weight: 700; color: var(--succes); }
.question-apercu h2 { font-size: 1.05rem; }
[hidden] { display: none !important; }
.etiquette--jour { background: var(--primaire); color: var(--sur-primaire); border-color: var(--primaire); }
.retirer-import { margin-top: .8rem; }
.retirer-import summary { cursor: pointer; color: var(--texte-secondaire); min-height: 44px; display: flex; align-items: center; }
.actions-ligne { white-space: nowrap; text-align: right; }
.actions-ligne .bouton { margin-left: .3rem; }
.message--alerte { border-left-color: var(--alerte); }
.champ-court { display: inline-flex; align-items: center; gap: .3rem; white-space: nowrap; }
.formulaire-ligne .champ__saisie--court { flex: none; min-width: 0; width: 5rem; }
.aide { margin-bottom: 1rem; } .aide summary { cursor: pointer; color: var(--primaire); min-height: 44px; display: flex; align-items: center; } .aide li { margin-bottom: .4rem; }
.champ__saisie--compact { min-height: 40px; padding: .3rem .5rem; width: auto; }
.champ__saisie--modifie { border-color: var(--primaire); font-weight: 600; }

/* Évaluation pratique certificative (atelier sur tablette / téléphone) */
.message--alerte { border-left-color: var(--alerte); background: color-mix(in srgb, var(--alerte) 12%, var(--surface)); }
.texte-alerte { color: var(--texte); border-left: 4px solid var(--alerte); padding-left: .6rem; }
.grille-2 { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); margin-bottom: 1rem; }
.grille-2 .bloc { margin: 0; }
.champ--court { max-width: 240px; }
.badge-etat { display: inline-block; padding: .2rem .7rem; border-radius: 999px; font-size: .85rem; font-weight: 600; white-space: nowrap;
  background: color-mix(in srgb, var(--texte-secondaire) 14%, var(--surface)); color: var(--texte); }
.badge-etat:empty { display: none; }
.badge-etat--acquis { background: color-mix(in srgb, var(--succes) 18%, var(--surface)); color: var(--texte); box-shadow: inset 0 0 0 1px var(--succes); }
.badge-etat--non_acquis { background: color-mix(in srgb, var(--erreur) 14%, var(--surface)); color: var(--texte); box-shadow: inset 0 0 0 1px var(--erreur); }
.badge-etat--refuse { background: color-mix(in srgb, var(--alerte) 18%, var(--surface)); color: var(--texte); box-shadow: inset 0 0 0 1px var(--alerte); }
.badge-etat--grand { font-size: 1rem; padding: .35rem .9rem; }
.liste-binomes { display: grid; gap: .8rem; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); margin-bottom: 1rem; }
.carte-binome { border: 1px solid var(--bordure); border-radius: var(--rayon); padding: .8rem; display: flex; flex-direction: column; gap: .5rem; background: var(--surface); }
.carte-binome__titre { font-weight: 700; }
.carte-binome__postes { list-style: none; margin: 0; padding: 0; display: grid; gap: .15rem; }
.carte-binome__exercices { display: flex; flex-direction: column; gap: .4rem; align-items: flex-start; }
.carte-binome__exercices .champ { width: 100%; margin: 0; }
.evaluateurs-binomes { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin: 0 0 1rem; padding: .6rem .8rem; border-radius: var(--rayon); background: var(--fond); border: 1px solid var(--bordure); }
.evaluateurs-binomes__poste { display: flex; gap: 0 .4rem; align-items: baseline; flex-wrap: wrap; }
@media (max-width: 560px) { .evaluateurs-binomes { flex-direction: column; } .evaluateurs-binomes__poste { display: block; } }
.evaluateurs-binomes dt { color: var(--texte-secondaire); }
.evaluateurs-binomes dd { margin: 0; }

.atelier__barre { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: .8rem; }
.postes { display: flex; border: 1px solid var(--bordure); border-radius: var(--rayon); overflow: hidden; }
.poste { min-height: 44px; display: flex; align-items: center; padding: 0 1rem; text-decoration: none; color: var(--texte); background: var(--surface); font-weight: 600; }
.poste--actif { background: var(--primaire); color: var(--sur-primaire); }
.atelier__candidat { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
  background: var(--surface); border: 1px solid var(--bordure); border-radius: var(--rayon); padding: .8rem 1rem; margin-bottom: 1rem; }
.atelier__nom { margin: .1rem 0; font-size: 1.6rem; }
.atelier__corps { display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr) 280px; align-items: start; }
.atelier__partie { font-size: 1.1rem; margin: .8rem 0 .5rem; color: var(--texte-secondaire); text-transform: uppercase; letter-spacing: .04em; }
.atelier__partie:first-child { margin-top: 0; }
.bloc-grille { background: var(--surface); border: 1px solid var(--bordure); border-radius: var(--rayon); margin-bottom: .8rem; overflow: hidden; }
.bloc-grille__entete { display: flex; justify-content: space-between; align-items: flex-start; gap: .8rem; padding: .7rem .9rem;
  background: color-mix(in srgb, var(--texte-secondaire) 7%, var(--surface)); }
.bloc-grille__condition { font-size: .85rem; }
.indicateur { display: flex; justify-content: space-between; align-items: center; gap: .8rem; padding: .7rem .9rem; border-top: 1px solid var(--bordure); }
.indicateur--liste { flex-direction: column; align-items: stretch; }
.indicateur__code { font-weight: 700; color: var(--texte-secondaire); margin-right: .2rem; }
.indicateur__trace, .indicateur__compte { display: block; font-size: .8rem; color: var(--texte-secondaire); margin-top: .2rem; }
.indicateur__trace:empty, .indicateur__compte:empty { display: none; }
.indicateur__choix { display: flex; gap: .4rem; flex-shrink: 0; }
.choix { min-height: 44px; min-width: 96px; padding: 0 .8rem; border-radius: var(--rayon); font: inherit; font-weight: 600; cursor: pointer;
  background: var(--surface); color: var(--texte); border: 2px solid var(--bordure); }
.choix--a[aria-pressed="true"] { background: var(--succes); color: var(--sur-succes); border-color: var(--succes); }
.choix--n[aria-pressed="true"] { background: var(--erreur); color: var(--sur-erreur); border-color: var(--erreur); }
.indicateur[data-resultat="a"] { box-shadow: inset 4px 0 0 var(--succes); }
.indicateur[data-resultat="n"] { box-shadow: inset 4px 0 0 var(--erreur); }
.indicateur__liste { display: grid; gap: .4rem; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); margin-top: .5rem; }
.element { display: flex; align-items: center; gap: .6rem; min-height: 44px; padding: .3rem .7rem; text-align: left; font: inherit; cursor: pointer;
  background: var(--surface); color: var(--texte); border: 1px solid var(--bordure); border-radius: var(--rayon); }
.element__case { width: 22px; height: 22px; flex-shrink: 0; border: 2px solid var(--bordure); border-radius: 5px; }
.element[aria-pressed="true"] { border-color: var(--succes); background: color-mix(in srgb, var(--succes) 10%, var(--surface)); }
.element[aria-pressed="true"] .element__case { background: var(--succes); border-color: var(--succes); }
.choix:disabled, .element:disabled { cursor: default; opacity: .75; }
.atelier__resume { position: sticky; top: 1rem; display: flex; flex-direction: column; gap: .7rem;
  background: var(--surface); border: 1px solid var(--bordure); border-radius: var(--rayon); padding: 1rem; }
.resume__role { display: flex; flex-direction: column; gap: .4rem; font-weight: 700; }
.resume__objectifs { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .3rem; }
.resume__objectifs li { display: flex; justify-content: space-between; align-items: center; }
.resume__condition { font-size: .85rem; margin: 0; }
.bouton[aria-pressed="true"] { border-color: var(--alerte); background: color-mix(in srgb, var(--alerte) 18%, var(--surface)); }

.validation-role__entete { display: flex; justify-content: space-between; align-items: center; gap: .8rem; flex-wrap: wrap; margin-bottom: .5rem; }
.validation-role__entete h2 { margin: 0; font-size: 1.15rem; }
.avis { border: 0; padding: 0; margin: 0 0 .8rem; display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; }
.avis legend { font-weight: 600; margin-bottom: .4rem; }
.avis__choix { display: flex; align-items: center; gap: .4rem; min-height: 44px; padding: 0 .9rem; border: 2px solid var(--bordure); border-radius: var(--rayon); cursor: pointer; font-weight: 600; }
.avis__choix--favorable:has(input:checked) { border-color: var(--succes); background: color-mix(in srgb, var(--succes) 14%, var(--surface)); }
.avis__choix--defavorable:has(input:checked) { border-color: var(--erreur); background: color-mix(in srgb, var(--erreur) 12%, var(--surface)); }
.signature__cadre { width: 100%; height: auto; aspect-ratio: 3 / 1; touch-action: none; border: 2px dashed var(--bordure); border-radius: var(--rayon); background: var(--fond); margin-bottom: .5rem; }
.signature__image { display: block; width: 100%; max-width: 600px; aspect-ratio: 3 / 1; object-fit: contain; border: 1px solid var(--bordure); border-radius: var(--rayon); background: var(--fond); margin-bottom: .5rem; }

@media (max-width: 820px) {
  .atelier__corps { grid-template-columns: 1fr; }
  .atelier__resume { position: sticky; bottom: 0; top: auto; order: 2; border-radius: var(--rayon) var(--rayon) 0 0; padding: .7rem; gap: .4rem; z-index: 5; }
  .resume__objectifs { flex-direction: row; flex-wrap: wrap; gap: .3rem .8rem; }
  .resume__objectifs li { gap: .3rem; }
  .resume__condition { display: none; }
  .resume__role { flex-direction: row; justify-content: space-between; align-items: center; }
}
@media (max-width: 560px) {
  .indicateur { flex-direction: column; align-items: stretch; }
  .indicateur__choix .choix { flex: 1; }
  .atelier__nom { font-size: 1.3rem; }
}
.lien-secondaire { display: inline-flex; align-items: center; min-height: 36px; font-size: .9rem; }
.liste-cases { list-style: none; padding: 0; margin: 0 0 1rem; display: grid; gap: .3rem; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.liste-cases label { display: flex; align-items: center; gap: .5rem; min-height: 44px; }
.bouton:disabled { background: var(--bordure); color: var(--texte-secondaire); border-color: var(--bordure); cursor: not-allowed; filter: none; }
.resume__role .badge-etat { align-self: flex-start; }
@media (max-width: 820px) {
  .atelier__resume { display: grid; grid-template-columns: 1fr 1fr; }
  .resume__role, .resume__objectifs { grid-column: 1 / -1; }
  .atelier__resume .bouton { min-height: 44px; padding: 0 .5rem; font-size: .9rem; }
}
.resume__autre { display: flex; justify-content: space-between; align-items: center; gap: .5rem; font-size: .9rem; padding-top: .5rem; border-top: 1px solid var(--bordure); }
@media (max-width: 820px) { .resume__autre { grid-column: 1 / -1; } }
.visuellement-cache { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.suppression-grilles { margin-top: 1rem; padding-top: .8rem; border-top: 1px solid var(--bordure); }
.tableau input[type="checkbox"] { width: 22px; height: 22px; }
.filtre-periode { margin-bottom: 1rem; }
.centre { text-align: center; }
.tableau-habilitations input[type="checkbox"] { width: 22px; height: 22px; }
#formateurs .formulaire { margin-top: 1rem; }
.annuler-lot summary { list-style: none; display: inline-flex; cursor: pointer; }
.annuler-lot summary::-webkit-details-marker { display: none; }
.annuler-lot[open] form { margin-top: .5rem; }
.liste-niveaux { list-style: none; padding: 0; margin: 0 0 1rem; display: flex; flex-wrap: wrap; gap: .5rem; }
.niveau__form { display: flex; gap: .3rem; align-items: center; border: 1px solid var(--bordure); border-radius: var(--rayon); padding: .3rem; background: var(--fond); }
.niveau__form .champ__saisie { width: 11rem; }
.habilitations-pastilles { display: flex; flex-direction: column; }
.ligne-habilitation { padding: .7rem 0; border-bottom: 1px solid var(--bordure); }
.ligne-habilitation__nom { font-weight: 600; margin-bottom: .4rem; display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.ligne-habilitation__tout { font-weight: 400; font-size: .9rem; }
.lien-bouton { background: none; border: 0; padding: 0; font: inherit; color: var(--primaire); text-decoration: underline; cursor: pointer; min-height: 32px; }
.pastilles { display: flex; flex-wrap: wrap; gap: .4rem; }
.puce-niveau { position: relative; cursor: pointer; display: inline-flex; }
.puce-niveau input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.puce-niveau span { display: inline-flex; align-items: center; min-height: 40px; padding: 0 .8rem; border: 1px solid var(--bordure); border-radius: 999px; background: var(--surface); }
.puce-niveau input:checked + span { background: var(--succes); color: var(--sur-succes); border-color: var(--succes); }
.puce-niveau input:checked + span::before { content: "✓ "; white-space: pre; }
.puce-niveau input:focus-visible + span { outline: 3px solid var(--primaire); outline-offset: 2px; }
.rattacher { display: inline-flex; gap: .3rem; align-items: center; margin-right: .3rem; }
.adresse-dendreo { font-size: .85rem; }

/* Aide en ligne */
.entete__aide { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%;
  border: 2px solid currentColor; color: var(--sur-entete); font-weight: 700; text-decoration: none; }
.entete__aide:hover { background: color-mix(in srgb, var(--sur-entete) 15%, transparent); }
.entete__aide--texte { width: 24px; height: 24px; color: var(--texte); font-size: .85rem; vertical-align: middle; }
.aide-accueil { text-align: center; padding: 2.2rem 1rem 1.6rem; margin: 0 0 1.2rem; border-radius: calc(var(--rayon) * 2);
  background: linear-gradient(135deg, color-mix(in srgb, var(--primaire) 10%, var(--surface)), var(--surface)); border: 1px solid var(--bordure); }
.aide-accueil h1 { margin: 0 0 .3rem; font-size: 1.9rem; }
.aide-accueil p { margin: 0 auto 1.2rem; max-width: 640px; color: var(--texte-secondaire); }
.aide-recherche { max-width: 560px; margin: 0 auto; display: flex; align-items: center; gap: .6rem; background: var(--surface);
  border: 2px solid var(--bordure); border-radius: 999px; padding: 0 1.1rem; min-height: 54px; color: var(--texte-secondaire); }
.aide-recherche:focus-within { border-color: var(--primaire); }
.aide-recherche input { border: 0; outline: 0; flex: 1; min-width: 0; font: inherit; font-size: 1.05rem; background: transparent; color: var(--texte); }
.aide-raccourcis { margin-top: 1rem; display: flex; gap: .5rem; justify-content: center; flex-wrap: wrap; font-size: .9rem; color: var(--texte-secondaire); align-items: center; }
.aide-raccourcis a { padding: .35rem .85rem; border-radius: 999px; background: var(--surface); border: 1px solid var(--bordure); text-decoration: none; color: var(--texte); }
.aide-raccourcis a:hover { border-color: var(--primaire); }
.aide-cartes { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); margin-bottom: 1.5rem; }
.aide-carte { display: flex; flex-direction: column; gap: .35rem; padding: 1.2rem; background: var(--surface); border: 1px solid var(--bordure); border-radius: calc(var(--rayon) * 1.5); }
.aide-carte__icone { width: 48px; height: 48px; border-radius: 12px; display: flex; align-items: center; justify-content: center;
  background: color-mix(in srgb, var(--primaire) 12%, var(--surface)); color: var(--primaire); margin-bottom: .3rem; }
.aide-carte__titre { font-weight: 700; font-size: 1.1rem; margin: 0; }
.aide-carte__pages { list-style: none; padding: 0; margin: .2rem 0 0; display: flex; flex-direction: column; gap: .15rem; }
.aide-carte__pages a { display: block; padding: .35rem 0; text-decoration: none; color: var(--texte); border-bottom: 1px dashed var(--bordure); }
.aide-carte__pages a::after { content: " →"; color: var(--primaire); }
.aide-carte__pages a:hover { color: var(--primaire); }
.aide-liste-resultats { list-style: none; padding: 0; margin: 0 0 1.5rem; display: grid; gap: .6rem; }
.aide-resultat { display: flex; flex-direction: column; gap: .15rem; padding: .9rem 1rem; background: var(--surface); border: 1px solid var(--bordure); border-radius: var(--rayon); text-decoration: none; color: var(--texte); }
.aide-resultat:hover { border-color: var(--primaire); }
.aide-resultat__rubrique { font-size: .8rem; color: var(--primaire); font-weight: 600; }
.aide-fil { font-size: .9rem; color: var(--texte-secondaire); margin: .2rem 0 1rem; }
.aide-fil a { color: var(--texte-secondaire); }
.aide-page { display: grid; grid-template-columns: minmax(0, 1fr) 240px; gap: 1rem; align-items: start; }
.aide-toc { position: sticky; top: 1rem; font-size: .9rem; }
.aide-toc ul { padding-left: 1rem; margin: .4rem 0 0; }
.aide-contenu { line-height: 1.6; max-width: 860px; }
.aide-rubrique { display: inline-flex; align-items: center; gap: .4rem; color: var(--primaire); font-weight: 600; font-size: .9rem; }
.aide-contenu h1 { margin: .3rem 0 1rem; }
.aide-contenu h2 { margin-top: 1.8rem; border-top: 1px solid var(--bordure); padding-top: 1.1rem; font-size: 1.25rem; }
.aide-enbref { background: var(--fond); border-radius: var(--rayon); padding: .9rem 1rem; font-size: 1.02rem; }
.aide-contenu ol { list-style: none; counter-reset: etape; padding: 0; margin: .8rem 0; display: flex; flex-direction: column; gap: .7rem; }
.aide-contenu ol > li { counter-increment: etape; position: relative; padding-left: 2.6rem; min-height: 30px; }
.aide-contenu ol > li::before { content: counter(etape); position: absolute; left: 0; top: -.05rem; width: 30px; height: 30px; border-radius: 50%;
  background: var(--primaire); color: var(--sur-primaire); display: flex; align-items: center; justify-content: center; font-weight: 700; }
.aide-contenu table { border-collapse: collapse; width: 100%; margin: .8rem 0; display: block; overflow-x: auto; }
.aide-contenu th, .aide-contenu td { border: 1px solid var(--bordure); padding: .45rem .65rem; text-align: left; vertical-align: top; }
.aide-contenu th { background: var(--fond); }
.aide-contenu blockquote { margin: 1rem 0; padding: .6rem 1rem; border-left: 4px solid var(--primaire); background: color-mix(in srgb, var(--primaire) 6%, var(--surface)); }
.aide-contenu code { background: var(--fond); padding: 0 .3rem; border-radius: 4px; }
.ui-bouton { display: inline-block; padding: .02rem .55rem; border-radius: 6px; border: 1px solid var(--bordure); background: var(--surface);
  font-weight: 600; font-size: .9em; white-space: nowrap; box-shadow: 0 1px 0 var(--bordure); line-height: 1.6; }
.ui-bouton--primaire { background: var(--primaire); color: var(--sur-primaire); border-color: var(--primaire); }
.ui-bouton--vert { background: var(--succes); color: var(--sur-succes); border-color: var(--succes); }
.ui-bouton--rouge { background: var(--erreur); color: var(--sur-erreur); border-color: var(--erreur); }
.ui-bouton--sombre { background: var(--secondaire); color: var(--sur-secondaire); border-color: var(--secondaire); }
.aide-encart { border-radius: var(--rayon); padding: .8rem 1rem; margin: 1rem 0; border-left: 5px solid var(--bordure); background: var(--fond); }
.aide-encart p { margin: 0; }
.aide-encart__titre { display: block; margin-bottom: .2rem; }
.aide-encart--astuce { border-color: var(--succes); background: color-mix(in srgb, var(--succes) 9%, var(--surface)); }
.aide-encart--attention { border-color: var(--alerte); background: color-mix(in srgb, var(--alerte) 11%, var(--surface)); }
.aide-encart--info { border-color: var(--secondaire); background: var(--fond); }
.aide-utile { margin-top: 1.8rem; padding-top: 1rem; border-top: 1px solid var(--bordure); display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; color: var(--texte-secondaire); }
.aide-suite2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 1rem 0 2rem; max-width: 860px; }
.aide-suite2__lien { display: flex; flex-direction: column; padding: .8rem 1rem; border: 1px solid var(--bordure); border-radius: var(--rayon); background: var(--surface); text-decoration: none; color: var(--texte); font-weight: 600; }
.aide-suite2__lien:hover { border-color: var(--primaire); }
.aide-suite2__lien span { font-size: .8rem; color: var(--texte-secondaire); font-weight: 400; }
.aide-suite2__lien--droite { text-align: right; }
@media (max-width: 820px) { .aide-page { grid-template-columns: 1fr; } .aide-toc { position: static; order: -1; } }
@media (max-width: 560px) { .aide-accueil h1 { font-size: 1.5rem; } .aide-suite2 { grid-template-columns: 1fr; } .aide-suite2__lien--droite { text-align: left; } }

/* Petits écrans : rien ne doit déborder sur le côté */
.bloc, fieldset { min-width: 0; }
.champ__saisie { max-width: 100%; box-sizing: border-box; }
.proposition .champ__saisie { min-width: 0; }
.niveau__form { flex-wrap: wrap; }
@media (max-width: 560px) {
  .proposition { grid-template-columns: 2rem minmax(0, 1fr); }
  .proposition .case { grid-column: 2; }
  .liste-niveaux, .niveau { width: 100%; }
  .niveau__form .champ__saisie { flex: 1 1 100%; width: auto; }
  .rattacher { display: flex; flex-wrap: wrap; margin: 0 0 .4rem; }
}
.etiquette { white-space: nowrap; }
@media (max-width: 560px) {
  /* Téléphone : menu sur une seule ligne qui défile au doigt, en-tête plus compact */
  .onglets-principaux { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .onglets-principaux::-webkit-scrollbar { display: none; }
  .onglet { flex: none; }
  .entete__haut { gap: .5rem; padding: .4rem 0; }
  .entete__compte .bouton { min-height: 38px; padding: 0 .7rem; }
  h1 { font-size: 1.4rem; }
}

.aide-remarque { display:flex; flex-direction:column; gap:.5rem; width:100%; }
.aide-remarque .champ { margin:0; }
.aide-avis-liste > li { margin-bottom:.6rem; }
.aide-remarques { margin:.3rem 0 0; padding-left:1.1rem; color:var(--texte); overflow-wrap:anywhere; }
.aide-remarques li { margin:.2rem 0; font-style:italic; }

/* Accueil */
.accueil-bandeau { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
  padding: 1.6rem 1.6rem; margin: 0 0 1.4rem; border-radius: calc(var(--rayon) * 2); border: 1px solid var(--bordure);
  background: linear-gradient(135deg, color-mix(in srgb, var(--primaire) 10%, var(--surface)), var(--surface)); }
.accueil-bandeau h1 { margin: 0 0 .2rem; font-size: 1.9rem; }
.accueil-bandeau__date { margin: 0; color: var(--primaire); font-weight: 600; font-size: .95rem; }
.accueil-bandeau__resume { margin: 0; color: var(--texte-secondaire); }
.accueil-section { margin-bottom: 1.6rem; }
.accueil-titre { font-size: 1.05rem; text-transform: uppercase; letter-spacing: .04em; color: var(--texte-secondaire); margin: 0 0 .7rem; }
.accueil-alertes { display: grid; gap: .7rem; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.accueil-alerte { display: flex; align-items: center; gap: .8rem; padding: .9rem 1rem; text-decoration: none; color: var(--texte);
  background: var(--surface); border: 1px solid var(--bordure); border-left: 4px solid var(--primaire); border-radius: var(--rayon); min-height: 44px; }
.accueil-alerte:hover { border-color: var(--primaire); }
.accueil-alerte > span:nth-child(2) { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.accueil-alerte__icone, .accueil-vide svg { color: var(--primaire); flex-shrink: 0; }
.accueil-alerte__icone { width: 40px; height: 40px; border-radius: 10px; display: flex; align-items: center; justify-content: center;
  background: color-mix(in srgb, var(--primaire) 12%, var(--surface)); }
.accueil-alerte__fleche { color: var(--primaire); font-weight: 700; }
.accueil-sessions { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.accueil-session { display: flex; flex-direction: column; gap: .6rem; padding: 1.1rem 1.2rem; background: var(--surface);
  border: 1px solid var(--bordure); border-radius: calc(var(--rayon) * 1.5); min-width: 0; }
.accueil-session__titre { font-weight: 700; font-size: 1.1rem; color: var(--texte); text-decoration: none; overflow-wrap: anywhere; }
.accueil-session__titre:hover { color: var(--primaire); }
.accueil-session__infos { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .3rem; color: var(--texte-secondaire); font-size: .95rem; }
.accueil-session__infos li { display: flex; gap: .45rem; align-items: flex-start; overflow-wrap: anywhere; }
.accueil-session__infos svg { margin-top: .2rem; flex-shrink: 0; }
.accueil-session__actions { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: auto; }
.accueil-vide { display: flex; align-items: center; gap: .7rem; padding: 1.1rem 1.2rem; color: var(--texte-secondaire);
  background: var(--surface); border: 1px dashed var(--bordure); border-radius: calc(var(--rayon) * 1.5); }
.accueil-avenir { list-style: none; margin: 0; padding: 0; background: var(--surface); border: 1px solid var(--bordure); border-radius: calc(var(--rayon) * 1.5); overflow: hidden; }
.accueil-avenir li + li { border-top: 1px solid var(--bordure); }
.accueil-avenir a { display: flex; gap: 1rem; align-items: center; padding: .7rem 1.1rem; min-height: 44px; text-decoration: none; color: var(--texte); }
.accueil-avenir a:hover { background: var(--fond); }
.accueil-avenir__date { flex: 0 0 7.5rem; font-weight: 600; color: var(--primaire); }
.accueil-avenir__nom { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.accueil-avenir__nb { white-space: nowrap; }
.accueil-acces { display: grid; gap: .7rem; grid-template-columns: repeat(auto-fit, minmax(105px, 1fr)); }
.accueil-acces a { display: flex; flex-direction: column; align-items: center; gap: .4rem; padding: 1rem .5rem; text-decoration: none;
  color: var(--texte); font-weight: 600; background: var(--surface); border: 1px solid var(--bordure); border-radius: calc(var(--rayon) * 1.5); }
.accueil-acces a svg { color: var(--primaire); }
.accueil-acces a:hover { border-color: var(--primaire); }
@media (max-width: 560px) {
  .accueil-bandeau { padding: 1.1rem; }
  .accueil-bandeau h1 { font-size: 1.5rem; }
  .accueil-bandeau .bouton { width: 100%; text-align: center; }
  .accueil-sessions, .accueil-alertes { grid-template-columns: 1fr; }
  .accueil-avenir a { flex-wrap: wrap; gap: .1rem .8rem; }
  .accueil-avenir__date { flex-basis: auto; }
  .accueil-avenir__nom { flex-basis: 100%; order: 3; }
  .accueil-acces { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 561px) and (max-width: 1000px) { .accueil-acces { grid-template-columns: repeat(4, 1fr); } }

.case-restriction { display: flex; gap: .6rem; align-items: flex-start; margin: 0 0 .8rem; padding: .7rem .9rem; border: 1px solid var(--bordure); border-radius: var(--rayon); background: var(--fond); }
.case-restriction input { width: 22px; height: 22px; margin-top: .1rem; flex-shrink: 0; }
.case-restriction > span { display: flex; flex-direction: column; gap: .15rem; }

/* Tableaux en fiches empilées sur téléphone (ajouter data-libelle aux cellules) */
@media (max-width: 560px) {
  .tableau--fiches, .tableau--fiches tbody, .tableau--fiches tr, .tableau--fiches td { display: block; width: 100%; }
  .tableau--fiches thead { display: none; }
  .tableau--fiches tr { border: 1px solid var(--bordure); border-radius: var(--rayon); padding: .7rem .9rem; margin-bottom: .7rem; background: var(--surface); }
  .tableau--fiches td { border: 0; padding: .2rem 0; overflow-wrap: anywhere; }
  .tableau--fiches td[data-libelle] { position: relative; padding-left: 6.1rem; min-height: 1.6rem; }
  .tableau--fiches td[data-libelle]::before { content: attr(data-libelle); position: absolute; left: 0; top: .25rem; width: 5.6rem; color: var(--texte-secondaire); font-size: .9rem; }
  .tableau--fiches .fiche__titre { font-weight: 600; font-size: 1.05rem; padding-bottom: .35rem; }
  .tableau--fiches .actions-ligne { padding-top: .5rem; }
  .tableau--fiches .actions-ligne .bouton { width: 100%; }
  .tableau-defilant:has(.tableau--fiches) { overflow-x: visible; }
}

.seulement-telephone { display: none; }
@media (max-width: 560px) {
  .seulement-telephone { display: inline; }
  .tableau--fiches .cache-telephone { display: none; }
  .tableau--stagiaires tr { display: grid; grid-template-columns: auto 1fr; column-gap: .8rem; align-items: start; }
  .tableau--stagiaires td { grid-column: 2; }
  .tableau--stagiaires td.vignette-cellule { grid-column: 1; grid-row: 1 / span 3; width: auto; padding: 0; }
}

@media (max-width: 560px) {
  .tableau--titre-d-abord tr { display: flex; flex-direction: column; }
  .tableau--titre-d-abord .fiche__titre { order: -1; }
  .tableau--fiches .actions-ligne { display: flex; flex-wrap: wrap; gap: .4rem; }
  .tableau--fiches .actions-ligne .en-ligne { flex: 1 1 auto; }
  .tableau--fiches .actions-ligne .annuler-lot { flex-basis: 100%; }
  .tableau--fiches .fiche__titre .etiquette { margin-top: .2rem; }
}

@media (max-width: 560px) {
  .tableau--fiches .fiche__plein { padding: .4rem 0; }
  .tableau--fiches .fiche__plein form, .tableau--fiches .fiche__plein .formulaire-ligne { display: flex; flex-direction: column; align-items: stretch; gap: .5rem; width: 100%; }
  .tableau--fiches .fiche__plein .champ__saisie { width: 100%; max-width: none; min-width: 0; }
  .tableau--fiches .fiche__plein .champ__saisie--court { width: 6rem; }
  .tableau--fiches .fiche__plein .bouton { width: 100%; }
  .tableau--fiches .fiche__plein .lien-secondaire { display: inline-block; margin-top: .5rem; }
}
@media (max-width: 560px) {
  .tableau--fiches tr.ligne--a-traiter { border-left: 4px solid var(--primaire); }
  .tableau--fiches tr.ligne--a-traiter td { background: transparent; }
  .tableau--fiches tr.ligne--inactive { background: color-mix(in srgb, var(--texte-secondaire) 14%, var(--surface)); }
  .tableau--fiches tr.ligne--inactive td { background: transparent; }
}
@media (max-width: 560px) {
  .tableau--fiches .actions-ligne { white-space: normal; text-align: left; }
  .tableau--fiches .actions-ligne .bouton { margin-left: 0; max-width: 100%; }
  .tableau--fiches .actions-ligne > a.bouton { flex: 1 1 100%; display: flex; align-items: center; justify-content: center; }
}

/* Sous-onglets d'une page (ex. Catalogue) */
.sous-onglets { display: flex; gap: .3rem; border-bottom: 2px solid var(--bordure); margin: 0 0 1.2rem; overflow-x: auto; scrollbar-width: none; }
.sous-onglets::-webkit-scrollbar { display: none; }
.sous-onglet { display: inline-flex; align-items: center; gap: .4rem; min-height: 44px; padding: 0 1rem; margin-bottom: -2px; white-space: nowrap;
  text-decoration: none; color: var(--texte-secondaire); font-weight: 600; border-bottom: 3px solid transparent; }
.sous-onglet:hover { color: var(--texte); }
.sous-onglet--actif { color: var(--primaire); border-bottom-color: var(--primaire); }
.sous-onglet__nb { font-size: .8rem; padding: 0 .45rem; border-radius: 999px; background: var(--fond); border: 1px solid var(--bordure); color: var(--texte-secondaire); }
@media (max-width: 560px) { .sous-onglet { padding: 0 .7rem; font-size: .95rem; } }
@media (max-width: 560px) { .cache-telephone { display: none; } .sous-onglet { padding: 0 .6rem; } }
@media (max-width: 560px) {
  .tableau--fiches td.fiche__empile { padding-left: 0; padding-top: .4rem; }
  .tableau--fiches td.fiche__empile::before { position: static; display: block; width: auto; margin-bottom: .15rem; font-weight: 600; }
}
@media (max-width: 560px) {
  .tableau--fiches .actions-dendreo { flex-direction: column; align-items: stretch; }
  .tableau--fiches .actions-dendreo form, .tableau--fiches .actions-dendreo .rattacher { display: flex; flex-direction: column; gap: .4rem; width: 100%; }
  .tableau--fiches .actions-dendreo .champ__saisie { width: 100%; max-width: none; }
  .tableau--fiches .actions-dendreo .bouton { width: 100%; }
  .tableau--fiches .actions .en-ligne { flex: 1 1 auto; }
  .tableau--fiches .actions .bouton { width: 100%; }
  .tableau--fiches td[data-libelle="Rôle"] .champ__saisie { width: 100%; }
}
.actions-dendreo { white-space: normal; min-width: 16rem; }
.actions-dendreo form { display: flex; flex-wrap: wrap; gap: .4rem; justify-content: flex-end; align-items: center; margin: .2rem 0; }
.actions-dendreo .bouton { margin-left: 0; }
.tableau td[data-libelle="E-mail"] { overflow-wrap: anywhere; }
@media (max-width: 560px) { .actions-dendreo { min-width: 0; } }
/* Liste des sessions : sur PC / tablette, les actions d'une ligne sont dans un menu « Actions ▾ » ; sur
   téléphone (fiches), les boutons restent visibles. */
.actions-telephone { display: none; }
.menu-actions { position: relative; display: inline-block; text-align: left; }
.menu-actions > summary { list-style: none; cursor: pointer; white-space: nowrap; }
.menu-actions > summary::-webkit-details-marker { display: none; }
.menu-actions__liste { position: absolute; right: 0; top: calc(100% + .3rem); z-index: 20; min-width: 12rem; padding: .4rem;
  display: flex; flex-direction: column; gap: .3rem; background: var(--surface); border: 1px solid var(--bordure);
  border-radius: var(--rayon); box-shadow: 0 6px 20px color-mix(in srgb, var(--texte) 18%, transparent); }
.menu-actions__liste .en-ligne, .menu-actions__liste .bouton { display: block; width: 100%; margin: 0; text-align: left; }
@media (max-width: 560px) {
  .menu-actions { display: none; }
  .actions-telephone { display: flex; flex-wrap: wrap; gap: .4rem; width: 100%; }
  .actions-telephone .en-ligne { flex: 1 1 auto; }
  .actions-telephone > a.bouton { flex: 1 1 100%; display: flex; align-items: center; justify-content: center; }
}
.tableau-defilant:has(.menu-actions) { overflow: visible; }

/* Saisie d'un résultat à la main */
.choix-resultat { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; padding: .6rem 0; border-bottom: 1px solid var(--bordure); }
.choix-resultat__libelle { flex: 1 1 14rem; font-weight: 600; }
.choix-resultat__options { display: flex; flex-wrap: wrap; gap: .4rem; }
.choix-resultat__option { position: relative; }
.choix-resultat__option input { position: absolute; opacity: 0; inset: 0; }
.choix-resultat__option span { display: inline-flex; align-items: center; min-height: 44px; padding: 0 .9rem; border: 1px solid var(--bordure);
  border-radius: var(--rayon); background: var(--surface); cursor: pointer; font-weight: 600; }
.choix-resultat__option input:focus-visible + span { outline: 2px solid var(--primaire); outline-offset: 2px; }
.choix-resultat__option--acquis input:checked + span { background: var(--succes); border-color: var(--succes); color: var(--sur-succes); }
.choix-resultat__option--non_acquis input:checked + span { background: var(--erreur); border-color: var(--erreur); color: var(--sur-erreur); }
.choix-resultat__option--refuse input:checked + span, .choix-resultat__option--non_passe input:checked + span { background: var(--alerte); border-color: var(--alerte); color: var(--sur-alerte); }
fieldset:disabled .choix-resultat__option span { cursor: default; opacity: .85; }
.justificatifs { list-style: none; padding: 0; margin: 0 0 1rem; }
.justificatifs li { display: flex; flex-wrap: wrap; gap: .3rem .8rem; align-items: baseline; padding: .45rem 0; border-bottom: 1px dashed var(--bordure); overflow-wrap: anywhere; }
.saisie-resultat fieldset.bloc { min-width: 0; }
.champ__lecture { margin: 0; min-height: 44px; display: flex; align-items: center; padding: 0 .2rem; font-weight: 600; overflow-wrap: anywhere; }

/* Documents de la session */
.documents { list-style: none; margin: 0; padding: 0; display: grid; gap: .8rem; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.document { display: flex; gap: .7rem; align-items: flex-start; padding: .6rem; border: 1px solid var(--bordure); border-radius: var(--rayon); background: var(--surface); min-width: 0; }
.document__apercu { flex: 0 0 72px; width: 72px; height: 72px; border-radius: var(--rayon); overflow: hidden; display: flex; align-items: center; justify-content: center; background: var(--fond); border: 1px solid var(--bordure); text-decoration: none; }
.document__apercu img { width: 100%; height: 100%; object-fit: cover; }
.document__pdf { font-weight: 700; color: var(--primaire); }
.document__infos { display: flex; flex-direction: column; gap: .2rem; min-width: 0; overflow-wrap: anywhere; align-items: flex-start; }
.document__nom { font-weight: 600; }
.document__retrait summary { cursor: pointer; color: var(--primaire); text-decoration: underline; min-height: 32px; display: flex; align-items: center; }
.document__retrait .formulaire { margin-top: .4rem; }
.actions--session { margin: 0 0 1rem; gap: .6rem; }
.form-documents > .champ { margin-top: .6rem; }
.form-documents > .bouton { margin-top: .4rem; }

/* Spécialités */
.choix-regle { display: flex; flex-direction: column; gap: .4rem; align-items: flex-start; }
.liste-specialites { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: .5rem; }
.specialite__form { display: flex; flex-wrap: wrap; gap: .4rem .6rem; align-items: center; }
.specialite__form .champ__saisie:not(.champ__saisie--court) { flex: 1 1 14rem; min-width: 0; }
.specialite__code { font-weight: 700; min-width: 4.5rem; }
.specialite__parcours { display: flex; flex-wrap: wrap; gap: .2rem .8rem; }
.specialite--inactive { opacity: .6; }
.specialites-stagiaire summary { cursor: pointer; list-style: none; display: inline-flex; flex-wrap: wrap; gap: .25rem; align-items: center; min-height: 32px; }
.specialites-stagiaire summary::-webkit-details-marker { display: none; }
.specialites-stagiaire[open] summary { margin-bottom: .4rem; }
.specialites-stagiaire__form { display: flex; flex-direction: column; gap: .4rem; align-items: flex-start; padding: .5rem; border: 1px solid var(--bordure); border-radius: var(--rayon); background: var(--surface); }
.etiquette--modifie { border-color: var(--primaire); color: var(--primaire); }
.specialites-session { display: flex; flex-wrap: wrap; gap: .2rem .9rem; align-items: center; }
.lien-secondaire + .lien-secondaire { margin-left: 1rem; }
.specialite { padding-bottom: .5rem; border-bottom: 1px dashed var(--bordure); }
.tableau tr:has(+ .ligne-specialites) > td { border-bottom: 0; padding-bottom: .2rem; }
.ligne-specialites > td { padding-top: 0; }
.ligne-specialites__contenu { display: flex; flex-wrap: wrap; gap: .3rem .5rem; align-items: center; }
.specialites-stagiaire__choix { display: flex; flex-wrap: wrap; gap: .2rem 1rem; }
.lien-modifier { color: var(--primaire); text-decoration: underline; font-size: .9rem; }
.specialites-stagiaire[open] { flex-basis: 100%; }
@media (max-width: 820px) { .ligne-specialites > td:first-child { display: none; } .ligne-specialites__contenu { position: sticky; left: .5rem; max-width: calc(100vw - 4.5rem); } }
.etiquette--icone { display: inline-flex; align-items: center; gap: .25rem; }
.etiquette--icone svg { flex: none; }
.col-case { width: 2.5rem; }
.col-case input { width: 1.2rem; height: 1.2rem; }
.suppression-lot { margin-top: 1rem; padding: .8rem; border: 1px solid var(--erreur); border-radius: var(--rayon); }
.suppression-lot__compte { margin: 0; align-self: center; }
.aide-avis-liste--cases, .aide-avis-liste--cases .aide-remarques { list-style: none; padding-left: 0; }
.aide-avis-liste--cases .aide-remarques { margin-left: 1.8rem; }
.aide-avis-liste--cases > li { margin-bottom: .6rem; }

/* --- Cartes éditées (format CR80) --- */
.boutons-carte { display: flex; flex-wrap: wrap; gap: .5rem; }
.case--texte { align-items: flex-start; min-height: 44px; margin: .5rem 0; }
.case--texte input { flex: none; margin-top: .15rem; }
.logo-carte { padding: .6rem; border: 1px dashed var(--bordure); border-radius: var(--rayon); background: var(--surface); max-width: 320px; }
.logo-carte img { display: block; max-width: 100%; max-height: 90px; }
.fiche-carte { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1rem; align-items: start; }
.fiche-carte .bloc { margin: 0; }
.carte-apercu { margin: 0 0 1rem; }
.carte-apercu img { display: block; width: 100%; max-width: 520px; height: auto; border: 1px solid var(--bordure); border-radius: var(--rayon); background: var(--surface); }
.infos { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: .3rem 1rem; margin: 0 0 1rem; }
.infos dt { color: var(--texte-secondaire); }
.infos dd { margin: 0; overflow-wrap: anywhere; }
.verification { max-width: 640px; margin: 0 auto; }
.verification__etat { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; font-size: 1.05rem; }
.depliant > summary { cursor: pointer; color: var(--primaire); min-height: 44px; display: flex; align-items: center; }
@media (max-width: 820px) { .fiche-carte { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .infos { grid-template-columns: 1fr; } .infos dd { margin-bottom: .4rem; } }

/* Catalogue › Groupes Dendreo : réglage par formation */
.reglage-groupe { display: flex; flex-direction: column; gap: .5rem; align-items: flex-start; }
.reglage-groupe__parcours { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; }
.reglage-groupe .actions { display: flex; gap: .5rem; flex-wrap: wrap; }
.reglage-groupe p { margin: 0; }
.reglage-groupe__ajout { margin-top: 1rem; }
.reglage-groupe__ajout summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; color: var(--primaire); font-weight: 600; }
