body{background:radial-gradient(circle at 12% 8%,#eef4ff 0%,#f5f7fa 40%,#eef2ff 100%);margin:0}.admin-container{min-height:100vh}.admin-aside{background:linear-gradient(#001529 0%,#0f2748 100%);transition:width .28s cubic-bezier(.22,1,.36,1),box-shadow .28s;overflow:hidden;box-shadow:none!important;border-right:none!important}.admin-aside.el-aside{border-right:none!important}.logo{color:#fff;letter-spacing:.5px;padding:18px 16px;font-size:20px;font-weight:700}.admin-menu{background:0 0!important;border-right:none!important}.admin-menu:not(.el-menu--collapse){width:220px}.admin-menu .el-menu-item,.admin-menu .el-sub-menu__title{border-radius:8px;width:calc(100% - 16px);min-height:44px;margin:4px 8px;line-height:44px;transition:background-color .25s,color .25s,box-shadow .25s}.admin-menu .el-menu-item,.admin-menu .el-sub-menu__title,.admin-menu .el-sub-menu .el-menu-item{color:#dbeafe}.admin-menu .el-sub-menu .el-menu{background:0 0}.admin-menu .el-menu-item.is-active{color:#fff;background:#ffffff1f;border-right:3px solid #409eff}.admin-menu .el-sub-menu__title:hover,.admin-menu .el-menu-item:hover{color:#fff;background:#ffffff14!important}.admin-menu.el-menu--collapse .el-menu-item.is-active{box-shadow:inset 0 0 0 1px #409eff8c,0 0 12px #409eff38;background:#409eff38!important;border-right:none!important}.admin-menu.el-menu--collapse .el-menu-item.is-active .el-icon{color:#8ec5ff!important}.admin-menu.el-menu--collapse .el-menu-item.is-active:after{content:"";background:#409eff;border-radius:999px;width:3px;height:18px;position:absolute;top:50%;left:6px;transform:translateY(-50%)}.admin-menu.el-menu--collapse .el-sub-menu.is-active>.el-sub-menu__title{box-shadow:inset 0 0 0 1px #409eff73;background:#409eff2e!important;border-right:none!important}.admin-menu .el-menu-item,.admin-menu .el-sub-menu__title,.admin-menu .el-menu-item span{cursor:pointer;-webkit-user-select:none;user-select:none}.admin-menu,.admin-aside{backface-visibility:hidden}.admin-menu .el-menu-item .el-icon,.admin-menu .el-sub-menu__title .el-icon{transition:color .25s}.admin-menu .el-menu-item span,.admin-menu .el-sub-menu__title span{-webkit-font-smoothing:antialiased;text-rendering:geometricprecision}.admin-header{background:#fff;border-bottom:1px solid #ebeef5;justify-content:space-between;align-items:center;padding:0 20px;display:flex}.header-left{align-items:center;gap:10px;display:flex}.admin-main{padding:16px}.user-text{color:#606266;margin-right:10px;font-size:13px}.page-title-wrap{margin-bottom:12px}.page-title-wrap h2{margin:0;font-size:20px}.page-title-wrap p{color:#909399;margin:4px 0 0;font-size:13px}.stat-label{color:#909399;margin-bottom:8px}.stat-value{color:#303133;font-size:32px;font-weight:700}.el-pagination-wrap{justify-content:flex-end;margin-top:12px;display:flex}.section-card,.section-table{margin-top:12px}.login-page{place-items:center;min-height:100vh;padding:24px;display:grid;position:relative;overflow:hidden}.login-shell{z-index:2;grid-template-columns:minmax(520px,1fr) minmax(420px,460px);align-items:stretch;gap:28px;width:min(1220px,100%);display:grid;position:relative}.login-intro{color:#fff;background:linear-gradient(145deg,#0b2a4d 0%,#113b66 55%,#0d5ea8 100%);border-radius:16px;gap:14px;padding:30px;animation:.5s ease-out loginFadeIn;display:grid;box-shadow:0 22px 40px #0f172a4d}.intro-top{align-items:center;gap:12px;display:flex}.brand-badge{background:#ffffff2e;border-radius:12px;place-items:center;width:48px;height:48px;font-weight:800;display:grid}.login-intro h1{margin:0;font-size:30px;line-height:1.25}.version-text{color:#bfdbfe;margin:2px 0 0;font-size:12px}.intro-subtitle{color:#dbeafe;margin:0;line-height:1.7}.intro-footer{color:#e2e8f0;background:#ffffff1f;border-radius:8px;margin-top:auto;padding:10px 12px;font-size:13px}.el-login .login-card{border:1px solid #e5e7eb;border-radius:16px;flex-direction:column;justify-content:center;width:100%;animation:.55s ease-out loginSlideIn;display:flex;box-shadow:0 14px 26px #0f172a24}.el-login .login-card .el-card__body{padding:24px 24px 18px}.login-card-header{justify-content:space-between;align-items:baseline;display:flex}.login-card-header span{color:#909399;font-size:12px}.hint{color:#909399;margin:10px 0;font-size:12px}.login-options{justify-content:space-between;align-items:center;gap:10px;margin:-2px 0 10px;display:flex}.last-login-text{color:#9ca3af;font-size:12px}.login-submit-btn{letter-spacing:.5px;width:100%;height:40px;font-size:14px}.login-footer{color:#9ca3af;text-align:center;border-top:1px dashed #d1d5db;margin-top:14px;padding-top:10px;font-size:12px}.login-theme-dark .login-intro{background:linear-gradient(145deg,#0b1020 0%,#1d2942 60%,#374151 100%)}.login-theme-dark .el-login .login-card{color:#e5e7eb;background:#111827;border-color:#374151}.login-theme-dark .hint,.login-theme-dark .last-login-text{color:#9ca3af}.login-theme-dark .login-footer{color:#9ca3af;border-top-color:#4b5563}.login-theme-light .login-intro{background:linear-gradient(145deg,#0b2a4d 0%,#113b66 55%,#0d5ea8 100%)}.login-bg-blur{filter:blur(60px);opacity:.35;z-index:1;border-radius:50%;position:absolute}.blur-1{background:#60a5fa;width:280px;height:280px;top:-40px;left:-80px}.blur-2{background:#818cf8;width:320px;height:320px;bottom:-120px;right:-100px}.login-grid-mask{z-index:0;background-image:linear-gradient(#94a3b81a 1px,#0000 1px),linear-gradient(90deg,#94a3b81a 1px,#0000 1px);background-size:28px 28px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle,#000 38%,#0000 78%);mask-image:radial-gradient(circle,#000 38%,#0000 78%)}@media (width<=900px){.admin-aside{z-index:1000;height:100vh;position:fixed;top:0;left:0}.admin-main{margin-left:72px;transition:margin-left .28s cubic-bezier(.22,1,.36,1)}.user-text{display:none}.login-shell{grid-template-columns:1fr;gap:14px;width:min(540px,92vw)}.login-intro{padding:20px}.login-intro h1{font-size:24px}.login-options{flex-direction:column;align-items:flex-start}.login-bg-blur{display:none}}@keyframes loginFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes loginSlideIn{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}
