.icon[data-v-7403d48f]{display:inline-block;vertical-align:middle;flex-shrink:0}.component-library[data-v-40965843]{padding:16px;height:100%}.title[data-v-40965843]{margin:0 0 16px;font-size:16px;font-weight:600;color:#333}.component-grid[data-v-40965843]{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.component-item[data-v-40965843]{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-40965843]:hover{border-color:#409eff;box-shadow:0 2px 8px #409eff33}.icon-svg[data-v-40965843]{margin-bottom:8px;color:#409eff}.name[data-v-40965843]{font-size:12px;color:#666}.canvas-element[data-v-6a422f32]{position:absolute;-webkit-user-select:none;user-select:none}.text-element[data-v-6a422f32]{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-6a422f32]{white-space:nowrap;display:flex;align-items:center}.text-element.layout-multi-auto-wrap[data-v-6a422f32]{white-space:pre-wrap;word-break:break-all}.text-element.layout-multi-wrap-ellipsis[data-v-6a422f32]{white-space:pre-wrap;word-break:break-all;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.text-element[data-v-6a422f32]:hover{border-color:#ccc}.text-element-wrapper[data-v-6a422f32]{width:100%;height:100%;position:relative;cursor:pointer}.text-image[data-v-6a422f32]{width:100%;height:100%;object-fit:fill;display:block}.text-edit-input[data-v-6a422f32]{position:absolute;top:0;left:0;width:100%;height:100%;padding:8px;border:2px solid #409eff;outline:none;font-size:14px;line-height:1.5;resize:none;background:#fff;box-sizing:border-box;z-index:10}.image-element[data-v-6a422f32]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden}.image-element img[data-v-6a422f32]{width:100%;height:100%;object-fit:cover}.image-placeholder[data-v-6a422f32]{display:flex;flex-direction:column;align-items:center;color:#999}.image-placeholder span[data-v-6a422f32]:first-child{font-size:32px;margin-bottom:4px}.qrcode-element[data-v-6a422f32]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#fff}.qrcode-element img[data-v-6a422f32]{width:100%;height:100%;object-fit:contain}.shape-element[data-v-6a422f32]{width:100%;height:100%}.ellipse-element[data-v-6a422f32],.circle-element[data-v-6a422f32]{border-radius:50%}.resize-handle[data-v-6a422f32]{position:absolute;width:8px;height:8px;background:#409eff;border:1px solid #fff}.resize-handle.nw[data-v-6a422f32]{top:-4px;left:-4px;cursor:nw-resize}.resize-handle.ne[data-v-6a422f32]{top:-4px;right:-4px;cursor:ne-resize}.resize-handle.sw[data-v-6a422f32]{bottom:-4px;left:-4px;cursor:sw-resize}.resize-handle.se[data-v-6a422f32]{bottom:-4px;right:-4px;cursor:se-resize}.context-menu[data-v-6a422f32]{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-6a422f32]{padding:8px 16px;cursor:pointer;font-size:13px;color:#333;display:flex;align-items:center;gap:8px;transition:background .2s}.menu-item[data-v-6a422f32]:hover{background:#f5f5f5}.menu-item.delete[data-v-6a422f32]{color:#f56c6c}.menu-item.delete[data-v-6a422f32]:hover{background:#fef0f0}.menu-icon[data-v-6a422f32]{font-size:14px}.menu-divider[data-v-6a422f32]{height:1px;background:#eee;margin:4px 0}.editor-canvas-wrapper[data-v-96963c62]{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-96963c62]{flex-shrink:0;position:relative;overflow:hidden}.editor-canvas[data-v-96963c62]{background:#fff;box-shadow:0 4px 20px #0000001a;position:absolute;top:0;left:0;overflow:hidden}.property-panel[data-v-0ced5f0a]{padding:16px}.title[data-v-0ced5f0a]{margin:0 0 16px;font-size:16px;font-weight:600;color:#333}.property-form[data-v-0ced5f0a]{display:flex;flex-direction:column;gap:16px}.form-row[data-v-0ced5f0a]{display:flex;gap:12px}.form-row .form-group[data-v-0ced5f0a]{flex:1}.form-group[data-v-0ced5f0a]{display:flex;flex-direction:column;gap:6px}.form-group label[data-v-0ced5f0a]{font-size:12px;color:#666;font-weight:500}.form-group input[data-v-0ced5f0a],.form-group textarea[data-v-0ced5f0a]{padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;outline:none;transition:border-color .2s}.form-group input[data-v-0ced5f0a]:focus,.form-group textarea[data-v-0ced5f0a]:focus{border-color:#409eff}.type-badge[data-v-0ced5f0a]{display:inline-block;padding:4px 12px;background:#409eff;color:#fff;border-radius:4px;font-size:12px}.empty-state[data-v-0ced5f0a]{display:flex;align-items:center;justify-content:center;height:200px;color:#999;font-size:14px}.checkbox-label[data-v-0ced5f0a]{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-0ced5f0a]:hover{border-color:#409eff}.checkbox-label input[type=checkbox][data-v-0ced5f0a]{width:18px;height:18px;cursor:pointer}.lock-icon[data-v-0ced5f0a]{font-size:16px}.divider[data-v-0ced5f0a]{height:1px;background:#ddd;margin:8px 0}.section-title[data-v-0ced5f0a]{font-size:14px;font-weight:600;color:#333;margin-bottom:8px}.color-input-wrapper[data-v-0ced5f0a]{display:flex;gap:8px;align-items:center}.color-input-wrapper input[type=color][data-v-0ced5f0a]{width:40px;height:32px;padding:0;border:1px solid #ddd;border-radius:4px;cursor:pointer}.color-input-wrapper input[type=text][data-v-0ced5f0a]{flex:1}.align-buttons[data-v-0ced5f0a],.style-buttons[data-v-0ced5f0a]{display:flex;gap:8px}.align-buttons button[data-v-0ced5f0a],.style-buttons button[data-v-0ced5f0a]{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-0ced5f0a]:hover,.style-buttons button[data-v-0ced5f0a]:hover{border-color:#409eff}.align-buttons button.active[data-v-0ced5f0a],.style-buttons button.active[data-v-0ced5f0a]{background:#409eff;color:#fff;border-color:#409eff}.transparent-btn[data-v-0ced5f0a]{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-0ced5f0a]:hover{border-color:#409eff}.transparent-btn.active[data-v-0ced5f0a]{border-color:#409eff;box-shadow:0 0 0 2px #409eff4d}.preset-sizes[data-v-0ced5f0a]{display:flex;flex-wrap:wrap;gap:8px}.preset-sizes button[data-v-0ced5f0a]{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-0ced5f0a]:hover{border-color:#409eff;background:#f0f9ff}.fit-buttons[data-v-0ced5f0a]{display:flex;gap:8px}.image-upload-wrapper[data-v-0ced5f0a]{display:flex;flex-direction:column;gap:8px}.image-preview[data-v-0ced5f0a]{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-0ced5f0a]{max-width:100%;max-height:100%;object-fit:contain}.image-preview-empty[data-v-0ced5f0a]{color:#bbb;font-size:12px}.upload-btn[data-v-0ced5f0a]{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-0ced5f0a]:hover:not(:disabled){background:#66b1ff;border-color:#66b1ff}.upload-btn[data-v-0ced5f0a]:disabled{background:#a0cfff;border-color:#a0cfff;cursor:not-allowed}.upload-hint[data-v-0ced5f0a]{margin:0;font-size:12px;color:#999}.upload-error[data-v-0ced5f0a]{margin:0;font-size:12px;color:#f56c6c}.fit-buttons button[data-v-0ced5f0a]{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-0ced5f0a]:hover{border-color:#409eff}.fit-buttons button.active[data-v-0ced5f0a]{background:#409eff;color:#fff;border-color:#409eff}.border-radius-grid[data-v-0ced5f0a]{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.radius-input[data-v-0ced5f0a]{display:flex;flex-direction:column;gap:4px}.radius-input label[data-v-0ced5f0a]{font-size:11px;color:#999}.radius-input input[data-v-0ced5f0a]{padding:6px 8px;border:1px solid #ddd;border-radius:4px;font-size:13px;outline:none;transition:border-color .2s}.radius-input input[data-v-0ced5f0a]:focus{border-color:#409eff}.data-source-wrapper[data-v-0ced5f0a]{display:flex;flex-direction:column;gap:8px}.data-source-select[data-v-0ced5f0a]{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-0ced5f0a]:focus{border-color:#409eff}.data-source-select option[data-v-0ced5f0a]{padding:8px}.data-source-info[data-v-0ced5f0a]{display:flex;align-items:center;gap:8px}.field-tag[data-v-0ced5f0a]{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-0ced5f0a]{font-size:12px;color:#999;margin:4px 0 0;line-height:1.4}.layout-select[data-v-0ced5f0a]{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-0ced5f0a]:focus{border-color:#409eff}.layout-hint[data-v-0ced5f0a]{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-0ced5f0a]{display:flex;gap:8px;align-items:center}.rotation-slider[data-v-0ced5f0a]{flex:1;height:4px;cursor:pointer}.rotation-number[data-v-0ced5f0a]{width:64px;flex-shrink:0}.modal-backdrop[data-v-9dcd6f09]{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-9dcd6f09]{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-9dcd6f09 .3s ease}@keyframes modalSlideIn-9dcd6f09{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.modal-header[data-v-9dcd6f09]{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e8e8e8}.modal-title[data-v-9dcd6f09]{margin:0;font-size:18px;font-weight:600;color:#333;display:flex;align-items:center;gap:10px}.modal-title .icon[data-v-9dcd6f09]{font-size:22px}.close-btn[data-v-9dcd6f09]{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-9dcd6f09]:hover{background:#f5f5f5;color:#333}.modal-body[data-v-9dcd6f09]{padding:24px;overflow-y:auto;flex:1}.modal-description[data-v-9dcd6f09]{color:#666;font-size:14px;margin:0 0 20px;line-height:1.5}.empty-state[data-v-9dcd6f09]{text-align:center;padding:40px 20px}.empty-icon[data-v-9dcd6f09]{font-size:48px;display:block;margin-bottom:16px}.empty-state p[data-v-9dcd6f09]{color:#666;font-size:14px;margin:0}.empty-hint[data-v-9dcd6f09]{color:#999;font-size:13px;margin-top:8px}.field-list[data-v-9dcd6f09]{display:flex;flex-direction:column;gap:16px}.field-item[data-v-9dcd6f09]{display:flex;flex-direction:column;gap:8px}.field-label[data-v-9dcd6f09]{display:flex;align-items:center;gap:8px;font-size:14px;flex-wrap:wrap}.field-name[data-v-9dcd6f09]{font-weight:500;color:#333}.field-key[data-v-9dcd6f09]{color:#999;font-size:12px;font-family:monospace}.usage-badge[data-v-9dcd6f09]{background:#e6f7ff;color:#1890ff;font-size:11px;padding:2px 8px;border-radius:10px;margin-left:auto}.field-input[data-v-9dcd6f09]{padding:10px 12px;border:1px solid #d9d9d9;border-radius:6px;font-size:14px;transition:all .2s}.field-input[data-v-9dcd6f09]:focus{outline:none;border-color:#409eff;box-shadow:0 0 0 3px #409eff1a}.preview-info[data-v-9dcd6f09]{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-9dcd6f09]{font-size:16px}.modal-footer[data-v-9dcd6f09]{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #e8e8e8}.btn[data-v-9dcd6f09]{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-9dcd6f09]{background:#f5f5f5;color:#666}.btn-secondary[data-v-9dcd6f09]:hover{background:#e8e8e8}.btn-primary[data-v-9dcd6f09]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary[data-v-9dcd6f09]:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.btn-icon[data-v-9dcd6f09]{font-size:16px}.modal-enter-active[data-v-9dcd6f09],.modal-leave-active[data-v-9dcd6f09]{transition:opacity .3s ease}.modal-enter-from[data-v-9dcd6f09],.modal-leave-to[data-v-9dcd6f09]{opacity:0}.modal-enter-active .modal-container[data-v-9dcd6f09],.modal-leave-active .modal-container[data-v-9dcd6f09]{transition:transform .3s ease}.modal-enter-from .modal-container[data-v-9dcd6f09],.modal-leave-to .modal-container[data-v-9dcd6f09]{transform:translateY(-30px)}.modal-backdrop[data-v-d2e1f9ad]{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-d2e1f9ad]{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-d2e1f9ad .3s ease}@keyframes modalSlideIn-d2e1f9ad{0%{opacity:0;transform:translateY(-30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header[data-v-d2e1f9ad]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e8e8e8}.modal-title[data-v-d2e1f9ad]{margin:0;font-size:18px;font-weight:600;color:#333;display:flex;align-items:center;gap:10px}.modal-title .icon[data-v-d2e1f9ad]{font-size:22px}.close-btn[data-v-d2e1f9ad]{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-d2e1f9ad]:hover{background:#f5f5f5;color:#333}.modal-body[data-v-d2e1f9ad]{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-d2e1f9ad]{display:flex;flex-direction:column;align-items:center;gap:16px}.spinner[data-v-d2e1f9ad]{width:50px;height:50px;border:4px solid #f3f3f3;border-top:4px solid #667eea;border-radius:50%;animation:spin-d2e1f9ad 1s linear infinite}@keyframes spin-d2e1f9ad{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-state p[data-v-d2e1f9ad]{color:#666;font-size:14px;margin:0}.preview-container[data-v-d2e1f9ad]{width:100%;display:flex;flex-direction:column;align-items:center;gap:16px}.image-wrapper[data-v-d2e1f9ad]{background:#f5f5f5;border-radius:8px;padding:16px;max-width:100%;overflow:auto;box-shadow:inset 0 2px 8px #0000001a}.preview-image[data-v-d2e1f9ad]{max-width:100%;max-height:60vh;display:block;border-radius:4px;box-shadow:0 4px 12px #00000026}.preview-hint[data-v-d2e1f9ad]{color:#999;font-size:13px;margin:0;text-align:center}.error-state[data-v-d2e1f9ad]{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.error-icon[data-v-d2e1f9ad]{font-size:48px}.error-state p[data-v-d2e1f9ad]{color:#333;font-size:16px;font-weight:500;margin:0}.error-hint[data-v-d2e1f9ad]{color:#999;font-size:13px;margin:0}.modal-footer[data-v-d2e1f9ad]{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid #e8e8e8}.btn[data-v-d2e1f9ad]{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-d2e1f9ad]{background:#f5f5f5;color:#666}.btn-secondary[data-v-d2e1f9ad]:hover{background:#e8e8e8}.btn-primary[data-v-d2e1f9ad]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary[data-v-d2e1f9ad]:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.btn-icon[data-v-d2e1f9ad]{font-size:16px}.modal-enter-active[data-v-d2e1f9ad],.modal-leave-active[data-v-d2e1f9ad]{transition:opacity .3s ease}.modal-enter-from[data-v-d2e1f9ad],.modal-leave-to[data-v-d2e1f9ad]{opacity:0}.modal-enter-active .modal-container[data-v-d2e1f9ad],.modal-leave-active .modal-container[data-v-d2e1f9ad]{transition:all .3s ease}.modal-enter-from .modal-container[data-v-d2e1f9ad]{opacity:0;transform:translateY(-30px) scale(.95)}.modal-leave-to .modal-container[data-v-d2e1f9ad]{opacity:0;transform:translateY(30px) scale(.95)}html,body{margin:0;padding:0;height:100%;overflow:hidden}.app-wrapper[data-v-e7b11a78]{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden}.top-toolbar[data-v-e7b11a78]{height:56px;background:#fff;border-bottom:1px solid #e8e8e8;display:flex;align-items:center;justify-content:space-between;padding:0 24px;flex-shrink:0;box-shadow:0 2px 8px #0000000f}.toolbar-title[data-v-e7b11a78]{font-size:18px;font-weight:600;color:#333}.toolbar-actions[data-v-e7b11a78]{display:flex;gap:12px}.toolbar-btn[data-v-e7b11a78]{display:flex;align-items:center;gap:6px;padding:8px 16px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:1px solid transparent}.toolbar-btn .btn-icon[data-v-e7b11a78]{font-size:16px}.preview-btn[data-v-e7b11a78]{background:#f0f5ff;color:#409eff;border-color:#91caff}.preview-btn[data-v-e7b11a78]:hover{background:#409eff;color:#fff}.save-btn[data-v-e7b11a78]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.save-btn[data-v-e7b11a78]:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.poster-editor[data-v-e7b11a78]{display:flex;flex:1;overflow:hidden}.left-panel[data-v-e7b11a78]{width:280px;background:#f5f5f5;border-right:1px solid #ddd;flex-shrink:0}.center-panel[data-v-e7b11a78]{flex:1;background:#e8e8e8;display:flex;justify-content:center;align-items:center;overflow:hidden}.right-panel[data-v-e7b11a78]{width:300px;background:#f5f5f5;border-left:1px solid #ddd;flex-shrink:0;overflow-y:auto;overflow-x:hidden}.data-notification[data-v-e7b11a78]{position:fixed;top:20px;left:50%;transform:translate(-50%);background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:12px 24px;border-radius:8px;box-shadow:0 4px 20px #0003;display:flex;align-items:center;gap:12px;z-index:9999;animation:slideDown-e7b11a78 .3s ease}@keyframes slideDown-e7b11a78{0%{opacity:0;transform:translate(-50%) translateY(-20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.notification-icon[data-v-e7b11a78]{font-size:20px}.notification-text[data-v-e7b11a78]{font-size:14px;font-weight:500}.notification-close[data-v-e7b11a78]{background:#fff3;border:none;color:#fff;width:24px;height:24px;border-radius:50%;cursor:pointer;font-size:16px;line-height:1;margin-left:8px;transition:background .2s}.notification-close[data-v-e7b11a78]:hover{background:#ffffff4d}.app-wrapper[data-v-e7b11a78]{width:100vw;height:100vh;overflow:hidden}
