.icon[data-v-b3e7d202]{display:inline-block;vertical-align:middle;flex-shrink:0}.component-library[data-v-acc23592]{padding:16px;height:100%}.title[data-v-acc23592]{margin:0 0 16px;font-size:16px;font-weight:600;color:#333}.component-grid[data-v-acc23592]{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.component-item[data-v-acc23592]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px 8px;background:#fff;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;transition:all .2s}.component-item[data-v-acc23592]:hover{border-color:#409eff;box-shadow:0 2px 8px #409eff33}.icon-svg[data-v-acc23592]{margin-bottom:8px;color:#409eff}.name[data-v-acc23592]{font-size:12px;color:#666}.canvas-element[data-v-7f799b81]{position:absolute;-webkit-user-select:none;user-select:none}.text-element[data-v-7f799b81]{width:100%;height:100%;padding:4px 8px;border:1px dashed transparent;outline:none;font-size:14px;line-height:1.5;word-wrap:break-word;overflow:hidden;box-sizing:border-box}.text-element.layout-single-auto-shrink[data-v-7f799b81]{white-space:nowrap;display:flex;align-items:center}.text-element.layout-multi-auto-wrap[data-v-7f799b81]{white-space:pre-wrap;word-break:break-all}.text-element.layout-multi-wrap-ellipsis[data-v-7f799b81]{white-space:pre-wrap;word-break:break-all;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.text-element[data-v-7f799b81]:hover{border-color:#ccc}.text-element-wrapper[data-v-7f799b81]{width:100%;height:100%;position:relative;cursor:pointer}.text-image[data-v-7f799b81]{width:100%;height:100%;object-fit:fill;display:block}.text-edit-input[data-v-7f799b81]{position:absolute;top:0;left:0;width:100%;height:100%;padding:8px;border:2px solid #409eff;outline:none;line-height:1.5;resize:none;background:#fff;box-sizing:border-box;z-index:10}.image-element[data-v-7f799b81]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden}.image-element img[data-v-7f799b81]{width:100%;height:100%;object-fit:cover}.image-placeholder[data-v-7f799b81]{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#999;width:100%;height:100%;box-sizing:border-box;overflow:hidden;line-height:1;gap:2px}.image-placeholder span[data-v-7f799b81]:first-child{margin-bottom:0}.qrcode-element[data-v-7f799b81]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:relative}.qrcode-element>img[data-v-7f799b81]{width:100%;height:100%;object-fit:contain}.barcode-element[data-v-7f799b81]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:relative}.barcode-element>img[data-v-7f799b81]{width:100%;height:100%;object-fit:fill;display:block}.barcode-placeholder[data-v-7f799b81]{font-size:12px;color:#999;-webkit-user-select:none;user-select:none}.qrcode-center-image[data-v-7f799b81]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:25%;height:25%;object-fit:cover;background:#fff;padding:2px;box-sizing:border-box;border-radius:4px;pointer-events:none}.qrcode-center-text[data-v-7f799b81]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;color:#000;font-weight:700;line-height:1;padding:4px 6px;border-radius:4px;white-space:nowrap;pointer-events:none}.shape-element[data-v-7f799b81]{width:100%;height:100%}.ellipse-element[data-v-7f799b81],.circle-element[data-v-7f799b81]{border-radius:50%}.resize-handle[data-v-7f799b81]{position:absolute;width:8px;height:8px;background:#409eff;border:1px solid #fff}.resize-handle.nw[data-v-7f799b81]{top:-4px;left:-4px;cursor:nw-resize}.resize-handle.ne[data-v-7f799b81]{top:-4px;right:-4px;cursor:ne-resize}.resize-handle.sw[data-v-7f799b81]{bottom:-4px;left:-4px;cursor:sw-resize}.resize-handle.se[data-v-7f799b81]{bottom:-4px;right:-4px;cursor:se-resize}.context-menu[data-v-7f799b81]{position:absolute;background:#fff;border:1px solid #ddd;border-radius:4px;box-shadow:0 4px 12px #00000026;z-index:1000;min-width:140px;padding:4px 0}.menu-item[data-v-7f799b81]{padding:8px 16px;cursor:pointer;font-size:13px;color:#333;display:flex;align-items:center;gap:8px;transition:background .2s}.menu-item[data-v-7f799b81]:hover{background:#f5f5f5}.menu-item.delete[data-v-7f799b81]{color:#f56c6c}.menu-item.delete[data-v-7f799b81]:hover{background:#fef0f0}.menu-icon[data-v-7f799b81]{font-size:14px}.menu-divider[data-v-7f799b81]{height:1px;background:#eee;margin:4px 0}.editor-canvas-wrapper[data-v-bd0ae637]{padding:20px;box-sizing:border-box;display:flex;justify-content:center;align-items:center;width:100%;height:100%;overflow:hidden}.editor-canvas-container[data-v-bd0ae637]{flex-shrink:0;position:relative;overflow:hidden}.editor-canvas[data-v-bd0ae637]{background:#fff;box-shadow:0 4px 20px #0000001a;position:absolute;top:0;left:0;overflow:hidden}.snap-guide-line[data-v-bd0ae637]{position:absolute;pointer-events:none;z-index:99999}.snap-guide-line.vertical[data-v-bd0ae637]{width:0;border-left:1px dashed #ff4d4f}.snap-guide-line.horizontal[data-v-bd0ae637]{height:0;border-top:1px dashed #ff4d4f}.property-panel[data-v-b2d3f707]{padding:16px}.title[data-v-b2d3f707]{margin:0 0 16px;font-size:16px;font-weight:600;color:#333}.property-form[data-v-b2d3f707]{display:flex;flex-direction:column;gap:16px}.form-row[data-v-b2d3f707]{display:flex;gap:12px}.form-row .form-group[data-v-b2d3f707]{flex:1}.form-group[data-v-b2d3f707]{display:flex;flex-direction:column;gap:6px}.form-group label[data-v-b2d3f707]{font-size:12px;color:#666;font-weight:500}.form-group input[data-v-b2d3f707],.form-group textarea[data-v-b2d3f707]{padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;outline:none;transition:border-color .2s}.form-group input[data-v-b2d3f707]:focus,.form-group textarea[data-v-b2d3f707]:focus{border-color:#409eff}.type-badge[data-v-b2d3f707]{display:inline-block;padding:4px 12px;background:#409eff;color:#fff;border-radius:4px;font-size:12px}.empty-state[data-v-b2d3f707]{display:flex;align-items:center;justify-content:center;height:200px;color:#999;font-size:14px}.checkbox-label[data-v-b2d3f707]{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;color:#333;padding:8px;background:#fff;border-radius:4px;border:1px solid #ddd;transition:all .2s}.checkbox-label[data-v-b2d3f707]:hover{border-color:#409eff}.checkbox-label input[type=checkbox][data-v-b2d3f707]{width:18px;height:18px;cursor:pointer}.lock-icon[data-v-b2d3f707]{font-size:16px}.divider[data-v-b2d3f707]{height:1px;background:#ddd;margin:8px 0}.section-title[data-v-b2d3f707]{font-size:14px;font-weight:600;color:#333;margin-bottom:8px}.color-input-wrapper[data-v-b2d3f707]{display:flex;gap:8px;align-items:center}.color-input-wrapper input[type=color][data-v-b2d3f707]{width:40px;height:32px;padding:0;border:1px solid #ddd;border-radius:4px;cursor:pointer}.color-input-wrapper input[type=text][data-v-b2d3f707]{flex:1}.align-buttons[data-v-b2d3f707],.style-buttons[data-v-b2d3f707]{display:flex;gap:8px}.align-buttons button[data-v-b2d3f707],.style-buttons button[data-v-b2d3f707]{flex:1;padding:8px 12px;border:1px solid #ddd;background:#fff;border-radius:4px;cursor:pointer;transition:all .2s;font-size:14px}.align-buttons button[data-v-b2d3f707]:hover,.style-buttons button[data-v-b2d3f707]:hover{border-color:#409eff}.align-buttons button.active[data-v-b2d3f707],.style-buttons button.active[data-v-b2d3f707]{background:#409eff;color:#fff;border-color:#409eff}.align-grid[data-v-b2d3f707]{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.align-grid button[data-v-b2d3f707]{padding:10px 4px;border:1px solid #ddd;background:#fff;border-radius:4px;cursor:pointer;transition:all .2s;font-size:16px;line-height:1}.align-grid button[data-v-b2d3f707]:hover:not(:disabled){border-color:#409eff;background:#f0f9ff}.align-grid button.active[data-v-b2d3f707]{background:#409eff;color:#fff;border-color:#409eff}.align-grid button.disabled[data-v-b2d3f707],.align-grid button[data-v-b2d3f707]:disabled{opacity:.35;cursor:not-allowed;background:#f5f5f5}.align-hint[data-v-b2d3f707]{font-size:11px;color:#999;margin:4px 0 0;line-height:1.4}.transparent-btn[data-v-b2d3f707]{padding:8px 12px;border:1px solid #ddd;background:linear-gradient(45deg,#fff 25%,#ccc 25%,#ccc 50%,#fff 50%,#fff 75%,#ccc 75%);background-size:10px 10px;border-radius:4px;cursor:pointer;font-size:12px;white-space:nowrap;transition:all .2s}.transparent-btn[data-v-b2d3f707]:hover{border-color:#409eff}.transparent-btn.active[data-v-b2d3f707]{border-color:#409eff;box-shadow:0 0 0 2px #409eff4d}.preset-sizes[data-v-b2d3f707]{display:flex;flex-wrap:wrap;gap:8px}.preset-sizes button[data-v-b2d3f707]{padding:8px 12px;border:1px solid #ddd;background:#fff;border-radius:4px;cursor:pointer;font-size:12px;transition:all .2s}.preset-sizes button[data-v-b2d3f707]:hover{border-color:#409eff;background:#f0f9ff}.fit-buttons[data-v-b2d3f707]{display:flex;gap:8px}.image-upload-wrapper[data-v-b2d3f707]{display:flex;flex-direction:column;gap:8px}.image-preview[data-v-b2d3f707]{width:100%;height:120px;border:1px dashed #ddd;border-radius:4px;background:#fafafa;display:flex;align-items:center;justify-content:center;overflow:hidden}.image-preview img[data-v-b2d3f707]{max-width:100%;max-height:100%;object-fit:contain}.image-preview-empty[data-v-b2d3f707]{color:#bbb;font-size:12px}.upload-btn[data-v-b2d3f707]{padding:8px 12px;border:1px solid #409eff;background:#409eff;color:#fff;border-radius:4px;cursor:pointer;font-size:13px;transition:all .2s}.upload-btn[data-v-b2d3f707]:hover:not(:disabled){background:#66b1ff;border-color:#66b1ff}.upload-btn[data-v-b2d3f707]:disabled{background:#a0cfff;border-color:#a0cfff;cursor:not-allowed}.upload-actions[data-v-b2d3f707]{display:flex;gap:8px;align-items:center}.upload-btn-clear[data-v-b2d3f707]{background:#fff;border-color:#ddd;color:#666}.upload-btn-clear[data-v-b2d3f707]:hover:not(:disabled){background:#f5f5f5;border-color:silver;color:#333}.upload-hint[data-v-b2d3f707]{margin:0;font-size:12px;color:red;font-weight:700}.upload-error[data-v-b2d3f707]{margin:0;font-size:12px;color:#f56c6c}.upload-status[data-v-b2d3f707]{margin:0;font-size:12px;color:#409eff}.clear-btn[data-v-b2d3f707]{padding:8px 12px;border:1px solid #ddd;background:#fff;color:#666;border-radius:4px;cursor:pointer;font-size:13px;transition:all .2s}.clear-btn[data-v-b2d3f707]:hover{border-color:#f56c6c;color:#f56c6c}.qr-image-buttons[data-v-b2d3f707]{display:flex;gap:8px}.qr-image-buttons .upload-btn[data-v-b2d3f707]{flex:1}.fit-buttons button[data-v-b2d3f707]{flex:1;padding:8px 12px;border:1px solid #ddd;background:#fff;border-radius:4px;cursor:pointer;font-size:12px;transition:all .2s}.fit-buttons button[data-v-b2d3f707]:hover{border-color:#409eff}.fit-buttons button.active[data-v-b2d3f707]{background:#409eff;color:#fff;border-color:#409eff}.border-radius-grid[data-v-b2d3f707]{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.radius-input[data-v-b2d3f707]{display:flex;flex-direction:column;gap:4px}.radius-input label[data-v-b2d3f707]{font-size:11px;color:#999}.radius-input input[data-v-b2d3f707]{padding:6px 8px;border:1px solid #ddd;border-radius:4px;font-size:13px;outline:none;transition:border-color .2s}.radius-input input[data-v-b2d3f707]:focus{border-color:#409eff}.data-source-wrapper[data-v-b2d3f707]{display:flex;flex-direction:column;gap:8px}.data-source-select[data-v-b2d3f707]{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;background:#fff;cursor:pointer;outline:none;transition:border-color .2s}.data-source-select[data-v-b2d3f707]:focus{border-color:#409eff}.data-source-select option[data-v-b2d3f707]{padding:8px}.data-source-info[data-v-b2d3f707]{display:flex;align-items:center;gap:8px}.field-tag[data-v-b2d3f707]{display:inline-block;padding:4px 10px;background:#e6f7ff;color:#1890ff;border:1px solid #91d5ff;border-radius:4px;font-size:12px;font-family:monospace}.data-source-hint[data-v-b2d3f707]{font-size:12px;color:#999;margin:4px 0 0;line-height:1.4}.layout-select[data-v-b2d3f707]{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:4px;font-size:13px;background:#fff;cursor:pointer;outline:none;transition:border-color .2s}.layout-select[data-v-b2d3f707]:focus{border-color:#409eff}.layout-hint[data-v-b2d3f707]{font-size:12px;color:#666;margin:8px 0 0;line-height:1.4;padding:8px 12px;background:#f5f5f5;border-radius:4px}.rotation-input-wrapper[data-v-b2d3f707]{display:flex;gap:8px;align-items:center}.rotation-slider[data-v-b2d3f707]{flex:1;height:4px;cursor:pointer}.rotation-number[data-v-b2d3f707]{width:64px;flex-shrink:0}.field-insert-bar[data-v-b2d3f707]{margin-top:8px;padding:8px;background:#f0f7ff;border-radius:6px;border:1px solid #d6e8fa}.field-insert-label[data-v-b2d3f707]{font-size:12px;color:#666;display:block;margin-bottom:6px}.field-insert-buttons[data-v-b2d3f707]{display:flex;flex-wrap:wrap;gap:4px}.field-insert-btn[data-v-b2d3f707]{padding:3px 8px;font-size:12px;background:#fff;color:#409eff;border:1px solid #b3d8ff;border-radius:4px;cursor:pointer;transition:all .2s;white-space:nowrap}.field-insert-btn[data-v-b2d3f707]:hover{background:#409eff;color:#fff;border-color:#409eff}.modal-backdrop[data-v-e447f402]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:10000;padding:20px}.modal-container[data-v-e447f402]{background:#fff;border-radius:12px;width:100%;max-width:480px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d;animation:modalSlideIn-e447f402 .3s ease}@keyframes modalSlideIn-e447f402{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.modal-header[data-v-e447f402]{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e8e8e8}.modal-title[data-v-e447f402]{margin:0;font-size:18px;font-weight:600;color:#333;display:flex;align-items:center;gap:10px}.modal-title .icon[data-v-e447f402]{font-size:22px}.close-btn[data-v-e447f402]{background:none;border:none;font-size:28px;color:#999;cursor:pointer;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.close-btn[data-v-e447f402]:hover{background:#f5f5f5;color:#333}.modal-body[data-v-e447f402]{padding:24px;overflow-y:auto;flex:1}.modal-description[data-v-e447f402]{color:#666;font-size:14px;margin:0 0 20px;line-height:1.5}.empty-state[data-v-e447f402]{text-align:center;padding:40px 20px}.empty-icon[data-v-e447f402]{font-size:48px;display:block;margin-bottom:16px}.empty-state p[data-v-e447f402]{color:#666;font-size:14px;margin:0}.empty-hint[data-v-e447f402]{color:#999;font-size:13px;margin-top:8px}.field-list[data-v-e447f402]{display:flex;flex-direction:column;gap:16px}.field-item[data-v-e447f402]{display:flex;flex-direction:column;gap:8px}.field-label[data-v-e447f402]{display:flex;align-items:center;gap:8px;font-size:14px;flex-wrap:wrap}.field-name[data-v-e447f402]{font-weight:500;color:#333}.field-key[data-v-e447f402]{color:#999;font-size:12px;font-family:monospace}.usage-badge[data-v-e447f402]{background:#e6f7ff;color:#1890ff;font-size:11px;padding:2px 8px;border-radius:10px;margin-left:auto}.field-input[data-v-e447f402]{padding:10px 12px;border:1px solid #d9d9d9;border-radius:6px;font-size:14px;transition:all .2s}.field-input[data-v-e447f402]:focus{outline:none;border-color:#409eff;box-shadow:0 0 0 3px #409eff1a}.preview-info[data-v-e447f402]{margin-top:20px;padding:12px 16px;background:#f6ffed;border:1px solid #b7eb8f;border-radius:6px;display:flex;align-items:center;gap:8px;font-size:13px;color:#52c41a}.info-icon[data-v-e447f402]{font-size:16px}.modal-footer[data-v-e447f402]{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #e8e8e8}.btn[data-v-e447f402]{padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:6px;border:none}.btn-secondary[data-v-e447f402]{background:#f5f5f5;color:#666}.btn-secondary[data-v-e447f402]:hover{background:#e8e8e8}.btn-primary[data-v-e447f402]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary[data-v-e447f402]:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.btn-icon[data-v-e447f402]{font-size:16px}.modal-enter-active[data-v-e447f402],.modal-leave-active[data-v-e447f402]{transition:opacity .3s ease}.modal-enter-from[data-v-e447f402],.modal-leave-to[data-v-e447f402]{opacity:0}.modal-enter-active .modal-container[data-v-e447f402],.modal-leave-active .modal-container[data-v-e447f402]{transition:transform .3s ease}.modal-enter-from .modal-container[data-v-e447f402],.modal-leave-to .modal-container[data-v-e447f402]{transform:translateY(-30px)}.modal-backdrop[data-v-7a9bb8a2]{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:10000;padding:20px}.modal-container[data-v-7a9bb8a2]{background:#fff;border-radius:12px;width:100%;max-width:500px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0006;animation:modalSlideIn-7a9bb8a2 .3s ease}@keyframes modalSlideIn-7a9bb8a2{0%{opacity:0;transform:translateY(-30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header[data-v-7a9bb8a2]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e8e8e8}.modal-title[data-v-7a9bb8a2]{margin:0;font-size:18px;font-weight:600;color:#333;display:flex;align-items:center;gap:10px}.modal-title .icon[data-v-7a9bb8a2]{font-size:22px}.close-btn[data-v-7a9bb8a2]{background:none;border:none;font-size:28px;color:#999;cursor:pointer;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.close-btn[data-v-7a9bb8a2]:hover{background:#f5f5f5;color:#333}.modal-body[data-v-7a9bb8a2]{padding:20px;overflow-y:auto;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px}.loading-state[data-v-7a9bb8a2]{display:flex;flex-direction:column;align-items:center;gap:16px}.spinner[data-v-7a9bb8a2]{width:50px;height:50px;border:4px solid #f3f3f3;border-top:4px solid #667eea;border-radius:50%;animation:spin-7a9bb8a2 1s linear infinite}@keyframes spin-7a9bb8a2{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-state p[data-v-7a9bb8a2]{color:#666;font-size:14px;margin:0}.preview-container[data-v-7a9bb8a2]{width:100%;display:flex;flex-direction:column;align-items:center;gap:16px}.image-wrapper[data-v-7a9bb8a2]{background:#f5f5f5;border-radius:8px;padding:16px;max-width:100%;overflow:auto;box-shadow:inset 0 2px 8px #0000001a}.preview-image[data-v-7a9bb8a2]{max-width:100%;max-height:60vh;display:block;border-radius:4px;box-shadow:0 4px 12px #00000026}.preview-hint[data-v-7a9bb8a2]{color:#999;font-size:13px;margin:0;text-align:center}.error-state[data-v-7a9bb8a2]{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.error-icon[data-v-7a9bb8a2]{font-size:48px}.error-state p[data-v-7a9bb8a2]{color:#333;font-size:16px;font-weight:500;margin:0}.error-hint[data-v-7a9bb8a2]{color:#999;font-size:13px;margin:0}.modal-footer[data-v-7a9bb8a2]{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid #e8e8e8}.btn[data-v-7a9bb8a2]{padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:6px;border:none}.btn-secondary[data-v-7a9bb8a2]{background:#f5f5f5;color:#666}.btn-secondary[data-v-7a9bb8a2]:hover{background:#e8e8e8}.btn-primary[data-v-7a9bb8a2]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary[data-v-7a9bb8a2]:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.btn-icon[data-v-7a9bb8a2]{font-size:16px}.modal-enter-active[data-v-7a9bb8a2],.modal-leave-active[data-v-7a9bb8a2]{transition:opacity .3s ease}.modal-enter-from[data-v-7a9bb8a2],.modal-leave-to[data-v-7a9bb8a2]{opacity:0}.modal-enter-active .modal-container[data-v-7a9bb8a2],.modal-leave-active .modal-container[data-v-7a9bb8a2]{transition:all .3s ease}.modal-enter-from .modal-container[data-v-7a9bb8a2]{opacity:0;transform:translateY(-30px) scale(.95)}.modal-leave-to .modal-container[data-v-7a9bb8a2]{opacity:0;transform:translateY(30px) scale(.95)}
