/* ============================================================
   KEKELI Formation — feuille de style de la plateforme de formation
   (pages/formations/**). Reprend la maquette fournie par le porteur du
   projet (kekeli_maquette_formation.html, 24 septembre 2026) : palette
   verte, en-tête blanc collant, cartes arrondies.
   Indépendante de css/style.css / css/style-public.css pour ne rien
   casser ailleurs sur le site.
   ============================================================ */
:root {
  --f-primary: #0b7a5c;
  --f-primary-dark: #07553f;
  --f-primary-light: #dff2eb;
  --f-secondary: #f4b400;
  --f-accent: #e85d04;
  --f-bg: #f6f8f7;
  --f-text: #18302a;
  --f-muted: #5f6f6a;
  --f-white: #fff;
  --f-border: #e4ebe8;
  --f-danger: #c0392b;
  --f-danger-bg: #fdecea;
  --f-warning-bg: #fff6d6;
  --f-shadow: 0 12px 35px rgba(20, 50, 40, .09);
}
.fk * { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.fk {
  margin: 0;
  font-family: Inter, "Segoe UI", Arial, sans-serif;
  color: var(--f-text);
  background: var(--f-bg);
  line-height: 1.5;
}
:where(.fk) a { text-decoration: none; color: inherit; }
.fk button, .fk input, .fk select, .fk textarea { font: inherit; }
.fk button { cursor: pointer; }
.fk :focus-visible { outline: 3px solid var(--f-secondary); outline-offset: 2px; }
.fk-container { width: min(1180px, 92%); margin: auto; }
.fk-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.fk-lien-evitement { position: absolute; left: -999px; top: 8px; background: #fff; padding: 8px 12px; z-index: 100; border-radius: 8px; }
.fk-lien-evitement:focus { left: 8px; }

/* ---------- En-tête ---------- */
.fk-topbar { background: var(--f-primary-dark); color: #fff; font-size: 13px; }
.fk-topbar .fk-container { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; }
.fk-topbar a { text-decoration: underline; }
.fk-header { background: #fff; border-bottom: 1px solid var(--f-border); position: sticky; top: 0; z-index: 30; }
.fk-nav { min-height: 72px; display: flex; align-items: center; gap: 22px; }
.fk-logo { display: flex; align-items: center; gap: 10px; min-width: max-content; }
.fk-logo img { width: 42px; height: 42px; object-fit: contain; }
.fk-logo strong { font-size: 21px; letter-spacing: .5px; display: block; line-height: 1.1; }
.fk-logo small { display: block; color: var(--f-muted); font-size: 10px; margin-top: 2px; }
.fk-logo .fk-logo-sous { color: var(--f-primary); font-weight: 800; font-size: 12px; }
.fk-search { flex: 1; display: flex; max-width: 460px; margin-left: auto; }
.fk-search input { width: 100%; padding: 12px 16px; border: 1px solid var(--f-border); border-radius: 12px 0 0 12px; outline: none; background: #f8faf9; }
.fk-search input:focus { border-color: var(--f-primary); background: #fff; }
.fk-search button { width: 50px; border: 0; border-radius: 0 12px 12px 0; background: var(--f-primary); color: #fff; font-size: 18px; }
.fk-navlinks { display: flex; gap: 18px; font-size: 14px; font-weight: 600; align-items: center; }
.fk-navlinks a:hover, .fk-navlinks a.actif { color: var(--f-primary); }
.fk-actions { display: flex; gap: 10px; align-items: center; }
.fk-burger { display: none; background: none; border: 1px solid var(--f-border); border-radius: 10px; width: 42px; height: 42px; font-size: 20px; margin-left: auto; }
.fk-menu-compte { position: relative; }
.fk-menu-compte-btn { background: var(--f-primary-light); color: var(--f-primary-dark); border: 0; border-radius: 999px; padding: 9px 14px; font-weight: 700; display: flex; gap: 6px; align-items: center; max-width: 220px; }
.fk-menu-compte-btn span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fk-menu-compte-liste { display: none; position: absolute; right: 0; top: calc(100% + 8px); background: #fff; border: 1px solid var(--f-border); border-radius: 14px; box-shadow: var(--f-shadow); min-width: 230px; padding: 8px; z-index: 40; }
.fk-menu-compte.ouvert .fk-menu-compte-liste { display: block; }
.fk-menu-compte-liste a, .fk-menu-compte-liste button { display: block; width: 100%; text-align: left; padding: 10px 12px; border-radius: 9px; background: none; border: 0; font-size: 14px; color: var(--f-text); }
.fk-menu-compte-liste a:hover, .fk-menu-compte-liste button:hover { background: var(--f-bg); }
.fk-menu-compte-liste hr { border: 0; border-top: 1px solid var(--f-border); margin: 6px 0; }

/* Cloche (reprend les classes produites par js/notifications.js) */
.fk .cloche-notif { position: relative; cursor: pointer; font-size: 20px; color: var(--f-primary-dark); }
.fk .badge-notif { position: absolute; top: -6px; right: -8px; background: var(--f-danger); color: #fff; font-size: 10px; font-weight: 800; border-radius: 10px; padding: 1px 6px; min-width: 16px; text-align: center; }
.fk .liste-notif { display: none; position: absolute; right: -10px; top: 34px; width: min(340px, 90vw); max-height: 420px; overflow-y: auto; background: #fff; border: 1px solid var(--f-border); border-radius: 14px; box-shadow: var(--f-shadow); z-index: 50; font-size: 14px; }
.fk .liste-notif.ouverte { display: block; }
.fk .item-notif { display: block; padding: 12px 16px; border-bottom: 1px solid var(--f-border); }
.fk .item-notif.non-lue { background: #eef8f4; }
.fk .item-notif .titre-notif { font-weight: 700; font-size: 13px; }
.fk .item-notif .msg-notif { font-size: 12px; color: var(--f-muted); margin-top: 2px; }
.fk .item-notif .date-notif { font-size: 11px; color: var(--f-muted); margin-top: 4px; }

/* ---------- Boutons ---------- */
.fk-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; border: 0; border-radius: 10px; padding: 11px 18px; font-weight: 700; font-size: 14px; line-height: 1.2; text-align: center; transition: .15s; }
.fk-btn:disabled { opacity: .55; cursor: not-allowed; }
.fk-btn-outline { background: #fff; border: 1px solid var(--f-primary); color: var(--f-primary); }
.fk-btn-outline:hover { background: var(--f-primary-light); }
.fk-btn-primary { background: var(--f-primary); color: #fff; }
.fk-btn-primary:hover { background: var(--f-primary-dark); }
.fk-btn-secondary { background: var(--f-secondary); color: var(--f-text); }
.fk-btn-danger { background: var(--f-danger); color: #fff; }
.fk-btn-ghost { background: transparent; color: var(--f-muted); border: 1px solid var(--f-border); }
.fk-btn-ghost:hover { color: var(--f-text); background: #fff; }
.fk-btn-petit { padding: 7px 12px; font-size: 13px; border-radius: 8px; }
.fk-btn-bloc { width: 100%; }

/* ---------- Héro ---------- */
.fk-hero { background: radial-gradient(circle at 90% 20%, rgba(244, 180, 0, .25), transparent 28%), linear-gradient(135deg, #eaf7f2 0%, #f7fbf9 55%, #fff 100%); padding: 68px 0 60px; }
.fk-hero-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 50px; align-items: center; }
.fk-badge { display: inline-flex; background: var(--f-primary-light); color: var(--f-primary-dark); padding: 7px 12px; border-radius: 999px; font-size: 12px; font-weight: 800; letter-spacing: .3px; }
.fk-hero h1 { font-size: clamp(38px, 5vw, 62px); line-height: 1.04; margin: 18px 0; letter-spacing: -2px; }
.fk-hero h1 span { color: var(--f-primary); }
.fk-hero p { font-size: 18px; line-height: 1.65; color: var(--f-muted); max-width: 620px; }
.fk-hero-actions { display: flex; gap: 12px; margin-top: 28px; flex-wrap: wrap; }
.fk-hero-card { background: #fff; border: 1px solid var(--f-border); border-radius: 24px; box-shadow: var(--f-shadow); padding: 18px; transform: rotate(1deg); }
.fk-hero-screen { background: #eef5f2; border-radius: 18px; padding: 18px; }
.fk-mini-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; font-weight: 800; }
.fk-mini-course { display: grid; grid-template-columns: 64px 1fr auto; gap: 12px; align-items: center; background: #fff; padding: 12px; border-radius: 13px; margin-top: 10px; }
.fk-mini-thumb { height: 50px; border-radius: 10px; background: linear-gradient(135deg, var(--f-primary), #65b89e); background-size: cover; background-position: center; }
.fk-mini-course b { font-size: 13px; display: block; }
.fk-mini-course small { display: block; color: var(--f-muted); margin-top: 4px; }

/* ---------- Progression ---------- */
.fk-progress { height: 8px; background: #dce8e3; border-radius: 99px; overflow: hidden; }
.fk-progress span { display: block; height: 100%; background: var(--f-primary); border-radius: 99px; transition: width .3s; }

/* ---------- Sections ---------- */
.fk-section { padding: 60px 0; }
.fk-section-blanche { background: #fff; }
.fk-section-head { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin-bottom: 25px; }
.fk-section-head h2 { margin: 0; font-size: 28px; }
.fk-section-head p { margin: 7px 0 0; color: var(--f-muted); }
.fk-link { color: var(--f-primary); font-weight: 800; font-size: 14px; }

.fk-categories { display: grid; grid-template-columns: repeat(6, 1fr); gap: 14px; }
.fk-category { background: #fff; border: 1px solid var(--f-border); padding: 20px 12px; border-radius: 16px; text-align: center; transition: .2s; display: block; }
.fk-category:hover, .fk-category.actif { transform: translateY(-3px); box-shadow: var(--f-shadow); border-color: var(--f-primary); }
.fk-category .fk-icon { font-size: 28px; margin-bottom: 10px; }
.fk-category b { font-size: 13px; display: block; }
.fk-category small { color: var(--f-muted); font-size: 11px; }

/* ---------- Cartes formation ---------- */
.fk-courses { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.fk-course { background: #fff; border: 1px solid var(--f-border); border-radius: 17px; overflow: hidden; transition: .2s; display: flex; flex-direction: column; position: relative; }
.fk-course:hover { transform: translateY(-4px); box-shadow: var(--f-shadow); }
.fk-cover { height: 150px; position: relative; padding: 14px; background: linear-gradient(135deg, #0b7a5c, #2b9b7d); background-size: cover; background-position: center; }
.fk-cover.c1 { background-image: linear-gradient(135deg, #d65a08, #f6a01a); }
.fk-cover.c2 { background-image: linear-gradient(135deg, #1769aa, #55a5df); }
.fk-cover.c3 { background-image: linear-gradient(135deg, #673ab7, #a46be2); }
.fk-cover .fk-tag { background: #fff; color: var(--f-primary-dark); padding: 5px 9px; border-radius: 7px; font-size: 11px; font-weight: 800; text-transform: uppercase; }
.fk-cover .fk-symbol { position: absolute; right: 18px; bottom: 12px; font-size: 48px; }
.fk-course-body { padding: 16px; display: flex; flex-direction: column; flex: 1; }
.fk-course h3 { font-size: 16px; line-height: 1.3; margin: 0 0 6px; }
.fk-course .fk-formateur-nom { font-size: 12px; color: var(--f-muted); margin-bottom: 8px; }
.fk-meta { font-size: 12px; color: var(--f-muted); display: flex; gap: 10px; flex-wrap: wrap; }
.fk-rating { color: #b27700; font-weight: 800; margin: 10px 0; font-size: 13px; }
.fk-rating .fk-vide { color: var(--f-muted); font-weight: 600; }
.fk-price { display: flex; justify-content: space-between; align-items: center; margin-top: auto; gap: 8px; }
.fk-price strong { font-size: 17px; }
.fk-favori { position: absolute; top: 12px; right: 12px; background: #fff; border: 0; border-radius: 50%; width: 34px; height: 34px; font-size: 16px; box-shadow: 0 3px 10px rgba(0,0,0,.12); z-index: 2; }

/* ---------- Étapes / formateur / CTA ---------- */
.fk-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.fk-step { border: 1px solid var(--f-border); border-radius: 18px; padding: 24px; background: #fff; }
.fk-step h3 { margin: 0 0 8px; }
.fk-step p { margin: 0; color: var(--f-muted); }
.fk-step-num { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--f-primary-light); color: var(--f-primary); font-weight: 900; margin-bottom: 16px; }
.fk-trainer { display: grid; grid-template-columns: 1fr 1fr; gap: 45px; align-items: center; }
.fk-trainer-box { background: var(--f-primary-dark); color: #fff; border-radius: 25px; padding: 36px; }
.fk-trainer-box p { color: #d9ebe5; line-height: 1.7; }
.fk-check { margin: 12px 0; font-weight: 600; }
.fk-check::before { content: "✓"; color: var(--f-secondary); font-weight: 900; margin-right: 10px; }
.fk-cta { margin: 20px auto 70px; width: min(1180px, 92%); background: linear-gradient(110deg, var(--f-primary-dark), var(--f-primary)); border-radius: 25px; color: #fff; padding: 42px; display: flex; justify-content: space-between; align-items: center; gap: 25px; }
.fk-cta h2 { margin: 0 0 8px; font-size: 28px; }
.fk-cta p { margin: 0; color: #dcece7; }

/* ---------- Pied de page ---------- */
.fk-footer { background: #12332b; color: #dbe8e4; padding: 48px 0 20px; }
.fk-footer-grid { display: grid; grid-template-columns: 1.5fr repeat(3, 1fr); gap: 40px; }
.fk-footer h3 { color: #fff; margin-top: 0; font-size: 16px; }
.fk-footer a { display: block; color: #b8cbc5; margin: 10px 0; font-size: 14px; }
.fk-footer a:hover { color: #fff; }
.fk-footer .fk-logo small { color: #b8cbc5; }
.fk-footer-bottom { border-top: 1px solid rgba(255, 255, 255, .12); margin-top: 32px; padding-top: 18px; font-size: 12px; color: #9db3ac; display: flex; justify-content: space-between; gap: 10px; }

/* ---------- Éléments génériques ---------- */
.fk-page { padding: 36px 0 60px; min-height: 60vh; }
.fk-titre-page { font-size: 28px; margin: 0 0 6px; }
.fk-sous-titre { color: var(--f-muted); margin: 0 0 24px; }
.fk-carte { background: #fff; border: 1px solid var(--f-border); border-radius: 18px; padding: 22px; }
.fk-carte + .fk-carte { margin-top: 18px; }
.fk-carte h2 { font-size: 19px; margin: 0 0 14px; }
.fk-carte h3 { font-size: 16px; margin: 0 0 10px; }
.fk-grille-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.fk-grille-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.fk-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 22px; }
.fk-stat { background: #fff; border: 1px solid var(--f-border); border-radius: 16px; padding: 18px; }
.fk-stat small { color: var(--f-muted); font-weight: 700; font-size: 12px; text-transform: uppercase; letter-spacing: .3px; }
.fk-stat strong { display: block; font-size: 26px; margin-top: 6px; }
.fk-vide { text-align: center; color: var(--f-muted); padding: 30px 16px; }
.fk-vide .fk-vide-icone { font-size: 38px; display: block; margin-bottom: 8px; }
.fk-chargement { text-align: center; color: var(--f-muted); padding: 40px 0; }
.fk-alerte { border-radius: 12px; padding: 12px 16px; margin: 0 0 16px; font-size: 14px; }
.fk-alerte-info { background: var(--f-primary-light); color: var(--f-primary-dark); }
.fk-alerte-attention { background: var(--f-warning-bg); color: #6b5200; }
.fk-alerte-erreur { background: var(--f-danger-bg); color: var(--f-danger); }
.fk-pastille { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; background: #eef2f0; color: var(--f-muted); }
.fk-pastille.brouillon { background: #eef2f0; color: #4b5a55; }
.fk-pastille.en_revision, .fk-pastille.en_attente { background: var(--f-warning-bg); color: #6b5200; }
.fk-pastille.publiee, .fk-pastille.valide, .fk-pastille.terminee, .fk-pastille.publie { background: var(--f-primary-light); color: var(--f-primary-dark); }
.fk-pastille.refusee, .fk-pastille.refuse, .fk-pastille.suspendu, .fk-pastille.masque { background: var(--f-danger-bg); color: var(--f-danger); }
.fk-pastille.archivee, .fk-pastille.active { background: #e8f0fb; color: #1d4f8a; }

/* Formulaires */
.fk-champ { display: block; margin-bottom: 14px; }
.fk-champ > span { display: block; font-weight: 700; font-size: 14px; margin-bottom: 6px; }
.fk-champ small { display: block; color: var(--f-muted); font-size: 12px; margin-top: 4px; }
.fk-champ input[type=text], .fk-champ input[type=url], .fk-champ input[type=number], .fk-champ input[type=email], .fk-champ input[type=search],
.fk-champ select, .fk-champ textarea, .fk-input {
  width: 100%; padding: 11px 13px; border: 1px solid #cfdbd6; border-radius: 10px; background: #fff; color: var(--f-text);
}
.fk-champ textarea { min-height: 110px; resize: vertical; }
.fk-champ input:focus, .fk-champ select:focus, .fk-champ textarea:focus, .fk-input:focus { border-color: var(--f-primary); outline: 2px solid var(--f-primary-light); }
.fk-case { display: flex; gap: 8px; align-items: flex-start; font-size: 14px; margin-bottom: 10px; }
.fk-case input { margin-top: 3px; }
.fk-actions-form { display: flex; gap: 10px; justify-content: flex-end; flex-wrap: wrap; margin-top: 8px; }

/* Éditeur riche (25 septembre 2026) : barre d'outils FIXE (sticky) qui reste
   visible pendant le défilement d'une longue leçon — sous l'en-tête du site
   sur une page, en haut de la fenêtre dans une modale. Pas d'overflow:hidden
   sur .fk-riche : il empêcherait le "sticky". */
.fk-riche { border: 1px solid #cfdbd6; border-radius: 10px; background: #fff; }
.fk-riche-barre { display: flex; flex-wrap: wrap; align-items: center; gap: 3px; padding: 6px; border-bottom: 1px solid var(--f-border); background: #f8faf9; border-radius: 10px 10px 0 0;
  position: sticky; top: 72px; z-index: 6; box-shadow: 0 4px 10px -8px rgba(0,0,0,.25); }
.fk-modale .fk-riche-barre { top: -24px; }
.fk-riche-barre button, .fk-riche-barre select, .fk-riche-import { border: 1px solid transparent; background: none; border-radius: 6px; padding: 5px 8px; font-size: 13px; line-height: 1.2; color: var(--f-text); cursor: pointer; }
.fk-riche-barre select, .fk-champ .fk-riche-barre select { width: auto; border-color: var(--f-border); background: #fff; padding: 5px 6px; }
.fk-riche-barre button:hover, .fk-riche-import:hover { background: #fff; border-color: var(--f-border); }
.fk-riche-barre button.actif, .fk-riche-barre button[aria-pressed="true"] { background: var(--f-primary-light); border-color: var(--f-primary); color: var(--f-primary-dark); }
.fk-riche-barre button:disabled, .fk-riche-barre select:disabled { opacity: .45; cursor: not-allowed; }
.fk-riche-import { display: inline-flex; align-items: center; gap: 4px; font-weight: 600; }
.fk-riche-sep { width: 1px; height: 22px; background: var(--f-border); margin: 0 3px; }
.fk-riche-menu { position: relative; display: inline-flex; }
.fk-riche-a { font-weight: 800; }
.fk-riche-pastille { display: block; height: 4px; border-radius: 2px; margin-top: 1px; }
.fk-riche-menu > button { display: inline-flex; flex-direction: column; align-items: stretch; min-width: 30px; }
.fk-riche-palette { position: absolute; top: calc(100% + 4px); left: 0; z-index: 20; background: #fff; border: 1px solid var(--f-border); border-radius: 10px; box-shadow: var(--f-shadow); padding: 8px; display: grid; grid-template-columns: repeat(4, 26px); gap: 6px; }
.fk-riche-palette[hidden] { display: none; }
.fk-riche-palette button { width: 26px; height: 26px; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 0 0 1px var(--f-border); padding: 0; font-size: 11px; }
.fk-riche-palette label { grid-column: span 4; display: flex; align-items: center; gap: 6px; font-size: 13px; cursor: pointer; }
.fk-riche-palette input[type=color] { width: 40px; height: 26px; border: 0; padding: 0; background: none; }
.fk-riche-barre.mode-source > :not([data-source]):not(.fk-riche-sep) { opacity: .45; }
.fk-riche-zone { min-height: 200px; padding: 12px 14px; outline: none; line-height: 1.7; }
.fk-riche-zone:empty::before { content: attr(data-placeholder); color: #9aa6a2; }
.fk-riche-source { display: block; width: 100%; border: 0; padding: 12px 14px; font-family: ui-monospace, Consolas, monospace; font-size: 13px; line-height: 1.5; resize: vertical; outline: none; border-radius: 0 0 10px 10px; }
.fk-riche-source[hidden] { display: none; }
.fk-riche-apercu { border: 1px dashed #cfdbd6; border-radius: 10px; padding: 10px 14px; max-height: 55vh; overflow: auto; background: #fbfdfc; }
/* Rendu du contenu formaté (éditeur ET lecteur) */
.fk-riche-zone, .fk-lecon-corps, .fk-description { overflow-wrap: anywhere; }
.fk-riche-zone blockquote, .fk-lecon-corps blockquote, .fk-description blockquote { border-left: 5px solid var(--f-primary); margin: 14px 0; padding: 12px 18px; background: #f6faf8; border-radius: 0 10px 10px 0; }
.fk-riche-zone blockquote > :first-child, .fk-lecon-corps blockquote > :first-child { margin-top: 0; }
.fk-riche-zone blockquote > :last-child, .fk-lecon-corps blockquote > :last-child { margin-bottom: 0; }
.fk-riche-zone pre, .fk-lecon-corps pre, .fk-description pre { background: #12332b; color: #e7f3ef; padding: 12px 14px; border-radius: 10px; overflow-x: auto; font-size: 13px; }
.fk-riche-zone code, .fk-lecon-corps code { background: #eef3f1; padding: 1px 5px; border-radius: 4px; font-size: .92em; }
.fk-riche-zone pre code, .fk-lecon-corps pre code { background: none; padding: 0; }
.fk-riche-zone table, .fk-lecon-corps table, .fk-description table { border-collapse: collapse; margin: 12px 0; display: block; overflow-x: auto; }
.fk-riche-zone th, .fk-riche-zone td, .fk-lecon-corps th, .fk-lecon-corps td, .fk-description th, .fk-description td { border: 1px solid var(--f-border); padding: 6px 10px; text-align: left; }
.fk-riche-zone th, .fk-lecon-corps th { background: #f3f7f5; }
.fk-riche-zone h1, .fk-lecon-corps h1 { font-size: 1.6em; }
.fk-riche-zone hr, .fk-lecon-corps hr { border: 0; border-top: 2px solid var(--f-border); margin: 18px 0; }
.fk-riche-zone [data-bloc], .fk-lecon-corps [data-bloc], .fk-description [data-bloc] { padding: 10px 16px; border-radius: 12px; margin: 12px 0; }
.fk-riche-zone [data-bloc="encadre"], .fk-lecon-corps [data-bloc="encadre"], .fk-description [data-bloc="encadre"] { border-left: 5px solid rgba(0,0,0,.14); }
.fk-riche-zone [data-bloc] > :first-child, .fk-lecon-corps [data-bloc] > :first-child { margin-top: 4px; }
.fk-riche-zone [data-bloc] > :last-child, .fk-lecon-corps [data-bloc] > :last-child { margin-bottom: 4px; }
.fk-riche-zone table { min-width: 50%; }
.fk-riche-zone td, .fk-riche-zone th { min-width: 60px; }
.fk-riche-liste { grid-template-columns: 1fr !important; min-width: 250px; max-width: calc(100vw - 40px); }
.fk-riche-liste button { width: auto !important; height: auto !important; border-radius: 8px !important; box-shadow: none !important; border: 0 !important; text-align: left; padding: 7px 10px !important; font-size: 13px !important; display: flex; align-items: center; gap: 8px; }
.fk-riche-liste button:hover { background: var(--f-bg) !important; }
.fk-riche-puce { width: 16px; height: 16px; border-radius: 4px; flex-shrink: 0; box-shadow: 0 0 0 1px rgba(0,0,0,.1); }
.fk-riche-zone img, .fk-lecon-corps img { max-width: 100%; height: auto; border-radius: 8px; }
@media (max-width: 650px) {
  .fk-riche-barre { top: 64px; }
}

/* Onglets */
.fk-onglets { display: flex; gap: 6px; border-bottom: 1px solid var(--f-border); margin-bottom: 20px; overflow-x: auto; }
.fk-onglets button { background: none; border: 0; border-bottom: 3px solid transparent; padding: 10px 14px; font-weight: 700; color: var(--f-muted); white-space: nowrap; }
.fk-onglets button.actif { color: var(--f-primary); border-bottom-color: var(--f-primary); }

/* Tableaux */
.fk-table-wrap { overflow-x: auto; }
.fk-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.fk-table th, .fk-table td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--f-border); vertical-align: top; }
.fk-table th { font-size: 12px; text-transform: uppercase; color: var(--f-muted); letter-spacing: .3px; }

/* Listes (programme) */
.fk-module { border: 1px solid var(--f-border); border-radius: 14px; margin-bottom: 12px; background: #fff; overflow: hidden; }
.fk-module-tete { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 14px 16px; background: #f8faf9; font-weight: 700; }
.fk-module-tete small { color: var(--f-muted); font-weight: 600; }
.fk-lecon-ligne { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 11px 16px; border-top: 1px solid var(--f-border); font-size: 14px; }
.fk-lecon-ligne .fk-lecon-titre { display: flex; gap: 8px; align-items: center; min-width: 0; }
.fk-lecon-ligne .fk-lecon-titre span:last-child { overflow: hidden; text-overflow: ellipsis; }
.fk-lecon-ligne small { color: var(--f-muted); white-space: nowrap; }
.fk-lecon-ligne .fk-outils { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }

/* Fiche formation */
.fk-fiche-hero { background: var(--f-primary-dark); color: #fff; padding: 44px 0; }
.fk-fiche-grid { display: grid; grid-template-columns: 1.6fr 1fr; gap: 36px; align-items: start; }
.fk-fiche-hero h1 { font-size: clamp(28px, 4vw, 40px); margin: 12px 0; line-height: 1.15; }
.fk-fiche-hero p { color: #d9ebe5; font-size: 17px; }
.fk-fiche-hero .fk-meta { color: #cfe3dc; font-size: 14px; }
.fk-fiche-hero .fk-rating { color: var(--f-secondary); }
.fk-fiche-hero .fk-badge { background: rgba(255, 255, 255, .15); color: #fff; }
.fk-fiche-hero a.fk-lien-clair { color: #fff; text-decoration: underline; }
.fk-fiche-achat { background: #fff; color: var(--f-text); border-radius: 20px; box-shadow: var(--f-shadow); overflow: hidden; }
.fk-fiche-achat .fk-cover { height: 190px; }
.fk-fiche-achat-corps { padding: 20px; }
.fk-fiche-prix { font-size: 28px; font-weight: 900; margin-bottom: 14px; }
.fk-fiche-corps { display: grid; grid-template-columns: 1.6fr 1fr; gap: 36px; padding: 36px 0 60px; }
.fk-description { line-height: 1.75; }
.fk-description img { max-width: 100%; height: auto; }
.fk-avis { border-top: 1px solid var(--f-border); padding: 14px 0; }
.fk-avis b { font-size: 14px; }
.fk-avis p { margin: 6px 0 0; color: var(--f-muted); font-size: 14px; }
.fk-etoiles-choix { display: flex; gap: 4px; font-size: 26px; }
.fk-etoiles-choix button { background: none; border: 0; color: #cfd8d4; padding: 0 2px; }
.fk-etoiles-choix button.on { color: var(--f-secondary); }

/* Formateur public */
.fk-avatar { width: 88px; height: 88px; border-radius: 50%; background: var(--f-primary-light); color: var(--f-primary-dark); display: grid; place-items: center; font-size: 34px; font-weight: 900; background-size: cover; background-position: center; flex-shrink: 0; }
.fk-profil-tete { display: flex; gap: 20px; align-items: center; }

/* Lecteur de formation (espace apprenant) */
.fk-lecteur { display: grid; grid-template-columns: 320px 1fr; min-height: calc(100vh - 73px); }
.fk-lecteur-nav { background: #fff; border-right: 1px solid var(--f-border); overflow-y: auto; max-height: calc(100vh - 73px); position: sticky; top: 73px; }
.fk-lecteur-nav-tete { padding: 18px; border-bottom: 1px solid var(--f-border); }
.fk-lecteur-nav-tete h2 { font-size: 16px; margin: 0 0 10px; }
.fk-lecteur-module { padding: 14px 18px 4px; font-size: 12px; font-weight: 800; text-transform: uppercase; color: var(--f-muted); letter-spacing: .3px; }
.fk-lecteur-item { display: flex; gap: 10px; align-items: flex-start; padding: 10px 18px; font-size: 14px; border-left: 3px solid transparent; width: 100%; background: none; border-top: 0; border-right: 0; border-bottom: 0; text-align: left; color: var(--f-text); }
.fk-lecteur-item:hover { background: #f6faf8; }
.fk-lecteur-item.actif { background: var(--f-primary-light); border-left-color: var(--f-primary); font-weight: 700; }
.fk-lecteur-item .fk-etat { width: 20px; flex-shrink: 0; text-align: center; }
.fk-lecteur-item small { display: block; color: var(--f-muted); font-weight: 500; }
.fk-lecteur-contenu { padding: 30px clamp(16px, 4vw, 48px) 60px; min-width: 0; }
.fk-lecteur-contenu h1 { font-size: 26px; margin: 0 0 8px; }
.fk-lecon-corps { line-height: 1.8; font-size: 16px; }
.fk-lecon-corps img, .fk-lecon-corps video, .fk-lecon-corps iframe { max-width: 100%; }
.fk-video { position: relative; padding-top: 56.25%; background: #000; border-radius: 14px; overflow: hidden; margin: 16px 0; }
.fk-video iframe, .fk-video video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.fk-audio { width: 100%; margin: 16px 0; }
.fk-ressource { display: flex; justify-content: space-between; align-items: center; gap: 10px; border: 1px solid var(--f-border); border-radius: 12px; padding: 10px 14px; margin-bottom: 8px; background: #fff; }
.fk-lecteur-pied { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-top: 30px; padding-top: 20px; border-top: 1px solid var(--f-border); }
.fk-lecteur-bascule { display: none; }

/* Quiz */
.fk-question { background: #fff; border: 1px solid var(--f-border); border-radius: 14px; padding: 18px; margin-bottom: 14px; }
.fk-question h3 { font-size: 16px; margin: 0 0 12px; }
.fk-choix { display: flex; gap: 10px; align-items: center; border: 1px solid var(--f-border); border-radius: 10px; padding: 10px 12px; margin-bottom: 8px; cursor: pointer; }
.fk-choix:hover { background: #f6faf8; }
.fk-choix.juste { border-color: var(--f-primary); background: var(--f-primary-light); }
.fk-choix.faux { border-color: var(--f-danger); background: var(--f-danger-bg); }
.fk-input.fk-trou { display: inline-block; width: auto; min-width: 110px; max-width: 200px; padding: 5px 8px; margin: 2px 4px; }
.fk-trous { line-height: 2.4; font-size: 16px; }
.fk-banque { font-size: 13px; color: var(--f-muted); }
.fk-banque span { display: inline-block; background: #eef3f1; border-radius: 999px; padding: 2px 10px; margin: 2px 4px; color: var(--f-text); }
.fk-ordre { padding-left: 22px; margin: 0; }
.fk-ordre li { display: flex; justify-content: space-between; align-items: center; gap: 8px; border: 1px solid var(--f-border); border-radius: 10px; padding: 6px 10px; margin-bottom: 6px; background: #fff; }
.fk-ordre-btns { display: flex; gap: 4px; flex-shrink: 0; }
.fk-assoc { display: flex; flex-direction: column; gap: 8px; }
.fk-assoc-ligne { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; align-items: center; border: 1px solid var(--f-border); border-radius: 10px; padding: 8px 10px; }
.fk-serie { margin-bottom: 10px; }
.fk-serie small { color: var(--f-muted); font-weight: 700; }
.fk-mots { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.fk-mot, .fk-mot-radio { border: 1px solid var(--f-border); background: #fff; border-radius: 999px; padding: 6px 12px; font-size: 15px; cursor: pointer; }
.fk-mot.choisi, .fk-mot-radio:has(input:checked) { background: var(--f-primary-light); border-color: var(--f-primary); color: var(--f-primary-dark); font-weight: 700; }
.fk-mot-radio input { margin-right: 4px; }
.fk-corr { font-size: 14px; padding: 4px 0; border-bottom: 1px dashed var(--f-border); }
.fk-corr > span:first-child { color: var(--f-muted); }
@media (max-width: 650px) { .fk-assoc-ligne { grid-template-columns: 1fr; } }
.fk-chrono { position: sticky; top: 84px; z-index: 5; display: inline-block; background: var(--f-text); color: #fff; border-radius: 999px; padding: 6px 14px; font-weight: 800; margin-bottom: 12px; }

/* Modale */
.fk-modale-fond { position: fixed; inset: 0; background: rgba(10, 30, 25, .45); display: grid; place-items: center; z-index: 200; padding: 16px; }
.fk-modale { background: #fff; border-radius: 18px; width: min(640px, 100%); max-height: 90vh; overflow-y: auto; padding: 24px; box-shadow: var(--f-shadow); }
.fk-modale h2 { margin: 0 0 16px; font-size: 20px; }

/* Toast */
.fk-toasts { position: fixed; bottom: 18px; right: 18px; z-index: 300; display: flex; flex-direction: column; gap: 8px; max-width: min(360px, calc(100vw - 36px)); }
.fk-toast { background: var(--f-text); color: #fff; border-radius: 12px; padding: 12px 16px; font-size: 14px; box-shadow: var(--f-shadow); }
.fk-toast.erreur { background: var(--f-danger); }
.fk-toast.succes { background: var(--f-primary-dark); }

/* Pagination */
.fk-pagination { display: flex; gap: 8px; justify-content: center; margin-top: 26px; flex-wrap: wrap; }
.fk-filtres { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-bottom: 20px; }
.fk-filtres select, .fk-filtres input { padding: 10px 12px; border: 1px solid #cfdbd6; border-radius: 10px; background: #fff; }

/* ---------- Responsive ---------- */
@media (max-width: 1000px) {
  .fk-categories { grid-template-columns: repeat(3, 1fr); }
  .fk-courses { grid-template-columns: repeat(2, 1fr); }
  .fk-hero-grid, .fk-trainer, .fk-fiche-grid, .fk-fiche-corps { grid-template-columns: 1fr; }
  .fk-hero-card { max-width: 650px; margin: auto; }
  .fk-stats { grid-template-columns: repeat(2, 1fr); }
  .fk-grille-3 { grid-template-columns: 1fr 1fr; }
  .fk-lecteur { grid-template-columns: 1fr; }
  .fk-lecteur-nav { position: static; max-height: none; border-right: 0; border-bottom: 1px solid var(--f-border); display: none; }
  .fk-lecteur.nav-ouverte .fk-lecteur-nav { display: block; }
  .fk-lecteur-bascule { display: inline-flex; margin-bottom: 14px; }
}
@media (max-width: 860px) {
  .fk-burger { display: block; }
  .fk-search { display: none; }
  .fk-nav { flex-wrap: wrap; }
  .fk-navlinks, .fk-actions { display: none; width: 100%; }
  .fk-header.menu-ouvert .fk-navlinks { display: flex; flex-direction: column; align-items: flex-start; padding: 6px 0 10px; }
  .fk-header.menu-ouvert .fk-actions { display: flex; flex-wrap: wrap; padding-bottom: 14px; }
  .fk-header.menu-ouvert .fk-search { display: flex; max-width: none; width: 100%; margin: 0 0 10px; order: 5; }
}
@media (max-width: 650px) {
  .fk-topbar { display: none; }
  .fk-nav { min-height: 64px; gap: 10px; }
  .fk-logo small { display: none; }
  .fk-logo strong { font-size: 18px; }
  .fk-logo img { width: 36px; height: 36px; }
  .fk-hero { padding: 44px 0; }
  .fk-hero h1 { font-size: 40px; }
  .fk-hero p { font-size: 16px; }
  .fk-section { padding: 42px 0; }
  .fk-section-head { display: block; }
  .fk-section-head .fk-link { display: inline-block; margin-top: 12px; }
  .fk-categories { grid-template-columns: repeat(2, 1fr); }
  .fk-courses, .fk-steps, .fk-grille-2, .fk-grille-3 { grid-template-columns: 1fr; }
  .fk-stats { grid-template-columns: 1fr 1fr; }
  .fk-cta { padding: 28px; display: block; }
  .fk-cta .fk-btn { margin-top: 18px; }
  .fk-footer-grid { grid-template-columns: 1fr 1fr; }
  .fk-footer-bottom { display: block; }
  .fk-footer-bottom span { display: block; margin-top: 8px; }
  .fk-lecon-ligne { flex-wrap: wrap; }
  .fk-carte { padding: 16px; }
  .fk-profil-tete { flex-direction: column; text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
  .fk *, .fk *::before { transition: none !important; animation: none !important; }
  .fk-hero-card { transform: none; }
}

/* ---------- Images dans les leçons (25 septembre 2026) ---------- */
.fk-riche-zone figure, .fk-lecon-corps figure, .fk-description figure { margin: 16px 0; }
.fk-riche-zone figure img, .fk-lecon-corps figure img, .fk-description figure img { display: inline-block; max-width: 100%; height: auto; border-radius: 10px; }
[data-image="petite"] img { width: 240px; }
[data-image="moyenne"] img { width: 480px; }
[data-image="grande"] img { width: 100%; }
.fk-riche-zone figcaption, .fk-lecon-corps figcaption, .fk-description figcaption { font-size: 13px; color: var(--f-muted); margin-top: 6px; font-style: italic; }

/* ---------- Tests au cœur de la leçon ---------- */
.fk-activite-repere { display: block; border: 2px dashed var(--f-primary); background: var(--f-primary-light); border-radius: 12px; padding: 10px 14px; margin: 14px 0; cursor: pointer; user-select: none; }
.fk-activite-repere span { color: var(--f-text); }
.fk-activite-repere small { display: block; color: var(--f-muted); font-size: 12px; margin-top: 4px; }
.fk-activite { border: 1px solid #cfe5dc; border-left: 5px solid var(--f-secondary); background: #fffdf6; border-radius: 14px; padding: 16px 18px; margin: 20px 0; }
.fk-activite-tete { font-weight: 800; font-size: 14px; color: var(--f-primary-dark); text-transform: uppercase; letter-spacing: .3px; }
.fk-activite-enonce { font-weight: 700; margin: 8px 0 12px; }
.fk-activite textarea.fk-input { resize: vertical; }
.fk-activite-actions { margin-top: 10px; }
.fk-activite-retour { margin-top: 12px; padding: 12px 14px; border-radius: 10px; background: var(--f-primary-light); color: var(--f-primary-dark); }
.fk-activite-retour.ko { background: var(--f-warning-bg); color: #6b5200; }
.fk-activite-retour p { margin: 8px 0 0; color: var(--f-text); }
.fk-activite-verrou { text-align: center; color: var(--f-muted); font-weight: 700; padding: 14px; border: 1px dashed var(--f-border); border-radius: 12px; }
.fk-questionnaire { display: flex; flex-direction: column; gap: 10px; }
.fk-q-item { border: 1px solid var(--f-border); border-radius: 10px; padding: 10px 12px; margin: 0; background: #fff; }
.fk-q-item legend { font-weight: 600; padding: 0 4px; }
.fk-q-echelle { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.fk-q-echelle label { border: 1px solid var(--f-border); border-radius: 999px; padding: 5px 10px; font-size: 13px; cursor: pointer; background: #fff; }
.fk-q-echelle label:has(input:checked) { background: var(--f-primary-light); border-color: var(--f-primary); color: var(--f-primary-dark); font-weight: 700; }

/* ---------- Diaporama et présentations PowerPoint (26 septembre 2026) ---------- */
.fk-riche-barre select[data-police] { max-width: 130px; }
.fk-riche-barre select[data-taille] { max-width: 76px; }
/* Éditeur : repères de diapositive et de présentation */
.fk-riche-zone.fk-riche-diapos::before { content: attr(data-diapo1); display: block; font-size: 12px; font-weight: 800; color: #6a3fb5; margin-bottom: 6px; }
.fk-diapo-repere { display: flex; align-items: center; gap: 10px; margin: 18px 0; padding: 6px 12px; border-top: 3px solid #6a3fb5; background: #f3edfc; color: #4b2a86; border-radius: 0 0 10px 10px; cursor: pointer; user-select: none; font-weight: 800; font-size: 13px; }
.fk-diapo-repere small { color: #7b6a98; font-weight: 600; font-size: 12px; }
.fk-presentation-repere { display: block; border: 2px dashed #1769aa; background: #e8f0fb; border-radius: 12px; padding: 10px 14px; margin: 14px 0; cursor: pointer; user-select: none; }
.fk-presentation-repere small { display: block; color: var(--f-muted); font-size: 12px; margin-top: 4px; }

/* Lecteur : diaporama intégré */
.fk-diaporama-cadre { position: relative; border: 1px solid var(--f-border); border-radius: 16px; background: #fff; box-shadow: var(--f-shadow); margin: 16px 0; overflow: hidden; }
.fk-diaporama-cadre:focus { outline: none; }
.fk-diaporama-cadre:focus-visible { outline: 3px solid var(--f-secondary); }
.fk-diaporama-cadre .fk-lecon-corps { padding: 22px 26px; min-height: 340px; }
.fk-lecon-corps.fk-diaporama > .fk-diapo:not(.actif), .fk-lecon-corps.fk-diaporama > .fk-activite-verrou { display: none; }
.fk-lecon-corps.fk-diaporama > .fk-diapo.actif { animation: fk-diapo-entree .25s ease; }
@keyframes fk-diapo-entree { from { opacity: 0; transform: translateX(12px); } to { opacity: 1; transform: none; } }
.fk-diapo > :first-child { margin-top: 0; }
.fk-diapo-tout .fk-diapo + .fk-diapo { border-top: 2px dashed #d9cdef; margin-top: 22px; padding-top: 18px; }
.fk-diapo-tout .fk-diapo-progres, .fk-diapo-tout [data-prec], .fk-diapo-tout [data-suiv], .fk-diapo-tout .fk-diapo-compteur, .fk-diapo-tout [data-plein] { display: none; }
.fk-diapo-progres { height: 4px; background: #eef2f0; }
.fk-diapo-progres span { display: block; height: 100%; background: var(--f-primary); transition: width .25s; }
.fk-diapo-nav { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-top: 1px solid var(--f-border); background: #f8faf9; flex-wrap: wrap; }
.fk-diapo-compteur { flex: 1; text-align: center; font-weight: 800; color: var(--f-muted); font-size: 14px; }
.fk-diapo-compteur b { color: var(--f-accent); font-weight: 700; }
.fk-diapo-outils { display: flex; gap: 4px; }
.fk-diapo-nav button:disabled { opacity: .4; cursor: not-allowed; }
/* Plein écran (API du navigateur, ou repli pour iPhone) */
.fk-diaporama-cadre:fullscreen, .fk-pres-cadre:fullscreen { border-radius: 0; display: flex; flex-direction: column; background: #fff; }
.fk-diaporama-cadre:-webkit-full-screen, .fk-pres-cadre:-webkit-full-screen { border-radius: 0; display: flex; flex-direction: column; background: #fff; width: 100%; height: 100%; }
.fk-plein-ecran { position: fixed !important; inset: 0; z-index: 1000; margin: 0 !important; border-radius: 0 !important; display: flex; flex-direction: column; background: #fff; }
body.fk-sans-defilement { overflow: hidden; }
.fk-diaporama-cadre:fullscreen .fk-lecon-corps, .fk-diaporama-cadre.fk-plein-ecran .fk-lecon-corps { flex: 1; overflow-y: auto; font-size: clamp(18px, 2.2vw, 28px); padding: 4vh 6vw; }
.fk-diaporama-cadre:-webkit-full-screen .fk-lecon-corps { flex: 1; overflow-y: auto; font-size: clamp(18px, 2.2vw, 28px); padding: 4vh 6vw; }

/* Lecteur : présentations (PDF, PowerPoint, Google Slides, OneDrive) */
.fk-presentation { margin: 18px 0; }
.fk-pres-cadre { border: 1px solid var(--f-border); border-radius: 16px; overflow: hidden; background: #fff; box-shadow: var(--f-shadow); }
.fk-pres-cadre:focus { outline: none; }
.fk-pres-tete { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 8px 14px; background: #f8faf9; border-bottom: 1px solid var(--f-border); font-size: 14px; }
.fk-pres-scene { background: #2b3a36; display: flex; justify-content: center; align-items: center; min-height: 220px; padding: 10px; position: relative; }
.fk-pres-scene canvas { max-width: 100%; background: #fff; box-shadow: 0 6px 20px rgba(0, 0, 0, .3); }
.fk-pres-charge { color: #fff; position: absolute; }
.fk-pres-iframe .fk-video { margin: 0; border-radius: 0; }
.fk-pres-note { font-size: 12px; color: var(--f-muted); margin: 0; padding: 6px 14px; }
.fk-pres-cadre:fullscreen .fk-pres-scene, .fk-pres-cadre.fk-plein-ecran .fk-pres-scene { flex: 1; }
.fk-pres-cadre:fullscreen .fk-video, .fk-pres-cadre.fk-plein-ecran .fk-video { flex: 1; padding-top: 0; }
@media (max-width: 640px) {
  .fk-diaporama-cadre .fk-lecon-corps { padding: 16px; min-height: 260px; }
  .fk-diapo-nav button span { display: none; }
  .fk-diapo-nav { gap: 6px; padding: 8px; }
}

/* ---------- Fiche d'exercice au cœur d'une leçon (26 septembre 2026) ---------- */
.fk-fiche { display: flex; flex-direction: column; gap: 14px; }
.fk-fiche-champ { border: 1px solid var(--f-border); border-radius: 12px; padding: 12px 14px; margin: 0; background: #fff; min-width: 0; }
.fk-fiche-champ legend { font-weight: 700; padding: 0 4px; line-height: 1.5; }
.fk-fiche-champ legend small { color: var(--f-muted); font-weight: 500; }
.fk-fiche-champ > .fk-input { width: 100%; margin-top: 4px; }
.fk-fiche-lignes { resize: vertical; line-height: 1.7; background-image: repeating-linear-gradient(transparent, transparent calc(1.7em - 1px), #e4ebe8 calc(1.7em - 1px), #e4ebe8 1.7em); background-attachment: local; }
.fk-fiche-options { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 0 10px; margin-top: 4px; }
.fk-fiche-options .fk-choix { margin-bottom: 8px; }
.fk-fiche-autre { flex-wrap: wrap; grid-column: 1 / -1; }
.fk-fiche-autre .fk-input { flex: 1; min-width: 160px; padding: 6px 10px; }
.fk-fiche-edit { border: 1px solid var(--f-border); border-left: 4px solid var(--f-secondary); border-radius: 12px; padding: 10px 12px; margin-bottom: 10px; background: #fffdf6; }
.fk-fiche-edit-tete { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
.fk-fiche-edit-tete select { width: auto; flex: 1; min-width: 200px; }
.fk-fiche-edit-outils { display: flex; gap: 2px; }
.fk-fiche-edit textarea { width: 100%; }
.fk-fiche-reponses { margin: 0; padding-left: 20px; }
.fk-fiche-reponses li { margin-bottom: 6px; }
/* Texte à trous dans une fiche d'exercice */
.fk-fiche-trous { line-height: 2.2; }
.fk-fiche-trous p { margin: 0 0 8px; }
.fk-fiche-trous .fk-trou.juste { border-color: var(--f-primary); background: var(--f-primary-light); }
.fk-fiche-trous .fk-trou.faux { border-color: var(--f-danger); background: var(--f-danger-bg); }
.fk-trou-attendu { color: var(--f-primary-dark); font-weight: 700; margin-right: 6px; }
.fk-fiche-edit [data-trous-ed] .fk-riche-zone { min-height: 90px; }

/* ---------- Ouverture progressive des modules / leçons (26 septembre 2026) ---------- */
.fk-ouverture-champs { padding: 12px 14px; margin: 6px 0 14px; }
.fk-ouverture-champs legend { font-weight: 700; padding: 0 6px; }
.fk-pastille-ouverture { background: #efe7fb; color: #5b3a99; }
.fk-lecteur-item.verrou { opacity: .65; }
.fk-module-verrou { display: block; font-weight: 600; color: #5b3a99; text-transform: none; letter-spacing: 0; font-size: 11px; margin-top: 2px; }
.fk-verrou-page { margin-top: 10px; }
.fk-compte-rebours { font-size: 22px; font-weight: 800; color: var(--f-primary-dark); font-variant-numeric: tabular-nums; min-height: 1em; }

/* HTML importé (rendu fidèle, 26 septembre 2026) : un tableau pleine largeur
   garde sa mise en page de tableau (au lieu du bloc défilant par défaut). */
.fk-riche-zone table[style*="width: 100%"], .fk-lecon-corps table[style*="width: 100%"], .fk-description table[style*="width: 100%"] { display: table; }
.fk-lecon-corps img, .fk-riche-zone img { max-width: 100%; height: auto; }
@media (max-width: 640px) {
  .fk-lecon-corps [style*="grid-template-columns"], .fk-riche-zone [style*="grid-template-columns"] { grid-template-columns: 1fr !important; }
  .fk-lecon-corps [style*="display: flex"], .fk-riche-zone [style*="display: flex"] { flex-wrap: wrap; }
}

/* ---------- Lecteur en plein écran + leçon « page HTML complète » (26 septembre 2026) ---------- */
.fk-page-conteneur { margin: 0 0 10px; }
.fk-page-html { display: block; width: 100%; border: 0; background: transparent; min-height: 120px; }
.fk-bouton-nav-flottant, .fk-voile-tiroir, .fk-tiroir-actions, .fk-tiroir-fermer { display: none; }
.fk-tiroir-pied { padding: 14px 18px 24px; border-top: 1px solid var(--f-border); }
body.fk-plein #fkPied { display: none; } /* l'en-tête du site reste toujours visible */
body.fk-plein .fk-lecteur { display: block; min-height: calc(100vh - var(--fk-entete-h, 72px)); }
body.fk-plein .fk-lecteur-nav { display: block; position: fixed; top: 0; left: 0; bottom: 0; width: min(360px, 88vw); max-height: none; z-index: 80;
  transform: translateX(-105%); transition: transform .25s ease; box-shadow: 8px 0 30px rgba(0, 0, 0, .18); border-right: 0; border-bottom: 0; }
body.fk-plein .fk-lecteur.nav-ouverte .fk-lecteur-nav { transform: none; }
body.fk-plein .fk-voile-tiroir { display: block; position: fixed; inset: 0; background: rgba(10, 30, 25, .35); z-index: 75; opacity: 0; pointer-events: none; transition: opacity .25s; }
body.fk-plein .fk-lecteur.nav-ouverte .fk-voile-tiroir { opacity: 1; pointer-events: auto; }
body.fk-plein .fk-tiroir-actions { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; margin-bottom: 12px; }
body.fk-plein .fk-tiroir-fermer { display: inline-flex; margin-left: auto; }
body.fk-plein .fk-lecteur-bascule { display: none !important; }
body.fk-plein .fk-lecteur-contenu { padding: 64px clamp(14px, 4vw, 56px) 60px; max-width: 1200px; margin: 0 auto; }
body.fk-plein .fk-lecteur-contenu.fk-contenu-page { max-width: none; padding: 0 0 40px; }
body.fk-plein .fk-contenu-page > [data-apres-corps] { max-width: 1180px; margin: 0 auto; padding: 0 clamp(14px, 4vw, 40px); }
.fk-bouton-nav-flottant { position: fixed; top: calc(var(--fk-entete-h, 72px) + 12px); left: 12px; z-index: 70; width: 50px; height: 50px; border-radius: 16px; border: 0;
  background: var(--f-primary); color: #fff; box-shadow: 0 8px 22px rgba(11, 122, 92, .35); cursor: pointer; flex-direction: column; align-items: center; justify-content: center; line-height: 1; opacity: .92; }
.fk-bouton-nav-flottant span { font-size: 20px; }
.fk-bouton-nav-flottant small { font-size: 9px; font-weight: 800; margin-top: 3px; }
.fk-bouton-nav-flottant:hover, .fk-bouton-nav-flottant:focus-visible { opacity: 1; transform: scale(1.05); }
body.fk-plein .fk-bouton-nav-flottant { display: flex; }
@media (max-width: 640px) { .fk-bouton-nav-flottant { top: calc(var(--fk-entete-h, 64px) + 8px); left: 8px; width: 44px; height: 44px; border-radius: 14px; } }
/* Éditeur de leçon : choix Éditeur KEKELI / Page HTML complète */
.fk-mode-contenu { padding: 12px 14px; margin: 6px 0 14px; }
.fk-mode-contenu legend { font-weight: 700; padding: 0 6px; }
.fk-choix-mode { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 12px; }
.fk-choix-mode label { display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: baseline; border: 1.5px solid var(--f-border); border-radius: 12px; padding: 10px 12px; cursor: pointer; }
.fk-choix-mode label:has(input:checked) { border-color: var(--f-primary); background: var(--f-primary-light); }
.fk-choix-mode small { flex-basis: 100%; color: var(--f-muted); font-size: 12px; }
.fk-page-outils { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-bottom: 10px; }
.fk-page-code { width: 100%; min-height: 240px; font-family: ui-monospace, Consolas, monospace; font-size: 12px; margin-bottom: 10px; }
.fk-page-apercu { border: 1px dashed #cfdbd6; border-radius: 12px; overflow: hidden; background: #fff; min-height: 80px; }
.fk-page-apercu > .fk-vide { padding: 20px; }
@media (max-width: 640px) { .fk-choix-mode { grid-template-columns: 1fr; } }
/* Génération IA des quiz */
.fk-ia-lecons { display: grid; gap: 8px; max-height: 240px; overflow: auto; border: 1px solid var(--f-border); border-radius: 10px; padding: 10px 12px; }
.fk-ia-module b { display: block; font-size: 13px; margin-bottom: 4px; color: var(--f-primary-dark); }
.fk-ia-module .fk-case { margin: 0 0 4px 6px; }
.fk-ia-types { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 2px 12px; }
.fk-ia-proposition { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; }
.fk-ia-proposition input { margin-top: 5px; }
.fk-ia-reponses { margin: 6px 0; padding-left: 18px; font-size: 14px; }
.fk-ia-reponses li.ok { font-weight: 700; color: var(--f-primary-dark); }
.fk-ia-attendu { margin: 6px 0; font-size: 14px; }
.fk-ia-explication { display: block; color: var(--f-muted); margin-top: 4px; }

/* ---------- Paiement FedaPay / KkiaPay (26 septembre 2026) ---------- */
.fk-moyens-paiement { display: grid; gap: 10px; }
.fk-moyen-paiement { display: flex; align-items: center; gap: 14px; width: 100%; text-align: left; padding: 14px 16px; border: 2px solid var(--f-border, #dfe6e3); border-radius: 14px; background: #fff; cursor: pointer; font: inherit; }
.fk-moyen-paiement:hover:not(:disabled), .fk-moyen-paiement:focus-visible { border-color: var(--f-primary); background: var(--f-primary-light); }
.fk-moyen-paiement:disabled { opacity: .55; cursor: wait; }
.fk-moyen-paiement small { display: block; color: var(--f-muted); font-size: 13px; margin-top: 2px; }
.fk-moyen-icone { font-size: 28px; }
.fk-paiement-resultat { text-align: center; padding: 32px 24px; }
.fk-paiement-resultat h1 { font-size: 24px; margin: 8px 0 10px; }
.fk-paiement-resultat .fk-btn { margin: 6px 4px 0; }
.fk-tableau-revenus { width: 100%; border-collapse: collapse; font-size: 14px; }
.fk-tableau-revenus th, .fk-tableau-revenus td { padding: 8px 10px; border-bottom: 1px solid var(--f-border, #e5ebe8); text-align: left; }
.fk-tableau-revenus td.n, .fk-tableau-revenus th.n { text-align: right; white-space: nowrap; }
.fk-badge-test { display: inline-block; font-size: 11px; padding: 2px 8px; border-radius: 99px; background: var(--f-warning-bg); color: #6b5200; }

/* ---------- Zone de code : numéros de ligne (26 septembre 2026) ---------- */
.fk-code-cadre { border: 1px solid var(--f-border); border-radius: 10px; overflow: hidden; background: #fbfcfc; margin-bottom: 10px; }
.fk-code-cadre[hidden] { display: none; }
.fk-riche .fk-code-cadre { border: 0; border-radius: 0 0 10px 10px; margin: 0; }
.fk-code-corps { display: flex; align-items: stretch; }
.fk-code-gouttiere { position: relative; flex: none; width: 4ch; background: #eef3f1; border-right: 1px solid var(--f-border); }
.fk-code-lignes { position: absolute; inset: 0; margin: 0; padding: 12px 8px 12px 0; overflow: hidden; text-align: right; user-select: none; color: #8a9a94;
  font-family: ui-monospace, Consolas, monospace; font-size: 13px; line-height: 1.5; box-sizing: border-box; background: none; border: 0; }
.fk-code-corps > textarea { flex: 1; min-width: 0; margin: 0 !important; border: 0 !important; border-radius: 0 !important; padding: 12px 14px; white-space: pre; overflow: auto;
  font-family: ui-monospace, Consolas, monospace; font-size: 13px; line-height: 1.5; resize: vertical; outline: none; box-shadow: none; background: #fff; tab-size: 2; }
.fk-code-corps > textarea:focus { box-shadow: inset 0 0 0 2px var(--f-primary-light); }
.fk-code-etat { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; padding: 5px 10px; font-size: 12px; color: var(--f-muted); background: #eef3f1; border-top: 1px solid var(--f-border); }
.fk-code-etat label { display: inline-flex; align-items: center; gap: 6px; }
.fk-code-etat input { width: 80px; padding: 3px 6px; border: 1px solid var(--f-border); border-radius: 6px; font: inherit; }
.fk-page-code { min-height: 360px; }
.fk-code-corps > textarea.fk-page-code { height: 60vh; max-height: 75vh; }
.fk-code-corps > textarea.fk-riche-source { max-height: 75vh; }

/* ---------- Crédits IA et génération de formation (26 septembre 2026) ---------- */
.fk-ia-solde { background: #f3f8f6; border: 1px solid var(--f-border); border-radius: 12px; padding: 10px 14px; font-size: 14px; margin: 6px 0 4px; line-height: 1.55; }
.fk-ia-solde small { color: var(--f-muted); }
.fk-offres-ia { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 14px; }
.fk-offre-ia { border: 1.5px solid var(--f-border); border-radius: 16px; padding: 16px; display: flex; flex-direction: column; gap: 6px; background: #fff; }
.fk-offre-ia h3 { margin: 0; font-size: 17px; }
.fk-offre-credits { font-weight: 800; color: var(--f-primary-dark); font-size: 20px; }
.fk-offre-prix { font-size: 16px; font-weight: 700; }
.fk-offre-ia small { color: var(--f-muted); font-size: 12px; flex: 1; }
.fk-tableau-revenus td.pos { color: var(--f-primary-dark); font-weight: 700; }
.fk-tableau-revenus td.neg { color: #8a4b00; }
.fk-gen-modules { padding-left: 22px; line-height: 2; }
.fk-gen-modules small { color: var(--f-muted); }

/* ---------- Avantages formateurs : niveaux, outils IA, codes promo, certificats (26 septembre 2026) ---------- */
.fk-badge-pro { display: inline-flex; align-items: center; gap: 3px; font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 99px; vertical-align: middle; white-space: nowrap; }
.fk-badge-pro-1 { background: #eef3f1; color: #3d5a50; }
.fk-badge-pro-2 { background: #e6f0ff; color: #1d4ea8; }
.fk-badge-pro-3 { background: linear-gradient(90deg, #fff3cc, #ffe39a); color: #6b4a00; }
h1 .fk-badge-pro { font-size: 13px; margin-left: 6px; }
.fk-outils-ia { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 10px 12px; margin: 10px 0; border: 1px dashed var(--f-border); border-radius: 12px; background: #f7faf9; }
.fk-outils-ia > b, .fk-outils-ia > span { font-size: 13px; color: var(--f-muted); margin-right: 4px; }
.fk-outil-verrou { opacity: .65; }
.fk-verrou-txt { font-size: 12px; color: var(--f-muted); }
.fk-niveau-actuel { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; padding: 12px 16px; border-radius: 14px; margin: 12px 0; border: 1px solid var(--f-border); background: #f3f8f6; }
.fk-niveau-1 { background: #f3f8f6; }
.fk-niveau-2 { background: #eef4ff; border-color: #c9dbff; }
.fk-niveau-3 { background: linear-gradient(90deg, #fffaf0, #fff1cc); border-color: #f1d98a; }
.fk-tableau-avantages-cadre { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.fk-tableau-avantages { width: 100%; min-width: 560px; border-collapse: collapse; font-size: 14px; background: #fff; }
.fk-tableau-avantages th, .fk-tableau-avantages td { padding: 8px 10px; border-bottom: 1px solid var(--f-border, #e5ebe8); text-align: left; }
.fk-tableau-avantages .c { text-align: center; white-space: nowrap; }
.fk-tableau-avantages .actuel { background: #eaf6f0; font-weight: 700; }
.fk-tableau-avantages thead th { position: sticky; top: 0; background: #f7faf9; }
.fk-bonus { display: inline-block; font-size: 12px; font-weight: 700; color: #1d6b3c; background: #e5f6ec; padding: 2px 8px; border-radius: 99px; }
.fk-offre-niveau { font-size: 12px; font-weight: 600; color: var(--f-primary-dark); }
.fk-lancement { font-size: 12px; font-weight: 700; color: #a0420b; }
.fk-lancement s, .fk-prix-barre { color: var(--f-muted); font-weight: 400; margin-right: 4px; }
.fk-code-promo { margin: 10px 0; font-size: 14px; }
.fk-code-promo summary { cursor: pointer; color: var(--f-primary-dark); font-weight: 600; }
.fk-code-promo > div { display: flex; gap: 8px; margin-top: 8px; flex-wrap: wrap; }
.fk-code-promo input { flex: 1; min-width: 140px; text-transform: uppercase; padding: 8px 10px; border: 1px solid var(--f-border); border-radius: 8px; font: inherit; }
.fk-vente-bloc { border: 1px solid var(--f-border); border-radius: 12px; padding: 10px 12px; margin: 10px 0; background: #fff; }
.fk-vente-tete { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 6px; }
.fk-vente-titre { font-weight: 700; font-size: 14px; }
.fk-vente-apercu { white-space: pre-wrap; font-size: 14px; line-height: 1.5; max-height: 260px; overflow: auto; background: #f7faf9; border-radius: 8px; padding: 8px 10px; }
.fk-stat-alerte { background: var(--f-warning-bg, #fff6d6); border-radius: 10px; padding: 10px 12px; margin: 10px 0; }
.fk-perso-cert img { max-height: 60px; max-width: 180px; border: 1px solid var(--f-border); border-radius: 6px; background: #fff; padding: 4px; }

/* Certificat imprimable */
.fk-certificat { max-width: 900px; margin: 20px auto; background: #fff; border: 10px solid var(--cert-couleur, #1d6b3c); outline: 2px solid var(--cert-couleur, #1d6b3c); outline-offset: -22px;
  padding: 48px 56px; text-align: center; font-family: Georgia, 'Times New Roman', serif; color: #222; aspect-ratio: 1.414 / 1; display: flex; flex-direction: column; justify-content: center; gap: 10px; box-sizing: border-box; }
.fk-certificat .cert-logos { display: flex; justify-content: space-between; align-items: center; min-height: 50px; }
.fk-certificat .cert-logos img { max-height: 60px; max-width: 180px; }
.fk-certificat .cert-titre { font-size: 38px; letter-spacing: 2px; color: var(--cert-couleur, #1d6b3c); margin: 0; text-transform: uppercase; }
.fk-certificat .cert-nom { font-size: 32px; font-style: italic; margin: 6px 0; border-bottom: 1px solid #ccc; display: inline-block; padding: 0 24px 4px; }
.fk-certificat .cert-formation { font-size: 22px; font-weight: 700; margin: 4px 0; }
.fk-certificat .cert-pied { display: flex; justify-content: space-between; align-items: flex-end; margin-top: 18px; font-size: 13px; font-family: system-ui, sans-serif; gap: 12px; }
.fk-certificat .cert-signature img { max-height: 60px; max-width: 200px; display: block; margin: 0 auto 4px; }
.fk-certificat .cert-signature { border-top: 1px solid #999; padding-top: 4px; min-width: 180px; }
.fk-certificat .cert-code { color: #666; text-align: left; }
.fk-cert-verif { max-width: 900px; margin: 0 auto 10px; }
@media (max-width: 640px) {
  .fk-certificat { padding: 24px 18px; border-width: 6px; outline-offset: -14px; aspect-ratio: auto; }
  .fk-certificat .cert-titre { font-size: 24px; }
  .fk-certificat .cert-nom { font-size: 22px; }
  .fk-certificat .cert-formation { font-size: 17px; }
}
@media print {
  body.fk-impression-cert header, body.fk-impression-cert footer, body.fk-impression-cert .fk-cert-verif, body.fk-impression-cert .fk-no-print { display: none !important; }
  body.fk-impression-cert { background: #fff; }
  body.fk-impression-cert .fk-certificat { margin: 0 auto; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  @page { size: A4 landscape; margin: 10mm; }
}
.fk-modes-gen { border: 1px solid var(--f-border); border-radius: 12px; padding: 10px 12px; margin: 12px 0; display: grid; gap: 10px; }
.fk-modes-gen legend { font-weight: 700; padding: 0 6px; }
.fk-mode-gen { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border: 1.5px solid var(--f-border); border-radius: 12px; cursor: pointer; line-height: 1.55; font-size: 14px; }
.fk-mode-gen:has(input:checked) { border-color: var(--f-primary); background: #f3faf6; }
.fk-mode-gen input { margin-top: 4px; }
.fk-reprise { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; padding: 8px 0; border-bottom: 1px solid var(--f-border); }
.fk-reprise small { color: var(--f-muted); }
.fk-image-ia { text-align: center; margin: 10px 0; }
.fk-image-ia img { max-width: 100%; max-height: 360px; border-radius: 12px; border: 1px solid var(--f-border); box-shadow: 0 4px 14px rgba(0,0,0,.08); }

/* ---------- Mise en forme avancée (Formateur Pro / Premium, 27 septembre 2026) ---------- */
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) [data-bloc="colonnes-2"], :is(.fk-riche-zone, .fk-lecon-corps, .fk-description) [data-bloc="colonnes-3"] { display: grid; gap: 16px; margin: 14px 0; }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) [data-bloc="colonnes-2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) [data-bloc="colonnes-3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) [data-bloc="colonne"] { min-width: 0; padding: 10px 14px; border-radius: 10px; background: #f7faf9; border: 1px solid var(--f-border, #e5ebe8); }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) [data-bloc="colonne"] > :first-child { margin-top: 0; }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) [data-bloc="colonne"] > :last-child { margin-bottom: 0; }
@media (max-width: 640px) { :is(.fk-riche-zone, .fk-lecon-corps, .fk-description) [data-bloc="colonnes-2"], :is(.fk-riche-zone, .fk-lecon-corps, .fk-description) [data-bloc="colonnes-3"] { grid-template-columns: 1fr; } }
.fk-riche-zone details, .fk-lecon-corps details, .fk-description details { border: 1px solid var(--f-border, #e5ebe8); border-radius: 12px; margin: 12px 0; background: #fff; overflow: hidden; }
.fk-riche-zone summary, .fk-lecon-corps summary, .fk-description summary { cursor: pointer; padding: 12px 16px; font-weight: 700; background: #f3f8f6; list-style: none; }
.fk-lecon-corps summary::-webkit-details-marker, .fk-description summary::-webkit-details-marker, .fk-riche-zone summary::-webkit-details-marker { display: none; }
.fk-riche-zone summary::before, .fk-lecon-corps summary::before, .fk-description summary::before { content: "▸ "; color: var(--f-primary); transition: transform .15s; display: inline-block; }
.fk-lecon-corps details[open] summary::before, .fk-description details[open] summary::before, .fk-riche-zone details summary::before { transform: rotate(90deg); }
.fk-riche-zone details > :not(summary), .fk-lecon-corps details > :not(summary), .fk-description details > :not(summary) { margin-left: 16px; margin-right: 16px; }
.fk-riche-zone summary { cursor: text; }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) ol[data-bloc="etapes"] { list-style: none; counter-reset: etape; padding-left: 0; margin: 14px 0; }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) ol[data-bloc="etapes"] > li { counter-increment: etape; position: relative; padding: 2px 0 12px 52px; border-left: 2px dashed var(--f-border, #d6e2dd); margin-left: 17px; }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) ol[data-bloc="etapes"] > li:last-child { border-left-color: transparent; }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) ol[data-bloc="etapes"] > li::before { content: counter(etape); position: absolute; left: -18px; top: 0; width: 34px; height: 34px; border-radius: 50%; background: var(--f-primary, #1d6b3c); color: #fff; font-weight: 800; display: grid; place-items: center; }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) ol[data-bloc="etapes"] > li > p:first-child { margin-top: 5px; }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) blockquote[data-bloc="citation"] { border: 0; border-radius: 14px; background: linear-gradient(135deg, #f3f8f6, #eef4ff); padding: 20px 26px; font-size: 1.15em; font-style: italic; text-align: center; position: relative; }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) blockquote[data-bloc="citation"] > p:last-child:not(:first-child) { font-size: .8em; font-style: normal; color: var(--f-muted); margin-bottom: 0; }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) a[data-bloc="bouton"] { display: inline-block; padding: 11px 22px; border-radius: 999px; background: var(--f-primary, #1d6b3c); color: #fff !important; font-weight: 700; text-decoration: none !important; box-shadow: 0 3px 10px rgba(0,0,0,.12); }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) a[data-bloc="bouton"]:hover { filter: brightness(1.08); }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) p[data-bloc="lettrine"]::first-letter { float: left; font-size: 3.2em; line-height: .9; font-weight: 800; color: var(--f-primary, #1d6b3c); margin: 4px 8px 0 0; font-family: Georgia, serif; }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) hr[data-bloc="separateur"] { border: 0; height: 24px; margin: 18px 0; background: none; text-align: center; }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) hr[data-bloc="separateur"]::after { content: "✦ ✦ ✦"; color: var(--f-primary, #1d6b3c); letter-spacing: 10px; font-size: 14px; }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) [data-bloc="colonnes-2"] > [data-bloc="colonne"], :is(.fk-riche-zone, .fk-lecon-corps, .fk-description) [data-bloc="colonnes-3"] > [data-bloc="colonne"] { margin: 0 !important; }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) [data-bloc="colonnes-2"], :is(.fk-riche-zone, .fk-lecon-corps, .fk-description) [data-bloc="colonnes-3"] { align-items: stretch; background: none !important; padding: 0 !important; border: 0 !important; }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) p[data-bloc="lettrine"] { padding: 0; margin: 1em 0; border-radius: 0; }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) a[data-bloc="bouton"] { margin: 0; }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) hr[data-bloc="separateur"] { padding: 0; }

/* ---------- Barre « Fermer / Enregistrer » fixe en haut des fenêtres d'édition (27 septembre 2026) ---------- */
.fk-modale-barre { position: sticky; top: -24px; z-index: 6; display: flex; justify-content: flex-end; gap: 8px; margin: -24px -24px 12px; padding: 10px 16px;
  background: rgba(255,255,255,.97); border-bottom: 1px solid var(--f-border); border-radius: 18px 18px 0 0; backdrop-filter: blur(4px); }
.fk-modale-avec-barre .fk-riche-barre { top: 30px; }
.fk-barre-collante { position: sticky; top: 64px; z-index: 20; display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; padding: 10px 14px; margin: 0 0 14px;
  background: rgba(255,255,255,.96); border: 1px solid var(--f-border); border-radius: 12px; box-shadow: 0 4px 14px rgba(0,0,0,.06); backdrop-filter: blur(4px); }
.fk-barre-collante .fk-barre-titre { margin-right: auto; align-self: center; font-weight: 700; font-size: 14px; color: var(--f-muted); }
.fk-pastille-verrou { background: #eef2ff; color: #3730a3; }
.fk-pastille-desactivee { background: #fde8e8; color: #9b1c1c; }
.fk-case-desactiver { margin-top: 10px; font-size: 14px; line-height: 1.45; }
/* Mise en forme avancée : suite (27 septembre 2026) */
.fk-riche-avance { font-weight: 700; color: #6b3fa0 !important; background: #f5efff !important; border-radius: 8px; }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) h2[data-bloc="titre-bandeau"] { background: linear-gradient(90deg, var(--f-primary, #1d6b3c), #2f8f5b); color: #fff; padding: 10px 18px; border-radius: 10px; margin: 22px 0 12px; font-size: 1.25em; }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) [data-bloc="cartes"] { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 14px; margin: 14px 0; padding: 0; background: none; }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) [data-bloc="carte"] { margin: 0; padding: 14px 16px; background: #fff; border: 1px solid var(--f-border, #e5ebe8); border-radius: 14px; box-shadow: 0 3px 10px rgba(0,0,0,.05); text-align: center; }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) [data-bloc="carte"] > p:first-child { font-size: 2em; margin: 0 0 4px; }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) ul[data-bloc="coches"] { list-style: none; padding: 0; margin: 12px 0; background: none; }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) ul[data-bloc="coches"] > li { position: relative; padding: 6px 0 6px 34px; }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) ul[data-bloc="coches"] > li::before { content: "✓"; position: absolute; left: 0; top: 5px; width: 24px; height: 24px; border-radius: 50%; background: #e5f6ec; color: #1d6b3c; font-weight: 800; display: grid; place-items: center; font-size: 14px; }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) ul[data-bloc="chronologie"] { list-style: none; padding: 0 0 0 22px; margin: 14px 0; border-left: 3px solid var(--f-primary, #1d6b3c); border-radius: 0; background: none; }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) ul[data-bloc="chronologie"] > li { position: relative; padding: 0 0 12px 8px; }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) ul[data-bloc="chronologie"] > li::before { content: ""; position: absolute; left: -32px; top: 4px; width: 16px; height: 16px; border-radius: 50%; background: #fff; border: 3px solid var(--f-primary, #1d6b3c); }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) ul[data-bloc="chronologie"] > li > p:first-child { margin-top: 0; }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) [data-bloc="bulle-g"], :is(.fk-riche-zone, .fk-lecon-corps, .fk-description) [data-bloc="bulle-d"] { max-width: 78%; padding: 10px 14px; margin: 8px 0; border-radius: 16px; }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) [data-bloc="bulle-g"] { background: #f1f5f4; border-bottom-left-radius: 4px; }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) [data-bloc="bulle-d"] { background: #dcf3e6; margin-left: auto; border-bottom-right-radius: 4px; }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) [data-bloc="bulle-g"] > p, :is(.fk-riche-zone, .fk-lecon-corps, .fk-description) [data-bloc="bulle-d"] > p { margin: 0; }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) table[data-bloc="tableau-pro"] { width: 100%; border-collapse: separate; border-spacing: 0; border-radius: 12px; overflow: hidden; padding: 0; border: 1px solid var(--f-border, #e5ebe8); }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) table[data-bloc="tableau-pro"] th { background: var(--f-primary, #1d6b3c); color: #fff; padding: 10px 12px; text-align: left; }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) table[data-bloc="tableau-pro"] td { padding: 9px 12px; border-top: 1px solid var(--f-border, #e5ebe8); }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) table[data-bloc="tableau-pro"] tbody tr:nth-child(even) td { background: #f7faf9; }
:is(.fk-riche-zone, .fk-lecon-corps, .fk-description) span[data-bloc="etiquette"] { display: inline; padding: 1px 9px; margin: 0; border-radius: 99px; background: #fff1cc; color: #6b4a00; font-weight: 700; font-size: .92em; }
.fk-interrupteur { display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; border: 1.5px solid var(--f-border); border-radius: 12px; font-weight: 600; font-size: 14px; cursor: pointer; background: #fff; }
.fk-interrupteur:has(input:checked) { border-color: #6366f1; background: #eef2ff; color: #3730a3; }
.fk-desactive { opacity: .6; }
.fk-desactive .fk-lecon-titre, .fk-module.fk-desactive .fk-module-tete > span:first-child { text-decoration: line-through; text-decoration-color: rgba(0,0,0,.25); }

/* ---------- Petits écrans : tableaux en cartes, listes du programme (27 septembre 2026) ---------- */
@media (max-width: 700px) {
  .fk-table-wrap:has(> table.fk-table-cartes) { overflow: visible; }
  table.fk-table-cartes, table.fk-table-cartes tbody, table.fk-table-cartes tfoot { display: block; width: 100%; min-width: 0 !important; }
  table.fk-table-cartes thead { display: none; }
  table.fk-table-cartes tr { display: block; border: 1px solid var(--f-border, #e5ebe8); border-radius: 12px; padding: 6px 4px; margin: 0 0 10px; background: #fff; }
  table.fk-table-cartes td { display: flex; justify-content: space-between; align-items: center; gap: 12px; border: 0 !important; padding: 5px 10px !important; text-align: right !important; white-space: normal !important; }
  table.fk-table-cartes td::before { content: attr(data-label); font-weight: 700; font-size: 12px; color: var(--f-muted); text-align: left; flex: none; max-width: 45%; }
  table.fk-table-cartes td[data-label=""]::before { display: none; }
  table.fk-table-cartes td:first-child { display: block; text-align: left !important; font-size: 15px; }
  table.fk-table-cartes td:first-child::before { display: none; }
  table.fk-table-cartes td:empty { display: none; }
  .fk-module-tete { flex-direction: column; align-items: stretch; }
  .fk-module-tete .fk-outils { justify-content: flex-end; flex-wrap: nowrap !important; }
  .fk-lecon-ligne { flex-direction: column; align-items: stretch; gap: 6px; }
  .fk-lecon-ligne .fk-lecon-titre { flex-wrap: wrap; }
  .fk-lecon-ligne .fk-outils { flex-wrap: nowrap; align-items: center; justify-content: flex-end; }
  .fk-lecon-ligne .fk-outils > small { margin-right: auto; }
  .fk-section-head { flex-direction: column; align-items: stretch; }
  .fk-section-head > span, .fk-section-head > div:last-child { flex-wrap: wrap; }
  .fk-onglets { overflow-x: auto; flex-wrap: nowrap; -webkit-overflow-scrolling: touch; scrollbar-width: thin; }
  .fk-onglets > button { flex: none; white-space: nowrap; }
  .fk-barre-collante { top: 58px; }
  .fk-offres-ia { grid-template-columns: 1fr; }
  .fk-niveau-actuel { flex-direction: column; align-items: flex-start; }
}
.fk-lecon-ligne .fk-outils, .fk-module-tete .fk-outils { align-items: center; }
.fk-section-head > span { justify-content: flex-end; align-items: center; }
.fk-choix-ia { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 8px 0; }
.fk-choix-ia > span { font-weight: 700; font-size: 13px; color: var(--f-muted); min-width: 56px; }
.fk-puce-choix { border: 1.5px solid var(--f-border); background: #fff; border-radius: 12px; padding: 8px 12px; font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; display: inline-flex; flex-direction: column; align-items: center; line-height: 1.2; }
.fk-puce-choix small { font-weight: 500; color: var(--f-muted); font-size: 11px; margin-top: 2px; }
.fk-puce-choix.actif { border-color: var(--f-primary); background: #eaf6f0; color: var(--f-primary-dark); box-shadow: 0 0 0 3px rgba(29,107,60,.12); }

/* ---------- Menu principal déroulant et menu du compte (27 septembre 2026) ---------- */
.fk-nav-menu { position: relative; }
.fk-nav-menu-btn { background: none; border: 0; font: inherit; font-weight: 600; font-size: 14px; color: var(--f-text); cursor: pointer; padding: 8px 4px; display: inline-flex; gap: 4px; align-items: center; }
.fk-nav-menu.actif > .fk-nav-menu-btn, .fk-nav-menu-btn:hover { color: var(--f-primary); }
.fk-nav-sous { display: none; position: absolute; left: 0; top: 100%; min-width: 250px; background: #fff; border: 1px solid var(--f-border); border-radius: 14px; box-shadow: var(--f-shadow); padding: 8px; z-index: 45; }
.fk-nav-sous a { display: block; padding: 10px 12px; border-radius: 9px; font-weight: 500; white-space: nowrap; }
.fk-nav-sous a:hover { background: var(--f-bg); color: var(--f-primary-dark); }
.fk-nav-menu.ouvert .fk-nav-sous { display: block; }
@media (hover: hover) and (min-width: 861px) { .fk-nav-menu:hover .fk-nav-sous, .fk-nav-menu:focus-within .fk-nav-sous { display: block; } }
.fk-menu-compte-tete { padding: 8px 12px 10px; border-bottom: 1px solid var(--f-border); margin-bottom: 4px; }
.fk-menu-compte-tete b { display: block; }
.fk-menu-compte-tete small { color: var(--f-muted); }
.fk-menu-section { display: block; padding: 8px 12px 2px; font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--f-muted); }
.fk-menu-compte-liste { max-height: 80vh; overflow-y: auto; }
@media (max-width: 860px) {
  .fk-header.menu-ouvert .fk-nav-menu { width: 100%; }
  .fk-header.menu-ouvert .fk-nav-menu-btn { padding: 8px 0; }
  .fk-header.menu-ouvert .fk-nav-sous { position: static; display: block; box-shadow: none; border: 0; border-left: 3px solid var(--f-primary-light); border-radius: 0; padding: 0 0 0 10px; min-width: 0; }
  .fk-header.menu-ouvert .fk-nav-sous a { padding: 7px 8px; white-space: normal; }
}

/* ---------- Cartes d'accès rapide (tableaux de bord) (27 septembre 2026) ---------- */
.fk-cartes-actions { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 14px; margin: 16px 0 22px; }
.fk-carte-action { position: relative; display: flex; gap: 14px; align-items: flex-start; text-align: left; padding: 18px; border-radius: 16px; background: #fff; border: 1.5px solid var(--f-border);
  box-shadow: 0 2px 8px rgba(15,23,42,.06); cursor: pointer; font: inherit; color: var(--f-text); transition: transform .15s, box-shadow .15s, border-color .15s; width: 100%; }
.fk-carte-action:hover, .fk-carte-action:focus-visible { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(15,23,42,.10); border-color: var(--ca, var(--f-primary)); }
.fk-ca-icone { flex: none; width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center; font-size: 24px; background: var(--ca-fond, #eaf6f0); }
.fk-ca-texte { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.fk-ca-texte b { font-size: 15px; }
.fk-ca-texte small { color: var(--f-muted); font-size: 13px; line-height: 1.4; }
.fk-ca-badge { position: absolute; top: 12px; right: 12px; min-width: 26px; padding: 3px 9px; border-radius: 99px; font-size: 12px; font-weight: 800; color: #fff; background: var(--ca, var(--f-primary)); text-align: center; }
.fk-ca-vert { --ca: #1d6b3c; --ca-fond: #e5f6ec; }
.fk-ca-bleu { --ca: #1d4ea8; --ca-fond: #e6f0ff; }
.fk-ca-violet { --ca: #6d28d9; --ca-fond: #f1eaff; }
.fk-ca-orange { --ca: #c2410c; --ca-fond: #ffeedd; }
.fk-ca-rose { --ca: #be185d; --ca-fond: #fde8f1; }
.fk-ca-or { --ca: #a16207; --ca-fond: #fff4cc; }
.fk-ca-gris { --ca: #475569; --ca-fond: #eef2f5; }

/* ---------- Cartes des packs (27 septembre 2026) ---------- */
.fk-packs { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; align-items: stretch; margin-top: 10px; }
.fk-pack { --pc: #1d4ea8; --pc2: #3b82f6; --pf: #eef4ff; position: relative; display: flex; flex-direction: column; border-radius: 22px; overflow: hidden; background: #fff;
  border: 2px solid transparent; box-shadow: 0 8px 26px rgba(15,23,42,.10); transition: transform .2s, box-shadow .2s; }
.fk-pack:hover { transform: translateY(-6px); box-shadow: 0 18px 40px rgba(15,23,42,.18); border-color: var(--pc2); }
.fk-pack-bleu { --pc: #0b5ed7; --pc2: #38bdf8; --pf: #eaf6ff; }
.fk-pack-vert { --pc: #047857; --pc2: #34d399; --pf: #e8faf1; }
.fk-pack-violet { --pc: #6d28d9; --pc2: #a78bfa; --pf: #f3edff; }
.fk-pack-or { --pc: #92400e; --pc2: #f59e0b; --pf: #fff7e0; }
.fk-pack-tete { padding: 22px 20px 18px; color: #fff; background: linear-gradient(135deg, var(--pc), var(--pc2)); position: relative; }
.fk-pack-or .fk-pack-tete { background: linear-gradient(135deg, #1f1300, #7c4a03 45%, #f59e0b); }
.fk-pack-tete h3 { margin: 8px 0 2px; font-size: 22px; color: #fff; }
.fk-pack-tete p { margin: 0; font-size: 13px; opacity: .95; }
.fk-pack-icone { display: inline-grid; place-items: center; width: 52px; height: 52px; border-radius: 16px; background: rgba(255,255,255,.22); font-size: 28px; box-shadow: inset 0 0 0 1px rgba(255,255,255,.35); }
.fk-pack-ruban { position: absolute; top: 14px; right: -38px; transform: rotate(35deg); background: #fff; color: var(--pc); font-weight: 800; font-size: 11px; padding: 5px 44px; z-index: 2; box-shadow: 0 2px 6px rgba(0,0,0,.15); }
.fk-pack-corps { flex: 1; display: flex; flex-direction: column; gap: 12px; padding: 18px 20px 20px; background: linear-gradient(180deg, var(--pf), #fff 60%); }
.fk-pack-prix strong { font-size: 30px; font-weight: 900; color: var(--pc); letter-spacing: -.5px; }
.fk-pack-prix small { color: var(--f-muted); margin-left: 4px; }
.fk-pack-prix s { color: var(--f-muted); font-size: 14px; }
.fk-pack-lancement { font-size: 12px; font-weight: 700; color: #a0420b; }
.fk-pack-puces { display: flex; flex-wrap: wrap; gap: 6px; }
.fk-pack-puces span { font-size: 12px; font-weight: 600; padding: 5px 10px; border-radius: 99px; background: #fff; border: 1px solid rgba(0,0,0,.08); }
.fk-pack-puces b { color: #1d6b3c; }
.fk-pack-liste { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; font-size: 14px; flex: 1; align-content: start; }
.fk-pack-liste li { line-height: 1.35; }
.fk-pack-inclus { font-weight: 800; color: var(--pc); }
.fk-pack-btn { display: block; text-align: center; margin-top: 6px; padding: 13px 16px; border-radius: 14px; border: 0; font: inherit; font-weight: 800; font-size: 15px; color: #fff !important; cursor: pointer;
  background: linear-gradient(135deg, var(--pc), var(--pc2)); box-shadow: 0 6px 16px rgba(0,0,0,.15); transition: filter .15s, transform .15s; text-decoration: none !important; }
.fk-pack-btn:hover { filter: brightness(1.08); transform: scale(1.02); }
.fk-pack-btn-actuel { background: #fff; color: var(--pc) !important; border: 2px solid var(--pc); box-shadow: none; cursor: default; }
.fk-pack-actuel { border-color: var(--pc); }
.fk-pack-gratuit { margin: 16px 0 0; padding: 12px 16px; border-radius: 14px; background: #f3f6f5; border: 1px dashed var(--f-border); font-size: 14px; }
.fk-section-packs { background: radial-gradient(1200px 400px at 50% -10%, #e8f5ee, transparent), #fff; }
.fk-section-packs .fk-section-head { text-align: center; justify-content: center; }
.fk-section-packs .fk-section-head p { max-width: 640px; margin-left: auto; margin-right: auto; }
@media (prefers-reduced-motion: reduce) { .fk-pack, .fk-pack-btn, .fk-carte-action { transition: none; } .fk-pack:hover, .fk-carte-action:hover { transform: none; } }
.fk-carte-action .fk-ca-texte { padding-right: 22px; }
.fk-menu-compte-liste a.fk-bascule { display: flex; align-items: center; gap: 10px; }
.fk-bascule small { display: block; font-size: 11px; color: var(--f-muted); font-weight: 500; }
.fk-bascule-icone { font-size: 20px; width: 30px; text-align: center; flex: none; }
.fk-bascule.actuelle { background: var(--f-primary-light); }
.fk-bascule-coche { margin-left: auto; color: var(--f-primary-dark); font-weight: 800; }
