/* Formation droit pénal routier : style de l'« Espace dossier (v2) » du CRM Dehan Schinazi (maquette crm-avocat) */
:root{
  color-scheme:light;
  --fond:#EEF2F5;--surface:#FFFFFF;--surface-2:#F5F7F9;--filet:#E3E8EC;--filet-2:#EDF1F5;
  --encre:#1F2D3D;--encre-2:#5B6B7D;--encre-3:#8A9BA8;--nav:#46566E;--lien:#0E9AAB;
  --teal:#0E9AAB;--teal-600:#0B7F8E;--teal-700:#0A6B78;--teal-50:#E6F4F6;
  --violet-fond:#EDE7FB;--violet:#5B3FA8;--vert-fond:#DFF5E6;--vert:#1E7F45;
  --ambre-fond:#FDF1DC;--ambre:#9A6206;--rouge-fond:#FDE8EA;--rouge:#B83245;
  --alerte:#E74C5B;--attention:#F0A830;--ok:#2ECC71;
  --ombre:0 1px 2px rgba(16,32,47,.06);--ombre-pop:0 12px 32px rgba(16,32,47,.14);
}
[data-theme="dark"]{
  color-scheme:dark;
  --fond:#121A24;--surface:#1A2533;--surface-2:#202D3D;--filet:#2C3A4B;--filet-2:#263241;
  --encre:#E6EDF5;--encre-2:#9AABBD;--encre-3:#6F7F90;--nav:#9AABBD;--lien:#4FC3BB;
  --teal-50:rgba(14,154,171,.18);--teal-600:#4FC3BB;--teal-700:#4FC3BB;
  --violet-fond:rgba(91,63,168,.3);--violet:#C9B8F5;--vert-fond:rgba(46,204,113,.16);--vert:#7CDCA4;
  --ambre-fond:rgba(240,168,48,.16);--ambre:#F3C77A;--rouge-fond:rgba(231,76,91,.16);--rouge:#F49AA4;
  --ombre:none;--ombre-pop:0 12px 32px rgba(0,0,0,.45);
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--fond);color:var(--encre);font:14px/1.5 Inter,system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--lien)}
h1,h2,h3{color:var(--encre);margin:0}
svg.i{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
button{font-family:inherit}

/* Coque : barre latérale + en-tête */
.app{display:flex;min-height:100vh}
.side{position:sticky;top:0;height:100vh;width:240px;flex:none;display:flex;flex-direction:column;padding:12px;background:var(--surface);border-right:1px solid var(--filet);overflow-y:auto;scrollbar-width:thin}
.brand{display:flex;align-items:center;gap:10px;padding:8px;margin-bottom:8px;color:inherit;text-decoration:none}
.brand .lg{width:34px;height:34px;border-radius:12px;background:var(--teal);color:#fff;display:grid;place-items:center;font-weight:700;font-size:13px;flex:none}
.brand b{display:block;font-size:13px;font-weight:700;line-height:1.2}
.brand small{display:block;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--encre-3)}
.nv a{position:relative;display:flex;align-items:center;gap:10px;padding:8px 10px 8px 14px;border-radius:8px;color:var(--nav);text-decoration:none;font-size:14px;line-height:1.3}
.nv a:hover{background:var(--surface-2);color:var(--lien)}
.nv a.on{background:var(--teal-50);color:var(--teal-600);font-weight:500}
.nv a.on::before{content:'';position:absolute;left:4px;top:50%;width:6px;height:6px;background:var(--teal);transform:translateY(-50%) rotate(45deg)}
.nv a .lb{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nv .st{width:7px;height:7px;border-radius:50%;flex:none}
.st.ok{background:var(--ok)}.st.mid{background:var(--attention)}
.nv .sep{height:1px;background:var(--filet);margin:8px 4px}
.grp{display:flex;align-items:center;gap:6px;width:100%;padding:10px 8px 4px;background:none;border:0;color:var(--encre-3);font-size:12px;font-weight:500;cursor:pointer;text-align:left}
.grp svg.i{width:14px;height:14px;transition:transform .2s}
.grp.ferme svg.i{transform:rotate(-90deg)}
.grp-l.ferme{display:none}
.side .bas{margin-top:auto;padding:12px 6px 4px;border-top:1px solid var(--filet)}
.bas .l1{display:flex;align-items:center;gap:10px}
.bas .av{width:28px;height:28px;border-radius:50%;background:var(--teal);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:700;flex:none}
.bas .l1 span{font-size:12px;color:var(--encre-3);line-height:1.35}
.bas .l1 b{display:block;color:var(--encre-2);font-weight:600}
.pbar{height:6px;border-radius:99px;background:var(--filet-2);overflow:hidden;margin-top:10px}
.pbar i{display:block;height:100%;background:var(--teal);border-radius:99px}
.col{flex:1;min-width:0;display:flex;flex-direction:column}
.top{position:sticky;top:0;z-index:30;height:56px;flex:none;display:flex;align-items:center;gap:16px;padding:0 20px;background:var(--surface);border-bottom:1px solid var(--filet)}
.burger{display:none!important}
.search{position:relative;flex:1;max-width:440px}
.search .f{display:flex;align-items:center;gap:8px;height:38px;padding:0 14px;border-radius:999px;background:var(--surface-2);border:1px solid var(--filet);color:var(--encre-3)}
.search .f:focus-within{border-color:var(--teal);box-shadow:0 0 0 3px rgba(14,154,171,.15)}
.search input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--encre);font:14px Inter,system-ui,sans-serif}
.search input::placeholder{color:var(--encre-3)}
.res{position:absolute;left:0;right:0;top:44px;display:none;padding:6px;background:var(--surface);border:1px solid var(--filet);border-radius:12px;box-shadow:var(--ombre-pop);max-height:70vh;overflow:auto}
.res.on{display:block}
.res a{display:block;padding:8px 10px;border-radius:8px;color:var(--encre);text-decoration:none;font-size:14px;line-height:1.35}
.res a small{display:block;font-size:12px;color:var(--encre-3)}
.res a:hover,.res a.sel{background:var(--surface-2)}
.res .vide{padding:10px;font-size:13px;color:var(--encre-3)}
.top .right{margin-left:auto;display:flex;align-items:center;gap:14px}
.lnk{display:inline-flex;align-items:center;gap:6px;padding:4px;background:none;border:0;color:var(--encre-3);font-size:14px;cursor:pointer;text-decoration:none}
.lnk:hover{color:var(--lien)}
.lnk svg.i{width:16px;height:16px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 14px;border-radius:8px;border:1px solid var(--filet);background:var(--surface);color:var(--encre);font-size:14px;font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap}
.btn:hover{border-color:#C3CED7}
.btn.p{background:var(--teal);border-color:var(--teal);color:#fff}
.btn.p:hover{background:#0B8796;border-color:#0B8796}
.btn svg.i{width:16px;height:16px}
.btn.lg{height:40px;padding:0 18px}
.btn:focus-visible,.lnk:focus-visible,.pipe button:focus-visible,.tabs button:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.ov{display:none}

/* Contenu */
.main{flex:1;min-width:0;padding:20px}
.crumb{margin-bottom:6px;font-size:13px;color:var(--encre-3)}
.crumb a{color:var(--encre-3);text-decoration:none}
.crumb a:hover{color:var(--lien)}
.date{font-size:13px;color:var(--encre-3);margin-bottom:2px}
.h1{font-size:24px;font-weight:600;letter-spacing:-.01em;margin:0 0 18px}
.trow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.trow h1{font-size:20px;font-weight:600}
.trow .r{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:20px}
.kpi{min-height:112px;padding:18px 20px;border-radius:12px;color:#fff;background:linear-gradient(135deg,#0E9AAB 0%,#0A6B78 100%)}
.kpi.nuit{background:linear-gradient(135deg,#0B7F8E 0%,#0A4049 100%)}
.kpi.vert{background:linear-gradient(135deg,#2ECC71 0%,#1E7F45 100%)}
.kpi.rouge{background:linear-gradient(135deg,#E74C5B 0%,#B83245 100%)}
.kpi .l{font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;opacity:.92}
.kpi b{display:block;font-size:30px;font-weight:800;letter-spacing:-.02em;line-height:1.15;margin:6px 0 2px}
.kpi small{font-size:13px;opacity:.9}
.grid2{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}
.lab{margin:0 0 8px;font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--encre-3)}
.card{min-width:0;background:var(--surface);border:1px solid var(--filet);border-radius:12px;box-shadow:var(--ombre)}
.stack{display:flex;flex-direction:column;gap:16px;min-width:0}
.stack>.tabs{margin-bottom:0}
#sc:empty{display:none}
.ch .act{margin-left:auto;color:var(--lien);font-weight:600;font-size:14px;text-decoration:none}
.mini{display:flex;gap:12px;align-items:center}.mini .av{width:44px;height:44px;margin:0;border-radius:12px;font-size:15px}.mini b{display:block;font-size:15px;font-weight:600;line-height:1.3}.mini small{color:var(--encre-3);font-size:13px}
.qq{font-size:15px;font-weight:600;line-height:1.45}
.btn:disabled{opacity:.45;cursor:default}
.ch{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid var(--filet)}
.ch h2,.ch h3{font-size:15px;font-weight:600;line-height:1.35}
.ch .r{margin-left:auto;display:flex;align-items:center;gap:8px}
.ch>svg.i{width:16px;height:16px;color:var(--encre-2)}
.cb{padding:16px 20px}
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th{padding:12px 20px;border-bottom:1px solid var(--filet);text-align:left;font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--encre-3)}
.tbl td{padding:13px 20px;border-bottom:1px solid var(--filet-2);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl tbody tr{cursor:pointer}
.tbl tbody tr:hover td{background:var(--surface-2)}
.tbl .ref{font-weight:700;white-space:nowrap}
.tbl .num{text-align:right;white-space:nowrap;color:var(--encre-2)}
.badge{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:999px;background:var(--surface-2);color:var(--encre-2);font-size:12px;font-weight:600;white-space:nowrap}
.badge.t{background:var(--teal-50);color:var(--teal-600)}
.badge.v{background:var(--violet-fond);color:var(--violet)}
.badge.ok{background:var(--vert-fond);color:var(--vert)}
.badge.mid{background:var(--ambre-fond);color:var(--ambre)}
.badge.ko{background:var(--rouge-fond);color:var(--rouge)}
.tasks .it{display:flex;gap:12px;padding:12px 20px;border-bottom:1px solid var(--filet-2);color:inherit;text-decoration:none}
.tasks .it:last-child{border-bottom:0}
.tasks a.it:hover{background:var(--surface-2)}
.dot{width:8px;height:8px;margin-top:7px;border-radius:50%;flex:none;background:var(--attention)}
.dot.ok{background:var(--ok)}.dot.ko{background:var(--alerte)}.dot.no{background:var(--filet)}
.tasks b{display:block;font-size:14px;font-weight:500}
.tasks small{display:block;font-size:12.5px;color:var(--encre-3)}
.foot{margin-top:28px;font-size:12px;color:var(--encre-3);text-align:center}

/* Fiche module : rail + espace */
.fiche{display:grid;grid-template-columns:300px minmax(0,1fr);gap:20px;align-items:stretch}
.idc{padding:20px}
.av{width:58px;height:58px;margin-bottom:14px;border-radius:14px;background:var(--teal);color:#fff;display:grid;place-items:center;font-size:20px;font-weight:700}
.idc h2{margin-bottom:8px;font-size:20px;font-weight:700;letter-spacing:-.01em;line-height:1.25}
.idc .badge{margin-bottom:12px}
.info{display:flex;align-items:center;gap:10px;margin-top:9px;font-size:14px;color:var(--encre-2)}
.info b{color:var(--encre);font-weight:600}
.info svg.i{width:16px;height:16px;color:var(--encre-3)}
.fin{overflow:hidden;background:var(--surface);border:1px solid var(--filet);border-radius:12px;box-shadow:var(--ombre)}
.fin .hd{padding:18px 20px;color:#fff;background:linear-gradient(135deg,#0E9AAB 0%,#0A6B78 100%)}
.fin.vert .hd{background:linear-gradient(135deg,#2ECC71 0%,#1E7F45 100%)}
.fin .row{display:flex;align-items:center;justify-content:space-between}
.fin h3{color:#fff;font-size:15px;font-weight:700}
.fin .pill{padding:2px 10px;border-radius:999px;background:rgba(255,255,255,.2);font-size:12px;font-weight:600}
.fin .l{margin-top:14px;font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;opacity:.92}
.fin .big{display:block;margin:4px 0 10px;font-size:32px;font-weight:800;letter-spacing:-.02em;line-height:1.1}
.fin .bar{height:6px;border-radius:99px;background:rgba(255,255,255,.3);overflow:hidden}
.fin .bar i{display:block;height:100%;background:#fff;border-radius:99px}
.fin .bt{display:flex;justify-content:space-between;margin-top:10px;font-size:13px;opacity:.95}
.fin .ls{padding:4px 16px}
.fin .li{display:flex;align-items:center;gap:10px;width:100%;padding:10px 4px;border:0;border-bottom:1px solid var(--filet-2);background:none;color:var(--encre-2);font-size:13.5px;text-align:left;cursor:pointer}
.fin .li:last-child{border-bottom:0}
.fin .li .dot{margin:0}
.fin .li b{margin-left:auto;color:var(--encre);font-weight:600}
.fin .li:hover{color:var(--lien)}
.qa{padding:14px 12px}
.qa .lab{padding:0 8px}
.qa a,.qa button{display:flex;align-items:center;gap:10px;width:100%;padding:9px 8px;border:0;border-radius:8px;background:none;color:var(--encre);font-size:14px;text-align:left;text-decoration:none;cursor:pointer}
.qa a:hover,.qa button:hover{background:var(--surface-2);color:var(--lien)}
.qa svg.i{width:17px;height:17px;color:var(--encre-2)}
.som{position:sticky;top:72px;padding:14px 12px;max-height:calc(100vh - 92px);overflow:auto}
.som .lab{padding:0 8px}
.som a{display:block;padding:7px 8px;border-radius:8px;color:var(--encre-2);font-size:13.5px;line-height:1.35;text-decoration:none}
.som a:hover{background:var(--surface-2)}
.som a.on{background:var(--teal-50);color:var(--teal-600);font-weight:500}
.pipe{display:flex;gap:8px;flex-wrap:wrap;margin:2px 0 14px}
.pipe button{flex:1;min-width:104px;height:34px;padding:0 12px;border-radius:999px;border:1.5px solid var(--filet);background:var(--surface);color:var(--encre-3);font-size:13.5px;font-weight:500;cursor:pointer}
.pipe button:hover{border-color:var(--teal);color:var(--teal-600)}
.pipe button.fait{background:var(--teal);border-color:var(--teal);color:#fff}
.pipe button.cur{border:2px solid var(--teal);background:var(--surface);color:var(--teal-600);font-weight:600}
.tabs{display:flex;gap:26px;margin-bottom:16px;border-bottom:1px solid var(--filet);overflow-x:auto;scrollbar-width:none}
.tabs button{margin-bottom:-1px;padding:10px 2px;border:0;border-bottom:2px solid transparent;background:none;color:var(--encre-3);font-size:14.5px;font-weight:500;white-space:nowrap;cursor:pointer}
.tabs button:hover{color:var(--encre)}
.tabs button.on{color:var(--teal-600);border-bottom-color:var(--teal);font-weight:600}
.sec{scroll-margin-top:72px}
.sec .ch .n{flex:none;display:grid;place-items:center;min-width:26px;height:26px;padding:0 6px;border-radius:8px;background:var(--teal-50);color:var(--teal-600);font-size:12.5px;font-weight:700}
.prose{font-size:15px;line-height:1.7;color:var(--encre);max-width:820px}
.prose p{margin:0 0 .9em}
.prose>:last-child{margin-bottom:0}
.prose h3{margin:1.2em 0 .4em;font-size:15.5px;font-weight:600}
.prose ul,.prose ol{margin:0 0 .9em;padding-left:20px}
.prose li{margin:4px 0}
.prose b,.prose strong{font-weight:600}
.obj{list-style:none;margin:0;padding:0!important}
.obj li{display:flex;gap:12px;margin:0;padding:10px 0;border-bottom:1px solid var(--filet-2)}
.obj li:last-child{border-bottom:0}
.obj li::before{content:'';flex:0 0 20px;height:20px;margin-top:2px;border-radius:50%;background:var(--teal-50) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E9AAB' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/11px no-repeat}
.box{margin:14px 0;padding:12px 16px;border-radius:8px;border-left:3px solid var(--teal);background:var(--teal-50)}
.box.warn{border-left-color:var(--attention);background:var(--ambre-fond)}
.box>:last-child{margin-bottom:0}
.prose table,.vis table{display:block;width:100%;overflow-x:auto;margin:14px 0;border-collapse:collapse;font-size:14px;line-height:1.5}
.prose th,.vis th{padding:10px 14px;border-bottom:1px solid var(--filet);text-align:left;vertical-align:bottom;font-size:11.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--encre-3)}
.prose td,.vis td{padding:10px 14px;border-bottom:1px solid var(--filet-2);vertical-align:top}
.flow{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0}
.flow .nd{padding:6px 14px;border-radius:999px;border:1px solid var(--teal);background:var(--teal-50);color:var(--teal-700);font-size:13.5px;font-weight:500;line-height:1.35}
.flow .ar{color:var(--teal);font-weight:700}
.bar{height:8px;border-radius:99px;background:var(--filet-2);overflow:hidden}
.bar>i{display:block;height:100%;border-radius:99px;background:var(--teal)}
.pts{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}
.pts b{width:28px;height:28px;border-radius:50%;background:var(--teal);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;transition:background .35s,color .35s,box-shadow .35s}
.pts b.lost{background:var(--rouge-fond);color:var(--alerte);box-shadow:inset 0 0 0 1.5px var(--alerte)}
details{margin:14px 0;padding:0 16px;border:1px solid var(--filet);border-radius:8px}
summary{padding:10px 0;font-weight:600;cursor:pointer;color:var(--lien)}
.gl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 28px}
.gl div{padding:12px 0;border-bottom:1px solid var(--filet-2)}
.gl b{display:block;margin-bottom:3px;font-size:14px;font-weight:600}
.gl span{font-size:14px;color:var(--encre-2);line-height:1.55}
.srcs{margin:0;padding-left:18px;color:var(--encre-2);font-size:14px}
.srcs li{margin:5px 0}

/* Animation */
.stage{min-height:250px}
.stage h3{margin-bottom:6px;font-size:18px;font-weight:600}
.stage .stt{margin:0 0 12px;color:var(--encre-2);font-size:15px;line-height:1.6}
.seg{display:flex;gap:4px;padding:0 20px 16px}
.seg button{flex:1;height:6px;padding:0;border:0;border-radius:99px;background:var(--filet-2);cursor:pointer}
.seg button.fait{background:var(--teal)}
.seg button.cur{background:var(--teal-700)}
.cf{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 20px;border-top:1px solid var(--filet)}
.cf .hint{margin-left:auto;font-size:12.5px;color:var(--encre-3)}
.pre{opacity:0!important;transform:translateY(6px)}
.vis .flow .nd,.vis .flow .ar,.vis tbody tr,.vis .box,.vis li,.vis .pts b,.vis svg g{transition:opacity .3s cubic-bezier(.2,0,0,1),transform .3s cubic-bezier(.2,0,0,1),background .35s,color .35s,box-shadow .35s}
.pts b.pop{animation:pop .45s cubic-bezier(.2,0,0,1)}
@keyframes pop{50%{transform:scale(1.18)}}

/* Quiz */
.q .opts label{position:relative;display:flex;align-items:center;gap:12px;margin-top:8px;padding:11px 14px;border:1px solid var(--filet);border-radius:8px;font-size:14.5px;line-height:1.45;cursor:pointer}
.q .opts label:hover{background:var(--surface-2)}
.q input{position:absolute;opacity:0;pointer-events:none}
.q .rd{width:18px;height:18px;flex:none;border-radius:50%;border:1.5px solid #B8C4CE}
.q label:has(input:checked){border-color:var(--teal);background:var(--teal-50)}
.q label:has(input:checked) .rd{border-color:var(--teal);background:var(--teal);box-shadow:inset 0 0 0 3.5px var(--surface)}
.q label:has(input:focus-visible){outline:2px solid var(--teal);outline-offset:2px}
.q.done label{cursor:default}
.q label.right{border-color:var(--ok);background:var(--vert-fond)}
.q label.right .rd{border-color:var(--ok);background:var(--ok);box-shadow:inset 0 0 0 3.5px var(--surface)}
.q label.wrong{border-color:var(--alerte);background:var(--rouge-fond)}
.q label.wrong .rd{border-color:var(--alerte);background:var(--alerte);box-shadow:inset 0 0 0 3.5px var(--surface)}
.expl{margin-top:12px;padding:12px 14px;border-radius:8px;background:var(--surface-2);font-size:14px;line-height:1.6}
.expl b{font-weight:600}
.qbar{position:sticky;bottom:12px;z-index:5;display:flex;align-items:center;gap:12px;margin-top:16px;padding:12px 16px 12px 20px;background:var(--surface);border:1px solid var(--filet);border-radius:12px;box-shadow:var(--ombre-pop)}
.qbar .n{font-size:13.5px;color:var(--encre-2)}
.qbar .r{margin-left:auto;display:flex;gap:8px}
.mnav{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}
.mnav a{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--surface);border:1px solid var(--filet);border-radius:12px;color:var(--encre);text-decoration:none}
.mnav a:hover{border-color:var(--teal)}
.mnav small{display:block;font-size:12px;color:var(--encre-3)}
.mnav b{display:block;font-size:14px;font-weight:600}
.mnav svg.i{color:var(--encre-3)}
.mnav .nx{grid-column:2;justify-content:flex-end;text-align:right}

@media (max-width:1100px){.grid2{grid-template-columns:minmax(0,1fr)}.fiche{grid-template-columns:minmax(0,1fr)}.som{display:none}}
@media (max-width:900px){
  .side{position:fixed;left:0;top:0;z-index:60;transform:translateX(-100%);transition:transform .25s cubic-bezier(.2,0,0,1);box-shadow:var(--ombre-pop)}
  body.nav .side{transform:none}
  body.nav .ov{display:block;position:fixed;inset:0;z-index:55;background:rgba(16,32,47,.35)}
  .burger{display:inline-flex!important}
  .top{padding:0 12px;gap:10px}.top .right{gap:8px}#theme span{display:none}
  .main{padding:14px}
  .kpis{grid-template-columns:minmax(0,1fr)}
  .tbl .hs{display:none}.tbl th,.tbl td{padding-left:14px;padding-right:14px}
  .gl{grid-template-columns:minmax(0,1fr)}
  .mnav{grid-template-columns:minmax(0,1fr)}.mnav .nx{grid-column:auto}
  .pipe button{min-width:calc(50% - 4px)}
  .cb,.ch{padding-left:16px;padding-right:16px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.pre{opacity:1!important;transform:none!important}}
@media print{
  .side,.top,.rail,.pipe,.tabs,.mnav,.qbar,.crumb,.trow .r,.ch .r{display:none!important}
  body{background:#fff}.main{padding:0}.fiche{display:block}.card{border:0;box-shadow:none}
}

/* Connexion */
.login{display:none}
body.dehors .app{display:none}
body.dehors .login{display:grid;place-items:center;min-height:100vh;padding:24px 16px;background:var(--fond)}
.lbox{width:min(420px,100%);padding:30px 28px;background:var(--surface);border:1px solid var(--filet);border-radius:16px;box-shadow:var(--ombre-pop)}
.lbox .brand{padding:0;margin-bottom:22px}
.lbox h1{font-size:22px;font-weight:600;margin-bottom:6px}
.lbox .sub{margin:0 0 18px;color:var(--encre-2)}
.lbox .aide{margin:16px 0 0;font-size:13px;color:var(--encre-3)}
.lbox .btn{width:100%;margin-top:6px}
/* Formulaires */
.form{display:flex;flex-direction:column;gap:12px}
.form label,.mini-form label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600;color:var(--encre-2)}
.form input,.form select,.mini-form input,.devine input{height:38px;padding:0 12px;border:1px solid var(--filet);border-radius:8px;background:var(--surface);color:var(--encre);font:14px Inter,system-ui,sans-serif}
.form input:focus,.form select:focus,.mini-form input:focus,.devine input:focus{outline:0;border-color:var(--teal);box-shadow:0 0 0 3px rgba(14,154,171,.15)}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.f3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.inl{display:flex;gap:8px}.inl input{flex:1;min-width:0}
.row-btn{display:flex;gap:8px}
.mini-form{display:flex;flex-direction:column;gap:10px;padding:10px 8px 4px}
.alerte{padding:10px 14px;border-radius:8px;background:var(--rouge-fond);color:var(--rouge);font-size:14px;line-height:1.5}
.alerte.bon{background:var(--vert-fond);color:var(--vert)}.alerte.info{background:var(--teal-50);color:var(--teal-600)}
.mono{font-family:ui-monospace,Consolas,monospace;letter-spacing:.02em}
.muet{color:var(--encre-3)}.cb.muet{color:var(--encre-2)}
.pleine{width:100%;margin-top:16px}
.lien-ligne{color:inherit;text-decoration:none}
.grp-t{padding:8px 8px 4px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--encre-3)}
.bas .l1 .sortie{margin-left:auto}
.kpis.k4{grid-template-columns:repeat(4,minmax(0,1fr))}
/* Back-office */
.who{display:flex;align-items:center;gap:10px}.who b{display:block;font-weight:600}.who small{display:block;font-size:12px;color:var(--encre-3)}
.av.s{width:32px;height:32px;margin:0;border-radius:10px;font-size:12px}
.mbar{display:flex;align-items:center;gap:10px;min-width:150px}.mbar .pbar{flex:1;margin:0}.mbar span{font-size:13px;color:var(--encre-2);white-space:nowrap}
.okc{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--vert-fond);color:var(--vert)}.okc svg.i{width:14px;height:14px;stroke-width:2.5}
.t-parcours td,.t-parcours th{padding-left:14px;padding-right:14px}.t-parcours tbody tr{cursor:default}
button.ch.tog{width:100%;border:0;background:none;text-align:left;cursor:pointer;font:inherit;color:inherit;border-bottom:1px solid var(--filet)}
.rep .ri{padding:10px 0;border-bottom:1px solid var(--filet-2);font-size:14px;line-height:1.55}.rep .ri:last-child{border-bottom:0}
.rep .ri .qq{margin-bottom:4px;font-size:14.5px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
/* Vrais RII */
.seg2{display:inline-flex;flex-wrap:wrap;gap:4px;padding:3px;border-radius:10px;background:var(--surface-2);border:1px solid var(--filet)}
.seg2 button{height:30px;padding:0 12px;border:0;border-radius:8px;background:none;color:var(--encre-2);font-size:13px;font-weight:500;cursor:pointer}
.seg2 button.on{background:var(--surface);color:var(--teal-600);font-weight:600;box-shadow:var(--ombre)}
.modes{padding-top:0}
.riiw{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,1fr);gap:16px;align-items:start}
.dcard{overflow:hidden}
.doc{max-height:calc(100vh - 150px);overflow:auto;padding:14px;background:#DDE3E8;scroll-behavior:smooth}
[data-theme="dark"] .doc{background:#0E141C}
.page{position:relative;width:100%;margin:0 auto 14px;background:#fff;box-shadow:0 2px 10px rgba(16,32,47,.18);overflow:hidden}
.page:last-child{margin-bottom:0}
.page img{display:block;width:100%;height:100%}
.spot{position:absolute;border:2.5px solid #F0A830;border-radius:6px;background:rgba(255,214,10,.22);box-shadow:0 0 0 9999px rgba(16,32,47,.38);transition:left .45s cubic-bezier(.2,0,0,1),top .45s cubic-bezier(.2,0,0,1),width .45s cubic-bezier(.2,0,0,1),height .45s cubic-bezier(.2,0,0,1);pointer-events:none;animation:spot 1.6s ease-in-out infinite}
@keyframes spot{50%{border-color:#E8890C;background:rgba(255,214,10,.32)}}
.rdate{font-size:13px;font-weight:600;color:var(--encre-3)}
.rlib{margin:2px 0 8px;font-size:17px;font-weight:600;line-height:1.35}
.delta{display:inline-flex;align-items:center;height:28px;padding:0 12px;border-radius:999px;background:var(--surface-2);color:var(--encre-2);font-weight:700;font-size:14px}
.delta.down{background:var(--rouge-fond);color:var(--alerte)}.delta.up{background:var(--vert-fond);color:var(--vert)}
.fen{margin-top:10px;padding:8px 12px;border-radius:8px;background:var(--surface-2);color:var(--encre-2);font-size:13px;font-weight:600}
.fen.in{background:var(--violet-fond);color:var(--violet)}
.jauge{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:12px 0}
.pt{display:grid;place-items:center;aspect-ratio:1;border-radius:50%;font-size:12px;font-weight:700;transition:background .4s,color .4s,box-shadow .4s}
.pt.on{background:var(--teal);color:#fff}
.pt.off{background:var(--rouge-fond);color:var(--alerte);box-shadow:inset 0 0 0 1.5px var(--alerte)}
.pt.na{background:transparent;color:var(--encre-3);box-shadow:inset 0 0 0 1.5px var(--filet);border:1px dashed transparent}
.pt.pop{animation:pop .5s cubic-bezier(.2,0,0,1)}
.solde{margin:4px 0 0;font-size:15px}
.devine{display:flex;gap:8px;align-items:center;margin:10px 0}.devine input{width:90px}
#dvres .alerte{margin-bottom:8px}
@media (max-width:1100px){.riiw{grid-template-columns:minmax(0,1fr)}.doc{max-height:70vh}}
@media (max-width:900px){.kpis.k4{grid-template-columns:repeat(2,minmax(0,1fr))}.f3,.f2{grid-template-columns:minmax(0,1fr)}}
.form label,.mini-form label{min-width:0}
.form input,.form select,.mini-form input{width:100%;min-width:0}
.inl input{width:auto}
/* Connexion : toujours visible en entier, même sur un petit écran ou avec un zoom élevé */
body.dehors .login{place-items:start center;padding:6vh 16px 24px;overflow-y:auto}
.lbox{padding:24px 24px 20px}.lbox .brand{margin-bottom:16px}.lbox .sub{margin-bottom:14px}
.lbox .form{gap:10px}
@media (max-height:700px){body.dehors .login{padding-top:16px}.lbox h1{font-size:20px}}
/* Lecteur de RII : repère de défilement et pleine largeur */
.doc{position:relative}
.fiche.plein{grid-template-columns:minmax(0,1fr)}
.fiche.plein .rail{display:none}
.fiche.plein .riiw{grid-template-columns:minmax(0,1.5fr) minmax(340px,1fr)}
/* Le document reste visible pendant qu'on fait défiler les questions */
.riiw .dcard{position:sticky;top:72px}
.pdfs{display:flex;gap:8px;flex-wrap:wrap;padding-bottom:0}
@media (max-width:1100px){.riiw .dcard{position:static}}
/* Barre du haut sur téléphone : la recherche se rétrécit, le bouton devient une icône */
.search,.search .f{min-width:0}
.search input{width:100%}
@media (max-width:600px){#h-cta span{display:none}#h-cta{padding:0 10px}.top .right{gap:4px}}
/* Mon compte depuis le bas de la barre latérale */
.bas .moi{display:flex;align-items:center;gap:10px;min-width:0;flex:1;color:inherit;text-decoration:none;border-radius:8px}
.bas .moi:hover b{color:var(--lien)}
/* Lecteur de RII sur téléphone : le document reste en haut pendant que l'explication défile */
@media (max-width:1100px){.riiw .dcard{position:sticky;top:56px;z-index:5}.riiw .doc{max-height:42vh}}
