/* Espace apprenante (/espace/) — complète site.css, mêmes variables de couleur (thème clair et sombre). */
.espace{padding-block:clamp(32px,6vw,64px)}
.espace .wrap{max-width:1080px}
.espace h1{font-size:clamp(30px,4vw,42px);margin:6px 0 24px}
.espace h1 small{font-family:var(--sans);font-size:16px}
.espace h2{font-size:22px;margin-bottom:12px}
.espace h3{font-family:var(--sans);font-size:14px;letter-spacing:.08em;text-transform:uppercase;margin:20px 0 8px;color:var(--ink-2)}
.espace .eyebrow a{color:inherit}
.espace p+p{margin-top:10px}
.espace a{color:var(--accent)}
.espace .btn{color:var(--btn-ink)}
.espace .btn.ghost{color:var(--ink)}

.espace-nav{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin-bottom:28px;padding:8px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.espace-nav a{padding:9px 14px;border-radius:10px;text-decoration:none;color:var(--ink);font-weight:500;font-size:15px}
.espace-nav a[aria-current="page"]{background:var(--surface-2);color:var(--accent)}
.espace-deco{margin:0 0 0 auto;display:block}
.espace-deco button,.lien{background:none;border:0;padding:9px 14px;font:500 15px var(--sans);color:var(--ink-2);cursor:pointer;text-decoration:underline}
.lien{padding:4px 0;font-size:14px;color:var(--accent)}

.espace-flash{margin-bottom:20px;padding:14px 18px;border-radius:12px;border-left:4px solid var(--accent);background:var(--surface)}
.espace-flash-succes{border-left-color:#2E7D4F}
.espace-flash-erreur{border-left-color:var(--danger)}

.espace-carte{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:clamp(20px,4vw,32px);margin-bottom:20px}
.espace-etroit{max-width:520px;margin-inline:auto}
.espace-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}
.espace-grille-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.espace-grille .espace-carte{margin-bottom:0}
@media (max-width:420px){.espace-grille-2{grid-template-columns:1fr}}

.espace-form{margin-top:8px}
.espace-form input,.espace-form select{font-size:16px}
.aide{display:block;font-size:13px;font-weight:400;letter-spacing:0;text-transform:none;color:var(--ink-2)}
.espace-liens{margin-top:18px;font-size:15px}

.espace-chiffres{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:24px}
.espace-chiffres>*{display:block;padding:18px;border-radius:14px;background:var(--surface);border:1px solid var(--line);text-decoration:none;color:var(--ink)}
.espace-chiffres b{display:block;font-family:var(--serif);font-weight:400;font-size:34px;color:var(--accent);line-height:1.1}
.espace-chiffres span{font-size:14px;color:var(--ink-2)}

.espace-recherche{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto;gap:12px;align-items:end;margin-bottom:20px}
@media (max-width:700px){.espace-recherche{grid-template-columns:1fr}}

.espace-table{overflow-x:auto;margin-bottom:20px}
.espace-table table{width:100%;border-collapse:collapse;font-size:15px;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.espace-table th,.espace-table td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.espace-table th{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);background:var(--surface-2)}
.espace-table td{overflow-wrap:anywhere}
@media (max-width:760px){
  .espace-table table,.espace-table tbody,.espace-table tr,.espace-table td{display:block;width:100%}
  .espace-table thead{display:none}
  .espace-table tr{border-bottom:1px solid var(--line);padding:8px 0}
  .espace-table td{border:0;padding:4px 14px;display:grid;grid-template-columns:120px 1fr;gap:10px}
  .espace-table td::before{content:attr(data-label);font-size:12px;color:var(--ink-2)}
}
.statut{display:inline-block;padding:3px 10px;border-radius:999px;font-size:13px;font-weight:500;white-space:nowrap}
.statut-ok{background:#E3F4EA;color:#1F5C3A}
.statut-off{background:#F4E1E1;color:#8A1C1C}
.statut-attente{background:#FBF0D9;color:#7A5300}
.espace-pages{display:flex;flex-wrap:wrap;gap:6px}
.espace-pages a{padding:6px 12px;border:1px solid var(--line);border-radius:8px;text-decoration:none}
.espace-pages a[aria-current="page"]{background:var(--accent);color:var(--btn-ink);border-color:var(--accent)}

.espace-dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 16px;margin:0}   /* 5/11/2026 : la colonne des valeurs peut rétrécir (plus de défilement horizontal à 390 px) */
.espace-dl dt{color:var(--ink-2);font-size:14px}
.espace-dl dd{margin:0;overflow-wrap:anywhere}
.espace-actions{display:flex;flex-wrap:wrap;gap:10px;margin:0}
.espace-journal{list-style:none;margin:0;padding:0;font-size:14px;color:var(--ink-2);display:grid;gap:6px}
.espace-menu{margin-top:8px}
/* Les sections de l'espace n'ont pas l'espacement vertical des sections du site ; champs alignés en haut. */
.espace section:not(.espace-carte){padding-block:0}
.espace-form{align-items:start}
/* Phase 2 : dossiers, tableau de bord Qualiopi, questionnaires */
:root{--vert:#1F7A45;--orange:#B45F06;--rouge:#B3261E;--gris:#8A7A82}
.pastille{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;color:#fff;white-space:nowrap}
.pastille-vert{background:var(--vert)}.pastille-orange{background:var(--orange)}.pastille-rouge{background:var(--rouge)}.pastille-gris{background:var(--gris)}.pastille-bleu{background:#2f5f9e}
.point{display:inline-block;width:14px;height:14px;border-radius:50%}
.point-vert{background:var(--vert)}.point-orange{background:var(--orange)}.point-rouge{background:var(--rouge)}.point-gris{background:transparent;box-shadow:inset 0 0 0 2px var(--gris)}
.legende{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.qualiopi td{text-align:center}.qualiopi td:nth-child(-n+3){text-align:left}
@media (max-width:760px){.qualiopi td{text-align:left}}
.etapes-dossier{list-style:none;margin:0 0 24px;padding:0;display:grid;gap:12px}
.etape{background:var(--surface);border:1px solid var(--line);border-left:6px solid var(--gris);border-radius:14px;padding:16px 18px}
.etape-vert{border-left-color:var(--vert)}.etape-orange{border-left-color:var(--orange)}.etape-rouge{border-left-color:var(--rouge)}
.etape-tete{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.etape .espace-journal{margin:10px 0}
.dossier-form{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line)}
.derogation{margin-top:10px}.derogation summary{cursor:pointer;color:var(--orange);font-size:14px}
.choix-cases{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px 16px}.choix-cases legend{font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;margin-bottom:6px}
.espace-onglets{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}
.espace-onglets a{padding:8px 14px;border:1px solid var(--line);border-radius:999px;text-decoration:none;color:var(--ink);font-size:14px}
.espace-onglets a[aria-current="page"]{background:var(--accent);border-color:var(--accent);color:var(--btn-ink)}
.demande h2{font-size:20px}
.espace-afaire{list-style:none;padding:0;margin:0 0 8px;display:flex;flex-wrap:wrap;gap:10px}
.parcours-apprenante{margin:0 0 8px;padding-left:20px;display:grid;gap:4px;color:var(--ink-2)}
.parcours-apprenante .fait{color:var(--vert)}.parcours-apprenante .encours{color:var(--ink);font-weight:600}
.question{border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:0}
.question legend{font-weight:600;padding:0 6px}
.question[aria-invalid="true"]{border-color:var(--danger)}
.question .consent{font-size:15px;margin:6px 0;flex-wrap:nowrap}
.question .consent span{flex:1}   /* libellé long à côté du bouton, pas dessous (390 px) */
.echelle{display:flex;flex-wrap:wrap;gap:8px}
.echelle label{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:14px;letter-spacing:0;text-transform:none}
.echelle input{width:auto}
.echelle-bornes{display:flex;justify-content:space-between}
/* Phase 3 : parcours e-learning, cours, quiz, travaux, corrections */
.progression{height:10px;border-radius:999px;background:var(--surface-2);overflow:hidden;margin:8px 0}
.progression span{display:block;height:100%;background:var(--accent);border-radius:999px;min-width:2px}
.progression.petite{height:6px;width:100px;margin:6px 0 4px}
.parcours-tete p{margin:6px 0 0}
.espace-afaire-boutons{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.module h2{margin-bottom:4px}
.sequences{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:4px}
.seq{display:grid;grid-template-columns:28px 1fr;gap:2px 8px;padding:10px 12px;border-radius:12px;align-items:baseline}
.seq:hover{background:var(--surface-2)}
.seq small{grid-column:2;color:var(--ink-2);font-size:13px}
.seq-icone{grid-row:span 2;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:13px;border:2px solid var(--line);color:var(--ink-2)}
.seq-termine .seq-icone{background:var(--vert);border-color:var(--vert);color:#fff}
.seq-a_corriger .seq-icone,.seq-a_refaire .seq-icone,.seq-echoue .seq-icone{border-color:var(--orange);color:var(--orange)}
.seq-verrouille{opacity:.6}
.seq-verrouille .seq-icone{border:0;font-size:14px}
.seq a{font-weight:500;text-decoration:none}
.seq a:hover{text-decoration:underline}
/* Cours (Markdown rendu) */
.cours{font-size:17px;line-height:1.7;overflow-wrap:anywhere}
.cours>*+*{margin-top:14px}
.cours h1,.cours h2{font-family:var(--serif);font-weight:400;font-size:26px;margin:28px 0 8px;text-transform:none;letter-spacing:0;color:var(--ink)}
.cours h3,.cours h4{font-family:var(--sans);font-size:18px;font-weight:600;margin:22px 0 6px;text-transform:none;letter-spacing:0;color:var(--ink)}
.cours ul,.cours ol{padding-left:24px}
.cours li+li{margin-top:6px}
.cours blockquote{margin:18px 0;padding:14px 18px;border-left:4px solid var(--accent);background:var(--surface-2);border-radius:0 12px 12px 0}
.cours blockquote p{margin:0}
.cours table{width:100%;border-collapse:collapse;font-size:15px}
/* Tableau qui défile seul ; ombres sur les bords tant qu'il reste du contenu à faire glisser (fonds « local » / « scroll ») */
.cours .tableau{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:4px;
  background:linear-gradient(to right,var(--surface) 30%,transparent) left/40px 100% no-repeat local,linear-gradient(to left,var(--surface) 30%,transparent) right/40px 100% no-repeat local,
    radial-gradient(farthest-side at 0 50%,rgba(30,11,22,.3),transparent) left/18px 100% no-repeat scroll,radial-gradient(farthest-side at 100% 50%,rgba(30,11,22,.3),transparent) right/18px 100% no-repeat scroll}
.cours .tableau:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.cours .tableau .insecable{white-space:nowrap}
.cours .tableau th,.cours .tableau td{overflow-wrap:normal;word-break:normal;hyphens:manual;min-width:7.5em}
.cours th,.cours td{padding:10px 12px;border:1px solid var(--line);text-align:left;vertical-align:top}
.cours th{background:var(--surface-2)}
.cours code{font-size:.9em;background:var(--surface-2);padding:1px 6px;border-radius:6px}
.cours-media{margin:20px 0}
.cours-media video,.cours-media img{display:block;width:100%;max-height:70vh;border-radius:14px;background:#000;object-fit:contain}
.cours-media img{background:var(--surface-2)}
.cours-media audio{width:100%}
.cours-media figcaption{font-size:14px;color:var(--ink-2);margin-top:6px}
.cours-doc{margin:16px 0}
.seq-actions{margin:20px 0;display:block}
.seq-fait{margin:20px 0;color:var(--vert);font-weight:600}
.seq-nav{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;margin-top:28px;font-size:15px}
.seq-nav>:last-child{text-align:right}
@media (max-width:600px){.seq-nav{grid-template-columns:1fr;text-align:center}.seq-nav>:last-child{text-align:center}}
/* Quiz */
.quiz-form .question{border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin:0}
.quiz-form legend{font-weight:500;padding:0 6px;font-size:16px}
.quiz-form .consent{font-size:15px;color:var(--ink);padding:6px 0}
.quiz-resultat{padding:14px 18px;border-radius:12px;margin:8px 0 16px;border-left:4px solid var(--orange);background:var(--surface-2)}
.quiz-resultat.reussi{border-left-color:var(--vert)}
.quiz-correction{padding-left:22px;display:grid;gap:14px}
.quiz-correction li{padding:12px 14px;border-radius:12px;border:1px solid var(--line)}
.quiz-correction li.juste{border-left:4px solid var(--vert)}
.quiz-correction li.faux{border-left:4px solid var(--rouge)}
.quiz-correction p{margin:4px 0}
.explication{background:var(--surface-2);border-radius:10px;padding:10px 14px;font-size:15px}
.quiz-apercu li{margin-bottom:14px}
.quiz-apercu .juste{color:var(--vert);font-weight:600}
.quiz-historique{margin-top:16px;font-size:15px}
/* Travaux et corrections */
.grille-table{width:100%;border-collapse:collapse;font-size:15px;margin:10px 0}
.grille-table th,.grille-table td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.grille-table td:last-child,.grille-table th:last-child{text-align:right;white-space:nowrap}
.grille-table tfoot td{font-weight:600}
.rendu{border-top:1px solid var(--line);margin-top:20px;padding-top:12px}
.rendu-fichiers{list-style:none;padding:0;margin:10px 0;display:grid;gap:6px;font-size:15px}
.rendu-fichiers li{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center}
form.inline{display:inline;margin:0}
.lien-bouton{background:none;border:0;padding:0;font:inherit;font-size:14px;color:var(--accent);text-decoration:underline;cursor:pointer}
.rendu-galerie{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin:16px 0}
.rendu-galerie figure{margin:0;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:10px}
.rendu-galerie img,.rendu-galerie video{display:block;width:100%;max-height:320px;object-fit:contain;border-radius:10px;background:var(--surface-2)}
.rendu-galerie audio{display:block;width:100%}
.rendu-galerie figcaption{font-size:13px;color:var(--ink-2);margin-top:6px;overflow-wrap:anywhere}
.correction-form .critere{border:1px solid var(--line);border-radius:14px;padding:12px 16px;margin:0;display:grid;gap:8px}
.correction-form legend{font-weight:500;padding:0 6px}
.correction-form .consent{font-size:15px;color:var(--ink)}
.inline-form{display:flex;flex-wrap:wrap;gap:8px;align-items:end;margin-top:8px}
.inline-form label{flex:1 1 180px}
/* Choix des quiz et des grilles : le bouton reste à gauche du libellé, même long */
.quiz-form .consent,.correction-form .consent{flex-wrap:nowrap;align-items:flex-start}
.quiz-form .consent span,.correction-form .consent span{flex:1}
/* Espace : pas de barre « Appeler / S'inscrire » en bas d'écran (elle masquait les boutons des cours sur mobile) */
main.espace~.callbar{display:none}
.indicateur>h2{margin-top:32px}
.quiz-correction li.declarative{border-left:4px solid var(--gris)}
/* Vidéos : verticales (9:16) centrées et limitées en hauteur ; vidéo de bienvenue en haut du tableau de bord */
.cours-media-portrait{text-align:center}
.cours-media-portrait video{width:auto;max-width:100%;height:auto;max-height:min(70vh,640px);margin-inline:auto}
.bienvenue details>summary{cursor:pointer;font-weight:600}
.bienvenue .cours-media{margin:14px 0 0}
.seq-condition{margin-top:8px;font-size:14px}
.btn[disabled]{opacity:.5;cursor:not-allowed}
/* Rythme du parcours : calendrier des modules, temps minimum */
.module-calendrier{display:inline-block;margin:4px 0 10px;padding:4px 12px;border-radius:999px;background:var(--surface-2);font-size:14px}
.module-calendrier::before{content:"\1F4C5\00A0"}
.seq-temps strong{font-variant-numeric:tabular-nums}
.session-calendrier{border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px 16px}
.session-calendrier legend{font-weight:600;padding:0 6px}.session-calendrier>p{grid-column:1/-1;margin:0;font-size:14px}
.saisie-jours{display:flex;align-items:center;gap:6px;white-space:nowrap}.saisie-jours input{width:90px}
.bienvenue-lien{margin:-8px 0 24px}
/* En-tête et pied de page propres à l'espace (sans liens commerciaux) */
.esp-top{position:sticky;top:0;z-index:30;background:var(--bg);border-bottom:1px solid var(--line)}
.esp-top .wrap{display:flex;align-items:center;justify-content:space-between;gap:0 16px;min-height:68px;flex-wrap:wrap}
.esp-top .logo{line-height:68px}   /* même hauteur de ligne menu ouvert ou fermé */
.esp-equipe .wrap{max-width:1280px}   /* menu de l'équipe (8 liens) sur une ligne dès 1 280 px */
.esp-menu{display:flex;align-items:center;flex-wrap:wrap;gap:4px 6px}
.esp-menu a{padding:8px 10px;border-radius:10px;text-decoration:none;color:var(--ink);font-weight:500;font-size:14.5px;white-space:nowrap}
.esp-menu a:hover{color:var(--accent)}
.esp-menu a[aria-current="page"]{background:var(--surface-2);color:var(--accent)}
.esp-moi{display:flex;align-items:center;gap:4px;margin-left:8px;padding-left:12px;border-left:1px solid var(--line)}
.esp-moi a{font-weight:600}
.esp-moi form{display:block;margin:0}
.esp-moi button{background:none;border:0;padding:8px 10px;font:500 14px var(--sans);color:var(--ink-2);cursor:pointer;text-decoration:underline}
.esp-burger{display:none}
@media (max-width:919px){
  .esp-burger{display:inline-flex}
  .esp-menu{display:none;flex-basis:100%;flex-direction:column;align-items:stretch;padding:4px 0 14px}
  .esp-menu.ouvert{display:flex}
  .esp-menu a{padding:12px 10px;font-size:16px}
  .esp-moi{margin:8px 0 0;padding:10px 0 0;border-left:0;border-top:1px solid var(--line);justify-content:space-between}
}
.esp-pied{border-top:1px solid var(--line);padding-block:28px 36px;font-size:13px;color:var(--ink-2)}
.esp-pied nav{display:flex;flex-wrap:wrap;gap:6px 20px;margin-bottom:12px}
.esp-pied a{display:inline;margin:0;color:var(--ink-2)}
.esp-pied a:hover{color:var(--accent)}
.esp-pied p{margin:6px 0 0;max-width:none}
/* Séquence : sommaire du parcours à gauche (ordinateur) ou derrière le bouton « Sommaire » (mobile), avancement en haut */
.espace-large .wrap,.esp-large .wrap{max-width:1320px}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.seq-grille{display:grid;grid-template-columns:280px minmax(0,1fr);grid-template-areas:"sommaire tete" "sommaire contenu";gap:0 40px;align-items:start}
.seq-tete{grid-area:tete;display:flex;align-items:center;gap:14px;margin-bottom:18px}
.seq-avancement{flex:1}
.seq-avancement p{margin:0;font-size:14px;color:var(--ink-2)}
.sommaire-bouton{display:none}
.seq-contenu{grid-area:contenu;min-width:0}
.sommaire{grid-area:sommaire;position:sticky;top:calc(var(--esp-haut,69px) + 15px);max-height:calc(100vh - var(--esp-haut,69px) - 31px);overflow:auto;padding:4px 6px 16px 0;font-size:14px}
.sommaire-titre{margin:0 0 10px;font-weight:600}
.sommaire-titre a{text-decoration:none;color:var(--ink)}
.sommaire-module{border-bottom:1px solid var(--line);padding:6px 0}
.sommaire-module summary{cursor:pointer;display:flex;justify-content:space-between;gap:8px;padding:8px 4px;font-weight:600;line-height:1.35}
.sommaire-module summary small{font-weight:400;color:var(--ink-2);white-space:nowrap}
.sommaire-module ol{list-style:none;margin:0 0 8px;padding:0}
.som-seq{display:grid;grid-template-columns:22px 1fr;gap:8px;align-items:start;padding:6px 6px;border-radius:10px;line-height:1.35}
.som-seq a{text-decoration:none;color:var(--ink)}
.som-seq a:hover{color:var(--accent)}
.som-icone{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:11px;border:2px solid var(--line);color:var(--ink-2);margin-top:1px}
.som-termine .som-icone{background:var(--vert);border-color:var(--vert);color:#fff}
.som-a_corriger .som-icone,.som-a_refaire .som-icone,.som-echoue .som-icone{border-color:var(--orange);color:var(--orange)}
.som-verrouille{color:var(--ink-2)}
.som-verrouille .som-icone{border:0;font-size:12px}
.som-ici{background:var(--surface-2)}
.som-ici a{color:var(--accent);font-weight:600}
.seq-nav{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-top:28px;flex-wrap:wrap}
.seq-nav-fermee{display:grid;justify-items:end;gap:6px;text-align:right}
.seq-nav-fermee .btn{opacity:.45;cursor:not-allowed;box-shadow:none}
.seq-nav-fermee small{font-size:13px;color:var(--ink-2)}
.cours-media video{max-width:900px;margin-inline:auto}
.cours-media:has(> video) figcaption{max-width:900px;margin-inline:auto}
/* Réponses repliables des cas pratiques (<details> du cours) et schémas */
.cours details.cours-reponse{margin:12px 0 20px;padding:0;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.cours details.cours-reponse>summary{display:flex;align-items:center;gap:8px;min-height:44px;padding:10px 16px;font:600 15px var(--sans);color:var(--accent);cursor:pointer;list-style:none;justify-content:flex-start}
.cours details.cours-reponse>summary::-webkit-details-marker{display:none}
.cours details.cours-reponse>summary::after{content:"+";margin-left:auto;font-size:20px;line-height:1}
.cours details.cours-reponse[open]>summary::after{content:"–"}
.cours details.cours-reponse[open]>summary{border-bottom:1px solid var(--line)}
.cours details.cours-reponse>:not(summary){margin-inline:16px}
.cours details.cours-reponse>:not(summary):last-child{margin-bottom:14px}
.cours details.cours-reponse p{max-width:none;color:var(--ink)}
.cours-image img{height:auto;background:#fff}
.cours-image a:has(img){display:block;cursor:zoom-in}
.cours-image-agrandir{margin-left:6px;font-size:13px}
/* Sous-titres et transcription des vidéos (indicateur Qualiopi 26) */
.video-outils{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px;max-width:900px;margin:10px auto 0;text-align:left}
.video-outils .btn{min-height:40px;padding:8px 14px;font-size:14px}
.video-st-icone{display:inline-block;padding:0 4px;border:1.5px solid currentColor;border-radius:4px;font-size:11px;font-weight:700;line-height:1.4}
.video-st[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--btn-ink)}
.transcription{flex:0 1 auto;border:0;padding:0}
.transcription[open]{flex-basis:100%}
.transcription>summary{list-style:none;cursor:pointer;display:inline-flex}
.transcription>summary::-webkit-details-marker{display:none}
.transcription .transcription-masquer,.transcription[open] .transcription-lire{display:none}
.transcription[open] .transcription-masquer{display:inline}
.transcription-texte{margin-top:10px;padding:14px 18px;background:var(--surface-2);border-radius:12px;font-size:15px;line-height:1.6;max-height:50vh;overflow:auto}
.transcription-texte p{margin:0 0 10px;color:var(--ink);max-width:none}
.transcription-texte p:last-child{margin-bottom:0}
video::cue{font-size:clamp(15px,2.4vw,24px);line-height:1.35;background:rgba(0,0,0,.78);color:#fff}
@media (max-width:1023px){
  .seq-grille{grid-template-columns:minmax(0,1fr);grid-template-areas:"tete" "sommaire" "contenu"}
  .sommaire-bouton{display:inline-flex}
  .sommaire{display:none;position:static;max-height:none;overflow:visible;margin:0 0 18px;padding:12px 16px;background:var(--surface);border:1px solid var(--line);border-radius:16px}
  .sommaire.ouvert{display:block}
}
.seq-nav>:last-child{margin-left:auto}
@media (max-width:600px){.seq-nav{flex-direction:column-reverse;align-items:stretch}.seq-nav>:last-child{margin-left:0}.seq-nav .btn{width:100%;justify-content:center}.seq-nav-fermee{justify-items:stretch;text-align:center}.seq-actions .btn{width:100%;justify-content:center}}
/* Tableaux de 3 colonnes et plus sous 600 px : une carte par ligne, titre de colonne au-dessus de chaque valeur */
@media (max-width:600px){
  .cours .tableau-cartes{overflow:visible;background:none}
  .tableau-cartes thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .tableau-cartes table,.tableau-cartes tbody,.tableau-cartes tr,.tableau-cartes td{display:block;width:auto}
  .tableau-cartes tr{border:1px solid var(--line);border-radius:12px;padding:4px 14px;margin:0 0 12px;background:var(--surface)}
  .cours .tableau-cartes td{border:0;border-bottom:1px solid var(--line);padding:9px 0;min-width:0}
  .cours .tableau-cartes td:last-child{border-bottom:0}
  .tableau-cartes td::before{content:attr(data-label);display:block;margin-bottom:2px;font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--accent)}
  .tableau-cartes td:first-child{font-weight:600}
}
/* Mon temps de formation (relevé d'assiduité) */
.temps-sources{margin:20px 0;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.temps-table td:not(:first-child):not([data-label="Motif"]){white-space:nowrap;overflow-wrap:normal}
.temps-sources .espace-carte .eyebrow{margin:0}
.temps-chiffre{font-family:var(--serif);font-size:30px;line-height:1.15;margin:6px 0 4px;color:var(--ink)}
.temps-sources .muted{font-size:14px;margin:0}
.temps-resume a{white-space:nowrap}
.heures-bloc{margin-top:8px}
.heures-bloc table{margin-top:6px}
.heures-ecart{color:var(--orange);font-weight:600}
/* Messagerie (affichage en conversation, 27/10/2026) : liste à gauche, conversation à droite dès 1 024 px ; toute la hauteur de
   l'écran (body.page-pleine, 28/10/2026) : seules la liste et la conversation défilent */
.sujets-message{display:grid;gap:6px}
.sujet-signalement{display:none;color:var(--rouge)}
.nouveau-fil:has(input[value="signalement"]:checked) .sujet-signalement{display:block}
.fils{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px}   /* carte Messages du dossier */
.fil{display:grid;gap:2px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.fil a{text-decoration:none;color:var(--ink)}
.fil a:hover strong{color:var(--accent)}
.fil small{color:var(--ink-2);font-size:13px}
.msg-entete{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 14px;margin-bottom:14px}
.msg-entete h1{margin:0;font-size:clamp(26px,3vw,32px);line-height:1.15}
.msg-resume{margin:0;font-size:14px}
.msg-cadre{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);border:1px solid var(--line);border-radius:18px;background:var(--surface);overflow:hidden}
.page-pleine{height:100vh;height:100dvh;overflow:hidden;display:flex;flex-direction:column}
.page-pleine main.espace{flex:1;min-height:0;display:flex;flex-direction:column;padding-block:20px 16px}
.page-pleine main.espace>.wrap{flex:1;min-height:0;width:100%;display:flex;flex-direction:column}
.page-pleine .msg{flex:1;min-height:0;display:flex;flex-direction:column}
.page-pleine .msg-cadre{flex:1;min-height:0}
.msg-liste{min-height:0;overflow-y:auto}
.msg-panneau{display:flex;flex-direction:column;min-height:0;overflow:hidden}
.msg-panneau>.msg-fil{flex:1}
.msg-panneau>.msg-nouveau,.msg-panneau>.msg-accueil{overflow-y:auto}
.msg-actions{margin:0;padding:12px 14px;border-bottom:1px solid var(--line)}
.msg-actions .btn{width:100%;justify-content:center}
.msg-filtre-dossier{margin:0;padding:8px 14px;font-size:13px;border-bottom:1px solid var(--line);background:var(--surface-2)}
.msg-vide{margin:0;padding:20px 14px}
.msg-convs{list-style:none;margin:0;padding:0}
.msg-conv a{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line);border-left:3px solid transparent;text-decoration:none;color:var(--ink)}
.msg-conv a:hover{background:color-mix(in srgb,var(--accent) 5%,var(--surface))}
.msg-conv a[aria-current]{background:color-mix(in srgb,var(--accent) 9%,var(--surface));border-left-color:var(--accent)}
.msg-conv-retard a{background:color-mix(in srgb,var(--rouge) 6%,var(--surface))}
.msg-conv-texte{display:grid;gap:1px;min-width:0}
.msg-conv-ligne{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.msg-conv-nom{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.msg-conv-ligne time{flex:none;font-size:12px;color:var(--ink-2)}
.msg-conv-sujet,.msg-conv-apercu{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:var(--ink-2)}
.msg-conv-sujet .pastille{font-size:11px;padding:1px 8px}
.msg-conv-non-lu .msg-conv-apercu{color:var(--ink);font-weight:600}
.msg-conv-nom{font-weight:500}
.msg-conv-attente-equipe .msg-conv-nom,.lateral-equipe .msg-conv-non-lu .msg-conv-nom{font-weight:700}   /* en attente de réponse : repérable même après lecture */
.msg-conv-non-lu .msg-conv-ligne time{color:var(--accent);font-weight:600}
.msg-conv-apercu .msg-coche{margin-right:4px;vertical-align:-1px}
.msg-conv-etat{display:grid;justify-items:end;gap:4px}
.msg-conv-etat .pastille{font-size:11px;padding:1px 8px}
.msg-conv-attente{font-size:11px;color:var(--ink-2);white-space:nowrap}
.msg-non-lus{min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--accent);color:var(--btn-ink);font:700 12px/22px var(--sans);text-align:center}
.msg-avatar{width:44px;height:44px;flex:none;border-radius:50%;object-fit:cover;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 14%,var(--surface));color:var(--accent);font:600 15px var(--sans)}
.msg-avatar-petit,.msg-avatar-vide{width:30px;height:30px;font-size:12px}
.msg-avatar-vide{visibility:hidden}
.msg-avatar-alerte{background:color-mix(in srgb,var(--rouge) 14%,var(--surface));color:var(--rouge)}
.msg-coche{fill:none;stroke:var(--ink-2);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.msg-coche-lu{stroke:var(--accent)}
.msg-fil{display:flex;flex-direction:column;min-height:0}
.msg-fil-tete{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line)}
.msg-fil-qui{flex:1;min-width:0}
.msg-fil-tete h2{margin:0;font-size:19px;line-height:1.25;overflow-wrap:anywhere}
.msg-fil-tete p{margin:2px 0 0;font-size:13px}
.msg-fil-dossier{flex:none;font-size:14px}
.msg-retour{flex:none;font-weight:600;text-decoration:none}
.fil-confidentiel{margin:0;padding:8px 16px;border-left:4px solid var(--rouge);border-bottom:1px solid var(--line);font-size:14px}
.msg-fil-etat{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0;padding:8px 16px;border-bottom:1px solid var(--line);font-size:14px;color:var(--ink-2)}
.msg-flux{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column-reverse;background:var(--bg)}   /* s'ouvre sur le dernier message, sans JavaScript */
.msg-flux:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.messages{list-style:none;margin:0;padding:12px 16px 16px;display:flex;flex-direction:column}
.msg-jour{align-self:center;margin:14px 0 4px}
.msg-jour span{display:inline-block;padding:3px 12px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-size:12px;color:var(--ink-2)}
.message{display:flex;align-items:flex-end;gap:8px;max-width:min(640px,86%);margin-top:10px}
.message-suite{margin-top:3px}
.message-moi{align-self:flex-end}
.message-bulle{min-width:0;padding:8px 12px 5px;border-radius:18px 18px 18px 6px;background:var(--surface);border:1px solid var(--line)}   /* apprenante : blanche, fin bord */
.message-moi .message-bulle{border-radius:18px 18px 6px 18px}
.message-equipe .message-bulle{background:color-mix(in srgb,var(--accent) 8%,var(--surface));border-color:transparent}   /* équipe : légèrement teintée */
.message-tete{margin:0 0 2px;font-size:13px;color:var(--accent)}
.message-corps{white-space:normal;overflow-wrap:anywhere;line-height:1.5}
.message-photos{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0}
.message-photos img{display:block;width:140px;height:140px;object-fit:cover;border-radius:12px;background:var(--surface-2)}
.message-pied{display:flex;justify-content:flex-end;align-items:center;gap:4px;margin:2px 0 0;font-size:12px;color:var(--ink-2)}
.message-accuse{display:inline-flex}
.msg-saisie{margin:0;padding:12px 16px;border-top:1px solid var(--line);gap:6px}
.msg-ligne{display:flex;align-items:flex-end;gap:8px}
.msg-zone{flex:1;min-width:0;margin:0}
.msg-zone textarea{min-height:46px;max-height:30vh;border-radius:22px;padding:11px 16px;resize:none;line-height:1.45}
.msg-joindre{position:relative;flex:none;display:grid;place-items:center;width:46px;height:46px;margin:0;border-radius:50%;color:var(--ink-2);cursor:pointer}
.msg-joindre:hover,.msg-joindre:focus-within{color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface))}
.msg-joindre:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}
.msg-joindre svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.msg-joindre-nb{position:absolute;top:2px;right:0;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--accent);color:var(--btn-ink);font:700 11px/18px var(--sans);text-align:center}
.msg-envoyer.btn{flex:none;height:46px;padding:0 20px;text-transform:none;letter-spacing:normal;font-size:15px}
.msg-saisie .aide{margin:0;font-size:12px}
.msg-photos-choisies{color:var(--ink);font-weight:500}
.msg-aide-photos[hidden]{display:none}
.msg-nouveau{padding:clamp(16px,3vw,28px)}
.msg-nouveau h2{margin-top:0}
.msg-accueil{margin:20px}
.msg-accueil-vide{display:grid;place-items:center;align-content:center;gap:2px;min-height:100%;margin:0;padding:48px 16px;text-align:center}
.msg-accueil-vide p{margin:0}
.msg-accueil-vide svg{fill:none;stroke:var(--accent);stroke-width:1.6;stroke-linejoin:round;margin-bottom:8px}
@media (min-width:1024px){
  .msg-cadre{grid-template-columns:minmax(270px,340px) minmax(0,1fr)}
  .msg-liste{border-right:1px solid var(--line)}
  .msg-retour{display:none}
}
@media (max-width:1023px){
  .msg-ouvert .msg-liste,.msg:not(.msg-ouvert) .msg-panneau{display:none}
  .message{max-width:90%}
  .msg-fil-tete{padding:10px 12px;gap:10px}
  .msg-fil-tete h2{font-size:17px}
  .msg-retour-texte{display:none}
  .messages{padding:8px 10px 14px}
  .msg-saisie{padding:10px 12px}
}
@media (max-width:560px){.message-photos img{width:110px;height:110px}}
/* Rendez-vous visio */
.visio-prochaine h2{margin:4px 0 6px}
.visio-jour{margin-top:14px}
.visio-jour h3{font-size:15px;margin:0 0 8px}
.visio-creneaux{display:flex;flex-wrap:wrap;gap:8px}
.visio-creneaux form{margin:0}
.visio-creneaux .btn{padding:10px 14px;font-size:14px}
.visio-liste{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.visio-liste li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px}
.visio-liste .visio-pris{border-color:var(--vert)}
.visio-choix{max-width:360px;margin-bottom:16px}
.visio-a-completer form{border-top:1px solid var(--line);padding-top:14px;margin-top:14px}
.visio-resume a{white-space:nowrap}
.visio-intro{margin-bottom:18px}
/* Demandes d'adaptation (référent handicap) */
.projet{display:inline-block;margin:0 0 8px;padding:3px 10px;border-radius:999px;background:var(--orange);color:#fff;font-size:12px;font-weight:600;letter-spacing:.04em}
.consentement-bloc{padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.consentement-bloc .consent{display:flex;flex-wrap:nowrap;gap:10px;align-items:flex-start}
.consentement-bloc .consent input{flex:none;margin-top:4px}
.consentement-bloc .consent span{flex:1;font-size:14px;line-height:1.55}
.adaptation-detail h2{margin-top:20px}
.adaptation-reponse{margin-top:12px;padding:12px 14px;border-left:4px solid var(--vert);background:var(--surface-2);border-radius:0 10px 10px 0}
/* Mention IA sous les vidéos de la présentatrice virtuelle (comme sur le site public) */
.mention-ia{margin:6px 0 0;font-size:12px;color:var(--ink-2)}
.cours-media-portrait .mention-ia{text-align:center}
.formation-interrompue{margin:8px 0 16px;padding:12px 16px;border-left:4px solid var(--gris);border-radius:8px;background:var(--surface-2)}
.formation-terminee{margin:8px 0 16px;padding:12px 16px;border-left:4px solid var(--vert);border-radius:8px;background:var(--surface-2)}
/* Contenus e-learning : classeur (onglets par formation, modules repliables) */
.classeur-onglets{display:flex;flex-wrap:wrap;gap:6px;margin:18px 0 14px;border-bottom:1px solid var(--line);padding-bottom:10px}
.classeur-onglets a{padding:8px 14px;border:1px solid var(--line);border-radius:999px;text-decoration:none;font-weight:500}
.classeur-onglets a[aria-current="page"]{background:var(--accent);color:var(--btn-ink);border-color:var(--accent)}
.classeur-module{background:var(--surface);border:1px solid var(--line);border-radius:12px;margin-bottom:10px}
.classeur-module>summary{cursor:pointer;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:14px 16px;list-style:none}
.classeur-module>summary::-webkit-details-marker{display:none}
.classeur-code{font-weight:700;color:var(--accent)}
.classeur-titre{font-weight:600;flex:1 1 220px}
.classeur-module>summary small{color:var(--ink-2);white-space:nowrap}
.classeur-sequences{margin:0;padding:0 16px 12px;list-style:none;counter-reset:seq}
.classeur-sequences li{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;padding:8px 0;border-top:1px solid var(--line)}
.classeur-sequences li a{flex:1 1 200px;font-weight:500}
.classeur-type{font-size:12px;padding:2px 8px;border-radius:999px;background:var(--surface-2);white-space:nowrap}
.classeur-infos{font-size:13px;color:var(--ink-2);flex-basis:100%}
.classeur-infos code{font-size:12px}
.classeur-actions{margin:6px 0 18px;font-size:14px}

/* Visio intégrée (8x8 Jitsi as a Service) */
.visio-cadre { width: 100%; height: 75vh; min-height: 420px; border-radius: 12px; overflow: hidden; background: #111; }
.visio-cadre iframe { border: 0; }

/* Travaux : carte d'accroche, badges, Mes réalisations, annotations et message audio (2026-10-09) */
.accroche{background:linear-gradient(135deg,var(--surface) 55%,var(--surface-2));border-left:6px solid var(--accent)}
.accroche-lignes{margin:0;display:grid;gap:14px}
.accroche-ligne{display:grid;grid-template-columns:minmax(0,15em) 1fr;gap:4px 18px;align-items:baseline}
.accroche-ligne dt{font-weight:600;color:var(--deep);display:flex;gap:8px;align-items:baseline}
.accroche-ligne dd{margin:0}
.accroche-icone{color:var(--accent);font-size:15px;width:1.1em;flex:none;text-align:center}
.accroche-bonus{list-style:none;margin:16px 0 0;padding:14px 0 0;border-top:1px dashed var(--line);display:flex;flex-wrap:wrap;gap:10px 24px;font-size:15px}
.accroche-bonus li{display:flex;gap:8px;align-items:center}
.accroche-bonus small{color:var(--ink-2)}
.badge-icone{width:22px;height:22px;flex:none;color:var(--gris)}
.accroche-badge .badge-icone,.badge.gagne .badge-icone,.badge-gagne .badge-icone{color:var(--gold)}
.badge-gagne{display:flex;gap:8px;align-items:center;font-weight:600;margin:10px 0}
@media (max-width:640px){.accroche-ligne{grid-template-columns:1fr}.accroche-bonus{flex-direction:column}}

.prochaine-etape{background:var(--surface-2);border-radius:14px;padding:14px 18px;margin:14px 0}
.prochaine-etape .eyebrow{margin:0 0 4px}
.prochaine-titre{margin:0 0 10px}
.prochaine-etape .espace-afaire-boutons{margin:0}
.modules-avancement{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:8px}
.modules-avancement li{display:grid;grid-template-columns:minmax(0,1fr) minmax(80px,180px) 3.2em;gap:12px;align-items:center;font-size:15px}
.modules-avancement .progression{margin:0;height:8px}
.module-compte{text-align:right;color:var(--ink-2);font-variant-numeric:tabular-nums}
.module-nom small{color:var(--ink-2)}
@media (max-width:520px){.modules-avancement li{grid-template-columns:1fr 3.2em}.modules-avancement .progression{grid-column:1/-1;grid-row:2}}
.badges-liste{list-style:none;margin:8px 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.badge{display:inline-flex;gap:6px;align-items:center;padding:5px 12px 5px 8px;border-radius:999px;border:1px dashed var(--line);color:var(--ink-2);font-size:14px}
.badge .badge-icone{width:18px;height:18px}
.badge.gagne{border:1px solid var(--gold);background:var(--surface);background:color-mix(in srgb,var(--gold) 14%,var(--surface));color:var(--ink);font-weight:600}

.realisations-formations a{margin-right:10px}.realisations-formations a[aria-current]{font-weight:600}
.realisations-actions{display:grid;gap:8px}
.realisations-actions p{margin:0}
.realisations-boutons{display:flex;flex-wrap:wrap;gap:10px}
.droit-image{font-weight:600;color:var(--deep);background:var(--surface-2);border-radius:10px;padding:8px 12px;justify-self:start}
.droit-image::before{content:"⚠ ";color:var(--orange)}
.realisations-sommaire{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}
.realisations-sommaire a{padding:6px 14px;border-radius:999px;background:var(--surface);border:1px solid var(--line);text-decoration:none;font-size:14px}
.realisations-sommaire span{color:var(--ink-2);margin-left:4px}
.realisations-technique{margin:0 0 28px;scroll-margin-top:calc(var(--esp-haut,69px) + 21px)}
.realisations-technique h2 small{font-family:var(--sans);font-size:14px;font-weight:400;color:var(--ink-2);margin-left:6px}
.realisations-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:14px}
.realisation{margin:0;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:8px;position:relative}
.realisation img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;background:var(--surface-2)}
.realisation figcaption{display:grid;gap:2px;padding:8px 4px 2px;font-size:14px}
.realisation figcaption small{color:var(--ink-2)}
.realisation form{margin-top:4px}
.realisation.masquee img{opacity:.35;filter:grayscale(1)}
.realisation-etat{position:absolute;top:16px;left:16px;background:var(--deep);color:#fff;font-size:12px;font-weight:600;padding:2px 10px;border-radius:999px}
.realisations-vide ul{padding-left:20px}
@media (max-width:420px){.realisations-grille{grid-template-columns:1fr 1fr;gap:10px}.realisation figcaption{font-size:13px}}

.annot{position:relative;line-height:0;overflow:hidden;border-radius:10px}
.annot img,.rendu-galerie .annot img{display:block;width:100%;height:auto;max-height:none;object-fit:fill;border-radius:10px}
.annot-calque{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;pointer-events:none}
.annot-edition .annot-calque{pointer-events:auto;cursor:crosshair}
.annot-edition.annot-actif .annot-calque{touch-action:none}
.rendu-galerie-edition{grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr))}
.annot-barre{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:8px 0 4px;line-height:1.2}
.annot-outil{font:inherit;font-size:14px;padding:6px 10px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;min-height:36px}
.annot-outil[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff}
.annot-outil:disabled{opacity:.45;cursor:default}
.annot-couleurs{display:inline-flex;gap:4px}
.annot-couleur{width:32px;padding:0;background:var(--c)}
.annot-couleur[aria-pressed="true"]{background:var(--c);box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--ink)}
.annot-compte{font-size:13px;color:var(--ink-2)}
.annot-texte{flex:1 1 100%;font:inherit;padding:8px 10px;border-radius:10px;border:1px solid var(--line)}
.annot-texte.annot-manque{border-color:var(--rouge)}
.audio-enregistreur{border:1px solid var(--line);border-radius:14px;padding:12px 16px}
.audio-enregistreur legend{font-weight:600;padding:0 6px}
.audio-commandes{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.audio-chrono{font-variant-numeric:tabular-nums;color:var(--ink-2)}
.audio-ecoute{display:block;width:100%;max-width:420px;margin-top:10px}
.audio-ecoute[hidden]{display:none}
.audio-correction{display:grid;gap:6px;margin:10px 0}
.audio-correction span{font-size:14px;color:var(--ink-2)}
.audio-correction audio{width:100%;max-width:420px}
.muted.petit{font-size:14px}
.audio-enregistreur [hidden],.annot-barre [hidden]{display:none!important}
.rendu-galerie.annotees{grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr))}

/* Kit de lancement (après la formation, 2026-10-09) */
.kit-etapes{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}
.kit-etapes a{display:inline-flex;gap:8px;align-items:center;padding:6px 14px 6px 6px;border-radius:999px;background:var(--surface);border:1px solid var(--line);text-decoration:none;font-size:14px}
.kit-etapes b{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--accent);color:#fff;font-size:12px}
.kit .espace-carte{scroll-margin-top:calc(var(--esp-haut,69px) + 21px)}
.kit-modifier summary{cursor:pointer;color:var(--accent);font-weight:600;margin:6px 0 12px}
.kit-lieu{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px 18px}
.kit-lieu legend{margin-bottom:6px;font-weight:600}
.kit-prix{border:1px solid var(--line);border-radius:14px;padding:12px 16px}
.kit-prix legend{font-weight:600;padding:0 6px}
.kit-prix-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:6px 24px}
.kit-prix-grille label{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;font-size:15px;margin:0;text-transform:none;letter-spacing:normal;font-weight:400;color:var(--ink)}
.kit-prix legend,.kit-lieu legend{text-transform:none;letter-spacing:normal}
.kit-form label small,.kit-form legend small{text-transform:none;letter-spacing:normal;font-weight:400;font-size:13px}
.kit-euros{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.kit-euros input{width:5.5em;text-align:right}
.kit-prix-grille .err{grid-column:1/-1}
.kit-docs{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.kit-docs li{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid var(--line)}
.kit-posts{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:18px;margin-top:14px}
.kit-post{margin:0;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:10px;display:grid;gap:8px;align-content:start}
.kit-post img{display:block;width:100%;height:auto;aspect-ratio:4/5;border-radius:10px;background:var(--surface-2)}
.kit-post figcaption{display:grid;gap:8px}
.kit-post-tete{margin:0;font-size:14px}
.kit-post textarea{width:100%;font:inherit;font-size:14px;line-height:1.45;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--bg);color:var(--ink);resize:vertical}
.kit-post-boutons{margin:0;display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.kit-copier.copie{background:var(--vert);border-color:var(--vert)}
.kit-visuels{display:grid;grid-template-columns:1.4fr 1fr;gap:18px;align-items:start}
.kit-visuels figure{margin:0}
.kit-visuels img{display:block;width:100%;height:auto;border-radius:12px}
.kit-visuels figcaption{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px;font-size:14px;color:var(--ink-2)}
@media (max-width:640px){.kit-visuels{grid-template-columns:1fr}.kit-visuels figure:last-child img{max-width:70%;margin:0 auto}}
.apres-formation{border-left:6px solid var(--gold);background:linear-gradient(135deg,var(--surface) 55%,var(--surface-2))}
.apres-formation .espace-afaire-boutons{margin-bottom:0}

/* Annuaire des prothésistes (2026-10-13) : ma fiche, validation par l'administration */
.annuaire-etat{border-left:6px solid var(--gris)}
.annuaire-etat-en_ligne,.annuaire-etat-en_ligne_attente{border-left-color:var(--vert)}
.annuaire-etat-attente{border-left-color:var(--orange)}
.annuaire-etat-refusee{border-left-color:var(--rouge)}
.annuaire-etat p:last-child{margin-bottom:0}
.annuaire-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.annuaire-actions form{margin:0}
.annuaire-form label small,.annuaire-form legend small{text-transform:none;letter-spacing:normal;font-weight:400;font-size:13px}
.annuaire-prestations,.annuaire-photos{border:1px solid var(--line);border-radius:14px;padding:12px 16px;margin:0}
.annuaire-prestations legend,.annuaire-photos legend{font-weight:600;padding:0 6px;text-transform:none;letter-spacing:normal}
.annuaire-prestations{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:4px 18px}
.annuaire-prestations .err{grid-column:1/-1}
.annuaire-form .consent{display:flex;flex-wrap:nowrap;gap:10px;align-items:flex-start;text-transform:none;letter-spacing:normal;font-weight:400;font-size:15px;color:var(--ink)}
.annuaire-form .consent input{flex:none;margin-top:4px}
.annuaire-form .consent span{flex:1}
.annuaire-form .consent .err{flex-basis:100%}
.annuaire-photos-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(46%,150px),1fr));gap:10px}
.annuaire-photo{position:relative;margin:0;display:grid;gap:4px;cursor:pointer;text-transform:none;letter-spacing:normal;font-weight:400;font-size:13px;color:var(--ink-2)}
.annuaire-photo img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:10px;border:3px solid transparent;background:var(--surface-2)}
.annuaire-photo input{position:absolute;top:10px;left:10px;width:22px;height:22px;accent-color:var(--accent)}
.annuaire-photo.choisie img{border-color:var(--accent)}
.annuaire-photo:has(input:disabled){opacity:.5;cursor:not-allowed}
.annuaire-photo:has(input:focus-visible) img{outline:3px solid var(--accent);outline-offset:2px}
.annuaire-photos-compte{margin:8px 0 0;font-size:14px}
.annuaire-a-valider{scroll-margin-top:calc(var(--esp-haut,69px) + 21px)}
.annuaire-a-valider h3 small{font-size:14px;font-weight:400}
.annuaire-comparaison th[scope=row]{white-space:nowrap}
.annuaire-change td:first-of-type{background:var(--surface-2);font-weight:600}
.annuaire-vignettes{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.annuaire-vignettes img{width:120px;height:120px;object-fit:cover;border-radius:8px}
.annuaire-decision{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start;margin-top:14px}
.annuaire-decision form{margin:0}
.annuaire-refus textarea{width:100%}
@media (max-width:640px){.annuaire-decision{grid-template-columns:1fr}}

/* Nouvelle inscription par l'administration (2026-10-13) */
.nouvelle-inscription .ni-bloc{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;margin:0}
.nouvelle-inscription .ni-bloc legend{font-family:var(--serif);font-size:20px;font-weight:500;padding:0 6px;text-transform:none;letter-spacing:normal}
.nouvelle-inscription .ni-bloc label small{text-transform:none;letter-spacing:normal;font-weight:400;font-size:13px}
.nouvelle-inscription .ni-choix,.nouvelle-inscription .ni-kit{display:flex;flex-wrap:wrap;gap:6px 22px;align-items:center}
.nouvelle-inscription .ni-choix .err,.nouvelle-inscription .ni-kit .err{flex-basis:100%}
.nouvelle-inscription .ni-sous-titre{font-weight:600;flex-basis:100%}
.nouvelle-inscription .ni-personnel,.nouvelle-inscription .ni-cpf{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;align-items:end}
.nouvelle-inscription .ni-personnel .muted,.nouvelle-inscription .ni-cpf .muted{margin:0}
.nouvelle-inscription .consent{display:flex;flex-wrap:nowrap;gap:10px;align-items:flex-start;text-transform:none;letter-spacing:normal;font-weight:400;font-size:15px;color:var(--ink)}
.nouvelle-inscription .consent input{flex:none;margin-top:4px}
.nouvelle-inscription [hidden]{display:none!important}
@media (max-width:640px){.nouvelle-inscription .ni-bloc,.nouvelle-inscription .ni-personnel,.nouvelle-inscription .ni-cpf{grid-template-columns:1fr}.nouvelle-inscription .ni-bloc>span:empty{display:none}}
.kit-delai{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:12px 0 0;font-size:15px;text-transform:none;letter-spacing:normal;font-weight:400;color:var(--ink)}
.kit-delai input{width:3.5em;text-align:right}
.kit-delai .err{flex-basis:100%}
/* Accueil de l'administration : 4 blocs titrés (inscrire, suivre, organiser, qualité et réglages en plus discret) */
.admin-bloc{margin-top:28px}
.admin-bloc h2{font-size:22px;margin:0 0 12px}
.admin-inscrire{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;align-items:stretch}
.admin-inscrire .dept-liens{grid-template-columns:1fr}
.admin-inscrire .dept-liens li,.admin-inscrire .dept-liens a{height:100%}
.admin-inscrire-btn{display:flex;flex-direction:column;justify-content:center;gap:4px;padding:18px 22px;font-size:18px;text-align:left;height:100%}
.admin-inscrire-btn small{font-size:13px;font-weight:400;text-transform:none;letter-spacing:0;opacity:.9}
.admin-bloc-secondaire{margin-top:40px;padding-top:20px;border-top:1px solid var(--line)}
.admin-bloc-secondaire h2{font-size:16px;color:var(--ink-2)}
.admin-bloc-secondaire .dept-liens{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:8px}
.admin-bloc-secondaire .dept-liens a{padding:10px 14px;font-size:14px}
.admin-bloc-secondaire .dept-liens small{font-size:12px}
@media (max-width:640px){.admin-inscrire{grid-template-columns:1fr}}
/* Nouvelle inscription : apprenante existante (recherche) */
.ni-existante{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;margin-bottom:16px}
.ni-existante>label{font-weight:600}
.ni-recherche{display:flex;gap:8px;flex-wrap:wrap}
.ni-recherche input{flex:1 1 220px;min-width:0}
.ni-existante .muted{margin:0}
.ni-resultats{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.ni-resultats a,.ni-resultats button{display:block;width:100%;text-align:left;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;text-decoration:none}
.ni-resultats a:hover,.ni-resultats button:hover,.ni-resultats button:focus-visible{border-color:var(--accent)}
.ni-resultats span{color:var(--ink-2);font-size:14px;overflow-wrap:anywhere}
.ni-reprise{margin-bottom:16px}
.ni-resume{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 16px;margin:0;overflow-wrap:anywhere}


/* Compteur de temps des cours et « Vous êtes toujours là ? » (2026-10-13) */
.seq-compteur{margin-top:12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.seq-compteur p{margin:0;font-size:15px}
.seq-compteur p.muted{margin-top:8px;font-size:13px}
.seq-barre{height:8px;border-radius:999px;background:var(--surface-2);overflow:hidden;margin:8px 0 0}
.seq-barre span{display:block;height:100%;background:var(--accent);border-radius:999px;min-width:2px;transition:width .4s}
.seq-etat{font-size:13px;font-weight:600;color:var(--ink-2);margin-left:6px}
.seq-compteur-ok .seq-barre span{background:var(--vert)}
.seq-compteur-ok .seq-etat{color:var(--vert)}
.seq-compteur-pause .seq-barre span{background:var(--gris)}
.presence{position:fixed;z-index:60;left:50%;bottom:max(16px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(440px,calc(100% - 32px));padding:18px 20px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 12px 40px rgba(42,20,32,.22)}
.presence p{margin:0 0 10px;font-size:15px}
.presence .presence-titre{font-family:var(--serif);font-size:22px;font-weight:400;margin-bottom:6px}
.presence-reste{display:block;margin-top:6px;font-size:13px;color:var(--ink-2)}
.presence .btn{width:100%;justify-content:center}
.presence-pause{border-color:var(--gris)}
.presence-boutons{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.presence-boutons .btn{width:100%;justify-content:center}
@media (max-width:360px){.presence-boutons{grid-template-columns:1fr}}
.temps-regles p{margin:0 0 8px}
.temps-regles ul{margin:0 0 16px;padding-left:1.2em;display:grid;gap:6px}
/* Dossier : encarts « Exercice de dextérité » et « Admission » (prérequis RS6746, 15/10/2026) */
.dossier-encart{margin:10px 0;padding:12px 14px;border-radius:12px;background:var(--surface-2);display:grid;gap:8px}.dossier-encart p{margin:0}
/* Menu latéral de l'apprenante (23/10/2026) : fixe à gauche dès 1 024 px, tiroir derrière le bouton menu en dessous */
.esp-top-lateral .wrap{max-width:none;padding-inline:clamp(16px,2.4vw,28px);flex-wrap:nowrap;justify-content:flex-start;gap:12px}
.esp-menu.esp-lateral{position:fixed;z-index:40;top:69px;bottom:0;left:0;width:256px;display:flex;flex-direction:column;align-items:stretch;flex-wrap:nowrap;gap:2px;
  padding:16px 12px 20px;background:var(--surface);border-right:1px solid var(--line);overflow-y:auto;overscroll-behavior:contain}
.esp-lateral a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;font-size:15px;white-space:normal;line-height:1.3}
.esp-lateral a .lat-icone{flex:none;color:var(--ink-2)}
.esp-lateral a:hover .lat-icone,.esp-lateral a[aria-current="page"] .lat-icone{color:var(--accent)}
.esp-lateral a[aria-current="page"]{background:var(--surface-2);color:var(--accent);font-weight:600}
.esp-lateral .pastille{margin-left:auto}
.lat-formation{margin:auto 0 0;padding:16px 8px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1fr);gap:8px;font-size:14px}
.lat-formation label{display:block;margin:0}
.lat-formation label,.lat-formation>span{font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--ink-2)}
.lat-formation p,.lat-formation>span{display:block}
p.lat-formation{font-weight:600}
.lat-formation select{width:100%;padding:9px 10px;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:500 15px var(--sans)}
.lat-formation .btn{padding:8px 14px;font-size:14px;justify-self:start}
.lat-formation .btn[hidden]{display:none}   /* lot B (30/10/2026) : bouton « Afficher » caché quand le choix ouvre la formation */
.esp-voile{position:fixed;inset:69px 0 0;z-index:35;background:rgba(30,11,22,.45)}
@media (min-width:1024px){
  .avec-lateral .esp-burger{display:none}
  .avec-lateral main.espace,.avec-lateral .esp-pied,.avec-lateral .bandeau-demo{margin-left:256px}
  .esp-voile{display:none}
}
@media (max-width:1023px){
  .avec-lateral .esp-burger{display:inline-flex;flex:none}
  .esp-menu.esp-lateral{display:flex;width:min(300px,86vw);transform:translateX(-102%);visibility:hidden;transition:transform .22s ease,visibility 0s .22s;box-shadow:0 18px 40px rgba(30,11,22,.18)}
  .esp-menu.esp-lateral.ouvert{transform:none;visibility:visible;transition:transform .22s ease}
  .esp-lateral a{padding:12px;font-size:16px}
}
.esp-top-lateral .logo{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}   /* l'en-tête ne déborde jamais (prénom long, 320 px) */
@media (max-width:480px){.esp-top-lateral .wrap{gap:8px}.esp-top-lateral .logo{font-size:18px}}
@media (prefers-reduced-motion:reduce){.esp-menu.esp-lateral,.esp-menu.esp-lateral.ouvert{transition:none}}
/* Programme, évaluations, documents (23/10/2026) */
.prog-chiffres{margin-bottom:20px}
.prog-chiffres .temps-chiffre{margin:4px 0}
.prog-h2-suite{margin-top:22px}
.programme>h2{margin:32px 0 14px}
.prog-module .eyebrow{margin:0}
.espace .prog-module-titre{font-family:var(--serif,inherit);font-size:21px;letter-spacing:0;text-transform:none;color:var(--ink);margin:4px 0 10px}
.prog-competences{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:14px}
.prog-comp{display:inline-block;padding:4px 12px;border-radius:999px;background:var(--surface-2);color:var(--ink)}
.prog-comp strong{color:var(--accent)}
.prog-seqs{margin-top:12px}.prog-seqs summary{cursor:pointer;font-weight:600;color:var(--accent)}
.prog-seqs ol{margin:10px 0 0;padding-left:22px}.prog-seqs li{margin:4px 0}
.docs-recherche{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;margin:0 0 22px;max-width:560px}
.docs-recherche label{font-weight:600}
.docs-recherche input{padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:500 16px var(--sans)}
.docs-recherche p{margin:0;min-height:1.4em;font-size:14px}
.doc-dossier>summary{display:flex;align-items:center;gap:12px;cursor:pointer;list-style:none;font-weight:600;font-size:18px}
.doc-dossier>summary::-webkit-details-marker{display:none}
.doc-dossier-icone{display:inline-flex;width:38px;height:38px;border-radius:12px;align-items:center;justify-content:center;background:var(--surface-2);color:var(--accent);flex:none}
.doc-dossier-nom{flex:1}
.doc-compte{font-size:13px;font-weight:600;color:var(--ink-2);background:var(--surface-2);border-radius:999px;padding:2px 10px}
.doc-intro{margin:12px 0 6px;font-size:14px}
.doc-liste{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:6px}
.doc-liste a{display:flex;align-items:center;gap:14px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);text-decoration:none;color:var(--ink)}
.doc-liste a:hover{border-color:var(--accent)}
.doc-liste small{display:block;color:var(--ink-2);font-size:13px}
.doc-pdf{flex:none;font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--accent);border:1.5px solid currentColor;border-radius:6px;padding:3px 6px}
.doc-dossier>summary::after{content:"+";font-size:22px;line-height:1;color:var(--accent)}.doc-dossier[open]>summary::after{content:"–"}
/* Mini-questions dans le texte du cours (24/10/2026) : non notées, réponse immédiate */
.cours .mini-q{margin:22px 0 26px;padding:18px 20px;border-radius:14px;background:color-mix(in srgb,var(--accent) 6%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line))}
.cours .mini-q-eyebrow{margin:0 0 6px;font:600 12px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.cours .mini-q fieldset{border:0;margin:0;padding:0;display:grid;gap:8px}
.cours .mini-q legend{padding:0;margin-bottom:8px;font:600 17px/1.4 var(--sans);color:var(--ink)}
.cours .mini-q-aide{font-weight:400;font-size:14px;color:var(--ink-2)}
.cours .mini-q-choix{text-transform:none;letter-spacing:normal;font-weight:400;color:var(--ink);margin:0;display:flex;align-items:flex-start;gap:10px;min-height:44px;padding:10px 12px;border-radius:10px;background:var(--surface);border:1px solid var(--line);cursor:pointer;font-size:16px;line-height:1.4}
.cours .mini-q-choix input{margin-top:3px;flex:none;width:18px;height:18px;accent-color:var(--accent)}
.cours .mini-q-choix:has(input:checked){border-color:var(--accent)}
.cours .mini-q-choix:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}
.cours .mini-q-actions{margin:12px 0 0}
.cours .mini-q-retour{margin-top:12px;padding:12px 14px;border-radius:10px;background:var(--surface);border-left:4px solid var(--ink-2)}
.cours .mini-q-retour p{margin:0 0 6px}.cours .mini-q-retour p:last-child{margin:0}
.cours .mini-q-verdict{font-weight:600}
.cours .mini-q.juste .mini-q-retour{border-left-color:var(--vert-texte,#1F7A45)}.cours .mini-q.juste .mini-q-verdict{color:var(--vert-texte,#1F7A45)}
.cours .mini-q.faux .mini-q-retour{border-left-color:var(--orange)}.cours .mini-q.faux .mini-q-verdict{color:var(--orange)}
.cours .mini-q.a-choisir .mini-q-bonne,.cours .mini-q.a-choisir .mini-q-explication{display:none}
.cours .mini-q-bonne{font-weight:500}
.cours .mini-q .mini-q-secours{margin:12px 0 0}
/* Sessions d'examen (24/10/2026) */
.note-examen{padding:10px 14px;border-left:4px solid var(--orange);background:color-mix(in srgb,var(--orange) 8%,var(--surface));border-radius:8px}
.examen-candidates{list-style:none;margin:0 0 20px;padding:0;display:grid;gap:14px;counter-reset:passage}
.examen-candidate{counter-increment:passage}
.examen-candidate-tete{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 16px}
.examen-candidate-tete h3{margin:0;text-transform:none;letter-spacing:0;font:600 18px var(--sans);color:var(--ink)}
.examen-candidate-tete h3::before{content:counter(passage) ". ";color:var(--accent)}
.examen-horaires{margin:0;font-variant-numeric:tabular-nums}
.examen-amenagement{margin-top:8px}
.examen-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}
/* Jury des sessions d'examen (lot 2, 24/10/2026) */
.jury-membres{display:grid;gap:14px;margin-bottom:16px}
.jury-membre h3{margin:4px 0;text-transform:none;letter-spacing:0;font:600 18px var(--sans);color:var(--ink)}
.jury-controles{list-style:none;margin:8px 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.jury-manques ul{margin:6px 0 0}
.jury-texte{margin:10px 0;padding:12px 16px;border-left:4px solid var(--accent);background:color-mix(in srgb,var(--accent) 5%,var(--surface));border-radius:8px;white-space:normal}
.lien-jury{word-break:break-all}
.jury-etapes{list-style:none;margin:20px 0;padding:0;display:grid;gap:16px}
.jury-etapes h2{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.jury-plus-tard{opacity:.75}
.jury-etapes h2 .pastille{font-family:var(--sans)}
.jury .consent{display:flex;align-items:flex-start;gap:10px;font-size:15px;line-height:1.45;text-transform:none;letter-spacing:normal;font-weight:400;color:var(--ink)}
.jury .consent input{margin-top:3px;flex:none}
.jury .jury-nom{text-transform:none;letter-spacing:normal;font-size:16px;color:var(--ink)}
.jury .espace-form .consent{display:flex;flex-wrap:nowrap}.jury .consent span{flex:1 1 auto;min-width:0}
/* Convocations et test technique de l'examen (lot 3, 24/10/2026) */
.examen-deroule{list-style:none;padding:0;margin:8px 0;display:grid;gap:4px;font-variant-numeric:tabular-nums}
.examen-test-etat{list-style:none;padding:0;display:grid;gap:8px;margin:12px 0}
.examen-test-video{display:block;width:100%;max-width:480px;aspect-ratio:4/3;object-fit:cover;border-radius:12px;background:#000;margin:10px 0}
.examen-test-mesures{list-style:none;padding:0;display:grid;gap:6px;margin:10px 0}
.examen-test-mesures li.mesure-ok span{color:var(--vert-texte,#1F7A45);font-weight:600}
.examen-test-mesures li.mesure-revoir span{color:var(--orange);font-weight:600}
.examen-test-video[hidden]{display:none}
/* Jour de l'examen (lot 4, 24/10/2026) */
.examen-photos{list-style:none;padding:0;display:grid;gap:10px}
.examen-photo-form{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px}
.examen-qcm-chrono{position:sticky;top:calc(var(--esp-haut,69px) + 7px);z-index:5;display:inline-block;padding:8px 14px;border-radius:999px;background:var(--surface);box-shadow:var(--ombre-1);font-variant-numeric:tabular-nums}
.examen-qcm-chrono.bientot strong{color:var(--orange)}
.examen-qcm-questions{list-style:none;padding:0;display:grid;gap:14px}
.examen-qcm-questions fieldset{border:0;margin:0;padding:0;display:grid;gap:8px}
.examen-qcm-questions legend{margin-bottom:6px;font-weight:600}
.examen-qcm .consent,.jury .jury-grille .consent{display:flex;align-items:flex-start;gap:10px;font-size:15px;text-transform:none;letter-spacing:normal;font-weight:400;color:var(--ink)}
.examen-qcm .consent span{flex:1 1 auto;min-width:0}
.jury-grille-competence{margin:10px 0 0;font-weight:600;color:var(--accent)}
.jury-grille-critere{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px;text-transform:none;letter-spacing:normal;font-weight:400;font-size:15px;color:var(--ink)}
.jury-grille-note{display:flex;align-items:center;gap:6px;white-space:nowrap}
.jury-grille-note input{width:90px}
.jury-photos{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.jury-photos img{width:96px;height:96px;object-fit:cover;border-radius:8px}
.examen-qcm-form{display:block}.examen-qcm-form .examen-qcm-questions{margin:0 0 12px}
/* Menu latéral de l'équipe par rubriques (refonte admin, 24/10/2026) : même bandeau que l'apprenante ; sous 1 024 px, colonne
   d'icônes toujours visible, que le bouton menu déplie avec les libellés */
.lat-rubrique{margin:8px 12px 1px;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--ink-2)}
.lateral-equipe .esp-menu.esp-lateral{padding:8px 12px 10px;gap:0}
.lateral-equipe .esp-lateral a{padding:4px 12px;font-size:14px;gap:10px;line-height:1.2}
.lateral-equipe .esp-lateral a .lat-icone{width:18px;height:18px}
@media (max-width:1023px){
  .lateral-equipe .esp-menu.esp-lateral{width:64px;padding:12px 8px;transform:none;visibility:visible;box-shadow:none;overflow-x:hidden}
  .lateral-equipe .esp-menu.esp-lateral:not(.ouvert) a{justify-content:center;padding:10px 0}
  .lateral-equipe .esp-menu.esp-lateral:not(.ouvert) a>span:not(.pastille):not(.badges-menu),.lateral-equipe .esp-menu.esp-lateral:not(.ouvert) .lat-rubrique{display:none}
  .lateral-equipe .esp-menu.esp-lateral:not(.ouvert) .pastille{position:absolute;margin:0;transform:translate(12px,-10px);padding:0 6px;font-size:10px}
  .lateral-equipe .esp-menu.esp-lateral:not(.ouvert) .badges-menu{position:absolute;margin:0;transform:translate(12px,-10px);flex-direction:column;gap:2px}
  .lateral-equipe .esp-menu.esp-lateral:not(.ouvert) .badge-menu{min-width:18px;height:18px;padding:0 4px;font-size:10px}
  .lateral-equipe .esp-menu.esp-lateral:not(.ouvert) a{position:relative}
  .lateral-equipe .esp-menu.esp-lateral.ouvert{width:min(300px,86vw);box-shadow:0 18px 40px rgba(30,11,22,.18)}
  .lateral-equipe main.espace,.lateral-equipe .esp-pied,.lateral-equipe .bandeau-demo{margin-left:64px}
}
/* Tableau de bord de l'équipe : cartes */
.admin-cartes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px;margin:8px 0 28px}
.admin-carte{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:18px 20px;display:grid;gap:10px;align-content:start;min-width:0}
.admin-carte h2{margin:0;font-size:18px}
.admin-carte .admin-carte-chiffre{font-family:var(--serif);font-size:40px;line-height:1;font-variant-numeric:tabular-nums;margin:0}
.admin-carte ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.admin-carte li{display:flex;gap:10px;align-items:baseline;justify-content:space-between;font-size:14.5px;min-width:0}
.admin-carte li>*:first-child{min-width:0;overflow-wrap:anywhere}
.admin-carte .muted{font-size:14px}
.admin-carte-alertes li{justify-content:flex-start}
.admin-rubriques{display:grid;gap:10px}
/* Téléphone (≤ 480 px) : colonne d'icônes plus étroite et marges réduites, pour garder la largeur utile du contenu */
@media (max-width:480px){
  .lateral-equipe .esp-menu.esp-lateral{width:52px;padding:10px 4px}
  .lateral-equipe main.espace,.lateral-equipe .esp-pied,.lateral-equipe .bandeau-demo{margin-left:52px}
}
.lateral-equipe .jury-membres>*,.lateral-equipe .admin-cartes>*{min-width:0}
.lateral-equipe .jury-controles .pastille{white-space:normal}
@media (max-width:480px){.lateral-equipe .dossier-hero{padding:18px 12px}.lateral-equipe .dossier-afaire{padding:14px 12px}}   /* largeur utile à côté de la colonne d'icônes */
.lat-compte{font-size:13.5px}.lat-compte a,.lat-compte button{padding:2px 0!important;font-size:13.5px}
@media (max-width:1023px){.lateral-equipe .esp-menu.esp-lateral:not(.ouvert) .lat-compte{display:none}}
.lateral-equipe main .pastille{white-space:normal;max-width:100%}   /* pastilles longues : retour à la ligne à côté de la colonne d'icônes */
/* Retouches de la refonte admin (24/10/2026) : lisibilité (texte et espacements un peu plus grands, comme l'espace apprenante),
   contenu sur toute la largeur restante à côté du menu, tableaux larges qui défilent dans leur bloc sans couper les mots */
.lateral-equipe .esp-menu.esp-lateral{padding:12px 12px 14px}
.lateral-equipe .esp-lateral a{padding:6px 12px;font-size:15px;line-height:1.25;gap:12px}
.lateral-equipe .esp-lateral a .lat-icone{width:19px;height:19px}
.lat-rubrique{margin:12px 12px 3px;font-size:11px}
.lateral-equipe main.espace{font-size:16.5px;line-height:1.6;min-width:0}
.lateral-equipe main.espace>.wrap{max-width:1500px;margin-inline:0;padding-inline:clamp(16px,3vw,44px)}
.lateral-equipe main.espace h1,.lateral-equipe main.espace h2{overflow-wrap:break-word}
.lateral-equipe .espace-table{max-width:100%;scrollbar-width:thin;scrollbar-color:var(--line) transparent;border-radius:12px}
.lateral-equipe .espace-table::-webkit-scrollbar{height:10px}
.lateral-equipe .espace-table::-webkit-scrollbar-thumb{background:var(--line);border-radius:10px}
.lateral-equipe .espace-table table{font-size:15.5px}
.lateral-equipe .espace-table th,.lateral-equipe .espace-table td{padding:13px 16px}
.lateral-equipe .espace-table th{font-size:12.5px;white-space:nowrap}
.lateral-equipe .espace-table td{overflow-wrap:break-word;word-break:normal;min-width:6em}
.lateral-equipe .espace-table td a{overflow-wrap:break-word}
@media (min-width:1024px){.lateral-equipe main.espace{max-width:calc(100vw - 256px)}}
@media (max-width:1023px){.lateral-equipe main.espace{max-width:calc(100vw - 64px)}}
@media (max-width:480px){.lateral-equipe main.espace{max-width:calc(100vw - 52px)}}
@media (max-width:640px){.lateral-equipe .espace-table td{min-width:0;overflow-wrap:anywhere}}   /* téléphone : tableaux en fiches (règle existante) */
/* Tableau plus large que son bloc : ombre au bord qui reste à faire défiler (s'efface en bout de défilement) */
.lateral-equipe .espace-table{background:linear-gradient(90deg,var(--surface) 30%,transparent) left/40px 100% no-repeat local,linear-gradient(270deg,var(--surface) 30%,transparent) right/40px 100% no-repeat local,
  linear-gradient(90deg,rgba(30,11,22,.16),transparent) left/16px 100% no-repeat scroll,linear-gradient(270deg,rgba(30,11,22,.16),transparent) right/16px 100% no-repeat scroll,var(--surface)}
.lateral-equipe .espace-table table{background:transparent}
/* Retouches (2) : contenu aligné à gauche juste à côté du menu, sur toute la largeur ; formulaires seuls limités à une largeur de
   lecture, alignés à gauche ; tableaux pleine largeur ; adresses e-mail et dates jamais coupées */
.lateral-equipe main.espace>.wrap{max-width:none;margin:0;padding-inline:32px}
@media (max-width:1023px){.lateral-equipe main.espace>.wrap{padding-inline:20px}}
@media (max-width:480px){.lateral-equipe main.espace>.wrap{padding-inline:16px}}
.lateral-equipe main.espace>.wrap>section>form.espace-form,.lateral-equipe main.espace>.wrap>section>.espace-carte>form.espace-form,.lateral-equipe main.espace>.wrap>form.espace-form{max-width:880px}
.lateral-equipe .espace-table table{width:100%}
.lateral-equipe .espace-table td[data-label="E-mail"],.lateral-equipe .espace-table td[data-label="Adresse e-mail"],.lateral-equipe .espace-table td[data-label*="Date"],.lateral-equipe .espace-table td[data-label*="date"],
.lateral-equipe .espace-table td[data-label*="connexion"],.lateral-equipe .espace-table td[data-label*="Reçu"],.lateral-equipe .espace-table td[data-label*="Expiration"],
.lateral-equipe .espace-table td[data-label*="Dernière"],.lateral-equipe .espace-table td[data-label*="Session"] .muted,.lateral-equipe a[href^="mailto:"]{white-space:nowrap}
.lateral-equipe .espace-table tr.ligne-detail td{padding-top:0;background:var(--surface)}
.lateral-equipe .espace-table tr.ligne-detail details{max-width:880px}
@media (max-width:640px){.lateral-equipe .espace-table td[data-label]{white-space:normal}.lateral-equipe .espace-table tr.ligne-detail td{display:block}}
.lateral-equipe .courriel{white-space:nowrap}
.lateral-equipe .esp-pied .wrap{max-width:none;margin:0;padding-inline:32px}   /* pied aligné sur le contenu */
@media (max-width:1023px){.lateral-equipe .esp-pied .wrap{padding-inline:20px}}
.lateral-equipe main.espace select{max-width:min(100%,560px)}   /* listes déroulantes : largeur de lecture */

/* Formulaires de l'administration (lot B+C+D, 24/10/2026) : choix Oui/Non, bouton Annuler, erreurs en haut du formulaire */
.choix-oui-non{gap:8px 22px;align-items:center}
.choix-oui-non legend{width:100%;color:var(--ink-2)}
.choix-oui-non .consent{display:inline-flex;align-items:center;gap:8px;font-size:15px;text-transform:none;letter-spacing:normal;font-weight:500;color:var(--ink);padding:6px 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface);cursor:pointer}
.choix-oui-non .consent:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface))}
.choix-oui-non input{accent-color:var(--accent);width:18px;height:18px;margin:0}
.choix-oui-non p{flex-basis:100%;margin:0}
.btn-annuler{margin-left:10px}
.form-erreurs{grid-column:1/-1;border:1px solid var(--rouge,#B3261E);border-left-width:6px;background:color-mix(in srgb,var(--rouge,#B3261E) 7%,var(--surface));color:var(--ink);border-radius:12px;padding:12px 16px;font-size:15px}
.form-erreurs:focus{outline:2px solid var(--rouge,#B3261E);outline-offset:2px}
.form-erreurs ul{margin:6px 0 0;padding-left:20px}
/* Fenêtres de l'administration (27/10/2026) : « Compte » et « Ajouter à la session » ; confirmations dans la page */
dialog.fenetre{border:1px solid var(--line);border-radius:18px;background:var(--surface);color:var(--ink);padding:clamp(18px,4vw,28px);width:min(640px,calc(100% - 32px));max-height:calc(100vh - 48px);overflow:auto;box-shadow:0 24px 60px rgba(30,11,22,.22)}
dialog.fenetre-large{width:min(860px,calc(100% - 32px))}
dialog.fenetre::backdrop{background:rgba(30,11,22,.45)}
dialog.fenetre[open]:not(:modal){position:relative;margin:20px auto}
.fenetre-tete{display:flex;align-items:center;justify-content:space-between;gap:12px}
.fenetre-tete h2{margin:0}
.fenetre-fermer{font-size:26px;line-height:1;text-decoration:none;color:var(--ink-2);padding:2px 8px;border-radius:8px}
.fenetre-fermer:hover,.fenetre-fermer:focus-visible{background:var(--surface-2);color:var(--ink)}
.fenetre-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
details.confirmer{display:inline-block}
details.confirmer>summary{cursor:pointer;list-style:none}
details.confirmer>summary::-webkit-details-marker{display:none}
details.confirmer[open]>summary{font-weight:600}
.confirmer-corps{margin-top:8px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);display:grid;gap:8px;max-width:420px}
.confirmer-corps p{margin:0}
.actions-ligne{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:flex-start}
.pagination{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:12px}
.auditeur-portee{margin-top:6px}
.auditeur-portee .consent.retrait{margin-left:22px}
/* Sans bandeau (28/10/2026) : fond blanc ; sur ordinateur, l'en-tête devient le haut de la barre latérale (logo), le nom et
   « Déconnexion » sont en bas, avec le pied de page en petit ; sur mobile, une barre fine (menu + logo). --esp-haut = hauteur
   de ce qui reste collé en haut de l'écran : les éléments collants et les ancres s'y calent. */
body.espace-page{--esp-haut:69px;--bg:#FFFFFF;background:var(--bg);padding-bottom:env(safe-area-inset-bottom,0px)}   /* pas de barre d'appel dans l'espace : sans sa marge de 72 px */
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) body.espace-page{--bg:#16090F}}
:root[data-theme="dark"] body.espace-page{--bg:#16090F}
.esp-lateral .lat-compte{margin:auto 0 0;padding:14px 8px 0;border-left:0;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:14px}
.esp-lateral .lat-formation~.lat-compte{margin-top:12px}
.esp-lateral .lat-compte .lat-nom{flex:1;min-width:0;padding:6px 4px!important;gap:8px;font-weight:600;font-size:14px}
.esp-lateral .lat-compte .lat-nom span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.esp-lateral .lat-compte form{margin:0;flex:none}
.esp-lateral .lat-compte button{font-size:13.5px;color:var(--ink-2)}
.lat-pied.esp-pied{margin:12px 0 0;padding:12px 8px 0;border-top:1px solid var(--line);font-size:11.5px;line-height:1.45}
.lat-pied nav{gap:2px 12px;margin:0 0 6px}
.lat-pied a{padding:0!important;display:inline!important;font-size:11.5px;font-weight:400;white-space:nowrap}
.lat-pied p{margin:4px 0 0}
@media (min-width:1024px){
  .avec-lateral{--esp-haut:0px}
  .esp-top-lateral{position:fixed;top:0;left:0;z-index:41;width:256px;background:var(--surface);border-bottom:0;border-right:1px solid var(--line)}
  .esp-top-lateral .wrap{min-height:64px;padding-inline:24px}
  .esp-top-lateral .logo{line-height:64px;font-size:21px}
  .esp-menu.esp-lateral{top:64px;padding-top:4px}
  .avec-lateral main.espace{padding-top:28px}
  .avec-lateral .lecture-progression{left:256px}
}
@media (max-width:1023px){
  .avec-lateral{--esp-haut:53px}
  .esp-top-lateral .wrap{min-height:52px;padding-inline:12px}
  .esp-top-lateral .logo{line-height:52px;font-size:19px}
  .esp-menu.esp-lateral{top:53px}
  .esp-voile{inset:53px 0 0}
  .avec-lateral main.espace{padding-top:20px}
  .lateral-equipe .esp-menu.esp-lateral:not(.ouvert) .lat-pied{display:none}
  .msg-fil-formation,.msg-fil-tete .msg-avatar{display:none}
  .msg-fil-etat{font-size:13px;padding:6px 12px}
}
@media (max-width:480px){.msg-ligne{gap:4px}.msg-joindre{width:40px}.msg-envoyer.btn{padding:0 14px}}
/* Page « Apprenantes » à onglets et fenêtres de création de l'administration (28/10/2026) */
.page-tete{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin-bottom:14px}
.page-tete h1{margin:0}
.onglets-page{padding-bottom:14px;border-bottom:1px solid var(--line)}
.onglets-page .pastille{margin-left:6px;padding:0 7px}
.espace-sous-onglets a{padding:6px 12px;font-size:13px}
.espace-liens .btn+.btn{margin-left:8px}
@media (max-width:640px){   /* téléphone : fenêtres en plein écran */
  dialog.fenetre,dialog.fenetre-large{width:100%;max-width:100%;height:100%;max-height:100%;margin:0;border:0;border-radius:0;padding:16px max(16px,env(safe-area-inset-left,0px)) max(16px,env(safe-area-inset-bottom,0px))}
  dialog.fenetre[open]:not(:modal){margin:0}
  .fenetre-actions{position:sticky;bottom:0;padding:12px 0 4px;background:var(--surface)}
}
dialog.fenetre:focus,dialog.fenetre:focus-visible{outline:none}   /* pas de contour noir à l'ouverture : le focus va au premier champ (28/10/2026) */
/* Accueil avant les cours, parcours simplifié (28/10/2026) : attente de validation EDOF ou compte à rebours, fournitures à cocher */
.attente{display:grid;gap:22px}
.attente-hero{position:relative;padding:clamp(24px,4vw,44px);border-radius:var(--rayon,22px);background:linear-gradient(140deg,var(--prune,#3A0B2A) 0%,var(--prune-2,#5E1D47) 100%);color:#FFF5F9;overflow:hidden}
.attente-hero .eyebrow{color:#FFB3CB}
.attente-hero h1{margin:6px 0 12px;font-size:clamp(28px,4vw,44px);line-height:1.12;max-width:22ch;color:#FFF5F9}
.attente-intro{max-width:62ch;margin:0 0 16px;color:#FCE4EE}
.attente-statut{margin:0 0 4px}
.attente-mcf.btn{font-size:16px}
.attente-petit{margin:10px 0 0;font-size:13px;color:#F3C9D9}
.attente-jours{position:absolute;right:clamp(16px,4vw,44px);top:50%;transform:translateY(-50%);display:grid;place-items:center;width:132px;height:132px;margin:0;border-radius:50%;background:rgba(255,255,255,.1);box-shadow:0 0 0 1px rgba(255,255,255,.22) inset}
.attente-jours b{font:400 52px/1 var(--serif)}
.attente-jours span{font-size:13px;letter-spacing:.12em;text-transform:uppercase}
.attente-hero:has(.attente-jours) h1,.attente-hero:has(.attente-jours) .attente-intro{padding-right:150px}
.attente-bloc{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:clamp(18px,3vw,28px)}
.attente-bloc h2{margin-top:0}
.attente-bloc h3{margin:18px 0 6px}
.attente-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:22px;align-items:start}
.attente-etapes{list-style:none;counter-reset:etape;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:18px}
.attente-etapes li{counter-increment:etape;display:grid;gap:4px;align-content:start}
.attente-etapes svg{width:100%;max-width:200px;height:auto;fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.attente-etapes svg .plein{fill:var(--accent);stroke:none}
.attente-etapes svg .trait-blanc{stroke:#fff;stroke-width:5}
.attente-etapes strong::before{content:counter(etape) ". ";color:var(--accent)}
.attente-etapes span{color:var(--ink-2);font-size:15px}
.attente-infos{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}
.attente-infos li{display:grid;grid-template-columns:9em minmax(0,1fr);gap:10px}
.attente-infos li>span:first-child{font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;color:var(--ink-2);padding-top:3px}
.attente-modules{margin:0;padding-left:20px;display:grid;gap:4px}
.attente-fournitures{display:grid;gap:16px}
.attente-fournitures fieldset{margin:0;padding:0;border:0;display:grid;gap:6px}
.attente-fournitures legend{font-weight:600;margin-bottom:4px}
.attente-fournitures .consent{display:flex;align-items:flex-start;gap:10px;font-size:15px;font-weight:400;letter-spacing:normal;text-transform:none}
.attente-fournitures .consent input{flex:none;margin-top:4px}
@media (max-width:640px){
  .attente-jours{position:static;transform:none;width:96px;height:96px;margin-top:14px}
  .attente-jours b{font-size:38px}
  .attente-hero:has(.attente-jours) h1,.attente-hero:has(.attente-jours) .attente-intro{padding-right:0}
  .attente-infos li{grid-template-columns:1fr;gap:2px}
}
.edof-valider{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:6px}
.edof-valider input[type=date]{width:auto;padding:6px 8px;font-size:14px}
.edof-valider .btn{padding:6px 12px;font-size:13px}
/* Progression : alertes de temps de lecture (fusion du 28/10/2026), entretien préalable sur l'accueil */
.progression-filtre{align-self:end;text-transform:none;letter-spacing:normal;font-size:14px;font-weight:500}
.alertes-detail summary{cursor:pointer;list-style:none;display:inline-block}
.alertes-detail summary::-webkit-details-marker{display:none}
.alertes-detail ul{margin:8px 0 0;padding-left:16px;display:grid;gap:8px;font-size:14px;min-width:260px}
.alerte-vue{color:var(--ink-2)}
.attente-entretien{border-color:var(--accent)}
.attente-rappel{margin:0 0 14px}
.entretien-calendrier{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:14px}
.entretien-jour{display:grid;gap:6px;align-content:start}
.entretien-date{margin:0;font-weight:600}
.entretien-jour form{margin:0;display:block}
.entretien-jour .btn{width:100%;justify-content:center;padding:8px 10px;font-size:14px;text-transform:none;letter-spacing:normal}
.entretien-aucun{margin-top:16px}
.entretien-aucun summary{cursor:pointer;font-weight:600;color:var(--accent)}

/* ---------------------------------------------------------------- Listes de l'équipe, lot 1 (28/10/2026) : barre de filtres et en-tête
   de tableau collés en haut, filtre à la saisie (bouton « Filtrer » seulement sans JavaScript), bouton « Filtres » sur téléphone,
   cartes-compteurs, lignes riches et cliquables, en-têtes d'étape lisibles et info-bulles (Dossiers), « Afficher plus ». */
.liste-barre{position:sticky;top:var(--liste-haut,0px);z-index:20;background:var(--bg);margin:0 -4px 14px;padding:10px 4px;border-bottom:1px solid var(--line)}
.liste-barre .espace-recherche{margin:0}
.listes-js .filtrer-sans-js{display:none}
.listes-js .espace-recherche[data-instantane]{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.espace-recherche[aria-busy="true"]{opacity:.75}
.filtres-bouton{display:none}
@media (max-width:700px){
  .listes-js .liste-barre .filtres-bouton{display:inline-flex;min-height:40px;padding:8px 18px}
  .listes-js .liste-barre:not(.filtres-ouverts) .espace-recherche{display:none}
  .listes-js .liste-barre.filtres-ouverts .espace-recherche{margin-top:10px}
}
.compteurs-liste{display:grid;grid-template-columns:repeat(auto-fit,minmax(138px,1fr));gap:10px;margin:0 0 14px}
.compteurs-liste a{display:block;padding:12px 14px;border-radius:14px;background:var(--surface);border:1px solid var(--line);text-decoration:none;color:var(--ink);transition:border-color .15s,box-shadow .15s}
.compteurs-liste a:hover{border-color:var(--accent);box-shadow:var(--ombre-1)}
.compteurs-liste a[aria-current]{border-color:var(--accent);background:var(--accent-doux,#FCE7EF);box-shadow:inset 0 0 0 1px var(--accent)}
.compteurs-liste b{display:block;font-family:var(--serif);font-weight:400;font-size:28px;line-height:1.1;color:var(--accent)}
.compteurs-liste span{font-size:13.5px;color:var(--ink-2)}
.compteurs-liste .compteur-a_traiter b{color:var(--rouge)}
.compteurs-liste .compteur-annulee b{color:var(--ink-2)}
@media (max-width:700px){.compteurs-liste{display:flex;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.compteurs-liste a{flex:0 0 auto;min-width:118px}}
.liste-total{margin:-4px 0 10px;font-size:14px}
.personne{display:flex;align-items:flex-start;gap:12px}
.personne .initiales{flex:0 0 auto;display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--accent-doux,#FCE7EF);color:var(--accent);font-size:13px;font-weight:600;letter-spacing:.03em}
h2.personne{align-items:center;flex-wrap:wrap;gap:10px}
.sous-ligne{display:block;margin-top:2px;font-size:13.5px;line-height:1.4;color:var(--ink-2)}
.sans-formation{font-style:italic}
.mini-heures{display:flex;align-items:center;gap:8px;margin-top:5px}
.mini-heures small{font-size:12.5px;color:var(--ink-2);white-space:nowrap}
.mini-barre{display:block;width:110px;height:6px;border-radius:6px;background:var(--surface-2);overflow:hidden}
.mini-barre>span{display:block;height:100%;border-radius:6px;background:var(--accent)}
.liste-table tbody tr[data-href]{cursor:pointer;transition:background-color .12s}
.liste-table tbody tr[data-href]:hover td{background:var(--surface-2)}
.afficher-plus{display:block;margin:0 auto 20px}
@media (min-width:641px){
  .lateral-equipe .liste-table,.liste-table{overflow:visible;background:none}
  .liste-table table{overflow:clip}
  .liste-table thead th{position:sticky;top:var(--filtres-h,0px);z-index:5}
}
.qualiopi.liste-table th.th-etape{text-transform:none;letter-spacing:0;font-size:12px;padding:12px 3px;text-align:center;min-width:0;white-space:nowrap}
.qualiopi.liste-table td{padding:10px 3px;min-width:0}
.qualiopi.liste-table td:first-child{padding-left:14px;min-width:13em}
.qualiopi.liste-table td:nth-child(2){padding-inline:10px;min-width:8em}
.qualiopi.liste-table td:nth-child(n+3){text-align:center}
.qualiopi.liste-table .td-formation{white-space:nowrap}
.qualiopi.liste-table .edof-valider{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.qualiopi.liste-table .edof-valider input{max-width:9.5em;padding:4px 6px;font-size:13px}
.qualiopi.liste-table .edof-valider .btn{padding:5px 10px;font-size:11px}
.point[data-info]{position:relative}
a.point-rouge{cursor:pointer;box-shadow:0 0 0 0 transparent;transition:box-shadow .15s}
a.point-rouge:hover,a.point-rouge:focus-visible{box-shadow:0 0 0 4px rgba(179,38,30,.22)}
@media (hover:hover){
  .point[data-info]:hover::after,.point[data-info]:focus-visible::after{content:attr(data-info);position:absolute;z-index:8;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);
    width:max-content;max-width:240px;padding:6px 10px;border-radius:8px;background:var(--ink);color:var(--bg);font-size:12.5px;line-height:1.35;white-space:normal;text-align:left;pointer-events:none}
}
@media (max-width:640px){
  .qualiopi.liste-table td{padding:4px 14px;text-align:left}
  .qualiopi.liste-table td:nth-child(n+3){text-align:left}
}
/* Largeur : en-têtes et dates repliables ; tableau encore trop large → défilement dans son cadre (classe posée par admin-listes.js) */
@media (min-width:641px){
  .liste-table th{white-space:normal}
  .lateral-equipe .liste-table td{min-width:0}
  .lateral-equipe .liste-table td[data-label="Apprenante"]{min-width:15em}
  .lateral-equipe .liste-table td[data-label*="connexion"],.lateral-equipe .liste-table td[data-label*="Inscrite"]{white-space:normal}
  .lateral-equipe .liste-table.liste-large{overflow-x:auto}
}
/* Téléphone (Dossiers) : les 10 étapes en grille de 5, libellé court au-dessus de la pastille */
@media (max-width:640px){
  .qualiopi.liste-table tr{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:10px 0}
  .qualiopi.liste-table td:nth-child(-n+2){grid-column:1/-1}
  .qualiopi.liste-table td:nth-child(n+3){display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 0;text-align:center}
  .qualiopi.liste-table td:nth-child(n+3)::before{font-size:10.5px;line-height:1.1}
}
@media (min-width:641px){
  .lateral-equipe .liste-table th{white-space:normal}
  .lateral-equipe .liste-table td[data-label="Apprenante"]{min-width:13em}
  .liste-table .statut{white-space:normal;display:inline-block}
}
/* Téléphone : nom et formation sur toute la largeur (sans libellé), petits champs deux par ligne, libellé au-dessus */
@media (max-width:640px){
  .liste-table td[data-label="Apprenante"]{display:block;padding-top:6px}
  .liste-table td[data-label="Apprenante"]::before{display:none}
  .liste-table:not(.qualiopi) tr{display:grid;grid-template-columns:1fr 1fr;column-gap:4px;padding:10px 0}
  .liste-table:not(.qualiopi) td[data-label="Apprenante"],.liste-table:not(.qualiopi) td[data-label="E-mail"]{grid-column:1/-1}
  .liste-table:not(.qualiopi) td:not([data-label="Apprenante"]){display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:5px 14px}
  .liste-table:not(.qualiopi) td:not([data-label="Apprenante"])::before{font-size:11.5px}
  .liste-table .mini-barre{width:90px}
  .qualiopi.liste-table td[data-label="Statut"]{grid-template-columns:none;display:block}
  .qualiopi.liste-table td[data-label="Statut"]::before{display:none}
}

/* Nouvelle inscription : identité reprise d'un compte, grisée (28/10/2026, recherche « Apprenante existante ? » de retour) */
.ni-identite input[readonly],.ni-identite select.ni-fige{background:var(--surface-2);color:var(--ink-2);border-style:dashed;cursor:not-allowed}
.ni-identite select.ni-fige{pointer-events:none}
.ni-verrou-note{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin:0;padding:8px 12px;border-radius:10px;background:var(--surface-2);font-size:14px;color:var(--ink-2)}
.ni-verrou-note[hidden]{display:none}

/* Avertissement (lot 2 des listes, 28/10/2026 : session créée sans formatrice) */
.espace-flash-avertissement{border-left-color:var(--orange,#B45F06);background:#FBF0D9}
/* Fiche du dossier : petits formulaires dans « Formation et financement » (dates de la session, formule, kit) sur une colonne qui rétrécit */
.kit-actions .espace-form{grid-template-columns:minmax(0,1fr)}
.kit-actions .espace-form input,.kit-actions .espace-form select{min-width:0;max-width:100%;width:100%}
/* Visios en calendrier (28/10/2026) : barre collée (formatrice + onglets), planning semaine / mois, un jour à la fois sur téléphone.
   Couleur par type : entretien préalable, rendez-vous formation, examen blanc ; réservé = fond teinté, libre = contour pointillé. */
:root{--cal-entretien:#6B4FA0;--cal-rdv:#1E6F78;--cal-examen:#B45F06;--cal-heure:56px}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--cal-entretien:#B9A3E8;--cal-rdv:#7CCFD8;--cal-examen:#F0A35A}}
:root[data-theme="dark"]{--cal-entretien:#B9A3E8;--cal-rdv:#7CCFD8;--cal-examen:#F0A35A}
.visio-barre{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:10px 18px}
.visio-barre .visio-choix{margin:0;min-width:min(100%,260px)}
.visio-barre .espace-onglets{margin:0}
.visio-barre .espace-onglets .pastille{margin-left:6px;padding:0 7px}
.visios .page-tete{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.visio-entretiens{display:grid;gap:18px}
.cal-entretien{--c:var(--cal-entretien)}.cal-rdv{--c:var(--cal-rdv)}.cal-examen_blanc{--c:var(--cal-examen)}
.cal-pastille{display:inline-block;width:12px;height:12px;border-radius:4px;background:var(--c,var(--gris));margin-right:6px;vertical-align:-1px}
.cal-pastille.cal-libre-exemple{background:transparent;border:2px dashed var(--ink-2)}
.cal{display:grid;gap:12px;margin-bottom:24px;scroll-margin-top:calc(var(--esp-haut,69px) + 90px)}
.cal-barre{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}
.cal-nav{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0}
.cal-nav .btn{padding:8px 14px;font-size:14px}
.cal-fleche{font-size:18px!important;line-height:1;padding:7px 14px!important}
.cal-titre{margin:0 0 0 6px;font-size:22px;text-wrap:balance}
.cal-vues{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden}
.cal-vues a{padding:8px 16px;font-size:14px;text-decoration:none;color:var(--ink)}
.cal-vues a[aria-current="page"]{background:var(--accent);color:var(--btn-ink)}
.cal-tel{display:none}
.cal-legende{display:flex;flex-wrap:wrap;gap:6px 16px;list-style:none;margin:0;padding:0;font-size:13px;color:var(--ink-2)}
.cal-jours{display:none}
.cal-semaine{display:grid;grid-template-columns:44px repeat(7,minmax(0,1fr));border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface)}
.cal-col-tete{height:40px;display:flex;align-items:center;justify-content:center;gap:4px;font-size:13px;color:var(--ink-2);border-bottom:1px solid var(--line)}
.cal-col-tete b{font-size:15px;color:var(--ink)}
.cal-aujourdhui .cal-col-tete b{display:inline-grid;place-items:center;min-width:26px;height:26px;border-radius:999px;background:var(--accent);color:var(--btn-ink)}
.cal-col-corps{position:relative;height:calc(var(--heures) * var(--cal-heure))}
.cal-col{border-left:1px solid var(--line);min-width:0}
.cal-heures span{position:absolute;right:6px;transform:translateY(-50%);font-size:11px;color:var(--ink-2);font-variant-numeric:tabular-nums}
.cal-heures span:first-child{transform:none;top:2px!important}
.cal-case{position:absolute;left:0;right:0;height:var(--cal-heure);border-top:1px solid var(--line)}
a.cal-case:hover{background:color-mix(in srgb,var(--accent) 7%,transparent)}
a.cal-case:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.cal-passe{background:color-mix(in srgb,var(--ink) 3%,transparent)}
.cal-creneau{position:absolute;z-index:2;min-height:24px;overflow:hidden;display:flex;flex-wrap:wrap;align-content:flex-start;gap:0 5px;padding:3px 6px;border-radius:8px;font-size:12.5px;line-height:1.3;text-decoration:none;color:var(--ink)}
.cal-creneau b,.cal-puce b{font-weight:600;font-variant-numeric:tabular-nums}
.cal-creneau span,.cal-puce span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal .cal-creneau,.cal .cal-puce,.cal .cal-num{color:var(--ink)}   /* plus fort que « .espace a » (couleur des liens) */
.cal .cal-libre{color:var(--ink-2)}
.cal-reserve{background:color-mix(in srgb,var(--c) 16%,var(--surface));border-left:3px solid var(--c)}
.cal-libre{background:var(--surface);border:1.5px dashed var(--c);color:var(--ink-2)}
.cal-creneau:hover,.cal-puce:hover{box-shadow:0 2px 8px color-mix(in srgb,var(--ink) 18%,transparent)}
.cal-creneau:focus-visible,.cal-puce:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.cal-mois{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface)}
.cal-mois-tete{padding:8px 6px;text-align:center;font-size:13px;color:var(--ink-2);border-bottom:1px solid var(--line)}
.cal-jour-mois{position:relative;min-height:104px;display:flex;flex-direction:column;gap:3px;padding:4px 4px 22px;border-top:1px solid var(--line);border-left:1px solid var(--line);min-width:0}
.cal-jour-mois:nth-child(7n+1){border-left:0}
.cal-hors-mois{background:color-mix(in srgb,var(--ink) 3%,transparent)}
.cal .cal-hors-mois .cal-num{color:var(--ink-2)}
.cal-case-jour{position:absolute;inset:0;z-index:0}
.cal-case-jour:hover{background:color-mix(in srgb,var(--accent) 6%,transparent)}
.cal-num{position:relative;z-index:1;align-self:flex-start;min-width:26px;height:26px;display:inline-grid;place-items:center;border-radius:999px;font-size:13px;text-decoration:none;color:var(--ink)}
.cal .cal-aujourdhui .cal-num{background:var(--accent);color:var(--btn-ink)}
.cal-puce{position:relative;z-index:1;display:flex;gap:4px;padding:2px 6px;border-radius:6px;font-size:12px;text-decoration:none;color:var(--ink);min-width:0}
.cal-vide{margin:0}
.cal-detail{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 16px;margin:0 0 6px}
.cal-detail dt{font-size:13px;color:var(--ink-2)}
.cal-detail dd{margin:0;overflow-wrap:anywhere}
.cal-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.cal-actions form{margin:0}
.cal-actions p{flex-basis:100%;margin:0}
@media (max-width:700px){
  .cal-ordi{display:none}.cal-tel{display:inline}
  .cal-titre{font-size:18px;flex-basis:100%;margin:4px 0 0}
  .cal-jours{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
  .cal-jours a{display:grid;justify-items:center;padding:6px 0;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:var(--ink);font-size:12px;position:relative}
  .cal-jours a b{font-size:15px}
  .cal-jours a[aria-current="true"]{background:var(--accent);border-color:var(--accent);color:var(--btn-ink)}
  .cal-point{position:absolute;top:4px;right:6px;width:6px;height:6px;border-radius:50%;background:currentColor}
  .cal-semaine{grid-template-columns:44px minmax(0,1fr)}
  .cal-col{display:none}.cal-col.cal-actif{display:block}
  .cal-creneau{font-size:14px;padding:5px 8px}
  .cal-jour-mois{min-height:64px;padding:3px 2px 16px}
  .cal-puce{padding:1px 3px;font-size:11px}
  .cal-puce span{display:none}
}
/* Sessions d'examen en onglets (28/10/2026) : planning (classes cal-* de Visios), couleur par état ; date proposée en pointillé ;
   texte d'explication dans une info-bulle « ? » (details, sans JavaScript). */
:root{--exa-brouillon:#7A6A72;--exa-prete:#B45F06;--exa-convoquee:#1F7A45;--exa-terminee:#6B4FA0;--exa-annulee:#A99BA2;--exa-date:#B3245F}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--exa-brouillon:#B8A9B0;--exa-prete:#F0A35A;--exa-convoquee:#6FD39A;--exa-terminee:#B9A3E8;--exa-annulee:#7D6C75;--exa-date:#F48FB8}}
:root[data-theme="dark"]{--exa-brouillon:#B8A9B0;--exa-prete:#F0A35A;--exa-convoquee:#6FD39A;--exa-terminee:#B9A3E8;--exa-annulee:#7D6C75;--exa-date:#F48FB8}
.cal-exa-brouillon{--c:var(--exa-brouillon)}.cal-exa-prete{--c:var(--exa-prete)}.cal-exa-convoquee{--c:var(--exa-convoquee)}.cal-exa-terminee{--c:var(--exa-terminee)}.cal-exa-annulee{--c:var(--exa-annulee)}.cal-exa-date{--c:var(--exa-date)}
.cal .cal-exa-annulee span{text-decoration:line-through}
.cal-creneau[data-examen] span{white-space:normal}   /* blocs hauts : certificateur, candidates et mode sur plusieurs lignes */
.examens .page-tete{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.titre-aide{display:flex;align-items:center;gap:10px;min-width:0}
.titre-aide h1{margin:0}
.aide{border:0;padding:0}   /* sans le style des questions fréquentes du site (site.css : details, summary) */
.aide>summary{list-style:none;display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;border:1px solid var(--line);color:var(--ink-2);font:600 15px/1 var(--sans);cursor:pointer;user-select:none}
.aide>summary::after,.aide[open]>summary::after{content:none}
.aide>summary::-webkit-details-marker{display:none}
.aide>summary:hover,.aide[open]>summary{border-color:var(--accent);color:var(--accent)}
.aide>summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.aide-texte{position:absolute;z-index:40;top:calc(100% + 8px);left:0;width:min(560px,100%);box-sizing:border-box;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--ombre-1);font-size:14px;color:var(--ink-2)}
.aide-texte p{margin:0;max-width:none}.aide-texte p+p{margin-top:8px}
.examen-etat{display:inline-flex;align-items:center;gap:6px}
.examen-etat::before{content:"";width:10px;height:10px;border-radius:3px;background:var(--c,var(--gris))}
.examen-etat-brouillon{--c:var(--exa-brouillon)}.examen-etat-prete{--c:var(--exa-prete)}.examen-etat-convoquee{--c:var(--exa-convoquee)}.examen-etat-terminee{--c:var(--exa-terminee)}.examen-etat-annulee{--c:var(--exa-annulee)}
.compteurs-liste .compteur-examen-brouillon b{color:var(--exa-brouillon)}.compteurs-liste .compteur-examen-prete b{color:var(--exa-prete)}
.compteurs-liste .compteur-examen-convoquee b{color:var(--exa-convoquee)}.compteurs-liste .compteur-examen-terminee b{color:var(--exa-terminee)}
/* Certifications (page Certificateurs, 28/10/2026) : cartes, fenêtre de création (compétences, épreuves, barème). */
.certif-titre{margin:26px 0 12px}
.certif-liste{display:grid;gap:14px}
.certif-liste .certif-nom{margin:0 0 6px;font-family:var(--serif);font-weight:400;font-size:22px;letter-spacing:0;text-transform:none;color:var(--ink)}   /* pas le style d'étiquette des h3 de carte */
.certif-form fieldset{border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:0;min-width:0}
.certif-form legend{padding:0 6px;font-weight:600}
.certif-lignes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px}
.certif-epreuves{display:grid;gap:10px}
.certif-epreuve{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) 88px;gap:10px;align-items:end}
.certif-bareme{display:grid;grid-template-columns:repeat(2,minmax(0,180px));gap:14px}
@media (max-width:700px){.certif-lignes,.certif-bareme{grid-template-columns:minmax(0,1fr)}.certif-epreuve{grid-template-columns:minmax(0,1fr) 88px}.certif-epreuve label:first-child{grid-column:1 / -1}}

/* Tchat entre apprenantes (29/10/2026) : même cadre que la messagerie ; actions discrètes sous la bulle, citation, médias, rappel
   du droit à l'image, choix du salon sur téléphone (la liste des salons est cachée sous 1024 px). */
.tchat-un-salon{grid-template-columns:minmax(0,1fr)!important}
.tchat-choix-salon{display:flex;gap:6px;align-items:center;margin-left:auto}
.tchat-choix-salon select{max-width:46vw}
@media (min-width:1024px){.msg-cadre:not(.tchat-un-salon) .tchat-choix-salon{display:none}}
.tchat-lien-moderation{margin:12px 16px;font-size:14px}
.tchat-message .message-bulle{max-width:100%}
.tchat-actions{display:flex;flex-wrap:wrap;align-items:flex-start;gap:4px 12px;margin-top:4px;font-size:13px}
.tchat-lien{background:none;border:0;padding:0;font:inherit;font-size:13px;color:var(--ink-2);text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.tchat-lien:hover,.tchat-lien:focus-visible{color:var(--accent)}
.tchat-detail>summary{list-style:none;display:inline;font-family:var(--sans);font-size:13px;padding:0;border:0;margin:0}   /* sans le style des questions fréquentes du site */
.tchat-detail>summary::-webkit-details-marker{display:none}
.tchat-detail>summary::after,.tchat-detail[open]>summary::after{content:none}
.tchat-detail{border:0;padding:0;margin:0}
.tchat-detail[open]{flex-basis:100%}
.tchat-form-action{display:grid;gap:6px;margin-top:6px;max-width:420px}
.tchat-form-action label{display:grid;gap:2px;font-size:13px}
.tchat-inline{display:inline;margin:0}
.tchat-retour{margin:0}
.tchat-cite{margin:2px 0 6px;padding:4px 10px;border-left:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 6%,transparent);border-radius:6px;font-size:13px;color:var(--ink-2)}
.tchat-trace{font-style:italic;color:var(--ink-2)}
.tchat-bandeau{margin:0 0 4px;font-size:12px;color:var(--ink-2)}
.tchat-masque .message-bulle{border-style:dashed;opacity:.9}
.tchat-medias video{display:block;width:260px;max-width:100%;height:auto;max-height:340px;border-radius:12px;background:#000}
.tchat-vide{list-style:none;text-align:center;padding:32px 12px}
.tchat-reponse-a{margin:0 0 4px;font-size:13px;color:var(--ink-2)}
.tchat-droit-image .aide{margin:0}
.tchat-droit-image .consent{margin-top:4px;font-size:13px}
.tchat-charte{margin:12px;flex:0 0 auto;max-height:42vh;overflow-y:auto}
.tchat-charte ul{padding-left:20px}
.tchat-moderation .tchat-decisions{min-width:220px}
.tchat-moderation .tchat-decisions .tchat-detail[open]{display:block}
@media (max-width:560px){.tchat-medias video{width:100%}}

/* Fenêtre d'inscription (29/10/2026) : suggestions d'adresse (Base adresse nationale) sous le champ */
.nouvelle-inscription .ni-adresse{position:relative;display:grid}
.nouvelle-inscription .ni-adresse-liste{position:absolute;left:0;right:0;top:100%;z-index:5;margin:2px 0 0;padding:4px 0;list-style:none;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 24px rgba(43,30,36,.12);max-height:260px;overflow-y:auto}
.nouvelle-inscription .ni-ac-item{display:grid;gap:1px;padding:7px 12px;cursor:pointer;font-size:14px}
.nouvelle-inscription .ni-ac-item span{font-size:12px;color:var(--ink-2)}
.nouvelle-inscription .ni-ac-item:hover,.nouvelle-inscription .ni-ac-item.is-active{background:color-mix(in srgb,var(--accent) 8%,var(--surface))}
/* Onglet Certifications de Documents officiels (29/10/2026) : tableau des documents dans chaque carte ; téléphone : libellé au-dessus */
.certif-docs .espace-table{margin-bottom:12px}
@media (max-width:760px){.certif-docs .espace-table td{grid-template-columns:minmax(0,1fr);gap:2px}.certif-docs .espace-table td a.btn{white-space:normal!important}}
/* Avant la validation de l'inscription (29/10/2026) : bloc Fournitures et entrée Documents visibles, grisés, non cliquables */
.attente-grise{opacity:.62}
.attente-grise .attente-mention{margin:0 0 10px}
.attente-grise .attente-fournitures input{cursor:not-allowed}
.attente-fournitures .consent{flex-wrap:nowrap}.attente-fournitures .consent span{flex:1}   /* libellé long à côté de la case, pas dessous (défaut existant, 29/10/2026) */
.lat-grise{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;color:var(--ink-2);opacity:.6;cursor:not-allowed}
.lat-grise .lat-icone{flex:none}
.lat-grise > span{display:grid}
.lat-grise small{font-size:12px;line-height:1.3}
/* Onglet Certifications en liste (29/10/2026) : une ligne par certification ou certificateur, détail au clic */
.certif-ligne{padding:0}
.certif-ligne > summary.certif-resume{position:relative;display:grid;grid-template-columns:minmax(70px,auto) minmax(0,2fr) minmax(0,2fr) auto auto;gap:6px 14px;align-items:center;padding:14px 44px 14px 18px;cursor:pointer;list-style:none}
.certif-ligne > summary.certif-resume::-webkit-details-marker{display:none}
.certif-ligne > summary.certif-resume::after{content:"+";color:var(--accent);font-weight:600;position:absolute;right:18px;top:50%;transform:translateY(-50%)}
.certif-ligne[open] > summary.certif-resume::after{content:"−"}
.certif-ligne[open] > summary.certif-resume{border-bottom:1px solid var(--line)}
.certif-code{font-weight:600;font-variant-numeric:tabular-nums}
.certif-intitule{font-family:var(--serif);font-size:18px}
.certif-qui,.certif-nombres{color:var(--ink-2);font-size:14px}
.certif-detail{padding:14px 18px 18px}
.certif-programme{display:grid;gap:6px;padding:10px 0;border-top:1px solid var(--line)}
.certif-programme:first-of-type{border-top:0}
@media (max-width:760px){.certif-ligne > summary.certif-resume{grid-template-columns:auto minmax(0,1fr) auto}.certif-qui,.certif-nombres{grid-column:1 / -1}.certif-conv{grid-column:1 / -1}}
/* Plannings : glisser-déposer (29/10/2026) */
.cal [data-deplacer]{cursor:grab}
.cal .cal-glisse{opacity:.45}
.cal .cal-cible{background:color-mix(in srgb,var(--accent) 18%,transparent);outline:2px dashed var(--accent);outline-offset:-2px}
.cal-deplacer{margin:4px 0 10px}
.cal-deplacer > summary{cursor:pointer;color:var(--accent);font-weight:600}
/* Sessions visio (module visio, lot V1, 29/10/2026) */
.visio-total{font-family:var(--sans);font-size:14px;font-weight:400;margin-left:8px}
.visio-seances-carte{grid-column:1 / -1;order:1}
.visio-seances-table td{vertical-align:top}
.visio-seances-table td[data-label=Horaire],.visio-seances-table td[data-label=Date]{white-space:nowrap}
.visio-seance-actions-cell{text-align:right}
.visio-seance-actions{display:inline-block;border:0;padding:0;margin-left:12px;text-align:left}
.visio-seance-actions>summary{display:inline;font:600 14px var(--sans);color:var(--accent)}
.visio-seance-actions>summary::after,.visio-seance-ajout>summary::after{content:none}
.visio-seance-actions[open]{display:block;margin:8px 0 0}
.visio-seance-actions form{min-width:min(100%,420px)}
.visio-seance-ajout{border:0;padding-block:12px 0}
.visio-seance-ajout>summary{display:inline-flex;font:600 15px var(--sans);color:var(--accent)}
.visio-fiche{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;align-items:start}
.visio-seance-annulee{color:var(--ink-2);text-decoration:line-through}
.visio-seance-annulee .pastille,.visio-seance-annulee .muted{text-decoration:none}
.visio-lancer details > summary{list-style:none;display:inline-block}
.visio-jours{display:flex;flex-wrap:wrap;gap:6px 14px;border:0;padding:0;margin:0}
.visio-jours legend{padding:0;margin-bottom:6px}
.visio-planifie{border:0;padding:0;margin:0;display:grid;gap:6px}
.visio-ajout-cours{display:flex;flex-wrap:wrap;gap:4px 24px;align-items:flex-start}
.visio-ajout-cours details[open]{flex-basis:100%}
/* Visio V2a (29/10/2026) : planning de la session dans « Nouvelle inscription » et accueil de l'apprenante */
.ni-planning{border:1px solid var(--line);border-radius:12px;padding:10px 14px}
.ni-planning-liste,.visio-planning-apprenante{margin:6px 0 0;padding-left:22px;display:grid;gap:4px;font-size:14px}
.visio-planning-apprenante{font-size:15px;gap:6px}
.visio-supports-carte{grid-column:1 / -1;order:2}
.visio-supports{list-style:none;margin:6px 0 12px;padding:0;display:grid;gap:6px}
.visio-supports li{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
.visio-support-retirer{display:inline;margin:0}
.visio-supports-carte h3{margin-top:14px}
/* Cours des sessions visio, comme proxiforma (lot « Cours A », 29/10/2026) : calendrier, liste, fiche session, détail d'un cours */
.cal-cours{border-left:4px solid #3B6FB6;background:#EAF1FB;color:#1E3A5F}
.cal-cours-aujourdhui{border-left-color:#C47F0E;background:#FDF3E1;color:#5E3B04}
.cal-cours-en_direct{border-left-color:#1F7A45;background:#E3F4EA;color:#14532D}
.cal-cours-passe{border-left-color:#8C8C8C;background:#F1F1F1;color:#555}
.cal-cours-annule{border-left-color:#C0392B;background:#FBEAEA;color:#7A2A22;opacity:.6;text-decoration:line-through}
.cal-cours-semaine .cal-creneau{display:flex;flex-direction:column;gap:1px;overflow:hidden;font-size:12px;line-height:1.25;padding:3px 5px}
.cal-cours-titre{font-weight:600}.cal-cours-rang{font-style:normal;font-size:11px;background:rgba(0,0,0,.08);border-radius:6px;padding:0 4px}
.cal-cours-sous{font-size:11px;opacity:.85}.cal-cours-badge{font-size:10px;font-weight:700;letter-spacing:.04em}
.cal-plus{display:block;font-size:12px;color:var(--accent);margin-top:2px}
.cours-compteurs{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 14px;padding:0}
.cours-compteurs li{border:1px solid var(--line);border-radius:12px;padding:8px 12px;font-size:13px;color:var(--ink-2);background:#fff}
.cours-compteurs b{display:block;font-family:var(--serif);font-weight:400;font-size:24px;color:var(--ink)}
.cours-compteur-direct b,.cours-c-confirme b{color:#1F7A45}.cours-c-nrp b{color:#C47F0E}.cours-c-absent b{color:#C0392B}
.cours-bascule{margin:0 0 12px}
.cours-filtres{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:flex-end;margin-bottom:12px}.cours-recherche{min-width:min(100%,320px)}
.cours-jour{font-size:15px;margin:18px 0 8px}
.cours-carte{display:grid;gap:4px;text-decoration:none;color:inherit;border-left:4px solid #3B6FB6;margin-bottom:8px}
.cours-carte.cal-cours-aujourdhui{border-left-color:#C47F0E}.cours-carte.cal-cours-en_direct{border-left-color:#1F7A45}.cours-carte.cal-cours-passe{border-left-color:#8C8C8C}.cours-carte.cal-cours-annule{border-left-color:#C0392B;opacity:.7}
.cours-carte-tete{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-weight:600}
.cours-presences{font-size:13px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.cours-barre{display:inline-flex;width:120px;height:6px;border-radius:3px;background:var(--line);overflow:hidden}
.cours-barre i{display:block;height:100%}.cours-barre .b-confirme{background:#1F7A45}.cours-barre .b-nrp{background:#C47F0E}.cours-barre .b-absent{background:#C0392B}
.visio-onglets{margin:6px 0 16px}
.cours-onglet-tete{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px}
.cours-lignes{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.cours-ligne{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff}
.cours-ligne-passe{background:#F7F7F7}.cours-ligne-annule{background:#FBEAEA}
.cours-ligne-corps p{margin:0 0 4px}.cours-ligne-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.cours-ligne-actions .btn,.cours-presence-boutons .btn{padding:6px 10px;font-size:13px;min-height:0}
.cours-date{display:grid;place-items:center;width:52px;height:56px;border-radius:12px;background:var(--surface-2,#F4E9EE);text-decoration:none;color:var(--ink);line-height:1.05}
.cours-date span{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}.cours-date b{font-family:var(--serif);font-weight:400;font-size:24px}
.cours-date-auj{background:#E3F4EA}
.cours-annule{color:#7A2A22;font-size:13px}
.cours-detail-tete{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:start;margin-bottom:12px}
.cours-detail-tete h1{margin:4px 0}.cours-detail-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.cours-lien{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}.cours-lien label{flex:1 1 280px}
.cours-rattacher{border:1px solid #E7C27A;background:#FDF3E1;border-radius:12px;padding:10px 12px;margin-bottom:12px;display:grid;gap:6px}
.cours-participants{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.cours-participant{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 16px;align-items:center;border-top:1px solid var(--line);padding-top:8px}
.cours-presence-boutons{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.cours-presence-boutons [aria-pressed=true]{background:var(--ink);color:#fff}
.cours-absent{display:inline-block;border:0;padding:0}.cours-absent>summary{display:inline-flex;list-style:none}.cours-absent>summary::after{content:none}.cours-absent[open]{display:block;flex-basis:100%}
.visio-prochains{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:6px}
@media (max-width:760px){.cours-ligne{grid-template-columns:auto minmax(0,1fr)}.cours-ligne-actions{grid-column:1 / -1;justify-content:flex-start}.cours-detail-tete{grid-template-columns:auto minmax(0,1fr)}.cours-detail-actions{grid-column:1 / -1;justify-content:flex-start}}
/* Salle et émargement des cours visio, comme proxiforma (V3, 29/10/2026) */
.cours-accueil{display:grid;gap:10px;max-width:640px}
.cours-salle{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px;align-items:start}
.cours-salle-visio .visio-cadre{height:72vh;min-height:420px}
.cours-sans-visio{display:grid;place-items:center;color:#fff;padding:20px;text-align:center}
.cours-panneau{display:grid;gap:8px;position:sticky;top:12px}
.cours-panneau h2{font-size:16px;margin:6px 0 0}
.cours-direct{list-style:none;margin:0;padding:0;display:grid;gap:6px;max-height:40vh;overflow:auto}
.cours-direct li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;border:1px solid var(--line);border-radius:10px;padding:6px 8px;font-size:14px}
.cours-direct li small{color:var(--ink-2)}.cours-direct .btn{margin-left:auto;padding:4px 8px;font-size:12px;min-height:0}
.cours-direct-signee{border-color:#1F7A45!important;background:#E3F4EA}.cours-direct-absente{border-color:#C0392B!important;background:#FBEAEA}
.cours-panneau-actions{display:flex;flex-wrap:wrap;gap:6px}.cours-panneau-actions .btn,.cours-ma-signature .btn{padding:7px 10px;font-size:13px;min-height:0}
.cours-etat-signature{font-weight:600}
.cours-canevas{width:100%;max-width:520px;height:auto;aspect-ratio:13/5;border:1px dashed var(--ink-2);border-radius:10px;background:#fff;touch-action:none;cursor:crosshair}
.cours-sig{height:42px;width:auto;vertical-align:middle;border:1px solid var(--line);border-radius:6px;background:#fff}
.cours-sig-formatrice{display:flex;flex-wrap:wrap;gap:8px 24px;align-items:center;margin-top:10px}
@media (max-width:900px){.cours-salle{grid-template-columns:minmax(0,1fr)}.cours-panneau{position:static}}
/* Prérequis programmables (29/10/2026) : réglages, fiche du dossier, fenêtre d'inscription, apprenante */
.reglages-prerequis{border:1px solid var(--line);border-radius:12px;padding:10px 14px;display:grid;gap:8px}
.prerequis-reglage{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:end;border-top:1px solid var(--line);padding-top:8px}
.prerequis-reglage .prerequis-libelle{grid-column:1 / -1}
.prerequis-ligne{border-top:1px solid var(--line);padding-top:8px;margin-top:8px}
.prerequis-valeur{background:var(--surface-2,#F4E9EE);border-radius:8px;padding:8px 10px;font-size:14px;white-space:normal}
.ni-prerequis{border:1px solid var(--line);border-radius:12px;padding:10px 14px;display:grid;gap:8px}
.ni-prerequis-ligne{display:grid;gap:4px;border-top:1px solid var(--line);padding-top:6px}.ni-prerequis-ligne p{margin:0}
.attente-prerequis ul{margin:0 0 10px;padding-left:20px}
@media (max-width:760px){.prerequis-reglage{grid-template-columns:minmax(0,1fr)}}
.fenetre form.brochures-regenerer,.brochures-regenerer{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;justify-items:start;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.brochures-regenerer h3{margin:0;font-size:1rem}
.entretiens-liste .entretien-ligne{display:flex;flex-wrap:wrap;gap:8px 12px;justify-content:space-between;align-items:center}.entretien-actions{display:flex;flex-wrap:wrap;gap:6px}
.entretiens-compteurs{margin:4px 0 16px}
.entretien-panneau{margin-top:16px;display:grid;gap:10px}.entretien-panneau h2{margin:0}.entretien-enreg{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pv-tete{display:grid;gap:4px;margin-bottom:12px}.pv-signatures{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin:8px 0 16px}
.pv-signature{margin:0;padding:10px;border:1px solid var(--line);border-radius:10px}.pv-signature img{max-width:100%;height:auto;display:block;background:#fff}.pv-signature figcaption{font-size:.82rem;color:var(--ink-2);margin-top:6px}
.pv-manquante{color:var(--rouge)}.pv-video{width:100%;max-width:640px;margin-top:6px}
@media print{.pas-imprime,.esp-nav,#esp-menu,.espace-nav,header.esp-entete,footer{display:none!important}.entretien-pv{max-width:none}}
.programmes-cartes{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;margin-top:16px}
.programme-carte{padding:0;overflow:hidden;display:grid;margin:0}.programme-carte>img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.programme-corps{padding:16px 18px;display:grid;gap:8px}.programme-corps h2{margin:0;font-size:1.15rem}
.programme-chiffres{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;font-size:.82rem;color:var(--ink-2)}.programme-chiffres b{display:block;color:var(--ink);font-size:.95rem}
.programme-panneau{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 16px}.programme-panneau>.full,.programme-panneau>fieldset,.programme-panneau>div{grid-column:1/-1}
.programme-ligne{display:grid;grid-template-columns:90px 1fr 90px;gap:8px 10px;padding:10px;border:1px solid var(--line);border-radius:10px;margin-bottom:8px}.programme-ligne>.full,.programme-ligne>button{grid-column:1/-1;justify-self:start}
.programme-photos{display:flex;flex-wrap:wrap;gap:10px}.programme-photos label{display:flex;align-items:center;gap:6px}.programme-photos img{width:110px;aspect-ratio:4/3;object-fit:cover;border-radius:8px;border:1px solid var(--line)}
@media (max-width:560px){.programme-ligne{grid-template-columns:1fr}.programme-chiffres{grid-template-columns:repeat(2,1fr)}}
.programme-panneau[hidden]{display:none}
.programme-corps .espace-liens{display:flex;flex-wrap:wrap;gap:8px;margin:0}.programme-corps .espace-liens .btn{margin:0;padding:8px 14px;font-size:12px}
/* Lot d1 (30/10/2026) : onglets Stagiaires (cartes, comme proxiforma) et Entretiens d'une session visio */
.visio-stagiaires-tete{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;margin-bottom:14px}.visio-stagiaires-tete h2,.visio-stagiaires-tete p{margin:0}
.visio-cartes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.visio-carte{border:1px solid var(--line);border-radius:14px;padding:14px;display:grid;gap:6px;align-content:start;min-width:0}
.visio-carte-nom{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;min-width:0}.visio-carte-nom strong{overflow-wrap:anywhere}
a.visio-carte-nom:hover strong{text-decoration:underline}
.visio-avatar{flex:none;display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent);font-weight:600;font-size:13px}
.visio-carte .pastille{justify-self:start}.visio-carte-mail{overflow-wrap:anywhere}
.visio-carte-presence{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}
.visio-carte-pied{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:4px}
.visio-carte-retirer{text-decoration:none;font-size:18px;line-height:1;padding:6px;border-radius:8px}.visio-carte-retirer:hover,.visio-carte-retirer:focus-visible{background:color-mix(in srgb,var(--rouge,#B3261E) 10%,transparent)}
.visio-carte-retiree{opacity:.65;background:var(--surface)}.visio-carte-retiree strong{text-decoration:line-through}
.visio-entretiens-liste{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px}
.visio-entretiens-liste li{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;border:1px solid var(--line);border-radius:12px;padding:10px 14px}
.visio-entretien-qui{display:grid;gap:2px;flex:1 1 240px;min-width:0}
.visio-entretien-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.visio-entretien-actions form{margin:0}
.visio-retirer-choix{border:0;padding:0;margin:0;display:grid;gap:6px}.visio-retirer-choix legend{font-weight:600;margin-bottom:4px}
.visio-retirer-dates{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px}
.visio-retirer-bloc[hidden]{display:none}
@media (max-width:560px){.visio-retirer-dates{grid-template-columns:1fr}}
.texte-alerte{color:var(--orange,#9A5B06);font-weight:500}
.visio-retirer .consent{display:flex;flex-wrap:nowrap;gap:10px;align-items:flex-start;text-transform:none;letter-spacing:normal;font-weight:400;font-size:15px;color:var(--ink)}
/* Lot d2 (30/10/2026) : vue d'ensemble d'une session visio (indicateurs, actions rapides, vignettes), liste, mobile */
.visio-indicateurs{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:0 0 16px}
.visio-indicateurs>div{display:grid;gap:2px;align-content:start;padding:14px 16px;margin:0}.visio-indicateurs .pastille{justify-self:start}
.visio-indicateurs b{font-family:var(--serif);font-weight:500;font-size:28px;line-height:1.1;margin-top:6px}
.visio-actions-rapides{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}.visio-actions-rapides .btn{display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px;margin:0}.visio-actions-rapides small{text-transform:none;letter-spacing:normal;font-weight:400}
.visio-prochains{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:8px}.visio-prochains a{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}.visio-prochains a>span:last-child{display:grid}
.visio-vignette{flex:none;display:grid;place-items:center;width:46px;height:50px;border-radius:10px;background:color-mix(in srgb,var(--accent) 10%,var(--surface));color:var(--accent);line-height:1}.visio-vignette small{font-size:10px;letter-spacing:.06em}.visio-vignette b{font-family:var(--serif);font-weight:500;font-size:20px}
td.nowrap .pastille,.nowrap .pastille{white-space:nowrap}
#fenetre-session select,#fenetre-session-modifier select{width:100%;max-width:none}
@media (max-width:640px){.visio-onglets{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}.visio-onglets a{flex:none}}
.fenetre .espace-form label small{text-transform:none;letter-spacing:normal;font-weight:400;font-size:13px}
/* Lot P4 (30/10/2026) : référentiel et concordance dans la fiche d'un programme */
.programme-concordance{border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:grid;gap:8px}.programme-concordance p{margin:0}
.programme-competences{margin:0;padding-left:18px;display:grid;gap:4px}.programme-certif-nouvelle{margin:0;align-self:end}
.autres-formations{margin:0 0 18px;padding:12px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
section.jury > h2{margin-top:28px}   /* lot B (30/10/2026) : titres de la page du certificateur détachés du texte qui précède */
.lateral-equipe .esp-lateral .lat-pied a{font-size:11.5px;line-height:1.45}   /* lot B (30/10/2026) : pied de la barre latérale de l équipe dans une seule taille */
.bandeau-smtp{background:#FBEAEA;color:#8A1F1F;border-color:#E9B8B8}   /* 30/10/2026 : e-mails non envoyés (admin) */
.bandeau-smtp a{color:inherit;font-weight:600}
.smtp-test-ok{margin:0;padding:10px 12px;border-radius:10px;background:#E8F5EC;color:#1F5E36}
.form-avertissement{margin:0;padding:10px 12px;border-radius:10px;background:#FFF4E5;color:#7A4A06}   /* lot C2 (30/10/2026) : avertissement au-dessus du bouton d une fenêtre (ancien confirm()) */
.dossier-page a.btn[data-ouvrir]{justify-self:start;align-self:start;width:fit-content;max-width:100%}   /* lot C2 : boutons des fenêtres à leur taille */
.dossier-pli a.btn[data-ouvrir]{display:inline-block;padding:4px 12px;font-size:11px;margin:4px 6px 0 0;box-shadow:none;border:1px solid var(--line)}   /* lot C2 : petits boutons dans les rubriques du bas */
.dossier-page .dossier-pli>dialog.fenetre{margin:auto}   /* lot C2 : la marge des rubriques repliables (premium.css) ne décentre pas les fenêtres */
.dossier-page .dossier-pli>dialog.fenetre[open]:not(:modal){margin:20px auto}
@media (max-width:640px){.dossier-page .dossier-pli>dialog.fenetre,.dossier-page .dossier-pli>dialog.fenetre[open]:not(:modal){margin:0}}

/* Lot C3 (31/10/2026) : formulaires des listes passés en fenêtre — disposition d'une fenêtre (une colonne), boutons à leur taille */
.annuaire-decision{grid-template-columns:auto auto;justify-content:start}
dialog.fenetre .tchat-form-action,.qualiopi.liste-table dialog.fenetre .edof-valider,dialog.fenetre .edof-valider{display:grid;grid-template-columns:1fr;gap:12px;max-width:none;margin:0}
dialog.fenetre .tchat-form-action label{font-size:inherit}
dialog.fenetre .tchat-form-action .btn{justify-self:start}
.qualiopi.liste-table dialog.fenetre .edof-valider input{max-width:none;padding:12px 14px;font-size:16px}
.qualiopi.liste-table dialog.fenetre .edof-valider .btn,dialog.fenetre .edof-valider .btn{padding:15px 26px;font-size:13px}
.tchat-moderation .tchat-decisions>a.tchat-lien{margin-right:10px}

/* Kit formatrice (31/10/2026) : page du kit, fenêtre d'un cours (déroulé en lignes), encart sur la fiche d'un cours */
.kitf-tete h2{margin:0 0 4px}
.kitf-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.kitf-controle{border-left:4px solid var(--orange)}
.kitf-controle h3{margin:0 0 6px}
.kitf-entete h3,.kitf-cours h3{margin:10px 0 4px}
.kitf-sommaire{display:grid;gap:4px}
.kitf-cours-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}
.kitf-cours-actions .inline-form{display:inline}
.kitf-table td:first-child,.kitf-table td:nth-child(2){white-space:nowrap}
.kitf-competences,.kitf-deroule{border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:grid;gap:6px;min-width:0}
.kitf-competences .consent{margin:0}
.kitf-deroule-tete,.kitf-ligne{display:grid;grid-template-columns:72px minmax(120px,190px) minmax(0,1fr);gap:6px}
.kitf-deroule-tete{font-size:.8rem;color:var(--ink-2)}
.kitf-ligne input{min-width:0;width:100%}
.kitf-encart>summary{cursor:pointer;display:block}
.kitf-encart[open] summary{margin-bottom:8px}
@media (max-width:600px){.kitf-deroule-tete{display:none}.kitf-ligne{grid-template-columns:64px minmax(0,1fr);}.kitf-ligne input[name="d_activite[]"]{grid-column:1/-1}}

/* Planning des formatrices (lot V4, 31/10/2026) : une ligne par formatrice, une colonne par jour ; carte par formatrice sur téléphone */
.visuellement-cache{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.planning-barre{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;align-items:center}
.planning-semaines,.planning-actions{display:flex;flex-wrap:wrap;gap:8px;margin:0}
.planning-filtre{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;margin:10px 0}
.planning-grille{display:grid;gap:8px;margin-top:8px}
.planning-ligne{display:grid;grid-template-columns:150px repeat(7,minmax(0,1fr));gap:6px;align-items:stretch}
.planning-tete span{font-size:.8rem;font-weight:600;color:var(--ink-2);text-align:center}
.planning-tete .planning-auj,.planning-jour.planning-auj{color:var(--accent)}
.planning-nom{display:grid;gap:4px;align-content:start;font-size:.9rem}
.planning-jour{border:1px solid var(--line);border-radius:10px;padding:6px;display:grid;gap:4px;align-content:start;min-height:64px;background:var(--surface)}
.planning-jour.planning-auj{border-color:var(--accent)}
.planning-jour-nom{display:none;font-size:.8rem;font-weight:600}
.planning-dispo{justify-self:start;font-size:.7rem}
.planning-item{display:grid;gap:1px;font-size:.75rem;line-height:1.3;border-radius:8px;padding:4px 6px;text-decoration:none;color:inherit;border-left:3px solid var(--accent);background:var(--surface-2,#faf5f7)}
.planning-item small{color:var(--ink-2)}
.planning-entretien{border-left-color:var(--orange)}.planning-rdv,.planning-examen_blanc{border-left-color:var(--vert)}
.planning-etat-annule{opacity:.5;text-decoration:line-through}.planning-etat-passe{opacity:.7}
.planning-hors{outline:2px dashed var(--orange);outline-offset:-2px}.planning-hors em{font-style:normal;font-weight:600;color:var(--orange)}
.planning-heures{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.planning-props{display:grid;gap:6px;margin:0;padding-left:18px}
.dispos-grille th,.dispos-grille td{text-align:center}.dispos-grille th[scope=row]{text-align:left}
.dispos-case{display:flex;justify-content:center;padding:4px}.dispos-case input{width:20px;height:20px}
@media (max-width:900px){.planning-tete{display:none}.planning-ligne{grid-template-columns:1fr;border:1px solid var(--line);border-radius:12px;padding:10px}.planning-jour-nom{display:block}.planning-jour{min-height:0}}

/* Rattrapage d'un cours manqué (lot V5, 31/10/2026) : choix du cours d'accueil, cours complet non proposé */
.cours-rattrapage-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
.rattrapage-choix{list-style:none;margin:8px 0;padding:0;display:grid;gap:8px}
.rattrapage-choix li{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.rattrapage-complet{opacity:.65}

/* Enregistrement des cours (lot V6, 31/10/2026) : mention « Ce cours est enregistré » (fiche, salle), zone de la formatrice, segments */
.cours-enregistre{border:2px solid var(--rouge);border-radius:12px;padding:10px 14px;margin:10px 0;display:grid;gap:4px;background:var(--surface)}
.cours-enregistre p{margin:0}.cours-enregistre strong{color:var(--rouge)}
.cours-enreg-zone{display:grid;gap:6px}
.cours-enreg-zone [hidden]{display:none}
.cours-enregistrements ul{margin:8px 0 0;padding-left:18px;display:grid;gap:4px}

/* Pendant la séance (lot V7, 31/10/2026) : documents partagés, outils de la visio */
.visio-supports li{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline}
.visio-outils-liste{list-style:none;margin:0;padding:0;display:grid;gap:6px}

/* Signature en ligne du contrat ou de la convention (lot V8, 31/10/2026) */
.signer-pdf{width:100%;height:70vh;min-height:420px;border:1px solid var(--line);border-radius:10px;margin-top:8px}
.signer-canevas{width:100%;max-width:600px;height:auto;aspect-ratio:3/1;border:1px dashed var(--ink-2);border-radius:10px;background:#fff;touch-action:none;display:block}
.doc-a-signer{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
/* Modèle d'inscription, lot M1 (31/10/2026) : dossier existant ajouté tel quel, origine et prix des stagiaires */
.ni-dossiers{display:grid;gap:10px;margin:0 0 14px}
.ni-dossier{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:0}
.ni-dossier p{margin:0;flex:1 1 260px}
.ni-exception{margin-top:6px}
.ni-exception>summary{cursor:pointer;color:var(--ink-2);margin-bottom:10px}
.visio-carte-origine{display:block;color:var(--ink-2)}
/* Factures des formatrices, lot V10 (1/11/2026) : totaux, actions, fenêtre d'une facture */
.factures-actions{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.factures-totaux{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:0 0 14px}
.factures-totaux .espace-carte{display:grid;gap:4px;margin:0}
.factures-totaux strong{font-size:1.4rem}
.factures-retard strong{color:var(--rouge)}
.facture-detail{display:grid;grid-template-columns:minmax(120px,auto) 1fr;gap:4px 12px;margin:0}
.facture-detail dt{color:var(--ink-2)}
.facture-detail dd{margin:0}
.facture-action{margin-top:8px}
/* Entreprises et devis, lot D1 (1/11/2026) */
.devis-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.devis-actions form.inline{margin:0}
.devis-refuser>summary{cursor:pointer;font-weight:500}
.devis-entreprise fieldset{border:0;padding:0;margin:0}
.devis-entreprise fieldset legend{padding:0;margin-bottom:6px}
/* Ateliers visio, lot A1 (1/11/2026) */
.atelier-carte{display:grid;gap:8px}
.atelier-carte h2{margin:0}
.atelier-carte p{margin:0}
/* Recherche d'entreprise (1/11/2026) */
.entreprise-recherche{position:relative}
.entreprise-suggestions{list-style:none;margin:4px 0 0;padding:4px;border:1px solid var(--line);border-radius:10px;background:var(--surface,#fff);max-height:260px;overflow:auto;display:grid;gap:2px}
.entreprise-suggestions li{padding:8px 10px;border-radius:8px;cursor:pointer}
.entreprise-suggestions li:hover,.entreprise-suggestions li:focus{background:var(--soft,#f6eef2);outline:none}
.entreprise-suggestions small{color:var(--ink-2)}
.entreprise-suggestions[hidden]{display:none}   /* le display:grid ci-dessus ne doit pas l'emporter sur « hidden » */
/* Sélection multiple avec recherche (1/11/2026) */
.selection-multiple{position:relative;display:grid;gap:6px}
.selection-pastilles{display:flex;flex-wrap:wrap;gap:6px}
.pastille-choix{display:inline-flex;align-items:center;gap:4px;padding:4px 6px 4px 12px;border-radius:999px;background:var(--soft,#f6eef2);font-size:13px}
.pastille-choix button{border:0;background:transparent;cursor:pointer;font-size:16px;line-height:1;padding:0 4px;color:inherit}
.selection-liste{list-style:none;margin:0;padding:4px;border:1px solid var(--line);border-radius:10px;background:var(--surface,#fff);max-height:220px;overflow:auto}
.selection-liste li{padding:7px 10px;border-radius:8px;cursor:pointer}
.selection-liste li:hover,.selection-liste li:focus{background:var(--soft,#f6eef2);outline:none}
.selection-raccourcis{display:flex;flex-wrap:wrap;gap:4px 12px;margin:0}
.fenetre .espace-form>fieldset{border:1px solid var(--line);border-radius:12px;padding:10px 14px 12px;margin:0;min-width:0;display:grid;gap:4px}.fenetre .espace-form>fieldset legend{padding:0 6px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600}
.selection-liste .selection-aucun{color:var(--ink-2);font-style:italic;cursor:default}
/* Bandeau « Prochaine étape » de l'espace apprenante (lot 3 de l'audit, 1/11/2026) */
.prochaine-etape{border:1px solid var(--line);border-radius:16px;background:var(--surface-2);padding:14px 16px;margin:0 0 18px;display:grid;gap:10px}
.prochaine-etape p{margin:0}.prochaine-etape-titre{font-weight:600}
.prochaine-etape-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.prochaine-etape-actions form{margin:0;display:inline-flex}.prochaine-etape-actions .btn{margin:0}
.prochaine-etape-liste{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 16px;font-size:14px}
.prochaine-etape-liste li::before{content:"○\00a0";color:var(--ink-2)}.prochaine-etape-liste li.pe-fait{color:var(--ink-2)}.prochaine-etape-liste li.pe-fait::before{content:"✓\00a0";color:var(--vert,#1F7A45)}
.prochaine-etape-liste li.pe-attente::before{content:"◔\00a0";color:var(--orange,#B45F06)}.prochaine-etape-liste li.pe-ici{font-weight:600}
.prochaine-etape-neutre{background:var(--surface)}
/* Confirmation avant une annulation ou une désinscription (audit B13, lot 3, 1/11/2026) */
details.confirmer{display:inline-block}details.confirmer>summary{list-style:none;cursor:pointer;display:inline-flex}details.confirmer>summary::-webkit-details-marker{display:none}
details.confirmer[open]>summary{opacity:.6}details.confirmer [data-confirmer]{margin-left:6px}
/* Lot 4 de l'audit (formatrice et visio, 1/11/2026) : pastilles longues à la ligne dans les fiches (C8/E5) ; disponibilités sur mobile avec le
   créneau en clair (C6) ; calendrier des cours sur téléphone en agenda, jours sans cours masqués (C12) ; titres de la fiche intervenante (C15) */
dd .statut,.cal-detail .statut{white-space:normal}
.fiche-intervenant h2{margin-top:28px}
@media (max-width:760px){
  .dispos-grille th[scope=row]{display:block;padding:10px 14px 2px;font-weight:600}
  .dispos-grille td{grid-template-columns:1fr auto;align-items:center;text-align:left}
  .dispos-grille td::before{font-size:14px;color:var(--ink)}
  .dispos-case{justify-content:flex-end}
}
@media (max-width:700px){
  .cal-cours-semaine{display:block;border:0;background:none}
  .cal-cours-semaine .cal-heures,.cal-cours-semaine .cal-col-vide,.cal-cours-semaine .cal-case,.cal-semaine-vide{display:none!important}
  .cal-cours-semaine .cal-col{border:1px solid var(--line);border-radius:12px;margin-bottom:10px;background:var(--surface)}
  .cal-cours-semaine .cal-col-tete{justify-content:flex-start;padding:0 12px;height:38px}
  .cal-cours-semaine .cal-col-corps{height:auto;display:grid;gap:6px;padding:8px}
  .cal-cours-semaine .cal-creneau{position:static;width:auto!important;height:auto!important;min-height:0;font-size:14px;padding:6px 8px}
  .cal-cours-semaine .cal-creneau span{white-space:normal}
}
/* Fil d'Ariane et « ← Retour » des pages de détail ; fiches en onglets, listes liées (règles permanentes du 2/11/2026) */
.fil-tete{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 16px;margin:0 0 10px}
.fil-ariane ol{display:flex;flex-wrap:wrap;align-items:center;gap:2px 0;list-style:none;margin:0;padding:0;font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--accent)}
.fil-ariane li{display:inline-flex;align-items:center;min-width:0}
.fil-ariane li+li::before{content:"›";margin:0 8px;color:var(--ink-2);font-weight:400}
.fil-ariane a{color:inherit;text-decoration:none}
.fil-ariane a:hover,.fil-ariane a:focus-visible{text-decoration:underline}
.fil-ariane li[aria-current="page"]{color:var(--ink);overflow-wrap:anywhere}
.fil-retour{display:inline-flex;align-items:center;gap:4px;padding:6px 14px;border:1px solid var(--line);border-radius:999px;font-size:14px;color:var(--ink);text-decoration:none;white-space:nowrap}
.fil-retour:hover,.fil-retour:focus-visible{border-color:var(--accent);color:var(--accent)}
.fiche-onglets{position:sticky;top:var(--esp-haut,0px);z-index:3;background:var(--bg,#fff);padding:8px 0;margin-bottom:16px;border-bottom:1px solid var(--line)}
.fiche-nb{display:inline-block;min-width:20px;padding:0 6px;margin-left:4px;border-radius:999px;background:var(--line);color:var(--ink);font-size:12px;text-align:center}
.espace-onglets a[aria-current="page"] .fiche-nb{background:rgba(255,255,255,.25);color:inherit}
.fiche-resume{display:flex;flex-wrap:wrap;gap:8px 24px;align-items:baseline;margin:0 0 14px}
.liste-liee-barre{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:0 0 12px}
.liste-liee-barre h2{margin:0;font-size:20px;flex:1 1 auto}
.liste-liee-recherche input{min-width:200px;padding:7px 12px;border:1px solid var(--line);border-radius:999px;font:inherit;font-size:14px;background:var(--bg,#fff);color:var(--ink)}
@media (max-width:640px){.fil-ariane ol{font-size:11px}.liste-liee-recherche,.liste-liee-recherche input{width:100%;min-width:0}}
@media print{.fil-tete{display:none}}
.fiche-panneau>.dossier-bloc,.fiche-panneau>.espace-grille{margin-bottom:16px}
.dossier-bloc h2 small{font-family:var(--sans);font-size:14px;font-weight:400}
.dossier-barre{flex-wrap:wrap}
.dossier-barre .fil-tete,.fil-tete .fil-ariane{flex:1 1 auto;min-width:0}
.fil-ariane li{flex-wrap:wrap}
.dossier-page>*,.fiche-panneau>*{min-width:0}

/* Évaluations (lot Évaluations, 3/11/2026) : filtres sur une ligne, questions du questionnaire, chiffres de l'accueil */
.espace-recherche.evaluations-filtres{grid-template-columns:repeat(5,minmax(0,1fr)) auto}
@media (max-width:900px){.espace-recherche.evaluations-filtres{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.espace-recherche.evaluations-filtres{grid-template-columns:1fr}}
.questionnaire-questions{padding-left:22px}
.questionnaire-questions li{padding:10px 0;border-bottom:1px solid var(--line)}
.questionnaire-questions .espace-liens{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:6px}
.form-inline{display:inline}
.indicateur-chiffre{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;border:1px solid var(--line);border-radius:12px;padding:10px 14px}
.indicateur-chiffre legend{font-weight:600;padding:0 6px}
@media (max-width:560px){.indicateur-chiffre{grid-template-columns:1fr}}
.evaluation-reponses dd{white-space:pre-line}

/* Lot Entreprise (3/11/2026) : exemples « Ex. : » en gris clair dans les champs ; actions des interlocuteurs */
.espace-form input::placeholder,.espace-form textarea::placeholder,.espace-recherche input::placeholder,.liste-barre input::placeholder{color:#B9A8B0;opacity:1}
.contact-actions{display:inline-flex;flex-wrap:wrap;gap:10px;margin-left:8px;vertical-align:baseline}
.entreprise-contact-nouveau{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;border:1px solid var(--line);border-radius:12px;padding:10px 14px}
@media (max-width:560px){.entreprise-contact-nouveau{grid-template-columns:1fr}}

/* Application installable (lot PWA, 3/11/2026) : étapes d'installation */
.appli-etapes{display:grid;gap:8px;padding-left:20px;margin:0 0 12px}
/* Entrée de la console (lot M4, 4/11/2026) : bandeau prune en lecture seule, rouge en modification */
.bandeau-console{position:sticky;top:0;z-index:40}
.bandeau-console .lien-bouton{color:#FFF5F9;text-decoration:underline}
.bandeau-console-form{display:inline;margin:0}
.bandeau-console-modif{background:#9B1C31}
/* Création simplifiée (4/11/2026) : carte « À compléter avant d'inscrire » du tableau de bord d'un organisme */
.admin-a-completer{margin:0 0 18px;border-color:#D6246E;border-width:2px}
.admin-a-completer ul{margin:0;padding-left:18px;display:grid;gap:6px}
/* Logo d'un organisme (4/11/2026) : même encombrement que le logo de l'Atelier, quel que soit son format (carré, large, fond noir) :
   hauteur 56 px au plus, largeur du menu au plus, image entière (contain), centrée ; fond du menu inchangé. */
.logo-organisme{display:block;width:auto;height:auto;max-width:100%;max-height:56px;object-fit:contain;margin:0 auto}
.esp-top .logo:has(.logo-organisme){flex:1;min-width:0;display:flex;align-items:center;justify-content:center;line-height:0;overflow:visible;padding:4px 0}
.connexion-organisme{display:flex;justify-content:center;margin:0 0 12px}
.connexion-organisme .logo-organisme{max-width:min(100%,208px)}
@media (max-width:1023px){.esp-top-lateral .logo-organisme{max-height:44px}.esp-top-lateral .logo:has(.logo-organisme){margin-right:56px}}   /* barre mobile de 52 px ; marge = bouton du menu et son écart (40 + 16 px, 40 + 8 px sous 480 px) : logo centré sur l'écran */
@media (max-width:480px){.esp-top-lateral .logo:has(.logo-organisme){margin-right:48px}}
/* 4/11/2026 : aucune transition ni animation du menu latéral et de l'en-tête au chargement (classe retirée après le premier affichage) */
.chargement .esp-lateral,.chargement .esp-lateral *,.chargement .esp-top,.chargement .esp-top *{transition:none!important;animation:none!important}
.logo-organisme{aspect-ratio:auto}

/* Banque d'images commune dans l'éditeur de cours (4/11/2026) */
.banque-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;max-height:360px;overflow:auto;padding:4px}
.banque-vignette{display:grid;gap:4px;font-size:12px;line-height:1.3;border:1px solid var(--line);border-radius:10px;padding:6px;cursor:pointer;background:var(--surface,#fff)}
.banque-vignette img{width:100%;height:96px;object-fit:contain;background:#faf6f4;border-radius:6px}
.banque-vignette input{position:absolute;opacity:0}.banque-vignette:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}
.banque-vignette:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}
.banque-vignette span{text-transform:none;letter-spacing:normal;font-weight:500;font-size:12.5px;color:var(--ink)}
.admin-console-qui{margin:6px 0 18px;color:var(--ink-2)}   /* entrée depuis la console (4/11/2026) : « Vous êtes …, depuis la console PROXIFORM — mode » sous le titre */
.pastille-import{background:#ECE6E9;color:#4A3F45;box-shadow:inset 0 0 0 1px #8A7A82}.point-import{background:#8A7A82}.frise-import .frise-point{background:#8A7A82;color:#fff}.etape-import summary{opacity:.85}   /* « fait avant import (ancienne plateforme / EDOF) » : gris plein, distinct du gris « en attente » (anneau) (4/11/2026) */
/* Documents de l'apprenante (5/11/2026) : supports par module, miniatures des fiches et schémas, aperçu */
.doc-module{margin:10px 0 0;border:1px solid var(--line);border-radius:12px;padding:8px 12px}
.doc-module>summary{display:flex;align-items:center;gap:10px;cursor:pointer;font-weight:600;list-style:none}
.doc-module>summary::-webkit-details-marker{display:none}
.doc-module>summary>span:first-child{flex:1}
.doc-module>summary::after{content:"+";color:var(--accent);font-size:20px;line-height:1}.doc-module[open]>summary::after{content:"–"}
.doc-galerie{list-style:none;margin:8px 0 10px;padding:0;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.doc-vignette{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:6px;height:100%}
.doc-vignette:hover,.doc-vignette:focus-visible{border-color:var(--accent)}
.doc-vignette img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:8px;background:var(--surface-2)}
.doc-vignette span{font-size:14px;line-height:1.3;overflow-wrap:anywhere}
.doc-vignette small{display:block;color:var(--ink-2);font-size:12px}
.doc-apercu img{display:block;width:100%;height:min(70vh,640px);margin:0 0 14px;object-fit:contain;background:var(--surface-2);border-radius:10px}   /* place réservée pendant le chargement */
@media (max-width:520px){.doc-galerie{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Téléphone (5/11/2026) : listes « libellé : valeur » sur une colonne, le libellé au-dessus de sa valeur (dossier : session, prix, version…) */
@media (max-width:480px){.espace-dl{grid-template-columns:minmax(0,1fr);gap:2px}.espace-dl dd{margin-bottom:10px}.espace-dl dd .btn{max-width:100%;white-space:normal}}
/* Lot 5 de l'audit (entreprise, 5/11/2026) : message d'e-mail invalide à la saisie */
.email-invalide{display:block;color:var(--danger);font-size:13px;font-weight:500;margin-top:4px;text-transform:none;letter-spacing:normal}
input[type=email][aria-invalid=true]{border-color:var(--danger)}

/* Filtres compacts (6/11/2026, toutes les listes de l'équipe) : une seule barre sur une ligne, en haut du tableau ; libellés courts à côté
   des champs, hauteur normale ; filtrage immédiat, « Effacer les filtres » ; sur téléphone, la recherche prend une ligne et le reste suit (deux ou trois lignes). */
.liste-barre .espace-recherche,.listes-js .liste-barre .espace-recherche[data-instantane]{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;grid-template-columns:none}
.liste-barre .espace-recherche>label,.liste-barre .espace-recherche>.filtre-groupe{display:flex;align-items:center;gap:6px;margin:0;font-size:13px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--ink-2);flex:0 1 auto}
.liste-barre .espace-recherche>label input,.liste-barre .espace-recherche>label select{width:auto;min-width:0;max-width:260px;min-height:38px;padding:6px 10px;font-size:14px;margin:0}
.liste-barre .espace-recherche>label.filtre-recherche{flex:1 1 240px}
.liste-barre .espace-recherche>label.filtre-recherche input,.liste-barre .espace-recherche>label:has(input[type=search]) input{flex:1;width:100%;max-width:none}
.liste-barre .espace-recherche>label:has(input[type=search]){flex:1 1 220px}
.liste-barre .filtres-effacer{font-size:13px;white-space:nowrap;margin-left:auto}
.liste-barre .filtres-effacer[hidden]{display:none}
.filtre-pastilles{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:var(--surface);margin:0;padding:0;min-width:0}
.filtre-pastilles label{position:relative;margin:0;font-size:13px;font-weight:500;letter-spacing:0;text-transform:none}
.filtre-pastilles input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.filtre-pastilles span{display:inline-block;padding:7px 12px;cursor:pointer;color:var(--ink)}
.filtre-pastilles label+label span{border-left:1px solid var(--line)}
.filtre-pastilles input:checked+span{background:var(--accent);color:#fff}
.filtre-pastilles input:focus-visible+span{outline:2px solid var(--accent);outline-offset:-2px}
.liste-barre .filtre-periode-perso[hidden]{display:none}
@media (max-width:700px){
  .listes-js .liste-barre .filtres-bouton{display:none}
  .listes-js .liste-barre:not(.filtres-ouverts) .espace-recherche{display:flex}
  .liste-barre .espace-recherche>label.filtre-recherche,.liste-barre .espace-recherche>label:has(input[type=search]){flex-basis:100%}
  .liste-barre .espace-recherche>label input,.liste-barre .espace-recherche>label select{max-width:none}
  .liste-barre .espace-recherche>label{flex:1 1 150px;min-width:0;max-width:100%}
  .liste-barre .espace-recherche>label input,.liste-barre .espace-recherche>label select{flex:1 1 auto;width:100%;min-width:0}
  .filtre-pastilles{max-width:100%}
}
/* Messages (6/11/2026) : filtres Apprenante et Session en champ de recherche, suggestions par-dessus la liste */
.msg-filtre-choix{position:relative;flex:1 1 140px;min-width:0}.msg-filtre-choix .selection-champ{width:100%}
.msg-filtre-choix .selection-liste{position:absolute;z-index:6;left:0;right:0;top:100%;margin-top:2px;box-shadow:0 6px 18px rgba(0,0,0,.08)}
/* « En direct » (6/11/2026) : bouton de la barre du haut (équipe), nombre de connectées */
.en-direct-bouton{display:inline-flex;align-items:center;gap:6px;margin-left:auto;padding:5px 11px;border-radius:999px;border:1px solid var(--line);font-size:13px;font-weight:500;color:inherit;text-decoration:none;white-space:nowrap}
.en-direct-bouton:hover,.en-direct-bouton[aria-current]{background:var(--soft,#f6eef2)}
.en-direct-point{width:8px;height:8px;border-radius:50%;background:#9a9a9a}
.en-direct-actif .en-direct-point{background:#1F8A4C;box-shadow:0 0 0 3px rgba(31,138,76,.18)}
.en-direct-nb{font-variant-numeric:tabular-nums;font-weight:800;font-size:15px}
.en-direct-actif{border-color:#1F8A4C;color:#14653A}
.en-direct-actif .en-direct-point{animation:en-direct-pulse 2s ease-in-out infinite}
@keyframes en-direct-pulse{0%,100%{opacity:1;box-shadow:0 0 0 3px rgba(31,138,76,.18)}50%{opacity:.45;box-shadow:0 0 0 6px rgba(31,138,76,.06)}}
@media (prefers-reduced-motion:reduce){.en-direct-actif .en-direct-point{animation:none}}
/* « Nouvelle conversation » (6/11/2026) : destinataires en étiquettes sur deux lignes, session choisie dans l'étiquette, confirmation */
.dest-champ{display:grid;gap:6px;position:relative}
.dest-etiquettes{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.dest-etiquette{position:relative;display:grid;gap:2px;padding:7px 34px 7px 12px;border:1px solid var(--line);border-radius:12px;background:var(--soft,#f6eef2)}
.dest-etiquette strong{font-size:14px}.dest-etiquette small{font-size:12.5px;overflow-wrap:anywhere}
.dest-etiquette .dest-session{font-size:12.5px;padding:2px 4px;max-width:100%}
.dest-retirer{position:absolute;top:4px;right:6px;border:0;background:transparent;cursor:pointer;font-size:18px;line-height:1;padding:2px 6px;color:inherit}
.dest-raccourci{justify-self:start}
.dest-confirmer{border:1px solid var(--line);border-radius:12px;padding:10px 14px;background:var(--surface-2,#faf6f8)}.dest-confirmer p{margin:0 0 8px;font-weight:600}
/* Tchat : recherche dans le salon (6/11/2026), une ligne façon VTiger, résultats en liste, message retrouvé surligné */
.tchat-recherche{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:8px 14px;border-bottom:1px solid var(--line);margin:0}
.tchat-recherche{flex-wrap:nowrap;overflow:visible}
.tchat-recherche input[type=search],.tchat-recherche select,.tchat-recherche input[type=date]{min-height:0;height:36px;padding:4px 10px;font-size:14px}
.tchat-recherche .filtre-recherche{flex:1 1 120px;min-width:90px}.tchat-recherche .filtre-recherche input{width:100%}
.tchat-recherche-session{position:relative;flex:0 1 150px;min-width:90px}.tchat-recherche-session .selection-champ{width:100%}.tchat-recherche-session .selection-liste{position:absolute;z-index:6;left:0;right:0;top:100%;min-width:240px}
.tchat-recherche label{margin:0}.tchat-recherche select[name=periode]{width:auto}
.tchat-recherche-medias{display:inline-flex;align-items:center;gap:4px;font-size:13px;white-space:nowrap;text-transform:none;letter-spacing:normal;font-weight:400}
.tchat-recherche .filtre-periode-perso:not([hidden]){display:inline-flex;gap:4px;flex:0 0 auto}
@media (max-width:700px){.tchat-recherche{flex-wrap:wrap}}
.tchat-resultats{padding:8px 14px;overflow:auto;flex:1 1 auto}.tchat-resultats ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.tchat-resultats li button{all:unset;cursor:pointer;display:grid;gap:2px;width:100%;box-sizing:border-box;padding:8px 10px;border:1px solid var(--line);border-radius:10px}
.tchat-resultats li button:hover,.tchat-resultats li button:focus-visible{background:var(--soft,#f6eef2);outline:2px solid transparent}
.tchat-resultats mark{background:#ffe58a;color:inherit;padding:0 1px;border-radius:3px}.tchat-resultats small{color:var(--ink-2)}
.tchat-message.tchat-surligne .message-bulle{box-shadow:0 0 0 3px #f5c542;transition:box-shadow .3s}
/* Calendrier du mois (6/11/2026) : réservation d'entretien (apprenante) et publication des créneaux (équipe) */
.calr-mois{display:grid;gap:10px}
.calr-mois-tete{display:flex;align-items:center;justify-content:space-between;gap:8px}.calr-mois-titre{margin:0;font-weight:600;text-transform:capitalize}
.calr-fleche{border:1px solid var(--line);background:var(--surface,#fff);border-radius:999px;width:36px;height:36px;font-size:20px;line-height:1;cursor:pointer;color:inherit}
.calr-mois-grille{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}
.calr-jour-nom{font-size:11px;color:var(--ink-2);text-transform:uppercase;letter-spacing:.06em;padding:2px 0}
.calr-jour{border:1px solid transparent;border-radius:10px;padding:8px 0;background:transparent;cursor:pointer;font:inherit;color:inherit;min-width:0}
.calr-jour:disabled{color:var(--ink-2);opacity:.45;cursor:default}
.calr-jour-libre,.calr-jour-plein{background:var(--soft,#f6eef2);border-color:var(--line);font-weight:600}
.calr-jour-libre{background:#e3f3ea;border-color:#a9d9bd;color:#1f6e43}
.calr-jour-choisi{outline:2px solid var(--accent,#a3204f);outline-offset:1px}
.calr-heures{display:flex;flex-wrap:wrap;gap:6px}.calr-heures-titre{flex:1 0 100%;margin:0;font-weight:600}.calr-heures-titre::first-letter{text-transform:uppercase}
.calr-heure{border:1px solid var(--line);border-radius:999px;padding:6px 12px;background:var(--surface,#fff);cursor:pointer;font:inherit;color:inherit}
.calr-heure-choisie{background:var(--accent,#a3204f);border-color:var(--accent,#a3204f);color:#fff}
.entretien-prochain p{margin:0 0 8px}.entretien-aucun{margin-top:14px;border-top:1px solid var(--line);padding-top:10px}
@media (max-width:600px){dialog.fenetre:has(.fenetre-plein-mobile){width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border-radius:0}}
/* Page Session : onglet « Certification et examen » grisé pour une formation non certifiante (6/11/2026) */
.fiche-onglets a.onglet-grise{opacity:.5}
/* Documents attendus (6/11/2026) */
.docs-attendus{list-style:none;margin:0;padding:0;display:grid;gap:6px}.docs-attendus-session .pastille{margin:0 4px 4px 0;display:inline-block}

/* Certification et examen : ligne compacte, tableau resserré, rappels ; cloche et bandeau de l'apprenante (6/11/2026) */
.certif-ligne{margin:0 0 14px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);font-size:14px;line-height:1.5}
.certif-par-apprenante th,.certif-par-apprenante td{padding:8px 6px;font-size:13.5px}
.certif-par-apprenante td:first-child{min-width:9em}
.certif-par-apprenante td[data-label="Documents du certificateur"]{min-width:15em}
.certif-docs{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.certif-docs li{line-height:1.45}
.certif-docs-titre{display:block;font-weight:600}
.certif-docs-rappel{margin:8px 0 0;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.form-ligne{display:inline-flex;margin:0}
.certif-rappel-tous{margin-left:8px}
.certif-apercu{opacity:.92}
.certif-bandeau{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between;margin:0 0 18px;padding:14px 18px;border-radius:14px;background:var(--accent-pale,#FCEAF1);border:1px solid var(--accent,#D6246E)}
.certif-bandeau p{margin:0}
.cloche{position:relative;margin-left:auto}
.cloche summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:4px;padding:6px;border-radius:999px}
.cloche summary::-webkit-details-marker{display:none}
.cloche summary:focus-visible{outline:2px solid var(--accent,#D6246E);outline-offset:2px}
.cloche-nb{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--accent,#D6246E);color:#fff;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.cloche-liste{position:absolute;right:0;top:calc(100% + 6px);z-index:60;width:min(320px,calc(100vw - 32px));padding:10px;border:1px solid var(--line);border-radius:14px;background:var(--surface,#fff);box-shadow:0 10px 30px rgba(0,0,0,.12);display:grid;gap:4px}
.cloche-titre{margin:0 0 4px;font-weight:600}
.cloche-ligne{display:grid;gap:2px;padding:8px 10px;border-radius:10px;text-decoration:none;color:inherit}
.cloche-ligne:hover{background:var(--surface-2)}
.cloche-ligne small{color:var(--ink-2);font-size:12px}
.cloche-non-lue{font-weight:600;background:var(--accent-pale,#FCEAF1)}

/* Configuration de l'organisme (6/11/2026) : la page reprise garde son contenu ; son fil et son titre cèdent la place à l'en-tête commun */
.config-onglets{flex-wrap:wrap;margin-bottom:18px}
.config-badge{background:var(--accent-pale,#FCEAF1);color:var(--accent,#D6246E);white-space:nowrap}
.config-contenu .fil-tete{display:none}
.config-contenu > section > p:has(> a[href="/espace/admin/"]:only-child){display:none}
.config-contenu > section > h1{font-size:1.35rem;margin-top:0}
.config-contenu > section > p.eyebrow:first-child{display:none}

/* Intervenants : bouton « Ajouter » en haut à droite, fenêtre en deux étapes (6/11/2026) */
.liste-entete{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}
.liste-entete h1{margin:0}
.ajout-types{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px;margin:8px 0 16px}
.ajout-type{display:grid;gap:3px;padding:10px 14px;border:1px solid var(--line);border-radius:14px;text-decoration:none;color:inherit;background:var(--surface,#fff)}
.ajout-type small{color:var(--ink-2);font-size:12.5px;line-height:1.35}
.ajout-type:hover{border-color:var(--accent,#D6246E)}
.ajout-type:focus-visible{outline:2px solid var(--accent,#D6246E);outline-offset:2px}
.ajout-type-actif{border-color:var(--accent,#D6246E);background:var(--accent-pale,#FCEAF1)}
.ajout-etape h3{margin:4px 0 10px}

/* Notifications push : proposition d'activation (6/11/2026) */
.push-bandeau{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between;margin:0 0 16px;padding:12px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface,#fff)}
.push-bandeau p{margin:0}

/* Utilisateurs et droits : matrice des profils (6/11/2026) */
.droits-matrice th,.droits-matrice td{text-align:center;padding:6px 8px}
.droits-matrice td:first-child,.droits-matrice th:first-child{text-align:left}

/* Photo de profil (6/11/2026) */
.msg-avatar-titre{width:40px;height:40px;vertical-align:middle;font-size:15px;display:inline-grid;margin-right:6px;position:relative;top:-2px}   /* en-tête de fiche : avatar à gauche du nom, même ligne (6/11/2026) */
.msg-avatar-grand{width:72px;height:72px;font-size:22px}
.profil-photo-ligne{display:flex;align-items:center;gap:14px}
.photo-recadrage canvas{width:280px;height:280px;max-width:100%;border-radius:12px;border:1px solid var(--line);touch-action:none;cursor:grab}

/* Annonces (6/11/2026) */
.annonce-bandeau{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between;margin:0 0 18px;padding:14px 18px;border-radius:14px;background:var(--accent-pale,#FCEAF1);border:1px solid var(--accent,#D6246E)}
.annonce-bandeau p{margin:0}
.annonce-bandeau p:last-child{display:flex;gap:12px;align-items:center}
.annonce-apercu{pointer-events:none}

/* Photos de profil dans les listes (6/11/2026) */
img.initiales,img.visio-avatar{object-fit:cover;padding:0;background:none}
.interv-photo{vertical-align:middle;margin-right:8px}
.tchat-message > .msg-avatar{align-self:flex-start}
.tchat-message.message-moi > .msg-avatar{order:2;margin-left:8px}
/* Bas de la barre latérale (6/11/2026) : nom, puis une ligne par action, alignées à gauche */
.esp-lateral .lat-compte{flex-wrap:wrap;justify-content:flex-start}
.esp-lateral .lat-compte .lat-nom{flex:1 1 100%}
.esp-lateral .lat-compte .lat-deconnexion{flex:1 1 100%}
.esp-lateral .lat-compte .lat-action{flex:1 1 100%;display:flex;align-items:center;gap:8px;padding:6px 4px!important;text-align:left;color:var(--ink-2);text-decoration:none;font-size:13.5px;background:none;border:0;cursor:pointer;width:100%}
.esp-lateral .lat-compte .lat-action[hidden]{display:none}
.esp-lateral .lat-compte .lat-action .lat-icone{width:18px;height:18px;flex:none}
.esp-lateral .lat-compte .lat-action:hover,.esp-lateral .lat-compte .lat-action:focus-visible{color:var(--accent)}
/* Messages, style messagerie de téléphone (6/11/2026) : liste sur deux lignes, pastille verte, « Vu », filtres sur une ligne */
.msg-conv>a,.msg-conv>div{display:grid;grid-template-columns:48px minmax(0,1fr);gap:12px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line);border-left:3px solid transparent;text-decoration:none;color:var(--ink)}
.msg-conv>a .msg-avatar,.msg-conv>div .msg-avatar{width:48px;height:48px}
.msg-conv-texte{display:grid;gap:3px;min-width:0}
.msg-conv-ligne{display:flex;justify-content:space-between;align-items:center;gap:8px;min-width:0}
.msg-conv-qui{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.msg-conv-nom{font-weight:600}
.msg-conv-objet{font-size:12.5px;color:var(--ink-2);font-weight:400}
.msg-conv-apercu{flex:1;min-width:0}
.msg-conv-etat{display:inline-flex;align-items:center;gap:4px;flex:none}
.msg-conv-non-lu .msg-conv-nom{font-weight:700}
.msg-conv-non-lu .msg-conv-apercu{color:var(--ink);font-weight:600}
.msg-conv-non-lu .msg-conv-ligne time{color:var(--vert);font-weight:600}
.msg-non-lus{background:var(--vert);color:#fff}
.dossier-bloc .msg-convs,.fiche-panneau .msg-convs{border:1px solid var(--line);border-radius:14px;overflow:hidden;margin:0 0 14px;background:var(--surface)}
.dossier-bloc .msg-conv:last-child>a,.fiche-panneau .msg-conv:last-child>a{border-bottom:0}
.message-moi{flex-wrap:wrap;justify-content:flex-end}
.message-vu{flex-basis:100%;margin:2px 6px 0 0;text-align:right;font-size:12px;color:var(--ink-2)}
.msg-fil-qui h2{margin:0;font-size:18px}
.msg-fil-qui p{margin:0}
.msg-fil-objet{font-size:12.5px}
.msg-filtres.espace-recherche{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0;padding:10px 14px;border-bottom:1px solid var(--line)}
.msg-filtres>label.filtre-recherche{flex:1 1 160px;min-width:0;margin:0}
.msg-filtres>label.filtre-recherche input{width:100%;margin:0}
.msg-filtres>label:not(.filtre-recherche){display:inline-flex;align-items:center;gap:6px;flex:none;margin:0;white-space:nowrap;font-size:14px}
.msg-filtres>label:not(.filtre-recherche) input{margin:0;width:auto}
.msg-filtres .msg-filtre-choix{flex:1 1 140px}
.msg-filtres .filtres-effacer{flex-basis:100%;font-size:13px}
.msg-filtres>label:not(.filtre-recherche){text-transform:none;letter-spacing:normal;font-weight:500}
/* Personne (6/11/2026), composant commun : avatar à gauche et nom sur LA MÊME LIGNE, centrés verticalement, petit espace ; jamais l'un
   sous l'autre, même en colonne étroite ou en fiche sur téléphone (seul le texte passe à la ligne, jamais l'avatar). */
.personne-ligne,td .personne{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center;gap:10px;min-width:0;max-width:100%}
.personne-ligne>.msg-avatar,td .personne>.msg-avatar{flex:0 0 auto;margin:0}
.personne-nom,td .personne>div{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;line-height:1.3;overflow-wrap:anywhere}
.personne-nom strong{font-weight:600}
.personne-nom strong a{color:inherit}
.personne-sous{font-size:12.5px;color:var(--ink-2);font-weight:400}
.msg-avatar-moyen{width:36px;height:36px;font-size:13px}
h3 .personne-ligne{display:inline-flex!important;vertical-align:middle}
.tchat-resultats li button{display:grid;grid-template-columns:30px minmax(0,1fr);column-gap:8px;align-items:center;text-align:left}
.tchat-resultats li button>.msg-avatar{grid-row:span 3}
button.personne-ligne{text-align:left}
.visio-qui{display:flex;flex-direction:column;gap:3px;min-width:0}
/* Apprenantes › Dossiers (6/11/2026) : lignes compactes, contenu centré verticalement ; les pastilles d'étapes restent à droite sur la ligne */
.qualiopi.liste-table td{padding-top:7px;padding-bottom:7px;vertical-align:middle}
.qualiopi.liste-table td .td-edof{margin-top:4px!important}
.qualiopi.liste-table td .btn.ghost{padding-block:3px}
/* colonne de la personne : assez large pour « NOM Prénom » et « Dossier n° … · formation », coupures entre les mots seulement */
.personne-nom,.personne-nom *{overflow-wrap:normal;word-break:normal;hyphens:none}
@media (min-width:641px){.espace-table td:has(> .personne-ligne),.espace-table td:has(> .personne){min-width:14em}}
/* « Actions ▾ » (6/11/2026) : bouton compact en haut à droite, à côté de la recherche, petit menu */
.liste-barre:has(> .menu-actions){display:flex;align-items:center;gap:12px}
.liste-barre:has(> .menu-actions)>form{flex:1;min-width:0}
.menu-actions{position:relative;flex:none;margin-left:auto}
.menu-actions>summary{list-style:none;cursor:pointer;white-space:nowrap;padding:8px 14px;font-size:14px;text-transform:none;letter-spacing:normal}
.menu-actions>summary::-webkit-details-marker{display:none}
.menu-actions>summary::after,.menu-actions>summary::before{content:none!important;display:none!important}
.menu-actions-liste{position:absolute;right:0;top:calc(100% + 4px);z-index:30;min-width:250px;margin:0;padding:6px;list-style:none;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.12)}
.menu-actions-liste a{display:block;padding:8px 10px;border-radius:8px;color:var(--ink);text-decoration:none;font-size:14px;white-space:nowrap}
.menu-actions-liste a:hover,.menu-actions-liste a:focus-visible{background:color-mix(in srgb,var(--accent) 8%,var(--surface))}
.liste-liee-barre .menu-actions{margin-left:auto}
@media (max-width:700px){.liste-barre:has(> .menu-actions){flex-wrap:wrap}.liste-barre:has(> .menu-actions)>form{flex-basis:100%}.menu-actions-liste{right:0;left:auto;min-width:0;width:max-content;max-width:calc(100vw - 32px)}}
/* Badges de la barre latérale (6/11/2026) : ronds, chiffre en gras ; vert = nouveau (disparaît à l'ouverture), orange = à faire */
.badges-menu{display:inline-flex;gap:4px;margin-left:auto;flex:none}
.badges-menu:empty{display:none}
.badge-menu{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;font-size:12px;font-weight:800;line-height:1;color:#fff;font-variant-numeric:tabular-nums;box-sizing:border-box}
.badge-nouveau{background:var(--vert)}
.badge-faire{background:var(--orange)}
.esp-menu:not(.esp-lateral) .badges-menu{margin-left:6px;vertical-align:middle}
.annonce-carte h2 .pastille{vertical-align:middle;font-size:12px}
/* Visionneuse (6/11/2026) : fenêtre de l'appli et page de visualisation d'un fichier ouvert seul */
.visionneuse{width:min(1100px,96vw);height:min(92vh,900px);max-width:none;max-height:none;padding:0;border:0;border-radius:16px;background:#141012;color:#fff;overflow:hidden}
.visionneuse::backdrop{background:rgba(20,10,16,.78)}
.visionneuse[open]{display:grid;grid-template-rows:auto 1fr}
.vs-barre,.vf-barre{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;background:rgba(255,255,255,.06)}
.vs-nom,.vf-nom{flex:1 1 160px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.vs-actions,.vf-actions{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto}
.vs-btn{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:6px 14px;border:1px solid rgba(255,255,255,.5);border-radius:999px;background:transparent;color:#fff;font:600 13px/1.1 system-ui,-apple-system,'Segoe UI',sans-serif;text-decoration:none;cursor:pointer;white-space:nowrap}
.vs-btn:hover{background:rgba(255,255,255,.12)}.vs-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}
.vs-btn-plein{background:#fff;color:#141012;border-color:#fff}.vs-btn-plein:hover{background:#f1e6eb}
.vs-btn[aria-pressed="true"]{background:rgba(255,255,255,.22)}
.vs-corps{position:relative;display:grid;place-items:center;overflow:auto;min-height:0}
.vs-corps img,.vf-image{max-width:100%;max-height:100%;object-fit:contain;cursor:zoom-in;display:block}
.vs-corps.vs-zoom{place-items:start;}
.vs-corps.vs-zoom img,.vf-image.vf-zoom{max-width:none;max-height:none;cursor:zoom-out}
.vs-corps video,.vf-video{max-width:100%;max-height:100%}
.vs-corps iframe,.vf-pdf{width:100%;height:100%;border:0;background:#fff}
.vs-autre{padding:24px;color:#ddd}
.visionneuse .vs-compteur{color:rgba(255,255,255,.78);font-variant-numeric:tabular-nums}
.vs-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:64px;border:0;border-radius:12px;background:rgba(0,0,0,.45);color:#fff;font-size:32px;line-height:1;cursor:pointer}
.vs-nav:focus-visible{outline:2px solid #fff;outline-offset:2px}
.vs-prec{left:10px}.vs-suiv{right:10px}
.vs-nav[hidden]{display:none}
html.vs-ouverte{overflow:hidden}
.visionneuse-page{font-family:system-ui,-apple-system,'Segoe UI',sans-serif;margin:0;min-height:100vh;display:grid;grid-template-rows:auto 1fr;background:#141012;color:#fff}
.vf-org{font-size:12px;letter-spacing:.12em;text-transform:uppercase;opacity:.75}
.vf-cadre{display:grid;place-items:center;overflow:auto;min-height:0;height:calc(100vh - 60px)}
@media (max-width:640px){.visionneuse{width:100vw;height:100dvh;border-radius:0}.vs-barre,.vf-barre{gap:6px 8px;padding:8px 10px}.vs-nom,.vf-nom{flex-basis:100%}.vs-actions,.vf-actions{margin-left:0;width:100%;flex-wrap:nowrap}.vs-btn{min-height:34px;padding:5px 12px;font-size:12.5px}.vf-org{display:none}.vs-nav{width:38px;height:54px;font-size:26px}}
/* Étoiles du tchat (6/11/2026) : ⭐ et compteur sous chaque publication, coup de cœur doré, liste des étoiles, pose de la semaine */
.tchat-etoiles{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:6px}
.tchat-etoile-form{display:inline;margin:0}
.tchat-etoile{display:inline-flex;align-items:center;gap:5px;min-height:34px;padding:4px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:inherit;font:inherit;font-size:14px;cursor:pointer}
.tchat-etoile b{font-variant-numeric:tabular-nums}
.tchat-etoile[aria-pressed="true"]{background:#FFF4D6;border-color:#E2B33C;color:#6B4A00}
.tchat-etoile:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.tchat-etoile-mien{cursor:default;background:transparent}
.tchat-coeur{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;background:linear-gradient(135deg,#F7D774,#E2B33C);color:#4A3300;font-size:12.5px;font-weight:700;box-shadow:0 1px 0 rgba(0,0,0,.08)}
.tchat-etoiles-liste{position:absolute;left:0;top:100%;z-index:20;min-width:220px;max-width:min(320px,80vw);max-height:260px;overflow:auto;margin-top:4px;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);box-shadow:0 12px 28px rgba(30,11,22,.16)}
.tchat-etoiles-liste ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.tchat-etoiles-liste li{display:flex;align-items:center;gap:8px;font-size:14px}
.message-moi .tchat-etoiles{justify-content:flex-end}
.message-moi .tchat-etoiles-liste{left:auto;right:0}
.tchat-r-etoiles{margin-left:6px;font-size:12.5px;font-weight:600;color:#6B4A00}
.tchat-pose-semaine{display:flex;align-items:center;gap:12px;margin:8px 0 10px;padding:10px 12px;border:1px solid #E2B33C;border-radius:14px;background:linear-gradient(135deg,#FFF8E3,#FFF1C7);color:#3A2800;text-decoration:none}
.tchat-pose-semaine img{width:64px;height:64px;object-fit:cover;border-radius:10px;flex:none}
.tchat-pose-semaine span{display:grid;gap:2px;min-width:0}
.tchat-pose-semaine small{color:#6B4A00}
.tchat-pose-semaine:hover{border-color:#C9961C}
.tchat-recherche-etoiles{white-space:nowrap}
/* Même personne (6/11/2026) : lien entre un compte de l'équipe et le compte apprenante ; e-mail sous le nom (liste des intervenants) */
.meme-personne{flex-basis:100%;margin:2px 0 0;font-size:14px}
td .personne-sous{overflow-wrap:anywhere}
/* Émojis (6/11/2026) : bouton 😊, sélecteur (au-dessus du clavier sur téléphone), message d'un ou deux émojis en grand, réactions rapides */
.msg-emoji-bouton{flex:none;width:40px;height:40px;border:0;border-radius:50%;background:transparent;font-size:22px;line-height:1;cursor:pointer}
.msg-emoji-bouton:hover,.msg-emoji-bouton[aria-expanded="true"]{background:var(--surface-2)}
.msg-emoji-bouton:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.msg-zone-emoji{position:relative}
.msg-zone-emoji .msg-emoji-bouton{position:absolute;right:6px;bottom:6px}
.emoji-panneau{position:fixed;z-index:60;width:min(340px,calc(100vw - 16px));max-height:min(380px,60vh);display:flex;flex-direction:column;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 18px 40px rgba(30,11,22,.18)}
.emoji-panneau[hidden]{display:none}
.emoji-panneau.emoji-mobile{left:0;right:0;width:100%;max-height:45vh;border-radius:16px 16px 0 0}
.emoji-tete{display:flex;gap:6px;padding:8px;border-bottom:1px solid var(--line)}
.emoji-recherche{flex:1;min-width:0;padding:8px 10px;border:1px solid var(--line);border-radius:999px;font:inherit;font-size:14px}
.emoji-fermer{width:34px;border:0;background:transparent;font-size:22px;cursor:pointer}
.emoji-corps{overflow:auto;padding:6px 8px 10px}
.emoji-corps h3{margin:6px 2px 4px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
.emoji-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:2px}
.emoji-grille button{height:38px;border:0;border-radius:10px;background:transparent;font-size:22px;cursor:pointer}
.emoji-grille button:hover,.emoji-grille button:focus-visible{background:var(--surface-2);outline:none}
.emoji-vide{padding:12px;color:var(--ink-2)}
.message-corps.message-emoji{font-size:44px;line-height:1.15;letter-spacing:2px}
li.message:has(.message-emoji) .message-bulle{background:transparent;border-color:transparent;box-shadow:none}
.reactions{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin:2px 0 0 38px;min-height:4px}
.message-moi .reactions{justify-content:flex-end;margin:2px 38px 0 0}
.reaction{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font:inherit;font-size:13px;cursor:pointer}
.reaction b{font-weight:700;font-variant-numeric:tabular-nums}
.reaction-moi{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface))}
.reactions-choix{display:none;gap:2px;padding:3px 6px;border:1px solid var(--line);border-radius:999px;background:var(--surface);box-shadow:0 6px 18px rgba(30,11,22,.12)}
.reactions-choix button{width:32px;height:32px;border:0;border-radius:50%;background:transparent;font-size:19px;cursor:pointer}
.reactions-choix button:hover,.reactions-choix button:focus-visible{background:var(--surface-2);transform:scale(1.15)}
.reactions-ouvrir{width:28px;height:28px;border:0;border-radius:50%;background:transparent;color:var(--ink-2);font-size:16px;opacity:0;cursor:pointer}
li.message:hover .reactions-ouvrir,.reactions-ouvrir:focus-visible{opacity:1}
@media (hover:hover){li.message:hover .reactions-choix{display:inline-flex}}
.reactions-ouvertes .reactions-choix{display:inline-flex}
.reactions-ouvertes .reactions-ouvrir{opacity:1}
li.message:has(> .reactions){flex-wrap:wrap}
li.message > .reactions{flex-basis:100%}
.emoji-corps section{margin:0;padding:0;border:0;background:none;box-shadow:none;min-height:0}
.reactions:not(:has(.reaction)){height:0;min-height:0;margin-top:0}
.reactions:not(:has(.reaction)) .reactions-choix{position:absolute;top:-4px;left:0;z-index:5}
.reactions:not(:has(.reaction)) .reactions-ouvrir{position:absolute;top:-30px;left:-30px;z-index:4}
.message-moi .reactions:not(:has(.reaction)) .reactions-choix{left:auto;right:0}
.message-moi .reactions:not(:has(.reaction)) .reactions-ouvrir{left:auto;right:-30px}
/* Paiements en ligne (6/11/2026) : prestataires, formules, lignes du dossier, Facturation */
.paiement-prestataires{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin:12px 0}
.paiement-bientot{opacity:.75}
.paiement-notif{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px}
.paiement-notif label{flex:1 1 280px}
.paiement-notif input{width:100%;font-family:ui-monospace,monospace;font-size:13px}
.paiement-exclue{opacity:.7}
.paiement-ligne{margin:2px 0 8px}
.paiements-en-ligne{margin:12px 0}
.paiements-en-ligne summary{cursor:pointer}
.paiement-regles-inactives{display:contents;border:0;margin:0;padding:0}
.paiement-regles-inactives label{opacity:.65}
/* Paiements (7/11/2026) : étapes d'activation, lien d'inscription Alma, aide clé, règles toujours appliquées */
.paiement-etapes{display:flex;flex-wrap:wrap;gap:6px 18px;margin:10px 0 0;padding-left:20px}
.paiement-etapes li.fait{color:var(--ink-2);text-decoration:line-through}
.paiement-inscription{margin:6px 0}
.paiement-aide summary{cursor:pointer;font-weight:600}
.paiement-aide ul{margin:6px 0 0;padding-left:20px}
.paiement-regles{margin:8px 0 0;padding-left:20px}
.paiement-regles li{margin:4px 0}
/* Tchat et Messages : mise en page (7/11/2026) — colonne de gauche étroite (pastilles Messages · Tchat, liste, modération en bas),
   fil sur toute la hauteur sous l'en-tête, zone d'envoi compacte collée en bas ; tablette : pastilles seules ; téléphone : liste puis fil. */
.page-pleine main.espace{padding-block:8px}
.msg-liste{display:flex;flex-direction:column}
.msg-liste>*{flex:none}
.echanges-pastilles{display:flex;gap:6px;padding:10px 12px;border-bottom:1px solid var(--line)}
.echanges-pastilles a{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border:1px solid var(--line);border-radius:999px;font-size:13px;font-weight:600;color:var(--ink);text-decoration:none}
.echanges-pastilles a:hover{border-color:var(--accent);color:var(--accent)}
.echanges-pastilles a[aria-current]{background:var(--accent);border-color:var(--accent);color:var(--btn-ink)}
.echanges-ini{display:none}
.echanges-nb{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--rouge,#c0392b);color:#fff;font:700 11px/18px var(--sans);text-align:center}
.msg-liste .msg-resume{margin:0;padding:6px 14px;font-size:12px;border-bottom:1px solid var(--line)}
.tchat-liste .msg-convs{flex:1 0 auto}
.tchat-liste .tchat-lien-moderation{margin:0;padding:10px 14px;border-top:1px solid var(--line);font-size:14px}
.tchat-tete{flex-wrap:wrap;gap:6px 12px;padding:8px 14px}
.tchat-tete .msg-fil-qui{flex:0 1 auto;min-width:0}
.tchat-tete h2{font-size:18px}
.tchat-formations{margin:0;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:34vw}
.tchat-tete .tchat-recherche{flex:1 1 240px;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0;padding:0;border:0;background:none}
.tchat-tete .tchat-recherche .filtre-recherche{flex:1 1 180px}
.tchat-filtres{position:relative;margin:0;padding:0;border:0}
.tchat-filtres>summary{cursor:pointer;font-size:13px;list-style:none;padding:4px 10px;border:1px solid var(--line);border-radius:999px}
.tchat-filtres>summary::-webkit-details-marker{display:none}
.tchat-filtres>summary::after{content:none}
.tchat-filtres[open]{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;flex-basis:100%}
.messages{padding-top:46px}   /* place pour la barre de réactions du premier message */
li.message{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:8px;align-items:start;position:relative;max-width:min(640px,86%)}
li.message.message-moi{grid-template-columns:minmax(0,1fr) auto;justify-items:end}
li.message>:not(.msg-avatar):not(.message-bulle):not(a){grid-column:1/-1;order:3}   /* réactions, « Vu » : ligne suivante, après l'avatar placé à droite */
li.message>.msg-avatar,li.message>a{align-self:start;margin-top:2px}
.tchat-message.message-moi>.msg-avatar{order:2;margin-left:0}
li.message .message-bulle{max-width:100%}
li.message .reactions{position:static}
li.message .reactions .reactions-choix,li.message .reactions:not(:has(.reaction)) .reactions-choix{position:absolute;top:auto;bottom:calc(100% + 2px);left:38px;right:auto;z-index:6}
li.message.message-moi .reactions .reactions-choix,li.message.message-moi .reactions:not(:has(.reaction)) .reactions-choix{left:auto;right:0}
li.message .reactions:not(:has(.reaction)) .reactions-ouvrir{position:absolute;top:4px;bottom:auto;left:auto;right:-30px}
li.message.message-moi .reactions:not(:has(.reaction)) .reactions-ouvrir{right:auto;left:-30px}
.msg-saisie{padding:8px 12px}
.msg-ligne{align-items:center;gap:4px}
.msg-zone textarea{min-height:40px;height:40px;padding:9px 14px;border-radius:20px;overflow-y:hidden}
.msg-joindre,.msg-emoji-bouton{width:40px;height:40px}
.msg-envoyer.btn{height:40px;padding:0 16px}
.saisie-apercu{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin:2px 0 0;font-size:13px}
.saisie-apercu[hidden]{display:none}
.saisie-apercu-fichiers,.saisie-apercu .msg-photos-choisies{flex-basis:100%;color:var(--ink-2)}
.saisie-accord{margin:0;font-size:13px}
@media (min-width:1024px){
  .msg-cadre{grid-template-columns:min(280px,25%) minmax(0,1fr)}
}
@media (min-width:768px) and (max-width:1023px){
  .msg-cadre{grid-template-columns:76px minmax(0,1fr)}
  .msg-liste{border-right:1px solid var(--line)}
  .msg-ouvert .msg-liste{display:flex}
  .msg:not(.msg-ouvert) .msg-panneau{display:flex}
  .msg-retour{display:none}
  .msg-liste .msg-conv-texte,.msg-liste .msg-conv-etat,.msg-liste .msg-filtres,.msg-liste .msg-resume,.msg-liste .msg-filtre-dossier,.echanges-lib{display:none}
  .echanges-ini{display:inline}
  .echanges-pastilles{flex-direction:column;align-items:center;padding:8px 4px}
  .echanges-pastilles a{justify-content:center;width:44px;padding:4px 0}
  .msg-conv a{grid-template-columns:44px;justify-content:center;padding:10px 0;position:relative}
  .msg-conv-non-lu a::after{content:"";position:absolute;top:8px;right:12px;width:10px;height:10px;border-radius:50%;background:var(--accent)}
  .msg-actions{padding:8px 4px;text-align:center}
  .msg-actions .msg-bouton-nouveau{width:44px;height:44px;padding:0;border-radius:50%;font-size:0}
  .msg-actions .msg-bouton-nouveau::before{content:"+";font-size:22px}
  .tchat-liste .tchat-lien-moderation{padding:10px 0;text-align:center}
  .tchat-formations{display:none}
}
@media (max-width:767px){
  .tchat-formations{display:none}
  .tchat-tete .tchat-recherche{flex-basis:100%}
  .msg-ligne{gap:2px}
  .msg-joindre,.msg-emoji-bouton{width:34px}
  .msg-envoyer.btn{padding:0 12px;font-size:14px}
  .msg-zone textarea{padding:9px 12px}
  .msg-zone textarea::placeholder{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
.tchat-salon .msg-flux[hidden]{display:none}   /* recherche : les résultats prennent la place du fil */
.tchat-resultats:not([hidden]){flex:1;min-height:0;overflow-y:auto;padding:8px 14px}
/* Marque de la plateforme (7/11/2026) : « Atelier des Poses · Console » */
.console-marque .plateforme-nom{font-family:var(--serif,Georgia,serif)}
.console-marque .plateforme-nom em{font-style:italic;color:var(--accent)}
.console-marque .plateforme-logo{height:28px;width:auto;vertical-align:middle}
.console-marque-apercu{font-size:22px}
.console-marque{white-space:nowrap;overflow:visible;text-overflow:clip}
.console-marque .plateforme-nom{font-size:.88em}
.console-marque .console-sous{font-size:9px;letter-spacing:.08em}

/* Sondages (Annonces, 7/11/2026) : fenêtre à la connexion, réponses en étoiles / émojis / choix / oui-non, résultats en barres */
.sondage-fenetre{max-width:min(560px,calc(100vw - 24px))}
.sondage-fenetre h2{margin:.2rem 0 .4rem}
.sondage-choix{display:flex;flex-wrap:wrap;gap:8px;border:0;padding:0;margin:0}
.sondage-option{position:relative;cursor:pointer}
.sondage-option input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.sondage-option span{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:64px;padding:10px 12px;border:1px solid var(--bord,#e6d5dc);border-radius:12px;background:#fff;text-align:center}
.sondage-option b{font-size:1.5rem;line-height:1.1;font-weight:normal}
.sondage-etoiles .sondage-option b{color:#d9a400;font-size:1.05rem;letter-spacing:1px}
.sondage-option small{font-size:.78rem;color:var(--muted,#7a6670)}
.sondage-option input:checked+span{border-color:var(--rose,#b5476d);box-shadow:0 0 0 2px rgba(181,71,109,.25);background:#fff6f9}
.sondage-option input:focus-visible+span{outline:2px solid var(--rose,#b5476d);outline-offset:2px}
.sondage-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.sondage-apercu{border:1px dashed var(--bord,#e6d5dc);border-radius:12px;padding:12px 14px;margin:.6rem 0}
.sondage-barres{list-style:none;padding:0;margin:.6rem 0;display:grid;gap:6px}
.sondage-barres li{display:grid;grid-template-columns:minmax(90px,30%) 1fr auto;gap:8px;align-items:center}
.sondage-barre{height:10px;border-radius:6px;background:#f3e7ec;overflow:hidden}
.sondage-barre span{display:block;height:100%;background:var(--rose,#b5476d)}
.sondage-barre-nb{font-variant-numeric:tabular-nums;font-size:.85rem;white-space:nowrap}
@media (max-width:480px){.sondage-option span{min-width:54px;padding:8px}.sondage-barres li{grid-template-columns:1fr auto}.sondage-barre{grid-column:1/-1;order:3}}

/* Visio instantanée (7/11/2026) */
.appel-fenetre{max-width:min(460px,calc(100vw - 24px))}
.appel-actions{display:flex;flex-wrap:wrap;gap:10px}
.appel-panneau{margin:.6rem 0}
.appel-panneau .appel-accord p{margin:.3rem 0}
.msg-fil-visio{margin-left:8px}

/* Cloche (7/11/2026) : panneau toujours entièrement visible (fixe, placé sous la cloche), au-dessus de tout ; plein écran au téléphone */
.cloche>summary::after,.cloche>summary::before,.cloche[open]>summary::after{content:none!important;display:none!important}
.cloche .cloche-liste{position:fixed;right:auto;top:72px;left:12px;z-index:1000;width:min(340px,calc(100vw - 24px));max-height:min(70vh,560px);overflow:auto;padding:12px;gap:6px;display:flex;flex-direction:column}
.cloche-tete{display:flex;align-items:center;gap:10px;padding:0 4px 6px;border-bottom:1px solid var(--line)}
.cloche-tete .cloche-titre{margin:0;font-weight:700;font-size:16px;color:var(--ink,#2B1622)}
.cloche-tout{margin:0 0 0 auto}.cloche-tout .lien-bouton{font-size:13px;white-space:nowrap}
.cloche-fermer{display:none;margin-left:auto;border:0;background:none;font-size:28px;line-height:1;cursor:pointer;color:var(--ink,#2B1622);padding:0 4px}
.cloche-tout+.cloche-fermer{margin-left:4px}
.cloche-lignes{display:grid;gap:4px}
.cloche .cloche-ligne{display:grid;grid-template-columns:24px 1fr;gap:10px;align-items:start;padding:9px 10px;color:var(--ink,#2B1622);font-weight:400}
.cloche-icone{color:var(--accent,#D6246E);margin-top:1px}
.cloche-texte{display:grid;gap:2px;min-width:0}
.cloche-ligne-titre{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.35;font-size:14px;color:var(--ink,#2B1622)}
.cloche .cloche-non-lue{background:var(--accent-pale,#FCEAF1)}.cloche .cloche-non-lue .cloche-ligne-titre{font-weight:600}
@media (max-width:600px){
  .cloche .cloche-liste{inset:0;left:0!important;top:0!important;width:100%;max-height:none;height:100%;border-radius:0;border:0;padding:16px 16px calc(16px + env(safe-area-inset-bottom))}
  .cloche-fermer{display:block}
}

/* En-tête compact des fiches (modèle VTiger, 7/11/2026) : avatar et nom à gauche, petits boutons alignés à droite, résumé dessous */
.fiche-tete{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;margin:4px 0 6px}
.fiche-tete-nom{display:flex;align-items:center;gap:10px;margin:0;min-width:0;font-size:clamp(22px,2.4vw,30px);line-height:1.15}
.fiche-tete-nom>span{min-width:0;overflow-wrap:anywhere}
.fiche-tete-nom small{font-size:14px;font-weight:400}
.fiche-tete-actions{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-left:auto}
.fiche-tete-actions .btn{padding:6px 12px;font-size:13px;min-height:34px;line-height:1.2;text-transform:none;letter-spacing:normal;font-weight:600;box-shadow:none}
.fiche-tete-actions .btn-icone{display:inline-flex;align-items:center;gap:6px}
.fiche-tete-actions .btn-icone svg{flex:none}
.fiche-tete-actions .menu-actions{position:relative}
.fiche-tete-actions .menu-actions-liste{right:0;left:auto;z-index:70}
.fiche-tete-resume{margin:0 0 14px}
.menu-actions-liste li.seulement-telephone{display:none}
.dossier-hero-fiche .fiche-tete-actions{margin-left:0}
@media (max-width:600px){
  .fiche-tete{flex-direction:column;align-items:flex-start}
  .fiche-tete-actions{margin-left:0}
  .fiche-tete-principal{display:none}
  .menu-actions-liste li.seulement-telephone{display:list-item}
  .fiche-tete-actions .btn-icone span{display:none}
}

/* Barre d'étapes des salles (7/11/2026) : entretien et salle d'examen du jury — étapes numérotées, un bouton principal, menu « ⋯ », ligne d'état */
.etapes-barre{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px 16px}
.etapes-salle{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}
.etapes-salle li{display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border-radius:999px;border:1px solid var(--line);font-size:14px;color:color-mix(in srgb,var(--ink) 62%,transparent);background:var(--surface)}
.etapes-salle .etape-num{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;font-size:12px;font-weight:700;background:color-mix(in srgb,var(--ink) 8%,var(--surface));color:var(--ink)}
.etapes-salle li.en-cours{border-color:var(--accent);color:var(--ink);font-weight:600;background:color-mix(in srgb,var(--accent) 7%,var(--surface))}
.etapes-salle li.en-cours .etape-num{background:var(--accent);color:#fff}
.etapes-salle li.fait{color:var(--ink)}
.etapes-salle li.fait .etape-num{background:var(--vert);color:#fff;font-size:0}
.etapes-salle li.fait .etape-num::after{content:"✓";font-size:13px}
.etapes-actions{display:flex;align-items:center;gap:6px;justify-content:flex-end}
.etapes-actions .btn{min-height:36px;padding:7px 14px;font-size:14px;text-transform:none;letter-spacing:normal}
.etapes-plus{margin-left:0}
.menu-actions{border:0;padding-block:0}   /* site.css : details{border-bottom;padding-block:18px} faisait un trait sous « Actions ▾ » et « ⋯ » (7/11/2026) */
.etapes-plus>summary{min-width:40px;text-align:center;font-weight:700}
.etapes-etat{grid-column:1/-1;margin:0;font-size:14px}
.menu-actions-liste .lien-menu{display:block;width:100%;padding:8px 10px;border:0;border-radius:8px;background:none;color:var(--ink);font:inherit;font-size:14px;text-align:left;cursor:pointer;white-space:nowrap}
.menu-actions-liste .lien-menu:hover,.menu-actions-liste .lien-menu:focus-visible{background:color-mix(in srgb,var(--accent) 8%,var(--surface))}
.salle-etapes{margin:0 0 14px;display:grid;gap:8px}.salle-etapes h2{margin:0;font-size:18px}
@media (max-width:700px){
  .etapes-barre{grid-template-columns:1fr}
  .etapes-salle li{padding:4px 8px 4px 4px;font-size:13px}
  .etapes-salle li:not(.en-cours) span:not(.etape-num){display:none}
  .etapes-actions{justify-content:flex-start}
}

/* Partage de fichiers dans la visio (7/11/2026) : bouton « Fichiers », volet, notification */
.visio-fichiers-bouton{display:inline-flex;align-items:center;gap:6px;margin:0 8px 8px 0;position:relative}
.visio-fichiers-nb{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--accent);color:#fff;font-size:11px}
.visio-fichiers-volet{margin:0 0 12px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);display:grid;gap:10px;max-width:520px}
.visio-fichiers-tete{display:flex;align-items:center;justify-content:space-between}.visio-fichiers-tete h2{margin:0;font-size:18px}
.visio-fichiers-depot{display:grid;gap:2px;padding:14px;border:2px dashed var(--line);border-radius:12px;text-align:center;cursor:pointer}
.visio-fichiers-depot span{font-weight:600}.visio-fichiers-depot small{color:color-mix(in srgb,var(--ink) 60%,transparent)}
.visio-fichiers-depot.survol,.visio-fichiers-depot:focus-visible{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--surface))}
.visio-fichiers-depot.envoi{opacity:.7}
.visio-fichiers-liste{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.visio-fichiers-item{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 12px;padding:8px 10px;border:1px solid var(--line);border-radius:10px}
.visio-fichiers-item strong{display:block;overflow-wrap:anywhere}.visio-fichiers-item small{display:block;font-size:12px}
.visio-fichiers-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.visio-fichiers-toast{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:200;max-width:min(360px,calc(100vw - 32px));padding:12px 14px;border-radius:12px;background:#202124;color:#fff;box-shadow:0 8px 24px rgba(0,0,0,.25);font-size:14px}

/* « Qualité vidéo » au-dessus de la visio (7/11/2026) */
.visio-qualite{display:inline-flex;align-items:center;gap:6px;margin:0 8px 8px 0;font-size:13px}.visio-qualite select{padding:4px 8px;font-size:13px;width:auto}

/* Partage de fichiers DANS la visio (7/11/2026) : bouton rond en bas à gauche, comme un bouton de la barre ; volet sur le côté de la vidéo */
.visio-avec-fichiers{position:relative}
.visio-avec-fichiers .visio-fichiers-bouton{position:absolute;left:12px;bottom:12px;z-index:5;display:inline-grid;place-items:center;width:44px;height:44px;margin:0;padding:0;border:0;border-radius:50%;background:#3c4043;color:#fff;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.35)}
.visio-avec-fichiers .visio-fichiers-bouton:hover{background:#4d5156}.visio-avec-fichiers .visio-fichiers-bouton:focus-visible{outline:2px solid #8ab4f8;outline-offset:2px}
.visio-avec-fichiers .visio-fichiers-nb{position:absolute;top:-4px;right:-4px}
.visio-avec-fichiers .visio-fichiers-volet{position:absolute;top:0;right:0;bottom:0;z-index:6;width:min(360px,100%);max-width:none;margin:0;border-radius:0 12px 12px 0;overflow:auto;box-shadow:-6px 0 18px rgba(0,0,0,.25);align-content:start}
@media (max-width:600px){.visio-avec-fichiers .visio-fichiers-volet{width:100%;border-radius:0}}
.visio-fichiers-volet[hidden]{display:none!important}

/* Résultats d'un sondage nominatif (7/11/2026) : barres cliquables (filtre par note) */
.sondage-barres li[data-filtre-note]{cursor:pointer;border-radius:8px}.sondage-barres li[data-filtre-note]:hover,.sondage-barres li[data-filtre-note]:focus-visible{background:color-mix(in srgb,var(--accent) 7%,transparent);outline:none}
.sondage-filtre{display:flex;align-items:center;gap:8px;font-size:14px}
/* « Voir comme l'apprenante » : sondage en attente, encadré non bloquant ; croix des fenêtres automatiques (7/11/2026) */
.voir-comme-sondage{margin:12px auto;max-width:1100px;padding:10px 14px;border:1px dashed var(--orange,#B45F06);border-radius:10px;background:var(--surface-2,#faf6f2);font-size:14px}
.fenetre-tete-seule{justify-content:flex-end;padding-bottom:0;border-bottom:0}
/* Visio programmée et « Entretien individuel » (7/11/2026) : fenêtre commune, planning, accueil de l'apprenante */
.cal-appel{--c:#2f5f9e}
.visio-programmer-date{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.visio-programmer [hidden]{display:none!important}.visio-programmer-date .petit{flex-basis:100%;margin:0}
.visio-programmer select option:disabled{color:#a8a8a8}
.visio-programmer-avec{margin:0}
.visio-programmer-annuler{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px;padding-top:12px;border-top:1px solid var(--bord,#e4dcd6)}
.btn-inactif{opacity:.55;cursor:default;pointer-events:none}
.visio-programmee-bandeau{margin-bottom:12px}
/* Nouveaux créneaux d'entretien : envoi groupé prévu (7/11/2026) */
.entretiens-prevenir{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between}.entretiens-prevenir p{margin:0}
/* Tableau de bord (7/11/2026) : cartes compactes, sans s'étirer ; une ligne par alerte (tronquée), « Voir tout » en fenêtre */
.admin-cartes{align-items:start}
.admin-carte ul.admin-lignes li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-carte ul.admin-lignes li>a{display:inline}
.admin-carte-voir{margin:0;font-size:14px}
.admin-alertes-liste{display:grid;gap:14px}.admin-alertes-liste h3{margin:0 0 6px;font-size:15px}.admin-alertes-liste ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}

/* Marque discrète de la plateforme, en bas du menu de l'administration (7/11/2026) */
.marque-plateforme{margin:4px 0 0;padding:0 12px;font-size:11px;letter-spacing:.04em;color:color-mix(in srgb,var(--ink) 55%,transparent)}
/* « Mini-fenêtre » : bouton rond dans la vidéo, en bas à gauche, à côté du trombone (7/11/2026) ; rien au-dessus ni au-dessous de la vidéo */
.visio-avec-pip{position:relative}
.visio-pip-bouton{position:absolute;left:12px;bottom:12px;z-index:5;display:inline-grid;place-items:center;width:44px;height:44px;margin:0;padding:0;border:0;border-radius:50%;background:#3c4043;color:#fff;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.35)}
.visio-avec-fichiers .visio-pip-bouton{left:64px}
.visio-pip-bouton:hover{background:#4d5156}.visio-pip-bouton:focus-visible{outline:2px solid #8ab4f8;outline-offset:2px}

/* Nouvelle interface de la visio, style Meet (7/11/2026) : scène sombre, titre et minuterie en haut, barre de boutons ronds en bas */
.meet{--meet-fond:#202124;--meet-barre:#2d2e31;--meet-texte:#e8eaed;--meet-rouge:#d93025;position:relative;display:flex;flex-direction:column;background:var(--meet-fond);color:var(--meet-texte);border-radius:16px;overflow:hidden;min-height:min(78vh,720px)}
.meet .visio-cadre{flex:1;min-height:0;height:auto;border-radius:0;background:var(--meet-fond)}
.meet .visio-cadre iframe{display:block;width:100%;height:100%;min-height:52vh;border:0}
.meet-haut{display:flex;align-items:center;gap:12px;padding:10px 16px;font-size:14px}
.meet-titre{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.meet-minuterie{font-variant-numeric:tabular-nums;opacity:.8}
.meet-participants{margin-left:auto;opacity:.8;white-space:nowrap}
.meet-barre{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:10px;padding:12px 12px calc(12px + env(safe-area-inset-bottom))}
.meet-bouton{display:inline-grid;place-items:center;width:48px;height:48px;border-radius:50%;border:0;background:var(--meet-barre);color:var(--meet-texte);cursor:pointer;list-style:none}
.meet-bouton:hover{filter:brightness(1.25)}.meet-bouton:focus-visible{outline:2px solid #8ab4f8;outline-offset:2px}
.meet-bouton.coupe{background:var(--meet-rouge)}
.meet-bouton.actif:not(.coupe){background:#8ab4f8;color:#202124}
.meet-raccrocher{width:64px;border-radius:24px;background:var(--meet-rouge)}
.meet-plus{position:relative}.meet-plus>summary::-webkit-details-marker{display:none}
.meet-menu{position:absolute;bottom:56px;right:0;min-width:220px;margin:0;padding:6px;list-style:none;background:#fff;color:#202124;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.3);z-index:20}
.meet-menu button{display:block;width:100%;padding:9px 12px;border:0;background:none;text-align:left;font:inherit;font-size:14px;border-radius:6px;cursor:pointer}
.meet-menu button:hover{background:#f1f3f4}
@media (max-width:600px){.meet{border-radius:0;margin-inline:-16px;min-height:calc(100vh - 140px)}.meet-bouton{width:44px;height:44px}.meet-raccrocher{width:56px}.meet-participants{display:none}}
.meet-barre .visio-fichiers-bouton{position:static;width:48px;height:48px;margin:0;box-shadow:none;background:var(--meet-barre)}   /* trombone dans la barre (7/11/2026) */
/* Espace du certificateur, style VTiger (7/11/2026) : filtres, fiche organisme en onglets, compteurs à traiter */
.ce-filtres{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end}.ce-filtres label{min-width:0}
.ce-resume{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;margin:0 0 12px}
.ce-onglets{flex-wrap:wrap;margin-bottom:12px}
.compteurs-liste a.a-traiter b{color:var(--orange,#B45F06)}
.ce-fiche .h3{font-size:16px;margin:12px 0 6px}
/* Espace du certificateur › Sessions d'examen (7/11/2026) : calendrier, états, notifications, direct du jour */
.ce-vues{margin-bottom:10px}
.ce-cal-tete{display:flex;align-items:center;gap:10px;margin:8px 0}
.ce-cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.ce-cal-jn{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2,#666);padding:2px 4px}
.ce-cal-jour{min-height:84px;background:var(--surface,#fff);border:1px solid var(--line,#e4dcd6);border-radius:8px;padding:4px;display:flex;flex-direction:column;gap:3px;min-width:0}
.ce-cal-semaine .ce-cal-jour{min-height:160px}
.ce-cal-jour.ce-hors{opacity:.45}.ce-cal-jour.ce-auj{border-color:var(--accent,#9b4b6a)}
.ce-cal-num{font-size:12px;color:var(--ink-2,#666)}
.ce-cal-session{display:block;font-size:12px;line-height:1.25;padding:3px 5px;border-radius:6px;background:#eef3fb;color:inherit;text-decoration:none;overflow:hidden;text-overflow:ellipsis}
.ce-cal-session small{display:block;opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ce-etat-jury,.ce-etat-a_deliberer,.ce-etat-deliberee{background:#fdf0dc}.ce-etat-en_cours{background:#fde2e0}.ce-etat-pv_signe{background:#e4f3e8}
.ce-non-lue a{font-weight:600}
.ce-en-cours{animation:ce-pulse 1.6s ease-in-out infinite}@keyframes ce-pulse{50%{opacity:.55}}
@media (max-width:600px){.ce-cal{grid-template-columns:1fr}.ce-cal-jn{display:none}.ce-cal-jour{min-height:0}.ce-cal-jour:not(:has(.ce-cal-session)){display:none}}
/* Formulaire de demande d'habilitation (7/11/2026) */
.hf-code{width:100%;font-family:ui-monospace,monospace;font-size:12.5px}
.hf-etat{display:inline-flex;margin-right:12px}
.hf-decision{display:grid;gap:8px;margin-top:10px}
/* Pièces de l'apprenante (7/11/2026) */
.pieces-faces{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px}
.piece-depot{display:grid;gap:6px;padding:12px;border:1px dashed var(--line,#e4dcd6);border-radius:12px}
.piece-depot .piece-face{margin:0}
.piece-choisir{position:relative;overflow:hidden;cursor:pointer;justify-self:start}.piece-choisir input{position:absolute;inset:0;opacity:0;cursor:pointer}
.piece-autre{margin-top:10px}
/* Inviter un centre (7/11/2026) : page publique, documents légaux */
body.inv{margin:0;background:#f6f3f1;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:#1f1a1c}
.inv-page,.inv-doc{max-width:780px;margin:0 auto;padding:28px 16px;display:grid;gap:14px}
.inv-atouts{margin:8px 0 0;padding-left:18px;display:grid;gap:6px}
.inv-piege{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.inv .err{display:block;color:#b3261e;font-size:13px}
.dl-edition{font-family:ui-monospace,monospace;font-size:13px;line-height:1.5}
.dl-texte h3,.inv-doc h3{font-size:16px;margin:14px 0 4px}
.ce-inviter{justify-content:flex-end}
/* Vrais onglets en haut, façon VTiger (7/11/2026) : espace certificateur, console, Configuration */
.onglets-haut{display:flex;flex-wrap:wrap;gap:0 4px;border-bottom:1px solid var(--line);margin:0 0 16px;max-width:100%}
.onglets-haut a{padding:10px 14px;margin-bottom:-1px;border-bottom:3px solid transparent;text-decoration:none;color:var(--ink-2,#555);font-weight:500;white-space:nowrap}
.onglets-haut a:hover{color:var(--ink)}
.onglets-haut a[aria-current]{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}
.fiche-nb.fiche-nb-alerte{background:var(--accent);color:#fff}
/* Rien ne déborde à droite (7/11/2026) : tableaux avec défilement interne, compteurs qui passent à la ligne */
.console-corps,.console-corps main,.liste-admin{min-width:0;max-width:100%}
.liste-admin .espace-table,.defile-x{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}
.compteurs-liste{grid-template-columns:repeat(auto-fill,minmax(min(138px,100%),1fr))}
.page-tete{flex-wrap:wrap;gap:8px;min-width:0}.page-tete h1{overflow-wrap:anywhere;min-width:0}
/* Compteurs : passent à la ligne sur téléphone (plus de rangée coupée à droite, 7/11/2026) */
@media (max-width:700px){.compteurs-liste{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}.compteurs-liste a{min-width:0}}
/* Logo de la console et de l'espace certificateur entier : nom sur une ligne, « Espace certificateur » dessous (7/11/2026) */
.esp-top-lateral .console-marque{white-space:normal;overflow:visible;text-overflow:clip;display:flex;flex-direction:column;justify-content:center;line-height:1.15;min-width:0}
.esp-top-lateral .console-marque .plateforme-nom{white-space:nowrap}
.esp-top-lateral .console-marque .console-sous{display:block;white-space:nowrap;margin-top:2px}
@media (max-width:1023px){.esp-top-lateral .console-marque{flex-direction:row;align-items:baseline;gap:8px;flex-wrap:wrap}}
/* Listes façon VTiger (7/11/2026) : recherche instantanée, pastilles avec compteur, tri, pages de 50 */
.liste-outils{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin:0 0 14px;min-width:0}
.liste-recherche-instantanee{flex:1 1 260px;min-width:0;max-width:420px}
.liste-pastilles{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
.liste-pastilles a{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none;font-size:14px;white-space:nowrap}
.liste-pastilles a:hover{border-color:var(--accent)}
.liste-pastilles a[aria-current]{background:var(--accent);border-color:var(--accent);color:#fff}
.liste-pastilles a[aria-current] .fiche-nb{background:rgba(255,255,255,.25);color:inherit}
th.triable{cursor:pointer;user-select:none;white-space:nowrap}
th.triable::after{content:" ↕";opacity:.35;font-size:.85em}
th.triable[aria-sort=ascending]::after{content:" ↑";opacity:.8}th.triable[aria-sort=descending]::after{content:" ↓";opacity:.8}
.liste-pages{display:flex;gap:12px;align-items:center;justify-content:center;margin:12px 0}
.defile-x{overflow-x:auto;max-width:100%}
/* Listes façon VTiger (7/11/2026) : recherche instantanée, pastilles avec compteur, tri, pages de 50 */
.liste-outils{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin:0 0 14px;min-width:0}
.liste-recherche-instantanee{flex:1 1 260px;min-width:0;max-width:420px}
.liste-pastilles{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
.liste-pastilles a{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none;font-size:14px;white-space:nowrap}
.liste-pastilles a:hover{border-color:var(--accent)}
.liste-pastilles a[aria-current]{background:var(--accent);border-color:var(--accent);color:#fff}
.liste-pastilles a[aria-current] .fiche-nb{background:rgba(255,255,255,.25);color:inherit}
th.triable{cursor:pointer;user-select:none;white-space:nowrap}
th.triable::after{content:" ↕";opacity:.35;font-size:.85em}
th.triable[aria-sort=ascending]::after{content:" ↑";opacity:.8}th.triable[aria-sort=descending]::after{content:" ↓";opacity:.8}
.liste-pages{display:flex;gap:12px;align-items:center;justify-content:center;margin:12px 0}
.defile-x{overflow-x:auto;max-width:100%}
/* Listes façon VTiger (7/11/2026) : recherche instantanée, pastilles avec compteur, tri, pages de 50 */
.liste-outils{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin:0 0 14px;min-width:0}
.liste-recherche-instantanee{flex:1 1 260px;min-width:0;max-width:420px}
.liste-pastilles{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
.liste-pastilles a{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none;font-size:14px;white-space:nowrap}
.liste-pastilles a:hover{border-color:var(--accent)}
.liste-pastilles a[aria-current]{background:var(--accent);border-color:var(--accent);color:#fff}
.liste-pastilles a[aria-current] .fiche-nb{background:rgba(255,255,255,.25);color:inherit}
th.triable{cursor:pointer;user-select:none;white-space:nowrap}
th.triable::after{content:" ↕";opacity:.35;font-size:.85em}
th.triable[aria-sort=ascending]::after{content:" ↑";opacity:.8}th.triable[aria-sort=descending]::after{content:" ↓";opacity:.8}
.liste-pages{display:flex;gap:12px;align-items:center;justify-content:center;margin:12px 0}
.defile-x{overflow-x:auto;max-width:100%}
/* Listes façon VTiger (7/11/2026) : recherche instantanée, pastilles avec compteur, tri, pages de 50 */
.liste-outils{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin:0 0 14px;min-width:0}
.liste-recherche-instantanee{flex:1 1 260px;min-width:0;max-width:420px}
.liste-pastilles{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
.liste-pastilles a{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none;font-size:14px;white-space:nowrap}
.liste-pastilles a:hover{border-color:var(--accent)}
.liste-pastilles a[aria-current]{background:var(--accent);border-color:var(--accent);color:#fff}
.liste-pastilles a[aria-current] .fiche-nb{background:rgba(255,255,255,.25);color:inherit}
th.triable{cursor:pointer;user-select:none;white-space:nowrap}
th.triable::after{content:" ↕";opacity:.35;font-size:.85em}
th.triable[aria-sort=ascending]::after{content:" ↑";opacity:.8}th.triable[aria-sort=descending]::after{content:" ↓";opacity:.8}
.liste-pages{display:flex;gap:12px;align-items:center;justify-content:center;margin:12px 0}
.defile-x{overflow-x:auto;max-width:100%}
/* Listes façon VTiger (7/11/2026) : recherche instantanée, pastilles avec compteur, tri, pages de 50 */
.liste-outils{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin:0 0 14px;min-width:0}
.liste-recherche-instantanee{flex:1 1 260px;min-width:0;max-width:420px}
.liste-pastilles{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
.liste-pastilles a{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none;font-size:14px;white-space:nowrap}
.liste-pastilles a:hover{border-color:var(--accent)}
.liste-pastilles a[aria-current]{background:var(--accent);border-color:var(--accent);color:#fff}
.liste-pastilles a[aria-current] .fiche-nb{background:rgba(255,255,255,.25);color:inherit}
th.triable{cursor:pointer;user-select:none;white-space:nowrap}
th.triable::after{content:" ↕";opacity:.35;font-size:.85em}
th.triable[aria-sort=ascending]::after{content:" ↑";opacity:.8}th.triable[aria-sort=descending]::after{content:" ↓";opacity:.8}
.liste-pages{display:flex;gap:12px;align-items:center;justify-content:center;margin:12px 0}
.defile-x{overflow-x:auto;max-width:100%}
/* Listes façon VTiger (7/11/2026) : recherche instantanée, pastilles avec compteur, tri, pages de 50 */
.liste-outils{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin:0 0 14px;min-width:0}
.liste-recherche-instantanee{flex:1 1 260px;min-width:0;max-width:420px}
.liste-pastilles{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
.liste-pastilles a{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none;font-size:14px;white-space:nowrap}
.liste-pastilles a:hover{border-color:var(--accent)}
.liste-pastilles a[aria-current]{background:var(--accent);border-color:var(--accent);color:#fff}
.liste-pastilles a[aria-current] .fiche-nb{background:rgba(255,255,255,.25);color:inherit}
th.triable{cursor:pointer;user-select:none;white-space:nowrap}
th.triable::after{content:" ↕";opacity:.35;font-size:.85em}
th.triable[aria-sort=ascending]::after{content:" ↑";opacity:.8}th.triable[aria-sort=descending]::after{content:" ↓";opacity:.8}
.liste-pages{display:flex;gap:12px;align-items:center;justify-content:center;margin:12px 0}
.defile-x{overflow-x:auto;max-width:100%}
/* Listes façon VTiger (7/11/2026) : recherche instantanée, pastilles avec compteur, tri, pages de 50 */
.liste-outils{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin:0 0 14px;min-width:0}
.liste-recherche-instantanee{flex:1 1 260px;min-width:0;max-width:420px}
.liste-pastilles{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
.liste-pastilles a{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none;font-size:14px;white-space:nowrap}
.liste-pastilles a:hover{border-color:var(--accent)}
.liste-pastilles a[aria-current]{background:var(--accent);border-color:var(--accent);color:#fff}
.liste-pastilles a[aria-current] .fiche-nb{background:rgba(255,255,255,.25);color:inherit}
th.triable{cursor:pointer;user-select:none;white-space:nowrap}
th.triable::after{content:" ↕";opacity:.35;font-size:.85em}
th.triable[aria-sort=ascending]::after{content:" ↑";opacity:.8}th.triable[aria-sort=descending]::after{content:" ↓";opacity:.8}
.liste-pages{display:flex;gap:12px;align-items:center;justify-content:center;margin:12px 0}
.defile-x{overflow-x:auto;max-width:100%}
/* Listes façon VTiger (7/11/2026) : recherche instantanée, pastilles avec compteur, tri, pages de 50 */
.liste-outils{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin:0 0 14px;min-width:0}
.liste-recherche-instantanee{flex:1 1 260px;min-width:0;max-width:420px}
.liste-pastilles{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
.liste-pastilles a{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none;font-size:14px;white-space:nowrap}
.liste-pastilles a:hover{border-color:var(--accent)}
.liste-pastilles a[aria-current]{background:var(--accent);border-color:var(--accent);color:#fff}
.liste-pastilles a[aria-current] .fiche-nb{background:rgba(255,255,255,.25);color:inherit}
th.triable{cursor:pointer;user-select:none;white-space:nowrap}
th.triable::after{content:" ↕";opacity:.35;font-size:.85em}
th.triable[aria-sort=ascending]::after{content:" ↑";opacity:.8}th.triable[aria-sort=descending]::after{content:" ↓";opacity:.8}
.liste-pages{display:flex;gap:12px;align-items:center;justify-content:center;margin:12px 0}
.defile-x{overflow-x:auto;max-width:100%}
/* Correctif du 8/11/2026 (défaut de la revue des pages) : un tableau qui défile dans son propre cadre garde son en-tête à sa place (décalage
   nul) : il ne recouvre jamais la première ligne. Bande d'icônes (< 1 024 px) : les rubriques grisées n'affichent que leur icône. */
.liste-admin .espace-table thead th,.defile-x thead th{top:0}
@media (max-width:1023px){
  .lateral-equipe .esp-menu.esp-lateral:not(.ouvert) .lat-grise{justify-content:center;padding:10px 0}
  .lateral-equipe .esp-menu.esp-lateral:not(.ouvert) .lat-grise>span{display:none}
}
/* Candidates du certificateur (8/11/2026) : le tableau tient dans la largeur (colonnes qui passent à la ligne), la colonne Examen n'est plus coupée */
@media (min-width:641px){
  .ce-candidates .espace-table table{table-layout:fixed;width:100%}
  .ce-candidates .espace-table th,.ce-candidates .espace-table td{white-space:normal;overflow-wrap:anywhere;min-width:0;padding-inline:10px}
  .ce-candidates .espace-table th{letter-spacing:.04em}
}
/* Textes signés du dossier d'habilitation (8/11/2026) : lignes et listes du texte du certificateur conservées */
.hd-texte{white-space:pre-wrap}
/* Carte « À faire : déposer ma réalisation » (8/11/2026) */
.realisation-a-faire{border:2px solid var(--accent);margin-bottom:18px}.realisation-a-faire h2{margin:0 0 6px}.realisation-a-faire p{margin:0 0 12px}
.realisation-depot{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center}
.realisation-fichier{position:relative;overflow:hidden;cursor:pointer}.realisation-fichier input{position:absolute;inset:0;opacity:0;cursor:pointer}
.dex-reponses{margin-top:18px}.dex-reponses ol{display:grid;gap:8px;padding-left:1.4em}
/* Liens dans les messages et le tchat (8/11/2026) : soulignés, coupés si trop longs */
.message-corps a{text-decoration:underline;overflow-wrap:anywhere;word-break:break-word}
/* Note de la plateforme (8/11/2026) : bulle discrète en bas à droite, fenêtre d'étoiles, encart, page console */
.note-bulle{position:fixed;right:calc(14px + env(safe-area-inset-right,0px));bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:30;display:inline-flex;align-items:center;gap:4px;padding:6px 11px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font:500 13px var(--sans,inherit);box-shadow:0 4px 14px rgba(30,11,22,.10);cursor:pointer;opacity:.85}
.note-bulle:hover,.note-bulle:focus-visible{opacity:1;color:var(--ink);border-color:var(--accent)}.note-bulle span[aria-hidden]{color:#E3A11B}
@media print{.note-bulle{display:none}}
.note-form{display:grid;gap:12px}.note-form h2{margin:0}
.note-etoiles{border:0;margin:0;padding:0;display:inline-flex;flex-direction:row-reverse;justify-content:flex-end;gap:2px}
.note-etoiles input{position:absolute;opacity:0;width:1px;height:1px}.note-etoiles label{font-size:34px;line-height:1;color:var(--line);cursor:pointer;padding:2px}
.note-etoiles input:checked ~ label,.note-etoiles label:hover,.note-etoiles label:hover ~ label{color:#E3A11B}.note-etoiles input:focus-visible + label{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
.note-message{margin:0;font-weight:600;color:var(--ok,#1f6e43)}.note-message.erreur{color:#b3261e}
.np-chiffres{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 18px}.np-chiffres p{margin:0;padding:12px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);display:grid;gap:2px;min-width:150px}
.np-chiffres b{font:500 22px var(--serif,inherit)}.np-chiffres span{font-size:13px;color:var(--ink-2)}.np-chiffres .np-a-part{opacity:.7;border-style:dashed}
.np-etoiles{color:#E3A11B;letter-spacing:1px;white-space:nowrap}.np-barre{display:inline-block;vertical-align:middle;width:90px;height:6px;border-radius:6px;background:linear-gradient(90deg,var(--accent) var(--v),var(--line) var(--v))}
.note-encart{display:inline-grid;gap:2px;padding:14px 18px;border:1px solid var(--line);border-radius:14px;background:var(--surface);max-width:100%}
.note-encart p{margin:0}.note-encart-titre{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}.note-encart-note{font:500 28px var(--serif,inherit)}.note-encart-note span{color:#E3A11B}
.note-encart-nb,.note-encart-mention{font-size:13px;color:var(--ink-2)}.np-apercu{margin:12px 0}

/* Bulle de note plus lisible (8/11/2026) : étiquette « ★ 4,8 · Notez … » (téléphone : « Noter »), petit logo ; toujours sans animation */
.note-bulle{padding:8px 14px 8px 10px;font-size:14px;gap:6px;opacity:.95}.note-bulle-logo{width:18px;height:18px;flex:none}
.note-bulle-sep{color:var(--ink-2)}.note-bulle-court{display:none}
@media (max-width:640px){.note-bulle-long{display:none}.note-bulle-court{display:inline}}
.note-sous-titre{margin:-4px 0 0}.note-actuelle{margin:0}
.note-fenetre{max-width:520px}.note-form{grid-template-columns:minmax(0,1fr)!important;gap:10px}.note-form>*{grid-column:1/-1}
.note-form h2{font-size:22px;line-height:1.25}.note-form .note-etoiles{margin:4px 0}
/* Messagerie (8/11/2026) : bouton « Clore » et mention « Traitée » dans l'en-tête de la conversation */
.msg-fil-clore{display:inline;margin:0}.msg-fil-clore button{cursor:pointer;font:inherit}.msg-fil-traitee{align-self:center;white-space:nowrap}
/* Dossiers (8/11/2026) : pastilles d'état (un dossier dans un seul), rangée EDOF secondaire plus discrète, case « Afficher les essais » */
.dossiers-pastilles{margin:6px 0 6px}.dossiers-pastilles-edof{margin:0 0 12px}.dossiers-pastilles-edof a{font-size:13px;padding:3px 10px}
.filtre-essais{align-self:center;white-space:nowrap}
/* « Répondre » sous chaque conversation, dans le dossier (8/11/2026, c212) */
.msg-conv-repondre{display:inline-block;margin:0 0 8px 62px;font-size:14px}
/* Messages et Tchat : un seul champ de recherche, pastilles Session et Non lus dessous, apprenante sans conversation (8/11/2026) */
.msg-filtres[data-msg-recherche]{display:grid;gap:8px}
.msg-recherche-champ input{width:100%}
.msg-pastilles,.tchat-pastilles{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
.tchat-filtres .tchat-pastilles{flex-basis:100%;margin-bottom:6px}
.msg-convs>li[hidden],.msg-sans-conv>li[hidden]{display:none}
.msg-sans-conv{list-style:none;margin:0;padding:0}
.msg-sans-conv>li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line)}
.msg-sans-conv>li span{min-width:0;overflow-wrap:anywhere}
/* Calendrier des rendez-vous (8/11/2026) : nom sur une seule ligne, jamais coupé à mi-hauteur ; aide « ? » des Entretiens */
.cal-creneau,.cal-puce{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.35}.cal-creneau{min-height:1.5em;display:block}
.cal-creneau span,.cal-puce span{overflow:hidden;text-overflow:ellipsis}
.entretiens-aide{display:flex;gap:12px;align-items:center;margin:0 0 8px}.aide-bulle{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1px solid var(--line);font-size:13px;font-weight:600;cursor:help;color:var(--ink-2)}
/* Messages, colonne de gauche (8/11/2026, retour de Studio) : champ sur toute la largeur, pastilles sur une ligne qui défile, « Autres apprenantes » compactes */
.msg-liste .msg-filtres.espace-recherche[data-msg-recherche]{display:flex;flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:8px}
.msg-liste .msg-filtres[data-msg-recherche]>label.msg-recherche-champ{display:block;flex:none;width:100%;max-width:none;margin:0}
.msg-liste .msg-filtres[data-msg-recherche]>label.msg-recherche-champ input{display:block;width:100%;max-width:none;box-sizing:border-box}
.msg-liste .msg-pastilles{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;padding-bottom:4px;max-width:100%}
.msg-liste .msg-pastilles a{flex:none;white-space:nowrap}
.msg-autres-titre{margin:0;padding:10px 14px 4px;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}
.msg-conv-sans .msg-sans-ligne{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line)}
.msg-conv-sans .msg-conv-texte{display:grid;gap:1px;min-width:0}
.msg-conv-sans .msg-conv-apercu{font-size:13px;color:var(--ink-2)}
.msg-ecrire{font-size:13px;font-weight:600;color:var(--accent);text-decoration:none;white-space:nowrap}
.msg-ecrire:hover{text-decoration:underline}
.msg-sans-conv>li.msg-conv-sans{padding:0;border:0}.msg-sans-conv>li.msg-conv-sans:not([hidden]){display:block}
.msg-conv-sans .msg-conv-nom{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.msg-conv-sans .msg-conv-apercu{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.msg-conv-sans .msg-ecrire{display:inline;padding:0;border:0;background:none}
/* Messages : échanges repris en lecture seule, pastille « Sans réponse » mise en avant (8/11/2026) */
.msg-repris{list-style:none;margin:0;padding:0}
.msg-repris>li[hidden]{display:none}
.msg-conv-repris .msg-sans-ligne{color:inherit;text-decoration:none}
.msg-conv-repris .msg-sans-ligne:hover{background:color-mix(in srgb,var(--accent) 5%,var(--surface))}
.msg-conv-repris .msg-conv-apercu{font-size:13px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.msg-conv-repris .msg-conv-nom{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.msg-conv-repris .msg-sans-ligne{grid-template-columns:44px minmax(0,1fr)}
.msg-repris-sans .msg-sans-ligne{border-left:3px solid var(--rouge)}
.liste-pastilles a.msg-pastille-alerte{border-color:var(--rouge);color:var(--rouge);font-weight:600}
.liste-pastilles a.msg-pastille-alerte[aria-current]{background:var(--rouge);color:#fff}
/* Messagerie façon WhatsApp (8/11/2026) : colonne plus large, pastilles compactes, conversation vide à droite, menu « ⋯ », fenêtre d'envoi groupé */
@media (min-width:1024px){.msg-cadre:has(.msg-filtres){grid-template-columns:clamp(300px,32%,380px) minmax(0,1fr)}}
.msg-liste .msg-pastilles a{padding:4px 10px;font-size:13px;gap:4px}
.msg-liste .msg-pastilles{scroll-snap-type:x proximity}.msg-liste .msg-pastilles a{scroll-snap-align:start}
.msg-fil-nouveau .msg-fil-tete{position:relative}
.msg-plus{position:relative;flex:none}
.msg-plus>summary{list-style:none;cursor:pointer;display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;font-size:20px;line-height:1;color:var(--ink-2)}
.msg-plus>summary::-webkit-details-marker{display:none}
.msg-plus>summary:hover,.msg-plus[open]>summary{background:color-mix(in srgb,var(--accent) 9%,var(--surface));color:var(--accent)}
.msg-plus-menu{position:absolute;right:0;top:42px;z-index:20;width:min(320px,80vw);display:grid;gap:10px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:0 8px 24px rgba(0,0,0,.12)}
.msg-plus-menu label{display:grid;gap:4px;font-weight:600;font-size:14px}
.msg-plus-menu input,.msg-plus-menu select{width:100%}
.msg-flux-vide{display:grid;place-items:center;padding:32px 16px;text-align:center;flex:1;min-height:160px}
.msg-groupe>summary{cursor:pointer;font-weight:600;color:var(--accent);padding:8px 0}
.msg-groupe-corps{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;padding-top:6px}
.msg-ecrire-une label{font-weight:600}
.msg-categorie>summary{display:flex;align-items:center;justify-content:flex-start;gap:6px;list-style:none;cursor:pointer;font-weight:600}
.msg-categorie>summary::-webkit-details-marker{display:none}
.msg-categorie>summary::after{content:"+";margin-left:2px;color:var(--accent);font-size:18px;line-height:1;position:static;transform:none}
.msg-categorie[open]>summary::after{content:"–"}
/* bulle « Notez … » : jamais sur la zone de saisie des messages ni du Tchat (8/11/2026 : elle cachait « Envoyer ») */
body:has(.msg-saisie) .note-bulle{bottom:calc(92px + env(safe-area-inset-bottom,0px))}
details.msg-plus>summary::after,details.msg-plus[open]>summary::after{content:none}
details.msg-categorie:not([open])>summary::after{content:"+"}details.msg-categorie[open]>summary::after{content:"–"}
details.msg-groupe>summary{display:flex;align-items:center;gap:8px;list-style:none}details.msg-groupe>summary::-webkit-details-marker{display:none}
details.msg-groupe:not([open])>summary::after{content:"+";margin-left:2px}details.msg-groupe[open]>summary::after{content:"–";margin-left:2px}
details.msg-plus>summary{border:0;box-shadow:none;text-decoration:none;padding:0;min-height:0}
/* Badge de présence (8/11/2026) : « En ligne » (vert) ou « Déconnectée depuis … » (gris) ; point sur l'avatar dans les listes */
.presence-pastille{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font:500 13px/1.3 var(--sans);vertical-align:middle;white-space:nowrap}
.presence-pastille.presence-en-ligne{background:color-mix(in srgb,var(--vert) 12%,var(--surface));color:var(--vert)}
.presence-pastille.presence-hors-ligne{background:color-mix(in srgb,var(--gris) 12%,var(--surface));color:var(--ink-2)}
.presence-point{display:inline-block;width:9px;height:9px;border-radius:50%;flex:none;background:var(--gris)}
.presence-en-ligne .presence-point,.presence-point.presence-en-ligne{background:var(--vert)}
.presence-av{position:relative;display:inline-flex;flex:none}
.presence-sur-avatar{position:absolute;right:-1px;bottom:-1px;width:11px;height:11px;border:2px solid var(--surface);box-sizing:content-box}
.dossier-presence{margin:4px 0 0}
@media (max-width:640px){.presence-pastille{white-space:normal}}
.presence-appel{margin-left:6px;vertical-align:middle}
.presence-appel[hidden]{display:none}
.presence-compteur{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--ink-2)}
.presence-compteur.presence-compteur-actif{color:var(--vert);font-weight:600}.presence-compteur.presence-compteur-actif .presence-point{background:var(--vert)}
.session-presence{margin:0 0 8px}
.dossiers-presence{margin-bottom:6px}
/* Fiche dossier (8/11/2026) : bouton « Session … » comme Visio et Message ; lien de la session lisible sur le fond foncé */
.dossier-btn-session{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.dossier-hero .dossier-hero-session a,.dossier-hero-session a{color:#fff;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
/* Messages sur téléphone (8/11/2026, retour d'une apprenante) : bouton flottant « + » de nouvelle conversation, la bulle de note se décale au-dessus */
.msg-fab{display:none}
@media (max-width:767px){
  .msg-fab{display:inline-grid;place-items:center;position:fixed;right:calc(16px + env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:35;width:56px;height:56px;border-radius:50%;background:var(--accent);color:#fff;font-size:30px;line-height:1;text-decoration:none;box-shadow:0 6px 18px rgba(0,0,0,.22)}
  body:has(.msg-saisie) .msg-fab,body:has(dialog[open]) .msg-fab{display:none}
  body:has(.msg-fab) .note-bulle{bottom:calc(86px + env(safe-area-inset-bottom,0px))}
  body:has(.msg-fab):has(.msg-saisie) .note-bulle{bottom:calc(92px + env(safe-area-inset-bottom,0px))}
}
a.msg-fab,a.msg-fab:visited,a.msg-fab:hover{color:#fff}
/* Documents en brouillon (8/11/2026) : certificat et attestation produits au passage en « Terminée », à vérifier et signer */
.doc-brouillon-mention{font-size:13px;color:var(--orange)}
.doc-brouillon form.inline{display:inline}
.dossier-hero-entree{margin:4px 0 0;font-size:14px;color:#fff}.dossier-entree-a-confirmer{display:inline-block;padding:1px 8px;border-radius:999px;background:rgba(255,255,255,.18);font-weight:600}
/* Tableau de bord (8/11/2026, série complète) : une alerte n'est plus coupée au milieu (« … · T… ») : 2 lignes au plus, rien ne dépasse à 1024 px */
.admin-carte-alertes ul.admin-lignes li{white-space:normal;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}
/* Fenêtre « Inviter un centre » et envoi d'un message prédéfini (8/11/2026) : champs à gauche, aperçu de l'e-mail à droite (dessous au téléphone) */
.ce-inviter-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
.ce-inviter-champs{display:grid;gap:10px;min-width:0}
.ce-inviter-apercu{min-width:0;position:sticky;top:0}
.ce-apercu-mail{border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:var(--surface);font-size:14.5px;line-height:1.55;overflow-wrap:anywhere;max-height:60vh;overflow:auto}
.ce-apercu-mail p{margin:0 0 10px}.ce-apercu-objet{border-bottom:1px solid var(--line);padding-bottom:8px}
@media (max-width:760px){.ce-inviter-form{grid-template-columns:minmax(0,1fr)}.ce-inviter-apercu{position:static}}
/* Espace du certificateur prêt pour son premier accès (8/11/2026) : « Bientôt disponible », conditions, visite guidée */
.ce-bientot{margin:0 0 12px}
.ce-doc-legal{border:1px solid var(--line);border-radius:12px;padding:10px 14px}
.ce-doc-legal>summary{cursor:pointer;font-weight:600}
.ce-doc-legal-texte{max-height:50vh;overflow:auto;margin-top:10px;padding-right:6px}
.ce-visite{max-width:min(560px,calc(100vw - 32px))}
.ce-visite-etape h3{margin:4px 0 6px}
/* Organismes du certificateur : boutons d'entête rangés, jamais sur le titre (8/11/2026) */
.ce-inviter{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;margin:0 0 6px}.ce-inviter .btn+.btn{margin-left:0}
@media (max-width:640px){.ce-inviter{justify-content:flex-start}.ce-inviter .btn{padding:8px 14px;font-size:12px;box-shadow:none}}
/* Réglages du certificateur : Enregistrer toujours visible sur les longs formulaires */
.reglages-barre{position:sticky;bottom:0;z-index:4;background:var(--bg);padding:10px 0;margin-top:8px;border-top:1px solid var(--line)}
.ce-cal-vide{margin:10px 0}.ce-cal-tete{flex-wrap:wrap}
@media (min-width:601px){.ce-cal-vide{text-align:center}}
@media (min-width:761px){.espace-table td.liste-actions{display:table-cell}}
/* Finitions de l'espace certificateur (8/11/2026) */
th.triable::after{content:"\a0↕"}th.triable[aria-sort=ascending]::after{content:"\a0↑"}th.triable[aria-sort=descending]::after{content:"\a0↓"}   /* flèche jamais seule sur une ligne */
.ce-centre-tel{display:none}
@media (max-width:760px){.ce-centre-tel{display:block}.ce-candidates td.ce-centre-col{display:none}}
.lien-centre{display:inline-block;margin-top:6px}.lien-centre>summary{list-style:none;cursor:pointer;display:inline-flex}.lien-centre>summary::-webkit-details-marker{display:none}
.lien-centre[open]>summary{margin-bottom:6px}.lien-centre .lien-copie{display:flex;gap:6px;align-items:center;max-width:22rem}.lien-centre .lien-copie input{min-width:0;flex:1}
td.ce-actions{white-space:nowrap}td.ce-actions .lien-bouton+.lien-bouton{margin-left:10px}
.hd-vue-cert{background:#eef3fb;border-left:4px solid #3c64a8}
/* Habilitations et Organismes du certificateur (8/11/2026) : colonnes utiles, en-têtes sur une ligne, actions dans un menu « ⋯ » */
.ce-table-actions th{white-space:nowrap}
.ce-table-actions .col-menu{width:1%;text-align:right;white-space:nowrap}
.menu-ligne{position:relative;display:inline-block}.menu-ligne>summary.btn{padding:4px 12px;min-height:0;line-height:1.2;font-size:18px;letter-spacing:0;box-shadow:none}
.menu-ligne .menu-actions-liste{min-width:220px;text-align:left}
.menu-actions-liste li{margin:0}.menu-actions-liste form{margin:0}
.menu-actions-liste button{display:block;width:100%;text-align:left;padding:8px 10px;border:0;border-radius:8px;background:none;color:var(--ink);font:inherit;font-size:14px;cursor:pointer;white-space:nowrap;text-transform:none;letter-spacing:normal}
.menu-actions-liste button:hover,.menu-actions-liste button:focus-visible{background:color-mix(in srgb,var(--accent) 8%,var(--surface))}
.ce-barre{display:block;width:100%;max-width:180px;height:6px;border-radius:3px;background:var(--line);overflow:hidden}.ce-barre>span{display:block;height:100%;background:var(--accent)}
@media (max-width:760px){.ce-table-actions .col-menu{width:auto;text-align:left}.ce-table-actions td.col-menu::before{content:none}}
/* Boutons dans une cellule de tableau (8/11/2026, contrôlé par c305) : 40 px de haut au plus */
td .btn{padding:7px 14px;font-size:12px;line-height:1.2;min-height:0}
/* Import EDOF en libre-service (8/11/2026) */
.edof-importer{display:grid;gap:14px;max-width:880px}
.edof-pas{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.edof-pas li{display:flex;gap:10px;align-items:flex-start}
.edof-pas-n{flex:none;display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--accent);color:#fff;font-weight:600;font-size:14px}
.edof-zone{display:grid;justify-items:center;gap:6px;padding:28px 16px;border:2px dashed var(--line);border-radius:16px;text-align:center;cursor:pointer;color:var(--ink-2)}
.edof-zone:hover,.edof-zone.survol{border-color:var(--accent);color:var(--accent)}
.edof-zone input[type=file]{position:absolute;opacity:0;width:1px;height:1px}
.edof-zone{position:relative}
.edof-rappel{margin:0 0 10px}
.edof-annule td{color:var(--ink-2)}
.edof-appliquer-barre{position:sticky;bottom:0;display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 0;background:var(--bg)}
.fiche-nb-alerte{background:var(--rouge);color:#fff}
/* Composant commun des calendriers (8/11/2026, src/calendrier.php) : une ligne, nom complet au survol, jamais coupé à mi-hauteur ni superposé ; « +N autres » */
.cal-creneau,.cal-puce,.ce-cal-session{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.35}
.cal-creneau{display:block;min-height:1.5em;box-sizing:border-box}
.cal-creneau>b,.cal-creneau>span,.cal-puce>b,.cal-puce>span{display:inline}
.cal-cours-semaine .cal-creneau{display:block;white-space:nowrap;line-height:1.35}
.ce-cal-session small{display:inline;margin-left:4px}
.cal-plus{z-index:3;font-size:12px;line-height:1.35}.cal-plus>summary{list-style:none;cursor:pointer;padding:1px 6px;border-radius:6px;background:var(--surface);border:1px dashed var(--line);white-space:nowrap;color:var(--accent)}
.cal-plus>summary::-webkit-details-marker{display:none}
.cal-plus[open]{z-index:20}.cal-plus-liste{position:absolute;z-index:20;left:0;top:calc(100% + 2px);min-width:200px;max-width:min(320px,90vw);margin:0;padding:6px;list-style:none;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.14);display:grid;gap:3px}
.cal-plus-liste a{display:block}
.cal-jour-mois .cal-plus{position:relative}
.cal-essais{display:inline-flex;align-items:center;gap:6px;margin:0 0 6px;white-space:nowrap}
.cal-filtre,.visio-choix label{white-space:nowrap}
@media (max-width:760px){.cal-puce span{display:inline}.cal-plus-liste{left:auto;right:0}}
.cal-creneau{padding-top:2px;padding-bottom:2px}
/* Choix de la formation (8/11/2026) : champ en erreur en rouge */
.selection-champ[aria-invalid="true"]{border-color:#c0392b;box-shadow:0 0 0 2px rgba(192,57,43,.18)}
/* Listes au lieu de cartes empilées (8/11/2026) : barre d'actions au-dessus du tableau, état sur une ligne, sous-onglets ; la barre
   d'onglets d'une fiche ne recouvre jamais le contenu (pas d'en-tête de tableau collant sous elle, ancres décalées) */
.jury-barre{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 10px}
.jury-etat{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 10px}
.sous-onglets{margin:0 0 12px}.sous-onglets a{font-size:14px}
.fiche-panneau .liste-table thead th{position:static}
.fiche-panneau,.fiche-panneau [id]{scroll-margin-top:calc(var(--esp-haut,0px) + 72px)}
.examen-non-inscriptibles .menu-actions-liste{min-width:320px;white-space:normal}.examen-non-inscriptibles .menu-actions-liste li{padding:6px 10px}
.reglages-bloc{padding:4px 0 16px;border-bottom:1px solid var(--line);margin-bottom:16px}
td .btn{white-space:nowrap;align-self:center;height:auto}td .form-ligne{align-items:center}
/* Présence dans la messagerie et le tchat (8/11/2026) : point sur l'avatar, « En ligne » dans l'en-tête ; pastilles qui passent à la ligne */
.msg-avatar-presence{position:relative;display:inline-flex;flex:none}
.msg-avatar-presence .presence-sur-avatar{position:absolute;right:-1px;bottom:-1px}
.msg-fil-presence{margin:2px 0 0;font-size:12px}
.msg-liste .msg-pastilles{flex-wrap:wrap;overflow-x:visible}
/* Messagerie (8/11/2026, urgent) : trois pastilles seulement (Sans réponse · Non lus · Échanges repris), sur une ligne, jamais coupées */
.msg-liste .msg-pastilles{flex-wrap:nowrap;overflow-x:auto}.msg-liste .msg-pastilles a{flex:none;white-space:nowrap}
.lien-etat-ok{color:#1f7a4d}.lien-etat-attente{color:#9a6a00}.lien-etat-expire{color:#b23b3b}.lien-perso-apercu{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--surface)}
/* Statut de certification partagé (8/11/2026) */
.certif-statut-ligne{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0 0 10px}
.ce-statut-lot{margin:0 0 10px}.ce-statut-lot-corps{min-width:min(420px,92vw);padding:12px}
.col-case{width:1%;text-align:center}
.ce-candidates .espace-table th.col-case,.ce-candidates .espace-table td.col-case{width:44px;padding-inline:6px}
/* Largeur commune (8/11/2026, lot 9) : espace apprenante et espace organisme, contenu centré, 1440 px au plus, mêmes marges à gauche et à droite ;
   la messagerie (page pleine) prend toute la largeur. Logo de la barre latérale jamais rogné (cloche à côté). */
@media (min-width:1024px){
  body.avec-lateral main.espace>.wrap{max-width:1440px;margin-inline:auto;padding-inline:clamp(16px,3vw,44px)}
  body.avec-lateral.page-pleine main.espace>.wrap{max-width:none}
  .esp-top-lateral .wrap{padding-inline:16px 12px;gap:8px}
  .esp-top-lateral .wrap:has(.cloche) .logo{font-size:18px}
  .msg-ecrire-mobile{display:none}
}
/* Progression (8/11/2026, lot 11) : intitulé de formation sur une ligne (complet au survol), date de début dessous. */
.progression-formation{display:block;max-width:20ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.progression-liste td{vertical-align:top}
.lateral-equipe .progression-liste .liste-table th{white-space:nowrap}
.progression-liste td[data-label="Heures ici / minimum"],.progression-liste td[data-label="Dernière activité ici"]{white-space:nowrap}
/* Notes des formateurs (8/11/2026, lot 12) : pastille « ★ 4,7 » à côté du nom ; clic : moyenne, nombre d'avis, période. */
.note-pastille{display:inline-block;position:relative;margin-left:6px;vertical-align:middle;font-weight:400}
.note-pastille>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;padding:0 7px;border-radius:999px;background:#fff6dc;color:#7a5a00;font-size:12px;line-height:20px;white-space:nowrap}
.note-pastille>summary::-webkit-details-marker{display:none}
.note-pastille>summary::after{content:none}
.note-pastille-detail{position:absolute;left:0;top:calc(100% + 4px);z-index:20;min-width:220px;max-width:280px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface,#fff);box-shadow:0 8px 20px rgba(30,11,22,.12);font-size:13px;white-space:normal;color:var(--ink)}
/* Logo entier dans la barre latérale de l'équipe (9/11/2026) : sur ordinateur, « En direct » passe sous le logo (jamais à côté, qui le tronquait) ;
   l'en-tête grandit et le menu commence dessous. Téléphone et tablette : barre du haut inchangée (logo et bouton côte à côte, sans chevauchement). */
@media (min-width:1024px){
  .lateral-equipe .esp-top-lateral .wrap:has(.en-direct-bouton){flex-wrap:wrap;align-content:center;row-gap:4px;height:112px;min-height:0;padding-block:6px 10px}
  .lateral-equipe .esp-top-lateral .wrap:has(.en-direct-bouton) .logo{flex:1 0 100%;line-height:52px;overflow:visible;text-overflow:clip;white-space:nowrap}
  .lateral-equipe .esp-top-lateral .wrap:has(.en-direct-bouton) .logo:has(.logo-organisme){line-height:0;justify-content:flex-start}
  .lateral-equipe .esp-top-lateral .wrap:has(.en-direct-bouton) .logo-organisme{max-height:52px;margin:0}
  .lateral-equipe .esp-top-lateral .wrap:has(.en-direct-bouton) .en-direct-bouton{margin-left:0}
  .lateral-equipe:has(.esp-top-lateral .en-direct-bouton) .esp-menu.esp-lateral{top:112px}
}
@media (max-width:1023px){.lateral-equipe .esp-top-lateral .en-direct-bouton{flex:none}.lateral-equipe .esp-top-lateral .logo{min-width:0}}
/* Paquet Wedof (9/11/2026, lots W1-W2) : tableau candidates × pièces, photos guidées (cadre et consigne, une case par photo, téléphone d'abord) */
.paquet-mois{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px}
.paquet-table th.paquet-col{font-size:12px;font-weight:600;max-width:9em;white-space:normal;line-height:1.2;vertical-align:bottom}
.paquet-table td.paquet-case{text-align:center}
.paquet-table .paquet-case .pastille{min-width:1.8em;justify-content:center}
.paquet-photos-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:14px}
.paquet-photo{display:flex;flex-direction:column;gap:6px;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--surface,#fff);min-width:0}
.paquet-photo-faite{border-color:#1F8A4C}
.paquet-photo-cadre{position:relative;aspect-ratio:3/4;max-width:100%;border-radius:10px;overflow:hidden;background:var(--soft,#f6eef2);display:flex;align-items:center;justify-content:center}
.paquet-photo-cadre img{width:100%;height:100%;object-fit:cover}
.paquet-photo-guide{width:62%;height:74%;border:2px dashed rgba(214,36,110,.55);border-radius:48% 48% 42% 42%}
.paquet-cadre-gauche .paquet-photo-guide,.paquet-cadre-droite .paquet-photo-guide{width:46%;border-radius:55% 40% 40% 55%}
.paquet-cadre-droite .paquet-photo-guide{border-radius:40% 55% 55% 40%}
.paquet-cadre-main .paquet-photo-guide{width:58%;height:62%;border-radius:30% 30% 18% 18%}
.paquet-cadre-cours .paquet-photo-guide{width:84%;height:60%;border-radius:12px}
.paquet-photo-prendre{align-self:flex-start;cursor:pointer}
/* Aide / Support (9/11/2026, lot S1) : icône « ? » de la barre du haut, notes internes, retard */
.support-aide{display:inline-flex;align-items:center;justify-content:center;flex:none;width:30px;height:30px;border-radius:50%;border:1px solid var(--line);font-weight:700;font-size:15px;color:inherit;text-decoration:none;background:var(--surface,#fff)}
.support-aide:hover{background:var(--soft,#f6eef2)}
.support-interne .message-bulle{background:#FFF6E5;border:1px dashed #E0A030}
tr.support-retard td:first-child{box-shadow:inset 3px 0 0 #C62828}
/* Lot E2 (9/11/2026) : pastilles nombreuses (régions, tailles) sur une seule ligne qui défile, jamais de débordement de la page */
.liste-pastilles.pastilles-defile{flex-wrap:nowrap;overflow-x:auto;max-width:100%;padding-bottom:4px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.liste-pastilles.pastilles-defile a{flex:0 0 auto}
/* Lot CE2 (9/11/2026) : lien personnel à copier (activation, invitation), partout : champ + « Copier », sans débordement */
.lien-copie{display:inline-flex;gap:6px;align-items:center;max-width:100%;vertical-align:middle}.lien-copie input{min-width:0;flex:1 1 auto;width:22rem;max-width:100%}
/* Lot P3 (9/11/2026) : émargement en présentiel : QR code tournant lisible de loin, canevas à la largeur de l'écran, heures compactes */
.ep-qr{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:0 0 16px}.ep-qr-image{width:min(320px,100%)}.ep-qr-image svg{width:100%;height:auto;display:block;background:#fff;border-radius:8px}
.ep-signature .cours-canevas{width:100%;max-width:520px;height:auto;border:1px dashed var(--line);border-radius:8px;background:#fff;touch-action:none}
.ep-horaires{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.ep-horaires input[type=time]{width:7.5em}
/* A2 (9/11/2026) : démonstrations enregistrées des ateliers */
.atelier-demos{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.atelier-demos video{display:block;width:100%;max-width:560px;margin-top:6px;border-radius:8px;background:#000}
.atelier-demos summary{cursor:pointer}
[data-atelier-demo] input[type=text]{max-width:320px}
/* H2 (9/11/2026) : dossier d'habilitation, même affichage côté centre et certificateur : onglets à pastilles, une ligne par question */
.hd-onglets a{display:inline-flex;align-items:center;gap:6px}
.hd-onglets .fiche-nb{white-space:nowrap;margin-left:0;flex:0 0 auto}
.fiche-nb.fiche-nb-ok{background:var(--vert-fond,#e3f3ea);color:var(--vert,#1f6e43)}
.fiche-nb.fiche-nb-vide{background:transparent;border:1px solid var(--line);color:var(--ink-2,#555)}
.hd-fiche-tete{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin:0 0 10px}
.hd-fiche-tete h2{margin:0}
.hd-questions{display:grid;border-top:1px solid var(--line)}
.hd-q{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr) auto auto;gap:6px 14px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
.hd-q-lib{font-weight:500;margin:0}
.hd-q-val input,.hd-q-val textarea{width:100%;box-sizing:border-box;margin:0}
.hd-q-reponse{margin:0;overflow-wrap:anywhere}
.hd-q-etat .pastille,.hd-q-com .lien-bouton{white-space:nowrap}
.hd-fil-liste{list-style:none;padding:0;margin:0 0 12px;display:grid;gap:8px}
.hd-fil-liste li{border-radius:8px;padding:8px 10px;background:var(--surface-2,#f6f6f6)}
.hd-fil-liste .hd-com-certificateur{background:#f3eef9}
@media (max-width:760px){.hd-q{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"lib etat" "val val" "com com"}.hd-q-lib{grid-area:lib}.hd-q-etat{grid-area:etat}.hd-q-val{grid-area:val}.hd-q-com{grid-area:com}}
/* Contraste des pastilles (9/11/2026) : texte blanc sur fond foncé, AA (4,5:1) au minimum, y compris quand la pastille est un lien */
.pastille-gris{background:#6E6068}
a.pastille:not(.pastille-import),a.pastille:not(.pastille-import):visited,a.pastille:not(.pastille-import):hover{color:#fff;text-decoration:none}
summary .pastille:not(.pastille-import){color:#fff}
/* liste des apprenantes : alertes de lecture dans la cellule, sans le style des questions fréquentes du site, détail en fenêtre flottante */
.alertes-detail{position:relative;display:inline-block;vertical-align:middle}
.alertes-detail>summary{list-style:none;display:inline;font-family:var(--sans);font-size:13px;padding:0;border:0;margin:0;background:none}
.alertes-detail>summary::after,.alertes-detail>summary::before{content:none;display:none}
.alertes-detail[open]>ul{position:absolute;left:0;top:calc(100% + 4px);z-index:30;margin:0;background:var(--surface,#fff);border:1px solid var(--line);border-radius:10px;padding:10px 12px 10px 26px;box-shadow:0 10px 30px rgba(30,11,22,.15);min-width:min(320px,80vw)}
.liste-pastilles a[aria-current] .fiche-nb,.espace-onglets a[aria-current="page"] .fiche-nb{background:#fff;color:var(--accent)}   /* compteur d'une pastille active : AA */
.pastille:not([class*="pastille-"]),.pastille.pastille-statut{background:#6E6068}   /* pastille sans couleur (priorité « Normale », statut du dossier) : fond foncé, AA */
details.alertes-detail{border:0;padding:0;margin:0;background:none;box-shadow:none}.sous-ligne:has(>details.alertes-detail){margin:4px 0 0}   /* sans le cadre des questions fréquentes : la ligne ne grandit plus */
.hd-onglets a{white-space:normal;max-width:100%}   /* titres de fiches longs (modèle du certificateur) : passent à la ligne, la pastille reste entière */
/* Pièces de l'apprenante (9/11/2026) : une ligne par pièce, liens côte à côte, menu « ⋯ » */
.pieces-liens{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px 12px;vertical-align:middle}
.pieces-liens form.inline{display:inline;margin:0}
.pieces-liens .menu-actions{margin-left:0}
.pieces-liens .menu-actions>summary{padding:0 4px;font-size:16px;line-height:1.2}
.pieces-table td{vertical-align:middle}
.pieces-table .piece-depot{margin:0;display:inline-flex;align-items:center}
.pieces-table .piece-choisir{white-space:nowrap;padding:4px 12px;font-size:13px}
/* Pièces de l'apprenante sur téléphone (9/11/2026) : une cellule par ligne de la fiche, liens et pastille jamais coupés */
@media (max-width:760px){
  .liste-table .pieces-table tr{grid-template-columns:1fr}
  .espace-table .pieces-table td{grid-template-columns:84px 1fr;align-items:center}
  .pieces-table .pastille,.pieces-table .pieces-liens a,.pieces-table .pieces-liens .lien-bouton{white-space:nowrap}
  .pieces-table .pieces-liens{flex-wrap:nowrap}
}
/* Fenêtre d'aperçu des pièces (9/11/2026) */
.piece-visionneuse .fenetre-tete{display:flex;align-items:center;gap:12px}.piece-visionneuse .pv-compteur{margin-right:auto}
.pv-corps{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px}
.pv-vue{min-height:240px;max-height:65vh;overflow:auto;display:grid;place-items:center;background:var(--surface-2,#f6f3f4);border-radius:10px;padding:8px}
.pv-vue img{max-width:100%;max-height:62vh;transition:transform .15s;transform-origin:center}
.pv-nav{border:1px solid var(--line);background:var(--surface,#fff);color:var(--ink);border-radius:50%;width:40px;height:40px;font-size:22px;line-height:1;cursor:pointer}
.pv-outils{display:flex;gap:14px;justify-content:center;margin:8px 0 0}
.pv-statut{margin:8px 0 0;text-align:center}
.pv-pied{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:10px 0 0}
.pv-refus{margin-top:10px}
@media (max-width:760px){.pv-corps{gap:4px}.pv-nav{width:32px;height:32px;font-size:18px}.pv-vue{max-height:55vh;min-height:180px}}
.piece-visionneuse [hidden]{display:none!important}
/* Tableau unique des documents (9/11/2026) : pastilles au-dessus, PDF dans la fenêtre d'aperçu */
.docs-filtres{margin:.25rem 0 .75rem}
.docs-table td[data-label="Date"]{white-space:nowrap}
.piece-visionneuse .pv-pdf{width:100%;height:70vh;border:0;background:#fff}
.docs-table .piece-depot{margin:0}
/* « Reprendre ma formation » en haut de l'accueil, « Mes cours » toujours visible sur téléphone (9/11/2026) */
.tb-reprendre{margin-top:1rem;display:grid;gap:.45rem;max-width:34rem}
.tb-reprendre-bouton{justify-self:start}
.tb-reprendre-ou{margin:0}
.tb-reprendre-barre{height:8px;border-radius:99px;background:rgba(255,255,255,.28);overflow:hidden}
.tb-reprendre-barre span{display:block;height:100%;background:var(--accent,#a8325e);border-radius:99px}
.tb-reprendre-pct{margin:0;color:inherit;opacity:.9}
.tb-reprendre-pct a{color:inherit}
.esp-mes-cours{display:none}
@media (max-width:900px){.esp-mes-cours{display:inline-flex;align-items:center;margin-left:auto;margin-right:.5rem;padding:.35rem .8rem;border-radius:99px;border:1px solid currentColor;font-weight:600;text-decoration:none;white-space:nowrap}}
/* E-mails de travaux à attribuer, refait (9/11/2026) */
.tea-travaux{display:grid;gap:.15rem;min-width:16rem}
.tea-travaux .consent,.tea-pieces .consent{margin:0;font-size:.9rem}
.tea-proposition{margin:.35rem 0 0}
.tea-repartir summary{font-size:.85rem}
.tea-pieces{border:0;padding:.25rem 0;margin:0}
.tea-pieces legend{font-weight:600;font-size:.85rem}
.tea-travail{display:block;font-size:.9rem}
.tea-surs{margin:.25rem 0 .5rem}
