/* App shell: login gate + tabbed dashboard */ (() => { const { useEffect, useState } = React; function App() { const [authChecked, setAuthChecked] = useState(false); const [authed, setAuthed] = useState(false); const [user, setUser] = useState(null); // App state const [tab, setTab] = useState('new'); // new | results | history const [activeKey, setActiveKey] = useState(null); useEffect(() => { api.me().then(({ authenticated, user }) => { setAuthed(authenticated); setUser(user); }).catch(() => setAuthed(false)).finally(() => setAuthChecked(true)); }, []); async function logout() { await api.logout(); setAuthed(false); setUser(null); setTab('new'); setActiveKey(null); } if (!authChecked) return