/* ============================================================
   manuel.css — Système de thèmes + mise en page du lecteur
   7 thèmes pilotés par [data-theme] sur <html>.
   Tout le reste du CSS n'utilise QUE des variables -> bascule instantanée.
   ============================================================ */

/* ---------- POLICES ---------- */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,600;0,9..144,700;1,9..144,400&family=Inter:wght@400;500;600;700&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');

/* ============================================================
   PALETTES — chaque thème redéfinit le même jeu de variables
   ============================================================ */

/* A — Livre clair (défaut) */
:root,
html[data-theme="A"]{
  --fond:#f6f1e7; --fond-motif:#e3dbca; --surface:#fffdf8; --surface2:#f3ede0;
  --encre:#23201c; --encre2:#4a443b; --doux:#7a7264;
  --accent:#c4502e; --accent2:#2b6e6a; --trait:#e3dbca;
  --pilule-fond:#fdeee9; --pilule-txt:#c4502e; --pilule-bord:#e8c4b8;
  --retenir-fond:#f3ede0; --retenir-bord:#2b6e6a; --retenir-txt:#2b6e6a;
  --radius:6px; --radius-card:10px;
  --f-titre:'Fraunces',serif; --f-corps:'Inter',sans-serif; --f-ui:'Inter',sans-serif;
  --ombre:0 2px 0 var(--trait),0 28px 50px -34px rgba(35,32,28,.4);
  --motif:radial-gradient(var(--fond-motif) .5px,transparent .5px);
  --motif-size:22px 22px;
}

/* B — App sombre */
html[data-theme="B"]{
  --fond:#0f1420; --fond-motif:transparent; --surface:#171d2c; --surface2:#1e2638;
  --encre:#e8ecf4; --encre2:#cdd5e6; --doux:#9aa6bd;
  --accent:#5b8cff; --accent2:#3dd7c4; --trait:#2a3346;
  --pilule-fond:rgba(61,215,196,.12); --pilule-txt:#3dd7c4; --pilule-bord:rgba(61,215,196,.25);
  --retenir-fond:rgba(91,140,255,.08); --retenir-bord:#5b8cff; --retenir-txt:#5b8cff;
  --radius:14px; --radius-card:20px;
  --f-titre:'Plus Jakarta Sans',sans-serif; --f-corps:'Plus Jakarta Sans',sans-serif; --f-ui:'Plus Jakarta Sans',sans-serif;
  --ombre:0 20px 50px -30px rgba(0,0,0,.8);
  --motif:radial-gradient(900px 400px at 80% -5%,rgba(91,140,255,.16),transparent),radial-gradient(700px 350px at 0% 10%,rgba(61,215,196,.10),transparent);
  --motif-size:auto;
}

/* C — Livre sombre */
html[data-theme="C"]{
  --fond:#1c1a17; --fond-motif:#2a2722; --surface:#26231e; --surface2:#2f2b25;
  --encre:#ece6d8; --encre2:#cfc8b8; --doux:#9c9382;
  --accent:#e0744f; --accent2:#4fb0a8; --trait:#3a352d;
  --pilule-fond:rgba(224,116,79,.14); --pilule-txt:#e0744f; --pilule-bord:rgba(224,116,79,.3);
  --retenir-fond:rgba(79,176,168,.08); --retenir-bord:#4fb0a8; --retenir-txt:#4fb0a8;
  --radius:6px; --radius-card:10px;
  --f-titre:'Fraunces',serif; --f-corps:'Inter',sans-serif; --f-ui:'Inter',sans-serif;
  --ombre:0 2px 0 var(--trait),0 28px 50px -34px rgba(0,0,0,.6);
  --motif:radial-gradient(var(--fond-motif) .5px,transparent .5px);
  --motif-size:22px 22px;
}

/* D — App claire (dérivé de B en lumineux) */
html[data-theme="D"]{
  --fond:#eef2fb; --fond-motif:transparent; --surface:#ffffff; --surface2:#f4f7ff;
  --encre:#1b2336; --encre2:#3a4866; --doux:#6b7894;
  --accent:#3b66e0; --accent2:#10a99a; --trait:#dde4f2;
  --pilule-fond:rgba(16,169,154,.10); --pilule-txt:#0c8d80; --pilule-bord:rgba(16,169,154,.28);
  --retenir-fond:rgba(59,102,224,.07); --retenir-bord:#3b66e0; --retenir-txt:#3b66e0;
  --radius:14px; --radius-card:20px;
  --f-titre:'Plus Jakarta Sans',sans-serif; --f-corps:'Plus Jakarta Sans',sans-serif; --f-ui:'Plus Jakarta Sans',sans-serif;
  --ombre:0 18px 44px -28px rgba(27,35,54,.35);
  --motif:radial-gradient(900px 400px at 80% -5%,rgba(59,102,224,.10),transparent),radial-gradient(700px 350px at 0% 10%,rgba(16,169,154,.08),transparent);
  --motif-size:auto;
}

/* E — Sépia lecture */
html[data-theme="E"]{
  --fond:#ece1cc; --fond-motif:transparent; --surface:#f4ecda; --surface2:#e8dcc2;
  --encre:#4a3f2e; --encre2:#5c5038; --doux:#8a7a5e;
  --accent:#9a6a3a; --accent2:#6b7a4a; --trait:#d8c9a8;
  --pilule-fond:rgba(154,106,58,.12); --pilule-txt:#9a6a3a; --pilule-bord:rgba(154,106,58,.3);
  --retenir-fond:rgba(107,122,74,.10); --retenir-bord:#6b7a4a; --retenir-txt:#5c6a3e;
  --radius:8px; --radius-card:12px;
  --f-titre:'Fraunces',serif; --f-corps:'Fraunces',serif; --f-ui:'Inter',sans-serif;
  --ombre:0 2px 0 var(--trait),0 20px 40px -30px rgba(74,63,46,.4);
  --motif:none; --motif-size:auto;
}

/* F — Cahier coloré */
html[data-theme="F"]{
  --fond:#fef6f9; --fond-motif:#f6d9e4; --surface:#ffffff; --surface2:#fff0f5;
  --encre:#2d2640; --encre2:#4a4063; --doux:#8a7fa6;
  --accent:#e5447f; --accent2:#7c4dff; --trait:#f1dce6;
  --pilule-fond:rgba(124,77,255,.10); --pilule-txt:#7c4dff; --pilule-bord:rgba(124,77,255,.28);
  --retenir-fond:rgba(229,68,127,.08); --retenir-bord:#e5447f; --retenir-txt:#e5447f;
  --radius:16px; --radius-card:22px;
  --f-titre:'Plus Jakarta Sans',sans-serif; --f-corps:'Plus Jakarta Sans',sans-serif; --f-ui:'Plus Jakarta Sans',sans-serif;
  --ombre:0 16px 40px -26px rgba(229,68,127,.4);
  --motif:radial-gradient(var(--fond-motif) 1px,transparent 1px);
  --motif-size:26px 26px;
}

/* G — Accessibilité / dyslexie */
html[data-theme="G"]{
  --fond:#ffffdd; --fond-motif:transparent; --surface:#ffffff; --surface2:#fbfbe8;
  --encre:#000000; --encre2:#1a1a1a; --doux:#333333;
  --accent:#0046d5; --accent2:#006b3c; --trait:#000000;
  --pilule-fond:#e8efff; --pilule-txt:#0046d5; --pilule-bord:#0046d5;
  --retenir-fond:#eafff0; --retenir-bord:#006b3c; --retenir-txt:#006b3c;
  --radius:8px; --radius-card:10px;
  --f-titre:'OpenDyslexic','Comic Sans MS','Inter',sans-serif;
  --f-corps:'OpenDyslexic','Comic Sans MS','Inter',sans-serif;
  --f-ui:'OpenDyslexic','Comic Sans MS','Inter',sans-serif;
  --ombre:0 0 0 2px var(--trait);
  --motif:none; --motif-size:auto;
}
/* OpenDyslexic chargé via CDN si le thème G est actif (déclaré plus bas) */

/* ============================================================
   BASE
   ============================================================ */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--fond);
  background-image:var(--motif);
  background-size:var(--motif-size);
  color:var(--encre);
  font-family:var(--f-corps);
  line-height:1.68;
  -webkit-font-smoothing:antialiased;
  transition:background-color .25s ease,color .25s ease;
}
a{color:inherit}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* Police dyslexie (chargée seulement quand utile, mais déclarée globalement) */
@font-face{
  font-family:'OpenDyslexic';
  src:url('https://cdn.jsdelivr.net/npm/open-dyslexic@1.0.3/woff/OpenDyslexic-Regular.woff') format('woff');
  font-weight:400;font-display:swap;
}
@font-face{
  font-family:'OpenDyslexic';
  src:url('https://cdn.jsdelivr.net/npm/open-dyslexic@1.0.3/woff/OpenDyslexic-Bold.woff') format('woff');
  font-weight:700;font-display:swap;
}
[data-theme="G"] body{line-height:1.9;letter-spacing:.02em;word-spacing:.12em}

/* ============================================================
   BARRE SUPÉRIEURE
   ============================================================ */
.mn-top{
  position:sticky;top:0;z-index:40;
  display:flex;align-items:center;gap:13px;
  padding:13px 24px;
  background:color-mix(in srgb,var(--fond) 86%,transparent);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--trait);
}
.mn-logo{
  width:32px;height:32px;border-radius:9px;
  background:linear-gradient(135deg,var(--accent),var(--accent2));
  display:grid;place-items:center;font-weight:800;color:#fff;font-size:17px;
  font-family:var(--f-ui);flex:none;
}
.mn-top b{font-family:var(--f-titre);font-weight:600;font-size:16px}
.mn-top .mn-spacer{margin-left:auto}

/* Bouton thème */
.mn-theme-btn{
  font-family:var(--f-ui);font-size:13px;font-weight:600;
  background:var(--surface);color:var(--encre);
  border:1px solid var(--trait);border-radius:999px;
  padding:7px 14px;cursor:pointer;display:flex;align-items:center;gap:7px;
  transition:.15s;
}
.mn-theme-btn:hover{border-color:var(--accent);transform:translateY(-1px)}
.mn-theme-menu{
  position:absolute;top:54px;right:24px;z-index:50;
  background:var(--surface);border:1px solid var(--trait);
  border-radius:14px;padding:8px;min-width:230px;
  box-shadow:var(--ombre);display:none;
}
.mn-theme-menu.open{display:block;animation:mn-pop .18s ease}
@keyframes mn-pop{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.mn-theme-opt{
  display:flex;align-items:center;gap:11px;width:100%;
  font-family:var(--f-ui);font-size:14px;text-align:left;
  background:none;border:0;color:var(--encre);
  padding:9px 11px;border-radius:9px;cursor:pointer;transition:.12s;
}
.mn-theme-opt:hover{background:var(--surface2)}
.mn-theme-opt.actif{background:var(--surface2);font-weight:700}
.mn-swatch{width:22px;height:22px;border-radius:6px;border:1px solid var(--trait);flex:none}
.mn-theme-opt small{margin-left:auto;color:var(--doux);font-size:11px}

/* ============================================================
   CONTENU
   ============================================================ */
.mn-wrap{max-width:780px;margin:32px auto;padding:0 18px}
.mn-fil{
  font-family:var(--f-ui);font-size:12.5px;color:var(--doux);font-weight:500;
  margin-bottom:16px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;
}
.mn-fil .sep{opacity:.45;color:var(--accent)}
.mn-fil a{text-decoration:none}
.mn-fil a:hover{color:var(--accent)}

/* La feuille de lecture */
.mn-feuille{
  background:var(--surface);
  border:1px solid var(--trait);
  border-radius:var(--radius-card);
  padding:48px 54px;
  box-shadow:var(--ombre);
  position:relative;
}
/* filet d'accent à gauche pour les thèmes "livre" */
[data-theme="A"] .mn-feuille::before,
[data-theme="C"] .mn-feuille::before,
[data-theme="E"] .mn-feuille::before{
  content:"";position:absolute;left:0;top:28px;bottom:28px;width:3px;
  background:var(--accent);border-radius:0 3px 3px 0;
}

.mn-pilule{
  display:inline-flex;align-items:center;gap:6px;
  font-family:var(--f-ui);font-size:12px;font-weight:600;letter-spacing:.03em;
  text-transform:uppercase;color:var(--pilule-txt);
  background:var(--pilule-fond);border:1px solid var(--pilule-bord);
  border-radius:999px;padding:4px 12px;margin-bottom:16px;
}
.mn-h1{font-family:var(--f-titre);font-weight:700;font-size:32px;line-height:1.2;margin-bottom:6px}
.mn-sous{font-family:var(--f-titre);color:var(--doux);font-size:17px;margin-bottom:26px}
[data-theme="A"] .mn-sous,[data-theme="C"] .mn-sous,[data-theme="E"] .mn-sous{font-style:italic}

/* ---------- BLOCS DE CONTENU ---------- */
.mn-bloc{margin:0 0 18px}
.mn-bloc p{font-size:17px;color:var(--encre2);margin:0 0 16px}
.mn-bloc p b,.mn-bloc strong{color:var(--encre);font-weight:600}
.mn-bloc h2{font-family:var(--f-titre);font-size:23px;margin:28px 0 10px;color:var(--encre)}
.mn-bloc h3{font-family:var(--f-titre);font-size:19px;margin:22px 0 8px;color:var(--encre)}
.mn-bloc ul,.mn-bloc ol{margin:0 0 16px;padding-left:24px}
.mn-bloc li{font-size:17px;color:var(--encre2);margin:6px 0}
.mn-mark{color:var(--accent);font-weight:600}

.mn-img{margin:22px 0}
.mn-img img{max-width:100%;border-radius:var(--radius);border:1px solid var(--trait);display:block}
.mn-img figcaption{font-family:var(--f-ui);font-size:13px;color:var(--doux);margin-top:8px;text-align:center}

.mn-media{margin:22px 0}
.mn-media video,.mn-media iframe{width:100%;border:0;border-radius:var(--radius);aspect-ratio:16/9;background:#000}
.mn-audio{width:100%;margin:18px 0}

.mn-cite{
  margin:24px 0;padding:16px 22px;border-left:3px solid var(--accent);
  background:var(--surface2);border-radius:0 var(--radius) var(--radius) 0;
  font-family:var(--f-titre);font-size:18px;color:var(--encre);
}
[data-theme="A"] .mn-cite,[data-theme="C"] .mn-cite,[data-theme="E"] .mn-cite{font-style:italic}

/* Encadrés (à retenir / cas / document) */
.mn-encadre{
  margin:24px 0;padding:18px 22px;border-radius:var(--radius);
  background:var(--retenir-fond);border:1px solid var(--trait);
  border-left:3px solid var(--retenir-bord);position:relative;
}
.mn-encadre .t{
  font-family:var(--f-ui);font-size:12px;text-transform:uppercase;letter-spacing:.07em;
  color:var(--retenir-txt);font-weight:700;margin-bottom:6px;
}
.mn-encadre p{font-size:15.5px;margin:0 0 8px;color:var(--encre2)}
.mn-encadre p:last-child{margin-bottom:0}

.mn-sep{height:1px;background:var(--trait);border:0;margin:28px 0}

.mn-table{width:100%;border-collapse:collapse;margin:22px 0;font-size:15px}
.mn-table th,.mn-table td{border:1px solid var(--trait);padding:9px 12px;text-align:left}
.mn-table th{background:var(--surface2);font-family:var(--f-ui);font-weight:600;color:var(--encre)}
.mn-table td{color:var(--encre2)}

/* ---------- BLOC JEU INTERACTIF ---------- */
.mn-jeu{
  margin:26px 0;border:1px solid var(--trait);border-radius:var(--radius-card);
  overflow:hidden;background:var(--surface2);
}
.mn-jeu-tete{
  display:flex;align-items:center;gap:10px;padding:13px 18px;
  background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 16%,transparent),transparent);
  border-bottom:1px solid var(--trait);
}
.mn-jeu-tete .ico{font-size:18px}
.mn-jeu-tete b{font-family:var(--f-ui);font-size:14px;color:var(--encre)}
.mn-jeu-tete .tag{
  margin-left:auto;font-family:var(--f-ui);font-size:11px;font-weight:600;
  color:var(--accent);background:var(--pilule-fond);border:1px solid var(--pilule-bord);
  border-radius:999px;padding:3px 9px;
}
.mn-jeu-corps{padding:18px}
.mn-jeu iframe{width:100%;border:0;border-radius:var(--radius);min-height:420px;background:var(--surface)}
/* version imprimée du jeu : QR de remplacement */
.mn-jeu-print{display:none;text-align:center;padding:24px}
.mn-jeu-print img{width:160px;height:160px}
.mn-jeu-print .lbl{font-family:var(--f-ui);font-size:13px;color:var(--encre2);margin-top:10px}

/* ---------- NAVIGATION BAS DE PAGE ---------- */
.mn-nav{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:26px}
.mn-nav a{
  text-decoration:none;background:var(--surface);border:1px solid var(--trait);
  border-radius:var(--radius);padding:14px 18px;color:var(--encre);
  font-family:var(--f-ui);font-size:14px;transition:.18s;
}
.mn-nav a:hover{border-color:var(--accent);transform:translateY(-2px)}
.mn-nav .lbl{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--doux);display:block;margin-bottom:3px}
.mn-nav .r{text-align:right}
.mn-nav .vide{visibility:hidden}

.mn-pied{
  font-family:var(--f-ui);text-align:center;color:var(--doux);font-size:12px;margin:24px 0 50px;
  display:flex;gap:14px;justify-content:center;align-items:center;flex-wrap:wrap;
}
.mn-pied .qr-link{
  display:inline-flex;align-items:center;gap:6px;text-decoration:none;color:var(--accent);
  border:1px solid var(--trait);border-radius:999px;padding:6px 12px;
}

/* ---------- CARTES (accueil / sommaires) ---------- */
.mn-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.mn-card{
  display:block;text-decoration:none;color:var(--encre);
  background:var(--surface);border:1px solid var(--trait);
  border-radius:var(--radius-card);padding:22px;transition:.18s;position:relative;overflow:hidden;
}
.mn-card:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:var(--ombre)}
.mn-card .ico{font-size:26px;margin-bottom:10px}
.mn-card .titre{font-family:var(--f-titre);font-weight:600;font-size:18px;margin-bottom:4px}
.mn-card .desc{font-family:var(--f-ui);font-size:13px;color:var(--doux)}
.mn-card .num{
  position:absolute;top:14px;right:16px;font-family:var(--f-titre);font-weight:700;
  font-size:30px;color:var(--trait);
}
.mn-card.lock{opacity:.55}
.mn-card.lock::after{content:"🔒";position:absolute;top:16px;right:18px;font-size:18px}

.mn-theme-titre{
  font-family:var(--f-titre);font-weight:800;font-size:14px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--accent2);margin:38px 0 4px;padding-bottom:8px;
  border-bottom:2px solid var(--trait);
}
.mn-theme-titre:first-of-type{margin-top:8px}
.mn-section-titre{
  font-family:var(--f-titre);font-weight:700;font-size:22px;margin:30px 0 14px;
  display:flex;align-items:center;gap:10px;
}
.mn-section-titre .puce{width:8px;height:22px;border-radius:3px;background:var(--accent)}

/* ---------- BLOC COLONNES (responsive) ---------- */
.mn-cols{display:grid;gap:20px;margin:22px 0}
.mn-cols-2{grid-template-columns:1fr 1fr}
.mn-cols-3{grid-template-columns:1fr 1fr 1fr}
.mn-col>.mn-bloc:first-child,.mn-col>*:first-child{margin-top:0}
@media(max-width:680px){
  .mn-cols-2,.mn-cols-3{grid-template-columns:1fr}
}

/* ---------- IMPRESSION A4 ---------- */
@media print{
  @page{size:A4;margin:18mm 16mm}
  body{background:#fff!important;background-image:none!important;color:#000}
  .mn-top,.mn-nav,.mn-theme-menu,.mn-pied .qr-link{display:none!important}
  .mn-feuille{box-shadow:none;border:none;padding:0;border-radius:0}
  .mn-feuille::before{display:none}
  .mn-wrap{margin:0;max-width:none}
  .mn-jeu iframe,.mn-jeu-corps>:not(.mn-jeu-print){display:none!important}
  .mn-jeu-print{display:block!important}
  .mn-jeu{break-inside:avoid;border:1px solid #999}
  .mn-img,.mn-encadre,.mn-cite,.mn-table{break-inside:avoid}
  .mn-cols-2,.mn-cols-3{grid-template-columns:1fr 1fr}
  a{color:#000;text-decoration:none}
  .mn-h1{font-size:24pt}
}

@media(max-width:560px){
  .mn-feuille{padding:28px 22px}
  .mn-h1{font-size:25px}
  .mn-nav{grid-template-columns:1fr}
  .mn-theme-menu{right:12px;left:12px}
}

/* Image générée par IA */
.mn-img-auto img{ width:100%; height:auto; border-radius:10px; display:block; background:#eef1f6; }
.mn-img figcaption{ font-size:13px; color:#6a7585; text-align:center; margin-top:6px; }
.mn-img-ia{ display:inline-block; font-size:11px; color:#8a7; background:#eef7ee; border:1px solid #d7ead7; border-radius:10px; padding:1px 7px; vertical-align:middle; }

/* Acronymes du glossaire (développés au survol) */
.mn-abbr{ border-bottom:1px dotted #5b8cff; cursor:help; text-decoration:none; position:relative; }
.mn-abbr:hover{ background:#eef3ff; }
/* bulle desktop (en plus du title natif) */
@media (hover:hover){
  .mn-abbr::after{
    content:attr(title); position:absolute; left:50%; bottom:135%; transform:translateX(-50%) scale(.96);
    background:#2b3447; color:#fff; font-size:12px; font-weight:500; line-height:1.3; white-space:normal;
    width:max-content; max-width:240px; padding:6px 10px; border-radius:8px; box-shadow:0 4px 14px rgba(0,0,0,.18);
    opacity:0; pointer-events:none; transition:opacity .12s, transform .12s; z-index:50; text-align:center;
  }
  .mn-abbr:hover::after{ opacity:1; transform:translateX(-50%) scale(1); }
}


/* Accordéon « une question de corrigé » (rendu lecteur) */
.mn-corrige-q{
  border:1px solid var(--trait, #e3e7ee);
  border-radius:12px;
  margin:10px 0;
  background:var(--surface, #fff);
  overflow:hidden;
}
.mn-corrige-q + .mn-corrige-q{ margin-top:8px; }
.mn-cq-tete{
  display:flex; align-items:center; gap:10px;
  padding:12px 14px; cursor:pointer; list-style:none;
  font-weight:600; user-select:none;
}
.mn-cq-tete::-webkit-details-marker{ display:none; }
.mn-cq-num{
  flex:0 0 auto; min-width:26px; height:26px; padding:0 6px;
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--accent, #2563eb); color:#fff; border-radius:999px;
  font-size:13px; font-weight:700;
}
.mn-cq-q{ flex:1 1 auto; }
.mn-cq-fleche{ flex:0 0 auto; transition:transform .15s ease; color:var(--doux, #94a3b8); }
.mn-corrige-q[open] .mn-cq-fleche{ transform:rotate(90deg); }
.mn-cq-corps{
  padding:2px 16px 14px; border-top:1px solid var(--trait, #eef1f6);
}
.mn-cq-corps p{ margin:10px 0; }
.mn-cq-corps .mn-table{ margin:8px 0; }

/* Écran « corrigé verrouillé » */
.mn-corrige-lock{ text-align:center; }
.mn-corrige-lock .mn-h1{ margin-top:6px; }

/* Encart « voir le corrigé » sous une page Cas */
.mn-corrige-cta{
  display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  margin:18px 0 0; padding:14px 16px;
  border:1px dashed var(--accent, #2563eb);
  border-radius:12px; background:rgba(37,99,235,.05);
}
.mn-corrige-cta .ico{ font-size:20px; }
.mn-corrige-cta .txt{ flex:1 1 auto; font-weight:600; }
.mn-corrige-cta .mn-btn{ flex:0 0 auto; }

/* Impression : tout déplié, sans flèche.
   <details> fermé masque son contenu via le UA ; on le ré-affiche au print. */
@media print{
  .mn-corrige-q{ break-inside:avoid; }
  .mn-corrige-q .mn-cq-corps{ display:block !important; }
  .mn-cq-fleche{ display:none; }
}
/* Filet de sécurité navigateurs : ouvrir le détail dès qu'on imprime. */


/* Barre du bouton imprimer (écran) */
.mn-print-bar{ display:flex; justify-content:flex-end; margin:-6px 0 18px; }
.mn-print-bar .mn-btn-soft{ cursor:pointer; }

/* Tout élément marqué .mn-noprint disparaît à l'impression */
@media print{

  /* Réglages page : marges papier + pas d'en-tête navigateur géant */
  @page{ margin:16mm 14mm; }

  /* Couleurs fidèles (images, pilules, encadrés) */
  *{ -webkit-print-color-adjust:exact !important; print-color-adjust:exact !important; }

  html,body{ background:#fff !important; }

  /* Masquer le chrome du site et les éléments interactifs */
  .mn-noprint,
  .mn-top, .mn-header, header, nav.mn-mainnav, .mn-mainnav,
  .mn-fil, .mn-nav, .mn-print-bar, .mn-corrige-cta,
  .mn-fab, .mn-fabs, .mn-theme-switch, .mn-footer, footer{
    display:none !important;
  }

  /* La feuille occupe toute la largeur, sans ombre ni cadre */
  .mn-wrap{ max-width:none !important; margin:0 !important; padding:0 !important; }
  .mn-feuille{
    box-shadow:none !important; border:none !important;
    margin:0 !important; padding:0 !important; max-width:none !important;
    background:#fff !important;
  }

  /* Titres : éviter les coupures juste après un titre */
  .mn-h1, .mn-feuille h2, .mn-feuille h3{ break-after:avoid; page-break-after:avoid; }
  .mn-feuille h2, .mn-feuille h3{ break-inside:avoid; }

  /* Images, encadrés, tableaux : ne pas couper au milieu */
  .mn-feuille img, .mn-encadre, .mn-feuille table,
  .mn-jeu, .mn-video, figure, .mn-imageia{
    break-inside:avoid; page-break-inside:avoid;
  }
  .mn-feuille img{ max-width:100% !important; height:auto !important; }

  /* Corrigés : tout déplier et afficher à l'impression */
  details.mn-corrige-q{ break-inside:avoid; }
  details.mn-corrige-q .mn-cq-corps{ display:block !important; }
  details.mn-corrige-q > summary{ list-style:none; }
  details.mn-corrige-q > summary::-webkit-details-marker{ display:none; }

  /* Liens : ne pas afficher l'URL entre parenthèses (rendu plus propre) */
  a[href]:after{ content:"" !important; }

  /* Confort de lecture papier */
  .mn-feuille{ font-size:12pt; line-height:1.5; color:#111; }
  .mn-pilule{ border:1px solid #999; }
}


/* ============================================================
   IMPRESSION — à coller à la fin de assets/manuel.css
   Bouton + rendu @media print (mise en page papier / PDF)
   ============================================================ */

/* Barre du bouton imprimer (écran) */
.mn-print-bar{ display:flex; justify-content:flex-end; margin:-6px 0 18px; }
.mn-print-bar .mn-btn-soft{ cursor:pointer; }

/* Tout élément marqué .mn-noprint disparaît à l'impression */
@media print{

  /* Réglages page : marges papier + pas d'en-tête navigateur géant */
  @page{ margin:12.7mm; }  /* marges étroites facon Word (1,27 cm) */

  /* Couleurs fidèles (images, pilules, encadrés) */
  *{ -webkit-print-color-adjust:exact !important; print-color-adjust:exact !important; }

  html,body{ background:#fff !important; }

  /* Masquer le chrome du site et les éléments interactifs */
  .mn-noprint,
  .mn-top, .mn-header, header, nav.mn-mainnav, .mn-mainnav,
  .mn-fil, .mn-nav, .mn-print-bar, .mn-corrige-cta,
  .mn-fab, .mn-fabs, .mn-theme-switch, .mn-footer, footer{
    display:none !important;
  }

  /* La feuille occupe toute la largeur, sans ombre ni cadre */
  .mn-wrap{ max-width:none !important; margin:0 !important; padding:0 !important; }
  .mn-feuille{
    box-shadow:none !important; border:none !important;
    margin:0 !important; padding:0 !important; max-width:none !important;
    background:#fff !important;
  }

  /* Titres : éviter les coupures juste après un titre */
  .mn-h1, .mn-feuille h2, .mn-feuille h3{ break-after:avoid; page-break-after:avoid; }
  .mn-feuille h2, .mn-feuille h3{ break-inside:avoid; }

  /* Images, encadrés, tableaux : ne pas couper au milieu */
  .mn-feuille img, .mn-encadre, .mn-feuille table,
  .mn-jeu, .mn-video, figure, .mn-imageia{
    break-inside:avoid; page-break-inside:avoid;
  }
  .mn-feuille img{ max-width:100% !important; height:auto !important; }

  /* Corrigés : tout déplier et afficher à l'impression */
  details.mn-corrige-q{ break-inside:avoid; }
  details.mn-corrige-q .mn-cq-corps{ display:block !important; }
  details.mn-corrige-q > summary{ list-style:none; }
  details.mn-corrige-q > summary::-webkit-details-marker{ display:none; }

  /* Liens : ne pas afficher l'URL entre parenthèses (rendu plus propre) */
  a[href]:after{ content:"" !important; }

  /* Confort de lecture papier */
  .mn-feuille{ font-size:12pt; line-height:1.5; color:#111; }
  .mn-pilule{ border:1px solid #999; }
}


/* ============================================================================
 * À AJOUTER dans assets/manuel.css — rendu public des effets d'image
 * (alignement, wrap filigrane). Les filtres/bords/ombre sont en style inline.
 * ========================================================================== */
.mn-fig{ margin:1em 0; text-align:center; }
.mn-fig-left{ text-align:left; }
.mn-fig-right{ text-align:right; }
.mn-fig-wrap{ position:relative; display:inline-block; max-width:100%; }
.mn-fig img{ max-width:100%; height:auto; }
.mn-fig figcaption{ font-size:.9em; color:#7a8194; margin-top:.5em; }
.mn-fig-wm{ position:absolute; color:#fff; font-size:13px; font-weight:600;
  text-shadow:0 1px 3px rgba(0,0,0,.6); padding:2px 6px; pointer-events:none; }


/* Bloc schéma / infographie (rendu SVG) */
.mn-schema{margin:1.2rem 0;text-align:center}
.mn-schema-svg{max-width:100%;height:auto}
@media print{ .mn-schema-svg{max-width:100%} }

/* ---- Bloc PDF encapsulé ---- */
.mn-pdf{margin:1.4rem 0}
.mn-pdf-titre{font-weight:700;margin:0 0 .5rem;color:var(--encre,#1e2430)}
.mn-pdf-cadre{border:1px solid var(--trait,#e6e3db);border-radius:12px;overflow:hidden;background:#f4f2ec}
.mn-pdf-actions{margin-top:.5rem}
.mn-pdf-lien{display:inline-flex;align-items:center;gap:6px;font-size:.9rem;color:var(--accent2,#2451b3);text-decoration:none}
.mn-pdf-lien:hover{text-decoration:underline}
.mn-pdf-vide{padding:1.2rem;border:1px dashed var(--trait,#ccc);border-radius:10px;color:var(--doux,#6b6f78);text-align:center}
@media print{ .mn-pdf-cadre{height:auto!important;min-height:200px} .mn-pdf-actions{display:none} }
