/*  Flashcards / répétition espacée (§9.1)                               */
/* ===================================================================== */
.fc-tableau { max-width: 620px; margin: 0 auto; display: flex; flex-direction: column; gap: 18px; }
/* Bloc « réviser » */
.fc-reviser { display: flex; flex-direction: column; gap: 14px; align-items: center; text-align: center; }
.fc-reviser-h { display: flex; align-items: center; gap: 14px; }
.fc-due-n { font-family: var(--sans); font-variant-numeric: tabular-nums; font-weight: 700; font-size: clamp(40px, 10vw, 56px); line-height: 1; color: var(--c-c); }
.fc-due-l { display: flex; flex-direction: column; align-items: flex-start; font-family: var(--sans); }
.fc-due-l b { font-size: 15px; color: var(--ink); }
.fc-due-l span { font-size: 12.5px; color: var(--ink-soft); }
.fc-scope { max-width: 100%; }
.fc-go { justify-content: center; padding: 12px 18px; font-size: 15px; min-width: 220px; }
.fc-go:disabled { opacity: .5; cursor: not-allowed; }
.fc-stats { font-family: var(--sans); font-size: 12.5px; color: var(--ink-soft); margin: 0; }
.fc-vide { text-align: center; padding: 4px 10px; }
/* Ajout de cartes */
.fc-ajout { display: flex; flex-direction: column; gap: 12px; }
.fc-ajout-t { font-size: 17px; margin: 0; }
.fc-ta { width: 100%; resize: vertical; font-family: var(--sans); line-height: 1.5; }
.fc-simple { display: flex; flex-direction: column; gap: 9px; }
.fc-coller-d > summary { font-family: var(--sans); font-size: 13px; color: var(--ink-soft); cursor: pointer; padding: 6px 0; }
.fc-coller-d[open] > summary { color: var(--ink); margin-bottom: 8px; }
.fc-coller { font-family: var(--mono, ui-monospace, monospace); font-size: 13px; }
.fc-apercu { display: flex; flex-direction: column; gap: 5px; margin: 8px 0; }
.fc-apercu-c { font-family: var(--sans); font-size: 12.5px; color: var(--ink-soft); line-height: 1.4; }
.fc-apercu-c b { color: var(--ink); font-weight: 600; }
/* Paquets */
.fc-paquets { display: flex; flex-direction: column; gap: 9px; }
.fc-paquet { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 15px; }
.fc-paquet-b { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.fc-paquet-b b { font-family: var(--serif); font-size: 15px; }
.fc-paquet-due { color: var(--c-c); font-weight: 600; }
.fc-paquet-a { display: flex; gap: 4px; flex: 0 0 auto; }
.fc-confirm { margin-top: 6px; }
/* Session : carte plein centre */
.fc-session { max-width: 620px; margin: 0 auto; display: flex; flex-direction: column; gap: 14px; }
.fc-session-h { display: flex; align-items: center; justify-content: space-between; }
.fc-prog-n { font-family: var(--sans); font-size: 13px; color: var(--ink-soft); display: flex; align-items: center; gap: 8px; }
.fc-pill { background: var(--c-surface); }
.fc-prog { height: 8px; border-radius: 6px; background: var(--paper-2); overflow: hidden; }
.fc-prog-fill { display: block; height: 100%; background: var(--c-c); border-radius: 6px; transition: width .25s ease; }
.fc-carte { min-height: 230px; display: flex; align-items: center; justify-content: center; padding: 26px 22px; }
.fc-carte-corps { width: 100%; display: flex; flex-direction: column; gap: 14px; }
.fc-recto { font-family: var(--serif); font-size: clamp(19px, 3.6vw, 24px); line-height: 1.4; color: var(--ink); text-align: center; white-space: pre-wrap; }
.fc-sep { width: 100%; border: none; border-top: 1px dashed var(--hairline); margin: 2px 0; }
.fc-verso { font-family: var(--serif); font-size: clamp(16px, 3vw, 19px); line-height: 1.55; color: var(--ink); text-align: center; white-space: pre-wrap; }
.fc-revrow { justify-content: center; }
.fc-reveal { padding: 12px 22px; font-size: 15px; }
.fc-notes { display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; }
.fc-note { flex-direction: column; gap: 2px; padding: 11px 6px; border-width: 1px; }
.fc-note-l { font-size: 13.5px; font-weight: 600; }
.fc-note-i { font-family: var(--sans); font-variant-numeric: tabular-nums; font-size: var(--t-small); color: var(--ink-soft); }
.fc-encore { color: var(--danger); border-color: color-mix(in srgb, var(--danger) 40%, var(--hairline)); }
.fc-encore:hover { background: color-mix(in srgb, var(--danger) 9%, var(--card)); border-color: var(--danger); }
.fc-difficile { color: var(--gold-text); border-color: color-mix(in srgb, var(--gold) 40%, var(--hairline)); }
.fc-difficile:hover { background: color-mix(in srgb, var(--gold) 11%, var(--card)); border-color: var(--gold); }
.fc-correct { color: var(--method); border-color: color-mix(in srgb, var(--method) 40%, var(--hairline)); }
.fc-correct:hover { background: color-mix(in srgb, var(--method) 10%, var(--card)); border-color: var(--method); }
.fc-facile { color: var(--c-c); border-color: color-mix(in srgb, var(--c-c) 40%, var(--hairline)); }
.fc-facile:hover { background: color-mix(in srgb, var(--c-c) 10%, var(--card)); border-color: var(--c-c); }
.fc-note-i { color: inherit; opacity: .92; }
.fc-aide { text-align: center; margin: 0; }
/* Résumé */
.fc-resume { max-width: 560px; margin: 0 auto; align-items: center; text-align: center; display: flex; flex-direction: column; gap: 10px; }
.fc-resume-h { display: flex; align-items: center; gap: 10px; }
.fc-resume-h h2 { margin: 0; font-size: 21px; }
.fc-check { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--ok-surface); color: var(--ok-on); font-weight: 700; }
.fc-resume-p { font-size: 15px; margin: 0; }
.fc-resume-p b { color: var(--c-c); font-size: 18px; }
.fc-resume-a { justify-content: center; }
@media (max-width: 560px) { .fc-notes { grid-template-columns: repeat(2, 1fr); } }
@media (prefers-reduced-motion: reduce) { .fc-prog-fill { transition: none; } }
/* Sangsues (cartes à reformuler) */
.fc-sangsues { display: flex; flex-direction: column; gap: 10px; border-left: 3px solid var(--gold); }
.fc-sangsues-h { display: flex; align-items: flex-start; gap: 10px; }
.fc-sangsues-ic { color: var(--gold-text); font-size: 17px; line-height: 1.3; flex: 0 0 auto; }
.fc-sangsues-h b { font-family: var(--sans); font-size: 14px; }
.fc-sangsues-h p { margin: 2px 0 0; font-size: 12.5px; line-height: 1.45; }
.fc-sangsue { display: flex; flex-direction: column; gap: 8px; padding: 9px 0; border-top: 1px solid var(--hairline); }
.fc-sangsue-b { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.fc-sangsue-r { font-family: var(--serif); font-size: 14.5px; color: var(--ink); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fc-sangsue-n { flex: 0 0 auto; font-family: var(--sans); font-variant-numeric: tabular-nums; font-size: 12px; font-weight: 700; color: var(--gold-text); }
.fc-sangsue-a { display: flex; gap: 6px; flex-wrap: wrap; }
/* Réglages de révision (raffinements SM-2) */
.fc-reglages > summary { font-family: var(--sans); font-size: 13px; color: var(--ink-soft); cursor: pointer; }
.fc-reglages[open] > summary { color: var(--ink); margin-bottom: 12px; }
.fc-rgl-grid { display: flex; flex-direction: column; gap: 14px; }
.fc-rgl-f { display: grid; grid-template-columns: 1fr auto; gap: 8px 16px; align-items: center; }
.fc-rgl-l { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.fc-rgl-l b { font-family: var(--sans); font-size: 13.5px; font-weight: 600; }
.fc-rgl-l span { font-size: 12px; line-height: 1.4; }
.fc-rgl-c { flex: 0 0 auto; justify-self: end; }
.fc-rgl-range { display: flex; align-items: center; gap: 9px; }
.fc-range { accent-color: var(--c-c); width: 130px; }
.fc-rgl-val { font-family: var(--sans); font-variant-numeric: tabular-nums; font-size: 13px; color: var(--c-c); font-weight: 600; min-width: 46px; text-align: right; }
.fc-rgl-inline { display: flex; align-items: center; gap: 7px; }
.fc-rgl-num { width: 84px; }
.fc-rgl-check { display: inline-flex; align-items: center; gap: 7px; font-family: var(--sans); font-size: 13px; color: var(--ink); cursor: pointer; }
.fc-rgl-check input { width: 17px; height: 17px; accent-color: var(--c-c); }
@media (max-width: 560px) { .fc-rgl-f { grid-template-columns: 1fr; } .fc-rgl-c { justify-self: start; } }
/*  Brain-dump / restitution (§9.2)                                      */
/* ===================================================================== */
.bd-choix { max-width: 680px; margin: 0 auto; display: flex; flex-direction: column; gap: 14px; }
.bd-seg { width: fit-content; }
.bd-ref, .bd-dump-zone { width: 100%; resize: vertical; font-family: var(--sans); line-height: 1.55; }
.bd-row { display: flex; gap: 12px; }
.bd-timer { width: fit-content; min-width: 160px; }
.bd-go { justify-content: center; padding: 12px; font-size: 15px; }
.bd-go:disabled { opacity: .5; cursor: not-allowed; }
.bd-note { display: flex; align-items: flex-start; gap: 7px; margin: 0; }
.bd-note svg { width: 15px; height: 15px; color: var(--c-c); flex: 0 0 auto; margin-top: 1px; }
/* Page blanche immersive */
.bd-dump { max-width: 760px; margin: 0 auto; display: flex; flex-direction: column; gap: 12px; }
.bd-dump-h { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.bd-dump-t { font-family: var(--serif); font-size: 17px; }
.bd-dump-meta { display: flex; align-items: center; gap: 12px; font-family: var(--sans); }
.bd-tmr { font-variant-numeric: tabular-nums; font-weight: 700; font-size: 16px; color: var(--c-c); }
.bd-tmr-fin { color: var(--gold-text); }
.bd-compteur { font-size: 12.5px; color: var(--ink-soft); }
.bd-dump-zone { min-height: 320px; font-size: 15.5px; }
.bd-dump-a { display: flex; gap: 10px; }
/* Comparaison */
.bd-compare { max-width: 900px; margin: 0 auto; display: flex; flex-direction: column; gap: 14px; }
.bd-cov { display: flex; align-items: center; gap: 14px; max-width: 360px; }
.bd-cov-n { font-family: var(--sans); font-variant-numeric: tabular-nums; font-weight: 700; font-size: clamp(30px, 7vw, 40px); line-height: 1; color: var(--c-c); }
.bd-cov-l { display: flex; flex-direction: column; font-family: var(--sans); }
.bd-cov-l b { font-size: 14px; color: var(--ink); }
.bd-cov-l span { font-size: 12.5px; color: var(--ink-soft); }
.bd-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; align-items: start; }
.bd-col { background: var(--card); border: 1px solid var(--hairline); border-radius: 13px; box-shadow: var(--shadow); overflow: hidden; }
.bd-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); }
.bd-col-b { padding: 14px; font-size: 13.5px; line-height: 1.6; white-space: pre-wrap; max-height: 50vh; overflow-y: auto; }
.bd-col-ref { font-family: var(--serif); }
.bd-trous-card { display: flex; flex-direction: column; gap: 10px; }
.bd-trous-h { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.bd-trous { display: flex; flex-wrap: wrap; gap: 7px; }
.bd-trou { cursor: pointer; }
.bd-trou[aria-pressed="true"] { background: var(--c-surface); color: var(--c-on); border-color: var(--c-surface); }
.bd-trou[aria-pressed="true"]::before { content: '✓ '; }
.bd-trous-foot { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; border-top: 1px dashed var(--hairline); padding-top: 12px; }
.bd-ajout { flex: 1 1 180px; min-width: 0; }
.bd-cartes:disabled { opacity: .5; cursor: not-allowed; }
.bd-compare-a { display: flex; justify-content: center; }
@media (max-width: 680px) { .bd-cols { grid-template-columns: 1fr; } }
/*  Moteur d'interleaving (§9.3) — réutilise l'UI de session des Flashcards */
/* ===================================================================== */
.il-config { max-width: 560px; margin: 0 auto; display: flex; flex-direction: column; gap: 16px; align-items: stretch; }
.il-due { display: flex; align-items: center; gap: 14px; justify-content: center; }
.il-due-n { font-family: var(--sans); font-variant-numeric: tabular-nums; font-weight: 700; font-size: clamp(40px, 10vw, 56px); line-height: 1; color: var(--c-c); }
.il-due-l { display: flex; flex-direction: column; font-family: var(--sans); }
.il-due-l b { font-size: 15px; color: var(--ink); }
.il-due-l span { font-size: 12.5px; color: var(--ink-soft); }
.il-tailles { display: flex; gap: 8px; }
.il-tailles .chip { cursor: pointer; min-width: 54px; text-align: center; }
.il-tailles .chip[data-on="true"] { background: var(--c-surface); color: var(--c-on); border-color: var(--c-surface); }
.il-go { justify-content: center; padding: 12px 18px; font-size: 15px; }
.il-go:disabled { opacity: .5; cursor: not-allowed; }
.il-vide { text-align: center; }
.il-react { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
/* réactivations J dues (lot 4) */
.il-react-go { white-space: nowrap; margin-left: auto; }
.il-session { max-width: 620px; }
.il-quit { padding: 5px 11px; font-size: 12.5px; }
/* Indicateur de discrimination : la matière/type courant, pour la conscience de la bascule */
.il-disc { display: flex; align-items: center; justify-content: center; gap: 8px; }
.il-disc-mat { font-family: var(--sans); font-size: 12px; font-weight: 700; color: var(--c-c); background: color-mix(in srgb, var(--c-c) 12%, var(--card)); border-radius: 20px; padding: 3px 11px; }
.il-disc-type { font-family: var(--sans); font-size: 11px; text-transform: uppercase; letter-spacing: .05em; color: var(--ink-soft); border: 1px solid var(--hairline); border-radius: 20px; padding: 2px 9px; }
.il-bilan { max-width: 560px; }
/*  Prompteur d'auto-explication (§9.4)                                  */
/* ===================================================================== */
.ax-config { max-width: 680px; margin: 0 auto 16px; display: flex; flex-direction: column; gap: 14px; }
.ax-srcseg { flex-wrap: wrap; width: 100%; }
.ax-source { width: 100%; margin-top: 10px; }
.ax-libre { width: 100%; }
.ax-go { justify-content: center; padding: 12px; font-size: 15px; }
/* Session « carnet » : une question en grand */
.ax-session { max-width: 680px; margin: 0 auto; display: flex; flex-direction: column; gap: 12px; }
.ax-session-h { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.ax-notion { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; min-width: 0; }
.ax-notion-l { font-family: var(--sans); font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--c-c); }
.ax-notion b { font-family: var(--serif); font-size: 18px; color: var(--ink); }
.ax-quit { padding: 5px 11px; font-size: 12.5px; }
.ax-prog { height: 6px; border-radius: 6px; background: var(--paper-2); overflow: hidden; }
.ax-prog-fill { display: block; height: 100%; background: var(--c-c); border-radius: 6px; transition: width .25s ease; }
.ax-card { display: flex; flex-direction: column; gap: 12px; padding: 22px; }
.ax-q { margin: 0; font-family: var(--serif); font-size: clamp(19px, 3.2vw, 24px); line-height: 1.35; color: var(--ink); }
.ax-rep { width: 100%; resize: vertical; min-height: 150px; font-family: var(--sans); font-size: 15px; line-height: 1.6; }
.ax-card-foot { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.ax-mic { font-size: 13px; padding: 6px 12px; }
.ax-mic.is-on { color: var(--danger); border-color: var(--danger); }
.ax-tip { flex: 1 1 auto; }
.ax-toform { font-size: 12.5px; }
.ax-nav { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.ax-step { font-family: var(--sans); font-variant-numeric: tabular-nums; font-size: 13px; color: var(--ink-soft); }
.ax-vide { max-width: 680px; margin: 0 auto; text-align: center; padding: 18px; }
.ax-archive { max-width: 680px; margin: 24px auto 0; display: flex; flex-direction: column; gap: 9px; }
.ax-archive-t { font-size: 17px; margin: 0; }
.ax-arch-i { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 15px; }
.ax-arch-b { min-width: 0; }
.ax-arch-t { margin: 0 0 2px; font-family: var(--serif); font-size: 15px; }
.ax-arch-a { display: flex; gap: 4px; flex: 0 0 auto; }
@media (max-width: 560px) {
  .ax-nav { flex-wrap: wrap; }
  .ax-arch-i { flex-direction: column; align-items: flex-start; }
}
/* Flashcards : sélecteur « mode J » par paquet + badge session */
.fc-paquets-note { margin: -4px 0 4px; font-size: 12.5px; }
.fc-modej { padding: 4px 8px; font-size: 12px; max-width: 132px; }
.fc-pill-j { background: var(--react-surface); color: var(--react-on); }
.fc-pill-fsrs { background: var(--ok-surface); }
/* B58 · indice masqué (interleaving) + B59 undo + B98 « à relire » */
.il-disc-cache .il-disc-mat { opacity: .65; font-style: italic; }
.fc-undo { margin: 6px 0 0; }


/* ===== Lot 8 : la session mise en scène ===== */
/* La carte est l'objet central : élévation + soupçon d'accent de famille. */
.fc-session .fc-carte { box-shadow: var(--elev-2); border-color: color-mix(in srgb, var(--accent-line) 55%, var(--hairline)); }
/* Chaque carte ARRIVE (120 ms) ; le verso se révèle en fondu — jamais de 3D. */
.fc-carte-corps { animation: fc-arrive var(--dur-1) var(--ease); }
.fc-verso { animation: fc-revele var(--dur-1) var(--ease); }
@keyframes fc-arrive { from { opacity: 0; transform: translateY(4px); } }
@keyframes fc-revele { from { opacity: 0; transform: translateY(2px); } }
@media (prefers-reduced-motion: reduce) { .fc-carte-corps, .fc-verso { animation: none; } }
/* Le x destructif s'écarte du geste fréquent (Réviser). */
.fc-paquet-a .btn-del { margin-left: 8px; }
/* Paquets : empilement mobile propre (le titre ne colle plus au sélecteur). */
@media (max-width: 560px) {
  .fc-paquet { flex-direction: column; align-items: stretch; gap: 8px; }
  .fc-paquet-a { justify-content: flex-end; flex-wrap: wrap; }
}
/* L'undo est un vrai geste visible */
.fc-undo .btn svg { width: 15px; height: 15px; }
