/* ==========================================================================
   SpeakPro Classic — Module 1 : présentation (scopée sous body.m1)
   N'affecte aucun autre module. Reprend les tokens de style.css.
   ========================================================================== */
body.m1{
  --m1-cream:#FBF6F0;
  --m1-sand:#F4EADF;
  --m1-line:#ECE2D6;
  --m1-terra:var(--gold, #C8683F);
  --m1-terra-dark:var(--gold-dark, #A34F2B);
  --m1-shadow:0 1px 2px rgba(16,35,63,.05), 0 10px 30px -12px rgba(16,35,63,.18);
}
body.m1 .cm-wrap{ max-width:720px; padding:22px 16px 72px; }
body.m1 .cm-back{
  display:inline-flex; align-items:center; gap:6px; padding:8px 14px; border-radius:999px;
  background:rgba(255,255,255,.92); color:var(--navy); font-weight:600; font-size:13px;
  box-shadow:0 1px 2px rgba(16,35,63,.08); margin-bottom:18px;
}

/* --- En-tête du module ------------------------------------------------ */
.m1-hero{
  background:var(--navy); color:#fff; border-radius:26px; padding:38px 30px 30px;
  text-align:center; margin-bottom:22px; position:relative; overflow:hidden;
  box-shadow:var(--m1-shadow);
}
.m1-hero::after{
  content:''; position:absolute; width:340px; height:340px; border-radius:50%;
  right:-140px; top:-170px; background:radial-gradient(circle, rgba(200,104,63,.38), rgba(200,104,63,0) 70%);
  pointer-events:none;
}
.m1-kicker{
  font-family:var(--display); font-size:11.5px; font-weight:700; letter-spacing:.12em;
  text-transform:uppercase; color:#E9B597; margin-bottom:12px; position:relative;
}
.m1-h1{
  font-family:var(--display-serif); font-weight:600; font-size:clamp(28px, 5.4vw, 40px);
  line-height:1.12; color:#fff; margin:0 auto 12px; max-width:20ch; letter-spacing:-.01em; position:relative;
}
.m1-intro{ font-size:15px; line-height:1.6; color:rgba(255,255,255,.78); max-width:48ch; margin:0 auto; position:relative; }
.m1-rail{
  display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:6px 4px;
  margin:24px auto 0; position:relative;
}
.m1-rail-item{
  display:inline-flex; align-items:center; gap:6px; padding:7px 12px 7px 9px; border-radius:999px;
  font-size:12.5px; font-weight:600; color:#fff; text-decoration:none;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14);
  transition:background .2s, border-color .2s;
}
.m1-rail-item:hover{ background:rgba(200,104,63,.28); border-color:rgba(233,181,151,.5); }
.m1-rail-ico svg{ width:15px; height:15px; display:block; fill:none; stroke:#E9B597; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.m1-rail-ico svg .fill{ fill:#E9B597; stroke:none; }
.m1-rail-sep{ width:10px; height:1px; background:rgba(255,255,255,.22); }
.m1-start{
  display:inline-flex; align-items:center; gap:8px; margin-top:24px; padding:13px 24px; border-radius:999px;
  background:var(--m1-terra); color:#fff; font-weight:700; font-size:14.5px; text-decoration:none;
  position:relative; transition:background .2s, transform .2s;
}
.m1-start:hover{ background:var(--m1-terra-dark); transform:translateY(1px); }

/* --- Activités --------------------------------------------------------- */
.m1-act{
  background:#fff; border-radius:24px; padding:40px 34px 34px; margin-bottom:18px;
  box-shadow:var(--m1-shadow); scroll-margin-top:16px;
}
.m1-act-plain{ padding:28px 26px; }
.m1-head{ text-align:center; margin-bottom:26px; }
.m1-icon{
  width:58px; height:58px; margin:0 auto 14px; border-radius:50%;
  background:var(--m1-cream); border:1px solid var(--m1-line);
  display:flex; align-items:center; justify-content:center;
}
.m1-icon svg{ width:26px; height:26px; fill:none; stroke:var(--m1-terra); stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.m1-icon svg .fill{ fill:var(--m1-terra); stroke:none; }
.m1-eyebrow{
  font-family:var(--display); font-size:11px; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--m1-terra); margin-bottom:6px;
}
.m1-title{
  font-family:var(--display-serif); font-weight:600; font-size:clamp(24px, 4.2vw, 30px);
  color:var(--navy); line-height:1.15; margin:0 0 10px; letter-spacing:-.01em;
}
.m1-lead{ font-size:15px; line-height:1.6; color:var(--ink-mute); max-width:44ch; margin:0 auto; }
.m1-body{ max-width:600px; margin:0 auto; }
.m1-muted{ text-align:center; color:var(--ink-mute); font-size:14px; margin:0; }

/* Vidéo */
.m1-media .cm-video, .m1-media .cm-video-cover img{ border-radius:16px !important; }
.m1-media{ border-radius:16px; overflow:hidden; box-shadow:0 12px 28px -14px rgba(16,35,63,.45); }

/* PDF */
.m1-doc{
  display:flex; align-items:center; gap:16px; padding:16px 18px; border-radius:18px;
  background:var(--m1-cream); border:1px solid var(--m1-line); text-decoration:none; color:var(--ink);
  transition:border-color .2s, box-shadow .2s, transform .2s;
}
.m1-doc:hover{ border-color:#E2C7B4; box-shadow:0 6px 18px -10px rgba(163,79,43,.45); transform:translateY(-1px); }
.m1-doc-tile{
  flex:0 0 auto; width:46px; height:56px; border-radius:6px 14px 6px 6px; background:#fff;
  border:1px solid var(--m1-line); display:flex; align-items:flex-end; justify-content:center; padding-bottom:9px;
  font-family:var(--display); font-weight:800; font-size:11px; letter-spacing:.06em; color:var(--m1-terra);
  box-shadow:inset 0 -3px 0 var(--m1-terra);
}
.m1-doc-text{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.m1-doc-text strong{ font-size:15px; color:var(--navy); }
.m1-doc-text span{ font-size:13px; color:var(--ink-mute); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.m1-doc-go{
  flex:0 0 auto; display:inline-flex; align-items:center; gap:6px; padding:10px 16px; border-radius:999px;
  background:var(--navy); color:#fff; font-weight:700; font-size:13.5px;
}
.m1-doc:hover .m1-doc-go{ background:var(--m1-terra); }

/* Listen */
.m1-player{ background:var(--m1-cream); border:1px solid var(--m1-line); border-radius:18px; padding:18px; }
.m1-player-meta{ text-align:center; font-size:12.5px; font-weight:600; color:var(--m1-terra-dark); margin-bottom:12px; letter-spacing:.02em; }
.m1-player audio{ width:100%; display:block; }
.m1-transcript{ margin-top:14px; border-top:1px solid var(--m1-line); padding-top:12px; }
.m1-transcript summary{
  cursor:pointer; list-style:none; text-align:center; font-weight:600; font-size:14px; color:var(--navy); padding:6px;
}
.m1-transcript summary::-webkit-details-marker{ display:none; }
.m1-transcript summary::after{ content:' ▾'; color:var(--m1-terra); }
.m1-transcript[open] summary::after{ content:' ▴'; }
.m1-tr-item{ padding:12px 4px; }
.m1-tr-label{ font-size:11.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--m1-terra); margin-bottom:6px; }
.m1-tr-item p{ font-size:15px; line-height:1.7; color:var(--ink); margin:0 0 8px; }

/* Read */
.m1-text{ padding:30px 4px 26px; border-top:1px solid var(--m1-line); text-align:center; }
.m1-text:first-child{ border-top:none; padding-top:2px; }
.m1-text-ico{ width:30px; height:30px; margin:0 auto 10px; }
.m1-text-ico svg{ width:30px; height:30px; fill:none; stroke:#B88A4E; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.m1-text-num{ font-family:var(--display); font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--m1-terra); margin-bottom:4px; }
.m1-text-title{ font-family:var(--display-serif); font-weight:600; font-size:clamp(23px, 4vw, 27px); color:var(--navy); margin:0 0 6px; line-height:1.15; }
.m1-text-tense{ font-size:14px; color:var(--ink-mute); margin-bottom:18px; }
.m1-text-body p{ font-size:17.5px; line-height:1.8; color:var(--ink); margin:0 auto 12px; max-width:34em; }
.m1-vocab{ margin-top:22px; padding-top:20px; border-top:1px dashed var(--m1-line); }
.m1-vocab-title{ font-family:var(--display); font-weight:700; font-size:15px; color:var(--navy); margin-bottom:14px; }
.m1-vocab-grid{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fit, minmax(140px, 1fr)); gap:10px; }
.m1-vocab-grid li{ background:var(--m1-cream); border:1px solid var(--m1-line); border-radius:14px; padding:12px 10px; min-width:0; }
.m1-vocab-grid strong{ display:block; font-size:16px; color:var(--navy); }
.m1-vocab-grid span{ display:block; font-size:14px; color:var(--ink-mute); margin-top:2px; }

/* Pédagogie : traductions dépliables, piste de répétition, suivi du texte */
.m1-tr-fr[hidden]{ display:none !important; }
.m1-tr-btn{ flex:none; width:28px; height:28px; margin:0; padding:0; border:1px solid var(--m1-line); border-radius:50%; background:#fff;
  display:inline-flex; align-items:center; justify-content:center; cursor:pointer; color:var(--m1-terra); transition:transform .2s, background .2s; }
.m1-tr-btn svg{ width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
.m1-tr-btn[aria-expanded="true"]{ transform:rotate(180deg); background:var(--m1-cream); }
.m1-tr-btn:focus-visible{ outline:2px solid var(--m1-terra); outline-offset:2px; }
.m1-lines{ list-style:none; margin:10px 0 0; padding:0; text-align:left; }
.m1-line{ padding:8px 10px; border-radius:12px; transition:background .25s; }
.m1-line + .m1-line{ margin-top:2px; }
.m1-line-row{ display:flex; align-items:flex-start; gap:10px; }
.m1-line-row p{ flex:1; min-width:0; margin:0; font-size:15px; line-height:1.6; color:var(--ink); }
.m1-line .m1-tr-fr{ margin:4px 38px 2px 0; font-size:14px; line-height:1.5; color:var(--ink-mute); font-style:italic; }
/* Suivi de lecture (28/10/2026) : surlignage nettement visible + autres phrases atténuées pendant l'écoute */
.m1-sent{ border-radius:6px; padding:1px 2px; transition:background .25s, color .25s, opacity .25s, box-shadow .25s; }
.m1-line{ transition:background .25s, opacity .25s, box-shadow .25s; }
.m1-following .m1-sent, .m1-following .m1-line{ opacity:.45; }
.m1-line.is-now, .m1-sent.is-now{ opacity:1; background:#FAD3B6; color:#10233F; box-shadow:0 0 0 3px #FAD3B6; }
.m1-line.is-now{ box-shadow:inset 4px 0 0 #C8683F; }
.m1-player-repeat{ margin-top:14px; }
.m1-player-read{ margin:18px auto 0; max-width:34em; }
.m1-repeat-tip{ margin:0 0 12px; font-size:14px; line-height:1.5; color:var(--ink); text-align:center; }
.m1-vocab-tr li{ text-align:left; }
.m1-vocab-grid.m1-vocab-tr{ grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); }
/* 31/10/2026 — tuiles : mots courts côte à côte (2 par ligne sur téléphone), phrases longues
   sur toute la largeur ; la traduction s'ouvre sous le mot en touchant la tuile. */
.m1-vocab-grid.m1-vocab-tr, .spk-phrases{ grid-template-columns:repeat(auto-fill, minmax(160px, 1fr)); grid-auto-flow:row dense; align-items:start; gap:10px; }
.m1-vocab-tr > li.is-wide, .spk-phrases > li.is-wide{ grid-column:1 / -1; }
.m1-vocab-tr > li[data-tr], .spk-phrases > li[data-tr]{ cursor:pointer; -webkit-tap-highlight-color:transparent; transition:border-color .2s, background .2s; }
.m1-vocab-tr > li[data-tr]:has(.m1-tr-fr:not([hidden])), .spk-phrases > li[data-tr]:has(.m1-tr-fr:not([hidden])){ border-color:#E7B999; }
.spk-phrases > li{ border-radius:14px; padding:12px 12px; }
.m1-vocab-row, .spk-phrase-row{ align-items:flex-start; }
.m1-vocab-row strong, .spk-phrase-row > span{ min-width:0; overflow-wrap:anywhere; line-height:1.3; }
@media (max-width:560px){
  .m1-vocab-grid.m1-vocab-tr, .spk-phrases{ grid-template-columns:1fr 1fr; gap:8px; }
  .m1-vocab-grid.m1-vocab-tr li, .spk-phrases li{ padding:12px 10px 12px 12px; }
  .m1-vocab-tr .m1-tr-btn, .spk-phrases .m1-tr-btn{ width:26px; height:26px; }
}
.m1-vocab-row{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
.m1-vocab-row strong{ min-width:0; overflow-wrap:anywhere; }
.m1-vocab-grid .m1-tr-fr{ margin-top:6px; }
.m1-fr-full{ margin:18px auto 0; max-width:34em; }
.m1-fr-text{ padding:10px 4px 0; text-align:left; }
.m1-fr-text p{ font-size:15.5px; line-height:1.7; color:var(--ink-mute); margin:0 0 8px; }
.spk-prompt-rich{ text-align:left; }
.spk-sub-label{ margin:14px 0 6px; font-size:13px; font-weight:700; color:var(--navy); }
.spk-tasks, .spk-phrases, .spk-phrase-row{ text-align:left; }
.spk-tasks li{ padding-left:2px; }
.spk-tasks{ margin:0; padding-left:1.3em; font-size:15px; line-height:1.55; color:var(--ink); }
.spk-tasks li + li{ margin-top:5px; }
.spk-tasks-sm{ max-width:30em; margin:12px auto 0; font-size:14px; text-align:left; }
.spk-phrases{ list-style:none; margin:0; padding:0; display:grid; gap:6px; }
.spk-phrases li{ background:#fff; border:1px solid var(--m1-line); border-radius:12px; padding:8px 10px; }
.spk-phrase-row{ display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:15px; color:var(--navy); font-weight:600; }
.spk-phrases .m1-tr-fr{ display:block; margin-top:4px; font-size:14px; font-weight:400; color:var(--ink-mute); font-style:italic; }

/* Speak (composant existant restylé) */
.m1-speak-box .cm-skill-tag{ display:none; }
.m1-speak-box .cm-skill-text{ text-align:center; font-size:15.5px; line-height:1.6; margin-bottom:14px; }
.m1-speak-box .cm-skill-chip{ background:var(--m1-cream); border:1px solid var(--m1-line); }
.m1-speak-box > div:has(.cm-skill-chip){ text-align:center; }

/* Ressource */
.m1-link{
  display:block; padding:15px 18px; border-radius:16px; border:1px solid var(--m1-line);
  background:var(--m1-cream); text-decoration:none; color:var(--ink); margin-bottom:10px;
}
.m1-link strong{ display:block; font-size:15px; color:var(--navy); }
.m1-link span{ display:block; font-size:13px; color:var(--ink-mute); margin-top:3px; }
.m1-link:hover{ border-color:#E2C7B4; }

/* Quiz (accueil) */
.m1-act-quiz{ background:linear-gradient(180deg, #fff 0%, var(--m1-cream) 100%); }
.m1-quiz-facts{ display:flex; justify-content:center; gap:12px; margin-bottom:20px; }
.m1-quiz-facts > div{
  min-width:120px; padding:14px 18px; border-radius:16px; background:#fff; border:1px solid var(--m1-line); text-align:center;
}
.m1-quiz-facts strong{ display:block; font-family:var(--display-serif); font-size:26px; font-weight:600; color:var(--navy); line-height:1.1; }
.m1-quiz-facts span{ font-size:12.5px; color:var(--ink-mute); }
.m1-quiz-done{ text-align:center; font-size:13.5px; color:#1D6B36; background:#E7F6EA; border-radius:12px; padding:10px 14px; margin:0 0 16px; }
.m1-cta{ width:100%; justify-content:center; border:none; cursor:pointer; padding:15px 22px; border-radius:999px; font-size:15px; }

/* Quiz (questions et résultat : composants existants restylés) */
body.m1 .cm-card{ border-radius:24px; padding:30px 28px; box-shadow:var(--m1-shadow); }
body.m1 .cm-card h2{ font-family:var(--display-serif); font-weight:600; font-size:22px; }
body.m1 .cm-q{ font-size:17px; line-height:1.5; color:var(--navy); margin-bottom:16px; }
body.m1 .cm-opt{ border-radius:14px; padding:14px 16px; border-color:var(--m1-line); font-size:15px; transition:border-color .15s, background .15s; }
body.m1 .cm-opt:hover:not([disabled]){ border-color:#E2C7B4; background:var(--m1-cream); }
body.m1 .cm-opt.selected, body.m1 .cm-opt.selected:hover{ border-color:var(--m1-terra); background:#FBEDE4; transition:none; }
body.m1 .cm-progress-track{ height:5px; background:var(--m1-sand); }
body.m1 .cm-progress-fill{ background:var(--m1-terra); }
body.m1 .cm-progress-mini{ font-family:var(--display); font-size:11.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--m1-terra); }
body.m1 .cm-result-score{ font-family:var(--display-serif); font-weight:600; font-size:44px; }
body.m1 .cm-card .btn-primary{ border-radius:999px; }
body.m1 .cm-btn-prev, body.m1 .cm-btn-ghost{ border-radius:999px; border-color:var(--m1-line); }

/* --- Téléphone --------------------------------------------------------- */
@media (max-width:600px){
  body.m1 .cm-wrap{ padding:14px 12px 56px; }
  .m1-hero{ border-radius:22px; padding:30px 20px 24px; }
  .m1-rail{ flex-wrap:nowrap; justify-content:flex-start; overflow-x:auto; margin:20px -20px 0; padding:0 20px 4px; scrollbar-width:none; }
  .m1-rail::-webkit-scrollbar{ display:none; }
  .m1-rail-item{ flex:0 0 auto; }
  .m1-rail-sep{ flex:0 0 6px; }
  .m1-start{ width:100%; justify-content:center; }
  .m1-act{ border-radius:22px; padding:30px 18px 24px; }
  .m1-head{ margin-bottom:20px; }
  .m1-icon{ width:52px; height:52px; }
  .m1-lead{ font-size:14.5px; }
  .m1-doc{ flex-wrap:wrap; gap:12px 14px; padding:14px; }
  .m1-doc-go{ width:100%; justify-content:center; }
  .m1-text-body p{ font-size:16.5px; line-height:1.75; }
  .m1-vocab-grid{ grid-template-columns:1fr 1fr; gap:8px; }
  .m1-vocab-grid li{ padding:11px 8px; }
  .m1-quiz-facts > div{ min-width:0; flex:1; padding:12px 10px; }
  body.m1 .cm-card{ padding:24px 18px; border-radius:22px; }
}

/* ==========================================================================
   Speak — Exprime-toi (assets/js/classic-m1-speak.js)
   ========================================================================== */
.m1-speak{ --spk-lvl:0; --spk-p:0; }
.spk-screen{ animation:spk-in .35s ease both; }
@keyframes spk-in{ from{ opacity:0; transform:translateY(6px); } to{ opacity:1; transform:none; } }
.spk-screen .m1-head{ margin-bottom:22px; }

.spk-prompt{ max-width:460px; margin:0 auto 24px; text-align:center; }
.spk-prompt-en{ font-family:var(--display-serif); font-size:22px; font-weight:600; color:var(--navy); margin-bottom:6px; }
.spk-prompt-fr{ font-size:14.5px; line-height:1.6; color:var(--ink-mute); }
.spk-starters{ list-style:none; padding:0; margin:16px 0 0; display:flex; flex-wrap:wrap; justify-content:center; gap:8px; }
.spk-starters li{
  font-size:14.5px; font-weight:600; color:var(--navy); background:var(--m1-cream);
  border:1px solid var(--m1-line); border-radius:999px; padding:8px 14px;
}
.spk-starters-sm{ margin:0 auto 22px; max-width:460px; }
.spk-starters-sm li{ font-size:13px; padding:6px 12px; }

.spk-actions{ display:flex; justify-content:center; margin-top:4px; }
.spk-actions-2{ gap:10px; flex-wrap:wrap; }
.spk-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:52px;
  padding:14px 26px; border-radius:999px; border:1.5px solid transparent; cursor:pointer;
  font-family:var(--sans); font-weight:700; font-size:15px; text-decoration:none; line-height:1.2;
  transition:background .2s, transform .15s, box-shadow .2s, border-color .2s;
  -webkit-tap-highlight-color:transparent;
}
.spk-btn:active{ transform:scale(.98); }
.spk-btn:disabled{ opacity:.6; cursor:default; }
.spk-btn-primary{ background:var(--m1-terra); color:#fff; box-shadow:0 8px 20px -10px rgba(163,79,43,.8); }
.spk-btn-primary:hover{ background:var(--m1-terra-dark); color:#fff; }
.spk-btn-dark{ background:var(--navy); color:#fff; }
.spk-btn-dark:hover{ background:#1B3560; }
.spk-btn-ghost{ background:#fff; color:var(--navy); border-color:var(--m1-line); }
.spk-btn-ghost:hover{ border-color:#E2C7B4; background:var(--m1-cream); }
.spk-btn-ico svg{ width:20px; height:20px; display:block; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.spk-btn.is-loading{ position:relative; color:transparent !important; }
.spk-btn.is-loading::after{
  content:''; position:absolute; width:20px; height:20px; border-radius:50%;
  border:2.5px solid rgba(255,255,255,.45); border-top-color:#fff; animation:spk-spin .8s linear infinite;
}
@keyframes spk-spin{ to{ transform:rotate(360deg); } }
.spk-stop-sq{ width:12px; height:12px; border-radius:3px; background:#fff; }
.spk-note{ max-width:400px; margin:16px auto 0; text-align:center; font-size:12.5px; line-height:1.55; color:var(--ink-mute); }

/* Compte à rebours */
.spk-timer{ position:relative; width:200px; height:200px; margin:0 auto 14px; }
.spk-timer svg{ position:absolute; inset:0; width:100%; height:100%; transform:rotate(-90deg); }
.spk-ring-bg{ fill:none; stroke:var(--m1-sand); stroke-width:7; }
.spk-ring{ fill:none; stroke:var(--m1-terra); stroke-width:7; stroke-linecap:round; }
.spk-count{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.spk-count strong{ font-family:var(--display-serif); font-weight:600; font-size:64px; line-height:1; color:var(--navy); font-variant-numeric:tabular-nums; }
.spk-count span{ font-size:12px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-mute); margin-top:4px; }
.spk-level{
  position:absolute; inset:22px; border-radius:50%; background:radial-gradient(circle, rgba(200,104,63,.16), rgba(200,104,63,0) 70%);
  transform:scale(.9); animation:spk-breathe 1.6s ease-in-out infinite;
}
.spk-has-level .spk-level{ animation:none; transform:scale(calc(.82 + var(--spk-lvl) * .4)); transition:transform .08s linear; }
@keyframes spk-breathe{ 0%,100%{ transform:scale(.86); opacity:.7; } 50%{ transform:scale(1); opacity:1; } }
.spk-live{ display:flex; align-items:center; justify-content:center; gap:8px; font-size:13px; font-weight:600; color:#A0322B; margin-bottom:16px; }
.spk-dot{ width:9px; height:9px; border-radius:50%; background:#D93B3B; animation:cm-pulse 1s infinite; }

/* Lecteur de réécoute */
.spk-player{
  display:flex; align-items:center; gap:16px; max-width:480px; margin:0 auto 22px; padding:16px 18px;
  background:var(--m1-cream); border:1px solid var(--m1-line); border-radius:20px;
}
.spk-play{
  flex:0 0 auto; width:56px; height:56px; border-radius:50%; border:none; cursor:pointer;
  background:var(--m1-terra); display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 18px -8px rgba(163,79,43,.8); transition:background .2s, transform .15s;
}
.spk-play:hover{ background:var(--m1-terra-dark); }
.spk-play:active{ transform:scale(.95); }
.spk-play svg{ width:24px; height:24px; fill:#fff; }
.spk-play:not(.is-playing) svg{ margin-left:3px; }
.spk-track{ flex:1; min-width:0; }
.spk-wave{ display:none; height:40px; align-items:center; gap:2px; margin-bottom:6px; }
.spk-wave.is-ready{ display:flex; }
.spk-wave i{ flex:1; min-width:2px; border-radius:2px; background:#E2C7B4; }
.spk-wave i.on{ background:var(--m1-terra); }
.spk-wave.is-ready + .spk-bar{ display:none; }
.spk-bar{ height:6px; border-radius:6px; background:var(--m1-sand); overflow:hidden; margin:8px 0 6px; }
.spk-bar span{ display:block; height:100%; width:0; background:var(--m1-terra); border-radius:6px; }
.spk-times{ display:flex; justify-content:space-between; font-size:12px; color:var(--ink-mute); font-variant-numeric:tabular-nums; }

@media (max-width:600px){
  .spk-prompt-en{ font-size:20px; }
  .spk-timer{ width:176px; height:176px; }
  .spk-count strong{ font-size:56px; }
  .spk-actions .spk-btn{ width:100%; }
  .spk-actions-2{ flex-direction:column-reverse; }
  .spk-player{ padding:14px; gap:12px; }
  .spk-play{ width:52px; height:52px; }
}
@media (prefers-reduced-motion: reduce){
  .spk-screen, .spk-level, .spk-dot{ animation:none; }
}

/* --- Speak : analyse automatique ------------------------------------- */
.spk-prompt-label{ font-family:var(--display); font-size:10.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-mute); margin-bottom:6px; }
.spk-prompt-fr{ font-size:16px; color:var(--navy); font-weight:600; }
.spk-notice{ max-width:480px; margin:0 auto 16px; text-align:center; font-size:13.5px; line-height:1.55; color:#7A5B00; background:#FFF8E6; border-radius:14px; padding:10px 14px; }
.spk-loader{ display:flex; justify-content:center; gap:8px; padding:18px 0 8px; }
.spk-loader span{ width:10px; height:10px; border-radius:50%; background:var(--m1-terra); animation:spk-bounce 1s ease-in-out infinite; }
.spk-loader span:nth-child(2){ animation-delay:.15s; }
.spk-loader span:nth-child(3){ animation-delay:.3s; }
@keyframes spk-bounce{ 0%,100%{ transform:translateY(0); opacity:.4; } 50%{ transform:translateY(-8px); opacity:1; } }

.spk-stats{ list-style:none; padding:0; margin:-6px auto 22px; display:flex; justify-content:center; gap:10px; flex-wrap:wrap; max-width:520px; }
.spk-stats li{ flex:1; min-width:110px; text-align:center; background:var(--m1-cream); border:1px solid var(--m1-line); border-radius:16px; padding:12px 8px; }
.spk-stats strong{ display:block; font-family:var(--display-serif); font-size:22px; font-weight:600; color:var(--navy); line-height:1.1; }
.spk-stats span{ font-size:12px; color:var(--ink-mute); }

.spk-block{ max-width:540px; margin:0 auto 14px; padding:18px 18px 16px; border-radius:18px; background:#fff; border:1px solid var(--m1-line); }
.spk-block h3{ font-family:var(--display-serif); font-size:19px; font-weight:600; color:var(--navy); margin:0 0 10px; display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
.spk-block h3 span{ font-family:var(--sans); font-size:12.5px; font-weight:500; color:var(--ink-mute); }
.spk-said{ margin:0; font-size:17px; line-height:1.7; color:var(--ink); background:var(--m1-cream); border-radius:12px; padding:12px 14px; }
.spk-caution{ font-size:12.5px; line-height:1.5; color:var(--ink-mute); margin:10px 0 0; }
.spk-good{ background:#F3FAF4; border-color:#D6EBDA; }
.spk-good ul{ list-style:none; margin:0; padding:0; }
.spk-good li{ position:relative; padding:4px 0 4px 26px; font-size:14.5px; line-height:1.5; color:#1D4D2B; }
.spk-good li::before{ content:'✓'; position:absolute; left:4px; top:4px; font-weight:800; color:#1D7A3B; }
.spk-improve{ background:#FFFBF2; border-color:#F1E3C4; }
.spk-fix{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.spk-fix li{ background:#fff; border:1px solid var(--m1-line); border-radius:14px; padding:12px 14px; }
.spk-badge{ display:inline-block; font-size:11px; font-weight:700; letter-spacing:.04em; border-radius:999px; padding:3px 9px; margin-bottom:6px; }
.is-error .spk-badge{ background:#FDECEC; color:#8A2A2A; }
.is-suggestion .spk-badge{ background:#EEF3FF; color:#2445A0; }
.is-missing .spk-badge{ background:#FFF1DE; color:#8A4B12; }
.spk-fix-line{ display:flex; align-items:center; flex-wrap:wrap; gap:6px 8px; font-size:16px; margin-bottom:4px; }
.spk-fix-line s{ color:#A0322B; text-decoration-thickness:1.5px; }
.spk-fix-line strong{ color:#1D6B36; }
.spk-arrow{ color:var(--ink-mute); }
.spk-fix p{ margin:0; font-size:13px; line-height:1.5; color:var(--ink-mute); }
.spk-empty{ margin:0; font-size:14px; color:var(--ink-mute); }
.spk-next{ background:var(--m1-cream); }
.spk-next p{ margin:0 0 14px; font-size:15px; color:var(--navy); font-weight:600; }
@media (max-width:600px){
  .spk-block{ padding:16px 14px 14px; }
  .spk-said{ font-size:16px; }
  .spk-stats li{ min-width:0; }
}

/* --- Vidéo du Coach : bouton plein écran ------------------------------ */
.m1-media{ position:relative; background:#0F1A2B; }
.m1-media-actions{ display:flex; justify-content:flex-end; margin-top:10px; }
.m1-fs-btn{
  display:inline-flex; align-items:center; gap:8px; padding:9px 16px; border-radius:999px; cursor:pointer;
  background:#fff; border:1px solid var(--m1-line); color:var(--navy); font:600 13.5px var(--sans);
  transition:border-color .2s, background .2s;
}
.m1-fs-btn:hover{ border-color:#E2C7B4; background:var(--m1-cream); }
.m1-fs-ico svg{ width:16px; height:16px; display:block; fill:none; stroke:var(--m1-terra); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.m1-fs-close{ display:none; }
#m1-video-box:fullscreen, #m1-video-box:-webkit-full-screen{ display:flex; align-items:center; justify-content:center; background:#000; border-radius:0; }
#m1-video-box:fullscreen .cm-video, #m1-video-box:-webkit-full-screen .cm-video{ width:100%; height:100%; aspect-ratio:auto; border-radius:0 !important; }
.m1-media.is-max{
  position:fixed; inset:0; z-index:10000; margin:0; border-radius:0; box-shadow:none;
  display:flex; align-items:center; justify-content:center; background:#000;
}
.m1-media.is-max .cm-video{ width:min(100vw, 177.78vh); height:min(100vh, 56.25vw); max-height:100%; aspect-ratio:auto; border-radius:0 !important; }
@supports (height:100dvh){ .m1-media.is-max .cm-video{ height:min(100dvh, 56.25vw); } }
.m1-media.is-max .m1-fs-close, #m1-video-box:fullscreen .m1-fs-close{
  display:flex; align-items:center; justify-content:center; position:absolute; top:max(12px, env(safe-area-inset-top)); right:12px;
  width:44px; height:44px; border-radius:50%; border:none; cursor:pointer; z-index:2;
  background:rgba(255,255,255,.16); color:#fff; font-size:26px; line-height:1;
}
html.m1-noscroll, html.m1-noscroll body{ overflow:hidden; }

/* --- Vidéo supplémentaire (YouTube) ----------------------------------- */
.m1-lead-sub{ display:block; margin-top:4px; font-size:14px; color:var(--ink-mute); }
.m1-yt{ cursor:pointer; aspect-ratio:16/9; border-radius:16px; overflow:hidden; }
.m1-yt + .m1-yt{ margin-top:14px; }
.m1-yt img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s ease, filter .3s; }
.m1-yt:hover img{ transform:scale(1.02); filter:brightness(.92); }
.m1-yt-play{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:72px; height:72px; border-radius:50%; background:rgba(255,255,255,.94);
  display:flex; align-items:center; justify-content:center; box-shadow:0 10px 24px -8px rgba(0,0,0,.45);
}
.m1-yt-play svg{ width:34px; height:34px; fill:none; stroke:var(--m1-terra); stroke-width:1.5; stroke-linejoin:round; }
.m1-yt-play svg .fill{ fill:var(--m1-terra); stroke:none; }
.m1-yt .cm-video{ width:100%; height:100%; border:0; display:block; }
.m1-yt:focus-visible{ outline:3px solid var(--m1-terra); outline-offset:3px; }
@media (max-width:600px){ .m1-media-actions{ justify-content:center; } .m1-yt-play{ width:60px; height:60px; } }

/* --- Tous les modules Classic au format Module 1 (renderGeneric) -------- */
.m1-sub{ margin-top:18px; padding-top:16px; border-top:1px dashed var(--m1-line); }
.m1-sub .lst-tag, .m1-sub .lst-title, .m1-sub .lst-meta, .m1-sub .lst-before,
.m1-sub .rd-tag, .m1-sub .rd-title, .m1-sub .rd-meta, .m1-sub .rd-before,
.m1-sub .rd-text, .m1-sub .rd-vocab{ display:none; }
.m1-sub:not(.m1-sub-yt) .lst-video-wrap{ display:none; }
.m1-act .m1-text-title + .m1-player{ margin-top:12px; }
.m1-tr-item p{ margin:6px 0; }
.m1-tr-item p strong{ color:var(--m1-terra); font-weight:700; }

/* Speak : lien « Essayer l'analyse seule » (19/10/2026) */
.spk-link{ background:none; border:none; padding:0; font:inherit; color:var(--m1-terra-dark, #A8532F); text-decoration:underline; cursor:pointer; }
