diff --git a/src/app/globals.css b/src/app/globals.css
index 3c1540e0..ae6d78e5 100644
--- a/src/app/globals.css
+++ b/src/app/globals.css
@@ -4,12 +4,12 @@
/* ── Light mode tokens ── */
:root {
- --bg: #F7F4F0;
- --surface: #ffffff;
- --border: #E8E3DC;
- --text: #181412;
- --muted: #5C5550;
- --accent: #2563eb;
+ --bg: #ffffff;
+ --surface: #f8fafc;
+ --border: #e2e8f0;
+ --text: #0f172a;
+ --muted: #64748b;
+ --accent: #3b82f6;
--accent-hover: #1d4ed8;
--film-600: #e63946;
--film-400: #ff6b6b;
@@ -98,4 +98,4 @@ body {
outline: 2px solid var(--accent);
outline-offset: 2px;
border-radius: 4px;
-}
\ No newline at end of file
+}
diff --git a/src/app/layout.tsx b/src/app/layout.tsx
index f17960b2..593f68c8 100644
--- a/src/app/layout.tsx
+++ b/src/app/layout.tsx
@@ -49,34 +49,23 @@ export default function RootLayout({
return (
-
-
+
+
@@ -106,4 +95,4 @@ export default function RootLayout({
);
-}
\ No newline at end of file
+}
diff --git a/src/components/ExportOverlay.tsx b/src/components/ExportOverlay.tsx
index c8d8eb52..11ed4e81 100644
--- a/src/components/ExportOverlay.tsx
+++ b/src/components/ExportOverlay.tsx
@@ -68,7 +68,7 @@ export default function ExportOverlay({ status, progress, onCancel }: Props) {
role="dialog"
aria-modal="true"
tabIndex={-1}
- className="fixed inset-0 z-50 flex flex-col items-center justify-center bg-white/95 dark:bg-black/70 backdrop-blur-sm"
+ className="fixed inset-0 z-50 flex flex-col items-center justify-center bg-[var(--bg)] backdrop-blur-sm"
>
);
-}
\ No newline at end of file
+}
diff --git a/src/components/OnboardingTour.tsx b/src/components/OnboardingTour.tsx
index 39ab106f..8b507be6 100644
--- a/src/components/OnboardingTour.tsx
+++ b/src/components/OnboardingTour.tsx
@@ -164,15 +164,15 @@ function Tooltip({ step, stepIndex, totalSteps, rect, onNext, onSkip, tooltipRef
aria-modal="true"
aria-label={`Onboarding step ${stepIndex + 1} of ${totalSteps}: ${step.title}`}
className="fixed z-[9999] w-80 rounded-xl shadow-2xl border
- bg-white dark:bg-zinc-900
- border-zinc-200 dark:border-zinc-700
- text-zinc-900 dark:text-zinc-100
+ bg-[var(--surface)]
+ border-[var(--border)]
+ text-[var(--text)]
transition-all duration-200"
style={{ ...style }}
tabIndex={-1}
>
{/* Progress bar */}
-
+
{step.title}
-
+
{step.description}
@@ -337,4 +337,4 @@ useEffect(() => {
>,
document.body
);
-}
\ No newline at end of file
+}
diff --git a/src/components/ThemeProvider.tsx b/src/components/ThemeProvider.tsx
index 7c65cef3..e988a902 100644
--- a/src/components/ThemeProvider.tsx
+++ b/src/components/ThemeProvider.tsx
@@ -9,7 +9,7 @@ import {
type ReactNode,
} from "react";
-type Theme = "light" | "dark" | "high-contrast";
+type Theme = "light" | "dark";
interface ThemeContextValue {
theme: Theme;
@@ -19,40 +19,18 @@ interface ThemeContextValue {
const ThemeContext = createContext(undefined);
-export function ThemeProvider({ children }: { children: ReactNode }) {
- const [theme, setThemeState] = useState("light");
-
- // On mount: read localStorage or fall back to system preference.
- // The inline