/* ============================================================
   SES Exercices — feuille de style unique
   1. Variables   2. Base   3. Layout   4. Composants
   5. Exercices   6. Recherche / fiches   7. Impression
   ============================================================ */

/* -------------------------------------------------- 1. Variables */
:root {
  --encre: #16202b;
  --encre-douce: #4a5a6a;
  --encre-tres-douce: #7b8a99;
  --fond: #ffffff;
  --fond-doux: #f5f7fa;
  --fond-carte: #ffffff;
  --bordure: #dde3ea;
  --bordure-forte: #c3ccd6;

  --accent: #1d4ed8;
  --accent-fonce: #1739a8;
  --accent-doux: #eaf0ff;

  --succes: #17795e;
  --succes-doux: #e6f5f0;
  --erreur: #b42318;
  --erreur-doux: #fdeceb;
  --attention: #a35a00;
  --attention-doux: #fdf3e6;

  --r-1: 6px;
  --r-2: 10px;
  --r-3: 16px;

  --e-1: 0.25rem;
  --e-2: 0.5rem;
  --e-3: 0.75rem;
  --e-4: 1rem;
  --e-5: 1.5rem;
  --e-6: 2rem;
  --e-7: 3rem;
  --e-8: 4rem;

  --largeur: 1140px;
  --ombre: 0 1px 2px rgb(16 24 40 / 6%), 0 4px 14px rgb(16 24 40 / 5%);
  --police: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --police-titre: Georgia, "Iowan Old Style", "Times New Roman", serif;
}

@media (prefers-color-scheme: dark) {
  :root {
    --encre: #e8edf3;
    --encre-douce: #a9b6c4;
    --encre-tres-douce: #7d8b9a;
    --fond: #11171e;
    --fond-doux: #161d26;
    --fond-carte: #1a222c;
    --bordure: #2a3543;
    --bordure-forte: #3a4757;
    --accent: #7ea4ff;
    --accent-fonce: #a3bfff;
    --accent-doux: #1b2740;
    --succes: #56c9a4;
    --succes-doux: #14302a;
    --erreur: #f28b82;
    --erreur-doux: #331d1c;
    --attention: #e0a352;
    --attention-doux: #2e2413;
    --ombre: 0 1px 2px rgb(0 0 0 / 40%);
  }
}

/* ------------------------------------------------------- 2. Base */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: var(--police);
  font-size: 1rem;
  line-height: 1.6;
  color: var(--encre);
  background: var(--fond);
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 { font-family: var(--police-titre); line-height: 1.25; margin: 0 0 var(--e-3); font-weight: 600; }
h1 { font-size: clamp(1.75rem, 1.2rem + 2.2vw, 2.6rem); letter-spacing: -0.01em; }
h2 { font-size: clamp(1.35rem, 1.1rem + 1.1vw, 1.75rem); }
h3 { font-size: 1.15rem; }
h4 { font-size: 1rem; font-family: var(--police); }

p, ul, ol { margin: 0 0 var(--e-4); }
ul, ol { padding-left: 1.25rem; }
li { margin-bottom: var(--e-1); }

a { color: var(--accent); text-decoration-thickness: 1px; text-underline-offset: 2px; }
a:hover { color: var(--accent-fonce); }

code { font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-size: 0.9em; background: var(--fond-doux); padding: 0.1em 0.35em; border-radius: var(--r-1); }

img { max-width: 100%; height: auto; }

:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: var(--r-1); }

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

.saut-contenu {
  position: absolute; left: -9999px; top: 0; z-index: 100;
  background: var(--accent); color: #fff; padding: var(--e-2) var(--e-4);
}
.saut-contenu:focus { left: var(--e-4); top: var(--e-2); }

/* ----------------------------------------------------- 3. Layout */
.conteneur { width: min(100% - 2rem, var(--largeur)); margin-inline: auto; }

main { min-height: 60vh; padding-bottom: var(--e-8); }

.section { margin-block: var(--e-7); }
.section > h2 { padding-bottom: var(--e-2); border-bottom: 1px solid var(--bordure); }

.entete-page { padding-block: var(--e-6) var(--e-5); }
.entete-page .eyebrow, .carte__eyebrow, .eyebrow {
  display: inline-block; font-size: 0.78rem; font-weight: 600; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--encre-tres-douce); margin-bottom: var(--e-2);
}
.chapeau { font-size: 1.12rem; color: var(--encre-douce); max-width: 68ch; }
.sous-titre { margin-top: var(--e-5); }

.mise-en-page { display: grid; gap: var(--e-6); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 62rem) {
  .mise-en-page { grid-template-columns: minmax(0, 1fr) 20rem; align-items: start; }
  .colonne-laterale { position: sticky; top: var(--e-4); }
}

.grille { display: grid; gap: var(--e-4); }
.grille--2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); }
.grille--3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); }

/* En-tête du site */
.entete { border-bottom: 1px solid var(--bordure); background: var(--fond); position: sticky; top: 0; z-index: 20; }
.entete__interieur { display: flex; align-items: center; gap: var(--e-4); min-height: 4rem; flex-wrap: wrap; }
.logo { font-family: var(--police-titre); font-size: 1.15rem; font-weight: 700; color: var(--encre); text-decoration: none; margin-right: auto; }
.nav { display: flex; align-items: center; gap: var(--e-4); }
.nav a { color: var(--encre-douce); text-decoration: none; font-size: 0.95rem; font-weight: 500; padding-block: var(--e-2); }
.nav a:hover { color: var(--accent); }
.nav__cta {
  background: var(--accent); color: #fff !important; padding: var(--e-2) var(--e-4) !important;
  border-radius: var(--r-2); display: inline-flex; align-items: center; gap: var(--e-2);
}
.nav__cta:hover { background: var(--accent-fonce); }
.panier-compteur {
  background: rgb(255 255 255 / 25%); border-radius: 999px; padding: 0 0.45rem;
  font-size: 0.75rem; font-weight: 700; line-height: 1.4;
}
.burger { display: none; background: none; border: 0; padding: var(--e-2); cursor: pointer; }
.burger span { display: block; width: 22px; height: 2px; background: var(--encre); margin: 4px 0; border-radius: 2px; }

@media (max-width: 48rem) {
  .burger { display: block; }
  .nav { display: none; width: 100%; flex-direction: column; align-items: stretch; padding-bottom: var(--e-3); }
  .nav.ouvert { display: flex; }
  .nav__cta { justify-content: center; }
}

/* Fil d'Ariane */
.ariane { border-bottom: 1px solid var(--bordure); background: var(--fond-doux); font-size: 0.85rem; }
.ariane ol { display: flex; flex-wrap: wrap; gap: var(--e-2); list-style: none; padding: var(--e-3) 1rem; margin: 0 auto; }
.ariane li + li::before { content: "›"; margin-right: var(--e-2); color: var(--encre-tres-douce); }
.ariane a { color: var(--encre-douce); text-decoration: none; }
.ariane [aria-current] { color: var(--encre-tres-douce); }

/* Pied de page */
.pied { border-top: 1px solid var(--bordure); background: var(--fond-doux); padding-top: var(--e-6); margin-top: var(--e-8); font-size: 0.92rem; }
.pied__grille { display: grid; gap: var(--e-5); grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); }
.pied__titre { font-weight: 600; margin-bottom: var(--e-2); }
.pied__texte { color: var(--encre-douce); }
.pied ul { list-style: none; padding: 0; }
.pied a { color: var(--encre-douce); text-decoration: none; }
.pied a:hover { color: var(--accent); text-decoration: underline; }
.pied__bas { border-top: 1px solid var(--bordure); margin-top: var(--e-5); padding-block: var(--e-4); color: var(--encre-tres-douce); font-size: 0.82rem; }

/* -------------------------------------------------- 4. Composants */
.hero { background: linear-gradient(180deg, var(--accent-doux), transparent); padding-block: var(--e-8) var(--e-6); }
.hero h1 { max-width: 20ch; }
.hero__accroche { font-size: 1.15rem; color: var(--encre-douce); max-width: 62ch; }
.hero__recherche { display: flex; gap: var(--e-2); max-width: 40rem; margin-block: var(--e-5); flex-wrap: wrap; }
.hero__recherche input {
  flex: 1 1 16rem; padding: var(--e-3) var(--e-4); font-size: 1rem;
  border: 1px solid var(--bordure-forte); border-radius: var(--r-2);
  background: var(--fond-carte); color: var(--encre);
}
.hero__stats { color: var(--encre-douce); font-size: 0.95rem; }
.hero__stats strong { color: var(--encre); }

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--e-2);
  padding: var(--e-2) var(--e-4); font: inherit; font-size: 0.94rem; font-weight: 500;
  border: 1px solid var(--bordure-forte); border-radius: var(--r-2);
  background: var(--fond-carte); color: var(--encre); cursor: pointer;
  text-decoration: none; transition: background .15s, border-color .15s;
}
.btn:hover { background: var(--fond-doux); border-color: var(--encre-tres-douce); color: var(--encre); }
.btn--primaire { background: var(--accent); border-color: var(--accent); color: #fff; }
.btn--primaire:hover { background: var(--accent-fonce); border-color: var(--accent-fonce); color: #fff; }
.btn--fantome { background: transparent; border-color: transparent; color: var(--encre-douce); padding-inline: var(--e-2); }
.btn--fantome:hover { background: var(--fond-doux); }
.btn--mini { padding: 0.15rem var(--e-2); font-size: 0.8rem; }
.btn[data-actif="1"] { background: var(--succes-doux); border-color: var(--succes); color: var(--succes); }

.carte {
  display: block; padding: var(--e-5); background: var(--fond-carte);
  border: 1px solid var(--bordure); border-radius: var(--r-3);
  text-decoration: none; color: inherit; box-shadow: var(--ombre);
  transition: transform .15s, border-color .15s;
}
a.carte:hover { border-color: var(--accent); transform: translateY(-2px); }
.carte__titre { margin-bottom: var(--e-2); }
.carte__texte { color: var(--encre-douce); font-size: 0.95rem; margin-bottom: var(--e-3); }
.carte__chiffres { font-size: 0.85rem; color: var(--encre-tres-douce); margin: 0; }

.liste-chapitres { list-style: none; padding: 0; }
.liste-chapitres li { display: flex; align-items: baseline; gap: var(--e-3); padding: var(--e-2) 0; border-bottom: 1px solid var(--bordure); }
.liste-chapitres a { flex: 1; text-decoration: none; color: var(--encre); }
.liste-chapitres a:hover { color: var(--accent); text-decoration: underline; }
.liste-chapitres .num { display: inline-block; min-width: 1.6rem; color: var(--encre-tres-douce); font-variant-numeric: tabular-nums; }
.compte { font-size: 0.8rem; color: var(--encre-tres-douce); background: var(--fond-doux); border-radius: 999px; padding: 0.05rem 0.5rem; }

.liste-exercices { list-style: none; padding: 0; }
.liste-exercices__item {
  display: flex; align-items: center; gap: var(--e-3); flex-wrap: wrap;
  padding: var(--e-3) 0; border-bottom: 1px solid var(--bordure);
}
.liste-exercices__item > a { flex: 1 1 18rem; text-decoration: none; color: var(--encre); font-weight: 500; }
.liste-exercices__item > a:hover { color: var(--accent); text-decoration: underline; }
.tags { display: flex; gap: var(--e-2); flex-wrap: wrap; }

.badge {
  display: inline-block; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.02em;
  padding: 0.1rem 0.5rem; border-radius: 999px;
  background: var(--fond-doux); color: var(--encre-douce); border: 1px solid var(--bordure);
}
.badge--type { background: var(--accent-doux); color: var(--accent); border-color: transparent; }
.badge--cat { background: var(--encre); color: var(--fond); border-color: transparent; }
.badge--cat-vocabulaire { background: #6d4aff1a; color: #5b34e0; border-color: transparent; }
.badge--cat-comprehension { background: #1d4ed81a; color: #1d4ed8; border-color: transparent; }
.badge--cat-savoir-faire { background: #0e79911a; color: #0e7991; border-color: transparent; }
.badge--cat-analyse { background: #a3560014; color: #a35600; border-color: transparent; }
.badge--cat-redaction { background: #b4231814; color: #b42318; border-color: transparent; }
@media (prefers-color-scheme: dark) {
  .badge--cat-vocabulaire { background: #2a2145; color: #b6a2ff; }
  .badge--cat-comprehension { background: #1b2740; color: #7ea4ff; }
  .badge--cat-savoir-faire { background: #10333a; color: #63c8dd; }
  .badge--cat-analyse { background: #2e2413; color: #e0a352; }
  .badge--cat-redaction { background: #331d1c; color: #f28b82; }
}
.badge--diff-1 { background: var(--succes-doux); color: var(--succes); border-color: transparent; }
.badge--diff-2 { background: var(--attention-doux); color: var(--attention); border-color: transparent; }
.badge--diff-3 { background: var(--erreur-doux); color: var(--erreur); border-color: transparent; }

.notion {
  display: inline-block; font-size: 0.8rem; padding: 0.1rem 0.5rem; margin: 0.1rem 0;
  background: var(--fond-doux); border: 1px solid var(--bordure); border-radius: var(--r-1); color: var(--encre-douce);
}

.encart { background: var(--fond-doux); border: 1px solid var(--bordure); border-radius: var(--r-3); padding: var(--e-4); margin-bottom: var(--e-4); }
.encart__titre { font-weight: 600; font-size: 0.9rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--encre-tres-douce); margin-bottom: var(--e-3); }
.encart__objectifs { font-size: 0.92rem; color: var(--encre-douce); margin: 0; padding-left: 1.1rem; }
.encart__objectifs li { margin-bottom: var(--e-2); }
.encart__texte { font-size: 0.92rem; color: var(--encre-douce); }
.encart__liens { list-style: none; padding: 0; margin: 0; font-size: 0.92rem; }
.encart__liens li { margin-bottom: var(--e-2); }
.encart__liens span { display: block; color: var(--encre-tres-douce); font-size: 0.85rem; }

.sommaire { background: var(--fond-doux); border-radius: var(--r-2); padding: var(--e-3) var(--e-4); margin-bottom: var(--e-5); }
.sommaire__titre { font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--encre-tres-douce); margin-bottom: var(--e-2); }
.sommaire ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: var(--e-3); }
.sommaire li { display: flex; align-items: center; gap: var(--e-1); margin: 0; }

.lien-fleche { font-weight: 500; text-decoration: none; }
.lien-fleche::after { content: " →"; }
.lien-fleche:hover { text-decoration: underline; }

.affiliation { border: 1px solid var(--bordure); border-radius: var(--r-3); padding: var(--e-4); margin-block: var(--e-6); background: var(--fond-carte); }
.affiliation__bloc { display: flex; gap: var(--e-4); align-items: flex-start; margin-bottom: var(--e-3); }
.affiliation__titre { font-weight: 600; margin-bottom: var(--e-1); }
.affiliation__texte { font-size: 0.92rem; color: var(--encre-douce); margin-bottom: var(--e-3); }
.affiliation__mention { font-size: 0.78rem; color: var(--encre-tres-douce); margin: 0; }
.affiliation__image { border-radius: var(--r-1); }

.texte { max-width: 72ch; padding-block: var(--e-6); }
.texte h2 { margin-top: var(--e-6); }
.note { font-size: 0.9rem; color: var(--encre-tres-douce); border-left: 3px solid var(--bordure-forte); padding-left: var(--e-3); }
.vide { color: var(--encre-tres-douce); font-style: italic; }
.actions-page { display: flex; gap: var(--e-3); flex-wrap: wrap; }

/* -------------------------------------------------- 5. Exercices */
.exercice {
  background: var(--fond-carte); border: 1px solid var(--bordure);
  border-radius: var(--r-3); padding: var(--e-5); margin-block: var(--e-5);
}
.exercice__tete { margin-bottom: var(--e-4); }
.exercice__titre { margin-bottom: var(--e-2); }
.exercice__meta { display: flex; gap: var(--e-2); flex-wrap: wrap; margin: 0; }
.exercice__consigne { font-weight: 500; color: var(--encre-douce); border-left: 3px solid var(--accent); padding-left: var(--e-3); }

.questions { list-style: decimal; padding-left: 1.5rem; margin: 0; counter-reset: none; }
.question { margin-bottom: var(--e-5); }
.question__enonce { font-weight: 500; margin-bottom: var(--e-3); }

.choix-liste { list-style: none; padding: 0; margin: 0 0 var(--e-3); display: grid; gap: var(--e-2); }
.choix-liste--vf { grid-template-columns: repeat(2, minmax(0, 8rem)); }
.choix label {
  display: flex; gap: var(--e-3); align-items: flex-start; cursor: pointer;
  padding: var(--e-2) var(--e-3); border: 1px solid var(--bordure); border-radius: var(--r-2);
  transition: background .12s, border-color .12s;
}
.choix label:hover { background: var(--fond-doux); }
.choix input { margin-top: 0.28rem; flex-shrink: 0; accent-color: var(--accent); }

.choix--juste label { background: var(--succes-doux); border-color: var(--succes); }
.choix--faux label { background: var(--erreur-doux); border-color: var(--erreur); }
.choix--attendu label { border-color: var(--succes); border-style: dashed; }

.select-reponse, .champ-reponse, .champ input, .champ select {
  font: inherit; padding: var(--e-2) var(--e-3); border: 1px solid var(--bordure-forte);
  border-radius: var(--r-2); background: var(--fond-carte); color: var(--encre); max-width: 100%;
}
.saisie { display: flex; align-items: center; gap: var(--e-2); flex-wrap: wrap; }
.saisie__unite { color: var(--encre-douce); }
.question--calcul .champ-reponse, .question--lecture .champ-reponse { width: 13rem; }
.est-juste { border-color: var(--succes) !important; background: var(--succes-doux) !important; }
.est-faux { border-color: var(--erreur) !important; background: var(--erreur-doux) !important; }
.aide { font-size: 0.9rem; color: var(--encre-douce); background: var(--accent-doux); border-radius: var(--r-2); padding: var(--e-2) var(--e-3); }
.ligne-justification { font-size: 0.9rem; color: var(--encre-tres-douce); border-bottom: 1px dotted var(--bordure-forte); padding-bottom: var(--e-4); }
.section__intro { color: var(--encre-douce); font-size: 0.95rem; margin-top: calc(var(--e-2) * -1); }

/* Texte à trous */
.banque-mots { background: var(--fond-doux); border: 1px dashed var(--bordure-forte); border-radius: var(--r-2); padding: var(--e-3) var(--e-4); margin-bottom: var(--e-4); }
.banque-mots__titre { font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--encre-tres-douce); margin-bottom: var(--e-2); }
.banque-mots p:last-child { margin: 0; }
.texte-trous { line-height: 2.4; font-size: 1.02rem; }
.texte-trous p { margin-bottom: var(--e-4); }
.trou .champ-reponse--trou {
  padding: 0.1rem var(--e-2); border-width: 0 0 2px 0; border-radius: 0;
  background: var(--accent-doux); text-align: center;
}
.trou .champ-reponse--trou:focus { background: var(--fond-carte); }

/* Classement */
.classement__categories { display: flex; flex-wrap: wrap; gap: var(--e-2); margin-bottom: var(--e-4); }
.question--classement, .question--assoc { display: grid; gap: var(--e-2); }
.question--classement .question__enonce, .question--assoc .question__enonce { margin-bottom: 0; }

/* Chaîne de causalité */
.causalite { border: 1px solid var(--bordure); border-left: 4px solid var(--accent); border-radius: 0 var(--r-2) var(--r-2) 0; padding: var(--e-4); margin-bottom: var(--e-5); }
.causalite__titre { font-weight: 600; margin-bottom: var(--e-3); }
.questions--causalite { list-style: none; padding: 0; }
.question--causalite { display: flex; align-items: center; gap: var(--e-3); margin-bottom: var(--e-2); }
.select-reponse--rang { width: 4.5rem; flex-shrink: 0; text-align: center; }
.causalite__ordre { counter-reset: none; }
.causalite__ordre li { margin-bottom: var(--e-1); }

/* Tableau à compléter */
.tableau-completer { border-collapse: collapse; width: 100%; font-size: 0.95rem; }
.tableau-completer th, .tableau-completer td { border: 1px solid var(--bordure-forte); padding: var(--e-2) var(--e-3); vertical-align: top; text-align: left; }
.tableau-completer thead th { background: var(--fond-doux); font-weight: 600; }
.tableau-completer .champ-reponse--cellule { width: 100%; min-width: 9rem; border-width: 0 0 2px 0; border-radius: 0; background: var(--accent-doux); }
.tableau-completer .champ-reponse--cellule:focus { background: var(--fond-carte); }

.corrige { margin-top: var(--e-3); border: 1px solid var(--bordure); border-radius: var(--r-2); background: var(--fond-doux); }
.corrige > summary {
  cursor: pointer; padding: var(--e-2) var(--e-3); font-size: 0.9rem; font-weight: 600;
  color: var(--encre-douce); list-style-position: inside;
}
.corrige > summary:hover { color: var(--accent); }
.corrige__contenu { padding: 0 var(--e-4) var(--e-3); font-size: 0.95rem; }
.corrige__contenu > *:last-child { margin-bottom: 0; }
.corrige__reponse { color: var(--succes); }
.corrige.methode { background: var(--accent-doux); border-color: transparent; }
.corrige.bareme { background: var(--attention-doux); border-color: transparent; }

.sujet {
  margin: 0 0 var(--e-4); padding: var(--e-4); background: var(--fond-doux);
  border-left: 4px solid var(--accent); border-radius: 0 var(--r-2) var(--r-2) 0; font-size: 1.05rem;
}
.zone-reponse { display: none; }

.document { margin: 0 0 var(--e-4); padding: var(--e-4); border: 1px solid var(--bordure); border-radius: var(--r-2); background: var(--fond-doux); }
.document__titre { font-weight: 600; font-size: 0.95rem; margin-bottom: var(--e-3); }
.document__texte { font-size: 0.95rem; }
.tableau-scroll { overflow-x: auto; }
.document__tableau { border-collapse: collapse; width: 100%; font-size: 0.92rem; }
.document__tableau th, .document__tableau td { border: 1px solid var(--bordure-forte); padding: var(--e-2) var(--e-3); text-align: right; }
.document__tableau thead th, .document__tableau tbody th { text-align: left; background: var(--fond-carte); font-weight: 600; }
.document figcaption { font-size: 0.82rem; color: var(--encre-tres-douce); margin-top: var(--e-2); }

.exercice__pied { margin-top: var(--e-5); padding-top: var(--e-4); border-top: 1px solid var(--bordure); }
.exercice__actions { display: flex; gap: var(--e-2); flex-wrap: wrap; }
.exercice__score { margin: var(--e-3) 0 0; font-weight: 600; }
.exercice__score[data-etat="bon"] { color: var(--succes); }
.exercice__score[data-etat="moyen"] { color: var(--attention); }
.exercice__score[data-etat="faible"] { color: var(--erreur); }
.exercice__notions { margin: var(--e-3) 0 0; font-size: 0.85rem; color: var(--encre-tres-douce); }

/* ------------------------------------------ 6. Recherche et fiches */
.filtres { background: var(--fond-doux); border: 1px solid var(--bordure); border-radius: var(--r-3); padding: var(--e-4); margin-bottom: var(--e-5); }
.filtres__ligne { display: flex; gap: var(--e-3); flex-wrap: wrap; align-items: flex-end; margin-bottom: var(--e-3); }
.filtres__ligne:last-child { margin-bottom: 0; }
.champ { display: flex; flex-direction: column; gap: var(--e-1); flex: 1 1 11rem; font-size: 0.85rem; color: var(--encre-douce); }
.champ--large { flex: 2 1 18rem; }
.champ--case { flex-direction: row; align-items: center; gap: var(--e-2); flex: 0 0 auto; }
.champ--case input { accent-color: var(--accent); }
.resultats__compte { color: var(--encre-douce); font-size: 0.95rem; }

.fiche-reglages { display: flex; gap: var(--e-4); flex-wrap: wrap; align-items: flex-end; background: var(--fond-doux); border: 1px solid var(--bordure); border-radius: var(--r-3); padding: var(--e-4); margin-bottom: var(--e-4); }
.fiche-actions { display: flex; gap: var(--e-3); align-items: center; flex-wrap: wrap; margin-bottom: var(--e-5); }
.fiche-compte { color: var(--encre-tres-douce); font-size: 0.9rem; }
.fiche-apercu { border-top: 2px solid var(--bordure); padding-top: var(--e-5); }
.fiche-entete { display: flex; justify-content: space-between; gap: var(--e-4); border-bottom: 2px solid var(--encre); padding-bottom: var(--e-3); margin-bottom: var(--e-5); flex-wrap: wrap; }
.fiche-entete__champs { color: var(--encre-douce); font-size: 0.9rem; }
.fiche-item { position: relative; }
.fiche-item__outils { display: flex; gap: var(--e-2); justify-content: flex-end; margin-bottom: calc(var(--e-2) * -1); }

/* Fenêtre d'impression d'un chapitre entier */
.impression-chapitre .entete-doc { border-bottom: 2px solid var(--encre); padding-bottom: var(--e-3); margin-bottom: var(--e-5); }
.impression-chapitre .entete-doc__meta { color: var(--encre-tres-douce); font-size: 0.9rem; }
.impression-chapitre .entete-doc__champs { color: var(--encre-douce); font-size: 0.9rem; }
.impression-chapitre .trou-vide { border-bottom: 1px solid var(--encre); display: inline-block; min-width: 8rem; }
.impression-chapitre .bloc-corrige { border-left: 3px solid var(--bordure-forte); padding-left: var(--e-3); margin: var(--e-2) 0 var(--e-4); }

/* --------------------------------------------------- 7. Impression */
@media print {
  :root {
    --encre: #000; --encre-douce: #333; --encre-tres-douce: #555;
    --fond: #fff; --fond-doux: #fff; --fond-carte: #fff;
    --bordure: #999; --bordure-forte: #666; --accent: #000; --ombre: none;
  }
  body { font-size: 11pt; background: #fff; color: #000; }
  .no-print, .entete, .pied, .ariane, .affiliation, .encart, .sommaire, .filtres, .fiche-reglages, .fiche-actions { display: none !important; }
  main { padding: 0; min-height: 0; }
  .conteneur { width: 100%; }
  .mise-en-page { display: block; }
  .exercice { border: 0; border-top: 1px solid #999; border-radius: 0; padding: 0; margin: 0 0 1.2cm; break-inside: avoid; padding-top: 0.5cm; }
  .exercice:first-of-type { border-top: 0; }
  .exercice__titre { font-size: 13pt; }
  .badge { border: 1px solid #999; background: none !important; color: #000 !important; }
  .choix label { border-color: #999; padding: 2pt 6pt; }
  .choix input { -webkit-appearance: none; appearance: none; width: 10pt; height: 10pt; border: 1px solid #000; border-radius: 2pt; }
  .question { break-inside: avoid; margin-bottom: 0.6cm; }
  .corrige { border: 0; background: none; }
  .corrige > summary { display: none; }
  .corrige:not([open]) { display: none; }
  .corrige__contenu { padding: 0; border-left: 2pt solid #999; padding-left: 8pt; }
  .zone-reponse { display: block; height: 1.4cm; margin-top: 0.3cm;
    background-image: repeating-linear-gradient(transparent, transparent 0.65cm, #aaa 0.65cm, #aaa calc(0.65cm + 1px)); }
  .texte-trous { line-height: 2.2; }
  .trou .champ-reponse--trou, .tableau-completer .champ-reponse--cellule {
    background: none !important; border-bottom: 1px solid #000; -webkit-appearance: none; appearance: none; }
  .banque-mots { border: 1px solid #999; }
  .tableau-completer, .tableau-completer th, .tableau-completer td { border-color: #999; }
  .tableau-completer .champ-reponse--cellule { min-width: 0; }
  .select-reponse { -webkit-appearance: none; appearance: none; background: none !important; border: 1px solid #000; }
  .aide { background: none !important; border-left: 2pt solid #999; padding-left: 8pt; }
  .causalite { border-left: 2pt solid #000; }
  .fiche-apercu { border: 0; padding: 0; }
  .fiche-item__outils { display: none; }
  a[href^="/"]::after, a[href^="http"]::after { content: ""; }
  @page { margin: 1.6cm 1.4cm; }
}
