/* ═══════════════════════════════════════════════════════════════
   E-LEARNING — styles isolés (préfixe .fm-) — réutilise les tokens
   de style.css (--primary, --accent, --bg, Playfair Display, etc.)
   ═══════════════════════════════════════════════════════════════ */
.fm-wrap{max-width:820px;margin:0 auto;}
.fm-eyebrow{font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--primary);margin-bottom:6px;}
.fm-title{font-family:'Playfair Display',serif;font-size:1.6rem;font-weight:400;line-height:1.15;margin-bottom:4px;color:var(--text);}
@media(min-width:768px){.fm-title{font-size:2rem;}}
.fm-sub{color:var(--text2);font-size:.9rem;margin-bottom:18px;}

/* Bandeau d'accès (fenêtre 1 semaine) */
.fm-access{display:flex;align-items:center;gap:10px;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--rs);padding:10px 14px;font-size:.8rem;color:var(--text2);margin-bottom:16px;box-shadow:var(--shadow);}
.fm-access b{color:var(--text);}
.fm-access .fm-dot{width:8px;height:8px;border-radius:50%;background:var(--success);flex-shrink:0;}
.fm-access.fm-warn .fm-dot{background:var(--warning);}

/* Progression globale */
.fm-gp{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r);padding:16px 18px;box-shadow:var(--shadow);margin-bottom:22px;}
.fm-gp-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:9px;}
.fm-gp-lab{font-size:.78rem;font-weight:600;color:var(--text2);}
.fm-gp-pct{font-family:'Playfair Display',serif;font-size:1.3rem;color:var(--primary);}
.fm-bar{height:8px;background:var(--bg);border-radius:10px;overflow:hidden;}
.fm-bar>span{display:block;height:100%;background:linear-gradient(90deg,var(--primary),var(--accent));border-radius:10px;transition:width .6s ease;}

/* Cartes module */
.fm-mcard{background:var(--surface);border-radius:var(--r);border:1.5px solid var(--border);box-shadow:var(--shadow);margin-bottom:12px;transition:transform .2s,box-shadow .2s,opacity .2s;overflow:hidden;}
.fm-mcard.fm-click{cursor:pointer;}
.fm-mcard.fm-click:hover{transform:translateY(-2px);box-shadow:var(--shadow2);}
.fm-mcard.fm-locked{opacity:.55;}
.fm-mcard.fm-pivot{border-color:rgba(21,101,192,.4);box-shadow:0 0 0 2px rgba(21,101,192,.08),var(--shadow);}
.fm-mh{padding:16px 18px;display:flex;align-items:center;gap:14px;}
.fm-mnum{width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,var(--primary),var(--accent));display:flex;align-items:center;justify-content:center;font-size:.9rem;font-weight:700;color:#fff;flex-shrink:0;}
.fm-mcard.fm-locked .fm-mnum{background:var(--text3);}
.fm-mcard.fm-done .fm-mnum{background:linear-gradient(135deg,var(--success),#26a69a);}
.fm-mtitle{font-family:'Playfair Display',serif;font-size:1.02rem;color:var(--text);}
.fm-msub{font-size:.75rem;color:var(--text3);margin-top:2px;line-height:1.4;}
.fm-ptag{display:inline-block;font-size:.6rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--primary);background:var(--primary-soft);padding:2px 7px;border-radius:20px;margin-left:7px;vertical-align:middle;}
.fm-mmeta{margin-left:auto;text-align:right;flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:5px;}
.fm-mcount{font-size:.72rem;color:var(--text2);font-weight:600;}
.fm-mbar{width:74px;height:5px;background:var(--bg);border-radius:10px;overflow:hidden;}
.fm-mbar>span{display:block;height:100%;background:var(--primary);transition:width .5s;}
.fm-mcard.fm-done .fm-mbar>span{background:var(--success);}
.fm-lock{font-size:.9rem;color:var(--text3);}

/* Vue module / séquences */
.fm-back{background:none;border:none;color:var(--primary);font-size:.82rem;font-weight:600;padding:4px 0;margin-bottom:14px;display:inline-flex;align-items:center;gap:6px;cursor:pointer;}
.fm-seq{display:flex;align-items:center;gap:12px;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--rs);padding:13px 15px;margin-bottom:9px;transition:all .18s;}
.fm-seq.fm-click{cursor:pointer;}
.fm-seq.fm-click:hover{border-color:var(--primary);}
.fm-seq.fm-locked{opacity:.5;}
.fm-seq-ico{width:30px;height:30px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:.8rem;background:var(--primary-soft);color:var(--primary);}
.fm-seq.fm-done .fm-seq-ico{background:var(--success-soft);color:var(--success);}
.fm-seq.fm-locked .fm-seq-ico{background:var(--bg);color:var(--text3);}
.fm-seq-t{font-size:.86rem;font-weight:500;color:var(--text);}
.fm-seq-d{font-size:.72rem;color:var(--text3);margin-top:1px;}
.fm-seq-st{margin-left:auto;font-size:.72rem;font-weight:600;color:var(--text3);flex-shrink:0;}
.fm-seq.fm-done .fm-seq-st{color:var(--success);}
.fm-hint{font-size:.76rem;color:var(--text3);margin-top:8px;}

/* Vue séquence : lecteur + quiz */
.fm-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow);padding:20px;margin-bottom:16px;}
.fm-video{aspect-ratio:16/9;border-radius:var(--rs);background:linear-gradient(135deg,#0d2137,#1565c0);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#fff;text-align:center;padding:20px;margin-bottom:16px;overflow:hidden;}
.fm-video iframe{width:100%;height:100%;border:0;}
.fm-play{width:58px;height:58px;border-radius:50%;background:rgba(255,255,255,.15);border:2px solid rgba(255,255,255,.5);display:flex;align-items:center;justify-content:center;font-size:1.3rem;}
.fm-vlab{font-size:.9rem;font-weight:600;}
.fm-vnote{font-size:.72rem;opacity:.7;}
.fm-btn{padding:12px 20px;border:none;border-radius:10px;font-size:.86rem;font-weight:700;background:linear-gradient(135deg,var(--primary),var(--primary-light));color:#fff;cursor:pointer;}
.fm-btn:disabled{opacity:.4;cursor:not-allowed;}
.fm-btn.fm-ghost{background:none;border:1.5px solid var(--border);color:var(--text2);}
.fm-btn.fm-succ{background:linear-gradient(135deg,var(--success),#26a69a);}
.fm-qh{font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--primary);margin-bottom:10px;}
.fm-q{font-size:.92rem;font-weight:600;color:var(--text);margin-bottom:12px;line-height:1.4;}
.fm-opt{display:flex;align-items:center;gap:10px;padding:11px 14px;border:1.5px solid var(--border);border-radius:var(--rs);margin-bottom:8px;cursor:pointer;font-size:.85rem;transition:all .15s;}
.fm-opt:hover{border-color:var(--primary);}
.fm-opt.fm-correct{border-color:var(--success);background:var(--success-soft);}
.fm-opt.fm-wrong{border-color:var(--danger);background:#ffebee;}
.fm-opt.fm-dim{opacity:.5;}
.fm-fb{font-size:.8rem;line-height:1.5;padding:11px 14px;border-radius:var(--rs);margin-top:6px;}
.fm-fb.fm-ok{background:var(--success-soft);color:#1b5e20;}
.fm-fb.fm-no{background:#fff3e0;color:#bf360c;}
.fm-fiche{display:flex;align-items:center;gap:9px;padding:11px 14px;background:var(--surface2);border:1.5px solid var(--border);border-radius:var(--rs);font-size:.82rem;color:var(--text2);}
.fm-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:16px;}

/* Certificat */
.fm-cert{background:var(--surface);border:2px solid var(--primary);border-radius:var(--r);box-shadow:var(--shadow2);padding:34px 26px;text-align:center;}
.fm-seal{font-size:2.6rem;margin-bottom:10px;}
.fm-cert h2{font-family:'Playfair Display',serif;font-weight:400;font-size:1.5rem;margin-bottom:6px;color:var(--text);}
.fm-who{font-size:1.05rem;font-weight:700;color:var(--primary);margin:14px 0 4px;}
.fm-cmeta{font-size:.78rem;color:var(--text3);margin-bottom:20px;}

/* ═══════════════════════════════════════════════════════════════
   Supports interactifs embarqués (iframes des activités du module)
   Composants natifs de l'hôte : stylés via les tokens de charte
   (tokens-charte-somnophysio.css), avec repli si le fichier manque.
   ═══════════════════════════════════════════════════════════════ */
.fm-embed-status{margin:2px 0 12px;}
.fm-embed-note{font-size:.82rem;color:var(--sp-text-secondary,#3a5570);background:var(--sp-primary-soft,#e3f0ff);
  border:1px solid var(--sp-border,#d0e4f7);border-radius:var(--sp-radius-control,10px);padding:10px 13px;line-height:1.5;}
.fm-embed-done{font-size:.82rem;font-weight:600;color:var(--sp-success,#00897b);background:var(--sp-success-soft,#e0f5f3);
  border:1px solid rgba(0,137,123,.25);border-radius:var(--sp-radius-control,10px);padding:10px 13px;}
.fm-embed-frame{border:1px solid var(--sp-border,#d0e4f7);border-radius:var(--sp-radius-card,16px);overflow:hidden;
  background:var(--sp-surface,#fff);box-shadow:var(--sp-shadow-soft,0 4px 18px rgba(21,101,192,.08));margin-top:4px;}
.fm-embed{width:100%;border:0;display:block;min-height:70vh;background:var(--sp-bg,#f0f6ff);
  transition:height .2s ease;}

/* ── Module en 4 parties : encarts par partie + vignettes par item ── */
.fm-encart{background:var(--sp-surface,#fff);border:1px solid var(--sp-border,#d0e4f7);border-radius:var(--sp-radius-card,16px);
  padding:15px 16px 17px;margin:15px 0;box-shadow:var(--sp-shadow-soft,0 4px 18px rgba(21,101,192,.08));}
.fm-encart-h{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
.fm-part-n{font-family:var(--sp-font-interface,'DM Sans',sans-serif);font-size:.56rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--sp-primary,#1565c0);background:var(--sp-primary-soft,#e3f0ff);border-radius:20px;padding:3px 9px;flex-shrink:0;}
.fm-encart-title{font-family:var(--sp-font-title,'Playfair Display',Georgia,serif);font-size:1.02rem;color:var(--sp-text,#0d2137);flex:1;line-height:1.2;}
.fm-encart-count{font-family:var(--sp-font-interface,'DM Sans',sans-serif);font-size:.72rem;font-weight:700;color:var(--sp-text-muted,#7a95b0);flex-shrink:0;}
.fm-part-hint{font-size:.74rem;color:var(--sp-text-muted,#7a95b0);margin:-6px 0 11px;line-height:1.5;}

.fm-vgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:11px;}
.fm-vig{background:var(--sp-surface-soft,#f7fbff);border:1px solid var(--sp-border,#d0e4f7);border-radius:var(--sp-radius-control,12px);
  padding:13px 14px;display:flex;flex-direction:column;gap:7px;transition:transform .16s,box-shadow .16s,border-color .16s;min-width:0;}
.fm-vig.fm-click{cursor:pointer;}
.fm-vig.fm-click:hover{transform:translateY(-2px);box-shadow:var(--sp-shadow,0 8px 30px rgba(21,101,192,.10));border-color:var(--sp-primary,#1565c0);}
.fm-vig.fm-locked{opacity:.6;background:var(--sp-bg,#f0f6ff);cursor:not-allowed;}
.fm-vig.fm-done{border-color:rgba(0,137,123,.35);background:var(--sp-success-soft,#e0f5f3);}
.fm-vig-top{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.fm-vig-ico{width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:.86rem;font-weight:700;
  background:var(--sp-primary-soft,#e3f0ff);color:var(--sp-primary,#1565c0);flex-shrink:0;}
.fm-vig.fm-done .fm-vig-ico{background:var(--sp-success,#00897b);color:#fff;}
.fm-vig.fm-locked .fm-vig-ico{background:#eef2f6;color:var(--sp-text-muted,#7a95b0);}
.fm-vig-badge{font-size:.6rem;font-weight:700;letter-spacing:.03em;padding:3px 8px;border-radius:20px;white-space:nowrap;}
.fm-vig-badge.ok{background:var(--sp-success-soft,#e0f5f3);color:var(--sp-success,#00897b);}
.fm-vig-badge.todo{background:var(--sp-primary-soft,#e3f0ff);color:var(--sp-primary,#1565c0);}
.fm-vig-badge.lock{background:#eef2f6;color:var(--sp-text-muted,#7a95b0);}
.fm-vig-t{font-size:.86rem;font-weight:600;color:var(--sp-text,#0d2137);line-height:1.25;}
.fm-vig-d{font-size:.72rem;color:var(--sp-text-secondary,#3a5570);line-height:1.4;}

/* Vignette fiche : actions Lire / PDF en pied */
.fm-fiche-vig{gap:8px;}
.fm-fiche-acts{margin-top:auto;padding-top:4px;display:flex;gap:7px;}
.fm-fiche-btn{font-family:var(--sp-font-interface,'DM Sans',sans-serif);font-size:.74rem;font-weight:700;cursor:pointer;
  border:1px solid var(--sp-border,#d0e4f7);background:var(--sp-surface,#fff);color:var(--sp-primary,#1565c0);
  border-radius:var(--sp-radius-control,10px);padding:7px 13px;transition:all .16s;flex:1;}
.fm-fiche-btn:hover{border-color:var(--sp-primary,#1565c0);background:var(--sp-primary-soft,#e3f0ff);}
.fm-fiche-pdf{color:var(--sp-success,#00897b);}
.fm-fiche-pdf:hover{border-color:var(--sp-success,#00897b);background:var(--sp-success-soft,#e0f5f3);}
.fm-fiche-video{align-items:flex-start;flex-wrap:wrap;max-width:100%;}
.fm-fiche-video>span{font-weight:800;color:var(--text,#0d2137);}
.fm-fiche-video-actions{display:flex;gap:7px;flex-wrap:wrap;}
.fm-fiche-video-btn{max-width:260px;text-align:left;line-height:1.25;}

/* ── Façade vidéo (lecture sur place) ── */
.fm-facade{position:relative;width:100%;height:100%;border:0;padding:0;background:none;cursor:pointer;display:block;overflow:hidden;border-radius:8px;}
.fm-facade img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s ease,filter .45s ease;}
.fm-facade:hover img{transform:scale(1.03);filter:brightness(.82);}
.fm-facade::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,33,55,.04),rgba(13,33,55,.45));}
.fm-facade-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;width:64px;height:64px;border-radius:50%;background:rgba(255,255,255,.94);display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px rgba(13,33,55,.4);transition:transform .3s ease;}
.fm-facade:hover .fm-facade-play{transform:translate(-50%,-50%) scale(1.09);}
.fm-facade:focus-visible{outline:3px solid var(--primary);outline-offset:2px;}
.fm-facade-play svg{width:24px;height:24px;margin-left:3px;fill:var(--primary);}
