/* ReplayTower V1 — layout & composants. Charge tokens.css avant. */
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:var(--font);background:var(--bg-canvas);color:var(--text-primary);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
img{max-width:100%;display:block}
::selection{background:var(--accent-tint)}
:focus-visible{outline:none;box-shadow:0 0 0 2px var(--accent-bright),0 0 0 6px rgba(110,160,245,.22);border-radius:6px}
.ic svg{width:100%;height:100%;stroke:currentColor;stroke-width:1.75;fill:none;stroke-linecap:round;stroke-linejoin:round}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- App shell ---------- */
.app{display:flex;min-height:100vh}
.sidebar{width:236px;flex:0 0 236px;background:var(--bg-base);border-right:1px solid var(--hairline);display:flex;flex-direction:column;padding:var(--sp-6) var(--sp-3);position:sticky;top:0;height:100vh;transition:width .2s var(--ease),flex-basis .2s var(--ease)}
.app.collapsed .sidebar{width:66px;flex-basis:66px}
.logo{display:flex;align-items:center;gap:10px;padding:0 var(--sp-3) var(--sp-8);font-weight:600}
.logo .mark{width:28px;height:28px;border-radius:8px;background:linear-gradient(140deg,var(--accent-bright),var(--accent-press));flex:0 0 28px;box-shadow:0 0 18px rgba(110,160,245,.35);display:grid;place-items:center}
.logo .mark svg{width:100%;height:100%;display:block}
.logo .txt{white-space:nowrap;overflow:hidden;letter-spacing:.2px}
.app.collapsed .logo .txt,.app.collapsed .navitem .lbl,.app.collapsed .side-foot .txt{display:none}
.nav{display:flex;flex-direction:column;gap:2px}
.navitem{display:flex;align-items:center;gap:12px;padding:10px var(--sp-3);border-radius:var(--r-md);color:var(--text-secondary);font-size:14px;transition:.16s var(--ease);position:relative;width:100%;text-align:left}
.navitem:hover{background:var(--surface-1);color:var(--text-primary)}
.navitem[aria-current="page"]{background:var(--accent-tint);color:var(--text-primary)}
.navitem[aria-current="page"]::before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:2px;border-radius:2px;background:var(--accent-bright)}
.navitem .ic{width:20px;height:20px;flex:0 0 20px}
.side-foot{margin-top:auto;display:flex;align-items:center;gap:10px;padding:10px var(--sp-3);color:var(--text-tertiary);font-size:13px}
.side-foot .av{width:28px;height:28px;border-radius:99px;background:var(--surface-3);flex:0 0 28px;display:grid;place-items:center;color:var(--text-secondary);font-size:12px}
.collapse-btn{margin-top:var(--sp-3);align-self:flex-start;color:var(--text-tertiary);font-size:12px;padding:6px var(--sp-3);border-radius:var(--r-sm)}
.collapse-btn:hover{color:var(--text-secondary);background:var(--surface-1)}
.content{flex:1;min-width:0;display:flex;flex-direction:column;position:relative}

/* top bar (mobile + controls) */
.topbar{display:flex;align-items:center;gap:var(--sp-3);height:56px;padding:0 var(--sp-6);border-bottom:1px solid var(--hairline);position:sticky;top:0;background:color-mix(in srgb,var(--bg-canvas) 82%,transparent);backdrop-filter:blur(14px);z-index:20}
.topbar .burger{display:none;width:38px;height:38px;flex:0 0 38px;border-radius:10px;color:var(--text-secondary)}
.topbar .burger .ic{width:20px;height:20px}
.topbar .burger:hover{background:var(--surface-2)}
.topbar .demo{font-size:11px;color:var(--text-tertiary);border:1px solid var(--hairline);padding:3px 9px;border-radius:99px}
.topbar .spacer{flex:1}
.seg{display:flex;background:var(--surface-2);border-radius:99px;padding:3px;border:1px solid var(--hairline)}
.seg button{font-size:12px;padding:5px 11px;border-radius:99px;color:var(--text-secondary);transition:.16s var(--ease)}
.seg button[aria-pressed="true"]{background:var(--accent-tint);color:var(--text-primary)}
.seg .lab{font-size:11px;color:var(--text-secondary);padding:0 8px 0 4px;align-self:center}

/* ---------- Buttons / primitives ---------- */
.btn{border-radius:var(--r-md);padding:12px 22px;font-size:14px;font-weight:500;transition:.16s var(--ease);display:inline-flex;align-items:center;gap:8px;justify-content:center}
.btn-primary{background:var(--accent);color:#fff;box-shadow:0 6px 18px rgba(61,111,209,.3)}
.btn-primary:hover{background:var(--accent-hover);transform:translateY(-1px)}
.btn-primary:active{background:var(--accent-press);transform:translateY(0)}
/* État inactif clair : un bouton désactivé (disabled ou aria-disabled) ne doit JAMAIS rester bleu ni cliquable. */
.btn:disabled,.btn[aria-disabled="true"]{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none;pointer-events:none}
.btn-primary:disabled,.btn-primary[aria-disabled="true"]{background:var(--surface-3);color:var(--text-tertiary);box-shadow:none;transform:none}
.btn-primary:disabled:hover,.btn-primary[aria-disabled="true"]:hover{background:var(--surface-3);transform:none}
.btn-2{background:var(--surface-2);border:1px solid var(--hairline-strong);color:var(--text-primary)}
.btn-2:hover{background:var(--surface-3)}
.btn-ghost{color:var(--text-secondary)}
.btn-ghost:hover{color:var(--text-primary);background:var(--surface-2)}
/* Action primaire (btn-1) : même langage visuel que btn-primary — pleine couleur accent, texte blanc.
   (Auparavant sans règle : les boutons d'action primaires s'affichaient sans cadre ni couleur.) */
.btn-1{background:var(--accent);color:#fff;box-shadow:0 6px 18px rgba(61,111,209,.28)}
.btn-1:hover{background:var(--accent-hover);transform:translateY(-1px)}
.btn-1:active{background:var(--accent-press);transform:translateY(0)}
.btn-1:disabled,.btn-1[aria-disabled="true"]{background:var(--surface-3);color:var(--text-tertiary);box-shadow:none;transform:none}
.btn-1:disabled:hover,.btn-1[aria-disabled="true"]:hover{background:var(--surface-3);transform:none}
/* Action destructive (btn-danger) : déconnecter / révoquer — couleur distincte, lisible, jamais confondue avec une action primaire. */
.btn-danger{background:transparent;border:1px solid var(--danger);color:var(--danger)}
.btn-danger:hover{background:color-mix(in srgb,var(--danger) 14%,transparent);color:var(--danger)}
.btn-danger:active{background:color-mix(in srgb,var(--danger) 22%,transparent)}
.btn-danger:disabled,.btn-danger[aria-disabled="true"]{background:transparent;color:var(--text-tertiary);border-color:var(--hairline-strong)}
/* Focus clavier cohérent pour tous les boutons : anneau net détaché du bouton. */
.btn:focus-visible{outline:none;box-shadow:0 0 0 2px var(--bg-canvas),0 0 0 4px var(--accent-bright)}
/* État chargement : spinner en tête, bouton non cliquable, libellé conservé. aria-busy="true" posé par le JS pendant l'opération. */
.btn[aria-busy="true"]{pointer-events:none;opacity:.9}
.btn[aria-busy="true"]::before{content:"";width:14px;height:14px;flex:0 0 14px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:rt-btn-spin .6s linear infinite}
@keyframes rt-btn-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.btn[aria-busy="true"]::before{animation-duration:1.5s}.btn-1:hover,.btn-primary:hover{transform:none}}
.linkbtn{color:var(--accent-bright);font-size:14px;font-weight:500}
.linkbtn:hover{text-decoration:underline}

/* ---------- Screens ---------- */
.screen{display:none;flex:1}
.screen.active{display:block}
.pad{padding:var(--sp-12) var(--sp-6);max-width:1040px;margin:0 auto;width:100%}
.kick{color:var(--text-tertiary);font-size:12px;letter-spacing:.05em;text-transform:uppercase;margin-bottom:8px}

/* HOME */
.home{min-height:calc(100vh - 56px);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--sp-16) var(--sp-6);position:relative;overflow:hidden}
.ambient{position:absolute;inset:0;pointer-events:none;background:
  radial-gradient(60% 50% at 50% 20%, rgba(61,111,209,.16), transparent 70%),
  radial-gradient(42% 42% at 80% 84%, rgba(232,199,154,.06), transparent 70%)}
.home-inner{position:relative;width:100%;max-width:720px;text-align:center}
.phrase{font-size:clamp(28px,4.6vw,46px);font-weight:500;line-height:1.1;letter-spacing:-.5px;margin-bottom:var(--sp-8)}
.command{display:flex;align-items:center;gap:var(--sp-3);background:var(--surface-1);border:1px solid var(--hairline-strong);border-radius:var(--r-xl);padding:var(--sp-4) var(--sp-4) var(--sp-4) var(--sp-6);box-shadow:var(--shadow);transition:.22s var(--ease)}
.command.drag,.command:focus-within{border-color:var(--accent-bright);box-shadow:0 0 0 4px rgba(110,160,245,.16),var(--shadow-lg);background:linear-gradient(0deg,var(--accent-tint),var(--surface-1))}
.command input{flex:1;background:none;border:none;outline:none;color:var(--text-primary);font-size:17px;min-width:0}
.command input::placeholder{color:var(--text-tertiary)}
.icon-btn{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;color:var(--text-tertiary);flex:0 0 32px}
.icon-btn:hover{color:var(--text-secondary);background:var(--surface-3)}
.send{width:44px;height:44px;flex:0 0 44px;border-radius:var(--r-md);background:var(--accent);color:#fff;display:grid;place-items:center;box-shadow:0 6px 18px rgba(61,111,209,.35);transition:.16s var(--ease)}
.send:hover{background:var(--accent-hover);transform:translateY(-1px)}
.send svg{width:20px;height:20px;stroke:#fff;stroke-width:2}
.hint{margin-top:var(--sp-6);color:var(--text-tertiary);font-size:13px}
.rowlabel{margin:var(--sp-8) 0 var(--sp-3);color:var(--text-tertiary);font-size:12px;letter-spacing:.04em;text-transform:uppercase}
.chips{display:flex;flex-wrap:wrap;gap:var(--sp-2);justify-content:center}
.chip{background:var(--surface-2);border:1px solid var(--hairline);color:var(--text-secondary);padding:9px 16px;border-radius:99px;font-size:14px;transition:.16s var(--ease);display:inline-flex;align-items:center;gap:8px}
.chip:hover{background:var(--surface-3);color:var(--text-primary);transform:translateY(-1px)}
.chip .dot{width:7px;height:7px;border-radius:99px;background:var(--accent-bright)}
.resume{margin-top:var(--sp-8);color:var(--text-secondary);font-size:14px}
.resume .linkbtn{margin-left:6px}

/* PROCESSING */
.proc{min-height:calc(100vh - 56px);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--sp-12) var(--sp-6);text-align:center}
.proc h2{font-size:24px;font-weight:500;margin-bottom:var(--sp-2)}
.proc .say{color:var(--text-secondary);font-size:16px;min-height:24px;margin-bottom:var(--sp-8);transition:.3s var(--ease)}
.scanwrap{width:100%;max-width:760px;background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-lg);padding:var(--sp-6);box-shadow:var(--shadow)}
.filmstrip{position:relative;height:82px;border-radius:var(--r-md);overflow:hidden;background:repeating-linear-gradient(90deg,rgba(110,160,245,.10) 0 2px,transparent 2px 46px),linear-gradient(180deg,#1d2b45,#141f33);border:1px solid var(--hairline)}
.peak{position:absolute;top:0;bottom:0;width:64px;border-radius:6px;opacity:0;transition:opacity .4s var(--ease)}
.peak.show{opacity:1}
.peak.hot{background:linear-gradient(180deg,rgba(110,160,245,.5),rgba(61,111,209,.18));box-shadow:0 0 26px rgba(110,160,245,.6),inset 0 0 0 1px var(--accent-bright)}
.peak.gold{background:linear-gradient(180deg,rgba(232,199,154,.42),rgba(232,199,154,.12));box-shadow:0 0 26px rgba(232,199,154,.5),inset 0 0 0 1px var(--champagne)}
.playhead{position:absolute;top:-6px;bottom:-6px;width:2px;background:var(--text-primary);box-shadow:0 0 12px rgba(245,242,236,.8);left:0}
.playhead::after{content:"";position:absolute;top:-4px;left:-4px;width:10px;height:10px;border-radius:99px;background:var(--text-primary)}
.pulse{position:absolute;width:20px;height:20px;border-radius:99px;top:31px;transform:translate(-50%,-50%);opacity:0}
.pulse.go{animation:pulse 1s var(--ease)}
@keyframes pulse{0%{opacity:.9;box-shadow:0 0 0 0 rgba(110,160,245,.55)}100%{opacity:0;box-shadow:0 0 0 26px rgba(110,160,245,0)}}
.proc-steps{display:flex;gap:var(--sp-6);justify-content:center;margin-top:var(--sp-6);color:var(--text-tertiary);font-size:13px;flex-wrap:wrap}
.proc-steps .st{display:flex;align-items:center;gap:8px;transition:.3s}
.proc-steps .st .b{width:8px;height:8px;border-radius:99px;background:var(--hairline-strong);transition:.3s}
.proc-steps .st.on{color:var(--text-secondary)}
.proc-steps .st.on .b{background:var(--accent-bright);box-shadow:0 0 10px rgba(110,160,245,.7)}
.proc-steps .st.done .b{background:var(--success)}
.proc-actions{margin-top:var(--sp-8);display:flex;gap:var(--sp-3);align-items:center;justify-content:center;flex-wrap:wrap}

/* RESULTS */
.collapse-card{background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-lg);padding:var(--sp-6);box-shadow:var(--shadow);margin-bottom:var(--sp-8);display:flex;align-items:center;gap:var(--sp-8);flex-wrap:wrap}
.collapse-viz{flex:1;min-width:240px}
.collapse-bar{height:14px;border-radius:99px;background:var(--surface-3);overflow:hidden;position:relative}
.collapse-fill{position:absolute;left:0;top:0;bottom:0;width:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--accent-bright));transition:width 1.4s var(--ease)}
.collapse-nums{display:flex;justify-content:space-between;margin-top:10px;color:var(--text-tertiary);font-size:13px;font-variant-numeric:tabular-nums}
.collapse-big{text-align:center;min-width:150px}
.collapse-big .n{font-size:40px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-1px}
.collapse-big .c{color:var(--text-tertiary);font-size:13px;margin-top:4px}
.clips{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:var(--sp-4)}
.clip{background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-lg);overflow:hidden;transition:.18s var(--ease);cursor:pointer;text-align:left}
.clip:hover{background:var(--surface-2);transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.clip.best{border-color:var(--accent-bright);box-shadow:0 0 0 1px var(--accent-bright),var(--shadow)}
.thumb{aspect-ratio:9/16;background:linear-gradient(160deg,#22314f,#141d2f);position:relative;display:grid;place-items:center}
.clip.best .thumb{background:linear-gradient(160deg,#2a3c60,#182642)}
.thumb .play{width:46px;height:46px;border-radius:99px;background:rgba(245,242,236,.12);display:grid;place-items:center;border:1px solid rgba(245,242,236,.25)}
.thumb .play svg{width:18px;height:18px;fill:var(--text-primary);stroke:none;margin-left:2px}
.thumb .dur{position:absolute;right:10px;bottom:10px;background:rgba(9,14,22,.7);color:#F5F2EC;padding:3px 8px;border-radius:6px;font-size:12px;font-variant-numeric:tabular-nums}
.thumb .tag-best{position:absolute;left:10px;top:10px;background:var(--accent);color:#fff;font-size:11px;font-weight:600;padding:3px 9px;border-radius:99px}
.clip .body{padding:var(--sp-4)}
.clip .reason{font-size:14.5px;line-height:1.4}
.clip .meta{margin-top:8px;color:var(--text-tertiary);font-size:12px}

/* STUDIO */
.studio{display:flex;min-height:calc(100vh - 56px)}
.studio-main{flex:1;min-width:0;display:flex;flex-direction:column;padding:var(--sp-6);overflow:auto}
.studio-head{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4)}
.studio-head h2{font-size:18px;font-weight:600}
.player{position:relative;height:min(54vh,470px);aspect-ratio:9/16;margin:0 auto;border-radius:var(--r-xl);overflow:hidden;background:linear-gradient(160deg,#2b3d63,#131d31);border:1px solid var(--hairline);display:grid;place-items:center;box-shadow:var(--shadow-lg)}
.frame9{position:absolute;inset:0;display:grid;place-items:center}
.bigplay{width:64px;height:64px;border-radius:99px;background:rgba(245,242,236,.14);border:1px solid rgba(245,242,236,.3);display:grid;place-items:center;transition:.18s var(--ease)}
.bigplay:hover{transform:scale(1.06);background:rgba(245,242,236,.2)}
.bigplay svg{width:24px;height:24px;fill:#F5F2EC;margin-left:3px}
.cap{position:absolute;left:0;right:0;bottom:16px;text-align:center;font-weight:700;font-size:15px;text-shadow:0 2px 8px rgba(0,0,0,.6);color:#fff;padding:0 12px}
.recut-flash{position:absolute;inset:0;background:var(--accent-bright);opacity:0;pointer-events:none}
.recut-flash.go{animation:flash .6s var(--ease)}
@keyframes flash{0%{opacity:0}30%{opacity:.22}100%{opacity:0}}
.chatline{margin-top:var(--sp-4);display:flex;gap:var(--sp-2);align-items:center;background:var(--surface-1);border:1px solid var(--hairline-strong);border-radius:var(--r-md);padding:8px 8px 8px var(--sp-4);max-width:640px;width:100%;align-self:center;transition:.2s var(--ease)}
.chatline:focus-within{border-color:var(--accent-bright);box-shadow:0 0 0 3px rgba(110,160,245,.14)}
.chatline input{flex:1;background:none;border:none;outline:none;color:var(--text-primary);font-size:15px;min-width:0}
.chatline input::placeholder{color:var(--text-tertiary)}
.chatline .go{width:36px;height:36px;flex:0 0 36px;border-radius:9px;background:var(--accent);display:grid;place-items:center}
.chatline .go svg{width:17px;height:17px;stroke:#fff;stroke-width:2}
.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(8px);background:var(--surface-2);border:1px solid var(--hairline);color:var(--text-primary);font-size:13px;padding:10px 16px;border-radius:99px;opacity:0;transition:.3s var(--ease);display:inline-flex;gap:10px;align-items:center;z-index:60;box-shadow:var(--shadow-lg)}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast .undo{color:var(--accent-bright);font-weight:600}
.tl-toggle{align-self:center;margin-top:var(--sp-4);color:var(--text-secondary);font-size:13px;display:inline-flex;gap:8px;align-items:center;padding:8px 14px;border-radius:99px;border:1px solid var(--hairline)}
.tl-toggle:hover{color:var(--text-primary);background:var(--surface-2)}
.timeline{align-self:center;width:100%;max-width:640px;margin-top:var(--sp-3);overflow:hidden;max-height:0;opacity:0;transition:max-height .32s var(--ease),opacity .32s var(--ease)}
.timeline.open{max-height:160px;opacity:1}
.tl-track{display:flex;height:56px;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--hairline)}
.tl-seg{display:grid;place-items:center;font-size:12px;font-weight:600}
.tl-ctx{flex:2;background:linear-gradient(180deg,#5b6b82,#47566b);color:var(--text-primary)}
.tl-act{flex:3;background:linear-gradient(180deg,var(--accent-bright),var(--accent));color:#fff}
.tl-rea{flex:2;background:linear-gradient(180deg,#6fd0a0,var(--success));color:#0e1626}
.tl-legend{display:flex;justify-content:space-between;margin-top:8px;color:var(--text-tertiary);font-size:12px}
.props{width:320px;flex:0 0 320px;border-left:1px solid var(--hairline);background:var(--bg-base);padding:var(--sp-6) var(--sp-4);overflow:auto}
.props h3{font-size:13px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--sp-4)}
.prop{display:flex;gap:var(--sp-3);padding:var(--sp-3);border-radius:var(--r-md);border:1px solid transparent;cursor:pointer;transition:.16s var(--ease);margin-bottom:var(--sp-2);width:100%;text-align:left}
.prop:hover{background:var(--surface-1)}
.prop[aria-selected="true"]{background:var(--accent-tint);border-color:var(--accent-bright)}
.prop .mini{width:44px;height:64px;flex:0 0 44px;border-radius:8px;background:linear-gradient(160deg,#293a5c,#141d2f)}
.prop .info b{font-weight:600;font-size:14px}
.prop .info .r{color:var(--text-secondary);font-size:13px;margin-top:3px;line-height:1.35}
.prop .info .d{color:var(--text-tertiary);font-size:12px;margin-top:6px;font-variant-numeric:tabular-nums}
.props .publish{margin-top:var(--sp-4);display:flex}
.props .publish .btn{width:100%}

/* Assistant */
.afab{position:fixed;right:22px;bottom:22px;z-index:40;display:flex;align-items:center;gap:10px;background:var(--surface-2);border:1px solid var(--hairline-strong);border-radius:99px;padding:10px 16px;box-shadow:var(--shadow-lg);transition:.18s var(--ease)}
.afab:hover{transform:translateY(-2px);border-color:var(--accent-bright)}
.orb{width:22px;height:22px;border-radius:99px;background:radial-gradient(circle at 35% 30%,var(--accent-bright),var(--accent-press));box-shadow:0 0 14px rgba(110,160,245,.6);flex:0 0 22px}
.afab .lbl{font-size:13px;color:var(--text-secondary)}
.assistant{position:fixed;top:0;right:0;bottom:0;width:360px;max-width:88vw;background:var(--surface-1);border-left:1px solid var(--hairline);z-index:55;transform:translateX(100%);transition:transform .3s var(--ease);display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}
.assistant.open{transform:translateX(0)}
.a-head{display:flex;align-items:center;gap:10px;padding:var(--sp-4);border-bottom:1px solid var(--hairline)}
.a-head .orb{width:26px;height:26px}
.a-head .who{font-weight:600;font-size:14px}
.a-head .ctx{color:var(--text-tertiary);font-size:12px}
.a-head .x{margin-left:auto;color:var(--text-tertiary);width:30px;height:30px;border-radius:8px}
.a-head .x:hover{background:var(--surface-3);color:var(--text-primary)}
.a-body{flex:1;overflow:auto;padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3)}
.bubble{max-width:85%;padding:11px 14px;border-radius:14px;font-size:14px;line-height:1.45}
.bubble.ai{background:var(--surface-2);border:1px solid var(--hairline);align-self:flex-start;border-bottom-left-radius:4px}
.bubble.me{background:var(--accent);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}
.a-sugg{display:flex;flex-wrap:wrap;gap:8px}
.a-sugg button{font-size:12.5px;background:var(--surface-2);border:1px solid var(--hairline);color:var(--text-secondary);padding:7px 12px;border-radius:99px}
.a-sugg button:hover{background:var(--surface-3);color:var(--text-primary)}
.a-foot{padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--hairline);display:flex;gap:8px;align-items:center}
.a-foot input{flex:1;background:var(--surface-2);border:1px solid var(--hairline-strong);border-radius:99px;padding:10px 14px;color:var(--text-primary);outline:none;font-size:14px;min-width:0}
.a-foot input:focus{border-color:var(--accent-bright)}
.a-foot .go{width:38px;height:38px;flex:0 0 38px;border-radius:99px;background:var(--accent);display:grid;place-items:center}
.a-foot .go svg{width:17px;height:17px;stroke:#fff;stroke-width:2}
.scrim{position:fixed;inset:0;background:rgba(6,10,18,.5);opacity:0;pointer-events:none;transition:.3s;z-index:50}
.scrim.show{opacity:1;pointer-events:auto}

/* ONBOARDING */
.onb{min-height:calc(100vh - 56px);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--sp-12) var(--sp-6);text-align:center;position:relative}
.onb .step{color:var(--text-tertiary);font-size:12px;letter-spacing:.05em;text-transform:uppercase;margin-bottom:var(--sp-4)}
.onb h2{font-size:clamp(24px,3.4vw,34px);font-weight:500;margin-bottom:var(--sp-8);letter-spacing:-.4px}
.onb .opts{display:flex;gap:var(--sp-4);flex-wrap:wrap;justify-content:center;max-width:640px}
.bigopt{background:var(--surface-1);border:1px solid var(--hairline-strong);border-radius:var(--r-lg);padding:var(--sp-8);min-width:170px;font-size:17px;font-weight:500;transition:.18s var(--ease);display:flex;flex-direction:column;gap:10px;align-items:center}
.bigopt .em{width:44px;height:44px;border-radius:12px;background:var(--accent-tint);display:grid;place-items:center;color:var(--accent-bright)}
.bigopt:hover{border-color:var(--accent-bright);transform:translateY(-3px);box-shadow:var(--shadow-lg);background:var(--surface-2)}
.bigopt small{color:var(--text-tertiary);font-weight:400;font-size:13px}
.onb .skip{margin-top:var(--sp-8);color:var(--text-tertiary);font-size:14px}
.onb .skip:hover{color:var(--text-secondary);text-decoration:underline}
.dots{display:flex;gap:8px;justify-content:center;margin-top:var(--sp-8)}
.dots i{width:7px;height:7px;border-radius:99px;background:var(--hairline-strong);transition:.2s}
.dots i.on{background:var(--accent-bright);width:20px}

/* generic sections (Library / Help placeholders, mocked) */
.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--sp-4)}
.card{background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-lg);padding:var(--sp-4);box-shadow:var(--shadow)}
.card h4{font-size:15px;margin-bottom:6px}
.card p{color:var(--text-secondary);font-size:13px;line-height:1.45}
.empty{text-align:center;color:var(--text-tertiary);padding:var(--sp-16) var(--sp-6)}
.empty .big{font-size:18px;color:var(--text-secondary);margin-bottom:var(--sp-4)}

/* ---------- Responsive ---------- */
@media (max-width:860px){
  .sidebar{position:fixed;z-index:60;transform:translateX(-100%);transition:transform .25s var(--ease);height:100vh}
  .app.nav-open .sidebar{transform:translateX(0)}
  .topbar .burger{display:grid;place-items:center}
  .props{display:none}
  .studio{flex-direction:column}
  .seg .lab{display:none}
}
@media (max-width:520px){
  .pad{padding:var(--sp-8) var(--sp-4)}
  .command{padding:var(--sp-3) var(--sp-3) var(--sp-3) var(--sp-4)}
  .command input{font-size:16px}
  .bigopt{min-width:140px;padding:var(--sp-6)}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ============ V2 additions ============ */
.skip{position:absolute;left:8px;top:-48px;z-index:200;background:var(--accent);color:#fff;padding:10px 16px;border-radius:var(--r-md);font-size:14px;font-weight:500;transition:top .18s var(--ease)}
.skip:focus{top:8px}
.demo-sel{display:inline-flex}
.demo-sel select{font-size:11px;color:var(--text-secondary);background:var(--surface-2);border:1px solid var(--hairline);padding:5px 10px;border-radius:99px;outline:none;cursor:pointer}
.demo-sel select:focus-visible{border-color:var(--accent-bright)}
/* visibilité selon le mode (nouveau / habitué) */
.home-returning{display:none}
body[data-mode="returning"] .home-new{display:none}
body[data-mode="returning"] .home-returning{display:block}
.suggest{display:flex;flex-direction:column;gap:var(--sp-2);max-width:560px;margin:0 auto}
.sugg{display:flex;align-items:center;gap:var(--sp-3);background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);text-align:left;transition:.16s var(--ease);width:100%}
.sugg:hover{background:var(--surface-2);transform:translateY(-1px)}
.sugg .glyph{width:34px;height:34px;flex:0 0 34px;border-radius:9px;background:var(--accent-tint);display:grid;place-items:center;color:var(--accent-bright)}
.sugg .t{flex:1}.sugg .t b{font-weight:600}.sugg .t span{display:block;color:var(--text-tertiary);font-size:13px;margin-top:2px}
/* headings normalisés */
.phrase,.onb-q,.proc-h,.res-h,.nm-h,.studio-h,.lib-h,.help-h,.props-h{outline:none}
.onb-q{font-size:clamp(24px,3.4vw,34px);font-weight:500;margin-bottom:var(--sp-8);letter-spacing:-.4px}
.proc-h{font-size:24px;font-weight:500;margin-bottom:var(--sp-2)}
.res-h,.lib-h,.help-h{font-size:28px;font-weight:500;margin-bottom:var(--sp-6)}
.studio-h{font-size:18px;font-weight:600}
.props-h{font-size:13px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--sp-4)}
.res-foot{margin-top:var(--sp-6);text-align:center}
.skip-q{margin-top:var(--sp-8);color:var(--text-tertiary);font-size:14px}
.skip-q:hover{color:var(--text-secondary);text-decoration:underline}
.help-doc{margin-top:var(--sp-8);color:var(--text-tertiary);font-size:13px}
/* NO_MATCH */
.nm-card{max-width:560px;margin:0 auto;text-align:center;background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-lg);padding:var(--sp-12) var(--sp-8);box-shadow:var(--shadow)}
.nm-badge{display:inline-block;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--champagne-text);border:1px solid color-mix(in srgb,var(--champagne) 40%,transparent);padding:3px 10px;border-radius:99px;margin-bottom:var(--sp-4)}
.nm-h{font-size:clamp(22px,3vw,28px);font-weight:500;margin-bottom:var(--sp-3);letter-spacing:-.3px}
.nm-sub{color:var(--text-secondary);font-size:16px;margin-bottom:var(--sp-8);line-height:1.5}
.card h3{font-size:15px;margin-bottom:6px}

main h1:focus,main h1:focus-visible{box-shadow:none;outline:none}

/* ============ V2.1 additions ============ */
/* Home: source preview card */
.source-card{display:flex;align-items:center;gap:var(--sp-3);max-width:560px;margin:var(--sp-6) auto 0;background:var(--surface-1);border:1px solid var(--hairline-strong);border-radius:var(--r-lg);padding:var(--sp-3) var(--sp-4);box-shadow:var(--shadow);text-align:left}
.source-card .sc-thumb{width:52px;height:52px;flex:0 0 52px;border-radius:10px;background:linear-gradient(160deg,#2b3d63,#131d31);position:relative}
.source-card .sc-thumb::after{content:"";position:absolute;left:50%;top:50%;transform:translate(-40%,-50%);border-style:solid;border-width:7px 0 7px 12px;border-color:transparent transparent transparent rgba(245,242,236,.7)}
.source-card .sc-info{flex:1;min-width:0}
.source-card .sc-info b{display:block;font-weight:600;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.source-card .sc-info span{color:var(--text-tertiary);font-size:13px}
.source-card .btn{padding:9px 16px}
/* Onboarding footer / back */
.onb-foot{display:flex;align-items:center;gap:var(--sp-4);margin-top:var(--sp-8)}
.onb-back{color:var(--text-secondary);font-size:14px;padding:6px 10px;border-radius:var(--r-sm)}
.onb-back:hover{color:var(--text-primary);background:var(--surface-2)}
.onb-foot .skip-q{margin-top:0}
/* Processing long-state */
.proc-long{margin-top:var(--sp-6);color:var(--text-secondary);font-size:14px;max-width:520px}
/* Studio: format toggle */
.fmt-seg{flex:0 0 auto}
.fmt-seg button{font-variant-numeric:tabular-nums}
/* Studio: creative effects */
.effects{align-self:center;display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-4);justify-content:center;max-width:640px}
.fx{font-size:13px;background:var(--surface-2);border:1px solid var(--hairline);color:var(--text-secondary);padding:8px 14px;border-radius:99px;display:inline-flex;align-items:center;gap:8px;transition:.16s var(--ease)}
.fx::before{content:"";width:8px;height:8px;border-radius:99px;background:var(--hairline-strong);transition:.16s var(--ease)}
.fx:hover{background:var(--surface-3);color:var(--text-primary)}
.fx.on{border-color:var(--accent-bright);color:var(--text-primary);background:var(--accent-tint)}
.fx.on::before{background:var(--accent-bright);box-shadow:0 0 8px rgba(110,160,245,.7)}
/* Studio: trim handles */
.trim{margin-top:var(--sp-4)}
.trim-lbl{color:var(--text-tertiary);font-size:12px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}
.trim-row{position:relative;display:flex;flex-direction:column;gap:10px}
.trim-row input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:99px;background:var(--surface-3);outline:none}
.trim-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:99px;background:var(--accent-bright);border:2px solid var(--bg-canvas);cursor:pointer;box-shadow:0 0 0 1px var(--accent)}
.trim-row input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:99px;background:var(--accent-bright);border:2px solid var(--bg-canvas);cursor:pointer}
.trim-row input[type=range]:focus-visible{box-shadow:0 0 0 3px rgba(110,160,245,.3)}
.trim-out{margin-top:10px;color:var(--text-secondary);font-size:13px;font-variant-numeric:tabular-nums}

/* ============ V2.2 Results experience ============ */
.res-pad{max-width:1040px}
/* Hero */
.hero{display:grid;grid-template-columns:300px 1fr;gap:var(--sp-8);align-items:center;background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-xl);padding:var(--sp-8);box-shadow:var(--shadow);margin-bottom:var(--sp-8);opacity:0;transform:translateY(10px)}
.hero.reveal{animation:heroIn .6s var(--ease) forwards}
@keyframes heroIn{to{opacity:1;transform:none}}
.hero-player{display:flex;justify-content:center}
.hplayer{position:relative;width:100%;max-width:280px;aspect-ratio:9/16;border-radius:var(--r-lg);overflow:hidden;background:linear-gradient(160deg,#2a3c60,#182642);border:1px solid var(--accent-bright);box-shadow:0 0 0 1px var(--accent-bright),var(--shadow-lg);display:block}
.hplayer .tag-best{position:absolute;left:10px;top:10px;background:var(--accent);color:#fff;font-size:11px;font-weight:600;padding:3px 9px;border-radius:99px;z-index:2}
.hplayer .hcap{position:absolute;left:0;right:0;bottom:16px;text-align:center;font-weight:700;font-size:15px;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.6);padding:0 12px;z-index:2}
.hplayer .hplay{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:56px;height:56px;border-radius:99px;background:rgba(245,242,236,.16);border:1px solid rgba(245,242,236,.3);display:grid;place-items:center;transition:.18s var(--ease)}
.hplayer .hplay svg{width:22px;height:22px;fill:#F5F2EC;margin-left:3px}
.hplayer:hover .hplay{transform:translate(-50%,-50%) scale(1.06);background:rgba(245,242,236,.24)}
.hplayer.playing .hplay{opacity:0}
.hplayer .hprog{position:absolute;left:0;right:0;bottom:0;height:4px;background:rgba(245,242,236,.15);z-index:3}
.hplayer .hprog i{display:block;height:100%;width:0;background:var(--accent-bright)}
.hplayer.playing .hprog i{animation:prog 4s linear forwards}
@keyframes prog{to{width:100%}}
.hplayer .hdur{position:absolute;right:10px;bottom:12px;background:rgba(9,14,22,.7);color:#F5F2EC;padding:3px 8px;border-radius:6px;font-size:12px;font-variant-numeric:tabular-nums;z-index:2}
.hero-reason{font-size:19px;line-height:1.4;font-weight:500;margin-bottom:8px}
.hero-dur{color:var(--text-secondary);font-size:14px;margin-bottom:var(--sp-6)}
.hero-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-6)}
.fb{display:flex;align-items:center;gap:8px}
.fb-lbl{color:var(--text-tertiary);font-size:13px;margin-right:2px}
.fb button{width:38px;height:38px;border-radius:99px;border:1px solid var(--hairline);background:var(--surface-2);font-size:16px;line-height:1;transition:.16s var(--ease)}
.fb button:hover{background:var(--surface-3);transform:translateY(-1px)}
.fb button[aria-pressed="true"]{border-color:var(--accent-bright);background:var(--accent-tint)}
.single-note{color:var(--champagne-text);font-size:15px;margin:-8px 0 var(--sp-8);text-align:center;max-width:640px;margin-left:auto;margin-right:auto}
/* Others */
.others-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;margin-bottom:var(--sp-4)}
.others-h{font-size:16px;font-weight:600}
.filters{display:flex;flex-wrap:wrap;gap:8px}
.filt{font-size:13px;background:var(--surface-2);border:1px solid var(--hairline);color:var(--text-secondary);padding:7px 13px;border-radius:99px;transition:.16s var(--ease)}
.filt:hover{background:var(--surface-3);color:var(--text-primary)}
.filt[aria-pressed="true"]{background:var(--accent-tint);border-color:var(--accent-bright);color:var(--text-primary)}
.compare-bar{display:flex;align-items:center;gap:var(--sp-4);background:var(--surface-2);border:1px solid var(--hairline);border-radius:var(--r-md);padding:8px 14px;margin-bottom:var(--sp-4);font-size:14px;color:var(--text-secondary)}
.compare-bar .btn{padding:6px 12px}
/* clip cards get feedback + compare */
.clip .cardfoot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 var(--sp-4) var(--sp-4)}
.clip .fb{gap:6px}
.clip .fb button{width:32px;height:32px;font-size:14px}
.cmp-toggle{font-size:12px;color:var(--text-secondary);border:1px solid var(--hairline);background:var(--surface-2);padding:6px 10px;border-radius:99px;display:inline-flex;align-items:center;gap:6px}
.cmp-toggle[aria-pressed="true"]{border-color:var(--accent-bright);color:var(--text-primary);background:var(--accent-tint)}
.clip.picked{border-color:var(--accent-bright);box-shadow:0 0 0 1px var(--accent-bright)}
/* Compare panel */
.compare{position:fixed;top:0;right:0;bottom:0;width:min(760px,94vw);background:var(--surface-1);border-left:1px solid var(--hairline);z-index:65;transform:translateX(100%);transition:transform .3s var(--ease);display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}
.compare.open{transform:translateX(0)}
.cmp-head{display:flex;align-items:center;gap:10px;padding:var(--sp-4) var(--sp-6);border-bottom:1px solid var(--hairline)}
.cmp-head h2{font-size:16px;font-weight:600}
.cmp-head .x{margin-left:auto;color:var(--text-tertiary);width:32px;height:32px;border-radius:8px;display:grid;place-items:center}
.cmp-head .x:hover{background:var(--surface-3);color:var(--text-primary)}
.cmp-body{flex:1;overflow:auto;padding:var(--sp-6);display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-6)}
.cmp-col{display:flex;flex-direction:column;gap:var(--sp-3)}
.cmp-prev{aspect-ratio:9/16;max-height:44vh;border-radius:var(--r-lg);background:linear-gradient(160deg,#2b3d63,#131d31);position:relative;display:grid;place-items:center;border:1px solid var(--hairline)}
.cmp-prev .hcap{position:absolute;left:0;right:0;bottom:14px;text-align:center;font-weight:700;color:#fff;font-size:14px;text-shadow:0 2px 8px rgba(0,0,0,.6);padding:0 10px}
.cmp-prev .hdur{position:absolute;right:10px;bottom:12px;background:rgba(9,14,22,.7);color:#F5F2EC;padding:3px 8px;border-radius:6px;font-size:12px}
.cmp-col .r{font-size:15px;line-height:1.4}
.cmp-col .m{color:var(--text-tertiary);font-size:13px}
.cmp-col .btn{width:100%;margin-top:auto}

@media (max-width:820px){
  .hero{grid-template-columns:1fr;gap:var(--sp-6);text-align:center}
  .hero-player{order:-1}
  .hplayer{max-width:220px;margin:0 auto}
  .hero-actions{justify-content:center}
  .fb{justify-content:center}
  .cmp-body{grid-template-columns:1fr}
}

/* garde l attribut hidden prioritaire sur les display de classe */
[hidden]{display:none!important}

/* ============ V2.3 production-candidate polish ============ */
/* Footer honnête */
.site-foot{border-top:1px solid var(--hairline);padding:var(--sp-6);display:flex;align-items:center;gap:var(--sp-4);flex-wrap:wrap;color:var(--text-tertiary);font-size:13px}
.site-foot .ft-brand{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--text-secondary)}
.site-foot .ft-mark{width:18px;height:18px;border-radius:5px;background:linear-gradient(140deg,var(--accent-bright),var(--accent-press))}
.site-foot .ft-line{flex:1;min-width:180px}
.site-foot .ft-demo{border:1px solid var(--hairline);border-radius:99px;padding:3px 10px}
/* Library : cartes média cohérentes */
#lib-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--sp-4)}
.libcard{background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);transition:.18s var(--ease)}
.libcard:hover{background:var(--surface-2);transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.libcover{height:96px;background:linear-gradient(160deg,#22314f,#141d2f);position:relative;display:grid;place-items:center}
.libcover .play{width:40px;height:40px;border-radius:99px;background:rgba(245,242,236,.12);border:1px solid rgba(245,242,236,.25);display:grid;place-items:center}
.libcover .play svg{width:16px;height:16px;fill:#F5F2EC;stroke:none;margin-left:2px}
.libbody{padding:var(--sp-4)}
.libbody h3{font-size:15px;margin-bottom:6px}
.libbody p{color:var(--text-secondary);font-size:13px}

@media (max-width:860px){ html,body{overflow-x:hidden} }
@media (max-width:640px){ .demo-sel{display:none} }

/* ============ V2.5 latency / real states ============ */
/* Status banner (reconnexion / échec) */
.status-banner{display:flex;align-items:center;gap:var(--sp-3);padding:10px var(--sp-6);font-size:14px;border-bottom:1px solid var(--hairline);background:var(--surface-2);color:var(--text-secondary)}
.status-banner .sb-dot{width:9px;height:9px;border-radius:99px;background:var(--warning);flex:0 0 9px;box-shadow:0 0 8px color-mix(in srgb,var(--warning) 60%,transparent);animation:blip 1.4s var(--ease) infinite}
.status-banner.err{background:color-mix(in srgb,var(--danger) 14%,var(--surface-1));color:var(--text-primary)}
.status-banner.err .sb-dot{background:var(--danger);box-shadow:0 0 8px color-mix(in srgb,var(--danger) 60%,transparent);animation:none}
.status-banner .sb-msg{flex:1;min-width:0}
.status-banner .sb-retry{color:var(--accent-bright);font-weight:600;font-size:14px;padding:4px 8px;border-radius:8px}
.status-banner .sb-retry:hover{background:var(--surface-3)}
.status-banner .sb-x{width:28px;height:28px;border-radius:8px;color:var(--text-tertiary);font-size:18px;line-height:1}
.status-banner .sb-x:hover{background:var(--surface-3);color:var(--text-primary)}
@keyframes blip{0%,100%{opacity:1}50%{opacity:.35}}

/* Skeleton (chargement initial) */
.skeleton{display:none;position:absolute;inset:56px 0 0 0;z-index:15;background:var(--bg-canvas);padding:var(--sp-12) var(--sp-6);max-width:1040px;margin:0 auto}
.sk-title{height:34px;width:min(60%,360px);border-radius:10px;margin:0 auto var(--sp-8)}
.sk-row{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4)}
.sk-card{height:260px;border-radius:var(--r-lg)}
.sk-title,.sk-card{background:linear-gradient(100deg,var(--surface-1) 30%,var(--surface-2) 50%,var(--surface-1) 70%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
body[data-phase="loading"] #skeleton{display:block}
body[data-phase="loading"] #main{visibility:hidden}
@media (prefers-reduced-motion:reduce){.sk-title,.sk-card,.status-banner .sb-dot{animation:none}}

/* Upload progress (carte source) */
.sc-prog{display:block;height:6px;border-radius:99px;background:var(--surface-3);margin-top:8px;overflow:hidden}
.sc-prog .sc-bar{display:block;height:100%;width:35%;border-radius:99px;background:var(--accent-bright);animation:indet 1.3s var(--ease) infinite}
@keyframes indet{0%{margin-left:-40%}100%{margin-left:100%}}
.source-card.uploading .sc-analyze,.source-card.uploading #sc-analyze{opacity:.5;pointer-events:none}

/* Quota atteint */
.quota-note{margin-top:var(--sp-6);color:var(--warning-text);font-size:15px;max-width:560px;margin-left:auto;margin-right:auto;line-height:1.5}
body[data-quota="out"] .command{opacity:.55;pointer-events:none;filter:saturate(.6)}
body[data-quota="out"] .home-new,body[data-quota="out"] .home-returning,body[data-quota="out"] .resume{display:none}

/* Pastille job en arrière-plan */
.bg-pill{position:fixed;left:22px;bottom:22px;z-index:44;display:inline-flex;align-items:center;gap:10px;background:var(--surface-2);border:1px solid var(--hairline-strong);border-radius:99px;padding:10px 16px;box-shadow:var(--shadow-lg);color:var(--text-secondary);font-size:13px;transition:.18s var(--ease)}
.bg-pill:hover{transform:translateY(-2px);border-color:var(--accent-bright);color:var(--text-primary)}
.bg-pill .bg-orb{width:14px;height:14px;border-radius:99px;background:conic-gradient(from 0deg,var(--accent-bright),transparent 70%);animation:spin 1s linear infinite;flex:0 0 14px}
.bg-pill.done .bg-orb{background:var(--success);animation:none}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.bg-pill .bg-orb{animation:none}}
@media (max-width:520px){.bg-pill{left:12px;bottom:12px}}

/* ============ V2.6 Copilote « ReplayTower & moi » ============ */
.cop{max-width:920px}
.cop-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;margin-bottom:var(--sp-6)}
.cop-h{font-size:28px;font-weight:500}
.cop-tabs{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--hairline);margin-bottom:var(--sp-6);padding-bottom:2px}
.cop-tab{font-size:14px;color:var(--text-secondary);padding:9px 14px;border-radius:var(--r-md) var(--r-md) 0 0;transition:.16s var(--ease);position:relative}
.cop-tab:hover{color:var(--text-primary);background:var(--surface-1)}
.cop-tab[aria-selected="true"]{color:var(--text-primary)}
.cop-tab[aria-selected="true"]::after{content:"";position:absolute;left:10px;right:10px;bottom:-3px;height:2px;border-radius:2px;background:var(--accent-bright)}
.cop-ton{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-4)}
.cop-ton-note{font-size:13px;color:var(--text-secondary)}
.cop-greet{font-size:17px;color:var(--text-primary);margin-bottom:var(--sp-4)}
.cop-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:var(--sp-3);margin-bottom:var(--sp-8)}
.cop-card{background:var(--surface-1);border:1px solid var(--hairline);border-left:3px solid var(--accent-bright);border-radius:var(--r-md);padding:var(--sp-4);box-shadow:var(--shadow)}
.cop-card.warn{border-left-color:var(--warning)}
.cop-card.bilan{border-left-color:var(--accent-bright)} .cop-card.valider{border-left-color:var(--accent)} .cop-card.conseils{border-left-color:var(--success)}
.cop-card .ct{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);margin-bottom:6px}
.cop-card .cb{font-size:14px;line-height:1.45;color:var(--text-secondary)}
.cop-card .ca{margin-top:10px;font-size:13px;font-weight:600;color:var(--accent-bright)}
.cop-card .ca:hover{text-decoration:underline}
/* conversation */
.cop-chat{background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-lg);padding:var(--sp-4);box-shadow:var(--shadow)}
.cop-body{display:flex;flex-direction:column;gap:var(--sp-3);max-height:340px;overflow:auto;margin-bottom:var(--sp-3)}
.cop-chat .a-sugg{margin-bottom:var(--sp-3)}
.cop-chat .chatline{margin-top:0}
.cop-adn{margin-top:var(--sp-8);position:relative}
.cop-adn h3{font-size:15px;display:inline-block;margin-right:8px}
.cop-adn .soon{font-size:11px;color:var(--champagne-text);border:1px solid color-mix(in srgb,var(--champagne) 40%,transparent);border-radius:99px;padding:2px 9px;vertical-align:middle}
.cop-adn p{color:var(--text-secondary);font-size:13px;margin-top:8px;line-height:1.5}
/* idées */
.idea-form{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-3);flex-wrap:wrap}
.idea-form input{flex:1;min-width:200px;background:var(--surface-1);border:1px solid var(--hairline-strong);border-radius:var(--r-md);padding:12px var(--sp-4);color:var(--text-primary);outline:none;font-size:15px}
.idea-form input:focus{border-color:var(--accent-bright)}
.idea-hint,.poll-intro,.dec-intro{color:var(--text-tertiary);font-size:13px;margin-bottom:var(--sp-4)}
.idea-list{list-style:none;display:flex;flex-direction:column;gap:var(--sp-2)}
.idea-item{display:flex;align-items:center;gap:var(--sp-3);background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4)}
.idea-item .it{flex:1;min-width:0}.idea-item .it b{font-weight:500;font-size:14.5px}.idea-item .it span{display:block;color:var(--text-tertiary);font-size:12px;margin-top:2px}
.status{font-size:12px;font-weight:600;padding:4px 10px;border-radius:99px;white-space:nowrap}
.status.recu{background:var(--surface-3);color:var(--text-secondary)}
.status.etude{background:var(--accent-tint);color:var(--accent-bright)}
.status.prevu{background:color-mix(in srgb,var(--accent-bright) 22%,transparent);color:var(--accent-bright)}
.status.dispo{background:color-mix(in srgb,var(--success) 20%,transparent);color:var(--success-text)}
/* sondages */
.poll-form{display:flex;flex-direction:column;gap:var(--sp-2);max-width:520px}
.poll-form input{background:var(--surface-1);border:1px solid var(--hairline-strong);border-radius:var(--r-md);padding:11px var(--sp-4);color:var(--text-primary);outline:none;font-size:15px}
.poll-form input:focus{border-color:var(--accent-bright)}
#poll-opts{display:flex;flex-direction:column;gap:var(--sp-2)}
.poll-foot{margin-top:var(--sp-2)}
.poll-preview{margin-top:var(--sp-6);background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-lg);padding:var(--sp-6);max-width:520px;box-shadow:var(--shadow)}
.poll-preview .pq{font-weight:600;font-size:16px;margin-bottom:var(--sp-4)}
.poll-preview .po{display:flex;align-items:center;gap:10px;padding:10px var(--sp-4);border:1px solid var(--hairline-strong);border-radius:99px;margin-bottom:8px;color:var(--text-secondary)}
.poll-preview .po::before{content:"";width:16px;height:16px;border-radius:99px;border:2px solid var(--hairline-strong);flex:0 0 16px}
.poll-preview .pmeta{color:var(--text-tertiary);font-size:12px;margin-top:var(--sp-3)}
/* décisions */
.dec-list{list-style:none;display:flex;flex-direction:column;gap:var(--sp-2)}
.dec-item{background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-md);padding:var(--sp-4);display:flex;gap:var(--sp-3)}
.dec-item .dk{font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:3px 9px;border-radius:99px;height:fit-content;white-space:nowrap}
.dec-item .dk.decision{background:var(--accent-tint);color:var(--accent-bright)}
.dec-item .dk.conseil{background:color-mix(in srgb,var(--success) 18%,transparent);color:var(--success-text)}
.dec-item .dd b{font-weight:600;font-size:15px}.dec-item .dd p{color:var(--text-secondary);font-size:13px;margin-top:4px}.dec-item .dd .at{color:var(--text-tertiary);font-size:12px;margin-top:6px;display:block}
/* Outbound dialog */
.outbound{position:fixed;top:0;right:0;bottom:0;width:min(460px,94vw);background:var(--surface-1);border-left:1px solid var(--hairline);z-index:65;transform:translateX(100%);transition:transform .3s var(--ease);display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}
.outbound.open{transform:translateX(0)}
.ob-body{flex:1;overflow:auto;padding:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-3)}
.ob-lbl,.ob-plabel{font-size:12px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;margin-top:var(--sp-2)}
.ob-body textarea{background:var(--surface-2);border:1px solid var(--hairline-strong);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);color:var(--text-primary);outline:none;font-size:14px;font-family:inherit;resize:vertical}
.ob-body textarea:focus{border-color:var(--accent-bright)}
.ob-preview{background:linear-gradient(160deg,#0f1a24,#0c1620);border:1px solid var(--hairline);border-radius:var(--r-md);padding:var(--sp-4);min-height:80px}
.ob-bubble{background:#075E54;color:#fff;padding:10px 14px;border-radius:12px 12px 12px 4px;font-size:14px;line-height:1.45;max-width:88%;white-space:pre-wrap}
.outbound[data-ch="telegram"] .ob-bubble{background:#2AABEE;border-radius:12px 12px 4px 12px;margin-left:auto}
.ob-warn{background:color-mix(in srgb,var(--warning) 12%,var(--surface-2));border:1px solid color-mix(in srgb,var(--warning) 35%,transparent);color:var(--text-primary);font-size:13px;line-height:1.45;border-radius:var(--r-md);padding:10px var(--sp-4)}
.ob-actions{display:flex;gap:var(--sp-2);justify-content:flex-end;margin-top:var(--sp-2)}
@media (max-width:640px){ .cop-head{align-items:flex-start} .cop-cards{grid-template-columns:1fr 1fr} }
@media (max-width:440px){ .cop-cards{grid-template-columns:1fr} }

/* ============ V2.7 ADN créatif + Bibliothèque musicale ============ */
.dna{max-width:960px}
.chan-sel{display:inline-flex;align-items:center;gap:8px}
.chan-sel .lbl-inline{font-size:12px;color:var(--text-tertiary)}
.chan-sel select{font-size:14px;color:var(--text-primary);background:var(--surface-2);border:1px solid var(--hairline-strong);padding:8px 12px;border-radius:var(--r-md);outline:none;cursor:pointer}
.chan-sel select:focus-visible{border-color:var(--accent-bright)}
.dna-tab{font-size:14px;color:var(--text-secondary);padding:9px 14px;border-radius:var(--r-md) var(--r-md) 0 0;position:relative}
.dna-tab:hover{color:var(--text-primary);background:var(--surface-1)}
.dna-tab[aria-selected="true"]{color:var(--text-primary)}
.dna-tab[aria-selected="true"]::after{content:"";position:absolute;left:10px;right:10px;bottom:-3px;height:2px;border-radius:2px;background:var(--accent-bright)}
.dna-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4)}
.dcard{background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-lg);padding:var(--sp-4) var(--sp-4) var(--sp-6);box-shadow:var(--shadow)}
.dcard.wide{grid-column:1 / -1}
.dcard legend{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);padding:0 0 var(--sp-3)}
.dchips{display:flex;flex-wrap:wrap;gap:8px}
.dchip{font-size:13px;background:var(--surface-2);border:1px solid var(--hairline);color:var(--text-secondary);padding:7px 13px;border-radius:99px;transition:.16s var(--ease);display:inline-flex;align-items:center;gap:6px}
.dchip:hover{background:var(--surface-3);color:var(--text-primary)}
.dchip[aria-pressed="true"]{background:var(--accent-tint);border-color:var(--accent-bright);color:var(--text-primary)}
.dchip.forbid[aria-pressed="true"]{background:color-mix(in srgb,var(--danger) 22%,var(--surface-1));border-color:var(--danger);color:var(--text-primary)}
.dna-note{width:100%;margin-top:var(--sp-3);background:var(--surface-2);border:1px solid var(--hairline-strong);border-radius:var(--r-md);padding:10px var(--sp-4);color:var(--text-primary);outline:none;font-size:14px;font-family:inherit;resize:vertical}
.dna-note:focus{border-color:var(--accent-bright)}
.dcard select{width:100%;background:var(--surface-2);border:1px solid var(--hairline-strong);border-radius:var(--r-md);padding:10px var(--sp-4);color:var(--text-primary);outline:none;font-size:14px}
.dna-save{display:flex;align-items:center;gap:var(--sp-4);margin-top:var(--sp-6)}
.dna-saved{color:var(--success-text);font-size:14px}
/* Music */
.rot-card{margin-bottom:var(--sp-6)}
.rot-row{display:flex;align-items:center;gap:var(--sp-6);flex-wrap:wrap}
.rot-days{display:inline-flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:14px}
.rot-days input{width:72px;background:var(--surface-2);border:1px solid var(--hairline-strong);border-radius:var(--r-md);padding:8px 10px;color:var(--text-primary);outline:none;text-align:center;font-variant-numeric:tabular-nums}
.rot-days input:focus{border-color:var(--accent-bright)}
.rot-note{color:var(--text-tertiary);font-size:12px;margin-top:var(--sp-3)}
.add-track{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}
.add-track .or{color:var(--text-tertiary);font-size:13px}
.add-track input#link-input{flex:1;min-width:200px;background:var(--surface-1);border:1px solid var(--hairline-strong);border-radius:var(--r-md);padding:11px var(--sp-4);color:var(--text-primary);outline:none;font-size:15px}
.add-track input#link-input:focus{border-color:var(--accent-bright)}
.add-note{color:var(--text-tertiary);font-size:12px;margin:var(--sp-2) 0 var(--sp-6)}
.track-list{display:flex;flex-direction:column;gap:var(--sp-3)}
.track{background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-lg);box-shadow:var(--shadow);overflow:hidden}
.track-head{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4)}
.track-head .tname{flex:1;min-width:0}
.track-head .tname b{font-weight:600;font-size:15px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.track-head .tname .tmeta{color:var(--text-tertiary);font-size:12px;margin-top:2px}
.rights{font-size:12px;font-weight:600;padding:4px 10px;border-radius:99px;white-space:nowrap}
.rights.confirmed{background:color-mix(in srgb,var(--success) 18%,transparent);color:var(--success-text)}
.rights.unverified{background:color-mix(in srgb,var(--warning) 18%,transparent);color:var(--warning-text)}
.track-edit{border-top:1px solid var(--hairline);padding:var(--sp-4);display:none;flex-direction:column;gap:var(--sp-4)}
.track.open .track-edit{display:flex}
.track-toggle{color:var(--text-secondary);font-size:13px;padding:6px 10px;border-radius:var(--r-sm)}
.track-toggle:hover{color:var(--text-primary);background:var(--surface-2)}
/* waveform + segments */
.wavebar{position:relative;height:56px;border-radius:var(--r-md);background:repeating-linear-gradient(90deg,rgba(110,160,245,.10) 0 2px,transparent 2px 34px),linear-gradient(180deg,#1d2b45,#141f33);border:1px solid var(--hairline);overflow:hidden}
.wseg{position:absolute;top:4px;bottom:4px;border-radius:6px;display:grid;place-items:center;font-size:11px;font-weight:600;color:#0e1626;overflow:hidden;white-space:nowrap}
.wseg.intro{background:linear-gradient(180deg,#8fb0e6,#5b8de0)} .wseg.drop{background:linear-gradient(180deg,var(--accent-bright),var(--accent));color:#fff} .wseg.calme{background:linear-gradient(180deg,#6fd0a0,var(--success))} .wseg.final{background:linear-gradient(180deg,#e8c79a,#d8a860)}
.wseg .wx{position:absolute;top:2px;right:3px;color:rgba(14,22,38,.7);font-size:12px;cursor:pointer;line-height:1}
.wpending{position:absolute;top:4px;bottom:4px;border:2px dashed var(--accent-bright);border-radius:6px;background:rgba(110,160,245,.12);pointer-events:none}
.seg-add{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:flex-end}
.seg-add label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-tertiary)}
.seg-add select,.seg-add input[type=range]{min-width:120px}
.seg-add input[type=range]{-webkit-appearance:none;appearance:none;height:6px;border-radius:99px;background:var(--surface-3);outline:none}
.seg-add input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:99px;background:var(--accent-bright);border:2px solid var(--bg-canvas);cursor:pointer}
.seg-add input[type=range]:focus-visible{box-shadow:0 0 0 3px rgba(110,160,245,.3)}
.taginput{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.taginput input{background:var(--surface-2);border:1px solid var(--hairline-strong);border-radius:99px;padding:7px 12px;color:var(--text-primary);outline:none;font-size:13px;min-width:120px}
.taginput input:focus{border-color:var(--accent-bright)}
.tag{font-size:12px;background:var(--surface-2);border:1px solid var(--hairline);color:var(--text-secondary);padding:5px 10px;border-radius:99px;display:inline-flex;gap:6px;align-items:center}
.tag .tx{cursor:pointer;color:var(--text-tertiary)}
.rights-confirm{background:color-mix(in srgb,var(--warning) 10%,var(--surface-2));border:1px solid color-mix(in srgb,var(--warning) 35%,transparent);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);font-size:13px;line-height:1.45;display:flex;gap:10px;align-items:flex-start}
.rights-confirm input{margin-top:3px;flex:0 0 auto;width:18px;height:18px;accent-color:var(--accent)}
.subsec{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);margin-bottom:6px}
@media (max-width:720px){ .dna-grid{grid-template-columns:1fr} }

/* ============ V2.8 Agents & missions ============ */
.agents{max-width:1000px}
.ag-intro{color:var(--text-secondary);font-size:15px;margin-bottom:var(--sp-6);max-width:680px}
.ag-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--sp-4);margin-bottom:var(--sp-8)}
.agent-card{background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-lg);padding:var(--sp-4);box-shadow:var(--shadow);text-align:left;transition:.18s var(--ease);cursor:pointer;display:flex;flex-direction:column;gap:8px}
.agent-card:hover{background:var(--surface-2);transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.agent-card .ah{display:flex;align-items:center;gap:10px}
.agent-card .aname{font-weight:600;font-size:16px;flex:1;min-width:0}
.agent-card .aacc{color:var(--text-tertiary);font-size:12px}
.dot-status{width:8px;height:8px;border-radius:99px;flex:0 0 8px}
.dot-status.active{background:var(--success);box-shadow:0 0 8px color-mix(in srgb,var(--success) 60%,transparent)}
.dot-status.paused{background:var(--text-tertiary)}
.agent-card .aobj{color:var(--text-secondary);font-size:13px;line-height:1.45}
.agent-card .astats{display:flex;gap:var(--sp-4);margin-top:4px;flex-wrap:wrap}
.agent-card .astat{font-size:12px;color:var(--text-tertiary)}
.agent-card .astat b{display:block;color:var(--text-primary);font-size:16px;font-weight:600;font-variant-numeric:tabular-nums}
.astat .up{color:var(--success-text)}
.ag-shared{font-size:11px;font-weight:600;color:var(--champagne-text);border:1px solid color-mix(in srgb,var(--champagne) 45%,transparent);border-radius:99px;padding:2px 8px}
.ag-sub{font-size:16px;font-weight:600;margin:var(--sp-8) 0 var(--sp-4)}
.ag-compare-wrap{overflow-x:auto;border:1px solid var(--hairline);border-radius:var(--r-lg);box-shadow:var(--shadow)}
.ag-compare{width:100%;border-collapse:collapse;font-size:14px;min-width:560px}
.ag-compare th,.ag-compare td{text-align:left;padding:12px var(--sp-4);border-bottom:1px solid var(--hairline)}
.ag-compare thead th{color:var(--text-tertiary);font-size:12px;text-transform:uppercase;letter-spacing:.04em;font-weight:600;background:var(--bg-base)}
.ag-compare tbody tr:last-child td{border-bottom:none}
.ag-compare td b{font-weight:600}
.ag-compare .num{font-variant-numeric:tabular-nums}
.ag-compare .up{color:var(--success-text)}
.ag-reco-global{margin-top:var(--sp-6);background:var(--surface-1);border:1px solid var(--hairline);border-left:3px solid var(--accent-bright);border-radius:var(--r-md);padding:var(--sp-4);box-shadow:var(--shadow)}
.ag-reco-global h3{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);margin-bottom:8px}
.ag-reco-global ul{list-style:none;display:flex;flex-direction:column;gap:6px}
.ag-reco-global li{font-size:14px;color:var(--text-secondary);padding-left:16px;position:relative}
.ag-reco-global li::before{content:"→";position:absolute;left:0;color:var(--accent-bright)}
/* detail */
.ag-back{color:var(--text-secondary);font-size:13px;display:inline-flex;gap:6px;align-items:center;margin-bottom:var(--sp-4)}
.ag-back:hover{color:var(--text-primary)}
.ag-dhead{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-2)}
.ag-dhead h1{font-size:26px;font-weight:500}
.ag-dhead .aacc{color:var(--text-tertiary);font-size:14px}
.ag-pause{margin-left:auto}
.ag-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4);margin-top:var(--sp-6)}
.ag-sec{background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-lg);padding:var(--sp-4) var(--sp-4) var(--sp-6);box-shadow:var(--shadow)}
.ag-sec.wide{grid-column:1 / -1}
.ag-sec h3{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);margin-bottom:var(--sp-4);display:flex;align-items:center;gap:8px}
.ag-sec h3 .add{margin-left:auto;font-size:12px;color:var(--accent-bright);font-weight:600;text-transform:none;letter-spacing:0}
.ag-field label{display:block;font-size:12px;color:var(--text-tertiary);margin-bottom:6px}
.ag-field textarea{width:100%;background:var(--surface-2);border:1px solid var(--hairline-strong);border-radius:var(--r-md);padding:10px var(--sp-4);color:var(--text-primary);outline:none;font-size:14px;font-family:inherit;resize:vertical}
.ag-field textarea:focus{border-color:var(--accent-bright)}
.ag-field+.ag-field{margin-top:var(--sp-4)}
/* missions */
.mission{background:var(--surface-2);border:1px solid var(--hairline);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-2)}
.mission .mtop{display:flex;align-items:center;gap:8px}
.mission .mname{flex:1;font-weight:600;font-size:14px}
.mflow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px;color:var(--text-secondary);font-size:13px}
.mflow .pill{background:var(--surface-3);border:1px solid var(--hairline);border-radius:99px;padding:4px 10px;font-size:12px}
.mflow .arrow{color:var(--text-tertiary)}
.mflow .pill.dest{background:var(--accent-tint);color:var(--accent-bright);border-color:transparent}
.mstatus{font-size:11px;font-weight:600;padding:3px 9px;border-radius:99px}
.mstatus.active{background:color-mix(in srgb,var(--success) 18%,transparent);color:var(--success-text)}
.mstatus.paused{background:var(--surface-3);color:var(--text-secondary)}
.mini-btn{font-size:12px;color:var(--text-tertiary);padding:4px 8px;border-radius:6px}
.mini-btn:hover{background:var(--surface-3);color:var(--text-primary)}
.mission-form{border:1px dashed var(--hairline-strong);border-radius:var(--r-md);padding:var(--sp-3);margin-top:var(--sp-2);display:flex;flex-direction:column;gap:var(--sp-2)}
.mission-form select,.mission-form input{background:var(--surface-2);border:1px solid var(--hairline-strong);border-radius:var(--r-sm);padding:8px 10px;color:var(--text-primary);outline:none;font-size:13px}
.mf-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.mf-dests{display:flex;gap:6px;flex-wrap:wrap}
/* connectors (sources/dest) */
.conn{display:flex;align-items:center;gap:10px;padding:9px var(--sp-3);border:1px solid var(--hairline);border-radius:var(--r-md);margin-bottom:8px}
.conn .cn{flex:1;font-size:14px}.conn .cn small{display:block;color:var(--text-tertiary);font-size:12px}
.conn .cstat{font-size:12px;font-weight:600;padding:4px 10px;border-radius:99px;cursor:pointer}
.conn .cstat.connected{background:color-mix(in srgb,var(--success) 18%,transparent);color:var(--success-text)}
.conn .cstat.to_connect{background:color-mix(in srgb,var(--warning) 18%,transparent);color:var(--warning-text)}
.conn-add{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.conn-add select{flex:1;min-width:140px;background:var(--surface-2);border:1px solid var(--hairline-strong);border-radius:var(--r-md);padding:9px 12px;color:var(--text-primary);outline:none;font-size:14px}
/* perf tiles */
.perf-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:var(--sp-3)}
.ptile{background:var(--surface-2);border:1px solid var(--hairline);border-radius:var(--r-md);padding:var(--sp-3)}
.ptile .pv{font-size:22px;font-weight:600;font-variant-numeric:tabular-nums}
.ptile .pl{color:var(--text-tertiary);font-size:12px;margin-top:2px}
.ptile .pv.up{color:var(--success-text)}
.ag-reco-list{list-style:none;display:flex;flex-direction:column;gap:8px}
.ag-reco-list li{font-size:14px;color:var(--text-secondary);padding-left:16px;position:relative;line-height:1.45}
.ag-reco-list li::before{content:"→";position:absolute;left:0;color:var(--accent-bright)}
.ag-dna-link{display:inline-flex;align-items:center;gap:8px;color:var(--accent-bright);font-weight:600;font-size:14px}
.ag-dna-link:hover{text-decoration:underline}
.ag-back svg,.ag-dna-link svg{width:18px;height:18px;flex:0 0 18px;stroke:currentColor;stroke-width:1.75;fill:none;stroke-linecap:round;stroke-linejoin:round}
.ag-back span{white-space:nowrap}
@media (max-width:720px){ .ag-grid{grid-template-columns:1fr} }

/* ============ V2.9 Agent ↔ ADN (héritage) ============ */
.ag-adn-head{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-3)}
.ag-adn-head h3{margin-bottom:0}
.ag-adn-ctl{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-left:auto}
.ag-adn-base{font-size:12px;color:var(--text-tertiary)}
.ag-adn-base b{color:var(--text-secondary);font-weight:600}
.ag-inherit{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary);border:1px solid var(--hairline-strong);border-radius:99px;padding:4px 10px 4px 6px}
.ag-inherit .knob{width:30px;height:16px;border-radius:99px;background:var(--surface-3);position:relative;transition:.16s var(--ease);flex:0 0 30px}
.ag-inherit .knob::after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:99px;background:var(--text-tertiary);transition:.16s var(--ease)}
.ag-inherit[aria-checked="true"]{color:var(--text-primary);border-color:transparent;background:var(--accent-tint)}
.ag-inherit[aria-checked="true"] .knob{background:var(--accent)}
.ag-inherit[aria-checked="true"] .knob::after{left:16px;background:#fff}
.ag-adn-edit{font-size:13px;color:var(--accent-bright);font-weight:600;white-space:nowrap}
.ag-adn-edit:hover{text-decoration:underline}
.ag-adn-hint{font-size:13px;color:var(--text-secondary);margin-bottom:var(--sp-4);line-height:1.45}
.adna-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}
.adna-card{background:var(--surface-2);border:1px solid var(--hairline);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4) var(--sp-4);margin:0;min-width:0}
.adna-card.wide{grid-column:1 / -1}
.adna-lg{display:flex;align-items:center;gap:8px;width:100%;padding:0;margin-bottom:10px}
.adna-title{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);font-weight:600}
.adna-tag{font-size:10px;font-weight:600;padding:2px 7px;border-radius:99px;text-transform:uppercase;letter-spacing:.03em}
.adna-tag.inh{background:var(--surface-3);color:var(--text-secondary)}
.adna-tag.own{background:var(--accent-tint);color:var(--accent-bright)}
.adna-reset{margin-left:auto;font-size:11px;color:var(--accent-bright);font-weight:600;padding:2px 6px;border-radius:6px}
.adna-reset:hover{background:var(--surface-3);text-decoration:underline}
.adna-sel{width:100%;background:var(--surface-1);border:1px solid var(--hairline-strong);border-radius:var(--r-md);padding:9px 12px;color:var(--text-primary);outline:none;font-size:14px}
.adna-sel:focus{border-color:var(--accent-bright)}
.ag-mumeta{font-size:13px;color:var(--text-secondary);margin-bottom:var(--sp-3)}
.ag-mulist{list-style:none;display:flex;flex-direction:column;gap:8px}
.ag-mulist li{display:flex;align-items:center;gap:10px;background:var(--surface-2);border:1px solid var(--hairline);border-radius:var(--r-md);padding:9px var(--sp-3)}
.ag-mulist .mn{flex:1;font-size:14px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ag-mulist small{color:var(--text-tertiary);font-size:12px;white-space:nowrap}
.ag-iso-note{font-size:12px;color:var(--text-tertiary);margin-bottom:10px}
@media (max-width:720px){ .adna-grid{grid-template-columns:1fr} .ag-adn-ctl{margin-left:0} }

/* ============ V3.0 Indicateur de mode (démo vs transport local) ============ */
.mode-badge{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;
  border:1px solid var(--hairline-strong);border-radius:99px;padding:4px 11px;white-space:nowrap;
  color:var(--text-secondary);background:var(--surface-1)}
.mode-badge .md-dot{width:8px;height:8px;border-radius:99px;flex:0 0 8px;background:var(--text-tertiary)}
.mode-badge .md-tech{display:none;font-weight:400;color:var(--text-tertiary)}
body[data-internal="1"] .mode-badge .md-tech{display:inline}
.mode-badge.demo{color:var(--champagne-text);border-color:color-mix(in srgb,var(--champagne) 45%,transparent)}
.mode-badge.demo .md-dot{background:var(--champagne)}
.mode-badge.pending{color:var(--warning-text);border-color:color-mix(in srgb,var(--warning) 45%,transparent)}
.mode-badge.pending .md-dot{background:var(--warning);box-shadow:0 0 8px color-mix(in srgb,var(--warning) 55%,transparent)}
.mode-badge.live{color:var(--success-text);border-color:color-mix(in srgb,var(--success) 45%,transparent)}
.mode-badge.live .md-dot{background:var(--success);box-shadow:0 0 8px color-mix(in srgb,var(--success) 55%,transparent)}
@media (max-width:640px){ .mode-badge{max-width:46vw;overflow:hidden}
  .mode-badge .md-t{overflow:hidden;text-overflow:ellipsis} }

/* ============ V3.1 Choisir ma vidéo → droits → lancer ============ */
.pick-row{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;justify-content:center;margin-top:var(--sp-4)}
.sr-file{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;overflow:hidden}
#pick-video{display:inline-flex;align-items:center;gap:8px}
#pick-video .ic{width:16px;height:16px;flex:0 0 16px}
.pick-note{font-size:13px;color:var(--text-tertiary);max-width:340px;text-align:left}
.file-stage{margin:var(--sp-4) auto 0;max-width:560px;text-align:left;background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3)}
.fs-head{display:flex;align-items:center;gap:var(--sp-3)}
.fs-thumb{width:46px;height:34px;flex:0 0 46px;border-radius:8px;background:var(--surface-3);display:flex;align-items:center;justify-content:center}
.fs-thumb svg{width:20px;height:20px;stroke:var(--text-tertiary);stroke-width:1.75;fill:none;stroke-linejoin:round}
.fs-meta{flex:1;min-width:0}
.fs-meta b{display:block;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fs-meta span{font-size:12px;color:var(--text-tertiary)}
.fs-request-row{display:flex;flex-direction:column;gap:6px}
.fs-request-label{font-size:13px;font-weight:600;color:var(--text-secondary)}
.fs-request{width:100%;box-sizing:border-box;resize:vertical;min-height:42px;font:inherit;font-size:14px;line-height:1.45;color:var(--text-primary);background:var(--surface-2);border:1px solid var(--hairline);border-radius:var(--r-md);padding:var(--sp-3)}
.fs-request:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
.fs-subject{width:100%;box-sizing:border-box;font:inherit;font-size:14px;color:var(--text-primary);background:var(--surface-2);border:1px solid var(--hairline);border-radius:var(--r-md);padding:var(--sp-3)}
.fs-subject:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
.fs-request-status{font-size:12px;line-height:1.4;color:var(--text-secondary)}
.fs-request-status.err{color:var(--warning,#b25b00)}
.fs-request-status.ready{color:var(--text-secondary)}
.fs-request-note{font-size:12px;color:var(--text-tertiary);line-height:1.4}
/* Confirmation visuelle du sujet */
.subject-confirm{margin-top:var(--sp-3);border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--surface-2);padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-3)}
.scf-head{display:flex;align-items:center;gap:var(--sp-3)}
.scf-head b{flex:1;font-size:14px}
.scf-note{font-size:12px;color:var(--text-secondary);line-height:1.45;margin:0}
/* Consigne courte, évidente, au-dessus de l'image */
.scf-prompt{margin:0;font-size:15px;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:8px}
.scf-prompt::before{content:"✎";font-size:16px;color:var(--accent)}
.scf-img-wrap{position:relative;width:100%;max-width:512px;aspect-ratio:1024/576;background:var(--surface-3);border-radius:var(--r-sm);overflow:hidden;touch-action:none;cursor:crosshair;user-select:none}
.scf-img-wrap:focus{outline:3px solid var(--accent);outline-offset:2px}
.scf-img-wrap:focus:not(:focus-visible){outline:3px solid var(--accent);outline-offset:2px}
.scf-img-wrap img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
/* Indice visuel AVANT le tracé : cadre pointillé animé + invite (n'obstrue pas le tracé) */
.scf-hint{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;pointer-events:none}
.scf-hint[hidden]{display:none}
.scf-hint-box{width:46%;height:52%;border:2px dashed color-mix(in srgb,var(--accent,#6d5efc) 70%,#fff);border-radius:8px;box-shadow:0 0 0 9999px color-mix(in srgb,#000 22%,transparent)}
.scf-hint-txt{position:absolute;bottom:8px;left:0;right:0;text-align:center;font-size:13px;font-weight:600;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.7);padding:0 8px}
.scf-rect{position:absolute;border:2px solid var(--accent,#6d5efc);background:color-mix(in srgb,var(--accent,#6d5efc) 18%,transparent);pointer-events:none}
.scf-help{font-size:12px;color:var(--text-tertiary);line-height:1.4;margin:0}
.scf-meta{font-size:12px;color:var(--text-tertiary);margin:0}
.scf-actions{display:flex;gap:var(--sp-3);flex-wrap:wrap}
.scf-status{font-size:12px;color:var(--text-secondary);line-height:1.4;margin:0}
.scf-status.err{color:var(--warning,#b25b00)}
.scf-status.ok{color:var(--text-secondary)}
.fs-actions{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}
.fs-guard{font-size:12px;color:var(--text-secondary);flex:1;min-width:180px;line-height:1.4}
#fs-launch[disabled]{opacity:.5;cursor:not-allowed}

/* ============ V3.2 Upload réel (SHA-256) ============ */
.fs-sha{background:var(--surface-2);border:1px solid var(--hairline);border-radius:var(--r-md);padding:10px var(--sp-3);font-size:12px;color:var(--text-secondary);line-height:1.5}
.fs-sha .k{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;font-size:11px;display:block;margin-bottom:2px}
.fs-sha .sha{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;color:var(--text-primary);word-break:break-all}
.fs-sha .row+.row{margin-top:8px}

/* ============ Styles déplacés depuis des attributs style= inline d'index.html ============ */
/* (le serveur local sert web-v2 sous CSP `style-src 'self'`, qui bloque les styles inline) */
#peak1{left:41%}
#peak2{left:72%}
.x .ic{width:18px;height:18px}
.tl-toggle .ic{width:16px;height:16px}
.studio-head a.btn-ghost{padding:8px 12px}
.studio-head a.btn-ghost .ic{width:16px;height:16px}
.studio-head .spacer{flex:1}

/* ============ REVUE DU MATCH (maquette · données simulées) ============ */
.rev{max-width:760px;margin:0 auto;padding-bottom:var(--sp-16)}
.rev-head{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3)}
.rev-head .btn-ghost .ic{width:16px;height:16px}
.rev-h{font-size:1.5rem;margin:0}
.rev-sim{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-2);
  background:var(--accent-tint);border:1px solid var(--hairline-strong);
  border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);margin:0 0 var(--sp-6);
  color:var(--text-secondary);font-size:.9rem;line-height:1.4}
.rev-sim-badge{flex:0 0 auto;font-weight:700;color:var(--accent-bright);
  text-transform:uppercase;letter-spacing:.03em;font-size:.72rem}
.rev-steps{list-style:none;display:flex;flex-wrap:wrap;gap:var(--sp-2);
  padding:0;margin:0 0 var(--sp-6)}
.rev-step{display:flex;align-items:center;gap:var(--sp-2);
  color:var(--text-tertiary);font-size:.82rem;padding:var(--sp-1) var(--sp-3);
  border:1px solid var(--hairline);border-radius:999px;background:var(--surface-1)}
.rev-step-n{display:inline-flex;align-items:center;justify-content:center;
  width:18px;height:18px;border-radius:50%;background:var(--surface-3);
  color:var(--text-tertiary);font-size:.7rem;font-weight:700}
.rev-step.done{color:var(--text-secondary)}
.rev-step.done .rev-step-n{background:var(--success);color:#0D1420}
.rev-step.on{color:var(--text-primary);border-color:var(--accent)}
.rev-step.on .rev-step-n{background:var(--accent);color:#fff}
.rev-panel[hidden]{display:none}
.rev-ph{font-size:1.15rem;margin:0 0 var(--sp-3)}
.rev-ph:focus{outline:none}
.rev-sub{color:var(--text-secondary);margin:0 0 var(--sp-4);line-height:1.45}
.rev-dep{margin:var(--sp-4) 0 0;font-size:.8rem;color:var(--text-tertiary);
  border-left:2px solid var(--hairline-strong);padding-left:var(--sp-3)}
.rev-actions{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-4)}

/* choix */
.rev-choice{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4)}
.rev-card{display:flex;flex-direction:column;gap:var(--sp-2);text-align:left;
  background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-lg);
  padding:var(--sp-4);cursor:pointer;transition:border-color .15s var(--ease),transform .15s var(--ease)}
.rev-card:hover{border-color:var(--accent);transform:translateY(-1px)}
.rev-card:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.rev-card-t{font-weight:700;color:var(--text-primary);font-size:1.02rem}
.rev-card-d{color:var(--text-secondary);font-size:.88rem;line-height:1.4}
.rev-badge{margin-top:var(--sp-1);font-size:.76rem;font-weight:600;
  padding:2px 8px;border-radius:999px;align-self:flex-start}
.rev-lock{background:rgba(226,123,114,.14);color:var(--danger)}
.rev-wait{background:rgba(224,168,92,.14);color:var(--warning-text)}
.rev-player-note{margin-top:var(--sp-4);background:var(--surface-1);
  border:1px solid var(--hairline);border-left:3px solid var(--danger);
  border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);
  color:var(--text-secondary);font-size:.9rem;line-height:1.45}

/* fenêtres */
.rev-windows{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--sp-2)}
.rev-win{display:flex;align-items:center;gap:var(--sp-3);
  background:var(--surface-1);border:1px solid var(--hairline);
  border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4)}
.rev-win-dot{flex:0 0 auto;width:10px;height:10px;border-radius:50%;background:var(--surface-3)}
.rev-win-done .rev-win-dot{background:var(--success)}
.rev-win-current{border-color:var(--accent)}
.rev-win-current .rev-win-dot{background:var(--accent);box-shadow:0 0 0 4px var(--accent-tint)}
.rev-win-l{flex:1;color:var(--text-primary);font-size:.92rem}
.rev-win-b{color:var(--text-tertiary);font-size:.8rem}
.rev-cursor{margin:var(--sp-3) 0 0;font-size:.82rem;color:var(--text-secondary)}

/* propositions */
.rev-props-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3)}
.rev-count{color:var(--text-tertiary);font-size:.85rem;font-variant-numeric:tabular-nums}
.rev-prop{display:flex;gap:var(--sp-4);background:var(--surface-1);
  border:1px solid var(--hairline);border-radius:var(--r-lg);padding:var(--sp-4);margin-top:var(--sp-2)}
.rev-prop-media{position:relative;flex:0 0 96px;height:128px;border-radius:var(--r-md);
  background:linear-gradient(140deg,var(--surface-3),var(--surface-2));
  display:flex;align-items:center;justify-content:center}
.rev-prop-play svg{width:34px;height:34px;fill:var(--text-primary);opacity:.85}
.rev-prop-dur{position:absolute;right:6px;bottom:6px;font-size:.72rem;
  background:rgba(6,10,18,.6);color:#fff;padding:1px 6px;border-radius:6px}
.rev-prop-info{flex:1;min-width:0}
.rev-prop-cap{margin:0 0 var(--sp-1);font-weight:700;color:var(--text-primary);font-size:1.05rem}
.rev-prop-win{margin:0 0 var(--sp-2);color:var(--text-tertiary);font-size:.82rem}
.rev-prop-why{margin:0;color:var(--text-secondary);font-size:.9rem;line-height:1.45}
.rev-why-lbl{text-transform:uppercase;letter-spacing:.04em;font-size:.68rem;
  color:var(--accent-bright);font-weight:700;margin-right:6px}
.rev-decide{margin-top:var(--sp-4)}

/* revue des mises de côté */
.rev-aside-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--sp-2)}
.rev-aside{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);
  background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-md);
  padding:var(--sp-3) var(--sp-4)}
.rev-aside-info{display:flex;flex-direction:column;gap:2px;min-width:0}
.rev-aside-info b{color:var(--text-primary);font-size:.95rem}
.rev-aside-info span{color:var(--text-tertiary);font-size:.8rem}
.rev-aside-act{display:flex;gap:var(--sp-2);flex:0 0 auto}
.rev-summary{margin-top:var(--sp-4);color:var(--text-secondary);font-size:.9rem;
  font-variant-numeric:tabular-nums}

@media (max-width:560px){
  .rev-choice{grid-template-columns:1fr}
  .rev-prop{flex-direction:column}
  .rev-prop-media{flex-basis:auto;width:100%;height:150px}
  .rev-aside{flex-direction:column;align-items:flex-start}
}

/* --- scénario 1 : demande + attribution honnête --- */
.rev-request{background:var(--surface-1);border:1px solid var(--hairline);
  border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);margin:0 0 var(--sp-6)}
.rev-request-lbl{margin:0 0 var(--sp-1);font-size:.7rem;text-transform:uppercase;
  letter-spacing:.05em;color:var(--accent-bright);font-weight:700}
.rev-request-txt{margin:0 0 var(--sp-2);color:var(--text-primary);line-height:1.45}
.rev-caveats{margin:0;padding-left:1.1em;color:var(--text-secondary);font-size:.85rem;line-height:1.5}
.rev-caveats li{margin:2px 0}
.rev-prop-tags{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin:0 0 var(--sp-2)}
.rev-kind{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;
  padding:2px 8px;border-radius:999px;background:var(--surface-3);color:var(--text-secondary)}
.rev-attr{font-size:.74rem;font-weight:600;padding:2px 8px;border-radius:999px}
.rev-attr-visual{background:var(--accent-tint);color:var(--accent-bright)}
.rev-attr-commentary{background:rgba(224,168,92,.16);color:var(--warning-text)}

/* --- état moteur (miroir simulé de longProgress, contrat asr-ownership-v4) --- */
.rev-engine{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);
  margin:var(--sp-3) 0 0;padding:var(--sp-3) var(--sp-4);
  background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-md);
  font-size:.84rem;font-variant-numeric:tabular-nums}
.rev-eng-lbl{font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;
  font-weight:700;color:var(--text-tertiary)}
.rev-eng-line{color:var(--text-secondary)}
.rev-eng-chip{font-weight:700;font-size:.76rem;padding:2px 8px;border-radius:999px}
.rev-eng-run{background:var(--accent-tint);color:var(--accent-bright)}
.rev-eng-int{background:rgba(224,168,92,.16);color:var(--warning-text)}
.rev-eng-blocked{background:rgba(226,123,114,.16);color:#F2ADA6}
:root[data-theme="light"] .rev-eng-blocked,
:root:not([data-theme]) .rev-eng-blocked{color:#B23B33}
@media (prefers-color-scheme:light){:root[data-theme="system"] .rev-eng-blocked{color:#B23B33}}
.rev-note-sim{margin:0 0 var(--sp-3);padding:var(--sp-2) var(--sp-3);
  background:var(--accent-tint);border-radius:var(--r-sm);
  color:var(--text-secondary);font-size:.84rem;line-height:1.4}
.rev-player-note code,.rev-dep code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}

/* --- lecture réelle d'un job long (serveur isolé, lecture seule) --- */
.rev-real{margin:var(--sp-4) 0 0;padding:var(--sp-3) var(--sp-4);
  background:var(--surface-1);border:1px dashed var(--hairline-strong);border-radius:var(--r-md)}
.rev-real-lbl{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;
  font-weight:700;color:var(--text-secondary);margin-bottom:var(--sp-2)}
.rev-real-row{display:flex;flex-wrap:wrap;gap:var(--sp-2)}
.rev-jobid{flex:1;min-width:220px;background:var(--surface-2);color:var(--text-primary);
  border:1px solid var(--hairline);border-radius:var(--r-sm);padding:8px 10px;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem}
.rev-jobid:focus{outline:2px solid var(--accent);outline-offset:1px}
.rev-real-status{margin:var(--sp-2) 0 0;font-size:.82rem;color:var(--text-secondary)}
.rev-real-eng{margin-top:var(--sp-2);border-style:solid;border-color:var(--accent)}
.rev-real-eng .rev-eng-lbl{color:var(--accent-bright)}
.rev-real-props{margin:var(--sp-2) 0 0;font-size:.82rem;color:var(--text-secondary);line-height:1.4}

/* --- propositions RÉELLES (contrat vertical V1) — lecture + décision persistante --- */
.rev-real-props-list{margin-top:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-3)}
.rev-rprop{background:var(--surface-2);border:1px solid var(--hairline);border-left:3px solid var(--accent);
  border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4)}
.rev-rprop-blocked{border-left-color:var(--danger)}
.rev-rprop-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2)}
.rev-rprop-head b{color:var(--text-primary);font-size:.98rem}
.rev-rprop-review{background:rgba(224,168,92,.16);color:var(--warning-text)}
.rev-rprop-line{margin:2px 0;font-size:.82rem;color:var(--text-secondary);line-height:1.4}
.rev-rprop-attr{color:var(--warning-text)}
.rev-rprop-notready{color:var(--text-tertiary);font-variant:small-caps;letter-spacing:.02em}
.rev-rprop-dec{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-3);align-items:center}
.rev-rprop-dec .btn{padding:6px 12px;font-size:.85rem}
.rev-rprop-status{margin:var(--sp-2) 0 0;flex-basis:100%;font-size:.82rem;color:var(--text-secondary)}
.rev-rprop-note{margin:var(--sp-2) 0 0;flex-basis:100%;font-size:.8rem;color:var(--danger)}
.rev-rprop-export{margin:var(--sp-3) 0 0;font-size:.78rem;color:var(--text-tertiary);
  border-top:1px solid var(--hairline);padding-top:var(--sp-2)}

/* ============ CONFIG AGENT DE MONTAGE (maquette · données simulées) ============ */
.cfg{max-width:760px;margin:0 auto;padding-bottom:var(--sp-16)}
.cfg-head{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3)}
.cfg-head .btn-ghost .ic{width:16px;height:16px}
.cfg-h{font-size:1.5rem;margin:0}
.cfg-intro{color:var(--text-secondary);margin:0 0 var(--sp-6)}
.cfg-presets{background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-md);
  padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-6);display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center}
.cfg-presets-lbl{flex-basis:100%;margin:0 0 2px;font-size:.78rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.03em;color:var(--text-tertiary)}
.cfg-preset-note{flex-basis:100%;margin:var(--sp-2) 0 0;font-size:.84rem;color:var(--success-text)}
.cfg-form{display:flex;flex-direction:column;gap:var(--sp-4)}
.cfg-q{border:1px solid var(--hairline);border-radius:var(--r-lg);padding:var(--sp-4);margin:0;
  background:var(--surface-1);transition:box-shadow .2s var(--ease),border-color .2s var(--ease)}
.cfg-q legend{font-weight:700;color:var(--text-primary);padding:0 var(--sp-2);font-size:1rem}
.cfg-q-focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}
.cfg-qsub{margin:0 0 var(--sp-3);color:var(--text-tertiary);font-size:.85rem}
.cfg-opts{display:flex;flex-wrap:wrap;gap:var(--sp-2)}
.cfg-opts + .cfg-opts{margin-top:var(--sp-2)}
.cfg-chip{background:var(--surface-2);color:var(--text-secondary);border:1px solid var(--hairline);
  border-radius:999px;padding:8px 14px;font-size:.88rem;cursor:pointer;
  transition:background .12s var(--ease),border-color .12s var(--ease),color .12s var(--ease)}
.cfg-chip:hover{border-color:var(--hairline-strong)}
.cfg-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.cfg-chip.on{background:var(--accent-tint);border-color:var(--accent);color:var(--text-primary);font-weight:600}
.cfg-name-row{margin-top:var(--sp-3)}
.cfg-name-lbl{display:block;font-size:.82rem;color:var(--text-secondary);margin-bottom:var(--sp-1)}
.cfg-input{width:100%;background:var(--surface-2);color:var(--text-primary);border:1px solid var(--hairline);
  border-radius:var(--r-sm);padding:9px 11px;font-size:.9rem}
.cfg-input:focus{outline:2px solid var(--accent);outline-offset:1px}
.cfg-hint{margin:var(--sp-2) 0 0;font-size:.8rem;color:var(--text-tertiary);line-height:1.4}
.cfg-hint-lock{color:var(--warning-text)}
.cfg-adapt{border-color:var(--accent);background:var(--surface-1)}
.cfg-dialog{margin-top:var(--sp-2)}
.cfg-dialog-recap{margin:0 0 var(--sp-2);font-size:.82rem;color:var(--text-secondary);font-style:italic;min-height:1em}
.cfg-dialog-q{margin:0 0 var(--sp-2);font-weight:600;line-height:1.35}
.cfg-dialog-nav{display:flex;gap:var(--sp-2);align-items:center;margin-top:var(--sp-3);flex-wrap:wrap}
.cfg-dialog-done{margin-top:var(--sp-2)}
.cfg-dialog #aura-step-input,.cfg-dialog #hist-step-input{max-width:520px}
.cfg-credits{margin-top:var(--sp-3);padding:var(--sp-3);border:1px solid var(--hairline-strong);border-radius:var(--r-sm);background:var(--surface-2)}
.cfg-credits .ed-line{margin:0 0 4px}
.cfg-rules{margin-top:var(--sp-3);padding:var(--sp-3);border:1px solid var(--hairline-strong);border-radius:var(--r-sm);background:var(--surface-2)}
.cfg-rules .ed-line{margin:0 0 4px}
.cfg-check-grp{display:flex;flex-direction:column;gap:6px}
.cfg-check-grp .rights-confirm{margin:0}
.cfg-src-blocked{opacity:.6}
/* ---- Clip local ---- */
.clip-player{width:100%;max-width:480px;margin:var(--sp-3) 0;background:#000;border:1px solid var(--hairline-strong);border-radius:var(--r-md);overflow:hidden;aspect-ratio:9/16;display:flex;align-items:center;justify-content:center}
.clip-player video{width:100%;height:100%;object-fit:contain;background:#000}
.clip-controls{display:flex;flex-direction:column;gap:var(--sp-2);max-width:480px}
.clip-range-lbl{display:flex;align-items:center;gap:var(--sp-2);font-size:13px;color:var(--text-secondary)}
.clip-range{flex:1}
/* ---- Clip : propositions d'actions de jeu (CLIENT-GAMEPLAY-MOMENTS-V1) ---- */
.clip-moments-list{display:flex;flex-direction:column;gap:var(--sp-2);margin-top:var(--sp-2)}
.clip-prop{border:1px solid var(--hairline);border-left-width:3px;border-left-color:var(--accent);border-radius:var(--r-md);background:var(--surface-1);padding:var(--sp-3)}
.clip-prop-head{display:flex;gap:var(--sp-3);align-items:baseline;justify-content:space-between;flex-wrap:wrap}
.clip-prop-act{font-weight:700;color:var(--text-primary);font-size:.95rem}
.clip-prop-time{font-size:.82rem;color:var(--text-secondary);font-variant-numeric:tabular-nums}
.clip-prop-line{margin:var(--sp-1) 0 0;font-size:.82rem;line-height:1.4;color:var(--text-secondary)}
.clip-prop .set-actions{margin-top:var(--sp-2)}
.clip-prop-out:not(:empty){margin-top:var(--sp-2)}
.clip-prop-player{aspect-ratio:16/9;max-width:480px}
.clip-prop-video{width:100%;height:100%;object-fit:contain;background:#000}
.cfg-eng-attente{border-left-color:var(--warning)!important}
.cfg-eng-attente .cfg-eng-badge{color:var(--warning-text)}
/* Préférences pré-analyse (panneau injecté #clip-search-preferences) : harmonisation thème/disposition seulement */
#clip-search-preferences{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--sp-2) var(--sp-4);margin:var(--sp-3) 0}
#clip-search-preferences > label{display:inline-flex;flex-direction:column;gap:4px;font-size:.82rem;color:var(--text-secondary);line-height:1.3}
#clip-search-preferences select{background:var(--surface-2);color:var(--text-primary);border:1px solid var(--hairline);border-radius:var(--r-sm);padding:8px 10px;font-size:.9rem;font-family:inherit;min-width:200px}
#clip-search-preferences select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
/* KEEP-PARTS-V3 : trois parties combinables (Avant / L'action / Après) à la place d'une durée */
#clip-keep-parts{display:flex;flex-direction:column;gap:6px;margin:0;padding:8px 12px 10px;border:1px solid var(--hairline);border-radius:var(--r-sm);background:var(--surface-2)}
#clip-keep-parts legend{font-size:.82rem;color:var(--text-secondary);padding:0 4px}
#clip-search-preferences .clip-keep-opt{display:flex;flex-direction:row;align-items:baseline;gap:8px;font-size:.88rem;color:var(--text-primary);line-height:1.3;cursor:pointer}
#clip-search-preferences .clip-keep-opt input[type="checkbox"]{flex:0 0 auto;width:16px;height:16px;accent-color:var(--accent);margin:0;position:relative;top:2px;cursor:pointer}
#clip-search-preferences .clip-keep-opt .clip-keep-name{font-weight:600}
#clip-search-preferences .clip-keep-opt .cfg-hint{flex:0 1 auto;margin:0;font-size:.78rem}
#clip-search-preferences .clip-keep-opt input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
#clip-search-preferences > .cfg-hint{flex-basis:100%;margin:var(--sp-1) 0 0}
#clip-search-preferences button{flex:0 0 auto}
@media (max-width:560px){#clip-search-preferences > label,#clip-search-preferences select,#clip-keep-parts{width:100%}#clip-search-preferences button{width:100%}}
/* KEEP-PARTS-V3 : récit composé (parties, segments, durée, limite 30 s) affiché sans coupe automatique */
.clip-narr{margin:6px 0;padding:8px 10px;border-left:3px solid var(--hairline);background:var(--surface-2);border-radius:0 var(--r-sm) var(--r-sm) 0}
.clip-narr p{margin:2px 0}
/* ---- Mes clips : bibliothèque locale persistante (CLIENT-CLIP-LIBRARY-V1) ---- */
.mesclip-state{margin:var(--sp-3) 0;padding:var(--sp-4);border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--surface-1)}
.mesclip-state p{margin:2px 0}
.mesclip-state-err{border-color:var(--danger,#d66);background:var(--danger-tint,rgba(200,80,80,.08))}
.mesclip-list{display:flex;flex-direction:column;gap:var(--sp-4);margin-top:var(--sp-3)}
.mesclip{padding:var(--sp-4);border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--surface-1)}
.mesclip-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-3);margin-bottom:6px}
.mesclip-time{color:var(--text-secondary);font-size:.86rem;font-variant-numeric:tabular-nums}
.mesclip-badge{display:inline-flex;align-items:center;font-size:.76rem;font-weight:700;padding:3px 10px;border-radius:999px;border:1px solid var(--hairline)}
.mesclip-live-sec{margin-top:var(--sp-6);padding-top:var(--sp-4);border-top:1px solid var(--hairline)}
.mesclip-live{border-left:3px solid var(--accent-bright)}
.mesclip-live-badge{background:var(--accent-tint);color:var(--text-primary);border-color:var(--accent)}
.mesclip-copy-sec{margin-top:var(--sp-6);padding-top:var(--sp-4);border-top:1px solid var(--hairline)}
.mesclip-copy{border-left:3px solid var(--warn,#c90)}
.mesclip-copy-badge{background:var(--warn-tint,rgba(200,150,0,.12));color:var(--text-primary);border-color:var(--warn,#c90)}
.copy-docs{margin-top:var(--sp-3);padding-top:var(--sp-2);border-top:1px dashed var(--hairline)}
.copy-doc-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:6px 0;padding:6px;border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--surface-1);min-width:0}
.copy-doc-row .cfg-input{flex:1 1 180px;min-width:0}
.copy-doc-scopes{display:flex;flex-wrap:wrap;gap:4px 10px;flex-basis:100%}
.mesclip-badge.mesclip-await{background:var(--surface-2);color:var(--text-secondary)}
.mesclip-badge.mesclip-ok{background:var(--accent-tint);color:var(--text-primary);border-color:var(--accent)}
.mesclip-badge.mesclip-rej{background:var(--danger-tint,rgba(200,80,80,.1));color:var(--danger,#d66);border-color:var(--danger,#d66)}
.mesclip-player{margin:8px 0;text-align:center}
/* hauteur bornée : la vidéo garde son ratio natif, plafonnée pour ne jamais occuper tout l'écran (correctif lecteur « Mes clips ») */
.mesclip-video{display:block;max-width:100%;width:auto;height:auto;max-height:300px;object-fit:contain;border-radius:var(--r-sm);background:#000;margin:0 auto}
/* Variante de cadrage (CLIENT-CLIP-BACKGROUND-V1) : format + arrière-plan bandes noires / fond flouté */
.mesclip-bg{margin:10px 0 0;border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--surface-2)}
.mesclip-bg>summary{cursor:pointer;padding:8px 12px;font-size:.88rem;color:var(--text-primary)}
.mesclip-bg>summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mesclip-bg-body{display:flex;flex-direction:column;gap:8px;padding:4px 12px 12px}
.clip-fit-row{display:inline-flex;flex-direction:column;gap:4px;font-size:.84rem;color:var(--text-secondary)}
.clip-fit-row select{background:var(--surface-1);color:var(--text-primary);border:1px solid var(--hairline);border-radius:var(--r-sm);padding:7px 9px;font-size:.9rem;font-family:inherit;max-width:220px}
.clip-fit-row select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.clip-fit-bg{display:flex;flex-direction:column;gap:6px}
.clip-fit-opt{display:flex;align-items:baseline;gap:8px;font-size:.9rem;color:var(--text-primary);line-height:1.35;cursor:pointer}
.clip-fit-opt input[type="radio"]{flex:0 0 auto;width:16px;height:16px;accent-color:var(--accent);margin:0;position:relative;top:2px;cursor:pointer}
.clip-fit-opt input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mesclip-bg-out{margin-top:2px}
/* Pertinence (SELECTION-V1) : observation du modèle, pas une confirmation */
.clip-prop-rel{display:inline-flex;align-items:center;font-size:.72rem;font-weight:600;padding:2px 8px;border-radius:999px;border:1px solid var(--hairline);margin-left:6px}
.clip-prop-rel.rel-possible{background:var(--accent-tint);color:var(--text-primary);border-color:var(--accent)}
.clip-prop-rel.rel-unknown{background:var(--surface-2);color:var(--text-secondary)}
.clip-rel-note{margin:2px 0}
/* ---- Accueil « Que voulez-vous créer ? » : exemples d'intention + mission conservée ---- */
.intent-ex{margin:var(--sp-4) 0 var(--sp-2)}
.intent-ex-label{font-size:.8rem;color:var(--text-tertiary);margin:0 0 var(--sp-2);text-transform:uppercase;letter-spacing:.04em}
.intent-row{display:flex;flex-wrap:wrap;gap:var(--sp-2)}
.intent-chip{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;flex:1 1 180px;min-width:160px;padding:10px 14px;border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--surface-1);color:var(--text-primary);cursor:pointer;font:inherit}
.intent-chip:hover{border-color:var(--accent)}
.intent-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.intent-chip.sel{border-color:var(--accent);background:var(--accent-tint)}
.intent-chip .intent-lbl{font-weight:700;font-size:.95rem;display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.intent-chip .intent-desc{font-size:.8rem;color:var(--text-secondary);line-height:1.3}
.intent-chip.intent-soon{opacity:.72;cursor:default}
.intent-chip.intent-soon:hover{border-color:var(--hairline)}
.intent-panel{margin-top:var(--sp-2);padding:10px 12px;border:1px solid var(--hairline);border-left-width:3px;border-radius:var(--r-sm);background:var(--surface-1);font-size:.88rem;line-height:1.4}
.intent-panel.intent-panel-soon{border-left-color:var(--danger,#d66)}
.home-mission{margin:var(--sp-4) 0;padding:var(--sp-4);border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--surface-1);text-align:left}
.home-mission-h{margin:0 0 var(--sp-3);font-size:1rem}
.home-mission-sub{font-weight:400;font-size:.82rem;color:var(--text-tertiary)}
.home-mission-list{list-style:none;margin:0 0 var(--sp-3);padding:0;display:flex;flex-direction:column;gap:6px}
.home-mission-list li{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:.9rem;line-height:1.4}
.home-mission-list .hm-k{flex:0 0 96px;color:var(--text-tertiary);font-size:.82rem;padding-top:1px}
.home-mission-list .hm-v{flex:1 1 220px;color:var(--text-primary)}
.home-mission-live-box{margin-top:var(--sp-2);padding:10px 12px;border:1px solid var(--hairline);border-left-width:3px;border-radius:var(--r-sm);background:var(--surface-2)}
.home-mission-live-box p{margin:3px 0}
.home-mission-live-box code{font-size:.82em;background:var(--surface-1);padding:1px 4px;border-radius:3px}
.home-summary-box{margin-top:var(--sp-2);padding:10px 12px;border:1px solid var(--hairline);border-radius:var(--r-sm);background:var(--surface-1)}
.home-summary-h{margin:0 0 6px;font-size:.92rem}
.home-summary-box p{margin:3px 0}
.home-summary-box .set-actions{margin-top:6px}
.home-summary-results{margin:8px 0;padding:8px 10px;border:1px solid var(--hairline);border-left-width:3px;border-radius:0 var(--r-sm) var(--r-sm) 0;background:var(--surface-2)}
.summary-seg-list{list-style:none;margin:6px 0;padding:0;display:flex;flex-direction:column;gap:4px;max-height:320px;overflow:auto}
.summary-seg-lbl{display:flex;gap:8px;align-items:baseline;font-size:.88rem;line-height:1.35;cursor:pointer}
.summary-seg-lbl input[type="checkbox"]{flex:0 0 auto;width:15px;height:15px;accent-color:var(--accent);margin:0;position:relative;top:2px;cursor:pointer}
.summary-seg-lbl input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.summary-seg-time{flex:0 0 auto;color:var(--text-tertiary);font-variant-numeric:tabular-nums;font-size:.8rem}
.summary-seg-txt{flex:1 1 auto;color:var(--text-primary)}
.home-summary-quote{margin-top:8px;padding-top:6px;border-top:1px solid var(--hairline)}
/* ---- Propositions de résumé (CLIENT-MISSION-SUMMARY-EXECUTION-V1) : à revoir, limites explicites ---- */
.summary-proposals{margin-top:8px}
.summary-prop-list{list-style:none;margin:6px 0;padding:0;display:flex;flex-direction:column;gap:8px}
.summary-prop{padding:8px 10px;border:1px solid var(--hairline);border-left-width:3px;border-radius:0 var(--r-sm) var(--r-sm) 0;background:var(--surface-2)}
.summary-qc{margin:8px 0;padding:8px 10px;border:1px solid var(--hairline);border-left-width:3px;border-left-color:var(--accent);border-radius:0 var(--r-sm) var(--r-sm) 0;background:var(--surface-2)}
.summary-qc-choices{display:flex;flex-direction:column;gap:4px;margin:6px 0}
.summary-qc-clear{margin-top:6px;padding-top:6px;border-top:1px solid var(--hairline)}
.home-projects-list{list-style:none;margin:6px 0;padding:0;display:flex;flex-direction:column;gap:8px}
.home-project{padding:8px 10px;border:1px solid var(--hairline);border-left-width:3px;border-radius:0 var(--r-sm) var(--r-sm) 0;background:var(--surface-2)}
.home-project-head{font-size:.92rem;color:var(--text-primary)}
.home-project-meta{font-size:.8rem;margin-top:2px}
.summary-prop-head{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:baseline}
.summary-prop-kind{font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);border:1px solid var(--hairline);border-radius:999px;padding:1px 8px}
.summary-prop-state{font-size:.74rem;color:var(--text-tertiary)}
.summary-prop-reason{margin:4px 0;font-size:.9rem;color:var(--text-primary);line-height:1.4;white-space:pre-wrap;word-break:break-word}
.summary-prop-ev{list-style:none;margin:4px 0;padding:0 0 0 10px;border-left:2px solid var(--hairline);display:flex;flex-direction:column;gap:2px;font-size:.82rem;color:var(--text-secondary)}
.summary-prop-pick{display:inline-flex;gap:5px;align-items:center;font-size:.78rem;color:var(--text-secondary);cursor:pointer}
.summary-prop-pick input[type="checkbox"]{width:15px;height:15px;accent-color:var(--accent);margin:0;cursor:pointer}
.summary-prop-pick input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.summary-montage-panel{margin-top:10px;padding:10px 12px;border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--surface-1)}
.summary-montage-panel .clip-fit-row{display:block;margin:6px 0;font-size:.84rem;color:var(--text-secondary)}
.summary-montage-panel .clip-fit-row select{margin-left:6px;background:var(--surface-2);color:var(--text-primary);border:1px solid var(--hairline);border-radius:var(--r-sm);padding:6px 8px;font-family:inherit}
.summary-subs-soon{margin:8px 0;padding:8px 10px;border:1px dashed var(--hairline);border-radius:var(--r-sm);background:var(--surface-2)}
.summary-subs-soon .clip-fit-opt.is-soon{display:flex;gap:6px;align-items:center;color:var(--text-secondary);opacity:.8}
.summary-subs-soon .clip-fit-opt.is-soon input{cursor:not-allowed}
@media (max-width:560px){.home-summary-box .set-actions .btn,.home-mission-live-box .set-actions .btn{width:100%}.summary-seg-list{max-height:260px}}
.intent-banner{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:0 0 var(--sp-4);padding:8px 12px;border:1px solid var(--hairline);border-left-width:3px;border-left-color:var(--accent);border-radius:var(--r-sm);background:var(--surface-2)}
.intent-banner-txt{display:flex;flex-direction:column;gap:1px;flex:1 1 auto;min-width:0}
.intent-banner-k{font-size:.72rem;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em}
.intent-banner-req{font-size:.82rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis}
@media (max-width:560px){.intent-chip{flex:1 1 100%}.home-mission-list .hm-k{flex-basis:100%}}
.mesclip-ack{display:block;position:relative;padding-left:26px;margin:8px 0;font-size:.86rem;color:var(--text-primary);line-height:1.4;cursor:pointer} /* [CLAUDE-V118] bloc : le texte ne se découpe plus en colonnes */
.mesclip-ack input[type="checkbox"]{position:absolute;left:0;top:1px;width:18px;height:18px;accent-color:var(--accent);margin:0;cursor:pointer}
.mesclip-ack input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mesclip .set-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:6px}
.mesclip-okline{color:var(--text-primary)}
.mesclip-dl{text-decoration:none}
.mesclip-out{margin-top:6px}
/* ---- Scénario & narration de tutoriel (CLIENT-TUTORIAL-SCRIPT-V1) ---- */
.tut-sec{margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--hairline)}
.tut-claim,.tut-step,.tut-fact,.tut-exec{margin:var(--sp-2) 0;padding:var(--sp-2);border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--surface-1);min-width:0}
.tut-ta{display:block;width:100%;margin-top:6px;resize:vertical;min-height:40px;box-sizing:border-box}
.auto-copy-ta{display:block;width:100%;resize:vertical;min-height:120px;box-sizing:border-box;font-family:var(--mono,ui-monospace,monospace);font-size:.82rem;white-space:pre;overflow:auto}
.auto-copy-orch{flex-wrap:wrap}
.auto-copy-pubs{flex-basis:100%;display:flex;flex-direction:column;gap:6px;margin-top:6px;padding-top:6px;border-top:1px dashed var(--hairline)}
.acct-card{margin:var(--sp-3) 0;padding:var(--sp-4);border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--surface-1);min-width:0}
.acct-card .set-actions{flex-wrap:wrap}
.acct-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:15px;margin-bottom:4px}
.acct-chip{font-size:11px;font-weight:600;color:var(--accent-bright);background:var(--accent-tint);border-radius:99px;padding:2px 8px}
.acct-state{font-size:13px;font-weight:600}
.acct-state-ok{color:var(--success-text)}
.acct-state-warn{color:var(--warning-text)}
.acct-state-off{color:var(--text-tertiary)}
.acct-note{color:var(--text-tertiary);font-size:13px;line-height:1.5;margin-top:8px}
.acct-menu{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap}
.acct-tech{margin-top:10px}
.acct-tech summary{cursor:pointer;color:var(--text-tertiary);font-size:12px;list-style:none}
.acct-tech summary::-webkit-details-marker{display:none}
.acct-tech summary::before{content:"⚙ ";opacity:.7}
.acct-tech[open] summary{margin-bottom:8px}
.tut-narration{margin-top:6px;padding:var(--sp-2);border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--surface-2);white-space:pre-wrap;overflow-wrap:anywhere;font-size:.88rem;line-height:1.4}
.tut-ev{display:inline-flex;gap:4px;align-items:center;margin:2px 8px 2px 0;cursor:pointer}
.tut-ev input{accent-color:var(--accent)}
@media (max-width:560px){.mesclip-video{max-height:240px}.mesclip .set-actions .btn,.mesclip .set-actions .mesclip-dl{width:100%;text-align:center}}
/* ---- Analyse payante : devis + accord sur le coût + progression (CLIENT-GAMEPLAY-EXECUTION-V1) ---- */
.clip-exec-panel{margin:var(--sp-3) 0;padding:var(--sp-4);border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--surface-1)}
.clip-exec-h{margin:0 0 var(--sp-2);font-size:1rem}
.clip-exec-quote{margin-bottom:var(--sp-3)}
.clip-exec-quote p{margin:2px 0}
.clip-exec-frames{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.clip-exec-frame{width:88px;height:50px;object-fit:cover;border-radius:var(--r-sm);border:1px solid var(--hairline);background:#000}
.clip-exec-reasons{margin:6px 0 0;padding-left:1.2em;color:var(--text-secondary);font-size:.88rem}
.clip-exec-reasons li{margin:2px 0}
.clip-exec-consent{margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--hairline)}
.clip-exec-caplbl{display:inline-flex;flex-direction:column;gap:4px;font-size:.84rem;color:var(--text-secondary)}
.clip-exec-caplbl input{background:var(--surface-2);color:var(--text-primary);border:1px solid var(--hairline);border-radius:var(--r-sm);padding:8px 10px;font-size:.9rem;font-family:inherit;max-width:160px}
.clip-exec-caplbl input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.clip-exec-ack{margin:10px 0}
#clip-exec-prog{margin-top:8px}
@media (max-width:560px){.clip-exec-caplbl input{max-width:none;width:100%}.clip-exec-panel .set-actions .btn{width:100%}}
/* ---- Clip : légende des étapes (guide d'ordre) ---- */
.clip-steps{list-style:none;counter-reset:clipstep;margin:var(--sp-3) 0 var(--sp-6);padding:0;display:flex;flex-direction:column;gap:var(--sp-2)}
.clip-steps li{counter-increment:clipstep;display:flex;gap:var(--sp-3);align-items:baseline;padding:var(--sp-2) var(--sp-3);border:1px solid var(--hairline);border-left-width:3px;border-radius:var(--r-md);background:var(--surface-1);font-size:.88rem;line-height:1.4}
.clip-steps li::before{content:counter(clipstep);flex:0 0 1.5em;width:1.5em;height:1.5em;border-radius:50%;background:var(--accent-tint);color:var(--text-primary);font-weight:700;font-size:.8rem;display:inline-flex;align-items:center;justify-content:center}
.clip-step-where{color:var(--text-tertiary);font-size:.82rem}
/* ---- Clip : panneau vérifié injecté par Codex (#client-clip-server) — présentation seulement ---- */
#client-clip-server{border-left:3px solid var(--accent);display:flex;flex-direction:column;gap:var(--sp-3)}
#client-clip-server>label,#client-clip-server>button,#client-clip-server>p,#client-clip-server>video{margin:0}
#client-clip-server .ed-inl{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}
#client-clip-server .ed-inl .cfg-input{flex:1 1 220px;min-width:0}
#cc-source:empty,#cc-status:empty,#cc-hint:empty{display:none}
#cc-source{font-size:.82rem;color:var(--text-secondary)}
/* bannière d'état : visible pour l'attente et les erreurs */
#cc-status{padding:var(--sp-2) var(--sp-3);border:1px solid var(--hairline);border-left-width:3px;border-radius:var(--r-md);background:var(--surface-2);font-size:.86rem;line-height:1.4;display:flex;align-items:center;gap:var(--sp-2)}
.cc-state-busy #cc-status{border-left-color:var(--accent);color:var(--text-primary)}
.cc-state-busy #cc-status::before{content:"";flex:0 0 auto;width:14px;height:14px;border:2px solid var(--hairline-strong);border-top-color:var(--accent);border-radius:50%;animation:ccspin .8s linear infinite}
.cc-state-ok #cc-status{border-left-color:var(--success,#3fa66a);color:var(--success-text,inherit);background:color-mix(in srgb,var(--success,#3fa66a) 10%,var(--surface-2))}
.cc-state-error #cc-status{border-left-color:var(--danger,#d9534f);color:var(--danger-text,var(--warning-text));background:color-mix(in srgb,var(--danger,#d9534f) 10%,var(--surface-2));font-weight:600}
@keyframes ccspin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.cc-state-busy #cc-status::before{animation:none}}
/* explication lisible d'un code d'erreur (ajoutée par l'UI, jamais dans le fichier de Codex) */
#cc-hint{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:color-mix(in srgb,var(--warning) 10%,var(--surface-2));border:1px solid color-mix(in srgb,var(--warning) 30%,transparent);font-size:.82rem;line-height:1.4;color:var(--warning-text)}
#cc-video{width:100%;max-width:560px;height:auto;background:#000;border:1px solid var(--hairline-strong);border-radius:var(--r-md)}
@media (max-width:560px){
  #client-clip-server .ed-inl{align-items:stretch}
  #client-clip-server .ed-inl .cfg-input{flex:1 1 100%}
  #client-clip-server>button{width:100%}
  .clip-steps li{font-size:.84rem}
}
/* ---- Projet créatif ---- */
.cr-textarea{resize:vertical;min-height:64px;font:inherit;line-height:1.45}
.cr-inline{display:flex;gap:var(--sp-3);flex-wrap:wrap;align-items:flex-end;margin:var(--sp-2) 0}
.cr-inline .cfg-input{flex:1 1 220px;min-width:0}
.cr-inline .ed-inl{flex:0 0 auto}
.cr-steps{list-style:none;margin:var(--sp-3) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2);counter-reset:crstep}
.cr-step{display:flex;gap:var(--sp-3);align-items:baseline;padding:var(--sp-2) var(--sp-3);border:1px solid var(--hairline);border-left-width:3px;border-radius:var(--r-md);background:var(--surface-1)}
.cr-step::before{counter-increment:crstep;content:counter(crstep);font-weight:600;color:var(--text-tertiary);flex:0 0 1.4em;text-align:right}
.cr-step-txt{flex:1;font-size:.9rem;color:var(--text-primary);line-height:1.4}
.cr-step-asset{color:var(--text-tertiary);font-size:.82rem}
.cr-step-ops{display:flex;gap:var(--sp-2);flex:0 0 auto}
.cr-step-ops .linkbtn[disabled]{opacity:.35;pointer-events:none}
/* ---- État du projet ---- */
.etat-legend{display:flex;gap:var(--sp-2);flex-wrap:wrap;margin:var(--sp-3) 0 var(--sp-4)}
.etat-key{font-size:12px;padding:2px 10px;border-radius:99px;border:1px solid var(--hairline-strong)}
.etat-key.etat-ok{color:var(--success-text);background:color-mix(in srgb,var(--success) 16%,transparent)}
.etat-key.etat-todo{color:var(--warning-text);background:color-mix(in srgb,var(--warning) 16%,transparent)}
.etat-key.etat-blocked{color:#fff;background:color-mix(in srgb,var(--danger) 72%,transparent)}
.etat-body{display:flex;flex-direction:column;gap:var(--sp-4)}
.etat-card{border:1px solid var(--hairline-strong);border-radius:var(--r-lg);padding:var(--sp-4) var(--sp-5);background:var(--surface-1)}
.etat-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-3);border-bottom:1px solid var(--hairline);padding-bottom:var(--sp-2)}
.etat-card-head h2{font-size:16px;margin:0}
.etat-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4)}
.etat-col-h{font-size:12px;text-transform:uppercase;letter-spacing:.04em;font-weight:600;margin:0 0 6px}
.etat-col-h.etat-ok{color:var(--success-text)}
.etat-col-h.etat-todo{color:var(--warning-text)}
.etat-col-h.etat-blocked{color:color-mix(in srgb,var(--danger) 80%,var(--text-primary))}
.etat-ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.etat-ul li{font-size:13px;line-height:1.45;color:var(--text-secondary);padding-left:14px;position:relative}
.etat-ul li::before{content:"";position:absolute;left:0;top:7px;width:6px;height:6px;border-radius:2px}
.etat-ul.etat-ok li::before{background:var(--success)}
.etat-ul.etat-todo li::before{background:var(--warning)}
.etat-ul.etat-blocked li::before{background:var(--danger)}
.etat-none{color:var(--text-tertiary);font-size:13px;margin:0}
@media(max-width:720px){.etat-cols{grid-template-columns:1fr;gap:var(--sp-3)}}
.cfg-recap{margin-top:var(--sp-8);background:var(--surface-1);border:1px solid var(--hairline-strong);
  border-radius:var(--r-lg);padding:var(--sp-4) var(--sp-6)}
.cfg-recap-h{margin:0 0 var(--sp-1);font-size:1.15rem}
.cfg-recap-h:focus{outline:none}
.cfg-recap-list{margin:var(--sp-3) 0 0;display:grid;grid-template-columns:auto 1fr;gap:var(--sp-2) var(--sp-4)}
.cfg-recap-list dt{color:var(--text-tertiary);font-size:.82rem;text-transform:uppercase;letter-spacing:.03em;
  align-self:center;font-weight:700}
.cfg-recap-list dd{margin:0;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);
  border-bottom:1px solid var(--hairline);padding-bottom:var(--sp-2)}
.cfg-recap-val{color:var(--text-primary);font-size:.9rem}
.cfg-recap-empty{color:var(--text-tertiary);font-style:italic}
.cfg-recap-edit{background:none;border:none;color:var(--accent-bright);cursor:pointer;font-size:.82rem;
  padding:2px 4px;flex:0 0 auto}
.cfg-recap-edit:hover{text-decoration:underline}
.cfg-recap-edit:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.cfg-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3);margin-top:var(--sp-6)}
.cfg-gate{color:var(--warning-text);font-size:.85rem;line-height:1.4}
.cfg-gate-flash{animation:cfgGateFlash .9s var(--ease)}
@keyframes cfgGateFlash{0%{opacity:.4}100%{opacity:1}}
.cfg-continue{margin-top:var(--sp-3);display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}
.home-actions{display:flex;align-items:flex-start;gap:var(--sp-2);flex-wrap:wrap;margin-bottom:var(--sp-3);flex-direction:column}
.src-label{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);margin:0 0 2px;font-weight:600}
.src-btns{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}
.src-sep{border-left:2px solid var(--hairline);padding-left:var(--sp-2);margin-top:2px}
.fs-request-cfg{margin:var(--sp-1) 0 0}
.set-actions{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;margin-top:var(--sp-3)}
.home-actions .pick-note{font-size:12px;color:var(--text-tertiary);max-width:520px}
.nav-badge{margin-left:var(--sp-2);font-size:10px;text-transform:uppercase;letter-spacing:.03em;padding:1px 6px;border-radius:99px;border:1px solid var(--hairline);color:color-mix(in srgb, var(--text-primary) 50%, var(--text-secondary));background:var(--surface-2)}
.navitem-soon[aria-disabled="true"]{opacity:.85}
#link-channel[aria-disabled="true"]{cursor:not-allowed}
.set-group{margin:var(--sp-5) 0;padding-bottom:var(--sp-4);border-bottom:1px solid var(--hairline);max-width:640px}
/* Traitement local : preuve + actions lisibles sur toute la largeur disponible (panneau non comprimé à 640px). */
#lp-host{width:100%}
#lp-host .set-group,.set-group.lp-panel{max-width:none}
#lp-host code,#lp-host .ed-out{overflow-wrap:anywhere;word-break:break-word}
#lp-host ul,#lp-host ol{padding-left:1.25rem}
#lp-host li{margin:.15rem 0;line-height:1.5}
/* Ligne de travail : le résultat ASR + la section Vision occupent toute la largeur (le gabarit cfg-eng-row 120/160/1fr
   écrasait le contenu dans la colonne de 160px). On repasse en bloc : badge d'état en tête, contenu pleine largeur. */
#lp-host .cfg-eng-row.lp-job{display:block}
#lp-host .cfg-eng-row.lp-job>.cfg-eng-badge{display:inline-block;margin-bottom:var(--sp-2)}
#lp-host .cfg-eng-row.lp-job>.cfg-eng-txt{display:block;min-width:0;width:100%;font-size:.9rem}
#lp-host .cfg-eng-row.lp-job .set-group{border-bottom:none;padding-bottom:0}
#lp-host .clip-exec-frames{display:flex;flex-wrap:wrap;gap:var(--sp-2)}
#lp-host .clip-exec-frame{max-height:160px;width:auto;border-radius:var(--r-sm)}
.lp-seglist{margin-top:var(--sp-2);display:flex;flex-direction:column;gap:4px;max-height:280px;overflow:auto;border:1px solid var(--hairline);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);background:var(--surface-1)}
.lp-seg{display:grid;grid-template-columns:110px 1fr;gap:var(--sp-3);align-items:baseline}
.lp-seg-ts{font-variant-numeric:tabular-nums;color:var(--text-tertiary);font-size:.8rem;white-space:nowrap}
.lp-seg-tx{color:var(--text-secondary);font-size:.85rem;line-height:1.45;overflow-wrap:anywhere;word-break:break-word}
@media (max-width:560px){.lp-seg{grid-template-columns:1fr;gap:0}}
.set-grp-h{font-size:1.05rem;margin:0 0 var(--sp-1)}
.cal-form{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:center;margin-bottom:var(--sp-3)}
.set-grp-h{font-size:1.05rem}
.cfg-agent{margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px dashed var(--hairline)}
.cfg-agent-box{margin-top:var(--sp-2)}
.cfg-engine-wrap{margin-top:var(--sp-6);padding-top:var(--sp-4);border-top:1px solid var(--hairline)}
.cfg-engine{margin-top:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-2)}
.cfg-eng-row{display:grid;grid-template-columns:120px 160px 1fr;gap:var(--sp-3);align-items:baseline;padding:var(--sp-2) var(--sp-3);border:1px solid var(--hairline);border-left-width:3px;border-radius:var(--r-md);background:var(--surface-1)}
.cfg-eng-badge{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em;color:var(--text-secondary);min-width:0;overflow-wrap:anywhere}
.cfg-eng-name{font-weight:600;color:var(--text-primary);font-size:.9rem;min-width:0;overflow-wrap:anywhere;word-break:break-word}
.cfg-eng-txt{color:var(--text-secondary);font-size:.85rem;line-height:1.4;min-width:0;overflow-wrap:anywhere}
.cfg-eng-operationnel{border-left-color:var(--accent-bright)}
.cfg-eng-operationnel .cfg-eng-badge{color:var(--text-primary)}
.cfg-eng-partiel{border-left-color:var(--warning-text)}
.cfg-eng-non{border-left-color:var(--text-tertiary)}
.cfg-eng-attente{border-left-color:var(--text-tertiary)}
@media (max-width:560px){.cfg-eng-row{grid-template-columns:1fr}}
/* Parcours persistant (CLIENT-MISSION-RUN-V1) */
.yt-run{margin-top:var(--sp-4);padding-top:var(--sp-3);border-top:1px solid var(--hairline)}
.yt-run-inner{display:flex;flex-direction:column;gap:var(--sp-2)}
.yt-run-prev{margin-top:var(--sp-2)}
.yt-run-video{width:100%;max-width:360px;border-radius:var(--r-md);background:#000;display:block}
.tail-preview-big{margin:var(--sp-3) 0}
.tail-preview-big video{width:100%;max-width:560px;border-radius:var(--r-md);background:#000;display:block}
.tail-step{margin-top:var(--sp-3);padding-top:var(--sp-2);border-top:1px solid var(--line,rgba(127,127,127,.2))}
@media (max-width:560px){
  .cfg-recap-list{grid-template-columns:1fr}
  .cfg-recap-list dt{margin-top:var(--sp-2)}
}

/* ============ FINALISER MON CLIP (après revue · maquette simulée) ============ */
.fin{max-width:760px;margin:0 auto;padding-bottom:var(--sp-16)}
.fin-head{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3)}
.fin-head .btn-ghost .ic{width:16px;height:16px}
.fin-h{font-size:1.5rem;margin:0}
.fin-drafts{border:1px solid var(--hairline);border-radius:var(--r-lg);padding:var(--sp-4);margin:0 0 var(--sp-6);background:var(--surface-1)}
.fin-drafts legend{font-weight:700;color:var(--text-primary);padding:0 var(--sp-2)}
.fin-body{display:flex;flex-direction:column;gap:var(--sp-4)}
.fin-card{border:1px solid var(--hairline);border-radius:var(--r-lg);padding:var(--sp-4);background:var(--surface-1)}
.fin-card-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-2);margin-bottom:var(--sp-3)}
.fin-card-head h2{margin:0;font-size:1.05rem;color:var(--text-primary)}
.fin-badge{font-size:.72rem;font-weight:700;padding:2px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:.02em}
.fin-badge-manual{background:var(--accent-tint);color:var(--accent-bright)}
.fin-badge-engine{background:rgba(224,168,92,.16);color:var(--warning-text)}
.fin-badge-paid{background:rgba(226,123,114,.16);color:#F2ADA6}
:root[data-theme="light"] .fin-badge-paid,:root:not([data-theme]) .fin-badge-paid{color:#B23B33}
@media (prefers-color-scheme:light){:root[data-theme="system"] .fin-badge-paid{color:#B23B33}}
.fin-lbl{display:block;font-size:.82rem;color:var(--text-secondary);margin:var(--sp-2) 0 var(--sp-1)}
.fin-textarea{resize:vertical;min-height:52px;font:inherit}
.fin-card .btn[disabled]{margin-top:var(--sp-3)}
.fin-sub-row{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-2)}
.fin-sub-row .cfg-input{flex:1}
.fin-sub-del{flex:0 0 auto;padding:6px 10px;font-size:.82rem}
.fin-cost-line{margin:var(--sp-2) 0 0;font-size:.82rem;color:var(--text-secondary)}
.fin-accept{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin-top:var(--sp-3);
  border-top:1px solid var(--hairline);padding-top:var(--sp-3)}
.fin-accept-lbl{font-size:.82rem;color:var(--text-tertiary);margin-right:var(--sp-2)}
.fin-accept-btn{padding:5px 12px;font-size:.84rem}
.fin-accept-btn.on[aria-pressed="true"]{background:var(--accent);color:#fff;border-color:var(--accent)}
.fin-covers{display:flex;flex-wrap:wrap;gap:var(--sp-3)}
.fin-cover{background:var(--surface-2);border:1px solid var(--hairline);border-radius:var(--r-md);
  padding:var(--sp-2);cursor:pointer;width:92px;text-align:center}
.fin-cover.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-tint)}
.fin-cover:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.fin-cover-ph{display:block;height:90px;border-radius:var(--r-sm);
  background:linear-gradient(140deg,var(--surface-3),var(--surface-2));margin-bottom:4px}
.fin-cover-cap{font-size:.74rem;color:var(--text-tertiary)}
.fin-preview-box{height:150px;border:1px dashed var(--hairline-strong);border-radius:var(--r-md);
  display:flex;align-items:center;justify-content:center;text-align:center;padding:var(--sp-4);background:var(--surface-2)}
.fin-preview-lock{color:var(--warning-text);font-size:.88rem}
.fin-cost{border:1px solid var(--hairline-strong);border-radius:var(--r-lg);padding:var(--sp-4) var(--sp-6);
  background:var(--surface-1);margin-top:var(--sp-4)}
.fin-cost-h{margin:0 0 var(--sp-2);font-size:1.1rem}
.fin-cost-list{margin:0;padding-left:1.1em;color:var(--text-secondary);font-size:.86rem;line-height:1.5}
.fin-cost-total{margin:var(--sp-3) 0 0;color:var(--text-primary);font-size:.9rem;font-weight:600}
.fin-format-note{margin:var(--sp-2) 0 0;font-size:.82rem;color:var(--text-tertiary);line-height:1.4}
.fin-format-warn{color:var(--warning-text)}

/* ============ Parcours éditorial interne (routes réelles /api/editorial) ============ */
.fin-ed{border:1px solid var(--accent);border-radius:var(--r-lg);padding:var(--sp-4);margin:0 0 var(--sp-4);background:var(--surface-1)}
.fin-ed-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-2);margin-bottom:var(--sp-2)}
.fin-ed-head h2{margin:0;font-size:1.1rem;color:var(--text-primary)}
.fin-ed #fin-ed-clip{margin:var(--sp-3) 0}
.fin-ed-status{margin:var(--sp-2) 0 0;font-size:.84rem;color:var(--text-secondary)}
.fin-ed-body{margin-top:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-3)}
.fin-sim-sep{margin:var(--sp-6) 0 var(--sp-2);font-size:.82rem;color:var(--text-tertiary);text-align:center}
.ed-sec{border:1px solid var(--hairline);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);background:var(--surface-2)}
.ed-sec-h{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-2);margin-bottom:var(--sp-2)}
.ed-sec-h b{color:var(--text-primary)}
.ed-line{margin:2px 0;font-size:.84rem;color:var(--text-secondary);line-height:1.4}
.ed-dim{color:var(--text-tertiary);font-size:.8rem}
.ed-warn{color:var(--warning-text)}
.ed-ok{color:var(--success-text,#1a7f4b)}
.cfg-eng-sub{display:block;margin:2px 0;font-size:.84rem;line-height:1.45;word-break:break-word}
.cfg-eng-note{display:block;margin:2px 0 4px;font-size:.82rem;line-height:1.45}
.ed-out{margin-top:var(--sp-2);font-size:.82rem;color:var(--text-secondary);word-break:break-word}
.ed-cues,.ed-unk{list-style:none;padding:0;margin:var(--sp-2) 0;display:flex;flex-direction:column;gap:var(--sp-2)}
.ed-cue,.ed-unk-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}
.ed-cue-t{font-variant-numeric:tabular-nums;font-size:.78rem;color:var(--text-tertiary);flex:0 0 auto}
.ed-cue-in{flex:1;min-width:160px}
.ed-unk-in{flex:1;min-width:140px}
.ed-mini{padding:5px 11px;font-size:.82rem}
.ed-inl{display:inline-flex;align-items:center;gap:6px;font-size:.84rem;color:var(--text-secondary);margin-right:var(--sp-3)}
.ed-num{width:90px}
/* Les sélecteurs date/heure ont besoin de plus de place (sinon « 06:3 » tronqué). */
input.ed-num[type="date"],input.ed-num[type="time"]{width:auto;min-width:140px}
.ed-txt{width:160px}
/* Le champ « nom d'agent » est un libellé lisible, pas un identifiant monospace. */
#ag-reg-name{font-family:inherit;font-size:.9rem}
.ed-thumb{max-width:180px;border-radius:var(--r-sm);margin-top:var(--sp-2);display:block}
.ed-video{max-width:100%;border-radius:var(--r-sm);margin-top:var(--sp-2);display:block}
.fin-ed-open{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-2)}
.fin-ed-open .ed-txt{flex:1;min-width:220px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem}
.ed-real{margin-top:var(--sp-3);padding:var(--sp-3);border:1px solid var(--success);border-radius:var(--r-md);background:rgba(95,185,139,.08)}
.ed-real .ed-line b{color:var(--text-primary)}
.fin-badge-ai{display:inline-block;margin-bottom:var(--sp-2);font-size:.72rem;font-weight:700;padding:2px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:.02em;background:rgba(95,185,139,.18);color:var(--success-text)}
.ed-audio{margin-top:var(--sp-2);width:100%;max-width:320px;display:block}
.ed-real .ed-dim{color:var(--text-secondary)}
.fin-badge-ai{color:#0f7a4d}
:root:not([data-theme="light"]) .fin-badge-ai{color:#8fe0b8}
:root[data-theme="dark"] .fin-badge-ai{color:#8fe0b8}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .fin-badge-ai{color:#8fe0b8}}
.cfg-voice-prefs{margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--hairline)}
.cfg-voice-prefs .cfg-opts{margin-bottom:var(--sp-2)}
.cfg-vlbl{margin:var(--sp-2) 0 var(--sp-1);font-size:.8rem;font-weight:600;color:var(--text-secondary)}
.ed-voice-profile{margin:var(--sp-2) 0;display:flex;flex-wrap:wrap;gap:var(--sp-2)}
.ed-voice-profile .ed-line{flex-basis:100%}
.ed-sel{padding:5px 8px;font-size:.82rem;min-width:120px}
.ed-prev-accept{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin-top:var(--sp-2)}

/* ===================== Accompagnement client (parcours simplifié) ===================== */
/* En-tête d'étape : où j'en suis · ce que je dois faire · une action principale */
.step-head{display:flex;flex-direction:column;gap:6px;margin:0 0 var(--sp-3);padding:10px 12px;border:1px solid var(--hairline);border-left:3px solid var(--accent-bright);border-radius:0 var(--r-md) var(--r-md) 0;background:var(--surface-1)}
.step-head .step-where{display:flex;align-items:center;gap:8px;font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-tertiary)}
.step-head .step-where .step-dot{width:7px;height:7px;border-radius:99px;background:var(--accent-bright);flex:0 0 7px}
.step-head .step-todo{font-size:.95rem;font-weight:600;color:var(--text-primary);line-height:1.35}
.step-head .step-sub{font-size:.82rem;color:var(--text-secondary);line-height:1.45}
/* Aide courte, posée au bon endroit (sélection, format, revue, téléchargement) */
.step-help{display:flex;gap:8px;align-items:flex-start;margin:var(--sp-2) 0 0;padding:8px 10px;border:1px dashed var(--hairline-strong);border-radius:var(--r-sm);background:var(--surface-1);font-size:.82rem;color:var(--text-secondary);line-height:1.45}
.step-help .step-help-ic{flex:0 0 auto;font-weight:700;color:var(--accent-bright)}
.step-help b{color:var(--text-primary)}
/* Détails techniques : SHA, codes, tokens, diagnostics — repliés par défaut */
.tech-details{margin:var(--sp-2) 0 0;border:1px solid var(--hairline);border-radius:var(--r-sm);background:var(--surface-1);overflow:hidden}
.tech-details>summary{cursor:pointer;list-style:none;padding:7px 10px;font-size:.78rem;font-weight:600;color:var(--text-secondary);display:flex;align-items:center;gap:7px}
.tech-details>summary::-webkit-details-marker{display:none}
.tech-details>summary::before{content:"›";display:inline-block;transition:transform .15s var(--ease);color:var(--text-tertiary);font-weight:700}
.tech-details[open]>summary::before{transform:rotate(90deg)}
.tech-details>summary:hover{color:var(--text-primary);background:var(--surface-2)}
.tech-details .tech-body{padding:2px 10px 9px;font-size:.78rem;color:var(--text-tertiary);line-height:1.5;word-break:break-word}
.tech-details .tech-body .tech-row{margin:3px 0}
.tech-details .tech-body code,.tech-mono{font-family:var(--font-mono,ui-monospace,SFMono-Regular,Menlo,monospace);font-size:.74rem;color:var(--text-secondary)}
/* Groupe de navigation interne (développement) — séparé du parcours client */
.nav-group-lbl{margin:var(--sp-4) 0 var(--sp-1);padding:0 var(--sp-3);font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary)}
.nav-internal{border:0;margin:0;padding:0}
.nav-internal>summary{cursor:pointer;list-style:none;margin:var(--sp-4) 0 var(--sp-1);padding:6px var(--sp-3);font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);display:flex;align-items:center;gap:7px;border-radius:var(--r-sm)}
.nav-internal>summary::-webkit-details-marker{display:none}
.nav-internal>summary::before{content:"›";display:inline-block;transition:transform .15s var(--ease);font-weight:700}
.nav-internal[open]>summary::before{transform:rotate(90deg)}
.nav-internal>summary:hover{color:var(--text-secondary);background:var(--surface-1)}
.nav-internal .navitem{font-size:13px;color:var(--text-tertiary)}
.nav-internal .navitem:hover{color:var(--text-secondary)}
/* Affordance d'aide globale (ReplayTower et moi) dans la barre du haut */
.help-fab{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border:1px solid var(--hairline-strong);border-radius:99px;color:var(--text-secondary);font-size:13px;font-weight:500;background:var(--surface-1)}
.help-fab:hover{color:var(--text-primary);background:var(--surface-2)}
.help-fab .help-fab-q{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:99px;background:var(--accent-tint);color:var(--accent-bright);font-weight:700;font-size:12px}
/* ReplayTower et moi : aide guidée */
.rtm-intro{margin:0 0 var(--sp-4);font-size:.95rem;color:var(--text-secondary);line-height:1.5}
.rtm-guide-note{margin:var(--sp-2) 0 var(--sp-5);padding:9px 12px;border:1px solid var(--hairline);border-left:3px solid var(--accent);border-radius:0 var(--r-sm) var(--r-sm) 0;background:var(--surface-1);font-size:.84rem;color:var(--text-secondary);line-height:1.5}
.rtm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--sp-3)}
.rtm-card{border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--surface-1);padding:var(--sp-4);display:flex;flex-direction:column;gap:6px}
.rtm-card h3{font-size:.95rem;margin:0}
.rtm-card p{font-size:.84rem;color:var(--text-secondary);line-height:1.5;margin:0}
.rtm-card .rtm-steps{margin:4px 0 0;padding-left:1.1em;font-size:.82rem;color:var(--text-secondary);line-height:1.55}
.rtm-card .rtm-go{margin-top:auto;align-self:flex-start;font-size:.84rem;font-weight:600}
@media (max-width:560px){.step-head .btn,.rtm-card .btn{width:100%}.help-fab .help-fab-lbl{display:none}}
/* Barre principale : contexte projet (remplace les sélecteurs d'aperçu internes) */
.topbar-context{font-size:13px;font-weight:600;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:46vw}
.topbar .spacer{flex:1 1 auto}
@media (max-width:560px){.topbar-context{max-width:40vw}}

/* bd — halo lumineux discret, diagnostics internes, vidéo au centre (Mes clips) */
.rt-ambient{position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(540px 540px at var(--mx,50%) var(--my,28%), color-mix(in srgb, var(--accent-bright) 14%, transparent), transparent 68%)}
@media (prefers-reduced-motion:reduce){.rt-ambient{background:radial-gradient(540px 540px at 50% 24%, color-mix(in srgb, var(--accent-bright) 10%, transparent), transparent 68%)}}
/* diagnostics hors parcours : visibles seulement quand « Outils internes » est ouvert */
.acct-tech,.live-tech,.set-diag{display:none}
body[data-internal="1"] .acct-tech,body[data-internal="1"] .live-tech,body[data-internal="1"] .set-diag{display:block}
/* « Détails techniques » plus repérable en Outils internes : puce cliquable nette avec icône. */
.acct-tech summary,.live-tech summary{cursor:pointer;display:inline-flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:11.5px;font-weight:600;list-style:none;padding:3px 10px;border:1px solid var(--hairline-strong);border-radius:99px;background:var(--surface-2);margin-top:6px}
.acct-tech summary::-webkit-details-marker,.live-tech summary::-webkit-details-marker{display:none}
.acct-tech summary::before,.live-tech summary::before{content:"⚙";opacity:.9}
.acct-tech summary:hover,.live-tech summary:hover{border-color:var(--accent-bright);color:var(--text-primary)}
.acct-tech[open] summary,.live-tech[open] summary{background:var(--surface-3);border-color:var(--accent-bright)}
.set-diag .set-grp-h::after{content:" · outils internes";color:var(--text-tertiary);font-weight:400;font-size:12px}
/* Mes clips — vidéo au centre : la zone d'aperçu devient une scène claire avec une action évidente */
.mesclip-live .yt-run-prev:empty{min-height:200px;border-radius:16px;background:#06090f;border:1px solid var(--hairline);display:grid;place-items:center;margin:12px 0;position:relative;overflow:hidden}
.mesclip-live .yt-run-prev:empty::before{content:"Aperçu vidéo — ouvre « Aperçu (avec son) »";color:var(--text-tertiary);font-size:12.5px;padding:0 16px;text-align:center}
.mesclip-live .yt-run-prev:empty::after{content:"";position:absolute;inset:0;background:radial-gradient(180px 120px at 50% 42%, color-mix(in srgb,var(--accent-bright) 16%,transparent), transparent 70%);pointer-events:none}

/* === Finitions V2 : utilitaires remplaçant des styles inline refusés par la CSP (style-src-attr). */
/* Définis dans la feuille same-origin → conformes à la CSP, sans 'unsafe-inline'. Aucune politique assouplie. */
.u-nobul{list-style:none}
.u-mt-sm{margin-top:.3rem}
.u-mt-md{margin-top:.4rem}
.u-mt-lg{margin-top:.5rem}

/* === Journey : la colonne de résultat (revue/transcription) doit être lisible PARTOUT où la file est rendue */
/* (notamment #src-imp-proc du parcours import→Vision), pas seulement sous #lp-host. Mêmes valeurs, sans l'id. */
.cfg-eng-row.lp-job{display:block}
.cfg-eng-row.lp-job>.cfg-eng-badge{display:inline-block;margin-bottom:var(--sp-2)}
.cfg-eng-row.lp-job>.cfg-eng-txt{display:block;min-width:0;width:100%;font-size:.9rem}
.cfg-eng-row.lp-job .set-group{border-bottom:none;padding-bottom:0}
/* Trois montants Vision distincts : lisibles, aérés. */
.lp-costs{margin:var(--sp-2) 0 0;padding-left:1.1rem;display:flex;flex-direction:column;gap:4px}
.lp-costs li{line-height:1.45}


/* === Finition mobile v2-touch-targets : confort tactile — UNIQUEMENT pointeur grossier (tactile). ===
   Additif, CSP propre (0 style inline). Le pointeur fin (desktop) est inchangé :
   aucune régression de mise en page ni d'empreinte des tests/captures existants.
   Cible : contrôles de formulaire et petits boutons sous la taille de confort tactile (~40 px). */
@media (pointer:coarse){
  .cfg-input,.ed-sel,.btn{min-height:40px}
  .ed-sel{padding-top:9px;padding-bottom:9px}
  .ed-mini{min-height:36px;padding-top:8px;padding-bottom:8px}
}


/* === v2-auth-screens : porte d'authentification (overlay) — additif, 0 style inline, CSP propre. === */
body.auth-locked{overflow:hidden}
.auth-gate{position:fixed;inset:0;z-index:1000;background:var(--bg-canvas);display:flex;align-items:flex-start;justify-content:center;overflow:auto;padding:var(--sp-4) 16px}
.auth-gate[hidden]{display:none}
.auth-gate-body{width:100%;max-width:420px;margin:auto}
.auth-card{background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-lg,14px);padding:24px;display:flex;flex-direction:column;gap:10px}
.auth-brand{display:flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:.95rem}
.auth-logo{width:18px;height:18px;border-radius:5px;background:var(--accent);display:inline-block}
.auth-h{margin:2px 0 6px;font-size:1.25rem;color:var(--text-primary)}
.auth-method{display:flex;flex-direction:column;gap:6px}
.auth-tabs{display:flex;gap:6px;margin-bottom:4px}
.auth-tab[aria-pressed="true"]{background:var(--surface-2);color:var(--text-primary)}
.auth-sep{display:flex;align-items:center;gap:10px;color:var(--text-tertiary);font-size:.82rem;margin:8px 0}
.auth-sep::before,.auth-sep::after{content:"";flex:1;height:1px;background:var(--hairline)}
.auth-google{width:100%;justify-content:center}
.auth-soon{margin-top:12px;padding-top:12px;border-top:1px solid var(--hairline)}
.auth-soon-row{font-size:.9rem;color:var(--text-secondary)}
.auth-note{margin-top:10px}
@media (pointer:coarse){ .auth-tab{min-height:40px} }


/* === v2-a11y-nav : la porte d'auth est un vrai modal — masque le lien d'évitement
   (« Aller au contenu ») tant que la porte couvre l'app, pour que le focus reste piégé. === */
body.auth-locked .skip{display:none}

/* [CLAUDE-V118] Finitions mobile : vidéos contenues, cibles tactiles, bouton « Signaler » sans recouvrement */
.screen video{max-width:100%;height:auto}
.rt-acc-tonset{margin-top:14px}
@media (max-width:640px){
  .screen .pad{padding-bottom:76px}
  .seg button,.linkbtn,.btn,.collapse-btn,.help-fab,button.x,button.undo{min-height:40px}
  .seg button{min-width:56px}
  #rt-verified-legal a,#rt-verified-legal button{display:inline-block;min-height:40px;padding:10px 4px}
  #auth-account-body a{display:inline-block;padding:10px 0}
  .mesclip-ack{padding-top:2px;padding-bottom:2px}
}

/* ===== [CLAUDE] AVANT-APRES-V1 (déplacé ici : CSP style-src self) ===== */
.rtaa{--g0:#0B0B0C;--g1:#131314;--g2:#1B1B1D;--line:#2F2F33;--line2:#4A4A50;--iv:#F4EFE6;--iv2:#CFC9BD;--iv3:#A39D92;--ver:#FF5A2E;--ver-ink:#140C09;color:var(--iv);background:var(--g1);padding:clamp(28px,5vw,64px) clamp(16px,3.2vw,48px);margin:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.rtaa *{box-sizing:border-box}
.rtaa [hidden]{display:none!important}
.rtaa-eb{font:600 12px/1 ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--iv3);margin:0}
.rtaa-h{margin:12px 0 0;font-weight:800;font-size:clamp(28px,3.2vw,44px);line-height:.98;letter-spacing:-.015em}
.rtaa-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:14px 40px;margin-bottom:24px}
.rtaa-head p{margin:0;max-width:520px;color:var(--iv2);line-height:1.5}
.rtaa-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(14px,2vw,28px);align-items:start}
.rtaa-stage{position:relative;background:var(--g0);overflow:hidden}
.rtaa-stage video{display:block;width:100%;height:100%;object-fit:contain;background:#000}
.rtaa-tag{position:absolute;left:12px;top:12px;font:600 12px ui-monospace,monospace;letter-spacing:.08em;padding:5px 9px;background:var(--g1);color:var(--iv)}
.rtaa-tag.a{background:var(--ver);color:var(--ver-ink)}
.rtaa-tc{position:absolute;right:12px;bottom:12px;font:600 13px ui-monospace,monospace;background:rgba(11,11,12,.8);padding:5px 9px}
.rtaa-cut{position:relative;height:40px;margin-top:10px;background:var(--g2);border:1px solid var(--line)}
.rtaa-seg{position:absolute;top:-1px;bottom:-1px;border:2px solid var(--ver)}
.rtaa-seg.on{background:var(--ver)}
.rtaa-ph{position:absolute;top:-6px;bottom:-6px;width:2px;background:var(--iv)}
.rtaa-list{display:flex;flex-direction:column;gap:2px}
.rtaa-res{appearance:none;width:100%;display:grid;grid-template-columns:120px minmax(0,1fr);gap:14px;align-items:center;text-align:left;background:transparent;color:inherit;border:0;border-left:3px solid transparent;padding:10px 10px 10px 12px;cursor:pointer;font:inherit}
.rtaa-res:hover{background:var(--g2)}
.rtaa-res[aria-pressed=true]{border-left-color:var(--ver);background:var(--g2)}
.rtaa-res:focus-visible,.rtaa-btn:focus-visible{outline:2px solid #FF7148;outline-offset:2px}
.rtaa-res .rtaa-stage{aspect-ratio:16/10}
.rtaa-t{display:block;font-weight:700;font-size:16px}
.rtaa-m{display:block;margin-top:4px;font:400 13px ui-monospace,monospace;color:var(--iv3)}
.rtaa-st{display:inline-flex;align-items:center;gap:6px;margin-top:6px;font:600 12px ui-monospace,monospace}
.rtaa-st::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.rtaa-st.ok{color:#7FD1B9}
.rtaa-st.review{color:#F2B544}
.rtaa-st.err{color:#FF7A5C}
.rtaa-big{margin-top:12px}
.rtaa-foot{margin-top:16px;display:flex;flex-wrap:wrap;gap:10px 20px;align-items:center;color:var(--iv3);font-size:14px}
.rtaa-btn{min-height:48px;padding:0 20px;font:700 16px inherit;background:transparent;color:var(--iv);border:1px solid var(--line2);cursor:pointer}
.rtaa-btn:hover{border-color:var(--iv)}
.rtaa-btn.go{background:var(--ver);color:var(--ver-ink);border-color:var(--ver);text-decoration:none;display:inline-flex;align-items:center}
.rtaa-skel{background:#262628;animation:rtaask 1.4s ease-in-out infinite}
@keyframes rtaask{50%{opacity:.45}
}
@media (max-width:860px){.rtaa-grid{grid-template-columns:1fr}
.rtaa-res{grid-template-columns:96px minmax(0,1fr)}
}
@media (prefers-reduced-motion:reduce){.rtaa *{animation:none!important}
}
.rtaa-sk-main{aspect-ratio:16/10}
.rtaa-sk-col{display:flex;flex-direction:column;gap:10px}
.rtaa-sk-row{height:80px}
.rtaa-empty{margin:0 0 16px;font-size:18px;color:var(--iv2);max-width:640px;line-height:1.5}
.rtaa-r169{aspect-ratio:16/10}
.rtaa-after{aspect-ratio:16/10}
.rtaa-vert{max-width:320px}
.rtaa-link{color:var(--iv)}


/* ===== [CLAUDE] ATELIER-V1 — identité ReplayTower : graphite, ivoire, orange vermillon ; vidéo au centre ; moins de cadres.
   Servi dans styles/app.css (fichier autorisé par la route web-v2 ; CSP style-src 'self' : aucun style en ligne).
   Polices : pile système (font-src non autorisé par la CSP actuelle — demande Codex : font-src 'self' + Archivo). ===== */
:root{
  --bg-base:#111112; --bg-canvas:#161617;
  --surface-1:#1B1B1D; --surface-2:#202022; --surface-3:#2A2A2D;
  --hairline:#2C2C30; --hairline-strong:#45454B;
  --text-primary:#F4EFE6; --text-secondary:#CFC9BD; --text-tertiary:#A39D92;
  --accent:#FF5A2E; --accent-hover:#FF7148; --accent-press:#E64A1F; --accent-bright:#FF8A63; --accent-tint:#2A1A14;
  --champagne:#F2B544; --success:#7FD1B9; --warning:#F2B544; --danger:#FF7A5C;
  --success-text:#7FD1B9; --warning-text:#F2B544; --champagne-text:#F2B544;
  --r-sm:2px; --r-md:3px; --r-lg:4px; --r-xl:6px;
  --shadow:none; --shadow-lg:0 18px 50px rgba(0,0,0,.45);
  --at-ink:#140C09; --at-display:"Archivo","Arial Narrow","Helvetica Neue Condensed","Roboto Condensed","Segoe UI",system-ui,sans-serif;
  --at-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;
}
:root[data-theme="light"]{
  --bg-base:#ECE6DB; --bg-canvas:#F4EFE6; --surface-1:#FBF8F2; --surface-2:#EFE9DE; --surface-3:#E4DDD0;
  --hairline:#D6CFC2; --hairline-strong:#B9B1A3; --text-primary:#161617; --text-secondary:#3E3B36; --text-tertiary:#5C574F;
  --accent:#D9441F; --accent-hover:#C23A17; --accent-press:#A83213; --accent-bright:#D9441F; --accent-tint:#F7E3DA;
  --success-text:#1E6B55; --warning-text:#8A5A12; --champagne-text:#8A5A12; --at-ink:#FFFFFF;
}
@media (prefers-color-scheme:light){:root[data-theme="system"],:root:not([data-theme]){
  --bg-base:#ECE6DB; --bg-canvas:#F4EFE6; --surface-1:#FBF8F2; --surface-2:#EFE9DE; --surface-3:#E4DDD0;
  --hairline:#D6CFC2; --hairline-strong:#B9B1A3; --text-primary:#161617; --text-secondary:#3E3B36; --text-tertiary:#5C574F;
  --accent:#D9441F; --accent-hover:#C23A17; --accent-press:#A83213; --accent-bright:#D9441F; --accent-tint:#F7E3DA;
  --success-text:#1E6B55; --warning-text:#8A5A12; --champagne-text:#8A5A12; --at-ink:#FFFFFF;}}

/* Fond : plus de halo décoratif */
.rt-ambient,.home .ambient{display:none!important}
body{background:var(--bg-canvas)}
/* Boutons : action principale orange, texte encre ; secondaires au trait */
.btn,.rt-acc button{border-radius:var(--r-md)!important;font-weight:700!important;min-height:48px;letter-spacing:.005em}
.btn-1,.btn-primary,.rt-acc-primary{background:var(--accent)!important;color:var(--at-ink)!important;border-color:var(--accent)!important;box-shadow:none!important}
.btn-1:hover,.btn-primary:hover{background:var(--accent-hover)!important;transform:none!important}
.btn-1:disabled,.btn-1[aria-disabled="true"],.btn-primary:disabled{background:var(--surface-3)!important;color:var(--text-tertiary)!important;border-color:var(--surface-3)!important}
.btn-2{background:transparent!important;border:1px solid var(--hairline-strong)!important}
.btn-2:hover{border-color:var(--text-primary)!important}
.btn:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent-bright)!important;outline-offset:3px!important;box-shadow:none!important}
/* Champs */
.cfg-input,.rt-acc input[type=url],.rt-acc select{border-radius:var(--r-sm)!important;background:var(--bg-base)!important;border-color:var(--hairline-strong)!important;min-height:48px}
input[type=number].cfg-input{font-family:var(--at-mono);font-size:20px;font-weight:600}
/* Navigation : plus sobre, signature « / » */
.sidebar{background:var(--bg-base);border-right-color:var(--hairline)}
.logo .mark{background:var(--accent)!important;box-shadow:none!important;border-radius:2px!important}
.logo .txt{font-family:var(--at-display);font-weight:900;letter-spacing:-.01em;text-transform:uppercase;font-size:17px}
.navitem{border-radius:0;border-left:2px solid transparent;font-size:15px}
.navitem.active,.navitem[aria-current="page"]{background:transparent!important;color:var(--text-primary)!important;border-left-color:var(--accent)}
.topbar{background:color-mix(in srgb,var(--bg-canvas) 92%,transparent)}
.mode-badge{border-radius:2px}
/* Moins de cadres : groupes et étapes à plat, séparés par des filets */
.set-group{border-bottom:1px solid var(--hairline)}
.rt-pc li,.rt-pc-step,.rt-acc-examples li{border-radius:0!important;box-shadow:none!important}
h1,h2,.set-grp-h{font-family:var(--at-display);letter-spacing:-.015em}
.set-grp-h{font-weight:800;font-size:clamp(22px,2.2vw,30px)}
.cfg-hint{line-height:1.5}
/* Vidéos : cadre noir, pas d'arrondi */
#main video{border-radius:0!important;background:#000}

/* ---------- Accueil Atelier ---------- */
.home{justify-content:flex-start!important;align-items:stretch!important;padding:0!important}
.home-inner{max-width:none!important;width:100%}
.at-home{display:block;width:100%}
.at-hero{display:grid;grid-template-columns:minmax(300px,5fr) 8fr;min-height:min(74vh,720px);border-bottom:1px solid var(--hairline);text-align:left}
.at-hero-copy{padding:clamp(28px,4vw,64px) clamp(16px,3.2vw,48px);display:flex;flex-direction:column;justify-content:space-between;gap:36px}
.at-eb{font:600 12px/1.2 var(--at-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-tertiary);margin:0}
.at-eb-err{color:var(--danger)}
.at-display{font-family:var(--at-display);font-weight:900;font-stretch:72%;letter-spacing:-.03em;line-height:.9;margin:16px 0 0;font-size:clamp(48px,6.6vw,112px);color:var(--text-primary);overflow-wrap:anywhere}
.at-cut{font-style:normal;color:var(--accent);margin-left:2px}
.at-meta{margin:20px 0 0;font:400 14px/1.7 var(--at-mono);color:var(--text-secondary)}
.at-lead{margin:20px 0 0;font-size:18px;line-height:1.5;color:var(--text-secondary);max-width:46ch}
.at-next{display:flex;flex-direction:column;gap:12px}
.at-go{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:68px;padding:0 26px;background:var(--accent);color:var(--at-ink);text-decoration:none;font-family:var(--at-display);font-weight:800;font-size:22px;letter-spacing:-.005em;transition:background .18s}
.at-go:hover{background:var(--accent-hover);color:var(--at-ink)}
.at-arrow{font-size:26px}
.at-note{margin:0;font-size:14px;line-height:1.5;color:var(--text-tertiary)}
.at-line{display:inline-flex;align-items:center;min-height:48px;padding:0 20px;border:1px solid var(--hairline-strong);color:var(--text-primary);text-decoration:none;font-weight:700;margin-top:20px;align-self:flex-start}
.at-hero-stage-wrap{border-left:1px solid var(--hairline);display:flex;flex-direction:column;background:#0B0B0C}
.at-hero-stage{flex:1 1 auto;min-height:320px;display:flex;align-items:center;justify-content:center;background:#000}
.at-hero-stage video{width:100%;height:100%;max-height:64vh;object-fit:contain}
.at-cutbar{position:relative;height:40px;margin:14px clamp(16px,3.2vw,48px) 0;background:var(--surface-2);border:1px solid var(--hairline)}
.at-seg{position:absolute;top:-1px;bottom:-1px;background:var(--accent)}
.at-seg-review{background:transparent;border:2px solid var(--accent)}
.at-ph{position:absolute;top:-6px;bottom:-6px;width:2px;background:var(--text-primary)}
.at-cut-legend{display:flex;justify-content:space-between;gap:12px;margin:8px clamp(16px,3.2vw,48px) 18px;font:600 12px var(--at-mono);color:var(--text-tertiary)}
.at-cut-legend b{color:var(--accent)}
.at-skel{background:var(--surface-3);animation:at-sk 1.4s ease-in-out infinite}
.at-sk-eb{height:12px;width:160px}.at-sk-t1{height:88px;width:85%;margin-top:18px}.at-sk-t2{height:88px;width:55%;margin-top:12px}
@keyframes at-sk{50%{opacity:.45}}
.at-hero-empty,.at-hero-err{grid-template-columns:1fr;min-height:0}
/* Accueil : le panneau d'étapes existant devient un rail plat sous le projet */
#account-accueil{max-width:1100px;margin:0 auto;padding:32px clamp(16px,3.2vw,48px)}
.at-planche-img{max-width:220px;height:auto}

/* ---------- Timeline du passage (écran Sources / montage) ---------- */
.at-tl{margin:18px 0 8px;display:flex;flex-direction:column;gap:12px}
.at-tl-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.at-dur{margin:0;font-family:var(--at-display);font-weight:900;font-stretch:70%;font-size:clamp(44px,5vw,72px);line-height:1;letter-spacing:-.02em}
.at-tl-ctrl{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.at-btn{min-height:44px;padding:0 14px;background:transparent;color:var(--text-primary);border:1px solid var(--hairline-strong);font:600 15px inherit;cursor:pointer;display:inline-flex;align-items:center;gap:8px}
.at-btn:hover{border-color:var(--text-primary)}.at-btn:disabled{color:var(--text-tertiary);border-color:var(--hairline);cursor:not-allowed}
.at-btn kbd{font:600 11px var(--at-mono);color:var(--text-tertiary);border:1px solid var(--hairline-strong);padding:1px 5px}
.at-btn-round{width:48px;padding:0;justify-content:center;border-radius:50%;background:var(--text-primary);color:var(--bg-canvas);border-color:var(--text-primary)}
.at-tc{margin-left:auto;font:600 14px var(--at-mono);color:var(--text-secondary)}
.at-tl-ruler{position:relative;height:16px;font:400 11px var(--at-mono);color:var(--text-tertiary)}
.at-tl-ruler span{position:absolute;transform:translateX(-50%)}
.at-tl-body{position:relative;height:72px;background:repeating-linear-gradient(90deg,var(--surface-2) 0 23px,var(--surface-1) 23px 24px);border:1px solid var(--hairline);cursor:text;touch-action:none;user-select:none}
.at-tl-dim{position:absolute;top:0;bottom:0;left:0;width:0;background:rgba(0,0,0,.62);pointer-events:none;z-index:1}.at-tl-dim-r{left:auto;right:0}
.at-tl-sel{z-index:2;position:absolute;top:-1px;bottom:-1px;border:2px solid var(--accent);background:transparent}
.at-tl-sel.at-bad{border-color:var(--warning);background:color-mix(in srgb,var(--warning) 12%,transparent)}
.at-tl-flag{position:absolute;left:-2px;top:-26px;font:600 12px var(--at-mono);background:var(--accent);color:var(--at-ink);padding:3px 7px;white-space:nowrap}
.at-tl-sel.at-bad .at-tl-flag{background:var(--warning)}
.at-tl-h{position:absolute;top:0;bottom:0;width:22px;cursor:ew-resize;display:flex;align-items:center;justify-content:center}
.at-tl-h::after{content:"";width:6px;height:44px;background:var(--accent)}
.at-tl-sel.at-bad .at-tl-h::after{background:var(--warning)}
.at-tl-in{left:-13px}.at-tl-out{right:-13px}
.at-tl-ph{z-index:3;position:absolute;top:-8px;bottom:-8px;width:2px;background:var(--text-primary);pointer-events:none}

/* ---------- Avant / après : variables Atelier reprises du thème ---------- */
.rtaa{--g0:#0B0B0C;--g1:var(--bg-canvas);--g2:var(--surface-2);--line:var(--hairline);--line2:var(--hairline-strong);--iv:var(--text-primary);--iv2:var(--text-secondary);--iv3:var(--text-tertiary);--ver:var(--accent);--ver-ink:var(--at-ink);margin:0!important}

/* ---------- Mobile réellement adapté ---------- */
@media (max-width:900px){
  .at-hero{grid-template-columns:1fr;min-height:0}
  .at-hero-stage-wrap{border-left:0;order:-1}
  .at-hero-stage{min-height:0;aspect-ratio:16/10}
  .at-hero-copy{gap:28px}
}
@media (max-width:560px){
  body{font-size:16px}
  .cfg-hint,.at-note{font-size:15px}
  .btn,.at-btn,.rt-acc button{min-height:48px}
  .at-go{min-height:64px;font-size:20px;padding:0 20px}
  .at-display{font-size:clamp(44px,13vw,64px)}
  .at-tc{margin-left:0;width:100%}
  .at-tl-body{height:64px}
  .at-tl-h{width:32px}.at-tl-in{left:-18px}.at-tl-out{right:-18px}
}
/* Ordre de l'accueil : projet d'abord, parcours détaillé ensuite */
.home-inner{display:flex;flex-direction:column;text-align:left!important}
#rt-atelier-home{order:-2}
#rt-reprise{order:0;max-width:1100px;width:100%;margin:0 auto;padding:40px clamp(16px,3.2vw,48px) 0;box-sizing:border-box}
#account-accueil{order:1}
#rt-avant-apres{order:2}
.rt-pc h1,.rt-pc .rt-pc-h{font-size:clamp(24px,2.4vw,32px)!important}
.rtaa-head,.rtaa-head p{text-align:left}
/* Bienvenue : carte au thème */
.onb,.onb-card,[class*="onb"] .card{background:var(--surface-1)!important;color:var(--text-primary)!important;border:1px solid var(--hairline-strong)!important;border-radius:var(--r-lg)!important}
.site-foot{border-top:1px solid var(--hairline)}
/* Bêta (bandeau, bienvenue, signalement) au thème Atelier */
.rtbeta-bar{background:var(--surface-1)!important;color:var(--text-secondary)!important;border-bottom:1px solid var(--hairline)!important}
.rtbeta-bar-x,.rtbeta-report-btn{background:transparent!important;color:var(--text-primary)!important;border:1px solid var(--hairline-strong)!important;border-radius:var(--r-md)!important;min-height:40px}
.rtbeta-welcome,.rtbeta-report-panel{background:var(--surface-1)!important;color:var(--text-primary)!important;border:1px solid var(--hairline-strong)!important;border-radius:var(--r-lg)!important;box-shadow:var(--shadow-lg)!important}
.rtbeta-welcome-h{font-family:var(--at-display);font-weight:900;font-size:28px!important;letter-spacing:-.02em}
.rtbeta-welcome-sub,.rtbeta-report-note{color:var(--text-secondary)!important}
.rtbeta-unfinished{background:transparent!important;border:0!important;border-top:1px solid var(--hairline)!important;border-radius:0!important;padding:12px 0!important}
.rtbeta-unfinished-h{color:var(--warning-text)!important}
.rtbeta-flag{background:transparent!important;color:var(--warning-text)!important;border:1px solid currentColor!important;border-radius:2px!important}
.rtbeta-welcome-ok,.rtbeta-report-send{background:var(--accent)!important;color:var(--at-ink)!important;border:0!important;border-radius:var(--r-md)!important;min-height:48px;font-weight:800!important}
.rtbeta-report-ta{background:var(--bg-base)!important;color:var(--text-primary)!important;border-color:var(--hairline-strong)!important}
/* Montage : écran large, vidéo au centre, action principale nette */
#src-realimport,#src-realimport>.set-group,#src-realimport .set-group{max-width:1100px!important}
#src-realimport video{width:100%;max-height:46vh;aspect-ratio:16/9;object-fit:contain}
#src-realimport .at-gen{min-height:56px;font-size:17px!important;padding:0 26px}
.at-tl-ruler span:first-child{transform:none}
.at-more{margin:20px 0;border-top:1px solid var(--hairline);padding-top:12px}
.at-more>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:700;font-size:17px;list-style:none}
.at-more>summary::before{content:"+";font:700 20px var(--at-mono);color:var(--accent);margin-right:12px}
.at-more[open]>summary::before{content:"–"}
.at-display{hyphens:none;word-break:normal}
.at-hero-stage video{max-height:70vh}
.at-display.at-long{font-size:clamp(40px,4.6vw,76px)}
.at-tl-strip{position:absolute;inset:0;width:100%;height:100%;opacity:.9;pointer-events:none}
/* Mes clips : bobine plate, vidéo plus grande, états lisibles */
.mesclip-list{gap:0!important;border-top:1px solid var(--hairline)}
.mesclip{border:0!important;border-bottom:1px solid var(--hairline)!important;border-radius:0!important;background:transparent!important;padding:24px 0!important}
.mesclip-video{max-height:58vh!important;width:100%!important;border-radius:0!important}
.mesclip-player{margin:14px 0!important}
.mesclip-badge{border-radius:2px!important;font-family:var(--at-mono);letter-spacing:.04em}
.mesclip-badge.mesclip-await{background:transparent!important;color:var(--warning-text)!important;border-color:currentColor!important}
.mesclip-badge.mesclip-ok{background:transparent!important;color:var(--success-text)!important;border-color:currentColor!important}
.mesclip-time{font-family:var(--at-mono)}
.mesclip-ack{font-size:15px!important;padding-left:32px!important}
.mesclip-ack input[type="checkbox"]{width:22px!important;height:22px!important}
.mesclip-bg{border:0!important;border-top:1px solid var(--hairline)!important;border-radius:0!important;background:transparent!important}
.mesclip-state{border-radius:0!important;background:transparent!important;border-width:0 0 0 3px!important}
.at-hero-empty .at-next,.at-hero-err .at-next{max-width:560px}
.rtaa-demo-note{margin-top:14px!important;font-size:15px!important}
/* Recadrage manuel 9:16 */
.at-rf-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(140px,1fr);gap:16px;align-items:start;margin:10px 0}
.at-rf-src{position:relative;background:#000;cursor:grab;touch-action:none;user-select:none}
.at-rf-src video{display:block;width:100%;height:auto;pointer-events:none}
.at-rf-mask{position:absolute;top:0;bottom:0;background:rgba(0,0,0,.6);pointer-events:none}.at-rf-mask-l{left:0}.at-rf-mask-r{right:0}
.at-rf-frame{position:absolute;top:0;bottom:0;border:2px solid var(--accent);box-sizing:border-box;cursor:grab}
.at-rf-frame:focus-visible{outline:3px solid var(--accent-bright);outline-offset:2px}
.at-rf-prev{display:flex;flex-direction:column;gap:8px;align-items:center}
.at-rf-prev-box{width:100%;max-width:220px;aspect-ratio:9/16;background:#000;overflow:hidden}
.at-rf-prev-box video{width:100%;height:100%;object-fit:cover;display:block}
@media (max-width:560px){.at-rf-grid{grid-template-columns:1fr}.at-rf-prev-box{max-width:160px}}
/* Histoires : rail de progression */
.at-flow{list-style:none;margin:0 0 14px;padding:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--hairline)}
.at-flow li{padding:12px 8px 0 0;border-top:3px solid transparent;margin-top:-2px;display:flex;flex-direction:column;gap:4px}
.at-flow-n{font:600 12px var(--at-mono);color:var(--text-tertiary)}.at-flow-l{font-size:14px;font-weight:700}.at-flow-s{font:600 11px var(--at-mono);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em}
.at-flow-done{border-top-color:var(--text-primary)!important}.at-flow-now{border-top-color:var(--accent)!important}.at-flow-now .at-flow-s{color:var(--accent)}
.at-flow-closed .at-flow-s{color:var(--warning-text)}.at-flow-err{border-top-color:var(--danger)!important}.at-flow-err .at-flow-s{color:var(--danger)}
@media (max-width:760px){.at-flow{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* [CLAUDE] HISTOIRES-CLIENT-V1 */
.at-hist-list{display:flex;flex-direction:column;border-top:1px solid var(--hairline);margin:8px 0 18px}
.at-hist-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--hairline)}
.at-hist-card>div{min-width:0}.at-hist-card .cfg-hint{margin:4px 0 0;overflow-wrap:anywhere}
.at-hist-cur{box-shadow:inset 3px 0 0 var(--accent);padding-left:12px}
.at-hist-t{font-size:22px;line-height:1.15;margin:0;overflow-wrap:anywhere}.at-hist-t.at-long{font-size:18px}
.at-hist-h{font-size:24px;line-height:1.15;margin:4px 0 8px;font-weight:800}
.at-hist-empty{padding:18px 0}
.at-hist-new{margin:0 0 22px}.at-hist-new>summary{cursor:pointer;font-weight:700;font-size:16px;padding:10px 0;color:var(--accent)}
.at-hist-new>summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.at-hist-open{border-top:2px solid var(--text-primary);padding-top:16px;margin-top:8px}
.at-hist-head p{max-width:72ch}
.at-hist-closed{border-left:3px solid var(--warning-text);padding:6px 0 6px 16px;margin:12px 0}
@media (max-width:760px){.at-hist-card{flex-direction:column;align-items:stretch}.at-hist-card .btn{width:100%}.at-hist-t{font-size:19px}}
.at-sn-present{border:0;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px}.at-sn-present legend{width:100%;padding:0}
/* [CLAUDE] HISTOIRES-MONTAGE-PLAN-V1 */
.at-mp{margin:6px 0 18px}.at-mp-list{list-style:none;margin:6px 0 8px;padding:0;border-top:1px solid var(--hairline)}
.at-mp-list li{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:12px;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--hairline)}
.at-mp-n{font:700 13px var(--at-mono);color:var(--text-tertiary)}.at-mp-t{overflow-wrap:anywhere}.at-mp-t small{display:block;color:var(--text-tertiary);font-size:12px;margin-top:2px}
.at-mp-s{font:600 11px var(--at-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);text-align:right;max-width:16em}
.at-mp-ok .at-mp-s{color:var(--text-primary)}.at-mp-now .at-mp-s{color:var(--accent)}.at-mp-err .at-mp-s{color:var(--danger)}
.at-mp-sum{margin:4px 0}
@media (max-width:760px){.at-mp-list li{grid-template-columns:24px minmax(0,1fr)}.at-mp-s{grid-column:2;text-align:left}}
/* [CLAUDE] HISTOIRES-EDITION-PLANS-V1 */
.at-hist-edit{margin:12px 0 16px;border-top:1px solid var(--hairline)}.at-hist-edit>summary{cursor:pointer;font-weight:700;padding:10px 0;color:var(--accent)}
.at-hist-edit>summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.at-ed-list{list-style:none;margin:8px 0;padding:0}.at-ed-item{border-bottom:1px solid var(--hairline);padding:12px 0}
.at-ed-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.at-ed-move{margin-left:auto;display:flex;gap:6px}.at-ed-move .btn{min-width:44px;min-height:44px;padding:0 10px}
.at-ed-sec{max-width:8em}
/* [CLAUDE] v9 : cibles tactiles des liens du tutoriel */
[data-tuto-go]{min-height:36px;padding:8px 6px;display:inline-flex;align-items:center}
.at-mp-hist .at-mp-t{color:var(--text-secondary)}.at-mp-hist .at-mp-s{color:var(--text-tertiary)}
/* ===== fin ATELIER-V1 ===== */

/* [CLAUDE] LOT50 — moins de texte d’un coup + guide des options */
.rt-folded{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.rt-fold-btn{display:inline-block;margin:-2px 0 10px;padding:2px 0;background:none;border:0;color:var(--accent-bright);font:inherit;font-size:.86em;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.rt-fold-btn:hover{color:var(--text-primary)}
.rt-fold-btn:focus-visible{outline:2px solid var(--accent-bright);outline-offset:3px;border-radius:4px}
.rt-guide{margin:8px 0 28px;max-width:860px}
.rt-guide h2{font-size:1.25rem;letter-spacing:-.01em;margin:0 0 12px}
.rt-guide .rt-guide-h2{margin-top:28px}
.rt-guide-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--hairline)}
.rt-guide-item{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;padding:16px 4px;border-bottom:1px solid var(--hairline)}
.rt-guide-item h3{font-size:1rem;margin:0 0 4px;color:var(--text-primary)}
.rt-guide-item p{margin:0;color:var(--text-secondary);line-height:1.5;max-width:62ch}
.rt-guide-ex{margin-top:6px!important;color:var(--text-tertiary)!important;font-style:italic}
.rt-guide-ex span{font-style:normal;color:var(--champagne-text);margin-right:6px}
@media (max-width:600px){.rt-guide-item{grid-template-columns:1fr}.rt-guide-go{justify-self:start}}

/* [CLAUDE] LOT50 — contrôles redessinés : cases, choix, champs, boutons cohérents (identité « régie de replay ») */
.screen input[type=checkbox],.screen input[type=radio],.rt-acc input[type=radio]{appearance:none;-webkit-appearance:none;flex:0 0 auto;width:20px;height:20px;margin:1px 10px 0 0;border:1.5px solid var(--hairline-strong);background:var(--surface-1);border-radius:6px;display:inline-grid;place-content:center;vertical-align:-4px;cursor:pointer;transition:background .14s var(--ease),border-color .14s var(--ease)}
.screen input[type=radio],.rt-acc input[type=radio]{border-radius:50%}
.screen input[type=checkbox]::before{content:"";width:10px;height:6px;border-left:2.5px solid #fff;border-bottom:2.5px solid #fff;transform:rotate(-45deg) translate(1px,-1px) scale(0);transition:transform .12s var(--ease)}
.screen input[type=radio]::before,.rt-acc input[type=radio]::before{content:"";width:8px;height:8px;border-radius:50%;background:#fff;transform:scale(0);transition:transform .12s var(--ease)}
.screen input[type=checkbox]:checked,.screen input[type=radio]:checked,.rt-acc input[type=radio]:checked{background:var(--accent);border-color:var(--accent)}
.screen input[type=checkbox]:checked::before,.screen input[type=radio]:checked::before,.rt-acc input[type=radio]:checked::before{transform:rotate(-45deg) translate(1px,-1px) scale(1)}
.screen input[type=radio]:checked::before,.rt-acc input[type=radio]:checked::before{transform:scale(1)}
.screen input[type=checkbox]:hover,.screen input[type=radio]:hover{border-color:var(--accent-bright)}
.screen input[type=checkbox]:focus-visible,.screen input[type=radio]:focus-visible{outline:2px solid var(--accent-bright);outline-offset:2px}
.screen input[type=checkbox]:disabled,.screen input[type=radio]:disabled{opacity:.5;cursor:not-allowed}
.mesclip-ack{display:flex;align-items:flex-start;gap:0;padding:12px 14px;margin:8px 0;border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--surface-1);line-height:1.45;cursor:pointer;transition:border-color .14s var(--ease),background .14s var(--ease)}
.mesclip-ack:hover{border-color:var(--hairline-strong)}
.mesclip-ack:has(input:checked){border-color:color-mix(in srgb,var(--accent) 60%,transparent);background:var(--accent-tint)}
.screen .cfg-input,.screen select.cfg-input,.screen textarea.cfg-input{min-height:44px;padding:10px 14px;border-radius:var(--r-md);border:1px solid var(--hairline-strong);background:var(--surface-1);color:var(--text-primary);font:inherit;transition:border-color .14s var(--ease),box-shadow .14s var(--ease)}
.screen .cfg-input:focus{outline:none;border-color:var(--accent-bright);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 28%,transparent)}
.screen .cfg-input::placeholder{color:var(--text-tertiary)}
.btn{min-height:44px;font-weight:600;letter-spacing:.005em}
.btn-2{background:transparent;border:1px solid var(--hairline-strong)}
.btn-2:hover{background:var(--surface-2);border-color:var(--accent-bright)}
.set-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:12px 0}
.screen h1{letter-spacing:-.02em}
.screen h2,.screen h3{letter-spacing:-.01em}
@media (prefers-reduced-motion:reduce){.screen input[type=checkbox]::before,.screen input[type=radio]::before{transition:none}}
/* [CLAUDE] LOT50 — profil */
.rt-profile{max-width:640px}
.rt-prof-head{display:flex;gap:14px;align-items:center;margin:4px 0 14px}
.rt-prof-av{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:1.3rem;color:#fff;background:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}
.rt-prof-name{font-size:1.15rem;font-weight:650;margin:0}
.rt-prof-level{padding:14px 16px;border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--surface-1);margin-bottom:14px}
.rt-prof-level p{margin:0 0 8px}
.rt-prof-bar{height:8px;border-radius:4px;background:var(--surface-3);overflow:hidden;margin:4px 0 8px}
.rt-prof-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--champagne));border-radius:4px}
/* [CLAUDE] LOT51 — conversation « ReplayTower et moi » */
.rt-chat{max-width:760px;margin:8px 0 28px;border:1px solid var(--hairline);border-radius:var(--r-lg);background:var(--surface-1);padding:16px}
.rt-chat-log{max-height:52vh;overflow:auto;display:flex;flex-direction:column;gap:10px;padding:4px 2px 12px}
.rt-chat-hello{color:var(--text-secondary);margin:4px 0 8px}
.rt-chat-sugg{display:flex;flex-wrap:wrap;gap:8px}
.rt-chat-sugg .btn{min-height:36px;padding:6px 12px;font-weight:500;font-size:13px}
.rt-chat-msg{max-width:85%;padding:10px 14px;border-radius:14px;line-height:1.5}
.rt-chat-msg p{margin:0}
.rt-chat-msg.is-me{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:4px}
.rt-chat-msg.is-rt{align-self:flex-start;background:var(--surface-2);border:1px solid var(--hairline);border-bottom-left-radius:4px}
.rt-chat-msg.is-wait p{animation:rt-blink 1s steps(2) infinite}
@keyframes rt-blink{50%{opacity:.3}}
.rt-chat-form{display:flex;gap:10px;align-items:flex-end}
.rt-chat-form textarea{flex:1;resize:vertical}
.rt-chat-meta{margin:6px 0 0;font-size:.86em}
.side-foot[role=button]:hover .av{box-shadow:0 0 0 2px var(--accent-bright)}
@media (prefers-reduced-motion:reduce){.rt-chat-msg.is-wait p{animation:none}}
/* [CLAUDE] LOT52 — histoire à partir de quelques mots */
.rt-sw{border:1px solid var(--hairline);border-radius:var(--r-lg);background:var(--surface-2);padding:14px 16px;margin:4px 0 18px}
.rt-sw-h{margin:0 0 4px}
.rt-sw-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.rt-sw-row #story-words{flex:1 1 260px}
/* [CLAUDE] LOT52 — simplification : moins de texte à l’écran, sections techniques retirées de Sources */
.screen[data-screen="sources"] .rt-yt,
.screen[data-screen="sources"] .rt-sv,
.screen[data-screen="sources"] #src-attach-grp,
.screen[data-screen="sources"] #src-localmission-grp,
.screen[data-screen="sources"] .cfg-hint-lock{display:none!important}
#src-list-grp > .cfg-hint{display:none}
.step-help{font-size:.92em}
.rt-yf-list{list-style:none;padding:0;margin:10px 0;display:flex;flex-direction:column;gap:8px}
.rt-yf-row{display:flex;align-items:center;gap:12px;padding:8px;border:1px solid var(--hairline);border-radius:12px;background:var(--surface-1)}
.rt-yf-row.is-new{border-color:var(--accent)}
.rt-yf-th{flex:none;width:96px;aspect-ratio:16/9;border-radius:8px;object-fit:cover;background:var(--surface-2)}
.rt-yf-main{flex:1;min-width:0}
.rt-yf-t{margin:0;font-weight:600;line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.rt-yf-d{margin:2px 0 0;font-size:.85em;color:var(--text-secondary)}
.rt-yf-new{color:var(--accent-bright);margin-right:4px}
.rt-yf-pick{flex:none;min-height:38px;padding:6px 14px;font-size:.9em}
[data-ypk-url]{flex:1 1 320px;min-width:0}
.cfg-eng-row:has([data-ypk-url]){display:flex;gap:10px;flex-wrap:wrap}
@media (max-width:640px){.rt-yf-row{flex-wrap:wrap}.rt-yf-th{width:72px}.rt-yf-pick{width:100%}}
/* [CLAUDE] LOT53 — assistant : présentation + conseils proposés */
.rt-chat-intro{max-width:760px;margin:0 0 12px;color:var(--text-secondary);line-height:1.55}
.rt-tips{max-width:760px;margin:8px 0 32px}
.rt-tips-h{font-size:1.05rem;margin:0 0 10px}
.rt-tips-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.rt-tip{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border-radius:14px;border:1px solid var(--hairline);background:var(--surface-1);color:inherit;text-decoration:none;transition:border-color .15s,transform .15s}
.rt-tip:hover{border-color:var(--accent);transform:translateY(-1px)}
.rt-tip span{font-size:.88em;color:var(--text-secondary);line-height:1.45}
@media (prefers-reduced-motion:reduce){.rt-tip{transition:none}.rt-tip:hover{transform:none}}
.rt-sw.is-hi{border-color:var(--accent);box-shadow:0 0 0 4px rgba(124,108,255,.15)}
/* [CLAUDE] LOT53 — Sources : trois grands blocs clairs */
#yt-follow,#yt-pick{border:1px solid var(--hairline)!important;border-radius:18px;background:var(--surface-1);padding:0!important;overflow:hidden}
#yt-follow>summary,#yt-pick>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:14px;padding:18px 20px;font-size:1.15rem}
#yt-follow>summary::-webkit-details-marker,#yt-pick>summary::-webkit-details-marker{display:none}
#yt-follow>summary::before,#yt-pick>summary::before{flex:none;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-size:20px;background:var(--surface-2)}
#yt-follow>summary::before{content:"📡"}#yt-pick>summary::before{content:"✂️"}
#yt-follow>summary::after,#yt-pick>summary::after{content:"";margin-left:auto;width:10px;height:10px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);opacity:.5;transition:transform .2s}
#yt-follow[open]>summary::after,#yt-pick[open]>summary::after{transform:rotate(-135deg)}
#yt-follow>summary .ed-dim,#yt-pick>summary .ed-dim{font-size:.8rem;font-weight:400}
#yt-follow>:not(summary),#yt-pick>:not(summary){margin-left:20px;margin-right:20px}
#yt-follow[open],#yt-pick[open]{padding-bottom:16px!important}
.rt-moments{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin:10px 0}
.rt-moment{display:flex;align-items:center;gap:10px;padding:14px 16px;border-radius:14px;border:1px solid var(--hairline);background:var(--surface-2);color:inherit;font:inherit;font-weight:600;cursor:pointer;text-align:left}
.rt-moment span{font-size:1.3em}
.rt-moment:hover,.rt-moment[aria-pressed=true]{border-color:var(--accent)}
@media (prefers-reduced-motion:reduce){#yt-follow>summary::after,#yt-pick>summary::after{transition:none}}

/* ===== [CLAUDE] LOT60 : tutoriel illustré, onglets « Mes clips », paramètres regroupés ===== */
.rt-ul{margin:4px 0 8px 18px}
/* Tutoriel : cartes par catégorie */
.rt-guide{max-width:1080px;margin:8px 0 24px}
.rt-tg-cat{margin:0 0 28px}
.rt-tg-h{font-family:var(--font)!important;font-size:.78rem!important;font-weight:700!important;text-transform:uppercase;letter-spacing:.09em!important;color:var(--text-tertiary);margin:0 0 12px}
.rt-tg-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(236px,1fr));gap:12px}
.rt-tg-card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--hairline);border-radius:var(--r-lg);background:var(--surface-1);overflow:hidden;transition:border-color .2s var(--ease),transform .2s var(--ease)}
.rt-tg-card:hover{border-color:var(--hairline-strong);transform:translateY(-2px)}
.rt-tg-card:focus-within{border-color:var(--accent)}
.rt-tg-card.is-first{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}
.rt-tg-ill{display:grid;place-items:center;padding:16px;background:var(--surface-2);border-bottom:1px solid var(--hairline)}
.rt-tg-art{display:block;width:100%;max-width:160px;height:auto}
.rt-tg-body{flex:1;padding:14px 16px 0}
.rt-tg-body h3{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 6px;font-size:.98rem;line-height:1.3;color:var(--text-primary)}
.rt-tg-body p{margin:0;font-size:.86rem;line-height:1.5;color:var(--text-secondary)}
.rt-tg-body .rt-tg-ex{margin-top:10px;font-size:.8rem;color:var(--text-tertiary)}
.rt-tg-ex span{display:block;margin-bottom:2px;font-size:.68rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--accent-bright)}
.rt-tg-ok{padding:2px 8px;border-radius:999px;font-size:.68rem;font-weight:600;background:var(--accent-tint);color:var(--accent-bright)}
.rt-tg-go{align-self:flex-start;margin:14px 16px 16px}
.rt-tg-art .g-s{fill:var(--surface-3)}
.rt-tg-art .g-a{fill:var(--accent)}
.rt-tg-art .g-c{fill:var(--champagne)}
.rt-tg-art .g-r{fill:var(--accent-bright)}
.rt-tg-art .g-l{fill:none;stroke:var(--text-secondary);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.rt-tg-art .g-m{fill:none;stroke:var(--text-tertiary);stroke-width:3;stroke-linecap:round}
.rt-tg-art .g-m2{fill:var(--text-tertiary)}
.rt-tg-art .g-m3{fill:var(--text-tertiary);opacity:.55}
.rt-tg-art .g-w{fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round}
.rt-tg-art .g-w2{fill:#fff;opacity:.9}
.rt-tg-art .g-w3{fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round}
.rt-tg-art .g-c2{fill:var(--surface-3);stroke:var(--accent-bright);stroke-width:2}
.rt-tg-art .g-c3{fill:none;stroke:var(--champagne);stroke-width:3;stroke-linecap:round}
.rt-tg-art .g-s3{fill:none;stroke:var(--hairline-strong);stroke-width:2}
.rt-tg-art .g-f{fill:none;stroke:var(--champagne);stroke-width:2.5;stroke-dasharray:4 3}
.rt-tg-art .g-t{font:700 12px var(--font);fill:var(--text-primary);text-anchor:middle}
.rt-tg-art .g-t-w{fill:#fff}
/* Repli élégant (tutoriel détaillé, état des fonctions) */
.rt-tuto-steps,.set-details{max-width:1080px;margin:8px 0 0;padding:0 16px;border:1px solid var(--hairline);border-radius:var(--r-lg);background:var(--surface-1)}
.set-details{max-width:none;margin-top:12px}
.rt-tuto-steps>summary,.set-details>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:12px 0;font-weight:600;color:var(--text-primary);cursor:pointer;list-style:none}
.rt-tuto-steps>summary::-webkit-details-marker,.set-details>summary::-webkit-details-marker{display:none}
.rt-tuto-steps>summary::after,.set-details>summary::after{content:"";flex:none;width:9px;height:9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);opacity:.5;transition:transform .2s var(--ease)}
.rt-tuto-steps[open]>summary::after,.set-details[open]>summary::after{transform:rotate(-135deg)}
.rt-tuto-steps>summary:focus-visible,.set-details>summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
.rt-tuto-steps[open],.set-details[open]{padding-bottom:12px}
/* Mes clips : onglets */
.mc-tabs{display:flex;gap:2px;margin:16px 0 18px;overflow-x:auto;border-bottom:1px solid var(--hairline);scrollbar-width:none;-webkit-overflow-scrolling:touch}
.mc-tabs::-webkit-scrollbar{display:none}
.mc-tab{position:relative;flex:none;min-height:44px;padding:10px 14px;border-radius:var(--r-md) var(--r-md) 0 0;font-size:.9rem;font-weight:600;white-space:nowrap;color:var(--text-secondary);transition:color .15s}
.mc-tab:hover:not([disabled]){color:var(--text-primary)}
.mc-tab[aria-selected="true"]{color:var(--text-primary)}
.mc-tab[aria-selected="true"]::after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;border-radius:2px;background:var(--accent)}
.mc-tab:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.mc-tab.is-soon{cursor:not-allowed;opacity:.5}
.mc-soon{margin-left:4px;padding:1px 6px;border:1px solid var(--hairline-strong);border-radius:999px;font-size:.66rem;font-weight:600}
.mc-count{margin-left:6px;font-size:.75rem;font-variant-numeric:tabular-nums;color:var(--accent-bright)}
.pad[data-mc-tab="encours"] #mespubs,.pad[data-mc-tab="tous"] #mespubs,.pad[data-mc-tab="publies"] #mesclips{display:none}
.pad[data-mc-tab="encours"] #mesclips .mesclip[data-mesclip]:not([data-mc-pending]),.pad[data-mc-tab="encours"] #mesclips .mesclip-live-sec,.pad[data-mc-tab="encours"] #mesclips .mesclip-copy-sec{display:none}
.pad:not([data-mc-tab="encours"]) .mc-empty-pending,.mc-empty-pending[hidden]{display:none!important}
#mespubs ul{list-style:none;margin:8px 0 0;padding:0}
#mespubs li{padding:8px 0;border-top:1px solid var(--hairline)}
/* Paramètres */
.set-sub-h{margin:16px 0 8px;font-family:var(--font)!important;font-size:.76rem!important;font-weight:700!important;letter-spacing:.08em!important;text-transform:uppercase;color:var(--text-tertiary)}
.set-login .set-sub-h{margin-top:0}
.set-links{display:grid;margin:8px 0 0;padding:0;list-style:none}
.set-links a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px;padding:0 4px;border-bottom:1px solid var(--hairline);color:var(--text-primary);text-decoration:none}
.set-links a::after{content:"›";font-size:1.2em;color:var(--text-tertiary)}
.set-links a:hover{color:var(--accent-bright)}
.set-links a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
@media (max-width:600px){.rt-tg-grid{grid-template-columns:1fr}.rt-tg-ill{padding:10px}.rt-tg-art{max-width:120px}.rt-tg-go{margin:12px 14px 14px}.mc-tab{padding:10px 12px}}
@media (prefers-reduced-motion:reduce){.rt-tg-card,.mc-tab,.rt-tuto-steps>summary::after,.set-details>summary::after{transition:none}.rt-tg-card:hover{transform:none}}
/* [CLAUDE] LOT61 : « Mis de côté » / « Supprimés » */
.btn-sm{min-height:36px;padding:6px 12px;font-size:.85rem}
.pad[data-mc-tab="cote"] #mespubs,.pad[data-mc-tab="suppr"] #mespubs{display:none}
.pad[data-mc-tab="encours"] #mesclips .mesclip[data-mc-shelf]:not([data-mc-shelf="ACTIVE"]),
.pad[data-mc-tab="tous"] #mesclips .mesclip[data-mc-shelf]:not([data-mc-shelf="ACTIVE"]),
.pad[data-mc-tab="cote"] #mesclips .mesclip[data-mesclip]:not([data-mc-shelf="ARCHIVED"]),
.pad[data-mc-tab="suppr"] #mesclips .mesclip[data-mesclip]:not([data-mc-shelf="DELETED"]){display:none}
.pad[data-mc-tab="cote"] #mesclips .mesclip-live-sec,.pad[data-mc-tab="cote"] #mesclips .mesclip-copy-sec,.pad[data-mc-tab="cote"] #mesclips .mc-active-only,
.pad[data-mc-tab="suppr"] #mesclips .mesclip-live-sec,.pad[data-mc-tab="suppr"] #mesclips .mesclip-copy-sec,.pad[data-mc-tab="suppr"] #mesclips .mc-active-only{display:none}
.mc-empty[hidden],.pad:not([data-mc-tab="tous"]) .mc-empty-tous,.pad:not([data-mc-tab="cote"]) .mc-empty-cote,.pad:not([data-mc-tab="suppr"]) .mc-empty-suppr{display:none!important}
.mc-shelf{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid var(--hairline);font-size:.85rem;color:var(--text-tertiary)}
.mc-shelf .linkbtn{min-height:36px;color:var(--text-secondary);font-weight:500}
.mc-shelf .linkbtn:hover{color:var(--text-primary)}
.mc-shelf .mc-del:hover{color:var(--danger)}
.mc-confirm{display:flex;flex-wrap:wrap;align-items:center;gap:8px;color:var(--text-primary)}
.mc-shelf-card .mesclip-player{max-width:320px}
/* [CLAUDE] LOT61 : État des fonctions (neutre) + musique */
.rt-feat .rt-feat-where{background:var(--surface-3);color:var(--text-secondary)}
.rt-feat-ok{margin-left:8px;padding:1px 8px;border-radius:999px;font-size:.7rem;font-weight:600;background:var(--accent-tint);color:var(--accent-bright)}
.mu-src{display:grid;gap:6px;margin:8px 0 10px;padding:0;border:0}
.mu-row{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0}
.mu-exh{margin:10px 0;padding:12px 14px;border-radius:var(--r-md);background:var(--surface-2);border-left:3px solid var(--warning)}
.mu-exh p{margin:0 0 8px}
/* [CLAUDE] LOT62 : agents par sujet (ReplayTower et moi) */
.rt-hide{display:none}
.rt-agents{margin:4px 0 18px;max-width:860px}
.rt-ag-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.rt-ag-lbl{font-weight:600;color:var(--text-secondary);font-size:.9rem}
.rt-ag-sel{width:auto;min-width:200px;max-width:100%;min-height:40px}
.rt-ag-cur{margin:8px 0 0;font-size:.88rem}
.rt-ag-chip{display:inline-block;padding:1px 8px;border-radius:999px;font-size:.7rem;font-weight:600;background:var(--accent-tint);color:var(--accent-bright);vertical-align:middle}
.rt-ag-panel{margin-top:14px;padding:16px;border:1px solid var(--hairline);border-radius:var(--r-lg);background:var(--surface-1)}
.rt-ag-count{margin:0 0 10px;font-size:.85rem;color:var(--text-tertiary)}
.rt-ag-list{list-style:none;margin:0 0 12px;padding:0}
.rt-ag-item{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;padding:12px 0;border-top:1px solid var(--hairline)}
.rt-ag-item.is-edit{display:block}
.rt-ag-main{min-width:0;flex:1 1 260px}
.rt-ag-name{margin:0;font-weight:650}
.rt-ag-sub{margin:2px 0 0;color:var(--text-secondary);font-size:.9rem}
.rt-ag-meta{margin:2px 0 0;font-size:.8rem}
.rt-ag-acts{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.rt-ag-new>summary{cursor:pointer;font-weight:600;min-height:40px;display:flex;align-items:center}
.rt-ag-form{display:grid;gap:6px;margin-top:6px}
.rt-ag-row{display:flex;flex-wrap:wrap;gap:12px}
.rt-ag-row label{flex:1 1 200px}
.rt-ag-kind{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 0;padding:0;border:0}
.rt-ag-kind legend{width:100%;margin-bottom:4px}
.rt-ag-fan{border-left:3px solid var(--accent);padding-left:10px}
.rt-ag-msg{margin:10px 0 0}
@media (max-width:600px){.rt-ag-sel{flex:1 1 100%}}
/* [CLAUDE] LOT63 : Histoires — modes + « Sur ma vidéo » */
.hist-modes{display:flex;gap:2px;margin:6px 0 20px;overflow-x:auto;border-bottom:1px solid var(--hairline);scrollbar-width:none}
.hist-modes::-webkit-scrollbar{display:none}
.hist-modes .mc-tab small{display:block;font-size:.72rem;font-weight:500;color:var(--text-tertiary)}
.hist-bg{max-width:760px}
.hbg-head{margin:0 0 16px}
.hbg-h{font-size:1.2rem;margin:0 0 6px}
.hbg-step{margin:0 0 10px;border:1px solid var(--hairline);border-radius:var(--r-lg);background:var(--surface-1)}
.hbg-step>summary,.hbg-step.is-lock{display:flex;align-items:center;gap:12px;min-height:52px;padding:10px 16px;font-weight:600;list-style:none;cursor:pointer}
.hbg-step>summary::-webkit-details-marker{display:none}
.hbg-step>summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:var(--r-lg)}
.hbg-step.is-lock{cursor:default;color:var(--text-tertiary);background:transparent;border-style:dashed}
.hbg-n{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--surface-3);font-size:.85rem;font-weight:700}
.hbg-step.is-cur .hbg-n{background:var(--accent);color:#fff}
.hbg-step.is-done .hbg-n{background:var(--success);color:#fff}
.hbg-body{display:grid;gap:8px;padding:0 16px 16px}
.hbg-count{margin:0;text-align:right;font-size:.78rem}
.hbg-voices{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;border:0}
.hbg-voices legend{width:100%;margin-bottom:4px}
.hbg-quote{padding:12px 14px;border-radius:var(--r-md);background:var(--surface-2)}
.hbg-quote p{margin:0 0 6px}
.hbg-audio{width:100%;max-width:520px}
.hbg-opts{display:flex;flex-wrap:wrap;gap:16px}
.hbg-opts fieldset{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;border:0}
.hbg-opts legend{width:100%;margin-bottom:4px}
.hbg-final{margin-top:16px;padding:16px;border:1px solid var(--accent);border-radius:var(--r-lg);background:var(--surface-1)}
.rt-calm{color:var(--text-secondary)}

/* ===== [FINITION-UI] lisibilité + cibles tactiles (aucune nouvelle fonction) ===== */
/* Texte d'erreur lisible en thème clair : --danger (#FF7A85) n'était pas redéfini (contraste ≈ 2,4:1). */
:root[data-theme="light"]{--danger:#B4232F}
@media (prefers-color-scheme:light){:root[data-theme="system"]{--danger:#B4232F}}
/* Boutons du module Accueil : --chip/--line n'étaient définis nulle part → fond sombre fixe (#22252c), illisible en thème clair. */
.rt-acc{--chip:var(--surface-2);--line:var(--hairline-strong);--accent-soft:var(--accent-tint)}
/* Mobile : cibles tactiles ≥ 44 px, et place réservée sous le contenu pour le bouton flottant « Signaler un problème ». */
@media (max-width:760px){
  html body .topbar .burger{width:44px;height:44px;flex-basis:44px}
  html body .help-fab{min-height:44px;min-width:44px}
  html body .rt-fold-btn,
  html body .linkbtn,
  html body .rt10-exb,
  html body .rt-pc-refresh,
  html body .btn,
  html body .rt-chat-sugg .btn,
  html body .rtbeta-bar-x,
  html body .rtbeta-report-btn,
  html body .rtbeta-report-send,
  html body .rtbeta-report-copy,
  html body .sidebar .navitem,
  html body .nav-internal summary,
  html body .rt-acc-source button,
  html body .seg button{min-height:44px}
  html body .rt-fold-btn,html body .linkbtn{display:inline-flex;align-items:center}
  html body #main{padding-bottom:84px}
}
/* Menu mobile ouvert : le bouton flottant « Signaler un problème » ne recouvre plus la navigation. */
#app.nav-open ~ .rtbeta-report-btn,#app.nav-open ~ .rtbeta-report-panel{display:none}

/* ===== [PANNEAU-ASSISTANT] Panneau latéral non modal ===== */
:root{--ap-w:380px}
.afab{right:16px;bottom:72px;z-index:45;min-height:44px;color:var(--text-primary);font:inherit;cursor:pointer}
.afab[hidden]{display:none!important}
.afab .lbl{font-size:13.5px;font-weight:600;color:var(--text-primary)}
.assistant{width:var(--ap-w);max-width:100vw;transform:none;transition:none;z-index:55;overflow:hidden}
.assistant[hidden]{display:none!important}
.assistant .a-main{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
.assistant .a-main[hidden]{display:none}
.assistant .a-head{flex:0 0 auto;gap:8px}
.assistant .a-id{min-width:0;flex:1 1 auto}
.assistant .a-head .who{margin:0;font-size:14px;line-height:1.3}
.assistant .a-head .ctx{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.assistant .a-head .x{margin-left:0;flex:0 0 auto;display:grid;place-items:center;min-width:36px;min-height:36px;cursor:pointer}
.assistant .a-head .x svg{width:16px;height:16px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.assistant .a-head .x:focus-visible,.afab:focus-visible,.assistant a:focus-visible,.assistant summary:focus-visible,.assistant .go:focus-visible{outline:2px solid var(--accent-bright);outline-offset:2px}
.assistant .a-body{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;gap:12px}
.assistant .a-note{margin:0;padding:10px 12px;border-radius:10px;background:var(--accent-tint);border:1px solid var(--hairline);font-size:13px;line-height:1.45;color:var(--text-secondary)}
.assistant .a-note b{color:var(--text-primary)}
.assistant .a-note a,.assistant .a-links a{color:var(--accent-bright);text-decoration:underline}
.assistant .a-agent{margin:0;font-size:12.5px}
.assistant .a-log{max-height:none;overflow:visible;padding:0}
.assistant .a-log .rt-chat-msg{font-size:14px;max-width:92%;overflow-wrap:anywhere}
.assistant .a-links{margin:0;font-size:12.5px;color:var(--text-tertiary)}
.assistant .a-ctxwrap{flex:0 0 auto;border-top:1px solid var(--hairline);padding:8px 16px;font-size:12.5px;max-height:40%;overflow:auto}
.assistant .a-ctxbox summary{cursor:pointer;min-height:32px;display:flex;align-items:center;gap:4px;color:var(--text-secondary);overflow-wrap:anywhere}
.assistant .a-ctxbox summary span{color:var(--text-tertiary)}
.assistant .a-ctxwhy{margin:6px 0;line-height:1.4}
.assistant .a-ctxlist{list-style:none;margin:6px 0;padding:0;display:grid;gap:4px;line-height:1.4;overflow-wrap:anywhere}
.assistant .a-ctxlist ul{margin:2px 0 0;padding-left:16px}
.assistant .a-ctxlist.is-off{opacity:.55;text-decoration:line-through}
.assistant .a-share{display:flex;align-items:center;gap:8px;min-height:36px;cursor:pointer;color:var(--text-primary)}
.assistant .a-share input{width:18px;height:18px;accent-color:var(--accent)}
.assistant .a-foot{flex:0 0 auto;align-items:flex-end}
.assistant .a-foot textarea{flex:1;min-width:0;resize:none;background:var(--surface-2);border:1px solid var(--hairline-strong);border-radius:12px;padding:9px 12px;color:var(--text-primary);font:inherit;font-size:14px;line-height:1.4;max-height:30vh}
.assistant .a-foot textarea:focus{border-color:var(--accent-bright);outline:none}
.assistant .a-foot .go{cursor:pointer}
.assistant .a-meta{margin:0;padding:0 16px 10px;font-size:12.5px;line-height:1.45}
.assistant .a-meta:empty{padding:0}
/* Réduit : petite barre en bas à droite (en-tête seul). */
.assistant[data-state="reduced"]{top:auto;left:auto;bottom:72px;right:16px;width:min(320px,calc(100vw - 32px));height:auto;border:1px solid var(--hairline-strong);border-radius:14px}
.assistant[data-state="reduced"] .a-head{border-bottom:0;padding:8px 8px 8px 12px}
.assistant[data-state="reduced"] .a-id{cursor:pointer}
/* Bureau : ancré à droite, toute la hauteur, sans voile : la page reste utilisable. */
@media (min-width:720px){
  .assistant[data-state="open"]{top:0;bottom:0;right:0;left:auto;border-left:1px solid var(--hairline)}
  .rt-ap-open .rtbeta-report-btn{right:calc(var(--ap-w) + 16px)}
  .rt-ap-open .rtbeta-report-panel{right:calc(var(--ap-w) + 16px)}
}
/* Écrans larges : la zone de contenu se rétrécit (rien n'est recouvert). Entre 720 et 1099 px, le panneau se superpose sans voile. */
@media (min-width:1100px){
  html.rt-ap-open body{padding-right:var(--ap-w)}
}
/* Mobile : feuille du bas, presque pleine hauteur, marges de sécurité, aucun défilement horizontal. */
@media (max-width:719.98px){
  .afab{right:12px;bottom:calc(68px + env(safe-area-inset-bottom,0px))}
  .assistant[data-state="open"]{top:auto;left:0;right:0;bottom:0;width:100%;max-width:100%;height:88vh;height:88dvh;border-left:0;border-top:1px solid var(--hairline-strong);border-radius:16px 16px 0 0;padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}
  .assistant[data-state="reduced"]{right:12px;bottom:calc(68px + env(safe-area-inset-bottom,0px));width:min(320px,calc(100vw - 24px))}
  .assistant .a-foot textarea{font-size:16px}
  .rt-ap-open .rtbeta-report-btn,.rt-ap-open .rtbeta-report-panel{display:none!important}
  html.rt-ap-open,html.rt-ap-open body{overflow-x:hidden}
}
@media (prefers-reduced-motion:reduce){.afab,.afab:hover{transition:none;transform:none}}
/* [PANNEAU-ASSISTANT] alignement contrat Codex : objet exact envoyé, erreurs affichées localement seulement */
.assistant .a-ctxjson{display:inline;font-size:11.5px;overflow-wrap:anywhere;word-break:break-all;background:var(--surface-2);border-radius:4px;padding:1px 4px}
.assistant .a-ctxlocal{margin:8px 0 2px;line-height:1.4}
.assistant .a-ctxerrs{margin-top:2px;padding-left:12px}
.rt-chat-ctxnote{margin:6px 0 0;font-size:.84em}
.assistant .rt-chat-hello{font-size:13.5px;line-height:1.45;margin:0}
/* [DISPO-V58] état réel des fonctions (ouvert / fermé / à vérifier) — affiché à l'entrée des pages */
.rt-avail{margin:12px 0 16px;padding:12px 16px;border:1px solid var(--hairline);border-left:3px solid var(--warning-text);border-radius:10px;background:var(--surface-2)}
.rt-avail-h{margin:0 0 6px;font-weight:600;color:var(--text-primary)}
.rt-avail-p{margin:4px 0;font-size:.9rem;line-height:1.5;color:var(--text-secondary)}
.rt-avail-l{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.rt-avail-i{display:flex;gap:8px;align-items:flex-start;font-size:.9rem;line-height:1.45;color:var(--text-secondary)}
.rt-avail-i b{color:var(--text-primary);font-weight:600}
.rt-avail-dot{flex:none;width:8px;height:8px;margin-top:.45em;border-radius:50%;background:var(--text-tertiary)}
.rt-avail-i.is-open .rt-avail-dot{background:var(--success)}
.rt-avail-i.is-closed .rt-avail-dot{background:var(--warning-text)}
.rt-avail-x{color:var(--text-tertiary)}
.rt-avail-st{margin:8px 0;font-size:.88rem;line-height:1.45;color:var(--text-secondary)}
.rt-avail-st.is-closed{color:var(--warning-text)}
.rt-tg-body .rt-tg-st{margin-top:10px;font-size:.82rem;font-weight:600;color:var(--warning-text)}
.rt-tg-body .rt-tg-st.is-open{color:var(--text-secondary);font-weight:500}
.rt-tg-off{padding:2px 8px;border-radius:999px;font-size:.68rem;font-weight:600;border:1px solid var(--warning-text);color:var(--warning-text)}
.rt-tg-card.is-closed .rt-tg-body{padding-bottom:16px}
.rt-sw.is-closed input,.rt-sw.is-closed select{opacity:.6}
