/* éditeur — plein écran sous le header, hors .container */
main.container:has(.editor){max-width:none;padding:16px 20px}
.editor{display:flex;gap:16px;align-items:flex-start;min-height:calc(100vh - 96px)}
/* aperçu/crop/timeline collants : le panneau de droite scrolle, la gauche reste sous les yeux (scroll interne si plus haute que l'écran) */
.ed-left{flex:1;min-width:0;display:flex;flex-direction:column;gap:16px;position:sticky;top:16px;max-height:calc(100vh - 32px);overflow:auto}
.ed-right{width:660px;flex:none;display:flex;flex-direction:column;gap:16px}
/* haut de colonne : aperçu (retour visuel) + cadrage côte à côte, au-dessus de la ligne de flottaison */
.ed-top{display:grid;grid-template-columns:auto minmax(230px,1fr);gap:16px;align-items:start}
.ed-top-col{display:flex;flex-direction:column;gap:16px;min-width:0}
/* pied collant : l'action principale reste atteignable sans redescendre 2 000 px */
.ed-foot{position:sticky;bottom:0;z-index:6;display:flex;flex-direction:column;gap:8px;
  padding:12px 0 8px;background:var(--bg);}
.ed-foot::before{content:"";position:absolute;left:0;right:0;bottom:100%;height:24px;background:linear-gradient(to bottom,transparent,var(--bg));pointer-events:none}
.ed-progress{max-width:none;margin:0}
.ed-err{margin:0;text-align:center}
.ed-foot-more{display:flex;justify-content:center;gap:18px;font-size:12px;min-height:16px}
.ed-foot-more .link:hover{color:var(--text);text-decoration:underline}
.ed-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:16px}
.ed-card h3{margin:0 0 12px;font-size:15px}
.ed-card-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.ed-card-head h3{margin:0;flex:1}
.counter{background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:0 9px;font-size:12px;color:var(--muted)}
.small{font-size:11px}
/* replis : <details> natif (aria-expanded implicite, clavier gratuit) + chevron CSS */
.ed-fold>summary{list-style:none;margin-bottom:0;padding:2px 0}
.ed-fold[open]>summary{margin-bottom:12px}
.ed-fold>summary::-webkit-details-marker{display:none}
.ed-fold>summary::after{content:"";width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);
  transform:rotate(45deg) translate(-2px,-2px);transition:transform .18s var(--ease,ease);flex:none}
.ed-fold[open]>summary::after{transform:rotate(225deg) translate(-2px,-2px)}
.ed-fold>summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}
.ed-fold>summary .ctl-hint{flex:none;margin-left:auto;padding-right:10px}
.ed-fold-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-bottom:10px}
.broll .ed-fold-actions>.btn-primary:first-child{flex:1 0 100%;height:44px;font-size:15px}
/* apparition du contenu replié — neutralisée par la règle prefers-reduced-motion globale (styles.css) */
.ed-fold[open]>:not(summary){animation:ed-fold-in .18s cubic-bezier(.22,1,.36,1) both}
@keyframes ed-fold-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* panneau crop */
.crop-head{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px;margin-bottom:12px}
.crop-title{flex:1;min-width:260px}
/* titre du clip : une ligne, coupée proprement (le titre complet est dans l'infobulle), état d'enregistrement juste dessous */
.crop-title{display:grid;grid-template-columns:minmax(0,auto) auto;align-items:baseline;column-gap:10px}
.crop-title>p{grid-column:1/-1}
.ed-clip-title{font-size:var(--fs-lg);line-height:1.25;letter-spacing:-.02em;margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crop-title p{font-size:12px;margin:2px 0 0}
.save-state{font-size:var(--fs-xs);font-weight:400;color:var(--muted);white-space:nowrap}
.tabs{display:flex;align-items:center;gap:2px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:3px}
.tabs button{background:none;border:0;color:var(--muted);font:inherit;font-size:13px;font-weight:500;padding:5px 10px;border-radius:6px;cursor:pointer}
.tabs button.selected{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}
.tabs>span{padding:0 6px;display:inline-flex}
.tabs a{background:none;border:0;color:var(--muted);font:inherit;font-size:13px;font-weight:500;padding:5px 10px;border-radius:6px;cursor:pointer;text-decoration:none}
.tabs a.selected{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}
.tabs a:hover:not(.selected),.tabs button:hover:not(.selected){color:var(--text)}
/* deux réglages distincts : FORMAT (ratio de sortie, montage propre) et CADRAGE (layout dans ce format) */
.crop-switch{display:flex;flex-direction:column;gap:6px;align-items:flex-start;flex:1 1 100%}
.ctl-row{display:flex;align-items:center;gap:10px}
.ctl-label{font-size:var(--fs-xs);font-weight:500;color:var(--muted);min-width:56px}
.ctl-hint{max-width:190px;line-height:1.3}
.ic-info{display:inline-flex;align-items:center}
.crop-stage{position:relative;background:var(--stage);border-radius:var(--radius-sm);overflow:hidden;width:100%}
.crop-stage video{display:block;width:100%;height:100%}
.crop-overlay{position:absolute;inset:0;touch-action:none;cursor:crosshair;user-select:none}
.zone{position:absolute;border:2px solid;box-shadow:0 0 0 9999px color-mix(in srgb,var(--stage) 35%,transparent);cursor:move;box-sizing:border-box}
.zone.fixed{cursor:default;border-style:dashed;box-shadow:none}
.zone-label{position:absolute;left:0;top:0;background:var(--zc);color:var(--stage);font-size:11px;font-weight:600;padding:1px 6px;border-radius:0 0 6px 0}
.zone-zoom{position:absolute;right:0;top:0;background:var(--stage-scrim);color:var(--on-stage);font-size:11px;font-weight:600;padding:1px 6px;border-radius:0 0 0 6px}
.zone-adjust{position:absolute;left:50%;bottom:6px;transform:translateX(-50%);background:var(--stage-scrim);color:var(--on-stage);border:1px solid color-mix(in srgb,var(--on-stage) 30%,transparent);border-radius:999px;font:inherit;font-size:11px;padding:2px 10px;cursor:pointer;white-space:nowrap}
.zone-adjust:hover{background:var(--zc);color:var(--stage)}
.hd{position:absolute;width:10px;height:10px;background:var(--on-stage);border:1px solid var(--stage);border-radius:2px}
.hd-nw{left:-5px;top:-5px;cursor:nwse-resize}.hd-se{right:-5px;bottom:-5px;cursor:nwse-resize}
.hd-ne{right:-5px;top:-5px;cursor:nesw-resize}.hd-sw{left:-5px;bottom:-5px;cursor:nesw-resize}
.hd-n{left:calc(50% - 5px);top:-5px;cursor:ns-resize}.hd-s{left:calc(50% - 5px);bottom:-5px;cursor:ns-resize}
.hd-w{left:-5px;top:calc(50% - 5px);cursor:ew-resize}.hd-e{right:-5px;top:calc(50% - 5px);cursor:ew-resize}
.controls{display:flex;align-items:center;gap:4px;margin-top:10px}
.controls .play .ic{width:18px;height:18px}
.controls .sep{width:1px;height:20px;background:var(--border);margin:0 6px}
.controls .speed{width:auto;padding:0 8px;font-size:13px}
.controls .time,.tl-bar .time{margin-left:auto;font-variant-numeric:tabular-nums;font-size:13px;color:var(--muted)}

/* timeline */
.tl-bar{display:flex;align-items:center;gap:6px;margin-bottom:10px}
.zoom-lvl{font-size:12px;color:var(--muted);min-width:24px;text-align:center}
.tl-scroll{overflow-x:auto;overflow-y:hidden}
.tl-track{position:relative;min-width:100%;touch-action:none;user-select:none;cursor:pointer}
.tl-ruler{position:relative;height:26px;border-bottom:1px solid var(--border)}
.tick{position:absolute;top:0;font-size:10px;color:var(--muted);transform:translateX(-50%);padding-top:2px}
.tick::after{content:"";position:absolute;left:50%;bottom:-8px;width:1px;height:6px;background:var(--border)}
.kf{position:absolute;top:13px;width:12px;height:12px;transform:translate(-50%,0) rotate(45deg);border:1px solid var(--stage);border-radius:2px;cursor:grab;z-index:3}
.tl-strip{position:relative;display:flex;height:56px;margin-top:8px;border-radius:6px;overflow:hidden;background:var(--surface)}
.tl-strip>i{flex:1;display:block;background-repeat:no-repeat}
.cut.auto{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--accent-2) 55%,transparent) 0 6px,color-mix(in srgb,var(--stage) 60%,transparent) 6px 12px);border-color:var(--accent-2)}
.cut{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--danger) 55%,transparent) 0 6px,color-mix(in srgb,var(--stage) 60%,transparent) 6px 12px);border-left:1px solid var(--danger);border-right:1px solid var(--danger);cursor:pointer;z-index:2}
.playhead{position:absolute;top:0;bottom:0;width:2px;background:var(--accent);transform:translateX(-1px);pointer-events:none;z-index:4}
.playhead::before{content:"";position:absolute;top:0;left:-4px;border:5px solid transparent;border-top:7px solid var(--accent)}

/* positions */
.pos-list{display:flex;flex-direction:column;gap:4px;max-height:232px;overflow-y:auto;padding:2px}
.pos-row{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;transition:background .15s,border-color .15s}
.pos-row:hover{background:var(--surface)}
.pos-row.active{background:var(--surface);border-color:color-mix(in srgb,var(--accent) 55%,transparent)}
.dot{width:10px;height:10px;border-radius:50%;flex:none}
.pos-body{flex:1;min-width:0}
.pos-line{display:flex;align-items:baseline;gap:8px;font-size:13px;white-space:nowrap;overflow:hidden}
.pos-line b{font-size:15px;font-weight:600;color:var(--text)}
.pos-end{font-size:13px;color:var(--muted)}
.pos-layout{color:var(--muted);overflow:hidden;text-overflow:ellipsis}
.pos-extra{color:var(--muted);opacity:.7;font-size:12px}
.pos-bar{position:relative;height:4px;background:var(--border);border-radius:3px;margin-top:6px}
.pos-bar>i{position:absolute;top:0;bottom:0;border-radius:3px}
.pos-del{background:none;border:0;color:var(--muted);cursor:pointer;padding:6px;border-radius:6px;display:flex}
.pos-del:hover{color:var(--text);background:var(--bg-elev)}
.ed-reset{align-self:center;font-size:12px}

/* aperçu */
.preview{display:flex;flex-direction:column;align-items:center}
.preview h3{align-self:flex-start}
/* hauteur plafonnée : le canevas tient dans la grille du haut quel que soit le format (9:16 → 4:5) */
.preview canvas{max-width:100%;max-height:min(430px,46vh);width:auto;border-radius:var(--radius-sm);background:var(--stage)}
.upgrade-link{font-size:12px;margin-top:10px}

/* sous-titres */
.subs.on{border-color:var(--accent)}
.subs-head{display:flex;align-items:center;gap:8px;cursor:pointer}
.cc{border:1px solid var(--text);border-radius:4px;font-size:10px;font-weight:700;padding:0 3px}
.subs-head .switch{margin-left:auto}
.switch{position:relative;width:38px;height:22px;display:inline-block}
.switch input{opacity:0;width:0;height:0}
.switch i{position:absolute;inset:0;background:var(--border);border-radius:999px;transition:background-color var(--dur-2) var(--ease-out);cursor:pointer}
.switch i::before{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:var(--on-stage);box-shadow:var(--shadow-xs);transition:transform var(--dur-2) var(--ease-out)}
.switch input:checked+i{background:var(--accent-fill)}
.switch input:focus-visible+i{outline:2px solid var(--accent);outline-offset:2px}
.switch input:checked+i::before{transform:translateX(16px)}
.subs-preview{background:var(--stage);color:var(--on-stage);border-radius:var(--radius-sm);padding:14px;text-align:center;margin-top:12px;font-size:15px}
.subs-label{font-size:var(--fs-xs);font-weight:500;color:var(--muted);margin:16px 0 8px}
.swatches{display:flex;gap:10px}
.swatch{width:26px;height:26px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;box-shadow:0 0 0 2px var(--bg-elev)}
.swatch.selected{box-shadow:0 0 0 2px var(--bg-elev),0 0 0 4px var(--accent)}
.segmented{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}
.segmented button{background:none;border:0;color:var(--muted);font:inherit;font-size:13px;font-weight:600;padding:6px 14px;cursor:pointer}
.segmented button.selected{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}
select.input{appearance:auto;width:100%}
.subs-edit{margin-top:14px;width:100%}
.modal-bg{position:fixed;inset:0;background:color-mix(in srgb,var(--stage) 60%,transparent);z-index:50;display:flex;align-items:center;justify-content:center}
.modal{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:20px;width:560px;max-width:92vw;max-height:80vh;display:flex;flex-direction:column}
.seg-list{overflow-y:auto;display:flex;flex-direction:column;gap:8px}
.seg-row{display:flex;gap:10px;align-items:flex-start}
.seg-row span{width:40px;flex:none;font-size:12px;padding-top:8px}
.words{flex:1;display:flex;flex-wrap:wrap;gap:2px 4px;line-height:1.5}
.word{background:none;border:1px solid transparent;border-radius:4px;color:var(--text);font:inherit;font-size:14px;padding:2px 4px;cursor:pointer}
.word:not(:disabled):hover{background:var(--surface);border-color:var(--border)}
.word:disabled{cursor:default}
.word-edit{background:var(--bg);color:var(--text);border:1px solid var(--accent);border-radius:4px;font:inherit;font-size:14px;padding:2px 4px;width:auto}
.hook-head{display:flex;align-items:center;justify-content:space-between}
.hook-head .switch{margin:0}
.subs .input[type=text]{width:100%;margin-top:4px}

/* export */
.ed-export{width:100%;height:46px;font-size:15px;box-shadow:var(--shadow-lg)}

/* popup aide */
.help-pop{position:fixed;right:24px;bottom:104px;width:280px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px;z-index:40;box-shadow:var(--shadow-lg)}
.help-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-size:13px}
.help-pop video{width:100%;aspect-ratio:16/9;border-radius:var(--radius-sm);background:var(--bg-elev);display:flex;align-items:center;justify-content:center;font-size:28px}

@media (max-width:1200px){.editor{flex-direction:column}.ed-right{width:100%}.ed-left{position:static;max-height:none;overflow:visible}}
@media (max-width:1040px){.ed-top{grid-template-columns:1fr}.crop-switch{align-items:flex-start}.ctl-hint{display:none}}
/* Sous 720 px l'éditeur déborde (le panneau crop ne descend pas sous ~474 px) : on affiche un message net. */
.ed-mobile{display:none}
@media (max-width:720px){
  .editor{display:none}
  .ed-mobile{display:flex;flex-direction:column;align-items:flex-start;gap:12px;max-width:420px;margin:40px auto;padding:24px;
    background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius)}
  .ed-mobile h1{font-size:22px}
  .ed-mobile p{font-size:14px}
}

/* Modale "Que veux-tu faire ?" (clic hors keyframe) */
.ask-bg{position:absolute;inset:0;background:color-mix(in srgb,var(--stage) 55%,transparent);display:flex;align-items:center;justify-content:center;z-index:5}
.ask{width:330px;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:18px 18px 14px;display:flex;flex-direction:column;gap:10px}
.ask-title{text-align:center;font-size:14px;color:var(--text);margin-bottom:4px}
.ask-opt{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:10px 14px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;transition:background .15s}
.ask-opt b{font-size:14px;font-weight:600}.ask-opt span{font-size:12px;color:var(--muted)}
.ask-opt.primary{background:var(--btn-primary-bg);border-color:transparent;color:var(--btn-primary-fg)}.ask-opt.primary span{color:var(--btn-primary-fg);opacity:.8}
.ask-opt:not(.primary):hover{background:var(--bg)}
.ask-hide{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);cursor:pointer;margin-top:2px}

/* Timeline : bandes colorées par keyframe + bulle de temps */
.kf-band{position:absolute;top:0;bottom:0;pointer-events:none;z-index:1;background:var(--kc);opacity:.32;border-top:4px solid var(--kc)}
.kf.active{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--text)}
.kf-tip{position:absolute;top:-4px;transform:translateX(-50%);background:color-mix(in srgb,var(--stage) 88%,transparent);color:var(--danger);font:11px/1.6 var(--font-mono);padding:0 6px;border-radius:6px;pointer-events:none;z-index:4;white-space:nowrap}

/* barre IA */
.ai-bar{display:flex;flex-direction:column;gap:8px;padding:12px 14px}
.ai-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.ai-arrow{color:var(--muted);font-size:13px}
.ai-framing{display:flex;align-items:center;gap:6px}
.ai-framing select,.ai-row>select{font:inherit;font-size:13px;padding:4px 8px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);min-height:32px}
.ai-row .btn-sm:disabled+.ai-arrow{opacity:.4}
.ai-hint{margin:0;line-height:1.35}
.ai-bar .btn-sm:disabled{opacity:.45}
.ai-spin{width:12px;height:12px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:ai-spin .8s linear infinite}
@keyframes ai-spin{to{transform:rotate(360deg)}}

/* sous-titres : style / police / position */
.subs-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.subs-row input[type=range]{width:100%;accent-color:var(--accent)}
.subs .stg{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;margin-top:4px}.subs .stg-tile b{font-size:12.5px}.subs .stg-tile small{display:none}
.st-mini{display:inline-block;font-weight:700;font-size:15px;padding:2px 6px;border-radius:4px;color:var(--on-stage);line-height:1.2}
.st-mini.st-karaoke,.subs-preview.st-karaoke .st-cur{color:var(--sc)}
.st-mini.st-boxed,.subs-preview.st-boxed div{background:var(--on-stage);color:var(--stage);text-transform:uppercase;display:inline-block;padding:0 6px;border-radius:3px}
.st-mini.st-outline,.subs-preview.st-outline div{color:var(--sc);-webkit-text-stroke:1px var(--stage);text-shadow:0 1px 0 var(--stage)}
.st-mini.st-glow,.subs-preview.st-glow div{color:var(--sc);text-shadow:0 0 6px var(--sc),0 0 12px var(--sc)}
.st-mini.st-minimal,.subs-preview.st-minimal div{color:var(--sc);text-shadow:0 1px 3px color-mix(in srgb,var(--stage) 60%,transparent)}
.subs-preview div{font-weight:700;line-height:1.4}
.subs-preview .st-cur{color:var(--sc)}

/* B-roll */
.broll-sugg{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}
.broll-sugg-row{display:flex;align-items:center;gap:10px;font-size:13px;padding:6px 10px;border-radius:var(--radius-sm);border:1px solid transparent}
.broll-sugg-row.selected{border-color:var(--accent)}
.broll-q{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.broll-search{display:flex;gap:8px}
.broll-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0}
.broll-hit{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}
.broll-hit img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}
.broll-hit-bar{display:flex;justify-content:space-between;align-items:center;padding:4px 8px;font-size:12px}
.broll-list{display:flex;flex-direction:column;gap:4px;margin-top:10px}
.broll-row{display:flex;align-items:center;gap:10px;font-size:13px;padding:6px 8px;border-radius:var(--radius-sm);background:var(--surface)}
.broll-thumb{width:48px;height:30px;border-radius:4px;background:var(--bg);overflow:hidden;flex:none}
.broll-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.broll-row .pos-del{margin-left:auto}
.broll-band{position:absolute;bottom:0;height:3px;background:var(--accent-fill);border-radius:2px;z-index:2;pointer-events:none}

/* musique */
.music-list{display:flex;flex-direction:column;gap:4px}
.music-row{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:var(--radius-sm);border:1px solid transparent;background:var(--surface)}
.music-row.selected{border-color:var(--accent)}
.music-none{cursor:pointer;color:var(--muted);font:inherit;font-size:13px;text-align:left}
.music-pick{flex:1;min-width:0;display:flex;gap:10px;align-items:baseline;background:none;border:0;color:var(--text);font:inherit;font-size:13px;cursor:pointer;text-align:left;padding:0}
.music-pick b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.music-row audio{height:28px;width:180px}
.music-opts{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;margin-top:12px;font-size:12px;color:var(--muted)}
.music-opts label{display:flex;flex-direction:column;gap:4px}
.music-opts input[type=range]{width:100%;accent-color:var(--accent)}
.music-duck{flex-direction:row!important;align-items:center;justify-content:space-between;grid-column:1/-1}

/* emojis */
.emoji-picker{display:grid;grid-template-columns:repeat(12,1fr);gap:4px}
.emoji-picker button{background:var(--surface);border:1px solid var(--border);border-radius:6px;font-size:18px;height:34px;cursor:pointer;padding:0}
.emoji-picker button:hover{border-color:var(--muted)}
.emoji-list{display:flex;flex-direction:column;gap:4px;margin-top:10px}
.emoji-row{display:flex;align-items:center;gap:10px;font-size:13px;padding:4px 8px;border-radius:var(--radius-sm);cursor:pointer}
.emoji-row:hover{background:var(--surface)}
.emoji-glyph{font-size:20px;width:28px;text-align:center}
.emoji-row .segmented{margin-left:auto}
.emoji-row .segmented button{padding:2px 8px;font-size:11px}
.emoji-mark{position:absolute;top:2px;transform:translateX(-50%);font-size:12px;pointer-events:none;z-index:2}

/* bornes du clip (poignées 6 px) et bords des coupes */
.bound{position:absolute;top:0;bottom:0;width:6px;background:var(--accent);cursor:ew-resize;z-index:6;opacity:.85}
.bound:hover{opacity:1}
.bound.l{left:0;border-radius:6px 0 0 6px}.bound.r{right:0;border-radius:0 6px 6px 0}
.bound-tip{position:absolute;top:50%;left:12px;transform:translateY(-50%);background:color-mix(in srgb,var(--stage) 88%,transparent);color:var(--on-stage);font:12px/1.6 var(--font-mono);padding:0 8px;border-radius:6px;pointer-events:none;z-index:7;white-space:nowrap}
.bound-tip.r{left:auto;right:12px}
.cut-hd{position:absolute;top:0;bottom:0;width:8px;cursor:ew-resize;z-index:3}
.cut-hd.l{left:-2px}.cut-hd.r{right:-2px}
.cut-hd:hover{background:color-mix(in srgb,var(--text) 22%,transparent)}

/* modale raccourcis clavier */
.kb-modal{width:380px}
.kb-list{display:flex;flex-direction:column;gap:6px}
.kb-row{display:flex;align-items:center;gap:12px;font-size:13px}
.kb-row kbd{min-width:120px;font:12px/1.8 var(--font-mono);background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:0 8px;text-align:center}
/* Bascule Standard / Premium et comparaison des deux rendus (habillage.rs) */
.ed-style{align-self:stretch}.ed-style button{flex:1}
.ed-style-hint{margin:0;line-height:1.35}
.ed-montage{display:flex;gap:var(--space-2,8px);align-items:center;flex-wrap:wrap}.ed-montage select{flex:1;min-width:0}
.ed-result{width:100%;max-height:46vh;border-radius:8px;background:var(--stage)}
.ed-compare{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ed-compare figure{margin:0;display:flex;flex-direction:column;gap:4px}
.ed-compare figcaption{font-size:12px;font-weight:600;text-align:center}
.ed-compare video{width:100%;max-height:46vh;border-radius:8px;background:var(--stage)}

/* ---- « Ajouter un média » (components/media_picker.rs) : éditeur de clips + studio Explainer ---- */
.media-modal{width:880px;max-width:94vw;max-height:88vh;overflow:auto;gap:12px;padding:20px 22px}
.media-modal>*{flex-shrink:0}
.media-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.media-head h2{margin:0;font-size:20px}
.media-where{margin:-6px 0 0}
.media-tabs{display:flex;width:100%;overflow-x:auto}
.media-tabs button{flex:1 0 auto;min-height:40px}
.media-search{display:flex;gap:8px}
.media-search .input{flex:1}
.media-drop{display:flex;flex-direction:column;align-items:center;gap:4px;padding:18px;border:1.5px dashed var(--border);border-radius:var(--radius);background:none;color:var(--text);font:inherit;cursor:pointer}
.media-drop:hover,.media-drop:focus-visible{border-color:var(--accent)}
.media-drop svg{width:22px;height:22px;color:var(--accent)}
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:10px;max-height:300px;overflow:auto;padding:2px}
.media-grid[aria-busy=true]{opacity:.55}
.media-empty{grid-column:1/-1;margin:8px 0}
.media-tile{position:relative}
.media-tile-btn{display:block;width:100%;padding:0;border:2px solid transparent;border-radius:10px;overflow:hidden;background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer;position:relative}
.media-tile.selected .media-tile-btn{border-color:var(--accent)}
.media-tile-btn img,.media-noimg{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:16/10;object-fit:cover;background:var(--bg-elev)}
.media-dur{position:absolute;top:6px;left:6px;background:var(--stage-scrim);color:var(--on-stage);font-size:12px;font-weight:600;padding:1px 6px;border-radius:6px}
.media-label{display:block;padding:6px 8px;font-size:13px;line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.media-del{position:absolute;top:4px;right:4px;width:30px;height:30px;border:0;border-radius:8px;background:var(--stage-scrim);color:var(--on-stage);display:flex;align-items:center;justify-content:center;cursor:pointer}
.media-del svg{width:15px;height:15px}
.media-styles{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:8px 0}
.media-styles p{margin:0;line-height:1.5}
.media-settings{display:grid;grid-template-columns:180px 1fr;gap:18px;border-top:1px solid var(--border);padding-top:14px}
.media-preview .media-frame{position:relative;aspect-ratio:9/16;border-radius:10px;overflow:hidden;background:repeating-linear-gradient(135deg,var(--bg-elev) 0 10px,var(--surface) 10px 20px);border:1px solid var(--border)}
.media-preview.horizontal .media-frame{aspect-ratio:16/9}
.media-frame-main{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center;padding:10px;font-size:12px;color:var(--muted)}
.media-frame-ins{position:absolute;overflow:hidden;transition:left var(--dur-2) var(--ease-out),top var(--dur-2) var(--ease-out),right var(--dur-2) var(--ease-out),bottom var(--dur-2) var(--ease-out),width var(--dur-2) var(--ease-out),height var(--dur-2) var(--ease-out);box-shadow:0 0 0 1.5px var(--accent)}
.media-frame-ins video,.media-frame-ins img{width:100%;height:100%;object-fit:cover;display:block}
.media-controls{display:flex;flex-direction:column;gap:12px;min-width:0}
.media-picked{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.media-modes{border:0;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.media-modes legend{font-size:13px;font-weight:600;margin-bottom:6px;padding:0}
.media-mode{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 8px;border:1.5px solid var(--border);border-radius:10px;cursor:pointer;text-align:center}
.media-mode.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}
.media-mode input{position:absolute;opacity:0;pointer-events:none}
.media-mode:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}
.media-mode span{display:flex;flex-direction:column;gap:2px;font-size:13px}
.media-mode small{font-size:12px;line-height:1.3}
.media-ico{position:relative;width:26px;height:40px;border:1.5px solid currentColor;border-radius:4px;color:var(--muted)}
.media-ico::after{content:"";position:absolute;background:var(--accent);border-radius:1px}
.media-ico-full::after{inset:2px}
.media-ico-pip::after{right:2px;top:2px;width:10px;height:15px}
.media-ico-split::after{left:2px;right:2px;bottom:2px;height:16px}
.media-dur-field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600}
.media-dur-field input{width:100%;accent-color:var(--accent)}
.media-sound span:first-child{display:flex;flex-direction:column;gap:2px}
.media-sound small{font-size:12px;font-weight:400}
.media-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}
.broll-mode{height:32px;padding:0 6px;font-size:13px;width:auto;max-width:130px}
.broll-sound{opacity:.55}.broll-sound.on{opacity:1;color:var(--accent)}
/* studio Explainer : média de la scène sur l'aperçu + bloc de l'inspecteur */
.xp-media-ins{position:absolute;overflow:hidden;z-index:2;pointer-events:none;box-shadow:0 0 0 1px color-mix(in srgb,var(--on-stage) 35%,transparent)}
.xp-media-ins.off{display:none}
.xp-media-ins video{width:100%;height:100%;object-fit:cover;display:block}
.xp-media-cur{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.xp-media-cur img{width:44px;height:60px;object-fit:cover;border-radius:6px;flex:none}
.xp-media-cur b{font-size:13px;line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.xp-media-add{width:100%;margin-top:6px}

/* modales de l'éditeur (raccourcis, média, aide) : fond et carte apparaissent, la carte reste centrée */
.modal-bg{transition:opacity var(--dur-3) var(--ease-out)}
.modal{box-shadow:var(--shadow-lg);transition:opacity var(--dur-3) var(--ease-out),transform var(--dur-3) var(--ease-out)}
@starting-style{.modal-bg{opacity:0}.modal{opacity:0;transform:translateY(8px) scale(.98)}}
/* l'aide des raccourcis s'ouvre au clavier (?) : instantanée, comme toute action clavier */
.modal-bg:has(.kb-modal),.kb-modal{transition:none}
/* Montage pro : recettes en cartes avec exemple avant/après (pages/montage.rs) */
.mp-panel{display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}
.mp-panel.on{border-color:var(--accent-fill)}
.mp-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.mp-head h3{margin:0;font-size:15px}
.mp-cards{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:2px}
.mp-card{flex:0 0 132px;scroll-snap-align:start;display:flex;flex-direction:column;gap:4px;padding:6px;text-align:left;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);cursor:pointer;font:inherit}
.mp-card:hover{border-color:var(--border-strong)}
.mp-card.selected{border-color:var(--accent-fill);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent-fill)}
.mp-card strong{font-size:13px}.mp-line{font-size:11.5px;line-height:1.3;color:var(--muted)}
.mp-thumb{position:relative;display:block;aspect-ratio:9/8;border-radius:6px;overflow:hidden;background:#111}
.mp-thumb img,.mp-thumb video{width:100%;height:100%;object-fit:cover;display:block}
.mp-play{position:absolute;right:4px;bottom:4px;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:rgba(0,0,0,.6);color:#fff}
.mp-play svg{width:11px;height:11px}
.mp-loop{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}.mp-loop input{width:18px;height:18px;accent-color:var(--accent-fill)}
.mp-example video,.mp-paywall video{width:100%;border-radius:var(--radius-sm);background:#000;margin:8px 0}
.mp-paywall{width:440px;gap:6px}.mp-pw-list{margin:4px 0;padding-left:18px;line-height:1.6}
.mp-pw-go{width:100%;height:48px;font-size:16px;margin-top:6px}.mp-pw-later{align-self:center;margin-top:4px}
.mp-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;font-weight:600;cursor:pointer}
.mp-plan{width:640px;max-height:88vh;gap:10px}
.mp-blocks{overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding-right:4px}
.mp-block{border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px;display:flex;flex-direction:column;gap:6px;background:var(--surface)}
.mp-block h4{margin:0;font-size:13px}.mp-block p{margin:0}
.mp-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px}
.mp-opts{display:flex;gap:8px;overflow-x:auto}.mp-opts.off{opacity:.45}
.mp-opt{flex:0 0 150px;display:flex;flex-direction:column;gap:4px;padding:6px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);text-align:left;font:inherit;font-size:12px;color:var(--text);cursor:pointer}
.mp-opt img{width:100%;height:84px;object-fit:cover;border-radius:4px;background:#111}
.mp-opt.selected{border-color:var(--accent-fill);box-shadow:0 0 0 1px var(--accent-fill);background:var(--accent-soft)}
.mp-score{font-style:normal;font-size:11px;color:var(--accent)}
.mp-card-row{display:flex;flex-direction:column;gap:4px;padding:6px 0;border-top:1px solid var(--border)}.mp-card-row:first-of-type{border-top:0}
.mp-card-edit{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.mp-rhythm button{padding:4px 10px;font-size:12px}
.mp-handle{max-width:160px}
.mp-wait{display:flex;flex-direction:column;align-items:center;gap:10px;padding:40px 10px;text-align:center}
.mp-plan-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:6px;border-top:1px solid var(--border)}
@media (max-width:640px){.mp-plan{width:100vw;max-width:100vw;max-height:92vh;border-radius:16px 16px 0 0;align-self:flex-end}.mp-grid,.mp-card-edit{grid-template-columns:1fr}.mp-opt{flex-basis:130px}.mp-plan-foot .btn{flex:1;height:48px}}
