/* Shared controls for LLM and Voice. Page-specific cards remain in their own styles. */
.chip { appearance: none; font-family: inherit; }
:is(.chip, .sort-btn, .view-btn, .preset-btn, .mobile-filter-btn, .sidebar-close):focus-visible {
    outline: 2px solid var(--tts-accent, var(--primary, #ff453a));
    outline-offset: 3px;
}
.sidebar-close { width: 44px; height: 44px; align-items: center; justify-content: center; }
.hero-stat-label { white-space: normal; }
@media (max-width: 768px) {
    .sidebar { z-index: 1102; width: min(340px, 100%); height: 100dvh; max-height: 100dvh; padding-top: 64px; overscroll-behavior: contain; }
    .sidebar-close { display: flex; position: absolute; right: 12px; top: 12px; }
    .sidebar-overlay { z-index: 1101; }
    .sidebar.open { visibility: visible; }
    .sidebar:not(.open) { visibility: hidden; }
    body.sidebar-open { overflow: hidden; }
    body.sidebar-open .main-layout { z-index: auto; }
    .chip, .sort-btn, .view-btn, .preset-btn, .mobile-filter-btn { min-height: 44px; }
    .search-input, #search-input { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
    .sidebar, .chip { transition: none; }
}
@media (max-width: 768px) {
    .topbar .mobile-filter-btn { position: static; inset: auto; transform: none; width: 100%; flex-basis: 100%; }
}
