:root{--navy:#0d1430;--blue:#1a27c9;--blue2:#2d8fff;--ink:#15172b;--muted:#5b6075;--line:#e7e9f2;--bg:#f5f6fb;--ok:#1aa463;--ko:#d63a3a}
*{box-sizing:border-box}
body{margin:0;font-family:'Segoe UI',system-ui,Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.6}
a{color:var(--blue)}
.topbar{background:var(--navy);color:#fff}
.topbar__in{max-width:1000px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:14px 20px;flex-wrap:wrap;gap:10px}
.brand{display:flex;align-items:baseline;gap:6px;text-decoration:none;color:#fff;font-weight:800;font-size:1.2rem}
.brand__a{color:#fff}.brand__b{color:var(--blue2)}
.brand__t{font-size:.72rem;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:#aab2d5;margin-left:8px}
.topnav{display:flex;align-items:center;gap:12px}
.who{color:#cfd5ee;font-size:.9rem}
.btn-ghost{color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.25);padding:7px 14px;border-radius:8px;font-size:.88rem}
.btn-ghost:hover{background:rgba(255,255,255,.1)}
.wrap{max-width:1000px;margin:0 auto;padding:28px 20px 60px}
.foot{text-align:center;color:var(--muted);font-size:.82rem;padding:24px}
.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:26px;box-shadow:0 8px 26px rgba(13,20,48,.05)}
.card+.card{margin-top:20px}
h1{font-size:1.7rem;margin:.2em 0 .4em}
h2{font-size:1.25rem;margin:1.4em 0 .5em}
.lesson h3{font-size:1.12rem;color:var(--navy);margin:1.3em 0 .4em}
.lesson ul,.lesson ol{padding-left:1.2em}
.lesson code{background:#eef0f8;padding:1px 6px;border-radius:5px;font-size:.92em}
.btn{display:inline-block;background:var(--blue);color:#fff;text-decoration:none;border:0;padding:12px 22px;border-radius:10px;font-weight:700;cursor:pointer;font-size:1rem}
.btn:hover{background:#141fa3}
.btn--lg{padding:14px 28px;font-size:1.05rem}
.btn--ok{background:var(--ok)}.btn--ok:hover{background:#15894f}
.btn[disabled]{background:#c3c7d8;cursor:not-allowed}
.btn-sec{display:inline-block;background:#eef0f8;color:var(--navy);text-decoration:none;padding:11px 20px;border-radius:10px;font-weight:600}
.field{margin:0 0 16px}
.field label{display:block;font-weight:600;margin-bottom:6px;font-size:.92rem}
.field input{width:100%;padding:12px 14px;border:1.5px solid #aeb6d4;border-radius:10px;font-size:1rem;background:#fdfdff}
.field input:focus{outline:none;border-color:#1a27c9;box-shadow:0 0 0 3px rgba(26,39,201,.15);background:#fff}
.login{max-width:420px;margin:8vh auto}
.login .card{padding:30px}
.flash{padding:12px 16px;border-radius:10px;margin:0 0 18px;font-weight:600}
.flash--error{background:#fdeaea;color:var(--ko);border:1px solid #f3c4c4}
.flash--ok{background:#e8f7ef;color:var(--ok);border:1px solid #bfe6cf}
.flash--info{background:#eaf1fd;color:#1a4fb3;border:1px solid #c4d6f3}
.prog{height:12px;background:#e7e9f2;border-radius:20px;overflow:hidden;margin:8px 0}
.prog__bar{height:100%;background:linear-gradient(90deg,var(--blue),var(--blue2));border-radius:20px}
.mods{list-style:none;padding:0;margin:18px 0 0}
.mods li{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;margin-bottom:10px;background:#fff}
.mods a{flex:1;text-decoration:none;color:var(--ink);font-weight:600}
.mods .num{width:30px;height:30px;border-radius:50%;background:#eef0f8;color:var(--navy);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem}
.mods .done{color:var(--ok);font-weight:700;font-size:.85rem}
.mods .todo{color:var(--muted);font-size:.85rem}
.q{margin:0 0 22px;padding:0 0 18px;border-bottom:1px solid var(--line)}
.q__t{font-weight:700;margin-bottom:10px}
.q label{display:block;padding:10px 14px;border:1px solid var(--line);border-radius:10px;margin-bottom:8px;cursor:pointer}
.q label:hover{background:#f6f8ff}
.q .good{background:#e8f7ef;border-color:#bfe6cf}
.q .bad{background:#fdeaea;border-color:#f3c4c4}
.q .expl{font-size:.9rem;color:var(--muted);margin-top:6px}
.scorebox{text-align:center;padding:10px}
.scorebox .big{font-size:3rem;font-weight:800}
.pass{color:var(--ok)}.fail{color:var(--ko)}
.muted{color:var(--muted)}
.row-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
/* ============ LESSON - composants e-learning modernes ============ */
.lesson{font-size:1.04rem;color:#2a2e44;line-height:1.78;max-width:760px}
.lesson > h3{font-size:1.3rem;color:#0d1430;margin:2.1rem 0 .7rem;padding-left:14px;border-left:4px solid #1a27c9;font-weight:800;letter-spacing:-.01em}
.lesson > h3:first-child{margin-top:.4rem}
.lesson p{margin:0 0 1.05rem}
.lesson strong{color:#15172b;font-weight:700}
.lesson ul,.lesson ol{margin:.2rem 0 1.2rem;padding-left:1.3em}
.lesson li{margin:.4rem 0}
.lesson code{background:#eef0f8;color:#1a27c9;padding:2px 7px;border-radius:6px;font-size:.9em;font-family:Consolas,monospace}
.lesson h4{margin:0 0 .5rem;font-size:1rem;color:#0d1430}

.lz-hero{background:linear-gradient(135deg,#0d1430 0%,#1a27c9 100%);color:#fff;border-radius:18px;padding:24px 28px;margin:0 0 26px;box-shadow:0 18px 40px rgba(26,39,201,.18)}
.lz-hero .lz-dur{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.16);padding:5px 13px;border-radius:30px;font-size:.78rem;font-weight:700;letter-spacing:.3px;margin-bottom:12px}
.lz-hero h2{color:#fff;margin:0 0 8px;font-size:1.55rem;line-height:1.2}
.lz-hero p{color:#e2e6f7;margin:0;font-size:1.02rem}

.lz-box{border-radius:14px;padding:15px 20px;margin:22px 0;border:1px solid;border-left-width:5px;line-height:1.65;font-size:.99rem}
.lz-box b{display:block;margin-bottom:5px;font-size:1.02rem}
.lz-box p{margin:.4rem 0 0}
.lz-info{background:#eef4ff;border-color:#cfe0ff;border-left-color:#1a27c9}
.lz-tip{background:#fff8e8;border-color:#ffe2a8;border-left-color:#e6a100}
.lz-warn{background:#fdeef0;border-color:#f6cdd2;border-left-color:#d63a3a}
.lz-ex{background:#ecf1ff;border-color:#bcd0ff;border-left-color:#1a27c9}
.lz-case{background:#eefaf2;border-color:#bfe6cf;border-left-color:#1aa463}

.lz-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin:24px 0}
.lz-stat{background:#fff;border:1px solid #e7e9f2;border-radius:14px;padding:18px 14px;text-align:center;box-shadow:0 6px 18px rgba(13,20,48,.05)}
.lz-stat .n{font-size:1.9rem;font-weight:800;color:#1a27c9;line-height:1;letter-spacing:-.02em}
.lz-stat .l{font-size:.82rem;color:#5b6075;margin-top:7px;line-height:1.3}

.lz-steps{list-style:none;padding:0;margin:20px 0;counter-reset:s}
.lz-steps li{position:relative;padding:3px 0 16px 48px;counter-increment:s}
.lz-steps li::before{content:counter(s);position:absolute;left:0;top:-2px;width:32px;height:32px;background:#1a27c9;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.92rem;box-shadow:0 4px 10px rgba(26,39,201,.3)}
.lz-steps li:not(:last-child)::after{content:"";position:absolute;left:15px;top:34px;bottom:2px;width:2px;background:#dfe3f5}

.lz-2col{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:22px 0}
@media(max-width:640px){.lz-2col{grid-template-columns:1fr}}
.lz-card{background:#fff;border:1px solid #e7e9f2;border-radius:14px;padding:18px 20px;box-shadow:0 6px 18px rgba(13,20,48,.05)}
.lz-card.bad{border-top:4px solid #d63a3a}
.lz-card.good{border-top:4px solid #1aa463}
.lz-card h4 .pill{font-size:.72rem;padding:2px 9px;border-radius:20px;font-weight:700;vertical-align:middle;margin-left:6px}
.bad .pill{background:#fdeaea;color:#d63a3a}
.good .pill{background:#e8f7ef;color:#1aa463}

.lz-fig{margin:24px 0;text-align:center;background:#f7f8fc;border:1px solid #eceef6;border-radius:16px;padding:22px}
.lz-fig svg{max-width:100%;height:auto;display:block;margin:0 auto}
.lz-fig figcaption{font-size:.84rem;color:#5b6075;margin-top:12px;font-style:italic}

.lz-retain{background:linear-gradient(135deg,#eef4ff,#f4f0ff);border:1px solid #d9cdff;border-radius:16px;padding:18px 22px;margin:28px 0 0}
.lz-retain b{display:flex;align-items:center;gap:8px;color:#1a27c9;font-size:1.08rem;margin-bottom:10px}
.lz-retain ul{margin:0;padding-left:1.2em}
.lz-retain li{margin:.45rem 0}
.lz-hero--img{background-size:cover;background-position:center;padding:46px 28px;position:relative}
.lz-cover{width:100%;border-radius:16px;margin:0 0 22px;display:block;object-fit:cover;max-height:300px}
/* ===== Emargement / signature ===== */
.sigpad{display:block;width:100%;max-width:600px;height:auto;border:2px dashed #c7cbe0;border-radius:12px;background:#fff;touch-action:none;cursor:crosshair;margin:6px 0}
.sig-tools{display:flex;gap:12px;align-items:center;margin:8px 0 16px;flex-wrap:wrap}
.emarg-ok{color:#1aa356;font-weight:700;margin:0 0 4px;font-size:1.05rem}

/* ===== Encart satisfaction ===== */
.sat-cta{margin-top:18px;padding:18px 20px;background:#eef1ff;border:1px solid #c9d0f5;border-radius:14px}
.sat-cta strong{color:#16236f;font-size:1.05rem;display:block;margin-bottom:.3rem}
.sat-cta p{color:#3a3d57 !important;margin:0 0 .9rem;line-height:1.5}
