@font-face{font-family:AkaSemiNoto;src:url(/api/fonts/NotoSansCJKsc-Regular.otf)format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:AkaSemiNoto;src:url(/api/fonts/NotoSansCJKsc-Bold.otf)format("opentype");font-weight:700;font-style:normal;font-display:swap}:root{--bg-system:#000;--bg-surface:#1c1c1eb8;--bg-elevated:#2c2c2ed1;--bg-card:#3a3a3c80;--glass-bg:#1e1e208c;--glass-border:#ffffff12;--glass-highlight:#ffffff0a;--text-primary:#ffffffeb;--text-secondary:#ffffff8c;--text-tertiary:#ffffff52;--text-accent:#0a84ff;--accent:#0a84ff;--accent-hover:#409cff;--accent-pressed:#06c;--accent-glow:#0a84ff38;--success:#30d158;--error:#ff453a;--warning:#ff9f0a;--separator:#ffffff0f;--separator-strong:#ffffff1f;--shadow-sm:0 1px 2px #00000026, 0 0 1px #00000014;--shadow-md:0 4px 16px #0000002e, 0 0 1px #0000001a;--shadow-lg:0 8px 32px #00000040, 0 0 1px #0000001f;--shadow-glow:0 0 20px var(--accent-glow);--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--dur-fast:.12s;--dur-normal:.2s;--dur-slow:.3s;--radius-xs:6px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-full:999px}*{box-sizing:border-box}html,body,#root{width:100%;height:100%}body{background:var(--bg-system);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,AkaSemiNoto,PingFang SC,Helvetica Neue,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border-radius:var(--radius-full);background:#ffffff1f}::-webkit-scrollbar-thumb:hover{background:#ffffff38}button,input,select,textarea{font:inherit;color:inherit;background:0 0;border:none;outline:none}button,.btn{border-radius:var(--radius-full);letter-spacing:-.01em;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;background:var(--glass-bg);border:1px solid var(--glass-border);border-top:1px solid var(--glass-highlight);box-shadow:var(--shadow-sm);transition:all var(--dur-fast) var(--ease-out);-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;gap:6px;padding:7px 16px;font-size:13px;font-weight:500;display:inline-flex}button:hover,.btn:hover{background:var(--bg-elevated);box-shadow:var(--shadow-md);transform:translateY(-.5px)}button:active,.btn:active{filter:brightness(.92);transition-duration:60ms;transform:scale(.96)}button:disabled,.btn:disabled,button.disabled,.btn.disabled{opacity:.35;cursor:not-allowed;pointer-events:none;filter:none;transform:none}button.primary,.btn.primary{background:var(--accent);color:#fff;box-shadow:0 0 0 0 var(--accent-glow), var(--shadow-sm);border-color:#0000}button.primary:hover,.btn.primary:hover{background:var(--accent-hover);box-shadow:0 0 0 3px var(--accent-glow), var(--shadow-md);transform:translateY(-.5px)}button.primary:active,.btn.primary:active{background:var(--accent-pressed);transform:scale(.96)}button.ghost,.btn.ghost{box-shadow:none;background:0 0;border-color:#0000}button.ghost:hover,.btn.ghost:hover{background:#ffffff0f}button.small,.btn.small{padding:4px 10px;font-size:12px}button.micro,.btn.micro{padding:2px 8px;font-size:11px}button.danger,.btn.danger{color:#ffb4b4;border-color:#ff453a40}button.danger:hover,.btn.danger:hover{background:#ff453a1f}button.success,.btn.success{color:#8fdc9a;border-color:#30d15840}button.icon-btn,.icon-btn{border-radius:var(--radius-sm);width:32px;height:32px;padding:6px}button.link,.btn.link,a.link{box-shadow:none;color:var(--accent);background:0 0;border:none;padding:4px 0}button.link:hover,.btn.link:hover,a.link:hover{text-underline-offset:2px;text-decoration:underline}input,select,textarea{border-radius:var(--radius-sm);border:1px solid var(--glass-border);width:100%;color:var(--text-primary);transition:all var(--dur-fast) var(--ease-out);background:#00000059;padding:8px 12px;font-size:13px}input::placeholder,textarea::placeholder{color:var(--text-tertiary)}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow), inset 0 1px 2px #0000001a;background:#00000073}input[type=color]{cursor:pointer;height:36px;padding:3px 4px}input[type=number]{appearance:textfield}input[type=number]::-webkit-inner-spin-button{opacity:.5}input[type=number]::-webkit-outer-spin-button{opacity:.5}input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);cursor:pointer}select{cursor:pointer;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='rgba(255,255,255,0.5)' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:30px}select option{color:var(--text-primary);background:#1c1c1e}label{color:var(--text-secondary);cursor:default;flex-direction:column;gap:5px;font-size:12px;font-weight:500;display:flex}label.inline{cursor:pointer;flex-direction:row;align-items:center;gap:8px}label .label-note{color:var(--text-tertiary);font-size:11px;font-weight:400}.card,.panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(24px)saturate(160%);border:1px solid var(--glass-border);border-top:1px solid var(--glass-highlight);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);transition:box-shadow var(--dur-normal) var(--ease-out), transform var(--dur-normal) var(--ease-out)}.card:hover,.panel:hover{box-shadow:var(--shadow-lg)}.card-inner{border-radius:var(--radius-md);border:1px solid var(--separator);background:#0000002e}hr,.divider{background:linear-gradient(90deg, transparent, var(--separator), transparent);border:none;height:1px;margin:8px 0}.divider-vertical{background:linear-gradient(180deg, transparent, var(--separator), transparent);width:1px;height:100%}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-accent{color:var(--accent)}.text-success{color:var(--success)}.text-error{color:var(--error)}.text-xs{font-size:11px;line-height:1.4}.text-sm{font-size:12px;line-height:1.45}.text-base{font-size:13px;line-height:1.5}.text-md{font-size:14px;line-height:1.5}.text-lg{font-size:16px;line-height:1.4}.text-xl{font-size:20px;line-height:1.3}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.flex{display:flex}.flex-col{flex-direction:column;display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.flex-1{flex:1;min-width:0;min-height:0}.shrink-0{flex-shrink:0}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.status-dot{border-radius:var(--radius-full);width:8px;height:8px;display:inline-block}.status-dot.idle{background:var(--text-tertiary)}.status-dot.running{background:var(--accent);animation:1.5s ease-in-out infinite pulse}.status-dot.success{background:var(--success)}.status-dot.error{background:var(--error)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.spinner{border:2px solid #ffffff1f;border-top-color:var(--accent);border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,#ffffff0a 25%,#ffffff14 50%,#ffffff0a 75%) 0 0/200% 100%;animation:1.5s ease-in-out infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes slideInRight{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.anim-fade-in{animation:fadeIn .25s var(--ease-out) both}.anim-fade-in-scale{animation:fadeInScale .2s var(--ease-out) both}.anim-slide-in{animation:slideInRight .2s var(--ease-out) both}.app-shell{background:var(--bg-system);flex-direction:column;height:100vh;display:flex}.topbar{-webkit-backdrop-filter:blur(32px)saturate(180%);border-bottom:1px solid var(--separator);z-index:100;background:#0000008c;flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;height:52px;padding:0 18px;display:flex}.topbar-brand{align-items:center;gap:10px;display:flex}.topbar-brand-icon{border-radius:var(--radius-sm);background:linear-gradient(135deg, var(--accent), #5e5ce6);color:#fff;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;font-weight:700;display:flex}.topbar-brand-text{flex-direction:column;gap:0;display:flex}.topbar-brand-title{letter-spacing:-.01em;color:var(--text-primary);font-size:13px;font-weight:600;line-height:1.3}.topbar-brand-sub{color:var(--text-tertiary);letter-spacing:.02em;font-size:10px;line-height:1.2}.topbar-actions{align-items:center;gap:8px;display:flex}.topbar-status{border-radius:var(--radius-full);background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-secondary);align-items:center;gap:8px;max-width:400px;padding:4px 12px;font-size:12px;display:flex}.topbar-status.running{color:var(--accent)}.topbar-status.success{color:var(--success)}.topbar-status.error{color:var(--error)}.workspace{flex:1;gap:12px;min-height:0;padding:12px;display:flex}.left-rail{flex-direction:column;flex-shrink:0;gap:10px;width:260px;display:flex;overflow:hidden}.rail-panel{composes:card;flex-direction:column;display:flex;overflow:hidden}.rail-panel-header{justify-content:space-between;align-items:center;padding:12px 14px 8px;display:flex}.rail-panel-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:600}.rail-panel-body{flex:1;min-height:0;padding:0 14px 14px;overflow-y:auto}.upload-zone{border:2px dashed var(--glass-border);border-radius:var(--radius-md);text-align:center;cursor:pointer;transition:all var(--dur-fast) var(--ease-out);background:#00000026;flex-direction:column;align-items:center;gap:8px;padding:28px 16px;display:flex}.upload-zone:hover{border-color:var(--accent);background:#0a84ff0a}.upload-zone.dragover{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);background:#0a84ff14}.upload-zone input{display:none}.upload-zone-icon{opacity:.5;font-size:28px}.upload-zone-text{color:var(--text-secondary);font-size:13px;font-weight:500}.upload-zone-hint{color:var(--text-tertiary);font-size:11px}.thumb-grid{grid-template-columns:repeat(3,1fr);gap:6px;padding:8px;display:grid}.thumb-item{aspect-ratio:1;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--dur-fast) var(--ease-out);background:#0000004d;border:1px solid #0000;margin:2px;position:relative;overflow:visible}.thumb-item:hover .thumb-grid{grid-template-columns:repeat(3,1fr);gap:6px;padding:8px;display:grid}.thumb-item:hover .thumb-item{aspect-ratio:1;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--dur-fast) var(--ease-out);background:#0000004d;border:1px solid #0000;margin:2px;position:relative;overflow:visible}.thumb-item:hover{aspect-ratio:1;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--dur-fast) var(--ease-out);background:#0000004d;border:1px solid #0000;position:relative;overflow:visible}.thumb-item:hover{border-color:var(--glass-border);transform:scale(1.02)}.thumb-item.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.thumb-item img{object-fit:cover;border-radius:var(--radius-sm);width:100%;height:100%;display:block}.thumb-item .thumb-remove{border-radius:var(--radius-full);color:#fff;cursor:pointer;z-index:2;opacity:0;width:22px;height:22px;transition:opacity var(--dur-fast), transform var(--dur-fast);pointer-events:none;background:#ff453af2;border:none;justify-content:center;align-items:center;padding:0;font-size:12px;display:flex;position:absolute;top:-8px;left:-8px;box-shadow:0 1px 4px #0000004d}.thumb-item:hover .thumb-remove{opacity:1;pointer-events:auto}.thumb-item .thumb-remove:hover{background:#ff453a;transform:scale(1.1)}.preset-list{flex-direction:column;gap:6px;display:flex}.preset-card{text-align:left;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--dur-fast) var(--ease-out);background:#00000026;border:1px solid #0000;flex-direction:column;flex-shrink:0;gap:3px;min-width:0;padding:10px 12px;display:flex}.preset-card:hover{border-color:var(--glass-border);background:#ffffff0d}.preset-card:active{transform:scale(.98)}.preset-card-name{color:var(--text-primary);font-size:13px;font-weight:500}.preset-card-desc{color:var(--text-tertiary);white-space:normal;word-break:break-word;overflow-wrap:break-word;font-size:11px;line-height:1.4}.preview-stage{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex;overflow:hidden}.preview-panel{composes:card;flex-direction:column;flex:1;padding:16px;display:flex;overflow:hidden}.preview-frame{background:#00000059;flex:1;justify-content:center;align-items:center;min-height:0;display:flex;position:relative;overflow:hidden}.preview-frame img{object-fit:contain;max-width:100%;max-height:100%;transition:opacity .3s;display:block}.preview-empty{color:var(--text-tertiary);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:40px;display:flex}.preview-empty-icon{opacity:.25;font-size:40px}.preview-empty-title{color:var(--text-secondary);font-size:14px;font-weight:500}.preview-empty-sub{color:var(--text-tertiary);max-width:260px;font-size:12px}.preview-toolbar{justify-content:space-between;align-items:center;gap:10px;padding-top:4px;display:flex}.preview-toolbar-left{color:var(--text-secondary);align-items:center;gap:8px;font-size:12px;display:flex}.inspector{flex-direction:column;flex-shrink:0;gap:10px;width:340px;display:flex;overflow:hidden}.inspector-panel{composes:card;flex-direction:column;flex:1;display:flex;overflow:hidden}.inspector-tabs{border-bottom:1px solid var(--separator);gap:2px;padding:8px 8px 0;display:flex}.inspector-tab{border-radius:var(--radius-sm) var(--radius-sm) 0 0;color:var(--text-secondary);cursor:pointer;box-shadow:none;transition:color var(--dur-fast) var(--ease-out);background:0 0;border:none;padding:7px 14px;font-size:12px;font-weight:500;position:relative}.inspector-tab:hover,.inspector-tab.active{color:var(--text-primary);box-shadow:none;background:0 0}.inspector-tab.active:after{content:"";background:var(--accent);border-radius:2px 2px 0 0;height:2px;animation:.15s fadeIn;position:absolute;bottom:-1px;left:8px;right:8px}.inspector-body{flex:1;min-height:0;padding:14px;overflow-y:auto}.corner-tabs{gap:4px;margin-bottom:12px;display:flex}.corner-tab{border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;box-shadow:none;transition:all var(--dur-fast) var(--ease-out);background:0 0;border:none;flex:1;padding:6px 0;font-size:12px;font-weight:500}.corner-tab:hover{color:var(--text-primary);box-shadow:none;background:#ffffff0a}.corner-tab.active{color:var(--text-primary);box-shadow:none;background:#ffffff14}.editor-card{border:1px solid var(--separator);border-radius:var(--radius-md);background:#0000002e;margin-bottom:10px;padding:12px}.editor-card-title{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.editor-card-title h3{color:var(--text-primary);margin:0;font-size:13px;font-weight:600}.chip-list{flex-direction:column;gap:6px;margin-bottom:10px;display:flex}.chip-item{border:1px solid var(--glass-border);border-radius:var(--radius-sm);transition:all var(--dur-fast) var(--ease-out);background:#00000040;align-items:center;gap:6px;padding:6px 8px;display:flex}.chip-item:hover{border-color:var(--glass-border);background:#00000059}.chip-item select{flex:1;min-width:0;padding:5px 8px;font-size:12px}.chip-item input[type=text]{flex:1;padding:5px 8px;font-size:12px}.chip-item .chip-remove{border-radius:var(--radius-sm);width:24px;height:24px;color:var(--text-tertiary);box-shadow:none;cursor:pointer;transition:all var(--dur-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:0;font-size:14px;display:flex}.chip-item .chip-remove:hover{color:var(--error);background:#ff453a1a}.form-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.form-row-3{grid-template-columns:1fr 1fr 1fr;gap:8px;display:grid}.file-upload-item{border-radius:var(--radius-sm);border:1px solid var(--glass-border);cursor:pointer;transition:all var(--dur-fast);background:#00000026;align-items:center;gap:8px;padding:8px 10px;display:flex}.file-upload-item:hover{border-color:var(--accent);background:#0a84ff0a}.file-upload-item input{display:none}.toast-container{z-index:1000;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;top:68px;right:18px}.toast{pointer-events:auto;border-radius:var(--radius-md);background:var(--glass-bg);-webkit-backdrop-filter:blur(20px)saturate(160%);border:1px solid var(--glass-border);box-shadow:var(--shadow-lg);animation:slideInToast .3s var(--ease-out) both;align-items:center;gap:8px;max-width:320px;padding:10px 16px;font-size:13px;font-weight:500;display:flex}@keyframes slideInToast{0%{opacity:0;transform:translate(20px)scale(.95)}to{opacity:1;transform:translate(0)scale(1)}}.toast-success{color:var(--success)}.toast-error{color:var(--error)}.toast-info{color:var(--accent)}.progress-bar{border-radius:var(--radius-full);background:#ffffff0f;width:100%;height:4px;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, var(--accent), var(--accent-hover));border-radius:var(--radius-full);height:100%;transition:width .3s var(--ease-out);box-shadow:0 0 8px var(--accent-glow)}@media (width<=1024px){.workspace{flex-direction:column;overflow-y:auto}.left-rail,.inspector{width:100%;height:auto;max-height:400px}.preview-stage{min-height:400px}}
