/* Mecademie v2 */
:root{
  --navy:#2E3A4D;--navy2:#1E2633;--orange:#FFA94D;--orange-d:#B8620E;--bg:#F5F6F7;--card:#FFFFFF;--ink:#17201B;--muted:#5B6578;--line:#DCE0E6;
  --ok:#1E6B43;--ok-bg:#E3F2E8;--ko:#B3261E;--ko-bg:#FBE7E5;--warn:#8A5A00;--warn-bg:#FFF2D9;
  --D:#2F7FB5;--I:#7A4FB0;--E:#B8620E;
  --f:"Barlow",system-ui,-apple-system,"Segoe UI",sans-serif;--fd:"Barlow Condensed","Barlow",system-ui,sans-serif;--fm:ui-monospace,"Cascadia Mono",Consolas,monospace;
  --r:10px;
  --surface:#FFFFFF;--surface2:#EEF0F4;--surface3:#F4F5F7;--link:#2E3A4D;--track:#E6E9EE;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 var(--f)}
a{color:var(--link)}
img{max-width:100%}
.mono{font-family:var(--fm)}
.muted{color:var(--muted)}
.small{font-size:13.5px;color:var(--muted)}
:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
button{font:inherit}

/* barre du haut */
.top{display:flex;align-items:center;gap:16px;padding:10px 20px;background:var(--navy);color:#fff;position:sticky;top:0;z-index:20;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:8px;color:#fff;text-decoration:none;font:22px var(--fd);letter-spacing:.3px}
.brand img{width:36px;height:36px;border-radius:8px;display:block}
.brand .bt{font-family:"Montserrat",var(--f);font-size:22px;letter-spacing:0}
.brand b{font-weight:700}
.brand .l{font-weight:300}
.logo{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;background:var(--orange);color:var(--navy2);font-weight:700}
.top-l{flex:1;min-width:0}
.top-r{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.who{font-weight:600}
.gsel{color:#fff;display:flex;gap:8px;align-items:center}
.gsel select{font:inherit;padding:6px 8px;border-radius:8px;border:0;min-height:36px}
.top .btn.ghost{color:#fff;border-color:rgba(255,255,255,.35)}

.wrap{max-width:1120px;margin:0 auto;padding:20px 20px 64px}
.h1{font:700 clamp(26px,4vw,36px)/1.1 var(--fd);margin:6px 0 14px}
.h2{font:700 24px/1.15 var(--fd);margin:28px 0 12px}
h2,h3{font-family:var(--fd)}
.eyebrow{font-size:13px;font-weight:600;letter-spacing:1.2px;text-transform:uppercase;color:var(--orange-d);margin:0}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px 20px;margin:0 0 16px}
.card h2{margin:0 0 8px;font-size:22px}
.stack{display:flex;flex-direction:column;gap:10px}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.row.between{justify-content:space-between}
.wrapr{gap:12px 16px;align-items:flex-end}
.wrapr label{display:flex;flex-direction:column;gap:4px;font-size:14px}
.grow{flex:1}
label{font-weight:500}
.input,select{font:inherit;padding:9px 11px;border:1.5px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);min-height:42px;max-width:100%}
textarea.input{resize:vertical;line-height:1.45}
.input.code{font-family:var(--fm);font-size:18px;letter-spacing:.12em;text-transform:uppercase}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:42px;padding:8px 16px;border-radius:8px;border:1.5px solid var(--line);background:var(--surface);color:var(--link);font-weight:600;text-decoration:none;cursor:pointer;white-space:nowrap}
.btn:hover{border-color:var(--link)}
.btn.primary{background:var(--orange);border-color:var(--orange);color:var(--navy2)}
.btn.primary:hover{background:#E07A14}
.btn.small{min-height:36px;padding:6px 12px;font-size:14px}
.btn.ghost{background:transparent}
.btn.danger{color:var(--ko);border-color:#E7B4AF}
.tag{display:inline-block;font-size:12px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--surface2);color:var(--muted)}
.tag.ok{background:var(--ok-bg);color:var(--ok)}
.tag.warn{background:var(--warn-bg);color:var(--warn)}
.top .tag{background:rgba(255,255,255,.15);color:#fff}
.lvl{display:inline-block;font-size:12.5px;font-weight:700;padding:3px 10px;border-radius:999px;color:#fff}
.lvl-D{background:var(--D)}.lvl-I{background:var(--I)}.lvl-E{background:var(--E)}
.err{color:var(--ko);background:var(--ko-bg);padding:8px 12px;border-radius:8px;margin:0 0 10px}
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,40px);background:var(--navy);color:#fff;padding:10px 18px;border-radius:10px;opacity:0;transition:.25s;z-index:60;pointer-events:none;max-width:90vw}
.toast.on{opacity:1;transform:translate(-50%,0)}
.bar{display:block;height:8px;border-radius:99px;background:var(--track);overflow:hidden;margin:8px 0 4px}
.bar i{display:block;height:100%;background:var(--orange)}

/* connexion */
.login .hero{padding:28px 0 8px}
.login .hero h1{font:700 clamp(30px,5vw,48px)/1.05 var(--fd);margin:0 0 8px;color:var(--link)}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:16px}
.demo{font-size:13px;color:var(--muted);margin-top:16px}

/* accueil stagiaire */
.lvlbanner{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;color:#fff;border-radius:14px;padding:20px 24px;margin-bottom:16px}
.lvlbanner h1{font:700 40px/1 var(--fd);margin:4px 0 6px}
.lvlbanner p{margin:0}
.lvlbanner .eyebrow{color:rgba(255,255,255,.85)}
.lvl-bg-D{background:linear-gradient(120deg,#1F5F8B,var(--D))}.lvl-bg-I{background:linear-gradient(120deg,#5A3787,var(--I))}.lvl-bg-E{background:linear-gradient(120deg,var(--navy),#29406E)}
.lock{display:flex;gap:6px;align-items:center;font-size:14px;opacity:.9}
.notice{display:flex;gap:8px;align-items:center;background:var(--warn-bg);color:var(--warn);border:1px solid #F0D7A6;border-radius:10px;padding:12px 16px;margin-bottom:16px;text-decoration:none}
.tabs,.ftabs{display:flex;gap:4px;overflow-x:auto;border-bottom:2px solid var(--line);scrollbar-width:thin}
.ftabs{background:var(--surface);padding:0 20px;position:sticky;top:56px;z-index:15}
.tab{padding:12px 14px;text-decoration:none;color:var(--muted);font-weight:600;white-space:nowrap;border-bottom:3px solid transparent;margin-bottom:-2px}
.tab.on{color:var(--navy);border-color:var(--orange)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.ccard{display:block;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px;text-decoration:none;color:inherit;transition:.15s}
a.ccard:hover{border-color:var(--orange);transform:translateY(-2px)}
.ccard h3{margin:10px 0 4px;font-size:21px}
.ccard p{margin:0}
.ccard.off{opacity:.62}

/* chapitres */
.back{display:inline-flex;align-items:center;gap:4px;text-decoration:none;font-weight:600;font-size:14.5px;color:var(--muted)}
.chapters{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}
.chap{display:flex;gap:16px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px}
.chap .num{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--navy);color:#fff;font:700 20px var(--fd)}
.chap-b{flex:1;min-width:0}.chap h3{margin:0 0 2px;font-size:21px}.chap p{margin:2px 0}
.chap .row{margin-top:10px}
.st-soon,.st-empty,.st-locked{opacity:.7}.st-soon .num,.st-locked .num{background:#8A96AE}
.st-done .num{background:var(--ok)}
.okmark{color:var(--ok)}.lockmark{color:var(--muted)}

/* écran de cours */
.crumbs{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:14.5px;color:var(--muted)}
.crumbs .btn{margin-left:auto}
.dots{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0 4px}
.dot{width:22px;height:8px;border-radius:99px;background:#D7DBE2}
.dot.seen{background:#F3C38F}.dot.on{background:var(--orange);width:34px}
.screen{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:22px 24px;margin-top:10px}
.intro{font-size:17px;color:var(--muted);margin-top:-6px}
.sc-body{display:grid;gap:22px}
.sc-body.has-fig{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:start}
.figs{display:grid;gap:14px}
.figs figure{margin:0;border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--surface)}
.figs img{display:block;margin:0 auto;max-height:440px;object-fit:contain}
.figs figcaption{font-size:12px;color:var(--muted);margin-top:6px}
.points{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:10px;font-size:16.5px}
.gterm{font:inherit;border:0;background:none;padding:0;color:var(--navy);font-weight:600;border-bottom:2px dotted var(--orange);cursor:help}
.pop{position:absolute;z-index:50;width:320px;max-width:calc(100vw - 24px);background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px rgba(20,33,61,.18);padding:12px 14px}
.pop p{margin:6px 0 10px;font-size:14.5px}
.ar{font-family:"Noto Naskh Arabic","Segoe UI",Tahoma,sans-serif;color:var(--muted);font-weight:500;margin-left:6px}
.qq{margin-top:22px;border-top:2px dashed var(--line);padding-top:16px}
.qq h3{margin:0 0 4px;font-size:19px;color:var(--orange-d)}
.opts{display:flex;flex-direction:column;gap:8px}
.opt-b{text-align:left;font:inherit;padding:11px 14px;border:1.5px solid var(--line);background:var(--surface);border-radius:10px;cursor:pointer;color:var(--ink);min-height:44px}
.opt-b:hover:not(:disabled){border-color:var(--link)}
.opt-b.right{border-color:var(--ok);background:var(--ok-bg)}
.opt-b.wrong{border-color:var(--ko);background:var(--ko-bg)}
.opt-b:disabled{cursor:default;color:var(--ink)}
.why{padding:10px 14px;border-radius:10px;background:var(--surface2);margin:12px 0}
.why.ok{background:var(--ok-bg);color:var(--ok)}.why.ko{background:var(--ko-bg);color:var(--ko)}
.pager{display:flex;justify-content:space-between;gap:10px;margin-top:16px}
.tblwrap{overflow-x:auto;margin:10px 0}
.tbl{width:100%;border-collapse:collapse;background:var(--surface);font-size:15px}
.tbl th,.tbl td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
.tbl th{background:var(--surface2);font-weight:600}
.okc{color:var(--ok);font-weight:700}.koc{color:var(--ko)}
.gloss{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.gloss div{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.gloss dt{font-weight:700}.gloss dd{margin:4px 0 0;color:var(--muted)}

/* simulations */
.simbox{margin:8px 0 22px}
.sim{display:grid;grid-template-columns:300px minmax(0,1fr);gap:20px;align-items:start;background:var(--surface3);border:1px solid var(--line);border-radius:12px;padding:16px}
.sim-controls{display:flex;flex-direction:column;gap:12px}
.ctl{display:grid;grid-template-columns:1fr auto;gap:2px 8px;font-size:14px}
.ctl-l{grid-column:1/-1;font-weight:600}
.ctl input[type=range]{width:100%;accent-color:var(--orange);min-height:28px}
.ctl select{grid-column:1/-1}
.ctl-v{font-family:var(--fm);font-size:13px;align-self:center;min-width:76px;text-align:right}
.chk{display:flex;gap:8px;align-items:center;font-size:14px}
.btnrow{display:flex;flex-wrap:wrap;gap:6px}
.chip{font:600 13.5px var(--f);padding:7px 11px;border-radius:999px;border:1.5px solid var(--line);background:var(--surface);color:var(--navy);cursor:pointer;min-height:36px}
.chip:hover:not(:disabled){border-color:var(--orange)}
.chip:disabled{opacity:.45}
.sim-out{min-width:0}
.sim-chart svg{width:100%;height:auto;display:block;background:#FFFFFF;border:1px solid var(--line);border-radius:8px}
.sim svg .gl{stroke:#E8EBF0;stroke-width:1}
.sim svg .ax{stroke:#8A96AE;stroke-width:1.2}
.sim svg .tk{font:11px var(--f);fill:#5B6578}
.sim svg .al{font:600 12px var(--f);fill:#3A4458}
.sim svg .mt{font:600 12px var(--f);fill:#2E3A4D}
.sim svg .curve{fill:none;stroke:var(--orange-d);stroke-width:2.4}
.sim svg .curve2{fill:none;stroke:#2F7FB5;stroke-width:2}
.sim svg .dash{fill:none;stroke:#8A96AE;stroke-width:1.5;stroke-dasharray:5 4}
.sim svg .thr{stroke:var(--ko);stroke-width:1.2;stroke-dasharray:6 4}
.sim svg .mk{stroke:#2E3A4D;stroke-width:1;stroke-dasharray:3 3}
.sim svg .mk2{stroke:#2F7FB5;stroke-width:1.2;stroke-dasharray:6 3}
.sim svg .spark{stroke:var(--orange);stroke-width:2}
.sim svg .pt{fill:#fff;stroke:#2E3A4D;stroke-width:1.6}
.sim svg .band{fill:#E3F2E8}
.sim svg .zone-b{fill:#EEF0F4}.sim svg .zone-o{fill:#FBE7E5}
.sim svg .bolt{fill:none;stroke:#B8620E;stroke-width:2;stroke-linejoin:round}
.sim svg .cur{stroke:#B3261E;stroke-width:2}
.readouts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-top:10px}
.ro{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 10px;display:flex;flex-direction:column}
.ro span{font-size:12.5px;color:var(--muted)}.ro b{font:700 20px var(--fd)}
.sim-msg{margin-top:10px;padding:10px 12px;border-radius:8px;background:var(--surface2);font-size:14.5px}
.sim-msg:empty{display:none}
.sim-msg.ok{background:var(--ok-bg);color:var(--ok)}.sim-msg.bad{background:var(--ko-bg);color:var(--ko)}.sim-msg.warn{background:var(--warn-bg);color:var(--warn)}
.defi{display:flex;flex-direction:column;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:10px}
.gauges{display:flex;flex-direction:column;gap:8px}
.gauge{font-size:13px}.gauge i{display:block;height:9px;background:var(--track);border-radius:99px;overflow:hidden;margin-top:3px}
.gauge u{display:block;height:100%;text-decoration:none}.g-ok{background:var(--ok)}.g-bad{background:var(--ko)}.g-warn{background:#D99A1E}
.phases .tbl{margin-top:10px;font-size:14px}.note{font-size:13px;color:var(--muted)}

/* quiz */
.facts{margin:0 0 14px;padding-left:20px}
.quizq .qt{font-size:19px;font-weight:600;margin-top:0}
.result{text-align:center}.result .big{font:700 64px/1 var(--fd);margin:6px 0}
.result.ok{border-color:var(--ok)}.result.ok .big{color:var(--ok)}.result.ko .big{color:var(--ko)}
.result .row{justify-content:center}
.corr{padding-left:20px}.corr li{margin-bottom:12px}.corr p{margin:2px 0}.corr li.ok::marker{color:var(--ok)}.corr li.ko::marker{color:var(--ko)}

/* CC en ligne */
.ccx{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:14px 18px;margin:0 0 16px}
.ccx legend{font:700 20px var(--fd);padding:0 6px}
.ccq p{margin:12px 0 4px}
.opt{display:flex;gap:8px;align-items:center;padding:4px 0;font-weight:400}
.ccr{display:flex;flex-direction:column;gap:6px;margin:12px 0;font-weight:400}
.ccr .input{width:100%}.ccr .row .input{width:auto;flex:1}
.ansbox{background:var(--surface3);border-radius:8px;padding:10px 12px;white-space:pre-wrap}

/* espace formateur */
.lvlset{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.seg{display:inline-flex;border:1.5px solid var(--line);border-radius:10px;overflow:hidden}
.seg button{border:0;background:var(--surface);padding:10px 16px;font-weight:600;cursor:pointer;color:var(--muted);min-height:44px}
.seg button+button{border-left:1.5px solid var(--line)}
.seg button.on{background:var(--navy);color:#fff}
.edit{background:var(--surface3);padding:12px;border-radius:8px}
.edit label{display:flex;flex-direction:column;gap:4px}
.edit label.row{flex-direction:row}
.tbl.sticky th{position:sticky;top:0}

/* diaporama */
body.showmode{background:var(--navy2)}
.slide{min-height:100vh;box-sizing:border-box;background:var(--navy2);color:#fff;display:flex;flex-direction:column;padding:clamp(18px,3vw,40px) clamp(18px,4vw,56px) 22px}
.s-top{display:flex;justify-content:space-between;font-size:clamp(14px,1.6vw,20px);color:#B8C2D8}
.s-k{color:var(--orange);font-weight:600;letter-spacing:1.5px;text-transform:uppercase}
.s-title{font:700 clamp(30px,4.6vw,60px)/1.05 var(--fd);margin:16px 0 12px}
.s-body{flex:1;display:flex;gap:clamp(18px,3vw,40px);align-items:center;min-height:0}
.s-media{flex:1.35;background:var(--surface);border-radius:16px;padding:16px;display:flex;gap:12px;align-items:center;justify-content:center;max-height:68vh;overflow:hidden}
.s-media img{max-width:100%;max-height:62vh;object-fit:contain;min-width:0}
.s-pts{flex:1;margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:clamp(10px,1.6vw,20px);font-size:clamp(17px,1.9vw,26px);line-height:1.3}
.s-pts li{padding-left:22px;position:relative}.s-pts li::before{content:"";position:absolute;left:0;top:.5em;width:10px;height:10px;border-radius:2px;background:var(--orange)}
.s-body.nomedia .s-pts{font-size:clamp(19px,2.3vw,30px)}
.s-body.simslide{align-items:flex-start}.s-body.simslide .s-media{flex:2.4;max-height:none;display:block;color:var(--ink)}
.s-body.simslide .s-pts{font-size:clamp(15px,1.4vw,19px)}
.s-tbl{margin-top:12px;color:var(--ink)}
.s-q{position:fixed;inset:12vh 10vw auto;background:var(--surface);color:var(--ink);border-radius:16px;padding:28px 34px;box-shadow:0 30px 80px rgba(0,0,0,.5);z-index:40;font-size:clamp(18px,2vw,26px)}
.s-q .s-qt{font-weight:700;margin-top:0}.s-q li{padding:6px 10px;border-radius:8px}.s-q li.right{background:var(--ok-bg);color:var(--ok);font-weight:700}
.s-why{background:var(--surface2);padding:10px 14px;border-radius:10px}.s-hint{font-size:15px;color:var(--muted)}
.s-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px;font-size:15px;color:#B8C2D8}
.s-foot a{color:#fff;text-decoration:none;display:inline-flex;align-items:center;gap:6px;min-height:44px}
.s-nav{display:flex;gap:6px}.s-nav a{width:46px;justify-content:center;border:1px solid rgba(255,255,255,.3);border-radius:10px}

@media (max-width:860px){
  .sc-body.has-fig{grid-template-columns:1fr}
  .sim{grid-template-columns:1fr}
  .s-body{flex-direction:column;align-items:stretch}
  .ftabs{top:0;position:static}
}
@media (max-width:520px){
  .wrap{padding:14px 16px 48px}.screen{padding:16px}.top{padding:10px 16px}
  .pager .btn{flex:1}
}

/* ---------- Feuilles de contrôle (A4, modèle OFPPT) ---------- */
body.printmode{background:#E5E7EB}
.ptool{position:sticky;top:0;z-index:5;display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:#fff;border-bottom:1px solid var(--line);padding:10px 16px;font-size:14px}
.page{width:210mm;height:297mm;margin:12px auto;background:#fff;box-shadow:0 2px 12px rgba(0,0,0,.15);padding:12mm 15mm 10mm;display:flex;flex-direction:column;font:10pt/1.32 Calibri,Carlito,"Segoe UI",Arial,sans-serif;color:#000;overflow:hidden}
.pb{flex:1;min-height:0}
.ph-logo{text-align:center}.ph-logo img{height:17mm}
.ph-dr{text-align:center;font-style:italic;font-weight:700;font-size:11pt;margin:2mm 0 2mm}
.page table{border-collapse:collapse;width:100%}
.ph-t td,.ph-t th{border:1px solid #000;padding:1.2mm 2mm;font-style:italic;text-align:left;font-size:10pt}
.ph-t th{background:#D9D9D9;text-align:center;font-style:normal;font-size:11pt}
.ph-t b{font-style:italic}
.fill{font-family:"Segoe Print","Comic Sans MS",cursive;color:#1F3A93;font-style:normal;font-weight:400}
.dotsl{display:inline-block;width:60%;border-bottom:1px dotted #000;height:1em}
.pex{font-size:11.5pt;margin:3.6mm 0 .4mm;color:#000;font-family:Calibri,Carlito,Arial,sans-serif}
.pex span{font-weight:400;font-size:10pt}
.pin{font-style:italic;margin:0 0 1.6mm}
.qcm{columns:2;column-gap:7mm}
.qi{break-inside:avoid;margin-bottom:1.2mm}.qi p{margin:0}
.qi ol{list-style:none;margin:0;padding-left:4mm;line-height:1.2}
.circ{display:inline-block;border:1.4px solid #1F3A93;border-radius:50%;padding:0 1.2mm;line-height:1.1;color:#1F3A93;font-weight:700}
.pt td,.pt th{border:1px solid #000;padding:.9mm 2mm;font-size:10pt}
.pt th{font-weight:700;text-align:left}.pt .c{text-align:center}.pt .w{width:28mm}
.bx{font-size:12pt;line-height:1}
.pq{margin:1.8mm 0 .6mm}
.dl{border-bottom:1px dotted #000;height:5.6mm}
.ans{font-family:"Segoe Print","Comic Sans MS",cursive;color:#1F3A93;border-bottom:1px dotted #000;padding:.6mm 1mm;min-height:6mm;white-space:pre-wrap;font-size:9.5pt}
.mk{font-weight:700;margin-left:2mm}.mk.ok{color:#1E6B43}.mk.ko{color:#C00000}
.pts{float:right;color:#C00000;font-weight:700}
.bc{text-align:right;font-style:italic;color:#555;margin-top:4mm}
.warnp{color:#C00000;font-size:9pt}
.pf{flex:none}
.pf-t th,.pf-t td{border:1px solid #000;text-align:center;font-size:9.5pt;padding:1mm}
.pf-t td{height:16mm}
.pf-t{table-layout:fixed;width:100%}.pf-t th:first-child{width:38%}
.pf-n{text-align:right;margin:1mm 0 0;font-size:9pt;color:#555}
@page{size:A4;margin:0}
@media print{
  body.printmode{background:#fff}
  .ptool,.toast,.pop{display:none!important}
  .page{margin:0;box-shadow:none;break-after:page}
  .page:last-child{break-after:auto}
}
.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px;margin-top:8px}.legend i{display:inline-block;width:14px;height:10px;border-radius:2px;opacity:.45;margin-right:5px}
.pq.inl{display:flex;align-items:flex-end;gap:2mm;margin:2.2mm 0 0}.pq.inl>span:first-child{flex:none;max-width:62%}.il{flex:1;height:auto;min-height:5mm}.ans.il{min-height:0;padding:0 1mm}
.gsel2{display:flex;flex-direction:column;gap:4px;font-size:14px;margin-bottom:6px}
.cyc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-bottom:10px}
#y-band{margin-bottom:4px}
@media (max-width:520px){.cyc{grid-template-columns:1fr}}
.navsel{display:flex;flex-wrap:wrap;gap:10px 16px;margin:14px 0 6px;padding:10px 14px;background:var(--card);border:1px solid var(--line);border-radius:10px}
.navsel-l{display:flex;flex-direction:column;gap:3px;font-size:13px;font-weight:600;color:var(--muted);flex:1 1 240px;min-width:0}
.navsel-l select{font-weight:600;color:var(--navy);width:100%}
.ar-def{font-family:"Noto Naskh Arabic","Segoe UI",Tahoma,sans-serif;font-size:16px;line-height:1.7;background:var(--surface3);border-radius:8px;padding:8px 10px;margin:6px 0 10px;text-align:right}
.cyc.simple{grid-template-columns:minmax(0,1fr)}.cyc.simple #y-eng svg{max-height:420px}
.s-ar{font-family:"Noto Naskh Arabic",Tahoma,sans-serif;font-size:clamp(18px,2vw,26px);color:#F2D54B;margin:-4px 0 8px;text-align:right}
.ar-def{color:var(--ink)}
.filters{display:flex;flex-direction:column;gap:10px;width:100%;max-width:560px;margin-bottom:6px}
.gsel2 select{width:100%;max-width:100%}
.wrapr>.filters{flex:1 1 100%}
.wrapr label{min-width:0;max-width:100%}
.wrapr label .input{width:100%;min-width:0}
.btn{white-space:normal;text-align:center}
/* Sélecteur de niveau : trois colonnes égales, couleur du niveau quand actif */
.seg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;max-width:560px;border:1.5px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface)}
.seg button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:56px;padding:8px 6px;border:0;background:var(--surface);color:var(--muted);font-weight:700;cursor:pointer;text-align:center;line-height:1.2;transition:background .15s,color .15s}
.seg button+button{border-left:1.5px solid var(--line)}
.seg button:hover:not(.on){background:var(--surface3);color:var(--link)}
.seg .seg-n{font-size:15px}
.seg .seg-c{font-size:11.5px;font-weight:500;opacity:.85}
.seg button.on{color:#fff}
.seg button.on[data-l=D]{background:var(--D)}.seg button.on[data-l=I]{background:var(--I)}.seg button.on[data-l=E]{background:var(--E)}
.lvlset .seg{max-width:420px}
@media (max-width:520px){.seg button{font-size:13.5px;padding:8px 4px}.seg .seg-n{font-size:14px}.seg .seg-c{font-size:11px}}

/* ---------- Mode sombre (bouton dans la barre du haut) ---------- */
:root[data-theme="dark"]{
  --bg:#141A24;--card:#1C2431;--ink:#E6E9F0;--muted:#A6B0C2;--line:#2F3A4C;
  --surface:#212B3B;--surface2:#283346;--surface3:#242F40;--link:#C9D6EE;--track:#2F3A4C;
  --ok:#7DD3A1;--ok-bg:#173226;--ko:#F29B93;--ko-bg:#3A1D1D;--warn:#F2C46B;--warn-bg:#3A2E14;
  --D:#5FA8DC;--I:#A783D8;--E:#E08A30;color-scheme:dark}
:root[data-theme="dark"] .btn.primary{color:#1E2633}
:root[data-theme="dark"] .gterm,:root[data-theme="dark"] .chip,:root[data-theme="dark"] .tab.on,:root[data-theme="dark"] .navsel-l select,:root[data-theme="dark"] .opt-b{color:var(--link)}
:root[data-theme="dark"] .ftabs{background:var(--card)}
:root[data-theme="dark"] .figs figure{background:#FFFFFF}
:root[data-theme="dark"] .figs figcaption{color:#5B6578}
:root[data-theme="dark"] .chap .num{background:#2F4170}
:root[data-theme="dark"] .notice{border-color:#5A4720}
:root[data-theme="dark"] .ar-def{background:var(--surface2)}
:root[data-theme="dark"] .seg button.on{color:#1E2633}
:root[data-theme="dark"] .s-q{background:var(--card)}
.theme-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;border:1.5px solid rgba(255,255,255,.35);background:transparent;color:#fff;cursor:pointer;padding:0}
.theme-btn:hover{background:rgba(255,255,255,.12)}
/* Traduction arabe du niveau Débutant */
.tr-ar{display:block;font-family:"Noto Naskh Arabic","Segoe UI",Tahoma,sans-serif;font-size:14.5px;line-height:1.75;color:var(--muted);text-align:right;margin-top:2px;font-weight:500}
.tr-title{font-size:17px;margin:-8px 0 10px}
.opt-b .tr-ar{font-size:13.5px;margin-top:1px}
.tr-tbl{margin-top:6px;font-family:"Noto Naskh Arabic","Segoe UI",Tahoma,sans-serif;font-size:14px}
.tr-tbl .tbl th,.tr-tbl .tbl td{text-align:right}
.s-tr{display:block;font-family:"Noto Naskh Arabic",Tahoma,sans-serif;font-size:.72em;color:#C9D3E6;text-align:right;margin-top:2px}
.tr-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border-radius:8px;border:1.5px solid var(--line);background:var(--surface);color:var(--link);cursor:pointer;flex:none}
.tr-btn:hover{border-color:var(--link)}
.tr-btn.on{background:var(--orange);border-color:var(--orange);color:#1E2633}
.crumbs .tr-btn{margin-left:auto}.crumbs .tr-btn+.btn{margin-left:0}
.s-nav{align-items:center}
.s-trbtn{width:46px;height:46px;background:transparent;border-color:rgba(255,255,255,.3);color:#fff}
.s-trbtn:hover{border-color:#fff}
.s-trbtn.on{background:var(--orange);border-color:var(--orange);color:#1E2633}

/* ---------- 2.38 : comptes, groupes, mots de passe ---------- */
.okmsg{color:var(--ok);background:var(--ok-bg);padding:8px 12px;border-radius:8px;margin:0 0 10px}
.pwfield{position:relative;display:block}
.pwfield .input{width:100%;padding-right:48px}
.pweye{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:40px;height:40px;border:0;background:transparent;color:var(--muted);border-radius:8px;cursor:pointer;display:grid;place-items:center}
.pweye[aria-pressed="true"]{color:var(--orange-d)}
.empty-state{text-align:center;padding:32px 20px}
.empty-state h2{margin-top:0}
.rowsel td{background:var(--surface3)}
.big-code{font-size:22px;letter-spacing:1px;color:var(--link);background:var(--surface2);padding:2px 10px;border-radius:8px}
.asgtree{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.asg{border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.asg>summary{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;cursor:pointer;list-style:none}
.asg>summary::-webkit-details-marker{display:none}
.asg>summary::before{content:"▸";color:var(--muted);margin-right:-4px}
.asg[open]>summary::before{content:"▾"}
.asg>summary .chk{flex:1;font-size:15px}
.asg-c{padding:4px 14px 12px 36px}
.asg-chs{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:6px 18px;padding:6px 0 0 26px}
.asg-chs .chk{align-items:flex-start;line-height:1.35}
.asg-chs .tag{font-size:11px;padding:1px 6px}
.chk input{width:18px;height:18px;flex:none;accent-color:var(--orange-d);margin-top:1px}
.pw{letter-spacing:1px;font-size:15px}
.pwedit{gap:6px;flex-wrap:nowrap}.pwedit .input{width:9em;min-height:34px;padding:4px 8px}
.synclist{margin:6px 0 10px;padding-left:22px;font-size:14px;columns:2;column-gap:24px}
.synclist li{break-inside:avoid}
@media (max-width:640px){.synclist{columns:1}.asg-c{padding-left:16px}.asg-chs{padding-left:8px;grid-template-columns:1fr}}

/* fiches de connexion à découper */
.fiches{width:210mm;margin:12px auto;background:#fff;padding:10mm;display:grid;grid-template-columns:1fr 1fr;gap:0;box-shadow:0 2px 12px rgba(0,0,0,.15);color:#000}
.fiche{border:1px dashed #888;padding:5mm 6mm;break-inside:avoid;font:10.5pt/1.35 "Barlow",Arial,sans-serif}
.fiche-h{display:flex;align-items:center;gap:6px;border-bottom:2px solid #FFA94D;padding-bottom:2mm}
.fiche-h .bt{font-family:"Montserrat",Arial,sans-serif;font-size:15pt;color:#2E3A4D}.fiche-h .bt b{font-weight:700}.fiche-h .bt .l{font-weight:300}
.fiche-h img{border-radius:5px}
.fiche-u{margin-left:auto;font-size:9pt;color:#444}
.fiche-n{font-weight:700;font-size:12.5pt;margin:2.5mm 0 1.5mm}
.fiche table{border-collapse:collapse;width:100%}
.fiche th{text-align:left;font-weight:500;color:#444;padding:1mm 0;width:42%}
.fiche td{font-size:13pt;font-weight:700;letter-spacing:.5px}
.fiche-f{font-size:8.5pt;color:#555;margin:2mm 0 0}
@media print{.fiches{margin:0;box-shadow:none;padding:8mm}}
:root[data-theme="dark"] .rowsel td{background:var(--surface2)}
.tbl.mid td{vertical-align:middle}
.row.acts{gap:6px;flex-wrap:wrap;margin:0}
.asg-chs .tag{white-space:nowrap}
@media (max-width:640px){
  .tbl.stg thead{display:none}
  .tbl.stg,.tbl.stg tbody{display:block}
  .tbl.stg tr{display:grid;grid-template-columns:30px minmax(0,1fr) auto;grid-template-areas:"n nm pw" "n lv lv" "a a a";padding:10px 4px;border-bottom:1px solid var(--line);background:var(--card)}
  .tbl.stg td{border:0;padding:2px 6px}
  .tbl.stg td:nth-child(1){grid-area:n}.tbl.stg td:nth-child(2){grid-area:nm}.tbl.stg td:nth-child(3){grid-area:lv}.tbl.stg td:nth-child(4){grid-area:pw;text-align:right}.tbl.stg td:nth-child(5){grid-area:a;padding-top:6px}
  .tbl.stg .pwedit{flex-wrap:wrap;justify-content:flex-end}
}

/* ---------- 2.39 : icône vectorielle animée ---------- */
.brand .logo-svg{width:36px;height:36px;display:block;flex:none}
.logo-svg .lg-hat,.logo-svg .lg-tassel{transform-box:view-box}
.logo-svg .lg-tassel{transform-origin:387px 400px}
.logo-svg .lg-nut{opacity:0}
.lg-tighten .lg-tassel{animation:lgTighten 2.2s cubic-bezier(.5,0,.3,1) both}
.lg-tighten .lg-nut{animation:lgNut 2.2s ease both}
@keyframes lgTighten{0%,10%{transform:none}30%,38%{transform:rotate(-24deg)}50%{transform:none}70%,78%{transform:rotate(-24deg)}92%,100%{transform:none}}
@keyframes lgNut{0%{opacity:0}10%,90%{opacity:1}100%{opacity:0}}
/* écran d'ouverture : tracé technique */
.splash{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:#2E3A4D;transition:opacity .45s ease;cursor:pointer}
.splash.out{opacity:0;pointer-events:none}
.splash-in{display:flex;flex-direction:column;align-items:center;gap:14px}
.splash .logo-svg{width:min(42vw,190px);height:auto;overflow:visible}
.splash-name{margin:0;color:#fff;font:clamp(30px,7vw,44px) "Montserrat",var(--f);opacity:0;transform:translateY(8px);animation:spName .5s ease 1.7s forwards}
.splash-name b{font-weight:700}.splash-name span{font-weight:300}
@keyframes spName{to{opacity:1;transform:none}}
.lg-trace .draw{fill-opacity:0;stroke:#fff;stroke-width:6;stroke-dasharray:1;stroke-dashoffset:1;animation:lgDraw 1.3s ease-in-out forwards,lgFill .5s ease 1.25s forwards}
.lg-trace .draw.o{stroke:#FFA94D}
.lg-trace .draw.c2{animation-delay:.25s,1.4s}
.lg-trace .draw.c3{animation-delay:.5s,1.55s}
.lg-trace path.draw.o{animation:lgDraw 1.3s ease-in-out .5s forwards}
@keyframes lgDraw{to{stroke-dashoffset:0}}
@keyframes lgFill{to{fill-opacity:1;stroke-width:0}}
@media (prefers-reduced-motion:reduce){.logo-svg *{animation:none!important}.splash{display:none}}
@media print{.splash{display:none}}
.lg-trace path.draw.o{stroke-width:7}

/* ---------- 2.40 : barre du haut (logo à gauche, boutons à droite, groupe sous le logo sur téléphone) ---------- */
.top{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto auto;grid-template-areas:"brand sub . who act";align-items:center;gap:8px 16px}
.top .brand{grid-area:brand}
.top-sub{grid-area:sub;display:flex;align-items:center;gap:10px;min-width:0}
.top-who{grid-area:who;display:flex;align-items:center;gap:8px;white-space:nowrap}
.top-act{grid-area:act;display:flex;align-items:center;gap:8px}
.top .theme-btn{text-decoration:none}
.top .theme-btn.on{background:var(--orange);border-color:var(--orange);color:var(--navy)}
.top-sub .who{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:720px){
  .top{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand act" "sub sub";padding:8px 16px 10px;gap:8px}
  .top-who{display:none}
  .top-sub{width:100%}
  .top-sub .gsel{width:100%}
  .top-sub .gsel select{flex:1;min-height:38px;font-size:16px}
  .top .brand .bt{font-size:21px}
}
/* icônes de la barre du haut sans cadre */
.top .theme-btn{border-color:transparent;width:38px;height:38px}
.top .theme-btn:hover{background:rgba(255,255,255,.12)}
.top .theme-btn.on{background:transparent;border-color:transparent;color:var(--orange)}
.top .theme-btn svg{width:22px;height:22px}
/* pied de page : droits d'auteur (identique à E-Classeur) */
.app-foot{max-width:640px;margin:0 auto;text-align:center;padding:14px 14px calc(env(safe-area-inset-bottom,0px) + 22px);border-top:1px solid var(--line);font-size:12px;color:var(--muted);letter-spacing:.01em}
main.wrap:has(+ .app-foot){padding-bottom:24px}
@media print{.app-foot{display:none}}
/* validation de l'attribution des cours */
.asg-valid{position:sticky;bottom:0;z-index:4;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--card)}
.asg-valid.dirty{border-color:var(--orange);box-shadow:0 -4px 16px rgba(0,0,0,.12)}
.asg-diff{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:14px;min-width:0;flex:1}
.asg-diff .df{font-size:13px;padding:2px 8px;border-radius:999px}
.asg-diff .df.add{background:var(--ok-bg);color:var(--ok)}
.asg-diff .df.rem{background:var(--ko-bg);color:var(--ko)}
.asg-valid .btn[disabled]{opacity:.45;cursor:not-allowed}
@media (max-width:640px){.asg-valid .row{width:100%;flex-wrap:nowrap}.asg-valid .btn{flex:1;white-space:nowrap;padding-left:10px;padding-right:10px}}

/* ---------- 2.43 : barre de navigation flottante, glisser, zoom d'image ---------- */
.fbar{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(12px + env(safe-area-inset-bottom,0px));width:min(920px,calc(100% - 24px));z-index:40;
  display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0;padding:8px;border-radius:16px;
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 10px 30px rgba(0,0,0,.28)}
body.has-fbar main.wrap{padding-bottom:110px}
body.has-fbar .app-foot{padding-bottom:calc(env(safe-area-inset-bottom,0px) + 96px)}
/* écrans du cours */
.pager.fbar{background:color-mix(in srgb,var(--card) 90%,transparent);border:1px solid var(--line)}
.pager.fbar .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:46px;padding:8px 16px;flex:0 0 auto}
.pager.fbar .btn.ph{visibility:hidden}
.pg-mid{display:flex;align-items:center;gap:10px;font-weight:600;color:var(--muted);font-size:14px}
.pager.fbar .tr-btn{width:46px;height:46px}
/* diaporama */
.slide{padding-bottom:110px}
.s-foot.fbar{background:rgba(11,20,38,.88);border:1px solid rgba(255,255,255,.14);color:#B8C2D8;font-size:14px;flex-wrap:nowrap;width:min(1100px,calc(100% - 24px))}
.s-foot.fbar .s-exit{padding:0 8px;min-height:46px;white-space:nowrap}
.s-foot.fbar .s-n{font-weight:600;color:#fff;white-space:nowrap}
.s-foot.fbar .s-nav a,.s-foot.fbar .s-nav .tr-btn{width:48px;height:46px;min-height:46px}
/* 3.34 : flèches ‹ › toujours au même endroit (grille 1fr auto 1fr) */
.s-foot.fbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}
.s-foot.fbar .s-l{display:flex;align-items:center;gap:8px;justify-self:start;min-width:0}
.s-foot.fbar .s-r{display:flex;overflow:hidden;align-items:center;justify-content:flex-end;gap:6px;justify-self:end;min-width:0}
.s-foot.fbar .s-r .tr-btn{width:48px;height:46px;min-height:46px}
.s-foot.fbar .s-keys{display:none}
@media (min-width:1000px) and (hover:hover){.s-foot.fbar .s-keys{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1;text-align:right;font-size:13px}}
@media (max-width:560px){
  .fbar .lbl{display:none}
  .pager.fbar .btn{width:56px;padding:8px}
  .s-foot.fbar .s-exit{width:46px;justify-content:center;padding:0;border:1px solid rgba(255,255,255,.3);border-radius:10px}
}
/* animation à l'arrivée d'un nouvel écran */
.enter-next{animation:enterNext .28s ease both}
.enter-prev{animation:enterPrev .28s ease both}
@keyframes enterNext{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:none}}
@keyframes enterPrev{from{opacity:0;transform:translateX(-40px)}to{opacity:1;transform:none}}
.screen,.slide .s-body{touch-action:pan-y pinch-zoom}
/* images agrandissables */
.zbtn{display:block;padding:0;margin:0 auto;border:0;background:none;cursor:zoom-in;border-radius:8px;max-width:100%;position:relative}
.zbtn img{display:block}
.zbtn::after{content:"";position:absolute;right:6px;bottom:6px;width:30px;height:30px;border-radius:8px;background:rgba(20,33,61,.78) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='M16 16l4.5 4.5M11 8v6M8 11h6'/%3E%3C/svg%3E") center/18px no-repeat;opacity:.85}
.s-media .zbtn{flex:1 1 0;min-width:0}
.s-media .zbtn img{max-width:100%;max-height:62vh;object-fit:contain;margin:0 auto}
/* visionneuse */
html.zoom-lock,html.zoom-lock body{overflow:hidden}
.zoom{position:fixed;inset:0;z-index:200;background:rgba(5,10,20,.95);display:flex;flex-direction:column;animation:zIn .18s ease}
@keyframes zIn{from{opacity:0}to{opacity:1}}
.zoom-top{display:flex;align-items:center;gap:10px;padding:calc(10px + env(safe-area-inset-top,0px)) 12px 10px;color:#E8ECF3}
.zoom-cap{flex:1;min-width:0;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zoom-tools{display:flex;gap:6px}
.zoom-tools button{width:44px;height:44px;border-radius:10px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.06);color:#fff;font:600 18px var(--f);cursor:pointer}
.zoom-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:none;cursor:zoom-in}
.zoom.zoomed .zoom-stage{cursor:grab}
.zoom-stage img{max-width:96vw;max-height:100%;object-fit:contain;background:#fff;border-radius:6px;user-select:none;-webkit-user-drag:none;will-change:transform;transform-origin:center center}
.zoom-hint{margin:0;padding:8px 12px calc(12px + env(safe-area-inset-bottom,0px));text-align:center;font-size:12.5px;color:#A7B0C2}
@media print{.fbar,.zoom{display:none!important}}
/* barre flottante : icônes sans cadre */
.fbar .btn,.fbar .tr-btn,.fbar .s-nav a,.fbar .s-exit{border:0!important;background:transparent!important;box-shadow:none!important;border-radius:12px}
.fbar .btn:hover,.fbar .tr-btn:hover,.fbar .s-nav a:hover,.fbar .s-exit:hover{background:rgba(127,127,127,.14)!important}
.pager.fbar .btn{color:var(--link)}
.pager.fbar .btn.primary{color:var(--orange)}
.fbar .tr-btn{color:inherit}
.fbar .tr-btn.on{color:var(--orange)}
.pager.fbar .btn svg,.fbar .s-nav svg,.fbar .s-exit svg{width:26px;height:26px}
.fbar .tr-btn svg{width:24px;height:24px}
.s-foot.fbar .s-nav a,.s-foot.fbar .s-exit{color:#fff}
@media (max-width:560px){.s-foot.fbar .s-exit{border:0}}
/* CC en ligne : traduction arabe (Débutant) */
.ccq .opt{display:flex;align-items:flex-start;gap:8px}
.ccq .opt>span{flex:1;min-width:0}
.ccx legend .tr-ar{font-size:14px}
.ccform .tbl td .tr-ar{font-size:13.5px}
.warnt{color:var(--warn)}
/* 2.45 : récapitulatif du CC avant envoi + calendrier */
.cc-send{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:6px}
.rc-head{border-left:5px solid var(--ok)}
.rc-head.warn{border-left-color:var(--orange)}
.rc-head h2{margin-top:0}
.rc-left{color:var(--orange-d)}
.rc-ex{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:12px 16px;margin:0 0 14px}
.rc-ex h3{font:700 19px var(--fd);margin:0 0 8px}
.rc-list{list-style:none;margin:0;padding:0}
.rc-list li{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:6px 16px;padding:9px 0;border-top:1px solid var(--line)}
.rc-list li:first-child{border-top:0}
.rc-q{font-size:15px}
.rc-ans{display:inline-block;font-weight:600;color:var(--link);background:var(--surface2);border-radius:8px;padding:3px 10px;white-space:pre-wrap}
.rc-miss{display:inline-block;font-weight:600;color:var(--warn);background:var(--warn-bg);border-radius:8px;padding:3px 10px}
.rc-a{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rc-foot{margin:6px 0 20px}
@media (max-width:640px){.rc-list li{grid-template-columns:1fr}}
.datepick{display:flex;gap:6px;align-items:center}
.datepick .input{width:auto;min-width:160px}
:root[data-theme="dark"] input[type="date"]{color-scheme:dark}
/* 2.45 : bouton de synchronisation + présence des stagiaires */
.syncbtn{position:relative}
.syncbtn.dirty{color:var(--orange)!important}
.syncbtn .sb-n{position:absolute;top:2px;right:0;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--orange);color:var(--navy);font:700 10.5px/17px var(--f);text-align:center}
.syncbtn .sb-n:empty{display:none}
.syncbtn.err{color:#FF8A80!important}.syncbtn.err .sb-n{background:#FF8A80}
.syncbtn.spin svg{animation:sbSpin 1s linear infinite}
@keyframes sbSpin{0%{transform:translateY(0)}50%{transform:translateY(-3px)}100%{transform:translateY(0)}}
.pres{display:inline-flex;align-items:flex-start;gap:7px;font-size:13.5px;line-height:1.25}
.pres i{flex:none;width:10px;height:10px;border-radius:50%;margin-top:4px;background:#9AA3B2}
.pres b{font-weight:600}
.pres small{display:block;color:var(--muted);font-size:12px}
.pres.on i{background:#22A35A;box-shadow:0 0 0 3px rgba(34,163,90,.18)}
.pres.busy i{background:var(--orange);box-shadow:0 0 0 3px rgba(242,140,40,.2)}
.pres.away i{background:#E3B341}
.pres.off i{background:#9AA3B2}
.pres-sum{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;margin:14px 0 4px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--card)}
.pres-sum .pres{align-items:center}.pres-sum .pres i{margin-top:0}
.tbl.stg.haspres td .pres{display:flex;margin-top:4px}

.ph-num{margin:1.2mm 0 0;font-size:8.5pt;font-style:italic;color:#555}
/* 2.46 : motivation dans le bandeau de niveau */
.lvlbanner{align-items:stretch}
.motto{flex:1 1 300px;max-width:520px;display:flex;flex-direction:column;gap:10px;align-self:flex-end}
.motto>p{display:flex;gap:8px;align-items:flex-start;font-size:15px;line-height:1.45;margin:0;font-weight:500}
.motto>p svg{flex:none;margin-top:3px}
.goal{background:rgba(0,0,0,.18);border-radius:10px;padding:10px 12px}
.goal-t{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;opacity:.95}
.goal-t b{font:700 22px var(--fd)}
.goal-bar{position:relative;height:9px;border-radius:6px;background:rgba(255,255,255,.25);margin:6px 0 5px;overflow:visible}
.goal-bar i{position:absolute;left:0;top:0;bottom:0;border-radius:6px;background:#fff}
.goal-bar em{position:absolute;top:-4px;bottom:-4px;width:3px;margin-left:-1px;background:var(--orange);border-radius:2px}
.goal-s{font-size:12.5px;opacity:.9}
/* 2.46 : pas de zoom de la page (seules les images s'agrandissent dans la visionneuse) */
html,body{touch-action:pan-x pan-y}
.zoom-stage{touch-action:none}
@media (max-width:720px){input,select,textarea{font-size:16px}}
/* 2.46 : pas de zoom de la page (seule la visionneuse d'images zoome) */
html,body{touch-action:pan-x pan-y}
.zoom-stage{touch-action:none}

/* 2.47 — simulations Bloc-moteur et embiellage */
.chip.on,:root[data-theme="dark"] .chip.on{background:var(--navy);border-color:var(--navy);color:#fff}
:root[data-theme="dark"] .chip.on{background:var(--orange);border-color:var(--orange);color:#2E3A4D}
.sim .btnrow{display:flex;flex-wrap:wrap;gap:6px}
.sim select{font:inherit;padding:6px 8px;border-radius:8px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink)}
.mt-hint{font-size:14px;margin:0;color:var(--ink)}
.mt-ask{border:1px solid var(--line);border-radius:10px;padding:8px 10px 10px;margin:10px 0 0}
.mt-ask legend{font-weight:600;padding:0 4px;font-size:14px}
.sim svg [data-pt]:hover rect{stroke:var(--orange);stroke-width:2}
.dg-head{display:flex;justify-content:space-between;gap:10px;font-size:14px;margin-bottom:6px}
.dg-sym{background:var(--surface);border-left:4px solid var(--orange);border-radius:6px;padding:10px 12px;margin:0 0 10px;font-size:15px}
.dg-l{font-weight:700;margin:10px 0 6px;font-size:14px}
.dg-tests{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px}
.dg-t{text-align:left;font:inherit;display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:10px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;min-height:64px}
.dg-t:hover{border-color:var(--orange)}
.dg-t.on{border-color:var(--ok);background:var(--ok-bg)}
.dg-t.on span{color:var(--ok);font-weight:600}
.dg-t .muted{font-size:13px}
.sim .chip:disabled{cursor:default}
/* 2.47 — confirmation de déconnexion */
.cfm{position:fixed;inset:0;z-index:200;background:rgba(11,20,38,.55);display:flex;align-items:center;justify-content:center;padding:16px;animation:cfmIn .15s ease}
.cfm-box{background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.3);padding:20px 20px 16px;width:min(380px,100%)}
.cfm-box h2{margin:0 0 6px;font:700 20px var(--fd,inherit)}
.cfm-box p{margin:0 0 16px;color:var(--muted);font-size:15px}
.cfm-b{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
@keyframes cfmIn{from{opacity:0}to{opacity:1}}
.stk{display:grid;gap:10px}
.stk .sim-chart svg{max-height:440px}
.sim .chip.on:disabled{opacity:1}

/* 2.48 — onglets formateur avec icônes ; pastilles de groupe sous les onglets */
.ftl{display:flex;gap:2px;overflow-x:auto;scrollbar-width:thin;min-width:0;flex:1 1 auto}
.ftabs .tab{display:inline-flex;align-items:center;gap:7px}
.ftabs .tab svg{flex:none;opacity:.85}
.ftabs .tab.on svg{opacity:1;color:var(--orange)}
.gpills{display:flex;align-items:center;gap:10px;padding:8px 20px;background:var(--surface);border-bottom:1px solid var(--line)}
:root[data-theme="dark"] .gpills{background:var(--card)}
.gp-lab{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;flex:none}
.gp-row{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;min-width:0;padding:2px;scroll-behavior:smooth}
.gp-row::-webkit-scrollbar{display:none}
.gp{display:inline-flex;align-items:center;gap:7px;flex:none;font:600 14px var(--f);color:var(--navy);background:var(--card);border:1.5px solid var(--line);border-radius:999px;padding:6px 12px;min-height:36px;cursor:pointer;white-space:nowrap}
.gp:hover{border-color:var(--orange)}
.gp:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
.gp.on{background:var(--navy);border-color:var(--navy);color:#fff}
.gp.demo{border-style:dashed}
.gp-dot{width:9px;height:9px;border-radius:50%;flex:none;background:var(--muted)}
.gp-dot.lvl-d-D{background:var(--D)}.gp-dot.lvl-d-I{background:var(--I)}.gp-dot.lvl-d-E{background:var(--E)}
.gp.on .gp-dot{box-shadow:0 0 0 2px #fff}
.gp-c{font-size:12px;font-weight:700;background:var(--surface2,#EEF0F4);color:var(--muted);border-radius:999px;padding:1px 7px}
.gp.on .gp-c{background:rgba(255,255,255,.18);color:#fff}
.gp-fam{display:inline-flex;align-items:center;gap:6px;flex:none;padding-right:10px;margin-right:4px;border-right:1px solid var(--line)}
.gp-fam:last-child{border-right:0}
.gp-fl{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
:root[data-theme="dark"] .gp{color:var(--ink)}
:root[data-theme="dark"] .gp.on{background:var(--orange);border-color:var(--orange);color:#2E3A4D}
:root[data-theme="dark"] .gp.on .gp-c{color:#2E3A4D;background:rgba(20,33,61,.15)}
@media (max-width:760px){
  .ftabs{padding:0 12px}
  .ftl{width:100%;justify-content:space-between}
  .ftabs .tab{padding:11px 10px;flex:0 0 auto}
  .ftabs .tab .tab-n{display:none}
  .ftabs .tab.on .tab-n{display:inline}
  .gpills{padding:8px 12px;gap:8px}
  .gp-lab span{display:none}
  .gp{font-size:15px;min-height:40px}
}
/* 2.48 — compte démo et remise à zéro */
.demo-card h2,.reset-card h2{display:flex;align-items:center;gap:8px}
.demo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:10px 0}
.demo-grid>div{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px 12px;display:flex;flex-direction:column}
.demo-grid span{font-size:12.5px;color:var(--muted)}
.demo-grid b{font:700 18px var(--fd,inherit);word-break:break-all}
.demo-l{font-weight:600;margin:8px 0 6px}
.reset-card{border-color:#E7B4AF}
.cfm-body p{margin:0 0 10px;color:var(--ink);font-size:15px}
.cfm-body .small{color:var(--muted)}
.cfm-w{display:flex;flex-direction:column;gap:6px;margin:4px 0 14px;font-size:14px}
.cfm-w .input{font:700 18px var(--f);letter-spacing:.12em;text-transform:uppercase}
.btn.danger:not(.small){background:var(--ko);color:#fff;border-color:var(--ko)}
.btn.danger:disabled{opacity:.45;cursor:not-allowed}
/* 2.48 — pastilles compactes (style B, taille réduite) */
.gpills{padding:4px 20px;gap:6px}
.gp-lab{color:var(--muted)}
.gp-row{gap:4px;padding:1px}
.gp{font-size:12px;gap:5px;padding:2px 8px 2px 7px;min-height:24px;border-width:1px;line-height:1.2}
.gp-dot{width:7px;height:7px}
.gp.on .gp-dot{box-shadow:0 0 0 1.5px #fff}
.gp-c{font-size:10.5px;padding:0 5px;line-height:1.5}
@media (max-width:760px){.gpills{padding:4px 12px;gap:6px}.gp{font-size:12.5px;min-height:28px;padding:3px 9px 3px 8px}}
.gp-row{align-items:center}
.gp{height:24px;min-height:0}
@media (max-width:760px){.gp{height:28px}}
@media (max-width:760px){.gpills{padding:3px 12px;gap:5px}.gp{height:22px;font-size:11px;padding:1px 7px 1px 6px;gap:4px}.gp-dot{width:6px;height:6px}.gp-c{font-size:9.5px;padding:0 4px}.gp-lab svg{width:13px;height:13px}}
/* 2.50 — barre d'onglets : plus de barre de défilement, onglets répartis et alignés sur le contenu */
.ftabs{overflow:hidden;padding:0 max(20px,calc((100% - 1080px) / 2));border-bottom:1px solid var(--line);gap:0}
.ftl{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;gap:0;width:100%}
.ftl::-webkit-scrollbar{display:none}
.ftabs .tab{flex:1 1 0;justify-content:center;min-width:0;padding:13px 8px 11px;margin:0;border-bottom:3px solid transparent;border-radius:8px 8px 0 0;font-size:15px;transition:background .15s,color .15s}
.ftabs .tab:hover{background:var(--surface2,#EEF0F4);color:var(--navy)}
.ftabs .tab.on{color:var(--navy);border-bottom-color:var(--orange);background:transparent}
.ftabs .tab .tab-n{overflow:hidden;text-overflow:ellipsis}
:root[data-theme="dark"] .ftabs .tab:hover{background:rgba(255,255,255,.05);color:var(--ink)}
:root[data-theme="dark"] .ftabs .tab.on{color:#fff}
.gpills{padding:4px max(20px,calc((100% - 1080px) / 2))}
@media (max-width:1000px){.ftabs .tab{font-size:14px;gap:5px;padding:12px 4px 10px}}
@media (max-width:760px){
  .ftabs{padding:0 8px}
  .ftabs .tab{flex:1 1 0;padding:11px 2px 9px}
  .ftabs .tab.on{flex:2.2 1 0}
  .gpills{padding:3px 12px}
}
/* ---------- 2.52 : téléphone — logo seul en haut, icônes dessous à droite ; recherche instantanée ---------- */
@media (max-width:720px){
  .top{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand brand" "sub act";padding:8px 12px 6px 16px;gap:2px 8px}
  .top .brand{padding:2px 0}
  .top-sub{width:auto;min-width:0}
  .top-act{justify-self:end;gap:2px}
  .top .theme-btn{width:36px;height:36px}
}
.srch{position:fixed;inset:0;z-index:80;background:rgba(11,20,38,.55);display:flex;justify-content:center;align-items:flex-start;padding:9vh 16px 16px}
.srch[hidden]{display:none}
body.srch-on{overflow:hidden}
.srch-box{width:100%;max-width:680px;max-height:78vh;display:flex;flex-direction:column;background:var(--card);color:var(--ink);border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.35);overflow:hidden}
.srch-bar{display:flex;align-items:center;gap:8px;padding:10px 10px 10px 14px;border-bottom:1px solid var(--line)}
.srch-ic{color:var(--muted);display:flex}
.srch-bar input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--ink);font:500 18px/1.3 var(--f);padding:8px 0;-webkit-appearance:none;appearance:none}
.srch-bar input::-webkit-search-cancel-button{display:none}
.srch-x{border:0;background:transparent;color:var(--muted);width:40px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer}
.srch-x:hover{background:var(--surface2)}
.srch-res{overflow-y:auto;padding:6px 8px 12px;overscroll-behavior:contain}
.srch-h{margin:10px 8px 4px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.srch-h span{font-weight:600;background:var(--surface2);border-radius:999px;padding:0 7px;margin-left:4px;letter-spacing:0}
.srch-hint{margin:14px 10px;color:var(--muted);font-size:14.5px}
.srch-it{display:flex;gap:10px;align-items:flex-start;width:100%;text-align:left;border:0;background:transparent;color:var(--ink);padding:9px 10px;border-radius:10px;cursor:pointer;font:inherit}
.srch-it.on,.srch-it:focus-visible{background:var(--surface2);outline:0}
.srch-ti{flex:none;width:32px;height:32px;border-radius:8px;background:var(--surface3,var(--surface2));color:var(--orange-d);display:flex;align-items:center;justify-content:center;margin-top:1px}
.srch-tx{min-width:0;display:block;line-height:1.35}
.srch-tx b{font-weight:700}
.srch-tx em{display:block;font-style:normal;font-size:12px;color:var(--muted);margin-bottom:1px}
.srch-tx small{display:block;color:var(--muted);font-size:13.5px;margin-top:2px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.srch-tx .ar{font-size:15px}
.srch mark{background:rgba(242,140,40,.28);color:inherit;border-radius:3px;padding:0 1px}
.srch-lv{font-weight:700}.srch-lv.lD{color:#2E7DB8}.srch-lv.lI{color:#7A4FC2}.srch-lv.lE{color:var(--orange-d)}
.srch-fiche{padding:4px 8px}
.srch-fiche h3{margin:8px 2px 6px;font-size:22px}
.srch-fiche>p{margin:0 2px 10px;line-height:1.55}
.srch-back{display:inline-flex;align-items:center;gap:4px;border:0;background:transparent;color:var(--link);font:600 14px var(--f);padding:6px 4px;cursor:pointer}
@media (max-width:720px){
  .srch{padding:0;background:var(--card)}
  .srch-box{max-width:none;max-height:none;height:100%;border-radius:0;box-shadow:none}
  .srch-bar{padding:calc(env(safe-area-inset-top,0px) + 8px) 6px 8px 14px}
  .srch-bar input{font-size:17px}
}
@media print{.srch{display:none!important}}
/* 2.53 : plusieurs comptes démo */
.demo-accs{display:grid;gap:10px;margin:10px 0}
.demo-acc{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--card)}
.demo-acc-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.demo-acc .demo-grid{margin:8px 0}
.demo-acc .seg{margin:0 0 8px}
@media (min-width:900px){.demo-accs{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}}
.demo-acc .seg button{padding:8px 4px;font-size:14px;min-width:0}
.demo-acc .demo-grid{grid-template-columns:1fr 1fr}.demo-acc .demo-grid b{font-size:16px}@media (max-width:520px){.demo-acc .seg button{font-size:12.5px;padding:8px 2px}}
/* ---------- 2.54 : visite guidée et guide d'utilisation du stagiaire ---------- */
.tour{position:fixed;inset:0;z-index:90}
.tour.dim{background:rgba(11,20,38,.6)}
body.tour-on{overflow:hidden}
.tour-hole{position:fixed;border-radius:12px;box-shadow:0 0 0 9999px rgba(11,20,38,.6),0 0 0 3px var(--orange);transition:top .25s,left .25s,width .25s,height .25s;pointer-events:none}
.tour-bub{position:fixed;background:var(--card);color:var(--ink);border-radius:14px;box-shadow:0 14px 40px rgba(0,0,0,.35);padding:14px 16px 12px;outline:0;transition:top .25s,left .25s}
.tour-bub.mid{top:50%;left:50%;transform:translate(-50%,-50%);width:min(420px,calc(100vw - 32px))}
.tour-bub h3{margin:4px 0 4px;font-size:19px}
.tour-bub>p{margin:0 0 8px;line-height:1.5}
.tour-top{display:flex;align-items:center;gap:8px}
.tour-n{font-size:12.5px;font-weight:700;color:var(--orange-d);letter-spacing:.04em}
.tour-ar{margin-left:auto;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;width:32px;height:28px;font:700 15px "Noto Naskh Arabic",Tahoma,sans-serif;cursor:pointer}
.tour-ar.on{background:var(--navy);border-color:var(--navy);color:#fff}
.tour-skip{border:0;background:transparent;color:var(--muted);font:600 13.5px var(--f);cursor:pointer;padding:4px 6px}
.tour-arb{font-family:"Noto Naskh Arabic","Segoe UI",Tahoma,sans-serif;background:var(--surface3,var(--surface2));border-radius:10px;padding:8px 10px;margin:0 0 8px;text-align:right;line-height:1.7}
.tour-arb p{margin:2px 0 0}
.tour-dots{display:flex;gap:4px;justify-content:center;margin:6px 0 10px}
.tour-dots i{width:6px;height:6px;border-radius:50%;background:var(--line)}
.tour-dots i.done{background:var(--muted)}.tour-dots i.on{background:var(--orange);width:16px;border-radius:3px}
.tour-btns{display:flex;justify-content:space-between;align-items:center;gap:8px}
.tour-btns .row{display:flex;gap:6px}
.tour-sum{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin:0 0 12px}
.tour-sum svg{width:20px;height:20px;color:var(--orange-d);flex:none}
.tour-sum span{flex:1;min-width:180px}
.guide-h{margin-bottom:12px}.guide-h .row{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.guide-h .btn.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.guide-sec h2{margin:0 0 6px;font-size:20px}
.guide-it{border-top:1px solid var(--line);padding:2px 0}
.guide-it summary{cursor:pointer;font-weight:600;padding:10px 2px;list-style-position:outside}
.guide-it p{margin:0 2px 10px;line-height:1.55}
.guide-it .ar{font-weight:500}
@media print{.tour{display:none!important}}
/* 2.55 : quiz — navigation arrière en lecture seule */
.opt-b.sel{border-color:var(--navy);background:var(--surface2);box-shadow:inset 4px 0 0 var(--orange)}
.q-nav{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:14px;flex-wrap:wrap}
.q-ro .opt-b:disabled{opacity:1;cursor:default}.q-ro .opt-b:not(.sel){opacity:.6}
.q-ro-n{display:flex;align-items:center;gap:6px;margin:10px 0 0}
:root[data-theme="dark"] .opt-b.sel{border-color:var(--orange)}
.q-ro-n svg{flex:none;width:14px;height:14px}
/* 2.55 : reflet métallique sur le mot « Mecademie » (barre du haut à chaque « Serrage », écran d'ouverture) */
.top .brand .bt,.splash-name{background:linear-gradient(100deg,#fff 0%,#fff 40%,#FFD9AE 45%,#FFA94D 48%,#fff 52%,#fff 100%);background-size:300% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;color:transparent}
.top .brand .bt b,.top .brand .bt .l,.splash-name b,.splash-name span{color:transparent}
.wm-shine{animation:wmShine 1.3s ease both}
.splash-name{animation:spName .5s ease 1.7s forwards,wmShine 1.3s ease 2.15s both}
@keyframes wmShine{from{background-position:100% 0}to{background-position:0 0}}
@media (prefers-reduced-motion:reduce){.wm-shine,.splash-name{animation:none}}
/* 2.56 : date et heure dans la barre du haut */
.top{grid-template-columns:auto auto minmax(0,1fr) auto auto auto;grid-template-areas:"brand sub . who clock act"}
.top-clock{grid-area:clock;display:flex;align-items:center;gap:8px;color:#fff;font:600 15px/1 var(--f);white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:.01em}
.top-clock .ck-d{opacity:.85;font-weight:500}
.top-clock .ck-t{font-weight:700}
.ck-dot{width:4px;height:4px;flex:none;border-radius:50%;background:var(--orange);box-shadow:0 0 4px 1px rgba(242,140,40,.7);animation:ckBlink 1s steps(1) infinite}
@keyframes ckBlink{50%{opacity:.15;box-shadow:none}}
@media (max-width:720px){
  .top{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand clock" "sub act"}
  .top-clock{justify-self:end;font-size:14px;gap:5px}
}
@media (prefers-reduced-motion:reduce){.ck-dot{animation:none}}
@media print{.top-clock{display:none}}

.guide-dl{margin-top:12px;padding:10px 12px;border:1.5px dashed var(--line);border-radius:10px}.guide-dl p{margin:0 0 8px}.guide-dl .row{display:flex;gap:8px;flex-wrap:wrap}

.m3d-ex{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0}.m3d-ex select{max-width:100%}

.ecl-logo{display:flex;align-items:center;gap:7px;margin:0 0 10px;--lg-bar:#1B5E20;--lg-tab:#81C784;--lg-txt:#2E7D32}
.ecl-logo svg{width:22px;height:26px;flex:none}.ecl-logo .b{fill:var(--lg-bar)}.ecl-logo .t{fill:var(--lg-tab)}
.ecl-logo span{font-family:"Montserrat",var(--f);font-weight:300;font-size:26px;line-height:1;letter-spacing:-.3px;color:var(--lg-txt)}
:root[data-theme="dark"] .ecl-logo{--lg-bar:#A5D6A7;--lg-tab:#43A047;--lg-txt:#E8F5E9}

/* ===== 2.66 — Konita? (quiz en direct) et icône E-Classeur ===== */
.ecl-ic{flex:none}.ecl-ic .b{fill:#1B5E20}.ecl-ic .t{fill:#81C784}
:root[data-theme="dark"] .ecl-ic .b{fill:#A5D6A7}:root[data-theme="dark"] .ecl-ic .t{fill:#43A047}
.ftabs .tab svg.ecl-ic,.ftabs .tab svg.kz-ic{opacity:1}
.kz-ic{flex:none}
.kz-head{display:flex;align-items:center;gap:12px;margin:0 0 4px}
.kz-head h2{margin:0}
.kz-word{font:700 30px/1 var(--fd);letter-spacing:.3px;color:var(--link)}
.kz-word i{font-style:normal}
.kz-q{color:#D96800;font-style:normal}
.kz-sub{margin:0 0 6px}
.kz-h2{margin-top:14px}
.kz-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px 18px;margin:12px 0}
.kz-form label,.kz-f{display:flex;flex-direction:column;gap:5px;font-size:14px;font-weight:600;min-width:0}
.kz-form label.kz-sw{flex-direction:row}
.kz-chips{display:flex;flex-wrap:wrap;gap:6px}
.kz-chips .chip:disabled{opacity:.45;cursor:not-allowed}
.kz-sw{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:14px;cursor:pointer}
.kz-sw input{width:18px;height:18px;accent-color:var(--orange)}
.kz-act{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:6px}
.kz-act .btn svg{flex:none}
.kz-sum{font-size:14px;color:var(--muted)}
.kz-row1{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.kz-row1 h2{margin:0;flex:1}
.tbl .acts{display:flex;gap:6px;flex-wrap:wrap}
.kz-hrow>td{background:var(--surface2)}
.kz-live-n{background:var(--orange);color:#1E2633;border-color:var(--orange);font-weight:600}
.kz-notice{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-left:5px solid var(--line)}
.kz-notice span:not(.kz-go){flex:1}
.kz-notice .kz-go{font-weight:700;color:var(--link)}
.kz-notice.on{border-color:var(--orange);border-left-color:var(--orange);background:var(--warn-bg)}
:root[data-theme="dark"] .kz-notice{border-color:var(--line)}:root[data-theme="dark"] .kz-notice.on{border-color:var(--orange)}
/* éditeur */
.kz-row{display:flex;flex-wrap:wrap;gap:12px 18px}
.kz-row label{display:flex;flex-direction:column;gap:4px;font-size:14px;font-weight:600}
.kz-top{margin:10px 0 14px}.kz-grow{flex:1 1 300px}
.kz-w1{width:140px}.kz-w2{width:100px}
.kz-ed{display:grid;grid-template-columns:230px minmax(0,1fr);gap:16px}
.kz-ed>*{min-width:0}
.kz-ql{display:flex;flex-direction:column;gap:6px;min-width:0}
.kz-qi{display:flex;gap:8px;align-items:center;border:1.5px solid var(--line);border-radius:10px;padding:8px;background:var(--surface);font-size:13.5px;cursor:pointer;text-align:left;color:var(--ink);font-family:var(--f);min-width:0}
.kz-qi.on{border-color:var(--orange)}
.kz-qi b{display:grid;place-items:center;min-width:24px;height:24px;border-radius:6px;background:var(--surface2);font-size:12px}
.kz-qi span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kz-qi small{font-size:11px;color:var(--muted)}
.kz-types{margin:0 0 12px}
.kz-qe textarea.input{width:100%;min-height:70px;resize:vertical}
.kz-ans{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}
.kz-a{display:flex;align-items:center;gap:8px;border-radius:10px;padding:8px 10px;color:#fff;min-width:0}
.kz-a input[type=text]{flex:1;min-width:0;border:0;border-radius:6px;padding:8px;font:inherit;background:rgba(255,255,255,.95);color:#17201B}
.kz-a label{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;white-space:nowrap}
.kz-a input[type=radio]{width:18px;height:18px;accent-color:#fff}
.kz-a .shp{width:24px;height:24px;flex:none}
.kz-fig{display:flex;flex-wrap:wrap;gap:12px;align-items:center;border:1.5px dashed var(--line);border-radius:10px;padding:8px;margin:10px 0}
.kz-fig img{width:170px;height:auto;border-radius:6px;background:#fff}
.kz-fig .kz-f{flex:1 1 220px}
.kz-nofig{width:170px;height:100px;display:grid;place-items:center;border-radius:6px;background:var(--surface2);color:var(--muted);font-size:13px}
.kz-save{justify-content:flex-end;margin-top:16px}
.c0{background:#C2185B}.c1{background:#6D28D9}.c2{background:#D96800}.c3{background:#475569}
/* écran projeté */
body.kzmode{overflow:hidden;background:#1E2633}
.kzh{position:fixed;inset:0;background:radial-gradient(120% 120% at 0 0,#24365F 0,#2E3A4D 55%,#1E2633 100%);color:#fff;font-family:var(--f);z-index:30}
.kzh .in{position:absolute;inset:0;margin:auto;width:min(100vw,177.78vh);height:min(100vh,56.25vw);display:flex;flex-direction:column;padding:2.4cqw 2.6cqw;container-type:inline-size;box-sizing:border-box}
.kzh .shp{width:3cqw;height:3cqw;flex:none}
.kz-bar{display:flex;align-items:center;gap:1.2cqw;font-size:1.7cqw;font-weight:600;opacity:.92}
.kz-bar .brand{display:inline-flex;align-items:center;gap:.8cqw;font:700 2.4cqw var(--fd)}
.kz-bar .brand svg{width:3cqw;height:3cqw}
.kz-bar .sp{flex:1}
.kz-qtxt{background:#fff;color:#2E3A4D;border-radius:1cqw;padding:1.4cqw 2cqw;font:700 2.9cqw/1.2 var(--f);text-align:center;margin:1.4cqw 0}
.kz-qtxt.sm{font-size:2.3cqw}
.kz-mid{flex:1;display:flex;align-items:center;justify-content:space-between;gap:2cqw;min-height:0}
.kz-timer{display:grid;place-items:center;width:8.5cqw;height:8.5cqw;border-radius:50%;background:#FFA94D;color:#1E2633;font:700 3.8cqw var(--fd);flex:none}
.kz-cnt{text-align:center;font:700 3.6cqw/1 var(--fd);flex:none;min-width:8.5cqw}
.kz-cnt b{display:block}
.kz-cnt small{display:block;font:600 1.4cqw var(--f);opacity:.8;margin-top:.4cqw}
.kz-media{flex:1;display:flex;justify-content:center;min-height:0;height:100%}
.kz-media img{max-height:100%;max-width:100%;object-fit:contain;border-radius:.8cqw;background:#fff}
.kz-tiles{display:grid;grid-template-columns:1fr 1fr;gap:1cqw;margin-top:1.4cqw}
.kz-t{display:flex;align-items:center;gap:1.4cqw;border-radius:.8cqw;padding:1.3cqw 1.6cqw;font:600 2.1cqw/1.2 var(--f);min-height:6cqw}
.kz-t .shp{width:3.2cqw;height:3.2cqw}
.kz-t.dim{opacity:.3}
.kz-t .ok{margin-left:auto;font-size:2.6cqw}
.kz-hist{flex:1;display:flex;align-items:flex-end;justify-content:center;gap:3cqw;padding:0 4cqw;min-height:0}
.kz-hb{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:.6cqw;width:9cqw;height:100%}
.kz-hb i{display:block;width:100%;border-radius:.6cqw .6cqw 0 0;min-height:.6cqw;transition:height .5s}
.kz-hb b{font:700 2.4cqw var(--fd)}
.kz-hb .kz-hs{display:grid;place-items:center;width:100%;padding:.5cqw 0;border-radius:0 0 .6cqw .6cqw}
.kz-hb .shp{width:2.6cqw;height:2.6cqw}
.kz-hb.dim i,.kz-hb.dim .kz-hs{opacity:.35}
.kz-num{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1cqw;font-size:2cqw}
.kz-num .big{font:700 7cqw/1 var(--fd);color:#FFA94D}
.kz-num .tol{font-size:1.9cqw;opacity:.85}
.kz-num .chipz{display:flex;flex-wrap:wrap;gap:.8cqw;justify-content:center;max-width:80%}
.kz-num .chipz span{font:600 1.6cqw var(--f);padding:.4cqw 1cqw;border-radius:99px;background:rgba(255,255,255,.12)}
.kz-num .chipz span.g{background:#15803D}
.kz-ctrl{display:flex;gap:.8cqw;justify-content:flex-end;align-items:center;margin-top:1.2cqw}
.kz-ctrl button{font:700 1.7cqw var(--f);border:0;border-radius:.7cqw;padding:.9cqw 1.8cqw;cursor:pointer;background:#fff;color:#2E3A4D}
.kz-ctrl button.pri{background:#FFA94D;color:#1E2633}
.kz-ctrl button.gh{background:rgba(255,255,255,.14);color:#fff}
.kz-ctrl button:disabled{opacity:.45;cursor:not-allowed}
.kz-ctrl .kz-saved{font-size:1.6cqw;opacity:.8;margin-right:auto}
.kz-lobby{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.2cqw;text-align:center;font-size:2cqw}
.kz-pinbox{background:#fff;color:#2E3A4D;border-radius:1.2cqw;padding:1.2cqw 3cqw}
.kz-pinbox small{display:block;font:600 1.7cqw var(--f);color:#5B6578}
.kz-pinbox b{font:700 7cqw/1 var(--fd);letter-spacing:.4cqw}
.kz-np{font:700 2.4cqw var(--fd)}
.kz-plist{display:flex;flex-wrap:wrap;gap:.8cqw;justify-content:center;max-width:90%;min-height:6cqw;max-height:14cqw;overflow:hidden}
.kz-plist span{font:600 1.8cqw/1.2 var(--f);padding:.6cqw 1.3cqw;border-radius:99px;background:rgba(255,255,255,.14);animation:kzpop .3s}
@keyframes kzpop{from{transform:scale(.4);opacity:0}to{transform:none;opacity:1}}
.kz-board{flex:1;display:flex;flex-direction:column;justify-content:center;gap:.8cqw;padding:0 10cqw}
.kz-br{display:flex;align-items:center;gap:1.4cqw;background:rgba(255,255,255,.1);border-radius:.8cqw;padding:1cqw 1.6cqw;font:600 2.2cqw var(--f)}
.kz-br:first-child{background:#FFA94D;color:#1E2633}
.kz-br b{font:700 2.6cqw var(--fd);min-width:3cqw}
.kz-br .s{margin-left:auto;font:700 2.4cqw var(--fd)}
.kz-br .up{font-size:1.5cqw;opacity:.85}
.kz-pod{flex:1;display:flex;align-items:flex-end;justify-content:center;gap:1.4cqw;padding-top:2cqw}
.kz-pc{display:flex;flex-direction:column;align-items:center;gap:.8cqw;width:19cqw}
.kz-pc .n{font:700 2.4cqw var(--f);text-align:center}
.kz-pc .s{font:600 1.7cqw var(--f);opacity:.9}
.kz-pc i{display:grid;place-items:center;width:100%;border-radius:1cqw 1cqw 0 0;font:700 6cqw var(--fd);font-style:normal;color:#1E2633;animation:kzrise .8s ease-out both;transform-origin:bottom}
.kz-pc.p1 i{height:17cqw;background:#F2C46B}.kz-pc.p2 i{height:12cqw;background:#C9D1DE}.kz-pc.p3 i{height:9cqw;background:#D89A5B}
.kz-pc.hid{visibility:hidden}
@keyframes kzrise{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.kz-big{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;font:700 4.6cqw var(--fd);text-align:center}
.kz-big small{font:600 2cqw var(--f);opacity:.8}
.kz-big.kz-soft{font:600 2.4cqw var(--f);opacity:.7}
/* téléphone du stagiaire */
.kzp{max-width:460px;margin:0 auto;min-height:min(640px,calc(100vh - 150px));display:flex;flex-direction:column;border-radius:18px;overflow:hidden;border:1px solid var(--line);background:var(--card)}
.kz-pt{display:flex;align-items:center;gap:8px;background:#2E3A4D;color:#fff;padding:12px 14px 10px;font-weight:600;font-size:15px}
.kz-pt .sp{flex:1}
.kz-pt .sc{font:700 18px var(--fd)}
.kz-pb{flex:1;display:flex;flex-direction:column;padding:14px;gap:10px;min-height:0;margin:0}
.kz-pb.ctr{align-items:center;justify-content:center;text-align:center}
.kz-pb h3{margin:0;font:700 26px var(--fd)}
.kz-pin{font:700 32px var(--fd);letter-spacing:8px;text-align:center;width:100%;max-width:280px}
.kz-wide{width:100%;max-width:280px}
.kz-pg{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:10px;min-height:340px}
.kz-pg.vf{grid-template-columns:1fr}
.kz-pg button{border:0;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#fff;font:700 20px var(--f);cursor:pointer;box-shadow:inset 0 -6px 0 rgba(0,0,0,.18);touch-action:manipulation}
.kz-pg button:active{transform:translateY(2px)}
.kz-pg .shp{width:48px;height:48px}
.kz-res{border-radius:16px;padding:22px 14px;color:#fff;width:100%}
.kz-res.ok{background:#15803D}.kz-res.ko{background:#B91C1C}
.kz-res h3{font-size:32px}
.kz-res .kz-pts{display:inline-block;margin-top:8px;background:rgba(0,0,0,.22);border-radius:8px;padding:5px 12px;font:700 22px var(--fd);color:#fff}
.kz-streak{font:600 14px var(--f);margin-top:8px}
.kz-rank{font-weight:600;color:var(--muted)}
.kz-final{font:700 64px/1 var(--fd);color:var(--orange)}
.kz-kp{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;width:100%}
.kz-kp button{font:700 22px var(--fd);padding:12px 0;border-radius:10px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;touch-action:manipulation}
.kz-kp button.ok{grid-column:span 2;background:var(--orange);color:#1E2633;border-color:var(--orange)}
.kz-disp{font:700 36px var(--fd);text-align:center;border:2px solid var(--line);border-radius:12px;padding:6px;width:100%;background:var(--surface);min-height:60px}
.kz-qmini{font-size:13px;color:var(--muted);text-align:center}
.kz-spin{width:44px;height:44px;border-radius:50%;border:5px solid var(--line);border-top-color:var(--orange);animation:kzspin 1s linear infinite}
@keyframes kzspin{to{transform:rotate(360deg)}}
.kz-leave{margin-top:10px}
@media (max-width:760px){
  .kz-ed{grid-template-columns:1fr}.kz-ql{flex-direction:row;overflow-x:auto;padding-bottom:4px}.kz-qi{min-width:170px}.kz-ql .btn{flex:none}
  .kz-ans{grid-template-columns:1fr}.kz-a label span{display:none}
  .kzp{border-radius:14px;min-height:calc(100vh - 140px)}
}
@media (prefers-reduced-motion:reduce){.kz-pc i,.kz-plist span,.kz-spin{animation:none}}
.kz-top label{flex:1 1 220px;min-width:0}.kz-top .input{width:100%;max-width:100%;min-width:0}
.kz-form select.input{width:100%;min-width:0}

/* ===== 2.67 — Konita? : palette, niveaux D / I / E, difficulté ===== */
.kz-lvp{display:inline-block;color:#fff;font-size:12px;font-weight:700;border-radius:99px;padding:2px 9px;white-space:nowrap}
.kz-lD{background:#1F5F8B;color:#fff}.kz-lI{background:#5A3787;color:#fff}.kz-lE{background:#3B5BA5;color:#fff}.kz-lT{background:#6B7280;color:#fff}
.kz-mix{background:var(--surface2);border-radius:10px;padding:10px 12px;display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;margin:0 0 10px}
.kz-mix .small{flex-basis:100%}.kz-mix .kz-n{margin-right:6px}
.kz-row1 .kz-chips{flex:none}
.kz-qtxt small{display:block;font:600 1.6cqw var(--f);color:#5B6578;margin-top:.4cqw}
.kz-lvls{flex:1;display:flex;flex-direction:column;justify-content:center;gap:1.2cqw;padding:0 3cqw}
.kz-lv{display:grid;grid-template-columns:20cqw 7cqw 1fr;align-items:center;gap:1.4cqw;font:700 2.2cqw var(--fd)}
.kz-lv b{border-radius:99px;padding:.5cqw 1cqw;text-align:center;font:700 1.8cqw var(--f)}
.kz-lv i{display:block;height:1.6cqw;border-radius:99px;background:rgba(255,255,255,.15);overflow:hidden}.kz-lv em{display:block;height:100%;background:#D96800;transition:width .3s}
.kz-resl{flex:1;display:flex;flex-direction:column;justify-content:center;gap:1cqw}
.kz-rl{display:grid;grid-template-columns:16cqw 1fr 12cqw;gap:1.4cqw;align-items:center;background:rgba(255,255,255,.08);border-radius:1cqw;padding:1cqw 1.4cqw}
.kz-rl b{border-radius:99px;padding:.5cqw 1cqw;text-align:center;font:700 1.7cqw var(--f)}
.kz-rl .q{font:600 1.8cqw/1.25 var(--f);opacity:.85}.kz-rl .a{font:700 2.1cqw var(--f);margin-top:.3cqw}
.kz-rl .pc{font:700 3cqw var(--fd);text-align:right;white-space:nowrap}
.kz-ptxt{font:700 17px/1.3 var(--f);text-align:center}
.kz-pfig{max-width:100%;max-height:160px;object-fit:contain;border-radius:8px;background:#fff;align-self:center}
.kz-pg.lab{grid-template-columns:1fr;min-height:0}
.kz-pg.lab button{flex-direction:row;justify-content:flex-start;padding:10px 12px;font-size:15px;line-height:1.25;text-align:left;min-height:62px}
.kz-pg.lab .shp{width:26px;height:26px;flex:none}
/* 2.68 — Konita? : volume de l'écran projeté */
.kz-vol{display:inline-flex;align-items:center;gap:.6cqw;font:600 1.5cqw var(--f);color:#fff;background:rgba(255,255,255,.14);border-radius:.7cqw;padding:.5cqw 1cqw}
.kz-vol input{width:9cqw;accent-color:#D96800}

/* 3.03 : points d'état des stagiaires (barre du haut, formateur) — battement lumineux quand l'état compte au moins un stagiaire */
.top-clock.has-pres{gap:6px}
.top-pres{display:inline-flex;align-items:center;gap:10px;margin-right:10px;padding:4px 8px;border:0;border-radius:999px;background:rgba(255,255,255,.08);color:inherit;font:inherit;cursor:pointer}
.top-pres:hover{background:rgba(255,255,255,.16)}
.top-pres:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
.pd{display:inline-flex;align-items:center;gap:5px;font-weight:700;font-size:14px;font-variant-numeric:tabular-nums}
.pd i{width:10px;height:10px;border-radius:50%;flex:none;background:#9AA3B2}
.pd.on i{background:#22C55E}.pd.busy i{background:#FFA94D}.pd.away i{background:#FACC15}
.pd.on{--pc:34,197,94}.pd.busy{--pc:242,140,40}.pd.away{--pc:250,204,21}
.pd.beat i{animation:pdBeat 1.4s ease-in-out infinite}
@keyframes pdBeat{0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(var(--pc),.0)}12%{transform:scale(1.35);box-shadow:0 0 8px 3px rgba(var(--pc),.85)}24%{transform:scale(1);box-shadow:0 0 2px 1px rgba(var(--pc),.4)}36%{transform:scale(1.25);box-shadow:0 0 10px 4px rgba(var(--pc),.75)}55%{transform:scale(1);box-shadow:0 0 0 0 rgba(var(--pc),0)}}
@media (prefers-reduced-motion:reduce){.pd.beat i{animation:none;box-shadow:0 0 6px 2px rgba(var(--pc),.8)}}
.pl-box{max-width:520px}
.pl-sec h3{display:flex;align-items:center;gap:8px;margin:10px 0 6px;font-size:16px}.pl-sec h3 b{margin-left:auto}
.pl{list-style:none;margin:0;padding:0;max-height:30vh;overflow:auto;border:1px solid var(--line);border-radius:8px}
.pl li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 10px;padding:6px 10px;border-top:1px solid var(--line)}.pl li:first-child{border-top:0}
.pl li span{color:var(--muted);font-size:13px}.pl li small{grid-column:1/-1;color:var(--muted);font-size:12.5px}
.top-pres.m{display:none}
@media (max-width:720px){.top-clock .top-pres{display:none}.top-clock.has-pres{gap:5px}
  .top-pres.m{display:inline-flex;gap:10px;margin-right:auto;padding:2px 0;background:none}
  .top-pres.m .pd,.top-pres.m .pd b{gap:4px;font-size:12px;font-weight:400}.top-pres.m .pd i{width:6px;height:6px}
  .top:has(.top-pres.m):not(:has(.top-sub)){grid-template-areas:"brand clock" "act act"}.top:has(.top-pres.m) .top-act{justify-self:stretch}}

/* 3.06 : verrou de l'espace formateur (code PIN / empreinte) */
.vr-ecran{position:fixed;inset:0;z-index:200;background:var(--navy,#2E3A4D);color:#fff;display:flex;align-items:flex-start;justify-content:center;padding:16px;overflow:auto;animation:cfmIn .15s ease-out}
.vr-ecran.ok{opacity:0;transition:opacity .2s}
.vr-in{--k:clamp(54px,9.6vh,76px);width:100%;max-width:330px;margin:auto;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.vr-logo{width:clamp(40px,7.5vh,64px);height:clamp(40px,7.5vh,64px)}.vr-logo svg{width:100%;height:100%}
.vr-ecran h2{margin:4px 0 0;font-size:22px;color:#fff}
.vr-sub{margin:0;opacity:.8;font-size:14px}
.vr-fp:active{transform:scale(.96)}
.vr-emp{width:calc(var(--k)*.56);height:calc(var(--k)*.56);fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round}
.vr-pts{display:flex;gap:14px;margin:12px 0 2px}
.vr-pts i{width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.6)}
.vr-pts i.on{background:#fff;border-color:#fff}
.vr-pts.shake{animation:vrShake .35s}
@keyframes vrShake{20%,60%{transform:translateX(-8px)}40%,80%{transform:translateX(8px)}}
.vr-msg{min-height:20px;font-size:13.5px}.vr-msg.bad{color:#FCA5A5}
.vr-pad{display:grid;grid-template-columns:repeat(3,var(--k));gap:calc(var(--k)*.2) calc(var(--k)*.3);margin-top:4px;justify-content:center}
.vr-pad button{width:var(--k);height:var(--k);border-radius:50%;border:0;background:rgba(255,255,255,.1);color:#fff;font:600 calc(var(--k)*.36)/1 var(--f,inherit);cursor:pointer;display:grid;place-items:center;padding:0}
.vr-pad .vr-fp{color:var(--orange,#FFA94D);background:rgba(242,140,40,.14)}
.vr-pad button:active{background:rgba(255,255,255,.25)}
.vr-oubli{margin-top:10px;background:none;border:0;color:#fff;opacity:.75;text-decoration:underline;font:inherit;font-size:14px;cursor:pointer}
@media (max-height:520px) and (min-width:560px){.vr-in{max-width:620px;display:grid;grid-template-columns:1fr auto;column-gap:36px;align-content:center;--k:clamp(46px,16vh,60px)}.vr-in>*{grid-column:1;justify-self:center}.vr-in>.vr-pts{justify-content:center}.vr-in>.vr-pad{grid-column:2;grid-row:1/span 6;align-self:center}}

/* 3.06 : un tableau large défile dans son cadre au lieu d'élargir l'écran (téléphone) */
.sc-body>*{min-width:0}

/* 3.10 : notions anglaises (glossaire, page FR ↔ EN, cartes mémoire, prononciation) */
.gl-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.gl-tabs a{padding:6px 12px;border:1.5px solid var(--line);border-radius:999px;color:inherit;text-decoration:none;font-weight:600;font-size:14px;background:var(--surface)}
.gl-tabs a.on{background:var(--navy,#2E3A4D);border-color:var(--navy,#2E3A4D);color:#fff}
.en-t{color:#2F6FB5;font-style:italic;font-weight:500}.en-t abbr{font-style:normal;font-size:11px;font-weight:700;text-decoration:none;border:1px solid currentColor;border-radius:4px;padding:0 3px;margin-right:3px}
.say-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin-left:4px;vertical-align:middle;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:#2F6FB5;cursor:pointer;padding:0}
.say-btn:hover{background:rgba(47,111,181,.1)}.say-btn:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
.pop-en{display:block;margin-top:4px}
.en-q{width:100%;max-width:520px;margin:6px 0 8px}
.en-f{margin:0 0 8px}
.en-list{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.en-list li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:4px 10px;align-items:center;padding:6px 10px;border-top:1px solid var(--line)}
.en-list li:first-child{border-top:0}.en-list li[hidden]{display:none}
.en-fr{font-weight:600}.en-en{color:#2F6FB5;font-style:italic}
.en-b{font-size:11px;font-weight:700;color:#B8620E;border:1px solid #B8620E;border-radius:4px;padding:0 4px;margin-left:4px}
@media (max-width:520px){.en-list li{grid-template-columns:minmax(0,1fr) auto}.en-list .en-en{grid-column:1}.en-list .say-btn{grid-row:1/3;grid-column:2}}
.ct-card{max-width:560px;margin:10px 0;padding:18px;border:1px solid var(--line);border-left:5px solid #2F6FB5;border-radius:12px;background:var(--surface);min-height:150px}
.ct-l{margin:0;color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:.05em}
.ct-q{font-size:24px;font-weight:700;margin:6px 0}.ct-a{font-size:20px;font-weight:600;color:#2F6FB5;margin:10px 0 4px}
.ct-stats{max-width:560px}.ct-dir{margin-bottom:6px}
/* 3.13 — délai des CC, lecteur de français, mots anglais (Expert) */
.notice.has-cd{justify-content:space-between}.notice .nowrap{white-space:nowrap}
.cc-cd{font-variant-numeric:tabular-nums;font-weight:700}
.cc-cd.warn{color:#B45309}.cc-cd.red,.cc-cd.end{color:#C62828}
.cc-timer{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;border:2px solid var(--line);border-radius:12px;padding:10px 14px;margin:10px 0 16px;background:var(--surface);position:sticky;top:calc(var(--toph,64px) + 6px);z-index:5}
.cc-timer>span:first-child{font-weight:600;color:var(--muted)}.cc-timer .cc-cd{font-size:1.45rem}.cc-timer .small{flex-basis:100%}
.cc-timer.warn{border-color:#E8A23A}.cc-timer.red{border-color:#C62828;background:rgba(198,40,40,.06)}
.cc-dl{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:flex-end;margin:10px 0 4px}.cc-dl label{display:flex;flex-direction:column;gap:3px;font-size:.85rem;color:var(--muted)}
.cc-state{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;margin-top:10px;padding:8px 12px;border-radius:10px;background:var(--warn-bg)}.cc-state.end{background:rgba(198,40,40,.08)}
.lect{display:inline-flex;align-items:center;gap:4px}
.lect-v{height:30px;min-width:44px;padding:0 6px;border-radius:8px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);font:600 .8rem/1 inherit;cursor:pointer}
.lu{background:rgba(242,140,40,.18);border-radius:6px;box-shadow:0 0 0 4px rgba(242,140,40,.18);transition:background .2s}
.en-btn{font:800 .8rem/1 inherit;letter-spacing:.5px}
.gt-en{font-style:italic;color:var(--link);font-size:.92em;white-space:nowrap}.gt-en .say-btn{vertical-align:middle;margin-left:2px}
.pop .say-fr{margin:0 4px;vertical-align:middle}
.cc-dl label[hidden]{display:none}
/* 3.14 — avis des stagiaires */
.av-fab{position:fixed;right:max(12px,env(safe-area-inset-right));top:74px;z-index:900;display:inline-flex;align-items:center;gap:6px;height:46px;padding:0 14px 0 12px;border-radius:23px;border:0;background:var(--orange);color:#1E2633;font:800 14px/1 inherit;box-shadow:0 4px 14px rgba(11,20,38,.28);cursor:pointer}
.av-fab:hover{filter:brightness(1.05)}.av-fab:focus-visible{outline:3px solid var(--navy);outline-offset:2px}
.av-fab .av-dot{position:absolute;top:-5px;right:-4px;min-width:20px;height:20px;border-radius:10px;background:#C62828;color:#fff;font:700 12px/20px inherit;text-align:center;font-style:normal;padding:0 5px}
@media (max-width:520px){.av-fab .av-fab-l{display:none}.av-fab{width:46px;padding:0;justify-content:center}}
body.av-on{overflow:hidden}
.av-modal{position:fixed;inset:0;z-index:9500;background:rgba(11,20,38,.55);display:flex;align-items:flex-start;justify-content:center;overflow:auto;padding:max(12px,env(safe-area-inset-top)) 12px 24px}
.av-box{width:min(620px,100%);background:var(--card);color:var(--ink);border-radius:16px;padding:16px;box-shadow:0 10px 40px rgba(0,0,0,.35);margin-top:4vh}
.av-head{display:flex;align-items:center;gap:8px}.av-head h2{flex:1;margin:0;font-size:1.2rem;display:flex;align-items:center;gap:8px}
.av-x{width:40px;height:40px;border-radius:10px;border:1.5px solid var(--line);background:var(--card);color:var(--ink);font-size:18px;cursor:pointer}
.av-intro{color:var(--muted);font-size:.92rem;margin:8px 0 12px}
.av-l{font-weight:700;font-size:.9rem}.av-box textarea{width:100%;box-sizing:border-box;margin-top:4px;border:1.5px solid var(--line);border-radius:10px;padding:10px;font:inherit;background:var(--card);color:var(--ink);resize:vertical}
.av-cnt{text-align:right;font-size:.78rem;color:var(--muted)}
.av-att{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.av-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 14px;border-radius:10px;border:1.5px solid var(--line);background:var(--card);color:var(--ink);font:600 .92rem inherit;cursor:pointer}
.av-btn:disabled{opacity:.5;cursor:default}.av-btn.rec{background:#C62828;border-color:#C62828;color:#fff;animation:avp 1.2s infinite}
@keyframes avp{50%{box-shadow:0 0 0 6px rgba(198,40,40,.25)}}
.av-note{font-size:.85rem;color:var(--muted);align-self:center}
.av-prev{display:flex;align-items:center;gap:10px;margin:8px 0;padding:8px;border:1px dashed var(--line);border-radius:10px;flex-wrap:wrap}
.av-prev img{max-width:160px;max-height:120px;border-radius:8px}.av-prev audio{flex:1;min-width:200px}
.av-del{border:0;background:none;color:#C62828;font:600 .88rem inherit;cursor:pointer}
.av-send{margin:12px 0 4px}.av-send .btn{width:100%}
.av-h3{margin:18px 0 8px;font-size:1rem;border-top:1px solid var(--line);padding-top:12px}
.av-it{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:10px}
.av-it p{margin:6px 0;white-space:pre-wrap}.av-it audio{width:100%;margin-top:6px}
.av-meta{font-size:.8rem;color:var(--muted)}.av-lu{color:var(--ok)}
.av-thumb{max-width:100%;max-height:220px;border-radius:8px;display:block;margin-top:6px}
.av-rep{background:var(--ok-bg);color:var(--ink);border-radius:10px;padding:8px 10px;margin-top:8px;font-size:.92rem}
.av-f{display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:14px;align-items:start}
@media (max-width:760px){.av-f{grid-template-columns:1fr}}
.av-who{display:flex;flex-direction:column;gap:6px;max-height:70vh;overflow:auto}
.av-wh{position:relative;display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:2px;padding:9px 10px;border-radius:10px;border:1.5px solid var(--line);background:var(--card);color:var(--ink);font:inherit;cursor:pointer}
.av-wh span{font-size:.8rem;color:var(--muted)}.av-wh.on{border-color:var(--orange);background:var(--warn-bg)}
.av-new{position:absolute;right:8px;top:8px;font:700 .7rem inherit;font-style:normal;background:var(--orange);color:#1E2633;border-radius:6px;padding:2px 6px}
.av-th-img{max-width:100%;max-height:320px;border-radius:8px;display:block;margin-top:6px}
.av-rf textarea{width:100%;box-sizing:border-box;border:1.5px solid var(--line);border-radius:8px;padding:8px;font:inherit;background:var(--card);color:var(--ink);margin-top:8px}
.av-rf .row{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}
.tab{position:relative}.tab-b{position:absolute;top:2px;right:6px;min-width:18px;height:18px;border-radius:9px;background:#C62828;color:#fff;font:700 11px/18px inherit;font-style:normal;text-align:center;padding:0 4px}
body.m3fs-on .av-fab{display:none}

/* 3.21 : groupe « Modules complémentaires » dans l'attribution */
.asg-grp{margin:18px 0 6px;font:700 16px var(--fd,system-ui);color:var(--navy);border-top:2px solid var(--orange);padding-top:10px}

/* 3.23 : comptes démo et individuels */
.acc-new{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin:10px 0 14px}.acc-new label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600;flex:1 1 180px}
.acc-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}.acc-h{display:flex;align-items:center;gap:8px;margin:6px 0 4px;font:700 16px var(--fd,system-ui)}
/* 3.25 : onglet Multimètre */
.mm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin:0 0 16px}
.mm-card{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-radius:12px;border:1.5px solid var(--line);background:var(--card);color:var(--ink);text-decoration:none;min-height:96px}
.mm-card:hover{border-color:var(--orange)}.mm-card b{font-size:15.5px;color:var(--navy)}.mm-card span{font-size:13.5px;color:var(--muted)}
.mm-card i{margin-top:auto;font-style:normal;font-size:12.5px;font-weight:700;color:var(--muted)}.mm-card i.ok{color:#15803D}
:root[data-theme="dark"] .mm-card b{color:#E5E7EB}
.theme-btn.mm-tab{width:auto;padding:0 12px 0 10px;gap:6px;display:inline-flex;align-items:center;font:700 14px var(--f);text-decoration:none}
@media (max-width:700px){.theme-btn.mm-tab span{display:none}.theme-btn.mm-tab{padding:0 8px}}
/* 3.26 : onglet Diagnostic */
.dg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin:0 0 16px}
.dg-card{display:flex;flex-direction:column;gap:6px;padding:18px;border-radius:14px;border:1.5px solid var(--line);background:var(--card);color:var(--ink);text-decoration:none;min-height:170px}
.dg-card svg{color:var(--orange)}.dg-card b{font:800 20px var(--fd,var(--f));color:var(--navy)}.dg-card span{font-size:14px;color:var(--muted)}.dg-card i{margin-top:auto;font-style:normal;font-weight:800;font-size:13px;color:var(--orange-d)}
a.dg-card:hover{border-color:var(--orange);box-shadow:0 4px 14px rgba(20,33,61,.08)}.dg-card.soon{opacity:.7;border-style:dashed}
:root[data-theme="dark"] .dg-card b{color:#E5E7EB}
/* 3.29 : menu « ⋮ » de la barre du haut */
.top-more{position:relative}
.more-btn{position:relative}.more-b{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;border-radius:9px;background:#FFA94D;color:#1E2633;font:800 11px/18px var(--f);font-style:normal;text-align:center;padding:0 4px}
.top-menu{display:none;position:absolute;right:0;top:calc(100% + 8px);z-index:60;min-width:240px;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(11,20,38,.25);padding:6px;flex-direction:column}
.top-more.open .top-menu{display:flex}
.top-menu .theme-btn{width:100%;height:auto;min-height:44px;justify-content:flex-start;gap:12px;padding:8px 12px;border:0;border-radius:8px;color:var(--ink);background:transparent;text-decoration:none;font:600 14.5px var(--f);position:relative}
.top-menu .theme-btn:hover,.top-menu .theme-btn:focus-visible{background:var(--surface2)}
.top-menu .theme-btn.on{color:var(--orange-d);background:var(--surface2)}
.top-menu .theme-btn svg{flex:none;color:var(--muted)}.top-menu .theme-btn.on svg{color:var(--orange-d)}
.top-menu .theme-btn:not(.mm-tab)::after{content:attr(aria-label)}
.top-menu .mm-tab span{display:inline!important}
.top-menu [data-act="logout"]{border-top:1px solid var(--line);border-radius:0 0 8px 8px;margin-top:4px;color:#B91C1C}.top-menu [data-act="logout"] svg{color:#B91C1C}
.top-menu .menu-n{margin-left:auto;order:2;min-width:20px;height:20px;border-radius:10px;background:#FFA94D;color:#1E2633;font:800 11.5px/20px var(--f);font-style:normal;text-align:center;padding:0 5px}
.top-menu .theme-btn{text-align:left}
.top:has(.top-more.open){z-index:9600}
.top-menu .theme-btn.tour-item{outline:3px solid #FFA94D;outline-offset:-3px;background:#FFF4E5;color:#2E3A4D}
/* 3.30 : diaporama en mode clair (bouton soleil / lune dans la barre, touche T) */
body.showmode.sl-light{background:#F5F6F7}
.slide.sl-light{background:#F5F6F7;color:#17201B}
.slide.sl-light .s-top{color:#5B6578}
.slide.sl-light .s-k{color:#B8620E}
.slide.sl-light .s-media{border:1px solid #DCE0E6;box-shadow:0 2px 10px rgba(20,33,61,.06)}
.slide.sl-light .s-body:not(.simslide) .s-media{background:#fff}
.slide.sl-light .s-ar{color:#8A5A00}
.slide.sl-light .s-tr{color:#5B6578}
.slide.sl-light .s-foot.fbar{background:rgba(255,255,255,.94);border-color:#DCE0E6;color:#5B6578;box-shadow:0 6px 24px rgba(20,33,61,.12)}
.slide.sl-light .s-foot.fbar .s-n{color:#2E3A4D}
.slide.sl-light .s-foot.fbar .s-nav a,.slide.sl-light .s-foot.fbar .s-exit,.slide.sl-light .s-trbtn{color:#2E3A4D}
.slide.sl-light .s-trbtn.on{color:#B8620E}
@media (max-width:560px){.slide.sl-light .s-foot.fbar .s-exit{border-color:#CBD2DC}}
/* 3.31 : simulation du diaporama en plein écran (datashow) */
.s-media.has-fs{position:relative}
.s-simfs-b{position:absolute;right:10px;top:10px;z-index:5;display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 12px;border-radius:10px;border:0;background:#FFA94D;color:#1E2633;font:800 14px var(--f);cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.18)}
.s-simfs-b:hover{background:#E07A14}
.s-media.has-fs .s-simhost{padding-top:44px}
.s-fsbar{display:none}
.slide.simfs{padding:0}
.slide.simfs .s-top,.slide.simfs .s-title,.slide.simfs .s-ar,.slide.simfs .s-pts,.slide.simfs .s-foot,.slide.simfs .s-tbl,.slide.simfs .s-simfs-b{display:none!important}
.slide.simfs .s-fsbar{display:flex;align-items:center;gap:8px;position:fixed;left:0;right:0;top:0;height:54px;padding:0 10px 0 18px;z-index:60;background:var(--navy2);color:#fff;border-bottom:1px solid rgba(255,255,255,.12)}
.s-fsbar .s-fst{flex:1;min-width:0;font:700 clamp(16px,1.6vw,22px)/1.2 var(--fd);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.s-fsbar .s-fsn{color:#B8C2D8;font-weight:600;white-space:nowrap;margin-right:6px}
.s-fsbar a,.s-fsbar button{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:42px;min-width:46px;padding:0 10px;border-radius:10px;border:1px solid rgba(255,255,255,.25);background:transparent;color:#fff;font:700 14px var(--f);cursor:pointer;text-decoration:none}
.s-fsbar button{background:#FFA94D;border-color:#FFA94D;color:#1E2633}
.slide.simfs .s-body{display:block}
.slide.simfs .s-media{position:fixed;left:0;right:0;top:54px;bottom:0;z-index:50;max-height:none;border-radius:0;padding:16px 20px;overflow:auto;display:block;-webkit-overflow-scrolling:touch}
.slide.simfs .s-media.has-fs .s-simhost{padding-top:0;max-width:1180px;margin:0 auto}
.slide.sl-light.simfs .s-fsbar{background:#fff;color:#17201B;border-bottom-color:#DCE0E6}
.slide.sl-light.simfs .s-fsbar .s-fsn{color:#5B6578}
.slide.sl-light.simfs .s-fsbar a{color:#2E3A4D;border-color:#CBD2DC}
@media (max-width:560px){.s-fsbar button span,.s-simfs-b span{display:none}.s-fsbar .s-fsn{display:none}}
/* 3.35 : rappel d'export hebdomadaire */
.exp-ban{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 14px;padding:10px 12px;border-radius:12px;background:#FFF7ED;border:1.5px solid #FDBA74;color:#1F2937}
.exp-ban b{flex:1;min-width:200px}
/* 3.35 : menu d'appui long sur un mot */
.screen .points,.screen .intro,.screen h1,.screen .qq>p,.slide .s-pts,.slide .s-title,.slide .s-qt,.slide .s-tbl,.screen .tbl{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
.wm-selmode .screen .points,.wm-selmode .screen .intro,.wm-selmode .screen h1,.wm-selmode .screen .qq>p,.wm-selmode .slide .s-pts,.wm-selmode .slide .s-title,.wm-selmode .slide .s-qt,.wm-selmode .slide .s-tbl,.wm-selmode .screen .tbl{-webkit-user-select:text;user-select:text}
::highlight(wm-word){background:rgba(242,140,40,.45);color:inherit}
.wm{position:fixed;z-index:120;max-width:min(92vw,340px);font:600 14px/1.35 system-ui,sans-serif}
.wm-bar{display:flex;gap:2px;background:#1F2937;color:#fff;border-radius:12px;padding:4px;box-shadow:0 8px 24px rgba(0,0,0,.4)}
.wm-bar button{min-height:42px;padding:0 12px;border:0;border-radius:8px;background:transparent;color:#fff;font:inherit;white-space:nowrap;cursor:pointer}
.wm-bar button:hover,.wm-bar button:focus-visible{background:rgba(255,255,255,.14)}
.wm-card{background:#fff;color:#2E3A4D;border-radius:12px;padding:10px 12px;box-shadow:0 8px 24px rgba(0,0,0,.4);border:1px solid #DCE0E6}
.wm-r{padding:4px 0;border-bottom:1px solid #EEF0F4}.wm-r:last-of-type{border:0}.wm-r i{font-style:normal;font-size:11.5px;color:#5B6578;font-weight:600}
.wm-ar{font:700 20px/1.5 system-ui,sans-serif;display:block}.wm-en{font-size:18px;font-weight:700}.wm-fr{font-size:17px;font-weight:700;margin-right:8px}
.wm-no{color:#5B6578;font-weight:500}.wm-r small{display:block;color:#5B6578;font-weight:500;margin-top:2px}
.wm-ic{border:0;background:transparent;font-size:18px;cursor:pointer;min-width:36px;min-height:36px}
.wm-act{display:flex;gap:6px;justify-content:flex-end;margin-top:8px}
.wm-act button{min-height:38px;padding:0 12px;border-radius:9px;border:1px solid #CBD2DC;background:#fff;color:#2E3A4D;font:600 13.5px system-ui,sans-serif;cursor:pointer}
.wm-act button:first-child{background:#FFA94D;border-color:#FFA94D;color:#1E2633}
/* 3.35 : compte individuel « Formateur » */
.tl-sel{margin-left:8px;min-height:32px;border-radius:8px;border:1px solid var(--line);background:var(--card);color:var(--ink);font:600 13px system-ui,sans-serif;padding:0 6px}
