/* B87 · Entraîneur de commentaire d'arrêt (§8.8) */
.cm-h { margin: 0 0 6px; font-size: 1.05rem; }
.cm-liste { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; }
.cm-item { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 10px; border: 1px solid var(--hairline); border-radius: 10px; }
.cm-item-t { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.cm-incomplet { font-size: .85rem; }
.cm-arret-h { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.cm-ligne { margin: 4px 0; }
.cm-ratio { margin-top: 10px; }
.cm-zone { display: flex; flex-direction: column; gap: 4px; margin: 10px 0; }
.cm-verif { margin-top: 4px; }
.cm-signaux { margin: 10px 0 0; padding-left: 18px; display: flex; flex-direction: column; gap: 6px; }
.cm-signal[data-gravite='alerte'] { color: color-mix(in srgb, var(--ink) 70%, #a33); }
.cm-signal[data-gravite='ok'] { color: color-mix(in srgb, var(--ink) 70%, #2a6); }
.cm-ok { margin-top: 10px; color: color-mix(in srgb, var(--ink) 70%, #2a6); }
.cm-avis { margin: 10px 0 4px; font-style: italic; }
.cm-partie { display: flex; flex-direction: column; gap: 6px; margin: 8px 0; }
.cm-sous { margin-left: 22px; width: calc(100% - 22px); }
.cm-grille { display: flex; flex-direction: column; gap: 6px; margin: 10px 0; }
.cm-crit { display: flex; align-items: center; gap: 8px; cursor: pointer; }
.cm-poids { margin-left: auto; font-size: .75rem; }
.cm-scoreline { margin: 6px 0 10px; }
.cm-actions { margin-bottom: 6px; }
/*  Entraîneur de syllogisme (§8.1)                                      */
/* ===================================================================== */
.sy-outils { max-width: 760px; margin: 0 auto 14px; display: flex; flex-direction: column; gap: 12px; }
.sy-outils-row .input, .sy-enonce { width: 100%; }
.sy-outils-row2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; gap: 12px; align-items: end; }
.sy-outils-row2 > * { min-width: 0; }
.sy-outils-row2 .input { width: 100%; }
.sy-neuf { white-space: nowrap; }
/* Le fil visuel Majeure → Mineure → Conclusion */
.sy-fil { max-width: 760px; margin: 0 auto; display: flex; flex-direction: column; gap: 0; position: relative; }
.sy-bloc { margin: 0 auto 0; width: 100%; border-left: 3px solid var(--c-b); display: flex; flex-direction: column; gap: 10px; border-radius: 0 13px 13px 0; }
.sy-fil .sy-bloc + .sy-bloc { margin-top: 14px; position: relative; }
.sy-fil .sy-bloc + .sy-bloc::before { content: ''; position: absolute; left: -2px; top: -14px; height: 14px; width: 3px; background: color-mix(in srgb, var(--c-b) 45%, transparent); }
.sy-bloc-h { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.sy-bloc-k { font-family: var(--serif); font-size: 18px; color: var(--c-b); font-weight: 600; }
.sy-bloc-s { font-family: var(--sans); font-size: 12px; color: var(--ink-soft); }
.sy-maj, .sy-min-app, .sy-concl, .sy-enonce { width: 100%; resize: vertical; font-family: var(--sans); line-height: 1.5; }
.sy-conds-h { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.sy-add { font-size: 12.5px; color: var(--c-b); }
.sy-hint { margin: 0; }
.sy-conds { display: flex; flex-direction: column; gap: 8px; }
.sy-cond { display: flex; align-items: center; gap: 8px; }
.sy-cond-n { flex: 0 0 auto; width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; background: color-mix(in srgb, var(--c-b) 12%, var(--card)); color: var(--c-b); font-family: var(--sans); font-size: 12px; font-weight: 700; }
.sy-cond-lib { flex: 1 1 auto; min-width: 0; }
.sy-type { flex: 0 0 auto; font-size: 11.5px; padding: 5px 9px; color: var(--ink-soft); }
.sy-type[aria-pressed="true"] { color: var(--c-b); border-color: var(--c-b); }
.sy-mins { display: flex; flex-direction: column; gap: 10px; }
.sy-min { display: flex; flex-direction: column; gap: 5px; }
.sy-min-lab { font-family: var(--sans); font-size: 12.5px; font-weight: 600; color: var(--ink); padding-left: 2px; }
.sy-min-lab::before { content: '↳ '; color: var(--c-b); }
.sy-nuance { display: flex; align-items: flex-start; gap: 9px; font-family: var(--sans); font-size: 13px; color: var(--ink); cursor: pointer; line-height: 1.4; }
.sy-nuance input { width: 17px; height: 17px; margin-top: 1px; accent-color: var(--c-b); flex: 0 0 auto; }
.sy-actions { max-width: 760px; margin: 16px auto 0; display: flex; flex-wrap: wrap; gap: 9px; align-items: center; }
.sy-verif { }
.sy-ia-note { flex: 1 1 220px; min-width: 0; font-size: 11.5px; }
/* Verdict (complétude locale) */
.sy-verdict { max-width: 760px; margin: 16px auto 0; display: flex; flex-direction: column; gap: 12px; scroll-margin-top: 70px; }
.sy-verdict-h { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; font-family: var(--sans); }
.sy-verdict-badge { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; color: #fff; font-weight: 700; flex: 0 0 auto; }
.sy-verdict-h.is-ok .sy-verdict-badge { background: var(--ok-surface); }
.sy-verdict-h.is-warn .sy-verdict-badge { background: var(--react-surface); color: var(--react-on); }
.sy-checklist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 7px; }
.sy-check { display: flex; align-items: center; gap: 9px; font-family: var(--sans); font-size: 13.5px; }
.sy-check-i { flex: 0 0 auto; width: 20px; height: 20px; display: grid; place-items: center; border-radius: 50%; font-size: 12px; font-weight: 700; }
.sy-check.ok .sy-check-i { background: color-mix(in srgb, var(--method) 16%, var(--card)); color: var(--method); }
.sy-check.ko .sy-check-i { background: var(--paper-2); color: var(--ink-soft); }
.sy-check-t { flex: 1 1 auto; min-width: 0; }
.sy-check.ko .sy-check-t { color: var(--ink-soft); }
.sy-warns { display: flex; flex-direction: column; gap: 6px; border-top: 1px dashed var(--hairline); padding-top: 10px; }
.sy-warn { margin: 0; font-family: var(--sans); font-size: 12.5px; color: var(--enjeu-ink); }
.sy-warn b { color: var(--gold-text); }
.sy-pill-alt { background: var(--b-surface); }
.sy-pill-warn { background: var(--react-surface); color: var(--react-on); }
.sy-pill-ok { background: var(--ok-surface); }
/* Coach IA */
.sy-coach { max-width: 760px; margin: 14px auto 0; display: flex; flex-direction: column; gap: 9px; border-left: 3px solid var(--c-e); }
.sy-coach-err { border-left-color: var(--danger); }
.sy-coach-h { font-family: var(--serif); font-size: 16px; }
.sy-coach-avis { margin: 0; font-size: 14.5px; line-height: 1.5; }
.sy-coach-pts { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-direction: column; gap: 7px; }
.sy-coach-pt { display: flex; align-items: baseline; gap: 8px; font-family: var(--sans); font-size: 13px; line-height: 1.45; }
.sy-coach-asp { background: var(--e-surface); flex: 0 0 auto; }
.sy-coach-foot { margin: 4px 0 0; }
/* Carnet */
.sy-carnet { max-width: 760px; margin: 22px auto 0; display: flex; flex-direction: column; gap: 9px; }
.sy-carnet-t { font-size: 17px; margin: 0 0 2px; }
.sy-carnet-i { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 15px; }
.sy-carnet-b { min-width: 0; }
.sy-carnet-titre { margin: 0 0 2px; font-family: var(--serif); font-size: 14.5px; line-height: 1.35; }
.sy-carnet-b .pill { margin-left: 8px; }
.sy-carnet-a { display: flex; gap: 4px; flex: 0 0 auto; }
@media (max-width: 620px) {
  .sy-outils-row2 { grid-template-columns: 1fr; }
  .sy-carnet-i { flex-direction: column; align-items: flex-start; }
}
/*  Checklist d'auto-notation (§8.7)                                     */
/* ===================================================================== */
.an-card { max-width: 760px; margin: 0 auto 16px; display: flex; flex-direction: column; gap: 16px; }
.an-form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.an-form .input { width: 100%; }
.an-grille-wrap { display: grid; grid-template-columns: 1fr auto; gap: 18px; align-items: start; }
.an-grille { display: flex; flex-direction: column; gap: 7px; }
.an-crit { display: flex; align-items: center; gap: 11px; padding: 10px 13px; border: 1px solid var(--hairline); border-radius: 11px; background: var(--card); cursor: pointer; transition: border-color .12s, background .12s; }
.an-crit:hover { border-color: var(--gold); }
.an-crit input { width: 18px; height: 18px; accent-color: var(--c-b); flex: 0 0 auto; }
.an-crit-t { flex: 1 1 auto; min-width: 0; font-family: var(--sans); font-size: 13.5px; color: var(--ink); }
.an-crit.an-ok { background: color-mix(in srgb, var(--method) 8%, var(--card)); border-color: color-mix(in srgb, var(--method) 35%, var(--hairline)); }
.an-crit.an-unseen { border-style: dashed; background: var(--card-2); }
.an-unseen-label { flex: 0 0 auto; color: var(--ink-soft); font-family: var(--sans); font-size: 10px; font-style: italic; }
.an-poids { flex: 0 0 auto; font-family: var(--sans); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; padding: 2px 8px; border-radius: 20px; color: #fff; }
.an-poids-capital { background: var(--danger-surface); }
.an-poids-eleve { background: var(--react-surface); color: var(--react-on); }
.an-poids-moyen { background: var(--n-surface); }
.an-score { position: sticky; top: 70px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; min-width: 116px; padding: 16px 14px; border: 1px solid var(--hairline); border-radius: 14px; background: var(--paper-2); }
.an-score-n { font-family: var(--sans); font-variant-numeric: tabular-nums; font-weight: 700; font-size: clamp(26px, 6vw, 34px); line-height: 1; color: var(--c-b); white-space: nowrap; }
.an-score-l { font-family: var(--sans); font-size: 11px; color: var(--ink-soft); text-transform: uppercase; letter-spacing: .04em; }
.an-actions { }
/* Agrégat : reproche récurrent + points faibles */
.an-agregat { max-width: 760px; margin: 0 auto 16px; display: flex; flex-direction: column; gap: 12px; border-left: 3px solid var(--c-b); }
.an-hint { max-width: 760px; margin: 0 auto 16px; text-align: center; }
.an-rec-lbl { font-family: var(--sans); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--c-b); }
.an-rec-t { font-family: var(--serif); font-size: 19px; line-height: 1.3; margin: 3px 0; color: var(--ink); }
.an-rec-s { font-family: var(--sans); font-size: 13px; color: var(--ink-soft); margin: 0; }
.an-pf-h { font-family: var(--sans); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--ink-soft); border-top: 1px dashed var(--hairline); padding-top: 10px; }
.an-pf { display: flex; flex-direction: column; gap: 7px; }
.an-pf-row { display: grid; grid-template-columns: 1fr 120px auto; gap: 10px; align-items: center; }
.an-pf-t { font-family: var(--sans); font-size: 12.5px; color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.an-pf-bar { height: 8px; border-radius: 6px; background: var(--paper-2); overflow: hidden; }
.an-pf-fill { display: block; height: 100%; border-radius: 6px; }
.an-pf-n { font-family: var(--sans); font-variant-numeric: tabular-nums; font-size: 11.5px; color: var(--ink-soft); white-space: nowrap; }
/* Historique */
.an-hist { max-width: 760px; margin: 22px auto 0; display: flex; flex-direction: column; gap: 9px; }
.an-hist-t { font-size: 17px; margin: 0 0 2px; }
.an-hist-i { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 15px; }
.an-hist-b { min-width: 0; }
.an-hist-titre { margin: 0 0 1px; font-family: var(--serif); font-size: 14.5px; }
.an-hist-a { display: flex; align-items: center; gap: 6px; flex: 0 0 auto; }
.an-hist-score { font-family: var(--sans); font-variant-numeric: tabular-nums; font-weight: 700; font-size: 14px; color: var(--c-b); }
@media (max-width: 620px) {
  .an-form { grid-template-columns: 1fr; }
  .an-grille-wrap { grid-template-columns: 1fr; }
  .an-score { position: static; flex-direction: row; gap: 10px; width: fit-content; }
  .an-pf-row { grid-template-columns: 1fr 80px auto; }
  .an-hist-i { flex-direction: column; align-items: flex-start; }
}
/*  Banque de formulations (§8.5)                                        */
/* ===================================================================== */
.fo-capture { max-width: 760px; margin: 0 auto 16px; display: flex; flex-direction: column; gap: 12px; }
.fo-cap-row { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; }
.fo-cap-row .input { width: 100%; }
.fo-ta { width: 100%; resize: vertical; font-family: var(--serif); font-size: 15px; line-height: 1.6; }
.fo-cap-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.fo-favlbl { display: inline-flex; align-items: center; gap: 7px; font-family: var(--sans); font-size: 13px; color: var(--ink-soft); cursor: pointer; }
.fo-favlbl input { width: 16px; height: 16px; accent-color: var(--gold); }
.fo-filtres { max-width: 760px; margin: 0 auto 14px; display: flex; flex-direction: column; gap: 10px; }
.fo-search-row { display: flex; align-items: center; gap: 9px; }
.fo-search-row svg { width: 18px; height: 18px; color: var(--c-b); flex: 0 0 auto; }
.fo-search { flex: 1 1 auto; min-width: 0; }
.fo-chips { display: flex; flex-wrap: wrap; gap: 7px; }
.fo-chip { cursor: pointer; }
.fo-chip[data-on="true"] { background: var(--b-surface); color: var(--b-on); border-color: var(--b-surface); }
.fo-chip-fav[data-on="true"] { background: var(--gold-tint); color: var(--gold-text); border-color: var(--gold-line); }
.fo-fils { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.fo-fil { width: 100%; min-width: 0; }
.fo-results { max-width: 760px; margin: 0 auto; display: flex; flex-direction: column; gap: 11px; }
.fo-count { margin: 0 0 -2px; }
.fo-vide { text-align: center; padding: 18px; }
/* Carte spécimen (façon Grand Livre : parchemin, liseré garance, petites capitales) */
.fo-spec { border-left: 4px solid var(--c-b); display: flex; flex-direction: column; gap: 9px; }
.fo-spec-accroche { border-left-color: var(--c-b); }
.fo-spec-chapeau { border-left-color: var(--gold); }
.fo-spec-transition { border-left-color: var(--c-c); }
.fo-spec-problematique { border-left-color: var(--c-a); }
.fo-spec-h { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.fo-spec-type { font-family: var(--sans); font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: var(--c-b); }
.fo-spec-chapeau .fo-spec-type { color: var(--gold); }
.fo-spec-transition .fo-spec-type { color: var(--c-c); }
.fo-spec-problematique .fo-spec-type { color: var(--c-a); }
.fo-spec-meta { flex: 1 1 auto; min-width: 0; font-family: var(--sans); font-size: 11.5px; color: var(--ink-soft); }
.fo-spec-a { display: flex; align-items: center; gap: 3px; flex: 0 0 auto; }
.fo-star { padding: 4px 9px; font-size: 15px; line-height: 1; color: var(--ink-soft); }
.fo-star.is-fav { color: var(--gold-text); }
.fo-spec-txt { margin: 0; font-family: var(--serif); font-size: 16px; line-height: 1.6; color: var(--ink); white-space: pre-wrap; border-left: 2px solid var(--hairline); padding-left: 12px; }
.fo-spec-note { display: flex; flex-direction: column; gap: 2px; background: var(--method-bg); border-radius: 9px; padding: 8px 11px; }
.fo-spec-note-l { font-family: var(--sans); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--method); }
.fo-spec-note span:last-child { font-family: var(--sans); font-size: 12.5px; color: var(--ink); line-height: 1.5; }
@media (max-width: 620px) {
  .fo-cap-row { grid-template-columns: 1fr; }
  .fo-fils { grid-template-columns: 1fr; }
  .fo-spec-h { flex-direction: column; align-items: flex-start; gap: 6px; }
  .fo-spec-a { align-self: flex-end; }
}
/*  Simulateur de copie en conditions (§8.4) ⭐                           */
/* ===================================================================== */
.sm-prep { max-width: 820px; margin: 0 auto 16px; display: flex; flex-direction: column; gap: 16px; }
.sm-prep-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 12px; }
.sm-prep-grid .input { width: 100%; }
.sm-duree-row { display: flex; align-items: center; gap: 8px; }
.sm-duree { width: 80px; text-align: center; }
.sm-duree-lbl { white-space: nowrap; }
.sm-source-seg { flex-wrap: wrap; width: 100%; }
.sm-source { display: flex; flex-direction: column; gap: 9px; margin-top: 10px; }
.sm-source .btn { align-self: flex-start; }
.sm-ta { width: 100%; resize: vertical; font-family: var(--sans); line-height: 1.55; }
.sm-banque { gap: 6px; }
.sm-banque-i { display: flex; align-items: center; gap: 8px; }
.sm-banque-t { flex: 1 1 auto; min-width: 0; font-family: var(--serif); font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sm-preview { border-left-color: var(--c-b); display: flex; flex-direction: column; gap: 6px; }
.sm-preview-h { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; font-family: var(--serif); font-size: 15px; }
.sm-preview-t { margin: 0; font-family: var(--sans); font-size: 13px; color: var(--ink-soft); line-height: 1.5; white-space: pre-wrap; }
.sm-pill-corr { background: var(--n-surface); }
.sm-rituel > summary { font-family: var(--sans); font-size: 13px; color: var(--ink-soft); cursor: pointer; }
.sm-rituel[open] > summary { color: var(--ink); margin-bottom: 8px; }
.sm-rituel-l { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 7px; }
.sm-rit { display: flex; align-items: center; gap: 9px; font-family: var(--sans); font-size: 13.5px; color: var(--ink); cursor: pointer; }
.sm-rit input { width: 16px; height: 16px; accent-color: var(--c-b); }
.sm-go { justify-content: center; padding: 13px; font-size: 15px; }
.sm-go:disabled { opacity: .5; cursor: not-allowed; }
/* Overlay « mode épreuve » plein écran (sobre, zéro distraction) */
.sm-overlay { position: fixed; inset: 0; z-index: 50; background: var(--paper); overflow-y: auto; padding: 20px 18px 40px; }
.sm-ep { max-width: 1000px; margin: 0 auto; display: flex; flex-direction: column; gap: 16px; }
.sm-ep-h { text-align: center; }
.sm-ep-titre { font-family: var(--serif); font-size: clamp(19px, 3vw, 25px); color: var(--ink); line-height: 1.25; }
.sm-ep-meta { font-family: var(--sans); font-size: 12.5px; color: var(--ink-soft); margin-top: 4px; }
.sm-chrono { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.sm-chrono-t { font-family: var(--sans); font-variant-numeric: tabular-nums; font-weight: 600; font-size: clamp(50px, 13vw, 78px); line-height: 1; color: var(--c-b); letter-spacing: -.01em; }
.sm-chrono.is-pause .sm-chrono-t { color: var(--gold-text); }
.sm-prog { width: min(420px, 80vw); height: 6px; border-radius: 6px; background: var(--paper-2); overflow: hidden; }
.sm-prog-fill { display: block; height: 100%; background: var(--c-b); border-radius: 6px; transition: width .25s linear; }
.sm-chrono-lbl { font-family: var(--sans); font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--ink-soft); }
.sm-ep-body { display: grid; grid-template-columns: 1.7fr 1fr; gap: 14px; align-items: start; }
.sm-sujet { background: var(--card); border: 1px solid var(--hairline); border-radius: 13px; box-shadow: var(--shadow); overflow: hidden; }
.sm-sujet-h { font-family: var(--sans); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--c-b); padding: 10px 16px; border-bottom: 1px solid var(--hairline); background: var(--paper-2); }
.sm-sujet-b { padding: 16px; font-family: var(--serif); font-size: 15.5px; line-height: 1.7; color: var(--ink); white-space: pre-wrap; max-height: 56vh; overflow-y: auto; }
.sm-ep-side { display: flex; flex-direction: column; gap: 12px; }
.sm-seal { display: flex; flex-direction: column; align-items: center; gap: 5px; text-align: center; padding: 16px; border: 1px dashed var(--hairline); border-radius: 13px; background: var(--card-2); }
.sm-seal-i { font-size: 26px; }
.sm-seal b { font-family: var(--serif); font-size: 15px; }
.sm-seal p { margin: 0; font-size: 12.5px; }
.sm-brouillon { width: 100%; resize: vertical; min-height: 180px; font-family: var(--sans); font-size: 14px; line-height: 1.6; }
.sm-ep-ctrls { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.sm-ep-ctrls .btn-primary { min-width: 200px; justify-content: center; }
/* Débrief */
.sm-debrief { max-width: 900px; margin: 0 auto 16px; display: flex; flex-direction: column; gap: 16px; }
.sm-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; align-items: start; }
.sm-col { background: var(--card); border: 1px solid var(--hairline); border-radius: 13px; box-shadow: var(--shadow); overflow: hidden; }
.sm-col-corr { border-color: color-mix(in srgb, var(--c-b) 30%, var(--hairline)); }
.sm-col-h { font-family: var(--sans); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--ink-soft); padding: 10px 14px; border-bottom: 1px solid var(--hairline); background: var(--paper-2); }
.sm-col-corr .sm-col-h { color: var(--c-b); }
.sm-col-b { padding: 14px; font-size: 13.5px; line-height: 1.6; white-space: pre-wrap; max-height: 44vh; overflow-y: auto; }
.sm-col-corr .sm-col-b { font-family: var(--serif); }
.sm-sub { font-size: 16px; margin: 0; }
.sm-score .sm-score-n2 { font-family: var(--sans); font-size: 12px; font-weight: 700; color: var(--c-b); margin-top: 4px; }
.sm-debrief-foot { display: grid; grid-template-columns: 200px 1fr; gap: 14px; align-items: start; }
.sm-note-i { width: 100%; text-align: center; font-variant-numeric: tabular-nums; }
.sm-ecart { width: 100%; resize: vertical; font-family: var(--sans); line-height: 1.55; }
.sm-actions { display: flex; gap: 9px; flex-wrap: wrap; }
/* Historique + reproche récurrent */
.sm-hist { max-width: 900px; margin: 22px auto 0; display: flex; flex-direction: column; gap: 9px; }
.sm-rec { border-left-color: var(--c-b); }
.sm-hist-vide { text-align: center; padding: 14px; }
.sm-hist-t { font-size: 17px; margin: 6px 0 2px; }
.sm-hist-i { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 15px; }
.sm-hist-b { min-width: 0; }
.sm-hist-titre { margin: 0 0 1px; font-family: var(--serif); font-size: 14.5px; }
.sm-hist-a { display: flex; align-items: center; gap: 7px; flex: 0 0 auto; }
.sm-hist-score { font-family: var(--sans); font-variant-numeric: tabular-nums; font-weight: 700; font-size: 14px; color: var(--c-b); }
.sm-pill-note { background: var(--b-surface); }
@media (max-width: 760px) {
  .sm-prep-grid { grid-template-columns: 1fr; }
  .sm-ep-body { grid-template-columns: 1fr; }
  .sm-cols { grid-template-columns: 1fr; }
  .sm-debrief-foot { grid-template-columns: 1fr; }
  .sm-hist-i { flex-direction: column; align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) { .sm-prog-fill { transition: none; } }
/*  Détecteur de problématique (§8.2)                                    */
/* ===================================================================== */
.pb-saisie { max-width: 760px; margin: 0 auto 14px; display: flex; flex-direction: column; gap: 12px; }
.pb-ta { width: 100%; resize: vertical; font-family: var(--serif); font-size: 16px; line-height: 1.5; }
.pb-actions { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; }
.pb-ia-note { flex: 1 1 220px; min-width: 0; font-size: 11.5px; }
.pb-verdict { max-width: 760px; margin: 0 auto 14px; display: flex; flex-direction: column; gap: 12px; border-left: 4px solid var(--ink-soft); }
.pb-verdict.pb-ok { border-left-color: var(--method); }
.pb-verdict.pb-warn { border-left-color: var(--gold); }
.pb-verdict.pb-ko { border-left-color: var(--danger); }
.pb-verdict-h { display: flex; align-items: center; gap: 12px; }
.pb-badge { flex: 0 0 auto; width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; color: #fff; font-weight: 700; background: var(--ink-soft); }
.pb-ok .pb-badge { background: var(--ok-surface); }
.pb-warn .pb-badge { background: var(--react-surface); color: var(--react-on); }
.pb-ko .pb-badge { background: var(--danger-surface); }
.pb-verdict-l { font-family: var(--serif); font-size: 18px; }
.pb-verdict-n { font-family: var(--sans); font-size: 12.5px; color: var(--ink-soft); margin: 2px 0 0; }
.pb-checklist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.pb-check { display: flex; align-items: flex-start; gap: 10px; }
.pb-check-i { flex: 0 0 auto; width: 20px; height: 20px; display: grid; place-items: center; border-radius: 50%; font-size: 12px; font-weight: 700; }
.pb-check.ok .pb-check-i { background: color-mix(in srgb, var(--method) 16%, var(--card)); color: var(--method); }
.pb-check.ko .pb-check-i { background: var(--paper-2); color: var(--ink-soft); }
.pb-check-b { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.pb-check-t { font-family: var(--sans); font-size: 13.5px; font-weight: 600; color: var(--ink); }
.pb-check.ko .pb-check-t { color: var(--ink-soft); }
.pb-check-a { font-family: var(--sans); font-size: 12px; color: var(--ink-soft); line-height: 1.4; }
.pb-tofor { border-top: 1px dashed var(--hairline); padding-top: 10px; }
/* Avis du coach (IA) */
.pb-coach { max-width: 760px; margin: 0 auto 14px; display: flex; flex-direction: column; gap: 9px; border-left: 3px solid var(--c-b); }
.pb-coach-h { display: flex; align-items: center; gap: 10px; }
.pb-coach-h b { font-family: var(--serif); font-size: 16px; }
.pb-coach-v { background: var(--b-surface); }
.pb-coach-m { margin-left: auto; font-size: 11px; }
.pb-coach-tx { margin: 0; font-size: 14px; line-height: 1.55; }
.pb-reform-w { border-top: 1px dashed var(--hairline); padding-top: 10px; }
.pb-reform-h { font-family: var(--sans); font-size: 12px; font-weight: 700; color: var(--ink-soft); margin: 0 0 6px; }
.pb-reform { margin: 0; padding-left: 22px; display: flex; flex-direction: column; gap: 6px; font-family: var(--serif); font-size: 14.5px; line-height: 1.45; }
/* Spécimens */
.pb-ex { max-width: 760px; margin: 0 auto; }
.pb-ex-sum { font-family: var(--sans); font-size: 13px; color: var(--ink-soft); cursor: pointer; }
.pb-ex[open] .pb-ex-sum { color: var(--ink); margin-bottom: 10px; }
.pb-ex-i { display: flex; align-items: center; gap: 12px; padding: 11px 14px; border: 1px solid var(--hairline); border-radius: 11px; margin-bottom: 9px; background: var(--card-2); }
.pb-ex-tag { flex: 0 0 auto; font-family: var(--sans); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: #fff; padding: 2px 8px; border-radius: 20px; }
.pb-ex-forte .pb-ex-tag { background: var(--ok-surface); }
.pb-ex-faible .pb-ex-tag { background: var(--n-surface); }
.pb-ex-t { flex: 1 1 auto; min-width: 0; margin: 0; font-family: var(--serif); font-size: 14px; line-height: 1.4; }
@media (max-width: 620px) { .pb-ex-i { flex-wrap: wrap; } }
/*  Auditeur de plan (§8.3)                                              */
/* ===================================================================== */
.pl-form { max-width: 760px; margin: 0 auto 14px; display: flex; flex-direction: column; gap: 14px; }
.pl-prob { width: 100%; resize: vertical; font-family: var(--serif); font-size: 15px; line-height: 1.5; }
.pl-parties { display: flex; flex-direction: column; gap: 14px; }
.pl-partie { display: flex; flex-direction: column; gap: 8px; padding-left: 4px; border-left: 3px solid var(--c-b); padding-left: 12px; }
.pl-gp { display: flex; align-items: center; gap: 9px; }
.pl-mark { flex: 0 0 auto; font-family: var(--serif); font-weight: 700; color: var(--c-b); min-width: 28px; }
.pl-mark-gp { font-size: 18px; }
.pl-gp .input { flex: 1 1 auto; min-width: 0; font-weight: 600; }
.pl-sous { display: flex; flex-direction: column; gap: 7px; padding-left: 16px; }
.pl-ss { display: flex; align-items: center; gap: 9px; }
.pl-ss .pl-mark { font-size: 13px; font-weight: 600; min-width: 32px; }
.pl-ss .input { flex: 1 1 auto; min-width: 0; }
.pl-actions { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; }
.pl-ia-note { flex: 1 1 220px; min-width: 0; font-size: 11.5px; }
/* Audit local */
.pl-audit { max-width: 760px; margin: 0 auto 14px; display: flex; flex-direction: column; gap: 12px; border-left: 4px solid var(--ink-soft); }
.pl-audit.pl-ok { border-left-color: var(--method); }
.pl-audit.pl-warn { border-left-color: var(--gold); }
.pl-audit.pl-ko { border-left-color: var(--danger); }
.pl-audit-h { display: flex; align-items: center; gap: 11px; }
.pl-badge { flex: 0 0 auto; width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; color: #fff; font-weight: 700; background: var(--ink-soft); }
.pl-ok .pl-badge { background: var(--ok-surface); }
.pl-warn .pl-badge { background: var(--react-surface); color: var(--react-on); }
.pl-ko .pl-badge { background: var(--danger-surface); }
.pl-audit-l { font-family: var(--serif); font-size: 18px; }
.pl-checklist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.pl-check { display: flex; align-items: flex-start; gap: 10px; }
.pl-check-i { flex: 0 0 auto; width: 20px; height: 20px; display: grid; place-items: center; border-radius: 50%; font-size: 12px; font-weight: 700; }
.pl-check.ok .pl-check-i { background: color-mix(in srgb, var(--method) 16%, var(--card)); color: var(--method); }
.pl-check.ko .pl-check-i { background: var(--paper-2); color: var(--ink-soft); }
.pl-check-b { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.pl-check-t { font-family: var(--sans); font-size: 13.5px; font-weight: 600; color: var(--ink); }
.pl-check.ko .pl-check-t { color: var(--ink-soft); }
.pl-check-a { font-family: var(--sans); font-size: 12px; color: var(--ink-soft); line-height: 1.4; }
.pl-faux { margin: 0; font-size: 13.5px; }
.pl-plats { border-top: 1px dashed var(--hairline); padding-top: 10px; display: flex; flex-direction: column; gap: 6px; }
.pl-plats-h { font-family: var(--sans); font-size: 12px; font-weight: 700; color: var(--ink-soft); margin: 0; }
.pl-plat { margin: 0; font-family: var(--sans); font-size: 12.5px; line-height: 1.45; display: flex; flex-wrap: wrap; gap: 6px; align-items: baseline; }
.pl-plat-c { font-weight: 700; color: var(--c-b); }
.pl-plat-t { font-family: var(--serif); color: var(--ink); }
.pl-plat-a { color: var(--ink-soft); }
/* Avis du coach */
.pl-coach { max-width: 760px; margin: 0 auto 14px; display: flex; flex-direction: column; gap: 10px; border-left: 3px solid var(--c-b); }
.pl-coach-h { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.pl-coach-h b { font-family: var(--serif); font-size: 16px; }
.pl-adeq { background: var(--b-surface); }
.pl-coach-m { margin-left: auto; font-size: 11px; }
.pl-coach-tx { margin: 0; font-size: 14px; line-height: 1.55; }
.pl-remarques { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.pl-remarque { font-family: var(--sans); font-size: 13px; line-height: 1.5; }
.pl-asp { font-size: 10px; margin-right: 7px; vertical-align: middle; }
.pl-rm-c { font-weight: 600; }
.pl-requal { border-top: 1px dashed var(--hairline); padding-top: 10px; }
.pl-requal-h { font-family: var(--sans); font-size: 12px; font-weight: 700; color: var(--ink-soft); margin: 0 0 6px; }
.pl-requal-i { margin: 0 0 5px; font-family: var(--serif); font-size: 14px; line-height: 1.4; }
.pl-requal-old { color: var(--ink-soft); text-decoration: line-through; text-decoration-color: var(--hairline); }
.pl-requal-new { color: var(--ink); font-weight: 600; }
/* Ossatures */
.pl-oss { max-width: 760px; margin: 0 auto; }
.pl-oss-sum { font-family: var(--sans); font-size: 13px; color: var(--ink-soft); cursor: pointer; }
.pl-oss[open] .pl-oss-sum { color: var(--ink); margin-bottom: 10px; }
.pl-oss-i { padding: 10px 14px; border: 1px solid var(--hairline); border-radius: 11px; margin-bottom: 9px; background: var(--card-2); }
.pl-oss-n { font-family: var(--serif); font-size: 14.5px; color: var(--c-b); }
.pl-oss-p { font-family: var(--sans); font-size: 12.5px; color: var(--ink-soft); margin: 3px 0 0; }
@media (max-width: 620px) { .pl-remarque { display: block; } }
/*  Générateur de cas pratiques (§8.6)                                   */
/* ===================================================================== */
.cp-avert { max-width: 820px; margin: 0 auto 14px; font-size: 13px; }
.cp-ctrl { max-width: 820px; margin: 0 auto 14px; display: flex; flex-direction: column; gap: 12px; }
.cp-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.cp-ctrl .input, .cp-mat, .cp-notion { width: 100%; }
.cp-dom, .cp-diff { flex-wrap: wrap; }
.cp-actions { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; }
.cp-ia-note { flex: 1 1 200px; min-width: 0; font-size: 11.5px; }
.cp-coachstate { max-width: 820px; margin: 0 auto 14px; }
.cp-cas { max-width: 820px; margin: 0 auto 14px; display: flex; flex-direction: column; gap: 12px; border-left: 4px solid var(--c-b); }
.cp-cas-h { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.cp-src { background: var(--n-surface); }
.cp-src-ia { background: var(--e-surface); }
.cp-src-banque { background: var(--d-surface); }
.cp-cas-t { font-size: 19px; margin: 0; }
.cp-enonce { font-family: var(--serif); font-size: 15.5px; line-height: 1.6; color: var(--ink); margin: 0; white-space: pre-wrap; }
.cp-cas-a { display: flex; flex-wrap: wrap; gap: 9px; }
.cp-corrige { border-top: 1px dashed var(--hairline); padding-top: 12px; display: flex; flex-direction: column; gap: 10px; }
.cp-corrige-h { font-family: var(--sans); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--c-b); margin: 0; }
.cp-trame { font-family: var(--sans); font-size: 13.5px; line-height: 1.6; color: var(--ink); margin: 0; white-space: pre-wrap; }
.cp-syl { display: flex; flex-direction: column; gap: 4px; }
.cp-syl-k { font-family: var(--serif); font-size: 14px; font-weight: 600; color: var(--c-b); }
.cp-syl-t { margin: 0; font-family: var(--sans); font-size: 13.5px; line-height: 1.55; }
.cp-conds, .cp-min { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 5px; font-family: var(--sans); font-size: 13.5px; line-height: 1.5; }
.cp-avert-in { font-family: var(--sans); font-size: 12px; color: var(--enjeu-ink); margin: 2px 0 0; }
@media (max-width: 620px) { .cp-row2 { grid-template-columns: 1fr; } }
/* Carnet de syllogismes : squelettes « auto » (sujets scellés, à confronter). */
.sy-carnet-titre { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.sy-carnet-titre .pill { margin-left: 0; }
.sy-pill-auto { background: var(--danger-surface); color: var(--danger-on); }
.sy-carnet-i.is-auto { border-left: 3px solid var(--danger); }
.sy-carnet-src { font-family: var(--sans); font-size: 12px; color: var(--ink-soft); }
.sy-produire { color: var(--c-b); border-color: color-mix(in srgb, var(--c-b) 40%, var(--hairline)); }
.sy-produire:hover { background: color-mix(in srgb, var(--c-b) 10%, var(--card)); border-color: var(--c-b); }
/* Simulateur : banque de sujets — badge « auto », filtre par Source, ellipsis du titre. */
.sm-pill-auto { background: var(--danger-surface); color: var(--danger-on); }
.sm-banque-filtre { margin-bottom: 10px; max-width: 300px; }
.sm-banque-t { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 6px; }
.sm-banque-titre { flex: 1 1 110px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: var(--serif); font-size: 14px; }
.sm-banque-src { flex: 0 1 auto; font-family: var(--sans); font-size: 12px; }
.sm-banque-i.is-auto { border-left: 3px solid color-mix(in srgb, var(--danger) 55%, var(--hairline)); padding-left: 6px; }
/* B63/B91a · Simulateur : conditions réelles + boucle manuscrite */
.sm-opts { display: flex; flex-direction: column; gap: 6px; margin: 10px 0; }
.sm-opt { display: flex; align-items: baseline; gap: 8px; cursor: pointer; }
.sm-prog { position: relative; }
.sm-jalon { position: absolute; top: -3px; bottom: -3px; width: 2px; background: var(--ink); opacity: .45; }
.sm-jalon-lbl { margin-top: 6px; font-size: .9rem; opacity: .8; font-variant-numeric: tabular-nums; }
.sm-sanspause { align-self: center; }
.sm-main { border: 1px dashed var(--hairline); border-radius: 10px; padding: 10px; }
.sm-photo { margin: 14px 0; display: flex; flex-direction: column; gap: 6px; }
.sm-photo-prev { display: flex; align-items: flex-start; gap: 10px; }
.sm-photo-img { max-width: 220px; max-height: 300px; border: 1px solid var(--hairline); border-radius: 8px; }
.sm-photo-note { margin: 0; font-size: .85rem; }
.sm-photo-voir { position: fixed; inset: 0; z-index: 90; background: rgba(20,16,10,.82); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; cursor: pointer; }
.sm-photo-voir img { max-width: 92vw; max-height: 86vh; border-radius: 8px; }
.sm-photo-voir p { color: #eee; }
/* B91a · impression du sujet : la feuille, rien d'autre */
.sm-print { display: none; }
@media print {
  body.sm-imprime > *:not(.sm-print) { display: none !important; }
  body.sm-imprime .sm-print { display: block; padding: 2cm; font-family: serif; }
  .sm-print h1 { font-size: 16pt; margin: 0 0 6pt; }
  .sm-print-meta { font-size: 10pt; margin: 0 0 14pt; }
  .sm-print-enonce { white-space: pre-wrap; font-family: serif; font-size: 11.5pt; line-height: 1.5; }
}
/* B53 · le juge de licence : note indicative + points forts/faibles (4 coachs) */
.jg-note { margin: 8px 0; padding: 6px 10px; border-left: 3px solid var(--gold); border-radius: 6px;
  background: color-mix(in srgb, var(--gold) 8%, transparent); }
.jg-listes { display: flex; flex-direction: column; gap: 4px; margin: 8px 0; }
.jg-listes ul { margin: 0; padding-left: 16px; list-style: none; display: flex; flex-direction: column; gap: 4px; }
.jg-forts li { color: color-mix(in srgb, var(--ink) 70%, #2a6); }
.jg-faibles li { color: color-mix(in srgb, var(--ink) 75%, #a63); }


/* ===== Lot 11 : la méthode ===== */
/* Le verdict est un TAMPON du greffe : légère rotation, cerne intérieur */
.sy-verdict-badge, .pb-badge, .pl-badge { transform: rotate(-4deg);
  outline: 1.5px solid color-mix(in srgb, #fff 55%, transparent); outline-offset: -4.5px; }
/* La note du juge : une marge manuscrite */
.jg-note { transform: rotate(-1deg); font-family: var(--serif); }
/* Badge d'exercice du Simulateur (le .pill.sm fantôme est mort — bug d'audit) */
.sm-pill-exo { background: var(--n-surface); }
/* L'avertissement des cas pratiques parle enfin la langue du warn */
.cp-avert { border-left-color: var(--gold); background: var(--warn-bg); color: var(--warn-ink); }
.cp-avert-ic { width: 15px; height: 15px; vertical-align: -2px; color: var(--warn-ink); }
.cp-avert-in .cp-avert-ic { width: 13px; height: 13px; }
/* Jauges d'auto-notation : sur mobile le libellé se lit en entier */
@media (max-width: 620px) {
  .an-pf-t { white-space: normal; overflow: visible; text-overflow: clip; }
}

/* ===================================================================== */
/* Super Atelier · lot 5 — contrats d’évaluation & registre de preuves   */
/* ===================================================================== */
.ev-head { align-items: flex-start; }
.ev-head-actions { flex: 0 0 auto; justify-content: flex-end; }
.ev-doctrine { max-width: 1080px; margin: 0 auto 14px; border-left-color: var(--c-b); }
.ev-filters { max-width: 1080px; margin: 0 auto 14px; display: grid;
  grid-template-columns: minmax(220px, .8fr) minmax(260px, 1.2fr); gap: 12px 16px; }
.ev-filters .field { min-width: 0; }
.ev-filters .input { width: 100%; }
.ev-filter-note { grid-column: 1 / -1; margin: -2px 0 0; }

.ev-contract { max-width: 1080px; margin: 0 auto 24px; padding: clamp(18px, 3vw, 30px);
  border-top: 4px solid var(--c-b); }
.ev-contract-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.ev-contract-head h2 { margin: 8px 0 6px; font-family: var(--serif); font-size: clamp(23px, 3vw, 31px); }
.ev-method { background: var(--b-surface); color: var(--b-on); }
.ev-finalite { max-width: 760px; margin: 0; font-family: var(--serif); font-size: 16px; line-height: 1.55; }
.ev-contract-count { flex: 0 0 auto; padding: 7px 10px; border: 1px solid var(--hairline);
  border-radius: 999px; color: var(--ink-soft); font-size: 12px; font-weight: 700; white-space: nowrap; }
.ev-contract-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 20px; }
.ev-contract-bloc { padding: 14px; border: 1px solid var(--hairline); border-radius: 12px; background: var(--card-2); }
.ev-contract-bloc > span { color: var(--c-b); font-size: 11px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.ev-contract-bloc p { margin: 6px 0 0; font-size: 13.5px; line-height: 1.55; }
.ev-sequence { margin-top: 22px; }
.ev-sequence h3, .ev-section-head h3 { margin: 0; font-family: var(--serif); font-size: 18px; }
.ev-sequence ol { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px;
  margin: 10px 0 0; padding: 0; list-style: none; counter-reset: ev-step; }
.ev-sequence li { counter-increment: ev-step; min-width: 0; padding: 12px 10px; border-radius: 10px;
  background: var(--paper-2); font-size: 12px; line-height: 1.45; }
.ev-sequence li::before { content: counter(ev-step, decimal-leading-zero); display: block; margin-bottom: 7px;
  color: var(--c-b); font-weight: 800; font-variant-numeric: tabular-nums; }
.ev-erreurs { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; margin-top: 14px; }
.ev-erreurs-label { margin-right: 3px; color: var(--ink-soft); font-size: 12px; font-weight: 700; }
.ev-erreur { background: var(--danger-surface); color: var(--danger-on); }

.ev-consigne { margin-top: 24px; padding: 18px; border: 1px dashed color-mix(in srgb, var(--c-b) 45%, var(--hairline));
  border-radius: 13px; background: color-mix(in srgb, var(--b-surface) 35%, var(--card)); }
.ev-section-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.ev-section-head p { margin: 4px 0 0; }
.ev-source, .ev-consigne-text { display: block; width: 100%; }
.ev-consigne-text { min-height: 120px; margin: 9px 0; resize: vertical; line-height: 1.5; }
.ev-criteres { margin-top: 26px; }
.ev-critere { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 10px;
  padding: 15px 0; border-top: 1px solid var(--hairline); }
.ev-critere-num { color: var(--c-b); font-size: 12px; font-weight: 800; font-variant-numeric: tabular-nums; }
.ev-critere-body { min-width: 0; }
.ev-critere-line { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.ev-critere h4 { margin: 0; font-family: var(--serif); font-size: 16px; }
.ev-critere p { margin: 5px 0 7px; font-size: 13.5px; line-height: 1.55; }
.ev-competence-link { color: var(--ink-soft); font-size: 11.5px; font-weight: 650; }

.ev-ledger { max-width: 1080px; margin: 0 auto; }
.ev-ledger-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.ev-ledger-head h2 { margin: 0; font-family: var(--serif); font-size: clamp(23px, 3vw, 30px); }
.ev-ledger-head p { margin: 5px 0 0; }
.ev-ledger-scope { flex: 0 0 auto; max-width: 100%; }
.ev-summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin: 14px 0; padding: 0; overflow: hidden; }
.ev-stat { min-width: 0; padding: 16px; border-left: 1px solid var(--hairline); }
.ev-stat:first-child { border-left: 0; }
.ev-stat b { display: block; color: var(--c-b); font-family: var(--serif); font-size: 23px; font-variant-numeric: tabular-nums; }
.ev-stat span { display: block; margin-top: 4px; color: var(--ink-soft); font-size: 11.5px; line-height: 1.35; }
.ev-ledger-empty { padding: 22px 0; text-align: center; }
.ev-ledger-empty .row { justify-content: center; }
.ev-priorites { margin-bottom: 16px; border-left-color: var(--gold); background: var(--warn-bg); color: var(--warn-ink); }
.ev-domain { margin: 22px 0; }
.ev-domain-head { margin-bottom: 10px; }
.ev-domain-head h3 { margin: 0; font-family: var(--serif); font-size: 19px; }
.ev-domain-head p { margin: 3px 0 0; }
.ev-skills { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.ev-skill { min-width: 0; padding: 15px; border-left: 3px solid var(--hairline); }
.ev-skill[data-etat="a-consolider"] { border-left-color: var(--danger); }
.ev-skill[data-etat="en-progression"], .ev-skill[data-etat="premiere-preuve"] { border-left-color: var(--gold); }
.ev-skill[data-etat="demonstree"], .ev-skill[data-etat="solide"] { border-left-color: var(--ok-surface); }
.ev-skill-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.ev-skill-head > div { min-width: 0; }
.ev-skill-head h4 { margin: 0; font-family: var(--serif); font-size: 16px; }
.ev-skill-head p { margin: 4px 0 0; font-size: 12px; line-height: 1.45; }
.ev-state { flex: 0 0 auto; max-width: 130px; text-align: center; white-space: normal; }
.ev-skill[data-etat="a-consolider"] .ev-state { background: var(--danger-surface); color: var(--danger-on); }
.ev-skill[data-etat="en-progression"] .ev-state,
.ev-skill[data-etat="premiere-preuve"] .ev-state { background: var(--warn-bg); color: var(--warn-ink); }
.ev-skill[data-etat="demonstree"] .ev-state,
.ev-skill[data-etat="solide"] .ev-state { background: var(--ok-surface); color: var(--ok-on); }
.ev-score { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px; margin-top: 13px; }
.ev-score-track { height: 7px; overflow: hidden; border-radius: 999px; background: var(--paper-2); }
.ev-score-fill { display: block; height: 100%; border-radius: inherit; background: var(--c-b); }
.ev-score b { font-size: 12px; font-variant-numeric: tabular-nums; }
.ev-score-empty { margin-top: 13px; color: var(--ink-soft); font-size: 12px; font-style: italic; }
.ev-skill-meta { display: flex; justify-content: space-between; gap: 10px; margin-top: 10px; color: var(--ink-soft); font-size: 11.5px; }
.ev-trend { flex: 0 0 auto; font-weight: 700; }
.ev-last { margin: 8px 0 0; font-size: 11.5px; line-height: 1.4; }
.ev-evidence { margin-top: 10px; border-top: 1px dashed var(--hairline); padding-top: 9px; }
.ev-evidence summary { cursor: pointer; color: var(--c-b); font-size: 12px; font-weight: 700; }
.ev-evidence ul { display: flex; flex-direction: column; gap: 7px; margin: 9px 0 0; padding: 0; list-style: none; }
.ev-evidence li { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 0 6px; font-size: 12px; }
.ev-evidence li small { grid-column: 2; color: var(--ink-soft); line-height: 1.35; }
.ev-proof-mark { grid-row: 1 / span 2; font-weight: 850; }
.ev-proof-mark.is-ok { color: var(--ok-text); }
.ev-proof-mark.is-miss { color: var(--danger); }

/* Le contrat compact du Simulateur donne le cap avant que le chrono parte. */
.sm-contract { margin: 12px 0; padding: 12px 14px; border: 1px solid var(--hairline); border-radius: 12px;
  background: var(--card-2); }
.sm-contract > summary { cursor: pointer; font-family: var(--serif); font-size: 14px; font-weight: 700; }
.sm-contract[open] > summary { margin-bottom: 8px; color: var(--c-b); }
.sm-contract-goal { margin: 0 0 8px; font-size: 13px; line-height: 1.5; }
.sm-contract-steps { margin: 0 0 9px; padding-left: 20px; font-size: 12px; line-height: 1.5; }
.sm-contract .muted { margin: 7px 0; font-size: 11.5px; }

@media (max-width: 760px) {
  .ev-head, .ev-ledger-head { flex-direction: column; }
  .ev-head-actions { width: 100%; justify-content: flex-start; }
  .ev-filters, .ev-contract-grid { grid-template-columns: 1fr; }
  .ev-sequence ol { grid-template-columns: 1fr; }
  .ev-sequence li { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 5px; align-items: baseline; }
  .ev-sequence li::before { margin: 0; }
  .ev-ledger-scope { width: 100%; overflow-x: auto; }
  .ev-summary { grid-template-columns: repeat(2, 1fr); }
  .ev-stat:nth-child(3) { border-left: 0; border-top: 1px solid var(--hairline); }
  .ev-stat:nth-child(4) { border-top: 1px solid var(--hairline); }
  .ev-skills { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .ev-head-actions .btn { flex: 1 1 0; }
  .ev-contract { padding: 16px; }
  .ev-contract-head, .ev-critere-line, .ev-skill-head { flex-direction: column; }
  .ev-contract-count { align-self: flex-start; }
  .ev-critere { grid-template-columns: 30px minmax(0, 1fr); }
  .ev-state { align-self: flex-start; max-width: none; }
  .ev-skill-meta { flex-direction: column; gap: 3px; }
}

/* ===================================================================== */
/* Super Atelier · lot 6 — correction → entraînement → nouvelle preuve   */
/* ===================================================================== */
.co-head { align-items: flex-start; }
.co-head-actions { flex: 0 0 auto; justify-content: flex-end; }
.co-doctrine { max-width: 1080px; margin: 0 auto 14px; border-left-color: var(--c-b); }
.co-cycle { max-width: 1080px; margin: 0 auto 14px; display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; }
.co-step { min-width: 0; padding: 14px; display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 9px;
  border-top: 3px solid color-mix(in srgb, var(--c-b) 55%, var(--hairline)); }
.co-step-n { color: var(--c-b); font-size: 11px; font-weight: 850; font-variant-numeric: tabular-nums; }
.co-step b { font-family: var(--serif); font-size: 15px; }
.co-step p { margin: 4px 0 0; color: var(--ink-soft); font-size: 11.5px; line-height: 1.45; }

.co-summary { max-width: 1080px; margin: 0 auto 14px; padding: 0; display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: hidden; }
.co-stat { min-width: 0; padding: 15px 16px; border-left: 1px solid var(--hairline); }
.co-stat:first-child { border-left: 0; }
.co-stat b { display: block; color: var(--c-b); font-family: var(--serif); font-size: 24px; font-variant-numeric: tabular-nums; }
.co-stat span { display: block; margin-top: 3px; color: var(--ink-soft); font-size: 11.5px; line-height: 1.35; }
.co-filters { max-width: 1080px; margin: 0 auto 22px; display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.co-filters .field { min-width: 0; }
.co-filters .input { width: 100%; }

.co-detected, .co-loops { max-width: 1080px; margin: 0 auto 28px; }
.co-section-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 11px; }
.co-section-head h2 { margin: 0; font-family: var(--serif); font-size: clamp(22px, 3vw, 28px); }
.co-section-head p { margin: 4px 0 0; }
.co-detected-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.co-detected-card { min-width: 0; padding: 16px; border-left: 3px solid var(--c-b); }
.co-card-top { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.co-corrector { background: var(--b-surface); color: var(--b-on); }
.co-detected-card h3 { margin: 11px 0 3px; font-family: var(--serif); font-size: 17px; line-height: 1.3; }
.co-meta { margin: 0; font-size: 11.5px; }
.co-expected { margin: 11px 0 8px; font-size: 13px; line-height: 1.5; }
.co-last { margin: 0 0 12px; color: var(--ink-soft); font-size: 11.5px; line-height: 1.4; }
.co-more { margin-top: 10px; }
.co-more > summary { cursor: pointer; color: var(--c-b); font-size: 12.5px; font-weight: 750; }
.co-more[open] > summary { margin-bottom: 10px; }
.co-empty, .co-none { padding: 18px 0; }

.co-loop { margin-bottom: 10px; padding: 0; overflow: hidden; scroll-margin-top: 18px; }
.co-loop > summary { list-style: none; }
.co-loop > summary::-webkit-details-marker { display: none; }
.co-loop-summary { min-height: 76px; padding: 15px 17px; display: flex; align-items: center;
  justify-content: space-between; gap: 14px; cursor: pointer; }
.co-loop-summary::before { content: '›'; flex: 0 0 auto; color: var(--c-b); font-size: 22px; line-height: 1;
  transform: rotate(0); transition: transform var(--dur-1) var(--ease); }
.co-loop[open] .co-loop-summary::before { transform: rotate(90deg); }
.co-loop-summary > div { min-width: 0; flex: 1 1 auto; }
.co-loop-summary h3 { margin: 0; font-family: var(--serif); font-size: 18px; line-height: 1.3; }
.co-loop-summary p { margin: 4px 0 0; font-size: 11.5px; }
.co-state { flex: 0 0 auto; max-width: 180px; text-align: center; white-space: normal; }
.co-state[data-etat="a-diagnostiquer"] { background: var(--danger-surface); color: var(--danger-on); }
.co-state[data-etat="a-reentrainer"] { background: var(--warn-bg); color: var(--warn-ink); }
.co-state[data-etat="a-verifier"], .co-state[data-etat="reussie-une-fois"] { background: var(--react-surface); color: var(--react-on); }
.co-state[data-etat="stabilisee"] { background: var(--ok-surface); color: var(--ok-on); }
.co-loop-body { border-top: 1px solid var(--hairline); padding: 18px; }

.co-status { margin-bottom: 15px; padding: 13px 15px; border-left: 4px solid var(--hairline);
  border-radius: 10px; background: var(--card-2); }
.co-status[data-etat="a-diagnostiquer"] { border-left-color: var(--danger); }
.co-status[data-etat="a-reentrainer"] { border-left-color: var(--gold); }
.co-status[data-etat="a-verifier"], .co-status[data-etat="reussie-une-fois"] { border-left-color: var(--react-on); }
.co-status[data-etat="stabilisee"] { border-left-color: var(--ok-text); }
.co-status > b { font-family: var(--serif); font-size: 16px; }
.co-status > p { margin: 5px 0 0; font-size: 13px; line-height: 1.5; }
.co-contract-reminder { padding-top: 9px; border-top: 1px dashed var(--hairline); }
.co-contract-reminder span { color: var(--c-b); font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }

.co-sources { margin-bottom: 17px; }
.co-sources > summary { cursor: pointer; color: var(--c-b); font-size: 12.5px; font-weight: 750; }
.co-sources ul { margin: 10px 0 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 7px; }
.co-sources li { display: grid; grid-template-columns: 100px minmax(0, 1fr); gap: 2px 9px; padding: 9px 11px;
  border-radius: 9px; background: var(--paper-2); font-size: 12px; }
.co-sources li > span { grid-row: 1 / span 2; color: var(--c-b); font-size: 10.5px; font-weight: 800; text-transform: uppercase; }
.co-sources li b { min-width: 0; }
.co-sources li small { color: var(--ink-soft); line-height: 1.4; }

.co-diagnostic, .co-plan, .co-proofs { padding: 17px 0; border-top: 1px solid var(--hairline); }
.co-diagnostic h4, .co-plan h4, .co-proofs h4 { margin: 0 0 11px; font-family: var(--serif); font-size: 17px; }
.co-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
.co-form-grid .field { min-width: 0; }
.co-form-grid .input { width: 100%; resize: vertical; line-height: 1.45; }
.co-legal-note { margin: 10px 0; font-size: 11.5px; }
.co-plan-fields { max-width: 430px; display: grid; grid-template-columns: 1.5fr 1fr; gap: 10px; }
.co-plan-fields .input { width: 100%; }
.co-actions { margin: 12px 0 9px; }
.co-done { margin-top: 2px; }
.co-proofs > p { margin: 0; }
.co-proofs ul { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 7px; }
.co-proofs li { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 8px; align-items: start;
  padding: 10px 12px; border-radius: 9px; background: color-mix(in srgb, var(--ok-surface) 55%, var(--card)); }
.co-proof-mark { color: var(--ok-text); font-weight: 850; }
.co-proofs li b, .co-proofs li small { display: block; }
.co-proofs li small { margin-top: 2px; color: var(--ink-soft); font-size: 11.5px; }
.co-loop-danger { padding-top: 12px; border-top: 1px dashed var(--hairline); text-align: right; }
.co-loop-danger .linklike { color: var(--danger); font-size: 11.5px; }

@media (max-width: 820px) {
  .co-cycle { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .co-head { flex-direction: column; }
  .co-head-actions { width: 100%; justify-content: flex-start; }
  .co-filters, .co-detected-grid, .co-form-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .co-cycle { grid-template-columns: 1fr; }
  .co-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .co-stat:nth-child(3) { border-left: 0; border-top: 1px solid var(--hairline); }
  .co-stat:nth-child(4) { border-top: 1px solid var(--hairline); }
  .co-loop-summary { align-items: flex-start; flex-wrap: wrap; }
  .co-loop-summary::before { margin-top: 2px; }
  .co-state { margin-left: 30px; max-width: calc(100% - 30px); }
  .co-loop-body { padding: 14px; }
  .co-sources li { grid-template-columns: 1fr; }
  .co-sources li > span { grid-row: auto; }
  .co-plan-fields { grid-template-columns: 1fr; }
  .co-actions .btn { width: 100%; }
}

/* =====================================================================
   Atelier de dissertation — Super Atelier, lot 7
   ===================================================================== */
.ds-head, .ds-doctrine, .ds-workshop, .ds-section, .ds-audit-empty, .ds-audit, .ds-coach, .ds-actions { max-width: var(--gab-atelier); margin-left: auto; margin-right: auto; }
.ds-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.ds-doctrine { margin-bottom: 14px; display: flex; align-items: flex-start; gap: 10px; }
.ds-doctrine .pastille { flex: 0 0 auto; margin-top: 2px; }
.ds-workshop { padding: 16px 18px; border-top: 3px solid var(--c-b); }
.ds-pilot { display: grid; grid-template-columns: minmax(240px, 1fr) auto auto; align-items: end; gap: 12px; }
.ds-draft-select { margin: 0; }
.ds-save-state { align-self: center; font-size: 11.5px; }
.ds-progress { margin-top: 15px; padding-top: 14px; border-top: 1px solid var(--hairline); }
.ds-progress-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; font-size: 13px; }
.ds-progress-track { height: 8px; margin-top: 8px; border-radius: var(--r-round); background: var(--paper-2); overflow: hidden; }
.ds-progress-track span { display: block; height: 100%; border-radius: inherit; background: var(--b-surface); transition: width var(--dur-2) var(--ease); }
.ds-stage-chips { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 6px; }
.ds-stage-chips .chip[data-complete='true'] { background: var(--ok-tint); color: var(--ok-text); border-color: var(--ok-line); }
.ds-section { margin-top: 14px; display: grid; gap: 14px; scroll-margin-top: 18px; }
.ds-section-head { display: flex; align-items: flex-start; gap: 12px; padding-bottom: 11px; border-bottom: 1px solid var(--hairline); }
.ds-section-head h2, .ds-section-head p { margin: 0; }
.ds-section-head p { margin-top: 3px; }
.ds-step { flex: 0 0 auto; width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: var(--b-surface); color: var(--b-on); font-family: var(--sans); font-weight: 850; }
.ds-section .input { width: 100%; min-width: 0; resize: vertical; line-height: 1.5; }
.ds-two { display: grid; grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr); gap: 12px; }
.ds-analysis-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.ds-intro-list { display: grid; gap: 12px; counter-reset: intro; }
.ds-intro-list .field { padding-left: 12px; border-left: 2px solid var(--b-line); }
.ds-plan-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; align-items: start; }
.ds-part { min-width: 0; padding: 14px; border: 1px solid var(--hairline); border-radius: var(--r-l); background: var(--paper-2); display: grid; gap: 11px; }
.ds-part-head { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 9px; align-items: center; }
.ds-roman, .ds-letter { color: var(--b-text); font-family: var(--sans); font-weight: 850; }
.ds-roman { font-size: 19px; }
.ds-subpart { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 7px 9px; align-items: start; padding-top: 11px; border-top: 1px dashed var(--hairline); }
.ds-subpart .ds-letter { grid-row: 1 / span 2; padding-top: 26px; font-size: 12px; }
.ds-audit-empty, .ds-actions { margin-top: 14px; display: flex; align-items: center; justify-content: space-between; gap: 18px; border-left: 3px solid var(--c-b); }
.ds-audit-empty h2, .ds-audit-empty p, .ds-actions h2, .ds-actions p { margin: 0; }
.ds-audit-empty p, .ds-actions p { margin-top: 4px; }
.ds-audit { margin-top: 14px; border-left: 3px solid var(--gold); }
.ds-audit[data-ready='true'] { border-left-color: var(--ok-text); }
.ds-audit-head { display: flex; align-items: flex-start; gap: 10px; }
.ds-audit-head h2, .ds-audit-head p { margin: 0; }
.ds-audit-head p { margin-top: 3px; }
.ds-audit-cols { margin-top: 14px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.ds-audit-cols > div { padding: 11px 12px; border-radius: var(--r-m); background: var(--paper-2); }
.ds-audit-cols h3, .ds-audit-cols p { margin: 0; }
.ds-audit-cols p { margin-top: 3px; }
.ds-alerts { margin: 14px 0 0; padding-left: 21px; display: grid; gap: 6px; }
.ds-no-alert { color: var(--ok-text); }
.ds-audit-note { margin-bottom: 0; font-size: 11.5px; }
.ds-coach { margin-top: 14px; border-top: 3px solid var(--gold); }
.ds-coach-head { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.ds-coach-head h2 { margin: 0 auto 0 0; }
.ds-coach h3 { margin-bottom: 6px; font-size: 16px; }
.ds-actions { margin-bottom: 20px; }
.ds-actions > .row { justify-content: flex-end; }
@media (max-width: 820px) {
  .ds-head, .ds-audit-empty, .ds-actions { flex-direction: column; align-items: stretch; }
  .ds-pilot { grid-template-columns: 1fr; align-items: stretch; }
  .ds-save-state { align-self: auto; }
  .ds-two, .ds-analysis-grid, .ds-plan-grid, .ds-audit-cols { grid-template-columns: 1fr; }
  .ds-actions > .row { justify-content: flex-start; }
}
@media (max-width: 520px) {
  .ds-head .btn, .ds-audit-empty .btn, .ds-actions .btn { width: 100%; }
  .ds-pilot .row { flex-direction: column; align-items: stretch; }
  .ds-progress-head { flex-direction: column; align-items: flex-start; gap: 2px; }
  .ds-section { padding: 14px; }
  .ds-part { padding: 11px; }
  .ds-subpart { grid-template-columns: 1fr; }
  .ds-subpart .ds-letter { grid-row: auto; padding-top: 0; }
}
