@keyframes gradientText{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes pulseGlow{0%,to{box-shadow:0 0 12px #00d4ff26}50%{box-shadow:0 0 24px #00d4ff40}}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#051014,#0a1f28,#061a1e);background-attachment:fixed}#root{min-height:100vh}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#051014cc}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#00d4ff,#0fa);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#0891b2,#10b981)}*{scrollbar-width:thin;scrollbar-color:rgba(0,212,255,.4) transparent}.ant-card{transition:box-shadow .3s ease,border-color .3s ease;border-radius:16px}.ant-card:hover{box-shadow:0 8px 24px #00d4ff1a}.ant-table-tbody>tr.ant-table-row:hover>td,.ant-table-tbody>tr.ant-table-row:hover>th{background:#00d4ff0d!important}.ant-menu .ant-menu-item{border-radius:10px;margin:4px 0;transition:all .25s ease}.ant-menu .ant-menu-item-selected{background:linear-gradient(135deg,#00d4ff26,#00ffaa1a)!important}.ant-btn-primary{background:linear-gradient(145deg,#00d4ff,#0891b2)!important;border:none!important;box-shadow:0 4px 12px #00b4c840;transition:all .25s ease}.ant-btn-primary:hover{background:linear-gradient(145deg,#0891b2,#06b6d4)!important;box-shadow:0 6px 18px #00b4c859}.ant-statistic-title{color:#7eb8c4cc!important}.ant-tag{border-radius:8px}.ant-collapse{border-radius:16px}.ant-tabs-tab{border-radius:12px 12px 0 0}.gradient-title{background:linear-gradient(90deg,#00d4ff,#0fa,#06b6d4,#10b981);background-size:300% 300%;animation:gradientText 8s ease infinite;-webkit-background-clip:text;background-clip:text;color:transparent}.glass-card{background:#0a191ed9!important;border:1px solid rgba(0,200,200,.2)!important;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.login-page .ant-tabs-tab{color:#9fd8e2!important;font-weight:500}.login-page .ant-tabs-tab:hover{color:#d0f4f8!important}.login-page .ant-tabs-tab-active .ant-tabs-tab-btn{color:#00d4ff!important;font-weight:600}.login-page .ant-tabs-ink-bar{background:linear-gradient(90deg,#00d4ff,#0fa);height:3px}.login-page .ant-tabs-top>.ant-tabs-nav:before{border-bottom-color:#00d4ff33}.login-page .ant-input::placeholder,.login-page .ant-input-password input::placeholder{color:#6ba8b0!important;opacity:1}.login-page .ant-input,.login-page .ant-input-password{caret-color:#00d4ff}.login-page .ant-input-password .anticon-eye{color:#7fc8d4!important}.login-page .ant-input-affix-wrapper-focused,.login-page .ant-input-affix-wrapper:focus{border-color:#00d4ff!important;box-shadow:0 0 0 2px #00d4ff33}.login-page .ant-form-item-explain-error{color:#ff6b6b!important;font-weight:500;margin-top:4px}
