:root{--bg: #ffffff;--bg-soft: #f0f4ff;--bg-secondary: #f8f9fa;--panel: #ffffff;--panel-2: #f8f9fa;--border: #e2e8f0;--text: #1a365d;--text-dim: #718096;--text-secondary: #4a5568;--accent: #667eea;--accent-2: #764ba2;--accent-dark: #5a67d8;--accent-soft: #e3f2fd;--ok: #48bb78;--warn: #f5a623;--err: #ef5b6b;--radius: 12px;--shadow: 0 2px 10px rgba(102, 126, 234, .1);--shadow-lg: 0 8px 28px rgba(102, 126, 234, .14);--preview-max-h: min(66vh, 640px);--preview-max-w: 980px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:radial-gradient(900px 480px at 85% -8%,rgba(102,126,234,.16) 0%,transparent 55%),radial-gradient(700px 420px at 8% 12%,rgba(118,75,162,.1) 0%,transparent 50%),linear-gradient(180deg,var(--bg-soft) 0%,var(--bg) 42%,var(--bg-secondary) 100%) fixed;color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,PingFang SC,Segoe UI,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}.app{min-height:100%;display:flex;flex-direction:column;max-width:1840px;margin:0 auto}.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 28px;flex-wrap:wrap;position:sticky;top:0;z-index:40;background:#ffffffeb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);box-shadow:var(--shadow)}.topbar h1{margin:0;font-size:24px;letter-spacing:.3px;font-weight:700;background:linear-gradient(135deg,var(--accent) 0%,var(--accent-2) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.tagline{margin:2px 0 0;color:var(--text-dim);font-size:12px}.engine-badge{font-size:12px;color:var(--text-secondary);border:1px solid var(--border);border-radius:999px;padding:5px 14px;background:var(--panel);box-shadow:var(--shadow);white-space:nowrap}.engine-badge.mt{color:var(--ok);border-color:#3ecf8e66}.lang-switch{display:inline-flex;gap:2px;border:1px solid var(--border);border-radius:999px;padding:3px;background:var(--panel);box-shadow:var(--shadow)}.lang-switch button{border:0;background:transparent;color:var(--text-secondary);font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;cursor:pointer}.lang-switch button.active{background:var(--bg);color:var(--text)}.engine-badge.st{color:var(--warn);border-color:#f5a62366}.layout{flex:1;display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,.58fr);gap:16px;padding:16px 22px 28px;align-items:stretch}.layout>.right{display:flex;flex-direction:column;min-width:0}@media(max-width:920px){.layout{grid-template-columns:1fr}}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;margin-bottom:10px;box-shadow:var(--shadow)}.panel h2{margin:0 0 12px;font-size:15px}.settings-stack{padding:0;overflow:hidden}.panel h2.opt-group-title{margin:0;padding:10px 18px;font-size:13px;font-weight:700;letter-spacing:.06em;background:var(--bg-soft);border-bottom:1px solid var(--border);color:var(--text)}.opt-group+.opt-group .opt-group-title{border-top:1px solid var(--border)}.opt-group-body{padding:4px 0 8px}.opt-reveal{border-bottom:1px solid var(--border)}.opt-reveal-head{display:flex;align-items:center;gap:10px;padding:11px 18px;cursor:pointer;font-weight:600;-webkit-user-select:none;user-select:none}.opt-reveal-head:hover{background:#667eea0f}.opt-reveal-head input{accent-color:var(--accent)}.opt-reveal-body{padding:4px 18px 12px 42px;background:var(--bg-secondary)}.opt-row{display:grid;grid-template-columns:88px minmax(0,1fr);gap:10px;align-items:center;padding:8px 18px}.opt-row-label{color:var(--text-dim);font-size:13px}.opt-row-control,.opt-row-control select,.opt-row-control input{width:100%}.opt-pad{margin:8px 18px 12px}.opt-hint,.opt-check{margin:6px 18px 10px}.dropzone{background:#f8fafc;border:1.5px dashed #cbd5e1;border-radius:var(--radius);min-height:647px;padding:56px 24px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;cursor:pointer;box-shadow:var(--shadow);transition:border-color .15s,background .15s,box-shadow .15s}.dropzone:hover,.dropzone.over{border-color:var(--accent);background:var(--accent-soft);box-shadow:var(--shadow-lg)}.dz-icon{width:56px;height:56px;color:var(--accent);opacity:.9}.dz-title{font-size:16px;margin:14px 0 4px}.dz-sub{color:var(--text-dim);font-size:12px;margin:0 0 18px}.dz-samples{color:var(--text-dim);font-size:13px}.dz-samples button{margin-left:8px;background:none;border:1px solid var(--border);color:var(--accent);border-radius:8px;padding:4px 12px;cursor:pointer;font-size:13px}.dz-samples button:hover{border-color:var(--accent)}.image-queue{margin-top:10px}.image-queue-head{display:flex;align-items:center;gap:10px;margin-bottom:8px;font-size:12px;color:var(--text-dim)}.image-queue-head .btn{margin-left:auto;padding:2px 10px;font-size:12px}.image-queue-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:442px;overflow:auto}.image-queue-item{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:8px;align-items:center;padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2);cursor:pointer}.image-queue.reorder .image-queue-item{grid-template-columns:48px minmax(0,1fr) 16px auto}.image-queue-item.active{border-color:var(--accent)}.image-queue-item img,.image-queue-item video{width:48px;height:36px;object-fit:cover;border-radius:4px;background:#000}.image-queue-name{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.image-queue-sub{font-size:11px;color:var(--text-dim)}.image-queue-grip{color:var(--text-dim);letter-spacing:-2px;cursor:grab;-webkit-user-select:none;user-select:none}.image-queue-del{padding:2px 8px;font-size:11px}.preview-body.stitch{width:min(100%,var(--preview-max-w));max-height:var(--preview-max-h);overflow:auto;align-items:start;justify-content:center}.stitch-preview{display:block;width:100%;height:auto;background:repeating-conic-gradient(#e2e8f0,#e2e8f0 25%,#f8f9fa 0%,#f8f9fa 50%) 50% / 16px 16px}.preview-head-actions{display:flex;align-items:center;gap:8px}.panel.preview:has(.preview-side) .preview-head-actions{margin-right:20px}.mode-toggle{display:flex;gap:6px}.mode-toggle .btn.active{border-color:var(--accent);color:var(--text)}.preview-row{display:grid;grid-template-columns:minmax(118px,140px) minmax(0,1fr);gap:12px;align-items:start}.preview-row:has(.preview-side){grid-template-columns:minmax(118px,140px) minmax(0,1fr) minmax(148px,164px)}.panel.preview:has(.preview-side)~.panel.result .preview-row{grid-template-columns:minmax(118px,140px) minmax(0,1fr) minmax(148px,164px)}.result-meta{display:flex;flex-direction:column;gap:12px;min-width:0}.result-download{width:100%;box-sizing:border-box;text-align:center;padding:8px 10px;font-size:13px}.preview-meta{margin:0;min-width:0}.preview-meta div{flex-direction:column;gap:2px}.preview-meta dt{min-width:0;font-size:12px}.preview-meta dd{font-size:13px;line-height:1.4}.preview-main{min-width:0;overflow:visible}.trim-align{width:min(var(--preview-max-w),calc(var(--preview-max-h) * var(--rw) / var(--rh)));max-width:100%;margin-left:auto;margin-right:auto;box-sizing:border-box;position:relative}.trim-align .video-trim{width:100%}.trim-align .trim-row{width:100%;gap:24px}.trim-align .trim-strip{flex:1 1 auto;width:auto;min-width:0;max-width:none}.trim-align .trim-cut-btn{position:absolute;left:100%;top:0;bottom:auto;height:56px;margin-left:24px}.preview-side{min-width:0;margin-left:12px}.preview-side .image-queue{margin-top:0;font-size:11px}.preview-side .image-queue-head,.preview-side .image-queue-head .btn,.preview-side .hint{font-size:11px}.preview-side .image-queue-item{grid-template-columns:32px minmax(0,1fr) auto;gap:4px;padding:4px 5px}.preview-side .image-queue-item img,.preview-side .image-queue-item video{width:32px;height:24px}.preview-side .image-queue-name{font-size:11px}.preview-side .image-queue-sub{font-size:10px;line-height:1.3}.preview-side .image-queue-del{padding:1px 5px;font-size:10px}.preview-side .hint{margin-top:8px}@media(max-width:640px){.preview-row,.preview-row:has(.preview-side),.panel.preview:has(.preview-side)~.panel.result .preview-row{grid-template-columns:1fr}.preview-side{margin-left:0}.panel.preview:has(.preview-side) .preview-head-actions{margin-right:0}}.preview-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.preview-head h2{margin:0}.preview-body{position:relative;width:fit-content;max-width:100%;margin-inline:auto;background:#0a0c10;border-radius:8px;overflow:hidden;display:flex;align-items:center;justify-content:center;min-height:160px}.preview-body img,.preview-body video{max-width:100%;max-height:var(--preview-max-h);display:block}.preview-stage{--rw: 16;--rh: 9;position:relative;width:min(var(--preview-max-w),calc(var(--preview-max-h) * var(--rw) / var(--rh)));max-width:100%;max-height:var(--preview-max-h);aspect-ratio:var(--rw) / var(--rh);height:auto;margin-inline:auto;background:#000;overflow:hidden;flex:0 0 auto;align-self:center;container-type:size}.preview-stage.is-zoomed{cursor:grab}.preview-stage.is-zoomed:active{cursor:grabbing}.preview-zoom{position:absolute;top:0;right:0;bottom:0;left:0;transform-origin:center center;will-change:transform}.preview-spin{position:absolute;top:0;right:0;bottom:0;left:0}.preview-spin img,.preview-spin video{width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;display:block}.preview-spin.r90,.preview-spin.r270{inset:auto;width:100cqh;height:100cqw;left:50%;top:50%;transform:translate(-50%,-50%) rotate(90deg)}.preview-spin.r270{transform:translate(-50%,-50%) rotate(270deg)}.preview-spin.r180 img,.preview-spin.r180 video{transform:rotate(180deg)}.preview-play{position:absolute;right:10px;bottom:10px;z-index:3;background:#000000a6;color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:8px;padding:4px 10px;font-size:12px;cursor:pointer}.preview-tools{position:absolute;top:10px;left:50%;transform:translate(-50%);z-index:6;display:flex;align-items:center;gap:6px;opacity:0;pointer-events:none;transition:opacity .15s ease}.preview-body:hover .preview-tools,.preview-body:has(.preview-stage.is-zoomed) .preview-tools{opacity:1;pointer-events:auto}.preview-tools button{background:#0e101473;color:#fff;border:1px solid rgba(255,255,255,.22);border-radius:8px;padding:6px 12px;font-size:13px;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);line-height:1}.preview-tools button:disabled{opacity:.4;cursor:default}.preview-zoom-edit-wrap{display:inline-flex;align-items:center;gap:2px;min-width:3.6em;color:#fff;font-size:12px;font-variant-numeric:tabular-nums;text-shadow:0 1px 2px rgba(0,0,0,.6);cursor:text}.preview-zoom-edit{width:2.8em;background:#0e101473;color:#fff;border:1px solid rgba(255,255,255,.22);border-radius:6px;padding:4px 2px;font-size:12px;line-height:1;text-align:center;font-variant-numeric:tabular-nums;outline:none}.preview-zoom-edit:focus{border-color:#ffffff8c}.preview-zoom-edit:disabled{opacity:.4}.preview-failed{color:var(--text-dim);padding:40px 20px;text-align:center}.compare-handle-layer{position:absolute;z-index:5;pointer-events:none}.compare-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none}.compare-layer.measuring .compare-after{opacity:.92}.compare-after{width:100%;height:100%;object-fit:fill;display:block;pointer-events:none}.compare-handle{position:absolute;top:0;bottom:0;width:18px;transform:translate(-50%);cursor:ew-resize;pointer-events:auto;z-index:3;touch-action:none}.compare-handle:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;transform:translate(-50%);background:#fff;box-shadow:0 0 0 1px #00000059}.compare-handle:after{content:"";position:absolute;left:50%;top:50%;width:22px;height:22px;transform:translate(-50%,-50%);border:2px solid #fff;border-radius:50%;background:var(--accent);box-shadow:0 0 0 1px #00000059}.compare-chip{position:absolute;bottom:8px;z-index:2;pointer-events:none;background:#000000a6;color:#fff;font-size:11px;padding:3px 8px;border-radius:6px}.compare-chip.left{left:8px}.compare-chip.right{right:8px}.crop-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;touch-action:none;pointer-events:none}.crop-layer.disabled,.crop-layer.disabled *{pointer-events:none}.crop-hit{position:absolute;pointer-events:auto;cursor:crosshair;touch-action:none}.crop-mask{position:absolute;background:#0000008c;pointer-events:none}.crop-box{position:absolute;border:1.5px solid var(--accent);box-shadow:0 0 0 1px #00000059;cursor:move;box-sizing:border-box;pointer-events:auto;touch-action:none}.crop-handle{position:absolute;width:10px;height:10px;background:var(--accent);border:1px solid #fff;border-radius:1px;box-sizing:border-box;pointer-events:auto}.crop-handle.n{left:50%;top:-5px;transform:translate(-50%);cursor:ns-resize}.crop-handle.s{left:50%;bottom:-5px;transform:translate(-50%);cursor:ns-resize}.crop-handle.e{right:-5px;top:50%;transform:translateY(-50%);cursor:ew-resize}.crop-handle.w{left:-5px;top:50%;transform:translateY(-50%);cursor:ew-resize}.crop-handle.ne{right:-5px;top:-5px;cursor:nesw-resize}.crop-handle.nw{left:-5px;top:-5px;cursor:nwse-resize}.crop-handle.se{right:-5px;bottom:-5px;cursor:nwse-resize}.crop-handle.sw{left:-5px;bottom:-5px;cursor:nesw-resize}.crop-settings{margin-top:4px}.crop-aspects,.crop-shortcuts{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.crop-aspect.active{border-color:var(--accent);color:var(--accent)}.crop-nums{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.crop-num{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--text-dim)}.crop-num input{width:100%;min-width:0}.video-trim{margin-top:12px;padding:0;-webkit-user-select:none;user-select:none;width:100%;max-width:100%;box-sizing:border-box}.video-trim.disabled{pointer-events:none;opacity:.55}.trim-strip{position:relative;height:56px;border-radius:6px;overflow:visible;background:#07080b;border:1px solid var(--border);cursor:pointer;touch-action:none}.trim-film{display:block;width:100%;height:100%;object-fit:fill;pointer-events:none}.trim-status{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--text-dim);background:#07080b73;pointer-events:none;z-index:1}.trim-dim{position:absolute;top:0;bottom:0;background:#0000008c;pointer-events:none;z-index:2}.trim-sel{position:absolute;top:0;bottom:0;box-sizing:border-box;border:2px solid #f5c518;border-radius:3px;cursor:grab;z-index:3;touch-action:none}.trim-sel:active{cursor:grabbing}.trim-handle{position:absolute;top:0;bottom:0;width:10px;background:#f5c518;cursor:ew-resize;touch-action:none;z-index:4}.trim-handle.left{left:-2px;border-radius:2px 0 0 2px}.trim-handle.right{right:-2px;border-radius:0 2px 2px 0}.trim-handle:after{content:"";position:absolute;top:50%;left:3px;width:4px;height:18px;transform:translateY(-50%);border-left:1px solid rgba(0,0,0,.45);border-right:1px solid rgba(0,0,0,.45)}.trim-playhead{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:#fff;box-shadow:0 0 0 1px #00000059;pointer-events:none;z-index:5}.trim-playhead:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);border-left:5px solid transparent;border-right:5px solid transparent;border-top:7px solid #fff}.trim-row{display:flex;align-items:stretch;gap:24px}.trim-row .trim-strip{flex:1;min-width:0}.trim-cut-btn{flex:0 0 auto;align-self:stretch;min-width:88px;padding:0 22px;font-size:16px;font-weight:700;border-radius:10px;white-space:nowrap}.trim-meta{display:flex;align-items:center;gap:12px;margin-top:6px;font-size:12px;color:var(--text-dim);font-variant-numeric:tabular-nums}.kv{margin:12px 0 0;display:grid;gap:6px}.kv div{display:flex;gap:12px}.kv dt{color:var(--text-dim);min-width:64px;flex-shrink:0}.kv dd{margin:0;word-break:break-all}.field{display:block;margin-bottom:14px}.resize-custom-wh{display:grid;grid-template-columns:1fr 1fr;gap:10px}.resize-custom-wh .field{margin-bottom:14px}.field-label{display:block;margin-bottom:6px;color:var(--text-dim)}.field-label b{color:var(--text)}.crf{color:var(--text-dim);font-size:12px}select,input[type=number]{width:100%;background:#fff;color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:14px;outline:none;transition:border-color .15s,box-shadow .15s}select:focus,input[type=number]:focus{border-color:var(--accent);box-shadow:0 0 0 3px #667eea2e}select:disabled,input:disabled{opacity:.5}input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer}.live-size{margin-top:6px;font-size:13px;color:var(--text-dim)}.live-size.ready{color:var(--ok)}.hint{color:var(--text-dim);font-size:12px;margin:6px 0}.hint.warn{color:var(--warn)}.check{display:flex;align-items:center;gap:8px;cursor:pointer}.check input{accent-color:var(--accent)}.target-input{display:flex;gap:8px;margin-top:10px}.target-input input{flex:1}.target-input select{width:84px;flex-shrink:0}.btn{display:inline-block;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:10px;padding:8px 18px;font-size:14px;font-weight:600;cursor:pointer;text-decoration:none;text-align:center;box-shadow:var(--shadow);transition:border-color .15s,background .15s,box-shadow .15s,transform .15s}.btn:hover{border-color:var(--accent);box-shadow:var(--shadow-lg)}.btn.primary{background:linear-gradient(135deg,var(--accent) 0%,var(--accent-2) 100%);border-color:transparent;color:#fff;box-shadow:0 6px 18px #667eea47}.btn.primary:hover{filter:brightness(1.05);transform:translateY(-1px)}.btn.big{width:100%;padding:12px;font-size:16px}.btn.ghost{background:transparent}.btn:disabled{opacity:.5;cursor:not-allowed}.working-box{display:grid;gap:10px}.progress{height:8px;background:#e8eefc;border-radius:999px;overflow:hidden}.progress-inner{height:100%;background:linear-gradient(135deg,var(--accent) 0%,var(--accent-2) 100%);border-radius:999px;transition:width .2s}.progress-text{color:var(--text-dim);font-size:13px}.attempt-live{list-style:none;margin:0;padding:0;font-size:12px;font-family:ui-monospace,SF Mono,Menlo,monospace}.attempt-live li.ok{color:var(--ok)}.attempt-live li.ng{color:var(--text-dim)}.result-preview{--rw: 16;--rh: 9;background:#0a0c10;border-radius:8px;overflow:hidden;display:flex;align-items:center;justify-content:center;margin-bottom:0;justify-self:center;width:min(100%,var(--preview-max-w),calc(var(--preview-max-h) * var(--rw) / var(--rh)));max-width:100%;max-height:var(--preview-max-h);aspect-ratio:var(--rw) / var(--rh);height:auto}.result-preview img,.result-preview video{width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;display:block}.attempts{margin-top:10px}.attempts summary{cursor:pointer;color:var(--text-dim);font-size:13px}.attempts ul{list-style:none;padding:8px 0 0;margin:0;font-size:12px;font-family:ui-monospace,SF Mono,Menlo,monospace;max-height:220px;overflow:auto}.attempts li.ok{color:var(--ok)}.batch-list{list-style:none;padding:8px 0 12px;margin:0;font-size:12px;font-family:ui-monospace,SF Mono,Menlo,monospace;max-height:240px;overflow:auto}.batch-list li{padding:2px 0}.batch-list li.ok{color:var(--text)}.batch-list li.ng{color:var(--err)}.attempts li.ng{color:var(--text-dim)}.toast{border-radius:10px;padding:10px 14px;margin-bottom:16px;font-size:13px}.toast.error{background:#ef5b6b1f;border:1px solid rgba(239,91,107,.4);color:var(--err)}.toast.warn{background:#f5a6231a;border:1px solid rgba(245,166,35,.35);color:var(--warn)}.footer{text-align:center;color:var(--text-dim);font-size:12px;padding:12px 0 20px}
