#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#2c3e50;transition:all .3s ease}.app-container{height:100vh;display:flex;flex-direction:column}.app-container>.el-container{flex:1;min-height:0}.app-header{height:50px!important;background:linear-gradient(90deg,#37495f 10%,#6777be 30%,#5ea4f4);color:#fff;display:flex;justify-content:space-between;align-items:center;padding:0 20px;box-shadow:0 2px 4px rgba(0,0,0,.1);flex-shrink:0}.header-left h1{margin:0;font-size:20px;font-weight:700}.header-right{gap:15px}.header-right,.user-info{display:flex;align-items:center}.user-info{gap:8px;cursor:pointer}.user-name{color:#fff;font-size:14px;font-weight:700}.language-btn,.theme-btn{color:#fff!important;cursor:pointer}.language-dropdown .el-dropdown-menu{min-width:100px}.app-aside{background:#37495f;box-shadow:2px 0 4px rgba(0,0,0,.1);flex-shrink:0}.el-menu-vertical-demo{background-color:#37495f!important}.app-main{padding:0!important;background-color:#f5f7fa;display:flex;flex-direction:column;min-height:0}.app-breadcrumb{flex:0 0 auto;padding:10px 16px;background:#fff;border-bottom:1px solid #ebeef5;height:41px}.app-main-content{flex:1 1 auto;min-height:0;height:calc(100% - 41px);overflow:hidden}.app-footer{height:40px;background-color:#fff;text-align:center;line-height:40px;font-size:14px;color:#909399;box-shadow:0 -2px 4px rgba(0,0,0,.05);flex-shrink:0}.dark-theme{background-color:#1a1a1a;color:#e0e0e0}.dark-theme .app-main{background-color:#2c2c2c}.dark-theme .app-footer{background-color:#333;color:#b0b0b0}@media (max-width:768px){.app-aside{width:60px!important}.el-menu-item span,.el-submenu__title span{display:none}.el-menu-item i,.el-submenu__title i{margin-right:0}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Arial,sans-serif;font-size:14px;line-height:1.5;color:#303133;background-color:#f5f7fa}:root{--primary-color:#667eea;--secondary-color:#764ba2;--success-color:#67c23a;--warning-color:#e6a23c;--danger-color:#f56c6c;--info-color:#909399;--light-color:#f5f7fa;--dark-color:#303133;--border-color:#ebeef5;--text-color:#606266;--text-color-light:#909399;--background-color:#fff;--background-color-light:#f5f7fa}.el-button--primary{background:linear-gradient(135deg,var(--primary-color) 0,var(--secondary-color) 100%);border:none;transition:all .3s ease}.el-button--primary:hover{background:linear-gradient(135deg,#5a6fd8,#6b4391);transform:translateY(-2px);box-shadow:0 4px 12px rgba(102,126,234,.3)}.app-aside .el-menu{border:none}.search-form{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:0}.search-form .el-form-item{margin-bottom:0}.pagination{margin-top:15px;margin-bottom:15px;display:flex;justify-content:flex-end;padding:0 15px}.el-card{border-radius:8px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);transition:all .3s ease}.el-card__header{padding:10px}.el-card__body{padding:20px}.el-card:hover{box-shadow:0 4px 16px 0 rgba(0,0,0,.15)}.el-table{border-bottom:none}.el-table th{background-color:var(--background-color-light)!important;font-weight:700;color:var(--dark-color)}.el-form-item__label{font-weight:500;color:var(--dark-color)}.el-input__inner{border-radius:4px;transition:all .3s ease}.el-input__inner:focus,.el-select .el-input.is-focus .el-input__inner{border-color:var(--primary-color);box-shadow:0 0 0 2px rgba(102,126,234,.2)}.el-tag{border-radius:4px;padding:0 8px}.el-pagination.is-background .el-pager li:not(.disabled):hover{color:var(--primary-color)}.el-pagination.is-background .el-pager li.active{background-color:var(--primary-color);color:#fff}.el-dialog{border-radius:8px;overflow:hidden}.el-dialog__header{background:linear-gradient(135deg,var(--primary-color) 0,var(--secondary-color) 100%);color:#fff;padding:15px 20px}.el-dialog__title{color:#fff;font-weight:700}.el-loading-spinner .path{stroke:var(--primary-color)}.el-message{min-width:300px;border-radius:4px}.el-notification{border-radius:4px;box-shadow:0 4px 12px rgba(0,0,0,.15)}.el-tooltip__popper{border-radius:4px;box-shadow:0 2px 12px rgba(0,0,0,.15)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--background-color-light);border-radius:4px}::-webkit-scrollbar-thumb{background:var(--info-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-color)}@media (max-width:768px){.app-container{flex-direction:column}.app-header{padding:0 10px}.app-header h1{font-size:18px}.app-main{padding:10px}.el-card{margin-bottom:10px}.search-form{flex-direction:column;align-items:stretch}.stats-container{grid-template-columns:repeat(2,1fr)}.home-content{grid-template-columns:1fr}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease-in-out}.text-center{text-align:center}.text-right{text-align:right}.mt-10{margin-top:10px}.mb-10{margin-bottom:10px}.mt-20{margin-top:20px}.card-header,.mb-20{margin-bottom:20px}.card-header{display:flex;justify-content:space-between;align-items:center}.card-header h2{font-size:18px;font-weight:700;color:var(--dark-color);margin:0}.search-container{padding:10px;background-color:var(--background-color);border-radius:8px}.dark-theme{--primary-color:#7c86db;--secondary-color:#8a6cb8;--success-color:#73c948;--warning-color:#f0b349;--danger-color:#f77878;--info-color:#a0a4aa;--light-color:#2c2c2c;--dark-color:#e0e0e0;--border-color:#4e4e4e;--text-color:#b0b0b0;--text-color-light:grey;--background-color:#333;--background-color-light:#2c2c2c}.dark-theme .app-aside{background-color:var(--background-color)}.dark-theme .app-aside .el-menu{background-color:var(--background-color)!important}.dark-theme .el-card{background-color:var(--background-color);border:none}.dark-theme .el-card__header{border-bottom:1px solid var(--border-color)!important}.dark-theme .el-table{background-color:var(--background-color);color:var(--text-color);overflow:hidden;margin-bottom:0!important;border-bottom:none!important}.dark-theme .el-table td,.dark-theme .el-table th{border-bottom:1px solid transparent;color:var(--text-color)}.dark-theme .el-table__header-wrapper th{background-color:var(--background-color-light)!important;color:var(--text-color)!important}.dark-theme .el-table__row{background-color:var(--background-color)!important}.dark-theme .el-table__row:hover{background-color:hsla(0,0%,100%,.1)!important}.dark-theme .el-table--striped .el-table__row--striped{background-color:hsla(0,0%,100%,.05)!important}.dark-theme .el-table td.el-table__cell,.dark-theme .el-table th.el-table__cell.is-leaf{border-bottom:1px solid transparent!important}.dark-theme .el-table:before,.dark-theme .el-table__fixed-right:before,.dark-theme .el-table__fixed:before{display:none!important}.dark-theme .el-form-item__label{color:var(--text-color)}.dark-theme .el-input__inner{background-color:var(--background-color-light);border-color:var(--border-color);color:var(--text-color)}.dark-theme .el-select-dropdown{background-color:var(--background-color)!important;border:1px solid var(--border-color)!important;box-shadow:0 2px 12px 0 rgba(0,0,0,.2)!important}.dark-theme .el-select-dropdown__item{color:var(--text-color)!important}.dark-theme .el-select-dropdown__item:hover{background-color:var(--background-color-light)!important}.dark-theme .el-pagination{background-color:var(--background-color)!important;border-top:1px solid transparent!important}.dark-theme .el-pager li{color:var(--text-color);background-color:var(--background-color)!important}.dark-theme .el-pager li.active{color:#409eff}.dark-theme .el-pagination__sizes .el-input__inner{background-color:var(--background-color-light)!important;border-color:var(--border-color)!important;color:var(--text-color)!important}.dark-theme .el-pagination button{background-color:var(--background-color)!important;border-color:var(--border-color)!important;color:var(--text-color)!important}.dark-theme .el-pagination button:hover{border-color:var(--primary-color)!important;color:var(--primary-color)!important}.dark-theme .el-dialog{background-color:var(--background-color)}.dark-theme .el-dialog__body{color:var(--text-color)}