:root{color:#172033;--page-bg:#edf1f6;--panel-bg:#f8fafc;--surface:#fff;--surface-soft:#f4f7fb;--border:#dbe3ee;--border-strong:#c7d2e2;--text:#172033;--muted:#66758b;--primary:#2563eb;--primary-soft:#eef4ff;--green:#0f766e;--green-soft:#ecfdf5;--shadow:0 20px 50px #1522361f;--shadow-soft:0 8px 24px #15223614;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#edf1f6;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}#app{min-height:100vh}.app-shell{background:var(--surface);flex-direction:column;min-height:100vh;display:flex;overflow:hidden}.app-header{border-bottom:1px solid var(--border);background:linear-gradient(#fff,#f8fafc);flex-shrink:0;align-items:center;height:64px;padding:0 18px;display:flex}.app-brand{align-items:center;gap:10px;display:flex}.app-logo{color:#fff;background:linear-gradient(135deg,#3b82f6,#1d4ed8);border-radius:8px;place-items:center;width:30px;height:30px;font-size:15px;font-weight:800;display:grid}.app-brand strong{color:#101828;font-size:16px}.app-slogan{color:var(--muted);margin-left:6px;font-size:13px}.fs-icon-button[data-v-2fff8347]{color:#555;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:28px;height:28px;padding:0;transition:background .15s;display:inline-flex}.fs-icon-button[data-v-2fff8347]:hover:not(.is-disabled){background:#0000000f}.fs-icon-button.is-active[data-v-2fff8347]{color:#1a73e8;background:#1a73e81f}.fs-icon-button.is-disabled[data-v-2fff8347]{color:#ccc;cursor:not-allowed}.fs-button[data-v-9048be6a]{color:#333;cursor:pointer;background:#fff;border:1px solid #d0d0d0;border-radius:4px;justify-content:center;align-items:center;gap:4px;height:30px;padding:0 14px;font-size:13px;transition:all .15s;display:inline-flex}.fs-button[data-v-9048be6a]:hover:not(:disabled){color:#1a73e8;border-color:#1a73e8}.fs-button-primary[data-v-9048be6a]{color:#fff;background:#1a73e8;border-color:#1a73e8}.fs-button-primary[data-v-9048be6a]:hover:not(:disabled){color:#fff;background:#1765cc}.fs-button-text[data-v-9048be6a]{background:0 0;border-color:#0000}.fs-button[data-v-9048be6a]:disabled{opacity:.5;cursor:not-allowed}.fs-toolbar[data-v-5ae892aa]{background:#fff;border-bottom:1px solid #e8e8e8;flex-shrink:0;align-items:center;gap:8px;height:44px;padding:0 12px;display:flex}.fs-toolbar-group[data-v-5ae892aa]{align-items:center;gap:2px;display:flex}.fs-toolbar-sep[data-v-5ae892aa]{background:#e8e8e8;width:1px;height:20px;margin:0 4px}.fs-toolbar-spacer[data-v-5ae892aa]{flex:1}.fs-zoom-input[data-v-5ae892aa]{text-align:center;border:1px solid #d9d9d9;border-radius:4px;outline:none;width:52px;height:26px;padding:0 6px;font-size:12px}.fs-zoom-unit[data-v-5ae892aa]{color:#666;font-size:12px}.fs-shelf[data-v-b300e849]{box-sizing:border-box;background:#fff;border-right:1px solid #e8e8e8;flex-shrink:0;width:160px;padding:12px 8px;overflow-y:auto}.fs-shelf-title[data-v-b300e849]{color:#333;padding:0 4px 10px;font-size:12px;font-weight:600}.fs-shelf-item[data-v-b300e849]{cursor:grab;color:#444;-webkit-user-select:none;user-select:none;border:1px solid #f0f0f0;border-radius:6px;align-items:center;gap:8px;margin-bottom:6px;padding:8px 10px;font-size:13px;transition:all .15s;display:flex}.fs-shelf-item[data-v-b300e849]:hover{color:#1a73e8;background:#1a73e80a;border-color:#1a73e8}.fs-property-section[data-v-27825d5c]{border-bottom:1px solid #f0f0f0}.fs-property-section-header[data-v-27825d5c]{cursor:pointer;-webkit-user-select:none;user-select:none;background:#fafafa;align-items:center;gap:6px;padding:8px 12px;display:flex}.fs-property-section-arrow[data-v-27825d5c]{color:#999;font-size:10px;transition:transform .15s;display:inline-block}.fs-property-section-arrow.is-open[data-v-27825d5c]{transform:rotate(90deg)}.fs-property-section-title[data-v-27825d5c]{color:#333;font-size:12px;font-weight:600}.fs-property-section-body[data-v-27825d5c]{padding:4px 0}.fs-number-input[data-v-152340ae]{color:#333;box-sizing:border-box;background:#fff;border:1px solid #d9d9d9;border-radius:4px;outline:none;width:100%;height:28px;padding:0 8px;font-size:13px;transition:border-color .15s}.fs-number-input[data-v-152340ae]:focus{border-color:#1a73e8}.fs-color[data-v-726a01de]{box-sizing:border-box;background:#fff;border:1px solid #d9d9d9;border-radius:4px;align-items:center;gap:6px;height:28px;padding:0 8px;display:flex}.fs-color-input[data-v-726a01de]{cursor:pointer;background:0 0;border:none;width:20px;height:20px;padding:0}.fs-color-value[data-v-726a01de]{color:#666;font-size:12px}.fs-select[data-v-b4a082cc]{color:#333;box-sizing:border-box;cursor:pointer;background:#fff;border:1px solid #d9d9d9;border-radius:4px;outline:none;width:100%;height:28px;padding:0 8px;font-size:13px}.fs-select[data-v-b4a082cc]:focus{border-color:#1a73e8}.fs-segmented[data-v-226e5721]{background:#fff;border:1px solid #d9d9d9;border-radius:4px;display:inline-flex;overflow:hidden}.fs-segmented-item[data-v-226e5721]{color:#666;cursor:pointer;background:0 0;border:none;border-right:1px solid #f0f0f0;justify-content:center;align-items:center;gap:3px;min-width:28px;height:26px;padding:0 6px;font-size:12px;display:inline-flex}.fs-segmented-item[data-v-226e5721]:last-child{border-right:none}.fs-segmented-item.is-active[data-v-226e5721]{color:#1a73e8;background:#1a73e81f}.fs-property-row[data-v-27429191]{align-items:center;gap:8px;min-height:34px;padding:4px 12px;display:flex}.fs-property-label[data-v-27429191]{color:#666;white-space:nowrap;flex:0 0 56px;font-size:12px}.fs-property-control[data-v-27429191]{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.fs-data-panel[data-v-9478e759]{padding:4px 12px 8px}.fs-data-toolbar[data-v-9478e759]{align-items:center;gap:6px;margin:4px 0;display:flex}.fs-data-meta[data-v-9478e759]{justify-content:space-between;align-items:center;gap:8px;margin-top:6px;font-size:12px;display:flex}.fs-data-file[data-v-9478e759]{text-overflow:ellipsis;white-space:nowrap;color:#333;flex:1;min-width:0;font-weight:600;overflow:hidden}.fs-data-count[data-v-9478e759]{color:#999;white-space:nowrap}.fs-data-headers[data-v-9478e759]{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.fs-data-header-chip[data-v-9478e759]{text-overflow:ellipsis;white-space:nowrap;color:#666;background:#f5f5f5;border-radius:8px;max-width:120px;padding:1px 7px;font-size:11px;overflow:hidden}.fs-data-row-switch[data-v-9478e759]{align-items:center;gap:6px;margin-top:8px;display:flex}.fs-data-row-input[data-v-9478e759]{text-align:center;border:1px solid #d0d0d0;border-radius:4px;outline:none;width:52px;height:28px;font-size:13px}.fs-data-row-input[data-v-9478e759]:focus{border-color:#1a73e8}.fs-data-row-total[data-v-9478e759]{color:#999;white-space:nowrap;font-size:12px}.fs-data-actions[data-v-9478e759]{margin-top:8px}.fs-data-actions .fs-button[data-v-9478e759]{width:100%}.fs-data-template-tip[data-v-9478e759]{color:#d97706;margin:2px 0 0;font-size:11px;line-height:1.5}.fs-data-fields[data-v-9478e759]{flex-wrap:wrap;align-items:center;gap:4px;margin-top:6px;display:flex}.fs-data-fields-label[data-v-9478e759]{color:#999;white-space:nowrap;font-size:11px}.fs-data-err[data-v-9478e759]{color:#b91c1c;word-break:break-all;background:#fef2f2;border:1px solid #fecaca;border-radius:4px;margin:6px 0 0;padding:7px 9px;font-size:11px;line-height:1.6}.fs-data-hint[data-v-9478e759]{color:#999;margin:8px 0 4px;font-size:11px;line-height:1.6}.fs-input[data-v-5755fa25]{color:#333;box-sizing:border-box;background:#fff;border:1px solid #d9d9d9;border-radius:4px;outline:none;width:100%;height:28px;padding:0 8px;font-size:13px;transition:border-color .15s}.fs-input[data-v-5755fa25]:focus{border-color:#1a73e8}.fs-name-wrap[data-v-845840cc]{width:100%}.fs-name-tip[data-v-845840cc]{color:#d97706;margin:4px 0 0;font-size:11px;line-height:1.4}.fs-media-status[data-v-81bcf3cd]{background:#fafafa;border:1px dashed #d9d9d9;border-radius:6px;justify-content:center;align-items:center;width:100%;min-height:72px;display:flex;overflow:hidden}.fs-media-preview[data-v-81bcf3cd]{object-fit:contain;max-width:100%;max-height:120px}.fs-media-empty[data-v-81bcf3cd]{color:#999;font-size:12px}.fs-textarea[data-v-a15e28c4]{color:#333;box-sizing:border-box;resize:vertical;border:1px solid #d9d9d9;border-radius:4px;outline:none;width:100%;padding:6px 8px;font-family:inherit;font-size:13px}.fs-textarea[data-v-a15e28c4]:focus{border-color:#1a73e8}.fs-checkbox[data-v-9c4ed509]{cursor:pointer;align-items:center;display:inline-flex}.fs-inspector[data-v-3a7d0ccc]{background:#fff;border-left:1px solid #e8e8e8;flex-direction:column;flex-shrink:0;width:312px;min-width:0;transition:width .18s;display:flex}.fs-inspector.is-collapsed[data-v-3a7d0ccc]{width:28px}.fs-inspector-head[data-v-3a7d0ccc]{border-bottom:1px solid #f0f0f0;flex-shrink:0;justify-content:space-between;align-items:center;height:36px;padding:0 4px 0 12px;display:flex}.fs-inspector.is-collapsed .fs-inspector-head[data-v-3a7d0ccc]{border-bottom:none;justify-content:center;padding:4px 0}.fs-inspector-title[data-v-3a7d0ccc]{color:#333;font-size:12px;font-weight:600}.fs-inspector-body[data-v-3a7d0ccc]{flex:1;min-height:0;overflow-y:auto}.fs-multi-tip[data-v-3a7d0ccc]{justify-content:center;padding:8px;display:flex}.fs-grid-overlay[data-v-6ff24042]{pointer-events:none;position:absolute;inset:0}.fs-margin-guide[data-v-6ff24042]{box-sizing:border-box;pointer-events:none;border:1px dashed #1a73e859;position:absolute}.fs-safe-area-guide[data-v-6ff24042]{box-sizing:border-box;pointer-events:none;border:1px dashed #ff980066;position:absolute}.fs-guide-overlay[data-v-a4ff1922]{pointer-events:none;z-index:100;position:absolute;inset:0;overflow:hidden}.fs-align-guide[data-v-a4ff1922]{background:#ff5252;position:absolute}.fs-align-guide-v[data-v-a4ff1922]{width:1px;top:0;bottom:0}.fs-align-guide-h[data-v-a4ff1922]{height:1px;left:0;right:0}.fs-dist-guide[data-v-a4ff1922]{background:#ff525266;height:1px;position:absolute}.fs-dist-guide-h[data-v-a4ff1922]{height:1px}.fs-dist-guide-v[data-v-a4ff1922]{width:1px;height:20px}.fs-dist-label[data-v-a4ff1922]{color:#ff5252;white-space:nowrap;background:#fff;border:1px solid #ff525266;border-radius:3px;padding:0 3px;font-size:10px;position:absolute;top:-14px}.fs-text-content[data-v-69530886]{box-sizing:border-box;width:100%;height:100%;display:flex;overflow:hidden}.fs-image-content[data-v-e3691685]{-webkit-user-select:none;user-select:none;pointer-events:none;width:100%;height:100%;display:block}.fs-image-placeholder[data-v-e3691685]{color:#9aa0a8;text-align:center;box-sizing:border-box;-webkit-user-select:none;user-select:none;pointer-events:none;background:#f7f8fa;border:1px dashed #c5c9d0;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:100%;height:100%;display:flex;overflow:hidden}.fs-image-placeholder-icon[data-v-e3691685]{width:32%;min-width:18px;max-width:40px;height:auto}.fs-image-placeholder-text[data-v-e3691685]{white-space:nowrap;font-size:12px}.fs-rect-content[data-v-891bae36]{box-sizing:border-box;width:100%;height:100%}.fs-line-content[data-v-51c991fd]{width:100%;height:100%}.fs-qrcode-content[data-v-8b5f7f43]{display:block;width:100%!important;height:100%!important}.fs-barcode-content[data-v-3151736e]{width:100%;height:100%;display:block}.fs-unknown-content[data-v-2a32014a]{color:#999;box-sizing:border-box;border:1px dashed #ccc;justify-content:center;align-items:center;width:100%;height:100%;font-size:12px;display:flex}.fs-element-box[data-v-8587f22d]{box-sizing:border-box;-webkit-user-select:none;user-select:none;position:absolute}.fs-element-box.is-hover[data-v-8587f22d]:not(.is-selected){outline-offset:-1px;outline:1px dashed #1a73e8}.fs-element-box.is-selected[data-v-8587f22d]{outline-offset:-1px;outline:1px solid #2563eb}.fs-element-box.is-selected.is-locked[data-v-8587f22d]{outline-offset:-1px;outline:1px dashed #a0a0a0}.fs-element-box.is-hidden[data-v-8587f22d]{opacity:.35}.fs-element-box.is-locked[data-v-8587f22d]{cursor:default}.fs-transform-layer[data-v-5ca6d6cc]{z-index:50;cursor:move;position:absolute}.fs-transform-border[data-v-5ca6d6cc]{pointer-events:none;border:1px solid #1a73e8;position:absolute;inset:0}.fs-transform-layer.is-locked[data-v-5ca6d6cc]{cursor:default}.fs-transform-layer.is-locked .fs-transform-border[data-v-5ca6d6cc]{border:1px dashed #a0a0a0}.fs-transform-handle[data-v-5ca6d6cc]{box-sizing:border-box;z-index:2;background:#fff;border:1px solid #1a73e8;border-radius:2px;position:absolute}.fs-handle-nw[data-v-5ca6d6cc]{cursor:nwse-resize;top:0;left:0;transform:translate(-50%,-50%)}.fs-handle-n[data-v-5ca6d6cc]{cursor:ns-resize;top:0;left:50%;transform:translate(-50%,-50%)}.fs-handle-ne[data-v-5ca6d6cc]{cursor:nesw-resize;top:0;right:0;transform:translate(50%,-50%)}.fs-handle-e[data-v-5ca6d6cc]{cursor:ew-resize;top:50%;right:0;transform:translate(50%,-50%)}.fs-handle-se[data-v-5ca6d6cc]{cursor:nwse-resize;bottom:0;right:0;transform:translate(50%,50%)}.fs-handle-s[data-v-5ca6d6cc]{cursor:ns-resize;bottom:0;left:50%;transform:translate(-50%,50%)}.fs-handle-sw[data-v-5ca6d6cc]{cursor:nesw-resize;bottom:0;left:0;transform:translate(-50%,50%)}.fs-handle-w[data-v-5ca6d6cc]{cursor:ew-resize;top:50%;left:0;transform:translate(-50%,-50%)}.fs-rotate-arm[data-v-5ca6d6cc]{pointer-events:none;background:#1a73e8;width:1px;height:24px;position:absolute;top:0;left:50%;transform:translate(-50%,-100%)}.fs-rotate-handle[data-v-5ca6d6cc]{cursor:grab;z-index:3;background:#fff;border:1px solid #1a73e8;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:0;left:50%;transform:translate(-50%,-100%)translateY(-18px)}.fs-canvas-shell[data-v-cd1f40f2]{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.fs-ruler-top[data-v-cd1f40f2]{z-index:60;background:#fafafa;border-bottom:1px solid #e0e0e0;flex-shrink:0;height:20px;display:flex;overflow:hidden}.fs-ruler-corner[data-v-cd1f40f2]{border-right:1px solid #e0e0e0;flex-shrink:0;width:20px}.fs-ruler-corner.is-right[data-v-cd1f40f2]{border-left:1px solid #e0e0e0;border-right:none}.fs-ruler-top[data-v-cd1f40f2] canvas,.fs-ruler-left[data-v-cd1f40f2] canvas,.fs-ruler-right[data-v-cd1f40f2] canvas{pointer-events:none}.fs-canvas-body[data-v-cd1f40f2]{flex:1;min-height:0;display:flex}.fs-ruler-left[data-v-cd1f40f2]{z-index:60;background:#fafafa;border-right:1px solid #e0e0e0;flex-shrink:0;width:20px;overflow:hidden}.fs-ruler-right[data-v-cd1f40f2]{z-index:60;background:#fafafa;border-left:1px solid #e0e0e0;flex-shrink:0;width:20px;overflow:hidden}.fs-canvas-viewport[data-v-cd1f40f2]{overflow-anchor:none;background:#f0f2f5;flex:1;position:relative;overflow:auto}.fs-canvas-scene[data-v-cd1f40f2]{position:relative}.fs-page-outer[data-v-cd1f40f2]{position:absolute}.fs-page-inner[data-v-cd1f40f2]{position:absolute;overflow:hidden;box-shadow:0 1px 8px #0000001f}.fs-marquee[data-v-cd1f40f2]{z-index:100;pointer-events:none;background:#2563eb1f;border:1px solid #2563eb;position:absolute}@media print{body *{visibility:hidden}.fs-preview-root,.fs-preview-root *{visibility:visible}.fs-preview-root{box-shadow:none!important;border-radius:0!important;margin:0!important;position:absolute!important;top:0!important;left:0!important}.fs-preview-overlay{background:#fff!important;position:absolute!important;overflow:visible!important}.fs-preview-header{display:none!important}.fs-preview-body{padding:0!important;display:block!important;overflow:visible!important}}.fs-preview-overlay[data-v-bd73030c]{z-index:1000;background:#0000008c;flex-direction:column;display:flex;position:fixed;inset:0}.fs-preview-header[data-v-bd73030c]{background:#fff;flex-shrink:0;justify-content:space-between;align-items:center;height:52px;padding:0 16px;display:flex}.fs-preview-title[data-v-bd73030c]{font-size:15px;font-weight:600}.fs-preview-actions[data-v-bd73030c]{gap:8px;display:flex}.fs-preview-body[data-v-bd73030c]{flex:1;justify-content:center;padding:24px;display:flex;overflow:auto}.fs-preview-root[data-v-bd73030c]{box-sizing:border-box;flex-shrink:0;position:relative;box-shadow:0 4px 24px #0003}.fs-batch-view[data-v-9aed2f75]{background:#f0f2f5;flex-direction:column;width:100%;height:100%;min-height:0;display:flex}.fs-batch-header[data-v-9aed2f75]{background:#fff;border-bottom:1px solid #e8e8e8;flex-shrink:0;justify-content:space-between;align-items:center;height:52px;padding:0 16px;display:flex}.fs-batch-title-wrap[data-v-9aed2f75]{align-items:baseline;gap:10px;min-width:0;display:flex}.fs-batch-title[data-v-9aed2f75]{color:#333;font-size:15px;font-weight:600}.fs-batch-sub[data-v-9aed2f75]{color:#999;text-overflow:ellipsis;white-space:nowrap;max-width:320px;font-size:12px;overflow:hidden}.fs-batch-actions[data-v-9aed2f75]{flex-shrink:0;gap:8px;display:flex}.fs-batch-nav[data-v-9aed2f75]{background:#fff;border-bottom:1px solid #e8e8e8;flex-shrink:0;align-items:center;gap:8px;padding:10px 16px;display:flex}.fs-batch-index-input[data-v-9aed2f75]{text-align:center;border:1px solid #d0d0d0;border-radius:4px;outline:none;width:56px;height:28px;font-size:13px}.fs-batch-index-total[data-v-9aed2f75]{color:#999;font-size:13px}.fs-batch-tip[data-v-9aed2f75]{color:#bbb;margin-left:auto;font-size:12px}.fs-batch-stage[data-v-9aed2f75]{background:#e8ebef;flex:1;justify-content:center;align-items:center;min-height:0;padding:32px;transition:opacity .15s;display:flex;overflow:auto}.fs-batch-stage.is-exporting[data-v-9aed2f75]{opacity:.35;pointer-events:none}.fs-batch-scale[data-v-9aed2f75]{transform-origin:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.fs-batch-empty[data-v-9aed2f75]{color:#999;font-size:14px}.fs-designer[data-v-f879274a]{background:#f0f2f5;flex-direction:column;width:100%;min-height:0;display:flex}.fs-designer-body[data-v-f879274a]{flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.app-nav[data-v-1ba176f3]{align-items:center;margin-left:auto;display:flex}.app-nav-link[data-v-1ba176f3]{color:#475569;border-radius:6px;padding:6px 12px;font-size:14px;text-decoration:none;transition:color .15s,background .15s}.app-nav-link[data-v-1ba176f3]:hover{color:#1d4ed8;background:#eff6ff}.app-toast[data-v-1ba176f3]{z-index:9999;color:#fff;pointer-events:none;border-radius:8px;max-width:80vw;padding:10px 18px;font-size:13px;position:fixed;top:20px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0f172a2e}.app-toast--success[data-v-1ba176f3]{background:#16a34a}.app-toast--error[data-v-1ba176f3]{background:#dc2626}.app-toast-fade-enter-active[data-v-1ba176f3],.app-toast-fade-leave-active[data-v-1ba176f3]{transition:opacity .25s,transform .25s}.app-toast-fade-enter-from[data-v-1ba176f3],.app-toast-fade-leave-to[data-v-1ba176f3]{opacity:0;transform:translate(-50%)translateY(-6px)}
