.editor-container[data-v-33190eec]{display:grid;grid-template-columns:80px 1fr 300px;grid-template-rows:1fr 200px;grid-template-areas:"toolbar canvas properties" "toolbar json json";gap:10px;height:100vh;max-height:100vh;padding:10px;box-sizing:border-box;background-color:#f5f5f5;font-family:Microsoft JhengHei,Arial,sans-serif;overflow:hidden}.toolbar[data-v-33190eec]{grid-area:toolbar;display:flex;flex-direction:column;gap:10px;background-color:#fff;padding:10px;border-radius:4px;box-shadow:0 2px 4px rgba(0,0,0,.1);overflow-y:auto;min-height:400px;position:relative}.toolbar .export-btn[data-v-33190eec]{margin-top:20px;background-color:#4caf50;color:#fff;border:none;position:sticky;bottom:10px}.toolbar .export-btn[data-v-33190eec]:hover{background-color:#45a049}.toolbar .export-btn[data-v-33190eec]:disabled{background-color:#ccc;color:#666;cursor:not-allowed}.tool-btn[data-v-33190eec]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px;border:none;background-color:#f8f9fa;border-radius:4px;cursor:pointer;transition:all .2s}.tool-btn[data-v-33190eec]:hover{background-color:#e9ecef}.tool-btn.active[data-v-33190eec]{background-color:#4a90e2;color:#fff}.tool-btn .icon[data-v-33190eec]{font-size:20px;margin-bottom:5px}.canvas-container[data-v-33190eec]{grid-area:canvas;display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 220px);overflow:hidden}.canvas-controls[data-v-33190eec]{display:flex;justify-content:space-between;align-items:center;padding:10px;background-color:#fff;border-radius:4px;box-shadow:0 2px 4px rgba(0,0,0,.1);z-index:10}.zoom-control[data-v-33190eec]{display:flex;align-items:center;gap:10px;flex:0 0 180px}.zoom-control span[data-v-33190eec]{font-size:14px;color:#666;white-space:nowrap;min-width:60px}.zoom-control .zoom-slider[data-v-33190eec]{width:100px;cursor:pointer}.page-controls[data-v-33190eec]{display:flex;flex-direction:column;align-items:center;gap:5px;flex:1}.page-navigation[data-v-33190eec]{display:flex;align-items:center;gap:10px}.page-info[data-v-33190eec]{font-size:14px;color:#333;min-width:80px;text-align:center}.page-actions[data-v-33190eec]{display:flex;gap:10px}.action-btn[data-v-33190eec],.nav-btn[data-v-33190eec]{display:flex;align-items:center;justify-content:center;background-color:#f8f9fa;border:1px solid #ddd;border-radius:4px;width:28px;height:28px;cursor:pointer;transition:background-color .2s}.action-btn[data-v-33190eec]:hover:not(:disabled),.nav-btn[data-v-33190eec]:hover:not(:disabled){background-color:#e9ecef}.action-btn[data-v-33190eec]:disabled,.nav-btn[data-v-33190eec]:disabled{opacity:.5;cursor:not-allowed}.action-btn .icon[data-v-33190eec],.nav-btn .icon[data-v-33190eec]{font-size:12px}.action-btn.add-btn[data-v-33190eec]{background-color:#4caf50;color:#fff;border-color:#43a047}.action-btn.add-btn[data-v-33190eec]:hover:not(:disabled){background-color:#43a047}.action-btn.delete-btn[data-v-33190eec]{background-color:#f44336;color:#fff;border-color:#e53935}.action-btn.delete-btn[data-v-33190eec]:hover:not(:disabled){background-color:#e53935}.size-presets[data-v-33190eec]{display:flex;flex-direction:column;gap:8px;flex:0 0 180px}.size-presets .current-size[data-v-33190eec]{font-size:14px;color:#333;font-weight:500;text-align:right}.size-presets select[data-v-33190eec]{padding:6px;border:1px solid #ddd;border-radius:4px;font-size:14px;background-color:#f8f9fa;cursor:pointer}.size-presets select[data-v-33190eec]:focus{outline:none;border-color:#4a90e2}.canvas-area[data-v-33190eec]{flex:1;display:flex;justify-content:center;align-items:flex-start;background-color:#fff;border-radius:4px;box-shadow:0 2px 4px rgba(0,0,0,.1);overflow:auto;padding:10px}.canvas[data-v-33190eec]{position:relative;background-color:#fff;box-shadow:0 0 10px rgba(0,0,0,.1);margin:20px auto}.canvas-object[data-v-33190eec]{position:absolute;cursor:move;-webkit-user-select:none;-moz-user-select:none;user-select:none}.canvas-object.rectangle[data-v-33190eec]{border:1px solid rgba(0,0,0,.2)}.canvas-object.text[data-v-33190eec]{display:flex;align-items:center;justify-content:center;background-color:transparent;border:1px dashed #ccc}.canvas-object.selected[data-v-33190eec]{outline:2px solid #4a90e2}.canvas-object.drawing[data-v-33190eec]{pointer-events:none;opacity:.7}.canvas-object .object-name[data-v-33190eec]{position:absolute;top:-20px;left:0;font-size:12px;color:#666;white-space:nowrap}.canvas-object .object-name .module-label[data-v-33190eec]{font-style:italic;color:#888}.canvas-object .text-content[data-v-33190eec]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:2px;box-sizing:border-box;word-break:break-word;max-height:100%}.resize-handle[data-v-33190eec]{position:absolute;width:8px;height:8px;background-color:#fff;border:1px solid #4a90e2}.resize-handle.nw[data-v-33190eec]{top:-4px;left:-4px;cursor:nw-resize}.resize-handle.n[data-v-33190eec]{top:-4px;left:50%;transform:translateX(-50%);cursor:n-resize}.resize-handle.ne[data-v-33190eec]{top:-4px;right:-4px;cursor:ne-resize}.resize-handle.e[data-v-33190eec]{top:50%;right:-4px;transform:translateY(-50%);cursor:e-resize}.resize-handle.se[data-v-33190eec]{bottom:-4px;right:-4px;cursor:se-resize}.resize-handle.s[data-v-33190eec]{bottom:-4px;left:50%;transform:translateX(-50%);cursor:s-resize}.resize-handle.sw[data-v-33190eec]{bottom:-4px;left:-4px;cursor:sw-resize}.resize-handle.w[data-v-33190eec]{top:50%;left:-4px;transform:translateY(-50%);cursor:w-resize}.properties-panel[data-v-33190eec]{grid-area:properties;background-color:#fff;padding:15px;border-radius:4px;box-shadow:0 2px 4px rgba(0,0,0,.1);overflow-y:auto;max-height:calc(100vh - 220px)}.properties-panel h3[data-v-33190eec]{margin-top:0;color:#333;border-bottom:1px solid #eee;padding-bottom:10px;position:sticky;top:0;background-color:#fff;z-index:5;font-size:18px}.properties-panel .property-group[data-v-33190eec]{margin-bottom:20px}.properties-panel .property-group h4[data-v-33190eec]{margin-top:12px;margin-bottom:10px;color:#333;font-size:16px;border-bottom:1px solid #eee;padding-bottom:6px}.properties-panel .property-group .checkbox-group[data-v-33190eec]{display:flex;flex-wrap:wrap;gap:10px}.properties-panel .property-group .checkbox-group .checkbox-label[data-v-33190eec]{display:flex;align-items:center;margin-right:12px;font-size:14px}.properties-panel .property-group .checkbox-group .checkbox-label input[type=checkbox][data-v-33190eec]{margin-right:6px;width:16px;height:16px}.properties-panel .property-group .property-row[data-v-33190eec]{margin-bottom:12px;display:flex;flex-direction:column}.properties-panel .property-group .property-row label[data-v-33190eec]{margin-bottom:5px;font-size:14px;color:#444}.properties-panel .property-group .property-row input[data-v-33190eec],.properties-panel .property-group .property-row select[data-v-33190eec],.properties-panel .property-group .property-row textarea[data-v-33190eec]{padding:6px 10px;border:1px solid #ddd;border-radius:4px;font-size:14px}.properties-panel .property-group .property-row input[data-v-33190eec]:focus,.properties-panel .property-group .property-row select[data-v-33190eec]:focus,.properties-panel .property-group .property-row textarea[data-v-33190eec]:focus{border-color:#4a90e2;outline:none}.properties-panel .property-group .property-row select[data-v-33190eec]{height:32px}.properties-panel .property-group .property-row textarea[data-v-33190eec]{min-height:80px;resize:vertical}.properties-panel .property-group .property-row-grid[data-v-33190eec]{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.properties-panel .property-group .property-row-grid .property-col[data-v-33190eec]{display:flex;flex-direction:column}.properties-panel .property-group .property-row-grid .property-col label[data-v-33190eec]{margin-bottom:5px;font-size:14px;color:#444}.properties-panel .property-group .property-row-grid .property-col input[data-v-33190eec],.properties-panel .property-group .property-row-grid .property-col select[data-v-33190eec]{padding:6px 10px;border:1px solid #ddd;border-radius:4px;font-size:14px}.properties-panel .property-group .property-row-grid .property-col input[data-v-33190eec]:focus,.properties-panel .property-group .property-row-grid .property-col select[data-v-33190eec]:focus{border-color:#4a90e2;outline:none}.properties-panel .property-group .property-row-grid .property-col input[type=number][data-v-33190eec]{width:80px;min-width:0;padding:6px 8px}.properties-panel .property-group .module-settings-container[data-v-33190eec]{margin-left:15px;margin-top:10px;padding-left:10px;border-left:3px solid #eee}.properties-panel .property-group .module-settings-container .module-setting-row[data-v-33190eec]{margin-bottom:12px;display:flex;flex-direction:column}.properties-panel .property-group .module-settings-container .module-setting-row label[data-v-33190eec]{margin-bottom:5px;font-size:14px;color:#444}.properties-panel .property-group .module-settings-container .module-setting-row input[data-v-33190eec],.properties-panel .property-group .module-settings-container .module-setting-row select[data-v-33190eec]{padding:6px 10px;border:1px solid #ddd;border-radius:4px;font-size:14px}.properties-panel .property-group .module-settings-container .module-setting-row input[data-v-33190eec]:focus,.properties-panel .property-group .module-settings-container .module-setting-row select[data-v-33190eec]:focus{border-color:#4a90e2;outline:none}.properties-panel .property-group .module-settings-container .module-setting-row select[data-v-33190eec]{height:32px}.properties-panel .button-group[data-v-33190eec]{display:flex;gap:10px}.properties-panel .button-group button[data-v-33190eec]{flex:1;padding:8px;background-color:#f0f0f0;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:14px}.properties-panel .button-group button[data-v-33190eec]:hover{background-color:#e5e5e5}.properties-panel .delete-btn[data-v-33190eec]{width:100%;padding:8px;background-color:#ff5252;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px}.properties-panel .delete-btn[data-v-33190eec]:hover{background-color:#ff3838}.properties-panel .text-align-buttons[data-v-33190eec]{display:flex;gap:5px}.properties-panel .text-align-buttons .align-btn[data-v-33190eec]{flex:1;display:flex;align-items:center;justify-content:center;padding:6px 10px;border:1px solid #ddd;background-color:#f8f9fa;border-radius:4px;cursor:pointer;transition:all .2s}.properties-panel .text-align-buttons .align-btn[data-v-33190eec]:hover{background-color:#e9ecef}.properties-panel .text-align-buttons .align-btn.active[data-v-33190eec]{background-color:#4a90e2;color:#fff;border-color:#4a90e2}.properties-panel .text-align-buttons .align-btn .align-icon[data-v-33190eec]{font-size:14px}.json-output[data-v-33190eec]{grid-area:json;background-color:#fff;padding:15px;border-radius:4px;box-shadow:0 2px 4px rgba(0,0,0,.1);display:flex;flex-direction:column;max-height:200px}.json-output h3[data-v-33190eec]{margin-top:0;color:#333;border-bottom:1px solid #eee;padding-bottom:10px}.json-output .json-textarea[data-v-33190eec]{flex:1;margin:0;font-family:Courier New,monospace;font-size:12px;padding:10px;border-radius:4px;background-color:#f8f9fa;border:1px solid #e9ecef;resize:none;outline:none}.json-output .json-textarea[data-v-33190eec]:focus{border-color:#4a90e2}.error-message[data-v-33190eec]{background-color:#fff3cd;color:#856404;border:1px solid #ffeeba}.error-message[data-v-33190eec],.success-message[data-v-33190eec]{position:fixed;top:0;left:0;right:0;padding:12px;text-align:center;font-weight:700;z-index:1000;box-shadow:0 2px 4px rgba(0,0,0,.1)}.success-message[data-v-33190eec]{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.loading-text[data-v-33190eec]{margin-left:5px;font-size:12px;color:#888}.property-row.module-row[data-v-33190eec]{position:relative}.property-row.module-row select[data-v-33190eec]{width:100%;max-width:100%;overflow:hidden;text-overflow:ellipsis}.property-row.module-row select option[data-v-33190eec]{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.property-row.module-row .loading-text[data-v-33190eec]{position:absolute;right:8px;top:50%;transform:translateY(-50%);background-color:hsla(0,0%,100%,.8);padding:2px 5px;border-radius:2px;font-size:12px;color:#888}.debug-export-btn[data-v-33190eec]{margin-top:10px;background-color:#ff9800;color:#fff;border:none}.debug-export-btn[data-v-33190eec]:hover{background-color:#e08600}.debug-export-btn[data-v-33190eec]:disabled{background-color:#ccc;color:#666;cursor:not-allowed}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Microsoft JhengHei,Arial,sans-serif}.app{height:100vh;width:100vw;overflow:hidden}