:root{--bg-primary: #FFFFFF;--bg-secondary: #FAFBFC;--bg-card: #FFFFFF;--accent-blue: #2B7CFF;--accent-cyan: #00E5B2;--accent-danger: #FF5A5F;--accent-warning: #FFB347;--text-primary: #1A1A1A;--text-secondary: #666666;--text-tertiary: #999999;--border-subtle: #EEEEEE;--border-default: #DDDDDD;--glow-blue: 0 0 16px rgba(43,124,255,.15);--glow-cyan: 0 0 16px rgba(0,229,178,.15)}body.dark-mode{--bg-primary: #0A0C10;--bg-secondary: #14171C;--bg-card: #1A1E26;--text-primary: #FFFFFF;--text-secondary: #B0B8C4;--text-tertiary: #8E94A0;--border-subtle: rgba(255,255,255,.04);--border-default: rgba(255,255,255,.06)}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,PingFang SC,Microsoft YaHei,sans-serif;background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#00000014;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#00000029}body.dark-mode ::-webkit-scrollbar-thumb{background:#ffffff1f}body.dark-mode ::-webkit-scrollbar-thumb:hover{background:#fff3}.page-title{font-size:20px;font-weight:600;color:var(--text-primary)}.section-title{font-size:16px;font-weight:600;color:var(--text-primary)}.dark-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;transition:all .3s ease}.dark-card:hover{border-color:#2b7cff33;box-shadow:var(--glow-blue);transform:translateY(-2px)}body.dark-mode .dark-card:hover{border-color:#2b7cff33}.stat-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;padding:20px 24px;transition:all .3s ease;cursor:default}.stat-card:hover{border-color:#2b7cff4d;box-shadow:0 4px 24px #2b7cff14,0 0 0 1px #2b7cff1a;transform:translateY(-2px)}body.dark-mode .stat-card:hover{box-shadow:0 4px 24px #2b7cff14,0 0 0 1px #2b7cff1a}.stat-card .stat-label{font-size:12px;color:var(--text-tertiary);margin-bottom:8px;display:flex;align-items:center;gap:6px}.stat-card .stat-value{font-size:28px;font-weight:600;color:var(--text-primary);line-height:1.2;margin-bottom:8px}.stat-card .stat-trend{font-size:12px;display:flex;align-items:center;gap:4px}.stat-card .stat-trend.up{color:var(--accent-cyan)}.stat-card .stat-trend.down{color:var(--accent-danger)}.stat-card .sparkline{margin-top:12px;height:36px}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.status-dot.online{background:var(--accent-cyan);box-shadow:0 0 6px #00e5b266}.status-dot.warning{background:var(--accent-warning);box-shadow:0 0 6px #ffb34766}.status-dot.error{background:var(--accent-danger);box-shadow:0 0 6px #ff5a5f66}.ant-table{background:transparent!important}.ant-table-thead>tr>th{background:#00000005!important;border-bottom:1px solid var(--border-subtle)!important;font-weight:500;font-size:13px;color:var(--text-secondary);padding:12px 16px!important}.ant-table-tbody>tr>td{border-bottom:1px solid var(--border-subtle)!important;padding:12px 16px!important;color:var(--text-secondary)}.ant-table-tbody>tr:hover>td{background:#0000000a!important}body.dark-mode .ant-table-thead>tr>th{background:#ffffff05!important}body.dark-mode .ant-table-tbody>tr:hover>td{background:#ffffff0a!important}.ant-pagination-item,.ant-pagination-prev,.ant-pagination-next,.ant-pagination-jump-prev,.ant-pagination-jump-next{background:transparent!important;border-color:var(--border-subtle)!important}.ant-pagination-item-active{border-color:var(--accent-blue)!important;background:#2b7cff1f!important}.ant-pagination-item-active a{color:var(--accent-blue)!important}.sidebar-nav{width:220px;background:var(--bg-secondary);height:100vh;display:flex;flex-direction:column;flex-shrink:0;border-right:1px solid var(--border-subtle)}.sidebar-logo{height:64px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:0 20px;border-bottom:1px solid var(--border-subtle)}.sidebar-logo .brand{font-size:14px;font-weight:700;color:var(--text-primary);letter-spacing:1px}.sidebar-logo .sub-brand{font-size:11px;color:var(--text-tertiary);margin-top:2px}.sidebar-menu{flex:1;padding:8px 0;overflow-y:auto}.sidebar-item{display:flex;align-items:center;gap:12px;padding:0 20px;height:48px;color:var(--text-secondary);font-size:14px;cursor:pointer;transition:all .2s ease;position:relative;border:none;background:none;width:100%;text-align:left}.sidebar-item:hover{color:var(--text-primary);background:#0000000a}.sidebar-item.active{color:var(--text-primary);background:#2b7cff1f}body.dark-mode .sidebar-item:hover{background:#ffffff0a}.sidebar-item.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:20px;background:var(--accent-blue);border-radius:0 2px 2px 0}.sidebar-item .badge{margin-left:auto;width:18px;height:18px;border-radius:50%;background:var(--accent-danger);color:#fff;font-size:10px;display:flex;align-items:center;justify-content:center;font-weight:600}.sidebar-divider{height:1px;background:var(--border-subtle);margin:8px 16px}.top-header{height:56px;background:var(--bg-card);border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:flex-end;padding:0 24px;flex-shrink:0}.rank-badge{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex-shrink:0}.rank-badge.top{background:#2b7cff26;color:var(--accent-blue)}.rank-badge.normal{background:#ffffff0f;color:var(--text-tertiary)}.sidebar-group{overflow:hidden}.sidebar-group .group-title{justify-content:flex-start}.sidebar-group .group-title .arrow{margin-left:auto;font-size:10px;color:var(--text-tertiary);transition:transform .2s ease}.sidebar-submenu{height:0;overflow:hidden;transition:height .25s ease;background:#00000005}body.dark-mode .sidebar-submenu{background:#ffffff05}.sidebar-submenu.open{height:auto}.sidebar-subitem{display:flex;align-items:center;gap:12px;padding:0 20px 0 44px;height:40px;color:var(--text-tertiary);font-size:13px;cursor:pointer;transition:all .2s ease;position:relative;border:none;background:none;width:100%;text-align:left}.sidebar-subitem:hover{color:var(--text-secondary);background:#0000000a}body.dark-mode .sidebar-subitem:hover{background:#ffffff0a}.sidebar-subitem.active{color:var(--accent-blue);background:#2b7cff14}.sidebar-subitem.active:before{content:"";position:absolute;left:28px;top:50%;transform:translateY(-50%);width:4px;height:4px;background:var(--accent-blue);border-radius:50%}@media (max-width: 1024px){.sidebar-nav{width:64px}.sidebar-logo{padding:0;align-items:center}.sidebar-logo .brand,.sidebar-logo .sub-brand{display:none}.sidebar-item{justify-content:center;padding:0}.sidebar-item span:last-child{display:none}.sidebar-item .badge{position:absolute;top:8px;right:8px;width:8px;height:8px}.sidebar-submenu{display:none}}.avatar-group{margin-bottom:24px}.avatar-group-title{display:flex;align-items:center;gap:8px;margin-bottom:12px}.avatar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px}.avatar-card{background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:12px;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.avatar-card:hover{transform:translateY(-2px);border-color:#2b7cff73;box-shadow:0 6px 20px #0000002e}.avatar-card.avatar-hidden{opacity:.7}.avatar-thumb{position:relative;width:100%;aspect-ratio:1 / 1;background:#ffffff08;display:flex;align-items:center;justify-content:center;overflow:hidden}.avatar-thumb img{width:100%;height:100%;object-fit:cover}.avatar-hidden-mask{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000073;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font-size:13px}.avatar-meta{padding:10px 12px 4px}.avatar-name{font-size:13px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.avatar-sub{margin-top:4px;display:flex;align-items:center;gap:6px}.avatar-actions{display:flex;align-items:center;justify-content:flex-end;gap:2px;padding:6px 8px 10px}
