/* 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-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; }
}
