function App() {
  const [page, setPage] = React.useState('home');
  const [content, setContent] = React.useState(window.TB_CONTENT);
  const [error, setError] = React.useState(null);
  React.useEffect(() => {
    if (!content) window.TB_READY.then(setContent, (e) => setError(e.message));
  }, []);
  const go = (id) => { setPage(id); window.scrollTo({ top: 0, behavior: 'instant' }); };
  if (error) return (
    <div style={{ fontFamily: 'var(--tb-font-mono)', padding: '48px 32px', fontSize: '14px' }}>
      [ CMS НЕДОСТУПНА ] {error} — запустите Strapi: <b>cd cms && npm run develop</b>
    </div>
  );
  if (!content) return null;
  const screens = {
    home: window.Home, about: window.About, events: window.Events, event: window.EventDetail,
    speakers: window.Speakers, knowledge: window.Knowledge, blog: window.Blog,
    formats: window.Formats, partner: window.Partner, join: window.Join,
  };
  const Screen = screens[page] || window.Home;
  return (
    <React.Fragment>
      <window.Header page={page} go={go} />
      <main key={page} style={{ animation: 'tb-fade 0.35s ease' }}>
        <Screen go={go} />
      </main>
      <window.Footer go={go} />
    </React.Fragment>
  );
}
ReactDOM.createRoot(document.getElementById('root')).render(<App />);
