3daf38c9fd
MainLayout was rendered inside each page component, causing the entire layout (sidebar, mobile nav, drawer) to be destroyed and recreated on every route change. This made navigations feel like full page refreshes. Restructured to use a React Router layout route with <Outlet />, so MainLayout persists across navigations and only the page content swaps. Pages that need custom layout options (showFAB, rightSidebar, etc.) use the new useLayoutOptions hook to configure the persistent layout.