/* Polices locales (aucune ressource externe) */
@font-face{font-family:"Archivo";font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(fonts/archivo-latin-wdth-normal.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:"Archivo";font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(fonts/archivo-latin-ext-wdth-normal.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:500;font-display:swap;src:url(fonts/jetbrains-mono-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:700;font-display:swap;src:url(fonts/jetbrains-mono-latin-700-normal.woff2) format("woff2")}
:root{
  --paper:#FFFFFF;--paper2:#F3F3F6;--paper3:#F7F6FB;--line:#E3E1EE;--line2:#CFCBE0;
  --ink:#14102E;--ink2:#4A4566;--ink3:#6E6889;
  --night:var(--m-nuit);--night2:#1B1240;--snow2:#C9C4E6;--snow3:#9A94C2;
  --lime:var(--m-accent2);--violet:var(--m-accent);--violet-bg:#EEE7FB;--ok:#2E7D5B;--ok-bg:#E5F3EC;--warn:#A24B0A;--warn-bg:#FFF2E5;--err:#B42318;--err-bg:#FDECEA;
  --grad:linear-gradient(115deg,#2438C9 0%,var(--violet) 48%,#A0209B 100%);
  --f-display:"Archivo","Arial Narrow",Arial,sans-serif;
  --f-body:"Archivo",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  color-scheme:light;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font:15px/1.5 var(--f-body);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;}
h1,h2,h3,h4,p{margin:0}
button{font:inherit;color:inherit;cursor:pointer}
input,select,textarea{font:inherit;color:inherit}
a{color:inherit}
[hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ── atomes ── */
.tag{font:500 11px/1.2 var(--f-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--ink3);display:inline-flex;align-items:center;gap:9px}
.tag::before{content:"";width:16px;height:2px;background:var(--lime);display:inline-block}
.tag.nol::before{display:none}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;font:650 14px/1 var(--f-body);padding:11px 17px;border:1.5px solid transparent;white-space:nowrap;cursor:pointer;text-decoration:none;background:none;color:inherit}
.btn.sm{padding:8px 13px;font-size:13px}
.btn.xs{padding:6px 10px;font-size:12px}
.btn.ink{background:var(--ink);color:#fff}
.btn.ink:hover{background:var(--violet)}
.btn.lime{background:var(--lime);color:var(--night)}
.btn.lime:hover{filter:brightness(.95)}
.btn.line{border-color:var(--line2);background:#fff}
.btn.line:hover{border-color:var(--ink)}
.btn.ghost{color:var(--ink2)}
.btn.ghost:hover{background:var(--paper2);color:var(--ink)}
.btn.danger{color:var(--err);border-color:#F1C4BF;background:#fff}
.btn.danger:hover{background:var(--err-bg)}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.btn svg{width:16px;height:16px}
.badge{display:inline-flex;align-items:center;gap:5px;font:600 11px/1 var(--f-body);padding:5px 8px;border-radius:999px;background:var(--paper2);color:var(--ink2);white-space:nowrap}
.badge.v{background:var(--violet-bg);color:var(--violet)}
.badge.g{background:var(--ok-bg);color:var(--ok)}
.badge.w{background:var(--warn-bg);color:var(--warn)}
.badge.r{background:var(--err-bg);color:var(--err)}
.badge.l{background:var(--lime);color:var(--night)}
.badge.k{background:var(--ink);color:#fff}
.mono{font-family:var(--f-mono)}
.muted{color:var(--ink3)}
.av{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font:800 11px var(--f-body);flex:none;background:var(--violet-bg);color:var(--violet)}
.av.t{background:var(--ink);color:var(--lime)}
.av.lg{width:44px;height:44px;font-size:14px}
.ico{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.field{display:grid;gap:6px;margin-bottom:14px}
.field>span{font:500 11px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink3)}
.field small{color:var(--ink3);font-size:12px}
.inp{width:100%;border:1.5px solid var(--line2);border-radius:10px;padding:10px 12px;background:#fff;outline:none}
.inp:focus{border-color:var(--violet);box-shadow:0 0 0 3px var(--violet-bg)}
textarea.inp{min-height:96px;resize:vertical;line-height:1.45}
.row{display:flex;gap:10px;align-items:center}
.row.rwrap{flex-wrap:wrap}
.sp{flex:1}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.err-msg{color:var(--err);font-size:13px;margin:-6px 0 10px}

/* ── bandeau ── */
.top{position:sticky;top:0;z-index:40;background:var(--night);color:#fff;display:flex;align-items:center;gap:18px;min-height:62px;padding:8px 24px}
.top::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--grad)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#fff}
.brand .mk{width:30px;height:30px;border-radius:9px;background:var(--lime);display:grid;place-items:center}
.brand .mk svg{width:18px;height:18px;stroke:var(--night);fill:none;stroke-width:2.4}
.brand b{white-space:nowrap;font:800 17px var(--f-display);font-stretch:85%;letter-spacing:.01em;border-bottom:1.5px dashed rgba(214,254,0,.55);padding-bottom:1px}
.top .space{font:500 11px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--snow3);border-left:1px solid rgba(255,255,255,.18);padding-left:16px}
.top nav{display:flex;gap:4px;margin-left:6px;overflow-x:auto}
.top nav button{font:550 14px var(--f-body);color:var(--snow2);padding:8px 12px;border-radius:999px;background:none;border:0;white-space:nowrap;display:inline-flex;gap:6px;align-items:center}
.top nav button:hover,.top nav button.on{background:rgba(255,255,255,.1);color:#fff}
.top nav .nb{background:var(--lime);color:var(--night);border-radius:999px;font:700 10.5px var(--f-mono);padding:2px 6px}
.top .who{margin-left:auto;display:flex;align-items:center;gap:10px}
.chip{white-space:nowrap;display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:5px 12px 5px 5px;font:500 12px var(--f-body);color:#fff;line-height:1.25;background:none}
.chip i{width:26px;height:26px;border-radius:50%;background:var(--lime);color:var(--night);display:grid;place-items:center;font:800 11px var(--f-body);font-style:normal}
.chip small{display:block;font:500 10px var(--f-mono);color:var(--snow3);letter-spacing:.04em;text-transform:uppercase}

/* ── page ── */
.wrap{max-width:1240px;margin:0 auto;padding:34px 24px 60px}
.wrap.wide{max-width:1440px}
.ph{display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:26px}
.ph h1{font:780 clamp(32px,4.2vw,46px)/1.02 var(--f-display);font-stretch:74%;margin-top:10px}
.ph h1 u{text-decoration:none;color:var(--violet)}
.ph p{color:var(--ink2);font-size:17px;max-width:680px;margin-top:10px}
.ph .act{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
h2.sec{font:740 24px/1.15 var(--f-display);font-stretch:80%;margin:36px 0 6px}
p.sec{color:var(--ink3);font-size:14px;margin-bottom:16px}
.panel{border:1px solid var(--line);border-radius:14px;background:#fff;padding:20px}
.panel.soft{background:var(--paper3)}
.panel h3{font:720 18px var(--f-display);font-stretch:85%;margin-bottom:12px}
.cols{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}
.cols.l{grid-template-columns:300px minmax(0,1fr)}

/* ── connexion ── */
.login{min-height:calc(100vh - 58px);display:grid;grid-template-columns:minmax(0,1.15fr) minmax(380px,.85fr)}
.login .pic{position:relative;background:var(--night);color:#fff;overflow:hidden;padding:48px;display:flex;flex-direction:column;justify-content:space-between}
.login .pic .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.login .pic::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,12,44,.55) 0%,rgba(18,12,44,.15) 40%,rgba(18,12,44,.85) 100%)}
.login .pic>*:not(.bg){z-index:1}
.login .pic>*{position:relative}
.login .pic h1{font:800 clamp(44px,5.6vw,78px)/.95 var(--f-display);font-stretch:70%;margin-top:18px}
.login .pic h1 em{font-style:normal;color:var(--lime)}
.login .pic p{color:var(--snow2);font-size:18px;max-width:460px;margin-top:18px}
.login .pic .ph-note{font:500 10.5px var(--f-mono);color:var(--snow3);letter-spacing:.05em}
.login .form{padding:56px clamp(24px,5vw,72px);display:flex;flex-direction:column;justify-content:center;max-width:560px}
.login .form h2{font:760 30px var(--f-display);font-stretch:78%;margin:10px 0 22px}
.login .note{font-size:12.5px;color:var(--ink3);margin-top:18px;line-height:1.5}
.demo-acc{margin-top:26px;border-top:1px solid var(--line);padding-top:18px;display:grid;gap:8px}
.demo-acc button{display:flex;align-items:center;gap:10px;text-align:left;border:1px solid var(--line);background:#fff;border-radius:12px;padding:9px 12px}
.demo-acc button:hover{border-color:var(--violet);background:var(--paper3)}
.demo-acc button b{font-size:13.5px;display:block}
.demo-acc button small{color:var(--ink3);font-size:12px}
.demo-acc code{margin-left:auto;font:500 11px var(--f-mono);color:var(--ink3)}

/* ── espace client ── */
.hello{background:var(--night);color:#fff;border-radius:18px;padding:30px 32px;position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:end}
.hello::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--grad)}
.hello .tag{color:var(--snow3)}
.hello h1{font:800 clamp(34px,4.6vw,56px)/1 var(--f-display);font-stretch:72%;margin-top:12px}
.hello h1 em{font-style:normal;color:var(--lime)}
.hello p{color:var(--snow2);margin-top:12px;max-width:560px}
.hello .until{font:500 11px var(--f-mono);color:var(--snow3);letter-spacing:.05em;text-transform:uppercase;text-align:right}
.hello .until b{display:block;color:#fff;font:700 15px var(--f-body);letter-spacing:0;text-transform:none;margin-top:4px}
.news{display:grid;gap:8px;margin-top:18px}
.news button{display:flex;gap:12px;align-items:center;text-align:left;border:1px solid var(--line);border-left:4px solid var(--lime);border-radius:0 12px 12px 0;background:#fff;padding:12px 14px}
.news button:hover{background:var(--paper3)}
.news b{font-size:14.5px}
.news span{color:var(--ink3);font-size:13px}
.pcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.pcard{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff;text-align:left;padding:0;display:flex;flex-direction:column}
.pcard:hover{border-color:var(--ink);transform:translateY(-1px)}
.pcard .cov{aspect-ratio:3/1.6;position:relative;background:var(--night)}
.pcard .cov img,.pcard .cov svg{width:100%;height:100%;display:block;object-fit:cover}
.pcard .cov::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,12,44,.45),rgba(18,12,44,0) 45%)}
.pcard .cov .num{z-index:1}
.pcard .cov .num{position:absolute;left:16px;top:14px;font:700 12px var(--f-mono);color:var(--lime)}
.pcard .cov .fn{position:absolute;right:12px;bottom:10px;font:500 9.5px var(--f-mono);color:rgba(255,255,255,.45)}
.pcard .bd{padding:16px 18px 18px;display:grid;gap:8px}
.pcard h3{font:740 21px/1.1 var(--f-display);font-stretch:80%}
.pcard p{color:var(--ink2);font-size:14px}
.pcard .meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.refc{display:flex;gap:12px;align-items:center}
.refc b{display:block}
.refc>div>span{color:var(--ink3);font-size:13px;display:block}
.kv{display:grid;gap:10px;margin-top:14px;font-size:13.5px}
.kv div{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:10px}
.kv dt,.kv .k{color:var(--ink3)}
.livs{display:grid;gap:10px}
.liv{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:14px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:#fff;text-align:left;width:100%}
.liv:hover{border-color:var(--ink)}
.liv .ty{width:52px;height:52px;border-radius:12px;background:var(--night);display:grid;place-items:center;color:var(--lime)}
.liv .ty .ico{width:22px;height:22px}
.liv b{font-size:15.5px;display:block}
.liv span{font-size:13px;color:var(--ink3)}
.liv .rt{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.tl{display:grid;gap:0;margin-top:6px}
.tl .it{display:grid;grid-template-columns:16px minmax(0,1fr);gap:12px;padding-bottom:16px;position:relative}
.tl .it::before{content:"";position:absolute;left:7px;top:16px;bottom:0;width:2px;background:var(--line)}
.tl .it:last-child::before{display:none}
.tl .dot{width:16px;height:16px;border-radius:50%;border:3px solid var(--violet);background:#fff;margin-top:2px}
.tl .it.cur .dot{background:var(--lime);border-color:var(--ink)}
.tl b{font-size:14.5px}
.tl p{font-size:13.5px;color:var(--ink2);margin-top:2px}
.tl ul{margin:6px 0 0;padding-left:18px;font-size:13px;color:var(--ink2)}

/* ── visionneuse maquette ── */
.vbar{position:sticky;top:0;z-index:45;background:var(--night);color:#fff;display:flex;align-items:center;gap:12px;min-height:52px;padding:6px 16px;flex-wrap:wrap}
.vbar::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--grad)}
.vbar .t{font:700 14.5px var(--f-body)}
.vbar .t small{display:block;font:500 10px var(--f-mono);color:var(--snow3);letter-spacing:.05em;text-transform:uppercase}
.vbar select{background:var(--night2);color:#fff;border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:6px 10px;font:600 12.5px var(--f-body)}
.vbar .btn.line{background:transparent;color:#fff;border-color:rgba(255,255,255,.28)}
.vbar .btn.line:hover{border-color:#fff}
.vbar .btn.on{background:var(--lime);color:var(--night);border-color:var(--lime)}
.stage{background:#E9E8EF;min-height:calc(100vh - 110px);padding:18px;position:relative}
.stage.pointing [data-zone]{outline:2px dashed var(--violet);outline-offset:2px;cursor:crosshair;position:relative}
.stage.pointing [data-zone]:hover{outline-color:var(--lime);outline-style:solid;background-image:linear-gradient(rgba(107,43,217,.06),rgba(107,43,217,.06))}
.stage.pointing [data-zone]:hover::after{content:attr(data-zone);position:absolute;left:6px;top:-11px;background:var(--ink);color:var(--lime);font:600 10.5px var(--f-mono);padding:3px 7px;border-radius:6px;z-index:5;pointer-events:none}
.pin{position:absolute;width:24px;height:24px;border-radius:50% 50% 50% 4px;background:var(--violet);color:#fff;font:700 10.5px var(--f-mono);display:grid;place-items:center;border:2px solid #fff;box-shadow:0 2px 6px rgba(20,16,46,.35);z-index:6;transform:translate(-4px,-20px);cursor:pointer}
.pin.mine{background:var(--ink);color:var(--lime)}
.archived-note{background:var(--warn-bg);color:var(--warn);font-size:13px;padding:8px 14px;border-radius:10px;margin-bottom:12px;display:flex;gap:8px;align-items:center}

/* ── tiroir remarques (kit) ── */
.drawer{position:fixed;top:52px;right:0;bottom:58px;width:min(440px,100vw);background:#fff;border-left:1px solid var(--line);z-index:60;visibility:hidden;display:flex;flex-direction:column;transform:translateX(105%);transition:transform .22s ease}
.drawer.open{transform:none;visibility:visible;box-shadow:-20px 0 50px rgba(20,16,46,.12)}
.dh{padding:16px 18px 0;border-bottom:1px solid var(--line)}
.dh h3{font:760 22px var(--f-display);font-stretch:80%}
.dh .x{margin-left:auto;border:0;background:var(--paper2);border-radius:50%;width:32px;height:32px;display:grid;place-items:center}
.dtabs{display:flex;gap:2px;margin-top:12px;overflow-x:auto}
.dtabs button{border:0;background:none;padding:9px 10px;font:600 13px var(--f-body);color:var(--ink3);border-bottom:2px solid transparent;white-space:nowrap}
.dtabs button.on{color:var(--ink);border-color:var(--violet)}
.dbody{flex:1;overflow:auto;padding:14px 16px;display:grid;gap:12px;align-content:start;background:var(--paper3)}
.rm{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 13px}
.rm.hl{border-color:var(--violet);box-shadow:0 0 0 3px var(--violet-bg)}
.rm .hd{display:flex;gap:9px;align-items:center}
.rm .hd b{font-size:13.5px}
.rm .hd .w{font-size:11.5px;color:var(--ink3);line-height:1.3}
.rm .loc{font:500 10.5px var(--f-mono);color:var(--ink3);letter-spacing:.02em;margin:8px 0 4px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.rm .loc .fx{background:var(--paper2);border-radius:5px;padding:2px 6px}
.rm .tx{font-size:14px;white-space:pre-wrap;line-height:1.45}
.rm .tx.gone{color:var(--ink3);font-style:italic}
.rm .prec{border-left:3px solid var(--lime);padding:4px 0 4px 10px;margin-top:8px;font-size:13.5px}
.rm .prec small{display:block;color:var(--ink3);font-size:11.5px}
.rm .reps{margin-top:10px;display:grid;gap:8px;border-top:1px solid var(--line);padding-top:10px}
.rep{display:flex;gap:8px}
.rep .av{width:24px;height:24px;font-size:9.5px}
.rep .bb{background:var(--paper2);border-radius:4px 12px 12px 12px;padding:7px 10px;font-size:13.5px;flex:1}
.rep.team .bb{background:var(--violet-bg)}
.rep .bb small{display:block;color:var(--ink3);font-size:11px;margin-bottom:2px}
.rm .ft{display:flex;gap:4px;flex-wrap:wrap;margin-top:10px;align-items:center}
.rm .ft .btn{padding:5px 9px;font-size:12px}
.rm .inline{margin-top:8px;display:grid;gap:6px}
.rm .confirm{background:var(--err-bg);border-radius:10px;padding:10px;margin-top:8px;font-size:13px}
.dcomp{border-top:1px solid var(--line);padding:12px 16px 14px;display:grid;gap:8px;background:#fff}
.dcomp .r{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.dcomp select,.dcomp textarea{border:1.5px solid var(--line2);border-radius:9px;padding:7px 9px;font-size:13px;background:#fff;width:100%}
.dcomp textarea{min-height:70px;resize:vertical}
.dcomp label{font:500 10px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);display:grid;gap:4px}
.dcomp label select,.dcomp label textarea,.rv label select,.rv label input,.rv label textarea{font:500 13px var(--f-body);letter-spacing:0;text-transform:none;color:var(--ink)}
.dcomp .acts{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.dcomp .opt{display:flex;gap:6px;align-items:center;font:500 12.5px var(--f-body);color:var(--ink2);text-transform:none;letter-spacing:0}
.dcomp .pt{font-size:12px;color:var(--violet);display:flex;gap:6px;align-items:center}
.ro-note{font-size:13px;color:var(--ink3);background:var(--paper2);border-radius:10px;padding:10px 12px}
.fnl{display:grid;gap:10px}
.fni{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px}
.fni b{font-size:14px}
.fni p{font-size:12.5px;color:var(--ink3);margin:2px 0 8px}
.seg3{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}
.seg3 button{border:1.5px solid var(--line2);background:#fff;border-radius:9px;padding:7px 4px;font:600 12px var(--f-body);color:var(--ink2)}
.seg3 button.on{background:var(--ink);color:var(--lime);border-color:var(--ink)}

/* ── document ── */
.docv{display:grid;grid-template-columns:180px minmax(0,1fr);gap:20px;max-width:1100px;margin:0 auto}
.thumbs{display:grid;gap:10px;align-content:start;position:sticky;top:70px}
.thumbs button{border:1.5px solid var(--line2);background:#fff;border-radius:8px;padding:6px;font:500 11px var(--f-mono);color:var(--ink3);text-align:left}
.thumbs button.on{border-color:var(--violet);color:var(--violet)}
.thumbs .mini{aspect-ratio:1/1.41;background:var(--paper2);border-radius:4px;margin-bottom:4px;display:grid;gap:3px;padding:8px;align-content:start}
.thumbs .mini i{height:3px;background:var(--line2);border-radius:2px;display:block}
.page{background:#fff;aspect-ratio:1/1.414;box-shadow:0 10px 30px rgba(20,16,46,.12);border-radius:4px;padding:7% 8%;position:relative;overflow:hidden;font-size:clamp(9px,1.2vw,13px);max-width:760px}
.page .wm{position:absolute;right:-30%;top:46%;transform:rotate(-30deg);font:700 2.2em var(--f-display);color:rgba(107,43,217,.07);white-space:nowrap;pointer-events:none}
.page h2{font:800 2.6em/1 var(--f-display);font-stretch:74%;margin:1em 0 .4em}
.page h3{font:740 1.4em var(--f-display);font-stretch:80%;margin:1.2em 0 .4em}
.page p{color:var(--ink2);margin:.5em 0}
.page table{width:100%;border-collapse:collapse;margin:1em 0;font-size:.95em}
.page th{font:500 .8em var(--f-mono);text-transform:uppercase;color:var(--ink3);text-align:left;border-bottom:1px solid var(--line);padding:.5em 0}
.page td{border-bottom:1px solid var(--line);padding:.55em 0}
.page td:last-child,.page th:last-child{text-align:right}
.page .ft{position:absolute;left:8%;right:8%;bottom:4%;display:flex;justify-content:space-between;font:500 .78em var(--f-mono);color:var(--ink3)}
.page .bar{height:.5em;border-radius:3px;background:var(--grad);width:40%}
.page .ph-block{height:24%;border-radius:8px;background:linear-gradient(135deg,var(--night),var(--night2));margin:1em 0;position:relative}
.page .lines i{display:block;height:.55em;background:var(--paper2);border-radius:3px;margin:.6em 0}
.accord{border:2px solid var(--ok);background:var(--ok-bg);color:var(--ok);border-radius:10px;padding:.8em 1em;font-weight:600;margin-top:1em}

/* ── tableaux ── */
.tw{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:#fff}
table.t{border-collapse:collapse;width:100%;font-size:14px;font-variant-numeric:tabular-nums}
table.t th{font:500 10.5px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--paper3)}
table.t td{padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:middle}
table.t tr:last-child td{border-bottom:0}
table.t tr.click{cursor:pointer}
table.t tr.click:hover td{background:var(--paper3)}
table.t tr.sel td{background:var(--violet-bg)}

/* ── admin ── */
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.kpi{border:1px solid var(--line);border-radius:14px;padding:16px 18px;background:#fff;text-align:left}
.kpi .n{font:800 38px/1 var(--f-display);font-stretch:74%;margin-top:8px}
.kpi p{font-size:13px;color:var(--ink3);margin-top:6px}
.kpi.hot{background:var(--night);color:#fff;border-color:var(--night)}
.kpi.hot .n{color:var(--lime)}
.kpi.hot p,.kpi.hot .tag{color:var(--snow3)}
.score{display:flex;align-items:center;gap:10px;min-width:150px}
.score .trk{flex:1;height:8px;border-radius:4px;background:var(--paper2);position:relative;overflow:hidden;min-width:70px}
.score .trk i{position:absolute;left:0;top:0;bottom:0;border-radius:4px;background:var(--violet)}
.score b{font:700 13px var(--f-mono);min-width:26px;text-align:right}
.temp{font:700 10.5px var(--f-mono);letter-spacing:.05em;text-transform:uppercase;padding:4px 8px;border-radius:999px}
.temp.chaud{background:var(--lime);color:var(--night)}
.temp.tiede{background:var(--violet-bg);color:var(--violet)}
.temp.froid{background:var(--paper2);color:var(--ink3)}
.subtabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:20px;overflow-x:auto}
.subtabs button{border:0;background:none;padding:10px 12px;font:600 14px var(--f-body);color:var(--ink3);border-bottom:2px solid transparent;white-space:nowrap}
.subtabs button.on{color:var(--ink);border-color:var(--violet)}
.list{display:grid;gap:6px}
.list button{display:flex;gap:10px;align-items:center;text-align:left;width:100%;border:1px solid transparent;background:none;border-radius:10px;padding:9px 10px}
.list button:hover{background:var(--paper2)}
.list button.on{background:#fff;border-color:var(--line);box-shadow:inset 3px 0 0 var(--violet)}
.list b{font-size:14px;display:block}
.list span{font-size:12px;color:var(--ink3)}
.drop{border:2px dashed var(--line2);border-radius:16px;padding:30px;text-align:center;background:var(--paper3);transition:.15s}
.drop.over{border-color:var(--violet);background:var(--violet-bg)}
.drop b{font:740 19px var(--f-display);font-stretch:82%;display:block;margin:10px 0 4px}
.chk{display:grid;gap:6px;margin-top:14px}
.chk div{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;padding:8px 10px;border-radius:9px;background:#fff;border:1px solid var(--line)}
.chk .s{font:700 11px var(--f-mono);padding:2px 6px;border-radius:5px;flex:none}
.chk .ok .s{background:var(--ok-bg);color:var(--ok)}
.chk .wa .s{background:var(--warn-bg);color:var(--warn)}
.chk .er .s{background:var(--err-bg);color:var(--err)}
.consignes{background:var(--night);color:#fff;border-radius:16px;padding:20px;position:sticky;top:78px}
.consignes .tag{color:var(--snow3)}
.consignes h3{font:760 21px var(--f-display);font-stretch:80%;margin:8px 0 10px;color:#fff}
.consignes ol{margin:0;padding-left:20px;display:grid;gap:7px;font-size:13.5px;color:var(--snow2)}
.consignes ol b{color:#fff}
.consignes code{font:500 11.5px var(--f-mono);color:var(--lime)}
.consignes pre{background:var(--night2);color:#E9E6FA;border-radius:10px;padding:12px;max-height:320px;overflow:auto;font:500 11.5px/1.5 var(--f-mono);white-space:pre-wrap;margin-top:12px}
.consignes .btn.line{background:transparent;color:#fff;border-color:rgba(255,255,255,.3)}
.rv{border:1px solid var(--line);border-radius:14px;background:#fff;padding:14px 16px;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px}
.rv .meta{font:500 11px var(--f-mono);color:var(--ink3);display:flex;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.rv .txt{font-size:14.5px}
.rv .side{display:grid;gap:8px;align-content:start;border-left:1px solid var(--line);padding-left:16px}
.rv select,.rv input,.rv textarea{border:1.5px solid var(--line2);border-radius:9px;padding:7px 9px;font-size:13px;width:100%;background:#fff}
.rv textarea{min-height:54px;resize:vertical}
.rv label{font:500 10px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);display:grid;gap:4px}
.rv.dec-faire{box-shadow:inset 4px 0 0 var(--lime)}
.rv.dec-ecartee{opacity:.6}
.hbars{display:grid;gap:9px}
.hb{display:grid;grid-template-columns:170px minmax(0,1fr) 72px;gap:12px;align-items:center;font-size:13.5px;position:relative}
.hb .lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hb .trk{height:14px;position:relative}
.hb .trk i{position:absolute;left:0;top:0;bottom:0;border-radius:0 4px 4px 0;background:var(--violet);min-width:2px}
.hb .trk i.lo{background:#B9A6EC}
.hb .v{font:600 12.5px var(--f-mono);text-align:right;color:var(--ink2)}
.hb:hover .trk i{filter:brightness(1.15)}
.hb .tip{position:absolute;left:182px;bottom:calc(100% + 6px);background:var(--ink);color:#fff;font-size:12px;padding:7px 10px;border-radius:8px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .1s;z-index:5}
.hb:hover .tip{opacity:1}
.avis{display:flex;gap:4px;flex-wrap:wrap}
.legend{display:flex;gap:16px;font-size:12px;color:var(--ink3);margin-top:12px;flex-wrap:wrap}
.legend i{display:inline-block;width:12px;height:8px;border-radius:2px;margin-right:6px;vertical-align:middle}
.heat{display:grid;gap:6px}
.heat div{display:grid;grid-template-columns:minmax(0,1fr) 60px;gap:10px;align-items:center;padding:8px 10px;border-radius:8px;font-size:13px}
.heat div b{font-weight:600}
.heat div span{font:600 12px var(--f-mono);text-align:right}
.feed{display:grid;gap:0}
.feed div{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;padding:9px 0;border-top:1px solid var(--line);font-size:13.5px}
.feed div:first-child{border-top:0}
.feed time{font:500 11.5px var(--f-mono);color:var(--ink3)}
.feed .live{color:var(--violet);font-weight:600}

/* ── modale, toast, barre démo ── */
.layer{position:fixed;inset:0;background:rgba(18,12,44,.55);z-index:80;display:grid;place-items:center;padding:20px}
.modal{background:#fff;border-radius:18px;width:min(560px,100%);max-height:calc(100vh - 100px);overflow:auto;box-shadow:0 30px 80px rgba(0,0,0,.3)}
.modal.wide{width:min(860px,100%)}
.modal .mh{padding:20px 22px 0;display:flex;gap:12px;align-items:flex-start}
.modal .mh h3{font:760 24px var(--f-display);font-stretch:80%;margin-top:6px}
.modal .mh .x{margin-left:auto;border:0;background:var(--paper2);border-radius:50%;width:32px;height:32px;display:grid;place-items:center;flex:none}
.modal .mb{padding:18px 22px}
.modal .mf{padding:14px 22px 20px;display:flex;gap:8px;justify-content:flex-end;border-top:1px solid var(--line);flex-wrap:wrap}
.modal pre{background:var(--night);color:#E9E6FA;border-radius:12px;padding:16px;font:500 12px/1.55 var(--f-mono);white-space:pre-wrap;max-height:52vh;overflow:auto}
.pw{font:700 22px var(--f-mono);text-align:center;background:var(--paper2);border-radius:12px;padding:14px;letter-spacing:.06em}
.toasts{position:fixed;left:50%;bottom:74px;transform:translateX(-50%);z-index:90;display:grid;gap:8px;pointer-events:none}
.toast{background:var(--ink);color:#fff;padding:11px 16px;border-radius:12px;font-size:14px;box-shadow:0 10px 30px rgba(0,0,0,.25);display:flex;gap:8px;align-items:center}
.toast::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--lime)}
.dock{position:fixed;left:0;right:0;bottom:0;height:58px;z-index:70;background:#fff;border-top:1px solid var(--line);display:flex;align-items:center;gap:8px;padding:0 14px;overflow-x:auto}
.dock .lb{font:500 10.5px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);white-space:nowrap}
.dock button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 11px;font:600 12.5px var(--f-body);white-space:nowrap;display:inline-flex;gap:6px;align-items:center}
.dock button.on{background:var(--ink);color:var(--lime);border-color:var(--ink)}
.dock .sep{width:1px;height:24px;background:var(--line);flex:none}

@media (max-width:980px){
  .cols,.cols.l{grid-template-columns:1fr}
  .login{grid-template-columns:1fr}
  .login .pic{min-height:300px;padding:28px}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rv{grid-template-columns:1fr}
  .rv .side{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:12px}
  .docv{grid-template-columns:1fr}
  .thumbs{display:none}
  .hello{grid-template-columns:1fr}
  .hello .until{text-align:left}
  .consignes{position:static}
  .top .space{display:none}
}
@media (max-width:620px){
  .wrap{padding:22px 14px 50px}
  .top{padding:8px 14px;gap:10px}
  .top .who .chip span{display:none}
  .top{flex-wrap:wrap}
  .top nav{order:3;width:100%;margin-left:0}
  .top .who .btn{padding:7px 10px;font-size:12px}
  .hb{grid-template-columns:110px minmax(0,1fr) 40px}
  .grid2{grid-template-columns:1fr}
  .liv{grid-template-columns:44px minmax(0,1fr)}
  .liv .ty{width:44px;height:44px}
  .liv .rt{grid-column:1/-1;justify-content:flex-start}
}

/* ── v2 : admin à menu latéral ── */
.adm{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:calc(100vh - 58px)}
.sb{background:var(--night);color:#fff;position:sticky;top:0;height:calc(100vh - 58px);display:flex;flex-direction:column;padding:16px 12px;overflow:auto}
.sb-h{display:grid;gap:6px;padding:4px 8px 16px;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:10px}
.sb-h .space{font:500 10.5px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--snow3)}
.sb nav{display:grid;gap:2px}
.sb .grp{font:500 10px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--snow3);margin:16px 10px 6px}
.sb nav button{display:flex;align-items:center;gap:10px;background:none;border:0;color:var(--snow2);padding:9px 10px;border-radius:10px;font:550 14px var(--f-body);text-align:left}
.sb nav button:hover{background:rgba(255,255,255,.07);color:#fff}
.sb nav button.on{background:rgba(255,255,255,.12);color:#fff;box-shadow:inset 3px 0 0 var(--lime)}
.sb nav button em{margin-left:auto;font:700 10.5px var(--f-mono);font-style:normal;background:var(--lime);color:var(--night);border-radius:999px;padding:2px 7px}
.sb nav button em.n{background:rgba(255,255,255,.12);color:var(--snow2)}
.sb-f{margin-top:auto;padding-top:14px;border-top:1px solid rgba(255,255,255,.1)}
.am{min-width:0;background:var(--paper)}
.tb{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:16px;padding:10px 28px;min-height:60px}
.crumbs{display:flex;align-items:center;gap:6px;font-size:14px;white-space:nowrap}
.srch{position:relative;flex:1;max-width:520px;margin-left:auto;display:flex;align-items:center}
.srch .ico{position:absolute;left:12px;color:var(--ink3)}
.srch input{width:100%;border:1.5px solid var(--line2);border-radius:999px;padding:9px 14px 9px 38px;background:var(--paper3);outline:none;font-size:13.5px}
.srch input:focus{border-color:var(--violet);background:#fff}
.qres{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 40px rgba(20,16,46,.15);padding:6px;z-index:50;display:grid}
.qres button{display:flex;gap:10px;align-items:center;text-align:left;background:none;border:0;padding:9px 10px;border-radius:8px;font-size:13.5px}
.qres button:hover{background:var(--paper2)}
.mk{position:relative}
.mkm{position:absolute;right:0;top:calc(100% + 6px);background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 40px rgba(20,16,46,.15);padding:6px;z-index:50;display:grid;min-width:240px}
.mkm button{display:flex;gap:10px;align-items:center;background:none;border:0;text-align:left;padding:10px 12px;border-radius:8px;font:550 14px var(--f-body)}
.mkm button:hover{background:var(--paper2)}
.ac{padding:28px 28px 60px;max-width:1440px}
.ac .ph h1{font-size:clamp(30px,3.4vw,40px)}
.todo{display:grid;gap:8px}
.td{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff}
.td.p1{border-left:4px solid var(--lime)}
.td .ty{width:40px;height:40px;border-radius:10px;background:var(--paper2);display:grid;place-items:center;color:var(--violet)}
.td b{display:block;font-size:14.5px}
.td span{font-size:12.5px;color:var(--ink3)}
.minicl{display:grid;gap:4px;margin-top:10px}
.minicl button{display:grid;grid-template-columns:minmax(0,1fr) 96px auto;gap:10px;align-items:center;background:none;border:0;text-align:left;padding:8px;border-radius:10px}
.minicl button:hover{background:var(--paper2)}
.minicl b{display:block;font-size:13.5px}
.minicl span{font-size:11.5px;color:var(--ink3)}
.minicl .score{min-width:0}
.chead{display:flex;align-items:center;gap:16px;flex-wrap:wrap;border:1px solid var(--line);border-radius:16px;padding:18px 20px;background:#fff;margin-bottom:16px}
.chead h1{font:780 30px/1.05 var(--f-display);font-stretch:76%}
.cmeta{display:grid;gap:5px}
.inp.sm{padding:7px 10px;font-size:13px;border-radius:9px;width:auto;max-width:100%}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.pmini{display:grid;gap:4px;text-align:left;border:1px solid var(--line);border-radius:14px;background:#fff;padding:14px 16px}
.pmini:hover{border-color:var(--ink)}
.pmini b{font:740 18px var(--f-display);font-stretch:82%}
.pmini span.muted{font-size:12.5px}
.pmini.add{border-style:dashed;place-content:center;justify-items:center;text-align:center;color:var(--ink2);background:var(--paper3)}
.people{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px}
.people button{display:flex;gap:10px;align-items:center;text-align:left;border:1px solid var(--line);border-radius:12px;background:#fff;padding:10px 12px}
.people button div{flex:1;min-width:0}
.people b{display:block;font-size:14px}
.people span:not(.badge):not(.av){font-size:12px;color:var(--ink3)}
table.t.mx td,table.t.mx th{text-align:center}
table.t.mx td:first-child,table.t.mx th:first-child{text-align:left}
table.t.mx input{width:17px;height:17px;accent-color:var(--violet)}
.igrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
.icard b{display:block;font-size:15.5px}
.icard .row span{font-size:13px;color:var(--ink3)}
.ctabs{display:flex;gap:4px;margin:10px 0 4px;flex-wrap:wrap}
.ctabs button{border:1px solid rgba(255,255,255,.22);background:none;color:var(--snow2);border-radius:999px;padding:6px 11px;font:600 12.5px var(--f-body)}
.ctabs button.on{background:var(--lime);color:var(--night);border-color:var(--lime)}
.phase{background:var(--paper3);border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:13.5px;margin-top:14px}
.avl{display:grid;gap:8px;margin-top:16px;border-top:1px solid var(--line);padding-top:12px}
.avl div{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:13px}
.avl b{min-width:170px}

/* ── v2 : éléments client ── */
.linkbox{display:flex;gap:10px;align-items:center;background:var(--paper2);border:1.5px dashed var(--line2);border-radius:12px;padding:10px 12px;font-size:12.5px;word-break:break-all}
.linkbox .mono{flex:1}
pre.mailtxt{background:var(--paper2);color:var(--ink);border-radius:12px;padding:14px;font:500 12.5px/1.55 var(--f-mono);white-space:pre-wrap;max-height:40vh;overflow:auto}
.okbox{background:var(--ok-bg);color:var(--ok);border-radius:12px;padding:12px 14px;font-size:13.5px;margin-top:14px}
.tip{display:flex;gap:12px;align-items:flex-start;background:var(--violet-bg);color:var(--ink2);border-radius:12px;padding:12px 14px;font-size:13.5px;line-height:1.45;margin-top:16px}
.tip .ico{color:var(--violet);margin-top:1px}
.tip b{color:var(--ink)}
.rules{display:flex;gap:6px;flex-wrap:wrap;margin:-4px 0 6px}
.rules span{font-size:12px;padding:4px 8px;border-radius:999px;background:var(--paper2);color:var(--ink3)}
.rules span.ok{background:var(--ok-bg);color:var(--ok)}
.rules span.ok::before{content:"✓ "}
.roles{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.roles.three{grid-template-columns:repeat(3,1fr)}
.rolec{display:flex;gap:10px;align-items:flex-start;border:1.5px solid var(--line2);border-radius:12px;padding:10px 12px;cursor:pointer}
.rolec:has(input:checked){border-color:var(--violet);background:var(--violet-bg)}
.rolec b{display:block;font-size:14px}
.rolec small{color:var(--ink3);font-size:12px;line-height:1.35;display:block}
.chkl{display:grid;gap:6px;font-size:14px}
.chkl label{display:flex;gap:8px;align-items:center}
.pref{display:flex;gap:8px;align-items:center;border-top:1px solid var(--line);padding-top:10px;margin-top:4px;font-size:12.5px;color:var(--ink3)}
.pref .av{width:24px;height:24px;font-size:9.5px}
.apercu{background:var(--lime);color:var(--night);font:600 13px var(--f-body);padding:8px 24px;display:flex;gap:12px;align-items:center}
.mobnote{display:none;background:var(--violet-bg);color:var(--ink2);font-size:13px;padding:10px 16px;gap:8px;align-items:center}
.v0note{background:#FBFFE0;border-bottom:1px solid #E3EE9C;color:var(--ink2);font-size:13.5px;padding:10px 18px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.optb{position:absolute;right:10px;top:10px;background:var(--lime);color:var(--night);font:700 10px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;padding:3px 7px;border-radius:6px;z-index:4;pointer-events:none}
.cdcl{font-size:12px!important;color:var(--violet)!important}

@media (max-width:980px){
  .adm{grid-template-columns:1fr}
  .sb{position:static;height:auto;padding:10px}
  .sb nav{display:flex;overflow-x:auto;gap:4px}
  .sb .grp,.sb-f{display:none}
  .sb nav button{white-space:nowrap}
  .tb{flex-wrap:wrap;padding:10px 14px}
  .ac{padding:20px 14px 50px}
  .roles.three,.roles{grid-template-columns:1fr}
}
@media (max-width:720px){ .mobnote{display:flex} }
@media (max-width:980px){ .cols[style]{grid-template-columns:1fr!important} .minicl button{grid-template-columns:minmax(0,1fr) 90px auto} }
/* visionneuse : la maquette tourne dans son propre document */
.mqstage{padding:14px 18px 18px}
.mqframe{position:relative;height:calc(100vh - 150px);min-height:520px;border-radius:14px;overflow:hidden;background:#fff;box-shadow:0 0 0 1px rgba(20,16,46,.08),0 18px 40px -18px rgba(20,16,46,.35)}
.mqframe iframe{display:block;width:100%;height:100%;border:0;background:#fff}
.mqload{position:absolute;inset:0;display:grid;place-content:center;gap:12px;justify-items:center;color:var(--muted);font-size:13.5px;background:#fff;z-index:2}
.spin{width:26px;height:26px;border-radius:50%;border:3px solid #E3E1EC;border-top-color:var(--violet);animation:sp .8s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
@media (max-width:760px){.mqstage{padding:8px}.mqframe{height:calc(100vh - 190px);border-radius:10px}}

@media (max-width:720px){.drawer{top:0}}
.mailp{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#F1F0F5}
.mailp .mh2{display:grid;gap:2px;padding:10px 14px;background:#fff;border-bottom:1px solid var(--line);font-size:12.5px;color:var(--ink2)}
.mailp .mh2 b{display:inline-block;width:46px;color:var(--muted);font-weight:600}
.mailp .mbody{max-width:520px;margin:16px auto;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 2px 10px rgba(20,16,46,.08)}
.mailp .mbody>img{display:block;width:100%;aspect-ratio:3/1;object-fit:cover}
.mailp .mc{padding:20px 24px;font-size:14px;line-height:1.55;color:var(--ink)}
.mailp .mc p+p{margin-top:10px}
.mailp table{width:100%;margin-top:14px;border-collapse:collapse;font-size:13.5px}
.mailp td{padding:8px 0;border-top:1px solid var(--line)}
.mailp td:first-child{color:var(--muted);width:110px}
.mailp .mbtn{display:inline-block;background:var(--night);color:var(--lime);font-weight:700;padding:12px 22px;border-radius:10px}
.mailp .ms{font-size:12px;color:var(--muted)}
.mailp .mfoot{padding:12px 24px;font-size:11px;color:var(--muted);background:#FAFAFC;border-top:1px solid var(--line)}
.v0note{flex-wrap:nowrap}.v0note>span:not(.badge){flex:1}.v0note .badge{flex:none}
@media (max-width:720px){.v0note{flex-wrap:wrap}}

/* ── bannière client personnalisée ── */
.cban{border-radius:18px;padding:22px 32px 30px;color:#fff;position:relative;overflow:hidden;min-height:250px;display:flex;flex-direction:column;justify-content:space-between;gap:26px;box-shadow:0 18px 40px -24px rgba(20,16,46,.55)}
.cban::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--grad)}
.cb-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.clogo{height:34px;width:auto;max-width:190px;object-fit:contain;display:block}
.cmono{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;font:800 14px var(--f-body);color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.35);flex:none}
.cb-with{font:500 11px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.72);border-left:1px solid rgba(255,255,255,.28);padding-left:14px}
.cb-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:end}
.cban h1{font:800 clamp(32px,4.4vw,54px)/1 var(--f-display);font-stretch:72%;text-shadow:0 1px 18px rgba(0,0,0,.18)}
.cban h1 em{font-style:normal;color:var(--lime)}
.cban p{color:rgba(255,255,255,.86);margin-top:12px;max-width:560px}
.cban .until{font:500 11px var(--f-mono);color:rgba(255,255,255,.7);letter-spacing:.05em;text-transform:uppercase;text-align:right}
.cban .until b{display:block;color:#fff;font:700 15px var(--f-body);letter-spacing:0;text-transform:none;margin-top:4px}
.top .cobrand{color:rgba(255,255,255,.4);font-size:13px;margin:0 -6px}
.top .clogo.tblogo{height:24px;max-width:120px}
.top .cmono.tblogo{width:28px;height:28px;font-size:11px;border-radius:8px;min-height:0;padding:0;position:static}
.ph .act .clogo.onlight,.ph .act .cmono.onlight{display:none}
.chead .clogo.chd{height:48px;width:auto;max-width:150px;object-fit:contain;background:var(--night);border-radius:12px;padding:10px 14px}
.chead .cmono.chd{width:44px;height:44px;border-radius:12px}
.top .hw{color:var(--snow2);background:transparent}
.top .hw:hover{color:#fff;background:rgba(255,255,255,.08)}

/* ── « À vous de jouer » ── */
.nextc{margin-top:18px;display:grid;grid-template-columns:minmax(0,1.6fr) minmax(250px,1fr);border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden;box-shadow:0 10px 30px -22px rgba(20,16,46,.35)}
.nc-main{padding:22px 26px 24px;border-left:4px solid var(--lime)}
.nextc h2{font:780 clamp(22px,2.4vw,28px)/1.08 var(--f-display);font-stretch:78%;margin-top:8px}
.nextc .nc-main>p{color:var(--ink2);margin-top:8px;max-width:620px;font-size:15px}
.nc-prog{display:flex;align-items:center;gap:12px;margin:16px 0 6px;font:600 12px var(--f-mono);color:var(--ink3)}
.nc-prog .bar{flex:1;max-width:280px;height:6px;border-radius:9px;background:var(--paper2);overflow:hidden}
.nc-prog .bar i{display:block;height:100%;background:var(--violet);border-radius:9px}
.nc-list{list-style:none;padding:0;margin:8px 0 18px;display:grid;gap:4px}
.nc-list li{display:flex;gap:12px;align-items:center;padding:8px 10px;border-radius:10px}
.nc-list li.cur{background:var(--paper3);box-shadow:inset 0 0 0 1px var(--line)}
.nc-list .ck{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font:700 12px var(--f-mono);border:1.5px solid var(--line2);color:var(--ink3);flex:none;background:#fff}
.nc-list li.cur .ck{border-color:var(--violet);color:var(--violet)}
.nc-list li.ok .ck{background:var(--ok);border-color:var(--ok);color:#fff}
.nc-list li.ok .ck svg{width:14px;height:14px}
.nc-list li.ok b{color:var(--ink3);text-decoration:line-through;text-decoration-color:var(--line2)}
.nc-list b{font-size:14.5px;display:block}
.nc-list small{color:var(--ink3);font-size:12.5px}
.nc-side{background:var(--paper3);border-left:1px solid var(--line);padding:22px;display:grid;gap:14px;align-content:start}
.nc-rdv,.nc-then{display:grid;gap:3px}
.nc-rdv{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px}
.nc-rdv b{font:700 16px var(--f-body);margin-top:4px}
.nc-rdv span,.nc-then span{font-size:13.5px;color:var(--ink2)}
.nc-rdv small{color:var(--ink3);font-size:12.5px}
.nc-then{padding:0 4px}
.nc-then b{font-size:14.5px;margin-top:4px}
.nextc.fini .nc-main{border-left-color:var(--ok)}

/* ── frise des étapes ── */
.frise{margin:0 0 24px;padding:20px 22px}
.frise ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,1fr);gap:0;counter-reset:f}
.frise li{position:relative;display:grid;justify-items:center;gap:8px;text-align:center;padding:0 4px}
.frise li::before{content:"";position:absolute;top:15px;left:-50%;right:50%;height:2px;background:var(--line)}
.frise li:first-child::before{display:none}
.frise li.ok::before,.frise li.cur::before{background:var(--violet)}
.frise .pt{position:relative;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#fff;border:2px solid var(--line2);font:700 12px var(--f-mono);color:var(--ink3)}
.frise li.ok .pt{background:var(--violet);border-color:var(--violet);color:#fff}
.frise li.ok .pt svg{width:15px;height:15px}
.frise li.cur .pt{border-color:var(--violet);color:var(--violet);box-shadow:0 0 0 5px var(--violet-bg)}
.frise li b{font:600 12.5px/1.2 var(--f-body);color:var(--ink3)}
.frise li.cur b{color:var(--ink);font-weight:750}
.fr-now{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.fr-now p{font-size:14px;color:var(--ink2);margin-top:6px}
.fr-now p b{color:var(--ink)}
.frise-c{display:grid;gap:6px;margin-bottom:2px}
.frise-c .fc{display:grid;grid-template-columns:repeat(6,1fr);gap:4px}
.frise-c i{height:4px;border-radius:4px;background:var(--line)}
.frise-c i.ok{background:var(--violet)}
.frise-c i.cur{background:var(--lime);box-shadow:0 0 0 1px #b8d900 inset}
.frise-c span{font:600 11px var(--f-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--ink3)}

/* ── miniatures « capture de la maquette » ── */
.cov .capt{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center;padding:26px 22px 0}
.cov .capt img{width:100%;height:auto;max-height:100%;object-fit:cover;object-position:top left;border-radius:8px 8px 0 0;box-shadow:0 -4px 24px rgba(0,0,0,.25);display:block}
.pcard .cov.is-capt::after{display:none}

/* ── guide de première visite ── */
.guide .gv{height:190px;background:linear-gradient(135deg,var(--night),#2a1a5c);display:grid;place-items:center;position:relative;overflow:hidden}
.guide h2{font:780 26px/1.1 var(--f-display);font-stretch:80%;margin-top:8px}
.guide .mb p{color:var(--ink2);margin-top:8px;font-size:15px}
.gdots{display:flex;gap:6px;margin-top:16px}
.gdots i{width:8px;height:8px;border-radius:9px;background:var(--line2)}
.gdots i.on{width:22px;background:var(--violet)}
.gi{position:relative}
.gi-p{display:flex;gap:14px}
.gi-p .gc{width:130px;background:#fff;border-radius:10px;padding:10px;display:grid;gap:6px;box-shadow:0 10px 24px rgba(0,0,0,.3)}
.gi-p .gc i{height:44px;border-radius:6px;background:linear-gradient(120deg,var(--violet),#2438C9)}
.gi-p .gc b{height:8px;width:70%;border-radius:4px;background:#14102E}
.gi-p .gc s{height:6px;width:90%;border-radius:4px;background:#E3E1EE}
.gi-p .gc em{display:grid;grid-template-columns:repeat(4,1fr);gap:3px}
.gi-p .gc u{height:4px;border-radius:3px;background:#E3E1EE}
.gi-p .gc u.ok{background:var(--violet)}.gi-p .gc u.cur{background:var(--lime)}
.gi-m .gw{width:260px;height:130px;background:#fff;border-radius:10px;padding:12px;display:grid;grid-template-columns:1fr 1fr;gap:8px;box-shadow:0 10px 24px rgba(0,0,0,.3)}
.gi-m .gw span{border-radius:6px;background:#F3F3F6}
.gi-m .gw span.hot{outline:2px solid var(--lime);box-shadow:0 0 0 5px rgba(107,43,217,.3)}
.gi-m .gpin{position:absolute;left:132px;top:54px;width:26px;height:26px;border-radius:50% 50% 50% 4px;background:var(--violet);color:#fff;font:700 10.5px var(--f-mono);display:grid;place-items:center;border:2px solid #fff}
.gi-m .gbub{position:absolute;left:162px;top:30px;background:#14102E;color:var(--lime);font:600 11.5px var(--f-body);padding:7px 10px;border-radius:9px;white-space:nowrap}
.gi-s{display:grid;gap:9px;color:#fff;font:600 13.5px var(--f-body)}
.gi-s div{display:flex;align-items:center;gap:10px}
.gi-s .d{width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.35)}
.gi-s .d.ok{background:var(--violet);border-color:var(--violet)}.gi-s .d.cur{background:var(--lime);border-color:var(--lime)}

/* ── admin · personnalisation ── */
.perso{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:20px;align-items:start}
.perso h3{display:flex;gap:8px;align-items:center}
.pf{display:grid;gap:7px;padding:14px 0;border-top:1px solid var(--line)}
.pf .lb{font:600 11px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);display:flex;justify-content:space-between}
.pf .lb small{font:600 12px var(--f-mono);color:var(--ink);text-transform:none}
.pf small{color:var(--ink3);font-size:12.5px}
.pf .row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.pf input[type=color]{width:40px;height:34px;border:1px solid var(--line2);border-radius:8px;padding:2px;background:#fff}
.pf input[type=range]{width:100%;accent-color:var(--violet)}
.pth{width:120px;height:44px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}
.pth.none{display:grid;place-items:center;font-size:12px;color:var(--ink3);background:var(--paper2)}
.sw{width:24px;height:24px;border-radius:7px;border:2px solid #fff;box-shadow:0 0 0 1px var(--line2)}
.sw.on{box-shadow:0 0 0 2px var(--violet)}
.seg{display:inline-flex;flex-wrap:wrap;gap:4px;background:var(--paper2);padding:3px;border-radius:10px}
.seg button{border:0;background:none;padding:6px 10px;border-radius:8px;font:600 12.5px var(--f-body);color:var(--ink2)}
.seg button.on{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(20,16,46,.12)}
.seg.sm button{padding:5px 8px;font-size:12px}
.pzlogo{display:inline-grid;place-items:center;min-width:120px;height:52px;border-radius:10px;padding:8px 12px}
.pz-prev{margin-top:8px}
.pz-prev .cban{min-height:200px;padding:18px 22px 22px;border-radius:14px}
.pz-prev .cban h1{font-size:30px}
.pz-prev .cban p{font-size:13.5px}
.pzrow{display:grid;grid-template-columns:132px minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}
.pzrow:first-of-type{border-top:0}
.pzrow .seg{margin:6px 0 4px}
.pzth{position:relative;aspect-ratio:3/1.9;border-radius:9px;overflow:hidden;background:var(--night)}
.pzth img,.pzth svg{width:100%;height:100%;object-fit:cover;display:block}
.pzth .capt{padding:10px 10px 0}
.pzth .fn{display:none}
@media (max-width:980px){
  .nextc{grid-template-columns:1fr}.nc-side{border-left:0;border-top:1px solid var(--line)}
  .perso{grid-template-columns:1fr}
  .cb-row{grid-template-columns:1fr}.cban .until{text-align:left}
  .frise ol{grid-template-columns:repeat(3,1fr);row-gap:16px}.frise li:nth-child(4)::before{display:none}
  .fr-now{grid-template-columns:1fr}
  .top .hw{font-size:0;padding:8px}.top .hw svg{margin:0}
}
@media (max-width:720px){.cban{padding:18px 20px 22px;min-height:0}.cb-with{display:none}.top .cobrand,.top .tblogo{display:none}}

/* ── accès client : 1/3 projets · 2/3 le reste (comme l'espace Preveez) ── */
.acc{display:flex;flex-wrap:wrap;align-items:stretch;min-height:calc(100vh - 62px);background:#fff}
.acc-g{flex:57 1 0;min-width:460px;max-width:940px;color:#fff;padding:24px clamp(20px,2.8vw,40px) 120px;position:relative;overflow:hidden;isolation:isolate}
.acc-g::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--lime);z-index:2}
.acc-g .fond{position:absolute;left:0;top:0;right:0;height:560px;z-index:-1;pointer-events:none}
.acc-g .in{display:flex;flex-direction:column;gap:22px}
.acc-g .k{font:500 11px/1.2 var(--f-mono);letter-spacing:.07em;text-transform:uppercase;color:rgba(255,255,255,.72);display:inline-flex;align-items:center;gap:9px}
.acc-g .k i{width:7px;height:7px;background:var(--lime);display:inline-block;flex:none}
.acc-g h1{font:800 clamp(32px,3vw,44px)/.98 var(--f-display);font-stretch:72%;margin-top:10px}
.acc-g h1 em{font-style:normal;color:var(--lime)}
.acc-g h1.pj{font-size:clamp(34px,3.2vw,46px)}
.acc-g .lede{color:rgba(255,255,255,.84);font-size:14.5px;margin-top:10px;max-width:440px}
.acc-g .cb-top{gap:12px}
.acc-g .cb-top .sp{flex:1}
.btn.ghostw{background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.22)}
.btn.ghostw:hover{background:rgba(255,255,255,.16)}
.btn.big{padding:15px 20px;font-size:15.5px;justify-content:center}
.gps{display:grid;gap:18px}
.gp{border-radius:16px;overflow:hidden;background:rgba(12,8,30,.42);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(6px);box-shadow:0 20px 40px -24px rgba(0,0,0,.6)}
.gp-cov{display:block;width:100%;aspect-ratio:16/9;position:relative;border:0;padding:0;background:var(--night);cursor:pointer;overflow:hidden}
.gp-cov img,.gp-cov svg{width:100%;height:100%;object-fit:cover;display:block}
.gp-cov .num{position:absolute;left:14px;top:12px;font:700 12px var(--f-mono);color:var(--lime);z-index:1}
.gp-cov .fn{display:none}
.gp-cov .capt{padding:22px 22px 0}
.gp-cov.solo{border-radius:14px;cursor:default;box-shadow:0 20px 40px -24px rgba(0,0,0,.6)}
.gp-new{position:absolute;right:12px;top:10px;background:var(--lime);color:var(--night);font:700 11px var(--f-body);padding:5px 9px;border-radius:999px;z-index:1}
.gp-bd{padding:16px 18px 18px;display:grid;gap:9px}
.gp-bd h2{font:760 26px/1.05 var(--f-display);font-stretch:78%}
.gp-bd p{color:rgba(255,255,255,.78);font-size:14px}
.gp-meta{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:rgba(255,255,255,.7)}
.gp-meta span{display:inline-flex;gap:6px;align-items:center}
.gp-meta svg{width:15px;height:15px}
.gp-act{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.acc-g .frise-c span{color:rgba(255,255,255,.66)}
.acc-g .frise-c i{background:rgba(255,255,255,.2)}
.acc-g .frise-c i.ok{background:#A98BF5}
.g-ref{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px;border-radius:14px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14)}
.g-ref .av{width:40px;height:40px;background:var(--lime);color:var(--night)}
.g-ref b{display:block;font-size:15px;margin-top:4px}
.g-ref span:not(.av):not(.k){font-size:12.5px;color:rgba(255,255,255,.7)}
.g-until{display:flex;justify-content:space-between;gap:10px;font:500 11.5px var(--f-mono);color:rgba(255,255,255,.62);letter-spacing:.03em;border-top:1px solid rgba(255,255,255,.14);padding-top:14px}
.g-until b{color:#fff}
.acc-d{flex:43 1 0;min-width:min(440px,100%);padding:34px clamp(16px,3vw,44px) 120px;display:flex;flex-direction:column;gap:30px;background:#fff}
.acc-d .nextc{margin-top:0}
.acc-d h2.sec{margin-top:6px}
.dgrp{font:600 12px var(--f-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--ink3);margin:18px 0 8px}
.dbas{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,340px);gap:18px;align-items:start}
.frv{list-style:none;margin:12px 0 0;padding:0;display:grid}
.frv li{display:grid;grid-template-columns:30px minmax(0,1fr);gap:12px;position:relative;padding-bottom:14px}
.frv li::before{content:"";position:absolute;left:14px;top:30px;bottom:0;width:2px;background:rgba(255,255,255,.18)}
.frv li:last-child::before{display:none}
.frv li.ok::before{background:#A98BF5}
.frv .pt{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;border:2px solid rgba(255,255,255,.3);font:700 11.5px var(--f-mono);color:rgba(255,255,255,.7)}
.frv li.ok .pt{background:#A98BF5;border-color:#A98BF5;color:var(--night)}
.frv li.ok .pt svg{width:14px;height:14px}
.frv li.cur .pt{background:var(--lime);border-color:var(--lime);color:var(--night);box-shadow:0 0 0 5px rgba(214,254,0,.18)}
.frv b{font-size:14.5px;display:block;padding-top:5px;color:rgba(255,255,255,.72)}
.frv li.cur b{color:#fff}
.frv small{display:block;font-size:12.5px;color:rgba(255,255,255,.7);margin-top:3px}
.frv li.cur small{color:var(--lime)}
@media (max-width:980px){.acc-g{max-width:none;flex-basis:100%;min-width:0;padding:24px 18px 32px}.acc-g .in{position:static}.acc-d{padding:28px 16px 110px}.dbas{grid-template-columns:1fr}}

/* ── admin · exploitation ── */
.sb nav button em.r{background:#F04438;color:#fff}
.pst{width:10px;height:10px;border-radius:50%;display:inline-block;background:var(--ok);box-shadow:0 0 0 3px var(--ok-bg);flex:none;vertical-align:middle}
.pst.warn{background:#E58A00;box-shadow:0 0 0 3px var(--warn-bg)}
.pst.crit{background:#E5322B;box-shadow:0 0 0 3px var(--err-bg);animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{50%{box-shadow:0 0 0 6px rgba(229,50,43,.12)}}
.badge .pst{width:7px;height:7px;box-shadow:none;margin-right:2px}
.tx-r{color:var(--err)!important}
tr.dim td{opacity:.55}
.lnk{background:none;border:0;padding:0;font:600 14px var(--f-body);color:var(--ink);text-decoration:underline;text-decoration-color:var(--line2);text-underline-offset:3px;cursor:pointer;text-align:left}
.lnk:hover{color:var(--violet)}
.spk{display:block}
.pband{display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(4,minmax(0,1fr));gap:0;border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}
.pband>*{padding:14px 16px;border-left:1px solid var(--line)}
.pband>:first-child{border-left:0;background:var(--night);color:#fff;display:grid;gap:3px}
.pb-t .tag{color:var(--snow3)}
.pb-t b{font:760 20px var(--f-display);font-stretch:80%}
.pb-t span:last-child{font-size:12.5px;color:var(--snow2)}
.pb-k{background:#fff;border-top:0;border-right:0;border-bottom:0;text-align:left;display:grid;gap:2px;cursor:pointer}
.pb-k:hover{background:var(--paper3)}
.pb-k b{font:800 30px/1 var(--f-display);font-stretch:74%}
.pb-k span{font-size:12.5px;color:var(--ink3)}
.pb-k.r b{color:var(--err)}.pb-k.w b{color:var(--warn)}
.tya{display:inline-flex;gap:6px;align-items:center;font-size:13px;white-space:nowrap}
.tya svg{width:15px;height:15px;color:var(--violet)}
table.t.parc td{vertical-align:middle}
.ahead{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:20px;padding:20px;border:1px solid var(--line);border-radius:16px;background:#fff}
.ahead h1{font:780 34px/1.05 var(--f-display);font-stretch:76%;margin:4px 0 4px}
.aic{width:54px;height:54px;border-radius:14px;display:grid;place-items:center;background:var(--ok-bg);color:var(--ok)}
.aic.warn{background:var(--warn-bg);color:var(--warn)}.aic.crit{background:var(--err-bg);color:var(--err)}
.aic svg{width:26px;height:26px}
.alr{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.alr:first-of-type{border-top:0}
.alr b{display:block;font-size:14px}.alr span{font-size:12.5px;color:var(--ink3)}
.ctl{display:grid;margin-top:8px}
.ctl div{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line);font-size:14px}
.ctl div:first-child{border-top:0}
.ctl span{font-size:12.5px;color:var(--ink3);text-align:right}
.bigspk{margin-top:10px}.bigspk svg{width:100%;height:auto}
.cfg h4{font:600 11px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--violet);margin:18px 0 6px}
.cfg h4 small{color:var(--ink3);text-transform:none;letter-spacing:0;font-weight:500}
.cfg dl{display:grid;grid-template-columns:200px minmax(0,1fr);margin:0;font-size:13.5px}
.cfg dt,.cfg dd{padding:6px 0;border-top:1px solid var(--line);margin:0}
.cfg dt{color:var(--ink3)}
.cfg dd{font-family:var(--f-mono);font-size:12.5px}
.cfh{display:grid;gap:4px;margin-top:8px}
.cfh button{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:8px;align-items:center;text-align:left;border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 10px;font-size:12.5px}
.cfh button.on{border-color:var(--violet);background:var(--violet-bg)}
.cfh b{font:700 13px var(--f-mono)}
.diff{display:grid;gap:4px;margin-top:8px}
.diff div{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:8px;align-items:center;padding:7px 9px;border-radius:8px;font-size:13px}
.diff code{font:700 13px var(--f-mono)}
.diff .add{background:#E9F7EF}.diff .add code{color:var(--ok)}
.diff .del{background:#FDECEA}.diff .del code{color:var(--err)}
.diff .mod{background:var(--paper3)}.diff .mod code{color:var(--violet)}
.diff .sus{box-shadow:inset 3px 0 0 var(--err)}
.ilist{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.inclist{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px}
.incc,.intc{display:grid;gap:8px;text-align:left;border:1px solid var(--line);border-radius:14px;background:#fff;padding:14px 16px;cursor:pointer;font:inherit;color:inherit}
.incc:hover,.intc:hover{border-color:var(--violet);box-shadow:0 6px 18px -12px rgba(20,16,46,.4)}
.incc{border-left:4px solid var(--err)}.incc.ok{border-left-color:var(--ok)}
.incc b,.intc b{font-size:15px}
.ifr{display:flex;gap:4px;margin-top:2px}.ifr i{flex:1;height:4px;border-radius:3px;background:var(--violet)}.ifr i.ok{background:var(--ok)}
.ifrise{display:grid;gap:0;border-left:2px solid var(--line);margin-left:6px}
.ifrise div{position:relative;padding:0 0 14px 18px}
.ifrise div::before{content:"";position:absolute;left:-7px;top:3px;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid var(--violet)}
.ifrise time{font:500 11.5px var(--f-mono);color:var(--ink3)}
.ifrise b{display:block;font-size:14px;margin-top:2px}.ifrise p{font-size:13.5px;color:var(--ink2);margin-top:2px}
.mbar{flex:1;height:6px;border-radius:6px;background:var(--paper2);overflow:hidden;min-width:60px}
.mbar i{display:block;height:100%;background:var(--violet)}
.kanban{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:start}
.kcol{background:var(--paper3);border:1px solid var(--line);border-radius:14px;padding:10px;display:grid;gap:10px}
.kh{display:flex;justify-content:space-between;align-items:center;padding:2px 4px}
.kh b{font-size:14px}.kh span{font:700 11px var(--f-mono);background:#fff;border:1px solid var(--line);border-radius:999px;padding:2px 8px}
.chk label{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;padding:8px 10px;border-radius:9px;background:#fff;border:1px solid var(--line);cursor:pointer}
.chk label input{margin-top:2px;accent-color:var(--violet)}
.chk label small{margin-left:auto}
.prios{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.pr{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#fff;display:grid;gap:2px}
.pr span{font:600 12px var(--f-mono);text-transform:uppercase;letter-spacing:.04em}
.pr b{font:800 30px/1 var(--f-display);font-stretch:74%}
.pr small{font-size:12px;color:var(--ink3)}
.pr.p1{border-top:4px solid #E5322B}.pr.p1 b{color:var(--err)}.pr.p2{border-top:4px solid #E58A00}.pr.p3{border-top:4px solid var(--violet)}.pr.p4{border-top:4px solid var(--line2)}
.badge.prio{font-family:var(--f-mono);font-size:10.5px}
.wz{display:flex;gap:6px;margin-bottom:18px;flex-wrap:wrap}
.wz span{display:flex;gap:6px;align-items:center;font-size:12.5px;color:var(--ink3);padding:5px 10px 5px 5px;border-radius:999px;background:var(--paper2)}
.wz i{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:#fff;font:700 10.5px var(--f-mono);font-style:normal}
.wz .cur{background:var(--violet-bg);color:var(--violet);font-weight:650}.wz .cur i{background:var(--violet);color:#fff}
.wz .ok{color:var(--ok)}.wz .ok i{background:var(--ok);color:#fff}
.wait{margin-top:14px;display:flex;gap:10px;align-items:center;padding:12px 14px;border-radius:12px;background:var(--paper3);font-size:13.5px}
.wait.ok{background:var(--ok-bg);color:var(--ok)}
.wait .spin{width:18px;height:18px;border-width:2.5px}
.sante{display:grid;grid-template-columns:1.3fr repeat(3,1fr);gap:12px;margin-top:12px}
.sante div{display:grid;gap:3px;padding:10px 12px;border-radius:10px;background:var(--paper3)}
.sante div:first-child{display:flex;gap:10px;align-items:center}
.sante span{font-size:12px;color:var(--ink3)}.sante b{font-size:17px}
.rpt{border:1px solid var(--line);border-radius:14px;padding:22px;background:#fff}
.rh{display:flex;gap:14px;align-items:center;padding-bottom:14px;border-bottom:2px solid var(--night)}
.rh .clogo{background:var(--night);padding:6px 10px;border-radius:8px;height:40px}
.rh b{display:block;font-size:17px}.rh span{font-size:13px;color:var(--ink3)}
.rk{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:16px 0}
.rk div{background:var(--paper3);border-radius:10px;padding:12px;display:grid}
.rk b{font:800 24px var(--f-display);font-stretch:76%}.rk span{font-size:12px;color:var(--ink3)}
.rpt h4{font:700 14px var(--f-body);margin:14px 0 4px}.rpt p{font-size:14px;color:var(--ink2)}

/* ── admin · Claude ── */
.dia{display:grid;grid-template-columns:300px minmax(0,1fr);gap:18px}
.dia-r pre{max-height:56vh;margin-top:8px;font-size:11.5px}
.ia-size{display:flex;justify-content:space-between;margin-top:12px;padding:10px 12px;border-radius:10px;background:var(--paper3);font-size:13px}
.ia-out{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.vlist{display:grid;gap:14px;max-width:980px}
.vp{display:grid;gap:12px}
.vp textarea{font-size:14px;line-height:1.55}
.steps{margin:0;padding-left:20px;display:grid;gap:14px;font-size:14px}
.consent{border:1px solid var(--line);border-radius:14px;padding:18px;background:var(--paper3)}
.consent h3{font:760 22px var(--f-display);font-stretch:80%;margin:14px 0 4px}

/* ── admin · analyse ── */
.ana{display:grid;grid-template-columns:210px minmax(0,1fr) 330px;gap:16px;align-items:start}
.ana-l,.ana-r{position:sticky;top:76px}
.ecl{display:grid;gap:2px;margin-top:6px}
.ecl button{text-align:left;border:0;background:none;padding:7px 10px;border-radius:8px;font:550 13.5px var(--f-body);color:var(--ink2);display:flex;justify-content:space-between;gap:6px}
.ecl button small{color:var(--ink3);font-size:11.5px}
.ecl button:hover{background:var(--paper2)}
.ecl button.on{background:var(--night);color:#fff}.ecl button.on small{color:var(--snow3)}
.seg button svg{width:15px;height:15px;vertical-align:-3px}
.anfs{display:grid;gap:12px}.anfs.two{grid-template-columns:1fr 1fr}
.anf{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;box-shadow:0 14px 34px -24px rgba(20,16,46,.5)}
.anf-h{display:flex;gap:10px;align-items:center;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--paper3)}
.anf-h .inp{max-width:240px}
.anf-b{position:relative;height:calc(100vh - 290px);min-height:480px}
.anf-b iframe{width:100%;height:100%;border:0;display:block}
.anfs.two .anf-b iframe{width:200%;height:200%;transform:scale(.5);transform-origin:0 0}
.leg{display:flex;gap:10px;align-items:center;font-size:12.5px;color:var(--ink2);margin-top:10px;flex-wrap:wrap}
.lg-h{display:inline-block;width:120px;height:9px;border-radius:9px;background:linear-gradient(90deg,#3B5BFF,#22C7A9,var(--lime),#FFB020,#FF3B3B)}
.lg-a{display:inline-block;width:90px;height:9px;border-radius:9px;background:linear-gradient(90deg,rgba(107,43,217,.4),rgba(214,180,0,.6),rgba(255,90,31,.8))}
.leg .dot{width:11px;height:11px;border-radius:50%;display:inline-block}.leg .dot.r{background:#DC2626}.leg .dot.o{background:#F97316}
.consts{margin:10px 0 0;padding-left:20px;display:grid;gap:9px;font-size:13.5px;color:var(--ink2)}
.consts b{color:var(--ink)}
table.ztab{font-size:12.5px}table.ztab td,table.ztab th{padding:8px 9px}
.mat{width:100%;height:auto;margin-top:10px}
.mat .q{font:700 12px var(--f-mono);fill:var(--ink3);text-transform:uppercase}
.mat .ax{font:500 11.5px var(--f-body);fill:var(--ink3)}
.mat .lb{font:600 12px var(--f-body);fill:var(--ink)}
.mq{padding:12px 0;border-top:1px solid var(--line)}.mq:first-of-type{border-top:0}
.mq b{font-size:15px}.mq small{display:block;color:var(--ink3);font-size:12.5px;margin:2px 0 6px}
.mq ul{margin:0;padding-left:18px;font-size:13.5px}
.paths{display:grid;gap:10px;margin-top:10px}
.path{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) 90px;gap:12px;align-items:center}
.steps2{display:flex;gap:5px;align-items:center;flex-wrap:wrap}
.steps2 span{font-size:12.5px;padding:4px 8px;border-radius:7px;background:var(--violet-bg);color:var(--violet);font-weight:600}
.steps2 i{color:var(--ink3);font-style:normal}
.path .trk,.funnel .trk{height:10px;border-radius:6px;background:var(--paper2);overflow:hidden}
.path .trk i,.funnel .trk i{display:block;height:100%;background:var(--violet);border-radius:6px}
.funnel{display:grid;gap:10px;margin-top:10px}
.funnel div{display:grid;grid-template-columns:150px minmax(0,1fr) 30px 40px;gap:12px;align-items:center;font-size:13.5px}
.funnel small{color:var(--ink3);font:600 11.5px var(--f-mono)}
.chips{display:flex;gap:4px;flex-wrap:wrap}.chips span{font-size:11.5px;padding:3px 7px;border-radius:6px;background:var(--paper2)}
.mkr{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:7px;margin-right:3px}
.mkr svg{width:13px;height:13px}
.mkr.sans{background:var(--err-bg);color:var(--err)}.mkr.repet{background:var(--warn-bg);color:var(--warn)}.mkr.remarque{background:var(--violet-bg);color:var(--violet)}
.modal.xl{width:min(1240px,100%)}
.pl{display:grid;gap:12px}
.pl-st{position:relative;height:min(62vh,640px);border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.pl-st iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.pl-ov{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.pl-cur{position:absolute;left:0;top:0;width:18px;height:18px;margin:-3px 0 0 -3px;transition:transform .55s cubic-bezier(.4,.1,.2,1);transform:translate(40px,40px);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 2l15 11-7 1-3 7z' fill='%23120C2C' stroke='white' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat;background-size:contain;z-index:3;filter:drop-shadow(0 2px 3px rgba(0,0,0,.3))}
.pl-rip{position:absolute;width:36px;height:36px;margin:-18px 0 0 -18px;border:3px solid var(--lime);border-radius:50%;animation:rip .7s ease-out forwards;z-index:2}
@keyframes rip{from{transform:scale(.3);opacity:1}to{transform:scale(1.4);opacity:0}}
.pl-bub{position:absolute;right:16px;top:16px;background:var(--violet);color:#fff;font:600 13px var(--f-body);padding:9px 13px;border-radius:10px;box-shadow:0 10px 24px rgba(0,0,0,.25)}
.pl-mask{position:absolute;right:12px;bottom:12px;display:flex;gap:6px;align-items:center;background:rgba(18,12,44,.85);color:#fff;font:600 11.5px var(--f-body);padding:6px 10px;border-radius:8px;z-index:4}
.pl-mask svg{width:13px;height:13px}
.pl-ctl{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.pl-ctl .btn svg{width:16px;height:16px}
.pl-tl{flex:1;min-width:240px;height:12px;border-radius:8px;background:var(--paper2);position:relative;cursor:pointer}
.pl-tl #pl-pg{position:absolute;left:0;top:0;bottom:0;background:var(--violet);border-radius:8px;opacity:.35}
.pl-tl b{position:absolute;top:-3px;width:4px;height:18px;border-radius:3px;margin-left:-2px}
.pl-leg{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--ink2);align-items:center}
.pl-leg i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
@media (max-width:1280px){.ana{grid-template-columns:190px minmax(0,1fr)}.ana-r{grid-column:1/-1;position:static}.kanban{grid-template-columns:1fr 1fr}.pband{grid-template-columns:1fr 1fr}.pband>:first-child{grid-column:1/-1}}
@media (max-width:860px){.ana{grid-template-columns:1fr}.ana-l{position:static}.dia{grid-template-columns:1fr}.prios{grid-template-columns:1fr 1fr}.sante,.rk{grid-template-columns:1fr 1fr}}

.t td.mono,table.ztab td{white-space:nowrap}
.intc .row span,.intc .mono{white-space:nowrap}
.intc>.row:first-child{flex-wrap:wrap;row-gap:4px}

/* accueil client v6 : compact, iconographie */
.top nav button .ico{width:16px;height:16px;opacity:.75}
.top nav button.on .ico{opacity:1;color:var(--lime)}
.nextc2{border:1px solid var(--line);border-radius:18px;background:#fff;padding:18px 20px;display:grid;gap:14px;box-shadow:0 18px 40px -30px rgba(20,16,46,.45);border-left:4px solid var(--lime)}
.nc2-h{display:flex;gap:14px;align-items:center}
.nc2-h>div{flex:1;min-width:0}
.nc2-h h2{font:760 23px/1.15 var(--f-display);font-stretch:82%;margin:3px 0 0}
.nc2-h p{font-size:14px;color:var(--ink2);margin-top:3px}
.nc2-ic{width:44px;height:44px;border-radius:12px;background:var(--night);color:var(--lime);display:grid;place-items:center;flex:none}
.nc2-ic.ok{background:var(--ok-bg);color:var(--ok)}
.nc2-ic .ico{width:22px;height:22px}
.nc2-h .btn .ico{width:17px;height:17px}
.nc2-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:8px}
.nc2-steps li{display:flex;gap:9px;align-items:center;padding:9px 10px;border-radius:11px;background:var(--paper3);border:1px solid transparent;min-width:0}
.nc2-steps li div{min-width:0}
.nc2-steps b{display:block;font-size:13px;line-height:1.25}
.nc2-steps small{display:block;font-size:11.5px;color:var(--ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nc2-steps .ck{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--ink3);flex:none;border:1px solid var(--line)}
.nc2-steps .ck .ico{width:15px;height:15px}
.nc2-steps li.ok{background:#fff;border-color:var(--line)}
.nc2-steps li.ok b{color:var(--ink3)}
.nc2-steps li.ok .ck{background:var(--ok);border-color:var(--ok);color:#fff}
.nc2-steps li.cur{background:var(--violet-bg);border-color:var(--violet)}
.nc2-steps li.cur .ck{background:var(--violet);border-color:var(--violet);color:#fff}
.nc2-rdv{display:flex;gap:10px;align-items:center;font-size:13.5px;color:var(--ink2);padding-top:12px;border-top:1px dashed var(--line)}
.nc2-rdv .ico{width:18px;height:18px;color:var(--violet);flex:none}
.nc2-rdv b{color:var(--ink)}
.sech{display:flex;align-items:center;gap:9px;font:760 22px var(--f-display);font-stretch:82%;margin:0 0 12px}
.sech .ico{width:20px;height:20px;color:var(--violet)}
.sech small{font:600 12px var(--f-mono);color:var(--ink3);background:var(--paper2);padding:2px 8px;border-radius:999px}
.dgrp{display:flex;align-items:center;gap:7px}
.dgrp .ico{width:15px;height:15px;color:var(--ink3)}
.newsd{border:1px solid var(--line);border-radius:14px;background:var(--paper3)}
.newsd summary{list-style:none;display:flex;align-items:center;gap:10px;padding:12px 16px;cursor:pointer;font-size:14px;color:var(--ink2)}
.newsd summary::-webkit-details-marker{display:none}
.newsd summary>.ico:first-child{width:18px;height:18px;color:var(--violet)}
.newsd summary em{font-style:normal;font-weight:650;font-size:13px;color:var(--violet)}
.newsd summary .cv{width:16px;height:16px;color:var(--violet);transition:transform .2s}
.newsd[open] summary .cv{transform:rotate(90deg)}
.newsd[open] summary em{display:none}
.newsd summary:hover{color:var(--ink)}
.news2{display:grid;padding:0 8px 8px}
.news2 button{display:flex;gap:12px;align-items:center;text-align:left;border:0;background:#fff;border-radius:10px;padding:10px 12px;margin-top:4px;font:inherit;color:inherit;cursor:pointer}
.news2 button:hover{box-shadow:inset 0 0 0 1px var(--violet)}
.news2 button>.ico{width:18px;height:18px;color:var(--ink3);flex:none}
.news2 button>.ico:last-child{margin-left:auto;color:var(--violet)}
.news2 b{display:block;font-size:13.5px}
.news2 small{display:block;font-size:12.5px;color:var(--ink3);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.gp-act .btn .ico{width:17px;height:17px}
@media (max-width:1180px){.nc2-steps{grid-template-columns:1fr 1fr}}
@media (max-width:980px){.nc2-h{flex-wrap:wrap}.nc2-h .btn{width:100%;justify-content:center}.top nav button .ico{display:none}}
.gps.multi{gap:14px}
.gps.multi .gp{display:grid;grid-template-columns:minmax(150px,38%) minmax(0,1fr)}
.gps.multi .gp-cov{aspect-ratio:auto;height:100%;min-height:190px}
.gps.multi .gp-cov .capt{padding:12px 0 0 12px}
.gps.multi .gp-bd{padding:14px 16px 16px;gap:7px;align-content:start}
.gps.multi .gp-bd h2{font-size:22px}
.gps.multi .gp-bd p{font-size:13px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.gps.multi .gp-act .btn{padding:8px 12px;font-size:13px}
.gps.multi .gp-act{margin-top:2px}
@media (max-width:560px){.gps.multi .gp{grid-template-columns:1fr}.gps.multi .gp-cov{aspect-ratio:16/9;min-height:0}}
@media (max-width:980px){.nc2-ic{display:none}}

/* ── admin v7 : repères et affordance ── */
.sb nav{gap:4px}
.sec-g{border-radius:12px}
.sec-g.open{background:rgba(255,255,255,.05);padding-bottom:6px}
.sb nav .sec-b{display:flex;align-items:center;gap:11px;width:100%;padding:9px 10px;border-radius:12px}
.sb nav .sec-b .si{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:rgba(255,255,255,.07);flex:none}
.sb nav .sec-b .si .ico{width:17px;height:17px}
.sb nav .sec-b .st{display:grid;min-width:0}
.sb nav .sec-b .st b{font:650 14px var(--f-body);color:inherit}
.sb nav .sec-b .st small{font-size:11.5px;color:var(--snow3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb nav .sec-b .cv{width:14px;height:14px;margin-left:auto;opacity:.5;flex:none;transition:transform .2s}
.sb nav .sec-b em+.cv{margin-left:6px}
.sb nav .sec-b.on{background:none;box-shadow:none;color:#fff}
.sb nav .sec-b.on .si{background:var(--lime);color:var(--night)}
.sb nav .sec-b.on .cv{transform:rotate(90deg);opacity:.8}
.sb nav .sub{display:grid;gap:1px;padding:2px 4px 0 8px;margin-left:26px;border-left:1px solid rgba(255,255,255,.14)}
.sb nav .sub button{padding:7px 9px;font-size:13.5px;white-space:nowrap}
.sb nav .sub button .ico{width:16px;height:16px}
.crumbs{display:flex;align-items:center;gap:6px;font-size:14px;min-width:0}
.crumbs .cr-s{display:inline-flex;gap:7px;align-items:center;color:var(--ink3);font-weight:550}
.crumbs .cr-s .ico{width:16px;height:16px;color:var(--violet)}
.crumbs .cr-c{width:14px;height:14px;color:var(--line2)}
.crumbs .cr-l{border:0;background:none;padding:2px 4px;font:550 14px var(--f-body);color:var(--ink2);text-decoration:underline;text-decoration-color:var(--line2);text-underline-offset:3px;cursor:pointer}
.crumbs .cr-l:hover{color:var(--violet)}
.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.tile{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;gap:10px 12px;text-align:left;border:1px solid var(--line);border-radius:16px;background:#fff;padding:16px 16px 14px;font:inherit;color:inherit;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s;border-top:4px solid var(--ok)}
.tile.warn{border-top-color:#E58A00}.tile.crit{border-top-color:#E5322B}
.tile:hover{border-color:var(--violet);box-shadow:0 14px 30px -20px rgba(20,16,46,.5);transform:translateY(-1px)}
.tile .ti{width:40px;height:40px;border-radius:11px;background:var(--paper2);display:grid;place-items:center;color:var(--violet)}
.tile.crit .ti{background:var(--err-bg);color:var(--err)}.tile.warn .ti{background:var(--warn-bg);color:var(--warn)}
.tile .ti .ico{width:20px;height:20px}
.tile .tt{display:grid;gap:3px;min-width:0}
.tile .tt b{font-size:15.5px;line-height:1.25}
.tile .tt small{font-size:12.5px;color:var(--ink3)}
.tile .tn{grid-column:1/-1;display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink3);padding-top:10px;border-top:1px solid var(--line)}
.tile .tn em{font:800 15px var(--f-body);font-style:normal;color:var(--ink)}
.tile .tn .ico{width:16px;height:16px;color:var(--ok)}
.tile .ta{position:absolute;right:14px;bottom:13px;width:18px;height:18px;color:var(--violet);transition:transform .15s}
.tile:hover .ta{transform:translateX(3px)}
.dash{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;margin-top:28px;align-items:start}
.tgrp+.tgrp{margin-top:26px}
.tgh{display:flex;align-items:center;gap:9px;font:760 21px var(--f-display);font-stretch:82%;margin:0 0 10px}
.tgh .ico{width:19px;height:19px}
.tgh small{font:700 11.5px var(--f-mono);background:var(--paper2);border-radius:999px;padding:2px 8px}
.tgh span{font:500 13px var(--f-body);color:var(--ink3);margin-left:4px}
.urg .tgh .ico{color:var(--err)}.urg .tgh small{background:var(--err-bg);color:var(--err)}
.auj .tgh .ico{color:var(--violet)}
.opp .tgh .ico{color:#E58A00}.opp .td{border-left:4px solid #FFB020}
.tard .tgh .ico{color:var(--ink3)}
.tard .td{background:var(--paper3)}
.td.p1{border-left-color:var(--lime)}
.td .sc{display:inline-flex!important;gap:5px;align-items:center;font:600 10.5px var(--f-mono)!important;text-transform:uppercase;letter-spacing:.04em;color:var(--violet)!important;margin-bottom:2px}
.td .sc .ico{width:12px;height:12px}
.td.p0{border-left:4px solid #E5322B}.td.p0 .ty{background:var(--err-bg);color:var(--err)}
.td:hover{border-color:var(--line2)}
.live-p{position:sticky;top:76px}
.live-p .tag .ico{width:13px;height:13px;vertical-align:-2px}
/* affordance générale */
.btn.ghost{background:var(--paper3);box-shadow:inset 0 0 0 1px var(--line)}
.btn.ghost:hover{box-shadow:inset 0 0 0 1px var(--line2)}
table.t tr.click td:last-child{padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A39DB8' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px}
table.t tr.click:hover td:last-child{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B2BD9' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E")}
button.kpi,.pb-k,.incc,.intc,.pmini,.minicl button{position:relative}
button.kpi:hover,.pb-k:hover{border-color:var(--violet)}
button.kpi::after,.pb-k::after,.incc::after,.intc::after{content:"";position:absolute;right:12px;top:12px;width:16px;height:16px;opacity:.45;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B2BD9' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M7 17L17 7M9 7h8v8'/%3E%3C/svg%3E") no-repeat center/contain;transition:opacity .15s}
button.kpi:hover::after,.pb-k:hover::after,.incc:hover::after,.intc:hover::after{opacity:1}
.incc::after,.intc::after{top:auto;bottom:12px}
.subtabs button{display:inline-flex;align-items:center;gap:6px}
.ph h1{display:flex;align-items:center;gap:12px}
@media (max-width:1280px){.tiles{grid-template-columns:1fr 1fr}.dash{grid-template-columns:1fr}.live-p{position:static}}

.nc2-next{display:grid;gap:10px;padding:14px 16px;border-radius:13px;background:var(--night);color:#fff}
.nc2-nh{display:flex;gap:14px;align-items:flex-start}
.nc2-nn{font:800 30px/1 var(--f-display);font-stretch:74%;color:var(--lime);flex:none}
.nc2-nn small{font-size:15px;color:var(--snow3)}
.nc2-next .tag{color:var(--snow3)}
.nc2-next b{display:block;font:760 19px var(--f-display);font-stretch:82%;margin-top:2px}
.nc2-next p{font-size:13.5px;color:var(--snow2);margin-top:2px}
.nc2-next ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px 14px}
.nc2-next li{display:flex;gap:7px;align-items:flex-start;font-size:13px;color:#fff}
.nc2-next li .ico{width:15px;height:15px;color:var(--lime);flex:none;margin-top:2px}
.acc-d .nc2-steps{grid-template-columns:1fr 1fr}
@media (max-width:560px){.nc2-next ul{grid-template-columns:1fr}}

/* ── incident / faille : en-tête et contenu ── */
.ihead{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;padding:20px 22px;border:1px solid var(--line);border-radius:18px;background:#fff;border-left:5px solid var(--err)}
.ihead.ok{border-left-color:var(--ok)}
.ih-t h1{font:780 32px/1.08 var(--f-display);font-stretch:78%;margin:6px 0 4px}
.ih-t p{font-size:14px;color:var(--ink2);display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.ih-t .lnk .ico{width:15px;height:15px;vertical-align:-2px}
.ih-a{display:grid;gap:8px;justify-items:end}
.ih-a .btn.big .ico{width:18px;height:18px}
.ih-a .btn .ico{width:15px;height:15px}
.isum{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:10px}
.isum>div{background:var(--paper3);border-radius:12px;padding:12px 14px}
.isum span{display:flex;gap:6px;align-items:center;font:650 12.5px var(--f-body);color:var(--violet);margin-bottom:5px}
.isum span .ico{width:15px;height:15px}
.isum p,.isum li{font-size:13.5px;color:var(--ink2)}
.isum ul{margin:0;padding-left:18px;display:grid;gap:3px}
.logv{border:1px solid var(--line);border-radius:12px;overflow:hidden}
.logh{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:8px 10px;background:var(--paper3);border-bottom:1px solid var(--line)}
.logh .seg button .ico{width:14px;height:14px}
.lgq{display:flex;gap:6px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:9px;padding:0 9px}
.lgq .ico{width:15px;height:15px;color:var(--ink3)}
.lgq input{border:0;outline:0;font:inherit;font-size:13px;padding:7px 0;width:170px;background:none}
.logs{max-height:340px;overflow:auto;background:#0F0B24;font-family:var(--f-mono);font-size:12px}
.lg{display:grid;grid-template-columns:118px 70px 92px minmax(0,1fr);gap:10px;padding:6px 12px;border-bottom:1px solid rgba(255,255,255,.05);color:#CFCBE3;align-items:baseline}
.lg[hidden]{display:none}
.lg time{color:#8A84A8}
.lg b{color:#B9A6FF;font-weight:600}
.lg code{font:inherit;color:#E8E5F5;white-space:pre-wrap;word-break:break-word}
.lg .lv{font-weight:700;font-size:10.5px;letter-spacing:.04em;color:#8A84A8}
.lg .lv.w{color:#FFB020}.lg .lv.r{color:#FF6B5E}
.lg.error code,.lg.crit code{color:#FFC9C3}
.lg.in{background:rgba(214,254,0,.06);box-shadow:inset 3px 0 0 var(--lime)}
.logf{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--ink3);padding:8px 12px;background:var(--paper3)}
.logf .ico{width:14px;height:14px}
.pfx{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:10px}
.pfx div{background:var(--paper3);border-radius:10px;padding:10px;display:grid;gap:2px}
.pfx span{font-size:11.5px;color:var(--ink3)}
.pfx b{font-size:16px}
.pfx small{font-size:11.5px;color:var(--violet)}
.vhist{display:grid;margin-top:8px}
.vhist div{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 0;border-top:1px solid var(--line);font-size:13.5px}
.vhist div:first-child{border-top:0}
.vhist time{font:500 11.5px var(--f-mono);color:var(--ink3)}
.vrun{display:grid;gap:6px;margin-top:12px;padding:12px 14px;border-radius:12px;background:var(--paper3)}
.vrun div{display:flex;gap:10px;align-items:center;font-size:13.5px;color:var(--ink3)}
.vrun div.cur{color:var(--ink);font-weight:600}.vrun div.ok{color:var(--ok)}
.vrun .ico{width:16px;height:16px}.vrun .spin{width:16px;height:16px;border-width:2px}
.vrun i{width:16px;height:16px;border-radius:50%;border:2px solid var(--line2)}
.playb{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--violet);color:#fff}
.playb .ico{width:15px;height:15px}
.playb.off{background:var(--paper2);color:var(--ink3)}
tr.click:hover .playb:not(.off){background:var(--night);color:var(--lime)}
/* barre de navigation d'une maquette */
.bmq{display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding:6px;border:1px solid var(--line);border-radius:14px;background:#fff;margin-bottom:14px}
.bmq-t{display:flex;gap:8px;align-items:center;padding:4px 12px 4px 8px;margin-right:4px;border-right:1px solid var(--line)}
.bmq-t .ico{width:18px;height:18px;color:var(--violet)}
.bmq-t b{font-size:14px}.bmq-t small{font-size:12px;color:var(--ink3)}
.bmq button{display:inline-flex;gap:6px;align-items:center;border:0;background:none;padding:7px 11px;border-radius:9px;font:600 13px var(--f-body);color:var(--ink2);cursor:pointer}
.bmq button .ico{width:15px;height:15px;color:var(--ink3)}
.bmq button:hover{background:var(--paper2);color:var(--ink)}
.bmq button.on{background:var(--night);color:#fff}.bmq button.on .ico{color:var(--lime)}
@media (max-width:1100px){.ihead{grid-template-columns:auto minmax(0,1fr)}.ih-a{grid-column:1/-1;justify-items:start}.isum,.pfx{grid-template-columns:1fr 1fr}}
.t .lnk .ico{width:13px;height:13px;vertical-align:-2px}.t td .lnk{white-space:nowrap}

/* ── Pilotage ── */
.circ{display:flex;align-items:center;gap:0;list-style:none;margin:0;padding:0}
.circ li{position:relative;display:flex;align-items:center}
.circ li+li::before{content:"";width:8px;height:2px;background:var(--line2)}
.circ li.ok+li::before,.circ li.ok::before{background:var(--ok)}
.circ li>span{width:12px;height:12px;border-radius:50%;background:var(--paper2);border:1.5px solid var(--line2);display:grid;place-items:center}
.circ li.ok>span{background:var(--ok);border-color:var(--ok);color:#fff}
.circ li.cur>span{background:var(--violet);border-color:var(--violet);box-shadow:0 0 0 3px var(--violet-bg)}
.circ li.ko>span{background:var(--err);border-color:var(--err);color:#fff}
.circ li>span .ico{width:8px;height:8px;stroke-width:3.5}
.circ.big{justify-content:space-between;gap:4px;flex-wrap:wrap}
.circ.big li{flex:1;flex-direction:column;align-items:center;gap:7px;text-align:center;min-width:86px}
.circ.big li+li::before{position:absolute;left:calc(-50% + 22px);right:calc(50% + 22px);top:17px;width:auto}
.circ.big li>span{width:36px;height:36px;color:var(--ink3);background:#fff}
.circ.big li>span .ico{width:17px;height:17px;stroke-width:2}
.circ.big li.ok>span{color:#fff}.circ.big li.cur>span{color:#fff}
.circ.big li b{font-size:12.5px;line-height:1.2;color:var(--ink2)}
.circ.big li.cur b{color:var(--violet)}.circ.big li.ko b{color:var(--err)}
.circ.big li.rb>span{background:var(--err-bg);border-color:var(--err);color:var(--err)}
.circ.big li.rb::before{background:var(--err)!important;height:0;border-top:2px dashed var(--err)}
.circ.big li.rb b{color:var(--err)}
.orig{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--ink2);white-space:nowrap}
.orig .ico{width:14px;height:14px;color:var(--violet)}
.badge.cls{font-family:var(--f-mono);font-weight:700;font-size:10.5px}
.badge.bl{border:0;cursor:pointer}
.spin.s{width:9px;height:9px;border-width:2px}
.t.tch td{vertical-align:middle}
.pband.pl .pb-k{position:relative}
.bbar{display:block;height:5px;border-radius:9px;background:var(--paper2);margin-top:8px;overflow:hidden}
.bbar i{display:block;height:100%;background:var(--violet);border-radius:9px}
.kill-on{display:flex;align-items:center;gap:14px;background:var(--err-bg);border:1px solid #F2C2BD;border-radius:14px;padding:14px 18px;margin:0 0 16px;color:var(--err)}
.kill-on>.ico{width:26px;height:26px}
.kill-on div{display:grid;gap:2px;flex:1}.kill-on div span{color:var(--ink2);font-size:13.5px}
.rbk{border-color:#F2C2BD;background:linear-gradient(0deg,#fff,#fff) padding-box}
.rbk .tag::before{background:var(--err)}
.tplan{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:2px}
.tplan li{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;align-items:start;padding:8px 0;border-top:1px solid var(--line)}
.tplan li:first-child{border-top:0}
.tplan li>span{width:24px;height:24px;border-radius:50%;background:var(--paper2);display:grid;place-items:center;font:700 12px var(--f-mono);color:var(--ink3)}
.tplan li.ok>span{background:var(--ok-bg);color:var(--ok)}.tplan li.cur>span{background:var(--violet-bg)}
.tplan li>span .ico{width:13px;height:13px}.tplan li .spin{width:14px;height:14px;border-width:2px}
.tplan li div{display:grid;gap:1px}.tplan li small{font-size:12px;color:var(--ok)}
.t.mini{width:100%;border-collapse:collapse;font-size:13.5px}
.t.mini th{font:600 11px var(--f-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--ink3);text-align:left;padding:6px 8px;border-bottom:1px solid var(--line)}
.t.mini td{padding:8px;border-bottom:1px solid var(--line)}
.svbar{height:10px;border-radius:9px;background:var(--paper2);margin-top:12px;overflow:hidden}
.svbar i{display:block;height:100%;background:var(--ok);transition:width .4s}
.svbar.ko i{background:var(--err)}
.rlay{display:grid;gap:8px;margin-top:10px}
.rlay div{display:grid;grid-template-columns:18px minmax(0,1fr);gap:2px 10px;padding:9px 10px;border-radius:10px;background:var(--paper3);font-size:13.5px}
.rlay div .ico{width:16px;height:16px;color:var(--ink3);grid-row:span 2;margin-top:2px}
.rlay div.ok .ico{color:var(--ok)}.rlay div span{font-size:12.5px;color:var(--ink3)}
.ntres{margin-top:14px}
.ntc{display:grid;grid-template-columns:56px minmax(0,1fr);gap:14px;align-items:start;border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--paper3)}
.ntl{width:56px;height:56px;border-radius:12px;display:grid;place-items:center;font:800 28px var(--f-display);background:var(--paper2)}
.ntc.g .ntl{background:var(--ok-bg);color:var(--ok)}.ntc.v .ntl{background:var(--violet-bg);color:var(--violet)}.ntc.w .ntl{background:var(--warn-bg);color:var(--warn)}.ntc.r .ntl{background:var(--err-bg);color:var(--err)}
.ntc.r{border-color:#F2C2BD}
.ntc .kv div:first-child{border-top:0;padding-top:0}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.clsg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.clsg>div{border:1px solid var(--line);border-radius:14px;padding:14px 16px;display:grid;gap:4px;border-top:4px solid var(--line2);background:#fff}
.clsg .cl-g{border-top-color:var(--ok)}.clsg .cl-v{border-top-color:var(--violet)}.clsg .cl-w{border-top-color:#E58A00}.clsg .cl-r{border-top-color:var(--err)}
.clsg span{font-size:13px;color:var(--ink2)}.clsg em{font:600 11.5px var(--f-mono);color:var(--ink3);font-style:normal}
.bg-big{display:flex;align-items:baseline;gap:12px;margin:16px 0 10px}
.bg-big b{font:780 44px/1 var(--f-display);font-stretch:80%}.bg-big span{color:var(--ink3)}
.gauge{position:relative;height:14px;border-radius:9px;background:var(--paper2);margin:6px 0 34px}
.gauge>i{display:block;height:100%;border-radius:9px;background:var(--grad)}
.gauge em{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--ink);font-style:normal}
.gauge em span{position:absolute;top:24px;transform:translateX(-50%);white-space:nowrap;font:600 11px var(--f-mono);color:var(--ink3)}
.gauge em:last-child span{transform:translateX(-100%)}
.bg-eco{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.bg-eco div{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 10px;background:var(--paper3);border-radius:12px;padding:12px}
.bg-eco .ico{width:18px;height:18px;color:var(--ok);grid-row:span 2;margin-top:3px}
.bg-eco b{font:760 22px var(--f-display)}.bg-eco span{font-size:12.5px;color:var(--ink2)}
.bars{display:grid;gap:10px;margin-top:12px}
.bars>div{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) 70px;gap:12px;align-items:center;font-size:13.5px}
.bars>div>span{display:flex;gap:8px;align-items:center}.bars .ico{width:15px;height:15px;color:var(--violet)}
.bars>div>i{height:10px;border-radius:9px;background:var(--paper2);overflow:hidden}
.bars>div>i>i{display:block;height:100%;background:var(--violet);border-radius:9px}
.bars b{text-align:right}
.plain{margin:10px 0 0;padding-left:18px;display:grid;gap:6px;font-size:13.5px;color:var(--ink2)}
.auto4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}
.auto4 button{display:grid;gap:4px;text-align:left;border:1.5px solid var(--line);border-radius:12px;background:#fff;padding:12px;align-content:start}
.auto4 button span{font-size:12px;color:var(--ink3);line-height:1.35}
.auto4 button.on{border-color:var(--violet);background:var(--violet-bg)}.auto4 button.on b{color:var(--violet)}
.auto4 button:disabled{opacity:.45;cursor:not-allowed}
.tgl{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:13.5px}
.tgl input{position:absolute;opacity:0}
.tgl>span{width:36px;height:20px;border-radius:20px;background:var(--line2);position:relative;transition:background .15s;flex:none}
.tgl>span::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:left .15s}
.tgl input:checked+span{background:var(--err)}.tgl input:checked+span::after{left:18px}
.tlink{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;text-align:left;border:1px solid var(--line);border-radius:12px;background:var(--paper3);padding:10px 12px;margin-top:12px}
.tlink:hover{border-color:var(--violet)}
.tlink>.ico{width:18px;height:18px;color:var(--violet)}
.tlink span{display:grid;gap:1px}.tlink small{font-size:12px;color:var(--ink3)}
.docbar{display:flex;align-items:center;gap:14px;margin:-6px 0 12px}
.docf{width:100%;height:calc(100vh - 150px);min-height:620px;border:1px solid var(--line);border-radius:14px;background:#fff}
.tiles{grid-template-columns:repeat(5,minmax(0,1fr))}
@media (max-width:1280px){.tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}
.circ.big li.ok>span{background:var(--ok);border-color:var(--ok);color:#fff}
.circ.big li.cur>span{background:var(--violet);border-color:var(--violet);color:#fff;box-shadow:0 0 0 5px var(--violet-bg)}
.circ.big li.ko>span{background:var(--err);border-color:var(--err);color:#fff}

/* ── ajouts de l'application ── */
.page.pdf{padding:0;aspect-ratio:auto;font-size:13px}
.page.pdf canvas{display:block;width:100%;height:auto}
.page.pdf .wm{z-index:2}
.page.pdf .chg{display:grid;place-items:center;aspect-ratio:1/1.414;color:var(--ink3);font:500 12px var(--f-mono)}
.thumbs .mini canvas{width:100%;height:auto;display:block}
body.api-occupe{cursor:progress}
body.api-occupe .btn{pointer-events:none;opacity:.85}
.vide-etat{max-width:620px;margin:40px auto;text-align:center;color:var(--ink2)}
.vide-etat h2{font:800 28px/1.1 var(--f-display);font-stretch:80%;color:var(--ink);margin:10px 0}
