:root{color-scheme:light;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}html{scroll-padding-top:env(safe-area-inset-top,0px)}body{margin:0;padding:0;font:14px -apple-system,BlinkMacSystemFont,sans-serif;background:#faf9f5;color:#141413}img{max-width:100%}[hidden]:not([hidden=until-found i]){display:none!important}
:root{
  /* Composition : carte radiale, le livre au centre, 8 branches, 5 idées par branche. Panneau de lecture à droite (bureau) ou en feuille basse (téléphone). Onglets : Carte, Bibliothèque, Plan d'action. */
  --bg:#EDF0F4; --surface:#FFFFFF; --raise:#F5F7FA; --fg:#101B2A; --muted:#4F5F78; --line:#CDD5DF; --on-c:#FFFFFF; --xl:#1C2B44;
  --c1:#B4232A; --c2:#0B6E4F; --c3:#1D4ED8; --c4:#6D28D9; --c5:#9A5B00; --c6:#0E7490; --c7:#BE185D; --c8:#101B2A;
  --halo:rgba(29,78,216,.07); --shadow:0 1px 2px rgba(16,27,42,.05),0 8px 24px rgba(16,27,42,.06); --hdr:rgba(255,255,255,.82);
  --f-display:'Archivo','Arial Narrow',Arial,sans-serif;
  --f-body:'Source Sans 3',system-ui,-apple-system,'Segoe UI',sans-serif;
  --f-mono:'JetBrains Mono',ui-monospace,Menlo,Consolas,monospace;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#070C13; --surface:#111B29; --raise:#0D1621; --fg:#E7EDF5; --muted:#93A3B8; --line:#243347; --on-c:#0A1119; --xl:#C9D6E8;
    --c1:#FF7A80; --c2:#4ADE9F; --c3:#7FA7FF; --c4:#B79BFF; --c5:#FFB84D; --c6:#4FD1E8; --c7:#FF7DBB; --c8:#E7EDF5;
    --halo:rgba(127,167,255,.11); --shadow:0 1px 0 rgba(255,255,255,.04) inset,0 10px 30px rgba(0,0,0,.45); --hdr:rgba(13,21,33,.8);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#070C13; --surface:#111B29; --raise:#0D1621; --fg:#E7EDF5; --muted:#93A3B8; --line:#243347; --on-c:#0A1119; --xl:#C9D6E8;
  --c1:#FF7A80; --c2:#4ADE9F; --c3:#7FA7FF; --c4:#B79BFF; --c5:#FFB84D; --c6:#4FD1E8; --c7:#FF7DBB; --c8:#E7EDF5;
  --halo:rgba(127,167,255,.11); --shadow:0 1px 0 rgba(255,255,255,.04) inset,0 10px 30px rgba(0,0,0,.45); --hdr:rgba(13,21,33,.8);
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.5 var(--f-body);-webkit-font-smoothing:antialiased;transition:background-color .3s,color .3s}
button{font-family:inherit;color:inherit}
#app{height:100%;display:flex;flex-direction:column;min-width:0}

/* En-tête */
header{position:relative;z-index:10;display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:10px 16px;background:var(--hdr);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);transition:background-color .3s,border-color .3s}
.brand{display:flex;align-items:center;gap:11px;margin-right:auto;min-width:0}
.brand .bt{display:flex;flex-direction:column;line-height:1.1;min-width:0}
.logo{flex:none;width:30px;height:30px;border-radius:50%;background:conic-gradient(var(--c1),var(--c5),var(--c2),var(--c6),var(--c3),var(--c4),var(--c7),var(--c1));-webkit-mask:radial-gradient(circle,transparent 8px,#000 9px);mask:radial-gradient(circle,transparent 8px,#000 9px)}
.theme{flex:none;width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--fg);cursor:pointer;transition:transform .25s,background-color .3s}
.theme:hover{transform:rotate(18deg)}
.theme:focus-visible{outline:2px solid var(--fg);outline-offset:2px}
.theme svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.theme[data-eff=dark] .ic-moon,.theme[data-eff=light] .ic-sun{display:none}
.brand b{font:800 21px var(--f-display);letter-spacing:.01em}
.brand span{font:500 10.5px var(--f-mono);color:var(--muted);letter-spacing:.07em;text-transform:uppercase}
.tabs{display:flex;gap:3px;background:var(--bg);padding:3px;border-radius:10px}
.tabs button{font:600 13px var(--f-body);padding:6px 12px;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer}
.tabs button[aria-selected="true"]{background:var(--surface);color:var(--fg);box-shadow:0 1px 3px rgba(0,0,0,.18)}
.tabs button:focus-visible,.btn:focus-visible,.lchip:focus-visible,.pchip:focus-visible,#q:focus-visible{outline:2px solid var(--fg);outline-offset:2px}
#q{width:190px;min-width:0;flex:1 1 150px;max-width:260px;padding:7px 11px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--fg);font:400 14px var(--f-body)}
.prog{display:flex;flex-direction:column;gap:4px;min-width:130px}
.prog span{font:500 11px var(--f-mono);color:var(--muted)}
.bar{height:5px;background:var(--line);border-radius:3px;overflow:hidden}
.bar i{display:block;height:100%;width:0;background:var(--fg);transition:width .4s}

main{flex:1;min-height:0;position:relative}
.view{position:absolute;inset:0}

/* Carte */
#stage{position:absolute;inset:0;overflow:hidden;background:radial-gradient(circle at 50% 50%,var(--halo),transparent 58%),radial-gradient(circle,var(--line) 1px,transparent 1.3px) 0 0/26px 26px,var(--bg)}
#svg{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}
#svg.grab{cursor:grabbing}
.ctl{position:absolute;top:12px;left:12px;display:flex;flex-direction:column;gap:6px;z-index:3}
.btn{min-width:38px;height:38px;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--fg);font:600 13px var(--f-mono);cursor:pointer}
.btn[aria-pressed="true"]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.legend{position:absolute;left:0;right:0;bottom:0;z-index:2;display:flex;align-items:center;gap:8px;padding:26px 16px 12px;overflow-x:auto;background:linear-gradient(to top,var(--bg) 55%,transparent);scrollbar-width:thin}
.legend .hint{flex:none;font:500 11px var(--f-mono);color:var(--muted);margin-right:6px}
.lchip{flex:none;display:flex;align-items:center;gap:7px;padding:6px 11px;border:1.5px solid var(--bc);border-radius:99px;background:var(--surface);color:var(--fg);font:600 12.5px var(--f-body);cursor:pointer}
.lchip i{width:9px;height:9px;border-radius:3px;background:var(--bc)}
.lchip small{font:500 10.5px var(--f-mono);color:var(--muted)}
.lchip[aria-pressed="true"]{background:var(--bc);color:var(--on-c)}
.lchip[aria-pressed="true"] i{background:var(--on-c)}
.lchip[aria-pressed="true"] small{color:var(--on-c);opacity:.85}

/* SVG */
.ring{fill:none;stroke:var(--line);stroke-width:1.2;stroke-dasharray:2 9;stroke-linecap:round}
.node{cursor:pointer;transition:opacity .25s;outline:none}
.node.dim{opacity:.2}
.node.gone,.edge.gone,.xedge.gone{display:none}
.pop{transform-box:fill-box;transform-origin:center;animation:pop .55s cubic-bezier(.2,.9,.3,1.2) backwards}
@keyframes pop{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}
.node rect,.node circle.body{stroke:var(--bc);stroke-width:1.6;fill:var(--surface);transition:stroke-width .15s}
.node.branch rect{fill:var(--bc);stroke:none}
.node.center circle.body{stroke:var(--fg);stroke-width:3.5}
.node:hover rect,.node:hover circle.body{stroke-width:3}
.node:focus-visible rect,.node:focus-visible circle.body{stroke:var(--fg);stroke-width:3.5}
.node.sel rect,.node.sel circle.body{stroke-width:3.5;filter:drop-shadow(0 0 9px var(--bc))}
.node:hover rect,.node:hover circle.body{filter:drop-shadow(0 0 6px var(--bc))}
.node text{font-family:var(--f-body);font-weight:600;font-size:12.5px;fill:var(--fg);text-anchor:middle;pointer-events:none}
.node.branch text{font-family:var(--f-display);font-weight:700;font-size:14px;fill:var(--on-c)}
.node.center text{font-family:var(--f-display);font-weight:800;font-size:15px;letter-spacing:.06em}
.node.center text.sub{font-family:var(--f-mono);font-weight:500;font-size:9px;letter-spacing:.08em;fill:var(--muted)}
.chk{display:none}
.node.done .chk{display:block}
.chk circle{fill:var(--bc);stroke:var(--surface);stroke-width:2}
.chk path{fill:none;stroke:var(--on-c);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.tog circle{fill:var(--surface);stroke:var(--bc);stroke-width:1.6}
.tog text{fill:var(--fg)!important;font-family:var(--f-mono)!important;font-size:12px!important;font-weight:600!important}
.edge{transition:opacity .25s}
.edge.dim,.xedge.dim{opacity:.07}
.e-base{fill:none;stroke:var(--bc);stroke-width:1.8;opacity:.45;animation:fade .6s backwards}
.e-flow{fill:none;stroke:var(--bc);stroke-width:2.4;stroke-linecap:round;stroke-dasharray:2 14;animation:flow 1.5s linear infinite,fade .6s backwards}
.xedge{transition:opacity .25s}
.x-base{fill:none;stroke:var(--xl);stroke-width:1.5;opacity:.35;stroke-dasharray:7 6}
.x-flow{fill:none;stroke:var(--xl);stroke-width:2.2;stroke-linecap:round;stroke-dasharray:1 15;animation:flow 1.1s linear infinite;opacity:.8}
.xedge.hot .x-base{opacity:.9;stroke-width:2}
.xedge.hot .x-flow{opacity:1;stroke-width:3}
.xl-label{font:600 10.5px var(--f-mono);fill:var(--fg);text-anchor:middle;opacity:0;paint-order:stroke;stroke:var(--bg);stroke-width:5px;pointer-events:none;transition:opacity .2s}
.xedge.hot .xl-label{opacity:1}
@keyframes flow{to{stroke-dashoffset:-32}}
@keyframes fade{from{opacity:0}}

/* Panneau */
#panel{position:absolute;z-index:5;background:var(--surface);border:1px solid var(--line);overflow:auto;overscroll-behavior:contain;
  left:0;right:0;bottom:0;max-height:56%;border-radius:16px 16px 0 0;padding:16px 16px 24px;
  transform:translateY(105%);visibility:hidden;transition:transform .35s cubic-bezier(.2,.8,.2,1),visibility 0s .35s;box-shadow:0 -10px 30px rgba(0,0,0,.18)}
#panel.open{transform:none;visibility:visible;transition-delay:0s}
@media (min-width:900px){
  #panel{left:auto;top:0;bottom:0;width:390px;max-height:none;border-radius:0;border-width:0 0 0 1px;padding:20px 22px 32px;transform:translateX(105%);box-shadow:-10px 0 30px rgba(0,0,0,.12)}
}
.p-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.tag{font:600 10.5px var(--f-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--bc)}
.p-close{flex:none;width:34px;height:34px;border:1px solid var(--line);border-radius:9px;background:var(--bg);font-size:18px;line-height:1;cursor:pointer}
#panel h2{margin:6px 0 14px;font:800 26px/1.1 var(--f-display);text-wrap:balance}
.blk{margin:0 0 14px}
.blk h3{margin:0 0 4px;display:flex;align-items:center;gap:8px;font:600 10.5px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.blk h3::before{content:"";width:8px;height:8px;border-radius:2px;background:var(--bc)}
.blk p{margin:0}
.blk.act{padding:12px 14px;border-radius:12px;border:1px solid var(--bc);background:var(--raise);background:color-mix(in srgb,var(--bc) 9%,var(--surface))}
.rel{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}
.rel-l{width:100%;font:600 10.5px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.pchip{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:5px 10px;border:1.5px solid var(--bc);border-radius:99px;background:var(--surface);color:var(--fg);font:600 12.5px var(--f-body);cursor:pointer;text-align:left}
.pchip em{font:500 10.5px var(--f-mono);font-style:normal;color:var(--muted)}
.pchip.ok::before{content:"✓";font-weight:700;color:var(--bc)}
.done-btn{width:100%;padding:11px 14px;border:1.5px solid var(--bc);border-radius:11px;background:var(--surface);color:var(--fg);font:700 14px var(--f-body);cursor:pointer}
.done-btn[aria-pressed="true"]{background:var(--bc);color:var(--on-c)}
.done-btn:focus-visible,.p-close:focus-visible{outline:2px solid var(--fg);outline-offset:2px}

/* Candidatures */
#v-apps{display:flex;flex-direction:column;overflow:hidden}
.ap-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain}
.ap-wrap{max-width:1500px;margin:0 auto;padding:16px 16px 64px;min-width:0}
.ap-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));gap:10px;margin:0 0 16px}
.ap-s{padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow);min-width:0}
.ap-s b{display:block;font:800 26px/1.1 var(--f-display);font-variant-numeric:tabular-nums}
.ap-s span{font:600 10.5px var(--f-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.ap-s.alert b{color:var(--c1)}
.ap-s .bar{margin-top:8px}
.ap-s .bar i{background:var(--c2)}
.ap-board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(260px,1fr);gap:12px;align-items:start;overflow-x:auto;padding-bottom:10px;scroll-snap-type:x proximity}
.ap-col{min-width:0;scroll-snap-align:start;padding:10px;border:1px solid var(--line);border-radius:14px;background:var(--raise)}
.ap-col h3{display:flex;align-items:center;gap:8px;margin:2px 4px 10px;font:700 12px var(--f-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.ap-col h3 i{width:9px;height:9px;border-radius:50%;background:var(--sc)}
.ap-col h3 b{margin-left:auto;font-weight:600;color:var(--fg)}
.ap-cards{display:flex;flex-direction:column;gap:8px;min-height:30px}
.ap-card{border:1px solid var(--line);border-radius:11px;background:var(--surface);box-shadow:var(--shadow);min-width:0}
.ap-open{display:flex;flex-direction:column;gap:2px;width:100%;padding:11px 12px 6px;border:0;background:transparent;color:var(--fg);text-align:left;cursor:pointer;border-radius:11px;font:inherit}
.ap-open:focus-visible{outline:2px solid var(--fg);outline-offset:-2px}
.ap-co{font:700 15px var(--f-body);overflow-wrap:anywhere}
.ap-ro{font-size:13.5px;color:var(--muted);overflow-wrap:anywhere}
.ap-meta{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:4px;font:500 10.5px var(--f-mono);color:var(--muted)}
.ap-meta .late{color:var(--c1);font-weight:600}
.ap-foot{display:flex;align-items:center;gap:6px;padding:4px 8px 9px 12px}
.pill{display:inline-flex;align-items:center;gap:6px;padding:2px 9px;border:1.5px solid var(--sc);border-radius:99px;font:600 11px var(--f-body);color:var(--fg)}
.pill i{width:7px;height:7px;border-radius:50%;background:var(--sc)}
.ap-ck{font:500 10.5px var(--f-mono);color:var(--muted)}
.ap-mv{margin-left:auto;display:flex;gap:4px}
.ap-mv button{width:28px;height:28px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--fg);font-size:15px;line-height:1;cursor:pointer}
.ap-mv button:focus-visible{outline:2px solid var(--fg);outline-offset:1px}
.ap-mv button[hidden]{display:none}
.ap-add{width:100%;margin-top:8px;padding:7px;border:1px dashed var(--line);border-radius:9px;background:transparent;color:var(--muted);font:600 12.5px var(--f-body);cursor:pointer}
.ap-add:hover{color:var(--fg);border-color:var(--muted)}
.ap-add:focus-visible{outline:2px solid var(--fg);outline-offset:2px}
.ap-hint{margin:0 0 14px;max-width:70ch;color:var(--muted)}
#ap-panel{position:absolute;z-index:6;top:0;bottom:0;right:0;width:min(480px,100%);overflow:auto;overscroll-behavior:contain;padding:18px 18px 40px;background:var(--surface);border-left:1px solid var(--line);box-shadow:-12px 0 32px rgba(0,0,0,.18);transform:translateX(105%);visibility:hidden;transition:transform .3s cubic-bezier(.2,.8,.2,1),visibility 0s .3s}
#ap-panel.open{transform:none;visibility:visible;transition-delay:0s}
.ap-ph{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin:0 0 12px}
.ap-ph h2{margin:0;font:800 22px/1.15 var(--f-display);overflow-wrap:anywhere}
.ap-fs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;margin:0 0 14px}
.ap-f{display:flex;flex-direction:column;gap:3px;min-width:0}
.ap-f.wide{grid-column:1/-1}
.ap-f label,.ap-sec h3{font:600 10.5px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0}
.ap-f input,.ap-f select,.ap-f textarea,.ap-hadd input{width:100%;min-width:0;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);font:400 14px var(--f-body)}
.ap-f textarea{min-height:110px;resize:vertical;line-height:1.5}
.ap-f input:focus,.ap-f select:focus,.ap-f textarea:focus,.ap-hadd input:focus{outline:2px solid var(--fg);outline-offset:1px}
.ap-open-link{font:600 12px var(--f-mono);color:var(--c3);overflow-wrap:anywhere}
.ap-sec{margin:0 0 16px}
.ap-ckl{display:grid;gap:4px;margin-top:6px}
.ap-ckl label{display:flex;gap:9px;align-items:flex-start;cursor:pointer;font-size:14px}
.ap-ckl input{flex:none;width:17px;height:17px;margin:2px 0 0;accent-color:var(--c2)}
.ap-ckl input:checked+span{color:var(--muted);text-decoration:line-through}
.ap-hist{list-style:none;margin:8px 0;padding:0;display:flex;flex-direction:column;gap:6px}
.ap-hist li{display:flex;gap:10px;align-items:flex-start;font-size:13.5px}
.ap-hist time{flex:none;width:58px;font:500 11px var(--f-mono);color:var(--muted);padding-top:2px}
.ap-hist span{flex:1;min-width:0;overflow-wrap:anywhere}
.ap-hist button{flex:none;border:0;background:transparent;color:var(--muted);font-size:16px;line-height:1;cursor:pointer}
.ap-hadd{display:grid;grid-template-columns:132px minmax(0,1fr) auto;gap:6px}
@media (max-width:600px){
  .ap-fs{grid-template-columns:minmax(0,1fr)}
  .ap-hadd{grid-template-columns:minmax(0,1fr) auto}
  .ap-hadd input[type=date]{grid-column:1/-1}
  .ap-board{grid-auto-columns:minmax(82%,1fr)}
  .ap-wrap{padding:12px 12px 56px}
}
/* Notes */
.tabs{max-width:100%;overflow-x:auto;scrollbar-width:none}
.tabs button{white-space:nowrap}
.tabs button.dirty::after{content:"";display:inline-block;width:6px;height:6px;margin-left:6px;border-radius:50%;background:var(--c5);vertical-align:middle}
#v-notes{display:flex;flex-direction:column;overflow:hidden}
#nt-map{position:relative;flex:0 0 40%;min-height:190px;border-bottom:1px solid var(--line)}
#nt-list{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain}
@media (min-width:900px){
  #v-notes{flex-direction:row}
  #nt-map{flex:0 0 52%;border-bottom:0;border-right:1px solid var(--line)}
}
.nt-bar{position:sticky;top:0;z-index:3;display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:10px 16px;background:var(--bg);border-bottom:1px solid var(--line)}
.nt-sp{flex:1 1 0}
.nt-st{font:500 11px var(--f-mono);color:var(--muted);min-width:0}
.nt-st.warn{color:var(--c5)}
.nt-st.ok{color:var(--c2)}
#nt-list .nt-st,#nt-list .nt-sp,#v-apps .nt-st,#v-apps .nt-sp,#nt-save,#nt-exp,#ap-save,#ap-exp{display:none!important}
.hd-save{flex:none;display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 14px;border:1px solid var(--line);border-radius:99px;background:var(--surface);color:var(--fg);font:600 13px var(--f-body);cursor:pointer;white-space:nowrap}
.hd-save i{width:8px;height:8px;border-radius:50%;background:var(--c2)}
.hd-save.dirty{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.hd-save.dirty i{background:var(--c5)}
.hd-save.warn i{background:var(--c1)}
.hd-save:focus-visible{outline:2px solid var(--fg);outline-offset:2px}
.hd-save[disabled]{opacity:.6;cursor:default}
.btn.prim{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.btn.prim:focus-visible{outline:2px solid var(--fg);outline-offset:2px}
.btn.dirty{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.btn[disabled]{opacity:.5;cursor:default}
.nt-wrap{max-width:1120px;margin:0 auto;padding:16px 16px 56px;min-width:0}
#nt-filter:empty{display:none}
.nt-fl{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 14px;font:500 12px var(--f-mono);color:var(--muted)}
.nt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:12px;align-items:start}
.note{min-width:0;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow)}
.note.open{grid-column:1/-1;border-color:var(--fg)}
.note-h{display:flex;align-items:center;gap:10px;width:100%;padding:12px 14px;border:0;background:transparent;color:var(--fg);text-align:left;cursor:pointer;border-radius:12px;font:inherit}
.note-h:focus-visible{outline:2px solid var(--fg);outline-offset:-2px}
.chev{flex:none;width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(-45deg);transition:transform .15s}
.note.open .chev{transform:rotate(45deg)}
.nt-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.nt-t{font:700 15px var(--f-body);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nt-ex{font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.note.open .nt-ex{display:none}
.nt-meta{flex:none;display:flex;gap:8px;font:500 10.5px var(--f-mono);color:var(--muted)}
.nt-meta b{font-weight:600;color:var(--c5)}
.note-b{padding:0 14px 14px;max-width:860px}
.nt-title{width:100%;margin:0 0 8px;padding:6px 0;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--fg);font:800 22px var(--f-display)}
.nt-title:focus{outline:none;border-bottom-color:var(--fg)}
.nt-modes{display:inline-flex;gap:3px;margin:0 0 8px;padding:3px;border-radius:9px;background:var(--bg)}
.nt-modes button{padding:4px 10px;border:0;border-radius:7px;background:transparent;color:var(--muted);font:600 12px var(--f-body);cursor:pointer}
.nt-modes button[aria-pressed="true"]{background:var(--surface);color:var(--fg);box-shadow:0 1px 3px rgba(0,0,0,.18)}
.nt-body{display:block;width:100%;min-height:150px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--raise);color:var(--fg);font:400 15px/1.55 var(--f-body);resize:vertical}
.nt-body:focus{outline:2px solid var(--fg);outline-offset:1px}
.md{min-height:60px;padding:2px 2px 6px;overflow-wrap:anywhere}
.md>*:first-child{margin-top:0}
.md h1,.md h2,.md h3{margin:14px 0 6px;font-family:var(--f-display);line-height:1.2}
.md h1{font-size:21px}.md h2{font-size:18px}.md h3{font-size:15.5px}
.md p{margin:0 0 8px}
.md ul{margin:0 0 8px;padding-left:22px}
.md ul.tasks{list-style:none;padding-left:0}
.md li.task label{display:flex;gap:9px;align-items:flex-start;cursor:pointer}
.md li.task input{flex:none;width:17px;height:17px;margin:3px 0 0;accent-color:var(--fg)}
.md li.task input:checked+span{color:var(--muted);text-decoration:line-through}
.md blockquote{margin:0 0 8px;padding:2px 12px;border-left:3px solid var(--line);color:var(--muted)}
.md code{padding:1px 5px;border-radius:5px;background:var(--bg);font:500 .9em var(--f-mono)}
.md .nt-none{color:var(--muted)}
.nt-links{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 8px}
.nt-links:empty{display:none}
.lk{display:inline-flex;align-items:stretch;max-width:100%;border:1.5px solid var(--bc);border-radius:99px;background:var(--surface);overflow:hidden}
.lk button{border:0;background:transparent;color:var(--fg);font:600 12.5px var(--f-body);cursor:pointer;padding:4px 9px}
.lk .lk-x{padding:4px 9px 4px 4px;color:var(--muted);font-size:15px;line-height:1}
.lk button:focus-visible{outline:2px solid var(--fg);outline-offset:-2px}
.np{margin:8px 0;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.np summary{display:flex;align-items:center;gap:8px;padding:9px 12px;cursor:pointer;font:600 13px var(--f-body);list-style:none}
.np summary::-webkit-details-marker{display:none}
.np summary::before{content:"";width:7px;height:7px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(-45deg);transition:transform .15s}
.np[open] summary::before{transform:rotate(45deg)}
.np summary b{font:600 11px var(--f-mono);color:var(--muted)}
.np-q{display:block;width:calc(100% - 24px);margin:0 12px 8px;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);font:400 14px var(--f-body)}
.np-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:2px 14px;max-height:260px;overflow:auto;padding:0 12px 10px}
.np-g{grid-column:1/-1;display:grid;grid-template-columns:subgrid;gap:2px 14px;margin-top:6px}
.np-i{display:flex;align-items:flex-start;gap:8px;padding:3px 0;cursor:pointer;font-size:13.5px;min-width:0}
.np-i input{flex:none;width:16px;height:16px;margin:2px 0 0;accent-color:var(--bc)}
.np-i.np-b{grid-column:1/-1;font-weight:700;color:var(--bc)}
.np-i[hidden]{display:none}
.nt-foot{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}
.nt-foot small{flex:1 1 auto;font:500 10.5px var(--f-mono);color:var(--muted)}
.sm{padding:6px 11px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--fg);font:600 12.5px var(--f-body);cursor:pointer}
.sm:focus-visible{outline:2px solid var(--fg);outline-offset:2px}
.sm.danger[data-arm="1"]{background:var(--c1);border-color:var(--c1);color:var(--on-c)}
.nt-empty{grid-column:1/-1;padding:34px 0;color:var(--muted);max-width:52ch}
.pchip.add{border-style:dashed}
.nbadge{display:none}
.node.hasnote .nbadge{display:block}
.nbadge circle{fill:var(--fg);stroke:var(--surface);stroke-width:2}
.nbadge text{fill:var(--bg)!important;font:700 9.5px var(--f-mono)!important}
@media (max-width:600px){
  .nt-bar{padding:8px 12px}
  .nt-wrap{padding:12px 12px 48px}
  .nt-meta{display:none}
}
@media (max-width:600px){
  .legend .hint{display:none}
  .ctl{flex-direction:row;flex-wrap:wrap;gap:5px;top:8px;left:8px;right:8px}
  .btn{min-width:34px;height:34px;padding:0 9px;font-size:12px}
  header{gap:8px 12px}
  header .brand{order:0;flex:1 1 0}.hd-save{order:1;height:34px;padding:0 12px}.theme{order:2;width:34px;height:34px}.as{order:3;flex:1 1 100%}.tabs{order:4;flex:1 1 100%}#q{order:5}.prog{order:6}
  .prog{flex:1 1 100%;flex-direction:row;align-items:center}
  .prog .bar{flex:1}
}

/* Espaces */
#v-spaces{display:flex;overflow:hidden}
#sp-side{flex:0 0 280px;min-width:0;overflow:auto;overscroll-behavior:contain;border-right:1px solid var(--line);background:var(--raise);padding:12px 8px 40px}
#sp-main{flex:1;min-width:0;overflow:auto;overscroll-behavior:contain;position:relative}
.sp-wrap{max-width:860px;margin:0 auto;padding:22px 24px 120px;min-width:0}
.sp-wrap.wide{max-width:none}
.sp-wrap.f-serif{font-family:Georgia,'Times New Roman',serif}
.sp-wrap.f-mono{font-family:var(--f-mono)}
.sp-wrap.small .rt,.sp-wrap.small .tb{font-size:14px}
.sp-sh{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 4px 10px}
.sp-sh b,.sp-lab{font:700 11px var(--f-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.sp-lab{margin:14px 6px 4px}
.sp-emp{margin:8px 6px;color:var(--muted);font-size:13.5px}
.sp-sp{margin:0 0 6px}
.sp-srow,.sp-row{display:flex;align-items:center;gap:1px;border-radius:8px}
.sp-row{padding-left:calc(var(--d)*14px)}
.sp-sbtn{flex:1;min-width:0;display:flex;align-items:center;gap:8px;padding:6px 8px;border:0;border-radius:8px;background:transparent;color:var(--fg);font:700 14px var(--f-body);text-align:left;cursor:pointer}
.sq{flex:none;width:11px;height:11px;border-radius:3px;background:var(--sc,var(--muted));display:inline-block}
.sq.big{width:30px;height:30px;border-radius:8px}
.pic{flex:none;width:20px;text-align:center;font-size:15px;line-height:1}
.sp-sbtn span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sp-sbtn:hover,.sp-row:hover,.sp-srow:hover{background:var(--surface)}
.sp-sbtn.on{background:var(--surface);box-shadow:inset 3px 0 0 var(--sc)}
.sp-row.on{background:var(--surface);box-shadow:inset 3px 0 0 var(--sc)}
.sp-ico{flex:none;width:26px;height:26px;border:0;border-radius:7px;background:transparent;color:var(--muted);font:600 15px/1 var(--f-body);cursor:pointer}
.sp-ico:hover{background:var(--line);color:var(--fg)}
.sp-pl{opacity:0}
.sp-row:hover .sp-pl,.sp-pl:focus-visible{opacity:1}
@media (hover:none){.sp-pl{opacity:.7}}
.sp-pg{flex:1;min-width:0;display:flex;align-items:center;gap:6px;padding:5px 6px;border:0;border-radius:7px;background:transparent;color:var(--fg);font:500 13.5px var(--f-body);text-align:left;cursor:pointer}
.sp-pg span:not(.pic){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sp-sbtn:focus-visible,.sp-pg:focus-visible,.sp-ico:focus-visible,.sp-card:focus-visible,.bl-m:focus-visible,.im-pick:focus-within,.db-tab:focus-visible,.kc-t:focus-visible,.gc:focus-visible,.dli:focus-visible,.cal-e:focus-visible,.pt-ic:focus-visible{outline:2px solid var(--fg);outline-offset:1px}
.dr-in{outline:2px dashed var(--sc,var(--c3));outline-offset:-2px;background:color-mix(in srgb,var(--sc,var(--c3)) 10%,transparent)}
.sp-back{display:none;margin:0 0 10px}
.sp-crumb{display:flex;flex-wrap:wrap;gap:2px 4px;align-items:center;margin:0 0 8px;font:500 12px var(--f-mono);color:var(--muted)}
.sp-crumb button{border:0;background:transparent;color:var(--muted);font:inherit;cursor:pointer;padding:3px 5px;border-radius:5px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sp-crumb button:hover{color:var(--fg);background:var(--raise)}
.pg-tools{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.sm.on,.sm[aria-pressed="true"]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.sm.prim{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.sm.ghost{border-style:dashed;color:var(--muted);background:transparent}
.sm:disabled{opacity:.45;cursor:default}
.sm.danger{color:var(--c1)}
.cover-w{margin:0}
.cover{position:relative;height:150px;border-bottom:1px solid var(--line)}
.cv-a{position:absolute;right:14px;bottom:10px;display:flex;gap:6px;opacity:0;transition:opacity .15s}
.cover:hover .cv-a,.cover:focus-within .cv-a{opacity:1}
@media (hover:none){.cv-a{opacity:1}}
.pt-h{display:flex;align-items:center;gap:10px;margin:0 0 4px;min-height:40px}
.pt-ic{min-width:46px;height:46px;padding:0 6px;border:0;border-radius:10px;background:transparent;font-size:34px;line-height:1;cursor:pointer;color:var(--muted)}
.pt-ic:hover{background:var(--raise)}
.pt-ic .ph{font:600 12px var(--f-body)}
.sp-title{display:block;width:100%;margin:0 0 6px;padding:4px 0;border:0;border-bottom:3px solid var(--sc);background:transparent;color:var(--fg);font:800 34px/1.15 var(--f-display)}
.sp-title:focus{outline:none}
.sp-title::placeholder{color:var(--muted);opacity:.6}
.pt-h .sp-title{flex:1;margin:0}
.sp-colors{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0 22px}
.sp-colors span{font:600 10.5px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-right:4px}
.sp-colors button{width:28px;height:28px;border-radius:50%;border:2px solid transparent;background:var(--sc);cursor:pointer}
.sp-colors button[aria-pressed="true"]{border-color:var(--fg);box-shadow:0 0 0 3px var(--bg) inset}
.sp-colors button:focus-visible{outline:2px solid var(--fg);outline-offset:2px}
.sp-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:18px 0 10px}
.sp-h h3{margin:0;font:700 11px var(--f-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.sp-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:12px;align-items:start}
.sp-card{display:flex;flex-direction:column;gap:4px;padding:14px;border:1px solid var(--line);border-top:3px solid var(--sc);border-radius:12px;background:var(--surface);box-shadow:var(--shadow);cursor:pointer;min-width:0;color:var(--fg);text-align:left;font:inherit}
.sp-card b{font:700 15px var(--f-body);overflow-wrap:anywhere}
.sp-card span{font-size:13px;color:var(--muted);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.sp-card small{font:500 10.5px var(--f-mono);color:var(--muted)}
.sp-none{color:var(--muted);max-width:60ch}
.sp-pre{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.sp-pre button{padding:8px 14px;border:1.5px solid var(--sc);border-radius:99px;background:var(--surface);color:var(--fg);font:600 13.5px var(--f-body);cursor:pointer}
.tr-l{display:flex;flex-direction:column;gap:8px}
.tr-i{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.tr-n{flex:1 1 200px;min-width:0;display:flex;flex-direction:column;font-weight:600;overflow-wrap:anywhere}
.tr-n small{font:500 10.5px var(--f-mono);color:var(--muted)}
/* panneaux */
.dpanel{display:grid;gap:8px;margin:8px 0}
.dpn{display:grid;gap:8px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--raise)}
.dpn>b{font:700 11px var(--f-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.dpr{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.dpr label{display:flex;align-items:center;gap:6px;font:600 13px var(--f-body)}
.dpn select,.dpn input[type=text],.dpn input[type=number],.dpn input[type=date],.dpn input[type=url],.dpn textarea,.bl-ctl select,.db-q{padding:6px 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--fg);font:400 13.5px var(--f-body);min-width:0;max-width:100%}
.dpc{cursor:pointer}
.dpc input{accent-color:var(--sc,var(--c3));width:16px;height:16px}
.cv-p{gap:6px}
.cv-s{width:34px;height:26px;border:1px solid var(--line);border-radius:6px;cursor:pointer}
/* blocs */
.bls{margin:10px 0 0}
.blw{min-width:0;position:relative;border-radius:6px}
.blw.dr-up{box-shadow:0 -3px 0 var(--c3)}
.blw.dr-dn{box-shadow:0 3px 0 var(--c3)}
.bl{display:flex;align-items:flex-start;gap:2px;margin:1px 0}
.bl-in{flex:1;min-width:0}
.bl-dh{flex:none;width:22px;height:30px;margin-left:-24px;border:0;border-radius:6px;background:transparent;color:var(--muted);font:700 14px/1 var(--f-body);cursor:grab;opacity:0;padding:0}
.blw:hover .bl-dh,.bl-dh:focus-visible{opacity:.7}
.bl-dh:hover{background:var(--raise);opacity:1}
@media (max-width:860px){.bl-dh{display:none}}
.rt{min-height:1.6em;padding:3px 4px;border-radius:5px;color:var(--fg);font-size:16px;line-height:1.6;overflow-wrap:anywhere;white-space:pre-wrap;outline:none;min-width:0}
.rt:empty::before{content:attr(data-ph);color:var(--muted);opacity:.0;pointer-events:none}
.blw:focus-within .rt:empty::before,.rt:empty:focus::before{opacity:.6}
.bl-h1 .rt{font:800 28px/1.25 var(--f-display)}
.bl-h2 .rt{font:700 22px/1.3 var(--f-display)}
.bl-h3 .rt{font:700 18px/1.35 var(--f-display)}
.bl.hc .rt{color:var(--bcol)}
.rt b{font-weight:700}
.rt code{padding:1px 5px;border-radius:5px;background:var(--raise);border:1px solid var(--line);font:500 .88em var(--f-mono);color:var(--c1)}
.rt a{color:var(--c3);text-decoration:underline;text-underline-offset:2px}
.rt mark{color:inherit;border-radius:3px;padding:0 1px;background:color-mix(in srgb,var(--mc,var(--c5)) 30%,transparent)}
mark[data-c="c1"]{--mc:var(--c1)}mark[data-c="c2"]{--mc:var(--c2)}mark[data-c="c3"]{--mc:var(--c3)}mark[data-c="c4"]{--mc:var(--c4)}mark[data-c="c5"]{--mc:var(--c5)}mark[data-c="c7"]{--mc:var(--c7)}mark[data-c="m"]{--mc:var(--muted)}
span[data-tc="c1"]{color:var(--c1)}span[data-tc="c2"]{color:var(--c2)}span[data-tc="c3"]{color:var(--c3)}span[data-tc="c4"]{color:var(--c4)}span[data-tc="c5"]{color:var(--c5)}span[data-tc="c7"]{color:var(--c7)}span[data-tc="m"]{color:var(--muted)}
.bl-ul .bl-in,.bl-ol .bl-in,.bl-todo .bl-in{display:flex;align-items:flex-start;gap:4px}
.bl-ul .rt,.bl-ol .rt,.bl-todo .rt{flex:1}
.bl-mk{flex:none;width:6px;height:6px;margin:14px 6px 0 8px;border-radius:50%;background:var(--fg)}
.bl-num{flex:none;min-width:24px;margin:3px 0 0;padding-right:2px;text-align:right;font:600 15px/1.6 var(--f-body);color:var(--muted)}
.tdc{flex:none;width:18px;height:18px;margin:8px 4px 0 6px;accent-color:var(--sc)}
.bl-todo.done .rt{color:var(--muted);text-decoration:line-through}
.bl-quote .rt{border-left:3px solid var(--sc);border-radius:0 6px 6px 0;padding-left:14px;font-size:17px;color:var(--fg)}
.co{display:flex;align-items:flex-start;gap:8px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--bcol,var(--c3)) 11%,var(--surface))}
.co .rt{flex:1}
.co-i{flex:none;width:32px;height:32px;border:0;border-radius:8px;background:transparent;font-size:20px;cursor:pointer}
.co-i:hover{background:var(--raise)}
.tg-h{display:flex;align-items:flex-start;gap:2px}
.tg-h .rt{flex:1}
.tg-c{flex:none;width:26px;height:30px;border:0;border-radius:6px;background:transparent;color:var(--muted);font:700 14px var(--f-body);cursor:pointer}
.tg-c:hover{background:var(--raise);color:var(--fg)}
.tg-b{margin:0 0 4px 28px;padding-left:10px;border-left:2px solid var(--line)}
.bl hr{margin:14px 0;border:0;border-top:1px solid var(--line)}
.toc{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;border-radius:8px;background:var(--raise)}
.toc button{border:0;background:transparent;color:var(--muted);font:500 14px var(--f-body);cursor:pointer;padding:3px 4px;text-align:left;text-decoration:underline;text-underline-offset:2px}
.toc button:hover{color:var(--fg)}
.toc .toc-h2{margin-left:14px}.toc .toc-h3{margin-left:28px}
.pl{display:inline-flex;align-items:center;gap:8px;max-width:100%;padding:6px 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--fg);font:600 15px var(--f-body);cursor:pointer}
.pl:hover{background:var(--raise)}
.pl:disabled{opacity:.55;cursor:default}
.pl span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cdw{border:1px solid var(--line);border-radius:10px;background:var(--raise);overflow:hidden}
.cdh{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 8px;border-bottom:1px solid var(--line)}
.cdh select{padding:3px 6px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--muted);font:500 12px var(--f-mono)}
textarea.cd{display:block;width:100%;min-height:60px;padding:10px 12px;border:0;background:transparent;color:var(--fg);font:400 13.5px/1.55 var(--f-mono);resize:none;overflow:auto;white-space:pre;tab-size:2}
textarea.cd:focus{outline:2px solid var(--fg);outline-offset:-2px}
.bl-m{flex:none;width:28px;height:28px;margin-top:2px;border:0;border-radius:7px;background:transparent;color:var(--muted);font:700 16px/1 var(--f-body);cursor:pointer;opacity:.3}
.blw:hover .bl-m,.bl.mo .bl-m,.bl-m:focus-visible{opacity:1}
@media (hover:none){.bl-m{opacity:.7}}
.bl-ctl{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:2px 0 10px;padding:8px;border:1px solid var(--line);border-radius:10px;background:var(--raise)}
.bl-ctl label{display:flex;align-items:center;gap:6px;font:600 12.5px var(--f-body);color:var(--muted)}
.sp-fill{min-height:46px;cursor:text}
.sp-add{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0;padding-top:10px;border-top:1px dashed var(--line)}
.sp-add .hint{font-size:12.5px;color:var(--muted)}
.im{margin:6px 0;min-width:0}
.im img{display:block;max-width:100%;height:auto;border-radius:10px;border:1px solid var(--line)}
.im input.cap{display:block;width:100%;margin-top:4px;padding:4px 6px;border:0;background:transparent;color:var(--muted);font:400 13px var(--f-body);text-align:center}
.im input.cap:focus{outline:2px solid var(--fg);outline-offset:1px;border-radius:6px}
.im-pick{display:flex;align-items:center;justify-content:center;width:100%;min-height:90px;border:1.5px dashed var(--line);border-radius:12px;background:var(--raise);color:var(--muted);font:600 14px var(--f-body);cursor:pointer}
.im-pick:hover{color:var(--fg);border-color:var(--muted)}
.sp-sub{display:flex;flex-direction:column;gap:6px}
.sp-sub .sp-pg{flex:none;padding:8px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface);box-shadow:inset 3px 0 0 var(--sc)}
.sp-foot{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:26px;padding-top:12px;border-top:1px solid var(--line)}
.sp-foot small,.nt-foot small{flex:1 1 auto;font:500 10.5px var(--f-mono);color:var(--muted)}
/* bases de données */
.tb-box{min-width:0;margin:8px 0}
.db-n{display:block;width:100%;margin:0 0 4px;padding:4px 2px;border:0;background:transparent;color:var(--fg);font:700 17px var(--f-display)}
.db-n:focus{outline:2px solid var(--fg);outline-offset:1px;border-radius:5px}
.db-tabs{display:flex;flex-wrap:wrap;gap:2px;border-bottom:1px solid var(--line);margin:0 0 6px}
.db-tab{padding:6px 11px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);font:600 13px var(--f-body);cursor:pointer;margin-bottom:-1px}
.db-tab[aria-selected="true"]{color:var(--fg);border-bottom-color:var(--fg)}
.db-tab.add{font-weight:500}
.db-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 6px}
.db-q{flex:1 1 120px;max-width:220px;margin-left:auto}
.tb-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
table.tb{border-collapse:collapse;width:100%}
.tb th,.tb td{padding:0;border-bottom:1px solid var(--line);border-right:1px solid var(--line);vertical-align:middle;min-width:150px;text-align:left}
.tb th:last-child,.tb td:last-child{border-right:0}
.tb tbody tr:last-child td{border-bottom:0}
.tb th{background:var(--raise)}
.tb .th{display:flex;align-items:center;gap:2px;padding:2px 2px 2px 4px}
.tb .th input{flex:1;min-width:0;padding:6px;border:0;background:transparent;color:var(--fg);font:700 12px var(--f-mono);letter-spacing:.04em}
.tb input[type=text],.tb input[type=number],.tb input[type=date],.tb input[type=url],.tb input[type=email],.tb input[type=tel],.tb select{display:block;width:100%;min-width:0;padding:9px 10px;border:0;border-radius:0;background:transparent;color:var(--fg);font:400 14px var(--f-body)}
.tb input:focus,.tb select:focus,.kb input:focus{outline:2px solid var(--fg);outline-offset:-2px}
.tb td.rowx,.tb th.rowx{min-width:0;width:36px;text-align:center}
.tb td .ck{display:grid;place-items:center;padding:8px}
.tb td .ck input,.pk-c .ck input{width:18px;height:18px;accent-color:var(--sc,var(--c3))}
.t1{display:flex;align-items:center}
.rowopen{flex:none;width:24px;height:24px;margin-left:4px;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer;opacity:0;font-size:13px}
tr:hover .rowopen,.rowopen:focus-visible{opacity:1}
@media (hover:none){.rowopen{opacity:.8}}
.tb tr.grp td{background:var(--raise);padding:6px 10px;font:600 12px var(--f-body)}
.tb tr.grp small{color:var(--muted);margin-left:4px}
.tb tfoot td{background:var(--raise);font:600 12px var(--f-mono);color:var(--muted);padding:7px 10px}
.tb select.selc{background:color-mix(in srgb,var(--oc) 20%,var(--surface));font-weight:600}
.rt5{display:flex;gap:1px;padding:6px 8px}
.star{border:0;background:transparent;color:var(--line);font-size:17px;line-height:1;cursor:pointer;padding:2px}
.star.on{color:var(--c5)}
.mt{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:5px 6px}
.mt select{flex:1 1 60px;width:auto;min-width:60px;padding:4px!important;color:var(--muted)}
.tag2{display:inline-flex;align-items:center;gap:2px;padding:1px 9px;border-radius:99px;border:1px solid color-mix(in srgb,var(--oc) 55%,transparent);background:color-mix(in srgb,var(--oc) 20%,var(--surface));color:var(--fg);font:600 12px var(--f-body);max-width:100%;overflow-wrap:anywhere}
.tag2 button{border:0;background:transparent;color:var(--muted);font-size:14px;line-height:1;cursor:pointer;padding:1px 0 1px 4px}
.stars{color:var(--c5);letter-spacing:1px;font-size:12px}
.ul-cell{display:flex;align-items:center}
.ul-cell a{flex:none;padding:0 10px;color:var(--c3);font:700 14px var(--f-body);text-decoration:none}
.tb-act{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0}
.colset{display:grid;gap:10px}
.colset label{display:flex;flex-direction:column;gap:3px;font:600 10.5px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.colset select,.colset textarea{text-transform:none;letter-spacing:0;font:400 14px var(--f-body)}
.colset .cs-h{display:flex;align-items:center;justify-content:space-between;gap:8px}
.kb{display:flex;gap:10px;overflow-x:auto;padding:2px 2px 10px;align-items:flex-start}
.kcol{flex:0 0 240px;display:flex;flex-direction:column;gap:6px;padding:8px;border:1px solid var(--line);border-radius:10px;background:var(--raise);min-width:0}
.kcol h4{margin:0 0 2px;font:600 13px var(--f-body);display:flex;align-items:center;gap:6px}
.kcol h4 small{color:var(--muted)}
.kc{border:1px solid var(--line);border-radius:9px;background:var(--surface);box-shadow:var(--shadow);cursor:grab}
.kc-t{display:block;width:100%;padding:9px 10px 4px;border:0;background:transparent;color:var(--fg);font:600 14px var(--f-body);text-align:left;cursor:pointer;overflow-wrap:anywhere}
.kps{display:flex;flex-wrap:wrap;gap:4px;padding:0 10px 9px;font-size:12px;color:var(--muted);min-width:0}
.kc .kps:empty,.gc .kps:empty,.dli .kps:empty{display:none}
.kadd{border:0;border-radius:7px;background:transparent;color:var(--muted);font:600 13px var(--f-body);padding:6px;text-align:left;cursor:pointer}
.kadd:hover{background:var(--line);color:var(--fg)}
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,190px),1fr));gap:10px}
.gc{display:flex;flex-direction:column;gap:6px;min-width:0;padding:12px 0 0;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:var(--shadow);color:var(--fg);text-align:left;font:inherit;cursor:pointer}
.gc b{padding:0 12px;font:700 14px var(--f-body);overflow-wrap:anywhere}
.dl{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;background:var(--surface);overflow:hidden}
.dli{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:9px 12px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--fg);text-align:left;font:inherit;cursor:pointer}
.dli:last-child{border-bottom:0}
.dli:hover,.gc:hover{background:var(--raise)}
.dli b{font:600 14px var(--f-body);overflow-wrap:anywhere}
.dli .kps{padding:0}
.cal-h{display:flex;align-items:center;gap:8px;margin:0 0 8px}
.cal-h b{flex:1;text-align:center;text-transform:capitalize}
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--line)}
.cal-d{padding:5px;background:var(--raise);font:600 10.5px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:center}
.cal-c{min-height:84px;padding:3px;background:var(--surface);min-width:0;display:flex;flex-direction:column;gap:2px}
.cal-c.off{background:var(--raise)}
.cal-c.today .cal-n span{background:var(--fg);color:var(--bg);border-radius:99px}
.cal-n{display:flex;justify-content:space-between;align-items:center;font:600 11.5px var(--f-mono)}
.cal-n span{min-width:20px;height:20px;display:grid;place-items:center;padding:0 3px}
.cal-p{border:0;background:transparent;color:var(--muted);cursor:pointer;opacity:0;font-size:14px;line-height:1}
.cal-c:hover .cal-p,.cal-p:focus-visible{opacity:1}
@media (hover:none){.cal-p{opacity:.6}}
.cal-e{display:block;width:100%;padding:2px 5px;border:0;border-radius:4px;background:color-mix(in srgb,var(--c3) 22%,var(--surface));color:var(--fg);font:500 11.5px var(--f-body);text-align:left;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-c small{font-size:10.5px;color:var(--muted)}
/* panneau ligne */
#sp-peek{position:absolute;z-index:6;top:0;bottom:0;right:0;width:min(440px,100%);overflow:auto;overscroll-behavior:contain;padding:16px 18px 40px;background:var(--surface);border-left:1px solid var(--line);box-shadow:var(--shadow);transform:translateX(104%);visibility:hidden;transition:transform .18s}
#sp-peek.open{transform:none;visibility:visible}
.pk-top{display:flex;align-items:center;justify-content:space-between;margin:0 0 8px}
.pk-top b{font:700 11px var(--f-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.p-close{width:32px;height:32px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:20px;line-height:1;cursor:pointer}
.p-close:hover{background:var(--raise);color:var(--fg)}
.pk-title{display:block;width:100%;margin:0 0 10px;padding:4px 0;border:0;border-bottom:2px solid var(--line);background:transparent;color:var(--fg);font:800 24px/1.2 var(--f-display)}
.pk-title:focus{outline:none;border-bottom-color:var(--fg)}
.pk-r{display:grid;grid-template-columns:110px minmax(0,1fr);gap:8px;align-items:center;padding:4px 0;border-bottom:1px solid var(--line)}
.pk-r label{font:600 11px var(--f-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);overflow-wrap:anywhere}
.pk-r.wide{grid-template-columns:1fr;border-bottom:0}
.pk-c input,.pk-c select{display:block;width:100%;min-width:0;padding:7px 8px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--fg);font:400 14px var(--f-body)}
.pk-c input:hover,.pk-c select:hover,.pk-c input:focus,.pk-c select:focus{border-color:var(--line);background:var(--bg)}
.pk-r textarea{width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--fg);font:400 14px/1.5 var(--f-body);resize:vertical}
.nt-foot{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px}
/* popover icônes */
#sp-pop{position:absolute;inset:0;z-index:8;display:grid;place-items:center;background:color-mix(in srgb,var(--bg) 55%,transparent)}
#sp-pop[hidden]{display:none}
.pop-c{width:min(340px,calc(100% - 24px));max-height:70%;overflow:auto;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}
.pop-h{display:flex;align-items:center;gap:8px;margin:0 0 8px}
.pop-h b{flex:1;font:700 11px var(--f-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.emo{display:grid;grid-template-columns:repeat(8,1fr);gap:2px}
.emo button{aspect-ratio:1;border:0;border-radius:8px;background:transparent;font-size:20px;cursor:pointer}
.emo button:hover{background:var(--raise)}
/* menu « / » et barre de mise en forme */
#sp-sl{position:fixed;z-index:30;max-height:min(330px,50vh);overflow:auto;padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 12px 40px rgba(0,0,0,.25)}
#sp-sl[hidden],#sp-tb[hidden]{display:none}
.sl-q{display:block;width:100%;margin:0 0 6px;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);font:400 14px var(--f-body)}
.sl-i{display:flex;flex-direction:column;align-items:flex-start;width:100%;padding:7px 9px;border:0;border-radius:8px;background:transparent;color:var(--fg);text-align:left;cursor:pointer;font-family:var(--f-body)}
.sl-i b{font-size:14px}.sl-i small{font-size:12px;color:var(--muted)}
.sl-i.on,.sl-i:hover{background:var(--raise)}
.sl-none{margin:8px;color:var(--muted);font-size:13px}
#sp-tb{position:fixed;z-index:31;display:flex;flex-wrap:wrap;gap:2px;max-width:calc(100vw - 16px);padding:4px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 8px 28px rgba(0,0,0,.28)}
#sp-tb>button{min-width:32px;height:32px;padding:0 8px;border:0;border-radius:7px;background:transparent;color:var(--fg);font:600 13px var(--f-body);cursor:pointer}
#sp-tb>button:hover{background:var(--raise)}
.tb-c{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:2px 4px}
.tb-c span{font:600 11px var(--f-mono);color:var(--muted);margin-right:2px}
.tb-c button{min-width:26px;height:26px;border:1px solid var(--line);border-radius:7px;background:color-mix(in srgb,var(--k,var(--c5)) 32%,var(--surface));color:var(--fg);font:700 13px var(--f-body);cursor:pointer;padding:0 6px}
.tb-c button.tc{background:var(--surface);color:var(--k)}
.tb-c button.tb-x{background:var(--surface);font-weight:600}
.tb-c input{width:200px;max-width:55vw;padding:5px 8px;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--fg);font:400 13px var(--f-body)}
/* sauvegarde auto */
.as{flex:none;display:inline-flex;align-items:center;gap:6px}
.as[hidden]{display:none}
.as-t{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 12px;border:1px solid var(--line);border-radius:99px;background:var(--surface);color:var(--fg);font:600 13px var(--f-body);cursor:pointer;white-space:nowrap}
.as-t i{position:relative;width:26px;height:14px;border-radius:99px;background:var(--line);transition:background .15s}
.as-t i::after{content:"";position:absolute;top:2px;left:2px;width:10px;height:10px;border-radius:50%;background:var(--surface);box-shadow:0 0 0 1px var(--muted);transition:transform .15s}
.as-t[aria-checked="true"] i{background:var(--c2)}
.as-t[aria-checked="true"] i::after{transform:translateX(12px);box-shadow:none}
.as-t:focus-visible,.as select:focus-visible,.as input:focus-visible{outline:2px solid var(--fg);outline-offset:2px}
.as-o{display:inline-flex;align-items:center;gap:4px}
.as-o[hidden]{display:none}
.as select,.as input{height:38px;padding:0 8px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--fg);font:600 13px var(--f-body)}
.as input{width:70px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (max-width:800px){
  #v-spaces #sp-side{flex:1 1 100%;border-right:0}
  #v-spaces #sp-main{display:none}
  #v-spaces:not(.ml) #sp-side{display:none}
  #v-spaces:not(.ml) #sp-main{display:block;flex:1 1 100%}
  .sp-back{display:inline-flex;align-items:center}
  .sp-wrap{padding:14px 14px 120px}
  .sp-title{font-size:26px}
  .pk-r{grid-template-columns:90px minmax(0,1fr)}
  .cal-c{min-height:62px}
  .cal-e{font-size:10.5px;padding:1px 3px}
  #sp-sl{left:8px!important;width:auto!important;right:8px}
}
@media (max-width:600px){
  .as-t{height:34px;padding:0 10px}.as select,.as input{height:34px}
}

/* ---------- Hydre ---------- */
.logo{flex:none;width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:var(--fg);-webkit-mask:none;mask:none}
.logo svg{width:24px;height:24px;fill:none;stroke:var(--bg);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.logo svg .hd{fill:var(--c2);stroke:none}
.row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}
.hint{margin:4px 0 0;font-size:13px;color:var(--muted)}
.seg{display:inline-flex;gap:3px;padding:3px;border-radius:9px;background:var(--raise);border:1px solid var(--line)}
.seg button{padding:5px 11px;border:0;border-radius:7px;background:transparent;color:var(--muted);font:600 12.5px var(--f-body);cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--surface);color:var(--fg);box-shadow:0 1px 3px rgba(0,0,0,.18)}
.seg button:focus-visible{outline:2px solid var(--fg);outline-offset:1px}
.up{cursor:pointer;display:inline-flex;align-items:center}
.up:focus-within{outline:2px solid var(--fg);outline-offset:2px}
.lk2{border:0;background:transparent;padding:0;color:var(--c3);font:inherit;font-weight:600;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
/* candidatures */
#v-apps .nt-bar{gap:8px 12px}
.ap-cf{display:flex;gap:6px;overflow-x:auto;min-width:0;flex:1 1 300px;scrollbar-width:thin;padding:2px}
.fchip{flex:none;display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border:1.5px solid var(--line);border-radius:99px;background:var(--surface);color:var(--fg);font:600 12.5px var(--f-body);cursor:pointer;white-space:nowrap}
.fchip i{width:8px;height:8px;border-radius:3px;background:var(--sc)}
.fchip small{font:500 10.5px var(--f-mono);color:var(--muted)}
.fchip.on{border-color:var(--sc);background:color-mix(in srgb,var(--sc) 14%,var(--surface))}
.fchip:focus-visible{outline:2px solid var(--fg);outline-offset:2px}
.cchip{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:1px 8px;border-radius:99px;background:color-mix(in srgb,var(--sc) 14%,var(--surface));border:1px solid color-mix(in srgb,var(--sc) 45%,transparent);font:600 11px var(--f-body);color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cchip i{flex:none;width:7px;height:7px;border-radius:2px;background:var(--sc)}
.bdg{display:inline-flex;padding:1px 7px;border-radius:6px;background:var(--raise);border:1px solid var(--line);font:600 10.5px var(--f-mono);color:var(--muted)}
.bdg.bet{color:var(--c7);border-color:color-mix(in srgb,var(--c7) 45%,transparent)}
.ap-tags{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;padding:0 12px 2px;min-width:0}
.ap-tags:empty{display:none}
.ap-ln{margin-left:auto;font:600 11.5px var(--f-body);color:var(--c3);text-decoration:none}
.ap-ln:hover{text-decoration:underline}
.ap-card{border-left:4px solid var(--sc)}
.ap-card.drag{opacity:.5}
.ap-col.dr-in{outline:2px dashed var(--sc);outline-offset:-2px}
.ap-board{grid-auto-columns:minmax(250px,1fr)}
.ap-list .tb-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.ap-tbl{width:100%;border-collapse:collapse;font-size:14px}
.ap-tbl th{position:sticky;top:0;background:var(--raise);text-align:left;border-bottom:1px solid var(--line)}
.ap-tbl th button{width:100%;padding:9px 12px;border:0;background:transparent;color:var(--muted);font:600 10.5px var(--f-mono);letter-spacing:.07em;text-transform:uppercase;text-align:left;cursor:pointer;white-space:nowrap}
.ap-tbl td{padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap}
.ap-tbl tr[data-row]{cursor:pointer}
.ap-tbl tr[data-row]:hover td{background:var(--raise)}
.ap-tbl td.late{color:var(--c1);font-weight:600}
.ap-tbl td.empty{color:var(--muted);text-align:center;padding:24px}
.ap-tbl td.num{font-variant-numeric:tabular-nums}
.ap-tbl a{color:var(--c3);font-weight:600}
.lk-co{border:0;background:transparent;padding:0;color:var(--fg);font:700 14px var(--f-body);cursor:pointer;text-align:left}
.ap-sub{margin:2px 0 0;color:var(--muted);font-size:14.5px;overflow-wrap:anywhere}
.ap-quick{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.stq{flex:1 1 180px;min-width:0;padding:8px 12px;border:1.5px solid var(--sc);border-radius:10px;background:color-mix(in srgb,var(--sc) 12%,var(--surface));color:var(--fg);font:700 14px var(--f-body)}
.stq:focus-visible{outline:2px solid var(--fg);outline-offset:2px}
.ap-ann{display:inline-flex;align-items:center;text-decoration:none;font-family:var(--f-body)}
.ap-nc .row input{flex:1 1 180px}
.ap-doc{padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--raise)}
.ap-doc h3{margin-bottom:8px}
.ap-doc select{padding:6px 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--fg);font:400 13.5px var(--f-body);max-width:100%}
.ap-ltr-h{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 10px;margin:0 0 6px}
.ap-ltr-h small{font:500 10.5px var(--f-mono);color:var(--muted)}
.rd{position:relative;max-height:150px;overflow:hidden;margin:0 0 10px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font-size:14.5px;line-height:1.55;overflow-wrap:anywhere}
.rd::after{content:"";position:absolute;left:0;right:0;bottom:0;height:46px;background:linear-gradient(transparent,var(--surface))}
.rd.full{max-height:none}
.rd.full::after{display:none}
.rd p{margin:0 0 8px}
.rd p.li{margin:0 0 3px}
.rd h1,.rd h2,.rd h3{margin:10px 0 6px;font-family:var(--f-display);line-height:1.2}
.rd h1{font-size:20px}.rd h2{font-size:17px}.rd h3{font-size:15px}
.rd blockquote{margin:0 0 8px;padding-left:12px;border-left:3px solid var(--line);color:var(--muted)}
.rd .rd-co{margin:0 0 8px;padding:8px 10px;border-radius:8px;background:var(--raise);color:var(--muted);font-size:13.5px}
.rd pre{margin:0 0 8px;padding:8px;border-radius:8px;background:var(--raise);font:13px var(--f-mono);white-space:pre-wrap}
.rd img{max-width:100%;border-radius:8px}
.rd hr{border:0;border-top:1px solid var(--line)}
.paper{background:#fff;color:#16202e}
.paper::after{background:linear-gradient(transparent,#fff)}
/* carte */
.mbar{position:absolute;top:12px;right:12px;z-index:3;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;max-width:calc(100% - 180px)}
.mbar label{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 4px 0 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface);font:600 12px var(--f-mono);color:var(--muted)}
.mbar select{height:30px;border:0;background:transparent;color:var(--fg);font:600 13px var(--f-body);cursor:pointer}
.mbar select:focus-visible{outline:2px solid var(--fg);outline-offset:1px;border-radius:6px}
.m-empty{position:absolute;inset:0;z-index:2;display:grid;place-items:center;pointer-events:none}
.m-empty>div{max-width:420px;margin:0 16px;padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow);text-align:center;pointer-events:auto}
.m-empty h2{margin:0 0 6px;font:800 22px var(--f-display)}
.m-empty p{margin:0 0 14px;color:var(--muted)}
.node.leaf rect.body{fill:var(--surface);stroke:var(--bc);stroke-width:1.6}
.node.leaf rect.bar{fill:var(--bc);stroke:none}
.node.leaf text{text-anchor:start;font-family:var(--f-body)}
.node.leaf text.co{font-weight:700;font-size:13px;fill:var(--fg)}
.node.leaf text.ro{font-weight:500;font-size:11.5px;fill:var(--muted)}
.node.leaf text.st{font:600 9.5px var(--f-mono);fill:var(--muted)}
.node.leaf .dot{fill:var(--surface);stroke:var(--line);stroke-width:1.4}
.node.leaf .dot.on{fill:var(--bc);stroke:var(--bc)}
.node.leaf.cl{opacity:.6}
.node.leaf.cl rect.body{stroke-dasharray:4 3}
.node.leaf.dim,.node.dim{opacity:.16}
.node.leaf .halo{fill:none;stroke:var(--c1);stroke-width:2;opacity:.6;animation:due 1.6s ease-in-out infinite}
@keyframes due{50%{opacity:.1}}
.betb circle{fill:var(--c7)}
.dueb circle{fill:var(--c1)}
.betb text,.dueb text{text-anchor:middle!important;font:800 10px var(--f-mono)!important;fill:var(--on-c)!important}
.node.branch text.sub{font:600 10px var(--f-mono);fill:var(--on-c);opacity:.9}
.node.center text.sub{font-size:9.5px}
.node.leaf:hover rect.body{stroke-width:3}
.node.leaf.sel rect.body{stroke-width:3.5;filter:drop-shadow(0 0 9px var(--bc))}
.node:focus-visible rect.body{stroke:var(--fg);stroke-width:3.5}
#svg.noanim .e-flow,#svg.noanim .halo{animation:none}
.p-sub{margin:-8px 0 12px;color:var(--muted)}
.mt-g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 14px}
.mt-g div{padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:var(--raise);min-width:0}
.mt-g b{display:block;font:800 19px var(--f-display);font-variant-numeric:tabular-nums}
.mt-g span{font:600 9.5px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.fun{display:grid;gap:6px}
.fun-r{display:grid;grid-template-columns:82px minmax(0,1fr) 30px;align-items:center;gap:8px;font-size:13px}
.fun-r b{text-align:right;font-variant-numeric:tabular-nums}
.fun-b{height:10px;border-radius:5px;background:var(--line);overflow:hidden}
.fun-b i{display:block;height:100%;background:var(--k);border-radius:5px}
.hb{display:flex;height:12px;border-radius:6px;overflow:hidden;background:var(--line);gap:2px}
.hb i{background:var(--k)}
.hb-l{display:flex;justify-content:space-between;margin:4px 0 0;font:600 11px var(--f-mono);color:var(--muted)}
.stp{list-style:none;display:flex;margin:4px 0 0;padding:0}
.stp li{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;position:relative;font:600 10px var(--f-mono);color:var(--muted);text-align:center}
.stp li::before{content:"";position:absolute;top:6px;left:-50%;right:50%;height:2px;background:var(--line)}
.stp li:first-child::before{display:none}
.stp li i{position:relative;width:14px;height:14px;border-radius:50%;border:2px solid var(--line);background:var(--surface)}
.stp li.on i{background:var(--bc);border-color:var(--bc)}
.stp li.on::before{background:var(--bc)}
.stp li.on span{color:var(--fg)}
.stp li.x i{background:var(--c1);border-color:var(--c1)}
.inf{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 12px;margin:12px 0 14px;font-size:14px}
.inf dt{font:600 10.5px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding-top:3px}
.inf dd{margin:0;overflow-wrap:anywhere}
.done-btn.lnk{display:block;text-align:center;text-decoration:none;margin:0 0 4px}
.wk{display:flex;align-items:center;gap:12px}
.wk b{font:800 18px var(--f-display);white-space:nowrap}
.wk .bar{flex:1;height:8px}
.wk .bar i{background:var(--c2)}
.pf{width:100%;border-collapse:collapse;font-size:13px}
.pf th{font:600 9.5px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:left;padding:4px 6px;border-bottom:1px solid var(--line)}
.pf td{padding:5px 6px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;white-space:nowrap}
.pfb{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;padding:0;color:var(--fg);font:600 13px var(--f-body);cursor:pointer;text-align:left;white-space:normal}
.pfb i{flex:none;width:8px;height:8px;border-radius:2px;background:var(--sc)}
#panel .row{margin-top:14px}
#panel .rd{margin-top:8px}
/* documents */
#v-docs,#v-set{display:flex;flex-direction:column;overflow:hidden}
.dc-wrap{max-width:1180px;margin:0 auto;padding:18px 16px 80px;min-width:0}
.dc-head h1{margin:0 0 4px;font:800 30px var(--f-display)}
.dc-msg{margin:10px 0;padding:9px 12px;border:1px solid var(--c5);border-radius:10px;background:color-mix(in srgb,var(--c5) 10%,var(--surface));font-size:14px}
.dc-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:12px}
.dc-card{display:flex;flex-direction:column;gap:8px;padding:0 0 12px;border:1px solid var(--line);border-top:4px solid var(--sc);border-radius:12px;background:var(--surface);box-shadow:var(--shadow);min-width:0}
.dc-card .row{padding:0 12px}
.dc-open{display:flex;flex-direction:column;gap:3px;padding:12px 12px 0;border:0;background:transparent;color:var(--fg);text-align:left;cursor:pointer;font:inherit}
.dc-open b{font:700 16px var(--f-body);overflow-wrap:anywhere}
.dc-open small,.dc-k{font:500 10.5px var(--f-mono);color:var(--muted)}
.dc-k{text-transform:uppercase;letter-spacing:.06em}
.dc-open:focus-visible{outline:2px solid var(--fg);outline-offset:-2px;border-radius:10px}
.dc-list{display:flex;flex-direction:column;gap:8px}
.dc-li{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.dc-lt{flex:1 1 220px;min-width:0;display:flex;flex-direction:column}
.dc-lt b{overflow-wrap:anywhere}
.dc-lt small{font:500 10.5px var(--f-mono);color:var(--muted)}
.dc-modal{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:16px;background:color-mix(in srgb,var(--bg) 60%,transparent)}
.dc-mc{width:min(760px,100%);max-height:88vh;overflow:auto;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}
.dc-mc .rd{padding:28px 32px;font-family:Georgia,'Times New Roman',serif;font-size:15.5px}
.dc-top{position:sticky;top:0;z-index:4;display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:-18px -16px 14px;padding:10px 16px;background:var(--bg);border-bottom:1px solid var(--line)}
.dc-name{flex:1 1 200px;min-width:0;padding:6px 8px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--fg);font:800 20px var(--f-display)}
.dc-name:hover,.dc-name:focus{border-color:var(--line);background:var(--surface);outline:none}
.dc-sp{flex:0 0 0}
.dc-l{display:inline-flex;align-items:center;gap:6px;font:600 12px var(--f-mono);color:var(--muted)}
.dc-l select{padding:5px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--fg);font:600 13px var(--f-body)}
.sw{display:inline-flex;flex-wrap:wrap;gap:4px}
.sw button{width:22px;height:22px;border-radius:50%;border:2px solid var(--surface);background:var(--k);box-shadow:0 0 0 1px var(--line);cursor:pointer;padding:0}
.sw button[aria-pressed="true"]{box-shadow:0 0 0 2px var(--fg)}
.sw button:focus-visible{outline:2px solid var(--fg);outline-offset:2px}
.cv-sec{margin:0 0 14px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.cv-sec h3{margin:0 0 8px;font:700 11px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.cv-sh{display:flex;align-items:center;justify-content:space-between;gap:8px}
.cv-it{padding:10px 0;border-top:1px dashed var(--line)}
.cv-it:first-of-type{border-top:0}
.cv-it .ap-fs{margin-bottom:8px}
.cv-ph{width:44px;height:44px;border-radius:8px;object-fit:cover;border:1px solid var(--line)}
.dc-prev{display:flex;flex-direction:column;align-items:center;gap:12px}
.pdfpg{max-width:100%;height:auto!important;border-radius:4px;box-shadow:0 4px 20px rgba(0,0,0,.18);background:#fff}
.docx{width:min(820px,100%);padding:40px 48px;border-radius:6px;box-shadow:0 4px 20px rgba(0,0,0,.18);overflow-wrap:anywhere}
.docx table{border-collapse:collapse}.docx td,.docx th{border:1px solid #ccd;padding:4px 6px}
pre.paper{width:min(820px,100%);padding:24px;border-radius:6px;white-space:pre-wrap;font:13px var(--f-mono)}
/* paramètres */
.set-wrap{display:grid;grid-template-columns:200px minmax(0,1fr);gap:24px;max-width:1100px;margin:0 auto;padding:18px 16px 80px;min-width:0}
.set-nav{position:sticky;top:12px;align-self:start;display:flex;flex-direction:column;gap:2px}
.set-nav button{padding:7px 10px;border:0;border-radius:8px;background:transparent;color:var(--muted);font:600 13.5px var(--f-body);text-align:left;cursor:pointer}
.set-nav button:hover{background:var(--surface);color:var(--fg)}
.set-nav button:focus-visible{outline:2px solid var(--fg);outline-offset:1px}
.set-s{margin:0 0 18px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface);scroll-margin-top:12px}
.set-s h2{margin:0 0 4px;font:800 19px var(--f-display)}
.set-s h3{margin:14px 0 6px;font:700 11px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.set-s>.ap-fs{margin:12px 0 0}
.set-l{display:flex;flex-direction:column;gap:6px;margin:12px 0}
.set-r{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:8px 10px;border:1px solid var(--line);border-left:4px solid var(--sc,var(--line));border-radius:10px;background:var(--raise)}
.set-r input,.set-r select,.set-add input,.set-add select{min-width:0;padding:6px 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--fg);font:400 14px var(--f-body)}
.set-r input{flex:1 1 160px}
.set-r small{font:500 10.5px var(--f-mono);color:var(--muted);white-space:nowrap}
.dotc{display:none}
.set-a{display:inline-flex;flex-wrap:wrap;gap:4px;margin-left:auto}
.set-add input{flex:1 1 220px}
.set-ck{display:flex;flex-direction:column;gap:6px;margin:10px 0 0}
.set-ck label{display:flex;align-items:flex-start;gap:8px;font-size:14px}
.set-ck input{margin-top:3px}
.imp{margin:12px 0}
.danger-z{margin-top:16px;padding-top:12px;border-top:1px dashed var(--line)}
.lt-ban{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin:0 0 12px;padding:9px 12px;border:1px solid color-mix(in srgb,var(--c4) 40%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--c4) 8%,var(--surface));font-size:14px}
@media (max-width:900px){
  .set-wrap{grid-template-columns:minmax(0,1fr)}
  .set-nav{position:static;flex-direction:row;overflow-x:auto;scrollbar-width:none}
  .set-nav button{white-space:nowrap}
}
@media (max-width:600px){
  .mbar{top:52px;left:8px;right:8px;max-width:none;justify-content:flex-start}
  .mbar label,.mbar .btn{height:34px}
  .mt-g{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dc-wrap{padding:12px 12px 64px}
  .dc-top{margin:-12px -12px 12px;padding:8px 12px}
  .ap-cf{flex-basis:100%}
}
@media (max-width:1500px){.brand span{display:none}}
@media (max-width:1420px) and (min-width:601px){header .prog{display:none}}
@media (max-width:600px){header .as{order:3;flex:1 1 100%}header .brand{min-width:0}.mbar label{padding-left:8px}}


/* ---------- Couleurs ---------- */
.cpk{display:inline-flex;flex-wrap:wrap;align-items:center;gap:5px;min-width:0}
.cpk input[type=color]{width:34px;height:30px;padding:2px;border:1px solid var(--line);border-radius:8px;background:var(--surface);cursor:pointer}
.cpk .hex{width:84px;padding:5px 7px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--fg);font:500 12.5px var(--f-mono)}
.cpk .eye,.cpk .nocol{display:inline-grid;place-items:center;height:30px;min-width:30px;padding:0 7px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--fg);font:600 12px var(--f-body);cursor:pointer}
.cpk .eye svg{width:16px;height:16px;fill:currentColor}
.cpk .nocol.on{background:var(--fg);color:var(--bg)}
.rcs{display:inline-flex;gap:3px}
.rcs button{width:18px;height:18px;padding:0;border-radius:5px;border:1px solid var(--line);background:var(--k);cursor:pointer}
.cpk button:focus-visible,.cpk input:focus-visible{outline:2px solid var(--fg);outline-offset:1px}
.cl-r{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 10px;margin:8px 0}
.cl-r>span{font:600 12.5px var(--f-body);color:var(--muted)}
.rng{display:flex;flex-direction:column;gap:2px;margin:8px 0}
.rng span{display:flex;justify-content:space-between;font:600 12.5px var(--f-body);color:var(--muted)}
.rng b{color:var(--fg);font:600 11.5px var(--f-mono)}
.rng input{width:100%;accent-color:var(--fg)}
/* ---------- Éditeur de CV ---------- */
.cv2{display:grid;grid-template-columns:minmax(330px,430px) minmax(0,1fr);gap:18px;align-items:start}
.cv-panel{min-width:0}
.cv-tabs{display:flex;margin:0 0 12px;width:100%}
.cv-tabs button{flex:1}
.only-m{display:none}
.cv-sec h4{margin:12px 0 6px;font:700 10.5px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.cv-sec .seg{flex-wrap:wrap;margin:4px 0}
.cv-sec.off{opacity:.6}
.cv-sec.dr-up{box-shadow:0 -3px 0 var(--c3)}
.cv-sec.dr-dn{box-shadow:0 3px 0 var(--c3)}
.cv-sec.dragging{opacity:.4}
.cv-sh{flex-wrap:wrap}
.grip{cursor:grab;color:var(--muted);font-size:16px;padding:0 2px;user-select:none}
.cv-st{flex:1 1 140px;min-width:0;padding:5px 8px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--fg);font:700 15px var(--f-body)}
.cv-st:hover,.cv-st:focus{border-color:var(--line);background:var(--bg);outline:none}
.cv-sa{display:inline-flex;flex-wrap:wrap;gap:4px;align-items:center}
.cv-sa select{padding:5px 6px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--fg);font:500 12.5px var(--f-body)}
.cv-note{display:flex;align-items:flex-start;gap:10px;margin:0 0 12px;padding:10px 12px;border:1px solid var(--c2);border-radius:10px;background:var(--raise)}
.cv-note p{margin:0;flex:1;font-size:14px}
.cv-add .row{margin:6px 0}
.cv-add input,.cv-add select{padding:6px 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--fg);font:400 14px var(--f-body);min-width:0}
.cv-add input{flex:1 1 180px}
.cv-stage{position:sticky;top:64px;min-width:0;max-height:calc(100dvh - 140px);overflow:auto;padding:4px 6px 16px 2px}
.cv-tip{margin:0 0 6px}
.cv-scale{position:relative;margin:0 auto;border-radius:4px;box-shadow:0 6px 30px rgba(0,0,0,.2);background:#fff}
.pgbrk{position:absolute;left:0;right:0;height:0;border-top:2px dashed rgba(220,38,38,.65);z-index:5;pointer-events:none;font:600 10px var(--f-mono);color:#DC2626;text-align:right;padding-right:4px}
.rtew{border:1px solid var(--line);border-radius:10px;background:var(--bg);margin:6px 0 4px}
.rtb{display:flex;flex-wrap:wrap;align-items:center;gap:2px;padding:4px;border-bottom:1px solid var(--line)}
.rtb button,.rtb select,.rxc{height:28px;min-width:28px;padding:0 7px;border:0;border-radius:6px;background:transparent;color:var(--fg);font:600 12.5px var(--f-body);cursor:pointer}
.rtb button:hover,.rxc:hover{background:var(--surface)}
.rtb select{border:1px solid var(--line);background:var(--surface)}
.rxc{display:inline-flex;align-items:center;gap:3px;text-decoration:underline;text-decoration-thickness:3px}
.rxc input{width:22px;height:20px;padding:0;border:0;background:transparent;cursor:pointer}
.rte{min-height:64px;padding:8px 10px;color:var(--fg);font:400 14.5px/1.5 var(--f-body);outline:none;overflow-wrap:anywhere}
.rte:empty::before{content:attr(data-ph);color:var(--muted);opacity:.7}
.rte ul{margin:2px 0;padding-left:20px}
.rtew:focus-within{border-color:var(--fg)}
.tpls{display:grid;grid-template-columns:repeat(auto-fill,minmax(124px,1fr));gap:10px}
.tpl{display:flex;flex-direction:column;align-items:center;gap:5px;padding:4px 4px 6px;border:2px solid transparent;border-radius:10px;background:transparent;color:var(--fg);cursor:pointer;font:inherit}
.tpl b{font:600 12.5px var(--f-body)}
.tpl.on{border-color:var(--fg)}
.tpl:hover .tpl-v{box-shadow:0 4px 16px rgba(0,0,0,.25)}
.tpl:focus-visible{outline:2px solid var(--fg);outline-offset:2px}
.tpl-v{display:block;width:118px;height:167px;border-radius:4px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.18);background:#fff}
.tpl-in{display:block;position:relative;width:118px;height:167px;overflow:hidden}
.cvp.thumb{position:absolute;top:0;left:0;pointer-events:none}
/* page de CV */
.cvp{position:relative;width:794px;min-height:1123px;transform-origin:0 0;color:var(--ink);font-family:var(--fB);font-size:var(--fs);line-height:var(--lh);overflow:hidden;text-align:left;-webkit-font-smoothing:antialiased}
.cvp *{box-sizing:border-box}
.cvp.lay-one{padding:var(--pad)}
.cvp:not(.lay-one){display:flex;flex-direction:column}
.cv-bgi{position:absolute;inset:0;background-size:cover;background-position:center;z-index:0}
.cvp>*:not(.cv-bgi){position:relative;z-index:1}
.cvp .cv-head{display:flex;align-items:center;gap:20px;margin:0 0 calc(var(--gap)*.9)}
.cvp .cv-head.hs-center{flex-direction:column;text-align:center;gap:12px}
.cv-head.hs-center .hd-t{text-align:center}
.cvp .cv-head{position:relative;z-index:1;background:none;border:0;padding:0;-webkit-backdrop-filter:none;backdrop-filter:none;flex-wrap:nowrap;transition:none}
.cvp .cv-head.hs-band{background:var(--headBg);color:var(--headFg);padding:calc(var(--pad)*.75) var(--pad);margin:calc(var(--pad)*-1) calc(var(--pad)*-1) var(--gap)}
.cvp:not(.lay-one) .cv-head.hs-band{margin:0}
.hd-t{min-width:0;flex:1}
.cvp .nm{margin:0;font-family:var(--fH);font-size:2.4em;line-height:1.06;font-weight:800;color:var(--ink);overflow-wrap:anywhere}
.cvp .ti{margin:.25em 0 0;font-size:1.18em;font-weight:600;color:var(--acc)}
.cvp .ct{margin:.55em 0 0;font-size:.92em;color:var(--mut)}
.hs-band .nm,.hs-band .ti,.hs-band .ct{color:var(--headFg)}
.hs-band .ti{opacity:.92}
.cvp .sep{font-style:normal;opacity:.55}
.cvp .ph{display:block;flex:none;object-fit:cover}
.ph-circle{border-radius:50%}.ph-rounded{border-radius:18%}.ph-square{border-radius:4px}
.cv-grid{flex:1;display:grid;grid-template-columns:var(--sideW) minmax(0,1fr)}
.cv-grid.rev{grid-template-columns:minmax(0,1fr) var(--sideW)}
.cv-side{background:var(--sideBg);color:var(--sideFg);padding:var(--pad) calc(var(--pad)*.55);min-width:0;font-size:.95em}
.cv-main{padding:var(--pad) var(--pad) var(--pad) calc(var(--pad)*.7);min-width:0}
.cv-grid.rev .cv-main{padding:var(--pad) calc(var(--pad)*.7) var(--pad) var(--pad)}
.phw{display:flex;justify-content:center;margin:0 0 var(--gap)}
.cv-side .cs+.cv-col .cs:first-child,.cv-col .cs+.cs,.cv-side .cs-ct+.cv-col>.cs:first-child{margin-top:var(--gap)}
.cvp .sh{margin:0 0 .65em;font-family:var(--fH);font-size:1em;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--acc);line-height:1.3}
.sec-line .sh{border-bottom:2px solid var(--acc);padding-bottom:.28em}
.sec-block .sh{background:var(--acc);color:#fff;padding:.32em .75em}
.sec-pill .sh span{display:inline-block;background:var(--acc2);color:var(--acc);padding:.25em .95em;border-radius:99px}
.sec-bar .sh{border-left:4px solid var(--acc);padding-left:.6em}
.sec-plain .sh{letter-spacing:.18em}
.sec-center .sh{display:flex;align-items:center;gap:.8em}
.sec-center .sh::before,.sec-center .sh::after{content:"";flex:1;height:1px;background:var(--acc);opacity:.6}
.cv-side .el,.cv-side .ed,.cv-side .eo{color:inherit;opacity:.8}
.cvp .sb p{margin:0 0 .4em}
.cvp .rich ul,.cvp ul{margin:.25em 0 0;padding-left:1.15em}
.cvp li{margin:.12em 0}
.cvp li::marker{color:var(--acc)}
.cvp .ce{margin:0 0 .85em}
.cvp .ceh{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.cvp .cet{font-weight:700;font-size:1.05em;min-width:0}
.cvp .eo{font-weight:600;color:var(--mut)}
.cvp .ed{flex:none;font-size:.9em;color:var(--mut);white-space:nowrap}
.cvp .el{font-size:.9em;color:var(--mut);font-style:italic}
.cvp .tgs{display:flex;flex-wrap:wrap;gap:.35em}
.cvp .tg{padding:.12em .65em;border-radius:99px;background:var(--acc2);color:var(--acc);font-size:.9em;font-weight:600}
.cvp .sg{margin:0 0 .6em}
.cvp .sgt{display:block;font-weight:700;margin:0 0 .25em}
.cvp .sbar{display:grid;grid-template-columns:minmax(0,1fr) 42%;gap:8px;align-items:center;margin:.2em 0}
.cvp .sbar i{display:block;height:6px;border-radius:3px;background:var(--acc2);overflow:hidden}
.cvp .sbar b{display:block;height:100%;background:var(--acc);border-radius:3px}
.cvp .ctl2{list-style:none;padding:0;margin:0}
.cvp .ctl2 li{margin:.25em 0;overflow-wrap:anywhere}
.cvp .inl{margin:0}
.cvp .empty-s{margin:0;opacity:.45;font-style:italic}
.cvp.editing [data-k]{cursor:pointer}
.cvp.editing [data-k]:not(.cvp):hover{outline:1.5px dashed rgba(29,78,216,.6);outline-offset:2px}
.cvp .ksel{outline:2px solid #1D4ED8!important;outline-offset:2px}
.cvp.editing .cs{cursor:grab}
.cvp .cs.dr-up{box-shadow:0 -3px 0 #1D4ED8}
.cvp .cs.dr-dn{box-shadow:0 3px 0 #1D4ED8}
.cvp .cs.dragging{opacity:.4}
.cvp .cv-col.dr-in{outline:2px dashed #1D4ED8;outline-offset:4px;min-height:40px}
.cvp .cv-col{min-height:20px}
@media (max-width:1000px){
  .cv2{grid-template-columns:minmax(0,1fr)}
  .only-m{display:inline-block}
  .cv2.t-prev .cv-panel #cv-pane{display:none}
  .cv2:not(.t-prev) .cv-stage{display:none}
  .cv-stage{position:static;max-height:none;overflow:visible}
}
/* ---------- Dessin ---------- */
.drw{position:relative;border:1px solid var(--line);border-radius:12px;background:#FFFFFF;overflow:hidden}
.drw svg{display:block;width:100%;height:auto;max-height:520px}
.drw .dr-open{position:absolute;right:10px;top:10px;opacity:0;transition:opacity .15s}
.drw:hover .dr-open,.drw:focus-within .dr-open{opacity:1}
@media (hover:none){.drw .dr-open{opacity:1}}
.drw-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:100%;min-height:140px;border:1.5px dashed var(--line);border-radius:12px;background:var(--raise);color:var(--muted);font:600 14px var(--f-body);cursor:pointer}
.drw-empty small{font-weight:400}
.dre{position:fixed;inset:0;z-index:60;display:flex;flex-direction:column;background:var(--bg)}
.dre[hidden]{display:none}
.dre-top{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid var(--line);background:var(--surface);overflow-x:auto;scrollbar-width:thin}
.dre-g{display:flex;gap:2px;padding:3px;border-radius:10px;background:var(--raise);border:1px solid var(--line);flex:none}
.dre-g button{display:inline-grid;place-items:center;min-width:34px;height:34px;padding:0 8px;border:0;border-radius:8px;background:transparent;color:var(--fg);font:600 12.5px var(--f-body);cursor:pointer;white-space:nowrap}
.dre-g button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.dre-g button[aria-pressed="true"]{background:var(--fg);color:var(--bg)}
.dre-g button:hover:not([aria-pressed="true"]){background:var(--surface)}
.dre-g button:disabled{opacity:.35}
.dre-g button:focus-visible{outline:2px solid var(--fg);outline-offset:1px}
.dre-sp{flex:1 1 0;min-width:6px}
.dre-z{font:600 12px var(--f-mono);min-width:52px;text-align:center;white-space:nowrap}
.dre-body{position:relative;flex:1;min-height:0}
#dr-svg{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;background:#FFFFFF;background-image:radial-gradient(circle,#D9DEE6 1px,transparent 1.4px);background-size:22px 22px;user-select:none;-webkit-user-select:none}
#dr-svg.t-hand,#dr-svg.panning{cursor:grab}
#dr-svg.t-draw{cursor:crosshair}
.dre-props{position:absolute;left:10px;top:10px;z-index:3;width:252px;max-height:calc(100% - 20px);overflow:auto;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow)}
.dre-props[hidden]{display:none}
.dre-props h5{margin:8px 0 4px;font:700 10px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.dre-props h5:first-child{margin-top:0}
.qc{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 4px}
.qc button{width:24px;height:24px;padding:0;border-radius:6px;border:1px solid var(--line);background:var(--k);cursor:pointer}
.qc button.none{background:linear-gradient(135deg,transparent 45%,#e03131 45%,#e03131 55%,transparent 55%),#fff}
.qc button[aria-pressed="true"]{box-shadow:0 0 0 2px var(--fg)}
.dre-props .seg{display:flex;flex-wrap:wrap;margin:2px 0}
.dre-props .seg button{padding:4px 8px;font-size:12px}
.dre-props .cpk .rcs{display:none}
.dre-txt{position:absolute;z-index:4;min-width:60px;padding:2px 4px;border:1.5px dashed #1971c2;border-radius:4px;background:rgba(255,255,255,.92);color:#1e1e1e;font:20px 'Caveat',cursive;line-height:1.25;resize:none;overflow:hidden;outline:none;white-space:pre}
.dre-menu{position:absolute;z-index:5;top:54px;right:10px;width:240px;padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow)}
.dre-menu[hidden]{display:none}
.dre-menu button{display:block;width:100%;padding:8px 10px;border:0;border-radius:8px;background:transparent;color:var(--fg);font:600 13.5px var(--f-body);text-align:left;cursor:pointer}
.dre-menu button small{display:block;font-weight:400;color:var(--muted)}
.dre-menu button:hover{background:var(--raise)}
.dre-hint{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);z-index:2;padding:6px 12px;border-radius:99px;background:var(--surface);border:1px solid var(--line);font:500 12px var(--f-body);color:var(--muted);pointer-events:none;white-space:nowrap;max-width:calc(100% - 20px);overflow:hidden;text-overflow:ellipsis}
.dr-sel{fill:none;stroke:#1971c2;stroke-width:1.2;stroke-dasharray:5 4;pointer-events:none}
.dr-h{fill:#fff;stroke:#1971c2;stroke-width:1.5}
.dr-mq{fill:rgba(25,113,194,.08);stroke:#1971c2;stroke-width:1;stroke-dasharray:4 3}
@media (max-width:700px){.dre-props{left:6px;right:6px;top:auto;bottom:6px;width:auto;max-height:42%}.dre-hint{display:none}}
/* ---------- Espaces : styles de texte ---------- */
#sp-tb .tb-c select{height:26px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--fg);font:600 12px var(--f-body)}
#sp-tb .tb-c .cpk input[type=color]{width:28px;height:26px}
#sp-tb .tb-c .cpk .hex{width:74px;height:26px;padding:3px 5px}
#sp-tb .tb-c .cpk .eye,#sp-tb .tb-c .cpk .nocol{height:26px;min-width:26px}
#sp-tb .tb-c .cpk .rcs{display:none}
/* ---------- Carte : déplacement ---------- */
.node.dragging{cursor:grabbing}
.node.moved rect.body{stroke-dasharray:none}
.dp-min{display:block;width:100%;margin:0 0 6px;padding:4px 6px;border:0;border-radius:7px;background:var(--raise);color:var(--fg);font:700 11px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;text-align:left;cursor:pointer}
.dre-props.min>:not(.dp-min){display:none}
.dre-props.min .dp-min{margin:0}

/* ---------- Espaces+ ---------- */
#sp-sl{max-height:min(440px,62vh);padding:6px 6px 8px}
#sp-sl.sub{max-height:min(400px,60vh)}
.sl-top{position:sticky;top:-6px;z-index:1;display:flex;align-items:center;gap:6px;margin:-6px -6px 6px;padding:6px;background:var(--surface);border-bottom:1px solid var(--line)}
.sl-top b{font:700 12px var(--f-body);white-space:nowrap}
.sl-top .sl-q{margin:0;flex:1;min-width:0}
.sl-back{flex:none;width:30px;height:30px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--fg);cursor:pointer}
.sl-cat{margin:10px 8px 4px;font:700 10.5px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.sl-cat:first-child{margin-top:4px}
.sl-cat small{font:500 10px var(--f-body);letter-spacing:0;text-transform:none}
.sl-i{flex-direction:row;align-items:center;gap:10px}
.sl-ic{flex:none;display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line);border-radius:8px;background:var(--bg);font:700 12.5px var(--f-body);color:var(--fg);overflow:hidden;white-space:nowrap}
.sl-tx{display:flex;flex-direction:column;min-width:0}
.sl-tx small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sl-i.off{opacity:.5}
.sl-err{color:var(--c1)}
.sl-emo{display:grid;grid-template-columns:repeat(8,1fr);gap:2px}
.sl-e{aspect-ratio:1;border:0;border-radius:8px;background:transparent;font-size:20px;cursor:pointer}
.sl-e.on,.sl-e:hover{background:var(--raise)}
/* titres déroulants */
.th .tg-h .rt{font-family:var(--f-display)}
.th-th1 .tg-h .rt{font-weight:800;font-size:28px;line-height:1.25}
.th-th2 .tg-h .rt{font-weight:700;font-size:22px;line-height:1.3}
.th-th3 .tg-h .rt{font-weight:700;font-size:18px;line-height:1.35}
.th .tg-c{margin-top:.3em}
/* mentions, dates, équations en ligne */
.rt a.mt{display:inline;padding:0 3px;border-radius:5px;background:color-mix(in srgb,var(--sc,var(--c3)) 12%,transparent);color:var(--fg);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--fg) 30%,transparent);text-underline-offset:2px;font-weight:600;cursor:pointer}
.rt a.mt[data-pg]::before{content:"↗ ";opacity:.55;font-weight:400}
.rt a.mt.gone{opacity:.55;text-decoration:line-through}
.rt .dt{display:inline;padding:0 5px;border-radius:5px;background:var(--raise);color:var(--fg);font-weight:600;white-space:nowrap}
.rt .dt::before{content:"@";opacity:.5;margin-right:1px}
.rt .dt.today{background:color-mix(in srgb,var(--c3) 18%,transparent)}
.rt .dt.late{background:color-mix(in srgb,var(--c1) 16%,transparent);color:var(--c1)}
.rt .ieq{display:inline-block;vertical-align:middle;padding:0 2px;font-family:var(--f-mono);font-size:.92em}
.rt .ieq svg{vertical-align:middle;max-width:100%}
/* tableau simple */
.gt-w{overflow-x:auto;max-width:100%}
.gt{border-collapse:collapse;min-width:100%;font-size:15px}
.gt td{min-width:110px;border:1px solid var(--line);padding:0;vertical-align:top}
.gt td.gh{background:var(--raise)}
.gt td.gh .rt{font-weight:700}
.gt .rt.gc{padding:7px 9px;min-height:1.5em;outline:none;border:0;border-radius:0;background:transparent;box-shadow:none;margin:0}
.gt .rt.gc:focus{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--sc,var(--c3)) 60%,transparent)}
.gt-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;opacity:0;transition:opacity .15s}
.bl-grid:hover .gt-bar,.bl-grid:focus-within .gt-bar{opacity:1}
@media (hover:none){.gt-bar{opacity:1}}
/* médias, fichiers, signets */
.mx-pick{display:flex;flex-direction:column;gap:2px}
.mx-pick small{font-weight:400;color:var(--muted)}
.mx video{display:block;width:100%;max-height:480px;border-radius:10px;background:#000}
.mx audio{display:block;width:100%}
.mx-n{font-weight:600;margin-bottom:6px}.mx-n small{color:var(--muted);font-weight:400}
.fx{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);flex-wrap:wrap}
.fx-ic{flex:none;display:grid;place-items:center;width:44px;height:52px;border-radius:7px;background:var(--raise);border:1px solid var(--line);font:800 11px var(--f-mono);color:var(--c1)}
.fx-t{flex:1 1 180px;min-width:0;display:flex;flex-direction:column}
.fx-t b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fx-t small{color:var(--muted)}
.fx-a{display:flex;gap:6px;flex-wrap:wrap}
.fx-pv{display:flex;flex-direction:column;gap:10px;margin-top:10px;max-height:640px;overflow:auto;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--raise)}
.fx-pv canvas{display:block;width:100%;height:auto;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.12)}
.fx-msg{margin:6px 0 0;font-size:13px;color:var(--c1)}
.bm-in{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.bm-in input{flex:1 1 220px;min-width:0;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--fg);font:400 14px var(--f-body)}
.bmc{display:flex;align-items:flex-start;gap:12px;padding:12px;border:1px solid var(--line);border-left:4px solid var(--pc);border-radius:12px;background:var(--surface);flex-wrap:wrap}
.bm-ic{flex:none;display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:var(--pc);color:#fff;font:800 15px var(--f-body)}
.bm-ic.sm-ic{width:34px;height:34px;font-size:13px}
.bm-t{flex:1 1 220px;min-width:0;display:flex;flex-direction:column;gap:2px}
.bm-ti{border:0;background:transparent;color:var(--fg);font:700 15px var(--f-body);padding:0;width:100%}
.bm-ti:focus{outline:none;box-shadow:0 1px 0 var(--line)}
.bm-t a{color:var(--muted);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bm-t small{color:var(--muted);font-size:12px}
.bm-t .bm-nb{font-style:italic}
.bm-a{display:flex;gap:6px;flex-wrap:wrap}
.pl.lk .pl-ar{opacity:.6}.pl small{color:var(--muted);font-weight:400;font-size:12px}
.pl-pick{border-style:dashed;color:var(--muted)}
/* équations, Mermaid */
.eqb,.mmb{position:relative}
.eq-src{display:block;width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--fg);font:400 14px/1.5 var(--f-mono);resize:vertical}
.eq-tools{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 8px}
.eq-tools select{padding:5px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--fg)}
.eq-out{display:block;width:100%;min-height:44px;padding:12px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--fg);text-align:center;cursor:pointer;overflow-x:auto}
.eq-out:hover{border-color:var(--line);background:var(--raise)}
.eq-out svg{max-width:100%;height:auto}
.eq-out.err{color:var(--c1)}
.eq-out code{font-family:var(--f-mono)}
.mm-out{overflow-x:auto;padding:8px;border-radius:10px;background:var(--surface);border:1px solid var(--line);text-align:center;min-height:60px}
.mm-out svg{max-width:100%;height:auto}
.mm-err{color:var(--c1);font:400 13px var(--f-mono);text-align:left}
.mm-raw{text-align:left;font:400 13px var(--f-mono);white-space:pre-wrap}
.mm-edit{position:absolute;top:8px;right:8px;opacity:0;transition:opacity .15s}
.mmb:hover .mm-edit,.mmb:focus-within .mm-edit{opacity:1}
@media (hover:none){.mm-edit{opacity:1}}
/* bouton, fil d'Ariane, synchronisé, colonnes */
.btnb{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.xbtn{font-weight:700}
.crumb-b{display:flex;flex-wrap:wrap;align-items:center;gap:4px;font-size:14px;color:var(--muted)}
.crumb-b button{border:0;background:transparent;color:var(--fg);padding:2px 6px;border-radius:6px;cursor:pointer;font:500 14px var(--f-body)}
.crumb-b button:hover{background:var(--raise)}
.syb{position:relative;padding:8px 10px 10px;border:1.5px solid color-mix(in srgb,var(--c5) 70%,transparent);border-radius:10px}
.sy-tag{position:absolute;top:-10px;left:10px;padding:0 6px;background:var(--bg);color:var(--c5);font:700 11px var(--f-mono)}
.syb .rt{min-height:1.5em}
.cols{display:grid;gap:18px;align-items:start}
.col{min-width:0;display:flex;flex-direction:column;gap:2px;padding:2px 0}
.col-add{align-self:flex-start;margin-top:2px;padding:3px 8px;border:1px dashed var(--line);border-radius:7px;background:transparent;color:var(--muted);font:600 12px var(--f-body);cursor:pointer;opacity:0;transition:opacity .15s}
.col:hover .col-add,.col:focus-within .col-add{opacity:1}
@media (hover:none){.col-add{opacity:1}}
@media (max-width:640px){.cols{grid-template-columns:minmax(0,1fr)!important}}
.blw.dr-l{box-shadow:inset 4px 0 0 var(--c3)}
.blw.dr-r{box-shadow:inset -4px 0 0 var(--c3)}
/* IA dans la page */
.aiw{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--c4) 9%,var(--surface));border:1px solid color-mix(in srgb,var(--c4) 35%,var(--line))}
.aiw-t{flex:1;min-width:0;white-space:pre-wrap;font-size:15px;line-height:1.55}
.ai-dot{flex:none;color:var(--c4);font-weight:800}
.aiw.run .ai-dot,.asm.busy .ai-dot{animation:aipulse 1.1s ease-in-out infinite}
@keyframes aipulse{50%{opacity:.25}}
.ai-b{color:var(--c4)}
#sp-tb .tb-aib{color:var(--c4);font-weight:800}
.tb-ai{max-width:min(560px,calc(100vw - 30px))}
.tb-ai button{background:var(--surface)!important;font-weight:600!important}
/* bases : synchro, chronologie, graphique */
.db-sync{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 8px;padding:6px 8px;border-radius:9px;background:var(--raise)}
.sy-src{font:600 12.5px var(--f-body)}
.db-sync input{flex:1 1 160px;min-width:0;padding:5px 8px;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--fg);font:400 13px var(--f-body)}
.sy-msg{flex:1 1 100%;color:var(--muted)}
.tl{position:relative;overflow-x:auto;padding:28px 0 6px;min-height:80px}
.tl-sc{position:absolute;inset:0 0 auto 0;height:100%;min-width:600px;pointer-events:none}
.tl-m{position:absolute;top:0;height:100%;padding-left:4px;border-left:1px dashed var(--line);font:600 11px var(--f-mono);color:var(--muted)}
.tl-now{position:absolute;top:18px;bottom:0;border-left:2px solid var(--c1)}
.tl-r{position:relative;height:34px;min-width:600px}
.tl-b{position:absolute;top:4px;height:26px;min-width:26px;padding:0 8px;border:0;border-radius:7px;background:color-mix(in srgb,var(--bc) 30%,var(--surface));border-left:4px solid var(--bc);color:var(--fg);font:600 12.5px var(--f-body);text-align:left;cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.tl-b span{pointer-events:none}
.tl-no{margin-top:8px;font-size:13px;color:var(--muted)}
.ch-cap{margin:0 0 6px;font:600 12.5px var(--f-body);color:var(--muted)}
.ch-w{overflow-x:auto}
.ch-w svg{display:block;width:100%;height:auto}
.ch-g{stroke:var(--line);stroke-width:1}
.ch-l{fill:var(--muted);font:500 11px var(--f-body)}
.ch-v{fill:var(--fg);font:700 11px var(--f-body)}
.ch-tot{fill:var(--fg);font:800 30px var(--f-display)}
.ch-dw{display:flex;flex-wrap:wrap;align-items:center;gap:16px}
.ch-d{width:220px;max-width:100%;height:auto}
.ch-leg{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px;font-size:14px}
.ch-leg i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.ch-leg small{color:var(--muted)}
/* ---------- Assistant ---------- */
.hd-ai{flex:none;display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 14px;border:1px solid color-mix(in srgb,var(--c4) 50%,var(--line));border-radius:99px;background:color-mix(in srgb,var(--c4) 10%,var(--surface));color:var(--fg);font:700 13px var(--f-body);cursor:pointer;white-space:nowrap}
.hd-ai[hidden]{display:none}
.hd-ai span:first-child{color:var(--c4)}
.hd-ai[aria-expanded="true"]{background:var(--c4);color:#fff}.hd-ai[aria-expanded="true"] span:first-child{color:#fff}
@media (max-width:900px){.hd-ai{order:1;height:34px;padding:0 11px}}
@media (max-width:520px){.hd-ai-l{display:none}}
.asp{position:fixed;right:14px;bottom:14px;top:auto;z-index:55;width:min(430px,calc(100vw - 28px));height:min(780px,calc(100dvh - 28px));display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 18px 60px rgba(0,0,0,.28);opacity:0;transform:translateX(30px) scale(.97);transform-origin:100% 100%;pointer-events:none;transition:transform .28s cubic-bezier(.2,.8,.2,1),opacity .2s ease;will-change:transform,opacity}
.asp.show{opacity:1;transform:none;pointer-events:auto}
.asp-pin{border:0;background:none;cursor:pointer;font-size:15px;padding:4px 6px;border-radius:8px;opacity:.75}.asp-pin:hover{opacity:1;background:var(--raise)}
@media (min-width:1100px){body.as-pin .asp{top:0;right:0;bottom:0;height:auto;width:430px;border-radius:0;border-width:0 0 0 1px;transform:translateX(30px)}body.as-pin .asp.show{transform:none}body.as-pin #app{margin-right:430px;transition:margin-right .28s cubic-bezier(.2,.8,.2,1)}}
@media (max-width:700px){.asp{left:0;right:0;bottom:0;width:auto;height:min(88dvh,780px);border-radius:18px 18px 0 0;transform:translateY(40px);transform-origin:50% 100%}}
@media (prefers-reduced-motion:reduce){.asp{transition:none}}
.asp[hidden]{display:none}
.asp-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;border-bottom:1px solid var(--line)}
.asp-h b{font:800 15px var(--f-display);margin-right:auto}
.asp-h .seg{order:3;flex:1 1 100%}
.asp-b{flex:1;min-height:0;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:10px}
.asp-sug{display:flex;flex-direction:column;gap:6px}
.asp-sug .sm{text-align:left;white-space:normal;height:auto;padding:7px 10px;line-height:1.35}
.asm{max-width:92%;padding:9px 11px;border-radius:12px;font-size:14.5px;line-height:1.5}
.asm.u{align-self:flex-end;background:var(--fg);color:var(--bg);border-bottom-right-radius:4px}
.asm.a{align-self:flex-start;background:var(--raise);border-bottom-left-radius:4px}
.asm.err{background:color-mix(in srgb,var(--c1) 12%,var(--surface));color:var(--fg)}
.asm-l{margin:6px 0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:4px;font-size:13.5px}
.asm-l li.e{color:var(--c1)}
.asm-l .sm{height:24px;padding:0 8px;font-size:12px;margin-left:4px}
.asp-in{display:flex;gap:8px;align-items:flex-end;padding:10px 12px 4px;border-top:1px solid var(--line)}
.asp-in textarea{flex:1;min-width:0;resize:none;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);font:400 14.5px/1.4 var(--f-body)}
.asp-ft{margin:0;padding:2px 12px 10px;font-size:11.5px;color:var(--muted)}
.asp-ft .lnk{border:0;background:none;color:var(--muted);text-decoration:underline;cursor:pointer;font:inherit;padding:0}
.asp-ad{width:100%;min-height:200px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);font:400 14px/1.5 var(--f-body);resize:vertical}
.asp-st{margin:0;color:var(--c4);font-weight:600}

/* Paramètres : intégrations */
.ig-r{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 12px;margin:8px 0;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.ig-ic{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--raise);font:800 15px var(--f-body);color:var(--c4)}
.ig-t{flex:1 1 220px;min-width:0;display:flex;flex-direction:column;gap:2px}
.ig-t small{color:var(--muted)}
.ig-t .ig-err{color:var(--c1)}
.ig-st{font:700 11px var(--f-mono);letter-spacing:.05em;text-transform:uppercase;padding:3px 8px;border-radius:99px;background:var(--raise);color:var(--muted)}
.ig-st.ok{background:color-mix(in srgb,var(--c2) 18%,transparent);color:var(--c2)}
/* ---------- Dessin v2 ---------- */
.dre-imgb{display:inline-flex;align-items:center;gap:5px;height:34px;padding:0 8px;border-radius:8px;color:var(--fg);font:600 12.5px var(--f-body);cursor:pointer;white-space:nowrap}
.dre-imgb:hover{background:var(--surface)}
.dre-imgb svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.dre-shapes{width:min(400px,calc(100% - 20px));max-height:calc(100% - 70px);overflow:auto;left:auto}
.dre-shapes b{display:block;margin:6px 6px 4px;font:700 10.5px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.dsh{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:4px}
.dsh button{display:flex!important;flex-direction:column;align-items:center;gap:3px;padding:8px 4px!important;text-align:center!important}
.dsh button svg{width:52px;height:36px;fill:none;stroke:currentColor;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.dsh.ico button svg{width:28px;height:28px;stroke-width:1.6}
.dsh button small{font-size:11px!important;line-height:1.2}
.dsh button[aria-pressed="true"]{background:var(--raise)!important;outline:2px solid var(--fg)}
.dre-props .seg.wrap{gap:2px}
#dr-svg.grid{background-image:radial-gradient(circle,#AAB2BF 1.2px,transparent 1.5px)}
#dr-svg.drop{outline:3px dashed #1971c2;outline-offset:-6px}
.dr-sel.lk{stroke:#868e96}
.dr-lk{font-size:13px}
.dr-h.mid{fill:#1971c2}
/* animations des dessins */
.an-flow .fl,.an-flow [stroke-width]:not(.ah):not(text){stroke-dasharray:10 7;animation:dflow calc(var(--ad,1)*.9s) linear infinite}
@keyframes dflow{to{stroke-dashoffset:-17}}
.an-pulse{transform-box:fill-box;transform-origin:center;animation:dpulse calc(var(--ad,1)*1.4s) ease-in-out infinite}
@keyframes dpulse{50%{transform:scale(1.07)}}
.an-glow{animation:dglow calc(var(--ad,1)*1.6s) ease-in-out infinite}
@keyframes dglow{0%,100%{filter:drop-shadow(0 0 0 transparent)}50%{filter:drop-shadow(0 0 7px var(--gc)) drop-shadow(0 0 2px var(--gc))}}
.an-blink{animation:dblink calc(var(--ad,1)*1.1s) steps(2,start) infinite}
@keyframes dblink{to{visibility:hidden}}
.an-color [stroke-width]:not(text){animation:dcols calc(var(--ad,1)*2s) ease-in-out infinite}
.an-color [fill]:not([fill=none]){animation:dcolf calc(var(--ad,1)*2s) ease-in-out infinite}
@keyframes dcols{50%{stroke:var(--ac)}}
@keyframes dcolf{50%{fill:var(--ac)}}
.an-hue{animation:dhue calc(var(--ad,1)*4s) linear infinite}
@keyframes dhue{to{filter:hue-rotate(360deg)}}
.an-float{animation:dfloat calc(var(--ad,1)*2.4s) ease-in-out infinite}
@keyframes dfloat{50%{transform:translateY(-8px)}}
.an-shake{transform-box:fill-box;transform-origin:center;animation:dshake calc(var(--ad,1)*.6s) ease-in-out infinite}
@keyframes dshake{25%{transform:rotate(-3deg)}75%{transform:rotate(3deg)}}
.an-draw [stroke-width]:not(.ah):not(text){stroke-dasharray:100;animation:ddraw calc(var(--ad,1)*2.6s) ease-in-out infinite}
@keyframes ddraw{0%{stroke-dashoffset:100}55%,100%{stroke-dashoffset:0}}

/* ---------- Ergonomie façon Notion ---------- */
/* marque */
.logo.lg-img,.logo.lg-emo{background:transparent;overflow:hidden}
.logo.lg-img img{width:100%;height:100%;object-fit:contain;border-radius:8px}
.logo.lg-emo em{font-style:normal;font-size:24px;line-height:1}
.set-sub{margin:18px 0 8px;font:700 11px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.br-lg{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.br-prev{display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border:1px solid var(--line);border-radius:12px;background:var(--surface);font:800 16px var(--f-display)}
.br-prev .logo{width:34px;height:34px}
/* barre latérale */
#v-spaces{--sbw:280px}
#sp-side{flex:0 0 var(--sbw);padding:8px 8px 12px;display:flex;flex-direction:column;gap:2px}
#v-spaces.sbc #sp-side,#v-spaces.sbc #sp-rs{display:none}
.sb-open{display:none}
#v-spaces.sbc .sb-open{display:grid;position:absolute;top:10px;left:10px;z-index:7}
#sp-rs{position:absolute;top:0;bottom:0;left:calc(var(--sbw) - 3px);width:6px;z-index:6;cursor:col-resize}
#sp-rs:hover,#sp-rs.on{background:color-mix(in srgb,var(--c3) 45%,transparent)}
.sb-top{display:flex;align-items:center;gap:2px;margin:0 0 4px}
.sb-ws{flex:1;min-width:0;display:flex;align-items:center;gap:8px;padding:5px 6px;border:0;border-radius:8px;background:transparent;color:var(--fg);font:700 14.5px var(--f-body);cursor:pointer;text-align:left}
.sb-ws b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sb-ws:hover,.sb-i:hover,.sb-n:hover,.sb-search:hover,.sb-h:hover{background:var(--surface)}
.sb-lg{flex:none;display:grid;place-items:center;width:24px;height:24px;border-radius:7px;background:var(--fg);overflow:hidden;font-style:normal}
.sb-lg svg{width:16px;height:16px;fill:none;stroke:var(--bg);stroke-width:2;stroke-linecap:round}
.sb-lg svg .hd{fill:var(--bg);stroke:none}
.sb-lg.lg-img,.sb-lg.lg-emo{background:transparent}
.sb-lg img{width:100%;height:100%;object-fit:contain}
.sb-lg.lg-emo{font-size:17px}
.sb-i{flex:none;display:grid;place-items:center;width:30px;height:30px;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer}
.sb-i svg,.sb-n svg,.sb-search svg,.hm-qa svg,.ck-in svg,.sp-pl svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sb-open{width:34px;height:34px;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow)}
.sb-search{display:flex;align-items:center;gap:8px;width:100%;margin:2px 0 6px;padding:7px 9px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--muted);font:500 13.5px var(--f-body);cursor:pointer;text-align:left}
.sb-search span{flex:1}
kbd{padding:1px 5px;border:1px solid var(--line);border-radius:5px;background:var(--raise);font:600 10.5px var(--f-mono);color:var(--muted)}
.sb-nav,.sb-foot{display:flex;flex-direction:column;gap:1px}
.sb-foot{margin-top:auto;padding-top:8px;border-top:1px solid var(--line)}
.sb-n{display:flex;align-items:center;gap:9px;width:100%;padding:6px 8px;border:0;border-radius:8px;background:transparent;color:var(--fg);font:600 14px var(--f-body);cursor:pointer;text-align:left}
.sb-n span{flex:1}
.sb-n svg{color:var(--muted)}
.sb-n small{min-width:20px;padding:0 6px;border-radius:99px;background:var(--c1);color:#fff;font:700 11px var(--f-mono);text-align:center}
.sb-n.on{background:var(--surface);box-shadow:inset 3px 0 0 var(--fg)}
.sb-sec{margin-top:10px}
.sb-hd{display:flex;align-items:center;gap:2px}
.sb-h{flex:1;display:flex;align-items:center;gap:6px;padding:4px 8px;border:0;border-radius:7px;background:transparent;color:var(--muted);font:700 11px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;text-align:left;cursor:pointer}
.sb-h i{font-style:normal;opacity:0}
.sb-hd:hover .sb-h i{opacity:1}
.sb-hadd{opacity:0}
.sb-hd:hover .sb-hadd,.sb-hadd:focus-visible{opacity:1}
@media (hover:none){.sb-hadd{opacity:.7}.sb-h i{opacity:.7}}
.sb-dot{display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--muted);opacity:.6}
.sb-empty{margin:2px 0 4px 34px;font-size:12.5px}
.sp-pl{display:grid;place-items:center}
@media (max-width:800px){.sb-col,#sp-rs{display:none!important}#v-spaces.sbc #sp-side{display:flex}#v-spaces .sb-open{display:none!important}}
/* accueil */
.hm{max-width:900px}
.hm-date{margin:8px 0 0;font:600 12px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.hm-hi{margin:2px 0 14px;font:800 34px/1.15 var(--f-display)}
.hm-qa{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 6px}
.hm-qa .sm{display:inline-flex;align-items:center;gap:6px}
.hm-rec{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(150px,170px);gap:10px;overflow-x:auto;padding-bottom:6px}
.hm-card{position:relative;display:flex;flex-direction:column;gap:2px;min-height:118px;padding:0 12px 10px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--fg);text-align:left;cursor:pointer;overflow:hidden;font:inherit}
.hm-card:hover{box-shadow:var(--shadow)}
.hm-cv{display:block;height:38px;margin:0 -12px;background:color-mix(in srgb,var(--sc) 22%,var(--raise))}
.hm-ic{margin-top:-14px;font-size:24px;line-height:1}
.hm-card b{font:700 14px var(--f-body);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.hm-card small{color:var(--muted);font-size:11.5px}
.hm-up{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:10px}
.hm-g{display:flex;flex-direction:column;gap:2px;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.hm-g>b{margin:0 0 4px;font:700 11px var(--f-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.hm-g.late>b{color:var(--c1)}
.hm-i{display:flex;align-items:flex-start;gap:10px;width:100%;padding:6px;border:0;border-radius:8px;background:transparent;color:var(--fg);text-align:left;cursor:pointer;font:inherit}
.hm-i:hover{background:var(--raise)}
.hm-i time{flex:none;min-width:52px;font:700 12px var(--f-mono);color:var(--c3)}
.hm-g.late .hm-i time{color:var(--c1)}
.hm-i span{display:flex;flex-direction:column;min-width:0}
.hm-i b{font:600 14px var(--f-body);overflow-wrap:anywhere}
.hm-i small{color:var(--muted);font-size:12px}
.hm-td{display:flex;flex-direction:column;gap:2px}
.hm-t{display:flex;align-items:flex-start;gap:8px;padding:4px 6px;border-radius:8px}
.hm-t:hover{background:var(--surface)}
.hm-t input{flex:none;width:17px;height:17px;margin:3px 0 0;accent-color:var(--c2)}
.hm-t button{flex:1;min-width:0;display:flex;flex-direction:column;border:0;background:transparent;color:var(--fg);text-align:left;cursor:pointer;font:inherit;padding:0}
.hm-t small{color:var(--muted);font-size:12px}
/* blocs : gouttière, fond, sélection */
.bl{position:relative}
.bl-g{position:absolute;left:-50px;top:2px;display:flex;align-items:center;gap:0;opacity:0;transition:opacity .12s}
.blw:hover>.bl>.bl-g,.bl.bksel>.bl-g,.bl-g:focus-within{opacity:1}
.bl-g .bl-dh{opacity:1;margin:0;width:22px;height:26px;cursor:grab;color:var(--muted)}
.bl-add{width:24px;height:26px;border:0;border-radius:6px;background:transparent;color:var(--muted);font:500 19px/1 var(--f-body);cursor:pointer;padding:0}
.bl-add:hover,.bl-g .bl-dh:hover{background:var(--raise);color:var(--fg)}
.bl.hbg{background:color-mix(in srgb,var(--bbg) 16%,transparent);border-radius:6px}
.bl.bksel{background:color-mix(in srgb,var(--c3) 12%,transparent);border-radius:6px}
.blw.flash>.bl{animation:bflash 1.6s ease-out}
@keyframes bflash{0%,35%{background:color-mix(in srgb,var(--c5) 30%,transparent)}100%{background:transparent}}
@media (hover:hover) and (min-width:861px){.bl-m{display:none}}
@media (max-width:860px){.bl-g{display:none}}
.rt a.mt[data-bk]::before{content:"⤷ "}
/* menu du bloc */
.bkm{position:fixed;z-index:70;width:290px;max-height:min(560px,calc(100vh - 16px));overflow:auto;padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 14px 44px rgba(0,0,0,.28);color:var(--fg)}
.bkm[hidden]{display:none}
.bkm.sheet{left:8px!important;right:8px;bottom:8px;top:auto!important;width:auto;max-height:70vh;padding-bottom:calc(6px + env(safe-area-inset-bottom,0px))}
.bkm-q{display:block;width:100%;margin:0 0 4px;padding:7px 9px;border:1.5px solid color-mix(in srgb,var(--c3) 60%,var(--line));border-radius:8px;background:var(--bg);color:var(--fg);font:400 13.5px var(--f-body)}
.bkm-top{display:flex;align-items:center;gap:8px;margin:0 0 6px}
.bkm-top b{font:700 13px var(--f-body)}
.bkm-back{width:28px;height:28px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--fg);cursor:pointer}
.bkm-lab{margin:8px 8px 3px;font:600 11.5px var(--f-body);color:var(--muted)}
.bkm-l2{display:flex;flex-direction:column}
.bkm hr{margin:5px 2px;border:0;border-top:1px solid var(--line)}
.bkm-i{display:flex;align-items:center;gap:9px;width:100%;min-height:32px;padding:5px 8px;border:0;border-radius:7px;background:transparent;color:var(--fg);font:500 13.5px var(--f-body);text-align:left;cursor:pointer}
.bkm-i:hover,.bkm-i.on{background:var(--raise)}
.bkm-i.danger:hover,.bkm-i.danger.on{color:var(--c1)}
.bkm-i[data-arm="1"]{background:var(--c1);color:#fff}
.bkm-ic{flex:none;width:20px;text-align:center;font-size:13px;color:var(--muted)}
.bkm-l{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bkm-i kbd{flex:none;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:0;background:none;padding:0}
.bkm-i i{font-style:normal;color:var(--muted)}
.bkm-sw{flex:none;display:grid;place-items:center;width:22px;height:22px;border:1px solid var(--line);border-radius:6px;font:700 13px var(--f-body)}
.bkm-ok{color:var(--c3);font-weight:700}
.bkm-set{display:flex;flex-wrap:wrap;gap:6px;padding:4px 6px 6px}
.bkm-set label{display:flex;align-items:center;gap:6px;font:600 12px var(--f-body);color:var(--muted)}
.bkm-set select{padding:4px 6px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--fg)}
.bkm-msg{margin:6px 8px;font-size:12.5px;color:var(--c2)}
.bkm-none{margin:8px;color:var(--muted);font-size:13px}
.bkm-ft{margin:6px 0 0;padding:8px 8px 2px;border-top:1px solid var(--line);font-size:11.5px;line-height:1.5;color:var(--muted)}
/* sommaire flottant */
#sp-toc{position:absolute;z-index:5;top:96px;right:14px}
#sp-toc[hidden]{display:none}
.tc-mini{display:flex;flex-direction:column;align-items:flex-end;gap:9px;padding:10px 6px;cursor:pointer}
.tc-mini i{display:block;height:2px;border-radius:2px;background:var(--line)}
.tc-mini i.l1{width:18px}.tc-mini i.l2{width:13px}.tc-mini i.l3{width:9px}
.tc-mini i.on{background:var(--fg)}
.tc-full{display:none;position:absolute;top:0;right:0;width:250px;max-height:min(70vh,520px);overflow:auto;padding:8px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow)}
#sp-toc:hover .tc-full,#sp-toc:focus-within .tc-full,#sp-toc.open .tc-full{display:flex;flex-direction:column;gap:1px}
.tc-h{display:flex;align-items:center;justify-content:space-between;margin:0 0 4px 6px}
.tc-h b{font:700 11px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.tc-h .sp-ico{display:none}
#sp-toc.open .tc-h .sp-ico{display:block}
.tc-full button{display:block;width:100%;padding:5px 8px;border:0;border-radius:7px;background:transparent;color:var(--muted);font:500 13.5px var(--f-body);text-align:left;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tc-full button.l2{padding-left:20px}.tc-full button.l3{padding-left:32px;font-size:13px}
.tc-full button:hover{background:var(--raise);color:var(--fg)}
.tc-full button.on{color:var(--fg);font-weight:700;box-shadow:inset 2px 0 0 var(--fg)}
.toc-mb{display:none}
@media (max-width:1099px){#sp-toc .tc-mini{display:none}#sp-toc:not(.open){display:none}#sp-toc.open{top:70px;right:10px;left:10px}#sp-toc.open .tc-full{position:static;width:auto}.toc-mb{display:inline-flex}}
@media (min-width:1100px){.sp-wrap{padding-right:56px}}
/* barre de texte façon Notion */
#sp-tb:has(.tbn){padding:6px}
.tbn{display:flex;flex-direction:column;gap:4px;width:min(318px,calc(100vw - 30px))}
.tbn button{border:0;background:transparent;color:var(--fg);cursor:pointer;font:500 13.5px var(--f-body);border-radius:7px}
.tbn button:hover,.tbn button.on{background:var(--raise)}
.tbn-turn{display:flex;align-items:center;justify-content:space-between;padding:7px 9px!important;font-weight:600!important}
.tbn-turn i{font-style:normal;color:var(--muted)}
.tbn-row{display:flex;flex-wrap:wrap;gap:1px;padding:2px 0 4px;border-bottom:1px solid var(--line)}
.tbn-row{flex-wrap:nowrap}.tbn-row button{min-width:26px;height:30px;padding:0 4px;font-size:14px;flex:1 1 auto}
.tbn-row sub{font-size:9px}
.tbn-a{display:inline-grid;place-items:center;width:20px;height:20px;border:1px solid var(--line);border-radius:5px;font-weight:700}
.tbn-sec{margin:6px 6px 2px;font:600 11.5px var(--f-body);color:var(--muted)}
.tbn-list{display:flex;flex-direction:column;max-height:190px;overflow:auto}
.tbn-list button{padding:6px 9px;text-align:left}
.tbn-list.ai button::before{content:"✦ ";color:var(--c4)}
.tbn-ai{margin-top:4px;padding:8px 10px;border:1.5px solid color-mix(in srgb,var(--c4) 50%,var(--line));border-radius:9px;background:var(--bg);color:var(--fg);font:400 13.5px var(--f-body)}
.tbn-top{display:flex;align-items:center;gap:8px}
.tbn-top b{font:700 13px var(--f-body)}
.tbn-back{width:28px;height:28px;border:1px solid var(--line)!important}
.tbn-sw{display:flex;flex-wrap:wrap;gap:4px;padding:2px 4px}
.tbn-sw button{width:28px;height:28px;border:1px solid var(--line)!important;font-weight:800!important}
.tbn-w{padding:6px 9px;text-align:left;color:var(--c1)!important}
.tbn-f{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 6px;font:600 12.5px var(--f-body);color:var(--muted)}
.tbn-f select{padding:4px 6px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--fg)}
.tbn .cpk{padding:0 4px}
/* palette Ctrl+K */
.ck{position:fixed;inset:0;z-index:80;display:flex;justify-content:center;align-items:flex-start;padding:10vh 16px 16px;background:rgba(8,12,20,.45)}
.ck[hidden]{display:none}
.ck-b{width:min(640px,100%);max-height:72vh;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:0 24px 70px rgba(0,0,0,.4);overflow:hidden}
.ck-in{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);color:var(--muted)}
.ck-in input{flex:1;min-width:0;border:0;background:transparent;color:var(--fg);font:500 16px var(--f-body);outline:none}
.ck-l{flex:1;min-height:0;overflow:auto;padding:6px}
.ck-g{margin:8px 8px 4px;font:600 11.5px var(--f-body);color:var(--muted)}
.ck-i{display:flex;align-items:center;gap:10px;width:100%;padding:7px 9px;border:0;border-radius:9px;background:transparent;color:var(--fg);text-align:left;cursor:pointer;font:inherit}
.ck-i.on,.ck-i:hover{background:var(--raise)}
.ck-ic{flex:none;width:26px;text-align:center;font-size:16px}
.ck-t{display:flex;flex-direction:column;min-width:0}
.ck-t b{font:600 14px var(--f-body);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ck-t small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ck-none{margin:14px;color:var(--muted)}
.ck-ft{display:flex;flex-wrap:wrap;gap:14px;padding:8px 14px;border-top:1px solid var(--line);font:500 11.5px var(--f-body);color:var(--muted)}
@media (max-width:600px){.ck{padding-top:12px}.ck-b{max-height:85vh}}
.sp-wrap.dr-in{outline:2px dashed var(--c3);outline-offset:6px;border-radius:10px}

.sb-sp{display:inline-block;flex:none;width:26px;height:26px}
.br-lg label.sm{text-transform:none;letter-spacing:0;font:600 12.5px var(--f-body);color:var(--fg)}
#v-spaces:not(.sbc) #sp-open{display:none!important}

/* ---------- Finition professionnelle ---------- */
:root{
  --bg:#F7F7F5;--surface:#FFFFFF;--raise:#F2F1EE;--fg:#1F1F1E;--muted:#6B6A66;--line:#E4E2DD;--on-c:#FFFFFF;--xl:#2B2B2A;
  --c1:#C2363B;--c2:#2B7A57;--c3:#2F5FD0;--c4:#6A4BC2;--c5:#B0650D;--c6:#1D7A88;--c7:#B43A76;--c8:#1F1F1E;
  --halo:rgba(47,95,208,.05);--shadow:0 1px 2px rgba(15,15,15,.04),0 6px 18px rgba(15,15,15,.05);--hdr:rgba(255,255,255,.92);
  --f-body:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;--f-display:'Inter','Archivo',system-ui,sans-serif;
  --hc-com:#6a737d;--hc-kw:#cf222e;--hc-str:#0a3069;--hc-num:#0550ae;--hc-fn:#8250df;--hc-bi:#953800;--hc-attr:#0550ae;--hc-meta:#116329;--hc-add:#dafbe1;--hc-del:#ffebe9;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#191919;--surface:#202020;--raise:#262625;--fg:#EBEBE9;--muted:#9C9B97;--line:#30302E;--on-c:#191919;--xl:#D6D6D3;
  --c1:#FF7C7C;--c2:#5CC796;--c3:#82A8FF;--c4:#B89EFF;--c5:#F3B455;--c6:#62CAD9;--c7:#F48CC0;--c8:#EBEBE9;
  --halo:rgba(130,168,255,.07);--shadow:0 1px 0 rgba(255,255,255,.03) inset,0 10px 26px rgba(0,0,0,.42);--hdr:rgba(25,25,25,.92);
  --hc-com:#8b949e;--hc-kw:#ff7b72;--hc-str:#a5d6ff;--hc-num:#79c0ff;--hc-fn:#d2a8ff;--hc-bi:#ffa657;--hc-attr:#79c0ff;--hc-meta:#7ee787;--hc-add:#12361f;--hc-del:#3d1416;color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#191919;--surface:#202020;--raise:#262625;--fg:#EBEBE9;--muted:#9C9B97;--line:#30302E;--on-c:#191919;--xl:#D6D6D3;
  --c1:#FF7C7C;--c2:#5CC796;--c3:#82A8FF;--c4:#B89EFF;--c5:#F3B455;--c6:#62CAD9;--c7:#F48CC0;--c8:#EBEBE9;
  --halo:rgba(130,168,255,.07);--shadow:0 1px 0 rgba(255,255,255,.03) inset,0 10px 26px rgba(0,0,0,.42);--hdr:rgba(25,25,25,.92);
  --hc-com:#8b949e;--hc-kw:#ff7b72;--hc-str:#a5d6ff;--hc-num:#79c0ff;--hc-fn:#d2a8ff;--hc-bi:#ffa657;--hc-attr:#79c0ff;--hc-meta:#7ee787;--hc-add:#12361f;--hc-del:#3d1416;color-scheme:dark}
body{font-size:14.5px;letter-spacing:-.003em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
::selection{background:color-mix(in srgb,var(--c3) 24%,transparent)}
*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--muted) 35%,transparent) transparent}
/* en-tête */
header{padding:8px 16px;gap:8px 14px;background:var(--hdr);border-bottom:1px solid var(--line);box-shadow:none}
.brand b{font:700 17px var(--f-display);letter-spacing:-.01em}
.brand span{font:500 10px var(--f-body);letter-spacing:.06em}
.logo{width:30px;height:30px;border-radius:8px}
.tabs{gap:2px;padding:2px;border-radius:9px;background:var(--raise);border:1px solid var(--line)}
.tabs button{font:500 13px var(--f-body);padding:5px 11px;border-radius:7px;color:var(--muted)}
.tabs button[aria-selected="true"]{background:var(--surface);color:var(--fg);font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.08),0 0 0 1px var(--line)}
#q{border-radius:8px;background:var(--surface);font:400 13.5px var(--f-body);padding:6px 10px}
.hd-save,.as-t,.hd-ai{height:32px;border-radius:8px;font:600 12.5px var(--f-body);padding:0 11px}
.as select,.as input{height:32px;border-radius:8px}
.hd-save.dirty{background:var(--fg);color:var(--bg)}
.theme{width:32px;height:32px;border-radius:8px}
.hd-ai{background:var(--surface);border-color:var(--line)}
.hd-ai span:first-child{color:var(--c4)}
.prog span{font:500 10.5px var(--f-body)}
/* boutons */
.sm{padding:5px 10px;border-radius:7px;font:500 12.5px var(--f-body);border-color:var(--line);transition:background .12s,border-color .12s}
.sm:hover:not(:disabled){background:var(--raise)}
.sm.prim,.btn.prim{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.sm.prim:hover:not(:disabled),.btn.prim:hover:not(:disabled){opacity:.88;background:var(--fg)}
.btn{border-radius:8px;font:600 13px var(--f-body);height:34px}
.sm:focus-visible,.btn:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid color-mix(in srgb,var(--c3) 70%,transparent);outline-offset:1px}
/* espaces */
#sp-main{background:var(--surface)}
#sp-side{background:var(--bg);border-right:1px solid var(--line)}
.sp-title{font:700 36px/1.15 var(--f-display);letter-spacing:-.02em;border-bottom-width:2px}
.rt{font-size:15.5px;line-height:1.65}
.bl-h1 .rt,.th-th1 .tg-h .rt{font:700 28px/1.25 var(--f-display);letter-spacing:-.015em}
.bl-h2 .rt,.th-th2 .tg-h .rt{font:650 22px/1.3 var(--f-display);letter-spacing:-.01em}
.bl-h3 .rt,.th-th3 .tg-h .rt{font:600 18px/1.35 var(--f-display)}
.sp-card,.hm-card,.hm-g,.ig-r,.fx,.bmc{border-radius:10px;box-shadow:none}
.sp-card:hover,.hm-card:hover{box-shadow:var(--shadow)}
.dpn{border-radius:10px;background:var(--bg)}
.sp-h h3,.sb-h,.bkm-lab{letter-spacing:.06em}
.sb-n,.sp-pg,.sp-sbtn{font-weight:500}
.sb-n.on,.sp-row.on,.sp-sbtn.on{background:color-mix(in srgb,var(--fg) 6%,transparent);box-shadow:none}
.sp-row.on .sp-pg,.sb-n.on{font-weight:600}
.bl.al-center .rt{text-align:center}.bl.al-right .rt{text-align:right}.bl.al-justify .rt{text-align:justify}
.rt sup,.rt sub{font-size:.72em}
/* barre de texte compacte */
.tbr{display:flex;align-items:center;gap:1px;flex-wrap:wrap;max-width:calc(100vw - 30px)}
.tbr button{min-width:28px;height:30px;padding:0 6px;border:0;border-radius:6px;background:transparent;color:var(--fg);font:500 13.5px var(--f-body);cursor:pointer}
.tbr button:hover{background:var(--raise)}
.tbr-turn{font-weight:600!important;padding:0 8px!important}.tbr-turn i{font-style:normal;color:var(--muted)}
.tbr-s{display:inline-block;width:1px;height:18px;margin:0 3px;background:var(--line)}
.tbr-ai{color:var(--c4)!important;font-weight:700!important}
.tbr sub{font-size:9px}
#sp-tb{border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.16),0 0 0 1px var(--line);border:0}
.tbn-f select{max-width:170px}
/* code coloré */
.cdx{position:relative}
.cdx .cd-hl{position:absolute;inset:0;margin:0;padding:10px 12px;overflow:hidden;pointer-events:none;background:transparent;color:var(--fg);font:400 13.5px/1.55 var(--f-mono);white-space:pre;tab-size:2;border:0}
.cdx .cd-hl code{font:inherit;display:block;background:none;padding:0}
.cdx textarea.cd{position:relative;color:transparent;caret-color:var(--fg);background:transparent;overflow-x:auto;overflow-y:hidden}
.cdx textarea.cd::selection{background:color-mix(in srgb,var(--c3) 32%,transparent);color:transparent}
.cdx textarea.cd::placeholder{color:var(--muted)}
.cdw{border-radius:9px;background:var(--raise)}
.hljs-comment,.hljs-quote{color:var(--hc-com);font-style:italic}
.hljs-keyword,.hljs-selector-tag,.hljs-doctag,.hljs-meta .hljs-keyword{color:var(--hc-kw)}
.hljs-string,.hljs-regexp,.hljs-meta .hljs-string,.hljs-char{color:var(--hc-str)}
.hljs-number,.hljs-literal{color:var(--hc-num)}
.hljs-title,.hljs-title.function_,.hljs-section,.hljs-selector-id,.hljs-selector-class{color:var(--hc-fn)}
.hljs-built_in,.hljs-type,.hljs-title.class_,.hljs-symbol,.hljs-bullet,.hljs-link{color:var(--hc-bi)}
.hljs-attr,.hljs-attribute,.hljs-variable,.hljs-template-variable,.hljs-property,.hljs-params{color:var(--hc-attr)}
.hljs-meta,.hljs-name,.hljs-tag{color:var(--hc-meta)}
.hljs-addition{background:var(--hc-add)}.hljs-deletion{background:var(--hc-del)}
.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}
/* modales */
.mdl{position:fixed;inset:0;z-index:85;display:flex;align-items:flex-start;justify-content:center;padding:9vh 16px 16px;background:rgba(10,10,10,.42)}
.mdl[hidden]{display:none}
.mdl-b{width:min(520px,100%);max-height:84vh;overflow:auto;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:0 24px 70px rgba(0,0,0,.35);display:flex;flex-direction:column;gap:12px}
.mdl-b.mdl-w{width:min(620px,100%)}
.mdl-h{display:flex;align-items:center;justify-content:space-between;gap:10px}
.mdl-h b{font:700 16px var(--f-display)}
.mdl-f{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.mdl h4{margin:6px 0 0;font:600 12px var(--f-body);letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.ex-fs{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.ex-fs button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--fg);text-align:left;cursor:pointer;font:inherit}
.ex-fs button b{font:600 14px var(--f-body)}.ex-fs button small{color:var(--muted);font-size:12px;line-height:1.35}
.ex-fs button[aria-checked="true"]{border-color:var(--fg);box-shadow:0 0 0 1px var(--fg)}
.ex-fs button:disabled{opacity:.45;cursor:default}
.ex-msg{margin:0;color:var(--c2);font-size:13px}
/* membres, espaces de travail */
.mb-me,.mb-r,.wsm-me{display:flex;align-items:center;gap:10px}
.mb-me img,.mb-me i,.mb-r i,.wsm-me img,.wsm-me i{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--raise);font:700 14px var(--f-body);font-style:normal;object-fit:cover}
.mb-me div,.mb-r div{display:flex;flex-direction:column;flex:1;min-width:0}
.mb-me small,.mb-r small{color:var(--muted);font-size:12px}
.mb-steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px;font-size:14px}
.mb-l{display:flex;flex-direction:column;gap:6px}
.mb-r{padding:6px 8px;border:1px solid var(--line);border-radius:9px}
.mb-tag{padding:2px 8px;border-radius:99px;background:color-mix(in srgb,var(--c5) 18%,transparent);color:var(--c5);font:600 11px var(--f-body)}
.mb-add{display:grid;grid-template-columns:1fr 1.3fr auto auto;gap:6px}
.mb-add input,.mb-add select{min-width:0;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);font:400 13.5px var(--f-body)}
@media (max-width:560px){.mb-add{grid-template-columns:1fr 1fr}}
.wsm-h{display:flex;align-items:center;gap:10px;padding:6px 6px 8px}
.wsm-h div{display:flex;flex-direction:column;min-width:0}.wsm-h b{font:700 14px var(--f-body)}.wsm-h small{color:var(--muted);font-size:12px}
.wsm-lg{width:32px!important;height:32px!important;border-radius:8px!important}
.wsm-me{padding:4px 8px 6px;font-size:12.5px;color:var(--muted)}.wsm-me img,.wsm-me i{width:22px;height:22px;font-size:11px}
.bkm-l small{color:var(--muted)}
.sb-car{font-style:normal;color:var(--muted);margin-left:2px}
/* mode document : interrupteur et papier */
.sdoc{display:flex;align-items:flex-start;gap:10px;margin:4px 0 18px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);cursor:pointer;max-width:640px}
.sdoc input{margin-top:3px;width:17px;height:17px;accent-color:var(--fg)}
.sdoc span{display:flex;flex-direction:column;gap:2px}.sdoc small{color:var(--muted);font-size:12.5px;line-height:1.4}
#sp-main:has(.sp-wrap.docpaper){background:var(--raise)}
.sp-wrap.docpaper{--bg:#FFFFFF;--surface:#FFFFFF;--raise:#F4F4F2;--fg:#1F1F1E;--muted:#6B6A66;--line:#E4E2DD;color-scheme:light;
  --hc-com:#6a737d;--hc-kw:#cf222e;--hc-str:#0a3069;--hc-num:#0550ae;--hc-fn:#8250df;--hc-bi:#953800;--hc-attr:#0550ae;--hc-meta:#116329;
  max-width:none;width:min(794px,calc(100% - 24px));margin:24px auto 60px;padding:64px 72px 100px;background:#fff;color:#1F1F1E;border-radius:4px;box-shadow:0 1px 3px rgba(0,0,0,.08),0 10px 40px rgba(0,0,0,.10);font-family:var(--dfont)}
@media (max-width:700px){.sp-wrap.docpaper{padding:28px 20px 80px;width:calc(100% - 12px);margin:8px auto 40px}}
.docpaper .rt{font-family:var(--dfont);font-size:var(--dfs);line-height:var(--dlh)}
.docpaper.djust .bl-p .rt{text-align:justify}
.docpaper .sp-title{font-family:var(--dhfont);color:var(--dhc);border-bottom-color:var(--dac)}
.docpaper .bl-h1 .rt,.docpaper .bl-h2 .rt,.docpaper .bl-h3 .rt,.docpaper .th .tg-h .rt{font-family:var(--dhfont);color:var(--dhc)}
.docpaper.dnum .rt[data-num]::before{content:attr(data-num);color:var(--dac);margin-right:.15em}
.docpaper .bl-h1 .rt,.docpaper .th-th1 .tg-h .rt{font-size:calc(var(--dfs) * 1.85);font-weight:700;line-height:1.25}
.docpaper .bl-h2 .rt,.docpaper .th-th2 .tg-h .rt{font-size:calc(var(--dfs) * 1.4);font-weight:650;line-height:1.3}
.docpaper .bl-h3 .rt,.docpaper .th-th3 .tg-h .rt{font-size:calc(var(--dfs) * 1.15);font-weight:600;line-height:1.35}
.dcap{display:flex;align-items:center;gap:8px;margin-top:6px;font-size:12.5px;color:var(--muted)}
.dcap span{font-weight:600}
.dcap input{flex:1;min-width:0;padding:4px 6px;border:0;border-bottom:1px dashed var(--line);background:transparent;color:var(--fg);font:italic 400 13px var(--f-body)}
.pbk{display:flex;align-items:center;gap:10px;margin:10px 0;color:var(--muted);font:600 11px var(--f-body);letter-spacing:.08em;text-transform:uppercase}
.pbk::before,.pbk::after{content:"";flex:1;border-top:1.5px dashed var(--line)}
.docp .dpr label{font-weight:500}
.dc-w input{min-width:180px}
.dc-lg{max-height:40px;max-width:120px;border:1px solid var(--line);border-radius:6px;background:#fff}
/* aperçu paginé */
.dpv{position:fixed;inset:0;z-index:75;display:flex;flex-direction:column;background:#E8E7E4}
:root[data-theme="dark"] .dpv{background:#111}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .dpv{background:#111}}
.dpv[hidden]{display:none}
.dpv-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;background:var(--surface);border-bottom:1px solid var(--line)}
.dpv-top b{font:700 14px var(--f-body)}.dpv-n{color:var(--muted);font-size:13px}.dpv-sp{flex:1}.dpv-msg{font-size:12.5px;color:var(--c1)}
.dpv-body{flex:1;min-height:0;overflow:auto;padding:24px 16px 60px;display:flex;flex-direction:column;align-items:center}
.dpv-w{flex:none;transform-origin:top left;box-shadow:0 2px 6px rgba(0,0,0,.12),0 14px 40px rgba(0,0,0,.14);background:#fff}
/* pages du document */
.dpg{position:relative;width:var(--pw);height:var(--ph);background:#fff;color:#1F1F1E;overflow:hidden;box-sizing:border-box;font-family:var(--dfont);font-size:var(--dfs);line-height:var(--dlh);
  --hc-com:#6a737d;--hc-kw:#cf222e;--hc-str:#0a3069;--hc-num:#0550ae;--hc-fn:#8250df;--hc-bi:#953800;--hc-attr:#0550ae;--hc-meta:#116329;--hc-add:#dafbe1;--hc-del:#ffebe9}
.dpg-h,.dpg-f{position:absolute;left:var(--pm);right:var(--pm);display:grid;grid-template-columns:1fr auto 1fr;gap:12px;font:500 9.5px/1.3 var(--dfont);color:#6B6A66}
.dpg-h{top:calc(var(--pm) * .5);padding-bottom:6px;border-bottom:1px solid #E4E2DD}
.dpg-f{bottom:calc(var(--pm) * .5);padding-top:6px;border-top:1px solid #E4E2DD}
.dpg-h span:nth-child(2),.dpg-f span:nth-child(2){text-align:center}.dpg-h span:last-child,.dpg-f span:last-child{text-align:right}
.dpg-body{position:absolute;left:var(--pm);right:var(--pm);overflow:hidden;font-family:var(--dfont);font-size:var(--dfs);line-height:var(--dlh);color:#1F1F1E;
  --hc-com:#6a737d;--hc-kw:#cf222e;--hc-str:#0a3069;--hc-num:#0550ae;--hc-fn:#8250df;--hc-bi:#953800;--hc-attr:#0550ae;--hc-meta:#116329}
.dpg-body.just .d-p{text-align:justify}
.dk{display:flow-root}
.dpg-body .d-p{margin:0 0 .55em}
.dpg-body .d-empty{margin:0;height:.6em;line-height:.6em}
.dpg-body .d-h{font-family:var(--dhfont);color:var(--dhc);line-height:1.25;margin:.9em 0 .45em;page-break-after:avoid}
.dpg-body .d-h1{font-size:1.65em;font-weight:700;padding-bottom:.2em;border-bottom:1.5px solid var(--dac35)}
.dpg-body .d-h2{font-size:1.32em;font-weight:650}
.dpg-body .d-h3{font-size:1.1em;font-weight:600}
.dpg-body .d-num{margin-right:.45em;color:var(--dac)}
.dpg-body .d-li{display:flex;gap:.5em;margin:.12em 0}
.dpg-body .d-mk{flex:none;min-width:1.1em;color:#555}
.dpg-body .d-li.done div{text-decoration:line-through;color:#888}
.dpg-body .d-q{margin:.6em 0;padding:.2em 1em;border-left:3px solid var(--dac);color:#333;font-style:italic}
.dpg-body .d-co{display:flex;gap:.6em;margin:.6em 0;padding:.7em .9em;border-radius:6px;background:var(--dac08);border:1px solid var(--dac22)}
.dpg-body .d-code{margin:.6em 0;padding:12px 14px;border-radius:6px;background:#F6F8FA;border:1px solid #E6E8EB;font:400 .8em/1.5 'JetBrains Mono',Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;color:#1f2328}
.dpg-body .d-hr{border:0;border-top:1px solid #DDD;margin:1em 0}
.dpg-body .d-fig{margin:.9em 0;text-align:center;break-inside:avoid}
.dpg-body .d-fig img,.dpg-body .d-fig svg{max-width:100%;max-height:calc(var(--ph) * .55);height:auto}
.dpg-body figcaption,.dpg-body .d-tcap{margin:.4em 0;font-size:.85em;color:#555;text-align:center;font-style:italic}
.dpg-body .d-tw{margin:.7em 0}
.dpg-body .d-tb{width:100%;border-collapse:collapse;font-size:.88em;line-height:1.4}
.dpg-body .d-tb th,.dpg-body .d-tb td{border:1px solid #D9D9D6;padding:5px 7px;text-align:left;vertical-align:top}
.dpg-body .d-tb th{background:var(--dac08);font-weight:600}
.dpg-body .d-cols{display:grid;gap:18px}
.dpg-body .d-pl,.dpg-body .d-att{color:#555}
.dpg-body .d-bm a{color:var(--dac);word-break:break-all}
.dpg-body .d-eq{text-align:center;margin:.7em 0}
.dpg-body a{color:var(--dac)}
.dpg-body mark{background:#fff1a8;color:inherit}
.dpg-body code{font-family:'JetBrains Mono',Consolas,monospace;font-size:.88em}
.dpg-body .ieq svg{vertical-align:middle}
.dpg-body .mt{color:var(--dac);text-decoration:none}
.d-lt{margin:0 0 .8em;font:700 1.8em/1.2 var(--dhfont);color:var(--dhc)}
.d-tl{display:flex;align-items:baseline;gap:6px;margin:.28em 0}
.d-tl.l1{font-weight:600}.d-tl.l2{padding-left:1.4em}.d-tl.l3{padding-left:2.8em;font-size:.95em;color:#333}
.d-tl .tl-t{flex:none;max-width:82%}.d-tl .tl-n{color:var(--dac);margin-right:.5em}
.d-tl .tl-d{flex:1;border-bottom:1.5px dotted #B8B8B4;transform:translateY(-.25em)}
.d-tl .tl-p{flex:none;min-width:1.6em;text-align:right;font-variant-numeric:tabular-nums}
/* page de garde */
.dpg-cover{font-family:var(--dfont)}
.dcv{position:absolute;inset:0;display:flex;flex-direction:column;padding:var(--pm);color:#1F1F1E}
.dcv-top{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:56px}
.dcv-lg{max-height:64px;max-width:220px;object-fit:contain}
.dcv-org{font:600 11px var(--dfont);letter-spacing:.14em;text-transform:uppercase;color:#555}
.dcv-main{margin:auto 0}
.dcv-bar{width:64px;height:5px;margin:0 0 22px;border-radius:3px;background:var(--cbg)}
.dcv h1{margin:0 0 14px;font:800 40px/1.12 var(--dhfont);letter-spacing:-.02em;color:#141413}
.dcv-sub{margin:0;font:400 18px/1.45 var(--dfont);color:#4A4A47}
.dcv-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 26px;padding-top:18px;border-top:1px solid #DDDCD8}
.dcv-meta span{display:block;font:600 9.5px var(--dfont);letter-spacing:.12em;text-transform:uppercase;color:#7A7A76;margin-bottom:2px}
.dcv-meta b{font:600 13px var(--dfont)}
.dcv-conf{align-self:flex-start;margin-top:16px;padding:4px 10px;border:1.5px solid var(--cbg);border-radius:4px;color:var(--cbg);font:700 10.5px var(--dfont);letter-spacing:.14em;text-transform:uppercase}
.dcv-band .dcv-main{margin:auto calc(var(--pm) * -1);padding:64px var(--pm) 56px;background:var(--cbg)}
.dcv-band h1{color:#fff}.dcv-band .dcv-sub{color:rgba(255,255,255,.86)}.dcv-band .dcv-bar{background:rgba(255,255,255,.9)}
.dcv-minimal{text-align:center}.dcv-minimal .dcv-top{justify-content:center}.dcv-minimal .dcv-bar{margin:0 auto 22px}.dcv-minimal .dcv-meta{text-align:left}
.dcv-side{padding-left:calc(var(--pm) + 26mm)}
.dcv-side::before{content:"";position:absolute;left:0;top:0;bottom:0;width:20mm;background:var(--cbg)}
.dcv-classic h1{color:var(--cbg)}
/* sélection de blocs */
#sp-main.bsing,#sp-main.bsing *{user-select:none!important;-webkit-user-select:none!important}
.blw.bsel>.bl{background:color-mix(in srgb,var(--c3) 14%,transparent);border-radius:6px;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c3) 35%,transparent)}
.bsb{position:absolute;left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:20;display:flex;align-items:center;gap:4px;flex-wrap:wrap;justify-content:center;max-width:calc(100% - 24px);padding:6px 8px;border-radius:12px;background:var(--fg);color:var(--bg);box-shadow:0 12px 34px rgba(0,0,0,.28)}
.bsb[hidden]{display:none}
.bsb b{font:600 12.5px var(--f-body);padding:0 6px}
.bsb button,.bsb select{height:30px;padding:0 9px;border:0;border-radius:7px;background:transparent;color:var(--bg);font:500 12.5px var(--f-body);cursor:pointer}
.bsb select{background:color-mix(in srgb,var(--bg) 12%,transparent);max-width:150px}
.bsb select option,.bsb select optgroup{color:var(--fg);background:var(--surface)}
.bsb button:hover,.bsb select:hover{background:color-mix(in srgb,var(--bg) 18%,transparent)}
.bsb .danger{color:#ff9a9a}
/* pages visibles pendant l'écriture */
@media (min-width:701px){.sp-wrap.docpaper{padding:var(--pmt,64px) var(--pmx,72px) var(--pmb,80px);border-radius:2px}}
.sp-wrap.docpaper .bl-g{left:-50px}
.pg-n0{margin:0 0 6px;font:500 11px var(--f-body);color:#9a9994;text-align:right}
.pfill{pointer-events:none}
.pgap{position:relative;display:flex;justify-content:space-between;align-items:center;height:30px;margin:calc(var(--pmb,80px)) calc(var(--pmx,72px) * -1) var(--pmt,64px);padding:0 14px;background:var(--canvas,#E8E7E4);box-shadow:inset 0 6px 6px -6px rgba(0,0,0,.18),inset 0 -6px 6px -6px rgba(0,0,0,.18);font:600 10.5px var(--f-body);letter-spacing:.04em;color:#8a8984;user-select:none}
.pgap.pb{background:repeating-linear-gradient(-45deg,#E8E7E4 0 8px,#E1E0DC 8px 16px)}
:root[data-theme="dark"] .pgap{--canvas:#111}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .pgap{--canvas:#111}}
@media (max-width:700px){.pgap{margin:24px -20px 28px}}
.pg-cnt{margin-top:28px;font:500 11px var(--f-body);color:#9a9994;text-align:center}
#sp-main:has(.sp-wrap.docpaper){background:#E8E7E4}
:root[data-theme="dark"] #sp-main:has(.sp-wrap.docpaper){background:#111}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) #sp-main:has(.sp-wrap.docpaper){background:#111}}

/* ---------- Éditeur façon Canva ---------- */
/* ruban */
.dribbon{position:sticky;top:0;z-index:9;display:flex;flex-wrap:wrap;gap:6px 14px;align-items:stretch;padding:8px 14px;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:0 2px 10px rgba(0,0,0,.04)}
.rb-g{display:flex;align-items:center;gap:2px;flex-wrap:wrap;padding-right:14px;border-right:1px solid var(--line)}
.rb-g:last-child{border-right:0;padding-right:0}
.rb-t{margin-right:6px;font:600 10px var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.rb-b{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-width:50px;height:44px;padding:2px 6px;border:0;border-radius:7px;background:transparent;color:var(--fg);cursor:pointer;font:500 11px var(--f-body)}
.rb-b:hover{background:var(--raise)}
.rb-b.prim{background:var(--fg);color:var(--bg);padding:2px 10px}
.rb-b.prim:hover{opacity:.9;background:var(--fg)}
.rb-ic{font-size:16px;line-height:1.1}
.rb-l{white-space:nowrap}
.dribbon select{height:30px;max-width:150px;padding:0 6px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--fg);font:500 12.5px var(--f-body)}
@media (max-width:700px){.dribbon{gap:4px 8px;padding:6px 8px;overflow-x:auto;flex-wrap:nowrap}.rb-g{flex-wrap:nowrap;flex:none}.rb-t{display:none}.rb-b{min-width:42px}}
/* en-tête de page (hors feuille) */
.doc-head{width:min(794px,calc(100% - 24px));margin:18px auto 0}
.doc-head .sp-title{font-family:var(--dhfont,inherit)}
/* page de garde modifiable */
.cov-ed{width:min(794px,calc(100% - 24px));margin:16px auto 0}
.cov-tb{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 8px;padding:6px 8px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.cov-tb b{font:600 12.5px var(--f-body);margin-right:4px}
.cov-tb select,.cov-tb input[type=color]{height:28px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--fg);font:500 12px var(--f-body)}
.cov-tb input[type=color]{width:34px;padding:1px;vertical-align:middle}
.cov-tb label{display:inline-flex;align-items:center;gap:4px;font:500 12px var(--f-body);cursor:pointer}
.cov-sheet{position:relative;overflow:hidden;border-radius:2px;box-shadow:0 1px 3px rgba(0,0,0,.08),0 10px 40px rgba(0,0,0,.1)}
.cov-scale{transform-origin:top left}
.cov-hint{margin:6px 0 0;font:500 11px var(--f-body);color:#8a8984;text-align:center}
.cov-off{display:block;width:100%;padding:14px;border:1.5px dashed #c9c8c3;border-radius:8px;background:transparent;color:#77766f;font:600 13px var(--f-body);cursor:pointer}
.dcv [contenteditable]{outline:none;border-radius:3px;cursor:text;min-width:40px}
.dcv [contenteditable]:hover{box-shadow:0 0 0 1px rgba(47,95,208,.45)}
.dcv [contenteditable]:focus{box-shadow:0 0 0 2px rgba(47,95,208,.8)}
.dcv [contenteditable]:empty::before{content:attr(data-ph);opacity:.45}
.dcv-conf.empty{border-style:dashed;opacity:.7}
/* modèles de page de garde */
.dcv{z-index:0}
.dcv-img{order:1}.dcv-top{order:0}.dcv-main{order:2}.dcv-meta{order:3}.dcv-conf{order:4}
.dcv.has-img:not(.dcv-photo):not(.dcv-split) .dcv-img{display:block;width:100%;max-height:36%;margin:24px 0 0;object-fit:cover;border-radius:6px}
.dcv-photo .dcv-img,.dcv-split .dcv-img{position:absolute;z-index:-1;object-fit:cover}
.dcv-photo{color:#fff;background:var(--cbg)}
.dcv-photo .dcv-img{inset:0;width:100%;height:100%}
.dcv-photo::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,.65))}
.dcv-photo h1,.dcv-photo .dcv-sub,.dcv-photo .dcv-meta b,.dcv-photo .dcv-org{color:#fff}
.dcv-photo .dcv-meta{border-top-color:rgba(255,255,255,.35)}.dcv-photo .dcv-meta span{color:rgba(255,255,255,.75)}
.dcv-photo .dcv-bar{background:#fff}.dcv-photo .dcv-conf{border-color:#fff;color:#fff}
.dcv-split{padding-right:calc(45% + var(--pm))}
.dcv-split::before{content:"";position:absolute;top:0;right:0;bottom:0;width:45%;background:var(--cbg);z-index:-2}
.dcv-split .dcv-img{top:0;right:0;width:45%;height:100%}
.dcv-split h1{color:var(--cbg)}
.dcv-frame::before{content:"";position:absolute;inset:calc(var(--pm) * .5);border:2px solid var(--cbg);border-radius:4px;pointer-events:none}
.dcv-frame h1{color:var(--cbg)}
.cal-center{text-align:center}.cal-center .dcv-top{justify-content:center}.cal-center .dcv-bar{margin-left:auto;margin-right:auto}.cal-center .dcv-conf{align-self:center}
.cts-s h1{font-size:30px}.cts-l h1{font-size:52px}.cts-xl h1{font-size:64px;line-height:1.05}
/* feuille : en-tête et pied visibles */
.sp-wrap.docpaper{position:relative}
.pg-hd0{position:absolute;top:0;left:0;right:0;height:var(--pmt,64px)}
.pgap{display:block;height:auto;margin:0 calc(var(--pmx,72px) * -1);padding:0;background:none;box-shadow:none;letter-spacing:0;color:inherit}
.pgap.pb{background:none}
.pgap .pg-band{display:flex;justify-content:space-between;align-items:center;height:30px;padding:0 14px;background:var(--canvas,#E8E7E4);box-shadow:inset 0 6px 6px -6px rgba(0,0,0,.2),inset 0 -6px 6px -6px rgba(0,0,0,.2);font:600 10.5px var(--f-body);color:#8a8984;user-select:none}
.pgap.pb .pg-band{background:repeating-linear-gradient(-45deg,#E8E7E4 0 8px,#E1E0DC 8px 16px)}
.pg-hd,.pg-ft{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;font:500 var(--hfs,9.5px)/1.3 var(--dfont);color:#6B6A66;cursor:pointer;border-radius:4px}
.pg-hd span:nth-child(2),.pg-ft span:nth-child(2){text-align:center}.pg-hd span:last-child,.pg-ft span:last-child{text-align:right}
.pgap .pg-ft{height:var(--pmb,80px);align-items:end;padding:0 var(--pmx,72px) calc(var(--pmb,80px) * .42)}
.pgap .pg-hd,.pg-hd0 .pg-hd{height:var(--pmt,64px);align-items:start;padding:calc(var(--pmt,64px) * .4) var(--pmx,72px) 0}
.pg-hd:hover,.pg-ft:hover{background:rgba(47,95,208,.06);box-shadow:inset 0 0 0 1px rgba(47,95,208,.3)}
.hf-ph{grid-column:1/-1;color:#b2b1ac;font-style:italic;text-align:center!important}
.pg-hd img.dpg-lg,.pg-ft img.dpg-lg,.dpg-h img.dpg-lg{height:18px;vertical-align:middle;margin:0 6px}
.dpg-h.noline,.dpg-f.noline{border:0}
.dpg-h,.dpg-f{font-size:var(--hfs,9.5px)}
@media (max-width:700px){.pgap{margin:0 -20px}.pgap .pg-ft,.pgap .pg-hd,.pg-hd0 .pg-hd{padding-left:20px;padding-right:20px;height:44px}}
.docpaper.ta-center .bl-p .rt,.docpaper.ta-center .bl-quote .rt{text-align:center}
.dpg-body.ta-center .d-p{text-align:center}.dpg-body.ta-justify .d-p{text-align:justify}
/* popover en-tête / pied */
.hfp{position:fixed;z-index:72;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 16px 44px rgba(0,0,0,.25);display:flex;flex-direction:column;gap:8px;color:var(--fg)}
.hfp[hidden]{display:none}
.hfp-h{display:flex;justify-content:space-between;align-items:center}
.hfp-h b{font:700 14px var(--f-body)}
.hfp-r{display:grid;grid-template-columns:90px 1fr 1fr 1fr;gap:6px;align-items:center}
.hfp-r b{font:600 12px var(--f-body);color:var(--muted)}
.hfp-r input{min-width:0;padding:6px 8px;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--fg);font:400 13px var(--f-body)}
.hfp-v{display:flex;flex-wrap:wrap;gap:4px;align-items:center;font-size:12px;color:var(--muted)}
.hfp-v button{padding:2px 7px;border:1px solid var(--line);border-radius:99px;background:var(--raise);color:var(--fg);font:500 11.5px var(--f-mono);cursor:pointer}
.hfp-o{display:flex;flex-wrap:wrap;gap:10px;align-items:center;font:500 12.5px var(--f-body)}
.hfp-o select,.hfp-o input[type=number]{padding:4px 6px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--fg)}
@media (max-width:560px){.hfp-r{grid-template-columns:1fr 1fr 1fr}.hfp-r b{grid-column:1/-1}}
/* images redimensionnables */
.im{display:flex;flex-direction:column}
.im.im-center{align-items:center}.im.im-left{align-items:flex-start}.im.im-right{align-items:flex-end}
.im .cap{align-self:stretch}
.imr{position:relative;max-width:100%;line-height:0}
.imr img{display:block;width:100%;height:auto;border-radius:4px;border:0}
.ims-round img{border-radius:16px}.ims-shadow img{box-shadow:0 10px 30px rgba(0,0,0,.22)}.ims-border img{border:3px solid var(--fg);border-radius:4px}.ims-circle img{border-radius:50%;aspect-ratio:1;object-fit:cover}
.im-h{position:absolute;top:50%;width:8px;height:48px;margin-top:-24px;border-radius:5px;background:#fff;border:1px solid rgba(0,0,0,.25);box-shadow:0 1px 4px rgba(0,0,0,.25);cursor:ew-resize;opacity:0;transition:opacity .12s;touch-action:none}
.im-h.l{left:6px}.im-h.r{right:6px}
.imr:hover .im-h,.imr.rsz .im-h{opacity:1}
.im-sz{position:absolute;right:8px;bottom:8px;padding:2px 7px;border-radius:6px;background:rgba(0,0,0,.65);color:#fff;font:600 11px/1.4 var(--f-body);opacity:0;pointer-events:none}
.imr.rsz .im-sz{opacity:1}
.im-tb{position:absolute;top:8px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:1px;padding:3px;border-radius:9px;background:var(--surface);border:1px solid var(--line);box-shadow:0 6px 20px rgba(0,0,0,.18);opacity:0;pointer-events:none;transition:opacity .12s;line-height:1.2;white-space:nowrap}
.imr:hover .im-tb,.imr:focus-within .im-tb{opacity:1;pointer-events:auto}
@media (hover:none){.im-tb{opacity:1;pointer-events:auto;position:static;transform:none;margin-top:6px;flex-wrap:wrap}.im-h{opacity:.9}}
.im-tb button{min-width:26px;height:26px;padding:0 5px;border:0;border-radius:6px;background:transparent;color:var(--fg);font:500 11.5px var(--f-body);cursor:pointer}
.im-tb button:hover,.im-tb button.on{background:var(--raise)}
.im-tb button.on{font-weight:700}
.im-tb i{width:1px;height:16px;margin:0 3px;background:var(--line)}
.im-tb select{height:26px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--fg);font:500 11.5px var(--f-body)}
.im-rep{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:6px;cursor:pointer;font-size:13px}
.im-rep:hover{background:var(--raise)}
.im-pick2{flex-direction:column;gap:4px;min-height:120px}
.im-pick2 b{font:600 15px var(--f-body);color:var(--fg)}.im-pick2 small{font-weight:400}
.dpg-body .d-fig.d-al-left{text-align:left}.dpg-body .d-fig.d-al-right{text-align:right}
.dpg-body .ims-round{border-radius:16px}.dpg-body .ims-shadow{box-shadow:0 10px 30px rgba(0,0,0,.22)}.dpg-body .ims-border{border:3px solid #1F1F1E}.dpg-body .ims-circle{border-radius:50%;aspect-ratio:1;object-fit:cover}
/* modèles de document */
.dtpl{margin:28px 0 8px;padding:16px;border:1px dashed #cfcec9;border-radius:12px}
.dtpl>b{display:block;margin:0 0 10px;font:600 13px var(--f-body);color:#55544f}
.dtpl-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.dtpl-g button{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:12px;border:1px solid #e4e2dd;border-top:4px solid var(--ta);border-radius:10px;background:#fff;color:#1f1f1e;cursor:pointer;text-align:left}
.dtpl-g button:hover{box-shadow:0 6px 18px rgba(0,0,0,.08)}
.dtpl-g span:not(.dtpl-ic){font-size:15px;font-weight:600}
.dtpl-ic{font-size:22px}
.dtpl-g small{font:500 11px Inter,system-ui,sans-serif;color:#8a8984}
.dtpl .hint{display:block;margin-top:8px}
@media (max-width:700px){.sp-wrap.docpaper{padding-top:48px}.pg-hd0{height:44px}.pg-hd0 .pg-hd{padding-top:14px}}
#v-spaces.sbc .sb-open{z-index:12}#v-spaces.sbc .dribbon{padding-left:56px}

/* ---------- Studio : page de garde libre, formes, styles en-têtes, dessins, thèmes ---------- */
/* papier teinté / sombre */
.sp-wrap.docpaper{background:var(--dpbg,#fff);color:var(--dtc,#1F1F1E);--bg:var(--dpbg,#fff);--surface:var(--dpbg,#fff);--fg:var(--dtc,#1F1F1E)}
.dpg{background:var(--dpbg,#fff);color:var(--dtc,#1F1F1E)}
.sp-wrap.docpaper.dkpage,.dpg.dkpage{--raise:#161B22;--muted:#8B949E;--line:#273244;color-scheme:dark;
  --hc-com:#8b949e;--hc-kw:#ff7b72;--hc-str:#a5d6ff;--hc-num:#79c0ff;--hc-fn:#d2a8ff;--hc-bi:#ffa657;--hc-attr:#79c0ff;--hc-meta:#7ee787;--hc-add:#033a16;--hc-del:#67060c}
.sp-wrap.docpaper.dkpage{--surface:#121826}
.dpg.dkpage .d-tb th,.dpg.dkpage .d-tb td{border-color:#273244}
.dpg.dkpage .d-tb th{background:#161B22;color:#E2E8F0}
.dpg.dkpage .d-code,.dpg.dkpage pre{background:#161B22!important;color:#E6EDF3}
.dpg.dkpage .d-tl,.dpg.dkpage .d-tl .tl-t{color:#CBD5E1}
.dpg.dkpage .dpg-h,.dpg.dkpage .dpg-f{color:#94A3B8;border-color:#273244}
.dpg.dkpage figcaption,.dpg.dkpage .d-tcap{color:#94A3B8}
.dpg.dkpage blockquote,.dpg.dkpage .d-q{color:#CBD5E1}

/* styles de titres (éditeur + aperçu) */
.docpaper.hs-plain .bl-h1 .rt,.dpg-body.hs-plain .d-h1{border-bottom:0}
.docpaper.hs-under .bl-h1 .rt{padding-bottom:.2em;border-bottom:1.5px solid var(--dac35)}
.docpaper.hs-bar .bl-h1 .rt,.dpg-body.hs-bar .d-h1{border-bottom:0;border-left:5px solid var(--dac);padding:.05em 0 .05em .55em}
.docpaper.hs-bar .bl-h2 .rt,.dpg-body.hs-bar .d-h2{border-left:3px solid var(--dac35);padding-left:.55em}
.docpaper.hs-band .bl-h1 .rt,.dpg-body.hs-band .d-h1{border-bottom:0;background:var(--dhc);color:#fff;padding:.28em .55em;border-radius:4px}
.docpaper.hs-band .bl-h1 .rt[data-num]::before,.dpg-body.hs-band .d-h1 .d-num{color:#fff;opacity:.75}
.docpaper.hs-band .bl-h2 .rt,.dpg-body.hs-band .d-h2{color:var(--dac)}
.docpaper.hs-caps .bl-h1 .rt,.dpg-body.hs-caps .d-h1{text-transform:uppercase;letter-spacing:.06em;font-size:calc(var(--dfs) * 1.45);border-bottom:2px solid var(--dac);padding-bottom:.25em}
.dpg-body.hs-caps .d-h1{font-size:1.35em}
.docpaper.hs-caps .bl-h2 .rt,.dpg-body.hs-caps .d-h2{text-transform:uppercase;letter-spacing:.05em;font-size:calc(var(--dfs) * 1.1);color:var(--dac)}
.dpg-body.hs-caps .d-h2{font-size:1.06em}
.docpaper.hs-box .bl-h1 .rt,.dpg-body.hs-box .d-h1{border:1.5px solid var(--dac);border-bottom-width:1.5px;background:var(--dac08);padding:.3em .55em;border-radius:3px}
.docpaper.hs-neon .bl-h1 .rt,.dpg-body.hs-neon .d-h1{color:var(--dhc);text-shadow:0 0 14px var(--dhc);border-bottom:1px solid var(--dac)}
.docpaper.hs-neon .bl-h2 .rt,.dpg-body.hs-neon .d-h2{color:var(--dac)}

/* en-têtes / pieds stylés */
.pg-hd.hfbg{background:linear-gradient(var(--hbg),var(--hbg)) top/100% calc(var(--pmt,64px) * .4 + 24px) no-repeat}
.pg-ft.hfbg{background:linear-gradient(var(--hbg),var(--hbg)) bottom/100% calc(var(--pmb,80px) * .42 + 24px) no-repeat}
.pg-hd.hfbg:hover,.pg-ft.hfbg:hover{box-shadow:inset 0 0 0 1px rgba(47,95,208,.4)}
.dpg-h.hfbg{left:0;right:0;top:0;padding:calc(var(--pm) * .5) var(--pm) 8px;background:var(--hbg);border:0}
.dpg-f.hfbg{left:0;right:0;bottom:0;padding:8px var(--pm) calc(var(--pm) * .5);background:var(--hbg);border:0}
@media (max-width:700px){.pg-hd.hfbg{background-size:100% 40px}.pg-ft.hfbg{background-size:100% 40px}}
.hfp-st{display:flex;flex-direction:column;gap:6px;padding:10px 0 4px;border-top:1px solid var(--line);margin-top:8px}
.hfp-sh{font:600 11px var(--f-body);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.hfp-s{display:flex;flex-wrap:wrap;align-items:center;gap:4px}
.hfp-s>b{width:84px;font:600 12px var(--f-body)}
.hfp-s select{height:28px;max-width:150px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--fg);font:500 12px var(--f-body)}
.hfp-s input[type=number]{width:62px;height:28px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--fg);padding:0 6px}
.hft{position:relative;display:inline-flex;align-items:center;gap:4px;height:28px;min-width:28px;padding:0 6px;border:1px solid var(--line);border-radius:6px;background:var(--surface);font:500 12px var(--f-body);cursor:pointer}
.hft input[type=checkbox]{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.hft:has(input[type=checkbox]:checked){background:var(--fg);color:var(--bg);border-color:var(--fg)}
.hft input[type=color]{width:22px;height:20px;padding:0;border:0;background:none;cursor:pointer}
.hft:has(input[type=checkbox]:focus-visible){outline:2px solid var(--accent,#2F5FD0)}

/* page de garde : formes, logo, champs */
.csh{position:absolute;z-index:-1;box-sizing:border-box;transform-origin:center}
.csh.front{z-index:3}
.csh svg{display:block;width:100%;height:100%}
.cov-ed .dcv>*:not(.csh):not(.lgw):not(.ctb):not(.cmv):not(.cmv-w){pointer-events:none}
.cov-ed .dcv [contenteditable],.cov-ed .dcv button,.cov-ed .dcv .lgw,.cov-ed .dcv .lgw *{pointer-events:auto}
.cov-ed .dcv .dcv-meta .mf{pointer-events:auto}
.csh.ed{cursor:move;touch-action:none}
.csh.ed:hover{outline:1.5px dashed rgba(47,95,208,.7);outline-offset:1px}
.csh.sel{outline:2px solid #2F5FD0;outline-offset:1px}
.sh-h{position:absolute;width:14px;height:14px;border-radius:50%;background:#fff;border:2px solid #2F5FD0;display:none;touch-action:none;z-index:5}
.sh-h[data-shh=se]{right:-8px;bottom:-8px;cursor:nwse-resize;border-radius:3px}
.sh-h.rot{left:50%;top:-26px;margin-left:-7px;cursor:grab}
.sh-h.rot::after{content:"";position:absolute;left:5px;top:12px;width:1.5px;height:12px;background:#2F5FD0}
.csh.sel .sh-h{display:block}
.lgw{position:relative;display:inline-block;line-height:0;touch-action:none}
.lgw.free{position:absolute;z-index:4}
.cov-ed .lgw{cursor:move}
.cov-ed .lgw:hover{outline:1.5px dashed rgba(47,95,208,.7);outline-offset:3px}
.lg-x{position:absolute;top:-10px;right:-10px;width:22px;height:22px;border-radius:50%;border:0;background:#C0362C;color:#fff;font:700 14px/22px var(--f-body);cursor:pointer;opacity:0;transition:opacity .12s;padding:0}
.lg-rs{position:absolute;right:-6px;bottom:-6px;width:12px;height:12px;border-radius:3px;background:#fff;border:2px solid #2F5FD0;cursor:nwse-resize;opacity:0;touch-action:none}
.lgw:hover .lg-x,.lgw:hover .lg-rs{opacity:1}
@media (hover:none){.lg-x,.lg-rs{opacity:1}}
.dcv-meta .mf{position:relative;min-width:0}
.mf-x{position:absolute;top:-6px;right:-6px;width:18px;height:18px;padding:0;border:0;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;font:700 12px/18px var(--f-body);cursor:pointer;opacity:0}
.mf:hover .mf-x,.mf:focus-within .mf-x{opacity:1}
@media (hover:none){.mf-x{opacity:.8}}
.dcv-meta [contenteditable][data-cov^="lab."],.dcv-meta [contenteditable][data-cov$=".l"]{display:block}
.cov-tb2,.cov-sh{margin-top:6px}
.cov-sh{background:var(--accent-weak,#EEF2FF);border-color:rgba(47,95,208,.35)}
.cov-sh b{font:600 12px var(--f-body)}
.cov-sh input[type=range]{width:90px;vertical-align:middle}
.cov-tb .danger{color:#C0362C}

/* dessins redimensionnables */
.drw.dra-left,.drw.dra-center,.drw.dra-right{border:0;border-radius:0;background:none;overflow:visible;display:flex;flex-direction:column}
.drw.dra-center{align-items:center}.drw.dra-right{align-items:flex-end}.drw.dra-left{align-items:flex-start}
.drw .cap{align-self:stretch}
.drf{position:relative;max-width:100%;border:1px solid transparent;border-radius:8px;background:#fff;line-height:0;box-sizing:border-box}
.drf:hover,.drf.rsz{border-color:var(--line)}
.drf.bd{border:1.5px solid var(--dac,#C9C7C1)}
.drf .drw-v{display:block;width:100%;padding:0;border:0;background:transparent;cursor:pointer}
.drf svg{display:block;width:100%;height:auto;max-height:none}
.drf.fixh .drw-v,.drf.fixh svg{height:100%}
.drf:hover .im-h,.drf.rsz .im-h{opacity:1}
.drf.rsz .im-sz{opacity:1}
.drf:hover .im-tb,.drf:focus-within .im-tb{opacity:1;pointer-events:auto}
.drf .im-h.bt{top:auto;bottom:4px;left:50%;width:48px;height:8px;margin:0 0 0 -24px;cursor:ns-resize}
.drf .im-h.cn{top:auto;bottom:4px;right:4px;width:14px;height:14px;margin:0;border-radius:4px;cursor:nwse-resize}
.drf .im-tb{white-space:nowrap}
.dra-left .drf .im-tb{left:8px;transform:none}.dra-right .drf .im-tb{left:auto;right:8px;transform:none}
.drbox{display:block;margin:0 auto;max-width:100%;line-height:0;box-sizing:border-box}
.drbox svg{display:block;width:100%;height:auto}
.drbox.fixh svg{height:100%}
.drbox.bd{border:1.5px solid var(--dac);border-radius:6px;padding:6px}
.d-al-left .drbox{margin-left:0}.d-al-right .drbox{margin-right:0}
@media (hover:none){.drf .im-tb{position:static;transform:none;opacity:1;pointer-events:auto;margin-top:6px;flex-wrap:wrap;white-space:normal;line-height:1.2}}

/* galerie de thèmes */
.rb-b.prim2{background:var(--accent-weak,#EEF2FF);border-radius:8px}
.thg{position:fixed;z-index:80;overflow:auto;box-sizing:border-box;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 18px 50px rgba(0,0,0,.22)}
.thg-h{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.thg-h b{font:650 15px var(--f-body)}
.thg-h small{flex:1;min-width:200px;color:var(--muted)}
.thg-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.thc{display:flex;flex-direction:column;gap:3px;padding:8px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);text-align:left;cursor:pointer;font:inherit;min-width:0}
.thc:hover{border-color:var(--t-ac)}
.thc.on{box-shadow:0 0 0 2px var(--t-ac)}
.thc-n{font:600 12.5px var(--f-body);line-height:1.25}
.thc small{color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.thc-pv{display:flex;gap:5px;height:92px;margin-bottom:5px}
.thc-cv,.thc-pg{position:relative;flex:1;border-radius:4px;box-shadow:0 1px 3px rgba(0,0,0,.18);overflow:hidden;background:#fff}
.thc-cv{background:#fff}
.thc-cv::before{content:"";position:absolute;background:var(--t-cb)}
.thc-band::before{left:0;right:0;top:38%;height:30%}
.thc-side::before{left:0;top:0;bottom:0;width:22%}
.thc-photo::before{inset:0}
.thc-split::before{right:0;top:0;bottom:0;width:45%}
.thc-classic::before{left:12%;top:40%;width:50%;height:6%}
.thc-minimal::before{left:35%;top:44%;width:30%;height:4%}
.thc-frame::before{inset:8%;background:none;border:1.5px solid var(--t-cb)}
.thc-none{background:repeating-linear-gradient(-45deg,#f2f2f0 0 4px,#e9e9e6 4px 8px)}
.thc-pg{display:flex;flex-direction:column;gap:5px;padding:12px 7px 7px;background:var(--t-bg)}
.thc-hb{position:absolute;left:0;right:0;top:0;height:7px;background:var(--t-hb)}
.thc-h{font-size:12px;font-weight:700;color:var(--t-hc);line-height:1.2;padding:1px 3px}
.thc-h.hs-under{border-bottom:1.5px solid var(--t-ac)}
.thc-h.hs-bar{border-left:3px solid var(--t-ac)}
.thc-h.hs-band{background:var(--t-hc);color:#fff;border-radius:2px}
.thc-h.hs-caps{text-transform:uppercase;font-size:10px;letter-spacing:.06em;border-bottom:1.5px solid var(--t-ac)}
.thc-h.hs-box{border:1px solid var(--t-ac)}
.thc-h.hs-neon{text-shadow:0 0 6px var(--t-hc)}
.thc-l{height:4px;border-radius:2px;background:var(--t-tx);opacity:.35}
.thc-l.s{width:70%}
.dpg-body{color:var(--dtc,#1F1F1E)}
.dpg.dkpage .d-q,.dpg.dkpage .d-tl.l3{color:#CBD5E1}
.dpg.dkpage .d-code{border-color:#273244}
.dpg.dkpage .d-tb td{color:#E2E8F0}

@media (prefers-reduced-motion:reduce){
  .pop,.e-base,.e-flow,.x-flow{animation:none!important}
  #panel{transition:none}
}

/* ===== Statistiques de la carte ===== */
#st-panel{position:absolute;z-index:4;left:60px;top:12px;bottom:74px;width:340px;max-width:calc(100% - 72px);overflow:auto;overscroll-behavior:contain;padding:12px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--surface) 86%,transparent);-webkit-backdrop-filter:blur(14px) saturate(1.3);backdrop-filter:blur(14px) saturate(1.3);box-shadow:0 18px 50px rgba(0,0,0,.16);display:flex;flex-direction:column;gap:10px;animation:stIn .35s cubic-bezier(.2,.8,.2,1)}
@keyframes stIn{from{opacity:0;transform:translateX(-14px)}to{opacity:1;transform:none}}
#st-panel[hidden]{display:none}
.st-hd{display:flex;align-items:center;gap:6px;position:sticky;top:-12px;margin:-12px -12px 0;padding:12px;background:var(--surface);z-index:1;border-radius:16px 16px 0 0}
.st-hd b{font:800 15px var(--f-display);margin-right:auto}
.st-hint{display:none}
.st-x2{width:30px;height:30px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--fg);cursor:pointer;font-size:15px;line-height:1}
.st-x2[aria-expanded="true"]{background:var(--fg);color:var(--bg)}
.st-cfg{display:flex;flex-wrap:wrap;gap:6px}
.st-cfg label{display:inline-flex;gap:6px;align-items:center;padding:5px 9px;border:1px solid var(--line);border-radius:99px;font:600 12px var(--f-body);cursor:pointer;background:var(--surface)}
.st-kpi{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.st-kpi div{padding:9px 6px;border-radius:12px;background:var(--raise,var(--surface));border:1px solid var(--line);text-align:center}
.st-kpi b{display:block;font:800 17px var(--f-display);letter-spacing:-.02em}
.st-kpi span{font:600 10px var(--f-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.st-card{position:relative;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);transition:border-color .2s,transform .2s}
.st-card:hover,.st-card:focus-within{border-color:var(--c3);transform:translateY(-1px)}
.st-ct{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;min-height:26px}
.st-ct h3{margin:0;font:700 13px var(--f-display)}.st-ct h3 small{font:500 11px var(--f-mono);color:var(--muted)}
.st-ct::after{content:"⋯";color:var(--muted);font:700 16px var(--f-body);letter-spacing:1px}
.st-card:hover .st-ct::after,.st-card:focus-within .st-ct::after{opacity:0}
.st-sw{position:absolute;top:6px;right:6px;z-index:2;display:flex;flex-wrap:wrap;gap:3px;justify-content:flex-end;max-width:250px;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 8px 24px rgba(0,0,0,.14);opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .18s,transform .18s,visibility .18s}
.st-card:hover .st-sw,.st-card:focus-within .st-sw,.st-sw:focus-within{opacity:1;visibility:visible;transform:none}
.st-sw button{padding:3px 7px;border:1px solid var(--line);border-radius:99px;background:transparent;color:var(--muted);font:600 10.5px var(--f-body);cursor:pointer}
.st-sw button[aria-pressed="true"]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.st-svg{display:block;width:100%;height:auto;overflow:visible}
.st-sq{width:150px;margin:0 auto 6px}
.st-gl{stroke:var(--line);stroke-width:1;stroke-dasharray:3 4}
.st-v{font:700 10px var(--f-mono);fill:var(--fg);text-anchor:middle}
.st-x{font:500 9px var(--f-mono);fill:var(--muted);text-anchor:middle}
.st-big{font:800 22px var(--f-display);fill:var(--fg);text-anchor:middle}
.st-col rect,.st-sl{transform-box:fill-box;transform-origin:bottom;animation:stGrow .6s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--d,0s)}
.st-sl{transform-origin:center;transition:transform .2s}.st-sl:hover{transform:scale(1.05)}
@keyframes stGrow{from{transform:scaleY(0);opacity:0}to{transform:none;opacity:1}}
.st-trk{fill:none;stroke:var(--line);stroke-width:5}
.st-arc{fill:none;stroke-width:5;stroke-linecap:round;animation:stDash .9s ease both;animation-delay:var(--d,0s)}
@keyframes stDash{from{stroke-dasharray:0 100}}
.st-ln{fill:none;stroke:var(--c3);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:100;animation:stLine 1s ease both}
@keyframes stLine{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
.st-ar{fill:color-mix(in srgb,var(--c3) 22%,transparent)}
.st-pt{fill:var(--surface);stroke:var(--c3);stroke-width:2}
.st-bars{display:flex;flex-direction:column;gap:7px}
.st-r{display:grid;grid-template-columns:84px 1fr 28px;align-items:center;gap:8px;font:500 12px var(--f-body)}
.st-r span{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.st-r>div{height:10px;border-radius:99px;background:var(--line);overflow:hidden}
.st-r i{display:block;height:100%;border-radius:99px;transform-origin:left;animation:stBar .7s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--d,0s)}
@keyframes stBar{from{transform:scaleX(0)}}
.st-r b{text-align:right;font:700 12px var(--f-mono)}
.st-lg{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:4px 12px}
.st-lg li{display:flex;align-items:center;gap:6px;font:500 11.5px var(--f-body);min-width:0}
.st-lg li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;color:var(--muted)}
.st-lg i{width:9px;height:9px;border-radius:3px;flex:none}.st-lg small{color:var(--muted);font-weight:500}
.st-none{margin:0;color:var(--muted);font:500 12px var(--f-body);text-align:center;padding:10px 0}
@media (max-width:760px){
  #st-panel{left:8px;right:8px;top:auto;bottom:62px;width:auto;max-width:none;max-height:58%;}
}
@media (prefers-reduced-motion:reduce){#st-panel,.st-col rect,.st-sl,.st-arc,.st-ln,.st-r i{animation:none!important}}
#st-panel>*{flex:none}

/* ---- page de garde : blocs libres, texte dans les formes, guides ---- */
.csh .sh-tx{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:0 6%;font-family:var(--dfont);line-height:1.15;overflow:hidden;word-break:break-word;white-space:pre-wrap;pointer-events:none}
.ctb{position:absolute;z-index:2;box-sizing:border-box;white-space:pre-wrap;word-break:break-word;line-height:1.3;font-family:var(--dfont)}
.ctb-t{outline:none;min-height:1.3em;white-space:pre-wrap}
.cov-ed .ctb-t:empty::before{content:attr(data-ph);opacity:.4}
.cov-ed .ctb.ed{touch-action:manipulation}
.cov-ed .ctb.ed:hover{outline:1.5px dashed rgba(47,95,208,.7);outline-offset:3px}
.cov-ed .ctb.sel{outline:2px solid #2F5FD0;outline-offset:3px}
.cmv-w{position:relative}
.cmv.free,.cmv-w.free{position:absolute;z-index:2;box-sizing:border-box;margin:0}
.cmv-w.cw-conf{order:4;align-self:flex-start}.cal-center .cmv-w.cw-conf{align-self:center}
.cmv.mf span,.cmv-w.free.mf span{display:block;font:600 9.5px var(--dfont);letter-spacing:.12em;text-transform:uppercase;color:#7A7A76;margin-bottom:2px}
.cmv.mf b,.cmv-w.free.mf b{font:600 13px var(--dfont)}
.dcv-photo .cmv.mf b,.dcv-photo .cmv-w.free.mf b{color:#fff}.dcv-photo .cmv.mf span,.dcv-photo .cmv-w.free.mf span{color:rgba(255,255,255,.75)}
.cov-ed .cmv.free:hover,.cov-ed .cmv-w.free:hover{outline:1.5px dashed rgba(47,95,208,.7);outline-offset:3px}
.mvh{position:absolute;left:-22px;top:2px;width:19px;height:19px;border-radius:5px;background:#2F5FD0;color:#fff;font:700 12px/19px sans-serif;text-align:center;cursor:grab;opacity:0;transition:opacity .12s;touch-action:none;z-index:7;user-select:none;-webkit-user-select:none;pointer-events:auto}
.mvh.rs{left:auto;right:-10px;top:50%;margin-top:-10px;cursor:ew-resize;border-radius:50%;width:15px;height:15px}
.cmv-w:hover>.mvh,.cmv:hover>.mvh,.ctb:hover>.mvh,.ctb.sel>.mvh{opacity:1}
@media(hover:none){.cov-ed .mvh{opacity:.9}}
.mvx{position:absolute;right:-4px;top:-24px;height:20px;padding:0 6px;border:0;border-radius:5px;background:#555;color:#fff;font:600 11px/20px sans-serif;cursor:pointer;opacity:0;pointer-events:auto;z-index:7}
.cmv:hover>.mvx,.cmv-w.free:hover>.mvx{opacity:1}
@media(hover:none){.cov-ed .mvx{opacity:.9}}
.cov-guides{position:absolute;inset:0;pointer-events:none;z-index:50}
.cov-guides .gl{position:absolute;background:#E11D8A;opacity:.7}
.cov-guides .gl.v{top:0;bottom:0;width:1px;margin-left:-.5px}
.cov-guides .gl.h{left:0;right:0;height:1px;margin-top:-.5px}
.cov-tbq .sm{height:28px}
.cov-al{display:inline-flex;gap:2px}.cov-al .sm{padding:0 7px;min-width:28px}
.cov-txin input[type=text]{height:28px;width:150px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--fg);padding:0 8px;font:500 12px var(--f-body)}
.cov-tb .sm.on{background:var(--fg);color:var(--bg)}

.sp-crumb .sp-prev{display:inline-flex;align-items:center;gap:4px;margin-right:8px;padding:3px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--fg);font:600 12px var(--f-body);cursor:pointer}
.sp-crumb .sp-prev:hover{background:var(--raise)}

/* ===== Agent : avatar, présence, personnalisation ===== */
.ag{display:inline-block;flex:none;line-height:0;vertical-align:middle}
.ag-svg{width:100%;height:100%;overflow:visible;display:block}
.ag-bd{transform-origin:32px 64px;transform-box:view-box}
.ag[data-m="idle"] .ag-bd{animation:agbob 3.6s ease-in-out infinite}
.ag[data-m="think"] .ag-bd,.ag[data-m="work"] .ag-bd{animation:agtilt 1.1s ease-in-out infinite}
.ag[data-m="happy"] .ag-bd{animation:agjump .7s ease-out 2}
.ag[data-m="oops"] .ag-bd{animation:agshake .5s ease-in-out 2}
.ag-pu{transform-box:fill-box;transform-origin:center;animation:agblink 5s infinite}
.ag-dots circle{animation:agdot 1.2s ease-in-out infinite}
.ag-dots circle:nth-child(2){animation-delay:.2s}.ag-dots circle:nth-child(3){animation-delay:.4s}
.ag[data-m="work"] .ag-armR,.ag[data-m="happy"] .ag-armR{transform-box:view-box;transform-origin:53px 47px;animation:agwave .6s ease-in-out infinite alternate}
@keyframes agbob{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
@keyframes agtilt{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}
@keyframes agjump{0%{transform:translateY(0)}40%{transform:translateY(-8px) scale(1.04)}100%{transform:translateY(0)}}
@keyframes agshake{0%,100%{transform:translateX(0)}25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}
@keyframes agblink{0%,92%,100%{transform:scaleY(1)}95%{transform:scaleY(.1)}}
@keyframes agdot{0%,100%{opacity:.25}50%{opacity:1}}
@keyframes agwave{from{transform:rotate(-14deg)}to{transform:rotate(18deg)}}
@media (prefers-reduced-motion:reduce){.ag *{animation:none!important}}
.hd-av{display:inline-flex;align-items:center}
.ag-fab{position:fixed;right:max(14px,env(safe-area-inset-right,0px));bottom:max(16px,env(safe-area-inset-bottom,0px));z-index:50;width:62px;height:66px;padding:0;border:1.5px solid color-mix(in srgb,var(--c4) 55%,var(--line));border-radius:50%;background:var(--surface);box-shadow:0 8px 24px rgba(0,0,0,.25);display:grid;place-items:center;cursor:pointer;transition:transform .2s}
.ag-fab:hover,.ag-fab:focus-visible{transform:scale(1.07)}
.ag-fab[hidden],.ag-tip[hidden]{display:none}
.ag-tip{position:fixed;right:max(14px,env(safe-area-inset-right,0px));bottom:calc(max(16px,env(safe-area-inset-bottom,0px)) + 74px);z-index:50;max-width:min(260px,calc(100vw - 28px));padding:10px 12px;border:1px solid var(--line);border-radius:12px 12px 4px 12px;background:var(--surface);color:var(--fg);font:500 13px/1.4 var(--f-body);box-shadow:0 8px 24px rgba(0,0,0,.2);cursor:pointer}
.ag-ctx,.ag-btn{display:inline-flex;align-items:center;gap:6px}
.ag-ctx{height:34px;padding:0 12px 0 6px;border:1px solid color-mix(in srgb,var(--c4) 45%,var(--line));border-radius:99px;background:color-mix(in srgb,var(--c4) 8%,var(--surface));color:var(--fg);font:600 12.5px var(--f-body);cursor:pointer;white-space:nowrap}
.ag-ctx:hover,.ag-ctx:focus-visible{background:color-mix(in srgb,var(--c4) 16%,var(--surface))}
.asp-av{flex:none;padding:0;border:0;background:none;cursor:pointer;border-radius:50%}
.asp-h b{display:flex;flex-direction:column;line-height:1.15;flex:1 1 auto}
.asp-h b small{font:500 11px var(--f-body);color:var(--muted)}
.asm{display:flex;gap:8px;align-items:flex-start}
.asm-av{flex:none;margin-top:2px}
.ag-pick{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;padding:10px 12px;margin-bottom:10px;border:1px dashed var(--c4);border-radius:12px;background:color-mix(in srgb,var(--c4) 8%,var(--surface));font-size:13px}
/* personnalisation */
.ag-b{width:min(760px,100%)!important}
.ag-body{display:grid;grid-template-columns:200px 1fr;gap:16px;align-items:start}
.ag-prev{display:flex;flex-direction:column;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--raise)}
.ag-big{min-height:170px;display:grid;place-items:center}
.ag-name{display:flex;flex-direction:column;gap:4px;font:600 12px var(--f-body);color:var(--muted);width:100%}
.ag-name input{padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--fg);font:500 14px var(--f-body)}
.ag-moods,.ag-rand{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}
.ag-opts{display:flex;flex-direction:column;gap:12px;min-width:0}
.ag-row{display:flex;flex-direction:column;gap:6px}
.ag-row>span{font:600 11.5px var(--f-body);letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.ag-chips,.ag-pres{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ag-chip{padding:6px 11px;border:1px solid var(--line);border-radius:99px;background:var(--surface);color:var(--fg);font:500 13px var(--f-body);cursor:pointer}
.ag-chip[aria-pressed="true"]{border-color:var(--c4);background:color-mix(in srgb,var(--c4) 16%,var(--surface));font-weight:700}
.ag-sw{width:26px;height:26px;padding:0;border:2px solid var(--line);border-radius:50%;cursor:pointer}
.ag-sw[aria-pressed="true"]{border-color:var(--fg);box-shadow:0 0 0 2px var(--surface) inset}
.ag-chips input[type=color]{width:30px;height:30px;padding:0;border:1px solid var(--line);border-radius:50%;background:none;cursor:pointer}
.ag-pre{padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--surface);cursor:pointer;line-height:0}
.ag-pre:hover,.ag-pre:focus-visible{border-color:var(--c4)}
@media (max-width:640px){
  .ag-body{grid-template-columns:1fr}
  .ag-big{min-height:130px}
  .ag-fab{width:56px;height:60px;bottom:max(12px,env(safe-area-inset-bottom,0px))}
  .ag-tip{bottom:calc(max(12px,env(safe-area-inset-bottom,0px)) + 68px)}
}
/* ---------- agent humain : avatar, bandeau animé, aperçu ---------- */
.ag.hu{border-radius:50%;overflow:hidden}
.ag-svg.hu-b{overflow:hidden}
.hu-eyes{transform-box:fill-box;transform-origin:center;animation:agblink 5.5s infinite}
.hu-f .hu-eyes{animation:none}
.ag[data-m="work"] .hu-bd,.ag[data-m="think"] .hu-bd{transform-box:fill-box;transform-origin:50% 100%;animation:agtilt 1.8s ease-in-out infinite}
.ag[data-m="happy"] .hu-bd{transform-box:fill-box;transform-origin:50% 100%;animation:agjump .7s ease-out 2}
.ag[data-m="oops"] .hu-bd{transform-box:fill-box;transform-origin:50% 100%;animation:agshake .5s ease-in-out 2}
.ag-tip{display:flex;align-items:center;gap:8px}
.ag-tip-av{flex:none;line-height:0}
.asp-stg-ph{flex:1 1 100%;height:112px;margin:-10px -12px 0}
.asp-stage{--cw:52px;--dw:calc(var(--cw)*1.7);position:relative;flex:1 1 100%;order:-1;height:112px;margin:-10px -12px 0;width:calc(100% + 24px);overflow:hidden;background:var(--raise);border-bottom:1px solid var(--line);user-select:none;-webkit-user-select:none}
.stg-bg{position:absolute;inset:0;width:100%;height:100%}
.stg-wall{fill:color-mix(in srgb,var(--c4) 7%,var(--raise))}
.stg-floor{fill:color-mix(in srgb,var(--fg) 9%,var(--raise))}
.stg-line{fill:color-mix(in srgb,var(--fg) 14%,var(--raise))}
.stg-lineS{stroke:color-mix(in srgb,var(--fg) 28%,var(--raise));fill:none;stroke-width:2}
.stg-win{fill:color-mix(in srgb,#7dd3fc 30%,var(--surface));stroke:color-mix(in srgb,var(--fg) 25%,var(--raise));stroke-width:2}
.stg-sill{fill:color-mix(in srgb,var(--fg) 22%,var(--raise))}
.stg-frm{fill:color-mix(in srgb,var(--c4) 10%,var(--surface));stroke:color-mix(in srgb,var(--fg) 25%,var(--raise));stroke-width:2}
.agw{position:absolute;left:0;bottom:7px;width:var(--cw);z-index:2;touch-action:none;cursor:grab;will-change:transform}
.agw::before{content:"";position:absolute;left:6%;right:6%;bottom:-2px;height:6px;border-radius:50%;background:rgba(0,0,0,.2);filter:blur(1.2px)}
.asp-stage.agdrag .agw{cursor:grabbing}
.agw-c{position:relative;width:100%;aspect-ratio:100/162;line-height:0}
.agw-c .ag-svg{overflow:visible}
.agw-c.cr{display:flex;align-items:flex-end}
.agw-c.cr .ag{display:block;width:calc(var(--cw)*1.25)!important;height:calc(var(--cw)*1.4)!important;margin-left:calc(var(--cw)*-.125)}
.agx{position:absolute;display:none;pointer-events:none}
.agx-dots{left:76%;top:-6px;gap:3px}
.asp-stage[data-m="think"] .agx-dots,.asp-stage[data-m="work"] .agx-dots{display:flex}
.agx-dots u{display:block;text-decoration:none;width:5px;height:5px;border-radius:50%;background:var(--muted);animation:agdot 1.2s ease-in-out infinite}
.agx-dots u:nth-child(2){animation-delay:.2s;width:6px;height:6px;margin-top:-4px}
.agx-dots u:nth-child(3){animation-delay:.4s;width:7px;height:7px;margin-top:-8px}
.agx-sweat{left:78%;top:6px;width:7px;height:10px;border-radius:50% 50% 50% 50%/65% 65% 35% 35%;background:#7dd3fc;border:1px solid #38bdf8}
.asp-stage[data-m="oops"] .agx-sweat{display:block;animation:agdrop 1s ease-in infinite}
.agx-spark{inset:-10px -14px auto -14px;height:20px}
.asp-stage[data-m="happy"] .agx-spark{display:block}
.agx-spark u{display:block;text-decoration:none;position:absolute;width:8px;height:8px;background:#fbbf24;clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);animation:agspark .6s ease-in-out infinite alternate}
.agx-spark u:nth-child(1){left:0;top:6px}.agx-spark u:nth-child(2){left:50%;top:-4px;animation-delay:.2s;background:#f472b6}.agx-spark u:nth-child(3){right:0;top:8px;animation-delay:.35s;background:#38bdf8}
@keyframes agspark{from{transform:scale(.4) rotate(0);opacity:.4}to{transform:scale(1.25) rotate(40deg);opacity:1}}
@keyframes agdrop{0%{transform:translateY(-3px);opacity:0}30%{opacity:1}100%{transform:translateY(12px);opacity:0}}
.agx-say{display:block;left:60%;bottom:100%;margin-bottom:-4px;white-space:nowrap;padding:3px 8px;border-radius:10px 10px 10px 2px;background:var(--surface);border:1px solid var(--line);font:600 11px var(--f-body);color:var(--fg);opacity:0;transform:translateY(4px);transition:opacity .2s,transform .2s}
.agx-say.agon{opacity:1;transform:none}
.agw.agrt .agx-say{left:auto;right:60%;border-radius:10px 10px 2px 10px}
.agw-desk{position:absolute;bottom:4px;left:0;width:var(--dw);z-index:3;opacity:0;transform:translateY(6px);transition:opacity .3s,transform .3s;pointer-events:none;line-height:0}
.agw-desk svg{display:block;width:100%;height:auto}
.asp-stage.agsit .agw-desk{opacity:1;transform:none}
.stg-steam{animation:agdot 1.8s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.agx *,.agx,.stg-steam{animation:none!important}.agw-desk{transition:none}}
/* dialogue : aperçu en direct, onglets, vignettes */
.ag-b{width:min(880px,100%)!important}
.ag-body{grid-template-columns:240px minmax(0,1fr)}
.ag-prev{position:sticky;top:0;align-self:start;z-index:3}
.ag-pst{width:100%}
.ag-pstage{--cw:84px;flex:none;order:0;height:196px;margin:0;width:100%;border:1px solid var(--line);border-radius:12px;background:radial-gradient(ellipse at 50% 36%,color-mix(in srgb,var(--c4) 14%,var(--surface)),var(--raise) 72%)}
.ag-pstage .stg-bg{display:none}
.ag-pstage::after{content:"";position:absolute;left:0;right:0;bottom:0;height:22px;background:color-mix(in srgb,var(--fg) 8%,var(--raise));border-top:1px solid var(--line)}
.ag-pstage .agw{bottom:20px}
.ag-pstage .agw-desk{bottom:16px}
.ag-pstage .agx-dots{left:84%}
.ag-moods{width:100%}
.ag-moods .sm[aria-pressed="true"]{color:var(--fg);border-color:var(--c4);background:color-mix(in srgb,var(--c4) 16%,var(--surface));font-weight:700}
.ag-anim{font-size:12.5px;align-self:stretch}
.ag-tabs{display:flex;gap:4px;padding:3px;border:1px solid var(--line);border-radius:10px;background:var(--raise);width:fit-content;max-width:100%}
.ag-tab{padding:7px 16px;border:0;border-radius:8px;background:none;color:var(--fg);font:600 13.5px var(--f-body);cursor:pointer}
.ag-tab[aria-selected="true"]{background:var(--c4);color:#fff}
.ag-row>span.ag-rh{display:flex;align-items:center;justify-content:space-between;gap:8px;text-transform:none;letter-spacing:0}
.ag-hpres,.ag-ths{display:grid;grid-template-columns:repeat(auto-fill,minmax(62px,1fr));gap:6px}
.ag-hp,.ag-th{display:flex;flex-direction:column;align-items:center;gap:3px;padding:5px 2px 4px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--fg);cursor:pointer;line-height:1.1;min-width:0}
.ag-hp:hover,.ag-th:hover,.ag-hp:focus-visible,.ag-th:focus-visible{border-color:var(--c4)}
.ag-hp small,.ag-th small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:100%;overflow:hidden;text-align:center;font:500 10.5px/1.15 var(--f-body);color:var(--muted)}
.ag-hp[aria-pressed="true"],.ag-th[aria-pressed="true"]{border-color:var(--c4);box-shadow:0 0 0 2px color-mix(in srgb,var(--c4) 38%,transparent);background:color-mix(in srgb,var(--c4) 8%,var(--surface))}
.ag-hp .ag,.ag-th .ag{border-radius:11px}
.ag-cats{display:flex;gap:6px;overflow-x:auto;padding:2px 0 6px;scrollbar-width:thin}
.ag-cat{flex:none;padding:6px 12px;border:1px solid var(--line);border-radius:99px;background:var(--surface);color:var(--fg);font:600 12.5px var(--f-body);cursor:pointer;white-space:nowrap}
.ag-cat[aria-selected="true"]{background:var(--fg);color:var(--surface);border-color:var(--fg)}
.ag-cp{display:flex;flex-direction:column;gap:14px}
.ag-row>input[type=color]{width:30px;height:30px;padding:0;border:1px solid var(--line);border-radius:50%;background:none;cursor:pointer;align-self:flex-start}
@media (max-width:640px){
  #ag-dlg{padding:3vh 8px 8px}
  #ag-dlg .mdl-b{max-height:94vh;padding:14px}
  .ag-body{grid-template-columns:minmax(0,1fr);gap:10px}
  .ag-prev{padding:8px;gap:6px;top:-14px;box-shadow:0 8px 10px -8px rgba(0,0,0,.35)}
  .ag-pstage{--cw:50px;height:116px}
  .ag-pstage::after{height:16px}
  .ag-pstage .agw{bottom:14px}
  .ag-pstage .agw-desk{bottom:10px}
  .ag-name{flex-direction:row;align-items:center;gap:8px}
  .ag-name input{flex:1;min-width:0}
  .ag-moods{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;padding-bottom:2px}
  .ag-moods .sm{flex:none}
}
/* statistiques perso, Repousse IA */
.st-x2{width:26px;height:26px;border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:18px;line-height:1;cursor:pointer}
.st-x2:hover,.st-x2:focus-visible{background:var(--raise);color:var(--c1)}
.st-num{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:90px}
.st-num b{font:800 38px/1 var(--f-display)}
.st-num span{font-size:12px;color:var(--muted)}
.st-cu h3 small{font:500 11px var(--f-body);color:var(--muted);margin-left:4px}
.rp-grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:8px 0}
.rp-grid2 label,.rp-lab{display:flex;flex-direction:column;gap:4px;font:600 12px var(--f-body);color:var(--muted)}
.rp-grid2 select{padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--fg);font:400 14px var(--f-body)}
.rp-checks{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.rp-checks label{flex-direction:row;align-items:center;gap:8px;font:400 13.5px var(--f-body);color:var(--fg)}
.rp-st{margin:6px 0 0;font-size:13px;color:var(--muted)}
/* partage + modèle de départ */
.sh-link{display:flex;gap:8px}
.sh-link input{flex:1 1 auto;min-width:0;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--fg);font:500 13px var(--f-mono)}
#sh-dlg .mdl-f{justify-content:flex-start}
#sh-dlg .hint .lnk,.hint .lnk{border:0;background:none;color:var(--c3);text-decoration:underline;cursor:pointer;font:inherit;padding:0}
.st-bn{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(max(16px,env(safe-area-inset-bottom,0px)) + 72px);z-index:48;display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center;width:min(560px,calc(100vw - 24px));padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--fg);font:500 13px/1.4 var(--f-body);box-shadow:0 10px 30px rgba(0,0,0,.25)}
@media (min-width:641px){.st-bn{bottom:18px;left:18px;transform:none;width:min(520px,calc(100vw - 120px))}}

/* modules additionnels */
.xview{overflow:auto;background:var(--bg);color:var(--fg)}
.hx-toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 90px);transform:translateX(-50%);z-index:95;max-width:calc(100vw - 32px);padding:10px 16px;border-radius:12px;background:var(--fg);color:var(--bg);font:600 13px var(--f-body);box-shadow:0 10px 30px rgba(0,0,0,.3)}

/*CVM:BEGIN*/
/* ===== Mode CV (éditeur canevas) ===== */
#v-spaces.cvmon #sp-side,#v-spaces.cvmon #sp-rs,#v-spaces.cvmon .sb-open{display:none!important}
#sp-main.cvm-host{overflow:hidden!important;padding:0!important}
.cvm{--hs:11px;position:absolute;inset:0;display:flex;flex-direction:column;background:var(--bg);color:var(--fg);font:13px var(--f-body);min-width:0;-webkit-tap-highlight-color:transparent}
.cvm *{box-sizing:border-box}
.cvm button{font-family:inherit}
.cvm .cvm-i{flex:none;display:block}
.cvm-top{display:flex;align-items:center;gap:6px;padding:6px 10px;border-bottom:1px solid var(--line);background:var(--surface);flex:none;overflow-x:auto;scrollbar-width:none}
.cvm-top::-webkit-scrollbar{display:none}
.cvm-top .sp,.cvm-ctx .sp{flex:1 1 8px}
.cvm-name{flex:0 1 220px;min-width:90px;height:32px;padding:0 10px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--fg);font:700 14px var(--f-display)}
.cvm-name:hover{border-color:var(--line)}.cvm-name:focus{outline:2px solid var(--c3);background:var(--bg);border-color:transparent}
.cvm-g{display:inline-flex;align-items:center;gap:2px;padding:0 4px;border-left:1px solid var(--line);flex:none}
.cvm-g:first-of-type{border-left:0}
.cvm-b{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;min-width:32px;padding:0 8px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--fg);font:600 12.5px var(--f-body);cursor:pointer;white-space:nowrap;flex:none}
.cvm-b:hover:not(:disabled){background:color-mix(in srgb,var(--fg) 8%,transparent)}
.cvm-b:disabled{opacity:.35;cursor:default}
.cvm-b:focus-visible,.cvm button:focus-visible{outline:2px solid var(--c3);outline-offset:1px}
.cvm-b.on,.cvm-b[aria-pressed="true"]{background:color-mix(in srgb,var(--c3) 18%,transparent);color:var(--c3)}
.cvm-b.txt{padding:0 10px}
.cvm-b.prim{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.cvm-b.prim:hover:not(:disabled){background:var(--fg);opacity:.9}
.cvm-b.danger:hover{color:var(--c1)}
.cvm-b.danger.arm{background:var(--c1);color:var(--on-c)}
.cvm-b.big{height:44px;width:100%;justify-content:flex-start;padding:0 14px;border-color:var(--line);background:var(--bg);font-size:13.5px}
.cvm-b.big.prim{background:var(--fg);border-color:var(--fg)}
.cvm-b.lnk.has{color:var(--c2)}
.cvm-lstrip{display:flex;align-items:center;gap:6px;padding:5px 12px;border-bottom:1px solid var(--line);background:var(--raise);flex:none;overflow-x:auto;font-size:12px;color:var(--muted);white-space:nowrap}
.cvm-lstrip:empty{display:none}
.cvm-chip{height:24px;padding:0 10px;border:1px solid var(--line);border-radius:99px;background:var(--surface);color:var(--fg);font:600 11.5px var(--f-body);cursor:pointer}
.cvm-chip:hover{border-color:var(--c3)}.cvm-chip.add{border-style:dashed;color:var(--muted)}
.cvm-ctx{display:flex;align-items:center;gap:4px;padding:5px 10px;min-height:42px;border-bottom:1px solid var(--line);background:var(--surface);flex:none;overflow-x:auto;scrollbar-width:none;position:relative;z-index:6}
.cvm-ctx::-webkit-scrollbar{display:none}
.cvm-ctx .hint{font-size:12px;color:var(--muted);white-space:nowrap}
.cvm-cs{height:32px;max-width:150px;padding:0 6px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);font:600 12.5px var(--f-body)}
.cvm-sz{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:8px;background:var(--bg);flex:none}
.cvm-sz input{width:46px;height:30px;border:0;background:transparent;color:var(--fg);text-align:center;font:700 13px var(--f-mono);-moz-appearance:textfield}
.cvm-sz input::-webkit-outer-spin-button,.cvm-sz input::-webkit-inner-spin-button{display:none}
.cvm-sz .cvm-b{height:30px;min-width:28px;padding:0 4px}
.cvm-sep{width:1px;height:22px;background:var(--line);margin:0 4px;flex:none}
.cvm-cw{position:relative;flex:none}
.cvm-cw .cvm-cc{display:block;width:30px;height:30px;border-radius:8px;border:2px solid var(--line);cursor:pointer}
.cvm-cw .sw{display:none;position:absolute;left:0;top:36px;z-index:20;width:236px;padding:8px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 10px 30px rgba(0,0,0,.25)}
.cvm-cw:hover .sw,.cvm-cw:focus-within .sw{display:flex;flex-wrap:wrap;gap:6px}
.cvm-cw::after{content:"";position:absolute;left:0;right:0;top:100%;height:8px}
.cvm-main{flex:1;min-height:0;display:flex;position:relative}
.cvm-lib{width:292px;flex:none;border-right:1px solid var(--line);background:var(--surface);display:flex;flex-direction:column;min-height:0}
.cvm-props{width:290px;flex:none;border-left:1px solid var(--line);background:var(--surface);overflow:auto;padding:4px 12px 40px;min-height:0;overscroll-behavior:contain}
.cvm-pclose,.cvm-lclose{display:none}
.cvm-tabs{display:flex;border-bottom:1px solid var(--line);flex:none}
.cvm-tabs button{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 2px 7px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);font:700 11px var(--f-body);cursor:pointer}
.cvm-tabs button.on{color:var(--fg);border-bottom-color:var(--c3)}
.cvm-lb{overflow:auto;padding:10px 12px 40px;flex:1;min-height:0;overscroll-behavior:contain}
.cvm-lb h5{margin:16px 0 6px;font:700 10.5px var(--f-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.cvm-lb h5:first-child{margin-top:2px}
.cvm-note{margin:8px 0;font-size:12px;line-height:1.45;color:var(--muted)}
.cvm-tpls{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.cvm-tpl{display:flex;flex-direction:column;gap:5px;padding:6px;border:1.5px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);cursor:pointer;text-align:left}
.cvm-tpl:hover{border-color:var(--c3)}.cvm-tpl.on{border-color:var(--c3);box-shadow:0 0 0 2px color-mix(in srgb,var(--c3) 25%,transparent)}
.cvm-tpl .ph{display:grid;place-items:center;min-height:130px;background:#f1f2f4;border-radius:5px;overflow:hidden}
.cvm-tpl b{font:700 12.5px var(--f-body)}
.cvm-tpl small{font-size:11px;color:var(--muted);line-height:1.3}
.cvm-tpl .ld{width:22px;height:22px;border-radius:50%;border:3px solid #c9ced6;border-top-color:#6b7280;animation:cvmspin .8s linear infinite}
@keyframes cvmspin{to{transform:rotate(360deg)}}
.cvm-th{position:relative;overflow:hidden;background:#fff;box-shadow:0 1px 5px rgba(0,0,0,.25);flex:none}
.cvm-ths{position:absolute;left:0;top:0;transform-origin:0 0;pointer-events:none}
.cvm-ck{display:flex;align-items:flex-start;gap:8px;margin:8px 0;font-size:12.5px;cursor:pointer;line-height:1.35}
.cvm-ck input{margin-top:2px;width:16px;height:16px;accent-color:var(--c3);flex:none}
.cvm-ck small{display:block;color:var(--muted);font-size:11px}
.cvm-ck.prof{padding:8px 10px;margin:0 0 10px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.cvm-addg{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}
.cvm-addg button{min-height:40px;padding:6px 8px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--fg);cursor:pointer;font:600 12px var(--f-body);text-align:left;display:flex;align-items:center}
.cvm-addg button:hover{border-color:var(--c3)}
.cvm-addg.sh,.cvm-icg{grid-template-columns:repeat(5,1fr)}
.cvm-addg.sh button{justify-content:center;padding:4px;color:var(--fg)}
.cvm-icg{display:grid;gap:5px}
.cvm-icg button{display:grid;place-items:center;height:38px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);cursor:pointer}
.cvm-icg button:hover,.cvm-icg button.on{border-color:var(--c3);color:var(--c3)}
.cvm-phb{display:grid;gap:8px}
.cvm-frames{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.cvm-frames button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:5px 2px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--muted);cursor:pointer;font:600 9.5px var(--f-body);line-height:1.1;text-align:center}
.cvm-frames button:hover,.cvm-frames button.on{border-color:var(--c3);color:var(--c3)}
.cvm-frames svg{width:30px;height:30px}
.cvm-lay{display:flex;flex-direction:column;gap:3px}
.cvm-lay .ly{display:flex;align-items:center;gap:4px;padding:3px 4px 3px 6px;border:1px solid transparent;border-radius:8px;cursor:pointer}
.cvm-lay .ly:hover{background:color-mix(in srgb,var(--fg) 6%,transparent)}
.cvm-lay .ly.on{background:color-mix(in srgb,var(--c3) 14%,transparent);border-color:color-mix(in srgb,var(--c3) 40%,transparent)}
.cvm-lay .ly.hd .n{opacity:.45;text-decoration:line-through}
.cvm-lay .t{flex:none;width:22px;height:22px;display:grid;place-items:center;border-radius:6px;background:var(--raise);font:800 11px var(--f-mono);color:var(--muted)}
.cvm-lay .n{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px}
.cvm-lay button{width:26px;height:26px;display:grid;place-items:center;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer}
.cvm-lay button:hover{background:color-mix(in srgb,var(--fg) 10%,transparent);color:var(--fg)}
/* stage */
.cvm-stage{flex:1;min-width:0;position:relative;background:color-mix(in srgb,var(--fg) 9%,var(--bg));overflow:hidden}
.cvm-sc{position:absolute;inset:18px 0 0 18px;overflow:auto;touch-action:none;overscroll-behavior:contain;outline:none}
.cvm-stage.norul .cvm-sc{inset:0}
.cvm-rl{position:absolute;background:var(--surface);z-index:5}
#cvm-rh{top:0;left:18px;height:18px;border-bottom:1px solid var(--line);cursor:row-resize}
#cvm-rv{top:18px;left:0;width:18px;border-right:1px solid var(--line);cursor:col-resize}
.cvm-stage:not(.norul)::before{content:"";position:absolute;left:0;top:0;width:18px;height:18px;background:var(--surface);border-right:1px solid var(--line);border-bottom:1px solid var(--line);z-index:6}
.cvm-pgs{display:flex;flex-direction:column;align-items:center;gap:14px;padding:18px 28px 120px;width:max-content;min-width:100%}
.cvm-pw{display:flex;flex-direction:column;align-items:stretch}
.cvm-ph{display:flex;align-items:center;gap:3px;margin:0 0 5px;font:700 11px var(--f-mono);color:var(--muted);min-height:24px}
.cvm-ph b{font-weight:800;letter-spacing:.04em}
.cvm-ph .warn{margin-left:8px;color:var(--c5);font-weight:700}
.cvm-ph .sp{flex:1}
.cvm-ph button{width:26px;height:24px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer;font-size:13px}
.cvm-ph button:hover:not(:disabled){background:color-mix(in srgb,var(--fg) 10%,transparent);color:var(--fg)}
.cvm-ph button:disabled{opacity:.3;cursor:default}
.cvm-ph button.arm{background:var(--c1);color:var(--on-c)}
.cvm-pw.act .cvm-ph b{color:var(--c3)}
.cvm-pgz{position:relative;flex:none;box-shadow:0 2px 16px rgba(0,0,0,.28)}
.cvm-pw.act .cvm-pgz{box-shadow:0 0 0 2px color-mix(in srgb,var(--c3) 55%,transparent),0 2px 16px rgba(0,0,0,.28)}
.cvm-pg{position:absolute;left:0;top:0;transform-origin:0 0;overflow:visible;font-size:15px;line-height:1.4;text-align:left;letter-spacing:normal;text-transform:none;font-weight:400;font-style:normal}
.cvm-pg.cvm-st{position:relative;overflow:hidden;transform:none}
.cvm-addpg{margin:6px 0 0;padding:9px 18px;border:1.5px dashed var(--muted);border-radius:10px;background:transparent;color:var(--muted);font:700 12.5px var(--f-body);cursor:pointer}
.cvm-addpg:hover{color:var(--fg);border-color:var(--fg)}
.cvm-e{position:absolute;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.cvm:not(.prev) .cvm-e:hover:not(.lk):not(.ed){outline:calc(1px*var(--k,1)) solid color-mix(in srgb,var(--c3) 70%,transparent)}
.cvm-e.lk{cursor:default}
.cvm-e.ed{outline:calc(1.5px*var(--k,1)) solid var(--c3)}
.cvm-tx{width:100%;word-wrap:break-word;overflow-wrap:break-word;white-space:pre-wrap;outline:none;min-height:1em;margin:0}
.cvm-tx div{min-height:1em}
.cvm-tx.ph:empty::before{content:"Texte";opacity:.35}
.cvm-tx.ed{-webkit-user-select:text;user-select:text;cursor:text;caret-color:currentColor}
.cvm-tx .b,.cvm-tx.cvm-ul>div{position:relative;padding-left:1.05em}
.cvm-tx .b::before,.cvm-tx.cvm-ul>div::before{content:"\2022";position:absolute;left:.1em;color:var(--bu,currentColor)}
.cvm-tx .m{color:var(--cm)}.cvm-tx .a{color:var(--ca)}
.cvm-sh{width:100%;height:100%}
.cvm-svg{position:absolute;overflow:visible;pointer-events:none;display:block}
.cvm-ic{width:100%;height:100%;display:flex;align-items:center;justify-content:center}
.cvm-skw{width:100%}
.cvm-sk .nm{display:flex;justify-content:space-between;margin-bottom:3px;line-height:1.2}
.cvm-sk .skt{overflow:hidden;width:100%}.cvm-sk .skt i{display:block;height:100%}
.cvm-sk.r{display:flex;justify-content:space-between;align-items:center;line-height:1.25}
.cvm-sk .dt{display:inline-flex}.cvm-sk .dt i{display:inline-block}
.cvm-tgw{display:flex;flex-wrap:wrap;line-height:1.2}.cvm-tgw span{display:inline-block;white-space:nowrap}
.cvm-tlw{position:relative}.cvm-tlw .sp{position:absolute;top:.7em;bottom:.7em;width:2px;opacity:.9}
.cvm-tlr{display:grid;column-gap:10px;position:relative}
.cvm-tlr .dd{text-align:right;padding-top:.15em;line-height:1.3}
.cvm-tlr .dt{display:flex;justify-content:center;padding-top:.4em}.cvm-tlr .dt i{display:block;width:12px;height:12px;border-radius:50%}
.cvm-tlr .cc b{display:block;line-height:1.3}
.cvm-qr,.cvm-qrph{width:100%;height:100%}.cvm-qrph{display:grid;place-items:center;border:2px dashed #aaa;color:#888;font:700 14px sans-serif}
.cvm-ov,.cvm-gl,.cvm-gdl{position:absolute;inset:0;pointer-events:none}
.cvm-ov{z-index:30}.cvm-gl{z-index:40}.cvm-gdl{z-index:35}
.cvm-sel{position:absolute;outline:calc(1.5px*var(--k)) solid var(--c3)}
.cvm-sel.lk{outline-style:dashed}.cvm-sel .lkb{position:absolute;right:calc(-4px*var(--k));top:calc(-24px*var(--k));font-size:calc(14px*var(--k))}
.cvm-sel.crop{outline:calc(2px*var(--k)) dashed var(--c5)}
.cvm-so{position:absolute;outline:calc(1px*var(--k)) dashed var(--c3)}
.cvm-sel .hd{position:absolute;pointer-events:auto;width:calc(var(--hs)*var(--k));height:calc(var(--hs)*var(--k));margin:calc(var(--hs)*var(--k)/-2) 0 0 calc(var(--hs)*var(--k)/-2);background:#fff;border:calc(1.5px*var(--k)) solid var(--c3);border-radius:calc(3px*var(--k));touch-action:none}
.cvm-sel .hd::after{content:"";position:absolute;inset:calc(-7px*var(--k))}
.cvm .hd.nw{left:0;top:0;cursor:nwse-resize}.cvm .hd.n{left:50%;top:0;cursor:ns-resize}.cvm .hd.ne{left:100%;top:0;cursor:nesw-resize}.cvm .hd.e{left:100%;top:50%;cursor:ew-resize}
.cvm .hd.se{left:100%;top:100%;cursor:nwse-resize}.cvm .hd.s{left:50%;top:100%;cursor:ns-resize}.cvm .hd.sw{left:0;top:100%;cursor:nesw-resize}.cvm .hd.w{left:0;top:50%;cursor:ew-resize}
.cvm-sel .hd.rot{left:50%;top:calc(-28px*var(--k));border-radius:50%;cursor:grab;background:var(--c3)}
.cvm-sel .hd.rot::before{content:"";position:absolute;left:50%;top:100%;width:calc(1.5px*var(--k));height:calc(18px*var(--k));background:var(--c3);transform:translateX(-50%)}
.cvm-sel .dim{position:absolute;left:50%;top:100%;transform:translate(-50%,calc(14px*var(--k)));white-space:nowrap;background:var(--c3);color:var(--on-c);font:700 calc(11px*var(--k)) var(--f-mono);padding:calc(2px*var(--k)) calc(7px*var(--k));border-radius:calc(5px*var(--k));pointer-events:none}
.cvm-sel .dim:empty{display:none}
.cvm-mq{position:absolute;border:calc(1px*var(--k)) solid var(--c3);background:color-mix(in srgb,var(--c3) 12%,transparent)}
.cvm-gl .gl{position:absolute;background:#f0245f}.cvm-gl .gl.v{width:calc(1px*var(--k));margin-left:calc(-.5px*var(--k))}.cvm-gl .gl.h{height:calc(1px*var(--k));margin-top:calc(-.5px*var(--k))}
.cvm-gl .gs{position:absolute;background:#f0245f}.cvm-gl .gs.x{height:calc(1px*var(--k))}.cvm-gl .gs.y{width:calc(1px*var(--k))}
.cvm-gl .gs::before,.cvm-gl .gs::after{content:"";position:absolute;background:#f0245f}
.cvm-gl .gs.x::before{left:0;top:calc(-4px*var(--k));width:calc(1px*var(--k));height:calc(9px*var(--k))}.cvm-gl .gs.x::after{right:0;top:calc(-4px*var(--k));width:calc(1px*var(--k));height:calc(9px*var(--k))}
.cvm-gl .gs.y::before{top:0;left:calc(-4px*var(--k));height:calc(1px*var(--k));width:calc(9px*var(--k))}.cvm-gl .gs.y::after{bottom:0;left:calc(-4px*var(--k));height:calc(1px*var(--k));width:calc(9px*var(--k))}
.cvm-gl .gs b{position:absolute;left:50%;top:50%;transform:translate(-50%,-130%);background:#f0245f;color:#fff;font:700 calc(10px*var(--k)) var(--f-mono);padding:calc(1px*var(--k)) calc(5px*var(--k));border-radius:calc(4px*var(--k))}
.cvm-gl .gs.y b{transform:translate(8%,-50%)}
.cvm-mg{position:absolute;pointer-events:none;border:calc(1px*var(--k)) dashed rgba(90,110,200,.35);z-index:1}
.cvm-grid{position:absolute;inset:0;pointer-events:none;z-index:1;background-image:linear-gradient(to right,rgba(60,110,220,.22) calc(1px*var(--k)),transparent 0),linear-gradient(to bottom,rgba(60,110,220,.22) calc(1px*var(--k)),transparent 0)}
.cvm-gdl .gd{position:absolute;pointer-events:auto;background:#12b0c8}.cvm-gdl .gd.v{top:-9999px;bottom:-9999px;width:calc(1px*var(--k))}.cvm-gdl .gd.h{left:-9999px;right:-9999px;height:calc(1px*var(--k))}
.cvm-gdl .gd::before{content:"";position:absolute}.cvm-gdl .gd.v::before{left:calc(-5px*var(--k));right:calc(-5px*var(--k));top:0;bottom:0;cursor:col-resize}.cvm-gdl .gd.h::before{top:calc(-5px*var(--k));bottom:calc(-5px*var(--k));left:0;right:0;cursor:row-resize}
.cvm-gdl .gd.del{background:#f0245f}
.cvm-welc{position:absolute;inset:0;overflow:auto;background:color-mix(in srgb,var(--fg) 9%,var(--bg));z-index:9;display:flex;justify-content:center;padding:26px 16px 60px}
.cvm-welc[hidden]{display:none}
.cvm-welc .wc{width:100%;max-width:980px}
.cvm-welc h3{margin:0 0 4px;font:800 24px var(--f-display)}
.cvm-welc p{margin:0 0 18px;color:var(--muted)}
.cvm-welc .row{display:flex;align-items:center;gap:14px;margin-top:20px;flex-wrap:wrap}
.cvm-tpls.big{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}
.cvm-tpls.big .ph{min-height:150px;padding:8px;background:color-mix(in srgb,var(--fg) 6%,var(--bg))}
/* panneau propriétés */
.cvm-ph4{margin:12px 0 4px;font:800 14px var(--f-display)}
.cvm-sec{border-bottom:1px solid var(--line);padding:2px 0}
.cvm-sec>summary{cursor:pointer;list-style:none;padding:10px 0;font:700 11px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);display:flex;justify-content:space-between}
.cvm-sec>summary::-webkit-details-marker{display:none}
.cvm-sec>summary::after{content:"▸";transition:transform .15s}.cvm-sec[open]>summary::after{transform:rotate(90deg)}
.cvm-sec .bd{padding:0 0 12px;display:flex;flex-direction:column;gap:9px}
.cvm-f{display:flex;flex-direction:column;gap:3px;font-size:11.5px;color:var(--muted);min-width:0}
.cvm-f input[type=number],.cvm-f input[type=text],.cvm-f select,.cvm-it input,.cvm-it textarea,.cvm-props textarea,.cvm-lq{height:32px;padding:0 8px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);font:500 13px var(--f-body);width:100%;min-width:0}
.cvm-props textarea,.cvm-it textarea{height:auto;padding:6px 8px;resize:vertical}
.cvm-f.rg{display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:8px}
.cvm-f.rg span{grid-column:1}.cvm-f.rg output{grid-column:2;font:700 11px var(--f-mono);color:var(--fg)}.cvm-f.rg input{grid-column:1/3;width:100%;accent-color:var(--c3)}
.cvm-f input[type=color]{width:100%;height:32px;padding:2px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}
.cvm-grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cvm-cf .l{display:block;font-size:11.5px;color:var(--muted);margin-bottom:4px}
.cvm-cf .sw,.cvm-cw .sw{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.cvm .tk{width:26px;height:26px;border-radius:7px;border:2px solid var(--line);padding:0;cursor:pointer;position:relative;flex:none}
.cvm .tk.on{border-color:var(--fg);box-shadow:0 0 0 2px var(--surface) inset}
.cvm .tk.none{background:var(--bg);color:var(--muted);display:grid;place-items:center;font-size:13px}
.cvm .tk.cu{background:conic-gradient(red,yellow,lime,aqua,blue,magenta,red);overflow:hidden}
.cvm .tk.cu input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}
.cvm-acts{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.cvm-acts .cvm-b{border-color:var(--line);background:var(--bg)}
.cvm-stl{display:flex;gap:3px;flex-wrap:wrap}.cvm-stl .cvm-b{border-color:var(--line);background:var(--bg);width:34px;padding:0}
.cvm-al{display:flex;flex-wrap:wrap;gap:3px}.cvm-al .cvm-b{border:1px solid var(--line);background:var(--bg);width:34px;padding:0}
.cvm-ctx .cvm-al{flex-wrap:nowrap}
.cvm-it{display:flex;align-items:center;gap:6px;margin-bottom:6px}
.cvm-it input[type=range]{width:90px;flex:none;accent-color:var(--c3)}
.cvm-it button{width:28px;height:28px;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--fg);cursor:pointer;flex:none}
.cvm-it.tl{flex-direction:column;align-items:stretch;padding:8px;border:1px solid var(--line);border-radius:10px;gap:5px}.cvm-it.tl .r1{display:flex;gap:4px}
.cvm-pal{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
.cvm-pal .pal{display:flex;height:34px;padding:0;border:2px solid var(--line);border-radius:9px;overflow:hidden;cursor:pointer;background:transparent}
.cvm-pal .pal i{flex:1}.cvm-pal .pal.on{border-color:var(--fg)}
.cvm-adv{margin-top:8px}.cvm-adv summary{cursor:pointer;font-size:12px;color:var(--muted);margin-bottom:6px}
.cvm-adv .cvm-f{flex-direction:row;align-items:center;justify-content:space-between;margin:4px 0}.cvm-adv input[type=color]{width:60px}
.cvm-fp{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}
.cvm-fp .fp{display:flex;flex-direction:column;align-items:flex-start;padding:7px 10px;border:1.5px solid var(--line);border-radius:9px;background:var(--bg);color:var(--fg);cursor:pointer}
.cvm-fp .fp b{font-size:20px;line-height:1.1}.cvm-fp .fp span{font-size:10.5px;color:var(--muted)}.cvm-fp .fp.on{border-color:var(--c3)}
/* menus, modale, toast */
.cvm-menu{position:absolute;z-index:60;min-width:240px;max-width:min(320px,calc(100% - 16px));padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 14px 40px rgba(0,0,0,.3)}
.cvm-menu[hidden],.cvm-modal[hidden],.cvm-toast[hidden]{display:none}
.cvm-menu button{display:flex;flex-direction:column;align-items:flex-start;gap:1px;width:100%;padding:8px 10px;border:0;border-radius:8px;background:transparent;color:var(--fg);font:600 13px var(--f-body);cursor:pointer;text-align:left}
.cvm-menu button:hover{background:color-mix(in srgb,var(--fg) 8%,transparent)}
.cvm-menu button small{font-weight:400;color:var(--muted);font-size:11.5px}
.cvm-menu .mh{display:block;padding:6px 10px;font:700 11px var(--f-mono);color:var(--muted);letter-spacing:.05em}
.cvm-menu hr{border:0;border-top:1px solid var(--line);margin:4px 0}
.cvm-menu .cvk{display:inline-block;width:16px;color:var(--c2);font-style:normal}
.cvm-menu button:has(.ck){flex-direction:row;align-items:center}
.cvm-modal{position:absolute;inset:0;z-index:70;background:rgba(5,10,20,.5);display:grid;place-items:center;padding:14px}
.cvm-mc{width:100%;max-width:520px;max-height:100%;display:flex;flex-direction:column;gap:8px;padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 20px 60px rgba(0,0,0,.45)}
.cvm-mc .hint{margin:0;font-size:12.5px;color:var(--muted);line-height:1.45}
.cvm-ll{overflow:auto;min-height:80px;max-height:46vh;display:flex;flex-direction:column;gap:5px}
.cvm-lr{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.cvm-lr label{flex:1;min-width:0;display:flex;align-items:center;gap:10px;cursor:pointer}
.cvm-lr input{width:18px;height:18px;accent-color:var(--c3);flex:none}
.cvm-lr .n{display:flex;flex-direction:column;min-width:0}.cvm-lr .n b,.cvm-lr .n small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cvm-lr small{color:var(--muted);font-size:11.5px}
.cvm-lr .cvm-b{border:1px solid var(--line);height:28px;font-size:11.5px}
.cvm-mf{display:flex;justify-content:flex-end}
.cvm-toast{position:absolute;left:50%;bottom:74px;transform:translateX(-50%);z-index:80;max-width:calc(100% - 24px);padding:9px 16px;border-radius:99px;background:var(--fg);color:var(--bg);font:600 12.5px var(--f-body);box-shadow:0 8px 28px rgba(0,0,0,.35);pointer-events:none;text-align:center}
.cvm-bar{display:none}
.cvm-measure{position:fixed;left:-30000px;top:0;pointer-events:none}
#cvm-print{display:none}
@media print{
  body.cvm-printing>*:not(#cvm-print){display:none!important}
  body.cvm-printing #cvm-print{display:block!important;position:static}
  body.cvm-printing,body.cvm-printing html{background:#fff!important}
  body.cvm-printing #cvm-print *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .cvm-prp{break-after:page;page-break-after:always;overflow:hidden}
}
/* intégrations Espaces / Documents / candidatures */
.cvm-newb{padding:12px 20px;border:1.5px solid var(--sc,var(--c3));border-radius:12px;background:color-mix(in srgb,var(--sc,var(--c3)) 12%,var(--surface));color:var(--fg);font:800 14px var(--f-display);cursor:pointer}
.cvm-cardth{display:block;margin-top:6px}.cvm-cl{color:var(--c2)}
.cvm-dc .dc-open{display:flex;flex-direction:row;gap:12px;align-items:flex-start}
.cvm-dcth{flex:none}.cvm-dct{display:flex;flex-direction:column;gap:3px;min-width:0;text-align:left}
.cvm-pills{display:flex;flex-wrap:wrap;gap:5px;margin:2px 12px}.cvm-pills .lk2{border:1px solid var(--line);background:var(--bg);border-radius:99px;padding:2px 9px;font:600 11.5px var(--f-body);text-decoration:none;color:var(--fg);cursor:pointer}.cvm-pills .lk2:hover{border-color:var(--fg)}
.cvm-al2{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:6px}
.cvm-al2 li{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--line);border-radius:10px;background:var(--bg);flex-wrap:wrap}
.cvm-al2 .n{flex:1;min-width:110px;display:flex;flex-direction:column}.cvm-al2 .n small{color:var(--muted);font-size:11.5px}
.cvm-alt{flex:none}
.ap-cvl h3 small{color:var(--muted);font-weight:600}
@media (max-width:900px){
  .cvm{--hs:20px;position:fixed;inset:0;z-index:60;height:100dvh}
  .cvm-top{padding:5px 8px;gap:4px}
  .cvm-top .cvm-b span{display:none}
  .cvm-top .cvm-b.txt span{display:inline;max-width:70px;overflow:hidden;text-overflow:ellipsis}
  .cvm-name{flex:1 1 90px;font-size:13.5px}
  .cvm-top .lnk.has span{display:inline;max-width:22px;overflow:hidden}
  .cvm-lstrip{padding:4px 8px}
  .cvm-ctx{order:3;border-top:1px solid var(--line);border-bottom:0}
  .cvm-main{order:2}
  .cvm-bar{order:4;display:flex;border-top:1px solid var(--line);background:var(--surface);flex:none;padding-bottom:env(safe-area-inset-bottom,0)}
  .cvm-bar button{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;padding:7px 2px 6px;border:0;background:transparent;color:var(--muted);font:700 10.5px var(--f-body);cursor:pointer;min-height:52px}
  .cvm-bar button.on{color:var(--c3)}
  .cvm-lib,.cvm-props{position:absolute;left:0;right:0;bottom:0;width:auto;max-height:60%;height:auto;z-index:50;transform:translateY(105%);transition:transform .22s ease;border:1px solid var(--line);border-radius:16px 16px 0 0;box-shadow:0 -10px 34px rgba(0,0,0,.3);visibility:hidden}
  .cvm.sh-lib .cvm-lib,.cvm.sh-props .cvm-props{transform:none;visibility:visible}
  .cvm-props{padding-top:0}
  .cvm-pclose,.cvm-lclose{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:var(--surface);z-index:2;padding:8px 0 4px;margin:0}
  .cvm-lclose{position:absolute;right:6px;top:4px;width:32px;height:32px;border:0;background:transparent;color:var(--muted);font-size:22px;justify-content:center}
  .cvm-pclose button{width:32px;height:32px;border:0;background:transparent;font-size:22px;color:var(--muted)}
  .cvm-tabs{padding-right:34px}
  .cvm-tpls{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.cvm-tpls.big{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cvm-tpl .ph{min-height:110px}
  .cvm-sc{inset:0!important}
  .cvm-pgs{padding:10px 8px 150px}
  .cvm-toast{bottom:126px;max-width:calc(100% - 24px)}
  .cvm-cw .sw{position:fixed;left:8px;right:8px;top:auto;bottom:112px;width:auto}
  .cvm-welc{padding:14px 10px 40px}
  .cvm-ph button{width:32px;height:30px}
  .cvm-ctx .cvm-b{height:36px;min-width:36px}
  .cvm-cs{height:36px}
  .cvm-frames{grid-template-columns:repeat(5,1fr)}
}
@media (max-width:420px){.cvm-tpls{grid-template-columns:repeat(2,minmax(0,1fr))}.cvm-frames,.cvm-icg,.cvm-addg.sh{grid-template-columns:repeat(4,1fr)}}
@media (pointer:coarse){.cvm{--hs:20px}.cvm-b{min-height:36px}}
.ap-cvl .row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.ap-cvl select{min-height:34px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--fg);padding:0 8px;font:inherit;max-width:100%}

/* ---- galerie de modèles, ATS, objets, icônes importées ---- */
.cvm-gal{position:absolute;inset:0;z-index:75;background:var(--bg);color:var(--fg);display:flex;flex-direction:column;min-height:0}
.cvm-gal[hidden]{display:none}
.cvm-gh2{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--surface);flex:none}
.cvm-gh2 .gtt{font:800 15px var(--f-head);margin-right:auto;white-space:nowrap}
.cvm-gh2 .gb{display:none}
.cvm-gh2 input[type=search]{flex:0 1 300px;min-width:0;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);font:inherit}
.cvm-gch{display:flex;gap:6px;padding:8px 12px;overflow-x:auto;scrollbar-width:none;flex:none;border-bottom:1px solid var(--line)}
.cvm-gch::-webkit-scrollbar{display:none}
.cvm-gch button{flex:none;border:1px solid var(--line);background:var(--bg);color:var(--fg);padding:6px 12px;border-radius:99px;cursor:pointer;font:600 12.5px var(--f-body)}
.cvm-gch button small{opacity:.6;margin-left:3px}
.cvm-gch button.on{background:var(--c3);border-color:var(--c3);color:#fff}
.cvm-gch.sm{padding:4px 0 8px;border:0}.cvm-gch.sm button{padding:4px 10px;font-size:11.5px}
.cvm-galb{width:100%;justify-content:center;margin-bottom:8px}
.cvm-gbd{display:grid;grid-template-columns:minmax(0,1fr) 360px;flex:1;min-height:0}
.cvm-gg{overflow:auto;padding:14px;display:grid;grid-template-columns:repeat(auto-fill,minmax(176px,1fr));gap:12px;align-content:start}
.cvm-gg .cvm-tpl{position:relative}
.cvm-gg .cvm-tpl .ph{min-height:190px;padding:6px;background:color-mix(in srgb,var(--fg) 6%,var(--bg))}
.cvm-gg .cur{position:absolute;top:10px;right:10px;font:700 10px var(--f-body);background:var(--c3);color:#fff;padding:2px 7px;border-radius:99px;font-style:normal}
.cvm-gd{border-left:1px solid var(--line);overflow:auto;padding:14px;display:flex;flex-direction:column;gap:10px;background:var(--surface)}
.cvm-gpv{display:grid;place-items:center;min-height:260px;background:color-mix(in srgb,var(--fg) 7%,var(--bg));border-radius:10px;padding:10px;position:relative}
.cvm-gpv .pgs{position:absolute;bottom:6px;font-size:11px;color:var(--muted)}
.cvm-gd h4{margin:0;font:800 16px var(--f-head)}.cvm-gd h4 .cat{font:600 11px var(--f-body);color:var(--muted);margin-left:6px}
.cvm-glab{font:700 12px var(--f-body)}.cvm-glab small{font-weight:400;color:var(--muted)}
.cvm-gps{display:grid;grid-template-columns:repeat(auto-fill,minmax(30px,1fr));gap:6px}
.cvm-gps .gp{aspect-ratio:1;border:2px solid var(--line);border-radius:50%;padding:2px;background:var(--bg);cursor:pointer;display:grid;place-items:center}
.cvm-gps .gp i{display:block;width:100%;height:100%;border-radius:50%;border:1px solid rgba(128,128,128,.3)}
.cvm-gps .gp.on{border-color:var(--c3);box-shadow:0 0 0 2px color-mix(in srgb,var(--c3) 30%,transparent)}
.cvm-gps .gp-d{font-size:14px;color:var(--c3)}
.cvm-gact{display:flex;flex-direction:column;gap:8px}
.cvm-gact .cvm-b.big{justify-content:center;white-space:normal;text-align:center}
@media (max-width:760px){
  .cvm-gbd{grid-template-columns:1fr}
  .cvm-gd{display:none;border:0}
  .cvm-gal.det .cvm-gg{display:none}.cvm-gal.det .cvm-gd{display:flex}
  .cvm-gal.det .cvm-gh2 .gb{display:inline-flex}.cvm-gal.det .cvm-gh2 .gtt,.cvm-gal.det .cvm-gh2 input,.cvm-gal.det .cvm-gh2 [data-cvm=galr]{display:none}
  .cvm-gal.det .cvm-gh2 .p-close{margin-left:auto}
  .cvm-gh2 input[type=search]{flex:1 1 90px}.cvm-gh2 .gtt{display:none}.cvm-gh2 [data-cvm=galr] span{display:none}
  .cvm-gg{grid-template-columns:repeat(2,minmax(0,1fr));padding:10px;gap:8px}
  .cvm-gg .cvm-tpl .ph{min-height:150px}
}
.cvm-ats .cvm-atsc{width:min(760px,100%);max-height:100%;display:flex;flex-direction:column;gap:10px;overflow:hidden}
.cvm-atsk{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px}
.cvm-atsk b{margin-right:6px}
.cvm-atsk span{padding:3px 9px;border-radius:99px;border:1px solid var(--line)}
.cvm-atsk .ok{color:#15803d;border-color:#15803d55;background:#15803d12}.cvm-atsk .ko{color:#b45309;border-color:#b4530955;background:#b4530914}.cvm-atsk .in{color:var(--muted)}
:root[data-theme=dark] .cvm-atsk .ok{color:#4ade80}:root[data-theme=dark] .cvm-atsk .ko{color:#fbbf24}
.cvm-atst{flex:1;min-height:200px;width:100%;resize:none;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);font:12.5px/1.5 ui-monospace,Menlo,Consolas,monospace;white-space:pre;overflow:auto}
.cvm-atsb{display:flex;gap:8px;flex-wrap:wrap}
.cvm-uic{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:8px 0}
.cvm-uic .uc{position:relative;aspect-ratio:1}
.cvm-uic .uc>button:first-child{width:100%;height:100%;border:1.5px solid var(--line);border-radius:8px;background:#fff;padding:6px;cursor:pointer;display:grid;place-items:center}
.cvm-uic img{max-width:100%;max-height:100%;object-fit:contain}
.cvm-uic .uc .x{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--fg);font:700 13px/1 var(--f-body);cursor:pointer;padding:0}
.cvm-prevb span{font-weight:700}
@media (max-width:760px){.cvm-top .cvm-prevb span{display:inline;max-width:none}}
.cvm-lib .cvm-tpls{grid-template-columns:repeat(2,minmax(0,1fr))}.cvm-lib .cvm-tpl .ph{min-height:0;overflow:hidden}
.cvm-gbd{grid-template-rows:minmax(0,1fr)}.cvm-gg,.cvm-gd{min-height:0}.cvm-gd>*{flex:none}
.cvm-gal{overflow:clip}
.cvm-top .cvm-b.cvm-prevb span{display:inline;max-width:none;overflow:visible}
@media (max-width:760px){.cvm-gal.det .cvm-gch{display:none}}
@media (max-width:760px){.cvm-gact{position:sticky;bottom:-14px;background:var(--surface);padding:10px 0 14px;margin-top:4px;border-top:1px solid var(--line)}}

/*CVM:END*/

/* droits retirés par l'administrateur (Modules & droits) */
html[data-no~="mm"] #mm-sw,html[data-no~="cv"] [data-dc="newcv"],html[data-no~="cv"] [data-dc="fill"]{display:none!important}

/* ---- Assistant candidatures (espace de travail) ---- */
.apw{align-items:flex-start;padding:5vh 12px 12px}
.apw .apw-b{width:min(880px,100%);max-height:90vh;padding:0;gap:0;overflow:hidden}
.apw .mdl-h{padding:14px 18px;border-bottom:1px solid var(--line)}
.apw-sc{overflow:auto;padding:6px 18px 18px;display:flex;flex-direction:column;gap:6px;min-height:0}
.apw-s{padding:10px 0 12px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:8px}.apw-s:last-child{border-bottom:0}
.apw-s h4{margin:2px 0 0}
.apw-s .row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.apw-s select{max-width:100%;min-height:36px;padding:6px 10px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);font:inherit}
.apw-of{display:flex;gap:8px;align-items:flex-start}
.apw-of textarea{flex:1;min-width:0;resize:vertical;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);font:400 14px/1.45 var(--f-body)}
.apw-ref{margin:0}.apw-warn{margin:0;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--c4,#d97706) 14%,transparent);color:var(--fg);font-size:13.5px}
.apw-msg{margin:0;padding:8px 10px;border-radius:10px;background:var(--raise);font-size:13.5px}
.apw-j{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:8px;background:var(--surface)}
.apw-j.sel{border-color:var(--c1,#6c5ce7)}
.apw-jh{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.apw-chs{display:flex;gap:6px;flex-wrap:wrap}
.apw-ch{font-size:12px;padding:2px 8px;border-radius:99px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}
.apw-ch.ok{color:#15803d;border-color:currentColor}.apw-ch.err{color:#b91c1c;border-color:currentColor}.apw-ch.run{color:var(--c1,#6c5ce7);border-color:currentColor}
.apw-ready{color:#15803d;font-weight:700}
.apw-rv{display:flex;flex-direction:column;gap:8px;border-top:1px dashed var(--line);padding-top:8px}
.apw-doc{max-height:340px;overflow:auto;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);font-size:13.5px;line-height:1.45}
.apw-doc h5{margin:10px 0 2px;font:700 12px var(--f-body);letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.apw-doc p{margin:0 0 6px}.apw-d{color:var(--muted)}
.apw-cvt{font-size:15px}
.apw-fl{padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--c4,#d97706) 14%,transparent);font-size:13.5px}.apw-fl ul{margin:4px 0 0;padding-left:18px}
.apw-lt{width:100%;resize:vertical;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);font:400 14px/1.55 var(--f-body)}
.dc-badge{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:99px;font:700 11px var(--f-body);background:color-mix(in srgb,var(--c1,#6c5ce7) 16%,transparent);color:var(--c1,#6c5ce7);vertical-align:middle}
.dc-card.ref{box-shadow:0 0 0 2px var(--c1,#6c5ce7) inset}
@media (max-width:700px){.apw{padding:0}.apw .apw-b{width:100%;max-height:100dvh;height:100dvh;border-radius:0}.apw-sc{padding:6px 12px 24px}}

/* assistant : fenêtre compacte au-dessus de la bulle, ouverture/fermeture fluides au survol */
.asp{bottom:calc(max(16px,env(safe-area-inset-bottom,0px)) + 76px);width:min(400px,calc(100vw - 28px));height:min(680px,calc(100dvh - 112px));transform:translateY(14px) scale(.96);transform-origin:100% 100%;transition:transform .22s cubic-bezier(.2,.8,.2,1),opacity .16s ease;box-shadow:0 14px 44px rgba(0,0,0,.24)}
.asp.show{transform:none}
.ag-fab{transition:transform .2s,box-shadow .2s}
.ag-fab.on{box-shadow:0 0 0 3px color-mix(in srgb,var(--c4) 45%,transparent),0 8px 24px rgba(0,0,0,.25)}
@media (min-width:1100px){body.as-pin .asp{bottom:0;height:auto;width:430px}}
@media (max-width:700px){.asp{bottom:0;left:0;right:0;width:auto;height:min(88dvh,780px);transform:translateY(40px)}.asp.show{transform:none}}
@media (prefers-reduced-motion:reduce){.asp,.ag-fab{transition:none}}


/* ================= Mindmaps ================= */
#v-map #stage{top:46px}
@media (min-width:900px){#v-map #panel{top:46px}}
.mm-sw{position:absolute;top:0;left:0;right:0;height:46px;z-index:12;display:flex;align-items:center;justify-content:center;padding:0 8px;background:var(--bg);border-bottom:1px solid var(--line)}
.mm-seg{display:inline-flex;gap:3px;padding:3px;border-radius:10px;background:var(--raise);border:1px solid var(--line);max-width:100%;overflow-x:auto;scrollbar-width:none}
.mm-seg button{border:0;border-radius:8px;padding:5px 12px;background:transparent;color:var(--muted);font:600 13px var(--f-body);cursor:pointer;white-space:nowrap}
.mm-seg button[aria-selected="true"],.mm-seg button[aria-pressed="true"]{background:var(--surface);color:var(--fg);box-shadow:0 1px 3px rgba(0,0,0,.18)}
.mm-seg small{font:600 10.5px var(--f-mono);color:var(--muted);margin-left:2px}
.mm-seg button:focus-visible,.mm-chip:focus-visible,.mm-rl:focus-visible,.mm-open:focus-visible,.mm-n:focus-visible,.mm-tpl:focus-visible,.mm-sty:focus-visible{outline:2px solid var(--fg);outline-offset:2px}
#mm-root{position:absolute;top:46px;left:0;right:0;bottom:0;z-index:11;background:var(--bg);display:flex;flex-direction:column;min-width:0}
.mm-page{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain}
.mm-wrap{max-width:1180px;margin:0 auto;padding:20px 18px 70px}
.mm-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px 20px;margin:0 0 16px}
.mm-head h2{margin:0 0 4px;font:800 26px var(--f-display)}
.mm-head p{margin:0;max-width:60ch;color:var(--muted)}
.mm-ha{display:flex;flex-wrap:wrap;gap:8px}
.lnk{border:0;background:transparent;padding:0;color:var(--c3);font:inherit;text-decoration:underline;text-underline-offset:2px;cursor:pointer;text-align:left}
.mm-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.mm-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border:1.5px solid var(--bc,var(--line));border-radius:99px;background:var(--surface);color:var(--fg);font:600 13px var(--f-body);cursor:pointer}
.mm-chip i{width:9px;height:9px;border-radius:3px;background:var(--bc,var(--muted))}
.mm-chip small{font:500 10.5px var(--f-mono);color:var(--muted)}
.mm-chip[aria-pressed="true"]{background:var(--bc,var(--fg));color:var(--on-c,var(--bg));border-color:var(--bc,var(--fg))}
.mm-chip[aria-pressed="true"] small{color:inherit;opacity:.85}
.mm-chip[aria-pressed="true"] i{background:var(--on-c)}
.mm-chip[data-th=""][aria-pressed="true"],.mm-chip[aria-pressed="true"]:not([style]){background:var(--fg);color:var(--bg);border-color:var(--fg)}
.mm-chip.sm2{padding:3px 10px;font-size:12px;border-style:dashed}
.mm-gh{display:flex;align-items:center;gap:9px;margin:22px 0 10px;font:800 17px var(--f-display)}
.mm-gh i{width:12px;height:12px;border-radius:4px;background:var(--bc)}
.mm-gh small{font:500 11px var(--f-mono);color:var(--muted)}
.mm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:14px}
.mm-card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow);overflow:hidden}
.mm-open{display:flex;flex-direction:column;gap:6px;width:100%;padding:0 0 10px;border:0;background:transparent;color:var(--fg);text-align:left;font:inherit;cursor:pointer}
.mm-open b{padding:0 12px;font:700 15px var(--f-body);overflow-wrap:anywhere}
.mm-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;padding:0 12px;font:500 10.5px var(--f-mono);color:var(--muted)}
.mm-tag{display:inline-flex;align-items:center;gap:5px;padding:1px 8px;border:1px solid var(--bc);border-radius:99px;color:var(--fg);font:600 10.5px var(--f-body)}
.mm-tag i{width:7px;height:7px;border-radius:2px;background:var(--bc)}
.mm-tw{height:130px;border-bottom:1px solid var(--line);background:var(--mbg)}
.mm-th{display:block;width:100%;height:100%}
.mm-ca{display:flex;gap:6px;padding:0 10px 10px;margin-top:auto}
.mm-empty{max-width:520px;margin:40px auto;padding:26px;border:1px dashed var(--line);border-radius:16px;text-align:center}
.mm-empty h3{margin:0 0 6px;font:800 20px var(--f-display)}.mm-empty p{margin:0 0 14px;color:var(--muted)}
.mm-none{color:var(--muted);padding:6px 0}
/* bibliothèque */
.mm-lw{display:flex;gap:18px;max-width:1280px;margin:0 auto;padding:18px 18px 70px;min-width:0}
.mm-rail{flex:0 0 220px;display:flex;flex-direction:column;gap:4px;align-self:flex-start;position:sticky;top:0}
.mm-rail h3{margin:0 0 4px;font:700 11px var(--f-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.mm-rl{display:flex;align-items:center;gap:8px;padding:7px 10px;border:0;border-radius:9px;background:transparent;color:var(--fg);font:600 13.5px var(--f-body);cursor:pointer;text-align:left}
.mm-rl i{width:10px;height:10px;border-radius:3px;background:var(--bc)}
.mm-rl small{margin-left:auto;font:500 10.5px var(--f-mono);color:var(--muted)}
.mm-rl:hover{background:var(--raise)}
.mm-rl[aria-pressed="true"]{background:var(--surface);box-shadow:inset 3px 0 0 var(--bc,var(--fg)),0 1px 3px rgba(0,0,0,.12)}
.mm-lm{flex:1;min-width:0}
.mm-lt{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px}
.mm-lt input[type=search]{flex:1 1 200px;min-width:0;padding:8px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--fg);font:400 14px var(--f-body)}
.mm-cnt{margin:0 0 8px;color:var(--muted);font:500 12px var(--f-mono)}
.mm-th-s{margin:0 0 6px}
.mm-dm{margin:0 0 10px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.mm-dm>summary{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 12px;cursor:pointer;list-style:none}
.mm-dm>summary::-webkit-details-marker{display:none}
.mm-dm>summary::before{content:"";width:7px;height:7px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(-45deg);transition:transform .15s}
.mm-dm[open]>summary::before{transform:rotate(45deg)}
.mm-dt{flex:1;min-width:0;font:700 15px var(--f-body);overflow-wrap:anywhere}
.mm-dm small{font:500 10.5px var(--f-mono);color:var(--muted)}
.mm-nl{display:flex;flex-direction:column;padding:0 6px 8px}
.mm-n{display:flex;align-items:flex-start;gap:10px;width:100%;padding:7px 8px 7px calc(8px + var(--d,0)*16px);border:0;border-radius:8px;background:transparent;color:var(--fg);text-align:left;font:inherit;cursor:pointer}
.mm-n:hover{background:var(--raise)}
.mm-n>i{flex:none;width:9px;height:9px;margin-top:6px;border-radius:50%;background:var(--bc)}
.mm-nt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.mm-nt b{font:600 14px var(--f-body);overflow-wrap:anywhere}
.mm-nt em{font-style:normal;font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.mm-tgs{display:flex;flex-wrap:wrap;gap:4px}.mm-tgs u{text-decoration:none;padding:0 7px;border-radius:99px;background:var(--raise);border:1px solid var(--line);font:500 10.5px var(--f-mono);color:var(--muted)}
.mm-n>small{flex:none;max-width:40%;font:500 10.5px var(--f-mono);color:var(--muted);text-align:right}
.mm-rel{margin:6px 8px 0;border-top:1px dashed var(--line);padding-top:6px}
.mm-rel summary{cursor:pointer;font:600 12px var(--f-mono);color:var(--muted)}
.mm-rr{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:3px 0;font-size:13.5px}.mm-rr span{color:var(--muted);font:500 11px var(--f-mono)}
.mm-mn{margin:6px 12px 10px;color:var(--muted);font-size:13.5px;white-space:pre-wrap}
@media (max-width:760px){.mm-lw{flex-direction:column;padding:12px 12px 60px}.mm-rail{position:static;flex:none;flex-direction:row;flex-wrap:wrap;align-self:stretch}.mm-rail h3{width:100%}.mm-n>small{display:none}}
/* éditeur */
#mm-ed-wrap{flex:1;min-height:0;display:flex;flex-direction:column}
.mm-bar{flex:none;display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:7px 10px;overflow-x:auto;border-bottom:1px solid var(--line);background:var(--surface);white-space:nowrap;scrollbar-width:thin}
.mm-bar .btn{height:34px;flex:none;font:600 12.5px var(--f-body)}
.mm-bar .btn:disabled{opacity:.4}
.mm-bar select,.mm-title{height:34px;flex:none;padding:0 8px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--fg);font:600 12.5px var(--f-body)}
.mm-title{width:200px;font-weight:700;font-size:14px}
.mm-sep{flex:none;width:1px;height:22px;background:var(--line);margin:0 2px}
.mm-body{flex:1;min-height:0;display:flex;position:relative}
#mm-stage{position:relative;flex:1;min-width:0;overflow:hidden;background-color:var(--mbg);background-image:radial-gradient(circle,var(--line) 1px,transparent 1.3px);background-size:26px 26px}
#mm-svg{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}
#mm-svg.grab{cursor:grabbing}
#mm-stage.linking #mm-svg{cursor:crosshair}
.mm-hint{position:absolute;top:10px;left:50%;transform:translateX(-50%);z-index:3;padding:6px 14px;border-radius:99px;background:var(--fg);color:var(--bg);font:600 12.5px var(--f-body)}
.mm-empty2{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;color:var(--muted);text-align:center;padding:30px;font:500 14px var(--f-body)}
.mm-cap{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);z-index:4;width:min(560px,calc(100% - 24px));padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow);color:var(--fg)}
.cp-t{font:700 16px var(--f-body)}.cp-t b{font:600 11px var(--f-mono);color:var(--muted);margin-right:8px}
.cp-d{margin:6px 0 0;color:var(--muted);font-size:14px;white-space:pre-wrap}
.cp-b{display:flex;gap:8px;margin-top:10px}
#mm-ins{display:none;flex:none;width:320px;overflow:auto;overscroll-behavior:contain;padding:14px;border-left:1px solid var(--line);background:var(--surface)}
#mm-ins.open{display:block}
@media (max-width:899px){#mm-ins{position:absolute;left:0;right:0;bottom:0;width:auto;max-height:52%;border-left:0;border-top:1px solid var(--line);border-radius:16px 16px 0 0;box-shadow:0 -10px 30px rgba(0,0,0,.2);z-index:6}}
.mi-h{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 10px}.mi-h b{font:800 16px var(--f-display)}
.mi-p{margin:0 0 10px;color:var(--muted);font-size:13.5px}
.mi-f{display:flex;flex-direction:column;gap:3px;margin:0 0 10px;font:600 10.5px var(--f-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);min-width:0}
.mi-f input,.mi-f textarea,.mi-r select,#mm-ins select{width:100%;min-width:0;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);font:400 14px var(--f-body);text-transform:none;letter-spacing:0}
.mi-f textarea{resize:vertical;line-height:1.45}
.mi-f input[type=range]{padding:0;accent-color:var(--fg)}
.mi-f input:focus,.mi-f textarea:focus,#mm-ins select:focus{outline:2px solid var(--fg);outline-offset:1px}
.mi-r{display:flex;gap:8px;align-items:flex-end;margin:0 0 10px}.mi-r>*{flex:1;min-width:0}.mi-r .mi-f{margin:0}
.mi-l{margin:12px 0 5px;font:700 10.5px var(--f-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.mm-segs{display:flex;flex-wrap:wrap;gap:4px}
.mm-segs button{padding:5px 9px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);font:600 12px var(--f-body);cursor:pointer}
.mm-segs button[aria-pressed="true"]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.mm-sws{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.mm-swb{width:26px;height:26px;border-radius:50%;border:2px solid transparent;background:var(--bc);cursor:pointer;padding:0}
.mm-swb.none{background:var(--bg);border-color:var(--line);color:var(--muted);font:700 11px var(--f-mono)}
.mm-swb[aria-pressed="true"]{border-color:var(--fg);box-shadow:0 0 0 2px var(--surface) inset}
.mm-swc{width:26px;height:26px;border-radius:50%;overflow:hidden;border:1px dashed var(--muted);display:inline-block;position:relative}
.mm-swc input{position:absolute;inset:-6px;width:40px;height:40px;padding:0;border:0;cursor:pointer;background:none}
.mm-ics{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin:0 0 8px}
.mm-ics button{display:grid;place-items:center;height:32px;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--fg);cursor:pointer;font-size:14px;padding:0}
.mm-ics button svg{width:18px;height:18px}
.mm-ics button[aria-pressed="true"]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.mi-acts{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 0}
.mi-help{margin:16px 0 0;padding:10px 12px;border-radius:10px;background:var(--raise);font-size:13px;color:var(--muted)}
.mi-help b{display:block;margin-bottom:4px;color:var(--fg)}.mi-help ul{margin:0;padding-left:18px}.mi-help li{margin:2px 0}
.mmx-ta{position:absolute;z-index:5;padding:6px 8px;border:2px solid var(--fg);border-radius:10px;background:var(--surface);color:var(--fg);font-family:var(--f-body);font-weight:600;text-align:center;resize:none;line-height:1.3;box-shadow:var(--shadow);outline:none}
/* modale */
.mm-modal{position:absolute;inset:0;z-index:30;display:grid;place-items:center;padding:14px;background:rgba(7,12,19,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.mm-dlg{width:min(680px,100%);max-height:100%;overflow:auto;padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 24px 60px rgba(0,0,0,.4)}
.mm-dlg h3{margin:0 0 12px;font:800 20px var(--f-display)}
.mm-f{display:flex;flex-direction:column;gap:4px;margin:0 0 12px;font:600 11px var(--f-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);min-width:0}
.mm-f input,.mm-f select,.mm-f textarea{padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--fg);font:400 14.5px var(--f-body);text-transform:none;letter-spacing:0;width:100%;min-width:0}
.mm-f input:focus,.mm-f select:focus,.mm-f textarea:focus{outline:2px solid var(--fg);outline-offset:1px}
.mm-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media (max-width:520px){.mm-row{grid-template-columns:1fr}}
.mm-sug{display:flex;flex-wrap:wrap;gap:6px;margin:-4px 0 12px}
.mm-lab{margin:6px 0 6px;font:700 11px var(--f-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.mm-tpls{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,180px),1fr));gap:8px;margin:0 0 12px}
.mm-tpl{display:flex;flex-direction:column;gap:2px;padding:9px 11px;border:1.5px solid var(--line);border-radius:11px;background:var(--bg);color:var(--fg);text-align:left;font:inherit;cursor:pointer}
.mm-tpl b{font:700 13.5px var(--f-body)}.mm-tpl span{font-size:12px;color:var(--muted)}
.mm-tpl[aria-pressed="true"],.mm-sty[aria-pressed="true"]{border-color:var(--fg);box-shadow:0 0 0 1px var(--fg)}
.mm-stys{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,100px),1fr));gap:8px;margin:0 0 12px}
.mm-sty{display:flex;flex-direction:column;gap:6px;padding:6px;border:1.5px solid var(--line);border-radius:11px;background:var(--bg);color:var(--fg);font:inherit;cursor:pointer}
.mm-sty>span{display:flex;gap:4px;align-items:center;justify-content:center;height:34px;border-radius:7px;background:var(--mbg)}
.mm-sty>span i{width:18px;height:11px;border-radius:5px;border:1.6px solid var(--c3);background:var(--msf)}
.mm-sty>span i:nth-child(2){border-color:var(--c1);background:var(--c1)}.mm-sty>span i:nth-child(3){border-color:var(--c2)}
.mm-sty b{font:600 11.5px var(--f-body);text-align:center}
.mm-dact{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}
.mmx-err{margin:0 0 8px;color:var(--c1);font-size:13.5px}
.mm-p{margin:0 0 12px;color:var(--muted);font-size:14px}
.mm-tl{display:flex;flex-direction:column;gap:6px;margin:0 0 10px}
.mm-tr{display:flex;align-items:center;gap:8px}
.mm-tr input{flex:1;min-width:0;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);font:400 14px var(--f-body)}
.mm-tr small{font:500 10.5px var(--f-mono);color:var(--muted);white-space:nowrap}
.mm-sw2,.mm-tr .mm-sw{width:24px;height:24px;border-radius:50%;border:2px solid var(--surface);box-shadow:0 0 0 1px var(--line);background:var(--bc);cursor:pointer;padding:0;flex:none}
.mm-tr.add{margin-top:6px}
/* ----- styles de cartes ----- */
[class*="mm-st-"]{--mbg:var(--bg);--msf:var(--surface)}
.mm-st-neon{--bg:#050a12;--surface:#0b1626;--raise:#0a1320;--fg:#d8f3ff;--muted:#7b93ad;--line:#16304a;--on-c:#04101a;--c1:#ff4d6d;--c2:#2dffb0;--c3:#4da3ff;--c4:#b57bff;--c5:#ffb02e;--c6:#25e6ff;--c7:#ff5fd0;--c8:#e6f1ff;--shadow:0 8px 24px rgba(0,0,0,.5)}
.mm-st-blue{--bg:#0e3a73;--surface:#0e3a73;--raise:#0b3163;--fg:#eaf3ff;--muted:#a9c4e8;--line:#2f67ad;--on-c:#0e3a73;--c1:#ffd166;--c2:#7fffd4;--c3:#ffffff;--c4:#ff9ecb;--c5:#ffb86b;--c6:#9be7ff;--c7:#ffa6e0;--c8:#eaf3ff;--mfont:var(--f-mono);--mfd:var(--f-mono);--msf:transparent;--shadow:0 8px 24px rgba(0,0,0,.4)}
.mm-st-sketch{--bg:#fbf7ee;--surface:#fffdf7;--raise:#f4efe2;--fg:#2b2a27;--muted:#7b7667;--line:#d9d2bf;--on-c:#fffdf7;--c1:#c0392b;--c2:#2f8f5b;--c3:#2c6fbb;--c4:#7a4bb5;--c5:#b9770e;--c6:#168aa1;--c7:#c2467f;--c8:#2b2a27;--mfont:'Caveat','Comic Sans MS',cursive;--mfd:'Caveat','Comic Sans MS',cursive;--shadow:0 6px 18px rgba(80,60,20,.15)}
.mm-st-soft{--bg:#f4f1fb;--surface:#ffffff;--raise:#ece7f8;--fg:#2a2540;--muted:#6d6788;--line:#ded8ee;--on-c:#ffffff;--c1:#e5484d;--c2:#2fa56b;--c3:#3b6fe0;--c4:#8a5cf0;--c5:#e08a1a;--c6:#1aa3bf;--c7:#d6409f;--c8:#2a2540;--shadow:0 6px 18px rgba(80,60,160,.12)}
.mm-st-mono{--bg:#f6f6f4;--surface:#ffffff;--raise:#ececea;--fg:#111111;--muted:#666666;--line:#d4d4d0;--on-c:#ffffff;--c1:#111;--c2:#333;--c3:#555;--c4:#777;--c5:#222;--c6:#444;--c7:#666;--c8:#000;--shadow:0 4px 14px rgba(0,0,0,.1)}
#mm-stage.mm-st-blue{background-image:linear-gradient(rgba(255,255,255,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.1) 1px,transparent 1px);background-size:24px 24px}
#mm-stage.mm-st-neon{background-image:linear-gradient(rgba(77,163,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(77,163,255,.07) 1px,transparent 1px);background-size:32px 32px}
#mm-stage.mm-st-sketch{background-image:radial-gradient(circle,rgba(120,100,60,.22) 1px,transparent 1.2px)}
#mm-stage.mm-st-soft,#mm-stage.mm-st-mono{background-image:radial-gradient(circle,var(--line) 1px,transparent 1.3px)}
#mm-stage[class*="mm-st-"]{color:var(--fg)}
/* nœuds */
.mn{cursor:pointer;outline:none;transition:opacity .2s}
.mn .sh{fill:var(--surface);stroke:var(--bc);stroke-width:var(--msw,1.8px);stroke-linejoin:round}
.mn .sh2{fill:none;stroke:var(--bc);stroke-width:1.4}
.mn.d0 .sh{stroke-width:3px}
.mn.fl .sh{fill:var(--bc)}.mn.fl .sh2{stroke:var(--on)}
.mn text{font-family:var(--mfont,var(--f-body));font-weight:600;fill:var(--fg);text-anchor:middle;pointer-events:none}
.mn.d0 text{font-family:var(--mfd,var(--f-display));font-weight:800}
.mn.fl text{fill:var(--on)}
.mn.tx text{fill:var(--bc)}
.mn .ico{stroke:var(--bc);pointer-events:none}.mn.fl .ico{stroke:var(--on)}
.mn.zn{cursor:default}
.mn.zn .sh{fill:color-mix(in srgb,var(--bc) 8%,transparent);stroke-dasharray:8 6;stroke-width:1.6px;pointer-events:visibleStroke;cursor:move}
.mn.zn text.zl{text-anchor:start;fill:var(--bc);font-family:var(--f-mono);text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.mn.sel .sh{stroke-width:3.4px;filter:drop-shadow(0 0 8px var(--bc))}
.mn.hit .sh{filter:drop-shadow(0 0 10px var(--bc))}
.mn.dim,.mx.dim{opacity:.16}
.mn:hover .sh{filter:drop-shadow(0 0 5px var(--bc))}
.stp circle{fill:var(--fg);stroke:var(--surface);stroke-width:2}.stp text{fill:var(--bg)!important;font:700 10px var(--f-mono)!important}
.lkb circle{fill:var(--surface);stroke:var(--bc);stroke-width:1.5}.lkb path{stroke:var(--bc);fill:none;stroke-width:1.4}
.nb{fill:var(--fg);stroke:var(--surface);stroke-width:1.5}
.tg{cursor:pointer}.tg circle{fill:var(--surface);stroke:var(--bc);stroke-width:1.6}.tg text{font:600 10px var(--f-mono)!important;fill:var(--fg)!important}
.mx .eh{fill:none;stroke:transparent;stroke-width:16px;cursor:pointer}
.mx .eb{fill:none;stroke:var(--bc);opacity:.78;stroke-linecap:round}
.mx .ah{fill:var(--bc);stroke:none;opacity:.95}
.mx.sel .eb{opacity:1;filter:drop-shadow(0 0 5px var(--bc))}
.mx .el text{font:600 11px var(--f-mono);fill:var(--fg);text-anchor:middle;paint-order:stroke;stroke:var(--bg);stroke-width:5px;stroke-linejoin:round;pointer-events:none}
.lh{cursor:crosshair}.lh circle{fill:var(--fg);stroke:var(--bg);stroke-width:2}.lh path{stroke:var(--bg);stroke-width:2;fill:none}
.rz{cursor:nwse-resize}.rz rect{fill:var(--surface);stroke:var(--fg);stroke-width:1.6}
.lkl{stroke:var(--fg);stroke-dasharray:6 5;fill:none;stroke-width:2}.lkd{fill:var(--fg)}
.mm-st-neon .mn .sh{fill:color-mix(in srgb,var(--bc) 12%,var(--surface));filter:drop-shadow(0 0 4px var(--bc))}
.mm-st-neon .mn.fl .sh{fill:var(--bc)}
.mm-st-neon .mx .eb{filter:drop-shadow(0 0 4px var(--bc))}
.mm-st-blue .mn .sh{fill:transparent;stroke-width:1.4px}.mm-st-blue .mn.fl .sh{fill:var(--bc)}.mm-st-blue .mn text{font-weight:500}
.mm-st-sketch .mn .sh,.mm-st-sketch .mx .eb{filter:url(#mm-rough)}
.mm-st-sketch .mn text{font-weight:700}
.mm-st-soft .mn .sh{fill:color-mix(in srgb,var(--bc) 16%,var(--surface));stroke:none}.mm-st-soft .mn.fl .sh{fill:var(--bc)}
.mm-st-soft .mn.zn .sh{stroke:var(--bc)}
.mm-st-mono .mn .sh{stroke-width:1.5px}
#mm-stage.noanim *{animation:none!important}
@media (max-width:899px){.mm-bar{flex-wrap:nowrap}}
@media (max-width:600px){.mm-sw{padding:0 6px}.mm-seg button{padding:5px 9px;font-size:12.5px}.mm-wrap{padding:14px 12px 60px}.mm-title{width:130px}}

/* ====== phase 2 : appareils, icônes, simulateur ====== */
.ico{stroke:currentColor}
.ico .f{fill:currentColor;fill-opacity:.18}
.ico .s{fill:currentColor;stroke:none}
.mn .ico{color:var(--bc)}
.mn.dv .hit0{rx:12px}
.mn.dv:hover .hit0{fill:color-mix(in srgb,var(--bc) 7%,transparent)}
.mn.dv.sel .hit0{stroke:var(--bc);stroke-width:1.6px;stroke-dasharray:5 4;fill:color-mix(in srgb,var(--bc) 10%,transparent)}
.mn.dv.sel .sh,.mn.dv.sel .ico{filter:drop-shadow(0 0 6px var(--bc))}
.mn.dv .sh{fill:color-mix(in srgb,var(--bc) 12%,var(--surface))}
.mn text.dt{font-weight:700}
.mn text.sb{font:500 9.5px var(--f-mono);fill:var(--muted);letter-spacing:0}
.mn text.emo{fill:initial;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-weight:400}
.mn.im .imf{fill:var(--surface);stroke:var(--line);stroke-width:1px}
.mn.im.sel .imf{stroke:var(--bc);stroke-width:2.4px;filter:drop-shadow(0 0 6px var(--bc))}
.mn.off .ico,.mn.off image,.mn.off .sh,.mn.off text{opacity:.38;filter:grayscale(1)}
.led{cursor:pointer}
.led .lb{fill:var(--surface);stroke:var(--line);stroke-width:1.4px}
.led .ld{fill:#2bcf6b}
.led.ledon .ld{animation:ledb 1.5s steps(2,jump-none) infinite;filter:drop-shadow(0 0 3px #2bcf6b)}
.led.ledoff .ld{fill:#e5483d}
.led:hover .lb{stroke:var(--fg)}
@keyframes ledb{50%{opacity:.35}}
.mx .eb2{fill:none;stroke:var(--bc);opacity:.3;stroke-linecap:round;pointer-events:none}
.mx.down .eb{opacity:.7}
.mx .mkb{fill:var(--surface);stroke:var(--bc);stroke-width:1.4px}
.mx .mk path,.mx .mk rect{stroke:var(--bc);fill:none;stroke-width:1.5px}.mx .mk .s{fill:var(--bc);stroke:none}
.mx.down .mk path{stroke:var(--c1)}
.mx text.pt{font:600 9.5px var(--f-mono);fill:var(--fg);text-anchor:middle;paint-order:stroke;stroke:var(--bg);stroke-width:3.5px;stroke-linejoin:round;pointer-events:none}
.mx text.pt.pip{fill:var(--muted);font-weight:500}
#mm-sim{pointer-events:none}
#mm-sim .pdu rect{fill:var(--bc);stroke:var(--bg);stroke-width:1.5px}
#mm-sim .pdu path{stroke:var(--bg);stroke-width:1.4px}
#mm-sim .pdu text{font:700 10px var(--f-mono);fill:var(--fg);text-anchor:middle;paint-order:stroke;stroke:var(--bg);stroke-width:3.5px}
#mm-sim .pdu{filter:drop-shadow(0 0 5px var(--bc))}
#mm-sim .pdu.q{opacity:.75}
#mm-sim .pdu.bad rect{fill:var(--c1)}
#mm-sim .pdu .xx{stroke:#fff;stroke-width:2.6px;fill:none}
.mn.simhit .sh,.mn.simhit .ico,.mn.simhit .hit0{filter:drop-shadow(0 0 10px #2bcf6b)}
.mn.simbad .sh,.mn.simbad .ico,.mn.simbad .hit0{filter:drop-shadow(0 0 12px #e5483d)}
.mn.simbad.dv .hit0{fill:rgba(229,72,61,.14)}
/* barre */
.btn.prim2{background:var(--c3);color:var(--on-c);border-color:var(--c3)}
.btn[aria-pressed="true"]#mm-tinfo,.btn[aria-pressed="true"]#mm-tsnap{background:var(--fg);color:var(--bg)}
/* inspecteur */
.mi-tabs{display:flex;gap:4px;margin:0 0 12px;padding:3px;border-radius:10px;background:var(--raise)}
.mi-tabs button{flex:1;padding:6px 8px;border:0;border-radius:8px;background:transparent;color:var(--muted);font:700 12px var(--f-body);cursor:pointer}
.mi-tabs button[aria-selected="true"]{background:var(--surface);color:var(--fg);box-shadow:0 1px 4px rgba(0,0,0,.18)}
.mi-ic{width:18px;height:18px;vertical-align:-4px;color:var(--c3)}
.mi-net{margin:12px 0 0;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--raise)}
.mi-net summary{cursor:pointer;font:700 11px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--fg)}
.mi-net[open] summary{margin-bottom:10px}
.mi-net .mono,textarea.mono{font-family:var(--f-mono);font-size:12px}
.mi-acts .sm[aria-pressed="true"]{background:var(--fg);color:var(--bg)}
.sl-log{max-height:230px;overflow:auto;border:1px solid var(--line);border-radius:10px;background:var(--bg);font:11.5px var(--f-mono)}
.sl-r{display:grid;grid-template-columns:22px 82px 62px 1fr;gap:6px;align-items:start;width:100%;padding:5px 7px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--fg);text-align:left;cursor:pointer;font:inherit}
.sl-r:last-child{border-bottom:0}.sl-r.on{background:var(--raise)}
.sl-r b{color:var(--muted)}.sl-n{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sl-p{color:var(--muted)}.sl-m{overflow-wrap:anywhere}
.sl-r.k-ok .sl-n{color:#1f9d55}.sl-r.k-warn .sl-n{color:#c77700}.sl-r.k-drop .sl-n,.sl-r.k-drop .sl-m{color:var(--c1)}.sl-r.k-info .sl-n{color:var(--c3)}
.sl-log>p{margin:0;padding:10px}
.sl-pdu{margin:8px 0 0;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:var(--raise);font:11.5px var(--f-mono);line-height:1.5;overflow-wrap:anywhere}
.sl-pdu b{display:block;margin-bottom:4px;font:700 10.5px var(--f-mono);letter-spacing:.08em;text-transform:uppercase}
.sl-pdu i{display:inline-block;min-width:78px;color:var(--c3);font-style:normal;font-weight:700}
.sl-tab{margin:10px 0 0;font:11.5px var(--f-mono)}
.sl-t{margin:6px 0;padding:7px 10px;border:1px solid var(--line);border-radius:9px}.sl-t i{display:block;color:var(--muted);font-style:normal;font-weight:700;margin-bottom:2px}
/* bibliothèque */
.mm-modal.wide .mm-dlg{width:min(880px,100%)}
.il-top{display:flex;flex-wrap:wrap;gap:8px 14px;margin:0 0 10px;justify-content:space-between}
.il-q{width:100%;margin:0 0 6px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);font:400 14.5px var(--f-body)}
.il-body{max-height:min(56vh,520px);overflow:auto;overscroll-behavior:contain;padding:0 2px}
.il-cat{margin:12px 0 6px;font:700 10.5px var(--f-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.il-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:6px}
.il-grid.em{grid-template-columns:repeat(auto-fill,minmax(44px,1fr))}
.il-t{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px 6px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);cursor:pointer;font:600 10.5px var(--f-body);text-align:center;line-height:1.15}
.il-t svg{width:38px;height:38px}
.il-t:hover,.il-t:focus-visible{border-color:var(--fg);background:var(--raise);outline:none}
.il-t.em{font-size:22px;padding:6px 0}
.il-free{display:flex;gap:8px;margin:0 0 4px}.il-free input{flex:1;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--fg);font-size:18px}
.il-img .mi-acts{margin:8px 0}
.aa-b{white-space:pre-wrap;font-size:14px;line-height:1.5;max-height:50vh;overflow:auto}
.mm-f.mm-ckb{flex-direction:row;align-items:center;gap:8px;text-transform:none;letter-spacing:0;font:500 13.5px var(--f-body);color:var(--fg)}.mm-f.mm-ckb input{width:auto}
ul.chk{list-style:none;margin:0;padding:0;display:grid;gap:6px}ul.chk li{padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--bg);font-size:13.5px}
ul.chk li.k-err{border-color:var(--c1)}ul.chk li.k-ok{border-color:#1f9d55}
@media (max-width:520px){.sl-r{grid-template-columns:20px 70px 1fr}.sl-p{display:none}}
@media (prefers-reduced-motion:reduce){.led.ledon .ld{animation:none}}

.mm-st-ocean{--bg:#eef7fb;--surface:#ffffff;--raise:#e1f0f7;--fg:#0c2a3a;--muted:#5b7a8b;--line:#cfe3ee;--on-c:#ffffff;--c1:#0a7ea4;--c2:#12b5a2;--c3:#2563eb;--c4:#6366f1;--c5:#f59e0b;--c6:#06b6d4;--c7:#e11d74;--c8:#0c2a3a;--shadow:0 6px 18px rgba(10,80,120,.14)}
.mm-st-forest{--bg:#f3f1e7;--surface:#fbfaf3;--raise:#e8e5d3;--fg:#1f2d1f;--muted:#6b7a62;--line:#d5d3bd;--on-c:#fbfaf3;--c1:#2f7d32;--c2:#8a6d3b;--c3:#3b7a57;--c4:#a3541f;--c5:#c58a12;--c6:#2b6f77;--c7:#9b3d5a;--c8:#1f2d1f;--shadow:0 6px 18px rgba(40,60,30,.15)}
.mm-st-chalk{--bg:#243b33;--surface:#2b463d;--raise:#203329;--fg:#f3f1e8;--muted:#b9c6bd;--line:#41625a;--on-c:#243b33;--c1:#ffd36e;--c2:#9be3b3;--c3:#8fd3ff;--c4:#ffb3c7;--c5:#ffbe85;--c6:#b8e4e8;--c7:#e6b8ff;--c8:#f3f1e8;--mfont:'Caveat','Comic Sans MS',cursive;--mfd:'Caveat','Comic Sans MS',cursive;--shadow:0 6px 18px rgba(0,0,0,.3)}
.mm-st-candy{--bg:#fff7fb;--surface:#ffffff;--raise:#ffeaf4;--fg:#3a1230;--muted:#8a5a7c;--line:#f6cfe3;--on-c:#ffffff;--c1:#ff3d81;--c2:#00c2a8;--c3:#3d7bff;--c4:#a35bff;--c5:#ff9f1c;--c6:#1fc8ff;--c7:#ff6b6b;--c8:#3a1230;--shadow:0 6px 0 rgba(58,18,48,.12)}
.mm-st-sunset{--bg:#2a1220;--surface:#3a1a2b;--raise:#321626;--fg:#fff1e6;--muted:#e0b6a6;--line:#5a2a3c;--on-c:#2a1220;--c1:#ff7a45;--c2:#ffd166;--c3:#ff5d8f;--c4:#c77dff;--c5:#ffae5c;--c6:#7bdff2;--c7:#ff9ecb;--c8:#fff1e6;--shadow:0 8px 24px rgba(0,0,0,.45)}
#mm-stage.mm-st-chalk{background-image:radial-gradient(circle,rgba(255,255,255,.07) 1px,transparent 1.3px)}
#mm-stage.mm-st-sunset{background-image:radial-gradient(circle,rgba(255,170,120,.1) 1px,transparent 1.3px)}
.mm-st-ocean .mn .sh{fill:color-mix(in srgb,var(--bc) 12%,var(--surface));stroke-width:2px}.mm-st-ocean .mn.fl .sh{fill:var(--bc)}
.mm-st-forest .mn .sh{fill:color-mix(in srgb,var(--bc) 10%,var(--surface));stroke-width:1.8px}.mm-st-forest .mn.fl .sh{fill:var(--bc)}
.mm-st-chalk .mn .sh,.mm-st-chalk .mx .eb{filter:url(#mm-rough)}.mm-st-chalk .mn .sh{fill:transparent}.mm-st-chalk .mn.fl .sh{fill:var(--bc)}.mm-st-chalk .mn text{font-weight:700}
.mm-st-candy .mn .sh{fill:color-mix(in srgb,var(--bc) 14%,#fff);stroke-width:3px}.mm-st-candy .mn.fl .sh{fill:var(--bc)}.mm-st-candy .mn text{font-weight:700}
.mm-st-sunset .mn .sh{fill:color-mix(in srgb,var(--bc) 14%,var(--surface));filter:drop-shadow(0 0 3px color-mix(in srgb,var(--bc) 70%,transparent))}.mm-st-sunset .mn.fl .sh{fill:var(--bc)}

/* ===== modèles de présentation + gabarits par domaine ===== */
.mm-tq{width:100%;box-sizing:border-box;margin:0 0 8px;padding:9px 12px;border:1.5px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);font:inherit}
.mm-tcats,.mm-mcats{margin:0 0 10px;flex-wrap:wrap}
.mm-mopts{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0 0 10px;font-size:13px}
.mm-mopts label{display:flex;align-items:center;gap:6px;cursor:pointer}
.mm-mg{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,190px),1fr));gap:10px;margin:0 0 12px}
.mm-mc{display:flex;flex-direction:column;gap:2px;padding:0 0 9px;border:1.5px solid var(--line);border-radius:12px;background:var(--bg);color:var(--fg);text-align:left;font:inherit;cursor:pointer;overflow:hidden}
.mm-mc:hover,.mm-mc:focus-visible{border-color:var(--fg);outline:none}
.mm-mc .mm-tw{height:118px;width:100%;border-bottom:1px solid var(--line)}
.mm-mc .mm-tw svg{width:100%;height:100%;display:block}
.mm-mc b{font:700 13.5px var(--f-body);padding:7px 11px 0}.mm-mc span{font-size:12px;color:var(--muted);padding:0 11px}
@media(max-width:600px){.mm-mg{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.mm-mc .mm-tw{height:96px}}
.mx.ghost .eb,.mx.ghost .ah{opacity:.22}.mx.ghost .eb{stroke-dasharray:3 7}
