/* ═══════════════════════════════════════════════════════════════
   FORMATIONS : styles propres (maquette validée le 21/10/2026).
   La nuit pour la formatrice, le papier pour le stagiaire.
   ═══════════════════════════════════════════════════════════════ */
.col{display:grid;gap:14px;align-content:start}
.col>*{min-width:0}
.g2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:18px}
.g3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:16px}
.between{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.small{font-size:13.5px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:22px;min-width:0}
.st::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.st.todo{color:var(--gold-hi)} .st.late{color:var(--rose)} .st.wait{color:var(--mute)} .st.auto{color:var(--sky)}
.chip{font-size:12.5px;padding:3px 10px;border-radius:999px;border:1px solid var(--line);color:var(--mute);white-space:nowrap}
.chip.proof{border-color:rgba(123,175,212,.45);color:var(--sky)}
.empty{padding:26px;border:1px dashed var(--line);border-radius:18px;color:var(--mute);text-align:center}

/* coque formatrice : barre du haut */
.fshell{min-height:100vh;padding-block:calc(20px + env(safe-area-inset-top,0px)) 90px}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding-bottom:18px;margin-bottom:28px;border-bottom:1px solid var(--line)}
.brandf{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--mute);text-decoration:none}
.brandf svg{width:28px;height:28px;flex:none}
.brandf b{color:var(--text);font-weight:600;font-family:var(--f-d);font-size:17px;letter-spacing:-.01em}
.tabsf{display:flex;gap:4px;flex-wrap:wrap}
.tabsf a{padding:7px 12px;border-radius:999px;font-size:14px;color:var(--mute);text-decoration:none;transition:background .25s,color .25s}
.tabsf a:hover{color:var(--text)}
.tabsf a.on{background:var(--panel2);color:var(--text)}
.who{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--mute)}
.av{width:30px;height:30px;border-radius:50%;background:var(--navy);border:1px solid var(--gold);display:grid;place-items:center;font-size:12.5px;color:var(--gold-hi);font-weight:600;flex:none}

/* tableau de bord */
.today{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center;background:linear-gradient(120deg,rgba(201,168,76,.13),rgba(123,175,212,.06));border:1px solid rgba(201,168,76,.35);border-radius:22px;padding:24px;margin-bottom:22px}
.dashgrid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:18px}
.sess{display:grid;grid-template-columns:96px minmax(0,1fr) minmax(0,200px) auto;gap:16px;align-items:center;padding:16px 4px;border-top:1px solid var(--line);text-decoration:none;color:inherit;transition:background .2s}
.sess:hover{background:rgba(255,255,255,.02)}
.sess .d{font-family:var(--f-d);font-size:22px;line-height:1}
.sess .d small{display:block;font-family:var(--f-b);font-size:12.5px;color:var(--mute);margin-top:4px}
.bar{height:6px;border-radius:99px;background:var(--panel2);overflow:hidden}
.bar i{display:block;height:100%;background:var(--gold);border-radius:99px;transition:width .8s var(--e)}
.alert{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start;padding:14px 0;border-top:1px solid var(--line);font-size:14.5px}
.alert:first-child{border-top:0}
.alert a{color:inherit}
.dot{width:9px;height:9px;border-radius:50%;margin-top:7px}

/* feuille de route */
.next{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;border:1px solid rgba(201,168,76,.45);background:rgba(201,168,76,.07);border-radius:20px;padding:20px 22px}
.next .h3{font-size:22px}
.road{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:22px}
.phase{background:var(--panel);border:1px solid var(--line);border-radius:22px;padding:20px 18px;min-width:0}
.phase.cur{border-color:rgba(201,168,76,.5)}
.phase header{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:12px}
.phase header .h3{font-size:22px}
.step{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;padding:12px 0;border-top:1px solid var(--line)}
.step .ck{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--line);display:grid;place-items:center;margin-top:2px;padding:0}
.step button.ck{cursor:pointer}
.step button.ck:hover{border-color:var(--gold)}
.step.done .ck{background:var(--ok);border-color:var(--ok)}
.step.done .ck::after{content:"";width:6px;height:10px;border:solid var(--night);border-width:0 2px 2px 0;transform:rotate(45deg) translate(-1px,-1px)}
.step.now .ck{border-color:var(--gold);box-shadow:0 0 0 4px rgba(201,168,76,.18)}
.step.late .ck{border-color:var(--rose)}
.step .t{font-weight:500}
.step .s{font-size:13px;color:var(--mute);display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:3px}
.step .s .pc{color:var(--sky)}
.step .err{font-size:13px;color:var(--rose);margin-top:4px;min-height:0}
.step .act{margin-top:8px;display:flex;gap:6px;flex-wrap:wrap}
.day{font-size:13px;color:var(--gold-hi);padding:12px 0 2px;border-top:1px solid var(--line)}

/* déroulé */
.seqhead{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:end;margin-bottom:26px}
.seq{display:grid;grid-template-columns:92px 16px minmax(0,1fr);gap:0 14px}
.seq .h{font-family:var(--f-d);font-size:17px;padding-top:16px;text-align:right;line-height:1.1}
.seq .h small{display:block;font-family:var(--f-b);font-size:12px;color:var(--mute);margin-top:3px}
.seq .rail{position:relative}
.seq .rail::before{content:"";position:absolute;left:7px;top:0;bottom:0;width:2px;background:var(--line)}
.seq .rail::after{content:"";position:absolute;left:2px;top:20px;width:12px;height:12px;border-radius:50%;background:var(--night);border:2px solid var(--gold)}
.seq .rail.p::after{border-color:var(--mute)}
.seq .card2{margin:8px 0;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:16px 18px;display:grid;gap:10px;min-width:0}
.seq .card2.pause{background:transparent;border-style:dashed;padding:10px 18px;color:var(--mute)}
.seq .top{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:baseline}
.kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:8px 18px;font-size:13.5px}
.kv div{min-width:0}
.kv b{display:block;font-weight:600;color:var(--gold-hi);font-size:12.5px}
.kv span{color:var(--mute)}
.say{font-size:14px;border-left:2px solid var(--gold);padding-left:12px;white-space:pre-line}
.pts{margin:0;padding-left:18px;font-size:14px;color:var(--mute);display:grid;gap:3px}

/* en salle */
.salle{background:radial-gradient(900px 500px at 50% 0%,rgba(201,168,76,.10),transparent 60%),#050810;border-radius:28px;border:1px solid var(--line);padding:clamp(18px,3vw,36px)}
.clock{font-family:var(--f-d);font-weight:500;font-size:clamp(64px,10vw,128px);letter-spacing:-.04em;line-height:.9}
.daybar{position:relative;height:12px;border-radius:99px;background:var(--panel2);margin:26px 0 8px;overflow:hidden;display:flex}
.daybar i{display:block;height:100%;border-right:2px solid #050810}
.daybar .past{background:rgba(201,168,76,.45)} .daybar .curs{background:var(--gold)} .daybar .fut{background:rgba(255,255,255,.08)} .daybar .pz{background:rgba(255,255,255,.03)}
.ticks{display:flex;justify-content:space-between;font-size:12px;color:var(--mute)}
.nowcard{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:22px;margin-top:26px}
.remain{font-family:var(--f-d);font-size:46px;line-height:1;color:var(--gold-hi)}
.scriptcard{margin-top:18px;display:grid;gap:16px;background:rgba(255,255,255,.03)}
.scriptcard select{max-width:min(100%,420px);font-size:13px}
.sc-dire{margin:8px 0 0;padding-left:24px;display:grid;gap:8px}
.sc-dire li{font-size:17px;line-height:1.5;padding:6px 10px;border-left:2px solid var(--gold);border-radius:0 10px 10px 0;cursor:pointer;transition:opacity .2s}
.sc-dire li.dit{opacity:.45;text-decoration:line-through}
.sc-cons{margin:6px 0 0;padding-left:22px;display:grid;gap:5px;font-size:15px}
.sc-qs{display:grid;gap:10px;margin-top:6px}
.sc-q{display:grid;gap:4px;border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.scriptcard details summary{cursor:pointer;color:var(--gold-hi);font-size:13.5px}
.sc-q ul{margin:6px 0;padding-left:18px;display:grid;gap:3px;font-size:14px}
.sc-rel{margin:4px 0 0;color:var(--sky);font-size:14px}
.sc-si{border:1px solid rgba(123,175,212,.3);border-radius:12px;padding:10px 12px}
.sc-si div{margin-top:10px} .sc-si p{margin:2px 0 0;color:var(--mute);font-size:14px}
.sc-noter{color:var(--gold-hi);margin:0} .sc-suite{color:var(--gold-hi);margin:0;text-align:right;font-size:14.5px}
.todo-list{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.todo-list li button{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;font-size:15px;text-align:left;width:100%}
.todo-list li button::before{content:"";width:16px;height:16px;border-radius:5px;border:1.5px solid var(--line);margin-top:3px}
.todo-list li.d button::before{background:var(--ok);border-color:var(--ok)}
.todo-list li.d button{color:var(--mute)}
.drift{display:inline-flex;gap:8px;align-items:center;font-size:13.5px;padding:5px 12px;border-radius:999px;background:rgba(217,139,122,.12);color:var(--rose)}
.drift.ok{background:rgba(127,209,168,.12);color:var(--ok)}
.qrbig{position:fixed;inset:0;z-index:110;background:#fff;color:#162035;display:grid;place-items:center;align-content:center;gap:18px;padding:24px;text-align:center}
.qrbig canvas,.qrbig img{width:min(70vh,86vw);height:auto;image-rendering:pixelated}
.qrbig b{font-family:var(--f-d);font-size:clamp(24px,4vw,40px);font-weight:500}

/* stagiaires */
.qrbox{display:grid;grid-template-columns:auto minmax(0,1fr);gap:22px;align-items:center;margin-bottom:22px}
.qr{width:150px;height:150px;background:#fff;border-radius:14px;padding:8px;display:block;image-rendering:pixelated}
.tbl{overflow-x:auto;border:1px solid var(--line);border-radius:18px}
.tbl table{border-collapse:collapse;width:100%;font-size:14px}
.tbl th,.tbl td{padding:11px 12px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl th{font-weight:500;color:var(--mute);font-size:13px;background:rgba(255,255,255,.02)}
.tbl tr:last-child td{border-bottom:0}
.tbl td input,.tbl td select{min-width:80px;padding:8px 10px;font-size:14px}
.c{width:22px;height:22px;border-radius:7px;display:inline-grid;place-items:center;font-size:12px}
.c.y{background:rgba(127,209,168,.18);color:var(--ok)} .c.n{background:rgba(217,139,122,.15);color:var(--rose)} .c.w{background:var(--panel2);color:var(--mute)}
button.c{cursor:pointer}

/* stagiaire (téléphone, papier) */
.stag{max-width:520px;margin:0 auto;min-height:100vh;padding:calc(18px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) calc(40px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));display:grid;gap:14px;align-content:start}
.stag .pt{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;color:var(--stone);gap:10px}
.stag .pt svg{width:24px;height:24px}
.stag .h2{color:var(--ink)}
.pcard{border:1px solid var(--pline);border-radius:18px;padding:14px 16px;background:#fff;display:grid;gap:4px}
.pcard .k{font-size:12.5px;color:var(--stone)}
.pcard b{font-family:var(--f-d);font-weight:500;font-size:19px;letter-spacing:-.01em;line-height:1.2}
.pbtn{display:block;width:100%;text-align:center;padding:14px;border-radius:999px;background:var(--ink);color:var(--paper);font-weight:600;font-size:15.5px;border:1px solid var(--ink)}
.pbtn.ghost{background:transparent;color:var(--ink);border-color:var(--pline)}
.pbtn[disabled]{opacity:.45}
.ps{font-size:13.5px;color:var(--stone)}
.opt{border:1px solid var(--pline);border-radius:14px;padding:12px 14px;font-size:15px;background:#fff;display:flex;gap:10px;align-items:flex-start;text-align:left;width:100%}
.opt.sel{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.opt i{width:16px;height:16px;border-radius:50%;border:1.5px solid #b9c2d0;flex:none;margin-top:3px}
.opt.sel i{border:5px solid var(--ink)}
.pbar{height:5px;border-radius:9px;background:var(--pline);overflow:hidden}
.pbar i{display:block;height:100%;background:var(--gold);transition:width .4s var(--e)}
.perr{font-size:13.5px;color:#a24a39;background:#fbeeea;border-radius:12px;padding:10px 12px}
.pok{font-size:14px;color:#2f6b52;background:#e6f3ec;border-radius:12px;padding:12px 14px}
.codein{font-family:var(--f-d);font-size:34px;letter-spacing:.5em;text-align:center;padding:12px 0 12px .5em}
.names{display:grid;gap:8px}

/* back office */
.bo{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px}
.bo nav{display:grid;gap:2px;align-content:start}
.bo nav a{padding:9px 12px;border-radius:12px;font-size:14px;color:var(--mute);text-decoration:none}
.bo nav a.on{background:var(--panel2);color:var(--text)}
.person{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 0;border-top:1px solid var(--line)}
.seqed{display:grid;gap:10px}
.seqed .it{border:1px solid var(--line);border-radius:16px;padding:14px;display:grid;gap:10px;background:rgba(255,255,255,.02)}
.seqed .it .g{display:grid;grid-template-columns:90px 120px minmax(0,1fr) 150px;gap:10px}
.okline{color:var(--ok);font-size:13.5px}
.koline{color:var(--rose);font-size:13.5px}

/* carte « Maintenant » du mode salle (21/10/2026) */
.now-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;margin-top:24px;border:1px solid rgba(201,168,76,.55);background:linear-gradient(120deg,rgba(201,168,76,.16),rgba(201,168,76,.04));border-radius:20px;padding:18px 22px}
@media (max-width:900px){
  .now-card{grid-template-columns:1fr}
  .today,.next,.seqhead,.dashgrid,.nowcard,.road,.bo,.qrbox{grid-template-columns:1fr}
  .sess{grid-template-columns:80px minmax(0,1fr)}
  .sess>:nth-child(3),.sess>:nth-child(4){grid-column:2}
  .seq{grid-template-columns:62px 14px minmax(0,1fr);gap:0 10px}
  .seqed .it .g{grid-template-columns:1fr 1fr}
}
@media print{
  body{background:#fff!important;color:#000!important}
  .topbar,.noprint{display:none!important}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
