.app { display: flex; flex-direction: column; min-height: 100vh; } /* Header */ .header { display: flex; align-items: center; justify-content: space-between; padding: 12px 20px; background: var(--bg-secondary); border-bottom: 1px solid var(--border-color); } .header-brand { display: flex; align-items: center; gap: 7px; color: var(--white); cursor: pointer; } .header-brand svg { color: var(--white); } .header-brand h1 { font-size: 18px; font-weight: 600; } .header-status { display: flex; align-items: center; } .status-badge { display: inline-flex; align-items: center; gap: 6px; padding: 4px 12px; border-radius: 20px; font-size: 12px; font-weight: 500; } .status-badge.connected { background: rgba(63, 185, 80, 0.15); color: var(--accent-green); } .status-badge.disconnected { background: rgba(139, 148, 158, 0.15); color: var(--text-secondary); } .status-dot { width: 8px; height: 8px; border-radius: 50%; background: currentColor; } .status-badge.connected .status-dot { animation: pulse 2s infinite; } @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } } /* Main layout */ .main-layout { display: flex; flex: 1; overflow: hidden; } .content { flex: 1; display: flex; flex-direction: column; overflow: hidden; } .content-panels { display: flex; flex: 1; overflow: hidden; } /* Responsive */ @media (max-width: 1200px) { .content-panels { flex-direction: column; } }