/* ============================================================
   Renfora — Cockpit / Espace 360° (design « Atelier d'embauche »)
   Système indigo/slate partagé avec l'atelier (/configurer).
   Tokens sémantiques light/dark, Plus Jakarta Sans, rythme 8pt.
   ============================================================ */
/* Plus Jakarta Sans AUTO-HÉBERGÉE (pas de Google Fonts sur l'espace authentifié — doctrine
   « données en Europe » §6.8). Police variable : un fichier couvre 400→800 par plage Unicode. */
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:400 800;font-display:swap;
  src:url(/fonts/jakarta-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:400 800;font-display:swap;
  src:url(/fonts/jakarta-latin-ext.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
:root,[data-theme="light"]{--bg:#EAEFF6;--surface:#fff;--surface-2:#F7F9FC;--surface-3:#ECEFF6;--text:#14273E;--text-2:#4E657F;--text-3:#8497AE;--line:#DCE4F0;--line-2:#C6D2E4;--primary:#2F5FFF;--primary-press:#2243C9;--primary-tint:#E9EEFF;--primary-text:#2546CF;--on-primary:#fff;--success:#1F8A5B;--success-tint:#E2F1EA;--danger:#C0394B;--danger-tint:#F7E4E7;--warning:#B7791F;--warning-tint:#F6ECD9;--shadow-1:0 1px 2px rgba(20,39,62,.05);--shadow-2:0 1px 3px rgba(20,39,62,.06),0 12px 34px -22px rgba(20,39,62,.3);--scrim:rgba(15,29,48,.45)}
[data-theme="dark"]{--bg:#0B1521;--surface:#13202F;--surface-2:#16263A;--surface-3:#1B2E45;--text:#EAF1FB;--text-2:#9FB2C9;--text-3:#6E84A0;--line:#21344B;--line-2:#2C435F;--primary:#3A63E6;--primary-press:#5B7BF0;--primary-tint:#1B2C52;--primary-text:#9FB6FF;--on-primary:#fff;--success:#4ADE80;--success-tint:#13301F;--danger:#F08390;--danger-tint:#341F22;--warning:#E0A93A;--warning-tint:#2A2410;--shadow-1:0 1px 2px rgba(0,0,0,.4);--shadow-2:0 1px 3px rgba(0,0,0,.3),0 14px 34px -22px rgba(0,0,0,.6);--scrim:rgba(0,0,0,.55)}
/* alias des tokens hérités (renfora-d.css) → résolus au point d'usage, theme-aware (P3b compat) */
:root{--accent-text:var(--primary-text);--muted:var(--text-2);--panel:var(--surface);--panel-2:var(--surface-2);--stroke:var(--line);--stroke-2:var(--line-2)}
*{margin:0;padding:0;box-sizing:border-box}
.esp{--font:"Hanken Grotesk",system-ui,sans-serif;font-family:var(--font);min-height:100vh;background:var(--field,var(--bg));color:var(--text);-webkit-font-smoothing:antialiased}
:root,[data-theme="light"]{--field:radial-gradient(900px 520px at 8% -6%,#E8ECFB 0%,transparent 55%),radial-gradient(1000px 620px at 102% 0%,#E3EEFF 0%,transparent 52%),linear-gradient(180deg,#EEF1F7,var(--bg))}
[data-theme="dark"]{--field:radial-gradient(900px 520px at 8% -6%,#16213F 0%,transparent 55%),radial-gradient(1000px 620px at 102% 0%,#0F2236 0%,transparent 52%),linear-gradient(180deg,#0C1320,var(--bg))}
.esp *,.esp *::before,.esp *::after{box-sizing:border-box}
.esp :where(button){font-family:var(--font);cursor:pointer;border:0;background:none;color:inherit}
.esp input,.esp textarea{font-family:var(--font)}
.esp a{color:inherit;text-decoration:none}
.esp ::selection{background:var(--primary);color:#fff}
.esp :focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:8px}
.tnum{font-variant-numeric:tabular-nums}
.press{transition:transform .12s ease,background .15s,border-color .15s}
.press:active{transform:scale(.98)}
@media (prefers-reduced-motion:reduce){.press:active{transform:none}.esp *{animation-duration:.001ms!important;transition-duration:.001ms!important}}
/* top bar */
.esp-top{position:sticky;top:0;z-index:40;height:60px;display:flex;align-items:center;gap:16px;padding:0 20px;background:color-mix(in srgb,var(--bg) 85%,transparent);backdrop-filter:blur(12px) saturate(150%);-webkit-backdrop-filter:blur(12px) saturate(150%);border-bottom:1px solid var(--line)}
.esp-logo{display:flex;align-items:center;gap:9px;font-size:19px;font-weight:800;letter-spacing:-.01em;color:var(--text)}
.esp-logo .mk{width:22px;height:22px;border-radius:7px;background:var(--primary);display:grid;place-items:center;color:#fff}
.esp-logo .mk svg{width:13px;height:13px}
.esp-crumb{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:600;color:var(--text-3);min-width:0}
.esp-crumb b{color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.esp-crumb .sep{opacity:.6}
.esp-right{margin-left:auto;display:flex;align-items:center;gap:8px}
.esp-ib{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;color:var(--text-2)}
.esp-ib:hover{background:var(--surface-2);color:var(--text)}
.esp-ib svg{width:19px;height:19px}
/* content */
.esp-wrap{max-width:720px;margin:0 auto;padding:34px 20px 80px}
.esp-eyebrow{display:block;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--primary-text)}
.esp h1{font-size:30px;font-weight:800;line-height:1.15;letter-spacing:-.02em;color:var(--text);margin:6px 0 0}
.esp h1 .grad{background:linear-gradient(90deg,var(--primary),var(--primary-press));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.esp .sub{font-size:15px;color:var(--text-2);margin-top:10px;line-height:1.55}
.sect{margin-top:26px}
.sect-h{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);margin-bottom:12px}
/* state bar */
.statebar{display:flex;align-items:center;gap:10px;margin-top:18px;padding:12px 15px;border-radius:14px;background:var(--surface-2);border:1px solid var(--line);font-size:13.5px;font-weight:600;color:var(--text-2)}
.statebar .led{width:9px;height:9px;border-radius:50%;background:var(--text-3);flex-shrink:0}
.statebar--on{background:var(--success-tint);border-color:transparent;color:var(--success)}
.statebar--on .led{background:var(--success);box-shadow:0 0 0 4px color-mix(in srgb,var(--success) 22%,transparent)}
.statebar--wait{background:var(--warning-tint);border-color:transparent;color:var(--warning)}
.statebar--wait .led{background:var(--warning)}
/* trial chip */
.trialchip{display:inline-flex;align-items:center;gap:8px;margin-top:12px;font-size:12.5px;font-weight:700;padding:8px 13px;border-radius:99px;background:var(--surface-2);color:var(--text-2);border:1px solid var(--line)}
.trialchip::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--primary)}
.trialchip.on{background:var(--primary-tint);color:var(--primary-text);border-color:transparent}
.trialchip.exp{background:var(--danger-tint);color:var(--danger);border-color:transparent}
.trialchip.exp::before{background:var(--danger)}
/* agent card (partagée avec l'atelier) */
.cardm{border:1px solid var(--line);border-radius:20px;overflow:hidden;background:var(--surface);margin-top:18px;box-shadow:var(--shadow-1)}
.cardm-head{display:flex;align-items:center;gap:13px;padding:16px;background:linear-gradient(135deg,var(--primary),var(--primary-press));color:#fff}
.cardm-head .ph{width:50px;height:50px;border-radius:50%;flex-shrink:0;border:2px solid rgba(255,255,255,.3);background:rgba(255,255,255,.12);display:grid;place-items:center;font-weight:800;font-size:19px}
.cardm-head .hd{min-width:0}
.cardm-head .hd b{display:block;font-size:18px;font-weight:800}
.cardm-head .hd span{display:block;font-size:12.5px;opacity:.85;margin-top:1px}
.cardm-state{margin-left:auto;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:5px 10px;border-radius:99px;background:rgba(255,255,255,.18);white-space:nowrap}
.cardm-row{display:flex;gap:12px;padding:13px 16px;border-bottom:1px solid var(--line)}
.cardm-row:last-child{border-bottom:0}
.cardm-row dt{width:88px;flex-shrink:0;font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--text-3);padding-top:1px}
.cardm-row dd{flex:1;font-size:14px;font-weight:600;color:var(--text)}
.cardm-row dd.muted{color:var(--text-3);font-weight:500;font-style:italic}
.cardm-row dd small{display:block;font-size:12px;font-weight:400;color:var(--text-2);margin-top:1px}
.cardm-row dd .pill{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px;background:var(--primary-tint);color:var(--primary-text);margin:2px 5px 0 0}
/* pillars (navigation 360°) */
.pillars{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pillar{display:flex;align-items:center;gap:13px;padding:15px;border:1px solid var(--line);border-radius:16px;background:var(--surface);text-align:left;transition:.14s;box-shadow:var(--shadow-1)}
.pillar:hover{border-color:var(--primary);background:var(--surface-2)}
.pillar .ic{width:40px;height:40px;border-radius:12px;background:var(--primary-tint);color:var(--primary-text);display:grid;place-items:center;flex-shrink:0}
.pillar .ic svg{width:20px;height:20px}
.pillar .tx{min-width:0;flex:1}
.pillar .tx b{display:block;font-size:14.5px;font-weight:700;color:var(--text)}
.pillar .tx span{display:block;font-size:12px;color:var(--text-2);margin-top:1px;line-height:1.35}
.pillar .ar{margin-left:auto;color:var(--text-3);flex-shrink:0}
.pillar.soon{opacity:.62;cursor:default}
.pillar.soon:hover{border-color:var(--line);background:var(--surface)}
.pillar .tag{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);background:var(--surface-3);padding:2px 7px;border-radius:6px}
/* event / digest cards */
.ev{border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:14px;margin-bottom:10px}
.ev-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.ev-when{font-size:11px;font-weight:600;color:var(--text-3)}
.ev-pill{font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:3px 8px;border-radius:99px;background:var(--surface-2);color:var(--text-2)}
.ev-pill.esc{background:var(--danger-tint);color:var(--danger)}
.ev-pill.ok{background:var(--success-tint);color:var(--success)}
.ev-pill.log{background:var(--primary-tint);color:var(--primary-text)}
.ev-pill.amber{background:var(--warning-tint);color:var(--warning)}
.ev-sum{font-size:14px;color:var(--text);line-height:1.5}
.ev-sum b{font-weight:700}
.ev .src{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-3)}
.ev-act{margin-top:10px}
/* livrable rows */
.lv{display:flex;align-items:flex-start;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}
.lv:last-child{border-bottom:0}
.lv .ic{width:34px;height:34px;border-radius:10px;flex-shrink:0;display:grid;place-items:center;background:var(--primary-tint);color:var(--primary-text)}
.lv .ic svg{width:17px;height:17px}
.lv .bd{flex:1;min-width:0}
.lv .bd b{font-size:14px;font-weight:700;color:var(--text)}
.lv .bd p{font-size:13px;color:var(--text-2);margin-top:2px;line-height:1.45}
.lv .when{font-size:11px;font-weight:600;color:var(--text-3);white-space:nowrap;flex-shrink:0}
/* timeline (historique carnet) */
.tl{position:relative;margin-top:4px;padding-left:22px}
.tl::before{content:"";position:absolute;left:6px;top:4px;bottom:4px;width:2px;background:var(--line)}
.tl-item{position:relative;padding:0 0 16px}
.tl-dot{position:absolute;left:-22px;top:3px;width:14px;height:14px;border-radius:50%;background:var(--surface);border:3px solid var(--primary)}
.tl-item.them .tl-dot{border-color:var(--text-3)}
.tl-when{font-size:11px;font-weight:600;color:var(--text-3)}
.tl-txt{font-size:14px;color:var(--text);margin-top:2px;line-height:1.45}
/* generic card / panel */
.card{border:1px solid var(--line);border-radius:18px;background:var(--surface);padding:18px;box-shadow:var(--shadow-1)}
.now{margin-top:18px;padding:14px 16px;border-radius:14px;background:var(--primary-tint);color:var(--text);font-size:13.5px;line-height:1.5}
.now b{font-weight:700}
.now a{color:var(--primary-text);font-weight:700}
.empty{padding:28px 16px;text-align:center;color:var(--text-3);font-size:13.5px;line-height:1.5;border:1px dashed var(--line-2);border-radius:16px}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:0 22px;border-radius:14px;background:var(--primary);color:var(--on-primary);font-size:15px;font-weight:700;box-shadow:0 8px 20px -8px color-mix(in srgb,var(--primary) 70%,transparent);transition:background .15s,transform .12s}
.btn:hover{background:var(--primary-press)}.btn:active{transform:scale(.98)}
.btn-ghost{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 18px;border-radius:12px;font-size:14px;font-weight:700;color:var(--text-2);border:1.5px solid var(--line-2)}
.btn-ghost:hover{background:var(--surface-2);border-color:var(--primary);color:var(--primary-text)}
.btnrow{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.foot{margin-top:26px;font-size:12.5px;color:var(--text-3);line-height:1.6}
.foot a{color:var(--primary-text);font-weight:600}
.backlink{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--text-2);margin-bottom:4px}
.backlink:hover{color:var(--primary-text)}
.status{font-size:13px;margin-top:12px;line-height:1.5}
.status:empty{display:none}
.status.ok{color:var(--success)}.status.err{color:var(--danger)}
/* stats strip */
.stats{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.stat{flex:1;min-width:120px;border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:13px 15px}
.stat b{display:block;font-size:24px;font-weight:800;letter-spacing:-.02em;color:var(--text)}
.stat span{font-size:12px;color:var(--text-2)}
/* responsive */
@media (max-width:640px){.pillars{grid-template-columns:1fr}.esp h1{font-size:26px}.esp-wrap{padding:24px 16px 90px}}

/* ============================================================
   Compat « pages Bureau » — mêmes classes que renfora-d.css, thémées indigo,
   pour re-skinner les pièces (connexion, fiche, carnet, validation, bilan…)
   en basculant simplement leur shell sur page_cockpit() (P3b).
   ============================================================ */
.eyebrow{display:block;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--primary-text)}
.grad{background:linear-gradient(90deg,var(--primary),var(--primary-press));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.field{margin-bottom:16px}
.field label{display:block;font-size:13px;font-weight:700;color:var(--text);margin-bottom:8px}
.field .hint{display:block;font-weight:500;color:var(--text-3);font-size:12px;margin-top:3px}
.field input,.field textarea,.field select{width:100%;min-height:50px;border:1.5px solid var(--line-2);border-radius:13px;background:var(--surface);color:var(--text);font-size:16px;font-weight:500;padding:13px 15px;transition:border-color .15s,box-shadow .15s;font-family:inherit}
.field textarea{min-height:120px;line-height:1.55;resize:vertical}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-tint)}
.field input::placeholder,.field textarea::placeholder{color:var(--text-3)}
.hint{color:var(--text-3);font-weight:500}
.notdo{margin-top:18px;padding:15px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.notdo b{display:block;font-size:13px;font-weight:700;margin-bottom:8px}
.notdo ul{list-style:none;margin:0}.notdo li{font-size:13.5px;color:var(--text-2);padding:4px 0 4px 18px;position:relative;line-height:1.5}
.notdo li::before{content:"–";position:absolute;left:0;color:var(--text-3)}
.notdo a{color:var(--primary-text);font-weight:700}

/* ============================================================
   Connexion / activation — split-screen (formulaire + panneau de marque).
   Gauche : carte claire avec le formulaire. Droite : panneau indigo qui
   « vend » le Bureau (titre, aperçu produit, bénéfices, CTA d'embauche).
   ============================================================ */
.auth-shell{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:26px;background:var(--bg)}
.auth-grid{width:100%;max-width:1160px;display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:22px;align-items:stretch}
/* ── gauche : formulaire ── */
.auth-form{background:var(--surface);border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow-2);padding:46px 48px;display:flex;flex-direction:column;justify-content:center}
.auth-form .brand{display:flex;align-items:center;justify-content:center;gap:10px;font-size:21px;font-weight:800;letter-spacing:-.01em;color:var(--text)}
.auth-form .brand .mk{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--primary);color:#fff}
.auth-form .brand .mk svg{width:18px;height:18px}
.auth-form h1{font-size:28px;font-weight:800;letter-spacing:-.02em;text-align:center;margin:24px 0 6px;color:var(--text)}
.auth-form .lead{text-align:center;font-size:14px;color:var(--text-2);margin:0 0 26px;line-height:1.5}
.auth-form .forgot{margin:-4px 0 16px;font-size:12.5px}
.auth-form .forgot a{color:var(--primary-text);font-weight:600}
.auth-form .btn{width:100%}
.auth-form .signup{margin-top:22px;text-align:center;font-size:13.5px;color:var(--text-2)}
.auth-form .signup a{color:var(--primary-text);font-weight:700}
/* ── droite : panneau de marque ── */
.auth-aside{position:relative;overflow:hidden;border-radius:26px;padding:42px 42px 36px;color:#fff;background:linear-gradient(157deg,var(--primary),var(--primary-press) 82%);display:flex;flex-direction:column;gap:24px;box-shadow:var(--shadow-2)}
.auth-aside::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 80% at 100% 0,rgba(255,255,255,.16),transparent 58%);pointer-events:none}
.auth-aside>*{position:relative;z-index:1}
.auth-aside h2{font-size:30px;line-height:1.2;font-weight:800;letter-spacing:-.02em;max-width:16ch}
.auth-aside h2 b{color:#C8F046;font-weight:800}
/* aperçu produit */
.auth-peek{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);border-radius:18px;padding:15px 17px}
.auth-peek .pk-h{display:flex;align-items:center;gap:11px}
.auth-peek .pk-av{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:14px;background:rgba(255,255,255,.92);color:var(--primary-press)}
.auth-peek .pk-id{min-width:0}
.auth-peek .pk-id b{display:block;font-size:14.5px;font-weight:800;line-height:1.2}
.auth-peek .pk-id span{display:block;font-size:12px;opacity:.85;margin-top:1px}
.auth-peek .pk-state{margin-left:auto;flex-shrink:0;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:5px 11px;border-radius:99px;background:#C8F046;color:#1c2b06}
.auth-peek .pk-state i{width:6px;height:6px;border-radius:50%;background:#1c2b06}
.auth-peek .pk-row{display:flex;justify-content:space-between;align-items:baseline;margin-top:12px;font-size:13px;opacity:.9}
.auth-peek .pk-row b{font-size:13.5px;font-weight:800;opacity:1}
/* bénéfices */
.auth-benes{display:flex;flex-direction:column;gap:13px}
.auth-bene{display:flex;align-items:flex-start;gap:13px;font-size:14.5px;font-weight:600;line-height:1.4}
.auth-bene .ck{width:25px;height:25px;flex-shrink:0;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.16);color:#fff;margin-top:1px}
.auth-bene .ck svg{width:14px;height:14px}
/* CTA d'embauche */
.auth-aside .aside-cta{margin-top:4px;display:flex;flex-direction:column;gap:9px}
.auth-aside .aside-cta .lab{font-size:12.5px;font-weight:600;opacity:.85}
.auth-aside .aside-cta a{display:inline-flex;align-items:center;justify-content:center;gap:9px;background:#fff;color:var(--primary-press);font-size:15px;font-weight:800;padding:15px 22px;border-radius:14px;transition:transform .12s,box-shadow .15s;box-shadow:0 12px 30px -12px rgba(0,0,0,.45)}
.auth-aside .aside-cta a:hover{transform:translateY(-1px);box-shadow:0 16px 38px -14px rgba(0,0,0,.55)}
.auth-aside .aside-cta a svg{width:17px;height:17px}
/* responsive : empilé sous 880px */
@media (max-width:880px){
  .auth-grid{grid-template-columns:1fr;max-width:520px;gap:16px}
  .auth-form{padding:34px 26px;border-radius:22px}
  .auth-aside{padding:30px 26px;border-radius:22px}
  .auth-aside h2{font-size:25px}
}
@media (max-width:520px){.auth-shell{padding:14px}.auth-form{padding:30px 22px}}
.ghostbtn{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 16px;border-radius:11px;font-size:13.5px;font-weight:700;color:var(--text-2);border:1.5px solid var(--line-2);background:var(--surface)}
.ghostbtn:hover{border-color:var(--primary);color:var(--primary-text);background:var(--surface-2)}
.pill{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:3px 8px;border-radius:99px;background:var(--surface-2);color:var(--text-2)}
.pill.log{background:var(--primary-tint);color:var(--primary-text)}
.pill.esc{background:var(--danger-tint);color:var(--danger)}
.preview{margin-top:14px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}
.preview .cap{display:block;margin-bottom:8px}
.bub{font-size:14.5px;font-style:italic;line-height:1.5;color:var(--text)}
.cap{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3)}
.summary{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}
.summary .stat{flex:1;min-width:130px;border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:12px 14px;font-size:13px;color:var(--text-2)}
.summary .stat b{font-size:20px;font-weight:800;color:var(--text)}
.vs{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}
.vs .col{border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:14px}
.vs .col b{display:block;font-size:13px;font-weight:700;margin-bottom:8px}
.vs .col ul{list-style:none;margin:0}.vs .col li{font-size:13px;color:var(--text-2);padding:4px 0 4px 16px;position:relative;line-height:1.45}
.vs .col li::before{content:"·";position:absolute;left:4px;color:var(--primary-text)}
.pin{margin-top:16px;padding:14px 16px;border-radius:14px;background:var(--primary-tint);color:var(--text);font-size:14px;line-height:1.5}
.pin a{color:var(--primary-text);font-weight:700}
.mono-sub{display:block;margin-top:8px;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.btabs{display:flex;gap:6px;margin:16px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.btabs a{padding:9px 14px;font-size:13.5px;font-weight:700;color:var(--text-2);border-bottom:2px solid transparent;margin-bottom:-1px}
.btabs a.on{color:var(--primary-text);border-bottom-color:var(--primary)}
.btabs a:hover{color:var(--text)}
.tl-item--renfora .tl-dot{border-color:var(--text-3)}
.tl-diff{margin-top:6px}.tl-diff summary{font-size:12px;font-weight:700;color:var(--primary-text);cursor:pointer}
.tl-diff ul{margin:6px 0 0 16px;font-size:12.5px;color:var(--text-2)}
.tl-act{margin-top:8px}
.convo{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.crow{display:flex}.crow.user{justify-content:flex-end}
.crow .cbub{max-width:84%;padding:9px 13px;border-radius:14px;font-size:13.5px;line-height:1.45}
.crow.agent .cbub{background:var(--surface);border:1px solid var(--line);border-bottom-left-radius:5px;color:var(--text)}
.crow.user .cbub{background:var(--primary);color:#fff;border-bottom-right-radius:5px}
details > summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--primary-text);margin-top:8px}
.cond{display:flex;gap:10px;align-items:flex-start}
.cond input{width:auto;flex:none;margin-top:3px}
.cond a{color:var(--primary-text);font-weight:700}
/* checkboxes (embauche : outils) */
.checks{display:flex;flex-direction:column;gap:2px}
.checks label{display:flex;align-items:center;gap:11px;padding:11px 4px;margin:0;border-bottom:1px solid var(--line);font-size:14px;font-weight:500;color:var(--text);cursor:pointer}
.checks label:last-child{border-bottom:0}
.checks input{width:20px;height:20px;min-height:0;flex:none;margin:0;padding:0;border:0;background:none;border-radius:0;accent-color:var(--primary)}
.checks small{color:var(--text-3);font-weight:500}
/* cartes agents (dashboard multi-agents) */
.agentcard{display:flex;align-items:center;gap:13px;padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--surface);margin-bottom:10px;text-align:left;box-shadow:var(--shadow-1);transition:.14s}
.agentcard:hover{border-color:var(--primary);background:var(--surface-2)}
.agentcard .ac-av{width:42px;height:42px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-weight:800;font-size:17px;background:linear-gradient(135deg,var(--primary),var(--primary-press));color:#fff}
.agentcard .ac-av.add{background:var(--primary-tint);color:var(--primary-text)}
.agentcard.add{border-style:dashed}
.agentcard .ac-tx{min-width:0;flex:1}
.agentcard .ac-tx b{display:block;font-size:15px;font-weight:700;color:var(--text)}
.agentcard .ac-tx span{display:block;font-size:12.5px;color:var(--text-2)}
.agentcard .ac-badge{font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:4px 9px;border-radius:99px;background:var(--surface-2);color:var(--text-2);white-space:nowrap}
.agentcard .ac-badge.on{background:var(--success-tint);color:var(--success)}
.agentcard .ac-badge.wait{background:var(--warning-tint);color:var(--warning)}
.agentcard .ac-ar{color:var(--text-3);flex-shrink:0}

/* ============================================================
   « LE BUREAU » — coquille app-shell (sidebar + topbar + Enora) + système
   de composants, porté du handoff Claude Design (Direction D), RE-THÉMÉ INDIGO.
   Couche ADDITIVE : la coquille est globale (.shell/.side/.topbar) ; les composants
   de page vivent sous le namespace `.lb` → les pages non encore migrées (classes
   héritées ci-dessus) ne sont pas touchées. Titres Sora, labels JetBrains Mono
   (auto-hébergées), corps Plus Jakarta — aucune Google Font (doctrine §6.8).
   ============================================================ */
@font-face{font-family:'Sora';font-style:normal;font-weight:300 800;font-display:swap;src:url(/fonts/sora-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Sora';font-style:normal;font-weight:300 800;font-display:swap;src:url(/fonts/sora-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/jbmono-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/jbmono-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Oswald';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/oswald-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Oswald';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/oswald-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* Alias : les noms de tokens du handoff → tokens indigo existants (theme-aware via la chaîne) */
:root{
  --accent:var(--primary);--accent-deep:var(--primary-press);--accent-ink:var(--primary-text);--accent-pale:var(--primary-tint);
  --accent-soft:color-mix(in srgb,var(--primary),white 30%);--accent-mist:color-mix(in srgb,var(--primary),var(--surface) 88%);
  --card:var(--surface);--card-2:var(--surface-2);--ink:var(--text);--body:var(--text-2);--faint:var(--text-3);--bg-2:var(--surface-2);
  --ok:var(--success);--ok-pale:var(--success-tint);--warn:var(--warning);--warn-pale:var(--warning-tint);--bad:var(--danger);--bad-pale:var(--danger-tint);
  --navy:#0F1D30;--navy-2:#16273E;
  --cond:'Oswald','Arial Narrow',sans-serif;--sans:'Hanken Grotesk',system-ui,sans-serif;--mono:'JetBrains Mono',ui-monospace,monospace;
  --gap:20px;--pad:22px;--r:14px;--r-lg:18px;--r-sm:9px;--sidebar:252px;--topbar:60px;
  --shadow-card:var(--shadow-2);--shadow-pop:0 26px 64px -24px rgba(15,20,40,.42);--ring:0 0 0 3px var(--primary-tint);
}
[data-theme="dark"]{--navy:#0A131F;--navy-2:#12202F;--shadow-pop:0 26px 64px -24px rgba(0,0,0,.7)}
.h-cond{font-family:var(--cond);font-weight:600;text-transform:uppercase;letter-spacing:.01em;line-height:1.02}
.lb .eyebrow{display:inline-block;font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--primary-text)}
.lb .mono{font-family:var(--mono)}

/* ---------- app shell ---------- */
.esp:has(.shell){display:block}
.shell{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);min-height:100vh;max-width:1520px;margin:0 auto}
.side{position:sticky;top:0;align-self:start;height:100vh;background:var(--navy);color:#C9D2E8;display:flex;flex-direction:column;z-index:40}
.side-top{padding:18px 18px 12px}
.side .brand{display:flex;align-items:center;gap:10px}
.side .brand .mk{width:24px;height:24px;border-radius:7px;background:var(--primary);display:grid;place-items:center;color:#fff}
.side .brand .mk svg{width:14px;height:14px}
.side .brand .bn{font-size:19px;font-weight:800;letter-spacing:-.01em;color:#fff}
.side .brand .pj{margin-left:auto;font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent-soft),transparent 60%);padding:3px 7px;border-radius:99px}
.side-org{margin:6px 12px 4px;padding:11px 12px;border-radius:var(--r);background:color-mix(in srgb,var(--navy),white 7%);display:flex;align-items:center;gap:11px}
.side-org .logo{width:34px;height:34px;border-radius:9px;flex-shrink:0;background:color-mix(in srgb,var(--navy),white 13%);display:grid;place-items:center;font-weight:800;color:#fff;font-size:14px}
.side-org .oi{min-width:0;line-height:1.2}
.side-org .oi b{display:block;font-size:13.5px;color:#fff;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side-org .oi span{font-family:var(--mono);font-size:9px;letter-spacing:.05em;text-transform:uppercase;color:#8E9CBC}
.nav-scroll{flex:1;overflow-y:auto;padding:10px 12px 8px}
.nav-group{margin-bottom:6px}
.nav-lbl{font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:#7585A8;padding:12px 12px 6px}
.nav-i{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:9px 12px;border-radius:10px;border:1px solid transparent;background:transparent;color:#B7C2DB;font-size:14px;font-weight:600;transition:.13s;white-space:nowrap}
.nav-i svg{width:18px;height:18px;flex-shrink:0;opacity:.9}
.nav-i:hover{background:color-mix(in srgb,var(--navy),white 8%);color:#fff}
.nav-i.on{background:var(--primary);color:#fff;box-shadow:0 8px 20px -10px var(--primary)}
.nav-i .ct{margin-left:auto;font-family:var(--mono);font-size:10px;font-weight:700;background:color-mix(in srgb,var(--navy),white 13%);color:#C9D2E8;min-width:20px;text-align:center;padding:2px 6px;border-radius:99px}
.nav-i.on .ct{background:rgba(255,255,255,.22);color:#fff}
.nav-i .ct.alert{background:var(--danger);color:#fff}
.side-agents{display:flex;flex-direction:column;gap:1px;padding:2px 0 4px}
.sa{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:7px 12px;border-radius:9px;background:transparent;color:#AEBAD5;font-size:13px;font-weight:600;transition:.12s}
.sa:hover{background:color-mix(in srgb,var(--navy),white 8%);color:#fff}
.sa.on{background:color-mix(in srgb,var(--navy),white 10%);color:#fff}
.sa .av{width:26px;height:26px;border-radius:50%;flex-shrink:0;background:color-mix(in srgb,var(--navy),white 14%);display:grid;place-items:center;font-size:11px;font-weight:800;color:#fff}
/* Photo du casting (DESIGN-5) : l'avatar porte une vraie photo en fond cadré ; l'initiale est absente.
   Vaut pour toutes les variantes (.av/.aha/.ba/.sa .av/.tw-core .av) sans toucher leur taille/forme. */
.av-photo{background-size:cover!important;background-position:center top!important;background-repeat:no-repeat!important;color:transparent!important;overflow:hidden}
.sa .nm{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sa .st{margin-left:auto;width:7px;height:7px;border-radius:50%;flex-shrink:0}
.st-live{background:var(--success);box-shadow:0 0 0 3px color-mix(in srgb,var(--success),transparent 78%)}
.st-essai{background:var(--accent-soft)}.st-valid{background:var(--warning)}.st-prep{background:#7585A8}.st-pause{background:#7585A8}
.side-foot{padding:10px 12px 14px;border-top:1px solid color-mix(in srgb,var(--navy),white 9%)}
.side-foot .trial-chip{display:block;padding:11px 13px;border-radius:var(--r);background:linear-gradient(180deg,color-mix(in srgb,var(--primary),transparent 86%),transparent);border:1px solid color-mix(in srgb,var(--accent-soft),transparent 66%)}
.trial-chip .tt{display:flex;align-items:center;justify-content:space-between}
.trial-chip .tt b{font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-soft)}
.trial-chip .tt span{font-size:12.5px;font-weight:700;color:#fff}
.trial-chip .bar{height:5px;border-radius:99px;background:color-mix(in srgb,var(--navy),white 13%);margin:8px 0 7px;overflow:hidden}
.trial-chip .bar i{display:block;height:100%;background:var(--accent-soft);border-radius:99px}
.trial-chip p{font-size:11.5px;color:#8E9CBC;line-height:1.4}
.trial-chip a{color:#fff;font-weight:700;text-decoration:underline;text-underline-offset:2px}
.side-acct{display:flex;align-items:center;gap:10px;margin-top:10px;padding:6px 4px 0}
.side-acct .ava{width:30px;height:30px;border-radius:50%;background:color-mix(in srgb,var(--navy),white 14%);display:grid;place-items:center;font-weight:700;font-size:12px;color:#fff}
.side-acct .ai{min-width:0;line-height:1.2}
.side-acct .ai b{display:block;font-size:12.5px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side-acct .ai span{font-size:11px;color:#8E9CBC}
.side-acct .gear{margin-left:auto;color:#8E9CBC;padding:6px;border-radius:8px}
.side-acct .gear:hover{color:#fff;background:color-mix(in srgb,var(--navy),white 9%)}
.main{min-width:0;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:35;height:var(--topbar);display:flex;align-items:center;gap:14px;padding:0 26px;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(14px) saturate(150%);-webkit-backdrop-filter:blur(14px) saturate(150%);border-bottom:1px solid var(--line)}
.topbar .crumb{display:flex;align-items:center;gap:9px;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.topbar .crumb b{color:var(--text)}.topbar .crumb svg{width:13px;height:13px;opacity:.6}
.tb-right{margin-left:auto;display:flex;align-items:center;gap:10px}
.tb-btn{width:36px;height:36px;border-radius:9px;border:1px solid var(--line);background:var(--surface);display:grid;place-items:center;color:var(--text-2);transition:.14s;position:relative}
.tb-btn:hover{color:var(--primary);border-color:var(--line-2)}
.tb-btn svg{width:18px;height:18px}
.tb-btn .dot{position:absolute;top:7px;right:8px;width:7px;height:7px;border-radius:50%;background:var(--danger);border:1.5px solid var(--surface)}
/* (badge « Synchronisé » retiré : faux signal statique, doctrine « jamais du vent ») */
/* SHELLBADGE — « à votre attention » persistant dans l'en-tête, sur TOUTES les pages du Bureau. Rendu
   UNIQUEMENT si compte > 0 (jamais un « 0 » permanent). Daltonien-safe : icône cloche + NOMBRE (la
   couleur sémantique --warning n'est qu'un renfort, jamais le seul signal). Hauteur calée sur .tb-btn. */
.shellbadge{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 11px 0 9px;border-radius:9px;
  border:1px solid color-mix(in srgb,var(--warning),transparent 55%);background:var(--warning-tint);
  color:var(--warning);font-weight:700;line-height:1;text-decoration:none;transition:.14s}
.shellbadge:hover{border-color:var(--warning);background:color-mix(in srgb,var(--warning-tint),var(--warning) 12%)}
.shellbadge:focus-visible{outline:2px solid var(--warning);outline-offset:2px}
.shellbadge svg{width:18px;height:18px;flex:none}
.shellbadge-n{font-size:13px;font-variant-numeric:tabular-nums}
@media (max-width:560px){.shellbadge{padding:0 9px 0 8px;gap:4px}}
.content{flex:1;padding:30px 34px 90px}
.content-in{max-width:1180px;margin:0 auto}
.content-in.narrow{max-width:760px}
.side-scrim{display:none}.menu-btn{display:grid}

/* ---------- page header + primitives (.lb) ---------- */
.lb .ph{display:flex;align-items:flex-end;gap:20px;margin-bottom:24px;flex-wrap:wrap}
.lb .ph .pt{min-width:0}
.lb .ph .eyebrow{display:block;margin-bottom:9px}
.lb .ph h1{font-family:var(--cond);font-weight:600;font-size:38px;text-transform:uppercase;letter-spacing:.006em;line-height:.98;color:var(--text)}
.lb .ph h1 .sub{color:var(--text-3)}
.lb .ph p.lede{font-size:15px;color:var(--text-2);margin-top:11px;max-width:62ch}
.lb .ph .ph-act{margin-left:auto;display:flex;align-items:center;gap:10px;flex-shrink:0}
.lb .btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:10px;font-size:14px;font-weight:700;padding:11px 18px;border:1px solid transparent;transition:.15s;white-space:nowrap;min-height:0}
.lb .btn svg{width:17px;height:17px}
.lb .btn.primary{background:var(--primary);color:#fff;box-shadow:0 12px 26px -14px var(--primary)}
.lb .btn.primary:hover{background:var(--primary-press);transform:translateY(-1px)}
.lb .btn.ghost{background:var(--surface);color:var(--text-2);border-color:var(--line-2)}
.lb .btn.ghost:hover{color:var(--primary);border-color:var(--primary)}
.lb .btn.dark{background:var(--navy);color:#fff}
.lb .btn.sm{padding:8px 13px;font-size:13px;border-radius:9px}
.lb .btn.block{width:100%}
.lb .card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card)}
.lb .card-pad{padding:var(--pad)}
.lb .tag{font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:4px 9px;border-radius:99px;white-space:nowrap;display:inline-flex;align-items:center;gap:5px;background:var(--surface-2);color:var(--text-2);border:1px solid var(--line)}
.lb .tag.accent{background:var(--primary-tint);color:var(--primary-text);border-color:transparent}
.lb .tag.ok{background:var(--success-tint);color:var(--success);border-color:transparent}
.lb .tag.warn{background:var(--warning-tint);color:var(--warning);border-color:transparent}
.lb .tag.bad{background:var(--danger-tint);color:var(--danger);border-color:transparent}
.lb .statepill{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:9.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:5px 10px;border-radius:99px;white-space:nowrap}
.lb .sp-live{background:var(--success-tint);color:var(--success)}.lb .sp-essai{background:var(--primary-tint);color:var(--primary-text)}
.lb .sp-valid{background:var(--warning-tint);color:var(--warning)}.lb .sp-prep{background:var(--surface-2);color:var(--text-3)}.lb .sp-pause{background:var(--surface-2);color:var(--text-2)}
.lb .statepill .d{width:6px;height:6px;border-radius:50%;background:currentColor}
.lb .sp-live .d{animation:lbblink 1.6s infinite}
@keyframes lbblink{50%{opacity:.3}}
.lb .block-h{display:flex;align-items:center;gap:11px;margin-bottom:14px}
.lb .block-h h2{font-family:var(--cond);font-weight:600;font-size:17px;text-transform:uppercase;letter-spacing:.04em;color:var(--text)}
.lb .block-h .line{flex:1;height:1px;background:var(--line)}
.lb .block-h .more{font-size:12.5px;font-weight:700;color:var(--primary);display:inline-flex;align-items:center;gap:5px;cursor:pointer}
.lb .block-h .more svg{width:14px;height:14px}

/* ---------- statebar ---------- */
.lb .statebar{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap);margin-bottom:var(--gap)}
.lb .statebar .stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px 18px;box-shadow:var(--shadow-1);position:relative;overflow:hidden}
.lb .statebar .sk{font-family:var(--mono);font-size:9.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-3);display:flex;align-items:center;gap:7px}
.lb .statebar .sk svg{width:14px;height:14px;color:var(--primary)}
.lb .statebar .sv{font-family:var(--cond);font-weight:700;font-size:36px;line-height:1;color:var(--text);margin:9px 0 3px}
.lb .statebar .sv small{font-family:var(--sans);font-size:14px;font-weight:600;color:var(--text-3)}
.lb .statebar .sd{font-size:12px;color:var(--text-2)}
.lb .statebar .sd b{color:var(--success);font-weight:700}.lb .statebar .sd b.warn{color:var(--warning)}
.lb .statebar .stat.accent{background:linear-gradient(160deg,var(--primary),var(--primary-press));border-color:transparent}
.lb .statebar .stat.accent .sk,.lb .statebar .stat.accent .sd{color:rgba(255,255,255,.85)}
.lb .statebar .stat.accent .sk svg,.lb .statebar .stat.accent .sv,.lb .statebar .stat.accent .sd b{color:#fff}
.lb .statebar .stat.accent .sv small{color:rgba(255,255,255,.7)}
.lb .spark{position:absolute;right:14px;bottom:12px;display:flex;align-items:flex-end;gap:2.5px;height:28px}
.lb .spark i{width:4px;border-radius:2px;background:var(--primary-tint)}
.lb .statebar .stat.accent .spark i{background:rgba(255,255,255,.3)}

/* ---------- dashboard grid + digest ---------- */
.lb .dash{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:var(--gap);align-items:start}
.lb .dash-main{display:flex;flex-direction:column;gap:var(--gap);min-width:0}
.lb .dash-side{display:flex;flex-direction:column;gap:var(--gap);position:sticky;top:calc(var(--topbar) + 22px)}
.lb .digest{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card);overflow:hidden}
.lb .digest-h{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line)}
.lb .digest-h .ic{width:34px;height:34px;border-radius:9px;background:var(--primary-tint);color:var(--primary-text);display:grid;place-items:center}
.lb .digest-h .ic svg{width:18px;height:18px}
.lb .digest-h h2{font-family:var(--cond);font-weight:700;font-size:18px;text-transform:uppercase;letter-spacing:.02em;color:var(--text)}
.lb .digest-h p{font-size:12px;color:var(--text-2)}
.lb .digest-h .n{margin-left:auto}
.lb .decision{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 20px;border-bottom:1px solid var(--line);transition:.12s;text-align:left;width:100%;background:transparent;border-left:3px solid transparent}
.lb .decision:last-child{border-bottom:0}
.lb .decision:hover{background:var(--surface-2);border-left-color:var(--primary)}
.lb .decision .who{width:38px;height:38px;border-radius:50%;background:var(--primary-tint);color:var(--primary-text);display:grid;place-items:center;font-weight:800;font-size:14px}
.lb .decision .who.sys svg{width:18px;height:18px}
.lb .decision .dx{min-width:0;display:flex;flex-direction:column;gap:2px}
.lb .decision .dx .dt{font-size:14px;font-weight:700;color:var(--text);line-height:1.3}
.lb .decision .dx .dt .nm{color:var(--primary)}
.lb .decision .dx .dd{font-size:12.5px;color:var(--text-2)}
.lb .decision .dx .dd .when{font-family:var(--mono);font-size:10.5px;color:var(--text-3)}
.lb .decision .go{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--primary);flex-shrink:0;padding:7px 12px;border-radius:8px;border:1px solid var(--line);background:var(--surface)}
.lb .decision:hover .go{border-color:var(--primary)}
.lb .decision .go svg{width:14px;height:14px}
.lb .decision.urgent .who{box-shadow:0 0 0 2px var(--danger)}.lb .decision.urgent .go{color:var(--danger)}
.lb .digest-empty{padding:26px 20px;text-align:center;color:var(--text-2);font-size:13px}
.lb .digest-empty .c{width:42px;height:42px;border-radius:50%;background:var(--success-tint);color:var(--success);display:grid;place-items:center;margin:0 auto 12px}

/* ---------- agent cards ---------- */
.lb .agents-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--gap)}
.lb .agent-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card);overflow:hidden;display:flex;flex-direction:column;transition:.16s;position:relative;text-align:left;cursor:pointer}
.lb .agent-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-pop);border-color:var(--line-2)}
.lb .agent-card .strip{height:3px;background:var(--primary)}
.lb .agent-card.s-essai .strip{background:var(--accent-soft)}.lb .agent-card.s-valid .strip{background:var(--warning)}.lb .agent-card.s-prep .strip{background:var(--line-2)}.lb .agent-card.s-pause .strip{background:var(--text-3)}
.lb .agent-card .ac-top{display:flex;align-items:flex-start;gap:13px;padding:16px 18px 13px;flex-wrap:wrap}
.lb .agent-card .ac-av{width:46px;height:46px;border-radius:50%;flex-shrink:0;background:linear-gradient(135deg,var(--primary),var(--primary-press));color:#fff;display:grid;place-items:center;font-weight:800;font-size:18px}
.lb .agent-card .ac-id{min-width:0;flex:1 1 110px}
.lb .agent-card .ac-id b{display:block;font-size:16.5px;font-weight:800;color:var(--text);line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lb .agent-card .ac-id .role{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);margin-top:3px}
.lb .agent-card .ac-body{padding:0 18px 14px;flex:1}
.lb .agent-card .ac-phrase{font-size:13px;font-style:italic;color:var(--text-2);line-height:1.45;border-left:2px solid var(--accent-soft);padding-left:11px;margin-bottom:13px}
.lb .agent-card .ac-stats{display:flex;gap:8px;flex-wrap:wrap}
.lb .agent-card .ac-stat{background:var(--surface-2);border:1px solid var(--line);border-radius:9px;padding:8px 11px;flex:1;min-width:0}
.lb .agent-card .ac-stat .v{font-family:var(--cond);font-weight:700;font-size:20px;color:var(--text);line-height:1}
.lb .agent-card .ac-stat .l{font-family:var(--mono);font-size:8.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);margin-top:4px}
.lb .agent-card .ac-foot{display:flex;align-items:center;gap:10px;padding:12px 18px;border-top:1px solid var(--line);background:var(--surface-2);margin-top:auto}
.lb .agent-card .ac-foot .micro{font-size:12px;color:var(--text-2);display:inline-flex;align-items:center;gap:6px}
.lb .agent-card .ac-foot .micro svg{width:13px;height:13px;color:var(--primary)}
.lb .agent-card .ac-foot .open{margin-left:auto;color:var(--primary);display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:700}
.lb .agent-card .ac-foot .open svg{width:15px;height:15px}
.lb .agent-card.hire{border-style:dashed;border-color:var(--line-2);background:transparent;box-shadow:none;align-items:center;justify-content:center;text-align:center;padding:26px;min-height:180px}
.lb .agent-card.hire:hover{border-color:var(--primary);background:var(--primary-tint)}
.lb .agent-card.hire .plus{width:48px;height:48px;border-radius:50%;background:var(--primary-tint);color:var(--primary-text);display:grid;place-items:center;margin-bottom:14px}
.lb .agent-card.hire:hover .plus{background:var(--primary);color:#fff}
.lb .agent-card.hire .plus svg{width:24px;height:24px}
.lb .agent-card.hire b{font-family:var(--cond);font-weight:700;font-size:20px;text-transform:uppercase;color:var(--text)}
.lb .agent-card.hire p{font-size:12.5px;color:var(--text-2);margin-top:6px;max-width:28ch}

/* ---------- pillars ---------- */
.lb .pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap)}
.lb .pillars .pillar{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:18px;transition:.15s;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:12px}
.lb .pillars .pillar:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:var(--shadow-pop)}
.lb .pillars .pillar .ph-top{display:flex;align-items:center;gap:11px}
.lb .pillars .pillar .ic{width:36px;height:36px;border-radius:10px;background:var(--primary-tint);color:var(--primary-text);display:grid;place-items:center}
.lb .pillars .pillar .ic svg{width:19px;height:19px}
.lb .pillars .pillar h3{font-family:var(--cond);font-weight:700;font-size:17px;text-transform:uppercase;letter-spacing:.02em;color:var(--text)}
.lb .pillars .pillar .big{font-family:var(--cond);font-weight:700;font-size:30px;line-height:1;color:var(--text)}
.lb .pillars .pillar .big small{font-family:var(--sans);font-size:13px;font-weight:600;color:var(--text-3)}
.lb .pillars .pillar p{font-size:12.5px;color:var(--text-2);line-height:1.45}
.lb .pillars .pillar .ar{margin-top:auto;display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--primary)}
.lb .pillars .pillar .ar svg{width:14px;height:14px}

/* ---------- narrative + timeline + roster (fusion « Salle ») ---------- */
.lb .narr{background:linear-gradient(165deg,var(--navy),var(--navy-2));color:#fff;border-radius:var(--r-lg);padding:24px 26px;position:relative;overflow:hidden;box-shadow:var(--shadow-pop)}
.lb .narr .eyebrow{color:var(--accent-soft)}
.lb .narr .nh{font-family:var(--cond);font-weight:600;font-size:27px;line-height:1.14;margin:12px 0;color:#fff}
.lb .narr .nh b{color:var(--accent-soft);font-weight:700}
.lb .narr .nh .u{text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--accent-soft),transparent 50%);text-underline-offset:4px}
.lb .narr .nmeta{display:flex;gap:26px;margin-top:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,.12);flex-wrap:wrap}
.lb .narr .nmeta .m b{font-family:var(--cond);font-weight:700;font-size:24px;color:#fff;display:block;line-height:1}
.lb .narr .nmeta .m span{font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:#9AA8C6}
.lb .timeline{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:4px 0}
.lb .tl-h{padding:16px 20px 12px;display:flex;align-items:center;gap:10px}
.lb .tl-h svg{color:var(--primary)}
.lb .tl-h h2{font-family:var(--cond);font-weight:700;font-size:17px;text-transform:uppercase;letter-spacing:.02em}
.lb .tl-item{display:grid;grid-template-columns:56px 1fr;gap:12px;padding:0 20px}
.lb .tl-item .tw{font-family:var(--mono);font-size:10.5px;font-weight:700;color:var(--text-3);padding-top:14px;text-align:right}
.lb .tl-item .tc{padding:13px 0;border-bottom:1px solid var(--line);position:relative;padding-left:22px}
.lb .tl-item:last-child .tc{border-bottom:0}
.lb .tl-item .tc::before{content:"";position:absolute;left:0;top:18px;width:9px;height:9px;border-radius:50%;background:var(--primary);box-shadow:0 0 0 4px var(--primary-tint)}
.lb .tl-item.dot-ok .tc::before{background:var(--success);box-shadow:0 0 0 4px var(--success-tint)}
.lb .tl-item.dot-warn .tc::before{background:var(--warning);box-shadow:0 0 0 4px var(--warning-tint)}
.lb .tl-item .tc::after{content:"";position:absolute;left:4px;top:26px;bottom:-8px;width:1px;background:var(--line)}
.lb .tl-item:last-child .tc::after{display:none}
.lb .tl-item .tl-t{font-size:13.5px;color:var(--text)}
.lb .tl-item .tl-t .nm{color:var(--primary);font-weight:700}
.lb .tl-item .tl-sub{font-size:12px;color:var(--text-2);margin-top:2px}
.lb .roster{display:flex;flex-direction:column;gap:10px}
.lb .roster-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-1);padding:13px 15px;display:flex;align-items:center;gap:13px;cursor:pointer;transition:.14s;width:100%;text-align:left}
.lb .roster-card:hover{border-color:var(--primary);transform:translateX(2px)}
.lb .roster-card .rava{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-press));color:#fff;display:grid;place-items:center;font-weight:800;position:relative;flex-shrink:0}
.lb .roster-card .rava .pin{position:absolute;bottom:-1px;right:-1px;width:13px;height:13px;border-radius:50%;border:2px solid var(--surface)}
.lb .roster-card .ri{min-width:0;flex:1}
.lb .roster-card .ri b{font-size:14.5px;font-weight:800;color:var(--text);display:block;line-height:1.1}
.lb .roster-card .ri span{font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-3)}
.lb .roster-card .rstat{text-align:right}
.lb .roster-card .rstat .v{font-family:var(--cond);font-weight:700;font-size:19px;color:var(--text);line-height:1}
.lb .roster-card .rstat .l{font-family:var(--mono);font-size:8.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--text-3)}

/* ---------- Enora widget (repliable) ---------- */
.enora-fab{position:fixed;bottom:22px;right:22px;z-index:60;display:flex;align-items:center;gap:11px;padding:10px 16px 10px 11px;background:var(--navy);color:#fff;border:1px solid color-mix(in srgb,var(--navy),white 14%);border-radius:99px;box-shadow:var(--shadow-pop);transition:.16s}
.enora-fab:hover{transform:translateY(-2px)}
.enora-fab .lbl{line-height:1.15;text-align:left}
.enora-fab .lbl b{font-size:13.5px;font-weight:700;display:block}
.enora-fab .lbl span{font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-soft)}
.enora-fab .pingdot{position:absolute;top:6px;right:14px;width:9px;height:9px;border-radius:50%;background:var(--success);border:2px solid var(--navy)}
.enora-panel{position:fixed;bottom:22px;right:22px;z-index:61;width:360px;max-width:calc(100vw - 32px);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-pop);display:flex;flex-direction:column;overflow:hidden;max-height:min(560px,calc(100vh - 44px));animation:lbepop .22s cubic-bezier(.2,.8,.3,1)}
@keyframes lbepop{from{opacity:0;transform:translateY(12px) scale(.98)}}
.enora-head{display:flex;align-items:center;gap:11px;padding:14px 16px;background:linear-gradient(165deg,var(--navy),var(--navy-2));color:#fff}
.enora-head .ei{line-height:1.2}.enora-head .ei b{font-size:14px;font-weight:700}
.enora-head .ei span{font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-soft);display:block}
.enora-head .x{margin-left:auto;color:#9AA8C6;padding:6px;border-radius:8px}
.enora-head .x:hover{color:#fff;background:rgba(255,255,255,.1)}
.enora-msgs{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}
.enora-msg .eb{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;border-top-left-radius:4px;padding:11px 13px;font-size:13px;line-height:1.5;color:var(--text)}
.enora-msg .eb b{color:var(--primary);font-weight:700}
.enora-sugg{display:flex;flex-direction:column;gap:7px;padding:0 16px 12px}
.enora-sugg a,.enora-sugg button{text-align:left;font-size:12.5px;font-weight:600;color:var(--primary);background:var(--primary-tint);border:1px solid var(--primary-tint);border-radius:9px;padding:9px 12px;transition:.12s;display:flex;align-items:center;gap:8px;cursor:pointer}
.enora-sugg a:hover,.enora-sugg button:hover{filter:brightness(.97)}
.enora-sugg svg{width:14px;height:14px;flex-shrink:0}
.enora-input{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--line)}
.enora-input input{flex:1;border:1px solid var(--line-2);border-radius:10px;padding:10px 12px;font-size:13px;background:var(--surface);color:var(--text)}
.enora-input input:focus{outline:none;border-color:var(--primary);box-shadow:var(--ring)}
.enora-input .send{width:40px;flex-shrink:0;background:var(--primary);color:#fff;border-radius:10px;display:grid;place-items:center}
.enora-input .send svg{width:17px;height:17px}
.enora-av{display:inline-grid;place-items:center;border-radius:50%;flex-shrink:0;background:linear-gradient(150deg,var(--accent-soft),var(--primary))}
.enora-av .ew{display:flex;align-items:center;gap:2.5px;height:40%}
.enora-av .ew i{width:2.5px;border-radius:99px;background:rgba(255,255,255,.92);height:30%;animation:lbewave 1.1s ease-in-out infinite}
.enora-av .ew i:nth-child(2){animation-delay:.12s}.enora-av .ew i:nth-child(3){animation-delay:.24s}.enora-av .ew i:nth-child(4){animation-delay:.36s}.enora-av .ew i:nth-child(5){animation-delay:.48s}
@keyframes lbewave{0%,100%{height:28%}50%{height:92%}}

/* ---------- responsive shell ---------- */
@media (max-width:1140px){.lb .dash{grid-template-columns:1fr}.lb .dash-side{position:static}}
@media (max-width:980px){
  .shell{grid-template-columns:1fr}
  .side{position:fixed;left:0;top:0;bottom:0;width:280px;transform:translateX(-100%);transition:transform .25s}
  .side.open{transform:translateX(0)}
  .menu-btn{display:grid}
  .side-scrim.show{display:block;position:fixed;inset:0;background:var(--scrim);z-index:39}
  .lb .statebar{grid-template-columns:repeat(2,1fr)}.lb .pillars{grid-template-columns:1fr}.lb .agents-grid{grid-template-columns:1fr}
}
@media print{.side,.topbar,.enora-fab,.enora-panel{display:none!important}.shell{grid-template-columns:1fr}.content{padding:0}}

/* ---------- composants de page (.lb) : détail agent · tabs · table · docs · thread · réglages · banc · embauche · bilan ---------- */
.lb .backlink{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--text-2);margin-bottom:14px}
.lb .backlink:hover{color:var(--primary)}
.lb .lede{font-size:15px;color:var(--text-2);line-height:1.55;max-width:64ch}
.lb .foot{margin-top:24px;font-size:12.5px;color:var(--text-3);line-height:1.6}
.lb .foot a{color:var(--primary);font-weight:600}
.lb .status{font-size:13px;margin-top:12px;line-height:1.5}
.lb .status:empty{display:none}.lb .status.ok{color:var(--success)}.lb .status.err{color:var(--danger)}
.lb .empty{padding:28px 16px;text-align:center;color:var(--text-3);font-size:13.5px;line-height:1.5;border:1px dashed var(--line-2);border-radius:var(--r)}
.lb .btnrow{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
/* agent detail */
.lb .agent-hero{display:flex;align-items:center;gap:18px;margin-bottom:8px}
.lb .agent-hero .aha{width:68px;height:68px;border-radius:50%;flex-shrink:0;background:linear-gradient(135deg,var(--primary),var(--primary-press));color:#fff;display:grid;place-items:center;font-weight:800;font-size:26px}
.lb .agent-hero .ahi{min-width:0}
.lb .agent-hero .ahi h1{font-family:var(--cond);font-weight:700;font-size:34px;line-height:1;color:var(--text);display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.lb .agent-hero .ahi .role{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);margin-top:8px;display:flex;align-items:center;gap:10px}
.lb .agent-hero .ahi .role b{color:var(--text-2)}
.lb .agent-hero .ah-act{margin-left:auto;display:flex;gap:10px;flex-shrink:0}
.lb .validate-banner{display:flex;align-items:center;gap:15px;background:linear-gradient(120deg,var(--warning-tint),transparent);border:1px solid color-mix(in srgb,var(--warning),transparent 60%);border-radius:var(--r-lg);padding:16px 20px;margin-bottom:22px}
.lb .validate-banner .vb-ic{width:40px;height:40px;border-radius:10px;background:var(--warning);color:#fff;display:grid;place-items:center;flex-shrink:0}
.lb .validate-banner .vb-t b{font-size:15px;font-weight:700;color:var(--text);display:block}
.lb .validate-banner .vb-t span{font-size:13px;color:var(--text-2)}
.lb .validate-banner .btn{margin-left:auto;flex-shrink:0}
.lb .detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--gap);align-items:start}
.lb .detail-side{position:sticky;top:calc(var(--topbar) + 20px);display:flex;flex-direction:column;gap:var(--gap)}
.lb .call{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-1);padding:15px 17px;margin-bottom:12px}
.lb .call-h{display:flex;align-items:center;gap:11px;margin-bottom:10px}
.lb .call-h .ci{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;flex-shrink:0}
.lb .call-h .ci.in{background:var(--primary-tint);color:var(--primary-text)}.lb .call-h .ci.esc{background:var(--warning-tint);color:var(--warning)}
.lb .call-h .ct{min-width:0;flex:1}
.lb .call-h .ct b{font-size:14px;font-weight:700;color:var(--text)}
.lb .call-h .ct span{display:block;font-family:var(--mono);font-size:10.5px;color:var(--text-3)}
.lb .call-recap{display:flex;flex-wrap:wrap;gap:7px}
.lb .call-recap .rc{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--text-2);background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:5px 10px}
.lb .call-recap .rc svg{width:13px;height:13px;color:var(--success)}
.lb .call-recap .rc.blue{background:var(--primary-tint);color:var(--primary-text);border-color:transparent}
/* fiche / spec */
.lb .spec{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card);overflow:hidden;margin-bottom:var(--gap)}
.lb .spec-h{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line)}
.lb .spec-h h3{font-family:var(--cond);font-weight:700;font-size:15px;text-transform:uppercase;letter-spacing:.02em}
.lb .spec-h .edit{margin-left:auto;font-size:12px;font-weight:700;color:var(--primary);display:inline-flex;align-items:center;gap:5px}
.lb .spec-row{display:grid;grid-template-columns:120px 1fr;gap:14px;padding:12px 18px;border-bottom:1px solid var(--line);align-items:baseline}
.lb .spec-row:last-child{border-bottom:0}
.lb .spec-row dt{font-family:var(--mono);font-size:9.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-3)}
.lb .spec-row dd{font-size:14px;font-weight:600;color:var(--text)}
.lb .spec-row dd .pill{display:inline-block;font-family:var(--mono);font-size:10px;font-weight:700;background:var(--primary-tint);color:var(--primary-text);padding:2px 8px;border-radius:5px;margin:2px 4px 2px 0}
.lb .spec-body{padding:16px 18px;font-size:14px;line-height:1.6;color:var(--text)}
.lb .spec-body.quote{font-style:italic;background:var(--accent-mist);border-left:2px solid var(--accent-soft)}
.lb .interdit{display:flex;align-items:flex-start;gap:11px;padding:11px 18px;border-bottom:1px solid var(--line)}
.lb .interdit:last-child{border-bottom:0}
.lb .interdit .ck{width:20px;height:20px;border-radius:6px;flex-shrink:0;display:grid;place-items:center}
.lb .interdit.on .ck{background:var(--primary);color:#fff}.lb .interdit.off .ck{background:var(--surface-2);color:var(--text-3);border:1px solid var(--line)}
.lb .interdit .it b{font-size:13.5px;font-weight:700;color:var(--text);display:block}
.lb .interdit .it span{font-size:12.5px;color:var(--text-2)}
/* carnet : le registre signé est rendu via le système .tl-* (timeline) — voir page_carnet.
   L'ancien composant .carnet-e de la maquette a été retiré (jamais émis, code mort). */
.lb .minifiche{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card);overflow:hidden}
.lb .minifiche-top{padding:16px 18px;background:linear-gradient(180deg,var(--accent-mist),transparent);border-bottom:1px solid var(--line)}
.lb .minifiche .progress-lbl{display:flex;justify-content:space-between;font-size:12px;font-weight:700;color:var(--text-2);padding:14px 18px 7px}
.lb .minifiche .progress-lbl span:last-child{font-family:var(--mono);color:var(--primary)}
.lb .minifiche .pbar{height:6px;border-radius:99px;background:var(--primary-tint);margin:0 18px 16px;overflow:hidden}
.lb .minifiche .pbar i{display:block;height:100%;background:var(--primary);border-radius:99px}
/* tabs */
.lb .tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:22px;flex-wrap:wrap}
.lb .tab{padding:11px 16px;font-size:14px;font-weight:700;color:var(--text-2);border-bottom:2px solid transparent;margin-bottom:-1px;transition:.14s;display:inline-flex;align-items:center;gap:8px}
.lb .tab:hover{color:var(--primary)}.lb .tab.on{color:var(--primary);border-bottom-color:var(--primary)}
.lb .tab .ct{font-family:var(--mono);font-size:10px;font-weight:700;background:var(--surface-2);padding:1px 7px;border-radius:99px;color:var(--text-2)}
/* table (livrables) */
.lb .tbl-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card);overflow:hidden}
.lb .tbl-tools{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.lb .chipset{display:flex;gap:7px;flex-wrap:wrap}
.lb .chip{font-size:12.5px;font-weight:700;color:var(--text-2);background:var(--surface-2);border:1px solid var(--line);border-radius:99px;padding:6px 13px}
.lb .chip.on{background:var(--primary);color:#fff;border-color:transparent}
.lb table.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.lb table.tbl th{font-family:var(--mono);font-size:9.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);text-align:left;padding:11px 18px;border-bottom:1px solid var(--line);background:var(--surface-2);white-space:nowrap}
.lb table.tbl td{padding:13px 18px;border-bottom:1px solid var(--line);color:var(--text);vertical-align:middle}
.lb table.tbl tr:last-child td{border-bottom:0}
.lb table.tbl tbody tr:hover{background:var(--surface-2)}
.lb table.tbl td .ttl{font-weight:700}.lb table.tbl td .desc{color:var(--text-2);font-size:12.5px}
.lb table.tbl td.right{text-align:right}
.lb table.tbl td .when{font-family:var(--mono);font-size:11.5px;color:var(--text-3);white-space:nowrap}
.lb .linkic{display:inline-flex;align-items:center;gap:5px;color:var(--primary);font-weight:700;font-size:12.5px}
.lb .linkic svg{width:14px;height:14px}
/* docs (référentiel) */
.lb .dropzone{border:1.5px dashed var(--line-2);border-radius:var(--r-lg);padding:24px;text-align:center;background:var(--surface);transition:.15s;margin-bottom:var(--gap)}
.lb .dropzone:hover{border-color:var(--primary);background:var(--accent-mist)}
.lb .dropzone .ic{width:46px;height:46px;border-radius:12px;background:var(--primary-tint);color:var(--primary-text);display:grid;place-items:center;margin:0 auto 12px}
.lb .dropzone b{font-size:15px;font-weight:700;color:var(--text)}
.lb .dropzone p{font-size:12.5px;color:var(--text-2);margin-top:4px}
.lb .doc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap)}
.lb .doc{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-1);padding:15px;display:flex;flex-direction:column;gap:10px}
.lb .doc:hover{border-color:var(--line-2);box-shadow:var(--shadow-card)}
.lb .doc .dtop{display:flex;align-items:flex-start;gap:11px}
.lb .doc .dfile{width:38px;height:44px;border-radius:6px;flex-shrink:0;display:grid;place-items:center;font-family:var(--mono);font-size:8px;font-weight:700;color:#fff}
.lb .doc .dfile.pdf{background:var(--danger)}.lb .doc .dfile.doc{background:var(--primary)}.lb .doc .dfile.txt{background:var(--text-3)}
.lb .doc .dmeta{min-width:0;flex:1}
.lb .doc .dmeta b{display:block;font-size:13.5px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lb .doc .dmeta span{font-family:var(--mono);font-size:10px;color:var(--text-3)}
.lb .doc .duse{font-size:12px;color:var(--text-2);border-top:1px solid var(--line);padding-top:9px;display:flex;align-items:center;gap:7px}
/* thread (référent) */
.lb .thread{display:flex;flex-direction:column;gap:12px}
.lb .req{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card);overflow:hidden}
.lb .req-h{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line)}
.lb .req-h .rt{font-size:14.5px;font-weight:700;color:var(--text)}
.lb .req-h .when{margin-left:auto;font-family:var(--mono);font-size:10.5px;color:var(--text-3)}
.lb .req-body{padding:14px 18px}
.lb .msg{display:flex;gap:11px;padding:9px 0}
.lb .msg .mav{width:30px;height:30px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-family:var(--mono);font-size:9px;font-weight:700}
.lb .msg.you .mav{background:var(--surface-2);color:var(--text-2)}.lb .msg.ref .mav{background:var(--primary);color:#fff}
.lb .msg .mb{background:var(--surface-2);border:1px solid var(--line);border-radius:11px;padding:10px 13px;font-size:13px;color:var(--text);line-height:1.5}
.lb .msg.ref .mb{background:var(--accent-mist);border-color:transparent}
.lb .msg .mn{font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-3);margin-bottom:4px}
/* réglages */
.lb .set-grid{display:grid;grid-template-columns:220px minmax(0,1fr);gap:var(--gap);align-items:start}
.lb .set-nav{display:flex;flex-direction:column;gap:2px;position:sticky;top:calc(var(--topbar) + 20px)}
.lb .set-nav a{padding:10px 13px;border-radius:9px;font-size:13.5px;font-weight:600;color:var(--text-2);display:flex;align-items:center;gap:10px}
.lb .set-nav a:hover{background:var(--surface)}.lb .set-nav a.on{background:var(--surface);color:var(--primary);box-shadow:var(--shadow-1)}
.lb .set-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:var(--pad);margin-bottom:var(--gap)}
.lb .set-card h3{font-family:var(--cond);font-weight:700;font-size:17px;text-transform:uppercase;letter-spacing:.02em;margin-bottom:6px}
.lb .set-card>p{font-size:13px;color:var(--text-2);margin-bottom:16px;max-width:60ch}
.lb .set-card.danger{border-color:color-mix(in srgb,var(--danger),transparent 60%)}
.lb .field{margin-bottom:18px}
.lb .field>label{display:flex;align-items:baseline;gap:8px;margin-bottom:7px;font-size:13px;font-weight:700;color:var(--text)}
.lb .field label .hint{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3)}
.lb .in,.lb .ta,.lb .sel,.lb .field input:not([type=checkbox]):not([type=radio]),.lb .field textarea,.lb .field select{width:100%;border:1px solid var(--line-2);border-radius:10px;background:var(--surface);color:var(--text);font-size:14.5px;font-weight:500;padding:11px 13px;transition:.15s;font-family:inherit}
.lb .in:focus,.lb .ta:focus,.lb .sel:focus,.lb .field input:not([type=checkbox]):not([type=radio]):focus,.lb .field textarea:focus{outline:none;border-color:var(--primary);box-shadow:var(--ring)}
.lb .ta,.lb .field textarea{resize:vertical;min-height:90px;line-height:1.55}
/* Champ en lecture seule (UX-6 : le poste vient du catalogue, plus de dropdown vestige). */
.lb .ro-field{width:100%;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);color:var(--text-2);font-size:14.5px;font-weight:600;padding:11px 13px}
.lb .row-2{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.lb .tog-list{border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.lb .tog{display:flex;align-items:center;gap:13px;padding:13px 15px;border-top:1px solid var(--line);background:var(--surface);width:100%;text-align:left}
.lb .tog:first-child{border-top:0}.lb .tog:hover{background:var(--surface-2)}
.lb .tog .sw{width:38px;height:22px;border-radius:99px;background:var(--line-2);position:relative;flex-shrink:0;transition:.18s}
.lb .tog .sw i{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:.18s}
.lb .tog.on .sw{background:var(--primary)}.lb .tog.on .sw i{transform:translateX(16px)}
.lb .tog .tt{font-size:13.5px;font-weight:600;color:var(--text)}
.lb .tog .tt small{display:block;font-size:12px;font-weight:500;color:var(--text-2)}
.lb .tog .tg-right{margin-left:auto}
/* banc d'essai */
.lb .bench{background:linear-gradient(165deg,var(--navy),var(--navy-2));color:#fff;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-pop)}
.lb .bench-head{display:flex;align-items:center;gap:14px;padding:18px 22px;border-bottom:1px solid rgba(173,189,211,.16)}
.lb .bench-head .ba{width:46px;height:46px;border-radius:12px;flex-shrink:0;background:#1a2c44;color:#fff;display:grid;place-items:center;font-weight:800}
.lb .bench-head .bi b{font-size:16px;font-weight:800;display:block}
.lb .bench-head .bi span{font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-soft)}
.lb .bench-head .sim{margin-left:auto;font-family:var(--mono);font-size:9.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#ADBDD3;border:1px solid rgba(173,189,211,.3);padding:5px 10px;border-radius:99px}
.lb .bench-stage{padding:22px;min-height:240px;display:flex;flex-direction:column}
.lb .bench-idle{text-align:center;margin:auto 0}
.lb .bench-idle .orb{width:80px;height:80px;border-radius:50%;margin:0 auto 18px;background:radial-gradient(circle at 50% 40%,var(--accent-soft),var(--primary) 65%);display:grid;place-items:center}
.lb .bench-idle .orb svg{width:32px;height:32px;color:#fff}
.lb .bench-idle h3{font-size:19px;font-weight:800;margin-bottom:8px}
.lb .bench-idle p{font-size:13.5px;color:#ADBDD3;max-width:40ch;margin:0 auto 20px;line-height:1.55}
.lb .bench-call{display:inline-flex;align-items:center;gap:10px;background:var(--primary);color:#fff;border-radius:12px;font-size:15px;font-weight:700;padding:14px 28px;box-shadow:0 14px 30px -12px var(--primary)}
.lb .bench-call.hangup{background:var(--danger);box-shadow:none}
.lb .bench-compose{display:flex;gap:8px;padding:14px 22px;border-top:1px solid rgba(173,189,211,.16)}
.lb .bench-compose input{flex:1;background:rgba(255,255,255,.06);border:1px solid rgba(173,189,211,.2);border-radius:10px;padding:11px 14px;color:#fff;font-size:13.5px}
.lb .bench-compose input::placeholder{color:#7E93AE}
.lb .bench-compose .s{width:42px;flex-shrink:0;background:var(--primary);color:#fff;border-radius:10px;display:grid;place-items:center}
.lb .transcript{display:flex;flex-direction:column;gap:9px;max-height:320px;overflow-y:auto;padding-right:4px}
.lb .t-line{display:flex;gap:9px;align-items:flex-start;max-width:92%}
.lb .t-line.agent{align-self:flex-start}.lb .t-line.client{align-self:flex-end;flex-direction:row-reverse}
.lb .t-line .bub{padding:10px 13px;border-radius:12px;font-size:13.5px;line-height:1.5}
.lb .t-line.agent .bub{background:rgba(111,120,232,.16);border:1px solid rgba(111,120,232,.28);color:#EAEDFB}
.lb .t-line.client .bub{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:#D8DEEC}
/* embauche (wizard) */
.lb .poste-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}
.lb .poste{text-align:left;border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);padding:16px;transition:.14s;cursor:pointer;display:block}
.lb .poste:hover{border-color:var(--accent-soft);transform:translateY(-2px);box-shadow:var(--shadow-card)}
.lb .poste.on{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary),var(--shadow-card)}
.lb .poste .pu{font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}
.lb .poste .pn{display:block;font-size:16px;font-weight:800;color:var(--text);margin:9px 0 5px}
.lb .poste .pd{font-size:12.5px;color:var(--text-2);line-height:1.45}
.lb .launch-card{background:linear-gradient(180deg,var(--navy),var(--navy-2));color:#fff;border-radius:var(--r-lg);padding:24px;box-shadow:var(--shadow-pop)}
.lb .launch-card .free{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:rgba(74,222,128,.18);color:#4ADE80;padding:5px 11px;border-radius:99px;display:inline-block;margin-bottom:12px}
.lb .launch-card h3{font-family:var(--cond);font-weight:700;font-size:24px;text-transform:uppercase;margin-bottom:10px}
.lb .launch-card p{font-size:14px;color:#ADBDD3;line-height:1.55;margin-bottom:18px}
/* bilan imprimable */
.lb .print-doc{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:38px 40px;max-width:840px}
.lb .print-doc .pd-h{display:flex;align-items:flex-start;justify-content:space-between;border-bottom:2px solid var(--text);padding-bottom:18px;margin-bottom:22px}
.lb .print-doc .pd-h h1{font-family:var(--cond);font-weight:700;font-size:30px;text-transform:uppercase;color:var(--text)}
.lb .bilan-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:22px 0}
.lb .bilan-metrics .bm{border:1px solid var(--line);border-radius:var(--r);padding:14px}
.lb .bilan-metrics .bm .v{font-family:var(--cond);font-weight:700;font-size:28px;color:var(--text);line-height:1}
.lb .bilan-metrics .bm .l{font-size:11.5px;color:var(--text-2);margin-top:5px}
.lb .bilan-row{display:flex;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);font-size:13.5px;align-items:baseline}
.lb .bilan-row .bl{font-weight:700;color:var(--text);flex:0 0 220px}.lb .bilan-row .bv{color:var(--text-2)}
@media (max-width:1000px){.lb .detail-grid,.lb .set-grid{grid-template-columns:1fr}.lb .detail-side,.lb .set-nav{position:static}}
@media (max-width:900px){.lb .doc-grid,.lb .poste-grid{grid-template-columns:repeat(2,1fr)}}

/* ============================================================
   RAFFINEMENTS DIRECTION-D — revue components.css (2026-06-15)
   Additif (surcharge par ordre source). Cf. _Hub/Briefing/BACKLOG-BUREAU-RAFFINEMENTS.
   ============================================================ */
/* Coquille (SH-1/3/4) — sidebar FLOTTANTE (panneau détaché : marge, radius, ombre) */
.side{top:14px;height:calc(100vh - 28px);margin:14px;border-radius:var(--r-lg);border:1px solid color-mix(in srgb,var(--navy),white 9%);box-shadow:0 20px 46px -20px rgba(15,29,48,.6);overflow-y:auto;scrollbar-width:thin}
.mode-toggle{display:inline-flex;gap:4px;background:var(--surface-2,rgba(128,128,128,.07));border:1px solid var(--line);border-radius:13px;padding:5px;margin-bottom:var(--gap)}
.mode-toggle .mt-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:9px;font-size:14px;font-weight:700;color:var(--text-2);cursor:pointer;transition:.14s;border:none;background:none}
.mode-toggle .mt-btn.on{background:var(--primary);color:#fff;box-shadow:var(--shadow-card)}
.mode-toggle .mt-btn:not(.on):hover{color:var(--text);background:color-mix(in srgb,var(--primary),transparent 92%)}
@media (max-width:640px){.side{margin:8px;height:calc(100vh - 16px);top:8px}.mode-toggle{display:flex}.mode-toggle .mt-btn{flex:1;justify-content:center;padding:11px 10px}}
/* Repli de la sidebar à la demande (desktop) — le hamburger de la topbar la replie ; écran large une fois replié */
@media (min-width:981px){
  .shell{transition:grid-template-columns .2s ease}
  .side{transition:transform .24s ease,opacity .18s ease}
  /* Rail repliable (icônes) — le hamburger de la topbar bascule html.rail (persisté
     'renfora-rail'). Remplace l'ancien repli « nav-collapsed » (sidebar masquée) par
     un rail d'icônes 74px. Mobile (<980px) garde son tiroir. Handoff portage §3/§7.3. */
  html.rail .shell{--sidebar:74px}
  html.rail .brand .bn, html.rail .brand .pj, html.rail .side-org .oi, html.rail .nav-lbl,
  html.rail .sa .nm, html.rail .sa .st, html.rail .side-foot .trial-chip,
  html.rail .side-acct .ai, html.rail .nav-i .ct{display:none}
  html.rail .brand{justify-content:center;gap:0}
  html.rail .side-org{justify-content:center;padding:9px 0;margin:6px 10px}
  html.rail .nav-i{justify-content:center;gap:0;padding:11px 0;font-size:0}
  html.rail .nav-i svg{width:20px;height:20px}
  html.rail .sa{justify-content:center;gap:0;padding:7px 0}
  html.rail .side-acct{justify-content:center}
}
.side .brand .mk{width:13px;height:13px;border-radius:0;background:var(--accent-soft);transform:rotate(45deg)}
.side .brand .mk svg{display:none}
.side .brand .bn{font-family:var(--cond);font-weight:700;font-size:21px;text-transform:uppercase;letter-spacing:.05em}
.nav-i{position:relative;overflow:hidden}
.nav-i.on svg{opacity:1}
/* Banc d'essai — vie de la scène (BN-1→7) */
.lb .bench{position:relative}
.lb .bench>*{position:relative;z-index:1}
.lb .bench::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:repeating-conic-gradient(from 200deg at 102% 4%,rgba(255,255,255,.045) 0deg 1.4deg,transparent 1.4deg 8deg);-webkit-mask-image:radial-gradient(circle at 100% 0,#000,transparent 68%);mask-image:radial-gradient(circle at 100% 0,#000,transparent 68%)}
.lb .bench-stage{min-height:280px}
.lb .bench-head .ba{border:1.5px solid rgba(255,255,255,.18)}
.lb .bench-idle .orb{position:relative;width:84px;height:84px}
.lb .bench-idle .orb::after{content:"";position:absolute;inset:-10px;border-radius:50%;border:1px solid var(--accent-soft);opacity:.5;animation:orbpulse 2.6s ease-out infinite}
@keyframes orbpulse{0%{transform:scale(.92);opacity:.7}100%{transform:scale(1.5);opacity:0}}
.lb .bench-call{transition:transform .16s,background .16s}
.lb .bench-call:not(.hangup):hover{background:var(--primary-press);transform:translateY(-1px)}
.lb .t-line{animation:tin .3s ease}
@keyframes tin{from{opacity:0;transform:translateY(6px)}}
.lb .t-line.agent .bub{background:rgba(111,163,232,.15);border:1px solid rgba(111,163,232,.25);border-bottom-left-radius:4px;color:#EAF1FB}
.lb .t-line.client .bub{border-bottom-right-radius:4px}
.lb .t-line .av{font-family:var(--mono);font-size:8.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;width:30px;flex-shrink:0;padding-top:9px;line-height:1.25}
.lb .t-line.agent .av{color:var(--accent-soft)}
.lb .t-line.client .av{color:#8DA0B8;text-align:right}
/* Widget Enora (EN-1/2/3) */
.enora-msg{display:flex;gap:9px}
.enora-sugg a,.enora-sugg button{background:var(--accent-mist);border:1px solid var(--accent-pale)}
.enora-sugg a:hover,.enora-sugg button:hover{filter:none;background:var(--accent-pale)}
/* Réglages (RG-1/2) */
.lb .set-card h3{font-weight:600;letter-spacing:.03em}
.lb .set-card[id]{scroll-margin-top:calc(var(--topbar) + 18px)}
/* Auth — états (AU-1) */
.status.show,.lb .status.show{animation:authReveal .22s ease}
@keyframes authReveal{from{opacity:0;transform:translateY(-3px)}}
.btn:disabled,.bench-call:disabled{opacity:.6;cursor:not-allowed}
@media(prefers-reduced-motion:reduce){.status.show,.lb .status.show,.lb .t-line,.lb .bench-idle .orb::after{animation:none}}
/* Embaucher — grille de postes + launch-card (EM-1/2/3) */
.lb .poste{position:relative}
.lb .launch-card h3{font-weight:600}
.lb .launch-card p{font-size:14px;color:#ADBDD3;line-height:1.55;margin-bottom:18px}
.lb .launch-card .launch-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;background:#fff;color:var(--navy);border:0;border-radius:12px;font-size:15.5px;font-weight:800;padding:15px;cursor:pointer;transition:.15s}
.lb .launch-card .launch-btn:hover{background:var(--accent-pale)}
.lb .launch-card .launch-btn:disabled{opacity:.6;cursor:not-allowed}
.lb .launch-card .status{color:#EAF1FB;text-align:center}
.lb .launch-card .status.err{color:#FCA5A5}
/* Passe « condensé alourdi » 700 → 600 (AG-2, BC-2, BC-4, DB) */
.lb .agent-hero .ahi h1,.lb .pd-h h1,.lb .bilan-metrics .bm .v,.lb .narr .nmeta .m b,.lb .rstat .v{font-weight:600}
.lb .agent-hero .ahi h1{text-transform:uppercase;letter-spacing:.006em}
/* Polish — focus-visible + états (TB-5, EN-5→8, AU-3) */
.lb .chip:focus-visible,.lb .tab:focus-visible,.lb .linkic:focus-visible,.lb .refdel:focus-visible,.lb .doc a:focus-visible,.lb .poste:focus-visible,.lb .sa:focus-visible,.lb .agentcard:focus-visible{outline:none;box-shadow:0 0 0 3px var(--primary-tint);border-radius:9px}
.enora-panel{transform-origin:bottom right}
.enora-input input::placeholder{color:var(--text-3)}
.enora-input input:hover{border-color:var(--primary)}
.enora-input .send{transition:.14s}
.enora-input .send:hover{background:var(--primary-press)}
.enora-input .send:active{transform:scale(.96)}
.enora-head .x:focus-visible{outline:2px solid #fff;outline-offset:1px;border-radius:6px}
.lb .auth-card .foot a,.lb .auth-card .alt a{font-weight:700;color:var(--primary-text)}
/* Livrables — table honnête : Type (icône + libellé) / Livrable / Quand (TB-1, sans données fabriquées) */
.lb table.tbl .lv-type{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--text);white-space:nowrap}
.lb table.tbl .lv-type svg{width:15px;height:15px;color:var(--primary);flex-shrink:0}
.lb table.tbl .lv-sum{color:var(--text-2);font-size:13px;line-height:1.45;max-width:62ch}

/* ============================================================
   REFONTE 2026-06 — design final harmonisé (porté du handoff portage §7).
   ADDITIF en fin de fichier. CORAIL = SIGNAUX VIVANTS UNIQUEMENT.
   ⚠️ On N'utilise PAS --accent (déjà la famille BLEUE structurelle du cockpit,
   et la famille LIME #C8F046 du public) → token dédié --live* pour ne rien repeindre.
   --primary (bleu) reste 100 % la structure ; le corail ne sert qu'aux signaux
   « en service / au travail / branché » et à la barre centrale de l'onde de l'agent.
   ============================================================ */
:root,[data-theme="light"]{--live:#FF6B45;--live-tint:#FFEDE6;--live-ink:#B23E1F;--warning-text:#8A5A12;--success-text:#1A7A50}
[data-theme="dark"]{--live:#FF7A56;--live-tint:#3A2017;--live-ink:#FFB59B;--warning-text:var(--warning);--success-text:var(--success)}
/* Pouls « respiration » d'un point vivant (en service / au travail) : le point porte
   background:var(--live) ; .rf-live ajoute le halo qui bat. prefers-reduced-motion le
   neutralise (cf. règle globale ~l.29 : animation-duration .001ms). */
@keyframes rf-live{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--live) 50%,transparent)}70%{box-shadow:0 0 0 6px transparent}100%{box-shadow:0 0 0 0 transparent}}
.rf-live{animation:rf-live 2s ease-out infinite}


/* ============================================================
   REFONTE 2026-06 — PHASE 2 : lignes staff (accueil) + constellation (renfort).
   ADDITIF en fin de cockpit.css (après l.874). Namespace .lb, fond clair .esp.
   CORAIL = SIGNAUX VIVANTS UNIQUEMENT via --live (Phase 1) ; --primary = STRUCTURE.
   NE REDÉCLARE PAS --live ni @keyframes rf-live (déjà l.868-874).
   Tokens vérifiés présents : --primary-tint/--primary-text/--warning/--warning-tint/
   --surface-3/--line-2/--shadow-1/--shadow-2/--text-2/--text-3/--cond/--mono/--r-lg.
   ============================================================ */

/* ───────── ACCUEIL : en-tête promesse + lignes staff + hire + miniproof + décisions ───────── */
.lb .ph .promise{font-size:16px;color:var(--text-2);line-height:1.5;margin-top:8px;max-width:56ch}
.lb .ph .promise b{color:var(--text);font-weight:700}
.lb .ph .ph-note{font-size:12.5px;color:var(--text-2);margin-top:8px;text-align:right}
.lb .att-h{display:flex;align-items:center;gap:10px;margin:30px 0 14px}
.lb .att-h h2{font-family:var(--cond);font-weight:600;font-size:14px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-2)}
.lb .att-h .line{flex:1;height:1px;background:var(--line)}
/* lignes de renforts */
.lb .rfl{display:flex;align-items:center;gap:15px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px 18px;margin-bottom:10px;box-shadow:var(--shadow-1);transition:border-color .15s,transform .15s,box-shadow .15s}
.lb .rfl:hover{border-color:var(--line-2);transform:translateY(-2px);box-shadow:var(--shadow-2)}
.lb .rfl .av{width:46px;height:46px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;font-weight:800;color:#fff;position:relative}
.lb .rfl .av .st{position:absolute;right:-1px;bottom:-1px;width:13px;height:13px;border-radius:50%;border:2.5px solid var(--surface)}
/* « En service » = point CORAIL qui respire ; ring --live-ink pour passer 1.4.11 (a11y-high) */
.lb .rfl .av .st.ok{background:var(--live);box-shadow:0 0 0 1px var(--live-ink);animation:rf-live 2.4s ease-out infinite}
.lb .rfl .av .st.warn{background:var(--warning)}
.lb .rfl .rx{flex:1;min-width:0}
.lb .rfl .rx b{font-size:16px;font-weight:800;color:var(--text)}
.lb .rfl .rx .state{font-weight:700;font-size:12.5px;margin-left:8px}
.lb .rfl .rx .state.on{color:var(--success-text)}
.lb .rfl .rx .state.prep{color:var(--warning-text)}
.lb .rfl .rx .sub{display:block;font-size:13.5px;color:var(--text-2);margin-top:2px}
.lb .rfl .talk-btn{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;min-height:44px;font-weight:700;font-size:14px;color:var(--primary-text);background:var(--primary-tint);border-radius:999px;padding:0 18px}
.lb .rfl:hover .talk-btn{background:var(--primary);color:#fff}
.lb .rfl .talk-btn svg{width:16px;height:16px}
/* bandeau hire (structure bleue) */
.lb .hire{display:flex;align-items:center;gap:16px;background:linear-gradient(135deg,var(--primary-tint),var(--surface));border:1px solid var(--line-2);border-radius:16px;padding:18px 20px;margin-bottom:10px;transition:transform .15s,box-shadow .15s}
.lb .hire:hover{transform:translateY(-2px);box-shadow:var(--shadow-2)}
.lb .hire .pl{width:48px;height:48px;border-radius:13px;background:var(--primary);color:#fff;display:grid;place-items:center;flex:0 0 auto}
.lb .hire .hx{flex:1;min-width:0}
.lb .hire .hx b{display:block;font-size:16px;font-weight:800;color:var(--text)}
.lb .hire .hx span{display:block;font-size:13.5px;color:var(--text-2);margin-top:2px}
.lb .hire .go{flex:0 0 auto}
/* miniproof : une ligne discrète */
.lb .miniproof{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--text-2);margin-top:8px}
.lb .miniproof b{color:var(--text)}
.lb .miniproof a{margin-left:auto;color:var(--primary-text);font-weight:700;white-space:nowrap}
.lb .miniproof svg{flex:0 0 auto}
/* cartes décision AMBRE (votre décision réversible) */
.lb .act{display:flex;align-items:center;gap:16px;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--warning);border-radius:16px;padding:18px 20px;margin-bottom:12px;box-shadow:var(--shadow-1);transition:transform .15s,box-shadow .15s}
.lb .act:hover{transform:translateY(-1px);box-shadow:var(--shadow-2)}
.lb .act .av{width:44px;height:44px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;font-weight:800;color:#fff}
.lb .act .ic-w{width:44px;height:44px;border-radius:12px;flex:0 0 auto;display:grid;place-items:center;background:var(--warning-tint);color:var(--live-ink)}
.lb .act .ax{flex:1;min-width:0}
.lb .act .ax b{display:block;font-size:15.5px;font-weight:800;color:var(--text)}
.lb .act .ax span{display:block;font-size:13.5px;color:var(--text-2);line-height:1.45;margin-top:2px}
.lb .act .go{flex:0 0 auto}
/* bouton ambre : fond --live-ink, texte contrasté dans LES DEUX thèmes (FIX a11y-block) —
   clair = --live-ink foncé + blanc (≥4.5:1) ; sombre = --live-ink pêche clair + navy (10.8:1). */
.lb .btn.amber{background:var(--live-ink);color:#fff;min-height:44px}
[data-theme="dark"] .lb .btn.amber{color:#0B1521}
.lb .btn.amber:hover{filter:brightness(1.06);transform:translateY(-1px)}
/* cibles ≥44px sur boutons de carte (FIX a11y-high) */
.lb .act .btn,.lb .cv-act .btn{min-height:44px}

/* ───────── RENFORT : hero sans onglets + facettes + carte ambre + notice LLM ───────── */
.lb .rf-hero{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:6px 0 4px}
.lb .rf-hero .av{width:54px;height:54px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;font-weight:800;color:#fff;font-size:21px;position:relative}
.lb .rf-hero .av .st{position:absolute;right:0;bottom:0;width:14px;height:14px;border-radius:50%;background:var(--live);box-shadow:0 0 0 1px var(--live-ink),0 0 0 2.5px var(--surface)}
.lb .rf-hero .hx{min-width:0}
.lb .rf-hero .hx h1{font-family:var(--cond);font-weight:600;font-size:30px;text-transform:uppercase;letter-spacing:.006em;line-height:1;color:var(--text);overflow-wrap:anywhere}
.lb .rf-hero .role{font-size:13.5px;color:var(--text-2);font-weight:600}
.lb .rf-hero .pill{font-size:12px;font-weight:800;letter-spacing:.03em;padding:5px 12px;border-radius:999px}
.lb .rf-hero .pill-live{background:var(--live-tint);color:var(--live-ink)}
.lb .rf-hero .pill-prep{background:var(--warning-tint);color:var(--warning-text)}
.lb .rf-hero .gear{width:44px;height:44px;border-radius:11px;display:grid;place-items:center;color:var(--text-2);border:1px solid var(--line-2)}
.lb .rf-hero .gear:hover{color:var(--primary-text);border-color:var(--primary)}
.lb .rf-hero .rf-act{display:flex;gap:8px;margin-left:auto;flex-wrap:wrap}
/* notice quand la conversation est inerte (sans LLM) */
.lb .bf-notice{padding:11px 14px;background:var(--surface-2);color:var(--text-2);font-size:13px;font-weight:600;border-bottom:1px solid var(--line)}
/* focus clavier visible sur la zone de saisie (FIX a11y-high : remplace l'override :focus l.2276) */
.lb .bf-ta:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
/* carte ambre inline sous la conversation */
.lb .cv-act{display:flex;align-items:center;gap:12px;background:var(--warning-tint);border:1px solid var(--warning);border-radius:12px;padding:12px 14px;margin-top:12px}
.lb .cv-act .ic{width:38px;height:38px;border-radius:10px;flex:0 0 auto;display:grid;place-items:center;background:var(--surface);color:var(--live-ink)}
.lb .cv-act .tx{flex:1;min-width:0;font-size:13.5px;color:var(--text-2);line-height:1.45}
.lb .cv-act .tx b{display:block;font-size:14.5px;font-weight:800;color:var(--text)}
.lb .cv-act .ax{flex:0 0 auto;display:flex;gap:8px;flex-wrap:wrap}
/* facettes démotées */
.lb .facets{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.lb .facets a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border-radius:11px;font-size:13.5px;font-weight:700;color:var(--text-2);background:var(--surface);border:1px solid var(--line)}
.lb .facets a:hover{color:var(--primary-text);border-color:var(--primary)}
.lb .facets a svg{width:18px;height:18px}

/* ───────── CONSTELLATION « SES OUTILS » (renfort) — porté de bureau-renfort-mockup → tokens réels ───────── */
.lb .tools{position:relative;background:radial-gradient(120% 130% at 50% 0,var(--surface),var(--surface-2));border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1);padding:18px 16px 14px;margin:14px 0;overflow:hidden}
.lb .tools .th{display:flex;align-items:center;gap:9px;margin-bottom:6px;position:relative;z-index:3}
.lb .tools .th b{font-family:var(--cond);font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text)}
.lb .tools .th .th-line{flex:1;height:1px;background:var(--line)}
.lb .tools .th .th-meta{font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.04em;color:var(--text-2)}
.lb .tools .th .th-meta b{color:var(--text)}
.lb .tw{position:relative;min-height:230px;display:grid;place-items:center}
.lb .tw-ring{position:absolute;inset:0;margin:auto;width:194px;height:194px;border:1.5px dashed var(--line-2);border-radius:50%;opacity:.7;animation:lb-tw-spin 40s linear infinite}
.lb .tw-ring.r2{width:282px;height:282px;opacity:.4;animation-duration:66s;animation-direction:reverse}
@keyframes lb-tw-spin{to{transform:rotate(360deg)}}
.lb .tw-core{position:relative;z-index:2;width:128px;height:128px;border-radius:50%;background:radial-gradient(circle at 50% 32%,var(--surface),var(--primary-tint));border:1px solid var(--line);box-shadow:0 20px 40px -20px color-mix(in srgb,var(--primary) 60%,transparent);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:3px}
.lb .tw-core::before{content:"";position:absolute;inset:-9px;border-radius:50%;border:2px solid var(--live);opacity:.28;animation:lb-tw-pulse 2.8s ease-out infinite}
@keyframes lb-tw-pulse{0%{transform:scale(.95);opacity:.42}100%{transform:scale(1.22);opacity:0}}
.lb .tw-core .av{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:800;font-size:17px}
.lb .tw-wave{display:flex;align-items:flex-end;gap:3px;height:18px;margin-top:5px}
.lb .tw-wave i{width:4px;border-radius:3px;background:var(--primary);animation:lb-tw-bar 1.1s ease-in-out infinite}
.lb .tw-wave i:nth-child(1){height:7px}
.lb .tw-wave i:nth-child(2){height:14px;animation-delay:.12s}
.lb .tw-wave i:nth-child(3){height:18px;background:var(--live);animation-delay:.24s}
.lb .tw-wave i:nth-child(4){height:12px;animation-delay:.36s}
.lb .tw-wave i:nth-child(5){height:8px;animation-delay:.48s}
@keyframes lb-tw-bar{0%,100%{transform:scaleY(.45)}50%{transform:scaleY(1)}}
.lb .tw-t{position:absolute;z-index:3;display:inline-flex;align-items:center;gap:8px;background:var(--surface);border:1.5px solid color-mix(in srgb,var(--c,var(--line)) 50%,var(--line));border-radius:999px;padding:5px 12px 5px 5px;box-shadow:var(--shadow-1);font-size:12px;font-weight:700;color:var(--text);animation:lb-tw-float 5s ease-in-out infinite;transition:transform .15s,box-shadow .15s,border-color .15s}
.lb .tw-t:hover{transform:translateY(-2px);box-shadow:var(--shadow-2);border-color:var(--c,var(--primary))}
/* FIX a11y-high : focus clavier garde le ring --primary (jamais outline:none) */
.lb .tw-t:focus-visible{outline:2px solid var(--primary);outline-offset:2px;transform:translateY(-2px)}
.lb .tw-t .ic{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--c,var(--primary));color:#fff;flex:0 0 auto}
.lb .tw-t .ic svg{width:15px;height:15px}
.lb .tw-t .dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto;margin-left:1px}
/* branché = corail vivant + ring --live-ink (FIX a11y-high 1.4.11) */
.lb .tw-t.on .dot{background:var(--live);box-shadow:0 0 0 1px var(--live-ink)}
/* à brancher = gris ≥3:1, SANS opacity (FIX a11y-high) */
.lb .tw-t.off{color:var(--text-2)}
.lb .tw-t.off .ic{background:var(--surface-3);color:var(--text-2)}
.lb .tw-t.off .dot{background:var(--text-2)}
@keyframes lb-tw-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.lb .tw-t.a1{top:2%;left:4%;animation-delay:0s}
.lb .tw-t.a2{top:0;right:5%;animation-delay:.5s}
.lb .tw-t.a3{bottom:6%;left:1%;animation-delay:1s}
.lb .tw-t.a4{bottom:1%;right:3%;animation-delay:1.5s}
.lb .tw-t.a5{top:42%;left:0;animation-delay:2s}
.lb .tw-t.a6{top:42%;right:0;animation-delay:2.5s}
/* légende honnête (FIX a11y-high : --text-2, jamais --text-3) */
.lb .tools .tw-foot{position:relative;z-index:3;margin-top:6px;font-size:12px;color:var(--text-2);text-align:center;line-height:1.45}
.lb .tools .tw-foot b{color:var(--text);font-weight:700}

/* ───────── Retirer un renfort : bouton danger, zone sensible, modale, « récemment retirés » ───────── */
/* Bouton danger : sobre (texte/bord --danger), se remplit au survol. Contraste AA dans les deux thèmes. */
.lb .btn.danger{background:var(--surface);color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,transparent)}
.lb .btn.danger:hover:not(:disabled){background:var(--danger);color:#fff;border-color:var(--danger)}
.lb .btn.danger:disabled{opacity:.5;cursor:not-allowed}
/* Zone sensible : discrète (bord pointillé), PAS un bloc rouge plein. */
.lb .danger-zone{margin-top:30px;padding:18px 20px;border:1px dashed color-mix(in srgb,var(--danger) 38%,var(--line-2));border-radius:16px;background:color-mix(in srgb,var(--danger-tint) 50%,var(--surface))}
.lb .danger-zone h2{display:flex;align-items:center;gap:8px;font-family:var(--cond);font-weight:600;font-size:13px;letter-spacing:.05em;text-transform:uppercase;color:var(--danger)}
.lb .danger-zone h2 svg{width:16px;height:16px;flex:0 0 auto}
.lb .danger-zone p{margin-top:8px;font-size:13.5px;color:var(--text-2);line-height:1.5;max-width:62ch}
.lb .danger-zone p b{color:var(--text);font-weight:700}
.lb .dz-btn{margin-top:14px;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:11px;font-size:13.5px;font-weight:700;color:var(--danger);background:transparent;border:1.5px solid color-mix(in srgb,var(--danger) 40%,transparent);transition:.15s}
.lb .dz-btn:hover{background:var(--danger);color:#fff;border-color:var(--danger)}
.lb .dz-btn svg{width:16px;height:16px}
/* Modale de confirmation forte : scrim + carte centrée, focus-trap géré en JS. */
.rb-modal{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:20px}
.rb-modal[hidden]{display:none}
.rb-modal-scrim{position:absolute;inset:0;background:var(--scrim);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.rb-modal-box{position:relative;z-index:1;width:100%;max-width:440px;background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-pop);padding:26px 26px 22px;animation:rb-modal-in .18s ease-out}
.rb-modal-ic{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:var(--danger-tint);color:var(--danger);margin-bottom:14px}
.rb-modal-ic svg{width:22px;height:22px}
.rb-modal-box h3{font-family:var(--cond);font-weight:600;font-size:21px;line-height:1.2;color:var(--text)}
.rb-modal-box>p{margin-top:10px;font-size:14px;color:var(--text-2);line-height:1.55}
.rb-modal-box>p b{color:var(--text);font-weight:700}
.rb-modal-box label{display:block;margin-top:18px;font-size:13.5px;font-weight:600;color:var(--text-2)}
.rb-modal-box label b{color:var(--text);font-weight:800}
.rb-modal-box input{width:100%;min-height:48px;margin-top:8px;border:1.5px solid var(--line-2);border-radius:12px;background:var(--surface);color:var(--text);font-size:16px;font-weight:600;padding:12px 15px;transition:border-color .15s,box-shadow .15s;font-family:inherit}
.rb-modal-box input:focus{outline:none;border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-tint)}
.rb-modal-box .dz-hint{margin-top:7px;font-size:12px;color:var(--text-3)}
.rb-modal-act{display:flex;gap:10px;margin-top:20px}
.rb-modal-act .btn{flex:1}
.rb-modal-box .status{margin-top:14px;text-align:center;font-size:13.5px;font-weight:700;min-height:18px;color:var(--text-2)}
.rb-modal-box .status.ok{color:var(--success)}
.rb-modal-box .status.err{color:var(--danger)}
@keyframes rb-modal-in{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}
/* « Récemment retirés » : ligne discrète (en grâce), bord ambre-éteint, action Restaurer. */
.lb .gone{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);border-left:3px solid color-mix(in srgb,var(--warning) 55%,var(--line));border-radius:14px;padding:14px 16px;margin-bottom:10px}
.lb .gone-ic{width:38px;height:38px;border-radius:11px;flex:0 0 auto;display:grid;place-items:center;background:var(--surface-2);color:var(--text-3)}
.lb .gone-ic svg{width:18px;height:18px}
.lb .gone-x{flex:1;min-width:0}
.lb .gone-x b{display:block;font-size:15px;font-weight:800;color:var(--text-2)}
.lb .gone-x span{display:block;font-size:13px;color:var(--text-3);line-height:1.45;margin-top:2px}
.lb .gone-btn{flex:0 0 auto}
.lb .gone-btn svg{width:15px;height:15px}
@media (prefers-reduced-motion:reduce){.rb-modal-box{animation:none}}
@media (max-width:560px){
  .rb-modal{padding:14px}
  .rb-modal-box{padding:22px 20px 18px}
  .rb-modal-act{flex-direction:column-reverse}
  .lb .danger-zone .dz-btn{width:100%;justify-content:center}
  .lb .gone{flex-wrap:wrap}
  .lb .gone-btn{width:100%;justify-content:center}
}

/* ───────── Responsive 375px : tient sans débordement ───────── */
@media (max-width:760px){
  /* FIX a11y-medium : replier la couronne plus tôt (chevauchement 560–760px) */
  .lb .tw{min-height:auto;display:block;padding:6px 0 2px}
  .lb .tw-ring{display:none}
  .lb .tw-core{margin:4px auto 14px}
  .lb .tw-tools{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
  .lb .tw-t{position:static;display:inline-flex;animation:none}
}
@media (max-width:560px){
  .lb .rf-hero .hx h1{font-size:24px}
  .lb .ph{flex-direction:column}
  .lb .ph .ph-act{width:100%;margin-left:0}
  .lb .ph .ph-act .btn{width:100%}
  .lb .ph .ph-note{text-align:left}
  .lb .rfl{flex-wrap:wrap;gap:11px 14px}
  .lb .rfl .rx{flex:1 1 auto;min-width:140px}
  .lb .hire{flex-wrap:wrap}
  .lb .hire .go,.lb .hire .go .btn{width:100%}
  .lb .act{flex-wrap:wrap}
  .lb .act .go,.lb .act .go .btn{width:100%}
  .lb .miniproof{flex-wrap:wrap}
  .lb .miniproof a{margin-left:0}
  .lb .rf-hero .rf-act{margin-left:0;width:100%}
  .lb .cv-act{flex-wrap:wrap}
  .lb .cv-act .ax{width:100%}
}

/* ───────── PANNEAU JOURNAL (L1b) — le FIL D'ACTES à 3 statuts (cadrage DESIGN §2) ─────────
   Extension de la primitive .ev — N'utilise QUE des tokens sémantiques (--success/--warning/--text-3…)
   → sombre gratuit (variantes [data-theme=dark] déjà présentes), re-skin de marque neutre plus tard.
   La COULEUR EST la sémantique d'engagement, mais JAMAIS seule : chaque statut porte aussi un verbe
   (.ev-pill) + une FORME de pastille distincte (pleine/anneau/halo) → daltonien-safe (WCAG 1.4.1). */
.jact-panel{padding:16px}
.jact-zone{margin-top:2px}
.jact-wait{margin:0 0 12px}                                   /* bandeau « N attend(ent) votre geste » (L4) */
.jact-feed{list-style:none;margin:0;padding:0}
.jact{position:relative;display:flex;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}
.jact:last-child{border-bottom:0}
.jact-bd{flex:1;min-width:0}
.jact-cat{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3)}
.jact-cat svg{width:13px;height:13px}
.jact .ev-head{flex-wrap:wrap;row-gap:4px}
.jact .ev-when{margin-left:auto}
.jact .ev-sum{font-size:13.5px}
.jact-link{display:inline-flex;align-items:center;gap:6px;font-size:12.5px}
/* DURCISSEMENT SÉCU : lien RDV à schéma non-web → libellé INERTE (présent, non cliquable, sans href) */
.jact-link--inert{color:var(--text-3);cursor:default}
/* MARQUEUR « danger vital » (escalade VITALE) — signal de SÛRETÉ, pas déco. Tokens sémantiques --danger
   (sombre gratuit : --danger/--danger-tint basculent en [data-theme=dark]). Daltonien-safe : le MOT
   « Danger vital signalé » + l'icône portent l'info ; la couleur ne fait que la RENFORCER (jamais seule).
   Inline dans la ligne-tête (près du type/statut) — chip sobre, ne casse pas le wrap 375px (.ev-head wrap). */
.jact-vital{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:3px 8px;border-radius:99px;background:var(--danger-tint);color:var(--danger)}
.jact-vital svg{width:12px;height:12px;flex:0 0 auto}
/* La PASTILLE de statut (forme distincte par état — pas que la couleur) */
.jact-dot{flex:0 0 auto;width:12px;height:12px;border-radius:50%;margin-top:4px;background:var(--text-3)}
.jact--done .jact-dot{background:var(--success)}                                   /* plein  = fait */
.jact--wait .jact-dot{background:var(--surface);border:2px solid var(--text-3)}    /* anneau = en attente */
.jact--review .jact-dot{background:var(--warning);box-shadow:0 0 0 4px var(--warning-tint);animation:jactpulse 2s ease-in-out infinite}  /* halo = à valider */
.jact--review{padding-left:11px;margin-left:-11px;border-left:3px solid var(--warning)}
.jact-empty{margin-top:4px}

/* ───────── BROUILLON DE DEVIS (L6 / D1a) — rendu PROPRE, fin du <pre> monospace ─────────
   Un brouillon est un LIVRABLE : il doit être LISIBLE et MIS EN PAGE (retour patron). Le document porte la
   marque DU PATRON (PAS Renfora) → palette NEUTRE et FIXE (encre sur papier), volontairement INDÉPENDANTE du
   thème Renfora (light/dark) pour ressembler à une vraie pièce comptable et rester impeccable à l'impression.
   Invariants « propre » : typo cohérente, espacement régulier, nombres TABULAIRES alignés à DROITE, hiérarchie
   claire (TTC en avant), palette restreinte. Lisible à l'écran ET en impression (@media print plus bas). */
.jact-devis-body{margin-top:8px}
.jact-devis-foot{font-size:12px;color:var(--text-2);margin:8px 0 0;line-height:1.45}
.dv-doc{--dv-ink:#1f2937;--dv-soft:#6b7280;--dv-line:#e5e7eb;--dv-paper:#fff;--dv-head:#111827;
  background:var(--dv-paper);color:var(--dv-ink);border:1px solid var(--dv-line);border-radius:12px;
  padding:20px 22px;font-family:'Hanken Grotesk',system-ui,sans-serif;font-size:13px;line-height:1.5;
  box-shadow:0 1px 2px rgba(16,24,40,.06)}
.dv-doc--text{white-space:pre-wrap;font-variant-numeric:tabular-nums}
.dv-tag{display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;
  color:#92400e;background:#fef3c7;border:1px solid #fcd34d;border-radius:7px;padding:4px 10px;margin-bottom:14px}
.dv-head{display:flex;flex-wrap:wrap;gap:10px 24px;justify-content:space-between;align-items:flex-start;
  padding-bottom:14px;border-bottom:2px solid var(--dv-head)}
.dv-biz{font-size:18px;font-weight:800;color:var(--dv-head);letter-spacing:-.01em}
.dv-mentions{font-size:11px;color:var(--dv-soft);text-align:right;min-width:180px}
.dv-mention{display:flex;gap:6px;justify-content:flex-end}
.dv-mention .dv-ml{font-weight:600}
.dv-meta{display:flex;flex-wrap:wrap;gap:6px 28px;margin:14px 0 4px}
.dv-meta>div,.dv-objet{display:flex;gap:8px;align-items:baseline}
.dv-objet{margin:8px 0 16px}
.dv-k{font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--dv-soft);min-width:58px}
.dv-v{font-weight:600;color:var(--dv-ink)}
.dv-todo{color:var(--dv-soft);font-weight:500;font-style:italic}
.dv-table{width:100%;border-collapse:collapse;margin:6px 0 14px;font-variant-numeric:tabular-nums}
.dv-table thead th{font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--dv-soft);
  text-align:left;padding:8px 10px;border-bottom:1.5px solid var(--dv-line)}
.dv-table td{padding:9px 10px;border-bottom:1px solid var(--dv-line);vertical-align:top}
.dv-table .dv-desig{width:100%}
.dv-table .dv-num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.dv-totaux{display:flex;flex-direction:column;align-items:flex-end;gap:4px;margin:4px 0 16px;font-variant-numeric:tabular-nums}
.dv-trow{display:flex;justify-content:space-between;gap:30px;min-width:240px;font-size:13px}
.dv-trow .dv-tl{color:var(--dv-soft)}
.dv-trow .dv-tv{font-weight:600;text-align:right;min-width:90px}
.dv-trow.dv-ttc{margin-top:6px;padding-top:8px;border-top:2px solid var(--dv-head);font-size:15.5px;font-weight:800;color:var(--dv-head)}
.dv-trow.dv-ttc .dv-tl{color:var(--dv-head);font-weight:800}
.dv-pied{font-size:11px;color:var(--dv-soft);font-style:italic;padding-top:12px;border-top:1px dashed var(--dv-line)}
@media print{
  /* À l'impression, seul le document s'imprime, en pleine page, sans ombre ni cadre superflus. */
  body *{visibility:hidden}
  .dv-doc,.dv-doc *{visibility:visible}
  .dv-doc{position:absolute;left:0;top:0;width:100%;border:0;box-shadow:none;border-radius:0;padding:0;font-size:12px}
  .jact-devis-foot,.jact-devis-sum{display:none}
}

/* ───────── RECHERCHE / FILTRE DU JOURNAL (L1b) — retrouver l'historique d'un client en secondes ─────────
   Barre AU-DESSUS du fil `<ol class=jact-feed>` (le Journal reste intact, la barre ne touche QUE l'affichage).
   Filtrage CLIENT-SIDE (montre/masque les `.jact` réelles) : aucune donnée ne transite, lecture seule.
   Tokens sémantiques UNIQUEMENT → sombre gratuit ([data-theme=dark] bascule les vars). DALTONIEN-SAFE : les
   chips portent le MOT + l'icône (jamais la couleur seule, WCAG 1.4.1) ; l'état actif = fond plein + texte.
   Cohérent avec la recherche du catalogue d'embauche (.hire-search/.hire-seg). Tient en 375px (wrap). */
.jact-filter{margin:2px 0 14px;display:flex;flex-direction:column;gap:11px}
.jf-search{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line-2);border-radius:12px;padding:0 13px;transition:border-color .15s,box-shadow .15s}
.jf-search:focus-within{border-color:var(--primary);box-shadow:var(--ring)}
.jf-search-ic{color:var(--text-3);flex:0 0 auto;width:17px;height:17px}
.jf-q{flex:1;min-width:0;border:0;background:transparent;font:500 14.5px var(--font);color:var(--text);padding:11px 0;outline:none}
.jf-q::placeholder{color:var(--text-3)}
.jf-chips{display:flex;flex-wrap:wrap;gap:7px}                          /* wrap → tient en 375px */
.jf-chip{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border-radius:99px;border:1px solid var(--line);background:var(--surface-2);font:700 12.5px var(--font);color:var(--text-2);cursor:pointer;transition:.13s}
.jf-chip svg{width:13px;height:13px;flex:0 0 auto}
.jf-chip:hover{border-color:var(--primary);color:var(--primary-text)}
.jf-chip.on{background:var(--primary);color:var(--on-primary);border-color:transparent}   /* actif = fond plein + MOT (a11y) */
.jf-chip.on:hover{color:var(--on-primary)}
.jf-chips--st .jf-chip{font-size:12px}                                 /* 2e rangée statut, légèrement plus discrète */
.jf-foot{display:flex;align-items:center;gap:12px;min-height:20px}
.jf-count{font-family:var(--mono);font-size:11.5px;font-weight:700;color:var(--text-2)}
.jf-reset{margin-left:auto;border:0;background:transparent;font:700 12.5px var(--font);color:var(--primary-text);cursor:pointer;padding:6px 4px;text-decoration:underline;text-underline-offset:2px}
.jf-reset:hover{color:var(--primary)}
.jf-reset[hidden]{display:none}
/* état vide HONNÊTE quand aucun résultat (jamais un faux vide) — ton sobre, la requête posée via textContent */
.jf-empty{margin:6px 0 0;font-size:13.5px;line-height:1.5;color:var(--text-2)}
.jf-empty[hidden]{display:none}

/* ───────── L4 — « À VOTRE ATTENTION » : LECTURE « ce qui attend votre geste » du fil d'actes ─────────
   Même grammaire visuelle que le Journal (réutilise .jact / .jact-feed / _jact_card) : le patron apprend
   UNE lecture, valable partout. Tokens sémantiques only (sombre gratuit). Compteur honnête en tête ;
   état vide RASSURANT (.att-clear). Cross-agent → chaque carte porte le prénom du renfort (.jact-who). */
.att-panel{margin-top:18px}
.att-wait{margin:0 0 12px}                                    /* bandeau « N chose(s) attend(ent) votre geste » */
.att-wait b{font-weight:700}
.att-clear{margin-top:2px;line-height:1.5}
.att-clear b{color:var(--text);font-weight:700}              /* « Tout est à jour. » mis en avant, ton apaisé */
/* prénom du renfort (fil cross-agent) — chip discret en tête de carte, après la catégorie */
.jact-who{font-weight:700;font-size:12px;color:var(--text-2)}
.jact-who::before{content:"·";margin:0 6px 0 2px;color:var(--text-3);font-weight:400}

/* ───────── L4b — « Ce que votre staff a fait » : le BRIEFING (pendant POSITIF de L4) ─────────
   Bandeau SOBRE (la vue d'ensemble ; le détail vit dans le Journal). Tokens sémantiques uniquement
   → sombre gratuit (les vars basculent en [data-theme=dark]). Daltonien-safe : chaque compteur
   porte icône + nombre + libellé textuel (jamais distingué par la couleur seule). */
.brief-panel{margin-top:18px;margin-bottom:10px}                   /* même primitive .ev que L4 */
.brief-panel .brief-pin{display:grid;place-items:center;width:22px;height:22px;border-radius:7px;background:var(--success-tint);color:var(--success);flex:0 0 auto}
.brief-zone{margin-top:2px}
.brief-lead{font-size:13.5px;font-weight:600;color:var(--text-2);margin:0 0 10px}
.brief-chips{display:flex;flex-wrap:wrap;gap:8px}                   /* wrap → tient en 375px */
.brief-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 13px;border-radius:99px;background:var(--success-tint);font-size:13px;line-height:1}
.brief-chip .brief-ic{display:inline-flex;color:var(--success)}    /* icône = renfort de l'info, jamais le seul signal */
.brief-chip .brief-ic svg{display:block}
.brief-chip b{font-family:var(--mono);font-size:14px;font-weight:700;color:var(--text)}
.brief-chip .brief-lbl{color:var(--text-2);font-weight:600}        /* libellé TEXTUEL (a11y : pas couleur-seule) */
.brief-empty{font-size:13.5px;line-height:1.5;color:var(--text-2);margin:0}
.brief-empty b{color:var(--text);font-weight:700}                  /* « Vos renforts veillent. » mis en avant */

/* ───────── TENDANCE D'ACTIVITÉ — « cette semaine vs la semaine dernière » (ligne AJOUTÉE sous les chips) ─────────
   Répond à Yanis (« mon business devient-il plus chargé ? ») : dérive de comptes RÉELS, jamais inventée.
   DALTONIEN-SAFE (WCAG 1.4.1) : la couleur n'est JAMAIS le seul signal — la FLÈCHE (↑/→/↓) + le MOT (en
   hausse / stable / en baisse) portent le sens ; la teinte (.trend--up/flat/down) ne fait que renforcer.
   Tokens sémantiques UNIQUEMENT → sombre gratuit ([data-theme=dark] bascule les vars). Tient en 375px (wrap).
   Aucune animation (rien à couper en prefers-reduced-motion) — règle quand même posée plus bas par sûreté. */
.trend{display:flex;align-items:flex-start;gap:7px;margin:10px 0 0;font-size:12.5px;line-height:1.45;color:var(--text-2)}
.trend b{font-family:var(--mono);font-weight:700;color:var(--text)}   /* les deux comptes réels, en chiffres mono */
.trend-ic{display:inline-flex;flex:0 0 auto;margin-top:1px}           /* flèche = renfort du mot, aria-hidden côté HTML */
.trend-ic svg{display:block}
.trend--up .trend-ic{color:var(--success)}                           /* hausse → vert sémantique (renfort, pas seul signal) */
.trend--flat .trend-ic{color:var(--text-3)}                          /* stable → neutre */
.trend--down .trend-ic{color:var(--warning)}                         /* baisse → ambre (sobre, jamais alarmiste/rouge) */
.trend--new .trend-ic{color:var(--text-3)}                           /* « première semaine » → neutre, sobre, pas de jugement */

/* ───────── LOT 4c — « LE POULS PAR RENFORT » : la ligne d'état sur CHAQUE carte de « Votre staff » ─────────
   Le niveau INTERMÉDIAIRE (entre L4/L4b cross-agent et le Journal détaillé) : « ✓ N gérés · ⏳ M attend » sous
   le sous-titre de la carte .rfl. Tokens sémantiques UNIQUEMENT → sombre gratuit (les vars basculent en
   [data-theme=dark]). DALTONIEN-SAFE : chaque segment = icône + nombre + MOT (jamais la couleur seule).
   Tient en 375px (wrap). État vide honnête (.pouls--empty) = ton sobre, jamais un faux « 0 ». */
.lb .rfl .rx .pouls{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:6px;font-size:12.5px;line-height:1.3}
.pouls-seg{display:inline-flex;align-items:center;gap:5px;color:var(--text-2);font-weight:600}
.pouls-seg b{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--text)}
.pouls-ic{display:inline-flex}
.pouls-ic svg{display:block}
.pouls-done .pouls-ic{color:var(--success)}                        /* ✓ « gérés » — vert sémantique (renfort de l'info) */
.pouls-wait .pouls-ic{color:var(--warning)}                        /* ⏳ « attend » — ambre sémantique (pas le seul signal) */
.pouls--empty{color:var(--text-3);font-weight:600}                 /* « En veille — rien encore » : ton sobre, pas un reproche */
.pouls--empty .pouls-ic{color:var(--text-3)}

/* ───────── « LE NIVEAU PAR RENFORT » : la pastille de MATURITÉ sur CHAQUE carte de « Votre staff » ─────────
   Le POULS dit l'ACTIVITÉ ; cette pastille dit le NIVEAU d'auto-formation (Apprentissage→Opérationnel→Autonome),
   sur la ligne du prénom (à côté de l'état En service/En préparation). Variante COMPACTE des classes de la fiche
   (`mt-app`/`mt-ope`/`mt-aut`, cf. _maturity_bar) → MÊMES couleurs sémantiques, label jamais divergent.
   DALTONIEN-SAFE (WCAG 1.4.1) : le MOT (label) PORTE le sens, la couleur ne fait que renforcer (role=img + aria-label
   côté HTML). Tokens sémantiques UNIQUEMENT → sombre gratuit ([data-theme=dark] bascule les vars). Tient en 375px
   (la carte .rfl wrappe déjà). Rien à animer (aucune transition à couper en prefers-reduced-motion). */
.mt-card{display:inline-block;margin-left:8px;vertical-align:middle;font-size:10.5px;font-weight:800;
  letter-spacing:.03em;text-transform:uppercase;padding:2px 8px;border-radius:999px;white-space:nowrap}
.mt-card.mt-app{background:var(--surface-2);color:var(--text-2)}      /* Apprentissage — neutre (départ honnête) */
.mt-card.mt-ope{background:var(--accent-mist);color:var(--accent-text)}  /* Opérationnel — pêche (compétences acquises) */
.mt-card.mt-aut{background:var(--success-tint);color:var(--success)}  /* Autonome — vert (validé par le patron) */

/* ───────── MICRO-HINT D'ONBOARDING — guider le patron pour un renfort tout NEUF (apprentissage ∧ 0 acte) ─────────
   La pastille « Apprentissage » + le pouls « En veille — rien encore » sont honnêtes mais ne GUIDENT pas. Ce hint,
   en 1ʳᵉ pers. du renfort, dit l'unique geste qui le forme : lui parler (le bouton « Parler » de la carte EST le
   CTA). N'apparaît QUE pour un renfort réellement neuf (rendu côté serveur SSI apprentissage ∧ store OK ∧ 0 acte)
   → jamais sur un agent actif/opérationnel. DALTONIEN-SAFE (WCAG 1.4.1) : le TEXTE porte le sens, l'icône d'étoile
   est décorative (aria-hidden) ; le ton accent reste un RENFORT, pas l'unique signal. Tokens sémantiques UNIQUEMENT
   → sombre gratuit ([data-theme=dark] bascule les vars). Tient en 375px (la carte .rfl wrappe déjà, le hint passe
   à la ligne). Aucune animation (rien à couper en prefers-reduced-motion). */
.onhint{display:inline-flex;align-items:center;gap:6px;margin-top:6px;font-size:12.5px;line-height:1.35;
  font-weight:600;color:var(--accent-text)}
.onhint-ic{display:inline-flex;flex:0 0 auto;color:var(--accent-text)}   /* étoile = « tout neuf » — décorative, renfort du texte */
.onhint-ic svg{display:block}

/* ───────── VUE AGENDA — les RENDEZ-VOUS notés, à glance (demande Rashid « comment je visualise ? ») ─────────
   Lecture FILTRÉE du fil L1 (actes `rdv`), DANS l'onglet Activité, près du Journal (panneau, PAS un 5e onglet).
   Le « quand » EN AVANT (la question : voir les RDV d'un coup d'œil). Tokens sémantiques UNIQUEMENT → sombre
   gratuit ([data-theme=dark] bascule les vars). Statut HONNÊTE (jamais la couleur seule, WCAG 1.4.1 : le MOT
   « confirmé »/« à confirmer » est toujours là). Tient en 375px (wrap). Aucune animation (rien à couper en
   prefers-reduced-motion). État vide honnête (.agenda-empty) = ton sobre, jamais un faux RDV. */
.agenda-panel{padding:16px}
.agenda-zone{margin-top:2px}
.agenda-feed{list-style:none;margin:0;padding:0}
.agenda-it{position:relative;display:flex;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}
.agenda-it:last-child{border-bottom:0}
.agenda-bd{flex:1;min-width:0}
.agenda-top{display:flex;align-items:center;flex-wrap:wrap;gap:8px;row-gap:4px}   /* wrap → tient en 375px */
.agenda-when{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:12.5px;font-weight:700;letter-spacing:.01em;color:var(--text)}  /* le « quand » EN AVANT, tel que noté */
.agenda-when svg{width:14px;height:14px;flex:0 0 auto;color:var(--text-2)}
.agenda-when--none{color:var(--text-3);font-style:italic;font-weight:600}         /* « Date à préciser » : honnête, sobre */
.agenda-state{font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:3px 8px;border-radius:99px;background:var(--surface-2);color:var(--text-2);margin-left:auto}  /* MOT d'état (a11y : pas couleur-seule) */
.agenda-state.ok{background:var(--success-tint);color:var(--success)}             /* « confirmé » */
.agenda-state.log{background:var(--surface-2);color:var(--text-2)}                /* « à confirmer » */
.agenda-ti{font-size:13.5px;color:var(--text);line-height:1.45;margin:4px 0 0}    /* le titre du RDV */
.agenda-foot{margin-top:8px}
.agenda-link{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--accent-text)}
.agenda-link svg{width:13px;height:13px;flex:0 0 auto}
.agenda-link--inert{color:var(--text-3);font-weight:600;cursor:default}           /* noté/non branché → inerte, honnête */
.agenda-dot{flex:0 0 auto;width:12px;height:12px;border-radius:50%;margin-top:4px;background:var(--text-3)}
.agenda-it--ok .agenda-dot{background:var(--success)}                              /* plein  = confirmé (dans l'agenda) */
.agenda-it--todo .agenda-dot{background:var(--surface);border:2px solid var(--text-3)}  /* anneau = à confirmer (noté) */
.agenda-empty{margin-top:4px}

/* ───────── RÉSILIENCE — indicateur d'INDISPONIBILITÉ (store KO) : « données momentanément indisponibles » ─────────
   L'INVERSE d'un état vide : il dit « on n'a PAS PU lire », jamais « il n'y a rien » (anti silent-failure /
   escalade honnête). Ton sobre, daltonien-safe : icône d'ALERTE (triangle) + MOT explicite (jamais la couleur
   seule, WCAG 1.4.1) ; ambre sémantique = signal de RENFORT, pas l'unique porteur de sens. Tokens sémantiques
   UNIQUEMENT → sombre gratuit ([data-theme=dark] bascule les vars). Posé dans les zones de panneau (.jact-zone,
   .brief-zone, .agenda-zone) ET inline sur la carte (.pouls--down). */
.degrade{display:flex;align-items:flex-start;gap:9px;margin-top:4px;padding:13px 15px;border-radius:14px;
  background:var(--warning-tint);border:1px solid color-mix(in srgb,var(--warning) 28%,transparent);
  font-size:13px;line-height:1.5;color:var(--text-2)}
.degrade b{color:var(--text);font-weight:700}                       /* « Données momentanément indisponibles. » en avant */
.degrade-ic{display:inline-flex;flex:0 0 auto;margin-top:1px;color:var(--warning)}  /* alerte ambre — renfort, pas le seul signal */
.degrade-ic svg{display:block}
.pouls--down{color:var(--warning);font-weight:600}                  /* « Indisponible un instant » sur la carte du renfort */
.pouls--down .pouls-ic{color:var(--warning)}

@keyframes jactpulse{0%,100%{box-shadow:0 0 0 3px var(--warning-tint)}50%{box-shadow:0 0 0 6px transparent}}

/* ───────── prefers-reduced-motion : coupe rotation/halo/onde/flottement/pouls ───────── */
@media (prefers-reduced-motion:reduce){
  .lb .rfl .av .st.ok,.lb .tw-ring,.lb .tw-core::before,.lb .tw-wave i,.lb .tw-t,.lb .tw-t.on .dot{animation:none!important}
  .lb .rfl,.lb .hire,.lb .act,.lb .talk-btn,.lb .tw-t,.lb .facets a,.lb .btn.amber{transition:none}
  .jact--review .jact-dot{animation:none}                    /* halo ambre « à valider » figé */
}

/* ============================================================
   PORT V3 — Phase 2c : COQUILLE EN DALLE FLOTTANTE (app-shell).
   Desktop (≥981px) UNIQUEMENT : le body cadre (overflow caché), la dalle clippe
   en arrondi, le .main scrolle À L'INTÉRIEUR (topbar sticky dedans). Le mobile
   (<981px) reste INCHANGÉ (drawer fixe). Surcharge la sidebar flottante (l.793)
   par l'ordre source. Enora reste fixed (flotte au-dessus).
   ============================================================ */
@media (min-width:981px){
  .esp:has(.shell){height:100vh;overflow:hidden;padding:16px}
  .shell{height:calc(100vh - 32px);min-height:0;border-radius:24px;overflow:hidden;border:1px solid color-mix(in srgb,var(--line),transparent 22%);box-shadow:var(--shadow-pop)}
  .side{position:relative;top:auto;margin:0;height:100%;border-radius:0;border:0;border-right:1px solid color-mix(in srgb,var(--navy),white 9%);box-shadow:none}
  .main{height:100%;overflow-y:auto;overflow-x:hidden}
}

/* ============================================================
   PORT V3 — TOP-NAV (sections en pills) + RAIL FIN « votre staff » (agents).
   Desktop ≥981px : sections → top-nav horizontal ; la sidebar est reshapée en
   rail d'avatars d'agents. Mobile <981px : INCHANGÉ (drawer = sidebar complète,
   top-nav masqué → IA riche préservée). Décision Sponsor « forcer le top-nav ».
   ============================================================ */
.topnav{display:none}
@media (min-width:981px){
  .topnav{display:flex;align-items:center;gap:3px;margin-right:auto;min-width:0}
  .topbar .crumb{display:none}
  .menu-btn{display:none}
  .tn-pill{font-size:13.5px;font-weight:600;color:var(--text-2);padding:8px 13px;border-radius:99px;white-space:nowrap;display:inline-flex;align-items:center;gap:7px;transition:background .14s,color .14s}
  .tn-pill:hover{color:var(--text);background:var(--surface-2)}
  .tn-pill.on{background:var(--primary);color:#fff}
  .tn-ct{font-family:var(--mono);font-size:9.5px;font-weight:700;padding:1px 6px;border-radius:99px;background:color-mix(in srgb,currentColor,transparent 82%)}
  /* rail fin = « votre staff » (avatars) ; sections retirées (→ top-nav) */
  .shell{--sidebar:76px}
  .side .nav-sections{display:none}
  .side .brand .bn,.side .brand .pj,.side-org .oi,.side .nav-lbl,.sa .nm,.sa .st,.side-foot .trial-chip,.side-acct .ai{display:none}
  .side .brand{justify-content:center;gap:0}
  .side-top{padding:16px 0 10px}
  .side-org{justify-content:center;padding:9px 0;margin:6px 12px}
  .nav-scroll{padding:8px 10px}
  .sa{justify-content:center;gap:0;padding:8px 0}
  .side-foot{padding:10px 0 12px}
  .side-acct{justify-content:center;padding:0}
}
/* essai en mini-pill (top-bar desktop) + overflow gracieux des pills 981–1300px */
.tn-trial{display:none}
@media (min-width:981px){
  .topnav{overflow-x:auto;scrollbar-width:none}
  .topnav::-webkit-scrollbar{display:none}
  .tn-trial{display:inline-flex;align-items:center;gap:6px;flex:none;font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--primary-text);background:var(--primary-tint);padding:8px 12px;border-radius:99px;white-space:nowrap}
  .tn-trial:hover{filter:brightness(.97)}
}
/* ============================================================
   PORT V3 — Board « Parcours » : le parcours-type d'une demande (étapes → escalade → suivi).
   Le pivot (escalade) = carte sombre coral. Responsive : colonnes → empilées <900px.
   ============================================================ */
.lb .pcq{display:flex;align-items:stretch;gap:0;flex-wrap:wrap;margin-bottom:var(--gap)}
.lb .pcq-stage{flex:1;min-width:210px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1);padding:16px;display:flex;flex-direction:column}
.lb .pcq-sh{display:flex;align-items:center;gap:9px;margin-bottom:13px}
.lb .pcq-n{width:24px;height:24px;border-radius:8px;background:var(--primary-tint);color:var(--primary-text);display:grid;place-items:center;font-family:var(--mono);font-size:12px;font-weight:700;flex:none}
.lb .pcq-sh b{font-family:var(--cond);font-weight:600;font-size:15px;text-transform:uppercase;letter-spacing:.02em;color:var(--text)}
.lb .pcq-when{margin-left:auto;font-family:var(--mono);font-size:9px;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;text-align:right;max-width:96px;line-height:1.3}
.lb .pcq-steps{display:flex;flex-direction:column;gap:9px}
.lb .pcq-step{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line)}
.lb .pcq-tx{flex:1;min-width:0}
.lb .pcq-tx b{display:block;font-size:13px;font-weight:700;color:var(--text);line-height:1.25}
.lb .pcq-tx span{display:block;font-size:11.5px;color:var(--text-2);margin-top:1px}
.lb .pcq-mk{flex:none;display:grid;place-items:center;color:var(--success)}
.lb .pcq-do .pcq-mk{color:var(--text-3)}
.lb .pcq-esc{background:var(--navy);border-color:transparent}
.lb .pcq-esc .pcq-tx b{color:#fff}
.lb .pcq-esc .pcq-tx span{color:rgba(255,255,255,.72)}
.lb .pcq-esc .pcq-mk{color:var(--danger)}
.lb .pcq-chev{flex:0 0 30px;display:flex;align-items:center;justify-content:center;color:var(--text-3);align-self:center}
.lb .pcq-chev svg{width:18px;height:18px}
@media (max-width:900px){.lb .pcq{flex-direction:column}.lb .pcq-chev{transform:rotate(90deg);flex-basis:24px;height:24px}}
