/* ThemeContext + ThemeProvider + useTheme → window */
(function () {
  const { useState, useEffect, createContext, useContext } = React;
  const { THEME_KEY } = window;

  // Reset único: fuerza claro como default en esta versión
  if (!localStorage.getItem("driver-control-theme-reset-v2")) {
    localStorage.removeItem(THEME_KEY);
    localStorage.setItem("driver-control-theme-reset-v2", "1");
  }

  const ThemeContext = createContext(null);

  function ThemeProvider({ children }) {
    const [dark, setDark] = useState(() => localStorage.getItem(THEME_KEY) === "dark");
    useEffect(() => {
      localStorage.setItem(THEME_KEY, dark ? "dark" : "light");
      document.body.classList.toggle("dark-body", dark);
    }, [dark]);
    return <ThemeContext.Provider value={{ dark, setDark, toggle: () => setDark(x => !x) }}>{children}</ThemeContext.Provider>;
  }
  const useTheme = () => useContext(ThemeContext);

  Object.assign(window, { ThemeContext, ThemeProvider, useTheme });
})();
