@charset "UTF-8";@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.95)}to{transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes glow-pulse{0%,to{box-shadow:0 0 5px #2a6dff4d}50%{box-shadow:0 0 20px #2a6dff99}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes ripple{0%{transform:scale(0);opacity:1}to{transform:scale(4);opacity:0}}.animate{animation-duration:.5s;animation-fill-mode:both;animation-timing-function:cubic-bezier(.16,1,.3,1)}.animate-fade-in-up{animation-name:fadeInUp}.animate-fade-in-down{animation-name:fadeInDown}.animate-fade-in-left{animation-name:fadeInLeft}.animate-fade-in-right{animation-name:fadeInRight}.animate-scale-in{animation-name:scaleIn}.animate-bounce-in{animation-name:bounceIn}.animate-pulse{animation-name:pulse;animation-duration:2s;animation-iteration-count:infinite}.animate-float{animation-name:float;animation-duration:3s;animation-iteration-count:infinite;animation-timing-function:ease-in-out}.animate-spin{animation-name:spin;animation-duration:1s;animation-iteration-count:infinite;animation-timing-function:linear}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-400{animation-delay:.4s}.delay-500{animation-delay:.5s}.delay-600{animation-delay:.6s}.delay-700{animation-delay:.7s}.delay-800{animation-delay:.8s}.duration-fast{animation-duration:.3s}.duration-normal{animation-duration:.5s}.duration-slow{animation-duration:.8s}.hover-lift{transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s ease}.hover-lift:hover{transform:translateY(-4px);box-shadow:0 12px 24px #0000001a}.hover-scale{transition:transform .3s cubic-bezier(.16,1,.3,1)}.hover-scale:hover{transform:scale(1.02)}.hover-glow{transition:box-shadow .3s ease}.hover-glow:hover{box-shadow:0 0 20px #2a6dff4d}.ripple-effect{position:relative;overflow:hidden}.ripple-effect:after{content:"";position:absolute;top:50%;left:50%;width:5px;height:5px;background:#ffffff80;opacity:0;border-radius:100%;transform:scale(1) translate(-50%,-50%);transform-origin:50% 50%}.ripple-effect:focus:not(:active):after{animation:ripple .6s ease-out}.page-enter-active,.page-leave-active{transition:all .4s cubic-bezier(.16,1,.3,1)}.page-enter-from{opacity:0;transform:translateY(20px)}.page-leave-to{opacity:0;transform:translateY(-20px)}.stagger-list>*{opacity:0;animation:fadeInUp .5s cubic-bezier(.16,1,.3,1) forwards}.stagger-list>*:nth-child(1){animation-delay:.05s}.stagger-list>*:nth-child(2){animation-delay:.1s}.stagger-list>*:nth-child(3){animation-delay:.15s}.stagger-list>*:nth-child(4){animation-delay:.2s}.stagger-list>*:nth-child(5){animation-delay:.25s}.stagger-list>*:nth-child(6){animation-delay:.3s}.stagger-list>*:nth-child(7){animation-delay:.35s}.stagger-list>*:nth-child(8){animation-delay:.4s}.stagger-list>*:nth-child(9){animation-delay:.45s}.stagger-list>*:nth-child(10){animation-delay:.5s}.stagger-list>*:nth-child(11){animation-delay:.55s}.stagger-list>*:nth-child(12){animation-delay:.6s}.stagger-list>*:nth-child(13){animation-delay:.65s}.stagger-list>*:nth-child(14){animation-delay:.7s}.stagger-list>*:nth-child(15){animation-delay:.75s}.stagger-list>*:nth-child(16){animation-delay:.8s}.stagger-list>*:nth-child(17){animation-delay:.85s}.stagger-list>*:nth-child(18){animation-delay:.9s}.stagger-list>*:nth-child(19){animation-delay:.95s}.stagger-list>*:nth-child(20){animation-delay:1s}.card-enter{opacity:0;transform:translateY(30px) scale(.95)}.card-enter.card-enter-active{opacity:1;transform:translateY(0) scale(1);transition:all .5s cubic-bezier(.16,1,.3,1)}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.loading-dots{display:inline-flex;gap:4px}.loading-dots span{width:8px;height:8px;background:#2a6dff;border-radius:50%;animation:pulse 1.4s infinite ease-in-out both}.loading-dots span:nth-child(1){animation-delay:-.32s}.loading-dots span:nth-child(2){animation-delay:-.16s}.loading-dots span:nth-child(3){animation-delay:0s}.number-roll{display:inline-block;transition:transform .3s ease}.success-check{animation:bounceIn .6s cubic-bezier(.16,1,.3,1)}.error-shake{animation:shake .5s ease}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-5px)}20%,40%,60%,80%{transform:translate(5px)}}.search-form{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;padding:16px 20px 16px 26px;margin-bottom:16px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000a,0 4px 12px #00000005}.search-form:before{content:"";position:absolute;top:14px;bottom:14px;left:0;width:3px;border-radius:0 3px 3px 0;background:linear-gradient(180deg,#2a6dff,#2a6dff73)}.search-form .el-form-item{margin:0}.search-form .el-form-item .el-form-item__label{min-width:80px;padding-right:8px;font-size:13px;font-weight:500;color:#4b5563;text-align:right;justify-content:flex-end;white-space:nowrap}.search-form .el-form-item .el-form-item__content{align-items:center;flex-wrap:nowrap}.search-form .el-form-item:last-child{margin-left:auto}.search-form .el-input__wrapper,.search-form .el-select__wrapper{border-radius:8px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;font-family:Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Arial,sans-serif;font-size:14px;color:#333;background-color:#f5f7fc;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{width:100%;height:100%}a{color:#2a6dff;text-decoration:none}a:hover,a:focus{opacity:.8}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ccc;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#999}.app-wrapper{position:relative;width:100%;height:100%}.app-wrapper.hideSidebar .sidebar-container{width:64px}.app-wrapper.hideSidebar .main-container{margin-left:64px}.app-wrapper.openSidebar .sidebar-container{width:240px}.app-wrapper.openSidebar .main-container{margin-left:240px}.sidebar-container{position:fixed;top:0;bottom:0;left:0;z-index:1001;width:240px;height:100%;overflow:hidden;background:linear-gradient(180deg,#1e293b,#0f172a);transition:width .2s}.main-container{position:relative;min-height:100%;margin-left:240px;transition:margin-left .2s}.el-breadcrumb__inner,.el-breadcrumb__inner a{font-weight:400!important}.el-dropdown-menu__item{font-size:12px!important}.el-dialog{border-radius:8px}.el-button{transition:all .3s cubic-bezier(.16,1,.3,1)}.el-button:hover{transform:translateY(-1px)}.el-button:active{transform:translateY(0)}.el-button.el-button--primary{box-shadow:0 2px 8px #2a6dff4d}.el-button.el-button--primary:hover{box-shadow:0 4px 16px #2a6dff66}.el-card{transition:all .3s cubic-bezier(.16,1,.3,1)}.el-card:hover{box-shadow:0 8px 24px #00000014}.el-input .el-input__wrapper{transition:all .3s cubic-bezier(.16,1,.3,1)}.el-input .el-input__wrapper.is-focus{box-shadow:0 0 0 2px #2a6dff1a,0 2px 8px #00000014}.el-table .el-table__row{transition:background-color .2s ease}.el-table .operation-column .cell{white-space:nowrap}.el-tag{transition:all .2s ease}.el-tag:hover{transform:scale(1.02)}.el-select-dropdown,.el-dropdown-menu{animation:dropdown-enter .2s cubic-bezier(.16,1,.3,1)}@keyframes dropdown-enter{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.el-dialog{animation:dialog-enter .3s cubic-bezier(.16,1,.3,1)}@keyframes dialog-enter{0%{opacity:0;transform:scale(.95) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.el-message{animation:message-slide .3s cubic-bezier(.16,1,.3,1)}@keyframes message-slide{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}#nprogress .bar{background:#2a6dff!important}.permission-disabled{cursor:not-allowed!important;opacity:.5}.permission-disabled:hover{transform:none!important;box-shadow:none!important}
