/* Éditeur de portfolio : on compose directement sur la page */
body.ed-on{padding:0!important;overflow:hidden}
body.ed-on .toast{z-index:60}
.ed{--e-bg:#09090b;--e-dot:#1b1b20;--e-solid:#141418;--e-panel2:#1a1a1f;--e-line:#26262c;--e-ink:#f3f0ea;--e-dim:#8f8c85;--e-acc:#f0593a;--e-ok:#4fae7b;--e-sh1:0 1px 2px rgba(0,0,0,.5);--e-sh2:0 16px 50px rgba(0,0,0,.55);color-scheme:dark;
  position:fixed;inset:0;display:grid;grid-template-rows:auto minmax(0,1fr);background:var(--e-bg);color:var(--e-ink);font:14px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;z-index:40}
.ed-modal{--e-bg:#09090b;--e-solid:#141418;--e-panel2:#1a1a1f;--e-line:#26262c;--e-ink:#f3f0ea;--e-dim:#8f8c85;--e-acc:#f0593a;--e-ok:#4fae7b;--e-sh1:0 1px 2px rgba(0,0,0,.5);--e-sh2:0 16px 50px rgba(0,0,0,.55);color-scheme:dark;font:14px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.ed *,.ed-modal *{box-sizing:border-box}
.ed-modal button,.ed-modal input,.ed-modal select,.ed-modal textarea{font:inherit;color:inherit}
.ed-modal button{cursor:pointer}
.ed-modal [hidden]{display:none!important}
.ed-modal :focus-visible{outline:2px solid var(--e-acc);outline-offset:2px}
.ed [hidden]{display:none!important}
.ed button,.ed input,.ed select,.ed textarea{font:inherit;color:inherit}
.ed button{cursor:pointer}
.ed :focus-visible{outline:2px solid var(--e-acc);outline-offset:2px}
.ed-bar{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--e-solid);border-bottom:1px solid var(--e-line);flex-wrap:wrap;z-index:6}
.ed-back{background:none;border:0;font-weight:650;padding:6px 8px;border-radius:8px;color:inherit;text-decoration:none}
.ed-back:hover{background:var(--e-panel2)}
.ed-sep{width:1px;height:22px;background:var(--e-line)}
.ed-name{font-weight:600;border:1px solid transparent;background:none;padding:5px 9px;border-radius:8px;outline:none;min-width:170px;max-width:300px}
.ed-name:hover,.ed-name:focus{background:var(--e-panel2);border-color:var(--e-line)}
.ed-st{font:600 11px system-ui,sans-serif;letter-spacing:.05em;text-transform:uppercase;padding:3px 10px;border-radius:99px;border:1px solid var(--e-line);color:var(--e-dim);white-space:nowrap}
.ed-st.ok{color:var(--e-ok);border-color:color-mix(in srgb,var(--e-ok) 40%,var(--e-line))}
.ed-grow{flex:1}
.ed-seg{display:inline-flex;background:var(--e-panel2);border:1px solid var(--e-line);border-radius:10px;padding:3px;gap:2px}
.ed-seg button{border:0;background:none;border-radius:7px;padding:6px 11px;font-weight:600;font-size:12.5px;color:var(--e-dim)}
.ed-seg button[aria-pressed=true]{background:var(--e-solid);color:var(--e-ink);box-shadow:var(--e-sh1)}
.ed-btn{display:inline-flex;align-items:center;gap:8px;border-radius:10px;border:1px solid var(--e-line);background:var(--e-solid);padding:8px 14px;font-weight:600;font-size:13px;text-decoration:none;color:var(--e-ink)}
.ed-btn:hover{border-color:var(--e-dim)}
.ed-btn.pri{background:var(--e-acc);border-color:var(--e-acc);color:#fff}
.ed-btn.pri:hover{filter:brightness(1.06)}
.ed-ib{width:30px;height:30px;border-radius:8px;border:1px solid var(--e-line);background:var(--e-solid);color:var(--e-dim);display:grid;place-items:center;font-size:13px}
.ed-work{display:grid;grid-template-columns:292px minmax(0,1fr) 288px;min-height:0}
@media(max-width:1180px){.ed-work{grid-template-columns:260px minmax(0,1fr)}.ed-insp{display:none!important}}
@media(max-width:900px){.ed{position:absolute;min-height:100%;grid-template-rows:auto auto}.ed-work{grid-template-columns:1fr}.ed-rail{max-height:300px}body.ed-on{overflow:auto}}
.ed-rail,.ed-insp{background:var(--e-solid);overflow:auto;min-height:0}
.ed-rail{border-right:1px solid var(--e-line);display:flex;flex-direction:column}
.ed-insp{border-left:1px solid var(--e-line);padding:16px;display:grid;gap:16px;align-content:start}
.ed-tabs{display:flex;gap:4px;padding:10px 12px 0;border-bottom:1px solid var(--e-line)}
.ed-tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:8px 10px;font-weight:600;color:var(--e-dim)}
.ed-tabs button[aria-selected=true]{color:var(--e-ink);border-color:var(--e-acc)}
.ed-pane{padding:12px;display:grid;gap:12px;align-content:start}
.ed-hint{display:flex;gap:8px;align-items:flex-start;background:color-mix(in srgb,var(--e-acc) 9%,transparent);border:1px solid color-mix(in srgb,var(--e-acc) 25%,var(--e-line));border-radius:10px;padding:9px 11px;font-size:12px}
.ed-search{width:100%;background:var(--e-panel2);border:1px solid var(--e-line);border-radius:10px;padding:9px 12px;outline:none}
.ed-search:focus{border-color:var(--e-acc)}
.ed-chips{display:flex;gap:6px;flex-wrap:wrap}
.ed-chips button{border:1px solid var(--e-line);background:none;border-radius:99px;padding:4px 11px;font-size:12px;font-weight:600;color:var(--e-dim)}
.ed-chips button[aria-pressed=true]{background:var(--e-ink);color:var(--e-solid);border-color:var(--e-ink)}
.ed-mgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ed-mi{border:1px solid var(--e-line);border-radius:12px;overflow:hidden;background:var(--e-panel2);cursor:grab;position:relative;transition:transform .15s,box-shadow .15s}
.ed-mi:hover{transform:translateY(-2px);box-shadow:var(--e-sh2)}
.ed-mi .t{padding:7px 9px;font-size:12px;font-weight:600;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.ed-mi .add{position:absolute;right:6px;top:6px;width:26px;height:26px;border-radius:50%;border:0;background:var(--e-acc);color:#fff;font-weight:700;opacity:.0;transition:opacity .15s}
.ed-mi:hover .add,.ed-mi:focus-within .add{opacity:1}
@media(hover:none){.ed-mi .add{opacity:1}}
.ed-th{position:relative;display:block;aspect-ratio:16/10;background:#15161c;overflow:hidden}
.ed-th img,.ed-th video{width:100%;height:100%;object-fit:cover;display:block}
.ed-th .tag{position:absolute;left:6px;top:6px;font:600 9px ui-monospace,monospace;letter-spacing:.08em;background:rgba(0,0,0,.62);color:#fff;border-radius:5px;padding:2px 6px}
.ed-th .play{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:16px;text-shadow:0 2px 10px rgba(0,0,0,.6)}
.ed-bl{display:grid;gap:8px}
.ed-bt{display:flex;align-items:center;gap:10px;border:1px solid var(--e-line);border-radius:12px;padding:10px 12px;background:var(--e-panel2);cursor:grab;font-weight:600}
.ed-bt span{width:30px;height:30px;border-radius:8px;background:var(--e-solid);border:1px solid var(--e-line);display:grid;place-items:center;color:var(--e-dim)}
.ed-note{color:var(--e-dim);font-size:12px}
/* canevas */
.ed-canvas{overflow:auto;background-color:var(--e-bg);background-image:radial-gradient(var(--e-dot) 1px,transparent 1.2px);background-size:18px 18px;padding:26px 24px 90px;min-height:0}
.ed-stage{display:flex;gap:28px;justify-content:center;align-items:flex-start}
.ed-frame{flex:none;width:1200px;border-radius:14px;box-shadow:var(--e-sh2);overflow:hidden;border:1px solid var(--e-line);background:#fff}
.ed-zoom{font:11px ui-monospace,monospace;color:var(--e-dim)}
@media(prefers-reduced-motion:reduce){.ed-frame,.ed-mi{transition:none}}
.ed-chrome{display:flex;gap:6px;align-items:center;padding:9px 12px;background:var(--e-panel2);border-bottom:1px solid var(--e-line)}
.ed-chrome i{width:9px;height:9px;border-radius:50%;background:var(--e-line)}
.ed-chrome span{margin-left:8px;font:11px ui-monospace,monospace;color:var(--e-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* la page (mêmes règles que la page publique) */
.ed-pg{--p-bg:#f6f4f0;--p-ink:#16161a;--p-dim:#6b6862;--p-line:#e3dfd8;--p-acc:#e0482a;--p-head:system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--p-bg);color:var(--p-ink);font-family:system-ui,-apple-system,"Segoe UI",sans-serif;padding:0 clamp(16px,5cqw,44px) 36px;container-type:inline-size;position:relative;min-height:300px}
.ed-pg[data-tpl=editorial]:not([data-font=sans]):not([data-font=mono]),.ed-pg[data-font=serif]{--p-head:ui-serif,Georgia,"Times New Roman",serif}
.ed-pg[data-font=mono]{--p-head:ui-monospace,SFMono-Regular,Menlo,monospace}
.ed-pg [contenteditable]{outline:none;border-radius:6px;transition:box-shadow .12s;cursor:text}
.ed-pg [contenteditable]:hover{box-shadow:0 0 0 1.5px color-mix(in srgb,var(--p-acc) 35%,transparent)}
.ed-pg [contenteditable]:focus{box-shadow:0 0 0 2px var(--p-acc)}
.ed-pg [contenteditable]:empty::before{content:attr(data-ph);opacity:.4}
.ed-pg header{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:18px 0;border-bottom:1px solid var(--p-line);font-size:11px;letter-spacing:.16em;text-transform:uppercase}
.ed-pg header b{font-weight:700}.ed-pg header span{color:var(--p-dim)}
.ed-pg .hero{padding:clamp(26px,7cqw,68px) 0 16px}
.ed-pg h1{font-family:var(--p-head);font-size:clamp(30px,8.5cqw,66px);line-height:1.02;letter-spacing:-.025em;font-weight:650}
.ed-pg[data-tpl=editorial] h1{font-weight:400;font-style:italic}
.ed-pg[data-tpl=signature] h1{text-transform:uppercase;font-weight:800;letter-spacing:-.02em;font-stretch:125%}
.ed-pg[data-tpl=signature] header{border-bottom:2px solid var(--p-acc)}
.ed-pg[data-tpl=signature] .ed-sec h2{text-transform:uppercase;letter-spacing:.04em;font-size:clamp(16px,3cqw,24px)}
.ed-pg .lead{color:var(--p-dim);max-width:58ch;margin-top:14px;font-size:clamp(14px,2.2cqw,17px);white-space:pre-line}
.ed-sec{position:relative;padding:14px 0 6px;border-radius:12px;margin-top:clamp(12px,3cqw,26px)}
.ed-sec:hover{box-shadow:0 0 0 1.5px color-mix(in srgb,var(--p-acc) 45%,transparent)}
.ed-sec.sel{box-shadow:0 0 0 2px var(--p-acc)}
.ed-sec h2{font-family:var(--p-head);font-size:clamp(20px,4.2cqw,34px);letter-spacing:-.01em;font-weight:650;padding:0 4px}
.ed-sec .desc{color:var(--p-dim);padding:2px 4px;font-size:14px}
.ed-items{display:grid;margin-top:8px}
.ed-items.l1{grid-template-columns:1fr}.ed-items.l2{grid-template-columns:repeat(2,minmax(0,1fr))}.ed-items.l3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ed-items.ls{grid-auto-flow:column;grid-auto-columns:78%;overflow-x:auto;scroll-snap-type:x mandatory}.ed-items.ls>.ed-blk{scroll-snap-align:start}
@container (max-width:560px){.ed-items.l2,.ed-items.l3{grid-template-columns:1fr}}
.ed-blk{position:relative;padding:6px;border-radius:12px}
.ed-blk:hover{background:color-mix(in srgb,var(--p-acc) 7%,transparent)}
.ed-blk.sel{box-shadow:0 0 0 2px var(--p-acc)}
.ed-blk h3{font-size:15px;font-weight:650;margin:8px 0 1px;padding:0 2px}.ed-blk p{color:var(--p-dim);font-size:13px;padding:0 2px}
.ed-vid{aspect-ratio:16/9;border-radius:10px;position:relative;overflow:hidden;background:#15161c;container-type:inline-size}
.ed-vid video{width:100%;height:100%;object-fit:cover;display:block}
.ed-vid::after{content:"▶";position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:clamp(20px,9cqw,38px);text-shadow:0 2px 12px rgba(0,0,0,.5);pointer-events:none}
.ed-alb .g{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.ed-alb .g span{aspect-ratio:4/3;border-radius:6px;display:block;overflow:hidden;position:relative;background:#15161c;container-type:inline-size}.ed-alb .g img{width:100%;height:100%;object-fit:cover;display:block}
.ed-alb .more{display:grid;place-items:center;background:var(--p-line);color:var(--p-dim);font-weight:600}
.ed-txtb{font-family:var(--p-head);font-size:clamp(18px,3.2cqw,26px);line-height:1.3;padding:8px 4px;max-width:34ch}
.ed-drop{height:6px;border-radius:6px;transition:height .12s,background .12s}
.ed-pg.dragging .ed-drop{height:34px;background:color-mix(in srgb,var(--p-acc) 10%,transparent);border:1.5px dashed color-mix(in srgb,var(--p-acc) 50%,transparent);margin:3px 6px}
.ed-pg.dragging .ed-drop.on{background:color-mix(in srgb,var(--p-acc) 28%,transparent);border-style:solid}
.ed-items.l2 .ed-drop,.ed-items.l3 .ed-drop,.ed-items.ls .ed-drop{display:none}
.ed-pg.dragging .ed-items.l2 .ed-drop,.ed-pg.dragging .ed-items.l3 .ed-drop,.ed-pg.dragging .ed-items.ls .ed-drop{display:block}
.ed-empty{border:1.5px dashed var(--p-line);border-radius:12px;padding:22px;text-align:center;color:var(--p-dim);font-size:13px;grid-column:1/-1}
.ed-addsec{display:block;width:100%;margin:12px 0 0;padding:11px;border:1.5px dashed var(--p-line);border-radius:12px;background:none;color:var(--p-dim);font-weight:600}
.ed-addsec{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.ed-addsec>span{flex:1 0 100%;text-align:center;margin-bottom:2px}
.ed-addsec button{border:1px solid var(--p-line);background:none;color:inherit;border-radius:999px;padding:5px 11px;font:inherit;font-size:12px;font-weight:600;cursor:pointer}
.ed-addsec button:hover{border-color:var(--p-acc);color:var(--p-acc)}
.ed-warn{color:#b8860b}
.ed-tb{position:absolute;right:8px;top:-15px;display:none;gap:4px;background:#16151a;border-radius:10px;padding:4px;box-shadow:0 8px 24px rgba(0,0,0,.35);z-index:3}
.ed-sec:hover>.ed-tb,.ed-sec.sel>.ed-tb,.ed-blk:hover>.ed-tb,.ed-blk.sel>.ed-tb{display:flex}
.ed-tb button{border:0;background:none;color:#e8e5de;border-radius:7px;min-width:28px;height:28px;font-size:12px;font-weight:600;padding:0 6px}
.ed-tb button:hover{background:#2c2b33}.ed-tb button[aria-pressed=true]{background:var(--p-acc);color:#fff}
.ed-tb .s{width:1px;background:#33323b;margin:4px 2px}
.ed-out{margin-top:30px;padding-top:18px;border-top:1px solid var(--p-line);color:var(--p-dim);font-size:14px}
.ed-out .co{display:block;padding:2px 4px;max-width:60ch}
.ed-site{display:inline-block;margin:14px 4px 0;padding:11px 20px;border-radius:99px;background:var(--p-acc);color:#fff;font-weight:600;font-size:13px}
/* inspecteur */
.ed-insp h4{font:600 11px system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--e-dim);margin:0 0 8px}
.ed-fld{display:grid;gap:5px}.ed-fld>span{font-size:12px;color:var(--e-dim);font-weight:500}
.ed-in{width:100%;background:var(--e-panel2);border:1px solid var(--e-line);border-radius:9px;padding:8px 10px;outline:none}
.ed-in:focus{border-color:var(--e-acc)}
textarea.ed-in{min-height:70px;resize:vertical}
.ed-tpls{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.ed-tpl{border:1.5px solid var(--e-line);background:var(--e-panel2);border-radius:10px;padding:6px;display:grid;gap:5px;text-align:left}
.ed-tpl[aria-pressed=true]{border-color:var(--e-acc)}
.ed-tpl i{display:block;aspect-ratio:4/3;border-radius:5px}.ed-tpl b{font-size:12px}
.ed-sw{display:flex;gap:8px;flex-wrap:wrap}
.ed-sw button{width:26px;height:26px;border-radius:50%;border:2px solid var(--e-solid);outline:1px solid var(--e-line)}
.ed-sw button[aria-pressed=true]{outline:2px solid var(--e-ink)}
.ed-tg{display:flex;align-items:center;justify-content:space-between;gap:10px;font-weight:500}
.ed-tg button{position:relative;width:38px;height:22px;border-radius:99px;border:0;background:var(--e-line);transition:background .15s;flex:none}
.ed-tg button::after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s}
.ed-tg button[aria-pressed=true]{background:var(--e-ok)}.ed-tg button[aria-pressed=true]::after{transform:translateX(16px)}
/* partage */
.ed-modal{position:fixed;inset:0;background:rgba(8,8,10,.55);backdrop-filter:blur(4px);display:grid;place-items:center;z-index:50;padding:16px}
.ed-sheet{width:min(540px,100%);background:var(--e-solid);border:1px solid var(--e-line);border-radius:18px;box-shadow:var(--e-sh2);padding:20px;display:grid;gap:14px;max-height:92vh;overflow:auto;color:var(--e-ink)}
.ed-sheet h3{font-size:18px;font-weight:650;margin:0}
.ed-row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:560px){.ed-row2{grid-template-columns:1fr}}
.ed-link{display:flex;gap:8px;align-items:center;background:var(--e-panel2);border:1px solid var(--e-line);border-radius:10px;padding:6px 6px 6px 12px}
.ed-link code{font:12px ui-monospace,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.ed-exit{display:none;position:fixed;right:16px;top:70px;z-index:12}
.ed.preview .ed-rail,.ed.preview .ed-insp,.ed.preview .ed-tb,.ed.preview .ed-addsec,.ed.preview .ed-drop{display:none!important}
.ed.preview .ed-work{grid-template-columns:1fr}
.ed.preview .ed-exit{display:inline-flex}
.ed-pg .wmk{position:absolute;left:0;right:0;bottom:8%;display:flex;justify-content:center;pointer-events:none;opacity:var(--wo,.6)}
.ed-pg .wmk span{font:600 calc(var(--wsz,12)*1px)/1.2 system-ui,sans-serif;color:#fff;text-shadow:0 0 3px #000,0 0 6px rgba(0,0,0,.8)}

/* lecture seule (aperçu téléphone) */
.ed-pg.ro .ed-tb,.ed-pg.ro .ed-drop,.ed-pg.ro .ed-addsec{display:none!important}
.ed-pg.ro [contenteditable],.ed-pg.ro *{pointer-events:none}
.ed-frame.phone2{border-radius:28px}
/* emplacements et logos */
.ed-slot{border:1.5px dashed var(--p-line);border-radius:12px;min-height:110px;display:grid;place-content:center;gap:2px;text-align:center;padding:18px;color:var(--p-dim)}
.ed-slot b{color:var(--p-ink);font-size:14px}.ed-slot span{font-size:12px}
.ed-slot.on{border-color:var(--p-acc);background:color-mix(in srgb,var(--p-acc) 12%,transparent)}
.ed-logos{display:flex;flex-wrap:wrap;gap:18px 28px;align-items:center;padding:10px 4px}
.ed-logos img{height:34px;width:auto;max-width:120px;object-fit:contain;filter:grayscale(1);opacity:.8}
/* fonds et couleurs */
.ed-bgs{display:flex;gap:8px;flex-wrap:wrap}
.ed-bgb{width:28px;height:28px;border-radius:8px;border:2px solid var(--e-solid);outline:1px solid var(--e-line);padding:0;position:relative;display:grid;place-items:center;font-weight:700;font-size:13px;color:var(--e-dim);background:var(--e-panel2);overflow:hidden}
.ed-bgb[aria-pressed=true],.ed-bgb.custom[data-on=true]{outline:2px solid var(--e-ink)}
.ed-bgb input,.ed-sw-c input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}
.ed-sw-c{width:26px;height:26px;border-radius:50%;border:2px solid var(--e-solid);outline:1px solid var(--e-line);position:relative;display:grid;place-items:center;font-weight:700;color:var(--e-dim);overflow:hidden}
.ed-pg .ph{display:block;width:100%;height:100%}
.ed-vid .ph{position:absolute;inset:0}
/* accueil Portfolios : rangée compacte des modèles */
.pf-home{margin:16px 0 18px}
.pf-h{font:600 11px system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase;opacity:.65;margin:0 0 8px}
.pf-tpls{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.pf-tpl{border:1.5px solid rgba(127,127,127,.28);background:rgba(127,127,127,.08);color:inherit;border-radius:12px;padding:8px;text-align:left;display:grid;gap:3px;align-content:start;cursor:pointer;font:inherit;transition:border-color .2s,transform .2s}
.pf-tpl:hover,.pf-tpl:focus-visible{border-color:#f0593a;transform:translateY(-2px)}
.pf-tpl i{display:flex;flex-direction:column;justify-content:flex-end;gap:6px;height:84px;padding:8px;border-radius:7px;overflow:hidden;font-style:normal}
.pf-tpl i u{display:block;width:22px;height:3px}
.pf-tpl em{font-style:normal;font-size:12px;line-height:1.2}
.pf-tpl b{font-size:13px}.pf-tpl small{font-size:11px;opacity:.65;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pf-tpl.blank i{align-items:center;justify-content:center;font-size:30px;font-weight:300;border:1.5px dashed rgba(127,127,127,.45)}
@media(max-width:800px){.pf-tpls{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:40%;overflow-x:auto;padding-bottom:4px}}
.ed-mi.on{outline:2px solid var(--e-acc);outline-offset:1px}
.ed-mi:focus-visible,.ed-bt:focus-visible{outline:2px solid var(--e-acc);outline-offset:1px}
.ed-sec.drop-on{box-shadow:0 0 0 2px var(--p-acc),0 0 0 8px color-mix(in srgb,var(--p-acc) 14%,transparent)}
@keyframes ed-flash{0%{box-shadow:0 0 0 0 var(--p-acc)}30%{box-shadow:0 0 0 4px var(--p-acc)}100%{box-shadow:0 0 0 0 transparent}}
.ed-flash{animation:ed-flash 1.2s ease-out}
@media(prefers-reduced-motion:reduce){.ed-flash{animation:none}}
.pf-edit{font-weight:700;padding-inline:16px}
.lgrid.pf-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr));gap:12px}
.pf-grid>.card{padding:14px 16px;margin:0}
.pf-grid>.card h3{font-size:16px;margin:0;overflow-wrap:anywhere}
.pf-grid .pf-meta{margin:2px 0 0;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf-grid>.card>.acts{gap:6px;margin-top:10px}
.pf-grid .acts>.ghost{padding:6px 10px;font-size:12.5px;min-height:0}
.pf-more{margin-top:8px}
.pf-more>summary{cursor:pointer;font-size:12.5px;opacity:.7;list-style:none;width:max-content}
.pf-more>summary::-webkit-details-marker{display:none}
.pf-more>summary:hover{opacity:1}
.pf-more>.acts{gap:6px;margin-top:8px}
.pf-grid>.card h3{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.pf-grid>.card>.acts{flex-wrap:nowrap}
.pf-grid .pf-edit{padding:8px 14px}
/* ---------- éditeur stylé : la page du client, éditable en place ---------- */
.ed-sty{grid-template-rows:auto minmax(0,1fr)}
.ed-bar-s{position:sticky;top:0;gap:10px}
.ed-style{width:auto;max-width:260px;padding:7px 10px}
.ed-canvas-s{padding:0;background:var(--e-bg)}
.pfr-host{margin:0 auto;min-height:100%;transition:max-width .3s}
.pfr-host.phone{max-width:390px;margin:24px auto 60px;box-shadow:0 0 0 1px var(--e-line),var(--e-sh2);border-radius:18px;overflow:hidden}
.pfr-host [contenteditable]{outline:1px dashed transparent;outline-offset:4px;border-radius:2px;cursor:text;transition:outline-color .15s}
.pfr-host [contenteditable]:hover{outline-color:color-mix(in srgb,currentColor 40%,transparent)}
.pfr-host [contenteditable]:focus{outline:2px solid #f0593a;outline-offset:4px}
.pfr-host [contenteditable]:empty::before{content:attr(data-ph);opacity:.38;pointer-events:none}
.pfr-host [data-pick]{cursor:pointer;position:relative}
.pfr-host [data-pick]::after{content:"Remplacer";position:absolute;top:10px;left:10px;z-index:4;font:600 11px/1 system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:rgba(10,10,12,.78);padding:7px 10px;border-radius:99px;opacity:0;transition:opacity .2s;pointer-events:none}
.pfr-host [data-pick]:hover::after{opacity:1}
.pfr-host .pfr-slot{display:grid;place-items:center;background:color-mix(in srgb,currentColor 7%,transparent);border:1.5px dashed color-mix(in srgb,currentColor 35%,transparent);aspect-ratio:16/9}
.pfr-host .pfr-slot span{font:600 13px/1 system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;opacity:.8}
.pfr-host .pfr-slot-s{aspect-ratio:auto;min-height:90px}
.pfr-host .pfr-slot::after,.pfr-host .pfr-addst::after{display:none}
.pfr-host .pfr-addst{aspect-ratio:2.35/1;display:grid;place-items:center;border:1.5px dashed color-mix(in srgb,currentColor 35%,transparent);background:none;color:inherit;font:600 12px/1 system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;opacity:.75}
.pfr-host .pfr-addst:hover{opacity:1;border-color:#f0593a}
.pfr-host .pfr-x{position:absolute;top:6px;right:6px;z-index:5;width:26px;height:26px;border-radius:50%;border:0;background:rgba(10,10,12,.8);color:#fff;font-size:12px;cursor:pointer;opacity:0;transition:opacity .15s}
.pfr-host .pfr-fiche .pfr-x{top:50%;right:-34px;transform:translateY(-50%)}
.pfr-host .pfr-still:hover>.pfr-x,.pfr-host .pfr-fiche>div:hover>.pfr-x{opacity:1}
.pfr-host .pfr-addf{margin-top:10px;background:none;border:1px dashed color-mix(in srgb,currentColor 35%,transparent);color:inherit;padding:6px 12px;font:600 11px system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;opacity:.7}
.pfr-host .pfr-addf:hover{opacity:1}
/* barre d'actions d'un chapitre, au survol */
.pfr-host .pfr-ch{outline:2px solid transparent;outline-offset:-2px;transition:outline-color .2s}
.pfr-host .pfr-ch:hover{outline-color:rgba(240,89,58,.55)}
.pfr-host .pfr-tb{position:absolute;top:14px;left:50%;transform:translate(-50%,-6px);z-index:8;display:flex;gap:2px;padding:4px;border-radius:12px;background:rgba(20,20,24,.92);backdrop-filter:blur(8px);box-shadow:0 10px 30px rgba(0,0,0,.35);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
.pfr-host .pfr-ch:hover>.pfr-tb,.pfr-host .pfr-tb:focus-within{opacity:1;pointer-events:auto;transform:translate(-50%,0)}
.pfr-host .pfr-tb button,.pfr-host .pfr-btb button{border:0;background:none;color:#f3f0ea;font:600 12.5px/1 system-ui,sans-serif;padding:8px 11px;border-radius:8px;cursor:pointer;white-space:nowrap}
.pfr-host .pfr-tb button:hover,.pfr-host .pfr-btb button:hover{background:rgba(255,255,255,.12)}
.pfr-host .pfr-tb button.warn{background:#c8341c}
.pfr-host .pfr-blk{position:relative}
.pfr-host .pfr-btb{position:absolute;top:-14px;right:0;z-index:7;display:flex;gap:2px;padding:3px;border-radius:10px;background:rgba(20,20,24,.9);opacity:0;pointer-events:none;transition:opacity .2s}
.pfr-host .pfr-blk:hover>.pfr-btb{opacity:1;pointer-events:auto}
.pfr-host .pfr-addch{display:block;width:100%;margin:28px 0;padding:22px;border:1.5px dashed color-mix(in srgb,currentColor 30%,transparent);background:none;color:inherit;font:600 13px system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;opacity:.7}
.pfr-host .pfr-addch:hover{opacity:1;border-color:#f0593a}
.pfr-host .pfr-still .ph{cursor:pointer}
.pfr-host .pfr .site{cursor:text}
.pfr .wmk{position:absolute;inset:auto 0 62px 0;display:flex;justify-content:center;pointer-events:none;z-index:3;opacity:var(--wo,.3)}
.pfr .wmk span{font:600 calc(var(--wsz,14)*1px)/1.2 system-ui,sans-serif;color:#fff;text-shadow:0 0 3px #000,0 0 6px rgba(0,0,0,.85)}
/* mini-sélecteur de médias */
.ed-pk{position:fixed;z-index:70;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:10px;padding:12px;border-radius:14px;background:var(--e-solid);border:1px solid var(--e-line);box-shadow:var(--e-sh2)}
.ed-pk-h{display:flex;justify-content:space-between;align-items:center;gap:8px}
.ed-pk-g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;overflow:auto;min-height:120px;align-content:start}
.ed-pk-g .ed-mi{padding:0;text-align:left;color:inherit;background:none}
.ed-pk-g .ed-mi:hover{outline:2px solid var(--e-acc)}
.pfr-host .pfr-cvtb{position:absolute;top:64px;right:clamp(18px,5cqi,64px);z-index:5;display:flex;gap:6px;opacity:0;transition:opacity .2s}
.pfr-host .pfr-head:hover .pfr-cvtb,.pfr-host .pfr-cvtb:focus-within{opacity:1}
.pfr-host .pfr-head:not(.pfr-hascv) .pfr-cvtb{opacity:.7}
.pfr-host .pfr-cvtb button{font:600 11px/1 system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:rgba(10,10,12,.78);border:1px solid rgba(255,255,255,.25);padding:8px 12px;border-radius:99px;cursor:pointer}
.pfr-host .pfr-cvtb button:hover{background:#f0593a}
.pfr-host .pfr-cvtb [data-pick]::after{display:none}
/* barre du film (éditeur) : capture 1 clic et remplacement */
.pfr-host .pfr-ftb{position:absolute;top:22px;left:22px;z-index:6;display:flex;gap:4px;opacity:0;transition:opacity .2s}
.pfr-host .pfr-screen:hover .pfr-ftb,.pfr-host .pfr-ftb:focus-within{opacity:1}
.pfr-host .pfr-ftb button{font:600 12px/1 system-ui,sans-serif;color:#fff;background:rgba(10,10,12,.82);border:1px solid rgba(255,255,255,.22);padding:8px 12px;border-radius:99px;cursor:pointer;white-space:nowrap}
.pfr-host .pfr-ftb button:hover{background:#f0593a;border-color:#f0593a}
.pfr-host .pfr-ftb [data-pick]::after{display:none}
.pfr-host .pfr-tb button[data-act=crm]{font-size:16px;padding:6px 11px}
/* bascule de style */
.ed-styles button{white-space:nowrap}
.ed-styles button[aria-pressed=true]{background:#f0593a;color:#fff}
/* cadre de titre façon Canva : poignées latérales et mini-barre typo */
.ed-box{position:fixed;z-index:60;pointer-events:none;border:1.5px solid #f0593a;border-radius:3px}
.ed-box .canva-handle{position:absolute;top:50%;width:10px;height:30px;margin-top:-15px;background:#fff;border:1.5px solid #f0593a;border-radius:6px;box-shadow:0 1px 4px rgba(0,0,0,.35);cursor:ew-resize;pointer-events:auto;touch-action:none}
.ed-box .canva-handle.l{left:-6px}.ed-box .canva-handle.r{right:-6px}
.ed-box.drag .canva-handle,.ed-box .canva-handle:hover{background:#f0593a}
.ed-tbar{position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);display:flex;align-items:center;gap:2px;padding:4px;border-radius:10px;background:rgba(20,20,24,.94);box-shadow:0 8px 24px rgba(0,0,0,.35);pointer-events:auto;white-space:nowrap}
.ed-tbar button{border:0;background:none;color:#f3f0ea;font:600 12.5px/1 system-ui,sans-serif;padding:7px 10px;border-radius:7px;cursor:pointer}
.ed-tbar button:hover{background:rgba(255,255,255,.12)}
.ed-tbar button[aria-pressed=true]{background:#f0593a;color:#fff}
.ed-tbar i{width:1px;height:18px;background:rgba(255,255,255,.2);margin:0 4px}
.pfr-host [contenteditable]:focus:is(h1,h2){outline-color:transparent}
/* grand sélecteur de films : modale centrée, vignettes 16:9 et vrais titres */
.ed-pk-bd{position:fixed;inset:0;z-index:69;background:rgba(8,8,10,.6);backdrop-filter:blur(3px)}
.ed-pk.big{left:50%;top:50%;transform:translate(-50%,-50%);width:90vw;max-width:960px;max-height:85vh;padding:18px;gap:14px}
.ed-pk.big .ed-pk-h b{font-size:16px}
.ed-pk.big .ed-pk-g{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));grid-auto-rows:max-content;gap:14px;overflow-y:auto}
.ed-pk.big .ed-th{aspect-ratio:16/9}
.ed-pk.big .ed-mi .t{font-size:13px;padding:9px 10px 11px;-webkit-line-clamp:2}
.ed-pk.big .ed-th .play{opacity:0;transition:opacity .15s;font-size:22px}
.ed-pk.big .ed-mi:hover .ed-th .play{opacity:1}
/* barre de défilement des lecteurs de l'éditeur : lecture, image par image, curseur continu, timecode HH:MM:SS:II */
.pfr-host .pfr-scrub{position:absolute;left:0;right:0;bottom:0;z-index:6;display:flex;align-items:center;gap:6px;padding:22px 12px 10px;background:linear-gradient(transparent,rgba(0,0,0,.78));opacity:.55;transition:opacity .2s}
.pfr-host .pfr-screen:hover .pfr-scrub,.pfr-host .pfr-scrub:focus-within{opacity:1}
.pfr-host .pfr-scrub button{flex:none;width:30px;height:30px;border:0;border-radius:7px;background:rgba(255,255,255,.12);color:#fff;font:600 14px/1 system-ui,sans-serif;cursor:pointer}
.pfr-host .pfr-scrub button:hover{background:#f0593a}
.pfr-host .pfr-scrub input{flex:1;min-width:60px;accent-color:#f0593a;height:22px;cursor:pointer;margin:0}
.pfr-host .pfr-tcr{flex:none;font:500 12px/1 ui-monospace,Menlo,monospace;color:#fff;letter-spacing:.04em;min-width:92px;text-align:right}
.pfr-host .pfr-screen video{cursor:pointer}
/* sélecteurs : les cartes gardent leur hauteur (plus de rangées écrasées) */
.ed-pk-g{grid-auto-rows:max-content}
/* volet des chapitres, à gauche de la page */
.ed-sty-body{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:0;transition:grid-template-columns .25s}
.ed-sty.tl-off .ed-sty-body{grid-template-columns:44px minmax(0,1fr)}
.ed-tl{display:flex;flex-direction:column;gap:10px;min-height:0;padding:14px 10px;border-right:1px solid var(--e-line);background:var(--e-panel)}
.ed-tl-h{display:flex;justify-content:space-between;align-items:center;padding:0 4px}
.ed-tl-h b{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--e-dim)}
.ed-tl-l{list-style:none;margin:0;padding:0;overflow-y:auto;display:flex;flex-direction:column;gap:4px;min-height:0;flex:1}
.ed-tl-i{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:8px;padding:9px 10px;border-radius:9px;cursor:grab;border:1px solid transparent;position:relative;user-select:none}
.ed-tl-i:hover{background:var(--e-panel2)}
.ed-tl-i.on{background:var(--e-panel2);border-color:var(--e-line)}
.ed-tl-i.on .n{color:#f0593a}
.ed-tl-i.drag{opacity:.4}
.ed-tl-i.over-a{box-shadow:0 -2px 0 #f0593a}.ed-tl-i.over-b{box-shadow:0 2px 0 #f0593a}
.ed-tl-i .n{grid-row:span 2;font:600 11px/1.6 ui-monospace,Menlo,monospace;color:var(--e-dim);white-space:nowrap}
.ed-tl-i .t{font-size:13px;font-weight:600;line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.ed-tl-i small{font-size:11.5px;color:var(--e-dim)}
.ed-tl-add{justify-content:center}
.ed-sty.tl-off .ed-tl-l,.ed-sty.tl-off .ed-tl-add,.ed-sty.tl-off .ed-tl-h b{display:none}
.ed-sty.tl-off .ed-tl-h button{transform:scaleX(-1)}
@media(max-width:900px){.ed-sty-body{grid-template-columns:minmax(0,1fr)}.ed-tl{display:none}}
.ed-pk.big .ed-mi .t{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;line-height:1.3;padding-bottom:0;margin-bottom:11px;max-height:calc(2.6em + 9px)}
.ed-pk.big .ed-th .tag{display:none}
/* menu « + Chapitre » : vierge ou modèle */
.ed-chm{display:flex;flex-direction:column}
.ed-chm-l{display:flex;flex-direction:column;gap:4px;overflow-y:auto;min-height:0}
.ed-chm-i{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:10px 12px;border-radius:9px;border:1px solid transparent;background:none;color:inherit;cursor:pointer}
.ed-chm-i:hover{background:var(--e-panel2);border-color:var(--e-line)}
.ed-chm-i.blank{border:1px dashed var(--e-line)}
.ed-chm-i b{font-size:13.5px}.ed-chm-i small{font-size:12px;color:var(--e-dim)}
.ed-chm-s{margin:10px 2px 4px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--e-dim)}
/* dialogue de création (hors de l'éditeur : il porte ses propres couleurs) */
.ed-nd{--e-bg:#09090b;--e-solid:#141418;--e-panel2:#1a1a1f;--e-line:#26262c;--e-ink:#f3f0ea;--e-dim:#8f8c85;--e-acc:#f0593a;--e-sh1:0 1px 2px rgba(0,0,0,.5);--e-sh2:0 16px 50px rgba(0,0,0,.55);color-scheme:dark;color:var(--e-ink);font:14px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;max-width:640px;grid-template-rows:auto minmax(0,1fr) auto}
.ed-nd-b{overflow-y:auto;min-height:0}
.ed-nd-b .ed-seg{display:flex;width:max-content}
.ed-nd-l{display:flex;flex-direction:column;gap:4px}
.ed-nd-i{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:9px;border:1px solid var(--e-line);cursor:pointer}
.ed-nd-i:hover{background:var(--e-panel2)}
.ed-nd-i input{width:18px;height:18px;accent-color:#f0593a;flex:none}
.ed-nd-i span{display:flex;flex-direction:column}.ed-nd-i small{color:var(--e-dim);font-size:12px}
.ed-nd-f{display:flex;justify-content:flex-end;gap:8px}
body>.ed-pk-bd{z-index:200}body>.ed-nd{z-index:201}
/* déplacement vertical du titre : poignée ✥ au centre du bord haut, bord haut saisissable */
.ed-box .canva-move-handle{position:absolute;left:50%;top:-14px;width:28px;height:28px;margin-left:-14px;display:grid;place-items:center;background:#fff;color:#f0593a;border:1.5px solid #f0593a;border-radius:50%;font:700 15px/1 system-ui,sans-serif;box-shadow:0 1px 4px rgba(0,0,0,.35);cursor:grab;pointer-events:auto;touch-action:none}
.ed-box .canva-top{position:absolute;left:12px;right:12px;top:-5px;height:10px;cursor:move;pointer-events:auto;touch-action:none}
.ed-box.moving .canva-move-handle{cursor:grabbing;background:#f0593a;color:#fff}
.ed-box .ed-tbar{bottom:calc(100% + 20px)}
/* éditeur : barres au-dessus de la sphère 360°, bouton 360° allumé quand actif */
.pfr-host .pfr-360 .pfr-scrub,.pfr-host .pfr-360 .pfr-ftb{z-index:6}
.pfr-host .pfr-ftb [data-act=v360][aria-pressed=true]{background:#f0593a;border-color:#f0593a}
/* 360° : les barres de l'éditeur passent au-dessus de la sphère (5) et de l'écran d'attente (6) */
.pfr-host .pfr-360 .pfr-scrub,.pfr-host .pfr-360 .pfr-ftb{z-index:14}
/* barre du lecteur : son et plein écran ; badge 360° strict (non cliquable) */
.pfr-host .pfr-scrub .vol{flex:0 0 64px;min-width:0;accent-color:#fff}
.pfr-host .pfr-scrub [data-act=vmute]{font-size:13px}
.pfr-host .pfr-ftb .p360-strict{font:700 11.5px/1 system-ui,sans-serif;letter-spacing:.04em;color:#06210f;background:#2fe07a;border-radius:99px;padding:8px 12px;white-space:nowrap;cursor:default;user-select:none}
.pfr-host .pfr-screen:fullscreen .pfr-ftb{display:none}
/* ---------- Médiathèque pro (public/medialib.js) ---------- */
.ml{--ml-line:var(--line,#26262c);--ml-dim:var(--dim,#8f8c85);--ml-acc:#f0593a;margin-top:8px}
/* coque « application » : la fenêtre ne défile plus, seule la grille défile */
html:has(body.ml-mode){overflow:hidden}
body.ml-mode{height:100vh;height:100dvh;overflow:hidden;padding-bottom:0;box-sizing:border-box}
body.ml-mode #app{height:100%;display:flex;flex-direction:column;padding-bottom:0}
body.ml-mode #app>*{flex-shrink:0}
body.ml-mode #app>.ml{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
body.ml-mode .ml-results{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;padding:4px 2px 24px}
body.ml-mode .banner,body.ml-mode .vit-bar{display:none}
/* barre d'outils d'une ligne (48 px) */
.ml-tb{display:flex;align-items:center;gap:10px;height:48px;min-height:48px;padding:0 2px;border-bottom:1px solid var(--ml-line);white-space:nowrap}
.ml-tl,.ml-tr{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.ml-tc{display:flex;flex:1 1 auto;min-width:0;justify-content:center;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0}.ml-tc::-webkit-scrollbar{display:none}
.ml-tb .ml-search{flex:0 0 auto;width:210px;padding:7px 11px;border-radius:8px;font-size:13.5px}
.ml-tb .ml-views button{padding:7px 10px}
.ml-tc .ml-chips{margin:0;flex-wrap:nowrap}
.ml-tb .ml-chip{padding:6px 11px;font-size:12.5px;flex:0 0 auto}
.ml-proj{flex:0 0 auto;max-width:180px;padding:6px 8px;border-radius:8px;border:1px solid var(--ml-line);background:#141418;color:inherit;font:600 12.5px/1 system-ui,sans-serif}
.ml-sync-st{color:var(--ml-dim);font-size:12px}
.ml-ib{width:32px;height:32px;padding:0;display:grid;place-items:center;font-size:16px}.ml-ib.spin{animation:mlSpin 1s linear infinite}
@keyframes mlSpin{to{transform:rotate(360deg)}}
.ml-tbtn{padding:7px 13px;font-size:13px}
/* mode focus : fil d'Ariane */
.ml-tb.focus{gap:12px}
.ml-back{display:inline-flex;align-items:center;height:36px;padding:0 18px;border-radius:9px;border:2px solid #fff;background:#fff;color:#000;font:800 14px/1 system-ui,sans-serif;letter-spacing:.01em;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.3)}
.ml-back:hover{background:#fff}.ml-back:focus-visible{outline:2px solid var(--ml-acc);outline-offset:2px}
.ml-crumb-sep{color:var(--ml-dim);font-size:18px}
.ml-crumb{font-size:16px;font-weight:700;overflow:hidden;text-overflow:ellipsis;min-width:0;max-width:40vw}
.ml-crumb-meta{color:var(--ml-dim);font-size:13px}
.ml-grow{flex:1 1 auto}
/* dépôt global */
.ml-dropov{position:fixed;inset:0;z-index:95;display:grid;place-items:center;background:rgba(10,10,12,.72);backdrop-filter:blur(3px);pointer-events:none}
.ml-dropov>div{display:flex;flex-direction:column;align-items:center;gap:8px;padding:34px 48px;border:2px dashed var(--ml-acc,#f0593a);border-radius:18px;color:#f3f0ea}
.ml-dropov b{font-size:20px}.ml-dropov span{color:#bdb9b1;font-size:13.5px}
.ml-search{flex:1;min-width:0;padding:10px 14px;border-radius:10px;border:1px solid var(--ml-line);background:rgba(255,255,255,.04);color:inherit;font:inherit;font-size:14.5px}
.ml-search:focus{outline:2px solid var(--ml-acc);outline-offset:0}
.ml-views{display:inline-flex;border:1px solid var(--ml-line);border-radius:10px;overflow:hidden}
.ml-views button{border:0;background:none;color:var(--ml-dim);padding:9px 13px;font:600 13px/1 system-ui,sans-serif;cursor:pointer}
.ml-views button[aria-pressed=true]{background:rgba(255,255,255,.1);color:inherit}
.ml-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.ml-chips.sub{margin-top:6px}
.ml-chip{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--ml-line);background:none;color:inherit;border-radius:99px;padding:7px 12px;font:600 13px/1 system-ui,sans-serif;cursor:pointer}
.ml-chip i{font-style:normal;font-weight:600;font-size:11.5px;color:var(--ml-dim);background:rgba(255,255,255,.07);border-radius:99px;padding:3px 7px}
.ml-chip.on{background:#f3f0ea;color:#111;border-color:#f3f0ea}.ml-chip.on i{background:rgba(0,0,0,.1);color:#333}
.ml-results{min-height:200px}
.ml-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin-top:6px}
.ml-card{display:flex;flex-direction:column;text-align:left;padding:0;border:1px solid var(--ml-line);border-radius:12px;background:rgba(255,255,255,.02);color:inherit;cursor:pointer;overflow:hidden;transition:transform .15s,border-color .15s,box-shadow .15s}
.ml-card:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.22);box-shadow:0 10px 28px rgba(0,0,0,.35)}
.ml-card.on{border-color:var(--ml-acc);box-shadow:0 0 0 1px var(--ml-acc)}
.ml-th{position:relative;display:block;aspect-ratio:16/9;background:#141418;overflow:hidden}
.ml-th img{width:100%;height:100%;object-fit:cover;display:block}
.ml-ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:rgba(255,255,255,.5);font-size:22px;background:linear-gradient(135deg,#17171c,#101013)}
.ml-ph b{font-weight:400}.ml-ph small{font:600 12px/1 system-ui,sans-serif;color:rgba(255,255,255,.45)}
.ml-ph.fail{font:600 12px/1.4 system-ui,sans-serif;padding:12px;text-align:center;color:#d9a441}
.ml-badges{position:absolute;left:8px;bottom:8px;right:8px;display:flex;gap:4px;flex-wrap:wrap}
.ml-badges i{font:700 10.5px/1 system-ui,sans-serif;letter-spacing:.04em;font-style:normal;color:#fff;background:rgba(0,0,0,.66);backdrop-filter:blur(4px);padding:4px 7px;border-radius:5px}
.ml-badges i.vr{background:#2fe07a;color:#06210f}.ml-badges i.k{background:#f3f0ea;color:#111}.ml-badges i.warn{background:rgba(217,164,65,.9);color:#1b1305}.ml-badges i.st{background:rgba(240,89,58,.9)}
.ml-badges i.d{margin-left:auto}
.ml-meta{display:flex;flex-direction:column;gap:3px;padding:9px 11px 11px;min-width:0}
.ml-meta b{font-size:13.5px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.ml-meta small{color:var(--ml-dim);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ml-table{width:100%;border-collapse:collapse;font-size:13.5px;margin-top:6px}
.ml-table th{text-align:left;font:600 11.5px/1 system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--ml-dim);padding:10px 8px;border-bottom:1px solid var(--ml-line);cursor:pointer;white-space:nowrap;user-select:none}
.ml-table th.s{color:inherit}.ml-table .r{text-align:right}
.ml-table td{padding:9px 8px;border-bottom:1px solid var(--ml-line);vertical-align:top}
.ml-table td.n b{display:block}.ml-table td.n small{color:var(--ml-dim);font-size:11.5px}
.ml-row{cursor:pointer}.ml-row:hover{background:rgba(255,255,255,.04)}.ml-row.on{background:rgba(240,89,58,.1)}
.ml-empty{padding:40px 0;text-align:center}
.ml-veil{position:fixed;inset:0;z-index:80;background:rgba(0,0,0,.35)}
.ml-drawer{position:fixed;top:0;right:0;bottom:0;width:min(460px,100vw);z-index:81;display:flex;flex-direction:column;background:#111114;border-left:1px solid #26262c;box-shadow:-20px 0 50px rgba(0,0,0,.45);color:#f3f0ea;animation:mlIn .22s ease-out}
@keyframes mlIn{from{transform:translateX(30px);opacity:0}}
.ml-dh{display:flex;align-items:center;gap:10px;padding:16px 18px;border-bottom:1px solid #26262c}.ml-dh h2{flex:1;margin:0;font-size:17px;line-height:1.3}
.ml-db{flex:1;overflow:auto;padding:16px 18px 28px;display:flex;flex-direction:column;gap:12px}
.ml-db h3{margin:10px 0 0;font:600 11.5px/1 system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#8f8c85}
.ml-pv{width:100%;max-height:300px;border-radius:10px;background:#000;object-fit:contain}
.ml-pv360{position:relative;aspect-ratio:16/9;border-radius:10px;overflow:hidden;background:#000}
.ml-db .fld2 input.busy{opacity:.6}
.ml-chk{display:flex;gap:9px;align-items:center;font-size:13.5px;cursor:pointer}
.ml-tech{display:grid;grid-template-columns:110px minmax(0,1fr);gap:7px 12px;margin:0;font-size:13.5px}
.ml-tech dt{color:#8f8c85}.ml-tech dd{margin:0;overflow-wrap:anywhere}
.ml-used{margin:0;padding-left:18px;font-size:13.5px}
.ml-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.ml-modal{position:fixed;inset:0;z-index:90;display:grid;place-items:center;background:rgba(0,0,0,.55);padding:20px}
.ml-mbox{width:min(440px,100%);background:#151518;border:1px solid #2c2c33;border-radius:14px;padding:20px;color:#f3f0ea;box-shadow:0 24px 60px rgba(0,0,0,.5)}
.ml-mbox h3{margin:0 0 8px;font-size:17px}.ml-mbox p{margin:0 0 10px;color:#bdb9b1;font-size:14px}.ml-mbox .warn{color:#e0a36a}
.ml-mbox .btn.danger{background:#c8341c;color:#fff;border-color:#c8341c}
.ml-dock{position:fixed;right:18px;bottom:18px;z-index:85;width:min(360px,calc(100vw - 36px));background:#141417;border:1px solid #2c2c33;border-radius:14px;box-shadow:0 18px 48px rgba(0,0,0,.5);color:#f3f0ea;font:13px/1.4 system-ui,sans-serif;overflow:hidden}
.ml-dh2{display:flex;align-items:center;gap:8px;padding:10px 12px}.ml-dh2 b{font-size:13px}.ml-dh2 span{flex:1;color:#9d9a93;font-size:12px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ml-dh2 button{border:0;background:rgba(255,255,255,.08);color:#f3f0ea;border-radius:7px;width:26px;height:26px;cursor:pointer}
.ml-dbar{height:3px;background:rgba(255,255,255,.08)}.ml-dbar i{display:block;height:100%;background:#2fe07a;transition:width .25s}
.ml-dl{max-height:220px;overflow:auto;padding:6px 12px 10px;display:flex;flex-direction:column;gap:7px}
.ml-di{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:2px 8px;align-items:center}
.ml-di .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ml-di .st{color:#9d9a93;font-size:12px}
.ml-di .pb{grid-column:1/-1;height:3px;border-radius:2px;background:rgba(255,255,255,.07);overflow:hidden}.ml-di .pb i{display:block;height:100%;background:#f3f0ea;transition:width .25s}
.ml-di.done .pb i{background:#2fe07a}.ml-di.err .st{color:#e0866a}.ml-di.err .pb i{background:#e0866a}
.ml-di button{border:1px solid #333;background:none;color:#f3f0ea;border-radius:6px;font-size:11.5px;padding:3px 7px;cursor:pointer}
.ml-dock.min .ml-dl{display:none}.ml-dock.idle .ml-dbar i{background:#2fe07a}
@media(max-width:900px){.ml-tb .ml-search{width:130px}.ml-sync-st{display:none}}
@media(max-width:700px){.ml-tb{overflow-x:auto}.ml-table th:nth-child(5),.ml-table td:nth-child(5),.ml-table th:nth-child(6),.ml-table td:nth-child(6){display:none}}
.ml-drawer h2,.ml-mbox h3{text-transform:none;letter-spacing:0;color:#f3f0ea;font-weight:650}
.ml-drawer h3{text-transform:uppercase}
/* piles de photos : couches décalées (::before / ::after), aperçu au survol, sous-vue d'une série */
.ml-stk{position:relative;display:block;margin:8px 8px 0}
.ml-stk::before,.ml-stk::after{content:"";position:absolute;inset:0;border-radius:8px;border:1px solid rgba(255,255,255,.14);background:#1b1b20;z-index:0}
.ml-stk::before{transform:translate(7px,-7px) rotate(1.6deg)}
.ml-stk::after{transform:translate(3px,-3px) rotate(-1deg);background:#202026}
.ml-stack .ml-th{z-index:1;border-radius:8px;box-shadow:0 6px 18px rgba(0,0,0,.45)}
.ml-stack:hover .ml-stk::before{transform:translate(10px,-10px) rotate(2.6deg)}
.ml-stack:hover .ml-stk::after{transform:translate(5px,-5px) rotate(-1.6deg)}
.ml-stk::before,.ml-stk::after{transition:transform .2s ease}
.ml-badges i.pile{background:#fff;color:#000;font-size:11px;padding:5px 8px}
.ml-stack:hover .ml-badges i.pile{background:var(--ml-acc,#f0593a);color:#fff}
.ml-sdots{position:absolute;left:8px;right:8px;top:8px;display:flex;gap:3px;z-index:2;opacity:0;transition:opacity .15s}
.ml-stack:hover .ml-sdots{opacity:1}
.ml-sdots i{flex:1;height:3px;border-radius:2px;background:rgba(255,255,255,.35)}.ml-sdots i.on{background:#fff}
.ml-sub.in{animation:mlSub .28s ease-out}.ml-sub.in.ml-rev{animation-name:mlBack}
@keyframes mlSub{from{transform:translateX(18px)}}@keyframes mlBack{from{transform:translateX(-18px)}}
.ml-srow td.n b{cursor:pointer}.ml-srow.open{background:rgba(255,255,255,.03)}.ml-child td.n{padding-left:28px}.ml-info{color:inherit;text-decoration:underline}
.ml-mosaic{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:6px}
.ml-mosaic button{padding:0;border:0;border-radius:6px;overflow:hidden;aspect-ratio:1;cursor:pointer;background:#000}
.ml-mosaic img{width:100%;height:100%;object-fit:cover;display:block}.ml-mosaic button:hover{outline:2px solid #f0593a}
/* visionneuse « Cover Flow » (medialib.js · mlFlow) : perspective matérielle, seules transform / opacity sont animées */
.ml-cf{position:fixed;inset:0;z-index:1000;background:rgba(5,5,5,.96);color:#f3f0ea;overflow:hidden;user-select:none;touch-action:none;animation:mlCfIn .18s ease-out}
@keyframes mlCfIn{from{opacity:0}}
.ml-cf-stage{position:absolute;inset:0;perspective:900px;perspective-origin:50% 45%}
.ml-cf-track{position:absolute;inset:0;transform-style:preserve-3d;pointer-events:none}
.ml-cf-it{position:absolute;inset:0 0 9vh;display:flex;align-items:center;justify-content:center;pointer-events:none;will-change:transform;backface-visibility:hidden;transition:transform .5s cubic-bezier(.2,.75,.2,1),opacity .3s ease}
.ml-cf-it img{max-height:72vh;max-width:65vw;width:auto;height:auto;object-fit:contain;display:block;pointer-events:auto;cursor:pointer;filter:brightness(.5);transition:filter .5s ease,max-height .35s ease,max-width .35s ease;-webkit-box-reflect:below 2px linear-gradient(transparent 76%,rgba(255,255,255,.2));box-shadow:0 30px 80px rgba(0,0,0,.6)}
.ml-cf-it.on img{filter:none;cursor:zoom-in}
/* agrandissement : la photo seule à 90vh, cartes latérales masquées */
/* agrandi : rendu 2D pur (ni perspective ni profondeur), glissement horizontal court */
.ml-cf.zoom .ml-cf-stage{perspective:none}
.ml-cf.zoom .ml-cf-track{transform-style:flat}
.ml-cf.zoom .ml-cf-it{transition:transform .22s ease-out}
.ml-cf.zoom .ml-cf-it img{max-height:90vh;max-width:96vw;filter:none;-webkit-box-reflect:unset;box-shadow:none}
.ml-cf.zoom .ml-cf-it{inset:0}
.ml-cf.zoom .ml-cf-it.on img{max-height:90vh;max-width:96vw;cursor:zoom-out;-webkit-box-reflect:unset}
.ml-cf.zoom .ml-cf-cap{opacity:.0}
.ml-cf-z{position:absolute;top:18px;right:72px;z-index:20;width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:#f3f0ea;font-size:18px;cursor:pointer}
.ml-cf-z:hover,.ml-cf-z[aria-pressed=true]{background:rgba(255,255,255,.2)}
.ml-cf-d{position:absolute;top:18px;right:124px;z-index:20;width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);color:#f3f0ea;font-size:16px;cursor:pointer;opacity:.7}
.ml-cf-d:hover{opacity:1;background:rgba(200,52,28,.85);border-color:transparent}
/* corbeille */
.ml-trash-h{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:6px 0 4px}.ml-trash-h p{margin:0;color:var(--ml-dim);font-size:13.5px;flex:1}
.ml-trash-h .btn.danger{background:#c8341c;border-color:#c8341c;color:#fff}
.ml-tcard{cursor:default}.ml-tcard:hover{transform:none}.ml-tcard .ml-th{opacity:.6;filter:grayscale(.6)}
.ml-restore{align-self:flex-start;margin-top:6px;padding:6px 12px;font-size:12.5px}
.ml-chip[data-f=trash]{border-style:dashed}
.ml-cf-x{position:absolute;top:18px;right:20px;z-index:20;width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:#f3f0ea;font-size:18px;cursor:pointer}
.ml-cf-x:hover{background:rgba(255,255,255,.18)}
.ml-cf-cap{transition:opacity .2s;position:absolute;left:0;right:0;bottom:26px;z-index:20;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none;text-align:center;padding:0 16px}
.ml-cf-cap b{font-size:15px;font-weight:650;max-width:70ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ml-cf-cap span{color:#9d9a93;font:600 12.5px/1 system-ui,sans-serif;letter-spacing:.06em}
.ml-pv.ml-drawer-media{cursor:zoom-in}
@media(prefers-reduced-motion:reduce){.ml-cf-it{transition:none}}
/* tiroir : les blocs ne se laissent pas écraser par le flex (le lecteur 360° tombait à 42 px de haut) */
.ml-db>*{flex-shrink:0}
.ml-360{display:flex;flex-direction:column;gap:8px}
.ml-drawer .ml-360 .pfr-screen:not(.ml-360-max){margin-top:0;width:100%;aspect-ratio:2/1}
.ml-360-fs{align-self:stretch;justify-content:center;padding:10px 14px;font-size:13.5px}
.ml-360 .note{margin:0;font-size:12.5px}
.pf-360-viewport:fullscreen{width:100vw;height:100vh;aspect-ratio:auto;border-radius:0}
.ml-360-close{display:none}
.pfr-360.ml-360-max{position:fixed;inset:0;z-index:1001;width:100vw;height:100vh;aspect-ratio:auto;border-radius:0;margin:0}
.ml-360-max .ml-360-close{display:block;position:absolute;top:18px;right:20px;z-index:20;width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:rgba(0,0,0,.5);color:#fff;font-size:18px;cursor:pointer}
.ml-q{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.ml-q>span{font:600 11.5px/1 system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#8f8c85}
.ml-q .ml-views button{padding:7px 11px;font-size:12.5px}.ml-q .ml-views button:disabled{opacity:.4;cursor:not-allowed}
.ml-dl{margin-left:auto;font-size:12.5px;color:#f3f0ea}.ml-q .note{flex-basis:100%;margin:0;font-size:12.5px}
/* style Magazine : légende vide invisible (comme sur la page du client), révélée au survol de la figure pour la saisir */
.pfr-host .pfr-tpl .pfr-cartel [contenteditable]:empty{opacity:0;transition:opacity .2s}
.pfr-host .pfr-tpl .pfr-fig:hover .pfr-cartel [contenteditable]:empty,.pfr-host .pfr-tpl .pfr-cartel [contenteditable]:focus{opacity:1}
