@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Noto+Sans+SC:wght@300;400;500;600;700&display=swap";
:root{--bg-primary:#0a0a0f;--bg-secondary:#12121a;--bg-card:#ffffff0a;--bg-card-hover:#ffffff12;--bg-glass:#ffffff0f;--border-color:#ffffff14;--border-active:#fff3;--text-primary:#e8e8ed;--text-secondary:#8b8b9e;--text-dim:#5a5a6e;--accent-blue:#4285f4;--accent-green:#00d4aa;--accent-orange:#ff6b35;--accent-purple:#722ed1;--accent-pink:#eb2f96;--status-success:#52c41a;--status-processing:#faad14;--status-queued:#1890ff;--status-error:#ff4d4f;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--shadow-glass:0 8px 32px #0000004d;--transition:all .25s cubic-bezier(.4,0,.2,1);--select-option-bg:#1e1e2e;--select-option-color:#e8e8ed}[data-theme=light]{--bg-primary:#f5f6fa;--bg-secondary:#fff;--bg-card:#00000008;--bg-card-hover:#0000000f;--bg-glass:#00000008;--border-color:#0000001a;--border-active:#0003;--text-primary:#1a1a2e;--text-secondary:#555570;--text-dim:#8888a0;--accent-blue:#3b78e7;--accent-green:#00b894;--accent-purple:#6c2dc7;--accent-pink:#d6277e;--shadow-glass:0 8px 32px #00000014;--select-option-bg:#fff;--select-option-color:#1a1a2e}[data-theme=light] .header{background:#ffffffe6;border-bottom-color:#00000014}[data-theme=light] .header-logo{background:linear-gradient(135deg,#5b6abf,#8e5baf);-webkit-text-fill-color:transparent;-webkit-background-clip:text}[data-theme=light] .header-logo span{filter:drop-shadow(0 0 6px #5b6abf4d)}[data-theme=light] .engine-tab.active{color:var(--text-primary);background:color-mix(in srgb,var(--engine-color,var(--accent-blue))12%,white);box-shadow:0 0 16px color-mix(in srgb,var(--engine-color,var(--accent-blue))15%,transparent)}[data-theme=light] .mode-btn.active{color:var(--text-primary);background:#00000014;box-shadow:0 1px 4px #0000001a}[data-theme=light] .generate-btn{background:linear-gradient(135deg,#5b6abf,#8e5baf);box-shadow:0 2px 12px #5b6abf40}[data-theme=light] .generate-btn:hover{box-shadow:0 6px 24px #5b6abf59}[data-theme=light] .task-card.active{border-color:var(--accent-blue);background:#3b78e70d}[data-theme=light] .toggle-switch{background:#0000001f}[data-theme=light] .toggle-switch:checked{background:var(--accent-blue)}[data-theme=light] .ratio-btn.active,[data-theme=light] .duration-btn.active{border-color:var(--accent-blue);background:#3b78e714}[data-theme=light] .preview-video{background:#e8e8ed}[data-theme=light] .toast.error{background:#ff4d4ff2}[data-theme=light] .toast.success{background:#52c41af2}[data-theme=light] .fullscreen-overlay{background:#000000bf}[data-theme=light] .params-wrapper{background:#00000005}[data-theme=light] .right-panel{border-left:1px solid var(--border-color)}.theme-toggle-btn{border-radius:var(--radius-sm);border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-dim);cursor:pointer;transition:var(--transition);justify-content:center;align-items:center;padding:6px 10px;font-size:14px;line-height:1;display:flex}.theme-toggle-btn:hover{background:var(--bg-card-hover);color:var(--text-primary);transform:translateY(-1px)}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-primary);color:var(--text-primary);min-height:100vh;font-family:Inter,Noto Sans SC,-apple-system,sans-serif;overflow-x:hidden}.header{border-bottom:1px solid var(--border-color);z-index:100;-webkit-backdrop-filter:blur(24px);background:#12121ad9;justify-content:space-between;align-items:center;height:52px;padding:12px 24px;display:flex;position:sticky;top:0}.header-logo{background:linear-gradient(135deg,#667eea,#764ba2);-webkit-text-fill-color:transparent;-webkit-background-clip:text;align-items:center;gap:10px;font-size:18px;font-weight:700;display:flex;position:relative}.header-logo span{filter:drop-shadow(0 0 8px #667eea80);font-size:22px;animation:3s ease-in-out infinite logoGlow}@keyframes logoGlow{0%,to{filter:drop-shadow(0 0 6px #667eea66)}50%{filter:drop-shadow(0 0 14px #764ba2b3)}}.header-actions{align-items:center;gap:8px;display:flex}.snapshot-actions{gap:4px;display:flex}.snapshot-btn{border-radius:var(--radius-sm);border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-dim);cursor:pointer;transition:var(--transition);white-space:nowrap;padding:6px 10px;font-size:13px;font-weight:500;line-height:1}.snapshot-btn:hover{background:var(--bg-card-hover);color:var(--text-primary);transform:translateY(-1px)}.snapshot-btn.save:hover{color:var(--accent-blue);border-color:#4285f44d}.snapshot-btn.load:hover{color:var(--status-success);border-color:#52c41a4d}.api-key-input{align-items:center;gap:0;display:flex}.api-key-input label{color:var(--text-dim);white-space:nowrap;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm)0 0 var(--radius-sm);border-right:none;padding:7px 10px;font-size:13px}.api-key-input input{background:var(--bg-card);border:1px solid var(--border-color);border-radius:0 var(--radius-sm)var(--radius-sm)0;color:var(--text-primary);width:240px;transition:var(--transition);padding:7px 14px;font-family:Inter,monospace;font-size:12px}.api-key-input input:focus{border-color:var(--accent-blue);outline:none;box-shadow:0 0 0 3px #4285f41f}.api-key-input input::placeholder{color:var(--text-dim)}.main-layout{grid-template-columns:1fr 420px;height:calc(100vh - 52px);display:grid}.left-panel{border-right:1px solid var(--border-color);padding:20px 28px;overflow-y:auto}.engine-tabs{gap:8px;margin-bottom:18px;display:flex}.engine-tab{border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-dim);cursor:pointer;transition:var(--transition);border-radius:20px;align-items:center;gap:7px;padding:8px 22px;font-size:13px;font-weight:500;display:flex;position:relative;overflow:hidden}.engine-tab:before{content:"";background:var(--engine-color,var(--text-dim));opacity:.5;width:6px;height:6px;transition:var(--transition);border-radius:50%;flex-shrink:0}.engine-tab:hover{background:var(--bg-card-hover);color:var(--text-primary);border-color:var(--border-active);transform:translateY(-1px)}.engine-tab:hover:before{opacity:.8}.engine-tab.active{color:#fff;border-color:var(--engine-color,var(--accent-blue));background:color-mix(in srgb,var(--engine-color,var(--accent-blue))18%,transparent);box-shadow:0 0 20px color-mix(in srgb,var(--engine-color,var(--accent-blue))20%,transparent),0 0 40px color-mix(in srgb,var(--engine-color,var(--accent-blue))8%,transparent);font-weight:600}.engine-tab.active:before{opacity:1;box-shadow:0 0 6px var(--engine-color,var(--accent-blue))}.mode-selector{background:var(--bg-card);border:1px solid var(--border-color);border-radius:20px;gap:2px;margin-bottom:20px;padding:4px;display:flex;position:relative}.mode-btn{color:var(--text-dim);cursor:pointer;transition:var(--transition);z-index:1;background:0 0;border:none;border-radius:16px;flex:1;padding:8px 12px;font-size:12px;font-weight:500;position:relative}.mode-btn:hover:not(:disabled){color:var(--text-primary)}.mode-btn.active{color:var(--text-primary);background:#ffffff1f;font-weight:600;box-shadow:0 2px 8px #0000004d}.mode-btn:disabled{opacity:.25;cursor:not-allowed}.section-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.8px;align-items:center;gap:6px;margin-bottom:8px;font-size:11px;font-weight:600;display:flex}.model-selector{margin-bottom:18px}.model-select{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);cursor:pointer;transition:var(--transition);appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238b8b9e' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding:9px 14px;font-size:13px}.model-select:focus{border-color:var(--accent-blue);outline:none;box-shadow:0 0 0 3px #4285f41a}select option,.model-select option,.param-select option{background:var(--select-option-bg);color:var(--select-option-color);padding:8px 12px}.prompt-area{margin-bottom:18px;position:relative}.prompt-textarea{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);width:100%;min-height:120px;color:var(--text-primary);resize:vertical;transition:var(--transition);padding:14px;font-family:Inter,Noto Sans SC,sans-serif;font-size:13px;line-height:1.7}.prompt-textarea:focus{border-color:var(--accent-blue);outline:none;box-shadow:0 0 0 3px #4285f41a,inset 0 0 20px #4285f40a}.prompt-textarea::placeholder{color:var(--text-dim)}.prompt-char-count{color:var(--text-dim);pointer-events:none;font-variant-numeric:tabular-nums;font-size:10px;position:absolute;bottom:10px;right:14px}.negative-prompt{margin-top:10px}.negative-prompt .prompt-textarea{min-height:56px;font-size:12px}.image-upload-area{gap:12px;margin-bottom:18px;display:flex}.upload-zone{border:2px dashed var(--border-color);border-radius:var(--radius-md);cursor:pointer;height:110px;max-height:110px;transition:var(--transition);background:var(--bg-card);flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.upload-zone:hover{border-color:var(--text-dim);background:var(--bg-card-hover);transform:translateY(-1px)}.upload-zone.has-image{border-style:solid;border-color:var(--accent-blue);height:110px;max-height:110px}.upload-zone img{object-fit:contain;z-index:1;border-radius:4px;max-width:85%;max-height:80px}.upload-zone .upload-label{color:var(--text-dim);text-align:center;z-index:1;font-size:11px}.upload-zone .upload-icon{margin-bottom:2px;font-size:22px}.upload-zone .remove-btn{color:#fff;cursor:pointer;z-index:3;opacity:0;width:22px;height:22px;transition:var(--transition);background:#000000bf;border:1px solid #ffffff26;border-radius:50%;justify-content:center;align-items:center;font-size:11px;display:flex;position:absolute;top:4px;right:4px}.upload-zone:hover .remove-btn{opacity:1}.upload-zone .remove-btn:hover{background:var(--status-error);border-color:var(--status-error)}.upload-zone .enlarge-btn{color:#fff;cursor:pointer;z-index:3;opacity:0;width:24px;height:24px;transition:var(--transition);background:#000000a6;border:1px solid #ffffff26;border-radius:6px;justify-content:center;align-items:center;font-size:12px;display:flex;position:absolute;bottom:4px;right:4px}.upload-zone:hover .enlarge-btn{opacity:1}.upload-zone .enlarge-btn:hover{background:var(--accent-blue);border-color:var(--accent-blue)}.image-lightbox{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:2000;cursor:pointer;background:#000000e0;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.image-lightbox img{object-fit:contain;border-radius:var(--radius-md);max-width:90vw;max-height:85vh;box-shadow:0 16px 64px #0009}.params-wrapper{border:1px solid var(--border-color);border-radius:var(--radius-lg);transition:var(--transition);background:#ffffff08;margin-bottom:20px;padding:16px}.params-wrapper:hover{border-color:#ffffff1f}.params-wrapper .section-label{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.params-toggle-icon{color:var(--text-dim);font-size:10px;transition:transform .3s}.params-toggle-icon.collapsed{transform:rotate(-90deg)}.params-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.params-grid.collapsed{display:none}.param-item{flex-direction:column;gap:6px;display:flex}.param-label{color:var(--text-dim);font-size:11px;font-weight:500}.param-select,.param-toggle-row{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;transition:var(--transition);height:36px;padding:8px 12px;font-size:12px}.param-select:hover,.param-toggle-row:hover{border-color:var(--border-active)}.param-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238b8b9e' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat}.param-select:focus{border-color:var(--accent-blue);outline:none}.param-toggle-row{justify-content:space-between;align-items:center;display:flex}.ratio-btn-group{gap:8px;display:flex}.ratio-btn{border-radius:var(--radius-sm);border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-dim);cursor:pointer;transition:var(--transition);flex-direction:column;flex:1;align-items:center;gap:4px;padding:8px 12px;font-size:10px;display:flex}.ratio-btn:hover{border-color:var(--border-active);color:var(--text-primary);background:var(--bg-card-hover)}.ratio-btn.active{border-color:var(--accent-blue);color:var(--accent-blue);background:#4285f414;box-shadow:0 0 12px #4285f41f}.ratio-icon{border:1.5px solid;border-radius:2px}.ratio-icon.r-16-9{width:28px;height:16px}.ratio-icon.r-9-16{width:14px;height:25px}.ratio-icon.r-1-1{width:20px;height:20px}.duration-btn-group{gap:6px;display:flex}.duration-btn{border-radius:var(--radius-sm);border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-dim);cursor:pointer;transition:var(--transition);text-align:center;flex:1;padding:7px 12px;font-size:12px;font-weight:500}.duration-btn:hover{border-color:var(--border-active);color:var(--text-primary)}.duration-btn.active{border-color:var(--accent-blue);color:var(--accent-blue);background:#4285f414}.toggle-switch{appearance:none;cursor:pointer;background:#ffffff1a;border:none;border-radius:10px;flex-shrink:0;width:38px;height:20px;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative}.toggle-switch:checked{background:var(--accent-blue);box-shadow:0 0 10px #4285f44d}.toggle-switch:before{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:all .3s cubic-bezier(.4,0,.2,1);position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0000004d}.toggle-switch:checked:before{transform:translate(18px)}.generate-btn{border-radius:var(--radius-md);cursor:pointer;width:100%;transition:var(--transition);color:#fff;background:linear-gradient(135deg,#667eea,#764ba2);border:none;margin-top:4px;padding:14px;font-size:15px;font-weight:600;position:relative;overflow:hidden}.generate-btn:after{content:"";background:linear-gradient(105deg,#0000 30%,#ffffff1f 45%,#fff3 50%,#ffffff1f 55%,#0000 70%);width:60%;height:200%;animation:3s infinite shimmer;position:absolute;top:-50%;left:-100%}@keyframes shimmer{0%{left:-100%}to{left:200%}}.generate-btn:hover{transform:translateY(-2px);box-shadow:0 6px 24px #667eea66,0 2px 8px #764ba24d}.generate-btn:active{transform:translateY(0)}.generate-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.generate-btn:disabled:after{animation:none}.generate-btn .btn-content{z-index:1;justify-content:center;align-items:center;gap:8px;display:flex;position:relative}.btn-spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.right-panel{background:var(--bg-secondary);flex-direction:column;display:flex;overflow:hidden}.panel-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:14px 16px;font-size:13px;font-weight:600;display:flex}.panel-header .task-count{color:var(--text-dim);background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;padding:2px 8px;font-size:11px;font-weight:400}.task-list{flex:1;min-height:0;padding:10px;overflow-y:auto}.task-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition);border-left:3px solid var(--task-engine-color,var(--border-color));margin-bottom:8px;padding:12px 14px;position:relative}.task-card:hover{background:var(--bg-card-hover);border-color:var(--border-active);border-left-color:var(--task-engine-color,var(--border-active));transform:translate(2px)}.task-card.active{border-color:var(--accent-blue);border-left-color:var(--task-engine-color,var(--accent-blue));background:#4285f40a;box-shadow:0 0 16px #4285f41a}.task-card .task-delete-btn{width:22px;height:22px;color:var(--text-dim);cursor:pointer;opacity:0;transition:var(--transition);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;font-size:11px;display:flex;position:absolute;top:8px;right:8px}.task-card:hover .task-delete-btn{opacity:.6}.task-card .task-delete-btn:hover{opacity:1;color:var(--status-error);background:#ff4d4f1a}.task-card-header{justify-content:space-between;align-items:center;margin-bottom:6px;padding-right:24px;display:flex}.task-engine-badge{color:#fff;border-radius:4px;padding:2px 8px;font-size:10px;font-weight:600}.task-status{color:var(--text-secondary);align-items:center;gap:5px;font-size:10px;display:flex}.status-dot{border-radius:50%;width:6px;height:6px}.status-dot.completed{background:var(--status-success);box-shadow:0 0 6px #52c41a66}.status-dot.processing{background:var(--status-processing);animation:1.5s infinite pulse;box-shadow:0 0 6px #faad1466}.status-dot.queued{background:var(--status-queued);box-shadow:0 0 6px #1890ff4d}.status-dot.failed{background:var(--status-error);box-shadow:0 0 6px #ff4d4f66}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}.task-prompt{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;margin-bottom:8px;font-size:11px;line-height:1.4;overflow:hidden}.task-meta{color:var(--text-dim);justify-content:space-between;align-items:center;font-size:10px;display:flex}.task-actions{gap:4px;display:flex}.task-action-btn{color:var(--text-dim);cursor:pointer;transition:var(--transition);background:0 0;border:1px solid #0000;border-radius:5px;padding:3px 8px;font-size:10px}.task-action-btn:hover{background:var(--bg-card-hover);color:var(--text-primary);border-color:var(--border-color)}.task-action-btn.download:hover{color:var(--status-success);border-color:#52c41a4d}.progress-bar{background:var(--border-color);border-radius:1px;height:2px;margin-top:8px;overflow:hidden}.progress-fill{background:linear-gradient(90deg,var(--status-processing),var(--accent-orange));border-radius:1px;width:40%;height:100%;animation:1.8s ease-in-out infinite indeterminate}@keyframes indeterminate{0%{transform:translate(-100%)}to{transform:translate(350%)}}.preview-section{border-top:1px solid var(--border-color);flex-direction:column;flex:1;min-height:180px;padding:14px;display:flex}.preview-header{color:var(--text-secondary);align-items:center;gap:6px;margin-bottom:10px;font-size:12px;font-weight:600;display:flex}.preview-empty{color:var(--text-dim);border:1px dashed var(--border-color);border-radius:var(--radius-md);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;font-size:12px;display:flex}.preview-empty span{opacity:.15;margin-bottom:4px;font-size:32px;animation:3s ease-in-out infinite breathe}@keyframes breathe{0%,to{opacity:.12;transform:scale(1)}50%{opacity:.25;transform:scale(1.08)}}.preview-video{object-fit:contain;border-radius:var(--radius-sm);background:#000;flex:1;width:100%;min-height:0;margin:0 auto;display:block}.preview-actions{gap:8px;margin-top:10px;display:flex}.preview-download-btn{border-radius:var(--radius-sm);background:linear-gradient(135deg,var(--status-success),#389e0d);color:#fff;cursor:pointer;transition:var(--transition);border:none;flex:1;padding:8px;font-size:12px;font-weight:500}.preview-download-btn:hover{transform:translateY(-1px);box-shadow:0 4px 14px #52c41a4d}.preview-expand-btn{border-radius:var(--radius-sm);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;transition:var(--transition);background:0 0;flex:1;padding:8px;font-size:12px;font-weight:500}.preview-expand-btn:hover{background:var(--bg-card-hover);color:var(--text-primary)}.toast{border-radius:var(--radius-sm);z-index:1000;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);align-items:center;gap:8px;padding:12px 20px;font-size:13px;animation:.35s cubic-bezier(.4,0,.2,1) toastSlideIn;display:flex;position:fixed;top:64px;right:20px;box-shadow:0 8px 32px #0006}.toast.error{color:#fff;background:#ff4d4feb;border:1px solid #ff4d4f66}.toast.success{color:#fff;background:#52c41aeb;border:1px solid #52c41a66}@keyframes toastSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff0f;border-radius:2px}::-webkit-scrollbar-thumb:hover{background:#ffffff1f}@media (max-width:1280px){.main-layout{grid-template-columns:1fr}.right-panel{height:50vh}}.fullscreen-overlay{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:1000;background:#000000eb;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.fullscreen-overlay video{border-radius:var(--radius-md);max-width:90vw;max-height:85vh}.fullscreen-close{color:#fff;cursor:pointer;width:40px;height:40px;transition:var(--transition);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff1a;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;font-size:16px;display:flex;position:absolute;top:20px;right:20px}.fullscreen-close:hover{background:#ffffff40;transform:scale(1.1)}.fullscreen-actions{gap:12px;display:flex;position:absolute;bottom:28px}.fullscreen-actions button{border-radius:var(--radius-sm);color:#fff;cursor:pointer;transition:var(--transition);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff1a;border:1px solid #fff3;padding:10px 24px;font-size:14px}.fullscreen-actions button:hover{background:#fff3;transform:translateY(-1px)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}
