DetailPanel now uses createPortal to render itself into
#cameleer-detail-panel-root, a div that AppShell places as a
direct sibling of .main in the top-level flex row. This means
pages can render <DetailPanel> anywhere in their JSX and it
automatically appears at the correct layout position.
AppShell's detail prop is deprecated and ignored — the portal
handles positioning automatically.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add autoRefresh/setAutoRefresh to GlobalFilterContext, persisted in
localStorage. TopBar shows a LIVE/PAUSED toggle button with pulsing
dot indicator. Consumers can use useGlobalFilters().autoRefresh to
conditionally enable/disable polling intervals.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>