/* ══ OVERLAYS LÉGAUX ══ */
.legal-overlay{display:none;position:fixed;inset:0;z-index:99500;background:rgba(5,6,8,0.85);backdrop-filter:blur(6px);padding:40px 16px;overflow-y:auto;}
.legal-overlay.on{display:block;}
.legal-panel{max-width:760px;margin:0 auto;background:var(--noir2);border:1px solid var(--or-border);border-radius:16px;padding:40px 32px;}
.legal-panel h2{font-family:'Playfair Display',serif;color:var(--or);font-size:22px;margin:0 0 24px;}
.legal-panel h3{font-family:'Playfair Display',serif;color:var(--blanc);font-size:15px;margin:24px 0 8px;}
.legal-panel h3:first-of-type{margin-top:0;}
.legal-panel p, .legal-panel li{font-size:13px;color:var(--blanc2);line-height:1.7;}
.legal-panel ul{padding-left:20px;margin:8px 0;}
.legal-close{position:sticky;top:0;float:right;background:rgba(255,255,255,0.06);border:none;color:var(--gris);width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:14px;}

/* ══ MODE PHOTO COPIE ══ */
.mode-rendu-switcher{
  display:flex;gap:10px;
  margin:16px 0 24px;padding:6px;
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.08);
  border-radius:12px;
}
.mode-btn{
  flex:1;padding:12px 16px;
  background:transparent;border:none;
  border-radius:8px;cursor:pointer;
  color:#8a8680;font-family:'Plus Jakarta Sans',sans-serif;
  font-size:13px;font-weight:600;
  transition:.15s;display:flex;align-items:center;justify-content:center;gap:8px;
}
.mode-btn:hover{color:#d4cfc6;}
.mode-btn.act{
  background:linear-gradient(135deg,rgba(200,168,75,0.18),rgba(200,168,75,0.05));
  color:#c8a84b;
  box-shadow:0 2px 8px rgba(0,0,0,0.2);
}
.mode-btn .ico{font-size:18px;}
.photo-zone{
  margin:24px 0;padding:32px;
  background:rgba(255,255,255,0.03);
  border:2px dashed rgba(200,168,75,0.3);
  border-radius:16px;
  text-align:center;
  transition:.2s;
}
.photo-zone:hover{
  border-color:rgba(200,168,75,0.5);
  background:rgba(255,255,255,0.04);
}
.photo-zone h3{
  font-family:'Playfair Display',serif;
  color:#c8a84b;font-size:18px;margin:0 0 6px;
}
.photo-zone p{
  color:#8a8680;font-size:13px;margin:0 0 18px;line-height:1.6;
}
.photo-upload-btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:12px 24px;
  background:linear-gradient(135deg,#c8a84b,#d4b95c);
  color:#0a0a0a;border:none;border-radius:10px;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:14px;font-weight:700;cursor:pointer;
  box-shadow:0 4px 14px rgba(200,168,75,0.3);
}
.photo-upload-btn:hover{transform:translateY(-1px);}
.photo-hint{
  margin-top:14px;font-size:11px;color:#5a5650;
  display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;
}
.photo-preview-wrap{
  display:flex;gap:12px;flex-wrap:wrap;margin-top:16px;
}
.photo-preview-item{
  position:relative;width:120px;height:140px;
  border-radius:10px;overflow:hidden;
  border:1px solid rgba(200,168,75,0.3);
}
.photo-preview-item img{width:100%;height:100%;object-fit:cover;}
.photo-preview-item .del-btn{
  position:absolute;top:4px;right:4px;
  width:24px;height:24px;border-radius:50%;
  background:rgba(0,0,0,0.7);color:#fff;
  border:none;cursor:pointer;font-size:14px;
  display:flex;align-items:center;justify-content:center;
}
.photo-preview-item .num-badge{
  position:absolute;bottom:4px;left:4px;
  background:rgba(200,168,75,0.95);
  color:#0a0a0a;font-weight:700;
  padding:2px 8px;border-radius:6px;font-size:10px;
}
.photo-add-more{
  width:120px;height:140px;
  border:2px dashed rgba(255,255,255,0.15);
  border-radius:10px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  cursor:pointer;color:#5a5650;font-size:12px;gap:6px;
}
.photo-add-more:hover{border-color:rgba(200,168,75,0.4);color:#c8a84b;}
.photo-add-more .plus{font-size:28px;font-weight:300;}
.photo-info-box{
  background:rgba(109,139,168,0.08);
  border:1px solid rgba(109,139,168,0.25);
  border-radius:10px;padding:12px 16px;margin-top:14px;
  display:flex;gap:10px;align-items:flex-start;
}
.photo-info-box .ico{font-size:18px;flex-shrink:0;}
.photo-info-box .txt{font-size:12px;line-height:1.5;color:#a8b4c8;}

/* ══ BIBLIOTHÈQUE SUJETS BAC ══ */
.biblio-overlay{
  display:none;position:fixed;inset:0;z-index:99000;
  background:radial-gradient(ellipse 80% 50% at 50% 0%,rgba(200,168,75,0.06) 0%,#07080a 65%);
  overflow-y:auto;padding:0;
  animation:onbFadeIn .3s ease;
}
.biblio-overlay.on{display:block;}
.biblio-topbar{
  position:sticky;top:0;z-index:10;
  display:flex;align-items:center;gap:12px;
  padding:12px 20px;
  background:rgba(7,8,10,0.96);backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(200,168,75,0.22);
}
.biblio-topbar h2{
  font-family:'Playfair Display',serif;
  font-size:18px;font-weight:700;color:#c8a84b;
  margin:0;
}
.biblio-topbar .biblio-count{
  font-size:11px;color:#8a8680;
  background:rgba(200,168,75,0.08);
  padding:3px 10px;border-radius:20px;
  border:1px solid rgba(200,168,75,0.2);
}
.biblio-topbar .biblio-close{
  margin-left:auto;
  padding:7px 16px;
  background:rgba(255,255,255,0.05);
  border:1px solid rgba(255,255,255,0.1);
  border-radius:8px;
  color:#d4cfc6;cursor:pointer;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:12px;font-weight:600;
}
.biblio-topbar .biblio-close:hover{background:rgba(255,255,255,0.08);color:#fff;}
.biblio-body{padding:24px 20px;max-width:1200px;margin:0 auto;}
.biblio-filters{
  display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px;
  padding:12px;background:rgba(255,255,255,0.02);
  border:1px solid rgba(255,255,255,0.04);
  border-radius:12px;
}
.biblio-filter{
  padding:7px 14px;border-radius:20px;
  background:rgba(255,255,255,0.03);
  border:1px solid rgba(255,255,255,0.08);
  color:#8a8680;cursor:pointer;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:12px;font-weight:600;transition:.15s;
}
.biblio-filter:hover{color:#d4cfc6;border-color:rgba(255,255,255,0.15);}
.biblio-filter.act{
  background:rgba(200,168,75,0.12);
  border-color:rgba(200,168,75,0.4);
  color:#c8a84b;
}
.biblio-search{
  flex:1;min-width:200px;
  padding:8px 14px;
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.08);
  border-radius:8px;
  color:#f2ede4;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:12px;
}
.biblio-search::placeholder{color:#5a5650;}
.biblio-search:focus{outline:none;border-color:rgba(200,168,75,0.4);}
.biblio-chapitre{margin-bottom:32px;}
.biblio-chap-title{
  font-family:'Playfair Display',serif;
  font-size:20px;font-weight:700;color:#f2ede4;
  margin-bottom:14px;
  display:flex;align-items:center;gap:10px;
  padding-bottom:10px;
  border-bottom:1px solid rgba(200,168,75,0.18);
}
.biblio-chap-title .chap-emoji{font-size:22px;}
.biblio-chap-title .chap-num{
  font-size:11px;font-weight:600;color:#8a8680;
  background:rgba(200,168,75,0.06);
  padding:3px 10px;border-radius:20px;
  margin-left:auto;
  font-family:'Plus Jakarta Sans',sans-serif;
}
.biblio-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:12px;
}
.biblio-card{
  padding:12px 16px;
  background:rgba(255,255,255,0.025);
  border:1px solid rgba(255,255,255,0.06);
  border-radius:12px;
  transition:.15s;
  position:relative;
}
.biblio-card:hover{
  border-color:rgba(200,168,75,0.3);
  background:rgba(255,255,255,0.035);
}
.biblio-card-meta{
  display:flex;align-items:center;gap:6px;
  margin-bottom:8px;flex-wrap:wrap;
}
.biblio-tag{
  font-size:10px;font-weight:700;
  padding:2px 8px;border-radius:20px;
  text-transform:uppercase;letter-spacing:.5px;
}
.biblio-tag-diss{background:rgba(143,127,168,0.15);color:#b3a8c2;border:1px solid rgba(143,127,168,0.3);}
.biblio-tag-ec1{background:rgba(109,139,168,0.15);color:#9db4c9;border:1px solid rgba(109,139,168,0.3);}
.biblio-tag-ec2{background:rgba(61,158,110,0.15);color:#5dc489;border:1px solid rgba(61,158,110,0.3);}
.biblio-tag-ec3{background:rgba(200,168,75,0.15);color:#c8a84b;border:1px solid rgba(200,168,75,0.3);}
.biblio-meta-info{
  font-size:10px;color:#8a8680;
  font-family:'Plus Jakarta Sans',sans-serif;
}
.biblio-card-titre{
  font-size:13px;color:#d4cfc6;line-height:1.45;
  margin-bottom:10px;font-weight:500;
}
.biblio-card-actions{display:flex;gap:6px;}
.biblio-btn-open,.biblio-btn-train{
  flex:1;padding:7px 10px;border-radius:8px;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:11px;font-weight:600;cursor:pointer;
  border:none;transition:.15s;text-align:center;
  text-decoration:none;display:block;
}
.biblio-btn-open{
  background:rgba(255,255,255,0.05);
  color:#8a8680;border:1px solid rgba(255,255,255,0.08);
}
.biblio-btn-open:hover{color:#fff;background:rgba(255,255,255,0.08);}
.biblio-btn-train{
  background:linear-gradient(135deg,#3d9e6e,#5dc489);
  color:#fff;
}
.biblio-btn-train:hover{opacity:.9;}
.biblio-empty{
  text-align:center;padding:48px 20px;
  color:#5a5650;font-size:13px;
}
.biblio-launcher{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 18px;border-radius:10px;
  background:linear-gradient(135deg,rgba(200,168,75,0.18),rgba(200,168,75,0.05));
  border:1px solid rgba(200,168,75,0.4);
  color:#c8a84b;font-weight:700;font-size:13px;
  cursor:pointer;transition:.15s;
  font-family:'Plus Jakarta Sans',sans-serif;
  margin-bottom:24px;
}
.biblio-launcher:hover{background:rgba(200,168,75,0.15);}
/* ══ FIN BIBLIOTHÈQUE ══ */

/* ══ ONBOARDING ══ */
#onboarding-overlay{
  position:fixed;inset:0;z-index:99999;
  background:radial-gradient(ellipse 80% 60% at 50% 40%,rgba(200,168,75,0.08) 0%,#07080a 65%);
  display:none;align-items:center;justify-content:center;
  padding:24px;overflow-y:auto;
  animation:onbFadeIn .5s ease;
}
#onboarding-overlay.on{display:flex;}
@keyframes onbFadeIn{from{opacity:0;}to{opacity:1;}}
@keyframes onbSlideUp{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}
@keyframes onbBadgePulse{0%,100%{box-shadow:0 0 0 0 rgba(200,168,75,0.4);}50%{box-shadow:0 0 0 18px rgba(200,168,75,0);}}
.onb-card{
  max-width:560px;width:100%;
  background:linear-gradient(180deg,#13161f 0%,#0d0f14 100%);
  border:1px solid rgba(200,168,75,0.22);
  border-radius:24px;
  padding:48px 36px;
  position:relative;overflow:hidden;
  animation:onbSlideUp .6s ease;
}
.onb-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(200,168,75,0.6),transparent);
}
.onb-progress{
  display:flex;justify-content:center;gap:8px;margin-bottom:32px;
}
.onb-dot{
  width:32px;height:4px;border-radius:2px;
  background:rgba(255,255,255,0.08);
  transition:all .4s ease;
}
.onb-dot.done{background:rgba(200,168,75,0.4);}
.onb-dot.current{background:linear-gradient(90deg,#c8a84b,#e4c870);width:48px;}
.onb-step{display:none;text-align:center;}
.onb-step.on{display:block;}
.onb-icon-wrap{
  width:80px;height:80px;border-radius:50%;
  background:linear-gradient(135deg,rgba(200,168,75,0.18),rgba(200,168,75,0.05));
  border:1px solid rgba(200,168,75,0.3);
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 24px;
  animation:onbBadgePulse 2.5s infinite;
}
.onb-icon{font-size:38px;}
.onb-title{
  font-family:'Playfair Display',serif;
  font-size:clamp(26px,4vw,36px);font-weight:700;
  color:#f2ede4;margin-bottom:10px;line-height:1.15;
}
.onb-title em{color:#c8a84b;font-style:italic;}
.onb-sub{
  font-size:14px;color:#8a8680;line-height:1.7;
  max-width:420px;margin:0 auto 32px;
}
.onb-features{
  display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:28px;text-align:left;
}
.onb-feat{
  display:flex;align-items:center;gap:12px;
  padding:12px 14px;background:rgba(255,255,255,0.025);
  border:1px solid rgba(255,255,255,0.05);border-radius:12px;
  transition:.2s;
}
.onb-feat:hover{background:rgba(255,255,255,0.04);border-color:rgba(200,168,75,0.2);}
.onb-feat-ico{
  width:32px;height:32px;border-radius:8px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:16px;background:rgba(200,168,75,0.1);
}
.onb-feat-txt{font-size:13px;color:#d4cfc6;line-height:1.4;}
.onb-feat-txt strong{color:#f2ede4;font-weight:600;}
.onb-choices{
  display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:28px;
}
@media(max-width:480px){.onb-choices{grid-template-columns:1fr;}}
.onb-choice{
  padding:24px 18px;
  background:rgba(255,255,255,0.025);
  border:2px solid rgba(255,255,255,0.06);
  border-radius:16px;cursor:pointer;
  text-align:left;transition:all .2s;
  position:relative;overflow:hidden;
}
.onb-choice:hover{border-color:rgba(200,168,75,0.4);transform:translateY(-2px);}
.onb-choice.sel{
  border-color:#c8a84b;background:rgba(200,168,75,0.06);
}
.onb-choice-ico{font-size:26px;display:block;margin-bottom:12px;}
.onb-choice-ttl{
  font-family:'Playfair Display',serif;
  font-size:17px;font-weight:700;color:#f2ede4;margin-bottom:5px;
}
.onb-choice-sub{font-size:12px;color:#8a8680;line-height:1.5;}
.onb-choice-check{
  position:absolute;top:12px;right:12px;
  width:22px;height:22px;border-radius:50%;
  background:#c8a84b;
  display:flex;align-items:center;justify-content:center;
  color:#07080a;font-size:11px;font-weight:700;
  opacity:0;transition:.2s;
}
.onb-choice.sel .onb-choice-check{opacity:1;}
.onb-actions{
  display:flex;gap:10px;justify-content:center;
}
.onb-btn{
  padding:12px 28px;border-radius:12px;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:14px;font-weight:700;cursor:pointer;
  transition:.2s;border:none;
}
.onb-btn-primary{
  background:linear-gradient(135deg,#c8a84b,#e4c870);
  color:#07080a;
}
.onb-btn-primary:hover:not(:disabled){opacity:.9;transform:translateY(-1px);}
.onb-btn-primary:disabled{opacity:.35;cursor:not-allowed;}
.onb-btn-ghost{
  background:none;color:#8a8680;
  border:1px solid rgba(255,255,255,0.08);
}
.onb-btn-ghost:hover{color:#f2ede4;border-color:rgba(255,255,255,0.2);}
.onb-skip{
  position:absolute;top:18px;right:20px;
  font-size:11px;color:#5a5650;background:none;border:none;cursor:pointer;
  font-family:'Plus Jakarta Sans',sans-serif;text-transform:uppercase;letter-spacing:.5px;
}
.onb-skip:hover{color:#8a8680;}
/* ══ FIN ONBOARDING ══ */


/* ══ SIMULATEUR — Isolation du contexte parent ══ */
#pg-simulateur{
  position:fixed!important;
  top:56px;left:0;right:0;bottom:0;
  z-index:9000;
  background:#07080a;
  overflow-y:auto;
  display:none;
}
#pg-simulateur.sim-on{display:block!important;}

/* CSS interne du simulateur */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{--noir:#07080a;--noir2:#0d0f14;--noir3:#13161f;--noir4:#191d28;--or:#c8a84b;--or2:#e4c870;--or-glow:rgba(200,168,75,0.10);--or-border:rgba(200,168,75,0.22);--blanc:#f2ede4;--blanc2:#d4cfc6;--gris:#8a8680;--gris2:#5a5650;--vert:#3d9e6e;--rouge:#c84b4b;--bleu:#6d8ba8;--cuivre:#c8875a;--bronze:#b89b6a;--r:10px;--r2:16px;}
html,body{min-height:100%;font-family:'Plus Jakarta Sans',sans-serif;background:var(--noir);color:var(--blanc);}
body{overflow-x:hidden;}
::-webkit-scrollbar{width:4px;}::-webkit-scrollbar-thumb{background:var(--or);border-radius:2px;}
.ecran{display:none;min-height:calc(100vh - 56px);flex-direction:column;} /* 56 px = la barre de navigation, déjà au-dessus. Avec 100vh, chaque    écran dépassait la fenêtre : le contenu, centré verticalement, était    repoussé de deux cents pixels vers le bas, et il fallait faire défiler    pour atteindre le bouton principal. */.ecran.actif{display:flex;}
.topbar{height:52px;background:rgba(7,8,10,0.98);border-bottom:1px solid var(--or-border);display:flex;align-items:center;padding:0 16px;gap:10px;flex-shrink:0;position:sticky;top:0;z-index:100;}
.topbar-logo{font-family:'Playfair Display',serif;font-size:13px;color:var(--or);font-weight:700;}
.topbar-sep{width:1px;height:20px;background:var(--or-border);}
.topbar-title{font-size:12px;color:var(--gris);}
.topbar-back{margin-left:auto;background:none;border:1px solid rgba(255,255,255,0.1);border-radius:8px;padding:5px 12px;font-size:11px;color:var(--gris);cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;}
.topbar-back:hover{color:var(--blanc);}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.3;}}
@keyframes rot{to{transform:rotate(360deg);}}
/* ACCUEIL */
#e-accueil{align-items:center;justify-content:center;padding:40px 20px;background:radial-gradient(ellipse 70% 50% at 50% 0%,rgba(61,158,110,0.07) 0%,transparent 70%);}
.acc-inner{width:100%;max-width:680px;text-align:center;}
.acc-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 16px;border-radius:30px;border:1px solid rgba(61,158,110,0.35);background:rgba(61,158,110,0.08);margin-bottom:28px;}
.acc-dot{width:7px;height:7px;border-radius:50%;background:#5dc489;animation:pulse 2s infinite;}
.acc-badge-txt{font-size:11px;color:#5dc489;font-weight:600;letter-spacing:.5px;text-transform:uppercase;}
.acc-title{font-family:'Playfair Display',serif;font-size:clamp(32px,5vw,52px);font-weight:700;line-height:1.08;color:var(--blanc);margin-bottom:10px;}
.acc-title em{color:var(--or);font-style:italic;}
.acc-sub{font-size:13px;color:var(--gris);line-height:1.7;max-width:500px;margin:0 auto 32px;}
.choix-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:24px;}
@media(max-width:580px){.choix-grid{grid-template-columns:1fr;}}
.choix-card{background:var(--noir3);border:2px solid rgba(255,255,255,0.06);border-radius:var(--r2);padding:24px 18px;cursor:pointer;text-align:left;position:relative;overflow:hidden;transition:.2s;}
.choix-card:hover{border-color:var(--or-border);transform:translateY(-2px);}
.choix-card.sel{border-color:var(--or);background:rgba(200,168,75,0.06);}
.choix-icon{display:block;margin-bottom:12px;}
.choix-icon svg{width:26px;height:26px;color:var(--or);}
.choix-tag{display:inline-block;font-size:9px;font-weight:700;padding:3px 8px;border-radius:20px;margin-bottom:10px;text-transform:uppercase;letter-spacing:.5px;}
.tag-ec{background:rgba(109,139,168,0.15);color:#9db4c9;border:1px solid rgba(109,139,168,0.3);}
.tag-di{background:rgba(143,127,168,0.15);color:#b3a8c2;border:1px solid rgba(143,127,168,0.3);}
.choix-titre{font-family:'Playfair Display',serif;font-size:16px;font-weight:700;color:var(--blanc);margin-bottom:5px;}
.choix-desc{font-size:11px;color:var(--gris);line-height:1.6;margin-bottom:10px;}
.choix-pts{display:flex;flex-direction:column;gap:3px;}
.choix-pt{font-size:10px;color:var(--gris2);display:flex;align-items:center;gap:6px;}
.choix-pt::before{content:'';width:4px;height:4px;border-radius:50%;background:var(--or);flex-shrink:0;}
.choix-coche{position:absolute;top:12px;right:12px;width:20px;height:20px;border-radius:50%;background:var(--or);display:flex;align-items:center;justify-content:center;font-size:10px;opacity:0;transition:.15s;}
.choix-card.sel .choix-coche{opacity:1;}
.btn-lancer{width:100%;padding:16px;border-radius:12px;border:none;cursor:pointer;font-size:14px;font-weight:700;font-family:'Plus Jakarta Sans',sans-serif;transition:.2s;background:linear-gradient(135deg,#3d9e6e,#5dc489);color:#fff;}
.btn-lancer:hover:not(:disabled){opacity:.88;transform:translateY(-1px);}
.btn-lancer:disabled{background:none;border:1px dashed rgba(255,255,255,0.18);color:#8a8680;cursor:not-allowed;transform:none;box-shadow:none;}
/* UPLOAD */
#e-upload{padding:0;}
.upload-corps{flex:1;display:flex;align-items:center;justify-content:center;padding:36px 20px;}
@media(max-width:680px){.upload-corps{align-items:flex-start;padding-top:22px;}}
.uplopf-inner{width:100%;max-width:580px;}
.upload-head{text-align:center;margin-bottom:26px;}
.upload-head h2{font-family:'Playfair Display',serif;font-size:24px;font-weight:700;color:var(--blanc);margin-bottom:8px;}
.upload-head p{font-size:12px;color:var(--gris);line-height:1.7;}
.drop{border:2px dashed var(--or-border);border-radius:var(--r2);padding:40px 24px;text-align:center;cursor:pointer;position:relative;background:var(--noir3);transition:.2s;}
.drop:hover,.drop.over{border-color:var(--or);}
.drop input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;}
.drop-fmts{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:12px;}
.drop-fmt{font-size:10px;padding:3px 9px;border-radius:20px;border:1px solid var(--or-border);color:var(--or);font-weight:600;}
.analyse-box{display:none;background:var(--noir4);border:1px solid rgba(143,127,168,0.3);border-radius:var(--r2);padding:12px 18px;margin-top:14px;align-items:center;gap:10px;}
.analyse-box.on{display:flex;}
.analyse-spin{width:18px;height:18px;border:2px solid rgba(143,127,168,0.3);border-top-color:#b3a8c2;border-radius:50%;animation:rot .7s linear infinite;flex-shrink:0;}
.sujet-detect{display:none;background:var(--noir4);border:1px solid var(--or-border);border-radius:var(--r2);padding:12px 18px;margin-top:14px;}
.sujet-detect.on{display:block;}
.detect-header{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.file-prev{display:none;background:var(--noir4);border:1px solid var(--or-border);border-radius:var(--r2);padding:12px 18px;margin-top:14px;}
.file-prev-row{display:flex;align-items:center;gap:10px;}
.file-ico{width:36px;height:36px;border-radius:8px;background:var(--or-glow);border:1px solid var(--or-border);display:flex;align-items:center;justify-content:center;font-size:16px;}
.file-nom{font-size:12px;font-weight:600;color:var(--blanc2);}
.file-sz{font-size:10px;color:var(--gris);margin-top:1px;}
.file-rm{background:none;border:none;color:var(--gris);cursor:pointer;font-size:15px;margin-left:auto;}
.img-ap{display:none;margin-top:10px;border-radius:var(--r);overflow:hidden;border:1px solid var(--or-border);}
.img-ap img{width:100%;max-height:220px;object-fit:contain;background:var(--noir4);}
.upload-btns{display:flex;gap:10px;margin-top:16px;}
.btn-ghost{flex:1;padding:12px;border-radius:10px;border:1px solid rgba(255,255,255,0.1);background:none;color:var(--gris2);font-size:12px;font-weight:500;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;}
.btn-ghost:hover{color:var(--blanc);}
.btn-vert{flex:2;padding:12px;border-radius:10px;border:none;cursor:pointer;font-size:13px;font-weight:700;font-family:'Plus Jakarta Sans',sans-serif;background:linear-gradient(135deg,#3d9e6e,#5dc489);color:#fff;}
.btn-vert:hover:not(:disabled){opacity:.88;}
.btn-vert:disabled{background:none;border:1px dashed rgba(255,255,255,0.18);color:#8a8680;cursor:not-allowed;box-shadow:none;}
/* MODE */
#e-mode{padding:0;}
.mode-corps{flex:1;display:flex;align-items:center;justify-content:center;padding:36px 20px;}
.mode-inner{width:100%;max-width:660px;}
.mode-head{text-align:center;margin-bottom:28px;}
.mode-head h2{font-family:'Playfair Display',serif;font-size:22px;font-weight:700;color:var(--blanc);margin-bottom:8px;}
.mode-head p{font-size:12px;color:var(--gris);line-height:1.6;}
.mode-section{margin-bottom:22px;}
.mode-section-ttl{font-size:11px;font-weight:700;color:var(--gris);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px;padding-left:10px;border-left:2px solid var(--or);}
.mode-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:8px;}
.mode-card{background:var(--noir3);border:1px solid rgba(255,255,255,0.06);border-radius:var(--r);padding:12px 15px;cursor:pointer;transition:.2s;position:relative;}
.mode-card:hover{border-color:var(--or-border);}
.mode-card.mode-sel{border-color:var(--or);background:rgba(200,168,75,0.06);}
.mode-card-ico{font-size:18px;margin-bottom:7px;display:block;}
.mode-card-ttl{font-size:12px;font-weight:600;color:var(--blanc2);margin-bottom:3px;}
.mode-card-sub{font-size:10px;color:var(--gris);}
.mode-card-coche{position:absolute;top:8px;right:8px;width:15px;height:15px;border-radius:50%;background:var(--or);display:flex;align-items:center;justify-content:center;font-size:8px;opacity:0;transition:.15s;}
.mode-card.mode-sel .mode-card-coche{opacity:1;}
.mode-sujet-preview{background:var(--noir4);border:1px solid rgba(255,255,255,0.05);border-radius:var(--r);padding:12px;margin-bottom:20px;font-size:11px;color:var(--gris);line-height:1.7;}
.mode-sujet-preview strong{color:var(--blanc2);font-weight:600;}
/* EPREUVE */
#e-epreuve{padding:0;}
.exam-nav{height:52px;background:rgba(7,8,10,0.98);border-bottom:1px solid var(--or-border);display:flex;align-items:center;padding:0 14px;gap:10px;flex-shrink:0;position:sticky;top:0;z-index:100;}
.exam-spacer{flex:1;}
.chrono-box{display:flex;align-items:center;gap:8px;background:var(--noir4);border:1px solid var(--or-border);border-radius:8px;padding:6px 12px;}
.chrono-val{font-family:'Playfair Display',serif;font-size:17px;font-weight:700;color:var(--or);letter-spacing:1px;}
.chrono-val.warn{color:#f0a050;}.chrono-val.dang{color:var(--rouge);animation:pulse .8s infinite;}
.chrono-lbl{font-size:9px;color:var(--gris);text-transform:uppercase;letter-spacing:.5px;}
.btn-pause{background:none;border:1px solid rgba(255,255,255,0.1);border-radius:8px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--gris);font-size:14px;}
.btn-rendre{background:linear-gradient(135deg,#3d9e6e,#5dc489);border:none;border-radius:8px;padding:7px 14px;font-size:11px;font-weight:700;color:#fff;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;}
.exam-prog{height:2px;background:var(--noir4);flex-shrink:0;}
.exam-prog-bar{height:100%;background:linear-gradient(90deg,#3d9e6e,#5dc489);transition:width .5s;}
.exam-layout{display:grid;grid-template-columns:240px 1fr;flex:1;min-height:0;}
@media(max-width:720px){.exam-layout{grid-template-columns:1fr;}.exam-sidebar{display:none!important;}}
.exam-sidebar{background:var(--noir2);border-right:1px solid rgba(255,255,255,0.04);overflow-y:auto;padding:12px 0;height:calc(100vh - 54px);}
.sb-hd{padding:5px 14px;font-size:9px;font-weight:700;color:var(--gris2);text-transform:uppercase;letter-spacing:1px;}
.sb-item{padding:10px 14px;cursor:pointer;border-left:3px solid transparent;display:flex;align-items:center;gap:8px;transition:.15s;}
.sb-item:hover{background:rgba(255,255,255,0.02);}
.sb-item.sb-on{background:var(--or-glow);border-left-color:var(--or);}
.sb-item.sb-ok{border-left-color:var(--vert);}
.sb-ico{width:26px;height:26px;border-radius:6px;background:rgba(255,255,255,0.06);display:flex;align-items:center;justify-content:center;font-size:11px;flex-shrink:0;}
.sb-ttl{font-size:11px;font-weight:600;color:var(--blanc2);}
.sb-item.sb-on .sb-ttl{color:var(--or);}
.sb-sub{font-size:10px;color:var(--gris);}
.sb-chk{font-size:11px;color:var(--vert);opacity:0;margin-left:auto;}
.sb-item.sb-ok .sb-chk{opacity:1;}
.sb-sep{height:1px;background:rgba(255,255,255,0.04);margin:6px 14px;}
.sb-sujet-zone{padding:10px 14px;}
.sb-sujet-lbl2{font-size:9px;font-weight:700;color:var(--gris2);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;}
.sb-sujet-txt2{font-size:10px;color:var(--gris);line-height:1.6;background:var(--noir4);border-radius:8px;padding:8px;max-height:200px;overflow-y:auto;border:1px solid rgba(255,255,255,0.04);}
.sb-sujet-img2{width:100%;border-radius:8px;border:1px solid var(--or-border);cursor:pointer;}
.exam-main{overflow-y:auto;padding:26px 22px;height:calc(100vh - 54px);}
.partie{display:none;}.partie.p-on{display:block;}
.p-hd{margin-bottom:22px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,0.05);}
.p-tag{display:inline-block;font-size:10px;font-weight:700;padding:4px 12px;border-radius:20px;margin-bottom:9px;text-transform:uppercase;letter-spacing:.5px;}
.p-titre{font-family:'Playfair Display',serif;font-size:22px;font-weight:700;color:var(--blanc);margin-bottom:5px;}
.p-meta{font-size:11px;color:var(--gris);display:flex;gap:12px;flex-wrap:wrap;}
.sbox{background:var(--noir4);border:1px solid var(--or-border);border-radius:var(--r);padding:12px;margin-bottom:18px;}
.sbox-lbl{font-size:9px;font-weight:700;color:var(--or);text-transform:uppercase;letter-spacing:.5px;margin-bottom:7px;}
.sbox-txt{font-size:11px;color:var(--blanc2);line-height:1.7;white-space:pre-wrap;}
.aei{background:var(--noir3);border:1px solid rgba(255,255,255,0.05);border-radius:var(--r2);padding:18px;margin-bottom:14px;}
.aei-hd{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px;}
.aei-let{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-family:'Playfair Display',serif;font-size:15px;font-weight:700;flex-shrink:0;}
.aei-desc{font-size:11px;color:var(--gris);line-height:1.5;}
.aei-desc strong{color:var(--blanc2);}
.rlbl{font-size:11px;font-weight:600;color:var(--gris);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;margin-top:12px;}
.rz{width:100%;background:var(--noir4);border:1px solid rgba(255,255,255,0.07);border-radius:var(--r);padding:12px;color:var(--blanc);font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;line-height:1.7;resize:vertical;min-height:110px;transition:.15s;}
.rz:focus{outline:none;border-color:rgba(200,168,75,0.45);}
.rz::placeholder{color:var(--gris2);font-size:12px;}
.cc{font-size:10px;color:var(--gris2);text-align:right;margin-top:3px;}
.pgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px;}
@media(max-width:580px){.pgrid{grid-template-columns:1fr;}}
.pcard{background:var(--noir4);border:1px solid rgba(255,255,255,0.05);border-radius:var(--r);padding:12px;}
.pcard-lbl{font-size:10px;font-weight:700;color:var(--or);text-transform:uppercase;letter-spacing:.5px;margin-bottom:7px;}
.pnav{display:flex;justify-content:space-between;margin-top:24px;padding-top:14px;border-top:1px solid rgba(255,255,255,0.05);}
.btn-prev{padding:9px 16px;border-radius:8px;border:1px solid rgba(255,255,255,0.1);background:none;color:var(--gris);font-size:12px;font-weight:600;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;}
.btn-next{padding:9px 16px;border-radius:8px;border:none;cursor:pointer;font-size:12px;font-weight:700;font-family:'Plus Jakarta Sans',sans-serif;background:linear-gradient(135deg,var(--or),var(--or2));color:var(--noir);}
.btn-sub{background:linear-gradient(135deg,#3d9e6e,#5dc489)!important;color:#fff!important;}
.pause-ov{display:none;position:fixed;inset:0;z-index:9999;background:rgba(7,8,10,0.96);backdrop-filter:blur(20px);align-items:center;justify-content:center;flex-direction:column;gap:18px;}
.pause-ov.on{display:flex;}
.btn-resume{padding:12px 32px;border-radius:12px;border:none;cursor:pointer;font-size:14px;font-weight:700;font-family:'Plus Jakarta Sans',sans-serif;background:linear-gradient(135deg,#3d9e6e,#5dc489);color:#fff;}
/* CORRECTION */
#e-correction{padding:0;}
.corr-corps{flex:1;overflow-y:auto;padding:32px 20px;}
.corr-inner{max-width:820px;margin:0 auto;}
.corr-load{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:16px;}
.spin{width:44px;height:44px;border:3px solid var(--noir4);border-top-color:#5dc489;border-radius:50%;animation:rot 1s linear infinite;}
.load-steps{display:flex;flex-direction:column;gap:8px;margin-top:8px;min-width:300px;}
.ls{font-size:12px;color:var(--gris2);transition:.3s;padding:3px 0;}
.ls.act{color:#5dc489;font-weight:600;}.ls.ok{color:var(--vert);}
.score-wrap{background:var(--noir3);border:1px solid var(--or-border);border-radius:var(--r2);padding:26px;margin-bottom:26px;display:flex;align-items:center;gap:24px;flex-wrap:wrap;}
.score-cerc{width:90px;height:90px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.score-int{width:72px;height:72px;border-radius:50%;background:var(--noir3);display:flex;flex-direction:column;align-items:center;justify-content:center;}
.sc-n{font-family:'Playfair Display',serif;font-size:22px;font-weight:900;color:var(--or);}
.sc-m{font-size:10px;color:var(--gris);}
.score-info{flex:1;min-width:180px;}
.score-mention{font-family:'Playfair Display',serif;font-size:19px;font-weight:700;margin-bottom:4px;}
.score-msg{font-size:12px;color:var(--gris);line-height:1.6;}
.score-temps{font-size:11px;color:var(--gris2);margin-top:5px;}
.sp-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px;}
.sp{background:var(--noir4);border-radius:8px;padding:9px 13px;text-align:center;min-width:68px;}
.sp-n{font-family:'Playfair Display',serif;font-size:17px;font-weight:700;}
.sp-l{font-size:9px;color:var(--gris);text-transform:uppercase;letter-spacing:.4px;margin-top:1px;}
.sp-mx{font-size:9px;color:var(--gris2);}
.csec{background:var(--noir3);border:1px solid rgba(255,255,255,0.05);border-radius:var(--r2);padding:20px;margin-bottom:14px;}
.csec-hd{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap;}
.ctag{font-size:10px;font-weight:700;padding:4px 11px;border-radius:20px;text-transform:uppercase;letter-spacing:.5px;}
.cnote{margin-left:auto;font-family:'Playfair Display',serif;font-size:19px;font-weight:700;}
.fb{margin-bottom:12px;}
.fb-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;}
.fb-corps{font-size:12px;color:var(--blanc2);line-height:1.7;background:var(--noir4);border-radius:var(--r);padding:11px 13px;}
.fb-pts{display:flex;flex-direction:column;gap:5px;}
.fb-pt{display:flex;gap:8px;font-size:12px;line-height:1.5;}
.modele-box{background:rgba(61,158,110,0.06);border:1px solid rgba(61,158,110,0.25);border-radius:var(--r);padding:0;margin-top:12px;overflow:hidden;}
.modele-hd{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;cursor:pointer;user-select:none;}
.modele-hd:hover{background:rgba(61,158,110,0.08);}
.modele-lbl{font-size:10px;font-weight:700;color:#5dc489;text-transform:uppercase;letter-spacing:.5px;display:flex;align-items:center;gap:8px;}
.modele-arrow{font-size:11px;color:#5dc489;transition:transform .2s;}
@keyframes corrIn{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}
#corr-result .score-wrap{animation:corrIn .5s ease both;}
#corr-result .csec{animation:corrIn .5s ease both;}
#corr-result .csec:nth-of-type(2){animation-delay:.08s}#corr-result .csec:nth-of-type(3){animation-delay:.16s}#corr-result .csec:nth-of-type(4){animation-delay:.24s}#corr-result .csec:nth-of-type(5){animation-delay:.32s}
#corr-result .conseil-global,#corr-result .fin-btns{animation:corrIn .5s ease .35s both;}
.modele-arrow.open{transform:rotate(180deg);}
.modele-body{display:none;padding:0 14px 14px;}
.modele-body.open{display:block;}
.modele-txt{font-size:12px;color:var(--blanc2);line-height:1.9;white-space:pre-wrap;border-left:3px solid rgba(61,158,110,0.4);padding-left:12px;margin-top:4px;}
.conseil-global{background:var(--or-glow);border:1px solid var(--or-border);border-radius:var(--r2);padding:18px;margin-bottom:14px;}
.fin-btns{display:flex;gap:10px;justify-content:center;margin-top:26px;flex-wrap:wrap;}
.btn-fin{padding:11px 22px;border-radius:11px;font-size:13px;font-weight:600;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;}
.btn-fin-p{background:linear-gradient(135deg,#3d9e6e,#5dc489);border:none;color:#fff;}
.btn-fin-s{background:none;border:1px solid var(--or-border);color:var(--or);}

/* FIN CSS SIMULATEUR */


*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  --noir:#07080a;--noir2:#0d0f14;--noir3:#13161f;--noir4:#191d28;--noir5:#1f2335;
  --or:#c8a84b;--or2:#e4c870;--or3:#f0dca0;
  --or-glow:rgba(200,168,75,0.12);--or-border:rgba(200,168,75,0.22);--or-border2:rgba(200,168,75,0.45);
  --blanc:#f2ede4;--blanc2:#d4cfc6;--gris:#8a8680;--gris2:#5a5650;--gris3:#3a3830;
  --vert:#3d9e6e;--rouge:#c84b4b;--bleu:#6d8ba8;--violet:#8f7fa8;--cuivre:#c8875a;--bronze:#b89b6a;
  --r:10px;--r2:16px;
}
html{scroll-behavior:smooth;}
body{font-family:'Plus Jakarta Sans',sans-serif;background:var(--noir);color:var(--blanc);min-height:100vh;overflow-x:hidden;}
::-webkit-scrollbar{width:3px;height:3px;}
::-webkit-scrollbar-track{background:var(--noir2);}
::-webkit-scrollbar-thumb{background:var(--or);border-radius:2px;}

/* ═══ NAVBAR ═══ */
#nav{
  position:fixed;top:0;left:0;right:0;z-index:2000;
  background:rgba(7,8,10,0.97);backdrop-filter:blur(20px);
  border-bottom:1px solid var(--or-border);height:56px;
  display:none;align-items:center;padding:0 16px;gap:0;
}
.nav-logo{display:flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0;margin-right:12px;}
.nav-icon{width:36px;height:36px;border-radius:10px;
  background:linear-gradient(145deg,#c8a84b 0%,#f0dca0 50%,#b89530 100%);
  display:flex;align-items:center;justify-content:center;
  font-family:'Playfair Display',serif;font-size:13px;font-weight:900;color:#0d0b06;letter-spacing:-.6px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.3),0 3px 12px rgba(200,168,75,0.35);
  border:1px solid rgba(255,255,255,0.12);}
.nav-brand{line-height:1.2;}
.nav-brand-name{font-family:'Playfair Display',serif;font-size:14px;font-weight:700;color:var(--or);}
.nav-brand-sub{font-size:9px;color:var(--gris);text-transform:uppercase;letter-spacing:.5px;}
.nav-div{width:1px;height:24px;background:var(--or-border);margin:0 10px;flex-shrink:0;}
.nav-links{display:flex;gap:2px;flex:1;overflow:visible;}
.nav-links::-webkit-scrollbar{display:none;}
.nl{padding:5px 11px;border-radius:6px;font-size:11px;font-weight:500;cursor:pointer;
  border:none;background:transparent;color:var(--gris);transition:.15s;white-space:nowrap;
  font-family:'Plus Jakarta Sans',sans-serif;}
.nl:hover{color:var(--or2);background:var(--or-glow);}
.nl.on{color:var(--or);background:var(--or-glow);border:1px solid var(--or-border);}
.nl-wrap{position:relative;}
.nl-drop{display:flex;align-items:center;gap:5px;}
.nl-chev{transition:transform .15s ease;flex-shrink:0;opacity:.7;}
.nl-drop.open{color:var(--or);background:var(--or-glow);}
.nl-drop.open .nl-chev{transform:rotate(180deg);}
.nl-dropdown{
  display:none;flex-direction:column;gap:2px;
  position:absolute;top:calc(100% + 8px);left:0;min-width:210px;
  background:rgba(10,11,14,0.98);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border:1px solid var(--or-border);border-radius:12px;padding:6px;
  box-shadow:0 14px 36px rgba(0,0,0,0.55);z-index:2100;
}
.nl-dropdown.open{display:flex;}
.nl-dropitem{width:100%;text-align:left;padding:9px 12px;border-radius:8px;font-size:12px;}
.niveau-opt.on{background:linear-gradient(135deg,rgba(200,168,75,0.22),rgba(200,168,75,0.08));color:var(--or)!important;box-shadow:0 1px 4px rgba(0,0,0,0.2);}
.nav-by{display:flex;align-items:center;gap:8px;margin-left:auto;flex-shrink:0;padding-left:10px;border-left:1px solid var(--or-border);}
.nav-av{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--or),var(--or2));
  display:flex;align-items:center;justify-content:center;font-size:8.5px;font-weight:800;
  letter-spacing:-.3px;color:var(--noir);}
.nav-nm{font-size:10px;color:var(--gris);line-height:1.2;}
.nav-nm strong{display:block;color:var(--blanc2);font-size:11px;font-weight:600;}

/* MOBILE NAV */
.mob-nav{
  display:none;position:fixed;bottom:0;left:0;right:0;z-index:2000;
  background:rgba(8,9,12,0.97);backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);
  border-top:1px solid rgba(255,255,255,0.07);
  padding:6px 4px max(12px,env(safe-area-inset-bottom)) 4px;
  box-shadow:0 -8px 40px rgba(0,0,0,0.5);}
body.light .mob-nav{background:rgba(240,236,228,0.97);}
.mob-nav-items{display:flex;justify-content:space-around;align-items:flex-end;max-width:500px;margin:0 auto;}
.mob-panel-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.55);z-index:2400;}
.mob-panel-overlay.open{display:block;}
.mob-panel{
  display:none;position:fixed;left:0;right:0;bottom:0;z-index:2500;
  /* Deux pièges se cumulaient sur iPhone.
     1) dvh suit la hauteur VISIBLE, qui change quand Safari masque puis
        réaffiche sa barre d'outils pendant le défilement : le panneau se
        redimensionnait en cours de geste, d'où le « ça remonte légèrement
        quand j'arrête de défiler ». svh est calculé barres AFFICHÉES et ne
        bouge jamais.
     2) La page déclare viewport-fit=cover : la zone de mise en page passe
        SOUS la barre d'outils de Safari. Avec bottom:0, les derniers pixels
        du panneau sont donc masqués par cette barre, et env(safe-area-inset)
        ne la couvre pas — il ne couvre que la barre de geste. D'où la marge
        basse généreuse. */
  max-height:78vh;
  max-height:80svh;
  overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
  background:rgba(10,11,14,0.99);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  border-top:1px solid var(--or-border);border-radius:20px 20px 0 0;
  padding-bottom:calc(env(safe-area-inset-bottom) + 76px);
  box-shadow:0 -14px 44px rgba(0,0,0,0.55);}
.mob-panel.open{display:block;animation:mobPanelUp .22s ease;}
@keyframes mobPanelUp{from{transform:translateY(20px);opacity:0;}to{transform:translateY(0);opacity:1;}}
.mob-panel-hd{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 6px;position:sticky;top:0;background:inherit;}
.mob-panel-title-main{font-family:'Playfair Display',serif;font-size:16px;font-weight:700;color:var(--or);}
.mob-panel-close{width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,0.06);border:none;color:var(--gris);font-size:13px;cursor:pointer;}
.mob-panel-body{padding:4px 12px 8px;}
.mob-panel-section{margin-bottom:4px;}
.mob-panel-section-title{font-size:10px;text-transform:uppercase;letter-spacing:.7px;color:var(--gris2);font-weight:700;padding:12px 8px 6px;}
.mob-panel-item{display:block;width:100%;text-align:left;padding:12px 10px;border-radius:10px;
  border:none;background:transparent;color:var(--blanc2);font-size:14px;
  font-family:'Plus Jakarta Sans',sans-serif;font-weight:500;cursor:pointer;}
.mob-panel-item.on{background:var(--or-glow);color:var(--or);font-weight:700;}
.mob-panel-divider{height:1px;background:rgba(255,255,255,0.07);margin:10px 8px;}
.mob-panel-guide{color:var(--or);font-weight:600;}
.mob-panel-logout{color:#c98b80;}
.mob-panel-logout:hover{color:#e08a7a;}
/* Base button */
.mob-btn{
  display:flex;flex-direction:column;align-items:center;gap:3px;
  padding:4px 6px;min-width:42px;border:none;background:none;
  color:rgba(138,134,128,0.7);cursor:pointer;
  font-family:'Plus Jakarta Sans',sans-serif;
  transition:color .15s,transform .1s;
  -webkit-tap-highlight-color:transparent;
  position:relative;flex:1;}
.mob-btn:active{transform:scale(.88);}
/* Active state */
.mob-btn.on{color:var(--or);}
.mob-btn.on .mob-svg{filter:drop-shadow(0 0 6px rgba(200,168,75,0.5));}
/* Underline indicator */
.mob-btn::after{
  content:'';position:absolute;bottom:-6px;left:50%;transform:translateX(-50%);
  width:0;height:2px;border-radius:1px;background:var(--or);transition:width .2s;}
.mob-btn.on::after{width:20px;}
/* SVG icon */
.mob-svg{width:22px;height:22px;display:block;stroke:currentColor;}
/* Label */
.mob-lbl{font-size:8.5px;font-weight:600;letter-spacing:.2px;line-height:1;text-align:center;}
/* ── CENTER QUIZ BUTTON ── */
.mob-btn-center{position:relative;margin-top:-16px;}
.mob-center-ring{
  width:48px;height:48px;border-radius:50%;
  background:linear-gradient(145deg,#c8a84b,#f0dca0,#b89530);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 20px rgba(200,168,75,0.4),0 0 0 3px rgba(8,9,12,0.97),0 0 0 4px rgba(200,168,75,0.3);
  transition:transform .15s, box-shadow .15s;}
.mob-btn-center:active .mob-center-ring{transform:scale(.9);}
.mob-btn-center .mob-svg{width:22px;height:22px;stroke:#0d0b06;stroke-width:2.2;}
.mob-btn-center .mob-lbl{color:var(--or);font-weight:700;}
.mob-btn-center.on .mob-center-ring{box-shadow:0 6px 24px rgba(200,168,75,0.6),0 0 0 3px rgba(8,9,12,0.97),0 0 0 5px rgba(200,168,75,0.5);}
/* Light mode */
body.light .mob-btn{color:rgba(100,95,90,0.7);}
body.light .mob-btn.on{color:#8a6a00;}
body.light .mob-btn.on .mob-svg{filter:drop-shadow(0 0 5px rgba(180,140,30,0.4));}
body.light .mob-btn-center .mob-lbl{color:#8a6a00;}
body.light .mob-center-ring{box-shadow:0 4px 20px rgba(200,168,75,0.4),0 0 0 3px rgba(240,236,228,0.97),0 0 0 4px rgba(200,168,75,0.3);}
body.light .mob-btn-center.on .mob-center-ring{box-shadow:0 6px 24px rgba(200,168,75,0.6),0 0 0 3px rgba(240,236,228,0.97),0 0 0 5px rgba(200,168,75,0.5);}

@media(max-width:768px){#app{padding-bottom:80px !important;}}
.pg{display:none;background:var(--noir);}
.pg.on{display:block;background:var(--noir);}

/* ═══ HERO ═══ */
.hero{position:relative;overflow:hidden;padding:52px 24px 48px;text-align:center;
  border-bottom:1px solid rgba(200,168,75,0.08);}
.hero-bg{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse 70% 50% at 50% 0%,rgba(200,168,75,0.07) 0%,transparent 70%);}
.hero-emblem{display:inline-flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:28px;}
.hero-icon{width:72px;height:72px;border-radius:18px;
  background:linear-gradient(145deg,#c8a84b 0%,#e4c870 50%,#c8a84b 100%);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 0 0 1px rgba(200,168,75,0.4),0 16px 48px rgba(200,168,75,0.12);position:relative;}
.hero-icon::before{content:'';position:absolute;inset:3px;border-radius:15px;border:1px solid rgba(255,255,255,0.25);}
.hero-icon-txt{font-family:'Playfair Display',serif;font-size:28px;font-weight:900;color:var(--noir);letter-spacing:-1px;}
.hero-brand{font-family:'Playfair Display',serif;font-size:11px;font-weight:700;
  color:var(--or);letter-spacing:4px;text-transform:uppercase;opacity:.9;}
.hero-title{font-family:'Playfair Display',serif;font-size:clamp(32px,6vw,60px);
  font-weight:700;line-height:1.08;color:var(--blanc);margin-bottom:6px;}
.hero-title em{color:var(--or);font-style:italic;}
.hero-sub-title{font-family:'Playfair Display',serif;font-size:clamp(14px,2.5vw,20px);
  color:var(--gris);font-style:italic;margin-bottom:24px;}
.hero-line{width:40px;height:1px;background:linear-gradient(90deg,transparent,var(--or),transparent);margin:0 auto 20px;}
.hero-by{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:30px;
  border:1px solid var(--or-border);background:var(--or-glow);margin-bottom:32px;}
.hero-av{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--or),var(--or2));
  display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--noir);}
.hero-by-txt{text-align:left;line-height:1.3;}
.hero-by-txt small{font-size:9px;color:var(--gris);display:block;text-transform:uppercase;letter-spacing:.5px;}
.hero-by-txt strong{font-size:12px;font-weight:600;color:var(--blanc2);}
.hero-stats{display:flex;justify-content:center;flex-wrap:wrap;margin-bottom:8px;}
.hero-stat{padding:16px 24px;text-align:center;position:relative;}
.hero-stat:not(:last-child)::after{content:'';position:absolute;right:0;top:25%;bottom:25%;width:1px;background:var(--or-border);}
.h-stat-n{font-family:'Playfair Display',serif;font-size:32px;font-weight:700;color:var(--or);line-height:1;}
.h-stat-l{font-size:10px;color:var(--gris);margin-top:3px;letter-spacing:.5px;text-transform:uppercase;}

/* MOTIVATION BANNER */
.motiv-banner{background:linear-gradient(135deg,rgba(200,168,75,0.08),rgba(200,168,75,0.03));
  border:1px solid var(--or-border);border-radius:var(--r2);padding:20px 24px;margin:0 24px 24px;
  display:flex;align-items:center;gap:16px;}
.motiv-icon{font-size:32px;flex-shrink:0;}
.motiv-text{}
.motiv-title{font-family:'Playfair Display',serif;font-size:16px;font-weight:700;color:var(--or);margin-bottom:3px;}
.motiv-sub{font-size:12px;color:var(--gris);line-height:1.5;}

/* CHAPTERS GRID */
.sec-wrap{max-width:1060px;margin:0 auto;padding:32px 20px 40px;}
.sec-label{font-size:9px;letter-spacing:3px;text-transform:uppercase;color:var(--or);opacity:.7;margin-bottom:6px;}
.sec-title{font-family:'Playfair Display',serif;font-size:26px;font-weight:700;color:var(--blanc);margin-bottom:4px;}
.sec-sub{font-size:12px;color:var(--gris2);margin-bottom:20px;}
.or-rule{width:36px;height:1px;background:var(--or);opacity:.5;margin:8px 0 16px;}
.howto-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 20px 8px;max-width:900px;margin-left:auto;margin-right:auto;}
@media(max-width:720px){.howto-grid{grid-template-columns:1fr;margin-left:16px;margin-right:16px;}}
.chap-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;}
.chap-card{background:var(--noir3);border:1px solid rgba(255,255,255,0.05);border-radius:var(--r2);
  padding:20px;cursor:pointer;transition:all .2s;position:relative;overflow:hidden;}
.chap-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,var(--or),var(--or2));transform:scaleX(0);transition:.2s;transform-origin:left;}
.chap-card:hover{background:var(--noir4);border-color:var(--or-border);transform:translateY(-2px);box-shadow:0 12px 32px rgba(0,0,0,0.4);}
.chap-card:hover::before{transform:scaleX(1);}
.chap-n{font-size:9px;font-weight:600;color:var(--or);text-transform:uppercase;letter-spacing:2px;margin-bottom:8px;opacity:.7;}
.chap-nm{font-family:'Playfair Display',serif;font-size:15px;font-weight:600;color:var(--blanc);margin-bottom:6px;line-height:1.3;}
.chap-desc{font-size:11px;color:var(--gris2);line-height:1.55;margin-bottom:12px;}
.chap-foot{display:flex;align-items:center;justify-content:space-between;}
.chap-tags{display:flex;gap:4px;flex-wrap:wrap;}
.ctag{padding:2px 8px;border-radius:4px;font-size:9px;font-weight:600;letter-spacing:.3px;}
.ct-or{background:rgba(200,168,75,0.1);color:var(--or);border:1px solid var(--or-border);}
.ct-eco{background:rgba(109,139,168,0.1);color:#9db4c9;}
.ct-s{background:rgba(143,127,168,0.1);color:#b3a8c2;}
.ct-rc{background:rgba(61,158,110,0.1);color:#6dc49a;}
.ct-sp{background:rgba(200,168,75,0.08);color:#d4b060;}

/* ═══ SPLIT LAYOUT ═══ */
.split{display:grid;grid-template-columns:250px 1fr;min-height:calc(100vh - 56px);}
.sidebar{background:var(--noir2);border-right:1px solid rgba(255,255,255,0.05);
  position:sticky;top:56px;height:calc(100vh - 56px);overflow-y:auto;display:flex;flex-direction:column;}
.sidebar::-webkit-scrollbar{width:2px;}
.sb-hd{padding:16px 16px 12px;border-bottom:1px solid rgba(255,255,255,0.05);}
.sb-hd-title{font-family:'Playfair Display',serif;font-size:13px;font-weight:600;color:var(--or);}
.sb-hd-sub{font-size:9px;color:var(--gris2);margin-top:2px;text-transform:uppercase;letter-spacing:.5px;}
.sb-items{padding:6px 0;flex:1;}
.sb-item{width:100%;text-align:left;padding:9px 16px;background:none;border:none;
  border-left:2px solid transparent;color:var(--gris);font-family:'Plus Jakarta Sans',sans-serif;
  font-size:11px;cursor:pointer;transition:.15s;line-height:1.35;}
.sb-item:hover{color:var(--or2);background:var(--or-glow);}
.sb-item.on{color:var(--or);background:rgba(200,168,75,0.07);border-left-color:var(--or);}
.sb-item-sub{font-size:9px;color:var(--gris2);display:block;margin-top:1px;text-transform:uppercase;letter-spacing:.3px;}
.main-panel{overflow-y:auto;}
.panel-in{padding:28px;max-width:820px;}

/* ═══ EC1 ═══ */
.chap-header{margin-bottom:20px;}
.chap-h-label{font-size:9px;font-weight:600;color:var(--or);text-transform:uppercase;letter-spacing:2px;margin-bottom:5px;opacity:.7;}
.chap-h-title{font-family:'Playfair Display',serif;font-size:24px;font-weight:700;color:var(--blanc);line-height:1.2;margin-bottom:3px;}
.chap-h-sub{font-size:11px;color:var(--gris2);}
.methode-bar{background:var(--noir3);border:1px solid var(--or-border);border-radius:var(--r2);
  padding:16px;margin-bottom:24px;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;overflow:hidden;}
.m-cell{padding:12px;text-align:center;background:var(--noir3);}
.m-n{font-family:'Playfair Display',serif;font-size:22px;font-weight:700;color:var(--or);}
.m-l{font-size:9px;color:var(--gris);text-transform:uppercase;letter-spacing:.5px;margin-top:3px;}
.q-card{background:var(--noir3);border:1px solid rgba(255,255,255,0.05);border-radius:var(--r2);margin-bottom:10px;overflow:hidden;}
.q-card:hover{border-color:rgba(200,168,75,0.14);}
.q-hd{padding:16px 20px;cursor:pointer;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.q-hd:hover{background:rgba(255,255,255,0.02);}
.q-num-lbl{font-size:9px;font-weight:600;color:var(--or);text-transform:uppercase;letter-spacing:1.5px;opacity:.7;margin-bottom:4px;}
.q-txt-main{font-family:'Playfair Display',serif;font-size:14px;font-weight:500;color:var(--blanc);line-height:1.45;flex:1;}
.q-chev{color:var(--gris2);font-size:12px;transition:.2s;flex-shrink:0;margin-top:2px;}
.q-chev.open{transform:rotate(180deg);color:var(--or);}
.q-body{display:none;border-top:1px solid rgba(255,255,255,0.05);}
.q-body.open{display:block;}
.q-bi{padding:18px 20px;}
.tags-row{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:10px;}
.notion{padding:3px 9px;border-radius:4px;font-size:10px;background:rgba(200,168,75,0.08);color:var(--or);border:1px solid var(--or-border);}
.auteur{padding:3px 9px;border-radius:4px;font-size:10px;background:rgba(143,127,168,0.08);color:#b3a8c2;border:1px solid rgba(143,127,168,0.2);}
.args-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0;}
.arg-box{background:var(--noir4);border-radius:8px;padding:12px 14px;}
.arg-lbl{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;margin-bottom:5px;}
.arg-txt{font-size:11px;color:var(--gris);line-height:1.6;}
.ex-box{background:var(--noir4);border-radius:8px;padding:12px 14px;border-left:3px solid var(--vert);}
.ex-lbl{font-size:9px;font-weight:600;color:var(--vert);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;}
.ex-txt{font-size:11px;color:var(--blanc);line-height:1.7;font-style:italic;}

/* ═══ RECAP DE COURS ═══ */
.recap-section{background:var(--noir3);border:1px solid rgba(255,255,255,0.05);border-radius:var(--r2);
  padding:20px;margin-bottom:12px;overflow:hidden;}
.recap-hd{cursor:pointer;display:flex;align-items:center;justify-content:space-between;}
.recap-title{font-family:'Playfair Display',serif;font-size:16px;font-weight:600;color:var(--or);display:flex;align-items:center;gap:8px;}
.recap-body{display:none;margin-top:16px;border-top:1px solid rgba(255,255,255,0.06);padding-top:16px;}
.recap-body.open{display:block;}
.def-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;margin-bottom:14px;}
.def-card{background:var(--noir4);border-radius:8px;padding:12px;}
.def-term{font-size:11px;font-weight:700;color:var(--or);margin-bottom:4px;}
.def-text{font-size:11px;color:var(--gris);line-height:1.55;}
.meca-box{background:var(--noir4);border-radius:8px;padding:12px;margin-bottom:8px;border-left:2px solid var(--cuivre);}
.meca-title{font-size:11px;font-weight:600;color:var(--cuivre);margin-bottom:6px;}
.meca-txt{font-size:11px;color:var(--gris);line-height:1.6;}
.auteurs-section{margin-top:10px;}
.auteur-card{background:var(--noir4);border-radius:8px;padding:10px 12px;margin-bottom:6px;
  display:flex;align-items:flex-start;gap:10px;}
.auteur-name{font-size:11px;font-weight:700;color:var(--bronze);min-width:100px;}
.auteur-contrib{font-size:11px;color:var(--gris);line-height:1.5;}

/* CHECKLIST */
.checklist-section{background:var(--noir3);border:1px solid rgba(255,255,255,0.05);border-radius:var(--r2);
  padding:20px;margin-bottom:12px;}
.checklist-title{font-family:'Playfair Display',serif;font-size:16px;font-weight:600;color:var(--vert);margin-bottom:14px;display:flex;align-items:center;gap:8px;}
.cl-progress{height:6px;background:var(--noir4);border-radius:3px;margin-bottom:14px;overflow:hidden;}
.cl-bar{height:100%;background:linear-gradient(90deg,var(--vert),#6dc49a);border-radius:3px;transition:.3s;width:0%;}
.cl-score{font-size:11px;color:var(--gris);margin-top:6px;}
.cl-items{display:flex;flex-direction:column;gap:6px;}
.cl-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--noir4);border-radius:8px;cursor:pointer;transition:.15s;border:1px solid transparent;}
.cl-item:hover{background:var(--noir5);border-color:rgba(255,255,255,0.06);}
.cl-item.done{background:rgba(61,158,110,0.06);border-color:rgba(61,158,110,0.2);}
.cl-box{width:18px;height:18px;border-radius:4px;border:1.5px solid var(--gris3);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;transition:.15s;font-size:11px;}
.cl-item.done .cl-box{background:var(--vert);border-color:var(--vert);color:white;}
.cl-label{font-size:12px;color:var(--blanc);flex:1;}
.cl-item.done .cl-label{color:var(--gris);text-decoration:line-through;}

/* ═══ EC2 ═══ */
.ec2-card{background:var(--noir3);border:1px solid rgba(255,255,255,0.05);border-radius:var(--r2);margin-bottom:12px;overflow:hidden;}
.ec2-hd{padding:18px 20px;}
.ec2-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px;}
.ec2-title{font-family:'Playfair Display',serif;font-size:16px;font-weight:600;color:var(--blanc);line-height:1.3;flex:1;}
.ec2-badge{padding:3px 9px;border-radius:4px;font-size:9px;font-weight:600;background:var(--or-glow);color:var(--or);border:1px solid var(--or-border);white-space:nowrap;}
.ec2-doc{padding:10px 12px;background:var(--noir4);border-radius:8px;border-left:2px solid var(--or);font-size:11px;color:var(--gris);line-height:1.5;}
.ec2-qs{padding:0 20px 18px;display:flex;flex-direction:column;gap:12px;}
.ec2-q-lbl{font-size:9px;font-weight:600;color:var(--or);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;}
.ec2-q-txt{font-size:12px;color:var(--blanc);margin-bottom:8px;line-height:1.5;}
.rev-btn{padding:5px 12px;border-radius:6px;border:1px solid rgba(255,255,255,0.1);background:none;
  color:var(--gris);font-size:11px;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;transition:.15s;}
.rev-btn:hover{border-color:var(--or-border);color:var(--or);background:var(--or-glow);}
.ec2-corr{display:none;margin-top:10px;border-top:1px solid rgba(255,255,255,0.05);padding-top:10px;}
.ec2-corr.open{display:block;}
.q1-r{background:var(--noir4);border-radius:8px;border-left:2px solid var(--vert);padding:10px 12px;font-size:11px;color:var(--blanc);line-height:1.7;}
.aei{display:flex;flex-direction:column;gap:5px;}
.aei-s{background:var(--noir4);border-radius:8px;padding:9px 12px;}
.aei-l{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px;}
.aei-t{font-size:11px;color:var(--blanc);line-height:1.6;}
.cl-a{color:var(--bleu);}.cl-e{color:var(--violet);}.cl-i{color:var(--or);}.cl-r{color:var(--vert);}

/* ═══ QUIZ ═══ */
.quiz-wrap{max-width:660px;margin:0 auto;padding:32px 20px;}
.quiz-hd-title{font-family:'Playfair Display',serif;font-size:26px;font-weight:700;color:var(--blanc);margin-bottom:3px;}
.quiz-hd-sub{font-size:12px;color:var(--gris2);margin-bottom:16px;}
.qfil-row{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:20px;}
.qfil{padding:5px 12px;border-radius:6px;border:1px solid rgba(255,255,255,0.08);background:none;
  color:var(--gris);font-size:10px;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;transition:.15s;white-space:nowrap;}
.qfil:hover{border-color:var(--or-border);color:var(--or);}
.qfil.on{background:var(--or-glow);border-color:var(--or-border);color:var(--or);}
.quiz-box{background:var(--noir3);border:1px solid rgba(255,255,255,0.06);border-radius:var(--r2);padding:28px;}
.q-prog{display:flex;align-items:center;gap:12px;margin-bottom:20px;}
.q-bar-wrap{flex:1;height:3px;background:var(--noir5);border-radius:2px;overflow:hidden;}
.q-bar-fill{height:100%;background:linear-gradient(90deg,var(--or),var(--or2));border-radius:2px;transition:.3s;}
.q-sc{font-size:11px;color:var(--gris);white-space:nowrap;}
.q-n-lbl{font-size:9px;color:var(--or);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;opacity:.7;}
.q-question{font-family:'Playfair Display',serif;font-size:18px;font-weight:600;color:var(--blanc);margin-bottom:20px;line-height:1.45;}
.q-opts{display:flex;flex-direction:column;gap:8px;}
.q-opt{padding:11px 16px;border-radius:8px;border:1px solid rgba(255,255,255,0.08);background:var(--noir4);
  color:var(--blanc);font-size:12px;cursor:pointer;text-align:left;font-family:'Plus Jakarta Sans',sans-serif;transition:.15s;line-height:1.4;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;}
.q-opt.q-opt-expanded{-webkit-line-clamp:unset;overflow:visible;}
.q-opt:hover{border-color:var(--or-border);color:var(--or2);background:var(--or-glow);}
.q-opt.ok{background:rgba(61,158,110,0.1);border-color:rgba(61,158,110,0.4);color:#6dc49a;}
.q-opt.nok{background:rgba(200,75,75,0.08);border-color:rgba(200,75,75,0.3);color:#d88;}
.q-opt:disabled{cursor:default;}
.q-fb{margin-top:12px;padding:12px;border-radius:8px;font-size:11px;line-height:1.6;}
.q-fb.ok{background:rgba(61,158,110,0.07);border:1px solid rgba(61,158,110,0.2);color:#6dc49a;}
.q-fb.nok{background:rgba(200,75,75,0.06);border:1px solid rgba(200,75,75,0.2);color:#d88;}
.q-next{margin-top:12px;padding:9px 20px;border-radius:8px;background:var(--or);border:none;
  color:var(--noir);font-weight:700;font-size:13px;cursor:pointer;font-family:'Playfair Display',serif;transition:.15s;}
.q-next:hover{background:var(--or2);}
.q-end{text-align:center;padding:16px 0;}
.q-end-emoji{font-size:48px;margin-bottom:12px;}
.q-end-score{font-family:'Playfair Display',serif;font-size:52px;font-weight:700;color:var(--or);line-height:1;}
.q-end-sub{font-size:13px;color:var(--gris);margin:8px 0 20px;}

/* ═══ MINDMAP INFOGRAPHIC ═══ */
.mm-page{padding:24px 20px 40px;}
.mm-page-title{font-family:'Playfair Display',serif;font-size:24px;font-weight:700;color:var(--blanc);margin-bottom:3px;}
.mm-page-sub{font-size:12px;color:var(--gris2);margin-bottom:18px;}
.mm-tabs{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:16px;}
.mm-tab{padding:6px 12px;border-radius:8px;border:1px solid rgba(255,255,255,0.08);background:none;
  color:var(--gris);font-size:10px;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;transition:.15s;white-space:nowrap;}
.mm-tab:hover{border-color:var(--or-border);color:var(--or2);}
.mm-tab.on{background:var(--or-glow);}
.mm-info{font-size:14px;color:var(--gris2);margin-bottom:14px;line-height:1.5;display:flex;align-items:center;gap:8px;}
.mm-canvas{background:var(--noir2);border:1px solid rgba(255,255,255,0.06);border-radius:var(--r2);padding:20px;overflow:auto;}

/* ═══ SCHÉMA BILAN ═══
   La grille des colonnes était écrite en style inline, repeat(nbCols,1fr),
   sans aucune adaptation : sur un téléphone, trois colonnes de texte en 11 px
   faisaient 110 px de large chacune. C'est pourtant là que les élèves révisent.
   Elle passe ici, avec de vrais points de rupture. */
.mm-cols{display:grid;gap:12px;margin-bottom:6px;grid-template-columns:1fr;}
@media(min-width:700px){
  .mm-cols[data-cols="2"],.mm-cols[data-cols="3"],.mm-cols[data-cols="4"]{grid-template-columns:repeat(2,1fr);}
}
@media(min-width:1000px){
  .mm-cols[data-cols="3"]{grid-template-columns:repeat(3,1fr);}
  .mm-cols[data-cols="4"]{grid-template-columns:repeat(4,1fr);}
}
/* La barre d'outils : révision active, repli, impression. */
.mm-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px;}
.mm-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:20px;border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.03);color:var(--gris);font-size:11.5px;font-weight:700;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;transition:.15s;}
.mm-btn:hover{border-color:var(--or-border);color:var(--or2);}
.mm-btn.on{border-color:var(--or);background:var(--or-glow);color:var(--or2);}
.mm-prog{margin-left:auto;font-size:11px;color:#77726b;font-variant-numeric:tabular-nums;white-space:nowrap;}
/* Révision active : les items se masquent, les intitulés restent. L'élève
   essaie de se souvenir, puis dévoile la section. Un schéma qu'on relit ne se
   mémorise pas ; un schéma qu'on se récite, oui. */
.mm-cache .mm-item-tx{filter:blur(5px);opacity:.55;transition:filter .18s,opacity .18s;cursor:pointer;user-select:none;}
.mm-cache .mm-item-tx:hover,.mm-cache .mm-item-tx.vu{filter:none;opacity:1;cursor:default;}
.mm-sec{transition:opacity .2s;}
.mm-sec.replie .mm-sec-body{display:none;}
.mm-sec-hd{cursor:pointer;}
.mm-chev{transition:transform .2s;flex-shrink:0;}
.mm-sec.replie .mm-chev{transform:rotate(-90deg);}
.mm-su{border:1px solid rgba(93,196,137,.35)!important;}

/* Impression : un schéma bilan se met sous les yeux, sur papier. Le fond noir
   vidait les cartouches et rendait la page illisible en noir et blanc. */
@media print{
  body{background:#fff!important;}
  #nav,#mob-nav,.mm-bar,.mm-tabs,.mob-panel,#fm-bar{display:none!important;}
  .pg:not(.on){display:none!important;}
  .mm-canvas{background:#fff!important;border:none!important;padding:0!important;overflow:visible!important;}
  .mm-canvas *{color:#111!important;}
  .mm-cols{grid-template-columns:repeat(2,1fr)!important;}
  .mm-cache .mm-item-tx{filter:none!important;opacity:1!important;}
  .mm-sec.replie .mm-sec-body{display:block!important;}
  .mm-sec{break-inside:avoid;page-break-inside:avoid;}
}
/* Infographic grid */
.ig-grid{display:flex;flex-direction:column;gap:12px;}
.ig-row{display:grid;grid-template-columns:140px 1fr;gap:12px;align-items:start;}
.ig-row-label{padding:10px 12px;border-radius:8px;border:1px solid;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;text-align:center;line-height:1.4;}
.ig-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;}
.ig-card{background:var(--noir3);border-radius:8px;padding:12px 14px;border-top:2px solid;}
.ig-card-title{font-size:11px;font-weight:700;margin-bottom:5px;line-height:1.3;}
.ig-card-desc{font-size:10px;color:var(--gris);line-height:1.55;}
@media(max-width:768px){
  .ig-row{grid-template-columns:1fr;}
  .ig-row-label{text-align:left;}
  .ig-cards{grid-template-columns:1fr 1fr;}
}
@media(max-width:480px){.ig-cards{grid-template-columns:1fr;}}

/* ═══ MÉTHODE ═══ */
.methode-page{max-width:780px;margin:0 auto;padding:32px 20px;}
.m-section{background:var(--noir3);border:1px solid rgba(255,255,255,0.06);border-radius:var(--r2);padding:24px;margin-bottom:14px;}
.m-sec-title{font-family:'Playfair Display',serif;font-size:18px;font-weight:700;color:var(--or);margin-bottom:16px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.m-badge{padding:3px 9px;border-radius:4px;font-size:10px;font-weight:600;background:var(--or-glow);border:1px solid var(--or-border);font-family:'Plus Jakarta Sans',sans-serif;}
.m-steps{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;margin-bottom:14px;}
.m-step{background:var(--noir4);border-radius:8px;padding:12px;}
.m-step-num{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;margin-bottom:7px;}
.m-step-name{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px;}
.m-step-desc{font-size:10px;color:var(--gris);line-height:1.5;}
.m-tip{padding:10px 14px;background:var(--or-glow);border-radius:8px;font-size:11px;color:var(--gris);border:1px solid var(--or-border);line-height:1.6;}

/* ═══ HUB RÉVISER (app mobile) ═══ */
.rvz-wrap{max-width:680px;margin:0 auto;padding:26px 16px 40px;}
.rvz-hd{margin-bottom:16px;}
.rvz-k{font-size:10px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--or);margin-bottom:6px;}
.rvz-t{font-family:'Playfair Display',serif;font-size:24px;font-weight:700;color:var(--blanc2);margin:0;line-height:1.2;}
.rvz-t em{color:var(--or);font-style:italic;}
.rvz-card{display:flex;align-items:center;gap:13px;width:100%;text-align:left;
  padding:15px 14px;border-radius:16px;cursor:pointer;
  background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.07);
  color:var(--blanc2);font-family:'Plus Jakarta Sans',sans-serif;
  transition:transform .12s,border-color .15s,background .15s;
  -webkit-tap-highlight-color:transparent;}
.rvz-card:active{transform:scale(.97);background:rgba(255,255,255,0.05);}
.rvz-card:hover{border-color:rgba(200,168,75,0.35);}
.rvz-hero{margin-bottom:12px;background:linear-gradient(135deg,rgba(93,196,137,0.12),rgba(93,196,137,0.04));border-color:rgba(93,196,137,0.3);}
.rvz-hero:hover{border-color:rgba(93,196,137,0.55);}
.rvz-ico{width:40px;height:40px;flex-shrink:0;border-radius:12px;display:flex;align-items:center;justify-content:center;
  background:rgba(200,168,75,0.1);border:1px solid rgba(200,168,75,0.22);color:var(--or);}
.rvz-ico svg{width:20px;height:20px;}
.rvz-ico-sim{background:rgba(93,196,137,0.12);border-color:rgba(93,196,137,0.3);color:#5dc489;}
.rvz-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.rvz-tx b{font-size:14px;font-weight:700;}
.rvz-tx span{font-size:11px;color:var(--gris);line-height:1.35;}
.rvz-go{font-size:22px;color:var(--gris);flex-shrink:0;}
.rvz-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.rvz-grid .rvz-card{flex-direction:column;align-items:flex-start;gap:10px;padding:14px 13px;}
@media(max-width:380px){.rvz-grid{grid-template-columns:1fr;}}

/* ═══ TRANSITIONS APP (mobile) ═══ */
@media(max-width:768px){
  /* iOS zoome automatiquement sur tout champ < 16px : on impose 16px partout sur mobile */
  input,select,textarea{font-size:16px!important;}
  .pg.on{animation:lbvPgIn .26s cubic-bezier(.2,.8,.25,1);}
  @keyframes lbvPgIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
  .mob-nav{padding-top:8px;}
  .mob-nav .mob-svg{width:23px;height:23px;}
  .mob-nav .mob-lbl{font-size:9px;}
}

/* ═══ FLASHCARDS APP (swipe, session, fin) ═══ */
.flash-seg{display:flex;gap:6px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:12px;padding:4px;margin:0 auto 12px;max-width:320px;}
.flash-seg-btn{flex:1;padding:9px 6px;border-radius:9px;border:none;background:none;color:var(--gris);font-size:12px;font-weight:700;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;-webkit-tap-highlight-color:transparent;}
.flash-seg-btn.on{background:rgba(200,168,75,0.15);color:var(--or);}
.flash-session-bar{display:flex;justify-content:center;gap:14px;font-size:11.5px;color:var(--gris);margin-bottom:10px;min-height:16px;}
.flash-session-bar b{font-weight:800;}
.flash-session-bar .fsb-ok b{color:#5dc489;}
.flash-session-bar .fsb-nok b{color:#e08a7a;}
.flash-scene{position:relative;touch-action:pan-y;}
.flash-card.swiping{transition:none!important;}
.flash-card.fly-right{transition:transform .28s ease,opacity .28s ease!important;transform:translateX(120%) rotate(14deg)!important;opacity:0!important;}
.flash-card.fly-left{transition:transform .28s ease,opacity .28s ease!important;transform:translateX(-120%) rotate(-14deg)!important;opacity:0!important;}
.flash-swipe-badge{position:absolute;top:16px;padding:6px 13px;border-radius:9px;font-size:12px;font-weight:900;letter-spacing:1.5px;opacity:0;pointer-events:none;z-index:5;transform:rotate(-8deg);transition:opacity .1s;}
.flash-sb-ok{left:16px;color:#5dc489;border:2px solid #5dc489;background:rgba(93,196,137,0.12);}
.flash-sb-nok{right:16px;color:#e08a7a;border:2px solid #e08a7a;background:rgba(224,138,122,0.12);transform:rotate(8deg);}
.flash-done{max-width:420px;margin:8px auto 0;padding:26px 20px;border-radius:18px;text-align:center;background:rgba(200,168,75,0.06);border:1px solid rgba(200,168,75,0.25);}
.flash-done-ico{font-size:34px;margin-bottom:8px;}
.flash-done-t{font-family:'Playfair Display',serif;font-size:20px;font-weight:700;color:var(--blanc2);margin-bottom:6px;}
.flash-done-n{font-size:13px;color:var(--blanc2);margin-bottom:8px;}
.flash-done-n .ok{color:#5dc489;font-weight:800;}
.flash-done-n .nok{color:#e08a7a;font-weight:800;}
.flash-done-s{font-size:11.5px;color:var(--gris);line-height:1.6;margin-bottom:16px;}
.flash-done-btn{padding:12px 22px;border-radius:12px;border:none;cursor:pointer;background:linear-gradient(135deg,#c8a84b,#e8c86b);color:#0b0904;font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;font-weight:800;-webkit-tap-highlight-color:transparent;}
.flash-done-btn:active{transform:scale(.96);}

/* ═══ RESPONSIVE ═══ */
@media(max-width:768px){
  #nav .nav-links{display:none;}
  #nav .nav-div{display:none;}
  #nav .nav-by{display:none;}
  .mob-nav{display:block;}
  #app{padding-top:56px;padding-bottom:72px;background:var(--noir);min-height:100vh;}
  .split{grid-template-columns:1fr;}
  .sidebar{display:none;}
  .panel-in{padding:16px;}
  .args-grid{grid-template-columns:1fr;}
  .methode-bar{grid-template-columns:repeat(2,1fr);}
  .hero{padding:32px 16px 32px;}
  .hero-stat{padding:12px 16px;}
  .hero-stats{gap:0;}
  .chap-grid{grid-template-columns:1fr;}
  .quiz-wrap{padding:20px 14px;}
  .quiz-box{padding:20px 16px;}
  .mm-page{padding:16px;}
  .methode-page{padding:20px 14px;}
  .motiv-banner{margin:0 14px 16px;flex-direction:column;text-align:center;}
  .sec-wrap{padding:24px 14px;}
  .ec2-hd{padding:12px;}
  .ec2-qs{padding:0 14px 14px;}
  .m-steps{grid-template-columns:1fr 1fr;}
}
@media(max-width:420px){
  .hero-title{font-size:28px;}
  .hero-stats{flex-direction:column;}
  .hero-stat::after{display:none!important;}
  .m-steps{grid-template-columns:1fr;}
  .def-grid{grid-template-columns:1fr;}
}

/* ═══ TABS INSIDE EC1 ═══ */
.ec1-tabs{display:flex;gap:5px;margin-bottom:20px;border-bottom:1px solid rgba(255,255,255,0.06);padding-bottom:12px;}
.ec1-tab{padding:6px 14px;border-radius:8px;border:1px solid rgba(255,255,255,0.07);background:none;
  color:var(--gris);font-size:11px;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;transition:.15s;}
.ec1-tab:hover{color:var(--or2);background:var(--or-glow);}
.ec1-tab.on{background:var(--or-glow);border-color:var(--or-border);color:var(--or);}

/* MOBILE CHAP SELECTOR */
.mob-chap-sel{display:none;margin-bottom:16px;}
.mob-chap-sel select{width:100%;padding:10px 14px;border-radius:8px;background:var(--noir3);
  border:1px solid var(--or-border);color:var(--or);font-family:'Plus Jakarta Sans',sans-serif;
  font-size:12px;cursor:pointer;outline:none;}
@media(max-width:768px){.mob-chap-sel{display:block;}}

/* ═══ FLASHCARDS ═══ */
.flash-wrap{max-width:680px;margin:0 auto;padding:32px 20px;}
.flash-hd-title{font-family:'Playfair Display',serif;font-size:26px;font-weight:700;color:var(--blanc);margin-bottom:3px;}
.flash-hd-sub{font-size:12px;color:var(--gris2);margin-bottom:16px;}
.flash-fil{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:20px;}
.flash-fil-btn{padding:5px 12px;border-radius:6px;border:1px solid rgba(255,255,255,0.08);background:none;
  color:var(--gris);font-size:10px;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;transition:.15s;white-space:nowrap;}
.flash-fil-btn:hover{border-color:var(--or-border);color:var(--or);}
.flash-fil-btn.on{background:var(--or-glow);border-color:var(--or-border);color:var(--or);}
.flash-scene{perspective:1200px;margin-bottom:16px;cursor:pointer;}
.flash-card{position:relative;width:100%;height:240px;transform-style:preserve-3d;transition:transform .55s cubic-bezier(.4,0,.2,1);}
.flash-card.flipped{transform:rotateY(180deg);}
.flash-front,.flash-back{position:absolute;inset:0;backface-visibility:hidden;border-radius:var(--r2);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;text-align:center;}
.flash-front{background:var(--noir3);border:1px solid var(--or-border);}
.flash-back{background:linear-gradient(135deg,rgba(200,168,75,0.06),rgba(200,168,75,0.02));border:1px solid var(--or-border2);transform:rotateY(180deg);}
.flash-front-label{font-size:9px;font-weight:600;color:var(--or);text-transform:uppercase;letter-spacing:2px;opacity:.7;margin-bottom:14px;}
.flash-term{font-family:'Playfair Display',serif;font-size:22px;font-weight:700;color:var(--blanc);line-height:1.3;}
.flash-back-label{font-size:9px;font-weight:600;color:var(--vert);text-transform:uppercase;letter-spacing:2px;opacity:.8;margin-bottom:12px;}
.flash-def{font-size:13px;color:var(--blanc2);line-height:1.7;max-width:540px;}
.flash-hint{font-size:10px;color:var(--gris2);margin-top:14px;}
.flash-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;}
.flash-nav-btn{padding:9px 20px;border-radius:8px;border:1px solid rgba(255,255,255,0.1);background:var(--noir3);
  color:var(--blanc2);font-size:12px;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;transition:.15s;}
.flash-nav-btn:hover{border-color:var(--or-border);color:var(--or);}
.flash-counter{font-size:12px;color:var(--gris);text-align:center;}
.flash-actions{display:flex;gap:8px;justify-content:center;margin-top:12px;}
.flash-btn-nok{padding:9px 24px;border-radius:8px;border:1px solid rgba(200,75,75,0.3);background:rgba(200,75,75,0.06);
  color:#d88;font-size:12px;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;transition:.15s;font-weight:600;}
.flash-btn-ok{padding:9px 24px;border-radius:8px;border:1px solid rgba(61,158,110,0.3);background:rgba(61,158,110,0.06);
  color:#6dc49a;font-size:12px;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;transition:.15s;font-weight:600;}
.flash-btn-nok:hover{background:rgba(200,75,75,0.12);}
.flash-btn-ok:hover{background:rgba(61,158,110,0.12);}
.flash-end{text-align:center;padding:32px 20px;}

/* ═══ STATS PAGE ═══ */
.stats-wrap{max-width:900px;margin:0 auto;padding:32px 20px 60px;}
.stats-hero{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-bottom:24px;}
.stat-tile{background:var(--noir3);border:1px solid rgba(255,255,255,0.06);border-radius:var(--r2);padding:20px;text-align:center;}
.stat-tile-n{font-family:'Playfair Display',serif;font-size:36px;font-weight:700;color:var(--or);line-height:1;}
.stat-tile-l{font-size:10px;color:var(--gris);margin-top:4px;text-transform:uppercase;letter-spacing:.5px;}
.stats-section-title{font-family:'Playfair Display',serif;font-size:18px;font-weight:700;color:var(--blanc);margin:24px 0 12px;display:flex;align-items:center;gap:8px;}
.chap-progress-row{background:var(--noir3);border:1px solid rgba(255,255,255,0.05);border-radius:var(--r);padding:12px 18px;margin-bottom:6px;display:flex;align-items:center;gap:12px;}
.cpr-name{font-size:12px;font-weight:600;color:var(--blanc2);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cpr-bar-wrap{flex:2;height:6px;background:var(--noir5);border-radius:3px;overflow:hidden;}
.cpr-bar{height:100%;border-radius:3px;transition:.4s;}
.cpr-pct{font-size:11px;color:var(--gris);width:36px;text-align:right;flex-shrink:0;}
.cpr-badge{font-size:9px;font-weight:600;padding:2px 7px;border-radius:4px;flex-shrink:0;}
.quiz-history-row{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--noir3);border-radius:8px;margin-bottom:5px;font-size:11px;}
.qhr-chap{flex:1;color:var(--blanc2);}
.qhr-score{font-weight:700;color:var(--or);}
.qhr-date{color:var(--gris2);font-size:10px;}
.reset-btn{padding:8px 18px;border-radius:8px;border:1px solid rgba(200,75,75,0.3);background:rgba(200,75,75,0.06);
  color:#d88;font-size:11px;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;transition:.15s;margin-top:16px;}
.reset-btn:hover{background:rgba(200,75,75,0.14);}

/* ═══ TIMER ═══ */

/* La barre du minuteur avait disparu du HTML en laissant derriere elle son
   bouton et quarante lignes de code : cliquer sur « Minuteur » levait une
   exception et ne faisait rien. Elle est reconstruite ici, flottante comme le
   lecteur de la radio, et le choix de la duree se fait dans la barre plutot
   que par une fenetre bloquante. */
.timer-bar{position:fixed;left:14px;right:14px;bottom:84px;z-index:9500;display:none;align-items:center;gap:12px;
  background:rgba(13,14,19,.97);border:1px solid var(--or-border);border-radius:16px;padding:12px 16px;
  box-shadow:0 14px 40px rgba(0,0,0,.55);overflow:hidden;flex-wrap:wrap;}
.timer-bar.visible{display:flex;}
@media(min-width:900px){.timer-bar{left:auto;right:22px;bottom:22px;width:420px;}}
.timer-display{font-family:'Playfair Display',serif;font-size:22px;font-weight:700;color:var(--or);min-width:80px;}
.timer-display.warning{color:#e06050;}
.timer-label{font-size:10px;color:var(--gris);text-transform:uppercase;letter-spacing:.5px;flex:1;}
.timer-btn{padding:7px 14px;border-radius:8px;border:1px solid var(--or-border);background:var(--or-glow);
  color:var(--or);font-size:11px;font-weight:600;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;transition:.15s;}
.timer-btn:hover{background:rgba(200,168,75,0.2);}
.timer-btn.stop{border-color:rgba(200,75,75,0.3);background:rgba(200,75,75,0.06);color:#d88;}
.timer-btn.stop:hover{background:rgba(200,75,75,0.14);}
.timer-progress{position:absolute;top:0;left:0;height:2px;background:linear-gradient(90deg,var(--or),var(--or2));transition:width .5s linear;}

/* ═══ EC3 / DISSERTATION ═══ */
.ec3-wrap{max-width:820px;margin:0 auto;padding:32px 20px;}
.ec3-fil{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:20px;}
.ec3-fil-btn{padding:5px 12px;border-radius:6px;border:1px solid rgba(255,255,255,0.08);background:none;
  color:var(--gris);font-size:10px;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;transition:.15s;white-space:nowrap;}
.ec3-fil-btn:hover{border-color:var(--or-border);color:var(--or);}
.ec3-fil-btn.on{background:var(--or-glow);border-color:var(--or-border);color:var(--or);}
.ec3-card{background:var(--noir3);border:1px solid rgba(255,255,255,0.05);border-radius:var(--r2);margin-bottom:14px;overflow:hidden;}
.ec3-card-hd{padding:20px;border-bottom:1px solid rgba(255,255,255,0.05);}
.ec3-sujet{font-family:'Playfair Display',serif;font-size:17px;font-weight:700;color:var(--blanc);line-height:1.35;margin-bottom:8px;}
.ec3-meta{display:flex;gap:6px;flex-wrap:wrap;}
.ec3-tag{padding:3px 9px;border-radius:4px;font-size:9px;font-weight:600;}
.ec3-tag-chap{background:rgba(200,168,75,0.1);color:var(--or);border:1px solid var(--or-border);}
.ec3-tag-yr{background:rgba(109,139,168,0.1);color:#9db4c9;border:1px solid rgba(109,139,168,0.2);}
.ec3-card-body{padding:20px;}
.ec3-section{margin-bottom:18px;}
.ec3-sec-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,0.06);}
.ec3-prob{background:var(--noir4);border-left:3px solid var(--or);border-radius:0 8px 8px 0;padding:12px 14px;font-size:12px;color:var(--blanc2);line-height:1.6;font-style:italic;}
.ec3-plan-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.ec3-partie{background:var(--noir4);border-radius:8px;padding:12px 14px;}
.ec3-partie-title{font-size:11px;font-weight:700;color:var(--cuivre);margin-bottom:6px;}
.ec3-ss-partie{font-size:10px;color:var(--gris);line-height:1.6;padding-left:10px;border-left:1px solid rgba(200,135,90,0.22);}
.ec3-ss-partie p{margin-bottom:3px;}
.ec3-args-grid{display:flex;flex-direction:column;gap:5px;}
.ec3-arg{background:var(--noir4);border-radius:8px;padding:10px 12px;border-left:2px solid var(--violet);}
.ec3-arg-lbl{font-size:9px;font-weight:700;color:var(--violet);text-transform:uppercase;letter-spacing:.4px;margin-bottom:3px;}
.ec3-arg-txt{font-size:11px;color:var(--gris);line-height:1.55;}
.ec3-chiffre{background:rgba(200,168,75,0.05);border:1px solid var(--or-border);border-radius:8px;padding:10px 14px;font-size:11px;color:var(--gris);line-height:1.6;}
.ec3-toggle-btn{width:100%;text-align:left;padding:12px 20px;border:none;background:rgba(255,255,255,0.02);
  color:var(--or);font-family:'Plus Jakarta Sans',sans-serif;font-size:12px;font-weight:600;cursor:pointer;
  display:flex;align-items:center;justify-content:space-between;border-top:1px solid rgba(255,255,255,0.05);}
.ec3-toggle-btn:hover{background:var(--or-glow);}
.ec3-corr{display:none;}
.ec3-corr.open{display:block;}
@media(max-width:600px){.ec3-plan-row{grid-template-columns:1fr;}}


/* ═══ LIGHT MODE ═══ */
body.light{--noir:#f5f3ef;--noir2:#ede9e2;--noir3:#e3ddd4;--noir4:#d8d2c8;
  --blanc:#1a1714;--blanc2:#2e2b27;--gris:#6b6560;--gris2:#9a9490;
  --or-glow:rgba(180,140,30,0.1);--or-border:rgba(180,140,30,0.3);}
body.light #nav{background:rgba(237,233,226,0.97);}
body.light #app,body.light .pg{background:var(--noir);}
body.light .mob-nav{background:rgba(237,233,226,0.99);}
#light-toggle{position:fixed;bottom:80px;right:16px;z-index:5000;width:36px;height:36px;
  border-radius:50%;border:1px solid var(--or-border);background:var(--noir2);color:var(--or);
  font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 16px rgba(0,0,0,0.3);}
@media(min-width:769px){#light-toggle{bottom:20px;}}

/* ═══ HERO NEW ═══ */
.hbg{position:absolute;inset:0;background:radial-gradient(ellipse 90% 70% at 50% -5%,rgba(200,168,75,0.06) 0%,transparent 55%),#07080a;}
.hgrid{position:absolute;inset:0;pointer-events:none;opacity:.4;background-image:linear-gradient(rgba(200,168,75,0.06) 1px,transparent 1px),linear-gradient(90deg,rgba(200,168,75,0.06) 1px,transparent 1px);background-size:52px 52px;mask-image:radial-gradient(ellipse 70% 60% at 50% 50%,black 10%,transparent 100%);}
.horb{position:absolute;border-radius:50%;pointer-events:none;filter:blur(90px);}
.horb1{width:440px;height:440px;top:-100px;right:-100px;background:rgba(200,168,75,0.05);animation:ob1 18s ease-in-out infinite;}
.horb2{width:280px;height:280px;bottom:-60px;left:-40px;background:rgba(109,139,168,0.03);animation:ob2 22s ease-in-out infinite;}
@keyframes ob1{0%,100%{transform:translate(0,0);}50%{transform:translate(-30px,22px);}}
@keyframes ob2{0%,100%{transform:translate(0,0);}50%{transform:translate(22px,-28px);}}
.hinner{position:relative;z-index:2;text-align:center;max-width:660px;margin:0 auto;width:100%;}
.hlogo-wrap{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:28px;}
.hlogo-box{width:64px;height:64px;border-radius:18px;flex-shrink:0;background:rgba(200,168,75,0.08);border:1px solid rgba(200,168,75,0.28);display:flex;align-items:center;justify-content:center;}
.hlogo-inner{width:52px;height:52px;border-radius:14px;background:linear-gradient(145deg,#c8a84b 0%,#f0dca0 50%,#b89530 100%);display:flex;align-items:center;justify-content:center;box-shadow:inset 0 1px 0 rgba(255,255,255,0.28),0 5px 16px rgba(200,168,75,0.38);}
.hlv{font-family:'Playfair Display',serif;font-size:17px;font-weight:900;color:#0d0b06;letter-spacing:-1px;}
.hbrand{text-align:left;}
.hbrand-name{font-family:'Playfair Display',serif;font-size:22px;font-weight:700;color:var(--or);line-height:1.1;}
.hbrand-by{font-size:11px;color:var(--gris);margin-top:2px;}.hbrand-by strong{color:var(--blanc2);font-weight:600;}
.hbrand-tag{font-size:9px;color:var(--gris2);text-transform:uppercase;letter-spacing:1.8px;margin-top:4px;}
.hrule{width:40px;height:1px;background:linear-gradient(90deg,transparent,rgba(200,168,75,0.5),transparent);margin:0 auto 22px;}
.hhl{margin-bottom:24px;}
.hhl-pre,.hhl-post{display:block;font-family:'Playfair Display',serif;font-style:italic;font-size:clamp(14px,2.5vw,18px);color:var(--gris);font-weight:400;line-height:1.7;}
.hhl-em{display:block;font-family:'Playfair Display',serif;font-weight:900;font-size:clamp(54px,12vw,100px);line-height:.88;letter-spacing:-3px;background:linear-gradient(135deg,#f0dca0 0%,#e4c870 30%,#c8a84b 55%,#e4c870 80%,#f0dca0 100%);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:hshim 4s linear infinite;}
@keyframes hshim{0%{background-position:0%}100%{background-position:200%}}
.hstats{display:inline-flex;align-items:center;background:rgba(255,255,255,0.02);border:1px solid rgba(255,255,255,0.07);border-radius:100px;padding:12px 20px;margin-bottom:22px;flex-wrap:wrap;justify-content:center;}
.hst{text-align:center;padding:0 14px;}.hst-n{font-family:'Playfair Display',serif;font-size:20px;font-weight:700;color:var(--or);display:block;line-height:1;}
.hst-l{font-size:9px;color:var(--gris2);text-transform:uppercase;letter-spacing:.5px;display:block;margin-top:2px;}
.hst-sep{width:1px;height:28px;background:rgba(255,255,255,0.08);}
.hctas{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:18px;}
.hcta-p{display:flex;align-items:center;gap:8px;padding:12px 24px;border-radius:100px;border:none;background:linear-gradient(135deg,#c8a84b,#e4c870,#c8a84b);background-size:200% auto;color:#0d0b06;font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;font-weight:700;cursor:pointer;transition:.22s;box-shadow:0 8px 24px rgba(200,168,75,0.3);}
.hcta-p:hover{transform:translateY(-2px);}
.hcta-g{padding:12px 18px;border-radius:100px;border:1px solid rgba(255,255,255,0.1);background:rgba(255,255,255,0.04);color:var(--blanc2);font-family:'Plus Jakarta Sans',sans-serif;font-size:12px;font-weight:500;cursor:pointer;transition:.15s;}
.hcta-g:hover{background:rgba(200,168,75,0.1);border-color:rgba(200,168,75,0.3);color:var(--or);}
.htags{display:flex;flex-wrap:wrap;gap:5px;justify-content:center;}
.htag{font-size:10px;font-weight:500;color:var(--gris2);padding:4px 10px;border-radius:100px;background:rgba(255,255,255,0.025);border:1px solid rgba(255,255,255,0.05);}
@media(max-width:520px){.hlogo-wrap{flex-direction:column;gap:10px;}.hbrand{text-align:center;}.hctas{flex-direction:column;align-items:center;}.hcta-p,.hcta-g{width:100%;max-width:240px;justify-content:center;}}
body.light .hbg{background:radial-gradient(ellipse 90% 70% at 50% -5%,rgba(200,168,75,0.07) 0%,transparent 55%),linear-gradient(180deg,#f0ece4,#e8e2d8);}
body.light .hgrid{background-image:linear-gradient(rgba(0,0,0,0.04) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,0.04) 1px,transparent 1px);}
body.light .horb{display:none;}
body.light .hstats{background:rgba(0,0,0,0.03);border-color:rgba(0,0,0,0.07);}
body.light .hcta-g{background:rgba(0,0,0,0.04);border-color:rgba(0,0,0,0.1);}
body.light .htag{background:rgba(0,0,0,0.04);border-color:rgba(0,0,0,0.07);}


@media(max-width:768px){
  .pg{padding-bottom:80px;}
  .ec1-wrap,.ec2-wrap,.ec3-wrap,.quiz-wrap,.flash-wrap,.mm-page,.methode-page,.stats-wrap{
    padding-bottom:90px !important;}
}

/* ═══ BACK BUTTON ═══ */
.back-btn{
  display:none;align-items:center;gap:6px;padding:8px 14px 8px 10px;
  border-radius:100px;border:1px solid rgba(255,255,255,0.1);
  background:rgba(255,255,255,0.05);color:var(--gris);
  font-family:'Plus Jakarta Sans',sans-serif;font-size:12px;font-weight:600;
  cursor:pointer;transition:.15s;-webkit-tap-highlight-color:transparent;
  margin:12px 16px 0;width:fit-content;}
.back-btn:active{transform:scale(.95);}
.back-btn svg{opacity:.7;}
body:not(.on-home) .back-btn{display:flex;}
/* On mobile: fixed top-left back arrow when not on home */
@media(max-width:768px){
  .back-btn{
    position:fixed;top:8px;left:8px;z-index:9200;
    background:rgba(10,12,18,0.92);
    backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
    border-color:rgba(255,255,255,0.12);
    padding:7px 12px 7px 8px;font-size:11px;}
  body.light .back-btn{background:rgba(237,233,226,0.95);}
}

/* ── Passe design : détails premium ── */


.lp-sticky{left:12px!important;right:12px!important;width:auto!important;max-width:calc(100vw - 24px)!important;box-sizing:border-box!important;}
::selection{background:rgba(200,168,75,.32);color:#fff;}
html{scroll-behavior:smooth;}
::-webkit-scrollbar{width:9px;height:9px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:#23262e;border-radius:5px;}
::-webkit-scrollbar-thumb:hover{background:rgba(200,168,75,.45);}
:focus-visible{outline:2px solid rgba(200,168,75,.55);outline-offset:2px;border-radius:4px;}
@keyframes lpUp{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}
.lp-eyebrow{animation:lpUp .7s cubic-bezier(.22,.9,.3,1) .05s both;}
.lp-h1{animation:lpUp .7s cubic-bezier(.22,.9,.3,1) .16s both;}
.lp-hero-sub{animation:lpUp .7s cubic-bezier(.22,.9,.3,1) .27s both;}
.lp-hero-btns{animation:lpUp .7s cubic-bezier(.22,.9,.3,1) .38s both;}
.lp-hero-trust{animation:lpUp .7s cubic-bezier(.22,.9,.3,1) .48s both;}
.lp-proofline{animation:lpUp .7s cubic-bezier(.22,.9,.3,1) .58s both;margin-top:24px;font-size:11.5px;color:#77726a;letter-spacing:.3px;display:flex;align-items:center;flex-wrap:wrap;gap:10px;}
.lp-proofline b{color:#bdb7ab;font-weight:800;}
.lp-pl-dot{width:3px;height:3px;border-radius:50%;background:rgba(200,168,75,.65);display:inline-block;flex-shrink:0;}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}html{scroll-behavior:auto;}}

/* ═══ Back-office clair (Espace prof/admin) — v55 ═══ */
#prof-portal{background:#f2f4f7 !important;color:#1f2733;}
#prof-portal .pf-card{background:#ffffff;border:1px solid #e5e8ec;border-radius:14px;padding:16px;margin-bottom:14px;box-shadow:0 1px 2px rgba(16,24,40,.05);}
#prof-portal .pf-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid #eef0f3;}
#prof-portal .pf-row:first-of-type{border-top:none;}
#prof-portal .pf-in{background:#ffffff;border:1px solid #d8dde3;color:#1f2733;border-radius:10px;padding:11px 13px;font-family:inherit;font-size:13px;outline:none;width:100%;box-sizing:border-box;}
#prof-portal .pf-in:focus{border-color:#b8923f;}
#prof-portal .pf-in::placeholder{color:#98a1ad;}
#prof-portal select.pf-in{appearance:auto;}
/* Coque : menu latéral + contenu */
#prof-portal .pf-shell{display:flex;gap:18px;align-items:flex-start;}
#prof-portal .pf-side{flex:0 0 205px;position:sticky;top:14px;background:#ffffff;border:1px solid #e5e8ec;border-radius:14px;padding:8px;display:flex;flex-direction:column;gap:2px;box-shadow:0 1px 2px rgba(16,24,40,.05);}
#prof-portal .pf-side-btn{display:block;width:100%;text-align:left;border:none;background:transparent;color:#3f4a5e;font-family:inherit;font-size:12.5px;font-weight:700;padding:10px 12px;border-radius:9px;cursor:pointer;}
#prof-portal .pf-side-btn:hover{background:#f2f4f7;}
#prof-portal .pf-side-btn.on{background:linear-gradient(135deg,#c8a84b,#e8c86b);color:#0b0904;font-weight:800;}
#prof-portal .pf-content{flex:1;min-width:0;}
#prof-portal .pfsec{display:none;}
#prof-portal .pfsec.on{display:block;}
@media(max-width:760px){
  #prof-portal .pf-shell{flex-direction:column;}
  #prof-portal .pf-side{position:static;flex:none;width:100%;box-sizing:border-box;flex-direction:row;flex-wrap:wrap;padding:6px;gap:5px;}
  #prof-portal .pf-side-btn{display:inline-block;width:auto;white-space:nowrap;flex:0 0 auto;font-size:11.5px;padding:8px 12px;}
}

/* ══════════════════════════════════════════════════════════════════════════
   SIMULATEUR SUR MOBILE — garder la barre de navigation accessible

   #pg-simulateur est en position:fixed jusqu'en bas avec z-index:9000, alors
   que la barre du bas est à z-index:2000 : elle était donc entièrement
   recouverte. Un élève entré dans le simulateur n'avait plus aucun moyen de
   revenir en arrière depuis l'interface — seulement le bouton système du
   téléphone, que beaucoup ne pensent pas à utiliser.

   On réserve les 72 px de la barre (la même valeur que le padding-bottom
   de #app) et on la fait passer au-dessus.
   ══════════════════════════════════════════════════════════════════════════ */
@media(max-width:768px){
  #pg-simulateur{ bottom:calc(72px + env(safe-area-inset-bottom)); }
  .mob-nav{ z-index:9500; }
}

/* ══════════════════════════════════════════════════════════════════════
   EC1 — refonte de l'interface d'entraînement
   Le problème : huit cartes identiques empilées, aucun retour de
   progression, et les deux tiers de l'écran vides sur un portable.
   L'élève ne savait ni où il en était, ni ce qu'il lui restait à faire.
   ══════════════════════════════════════════════════════════════════════ */

/* Bandeau de progression du chapitre */
.ec-prog{display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  background:linear-gradient(135deg,rgba(200,168,75,.09),rgba(200,168,75,.02));
  border:1px solid rgba(200,168,75,.22);border-radius:14px;padding:14px 18px;margin-bottom:16px;}
.ec-prog-ring{position:relative;width:52px;height:52px;flex-shrink:0;}
.ec-prog-ring svg{transform:rotate(-90deg);display:block;}
.ec-prog-ring .pv{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:800;color:var(--or);}
.ec-prog-txt{flex:1;min-width:180px;}
.ec-prog-txt b{display:block;font-size:13px;color:var(--blanc);font-weight:700;margin-bottom:2px;}
.ec-prog-txt span{font-size:11.5px;color:var(--gris);line-height:1.5;}
.ec-prog-go{padding:9px 16px;border-radius:10px;border:1px solid var(--or-border);
  background:rgba(200,168,75,.12);color:var(--or);font-family:inherit;font-size:12px;
  font-weight:800;cursor:pointer;white-space:nowrap;transition:.15s;}
.ec-prog-go:hover{background:rgba(200,168,75,.22);}

/* Deux colonnes dès qu'il y a la place : plus de vide en bas d'écran */
.ec-grid{display:grid;gap:10px;grid-template-columns:1fr;align-items:start;}
@media(min-width:1180px){.ec-grid{grid-template-columns:1fr 1fr;}
  .ec-grid .q-card.open{grid-column:1 / -1;}}

/* Carte de question : numéro visible, état, et une invitation à ouvrir */
.q-card{border-left:3px solid transparent;transition:border-color .15s,transform .15s;}
.q-card:hover{transform:translateY(-1px);}
.q-card.st-ok{border-left-color:var(--vert);}
.q-card.st-revoir{border-left-color:#d8a25a;}
.q-num{width:30px;height:30px;border-radius:9px;flex-shrink:0;display:flex;align-items:center;
  justify-content:center;font-size:12px;font-weight:800;background:rgba(200,168,75,.12);
  color:var(--or);border:1px solid rgba(200,168,75,.22);}
.q-card.st-ok .q-num{background:rgba(61,158,110,.14);color:var(--vert);border-color:rgba(61,158,110,.3);}
.q-card.st-revoir .q-num{background:rgba(216,162,90,.14);color:#d8a25a;border-color:rgba(216,162,90,.3);}
.q-open{font-size:10.5px;font-weight:700;color:var(--gris2);display:flex;align-items:center;gap:5px;
  white-space:nowrap;transition:.15s;}
.q-hd:hover .q-open{color:var(--or);}

/* Marquer une question : c'est ce qui alimente la progression */
.q-mark{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;padding-top:12px;
  border-top:1px solid rgba(255,255,255,.06);}
.q-mark button{padding:8px 14px;border-radius:9px;border:1px solid rgba(255,255,255,.1);
  background:rgba(255,255,255,.03);color:var(--gris);font-family:inherit;font-size:11.5px;
  font-weight:700;cursor:pointer;transition:.15s;}
.q-mark button:hover{color:var(--blanc2);border-color:rgba(255,255,255,.2);}
.q-mark button.on-ok{background:rgba(61,158,110,.14);border-color:rgba(61,158,110,.4);color:var(--vert);}
.q-mark button.on-revoir{background:rgba(216,162,90,.14);border-color:rgba(216,162,90,.4);color:#d8a25a;}

/* Barre de progression sous chaque chapitre de la barre latérale */
.sb-bar{height:2px;border-radius:2px;background:rgba(255,255,255,.07);margin-top:5px;overflow:hidden;}
.sb-bar i{display:block;height:100%;background:var(--vert);border-radius:2px;transition:width .3s;}

/* ══ Menu du compte + pastille de notification ═══════════════════════════
   La navigation comptait neuf entrées de premier niveau. L'abonnement et
   les factures ne sont pas une destination de révision : ils rejoignent un
   menu de compte, comme sur toute plateforme d'abonnement. La visio, elle,
   perd sa place permanente — une pastille signale qu'une séance est prévue. */
.nav-compte{margin-left:auto;flex-shrink:0;}
.nav-compte .nav-by{background:none;border:none;cursor:pointer;font-family:inherit;
  display:flex;align-items:center;gap:8px;padding:5px 10px;border-radius:9px;transition:.15s;}
.nav-compte .nav-by:hover{background:rgba(255,255,255,.04);}
.nav-compte .nav-nm small{display:block;font-size:9px;color:var(--gris2);text-transform:uppercase;letter-spacing:.6px;}
.nl-dropdown-fin{right:0;left:auto;}
.nl-dropitem-out{color:#c98b80;}
.nl-dropitem-out:hover{color:#e08a7a;}

.nl-badge{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;
  padding:0 5px;border-radius:9px;background:#c86a5a;color:#fff;font-size:9.5px;font-weight:800;
  vertical-align:1px;margin-left:2px;box-shadow:0 0 0 2px rgba(200,106,90,.18);}

/* ══ EC2 / EC3 — repérage par chapitre ══════════════════════════════════
   EC3 était une liste unique de cinquante sujets filtrée par des pastilles :
   l'élève déroulait sans savoir où il en était. Les deux pages adoptent la
   même architecture qu'EC1 — un chapitre à la fois, choisi dans la barre
   latérale — et les cartes portent le numéro et la couleur de leur thème. */
.ec3-no{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;
  padding:0 6px;border-radius:7px;border:1px solid;font-family:'Plus Jakarta Sans',sans-serif;
  font-size:11px;font-weight:800;margin-right:9px;vertical-align:2px;}
.ec3-card,.ec2-card{transition:border-color .15s,transform .15s;}
.ec3-card:hover,.ec2-card:hover{transform:translateY(-1px);border-color:rgba(200,168,75,.16);}
.ec3-wrap{max-width:820px;margin:0 auto;padding:0;}
/* Les intitulés de chapitre et leur sous-titre se chevauchaient dès que le
   sous-titre s'allongeait (« REGARDS CROISÉS · 7 SUJETS ») : le conteneur
   est en flex, le sous-titre passe désormais à la ligne. */
.sidebar .sb-item{flex-wrap:wrap;}
.sidebar .sb-item-sub{flex-basis:100%;}
/* Un chapitre sans sujet reste listé, mais atténué : le faire disparaître
   ferait croire à un contenu perdu. */
.sidebar .sb-item.sb-vide{opacity:.42;}

/* ── Les deux provenances du sujet ── */
/* Même forme, même poids : ce sont deux chemins équivalents. Celui de la
   bibliothèque garde un accent doré parce qu'il ne demande aucun fichier — c'est
   le plus rapide pour un élève qui veut juste s'entraîner ce soir. */
.src-lbl{font-size:12px;color:var(--gris);text-align:center;margin:22px 0 12px;}
.src-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.src-card{display:flex;align-items:center;gap:13px;text-align:left;width:100%;padding:15px 16px;border-radius:14px;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;background:rgba(255,255,255,0.022);border:1px solid rgba(255,255,255,0.09);transition:border-color .15s,background .15s;}
.src-card:hover:not(:disabled){border-color:rgba(200,168,75,0.5);background:rgba(200,168,75,0.05);}
.src-card:first-child{border-color:rgba(200,168,75,0.32);}
.src-ic{flex-shrink:0;color:var(--or);display:flex;}
.src-tx{min-width:0;display:block;}
.src-tx b{display:block;font-size:13.5px;font-weight:800;color:#f2ede4;letter-spacing:-.1px;}
.src-tx span{display:block;font-size:11px;color:#8a8680;margin-top:3px;line-height:1.45;}
/* En attente, la carte reste lisible et sa ligne de détail porte l'instruction. */
.src-card:disabled{cursor:not-allowed;border-style:dashed;border-color:rgba(255,255,255,0.14);}
.src-card:disabled .src-ic{color:#6f6a63;}
.src-card:disabled .src-tx b{color:#8a8680;}
@media(max-width:680px){.src-grid{grid-template-columns:1fr;}}

/* ── Bandeau de consentement ── */
/* #cookie-banner et pas seulement .ck-bar : la règle « #landing > * » impose
   position:relative à tous les enfants directs de la vitrine, et un sélecteur
   d'identifiant bat une classe. Le bandeau y échappait tant que son
   position:fixed était écrit en ligne ; en le passant en feuille de style, il
   s'est retrouvé collé en bas du document, à neuf mille pixels du visiteur. */
#cookie-banner.ck-bar{position:fixed;left:0;right:0;bottom:0;z-index:99600;background:var(--noir2);border-top:1px solid var(--or-border);padding:18px 20px;}
.ck-inner{max-width:900px;margin:0 auto;display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;}
.ck-txt{flex:1;min-width:240px;font-size:12.5px;color:var(--blanc2);line-height:1.6;}
.ck-txt a{color:var(--or);}
.ck-court{display:none;}
.ck-btns{display:flex;gap:10px;flex-shrink:0;}
/* Les deux boutons ont le même gabarit : seule la couleur les distingue. */
/* Même largeur minimale pour les deux : « Refuser » est un mot plus court
   qu'« Accepter », et sans min-width le bouton de refus finissait visiblement
   plus petit. Refuser doit être aussi facile qu'accepter — jusqu'à la taille
   de la cible. */
.ck-non,.ck-oui{min-width:96px;text-align:center;padding:11px 18px;border-radius:11px;font-family:inherit;font-size:12.5px;font-weight:800;cursor:pointer;}
.ck-non{border:1px solid rgba(255,255,255,.15);background:transparent;color:var(--blanc2);}
.ck-oui{border:1px solid transparent;background:linear-gradient(135deg,#c8a84b,#e8c86b);color:#0b0904;}
/* Sous 560 px, tout tient sur une seule rangée : le texte à gauche, les deux
   boutons à droite. Sur deux rangées le bandeau montait à 117 px et recouvrait
   le bouton principal du premier écran. Les deux boutons gardent le même
   gabarit — refuser doit rester aussi simple qu'accepter. */
@media(max-width:560px){
  #cookie-banner.ck-bar{padding:9px 12px;}
  .ck-inner{gap:10px;flex-wrap:nowrap;align-items:center;}
  .ck-txt{min-width:0;flex:1 1 auto;font-size:11px;line-height:1.35;}
  .ck-long{display:none;}
  .ck-court{display:inline;}
  .ck-btns{flex-shrink:0;gap:6px;}
  .ck-non,.ck-oui{min-width:78px;padding:9px 8px;font-size:11.5px;border-radius:9px;}
}

/* ── Guide de démarrage : les trois temps d'une correction ── */
/* Trois lignes numérotées plutôt qu'une liste de fonctionnalités : l'élève doit
   voir ce qui va se passer, pas ce que le produit contient. */
.onb-etapes{display:flex;flex-direction:column;gap:11px;margin-top:20px;text-align:left;}
.onb-etape{display:flex;gap:13px;align-items:flex-start;}
.onb-etape b{flex-shrink:0;width:24px;height:24px;border-radius:50%;background:rgba(200,168,75,0.14);border:1px solid rgba(200,168,75,0.38);color:#e4c870;font-family:'Playfair Display',serif;font-size:13px;font-weight:900;display:flex;align-items:center;justify-content:center;}
.onb-etape span{font-size:13px;line-height:1.6;color:#a9a49a;}
/* Le choix conseillé, sur le dernier écran : préséléctionné et signalé. */
/* Décalée de 42 px : la coche de sélection occupe déjà le coin, à droite de
   12 px sur 22 px de large. Les deux se chevauchaient et « Conseillé » se
   lisait « CONSEIL ». */
.onb-conseil{position:absolute;top:12px;right:42px;font-size:8.5px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:#0b0904;background:linear-gradient(135deg,#c8a84b,#e8c86b);border-radius:20px;padding:3px 9px;}
