/* ============================================================
   MesRevisions.com — Charte graphique unifiee (orange & vert)
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Baloo+2:wght@600;700;800&family=Inter:wght@400;500;600;700;800&display=swap');
:root{
  /* ---- L'ORANGE, VERSION CLAIRE (2026) ---------------------------
     Même famille de couleur qu'avant, nettement moins saturée : les
     fonds tirent vers le blanc cassé et les aplats vifs ont disparu.
     Deux valeurs ont été choisies au contraste, pas à l'œil :
       --o-600 porte du texte blanc sur les boutons — 4,9 de contraste,
       au-dessus du seuil de 4,5 ; l'ancien #f2661d plafonnait à 3,1 et
       ne passait pas.
       --muted porte le texte secondaire — 5,1 sur blanc.
     Changer une de ces deux-là sans refaire le calcul rend des pans
     entiers du site pénibles à lire. */
  --o-900:#5a2a12;--o-800:#8c421a;--o-700:#a8501d;--o-600:#b9531a;--o-500:#d9772f;--o-400:#eda372;--o-300:#f6c6a3;--o-200:#fadfcb;--o-100:#fdeee2;--o-50:#fef8f3;--o-25:#fffcfa;
  /* ---- LE VERT, SECONDE COULEUR DE LA CHARTE --------------------
     Il n'est plus réservé aux validations : une section sur deux repose
     désormais sur --g-100. --g-700 est la seule nuance qui porte du
     texte — 6,2 sur blanc, 6,2 en blanc dessus. --g-600 tombe à 4,25 et
     ne passe pas le seuil de 4,5 : décoratif seulement. */
  --g-900:#10352a;--g-800:#17543f;--g-700:#1d6e52;--g-600:#2c8a68;--g-500:#57ad8e;--g-400:#8cc9b2;--g-300:#bbe2d2;--g-200:#dcf0e7;--g-100:#eef8f3;--g-50:#f5fbf8;
  /* Deux bleus, et ce n'est pas un caprice : --blue sert de filet, où
     seule la visibilité compte ; --blue-fonce porte du texte blanc, et
     doit donc passer 4,5 de contraste — il est à 5,8. L'ancien #3b82c4
     plafonnait à 4,1 et ne passait pas. */
  --ink:#3a2c24;--muted:#7c6a5f;--danger:#c0473f;--blue:#5b82ab;--blue-fonce:#40688f;
  --shadow-sm:0 1px 3px rgba(90,42,18,.05);--shadow-md:0 6px 18px rgba(90,42,18,.06);
  --font-head:'Baloo 2',system-ui,sans-serif;--font-body:'Inter',system-ui,sans-serif;
  --nav-h:64px;
}
*{box-sizing:border-box}

/* ============================================================
   TAILLE D'AFFICHAGE DU SITE
   ------------------------------------------------------------
   Tout le site est rendu à 90 % de sa taille naturelle, comme si
   le navigateur était réglé à 90 %. Une seule valeur à changer
   ici, et elle vaut pour les 374 pages.

   « zoom » plutôt que « font-size:90% » : font-size ne réduirait
   que ce qui est exprimé en rem, et laisserait les marges, les
   images et les épaisseurs de trait à leur taille — le texte
   rétrécirait dans une mise en page restée grande.

   « zoom » plutôt que « transform:scale() » : transform ne
   recalcule pas la place occupée, ce qui laisse une bande vide à
   droite et fausse le défilement.

   La barre de navigation fixe et le bandeau cookies, tous deux en
   position:fixed, occupent bien toute la largeur — vérifié. Un
   navigateur trop ancien pour « zoom » ignore la règle et affiche
   le site à 100 % : rien ne casse.
   ============================================================ */
html{zoom:.9}

html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font-body);color:var(--ink);background:var(--o-50);line-height:1.65;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--font-head);letter-spacing:-.01em;margin:0 0 .5em}
a{text-decoration:none;color:inherit}img{max-width:100%;display:block}button{font-family:inherit}
.hidden{display:none!important}
.nav{position:sticky;top:0;z-index:80;background:rgba(254,248,243,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--o-100);min-height:var(--nav-h)}
.nav .wrap{max-width:1300px;margin:0 auto;min-height:var(--nav-h);display:flex;align-items:center;justify-content:space-between;padding:8px 22px;gap:10px 12px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:9px;font-family:var(--font-head);font-weight:800;font-size:1.22rem;color:var(--o-800)}
.brand svg{width:30px;height:30px}
.navlinks{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.navlink{padding:8px 13px;border-radius:10px;color:var(--o-800);font-weight:700;font-size:.88rem}
.navlink:hover{background:var(--o-100)}
.user-chip{display:flex;align-items:center;gap:8px;background:var(--o-100);padding:6px 12px 6px 6px;border-radius:999px;font-weight:700;font-size:.83rem;color:var(--o-800)}
.user-chip .av{width:26px;height:26px;border-radius:50%;background:var(--o-600);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:800}
/* --o-700 et non --o-600 : du blanc dessus donne 5,5 de contraste au
   lieu de 4,9, et la teinte tient aussi sur un fond vert pâle. */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:10px;padding:11px 19px;font-weight:700;font-size:.9rem;cursor:pointer;background:var(--o-700);color:#fff;transition:.15s;box-shadow:none}
.btn:hover{background:var(--o-800)}
.btn.sm{padding:7px 12px;font-size:.8rem;border-radius:9px}
.btn.xs{padding:5px 10px;font-size:.74rem;border-radius:8px}
.btn.lg{padding:14px 26px;font-size:1rem}.btn.block{width:100%}
.btn.green{background:var(--g-700);box-shadow:none}.btn.green:hover{background:var(--g-800)}
.btn.alt{background:var(--o-100);color:var(--o-700);box-shadow:none}.btn.alt:hover{background:var(--o-200)}
.btn.ghost{background:transparent;color:var(--o-800);box-shadow:none;border:1px solid var(--o-300)}.btn.ghost:hover{background:var(--o-100)}
.btn.danger{background:var(--danger)}.btn.danger:hover{background:#b8362e}
.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none!important}
.badge{display:inline-flex;align-items:center;gap:6px;background:var(--o-100);color:var(--o-700);padding:6px 12px;border-radius:999px;font-weight:800;font-size:.76rem}
.badge.green{background:var(--g-100);color:var(--g-700)}
.mini-badge{background:var(--o-50);color:var(--o-700);padding:4px 10px;border-radius:999px;font-size:.72rem;font-weight:800;border:1px solid var(--o-200)}
.accueil{max-width:1200px;margin:0 auto;padding:38px 24px 80px}
.accueil-hero{text-align:center;margin-bottom:40px}
.accueil-hero h1{font-size:clamp(1.8rem,4vw,2.6rem);color:var(--o-900)}
.accueil-hero p{color:var(--muted);font-size:1.02rem;max-width:640px;margin:0 auto}
.chiffres{display:flex;gap:8px;flex-wrap:wrap}
.chiffres.une-ligne{flex-wrap:nowrap;gap:6px;overflow-x:auto;scrollbar-width:none}
.chiffres.une-ligne::-webkit-scrollbar{display:none}
.chiffres.une-ligne .mini-badge{white-space:nowrap;font-size:.63rem;padding:3px 7px;letter-spacing:-.1px}
.grille-matieres{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.carte-matiere{background:#fff;border:1px solid var(--o-200);border-radius:14px;padding:22px;box-shadow:none;transition:.2s;display:flex;flex-direction:column}
.carte-matiere:hover{box-shadow:var(--shadow-md);border-color:var(--o-300)}
.carte-matiere .ico{font-size:2rem;margin-bottom:8px}
.carte-matiere h3{color:var(--o-800);font-size:1.12rem;margin-bottom:4px}
.carte-matiere .sous{color:var(--muted);font-size:.85rem;flex:1;margin-bottom:12px}
.carte-matiere .chiffres{margin-bottom:14px}
.carte-actions{display:flex;gap:8px;flex-wrap:wrap}
.cours-shell{display:grid;grid-template-columns:2fr 1fr;height:calc(100vh - var(--nav-h));overflow:hidden}
.panneau-cours{overflow-y:auto;padding:30px 38px 90px;scrollbar-gutter:stable}
.panneau-questions{overflow-y:auto;padding:24px 22px 90px;background:#fff;border-left:2px solid var(--o-100);scrollbar-gutter:stable}
.panneau-cours::-webkit-scrollbar,.panneau-questions::-webkit-scrollbar{width:9px}
.panneau-cours::-webkit-scrollbar-thumb,.panneau-questions::-webkit-scrollbar-thumb{background:var(--o-200);border-radius:9px}
.panneau-questions::-webkit-scrollbar-thumb{background:var(--g-200)}
.cours-header{border-bottom:3px solid var(--o-600);padding-bottom:14px;margin-bottom:22px}
.cours-header h1{font-size:1.85rem;color:var(--o-900);margin-bottom:4px}
.cours-header .meta{color:var(--muted);font-size:.88rem}
.sommaire{background:var(--o-50);border:2px solid var(--o-100);border-radius:14px;padding:16px 18px;margin-bottom:22px}
.sommaire h4{color:var(--o-800);font-size:.88rem;margin-bottom:8px}
.sommaire ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px}
.sommaire a{display:block;padding:6px 12px;background:#fff;border-radius:999px;font-size:.8rem;font-weight:700;color:var(--o-700);border:1px solid var(--o-200)}
.sommaire a:hover{background:var(--o-600);color:#fff;border-color:var(--o-600)}
.theme-titre{text-align:center;font-size:.92rem;color:var(--o-700);letter-spacing:1.5px;text-transform:uppercase;font-weight:800;font-family:var(--font-head);margin:34px 0 12px;padding-bottom:6px;border-bottom:2px solid var(--o-200)}
.chapitre{background:#fff;border-radius:16px;box-shadow:var(--shadow-sm);border:1px solid var(--o-100);padding:26px 28px;margin-bottom:24px;scroll-margin-top:14px}
.chapitre>h2{font-size:1.42rem;color:var(--o-800);border-bottom:3px solid var(--o-100);padding-bottom:10px;margin-bottom:16px}
.chapitre h3{font-size:1.08rem;color:var(--g-700);margin:20px 0 8px;padding-left:10px;border-left:4px solid var(--g-500)}
.chapitre h4{font-size:.98rem;color:var(--o-800);margin:14px 0 6px}
.chapitre ul,.chapitre ol{margin:8px 0 8px 20px}.chapitre li{margin-bottom:5px;font-size:.94rem}
.chapitre p{font-size:.94rem}
.definition,.propriete,.methode,.exemple,.remarque,.attention,.astuce,
.vocabulaire,.date-cle,.chiffre-cle,.portrait,.artiste,.experience,.loi{
  padding:14px 17px;margin:14px 0;border-radius:0 10px 10px 0;font-size:.92rem}
/* ---- les encadrés du cours ----
   Huit couleurs vives sur une même page, c'était beaucoup. Les teintes
   ont été désaturées et les fonds ramenés près du blanc : la
   distinction entre une définition, une méthode et un exemple reste
   immédiate, mais la page ne clignote plus. Le filet de gauche porte la
   couleur, le fond ne fait que l'accompagner.
   Toutes les étiquettes ont été vérifiées au contraste : la plus faible
   est à 5,3 sur son fond, au-dessus du seuil de 4,5. */
.definition{background:var(--o-50);border-left:4px solid var(--o-600)}
.definition strong:first-child{color:var(--o-800);display:block;margin-bottom:4px}
.propriete{background:var(--g-50);border-left:4px solid var(--g-600)}
.propriete strong:first-child{color:var(--g-800);display:block;margin-bottom:4px}
.methode{background:#f5f8fc;border-left:4px solid var(--blue)}
.methode strong:first-child{color:#2f5a86;display:block;margin-bottom:4px}
.exemple{background:#f8f5fb;border-left:4px solid #9a7ab8}
.exemple strong:first-child{color:#5f4578;display:block;margin-bottom:4px}
.remarque{background:#fdfaf7;border-left:4px solid var(--o-300)}
.remarque strong:first-child{color:var(--o-700);display:block;margin-bottom:4px}
.attention,.loi{background:#fdf3ee;border-left:4px solid #cf6a3c}
.attention strong:first-child,.loi strong:first-child{color:#a8431a;display:block;margin-bottom:4px}
.astuce{background:var(--g-50);border-left:4px solid var(--g-500)}
.astuce strong:first-child{color:var(--g-800);display:block;margin-bottom:4px}
.date-cle,.chiffre-cle{background:#fdf8ed;border-left:4px solid #c9a15a}
.date-cle strong:first-child,.chiffre-cle strong:first-child{color:#7a5a1c;display:block;margin-bottom:4px}
.vocabulaire{background:#f7f6fb;border-left:4px solid #8a80bd}
.vocabulaire strong:first-child{color:#4a4180;display:block;margin-bottom:4px}
.portrait,.artiste{background:var(--g-50);border-left:4px solid var(--g-600)}
.portrait strong:first-child,.artiste strong:first-child{color:var(--g-800);display:block;margin-bottom:4px}
.experience{background:#f8f5fb;border-left:4px solid #9a7ab8}
.experience strong:first-child{color:#5f4578;display:block;margin-bottom:4px}
.source{background:#fcfaf7;border:1px solid var(--o-200);border-left:4px solid var(--o-500);border-radius:0 10px 10px 0;padding:14px 17px;margin:14px 0;font-family:Georgia,serif;font-style:italic;color:#4a3d33;font-size:.92rem}
.source strong:first-child{color:var(--o-800);font-style:normal;display:block;margin-bottom:5px;font-family:var(--font-body)}
.source .auteur{display:block;text-align:right;font-size:.8rem;color:var(--muted);margin-top:6px;font-style:normal}
.etapes{counter-reset:etape;list-style:none;margin:12px 0;padding:0}
.etapes li{counter-increment:etape;position:relative;padding:10px 14px 10px 46px;margin-bottom:8px;background:var(--g-50);border-radius:10px;border-left:4px solid var(--g-500);font-size:.9rem}
.etapes li::before{content:counter(etape);position:absolute;left:12px;top:10px;width:24px;height:24px;background:var(--g-600);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.8rem}
.formule{background:#fff;border:1.5px dashed var(--o-300);border-radius:10px;padding:12px 16px;text-align:center;font-weight:700;color:var(--o-800);margin:14px 0;font-size:1rem;font-family:Georgia,serif}
.illustration{background:var(--o-50);border:2px solid var(--o-200);border-radius:12px;padding:14px;margin:14px 0;text-align:center}
.illustration svg{max-width:100%;height:auto;margin:0 auto}
.illustration img{max-width:100%;max-height:360px;width:auto;height:auto;margin:0 auto;border-radius:8px;display:block;object-fit:contain}
.illustration figcaption{margin-top:8px;font-size:.8rem;color:var(--muted);font-style:italic}
.illustration .credit-photo{display:block;margin-top:2px;font-size:.7rem;color:var(--muted);font-style:normal;opacity:.8}
.illustration .credit-photo a{color:inherit;text-decoration:underline}
.illustration .duo-photos{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.illustration .duo-photos .duo-item{flex:1;min-width:150px;max-width:220px}
.illustration .duo-photos .duo-item img{width:100%;height:150px;object-fit:cover;border-radius:8px}
.illustration .duo-photos .duo-item span{display:block;margin-top:6px;font-size:.8rem;font-weight:700;color:var(--o-800)}
.chapitre table{width:100%;border-collapse:collapse;margin:14px 0;font-size:.86rem}
.chapitre th,.chapitre td{border:1px solid var(--o-200);padding:8px 10px;text-align:left}
.chapitre th{background:var(--o-700);color:#fff;font-weight:700;text-align:center}
.chapitre tbody tr:nth-child(even){background:var(--o-50)}
.lexique{background:var(--o-50);border-radius:12px;padding:16px 20px;margin:16px 0;border:1px solid var(--o-200)}
.lexique h4{color:var(--o-800);margin-bottom:10px}
.lexique dt{font-weight:800;color:var(--g-700);margin-top:8px;font-size:.9rem}
.lexique dd{margin-left:16px;margin-bottom:3px;font-size:.88rem}
.cours-nav{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:28px;padding-top:18px;border-top:2px solid var(--o-100)}
.pq-titre{font-family:var(--font-head);font-weight:800;font-size:1.05rem;color:var(--o-800);margin-bottom:4px;display:flex;align-items:center;gap:6px;position:sticky;top:-24px;background:#fff;padding:24px 0 8px;z-index:5}
.pq-sous{color:var(--muted);font-size:.78rem;margin-bottom:14px}
.pq-item{border:2px solid var(--o-100);border-radius:12px;padding:13px 15px;margin-bottom:14px;background:var(--o-50)}
.pq-item .pq-chap{font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;color:var(--o-600);font-weight:800;margin-bottom:4px}
.pq-item .pq-q{font-weight:700;font-size:.86rem;color:var(--ink);margin-bottom:8px}
.pq-item .pq-toggle{width:100%;text-align:left;background:var(--o-100);border:0;padding:7px 10px;border-radius:8px;font-weight:700;font-size:.76rem;color:var(--o-700);cursor:pointer;margin-bottom:6px}
.pq-item .pq-toggle:hover{background:var(--o-200)}
.pq-item .pq-toggle.pq-toggle-methode{background:var(--blue-fonce);color:#fff}
.pq-item .pq-toggle.pq-toggle-methode:hover{background:#2c68a0}
.pq-methode{margin-top:6px;padding:0;background:#eef4fd;border-radius:10px;border:1.5px solid #c7dcf0;overflow:hidden}
.pq-methode-titre{background:var(--blue-fonce);color:#fff;font-weight:800;font-size:.75rem;padding:7px 11px;text-transform:uppercase;letter-spacing:.03em}
.pq-methode ol{counter-reset:etm;list-style:none;margin:0;padding:10px 11px}
.pq-methode li{counter-increment:etm;position:relative;padding:6px 8px 6px 30px;margin-bottom:6px;font-size:.79rem;line-height:1.45;color:#1c3d5c}
.pq-methode li::before{content:counter(etm);position:absolute;left:0;top:6px;width:19px;height:19px;background:var(--blue-fonce);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.68rem}
.pq-item .pq-rep{margin-top:8px;padding:10px 12px;background:var(--g-50);border-left:3px solid var(--g-500);border-radius:0 8px 8px 0;font-size:.83rem;color:var(--g-900)}
.pq-item .pq-rep strong{color:var(--g-700)}
.pq-vide{text-align:center;color:var(--muted);font-size:.85rem;padding:30px 10px}
.quiz-page{max-width:820px;margin:0 auto;padding:32px 24px 80px}
.quiz-page-header{text-align:center;margin-bottom:26px}
.quiz-page-header h1{color:var(--o-900);font-size:1.7rem}
.quiz-liste{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;margin-bottom:10px}
.quiz-tuile{background:#fff;border:2px solid var(--o-100);border-radius:14px;padding:18px;text-align:center;cursor:pointer;transition:.15s;box-shadow:var(--shadow-sm)}
.quiz-tuile:hover{border-color:var(--o-400);transform:translateY(-2px)}
.quiz-tuile.fait{border-color:var(--g-400);background:var(--g-50)}
.quiz-tuile .num{font-family:var(--font-head);font-weight:800;font-size:1.5rem;color:var(--o-700)}
.quiz-tuile .lbl{font-size:.8rem;color:var(--muted);margin:4px 0 10px}
.quiz-tuile .note-badge{display:inline-block;font-weight:800;font-size:.85rem;padding:5px 12px;border-radius:999px;background:var(--g-100);color:var(--g-700)}
.quiz-tuile .note-badge.faible{background:#fdecea;color:#9c2a22}
.quiz-tuile .note-badge.moyen{background:#fff3d6;color:#8a5a00}
.quiz-card{background:#fff;border:2px solid var(--o-100);border-radius:14px;padding:18px 20px;margin-bottom:14px;box-shadow:var(--shadow-sm)}
.quiz-num{display:inline-flex;width:26px;height:26px;background:var(--o-600);color:#fff;border-radius:50%;align-items:center;justify-content:center;font-weight:800;font-size:.78rem;margin-right:8px}
.quiz-q{font-weight:800;color:var(--o-800);margin-bottom:12px;font-size:.96rem}
.quiz-options label{display:block;padding:10px 13px;margin:6px 0;background:var(--o-50);border-radius:10px;cursor:pointer;border:2px solid transparent;font-size:.88rem;transition:.15s}
.quiz-options label:hover{background:var(--o-100)}
.quiz-options input{margin-right:8px}
.quiz-options label.correct{background:var(--g-100)!important;border-color:var(--g-500)!important}
.quiz-options label.incorrect{background:#fdecea!important;border-color:var(--danger)!important}
.quiz-feedback{margin-top:8px;padding:8px 12px;border-radius:8px;font-weight:700;font-size:.82rem}
.quiz-feedback.ok{background:var(--g-100);color:var(--g-800)}
.quiz-feedback.ko{background:#fdecea;color:#9c2a22}
.quiz-submit{display:block;width:100%;max-width:380px;margin:24px auto;padding:14px 22px;background:var(--o-600);color:#fff;border:0;border-radius:12px;font-size:1rem;font-weight:800;cursor:pointer;box-shadow:0 8px 18px rgba(242,102,29,.28)}
.quiz-submit:hover{background:var(--o-700);transform:translateY(-1px)}
.quiz-submit:disabled{background:#b8ada4;cursor:not-allowed;transform:none}
.quiz-score{display:none;text-align:center;padding:26px;margin:22px auto;background:#fff;border-radius:16px;box-shadow:var(--shadow-md);max-width:440px}
.quiz-score h2{font-size:1.5rem;color:var(--o-800)}
.quiz-score .score-value{font-size:2.6rem;font-weight:800;color:var(--o-700);font-family:var(--font-head)}
.quiz-score .note-sur-20{font-size:1.1rem;font-weight:700;color:var(--g-700);margin-top:4px}
.quiz-score .score-bar{height:11px;background:var(--o-100);border-radius:999px;margin:14px 0;overflow:hidden}
.quiz-score .score-bar-fill{height:100%;background:var(--g-600);border-radius:999px;transition:width .7s ease}
.locked-wrap{min-height:calc(100vh - var(--nav-h));display:flex;align-items:center;justify-content:center;padding:60px 20px}
.locked-card{max-width:560px;width:100%;text-align:center;padding:40px 36px;background:#fff;border-radius:18px;box-shadow:var(--shadow-md)}
/* Pied clair, comme le reste du site : un aplat brun foncé en bas de
   chacune des 374 pages tirait l'œil vers le bas sans rien apporter. */
.footer{background:var(--o-50);color:var(--muted);padding:30px 24px;text-align:center;
  font-size:.82rem;border-top:1px solid var(--o-200)}
.footer a{color:var(--o-800);font-weight:600}
.field label{display:block;font-weight:700;font-size:.85rem;margin-bottom:5px;color:var(--o-800)}
.field textarea{width:100%;padding:11px 13px;border:1.5px solid var(--o-200);border-radius:10px;background:#fff;font-size:.92rem;margin-bottom:12px;font-family:inherit;resize:vertical}
.field textarea:focus{outline:none;border-color:var(--o-500);box-shadow:0 0 0 3px var(--o-100)}
.field input,.field select{width:100%;padding:11px 13px;border:1.5px solid var(--o-200);border-radius:10px;background:#fff;font-size:.92rem;margin-bottom:12px;font-family:inherit}
.field input:focus,.field select:focus{outline:none;border-color:var(--o-500);box-shadow:0 0 0 3px var(--o-100)}
.auth-wrap{min-height:calc(100vh - var(--nav-h));display:flex;align-items:center;justify-content:center;padding:40px 20px}
.auth-box{width:100%;max-width:420px;background:#fff;border-radius:18px;padding:34px 32px;box-shadow:var(--shadow-md)}
.notice{padding:12px 14px;border-radius:10px;background:#fff3d6;color:#8a5a00;font-size:.85rem;font-weight:600;margin-bottom:14px}
.notice.error{background:#fdecea;color:#9c2a22}
.notice.success{background:var(--g-100);color:var(--g-800)}
.admin-shell{max-width:1200px;margin:0 auto;padding:30px 24px 70px}
.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:26px}
.admin-stat{background:#fff;border:2px solid var(--o-100);border-radius:14px;padding:18px;text-align:center}
.admin-stat .val{font-family:var(--font-head);font-weight:800;font-size:1.7rem;color:var(--o-700)}
.admin-stat .lbl{color:var(--muted);font-size:.8rem}
.admin-table{width:100%;border-collapse:collapse;background:#fff;border-radius:14px;overflow:hidden;box-shadow:var(--shadow-sm)}
.admin-table th{background:var(--o-700);color:#fff;padding:11px 14px;text-align:left;font-size:.82rem}
.admin-table td{padding:11px 14px;border-bottom:1px solid var(--o-100);font-size:.86rem}
.admin-table tr:hover td{background:var(--o-50)}
.tag-role{padding:3px 9px;border-radius:999px;font-size:.7rem;font-weight:800}
.tag-role.eleve{background:var(--o-100);color:var(--o-700)}
.tag-role.admin{background:var(--g-100);color:var(--g-700)}
@media(max-width:980px){
  .cours-shell{grid-template-columns:1fr;height:auto;overflow:visible}
  .panneau-questions{border-left:0;border-top:2px solid var(--o-100)}
  .grille-matieres{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .grille-matieres{grid-template-columns:1fr}
  .navlink{display:none}
  .panneau-cours{padding:20px 16px 60px}.chapitre{padding:18px}
}
@media print{
  .nav,.footer,.cours-nav,.sommaire,.panneau-questions,.barre-outils{display:none!important}
  .cours-shell{grid-template-columns:1fr;height:auto;overflow:visible;display:block}
  .panneau-cours{overflow:visible;padding:0}
  .chapitre{box-shadow:none;border:0;page-break-inside:avoid}
  .cours-page{max-width:100%;padding:0}
  .rep{display:block!important}
}

/* ---------- Fiches de revision (pages "questions-6e-*") ---------- */
.cours-page{max-width:960px;margin:0 auto;padding:34px 24px 80px}
.barre-outils{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px}
.bloc-questions{background:#fff;border:1px solid var(--o-100);border-radius:18px;box-shadow:var(--shadow-sm);padding:28px;margin-bottom:26px}
.bloc-questions h2{font-size:1.38rem;color:var(--o-800);border-bottom:3px solid var(--o-100);padding-bottom:10px;margin-bottom:6px}
.bloc-questions .compteur{color:var(--muted);font-size:.85rem;margin-bottom:18px}
.question-item{border:1px solid var(--o-100);border-radius:14px;padding:16px 18px;margin-bottom:12px;background:var(--o-50)}
.question-item .entete{display:flex;align-items:flex-start;gap:10px}
.num-q{display:inline-flex;width:28px;height:28px;background:var(--o-600);color:#fff;border-radius:50%;align-items:center;justify-content:center;font-weight:800;font-size:.84rem;flex:none;margin-top:2px}
.txt-q{font-weight:600;flex:1}
.rep{margin-top:10px;padding:12px 14px;background:var(--g-50);border-left:4px solid var(--g-500);border-radius:0 10px 10px 0;font-size:.92rem}
.rep strong{color:var(--g-700)}

/* ---------- Espace eleve et administration (moteur multi-niveaux) ---------- */
.small-muted{color:var(--muted);font-size:.85rem}
.grid{display:grid;gap:20px}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}
.row{display:flex;align-items:center;gap:12px}
.card{background:#fff;border:1px solid var(--o-100);border-radius:18px;padding:22px;box-shadow:var(--shadow-sm)}
.card.hoverable{transition:transform .2s ease,box-shadow .2s ease}.card.hoverable:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.icon-tile{width:50px;height:50px;border-radius:14px;background:var(--o-100);color:var(--o-700);display:flex;align-items:center;justify-content:center;margin-bottom:10px;flex:none}
.icon-tile svg{width:26px;height:26px}
.icon-mini{display:inline-flex;width:18px;height:18px;vertical-align:-4px}.icon-mini svg{width:100%;height:100%}
.badge.dark{background:var(--o-700);color:#fff}.badge.green.dark{background:var(--g-600);color:#fff}
.badge.premium{background:var(--o-700);color:#fff}
.select{width:100%;padding:12px 14px;border:1.5px solid var(--o-200);border-radius:12px;background:#fff;font-weight:700;color:var(--o-800);margin-bottom:6px;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f2661d' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:18px}
.select:disabled{background-color:var(--o-50);color:var(--muted);cursor:not-allowed}
.app-shell{display:grid;grid-template-columns:270px 1fr 340px;min-height:calc(100vh - var(--nav-h))}
.app-side{padding:26px 20px;background:#fff;border-right:1px solid var(--o-100);overflow-y:auto}
.app-main{padding:32px;overflow-y:auto}
.app-chat{padding:24px;background:#fff;border-left:1px solid var(--o-100);display:flex;flex-direction:column}
.catalog-head{margin-bottom:18px}.catalog-head h2{font-size:1.4rem;color:var(--o-800);margin-bottom:4px}
.lesson-catalog-list{display:flex;flex-direction:column;gap:12px}
.lesson-catalog-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 20px;border-radius:18px;border:2px solid var(--o-100);background:#fff;cursor:pointer;transition:.15s}
.lesson-catalog-card:hover{border-color:var(--o-400);box-shadow:var(--shadow-sm);transform:translateY(-2px)}
.lesson-catalog-card.done{border-color:var(--g-300);background:var(--g-50)}.lesson-catalog-card.locked{background:var(--o-50);opacity:.92}
.lesson-catalog-card .lc-title{font-weight:800;color:var(--o-800);font-size:1.02rem}.lesson-catalog-card .lc-sub{color:var(--muted);font-size:.85rem;margin-top:2px}
.done-check{display:inline-flex;align-items:center;gap:6px;color:var(--g-700);font-weight:800;font-size:.85rem;background:var(--g-100);padding:6px 12px;border-radius:999px}
.lock-badge{display:inline-flex;align-items:center;gap:6px;color:var(--o-700);font-weight:800;font-size:.8rem;background:var(--o-100);padding:6px 12px;border-radius:999px}
.lesson-list{display:flex;flex-direction:column;gap:8px}
.lesson-btn{text-align:left;padding:12px 14px;border-radius:12px;border:1.5px solid transparent;background:var(--o-50);font-weight:700;color:var(--o-800);cursor:pointer;font-size:.92rem}
.lesson-btn:hover{background:var(--o-100)}.lesson-btn.active{background:var(--o-100);border-color:var(--o-400)}
.submenu{display:flex;flex-direction:column;gap:6px;margin:4px 0 4px 10px;padding-left:10px;border-left:2px solid var(--o-200)}
.submenu-item{text-align:left;padding:9px 12px;border-radius:10px;border:1px solid transparent;background:transparent;font-weight:600;color:var(--o-800);cursor:pointer;font-size:.85rem}
.submenu-item:hover{background:var(--o-100)}.submenu-item.active{background:var(--o-100);border-color:var(--o-400)}
.premium-teaser{text-align:center;padding:56px 30px;background:var(--o-50);border:1px solid var(--o-200)}
.premium-teaser .lock-emoji{font-size:3rem;margin-bottom:10px}
.subject-card{cursor:pointer;text-align:left;border:2px solid var(--o-100)}
.subject-card h4{margin:0 0 4px;font-size:1rem;color:var(--o-800)}.subject-card span{color:var(--muted);font-size:.8rem}
.chatlog{flex:1;overflow-y:auto;background:var(--o-50);border-radius:16px;padding:14px;margin-bottom:14px;min-height:280px}
.msg{padding:11px 14px;border-radius:14px;margin:8px 0;font-size:.92rem;max-width:92%}
.msg.user{background:var(--o-600);color:#fff;margin-left:auto;border-bottom-right-radius:4px}
.msg.ai{background:#fff;border:1px solid var(--o-100);margin-right:auto;border-bottom-left-radius:4px}
.chat-input{display:flex;flex-direction:column;gap:10px}
.chat-input textarea{width:100%;padding:12px 14px;border:1.5px solid var(--o-200);border-radius:14px;resize:vertical;font-family:inherit}
.chat-input textarea:focus{outline:none;border-color:var(--o-500);box-shadow:0 0 0 4px var(--o-100)}
.tablewrap{overflow-x:auto;border-radius:18px}
table.users{width:100%;border-collapse:collapse;background:#fff;min-width:1080px}
table.users thead th{text-align:left;padding:14px 16px;background:var(--o-800);color:var(--o-100);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;font-weight:800}
table.users thead th:first-child{border-top-left-radius:16px}table.users thead th:last-child{border-top-right-radius:16px}
table.users td{padding:13px 16px;border-bottom:1px solid var(--o-100);font-size:.88rem;vertical-align:middle}
table.users tbody tr:hover{background:var(--o-50)}
.pill{padding:4px 10px;border-radius:999px;font-weight:800;font-size:.72rem}
.pill.trial{background:#fff1cf;color:#8a6100}.pill.active{background:var(--g-100);color:var(--g-700)}
.pill.pending{background:#e3ecfb;color:#28479c}.pill.blocked{background:#fdecea;color:#9c2a22}
.progress-chip{display:inline-flex;align-items:center;gap:6px;background:var(--g-100);color:var(--g-700);padding:4px 10px;border-radius:999px;font-weight:800;font-size:.78rem;cursor:pointer}
.progress-chip:hover{background:var(--g-200)}
.actions-cell{display:flex;flex-wrap:wrap;gap:6px;align-content:flex-start}
/* Quatre boutons par ligne d'élève : sans largeur minimale, ils
   s'empilent en colonne et chaque ligne du tableau double de hauteur. */
.users td.actions-cell{min-width:270px}
.drawer-overlay{position:fixed;inset:0;background:rgba(43,33,24,.45);z-index:100;display:flex;align-items:flex-start;justify-content:center;padding:40px 20px;overflow-y:auto}
.drawer{background:#fff;border-radius:24px;max-width:640px;width:100%;padding:30px;box-shadow:var(--shadow-md);position:relative}
.drawer h3{color:var(--o-800);margin-bottom:4px}
.drawer-section{margin-top:18px}.drawer-section h4{font-size:.82rem;text-transform:uppercase;color:var(--g-700);letter-spacing:.04em;margin-bottom:10px}
.progress-item{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--o-100);font-size:.88rem}
.notif-item{padding:10px 0;border-bottom:1px solid var(--o-100);font-size:.85rem}
.notif-item .notif-status{font-weight:800;font-size:.72rem;padding:3px 8px;border-radius:999px;margin-right:8px}
.notif-status.envoye{background:var(--g-100);color:var(--g-700)}.notif-status.simule{background:#fff1cf;color:#8a6100}
.notif-status.erreur,.notif-status.sans_destinataire{background:#fdecea;color:#9c2a22}
.btn.admin-tab{opacity:.55}.btn.admin-tab.active{opacity:1}

/* ---------- Administration : recherche d'un élève ---------- */
.recherche-eleves{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.champ-recherche{position:relative;flex:1 1 320px;min-width:0;display:flex;align-items:center}
.champ-recherche .loupe{position:absolute;left:13px;font-size:.92rem;pointer-events:none;opacity:.6}
.champ-recherche input{width:100%;font:inherit;font-size:.9rem;padding:11px 38px 11px 38px;
  border:1.5px solid var(--o-200);border-radius:11px;background:#fff;color:var(--ink)}
.champ-recherche input:focus{outline:2px solid var(--o-500);outline-offset:-1px;border-color:var(--o-500)}
.champ-recherche input::-webkit-search-cancel-button{display:none}
.champ-recherche .vider{position:absolute;right:9px;width:24px;height:24px;border:0;border-radius:50%;
  background:var(--o-100);color:var(--o-700);cursor:pointer;font-size:.72rem;line-height:1}
.champ-recherche .vider:hover{background:var(--o-200)}
.recherche-eleves select{font:inherit;font-size:.86rem;padding:11px 12px;border:1.5px solid var(--o-200);
  border-radius:11px;background:#fff;color:var(--ink);cursor:pointer}
.recherche-eleves select:focus{outline:2px solid var(--o-500);outline-offset:-1px}

/* ---------- Administration : suppression d'un compte ---------- */
.drawer-suppression{max-width:560px;border-top:4px solid var(--danger)}
.notice.notice-danger{background:#fdecea;color:#9c2a22}
.liste-suppression{list-style:none;margin:0;padding:0}
.liste-suppression li{padding:7px 0;border-bottom:1px solid var(--o-100);font-size:.86rem;color:var(--ink)}
.liste-suppression li:last-child{border-bottom:0}
.liste-suppression b{color:var(--danger);font-size:.95rem;min-width:24px;display:inline-block}
.champ-confirmation{width:100%;font:inherit;font-size:.9rem;padding:11px 13px;
  border:1.5px solid var(--o-200);border-radius:11px;background:#fff;color:var(--ink)}
.champ-confirmation:focus{outline:2px solid var(--danger);outline-offset:-1px;border-color:var(--danger)}
.erreur-suppression{color:var(--danger)!important;font-weight:700;margin-top:8px}

/* lu par les lecteurs d'écran, invisible à l'œil */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media(max-width:980px){.app-shell{grid-template-columns:1fr}.app-side,.app-chat{border:0;border-bottom:1px solid var(--o-100)}}

/* ---------- Ancien moteur multi-niveaux : contenu des pages de cours ---------- */
/* Gabarit documente dans GUIDE-MODIFICATION.md (.partie / .encadre-* / .methode-head) */
.partie{margin:0 0 34px}
.partie-titre{font-family:var(--font-head);font-weight:800;font-size:1.3rem;color:var(--o-800);border-bottom:3px solid var(--o-100);padding-bottom:10px;margin-bottom:16px}
.sous-titre{font-weight:800;color:var(--g-700);margin:18px 0 6px;font-size:1rem}
.label{font-weight:800;display:block;margin-bottom:5px}
.encadre-def,.encadre-prop,.encadre-exemple,.encadre-remarque,.encadre-attention,.encadre-astuce,.encadre-date,.encadre-vocab,.encadre-portrait{
  padding:16px 20px;margin:16px 0;border-radius:0 12px 12px 0}
.encadre-def{background:var(--o-50);border-left:5px solid var(--o-600)}.encadre-def .label{color:var(--o-800)}
.encadre-prop{background:var(--g-50);border-left:5px solid var(--g-600)}.encadre-prop .label{color:var(--g-800)}
.encadre-exemple{background:#eef4fd;border-left:5px solid var(--blue)}.encadre-exemple .label{color:#1c5a94}
.encadre-remarque{background:#fffaf5;border-left:5px solid var(--o-400)}.encadre-remarque .label{color:var(--o-700)}
.encadre-attention{background:#fdf0e8;border-left:5px solid #e2703a}.encadre-attention .label{color:#b4471a}
.encadre-astuce{background:var(--g-100);border-left:5px solid var(--g-500)}.encadre-astuce .label{color:var(--g-800)}
.encadre-date{background:#fff6e5;border-left:5px solid #d9a441}.encadre-date .label{color:#8a5a00}
.encadre-vocab{background:#f2f0fa;border-left:5px solid #7a6bc4}.encadre-vocab .label{color:#4a3d91}
.encadre-portrait{background:var(--g-50);border-left:5px solid var(--g-600)}.encadre-portrait .label{color:var(--g-800)}
.source-hist{background:#fcfaf7;border:1px solid var(--o-200);border-left:4px solid var(--o-500);border-radius:0 10px 10px 0;padding:16px 20px;margin:16px 0;font-family:Georgia,serif;font-style:italic;color:#4a3d33}
.source-hist .label{font-style:normal;color:var(--o-800)}
.source-hist .auteur{display:block;text-align:right;font-size:.85rem;color:var(--muted);margin-top:8px;font-style:normal}
.methode-head{background:var(--o-100);padding:12px 18px;border-radius:14px 14px 0 0;font-weight:800;color:var(--o-800);font-family:var(--font-head)}
.methode-body{padding:18px 20px;background:#fff;border:2px solid var(--o-200);border-top:0;border-radius:0 0 14px 14px;margin-bottom:18px}
.methode-enonce{background:var(--o-50);border-radius:10px;padding:14px 16px;margin-bottom:14px;font-weight:600}
.methode-correction{background:var(--g-50);border-left:4px solid var(--g-500);border-radius:0 10px 10px 0;padding:14px 16px}
.methode-correction .label{color:var(--g-700)}
.exercice{background:#fffdf5;border:2px solid var(--o-300);border-radius:14px;padding:18px 20px;margin:18px 0}
.correction-bloc{margin-top:12px;padding:14px 16px;background:var(--g-50);border-left:4px solid var(--g-500);border-radius:0 10px 10px 0;font-size:.93rem;color:var(--g-900)}

/* ---------- Page d'accueil : landing marketing ---------- */
.navlink.actif{background:var(--o-100)}
.hero-landing{background:var(--o-50)}
.hero-landing .wrap{max-width:1300px;margin:0 auto;padding:64px 24px 30px;display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.hero-landing h1{font-size:clamp(2.1rem,4.2vw,3.15rem);color:var(--o-900);line-height:1.12;margin:18px 0}
.hero-landing h1 .accent{color:var(--g-600)}
.hero-landing .lead{color:var(--muted);font-size:1.08rem;max-width:520px;margin:0 0 26px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:22px}
.hero-trust{display:flex;gap:20px;flex-wrap:wrap;color:var(--muted);font-size:.86rem}
.hero-trust b{color:var(--o-700)}
.hero-illustration svg{width:100%;height:auto;filter:drop-shadow(0 22px 46px rgba(122,46,10,.16))}
.section-landing{padding:64px 24px;max-width:1280px;margin:0 auto}
.section-landing.alt{background:#fff}
.section-landing-head{max-width:640px;margin:0 auto 36px;text-align:center}
.section-landing-head .badge{margin-bottom:14px}
.section-landing-head h2{font-size:clamp(1.55rem,3vw,2.15rem);color:var(--o-900)}
.section-landing-head p{color:var(--muted);font-size:1rem}
.filieres-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.filiere-card{background:#fff;border:2px solid var(--o-100);border-radius:16px;padding:16px 18px;display:flex;align-items:center;gap:12px;transition:.15s}
.filiere-card:hover{border-color:var(--o-300);transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.filiere-card .emo{font-size:1.5rem;flex:none}
.filiere-card .nom{font-weight:700;color:var(--o-800);font-size:.88rem;line-height:1.3}
.pricing-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;max-width:820px;margin:0 auto}
.pricing-card{background:#fff;border:2px solid var(--o-100);border-radius:22px;padding:34px 30px;text-align:center;position:relative}
.pricing-card.featured{border-color:var(--o-500);box-shadow:var(--shadow-md)}
.pricing-card .tag{position:absolute;top:-13px;left:50%;transform:translateX(-50%)}
.pricing-card h3{color:var(--o-800);font-size:1.05rem;margin-bottom:6px}
.pricing-card .prix{font-family:var(--font-head);font-weight:800;font-size:2.3rem;color:var(--o-800);margin:8px 0}
.pricing-card .prix small{font-size:.95rem;color:var(--muted);font-weight:700}
.pricing-list{list-style:none;padding:0;margin:20px 0 24px;text-align:left;display:flex;flex-direction:column;gap:10px}
.pricing-list li{display:flex;gap:10px;align-items:flex-start;font-size:.9rem;color:var(--ink)}
.pricing-list li .ok{color:var(--g-600);font-weight:800;flex:none}
.pricing-list li > span:not(.ok){display:block}
@media(max-width:980px){
  .hero-landing .wrap{grid-template-columns:1fr}
  .hero-illustration{order:-1;max-width:420px;margin:0 auto}
  .pricing-grid{grid-template-columns:1fr}
}
@media(max-width:640px){
  .hero-cta{flex-direction:column;align-items:stretch}
  .hero-cta .btn{width:100%}
}

/* ---------- Arborescence du programme (pages/programme.html) ---------- */
.programme-shell{max-width:1200px;margin:0 auto;padding:30px 24px 80px}
.fil-ariane{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.85rem;color:var(--muted);margin-bottom:22px}
.fil-ariane a{color:var(--o-700);font-weight:700}
.fil-ariane a:hover{text-decoration:underline}
.fil-ariane .sep{color:var(--o-300)}
.fil-ariane .actuel{color:var(--o-900);font-weight:800}
.programme-head{margin-bottom:30px}
.programme-head h1{font-size:clamp(1.6rem,3.2vw,2.2rem);color:var(--o-900);margin-bottom:6px}
.programme-head p{color:var(--muted)}
.niveau-pill{display:inline-block;font-size:.68rem;font-weight:800;padding:3px 9px;border-radius:999px;margin-top:8px}
.niveau-pill.pret{background:var(--g-100);color:var(--g-700)}
.niveau-pill.attente{background:var(--o-100);color:var(--o-700)}
.chapitre-num{display:inline-flex;width:26px;height:26px;flex:none;background:var(--o-600);color:#fff;border-radius:50%;align-items:center;justify-content:center;font-weight:800;font-size:.76rem;margin-right:12px}

/* ---------- Verrouillage du contenu premium (essai gratuit vs illimite) ---------- */
.contenu-verrouille{position:relative;overflow:hidden}
.contenu-verrouille>*:not(.verrou-overlay){pointer-events:none;user-select:none}
.contenu-verrouille.taille-chapitre{max-height:190px}
.contenu-verrouille.taille-bloc{max-height:150px}
.contenu-verrouille.taille-cours{max-height:420px}
.verrou-overlay{position:absolute;left:0;right:0;bottom:0;top:0;background:linear-gradient(to bottom,rgba(255,255,255,0) 0%,var(--o-50) 62%);display:flex;align-items:flex-end;justify-content:center;padding-bottom:16px;pointer-events:auto}
.verrou-carte{background:#fff;border:2px solid var(--o-300);border-radius:16px;padding:16px 22px;text-align:center;box-shadow:var(--shadow-md);max-width:340px}
.verrou-carte .cadenas{font-size:1.4rem}
.verrou-carte p{color:var(--o-800);font-weight:700;margin:6px 0 12px;font-size:.88rem;line-height:1.4}
.sommaire a.verrouille{opacity:.65}
.sommaire a.verrouille::after{content:" 🔒";font-size:.7em}
.quiz-tuile.verrouillee{position:relative;opacity:.72;cursor:pointer}
.quiz-tuile.verrouillee::after{content:"🔒";position:absolute;top:10px;right:12px;font-size:1rem}
.bloc-questions.contenu-verrouille .verrou-overlay{background:linear-gradient(to bottom,rgba(255,255,255,0) 0%,#fff 70%)}

/* ---------- Verrou pose par le serveur (contenu reellement absent) ---------- */
.chapitre-verrouille,.partie-verrouillee{background:var(--o-50);
  border:2px dashed var(--o-300);border-radius:16px;padding:22px 24px;margin:18px 0}
.chapitre-verrouille h2,.partie-verrouillee .partie-titre{color:var(--o-800);font-size:1.05rem;
  margin:0 0 10px;border:0;padding:0}
.verrou-serveur{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}
.verrou-serveur .cadenas{font-size:1.5rem}
.verrou-serveur p{color:var(--o-800);font-weight:600;font-size:.88rem;line-height:1.5;margin:0;max-width:520px}
.liste-verrouillee{list-style:none;padding:0;margin:6px 0 4px;display:flex;flex-wrap:wrap;
  gap:6px 8px;justify-content:center;max-width:640px}
.liste-verrouillee li{background:#fff;border:1px solid var(--o-200);border-radius:999px;
  padding:4px 11px;font-size:.79rem;font-weight:600;color:var(--muted)}
.liste-verrouillee li::before{content:"🔒 ";font-size:.85em}
@media(max-width:620px){.chapitre-verrouille,.partie-verrouillee{padding:16px 14px}}

/* ---- Page d'accueil promotionnelle ---- */
.bandeau-promo{background:var(--o-700);color:#fff;text-align:center;
  padding:11px 20px;font-size:.88rem;font-weight:700;display:flex;justify-content:center;align-items:center;
  gap:10px;flex-wrap:wrap}
.bandeau-promo b{font-weight:800}
.bandeau-promo a{color:#fff;text-decoration:underline;font-weight:800;white-space:nowrap}

.hero-landing .prix-accroche{display:inline-flex;align-items:baseline;gap:8px;background:var(--g-100);
  color:var(--g-800);border:1.5px solid var(--g-300);border-radius:999px;padding:7px 16px;
  font-size:.85rem;font-weight:800;margin-bottom:18px}
.hero-landing .prix-accroche b{font-size:1.05rem}
.hero-note{color:var(--muted);font-size:.82rem;margin:-8px 0 22px}

.avantages-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.avantage{background:#fff;border:2px solid var(--o-100);border-radius:18px;padding:26px 24px;
  transition:.2s;box-shadow:var(--shadow-sm)}
.avantage:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--o-300)}
.avantage .ico{font-size:1.9rem;margin-bottom:10px}
.avantage h3{color:var(--o-800);font-size:1.06rem;margin-bottom:7px}
.avantage p{color:var(--muted);font-size:.9rem;margin:0}

.etapes-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:22px;
  counter-reset:etape}
.etape{position:relative;background:var(--o-50);border:2px solid var(--o-100);border-radius:18px;
  padding:30px 24px 24px}
.etape::before{counter-increment:etape;content:counter(etape);position:absolute;top:-18px;left:24px;
  width:38px;height:38px;border-radius:50%;background:var(--o-600);color:#fff;display:flex;
  align-items:center;justify-content:center;font-family:var(--font-head);font-weight:800;
  font-size:1.15rem;box-shadow:0 6px 16px rgba(242,102,29,.3)}
.etape h3{color:var(--o-800);font-size:1.04rem;margin-bottom:6px}
.etape p{color:var(--muted);font-size:.89rem;margin:0}

.pricing-grid.trois{grid-template-columns:repeat(3,1fr);max-width:1060px;align-items:stretch}
.pricing-grid.trois .pricing-card{display:flex;flex-direction:column}
.pricing-grid.trois .pricing-list{flex:1}
.pricing-card.vedette{border-color:var(--g-600);box-shadow:var(--shadow-md);
  background:var(--g-50)}
.pricing-card .prix-avant{font-size:1rem;color:var(--muted);text-decoration:line-through;
  font-weight:700;display:block;margin-bottom:-4px}
.pricing-card .prix-detail{color:var(--g-700);font-weight:800;font-size:.86rem;margin:-4px 0 4px}
.eco-badge{display:inline-block;background:var(--g-600);color:#fff;border-radius:999px;
  padding:4px 12px;font-size:.74rem;font-weight:800;margin-bottom:10px}
.pricing-card .sous-prix{color:var(--muted);font-size:.8rem;margin-top:12px}

.faq-liste{max-width:780px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
.faq-item{background:#fff;border:2px solid var(--o-100);border-radius:14px;overflow:hidden}
.faq-item summary{cursor:pointer;padding:16px 20px;font-weight:800;color:var(--o-800);
  font-size:.95rem;list-style:none;display:flex;justify-content:space-between;gap:12px;align-items:center}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:'+';font-size:1.3rem;color:var(--o-600);font-weight:800;flex:none}
.faq-item[open] summary::after{content:'−'}
.faq-item[open] summary{border-bottom:1px solid var(--o-100)}
.faq-item .reponse{padding:14px 20px 18px;color:var(--muted);font-size:.91rem}
.faq-item .reponse p{margin:0 0 10px}
.faq-item .reponse p:last-child{margin-bottom:0}

.cta-final{background:var(--g-800);color:#fff;border-radius:24px;
  padding:52px 36px;text-align:center;max-width:900px;margin:0 auto}
.cta-final h2{font-size:clamp(1.5rem,3vw,2.1rem);margin-bottom:12px;color:#fff}
.cta-final p{color:rgba(255,255,255,.9);font-size:1rem;max-width:560px;margin:0 auto 26px}
.cta-final .btn{background:#fff;color:var(--g-800);box-shadow:0 8px 24px rgba(0,0,0,.18)}
.cta-final .btn:hover{background:var(--o-50)}
.cta-final .btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.6)}
.cta-final .btn.ghost:hover{background:rgba(255,255,255,.12)}
.cta-final .rassurance{margin-top:18px;font-size:.83rem;color:rgba(255,255,255,.8)}

@media(max-width:1000px){ .avantages-grid{grid-template-columns:1fr 1fr} }
@media(max-width:900px){
  .pricing-grid.trois{grid-template-columns:1fr;max-width:460px;display:flex;flex-direction:column}
  .pricing-grid.trois .pricing-card.vedette{order:-1;margin-top:16px}
}
@media(max-width:620px){ .avantages-grid{grid-template-columns:1fr} }

.bande-niveaux{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:0 auto 34px;max-width:900px}
.pastille-niveau{display:flex;flex-direction:column;align-items:center;gap:1px;background:#fff;
  border:2px solid var(--o-100);border-radius:14px;padding:10px 20px;text-decoration:none;transition:.18s;
  min-width:118px}
.pastille-niveau:hover{border-color:var(--o-400);background:var(--o-50);transform:translateY(-2px)}
.pastille-niveau b{color:var(--o-800);font-family:var(--font-head);font-size:1rem}
.pastille-niveau span{color:var(--muted);font-size:.74rem;font-weight:700;white-space:nowrap}
@media(max-width:520px){ .pastille-niveau{min-width:96px;padding:9px 14px} }

/* ---- Panneau du tuteur ---- */
.chat-entete{display:flex;justify-content:space-between;align-items:center;gap:10px}
.msg-sources{margin-top:10px;padding-top:9px;border-top:1px dashed var(--o-200);
  display:flex;flex-direction:column;gap:5px;font-size:.76rem}
.msg-sources > span{color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.4px;font-size:.66rem}
.msg-sources a{color:var(--o-700);font-weight:700;text-decoration:none;line-height:1.35}
.msg-sources a:hover{text-decoration:underline}
.msg.en-cours{opacity:.65;font-style:italic}
.msg.erreur{background:#fde8e6;color:#b42318}
.footer-legal{font-size:.8rem;color:var(--muted);margin:6px 0}

/* ============================================================
   Bandeau et panneau de gestion des cookies
   ============================================================ */
.bandeau-cookies{position:fixed;left:0;right:0;bottom:0;z-index:9000;display:flex;gap:18px;
  align-items:center;flex-wrap:wrap;justify-content:space-between;
  /* Fond clair plutôt qu'un bloc brun foncé : c'est le seul aplat que
     tout visiteur voit, et il écrasait le bas de chaque page. */
  background:#fff;color:var(--ink);padding:16px 20px;
  border-top:1px solid var(--o-200);box-shadow:0 -2px 12px rgba(90,42,18,.07)}
.bandeau-cookies-texte{flex:1;min-width:260px}
.bandeau-cookies-texte strong{display:block;font-size:.95rem;margin-bottom:4px;color:var(--o-900)}
.bandeau-cookies-texte p{margin:0;font-size:.82rem;line-height:1.5;color:var(--muted)}
.bandeau-cookies-texte a{color:var(--o-800);text-decoration:underline}
.bandeau-cookies-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.bandeau-cookies-actions .btn{white-space:nowrap}

.fond-cookies{position:fixed;inset:0;z-index:9100;background:rgba(0,0,0,.5);
  display:flex;align-items:center;justify-content:center;padding:18px;overflow-y:auto}
.panneau-cookies{background:#fff;border-radius:14px;max-width:660px;width:100%;
  padding:24px;box-shadow:0 18px 50px rgba(0,0,0,.3);max-height:90vh;overflow-y:auto}
.panneau-cookies h2{margin:0 0 6px;font-size:1.3rem}
.categorie-cookies{border:1px solid var(--o-200,#f0d9c4);border-radius:10px;padding:14px;margin:14px 0}
.categorie-cookies.inactive{opacity:.75;background:var(--o-50,#fdf6ef)}
.categorie-entete{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.categorie-entete h3{margin:0;font-size:1rem}
.categorie-cookies p{margin:8px 0 0;font-size:.85rem;line-height:1.55;color:var(--muted,#6b5a4c)}
.etat-toujours{font-size:.75rem;font-weight:700;background:var(--o-100,#fbe8d6);
  color:var(--o-800,#7a3a12);border-radius:999px;padding:4px 10px;white-space:nowrap}
.interrupteur{display:flex;align-items:center;gap:8px;font-size:.85rem;font-weight:700;cursor:pointer}
.interrupteur input{width:18px;height:18px;cursor:pointer}
.actions-cookies{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:18px}
.actions-cookies .lien-politique{font-size:.8rem;margin-left:auto}

@media (max-width:640px){
  .bandeau-cookies{flex-direction:column;align-items:stretch;gap:12px;padding:14px}
  .bandeau-cookies-actions{justify-content:stretch}
  .bandeau-cookies-actions .btn{flex:1;text-align:center}
  .actions-cookies .lien-politique{margin-left:0;width:100%}
}

.tableau-cookies{width:100%;border-collapse:collapse;font-size:.85rem}
.tableau-cookies th,.tableau-cookies td{border:1px solid var(--o-200,#f0d9c4);padding:9px 11px;text-align:left;vertical-align:top}
.tableau-cookies th{background:var(--o-50,#fdf6ef);font-weight:800}
.tableau-cookies code{font-size:.82rem;word-break:break-all}
.footer-mini{padding:18px 20px;text-align:center;font-size:.8rem}
.footer-mini p{margin:0}
