.vue-advanced-cropper{direction:ltr;max-height:100%;max-width:100%;position:relative;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vue-advanced-cropper__stretcher{max-height:100%;max-width:100%;pointer-events:none;position:relative}.vue-advanced-cropper__image{max-width:none!important;position:absolute;transform-origin:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vue-advanced-cropper__background,.vue-advanced-cropper__foreground{background:#000;left:50%;opacity:1;position:absolute;top:50%;transform:translate(-50%,-50%)}.vue-advanced-cropper__foreground{opacity:.5}.vue-advanced-cropper__boundaries{left:50%;opacity:1;position:absolute;top:50%;transform:translate(-50%,-50%)}.vue-advanced-cropper__cropper-wrapper{height:100%;width:100%}.vue-advanced-cropper__image-wrapper{height:100%;overflow:hidden;position:absolute;width:100%}.vue-advanced-cropper__stencil-wrapper{position:absolute}.vue-simple-handler{background:#fff;display:block;height:10px;width:10px}.vue-handler-wrapper{height:30px;position:absolute;transform:translate(-50%,-50%);width:30px}.vue-handler-wrapper__draggable{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.vue-handler-wrapper--west-north{cursor:nw-resize}.vue-handler-wrapper--north{cursor:n-resize}.vue-handler-wrapper--east-north{cursor:ne-resize}.vue-handler-wrapper--east{cursor:e-resize}.vue-handler-wrapper--east-south{cursor:se-resize}.vue-handler-wrapper--south{cursor:s-resize}.vue-handler-wrapper--west-south{cursor:sw-resize}.vue-handler-wrapper--west{cursor:w-resize}.vue-handler-wrapper--disabled{cursor:auto}.vue-line-wrapper{align-items:center;background:none;display:flex;justify-content:center;position:absolute}.vue-line-wrapper--north,.vue-line-wrapper--south{height:12px;left:0;transform:translateY(-50%);width:100%}.vue-line-wrapper--north{cursor:n-resize;top:0}.vue-line-wrapper--south{cursor:s-resize;top:100%}.vue-line-wrapper--east,.vue-line-wrapper--west{height:100%;top:0;transform:translate(-50%);width:12px}.vue-line-wrapper--east{cursor:e-resize;left:100%}.vue-line-wrapper--west{cursor:w-resize;left:0}.vue-line-wrapper--disabled{cursor:auto}.vue-bounding-box{height:100%;position:relative;width:100%}.vue-bounding-box__handler{position:absolute}.vue-bounding-box__handler--west-north{left:0;top:0}.vue-bounding-box__handler--north{left:50%;top:0}.vue-bounding-box__handler--east-north{left:100%;top:0}.vue-bounding-box__handler--east{left:100%;top:50%}.vue-bounding-box__handler--east-south{left:100%;top:100%}.vue-bounding-box__handler--south{left:50%;top:100%}.vue-bounding-box__handler--west-south{left:0;top:100%}.vue-bounding-box__handler--west{left:0;top:50%}.vue-draggable-area{position:relative}.vue-preview-result{box-sizing:border-box;height:100%;overflow:hidden;position:absolute;width:100%}.vue-preview-result__wrapper{position:absolute}.vue-preview-result__image{max-width:none!important;pointer-events:none;position:relative;transform-origin:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vue-rectangle-stencil{box-sizing:border-box}.vue-rectangle-stencil,.vue-rectangle-stencil__preview{height:100%;position:absolute;width:100%}.vue-rectangle-stencil--movable{cursor:move}.vue-circle-stencil{box-sizing:content-box;cursor:move;height:100%;position:absolute;width:100%}.vue-circle-stencil__preview{border-radius:50%;height:100%;position:absolute;width:100%}.vue-circle-stencil--movable{cursor:move}.vue-preview{box-sizing:border-box;overflow:hidden;position:relative}.vue-preview--fill,.vue-preview__wrapper{height:100%;position:absolute;width:100%}.vue-preview__image{max-width:none!important;pointer-events:none;position:absolute;transform-origin:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vue-simple-line{background:none;border:0 solid hsla(0,0%,100%,.3);transition:border .5s}.vue-simple-line--north,.vue-simple-line--south{height:0;width:100%}.vue-simple-line--east,.vue-simple-line--west{height:100%;width:0}.vue-simple-line--east{border-right-width:1px}.vue-simple-line--west{border-left-width:1px}.vue-simple-line--south{border-bottom-width:1px}.vue-simple-line--north{border-top-width:1px}.vue-simple-line--hover{border-color:#fff;opacity:1}.crop-avatar-dialog.dark{background-color:#212121;border:1px solid hsla(0,0%,100%,.1)}.crop-avatar-dialog.dark .el-dialog__header{border-bottom:1px solid hsla(0,0%,100%,.1)}.crop-avatar-dialog .el-dialog__header{border-bottom:1px solid var(--color-border);margin-right:0;padding:8px 20px 8px 0}.crop-avatar-dialog .el-dialog__body{padding:20px}.crop-avatar-dialog .el-dialog__footer{border-top:1px solid var(--color-border);padding:12px 20px}.crop-avatar-dialog .crop-container{display:flex;flex-direction:column;gap:16px}.crop-avatar-dialog .crop-container .cropper{background:repeating-conic-gradient(#f0f0f0 0 25%,transparent 0 50%) 50%/20px 20px;border-radius:var(--border-radius-base);height:300px;overflow:hidden;width:100%}.crop-avatar-dialog .crop-container .preview-section{align-items:center;display:flex;gap:12px}.crop-avatar-dialog .crop-container .preview-section .preview-label{color:var(--color-text-secondary);font-size:14px}.crop-avatar-dialog .crop-container .preview-section .preview-avatar{background:var(--color-surface);border:2px solid var(--color-border);border-radius:50%;height:48px;overflow:hidden;width:48px}.crop-avatar-dialog .crop-container .preview-section .preview-avatar img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.crop-avatar-dialog .crop-container .preview-section .preview-avatar.preview-rect{border-radius:var(--border-radius-small)}.crop-avatar-dialog .crop-dialog-footer{align-items:center;display:flex;justify-content:right}.crop-avatar-dialog .crop-dialog-footer .footer-right{display:flex;flex:1;gap:12px}.crop-avatar-dialog .crop-dialog-footer .footer-right .el-button{background-color:#2a2a2a;border-color:#444;color:#fff}.crop-avatar-dialog .crop-dialog-footer .footer-right .el-button:hover{background-color:#333;border-color:#555}.crop-avatar-dialog .crop-dialog-footer .footer-right .el-button.el-button--primary{background-color:#3b82f6;border-color:#3b82f6;color:#fff}.crop-avatar-dialog .crop-dialog-footer .footer-right .el-button.el-button--primary:hover{background-color:#2563eb;border-color:#2563eb}.ai-generate-portrait-dialog.dark{background-color:#212121;border:1px solid hsla(0,0%,100%,.1)}.ai-generate-portrait-dialog.dark .el-dialog__header{border-bottom:1px solid hsla(0,0%,100%,.1)}.ai-generate-portrait-dialog.dark .el-dialog__header .ai-generate-portrait-dialog-header .title{color:#fff}.ai-generate-portrait-dialog.dark .el-dialog__body .ai-generate-portrait-dialog-content .el-loading-mask{background-color:#21212173}.ai-generate-portrait-dialog.dark .el-dialog__body .ai-generate-portrait-dialog-content .generate-tip{background-color:#ffffff0d;border-radius:12px;margin-bottom:24px}.ai-generate-portrait-dialog.dark .el-dialog__body .ai-generate-portrait-dialog-content .generate-tip .tip-icon,.ai-generate-portrait-dialog.dark .el-dialog__body .ai-generate-portrait-dialog-content .style-section .section-label{color:#fff}.ai-generate-portrait-dialog.dark .el-dialog__body .ai-generate-portrait-dialog-content .style-section .style-list .style-items .style-item{background-color:#ffffff0d}.ai-generate-portrait-dialog.dark .el-dialog__body .ai-generate-portrait-dialog-content .style-section .style-list .style-items .style-item .style-name{color:#fff}.ai-generate-portrait-dialog.dark .el-dialog__body .ai-generate-portrait-dialog-content .style-section .style-list .style-items .style-item .style-image{border:1px solid hsla(0,0%,100%,.1)}.ai-generate-portrait-dialog.dark .el-dialog__body .ai-generate-portrait-dialog-content .style-section .style-list .style-items .style-item.active{background-color:#ffffff1a}.ai-generate-portrait-dialog.dark .el-dialog__body .ai-generate-portrait-dialog-content .style-section .style-list .style-items .style-item.active .style-name{color:#fff}.ai-generate-portrait-dialog.dark .el-dialog__body .ai-generate-portrait-dialog-content .style-section .style-list .style-nav-btn{background-color:#ffffff0d;border-color:#ffffff0d}.ai-generate-portrait-dialog.dark .el-dialog__body .ai-generate-portrait-dialog-content .style-section .style-list .style-nav-btn i{color:#fffc}.ai-generate-portrait-dialog.dark .el-dialog__body .ai-generate-portrait-dialog-content .prompt-section .section-header .section-label{color:#fff}.ai-generate-portrait-dialog.dark .el-dialog__body .ai-generate-portrait-dialog-content .prompt-section .section-header .extract-btn{color:#ffffff80}.ai-generate-portrait-dialog.dark .el-dialog__footer{border-top-color:#ffffff1a}.ai-generate-portrait-dialog.dark .el-dialog__footer .ai-generate-portrait-dialog-footer .cancel-btn{background-color:#ffffff14;border:1px solid hsla(0,0%,100%,.12);color:#ffffffe6}.ai-generate-portrait-dialog.dark .el-dialog__footer .ai-generate-portrait-dialog-footer .cancel-btn:hover{background-color:#ffffff24;border-color:#ffffff2e}.ai-generate-portrait-dialog .el-dialog__header{border-bottom:1px solid #f0f0f0;margin-right:0;padding:16px 24px}.ai-generate-portrait-dialog .el-dialog__header .el-dialog__headerbtn{height:24px;right:12px;top:14px;width:24px}.ai-generate-portrait-dialog .el-dialog__header .el-dialog__headerbtn i{font-size:20px}.ai-generate-portrait-dialog .el-dialog__body{padding:24px}.ai-generate-portrait-dialog .el-dialog__footer{border-top:1px solid #f0f0f0;padding:16px 24px}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-header{align-items:center;display:flex;flex:1;justify-content:space-between;padding-right:8px}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-header .title{color:#1f2937;font-size:18px;font-weight:600}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-header .history-btn{align-items:center;background:transparent;border:none;color:#6b7280;display:inline-flex;font-size:13px;gap:4px;padding:4px 8px}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-header .history-btn .iconfont{font-size:14px}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-header .history-btn:hover{color:#3b82f6}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-content .generate-tip{align-items:flex-start;background-color:#eff6ff;border-radius:12px;display:flex;gap:12px;margin-bottom:24px;padding:12px 16px}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-content .generate-tip .tip-icon{font-size:18px}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-content .generate-tip .tip-content .tip-title{color:#3b82f6;font-size:14px;font-weight:500;line-height:24px}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-content .generate-tip .tip-content .tip-desc{color:#3b82f6;font-size:13px;line-height:24px}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-content .style-section{margin-bottom:24px}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-content .style-section .section-label{color:#374151;font-size:14px;font-weight:500;margin-bottom:12px}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-content .style-section .style-list{align-items:center;display:flex;gap:8px}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-content .style-section .style-list .style-nav-btn{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:50%;cursor:pointer;display:inline-flex;flex-shrink:0;height:28px;justify-content:center;min-width:28px;padding:0;transition:all .2s ease;width:28px}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-content .style-section .style-list .style-nav-btn:hover{border-color:#3b82f6;color:#3b82f6}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-content .style-section .style-list .style-nav-btn .el-icon{font-size:14px}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-content .style-section .style-list .style-items{display:flex;flex:1;gap:12px;overflow-x:auto;padding:4px 0;scroll-behavior:smooth}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-content .style-section .style-list .style-items::-webkit-scrollbar{display:none}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-content .style-section .style-list .style-items .style-item{align-items:center;background-color:#fff;border-radius:12px;cursor:pointer;display:flex;flex-direction:column;flex-shrink:0;gap:8px;min-width:80px;padding:8px;position:relative;transition:all .2s ease}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-content .style-section .style-list .style-items .style-item.active,.ai-generate-portrait-dialog .ai-generate-portrait-dialog-content .style-section .style-list .style-items .style-item:hover{background-color:#eff6ff}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-content .style-section .style-list .style-items .style-item.active .style-name{color:#3b82f6}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-content .style-section .style-list .style-items .style-item .check-icon{background:#3b82f6;border-radius:999px;color:#fff;display:inline-block;font-size:14px;font-weight:600;height:18px;line-height:20px;position:absolute;right:-2px;text-align:center;top:-2px;width:18px}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-content .style-section .style-list .style-items .style-item .style-image{border-radius:8px;height:93px;-o-object-fit:cover;object-fit:cover;width:72px}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-content .style-section .style-list .style-items .style-item .style-name{color:#374151;font-size:12px;white-space:nowrap}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-content .prompt-section .section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-content .prompt-section .section-header .section-label{color:#374151;font-size:14px;font-weight:500}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-content .prompt-section .section-header .extract-btn{color:#6b7280;font-size:13px;padding:4px 8px}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-content .prompt-section .section-header .extract-btn:hover{color:#3b82f6}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-content .prompt-section .el-textarea .el-textarea__inner{border-radius:12px;font-size:14px;line-height:1.6;padding:12px 16px;resize:none}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-content .prompt-section .el-textarea .el-textarea__inner::-moz-placeholder{color:#9ca3af}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-content .prompt-section .el-textarea .el-textarea__inner::placeholder{color:#9ca3af}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-footer{display:flex;gap:16px}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-footer .el-button span{display:block;line-height:18px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-footer .cancel-btn{background-color:#f3f4f6;border:none;border-radius:8px;color:#374151;flex:1;font-size:14px}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-footer .cancel-btn:hover{background-color:#e5e7eb}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-footer .generate-btn{background:linear-gradient(90deg,#8b5cf6,#3b82f6);border:none;border-radius:8px;flex:1.5;font-size:14px}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-footer .generate-btn .consume-compute-tip{color:#fffc;font-size:12px}.ai-generate-portrait-dialog .ai-generate-portrait-dialog-footer .generate-btn:hover{background:linear-gradient(90deg,#7c3aed,#2563eb)}.portrait-preview-dialog.dark{background-color:#212121;border:1px solid hsla(0,0%,100%,.1)}.portrait-preview-dialog.dark .el-dialog__header{border-bottom:1px solid hsla(0,0%,100%,.1)}.portrait-preview-dialog.dark .el-dialog__header .portrait-preview-dialog-header .title{color:#fff}.portrait-preview-dialog.dark .el-dialog__body .portrait-preview-dialog-content .el-loading-mask{background-color:#21212173}.portrait-preview-dialog.dark .el-dialog__footer{border-top-color:#ffffff1a}.portrait-preview-dialog.dark .el-dialog__footer .portrait-preview-dialog-footer .regenerate-btn{background-color:#ffffff14;border:1px solid hsla(0,0%,100%,.12);color:#ffffffe6}.portrait-preview-dialog.dark .el-dialog__footer .portrait-preview-dialog-footer .regenerate-btn:hover{background-color:#ffffff24;border-color:#ffffff2e}.portrait-preview-dialog .el-dialog__header{border-bottom:1px solid #f0f0f0;margin-right:0;padding:8px 24px 20px 0}.portrait-preview-dialog .el-dialog__body{padding:24px}.portrait-preview-dialog .el-dialog__footer{border-top:1px solid #f0f0f0;padding:16px 24px 8px}.portrait-preview-dialog .portrait-preview-dialog-header .title{color:#1f2937;font-size:18px;font-weight:600}.portrait-preview-dialog .portrait-preview-dialog-content .preview-container{align-items:center;display:flex;flex-direction:column}.portrait-preview-dialog .portrait-preview-dialog-content .preview-container .preview-image-wrapper{background:linear-gradient(135deg,#8b5cf61a,#3b82f61a);border-radius:16px;height:100%;margin-bottom:12px;overflow:hidden;position:relative;width:100%}.portrait-preview-dialog .portrait-preview-dialog-content .preview-container .preview-image-wrapper .preview-image{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.portrait-preview-dialog .portrait-preview-dialog-content .preview-container .preview-image-wrapper .download-btn{background:#ffffffe6;border:none;bottom:12px;box-shadow:0 2px 8px #0000001a;height:36px;position:absolute;right:12px;width:36px}.portrait-preview-dialog .portrait-preview-dialog-content .preview-container .preview-image-wrapper .download-btn:hover{background:#fff}.portrait-preview-dialog .portrait-preview-dialog-content .preview-container .preview-image-wrapper .download-btn .el-icon{color:#374151;font-size:18px}.portrait-preview-dialog .portrait-preview-dialog-content .preview-container .style-tag{background-color:#8b5cf61a;border-radius:20px;color:#8b5cf6;font-size:13px;padding:6px 16px}.portrait-preview-dialog .portrait-preview-dialog-content .generate-info{color:#6b7280;font-size:13px;text-align:center}.portrait-preview-dialog .portrait-preview-dialog-footer{display:flex;flex-direction:column;gap:12px}.portrait-preview-dialog .portrait-preview-dialog-footer .el-button span{display:block;line-height:18px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portrait-preview-dialog .portrait-preview-dialog-footer .use-btn{align-items:center;background:linear-gradient(90deg,#8b5cf6,#3b82f6);border:none;border-radius:8px;display:flex;flex:1.2;font-size:14px;justify-content:center}.portrait-preview-dialog .portrait-preview-dialog-footer .use-btn span{align-items:center;display:inline-flex;gap:6px}.portrait-preview-dialog .portrait-preview-dialog-footer .use-btn:hover{background:linear-gradient(90deg,#7c3aed,#2563eb)}.portrait-preview-dialog .portrait-preview-dialog-footer .regenerate-btn{align-items:center;background-color:#f3f4f6;border:none;border-radius:8px;color:#374151;display:flex;flex:1;font-size:14px;justify-content:center}.portrait-preview-dialog .portrait-preview-dialog-footer .regenerate-btn .el-icon{font-size:16px;font-weight:600}.portrait-preview-dialog .portrait-preview-dialog-footer .regenerate-btn span{align-items:center;display:inline-flex;gap:6px}.portrait-preview-dialog .portrait-preview-dialog-footer .regenerate-btn span span{margin-left:0}.portrait-preview-dialog .portrait-preview-dialog-footer .regenerate-btn:hover{background-color:#e5e7eb}.portrait-preview-dialog .portrait-preview-dialog-footer .el-button+.el-button{margin-left:0}.portrait-history-dialog.dark{background-color:#212121;border:1px solid hsla(0,0%,100%,.1)}.portrait-history-dialog.dark .el-dialog__header{border-bottom:1px solid hsla(0,0%,100%,.1)}.portrait-history-dialog.dark .el-dialog__header .portrait-history-dialog-header .title{color:#fff}.portrait-history-dialog.dark .el-dialog__body .portrait-history-dialog-content .el-loading-mask{background-color:#21212173}.portrait-history-dialog.dark .el-dialog__footer{border-top-color:#ffffff1a}.portrait-history-dialog.dark .el-dialog__footer .portrait-history-dialog-footer .close-btn{background-color:#ffffff14;border:1px solid hsla(0,0%,100%,.12);color:#ffffffe6}.portrait-history-dialog.dark .el-dialog__footer .portrait-history-dialog-footer .close-btn:hover{background-color:#ffffff24;border-color:#ffffff2e}.portrait-history-dialog .el-dialog__header{border-bottom:1px solid #f0f0f0;margin-right:0;padding:16px 24px}.portrait-history-dialog .el-dialog__body{overflow:hidden;padding:0}.portrait-history-dialog .el-dialog__footer{border-top:1px solid #f0f0f0;padding:16px 24px}.portrait-history-dialog .portrait-history-dialog-header .title{color:#1f2937;font-size:18px;font-weight:600}.portrait-history-dialog .portrait-history-dialog-content{max-height:500px;min-height:300px;overflow-y:auto;padding-right:8px}.portrait-history-dialog .portrait-history-dialog-content .empty-container,.portrait-history-dialog .portrait-history-dialog-content .loading-container{align-items:center;color:#9ca3af;display:flex;flex-direction:column;gap:12px;justify-content:center;min-height:200px}.portrait-history-dialog .portrait-history-dialog-content .empty-container .el-icon,.portrait-history-dialog .portrait-history-dialog-content .loading-container .el-icon{font-size:32px}.portrait-history-dialog .portrait-history-dialog-content .history-grid{display:grid;gap:16px;grid-template-columns:repeat(4,1fr)}.portrait-history-dialog .portrait-history-dialog-content .history-grid .history-card{background:#fff;border:2px solid #212121;border-radius:12px;cursor:pointer;overflow:hidden;position:relative;transition:all .2s ease}.portrait-history-dialog .portrait-history-dialog-content .history-grid .history-card .history-card-delete{align-items:center;background-color:#00000080;border-radius:50%;display:flex;height:28px;justify-content:center;opacity:0;position:absolute;right:8px;top:8px;transition:opacity .2s ease;width:28px;z-index:10}.portrait-history-dialog .portrait-history-dialog-content .history-grid .history-card .history-card-delete:hover{background-color:#000000b3}.portrait-history-dialog .portrait-history-dialog-content .history-grid .history-card .history-card-delete i{color:#fff;font-size:14px}.portrait-history-dialog .portrait-history-dialog-content .history-grid .history-card:hover{border-color:#e5e7eb}.portrait-history-dialog .portrait-history-dialog-content .history-grid .history-card:hover .history-card-delete{opacity:1}.portrait-history-dialog .portrait-history-dialog-content .history-grid .history-card.selected{border-color:#3b82f6}.portrait-history-dialog .portrait-history-dialog-content .history-grid .history-card.is-current{border-color:#10b981;cursor:default}.portrait-history-dialog .portrait-history-dialog-content .history-grid .history-card.is-current:hover{border-color:#10b981}.portrait-history-dialog .portrait-history-dialog-content .history-grid .history-card .card-image-wrapper{aspect-ratio:1;background:linear-gradient(135deg,#8b5cf61a,#3b82f61a);height:320px;overflow:hidden;position:relative;width:100%}.portrait-history-dialog .portrait-history-dialog-content .history-grid .history-card .card-image-wrapper .card-image{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.portrait-history-dialog .portrait-history-dialog-content .history-grid .history-card .card-image-wrapper .selected-mark{align-items:center;background:#3b82f6;border-radius:50%;display:flex;height:24px;justify-content:center;position:absolute;right:8px;top:8px;width:24px}.portrait-history-dialog .portrait-history-dialog-content .history-grid .history-card .card-image-wrapper .selected-mark .el-icon{color:#fff;font-size:14px}.portrait-history-dialog .portrait-history-dialog-content .history-grid .history-card .card-image-wrapper .current-mark{background:linear-gradient(135deg,#10b981,#059669);border-radius:12px;color:#fff;font-size:12px;font-weight:500;padding:4px 10px;position:absolute;right:8px;top:8px}.portrait-history-dialog .portrait-history-dialog-content .history-grid .history-card .card-style{color:#374151;font-size:13px;padding:8px 12px;text-align:center}.portrait-history-dialog .portrait-history-dialog-content .loading-more{align-items:center;color:#9ca3af;display:flex;font-size:13px;gap:8px;justify-content:center;padding:16px 0}.portrait-history-dialog .portrait-history-dialog-content .loading-more .el-icon{font-size:16px}.portrait-history-dialog .portrait-history-dialog-footer{display:flex;gap:16px}.portrait-history-dialog .portrait-history-dialog-footer .el-button span{display:block;line-height:18px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portrait-history-dialog .portrait-history-dialog-footer .close-btn{background-color:#f3f4f6;border:none;border-radius:8px;color:#374151;flex:1;font-size:14px}.portrait-history-dialog .portrait-history-dialog-footer .close-btn:hover{background-color:#e5e7eb}.portrait-history-dialog .portrait-history-dialog-footer .use-btn{background:linear-gradient(90deg,#8b5cf6,#3b82f6);border:none;border-radius:8px;flex:1.5;font-size:14px}.portrait-history-dialog .portrait-history-dialog-footer .use-btn:hover:not(:disabled){background:linear-gradient(90deg,#7c3aed,#2563eb)}.portrait-history-dialog .portrait-history-dialog-footer .use-btn:disabled{cursor:not-allowed;opacity:.5}.portrait-section[data-v-2ea9b6be]{display:flex;flex-wrap:wrap;gap:16px;width:100%}.portrait-section.portrait-section--readonly[data-v-2ea9b6be]{align-items:center;justify-content:center}.portrait-section .portrait-section-main[data-v-2ea9b6be]{align-items:stretch;display:flex;gap:16px}.portrait-section.dark .portrait-upload[data-v-2ea9b6be]{border-color:#fff3}.portrait-section.dark .portrait-preview-area[data-v-2ea9b6be]{background-color:#ffffff0d}.portrait-section.dark .portrait-actions .el-button[data-v-2ea9b6be]{background-color:#ffffff0d;border-color:#ffffff1a;color:#fff}.portrait-section.dark .portrait-actions .el-button[data-v-2ea9b6be]:hover{background-color:#ffffff1a;border-color:#ffffff26}.portrait-section .portrait-upload[data-v-2ea9b6be]{border:2px dashed #d1d5db;border-radius:12px;cursor:pointer;flex-shrink:0;max-width:140px;min-width:120px;overflow:hidden;position:relative;transition:all .2s ease}.portrait-section .portrait-upload[data-v-2ea9b6be]:not(.has-portrait){height:175px;max-height:175px;min-height:175px}.portrait-section .portrait-upload.has-portrait[data-v-2ea9b6be]{max-height:188px;min-height:120px}.portrait-section .portrait-upload.is-readonly[data-v-2ea9b6be]{cursor:default;pointer-events:none}.portrait-section .portrait-upload.is-readonly .portrait-preview:hover .portrait-mask[data-v-2ea9b6be]{opacity:0}.portrait-section .portrait-upload[data-v-2ea9b6be]:hover:not(.is-readonly){border-color:#3b82f6}.portrait-section .portrait-upload[data-v-2ea9b6be] .el-upload{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.portrait-section .portrait-upload .upload-trigger[data-v-2ea9b6be]{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;min-height:100%;width:100%}.portrait-section .portrait-upload .portrait-preview[data-v-2ea9b6be]{height:100%;position:relative;width:100%}.portrait-section .portrait-upload .portrait-preview img[data-v-2ea9b6be]{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.portrait-section .portrait-upload .portrait-preview .portrait-mask[data-v-2ea9b6be]{align-items:center;background:#00000080;display:flex;gap:16px;inset:0;justify-content:center;opacity:0;position:absolute;transition:opacity .2s ease}.portrait-section .portrait-upload .portrait-preview .portrait-mask .mask-btn[data-v-2ea9b6be]{align-items:center;background:#fff3;border-radius:50%;cursor:pointer;display:flex;height:36px;justify-content:center;transition:background .2s ease;width:36px}.portrait-section .portrait-upload .portrait-preview .portrait-mask .mask-btn[data-v-2ea9b6be]:hover{background:#ffffff4d}.portrait-section .portrait-upload .portrait-preview .portrait-mask .mask-btn i[data-v-2ea9b6be]{color:#fff;font-size:18px}.portrait-section .portrait-upload .portrait-preview:hover .portrait-mask[data-v-2ea9b6be]{opacity:1}.portrait-section .portrait-upload .upload-placeholder[data-v-2ea9b6be]{align-items:center;box-sizing:border-box;display:flex;flex:1;flex-direction:column;justify-content:center;min-height:0;width:100%}.portrait-section .portrait-upload .upload-placeholder.is-uploading .el-icon[data-v-2ea9b6be]{color:#3b82f6;font-size:24px}.portrait-section .portrait-upload .upload-placeholder .placeholder-text[data-v-2ea9b6be]{color:#9ca3af;font-size:12px}.portrait-section .portrait-preview-area[data-v-2ea9b6be]{align-items:center;align-self:stretch;background-color:#f9fafb;border-radius:12px;box-sizing:border-box;display:flex;justify-content:center;min-width:112px;overflow:hidden;padding:12px 16px}.portrait-section .portrait-preview-area img[data-v-2ea9b6be]{border-radius:50%;flex-shrink:0;height:96px;-o-object-fit:cover;object-fit:cover;width:96px}.portrait-section .portrait-preview-area .img-placeholder[data-v-2ea9b6be]{color:#9ca3af;font-size:12px;line-height:1.4;max-width:96px;padding:0 4px;text-align:center}.portrait-section .portrait-actions[data-v-2ea9b6be]{display:flex;flex:1;flex-direction:column;gap:12px}.portrait-section .portrait-actions .portrait-btn[data-v-2ea9b6be]{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;color:#374151;font-size:14px;height:38px;justify-content:center;padding:12px;width:100%}.portrait-section .portrait-actions .portrait-btn[data-v-2ea9b6be]:hover{background-color:#f3f4f6;border-color:#d1d5db}.portrait-section .portrait-actions[data-v-2ea9b6be] .el-button+.el-button{margin-left:0}.ai-co-edit-role-dialog.dark{background-color:#212121;border:1px solid hsla(0,0%,100%,.1)}.ai-co-edit-role-dialog.dark .el-dialog__header .edit-role-dialog-header .title{color:#fff}.ai-co-edit-role-dialog.dark .el-dialog__body .edit-role-dialog-content .el-loading-mask{background-color:#21212173}.ai-co-edit-role-dialog.dark .el-dialog__body .edit-role-dialog-content .edit-role-form .el-form-item .el-form-item__label{color:#fff}.ai-co-edit-role-dialog.dark .el-dialog__body .edit-role-dialog-content .edit-role-form .el-input.is-disabled .el-input__wrapper,.ai-co-edit-role-dialog.dark .el-dialog__body .edit-role-dialog-content .edit-role-form .el-textarea.is-disabled .el-textarea__inner{background-color:#ffffff0a;border-color:#ffffff14;box-shadow:none;cursor:not-allowed}.ai-co-edit-role-dialog.dark .el-dialog__body .edit-role-dialog-content .edit-role-form .el-input.is-disabled .el-input__inner,.ai-co-edit-role-dialog.dark .el-dialog__body .edit-role-dialog-content .edit-role-form .el-textarea.is-disabled .el-textarea__inner{color:#ffffffa6;-webkit-text-fill-color:hsla(0,0%,100%,.65)}.ai-co-edit-role-dialog.dark .el-dialog__body .edit-role-dialog-content .edit-role-form .el-input.is-disabled .el-input__inner::-moz-placeholder,.ai-co-edit-role-dialog.dark .el-dialog__body .edit-role-dialog-content .edit-role-form .el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:#ffffff40}.ai-co-edit-role-dialog.dark .el-dialog__body .edit-role-dialog-content .edit-role-form .el-input.is-disabled .el-input__inner::placeholder,.ai-co-edit-role-dialog.dark .el-dialog__body .edit-role-dialog-content .edit-role-form .el-textarea.is-disabled .el-textarea__inner::placeholder{color:#ffffff40}.ai-co-edit-role-dialog.dark .el-dialog__body .edit-role-dialog-content .edit-role-form .label-help-icon,.ai-co-edit-role-dialog.dark .el-dialog__body .edit-role-dialog-content .edit-role-form .role-tags-label-hint{color:#ffffff73}.ai-co-edit-role-dialog.dark .el-dialog__body .edit-role-dialog-content .edit-role-form .label-help-icon:hover{color:#ffffffb3}.ai-co-edit-role-dialog.dark .el-dialog__body .edit-role-dialog-content .edit-role-form .role-square-tag-pill{background-color:#ffffff0f;border-color:#ffffff24;color:#ffffffd9}.ai-co-edit-role-dialog.dark .el-dialog__body .edit-role-dialog-content .edit-role-form .role-square-tag-pill:hover{background-color:#ffffff1a;border-color:#ffffff38}.ai-co-edit-role-dialog.dark .el-dialog__body .edit-role-dialog-content .edit-role-form .role-square-tag-pill.is-selected{background-color:#3b82f633;border-color:#3b82f6;color:#93c5fd}.ai-co-edit-role-dialog.dark .el-dialog__footer{border-top-color:#ffffff1a}.ai-co-edit-role-dialog.dark .el-dialog__footer .edit-role-dialog-footer .footer-btn--cancel{background-color:#ffffff14;border:1px solid hsla(0,0%,100%,.12);color:#ffffffe6}.ai-co-edit-role-dialog.dark .el-dialog__footer .edit-role-dialog-footer .footer-btn--cancel:hover{background-color:#ffffff24;border-color:#ffffff2e}.ai-co-edit-role-dialog.dark .el-dialog__footer .edit-role-dialog-footer .footer-btn--publish{background-color:transparent;border:1px solid hsla(0,0%,100%,.22);color:#ffffffe0}.ai-co-edit-role-dialog.dark .el-dialog__footer .edit-role-dialog-footer .footer-btn--publish:hover{border-color:#93c5fd80;color:#93c5fd}.ai-co-edit-role-dialog.dark .el-dialog__footer .edit-role-dialog-footer .footer-status-tag--review{background-color:#eab3081f;border-color:#eab30859;color:#fcd34d}.ai-co-edit-role-dialog.dark .el-dialog__footer .edit-role-dialog-footer .footer-status-tag--published{background-color:#22c55e1f;border-color:#22c55e59;color:#86efac}.ai-co-edit-role-dialog.dark .el-dialog__footer .edit-role-dialog-footer .footer-btn--danger-outline{background-color:transparent;border-color:#f8717173;color:#f87171}.ai-co-edit-role-dialog.dark .el-dialog__footer .edit-role-dialog-footer .footer-btn--danger-outline:hover{background-color:#f871711a;border-color:#f87171}.ai-co-edit-role-dialog.dark .el-dialog__footer .edit-role-dialog-footer .footer-btn--copy-character{background-color:transparent;border:1px solid rgba(147,197,253,.45);color:#93c5fd}.ai-co-edit-role-dialog.dark .el-dialog__footer .edit-role-dialog-footer .footer-btn--copy-character:hover{background-color:#93c5fd1f;border-color:#93c5fd}.ai-co-edit-role-dialog :deep(.el-dialog__header){border-bottom:1px solid #f0f0f0;margin-right:0;padding:8px 24px 20px 0}.ai-co-edit-role-dialog :deep(.el-dialog__body){max-height:calc(80vh - 140px);min-height:480px;overflow-y:auto;padding:18px 8px 4px}.ai-co-edit-role-dialog :deep(.el-dialog__footer){border-top:1px solid #f0f0f0;padding:16px 24px}.edit-role-dialog-header .title{color:#1f2937;font-size:18px;font-weight:600}.edit-role-dialog-content .el-input.role-name-input .el-input__wrapper.is-focus{border-color:#3b82f6!important;box-shadow:none!important}.edit-role-dialog-content .edit-role-form .el-form-item{margin-bottom:20px;width:100%}.edit-role-dialog-content .edit-role-form .el-form-item .el-form-item__label{align-items:center;color:#374151;display:inline-flex;font-size:14px;font-weight:500;margin-bottom:4px;width:100%}.edit-role-dialog-content .edit-role-form .el-form-item .el-form-item__label .form-label-with-action{align-items:center;display:inline-flex;flex:1;justify-content:space-between;width:100%}.edit-role-dialog-content .edit-role-form .el-form-item .el-form-item__label .form-label-with-action .label-with-tooltip{align-items:center;display:inline-flex;gap:4px}.edit-role-dialog-content .edit-role-form .el-form-item .el-form-item__label .form-label-with-action .label-help-icon{color:#9ca3af;cursor:pointer;font-size:14px;transition:color .2s ease}.edit-role-dialog-content .edit-role-form .el-form-item .el-form-item__label .form-label-with-action .label-help-icon:hover{color:#6b7280}.edit-role-dialog-content .edit-role-form .el-form-item .el-form-item__label .form-label-with-action .random-btn{color:#6b7280;font-size:14px}.edit-role-dialog-content .edit-role-form .role-tags-form-item .role-tags-label-row{align-items:baseline;display:flex;flex-wrap:wrap;gap:8px;width:100%}.edit-role-dialog-content .edit-role-form .role-tags-form-item .role-tags-label-hint{color:#9ca3af;font-size:12px;font-weight:400}.edit-role-dialog-content .edit-role-form .role-tags-form-item .role-tags-pills{display:flex;flex-wrap:wrap;gap:8px}.edit-role-dialog-content .edit-role-form .role-tags-form-item .role-square-tag-pill{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:9999px;color:#374151;cursor:pointer;font-size:14px;line-height:1.25;margin:0;padding:6px 14px;transition:border-color .15s ease,background-color .15s ease,color .15s ease}.edit-role-dialog-content .edit-role-form .role-tags-form-item .role-square-tag-pill:hover{background-color:#f3f4f6;border-color:#d1d5db}.edit-role-dialog-content .edit-role-form .role-tags-form-item .role-square-tag-pill.is-selected{background-color:#3b82f614;border-color:#3b82f6;color:#2563eb}.edit-role-dialog-footer{align-items:center;display:flex;gap:12px;justify-content:space-between;width:100%}.edit-role-dialog-footer .edit-role-dialog-footer__left{flex-shrink:0}.edit-role-dialog-footer .edit-role-dialog-footer__right{align-items:center;display:flex;flex-shrink:0;flex-wrap:wrap;gap:8px;justify-content:flex-end}.edit-role-dialog-footer .footer-btn{border-radius:8px;font-size:14px;margin:0;min-width:120px;padding:0 20px}.edit-role-dialog-footer .footer-btn--cancel{background-color:#f3f4f6;border:none;color:#374151;width:100px}.edit-role-dialog-footer .footer-btn--cancel:hover{background-color:#e5e7eb}.edit-role-dialog-footer .footer-btn--save{background-color:#3b82f6;border:none;color:#fff}.edit-role-dialog-footer .footer-btn--save:hover{background-color:#2563eb;border-color:#93c5fd}.edit-role-dialog-footer .footer-btn--publish{background-color:#3b82f6;border:1px solid #e5e7eb;color:#fff}.edit-role-dialog-footer .footer-btn--publish:hover{background-color:#2563eb;border-color:#93c5fd}.edit-role-dialog-footer .footer-status-tag{align-items:center;border-radius:9999px;display:inline-flex;font-size:13px;font-weight:500;gap:6px;line-height:1.25;padding:6px 12px;white-space:nowrap}.edit-role-dialog-footer .footer-status-tag .footer-status-tag__icon{font-size:16px}.edit-role-dialog-footer .footer-status-tag--review{background-color:#fffbeb;border:1px solid #fde68a;color:#b45309}.edit-role-dialog-footer .footer-status-tag--published{background-color:#ecfdf5;border:1px solid #a7f3d0;color:#15803d}.edit-role-dialog-footer .footer-btn--danger-outline{background-color:#fff;border:1px solid rgba(220,38,38,.45);color:#dc2626}.edit-role-dialog-footer .footer-btn--danger-outline:hover{background-color:#fef2f2;border-color:#dc2626}.edit-role-dialog-footer .footer-btn--copy-character{background-color:#fff;border:1px solid #3b82f6;color:#2563eb}.edit-role-dialog-footer .footer-btn--copy-character:hover{background-color:#eff6ff;border-color:#2563eb}.edit-role-dialog-footer .copy-character-card-btn-inner{align-items:center;display:inline-flex;gap:6px}.edit-role-dialog-footer .copy-character-card-help-trigger{cursor:help;display:inline-flex;font-size:15px;line-height:1;opacity:.88}.ai-co-edit-role-copy-tooltip{max-width:300px}.ai-co-edit-role-copy-tooltip .copy-character-card-tooltip-content{font-size:13px;line-height:1.55;white-space:pre-line}
