:root{
  --bg:#f4f2ee; --surface:#fff; --ink:#1f2430; --muted:#6b6f78; --border:#e3dfd6;
  --accent:#d9822f; --accent-dark:#b06823; --accent-soft:#f5e6d2; --accent-soft-border:#e7cfa6; --accent-text:#9a5414;
  --sidebar:#1f2430; --sidebar-soft:#2a3040; --sidebar-text:#c7cad2;
  --r-sm:8px; --r-md:10px;
  --fd:"Space Grotesk",system-ui,sans-serif; --fb:"Inter",system-ui,sans-serif;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--fb);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
h1{font-family:var(--fd);font-weight:700;font-size:26px;letter-spacing:-.3px;margin:0}
h2{font-family:var(--fd);font-weight:700;font-size:20px;margin:0}
h3{font-family:var(--fd);font-weight:600;font-size:16px;margin:0 0 4px}

/* ---------- Layout ---------- */
.layout{display:grid;grid-template-columns:248px 1fr;min-height:100vh}
.sidebar{background:var(--sidebar);color:var(--sidebar-text);padding:20px 14px;display:flex;flex-direction:column;gap:6px}
.brand{display:flex;align-items:center;gap:9px;color:#fff;font-family:var(--fd);font-weight:700;font-size:18px;padding:6px 8px 16px}
.nav{display:flex;flex-direction:column;gap:2px}
.nav__label{font-size:11px;letter-spacing:.6px;text-transform:uppercase;color:#7f8493;margin:16px 8px 6px}
.navlink{display:block;padding:9px 12px;border-radius:var(--r-sm);font-size:14px;color:var(--sidebar-text)}
.navlink:hover{background:var(--sidebar-soft);color:#fff}
.navlink.is-active{background:var(--accent);color:#fff;font-weight:500}

.main{display:flex;flex-direction:column;min-width:0}
.topbar{display:flex;align-items:center;justify-content:space-between;height:62px;padding:0 28px;background:var(--surface);border-bottom:1px solid var(--border)}
.role-badge{font-size:12px;font-weight:600;color:var(--accent-text);background:var(--accent-soft);border:1px solid var(--accent-soft-border);border-radius:20px;padding:4px 12px}
.topbar__right{display:flex;align-items:center;gap:16px}
.topbar__user{font-size:14px;font-weight:500}
.topbar__logout{font-size:13px;color:var(--muted)}
.topbar__logout:hover{color:var(--ink)}
.content{padding:32px 28px;max-width:1100px;width:100%}

/* ---------- Pages ---------- */
.page-head{margin-bottom:24px}
.page-sub{color:var(--muted);margin:4px 0 0}
.placeholder{background:var(--surface);border:1px dashed var(--accent-soft-border);border-radius:var(--r-md);padding:28px;color:var(--muted)}

.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:20px;transition:border-color .15s,transform .08s}
.card:hover{border-color:var(--accent-soft-border);transform:translateY(-2px)}
.card p{color:var(--muted);font-size:14px;margin:0}

.info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.info{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:16px 18px}
.info__k{display:block;font-size:12px;letter-spacing:.4px;text-transform:uppercase;color:var(--muted)}
.info__v{font-size:16px;font-weight:500}

.flash{padding:11px 15px;border-radius:var(--r-sm);font-size:14px;margin-bottom:16px}
.flash--error{background:#fbeaea;border:1px solid #e6b9b9;color:#8c2f2f}
.flash--info{background:var(--accent-soft);border:1px solid var(--accent-soft-border);color:var(--accent-text)}

/* ---------- Boutons / champs ---------- */
.btn{display:inline-block;font-family:var(--fb);font-size:15px;font-weight:500;padding:11px 20px;border-radius:var(--r-sm);border:1px solid transparent;cursor:pointer}
.btn--primary{background:var(--accent);color:#fff}
.btn--primary:hover{background:var(--accent-dark)}
.btn--block{width:100%}
.field{display:block;margin-bottom:14px}
.field>span{display:block;font-size:13px;font-weight:500;margin-bottom:6px}
.field input{width:100%;font-family:var(--fb);font-size:15px;color:var(--ink);background:var(--bg);border:1px solid var(--border);border-radius:var(--r-sm);padding:11px 13px}
.field input:focus{outline:none;border-color:var(--accent);background:var(--surface)}

/* ---------- Login ---------- */
.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px}
.login-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:38px;width:100%;max-width:400px;box-shadow:0 10px 40px rgba(31,36,48,.08)}
.login-brand{display:flex;align-items:center;gap:10px;font-family:var(--fd);font-weight:700;font-size:20px;margin-bottom:22px}
.login-sub{color:var(--muted);margin:2px 0 22px}

@media(max-width:760px){
  .layout{grid-template-columns:1fr}
  .sidebar{flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px;padding:12px}
  .nav{flex-direction:row;flex-wrap:wrap}
  .nav__label{display:none}
  .content{padding:22px 16px}
}

/* ---- Sélecteur de langue ---- */
.lang-switch{display:inline-flex;gap:2px;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:2px}
.lang-switch__item{font-size:12px;font-weight:600;color:var(--muted);padding:4px 8px;border-radius:6px}
.lang-switch__item:hover{color:var(--ink)}
.lang-switch__item.is-active{background:var(--accent);color:#fff}

/* ---- Modules / apprentissage ---- */
.mod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.mod-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:20px;transition:border-color .15s,transform .08s}
.mod-card:hover{border-color:var(--accent-soft-border);transform:translateY(-2px)}
.mod-card__theme{font-size:11px;letter-spacing:.5px;text-transform:uppercase;color:var(--accent-text);font-weight:600}
.mod-card__title{font-family:var(--fd);font-weight:600;font-size:17px;margin:6px 0 4px}
.mod-card__sum{color:var(--muted);font-size:14px;flex:1}
.mod-card__foot{display:flex;align-items:center;justify-content:space-between;margin-top:14px;gap:8px}
.status-pill{font-size:12px;font-weight:600;padding:3px 10px;border-radius:14px}
.status-pill--not_started{background:#f0ede5;color:#7a7a7a}
.status-pill--in_progress{background:var(--accent-soft);color:var(--accent-text)}
.status-pill--completed{background:#e3f0e3;color:#2f7a3f}

.lesson{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:22px;margin-bottom:16px}
.lesson__num{font-size:12px;letter-spacing:.5px;text-transform:uppercase;color:var(--accent-text);font-weight:600}
.lesson__title{font-family:var(--fd);font-weight:600;font-size:18px;margin:4px 0 10px}
.lesson__content{color:var(--ink);line-height:1.7}

.quiz-q{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:20px;margin-bottom:16px}
.quiz-q__prompt{font-weight:600;margin-bottom:12px}
.quiz-opt{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r-sm);margin-bottom:8px;cursor:pointer}
.quiz-opt:hover{border-color:var(--accent-soft-border);background:var(--bg)}
.quiz-opt input{width:auto;margin:0}

.result-q{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--border);border-radius:var(--r-md);padding:18px;margin-bottom:14px}
.result-q--ok{border-left-color:#3f9a52}
.result-q--ko{border-left-color:#c0563f}
.result-q__line{font-size:14px;margin:4px 0}
.result-q__expl{background:var(--accent-soft);border:1px solid var(--accent-soft-border);color:var(--accent-text);border-radius:var(--r-sm);padding:10px 12px;margin-top:8px;font-size:14px}
.score-banner{display:flex;align-items:center;gap:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:20px;margin-bottom:20px}
.score-circle{font-family:var(--fd);font-weight:700;font-size:20px;line-height:1;width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff;background:var(--accent)}

/* ---- Éditeur back-office ---- */
.editor-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:22px;margin-bottom:20px}
.editor-block h2{margin-bottom:14px}
.editor-item{border:1px solid var(--border);border-radius:var(--r-sm);padding:16px;margin-bottom:14px;position:relative;background:var(--bg)}
.editor-item textarea,.editor-item input[type=text]{width:100%;font-family:var(--fb);font-size:14px;border:1px solid var(--border);border-radius:var(--r-sm);padding:8px 10px;background:#fff}
.btn-mini{font-size:12px;font-weight:600;padding:4px 8px;border:1px solid var(--border);border-radius:6px;background:#fff;cursor:pointer}
.btn-mini:hover{border-color:var(--accent-soft-border)}
.btn-mini:disabled{opacity:.4;cursor:not-allowed}
.choice-row{display:flex;align-items:center;gap:6px;margin-bottom:6px}
.choice-row--correct{background:#e3f0e3;border-radius:var(--r-sm);padding:4px 6px}
.editor-item textarea{margin:0}

/* ---- Éditeur v2 : onglets de langue ---- */
.lang-tabs{display:flex;align-items:center;gap:4px;border-bottom:1px solid var(--border);margin-bottom:8px}
.lang-tab{padding:10px 18px;font-family:var(--fd);font-weight:600;font-size:14px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}
.lang-tab:hover{color:var(--ink)}
.lang-tab.is-active{color:var(--accent-text);border-bottom-color:var(--accent)}
.lang-tabs__status{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted)}
.edit-hint{background:var(--accent-soft);border:1px solid var(--accent-soft-border);color:var(--accent-text);border-radius:var(--r-sm);padding:10px 14px;font-size:14px;margin:0 0 20px}
.editor-item__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.editor-item__label{font-family:var(--fd);font-weight:600;font-size:14px;color:var(--muted)}
.btn-mini--danger{color:#8c2f2f;border-color:#e6b9b9}
.btn-mini--danger:hover{background:#fbeaea}
.choice-row input[type=radio]{width:auto;margin:0;flex-shrink:0}
.editor-save{position:sticky;bottom:0;background:linear-gradient(transparent,var(--bg) 30%);padding:18px 0;margin-top:8px}
.btn--lg{font-size:16px;padding:13px 28px}
.editor-struct{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px;padding-top:20px;border-top:1px solid var(--border)}

/* ---- Catalogue (liste des modules) ---- */
.cat-new{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:18px 20px;margin-bottom:26px}
.cat-new__form{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap}
.cat-new__field{display:flex;flex-direction:column;gap:5px;flex:1;min-width:160px}
.cat-new__field--sm{flex:0 0 90px;min-width:90px}
.cat-new__field label{font-size:12px;font-weight:600;color:var(--muted)}
.cat-new__field input{font-family:var(--fb);font-size:14px;border:1px solid var(--border);border-radius:var(--r-sm);padding:10px 12px;background:var(--bg)}
.cat-new__field input:focus{outline:none;border-color:var(--accent);background:#fff}
.cat-h2{font-family:var(--fd);font-size:13px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin:0 0 14px}
.cat-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:16px}
.cat-card{display:flex;justify-content:space-between;gap:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:20px;transition:border-color .15s,transform .08s}
.cat-card:hover{border-color:var(--accent-soft-border);transform:translateY(-2px)}
.cat-card--off{opacity:.6}
.cat-card__main{min-width:0;flex:1}
.cat-card__top{display:flex;gap:8px;margin-bottom:8px}
.cat-badge{font-size:11px;letter-spacing:.4px;text-transform:uppercase;font-weight:600;color:var(--accent-text);background:var(--accent-soft);border:1px solid var(--accent-soft-border);border-radius:12px;padding:2px 10px}
.cat-badge--off{color:#7a7a7a;background:#f0ede5;border-color:#e3dfd6}
.cat-card__title{font-family:var(--fd);font-weight:600;font-size:18px;margin:0 0 4px}
.cat-card__meta{color:var(--muted);font-size:13px;margin:0 0 12px}
.cat-tr{display:flex;align-items:center;gap:10px}
.cat-tr__bar{flex:1;height:6px;background:var(--bg);border:1px solid var(--border);border-radius:6px;overflow:hidden}
.cat-tr__bar span{display:block;height:100%;background:#3f9a52}
.cat-tr__label{font-size:12px;color:var(--muted);white-space:nowrap}
.cat-card__actions{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:10px}
@media(max-width:560px){.cat-new__form{flex-direction:column;align-items:stretch}.cat-new__field{width:100%}}

/* ---- Étapes de parcours ---- */
.path-steps{list-style:none;margin:0;padding:0;counter-reset:step}
.path-step{display:flex;align-items:center;gap:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:18px 20px;margin-bottom:12px}
.path-step__num{flex-shrink:0;width:38px;height:38px;border-radius:50%;background:var(--accent-soft);color:var(--accent-text);border:1px solid var(--accent-soft-border);font-family:var(--fd);font-weight:700;display:flex;align-items:center;justify-content:center}
.path-step__body{flex:1;min-width:0}
.path-step__title{font-family:var(--fd);font-weight:600;font-size:16px;margin:0 0 2px}
.path-step__sum{color:var(--muted);font-size:13px;margin:0 0 8px}
.path-step__cta{flex-shrink:0}
@media(max-width:600px){.path-step{flex-wrap:wrap}.path-step__cta{width:100%;text-align:center}}

/* ---- Sections de cours typées ---- */
.sec-head{font-family:var(--fd);font-size:18px;font-weight:700;margin:26px 0 12px;display:flex;align-items:center;gap:8px}
.lesson--scenario{border-left:4px solid var(--accent)}
.lesson--prevention{border-left:4px solid #3f9a52;background:#f3f8f3}
.quiz-launch{background:var(--surface);border:1px dashed var(--accent-soft-border);border-radius:var(--r-md);padding:22px;text-align:center;margin-top:24px}
.quiz-launch p{color:var(--muted);margin:0 0 12px}

/* ===== Cours riche (parcours) ===== */
.course-hero{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:26px 28px;margin:10px 0 24px}
.course-hero--rich{background:linear-gradient(180deg,#fff,#faf7f2);border-color:var(--accent-soft-border)}
.course-hero h1{margin:12px 0 0;font-size:26px}
.course-hero__sum{color:var(--muted);font-size:15px;margin:8px 0 0;max-width:680px}
.course-flow{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.course-flow__step{font-family:var(--fd);font-size:13px;font-weight:600;color:var(--muted);background:var(--bg);border:1px solid var(--border);border-radius:20px;padding:5px 14px}
.course-flow__step.is-on{color:var(--accent-text);background:var(--accent-soft);border-color:var(--accent-soft-border)}

/* En-têtes de section avec accent par type */
.sec-head{font-family:var(--fd);font-size:18px;margin:30px 0 12px;padding-left:12px;border-left:4px solid var(--accent)}
.sec-head--scenario{border-left-color:#3b6fb5}
.sec-head--prevention{border-left-color:#3f9a52}

.course-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:22px 24px;margin-bottom:14px}
.course-block--scenario{background:#f5f8fc;border-color:#d8e3f1}
.course-block--prevention{background:#f3faf4;border-color:#d4ead8}
.course-block__title{font-family:var(--fd);font-size:17px;margin:0 0 12px}

/* ---- Typographie de contenu (rendu du markup léger) ---- */
.rt{font-size:15.5px;line-height:1.7;color:var(--ink)}
.rt p{margin:0 0 14px}
.rt p:last-child{margin-bottom:0}
.rt-h{font-family:var(--fd);font-size:16px;margin:20px 0 10px;color:var(--ink)}
.rt-list{margin:0 0 14px;padding-left:22px}
.rt-list li{margin-bottom:6px}

/* Encadré « point clé » */
.rt-key{display:flex;gap:12px;align-items:flex-start;background:var(--accent-soft);border:1px solid var(--accent-soft-border);border-radius:var(--r-sm);padding:14px 16px;margin:0 0 16px}
.rt-key__tag{flex-shrink:0;font-family:var(--fd);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--accent-text);background:#fff;border:1px solid var(--accent-soft-border);border-radius:6px;padding:3px 8px}
/* Encadré « à remarquer » */
.rt-note{display:flex;gap:12px;align-items:flex-start;background:#eef4fb;border:1px solid #d3e2f3;border-radius:var(--r-sm);padding:14px 16px;margin:0 0 16px}
.rt-note__tag{flex-shrink:0;font-family:var(--fd);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#2c5d96;background:#fff;border:1px solid #d3e2f3;border-radius:6px;padding:3px 8px}

/* Dialogue de scénario */
.rt-bub{margin:0 0 10px;background:#fff;border:1px solid #dbe4f0;border-radius:14px;border-top-left-radius:4px;padding:10px 14px;max-width:560px}
.rt-bub__who{display:block;font-family:var(--fd);font-weight:700;font-size:12px;color:#2c5d96;margin-bottom:2px}
.rt-bub__msg{display:block}
.rt-narr{font-style:italic;color:var(--muted);margin:0 0 12px}

/* Étapes numérotées */
.rt-steps{counter-reset:rs;list-style:none;margin:0 0 16px;padding:0}
.rt-steps li{display:flex;gap:12px;align-items:flex-start;margin-bottom:10px}
.rt-steps__n{counter-increment:rs;flex-shrink:0;width:26px;height:26px;border-radius:50%;background:var(--accent);color:#fff;font-family:var(--fd);font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center}
.rt-steps__n::before{content:counter(rs)}

/* Cartes de réflexes (prévention) */
.rt-reflex{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin:4px 0 16px}
.rt-reflex__card{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1px solid #d4ead8;border-radius:var(--r-sm);padding:14px 16px}
.rt-reflex__n{flex-shrink:0;font-family:var(--fd);font-weight:800;font-size:16px;color:#3f9a52}
.rt-reflex__txt{font-size:14.5px;line-height:1.55}

/* Aide à la mise en forme (éditeur) */
.fmt-help{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-sm);padding:10px 14px;margin-bottom:16px;font-size:13.5px}
.fmt-help summary{cursor:pointer;font-weight:600;color:var(--accent-text)}
.fmt-help ul{margin:10px 0 6px;padding-left:18px}
.fmt-help li{margin-bottom:4px}
.fmt-help code{background:#fff;border:1px solid var(--border);border-radius:4px;padding:1px 5px;font-size:12.5px}

/* Filtre par type (catalogue) */
.cat-filter{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}
.cat-filter__tab{display:inline-flex;align-items:center;gap:7px;font-family:var(--fd);font-weight:600;font-size:14px;color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:7px 16px}
.cat-filter__tab span{font-size:12px;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:0 7px;color:var(--muted)}
.cat-filter__tab:hover{color:var(--ink)}
.cat-filter__tab.is-active{color:#fff;background:var(--accent);border-color:var(--accent)}
.cat-filter__tab.is-active span{background:rgba(255,255,255,.25);border-color:transparent;color:#fff}
.cat-badge--parcours{color:#2c5d96;background:#eef4fb;border-color:#d3e2f3}
.cat-badge--sensib{color:#3f7a4a;background:#f0f7f1;border-color:#d4ead8}

/* ===== TP guidé « Phishing ou légitime ? » ===== */
.sec-head--tp{border-left-color:#8a5cc4}
.tp__bar{font-family:var(--fd);font-weight:600;font-size:13px;color:var(--muted);margin-bottom:12px}
.tp__count{color:var(--accent-text)}
.tp-mail{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:18px 20px;margin-bottom:14px;transition:border-color .15s}
.tp-mail--ok{border-color:#bfe0c6;background:#f6fbf7}
.tp-mail--ko{border-color:#e9c4c4;background:#fdf6f5}
.tp-mail__head{font-size:14px;line-height:1.7;border-bottom:1px solid var(--border);padding-bottom:10px;margin-bottom:10px}
.tp-mail__lbl{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.4px}
.tp-mail__body{font-size:14.5px;line-height:1.6;color:var(--ink)}
.tp-mail__actions{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}
.tp-choice{border:1px solid var(--border);font-weight:600;cursor:pointer}
.tp-choice:hover:not(:disabled){border-color:var(--accent);color:var(--accent-text)}
.tp-choice:disabled{opacity:.5;cursor:default}
.tp-mail__feedback{margin-top:12px;padding:12px 14px;background:var(--bg);border-radius:var(--r-sm);font-size:14px}
.tp-mail__verdict{font-family:var(--fd);font-weight:700;margin-right:8px}
.tp-mail__verdict.is-ok{color:#3f9a52}
.tp-mail__verdict.is-ko{color:#b5482f}
.tp__done{font-family:var(--fd);font-weight:600;color:#3f9a52;background:#f3faf4;border:1px solid #d4ead8;border-radius:var(--r-sm);padding:12px 16px;text-align:center}

/* Verdict TP (éditeur) */
.tp-verdict{display:flex;gap:18px;align-items:center;margin-top:8px;font-size:14px}
.tp-verdict>span{color:var(--muted);font-weight:600}
.tp-verdict label{display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.tp-verdict input{width:auto;margin:0}

/* ===== Cours par étapes ===== */
.stepper{display:flex;gap:8px;overflow-x:auto;padding:4px 0 14px;margin-bottom:8px;-webkit-overflow-scrolling:touch}
.stepper__pill{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;font-family:var(--fd);font-weight:600;font-size:13px;color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:7px 14px;cursor:pointer;white-space:nowrap;transition:all .12s}
.stepper__pill:hover{border-color:var(--accent-soft-border);color:var(--ink)}
.stepper__pill.is-active{color:#fff;background:var(--accent);border-color:var(--accent)}
.stepper__pill.is-done{color:var(--accent-text);background:var(--accent-soft);border-color:var(--accent-soft-border)}
.stepper__pill.is-done .stepper__ico::after{content:" ✓"}
.stepper__pill--ahead{opacity:.85}
.stepper__pill.is-locked{cursor:default;opacity:.5}
.stepper__ico{font-size:14px}

.step{animation:stepIn .25s ease}
@keyframes stepIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

.step-nav{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}
.step-nav .btn{border:1px solid var(--border)}
.step-nav .btn--primary{border-color:var(--accent)}
.step-pos{font-family:var(--fd);font-weight:600;font-size:13px;color:var(--muted)}

/* Compteur de places étudiantes */
.places-counter{margin:6px 0 18px}
.places-counter__bar{height:8px;background:var(--bg);border:1px solid var(--border);border-radius:6px;overflow:hidden}
.places-counter__bar span{display:block;height:100%;background:var(--accent)}
.places-counter__label{display:block;margin-top:6px;font-size:13px;color:var(--muted);font-weight:600}

/* ---------- Icônes & blocs visuels (richtext) ---------- */
.rt-ico{display:inline-block;width:1.05em;height:1.05em;vertical-align:-0.16em;margin-right:.14em;flex-shrink:0}
.rt-h .rt-ico{width:1.1em;height:1.1em;color:var(--accent)}
.rt-key__tag .rt-ico,.rt-note__tag .rt-ico{display:none}
.rt-key .rt-ico,.rt-note .rt-ico{color:inherit}
.rt-figure{display:flex;align-items:center;gap:14px;background:var(--accent-soft);border:1px solid var(--accent-soft-border);border-radius:var(--r-md);padding:13px 16px;margin:6px 0 18px}
.rt-figure__ic{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:12px;background:#fff;border:1px solid var(--accent-soft-border);color:var(--accent)}
.rt-figure__ic .rt-ico{width:26px;height:26px;margin:0;vertical-align:0}
.rt-figure__cap{font-family:var(--fd);font-size:14px;font-weight:600;color:var(--accent-text);line-height:1.4}

/* ---------- Schémas pédagogiques (SVG, libellés traduisibles) ---------- */
.rt-schema{margin:8px 0 18px;background:var(--accent-soft);border:1px solid var(--accent-soft-border);border-radius:var(--r-md);padding:12px}
.rt-schema__svg{display:block;width:100%;height:auto;font-family:var(--fd)}
.rt-sch__t{fill:var(--ink);font-size:13px}
.rt-sch__t--c{text-anchor:middle}
.rt-sch__t--inv{fill:#fff}
.rt-sch__h{font-weight:700;fill:var(--accent-text)}
.rt-sch__n{fill:#fff;font-weight:700;font-size:15px;text-anchor:middle}

/* ---------- Schémas (richtext : strates & chaîne) ---------- */
.rt-schema{margin:8px 0 18px}
.rt-schema--layers{display:flex;flex-direction:column;gap:6px;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--accent-soft-border)}
.rt-layer{padding:12px 16px;display:flex;flex-direction:column;gap:2px}
.rt-layer__lab{font-family:var(--fd);font-weight:700;font-size:14.5px;color:var(--ink)}
.rt-layer__desc{font-size:13.5px;color:var(--muted)}
.rt-schema--flow{display:flex;flex-direction:column;align-items:stretch;gap:0}
.rt-flow__step{background:#fff;border:1px solid var(--accent-soft-border);border-left:4px solid var(--accent);border-radius:var(--r-sm);padding:11px 15px;display:flex;flex-direction:column;gap:2px}
.rt-flow__lab{font-family:var(--fd);font-weight:700;font-size:14.5px;color:var(--ink)}
.rt-flow__desc{font-size:13.5px;color:var(--muted)}
.rt-flow__arrow{align-self:center;color:var(--accent);font-size:20px;line-height:1;margin:4px 0}

/* ---------- Liens secondaires sous les cartes d'authentification ---------- */
.login-alt{margin-top:16px;text-align:center;font-size:13.5px}
.login-alt a{color:var(--accent-text);text-decoration:none}
.login-alt a:hover{text-decoration:underline}
