.layout { display: flex; height: 100vh; background-color: var(--background-color); } .sidebar { width: 240px; background-color: var(--surface-color); border-right: 1px solid var(--border-color); display: flex; flex-direction: column; padding: var(--spacing-md); } .logo { display: flex; align-items: center; gap: var(--spacing-sm); padding: var(--spacing-md); margin-bottom: var(--spacing-lg); } .logoIcon { font-size: 24px; } .logoText { font-size: 18px; font-weight: 700; color: var(--text-primary); } .navList { list-style: none; flex: 1; } .navItem { display: flex; align-items: center; gap: var(--spacing-sm); padding: var(--spacing-md); border-radius: var(--radius-md); color: var(--text-secondary); text-decoration: none; transition: all 0.2s ease; margin-bottom: var(--spacing-xs); } .navItem:hover { background-color: var(--background-color); color: var(--text-primary); text-decoration: none; } .navItemActive { background-color: var(--primary-color); color: white; } .navItemActive:hover { background-color: var(--primary-light); color: white; } .navIcon { font-size: 18px; } .navLabel { font-size: 14px; font-weight: 500; } .footer { padding: var(--spacing-md); border-top: 1px solid var(--border-color); } .connectionStatus { display: flex; align-items: center; gap: var(--spacing-sm); font-size: 12px; color: var(--text-secondary); } .statusDot { width: 8px; height: 8px; border-radius: 50%; background-color: var(--text-disabled); } .statusDot[data-status="connected"] { background-color: var(--success-color); } .statusDot[data-status="connecting"] { background-color: var(--warning-color); } .statusDot[data-status="disconnected"] { background-color: var(--error-color); } .main { flex: 1; overflow-y: auto; padding: var(--spacing-xl); }