/* ======================================== Sidebar Component — padhLe (Bauhaus) ======================================== */ /* Main Sidebar */ .sidebar { position: fixed; top: 0; left: 0; width: var(--sidebar-width); height: 100vh; background-color: var(--color-surface); border-right: var(--border-thick); display: flex; flex-direction: column; padding: var(--spacing-lg); overflow-y: auto; z-index: 10; } .sidebar::-webkit-scrollbar { width: 4px; } .sidebar::-webkit-scrollbar-thumb { background-color: var(--color-outline); border-radius: 2px; } /* Brand */ .sidebar__brand { padding-bottom: var(--spacing-md); margin-bottom: var(--spacing-md); border-bottom: var(--border-medium); } .sidebar__title { font-family: var(--font-heading); font-size: 2rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.02em; color: var(--color-primary); } /* New Chat Button */ .sidebar__new-chat { display: flex; align-items: center; justify-content: center; gap: var(--spacing-xs); width: 100%; padding: var(--spacing-sm); border: var(--border-medium); border-radius: var(--border-radius); background-color: var(--color-surface); color: var(--color-text); font-family: var(--font-heading); font-size: 0.85rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; cursor: pointer; box-shadow: var(--shadow-brutal-sm); transition: all var(--transition-fast); margin-bottom: var(--spacing-lg); } .sidebar__new-chat:hover { transform: translateY(-2px); box-shadow: var(--shadow-brutal); } .sidebar__new-chat:active { transform: translateY(2px); box-shadow: none; } /* Section */ .sidebar__section { margin-bottom: var(--spacing-md); } .sidebar__section--history { flex: 1; min-height: 0; overflow-y: auto; } .sidebar__section-title { font-family: var(--font-heading); font-size: 0.7rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.1em; color: var(--color-text-variant); margin-bottom: var(--spacing-sm); padding-left: var(--spacing-sm); } /* Subject List */ .sidebar__list { list-style: none; display: flex; flex-direction: column; gap: 4px; } .sidebar__link { display: flex; align-items: center; gap: var(--spacing-sm); width: 100%; padding: var(--spacing-sm); border: var(--border-medium); border-radius: var(--border-radius); background: transparent; cursor: pointer; font-family: var(--font-body); font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--color-text-variant); text-align: left; box-shadow: var(--shadow-brutal-sm); transition: all var(--transition-fast); } .sidebar__link:hover { background-color: var(--color-surface-variant); color: var(--color-text); transform: translateY(-1px); } .sidebar__link--active { background-color: var(--color-primary); color: var(--color-on-primary); border-color: var(--color-outline); } .sidebar__link--active:hover { color: var(--color-on-primary); transform: translateY(-2px); box-shadow: var(--shadow-brutal); } .sidebar__icon { display: flex; align-items: center; justify-content: center; width: 20px; font-size: 0.95rem; } /* Chat List */ .sidebar__chat-list { list-style: none; display: flex; flex-direction: column; gap: 4px; } .sidebar__chat-link { display: flex; flex-direction: column; width: 100%; padding: var(--spacing-sm); padding-left: var(--spacing-sm); border: var(--border-medium); border-radius: var(--border-radius); background: transparent; cursor: pointer; font-family: var(--font-body); text-align: left; box-shadow: var(--shadow-brutal-sm); transition: all var(--transition-fast); } .sidebar__chat-link:hover { background-color: var(--color-surface-variant); transform: translateY(-1px); } .sidebar__chat-link--active { background-color: var(--color-surface-container); box-shadow: var(--shadow-brutal); } .sidebar__chat-preview { font-family: var(--font-body); font-size: 0.8rem; font-weight: 700; color: var(--color-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .sidebar__chat-time { font-family: var(--font-body); font-size: 0.65rem; font-weight: 700; text-transform: uppercase; color: var(--color-text-variant); margin-top: 4px; } /* Footer */ .sidebar__footer { display: flex; flex-direction: column; gap: 4px; padding-top: var(--spacing-sm); border-top: var(--border-medium); margin-top: auto; } .sidebar__footer-btn { display: flex; align-items: center; gap: var(--spacing-sm); width: 100%; padding: var(--spacing-sm); border: var(--border-medium); border-radius: var(--border-radius); background: transparent; cursor: pointer; font-family: var(--font-body); font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--color-text-variant); text-align: left; box-shadow: var(--shadow-brutal-sm); transition: all var(--transition-fast); } .sidebar__footer-btn:hover { background-color: var(--color-surface-variant); color: var(--color-text); transform: translateY(-1px); } .sidebar__footer-btn:active { transform: translateY(2px); box-shadow: none; }