:root {
  color-scheme: dark;
  --bg: #090910;
  --panel: rgba(20, 19, 30, .88);
  --panel-2: #171622;
  --line: rgba(255,255,255,.09);
  --line-strong: rgba(255,255,255,.16);
  --text: #f4f1ff;
  --muted: #9d9aae;
  --accent: #aa8cff;
  --accent-2: #7161ff;
  --cyan: #63e6ff;
  --green: #66e3a4;
  --danger: #ff7b96;
  --radius: 18px;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; min-height: 100vh; background: radial-gradient(circle at 54% -20%, #242039 0, #0d0c15 34%, var(--bg) 67%); color: var(--text); font-size: 15px; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
.noise { position: fixed; inset: 0; pointer-events: none; opacity: .035; z-index: 10; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E"); }
.topbar { height: 112px; display: flex; align-items: flex-end; justify-content: space-between; padding: 0 24px 12px; border-bottom: 1px solid var(--line); background: rgba(9,9,16,.78); backdrop-filter: blur(18px); position: sticky; top: 0; z-index: 9; }
.brand { display: flex; align-items: center; gap: 11px; text-decoration: none; color: var(--text); }
.brand-mark { width: 35px; height: 35px; border-radius: 11px; background: linear-gradient(145deg, var(--accent), #6250f4); display: grid; place-items: center; box-shadow: 0 8px 24px #6e54ff4a; transform: rotate(-5deg); }
.brand-mark span { width: 0; height: 0; border-top: 6px solid transparent; border-bottom: 6px solid transparent; border-left: 10px solid white; margin-left: 3px; }
.brand strong { display: block; font-size: 15px; letter-spacing: -.02em; }
.brand small { display: block; color: var(--muted); font-size: 10px; letter-spacing: .15em; text-transform: uppercase; margin-top: 1px; }
.top-actions { display: flex; align-items: center; gap: 10px; }
.mode-tabs{position:absolute;left:50%;top:7px;transform:translateX(-50%);display:flex;gap:5px;padding:5px;border:1px solid var(--line);border-radius:16px;background:#14131ee8;box-shadow:0 14px 40px #0006}.mode-tabs a{display:grid;grid-template-columns:30px 1fr;align-items:center;gap:8px;min-width:185px;padding:6px 9px;border-radius:11px;color:var(--muted);text-decoration:none}.mode-tabs a:hover,.mode-tabs a.active{color:var(--text);background:#ffffff0c}.mode-tabs b{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#254f45;color:#8ef0c9;font-size:11px}.mode-tabs a.active b{background:linear-gradient(135deg,var(--accent),var(--cyan));color:#0b0a12}.mode-tabs strong,.mode-tabs span,.mode-tabs small{display:block}.mode-tabs span{font-size:12px;font-weight:750}.mode-tabs small{margin-top:2px;color:var(--muted);font-size:8px;font-weight:600}
.save-state { color: var(--muted); font-size: 13px; display: flex; align-items: center; gap: 7px; margin-right: 8px; }
.save-state span { width: 7px; height: 7px; border-radius: 50%; background: #6e6a7c; }
.save-state.saved span { background: var(--green); box-shadow: 0 0 12px #66e3a477; }
.button { height: 38px; border-radius: 11px; padding: 0 14px; border: 1px solid transparent; cursor: pointer; transition: .2s ease; }
.button:hover { transform: translateY(-1px); }
.button.ghost { background: #ffffff08; border-color: var(--line); }
.button.ghost:hover { background: #ffffff0e; border-color: var(--line-strong); }
.button.primary { background: linear-gradient(135deg, #b094ff, #7761ff); box-shadow: 0 7px 22px #765eff3c; font-weight: 750; }
.button.guide-button { background: #a88cff16; border-color: #a88cff42; color: #c8b8ff; font-weight: 750; }
.button.key-button { background:#63e6ff12; border-color:#63e6ff38; color:#9becff; font-weight:750 }.button.key-button span{color:#ffb36b}.button.key-button.ready span{color:var(--green);text-shadow:0 0 9px #66e3a488}
.button.small { height: 32px; font-size: 13px; }
@media(max-width:1180px){.mode-tabs{position:fixed;top:8px;z-index:30}.mode-tabs a{min-width:145px}.mode-tabs small{display:none}.topbar{padding-top:66px;height:128px}}
.studio-shell { display: grid; grid-template-columns: minmax(270px, 330px) minmax(460px, 1fr) minmax(290px, 345px); min-height: calc(100vh - 176px); }
.panel { padding: 24px 20px; background: var(--panel); backdrop-filter: blur(18px); }
.setup-panel { border-right: 1px solid var(--line); }
.pipeline-panel { border-left: 1px solid var(--line); }
.panel-heading, .section-heading { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }
.eyebrow { color: var(--accent); font-weight: 800; font-size: 10px; letter-spacing: .17em; }
h1, h2 { margin: 5px 0 0; font-size: 21px; letter-spacing: -.035em; }
.panel-heading h2 { font-size: 21px; }
.icon-button { border: 1px solid var(--line); width: 32px; height: 32px; border-radius: 10px; background: #ffffff08; cursor: pointer; }
.field { display: block; margin-bottom: 15px; }
.field > span, .style-picker legend { display: block; font-size: 12px; color: #c1bdcf; font-weight: 650; margin-bottom: 7px; }
.field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
input, textarea, select { width: 100%; color: var(--text); background: #0e0e17; border: 1px solid var(--line); border-radius: 11px; padding: 10px 11px; outline: none; transition: .18s; }
textarea { resize: vertical; min-height: 76px; line-height: 1.5; }
input:focus, textarea:focus, select:focus { border-color: #a58affaa; box-shadow: 0 0 0 3px #9e82ff18; }
.input-suffix { position: relative; }.input-suffix input { padding-right: 47px; }.input-suffix span { position: absolute; right: 10px; top: 11px; color: var(--muted); font-size: 12px; }
.style-picker { border: 0; padding: 0; margin: 2px 0 15px; }
.style-card { min-height: 66px; display: grid; grid-template-columns: 62px 1fr 22px; align-items: center; gap: 11px; border: 1px solid var(--line); border-radius: 13px; padding: 8px; margin-bottom: 8px; cursor: pointer; transition: .2s; background: #0f0e18; }
.style-card:hover, .style-card.active { border-color: #a78bfa99; background: #171325; }
.style-card input { position: absolute; opacity: 0; pointer-events: none; }
.style-card strong, .style-card small { display: block; }.style-card strong { font-size: 13px; }.style-card small { color: var(--muted); font-size: 11px; margin-top: 4px; }
.style-card b { display: none; width: 19px; height: 19px; border-radius: 50%; place-items: center; font-size: 11px; background: var(--accent); }.style-card.active b { display: grid; }
.style-art { height: 48px; border-radius: 9px; overflow: hidden; display: block; position: relative; }
.visual-customizer{margin:2px 0 15px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#0f0e18}.customizer-title{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:11px}.customizer-title span{font-size:12px;font-weight:750}.customizer-title small{font-size:9px;color:var(--muted)}.color-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.color-field{display:grid;gap:6px;color:var(--muted);font-size:10px}.color-field input{width:100%;height:34px;padding:3px;border:1px solid var(--line);border-radius:9px;background:#171522;cursor:pointer}.effect-field{margin:11px 0 0}
.header-title-field{margin:11px 0 0}.display-toggles{display:grid;gap:7px;margin-top:10px}.display-toggles>label{display:grid;grid-template-columns:34px 1fr;align-items:center;gap:9px;padding:8px;border:1px solid var(--line);border-radius:10px;cursor:pointer}.display-toggles input{appearance:none;width:32px;height:18px;min-height:18px;padding:0;border:0;border-radius:99px;background:#403c4c;position:relative;cursor:pointer}.display-toggles input:after{content:"";position:absolute;width:14px;height:14px;left:2px;top:2px;border-radius:50%;background:#fff;transition:.2s}.display-toggles input:checked{background:var(--accent)}.display-toggles input:checked:after{transform:translateX(14px)}.display-toggles b,.display-toggles small{display:block}.display-toggles b{font-size:10px}.display-toggles small{margin-top:2px;color:var(--muted);font-size:9px}
.glass-art { background: linear-gradient(145deg, #292047, #11152d); }.glass-art i { position: absolute; border: 1px solid #ffffff55; background: #b99cff38; backdrop-filter: blur(3px); border-radius: 5px; }.glass-art i:nth-child(1){inset:8px 22px 19px 8px}.glass-art i:nth-child(2){inset:20px 8px 8px 21px}.glass-art i:nth-child(3){width:13px;height:13px;border-radius:50%;top:7px;right:8px;background:#63e6ff99}
.comic-art { background: repeating-linear-gradient(-35deg, #ffca3a 0 5px, #ffb31a 5px 10px); border: 2px solid #16111f; display: grid; place-items: center; transform: rotate(-1deg); }.comic-art:after { content:""; position:absolute; inset:3px; border:2px solid #16111f; }.comic-art i { position:relative; z-index:1; font-style:normal; font-weight:1000; color:#231432; transform:rotate(-5deg); font-size:14px; text-shadow:2px 2px #fff; }
.workspace { padding: 24px; min-width: 0; overflow: hidden; }
.preview-card { border: 1px solid var(--line); background: #11101a; border-radius: var(--radius); overflow: hidden; box-shadow: 0 28px 70px #0008; }
.preview-toolbar { height: 43px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 12px; border-bottom: 1px solid var(--line); }
.window-dots { display:flex; gap:6px }.window-dots span { width:8px;height:8px;border-radius:50%;background:#3d3a48 }.window-dots span:first-child{background:#ff6d7e}.window-dots span:nth-child(2){background:#f9c74f}.window-dots span:nth-child(3){background:#66d99a}
.preview-title { display:flex; gap:10px; align-items:center; font-size:10px; letter-spacing:.12em; }.preview-title span { color:var(--accent);font-weight:850 }.preview-title b { color:var(--muted);font-weight:600;letter-spacing:0 }
.preview-toolbar .icon-button { justify-self:end; width:28px;height:28px;border:0;background:transparent;color:var(--muted) }
.stage { --motion-bg:#070916;--motion-primary:#67e8f9;--motion-accent:#9a7cff;aspect-ratio: 16/9; position: relative; overflow: hidden; isolation: isolate; transition: .35s ease; }
.glass-stage { background: radial-gradient(circle at 74% 25%, color-mix(in srgb,var(--motion-accent) 42%,transparent) 0, transparent 26%), linear-gradient(140deg,color-mix(in srgb,var(--motion-accent) 16%,var(--motion-bg)),var(--motion-bg) 60%,color-mix(in srgb,var(--motion-primary) 12%,var(--motion-bg))); }
.stage-grid { position:absolute; inset:0; background-image:linear-gradient(#fff08 1px,transparent 1px),linear-gradient(90deg,#fff08 1px,transparent 1px);background-size:45px 45px;mask-image:linear-gradient(to right,#000,transparent 75%);opacity:.35 }
.stage-image,.stage-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.03);transition:opacity .25s ease}.stage-image.visible,.stage-video.visible{opacity:.68}.stage-image-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,8,18,.92) 0%,rgba(8,8,18,.62) 42%,rgba(8,8,18,.08) 78%);opacity:0}.stage-image.visible~.stage-image-shade,.stage-video.visible~.stage-image-shade{opacity:1}
.orb { position:absolute;border-radius:50%;filter:blur(1px);opacity:.78 }.orb-one{width:34%;aspect-ratio:1;right:-6%;top:-23%;background:radial-gradient(circle at 35% 30%,#fff,var(--motion-accent) 19%,color-mix(in srgb,var(--motion-accent) 72%,#111) 54%,transparent 72%);box-shadow:0 0 80px color-mix(in srgb,var(--motion-accent) 45%,transparent)}.orb-two{width:13%;aspect-ratio:1;right:18%;bottom:11%;background:radial-gradient(circle at 30% 25%,#fff,var(--motion-primary) 22%,color-mix(in srgb,var(--motion-primary) 65%,#0754b8) 61%);box-shadow:0 0 50px color-mix(in srgb,var(--motion-primary) 45%,transparent)}
.stage-content { position:absolute;left:8%;top:50%;transform:translateY(-52%);max-width:65%;z-index:2 }.stage-kicker{font-size:clamp(8px,1vw,13px);letter-spacing:.18em;font-weight:800;color:var(--motion-primary);margin-bottom:14px}.stage h2{font-size:clamp(30px,5.2vw,73px);line-height:.94;margin:0;letter-spacing:-.065em}.stage h2 em{font-style:normal;color:transparent;background:linear-gradient(90deg,var(--motion-accent),var(--motion-primary));background-clip:text}.stage p{font-size:clamp(10px,1.4vw,19px);color:#cac6d7;margin-top:17px}.safe-area{position:absolute;inset:5%;border:1px dashed #fff1;font-size:8px;color:#ffffff22;padding:5px;pointer-events:none}
.comic-stage { background:var(--motion-bg); color:#231329; }.comic-stage .stage-grid{background-image:radial-gradient(#231329 1.4px,transparent 1.4px);background-size:10px 10px;mask-image:none;opacity:.19}.comic-stage .orb-one{width:42%;right:-12%;top:-22%;background:var(--motion-accent);border:9px solid #231329;box-shadow:12px 12px 0 #fff}.comic-stage .orb-two{background:var(--motion-primary);border:7px solid #231329;box-shadow:8px 8px 0 #fff}.comic-stage .stage-content{transform:translateY(-52%) rotate(-2deg)}.comic-stage .stage-kicker{color:#231329}.comic-stage h2{font-family:Impact, Haettenschweiler, sans-serif;text-transform:uppercase;letter-spacing:-.025em;text-shadow:5px 5px 0 #fff;-webkit-text-stroke:2px #231329}.comic-stage h2 em{background:none;color:var(--motion-accent)}.comic-stage p{display:inline-block;background:#fff;border:3px solid #231329;color:#231329;padding:7px 12px;box-shadow:5px 5px 0 #231329;font-weight:800}.comic-stage .safe-area{border-color:#23132922;color:#23132955}
.transport { height: 48px; display: flex; align-items: center; gap: 10px; padding: 0 13px; border-top:1px solid var(--line); color:var(--muted);font-size:11px }.transport input{padding:0;border:0;accent-color:var(--accent);height:3px;flex:1}.play-button{width:29px;height:29px;border-radius:50%;border:0;background:var(--text);color:#17131e;font-size:10px;padding-left:4px;cursor:pointer}.mini-button{border:1px solid var(--line);background:#ffffff08;border-radius:8px;padding:6px 9px;font-size:11px;cursor:pointer}
.scene-section { margin-top: 24px; }.section-heading { margin-bottom:12px }.section-heading h2{font-size:19px}.scene-list{display:grid;gap:8px}.scene-card{display:grid;grid-template-columns:22px 30px 66px 1fr 54px 28px;gap:9px;align-items:center;padding:10px 10px 10px 7px;border:1px solid var(--line);border-radius:13px;background:#12111b;transition:.2s}.scene-card:hover{border-color:var(--line-strong);background:#15141f}.scene-drag,.scene-delete{border:0;background:transparent;color:#6f6b7c;cursor:pointer}.scene-number{width:28px;height:28px;border-radius:8px;background:#8f73ff18;color:#b79fff;display:grid;place-items:center;font-size:11px;font-weight:800}.scene-media{width:66px;height:43px;border:1px dashed #80758f;border-radius:9px;display:grid;place-items:center;position:relative;overflow:hidden;color:#a79caf;font-size:10px;cursor:pointer;background:#0d0c14}.scene-media:hover{border-color:var(--accent);color:#c8b8ff}.scene-media input{position:absolute;opacity:0;pointer-events:none}.scene-thumb,.scene-video-thumb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:none}.scene-media.has-image .scene-thumb,.scene-media.has-video .scene-video-thumb{display:block}.scene-media.has-image span,.scene-media.has-video span{opacity:0}.scene-media.has-image:hover span,.scene-media.has-video:hover span{opacity:1;position:relative;z-index:2;background:#090910cc;padding:4px 6px;border-radius:6px}.scene-fields{display:grid;grid-template-columns:minmax(130px,.42fr) 1fr;gap:10px}.scene-fields label{display:grid;gap:3px;min-width:0}.scene-fields label>span{color:#797486;font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.scene-fields input,.scene-fields textarea{padding:0;border:0;background:transparent;border-radius:0;min-height:auto;resize:none}.scene-fields input{font-weight:750}.scene-fields textarea{font-size:12px;color:var(--muted);line-height:1.35}.scene-duration{display:flex;align-items:center;gap:2px;color:var(--muted);font-size:11px}.scene-duration input{padding:6px;text-align:center}.scene-delete:hover{color:var(--danger)}
.scene-typography{grid-column:1/-1;display:grid;grid-template-columns:minmax(150px,1fr) 96px 96px;gap:9px;padding-top:8px;border-top:1px solid var(--line)}.scene-typography select,.scene-typography input{height:29px;padding:5px 8px;border:1px solid var(--line);border-radius:7px;background:#0d0c14;font-size:10px}.type-size{display:grid;grid-template-columns:1fr 22px;align-items:center}.type-size input{width:100%;text-align:center}.type-size i{font-style:normal;color:var(--muted);font-size:9px;text-align:right}
.scene-visual-controls{grid-column:1/-1;display:grid;grid-template-columns:minmax(220px,1fr) 74px 112px;gap:9px;align-items:end}.scene-visual-controls label{display:grid;gap:3px}.scene-visual-controls label>span{color:#797486;font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.scene-image-prompt{height:32px!important;padding:6px 9px!important;border:1px solid var(--line)!important;border-radius:8px!important;background:#0d0c14!important;font-size:10px!important;font-weight:500!important}.scene-color-field input{width:100%;height:32px;padding:3px;border:1px solid var(--line);border-radius:8px;background:#0d0c14;cursor:pointer}.scene-generate-image{height:32px;border:1px solid #8f73ff55;border-radius:8px;background:#8f73ff16;color:#c8baff;font-size:10px;font-weight:800;cursor:pointer}.scene-generate-image:hover{border-color:#8f73ffaa;background:#8f73ff25}.scene-generate-image:disabled{opacity:.55;cursor:wait}
.scene-extract-controls{grid-column:1/-1;display:grid;grid-template-columns:140px 1fr;gap:9px;align-items:end}.scene-extract-image{height:32px;border:1px solid #22ad8055;border-radius:8px;background:#22ad8010;color:#79d8b8;font-size:10px;font-weight:800;cursor:pointer}.scene-extract-image:hover{background:#22ad8020}.scene-extract-image:disabled{opacity:.45;cursor:not-allowed}.scene-motion-field{display:grid!important;gap:3px}.scene-motion-field>span{color:#797486;font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.scene-motion-texts{min-height:54px!important;padding:7px 9px!important;border:1px solid var(--line)!important;border-radius:8px!important;background:#0d0c14!important;font-size:10px!important;line-height:1.35!important}
.scene-video-controls{grid-column:1/-1;display:grid;grid-template-columns:150px 90px 130px minmax(220px,1fr) 72px 72px 72px 74px;gap:8px;align-items:end;padding:10px;border:1px solid #4f7ea055;border-radius:10px;background:#4f7ea00c}.scene-video-controls[hidden]{display:none}.scene-video-controls label{display:grid;gap:4px}.scene-video-controls label>span{color:#797486;font-size:8px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.scene-video-controls input,.scene-video-controls select,.scene-video-controls textarea{min-height:32px!important;padding:6px 8px!important;border:1px solid var(--line)!important;border-radius:8px!important;background:#0d0c14!important;color:var(--ink)!important;font-size:10px!important}.scene-video-controls input[type=color]{padding:3px!important}.scene-video-toggle{display:flex!important;align-items:center;gap:7px;height:32px}.scene-video-toggle input{width:16px;height:16px;min-height:16px!important}.scene-video-overlay textarea{min-height:48px!important}
.progress-ring{--p:0;width:45px;height:45px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--accent) calc(var(--p)*1%),#2a2836 0);position:relative}.progress-ring:before{content:"";position:absolute;inset:5px;border-radius:50%;background:#171622}.progress-ring span{position:relative;font-size:10px;font-weight:800}.readiness{border:1px solid var(--line);border-radius:13px;padding:12px;background:#0d0d15;margin-bottom:15px}.readiness-head{display:flex;justify-content:space-between;align-items:center;font-size:12px}.readiness-head span{color:var(--muted);font-size:10px}.tool-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.tool-chip{padding:4px 7px;border-radius:7px;font-size:10px;background:#ffffff08;color:var(--muted);border:1px solid var(--line)}.tool-chip.ok{color:var(--green);border-color:#66e3a43b}.tool-chip.missing{color:#ffb77c;border-color:#ffb77c36}.skill-status{display:flex;align-items:flex-start;gap:7px;margin-top:10px;padding-top:9px;border-top:1px solid var(--line);color:var(--muted);font-size:10px;line-height:1.4}.skill-status i{width:7px;height:7px;border-radius:50%;background:#777283;margin-top:3px;flex:0 0 auto}.skill-status.ok{color:#b9dfcc}.skill-status.ok i{background:var(--green);box-shadow:0 0 10px #66e3a466}.skill-status.missing{color:#ffb77c}.skill-status.missing i{background:#ff9d66}
.pipeline-list{display:grid;gap:7px}.pipeline-step{width:100%;display:grid;grid-template-columns:31px 1fr 18px;gap:10px;align-items:center;text-align:left;padding:9px;border:1px solid var(--line);border-radius:12px;background:#11101a;cursor:pointer;transition:.18s}.pipeline-step:hover{border-color:#9d82ff66;background:#171424}.pipeline-step:disabled{opacity:.48;cursor:not-allowed}.step-index{width:28px;height:28px;border-radius:9px;background:#ffffff08;display:grid;place-items:center;color:#aaa6b7;font-size:11px}.pipeline-step strong,.pipeline-step small{display:block}.pipeline-step strong{font-size:12px}.pipeline-step small{font-size:10px;color:var(--muted);margin-top:3px}.pipeline-step i{font-style:normal;color:#6f6b80}.pipeline-step.running{border-color:#a48aff}.pipeline-step.running i{animation:pulse 1s infinite}.pipeline-step.done .step-index{background:#66e3a422;color:var(--green)}.pipeline-step.failed{border-color:#ff7b9655}.render-button{width:100%;height:55px;margin-top:12px;border:0;border-radius:13px;background:linear-gradient(120deg,#a688ff,#6e5af5);box-shadow:0 12px 28px #7259ff36;display:grid;grid-template-columns:1fr auto;grid-template-rows:1fr 1fr;text-align:left;padding:10px 13px;cursor:pointer}.render-button span{font-weight:850;grid-row:1}.render-button small{font-size:10px;opacity:.75;grid-row:2}.render-button b{grid-column:2;grid-row:1/3;align-self:center}.render-button:disabled{filter:grayscale(.65);opacity:.5;cursor:not-allowed}.console-card{margin-top:14px;border:1px solid var(--line);border-radius:12px;background:#090910;overflow:hidden}.console-head{height:32px;padding:0 9px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font-size:10px;color:var(--muted)}.console-head span{display:flex;align-items:center;gap:6px}.console-head i{width:6px;height:6px;border-radius:50%;background:var(--green)}.console-head button{border:0;background:none;color:var(--muted);font-size:10px;cursor:pointer}.console-card pre{height:105px;overflow:auto;white-space:pre-wrap;margin:0;padding:9px;color:#b8d7c8;font:10px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace}
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);background:#f2efff;color:#1c1726;padding:10px 14px;border-radius:10px;box-shadow:0 14px 44px #0009;opacity:0;pointer-events:none;transition:.25s;z-index:20;font-weight:700;font-size:13px}.toast.show{opacity:1;transform:translate(-50%,0)}
.guide-dialog{width:min(680px,calc(100vw - 28px));max-height:calc(100vh - 40px);overflow:auto;color:var(--text);background:#12111b;border:1px solid var(--line-strong);border-radius:20px;padding:0;box-shadow:0 30px 100px #000c}.guide-dialog::backdrop{background:#06050bc4;backdrop-filter:blur(7px)}.guide-head{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:22px 24px 17px;background:#12111bf2;border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.guide-head h2{font-size:23px}.guide-close{width:34px;height:34px;border:1px solid var(--line);border-radius:10px;background:#ffffff08;color:var(--muted);font-size:21px;cursor:pointer}.guide-intro{margin:19px 24px 14px;color:#aaa6b7;line-height:1.55;font-size:13px}.guide-dialog code{color:#c3b3ff;background:#a88cff13;border:1px solid #a88cff25;padding:1px 5px;border-radius:5px;font:12px ui-monospace,SFMono-Regular,Consolas,monospace}.guide-steps{list-style:none;margin:0;padding:0 24px;display:grid;gap:8px}.guide-steps li{display:grid;grid-template-columns:34px 1fr auto;gap:11px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:13px;background:#0d0c14}.guide-steps li>b{width:31px;height:31px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(145deg,#a98cff2b,#6d58ff1b);color:#c6b7ff}.guide-steps strong{font-size:13px}.guide-steps p{margin:3px 0 0;color:var(--muted);font-size:11px;line-height:1.45}.guide-steps li>span{font-size:9px;letter-spacing:.11em;color:#817c8f;font-weight:800}.guide-note{margin:14px 24px;padding:12px 14px;border-radius:12px;background:#ffb36b0b;border:1px solid #ffb36b2a}.guide-note strong{font-size:12px;color:#ffd0a3}.guide-note p{margin:5px 0 0;color:#b5afbd;font-size:11px;line-height:1.45}.guide-done{margin:0 24px 24px;width:calc(100% - 48px)}
.key-dialog{width:min(480px,calc(100vw - 28px));color:var(--text);background:#12111b;border:1px solid var(--line-strong);border-radius:20px;padding:0;box-shadow:0 30px 100px #000c}.key-dialog::backdrop{background:#06050bc4;backdrop-filter:blur(7px)}.key-head{display:flex;justify-content:space-between;align-items:center;padding:22px 24px 17px;border-bottom:1px solid var(--line)}.key-head h2{font-size:23px}.key-body{padding:20px 24px 24px}.key-security{display:grid;grid-template-columns:25px 1fr;gap:10px;padding:12px;border:1px solid #63e6ff2b;border-radius:12px;background:#63e6ff0a;margin-bottom:17px}.key-security>span{color:#76eaff}.key-security p{margin:0;color:#aaa6b7;font-size:11px;line-height:1.55}.key-state{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px;margin:2px 0 15px}.key-state i{width:7px;height:7px;border-radius:50%;background:#777283}.key-state.ready{color:#a9dfc4}.key-state.ready i{background:var(--green);box-shadow:0 0 10px #66e3a466}.key-save{width:100%}
@keyframes pulse{50%{opacity:.25}}
@media (max-width:1180px){.studio-shell{grid-template-columns:280px 1fr}.pipeline-panel{grid-column:1/-1;border-left:0;border-top:1px solid var(--line);display:grid;grid-template-columns:220px 1fr 260px;gap:14px}.pipeline-panel>.panel-heading{grid-column:1}.readiness{grid-column:1}.pipeline-list{grid-column:2;grid-row:1/4;grid-template-columns:1fr 1fr}.render-button{grid-column:1}.console-card{grid-column:3;grid-row:1/4;margin-top:0}.console-card pre{height:210px}}
@media (max-width:760px){.topbar{padding:0 14px}.save-state,.top-actions .ghost{display:none}.studio-shell{display:block}.panel{border:0;border-bottom:1px solid var(--line)}.workspace{padding:14px}.pipeline-panel{display:block}.pipeline-list{display:grid;grid-template-columns:1fr}.console-card{margin-top:14px}.console-card pre{height:120px}.stage h2{font-size:9vw}.scene-card{grid-template-columns:22px 28px 54px 1fr 28px}.scene-media{width:54px}.scene-duration{display:none}.scene-typography{grid-template-columns:1fr 82px 82px}.scene-visual-controls{grid-template-columns:1fr 62px}.scene-generate-image{grid-column:1/-1}.top-actions .button{font-size:11px;padding:0 9px}.field-grid{grid-template-columns:1fr}.guide-steps li{grid-template-columns:32px 1fr}.guide-steps li>span{display:none}}

/* Friendly mode: one clear path first, technical controls on demand. */
.workflow-strip{height:64px;display:flex;align-items:center;justify-content:center;gap:16px;padding:8px 24px;border-bottom:1px solid var(--line);background:#f8fbf9;position:sticky;top:72px;z-index:29}.workflow-step{display:flex;align-items:center;gap:9px;color:#7c8982}.workflow-step b{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#e8efeb;color:#66736c;font-size:12px}.workflow-step span,.workflow-step strong,.workflow-step small{display:block}.workflow-step strong{font-size:12px;color:#3f4b45}.workflow-step small{font-size:9px;margin-top:1px}.workflow-step.active b{background:#23ae7d;color:#fff;box-shadow:0 6px 16px #23ae7d33}.workflow-step.active strong{color:#087551}.workflow-strip>i{color:#b8c3bd;font-style:normal;font-size:22px}
body:not(.advanced-mode) .advanced-only{display:none!important}body:not(.advanced-mode) .field-grid:has(.advanced-only){grid-template-columns:1fr}.advanced-mode #advancedModeButton{background:#e7f7f0;border-color:#a9dfca;color:#087551}
.cost-estimate{margin:0 0 10px;padding:13px 14px;border:1px solid #cce6da;border-radius:14px;background:linear-gradient(135deg,#f3fbf7,#fff)}.cost-estimate>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.cost-estimate span{font-size:11px;font-weight:750;color:#53625b}.cost-estimate strong{font-size:18px;color:#087551;white-space:nowrap}.cost-estimate small{display:block;margin-top:6px;color:#77847e;font-size:9px;line-height:1.4}
.auto-produce-button{width:100%;min-height:68px;padding:13px 15px;border:0;border-radius:15px;background:linear-gradient(120deg,#20b482,#0b9368);color:#fff;box-shadow:0 14px 30px #14966e38;cursor:pointer;text-align:left;transition:.2s}.auto-produce-button:hover{transform:translateY(-1px);box-shadow:0 17px 35px #14966e45}.auto-produce-button:disabled{opacity:.55;cursor:not-allowed;transform:none}.auto-produce-button span,.auto-produce-button small{display:block}.auto-produce-button span{font-size:15px;font-weight:900}.auto-produce-button small{margin-top:5px;font-size:10px;opacity:.82}.auto-produce-button.running{background:linear-gradient(120deg,#547269,#244a3e)}
body:not(.advanced-mode) .pipeline-panel .panel-heading .eyebrow{font-size:0}body:not(.advanced-mode) .pipeline-panel .panel-heading .eyebrow:after{content:"03 · HOÀN TẤT";font-size:10px}body:not(.advanced-mode) .pipeline-panel .panel-heading h2{font-size:0}body:not(.advanced-mode) .pipeline-panel .panel-heading h2:after{content:"Xuất video";font-size:22px}
@media(max-width:980px){.workflow-strip{position:static;overflow-x:auto;justify-content:flex-start}.workflow-step{min-width:max-content}.studio-shell{min-height:auto}}
@media(max-width:760px){.workflow-strip{height:56px;padding:7px 12px;gap:8px}.workflow-step small,.workflow-strip>i{display:none}.workflow-step strong{font-size:10px}.workflow-step b{width:24px;height:24px}.studio-shell{min-height:auto}}

/* FlowVideo light workspace — shared visual language with AI Video ngắn. */
:root {
  color-scheme: light;
  --bg: #f6f8f7;
  --panel: rgba(255, 255, 255, .94);
  --panel-2: #fff;
  --line: #e1e8e4;
  --line-strong: #cbd9d2;
  --text: #18201d;
  --muted: #77817c;
  --accent: #13966b;
  --accent-2: #2fbc8b;
  --cyan: #4bbd9a;
  --green: #21a876;
  --danger: #df5e73;
}
body {
  background:
    radial-gradient(circle at 12% -6%, rgba(63, 200, 151, .12), transparent 28%),
    radial-gradient(circle at 88% 2%, rgba(66, 153, 225, .08), transparent 25%),
    var(--bg);
  color: var(--text);
}
.noise { opacity: .012; }
.topbar {
  border-color: var(--line);
  background: rgba(246, 248, 247, .9);
  box-shadow: 0 8px 30px rgba(35, 65, 52, .06);
}
.brand { color: var(--text); }
.brand-mark {
  background: linear-gradient(145deg, #18a778, #3ec09a);
  box-shadow: 0 9px 22px rgba(19, 150, 107, .23);
}
.brand small, .save-state { color: var(--muted); }
.mode-tabs {
  background: rgba(255, 255, 255, .96);
  border-color: var(--line);
  box-shadow: 0 12px 32px rgba(38, 72, 57, .11);
}
.mode-tabs a { color: #7a847f; }
.mode-tabs a:hover { color: var(--text); background: #f1f6f3; }
.mode-tabs a.active { color: #106f51; background: #eaf8f2; }
.mode-tabs b { background: #edf2ef; color: #69746f; }
.mode-tabs a.active b {
  color: #fff;
  background: linear-gradient(135deg, #15986e, #43c499);
  box-shadow: 0 5px 14px rgba(19, 150, 107, .2);
}
.button.ghost, .icon-button, .mini-button {
  color: #53605a;
  background: #fff;
  border-color: var(--line);
}
.button.ghost:hover, .icon-button:hover, .mini-button:hover {
  background: #f1f7f4;
  border-color: var(--line-strong);
}
.button.primary, .render-button {
  color: #fff;
  background: linear-gradient(135deg, #15986e, #35b989);
  box-shadow: 0 9px 24px rgba(19, 150, 107, .22);
}
.button.guide-button {
  color: #147b5b;
  background: #eaf8f2;
  border-color: #bee6d6;
}
.button.key-button {
  color: #146d54;
  background: #edf8f4;
  border-color: #cbe9dd;
}
.studio-shell { background: transparent; }
.panel {
  background: rgba(255, 255, 255, .9);
  backdrop-filter: blur(20px);
}
.setup-panel, .pipeline-panel { border-color: var(--line); }
.eyebrow { color: #148760; }
.field > span, .style-picker legend { color: #59645f; }
input, textarea, select {
  color: var(--text);
  background: #f9fbfa;
  border-color: #dce5e0;
}
input::placeholder, textarea::placeholder { color: #9ba49f; }
input:focus, textarea:focus, select:focus {
  border-color: rgba(19, 150, 107, .7);
  box-shadow: 0 0 0 3px rgba(19, 150, 107, .11);
  background: #fff;
}
.style-card {
  background: #fff;
  border-color: var(--line);
  box-shadow: 0 4px 14px rgba(37, 65, 53, .025);
}
.style-card:hover, .style-card.active {
  border-color: #71caaa;
  background: #f1fbf7;
  box-shadow: 0 7px 18px rgba(19, 150, 107, .08);
}
.style-card b { color: #fff; }
.visual-customizer{background:#fff;border-color:var(--line);box-shadow:0 4px 14px rgba(37,65,53,.025)}.customizer-title span{color:#26312c}.color-field{color:#68736d}.color-field input{background:#f7faf8;border-color:#dce5e0}
.display-toggles>label{background:#f9fbfa}.display-toggles input{background:#d2dad6}.display-toggles input:checked{background:#15986e}.display-toggles b{color:#33403a}
.workspace { background: rgba(246, 248, 247, .72); }
.preview-card {
  border-color: #d8e1dd;
  box-shadow: 0 22px 55px rgba(27, 45, 37, .17);
}
.preview-card .icon-button { color: #aaa5b5; background: transparent; }
.transport { border-color: rgba(255,255,255,.1); }
.transport input { background: transparent; }
.play-button { background: #fff; color: #173b30; }
.scene-card {
  background: #fff;
  border-color: var(--line);
  box-shadow: 0 4px 14px rgba(37, 65, 53, .025);
}
.scene-card:hover {
  border-color: #bad8cb;
  background: #fbfefd;
  box-shadow: 0 7px 20px rgba(28, 82, 59, .07);
}
.scene-number { background: #e8f7f1; color: #13855f; }
.scene-media { background: #f7faf8; border-color: #b9c8c0; color: #78847e; }
.scene-media:hover { border-color: var(--accent); color: var(--accent); }
.scene-fields input, .scene-fields textarea { background: transparent; }
.scene-typography select,.scene-typography input{background:#f7faf8;border-color:#dce5e0}.scene-typography{border-color:var(--line)}
.scene-image-prompt,.scene-color-field input{background:#f7faf8!important;border-color:#dce5e0!important}.scene-generate-image{color:#087857;border-color:#22ad803f;background:#22ad800c}
.scene-motion-texts{background:#f7faf8!important;border-color:#dce5e0!important}.scene-extract-image{color:#087857}
.scene-video-controls{background:#f7faf8;border-color:#c8dbd2}.scene-video-controls input,.scene-video-controls select,.scene-video-controls textarea{background:#fff!important;border-color:#dce5e0!important;color:#26312c!important}
.progress-ring { background: conic-gradient(var(--accent) calc(var(--p)*1%), #dfe9e4 0); }
.progress-ring:before { background: #fff; }
.readiness {
  background: #f7faf8;
  border-color: var(--line);
}
.tool-chip { background: #fff; color: #68746e; border-color: var(--line); }
.tool-chip.ok { color: #137b58; border-color: #bfe4d4; background: #effaf5; }
.tool-chip.missing { background: #fff8f2; }
.skill-status.ok { color: #42715d; }
.pipeline-step {
  background: #fff;
  border-color: var(--line);
  box-shadow: 0 3px 12px rgba(37, 65, 53, .025);
}
.pipeline-step:hover {
  border-color: #a8d4c1;
  background: #f4fbf8;
}
.pipeline-step.running { border-color: #43b98e; background: #eefaf5; }
.pipeline-step.done .step-index { background: #e5f7ef; color: #14875f; }
.step-index { background: #f0f4f2; color: #65716b; }
.pipeline-step i { color: #9aa49f; }
.console-card {
  border-color: #d8e2dd;
  background: #10251d;
  box-shadow: inset 0 1px rgba(255,255,255,.04);
}
.console-head { border-color: rgba(255,255,255,.09); color: #91a79d; }
.console-head button { color: #91a79d; }
.console-card pre { color: #b9decf; }
.toast { color: #fff; background: #153d2f; box-shadow: 0 14px 44px rgba(21,61,47,.28); }
.guide-dialog, .key-dialog {
  color: var(--text);
  background: #fff;
  border-color: var(--line);
  box-shadow: 0 30px 100px rgba(20, 47, 36, .24);
}
.guide-dialog::backdrop, .key-dialog::backdrop { background: rgba(22, 39, 32, .4); }
.guide-head { background: rgba(255,255,255,.94); border-color: var(--line); }
.guide-close { color: #6c7771; background: #f6f9f7; border-color: var(--line); }
.guide-intro, .key-security p { color: #66716c; }
.guide-dialog code { color: #117a58; background: #edf8f3; border-color: #ccebdd; }
.guide-steps li { background: #f9fbfa; border-color: var(--line); }
.guide-steps li > b { color: #137d5a; background: #e8f7f1; }
.guide-note { background: #fff8ef; border-color: #f3dcc0; }
.guide-note strong { color: #9b6429; }
.guide-note p { color: #776b5d; }
.key-security { background: #eff9f5; border-color: #cce9de; }
.key-security > span { color: #15845f; }
@media (max-width: 760px) {
  .topbar { height: 124px; padding: 66px 14px 10px; }
  .mode-tabs { width: calc(100% - 24px); justify-content: center; }
  .mode-tabs a { min-width: 0; flex: 1; }
  .brand small { display: none; }
}

.source-field { margin-bottom: 9px; }
.chatgpt-image-import{margin:0 0 12px;padding:12px;border:1px solid #22ad8042;border-radius:14px;background:linear-gradient(145deg,#22ad800d,#61c7ff0a);display:grid;grid-template-columns:1fr auto;gap:9px;align-items:center}.chatgpt-import-copy{grid-column:1/-1}.chatgpt-import-copy strong,.chatgpt-import-copy small{display:block}.chatgpt-import-copy strong{margin-top:3px;font-size:13px}.chatgpt-import-copy small{margin-top:4px;color:var(--muted);font-size:9px;line-height:1.45}.chatgpt-image-import img{grid-column:1/-1;width:100%;max-height:150px;object-fit:cover;border:1px solid var(--line);border-radius:11px}.chatgpt-upload{height:36px;display:grid;place-items:center;border:1px dashed #22ad8080;border-radius:9px;color:#087857;background:#fff;font-size:10px;font-weight:850;cursor:pointer}.chatgpt-upload input{display:none}.chatgpt-motion-button{height:36px!important;color:#fff!important;background:linear-gradient(135deg,#15986e,#43c499)!important;border:0!important}.chatgpt-motion-button:disabled{opacity:.45;cursor:not-allowed}
.script-generator {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: end;
  margin: 0 0 18px;
  padding: 11px;
  border: 1px solid #cce8dc;
  border-radius: 13px;
  background: linear-gradient(145deg, #f1fbf7, #f8fcfa);
}
.script-generator label > span {
  display: block;
  margin-bottom: 6px;
  color: #53615b;
  font-size: 11px;
  font-weight: 700;
}
.script-generator select { height: 39px; padding: 7px 9px; }
.script-generator small {
  grid-column: 1 / -1;
  color: #718079;
  font-size: 10px;
  line-height: 1.45;
}
.generate-button {
  min-width: 139px;
  color: #fff;
  background: linear-gradient(135deg, #168f68, #32b887);
  box-shadow: 0 7px 18px rgba(19, 150, 107, .18);
  font-size: 12px;
  font-weight: 800;
}
.generate-button span { margin-right: 3px; }
.generate-button:hover { box-shadow: 0 10px 22px rgba(19, 150, 107, .24); }
.generate-button:disabled { cursor: wait; opacity: .72; transform: none; }
.generate-button.loading span { display: inline-block; animation: ai-spin 1.1s linear infinite; }
@keyframes ai-spin { to { transform: rotate(360deg); } }
@media (max-width: 360px) {
  .script-generator { grid-template-columns: 1fr; }
  .script-generator small { grid-column: 1; }
  .generate-button { width: 100%; }
}

.voice-regenerate {
  width: 100%;
  margin: -1px 0 1px;
  padding: 7px 10px;
  border: 1px dashed #b8d7ca;
  border-radius: 10px;
  color: #567067;
  background: #f7fbf9;
  font-size: 10px;
  font-weight: 700;
  cursor: pointer;
}
.voice-regenerate:hover { color: #137c59; border-color: #70bfa1; background: #eff9f5; }
.voice-regenerate:disabled { opacity: .48; cursor: not-allowed; }
.preview-card.portrait-preview { width: min(100%, 430px); margin-inline: auto; }
.portrait-stage { aspect-ratio: 9 / 16; }
.portrait-stage .stage-content { left: 9%; right: 9%; top: 47%; max-width: none; }
.portrait-stage h2 { font-size: clamp(38px, 7.2vw, 66px); line-height: .96; }
.portrait-stage p { font-size: clamp(13px, 2vw, 18px); line-height: 1.5; }
.portrait-stage .orb-one { width: 70%; right: -25%; top: -4%; }
.portrait-stage .orb-two { width: 35%; right: 8%; bottom: 8%; }
.portrait-stage .stage-image-shade { background: linear-gradient(180deg,rgba(8,8,18,.25) 0%,rgba(8,8,18,.82) 62%,rgba(8,8,18,.95) 100%); }
.motion-preview-frame { display:block;width:100%;aspect-ratio:16/9;border:0;background:#070916; }
.motion-preview-frame[hidden] { display:none; }
.portrait-preview .motion-preview-frame { aspect-ratio:9/16; }
