Problem
The dark mode toggle does not persist across page navigations or browser sessions. The selected theme resets to light mode on every page load.
Proposed Solution
Create frontend/cntr/ThemeToggle/ThemeToggle.tsx. Uses next-themes (already installed) useTheme() hook. Renders a button toggling between Sun and Moon icons from lucide-react. Guards against hydration mismatch by rendering nothing until mounted is true. All implementation must live inside frontend/cntr/.
Acceptance Criteria
Problem
The dark mode toggle does not persist across page navigations or browser sessions. The selected theme resets to light mode on every page load.
Proposed Solution
Create
frontend/cntr/ThemeToggle/ThemeToggle.tsx. Usesnext-themes(already installed)useTheme()hook. Renders a button toggling between Sun and Moon icons fromlucide-react. Guards against hydration mismatch by rendering nothing untilmountedistrue. All implementation must live insidefrontend/cntr/.Acceptance Criteria
frontend/cntr/ThemeToggle/ThemeToggle.tsxnext-themesuseThemehook — no manuallocalStoragereadsSunicon in dark mode,Moonicon in light modenull(or a placeholder) untilmountedistrueto prevent hydration mismatchfrontend/cntr/ThemeToggle/ThemeToggle.test.tsx