@charset "UTF-8";.side-menu[data-v-24d2ff4b]{height:100%;width:100%}.logo[data-v-24d2ff4b]{height:60px;display:flex;align-items:center;justify-content:center;border-bottom:1px solid #4a5568}.logo h3[data-v-24d2ff4b]{color:#fff;margin:0;font-size:16px;font-weight:600}.menu[data-v-24d2ff4b]{border:none;height:calc(100vh - 60px);width:100%}.menu .el-menu-item[data-v-24d2ff4b],.menu .el-sub-menu__title[data-v-24d2ff4b]{font-size:14px}.menu .el-menu-item.is-active[data-v-24d2ff4b]{background-color:#409eff!important}.menu .el-menu-item[data-v-24d2ff4b]:hover,.menu .el-sub-menu__title[data-v-24d2ff4b]:hover{background-color:#263445!important}.top-header[data-v-c9adf34c]{height:60px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;background:#fff}.left-section[data-v-c9adf34c]{display:flex;align-items:center}.sidebar-toggle[data-v-c9adf34c]{margin-right:20px;font-size:18px;color:#5a5e66}.breadcrumb[data-v-c9adf34c]{font-size:14px}.right-section[data-v-c9adf34c]{display:flex;align-items:center;gap:15px}.item[data-v-c9adf34c]{margin-right:10px}.fullscreen-btn[data-v-c9adf34c]{font-size:16px;color:#5a5e66}.lang-toggle[data-v-c9adf34c]{font-size:14px;color:#5a5e66}.user-info[data-v-c9adf34c]{display:flex;align-items:center;cursor:pointer;padding:0 10px;border-radius:4px;transition:background-color .3s}.user-info[data-v-c9adf34c]:hover{background-color:#f5f7fa}.username[data-v-c9adf34c]{margin:0 8px;color:#606266;font-size:14px}.admin-layout[data-v-879ced49]{height:100vh;width:100vw}.sidebar[data-v-879ced49]{background-color:var(--sidebar-bg);color:#fff;overflow:hidden;box-shadow:var(--sidebar-shadow)}.header[data-v-879ced49]{background-color:var(--header-bg);border-bottom:1px solid var(--header-border);padding:0;box-shadow:var(--header-shadow)}#nprogress{pointer-events:none}#nprogress .bar{background:#29d;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #29d,0 0 5px #29d;opacity:1;-webkit-transform:rotate(3deg) translate(0px,-4px);-ms-transform:rotate(3deg) translate(0px,-4px);transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:solid 2px transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .spinner,.nprogress-custom-parent #nprogress .bar{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:root{--primary-color: #409eff;--success-color: #67c23a;--warning-color: #e6a23c;--danger-color: #f56c6c;--info-color: #909399;--text-primary: #303133;--text-regular: #606266;--text-secondary: #909399;--text-placeholder: #c0c4cc;--border-base: #dcdfe6;--border-light: #e4e7ed;--border-lighter: #ebeef5;--border-extra-light: #f2f6fc;--fill-base: #f0f2f5;--fill-light: #f5f7fa;--fill-lighter: #fafafa;--fill-blank: #ffffff;--header-height: 60px;--sidebar-width: 200px;--sidebar-bg: #304156;--sidebar-text: #bfcbd9;--sidebar-text-active: #409eff;--sidebar-shadow: 2px 0 6px rgba(0, 0, 0, .1);--header-bg: #ffffff;--header-border: #e6e6e6;--header-shadow: 0 1px 4px rgba(0, 0, 0, .08)}*{margin:0;padding:0;box-sizing:border-box}html,body,#app{height:100%;font-family:Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,微软雅黑,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--fill-base);color:var(--text-primary)}.el-main{--el-main-padding: 0;padding:0}.app-container{padding:20px;background-color:var(--fill-base);min-height:calc(100vh - var(--header-height));overflow-y:auto}.page-container{background:var(--fill-blank);border-radius:4px;overflow:hidden}.card-header{display:flex;justify-content:space-between;align-items:center}.table-container .el-table .el-table__header-wrapper th{background-color:var(--fill-lighter);color:var(--text-primary);font-weight:600}.table-container .el-table .el-table__row:hover{background-color:var(--fill-light)}.el-menu--vertical .el-menu-item.is-active{background-color:var(--primary-color)!important;color:#fff!important}.el-table th{background-color:var(--fill-lighter)!important}.el-pagination{text-align:right}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.pagination-container{display:flex;justify-content:flex-end;margin-top:20px}.search-form .el-form-item{margin-bottom:18px;margin-right:20px}.action-buttons{display:flex;gap:8px}.action-buttons .el-button{padding:8px 16px}.stat-card .el-card__body{padding:20px}.stat-card .stat-content{display:flex;justify-content:space-between;align-items:center}.stat-card .stat-value{font-size:28px;font-weight:700;color:var(--text-primary);line-height:1}.stat-card .stat-title{font-size:14px;color:var(--text-secondary);margin-top:8px}.stat-card .stat-icon{width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff}@media (max-width: 768px){.search-form .el-form-item{width:100%;margin-right:0}.action-buttons{flex-direction:column}.action-buttons .el-button{width:100%}.stat-card{margin-bottom:16px}}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.mb-0{margin-bottom:0}.mb-10{margin-bottom:10px}.mb-20{margin-bottom:20px}.mb-30{margin-bottom:30px}.mt-0{margin-top:0}.mt-10{margin-top:10px}.mt-20{margin-top:20px}.mt-30{margin-top:30px}.ml-10{margin-left:10px}.mr-10{margin-right:10px}.p-10{padding:10px}.p-20{padding:20px}.full-width{width:100%}.full-height{height:100%}.fade-enter-active,.fade-leave-active{transition:opacity .3s}.fade-enter-from,.fade-leave-to{opacity:0}.slide-fade-enter-active{transition:all .3s ease-out}.slide-fade-leave-active{transition:all .3s cubic-bezier(1,.5,.8,1)}.slide-fade-enter-from,.slide-fade-leave-to{transform:translate(20px);opacity:0}
