body,html{margin:0;overflow-y:auto}#app,body,html{overflow-x:hidden}.pattern-select-popper{width:110px!important;min-width:100px!important;overflow:hidden;text-align:center!important}::root{--primary-color:#1890ff;--primary-hover:#096dd9;--secondary-color:#409eff;--accent-color:#ff6a00;--success-color:#52c41a;--warning-color:#faad14;--error-color:#f5222d;--text-primary:#333;--text-secondary:#666;--text-tertiary:#999;--border-color:#e8e8e8;--background-light:#fafafa;--background-gray:#f5f5f5;--background-blue:#ecf5ff;--background-white:#fff;--font-xs:12px;--font-sm:14px;--font-md:16px;--font-lg:18px;--font-xl:20px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--shadow-sm:0 1px 2px rgba(0,0,0,.05);--shadow-md:0 2px 8px rgba(0,0,0,.08);--shadow-lg:0 4px 16px rgba(0,0,0,.1);--transition-fast:0.15s ease;--transition-normal:0.25s ease;--transition-slow:0.4s ease}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#c0c4cc;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#909399}.flex{display:flex}.flex-column{display:flex;flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.flex-1{flex:1}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-primary{color:var(--primary-color)}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-tertiary)}.text-success{color:var(--success-color)}.text-warning{color:var(--warning-color)}.text-error{color:var(--error-color)}.text-blue{color:var(--secondary-color)}.text-green{color:var(--success-color)}.text-red{color:var(--error-color)}.bg-light{background-color:var(--background-light)}.bg-gray{background-color:var(--background-gray)}.bg-blue{background-color:var(--background-blue)}.m-0{margin:0}.m-1{margin:var(--space-1)}.m-2{margin:var(--space-2)}.m-3{margin:var(--space-3)}.m-4{margin:var(--space-4)}.p-0{padding:0}.p-1{padding:var(--space-1)}.p-2{padding:var(--space-2)}.p-3{padding:var(--space-3)}.p-4{padding:var(--space-4)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.el-card{border-radius:var(--radius-md);border:none;box-shadow:var(--shadow-sm)}.el-card:hover{box-shadow:var(--shadow-md)}.el-button,.el-input__inner,.el-select .el-input__inner,.el-table{border-radius:var(--radius-sm)}.el-table th{background-color:var(--background-light);font-weight:600}.el-dialog{border-radius:var(--radius-md)}.el-dialog__header{border-bottom:1px solid var(--border-color)}.el-dialog__body,.el-dialog__header{padding:var(--space-4) var(--space-5)}.el-dialog__footer{padding:var(--space-3) var(--space-5);border-top:1px solid var(--border-color)}.el-tag{border-radius:var(--radius-sm)}.el-pagination{justify-content:center}.el-menu{border-right:none}.el-menu-item{border-radius:var(--radius-sm);margin:var(--space-1) var(--space-2)}.el-menu-item.is-active{background-color:var(--background-blue)}.el-timeline-item__node{background-color:var(--primary-color)}.el-timeline-item__content{padding:var(--space-2);background-color:var(--background-light);border-radius:var(--radius-sm)}.el-timeline-item__content:hover{box-shadow:var(--shadow-md)}.el-form{margin-bottom:var(--space-4)}.el-form-item__label{font-size:var(--font-sm);color:var(--text-secondary);font-weight:500}.el-image-viewer__img{background-color:#fff}@media (max-width:767px){*{scrollbar-width:none;-ms-overflow-style:none}::-webkit-scrollbar{display:none;width:0!important;height:0!important}.page-layout:not(.mobile-fullwidth) .main-content{padding-left:0!important;padding-right:0!important}}:root{--mobile-font-xs:0.32rem;--mobile-font-sm:0.373rem;--mobile-font-md:0.427rem;--mobile-font-lg:0.48rem;--mobile-font-xl:0.533rem;--mobile-font-xxl:0.64rem;--mobile-font-title:0.587rem}@media (max-width:767px){.mobile-text-xs{font-size:var(--mobile-font-xs)!important}.mobile-text-sm{font-size:var(--mobile-font-sm)!important}.mobile-text-md{font-size:var(--mobile-font-md)!important}.mobile-text-lg{font-size:var(--mobile-font-lg)!important}.mobile-text-xl{font-size:var(--mobile-font-xl)!important}.mobile-text-xxl{font-size:var(--mobile-font-xxl)!important}.mobile-text-title{font-size:var(--mobile-font-title)!important}}.mobile-back-to-top[data-v-2a8e4495]{position:fixed;right:16px;bottom:88px;width:42px;height:42px;border-radius:50%;background:rgba(24,144,255,.6);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 10px rgba(0,0,0,.18);border:none;z-index:1500;cursor:pointer;-webkit-tap-highlight-color:transparent}.mobile-back-to-top[data-v-2a8e4495]:active{background:rgba(24,144,255,.85)}.backtop-fade-enter-active[data-v-2a8e4495],.backtop-fade-leave-active[data-v-2a8e4495]{transition:opacity .25s ease,transform .25s ease}.backtop-fade-enter-from[data-v-2a8e4495],.backtop-fade-leave-to[data-v-2a8e4495]{opacity:0;transform:translateY(8px)}.pc-back-to-top[data-v-839e38a6]{position:fixed;right:40px;bottom:40px;width:44px;height:44px;background:#409eff;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;visibility:hidden;transition:all .3s ease;z-index:999;box-shadow:0 2px 12px rgba(64,158,255,.4)}.pc-back-to-top[data-v-839e38a6]:hover{background:#66b1ff;transform:translateY(-2px);box-shadow:0 4px 16px rgba(64,158,255,.6)}.pc-back-to-top.show[data-v-839e38a6]{opacity:1;visibility:visible}.pc-back-to-top .el-icon[data-v-839e38a6]{font-size:18px}.error-boundary[data-v-751f6701]{width:100%;min-height:200px;display:flex;flex-direction:column;justify-content:center;align-items:center}.error-content[data-v-751f6701]{width:100%;max-width:600px;margin:0 auto;padding:20px;text-align:center}.auth-dialog{border-radius:12px!important;box-shadow:0 12px 40px rgba(0,0,0,.15)!important;overflow:hidden}.auth-dialog .el-dialog__header{padding:0!important;border-bottom:none}.auth-dialog .el-dialog__body{padding:0 24px!important}.auth-dialog .el-dialog__headerbtn{margin-top:12px!important;margin-right:12px!important}.auth-dialog .el-dialog__footer{padding:16px 24px!important;border-top:none!important;margin-top:8px!important}.user-login-container[data-v-983bae34]{display:flex;align-items:center}.user-info-trigger[data-v-983bae34]{display:flex;align-items:center;gap:4px;cursor:pointer;color:#303133;font-size:14px;padding:6px 12px;border-radius:6px;transition:background-color .2s}.user-info-trigger[data-v-983bae34]:hover{background-color:#f0f2f5}.user-name[data-v-983bae34]{max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.login-button[data-v-983bae34]{color:#606266;font-size:14px;padding:8px 12px;border-radius:4px;transition:all .3s ease}.login-button[data-v-983bae34]:hover{color:#409eff;background-color:#ecf5ff}.challenge-banner[data-v-983bae34]{display:flex;align-items:center;gap:8px;margin:16px 0 4px;padding:10px 14px;background:#fdf6ec;border:1px solid #faecd8;border-radius:8px;color:#e6a23c;font-size:14px;line-height:1.4}.challenge-banner .banner-icon[data-v-983bae34]{font-size:18px;flex-shrink:0}.challenge-banner .banner-text[data-v-983bae34]{font-weight:500}.auth-tabs[data-v-983bae34]{display:flex;border-bottom:1px solid #ebeef5;margin-bottom:24px}.auth-tab[data-v-983bae34]{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:14px 0;font-size:15px;color:#909399;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s}.auth-tab[data-v-983bae34]:hover{color:#409eff}.auth-tab.active[data-v-983bae34]{color:#409eff;border-bottom-color:#409eff;font-weight:600}.auth-panel[data-v-983bae34]{min-height:260px}.panel-title[data-v-983bae34]{text-align:center;font-size:18px;font-weight:600;color:#303133;margin-bottom:6px}.panel-subtitle[data-v-983bae34]{text-align:center;font-size:13px;color:#909399;margin-bottom:24px}.panel-mode-tip[data-v-983bae34]{text-align:center;font-size:12px;color:#c0c4cc;margin:-16px 0 16px}.auth-form[data-v-983bae34]{padding:0 8px}.input-with-prefix .prefix-text[data-v-983bae34]{color:#909399;font-size:14px;padding-right:8px;border-right:1px solid #dcdfe6;margin-right:8px}.code-input-row[data-v-983bae34]{display:flex;gap:12px;width:100%}.code-input[data-v-983bae34]{flex:1}.send-code-btn[data-v-983bae34]{width:130px;flex-shrink:0;font-size:13px}.agreement-text[data-v-983bae34]{font-size:12px;color:#909399}.agreement-text a[data-v-983bae34]{color:#409eff}.submit-btn[data-v-983bae34]{width:100%;margin-top:8px;font-size:16px;letter-spacing:2px}.qr-code-container[data-v-983bae34]{text-align:center;padding:10px 0}.loading-container[data-v-983bae34]{display:flex;flex-direction:column;align-items:center;padding:40px 0}.loading-icon[data-v-983bae34]{font-size:36px;color:#409eff;animation:spin-983bae34 1.2s linear infinite}@keyframes spin-983bae34{to{transform:rotate(1turn)}}.loading-text[data-v-983bae34]{margin-top:12px;color:#909399;font-size:14px}.qr-code-wrapper[data-v-983bae34]{display:inline-block;padding:12px;border:1px solid #e4e7ed;border-radius:8px;background:#fff}.qr-code-image[data-v-983bae34]{width:200px;height:200px;display:block}.login-tips[data-v-983bae34]{margin-top:12px}.status-text[data-v-983bae34]{font-size:14px;color:#67c23a}.refresh-link[data-v-983bae34]{display:inline-block;margin-top:8px;font-size:13px;color:#409eff;cursor:pointer}.refresh-link[data-v-983bae34]:hover{text-decoration:underline}.dialog-footer[data-v-983bae34]{display:flex;justify-content:center}.bind-mobile-dialog .bind-tip[data-v-983bae34]{font-size:14px;color:#606266;margin-bottom:16px;line-height:1.5}.bind-code-row[data-v-983bae34]{display:flex;align-items:center;gap:10px}.bind-code-row .el-input[data-v-983bae34]{flex:1}.bind-code-btn[data-v-983bae34]{flex-shrink:0;min-width:110px}.rescan-body[data-v-7c0def20]{text-align:center;padding:4px 0 8px}.rescan-title[data-v-7c0def20]{font-size:16px;font-weight:600;color:#303133;margin:0 0 6px}.rescan-sub[data-v-7c0def20]{font-size:13px;color:#909399;margin:0 0 18px}.qr-wrap[data-v-7c0def20]{display:inline-block}.qr-loading[data-v-7c0def20]{display:flex;flex-direction:column;align-items:center;padding:40px 0}.loading-icon[data-v-7c0def20]{font-size:36px;color:#409eff;animation:rescan-spin-7c0def20 1.2s linear infinite}@keyframes rescan-spin-7c0def20{to{transform:rotate(1turn)}}.loading-text[data-v-7c0def20]{margin-top:12px;color:#909399;font-size:14px}.qr-img[data-v-7c0def20]{width:200px;height:200px;display:block;padding:12px;border:1px solid #e4e7ed;border-radius:8px;background:#fff}.qr-tip[data-v-7c0def20]{margin-top:12px}.status-text[data-v-7c0def20]{font-size:14px;margin:0}.status-success[data-v-7c0def20]{color:#67c23a}.status-error[data-v-7c0def20]{color:#f56c6c}.status-info[data-v-7c0def20]{color:#909399}.qr-error[data-v-7c0def20]{display:flex;flex-direction:column;align-items:center;gap:6px;padding:30px 0;color:#f56c6c}.err-icon[data-v-7c0def20]{font-size:32px}.err-text[data-v-7c0def20]{font-size:13px}.refresh-link[data-v-7c0def20]{display:inline-block;margin-top:4px;font-size:13px;color:#409eff;cursor:pointer}.refresh-link[data-v-7c0def20]:hover{text-decoration:underline}.slider-mask[data-v-2165db50]{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:3000}.slider-card[data-v-2165db50]{width:360px;max-width:calc(100vw - 24px);background:#fff;border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.25);overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none}.slider-header[data-v-2165db50]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #f0f0f0}.slider-title[data-v-2165db50]{font-size:15px;font-weight:600;color:#333}.slider-close[data-v-2165db50]{border:none;background:transparent;font-size:22px;line-height:1;color:#999;cursor:pointer}.slider-close[data-v-2165db50]:hover{color:#666}.slider-msg[data-v-2165db50]{padding:10px 16px 0;font-size:13px;color:#e6a23c}.slider-canvas-wrap[data-v-2165db50]{position:relative;margin:12px 16px 0;border-radius:8px;overflow:hidden;line-height:0}.slider-bg[data-v-2165db50]{display:block;width:100%;height:auto;border-radius:8px}.slider-overlay[data-v-2165db50]{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:13px;color:#fff;background:rgba(0,0,0,.5)}.slider-overlay-err[data-v-2165db50]{background:hsla(0,87%,69%,.85)}.slider-overlay-ok[data-v-2165db50]{background:rgba(103,194,58,.85)}.slider-track[data-v-2165db50]{position:relative;margin:14px 16px 0;height:40px;background:#f2f3f5;border-radius:20px;overflow:hidden;touch-action:none}.slider-track-text[data-v-2165db50]{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:13px;color:#999}.slider-track-text.is-hidden[data-v-2165db50]{opacity:0}.slider-fill[data-v-2165db50]{position:absolute;top:0;left:0;height:100%;background:linear-gradient(90deg,#5b8def,#8e54e9);opacity:.35}.slider-handle[data-v-2165db50]{position:absolute;top:0;left:0;width:42px;height:40px;border-radius:20px;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.2);display:flex;align-items:center;justify-content:center;font-size:18px;color:#5b8def;cursor:grab}.slider-handle.is-success[data-v-2165db50]{background:#67c23a;color:#fff}.slider-handle[data-v-2165db50]:active{cursor:grabbing}.slider-tip[data-v-2165db50]{padding:10px 16px 16px;font-size:12px;color:#bbb;text-align:center}#app,body{font-family:Microsoft YaHei,PingFang SC,Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;-moz-osx-font-smoothing:grayscale}#app{color:#333;width:100%;min-height:100vh}#app,.page-layout{margin:0;padding:0}.page-layout{display:flex}.main-content{width:100%;margin:0;padding:0}.page-layout:not(.admin){min-height:100vh;width:100%}.page-layout.mobile-fullwidth{overflow-x:auto}.page-layout:not(.admin) .main-content{width:100%;max-width:1200px;margin:0 auto;min-height:100vh;overflow:auto;padding-top:0}.page-layout:not(.admin).mobile-fullwidth .main-content{max-width:100%;overflow-x:hidden}.page-layout:not(.admin).no-header .main-content{margin-top:0}.page-layout.admin{height:100vh;width:100vw;overflow:hidden}.page-layout.admin .main-content{width:100%;height:100%;overflow:auto}:root{--el-color-primary:#1890ff;--el-color-success:#67c23a;--el-color-warning:#e6a23c;--el-color-danger:#f56c6c;--el-color-info:#909399}html .el-input__wrapper,html .el-textarea__inner{border:1px solid var(--el-border-color)!important;box-shadow:none!important;transition:border-color .2s,background-color .2s}html .el-input__wrapper:hover,html .el-textarea__inner:hover{border-color:var(--el-border-color-hover)!important;box-shadow:none!important}html .el-input.is-active .el-input__wrapper,html .el-input__wrapper.is-focus,html .el-input__wrapper:focus-within,html .el-textarea.is-focus .el-textarea__inner,html .el-textarea__inner:focus{border-color:var(--el-input-focus-border-color,var(--el-color-primary))!important;box-shadow:none!important;outline:none!important}html .el-input__inner{border:none!important;box-shadow:none!important}html .el-input-number{min-width:0!important}html .el-input-number .el-input__wrapper{border:1px solid var(--el-border-color)!important;box-shadow:none!important}html .el-input-number .el-input.is-active .el-input__wrapper,html .el-input-number .el-input__wrapper.is-focus,html .el-input-number .el-input__wrapper:focus-within{border-color:var(--el-input-focus-border-color,var(--el-color-primary))!important;box-shadow:none!important}html .el-input-number--small .el-input__wrapper{border:1px solid var(--el-border-color)!important;box-shadow:none!important}html .el-input-number--small .el-input.is-active .el-input__wrapper,html .el-input-number--small .el-input__wrapper.is-focus,html .el-input-number--small .el-input__wrapper:focus-within{border-color:var(--el-input-focus-border-color,var(--el-color-primary))!important;box-shadow:none!important}html .el-input-number__decrease:hover~.el-input:not(.is-disabled) .el-input__wrapper,html .el-input-number__increase:hover~.el-input:not(.is-disabled) .el-input__wrapper{border-color:var(--el-input-focus-border-color,var(--el-color-primary))!important;box-shadow:none!important}html .el-input-number.is-controls-right .el-input__wrapper{border:1px solid var(--el-border-color)!important;box-shadow:none!important}html .el-input-number.is-controls-right .el-input.is-active .el-input__wrapper,html .el-input-number.is-controls-right .el-input__wrapper.is-focus,html .el-input-number.is-controls-right .el-input__wrapper:focus-within{border-color:var(--el-input-focus-border-color,var(--el-color-primary))!important;box-shadow:none!important}html .el-input-number.is-controls-right.el-input-number--small .el-input__wrapper{border:1px solid var(--el-border-color)!important;box-shadow:none!important}html .el-input-number.is-controls-right.el-input-number--small .el-input.is-active .el-input__wrapper,html .el-input-number.is-controls-right.el-input-number--small .el-input__wrapper.is-focus,html .el-input-number.is-controls-right.el-input-number--small .el-input__wrapper:focus-within{border-color:var(--el-input-focus-border-color,var(--el-color-primary))!important;box-shadow:none!important}html .el-date-editor .el-input__wrapper{border:1px solid var(--el-border-color)!important;box-shadow:none!important}html .el-date-editor.is-focus .el-input__wrapper{border-color:var(--el-input-focus-border-color,var(--el-color-primary))!important;box-shadow:none!important}html .el-cascader:not(.is-disabled):hover .el-input__wrapper{box-shadow:none!important;border-color:var(--el-border-color-hover)!important}html .el-cascader .el-input.is-focus .el-input__wrapper{box-shadow:none!important;border-color:var(--el-input-focus-border-color,var(--el-color-primary))!important}html .el-range-editor.el-input__wrapper{box-shadow:none!important;border:1px solid var(--el-border-color)!important}html .el-range-editor.is-active,html .el-range-editor.is-active:hover{box-shadow:none!important;border-color:var(--el-input-focus-border-color,var(--el-color-primary))!important}html .el-pagination .el-input .el-input__wrapper{border:1px solid var(--el-border-color)!important;box-shadow:none!important}html .el-pagination .el-input.is-focus .el-input__wrapper{border-color:var(--el-input-focus-border-color,var(--el-color-primary))!important;box-shadow:none!important}.lazy-tm-img[data-v-276e8a60]{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.lazy-tm-img-el[data-v-276e8a60]{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;display:block}.lazy-tm-img-ph[data-v-276e8a60]{width:100%;height:100%;background:#f5f5f5}