{# Settings drawer — five tabs: Imports / Profile / Density / ETF pairs / About. Each tab is a separate template included below; switching is purely client-side via Alpine. Cross-tab interactions (e.g. profile changes that recompute pages) post to /preferences and rely on HX-Refresh. Open events come from outside this scope via: window.dispatchEvent(new CustomEvent('open-settings-drawer', { detail: { tab: 'density' } })) `tab` is optional; defaults to 'imports' if not set or unknown. #}