/* global React */ const { useState, useEffect, createContext, useContext } = React; // ─────────── App state / context ─────────── const DEFAULTS = /*EDITMODE-BEGIN*/{ "theme": "light", "accentHue": 155, "lang": "EN", "intakeStyle": "hybrid", "density": "comfortable" }/*EDITMODE-END*/; const AppCtx = createContext(null); const useApp = () => useContext(AppCtx); const ACCENT_HUES = [ { name: 'Forest', h: 155 }, { name: 'Teal', h: 195 }, { name: 'Indigo', h: 255 }, { name: 'Aubergine', h: 320 }, { name: 'Rust', h: 30 }, ]; function useTweakState() { const [state, setState] = useState(() => { try { const saved = localStorage.getItem('govease_tweaks'); if (saved) return { ...DEFAULTS, ...JSON.parse(saved) }; } catch {} return DEFAULTS; }); useEffect(() => { document.documentElement.dataset.theme = state.theme; document.documentElement.style.setProperty('--accent', `oklch(52% 0.11 ${state.accentHue})`); document.documentElement.style.setProperty('--accent-hover', `oklch(46% 0.11 ${state.accentHue})`); document.documentElement.style.setProperty('--accent-soft', `oklch(93% 0.04 ${state.accentHue})`); document.documentElement.style.setProperty('--accent-ink', `oklch(30% 0.08 ${state.accentHue})`); if (state.theme === 'dark') { document.documentElement.style.setProperty('--accent', `oklch(70% 0.13 ${state.accentHue})`); document.documentElement.style.setProperty('--accent-hover', `oklch(76% 0.14 ${state.accentHue})`); document.documentElement.style.setProperty('--accent-soft', `oklch(24% 0.05 ${state.accentHue})`); document.documentElement.style.setProperty('--accent-ink', `oklch(86% 0.10 ${state.accentHue})`); } try { localStorage.setItem('govease_tweaks', JSON.stringify(state)); } catch {} }, [state]); const set = (patch) => { setState(s => { const next = { ...s, ...patch }; try { window.parent.postMessage({type: '__edit_mode_set_keys', edits: patch}, '*'); } catch {} return next; }); }; return [state, set]; } // ─────────── Top Bar ─────────── const TopBar = ({ persona, setPersona, onHome, tweaksOpen, setTweaksOpen }) => { const { tweaks, setTweaks } = useApp(); return (