:root{--text:#596070;--text-h:#111827;--label:#6f7788;--bg:#f5f7fb;--surface:#fff;--field-bg:#fbfcff;--stage-bg:#f0f3f8;--checker:#6f77881f;--border:#dfe4ed;--code-bg:#eef2f7;--accent:#2563eb;--accent-strong:#1d4ed8;--accent-bg:#2563eb1c;--danger:#b42318;--shadow:0 14px 38px #12192614;--shadow-strong:0 16px 32px #1d4ed833;--scrollbar-track:#e9edf4;--scrollbar-thumb:#aeb7c6;--scrollbar-thumb-hover:#8792a4;--sans:Inter, ui-sans-serif, system-ui, "Segoe UI", Roboto, sans-serif;--heading:Inter, ui-sans-serif, system-ui, "Segoe UI", Roboto, sans-serif;--mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;font:16px/145% var(--sans);color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--text:#a6adbb;--text-h:#f6f8fb;--label:#8992a3;--bg:#101217;--surface:#171a21;--field-bg:#1c2028;--stage-bg:#12151b;--checker:#a6adbb1a;--border:#2a303b;--code-bg:#222733;--accent:#60a5fa;--accent-strong:#2563eb;--accent-bg:#60a5fa21;--danger:#ffb4ab;--shadow:0 18px 44px #00000038;--shadow-strong:0 16px 32px #2563eb42;--scrollbar-track:#11141a;--scrollbar-thumb:#343b48;--scrollbar-thumb-hover:#485263}}*{box-sizing:border-box;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track);scrollbar-width:thin}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{border:2px solid var(--scrollbar-track);background:var(--scrollbar-thumb);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}body{min-width:320px;margin:0}button,input,select,textarea{font:inherit}h1,h2,p{margin:0}h1,h2{color:var(--text-h);font-family:var(--heading);letter-spacing:0;font-weight:800}h1{font-size:clamp(32px,5vw,52px);line-height:1.02}h2{font-size:24px;line-height:1.1}code{background:var(--code-bg);color:var(--text-h);font-family:var(--mono);border-radius:4px;padding:2px 5px;font-size:.92em}.auth-shell{background:radial-gradient(circle at top left, #2563eb21, transparent 32%), radial-gradient(circle at bottom right, #0f766e24, transparent 34%), var(--bg);place-items:center;min-height:100svh;padding:32px;display:grid}.auth-card{background:var(--surface);border:1px solid var(--border);width:min(680px,100%);box-shadow:var(--shadow);border-radius:16px;gap:24px;padding:32px;display:grid}.auth-loading-card{text-align:center;justify-items:center;width:min(560px,100%)}.auth-hero{gap:10px;display:grid}.auth-login-hero{justify-items:center}.auth-login-heading{justify-content:center;align-items:center;gap:14px;display:inline-flex}.auth-site-title{color:var(--text-h);font-family:var(--heading);letter-spacing:-.02em;margin:0;font-size:clamp(26px,4vw,34px);font-weight:800;line-height:1.08}.auth-eyebrow{color:var(--accent);letter-spacing:.14em;text-transform:uppercase;font-size:13px;font-weight:800}.auth-icon{background:linear-gradient(135deg, var(--accent-bg), #0f766e24);width:54px;height:54px;color:var(--accent);border-radius:16px;place-items:center;display:grid}.setup-grid{grid-template-columns:minmax(260px,340px) minmax(0,1fr);align-items:start;gap:28px;display:grid}.qr-panel,.auth-form,.auth-loading-panel{border:1px solid var(--border);background:var(--field-bg);border-radius:12px;padding:20px}.qr-panel{text-align:center;justify-items:center;gap:12px;display:grid}.qr-image{background:#fff;border-radius:10px;width:min(100%,320px);padding:12px}.auth-form{gap:16px;display:grid}.auth-manual-key{gap:8px;display:grid}.auth-manual-key span{color:var(--label);font-size:13px;font-weight:700}.auth-manual-key code{overflow-wrap:anywhere;padding:12px;display:block}.auth-field input{letter-spacing:.18em;text-align:center;min-height:52px;font-size:22px}.auth-submit-button{min-height:52px}.auth-loading-panel{text-align:center;justify-items:center;gap:14px;display:grid}.auth-spinner{animation:.9s linear infinite spin}.session-banner{border:1px solid var(--border);background:linear-gradient(135deg, var(--field-bg), #2563eb0d);box-shadow:var(--shadow);border-radius:8px;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;display:flex}.session-copy{gap:6px;display:grid}.session-copy strong{color:var(--text-h)}.session-badge{color:var(--accent);align-items:center;gap:8px;font-size:13px;font-weight:800;display:inline-flex}.session-logout{border:1px solid var(--border);background:var(--surface);min-height:40px;color:var(--text-h);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:0 16px;display:inline-flex}.session-logout:disabled{opacity:.6;cursor:default}.studio-shell{background:linear-gradient(90deg, #14151a09 1px, transparent 1px), linear-gradient(180deg, #14151a09 1px, transparent 1px), var(--bg);min-height:100svh;color:var(--text);background-size:32px 32px}.workspace{gap:24px;width:min(1320px,100% - 48px);margin:0 auto;padding:40px 0;display:grid}.workspace-main{grid-template-columns:minmax(360px,480px) minmax(0,1fr);align-items:start;gap:24px;display:grid}.control-column,.results-column{gap:24px;display:grid}.control-column{align-self:start;position:sticky;top:24px}.results-column{grid-template-rows:minmax(0,auto) auto}.control-panel,.preview-panel{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:8px}.control-panel{gap:20px;padding:24px;display:grid}.panel-heading{text-align:left;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;display:grid}.panel-heading-copy{gap:6px;display:grid}.panel-heading h2{color:var(--text-h);font-family:var(--heading);margin:0;font-size:18px;line-height:1.1}.panel-heading p{color:var(--label);margin:0;font-size:13px;line-height:1.5}.mode-toggle{border:1px solid var(--border);background:var(--field-bg);border-radius:10px;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:6px;display:grid}.mode-tab{min-height:42px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;font-weight:800}.mode-tab.active{background:var(--surface);color:var(--text-h);box-shadow:var(--shadow)}.channel-bar{gap:8px;display:grid}.channel-helper{color:var(--label);margin:0;font-size:12px;line-height:1.5}.field,.range-field,.segmented-field{text-align:left;gap:8px;display:grid}.field span,.range-field span,.segmented-field legend,.detail-grid span{color:var(--label);font-size:13px;font-weight:700}.field input,.field select,.field textarea{box-sizing:border-box;border:1px solid var(--border);background:var(--field-bg);width:100%;color:var(--text-h);font:inherit;letter-spacing:0;border-radius:6px;outline:none;transition:border-color .2s,box-shadow .2s}.field input,.field select{min-height:44px;padding:0 12px}.field textarea{resize:vertical;scrollbar-width:none;-ms-overflow-style:none;min-height:156px;padding:12px}.field textarea::-webkit-scrollbar{width:0;height:0}.field input:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.custom-select-field{position:relative}.custom-select-trigger{border:1px solid var(--border);background:var(--field-bg);width:100%;min-height:44px;color:var(--text-h);cursor:pointer;text-align:left;border-radius:6px;justify-content:space-between;align-items:center;gap:10px;padding:0 12px;transition:border-color .2s,box-shadow .2s,background .2s;display:flex}.custom-select-trigger span{color:var(--text-h)}.custom-select-trigger.open,.custom-select-trigger:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg);outline:none}.custom-select-trigger svg{color:var(--label);flex:none;transition:transform .2s}.custom-select-trigger.open svg{transform:rotate(180deg)}.custom-select-menu{z-index:20;border:1px solid var(--border);background:var(--surface);max-height:220px;box-shadow:var(--shadow);border-radius:8px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:auto}.custom-select-option{width:100%;min-height:36px;color:var(--text-h);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;justify-content:space-between;align-items:center;gap:10px;padding:0 9px;display:flex}.custom-select-option:hover,.custom-select-option.selected{background:var(--accent-bg)}.custom-select-option svg{color:var(--accent);flex:none}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.segmented-field{border:0;margin:0;padding:0}.size-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.resolution-grid,.ratio-grid{gap:8px;display:grid}.resolution-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.ratio-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.segment{border:1px solid var(--border);background:var(--field-bg);min-height:74px;color:var(--text);cursor:pointer;text-align:center;border-radius:6px;align-content:center;gap:3px;padding:10px;transition:border-color .2s,background .2s,color .2s;display:grid}.segment input{opacity:0;pointer-events:none;position:absolute}.segment span{color:var(--text-h);font-size:14px;font-weight:700}.segment small{font-size:12px}.segment.selected{border-color:var(--accent);background:var(--accent-bg);color:var(--text-h)}.range-field{grid-template-columns:1fr auto;align-items:center}.range-field input{accent-color:var(--accent);grid-column:1/-1}.upload-section{gap:14px;display:grid}.upload-field{border:1px solid var(--border);background:var(--field-bg);border-radius:8px;gap:10px;padding:14px;display:grid}.upload-field-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.upload-field-top span,.upload-field-top strong{color:var(--text-h);font-size:13px}.upload-helper{color:var(--label);margin:0;font-size:12px;line-height:1.5}.upload-dropzone{border:1px dashed var(--border);background:var(--surface);min-height:96px;color:var(--text-h);cursor:pointer;text-align:center;border-radius:8px;place-items:center;gap:8px;padding:14px;display:grid;position:relative;overflow:hidden}.upload-dropzone input{cursor:pointer;opacity:0;width:100%;height:100%;position:absolute;inset:0}.upload-dropzone span{font-size:13px;font-weight:700}.upload-file-card{border:1px solid var(--border);background:var(--surface);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.upload-file-copy{gap:4px;min-width:0;display:grid}.upload-file-copy strong,.upload-file-copy small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.upload-file-copy strong{color:var(--text-h);font-size:13px}.upload-file-copy small{color:var(--label);font-size:12px}.generate-button{color:#fff;background:var(--accent-strong);min-height:46px;font:inherit;cursor:pointer;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;font-weight:800;text-decoration:none;transition:transform .2s,box-shadow .2s,opacity .2s;display:inline-flex}.generate-button:hover{box-shadow:var(--shadow-strong);transform:translateY(-1px)}.generate-button:disabled{cursor:not-allowed;opacity:.55;box-shadow:none;transform:none}.error-message{color:var(--danger);text-align:left;background:#d143431a;border:1px solid #d1434359;border-radius:6px;padding:10px 12px}.preview-panel{grid-auto-rows:auto;gap:18px;padding:24px;display:grid}.image-stage{border:1px solid var(--border);background:linear-gradient(45deg, var(--checker) 25%, transparent 25%), linear-gradient(-45deg, var(--checker) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--checker) 75%), linear-gradient(-45deg, transparent 75%, var(--checker) 75%), var(--stage-bg);background-position:0 0,0 10px,10px -10px,-10px 0;background-size:20px 20px;border-radius:8px;place-items:center;height:500px;max-height:500px;display:grid;overflow:hidden}.image-stage.has-image{background:var(--stage-bg)}.image-stage>*{min-width:0;max-width:100%}.image-stage img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:100%;display:block}.image-preview-button{cursor:zoom-in;background:0 0;border:0;place-items:center;width:auto;max-width:100%;height:auto;max-height:100%;padding:0;display:grid}.image-preview-button img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:500px}.image-variant-list{grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:10px;display:grid}.image-variant{border:1px solid var(--border);background:var(--field-bg);color:var(--text-h);text-align:left;cursor:pointer;border-radius:8px;gap:8px;padding:8px;display:grid}.image-variant.selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.image-variant img{aspect-ratio:1;object-fit:cover;border-radius:6px;width:100%;display:block}.image-variant span{font-size:12px;font-weight:700}.preview-detail-trigger:disabled{opacity:.45;cursor:not-allowed}.task-preview-card{border:1px solid var(--border);background:var(--field-bg);text-align:left;border-radius:8px;gap:12px;width:min(520px,100% - 32px);min-width:0;max-width:calc(100% - 32px);padding:18px;display:grid}.task-preview-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.task-preview-top strong{color:var(--text-h);font-size:13px}.task-preview-card p{min-width:0;color:var(--text-h);overflow-wrap:anywhere;word-break:break-word;line-clamp:3;-webkit-line-clamp:3;-webkit-box-orient:vertical;line-height:1.55;display:-webkit-box;overflow:hidden}.task-preview-card small,.task-preview-card em{min-width:0;color:var(--label);overflow-wrap:anywhere;word-break:break-word;font-size:12px;font-style:normal}.task-preview-settings{flex-wrap:wrap;gap:8px;min-width:0;display:flex}.task-preview-settings span{border:1px solid var(--border);background:var(--surface);max-width:100%;min-height:28px;color:var(--text-h);overflow-wrap:anywhere;white-space:normal;border-radius:999px;align-items:center;padding:0 10px;font-size:12px;display:inline-flex}.task-preview-assets{gap:8px;min-width:0;display:grid}.task-preview-assets span{border:1px solid var(--border);background:var(--surface);color:var(--text-h);overflow-wrap:anywhere;border-radius:8px;padding:10px 12px;font-size:12px}.task-preview-card em{color:var(--danger)}.empty-state,.loading-state{color:var(--label);text-align:center;place-items:center;gap:12px;display:grid}.empty-state span{border:1px solid var(--border);width:88px;height:88px;color:var(--accent);font-family:var(--mono);border-radius:8px;place-items:center;font-weight:800;display:grid}.loading-state:before{content:"";border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}.task-panel{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:8px;gap:18px;padding:24px;display:grid}.task-list{scrollbar-width:none;-ms-overflow-style:none;gap:12px;max-height:min(42vh,560px);display:grid;overflow:auto}.task-list::-webkit-scrollbar{width:0;height:0}.task-item{border:1px solid var(--border);background:var(--field-bg);border-radius:12px;grid-template-columns:minmax(0,1fr) auto auto;align-items:start;gap:16px;padding:14px;display:grid}.task-item.selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.task-main{min-width:0;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:14px;padding:0;display:grid}.task-main:disabled{cursor:default}.task-thumb{object-fit:cover;border-radius:10px;width:72px;height:72px;display:block}.task-thumb.placeholder{border:1px solid var(--border);background:var(--stage-bg);color:var(--label);font-family:var(--mono);place-items:center;font-weight:700;display:grid}.task-thumb.placeholder.running svg{animation:.8s linear infinite spin}.task-copy{gap:8px;min-width:0;display:grid}.task-meta-line{flex-wrap:wrap;align-items:center;gap:6px 12px;min-width:0;display:flex}.task-copy strong,.task-copy small,.task-copy em{overflow:hidden}.task-copy strong{color:var(--text-h);-webkit-line-clamp:2;line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;font-size:15px;font-style:normal;line-height:1.45;display:-webkit-box;overflow:hidden}.task-copy small{color:var(--label);white-space:nowrap;font-size:12px}.task-copy .task-wait-time{color:var(--text)}.task-copy em{color:var(--danger);line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;font-style:normal;display:-webkit-box}.task-status{white-space:nowrap;border-radius:999px;justify-content:center;align-self:start;align-items:center;min-height:34px;padding:0 12px;font-size:12px;font-weight:700;display:inline-flex}.task-status.queued,.task-status.running{background:var(--accent-bg);color:var(--accent)}.task-status.succeeded{color:#16a34a;background:#22c55e24}.task-status.failed,.task-status.canceled{color:var(--danger);background:#d143431f}.task-action{border:1px solid var(--border);background:var(--surface);min-width:max-content;min-height:34px;color:var(--text-h);cursor:pointer;white-space:nowrap;border-radius:8px;flex:none;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:12px;font-weight:700;display:inline-flex}.task-actions{flex-flow:column;align-self:start;gap:8px;width:max-content;display:flex}.task-action[title=取消任务],.task-action[title=删除任务]{color:var(--danger);background:#d143431a;border-color:#d1434347}.history-heading{text-align:left;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;display:grid}.history-heading-copy{gap:8px;display:grid}.history-heading h2{color:var(--text-h);font-family:var(--heading);margin:0;font-size:24px;line-height:1.08}.history-heading p{color:var(--label);margin:0;font-size:13px;line-height:1.6}.history-count{border:1px solid var(--border);background:var(--field-bg);min-height:34px;color:var(--label);border-radius:999px;justify-content:center;align-items:center;padding:0 12px;font-size:12px;font-weight:700;display:inline-flex}.history-empty{border:1px dashed var(--border);color:var(--label);text-align:center;border-radius:6px;padding:14px}.drawer-backdrop{z-index:55;background:#070a0f8a;animation:.22s fadeIn;position:fixed;inset:0}.drawer{border:1px solid var(--border);background:var(--surface);grid-template-rows:auto minmax(0,1fr);width:min(420px,100vw);animation:.24s cubic-bezier(.2,.8,.2,1) slideInFromRight;display:grid;position:absolute;top:0;bottom:0;right:0;overflow:hidden}.drawer-right{left:auto}.drawer-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:start;gap:16px;padding:20px 20px 18px;display:flex}.drawer-copy{gap:8px;display:grid}.drawer-copy h3{color:var(--text-h);font-family:var(--heading);margin:0;font-size:20px;line-height:1.08}.drawer-copy p{color:var(--label);margin:0;font-size:13px;line-height:1.5}.drawer-close{border:1px solid var(--border);background:var(--field-bg);width:36px;height:36px;color:var(--text-h);cursor:pointer;border-radius:999px;place-items:center;display:grid}.drawer-body{flex-direction:column;justify-content:flex-start;align-items:stretch;gap:16px;padding:20px;display:flex;overflow:auto}.detail-section{align-content:start;gap:10px;display:grid}.detail-section h4{color:var(--text-h);margin:0;font-size:13px;font-weight:800}.detail-prompt{color:var(--text-h);overflow-wrap:anywhere;margin:0;line-height:1.5}.detail-chip-list{flex-wrap:wrap;gap:8px;display:flex}.detail-chip-list span,.detail-asset-list span{border:1px solid var(--border);background:var(--field-bg);min-height:28px;color:var(--text-h);white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;padding:0 10px;font-size:12px;line-height:1.2;display:inline-flex}.detail-error{color:var(--danger);margin:0;font-size:12px;line-height:1.5}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:10px;display:grid}.detail-grid div,.detail-revised-prompt{border:1px solid var(--border);background:var(--field-bg);border-radius:10px;align-content:start;gap:4px;padding:10px 12px;display:grid}.detail-grid span,.detail-revised-prompt span{color:var(--label);font-size:12px;font-weight:700}.detail-grid strong{color:var(--text-h);overflow-wrap:anywhere;font-size:13px;line-height:1.5}.detail-revised-prompt p{color:var(--text-h);overflow-wrap:anywhere;margin:0;font-size:13px;line-height:1.6}.detail-asset-list{gap:10px;display:grid}.lightbox-backdrop{z-index:60;cursor:zoom-out;overscroll-behavior:contain;background:#070a0feb;border:0;place-items:center;padding:28px;display:grid;position:fixed;inset:0;overflow:hidden}.lightbox-close-button{z-index:2;border:1px solid var(--border);color:#fff;cursor:pointer;background:#0a0d14c7;border-radius:999px;place-items:center;width:40px;height:40px;display:grid;position:absolute;top:18px;right:18px}.lightbox-viewport{touch-action:none;cursor:grab;place-items:center;width:min(92vw,1600px);max-width:min(92vw,1600px);height:88vh;max-height:88vh;display:grid;overflow:hidden}.lightbox-viewport.zoomed{cursor:grabbing}.lightbox-image{object-fit:contain;transform-origin:50%;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;pointer-events:none;max-width:min(92vw,1600px);max-height:88vh;transition:transform 80ms ease-out;display:block}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInFromRight{0%{opacity:.01;transform:translate(28px)}to{opacity:1;transform:translate(0)}}@media (width<=1080px){.setup-grid,.workspace-main{grid-template-columns:1fr}.control-column{position:static}}@media (width<=720px){.auth-shell{padding:16px}.auth-card{padding:20px}.auth-login-heading{text-align:center;flex-direction:column}.session-banner{flex-direction:column;align-items:stretch}.workspace{width:min(100% - 28px,1320px);padding:20px 0}.workspace-main{gap:18px}.control-panel,.preview-panel,.task-panel{padding:18px}.form-grid,.form-grid.three,.size-grid,.resolution-grid,.ratio-grid,.task-item,.detail-grid,.history-heading,.panel-heading{grid-template-columns:1fr}.task-actions{flex-direction:row;justify-content:flex-start}.drawer{width:auto;max-height:min(78vh,760px);animation-name:slideInFromBottom;inset:auto 0 0}}@keyframes slideInFromBottom{0%{opacity:.01;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
