/* css/cours-plus.css — encarts des fiches de cours détaillées (Blocs 2 et 3)
   Classes préfixées fc- ; utilisées à l'intérieur de .content-box (gabarit includes/ressource-page.php).
   Chaque encart a sa couleur, une bordure franche et une étiquette : on doit reconnaître sa nature d'un coup d'œil. */

.rp .content-box .fc { --fc:#2563EB; --fc-bg:#EFF6FF; --fc-tx:#1E3A8A; }

/* ---------- Carte d'identité de la fiche : objectifs / prérequis / référentiel ---------- */
.rp .content-box .fc-id { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:14px; margin:4px 0 26px; }
.rp .content-box .fc-id > div { background:#FFFFFF; border:1px solid #CBD5E1; border-top:5px solid var(--c, #2563EB); border-radius:14px;
    padding:14px 18px 12px; box-shadow:0 6px 16px -12px rgba(15,23,42,.45); }
.rp .content-box .fc-id h4 { display:flex; align-items:center; gap:8px; margin:0 0 8px; font-size:.82rem; font-weight:800; letter-spacing:.06em;
    text-transform:uppercase; color:var(--c, #2563EB); }
.rp .content-box .fc-id ul { margin:0; padding-left:18px; }
.rp .content-box .fc-id li { font-size:.9rem; line-height:1.55; margin:3px 0; color:#334155; }
.rp .content-box .fc-id .obj { --c:#2563EB; }
.rp .content-box .fc-id .pre { --c:#B45309; }
.rp .content-box .fc-id .ref { --c:#7C3AED; }
.rp .content-box .fc-id .ref li b { color:#5B21B6; }

/* ---------- Situation professionnelle (fil rouge) ---------- */
.rp .content-box .fc-contexte { position:relative; margin:22px 0 28px; padding:20px 22px 16px 22px; border-radius:14px;
    background:#FFFBEB; border:1.5px solid #F59E0B; box-shadow:inset 6px 0 0 #F59E0B; }
.rp .content-box .fc-contexte::before { content:"📁 Situation professionnelle"; position:absolute; top:-12px; left:18px; padding:3px 12px;
    border-radius:20px; background:#F59E0B; color:#FFFFFF; font-size:.74rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.rp .content-box .fc-contexte p, .rp .content-box .fc-contexte li { color:#451A03; font-size:.95rem; }
.rp .content-box .fc-contexte p:last-child { margin-bottom:0; }

/* ---------- Encarts : définition, à retenir, piège, sécurité, en entreprise, info ---------- */
.rp .content-box .fc-box { position:relative; margin:24px 0 22px; padding:18px 20px 12px 22px; border-radius:12px;
    background:var(--fc-bg); border:1.5px solid var(--fc); box-shadow:inset 6px 0 0 var(--fc); }
.rp .content-box .fc-box::before { content:attr(data-t); position:absolute; top:-11px; left:16px; padding:2px 11px; border-radius:20px;
    background:var(--fc); color:#FFFFFF; font-size:.72rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.rp .content-box .fc-box p, .rp .content-box .fc-box li { color:var(--fc-tx); font-size:.94rem; }
.rp .content-box .fc-box strong { color:var(--fc-tx); }
.rp .content-box .fc-box > :last-child { margin-bottom:4px; }
.rp .content-box .fc-box ul { padding-left:20px; margin:6px 0; }
.rp .content-box .fc-box.def     { --fc:#2563EB; --fc-bg:#EFF6FF; --fc-tx:#1E3A8A; }
.rp .content-box .fc-box.retenir { --fc:#059669; --fc-bg:#ECFDF5; --fc-tx:#064E3B; }
.rp .content-box .fc-box.piege   { --fc:#DC2626; --fc-bg:#FEF2F2; --fc-tx:#7F1D1D; }
.rp .content-box .fc-box.secu    { --fc:#7C3AED; --fc-bg:#F5F3FF; --fc-tx:#3B0764; }
.rp .content-box .fc-box.pro     { --fc:#0E7490; --fc-bg:#ECFEFF; --fc-tx:#164E63; }
.rp .content-box .fc-box.info    { --fc:#475569; --fc-bg:#F8FAFC; --fc-tx:#1E293B; }
.rp .content-box .fc-box code { background:rgba(255,255,255,.75); color:var(--fc-tx); border:1px solid color-mix(in srgb, var(--fc) 25%, transparent); }

/* ---------- Schéma ---------- */
.rp .content-box .fc-schema { margin:22px 0; padding:18px 16px 10px; background:#FFFFFF; border:1px solid #CBD5E1; border-radius:14px; text-align:center; }
.rp .content-box .fc-schema svg { max-width:100%; height:auto; display:block; margin:0 auto; font-family:Inter, system-ui, sans-serif; }
.rp .content-box .fc-schema figcaption { margin-top:8px; font-size:.84rem; color:#475569; font-style:italic; }

/* ---------- Terminal avec système identifié (Cisco, Debian, Windows, Aruba, Proxmox) ---------- */
.rp .content-box .fc-term { margin:16px 0 18px; }
.rp .content-box .fc-term-h { display:flex; align-items:center; gap:8px; padding:7px 14px; border-radius:12px 12px 0 0; background:#1E293B;
    color:#E2E8F0; font:600 .78rem/1.3 ui-monospace, "JetBrains Mono", Consolas, monospace; letter-spacing:.02em; }
.rp .content-box .fc-term-h::before { content:""; width:10px; height:10px; border-radius:50%; background:var(--os, #64748B); flex-shrink:0; }
.rp .content-box .fc-term-h b { color:#FFFFFF; padding:1px 8px; border-radius:6px; background:var(--os, #64748B); font-size:.72rem; }
.rp .content-box .fc-term-h span { color:#94A3B8; margin-left:auto; font-weight:500; }
.rp .content-box .fc-term > .cmd-block { margin-top:0 !important; border-top-left-radius:0 !important; border-top-right-radius:0 !important;
    box-shadow:inset 4px 0 0 var(--os, #64748B) !important; }
.rp .content-box .fc-term > pre { margin-top:0 !important; border-top-left-radius:0 !important; border-top-right-radius:0 !important;
    box-shadow:inset 4px 0 0 var(--os, #64748B) !important; }
.rp .content-box .fc-term[data-os=cisco]  { --os:#049FD9; }
.rp .content-box .fc-term[data-os=debian]  { --os:#D70A53; }
.rp .content-box .fc-term[data-os=windows] { --os:#0078D4; }
.rp .content-box .fc-term[data-os=aruba]   { --os:#FF8300; }
.rp .content-box .fc-term[data-os=proxmox] { --os:#E57000; }
.rp .content-box .fc-term[data-os=fichier] { --os:#64748B; }

/* ---------- Étapes numérotées ---------- */
.rp .content-box ol.fc-etapes { list-style:none; counter-reset:fce; padding:0; margin:14px 0 20px; }
.rp .content-box ol.fc-etapes > li { counter-increment:fce; position:relative; padding:2px 0 10px 46px; margin:0 0 6px; }
.rp .content-box ol.fc-etapes > li::before { content:counter(fce); position:absolute; left:0; top:0; width:30px; height:30px; border-radius:50%;
    display:grid; place-items:center; background:var(--tc, #2563EB); color:#FFFFFF; font-weight:800; font-size:.9rem; }
.rp .content-box ol.fc-etapes > li:not(:last-child)::after { content:""; position:absolute; left:14px; top:34px; bottom:-2px; width:2px; background:#CBD5E1; }

/* ---------- Tableaux : en-tête marqué ---------- */
.rp .content-box table.fc-tab { width:100%; border-collapse:separate; border-spacing:0; border:1px solid #CBD5E1; border-radius:12px; overflow:hidden; background:#FFFFFF; font-size:.9rem; }
.rp .content-box table.fc-tab th { background:#1E293B; color:#FFFFFF; text-align:left; padding:10px 12px; font-weight:700; }
.rp .content-box table.fc-tab td { padding:9px 12px; border-top:1px solid #E2E8F0; color:#334155; vertical-align:top; }
.rp .content-box table.fc-tab tr:nth-child(even) td { background:#F8FAFC; }
.rp .content-box table.fc-tab td:first-child { font-weight:600; color:#0F172A; }

/* ---------- Synthèse « L'essentiel » ---------- */
.rp .content-box .fc-synthese { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:10px; counter-reset:fcs; margin:14px 0 24px; padding:0; list-style:none; }
.rp .content-box .fc-synthese li { counter-increment:fcs; position:relative; margin:0; padding:12px 14px 12px 50px; border-radius:12px; background:#FFFFFF;
    border:1.5px solid #A7F3D0; font-size:.92rem; line-height:1.5; color:#064E3B; }
.rp .content-box .fc-synthese li::before { content:counter(fcs); position:absolute; left:12px; top:11px; width:26px; height:26px; border-radius:8px;
    display:grid; place-items:center; background:#059669; color:#FFFFFF; font-weight:800; font-size:.82rem; }

/* ---------- Quiz : explication affichée après la réponse ---------- */
.rp .content-box .fc-explic { display:none; margin-top:10px; padding:10px 14px; border-radius:8px; background:#F8FAFC; border:1px dashed #94A3B8;
    font-size:.88rem; color:#334155; }
.rp .content-box .quiz-question:has(input:checked) .fc-explic { display:block; }

/* ---------- Pour aller plus loin : liens vers le portail ---------- */
.rp .content-box .fc-liens { display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:10px; margin:12px 0 4px; }
.rp .content-box .fc-liens a { display:flex; flex-direction:column; gap:2px; padding:12px 14px; border-radius:12px; background:#FFFFFF; border:1px solid #CBD5E1;
    text-decoration:none; transition:border-color .15s, transform .15s; }
.rp .content-box .fc-liens a:hover { border-color:var(--tc, #2563EB); transform:translateY(-2px); }
.rp .content-box .fc-liens a b { color:#0F172A; font-size:.9rem; }
.rp .content-box .fc-liens a small { color:#64748B; font-size:.78rem; }

/* ---------- Petites étiquettes dans le texte ---------- */
.rp .content-box .fc-k { display:inline-block; padding:1px 8px; border-radius:6px; font-size:.78rem; font-weight:700; background:#E2E8F0; color:#0F172A; }

/* ---------- Mobile ---------- */
@media (max-width: 760px) {
    .rp .content-box .fc-id, .rp .content-box .fc-synthese { grid-template-columns:1fr; }
    .rp .content-box .fc-term-h span { display:none; }
    .rp .content-box .fc-box, .rp .content-box .fc-contexte { padding:18px 14px 10px 18px; }
}

/* ---------- Impression : on garde les couleurs des encarts ---------- */
@media print {
    .rp .content-box .fc-box, .rp .content-box .fc-contexte, .rp .content-box .fc-id > div, .rp .content-box .fc-synthese li,
    .rp .content-box .fc-term-h, .rp .content-box table.fc-tab th { -webkit-print-color-adjust:exact; print-color-adjust:exact; break-inside:avoid; }
    .rp .content-box .fc-explic { display:block; }
    .rp .content-box .corrige-content { display:block; }
}

/* ---------- Encart « attaque » (scénario offensif expliqué) ---------- */
.rp .content-box .fc-box.attaque { --fc:#BE123C; --fc-bg:#FFF1F2; --fc-tx:#4C0519; }

/* ---------- Exercices des fiches : cadre violet marqué ---------- */
.rp .content-box .exercise-box.fc-ex { background:#FFFFFF; border:1.5px solid #7C3AED; box-shadow:inset 6px 0 0 #7C3AED; padding:16px 20px 14px 24px; margin:18px 0; }
.rp .content-box .exercise-box.fc-ex h4 { display:inline-block; margin:0 0 8px; padding:3px 12px; border-radius:20px; background:#7C3AED; color:#FFFFFF; font-size:.82rem; letter-spacing:.02em; }
.rp .content-box .exercise-box.fc-ex p, .rp .content-box .exercise-box.fc-ex li { color:#1E293B; font-size:.94rem; }
.rp .content-box .exercise-box.fc-ex .corrige-toggle { background:#7C3AED; color:#FFFFFF; border-color:#7C3AED; }
.rp .content-box .exercise-box.fc-ex .corrige-content { background:#ECFDF5; border-left:4px solid #059669; }
.rp .content-box .exercise-box.fc-ex .corrige-content p, .rp .content-box .exercise-box.fc-ex .corrige-content li { color:#064E3B; }

/* =================== v2 : présentation des fiches détaillées =================== */
.rp .content-box .fc-defs { position:absolute; width:0; height:0; overflow:hidden }

/* Titre : code de la fiche en pastille, texte sombre (plus de dégradé) ; filet de couleur du bloc */
.rp:has(.fc-id) .rp-hero { box-shadow:inset 0 6px 0 #0891B2, 0 18px 40px -28px rgba(15,23,42,.55) }
.rp:has(.fc-id[data-bloc="3"]) .rp-hero { box-shadow:inset 0 6px 0 #7C3AED, 0 18px 40px -28px rgba(15,23,42,.55) }
.rp h1.rp-title .fc-code { display:inline-block; margin-right:.2em; padding:.12em .42em; border-radius:.28em; background:#0891B2; color:#FFFFFF;
    font:800 .62em/1.3 ui-monospace, "JetBrains Mono", Consolas, monospace; letter-spacing:.02em; vertical-align:.2em }
.rp:has(.fc-id[data-bloc="3"]) h1.rp-title .fc-code { background:#7C3AED }
.rp:has(.fc-id) h1.rp-title { color:#0F172A }

/* Texte justifié partout (corps, encadrés, cartes, exercices, corrigés), coupure des mots en français */
.rp .content-box:has(.fc-id) :is(p, li, dd, label) { text-align:justify; -webkit-hyphens:auto; hyphens:auto }
.rp .content-box:has(.fc-id) :is(td, th, figcaption, pre, .cmd-block, .fc-route *, .fc-liens *, .fc-pre-l *, .quiz-question label, .quiz-question > p, .esp-chip, h4) { text-align:left; -webkit-hyphens:manual; hyphens:manual }

/* Titres de section : pictogramme de couleur selon la nature de la partie */
.rp .content-box .fc-h2i { display:inline-grid; place-items:center; width:40px; height:40px; margin-right:12px; border-radius:11px; vertical-align:-8px;
    background:var(--c); color:#FFFFFF; font-size:21px; box-shadow:0 8px 16px -10px var(--c) }

/* Prérequis : liens vers les fiches à revoir */
.rp .content-box .fc-pre-l { display:flex; flex-wrap:wrap; gap:6px; margin-top:5px }
.rp .content-box .fc-pre-l a { display:inline-flex; align-items:center; gap:4px; padding:2px 9px; border-radius:7px; background:#FEF3C7; border:1px solid #F59E0B;
    color:#78350F; font-size:.78rem; font-weight:700; text-decoration:none }
.rp .content-box .fc-pre-l a::before { content:"↗"; font-weight:800 }
.rp .content-box .fc-pre-l a:hover { background:#F59E0B; color:#FFFFFF }

/* Parcours de la fiche : 5 étapes cliquables, gros numéro */
.rp .content-box .fc-route { display:grid; grid-template-columns:repeat(5, minmax(0, 1fr)); gap:8px; margin:0 0 18px }
.rp .content-box .fc-route a { display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:12px; background:#FFFFFF;
    border:1.5px solid #CBD5E1; border-top:5px solid var(--c); text-decoration:none; transition:transform .15s, border-color .15s }
.rp .content-box .fc-route .n { flex:0 0 auto; font-size:2.1rem; font-weight:900; line-height:1; color:var(--c) }
.rp .content-box .fc-route .t { display:flex; flex-direction:column; gap:2px; min-width:0 }
.rp .content-box .fc-route b { display:flex; align-items:center; gap:4px; color:#0F172A; font-size:.9rem }
.rp .content-box .fc-route b i { font-size:16px; color:var(--c) }
.rp .content-box .fc-route small { color:#475569; font-size:.74rem; font-weight:600; line-height:1.3 }
.rp .content-box .fc-route a:hover { border-color:var(--c); transform:translateY(-2px) }

/* Test express des prérequis */
.rp .content-box .fc-test { margin:0 0 26px; border:1.5px solid #F59E0B; border-radius:12px; background:#FFFFFF; overflow:hidden }
.rp .content-box .fc-test > summary { cursor:pointer; list-style:none; display:flex; align-items:center; gap:10px; padding:12px 16px; background:#FFFBEB; font-weight:800; color:#78350F }
.rp .content-box .fc-test > summary::-webkit-details-marker { display:none }
.rp .content-box .fc-test > summary::after { content:"Afficher ▾"; margin-left:auto; font-size:.8rem; color:#B45309 }
.rp .content-box .fc-test[open] > summary::after { content:"Masquer ▴" }
.rp .content-box .fc-test > summary small { font-weight:600; color:#92400E }
.rp .content-box .fc-test > summary i { font-size:20px }
.rp .content-box .fc-test ol { margin:12px 18px 6px 36px } .rp .content-box .fc-test li { margin:0 0 10px }
.rp .content-box .fc-test li details { margin-top:4px } .rp .content-box .fc-test li summary { cursor:pointer; color:#B45309; font-weight:700; font-size:.88rem }
.rp .content-box .fc-test li details[open] { padding:8px 12px; border-radius:8px; background:#ECFDF5; color:#064E3B }
.rp .content-box .fc-test > p { margin:0 18px 14px; font-size:.88rem; color:#475569 }

/* Mots du glossaire : définition au survol ou au toucher */
.rp .content-box dfn.fc-gl { position:relative; font-style:normal; border-bottom:2px dotted #0891B2; cursor:help; outline:none }
.rp .content-box dfn.fc-gl:hover::after, .rp .content-box dfn.fc-gl:focus::after { content:attr(data-def); position:absolute; left:0; top:calc(100% + 8px); z-index:30;
    width:max-content; max-width:min(320px, 80vw); padding:9px 12px; border-radius:10px; background:#0F172A; color:#F8FAFC; font-size:.82rem; font-weight:500;
    line-height:1.45; text-align:left; white-space:normal; box-shadow:0 12px 28px -12px rgba(15,23,42,.8) }

/* Je vérifie mes objectifs */
.rp .content-box .fc-jesais { list-style:none; padding:0; margin:10px 0; display:grid; gap:6px }
.rp .content-box .fc-jesais label { display:flex; gap:10px; align-items:flex-start; padding:9px 12px; border-radius:10px; background:#FFFFFF; border:1.5px solid #CBD5E1;
    cursor:pointer; color:#1E293B; font-size:.92rem }
.rp .content-box .fc-jesais input { margin-top:3px; accent-color:#059669; transform:scale(1.2) }
.rp .content-box .fc-jesais label:has(input:checked) { border-color:#059669; background:#ECFDF5 }
.rp .content-box .fc-petit { font-size:.86rem; color:#475569 }

/* Encart « Au labo » */
.rp .content-box .fc-box.labo { --fc:#0D9488; --fc-bg:#F0FDFA; --fc-tx:#134E4A; }
.rp .content-box .fc-box.labo ol.fc-etapes > li::before { background:#0D9488 }

@media (max-width: 760px) {
    .rp .content-box .fc-route { grid-template-columns:1fr 1fr }
    .rp .content-box .fc-h2i { width:32px; height:32px; font-size:17px; margin-right:8px; vertical-align:-5px }
}
@media print { .rp .content-box .fc-test > summary::after { content:"" } .rp .content-box .fc-test details { display:block } }

/* =================== v3 : illustrations =================== */
.rp .content-box .fc-illu { display:block; width:100%; height:auto; border-radius:14px }
.rp .content-box .fc-contexte.fc-avec-illu { display:grid; grid-template-columns:260px minmax(0, 1fr); gap:20px; align-items:center; padding-top:24px }
.rp .content-box .fc-analogie { display:grid; grid-template-columns:300px minmax(0, 1fr); gap:22px; align-items:center; margin:24px 0; padding:18px;
    border-radius:16px; background:#FFFFFF; border:1.5px solid #CBD5E1; box-shadow:inset 6px 0 0 #F59E0B }
.rp .content-box .fc-analogie-k { margin:0 0 6px; font-size:.8rem !important; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:#B45309 !important; text-align:left !important }
.rp .content-box .fc-analogie p { color:#1E293B; font-size:.95rem }
.rp .content-box .fc-box.labo h4 { margin:16px 0 8px; color:#134E4A; font-size:.95rem }
.rp .content-box .fc-box.labo .fc-tab { margin:4px 0 6px; font-size:.86rem }
.rp .content-box .fc-box.labo .rp-tw, .rp .content-box .fc-box .rp-tw { margin:0 }
@media (max-width: 760px) {
    .rp .content-box .fc-contexte.fc-avec-illu, .rp .content-box .fc-analogie { grid-template-columns:1fr }
    .rp .content-box .fc-contexte.fc-avec-illu .fc-illu { max-width:320px }
}

/* =================== v4 =================== */
.rp:has(.fc-id) .rp-hero-chip span { display:none }

/* Tableaux : alternance plus marquée, adresses lisibles */
.rp .content-box table.fc-tab tr:nth-child(even) td { background:#E2E8F0 }
.rp .content-box table.fc-tab code, .rp .content-box:has(.fc-id) p code, .rp .content-box:has(.fc-id) li code {
    color:#1E3A8A; font-weight:700; background:#DBEAFE; border:1px solid #BFDBFE; padding:1px 5px; border-radius:5px }
.rp .content-box .fc-box code { color:var(--fc-tx) }

/* Justifié aussi dans les explications des quiz et les corrigés */
.rp .content-box:has(.fc-id) :is(.fc-explic, .corrige-content, .fc-diag-n p, .fc-msg) { text-align:justify; -webkit-hyphens:auto; hyphens:auto }

/* Test express en QCM */
.rp .content-box .fc-qcm { padding:0 16px 6px }
.rp .content-box .fc-qcm .fc-test-h { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:0 -16px 6px; padding:12px 16px; background:#FFFBEB;
    border-bottom:1px solid #FCD34D; font-weight:800; color:#78350F }
.rp .content-box .fc-qcm .fc-test-h i { font-size:20px } .rp .content-box .fc-qcm .fc-test-h small { font-weight:600; color:#92400E }
.rp .content-box .fc-qcm .quiz-question { margin:12px 0; padding:14px 16px; background:#FFFFFF }
.rp .content-box .fc-qcm .quiz-question p { font-size:.98rem }

/* Schéma cliquable */
.rp .content-box .fc-consigne { margin:0 0 10px; display:inline-flex; align-items:center; gap:8px; padding:6px 12px; border-radius:20px; background:#0F172A;
    color:#FFFFFF !important; font-size:.84rem !important; font-weight:700; text-align:left !important }
.rp .content-box .fc-consigne i { font-size:18px; color:#FDE68A }
.rp .content-box .fc-msg { margin:8px auto 0; max-width:640px; padding:8px 14px; border-radius:10px; background:#F1F5F9; border:1px solid #CBD5E1; color:#0F172A; font-weight:600; font-size:.9rem }
.rp .content-box .fc-interactif .fc-cible { cursor:pointer; outline:none }
.rp .content-box .fc-interactif .fc-cible:hover use, .rp .content-box .fc-interactif .fc-cible:focus use { opacity:.75 }
.rp .content-box .fc-interactif.fc-js [data-fc-g] { opacity:0; transition:opacity .25s }
.rp .content-box .fc-interactif.fc-js [data-fc-g].fc-on { opacity:1 }
.rp .content-box .fc-interactif.fc-js .fc-flux.fc-on { stroke-dasharray:10 8; animation:fcflux 1s linear 3 }
.rp .content-box .fc-interactif.fc-js .fc-src .fc-halo { stroke-width:5; fill:rgba(220,38,38,.12) }
@keyframes fcflux { from { stroke-dashoffset:54 } to { stroke-dashoffset:0 } }

/* Schéma pas à pas */
.rp .content-box .fc-pas.fc-js [data-pas] { transition:opacity .35s }
.rp .content-box .fc-pas.fc-js [data-pas].fc-cache { opacity:0 }
.rp .content-box .fc-pas-c { display:grid; grid-template-columns:auto auto minmax(0, 1fr) auto; align-items:center; gap:10px; margin:10px 4px 4px; text-align:left }
.rp .content-box .fc-pas-c button { all:unset; cursor:pointer; padding:7px 12px; border-radius:9px; background:#E2E8F0; color:#0F172A; font-weight:800; font-size:.85rem }
.rp .content-box .fc-pas-c button.go { background:#0F172A; color:#FFFFFF }
.rp .content-box .fc-pas-c button:disabled { opacity:.35; cursor:default }
.rp .content-box .fc-pas-c button:focus-visible { outline:3px solid #0891B2; outline-offset:2px }
.rp .content-box .fc-pas-n { font-size:.78rem; font-weight:800; color:#475569; white-space:nowrap }
.rp .content-box .fc-pas-l { margin:0; padding:8px 12px; border-radius:10px; background:#F5F3FF; border:1px solid #DDD6FE; color:#3B0764; font-size:.9rem; font-weight:600 }

/* Diagnostic guidé */
.rp .content-box .fc-diag { margin:18px 0 24px; border:1.5px solid #EA580C; border-radius:14px; background:#FFFFFF; overflow:hidden }
.rp .content-box .fc-diag-t { display:flex; align-items:center; flex-wrap:wrap; gap:8px 10px; padding:12px 16px; background:#FFF7ED; border-bottom:1px solid #FDBA74; font-weight:800; color:#7C2D12 }
.rp .content-box .fc-diag-t i { font-size:20px } .rp .content-box .fc-diag-t small { font-weight:600; color:#9A3412 }
.rp .content-box .fc-diag-re { all:unset; margin-left:auto; cursor:pointer; padding:5px 11px; border-radius:8px; background:#EA580C; color:#FFFFFF; font-size:.8rem; font-weight:800 }
.rp .content-box .fc-diag-chemin { display:flex; flex-wrap:wrap; gap:6px; padding:10px 16px 0 }
.rp .content-box .fc-diag-chemin span { padding:3px 9px; border-radius:7px; background:#F1F5F9; border:1px solid #CBD5E1; font-size:.76rem; font-weight:700; color:#334155 }
.rp .content-box .fc-diag-n { margin:12px 16px; padding:14px 16px; border-radius:12px; border:1.5px solid #FDBA74; background:#FFFBF5 }
.rp .content-box .fc-diag-n p { margin:0; color:#1E293B } .rp .content-box .fc-diag-n p b { display:block; margin-bottom:4px; color:#7C2D12 }
.rp .content-box .fc-diag-n.fin { border-color:#059669; background:#ECFDF5 } .rp .content-box .fc-diag-n.fin p b { color:#064E3B }
.rp .content-box .fc-diag-b { display:flex; gap:10px; margin-top:12px }
.rp .content-box .fc-diag-b button { all:unset; cursor:pointer; min-width:70px; text-align:center; padding:8px 16px; border-radius:9px; font-weight:800; font-size:.9rem }
.rp .content-box .fc-diag-b button:first-child { background:#059669; color:#FFFFFF } .rp .content-box .fc-diag-b button:last-child { background:#DC2626; color:#FFFFFF }
.rp .content-box .fc-diag-b button:focus-visible { outline:3px solid #0F172A; outline-offset:2px }
.rp .content-box .fc-diag.fc-js .fc-diag-n { display:none } .rp .content-box .fc-diag.fc-js .fc-diag-n.fc-actif { display:block }
.rp .content-box .fc-diag:not(.fc-js) .fc-diag-b { display:none }

/* Commandes à compléter */
.rp .content-box .fc-trous { margin:14px 0 22px; padding:16px; border-radius:14px; background:#FFFFFF; border:1.5px solid #0891B2; box-shadow:inset 6px 0 0 #0891B2 }
.rp .content-box .fc-cli { margin:10px 0; padding:12px 14px; border-radius:12px; background:#111827; display:flex; flex-direction:column; gap:8px }
.rp .content-box .fc-cli > div { display:flex; align-items:center; gap:8px; flex-wrap:wrap }
.rp .content-box .fc-cli .p { color:#4ADE80; font:800 .9rem ui-monospace, Consolas, monospace }
.rp .content-box .fc-cli input { flex:1 1 220px; min-width:0; padding:6px 10px; border-radius:7px; border:2px solid #334155; background:#1F2937; color:#F1F5F9;
    font:600 .9rem ui-monospace, Consolas, monospace }
.rp .content-box .fc-cli input:focus { outline:none; border-color:#22D3EE }
.rp .content-box .fc-cli input.juste { border-color:#22C55E; background:#052E16 } .rp .content-box .fc-cli input.faux { border-color:#EF4444; background:#450A0A }
.rp .content-box .fc-trous-a { display:flex; flex-wrap:wrap; align-items:center; gap:10px }
.rp .content-box .fc-trous-a button { all:unset; cursor:pointer; padding:8px 14px; border-radius:9px; background:#E2E8F0; color:#0F172A; font-weight:800; font-size:.86rem }
.rp .content-box .fc-trous-a button.go { background:#0891B2; color:#FFFFFF }
.rp .content-box .fc-trous-r { font-size:.88rem; font-weight:700 } .rp .content-box .fc-trous-r.ok { color:#047857 } .rp .content-box .fc-trous-r.ko { color:#B91C1C } .rp .content-box .fc-trous-r.sol { color:#475569 }
.rp .content-box .fc-trous:not(.fc-js) .fc-trous-a { display:none }

@media (max-width: 760px) {
    .rp .content-box .fc-route { grid-template-columns:1fr 1fr }
    .rp .content-box .fc-pas-c { grid-template-columns:auto auto 1fr; } .rp .content-box .fc-pas-l { grid-column:1 / -1; grid-row:2 }
}
@media print {
    .rp .content-box .fc-interactif [data-fc-g], .rp .content-box .fc-pas [data-pas] { opacity:1 !important }
    .rp .content-box .fc-pas-c, .rp .content-box .fc-consigne, .rp .content-box .fc-diag-b, .rp .content-box .fc-diag-re, .rp .content-box .fc-trous-a { display:none !important }
    .rp .content-box .fc-diag .fc-diag-n { display:block !important }
}

/* =================== v4 : fil rouge, outils de la fiche, corrigés verrouillés, quiz noté, mémo =================== */
/* Barre d'outils sous le parcours */
.rp .content-box .fc-outils { display:flex; flex-wrap:wrap; gap:10px; margin:-8px 0 24px }
.rp .content-box .fc-outils a { flex:1 1 200px; display:flex; align-items:center; gap:10px; padding:10px 14px; border-radius:12px; text-decoration:none;
    background:#FFFFFF; border:1.5px solid #CBD5E1; color:#0F172A; transition:border-color .15s, transform .15s }
.rp .content-box .fc-outils a:hover { border-color:#0D9488; transform:translateY(-1px) }
.rp .content-box .fc-outils a i { font-size:22px; width:40px; height:40px; flex-shrink:0; display:grid; place-items:center; border-radius:10px; background:#0F172A; color:#FFFFFF }
.rp .content-box .fc-outils a:nth-child(2) i { background:#0D9488 } .rp .content-box .fc-outils a:nth-child(3) i { background:#DB2777 }
.rp .content-box .fc-outils b { display:block; font-size:.92rem } .rp .content-box .fc-outils small { display:block; font-size:.78rem; color:#475569 }

/* Bandeau du fil rouge (dans l'encadré « Au labo ») */
.rp .content-box .fc-fr { margin:6px 0 14px; padding:14px 16px; border-radius:12px; background:#FFFFFF; border:1.5px solid #0D9488; scroll-margin-top:90px }
.rp .content-box .fc-fr-h { display:flex; align-items:center; gap:14px; flex-wrap:wrap }
.rp .content-box .fc-fr-n { display:flex; flex-direction:column; align-items:center; justify-content:center; min-width:76px; padding:6px 10px; border-radius:12px;
    background:#0D9488; color:#FFFFFF; font-weight:900; font-size:1.05rem; line-height:1.1 }
.rp .content-box .fc-fr-n small { font-size:.7rem; font-weight:700; opacity:.9 }
.rp .content-box .fc-fr-t { flex:1 1 260px; min-width:0 }
.rp .content-box .fc-fr-t b { display:block; color:#134E4A; font-size:.98rem } .rp .content-box .fc-fr-t span { display:block; color:#334155; font-size:.86rem; text-align:left }
.rp .content-box .fc-fr-tout { display:inline-flex; align-items:center; gap:6px; padding:7px 12px; border-radius:9px; background:#CCFBF1; color:#115E59 !important;
    font-weight:800; font-size:.84rem; text-decoration:none !important; white-space:nowrap }
.rp .content-box ol.fc-fr-l { display:flex; flex-wrap:wrap; align-items:center; gap:5px; margin:12px 0 10px; padding:0; list-style:none; counter-reset:none }
.rp .content-box ol.fc-fr-l li { margin:0; padding:0; list-style:none } .rp .content-box ol.fc-fr-l li::before { display:none }
.rp .content-box ol.fc-fr-l li > * { display:grid; place-items:center; width:28px; height:28px; border-radius:50%; font-size:.76rem; font-weight:800;
    background:#E2E8F0; color:#475569; border:2px solid #CBD5E1; text-decoration:none }
.rp .content-box ol.fc-fr-l li.ok > * { background:#99F6E4; color:#134E4A; border-color:#0D9488 }
.rp .content-box ol.fc-fr-l li.cur > * { width:34px; height:34px; background:#0D9488; color:#FFFFFF; border-color:#134E4A; font-size:.9rem; box-shadow:0 0 0 4px #CCFBF1 }
.rp .content-box ol.fc-fr-l li.sem { margin-left:6px; padding:3px 7px; border-radius:6px; background:#0F172A; color:#FFFFFF; font-size:.68rem; font-weight:800 }
.rp .content-box ol.fc-fr-l li.sem:first-child { margin-left:0 }
.rp .content-box .fc-fr-io { display:grid; grid-template-columns:1fr 1fr; gap:10px }
.rp .content-box .fc-fr-io p { display:flex; gap:10px; align-items:flex-start; margin:0; padding:9px 12px; border-radius:10px; background:#F0FDFA; border:1px solid #99F6E4;
    font-size:.86rem; color:#134E4A; text-align:left !important }
.rp .content-box .fc-fr-io i { font-size:20px; color:#0D9488; margin-top:1px }
.rp .content-box .fc-fr-io code { background:#CCFBF1 !important; color:#134E4A !important; font-weight:800; white-space:nowrap }
.rp .content-box .fc-tab.fc-io td:nth-child(4) { background:#ECFDF5; color:#064E3B; font-weight:600 }
.rp .content-box .fc-tab.fc-io tr:nth-child(even) td:nth-child(4) { background:#D1FAE5 }
.rp .content-box .fc-tab.fc-io th:nth-child(4) { background:#065F46 }
.rp .content-box ul.fc-ajouts { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:6px 0 4px; padding:0; list-style:none }
.rp .content-box ul.fc-ajouts li { display:flex; gap:10px; align-items:flex-start; margin:0; padding:10px 12px; border-radius:10px; background:#FFFFFF; border:1.5px solid var(--c);
    color:#0F172A; font-size:.88rem; text-align:left }
.rp .content-box ul.fc-ajouts li::before { display:none }
.rp .content-box ul.fc-ajouts i { font-size:20px; color:#FFFFFF; background:var(--c); width:32px; height:32px; flex-shrink:0; display:grid; place-items:center; border-radius:8px }
.rp .content-box .fc-tab.fc-recette td:last-child, .rp .content-box .fc-tab.fc-recette th:last-child { text-align:center; width:44px }
.rp .content-box .fc-tab.fc-recette input { width:18px; height:18px; accent-color:#059669 }
.rp .content-box .fc-tab.fc-recette td:first-child { font-weight:800; color:#0D9488; width:34px; text-align:center }

/* Corrigé pas encore ouvert par l'enseignant */
.rp .content-box .fc-verrou { display:flex; gap:12px; align-items:flex-start; margin-top:12px; padding:12px 14px; border-radius:10px; background:#F1F5F9;
    border:1.5px dashed #64748B }
.rp .content-box .fc-verrou i { font-size:22px; color:#FFFFFF; background:#475569; width:36px; height:36px; flex-shrink:0; display:grid; place-items:center; border-radius:50% }
.rp .content-box .fc-verrou p { margin:0; color:#1E293B; font-size:.9rem; text-align:justify }

/* Quiz noté */
.rp .content-box .fc-quiz { margin:14px 0 10px; padding:0 18px 16px; border-radius:14px; background:#FDF2F8; border:1.5px solid #DB2777; scroll-margin-top:90px }
.rp .content-box .fc-quiz-h { display:flex; gap:12px; align-items:flex-start; margin:0 -18px 6px; padding:14px 18px; border-radius:12px 12px 0 0; background:#DB2777; color:#FFFFFF }
.rp .content-box .fc-quiz-h i { font-size:26px } .rp .content-box .fc-quiz-h b { display:block; font-size:1rem }
.rp .content-box .fc-quiz-h span { display:block; font-size:.88rem; line-height:1.5; color:#FCE7F3; text-align:justify } .rp .content-box .fc-quiz-h strong { color:#FFFFFF }
.rp .content-box .fc-quiz .quiz-question { margin:12px 0; padding:14px 16px; background:#FFFFFF; border:1px solid #F9A8D4 }
.rp .content-box .fc-quiz .quiz-question.fc-q-manque { border:2px solid #F59E0B; box-shadow:0 0 0 3px #FEF3C7 }
.rp .content-box .fc-quiz .quiz-question.fc-q-ok { border:2px solid #059669 } .rp .content-box .fc-quiz .quiz-question.fc-q-ko { border:2px solid #DC2626 }
.rp .content-box .fc-quiz label.fc-bon { background:#D1FAE5 !important; border-color:#059669 !important; color:#064E3B; font-weight:700 }
.rp .content-box .fc-quiz label.fc-faux { background:#FEE2E2 !important; border-color:#DC2626 !important; color:#7F1D1D; text-decoration:line-through }
.rp .content-box .fc-quiz label.fc-bon::after { content:" ✓"; color:#059669; font-weight:900 } .rp .content-box .fc-quiz label.fc-faux::after { content:" ✗"; color:#DC2626; font-weight:900 }
.rp .content-box .fc-explic-q:empty { display:none }
.rp .content-box .fc-explic-q { margin-top:10px; padding:10px 14px; border-radius:8px; background:#F8FAFC; border:1px dashed #94A3B8; font-size:.9rem; color:#1E293B; text-align:justify; hyphens:auto }
.rp .content-box .fc-quiz-a { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:12px }
.rp .content-box .fc-quiz-a button, .rp .content-box .fc-quiz-r button { all:unset; cursor:pointer; display:inline-flex; align-items:center; gap:8px; padding:10px 18px; border-radius:10px;
    background:#DB2777; color:#FFFFFF; font-weight:800; font-size:.95rem }
.rp .content-box .fc-quiz-a button:disabled { opacity:.6; cursor:wait }
.rp .content-box .fc-quiz-a button:focus-visible, .rp .content-box .fc-quiz-r button:focus-visible { outline:3px solid #0F172A; outline-offset:2px }
.rp .content-box .fc-quiz-m { font-size:.9rem; font-weight:700; color:#B45309 }
.rp .content-box .fc-quiz-r { display:grid; grid-template-columns:auto 1fr; gap:16px; align-items:center; margin-top:14px; padding:16px; border-radius:12px; background:#FFFFFF;
    border:2px solid var(--c, #DB2777) }
.rp .content-box .fc-quiz-r[hidden], .rp .content-box .fc-quiz-a[hidden] { display:none }
.rp .content-box .fc-quiz-sc { display:grid; place-items:center; width:96px; height:96px; border-radius:50%; color:#0F172A;
    background:radial-gradient(closest-side, #FFFFFF 74%, transparent 75% 100%), conic-gradient(var(--c) calc(var(--p) * 1%), #E2E8F0 0) }
.rp .content-box .fc-quiz-sc b { font-size:1.45rem; font-weight:900; line-height:1 } .rp .content-box .fc-quiz-sc small { display:block; font-size:.74rem; color:#475569; text-align:center }
.rp .content-box .fc-quiz-r h4 { margin:0 0 4px; font-size:1.05rem; color:#0F172A }
.rp .content-box .fc-quiz-r p { margin:0 0 10px; font-size:.9rem; color:#334155; text-align:justify }
.rp .content-box .fc-quiz-r .tag { display:inline-block; margin-right:6px; padding:2px 9px; border-radius:20px; font-size:.74rem; font-weight:800; color:#FFFFFF; background:var(--c) }
.rp .content-box .fc-quiz-r button.sec { background:#E2E8F0; color:#0F172A }
.rp .content-box .fc-quiz:not(.fc-js) .fc-quiz-a { display:none }

/* Commandes clés : affichées seulement dans le mémo imprimable */
.rp .content-box .fc-memo-cmd { margin:6px 0 18px }

@media (max-width: 760px) {
    .rp .content-box .fc-fr-io, .rp .content-box ul.fc-ajouts { grid-template-columns:1fr }
    .rp .content-box .fc-quiz-r { grid-template-columns:1fr; justify-items:start }
}
@media print { .rp .content-box .fc-outils, .rp .content-box .fc-fr-tout, .rp .content-box .fc-quiz-a, .rp .content-box .fc-quiz-r button { display:none !important } }

/* =================== Mémo imprimable (page /cours.php?slug=…&memo=1) =================== */
body.fc-memo-page { margin:0; background:#475569; font-family:Inter, system-ui, sans-serif; color:#0F172A; -webkit-print-color-adjust:exact; print-color-adjust:exact }
.fc-memo-bar { position:sticky; top:0; z-index:5; display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; padding:10px 18px; background:#0F172A; color:#E2E8F0; font-size:.9rem }
.fc-memo-bar button { all:unset; cursor:pointer; display:inline-flex; align-items:center; gap:6px; padding:8px 16px; border-radius:9px; background:#0891B2; color:#FFFFFF; font-weight:800 }
.fc-memo { --c:#0891B2; box-sizing:border-box; width:210mm; min-height:297mm; margin:18px auto; padding:10mm 11mm 8mm; background:#FFFFFF; box-shadow:0 20px 50px -20px rgba(0,0,0,.6);
    display:flex; flex-direction:column; gap:3.5mm; font-size:8.6pt; line-height:1.38 }
.fc-memo[data-bloc="3"] { --c:#7C3AED }
.fc-memo-h { display:grid; grid-template-columns:auto 1fr; gap:3mm 4mm; align-items:center; padding-bottom:3mm; border-bottom:2.5px solid var(--c) }
.fc-memo-code { padding:2mm 3mm; border-radius:2mm; background:var(--c); color:#FFFFFF; font-weight:900; font-size:15pt; font-family:ui-monospace, Consolas, monospace }
.fc-memo-h h1 { margin:0; font-size:14pt; line-height:1.2 } .fc-memo-h p { margin:1mm 0 0; color:#334155; font-size:8.6pt; text-align:justify }
.fc-memo-p { grid-column:1 / -1; display:flex; flex-wrap:wrap; gap:1.5mm }
/* QR code vers la fiche en ligne : à droite de l'en-tête, sur les deux premières lignes (la hauteur du mémo ne change pas) */
.fc-memo-h.avec-qr { grid-template-columns:auto 1fr auto }
.fc-memo-h.avec-qr .fc-memo-p { grid-column:1 / 3 }
.fc-memo-qr { grid-column:3; grid-row:1 / span 2; align-self:center; display:flex; flex-direction:column; align-items:center; gap:.4mm; color:#334155; text-decoration:none }
.fc-memo-qr svg { display:block; width:21mm; height:21mm }
.fc-memo-qr small { font-size:5.8pt; font-weight:800; letter-spacing:.03em; text-transform:uppercase; white-space:nowrap }
.fc-memo-p span { padding:.6mm 2.4mm; border-radius:9mm; background:#E2E8F0; font-size:7.4pt; font-weight:700; color:#1E293B }
.fc-memo-p span:last-child { margin-left:auto; background:#0F172A; color:#FFFFFF }
.fc-memo-carte figure { margin:0; padding:1.5mm; border:1px solid #CBD5E1; border-radius:2.5mm }
.fc-memo-carte svg { display:block; width:100%; height:auto; max-height:64mm; font-family:Inter, system-ui, sans-serif }
.fc-memo-flow { columns:2; column-gap:5mm; column-fill:balance }
.fc-memo-flow > * { break-inside:avoid; -webkit-column-break-inside:avoid; margin:0 0 2.5mm }
.fc-memo-ess { padding:2mm 3mm; border-radius:2mm; background:#F1F5F9; border-left:1.6mm solid var(--c) }
.fc-memo h2 { display:flex; align-items:center; gap:1.5mm; margin:0 0 1.5mm; font-size:9.6pt; color:var(--c); text-transform:uppercase; letter-spacing:.04em }
.fc-memo h3 { display:flex; align-items:center; gap:1.5mm; margin:0 0 1mm; font-size:8.6pt }
.fc-memo ol.fc-synthese { margin:0; padding-left:5mm } .fc-memo ol.fc-synthese li { margin:0 0 1.1mm; text-align:justify; hyphens:auto }
.fc-memo-b { margin:0 0 2.5mm; padding:2mm 3mm; border-radius:2mm; border-left:1.6mm solid #059669; background:#ECFDF5; color:#064E3B }
.fc-memo-b.piege { border-left-color:#DC2626; background:#FEF2F2; color:#7F1D1D }
.fc-memo-b p, .fc-memo-b li { margin:0 0 1mm; text-align:justify; hyphens:auto } .fc-memo-b ul { margin:0; padding-left:4mm }
.fc-memo code { padding:0 .8mm; border-radius:1mm; background:#DBEAFE; color:#1E3A8A; font:700 7.8pt ui-monospace, Consolas, monospace }
.fc-memo-cmd-p table { width:100%; border-collapse:collapse; font-size:7.8pt }
.fc-memo-cmd-p th { background:#0F172A; color:#FFFFFF; text-align:left; padding:1mm 1.6mm; font-size:7.4pt; text-transform:uppercase }
.fc-memo-cmd-p td { padding:1mm 1.6mm; border-bottom:1px solid #CBD5E1; vertical-align:top } .fc-memo-cmd-p td:first-child { font-weight:800; white-space:nowrap }
.fc-memo-cmd-p tr:nth-child(even) td { background:#E2E8F0 }
.fc-memo-f { margin-top:auto; padding-top:2mm; border-top:1px solid #CBD5E1; color:#64748B; font-size:7pt; text-align:center }
@media screen and (max-width: 820px) { .fc-memo { width:auto; min-height:0; margin:10px; padding:16px } .fc-memo-flow { columns:1 } .fc-memo-qr { display:none } .fc-memo-h.avec-qr { grid-template-columns:auto 1fr } .fc-memo-h.avec-qr .fc-memo-p { grid-column:1 / -1 } }
@media print {
    @page { size:A4; margin:0 }
    body.fc-memo-page { background:#FFFFFF } .fc-memo-bar { display:none }
    .fc-memo { margin:0; box-shadow:none; width:210mm; height:297mm; overflow:hidden }
}

/* =================== v5 : déroulé cours puis pratique, sommaire collant, fil rouge, tickets, réponses aux exercices =================== */
/* Pleine largeur : le sommaire passe dans la barre du haut */
.rp:has(.fc-id) .rp-toc, .rp:has(.fc-id) .rp-toc-m { display:none !important }
.rp:has(.fc-id) .rp-layout { grid-template-columns:minmax(0, 1fr) }
.rp:has(.fc-id) .rp-wrap { max-width:1180px }
.rp .fc-nav-cur { min-width:0; display:none; align-items:center; gap:6px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:.84rem; font-weight:700; color:#0E7490 }
.rp .fc-nav-cur i { font-size:16px; flex-shrink:0 }
body.rp-scrolled .fc-nav-cur { display:flex }
.rp .fc-som-btn { position:relative }
.rp .fc-som { position:fixed; top:66px; right:24px; z-index:60; width:min(420px, calc(100vw - 24px)); max-height:calc(100vh - 90px); overflow-y:auto; padding:10px;
    border-radius:16px; background:#FFFFFF; border:1px solid #CBD5E1; box-shadow:0 24px 50px -18px rgba(15,23,42,.55) }
.rp .fc-som[hidden] { display:none }
.rp .fc-som-g { margin:6px 4px 4px; padding:4px 10px; border-radius:8px; font-size:.7rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:#FFFFFF; background:var(--c) }
.rp .fc-som a { display:flex; gap:8px; align-items:baseline; padding:7px 10px; border-radius:9px; color:#1E293B !important; font-size:.88rem; text-decoration:none; line-height:1.35 }
.rp .fc-som a:hover { background:#F1F5F9 } .rp .fc-som a.on { background:#ECFEFF; color:#0E7490 !important; font-weight:700 }
@media (max-width: 760px) { .rp .fc-som { top:60px; right:12px } body.rp-scrolled .rp-top-t { display:none } }

/* Cartes du parcours : un mot par étape, le fil rouge en rouge */
.rp .content-box .fc-route { grid-template-columns:repeat(auto-fit, minmax(140px, 1fr)) }
.rp .content-box .fc-route a { justify-content:flex-start; padding:12px 14px }
.rp .content-box .fc-route b { font-size:.98rem }
.rp .content-box .fc-route a.fr { background:#DC2626; border-color:#B91C1C; border-top-color:#7F1D1D }
.rp .content-box .fc-route a.fr .n, .rp .content-box .fc-route a.fr b, .rp .content-box .fc-route a.fr b i { color:#FFFFFF }
.rp .content-box .fc-route a.fr:hover { border-color:#7F1D1D; background:#B91C1C }

/* Test express : accordéon */
.rp .content-box details.fc-qcm { padding:0 16px; }
.rp .content-box details.fc-qcm > summary.fc-test-h { cursor:pointer; list-style:none; margin:0 -16px; border-bottom:none }
.rp .content-box details.fc-qcm[open] > summary.fc-test-h { border-bottom:1px solid #FCD34D; margin-bottom:6px }
.rp .content-box details.fc-qcm > summary::-webkit-details-marker { display:none }
.rp .content-box details.fc-qcm > summary::after { content:"Faire le test ▾"; margin-left:auto; padding:4px 10px; border-radius:8px; background:#F59E0B; color:#FFFFFF; font-size:.8rem }
.rp .content-box details.fc-qcm[open] > summary::after { content:"Replier ▴" }
.rp .content-box details.fc-qcm[open] { padding-bottom:8px }

/* Grandes parties : le cours, la pratique */
.rp .content-box .fc-part { display:flex; align-items:center; gap:16px; margin:34px 0 18px; padding:16px 20px; border-radius:16px; color:#FFFFFF; background:var(--c); scroll-margin-top:80px }
.rp .content-box .fc-part .k { display:grid; place-items:center; width:52px; height:52px; flex-shrink:0; border-radius:14px; background:rgba(255,255,255,.18); font-size:28px }
.rp .content-box .fc-part b { display:block; font-size:1.25rem; letter-spacing:.02em; text-transform:uppercase; color:#FFFFFF }
.rp .content-box .fc-part span { display:block; font-size:.92rem; color:rgba(255,255,255,.92); text-align:left }
.rp .content-box .fc-part.cours { --c:linear-gradient(100deg, #1E3A8A, #2563EB) }
.rp .content-box .fc-part.pratique { --c:linear-gradient(100deg, #065F46, #059669) }

/* Fil rouge : en rouge, bien démarqué */
.rp .content-box h2.fc-h2-fr { color:#B91C1C }
.rp .content-box .fc-box.labo { --fc:#DC2626; --fc-bg:#FFF5F5; --fc-tx:#450A0A; border-width:3px; box-shadow:inset 8px 0 0 #DC2626 }
.rp .content-box .fc-box.labo::before { content:"🧵 " attr(data-t); background:#B91C1C; font-size:.8rem; padding:4px 14px }
.rp .content-box .fc-box.labo ol.fc-etapes > li::before { background:#DC2626 }
.rp .content-box .fc-box.labo h4 { color:#991B1B }
.rp .content-box .fc-box.labo h4.fc-pas-h { display:flex; align-items:center; gap:10px; margin-top:20px; padding:8px 12px; border-radius:10px; background:#FEE2E2; color:#7F1D1D }
.rp .content-box .fc-box.labo h4.fc-pas-h .n { display:grid; place-items:center; width:28px; height:28px; border-radius:50%; background:#DC2626; color:#FFFFFF; font-size:.85rem }
.rp .content-box .fc-fr { border:2px solid #DC2626; background:#FFFFFF }
.rp .content-box .fc-fr-n { background:#DC2626 }
.rp .content-box .fc-fr-t b { color:#991B1B }
.rp .content-box .fc-fr-tout { background:#FEE2E2; color:#991B1B !important }
.rp .content-box ol.fc-fr-l li.ok > * { background:#FECACA; color:#7F1D1D; border-color:#DC2626 }
.rp .content-box ol.fc-fr-l li.cur > * { background:#DC2626; border-color:#7F1D1D; box-shadow:0 0 0 4px #FEE2E2 }
.rp .content-box .fc-fr-io p { background:#FFF5F5; border-color:#FECACA; color:#450A0A }
.rp .content-box .fc-fr-io i { color:#DC2626 }
.rp .content-box .fc-fr-io code { background:#FEE2E2 !important; color:#7F1D1D !important }
.rp .content-box .fc-outils a:nth-child(2) i { background:#DC2626 }

/* Commandes à compléter : vérification ligne par ligne */
.rp .content-box .fc-cli > div { flex-wrap:nowrap }
.rp .content-box .fc-cli .ck { all:unset; cursor:pointer; flex-shrink:0; display:grid; place-items:center; width:34px; height:30px; border-radius:7px; background:#334155; color:#E2E8F0; font-size:16px }
.rp .content-box .fc-cli .ck:hover { background:#0891B2; color:#FFFFFF } .rp .content-box .fc-cli .ck:focus-visible { outline:2px solid #22D3EE }
.rp .content-box .fc-cli .ck.ok { background:#16A34A; color:#FFFFFF } .rp .content-box .fc-cli .ck.ko { background:#DC2626; color:#FFFFFF }
.rp .content-box .fc-cli .aide { flex-basis:100%; margin:-2px 0 2px; padding-left:4px; color:#FCA5A5; font:600 .8rem Inter, sans-serif; display:none }
.rp .content-box .fc-cli > div.ko .aide { display:block }
.rp .content-box .fc-cli > div.ko { flex-wrap:wrap }
@media (max-width: 640px) { .rp .content-box .fc-cli > div { flex-wrap:wrap } }

/* Tickets d'incident */
.rp .content-box .fc-tickets { margin:18px 0 24px; border-radius:16px; background:#0F172A; padding:16px; color:#E2E8F0 }
.rp .content-box .fc-tickets-h { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:12px }
.rp .content-box .fc-tickets-h i { font-size:26px; color:#FBBF24 } .rp .content-box .fc-tickets-h b { font-size:1.05rem; color:#FFFFFF }
.rp .content-box .fc-tickets-h small { display:block; color:#94A3B8; font-size:.84rem }
.rp .content-box .fc-tickets-p { margin-left:auto; display:flex; gap:5px }
.rp .content-box .fc-tickets-p span { width:26px; height:8px; border-radius:4px; background:#334155 }
.rp .content-box .fc-tickets-p span.cur { background:#FBBF24 } .rp .content-box .fc-tickets-p span.ok { background:#22C55E } .rp .content-box .fc-tickets-p span.ko { background:#EF4444 }
.rp .content-box .fc-ticket { margin:0 0 12px; padding:16px 18px; border-radius:12px; background:#FFFFFF; color:#0F172A; border-top:6px solid var(--p, #F59E0B) }
.rp .content-box .fc-tickets.fc-js .fc-ticket { display:none } .rp .content-box .fc-tickets.fc-js .fc-ticket.on { display:block }
.rp .content-box .fc-ticket-h { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:8px; font-size:.84rem; color:#475569 }
.rp .content-box .fc-ticket-h b { font-size:1rem; color:#0F172A } .rp .content-box .fc-ticket-h .pr { margin-left:auto; padding:2px 10px; border-radius:999px; background:var(--p, #F59E0B); color:#FFFFFF; font-weight:800 }
.rp .content-box .fc-ticket blockquote { margin:0 0 10px; padding:10px 14px; border-radius:10px; background:#FFFBEB; border-left:4px solid #F59E0B; color:#451A03; font-style:italic }
.rp .content-box .fc-ticket .q { margin:12px 0 6px; font-weight:800 }
.rp .content-box .fc-ticket label { display:block; margin:6px 0; padding:9px 14px; border-radius:9px; background:#F1F5F9; border:1.5px solid #CBD5E1; cursor:pointer; text-align:left }
.rp .content-box .fc-ticket label:has(input:checked) { border-color:#0891B2; background:#ECFEFF }
.rp .content-box .fc-ticket label input { margin-right:10px; accent-color:#0891B2 }
.rp .content-box .fc-ticket label.bon { background:#D1FAE5; border-color:#059669; font-weight:700 } .rp .content-box .fc-ticket label.faux { background:#FEE2E2; border-color:#DC2626 }
.rp .content-box .fc-ticket-ex { display:none; margin-top:10px; padding:12px 14px; border-radius:10px; background:#ECFDF5; border:1px solid #6EE7B7; color:#064E3B }
.rp .content-box .fc-ticket-ex.ko { background:#FEF2F2; border-color:#FCA5A5; color:#7F1D1D }
.rp .content-box .fc-ticket-ex.vu, .rp .content-box .fc-tickets:not(.fc-js) .fc-ticket-ex { display:block }
.rp .content-box .fc-ticket-a { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-top:12px }
.rp .content-box .fc-ticket-a button { all:unset; cursor:pointer; padding:9px 16px; border-radius:10px; background:#0891B2; color:#FFFFFF; font-weight:800; font-size:.9rem }
.rp .content-box .fc-ticket-a button.sec { background:#E2E8F0; color:#0F172A }
.rp .content-box .fc-ticket-a button:focus-visible { outline:3px solid #0F172A; outline-offset:2px }
.rp .content-box .fc-tickets:not(.fc-js) .fc-ticket-a { display:none }
.rp .content-box .fc-tickets-fin { padding:18px; border-radius:12px; background:#FFFFFF; color:#0F172A; text-align:center }
.rp .content-box .fc-tickets-fin b { display:block; font-size:1.4rem; margin-bottom:4px }

/* Exercices : réponse envoyée au professeur */
.rp .content-box .fc-rep { margin-top:12px; padding:12px 14px; border-radius:12px; background:#F8FAFC; border:1.5px solid #CBD5E1; scroll-margin-top:90px }
.rp .content-box .fc-rep:empty { display:none }
.rp .content-box .fc-rep-h { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:8px; font-weight:800; font-size:.9rem; color:#0F172A }
.rp .content-box .fc-rep-h .e { margin-left:auto; padding:2px 10px; border-radius:999px; font-size:.75rem; background:#E2E8F0; color:#334155 }
.rp .content-box .fc-rep.att .fc-rep-h .e { background:#FEF3C7; color:#92400E } .rp .content-box .fc-rep.ok .fc-rep-h .e { background:#D1FAE5; color:#065F46 }
.rp .content-box .fc-rep.rev .fc-rep-h .e { background:#FEE2E2; color:#991B1B }
.rp .content-box .fc-rep textarea { width:100%; min-height:130px; padding:10px 12px; border-radius:10px; border:1.5px solid #94A3B8; background:#FFFFFF; color:#0F172A;
    font:500 .92rem/1.5 Inter, system-ui, sans-serif; resize:vertical; box-sizing:border-box }
.rp .content-box .fc-rep textarea:focus { outline:none; border-color:#7C3AED; box-shadow:0 0 0 3px #EDE9FE }
.rp .content-box .fc-rep-a { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:8px }
.rp .content-box .fc-rep-a button { all:unset; cursor:pointer; display:inline-flex; align-items:center; gap:6px; padding:9px 16px; border-radius:10px; background:#7C3AED; color:#FFFFFF; font-weight:800; font-size:.9rem }
.rp .content-box .fc-rep-a button.sec { background:#E2E8F0; color:#0F172A }
.rp .content-box .fc-rep-a button:disabled { opacity:.6; cursor:wait }
.rp .content-box .fc-rep-a small { color:#475569; font-size:.8rem }
.rp .content-box .fc-rep-m { font-size:.86rem; font-weight:700; color:#B45309 }
.rp .content-box .fc-rep-txt { white-space:pre-wrap; word-wrap:break-word; padding:10px 12px; border-radius:10px; background:#FFFFFF; border:1px solid #CBD5E1; font-size:.9rem; text-align:left }
.rp .content-box .fc-rep-com { margin-top:8px; padding:10px 12px; border-radius:10px; background:#EFF6FF; border-left:4px solid #2563EB; color:#1E3A8A; font-size:.9rem; text-align:left }
.rp .content-box .fc-corr-h { display:flex; align-items:center; gap:8px; margin:-4px 0 8px; font-weight:800; color:#047857 }
.rp .content-box .fc-ex h4 + p { text-align:justify }

/* Animations des schémas */
@keyframes fcdefile { to { stroke-dashoffset:-36 } }
.rp .content-box .fc-defile { stroke-dasharray:12 6; animation:fcdefile 1.2s linear infinite }
@media (prefers-reduced-motion: reduce) { .rp .content-box .fc-defile { animation:none } .rp .content-box .fc-schema animateMotion { display:none } }
@media print { .rp .content-box .fc-tickets.fc-js .fc-ticket { display:block } .rp .content-box .fc-rep, .rp .content-box .fc-cli .ck { display:none !important } }
/* Champs d'une trame expliqués */
.rp .content-box ul.fc-champs { list-style:none; margin:-6px 0 22px; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:8px }
.rp .content-box ul.fc-champs li { margin:0; padding:10px 12px; border-radius:10px; background:#FFFFFF; border:1px solid #CBD5E1; border-left:5px solid var(--c) }
.rp .content-box ul.fc-champs li::before { display:none }
.rp .content-box ul.fc-champs b { display:block; font-size:.9rem; color:#0F172A; text-align:left } .rp .content-box ul.fc-champs span { display:block; font-size:.88rem; color:#334155 }
@media (max-width: 760px) { .rp .content-box ul.fc-champs { grid-template-columns:1fr } }
/* Cartes du parcours en colonne (chiffre au-dessus, mot dessous) : 7 cartes tiennent sur une ligne */
.rp .content-box .fc-route { grid-template-columns:repeat(auto-fit, minmax(112px, 1fr)) }
.rp .content-box .fc-route a { flex-direction:column; align-items:center; justify-content:center; gap:4px; padding:10px 6px; text-align:center }
.rp .content-box .fc-route .t { align-items:center }
.rp .content-box .fc-route b { justify-content:center; font-size:.9rem; white-space:nowrap }
.rp .content-box .fc-ticket label.bon { background:#D1FAE5 !important; border-color:#059669 !important } .rp .content-box .fc-ticket label.faux { background:#FEE2E2 !important; border-color:#DC2626 !important }
.rp .content-box h2.fc-h2-fr { background:linear-gradient(#DC2626, #DC2626) left bottom / 100% 3px no-repeat; border-bottom-color:#FCA5A5 }

/* =================== v6 : titre toujours visible, mode projection, impression =================== */
.rp:has(.fc-id) .rp-top-t { opacity:1; transform:none }
.rp:has(.fc-id) .rp-top-t .fc-code { display:inline-block; margin-right:6px; padding:1px 7px; border-radius:6px; background:#0891B2; color:#FFFFFF; font:800 .78rem ui-monospace, Consolas, monospace }
.rp .fc-projo-btn.on { background:#0F172A; color:#FFFFFF !important; border-color:#0F172A }

/* Mode projection : pour le cours en classe, texte et schémas agrandis, éléments individuels masqués */
body.fc-projo.rp .rp-wrap { max-width:none !important; padding-left:3vw; padding-right:3vw }
body.fc-projo .rp .content-box, body.fc-projo.rp .content-box { font-size:1.22rem }
body.fc-projo.rp .content-box p, body.fc-projo.rp .content-box li, body.fc-projo.rp .content-box td { font-size:1.12em; line-height:1.6 }
body.fc-projo.rp .content-box h2 { font-size:2rem } body.fc-projo.rp .content-box h3 { font-size:1.45rem }
body.fc-projo.rp .content-box .fc-schema svg { max-height:78vh; width:100% }
body.fc-projo.rp .content-box :is(.fc-outils, .fc-rep, .fc-verrou, .fc-test, .fc-quiz-r) { display:none !important }
body.fc-projo.rp .rp-crumbs, body.fc-projo.rp .rp-fin { display:none }

@media print {
    @page { size:A4; margin:14mm 12mm 14mm 12mm }
    body.rp:has(.fc-id) { background:#FFFFFF !important }
    .rp:has(.fc-id) .rp-crumbs, .rp:has(.fc-id) .rp-foot { display:none !important }
    .rp:has(.fc-id) .rp-wrap { max-width:none !important; padding:0 !important; margin:0 !important }
    .rp:has(.fc-id) .rp-hero { margin:0 0 6mm; padding:0 0 3mm; box-shadow:none }
    .rp .content-box:has(.fc-id) { max-width:100% !important; padding:0 !important; box-shadow:none !important; background:#FFFFFF !important; overflow:visible !important }
    .rp .content-box :is(.fc-route, .fc-outils, .fc-test, .fc-rep, .fc-verrou, .fc-trous-a, .fc-quiz-a, .fc-quiz-r, .fc-ticket-a, .fc-tickets-p, .fc-pas-c, .fc-consigne, .fc-msg) { display:none !important }
    .rp .content-box :is(figure, .fc-box, .fc-analogie, .fc-contexte, .fc-ticket, .quiz-question, .exercise-box, .fc-champs li, .fc-term, table, .fc-part) { break-inside:avoid }
    .rp .content-box :is(h2, h3, h4) { break-after:avoid }
    .rp .content-box .fc-part { break-before:page; background:#0F172A !important; -webkit-print-color-adjust:exact; print-color-adjust:exact }
    .rp .content-box .fc-part.cours { break-before:auto }
    .rp .content-box .fc-schema svg { max-height:200mm; width:auto; max-width:100% }
    .rp .content-box [data-pas-seul] { display:none !important }
    .rp .content-box .fc-id, .rp .content-box .fc-champs, .rp .content-box .fc-fr-io, .rp .content-box ul.fc-ajouts { display:grid !important }
    .rp .content-box .rp-tw { overflow:visible !important }
    .rp .content-box :is(.fc-box, .fc-contexte, .fc-part, .fc-tickets, .fc-ticket, .fc-fr, .fc-route, .fc-schema, .fc-id > div, .exercise-box, .fc-tab th, .fc-term-h, .fc-h2i, .fc-code) { -webkit-print-color-adjust:exact; print-color-adjust:exact }
    .rp .content-box .fc-tickets { background:#FFFFFF !important; padding:0 }
    .rp .content-box .fc-tickets-h { color:#0F172A } .rp .content-box .fc-tickets-h b { color:#0F172A !important }
}
/* Impression v2 : étiquettes d'encadrés dans le flux (elles ne restent plus seules en bas de page), illustrations côte à côte */
@media print {
    #scrollTopBtnRessource, .fc-som, .rp-progress { display:none !important }
    .rp .content-box :is(.fc-box, .fc-contexte)::before { position:static !important; display:inline-block; margin:0 0 6px; }
    .rp .content-box :is(.fc-box, .fc-contexte) { padding-top:10px !important; margin-top:14px !important }
    .rp .content-box .fc-contexte.fc-avec-illu { display:grid !important; grid-template-columns:52mm minmax(0, 1fr) !important; gap:5mm; align-items:start }
    .rp .content-box .fc-contexte.fc-avec-illu::before { grid-column:1 / -1 }
    .rp .content-box .fc-analogie { display:grid !important; grid-template-columns:62mm minmax(0, 1fr) !important; gap:5mm; align-items:start }
    .rp .content-box .fc-illu { max-width:100% !important; height:auto }
}
@media print {
    html, body.rp, body.rp .rp-wrap { background:#FFFFFF !important }
    /* moins de pages à moitié vides : seuls les petits blocs restent insécables ; les grands (tableaux, encadrés, terminaux) peuvent se couper */
    .rp .content-box :is(table, .fc-box, .fc-term, .exercise-box, .fc-tickets) { break-inside:auto !important }
    .rp .content-box :is(tr, .fc-box > p, .fc-box li, .fc-ex h4, .fc-pas-h, .fc-fr, .fc-champs li, .quiz-question, .fc-ticket) { break-inside:avoid }
    .rp .content-box .cmd-block, .rp .content-box pre { break-inside:auto }
}
@media print {
    .rp .content-box .cmd-block { white-space:normal !important }   /* les <br> suffisent : pas de double interligne */
    .rp .content-box .fc-ticket { break-inside:auto !important }
    .rp .content-box .fc-ticket blockquote, .rp .content-box .fc-ticket label { break-inside:avoid }
}
@media print { .rp .content-box h2.fc-h2-fr { break-before:page } }

/* Pied de page des ressources : mentions et copyright */
.rp-foot { display:flex; flex-direction:column; align-items:center; gap:6px }
.rp-foot .rp-copy { display:inline-flex; align-items:center; gap:6px; padding:4px 12px; border-radius:999px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14);
    color:#E2E8F0; font-size:.78rem; font-weight:700; letter-spacing:.02em }
@media print { .rp-foot .rp-copy { color:#334155; background:none; border-color:#CBD5E1 } }
@media print {
    .rp .content-box .fc-insec { break-inside:avoid !important }
    .rp .content-box :is(.fc-term-h, .fc-ticket-h, .fc-ticket blockquote, .fc-ticket .q, .fc-tickets-h, h4, .fc-pas-h) { break-after:avoid !important }
}

/* ---------- v9 : interrupteurs de bits (.fc-bits) et décodeur d'adresse (.fc-ipcalc) ---------- */
.rp .content-box .fc-bits, .rp .content-box .fc-ipcalc { margin:16px 0 24px; padding:16px; border-radius:14px; background:#FFFFFF; border:1.5px solid #2563EB; box-shadow:inset 6px 0 0 #2563EB }
.rp .content-box .fc-bits-d { margin:0 0 12px; padding:9px 12px; border-radius:10px; background:#EFF6FF; color:#1E3A8A; font-weight:600 }
.rp .content-box .fc-bits-d.ok { background:#ECFDF5; color:#064E3B }
.rp .content-box .fc-bits-r { display:grid; grid-template-columns:repeat(8, 1fr); gap:6px }
.rp .content-box .fc-bits-r button { all:unset; cursor:pointer; display:flex; flex-direction:column; align-items:center; gap:4px; padding:8px 0 10px; border-radius:10px;
    background:#F1F5F9; border:2px solid #CBD5E1; transition:background .2s, border-color .2s, transform .1s }
.rp .content-box .fc-bits-r button small { font:700 .72rem Inter, sans-serif; color:#64748B }
.rp .content-box .fc-bits-r button b { font:800 1.6rem ui-monospace, Consolas, monospace; color:#94A3B8 }
.rp .content-box .fc-bits-r button.on { background:#2563EB; border-color:#1D4ED8 } .rp .content-box .fc-bits-r button.on small { color:#DBEAFE } .rp .content-box .fc-bits-r button.on b { color:#FFFFFF }
.rp .content-box .fc-bits-r button:active { transform:scale(.96) } .rp .content-box .fc-bits-r button:focus-visible { outline:3px solid #0F172A; outline-offset:2px }
.rp .content-box .fc-bits-v { display:flex; align-items:center; justify-content:center; gap:14px; margin-top:12px; font:800 1.3rem ui-monospace, Consolas, monospace }
.rp .content-box .fc-bits-v .bin { color:#1D4ED8; letter-spacing:.12em } .rp .content-box .fc-bits-v .eg { color:#64748B } .rp .content-box .fc-bits-v .dec { min-width:3ch; padding:4px 12px; border-radius:9px; background:#0F172A; color:#FFFFFF; text-align:center }
.rp .content-box .fc-bits-a { display:flex; justify-content:flex-end; margin-top:8px }
.rp .content-box .fc-bits-a button, .rp .content-box .fc-ipc-ex button { all:unset; cursor:pointer; padding:5px 11px; border-radius:8px; background:#F1F5F9; border:1px solid #CBD5E1; font-size:.8rem; font-weight:700; color:#334155 }
.rp .content-box .fc-ipc-s { display:flex; flex-wrap:wrap; gap:10px; align-items:flex-end }
.rp .content-box .fc-ipc-s label { flex:1 1 260px; display:flex; flex-direction:column; gap:4px; font-size:.8rem; font-weight:800; color:#1E3A8A }
.rp .content-box .fc-ipc-s input { padding:9px 12px; border-radius:9px; border:2px solid #93C5FD; font:700 1.05rem ui-monospace, Consolas, monospace; color:#0F172A }
.rp .content-box .fc-ipc-s input:focus { outline:none; border-color:#2563EB }
.rp .content-box .fc-ipc-s .go { all:unset; cursor:pointer; padding:10px 18px; border-radius:9px; background:#2563EB; color:#FFFFFF; font-weight:800 }
.rp .content-box .fc-ipc-ex { display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin-top:10px; font-size:.8rem; font-weight:700; color:#475569 }
.rp .content-box .fc-ipc-ex button { font-family:ui-monospace, Consolas, monospace }
.rp .content-box .fc-ipc-b { margin-top:14px; padding:12px; border-radius:12px; background:#0F172A; overflow-x:auto }
.rp .content-box .fc-ipc-b > div { display:flex; align-items:center; gap:12px; white-space:nowrap; padding:3px 0 }
.rp .content-box .fc-ipc-b .l { width:72px; flex:none; color:#94A3B8; font-size:.78rem; font-weight:800; text-transform:uppercase }
.rp .content-box .fc-ipc-b code { all:unset; font:700 1rem ui-monospace, Consolas, monospace; letter-spacing:.06em }
.rp .content-box .fc-ipc-b code i { font-style:normal; color:#64748B; margin:0 2px }
.rp .content-box .fc-ipc-b .r, .rp .content-box .fc-ipc-b .r1 { color:#60A5FA } .rp .content-box .fc-ipc-b .h, .rp .content-box .fc-ipc-b .h0 { color:#FDBA74 }
.rp .content-box .fc-ipc-b .d { color:#F1F5F9; font:700 .9rem ui-monospace, Consolas, monospace }
.rp .content-box .fc-ipc-b .leg { gap:16px; padding-top:8px; font-size:.78rem; font-weight:800 } .rp .content-box .fc-ipc-b .leg .r::before, .rp .content-box .fc-ipc-b .leg .h::before { content:"■ " }
.rp .content-box .fc-ipc-g { display:grid; grid-template-columns:repeat(auto-fit, minmax(190px, 1fr)); gap:8px; margin:12px 0 0 }
.rp .content-box .fc-ipc-g > div { padding:9px 12px; border-radius:10px; background:#F8FAFC; border:1.5px solid #CBD5E1 }
.rp .content-box .fc-ipc-g dt { font-size:.74rem; font-weight:800; color:#64748B; text-transform:uppercase; letter-spacing:.03em }
.rp .content-box .fc-ipc-g dd { margin:2px 0 0; font:800 1rem ui-monospace, Consolas, monospace; color:#0F172A }
.rp .content-box .fc-ipc-g dd small { font:600 .75rem Inter, sans-serif; color:#64748B }
.rp .content-box .fc-ipc-g .priv { border-color:#059669; background:#ECFDF5 } .rp .content-box .fc-ipc-g .pub { border-color:#2563EB; background:#EFF6FF } .rp .content-box .fc-ipc-g .spe { border-color:#EA580C; background:#FFF7ED }
.rp .content-box .fc-ipc-g .priv dd, .rp .content-box .fc-ipc-g .pub dd, .rp .content-box .fc-ipc-g .spe dd { font:700 .88rem Inter, sans-serif }
.rp .content-box .fc-ipcalc .err, .rp .content-box .fc-ipcalc .warn { margin:12px 0 0; padding:9px 12px; border-radius:10px; background:#FEF2F2; color:#7F1D1D; font-weight:600 }
.rp .content-box .fc-ipcalc .warn { background:#FFFBEB; color:#78350F }
@media (max-width:600px) { .rp .content-box .fc-bits-r button b { font-size:1.15rem } .rp .content-box .fc-bits-r { gap:3px } }
body.fc-projo .rp .content-box .fc-ipc-b code { font-size:1.25rem } body.fc-projo .rp .content-box .fc-bits-r button b { font-size:2rem }
@media print { .rp .content-box .fc-bits-a, .rp .content-box .fc-ipc-s .go, .rp .content-box .fc-ipc-ex { display:none } .rp .content-box .fc-ipc-b { -webkit-print-color-adjust:exact; print-color-adjust:exact } }
/* ---------- v9 : contexte Bloc 1 de l'élève (missions) ---------- */
.rp .content-box .fc-ctx { font-weight:800; color:#1E3A8A }
.rp .content-box .fc-ctx-carte { --c:#2563EB; display:flex; align-items:center; flex-wrap:wrap; gap:12px 16px; margin:14px 0 18px; padding:14px 16px; border-radius:14px;
    background:#FFFFFF; border:2px solid var(--c); box-shadow:inset 6px 0 0 var(--c) }
.rp .content-box .fc-ctx-carte .ic { width:46px; height:46px; flex:none; display:grid; place-items:center; border-radius:12px; background:var(--c); color:#FFFFFF; font-size:24px }
.rp .content-box .fc-ctx-carte > div { flex:1 1 220px; display:flex; flex-direction:column; gap:2px }
.rp .content-box .fc-ctx-carte small { font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color:#64748B }
.rp .content-box .fc-ctx-carte b { font-size:1.05rem; color:#0F172A } .rp .content-box .fc-ctx-carte div > span { color:#334155; font-size:.9rem }
.rp .content-box .fc-ctx-carte a { display:inline-flex; align-items:center; gap:6px; padding:8px 14px; border-radius:9px; background:var(--c); color:#FFFFFF !important; font-weight:800; font-size:.86rem; text-decoration:none }
.rp .content-box .fc-ctx-carte a.s { background:#F1F5F9; color:#0F172A !important; border:1px solid #CBD5E1 }
.rp .content-box .fc-ctx-carte.vide { --c:#64748B }
.rp .content-box .fc-diag-re[hidden] { display:none }
/* TP « Au labo » (fiches hors fil rouge) : turquoise, distinct du fil rouge */
.rp .content-box .fc-box.labo#fc-tp { --fc:#0D9488; --fc-bg:#F0FDFA; --fc-tx:#134E4A; box-shadow:inset 8px 0 0 #0D9488 }
.rp .content-box .fc-box.labo#fc-tp::before { content:"🧪 " attr(data-t); background:#0F766E }
.rp .content-box .fc-box.labo#fc-tp ol.fc-etapes > li::before, .rp .content-box .fc-box.labo#fc-tp h4.fc-pas-h .n { background:#0D9488 }
.rp .content-box .fc-box.labo#fc-tp h4 { color:#115E59 }
.rp .content-box .fc-box.labo#fc-tp h4.fc-pas-h { background:#CCFBF1; color:#134E4A }
