/* 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)}
.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)}
.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.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}
/* ---- É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: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}
.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)}
.cfg-eng-name{font-weight:600;color:var(--text-primary);font-size:.9rem}
.cfg-eng-txt{color:var(--text-secondary);font-size:.85rem;line-height:1.4}
.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}}
@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-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)}
