*,:before,:after{box-sizing:border-box}html,body,#root{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100%;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes slideInUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes gradientShift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes countUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.page-enter{animation:.45s cubic-bezier(.25,.46,.45,.94) both fadeInUp}.page-enter-fast{animation:.3s both fadeIn}.card-enter{animation:.4s cubic-bezier(.25,.46,.45,.94) both scaleIn}.slide-in-left{animation:.4s cubic-bezier(.25,.46,.45,.94) both fadeInLeft}.slide-in-right{animation:.4s cubic-bezier(.25,.46,.45,.94) both fadeInRight}.stagger-enter>*{animation:.4s cubic-bezier(.25,.46,.45,.94) both fadeInUp}.stagger-enter>:first-child{animation-delay:0s}.stagger-enter>:nth-child(2){animation-delay:60ms}.stagger-enter>:nth-child(3){animation-delay:.12s}.stagger-enter>:nth-child(4){animation-delay:.18s}.stagger-enter>:nth-child(5){animation-delay:.24s}.stagger-enter>:nth-child(6){animation-delay:.3s}.stagger-enter>:nth-child(7){animation-delay:.36s}.stagger-enter>:nth-child(8){animation-delay:.42s}.auth-bg{background:#f7f8fa;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex;position:relative;overflow:hidden}.auth-bg:before{content:"";background:radial-gradient(circle,#1677ff0f 0%,#0000 70%);border-radius:50%;width:600px;height:600px;animation:10s ease-in-out infinite float;position:absolute;top:-40%;right:-20%}.auth-bg:after{content:"";background:radial-gradient(circle,#00000008 0%,#0000 70%);border-radius:50%;width:500px;height:500px;animation:12s ease-in-out infinite reverse float;position:absolute;bottom:-30%;left:-10%}.auth-card{z-index:1;animation:.6s cubic-bezier(.25,.46,.45,.94) both scaleIn;position:relative}.auth-card .ant-card{background:#fff;border:1px solid #eaedf0;border-radius:16px;box-shadow:0 8px 40px #0000000f,0 1px 3px #0000000a}.auth-logo{text-align:center;margin-bottom:32px;animation:.5s .2s both fadeInDown}.auth-logo h2{color:#1a1a1a;letter-spacing:2px;margin:0 0 6px;font-size:28px;font-weight:700}.auth-logo p{color:#999;margin:0;font-size:13px}.layout-sidebar{z-index:100;background:#1a1a1a;border-right:1px solid #ffffff0f;flex-direction:column;transition:width .28s cubic-bezier(.2,0,0,1);display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden}.sidebar-logo{cursor:pointer;white-space:nowrap;border-bottom:1px solid #ffffff0f;flex-shrink:0;justify-content:center;align-items:center;height:64px;padding:0 16px;transition:all .28s;display:flex;overflow:hidden}.sidebar-logo:hover{background:#ffffff0a}.sidebar-logo h1{color:#fff;letter-spacing:2px;margin:0;font-size:18px;font-weight:700;transition:opacity .2s}.sidebar-logo .logo-icon{color:#fff;background:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;margin-right:12px;font-size:16px;font-weight:700;transition:margin .28s;display:flex}.sidebar-menu{flex:1;padding:8px 0;overflow:hidden auto}.sidebar-menu::-webkit-scrollbar{width:0}.layout-header{-webkit-backdrop-filter:blur(12px);z-index:90;background:#fffffff2;border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;height:64px;padding:0 24px;transition:padding-left .28s cubic-bezier(.2,0,0,1);display:flex;position:sticky;top:0}.layout-content{background:#f5f7fa;min-height:calc(100vh - 64px);padding:24px;transition:margin-left .28s cubic-bezier(.2,0,0,1)}.header-right{align-items:center;gap:16px;display:flex}.header-user{cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:4px 12px;transition:background .2s;display:flex}.header-user:hover{background:#0000000a}.stat-card{cursor:default;border-radius:12px;transition:transform .3s cubic-bezier(.25,.46,.45,.94),box-shadow .3s;overflow:hidden}.stat-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px #00000014}.stat-card .stat-value{font-size:32px;font-weight:700;line-height:1.2;animation:.6s cubic-bezier(.25,.46,.45,.94) both countUp}.stat-card .stat-label{color:#00000073;margin-top:4px;font-size:14px}.stat-card .stat-icon{border-radius:12px;justify-content:center;align-items:center;width:48px;height:48px;font-size:22px;display:flex}.content-card{border-radius:12px;transition:box-shadow .3s;box-shadow:0 1px 4px #0000000a}.content-card:hover{box-shadow:0 4px 16px #00000014}.page-header{justify-content:space-between;align-items:center;margin-bottom:20px;animation:.35s both fadeInDown;display:flex}.page-header h3{margin:0;font-size:22px;font-weight:600}.page-toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;animation:.3s .1s both fadeIn;display:flex}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#00000040}.ant-table-wrapper{animation:.4s both fadeIn}.empty-state{text-align:center;padding:64px 0;animation:.4s both fadeIn}.collapse-btn{cursor:pointer;z-index:101;color:#666;background:#fff;border:1px solid #e8e8e8;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:12px;transition:all .2s;display:flex;position:absolute;top:50%;right:-13px;transform:translateY(-50%);box-shadow:0 2px 8px #00000014}.collapse-btn:hover{color:#fff;background:#1677ff;border-color:#1677ff}.loading-screen{background:#f7f8fa;flex-direction:column;justify-content:center;align-items:center;gap:24px;min-height:100vh;display:flex}.loading-screen p{color:#999;font-size:14px}
