* { margin: 0; padding: 0; box-sizing: border-box; }

/* ── Layout constants (never change with theme) ── */
:root {
    --sidebar-width: 260px;
    --sidebar-collapsed: 60px;
    --header-height: 60px;
    --accent-color: #54bb24;
}

body {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    background: var(--bg-primary);
    color: var(--text-primary);
    height: 100vh;
    overflow: hidden;
    line-height: 1.5;
}

.app-container { display: flex; height: 100vh; width: 100vw; }

::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--border-color); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--text-tertiary); }

@keyframes fadeIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

/* smooth theme transitions */
body, .sidebar, .main-content, .header, .modal, .modal-sidebar,
.input-wrapper, .input-container, .stub-page, .welcome-screen,
.model-card, .suggestion-card, .chat-item, .nav-item {
    transition: background-color .25s ease, border-color .25s ease, color .2s ease;
}
