:root{--color-primary: #409EFF;--color-success: #67C23A;--color-warning: #E6A23C;--color-danger: #F56C6C;--color-info: #909399;--sidebar-bg: #1d2b3a;--sidebar-bg-hover: #263445;--sidebar-active-bg: rgba(64, 158, 255, .15);--sidebar-text: #bfcbd9;--sidebar-text-active: #ffffff;--sidebar-width: 210px;--sidebar-width-collapsed: 64px;--header-bg: #1d2b3a;--header-height: 56px;--main-bg: #f0f2f5;--content-bg: #ffffff;--text-primary: #303133;--text-regular: #606266;--text-secondary: #909399;--text-placeholder: #c0c4cc;--border-color: #e4e7ed;--border-color-light: #ebeef5;--border-radius: 6px;--border-radius-lg: 10px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .04);--shadow-md: 0 2px 12px rgba(0, 0, 0, .06);--shadow-lg: 0 4px 20px rgba(0, 0, 0, .08);--spacing-xs: 8px;--spacing-sm: 12px;--spacing-md: 16px;--spacing-lg: 20px;--spacing-xl: 24px;--transition-fast: .2s ease;--transition-normal: .3s ease}:root{--el-border-radius-base: var(--border-radius);--el-color-primary: var(--color-primary);--el-bg-color-page: var(--main-bg);--el-fill-color-light: #f5f7fa;--el-text-color-primary: var(--text-primary);--el-text-color-regular: var(--text-regular);--el-text-color-secondary: var(--text-secondary)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,PingFang SC,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--text-primary);background:var(--main-bg)}.page-container{padding:var(--spacing-lg);animation:pageFadeIn var(--transition-normal)}@keyframes pageFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-lg)}.page-header h2{margin:0;font-size:20px;font-weight:600;color:var(--text-primary);line-height:1.4}.page-header-desc{margin:4px 0 0;font-size:13px;color:var(--text-secondary);font-weight:400}.page-header-actions{display:flex;align-items:center;gap:var(--spacing-xs);flex-shrink:0}.filter-card{margin-bottom:var(--spacing-md);border-radius:var(--border-radius-lg);border:1px solid var(--border-color-light);box-shadow:var(--shadow-sm)}.filter-card :deep(.el-card__body){padding:var(--spacing-md) var(--spacing-lg)}.filter-card :deep(.el-form-item){margin-bottom:0}.table-wrapper{background:var(--content-bg);border-radius:var(--border-radius-lg);border:1px solid var(--border-color-light);box-shadow:var(--shadow-sm);padding:var(--spacing-md);margin-bottom:var(--spacing-md)}.el-table{--el-table-border-color: var(--border-color-light);--el-table-header-bg-color: #fafbfc;--el-table-row-hover-bg-color: #f5f8ff;border-radius:var(--border-radius);overflow:hidden}.el-table th.el-table__cell{font-weight:600;color:var(--text-primary);font-size:13px}.pagination-wrapper{display:flex;justify-content:flex-end;padding:var(--spacing-md) 0 0}.el-card{border-radius:var(--border-radius-lg);border-color:var(--border-color-light);box-shadow:var(--shadow-sm)}.el-dialog{border-radius:var(--border-radius-lg);overflow:hidden}.el-dialog__header{border-bottom:1px solid var(--border-color-light);padding:var(--spacing-lg) var(--spacing-xl) var(--spacing-md);margin-right:0}.el-dialog__title{font-size:16px;font-weight:600}.el-dialog__body{padding:var(--spacing-lg) var(--spacing-xl)}.el-dialog__footer{border-top:1px solid var(--border-color-light);padding:var(--spacing-md) var(--spacing-xl)}.el-drawer__header{border-bottom:1px solid var(--border-color-light);margin-bottom:0;padding:var(--spacing-lg) var(--spacing-xl) var(--spacing-md)}.el-drawer__body{padding:var(--spacing-lg) var(--spacing-xl)}.el-descriptions{margin-bottom:var(--spacing-md)}.el-descriptions__label{font-weight:500;color:var(--text-secondary)}.form-section-title{font-size:14px;font-weight:600;color:var(--text-primary);padding:var(--spacing-sm) 0;margin:var(--spacing-md) 0 var(--spacing-sm);border-bottom:1px solid var(--border-color-light)}.el-tag{border-radius:4px}.el-pagination{justify-content:flex-end}.el-table .el-button--link{padding:4px 6px;border-radius:4px;transition:background var(--transition-fast)}.el-table .el-button--link:hover{background:#409eff0f}.el-empty__description p{color:var(--text-placeholder);font-size:13px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:#0000001f;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#0003}::-webkit-scrollbar-track{background:transparent}.el-button{transition:all var(--transition-fast)}.el-button:active:not(:disabled){transform:scale(.97)}.el-card{transition:box-shadow var(--transition-fast)}.el-card:hover{box-shadow:var(--shadow-md)}.el-table__row{transition:background var(--transition-fast)}.el-input__wrapper:focus-within,.el-select .el-input__wrapper:focus-within{box-shadow:0 0 0 1px var(--color-primary) inset,0 0 0 3px #409eff1a!important}.el-notification{border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg)}.el-loading-mask{background:#ffffffd9;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.el-tooltip__trigger:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:4px}.el-select-dropdown{border-radius:var(--border-radius)!important;box-shadow:var(--shadow-md)!important}.el-select-dropdown__item.is-selected{font-weight:600}.app-container{height:100vh;display:flex;flex-direction:column}.app-header{background:var(--header-bg);height:var(--header-height)!important;display:flex;align-items:center;justify-content:space-between;padding:0 var(--spacing-lg);border-bottom:1px solid rgba(255,255,255,.06);z-index:10}.app-header-left{display:flex;align-items:center;gap:var(--spacing-sm)}.app-header-left .el-breadcrumb{font-size:14px}.app-header-left .el-breadcrumb__inner,.app-header-left .el-breadcrumb__separator{color:#ffffff8c!important}.app-header-left .el-breadcrumb__item:last-child .el-breadcrumb__inner{color:#ffffffe6!important}.collapse-btn{font-size:20px;color:#ffffffb3;cursor:pointer;transition:color var(--transition-fast);margin-right:4px}.collapse-btn:hover{color:#fff}.app-header-right{display:flex;align-items:center;gap:var(--spacing-sm)}.app-username{color:#ffffffd9;font-size:14px}.app-user-info{display:flex;align-items:center;gap:8px}.app-avatar{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#409eff,#66b1ff);color:#fff;font-size:14px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}.app-role-tag{border-color:#fff3!important;background:#ffffff1a!important;color:#ffffffd9!important}.app-body{flex:1;overflow:hidden}.app-sidebar{background:var(--sidebar-bg);transition:width var(--transition-normal) cubic-bezier(.4,0,.2,1);overflow-x:hidden;overflow-y:auto;border-right:1px solid rgba(255,255,255,.04);display:flex;flex-direction:column}.app-sidebar::-webkit-scrollbar{width:4px}.app-sidebar::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}.sidebar-logo{height:48px;display:flex;align-items:center;justify-content:center;border-bottom:1px solid rgba(255,255,255,.06);flex-shrink:0;overflow:hidden}.sidebar-logo-text{font-size:16px;font-weight:700;color:#fff;white-space:nowrap;letter-spacing:1px;background:linear-gradient(135deg,#66b1ff,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.sidebar-logo-text-mini{font-size:20px;font-weight:700;background:linear-gradient(135deg,#66b1ff,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.app-sidebar .el-menu{border-right:none;flex:1;padding:4px 0}.app-sidebar .el-menu-item,.app-sidebar .el-sub-menu__title{border-radius:6px;margin:2px 8px;height:44px;line-height:44px;transition:all var(--transition-fast)}.app-sidebar .el-menu-item:hover,.app-sidebar .el-sub-menu__title:hover{background:var(--sidebar-bg-hover)!important}.app-sidebar .el-menu-item.is-active{background:var(--sidebar-active-bg)!important;color:var(--sidebar-text-active)!important;font-weight:600;position:relative}.app-sidebar .el-menu-item.is-active:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--color-primary)}.app-main{background:var(--main-bg);padding:var(--spacing-lg);overflow-y:auto}.page-fade-enter-active,.page-fade-leave-active{transition:opacity .25s ease,transform .25s ease}.page-fade-enter-from{opacity:0;transform:translateY(8px)}.page-fade-leave-to{opacity:0;transform:translateY(-4px)}
