/* Tableau de bord uniquement ; les styles de l'éditeur restent indépendants. */
:root:has(.xs-shell){--bg:#fbfaf8;--bg-elev:#f6f3f0;--surface:#fff;--border:#ebe5df;--border-strong:#d9d1c9;--text:#14100c;--muted:#6b6058;--accent:#b8410a;--accent-fill:#ff6014;--accent-soft:#fff1e8;--on-accent:#140b05;--btn-primary-bg:var(--accent-fill);--btn-primary-fg:var(--on-accent);--btn-primary-shadow:0 1px 2px rgba(20,11,5,.12),0 6px 16px -6px rgba(255,96,20,.45);color-scheme:light}
body:has(.xs-shell){background:radial-gradient(ellipse at 80% 5%,var(--accent-soft) 0,transparent 33%),var(--bg)}
body:has(.xs-shell)::before{display:none}
main.container:has(>.xs-shell){max-width:none;margin:0 0 0 246px;padding:0 36px 48px 40px}
body:has(.xs-shell) .header{height:58px;margin-left:246px;background:#ffffffd9;border-bottom:1px solid var(--border);position:relative;z-index:30}
body:has(.xs-shell) .header-inner{max-width:none;padding:0 40px;gap:20px}
body:has(.xs-shell) .header .logo{display:none}
body:has(.xs-shell) .header-link{font-size:13px;display:flex;align-items:center;gap:18px;color:var(--muted)}
body:has(.xs-shell) .header-link::before{content:'‹';font-size:25px;line-height:1}
body:has(.xs-shell) .quota{font-size:12px;color:var(--muted);gap:12px}
body:has(.xs-shell) .quota-bar{width:102px;height:5px;background:var(--border)}
body:has(.xs-shell) .header-right{gap:32px}
.xs-dashboard{gap:0;--radius:16px;--btn-primary-shadow:0 8px 25px #ff671d0f}
.xs-dashboard .btn{font-size:13px;min-height:40px;border-radius:12px;font-weight:600}
.xs-dashboard .btn-primary{border:1px solid var(--accent-fill);background:var(--accent-fill);color:var(--on-accent)}
.xs-dashboard :is(button,a,input,textarea,select):focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.xs-dashboard button{cursor:pointer}.xs-dashboard button:disabled{cursor:not-allowed}
.xs-dashboard .ic{width:18px;height:18px;flex:none}
.xs-sidebar{position:fixed;z-index:45;inset:0 auto 0 0;width:246px;background:#ffffffed;border-right:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto;padding:18px 20px 0 22px}
.xs-logo{display:flex;align-items:center;gap:7px;font:700 22px/28px var(--font-head);letter-spacing:-1px;color:var(--text);padding-left:12px;flex:none}.xs-logo img{border-radius:7px}
.xs-sidebar .xs-new{margin:31px 0 23px;display:flex;gap:19px;justify-content:flex-start;padding:0 15px;min-height:40px;width:100%;border-radius:13px;flex:none}.xs-sidebar .xs-new span{flex:1;text-align:center;margin-right:18px}
.xs-sidebar nav{display:flex;flex-direction:column;gap:4px;margin:0 -9px 22px -22px}
.xs-sidebar nav>a,.xs-sidebar nav>button{min-height:44px;padding:0 16px 0 35px;display:flex;align-items:center;gap:15px;border:0;background:none;color:var(--muted);font:400 13px var(--font);text-align:left;border-radius:0 20px 20px 0;position:relative}
.xs-sidebar nav a:hover{background:var(--accent-soft);color:var(--accent)}.xs-sidebar nav .active{background:var(--accent-soft);color:var(--accent)}.xs-sidebar nav .active::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent-fill)}
.xs-sidebar nav button:disabled{color:var(--muted)}.xs-sidebar nav small{font-size:9px;color:var(--muted);display:block;line-height:1.2}
.xs-plan{margin-top:auto;padding:13px 12px 12px;background:linear-gradient(150deg,#fff,var(--bg-elev));border:1px solid var(--border);border-radius:14px;box-shadow:0 6px 20px #121a2903}.xs-plan-row{display:flex;align-items:center;gap:10px}.xs-plan-icon{height:36px;width:36px;display:grid;place-items:center;border-radius:13px;color:var(--accent-fill);background:var(--accent-soft);flex:none}.xs-plan strong{display:block;font-size:12px;font-weight:600;text-transform:capitalize}.xs-plan small{display:block;font-size:10px;color:var(--muted);line-height:1.4}.xs-quota{height:4px;background:var(--bg-elev);border-radius:4px;overflow:hidden;margin:7px 0 11px 46px}.xs-quota i{height:100%;display:block;background:var(--accent-fill)}.xs-plan .btn{width:100%;height:34px;min-height:34px;padding:4px;color:var(--text);border-color:var(--border)}
.xs-help{display:flex;align-items:center;gap:14px;margin:18px -20px 0 -22px;padding:19px 33px 24px;border-top:1px solid var(--border);font-size:11px;color:var(--muted)}
.xs-nav-toggle,.xs-nav-close,.xs-scrim{display:none}.xs-skip{position:fixed;left:260px;top:-80px;background:#fff;padding:12px;z-index:100;border-radius:8px}.xs-skip:focus{top:10px}
.xs-hero{height:216px;position:relative;display:flex;align-items:center;isolation:isolate}.xs-hero-copy{width:58%;position:relative;z-index:2}
.xs-eyebrow{display:inline-flex;gap:6px;align-items:center;color:var(--accent);background:var(--accent-soft);border-radius:8px;padding:3px 6px;font-size:10px;letter-spacing:1.7px;font-weight:600;line-height:16px;margin-bottom:12px}.xs-eyebrow .ic{width:11px;height:11px}
.xs-dashboard .xs-hero h1{font:700 clamp(27px,2.5vw,38px)/1.03 var(--font-head);letter-spacing:-1.5px;margin:0 0 10px;color:var(--text)}.xs-hero h1 span{color:var(--accent-fill)}.xs-hero p{font-size:13px;line-height:1.6;max-width:600px;color:var(--text);margin:0}
.xs-art{position:absolute;right:0;top:0;width:53%;height:216px;z-index:0;pointer-events:none;background:radial-gradient(ellipse at 56% 50%,color-mix(in srgb,var(--accent-fill) 30%,#fff) 0,#fff0e4a6 48%,transparent 72%)}.xs-art::before{content:'';position:absolute;left:23%;top:3%;width:208px;height:208px;border-radius:50%;border:15px solid #fff5ed85}
.xs-art-card{position:absolute;border:6px solid white;border-radius:14px;overflow:hidden;background:white;box-shadow:0 10px 24px #ad4c2333}.xs-art-card img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 43%}.xs-art-back{width:128px;height:174px;left:27%;top:28px;transform:rotate(-9deg)}.xs-art-back img{object-position:center 65%}.xs-art-card>span{position:absolute;bottom:7px;left:7px;right:7px;color:#fff;font-size:11px;font-weight:600;text-shadow:0 1px 8px #000}.xs-art-front{width:146px;height:189px;left:51%;top:15px;transform:rotate(5deg)}.xs-art-front>strong{position:absolute;top:0;left:0;right:0;background:white;color:var(--text);padding:0 3px 6px;display:flex;align-items:center;gap:4px;font-size:9px;line-height:15px}.xs-art-front .ic{width:14px;height:14px}.xs-art-front img{padding-top:20px}
.xs-idea{position:absolute;top:54px;left:7%;padding:9px 15px;border:1px solid var(--border);border-radius:20px;background:#fff;font-size:12px;font-weight:600;box-shadow:0 5px 15px #aa54260c;transform:rotate(-4deg)}.xs-arrow{position:absolute;top:85px;left:16%;width:72px;height:40px;color:var(--accent-fill)}
.xs-input-badge{position:absolute;left:12%;top:135px;display:flex;gap:7px;transform:rotate(5deg);background:#fff;padding:9px;border:1px solid var(--border);border-radius:15px;box-shadow:0 8px 20px #aa54261c}.xs-input-badge>span{display:flex;align-items:center;justify-content:center;gap:6px;flex-direction:column;min-width:42px;padding:5px;background:var(--bg-elev);border-radius:8px;font-size:9px}.xs-art-note{position:absolute;right:1%;top:51px;width:105px;font:italic 15px/1.4 cursive;transform:rotate(-10deg)}.xs-art-note b{display:block;font:36px/1 cursive;padding-left:3px}.xs-art-caption{position:absolute;bottom:0;left:49%;font-size:9px;color:#7d6b60}
.xs-create{background:#ffffffec;border:1px solid #fff;border-radius:20px;padding:20px 22px 16px;box-shadow:0 9px 34px #242c3a04;scroll-margin-top:16px}.xs-dashboard .xs-create h2{font:700 20px/1.2 var(--font-head);display:flex;align-items:center;gap:7px;letter-spacing:-.5px;margin:0 0 17px}.xs-create-grid{display:grid;grid-template-columns:minmax(290px,36%) minmax(0,1fr);gap:22px}.xs-create h3{font:500 11px/1.3 var(--font);margin:0 0 8px;display:flex;align-items:center;gap:12px;color:var(--text)}.xs-number{width:27px;height:27px;display:inline-flex;justify-content:center;align-items:center;background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent-fill) 30%,#fff);color:var(--accent);border-radius:50%;font-size:12px;flex:none}
.xs-source-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.xs-source-options button{min-height:57px;padding:9px 10px;display:flex;align-items:center;justify-content:center;gap:10px;font:500 10px/1.35 var(--font);color:var(--text);border:1px solid var(--border);border-radius:11px;background:linear-gradient(130deg,var(--bg-elev),var(--bg-elev));transition:background .15s,border-color .15s,transform .15s}.xs-source-options button:hover{border-color:color-mix(in srgb,var(--accent-fill) 30%,#fff);transform:translateY(-1px);background:var(--accent-soft)}.xs-source-options button.selected{border-color:color-mix(in srgb,var(--accent-fill) 30%,#fff);background:var(--accent-soft)}
.xs-styles{display:flex;gap:8px;border:0;padding:0 0 6px;margin:12px 0 0;scroll-margin-top:18px;min-width:0;max-width:100%;overflow-x:auto;scroll-snap-type:x proximity;overscroll-behavior-x:contain}.xs-styles legend{color:var(--muted);font-size:10px;margin-bottom:5px}.xs-styles label{position:relative;flex:0 0 82px;scroll-snap-align:start;border:1px solid var(--border);border-radius:10px;padding:4px 4px 6px;display:flex;flex-direction:column;gap:5px;align-items:center;text-align:center;font-size:10px;line-height:1.2;cursor:pointer;color:var(--muted);background:#fff}.xs-styles label.selected{border-color:var(--accent-fill);color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent-fill)}.xs-styles label:has(input:focus-visible){outline:2px solid var(--accent-fill);outline-offset:2px}.xs-styles input{position:absolute;opacity:0;width:1px;height:1px;margin:0}.xs-styles img{width:72px;height:104px;object-fit:cover;object-position:top;border-radius:7px;background:#1b1a22;display:block}
.xs-example{display:flex;align-items:center;gap:5px;border:0;background:none;color:var(--accent);font:500 10px/1.3 var(--font);padding:9px 0 0;text-align:left}.xs-example .ic{width:12px;height:12px}
.xs-textarea{position:relative}.xs-dashboard .xs-textarea textarea{width:100%;max-width:none;display:block;min-height:92px;height:92px;padding:12px 16px 25px;font:400 12px/1.5 var(--font);border:1px solid var(--border);background:linear-gradient(#fff,var(--bg-elev));resize:vertical;border-radius:11px;color:var(--text)}.xs-textarea textarea::placeholder{color:var(--muted)}.xs-textarea>span{position:absolute;right:11px;bottom:7px;color:var(--muted);font-size:10px;pointer-events:none}
.xs-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}.xs-chips button{padding:4px 9px;border:1px solid var(--border);border-radius:18px;background:#fff;color:var(--muted);font:400 10px/1.4 var(--font);transition:background .15s}.xs-chips button:hover{color:var(--accent);background:var(--accent-soft)}
.xs-params{margin-top:20px}.xs-params h3{margin-bottom:-12px}.xs-param-row{display:flex;align-items:flex-end;gap:17px;margin-left:44px}.xs-param-row .field{margin:0;min-width:0;flex:0 1 182px}.xs-param-row .field label{font-size:12px;color:var(--muted);margin-bottom:3px}.xs-param-row select{height:36px;padding:5px 10px;font-size:12px;border:1px solid var(--border);border-radius:11px;background:#fff;color:var(--text)}.xs-param-row .xs-generate{margin-left:auto;flex:none;min-height:41px;gap:8px;padding:8px 18px}.xs-generate:disabled{opacity:.6}.xs-script-hint{font-size:10px;line-height:1.3;color:var(--muted);margin:7px 0 0 44px}
.xs-dashboard .xp-mine{margin-top:28px;min-width:0;scroll-margin-top:20px}.xs-dashboard .xp-mine>h2{font-size:23px;line-height:1.3;letter-spacing:-.6px;margin:0 0 3px}.xs-library-sub{font-size:13px;color:var(--muted);margin:0 0 12px}
.xs-library-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}.xs-filters{display:flex;gap:5px;flex-wrap:wrap}.xs-filters button{display:flex;align-items:center;gap:5px;border:1px solid transparent;background:transparent;border-radius:17px;color:var(--muted);font:500 11px var(--font);padding:7px 9px}.xs-filters button span{padding:1px 5px;border-radius:6px;background:var(--border);font-size:10px}.xs-filters .active{border-color:var(--accent-fill);color:var(--accent);background:#fff}.xs-filters .active span{background:var(--accent-fill);color:var(--on-accent)}
.xs-library-tools{display:flex;align-items:center;gap:14px;margin-left:auto}.xs-search{display:flex;align-items:center;gap:9px;border:1px solid var(--border);border-radius:12px;min-width:140px;padding:0 12px;height:36px;background:#fff;color:var(--muted)}.xs-search input{border:0;background:transparent;outline:0;min-width:0;width:170px;font:400 11px var(--font);color:var(--text)}.xs-search input::placeholder{color:var(--muted)}.xs-library-tools>select{height:36px;width:145px;border:1px solid var(--border);border-radius:11px;background:#fff;padding:0 10px;color:var(--muted);font:400 11px var(--font)}.xs-layout{display:flex;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#fff}.xs-layout button{border:0;background:transparent;color:var(--muted);display:grid;place-items:center;height:34px;width:36px}.xs-layout .active{background:var(--bg-elev);color:var(--text)}
.xs-dashboard .xp-videos{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.xs-dashboard .xp-video{min-width:0;position:relative;border-color:var(--border);border-radius:13px;box-shadow:0 3px 9px #10182802;transition:transform .18s,box-shadow .18s}.xs-dashboard .xp-video:hover{transform:translateY(-2px);box-shadow:0 8px 22px #1523400c}.xs-dashboard .xp-player{aspect-ratio:16/9;max-height:none;height:auto;object-fit:cover;border-radius:12px 12px 0 0;background:var(--text)}.xs-dashboard .xp-player-empty{aspect-ratio:16/9;background:radial-gradient(at 30% 30%,var(--text),var(--text));color:var(--border-strong);overflow:hidden}.xs-dashboard .xp-player-empty>.ic{width:27px;height:27px}.xs-dashboard .xp-vbody{padding:10px 10px 8px;gap:5px;min-width:0;flex:1}.xs-dashboard .xp-vtitle{font:600 12px/1.35 var(--font);color:var(--text);min-width:0;display:block;max-width:100%;padding:0;border:0;background:none;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.xs-dashboard .xp-small{font:400 10px/1.4 var(--font);color:var(--muted)}.xs-dashboard .xs-card-status{position:absolute;left:7px;top:7px;border-radius:15px;border:0;background:var(--accent-soft);color:var(--accent);padding:3px 8px;font:500 9px/1.3 var(--font);z-index:2}.xs-dashboard .xs-card-status.ok{background:#e5f9ed;color:#177b43}.xs-dashboard .xs-card-status.generating{background:#e4efff;color:#1463b5}.xs-dashboard .xs-card-status.bad{background:#ffeded;color:#b63636}
.xs-dashboard .xp-vbody>.row{gap:6px;margin-top:3px}.xs-dashboard .xp-vbody>.row>a{min-height:26px;height:26px;font-size:10px;gap:4px;padding:2px 6px;border-radius:7px}.xs-dashboard .xp-vbody>.row .ic{width:12px;height:12px}.xs-dashboard .xp-vbody .icon-btn{width:27px;height:27px;color:var(--muted)}.xs-dashboard .xp-video .menu{z-index:20;min-width:165px;top:30px;font-size:12px}.xs-dashboard .xp-prog{height:3px;border-radius:3px}
.xs-render-ring{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:conic-gradient(var(--accent-fill) var(--render-progress),#ffffff35 0);padding:4px;margin-top:14px}.xs-render-ring strong{width:44px;height:44px;background:var(--text);border-radius:50%;display:grid;place-items:center;color:white;font-size:12px}
.xs-draft-cover{display:flex;align-items:center;justify-content:center;background:radial-gradient(at 60% 20%,var(--accent-soft),var(--bg-elev));aspect-ratio:16/9;border-radius:12px 12px 0 0;color:var(--accent-fill)}.xs-draft-cover>.ic{width:32px;height:32px}.xs-draft-card .btn{align-self:flex-start;font-size:10px;min-height:26px;height:26px;gap:5px;padding:3px 7px}
.xs-dashboard .xp-videos.xs-list-view{grid-template-columns:1fr}.xs-list-view .xp-video{display:grid;grid-template-columns:180px minmax(0,1fr);gap:3px;min-height:110px}.xs-list-view .xp-player,.xs-list-view .xs-draft-cover{height:100%;max-height:140px;border-radius:12px 0 0 12px;object-fit:cover}.xs-list-view .xp-vbody>.row{margin-top:auto}
.xs-dashboard .xp-empty-list{border:1px dashed var(--border);border-radius:16px;min-height:265px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:linear-gradient(140deg,#fff,var(--accent-soft));padding:24px}.xs-dashboard .xp-empty-img{width:80px;height:60px;display:block;border-radius:16px;overflow:hidden;margin-bottom:10px}.xs-dashboard .xp-empty-list h3{font-size:20px;margin:0 0 7px}.xs-dashboard .xp-empty-list p{font-size:12px;max-width:470px;margin-bottom:14px}.xs-dashboard .xp-empty-list .row{justify-content:center;gap:10px}.xs-dashboard .xp-empty-list .btn{font-size:11px;min-height:36px}
.xs-notice{border:1px solid color-mix(in srgb,var(--accent-fill) 30%,#fff);background:#fff8ee;color:#80552e;display:flex;gap:10px;align-items:center;padding:12px 14px;border-radius:12px;margin:0 0 14px;font-size:12px}.xs-error{border-color:#f1ccc8;background:#fff5f3;color:#983e36}.xs-notice .btn{margin-left:auto}.xs-no-results{display:flex;flex-direction:column;align-items:center;text-align:center;padding:40px 20px;border:1px dashed var(--border);border-radius:16px;background:#fff;color:var(--muted)}.xs-no-results h3{margin:12px 0 5px;color:var(--text)}.xs-no-results p{font-size:12px;margin-bottom:15px}.xs-dashboard .xp-skel-card{height:185px;background:linear-gradient(110deg,var(--bg-elev),var(--bg-elev),var(--bg-elev));border-radius:13px}
@media(min-width:1700px){.xs-dashboard{max-width:1450px;margin:auto}.xs-hero h1{font-size:42px}}
@media(max-width:1350px){main.container:has(>.xs-shell){padding-left:26px;padding-right:26px}.xs-hero-copy{width:60%}.xs-art-note{display:none}.xs-art-front{left:58%;width:130px}.xs-art-back{left:32%}.xs-create-grid{grid-template-columns:36% minmax(0,1fr);gap:17px}.xs-source-options{grid-template-columns:repeat(2,minmax(0,1fr))}.xs-source-options button{min-height:49px}.xs-param-row{gap:10px;flex-wrap:wrap}.xs-param-row .field{flex:1 1 100px}.xs-param-row .xs-generate{margin-top:2px}.xs-params h3{margin-bottom:5px}.xs-script-hint{max-width:360px}.xs-dashboard .xp-videos{grid-template-columns:repeat(4,minmax(0,1fr))}.xs-library-tools{gap:8px}.xs-library-toolbar{gap:10px}}
@media(max-width:1100px){.xs-sidebar{width:206px;padding-right:14px}.xs-sidebar nav{margin-right:-5px}.xs-sidebar nav>a,.xs-sidebar nav>button{padding-left:28px;font-size:12px}.xs-sidebar .xs-new{padding:0 9px;gap:6px}.xs-sidebar .xs-new span{margin:0}.xs-logo{font-size:21px;padding-left:4px}main.container:has(>.xs-shell){margin-left:206px;padding:0 22px 36px}body:has(.xs-shell) .header{margin-left:206px}body:has(.xs-shell) .header-inner{padding:0 22px}body:has(.xs-shell) .header-right{gap:15px}.xs-hero-copy{width:65%}.xs-dashboard .xs-hero h1{font-size:28px;letter-spacing:-1px}.xs-hero p{font-size:12px}.xs-art{width:45%}.xs-art-back,.xs-idea,.xs-arrow,.xs-art-note{display:none}.xs-art-front{left:auto;right:12%;width:131px}.xs-input-badge{left:6%;top:144px;transform:rotate(-4deg);padding:6px}.xs-art-caption{left:auto;right:9%;bottom:-1px}.xs-create{padding:18px}.xs-create-grid{grid-template-columns:36% minmax(0,1fr)}.xs-source-options button{font-size:9px;gap:6px;padding:8px 6px}.xs-source-options .ic{width:15px;height:15px}.xs-dashboard .xp-videos{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px) and (min-width:701px){.xs-sidebar{width:72px;padding:17px 12px}.xs-sidebar .xs-logo{padding:0;justify-content:center}.xs-logo>span,.xs-sidebar nav>a>span:not(.ic),.xs-sidebar nav>button>span:not(.ic),.xs-sidebar .xs-new>span:not(.ic),.xs-plan,.xs-help>span:not(.ic){display:none}.xs-sidebar .xs-new{margin:29px 0 21px;min-height:42px;justify-content:center;padding:0}.xs-sidebar nav{margin:0 -12px;gap:6px}.xs-sidebar nav>a,.xs-sidebar nav>button{padding:0;justify-content:center;border-radius:0 12px 12px 0;margin-right:8px;height:44px}.xs-help{margin-top:auto;justify-content:center;padding:20px 0;margin-left:0;margin-right:0}.xs-sidebar .ic{width:20px;height:20px}main.container:has(>.xs-shell){margin-left:72px}body:has(.xs-shell) .header{margin-left:72px}.xs-hero{height:220px}.xs-hero-copy{width:68%}.xs-param-row{margin-left:0}.xs-script-hint{margin-left:0}.xs-params{margin-top:16px}.xs-library-tools{margin-left:0;flex:1}.xs-search{flex:1}.xs-search input{width:100%}}
@media(max-width:700px){main.container:has(>.xs-shell){margin-left:0;padding:0 16px 32px}body:has(.xs-shell) .header{margin-left:0;height:58px}body:has(.xs-shell) .header-inner{padding:0 16px 0 55px;gap:10px}body:has(.xs-shell) .header-link::before{display:none}body:has(.xs-shell) .header-right{gap:12px;margin-left:auto}body:has(.xs-shell) .header .quota{display:none}.xs-nav-toggle{display:grid;position:absolute;left:13px;top:13px;z-index:40;height:32px;width:32px}.xs-sidebar{width:246px;padding:18px 20px 0 22px;transform:translateX(-110%);visibility:hidden;transition:transform .2s,visibility .2s;z-index:70}.xs-sidebar.is-open{transform:translateX(0);visibility:visible}.xs-nav-close{display:grid;position:absolute;right:10px;top:16px;height:30px;width:30px}.xs-scrim{display:block;position:fixed;inset:0;z-index:65;border:0;background:rgba(20,16,12,.35)}.xs-hero{height:auto;min-height:188px;padding:23px 0}.xs-hero-copy{width:100%}.xs-dashboard .xs-hero h1{font-size:29px;line-height:1.08;letter-spacing:-1px}.xs-eyebrow{margin-bottom:11px}.xs-hero p{font-size:12px;max-width:470px}.xs-art{display:none}.xs-create{border-radius:16px;padding:18px 16px}.xs-dashboard .xs-create h2{font-size:18px;margin-bottom:17px}.xs-create-grid{display:flex;flex-direction:column;gap:20px}.xs-create h3{font-size:12px;margin-bottom:9px}.xs-source-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.xs-source-options button{min-height:49px;font-size:11px;gap:8px;justify-content:flex-start;padding:9px 12px}.xs-source-options .ic{width:18px;height:18px}.xs-styles{margin-top:12px}.xs-styles legend{font-size:11px}.xs-styles label{font-size:11px}.xs-example{font-size:10px;padding-top:12px}.xs-textarea textarea{min-height:110px}.xs-chips{gap:7px}.xs-chips button{font-size:10px}.xs-params{margin-top:17px}.xs-params h3{margin-bottom:10px}.xs-param-row{margin-left:0;display:grid;grid-template-columns:1fr 1fr;gap:12px}.xs-param-row .field{min-width:0}.xs-param-row .field label{font-size:12px}.xs-param-row select{height:40px}.xs-param-row .xs-generate{grid-column:1/-1;width:100%;margin:1px 0 0;min-height:43px}.xs-script-hint{font-size:10px;margin:8px 0 0}.xs-dashboard .xp-mine{margin-top:25px}.xs-dashboard .xp-mine>h2{font-size:22px}.xs-library-sub{font-size:12px;margin-bottom:13px}.xs-library-toolbar{display:block}.xs-filters{gap:1px;flex-wrap:wrap;margin-bottom:12px}.xs-filters button{font-size:10px;padding:6px 7px;gap:4px}.xs-library-tools{display:grid;grid-template-columns:minmax(0,1fr) 74px;gap:9px}.xs-search{grid-column:1/-1;min-width:0;height:40px}.xs-search input{width:100%;font-size:12px}.xs-library-tools>select{width:100%;height:36px}.xs-layout{justify-self:end}.xs-dashboard .xp-videos{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.xs-dashboard .xp-vtitle{font-size:12px}.xs-dashboard .xp-vbody{padding:9px}.xs-dashboard .xp-vbody>.row{flex-wrap:wrap}.xs-dashboard .xp-empty-list{padding:24px 18px}.xs-dashboard .xp-empty-list .btn{font-size:11px;width:100%}.xs-dashboard .xp-empty-list h3{font-size:20px}.xs-list-view .xp-video{grid-template-columns:120px minmax(0,1fr)}.xs-notice{flex-wrap:wrap}.xs-notice .btn{margin-left:28px}.xs-skip{left:52px}}
@media(max-width:430px){.xs-dashboard .xp-videos{grid-template-columns:1fr}.xs-dashboard .xp-videos.xs-list-view{grid-template-columns:1fr}.xs-list-view .xp-video{grid-template-columns:105px minmax(0,1fr)}.xs-dashboard .xp-videos:not(.xs-list-view) .xp-player,.xs-dashboard .xp-videos:not(.xs-list-view) .xs-draft-cover{max-height:200px}.xs-dashboard .xs-hero h1{font-size:28px}}
@media(prefers-reduced-motion:reduce){.xs-dashboard *,.xs-dashboard *::before,.xs-dashboard *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.xs-dashboard .xp-video:hover,.xs-source-options button:hover{transform:none}}
/* Ajustements après comparaison à la référence et navigation clavier. */
.xs-params h3{margin-bottom:5px}.xs-script-hint{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;margin:0}.xs-create h3{font-size:12px}.xs-source-options button{font-size:11px}.xs-chips button{font-size:11px}.xs-preview-error{position:absolute;inset:0;display:grid;place-items:center;color:var(--border-strong);font-size:11px;background:var(--text)}.xs-video-cover{position:relative;border-radius:12px 12px 0 0;overflow:hidden}.xs-duration{position:absolute;bottom:8px;right:8px;color:#fff;background:#111827d9;border-radius:4px;padding:1px 5px;font:600 10px/1.5 var(--font);pointer-events:none}.xs-video-cover:focus-within .xs-duration,.xs-video-cover:hover .xs-duration{display:none}.xs-more{display:flex;margin:20px auto 0}.xs-list-view .xs-video-cover{border-radius:12px 0 0 12px}.xs-dashboard .xp-video:has(.menu){z-index:10}.xs-dashboard .xp-video .menu button:focus-visible{outline-offset:-3px}.xs-source-options button,.xs-chips button,.xs-filters button{min-height:30px}
@media(min-width:701px){.xs-source-options button{min-height:57px}}
@media(max-width:700px){.xs-params h3{margin-bottom:10px}.xs-chips button{min-height:34px}.xs-filters button{min-height:36px}.xs-source-options button{min-height:49px}}

@media(min-width:701px) and (max-width:900px){.xs-input-badge{display:none}.xs-art{width:32%}.xs-hero-copy{width:72%}}

.xs-preview-button{position:absolute;inset:0;display:grid;place-items:center;width:100%;height:100%;border:0;background:transparent;color:white;opacity:0;transition:opacity .15s}.xs-preview-button>.ic{width:35px;height:35px;padding:8px;border-radius:50%;background:#141b2da6}.xs-video-cover:hover .xs-preview-button,.xs-preview-button:focus-visible{opacity:1}.xs-video-cover .xs-preview-button:focus-visible{outline-offset:-4px}.xs-dashboard .xp-videos{align-items:start}
@media(hover:none){.xs-preview-button{opacity:1}}
.xs-art::before{box-sizing:border-box;max-width:70%;max-height:95%}

/* Coque produit commune : Smart Clipper et TikTok Remix reprennent le gabarit de l'Explainer (héros, carte en étapes, « Mes vidéos »). */
.sc-dashboard>.xs-hero,.tt-dashboard>.xs-hero{margin-top:0}
.xs-source-options a{min-height:57px;padding:9px 10px;display:flex;align-items:center;justify-content:center;gap:10px;font:500 11px/1.35 var(--font);color:var(--text);border:1px solid var(--border);border-radius:11px;background:linear-gradient(130deg,var(--bg-elev),var(--bg-elev));text-align:center;text-decoration:none;transition:background .15s,border-color .15s,transform .15s}.xs-source-options a:hover{border-color:color-mix(in srgb,var(--accent-fill) 30%,#fff);transform:translateY(-1px);background:var(--accent-soft)}
.xs-source-options button.selected{box-shadow:0 0 0 1px var(--accent-fill);color:var(--accent)}
.sc-sources{grid-template-columns:repeat(2,minmax(0,1fr))}
.sc-input{margin:10px 0 18px}.sc-input .dash-url{display:flex;margin:0}.sc-input .dash-url .input{width:100%;max-width:none;height:42px;border-radius:11px;border:1px solid var(--border);font-size:13px}.sc-input .dropzone{padding:18px 14px;border-radius:11px;border-color:color-mix(in srgb,var(--accent-fill) 30%,#fff);background:var(--accent-soft)}.sc-input .dropzone p{margin:0;font-size:12px}
.sc-goals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.sc-goals button{display:flex;align-items:center;gap:10px;text-align:left;padding:9px 11px;min-height:54px;border:1px solid var(--border);border-radius:11px;background:linear-gradient(130deg,var(--bg-elev),var(--bg-elev));color:var(--text);transition:background .15s,border-color .15s}.sc-goals button:hover{border-color:color-mix(in srgb,var(--accent-fill) 30%,#fff);background:var(--accent-soft)}.sc-goals button.selected{border-color:var(--accent-fill);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent-fill);color:var(--accent)}.sc-goals b{display:block;font:600 11px/1.3 var(--font)}.sc-goals small{display:block;font-size:10px;color:var(--muted);line-height:1.3}.sc-goals .ic{color:var(--accent-fill)}
.sc-optional{font-size:10px;color:var(--muted);font-weight:400;margin-left:-4px}
.sc-res{display:flex;flex-direction:column;gap:6px;margin-bottom:6px}.sc-label{font-size:11px;color:var(--muted)}.sc-res-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:6px}.sc-res-row>div{display:flex;flex-direction:column;gap:4px;min-width:0}.sc-res-row .input{width:100%;max-width:none;height:38px;min-height:38px;border-radius:11px;border:1px solid var(--border);font-size:12px;padding:8px 10px;resize:vertical}.sc-res .xs-textarea textarea{width:100%;min-height:70px;height:70px;padding:10px 14px 22px;font:400 12px/1.5 var(--font);border:1px solid var(--border);border-radius:11px;resize:vertical}
.sc-dashboard .xs-param-row{margin-left:44px}.sc-hint{font-size:10px;line-height:1.4;color:var(--muted);margin:8px 0 0 44px}
.sc-dashboard .xs-params h3{margin-bottom:8px}
.sc-art-source{width:170px;height:100px;left:4%;top:6px;transform:rotate(-5deg)}.sc-art-source img{object-position:center}.sc-art-arrow{left:9%;top:112px;transform:rotate(15deg)}
.sc-video .xs-video-cover{display:block}.sc-video .xp-player{aspect-ratio:16/9}.sc-video .vc-progress{margin:2px 0}.sc-video .row .btn{min-height:26px;height:26px;font-size:10px;gap:4px;padding:2px 7px;border-radius:7px}.sc-video .row .ic{width:12px;height:12px}.sc-video .row{gap:6px;margin-top:3px;flex-wrap:wrap}.sc-video .tag{font-size:9px}
.sc-dashboard .wait{margin:0 0 18px}.sc-dashboard .dash-preview{margin-top:24px}
@media(max-width:1350px){.sc-art-source{width:160px;height:94px}}
@media(max-width:1100px){.sc-art-source,.sc-art-arrow{display:none}.sc-goals{grid-template-columns:1fr}}
@media(max-width:900px){.sc-dashboard .xs-param-row,.sc-hint{margin-left:0}}
@media(max-width:700px){.xs-sidebar.is-open{background:#fff}.sc-goals{grid-template-columns:1fr 1fr}.sc-res-row{grid-template-columns:1fr}.sc-dashboard .xs-param-row{grid-template-columns:1fr 1fr 1fr}.xs-source-options a{min-height:49px;font-size:11px;gap:8px;justify-content:flex-start;padding:9px 12px;text-align:left}}
@media(max-width:430px){.sc-goals{grid-template-columns:1fr}.sc-dashboard .xs-param-row{grid-template-columns:1fr 1fr}}
.vp-shell{padding-top:28px}@media(max-width:700px){.vp-shell{padding-top:18px}}
/* TikTok Remix dans le gabarit */
.tt-dashboard.xs-dashboard{display:block;max-width:none;margin:0;padding:0}
@media(min-width:1700px){.tt-dashboard.xs-dashboard{max-width:1450px;margin:auto}}
.tt-dashboard>.tt-alert,.tt-dashboard>.tt-info,.tt-dashboard>p[role=status]{margin:0 0 14px}
.tt-dashboard #tt-publish{margin-top:22px;outline:none;scroll-margin-top:16px}
.tt-dashboard .xs-create .tt-account{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;border:1px solid var(--border);border-radius:12px;padding:12px 14px;background:#fff;box-shadow:none}
.tt-dashboard .xs-create .tt-account h2{font-size:14px;margin:0}.tt-dashboard .xs-create .tt-account-info p{font-size:11px;margin:2px 0 0}.tt-dashboard .xs-create .tt-avatar{width:42px;height:42px}
.tt-dashboard .xs-create .tt-permission-chips{margin:0;flex-basis:100%;align-items:center}.tt-refresh-perms{display:inline-flex;align-items:center;gap:5px;font-size:10px;color:var(--accent);margin-left:auto}.tt-refresh-perms .ic{width:12px;height:12px}
.tt-dashboard .xs-create .tt-quick-modes{display:grid;grid-template-columns:1fr 1fr auto;gap:9px;margin:0 0 0 44px;align-items:stretch}.tt-dashboard .xs-create .tt-quick-modes>button:not(.btn){border:1px solid var(--border);background:linear-gradient(130deg,var(--bg-elev),var(--bg-elev));padding:9px 11px}.tt-dashboard .xs-create .tt-quick-modes>button:disabled{opacity:.55;cursor:not-allowed}.tt-dashboard .xs-create .tt-quick-modes .xs-generate{align-self:center;min-height:41px;padding:8px 18px}
.tt-dashboard .xs-create .tt-import{display:block;margin-top:12px;padding:12px;border:1px solid var(--border);border-radius:12px;box-shadow:none}.tt-dashboard .xs-create .tt-import .tt-section-heading{margin-bottom:8px}.tt-dashboard .xs-create .tt-import h2{font-size:13px}
.tt-dashboard .xs-create h3+.tt-account{margin-bottom:4px}
.tt-art-pill{display:inline-flex;align-items:center;gap:6px}.tt-art-pill .ic{background:#24a166;border-radius:50%;color:#fff;width:16px;height:16px;padding:3px}
.tt-dashboard .tt-history{border:0;padding:0}.tt-post-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;align-items:start}.tt-post-list.xs-list-view{grid-template-columns:1fr}
.tt-dashboard .tt-analytics{margin-top:22px}
@media(max-width:1350px){.tt-dashboard .xs-create .tt-quick-modes{grid-template-columns:1fr 1fr}.tt-dashboard .xs-create .tt-quick-modes .xs-generate{grid-column:1/-1;justify-self:end}}
@media(max-width:900px){.tt-dashboard .xs-create .tt-quick-modes{margin-left:0}}
@media(max-width:700px){.tt-dashboard .xs-create .tt-quick-modes{grid-template-columns:1fr}.tt-dashboard .xs-create .tt-quick-modes .xs-generate{width:100%}.tt-post-list{grid-template-columns:1fr}}
.ex-page{padding-top:28px}.ex-page .ex-title{font:700 clamp(26px,2.3vw,34px)/1.1 var(--font-head);letter-spacing:-1px;margin:0 0 6px;color:var(--text)}
@media(max-width:700px){.ex-page{padding-top:18px}}

/* Partenariats (web/src/pages/partners.rs) : grilles et champs simples, sur le gabarit xs-* */
.pt-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.pt-card { display: flex; flex-direction: column; gap: 4px; padding: 14px; text-decoration: none; color: inherit; }
.pt-row { display: flex; flex-wrap: wrap; gap: 10px; align-items: end; margin: 8px 0; }
.pt-field { display: flex; flex-direction: column; gap: 4px; font-size: .85rem; min-width: 160px; }
.pt-checks { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 8px 0; }
.pt-checks label { display: inline-flex; gap: 6px; align-items: center; }
/* galerie de styles dans l'étape « Sous-titres » : une ligne pleine au-dessus de couleur / langue / bouton */
.sc-dashboard .xs-param-row{flex-wrap:wrap}.sc-stg{flex:1 1 100%;grid-column:1/-1;min-width:0;max-width:620px}
.wait-do .stg{margin:10px 0 14px;max-width:560px}
/* Bibliothèque (/explainer/library) : bande des styles, recherche, familles, grille chargée par pages, fiche d'un élément. */
.xl-page{display:flex;flex-direction:column;gap:16px;padding-top:24px}
.xl-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.xl-head h1{font-size:30px;letter-spacing:-1px;margin:0 0 4px}.xl-head p{margin:0;font-size:13px}
.xl-styles{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 10px;scroll-snap-type:x proximity}
.xl-style{flex:none;width:96px;display:flex;flex-direction:column;gap:3px;padding:6px;border:1px solid var(--border);border-radius:12px;background:var(--surface);text-align:left;font:inherit;color:var(--text);scroll-snap-align:start}
.xl-style img{width:100%;height:auto;aspect-ratio:9/16;object-fit:cover;border-radius:8px;background:var(--text)}
.xl-style[aria-pressed="true"]{border:2px solid var(--accent-fill);padding:5px;box-shadow:0 6px 18px #ff671d22}
.xl-style-name{font-size:11px;font-weight:600;line-height:1.2}.xl-style-n{font-size:10px;color:var(--muted)}
.xl-tools{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.xl-search{flex:1 1 320px;max-width:560px}.xl-search input{width:100%}
.xl-count{margin:0;font-size:12px;color:var(--muted)}
.xl-chips{display:flex;gap:6px;overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}.xl-chips .xp-chip{flex:none}.xl-chips .muted{margin-left:5px;font-size:11px}
.xl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.xl-grid.xl-tall{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}
.xl-grid.xl-tall .xp-tile img{aspect-ratio:9/16;object-position:center}
.xl-grid .xp-tile{contain-intrinsic-size:auto 150px}
.xl-more{display:flex;justify-content:center;min-height:48px;padding:8px}
.xl-scrim{position:fixed;inset:0;background:#10152599;z-index:80}
.xl-sheet{position:fixed;z-index:81;top:50%;left:50%;transform:translate(-50%,-50%);width:min(760px,calc(100vw - 32px));max-height:calc(100dvh - 48px);overflow:auto;display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:20px;padding:20px;background:var(--surface);border-radius:18px;box-shadow:0 20px 60px #10152555}
.xl-sheet:focus{outline:none}
.xl-sheet-x{position:absolute;right:10px;top:10px}
.xl-sheet-img{width:100%;height:auto;aspect-ratio:180/130;object-fit:contain;image-rendering:pixelated;background:#0e0d0c;border-radius:10px}
.xl-sheet-img.tall{aspect-ratio:9/16}
.xl-sheet-body h2{margin:0 30px 2px 0;font-size:22px}.xl-sheet-body h3{font-size:12px;margin:14px 0 6px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}
.xl-sheet-body p{margin:0 0 6px;font-size:13px;line-height:1.45}.xl-mono{font-family:var(--font-mono);font-size:11px!important}
.xl-tags{display:flex;flex-wrap:wrap;gap:5px}.xl-tags span{font-size:11px;padding:2px 7px;border-radius:999px;background:var(--bg-elev);border:1px solid var(--border)}
.xl-sheet-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.xp-see-lib{display:inline-flex;align-items:center;gap:6px;font-size:12px;margin-top:6px}
@media(max-width:700px){.xl-page{padding-top:14px;gap:12px}.xl-head h1{font-size:24px}.xl-head .btn{width:100%}.xl-style{width:76px}.xl-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.xl-grid.xl-tall{grid-template-columns:repeat(3,minmax(0,1fr))}
.xl-sheet{top:auto;bottom:0;left:0;transform:none;width:100%;max-height:92dvh;grid-template-columns:1fr;border-radius:18px 18px 0 0;padding:16px}.xl-sheet-img{max-height:38dvh}.xl-sheet-actions .btn{flex:1 1 100%}}
.xl-anims summary{cursor:pointer;font-size:12px;margin:12px 0 6px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}
.xl-sheet-actions{margin-top:12px}
.xl-sheet-x{background:var(--surface);z-index:1;box-shadow:0 2px 8px #10152522}
/* ===== Finitions de la coque produit (tokens : web/DESIGN.md) ===== */
/* « Nouvelle vidéo » : même taille et même centrage sur toutes les pages (la page vidéo n'a pas .xs-dashboard) */
.xs-sidebar .xs-new{font-size:14px;font-weight:600;justify-content:center;gap:8px;border-radius:var(--r-md)}
.xs-sidebar .xs-new span{flex:none;margin:0}
.xs-sidebar nav>a,.xs-sidebar nav>button{transition:color var(--dur-2),background-color var(--dur-2)}
@media (hover:hover){.xs-sidebar nav>a:not(.active):hover,.xs-sidebar nav>button:hover{color:var(--text);background:var(--bg-elev)}}
/* état vide : pictogramme dans une pastille, pas une photo prise au hasard */
.xp-empty-ico{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--accent-soft);color:var(--accent)}
.xp-empty-ico .ic{width:24px;height:24px}
/* B-roll : vidéos à découper = liste de cartes alignées, pas une suite de titres et de boutons en vrac */
.xs-dashboard .xp-mine h2.bl-pending-h{font-size:var(--fs-md);font-weight:600;letter-spacing:-.01em;margin:var(--s-5) 0 var(--s-3)}
.bl-pending{list-style:none;padding:0;margin:0 0 var(--s-5);display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--s-2)}
.bl-pending li{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);min-height:56px;padding:8px 8px 8px 16px;border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface)}
.bl-pending-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
.bl-pending li .btn{flex:none}
.bl-filters{flex-wrap:wrap;gap:var(--s-2)}
.bl-filters>input[type=search]{flex:2 1 260px}
.bl-filters>select{flex:1 1 200px;width:auto}
.bl-tags{flex-wrap:wrap;gap:6px;margin:var(--s-3) 0}
.bl-tags:empty{display:none}
/* tiroir mobile : glisse avec la courbe de l'app, le voile apparaît en fondu */
@media (max-width:700px){
  .xs-sidebar{transition:transform var(--dur-3) var(--ease-out),visibility var(--dur-3)}
  .xs-scrim{transition:opacity var(--dur-3) var(--ease-out)}
  @starting-style{.xs-scrim{opacity:0}}
}
/* carte de départ : façon d'écrire (IA / mon script), indications, voix */
.xs-mode{display:inline-flex;gap:2px;padding:3px;margin:0 0 12px 44px;border:1px solid var(--border);border-radius:999px;background:var(--bg-elev)}
.xs-mode button{border:0;background:none;padding:5px 12px;border-radius:999px;font:500 12px/1.3 var(--font);color:var(--muted);cursor:pointer;min-height:30px}
.xs-mode button.selected{background:#fff;color:var(--text);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.xs-dashboard .xs-textarea textarea.xs-mine{min-height:180px;height:180px}
.xs-more-opts{margin-top:10px}.xs-more-opts summary{cursor:pointer;width:max-content}.xs-more-opts textarea{width:100%;max-width:none;margin-top:6px;border-radius:11px;font-size:12px}
.xs-param-row .xs-voice{flex:1 1 240px}.xs-voice .xp-voice-row select{height:36px;font-size:12px;border-radius:11px}
@media(max-width:900px){.xs-mode{margin-left:0}}
.xs-mine-hint{margin:8px 0 0}
