:root{color-scheme:dark;font-family:Inter,SF Pro Display,PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:#eaf3fb;background:#060a0f;font-synthesis:none;--page: #060a0f;--panel: #0a1119;--panel-raised: #0d1621;--surface: #101a25;--surface-active: #0b1b2b;--line: #263442;--line-soft: #1a2733;--text: #eaf3fb;--text-secondary: #9aaabd;--text-muted: #657689;--cyan: #42c8ff;--cyan-bright: #72dcff;--violet: #7a76ff;--danger: #ff6d78;--success: #35d3b1}*{box-sizing:border-box}html{background:var(--page)}body{margin:0;min-width:320px;min-height:100vh;background:var(--page);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,textarea{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.app-shell{min-height:100vh;padding:0 20px 20px;background-color:var(--page)}.app-header{height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line-soft)}.brand{display:flex;align-items:center;gap:11px;min-width:310px}.brand-mark{font-size:30px;line-height:1;font-weight:800;letter-spacing:-.08em;color:var(--cyan)}.brand h1,.section-heading h2,.results-titlebar h2{margin:0}.brand h1{font-size:22px;letter-spacing:.02em;font-weight:700}.brand p{margin:4px 0 0;color:var(--text-muted);font-size:9px;letter-spacing:.19em}.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:14px;min-width:0}.status-indicator{display:flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:13px;white-space:nowrap}.status-icon{display:grid;place-items:center;color:var(--cyan)}.status-indicator--complete .status-icon{color:var(--success)}.status-indicator--error .status-icon{color:var(--danger)}.overall-progress{width:clamp(92px,12vw,176px);height:4px;overflow:hidden;border-radius:99px;background:#1e2a36}.overall-progress span{display:block;height:100%;border-radius:inherit;background:var(--cyan);transition:width .32s ease}.progress-value{width:38px;color:var(--cyan);font-size:13px;font-variant-numeric:tabular-nums}.secondary-button,.primary-button,.icon-button{border:0;cursor:pointer}.secondary-button{height:40px;padding:0 15px;display:inline-flex;align-items:center;gap:8px;border:1px solid #3b8ed8;border-radius:8px;background:#0a131e;color:#dceeff;font-size:13px;font-weight:600}.secondary-button:hover:not(:disabled){border-color:var(--cyan);background:#0e1b29}button:disabled{cursor:not-allowed;opacity:.42}.workspace{height:calc(100vh - 96px);min-height:calc(100vh - 96px);display:grid;grid-template-columns:minmax(340px,.38fr) minmax(720px,.62fr);gap:12px;padding-top:12px}.input-panel,.results-panel{min-width:0;border:1px solid var(--line);border-radius:11px;background:var(--panel)}.input-panel{padding:19px;display:flex;flex-direction:column;overflow:auto}.section-heading,.results-titlebar{display:flex;align-items:center;justify-content:space-between}.section-heading{padding-bottom:16px;border-bottom:1px solid var(--line-soft)}.section-heading>svg{color:var(--cyan)}.eyebrow{display:block;margin-bottom:5px;color:var(--cyan);font-size:9px;font-weight:700;letter-spacing:.18em}.section-heading h2,.results-titlebar h2{font-size:16px;font-weight:650}.input-panel form{flex:1;display:flex;flex-direction:column;padding-top:18px}.field{display:block;margin-bottom:18px}.field-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;color:#dbe7f2;font-size:13px;font-weight:600}.field-header b{color:var(--cyan)}.field-header small{color:var(--text-muted);font-size:10px;font-weight:500;font-variant-numeric:tabular-nums}.field input,.field textarea{width:100%;border:1px solid #2a3948;border-radius:8px;background:#0b131c;color:var(--text);transition:border-color .16s ease,background-color .16s ease}.field input{height:48px;padding:0 14px}.field textarea{display:block;resize:vertical;padding:13px 14px;line-height:1.75}.field--script textarea{min-height:220px}.field--style textarea{min-height:88px}.style-presets{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.style-chip{min-height:32px;padding:6px 12px;border:1px solid #2a3948;border-radius:999px;background:#0b131c;color:var(--text-secondary);cursor:pointer;font-size:12px;line-height:1;transition:border-color .16s ease,background-color .16s ease,color .16s ease,box-shadow .16s ease}.style-chip:hover:not(:disabled){border-color:#3f7895;color:var(--text)}.style-chip--selected{border-color:var(--cyan);background:#42c8ff1f;color:var(--cyan-bright);box-shadow:inset 0 0 0 1px #42c8ff1a}.field-hint{margin:7px 0 0;color:var(--text-muted);font-size:10px;line-height:1.5}.key-row{display:flex;flex-wrap:wrap;gap:8px}.key-row input{flex:1 1 220px;min-width:0}.key-row .secondary-button{flex:none}.field--key .field-hint{display:flex;align-items:flex-start;gap:5px}.field--key .field-hint svg{flex:none;margin-top:1px}.field input::placeholder,.field textarea::placeholder{color:#526375}.field input:hover:not(:disabled),.field textarea:hover:not(:disabled){border-color:#3b5065}.field input:focus,.field textarea:focus{border-color:var(--cyan);background:#0c1621}.field input:disabled,.field textarea:disabled{color:#8797a8}.error-banner{display:flex;align-items:flex-start;gap:9px;padding:11px 12px;margin:-3px 0 14px;border:1px solid #713741;border-radius:8px;background:#211116;color:#ffc0c5;font-size:12px;line-height:1.5}.error-banner svg{flex:none;margin-top:1px}.primary-button{min-height:52px;margin-top:auto;display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid #4baaff;border-radius:9px;background:#1456c8;color:#fff;box-shadow:0 0 0 3px #2d8bff24,0 0 26px #2ca3ff29;font-size:15px;font-weight:700;letter-spacing:.02em}.primary-button:hover:not(:disabled){background:#1765df}.primary-button--stop{border-color:#8c4952;background:#36151c;box-shadow:0 0 0 3px #ff6d7817;color:#ffbdc3}.primary-button--stop:hover{background:#461b24}.model-note{display:flex;align-items:flex-start;gap:10px;margin-top:17px;padding-top:15px;border-top:1px solid var(--line-soft)}.model-dot,.footer-dot{display:block;flex:none;width:7px;height:7px;margin-top:5px;border-radius:50%;background:var(--success);box-shadow:0 0 10px #35d3b180}.model-note strong{display:block;color:var(--cyan-bright);font-size:12px}.model-note p{margin:3px 0 0;color:var(--text-muted);font-size:10px;line-height:1.5}.results-panel{display:flex;flex-direction:column;overflow:hidden}.results-panel--cards{background:#080f16}.result-counters{display:flex;align-items:center;gap:8px}.result-counters span{padding:6px 9px;border:1px solid #2a3948;border-radius:6px;color:var(--text-secondary);background:#0a131d;font-size:10px;font-weight:650;font-variant-numeric:tabular-nums;letter-spacing:.06em}.result-counters span:last-child{border-color:#28536a;color:var(--cyan)}.storyboard-scroll--cards{padding:12px}.storyboard-card-list{display:flex;flex-direction:column;gap:11px}.storyboard-card{position:relative;min-width:0;display:flex;flex-direction:column;overflow:hidden;border:1px solid #253544;border-radius:10px;background:#0a121b;transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease}.storyboard-card:hover{border-color:#345066;background:#0b151f}.storyboard-card.is-active{border-color:#2c789c;box-shadow:inset 3px 0 0 var(--cyan)}.storyboard-card.has-image{border-color:#285064}.storyboard-visual{position:relative;min-height:0;padding:14px 15px 15px;border-top:1px solid var(--line);background:#070d13}.visual-number{position:absolute;z-index:2;top:20px;left:20px;display:flex;align-items:baseline;gap:6px;padding:5px 8px;border:1px solid rgb(255 255 255 / 12%);border-radius:5px;background:#040a0fd1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none}.visual-number span{color:var(--text-muted);font-size:7px;font-weight:750;letter-spacing:.15em}.visual-number strong{color:#f2f8ff;font-size:15px;font-variant-numeric:tabular-nums}.story-image-wrap{display:flex;flex-direction:column;gap:8px}.story-image-button{position:relative;display:block;width:100%;aspect-ratio:16 / 9;overflow:hidden;padding:0;border:1px solid #294052;border-radius:7px;background:#0b141d;cursor:zoom-in}.story-image-button img{display:block;width:100%;height:100%;object-fit:cover}.image-zoom{position:absolute;right:8px;bottom:8px;display:inline-flex;align-items:center;gap:5px;padding:6px 8px;border:1px solid rgb(255 255 255 / 14%);border-radius:5px;background:#040a0fd1;color:#eaf6ff;font-size:9px;font-weight:650;opacity:0;transform:translateY(3px);transition:opacity .15s ease,transform .15s ease}.story-image-button:hover .image-zoom,.story-image-button:focus-visible .image-zoom{opacity:1;transform:translateY(0)}.image-actions{width:min(100%,320px);margin-left:auto;display:grid;grid-template-columns:1fr 1fr;gap:6px}.image-actions button,.image-retry-button{min-height:32px;display:inline-flex;align-items:center;justify-content:center;gap:5px;border:1px solid #2a4658;border-radius:6px;background:#0b1822;color:#a9cfe6;cursor:pointer;font-size:10px;font-weight:650}.image-actions button:hover:not(:disabled),.image-retry-button:hover:not(:disabled){border-color:var(--cyan);color:var(--cyan-bright)}.image-placeholder{position:relative;width:100%;min-height:0;aspect-ratio:16 / 9;display:flex;align-items:center;justify-content:center;flex-direction:column;overflow:hidden;padding:22px 14px;border:1px solid #263746;border-radius:7px;background:#0a121a;color:var(--text-muted);text-align:center}.image-placeholder-icon{display:grid;place-items:center;width:54px;height:54px;margin-bottom:13px;border:1px solid #2b4354;border-radius:50%;background:#0d1a24;color:#537589}.image-placeholder strong{color:#aebdcb;font-size:12px}.image-placeholder p{max-width:340px;margin:7px 0 0;color:var(--text-muted);font-size:9.5px;line-height:1.55}.image-placeholder--generating{border-color:#276481;background:#0a1823}.image-placeholder--generating .image-placeholder-icon{border-color:#2c7699;color:var(--cyan);box-shadow:0 0 22px #42c8ff1a}.image-placeholder--error{border-color:#693740;background:#1a1014;color:var(--danger)}.image-placeholder--error strong{color:#ffc1c6}.image-placeholder--error p{color:#c98f95}.image-retry-button{margin-top:13px;border-color:#78444c;background:#261318;color:#ffc0c6}.image-scan-line{position:absolute;left:10%;right:10%;top:28%;height:2px;background:var(--cyan);box-shadow:0 0 12px var(--cyan);animation:image-scan 2.2s ease-in-out infinite}.storyboard-copy{min-width:0;display:flex;flex-direction:column}.card-heading{min-height:62px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 15px;border-bottom:1px solid var(--line-soft)}.card-kicker{display:block;margin-bottom:4px;color:var(--cyan);font-size:7.5px;font-weight:750;letter-spacing:.15em}.card-heading h3{margin:0;color:#e7f1fa;font-size:14px;font-weight:650}.card-copy-button{width:34px;height:34px;flex:none;place-items:center;padding:0;border:1px solid #2a3d4d;border-radius:6px}.card-copy-button:hover:not(:disabled){border-color:var(--cyan);background:#42c8ff12}.detail-grid{flex:1;display:grid;grid-template-columns:1fr 1fr}.detail-item{min-width:0;padding:12px 15px;border-right:1px solid rgb(38 52 66 / 55%);border-bottom:1px solid rgb(38 52 66 / 55%)}.detail-item:nth-child(2n){border-right:0}.detail-item--wide{grid-column:1 / -1;border-right:0}.detail-item>span:first-child{display:block;margin-bottom:6px;color:#6f8496;font-size:9px;font-weight:700;letter-spacing:.06em}.detail-item p{margin:0;color:#c7d3de;font-size:11.5px;line-height:1.65;overflow-wrap:anywhere}.detail-item--prompt p{color:#7dd7fa}.card-stream-state{position:absolute;z-index:3;right:15px;top:21px;display:flex;align-items:center;gap:8px;color:var(--cyan);font-size:9px;font-weight:650}.card-stream-state .stream-bar{width:75px}.model-note--stacked strong{line-height:1.45}.lightbox{position:fixed;z-index:30;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:24px;background:#020609e0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.lightbox-panel{width:min(94vw,1120px);max-height:92vh;display:flex;flex-direction:column;overflow:hidden;border:1px solid #35566b;border-radius:12px;background:#081019;box-shadow:0 24px 80px #0000008c}.lightbox-panel header{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 14px 10px 16px;border-bottom:1px solid var(--line)}.lightbox-panel header span{display:block;margin-bottom:3px;color:var(--cyan);font-size:8px;font-weight:750;letter-spacing:.14em}.lightbox-panel header strong{font-size:14px}.lightbox-panel header button{width:36px;height:36px;display:grid;place-items:center;border:1px solid #2c4151;border-radius:6px;background:#0b1721;color:#b8c8d6;cursor:pointer}.lightbox-panel img{display:block;width:100%;max-height:calc(92vh - 59px);min-height:0;object-fit:contain;background:#03070a}@keyframes image-scan{0%,to{top:28%;opacity:.25}50%{top:72%;opacity:.9}}.results-titlebar{height:70px;flex:none;padding:0 18px;border-bottom:1px solid var(--line);background:var(--panel-raised)}.shot-count{color:var(--cyan);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.12em}.storyboard-scroll{min-height:0;flex:1;overflow:auto;scrollbar-color:#324354 transparent;scrollbar-width:thin}.storyboard-table{min-width:750px}.table-header,.storyboard-row{display:grid;grid-template-columns:62px minmax(140px,1.3fr) minmax(120px,1fr) minmax(130px,1.05fr) minmax(88px,.65fr) minmax(155px,1.45fr) 46px}.table-header{position:sticky;z-index:2;top:0;min-height:48px;align-items:center;border-bottom:1px solid var(--line);background:#0b131c;color:#afbdca;font-size:11px;font-weight:650}.table-header span{padding:0 10px}.storyboard-row{position:relative;min-height:139px;border-bottom:1px solid var(--line-soft);background:#091119;transition:background-color .18s ease,box-shadow .18s ease}.storyboard-row.is-active{background:var(--surface-active);box-shadow:inset 3px 0 0 var(--cyan)}.storyboard-row:hover{background:#0c1620}.shot-number,.shot-cell,.copy-row-button{padding:17px 10px}.shot-number{display:flex;align-items:flex-start;gap:6px;color:#ddeafa;font-size:23px;font-weight:620;font-variant-numeric:tabular-nums}.shot-number svg{margin-top:4px;color:var(--success)}.shot-cell{min-width:0;border-left:1px solid rgba(38,52,66,.42)}.shot-cell p{margin:0;color:#c8d4df;font-size:12.5px;line-height:1.72;overflow-wrap:anywhere}.shot-cell--visualPrompt p{color:#7ed8ff}.mobile-cell-label{display:none}.icon-button{display:grid;place-items:start center;background:transparent;color:#6bbdf2}.copy-row-button{border-left:1px solid rgba(38,52,66,.42)}.copy-row-button:hover:not(:disabled){color:var(--cyan-bright);background:#42c8ff0f}.skeleton-lines{display:flex;flex-direction:column;gap:9px;padding-top:3px}.skeleton-lines span{display:block;width:78%;height:8px;border-radius:99px;background:#26313c;animation:skeleton-pulse 1.6s ease-in-out infinite}.skeleton-lines span:nth-child(2){width:58%;animation-delay:.1s}.skeleton-lines span:nth-child(3){width:68%;animation-delay:.2s}.skeleton-lines--wide span:first-child{width:91%}.row-stream-state{position:absolute;left:72px;bottom:11px;display:flex;align-items:center;gap:10px;color:var(--cyan);font-size:10px;font-weight:650}.stream-bar{position:relative;display:block;width:116px;height:3px;overflow:hidden;border-radius:99px;background:#243545}.stream-bar:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;width:42%;border-radius:inherit;background:var(--cyan);animation:stream-slide 1.25s ease-in-out infinite}.active-pulse{width:7px;height:7px;margin-top:8px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 4px #42c8ff1f;animation:pulse 1.4s ease-in-out infinite}.results-footer{min-height:46px;flex:none;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 18px;border-top:1px solid var(--line);background:#0a121b;color:var(--text-muted);font-size:10px}.results-footer div{display:flex;align-items:center;gap:8px;min-width:0;color:var(--text-secondary)}.footer-dot{margin:0;background:var(--text-muted);box-shadow:none}.footer-dot--connecting,.footer-dot--calling,.footer-dot--generating,.footer-dot--finalizing{background:var(--cyan);box-shadow:0 0 9px #42c8ff8c}.footer-dot--complete{background:var(--success)}.footer-dot--error{background:var(--danger)}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes skeleton-pulse{0%,to{opacity:.42}50%{opacity:.88}}@keyframes stream-slide{0%{transform:translate(-110%)}to{transform:translate(340%)}}@keyframes pulse{0%,to{opacity:.45}50%{opacity:1}}@media (max-width: 1080px){.app-header{height:auto;min-height:76px;padding:12px 0;align-items:flex-start}.header-actions{flex-wrap:wrap}.status-indicator{width:100%;justify-content:flex-end}.workspace{height:auto;grid-template-columns:1fr}.input-panel{min-height:auto}.input-panel form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{margin:0}.field--script{grid-row:span 2}.field--script textarea{min-height:170px}.primary-button{margin-top:0}.model-note{margin-top:14px}.results-panel{min-height:680px}}@media (max-width: 680px){.app-shell{padding:0 10px 10px}.app-header{display:block}.brand{min-width:0}.brand h1{font-size:19px}.header-actions{margin-top:14px;justify-content:flex-start}.status-indicator{justify-content:flex-start}.progress-value{display:none}.secondary-button{margin-left:0;padding-inline:11px}.input-panel{padding:15px}.input-panel form{display:flex;gap:0}.field{margin-bottom:16px}.field--script textarea{min-height:210px}.results-panel{min-height:650px}.results-titlebar{height:auto;min-height:70px;gap:12px;padding-block:12px}.result-counters{align-items:flex-end;flex-direction:column;gap:5px}.storyboard-scroll--cards{padding:8px}.storyboard-card{display:block}.storyboard-visual{min-height:auto;padding:11px;border-right:0;border-top:1px solid var(--line);border-bottom:0}.story-image-button img{height:100%;max-height:none;object-fit:cover}.image-placeholder{min-height:0;aspect-ratio:16 / 9}.detail-grid{display:block}.detail-item,.detail-item:nth-child(2n){border-right:0}.card-heading{min-height:58px}.card-stream-state{top:auto;right:13px;bottom:13px}.lightbox{padding:10px}.results-footer{align-items:flex-start;flex-direction:column;padding-block:11px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
