.canvas-viewer-dialog-leafer{z-index:2000!important;background:transparent!important;box-shadow:none!important;margin:0 auto!important}.canvas-viewer-dialog-leafer .el-dialog__header{display:none!important}.canvas-viewer-dialog-leafer .el-dialog__body{padding:0!important;background:transparent!important}.canvas-viewer-dialog-leafer .viewer-body{display:flex;flex-direction:column;height:90vh;min-height:35rem;background:#fff;border-radius:1rem;overflow:hidden}.canvas-viewer-dialog-leafer .viewer-body .viewer-topbar{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1.5rem;border-bottom:.0625rem solid #eee}.canvas-viewer-dialog-leafer .viewer-body .viewer-topbar .topbar-left{flex:1;min-width:0;margin-right:1rem}.canvas-viewer-dialog-leafer .viewer-body .viewer-topbar .topbar-left .project-title{display:block;font-size:1rem;font-weight:500;color:#1e1f2e;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.canvas-viewer-dialog-leafer .viewer-body .viewer-topbar .topbar-right{display:flex;align-items:center;gap:.75rem}.canvas-viewer-dialog-leafer .viewer-body .viewer-topbar .topbar-right .readonly-hint{color:#999;font-size:.8125rem}.canvas-viewer-dialog-leafer .viewer-body .viewer-topbar .topbar-right .copy-project-btn{display:inline-flex;align-items:center;gap:.25rem;padding:.375rem .875rem;border:none;border-radius:.375rem;background:#1e1f2e;color:#fff;font-size:.8125rem;cursor:pointer;transition:all .2s}.canvas-viewer-dialog-leafer .viewer-body .viewer-topbar .topbar-right .copy-project-btn:hover:not(:disabled){background:#2d2f42}.canvas-viewer-dialog-leafer .viewer-body .viewer-topbar .topbar-right .copy-project-btn:disabled{opacity:.55;cursor:not-allowed}.canvas-viewer-dialog-leafer .viewer-body .viewer-topbar .topbar-right .copy-project-btn.is-loading i{animation:viewer-spin .8s linear infinite}.canvas-viewer-dialog-leafer .viewer-body .viewer-topbar .topbar-right .copy-project-btn i{font-size:.875rem}.canvas-viewer-dialog-leafer .viewer-body .viewer-topbar .topbar-right .close-btn{display:inline-flex;align-items:center;justify-content:center;width:2.125rem;height:2.125rem;border:none;border-radius:.375rem;background:#f5f5f5;color:#333;font-size:1rem;cursor:pointer;transition:all .2s}.canvas-viewer-dialog-leafer .viewer-body .viewer-topbar .topbar-right .close-btn:hover{background:#e8e8e8}.canvas-viewer-dialog-leafer .viewer-body .viewer-canvas-wrapper{flex:1;position:relative;overflow:hidden;min-height:25rem;background:#f5f5f5}.canvas-viewer-dialog-leafer .viewer-body .viewer-canvas-wrapper .viewer-canvas-surface{position:absolute;inset:0}.canvas-viewer-dialog-leafer .viewer-body .viewer-canvas-wrapper .canvas-empty-mask,.canvas-viewer-dialog-leafer .viewer-body .viewer-canvas-wrapper .canvas-error-mask,.canvas-viewer-dialog-leafer .viewer-body .viewer-canvas-wrapper .canvas-loading-mask{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.625rem;font-size:.875rem;z-index:10}.canvas-viewer-dialog-leafer .viewer-body .viewer-canvas-wrapper .canvas-loading-mask{color:#666;background:hsla(0,0%,96.1%,.96)}.canvas-viewer-dialog-leafer .viewer-body .viewer-canvas-wrapper .canvas-loading-mask .loading-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem 2.5rem;background:#fff;border-radius:.75rem;box-shadow:0 .25rem 1.25rem rgba(0,0,0,.08);min-width:15rem}.canvas-viewer-dialog-leafer .viewer-body .viewer-canvas-wrapper .canvas-loading-mask .loading-spinner{display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;font-size:2.5rem;color:#7c5cfc;line-height:1;animation:viewer-spin 1s linear infinite;will-change:transform}.canvas-viewer-dialog-leafer .viewer-body .viewer-canvas-wrapper .canvas-loading-mask .loading-text{font-size:.9375rem;color:#333;font-weight:500;white-space:nowrap;text-align:center;margin:0;padding:0}.canvas-viewer-dialog-leafer .viewer-body .viewer-canvas-wrapper .canvas-empty-mask{color:#999;background:hsla(0,0%,96.1%,.96)}.canvas-viewer-dialog-leafer .viewer-body .viewer-canvas-wrapper .canvas-empty-mask i{font-size:2.25rem}.canvas-viewer-dialog-leafer .viewer-body .viewer-canvas-wrapper .canvas-error-mask{color:#f56c6c;background:hsla(0,0%,96.1%,.96);cursor:pointer;z-index:20}.canvas-viewer-dialog-leafer .viewer-body .viewer-canvas-wrapper .canvas-error-mask i{font-size:2.25rem}@keyframes viewer-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}