/* Mode lecture : même univers que l'aventure, densité adaptée à un cours. */
html[data-skin="classic"] {
  --primary:#1b4b60; --primary-dark:#153546; --primary-light:#286f7b;
  --primary-bg:#e9f2f1; --secondary:#2d7c7c; --secondary-dark:#246365;
  --accent:#2d7779; --dark:#183344; --dark-soft:#546c79; --gray:#637a86;
  --bg:#f4f7f7; --card-bg:#fff; --white:#fff; --border:#dce6e8;
  --gray-light:#dce6e8; --gray-lighter:#edf3f4; --input-bg:#f8fbfb;
  --text-light:#546c79; --success:#267456;
  --callout-info-bg:#edf5f7; --callout-tip-bg:#edf6f1;
  --callout-warning-bg:#f9f6ed; --callout-danger-bg:#faf0ef;
  --callout-example-bg:#f0f4f9; --quiz-border:#bad1d4;
  --radius-sm:8px; --radius-md:12px; --radius-lg:16px; --radius-xl:22px;
  --shadow-sm:0 2px 8px #15354605; --shadow-md:0 8px 28px #1535460a;
}
html[data-skin="classic"][data-theme="dark"] {
  --primary:#97cec9; --primary-dark:#b6e0da; --primary-light:#b6e0da;
  --primary-bg:#203c45; --secondary:#80bcb7; --secondary-dark:#acd5cf;
  --accent:#8bc8c1; --dark:#e5eef2; --dark-soft:#afc2cc; --gray:#9eb5c1;
  --bg:#0e202c; --card-bg:#152b39; --white:#152b39; --border:#2b4350;
  --gray-light:#2b4350; --gray-lighter:#1a3341; --input-bg:#102530;
  --text-light:#afc2cc; --success:#8ed1ad;
  --callout-info-bg:#183544; --callout-tip-bg:#1b3935;
  --callout-warning-bg:#34352f; --callout-danger-bg:#3c2b32;
  --callout-example-bg:#213547; --quiz-border:#41636d;
  --shadow-sm:0 2px 8px #0001; --shadow-md:0 8px 28px #0002;
}
.ff-reader { line-height:1.6; }
/* Les cartes présentes se partagent la largeur du lecteur, sans colonne vide. */
.ff-reader .block-cards { grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr)); }
.ff-reader .block-cards>.block-card { min-width:0; overflow-wrap:anywhere; }
/* Les couleurs de texte et les fonds d’action ont chacun leur rôle.
   La menthe utilisée pour les liens en sombre ne devient plus un fond avec du texte blanc. */
.ff-reader {
  --reader-action-bg:#1b5364; --reader-action-hover:#246b79; --reader-action-ink:#fff;
  --reader-mint:#d4ebe3; --reader-mint-hover:#e4f5ee; --reader-mint-ink:#123a41;
  --reader-done-bg:#edf6f1; --reader-done-ink:#246247; --reader-done-line:#a1c9b4;
  --reader-pending-bg:#fbf5e9; --reader-pending-ink:#70521d; --reader-pending-line:#b99959;
}
[data-theme="dark"] .ff-reader {
  --reader-done-bg:#1b3935; --reader-done-ink:#b9e4ca; --reader-done-line:#4c7b67;
  --reader-pending-bg:#3b3022; --reader-pending-ink:#f2d5ab; --reader-pending-line:#8c7153;
}
html[data-skin="classic"].lms-contrast:not([data-theme="dark"]) { --dark-soft:#233e4d; --gray:#3d5362; --text-light:#233e4d; }
html[data-skin="classic"].lms-contrast[data-theme="dark"] { --dark-soft:#e3eef4; --gray:#c4d7df; --text-light:#e3eef4; }
.ff-reader .lms-dashboard-resume { display:block; background:var(--primary-bg); color:var(--dark); border:1px solid var(--border); border-left:3px solid var(--secondary); border-radius:14px; padding:20px 24px; margin-bottom:24px; text-decoration:none; transition:box-shadow .2s; }
.ff-reader .lms-dashboard-resume:hover { box-shadow:var(--shadow-md); }
.ff-reader .lms-plan-card { background:linear-gradient(120deg,#163b50,#102c3b); border:1px solid #315460; border-radius:18px; }
html[data-skin] .ff-reader .lms-plan-card__eyebrow { color:#99cfca; }
.ff-reader .lms-plan-card__num { color:#e2f0f2; }
.ff-reader :is(.lms-plan-card__lbl,.lms-plan-card__meta) { color:#bfd2dc; }
.ff-reader .lms-activity-success { text-align:center; padding:24px; border-radius:14px; background:var(--callout-tip-bg); color:var(--success); border:1px solid var(--success); font-weight:700; }
.ff-reader :is(a,button) { -webkit-tap-highlight-color:transparent; }
.ff-reader a { text-underline-offset:3px; }
html[data-skin] .ff-reader .lms-header { border-bottom:1px solid var(--border); box-shadow:0 2px 12px #092c3b08; }
html[data-skin] .ff-reader :is(.lms-auth-btn,.btn--primary,.lms-gating-wall__cta,.lms-modal__submit) {
  background:#1b5364 !important; color:#fff !important; border:1px solid #296678;
  border-radius:12px; box-shadow:none; text-transform:none; letter-spacing:0;
}
html[data-skin] .ff-reader :is(.lms-auth-btn,.btn--primary,.lms-gating-wall__cta,.lms-modal__submit):hover { background:#246b79 !important; }
html[data-skin] .ff-reader .lms-auth-tab--active { background:var(--primary-bg); color:var(--primary); border-color:var(--border); border-radius:10px; }
html[data-skin] .ff-reader input::placeholder { color:var(--dark-soft); opacity:1; }
.ff-reader .lms-dashboard-resume>div>div { min-width:0 !important; }
html[data-skin] .ff-reader .btn--secondary { background:var(--primary-bg); color:var(--primary); border:1px solid var(--border); border-radius:12px; }
.ff-reader :is(button,a):focus-visible { outline:3px solid var(--primary-light); outline-offset:3px; }

/* Entrées de cours : illustration à droite, informations groupées à gauche. */
.ff-reader .lms-course-hero {
  max-width:1160px; margin:24px auto 0; display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,.85fr);
  overflow:hidden; border-radius:24px; background:#0b3245; color:#ecf5f8;
  border:1px solid #284b5a; position:relative;
}
.ff-reader .lms-course-hero__copy { padding:28px 32px 30px; z-index:1; min-width:0; overflow-wrap:anywhere; }
.ff-reader .lms-course-hero__back { color:#c0d7de; font-size:.85rem; text-decoration:none; }
.ff-reader .lms-course-hero__eyebrow { color:#99cfca; margin:22px 0 8px; font-size:.73rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
html[data-skin] .ff-reader .lms-course-hero h1 { color:#f0f7fa; font-size:clamp(1.7rem,3vw,2.35rem); line-height:1.15; letter-spacing:-.035em; font-weight:750; margin:0; }
.ff-reader .lms-course-hero__description { color:#c0d7de; max-width:56ch; font-size:.94rem; line-height:1.6; margin:14px 0 20px; }
.ff-reader .lms-course-hero__facts { display:flex; flex-wrap:wrap; gap:7px 18px; font-size:.8rem; color:#d6e6eb; }
.ff-reader .lms-course-hero__facts strong { color:#fff; }
.ff-reader .lms-course-hero__art { width:100%; height:100%; object-fit:cover; object-position:center; align-self:stretch; mask-image:linear-gradient(90deg,transparent,#000 24%); }
html[data-skin] .ff-reader .lms-free-banner { max-width:1160px; width:auto; margin:14px auto 0; padding:13px 20px; background:var(--primary-bg); color:var(--primary); border:1px solid var(--border); border-radius:12px; text-align:left; font-size:.86rem; justify-content:flex-start; }
.ff-reader .lms-free-banner__detail { color:var(--dark-soft); }
html[data-skin] .ff-reader .lms-modules { max-width:1160px; padding:0; margin:26px auto; }
.ff-reader .lms-section-heading { display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:8px; margin-bottom:16px; }
html[data-skin] .ff-reader .lms-section-heading h2 { font-size:1.3rem; font-weight:750; margin:0; }
.ff-reader .lms-section-heading>span { font-size:.82rem; color:var(--dark-soft); }
html[data-skin] .ff-reader .lms-modules__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
html[data-skin] .ff-reader .lms-module-card { border:1px solid var(--border); border-radius:16px; background:var(--card-bg); box-shadow:var(--shadow-sm); padding:22px; text-align:left; color:var(--dark); text-decoration:none; min-width:0; transition:border-color .18s,box-shadow .18s,transform .18s; }
html[data-skin] .ff-reader .lms-module-card:hover { transform:translateY(-3px); border-color:var(--primary); box-shadow:var(--shadow-md); }
html[data-skin] .ff-reader .lms-module-card__number { top:20px; right:20px; font-size:.8rem; font-weight:700; color:var(--dark-soft); opacity:1; background:var(--gray-lighter); border-radius:7px; padding:2px 7px; }
html[data-skin] .ff-reader .lms-module-card__icon { display:block; margin-bottom:16px; height:40px; }
.ff-reader .lms-module-card__icon img { width:40px; height:40px; }
html[data-skin] .ff-reader .lms-module-card__title { font-size:1.05rem; line-height:1.35; font-weight:700; margin:0 0 10px; }
.ff-reader .lms-module-card__desc:empty { display:none; }
html[data-skin] .ff-reader .lms-module-card__desc { color:var(--dark-soft); font-size:.87rem; line-height:1.6; }
html[data-skin] .ff-reader :is(.lms-module-card__free-badge,.lms-module-card__free-badge--soon) { background:var(--primary-bg); color:var(--primary); font-size:.72rem; font-weight:600; padding:4px 9px; border:0; border-radius:6px; letter-spacing:0; text-transform:none; }
.ff-reader .lms-module-card__bas { margin-top:18px; padding-top:12px; border-top:1px solid var(--border); }
html[data-skin] .ff-reader .lms-module-card__meta { gap:6px 12px; font-size:.78rem; color:var(--dark-soft); }
.ff-reader .lms-course-tools { max-width:1160px; margin:32px auto; padding-top:20px; border-top:1px solid var(--border); }
html[data-skin] .ff-reader :is(.lms-profile-section,.lms-cert-strip,.lms-two-ways,.lms-reading-choice,.lms-programme) { max-width:1160px; margin:16px auto; border-radius:14px; }
html[data-skin] .ff-reader :is(.lms-profile-section--collapsible,.lms-cert-strip,.lms-reading-choice,.lms-two-ways) { padding:18px 22px; background:var(--card-bg); border:1px solid var(--border); box-shadow:none; }
.ff-reader .lms-profile-toggle { font-size:.88rem; }
.ff-reader .lms-programme { margin-bottom:40px; }
.ff-reader .lms-programme__summary { gap:12px; padding:15px 18px; }
.ff-reader .lms-programme__name { font-size:.92rem; }
.ff-reader .lms-programme__meta { white-space:nowrap; }
html[data-skin] .ff-reader :is(.lms-ring__trait,.lms-modring__fill) { stroke:var(--secondary); }

/* Catalogue : quatre portes d'entrée dans le même univers dessiné. */
html[data-skin] .ff-reader .lms-hero { background:linear-gradient(120deg,#163b50,#102c3b); }
html[data-skin] .ff-reader .lms-hero--compact { padding:40px 24px; }
html[data-skin] .ff-reader #courses { padding:28px 24px 42px !important; background:var(--bg) !important; }
.ff-reader #courses>div { max-width:1160px !important; }
.ff-reader #courses>div>p { margin-bottom:22px !important; }
html[data-skin] .ff-reader #courses .lms-modules__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
html[data-skin] .ff-reader .lms-catalog-card { display:grid; grid-template-columns:36% 1fr; padding:0; overflow:hidden; }
.ff-reader .lms-catalog-card__art { background:#0b3245; overflow:hidden; }
.ff-reader .lms-catalog-card__art img { width:100%; height:100%; object-fit:cover; }
.ff-reader .lms-catalog-card__body { padding:22px; min-width:0; overflow-wrap:anywhere; }
.ff-reader .lms-catalog-card__eyebrow { display:block; font-size:.68rem; color:var(--primary); font-weight:700; margin-bottom:10px; }
.ff-reader .lms-catalog-card__foot { display:flex; flex-wrap:wrap; gap:10px; justify-content:space-between; margin-top:18px; padding-top:12px; border-top:1px solid var(--border); font-size:.73rem; color:var(--primary); font-weight:600; }

/* Sommaire : deux colonnes, titre entier puis petites métadonnées. */
html[data-skin] .ff-reader .lms-sidebar { width:304px; background:var(--card-bg); border-right:1px solid var(--border); padding-bottom:24px; }
html[data-skin] .ff-reader .lms-sidebar__header { padding:20px 18px 18px; }
.ff-reader .lms-sidebar__back { text-decoration:none; font-size:.78rem; margin-bottom:18px; }
html[data-skin] .ff-reader .lms-sidebar__title { font-size:.98rem; line-height:1.4; font-weight:700; }
html[data-skin] .ff-reader .lms-sidebar__progress { background:none; font-size:.73rem; margin-top:6px; line-height:1.4; }
.ff-reader .lms-sidebar__headrow { gap:12px; }
.ff-reader .lms-modring { width:44px; height:44px; }
.ff-reader .lms-modring svg { width:44px; height:44px; }
.ff-reader .lms-sidebar__chapters { padding:10px; display:grid; gap:4px; }
html[data-skin] .ff-reader .lms-sidebar__chapter { padding:0; margin:0; border:1px solid transparent; border-radius:12px; background:none; display:block; opacity:1; }
.ff-reader .lms-sidebar__chapter-link { display:grid; grid-template-columns:28px minmax(0,1fr); align-items:start; gap:11px; padding:13px 10px; text-decoration:none; color:var(--dark); }
.ff-reader .lms-sidebar__chapter-copy { min-width:0; }
html[data-skin] .ff-reader .lms-sidebar__chapter-icon { width:28px; height:28px; border:1px solid var(--border); background:var(--gray-lighter); border-radius:9px; color:var(--dark-soft); font-size:.75rem; font-weight:650; }
html[data-skin] .ff-reader .lms-sidebar__chapter-title { display:block; font-size:.84rem; font-weight:500; line-height:1.5; color:var(--dark); }
.ff-reader .lms-sidebar__chapter-meta { display:flex; flex-wrap:wrap; align-items:center; gap:5px 9px; margin-top:6px; line-height:1.3; }
html[data-skin] .ff-reader .lms-sidebar__duration { font-size:.68rem; padding:0; margin:0; color:var(--dark-soft); }
html[data-skin] .ff-reader :is(.lms-sidebar__free-badge,.lms-sidebar__current-badge) { display:inline; width:auto; margin:0; padding:2px 5px; background:var(--primary-bg); color:var(--primary); border-radius:4px; font-size:.64rem; line-height:1.4; letter-spacing:0; font-weight:650; text-transform:none; }
html[data-skin] .ff-reader .lms-sidebar__chapter--active { background:var(--primary-bg); border-color:var(--border); }
html[data-skin] .ff-reader .lms-sidebar__chapter--active .lms-sidebar__chapter-title { font-weight:700; }
html[data-skin] .ff-reader .lms-sidebar__chapter--active .lms-sidebar__chapter-icon { background:#1b5364; color:#fff; border-color:#1b5364; }
html[data-skin] .ff-reader .lms-sidebar__chapter--completed .lms-sidebar__chapter-icon { background:var(--callout-tip-bg); color:var(--success); border-color:var(--success); }
.ff-reader .lms-sidebar__chapter-link:hover { background:var(--primary-bg); border-radius:11px; }
html[data-skin] .ff-reader .lms-content { margin-left:304px; background:var(--bg); min-width:0; }
html[data-skin] .ff-reader .lms-content__inner { max-width:900px; padding:32px clamp(20px,4vw,56px) 64px; }
html[data-skin] .ff-reader .lms-breadcrumb { background:var(--card-bg); border-bottom:1px solid var(--border); padding:14px 28px; font-size:.78rem; }
html[data-skin] .ff-reader :is(.block-text,.block-accordion__content,.block-callout__text) { font-size:1rem; line-height:1.8; }
html[data-skin] .ff-reader .block-heading h2 { font-size:1.55rem; font-weight:750; line-height:1.3; margin:28px 0 14px; }
html[data-skin] .ff-reader :is(.block-callout,.block-objectives,.block-quiz,.block-exercise,.block-sorting,.block-matching,.block-scenario,.block-flashcards,.block-fill-blank) { border-radius:16px; box-shadow:none; }
html[data-skin] .ff-reader .block-callout { border:1px solid var(--border); border-left:3px solid var(--primary); padding:20px; }
html[data-skin] .ff-reader .block-callout--warning { border-left-color:#b29a62; background:var(--callout-warning-bg); }
html[data-skin] .ff-reader .block-callout--tip { border-left-color:var(--success); }
html[data-skin] .ff-reader .block-callout--danger { border-left-color:var(--danger); }
.ff-reader .block-callout__title { margin-bottom:6px; }
html[data-skin] .ff-reader .block-quiz { border:1px solid var(--quiz-border); background:var(--card-bg); padding:24px; }
html[data-skin] .ff-reader .block-quiz__option { border-radius:10px; padding:14px 16px; }
.ff-reader .block-accordion__item { border-radius:12px; overflow:hidden; margin-bottom:8px; }
.ff-reader .block-accordion__header { padding:18px; }
html[data-skin] .ff-reader :is(.block-image__img,.block-video__wrapper,.block-table) { border-radius:14px; }
.ff-reader .block-tabs__nav { gap:5px; padding:5px; background:var(--gray-lighter); border-radius:12px; }
html[data-skin] .ff-reader .block-tabs__tab { border-radius:9px; text-transform:none; letter-spacing:0; }
html[data-skin] .ff-reader :is(.lms-modal__content,.lms-modal__card,.lms-profile-page__section,.lms-dashboard__card,.lms-onboarding__card) { border-radius:20px; border:1px solid var(--border); box-shadow:var(--shadow-md); }
html[data-skin] .ff-reader .lms-profile-page__section { padding:22px; background:var(--card-bg); margin-bottom:20px; }
html[data-skin] .ff-reader .lms-profile-page__section h2 { font-size:1.25rem; font-weight:700; margin-bottom:16px; }
.ff-reader .lms-grade { box-shadow:none; border:1px solid var(--border); }
html[data-skin] .ff-reader :is(input,select,textarea) { border-radius:10px; }
html[data-skin] .ff-reader .lms-footer { background:var(--card-bg); border-top:1px solid var(--border); }
.ff-reader .lms-footer p { color:var(--dark-soft); }

.ff-reader .lms-chap-head { display:block; margin-bottom:22px; }
html[data-skin] .ff-reader .lms-chap-head__title { font-size:clamp(1.6rem,2.4vw,2rem); font-weight:750; line-height:1.3; letter-spacing:-.025em; margin:0 0 12px; }
.ff-reader .lms-chap-head__tools { display:flex; justify-content:flex-end; gap:8px; }
.ff-reader :is(.lms-focus-btn,.lms-merlin-margin button) { border:1px solid var(--border); border-radius:10px; color:var(--dark-soft); background:var(--card-bg); font:inherit; font-size:.8rem; padding:8px 12px; }
.ff-reader .chv { border-radius:16px; box-shadow:var(--shadow-sm); }
.ff-reader .chv-play { background:#dcefeb; width:56px; height:56px; box-shadow:0 4px 20px #071b3355; }
.ff-reader .chv-badge { color:#d3e6eb; background:#102c3beb; border:1px solid #406575; }
@media(min-width:1280px) {
  html[data-skin] .ff-reader .lms-content__inner { max-width:900px; width:100%; min-width:0; }
  .ff-reader .lms-content-rail { flex-basis:200px; width:200px; padding-right:16px; }
  .ff-reader .lms-content--has-rail .lms-content-row { gap:12px; }
}
html.lms-focus .ff-reader .lms-content { margin-left:0; }
html.lms-focus.lms-focus-plus .ff-reader .lms-content__inner { max-width:68ch; }
@media(max-width:1208px) { .ff-reader :is(.lms-course-hero,.lms-free-banner,.lms-modules,.lms-course-tools,.lms-programme) { margin-left:24px !important; margin-right:24px !important; } }
@media(max-width:1024px) {
  html[data-skin] .ff-reader .lms-content { margin-left:0; }
  html[data-skin] .ff-reader .lms-modules__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ff-reader .lms-course-hero { grid-template-columns:1.4fr .8fr; }
  .ff-reader .lms-course-hero__copy { padding:24px; }
  html[data-skin] .ff-reader .lms-catalog-card { grid-template-columns:1fr; }
  .ff-reader .lms-catalog-card__art { height:170px; }
}
@media(max-width:600px) {
  .ff-reader :is(.lms-course-hero,.lms-free-banner,.lms-modules,.lms-course-tools,.lms-programme) { margin-left:14px !important; margin-right:14px !important; }
  .ff-reader .lms-course-hero { grid-template-columns:1fr; }
  .ff-reader .lms-course-hero__copy { padding:22px; }
  .ff-reader .lms-course-hero__art { height:140px; object-position:center 48%; mask-image:linear-gradient(0deg,#000 60%,transparent); }
  .ff-reader .lms-course-hero__eyebrow { margin-top:16px; }
  html[data-skin] .ff-reader :is(.lms-modules__grid,#courses .lms-modules__grid) { grid-template-columns:1fr; }
  html[data-skin] .ff-reader .lms-module-step { padding:18px; }
  .ff-reader .lms-module-card__icon { float:left; margin-right:14px; }
  .ff-reader .lms-module-step .lms-module-card__title { margin-right:24px; min-height:40px; }
  .ff-reader .lms-module-card__bas { clear:both; }
  .ff-reader .lms-course-tools>section,.ff-reader .lms-course-tools>div { padding:16px; }
  .ff-reader .lms-programme__summary { flex-wrap:wrap; gap:8px; }
  .ff-reader .lms-programme__name { min-width:160px; }
  html[data-skin] .ff-reader .lms-content__inner { padding:22px 18px 96px; }
  html[data-skin] .ff-reader .block-quiz { padding:18px; }
  .ff-reader .lms-programme__head { flex-wrap:wrap; gap:12px; }
  .ff-reader .lms-sidebar { max-width:calc(100vw - 50px); }
}
@media(prefers-reduced-motion:reduce) { .ff-reader .lms-module-card:hover { transform:none; } }
@media print { .ff-reader .lms-course-hero { background:white; color:black; } .ff-reader .lms-course-hero__art { display:none; } }

/* Les escales dessinées constituent le repère commun aux deux modes. */
html[data-skin] .ff-reader .lms-module-step {
  display:flex; flex-direction:column; padding:0; overflow:hidden;
  border:1px solid var(--border); border-radius:20px; background:var(--card-bg);
  box-shadow:0 4px 18px #102c3b06; transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
html[data-skin] .ff-reader .lms-module-step:hover {
  transform:translateY(-3px); border-color:var(--secondary); box-shadow:0 12px 28px #102c3b12;
}
.ff-reader .lms-module-scene { position:relative; overflow:hidden; background:#0b3245; aspect-ratio:2.15; flex-shrink:0; }
.ff-reader .lms-module-scene img { width:100%; height:100%; object-fit:contain; object-position:center; transition:transform .35s ease; }
.ff-reader .lms-header__logo { color:var(--dark); text-decoration:none; }
.ff-reader .ff-beta { display:inline-block; margin-left:7px; padding:2px 7px; border-radius:6px; background:var(--primary-bg); color:var(--primary); font-size:.58em; font-weight:700; vertical-align:middle; }
.ff-reader .lms-module-step:hover .lms-module-scene img { transform:scale(1.035); }
html[data-skin] .ff-reader .lms-module-scene .lms-module-card__number {
  position:absolute; top:12px; left:12px; right:auto; width:34px; height:34px;
  display:grid; place-items:center; padding:0; border:1px solid #91c2c766;
  background:#102c3bee; color:#e5f4f2; border-radius:11px; font-size:.8rem;
}
.ff-reader .lms-module-step__body { display:flex; flex:1; flex-direction:column; align-items:flex-start; padding:22px; min-width:0; }
html[data-skin] .ff-reader .lms-module-step .lms-module-card__title { font-size:1.12rem; line-height:1.35; margin:0 0 10px; min-height:0; }
html[data-skin] .ff-reader .lms-module-step .lms-module-card__desc { margin:0 0 18px; font-size:.88rem; line-height:1.6; flex:none; }
.ff-reader .lms-module-step .lms-module-card__desc:empty { display:none; }
html[data-skin] .ff-reader .lms-module-step .lms-module-card__free-badge { margin-top:auto; }
.ff-reader .lms-module-step .lms-module-card__bas { width:100%; margin-top:18px; padding-top:14px; align-items:center; }
.ff-reader .lms-module-step__enter { display:flex; justify-content:space-between; gap:12px; width:100%; padding-top:14px; margin-top:14px; border-top:1px solid var(--border); font-size:.81rem; font-weight:700; color:var(--primary); }
.ff-reader .lms-module-step__enter>span { font-size:1.15rem; line-height:1; }
/* Un module validé garde son illustration, avec des repères de progression explicites. */
html[data-skin] .ff-reader .lms-module-step:has(.lms-ring--fini) {
  border-color:var(--reader-done-line);
  box-shadow:0 4px 18px #102c3b06,inset 0 0 0 1px var(--reader-done-line);
}
.ff-reader .lms-module-step:has(.lms-ring--fini) .lms-module-scene::after {
  content:""; position:absolute; inset:auto 0 0; height:3px; background:var(--reader-mint);
}
html[data-skin] .ff-reader .lms-module-step:has(.lms-ring--fini) .lms-module-card__number {
  background:var(--reader-mint); color:var(--reader-mint-ink); border-color:var(--reader-mint);
}
.ff-reader .lms-module-step:has(.lms-ring--fini) .lms-module-card__meta>span:last-child {
  align-self:flex-start; padding:3px 9px; border:1px solid var(--reader-done-line);
  border-radius:7px; background:var(--reader-done-bg); color:var(--reader-done-ink); font-weight:700;
}
.ff-reader .lms-module-step .lms-ring--fini {
  flex-shrink:0; border-radius:50%; background:var(--reader-done-bg); color:var(--reader-done-ink);
}
.ff-reader .lms-module-step .lms-ring__txt { color:var(--primary); }
.ff-reader .lms-module-step .lms-ring--fini .lms-ring__trait { stroke:var(--reader-done-ink); }
.ff-reader .lms-module-step .lms-ring--fini .lms-ring__txt { color:var(--reader-done-ink); }
.ff-reader .lms-module-step:has(.lms-ring--fini) .lms-module-step__enter {
  padding:10px 12px; border:1px solid var(--reader-done-line); border-radius:9px;
  background:var(--reader-done-bg); color:var(--reader-done-ink);
}
.ff-reader .ff-module-miniature { object-fit:cover; border-radius:10px; vertical-align:middle; background:#0b3245; }
.ff-reader .ff-free-mark { width:24px; height:24px; display:inline-grid; place-items:center; background:var(--card-bg); border-radius:50%; color:var(--success); flex-shrink:0; }
html[data-skin] .ff-reader .lms-profile-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(145px,1fr)); gap:12px; }
html[data-skin] .ff-reader .lms-profile-card {
  min-width:0; min-height:144px; padding:14px 12px; border:1px solid var(--border); border-radius:16px;
  background:var(--card-bg); color:var(--dark); box-shadow:none; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
}
html[data-skin] .ff-reader :is(.lms-profile-card:hover,.lms-profile-card--active) { background:var(--primary-bg); border-color:var(--secondary); }
.ff-reader .lms-profile-card__icon { display:grid; place-items:center; width:76px; height:76px; background:none; margin:0; }
.ff-reader .lms-profile-card__icon img { width:76px !important; height:76px !important; object-fit:contain; filter:drop-shadow(0 3px 2px #102c3b12); }
html[data-skin] .ff-reader .lms-profile-card__label { font-size:.82rem; line-height:1.35; text-align:center; }
.ff-reader #rgpdBanner button:first-child { background:#cbe7df !important; color:#143f4f !important; border-radius:10px; }
.ff-reader #rgpdBanner :is(a,summary) { color:#b5ded8 !important; }
.ff-reader .rgpd-in-dialog>div,.ff-reader .rgpd-in-dialog>div>div{min-width:0!important;gap:12px!important}
.ff-reader .rgpd-in-dialog button{min-height:44px}
.ff-reader .lms-first-connection{text-align:left;font-size:.9rem}
.ff-reader .lms-first-connection summary{min-height:32px}

/* Fin de chapitre : mêmes matières marine et menthe que l'accueil. */
html[data-skin] .ff-reader .lms-chapter-nav {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px;
  align-items:stretch; margin-top:32px; padding-top:24px;
}
html[data-skin] .ff-reader .lms-chapter-nav:has(.lms-chapter-nav__btn--prev):has(.lms-chapter-nav__btn--next) { grid-template-columns:repeat(3,minmax(0,1fr)); }
.ff-reader .lms-chapter-nav__spacer { display:none; }
html[data-skin] .ff-reader .lms-chapter-nav__btn {
  display:flex; align-items:center; justify-content:center; gap:10px; min-height:52px;
  min-width:0; max-width:none; margin:0; padding:13px 16px; border:1px solid var(--border);
  border-radius:11px; font:inherit; font-size:.9rem; font-weight:650; line-height:1.4;
  white-space:normal; overflow-wrap:anywhere; text-align:center; text-decoration:none;
  box-shadow:none; transition:background .18s ease,border-color .18s ease;
}
.ff-reader .lms-action-icon { display:inline-block; flex:0 0 18px; vertical-align:middle; }
html[data-skin] .ff-reader .lms-chapter-nav__btn--prev { background:var(--card-bg); color:var(--dark); }
html[data-skin] .ff-reader .lms-chapter-nav__btn--prev:hover { background:var(--primary-bg); border-color:var(--secondary); }
html[data-skin] .ff-reader .lms-chapter-nav__btn--complete {
  background:var(--reader-mint) !important; color:var(--reader-mint-ink) !important; border-color:#a3c9bd;
}
html[data-skin] .ff-reader .lms-chapter-nav__btn--complete:hover { background:var(--reader-mint-hover) !important; }
html[data-skin] .ff-reader .lms-chapter-nav__btn--next {
  background:var(--reader-action-bg) !important; color:var(--reader-action-ink) !important; border-color:#497882;
}
html[data-skin] .ff-reader .lms-chapter-nav__btn--next:hover { background:var(--reader-action-hover) !important; }
html[data-skin] .ff-reader .lms-chapter-nav__btn:disabled { opacity:1; cursor:wait; }
html[data-skin] .ff-reader .lms-chapter-nav .lms-chapter-nav__btn--done {
  background:var(--reader-done-bg) !important; color:var(--reader-done-ink) !important; border-color:var(--reader-done-line); cursor:default;
}
html[data-skin] .ff-reader .lms-chapter-nav .lms-chapter-nav__btn--pending {
  background:var(--reader-pending-bg) !important; color:var(--reader-pending-ink) !important; border-color:var(--reader-pending-line); cursor:default;
}
html[data-skin] .ff-reader .lms-chapter-nav__after { gap:10px; margin:14px 0 0; }
html[data-skin] .ff-reader :is(.lms-chapter-nav__btn--back-module,.lms-complete-undo) {
  min-height:44px; margin:0; padding:10px 14px; border:1px solid var(--border); border-radius:10px;
  background:var(--card-bg); color:var(--dark-soft); font-size:.82rem; font-weight:600; text-decoration:none;
}
html[data-skin] .ff-reader :is(.lms-chapter-nav__btn--back-module,.lms-complete-undo):hover { background:var(--primary-bg); color:var(--dark); }
html[data-skin] .ff-reader .lms-cf-cta {
  display:flex; flex-wrap:wrap; align-items:center; gap:16px; margin:24px 0 0; padding:22px 24px;
  border:1px solid #426674; border-radius:18px; background:linear-gradient(120deg,#123d4c,#102b3b);
  color:#bfd5df; text-decoration:none; box-shadow:none;
}
.ff-reader .lms-cf-cta__mascot { width:60px; height:72px; flex:0 0 60px; object-fit:contain; }
.ff-reader .lms-cf-cta__copy { display:grid; gap:5px; flex:1 1 220px; min-width:0; font-size:.88rem; line-height:1.6; }
.ff-reader .lms-cf-cta__copy strong { color:#f1f8f7; font-size:1rem; line-height:1.4; }
.ff-reader .lms-cf-cta__action {
  display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:46px;
  padding:12px 16px; border:1px solid #b9d9cf; border-radius:10px;
  background:var(--reader-mint); color:var(--reader-mint-ink); font-size:.85rem; font-weight:750; line-height:1.4;
}
.ff-reader .lms-cf-cta:hover .lms-cf-cta__action { background:var(--reader-mint-hover); }
.ff-reader .lms-module-download { display:flex; justify-content:center; margin:24px 0 8px; }
html[data-skin] .ff-reader .lms-module-download__link {
  display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:12px 16px;
  min-height:46px; border:1px solid var(--border); border-radius:11px; background:var(--card-bg);
  color:var(--primary); font-size:.85rem; font-weight:600; line-height:1.5; text-align:center; text-decoration:none;
}
.ff-reader .lms-module-download__link:hover { background:var(--primary-bg); }
html[data-skin] .ff-reader :is(.lms-top,.bug-reporter__btn,.merlin-fab) {
  background:#163d4e; color:#d4ebe3; border:1px solid #648c93; box-shadow:0 5px 16px #061a2533;
}
html[data-skin] .ff-reader :is(.lms-top,.bug-reporter__btn,.merlin-fab):hover { background:#22576a; color:#f0faf7; }
html[data-skin] .ff-reader .merlin-panel__head { background:#123b4c; color:#f0f7f6; }
html[data-skin] .ff-reader .merlin-panel__head img { border-color:#648c93; }
html[data-skin] .ff-reader .merlin-input button { background:var(--reader-mint); color:var(--reader-mint-ink); box-shadow:none; }
html[data-skin] .ff-reader .block-video__play { background:var(--reader-mint); color:var(--reader-mint-ink); box-shadow:0 4px 20px #061a2533; }
html[data-skin] .ff-reader :is(.lms-chapter-nav__btn,.lms-complete-undo,.lms-cf-cta,.lms-module-download__link,.lms-top,.bug-reporter__btn,.merlin-fab):focus-visible {
  outline:3px solid var(--secondary); outline-offset:4px;
}
@media(max-width:768px) {
  html[data-skin] .ff-reader .lms-chapter-nav { gap:8px; margin-top:32px; padding:10px 12px calc(10px + env(safe-area-inset-bottom)); }
  html[data-skin] .ff-reader .lms-chapter-nav__btn { padding:11px 12px; font-size:.85rem; }
}
@media(max-width:560px) {
  html[data-skin] .ff-reader .lms-chapter-nav { grid-template-columns:minmax(0,1fr) 48px; }
  html[data-skin] .ff-reader .lms-chapter-nav:has(.lms-chapter-nav__btn--prev) { grid-template-columns:48px minmax(0,1fr); }
  html[data-skin] .ff-reader .lms-chapter-nav:has(.lms-chapter-nav__btn--prev):has(.lms-chapter-nav__btn--next) { grid-template-columns:48px minmax(0,1fr) 48px; }
  html[data-skin] .ff-reader .lms-chapter-nav__btn { gap:7px; padding:10px; }
  html[data-skin] .ff-reader :is(.lms-chapter-nav__btn--prev,.lms-chapter-nav__btn--next) { font-size:1.15rem; }
  html[data-skin] .ff-reader .lms-cf-cta { gap:12px; padding:18px; }
  .ff-reader .lms-cf-cta__mascot { width:42px; height:58px; flex-basis:42px; }
  .ff-reader .lms-cf-cta__copy { flex-basis:150px; font-size:.83rem; }
  .ff-reader .lms-cf-cta__copy strong { font-size:.93rem; }
  .ff-reader .lms-cf-cta__action { width:100%; }
}
@media(max-width:374px) { .ff-reader .lms-chapter-nav__btn--complete .lms-action-icon { display:none; } }
@media(prefers-reduced-motion:reduce) { html[data-skin] .ff-reader .lms-chapter-nav__btn { transition:none; } }
@media print { .ff-reader .lms-cf-cta { display:none !important; } }
@media(min-width:1440px) {
  .ff-reader :is(.lms-course-hero,.lms-free-banner,.lms-modules,.lms-course-tools,.lms-programme) { max-width:1280px !important; }
  .ff-reader .lms-module-scene { aspect-ratio:2; }
}
@media(max-width:600px) {
  .ff-reader .lms-module-scene { aspect-ratio:2.2; }
  .ff-reader .lms-module-step__body { padding:18px; }
  html[data-skin] .ff-reader .lms-profile-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ff-reader .lms-free-banner { flex-wrap:wrap; gap:8px; }
}
@media(prefers-reduced-motion:reduce) {
  html[data-skin] .ff-reader .lms-module-step,.ff-reader .lms-module-scene img { transition:none; }
  html[data-skin] .ff-reader .lms-module-step:hover,.ff-reader .lms-module-step:hover .lms-module-scene img { transform:none; }
}

/* Lecture centrée : le sommaire et les chapitres restent proches sur un écran large. */
@media(min-width:1480px) {
  html[data-skin] .ff-reader .lms-course { max-width:1480px; margin-inline:auto; position:relative; }
  html[data-skin] .ff-reader .lms-sidebar { left:calc((100vw - 1480px)/2); }
}
html[data-skin] .ff-reader .lms-content-row { max-width:1160px; margin-inline:auto; }
html[data-skin] .ff-reader .lms-content__inner { width:100%; }
html[data-skin] .ff-reader .block-image__img { display:block; width:auto; max-width:100%; max-height:480px; object-fit:contain; margin-inline:auto; }
html.lms-focus .ff-reader .lms-course { max-width:1160px; }


/* Références fournies par Vincent : un aperçu compact, développable. */
.lms-references { max-width:940px; margin:36px auto; padding:24px; text-align:center; color:var(--dark); }
.lms-references h2 { font-size:1.4rem; margin:0 0 10px; }
.lms-references p { color:var(--dark-soft); }
.lms-references details { margin-top:18px; text-align:left; border:1px solid var(--border); border-radius:16px; overflow:hidden; background:var(--card-bg); }
.lms-references summary { padding:16px 20px; cursor:pointer; font-weight:600; }
.lms-references summary:focus-visible { outline:3px solid var(--secondary); outline-offset:-4px; }
.lms-references img { display:block; width:100%; height:auto; padding:16px; box-sizing:border-box; background:#fff; }

/* Conclusions à compléter : réponses locales, lisibles dans les deux thèmes. */
.retenir__choice { max-width:100%; min-height:44px; margin:6px 4px; padding:8px 10px; border:1px solid var(--border); border-radius:9px; color:var(--dark); background:var(--card-bg); font-family:inherit; font-weight:600; font-size:.9rem; line-height:1.4; }
.retenir__choice:focus-visible { outline:3px solid var(--secondary); outline-offset:3px; }
.retenir__choice[aria-invalid="true"] { border-color:#b4564d; }
.retenir__choice[data-correct="true"] { border-color:var(--secondary); }
.retenir__feedback { display:block; margin-top:4px; color:var(--dark-soft); font-size:.85rem; }
.retenir__progress { color:var(--primary); font-weight:600; font-size:.9rem; margin-top:16px; }

.lms-block-anchor { display:block; height:0; overflow:hidden; scroll-margin-top:100px; }

/* Report on the left, Merlin and return to top on the right.
   Explicit sizes also keep generic button/skin rules out of the controls. */
.ff-reader { --reader-dock-right:20px; --reader-dock-left:calc(20px + env(safe-area-inset-left,0px)); --reader-dock-bottom:calc(20px + env(safe-area-inset-bottom,0px)); }
.ff-reader #lmsMerlinMargin {
  display:flex; position:fixed; inset:auto var(--reader-dock-right) var(--reader-dock-bottom) auto;
  z-index:8000; width:56px; height:56px; margin:0; padding:0; align-items:center;
}
.ff-reader:has(#lmsMerlinMargin) #merlinFab { display:none; }
.ff-reader :is(#merlinFab,#lmsMerlinBtn,#lmsMerlinRestore) {
  box-sizing:border-box; width:56px; height:56px; min-width:56px; min-height:56px; padding:3px;
  border:1px solid #648c93; border-radius:50%; background:#163d4e; color:#d4ebe3;
  display:grid; place-items:center; box-shadow:0 5px 16px #061a2533; cursor:pointer;
  animation:none; transform:none;
}
.ff-reader #merlinFab { right:var(--reader-dock-right); bottom:var(--reader-dock-bottom); }
.ff-reader :is(#lmsMerlinBtn,#lmsMerlinRestore) img { display:block; width:100%; height:100%; object-fit:contain; }
.ff-reader #lmsMerlinRestore { width:44px; height:44px; min-width:44px; min-height:44px; opacity:.8; margin:6px; }
.ff-reader #lmsMerlinRestore img { width:28px; height:28px; }
.ff-reader #lmsTop {
  right:calc(var(--reader-dock-right) + 6px); bottom:calc(var(--reader-dock-bottom) + 68px);
  width:44px; height:44px; min-width:44px; min-height:44px; padding:0; border-radius:50%; z-index:7900;
}
html body.ff-reader #bugReporterWidget {
  left:var(--reader-dock-left) !important; right:auto !important; bottom:var(--reader-dock-bottom) !important;
  transform:none; opacity:1; z-index:9000;
}
.ff-reader #bugReporterBtn {
  box-sizing:border-box; width:44px; height:44px; min-width:44px; min-height:44px; padding:0;
  display:grid; place-items:center; gap:0; border-radius:50%; transform:none;
}
.ff-reader #bugReporterBtn .bug-reporter__btn-label { display:none; }
.ff-reader #bugReporterWidget.bug-reporter--open #bugReporterBtn { display:none; }
.ff-reader #bugReporterWidget .bug-reporter__card {
  left:0; right:auto; width:min(340px,calc(100vw - 36px)); max-height:calc(100dvh - 110px);
  overflow-y:auto; box-sizing:border-box; border-radius:16px; background:var(--card-bg); color:var(--dark); border-color:var(--border);
}
.ff-reader #bugReporterWidget :is(.bug-reporter__title,.bug-reporter__context-label) { color:var(--dark); }
.ff-reader #bugReporterWidget :is(.bug-reporter__hint,.bug-reporter__context) { color:var(--dark-soft); }
.ff-reader #bugReporterWidget :is(.bug-reporter__textarea,.bug-reporter__category,.bug-reporter__context) { background:var(--input-bg); color:var(--dark); border-color:var(--border); }
.ff-reader #bugReporterWidget .bug-reporter__close { min-width:44px; min-height:44px; color:var(--dark); }
.ff-reader #bugReporterWidget .bug-reporter__submit { min-height:44px; background:var(--reader-mint); color:var(--reader-mint-ink); }
.ff-reader #lmsMerlinTools {
  box-sizing:border-box; position:absolute; right:calc(100% + 12px); bottom:0; width:min(300px,calc(100vw - 112px));
  max-height:calc(100dvh - 180px); overflow-y:auto; padding:16px; border:1px solid var(--border); border-radius:16px;
  background:var(--card-bg); color:var(--dark); box-shadow:0 12px 36px #061a2526; text-align:left;
}
.ff-reader #lmsMerlinTools[hidden] { display:none; }
.ff-reader .lms-merlin-tools__head { display:flex; align-items:center; gap:8px; font-size:.95rem; line-height:1.4; }
.ff-reader .lms-merlin-tools__head strong { flex:1; }
.ff-reader #lmsMerlinTools p { margin:6px 0 14px; color:var(--dark-soft); font-size:.85rem; line-height:1.5; }
.ff-reader #lmsMerlinTools button {
  box-sizing:border-box; position:static; display:block; width:100%; height:auto; min-height:44px; margin:6px 0 0; padding:10px 12px;
  border:1px solid var(--border); border-radius:9px; background:var(--input-bg); color:var(--dark); opacity:1;
  font:600 .82rem/1.4 Inter,system-ui,sans-serif; text-align:left; cursor:pointer;
}
.ff-reader #lmsMerlinTools #lmsMerlinAsk { background:var(--reader-mint); color:var(--reader-mint-ink); border-color:#b9d9cf; }
.ff-reader #lmsMerlinTools #lmsMerlinToolsClose { width:44px; min-width:44px; height:44px; margin:0 -6px 0 0; padding:0; border:0; background:transparent; text-align:center; font-size:1.3rem; }
.ff-reader #lmsMerlinTools #lmsMerlinHide { background:transparent; color:var(--dark-soft); border-color:transparent; }
.ff-reader #lmsMerlinBubble { position:static; max-width:none; margin:12px 0; padding:12px; border-radius:10px; background:var(--primary-bg); box-shadow:none; }
.ff-reader #merlinPanel { right:var(--reader-dock-right); bottom:var(--reader-dock-bottom); width:min(390px,calc(100vw - 40px)); max-height:calc(100dvh - 110px); border:1px solid var(--border); z-index:9500; }
.ff-reader #merlinPanel .merlin-panel__icons { flex-wrap:nowrap; gap:4px; }
.ff-reader #merlinPanel .merlin-panel__icon { width:44px; height:44px; min-width:44px; min-height:44px; }
.ff-reader:has(#merlinPanel) :is(#lmsMerlinMargin,#merlinFab,#lmsTop),
.ff-reader:has(.bug-reporter--open) :is(#lmsMerlinMargin,#merlinFab,#lmsTop),
.ff-reader:has(.lms-user-menu__dropdown--open,.lms-onboarding,.lms-modal-overlay) :is(#lmsMerlinMargin,#merlinFab,#lmsTop) { visibility:hidden; }
.ff-reader:has(.lms-modal [aria-modal="true"]) :is(#lmsMerlinMargin,#merlinFab,#lmsTop,#bugReporterWidget) { visibility:hidden; }
.ff-reader :is(#merlinFab,#lmsMerlinBtn,#lmsMerlinRestore,#lmsMerlinTools button,#themeToggle,#bugReporterBtn):focus-visible { outline:3px solid var(--secondary); outline-offset:4px; }
.ff-reader #themeToggle { color:var(--dark); }
.ff-reader #themeToggle svg { display:block; flex-shrink:0; }
@media(max-width:768px) {
  .ff-reader { --reader-dock-right:12px; --reader-dock-left:calc(12px + env(safe-area-inset-left,0px)); --reader-dock-bottom:calc(88px + env(safe-area-inset-bottom,0px)); }
  html body.ff-reader #bugReporterWidget.bug-reporter--open { bottom:calc(12px + env(safe-area-inset-bottom,0px)) !important; }
  .ff-reader #merlinPanel { inset:0; width:100%; height:100dvh; max-height:none; border-radius:0; padding-bottom:env(safe-area-inset-bottom,0px); box-sizing:border-box; }
  .ff-reader #lmsMerlinTools { max-height:calc(100dvh - 240px); }
}
@media print { .ff-reader :is(#lmsMerlinMargin,#merlinFab,#lmsTop,#merlinPanel,#bugReporterWidget) { display:none !important; } }
