// Caririaçu Guincho — App Root const { useState: useStateApp, useEffect: useEffectApp } = React; const App = () => { const [session, setSession] = useStateApp(null); const [authReady, setAuthReady] = useStateApp(false); const [page, setPage] = useStateApp('dashboard'); const [sidebarOpen, setSidebarOpen] = useStateApp(false); const [isMobile, setIsMobile] = useStateApp(window.innerWidth < 768); const [selectedGuincho, setSelectedGuincho] = useStateApp(null); useEffectApp(() => { window.abrirGuincho = (id) => { setSelectedGuincho(id); setPage('guincho-detalhe'); }; return () => { delete window.abrirGuincho; }; }, []); useEffectApp(() => { const handler = () => setIsMobile(window.innerWidth < 768); window.addEventListener('resize', handler); return () => window.removeEventListener('resize', handler); }, []); useEffectApp(() => { auth.session().then(s => { setSession(s); setAuthReady(true); }); const { data: sub } = auth.onChange((_event, s) => setSession(s)); return () => sub?.subscription?.unsubscribe?.(); }, []); if (!authReady) { return (