.app { height: 100%; min-height: 0; display: flex; flex-direction: column; overflow: hidden; } .app-header { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.5rem; border-bottom: 1px solid #2a2f3a; background: #151922; } .app-header h1 { margin: 0; font-size: 1.1rem; font-weight: 600; } .app-header nav { display: flex; align-items: center; gap: 0.75rem; } .app-header nav a { padding: 0.45rem 0.9rem; border-radius: 8px; color: #a8b0bd; } .app-header nav a.active { background: #2b3445; color: #fff; } .app-user { display: inline-flex; align-items: center; gap: 0.5rem; margin-left: 0.25rem; padding-left: 0.5rem; border-left: 1px solid #2a2f3a; color: #8b939f; font-size: 0.8rem; white-space: nowrap; } .app-logout { padding: 0.35rem 0.6rem; border: 1px solid #3a4254; border-radius: 6px; background: transparent; color: #c5ccd6; cursor: pointer; font-size: 0.75rem; } .app-logout:hover { background: #2b3445; } .app-main { position: relative; flex: 1; min-height: 0; overflow-x: hidden; overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; } @media (max-width: 768px) { .app-header { padding: 0.55rem 0.75rem; gap: 0.5rem; flex-shrink: 0; } .app-header h1 { display: none; } .app-header nav { flex: 1; overflow-x: auto; flex-wrap: nowrap; gap: 0.35rem; padding-bottom: 0.1rem; -webkit-overflow-scrolling: touch; scrollbar-width: none; } .app-header nav::-webkit-scrollbar { display: none; } .app-header nav a { padding: 0.4rem 0.65rem; font-size: 0.85rem; white-space: nowrap; flex-shrink: 0; } } .app-main-chat { overflow: hidden; } .route-panel { position: absolute; inset: 0; display: flex; flex-direction: column; min-height: 0; overflow: hidden; visibility: hidden; pointer-events: none; } .route-panel-active { visibility: visible; pointer-events: auto; } .app-main:not(.app-main-chat) > .route-panel-active { overflow-x: hidden; overflow-y: auto; -webkit-overflow-scrolling: touch; }