:root{--primary: #4f8ef7;--primary-light: #eef4ff;--success: #52c41a;--warning: #faad14;--danger: #ff6b6b;--text: #2c3e50;--text-secondary: #8795a1;--border: #eef0f5;--bg: #f7f8fc;--bg-card: #ffffff;--transition: .25s cubic-bezier(.4,0,.2,1);--transition-slow: .4s cubic-bezier(.4,0,.2,1);--sider-bg: #fafbfd;--sider-text: #4a5568;--sider-text-active: #4f8ef7;--sider-hover-bg: #eef4ff;--sider-active-bg: #ebf3ff;--sider-width: 220px;--sider-collapsed-width: 72px;--shadow-sm: 0 1px 3px rgba(79,142,247,.08);--shadow-md: 0 4px 12px rgba(0,0,0,.04);--shadow-lg: 0 8px 24px rgba(0,0,0,.06);--shadow-xl: 0 16px 48px rgba(0,0,0,.08)}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased;background:var(--bg);color:var(--text)}#root{min-height:100vh}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:#d5dae0;border-radius:3px}::-webkit-scrollbar-track{background:transparent}.ant-layout-sider{background:var(--sider-bg)!important;box-shadow:1px 0 0 var(--border),2px 0 8px #00000008!important}.ant-layout-sider .ant-layout-sider-children{overflow-y:auto;scrollbar-width:thin;scrollbar-color:transparent transparent}.ant-layout-sider .ant-layout-sider-children:hover{scrollbar-color:#d5dae0 transparent}.ant-layout-sider .ant-layout-sider-children::-webkit-scrollbar{width:4px}.ant-layout-sider .ant-layout-sider-children::-webkit-scrollbar-thumb{background:transparent;border-radius:2px}.ant-layout-sider .ant-layout-sider-children:hover::-webkit-scrollbar-thumb{background:#d5dae0}.sider-brand{height:64px;display:flex;align-items:center;padding:0 20px;border-bottom:1px solid var(--border);overflow:hidden;white-space:nowrap;gap:10px;background:#fff;transition:padding var(--transition)}.sider-brand-icon{font-size:26px;color:var(--primary);flex-shrink:0}.sider-brand-text{font-size:15px;font-weight:600;color:var(--text);letter-spacing:.2px;transition:opacity .2s;overflow:hidden}.sider-brand-text.collapsed{opacity:0;width:0}.ant-layout-sider .ant-menu{background:transparent!important;border-inline-end:none!important;padding:6px 0!important}.ant-layout-sider .ant-menu-item{position:relative!important;margin:1px 8px!important;padding:0 14px!important;height:36px!important;line-height:36px!important;border-radius:10px!important;color:var(--sider-text)!important;font-weight:450!important;font-size:14px!important;transition:all var(--transition)!important}.ant-layout-sider .ant-menu-item:before,.ant-layout-sider .ant-menu-item:after{display:none!important}.ant-layout-sider .ant-menu-item .ant-menu-item-icon,.ant-layout-sider .ant-menu-item .anticon{margin-inline-end:10px!important}.ant-layout-sider .ant-menu-item:hover{background:transparent!important;color:var(--primary)!important}.ant-layout-sider .ant-menu-item-selected{background:transparent!important;color:var(--sider-text-active)!important;font-weight:600!important;box-shadow:inset 3px 0 0 var(--sider-text-active)!important;border-radius:0 8px 8px 0!important}.ant-layout-sider.ant-layout-sider-collapsed .sider-brand{padding:0;justify-content:center}.ant-layout-sider.ant-layout-sider-collapsed .ant-menu-item{margin:3px 8px!important;height:42px!important;line-height:42px!important;border-radius:12px!important}.ant-layout-sider.ant-layout-sider-collapsed .ant-menu-item .ant-menu-item-icon{margin-inline-end:0!important;font-size:18px!important}.ant-layout-sider.ant-layout-sider-collapsed .ant-menu-item:hover{background:transparent!important;color:var(--primary)!important}.ant-layout-sider.ant-layout-sider-collapsed .ant-menu-item-selected{background:transparent!important;color:var(--sider-text-active)!important;box-shadow:none!important}.app-header{background:#fff!important;padding:0 24px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;border-bottom:1px solid var(--border)!important;box-shadow:none!important;height:56px!important;line-height:56px!important}.app-header-left{display:flex;align-items:center;gap:12px}.app-header-right{display:flex;align-items:center;gap:16px}.collapse-btn{width:36px;height:36px;border-radius:8px!important;display:flex!important;align-items:center!important;justify-content:center!important;transition:all var(--transition)!important;color:var(--text-secondary)!important}.collapse-btn:hover{background:var(--primary-light)!important;color:var(--primary)!important}.app-content{margin:20px!important;padding:28px!important;background:#fff!important;border-radius:16px!important;border:1px solid var(--border)!important;min-height:calc(100vh - 96px)!important;animation:fadeSlideIn .3s ease-out}.app-content .ant-row>.ant-col>.ant-card{height:100%}.app-content .ant-row{align-items:stretch!important}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#eef5ff,#f0f7f4 40%,#fdf6f0)}.auth-card{width:400px;max-width:92vw;border-radius:12px!important;border:1px solid var(--border)!important;box-shadow:var(--shadow-xl)!important;background:#fff!important}.auth-card .ant-card-body{padding:40px 36px!important}.auth-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:24px;color:#fff;margin:0 auto 16px;background:var(--primary)}.auth-submit-btn{height:44px!important;border-radius:8px!important;font-size:15px!important;font-weight:500!important}.auth-card .ant-input,.auth-card .ant-input-password .ant-input{height:42px!important;border-radius:8px!important}.install-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#eef5ff,#f0f7f4 40%,#fdf6f0);position:relative;overflow:hidden}.install-card{width:540px;max-width:92vw;border-radius:20px!important;border:1px solid var(--border)!important;box-shadow:var(--shadow-xl)!important;position:relative;z-index:1;overflow:hidden;background:#fffffff0!important}.install-card .ant-card-body{padding:40px 36px!important}.install-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#a0c4ff,#b7eb8f)}.stat-card{border-radius:16px!important;border:1px solid var(--border)!important;overflow:hidden;transition:all var(--transition)!important;background:#fff!important}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)!important}.stat-card .ant-statistic-title{color:var(--text-secondary)!important;font-size:13px!important;font-weight:500!important}.stat-card .ant-statistic-content{color:var(--text)!important}.stat-card .ant-statistic-content-value{font-size:28px!important;font-weight:700!important}.stat-blue{border-left:3px solid #4f8ef7!important}.stat-green{border-left:3px solid #73d13d!important}.stat-gold{border-left:3px solid #ffa940!important}.stat-pink{border-left:3px solid #ff85c0!important}.ant-card{border-radius:12px!important;border:1px solid var(--border)!important;box-shadow:none!important}.ant-card:hover{box-shadow:var(--shadow-md)!important}.ant-table{border-radius:10px!important;overflow:hidden}.ant-table-thead>tr>th{background:#fafbfd!important;font-weight:600!important;color:var(--text-secondary)!important;font-size:12px!important;border-bottom:2px solid var(--border)!important}.ant-table-tbody>tr:hover>td{background:#fafbfd!important}.ant-btn{border-radius:8px!important;box-shadow:none!important}.ant-btn-primary:not(.ant-btn-background-ghost){background:var(--primary)!important;border-color:var(--primary)!important}.ant-btn-primary:not(.ant-btn-background-ghost):hover{background:#3b7ef7!important}.ant-modal .ant-modal-content{border-radius:16px!important;border:1px solid var(--border)!important}.ant-dropdown .ant-dropdown-menu{border-radius:10px!important;box-shadow:var(--shadow-lg)!important}.ant-message .ant-message-notice-content{border-radius:10px!important;box-shadow:var(--shadow-md)!important}.ant-tag{border-radius:6px!important;border:none!important}.ant-switch-checked{background:var(--primary)!important}.ant-select-dropdown,.ant-picker-dropdown{border-radius:10px!important;box-shadow:var(--shadow-lg)!important}
