diff --git a/src/app.css b/src/app.css
index 2078a4c..ebb81d3 100644
--- a/src/app.css
+++ b/src/app.css
@@ -19,6 +19,33 @@
--teal: #007d79;
--gray-tag: #e0e0e0;
--focus: #0f62fe;
+ /* The top bar stays dark in both themes; a dedicated token keeps it
+ independent of --text, which flips between light and dark modes. */
+ --header-bg: #161616;
+ color-scheme: light;
+}
+
+:root[data-theme='dark'] {
+ --bg: #161616;
+ --layer: #262626;
+ --layer-hover: #333333;
+ --border: #393939;
+ --border-strong: #6f6f6f;
+ --text: #f4f4f4;
+ --text-secondary: #c6c6c6;
+ --text-helper: #a8a8a8;
+ --interactive: #4589ff;
+ --interactive-hover: #6ea6ff;
+ --danger: #fa4d56;
+ --success: #42be65;
+ --warning-bg: #302915;
+ --warning: #f1c21b;
+ --purple: #a56eff;
+ --teal: #3ddbd9;
+ --gray-tag: #393939;
+ --focus: #4589ff;
+ --header-bg: #0b0b0b;
+ color-scheme: dark;
}
* {
diff --git a/src/app.html b/src/app.html
index 97f47a1..8b60952 100644
--- a/src/app.html
+++ b/src/app.html
@@ -4,6 +4,18 @@
+
%sveltekit.head%
diff --git a/src/lib/components/ThemeToggle.svelte b/src/lib/components/ThemeToggle.svelte
new file mode 100644
index 0000000..06b4578
--- /dev/null
+++ b/src/lib/components/ThemeToggle.svelte
@@ -0,0 +1,73 @@
+
+
+
+
+
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte
index 6f47296..f6819f9 100644
--- a/src/routes/+page.svelte
+++ b/src/routes/+page.svelte
@@ -1,5 +1,6 @@
Project SDE | Meeting Toolkit
@@ -7,6 +8,7 @@
@@ -34,7 +36,7 @@
position: sticky;
top: 0;
z-index: 30;
- background: var(--text);
+ background: var(--header-bg);
color: #fff;
padding: 0 24px;
display: flex;
diff --git a/src/routes/scope-lock/+page.svelte b/src/routes/scope-lock/+page.svelte
index 40ad7fb..09e7ba5 100644
--- a/src/routes/scope-lock/+page.svelte
+++ b/src/routes/scope-lock/+page.svelte
@@ -4,6 +4,7 @@
import { toast } from '$lib/toast.svelte';
import Toast from '$lib/components/Toast.svelte';
import SyncBadge from '$lib/components/SyncBadge.svelte';
+ import ThemeToggle from '$lib/components/ThemeToggle.svelte';
import {
DECISION_OWNERS,
DECISION_STATUSES,
@@ -223,6 +224,7 @@
+