diff --git a/frontend/src/app/globals.css b/frontend/src/app/globals.css
index 387a703..32625bb 100644
--- a/frontend/src/app/globals.css
+++ b/frontend/src/app/globals.css
@@ -4,12 +4,20 @@
:root {
color-scheme: light;
+ --color-night: #f1f5f9;
+ --color-tide: #e2e8f0;
+ --color-mint: #0f766e; /* Darker mint alias (Teal 700) for readability on light bg */
+ --color-glow: #0d9488;
--font-sans: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
--font-mono: "Cascadia Code", Consolas, "SFMono-Regular", monospace;
}
:root.dark {
color-scheme: dark;
+ --color-night: #0b0c10;
+ --color-tide: #0f1a2b;
+ --color-mint: #5ef2c0;
+ --color-glow: #b8ffe2;
}
body {
@@ -20,6 +28,7 @@ body {
#eef3ff 100%
);
color: #0f172a;
+ background-attachment: fixed;
}
.dark body {
@@ -30,6 +39,7 @@ body {
#050608 100%
);
color: #f3f5f7;
+ background-attachment: fixed;
}
/* Light-mode overrides for components that currently use dark-only utility classes. */
diff --git a/frontend/src/components/LocaleSwitcher.tsx b/frontend/src/components/LocaleSwitcher.tsx
index 94bf374..e1adc13 100644
--- a/frontend/src/components/LocaleSwitcher.tsx
+++ b/frontend/src/components/LocaleSwitcher.tsx
@@ -49,7 +49,7 @@ export default function LocaleSwitcher({
className="bg-transparent text-sm text-white outline-none"
>
{locales.map((option) => (
-
))}
diff --git a/frontend/src/components/Navbar.tsx b/frontend/src/components/Navbar.tsx
index 29d493f..6f2f5ad 100644
--- a/frontend/src/components/Navbar.tsx
+++ b/frontend/src/components/Navbar.tsx
@@ -8,6 +8,7 @@ import { useHydrateMerchantStore } from "@/lib/merchant-store";
import MerchantProfileCard from "@/components/MerchantProfileCard";
import ApiHealthBadge from "@/components/ApiHealthBadge";
import LocaleSwitcher from "@/components/LocaleSwitcher";
+import ThemeToggle from "@/components/ThemeToggle";
type AppNavLink = {
href: string;
@@ -110,6 +111,7 @@ export default function Navbar() {