@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&family=DM+Sans:wght@400;500;600&family=Sora:wght@400;600&display=swap";.topbar[data-v-4f66d7b5]{background:var(--panel);border-bottom:1px solid var(--border);z-index:10;flex-shrink:0;align-items:center;gap:12px;height:48px;padding:0 16px;display:flex;position:relative}.topbar-left[data-v-4f66d7b5]{align-items:center;display:flex}.logo[data-v-4f66d7b5]{-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:flex}.logo-img[data-v-4f66d7b5]{object-fit:contain;border-radius:6px;width:26px;height:26px}.logo-text[data-v-4f66d7b5]{letter-spacing:-.3px;color:var(--text);font-size:16px;font-weight:500}.logo-text strong[data-v-4f66d7b5]{color:var(--accent)}.topbar-center[data-v-4f66d7b5]{font-family:var(--font-mono);flex:1;justify-content:center;align-items:center;gap:12px;font-size:12px;display:flex}.filename[data-v-4f66d7b5]{color:var(--text);font-size:13px}.dim[data-v-4f66d7b5]{color:var(--text-muted)}.topbar-right[data-v-4f66d7b5]{align-items:center;gap:8px;display:flex}.btn-ghost[data-v-4f66d7b5]{color:var(--text-dim);border:1px solid var(--border);border-radius:var(--radius);background:0 0;align-items:center;gap:6px;padding:7px 12px;font-size:13px;transition:all .15s;display:flex}.btn-ghost[data-v-4f66d7b5]:hover{background:var(--panel-alt);color:var(--text);border-color:var(--border-light)}.btn-accent[data-v-4f66d7b5]{background:var(--accent);color:#0f0f0f;border-radius:var(--radius);align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:600;transition:all .15s;display:flex}.btn-accent[data-v-4f66d7b5]:hover:not(:disabled){filter:brightness(1.1)}.btn-accent[data-v-4f66d7b5]:disabled{opacity:.5;cursor:not-allowed}.btn-danger[data-v-4f66d7b5]{color:#e05555;border-radius:var(--radius);background:0 0;border:1px solid #e05555;align-items:center;gap:6px;padding:7px 12px;font-size:13px;transition:all .15s;display:flex}.btn-danger[data-v-4f66d7b5]:hover{background:#e055551f}.modal-backdrop[data-v-4f66d7b5]{z-index:1000;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal[data-v-4f66d7b5]{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;align-items:center;gap:12px;width:340px;padding:28px 28px 24px;display:flex}.modal-icon[data-v-4f66d7b5]{justify-content:center;align-items:center;display:flex}.modal-title[data-v-4f66d7b5]{color:var(--text);margin:0;font-size:16px;font-weight:600}.modal-body[data-v-4f66d7b5]{color:var(--text-muted);text-align:center;margin:0;font-size:13px;line-height:1.5}.modal-actions[data-v-4f66d7b5]{gap:8px;width:100%;margin-top:4px;display:flex}.modal-btn-cancel[data-v-4f66d7b5]{color:var(--text-dim);border:1px solid var(--border);border-radius:var(--radius);background:0 0;flex:1;padding:8px 0;font-size:13px;transition:all .15s}.modal-btn-cancel[data-v-4f66d7b5]:hover{background:var(--panel-alt);color:var(--text)}.modal-btn-confirm[data-v-4f66d7b5]{color:#fff;border-radius:var(--radius);background:#e05555;flex:1;padding:8px 0;font-size:13px;font-weight:600;transition:all .15s}.modal-btn-confirm[data-v-4f66d7b5]:hover{filter:brightness(1.1)}.decode-progress[data-v-4f66d7b5]{background:var(--border);align-items:center;height:3px;display:flex;position:absolute;bottom:0;left:0;right:0;overflow:hidden}@keyframes decode-shimmer-4f66d7b5{0%{background-position:200% 0}to{background-position:-200% 0}}.decode-progress--busy[data-v-4f66d7b5]{background:linear-gradient(90deg, var(--border) 0%, var(--border) 30%, var(--accent) 50%, var(--border) 70%, var(--border) 100%);background-size:200% 100%;animation:1.4s ease-in-out infinite decode-shimmer-4f66d7b5}.decode-bar[data-v-4f66d7b5]{background:var(--accent);height:100%;transition:width .1s}.decode-progress span[data-v-4f66d7b5]{color:var(--text-dim);white-space:nowrap;font-size:11px;position:absolute;bottom:6px;left:50%;transform:translate(-50%)}.left-panel[data-v-b893763e]{background:var(--panel);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:4px;width:68px;padding:8px 6px;display:flex}.tool-btn[data-v-b893763e]{color:var(--text-dim);border-radius:var(--radius);cursor:pointer;background:0 0;border:1px solid #0000;flex-direction:column;align-items:center;gap:3px;padding:8px 4px;transition:all .12s;display:flex}.tool-btn[data-v-b893763e]:hover{background:var(--panel-alt);color:var(--text)}.tool-btn.active[data-v-b893763e]{background:var(--accent-dim);color:var(--accent);border-color:#f5a6234d}.tool-label[data-v-b893763e]{font-size:10px;font-family:var(--font-ui);letter-spacing:.3px}.canvas-area[data-v-32733162]{background:var(--bg);flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.canvas-scroll-area[data-v-32733162]{background-image:linear-gradient(45deg,#1c1c1c 25%,#0000 25%),linear-gradient(-45deg,#1c1c1c 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#1c1c1c 75%),linear-gradient(-45deg,#0000 75%,#1c1c1c 75%);background-position:0 0,0 10px,10px -10px,-10px 0;background-size:20px 20px;flex:1;justify-content:center;align-items:center;padding:40px;display:flex;overflow:auto}.stage-scaler[data-v-32733162]{flex-shrink:0;align-items:flex-start;display:flex;position:relative}.konva-host[data-v-32733162]{box-shadow:0 0 0 1px var(--border), 0 8px 32px #00000080;flex-shrink:0;position:relative;overflow:hidden}.filling-overlay[data-v-32733162]{color:var(--accent);border-radius:var(--radius);pointer-events:none;background:#0f0f0fbf;padding:10px 20px;font-size:13px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.no-project[data-v-32733162]{width:1px;height:1px}.canvas-controls[data-v-32733162]{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:4px;padding:4px 8px;display:flex;position:absolute;bottom:12px;right:12px}.zoom-btn[data-v-32733162]{width:24px;height:24px;color:var(--text-dim);background:0 0;border-radius:4px;justify-content:center;align-items:center;font-size:16px;transition:all .12s;display:flex}.zoom-btn[data-v-32733162]:hover{background:var(--border);color:var(--text)}.zoom-label[data-v-32733162]{font-family:var(--font-mono);color:var(--text-dim);text-align:center;min-width:38px;font-size:12px}.canvas-text-input[data-v-32733162]{resize:none;white-space:pre;word-break:keep-all;z-index:10;background:0 0;border:1px dashed #f5a623b3;border-radius:2px;outline:none;width:1px;margin:0;padding:0;line-height:1.2;position:absolute;overflow:hidden}.eyedrop-magnifier[data-v-32733162]{pointer-events:none;z-index:200;background:var(--panel);border:2px solid var(--border-light);border-radius:6px;flex-direction:column;display:flex;position:absolute;overflow:hidden;box-shadow:0 4px 16px #0009}.magnifier-canvas[data-v-32733162]{image-rendering:pixelated;width:120px;height:120px;display:block}.magnifier-swatch[data-v-32733162]{border-top:1px solid var(--border);background:var(--panel);align-items:center;gap:6px;padding:4px 8px;display:flex}.swatch-color[data-v-32733162]{border:1px solid var(--border-light);border-radius:3px;flex-shrink:0;width:14px;height:14px}.swatch-hex[data-v-32733162]{font-family:var(--font-mono);color:var(--text);letter-spacing:.03em;font-size:11px}.cp-wrap[data-v-c7fe9255]{align-items:center;gap:8px;display:flex}.cp-swatch[data-v-c7fe9255]{border:1px solid var(--border);cursor:pointer;border-radius:4px;flex-shrink:0;width:36px;height:28px;padding:0;transition:border-color .1s}.cp-swatch[data-v-c7fe9255]:hover{border-color:var(--border-light)}.cp-hex[data-v-c7fe9255]{font-family:var(--font-mono);color:var(--text-dim);font-size:11px}.cp-popover{z-index:9999;background:var(--panel);border:1px solid var(--border-light);border-radius:8px;flex-direction:column;gap:10px;padding:12px;display:flex;position:fixed;box-shadow:0 8px 32px #00000080}.cp-bottom-row{align-items:center;gap:6px;display:flex}.cp-hex-input{min-width:0;font-family:var(--font-mono);text-align:center;background:var(--panel-alt);border:1px solid var(--border);color:var(--text);box-sizing:border-box;border-radius:4px;flex:1;padding:5px 8px;font-size:13px}.cp-hex-input:focus{border-color:var(--accent);outline:none}.cp-eyedrop-btn{background:var(--panel-alt);border:1px solid var(--border);width:30px;height:30px;color:var(--text-muted);cursor:pointer;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:all .1s;display:flex}.cp-eyedrop-btn:hover{border-color:var(--border-light);color:var(--text);background:var(--border)}hex-color-picker{width:200px;height:180px}.props-panel[data-v-ed8dff09]{background:var(--panel);border-top:1px solid var(--border);flex-shrink:0;align-items:center;gap:24px;height:90px;padding:0 20px;display:flex;overflow-x:auto}.prop-group[data-v-ed8dff09]{flex-direction:column;gap:5px;min-width:120px;display:flex}.prop-group.row[data-v-ed8dff09]{flex-direction:row;align-items:center;gap:12px}label[data-v-ed8dff09]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px;align-items:center;gap:6px;font-size:11px;display:flex}.mono[data-v-ed8dff09]{font-family:var(--font-mono);color:var(--text-dim);font-size:11px}.selection-meta[data-v-ed8dff09]{color:var(--text-muted);font-size:11px}.range[data-v-ed8dff09]{-webkit-appearance:none;background:var(--border);border:none;border-radius:2px;width:120px;height:4px;padding:0}.range[data-v-ed8dff09]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);cursor:pointer;border-radius:50%;width:14px;height:14px}.select[data-v-ed8dff09]{width:140px;padding:5px 8px;font-size:12px}.num-input[data-v-ed8dff09]{width:70px;font-family:var(--font-mono);text-align:right;font-size:13px}.unit[data-v-ed8dff09]{color:var(--text-muted);font-size:12px}.row[data-v-ed8dff09]{align-items:center;gap:8px;display:flex}.checkbox-label[data-v-ed8dff09]{cursor:pointer;text-transform:none;letter-spacing:0;color:var(--text-dim);flex-direction:row;align-items:center;gap:4px;font-size:14px;display:flex}.checkbox-label input[data-v-ed8dff09]{cursor:pointer}.prop-group--allframes[data-v-ed8dff09]{border-left:1px solid var(--border);min-width:unset;padding-left:20px}.all-frames-label[data-v-ed8dff09]{color:var(--text-dim);text-transform:none;letter-spacing:0;cursor:pointer;gap:6px;font-size:12px}.all-frames-label input[data-v-ed8dff09]{cursor:pointer}.thumb-card[data-v-057ab60d]{border-radius:var(--radius);cursor:pointer;background:var(--panel-alt);border:2px solid #0000;flex-direction:column;flex-shrink:0;width:88px;transition:border-color .12s;display:flex;position:relative;overflow:visible}.thumb-card[data-v-057ab60d]:hover{border-color:var(--border-light)}.thumb-card.active[data-v-057ab60d]{border-color:var(--accent)}.thumb-card.selected[data-v-057ab60d]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), inset 0 0 0 1px #f5a62333}.thumb-header[data-v-057ab60d]{background:var(--bg);border-bottom:1px solid var(--border);border-radius:calc(var(--radius) - 2px) calc(var(--radius) - 2px) 0 0;justify-content:center;align-items:center;padding:3px 6px;display:flex}.frame-num[data-v-057ab60d]{font-family:var(--font-mono);color:var(--text-muted);font-size:10px;line-height:1}.thumb-img-wrap[data-v-057ab60d]{background:repeating-conic-gradient(#222 0% 25%,#1a1a1a 0% 50%) 0 0/8px 8px;justify-content:center;align-items:center;width:100%;height:52px;display:flex;overflow:hidden}.thumb-img[data-v-057ab60d]{object-fit:contain;max-width:100%;max-height:100%;display:block}.thumb-footer[data-v-057ab60d]{background:var(--panel);border-top:1px solid var(--border);align-items:center;gap:3px;padding:3px 5px;display:flex}.dur-input[data-v-057ab60d]{min-width:0;font-family:var(--font-mono);text-align:right;background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:3px;flex:1;padding:2px 4px;font-size:11px}.dur-unit[data-v-057ab60d]{color:var(--text-muted);flex-shrink:0;font-size:10px}.sel-box[data-v-057ab60d]{border:2px solid var(--accent);border-radius:var(--radius);pointer-events:none;z-index:10;position:absolute;inset:-2px}.sel-check[data-v-057ab60d]{filter:drop-shadow(0 1px 2px #0009);position:absolute;top:-6px;right:-6px}.ctx-menu[data-v-057ab60d]{z-index:100;background:var(--panel);border:1px solid var(--border-light);border-radius:var(--radius);flex-direction:column;min-width:120px;display:flex;position:fixed;top:0;left:0;overflow:hidden;box-shadow:0 4px 16px #00000080}.ctx-menu button[data-v-057ab60d]{color:var(--text);text-align:left;border-bottom:1px solid var(--border);background:0 0;border-radius:0;padding:9px 14px;font-size:13px}.ctx-menu button[data-v-057ab60d]:last-child{border-bottom:none}.ctx-menu button[data-v-057ab60d]:hover{background:var(--panel-alt)}.ctx-menu button.danger[data-v-057ab60d]{color:var(--danger)}.ctx-backdrop[data-v-057ab60d]{z-index:99;position:fixed;inset:0}.selection-timing-bar[data-v-968ee341]{justify-content:space-between;align-items:center;gap:16px;padding:10px 16px 0;display:flex}.selection-timing-copy[data-v-968ee341]{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.selection-timing-title[data-v-968ee341]{color:var(--text);font-size:12px;font-weight:600}.selection-timing-meta[data-v-968ee341]{color:var(--text-muted);font-size:11px;font-family:var(--font-mono)}.selection-timing-warning[data-v-968ee341]{color:var(--accent);font-size:11px}.selection-timing-controls[data-v-968ee341]{align-items:center;gap:10px;display:flex}.speed-slider-wrap[data-v-968ee341]{align-items:center;gap:8px;display:flex}.speed-slider-label[data-v-968ee341]{color:var(--text-muted);white-space:nowrap;font-size:11px}.speed-slider-track-wrap[data-v-968ee341]{align-items:center;width:180px;display:flex;position:relative}.speed-slider[data-v-968ee341]{width:100%;accent-color:var(--accent);cursor:pointer;height:4px}.speed-slider-notch[data-v-968ee341]{pointer-events:none;background:#ffffff59;border-radius:1px;width:2px;height:10px;position:absolute;top:50%;transform:translate(-50%,-50%)}.speed-slider-value[data-v-968ee341]{font-size:11px;font-family:var(--font-mono);color:var(--accent);text-align:right;min-width:36px;transition:color .15s}.speed-slider-value.is-default[data-v-968ee341]{color:var(--text-muted)}.reset-speed-btn[data-v-968ee341]{color:var(--text-muted);border-radius:var(--radius);background:0 0;border:1px solid #ffffff1f;padding:5px 10px;font-size:11px;transition:all .12s}.reset-speed-btn[data-v-968ee341]:hover:not(:disabled){color:var(--text);border-color:#ffffff40}.reset-speed-btn[data-v-968ee341]:disabled{opacity:.35;cursor:not-allowed}.apply-speed-btn[data-v-968ee341]{color:var(--accent);background:var(--accent-dim);border-radius:var(--radius);border:1px solid #f5a6234d;padding:5px 10px;font-size:11px;transition:all .12s}.apply-speed-btn[data-v-968ee341]:hover{background:var(--accent);color:#0f0f0f}.retime-result[data-v-968ee341]{color:var(--accent);font-size:11px;font-family:var(--font-mono);padding:8px 16px 0}.dedupe-fade-enter-active[data-v-968ee341],.dedupe-fade-leave-active[data-v-968ee341]{transition:opacity .25s}.dedupe-fade-enter-from[data-v-968ee341],.dedupe-fade-leave-to[data-v-968ee341]{opacity:0}.timeline[data-v-f593b435]{background:var(--panel);border-top:1px solid var(--border);flex-shrink:0}.playback-bar[data-v-f593b435]{border-bottom:1px solid var(--border);background:var(--panel-alt);justify-content:space-between;align-items:center;padding:5px 12px;display:flex}.playback-controls[data-v-f593b435]{align-items:center;gap:6px;display:flex}.selection-controls[data-v-f593b435]{align-items:center;gap:8px;display:flex}.sel-all-btn[data-v-f593b435]{color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius);background:0 0;padding:3px 8px;font-size:11px;transition:all .12s}.sel-all-btn[data-v-f593b435]:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-dim)}.dedupe-btn[data-v-f593b435]{color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius);background:0 0;align-items:center;gap:5px;padding:3px 8px;font-size:11px;transition:all .12s;display:flex}.dedupe-btn[data-v-f593b435]:hover:not(:disabled){color:var(--accent);border-color:var(--accent);background:var(--accent-dim)}.dedupe-btn[data-v-f593b435]:disabled{opacity:.35;cursor:not-allowed}.dedupe-result[data-v-f593b435]{font-size:11px;font-family:var(--font-mono);border-radius:var(--radius);padding:2px 7px}.dedupe-result--merged[data-v-f593b435]{color:var(--accent);background:var(--accent-dim);border:1px solid #f5a6234d}.dedupe-result--none[data-v-f593b435]{color:var(--text-muted);background:var(--panel-alt);border:1px solid var(--border)}.dedupe-fade-enter-active[data-v-f593b435],.dedupe-fade-leave-active[data-v-f593b435]{transition:opacity .25s}.dedupe-fade-enter-from[data-v-f593b435],.dedupe-fade-leave-to[data-v-f593b435]{opacity:0}.play-btn[data-v-f593b435]{background:var(--accent-dim);border-radius:var(--radius);width:30px;height:30px;color:var(--accent);border:1px solid #f5a6234d;justify-content:center;align-items:center;transition:all .12s;display:flex}.play-btn[data-v-f593b435]:hover:not(:disabled),.play-btn.active[data-v-f593b435]{background:var(--accent);color:#0f0f0f}.play-btn[data-v-f593b435]:disabled{opacity:.35;cursor:not-allowed}.pause-btn[data-v-f593b435],.stop-btn[data-v-f593b435]{border:1px solid var(--border);border-radius:var(--radius);width:28px;height:28px;color:var(--text-muted);background:0 0;justify-content:center;align-items:center;transition:all .12s;display:flex}.pause-btn[data-v-f593b435]:hover:not(:disabled),.stop-btn[data-v-f593b435]:hover:not(:disabled){background:var(--border);color:var(--text-dim)}.pause-btn[data-v-f593b435]:disabled,.stop-btn[data-v-f593b435]:disabled{opacity:.35;cursor:not-allowed}.frame-counter[data-v-f593b435]{font-family:var(--font-mono);color:var(--text-muted);min-width:40px;font-size:11px}.timeline-inner[data-v-f593b435]{align-items:center;gap:8px;height:117px;padding:10px 16px;display:flex;overflow:auto hidden}.drag-wrapper[data-v-f593b435]{flex-shrink:0;transition:opacity .15s}.drag-wrapper.dragging[data-v-f593b435]{opacity:.4}.add-frame-btn[data-v-f593b435]{border:2px dashed var(--border);border-radius:var(--radius);width:88px;height:97px;color:var(--text-muted);background:0 0;flex-shrink:0;justify-content:center;align-items:center;transition:all .12s;display:flex}.add-frame-btn[data-v-f593b435]:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.sticker-panel[data-v-1709a093]{background:var(--panel);border-left:1px solid var(--border);flex-direction:column;flex-shrink:0;width:200px;min-height:0;display:flex;overflow:hidden}.sticker-header[data-v-1709a093]{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 14px;font-size:13px;font-weight:500;display:flex}.close-btn[data-v-1709a093]{color:var(--text-muted);background:0 0;border-radius:3px;padding:2px 4px;font-size:14px}.close-btn[data-v-1709a093]:hover{background:var(--panel-alt);color:var(--text)}.sticker-grid[data-v-1709a093]{flex:1;grid-template-columns:repeat(auto-fill,minmax(42px,1fr));align-content:start;gap:4px;min-height:0;padding:10px;display:grid;overflow:hidden auto}.sticker-btn[data-v-1709a093]{border-radius:var(--radius);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;width:42px;height:42px;font-size:24px;transition:all .12s;display:flex}.sticker-btn[data-v-1709a093]:hover{background:var(--panel-alt);border-color:var(--border);transform:scale(1.1)}.anim-panel[data-v-cd3b32e8]{background:var(--panel);border-left:1px solid var(--border);flex-direction:column;flex-shrink:0;width:240px;display:flex}.anim-header[data-v-cd3b32e8]{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 14px;font-size:13px;font-weight:500;display:flex}.row-gap[data-v-cd3b32e8]{align-items:center;gap:8px;display:flex}.close-btn[data-v-cd3b32e8]{color:var(--text-muted);background:0 0;border-radius:3px;padding:2px 5px;font-size:14px}.close-btn[data-v-cd3b32e8]:hover{background:var(--panel-alt);color:var(--text)}.anim-list[data-v-cd3b32e8]{flex-direction:column;flex:1;gap:6px;padding:8px;display:flex;overflow-y:auto}.empty-hint[data-v-cd3b32e8]{color:var(--text-muted);text-align:center;padding:16px 8px;font-size:12px}.anim-item[data-v-cd3b32e8]{background:var(--panel-alt);border:1px solid var(--border);border-radius:var(--radius);justify-content:space-between;align-items:center;padding:8px 10px;display:flex}.anim-info[data-v-cd3b32e8]{flex-direction:column;gap:2px;display:flex;overflow:hidden}.anim-text[data-v-cd3b32e8]{white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.anim-meta[data-v-cd3b32e8]{color:var(--text-muted);font-size:11px;font-family:var(--font-mono)}.anim-actions[data-v-cd3b32e8]{gap:4px;display:flex}.icon-btn[data-v-cd3b32e8]{color:var(--text-muted);background:0 0;border-radius:4px;padding:4px 6px;font-size:12px}.icon-btn[data-v-cd3b32e8]:hover{background:var(--border);color:var(--text)}.icon-btn.danger[data-v-cd3b32e8]:hover{color:var(--danger)}.btn-sm[data-v-cd3b32e8]{background:var(--panel-alt);border:1px solid var(--border);color:var(--text-dim);border-radius:var(--radius);padding:6px 12px;font-size:12px;transition:all .12s}.btn-sm[data-v-cd3b32e8]:hover{background:var(--border);color:var(--text)}.btn-sm.accent[data-v-cd3b32e8]{background:var(--accent);color:#0f0f0f;border-color:var(--accent);font-weight:600}.btn-sm.accent[data-v-cd3b32e8]:hover{filter:brightness(1.1)}.btn-sm[data-v-cd3b32e8]:disabled{opacity:.4;cursor:not-allowed;pointer-events:auto}.field-hint[data-v-cd3b32e8]{color:var(--text-muted);font-size:11px}.modal-backdrop[data-v-cd3b32e8]{z-index:1000;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal[data-v-cd3b32e8]{background:var(--panel);border:1px solid var(--border-light);border-radius:var(--radius-lg);width:440px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0009}.modal-header[data-v-cd3b32e8]{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;font-size:14px;font-weight:600;display:flex}.modal-body[data-v-cd3b32e8]{flex-direction:column;gap:14px;padding:20px;display:flex}.modal-footer[data-v-cd3b32e8]{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:14px 20px;display:flex}.field[data-v-cd3b32e8]{flex-direction:column;flex:1;gap:5px;display:flex}.field label[data-v-cd3b32e8]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:11px}.field input[data-v-cd3b32e8],.field select[data-v-cd3b32e8]{width:100%}.field-row[data-v-cd3b32e8]{gap:12px;display:flex}.type-pills[data-v-cd3b32e8]{flex-wrap:wrap;gap:6px;display:flex}.pill[data-v-cd3b32e8]{background:var(--panel-alt);border:1px solid var(--border);color:var(--text-dim);border-radius:20px;padding:5px 12px;font-size:12px;transition:all .12s}.pill[data-v-cd3b32e8]:hover{border-color:var(--border-light);color:var(--text)}.pill.active[data-v-cd3b32e8]{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.keep-until-end-label[data-v-cd3b32e8]{color:var(--text-muted);text-transform:none;letter-spacing:0;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:11px;display:flex}.keep-until-end-label input[type=checkbox][data-v-cd3b32e8]{cursor:pointer;width:auto}.export-backdrop[data-v-a85545d6]{z-index:2000;background:#000000bf;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.export-modal[data-v-a85545d6]{background:var(--panel);border:1px solid var(--border-light);border-radius:var(--radius-lg);flex-direction:column;align-items:center;gap:16px;min-width:300px;padding:32px 40px;display:flex;box-shadow:0 20px 60px #0009}h3[data-v-a85545d6]{color:var(--text);font-size:16px;font-weight:600}.export-spinner[data-v-a85545d6]{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin-a85545d6}@keyframes spin-a85545d6{to{transform:rotate(360deg)}}.progress-track[data-v-a85545d6]{background:var(--border);border-radius:3px;width:220px;height:6px;overflow:hidden}.progress-fill[data-v-a85545d6]{background:var(--accent);border-radius:3px;height:100%;transition:width .2s}.progress-info[data-v-a85545d6]{width:220px;font-family:var(--font-mono);color:var(--text-dim);justify-content:space-between;font-size:12px;display:flex}.progress-phase[data-v-a85545d6]{width:220px;min-height:18px;color:var(--text-dim);text-align:left;margin:0;font-size:12px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0f0f0f;--panel:#1a1a1a;--panel-alt:#212121;--border:#2a2a2a;--border-light:#333;--accent:#369;--accent-dim:#33669926;--text:#e8e8e8;--text-dim:#888;--text-muted:#555;--danger:#e05252;--success:#52d68a;--font-mono:"JetBrains Mono", monospace;--font-ui:"DM Sans", "Sora", sans-serif;--radius:6px;--radius-lg:10px}html,body{height:100%;overflow:hidden}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;font-size:14px}#app,.app-shell{flex-direction:column;height:100vh;display:flex;overflow:hidden}.workspace{flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.center-col{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.canvas-wrap{flex:1;min-height:0;display:flex;overflow:hidden}.drop-hint{pointer-events:none;z-index:1;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.drop-hint.active{background:#f5a62314}.drop-hint-inner{color:var(--text-dim);flex-direction:column;align-items:center;gap:16px;font-size:15px;display:flex}.drop-hint.active .drop-hint-inner{color:var(--accent)}.modal-backdrop{z-index:40;background:#0000008c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.confirm-modal{background:var(--panel);border:1px solid var(--border-light);border-radius:var(--radius-lg);width:min(420px,100%);padding:20px;box-shadow:0 16px 48px #00000073}.confirm-modal h3{color:var(--text);font-size:18px}.confirm-modal p{color:var(--text-dim);margin-top:8px;line-height:1.4}.modal-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.modal-btn{border-radius:var(--radius);padding:8px 14px;font-size:13px}.btn-ghost{color:var(--text-dim);border:1px solid var(--border);background:0 0}.btn-danger{background:var(--danger);color:#fff}.drop-hint-inner strong{color:var(--accent)}button{font-family:var(--font-ui);cursor:pointer;border:none;outline:none}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input,select,textarea{font-family:var(--font-ui);background:var(--panel-alt);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:6px 10px;font-size:13px}input:focus,select:focus{outline:1px solid var(--accent);border-color:var(--accent)}
