/* devoirs/devoirs.css */
/* Aide aux devoirs : outils (dictee, tables, calcul mental, conjugaison). Prefixe devoirs-. Commandes : composants
   communs (.btn, .btn-matiere, .choix, .consent, .field : public/css/outils.css). Encre de la matiere : --m (sauge),
   --m-texte, --m-doux. Dans une fiche ou un cours, l'outil est une feuille ; sur une page d'outils, la section en est
   deja une, et porte deja le titre de l'outil (pas de feuille dans la feuille, pas de titre en double). */
.devoirs-outil{
  box-sizing:border-box;max-width:720px;margin:var(--s4) 0;padding:var(--s4) 0 0;
  background:none;color:var(--ink);border:0;border-top:2px solid var(--ink);border-radius:0;box-shadow:none;
  font:var(--t-corps)/1.5 var(--body);
}
:is(.section-pleine-corps,.outil-seul) > .devoirs-outil{max-width:none;margin:0;padding:0;border:0;background:none;box-shadow:none}
:is(.section-pleine-corps,.outil-seul) > .devoirs-outil > .devoirs-tete{display:none}
.devoirs-outil *,.devoirs-outil *::before,.devoirs-outil *::after{box-sizing:border-box}
.devoirs-outil [hidden]{display:none!important}
.devoirs-outil p{margin:0}

/* ---------- en-tete et reglages ---------- */
.devoirs-tete{margin-bottom:var(--s4)}
.devoirs-titre{margin:0;font:800 var(--t-titre-2)/1.15 var(--display);font-stretch:var(--large-titre);color:var(--ink)}
.devoirs-sous-titre{margin:var(--s1) 0 2px;font:700 var(--t-titre-3)/1.2 var(--display)}
.devoirs-aide{max-width:var(--mesure);margin-top:var(--s1);color:var(--muted);font-size:var(--t-petit)}
.devoirs-reglages{display:grid;gap:var(--s4);margin:var(--s2) 0 var(--s4)}
.devoirs-etiquette{display:block;margin:0 0 var(--s2);color:var(--ink);font:600 var(--t-corps)/1.35 var(--body)}
.devoirs-reglages>*,.devoirs-champ{min-width:0}
.devoirs-select{width:100%;max-width:100%;text-overflow:ellipsis}

/* ---------- rangees de boutons ---------- */
.devoirs-boutons{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s3)}
.devoirs-centre{justify-content:center;text-align:center}
.devoirs-petits{margin-top:var(--s2)}
/* Effacer ma memoire : deuxieme appui dans les 4 s, le bouton discret passe a l'encre de l'erreur */
.btn-lien.devoirs-confirmer{--btn-texte:var(--bad);--btn-bord:var(--bad);--btn-survol:var(--bad-soft);--btn-appui:var(--bad-soft);text-decoration:none}

/* ---------- zone de jeu : la question en grand, la reponse dans un champ a sa taille ---------- */
.devoirs-zone{margin-top:var(--s3);padding:var(--s4) var(--s3);border-radius:var(--r-bloc);background:var(--surface-2)}
.devoirs-statut{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s1) var(--s4);color:var(--muted);font-size:var(--t-petit);font-variant-numeric:tabular-nums}
p.devoirs-statut{display:block;margin-top:var(--s3)}
.devoirs-consigne{text-align:center;color:var(--muted);font-size:var(--t-petit)}
.devoirs-consigne strong{color:var(--ink);font-size:var(--t-grand)}
.devoirs-question{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--s3);margin:var(--s4) 0 var(--s2);
  font:800 clamp(2rem,1.7rem + 1.4vw,2.5rem)/1.2 var(--display);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.devoirs-question-longue{font:500 var(--t-titre-4)/1.45 var(--body);justify-content:flex-start}
.devoirs-avec-invite .devoirs-calcul{flex-basis:100%;text-align:center}
.devoirs-question-longue.devoirs-avec-invite .devoirs-calcul{text-align:left}
.devoirs-invite{font-weight:600}
.devoirs-reponse{width:3.2em;min-height:56px;padding:4px 8px;border:2px solid var(--champ-bord);border-radius:var(--r-champ);background:var(--surface);
  color:var(--ink);font:inherit;text-align:center;transition:border-color var(--d-court) var(--courbe-sortie),background-color var(--d-court) var(--courbe-sortie)}
.devoirs-reponse-large{width:5.5em}
.devoirs-question-longue .devoirs-reponse{font-size:var(--t-titre-3);min-height:50px}
.devoirs-reponse:focus-visible{border-color:var(--accent)}
/* Juste : la reponse prend l'encre du succes et se pose (une fois, 240 ms) */
.devoirs-juste .devoirs-reponse{border-color:var(--ok);background:var(--ok-soft);animation:devoirs-pose var(--d-moyen) var(--courbe-sortie)}
.devoirs-faux .devoirs-reponse{border-color:var(--bad);background:var(--bad-soft)}
@keyframes devoirs-pose{from{transform:scale(1.06)}to{transform:none}}
.devoirs-retour{min-height:1.5em;margin:var(--s2) 0;text-align:center;font-weight:600}
.devoirs-ok{color:var(--ok)}
.devoirs-non{color:var(--bad)}
.devoirs-expl{display:flex;gap:var(--s3);max-width:var(--mesure);margin:var(--s2) 0;font-size:var(--t-petit)}
.devoirs-expl::before{content:"";flex:none;width:10px;height:10px;margin-top:.5em;border-radius:2px;background:var(--m)}
/* Pave numerique a l'ecran (le clavier du telephone reste ferme) : des touches de 56 px */
.devoirs-pave{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s2);max-width:300px;margin:var(--s4) auto 0}
.devoirs-pave-4{grid-template-columns:repeat(4,1fr);max-width:340px}
.devoirs-touche{min-height:56px;border:1.5px solid var(--champ-bord);border-radius:var(--r-champ);background:var(--surface);color:var(--ink);
  font:700 var(--t-titre-3)/1 var(--body);font-variant-numeric:tabular-nums;cursor:pointer;transition:background-color var(--d-appui) var(--courbe-sortie),transform var(--d-appui) var(--courbe-sortie)}
.devoirs-touche:active{background:var(--m-doux);transform:scale(.96)}
.devoirs-touche-ok{background:var(--m);border-color:var(--m);color:var(--m-sur)}
.devoirs-touche-ok:active{background:var(--m)}
.devoirs-pave-4 .devoirs-touche-ok{grid-column:span 2}
.devoirs-pied{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s1) var(--s3);margin-top:var(--s3)}
.devoirs-revoir{color:var(--muted);font-size:var(--t-petit)}
.devoirs-bilan{margin-top:var(--s3);padding:var(--s4);border-radius:var(--r-bloc);background:var(--m-doux);text-align:center}
.devoirs-bilan-titre{margin-bottom:var(--s2);font:800 var(--t-titre-3)/1.2 var(--display)}
.devoirs-bilan .devoirs-boutons{justify-content:center}

/* ---------- conjugaison ---------- */
.devoirs-ligne-verbe{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--s2);margin:var(--s4) 0 var(--s2);font-size:var(--t-titre-3)}
.devoirs-pronom{font-weight:600}
.devoirs-verbe{flex:1 1 9em;max-width:16em;min-height:50px;font-size:var(--t-titre-3);text-align:left}
.devoirs-accents{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s1);margin:var(--s2) 0}
.devoirs-accent{min-width:44px;min-height:44px;border:1.5px solid var(--champ-bord);border-radius:var(--r-champ);background:var(--surface);color:var(--ink);
  font:500 var(--t-titre-4)/1 var(--body);cursor:pointer;transition:transform var(--d-appui) var(--courbe-sortie)}
.devoirs-accent:active{transform:scale(.94);background:var(--m-doux)}
.devoirs-details{margin-top:var(--s3)}
.devoirs-details summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:600;color:var(--m-texte)}
.devoirs-tableau{list-style:none;margin:var(--s1) 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--s1) var(--s4)}
.devoirs-tableau li{padding:var(--s1) var(--s2);border-radius:var(--r-petit)}
.devoirs-cette{background:var(--m-doux);font-weight:700}

/* ---------- dictee ---------- */
.devoirs-liste{display:grid;gap:var(--s2)}
.devoirs-mots{margin:var(--s3) 0 var(--s1);padding:var(--s3);border-radius:var(--r-bloc);background:var(--m-doux)}
.devoirs-mots-liste{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s4);margin:0;padding:0;list-style:none;font-size:var(--t-grand);font-weight:600}
.devoirs-mots-aide{margin-top:var(--s1);color:var(--muted);font-size:var(--t-petit)}
.devoirs-item{display:flex;justify-content:space-between;align-items:center;gap:var(--s3);width:100%;min-height:56px;padding:var(--s2) var(--s4);text-align:left;
  border:1.5px solid var(--champ-bord);border-radius:var(--r-champ);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;
  transition:border-color var(--d-court) var(--courbe-sortie),transform var(--d-appui) var(--courbe-sortie)}
@media (hover:hover) and (pointer:fine){ .devoirs-item:hover{border-color:var(--ink)} }
.devoirs-item:active{transform:scale(.985)}
.devoirs-item-titre{font-weight:600}
.devoirs-item-info{flex:none;color:var(--muted);font-size:var(--t-petit);font-variant-numeric:tabular-nums}
.devoirs-nav{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s2);margin-top:var(--s3)}
.devoirs-nav .btn{padding-inline:6px}
.devoirs-indice{margin-top:var(--s3);text-align:center;color:var(--muted);font-size:var(--t-petit)}
.devoirs-saisie{display:block;width:100%;min-height:190px;padding:var(--s3) var(--s4);border:2px solid var(--champ-bord);border-radius:var(--r-champ);background:var(--surface);
  color:var(--ink);font:var(--t-grand)/1.7 var(--body);resize:vertical}
.devoirs-saisie:focus-visible{border-color:var(--accent)}
.devoirs-dictee .choix-titre{margin-top:var(--s4)}
.devoirs-alerte{margin:var(--s3) 0;padding:var(--s3) var(--s4);border-radius:var(--r-champ);background:var(--warn-soft)}
.devoirs-alerte p+p,.devoirs-alerte .btn{margin-top:var(--s2)}
.devoirs-alerte-titre{font-weight:700}
.devoirs-texte-adulte{margin-top:var(--s3);padding:var(--s3);border-radius:var(--r-champ);background:var(--surface);white-space:pre-line}
.devoirs-resultat{margin-top:var(--s4)}
.devoirs-note{font:800 var(--t-titre-0)/1 var(--display);font-stretch:var(--large-titre);color:var(--ink);font-variant-numeric:tabular-nums}
.devoirs-note small{font-size:var(--t-titre-3);color:var(--muted)}
.devoirs-resume{margin:var(--s2) 0 var(--s3);font-weight:600}
.devoirs-corrige{padding:var(--s3) var(--s4);border-radius:var(--r-bloc);background:var(--surface-2);font-size:var(--t-grand);line-height:2.5;overflow-wrap:anywhere}
.devoirs-mot-juste{color:var(--ok)}
.devoirs-ecrit{color:var(--bad);text-decoration:underline wavy var(--bad);text-decoration-thickness:1.5px;text-underline-offset:5px}
.devoirs-mot-faute ruby{ruby-position:over}
.devoirs-mot-faute rt{font-size:var(--t-legende);font-weight:700;color:var(--ok);letter-spacing:.01em}
.devoirs-mot-oubli{padding:0 3px;border-bottom:2px dashed var(--bad);border-radius:var(--r-petit);background:var(--ok-soft);color:var(--ok);font-weight:600}
.devoirs-mot-entrop{color:var(--bad);text-decoration:line-through 2px}
.devoirs-legende{margin-top:var(--s2);color:var(--muted);font-size:var(--t-legende);line-height:1.9}
.devoirs-legende .devoirs-ecrit{text-underline-offset:3px}
.devoirs-fautes{margin:var(--s2) 0 0;padding-left:20px;font-size:var(--t-petit)}
.devoirs-fautes li+li{margin-top:var(--s1)}
.devoirs-source{margin-top:var(--s3);color:var(--muted);font-size:var(--t-legende);font-style:italic}

@media (max-width:420px){
  .devoirs-outil{padding:var(--s4) var(--s3)}
  .devoirs-zone{padding:var(--s3) var(--s2)}
}
@media (prefers-reduced-motion: reduce){ .devoirs-juste .devoirs-reponse{animation:none} }
@media print{ .devoirs-pave,.devoirs-accents,.devoirs-boutons,.devoirs-nav{display:none} }
.devoirs-colle{margin-right:-6px}

/* devoirs/fiche-quiz.css */
/* Aide aux devoirs : quiz en bas des fiches methode (quiz-fiche.js). Une reponse = une ligne-bouton au dessin des
   pastilles communes (.choix-btn : bordure, rayon, appui) ; juste et faux prennent les encres d'etat du theme. */
.fq{margin-top:var(--s6)}
.fq-aide{margin:var(--s1) 0 0;color:var(--muted);font-size:var(--t-petit)}
.fq-liste{list-style:none;margin:var(--s3) 0 0;padding:0;display:grid;gap:var(--s4)}
.fq-q{padding:var(--s3) 0 0;border:0;border-top:1px solid var(--line);border-radius:0;background:none}
.fq-enonce{margin:0 0 var(--s3);font-weight:600}
.fq-num{display:block;margin-bottom:2px;color:var(--muted);font:600 var(--t-legende)/1.3 var(--body)}
.fq-choix{display:grid;gap:var(--s2)}
.fq-btn{display:flex;align-items:center;gap:var(--s3);width:100%;min-height:48px;padding:var(--s2) var(--s3);text-align:left;border:1.5px solid var(--champ-bord);
  border-radius:var(--r-champ);background:var(--surface);color:var(--ink);font:inherit;line-height:1.35;cursor:pointer;touch-action:manipulation;
  transition:border-color var(--d-court) var(--courbe-sortie),background-color var(--d-court) var(--courbe-sortie),transform var(--d-appui) var(--courbe-sortie)}
@media (hover:hover) and (pointer:fine){ .fq-btn:hover:not(:disabled){border-color:var(--ink)} }
.fq-btn:active:not(:disabled){transform:scale(.985)}
.fq-btn:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.fq-btn:disabled{cursor:default;opacity:1;color:var(--ink)}
.fq-lettre{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:var(--r-petit);border:1.5px solid var(--champ-bord);font:700 var(--t-legende)/1 var(--body)}
.fq-texte{flex:1;min-width:0;overflow-wrap:anywhere}
.fq-marque{flex:none;font:700 var(--t-legende)/1.3 var(--body)}
.fq-btn.fq-juste{border-color:var(--ok);background:var(--ok-soft);box-shadow:inset 0 -4px 0 var(--ok)}
.fq-btn.fq-juste .fq-marque{color:var(--ok)}
.fq-btn.fq-juste .fq-lettre{border-color:var(--ok);background:var(--ok);color:var(--dot-ink)}
.fq-btn.fq-faux{border-color:var(--bad);background:var(--bad-soft)}
.fq-btn.fq-faux .fq-marque{color:var(--bad)}
.fq-retour:empty{display:none}
.fq-retour{margin-top:var(--s3);padding:var(--s3);border-radius:var(--r-champ);background:var(--ok-soft);font-size:var(--t-petit)}
.fq-retour.fq-non{background:var(--bad-soft)}
.fq-retour p{margin:0}
.fq-retour p+p{margin-top:var(--s1)}
.fq-verdict{font-weight:700}
.fq-bilan{margin-top:var(--s4);padding:var(--s4);border-radius:var(--r-bloc);background:var(--m-doux);color:var(--ink);text-align:center}
.fq-bilan p{margin:0 0 var(--s2)}
.fq-score{font:800 var(--t-titre-3)/1.2 var(--display);font-variant-numeric:tabular-nums}
.fq-recommencer{margin-top:var(--s2)}
@media (max-width:420px){ .fq-q{padding:var(--s3)} }
@media print{ .fq{display:none} }

/* devoirs/fiches.css */
/* Fiches methode rendues hors d'un cours (page /devoirs/fiches/<slug>, fiche chargee dans un onglet ou un outil) :
   memes tableaux que dans les cours (course.css, .lesson table), qui ne s'appliquent qu'a l'interieur de .lesson */
.fiche-methode table{border-collapse:collapse;width:100%;font-size:15px}
.fiche-methode th,.fiche-methode td{border:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top}
.fiche-methode th{background:var(--surface-2);font-weight:700}
.fiche-methode caption{caption-side:bottom;padding-top:6px;font-size:13px;color:var(--muted);text-align:left}
.fiche-methode .fig .scroll,.fiche-methode .scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
@media print{ .fiche-methode th{background:none} .fiche-methode table{font-size:10pt} }
/* Schemas des fiches (SVG dans la page) : couleurs qui suivent le theme ; les attributs fill/stroke des fichiers
   restent en secours quand cette feuille n'est pas chargee. sv-a : trait d'accent ; sv-af : remplissage d'accent ;
   sv-at : texte d'accent ; sv-z : zone claire d'accent ; sv-z2 : zone claire verte ; sv-ok : trait vert */
.fiche-methode svg .sv-a{stroke:var(--accent)}
.fiche-methode svg .sv-af,.fiche-methode svg .sv-at{fill:var(--accent)}
.fiche-methode svg .sv-z{fill:var(--accent);fill-opacity:.16}
.fiche-methode svg .sv-z2{fill:var(--ok);fill-opacity:.22}
.fiche-methode svg .sv-zl{fill:var(--accent);fill-opacity:.07}
.fiche-methode svg .sv-ok{stroke:var(--ok)}
.fiche-methode svg .sv-okf{fill:var(--ok)}
.fiche-methode svg text{font-family:inherit}

/* devoirs/outils-figures.css */
/* Aide aux devoirs : outils Fractions (fr-) et Geometrie (geo-, dv-). Couleurs : roles du theme et encre de la matiere ;
   commandes communes (.btn, .field : public/css/outils.css). Les dessins (barres, disques, figures) gardent leurs encres. */
.devoirs-dessin{display:block;width:100%;height:auto;color:var(--ink);overflow:visible}

/* ---------- fractions ---------- */
.fr-saisie{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--s3) var(--s5);margin:var(--s2) 0 var(--s1)}
.fr-editeur{display:grid;justify-items:center;gap:var(--s2);padding:var(--s3);border-radius:var(--r-bloc);background:var(--surface-2)}
.fr-compteur{display:flex;align-items:center;gap:var(--s2)}
.fr-nombre{width:3em;min-height:48px;padding:4px;border:2px solid var(--champ-bord);border-radius:var(--r-champ);background:var(--surface);color:var(--ink);
  font:800 var(--t-titre-2)/1 var(--display);font-variant-numeric:tabular-nums;text-align:center}
.fr-nombre:focus-visible{border-color:var(--accent)}
.fr-trait{width:100%;min-width:150px;border-top:3px solid var(--ink);border-radius:var(--r-petit)}
.fr-et{font-weight:600;color:var(--muted)}
.fr-sortie{margin-top:var(--s3)}
.fr-grand{margin:var(--s3) 0;text-align:center;font:800 var(--t-titre-2)/1.2 var(--display);font-variant-numeric:tabular-nums;white-space:pre-wrap;overflow-wrap:anywhere}
.fr-figure{margin:var(--s3) auto;max-width:420px;text-align:center}
.fr-figure figcaption{margin-top:var(--s1);font-weight:600;font-size:var(--t-petit)}
.fr-barres{max-height:200px}
.fr-disques{max-height:120px}
.fr-part{stroke:currentColor;stroke-width:1.5;stroke-linejoin:round}
.fr-p1{fill:var(--accent)}
.fr-p2{fill:var(--m)}
.fr-vide{fill:var(--surface)}
.fr-etapes{margin:var(--s3) 0 0;padding-left:22px;font-size:var(--t-corps)}
.fr-etapes li+li{margin-top:var(--s1)}

/* ---------- geometrie ---------- */
.geo-champs{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--s3);margin:var(--s1) 0 var(--s2)}
.geo-champ{min-width:0}
.geo-avec-unite{display:flex;align-items:center;gap:var(--s2)}
.geo-nombre{width:100%;max-width:8em;font-variant-numeric:tabular-nums}
.geo-unite{flex:none;color:var(--muted);font-weight:600}
.geo-curseur{display:block;width:100%;height:44px;margin:var(--s1) 0}
.geo-sortie{margin-top:var(--s3)}
.geo-figure{margin:var(--s3) auto var(--s2);max-width:440px}
.geo-dessin{max-height:270px}
.dv-forme{fill:var(--m-doux);stroke:currentColor;stroke-width:2;stroke-linejoin:round}
.dv-cote{stroke:var(--accent);stroke-width:2.5;stroke-linecap:round}
.dv-cote-fort{stroke:currentColor;stroke-width:3;stroke-linecap:round}
.dv-arc{fill:none;stroke:var(--accent);stroke-width:2.5}
.dv-hauteur{stroke:var(--accent);stroke-width:2;stroke-dasharray:6 4}
.dv-pointille{stroke:currentColor;stroke-width:1.5;stroke-dasharray:4 4;opacity:.7}
.dv-trait-fin{fill:none;stroke:currentColor;stroke-width:1.5}
.dv-point{fill:currentColor}
.dv-texte{fill:currentColor;font:600 15px var(--body)}
.dv-texte-fort{font-size:17px;fill:var(--accent)}
.dv-texte-h{fill:var(--accent)}
.geo-resultats{display:grid;gap:var(--s3);grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));margin-top:var(--s2)}
.geo-resultat{padding:var(--s3) var(--s4);border-radius:var(--r-bloc);background:var(--surface-2)}
.geo-res-titre{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s3);color:var(--m-texte);font:700 var(--t-petit)/1.3 var(--body)}
.geo-res-titre strong{color:var(--ink);font:800 var(--t-titre-3)/1.1 var(--display);font-variant-numeric:tabular-nums}
.geo-lignes{list-style:none;margin:var(--s2) 0 0;padding:0;font-size:var(--t-petit);overflow-wrap:anywhere}
.geo-lignes li+li{margin-top:2px}
.geo-nature{margin-top:var(--s2);font-weight:600}
@media (max-width:420px){ .fr-trait{min-width:130px} }
@media print{ .fr-compteur .btn,.geo-curseur{display:none} }

/* devoirs/parcours.css */
/* Aide aux devoirs : parcours par classe (/devoirs/parcours, lib/devoirs-parcours-vue.js), refait le 06/10 (pages de
   lecture) : les classes en pastilles de choix (composants/choix.css), chaque matiere en liste numerotee sur filets (numero a l'encre de la
   matiere, toute la ligne se touche), un cadenas discret pour ce qui est reserve. Jetons du site seulement. */
.pc-classes{margin:0 0 var(--s4)}
.pc-note{display:flex;gap:var(--s2);align-items:baseline;margin:0 0 var(--s5);font-size:var(--t-petit);color:var(--muted);max-width:var(--mesure)}
.pc-note .ic{flex:none;width:15px;height:15px;transform:translateY(2px)}

/* Une matiere : titre sur filet d'encre, puis la liste dans l'ordre de l'annee */
.pc-matiere{margin-top:var(--s8);scroll-margin-top:140px}
.pc-matiere > h2{padding-top:var(--s4);border-top:2px solid var(--ink);margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--s1) var(--s3)}
.pc-compte{font:600 var(--t-petit)/1.2 var(--body);color:var(--muted)}
.pc-matiere > .muted{margin:var(--s2) 0 0}
/* Index numerote : composant .index (composants/index.css) ; ici les colonnes (numero aligne a droite, titre) */
.pc-etape{display:grid;grid-template-columns:2.2em minmax(0,1fr);gap:var(--s3);align-items:baseline;min-height:56px}
.pc-n{text-align:right}
.pc-info{display:inline;margin-left:var(--s2);font-size:var(--t-legende);color:var(--muted)}
.pc-info:empty{display:none}
.pc-reserve{display:inline-flex;vertical-align:-2px;color:var(--muted)}
.pc-reserve .ic{width:15px;height:15px}
.pc-jeux{margin-top:var(--s3)}

/* Accueil des parcours : une ligne par classe, son nom en grand */
.pc-cycle{margin-top:var(--s7)}
.pc-cycle > h2{padding-top:var(--s4);border-top:2px solid var(--ink);margin:0}
.pc-classes-liste{margin-top:var(--s2)}
.pc-classe{display:grid;grid-template-columns:minmax(5.5rem,auto) minmax(0,1fr);gap:var(--s2) var(--s5);align-items:baseline;padding-block:var(--s4)}
:root .pc-classe-lien{font:800 var(--t-titre-2)/1 var(--display);font-stretch:var(--large-titre);color:var(--m-texte)}
.pc-classe-resume{margin:0;color:var(--ink);font-size:var(--t-petit);line-height:1.45}
@media (max-width:599.98px){ .pc-classe{grid-template-columns:minmax(0,1fr)} }

@media print{ .pc-etape{min-height:0} }

/* devoirs/suivi.css */
/* Aide aux devoirs, pages du socle 3b : fiches methode (liste et fiche), espace de l'eleve, suivi de l'intervenant.
   Refait le 06/10 (pages de lecture) : filtres en etiquettes de 44 px, chaque matiere en index (une ligne par fiche),
   bouton « Noter un devoir » lisible (le style des resumes de feuille le rendait illisible). Jetons du site. */
.aide-filtres{margin:0 0 var(--s4)}
/* Filtres : pastilles de choix du systeme (composants/choix.css), le libelle du groupe en tete de ligne */
.aide-filtres .choix{align-items:center;margin:0 0 var(--s2)}
.aide-filtre-nom{min-width:4.5em;color:var(--muted);font:600 var(--t-petit)/1.3 var(--body)}

/* Liste des fiches methode : une matiere = un titre sur filet et un index */
.fm-matiere{margin-top:var(--s8);scroll-margin-top:140px}
.fm-matiere > h2{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--s1) var(--s3);padding-top:var(--s4);border-top:2px solid var(--ink);margin:0}
.fm-compte{font:600 var(--t-petit)/1.2 var(--body);color:var(--muted)}
/* Index des fiches : composant .index (composants/index.css) ; ici les colonnes (titre, classes et marque a droite) */
.fm-ligne{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s1) var(--s5);align-items:baseline}
.fm-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--s2);margin:0;font-size:var(--t-legende);color:var(--muted);font-variant-numeric:tabular-nums}
@media (max-width:599.98px){ .fm-ligne{grid-template-columns:minmax(0,1fr)} .fm-meta{justify-content:flex-start} }
.fm-liens{display:flex;flex-wrap:wrap;gap:0 var(--s5);margin-top:var(--s7);padding-top:var(--s3);border-top:1px solid var(--line)}
.fm-liens a{display:inline-flex;align-items:center;min-height:44px;font-weight:600;color:var(--m-texte)}
.fm-voisines{margin-top:var(--s7);max-width:var(--mesure)}
.fm-voisines > h2{margin:0 0 var(--s2)}

/* Espace de l'eleve (cahier de textes, points, photo, resultats) */
.aide-grille{align-items:start}
.aide-grille > *{margin:0}
.aide-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.aide-travail{overflow-wrap:anywhere}
.aide-semaines{display:flex;flex-wrap:wrap;gap:8px}
.aide-ajout{margin-top:12px}
.aide-ajout summary::-webkit-details-marker{display:none}
.aide-ajout[open] summary{margin-bottom:10px}
.aide-photos{list-style:none;padding:0;margin:8px 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.aide-photos li{display:flex;flex-direction:column;gap:4px}
.aide-photos img{width:100%;height:auto;border-radius:var(--r-champ)}
.aide-resultats li{padding:4px 0;border-bottom:1px solid var(--line)}
.aide-periode{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.aide-caf td{white-space:nowrap}
.aide-caf tr.is-total td{font-weight:700;background:var(--surface-2)}
.fiche-page{margin-top:var(--s2)}
