
/* ══════════════════════════════════════════
   VARIABLES & RESET
══════════════════════════════════════════ */
:root {
  --noir:#0a0a0a; --blanc:#faf8f4; --or:#c8a96e; --or-clair:#e8d5a3;
  --or-dark:#a8893e; --gris:#6b6b6b; --gris-clair:#e8e4dc; --creme:#faf7f2;
  --rouge:#c84b4b; --vert:#2a7a4a; --orange:#c8722a;
  --vert-bg:#eef7f2; --orange-bg:#fdf3ec; --rouge-bg:#fdf0f0;
  --vert-border:#b0dcc0; --orange-border:#f0c8a0; --rouge-border:#f0b8b8;
  --card-bg:#ffffff; --card-border:#e8e4dc;
  --radius:10px; --radius-sm:6px;
  --sat-blue:#1a3a6e; --sat-blue-light:#e8eef8;
  --med-green:#1a4a2e; --med-green-light:#e8f4ec;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
body{background:var(--blanc);color:var(--noir);font-family:'DM Sans',sans-serif;font-weight:400;line-height:1.6;min-height:100vh;overflow-x:hidden;}

/* ══════════════════════════════════════════
   WATERMARK
══════════════════════════════════════════ */
#watermark{
  position:fixed;inset:0;pointer-events:none;z-index:9999;
  overflow:hidden;display:none;
}
#watermark-inner{
  position:absolute;inset:-50%;
  display:flex;flex-wrap:wrap;align-content:flex-start;
  transform:rotate(-35deg);
  gap:0;
}
.wm-cell{
  width:260px;height:80px;display:flex;align-items:center;justify-content:center;
  font-size:0.7rem;font-weight:600;letter-spacing:2px;text-transform:uppercase;
  color:rgba(10,10,10,0.055);white-space:nowrap;user-select:none;
  font-family:'DM Sans',sans-serif;
}

/* ══════════════════════════════════════════
   ÉCRAN VERROUILLÉ (trop d'appareils)
══════════════════════════════════════════ */
#screen-locked{
  min-height:100vh;display:none;align-items:center;justify-content:center;
  background:var(--noir);flex-direction:column;text-align:center;padding:2rem;
}
.lock-screen-icon{font-size:4rem;margin-bottom:1.5rem;}
.lock-screen-title{font-family:'Playfair Display',serif;font-size:2rem;color:var(--rouge);margin-bottom:1rem;}
.lock-screen-msg{font-size:0.95rem;color:rgba(247,245,240,0.5);max-width:420px;line-height:1.7;margin-bottom:2rem;}
.lock-screen-contact{font-size:0.8rem;color:rgba(200,169,110,0.6);}

/* ══════════════════════════════════════════
   LOGIN
══════════════════════════════════════════ */
#screen-password{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--noir);}
.pwd-box{width:100%;max-width:440px;padding:3rem 2.5rem;text-align:center;border:1px solid rgba(200,169,110,0.25);}
.pwd-logo{font-family:'Playfair Display',serif;font-size:2.8rem;font-weight:900;color:var(--or);letter-spacing:3px;margin-bottom:0.3rem;}
.pwd-logo-site{color:inherit;display:inline-flex;align-items:baseline;justify-content:center;flex-wrap:wrap;gap:0;letter-spacing:0.02em;margin-bottom:2rem;}
.pwd-logo-site .pwd-logo-w{color:#fff;font-weight:900;}
.pwd-logo-site .pwd-logo-g{color:var(--or);font-weight:900;}
.pwd-tagline{font-size:0.75rem;letter-spacing:4px;text-transform:uppercase;color:rgba(247,245,240,0.3);margin-bottom:2.5rem;}
.pwd-field{display:flex;flex-direction:column;gap:0.6rem;margin-bottom:1rem;}
.pwd-box input{
  width:100%;padding:0.9rem 1.2rem;background:rgba(255,255,255,0.05);
  border:1px solid rgba(200,169,110,0.2);color:var(--blanc);font-size:1rem;
  font-family:'DM Sans',sans-serif;outline:none;transition:border 0.2s;
}
.pwd-box input:focus{border-color:var(--or);}
.pwd-box input::placeholder{color:rgba(247,245,240,0.2);}
#pwd-code{text-align:center;letter-spacing:5px;font-size:1.05rem;}
.btn-or{
  width:100%;padding:1rem;background:var(--or);color:var(--noir);border:none;
  font-family:'DM Sans',sans-serif;font-size:0.8rem;font-weight:600;
  letter-spacing:3px;text-transform:uppercase;cursor:pointer;transition:background 0.2s;
}
.btn-or:hover{background:var(--or-clair);}
.pwd-error{color:#e07070;font-size:0.82rem;margin-top:0.8rem;display:none;}
.pwd-divider{height:1px;background:rgba(200,169,110,0.15);margin:1.5rem 0;}
.pwd-note{font-size:0.72rem;color:rgba(247,245,240,0.2);line-height:1.6;}
.pwd-note.pwd-note-strict{color:#e03030;font-weight:600;margin-top:0.65rem;}

/* ══════════════════════════════════════════
   APP
══════════════════════════════════════════ */
#screen-app{display:none;min-height:100vh;}

/* ══════════════════════════════════════════
   HEADER
══════════════════════════════════════════ */
header{
  background:var(--noir);padding:0 1.5rem;height:54px;display:flex;align-items:center;
  justify-content:space-between;position:sticky;top:0;z-index:500;
  border-bottom:1px solid rgba(200,169,110,0.15);gap:1rem;
}
.h-logo{font-family:'Playfair Display',serif;font-size:1.2rem;font-weight:900;color:var(--or);letter-spacing:2px;cursor:pointer;flex-shrink:0;}
.h-session{
  font-size:0.65rem;font-weight:600;letter-spacing:2px;text-transform:uppercase;
  color:rgba(200,169,110,0.55);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  flex:1;text-align:center;
}
.breadcrumb{display:flex;align-items:center;gap:0.4rem;font-size:0.75rem;flex-shrink:0;}
.breadcrumb span{color:rgba(247,245,240,0.3);cursor:pointer;transition:color 0.2s;white-space:nowrap;}
.breadcrumb span:hover{color:var(--or);}
.breadcrumb .sep{color:rgba(247,245,240,0.15);cursor:default;}
.breadcrumb .cur{color:rgba(247,245,240,0.55);cursor:default;}
@media(max-width:600px){.h-session{display:none;}}

/* ══════════════════════════════════════════
   PAGES
══════════════════════════════════════════ */
.page{display:none;padding:2.5rem 2rem;max-width:1100px;margin:0 auto;}
.page.active{display:block;}

.back-nav{display:flex;gap:0.6rem;flex-wrap:wrap;margin-bottom:1.8rem;}
.btn-back{
  display:inline-flex;align-items:center;gap:0.4rem;padding:0.42rem 1rem;
  background:transparent;border:1px solid var(--gris-clair);border-radius:99px;
  font-size:0.76rem;color:var(--gris);cursor:pointer;transition:all 0.2s;font-family:'DM Sans',sans-serif;
}
.btn-back:hover{border-color:var(--or);color:var(--or-dark);background:rgba(200,169,110,0.05);}

.section-label{font-size:0.68rem;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--or);margin-bottom:0.5rem;display:block;}
.page-h1{font-family:'Playfair Display',serif;font-size:1.85rem;font-weight:700;color:var(--noir);margin-bottom:0.3rem;}
.page-sub{font-size:0.88rem;color:var(--gris);}
.or-line{width:36px;height:2px;background:var(--or);margin:0.8rem 0 2rem;}

/* ══════════════════════════════════════════
   DASHBOARD — NIVEAUX
══════════════════════════════════════════ */
.levels-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:1.4rem;}

.card-level{
  background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius);
  padding:2rem 1.6rem;cursor:pointer;transition:all 0.25s;position:relative;overflow:hidden;
}
.card-level::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--or);transform:scaleX(0);transition:transform 0.3s;transform-origin:left;}
.card-level.unlocked:hover{border-color:var(--or);box-shadow:0 4px 20px rgba(200,169,110,0.12);transform:translateY(-2px);}
.card-level.unlocked:hover::after{transform:scaleX(1);}

/* CARTE RESTREINTE — translucide avec overlay cadenas */
.card-level.restricted{cursor:default;position:relative;}
.card-level.restricted .lv-content{opacity:0.18;filter:blur(2px);pointer-events:none;user-select:none;}
.restrict-overlay{
  position:absolute;inset:0;border-radius:var(--radius);
  background:rgba(250,247,242,0.88);backdrop-filter:blur(1px);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:0.5rem;padding:1.5rem;text-align:center;z-index:2;
}
.restrict-lock{font-size:1.6rem;margin-bottom:0.3rem;}
.restrict-title{font-weight:700;font-size:0.78rem;letter-spacing:2px;text-transform:uppercase;color:var(--or-dark);}
.restrict-msg{font-size:0.75rem;color:var(--gris);line-height:1.5;max-width:170px;}
.btn-unlock{
  padding:0.5rem 1.2rem;background:var(--or);color:var(--noir);border:none;border-radius:99px;
  font-size:0.72rem;font-weight:600;cursor:pointer;letter-spacing:1px;text-transform:uppercase;
  font-family:'DM Sans',sans-serif;margin-top:0.4rem;transition:background 0.2s;text-decoration:none;display:inline-block;
}
.btn-unlock:hover{background:var(--or-clair);}

/* CARTES SIMULATEURS */
.card-level.simulator-sat{border-color:rgba(26,58,110,0.2);background:var(--sat-blue-light);}
.card-level.simulator-sat:hover{border-color:var(--sat-blue)!important;}
.card-level.simulator-sat::after{background:var(--sat-blue)!important;}
.card-level.simulator-med{border-color:rgba(26,74,46,0.2);background:var(--med-green-light);}
.card-level.simulator-med:hover{border-color:var(--med-green)!important;}
.card-level.simulator-med::after{background:var(--med-green)!important;}

.lv-icon-wrap{width:48px;height:48px;margin-bottom:1rem;display:flex;align-items:center;justify-content:center;font-size:1.6rem;}
.lv-name{font-family:'Playfair Display',serif;font-size:1.15rem;font-weight:700;color:var(--noir);margin-bottom:0.3rem;}
.lv-info{font-size:0.78rem;color:var(--gris);margin-bottom:1.4rem;}
.prog-wrap{background:var(--gris-clair);border-radius:99px;height:5px;overflow:hidden;}
.prog-fill{height:100%;border-radius:99px;background:var(--vert);transition:width 0.5s;}
.prog-label{font-size:0.7rem;color:var(--gris);margin-top:0.4rem;}

/* ══════════════════════════════════════════
   CHAPITRES
══════════════════════════════════════════ */
.chapters-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;}
.card-ch{
  background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius);
  padding:1.3rem 1.2rem;cursor:pointer;transition:all 0.2s;
}
.card-ch:hover{border-color:var(--or);box-shadow:0 3px 14px rgba(200,169,110,0.1);}
.ch-num{font-size:0.68rem;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--or);margin-bottom:0.5rem;}
.ch-name{font-size:0.93rem;font-weight:500;color:var(--noir);margin-bottom:1rem;line-height:1.4;}
.prog-tri{display:flex;gap:3px;height:5px;border-radius:99px;overflow:hidden;}
.seg-v{background:var(--vert);transition:flex 0.4s;}
.seg-o{background:var(--orange);transition:flex 0.4s;}
.seg-r{background:var(--rouge);transition:flex 0.4s;}
.seg-g{background:var(--gris-clair);transition:flex 0.4s;}

/* ══════════════════════════════════════════
   CATÉGORIES
══════════════════════════════════════════ */
.cats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.2rem;}
.card-cat{border-radius:var(--radius);padding:1.8rem 1.6rem;cursor:pointer;transition:all 0.25s;border:1px solid transparent;background:var(--card-bg);}
.card-cat.socle{border-color:var(--vert-border);background:var(--vert-bg);}
.card-cat.maitrise{border-color:var(--orange-border);background:var(--orange-bg);}
.card-cat.elite{border-color:rgba(200,169,110,0.35);background:rgba(200,169,110,0.05);}
.card-cat:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,0.07);}
.cat-pill{display:inline-block;padding:0.26rem 0.8rem;border-radius:99px;font-size:0.66rem;font-weight:600;letter-spacing:2px;text-transform:uppercase;margin-bottom:1rem;}
.socle .cat-pill{background:rgba(42,122,74,0.12);color:var(--vert);}
.maitrise .cat-pill{background:rgba(200,114,42,0.12);color:var(--orange);}
.elite .cat-pill{background:rgba(200,169,110,0.15);color:var(--or-dark);}
.cat-name{font-family:'Playfair Display',serif;font-size:1.1rem;font-weight:700;color:var(--noir);margin-bottom:0.4rem;}
.cat-desc{font-size:0.8rem;color:var(--gris);margin-bottom:1.2rem;line-height:1.5;}
.cat-prog-bar{background:rgba(0,0,0,0.08);border-radius:99px;height:4px;overflow:hidden;margin-bottom:0.4rem;}
.cat-prog-fill{height:100%;border-radius:99px;transition:width 0.4s;}
.socle .cat-prog-fill{background:var(--vert);}
.maitrise .cat-prog-fill{background:var(--orange);}
.elite .cat-prog-fill{background:var(--or);}
.cat-prog-label{font-size:0.7rem;color:var(--gris);}

/* ══════════════════════════════════════════
   DÉFIS LISTE
══════════════════════════════════════════ */
.defis-list{display:flex;flex-direction:column;gap:0.6rem;}
.defi-row{
  background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-sm);
  padding:0.9rem 1.2rem;display:flex;align-items:center;gap:1rem;cursor:pointer;transition:all 0.18s;
}
.defi-row:hover{border-color:var(--or);}
.defi-row.s-reussi{border-left:3px solid var(--vert);background:var(--vert-bg);}
.defi-row.s-aide{border-left:3px solid var(--orange);background:var(--orange-bg);}
.defi-row.s-rien{border-left:3px solid var(--rouge);background:var(--rouge-bg);}
.defi-num{font-size:0.7rem;font-weight:600;letter-spacing:1px;color:var(--gris);min-width:50px;}
.defi-info{flex:1;}
.defi-title-r{font-size:0.9rem;font-weight:500;color:var(--noir);}
.defi-date-r{font-size:0.73rem;color:var(--gris);margin-top:0.1rem;}
.defi-date-r.urg{color:var(--rouge);font-weight:500;}
.defi-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;}
.dv{background:var(--vert);} .do{background:var(--orange);} .dr{background:var(--rouge);} .de{background:var(--gris-clair);}

/* ══════════════════════════════════════════
   DÉFI DÉTAIL
══════════════════════════════════════════ */
.defi-content{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;}
@media(max-width:680px){.defi-content{grid-template-columns:1fr;}}
.enonce-box{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius);padding:1.6rem;}
.box-label{font-size:0.65rem;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--or);margin-bottom:1rem;}
.enonce-txt{font-size:0.95rem;color:var(--noir);line-height:1.85;}
.loading-enonce{color:var(--gris);font-style:italic;font-size:0.88rem;animation:pulse 1.5s infinite;}
@keyframes pulse{0%,100%{opacity:0.4;}50%{opacity:1;}}
.side-col{display:flex;flex-direction:column;gap:1rem;}
.video-card{
  background:var(--noir);border-radius:var(--radius);padding:1.3rem 1.4rem;
  cursor:pointer;display:flex;align-items:center;gap:1rem;transition:all 0.2s;
  border:1px solid rgba(200,169,110,0.2);
}
.video-card:hover{border-color:var(--or);}
.play-circle{width:44px;height:44px;border-radius:50%;background:var(--or);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.play-circle svg{fill:var(--noir);width:17px;height:17px;margin-left:2px;}
.video-label{font-size:0.92rem;font-weight:600;color:var(--or);}
.video-sub{font-size:0.75rem;color:rgba(247,245,240,0.4);margin-top:0.15rem;}
.statut-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius);padding:1.3rem 1.4rem;}
.statut-label{font-size:0.65rem;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--gris);margin-bottom:0.9rem;}
.statut-btns{display:flex;flex-direction:column;gap:0.45rem;}
.s-btn{
  padding:0.7rem 1rem;border-radius:var(--radius-sm);border:1px solid var(--gris-clair);
  background:var(--blanc);cursor:pointer;display:flex;align-items:center;gap:0.75rem;
  font-size:0.86rem;font-family:'DM Sans',sans-serif;color:var(--gris);transition:all 0.18s;text-align:left;
}
.s-btn:hover{border-color:var(--or-dark);color:var(--noir);}
.s-btn.on-v{background:var(--vert-bg);border-color:var(--vert-border);color:var(--vert);font-weight:500;}
.s-btn.on-o{background:var(--orange-bg);border-color:var(--orange-border);color:var(--orange);font-weight:500;}
.s-btn.on-r{background:var(--rouge-bg);border-color:var(--rouge-border);color:var(--rouge);font-weight:500;}
.s-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.sv .s-dot{background:var(--vert);} .so .s-dot{background:var(--orange);} .sr .s-dot{background:var(--rouge);}
.date-card{background:var(--creme);border:1px solid var(--gris-clair);border-radius:var(--radius);padding:1.1rem 1.4rem;display:none;}
.date-card.visible{display:block;}
.date-card-lbl{font-size:0.65rem;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--gris);margin-bottom:0.4rem;}
.date-card-val{font-size:0.95rem;font-weight:500;color:var(--noir);}
.date-card-val span{color:var(--or-dark);}
.nav-defi{display:flex;gap:0.8rem;margin-top:1.5rem;flex-wrap:wrap;}
.btn-nav-d{
  padding:0.6rem 1.2rem;background:var(--card-bg);border:1px solid var(--card-border);
  border-radius:var(--radius-sm);color:var(--gris);font-size:0.82rem;cursor:pointer;
  font-family:'DM Sans',sans-serif;transition:all 0.18s;
}
.btn-nav-d:hover:not(:disabled){border-color:var(--or);color:var(--or-dark);}
.btn-nav-d:disabled{opacity:0.3;cursor:default;}

/* ══════════════════════════════════════════
   POPUP VIDÉO
══════════════════════════════════════════ */
.popup-ov{position:fixed;inset:0;background:rgba(10,10,10,0.82);z-index:800;display:none;align-items:center;justify-content:center;padding:1.5rem;}
.popup-ov.open{display:flex;}
.popup-inner{background:var(--card-bg);border-radius:var(--radius);width:100%;max-width:820px;overflow:hidden;border:1px solid var(--card-border);}
.popup-head{padding:0.9rem 1.4rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--gris-clair);}
.popup-head-title{font-size:0.88rem;font-weight:500;color:var(--noir);}
.popup-x{width:28px;height:28px;background:var(--gris-clair);border:none;border-radius:50%;cursor:pointer;font-size:0.9rem;color:var(--gris);transition:all 0.2s;}
.popup-x:hover{background:var(--or-clair);color:var(--noir);}
.popup-video-wrap{aspect-ratio:16/9;background:#000;}
.popup-video-wrap iframe{width:100%;height:100%;border:none;}
.popup-placeholder{aspect-ratio:16/9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;background:var(--creme);color:var(--gris);font-size:0.85rem;text-align:center;padding:2rem;}
.popup-placeholder code{font-size:0.75rem;color:var(--or-dark);background:rgba(200,169,110,0.1);padding:0.3rem 0.7rem;border-radius:4px;}

/* ══════════════════════════════════════════
   QCM (chapitres)
══════════════════════════════════════════ */
#page-qcm .qcm-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem;}
.qcm-timer-box{background:var(--noir);color:var(--or);padding:0.5rem 1.2rem;border-radius:99px;font-size:1rem;font-weight:600;letter-spacing:2px;font-family:'Playfair Display',serif;}
.qcm-timer-box.warn{color:var(--rouge);}
.qcm-q-count{font-size:0.78rem;color:var(--gris);}
.qcm-progress-strip{height:4px;background:var(--gris-clair);border-radius:99px;margin-bottom:2rem;overflow:hidden;}
.qcm-progress-fill{height:100%;background:var(--or);border-radius:99px;transition:width 0.3s;}
.qcm-question-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius);padding:1.8rem;margin-bottom:1.2rem;}
.qcm-q-label{font-size:0.65rem;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--or);margin-bottom:0.8rem;}
.qcm-q-text{font-size:1rem;color:var(--noir);line-height:1.7;margin-bottom:1.4rem;}
.qcm-choices{display:flex;flex-direction:column;gap:0.6rem;}
.qcm-choice{
  padding:0.85rem 1.2rem;border:1px solid var(--card-border);border-radius:var(--radius-sm);
  cursor:pointer;display:flex;align-items:center;gap:0.9rem;font-size:0.9rem;
  color:var(--noir);background:var(--blanc);transition:all 0.15s;
}
.qcm-choice:hover{border-color:var(--or);background:rgba(200,169,110,0.04);}
.qcm-choice.selected{border-color:var(--or);background:rgba(200,169,110,0.08);font-weight:500;}
.qcm-choice.correct{border-color:var(--vert)!important;background:var(--vert-bg)!important;color:var(--vert);}
.qcm-choice.wrong{border-color:var(--rouge)!important;background:var(--rouge-bg)!important;color:var(--rouge);}
.choice-letter{width:28px;height:28px;border-radius:50%;background:var(--gris-clair);display:flex;align-items:center;justify-content:center;font-size:0.75rem;font-weight:600;flex-shrink:0;}
.qcm-choice.correct .choice-letter{background:rgba(42,122,74,0.15);color:var(--vert);}
.qcm-choice.wrong .choice-letter{background:rgba(200,75,75,0.15);color:var(--rouge);}
.qcm-feedback{font-size:0.82rem;color:var(--gris);background:var(--creme);border-left:3px solid var(--or);padding:0.8rem 1rem;border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin-top:0.8rem;display:none;line-height:1.6;}
.qcm-feedback.show{display:block;}
.qcm-nav{display:flex;gap:0.8rem;margin-top:1rem;justify-content:flex-end;}
.btn-qcm-next{padding:0.75rem 1.8rem;background:var(--or);color:var(--noir);border:none;border-radius:var(--radius-sm);font-size:0.85rem;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;transition:background 0.2s;}
.btn-qcm-next:hover{background:var(--or-clair);}
/* QCM Result */
.qcm-result-page{text-align:center;max-width:500px;margin:0 auto;padding:2rem 0;}
.qcm-score-circle{width:130px;height:130px;border-radius:50%;border:4px solid var(--or);display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0 auto 1.5rem;background:var(--creme);}
.qcm-score-big{font-family:'Playfair Display',serif;font-size:2.5rem;font-weight:900;line-height:1;}
.qcm-score-denom{font-size:0.82rem;color:var(--gris);margin-top:0.2rem;}
.qcm-result-msg{font-family:'Playfair Display',serif;font-size:1.6rem;font-weight:700;color:var(--noir);margin-bottom:0.4rem;}
.qcm-result-sub{font-size:0.88rem;color:var(--gris);margin-bottom:1.5rem;}
.qcm-result-stats{display:flex;gap:2rem;justify-content:center;margin-bottom:2rem;}
.qcm-stat-num{font-family:'Playfair Display',serif;font-size:1.8rem;font-weight:700;}
.stat-ok{color:var(--vert);} .stat-ko{color:var(--rouge);}
.qcm-stat-label{font-size:0.72rem;color:var(--gris);letter-spacing:1px;text-transform:uppercase;}
.qcm-result-actions{display:flex;gap:0.8rem;justify-content:center;flex-wrap:wrap;}
.btn-restart{padding:0.75rem 1.5rem;background:var(--or);color:var(--noir);border:none;border-radius:var(--radius-sm);font-size:0.82rem;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;transition:background 0.2s;}
.btn-restart:hover{background:var(--or-clair);}
.btn-review{padding:0.75rem 1.5rem;background:transparent;color:var(--gris);border:1px solid var(--gris-clair);border-radius:var(--radius-sm);font-size:0.82rem;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.2s;}
.btn-review:hover{border-color:var(--or);color:var(--or-dark);}
.review-item{background:var(--card-bg);border:1px solid var(--rouge-border);border-radius:var(--radius);padding:1.3rem;margin-bottom:0.8rem;}
.review-q{font-size:0.92rem;color:var(--noir);margin-bottom:0.8rem;font-weight:500;}
.review-ans{font-size:0.82rem;padding:0.4rem 0;}
.review-given{color:var(--rouge);}
.review-correct-ans{color:var(--vert);font-weight:500;}

/* ══════════════════════════════════════════
   SAT SIMULATOR
══════════════════════════════════════════ */
#page-sat{padding:0;}
.sat-layout{display:grid;grid-template-columns:1fr 360px;min-height:calc(100vh - 54px);}
@media(max-width:900px){.sat-layout{grid-template-columns:1fr;}}
.sat-main{padding:2rem;overflow-y:auto;}
.sat-sidebar{background:#f0f4fa;border-left:1px solid #c8d4e8;padding:1.5rem;display:flex;flex-direction:column;gap:1rem;}
@media(max-width:900px){.sat-sidebar{border-left:none;border-top:1px solid #c8d4e8;}}

.sat-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem;}
.sat-badge{background:var(--sat-blue);color:#fff;padding:0.3rem 1rem;border-radius:99px;font-size:0.72rem;font-weight:600;letter-spacing:2px;text-transform:uppercase;}
.sat-timer{background:var(--sat-blue);color:#fff;padding:0.5rem 1.2rem;border-radius:99px;font-size:1rem;font-weight:600;letter-spacing:2px;font-family:'Playfair Display',serif;}
.sat-timer.warn{background:var(--rouge);}
.sat-progress{height:4px;background:#c8d4e8;border-radius:99px;margin-bottom:1.5rem;overflow:hidden;}
.sat-progress-fill{height:100%;background:var(--sat-blue);border-radius:99px;transition:width 0.3s;}

.sat-q-card{background:#fff;border:1px solid #c8d4e8;border-radius:var(--radius);padding:1.8rem;margin-bottom:1rem;}
.sat-q-meta{font-size:0.65rem;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:#1a3a6e;margin-bottom:0.7rem;}
.sat-q-text{font-size:0.98rem;color:var(--noir);line-height:1.75;margin-bottom:1.3rem;}
.sat-choices{display:flex;flex-direction:column;gap:0.5rem;}
.sat-choice{
  padding:0.8rem 1.1rem;border:1px solid #c8d4e8;border-radius:var(--radius-sm);
  cursor:pointer;display:flex;align-items:center;gap:0.8rem;font-size:0.88rem;
  color:var(--noir);background:#fff;transition:all 0.15s;
}
.sat-choice:hover{border-color:#1a3a6e;background:#e8eef8;}
.sat-choice.selected{border-color:#1a3a6e;background:#dde7f5;font-weight:500;}
.sat-choice.correct{border-color:var(--vert)!important;background:var(--vert-bg)!important;}
.sat-choice.wrong{border-color:var(--rouge)!important;background:var(--rouge-bg)!important;}
.sat-choice-letter{width:26px;height:26px;border-radius:50%;background:#e8eef8;display:flex;align-items:center;justify-content:center;font-size:0.72rem;font-weight:600;flex-shrink:0;color:#1a3a6e;}

/* Free response SAT */
.sat-free-input{
  width:100%;margin-top:0.8rem;padding:0.9rem 1.1rem;border:2px solid #c8d4e8;border-radius:var(--radius-sm);
  font-size:1rem;font-family:'DM Sans',sans-serif;outline:none;transition:border 0.2s;background:#fff;
}
.sat-free-input:focus{border-color:#1a3a6e;}
.sat-free-input.correct{border-color:var(--vert);background:var(--vert-bg);}
.sat-free-input.wrong{border-color:var(--rouge);background:var(--rouge-bg);}
.sat-free-label{font-size:0.78rem;color:#1a3a6e;font-weight:500;margin-bottom:0.4rem;}

.sat-feedback{font-size:0.82rem;color:var(--gris);background:#e8f0fc;border-left:3px solid #1a3a6e;padding:0.8rem 1rem;border-radius:0 4px 4px 0;margin-top:0.8rem;display:none;line-height:1.6;}
.sat-feedback.show{display:block;}
.sat-q-nav{display:flex;gap:0.8rem;margin-top:1rem;justify-content:flex-end;}
.btn-sat-next{padding:0.75rem 1.8rem;background:#1a3a6e;color:#fff;border:none;border-radius:var(--radius-sm);font-size:0.85rem;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;transition:background 0.2s;}
.btn-sat-next:hover{background:#243f7a;}

/* SAT Sidebar - Desmos */
.sidebar-title{font-size:0.7rem;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:#1a3a6e;margin-bottom:0.5rem;}
.desmos-wrap{height:280px;border:1px solid #c8d4e8;border-radius:var(--radius-sm);overflow:hidden;background:#fff;}
#desmos-calculator{width:100%;height:100%;}
.sat-grid-ref{background:#fff;border:1px solid #c8d4e8;border-radius:var(--radius-sm);padding:1rem;font-size:0.75rem;color:#1a3a6e;}
.sat-grid-ref h4{font-weight:600;margin-bottom:0.5rem;font-size:0.78rem;}
.sat-grid-ref ul{padding-left:1rem;color:var(--gris);line-height:1.8;}
.q-map{display:flex;flex-wrap:wrap;gap:4px;margin-top:0.5rem;}
.q-map-dot{width:22px;height:22px;border-radius:4px;border:1px solid #c8d4e8;background:#fff;display:flex;align-items:center;justify-content:center;font-size:0.62rem;color:#1a3a6e;cursor:pointer;transition:all 0.15s;}
.q-map-dot.answered{background:#1a3a6e;color:#fff;border-color:#1a3a6e;}
.q-map-dot.current{border-color:#c8a96e;background:#e8d5a3;color:#0a0a0a;}

/* SAT Result */
.sat-result{max-width:640px;margin:0 auto;padding:2.5rem 2rem;}
.sat-score-hero{text-align:center;margin-bottom:2.5rem;padding:2rem;background:#f0f4fa;border-radius:var(--radius);}
.sat-score-label{font-size:0.7rem;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:#1a3a6e;margin-bottom:0.5rem;}
.sat-score-val{font-family:'Playfair Display',serif;font-size:4rem;font-weight:900;color:#1a3a6e;line-height:1;}
.sat-score-max{font-size:1.2rem;color:var(--gris);margin-top:0.3rem;}
.sat-cat-results{display:flex;flex-direction:column;gap:0.8rem;margin-bottom:2rem;}
.sat-cat-row{background:#fff;border:1px solid #c8d4e8;border-radius:var(--radius-sm);padding:1rem 1.2rem;}
.sat-cat-name{font-weight:600;font-size:0.85rem;color:#1a3a6e;margin-bottom:0.5rem;}
.sat-cat-bar-wrap{background:#e8eef8;border-radius:99px;height:8px;overflow:hidden;margin-bottom:0.3rem;}
.sat-cat-bar-fill{height:100%;border-radius:99px;background:#1a3a6e;transition:width 0.5s;}
.sat-cat-stats{font-size:0.75rem;color:var(--gris);}

/* ══════════════════════════════════════════
   MÉDECINE SIMULATOR
══════════════════════════════════════════ */
#page-medecine{padding:2rem;}
.med-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem;}
.med-badge{background:var(--med-green);color:#fff;padding:0.3rem 1rem;border-radius:99px;font-size:0.72rem;font-weight:600;letter-spacing:2px;text-transform:uppercase;}
.med-timer{background:var(--med-green);color:#fff;padding:0.5rem 1.2rem;border-radius:99px;font-size:1rem;font-weight:600;letter-spacing:2px;font-family:'Playfair Display',serif;}
.med-timer.warn{background:var(--rouge);}
.med-no-calc{background:#fff3e0;border:1px solid #ffc107;border-radius:99px;padding:0.3rem 0.9rem;font-size:0.7rem;color:#b36b00;font-weight:600;}
.med-progress{height:4px;background:#c8e0d0;border-radius:99px;margin-bottom:1.5rem;overflow:hidden;}
.med-progress-fill{height:100%;background:var(--med-green);border-radius:99px;transition:width 0.3s;}
.med-q-card{background:var(--card-bg);border:1px solid #b0dcc0;border-radius:var(--radius);padding:1.8rem;margin-bottom:1rem;}
.med-q-meta{font-size:0.65rem;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--med-green);margin-bottom:0.7rem;}
.med-q-text{font-size:0.98rem;color:var(--noir);line-height:1.75;margin-bottom:1.3rem;}
.med-choices{display:flex;flex-direction:column;gap:0.5rem;}
.med-choice{
  padding:0.8rem 1.1rem;border:1px solid #b0dcc0;border-radius:var(--radius-sm);
  cursor:pointer;display:flex;align-items:center;gap:0.8rem;font-size:0.88rem;
  color:var(--noir);background:#fff;transition:all 0.15s;
}
.med-choice:hover{border-color:var(--med-green);background:var(--med-green-light);}
.med-choice.selected{border-color:var(--med-green);background:#ddf0e4;font-weight:500;}
.med-choice.correct{border-color:var(--vert)!important;background:var(--vert-bg)!important;}
.med-choice.wrong{border-color:var(--rouge)!important;background:var(--rouge-bg)!important;}
.med-choice-letter{width:26px;height:26px;border-radius:50%;background:#c8e0d0;display:flex;align-items:center;justify-content:center;font-size:0.72rem;font-weight:600;flex-shrink:0;color:var(--med-green);}
.med-feedback{font-size:0.82rem;color:var(--gris);background:var(--med-green-light);border-left:3px solid var(--med-green);padding:0.8rem 1rem;border-radius:0 4px 4px 0;margin-top:0.8rem;display:none;line-height:1.6;}
.med-feedback.show{display:block;}
.med-q-nav{display:flex;gap:0.8rem;margin-top:1rem;justify-content:flex-end;}
.btn-med-next{padding:0.75rem 1.8rem;background:var(--med-green);color:#fff;border:none;border-radius:var(--radius-sm);font-size:0.85rem;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;transition:background 0.2s;}
.btn-med-next:hover{background:#1f5e38;}
/* Med Result */
.med-result{max-width:600px;margin:0 auto;padding:2rem 0;}
.med-score-hero{text-align:center;margin-bottom:2rem;padding:2rem;background:var(--med-green-light);border-radius:var(--radius);}
.med-score-label{font-size:0.7rem;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--med-green);margin-bottom:0.5rem;}
.med-score-val{font-family:'Playfair Display',serif;font-size:3.5rem;font-weight:900;color:var(--med-green);line-height:1;}
.med-comp-results{display:flex;flex-direction:column;gap:0.8rem;}
.med-comp-row{background:#fff;border:1px solid #b0dcc0;border-radius:var(--radius-sm);padding:1rem 1.2rem;}
.med-comp-name{font-weight:600;font-size:0.85rem;color:var(--med-green);margin-bottom:0.5rem;}
.med-comp-bar-wrap{background:#c8e0d0;border-radius:99px;height:8px;overflow:hidden;margin-bottom:0.3rem;}
.med-comp-bar-fill{height:100%;border-radius:99px;background:var(--med-green);transition:width 0.5s;}

/* ══════════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════════ */
@media(max-width:600px){
  header{padding:0 1rem;}
  .page{padding:1.5rem 1rem;}
  .levels-grid,.chapters-grid{grid-template-columns:1fr;}
}

/* Chapitres + carte QCM par chapitre */
.chapters-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.2rem;}
.chapter-cell{display:flex;flex-direction:column;gap:0.75rem;}
.card-qcm-chapter{
  border-radius:var(--radius);padding:1rem 1.1rem;cursor:pointer;transition:all 0.22s;
  border:2px dashed rgba(200,169,110,0.45);position:relative;overflow:hidden;
}
.card-qcm-chapter::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(135deg,transparent 40%,rgba(200,169,110,0.06));pointer-events:none;
}
.card-qcm-chapter:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(200,169,110,0.15);border-style:solid;}
.card-qcm-chapter.qcm-ch-disabled{opacity:0.45;filter:grayscale(0.4);cursor:not-allowed;pointer-events:none;}
.qcm-ch-pill{display:inline-block;padding:0.2rem 0.65rem;border-radius:99px;font-size:0.62rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;margin-bottom:0.45rem;}
.qcm-ch-title{font-family:'Playfair Display',serif;font-size:0.95rem;font-weight:700;color:var(--noir);line-height:1.3;}
.qcm-ch-meta{font-size:0.72rem;color:var(--gris);margin-top:0.35rem;}
.qcm-ch-theme-0 .qcm-ch-pill{background:rgba(42,122,74,0.2);color:var(--vert);}
.qcm-ch-theme-1 .qcm-ch-pill{background:rgba(200,114,42,0.2);color:var(--orange);}
.qcm-ch-theme-2 .qcm-ch-pill{background:rgba(200,169,110,0.25);color:var(--or-dark);}
.qcm-ch-theme-3 .qcm-ch-pill{background:rgba(26,58,110,0.15);color:var(--sat-blue);}
.qcm-ch-theme-4 .qcm-ch-pill{background:rgba(200,75,75,0.12);color:var(--rouge);}
.qcm-ch-theme-5 .qcm-ch-pill{background:rgba(90,60,120,0.15);color:#5a3c78;}

.card-level.sim-locked .lv-content{opacity:0.35;filter:grayscale(1);}
.card-level.sim-locked{cursor:default;}
.card-level.sim-locked.unlocked:hover{transform:none;box-shadow:none;}
.card-level.sim-locked .restrict-overlay{background:rgba(250,247,242,0.92);}

.lv-icon{width:48px;height:48px;margin-bottom:1rem;display:flex;align-items:center;justify-content:center;color:var(--or);}
.lv-icon svg{width:40px;height:40px;}

.btn-nav-defi{
  padding:0.6rem 1.2rem;background:var(--card-bg);border:1px solid var(--card-border);
  border-radius:var(--radius-sm);color:var(--gris);font-size:0.82rem;cursor:pointer;
  font-family:'DM Sans',sans-serif;transition:all 0.18s;
}
.btn-nav-defi:hover:not(:disabled){border-color:var(--or);color:var(--or-dark);}
.btn-nav-defi:disabled{opacity:0.3;cursor:default;}
.defi-title-row{font-size:0.9rem;font-weight:500;color:var(--noir);}
.defi-date-row{font-size:0.73rem;color:var(--gris);margin-top:0.1rem;}
.defi-date-row.urgent{color:var(--rouge);font-weight:500;}
.defi-row.status-reussi{border-left:3px solid var(--vert);background:var(--vert-bg);}
.defi-row.status-aide{border-left:3px solid var(--orange);background:var(--orange-bg);}
.defi-row.status-rien{border-left:3px solid var(--rouge);background:var(--rouge-bg);}
.s-btn-v .s-dot{background:var(--vert);} .s-btn-o .s-dot{background:var(--orange);} .s-btn-r .s-dot{background:var(--rouge);}
.date-card-label{font-size:0.65rem;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--gris);margin-bottom:0.4rem;}

.qcm-grid-input{
  width:100%;max-width:320px;padding:0.85rem 1rem;border:2px solid var(--card-border);
  border-radius:var(--radius-sm);font-size:1rem;font-family:'DM Sans',sans-serif;
}
.qcm-grid-input:focus{outline:none;border-color:var(--or);}

.btn-desmos-fab{
  position:fixed;bottom:1.5rem;right:1.5rem;z-index:600;padding:0.85rem 1.25rem;border-radius:99px;
  background:var(--sat-blue);color:#fff;border:none;font-size:0.78rem;font-weight:600;letter-spacing:1px;
  cursor:pointer;font-family:'DM Sans',sans-serif;box-shadow:0 6px 24px rgba(26,58,110,0.35);display:none;
}
.btn-desmos-fab:hover{background:#243f7a;}
body.sat-active .btn-desmos-fab{display:block;}
.desmos-float-ov{
  position:fixed;inset:0;background:rgba(10,10,10,0.75);z-index:2000;display:none;
  align-items:center;justify-content:center;padding:1rem;
}
.desmos-float-ov.open{display:flex;}
.desmos-float-panel{
  width:min(96vw,920px);height:min(88vh,720px);background:#fff;border-radius:var(--radius);
  border:1px solid #c8d4e8;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,0.3);
}
.desmos-float-head{
  display:flex;justify-content:space-between;align-items:center;padding:0.65rem 1rem;
  background:#f0f4fa;border-bottom:1px solid #c8d4e8;font-size:0.85rem;font-weight:600;color:#1a3a6e;
}
.desmos-float-close{background:transparent;border:none;font-size:1.25rem;cursor:pointer;color:var(--gris);line-height:1;}
#desmos-calculator-large{flex:1;min-height:0;}

.page-sim-medecine .btn-desmos-fab{display:none!important;}
#screen-locked.open{display:flex!important;flex-direction:column;}

/* Aliases (ancien app.js + v5) */
.qcm-question-box{
  background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius);
  padding:1.8rem;margin-bottom:1.2rem;
}
.qcm-q-num{font-size:0.65rem;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--or);margin-bottom:0.8rem;}
.qcm-progress-bar{height:4px;background:var(--gris-clair);border-radius:99px;margin-bottom:0.75rem;overflow:hidden;}
.qcm-progress-bar .qcm-progress-fill{height:100%;background:var(--or);border-radius:99px;transition:width 0.3s;}
.qcm-counter{display:flex;justify-content:space-between;font-size:0.82rem;margin-bottom:1rem;color:var(--gris);}
.qcm-btn-next{margin-top:1rem;padding:0.75rem 1.8rem;background:var(--or);color:var(--noir);border:none;border-radius:var(--radius-sm);font-size:0.85rem;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;display:none;}
.qcm-btn-next.show{display:inline-block;}
#pwd-input{text-align:center;letter-spacing:4px;font-size:1.05rem;}

.sat-work{display:contents;}
@media(min-width:901px){
  .sat-layout.has-result{grid-template-columns:1fr;}
}
