/* 侧边栏 */ #sidebar { width: var(--sidebar-width); height: 100vh; background: var(--bg-secondary); border-right: 1px solid var(--border-primary); display: flex; flex-direction: column; flex-shrink: 0; transition: width var(--transition-normal); overflow: hidden; } .sidebar-header { padding: var(--space-lg) var(--space-lg); display: flex; align-items: center; gap: var(--space-md); border-bottom: 1px solid var(--border-secondary); height: var(--header-height); } .sidebar-logo { width: 28px; height: 28px; border-radius: var(--radius-sm); background: linear-gradient(135deg, var(--accent), #a855f7); display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: var(--font-size-sm); color: #fff; flex-shrink: 0; } .sidebar-title { font-size: var(--font-size-lg); font-weight: 600; color: var(--text-primary); white-space: nowrap; } .sidebar-nav { flex: 1; padding: var(--space-sm) var(--space-sm); overflow-y: auto; } .nav-section { margin-bottom: var(--space-md); } .nav-section-title { font-size: var(--font-size-xs); color: var(--text-tertiary); text-transform: uppercase; letter-spacing: 0.5px; padding: var(--space-sm) var(--space-sm); margin-bottom: var(--space-xs); } .nav-item { display: flex; align-items: center; gap: var(--space-md); padding: var(--space-sm) var(--space-md); border-radius: var(--radius-md); color: var(--text-secondary); font-size: var(--font-size-sm); cursor: pointer; transition: all var(--transition-fast); user-select: none; } .nav-item:hover { background: var(--bg-glass-hover); color: var(--text-primary); } .nav-item.active { background: var(--accent-muted); color: var(--accent-hover); } .nav-item svg { width: 18px; height: 18px; flex-shrink: 0; opacity: 0.7; } .nav-item.active svg { opacity: 1; } /* 主内容区 */ #content { flex: 1; height: 100vh; overflow-y: auto; background: var(--bg-primary); } .page { padding: var(--space-xl) var(--space-2xl); max-width: 1200px; animation: fadeIn 200ms ease; } .page-header { margin-bottom: var(--space-xl); } .page-title { font-size: var(--font-size-2xl); font-weight: 700; color: var(--text-primary); margin-bottom: var(--space-xs); } .page-desc { font-size: var(--font-size-sm); color: var(--text-tertiary); } @keyframes fadeIn { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } }