From 727d8027796785555f1c8308a37272a6ec0de34e Mon Sep 17 00:00:00 2001
From: Sean Hatfield <seanhatfield5@gmail.com>
Date: Mon, 18 Nov 2024 15:40:18 -0800
Subject: [PATCH] Light/dark mode UI overhaul (#2629)

* Refactor workspace sidebar component styles (#2380)

rely on css for conditional styles

* New sidebar colors (#2381)

new sidebar colors

* Main container color update (#2382)

* Dark mode setup themes (#2411)

* setup generic tailwind theme + ability to add new themes

* add theme context

* use correct colors from design for sidebar + fix padding

* Settings sidebar UI updates (#2416)

settings sidebar ui updates

* fix sidebar resizing/truncate issue on hover

* Dark mode chat window (#2443)

* Support XLSX files (#2403)

* support xlsx files

* lint

* create seperate docs for each xlsx sheet

* lint

* use node-xlsx pkg for parsing xslx files

* lint

* update error handling

---------

Co-authored-by: timothycarambat <rambat1010@gmail.com>

* wip chat window

* ux+ux improvements and update new colors

* chat window dark mode

* remove comment

---------

Co-authored-by: timothycarambat <rambat1010@gmail.com>

* Dark mode welcome page (#2444)

* dark mode welcome page styles + refactor

* remove AI_BACKGROUND_COLOR and USER_BACKGROUND_COLOR constants

* Dark mode UI for admin and tools pages + mobile view improvements (#2454)

* dark mode ui for admin and tools pages + mobile view improvements

* lint

* ai provider pages + options darkmode ui

* placeholder generic class

* appearance settings styles

* ai providers mobile margin

* dark mode styles for agent skills + experimental features

* mobile styles on security settings

* fine tune flow ui dark mode

* workspace settings page

* lint

* Dark mode onboarding (#2461)

dark mode onboarding

* update all modals + normalize styles (#2471)

* lint

* Dark mode privacy & experimental pages (#2479)

* document watch + privacy pages ui + mobile modal darkmode

* lint

* Dark mode login screens (#2483)

* multi-user auth screen ui update

* dark mode login screen + recovery key modals

* remove unneeded import

* Workspace preset commands modals dark mode (#2484)

update workspace preset dark mode modal

* Document pinning modal ui update (#2490)

document pinning modal ui update

* Experimental agreement modal dark mode (#2491)

experimental agreement modal dark mode

* Serp options dark mode (#2492)

serp options dark mode

* field fixes

* attempt light mode wip

* setting sidebar

* Toasts and threads

* main page content and privacy page

* force rewrite for light

* add border for light mode rightside content

* more fixes

* wip

* wip

* wip light mode implementation

* wip dark light mode file picker

* document picker light mode ui

* slight ui tweaks

* light mode fine tuning flow

* light mode tweaks + qa fixes

* fix md rendering of light mode + tooltip fixes

* lint

* qa bug fixes

* Add developer hook for theme
move provider to outmost layer

* qa light mode bug fixes

* Linting and hotfixes for UI

* Light mode to dev

* accept invite light mode ui fix

* Fix onboarding inputs in dark mode

* fix close icons
last minute items

* patch z-index on tooltips

* patch light mode citations

---------

Co-authored-by: timothycarambat <rambat1010@gmail.com>
---
 .github/workflows/dev-build.yaml              |   2 +-
 frontend/src/App.jsx                          | 271 ++++++-------
 frontend/src/LogoContext.jsx                  |  16 +-
 frontend/src/ThemeContext.jsx                 |  16 +
 frontend/src/components/ChatBubble/index.jsx  |   6 +-
 .../components/ContextualSaveBar/index.jsx    |   8 +-
 frontend/src/components/DefaultChat/index.jsx | 358 +++++++-----------
 .../components/EditingChatBubble/index.jsx    |  10 +-
 .../AzureAiOptions/index.jsx                  |   6 +-
 .../CohereOptions/index.jsx                   |   4 +-
 .../EmbeddingSelection/EmbedderItem/index.jsx |   4 +-
 .../GenericOpenAiOptions/index.jsx            |   8 +-
 .../LMStudioOptions/index.jsx                 |   8 +-
 .../LiteLLMOptions/index.jsx                  |  10 +-
 .../LocalAiOptions/index.jsx                  |  10 +-
 .../OllamaOptions/index.jsx                   |   8 +-
 .../OpenAiOptions/index.jsx                   |   4 +-
 .../VoyageAiOptions/index.jsx                 |   4 +-
 frontend/src/components/Footer/index.jsx      |  24 +-
 .../LLMSelection/AnthropicAiOptions/index.jsx |   4 +-
 .../LLMSelection/ApiPieOptions/index.jsx      |   6 +-
 .../AwsBedrockLLMOptions/index.jsx            |  34 +-
 .../LLMSelection/AzureAiOptions/index.jsx     |   8 +-
 .../LLMSelection/CohereAiOptions/index.jsx    |   4 +-
 .../LLMSelection/DeepSeekOptions/index.jsx    |   6 +-
 .../LLMSelection/FireworksAiOptions/index.jsx |   6 +-
 .../LLMSelection/GeminiLLMOptions/index.jsx   |   6 +-
 .../GenericOpenAiOptions/index.jsx            |  10 +-
 .../LLMSelection/GroqAiOptions/index.jsx      |   6 +-
 .../LLMSelection/HuggingFaceOptions/index.jsx |   6 +-
 .../LLMSelection/KoboldCPPOptions/index.jsx   |   8 +-
 .../components/LLMSelection/LLMItem/index.jsx |   4 +-
 .../LLMSelection/LMStudioOptions/index.jsx    |   8 +-
 .../LLMSelection/LiteLLMOptions/index.jsx     |  10 +-
 .../LLMSelection/LocalAiOptions/index.jsx     |  10 +-
 .../LLMSelection/MistralOptions/index.jsx     |   6 +-
 .../LLMSelection/NativeLLMOptions/index.jsx   |   6 +-
 .../LLMSelection/NovitaLLMOptions/index.jsx   |  51 +--
 .../LLMSelection/OllamaLLMOptions/index.jsx   |  12 +-
 .../LLMSelection/OpenAiOptions/index.jsx      |   6 +-
 .../LLMSelection/OpenRouterOptions/index.jsx  |   8 +-
 .../LLMSelection/PerplexityOptions/index.jsx  |   6 +-
 .../TextGenWebUIOptions/index.jsx             |   6 +-
 .../LLMSelection/TogetherAiOptions/index.jsx  |   6 +-
 .../LLMSelection/XAiLLMOptions/index.jsx      |  14 +-
 .../src/components/ModalWrapper/index.jsx     |   6 +-
 .../Modals/DisplayRecoveryCodeModal/index.jsx |  97 ++---
 .../DataConnectors/ConnectorOption/index.jsx  |   4 +-
 .../Connectors/Confluence/index.jsx           |  26 +-
 .../Connectors/Github/index.jsx               |  30 +-
 .../Connectors/Gitlab/index.jsx               |  34 +-
 .../Connectors/WebsiteDepth/index.jsx         |  14 +-
 .../Connectors/Youtube/index.jsx              |   6 +-
 .../ManageWorkspace/DataConnectors/index.jsx  |   2 +-
 .../Documents/Directory/ContextMenu/index.jsx |   6 +-
 .../Documents/Directory/FileRow/index.jsx     |  10 +-
 .../Documents/Directory/FolderRow/index.jsx   |  14 +-
 .../Directory/NewFolderModal/index.jsx        |  61 +--
 .../Documents/Directory/index.jsx             |  32 +-
 .../UploadFile/FileUploadProgress/index.jsx   |   2 +-
 .../Documents/UploadFile/index.jsx            |  14 +-
 .../WorkspaceFileRow/index.jsx                |  18 +-
 .../Documents/WorkspaceDirectory/index.jsx    | 114 +++---
 .../Modals/ManageWorkspace/index.jsx          |  72 ++--
 .../src/components/Modals/NewWorkspace.jsx    |  44 ++-
 .../Modals/Password/MultiUserAuth.jsx         |  26 +-
 .../Modals/Password/SingleUserAuth.jsx        |  15 +-
 .../src/components/Modals/Password/index.jsx  |   6 +-
 frontend/src/components/Preloader.jsx         |   4 +-
 .../src/components/SettingsButton/index.jsx   |  17 +-
 .../SettingsSidebar/MenuOption/index.jsx      |  13 +-
 .../src/components/SettingsSidebar/index.jsx  |  27 +-
 .../ThreadContainer/ThreadItem/index.jsx      |  47 ++-
 .../ThreadContainer/index.jsx                 |  30 +-
 .../Sidebar/ActiveWorkspaces/index.jsx        | 175 ++++-----
 frontend/src/components/Sidebar/index.jsx     |  17 +-
 .../TextToSpeech/ElevenLabsOptions/index.jsx  |   6 +-
 .../OpenAiGenericOptions/index.jsx            |   6 +-
 .../TextToSpeech/OpenAiOptions/index.jsx      |   4 +-
 .../TextToSpeech/PiperTTSOptions/index.jsx    |   8 +-
 .../NativeTranscriptionOptions/index.jsx      |   2 +-
 .../OpenAiOptions/index.jsx                   |   4 +-
 frontend/src/components/UserIcon/index.jsx    |   2 +-
 .../UserMenu/AccountModal/index.jsx           | 244 +++++++-----
 .../components/UserMenu/UserButton/index.jsx  |  12 +-
 .../AstraDBOptions/index.jsx                  |   4 +-
 .../ChromaDBOptions/index.jsx                 |   6 +-
 .../MilvusDBOptions/index.jsx                 |   6 +-
 .../PineconeDBOptions/index.jsx               |   4 +-
 .../QDrantDBOptions/index.jsx                 |   4 +-
 .../VectorDBSelection/VectorDBItem/index.jsx  |   4 +-
 .../WeaviateDBOptions/index.jsx               |   4 +-
 .../ZillizCloudOptions/index.jsx              |   4 +-
 .../ChatHistory/Citation/index.jsx            |  77 ++--
 .../Actions/ActionMenu/index.jsx              |   8 +-
 .../Actions/EditMessage/index.jsx             |  13 +-
 .../Actions/TTSButton/asyncTts.jsx            |   2 +-
 .../Actions/TTSButton/native.jsx              |   2 +-
 .../Actions/TTSButton/piperTTS.jsx            |   2 +-
 .../HistoricalMessage/Actions/index.jsx       |  20 +-
 .../ChatHistory/HistoricalMessage/index.jsx   |   9 +-
 .../ChatHistory/PromptReply/index.jsx         |   9 +-
 .../ChatContainer/ChatHistory/index.jsx       |   6 +-
 .../ChatContainer/ChatTooltips/index.jsx      |   4 +-
 .../ChatContainer/DnDWrapper/index.jsx        |   2 +-
 .../PromptInput/AgentMenu/index.jsx           |  17 +-
 .../PromptInput/AttachItem/index.jsx          |  17 +-
 .../PromptInput/Attachments/index.jsx         |  54 ++-
 .../SlashPresets/AddPresetModal.jsx           | 160 ++++----
 .../SlashPresets/EditPresetModal.jsx          | 168 ++++----
 .../SlashCommands/SlashPresets/index.jsx      |  18 +-
 .../SlashCommands/endAgentSession.jsx         |   2 +-
 .../SlashCommands/icons/SlashCommandIcon.jsx  |  28 ++
 .../icons/slash-commands-icon.svg             |   4 -
 .../PromptInput/SlashCommands/index.jsx       |  13 +-
 .../PromptInput/SlashCommands/reset.jsx       |   2 +-
 .../PromptInput/SpeechToText/index.jsx        |   5 +-
 .../PromptInput/TextSizeMenu/index.jsx        |  25 +-
 .../ChatContainer/PromptInput/index.jsx       |  14 +-
 .../WorkspaceChat/ChatContainer/index.jsx     |   2 +-
 .../WorkspaceChat/LoadingChat/index.jsx       |   8 +-
 .../src/components/WorkspaceChat/index.jsx    |   4 +-
 frontend/src/hooks/useTheme.js                |  53 +++
 frontend/src/index.css                        | 145 ++++++-
 .../media/illustrations/login-logo-light.svg  |  45 +++
 .../src/media/illustrations/login-logo.svg    |  44 ++-
 ...hing-llm-old.png => anything-llm-dark.png} | Bin
 frontend/src/models/system.js                 |   8 +-
 .../src/pages/Admin/Agents/Badges/default.jsx |   4 +-
 .../Admin/Agents/DefaultSkillPanel/index.jsx  |   9 +-
 .../Admin/Agents/GenericSkillPanel/index.jsx  |   9 +-
 .../Imported/ImportedSkillConfig/index.jsx    |   6 +-
 .../Admin/Agents/Imported/SkillList/index.jsx |  18 +-
 .../NewConnectionModal.jsx                    | 263 ++++++-------
 .../Agents/SQLConnectorSelection/index.jsx    |  23 +-
 .../SearchProviderItem/index.jsx              |   4 +-
 .../SearchProviderOptions/index.jsx           |  20 +-
 .../Admin/Agents/WebSearchSelection/index.jsx |  25 +-
 frontend/src/pages/Admin/Agents/index.jsx     |  36 +-
 .../manage/DocumentSyncQueueRow/index.jsx     |   2 +-
 .../Features/LiveSync/manage/index.jsx        |  22 +-
 .../Features/LiveSync/toggle.jsx              |  12 +-
 .../Admin/ExperimentalFeatures/index.jsx      |  52 +--
 .../Admin/Invitations/InviteRow/index.jsx     |   4 +-
 .../Invitations/NewInviteModal/index.jsx      | 159 ++++----
 .../src/pages/Admin/Invitations/index.jsx     |  29 +-
 .../src/pages/Admin/Logging/LogRow/index.jsx  |  26 +-
 frontend/src/pages/Admin/Logging/index.jsx    |  44 ++-
 .../pages/Admin/Users/NewUserModal/index.jsx  |  65 ++--
 .../Users/UserRow/EditUserModal/index.jsx     |  65 ++--
 .../src/pages/Admin/Users/UserRow/index.jsx   |   6 +-
 frontend/src/pages/Admin/Users/index.jsx      |  37 +-
 .../Workspaces/NewWorkspaceModal/index.jsx    |  61 +--
 .../Admin/Workspaces/WorkspaceRow/index.jsx   |   2 +-
 frontend/src/pages/Admin/Workspaces/index.jsx |  29 +-
 .../FineTuning/Steps/Confirmation/index.jsx   |  64 ++--
 .../FineTuning/Steps/DataUpload/index.jsx     |  44 +--
 .../Steps/FulfillmentPolicy/index.jsx         |  56 +--
 .../FineTuning/Steps/Introduction/index.jsx   |  63 ++-
 .../FineTuning/Steps/OrderDetails/index.jsx   |  26 +-
 .../FineTuning/Steps/OrderPlaced/index.jsx    |  18 +-
 .../pages/FineTuning/Steps/Privacy/index.jsx  |  84 ++--
 .../Steps/TermsAndConditions/index.jsx        |  78 ++--
 frontend/src/pages/FineTuning/Steps/index.jsx |   2 +-
 frontend/src/pages/FineTuning/index.jsx       |  16 +-
 .../ApiKeys/ApiKeyRow/index.jsx               |   4 +-
 .../ApiKeys/NewApiKeyModal/index.jsx          |  81 ++--
 .../pages/GeneralSettings/ApiKeys/index.jsx   |  31 +-
 .../Appearance/CustomAppName/index.jsx        |   2 +-
 .../Appearance/CustomLogo/index.jsx           |  16 +-
 .../Appearance/CustomMessages/index.jsx       |   6 +-
 .../Appearance/CustomSiteSettings/index.jsx   |   6 +-
 .../FooterCustomization/NewIconForm/index.jsx |  14 +-
 .../Appearance/LanguagePreference/index.jsx   |   4 +-
 .../Appearance/SupportEmail/index.jsx         |   2 +-
 .../Appearance/ThemePreference/index.jsx      |  27 ++
 .../GeneralSettings/Appearance/index.jsx      |   9 +-
 .../GeneralSettings/AudioPreference/index.jsx |   6 +-
 .../GeneralSettings/AudioPreference/stt.jsx   |  12 +-
 .../GeneralSettings/AudioPreference/tts.jsx   |  12 +-
 .../BrowserExtensionApiKeyRow/index.jsx       |   6 +-
 .../NewBrowserExtensionApiKeyModal/index.jsx  |  84 ++--
 .../BrowserExtensionApiKey/index.jsx          | 125 +++---
 .../GeneralSettings/Chats/ChatRow/index.jsx   |  12 +-
 .../src/pages/GeneralSettings/Chats/index.jsx |  56 +--
 .../EmbedChats/ChatRow/index.jsx              |  34 +-
 .../GeneralSettings/EmbedChats/index.jsx      |  40 +-
 .../EmbedRow/CodeSnippetModal/index.jsx       |  39 +-
 .../EmbedRow/EditEmbedModal/index.jsx         |  63 +--
 .../EmbedConfigs/EmbedRow/index.jsx           |   2 +-
 .../EmbedConfigs/NewEmbedModal/index.jsx      | 113 +++---
 .../GeneralSettings/EmbedConfigs/index.jsx    |  29 +-
 .../EmbeddingPreference/index.jsx             |  20 +-
 .../EmbeddingTextSplitterPreference/index.jsx |  12 +-
 .../GeneralSettings/LLMPreference/index.jsx   |  18 +-
 .../GeneralSettings/PrivacyAndData/index.jsx  |  40 +-
 .../pages/GeneralSettings/Security/index.jsx  |  24 +-
 .../TranscriptionPreference/index.jsx         |  20 +-
 .../GeneralSettings/VectorDatabase/index.jsx  |  20 +-
 .../src/pages/Invite/NewUserModal/index.jsx   |  20 +-
 frontend/src/pages/Invite/index.jsx           |   6 +-
 frontend/src/pages/Main/index.jsx             |   2 +-
 .../Steps/CreateWorkspace/index.jsx           |   2 +-
 .../Steps/DataHandling/index.jsx              |  28 +-
 .../pages/OnboardingFlow/Steps/Home/index.jsx |  31 +-
 .../Steps/Home/l_group-light.png              | Bin 0 -> 47306 bytes
 .../OnboardingFlow/Steps/Home/l_group.png     | Bin 74247 -> 64373 bytes
 .../Steps/Home/r_group-light.png              | Bin 0 -> 49667 bytes
 .../OnboardingFlow/Steps/Home/r_group.png     | Bin 81768 -> 66835 bytes
 .../Steps/LLMPreference/index.jsx             |   6 +-
 .../OnboardingFlow/Steps/Survey/index.jsx     |  61 +--
 .../OnboardingFlow/Steps/UserSetup/index.jsx  |  24 +-
 .../src/pages/OnboardingFlow/Steps/index.jsx  |  26 +-
 frontend/src/pages/WorkspaceChat/index.jsx    |   2 +-
 .../AgentLLMSelection/AgentLLMItem/index.jsx  |  46 +--
 .../AgentConfig/AgentLLMSelection/index.jsx   |  12 +-
 .../AgentConfig/AgentModelSelection/index.jsx |   4 +-
 .../WorkspaceSettings/AgentConfig/index.jsx   |   8 +-
 .../ChatHistorySettings/index.jsx             |   2 +-
 .../ChatSettings/ChatModeSelection/index.jsx  |   2 +-
 .../ChatSettings/ChatPromptSettings/index.jsx |   2 +-
 .../ChatQueryRefusalResponse/index.jsx        |   4 +-
 .../ChatTemperatureSettings/index.jsx         |   2 +-
 .../ChatModelSelection/index.jsx              |   4 +-
 .../WorkspaceLLMItem/index.jsx                |  46 +--
 .../WorkspaceLLMSelection/index.jsx           |  14 +-
 .../DeleteWorkspace/index.jsx                 |   4 +-
 .../SuggestedChatMessages/index.jsx           |   6 +-
 .../GeneralAppearance/WorkspaceName/index.jsx |   2 +-
 .../GeneralAppearance/WorkspacePfp/index.jsx  |  12 +-
 .../Members/AddMemberModal/index.jsx          |  20 +-
 .../Members/WorkspaceMemberRow/index.jsx      |   2 +-
 .../pages/WorkspaceSettings/Members/index.jsx |   6 +-
 .../DocumentSimilarityThreshold/index.jsx     |   2 +-
 .../MaxContextSnippets/index.jsx              |   2 +-
 .../VectorDatabase/ResetDatabase/index.jsx    |   2 +-
 .../src/pages/WorkspaceSettings/index.jsx     |   6 +-
 frontend/src/utils/chat/markdown.js           |   8 +-
 frontend/src/utils/constants.js               |   2 -
 frontend/src/utils/toast.js                   |   5 +-
 frontend/tailwind.config.js                   |  70 +++-
 server/endpoints/system.js                    |  10 +-
 server/utils/files/logo.js                    |  25 +-
 243 files changed, 3512 insertions(+), 2829 deletions(-)
 create mode 100644 frontend/src/ThemeContext.jsx
 create mode 100644 frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/icons/SlashCommandIcon.jsx
 delete mode 100644 frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/icons/slash-commands-icon.svg
 create mode 100644 frontend/src/hooks/useTheme.js
 create mode 100644 frontend/src/media/illustrations/login-logo-light.svg
 rename frontend/src/media/logo/{anything-llm-old.png => anything-llm-dark.png} (100%)
 create mode 100644 frontend/src/pages/GeneralSettings/Appearance/ThemePreference/index.jsx
 create mode 100644 frontend/src/pages/OnboardingFlow/Steps/Home/l_group-light.png
 create mode 100644 frontend/src/pages/OnboardingFlow/Steps/Home/r_group-light.png

diff --git a/.github/workflows/dev-build.yaml b/.github/workflows/dev-build.yaml
index e7acd4e53..ce6f6f9d3 100644
--- a/.github/workflows/dev-build.yaml
+++ b/.github/workflows/dev-build.yaml
@@ -6,7 +6,7 @@ concurrency:
 
 on:
   push:
-    branches: ['2602-page-load-speed'] # put your current branch to create a build. Core team only.
+    branches: ['light-mode-1'] # put your current branch to create a build. Core team only.
     paths-ignore:
       - '**.md'
       - 'cloud-deployments/*'
diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx
index 6ce42fadb..e692cd303 100644
--- a/frontend/src/App.jsx
+++ b/frontend/src/App.jsx
@@ -16,6 +16,7 @@ import i18n from "./i18n";
 import { PfpProvider } from "./PfpContext";
 import { LogoProvider } from "./LogoContext";
 import { FullScreenLoader } from "./components/Preloader";
+import { ThemeProvider } from "./ThemeContext";
 
 const Main = lazy(() => import("@/pages/Main"));
 const InvitePage = lazy(() => import("@/pages/Invite"));
@@ -70,139 +71,149 @@ const FineTuningWalkthrough = lazy(() => import("@/pages/FineTuning"));
 
 export default function App() {
   return (
-    <Suspense fallback={<FullScreenLoader />}>
-      <ContextWrapper>
-        <LogoProvider>
-          <PfpProvider>
-            <I18nextProvider i18n={i18n}>
-              <Routes>
-                <Route path="/" element={<PrivateRoute Component={Main} />} />
-                <Route path="/login" element={<Login />} />
-                <Route path="/sso/simple" element={<SimpleSSOPassthrough />} />
+    <ThemeProvider>
+      <Suspense fallback={<FullScreenLoader />}>
+        <ContextWrapper>
+          <LogoProvider>
+            <PfpProvider>
+              <I18nextProvider i18n={i18n}>
+                <Routes>
+                  <Route path="/" element={<PrivateRoute Component={Main} />} />
+                  <Route path="/login" element={<Login />} />
+                  <Route
+                    path="/sso/simple"
+                    element={<SimpleSSOPassthrough />}
+                  />
 
-                <Route
-                  path="/workspace/:slug/settings/:tab"
-                  element={<ManagerRoute Component={WorkspaceSettings} />}
-                />
-                <Route
-                  path="/workspace/:slug"
-                  element={<PrivateRoute Component={WorkspaceChat} />}
-                />
-                <Route
-                  path="/workspace/:slug/t/:threadSlug"
-                  element={<PrivateRoute Component={WorkspaceChat} />}
-                />
-                <Route path="/accept-invite/:code" element={<InvitePage />} />
+                  <Route
+                    path="/workspace/:slug/settings/:tab"
+                    element={<ManagerRoute Component={WorkspaceSettings} />}
+                  />
+                  <Route
+                    path="/workspace/:slug"
+                    element={<PrivateRoute Component={WorkspaceChat} />}
+                  />
+                  <Route
+                    path="/workspace/:slug/t/:threadSlug"
+                    element={<PrivateRoute Component={WorkspaceChat} />}
+                  />
+                  <Route path="/accept-invite/:code" element={<InvitePage />} />
 
-                {/* Admin */}
-                <Route
-                  path="/settings/llm-preference"
-                  element={<AdminRoute Component={GeneralLLMPreference} />}
-                />
-                <Route
-                  path="/settings/transcription-preference"
-                  element={
-                    <AdminRoute Component={GeneralTranscriptionPreference} />
-                  }
-                />
-                <Route
-                  path="/settings/audio-preference"
-                  element={<AdminRoute Component={GeneralAudioPreference} />}
-                />
-                <Route
-                  path="/settings/embedding-preference"
-                  element={
-                    <AdminRoute Component={GeneralEmbeddingPreference} />
-                  }
-                />
-                <Route
-                  path="/settings/text-splitter-preference"
-                  element={
-                    <AdminRoute Component={EmbeddingTextSplitterPreference} />
-                  }
-                />
-                <Route
-                  path="/settings/vector-database"
-                  element={<AdminRoute Component={GeneralVectorDatabase} />}
-                />
-                <Route
-                  path="/settings/agents"
-                  element={<AdminRoute Component={AdminAgents} />}
-                />
-                <Route
-                  path="/settings/event-logs"
-                  element={<AdminRoute Component={AdminLogs} />}
-                />
-                <Route
-                  path="/settings/embed-config"
-                  element={<AdminRoute Component={EmbedConfigSetup} />}
-                />
-                <Route
-                  path="/settings/embed-chats"
-                  element={<AdminRoute Component={EmbedChats} />}
-                />
-                {/* Manager */}
-                <Route
-                  path="/settings/security"
-                  element={<ManagerRoute Component={GeneralSecurity} />}
-                />
-                <Route
-                  path="/settings/privacy"
-                  element={<AdminRoute Component={PrivacyAndData} />}
-                />
-                <Route
-                  path="/settings/appearance"
-                  element={<ManagerRoute Component={GeneralAppearance} />}
-                />
-                <Route
-                  path="/settings/beta-features"
-                  element={<AdminRoute Component={ExperimentalFeatures} />}
-                />
-                <Route
-                  path="/settings/api-keys"
-                  element={<AdminRoute Component={GeneralApiKeys} />}
-                />
-                <Route
-                  path="/settings/browser-extension"
-                  element={<ManagerRoute Component={GeneralBrowserExtension} />}
-                />
-                <Route
-                  path="/settings/workspace-chats"
-                  element={<ManagerRoute Component={GeneralChats} />}
-                />
-                <Route
-                  path="/settings/invites"
-                  element={<ManagerRoute Component={AdminInvites} />}
-                />
-                <Route
-                  path="/settings/users"
-                  element={<ManagerRoute Component={AdminUsers} />}
-                />
-                <Route
-                  path="/settings/workspaces"
-                  element={<ManagerRoute Component={AdminWorkspaces} />}
-                />
-                {/* Onboarding Flow */}
-                <Route path="/onboarding" element={<OnboardingFlow />} />
-                <Route path="/onboarding/:step" element={<OnboardingFlow />} />
+                  {/* Admin */}
+                  <Route
+                    path="/settings/llm-preference"
+                    element={<AdminRoute Component={GeneralLLMPreference} />}
+                  />
+                  <Route
+                    path="/settings/transcription-preference"
+                    element={
+                      <AdminRoute Component={GeneralTranscriptionPreference} />
+                    }
+                  />
+                  <Route
+                    path="/settings/audio-preference"
+                    element={<AdminRoute Component={GeneralAudioPreference} />}
+                  />
+                  <Route
+                    path="/settings/embedding-preference"
+                    element={
+                      <AdminRoute Component={GeneralEmbeddingPreference} />
+                    }
+                  />
+                  <Route
+                    path="/settings/text-splitter-preference"
+                    element={
+                      <AdminRoute Component={EmbeddingTextSplitterPreference} />
+                    }
+                  />
+                  <Route
+                    path="/settings/vector-database"
+                    element={<AdminRoute Component={GeneralVectorDatabase} />}
+                  />
+                  <Route
+                    path="/settings/agents"
+                    element={<AdminRoute Component={AdminAgents} />}
+                  />
+                  <Route
+                    path="/settings/event-logs"
+                    element={<AdminRoute Component={AdminLogs} />}
+                  />
+                  <Route
+                    path="/settings/embed-config"
+                    element={<AdminRoute Component={EmbedConfigSetup} />}
+                  />
+                  <Route
+                    path="/settings/embed-chats"
+                    element={<AdminRoute Component={EmbedChats} />}
+                  />
+                  {/* Manager */}
+                  <Route
+                    path="/settings/security"
+                    element={<ManagerRoute Component={GeneralSecurity} />}
+                  />
+                  <Route
+                    path="/settings/privacy"
+                    element={<AdminRoute Component={PrivacyAndData} />}
+                  />
+                  <Route
+                    path="/settings/appearance"
+                    element={<ManagerRoute Component={GeneralAppearance} />}
+                  />
+                  <Route
+                    path="/settings/beta-features"
+                    element={<AdminRoute Component={ExperimentalFeatures} />}
+                  />
+                  <Route
+                    path="/settings/api-keys"
+                    element={<AdminRoute Component={GeneralApiKeys} />}
+                  />
+                  <Route
+                    path="/settings/browser-extension"
+                    element={
+                      <ManagerRoute Component={GeneralBrowserExtension} />
+                    }
+                  />
+                  <Route
+                    path="/settings/workspace-chats"
+                    element={<ManagerRoute Component={GeneralChats} />}
+                  />
+                  <Route
+                    path="/settings/invites"
+                    element={<ManagerRoute Component={AdminInvites} />}
+                  />
+                  <Route
+                    path="/settings/users"
+                    element={<ManagerRoute Component={AdminUsers} />}
+                  />
+                  <Route
+                    path="/settings/workspaces"
+                    element={<ManagerRoute Component={AdminWorkspaces} />}
+                  />
+                  {/* Onboarding Flow */}
+                  <Route path="/onboarding" element={<OnboardingFlow />} />
+                  <Route
+                    path="/onboarding/:step"
+                    element={<OnboardingFlow />}
+                  />
 
-                {/* Experimental feature pages  */}
-                {/* Live Document Sync feature */}
-                <Route
-                  path="/settings/beta-features/live-document-sync/manage"
-                  element={<AdminRoute Component={LiveDocumentSyncManage} />}
-                />
+                  {/* Experimental feature pages  */}
+                  {/* Live Document Sync feature */}
+                  <Route
+                    path="/settings/beta-features/live-document-sync/manage"
+                    element={<AdminRoute Component={LiveDocumentSyncManage} />}
+                  />
 
-                <Route
-                  path="/fine-tuning"
-                  element={<AdminRoute Component={FineTuningWalkthrough} />}
-                />
-              </Routes>
-              <ToastContainer />
-            </I18nextProvider>
-          </PfpProvider>
-        </LogoProvider>
-      </ContextWrapper>
-    </Suspense>
+                  <Route
+                    path="/fine-tuning"
+                    element={<AdminRoute Component={FineTuningWalkthrough} />}
+                  />
+                </Routes>
+                <ToastContainer />
+              </I18nextProvider>
+            </PfpProvider>
+          </LogoProvider>
+        </ContextWrapper>
+      </Suspense>
+    </ThemeProvider>
   );
 }
diff --git a/frontend/src/LogoContext.jsx b/frontend/src/LogoContext.jsx
index 014c6a6be..8d4ff82dd 100644
--- a/frontend/src/LogoContext.jsx
+++ b/frontend/src/LogoContext.jsx
@@ -1,6 +1,8 @@
 import { createContext, useEffect, useState } from "react";
 import AnythingLLM from "./media/logo/anything-llm.png";
-import DefaultLoginLogo from "./media/illustrations/login-logo.svg";
+import AnythingLLMDark from "./media/logo/anything-llm-dark.png";
+import DefaultLoginLogoLight from "./media/illustrations/login-logo.svg";
+import DefaultLoginLogoDark from "./media/illustrations/login-logo-light.svg";
 import System from "./models/system";
 
 export const LogoContext = createContext();
@@ -9,6 +11,10 @@ export function LogoProvider({ children }) {
   const [logo, setLogo] = useState("");
   const [loginLogo, setLoginLogo] = useState("");
   const [isCustomLogo, setIsCustomLogo] = useState(false);
+  const DefaultLoginLogo =
+    localStorage.getItem("theme") !== "default"
+      ? DefaultLoginLogoDark
+      : DefaultLoginLogoLight;
 
   useEffect(() => {
     async function fetchInstanceLogo() {
@@ -19,12 +25,16 @@ export function LogoProvider({ children }) {
           setLoginLogo(isCustomLogo ? logoURL : DefaultLoginLogo);
           setIsCustomLogo(isCustomLogo);
         } else {
-          setLogo(AnythingLLM);
+          localStorage.getItem("theme") !== "default"
+            ? setLogo(AnythingLLMDark)
+            : setLogo(AnythingLLM);
           setLoginLogo(DefaultLoginLogo);
           setIsCustomLogo(false);
         }
       } catch (err) {
-        setLogo(AnythingLLM);
+        localStorage.getItem("theme") !== "default"
+          ? setLogo(AnythingLLMDark)
+          : setLogo(AnythingLLM);
         setLoginLogo(DefaultLoginLogo);
         setIsCustomLogo(false);
         console.error("Failed to fetch logo:", err);
diff --git a/frontend/src/ThemeContext.jsx b/frontend/src/ThemeContext.jsx
new file mode 100644
index 000000000..f9a5c685f
--- /dev/null
+++ b/frontend/src/ThemeContext.jsx
@@ -0,0 +1,16 @@
+import React, { createContext, useContext } from "react";
+import { useTheme } from "./hooks/useTheme";
+
+const ThemeContext = createContext();
+
+export function ThemeProvider({ children }) {
+  const themeValue = useTheme();
+
+  return (
+    <ThemeContext.Provider value={themeValue}>{children}</ThemeContext.Provider>
+  );
+}
+
+export function useThemeContext() {
+  return useContext(ThemeContext);
+}
diff --git a/frontend/src/components/ChatBubble/index.jsx b/frontend/src/components/ChatBubble/index.jsx
index c5a1f1907..4ffc3d085 100644
--- a/frontend/src/components/ChatBubble/index.jsx
+++ b/frontend/src/components/ChatBubble/index.jsx
@@ -1,14 +1,14 @@
 import React from "react";
 import UserIcon from "../UserIcon";
 import { userFromStorage } from "@/utils/request";
-import { AI_BACKGROUND_COLOR, USER_BACKGROUND_COLOR } from "@/utils/constants";
 
 export default function ChatBubble({ message, type, popMsg }) {
   const isUser = type === "user";
-  const backgroundColor = isUser ? USER_BACKGROUND_COLOR : AI_BACKGROUND_COLOR;
 
   return (
-    <div className={`flex justify-center items-end w-full ${backgroundColor}`}>
+    <div
+      className={`flex justify-center items-end w-full bg-theme-bg-secondary`}
+    >
       <div className={`py-8 px-4 w-full flex gap-x-5 md:max-w-[80%] flex-col`}>
         <div className="flex gap-x-5">
           <UserIcon
diff --git a/frontend/src/components/ContextualSaveBar/index.jsx b/frontend/src/components/ContextualSaveBar/index.jsx
index c94a06c9f..42d149085 100644
--- a/frontend/src/components/ContextualSaveBar/index.jsx
+++ b/frontend/src/components/ContextualSaveBar/index.jsx
@@ -10,18 +10,18 @@ export default function ContextualSaveBar({
   return (
     <div className="fixed top-0 left-0 right-0 h-14 bg-dark-input flex items-center justify-end px-4 z-[999]">
       <div className="absolute ml-4 left-0 md:left-1/2 transform md:-translate-x-1/2 flex items-center gap-x-2">
-        <Warning size={18} className="text-white" />
-        <p className="text-white font-medium text-xs">Unsaved Changes</p>
+        <Warning size={18} className="text-[#FFFFFF]" />
+        <p className="text-[#FFFFFF] font-medium text-xs">Unsaved Changes</p>
       </div>
       <div className="flex items-center gap-x-2">
         <button
-          className="border-none text-white font-medium text-sm px-[10px] py-[6px] rounded-md bg-white/5 hover:bg-white/10"
+          className="border-none text-theme-text-primary font-medium text-sm px-[10px] py-[6px] rounded-md bg-theme-bg-secondary hover:bg-theme-bg-primary"
           onClick={onCancel}
         >
           Cancel
         </button>
         <button
-          className="border-none text-dark-text font-medium text-sm px-[10px] py-[6px] rounded-md bg-primary-button hover:bg-[#3DB5E8]"
+          className="border-none text-theme-text-primary font-medium text-sm px-[10px] py-[6px] rounded-md bg-primary-button hover:bg-primary-button-hover"
           onClick={onSave}
         >
           Save
diff --git a/frontend/src/components/DefaultChat/index.jsx b/frontend/src/components/DefaultChat/index.jsx
index d542f309f..e3087d1b1 100644
--- a/frontend/src/components/DefaultChat/index.jsx
+++ b/frontend/src/components/DefaultChat/index.jsx
@@ -15,7 +15,6 @@ import ChatBubble from "../ChatBubble";
 import System from "@/models/system";
 import UserIcon from "../UserIcon";
 import { userFromStorage } from "@/utils/request";
-import { AI_BACKGROUND_COLOR, USER_BACKGROUND_COLOR } from "@/utils/constants";
 import useUser from "@/hooks/useUser";
 import { useTranslation, Trans } from "react-i18next";
 import Appearance from "@/models/appearance";
@@ -43,239 +42,136 @@ export default function DefaultChatContainer() {
 
   const MESSAGES = [
     <React.Fragment key="msg1">
-      <div
-        className={`flex justify-center items-end w-full ${AI_BACKGROUND_COLOR} md:mt-0 mt-[40px]`}
-      >
-        <div
-          className={`pt-10 pb-6 px-4 w-full flex gap-x-5 md:max-w-[80%] flex-col`}
-        >
-          <div className="flex gap-x-5">
-            <UserIcon user={{ uid: "system" }} role={"assistant"} />
-
-            <span
-              className={`whitespace-pre-line text-white font-normal text-sm md:text-sm flex flex-col gap-y-1 mt-2`}
-            >
-              {t("welcomeMessage.part1")}
-            </span>
-          </div>
-        </div>
-      </div>
+      <MessageContainer>
+        <MessageContent>
+          <UserIcon user={{ uid: "system" }} role={"assistant"} />
+          <MessageText>{t("welcomeMessage.part1")}</MessageText>
+        </MessageContent>
+      </MessageContainer>
     </React.Fragment>,
 
     <React.Fragment key="msg2">
-      <div
-        className={`flex justify-center items-end w-full ${AI_BACKGROUND_COLOR}`}
-      >
-        <div
-          className={`pb-4 pt-2 px-4 w-full flex gap-x-5 md:max-w-[80%] flex-col`}
-        >
-          <div className="flex gap-x-5">
-            <UserIcon user={{ uid: "system" }} role={"assistant"} />
-
-            <span
-              className={`whitespace-pre-line text-white font-normal text-sm md:text-sm flex flex-col gap-y-1 mt-2`}
-            >
-              {t("welcomeMessage.part2")}
-            </span>
-          </div>
-        </div>
-      </div>
+      <MessageContainer>
+        <MessageContent>
+          <UserIcon user={{ uid: "system" }} role={"assistant"} />
+          <MessageText>{t("welcomeMessage.part2")}</MessageText>
+        </MessageContent>
+      </MessageContainer>
     </React.Fragment>,
 
     <React.Fragment key="msg3">
-      <div
-        className={`flex justify-center items-end w-full ${AI_BACKGROUND_COLOR}`}
-      >
-        <div
-          className={`pt-2 pb-6 px-4 w-full flex gap-x-5 md:max-w-[80%] flex-col`}
-        >
-          <div className="flex gap-x-5">
-            <UserIcon user={{ uid: "system" }} role={"assistant"} />
-            <div>
-              <span
-                className={`whitespace-pre-line text-white font-normal text-sm md:text-sm flex flex-col gap-y-1 mt-2`}
+      <MessageContainer>
+        <MessageContent>
+          <UserIcon user={{ uid: "system" }} role={"assistant"} />
+          <div>
+            <MessageText>{t("welcomeMessage.part3")}</MessageText>
+            <a
+              href={paths.github()}
+              target="_blank"
+              rel="noreferrer"
+              className="mt-5 w-fit transition-all duration-300 border border-slate-200 px-4 py-2 rounded-lg text-white light:border-black/50 light:text-theme-text-primary text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 focus:ring-gray-800"
+            >
+              <GitMerge className="h-4 w-4" />
+              <p>{t("welcomeMessage.githubIssue")}</p>
+            </a>
+          </div>
+        </MessageContent>
+      </MessageContainer>
+    </React.Fragment>,
+
+    <React.Fragment key="msg4">
+      <MessageContainer>
+        <MessageContent>
+          <UserIcon user={{ uid: userFromStorage()?.username }} role={"user"} />
+          <MessageText>{t("welcomeMessage.user1")}</MessageText>
+        </MessageContent>
+      </MessageContainer>
+    </React.Fragment>,
+
+    <React.Fragment key="msg5">
+      <MessageContainer>
+        <MessageContent>
+          <UserIcon user={{ uid: "system" }} role={"assistant"} />
+          <div>
+            <MessageText>{t("welcomeMessage.part4")}</MessageText>
+
+            {(!user || user?.role !== "default") && (
+              <button
+                onClick={showNewWsModal}
+                className="mt-5 w-fit transition-all duration-300 border border-slate-200 px-4 py-2 rounded-lg text-white light:border-black/50 light:text-theme-text-primary text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 focus:ring-gray-800"
               >
-                {t("welcomeMessage.part3")}
-              </span>
+                <Plus className="h-4 w-4" />
+                <p>{t("welcomeMessage.createWorkspace")}</p>
+              </button>
+            )}
+          </div>
+        </MessageContent>
+      </MessageContainer>
+    </React.Fragment>,
+
+    <React.Fragment key="msg6">
+      <MessageContainer>
+        <MessageContent>
+          <UserIcon user={{ uid: userFromStorage()?.username }} role={"user"} />
+          <MessageText>{t("welcomeMessage.user2")}</MessageText>
+        </MessageContent>
+      </MessageContainer>
+    </React.Fragment>,
+
+    <React.Fragment key="msg7">
+      <MessageContainer>
+        <MessageContent>
+          <UserIcon user={{ uid: "system" }} role={"assistant"} />
+          <MessageText>
+            <Trans
+              i18nKey="welcomeMessage.part5"
+              components={{
+                i: <i />,
+                br: <br />,
+              }}
+            />
+          </MessageText>
+        </MessageContent>
+      </MessageContainer>
+    </React.Fragment>,
+
+    <React.Fragment key="msg8">
+      <MessageContainer>
+        <MessageContent>
+          <UserIcon user={{ uid: userFromStorage()?.username }} role={"user"} />
+          <MessageText>{t("welcomeMessage.user3")}</MessageText>
+        </MessageContent>
+      </MessageContainer>
+    </React.Fragment>,
+
+    <React.Fragment key="msg9">
+      <MessageContainer>
+        <MessageContent>
+          <UserIcon user={{ uid: "system" }} role={"assistant"} />
+          <div>
+            <MessageText>{t("welcomeMessage.part6")}</MessageText>
+
+            <div className="flex flex-col md:flex-row items-start md:items-center gap-1 md:gap-4">
               <a
                 href={paths.github()}
                 target="_blank"
                 rel="noreferrer"
-                className="mt-5 w-fit transition-all duration-300 border border-slate-200 px-4 py-2 rounded-lg text-white text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 focus:ring-gray-800"
+                className="mt-5 w-fit transition-all duration-300 border border-slate-200 px-4 py-2 rounded-lg text-white light:border-black/50 light:text-theme-text-primary text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 focus:ring-gray-800"
               >
-                <GitMerge className="h-4 w-4" />
-                <p>{t("welcomeMessage.githubIssue")}</p>
+                <GithubLogo className="h-4 w-4" />
+                <p>{t("welcomeMessage.starOnGithub")}</p>
+              </a>
+              <a
+                href={paths.mailToMintplex()}
+                className="mt-5 w-fit transition-all duration-300 border border-slate-200 px-4 py-2 rounded-lg text-white light:border-black/50 light:text-theme-text-primary text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 focus:ring-gray-800"
+              >
+                <EnvelopeSimple className="h-4 w-4" />
+                <p>{t("welcomeMessage.contact")}</p>
               </a>
             </div>
           </div>
-        </div>
-      </div>
-    </React.Fragment>,
-
-    <React.Fragment key="msg4">
-      <div
-        className={`flex justify-center items-end w-full ${USER_BACKGROUND_COLOR}`}
-      >
-        <div
-          className={`py-6 px-4 w-full flex gap-x-5 md:max-w-[80%] flex-col`}
-        >
-          <div className="flex gap-x-5">
-            <UserIcon
-              user={{ uid: userFromStorage()?.username }}
-              role={"user"}
-            />
-
-            <span
-              className={`whitespace-pre-line text-white font-normal text-sm md:text-sm flex flex-col gap-y-1 mt-2`}
-            >
-              {t("welcomeMessage.user1")}
-            </span>
-          </div>
-        </div>
-      </div>
-    </React.Fragment>,
-
-    <React.Fragment key="msg5">
-      <div
-        className={`flex justify-center items-end w-full ${AI_BACKGROUND_COLOR}`}
-      >
-        <div
-          className={`py-6 px-4 w-full flex gap-x-5 md:max-w-[80%] flex-col`}
-        >
-          <div className="flex gap-x-5">
-            <UserIcon user={{ uid: "system" }} role={"assistant"} />
-            <div>
-              <span
-                className={`whitespace-pre-line text-white font-normal text-sm md:text-sm flex flex-col gap-y-1 mt-2`}
-              >
-                {t("welcomeMessage.part4")}
-              </span>
-
-              {(!user || user?.role !== "default") && (
-                <button
-                  onClick={showNewWsModal}
-                  className="mt-5 w-fit transition-all duration-300 border border-slate-200 px-4 py-2 rounded-lg text-white text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 focus:ring-gray-800"
-                >
-                  <Plus className="h-4 w-4" />
-                  <p>{t("welcomeMessage.createWorkspace")}</p>
-                </button>
-              )}
-            </div>
-          </div>
-        </div>
-      </div>
-    </React.Fragment>,
-
-    <React.Fragment key="msg6">
-      <div
-        className={`flex justify-center items-end w-full ${USER_BACKGROUND_COLOR}`}
-      >
-        <div
-          className={`py-6 px-4 w-full flex gap-x-5 md:max-w-[80%] flex-col`}
-        >
-          <div className="flex gap-x-5">
-            <UserIcon
-              user={{ uid: userFromStorage()?.username }}
-              role={"user"}
-            />
-
-            <span
-              className={`whitespace-pre-line text-white font-normal text-sm md:text-sm flex flex-col gap-y-1 mt-2`}
-            >
-              {t("welcomeMessage.user2")}
-            </span>
-          </div>
-        </div>
-      </div>
-    </React.Fragment>,
-
-    <React.Fragment key="msg7">
-      <div
-        className={`flex justify-center items-end w-full ${AI_BACKGROUND_COLOR}`}
-      >
-        <div
-          className={`py-6 px-4 w-full flex gap-x-5 md:max-w-[80%] flex-col`}
-        >
-          <div className="flex gap-x-5">
-            <UserIcon user={{ uid: "system" }} role={"assistant"} />
-
-            <span
-              className={`whitespace-pre-line text-white font-normal text-sm md:text-sm flex flex-col gap-y-1 mt-2`}
-            >
-              <Trans
-                i18nKey="welcomeMessage.part5"
-                components={{
-                  i: <i />,
-                  br: <br />,
-                }}
-              />
-            </span>
-          </div>
-        </div>
-      </div>
-    </React.Fragment>,
-
-    <React.Fragment key="msg8">
-      <div
-        className={`flex justify-center items-end w-full ${USER_BACKGROUND_COLOR}`}
-      >
-        <div
-          className={`py-6 px-4 w-full flex gap-x-5 md:max-w-[80%] flex-col`}
-        >
-          <div className="flex gap-x-5">
-            <UserIcon
-              user={{ uid: userFromStorage()?.username }}
-              role={"user"}
-            />
-
-            <span
-              className={`whitespace-pre-line text-white font-normal text-sm md:text-sm flex flex-col gap-y-1 mt-2`}
-            >
-              {t("welcomeMessage.user3")}
-            </span>
-          </div>
-        </div>
-      </div>
-    </React.Fragment>,
-
-    <React.Fragment key="msg9">
-      <div
-        className={`flex justify-center items-end w-full ${AI_BACKGROUND_COLOR}`}
-      >
-        <div
-          className={`py-6 px-4 w-full flex gap-x-5 md:max-w-[80%] flex-col`}
-        >
-          <div className="flex gap-x-5">
-            <UserIcon user={{ uid: "system" }} role={"assistant"} />
-            <div>
-              <span
-                className={`whitespace-pre-line text-white font-normal text-sm md:text-sm flex flex-col gap-y-1 mt-2`}
-              >
-                {t("welcomeMessage.part6")}
-              </span>
-
-              <div className="flex flex-col md:flex-row items-start md:items-center gap-1 md:gap-4">
-                <a
-                  href={paths.github()}
-                  target="_blank"
-                  rel="noreferrer"
-                  className="mt-5 w-fit transition-all duration-300 border border-slate-200 px-4 py-2 rounded-lg text-white text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 focus:ring-gray-800"
-                >
-                  <GithubLogo className="h-4 w-4" />
-                  <p>{t("welcomeMessage.starOnGithub")}</p>
-                </a>
-                <a
-                  href={paths.mailToMintplex()}
-                  className="mt-5 w-fit transition-all duration-300 border border-slate-200 px-4 py-2 rounded-lg text-white text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 focus:ring-gray-800"
-                >
-                  <EnvelopeSimple className="h-4 w-4" />
-                  <p>{t("welcomeMessage.contact")}</p>
-                </a>
-              </div>
-            </div>
-          </div>
-        </div>
-      </div>
+        </MessageContent>
+      </MessageContainer>
     </React.Fragment>,
   ];
 
@@ -307,7 +203,7 @@ export default function DefaultChatContainer() {
   return (
     <div
       style={{ height: isMobile ? "100%" : "calc(100% - 32px)" }}
-      className={`relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-main-gradient w-full border-2 border-outline overflow-y-scroll ${
+      className={`transition-all duration-500 relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-theme-bg-secondary light:border-[1px] light:border-theme-sidebar-border w-full h-full overflow-y-scroll ${
         showScrollbar ? "show-scrollbar" : "no-scroll"
       }`}
     >
@@ -335,3 +231,25 @@ export default function DefaultChatContainer() {
     </div>
   );
 }
+
+function MessageContainer({ children }) {
+  return (
+    <div className="flex justify-center items-end w-full">
+      <div className="py-6 px-4 w-full flex gap-x-5 md:max-w-[80%] flex-col">
+        {children}
+      </div>
+    </div>
+  );
+}
+
+function MessageContent({ children }) {
+  return <div className="flex gap-x-5">{children}</div>;
+}
+
+function MessageText({ children }) {
+  return (
+    <span className="text-white/80 light:text-theme-text-primary font-light text-[14px] flex flex-col gap-y-1 mt-2">
+      {children}
+    </span>
+  );
+}
diff --git a/frontend/src/components/EditingChatBubble/index.jsx b/frontend/src/components/EditingChatBubble/index.jsx
index 38eeb4e83..feabd4c6e 100644
--- a/frontend/src/components/EditingChatBubble/index.jsx
+++ b/frontend/src/components/EditingChatBubble/index.jsx
@@ -16,7 +16,9 @@ export default function EditingChatBubble({
 
   return (
     <div>
-      <p className={`text-xs text-[#D3D4D4] ${isUser ? "text-right" : ""}`}>
+      <p
+        className={`text-xs text-white light:text-black/80 ${isUser ? "text-right" : ""}`}
+      >
         {isUser ? t("common.user") : t("appearance.message.assistant")}
       </p>
       <div
@@ -25,7 +27,7 @@ export default function EditingChatBubble({
         }`}
       >
         <button
-          className={`transition-all duration-300 absolute z-10 text-white rounded-full hover:bg-neutral-700 hover:border-white border-transparent border shadow-lg ${
+          className={`transition-all duration-300 absolute z-10 text-white rounded-full hover:bg-neutral-700 light:hover:invert hover:border-white border-transparent border shadow-lg ${
             isUser ? "right-0 mr-2" : "ml-2"
           }`}
           style={{ top: "6px", [isUser ? "right" : "left"]: "290px" }}
@@ -49,13 +51,13 @@ export default function EditingChatBubble({
                 setIsEditing(false);
               }}
               autoFocus
-              className={`w-full ${
+              className={`w-full light:text-white ${
                 isUser ? "bg-[#41444C] text-white" : "bg-[#2E3036] text-white"
               }`}
             />
           ) : (
             tempMessage && (
-              <p className=" font-[500] md:font-semibold text-sm md:text-base break-words">
+              <p className=" font-[500] md:font-semibold text-sm md:text-base break-words light:invert">
                 {tempMessage}
               </p>
             )
diff --git a/frontend/src/components/EmbeddingSelection/AzureAiOptions/index.jsx b/frontend/src/components/EmbeddingSelection/AzureAiOptions/index.jsx
index 6a15e1ab6..ccba035db 100644
--- a/frontend/src/components/EmbeddingSelection/AzureAiOptions/index.jsx
+++ b/frontend/src/components/EmbeddingSelection/AzureAiOptions/index.jsx
@@ -9,7 +9,7 @@ export default function AzureAiOptions({ settings }) {
           <input
             type="url"
             name="AzureOpenAiEndpoint"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="https://my-azure.openai.azure.com"
             defaultValue={settings?.AzureOpenAiEndpoint}
             required={true}
@@ -25,7 +25,7 @@ export default function AzureAiOptions({ settings }) {
           <input
             type="password"
             name="AzureOpenAiKey"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="Azure OpenAI API Key"
             defaultValue={settings?.AzureOpenAiKey ? "*".repeat(20) : ""}
             required={true}
@@ -41,7 +41,7 @@ export default function AzureAiOptions({ settings }) {
           <input
             type="text"
             name="AzureOpenAiEmbeddingModelPref"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="Azure OpenAI embedding model deployment name"
             defaultValue={settings?.AzureOpenAiEmbeddingModelPref}
             required={true}
diff --git a/frontend/src/components/EmbeddingSelection/CohereOptions/index.jsx b/frontend/src/components/EmbeddingSelection/CohereOptions/index.jsx
index ba54bb9a5..c5153fd04 100644
--- a/frontend/src/components/EmbeddingSelection/CohereOptions/index.jsx
+++ b/frontend/src/components/EmbeddingSelection/CohereOptions/index.jsx
@@ -9,7 +9,7 @@ export default function CohereEmbeddingOptions({ settings }) {
           <input
             type="password"
             name="CohereApiKey"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="Cohere API Key"
             defaultValue={settings?.CohereApiKey ? "*".repeat(20) : ""}
             required={true}
@@ -24,7 +24,7 @@ export default function CohereEmbeddingOptions({ settings }) {
           <select
             name="EmbeddingModelPref"
             required={true}
-            className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+            className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
           >
             <optgroup label="Available embedding models">
               {[
diff --git a/frontend/src/components/EmbeddingSelection/EmbedderItem/index.jsx b/frontend/src/components/EmbeddingSelection/EmbedderItem/index.jsx
index de9413572..22003f771 100644
--- a/frontend/src/components/EmbeddingSelection/EmbedderItem/index.jsx
+++ b/frontend/src/components/EmbeddingSelection/EmbedderItem/index.jsx
@@ -9,8 +9,8 @@ export default function EmbedderItem({
   return (
     <div
       onClick={() => onClick(value)}
-      className={`w-full p-2 rounded-md hover:cursor-pointer hover:bg-white/10 ${
-        checked ? "bg-white/10" : ""
+      className={`w-full p-2 rounded-md hover:cursor-pointer hover:bg-theme-bg-secondary ${
+        checked ? "bg-theme-bg-secondary" : ""
       }`}
     >
       <input
diff --git a/frontend/src/components/EmbeddingSelection/GenericOpenAiOptions/index.jsx b/frontend/src/components/EmbeddingSelection/GenericOpenAiOptions/index.jsx
index f37161c20..e524a263e 100644
--- a/frontend/src/components/EmbeddingSelection/GenericOpenAiOptions/index.jsx
+++ b/frontend/src/components/EmbeddingSelection/GenericOpenAiOptions/index.jsx
@@ -9,7 +9,7 @@ export default function GenericOpenAiEmbeddingOptions({ settings }) {
           <input
             type="url"
             name="EmbeddingBasePath"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="https://api.openai.com/v1"
             defaultValue={settings?.EmbeddingBasePath}
             required={true}
@@ -24,7 +24,7 @@ export default function GenericOpenAiEmbeddingOptions({ settings }) {
           <input
             type="text"
             name="EmbeddingModelPref"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="text-embedding-ada-002"
             defaultValue={settings?.EmbeddingModelPref}
             required={true}
@@ -39,7 +39,7 @@ export default function GenericOpenAiEmbeddingOptions({ settings }) {
           <input
             type="number"
             name="EmbeddingModelMaxChunkLength"
-            className="bg-zinc-900 text-white placeholder-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="8192"
             min={1}
             onScroll={(e) => e.target.blur()}
@@ -59,7 +59,7 @@ export default function GenericOpenAiEmbeddingOptions({ settings }) {
           <input
             type="password"
             name="GenericOpenAiEmbeddingApiKey"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="sk-mysecretkey"
             defaultValue={
               settings?.GenericOpenAiEmbeddingApiKey ? "*".repeat(20) : ""
diff --git a/frontend/src/components/EmbeddingSelection/LMStudioOptions/index.jsx b/frontend/src/components/EmbeddingSelection/LMStudioOptions/index.jsx
index 9b31add91..4cf95168b 100644
--- a/frontend/src/components/EmbeddingSelection/LMStudioOptions/index.jsx
+++ b/frontend/src/components/EmbeddingSelection/LMStudioOptions/index.jsx
@@ -38,7 +38,7 @@ export default function LMStudioEmbeddingOptions({ settings }) {
           <input
             type="number"
             name="EmbeddingModelMaxChunkLength"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="8192"
             min={1}
             value={maxChunkLength}
@@ -94,7 +94,7 @@ export default function LMStudioEmbeddingOptions({ settings }) {
             <input
               type="url"
               name="EmbeddingBasePath"
-              className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+              className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
               placeholder="http://localhost:1234/v1"
               value={basePathValue.value}
               required={true}
@@ -150,7 +150,7 @@ function LMStudioModelSelection({ settings, basePath = null }) {
         <select
           name="EmbeddingModelPref"
           disabled={true}
-          className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+          className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
         >
           <option disabled={true} selected={true}>
             {!!basePath
@@ -174,7 +174,7 @@ function LMStudioModelSelection({ settings, basePath = null }) {
       <select
         name="EmbeddingModelPref"
         required={true}
-        className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+        className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
       >
         {customModels.length > 0 && (
           <optgroup label="Your loaded models">
diff --git a/frontend/src/components/EmbeddingSelection/LiteLLMOptions/index.jsx b/frontend/src/components/EmbeddingSelection/LiteLLMOptions/index.jsx
index 22b2f5cae..d13e4e577 100644
--- a/frontend/src/components/EmbeddingSelection/LiteLLMOptions/index.jsx
+++ b/frontend/src/components/EmbeddingSelection/LiteLLMOptions/index.jsx
@@ -19,7 +19,7 @@ export default function LiteLLMOptions({ settings }) {
           <input
             type="url"
             name="LiteLLMBasePath"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="http://127.0.0.1:4000"
             defaultValue={settings?.LiteLLMBasePath}
             required={true}
@@ -41,7 +41,7 @@ export default function LiteLLMOptions({ settings }) {
           <input
             type="number"
             name="EmbeddingModelMaxChunkLength"
-            className="bg-zinc-900 text-white placeholder-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="8192"
             min={1}
             onScroll={(e) => e.target.blur()}
@@ -61,7 +61,7 @@ export default function LiteLLMOptions({ settings }) {
           <input
             type="password"
             name="LiteLLMAPIKey"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="sk-mysecretkey"
             defaultValue={settings?.LiteLLMAPIKey ? "*".repeat(20) : ""}
             autoComplete="off"
@@ -107,7 +107,7 @@ function LiteLLMModelSelection({ settings, basePath = null, apiKey = null }) {
         <select
           name="EmbeddingModelPref"
           disabled={true}
-          className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+          className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
         >
           <option disabled={true} selected={true}>
             {basePath?.includes("/v1")
@@ -130,7 +130,7 @@ function LiteLLMModelSelection({ settings, basePath = null, apiKey = null }) {
       <select
         name="EmbeddingModelPref"
         required={true}
-        className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+        className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
       >
         {customModels.length > 0 && (
           <optgroup label="Your loaded models">
diff --git a/frontend/src/components/EmbeddingSelection/LocalAiOptions/index.jsx b/frontend/src/components/EmbeddingSelection/LocalAiOptions/index.jsx
index 988eebac4..3493bede8 100644
--- a/frontend/src/components/EmbeddingSelection/LocalAiOptions/index.jsx
+++ b/frontend/src/components/EmbeddingSelection/LocalAiOptions/index.jsx
@@ -36,7 +36,7 @@ export default function LocalAiOptions({ settings }) {
           <input
             type="number"
             name="EmbeddingModelMaxChunkLength"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="1000"
             min={1}
             onScroll={(e) => e.target.blur()}
@@ -55,7 +55,7 @@ export default function LocalAiOptions({ settings }) {
           <input
             type="password"
             name="LocalAiApiKey"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="sk-mysecretkey"
             defaultValue={settings?.LocalAiApiKey ? "*".repeat(20) : ""}
             autoComplete="off"
@@ -106,7 +106,7 @@ export default function LocalAiOptions({ settings }) {
             <input
               type="url"
               name="EmbeddingBasePath"
-              className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+              className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
               placeholder="http://localhost:8080/v1"
               value={basePathValue.value}
               required={true}
@@ -154,7 +154,7 @@ function LocalAIModelSelection({ settings, apiKey = null, basePath = null }) {
         <select
           name="EmbeddingModelPref"
           disabled={true}
-          className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+          className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
         >
           <option disabled={true} selected={true}>
             {basePath?.includes("/v1")
@@ -174,7 +174,7 @@ function LocalAIModelSelection({ settings, apiKey = null, basePath = null }) {
       <select
         name="EmbeddingModelPref"
         required={true}
-        className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+        className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
       >
         {customModels.length > 0 && (
           <optgroup label="Your loaded models">
diff --git a/frontend/src/components/EmbeddingSelection/OllamaOptions/index.jsx b/frontend/src/components/EmbeddingSelection/OllamaOptions/index.jsx
index a182c6daa..49a111c2a 100644
--- a/frontend/src/components/EmbeddingSelection/OllamaOptions/index.jsx
+++ b/frontend/src/components/EmbeddingSelection/OllamaOptions/index.jsx
@@ -41,7 +41,7 @@ export default function OllamaEmbeddingOptions({ settings }) {
           <input
             type="number"
             name="EmbeddingModelMaxChunkLength"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="8192"
             min={1}
             value={maxChunkLength}
@@ -97,7 +97,7 @@ export default function OllamaEmbeddingOptions({ settings }) {
             <input
               type="url"
               name="EmbeddingBasePath"
-              className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+              className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
               placeholder="http://127.0.0.1:11434"
               value={basePathValue.value}
               required={true}
@@ -149,7 +149,7 @@ function OllamaEmbeddingModelSelection({ settings, basePath = null }) {
         <select
           name="EmbeddingModelPref"
           disabled={true}
-          className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+          className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
         >
           <option disabled={true} selected={true}>
             {!!basePath
@@ -173,7 +173,7 @@ function OllamaEmbeddingModelSelection({ settings, basePath = null }) {
       <select
         name="EmbeddingModelPref"
         required={true}
-        className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+        className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
       >
         {customModels.length > 0 && (
           <optgroup label="Your loaded models">
diff --git a/frontend/src/components/EmbeddingSelection/OpenAiOptions/index.jsx b/frontend/src/components/EmbeddingSelection/OpenAiOptions/index.jsx
index 79cb2dc5d..ace2dd6e8 100644
--- a/frontend/src/components/EmbeddingSelection/OpenAiOptions/index.jsx
+++ b/frontend/src/components/EmbeddingSelection/OpenAiOptions/index.jsx
@@ -9,7 +9,7 @@ export default function OpenAiOptions({ settings }) {
           <input
             type="password"
             name="OpenAiKey"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="OpenAI API Key"
             defaultValue={settings?.OpenAiKey ? "*".repeat(20) : ""}
             required={true}
@@ -24,7 +24,7 @@ export default function OpenAiOptions({ settings }) {
           <select
             name="EmbeddingModelPref"
             required={true}
-            className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+            className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
           >
             <optgroup label="Available embedding models">
               {[
diff --git a/frontend/src/components/EmbeddingSelection/VoyageAiOptions/index.jsx b/frontend/src/components/EmbeddingSelection/VoyageAiOptions/index.jsx
index b55fc6743..d16e456d3 100644
--- a/frontend/src/components/EmbeddingSelection/VoyageAiOptions/index.jsx
+++ b/frontend/src/components/EmbeddingSelection/VoyageAiOptions/index.jsx
@@ -9,7 +9,7 @@ export default function VoyageAiOptions({ settings }) {
           <input
             type="password"
             name="VoyageAiApiKey"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="Voyage AI API Key"
             defaultValue={settings?.VoyageAiApiKey ? "*".repeat(20) : ""}
             required={true}
@@ -25,7 +25,7 @@ export default function VoyageAiOptions({ settings }) {
             name="EmbeddingModelPref"
             required={true}
             defaultValue={settings?.EmbeddingModelPref}
-            className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+            className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
           >
             <optgroup label="Available embedding models">
               {[
diff --git a/frontend/src/components/Footer/index.jsx b/frontend/src/components/Footer/index.jsx
index 095aeba91..420f173f9 100644
--- a/frontend/src/components/Footer/index.jsx
+++ b/frontend/src/components/Footer/index.jsx
@@ -53,12 +53,16 @@ export default function Footer() {
               href={paths.github()}
               target="_blank"
               rel="noreferrer"
-              className="transition-all duration-300 p-2 rounded-full text-white bg-sidebar-button hover:bg-menu-item-selected-gradient hover:border-slate-100 hover:border-opacity-50 border-transparent border"
+              className="transition-all duration-300 p-2 rounded-full bg-theme-sidebar-footer-icon hover:bg-theme-sidebar-footer-icon-hover"
               aria-label="Find us on Github"
               data-tooltip-id="footer-item"
               data-tooltip-content="View source code on Github"
             >
-              <GithubLogo weight="fill" className="h-5 w-5 " />
+              <GithubLogo
+                weight="fill"
+                className="h-5 w-5"
+                color="var(--theme-sidebar-footer-icon-fill)"
+              />
             </a>
           </div>
           <div className="flex w-fit">
@@ -66,12 +70,16 @@ export default function Footer() {
               href={paths.docs()}
               target="_blank"
               rel="noreferrer"
-              className="w-fit transition-all duration-300 p-2 rounded-full text-white bg-sidebar-button hover:bg-menu-item-selected-gradient hover:border-slate-100 hover:border-opacity-50 border-transparent border"
+              className="transition-all duration-300 p-2 rounded-full bg-theme-sidebar-footer-icon hover:bg-theme-sidebar-footer-icon-hover"
               aria-label="Docs"
               data-tooltip-id="footer-item"
               data-tooltip-content="Open AnythingLLM help docs"
             >
-              <BookOpen weight="fill" className="h-5 w-5 " />
+              <BookOpen
+                weight="fill"
+                className="h-5 w-5"
+                color="var(--theme-sidebar-footer-icon-fill)"
+              />
             </a>
           </div>
           <div className="flex w-fit">
@@ -79,14 +87,15 @@ export default function Footer() {
               href={paths.discord()}
               target="_blank"
               rel="noreferrer"
-              className="transition-all duration-300 p-2 rounded-full text-white bg-sidebar-button hover:bg-menu-item-selected-gradient hover:border-slate-100 hover:border-opacity-50 border-transparent border"
+              className="transition-all duration-300 p-2 rounded-full bg-theme-sidebar-footer-icon hover:bg-theme-sidebar-footer-icon-hover"
               aria-label="Join our Discord server"
               data-tooltip-id="footer-item"
               data-tooltip-content="Join the AnythingLLM Discord"
             >
               <DiscordLogo
                 weight="fill"
-                className="h-5 w-5 stroke-slate-200 group-hover:stroke-slate-200"
+                className="h-5 w-5"
+                color="var(--theme-sidebar-footer-icon-fill)"
               />
             </a>
           </div>
@@ -111,13 +120,14 @@ export default function Footer() {
             href={item.url}
             target="_blank"
             rel="noreferrer"
-            className="transition-all duration-300 p-2 rounded-full text-white bg-sidebar-button hover:bg-menu-item-selected-gradient hover:border-slate-100 hover:border-opacity-50 border-transparent border"
+            className="transition-all duration-300 p-2 rounded-full bg-theme-sidebar-footer-icon hover:bg-theme-sidebar-footer-icon-hover"
           >
             {React.createElement(
               ICON_COMPONENTS?.[item.icon] ?? ICON_COMPONENTS.Info,
               {
                 weight: "fill",
                 className: "h-5 w-5",
+                color: "var(--theme-sidebar-footer-icon-fill)",
               }
             )}
           </a>
diff --git a/frontend/src/components/LLMSelection/AnthropicAiOptions/index.jsx b/frontend/src/components/LLMSelection/AnthropicAiOptions/index.jsx
index d66d36673..2f42c57c5 100644
--- a/frontend/src/components/LLMSelection/AnthropicAiOptions/index.jsx
+++ b/frontend/src/components/LLMSelection/AnthropicAiOptions/index.jsx
@@ -9,7 +9,7 @@ export default function AnthropicAiOptions({ settings }) {
           <input
             type="password"
             name="AnthropicApiKey"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="Anthropic Claude-2 API Key"
             defaultValue={settings?.AnthropicApiKey ? "*".repeat(20) : ""}
             required={true}
@@ -27,7 +27,7 @@ export default function AnthropicAiOptions({ settings }) {
               name="AnthropicModelPref"
               defaultValue={settings?.AnthropicModelPref || "claude-2"}
               required={true}
-              className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+              className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
             >
               {[
                 "claude-instant-1.2",
diff --git a/frontend/src/components/LLMSelection/ApiPieOptions/index.jsx b/frontend/src/components/LLMSelection/ApiPieOptions/index.jsx
index 9bb16ae3d..9799bf15d 100644
--- a/frontend/src/components/LLMSelection/ApiPieOptions/index.jsx
+++ b/frontend/src/components/LLMSelection/ApiPieOptions/index.jsx
@@ -12,7 +12,7 @@ export default function ApiPieLLMOptions({ settings }) {
           <input
             type="password"
             name="ApipieLLMApiKey"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="APIpie API Key"
             defaultValue={settings?.ApipieLLMApiKey ? "*".repeat(20) : ""}
             required={true}
@@ -60,7 +60,7 @@ function APIPieModelSelection({ settings }) {
         <select
           name="ApipieLLMModelPref"
           disabled={true}
-          className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+          className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
         >
           <option disabled={true} selected={true}>
             -- loading available models --
@@ -78,7 +78,7 @@ function APIPieModelSelection({ settings }) {
       <select
         name="ApipieLLMModelPref"
         required={true}
-        className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+        className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
       >
         {Object.keys(groupedModels)
           .sort()
diff --git a/frontend/src/components/LLMSelection/AwsBedrockLLMOptions/index.jsx b/frontend/src/components/LLMSelection/AwsBedrockLLMOptions/index.jsx
index 569ec4395..0620879f8 100644
--- a/frontend/src/components/LLMSelection/AwsBedrockLLMOptions/index.jsx
+++ b/frontend/src/components/LLMSelection/AwsBedrockLLMOptions/index.jsx
@@ -36,16 +36,20 @@ export default function AwsBedrockLLMOptions({ settings }) {
           value={useSessionToken ? "sessionToken" : "iam"}
         />
         <div className="flex flex-col w-full">
-          <label className="text-white text-sm font-semibold block mb-3">
+          <label className="text-theme-text-primary text-sm font-semibold block mb-3">
             Use session token
           </label>
-          <p className="text-white/50 text-sm">
+          <p className="text-theme-text-secondary text-sm">
             Select the method to authenticate with AWS Bedrock.
           </p>
         </div>
-        <div className="flex items-center justify-start gap-x-4 bg-zinc-900 p-2.5 rounded-lg w-fit">
+        <div className="flex items-center justify-start gap-x-4 bg-theme-settings-input-bg p-2.5 rounded-lg w-fit">
           <span
-            className={`text-sm ${!useSessionToken ? "text-white" : "text-white/50"}`}
+            className={`text-sm ${
+              !useSessionToken
+                ? "text-theme-text-primary"
+                : "text-theme-text-secondary"
+            }`}
           >
             IAM
           </span>
@@ -56,10 +60,14 @@ export default function AwsBedrockLLMOptions({ settings }) {
               checked={useSessionToken}
               onChange={(e) => setUseSessionToken(e.target.checked)}
             />
-            <div className="w-11 h-6 bg-zinc-700 peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-primary-button"></div>
+            <div className="w-11 h-6 bg-[#4b5563] light:bg-[#e5e7eb] peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-[#d1d5db] light:after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-primary-button"></div>
           </label>
           <span
-            className={`text-sm ${useSessionToken ? "text-white" : "text-white/50"}`}
+            className={`text-sm ${
+              useSessionToken
+                ? "text-theme-text-primary"
+                : "text-theme-text-secondary"
+            }`}
           >
             Session Token
           </span>
@@ -74,7 +82,7 @@ export default function AwsBedrockLLMOptions({ settings }) {
           <input
             type="password"
             name="AwsBedrockLLMAccessKeyId"
-            className="border-none bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="AWS Bedrock IAM User Access ID"
             defaultValue={
               settings?.AwsBedrockLLMAccessKeyId ? "*".repeat(20) : ""
@@ -91,7 +99,7 @@ export default function AwsBedrockLLMOptions({ settings }) {
           <input
             type="password"
             name="AwsBedrockLLMAccessKey"
-            className="border-none bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="AWS Bedrock IAM User Access Key"
             defaultValue={
               settings?.AwsBedrockLLMAccessKey ? "*".repeat(20) : ""
@@ -103,13 +111,13 @@ export default function AwsBedrockLLMOptions({ settings }) {
         </div>
         {useSessionToken && (
           <div className="flex flex-col w-60">
-            <label className="text-white text-sm font-semibold block mb-3">
+            <label className="text-theme-text-primary text-sm font-semibold block mb-3">
               AWS Bedrock Session Token
             </label>
             <input
               type="password"
               name="AwsBedrockLLMSessionToken"
-              className="border-none bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+              className="bg-theme-settings-input-bg text-theme-text-primary placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
               placeholder="AWS Bedrock Session Token"
               defaultValue={
                 settings?.AwsBedrockLLMSessionToken ? "*".repeat(20) : ""
@@ -128,7 +136,7 @@ export default function AwsBedrockLLMOptions({ settings }) {
             name="AwsBedrockLLMRegion"
             defaultValue={settings?.AwsBedrockLLMRegion || "us-west-2"}
             required={true}
-            className="border-none bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+            className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
           >
             {AWS_REGIONS.map((region) => {
               return (
@@ -151,7 +159,7 @@ export default function AwsBedrockLLMOptions({ settings }) {
               <input
                 type="text"
                 name="AwsBedrockLLMModel"
-                className="border-none bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+                className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                 placeholder="Model id from AWS eg: meta.llama3.1-v0.1"
                 defaultValue={settings?.AwsBedrockLLMModel}
                 required={true}
@@ -166,7 +174,7 @@ export default function AwsBedrockLLMOptions({ settings }) {
               <input
                 type="number"
                 name="AwsBedrockLLMTokenLimit"
-                className="border-none bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+                className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                 placeholder="Content window limit (eg: 4096)"
                 min={1}
                 onScroll={(e) => e.target.blur()}
diff --git a/frontend/src/components/LLMSelection/AzureAiOptions/index.jsx b/frontend/src/components/LLMSelection/AzureAiOptions/index.jsx
index c04f9f3fd..341338a1d 100644
--- a/frontend/src/components/LLMSelection/AzureAiOptions/index.jsx
+++ b/frontend/src/components/LLMSelection/AzureAiOptions/index.jsx
@@ -9,7 +9,7 @@ export default function AzureAiOptions({ settings }) {
           <input
             type="url"
             name="AzureOpenAiEndpoint"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="https://my-azure.openai.azure.com"
             defaultValue={settings?.AzureOpenAiEndpoint}
             required={true}
@@ -25,7 +25,7 @@ export default function AzureAiOptions({ settings }) {
           <input
             type="password"
             name="AzureOpenAiKey"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="Azure OpenAI API Key"
             defaultValue={settings?.AzureOpenAiKey ? "*".repeat(20) : ""}
             required={true}
@@ -41,7 +41,7 @@ export default function AzureAiOptions({ settings }) {
           <input
             type="text"
             name="AzureOpenAiModelPref"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="Azure OpenAI chat model deployment name"
             defaultValue={settings?.AzureOpenAiModelPref}
             required={true}
@@ -59,7 +59,7 @@ export default function AzureAiOptions({ settings }) {
           <select
             name="AzureOpenAiTokenLimit"
             defaultValue={settings?.AzureOpenAiTokenLimit || 4096}
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             required={true}
           >
             <option value={4096}>4,096 (gpt-3.5-turbo)</option>
diff --git a/frontend/src/components/LLMSelection/CohereAiOptions/index.jsx b/frontend/src/components/LLMSelection/CohereAiOptions/index.jsx
index 1a564b69a..a87168474 100644
--- a/frontend/src/components/LLMSelection/CohereAiOptions/index.jsx
+++ b/frontend/src/components/LLMSelection/CohereAiOptions/index.jsx
@@ -9,7 +9,7 @@ export default function CohereAiOptions({ settings }) {
           <input
             type="password"
             name="CohereApiKey"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="Cohere API Key"
             defaultValue={settings?.CohereApiKey ? "*".repeat(20) : ""}
             required={true}
@@ -25,7 +25,7 @@ export default function CohereAiOptions({ settings }) {
             name="CohereModelPref"
             defaultValue={settings?.CohereModelPref || "command-r"}
             required={true}
-            className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+            className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
           >
             {[
               "command-r",
diff --git a/frontend/src/components/LLMSelection/DeepSeekOptions/index.jsx b/frontend/src/components/LLMSelection/DeepSeekOptions/index.jsx
index 5c83d65a9..66f402e69 100644
--- a/frontend/src/components/LLMSelection/DeepSeekOptions/index.jsx
+++ b/frontend/src/components/LLMSelection/DeepSeekOptions/index.jsx
@@ -16,7 +16,7 @@ export default function DeepSeekOptions({ settings }) {
         <input
           type="password"
           name="DeepSeekApiKey"
-          className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+          className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
           placeholder="DeepSeek API Key"
           defaultValue={settings?.DeepSeekApiKey ? "*".repeat(20) : ""}
           required={true}
@@ -65,7 +65,7 @@ function DeepSeekModelSelection({ apiKey, settings }) {
         <select
           name="DeepSeekModelPref"
           disabled={true}
-          className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+          className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
         >
           <option disabled={true} selected={true}>
             -- loading available models --
@@ -83,7 +83,7 @@ function DeepSeekModelSelection({ apiKey, settings }) {
       <select
         name="DeepSeekModelPref"
         required={true}
-        className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+        className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
       >
         {models.map((model) => (
           <option
diff --git a/frontend/src/components/LLMSelection/FireworksAiOptions/index.jsx b/frontend/src/components/LLMSelection/FireworksAiOptions/index.jsx
index e61e4fc4b..cc5b2906d 100644
--- a/frontend/src/components/LLMSelection/FireworksAiOptions/index.jsx
+++ b/frontend/src/components/LLMSelection/FireworksAiOptions/index.jsx
@@ -11,7 +11,7 @@ export default function FireworksAiOptions({ settings }) {
         <input
           type="password"
           name="FireworksAiLLMApiKey"
-          className="border-none bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+          className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
           placeholder="Fireworks AI API Key"
           defaultValue={settings?.FireworksAiLLMApiKey ? "*".repeat(20) : ""}
           required={true}
@@ -58,7 +58,7 @@ function FireworksAiModelSelection({ settings }) {
         <select
           name="FireworksAiLLMModelPref"
           disabled={true}
-          className="border-none bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+          className="border-none bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
         >
           <option disabled={true} selected={true}>
             -- loading available models --
@@ -76,7 +76,7 @@ function FireworksAiModelSelection({ settings }) {
       <select
         name="FireworksAiLLMModelPref"
         required={true}
-        className="border-none bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+        className="border-none bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
       >
         {Object.keys(groupedModels)
           .sort()
diff --git a/frontend/src/components/LLMSelection/GeminiLLMOptions/index.jsx b/frontend/src/components/LLMSelection/GeminiLLMOptions/index.jsx
index 5e7a4d785..f3635977a 100644
--- a/frontend/src/components/LLMSelection/GeminiLLMOptions/index.jsx
+++ b/frontend/src/components/LLMSelection/GeminiLLMOptions/index.jsx
@@ -9,7 +9,7 @@ export default function GeminiLLMOptions({ settings }) {
           <input
             type="password"
             name="GeminiLLMApiKey"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="Google Gemini API Key"
             defaultValue={settings?.GeminiLLMApiKey ? "*".repeat(20) : ""}
             required={true}
@@ -28,7 +28,7 @@ export default function GeminiLLMOptions({ settings }) {
                 name="GeminiLLMModelPref"
                 defaultValue={settings?.GeminiLLMModelPref || "gemini-pro"}
                 required={true}
-                className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+                className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
               >
                 <optgroup label="Stable Models">
                   {[
@@ -70,7 +70,7 @@ export default function GeminiLLMOptions({ settings }) {
                   settings?.GeminiSafetySetting || "BLOCK_MEDIUM_AND_ABOVE"
                 }
                 required={true}
-                className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+                className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
               >
                 <option value="BLOCK_NONE">None</option>
                 <option value="BLOCK_ONLY_HIGH">Block few</option>
diff --git a/frontend/src/components/LLMSelection/GenericOpenAiOptions/index.jsx b/frontend/src/components/LLMSelection/GenericOpenAiOptions/index.jsx
index a00db7c02..8e7822f40 100644
--- a/frontend/src/components/LLMSelection/GenericOpenAiOptions/index.jsx
+++ b/frontend/src/components/LLMSelection/GenericOpenAiOptions/index.jsx
@@ -9,7 +9,7 @@ export default function GenericOpenAiOptions({ settings }) {
           <input
             type="url"
             name="GenericOpenAiBasePath"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="eg: https://proxy.openai.com"
             defaultValue={settings?.GenericOpenAiBasePath}
             required={true}
@@ -24,7 +24,7 @@ export default function GenericOpenAiOptions({ settings }) {
           <input
             type="password"
             name="GenericOpenAiKey"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="Generic service API Key"
             defaultValue={settings?.GenericOpenAiKey ? "*".repeat(20) : ""}
             required={false}
@@ -39,7 +39,7 @@ export default function GenericOpenAiOptions({ settings }) {
           <input
             type="text"
             name="GenericOpenAiModelPref"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="Model id used for chat requests"
             defaultValue={settings?.GenericOpenAiModelPref}
             required={true}
@@ -55,7 +55,7 @@ export default function GenericOpenAiOptions({ settings }) {
           <input
             type="number"
             name="GenericOpenAiTokenLimit"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="Content window limit (eg: 4096)"
             min={1}
             onScroll={(e) => e.target.blur()}
@@ -71,7 +71,7 @@ export default function GenericOpenAiOptions({ settings }) {
           <input
             type="number"
             name="GenericOpenAiMaxTokens"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="Max tokens per request (eg: 1024)"
             min={1}
             defaultValue={settings?.GenericOpenAiMaxTokens || 1024}
diff --git a/frontend/src/components/LLMSelection/GroqAiOptions/index.jsx b/frontend/src/components/LLMSelection/GroqAiOptions/index.jsx
index 4dd923d61..43c8f0038 100644
--- a/frontend/src/components/LLMSelection/GroqAiOptions/index.jsx
+++ b/frontend/src/components/LLMSelection/GroqAiOptions/index.jsx
@@ -14,7 +14,7 @@ export default function GroqAiOptions({ settings }) {
         <input
           type="password"
           name="GroqApiKey"
-          className="border-none bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+          className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
           placeholder="Groq API Key"
           defaultValue={settings?.GroqApiKey ? "*".repeat(20) : ""}
           required={true}
@@ -67,7 +67,7 @@ function GroqAIModelSelection({ apiKey, settings }) {
         <select
           name="GroqModelPref"
           disabled={true}
-          className="border-none bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+          className="border-none bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
         >
           <option disabled={true} selected={true}>
             --loading available models--
@@ -88,7 +88,7 @@ function GroqAIModelSelection({ apiKey, settings }) {
       <select
         name="GroqModelPref"
         required={true}
-        className="border-none bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+        className="border-none bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
       >
         {customModels.length > 0 && (
           <optgroup label="Available models">
diff --git a/frontend/src/components/LLMSelection/HuggingFaceOptions/index.jsx b/frontend/src/components/LLMSelection/HuggingFaceOptions/index.jsx
index d4c2fa349..caf259169 100644
--- a/frontend/src/components/LLMSelection/HuggingFaceOptions/index.jsx
+++ b/frontend/src/components/LLMSelection/HuggingFaceOptions/index.jsx
@@ -9,7 +9,7 @@ export default function HuggingFaceOptions({ settings }) {
           <input
             type="url"
             name="HuggingFaceLLMEndpoint"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="https://example.endpoints.huggingface.cloud"
             defaultValue={settings?.HuggingFaceLLMEndpoint}
             required={true}
@@ -24,7 +24,7 @@ export default function HuggingFaceOptions({ settings }) {
           <input
             type="password"
             name="HuggingFaceLLMAccessToken"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="HuggingFace Access Token"
             defaultValue={
               settings?.HuggingFaceLLMAccessToken ? "*".repeat(20) : ""
@@ -41,7 +41,7 @@ export default function HuggingFaceOptions({ settings }) {
           <input
             type="number"
             name="HuggingFaceLLMTokenLimit"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="4096"
             min={1}
             onScroll={(e) => e.target.blur()}
diff --git a/frontend/src/components/LLMSelection/KoboldCPPOptions/index.jsx b/frontend/src/components/LLMSelection/KoboldCPPOptions/index.jsx
index 57fedc62b..cd60a9a2e 100644
--- a/frontend/src/components/LLMSelection/KoboldCPPOptions/index.jsx
+++ b/frontend/src/components/LLMSelection/KoboldCPPOptions/index.jsx
@@ -41,7 +41,7 @@ export default function KoboldCPPOptions({ settings }) {
           <input
             type="number"
             name="KoboldCPPTokenLimit"
-            className="border-none bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="4096"
             min={1}
             value={tokenLimit}
@@ -97,7 +97,7 @@ export default function KoboldCPPOptions({ settings }) {
             <input
               type="url"
               name="KoboldCPPBasePath"
-              className="border-none bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+              className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
               placeholder="http://127.0.0.1:5000/v1"
               value={basePathValue.value}
               required={true}
@@ -153,7 +153,7 @@ function KoboldCPPModelSelection({ settings, basePath = null }) {
         <select
           name="KoboldCPPModelPref"
           disabled={true}
-          className="border-none bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+          className="border-none bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
         >
           <option disabled={true} selected={true}>
             {basePath?.includes("/v1")
@@ -177,7 +177,7 @@ function KoboldCPPModelSelection({ settings, basePath = null }) {
       <select
         name="KoboldCPPModelPref"
         required={true}
-        className="border-none bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+        className="border-none bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
       >
         {customModels.map((model) => (
           <option
diff --git a/frontend/src/components/LLMSelection/LLMItem/index.jsx b/frontend/src/components/LLMSelection/LLMItem/index.jsx
index e96c5f3ea..ef773ff66 100644
--- a/frontend/src/components/LLMSelection/LLMItem/index.jsx
+++ b/frontend/src/components/LLMSelection/LLMItem/index.jsx
@@ -9,8 +9,8 @@ export default function LLMItem({
   return (
     <div
       onClick={() => onClick(value)}
-      className={`w-full p-2 rounded-md hover:cursor-pointer hover:bg-white/10 ${
-        checked ? "bg-white/10" : ""
+      className={`w-full p-2 rounded-md hover:cursor-pointer hover:bg-theme-bg-secondary ${
+        checked ? "bg-theme-bg-secondary" : ""
       }`}
     >
       <input
diff --git a/frontend/src/components/LLMSelection/LMStudioOptions/index.jsx b/frontend/src/components/LLMSelection/LMStudioOptions/index.jsx
index 2f0d95f6e..1d6f8d56c 100644
--- a/frontend/src/components/LLMSelection/LMStudioOptions/index.jsx
+++ b/frontend/src/components/LLMSelection/LMStudioOptions/index.jsx
@@ -56,7 +56,7 @@ export default function LMStudioOptions({ settings, showAlert = false }) {
           <input
             type="number"
             name="LMStudioTokenLimit"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="4096"
             defaultChecked="4096"
             min={1}
@@ -113,7 +113,7 @@ export default function LMStudioOptions({ settings, showAlert = false }) {
             <input
               type="url"
               name="LMStudioBasePath"
-              className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+              className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
               placeholder="http://localhost:1234/v1"
               value={basePathValue.value}
               required={true}
@@ -169,7 +169,7 @@ function LMStudioModelSelection({ settings, basePath = null }) {
         <select
           name="LMStudioModelPref"
           disabled={true}
-          className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+          className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
         >
           <option disabled={true} selected={true}>
             {!!basePath
@@ -193,7 +193,7 @@ function LMStudioModelSelection({ settings, basePath = null }) {
       <select
         name="LMStudioModelPref"
         required={true}
-        className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+        className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
       >
         {customModels.length > 0 && (
           <optgroup label="Your loaded models">
diff --git a/frontend/src/components/LLMSelection/LiteLLMOptions/index.jsx b/frontend/src/components/LLMSelection/LiteLLMOptions/index.jsx
index 2e8792ba9..732a3d1cf 100644
--- a/frontend/src/components/LLMSelection/LiteLLMOptions/index.jsx
+++ b/frontend/src/components/LLMSelection/LiteLLMOptions/index.jsx
@@ -17,7 +17,7 @@ export default function LiteLLMOptions({ settings }) {
           <input
             type="url"
             name="LiteLLMBasePath"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="http://127.0.0.1:4000"
             defaultValue={settings?.LiteLLMBasePath}
             required={true}
@@ -39,7 +39,7 @@ export default function LiteLLMOptions({ settings }) {
           <input
             type="number"
             name="LiteLLMTokenLimit"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="4096"
             min={1}
             onScroll={(e) => e.target.blur()}
@@ -59,7 +59,7 @@ export default function LiteLLMOptions({ settings }) {
           <input
             type="password"
             name="LiteLLMAPIKey"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="sk-mysecretkey"
             defaultValue={settings?.LiteLLMAPIKey ? "*".repeat(20) : ""}
             autoComplete="off"
@@ -105,7 +105,7 @@ function LiteLLMModelSelection({ settings, basePath = null, apiKey = null }) {
         <select
           name="LiteLLMModelPref"
           disabled={true}
-          className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+          className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
         >
           <option disabled={true} selected={true}>
             {basePath?.includes("/v1")
@@ -125,7 +125,7 @@ function LiteLLMModelSelection({ settings, basePath = null, apiKey = null }) {
       <select
         name="LiteLLMModelPref"
         required={true}
-        className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+        className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
       >
         {customModels.length > 0 && (
           <optgroup label="Your loaded models">
diff --git a/frontend/src/components/LLMSelection/LocalAiOptions/index.jsx b/frontend/src/components/LLMSelection/LocalAiOptions/index.jsx
index 7ecb0efb5..a9cde3c27 100644
--- a/frontend/src/components/LLMSelection/LocalAiOptions/index.jsx
+++ b/frontend/src/components/LLMSelection/LocalAiOptions/index.jsx
@@ -56,7 +56,7 @@ export default function LocalAiOptions({ settings, showAlert = false }) {
               <input
                 type="number"
                 name="LocalAiTokenLimit"
-                className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+                className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                 placeholder="4096"
                 min={1}
                 onScroll={(e) => e.target.blur()}
@@ -77,7 +77,7 @@ export default function LocalAiOptions({ settings, showAlert = false }) {
           <input
             type="password"
             name="LocalAiApiKey"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="sk-mysecretkey"
             defaultValue={settings?.LocalAiApiKey ? "*".repeat(20) : ""}
             autoComplete="off"
@@ -128,7 +128,7 @@ export default function LocalAiOptions({ settings, showAlert = false }) {
             <input
               type="url"
               name="LocalAiBasePath"
-              className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+              className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
               placeholder="http://localhost:8080/v1"
               value={basePathValue.value}
               required={true}
@@ -176,7 +176,7 @@ function LocalAIModelSelection({ settings, basePath = null, apiKey = null }) {
         <select
           name="LocalAiModelPref"
           disabled={true}
-          className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+          className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
         >
           <option disabled={true} selected={true}>
             {basePath?.includes("/v1")
@@ -196,7 +196,7 @@ function LocalAIModelSelection({ settings, basePath = null, apiKey = null }) {
       <select
         name="LocalAiModelPref"
         required={true}
-        className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+        className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
       >
         {customModels.length > 0 && (
           <optgroup label="Your loaded models">
diff --git a/frontend/src/components/LLMSelection/MistralOptions/index.jsx b/frontend/src/components/LLMSelection/MistralOptions/index.jsx
index d0172fa53..5d29bd960 100644
--- a/frontend/src/components/LLMSelection/MistralOptions/index.jsx
+++ b/frontend/src/components/LLMSelection/MistralOptions/index.jsx
@@ -14,7 +14,7 @@ export default function MistralOptions({ settings }) {
         <input
           type="password"
           name="MistralApiKey"
-          className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+          className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
           placeholder="Mistral API Key"
           defaultValue={settings?.MistralApiKey ? "*".repeat(20) : ""}
           required={true}
@@ -62,7 +62,7 @@ function MistralModelSelection({ apiKey, settings }) {
         <select
           name="MistralModelPref"
           disabled={true}
-          className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+          className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
         >
           <option disabled={true} selected={true}>
             {!!apiKey
@@ -82,7 +82,7 @@ function MistralModelSelection({ apiKey, settings }) {
       <select
         name="MistralModelPref"
         required={true}
-        className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+        className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
       >
         {customModels.length > 0 && (
           <optgroup label="Available Mistral Models">
diff --git a/frontend/src/components/LLMSelection/NativeLLMOptions/index.jsx b/frontend/src/components/LLMSelection/NativeLLMOptions/index.jsx
index 5e5548d3a..1f31123b4 100644
--- a/frontend/src/components/LLMSelection/NativeLLMOptions/index.jsx
+++ b/frontend/src/components/LLMSelection/NativeLLMOptions/index.jsx
@@ -43,7 +43,7 @@ function NativeModelSelection({ settings }) {
         <select
           name="NativeLLMModelPref"
           disabled={true}
-          className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+          className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
         >
           <option disabled={true} selected={true}>
             -- waiting for models --
@@ -62,7 +62,7 @@ function NativeModelSelection({ settings }) {
         <select
           name="NativeLLMModelPref"
           required={true}
-          className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+          className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
         >
           {customModels.length > 0 && (
             <optgroup label="Your loaded models">
@@ -88,7 +88,7 @@ function NativeModelSelection({ settings }) {
         <input
           type="number"
           name="NativeLLMTokenLimit"
-          className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+          className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
           placeholder="4096"
           min={1}
           onScroll={(e) => e.target.blur()}
diff --git a/frontend/src/components/LLMSelection/NovitaLLMOptions/index.jsx b/frontend/src/components/LLMSelection/NovitaLLMOptions/index.jsx
index 26e1fe04b..f1ca7f914 100644
--- a/frontend/src/components/LLMSelection/NovitaLLMOptions/index.jsx
+++ b/frontend/src/components/LLMSelection/NovitaLLMOptions/index.jsx
@@ -4,16 +4,16 @@ import { useState, useEffect } from "react";
 
 export default function NovitaLLMOptions({ settings }) {
   return (
-    <div className="flex flex-col gap-y-4 mt-1.5">
-      <div className="flex gap-[36px]">
+    <div className="w-full flex flex-col gap-y-7">
+      <div className="w-full flex items-start gap-[36px] mt-1.5">
         <div className="flex flex-col w-60">
-          <label className="text-white text-sm font-semibold block mb-3">
+          <label className="text-theme-text-primary text-sm font-semibold block mb-3">
             Novita API Key
           </label>
           <input
             type="password"
             name="NovitaLLMApiKey"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-theme-text-primary placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="Novita API Key"
             defaultValue={settings?.NovitaLLMApiKey ? "*".repeat(20) : ""}
             required={true}
@@ -35,27 +35,29 @@ function AdvancedControls({ settings }) {
 
   return (
     <div className="flex flex-col gap-y-4">
-      <button
-        type="button"
-        onClick={() => setShowAdvancedControls(!showAdvancedControls)}
-        className="text-white hover:text-white/70 flex items-center text-sm"
-      >
-        {showAdvancedControls ? "Hide" : "Show"} advanced controls
-        {showAdvancedControls ? (
-          <CaretUp size={14} className="ml-1" />
-        ) : (
-          <CaretDown size={14} className="ml-1" />
-        )}
-      </button>
+      <div className="flex justify-start">
+        <button
+          type="button"
+          onClick={() => setShowAdvancedControls(!showAdvancedControls)}
+          className="text-theme-text-primary hover:text-theme-text-secondary flex items-center text-sm"
+        >
+          {showAdvancedControls ? "Hide" : "Show"} advanced settings
+          {showAdvancedControls ? (
+            <CaretUp size={14} className="ml-1" />
+          ) : (
+            <CaretDown size={14} className="ml-1" />
+          )}
+        </button>
+      </div>
       <div hidden={!showAdvancedControls}>
         <div className="flex flex-col w-60">
-          <label className="text-white text-sm font-semibold block mb-3">
+          <label className="text-theme-text-primary text-sm font-semibold block mb-3">
             Stream Timeout (ms)
           </label>
           <input
             type="number"
             name="NovitaLLMTimeout"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-theme-text-primary placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="Timeout value between token responses to auto-timeout the stream"
             defaultValue={settings?.NovitaLLMTimeout ?? 500}
             autoComplete="off"
@@ -63,6 +65,9 @@ function AdvancedControls({ settings }) {
             min={500}
             step={1}
           />
+          <p className="text-xs leading-[18px] font-base text-theme-text-primary text-opacity-60 mt-2">
+            Timeout value between token responses to auto-timeout the stream.
+          </p>
         </div>
       </div>
     </div>
@@ -83,10 +88,8 @@ function NovitaModelSelection({ settings }) {
           acc[model.organization].push(model);
           return acc;
         }, {});
-
         setGroupedModels(modelsByOrganization);
       }
-
       setLoading(false);
     }
     findCustomModels();
@@ -95,13 +98,13 @@ function NovitaModelSelection({ settings }) {
   if (loading || Object.keys(groupedModels).length === 0) {
     return (
       <div className="flex flex-col w-60">
-        <label className="text-white text-sm font-semibold block mb-3">
+        <label className="text-theme-text-primary text-sm font-semibold block mb-3">
           Chat Model Selection
         </label>
         <select
           name="NovitaLLMModelPref"
           disabled={true}
-          className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+          className="bg-theme-settings-input-bg text-theme-text-primary border-theme-border text-sm rounded-lg block w-full p-2.5"
         >
           <option disabled={true} selected={true}>
             -- loading available models --
@@ -113,13 +116,13 @@ function NovitaModelSelection({ settings }) {
 
   return (
     <div className="flex flex-col w-60">
-      <label className="text-white text-sm font-semibold block mb-3">
+      <label className="text-theme-text-primary text-sm font-semibold block mb-3">
         Chat Model Selection
       </label>
       <select
         name="NovitaLLMModelPref"
         required={true}
-        className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+        className="bg-theme-settings-input-bg text-theme-text-primary border-theme-border text-sm rounded-lg block w-full p-2.5"
       >
         {Object.keys(groupedModels)
           .sort()
diff --git a/frontend/src/components/LLMSelection/OllamaLLMOptions/index.jsx b/frontend/src/components/LLMSelection/OllamaLLMOptions/index.jsx
index 9bd95bca7..6f3c98b74 100644
--- a/frontend/src/components/LLMSelection/OllamaLLMOptions/index.jsx
+++ b/frontend/src/components/LLMSelection/OllamaLLMOptions/index.jsx
@@ -40,7 +40,7 @@ export default function OllamaLLMOptions({ settings }) {
           <input
             type="number"
             name="OllamaLLMTokenLimit"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="4096"
             defaultChecked="4096"
             min={1}
@@ -97,7 +97,7 @@ export default function OllamaLLMOptions({ settings }) {
             <input
               type="url"
               name="OllamaLLMBasePath"
-              className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+              className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
               placeholder="http://127.0.0.1:11434"
               value={basePathValue.value}
               required={true}
@@ -118,7 +118,7 @@ export default function OllamaLLMOptions({ settings }) {
             <select
               name="OllamaLLMKeepAliveSeconds"
               required={true}
-              className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+              className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
               defaultValue={settings?.OllamaLLMKeepAliveSeconds ?? "300"}
             >
               <option value="0">No cache</option>
@@ -153,7 +153,7 @@ export default function OllamaLLMOptions({ settings }) {
             <select
               name="OllamaLLMPerformanceMode"
               required={true}
-              className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+              className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
               value={performanceMode}
               onChange={(e) => setPerformanceMode(e.target.value)}
             >
@@ -223,7 +223,7 @@ function OllamaLLMModelSelection({ settings, basePath = null }) {
         <select
           name="OllamaLLMModelPref"
           disabled={true}
-          className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+          className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
         >
           <option disabled={true} selected={true}>
             {!!basePath
@@ -247,7 +247,7 @@ function OllamaLLMModelSelection({ settings, basePath = null }) {
       <select
         name="OllamaLLMModelPref"
         required={true}
-        className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+        className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
       >
         {customModels.length > 0 && (
           <optgroup label="Your loaded models">
diff --git a/frontend/src/components/LLMSelection/OpenAiOptions/index.jsx b/frontend/src/components/LLMSelection/OpenAiOptions/index.jsx
index f52965cd4..6b2611233 100644
--- a/frontend/src/components/LLMSelection/OpenAiOptions/index.jsx
+++ b/frontend/src/components/LLMSelection/OpenAiOptions/index.jsx
@@ -14,7 +14,7 @@ export default function OpenAiOptions({ settings }) {
         <input
           type="password"
           name="OpenAiKey"
-          className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+          className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
           placeholder="OpenAI API Key"
           defaultValue={settings?.OpenAiKey ? "*".repeat(20) : ""}
           required={true}
@@ -66,7 +66,7 @@ function OpenAIModelSelection({ apiKey, settings }) {
         <select
           name="OpenAiModelPref"
           disabled={true}
-          className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+          className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
         >
           <option disabled={true} selected={true}>
             -- loading available models --
@@ -84,7 +84,7 @@ function OpenAIModelSelection({ apiKey, settings }) {
       <select
         name="OpenAiModelPref"
         required={true}
-        className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+        className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
       >
         {Object.keys(groupedModels)
           .sort()
diff --git a/frontend/src/components/LLMSelection/OpenRouterOptions/index.jsx b/frontend/src/components/LLMSelection/OpenRouterOptions/index.jsx
index f19956645..369bd0501 100644
--- a/frontend/src/components/LLMSelection/OpenRouterOptions/index.jsx
+++ b/frontend/src/components/LLMSelection/OpenRouterOptions/index.jsx
@@ -13,7 +13,7 @@ export default function OpenRouterOptions({ settings }) {
           <input
             type="password"
             name="OpenRouterApiKey"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="OpenRouter API Key"
             defaultValue={settings?.OpenRouterApiKey ? "*".repeat(20) : ""}
             required={true}
@@ -55,7 +55,7 @@ function AdvancedControls({ settings }) {
           <input
             type="number"
             name="OpenRouterTimeout"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="Timeout value between token responses to auto-timeout the stream"
             defaultValue={settings?.OpenRouterTimeout ?? 500}
             autoComplete="off"
@@ -101,7 +101,7 @@ function OpenRouterModelSelection({ settings }) {
         <select
           name="OpenRouterModelPref"
           disabled={true}
-          className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+          className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
         >
           <option disabled={true} selected={true}>
             -- loading available models --
@@ -119,7 +119,7 @@ function OpenRouterModelSelection({ settings }) {
       <select
         name="OpenRouterModelPref"
         required={true}
-        className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+        className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
       >
         {Object.keys(groupedModels)
           .sort()
diff --git a/frontend/src/components/LLMSelection/PerplexityOptions/index.jsx b/frontend/src/components/LLMSelection/PerplexityOptions/index.jsx
index 8f4d1d05b..fc2c23f89 100644
--- a/frontend/src/components/LLMSelection/PerplexityOptions/index.jsx
+++ b/frontend/src/components/LLMSelection/PerplexityOptions/index.jsx
@@ -11,7 +11,7 @@ export default function PerplexityOptions({ settings }) {
         <input
           type="password"
           name="PerplexityApiKey"
-          className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+          className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
           placeholder="Perplexity API Key"
           defaultValue={settings?.PerplexityApiKey ? "*".repeat(20) : ""}
           required={true}
@@ -49,7 +49,7 @@ function PerplexityModelSelection({ settings }) {
         <select
           name="PerplexityModelPref"
           disabled={true}
-          className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+          className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
         >
           <option disabled={true} selected={true}>
             -- loading available models --
@@ -67,7 +67,7 @@ function PerplexityModelSelection({ settings }) {
       <select
         name="PerplexityModelPref"
         required={true}
-        className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+        className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
       >
         {customModels.length > 0 && (
           <optgroup label="Available Perplexity Models">
diff --git a/frontend/src/components/LLMSelection/TextGenWebUIOptions/index.jsx b/frontend/src/components/LLMSelection/TextGenWebUIOptions/index.jsx
index 55e9c86fc..e64cd2cd5 100644
--- a/frontend/src/components/LLMSelection/TextGenWebUIOptions/index.jsx
+++ b/frontend/src/components/LLMSelection/TextGenWebUIOptions/index.jsx
@@ -8,7 +8,7 @@ export default function TextGenWebUIOptions({ settings }) {
         <input
           type="url"
           name="TextGenWebUIBasePath"
-          className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+          className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
           placeholder="http://127.0.0.1:5000/v1"
           defaultValue={settings?.TextGenWebUIBasePath}
           required={true}
@@ -23,7 +23,7 @@ export default function TextGenWebUIOptions({ settings }) {
         <input
           type="number"
           name="TextGenWebUITokenLimit"
-          className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+          className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
           placeholder="Content window limit (eg: 4096)"
           min={1}
           onScroll={(e) => e.target.blur()}
@@ -39,7 +39,7 @@ export default function TextGenWebUIOptions({ settings }) {
         <input
           type="password"
           name="TextGenWebUIAPIKey"
-          className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+          className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
           placeholder="TextGen Web UI API Key"
           defaultValue={settings?.TextGenWebUIAPIKey ? "*".repeat(20) : ""}
           autoComplete="off"
diff --git a/frontend/src/components/LLMSelection/TogetherAiOptions/index.jsx b/frontend/src/components/LLMSelection/TogetherAiOptions/index.jsx
index ef1651c89..4765633cf 100644
--- a/frontend/src/components/LLMSelection/TogetherAiOptions/index.jsx
+++ b/frontend/src/components/LLMSelection/TogetherAiOptions/index.jsx
@@ -11,7 +11,7 @@ export default function TogetherAiOptions({ settings }) {
         <input
           type="password"
           name="TogetherAiApiKey"
-          className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+          className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
           placeholder="Together AI API Key"
           defaultValue={settings?.TogetherAiApiKey ? "*".repeat(20) : ""}
           required={true}
@@ -58,7 +58,7 @@ function TogetherAiModelSelection({ settings }) {
         <select
           name="TogetherAiModelPref"
           disabled={true}
-          className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+          className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
         >
           <option disabled={true} selected={true}>
             -- loading available models --
@@ -76,7 +76,7 @@ function TogetherAiModelSelection({ settings }) {
       <select
         name="TogetherAiModelPref"
         required={true}
-        className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+        className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
       >
         {Object.keys(groupedModels)
           .sort()
diff --git a/frontend/src/components/LLMSelection/XAiLLMOptions/index.jsx b/frontend/src/components/LLMSelection/XAiLLMOptions/index.jsx
index d760a8ba4..a17cf1385 100644
--- a/frontend/src/components/LLMSelection/XAiLLMOptions/index.jsx
+++ b/frontend/src/components/LLMSelection/XAiLLMOptions/index.jsx
@@ -14,7 +14,7 @@ export default function XAILLMOptions({ settings }) {
         <input
           type="password"
           name="XAIApiKey"
-          className="border-none bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+          className="bg-theme-settings-input-bg text-theme-text-primary placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
           placeholder="xAI API Key"
           defaultValue={settings?.XAIApiKey ? "*".repeat(20) : ""}
           required={true}
@@ -61,19 +61,19 @@ function XAIModelSelection({ apiKey, settings }) {
   if (loading) {
     return (
       <div className="flex flex-col w-60">
-        <label className="text-white text-sm font-semibold block mb-3">
+        <label className="text-theme-text-primary text-sm font-semibold block mb-3">
           Chat Model Selection
         </label>
         <select
           name="XAIModelPref"
           disabled={true}
-          className="border-none bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+          className="bg-theme-settings-input-bg text-theme-text-primary border-theme-border text-sm rounded-lg block w-full p-2.5"
         >
           <option disabled={true} selected={true}>
             --loading available models--
           </option>
         </select>
-        <p className="text-xs leading-[18px] font-base text-white text-opacity-60 mt-2">
+        <p className="text-xs leading-[18px] font-base text-theme-text-primary opacity-60 mt-2">
           Enter a valid API key to view all available models for your account.
         </p>
       </div>
@@ -82,13 +82,13 @@ function XAIModelSelection({ apiKey, settings }) {
 
   return (
     <div className="flex flex-col w-60">
-      <label className="text-white text-sm font-semibold block mb-3">
+      <label className="text-theme-text-primary text-sm font-semibold block mb-3">
         Chat Model Selection
       </label>
       <select
         name="XAIModelPref"
         required={true}
-        className="border-none bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+        className="bg-theme-settings-input-bg text-theme-text-primary border-theme-border text-sm rounded-lg block w-full p-2.5"
       >
         {customModels.length > 0 && (
           <optgroup label="Available models">
@@ -106,7 +106,7 @@ function XAIModelSelection({ apiKey, settings }) {
           </optgroup>
         )}
       </select>
-      <p className="text-xs leading-[18px] font-base text-white text-opacity-60 mt-2">
+      <p className="text-xs leading-[18px] font-base text-theme-text-primary opacity-60 mt-2">
         Select the xAI model you want to use for your conversations.
       </p>
     </div>
diff --git a/frontend/src/components/ModalWrapper/index.jsx b/frontend/src/components/ModalWrapper/index.jsx
index b780e5731..7c45c22c5 100644
--- a/frontend/src/components/ModalWrapper/index.jsx
+++ b/frontend/src/components/ModalWrapper/index.jsx
@@ -1,7 +1,7 @@
 import { createPortal } from "react-dom";
 /**
  * @typedef {Object} ModalWrapperProps
- * @property {import("react").ReactComponentElement} children - The DOM/JSX to render 
+ * @property {import("react").ReactComponentElement} children - The DOM/JSX to render
  * @property {boolean} isOpen - Option that renders the modal
  * @property {boolean} noPortal - (default: false) Used for creating sub-DOM modals that need to be rendered as a child element instead of a modal placed at the root
  * Note: This can impact the bg-overlay presentation due to conflicting DOM positions so if using this property you should
@@ -17,14 +17,14 @@ export default function ModalWrapper({ children, isOpen, noPortal = false }) {
 
   if (noPortal) {
     return (
-      <div className="bg-black/60 backdrop-blur-sm fixed top-0 left-0 outline-none w-screen h-screen flex items-center justify-center z-30">
+      <div className="bg-black/60 backdrop-blur-sm fixed top-0 left-0 outline-none w-screen h-screen flex items-center justify-center z-99">
         {children}
       </div>
     );
   }
 
   return createPortal(
-    <div className="bg-black/60 backdrop-blur-sm fixed top-0 left-0 outline-none w-screen h-screen flex items-center justify-center z-30">
+    <div className="bg-black/60 backdrop-blur-sm fixed top-0 left-0 outline-none w-screen h-screen flex items-center justify-center z-99">
       {children}
     </div>,
     document.getElementById("root")
diff --git a/frontend/src/components/Modals/DisplayRecoveryCodeModal/index.jsx b/frontend/src/components/Modals/DisplayRecoveryCodeModal/index.jsx
index 4a3751385..f8f56eb29 100644
--- a/frontend/src/components/Modals/DisplayRecoveryCodeModal/index.jsx
+++ b/frontend/src/components/Modals/DisplayRecoveryCodeModal/index.jsx
@@ -2,6 +2,7 @@ import showToast from "@/utils/toast";
 import { DownloadSimple, Key } from "@phosphor-icons/react";
 import { saveAs } from "file-saver";
 import { useState } from "react";
+import ModalWrapper from "@/components/ModalWrapper";
 
 export default function RecoveryCodeModal({
   recoveryCodes,
@@ -32,55 +33,59 @@ export default function RecoveryCodeModal({
   };
 
   return (
-    <div className="inline-block bg-secondary rounded-lg text-left overflow-hidden shadow-xl transform transition-all border-2 border-[#BCC9DB]/10 w-[600px] mx-4">
-      <div className="md:py-[35px] md:px-[50px] py-[28px] px-[20px]">
-        <div className="flex gap-x-2">
-          <Key size={24} className="text-white" weight="bold" />
-          <h3
-            className="text-lg leading-6 font-medium text-white"
-            id="modal-headline"
-          >
-            Recovery Codes
-          </h3>
+    <ModalWrapper isOpen={true}>
+      <div className="w-full max-w-2xl bg-theme-bg-secondary rounded-lg shadow border-2 border-theme-modal-border overflow-hidden">
+        <div className="relative p-6 border-b rounded-t border-theme-modal-border">
+          <div className="w-full flex gap-x-2 items-center">
+            <Key size={24} className="text-white" weight="bold" />
+            <h3 className="text-xl font-semibold text-white overflow-hidden overflow-ellipsis whitespace-nowrap">
+              Recovery Codes
+            </h3>
+          </div>
         </div>
-        <div className="mt-4">
-          <p className="text-sm text-white flex flex-col">
-            In order to reset your password in the future, you will need these
-            recovery codes. Download or copy your recovery codes to save them.{" "}
-            <br />
-            <b className="mt-4">These recovery codes are only shown once!</b>
-          </p>
-          <div
-            className="bg-dark-highlight text-white hover:text-primary-button
-                 flex items-center justify-center rounded-md mt-6 cursor-pointer"
-            onClick={handleCopyToClipboard}
-          >
-            <ul className="space-y-2 md:p-6 p-4">
-              {recoveryCodes.map((code, index) => (
-                <li key={index} className="md:text-sm text-xs">
-                  {code}
-                </li>
-              ))}
-            </ul>
+        <div
+          className="h-full w-full overflow-y-auto"
+          style={{ maxHeight: "calc(100vh - 200px)" }}
+        >
+          <div className="py-7 px-9 space-y-2 flex-col">
+            <p className="text-sm text-white flex flex-col">
+              In order to reset your password in the future, you will need these
+              recovery codes. Download or copy your recovery codes to save them.{" "}
+              <br />
+              <b className="mt-4">These recovery codes are only shown once!</b>
+            </p>
+            <div
+              className="bg-theme-settings-input-bg text-white hover:text-primary-button
+                   flex items-center justify-center rounded-md mt-6 cursor-pointer"
+              onClick={handleCopyToClipboard}
+            >
+              <ul className="space-y-2 md:p-6 p-4">
+                {recoveryCodes.map((code, index) => (
+                  <li key={index} className="md:text-sm text-xs">
+                    {code}
+                  </li>
+                ))}
+              </ul>
+            </div>
+          </div>
+          <div className="flex w-full justify-end items-center p-6 space-x-2 border-t border-theme-modal-border rounded-b">
+            <button
+              type="button"
+              className="transition-all duration-300 bg-white text-black hover:opacity-60 px-4 py-2 rounded-lg text-sm flex items-center gap-x-2"
+              onClick={downloadClicked ? handleClose : downloadRecoveryCodes}
+            >
+              {downloadClicked ? (
+                "Close"
+              ) : (
+                <>
+                  <DownloadSimple weight="bold" size={18} />
+                  <p>Download</p>
+                </>
+              )}
+            </button>
           </div>
         </div>
       </div>
-      <div className="flex w-full justify-center items-center p-3 space-x-2 rounded-b border-gray-500/50 -mt-4 mb-4">
-        <button
-          type="button"
-          className="transition-all duration-300 text-xs md:w-[500px] md:h-[34px] h-[48px] w-full m-2 font-semibold rounded-lg bg-primary-button hover:bg-secondary border-2 border-transparent hover:border-primary-button hover:text-white whitespace-nowrap shadow-[0_4px_14px_rgba(0,0,0,0.25)] flex justify-center items-center gap-x-2"
-          onClick={downloadClicked ? handleClose : downloadRecoveryCodes}
-        >
-          {downloadClicked ? (
-            "Close"
-          ) : (
-            <>
-              <DownloadSimple weight="bold" size={18} />
-              <p>Download</p>
-            </>
-          )}
-        </button>
-      </div>
-    </div>
+    </ModalWrapper>
   );
 }
diff --git a/frontend/src/components/Modals/ManageWorkspace/DataConnectors/ConnectorOption/index.jsx b/frontend/src/components/Modals/ManageWorkspace/DataConnectors/ConnectorOption/index.jsx
index e0b10e050..ad1211e98 100644
--- a/frontend/src/components/Modals/ManageWorkspace/DataConnectors/ConnectorOption/index.jsx
+++ b/frontend/src/components/Modals/ManageWorkspace/DataConnectors/ConnectorOption/index.jsx
@@ -9,8 +9,8 @@ export default function ConnectorOption({
   return (
     <button
       onClick={() => setSelectedConnector(slug)}
-      className={`flex text-left gap-x-3.5 items-center py-2 px-4 hover:bg-white/10 ${
-        selectedConnector === slug ? "bg-white/10" : ""
+      className={`flex text-left gap-x-3.5 items-center py-2 px-4 hover:bg-theme-file-picker-hover ${
+        selectedConnector === slug ? "bg-theme-file-picker-hover" : ""
       } rounded-lg cursor-pointer w-full`}
     >
       <img src={image} alt={name} className="w-[40px] h-[40px] rounded-md" />
diff --git a/frontend/src/components/Modals/ManageWorkspace/DataConnectors/Connectors/Confluence/index.jsx b/frontend/src/components/Modals/ManageWorkspace/DataConnectors/Connectors/Confluence/index.jsx
index 736f2cded..77158dc9b 100644
--- a/frontend/src/components/Modals/ManageWorkspace/DataConnectors/Connectors/Confluence/index.jsx
+++ b/frontend/src/components/Modals/ManageWorkspace/DataConnectors/Connectors/Confluence/index.jsx
@@ -58,18 +58,18 @@ export default function ConfluenceOptions() {
               <div className="flex flex-col pr-10">
                 <div className="flex flex-col gap-y-1 mb-4">
                   <label className="text-white text-sm font-bold flex gap-x-2 items-center">
-                    <p className="font-bold text-white">
+                    <p className="font-bold text-theme-text-primary">
                       Confluence deployment type
                     </p>
                   </label>
-                  <p className="text-xs font-normal text-white/50">
+                  <p className="text-xs font-normal text-theme-text-secondary">
                     Determine if your Confluence instance is hosted on Atlassian
                     cloud or self-hosted.
                   </p>
                 </div>
                 <select
                   name="isCloud"
-                  className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+                  className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                   required={true}
                   autoComplete="off"
                   spellCheck={false}
@@ -85,14 +85,14 @@ export default function ConfluenceOptions() {
                   <label className="text-white text-sm font-bold flex gap-x-2 items-center">
                     <p className="font-bold text-white">Confluence base URL</p>
                   </label>
-                  <p className="text-xs font-normal text-white/50">
+                  <p className="text-xs font-normal text-theme-text-secondary">
                     This is the base URL of your Confluence space.
                   </p>
                 </div>
                 <input
                   type="url"
                   name="baseUrl"
-                  className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+                  className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                   placeholder="eg: https://example.atlassian.net, http://localhost:8211, etc..."
                   required={true}
                   autoComplete="off"
@@ -104,7 +104,7 @@ export default function ConfluenceOptions() {
                   <label className="text-white text-sm font-bold">
                     Confluence space key
                   </label>
-                  <p className="text-xs font-normal text-white/50">
+                  <p className="text-xs font-normal text-theme-text-secondary">
                     This is the spaces key of your confluence instance that will
                     be used. Usually begins with ~
                   </p>
@@ -112,7 +112,7 @@ export default function ConfluenceOptions() {
                 <input
                   type="text"
                   name="spaceKey"
-                  className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+                  className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                   placeholder="eg: ~7120208c08555d52224113949698b933a3bb56"
                   required={true}
                   autoComplete="off"
@@ -124,14 +124,14 @@ export default function ConfluenceOptions() {
                   <label className="text-white text-sm font-bold">
                     Confluence Username
                   </label>
-                  <p className="text-xs font-normal text-white/50">
+                  <p className="text-xs font-normal text-theme-text-secondary">
                     Your Confluence username.
                   </p>
                 </div>
                 <input
                   type="text"
                   name="username"
-                  className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+                  className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                   placeholder="jdoe@example.com"
                   required={true}
                   autoComplete="off"
@@ -153,7 +153,7 @@ export default function ConfluenceOptions() {
                     <Tooltip
                       delayHide={300}
                       id="access-token-tooltip"
-                      className="max-w-xs"
+                      className="max-w-xs z-99"
                       clickable={true}
                     >
                       <p className="text-sm">
@@ -172,14 +172,14 @@ export default function ConfluenceOptions() {
                       </p>
                     </Tooltip>
                   </label>
-                  <p className="text-xs font-normal text-white/50">
+                  <p className="text-xs font-normal text-theme-text-secondary">
                     Access token for authentication.
                   </p>
                 </div>
                 <input
                   type="password"
                   name="accessToken"
-                  className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+                  className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                   placeholder="abcd1234"
                   required={true}
                   autoComplete="off"
@@ -198,7 +198,7 @@ export default function ConfluenceOptions() {
               {loading ? "Collecting pages..." : "Submit"}
             </button>
             {loading && (
-              <p className="text-xs text-white/50">
+              <p className="text-xs text-theme-text-secondary">
                 Once complete, all pages will be available for embedding into
                 workspaces.
               </p>
diff --git a/frontend/src/components/Modals/ManageWorkspace/DataConnectors/Connectors/Github/index.jsx b/frontend/src/components/Modals/ManageWorkspace/DataConnectors/Connectors/Github/index.jsx
index 8b10f664b..4cc23e30d 100644
--- a/frontend/src/components/Modals/ManageWorkspace/DataConnectors/Connectors/Github/index.jsx
+++ b/frontend/src/components/Modals/ManageWorkspace/DataConnectors/Connectors/Github/index.jsx
@@ -70,14 +70,14 @@ export default function GithubOptions() {
                   <label className="text-white text-sm font-bold">
                     GitHub Repo URL
                   </label>
-                  <p className="text-xs font-normal text-white/50">
+                  <p className="text-xs font-normal text-theme-text-secondary">
                     Url of the GitHub repo you wish to collect.
                   </p>
                 </div>
                 <input
                   type="url"
                   name="repo"
-                  className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+                  className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                   placeholder="https://github.com/Mintplex-Labs/anything-llm"
                   required={true}
                   autoComplete="off"
@@ -90,19 +90,21 @@ export default function GithubOptions() {
                 <div className="flex flex-col gap-y-1 mb-4">
                   <label className="text-white font-bold text-sm flex gap-x-2 items-center">
                     <p className="font-bold text-white">Github Access Token</p>{" "}
-                    <p className="text-xs text-white/50 font-light flex items-center">
-                      optional
+                    <p className="text-xs font-light flex items-center">
+                      <span className="text-theme-text-secondary">
+                        optional
+                      </span>
                       <PATTooltip accessToken={accessToken} />
                     </p>
                   </label>
-                  <p className="text-xs font-normal text-white/50">
+                  <p className="text-xs font-normal text-theme-text-secondary">
                     Access Token to prevent rate limiting.
                   </p>
                 </div>
                 <input
                   type="text"
                   name="accessToken"
-                  className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+                  className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                   placeholder="github_pat_1234_abcdefg"
                   required={false}
                   autoComplete="off"
@@ -122,7 +124,7 @@ export default function GithubOptions() {
                 <label className="text-white text-sm flex gap-x-2 items-center">
                   <p className="text-white text-sm font-bold">File Ignores</p>
                 </label>
-                <p className="text-xs font-normal text-white/50">
+                <p className="text-xs font-normal text-theme-text-secondary">
                   List in .gitignore format to ignore specific files during
                   collection. Press enter after each entry you want to save.
                 </p>
@@ -133,9 +135,9 @@ export default function GithubOptions() {
                 name="ignores"
                 placeholder="!*.js, images/*, .DS_Store, bin/*"
                 classNames={{
-                  tag: "bg-blue-300/10 text-zinc-800",
+                  tag: "bg-theme-settings-input-bg light:bg-black/10 bg-blue-300/10 text-zinc-800",
                   input:
-                    "flex bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none",
+                    "flex p-1 !bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none",
                 }}
               />
             </div>
@@ -191,14 +193,14 @@ function GitHubBranchSelection({ repo, accessToken }) {
       <div className="flex flex-col w-60">
         <div className="flex flex-col gap-y-1 mb-4">
           <label className="text-white text-sm font-bold">Branch</label>
-          <p className="text-xs font-normal text-white/50">
+          <p className="text-xs font-normal text-theme-text-secondary">
             Branch you wish to collect files from.
           </p>
         </div>
         <select
           name="branch"
           required={true}
-          className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+          className="bg-theme-settings-input-bg border-gray-500 text-white focus:outline-primary-button active:outline-primary-button outline-none text-sm rounded-lg block w-full p-2.5"
         >
           <option disabled={true} selected={true}>
             -- loading available branches --
@@ -212,14 +214,14 @@ function GitHubBranchSelection({ repo, accessToken }) {
     <div className="flex flex-col w-60">
       <div className="flex flex-col gap-y-1 mb-4">
         <label className="text-white text-sm font-bold">Branch</label>
-        <p className="text-xs font-normal text-white/50">
+        <p className="text-xs font-normal text-theme-text-secondary">
           Branch you wish to collect files from.
         </p>
       </div>
       <select
         name="branch"
         required={true}
-        className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+        className="bg-theme-settings-input-bg border-gray-500 text-white focus:outline-primary-button active:outline-primary-button outline-none text-sm rounded-lg block w-full p-2.5"
       >
         {allBranches.map((branch) => {
           return (
@@ -276,7 +278,7 @@ function PATTooltip({ accessToken }) {
       <Tooltip
         delayHide={300}
         id="access-token-tooltip"
-        className="max-w-xs"
+        className="max-w-xs z-99"
         clickable={true}
       >
         <p className="text-sm">
diff --git a/frontend/src/components/Modals/ManageWorkspace/DataConnectors/Connectors/Gitlab/index.jsx b/frontend/src/components/Modals/ManageWorkspace/DataConnectors/Connectors/Gitlab/index.jsx
index 29522edc7..a820ac3ca 100644
--- a/frontend/src/components/Modals/ManageWorkspace/DataConnectors/Connectors/Gitlab/index.jsx
+++ b/frontend/src/components/Modals/ManageWorkspace/DataConnectors/Connectors/Gitlab/index.jsx
@@ -24,11 +24,10 @@ export default function GitlabOptions() {
     try {
       setLoading(true);
       showToast(
-        `Fetching all files for repo ${repo} - this may take a while.`,
+        "Fetching all files for repo - this may take a while.",
         "info",
         { clear: true, autoClose: false }
       );
-
       const { data, error } = await System.dataConnectors.gitlab.collect({
         repo: form.get("repo"),
         accessToken: form.get("accessToken"),
@@ -71,40 +70,41 @@ export default function GitlabOptions() {
                   <label className="text-white text-sm font-bold">
                     GitLab Repo URL
                   </label>
-                  <p className="text-xs font-normal text-white/50">
+                  <p className="text-xs font-normal text-theme-text-secondary">
                     URL of the GitLab repo you wish to collect.
                   </p>
                 </div>
                 <input
                   type="url"
                   name="repo"
-                  className="border-none bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:border-white block w-full p-2.5"
+                  className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                   placeholder="https://gitlab.com/gitlab-org/gitlab"
                   required={true}
                   autoComplete="off"
                   onChange={(e) => setRepo(e.target.value)}
                   onBlur={() => setSettings({ ...settings, repo })}
                   spellCheck={false}
-                  rows={2}
                 />
               </div>
               <div className="flex flex-col pr-10">
                 <div className="flex flex-col gap-y-1 mb-4">
                   <label className="text-white font-bold text-sm flex gap-x-2 items-center">
                     <p className="font-bold text-white">GitLab Access Token</p>{" "}
-                    <p className="text-xs text-white/50 font-light flex items-center">
-                      optional
+                    <p className="text-xs font-light flex items-center">
+                      <span className="text-theme-text-secondary">
+                        optional
+                      </span>
                       <PATTooltip accessToken={accessToken} />
                     </p>
                   </label>
-                  <p className="text-xs font-normal text-white/50">
+                  <p className="text-xs font-normal text-theme-text-secondary">
                     Access Token to prevent rate limiting.
                   </p>
                 </div>
                 <input
                   type="text"
                   name="accessToken"
-                  className="border-none bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:border-white block w-full p-2.5"
+                  className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                   placeholder="glpat-XXXXXXXXXXXXXXXXXXXX"
                   required={false}
                   autoComplete="off"
@@ -148,7 +148,7 @@ export default function GitlabOptions() {
                 <label className="text-white text-sm flex gap-x-2 items-center">
                   <p className="text-white text-sm font-bold">File Ignores</p>
                 </label>
-                <p className="text-xs font-normal text-white/50">
+                <p className="text-xs font-normal text-theme-text-secondary">
                   List in .gitignore format to ignore specific files during
                   collection. Press enter after each entry you want to save.
                 </p>
@@ -159,9 +159,9 @@ export default function GitlabOptions() {
                 name="ignores"
                 placeholder="!*.js, images/*, .DS_Store, bin/*"
                 classNames={{
-                  tag: "bg-blue-300/10 text-zinc-800",
+                  tag: "bg-theme-settings-input-bg light:bg-black/10 bg-blue-300/10 text-zinc-800",
                   input:
-                    "flex bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:border-white",
+                    "flex p-1 !bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none",
                 }}
               />
             </div>
@@ -217,14 +217,14 @@ function GitLabBranchSelection({ repo, accessToken }) {
       <div className="flex flex-col w-60">
         <div className="flex flex-col gap-y-1 mb-4">
           <label className="text-white text-sm font-bold">Branch</label>
-          <p className="text-xs font-normal text-white/50">
+          <p className="text-xs font-normal text-theme-text-secondary">
             Branch you wish to collect files from.
           </p>
         </div>
         <select
           name="branch"
           required={true}
-          className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+          className="bg-theme-settings-input-bg border-gray-500 text-white focus:outline-primary-button active:outline-primary-button outline-none text-sm rounded-lg block w-full p-2.5"
         >
           <option disabled={true} selected={true}>
             -- loading available branches --
@@ -238,14 +238,14 @@ function GitLabBranchSelection({ repo, accessToken }) {
     <div className="flex flex-col w-60">
       <div className="flex flex-col gap-y-1 mb-4">
         <label className="text-white text-sm font-bold">Branch</label>
-        <p className="text-xs font-normal text-white/50">
+        <p className="text-xs font-normal text-theme-text-secondary">
           Branch you wish to collect files from.
         </p>
       </div>
       <select
         name="branch"
         required={true}
-        className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+        className="bg-theme-settings-input-bg border-gray-500 text-white focus:outline-primary-button active:outline-primary-button outline-none text-sm rounded-lg block w-full p-2.5"
       >
         {allBranches.map((branch) => {
           return (
@@ -302,7 +302,7 @@ function PATTooltip({ accessToken }) {
       <Tooltip
         delayHide={300}
         id="access-token-tooltip"
-        className="max-w-xs"
+        className="max-w-xs z-99"
         clickable={true}
       >
         <p className="text-sm">
diff --git a/frontend/src/components/Modals/ManageWorkspace/DataConnectors/Connectors/WebsiteDepth/index.jsx b/frontend/src/components/Modals/ManageWorkspace/DataConnectors/Connectors/WebsiteDepth/index.jsx
index f0017dab9..85ee4f75e 100644
--- a/frontend/src/components/Modals/ManageWorkspace/DataConnectors/Connectors/WebsiteDepth/index.jsx
+++ b/frontend/src/components/Modals/ManageWorkspace/DataConnectors/Connectors/WebsiteDepth/index.jsx
@@ -57,14 +57,14 @@ export default function WebsiteDepthOptions() {
                   <label className="text-white text-sm font-bold">
                     Website URL
                   </label>
-                  <p className="text-xs font-normal text-white/50">
+                  <p className="text-xs font-normal text-theme-text-secondary">
                     URL of the website you want to scrape.
                   </p>
                 </div>
                 <input
                   type="url"
                   name="url"
-                  className="border-none bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+                  className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                   placeholder="https://example.com"
                   required={true}
                   autoComplete="off"
@@ -74,7 +74,7 @@ export default function WebsiteDepthOptions() {
               <div className="flex flex-col pr-10">
                 <div className="flex flex-col gap-y-1 mb-4">
                   <label className="text-white text-sm font-bold">Depth</label>
-                  <p className="text-xs font-normal text-white/50">
+                  <p className="text-xs font-normal text-theme-text-secondary">
                     This is the number of child-links that the worker should
                     follow from the origin URL.
                   </p>
@@ -84,7 +84,7 @@ export default function WebsiteDepthOptions() {
                   name="depth"
                   min="1"
                   max="5"
-                  className="border-none bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+                  className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                   required={true}
                   defaultValue="1"
                 />
@@ -94,7 +94,7 @@ export default function WebsiteDepthOptions() {
                   <label className="text-white text-sm font-bold">
                     Max Links
                   </label>
-                  <p className="text-xs font-normal text-white/50">
+                  <p className="text-xs font-normal text-theme-text-secondary">
                     Maximum number of links to scrape.
                   </p>
                 </div>
@@ -102,7 +102,7 @@ export default function WebsiteDepthOptions() {
                   type="number"
                   name="maxLinks"
                   min="1"
-                  className="border-none bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+                  className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                   required={true}
                   defaultValue="20"
                 />
@@ -121,7 +121,7 @@ export default function WebsiteDepthOptions() {
               {loading ? "Scraping website..." : "Submit"}
             </button>
             {loading && (
-              <p className="text-xs text-white/50">
+              <p className="text-xs text-theme-text-secondary">
                 Once complete, all scraped pages will be available for embedding
                 into workspaces in the document picker.
               </p>
diff --git a/frontend/src/components/Modals/ManageWorkspace/DataConnectors/Connectors/Youtube/index.jsx b/frontend/src/components/Modals/ManageWorkspace/DataConnectors/Connectors/Youtube/index.jsx
index d0e68249e..4f4ec4e9d 100644
--- a/frontend/src/components/Modals/ManageWorkspace/DataConnectors/Connectors/Youtube/index.jsx
+++ b/frontend/src/components/Modals/ManageWorkspace/DataConnectors/Connectors/Youtube/index.jsx
@@ -52,14 +52,14 @@ export default function YoutubeOptions() {
                   <label className="text-white text-sm font-bold">
                     YouTube Video URL
                   </label>
-                  <p className="text-xs font-normal text-white/50">
+                  <p className="text-xs font-normal text-theme-text-secondary">
                     URL of the YouTube video you wish to transcribe.
                   </p>
                 </div>
                 <input
                   type="url"
                   name="url"
-                  className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+                  className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                   placeholder="https://youtube.com/watch?v=abc123"
                   required={true}
                   autoComplete="off"
@@ -78,7 +78,7 @@ export default function YoutubeOptions() {
               {loading ? "Collecting transcript..." : "Collect transcript"}
             </button>
             {loading && (
-              <p className="text-xs text-white/50 max-w-sm">
+              <p className="text-xs text-theme-text-secondary max-w-sm">
                 Once complete, the transcription will be available for embedding
                 into workspaces in the document picker.
               </p>
diff --git a/frontend/src/components/Modals/ManageWorkspace/DataConnectors/index.jsx b/frontend/src/components/Modals/ManageWorkspace/DataConnectors/index.jsx
index 9df6dd7d8..647a026f6 100644
--- a/frontend/src/components/Modals/ManageWorkspace/DataConnectors/index.jsx
+++ b/frontend/src/components/Modals/ManageWorkspace/DataConnectors/index.jsx
@@ -64,7 +64,7 @@ export default function DataConnectors() {
           <input
             type="text"
             placeholder="Search data connectors"
-            className="border-none bg-zinc-600 z-20 pl-10 h-[38px] rounded-full w-full px-4 py-1 text-sm border-2 border-slate-300/40 outline-none focus:outline-primary-button active:outline-primary-button outline-none text-white"
+            className="border-none z-20 pl-10 h-[38px] rounded-full w-full px-4 py-1 text-sm border-2 border-slate-300/40 outline-none focus:outline-primary-button active:outline-primary-button outline-none placeholder:text-theme-settings-input-placeholder text-white bg-theme-settings-input-bg"
             autoComplete="off"
             value={searchQuery}
             onChange={(e) => setSearchQuery(e.target.value)}
diff --git a/frontend/src/components/Modals/ManageWorkspace/Documents/Directory/ContextMenu/index.jsx b/frontend/src/components/Modals/ManageWorkspace/Documents/Directory/ContextMenu/index.jsx
index 5515d8b46..c093982e7 100644
--- a/frontend/src/components/Modals/ManageWorkspace/Documents/Directory/ContextMenu/index.jsx
+++ b/frontend/src/components/Modals/ManageWorkspace/Documents/Directory/ContextMenu/index.jsx
@@ -60,17 +60,17 @@ export default function ContextMenu({
         left: `${contextMenu.x}px`,
         zIndex: 1000,
       }}
-      className="bg-zinc-800 border border-zinc-700 rounded-md shadow-lg"
+      className="bg-theme-bg-secondary border border-theme-modal-border rounded-md shadow-lg"
     >
       <button
         onClick={toggleSelectAll}
-        className="block w-full text-left px-4 py-2 text-sm text-white hover:bg-zinc-700"
+        className="block w-full text-left px-4 py-2 text-sm text-theme-text-primary hover:bg-theme-file-picker-hover"
       >
         {isAllSelected() ? "Unselect All" : "Select All"}
       </button>
       <button
         onClick={closeContextMenu}
-        className="block w-full text-left px-4 py-2 text-sm text-white hover:bg-zinc-700"
+        className="block w-full text-left px-4 py-2 text-sm text-theme-text-primary hover:bg-theme-file-picker-hover"
       >
         Cancel
       </button>
diff --git a/frontend/src/components/Modals/ManageWorkspace/Documents/Directory/FileRow/index.jsx b/frontend/src/components/Modals/ManageWorkspace/Documents/Directory/FileRow/index.jsx
index 663c73d56..ab1e4bd12 100644
--- a/frontend/src/components/Modals/ManageWorkspace/Documents/Directory/FileRow/index.jsx
+++ b/frontend/src/components/Modals/ManageWorkspace/Documents/Directory/FileRow/index.jsx
@@ -10,8 +10,8 @@ export default function FileRow({ item, selected, toggleSelection }) {
   return (
     <tr
       onClick={() => toggleSelection(item)}
-      className={`text-white/80 text-xs grid grid-cols-12 py-2 pl-3.5 pr-8 hover:bg-sky-500/20 cursor-pointer file-row ${
-        selected ? "selected" : ""
+      className={`text-theme-text-primary text-xs grid grid-cols-12 py-2 pl-3.5 pr-8 hover:bg-theme-file-picker-hover cursor-pointer file-row ${
+        selected ? "selected light:text-white" : ""
       }`}
     >
       <div
@@ -24,7 +24,9 @@ export default function FileRow({ item, selected, toggleSelection }) {
         })}
       >
         <div
-          className="shrink-0 w-3 h-3 rounded border-[1px] border-white flex justify-center items-center cursor-pointer"
+          className={`shrink-0 w-3 h-3 rounded border-[1px] border-white ${
+            selected ? "text-white" : "text-theme-text-primary light:invert"
+          } flex justify-center items-center cursor-pointer`}
           role="checkbox"
           aria-checked={selected}
           tabIndex={0}
@@ -41,7 +43,7 @@ export default function FileRow({ item, selected, toggleSelection }) {
       </div>
       <div className="col-span-2 flex justify-end items-center">
         {item?.cached && (
-          <div className="bg-white/10 rounded-3xl">
+          <div className="bg-theme-settings-input-active rounded-3xl">
             <p className="text-xs px-2 py-0.5">Cached</p>
           </div>
         )}
diff --git a/frontend/src/components/Modals/ManageWorkspace/Documents/Directory/FolderRow/index.jsx b/frontend/src/components/Modals/ManageWorkspace/Documents/Directory/FolderRow/index.jsx
index 7e2dfffee..21b663def 100644
--- a/frontend/src/components/Modals/ManageWorkspace/Documents/Directory/FolderRow/index.jsx
+++ b/frontend/src/components/Modals/ManageWorkspace/Documents/Directory/FolderRow/index.jsx
@@ -22,13 +22,19 @@ export default function FolderRow({
     <>
       <tr
         onClick={onRowClick}
-        className={`text-white/80 text-xs grid grid-cols-12 py-2 pl-3.5 pr-8 bg-dark-highlight hover:bg-sky-500/20 cursor-pointer w-full file-row ${
-          selected ? "selected" : ""
+        className={`text-theme-text-primary text-xs grid grid-cols-12 py-2 pl-3.5 pr-8 hover:bg-theme-file-picker-hover cursor-pointer file-row ${
+          selected ? "selected light:text-white !text-white" : ""
         }`}
       >
-        <div className="col-span-6 flex gap-x-[4px] items-center">
+        <div
+          className={`col-span-6 flex gap-x-[4px] items-center ${
+            selected ? "!text-white" : "text-theme-text-primary"
+          }`}
+        >
           <div
-            className="shrink-0 w-3 h-3 rounded border-[1px] border-white flex justify-center items-center cursor-pointer"
+            className={`shrink-0 w-3 h-3 rounded border-[1px] border-white ${
+              selected ? "text-white" : "text-theme-text-primary light:invert"
+            } flex justify-center items-center cursor-pointer`}
             role="checkbox"
             aria-checked={selected}
             tabIndex={0}
diff --git a/frontend/src/components/Modals/ManageWorkspace/Documents/Directory/NewFolderModal/index.jsx b/frontend/src/components/Modals/ManageWorkspace/Documents/Directory/NewFolderModal/index.jsx
index 47ad85b05..419e7b2d9 100644
--- a/frontend/src/components/Modals/ManageWorkspace/Documents/Directory/NewFolderModal/index.jsx
+++ b/frontend/src/components/Modals/ManageWorkspace/Documents/Directory/NewFolderModal/index.jsx
@@ -29,24 +29,25 @@ export default function NewFolderModal({ closeModal, files, setFiles }) {
   };
 
   return (
-    <div className="relative w-full max-w-xl max-h-full">
-      <div className="relative bg-main-gradient rounded-lg shadow">
-        <div className="flex items-start justify-between p-4 border-b rounded-t border-gray-500/50">
-          <h3 className="text-xl font-semibold text-white">
-            Create New Folder
-          </h3>
+    <div className="fixed inset-0 z-50 overflow-auto bg-black bg-opacity-50 flex items-center justify-center">
+      <div className="relative w-full max-w-2xl bg-theme-bg-secondary rounded-lg shadow border-2 border-theme-modal-border">
+        <div className="relative p-6 border-b rounded-t border-theme-modal-border">
+          <div className="w-full flex gap-x-2 items-center">
+            <h3 className="text-xl font-semibold text-white overflow-hidden overflow-ellipsis whitespace-nowrap">
+              Create New Folder
+            </h3>
+          </div>
           <button
             onClick={closeModal}
             type="button"
-            className="transition-all duration-300 text-gray-400 bg-transparent hover:border-white/60 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center bg-sidebar-button hover:bg-menu-item-selected-gradient hover:border-slate-100 hover:border-opacity-50 border-transparent border"
-            data-modal-hide="staticModal"
+            className="absolute top-4 right-4 transition-all duration-300 bg-transparent rounded-lg text-sm p-1 inline-flex items-center hover:bg-theme-modal-border hover:border-theme-modal-border hover:border-opacity-50 border-transparent border"
           >
-            <X className="text-gray-300 text-lg" />
+            <X size={24} weight="bold" className="text-white" />
           </button>
         </div>
-        <form onSubmit={handleCreate}>
-          <div className="p-6 space-y-6 flex h-full w-full">
-            <div className="w-full flex flex-col gap-y-4">
+        <div className="p-6">
+          <form onSubmit={handleCreate}>
+            <div className="space-y-4">
               <div>
                 <label
                   htmlFor="folderName"
@@ -57,7 +58,7 @@ export default function NewFolderModal({ closeModal, files, setFiles }) {
                 <input
                   name="folderName"
                   type="text"
-                  className="bg-zinc-900 placeholder:text-white/20 border-gray-500 text-white text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5"
+                  className="bg-theme-settings-input-bg w-full text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                   placeholder="Enter folder name"
                   required={true}
                   autoComplete="off"
@@ -67,23 +68,23 @@ export default function NewFolderModal({ closeModal, files, setFiles }) {
               </div>
               {error && <p className="text-red-400 text-sm">Error: {error}</p>}
             </div>
-          </div>
-          <div className="flex w-full justify-between items-center p-6 space-x-2 border-t rounded-b border-gray-500/50">
-            <button
-              onClick={closeModal}
-              type="button"
-              className="px-4 py-2 rounded-lg text-white hover:bg-stone-900 transition-all duration-300"
-            >
-              Cancel
-            </button>
-            <button
-              type="submit"
-              className="transition-all duration-300 border border-slate-200 px-4 py-2 rounded-lg text-white text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 focus:ring-gray-800"
-            >
-              Create Folder
-            </button>
-          </div>
-        </form>
+            <div className="flex justify-between items-center mt-6 pt-6 border-t border-theme-modal-border">
+              <button
+                onClick={closeModal}
+                type="button"
+                className="transition-all duration-300 text-white hover:bg-zinc-700 px-4 py-2 rounded-lg text-sm"
+              >
+                Cancel
+              </button>
+              <button
+                type="submit"
+                className="transition-all duration-300 bg-white text-black hover:opacity-60 px-4 py-2 rounded-lg text-sm"
+              >
+                Create Folder
+              </button>
+            </div>
+          </form>
+        </div>
       </div>
     </div>
   );
diff --git a/frontend/src/components/Modals/ManageWorkspace/Documents/Directory/index.jsx b/frontend/src/components/Modals/ManageWorkspace/Documents/Directory/index.jsx
index d87ae66c8..ceecb1a3a 100644
--- a/frontend/src/components/Modals/ManageWorkspace/Documents/Directory/index.jsx
+++ b/frontend/src/components/Modals/ManageWorkspace/Documents/Directory/index.jsx
@@ -200,7 +200,7 @@ function Directory({
                 type="search"
                 placeholder="Search for document"
                 onChange={handleSearch}
-                className="search-input bg-zinc-900 text-white placeholder-white/40 text-sm rounded-lg pl-9 pr-2.5 py-2 w-[250px] h-[32px]"
+                className="search-input bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder focus:outline-primary-button active:outline-primary-button outline-none text-sm rounded-lg pl-9 pr-2.5 py-2 w-[250px] h-[32px] light:border-theme-modal-border light:border"
               />
               <MagnifyingGlass
                 size={14}
@@ -209,18 +209,22 @@ function Directory({
               />
             </div>
             <button
-              className="flex items-center gap-x-2 cursor-pointer px-[14px] py-[7px] -mr-[14px] rounded-lg hover:bg-[#222628]/60 z-20 relative"
+              className="flex items-center gap-x-2 cursor-pointer px-[14px] py-[7px] -mr-[14px] rounded-lg hover:bg-theme-sidebar-subitem-hover z-20 relative"
               onClick={openFolderModal}
             >
-              <Plus size={18} weight="bold" color="#D3D4D4" />
-              <div className="text-[#D3D4D4] text-xs font-bold leading-[18px]">
+              <Plus
+                size={18}
+                weight="bold"
+                className="text-theme-text-primary light:text-[#0ba5ec]"
+              />
+              <div className="text-theme-text-primary light:text-[#0ba5ec] text-xs font-bold leading-[18px]">
                 New Folder
               </div>
             </button>
           </div>
 
-          <div className="relative w-[560px] h-[310px] bg-zinc-900 rounded-2xl overflow-hidden">
-            <div className="absolute top-0 left-0 right-0 z-10 rounded-t-2xl text-white/80 text-xs grid grid-cols-12 py-2 px-8 border-b border-white/20 shadow-lg bg-zinc-900">
+          <div className="relative w-[560px] h-[310px] bg-theme-settings-input-bg rounded-2xl overflow-hidden border border-theme-modal-border">
+            <div className="absolute top-0 left-0 right-0 z-10 rounded-t-2xl text-theme-text-primary text-xs grid grid-cols-12 py-2 px-8 border-b border-white/20 shadow-md bg-theme-settings-input-bg">
               <p className="col-span-6">Name</p>
             </div>
 
@@ -228,7 +232,7 @@ function Directory({
               {loading ? (
                 <div className="w-full h-full flex items-center justify-center flex-col gap-y-5">
                   <PreLoader />
-                  <p className="text-white/80 text-sm font-semibold animate-pulse text-center w-1/3">
+                  <p className="text-white text-sm font-semibold animate-pulse text-center w-1/3">
                     {loadingMessage}
                   </p>
                 </div>
@@ -260,13 +264,13 @@ function Directory({
             </div>
             {amountSelected !== 0 && (
               <div className="absolute bottom-[12px] left-0 right-0 flex justify-center pointer-events-none">
-                <div className="mx-auto bg-white/40 rounded-lg py-1 px-2 pointer-events-auto">
+                <div className="mx-auto bg-white/40 light:bg-white rounded-lg py-1 px-2 pointer-events-auto light:shadow-lg">
                   <div className="flex flex-row items-center gap-x-2">
                     <button
                       onClick={moveToWorkspace}
                       onMouseEnter={() => setHighlightWorkspace(true)}
                       onMouseLeave={() => setHighlightWorkspace(false)}
-                      className="border-none text-sm font-semibold bg-white h-[30px] px-2.5 rounded-lg hover:text-white hover:bg-neutral-800/80"
+                      className="border-none text-sm font-semibold bg-white light:bg-[#E0F2FE] h-[30px] px-2.5 rounded-lg hover:bg-neutral-800/80 hover:text-white light:text-[#026AA2] light:hover:bg-[#026AA2] light:hover:text-white"
                     >
                       Move to Workspace
                     </button>
@@ -275,9 +279,9 @@ function Directory({
                         onClick={() =>
                           setShowFolderSelection(!showFolderSelection)
                         }
-                        className="border-none text-sm font-semibold bg-white h-[32px] w-[32px] rounded-lg text-dark-text hover:bg-neutral-800/80 flex justify-center items-center group"
+                        className="border-none text-sm font-semibold bg-white light:bg-[#E0F2FE] h-[32px] w-[32px] rounded-lg text-dark-text hover:bg-neutral-800/80 hover:text-white light:text-[#026AA2] light:hover:bg-[#026AA2] light:hover:text-white flex justify-center items-center group"
                       >
-                        <MoveToFolderIcon className="text-dark-text group-hover:text-white" />
+                        <MoveToFolderIcon className="text-dark-text light:text-[#026AA2] group-hover:text-white" />
                       </button>
                       {showFolderSelection && (
                         <FolderSelectionPopup
@@ -291,7 +295,7 @@ function Directory({
                     </div>
                     <button
                       onClick={deleteFiles}
-                      className="border-none text-sm font-semibold bg-white h-[32px] w-[32px] rounded-lg text-dark-text hover:text-white hover:bg-neutral-800/80 flex justify-center items-center"
+                      className="border-none text-sm font-semibold bg-white light:bg-[#E0F2FE] h-[32px] w-[32px] rounded-lg text-dark-text hover:bg-neutral-800/80 hover:text-white light:text-[#026AA2] light:hover:bg-[#026AA2] light:hover:text-white flex justify-center items-center"
                     >
                       <Trash size={18} weight="bold" />
                     </button>
@@ -340,13 +344,13 @@ function DirectoryTooltips() {
       id="directory-item"
       place="bottom"
       delayShow={800}
-      className="tooltip invert z-99"
+      className="tooltip invert light:invert-0 z-99 max-w-[200px]"
       render={({ content }) => {
         const data = safeJsonParse(content, null);
         if (!data) return null;
         return (
           <div className="text-xs">
-            <p className="text-white">{data.title}</p>
+            <p className="text-white light:invert font-medium">{data.title}</p>
             <div className="flex mt-1 gap-x-2">
               <p className="">
                 Date: <b>{data.date}</b>
diff --git a/frontend/src/components/Modals/ManageWorkspace/Documents/UploadFile/FileUploadProgress/index.jsx b/frontend/src/components/Modals/ManageWorkspace/Documents/UploadFile/FileUploadProgress/index.jsx
index 104d45a16..64a5bd9b7 100644
--- a/frontend/src/components/Modals/ManageWorkspace/Documents/UploadFile/FileUploadProgress/index.jsx
+++ b/frontend/src/components/Modals/ManageWorkspace/Documents/UploadFile/FileUploadProgress/index.jsx
@@ -112,7 +112,7 @@ function FileUploadProgressComponent({
     <div
       className={`${
         isFadingOut ? "file-upload-fadeout" : "file-upload"
-      } h-14 px-2 py-2 flex items-center gap-x-4 rounded-lg bg-white/5 border border-white/40`}
+      } h-14 px-2 py-2 flex items-center gap-x-4 rounded-lg bg-white border border-white/40 shadow-md`}
     >
       <div className="w-6 h-6 flex-shrink-0">
         {status !== "complete" ? (
diff --git a/frontend/src/components/Modals/ManageWorkspace/Documents/UploadFile/index.jsx b/frontend/src/components/Modals/ManageWorkspace/Documents/UploadFile/index.jsx
index 8996829c1..798284e24 100644
--- a/frontend/src/components/Modals/ManageWorkspace/Documents/UploadFile/index.jsx
+++ b/frontend/src/components/Modals/ManageWorkspace/Documents/UploadFile/index.jsx
@@ -78,15 +78,17 @@ export default function UploadFile({
   return (
     <div>
       <div
-        className={`w-[560px] border-2 border-dashed rounded-2xl bg-zinc-900/50 p-3 ${
-          ready ? "cursor-pointer" : "cursor-not-allowed"
-        } hover:bg-zinc-900/90`}
+        className={`w-[560px] border-2 border-dashed light:border-[#686C6F] rounded-2xl bg-theme-bg-primary transition-colors duration-300 p-3 ${
+          ready
+            ? " light:bg-[#E0F2FE] cursor-pointer hover:bg-theme-bg-secondary light:hover:bg-transparent"
+            : "cursor-not-allowed"
+        }`}
         {...getRootProps()}
       >
         <input {...getInputProps()} />
         {ready === false ? (
           <div className="flex flex-col items-center justify-center h-full">
-            <CloudArrowUp className="w-8 h-8 text-white/80" />
+            <CloudArrowUp className="w-8 h-8 text-white/80 light:invert" />
             <div className="text-white text-opacity-80 text-sm font-semibold py-1">
               Document Processor Unavailable
             </div>
@@ -97,7 +99,7 @@ export default function UploadFile({
           </div>
         ) : files.length === 0 ? (
           <div className="flex flex-col items-center justify-center">
-            <CloudArrowUp className="w-8 h-8 text-white/80" />
+            <CloudArrowUp className="w-8 h-8 text-white/80 light:invert" />
             <div className="text-white text-opacity-80 text-sm font-semibold py-1">
               Click to upload or drag and drop
             </div>
@@ -133,7 +135,7 @@ export default function UploadFile({
           disabled={fetchingUrl}
           name="link"
           type="url"
-          className="disabled:bg-zinc-600 disabled:text-slate-300 bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-3/4 p-2.5"
+          className="disabled:bg-theme-settings-input-bg disabled:text-theme-settings-input-placeholder bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-3/4 p-2.5"
           placeholder={"https://example.com"}
           autoComplete="off"
         />
diff --git a/frontend/src/components/Modals/ManageWorkspace/Documents/WorkspaceDirectory/WorkspaceFileRow/index.jsx b/frontend/src/components/Modals/ManageWorkspace/Documents/WorkspaceDirectory/WorkspaceFileRow/index.jsx
index 496702fc2..72d226c74 100644
--- a/frontend/src/components/Modals/ManageWorkspace/Documents/WorkspaceDirectory/WorkspaceFileRow/index.jsx
+++ b/frontend/src/components/Modals/ManageWorkspace/Documents/WorkspaceDirectory/WorkspaceFileRow/index.jsx
@@ -56,9 +56,13 @@ export default function WorkspaceFileRow({
   const isMovedItem = movedItems?.some((movedItem) => movedItem.id === item.id);
   return (
     <div
-      className={`items-center h-[34px] text-white/80 text-xs grid grid-cols-12 py-2 pl-3.5 pr-8 ${
-        !disableSelection ? "hover:bg-sky-500/20 cursor-pointer" : ""
-      } ${isMovedItem ? "bg-green-800/40" : "file-row"} ${selected ? "selected" : ""}`}
+      className={`text-theme-text-primary text-xs grid grid-cols-12 py-2 pl-3.5 pr-8 h-[34px] items-center ${
+        !disableSelection
+          ? "hover:bg-theme-file-picker-hover cursor-pointer"
+          : ""
+      } ${isMovedItem ? "bg-green-800/40" : "file-row"} ${
+        selected ? "selected light:text-white" : ""
+      }`}
       onClick={toggleRowSelection}
     >
       <div
@@ -73,7 +77,9 @@ export default function WorkspaceFileRow({
         <div className="shrink-0 w-3 h-3">
           {!disableSelection ? (
             <div
-              className="w-full h-full rounded border-[1px] border-white flex justify-center items-center cursor-pointer"
+              className={`shrink-0 w-3 h-3 rounded border-[1px] border-white ${
+                selected ? "text-white" : "text-theme-text-primary light:invert"
+              } flex justify-center items-center cursor-pointer`}
               role="checkbox"
               aria-checked={selected}
               tabIndex={0}
@@ -158,7 +164,7 @@ const PinItemToWorkspace = memo(({ workspace, docPath, item }) => {
     <div
       onMouseEnter={() => setHover(true)}
       onMouseLeave={() => setHover(false)}
-      className="flex gap-x-2 items-center hover:bg-main-gradient p-[2px] rounded ml-2"
+      className="flex gap-x-2 items-center hover:bg-theme-file-picker-hover p-[2px] rounded ml-2"
     >
       <PushPin
         data-tooltip-id="pin-document"
@@ -224,7 +230,7 @@ const WatchForChanges = memo(({ workspace, docPath, item }) => {
     <div
       onMouseEnter={() => setHover(true)}
       onMouseLeave={() => setHover(false)}
-      className="flex gap-x-2 items-center hover:bg-main-gradient p-[2px] rounded ml-2"
+      className="flex gap-x-2 items-center hover:bg-theme-file-picker-hover p-[2px] rounded ml-2"
     >
       <Eye
         data-tooltip-id="watch-changes"
diff --git a/frontend/src/components/Modals/ManageWorkspace/Documents/WorkspaceDirectory/index.jsx b/frontend/src/components/Modals/ManageWorkspace/Documents/WorkspaceDirectory/index.jsx
index b54f29cc1..b2897f439 100644
--- a/frontend/src/components/Modals/ManageWorkspace/Documents/WorkspaceDirectory/index.jsx
+++ b/frontend/src/components/Modals/ManageWorkspace/Documents/WorkspaceDirectory/index.jsx
@@ -3,7 +3,7 @@ import { dollarFormat } from "@/utils/numbers";
 import WorkspaceFileRow from "./WorkspaceFileRow";
 import { memo, useEffect, useState } from "react";
 import ModalWrapper from "@/components/ModalWrapper";
-import { Eye, PushPin } from "@phosphor-icons/react";
+import { Eye, PushPin, X } from "@phosphor-icons/react";
 import { SEEN_DOC_PIN_ALERT, SEEN_WATCH_ALERT } from "@/utils/constants";
 import paths from "@/utils/paths";
 import { Link } from "react-router-dom";
@@ -93,8 +93,8 @@ function WorkspaceDirectory({
             {workspace.name}
           </h3>
         </div>
-        <div className="relative w-[560px] h-[445px] bg-zinc-900 rounded-2xl mt-5">
-          <div className="text-white/80 text-xs grid grid-cols-12 py-2 px-3.5 border-b border-white/20 bg-zinc-900 sticky top-0 z-10 rounded-t-2xl">
+        <div className="relative w-[560px] h-[445px] bg-theme-settings-input-bg rounded-2xl mt-5 border border-theme-modal-border">
+          <div className="text-white/80 text-xs grid grid-cols-12 py-2 px-3.5 border-b border-white/20 bg-theme-settings-input-bg sticky top-0 z-10 rounded-t-2xl shadow-lg">
             <div className="col-span-10 flex items-center gap-x-[4px]">
               <div className="shrink-0 w-3 h-3" />
               <p className="ml-[7px]">Name</p>
@@ -103,7 +103,7 @@ function WorkspaceDirectory({
           </div>
           <div className="w-full h-[calc(100%-40px)] flex items-center justify-center flex-col gap-y-5">
             <PreLoader />
-            <p className="text-white/80 text-sm font-semibold animate-pulse text-center w-1/3">
+            <p className="text-white text-sm font-semibold animate-pulse text-center w-1/3">
               {loadingMessage}
             </p>
           </div>
@@ -126,13 +126,13 @@ function WorkspaceDirectory({
               highlightWorkspace ? "border-4 border-cyan-300/80 z-[999]" : ""
             }`}
           />
-          <div className="relative w-full h-full bg-zinc-900 rounded-2xl overflow-hidden">
-            <div className="text-white/80 text-xs grid grid-cols-12 py-2 px-3.5 border-b border-white/20 bg-zinc-900 sticky top-0 z-10">
+          <div className="relative w-full h-full bg-theme-settings-input-bg rounded-2xl overflow-hidden border border-theme-modal-border">
+            <div className="text-white/80 text-xs grid grid-cols-12 py-2 px-3.5 border-b border-white/20 bg-theme-settings-input-bg sticky top-0 z-10 shadow-md">
               <div className="col-span-10 flex items-center gap-x-[4px]">
                 {!hasChanges &&
                 files.items.some((folder) => folder.items.length > 0) ? (
                   <div
-                    className="shrink-0 w-3 h-3 rounded border-[1px] border-white flex justify-center items-center cursor-pointer"
+                    className={`shrink-0 w-3 h-3 rounded border-[1px] border-white text-theme-text-primary light:invert flex justify-center items-center cursor-pointer`}
                     role="checkbox"
                     aria-checked={
                       Object.keys(selectedItems).length ===
@@ -153,7 +153,7 @@ function WorkspaceDirectory({
                 ) : (
                   <div className="shrink-0 w-3 h-3" />
                 )}
-                <p className="ml-[7px]">Name</p>
+                <p className="ml-[7px] light:text-theme-text-primary">Name</p>
               </div>
               <p className="col-span-2" />
             </div>
@@ -187,13 +187,14 @@ function WorkspaceDirectory({
                 </div>
               )}
             </div>
+
             {Object.keys(selectedItems).length > 0 && !hasChanges && (
               <div className="absolute bottom-[12px] left-0 right-0 flex justify-center pointer-events-none">
-                <div className="mx-auto bg-white/40 rounded-lg py-1 px-2 pointer-events-auto">
+                <div className="mx-auto bg-white/40 light:bg-white rounded-lg py-1 px-2 pointer-events-auto light:shadow-lg">
                   <div className="flex flex-row items-center gap-x-2">
                     <button
                       onClick={toggleSelectAll}
-                      className="border-none text-sm font-semibold bg-white h-[30px] px-2.5 rounded-lg hover:text-white hover:bg-neutral-800/80"
+                      className="border-none text-sm font-semibold bg-white light:bg-[#E0F2FE] h-[30px] px-2.5 rounded-lg hover:bg-neutral-800/80 hover:text-white light:text-[#026AA2] light:hover:bg-[#026AA2] light:hover:text-white"
                     >
                       {Object.keys(selectedItems).length ===
                       files.items.reduce(
@@ -205,7 +206,7 @@ function WorkspaceDirectory({
                     </button>
                     <button
                       onClick={removeSelectedItems}
-                      className="border-none text-sm font-semibold bg-white h-[30px] px-2.5 rounded-lg hover:text-white hover:bg-neutral-800/80"
+                      className="border-none text-sm font-semibold bg-white light:bg-[#E0F2FE] h-[30px] px-2.5 rounded-lg hover:bg-neutral-800/80 hover:text-white light:text-[#026AA2] light:hover:bg-[#026AA2] light:hover:text-white"
                     >
                       Remove Selected
                     </button>
@@ -268,17 +269,20 @@ const PinAlert = memo(() => {
 
   return (
     <ModalWrapper isOpen={showAlert} noPortal={true}>
-      <div className="relative w-full max-w-2xl max-h-full">
-        <div className="relative bg-main-gradient rounded-lg shadow">
-          <div className="flex items-start justify-between p-4 rounded-t border-gray-500/50">
-            <div className="flex items-center gap-2">
-              <PushPin className="text-red-600 text-lg w-6 h-6" weight="fill" />
-              <h3 className="text-xl font-semibold text-white">
-                What is document pinning?
-              </h3>
-            </div>
+      <div className="w-full max-w-2xl bg-theme-bg-secondary rounded-lg shadow border-2 border-theme-modal-border overflow-hidden">
+        <div className="relative p-6 border-b rounded-t border-theme-modal-border">
+          <div className="flex items-center gap-2">
+            <PushPin
+              className="text-theme-text-primary text-lg w-6 h-6"
+              weight="regular"
+            />
+            <h3 className="text-xl font-semibold text-white">
+              What is document pinning?
+            </h3>
           </div>
-          <div className="w-full p-6 text-white text-md flex flex-col gap-y-2">
+        </div>
+        <div className="py-7 px-9 space-y-2 flex-col">
+          <div className="w-full text-white text-md flex flex-col gap-y-2">
             <p>
               When you <b>pin</b> a document in AnythingLLM we will inject the
               entire content of the document into your prompt window for your
@@ -294,16 +298,14 @@ const PinAlert = memo(() => {
               in a click.
             </p>
           </div>
-
-          <div className="flex w-full justify-between items-center p-6 space-x-2 border-t rounded-b border-gray-500/50">
-            <button disabled={true} className="invisible" />
-            <button
-              onClick={dismissAlert}
-              className="border border-slate-200 px-4 py-2 rounded-lg text-white text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 focus:ring-gray-800"
-            >
-              Okay, got it
-            </button>
-          </div>
+        </div>
+        <div className="flex w-full justify-end items-center p-6 space-x-2 border-t border-theme-modal-border rounded-b">
+          <button
+            onClick={dismissAlert}
+            className="transition-all duration-300 bg-white text-black hover:opacity-60 px-4 py-2 rounded-lg text-sm"
+          >
+            Okay, got it
+          </button>
         </div>
       </div>
     </ModalWrapper>
@@ -330,20 +332,20 @@ const DocumentWatchAlert = memo(() => {
 
   return (
     <ModalWrapper isOpen={showAlert} noPortal={true}>
-      <div className="relative w-full max-w-2xl max-h-full">
-        <div className="relative bg-main-gradient rounded-lg shadow">
-          <div className="flex items-start justify-between p-4 rounded-t border-gray-500/50">
-            <div className="flex items-center gap-2">
-              <Eye
-                className="text-yellow-600 text-lg w-6 h-6"
-                weight="regular"
-              />
-              <h3 className="text-xl font-semibold text-white">
-                What does watching a document do?
-              </h3>
-            </div>
+      <div className="w-full max-w-2xl bg-theme-bg-secondary rounded-lg shadow border-2 border-theme-modal-border overflow-hidden">
+        <div className="relative p-6 border-b rounded-t border-theme-modal-border">
+          <div className="flex items-center gap-2">
+            <Eye
+              className="text-theme-text-primary text-lg w-6 h-6"
+              weight="regular"
+            />
+            <h3 className="text-xl font-semibold text-white">
+              What does watching a document do?
+            </h3>
           </div>
-          <div className="w-full p-6 text-white text-md flex flex-col gap-y-2">
+        </div>
+        <div className="py-7 px-9 space-y-2 flex-col">
+          <div className="w-full text-white text-md flex flex-col gap-y-2">
             <p>
               When you <b>watch</b> a document in AnythingLLM we will{" "}
               <i>automatically</i> sync your document content from it's original
@@ -365,16 +367,14 @@ const DocumentWatchAlert = memo(() => {
               admin view.
             </p>
           </div>
-
-          <div className="flex w-full justify-between items-center p-6 space-x-2 border-t rounded-b border-gray-500/50">
-            <button disabled={true} className="invisible" />
-            <button
-              onClick={dismissAlert}
-              className="border border-slate-200 px-4 py-2 rounded-lg text-white text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 focus:ring-gray-800"
-            >
-              Okay, got it
-            </button>
-          </div>
+        </div>
+        <div className="flex w-full justify-end items-center p-6 space-x-2 border-t border-theme-modal-border rounded-b">
+          <button
+            onClick={dismissAlert}
+            className="transition-all duration-300 bg-white text-black hover:opacity-60 px-4 py-2 rounded-lg text-sm"
+          >
+            Okay, got it
+          </button>
         </div>
       </div>
     </ModalWrapper>
@@ -410,13 +410,15 @@ function WorkspaceDocumentTooltips() {
         id="ws-directory-item"
         place="bottom"
         delayShow={800}
-        className="tooltip invert z-99"
+        className="tooltip invert light:invert-0 z-99 max-w-[200px]"
         render={({ content }) => {
           const data = safeJsonParse(content, null);
           if (!data) return null;
           return (
             <div className="text-xs">
-              <p className="text-white">{data.title}</p>
+              <p className="text-white light:invert font-medium">
+                {data.title}
+              </p>
               <div className="flex mt-1 gap-x-2">
                 <p className="">
                   Date: <b>{data.date}</b>
diff --git a/frontend/src/components/Modals/ManageWorkspace/index.jsx b/frontend/src/components/Modals/ManageWorkspace/index.jsx
index fe3f539b9..2dba258ab 100644
--- a/frontend/src/components/Modals/ManageWorkspace/index.jsx
+++ b/frontend/src/components/Modals/ManageWorkspace/index.jsx
@@ -7,6 +7,7 @@ import { isMobile } from "react-device-detect";
 import useUser from "../../../hooks/useUser";
 import DocumentSettings from "./Documents";
 import DataConnectors from "./DataConnectors";
+import ModalWrapper from "@/components/ModalWrapper";
 
 const noop = () => {};
 const ManageWorkspace = ({ hideModal = noop, providedSlug = null }) => {
@@ -36,31 +37,44 @@ const ManageWorkspace = ({ hideModal = noop, providedSlug = null }) => {
 
   if (isMobile) {
     return (
-      <div className="w-screen h-screen fixed top-0 left-0 flex justify-center items-center z-99">
-        <div className="backdrop h-full w-full absolute top-0 z-10" />
-        <div className={`absolute max-h-full transition duration-300 z-20`}>
-          <div className="relative max-w-lg mx-auto bg-main-gradient rounded-[12px] shadow border-2 border-slate-300/10">
-            <div className="p-6">
-              <h1 className="text-white text-lg font-semibold">
+      <ModalWrapper isOpen={true}>
+        <div className="w-full max-w-2xl bg-theme-bg-secondary rounded-lg shadow border-2 border-theme-modal-border overflow-hidden">
+          <div className="relative p-6 border-b rounded-t border-theme-modal-border">
+            <div className="w-full flex gap-x-2 items-center">
+              <h3 className="text-xl font-semibold text-white overflow-hidden overflow-ellipsis whitespace-nowrap">
                 Editing "{workspace.name}"
-              </h1>
-              <p className="text-white mt-4">
+              </h3>
+            </div>
+            <button
+              onClick={hideModal}
+              type="button"
+              className="absolute top-4 right-4 transition-all duration-300 bg-transparent rounded-lg text-sm p-1 inline-flex items-center hover:bg-theme-modal-border hover:border-theme-modal-border hover:border-opacity-50 border-transparent border"
+            >
+              <X size={24} weight="bold" className="text-white" />
+            </button>
+          </div>
+          <div
+            className="h-full w-full overflow-y-auto"
+            style={{ maxHeight: "calc(100vh - 200px)" }}
+          >
+            <div className="py-7 px-9 space-y-2 flex-col">
+              <p className="text-white">
                 Editing these settings are only available on a desktop device.
                 Please access this page on your desktop to continue.
               </p>
-              <div className="mt-6 flex justify-end">
-                <button
-                  onClick={hideModal}
-                  type="button"
-                  className="transition-all duration-300 border border-slate-200 px-4 py-2 rounded-lg text-white text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 focus:ring-gray-800"
-                >
-                  Dismiss
-                </button>
-              </div>
             </div>
           </div>
+          <div className="flex w-full justify-end items-center p-6 space-x-2 border-t border-theme-modal-border rounded-b">
+            <button
+              onClick={hideModal}
+              type="button"
+              className="transition-all duration-300 bg-white text-black hover:opacity-60 px-4 py-2 rounded-lg text-sm"
+            >
+              Dismiss
+            </button>
+          </div>
         </div>
-      </div>
+      </ModalWrapper>
     );
   }
 
@@ -68,14 +82,14 @@ const ManageWorkspace = ({ hideModal = noop, providedSlug = null }) => {
     <div className="w-screen h-screen fixed top-0 left-0 flex justify-center items-center z-99">
       <div className="backdrop h-full w-full absolute top-0 z-10" />
       <div className="absolute max-h-full w-fit transition duration-300 z-20 md:overflow-y-auto py-10">
-        <div className="relative bg-main-gradient rounded-[12px] shadow border-2 border-slate-300/10">
-          <div className="flex items-start justify-between p-2 rounded-t border-gray-500/50 relative">
+        <div className="relative bg-theme-bg-secondary rounded-[12px] shadow border-2 border-theme-modal-border">
+          <div className="flex items-start justify-between p-2 rounded-t border-theme-modal-border relative">
             <button
               onClick={hideModal}
               type="button"
-              className="z-50 text-gray-400 bg-transparent rounded-lg text-sm p-1.5 ml-auto inline-flex items-center hover:border-white/60 bg-sidebar-button hover:bg-menu-item-selected-gradient hover:border-slate-100 hover:border-opacity-50 border-transparent border"
+              className="z-29 text-white bg-transparent rounded-lg text-sm p-1.5 ml-auto inline-flex items-center bg-sidebar-button hover:bg-theme-modal-border hover:border-theme-modal-border hover:border-opacity-50 border-transparent border"
             >
-              <X className="text-gray-300 text-lg" />
+              <X size={20} weight="bold" className="text-white" />
             </button>
           </div>
 
@@ -102,23 +116,23 @@ export default memo(ManageWorkspace);
 const ModalTabSwitcher = ({ selectedTab, setSelectedTab }) => {
   return (
     <div className="w-full flex justify-center z-10 relative">
-      <div className="gap-x-2 flex justify-center -mt-[68px] mb-10 bg-sidebar-button p-1 rounded-xl shadow border-2 border-slate-300/10 w-fit">
+      <div className="gap-x-2 flex justify-center -mt-[68px] mb-10 bg-theme-bg-secondary p-1 rounded-xl shadow border-2 border-theme-modal-border w-fit">
         <button
           onClick={() => setSelectedTab("documents")}
-          className={`px-4 py-2 rounded-[8px] font-semibold text-white hover:bg-switch-selected hover:bg-opacity-60 ${
+          className={`px-4 py-2 rounded-[8px] font-semibold hover:bg-theme-modal-border hover:bg-opacity-60 ${
             selectedTab === "documents"
-              ? "bg-switch-selected shadow-md font-bold"
-              : "bg-sidebar-button text-white/20 font-medium hover:text-white"
+              ? "bg-theme-modal-border font-bold text-white light:bg-[#E0F2FE] light:text-[#026AA2]"
+              : "text-white/20 font-medium hover:text-white light:bg-white light:text-[#535862] light:hover:bg-[#E0F2FE]"
           }`}
         >
           Documents
         </button>
         <button
           onClick={() => setSelectedTab("dataConnectors")}
-          className={`px-4 py-2 rounded-[8px] font-semibold text-white hover:bg-switch-selected hover:bg-opacity-60 ${
+          className={`px-4 py-2 rounded-[8px] font-semibold hover:bg-theme-modal-border hover:bg-opacity-60 ${
             selectedTab === "dataConnectors"
-              ? "bg-switch-selected shadow-md font-bold"
-              : "bg-sidebar-button text-white/20 font-medium hover:text-white"
+              ? "bg-theme-modal-border font-bold text-white light:bg-[#E0F2FE] light:text-[#026AA2]"
+              : "text-white/20 font-medium hover:text-white light:bg-white light:text-[#535862] light:hover:bg-[#E0F2FE]"
           }`}
         >
           Data Connectors
diff --git a/frontend/src/components/Modals/NewWorkspace.jsx b/frontend/src/components/Modals/NewWorkspace.jsx
index 87edef9d7..42812436b 100644
--- a/frontend/src/components/Modals/NewWorkspace.jsx
+++ b/frontend/src/components/Modals/NewWorkspace.jsx
@@ -3,6 +3,7 @@ import { X } from "@phosphor-icons/react";
 import Workspace from "@/models/workspace";
 import paths from "@/utils/paths";
 import { useTranslation } from "react-i18next";
+import ModalWrapper from "@/components/ModalWrapper";
 
 const noop = () => false;
 export default function NewWorkspaceModal({ hideModal = noop }) {
@@ -23,27 +24,28 @@ export default function NewWorkspaceModal({ hideModal = noop }) {
   };
 
   return (
-    <div className="fixed top-0 left-0 right-0 z-50 w-full p-4 overflow-x-hidden overflow-y-auto md:inset-0 h-[calc(100%-1rem)] h-full bg-black bg-opacity-50 flex items-center justify-center">
-      <div
-        className="flex fixed top-0 left-0 right-0 w-full h-full"
-        onClick={hideModal}
-      />
-      <div className="relative w-[500px] max-h-full">
-        <div className="relative bg-modal-gradient rounded-lg shadow-md border-2 border-accent">
-          <div className="flex items-start justify-between p-4 border-b rounded-t border-white/10">
-            <h3 className="text-xl font-semibold text-white">
+    <ModalWrapper isOpen={true}>
+      <div className="w-full max-w-2xl bg-theme-bg-secondary rounded-lg shadow border-2 border-theme-modal-border overflow-hidden">
+        <div className="relative p-6 border-b rounded-t border-theme-modal-border">
+          <div className="w-full flex gap-x-2 items-center">
+            <h3 className="text-xl font-semibold text-white overflow-hidden overflow-ellipsis whitespace-nowrap">
               {t("new-workspace.title")}
             </h3>
-            <button
-              onClick={hideModal}
-              type="button"
-              className="transition-all duration-300 text-gray-400 bg-transparent hover:border-white/60 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center bg-sidebar-button hover:bg-menu-item-selected-gradient hover:border-slate-100 hover:border-opacity-50 border-transparent border"
-            >
-              <X className="text-gray-300 text-lg" />
-            </button>
           </div>
+          <button
+            onClick={hideModal}
+            type="button"
+            className="absolute top-4 right-4 transition-all duration-300 bg-transparent rounded-lg text-sm p-1 inline-flex items-center hover:bg-theme-modal-border hover:border-theme-modal-border hover:border-opacity-50 border-transparent border"
+          >
+            <X size={24} weight="bold" className="text-white" />
+          </button>
+        </div>
+        <div
+          className="h-full w-full overflow-y-auto"
+          style={{ maxHeight: "calc(100vh - 200px)" }}
+        >
           <form ref={formEl} onSubmit={handleCreate}>
-            <div className="p-6 space-y-6 flex h-full w-full">
+            <div className="py-7 px-9 space-y-2 flex-col">
               <div className="w-full flex flex-col gap-y-4">
                 <div>
                   <label
@@ -56,7 +58,7 @@ export default function NewWorkspaceModal({ hideModal = noop }) {
                     name="name"
                     type="text"
                     id="name"
-                    className="bg-zinc-900 w-full text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+                    className="bg-theme-settings-input-bg w-full text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                     placeholder={t("new-workspace.placeholder")}
                     required={true}
                     autoComplete="off"
@@ -67,10 +69,10 @@ export default function NewWorkspaceModal({ hideModal = noop }) {
                 )}
               </div>
             </div>
-            <div className="flex w-full justify-end items-center p-6 space-x-2 border-t border-white/10 rounded-b">
+            <div className="flex w-full justify-end items-center p-6 space-x-2 border-t border-theme-modal-border rounded-b">
               <button
                 type="submit"
-                className="transition-all duration-300 border border-slate-200 px-4 py-2 rounded-lg text-white text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 focus:ring-gray-800"
+                className="transition-all duration-300 bg-white text-black hover:opacity-60 px-4 py-2 rounded-lg text-sm"
               >
                 Save
               </button>
@@ -78,7 +80,7 @@ export default function NewWorkspaceModal({ hideModal = noop }) {
           </form>
         </div>
       </div>
-    </div>
+    </ModalWrapper>
   );
 }
 
diff --git a/frontend/src/components/Modals/Password/MultiUserAuth.jsx b/frontend/src/components/Modals/Password/MultiUserAuth.jsx
index c89f0cff5..f1b173d97 100644
--- a/frontend/src/components/Modals/Password/MultiUserAuth.jsx
+++ b/frontend/src/components/Modals/Password/MultiUserAuth.jsx
@@ -32,14 +32,14 @@ const RecoveryForm = ({ onSubmit, setShowRecoveryForm }) => {
   return (
     <form
       onSubmit={handleSubmit}
-      className="flex flex-col justify-center items-center relative rounded-2xl md:bg-login-gradient md:shadow-[0_4px_14px_rgba(0,0,0,0.25)] md:px-8 px-0 py-4 w-full md:w-fit mt-10 md:mt-0"
+      className="flex flex-col justify-center items-center relative rounded-2xl border-none bg-theme-bg-secondary md:shadow-[0_4px_14px_rgba(0,0,0,0.25)] md:px-8 px-0 py-4 w-full md:w-fit mt-10 md:mt-0"
     >
       <div className="flex items-start justify-between pt-11 pb-9 w-screen md:w-full md:px-12 px-6 ">
         <div className="flex flex-col gap-y-4 w-full">
-          <h3 className="text-4xl md:text-lg font-bold text-white text-center md:text-left">
+          <h3 className="text-4xl md:text-lg font-bold text-theme-text-primary text-center md:text-left">
             {t("login.password-reset.title")}
           </h3>
-          <p className="text-sm text-white/90 md:text-left md:max-w-[300px] px-4 md:px-0 text-center">
+          <p className="text-sm text-theme-text-secondary md:text-left md:max-w-[300px] px-4 md:px-0 text-center">
             {t("login.password-reset.description")}
           </p>
         </div>
@@ -56,7 +56,7 @@ const RecoveryForm = ({ onSubmit, setShowRecoveryForm }) => {
               placeholder={t("login.multi-user.placeholder-username")}
               value={username}
               onChange={(e) => setUsername(e.target.value)}
-              className="bg-zinc-900 text-white placeholder-white/20 text-sm rounded-md p-2.5 w-full h-[48px] md:w-[300px] md:h-[34px]"
+              className="bg-theme-settings-input-bg text-theme-text-primary placeholder:text-theme-settings-input-placeholder focus:outline-primary-button active:outline-primary-button outline-none text-sm rounded-md p-2.5 w-full h-[48px] md:w-[300px] md:h-[34px]"
               required
             />
           </div>
@@ -76,7 +76,7 @@ const RecoveryForm = ({ onSubmit, setShowRecoveryForm }) => {
                   onChange={(e) =>
                     handleRecoveryCodeChange(index, e.target.value)
                   }
-                  className="bg-zinc-900 text-white placeholder-white/20 text-sm rounded-md p-2.5 w-full h-[48px] md:w-[300px] md:h-[34px]"
+                  className="bg-theme-settings-input-bg text-theme-text-primary placeholder:text-theme-settings-input-placeholder focus:outline-primary-button active:outline-primary-button outline-none text-sm rounded-md p-2.5 w-full h-[48px] md:w-[300px] md:h-[34px]"
                   required
                 />
               </div>
@@ -115,7 +115,7 @@ const ResetPasswordForm = ({ onSubmit }) => {
   return (
     <form
       onSubmit={handleSubmit}
-      className="flex flex-col justify-center items-center relative rounded-2xl md:bg-login-gradient md:shadow-[0_4px_14px_rgba(0,0,0,0.25)] md:px-12 px-0 py-4 w-full md:w-fit -mt-24 md:-mt-28"
+      className="flex flex-col justify-center items-center relative rounded-2xl bg-theme-bg-secondary md:shadow-[0_4px_14px_rgba(0,0,0,0.25)] md:px-8 px-0 py-4 w-full md:w-fit mt-10 md:mt-0"
     >
       <div className="flex items-start justify-between pt-11 pb-9 w-screen md:w-full md:px-12 px-6">
         <div className="flex flex-col gap-y-4 w-full">
@@ -136,7 +136,7 @@ const ResetPasswordForm = ({ onSubmit }) => {
               placeholder="New Password"
               value={newPassword}
               onChange={(e) => setNewPassword(e.target.value)}
-              className="bg-zinc-900 text-white placeholder-white/20 text-sm rounded-md p-2.5 w-full h-[48px] md:w-[300px] md:h-[34px]"
+              className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
               required
             />
           </div>
@@ -147,7 +147,7 @@ const ResetPasswordForm = ({ onSubmit }) => {
               placeholder="Confirm Password"
               value={confirmPassword}
               onChange={(e) => setConfirmPassword(e.target.value)}
-              className="bg-zinc-900 text-white placeholder-white/20 text-sm rounded-md p-2.5 w-full h-[48px] md:w-[300px] md:h-[34px]"
+              className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
               required
             />
           </div>
@@ -281,18 +281,18 @@ export default function MultiUserAuth() {
   return (
     <>
       <form onSubmit={handleLogin}>
-        <div className="flex flex-col justify-center items-center relative rounded-2xl md:bg-login-gradient md:shadow-[0_4px_14px_rgba(0,0,0,0.25)] md:px-12 py-12 -mt-4 md:mt-0">
+        <div className="flex flex-col justify-center items-center relative rounded-2xl bg-theme-bg-secondary md:shadow-[0_4px_14px_rgba(0,0,0,0.25)] md:px-12 py-12 -mt-4 md:mt-0">
           <div className="flex items-start justify-between pt-11 pb-9 rounded-t">
             <div className="flex items-center flex-col gap-y-4">
               <div className="flex gap-x-1">
                 <h3 className="text-md md:text-2xl font-bold text-white text-center white-space-nowrap hidden md:block">
                   {t("login.multi-user.welcome")}
                 </h3>
-                <p className="text-4xl md:text-2xl font-bold bg-gradient-to-r from-[#75D6FF] via-[#FFFFFF] to-[#FFFFFF] bg-clip-text text-transparent">
+                <p className="text-4xl md:text-2xl font-bold bg-gradient-to-r from-[#75D6FF] via-[#FFFFFF] light:via-[#75D6FF] to-[#FFFFFF] light:to-[#75D6FF] bg-clip-text text-transparent">
                   {customAppName || "AnythingLLM"}
                 </p>
               </div>
-              <p className="text-sm text-white/90 text-center">
+              <p className="text-sm text-theme-text-secondary text-center">
                 {t("login.sign-in.start")} {customAppName || "AnythingLLM"}{" "}
                 {t("login.sign-in.end")}
               </p>
@@ -305,7 +305,7 @@ export default function MultiUserAuth() {
                   name="username"
                   type="text"
                   placeholder={t("login.multi-user.placeholder-username")}
-                  className="bg-zinc-900 text-white placeholder-white/20 text-sm rounded-md p-2.5 w-full h-[48px] md:w-[300px] md:h-[34px]"
+                  className="bg-theme-settings-input-bg text-theme-text-primary placeholder:text-theme-settings-input-placeholder focus:outline-primary-button active:outline-primary-button outline-none text-sm rounded-md p-2.5 w-full h-[48px] md:w-[300px] md:h-[34px]"
                   required={true}
                   autoComplete="off"
                 />
@@ -315,7 +315,7 @@ export default function MultiUserAuth() {
                   name="password"
                   type="password"
                   placeholder={t("login.multi-user.placeholder-password")}
-                  className="bg-zinc-900 text-white placeholder-white/20 text-sm rounded-md p-2.5 w-full h-[48px] md:w-[300px] md:h-[34px]"
+                  className="bg-theme-settings-input-bg text-theme-text-primary placeholder:text-theme-settings-input-placeholder focus:outline-primary-button active:outline-primary-button outline-none text-sm rounded-md p-2.5 w-full h-[48px] md:w-[300px] md:h-[34px]"
                   required={true}
                   autoComplete="off"
                 />
diff --git a/frontend/src/components/Modals/Password/SingleUserAuth.jsx b/frontend/src/components/Modals/Password/SingleUserAuth.jsx
index 0b1730ce8..a645dcf7b 100644
--- a/frontend/src/components/Modals/Password/SingleUserAuth.jsx
+++ b/frontend/src/components/Modals/Password/SingleUserAuth.jsx
@@ -70,18 +70,18 @@ export default function SingleUserAuth() {
   return (
     <>
       <form onSubmit={handleLogin}>
-        <div className="flex flex-col justify-center items-center relative rounded-2xl md:bg-login-gradient md:shadow-[0_4px_14px_rgba(0,0,0,0.25)] md:px-12 py-12 -mt-36 md:-mt-10">
+        <div className="flex flex-col justify-center items-center relative rounded-2xl bg-theme-bg-secondary md:shadow-[0_4px_14px_rgba(0,0,0,0.25)] md:px-12 py-12 -mt-36 md:-mt-10">
           <div className="flex items-start justify-between pt-11 pb-9 rounded-t">
             <div className="flex items-center flex-col gap-y-4">
               <div className="flex gap-x-1">
                 <h3 className="text-md md:text-2xl font-bold text-white text-center white-space-nowrap hidden md:block">
                   {t("login.multi-user.welcome")}
                 </h3>
-                <p className="text-4xl md:text-2xl font-bold bg-gradient-to-r from-[#75D6FF] via-[#FFFFFF] to-[#FFFFFF] bg-clip-text text-transparent">
+                <p className="text-4xl md:text-2xl font-bold bg-gradient-to-r from-[#75D6FF] via-[#FFFFFF] light:via-[#75D6FF] to-[#FFFFFF] light:to-[#75D6FF] bg-clip-text text-transparent">
                   {customAppName || "AnythingLLM"}
                 </p>
               </div>
-              <p className="text-sm text-white/90 text-center">
+              <p className="text-sm text-theme-text-secondary text-center">
                 {t("login.sign-in.start")} {customAppName || "AnythingLLM"}{" "}
                 {t("login.sign-in.end")}
               </p>
@@ -94,12 +94,11 @@ export default function SingleUserAuth() {
                   name="password"
                   type="password"
                   placeholder="Password"
-                  className="bg-zinc-900 text-white placeholder-white/20 text-sm rounded-md p-2.5 w-full h-[48px] md:w-[300px] md:h-[34px]"
+                  className="bg-theme-settings-input-bg text-theme-text-primary placeholder:text-theme-settings-input-placeholder focus:outline-primary-button active:outline-primary-button outline-none text-sm rounded-md p-2.5 w-full h-[48px] md:w-[300px] md:h-[34px]"
                   required={true}
                   autoComplete="off"
                 />
               </div>
-
               {error && <p className="text-red-400 text-sm">Error: {error}</p>}
             </div>
           </div>
@@ -109,13 +108,15 @@ export default function SingleUserAuth() {
               type="submit"
               className="md:text-primary-button md:bg-transparent text-dark-text text-sm font-bold focus:ring-4 focus:outline-none rounded-md border-[1.5px] border-primary-button md:h-[34px] h-[48px] md:hover:text-white md:hover:bg-primary-button bg-primary-button focus:z-10 w-full"
             >
-              {loading ? "Validating..." : "Login"}
+              {loading
+                ? t("login.multi-user.validating")
+                : t("login.multi-user.login")}
             </button>
           </div>
         </div>
       </form>
 
-      <ModalWrapper isOpen={isRecoveryCodeModalOpen}>
+      <ModalWrapper isOpen={isRecoveryCodeModalOpen} noPortal={true}>
         <RecoveryCodeModal
           recoveryCodes={recoveryCodes}
           onDownloadComplete={handleDownloadComplete}
diff --git a/frontend/src/components/Modals/Password/index.jsx b/frontend/src/components/Modals/Password/index.jsx
index 7010fc660..6f3f24e7f 100644
--- a/frontend/src/components/Modals/Password/index.jsx
+++ b/frontend/src/components/Modals/Password/index.jsx
@@ -13,7 +13,7 @@ import illustration from "@/media/illustrations/login-illustration.svg";
 export default function PasswordModal({ mode = "single" }) {
   const { loginLogo } = useLogo();
   return (
-    <div className="fixed top-0 left-0 right-0 z-50 w-full overflow-x-hidden overflow-y-auto md:inset-0 h-[calc(100%-1rem)] h-full bg-[#25272C] flex flex-col md:flex-row items-center justify-center">
+    <div className="fixed top-0 left-0 right-0 z-50 w-full overflow-x-hidden overflow-y-auto md:inset-0 h-[calc(100%-1rem)] h-full bg-theme-bg-primary flex flex-col md:flex-row items-center justify-center">
       <div
         style={{
           background: `
@@ -33,13 +33,13 @@ export default function PasswordModal({ mode = "single" }) {
           alt="login illustration"
         />
       </div>
-      <div className="flex flex-col items-center justify-center h-full w-full md:w-1/2 z-50 relative -mt-20">
+      <div className="flex flex-col items-center justify-center h-full w-full md:w-1/2 z-50 relative md:-mt-20 mt-0 !border-none bg-theme-bg-secondary md:bg-transparent">
         <img
           src={loginLogo}
           alt="Logo"
           className={`hidden relative md:flex rounded-2xl w-fit m-4 z-30 ${
             mode === "single" ? "md:top-2" : "md:top-12"
-          } absolute max-h-[65px] md:bg-login-gradient md:shadow-[0_4px_14px_rgba(0,0,0,0.25)]`}
+          } absolute max-h-[65px]`}
           style={{ objectFit: "contain" }}
         />
         {mode === "single" ? <SingleUserAuth /> : <MultiUserAuth />}
diff --git a/frontend/src/components/Preloader.jsx b/frontend/src/components/Preloader.jsx
index 4a81437bd..ce175828c 100644
--- a/frontend/src/components/Preloader.jsx
+++ b/frontend/src/components/Preloader.jsx
@@ -10,9 +10,9 @@ export function FullScreenLoader() {
   return (
     <div
       id="preloader"
-      className="fixed left-0 top-0 z-999999 flex h-screen w-screen items-center justify-center bg-sidebar"
+      className="fixed left-0 top-0 z-999999 flex h-screen w-screen items-center justify-center bg-theme-bg-primary"
     >
-      <div className="h-16 w-16 animate-spin rounded-full border-4 border-solid border-primary border-t-transparent"></div>
+      <div className="h-16 w-16 animate-spin rounded-full border-4 border-solid border-[var(--theme-loader)] border-t-transparent"></div>
     </div>
   );
 }
diff --git a/frontend/src/components/SettingsButton/index.jsx b/frontend/src/components/SettingsButton/index.jsx
index 6ce4fad15..98140bc8b 100644
--- a/frontend/src/components/SettingsButton/index.jsx
+++ b/frontend/src/components/SettingsButton/index.jsx
@@ -15,12 +15,16 @@ export default function SettingsButton() {
       <div className="flex w-fit">
         <Link
           to={paths.home()}
-          className="transition-all duration-300 p-2 rounded-full text-white bg-sidebar-button hover:bg-menu-item-selected-gradient hover:border-slate-100 hover:border-opacity-50 border-transparent border"
+          className="transition-all duration-300 p-2 rounded-full bg-theme-sidebar-footer-icon hover:bg-theme-sidebar-footer-icon-hover"
           aria-label="Home"
           data-tooltip-id="footer-item"
           data-tooltip-content="Back to workspaces"
         >
-          <ArrowUUpLeft className="h-5 w-5" weight="fill" />
+          <ArrowUUpLeft
+            className="h-5 w-5"
+            weight="fill"
+            color="var(--theme-sidebar-footer-icon-fill)"
+          />
         </Link>
       </div>
     );
@@ -29,12 +33,17 @@ export default function SettingsButton() {
     <div className="flex w-fit">
       <Link
         to={paths.settings.appearance()}
-        className="transition-all duration-300 p-2 rounded-full text-white bg-sidebar-button hover:bg-menu-item-selected-gradient hover:border-slate-100 hover:border-opacity-50 border-transparent border"
+        className="transition-all duration-300 p-2 rounded-full bg-theme-sidebar-footer-icon hover:bg-theme-sidebar-footer-icon-hover"
+        // className="transition-all duration-300 p-2 rounded-full  bg-sidebar-button hover:bg-menu-item-selected-gradient hover:border-slate-100 hover:border-opacity-50 border-transparent border"
         aria-label="Settings"
         data-tooltip-id="footer-item"
         data-tooltip-content="Open settings"
       >
-        <Wrench className="h-5 w-5" weight="fill" />
+        <Wrench
+          className="h-5 w-5"
+          weight="fill"
+          color="var(--theme-sidebar-footer-icon-fill)"
+        />
       </Link>
     </div>
   );
diff --git a/frontend/src/components/SettingsSidebar/MenuOption/index.jsx b/frontend/src/components/SettingsSidebar/MenuOption/index.jsx
index 3834549ea..7b2e42931 100644
--- a/frontend/src/components/SettingsSidebar/MenuOption/index.jsx
+++ b/frontend/src/components/SettingsSidebar/MenuOption/index.jsx
@@ -66,15 +66,15 @@ export default function MenuOption({
           rounded-[6px]
           ${
             isActive
-              ? "bg-white/5 font-medium border-outline"
-              : "hover:bg-white/5"
+              ? "bg-theme-sidebar-subitem-selected font-medium border-outline"
+              : "hover:bg-theme-sidebar-subitem-hover"
           }
         `}
       >
         <Link
           to={href}
           className={`flex flex-grow items-center px-[12px] h-[32px] font-medium ${
-            isChild ? "text-white/70 hover:text-white" : "text-white"
+            isChild ? "hover:text-white" : "text-white light:text-black"
           }`}
           onClick={hasChildren ? handleClick : undefined}
         >
@@ -83,7 +83,9 @@ export default function MenuOption({
             className={`${
               isChild ? "text-xs" : "text-sm"
             } leading-loose whitespace-nowrap overflow-hidden ml-2 ${
-              isActive ? "text-white" : ""
+              isActive
+                ? "text-white font-semibold"
+                : "text-white light:text-black"
             } ${!icon && "pl-5"}`}
           >
             {btnText}
@@ -94,7 +96,8 @@ export default function MenuOption({
             <CaretRight
               size={16}
               weight="bold"
-              className={`transition-transform ${
+              // color={isExpanded ? "#000000" : "var(--theme-sidebar-subitem-icon)"}
+              className={`transition-transform text-white light:text-black ${
                 isExpanded ? "rotate-90" : ""
               }`}
             />
diff --git a/frontend/src/components/SettingsSidebar/index.jsx b/frontend/src/components/SettingsSidebar/index.jsx
index 46eba5db9..bb2d32b2d 100644
--- a/frontend/src/components/SettingsSidebar/index.jsx
+++ b/frontend/src/components/SettingsSidebar/index.jsx
@@ -13,7 +13,6 @@ import {
   Toolbox,
 } from "@phosphor-icons/react";
 import useUser from "@/hooks/useUser";
-import { USER_BACKGROUND_COLOR } from "@/utils/constants";
 import { isMobile } from "react-device-detect";
 import Footer from "../Footer";
 import { Link } from "react-router-dom";
@@ -47,10 +46,10 @@ export default function SettingsSidebar() {
   if (isMobile) {
     return (
       <>
-        <div className="fixed top-0 left-0 right-0 z-10 flex justify-between items-center px-4 py-2 bg-sidebar text-slate-200 shadow-lg h-16">
+        <div className="fixed top-0 left-0 right-0 z-10 flex justify-between items-center px-4 py-2 bg-theme-bg-sidebar light:bg-white text-theme-text-secondary shadow-lg h-16">
           <button
             onClick={() => setShowSidebar(true)}
-            className="rounded-md p-2 flex items-center justify-center text-slate-200"
+            className="rounded-md p-2 flex items-center justify-center text-theme-text-secondary"
           >
             <List className="h-6 w-6" />
           </button>
@@ -75,12 +74,12 @@ export default function SettingsSidebar() {
               showBgOverlay
                 ? "transition-all opacity-1"
                 : "transition-none opacity-0"
-            }  duration-500 fixed top-0 left-0 ${USER_BACKGROUND_COLOR} bg-opacity-75 w-screen h-screen`}
+            }  duration-500 fixed top-0 left-0 bg-theme-bg-secondary bg-opacity-75 w-screen h-screen`}
             onClick={() => setShowSidebar(false)}
           />
           <div
             ref={sidebarRef}
-            className="h-[100vh] fixed top-0 left-0 rounded-r-[26px] bg-sidebar w-[80%] p-[18px]"
+            className="h-[100vh] fixed top-0 left-0 rounded-r-[26px] bg-theme-bg-sidebar w-[80%] p-[18px]"
           >
             <div className="w-full h-full flex flex-col overflow-x-hidden items-between">
               {/* Header Information */}
@@ -96,7 +95,7 @@ export default function SettingsSidebar() {
                 <div className="flex gap-x-2 items-center text-slate-500 shrink-0">
                   <a
                     href={paths.home()}
-                    className="transition-all duration-300 p-2 rounded-full text-white bg-sidebar-button hover:bg-menu-item-selected-gradient hover:border-slate-100 hover:border-opacity-50 border-transparent border"
+                    className="transition-all duration-300 p-2 rounded-full text-white bg-theme-action-menu-bg hover:bg-theme-action-menu-item-hover hover:border-slate-100 hover:border-opacity-50 border-transparent border"
                   >
                     <House className="h-4 w-4" />
                   </a>
@@ -105,7 +104,7 @@ export default function SettingsSidebar() {
 
               {/* Primary Body */}
               <div className="h-full flex flex-col w-full justify-between pt-4 overflow-y-scroll no-scroll">
-                <div className="h-auto md:sidebar-items md:dark:sidebar-items">
+                <div className="h-auto md:sidebar-items">
                   <div className="flex flex-col gap-y-4 pb-[60px] overflow-y-scroll no-scroll">
                     <SidebarOptions user={user} t={t} />
                     <div className="h-[1.5px] bg-[#3D4147] mx-3 mt-[14px]" />
@@ -115,14 +114,14 @@ export default function SettingsSidebar() {
                         user?.hasOwnProperty("role") && user.role !== "admin"
                       }
                       to={paths.settings.privacy()}
-                      className="text-darker hover:text-white text-xs leading-[18px] mx-3"
+                      className="text-theme-text-secondary hover:text-white text-xs leading-[18px] mx-3"
                     >
                       {t("settings.privacy")}
                     </Link>
                   </div>
                 </div>
               </div>
-              <div className="absolute bottom-2 left-0 right-0 pt-2 bg-sidebar bg-opacity-80 backdrop-filter backdrop-blur-md">
+              <div className="absolute bottom-2 left-0 right-0 pt-2 bg-theme-bg-sidebar bg-opacity-80 backdrop-filter backdrop-blur-md">
                 <Footer />
               </div>
             </div>
@@ -148,10 +147,10 @@ export default function SettingsSidebar() {
         </Link>
         <div
           ref={sidebarRef}
-          className="transition-all duration-500 relative m-[16px] rounded-[16px] bg-sidebar border-2 border-outline min-w-[250px] p-[10px] h-[calc(100%-76px)]"
+          className="transition-all duration-500 relative m-[16px] rounded-[16px] bg-theme-bg-sidebar border-[2px] border-theme-sidebar-border light:border-none min-w-[250px] p-[10px] h-[calc(100%-76px)]"
         >
           <div className="w-full h-full flex flex-col overflow-x-hidden items-between min-w-[235px]">
-            <div className="text-white text-opacity-60 text-sm font-medium uppercase mt-[4px] mb-0 ml-2">
+            <div className="text-theme-text-secondary text-sm font-medium uppercase mt-[4px] mb-0 ml-2">
               {t("settings.title")}
             </div>
             <div className="relative h-[calc(100%-60px)] flex flex-col w-full justify-between pt-[10px] overflow-y-scroll no-scroll">
@@ -165,14 +164,14 @@ export default function SettingsSidebar() {
                       user?.hasOwnProperty("role") && user.role !== "admin"
                     }
                     to={paths.settings.privacy()}
-                    className="text-darker hover:text-white text-xs leading-[18px] mx-3"
+                    className="text-theme-text-secondary hover:text-white hover:light:text-theme-text-primary text-xs leading-[18px] mx-3"
                   >
                     {t("settings.privacy")}
                   </Link>
                 </div>
               </div>
             </div>
-            <div className="absolute bottom-0 left-0 right-0 pt-4 pb-3 rounded-b-[16px] bg-sidebar bg-opacity-80 backdrop-filter backdrop-blur-md z-10">
+            <div className="absolute bottom-0 left-0 right-0 pt-4 pb-3 rounded-b-[16px] bg-theme-bg-sidebar bg-opacity-80 backdrop-filter backdrop-blur-md z-10">
               <Footer />
             </div>
           </div>
@@ -201,7 +200,7 @@ function SupportEmail() {
   return (
     <Link
       to={supportEmail}
-      className="text-darker hover:text-white text-xs leading-[18px] mx-3 mt-1"
+      className="text-theme-text-secondary hover:text-white hover:light:text-theme-text-primary text-xs leading-[18px] mx-3 mt-1"
     >
       {t("settings.contact")}
     </Link>
diff --git a/frontend/src/components/Sidebar/ActiveWorkspaces/ThreadContainer/ThreadItem/index.jsx b/frontend/src/components/Sidebar/ActiveWorkspaces/ThreadContainer/ThreadItem/index.jsx
index c4062102e..89d17ec6a 100644
--- a/frontend/src/components/Sidebar/ActiveWorkspaces/ThreadContainer/ThreadItem/index.jsx
+++ b/frontend/src/components/Sidebar/ActiveWorkspaces/ThreadContainer/ThreadItem/index.jsx
@@ -33,7 +33,7 @@ export default function ThreadItem({
 
   return (
     <div
-      className="w-full relative flex h-[38px] items-center border-none hover:bg-slate-600/20 rounded-lg"
+      className="w-full relative flex h-[38px] items-center border-none rounded-lg"
       role="listitem"
     >
       {/* Curved line Element and leader if required */}
@@ -41,9 +41,9 @@ export default function ThreadItem({
         style={{ width: THREAD_CALLOUT_DETAIL_WIDTH / 2 }}
         className={`${
           isActive
-            ? "border-l-2 border-b-2 border-white"
-            : "border-l border-b border-slate-300"
-        } h-[50%] absolute top-0 z-10 left-2 rounded-bl-lg`}
+            ? "border-l-2 border-b-2 border-white light:border-theme-sidebar-border z-30"
+            : "border-l border-b border-[#6F6F71] light:border-theme-sidebar-border z-10"
+        } h-[50%] absolute top-0 left-2 rounded-bl-lg`}
       ></div>
       {/* Downstroke border for next item */}
       {hasNext && (
@@ -51,9 +51,9 @@ export default function ThreadItem({
           style={{ width: THREAD_CALLOUT_DETAIL_WIDTH / 2 }}
           className={`${
             idx <= activeIdx && !isActive
-              ? "border-l-2 border-white"
-              : "border-l border-slate-300"
-          } h-[100%] absolute top-0 z-1 left-2`}
+              ? "border-l-2 border-white light:border-theme-sidebar-border z-20"
+              : "border-l border-[#6F6F71] light:border-theme-sidebar-border z-10"
+          } h-[100%] absolute top-0 left-2`}
         ></div>
       )}
 
@@ -62,11 +62,15 @@ export default function ThreadItem({
         style={{ width: THREAD_CALLOUT_DETAIL_WIDTH + 8 }}
         className="h-full"
       />
-      <div className="flex w-full items-center justify-between pr-2 group relative">
+      <div
+        className={`flex w-full items-center justify-between pr-2 group relative ${isActive ? "bg-[var(--theme-sidebar-thread-selected)]" : "hover:bg-theme-sidebar-subitem-hover"} rounded-[4px]`}
+      >
         {thread.deleted ? (
           <div className="w-full flex justify-between">
-            <div className="w-full ">
-              <p className={`text-left text-sm text-slate-400/50 italic`}>
+            <div className="w-full pl-2 py-1">
+              <p
+                className={`text-left text-sm text-slate-400/50 light:text-slate-500 italic`}
+              >
                 deleted thread
               </p>
             </div>
@@ -77,7 +81,7 @@ export default function ThreadItem({
                 onClick={() => toggleMarkForDeletion(thread.id)}
               >
                 <ArrowCounterClockwise
-                  className="text-zinc-300 hover:text-white"
+                  className="text-zinc-300 hover:text-white light:text-theme-text-secondary hover:light:text-theme-text-primary"
                   size={18}
                 />
               </button>
@@ -88,12 +92,12 @@ export default function ThreadItem({
             href={
               window.location.pathname === linkTo || ctrlPressed ? "#" : linkTo
             }
-            className="w-full"
+            className="w-full pl-2 py-1"
             aria-current={isActive ? "page" : ""}
           >
             <p
               className={`text-left text-sm ${
-                isActive ? "font-medium text-white" : "text-slate-400"
+                isActive ? "font-medium text-white" : "text-theme-text-primary"
               }`}
             >
               {truncate(thread.name, 25)}
@@ -101,7 +105,9 @@ export default function ThreadItem({
           </a>
         )}
         {!!thread.slug && !thread.deleted && (
-          <div ref={optionsContainer}>
+          <div ref={optionsContainer} className="flex items-center">
+            {" "}
+            {/* Added flex and items-center */}
             {ctrlPressed ? (
               <button
                 type="button"
@@ -109,7 +115,7 @@ export default function ThreadItem({
                 onClick={() => toggleMarkForDeletion(thread.id)}
               >
                 <X
-                  className="text-zinc-300 hover:text-white"
+                  className="text-zinc-300 light:text-theme-text-secondary hover:text-white hover:light:text-theme-text-primary"
                   weight="bold"
                   size={18}
                 />
@@ -122,7 +128,10 @@ export default function ThreadItem({
                   onClick={() => setShowOptions(!showOptions)}
                   aria-label="Thread options"
                 >
-                  <DotsThree className="text-slate-300" size={25} />
+                  <DotsThree
+                    className="text-slate-300 light:text-theme-text-secondary hover:text-white hover:light:text-theme-text-primary"
+                    size={25}
+                  />
                 </button>
               </div>
             )}
@@ -225,12 +234,12 @@ function OptionsMenu({ containerRef, workspace, thread, onRemove, close }) {
   return (
     <div
       ref={menuRef}
-      className="absolute w-fit z-[20] top-[25px] right-[10px] bg-zinc-900 rounded-lg p-1"
+      className="absolute w-fit z-[20] top-[25px] right-[10px] bg-zinc-900 light:bg-theme-bg-sidebar light:border-[1px] light:border-theme-sidebar-border rounded-lg p-1"
     >
       <button
         onClick={renameThread}
         type="button"
-        className="w-full rounded-md flex items-center p-2 gap-x-2 hover:bg-slate-500/20 text-slate-300"
+        className="w-full rounded-md flex items-center p-2 gap-x-2 hover:bg-slate-500/20 text-slate-300 light:text-theme-text-primary"
       >
         <PencilSimple size={18} />
         <p className="text-sm">Rename</p>
@@ -238,7 +247,7 @@ function OptionsMenu({ containerRef, workspace, thread, onRemove, close }) {
       <button
         onClick={handleDelete}
         type="button"
-        className="w-full rounded-md flex items-center p-2 gap-x-2 hover:bg-red-500/20 text-slate-300 hover:text-red-100"
+        className="w-full rounded-md flex items-center p-2 gap-x-2 hover:bg-red-500/20 text-slate-300 light:text-theme-text-primary hover:text-red-100"
       >
         <Trash size={18} />
         <p className="text-sm">Delete Thread</p>
diff --git a/frontend/src/components/Sidebar/ActiveWorkspaces/ThreadContainer/index.jsx b/frontend/src/components/Sidebar/ActiveWorkspaces/ThreadContainer/index.jsx
index 63cbef7b8..d311ca0ce 100644
--- a/frontend/src/components/Sidebar/ActiveWorkspaces/ThreadContainer/index.jsx
+++ b/frontend/src/components/Sidebar/ActiveWorkspaces/ThreadContainer/index.jsx
@@ -107,9 +107,7 @@ export default function ThreadContainer({ workspace }) {
   if (loading) {
     return (
       <div className="flex flex-col bg-pulse w-full h-10 items-center justify-center">
-        <p className="text-xs text-slate-600 animate-pulse">
-          loading threads....
-        </p>
+        <p className="text-xs text-white animate-pulse">loading threads....</p>
       </div>
     );
   }
@@ -171,25 +169,33 @@ function NewThreadButton({ workspace }) {
   return (
     <button
       onClick={onClick}
-      className="w-full relative flex h-[40px] items-center border-none hover:bg-slate-600/20 rounded-lg"
+      className="w-full relative flex h-[40px] items-center border-none hover:bg-[var(--theme-sidebar-thread-selected)] rounded-lg"
     >
       <div className="flex w-full gap-x-2 items-center pl-4">
-        <div className="bg-zinc-600 p-2 rounded-lg h-[24px] w-[24px] flex items-center justify-center">
+        <div className="bg-white/20 p-2 rounded-lg h-[24px] w-[24px] flex items-center justify-center">
           {loading ? (
             <CircleNotch
               weight="bold"
               size={14}
-              className="shrink-0 animate-spin text-slate-100"
+              className="shrink-0 animate-spin text-white light:text-theme-text-primary"
             />
           ) : (
-            <Plus weight="bold" size={14} className="shrink-0 text-slate-100" />
+            <Plus
+              weight="bold"
+              size={14}
+              className="shrink-0 text-white light:text-theme-text-primary"
+            />
           )}
         </div>
 
         {loading ? (
-          <p className="text-left text-slate-100 text-sm">Starting Thread...</p>
+          <p className="text-left text-white light:text-theme-text-primary text-sm">
+            Starting Thread...
+          </p>
         ) : (
-          <p className="text-left text-slate-100 text-sm">New Thread</p>
+          <p className="text-left text-white light:text-theme-text-primary text-sm">
+            New Thread
+          </p>
         )}
       </div>
     </button>
@@ -206,14 +212,14 @@ function DeleteAllThreadButton({ ctrlPressed, threads, onDelete }) {
       className="w-full relative flex h-[40px] items-center border-none hover:bg-red-400/20 rounded-lg group"
     >
       <div className="flex w-full gap-x-2 items-center pl-4">
-        <div className="bg-zinc-600 p-2 rounded-lg h-[24px] w-[24px] flex items-center justify-center">
+        <div className="bg-zinc-600 light:bg-transparent p-2 rounded-lg h-[24px] w-[24px] flex items-center justify-center">
           <Trash
             weight="bold"
             size={14}
-            className="shrink-0 text-slate-100 group-hover:text-red-400"
+            className="shrink-0 text-white light:text-red-500/50 group-hover:text-red-400"
           />
         </div>
-        <p className="text-white text-left text-sm group-hover:text-red-400">
+        <p className="text-white light:text-theme-text-secondary text-left text-sm group-hover:text-red-400">
           Delete Selected
         </p>
       </div>
diff --git a/frontend/src/components/Sidebar/ActiveWorkspaces/index.jsx b/frontend/src/components/Sidebar/ActiveWorkspaces/index.jsx
index da052b643..44a4cdce5 100644
--- a/frontend/src/components/Sidebar/ActiveWorkspaces/index.jsx
+++ b/frontend/src/components/Sidebar/ActiveWorkspaces/index.jsx
@@ -1,4 +1,4 @@
-import React, { useState, useEffect, useCallback } from "react";
+import React, { useState, useEffect } from "react";
 import * as Skeleton from "react-loading-skeleton";
 import "react-loading-skeleton/dist/skeleton.css";
 import Workspace from "@/models/workspace";
@@ -8,7 +8,6 @@ import ManageWorkspace, {
 import paths from "@/utils/paths";
 import { useParams } from "react-router-dom";
 import { GearSix, SquaresFour, UploadSimple } from "@phosphor-icons/react";
-import truncate from "truncate";
 import useUser from "@/hooks/useUser";
 import ThreadContainer from "./ThreadContainer";
 import { Link, useMatch } from "react-router-dom";
@@ -18,9 +17,6 @@ export default function ActiveWorkspaces() {
   const [loading, setLoading] = useState(true);
   const [workspaces, setWorkspaces] = useState([]);
   const [selectedWs, setSelectedWs] = useState(null);
-  const [hoverStates, setHoverStates] = useState({});
-  const [gearHover, setGearHover] = useState({});
-  const [uploadHover, setUploadHover] = useState({});
   const { showing, showModal, hideModal } = useManageWorkspaceModal();
   const { user } = useUser();
   const isInWorkspaceSettings = !!useMatch("/workspace/:slug/settings/:tab");
@@ -33,41 +29,18 @@ export default function ActiveWorkspaces() {
     }
     getWorkspaces();
   }, []);
-  const handleMouseEnter = useCallback((workspaceId) => {
-    setHoverStates((prev) => ({ ...prev, [workspaceId]: true }));
-  }, []);
-
-  const handleMouseLeave = useCallback((workspaceId) => {
-    setHoverStates((prev) => ({ ...prev, [workspaceId]: false }));
-  }, []);
-  const handleGearMouseEnter = useCallback((workspaceId) => {
-    setGearHover((prev) => ({ ...prev, [workspaceId]: true }));
-  }, []);
-
-  const handleGearMouseLeave = useCallback((workspaceId) => {
-    setGearHover((prev) => ({ ...prev, [workspaceId]: false }));
-  }, []);
-
-  const handleUploadMouseEnter = useCallback((workspaceId) => {
-    setUploadHover((prev) => ({ ...prev, [workspaceId]: true }));
-  }, []);
-
-  const handleUploadMouseLeave = useCallback((workspaceId) => {
-    setUploadHover((prev) => ({ ...prev, [workspaceId]: false }));
-  }, []);
 
   if (loading) {
     return (
-      <>
-        <Skeleton.default
-          height={36}
-          width="100%"
-          count={3}
-          baseColor="#292524"
-          highlightColor="#4c4948"
-          enableAnimation={true}
-        />
-      </>
+      <Skeleton.default
+        height={40}
+        width="100%"
+        count={5}
+        baseColor="var(--theme-sidebar-item-default)"
+        highlightColor="var(--theme-sidebar-item-hover)"
+        enableAnimation={true}
+        className="my-1"
+      />
     );
   }
 
@@ -75,81 +48,67 @@ export default function ActiveWorkspaces() {
     <div role="list" aria-label="Workspaces" className="flex flex-col gap-y-2">
       {workspaces.map((workspace) => {
         const isActive = workspace.slug === slug;
-        const isHovered = hoverStates[workspace.id];
         return (
           <div
-            className="flex flex-col w-full"
-            onMouseEnter={() => handleMouseEnter(workspace.id)}
-            onMouseLeave={() => handleMouseLeave(workspace.id)}
+            className="flex flex-col w-full group"
             key={workspace.id}
             role="listitem"
           >
-            <div
-              key={workspace.id}
-              className="flex gap-x-2 items-center justify-between"
-            >
+            <div className="flex gap-x-2 items-center justify-between">
               <a
                 href={isActive ? null : paths.workspace.chat(workspace.slug)}
                 aria-current={isActive ? "page" : ""}
                 className={`
-              transition-all duration-[200ms]
-                flex flex-grow w-[75%] gap-x-2 py-[6px] px-[12px] rounded-[4px] text-white justify-start items-center
-                hover:bg-workspace-item-selected-gradient hover:font-bold border-2 border-outline
-                ${
-                  isActive
-                    ? "bg-workspace-item-selected-gradient font-bold"
-                    : ""
-                }`}
+                  transition-all duration-[200ms]
+                  flex flex-grow w-[75%] gap-x-2 py-[6px] px-[12px] rounded-[4px] text-white justify-start items-center
+                  bg-theme-sidebar-item-default
+                  hover:bg-theme-sidebar-subitem-hover hover:font-bold
+                  ${isActive ? "bg-theme-sidebar-item-selected font-bold border-2 border-transparent light:border-blue-400" : ""}
+                `}
               >
                 <div className="flex flex-row justify-between w-full">
-                  <div className="flex items-center space-x-2">
+                  <div className="flex items-center space-x-2 overflow-hidden">
                     <SquaresFour
                       weight={isActive ? "fill" : "regular"}
                       className="flex-shrink-0"
+                      color={
+                        isActive
+                          ? "var(--theme-sidebar-item-workspace-active)"
+                          : "var(--theme-sidebar-item-workspace-inactive)"
+                      }
                       size={24}
                     />
-                    <p
-                      className={`text-[14px] leading-loose whitespace-nowrap overflow-hidden ${
-                        isActive ? "text-white " : "text-zinc-200"
-                      }`}
-                    >
-                      {isActive || isHovered
-                        ? truncate(workspace.name, 15)
-                        : truncate(workspace.name, 20)}
-                    </p>
-                  </div>
-                  {(isActive || isHovered || gearHover[workspace.id]) &&
-                  user?.role !== "default" ? (
-                    <div className="flex items-center gap-x-[2px]">
-                      <div
-                        className={`flex hover:bg-[#646768] p-[2px] rounded-[4px] text-[#A7A8A9] hover:text-white ${
-                          uploadHover[workspace.id] ? "bg-[#646768]" : ""
-                        }`}
+                    <div className="w-[130px] overflow-hidden">
+                      <p
+                        className={`
+                        text-[14px] leading-loose whitespace-nowrap overflow-hidden text-white
+                        ${isActive ? "font-bold" : "font-medium"} truncate
+                        w-full group-hover:w-[100px] group-hover:font-bold group-hover:duration-200
+                      `}
                       >
-                        <button
-                          type="button"
-                          onClick={(e) => {
-                            e.preventDefault();
-                            setSelectedWs(workspace);
-                            showModal();
-                          }}
-                          onMouseEnter={() =>
-                            handleUploadMouseEnter(workspace.id)
-                          }
-                          onMouseLeave={() =>
-                            handleUploadMouseLeave(workspace.id)
-                          }
-                          className="rounded-md flex items-center justify-center ml-auto"
-                        >
-                          <UploadSimple
-                            className="h-[20px] w-[20px]"
-                            weight="bold"
-                          />
-                        </button>
-                      </div>
-
-                      <Link
+                        {workspace.name}
+                      </p>
+                    </div>
+                  </div>
+                  {user?.role !== "default" && (
+                    <div
+                      className={`flex items-center gap-x-[2px] transition-opacity duration-200 ${isActive ? "opacity-100" : "opacity-0 group-hover:opacity-100"}`}
+                    >
+                      <button
                         type="button"
+                        onClick={(e) => {
+                          e.preventDefault();
+                          setSelectedWs(workspace);
+                          showModal();
+                        }}
+                        className="rounded-md flex items-center justify-center ml-auto p-[2px] hover:bg-[#646768] text-[#A7A8A9] hover:text-white"
+                      >
+                        <UploadSimple
+                          className="h-[20px] w-[20px]"
+                          weight="bold"
+                        />
+                      </button>
+                      <Link
                         to={
                           isInWorkspaceSettings
                             ? paths.workspace.chat(workspace.slug)
@@ -157,27 +116,21 @@ export default function ActiveWorkspaces() {
                                 workspace.slug
                               )
                         }
-                        onMouseEnter={() => handleGearMouseEnter(workspace.id)}
-                        onMouseLeave={() => handleGearMouseLeave(workspace.id)}
-                        className="rounded-md flex items-center justify-center text-[#A7A8A9] hover:text-white ml-auto"
+                        className="rounded-md flex items-center justify-center text-[#A7A8A9] hover:text-white ml-auto p-[2px] hover:bg-[#646768]"
                         aria-label="General appearance settings"
                       >
-                        <div className="flex hover:bg-[#646768] p-[2px] rounded-[4px]">
-                          <GearSix
-                            color={
-                              isInWorkspaceSettings && workspace.slug === slug
-                                ? "#46C8FF"
-                                : gearHover[workspace.id]
-                                  ? "#FFFFFF"
-                                  : "#A7A8A9"
-                            }
-                            weight="bold"
-                            className="h-[20px] w-[20px]"
-                          />
-                        </div>
+                        <GearSix
+                          color={
+                            isInWorkspaceSettings && workspace.slug === slug
+                              ? "#46C8FF"
+                              : undefined
+                          }
+                          weight="bold"
+                          className="h-[20px] w-[20px]"
+                        />
                       </Link>
                     </div>
-                  ) : null}
+                  )}
                 </div>
               </a>
             </div>
diff --git a/frontend/src/components/Sidebar/index.jsx b/frontend/src/components/Sidebar/index.jsx
index 0daf9f698..edfac23bb 100644
--- a/frontend/src/components/Sidebar/index.jsx
+++ b/frontend/src/components/Sidebar/index.jsx
@@ -4,7 +4,6 @@ import NewWorkspaceModal, {
   useNewWorkspaceModal,
 } from "../Modals/NewWorkspace";
 import ActiveWorkspaces from "./ActiveWorkspaces";
-import { USER_BACKGROUND_COLOR } from "@/utils/constants";
 import useLogo from "@/hooks/useLogo";
 import useUser from "@/hooks/useUser";
 import Footer from "../Footer";
@@ -39,7 +38,7 @@ export default function Sidebar() {
       </Link>
       <div
         ref={sidebarRef}
-        className="relative m-[16px] rounded-[16px] bg-sidebar border-2 border-outline min-w-[250px] p-[10px] h-[calc(100%-76px)]"
+        className="relative m-[16px] rounded-[16px] bg-theme-bg-sidebar border-[2px] border-theme-sidebar-border light:border-none min-w-[250px] p-[10px] h-[calc(100%-76px)]"
       >
         <div className="flex flex-col h-full overflow-x-hidden">
           <div className="flex-grow flex flex-col min-w-[235px]">
@@ -49,7 +48,7 @@ export default function Sidebar() {
                   {(!user || user?.role !== "default") && (
                     <button
                       onClick={showNewWsModal}
-                      className="flex flex-grow w-[75%] h-[44px] gap-x-2 py-[5px] px-2.5 mb-2 bg-white rounded-[8px] text-sidebar justify-center items-center hover:bg-opacity-80 transition-all duration-300"
+                      className="light:bg-[#C2E7FE] light:hover:bg-[#C2E7FE]/50 flex flex-grow w-[75%] h-[44px] gap-x-2 py-[5px] px-2.5 mb-2 bg-white rounded-[8px] text-sidebar justify-center items-center hover:bg-opacity-80 transition-all duration-300"
                     >
                       <Plus size={18} weight="bold" />
                       <p className="text-sidebar text-sm font-semibold">
@@ -61,7 +60,7 @@ export default function Sidebar() {
                 <ActiveWorkspaces />
               </div>
             </div>
-            <div className="absolute bottom-0 left-0 right-0 pt-4 pb-3 rounded-b-[16px] bg-sidebar bg-opacity-80 backdrop-filter backdrop-blur-md z-10">
+            <div className="absolute bottom-0 left-0 right-0 pt-4 pb-3 rounded-b-[16px] bg-theme-bg-sidebar bg-opacity-80 backdrop-filter backdrop-blur-md z-10">
               <Footer />
             </div>
           </div>
@@ -104,11 +103,11 @@ export function SidebarMobileHeader() {
     <>
       <div
         aria-label="Show sidebar"
-        className="fixed top-0 left-0 right-0 z-10 flex justify-between items-center px-4 py-2 bg-sidebar text-slate-200 shadow-lg h-16"
+        className="fixed top-0 left-0 right-0 z-10 flex justify-between items-center px-4 py-2 bg-theme-bg-sidebar light:bg-white text-slate-200 shadow-lg h-16"
       >
         <button
           onClick={() => setShowSidebar(true)}
-          className="rounded-md p-2 flex items-center justify-center text-slate-200"
+          className="rounded-md p-2 flex items-center justify-center text-theme-text-secondary"
         >
           <List className="h-6 w-6" />
         </button>
@@ -133,12 +132,12 @@ export function SidebarMobileHeader() {
             showBgOverlay
               ? "transition-all opacity-1"
               : "transition-none opacity-0"
-          }  duration-500 fixed top-0 left-0 ${USER_BACKGROUND_COLOR} bg-opacity-75 w-screen h-screen`}
+          }  duration-500 fixed top-0 left-0 bg-theme-bg-secondary bg-opacity-75 w-screen h-screen`}
           onClick={() => setShowSidebar(false)}
         />
         <div
           ref={sidebarRef}
-          className="relative h-[100vh] fixed top-0 left-0  rounded-r-[26px] bg-sidebar w-[80%] p-[18px] "
+          className="relative h-[100vh] fixed top-0 left-0  rounded-r-[26px] bg-theme-bg-sidebar w-[80%] p-[18px] "
         >
           <div className="w-full h-full flex flex-col overflow-x-hidden items-between">
             {/* Header Information */}
@@ -178,7 +177,7 @@ export function SidebarMobileHeader() {
                   <ActiveWorkspaces />
                 </div>
               </div>
-              <div className="z-99 absolute bottom-0 left-0 right-0 pt-2 pb-6 rounded-br-[26px] bg-sidebar bg-opacity-80 backdrop-filter backdrop-blur-md">
+              <div className="z-99 absolute bottom-0 left-0 right-0 pt-2 pb-6 rounded-br-[26px] bg-theme-bg-sidebar bg-opacity-80 backdrop-filter backdrop-blur-md">
                 <Footer />
               </div>
             </div>
diff --git a/frontend/src/components/TextToSpeech/ElevenLabsOptions/index.jsx b/frontend/src/components/TextToSpeech/ElevenLabsOptions/index.jsx
index 2b19dd98a..0f6926f8f 100644
--- a/frontend/src/components/TextToSpeech/ElevenLabsOptions/index.jsx
+++ b/frontend/src/components/TextToSpeech/ElevenLabsOptions/index.jsx
@@ -16,7 +16,7 @@ export default function ElevenLabsOptions({ settings }) {
         <input
           type="password"
           name="TTSElevenLabsKey"
-          className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+          className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
           placeholder="ElevenLabs API Key"
           defaultValue={settings?.TTSElevenLabsKey ? "*".repeat(20) : ""}
           required={true}
@@ -68,7 +68,7 @@ function ElevenLabsModelSelection({ apiKey, settings }) {
         <select
           name="TTSElevenLabsVoiceModel"
           disabled={true}
-          className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+          className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
         >
           <option disabled={true} selected={true}>
             -- loading available models --
@@ -86,7 +86,7 @@ function ElevenLabsModelSelection({ apiKey, settings }) {
       <select
         name="TTSElevenLabsVoiceModel"
         required={true}
-        className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+        className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
       >
         {Object.keys(groupedModels)
           .sort()
diff --git a/frontend/src/components/TextToSpeech/OpenAiGenericOptions/index.jsx b/frontend/src/components/TextToSpeech/OpenAiGenericOptions/index.jsx
index 2247544cd..9517c14a9 100644
--- a/frontend/src/components/TextToSpeech/OpenAiGenericOptions/index.jsx
+++ b/frontend/src/components/TextToSpeech/OpenAiGenericOptions/index.jsx
@@ -11,7 +11,7 @@ export default function OpenAiGenericTextToSpeechOptions({ settings }) {
           <input
             type="url"
             name="TTSOpenAICompatibleEndpoint"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="http://localhost:7851/v1"
             defaultValue={settings?.TTSOpenAICompatibleEndpoint}
             required={false}
@@ -31,7 +31,7 @@ export default function OpenAiGenericTextToSpeechOptions({ settings }) {
           <input
             type="password"
             name="TTSOpenAICompatibleKey"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="API Key"
             defaultValue={
               settings?.TTSOpenAICompatibleKey ? "*".repeat(20) : ""
@@ -51,7 +51,7 @@ export default function OpenAiGenericTextToSpeechOptions({ settings }) {
           <input
             type="text"
             name="TTSOpenAICompatibleVoiceModel"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="Your voice model identifier"
             defaultValue={settings?.TTSOpenAICompatibleVoiceModel}
             required={true}
diff --git a/frontend/src/components/TextToSpeech/OpenAiOptions/index.jsx b/frontend/src/components/TextToSpeech/OpenAiOptions/index.jsx
index 490e8486a..97d0411f5 100644
--- a/frontend/src/components/TextToSpeech/OpenAiOptions/index.jsx
+++ b/frontend/src/components/TextToSpeech/OpenAiOptions/index.jsx
@@ -16,7 +16,7 @@ export default function OpenAiTextToSpeechOptions({ settings }) {
         <input
           type="password"
           name="TTSOpenAIKey"
-          className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+          className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
           placeholder="OpenAI API Key"
           defaultValue={apiKey ? "*".repeat(20) : ""}
           required={true}
@@ -31,7 +31,7 @@ export default function OpenAiTextToSpeechOptions({ settings }) {
         <select
           name="TTSOpenAIVoiceModel"
           defaultValue={settings?.TTSOpenAIVoiceModel ?? "alloy"}
-          className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+          className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
         >
           {["alloy", "echo", "fable", "onyx", "nova", "shimmer"].map(
             (voice) => {
diff --git a/frontend/src/components/TextToSpeech/PiperTTSOptions/index.jsx b/frontend/src/components/TextToSpeech/PiperTTSOptions/index.jsx
index 48b87efe7..1bdd28342 100644
--- a/frontend/src/components/TextToSpeech/PiperTTSOptions/index.jsx
+++ b/frontend/src/components/TextToSpeech/PiperTTSOptions/index.jsx
@@ -75,7 +75,7 @@ function PiperTTSModelSelection({ settings }) {
           name="TTSPiperTTSVoiceModel"
           value=""
           disabled={true}
-          className="border-none bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+          className="border-none bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
         >
           <option value="" disabled={true}>
             -- loading available models --
@@ -97,7 +97,7 @@ function PiperTTSModelSelection({ settings }) {
             required={true}
             onChange={(e) => setSelectedVoice(e.target.value)}
             value={selectedVoice}
-            className="border-none flex-shrink-0 bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+            className="border-none flex-shrink-0 bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
           >
             {voicesByLanguage(voices).map(([lang, voices]) => {
               return (
@@ -202,8 +202,8 @@ function DemoVoiceSample({ voiceId }) {
             </>
           ) : (
             <>
-              <PlayCircle size={20} className="flex-shrink-0" />
-              <p className="text-sm flex-shrink-0">Play sample</p>
+              <PlayCircle size={20} className="flex-shrink-0 text-white" />
+              <p className="text-white text-sm flex-shrink-0">Play sample</p>
             </>
           )}
         </>
diff --git a/frontend/src/components/TranscriptionSelection/NativeTranscriptionOptions/index.jsx b/frontend/src/components/TranscriptionSelection/NativeTranscriptionOptions/index.jsx
index dd14fb855..c12f89fa7 100644
--- a/frontend/src/components/TranscriptionSelection/NativeTranscriptionOptions/index.jsx
+++ b/frontend/src/components/TranscriptionSelection/NativeTranscriptionOptions/index.jsx
@@ -18,7 +18,7 @@ export default function NativeTranscriptionOptions({ settings }) {
             name="WhisperModelPref"
             defaultValue={model}
             onChange={(e) => setModel(e.target.value)}
-            className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+            className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
           >
             {["Xenova/whisper-small", "Xenova/whisper-large"].map(
               (value, i) => {
diff --git a/frontend/src/components/TranscriptionSelection/OpenAiOptions/index.jsx b/frontend/src/components/TranscriptionSelection/OpenAiOptions/index.jsx
index 014da9d9d..59e6eb927 100644
--- a/frontend/src/components/TranscriptionSelection/OpenAiOptions/index.jsx
+++ b/frontend/src/components/TranscriptionSelection/OpenAiOptions/index.jsx
@@ -13,7 +13,7 @@ export default function OpenAiWhisperOptions({ settings }) {
         <input
           type="password"
           name="OpenAiKey"
-          className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+          className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
           placeholder="OpenAI API Key"
           defaultValue={settings?.OpenAiKey ? "*".repeat(20) : ""}
           required={true}
@@ -29,7 +29,7 @@ export default function OpenAiWhisperOptions({ settings }) {
         </label>
         <select
           disabled={true}
-          className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
+          className="bg-theme-settings-input-bg border-gray-500 text-white text-sm rounded-lg block w-full p-2.5"
         >
           <option disabled={true} selected={true}>
             Whisper Large
diff --git a/frontend/src/components/UserIcon/index.jsx b/frontend/src/components/UserIcon/index.jsx
index 037a2aff0..c6de31dd4 100644
--- a/frontend/src/components/UserIcon/index.jsx
+++ b/frontend/src/components/UserIcon/index.jsx
@@ -13,7 +13,7 @@ const UserIcon = memo(({ role }) => {
         <img
           src={WorkspaceDefaultPfp}
           alt="system profile picture"
-          className="flex items-center justify-center rounded-full border border-white/40"
+          className="flex items-center justify-center rounded-full border border-white/40 light:border-theme-sidebar-border light:bg-theme-bg-chat-input"
         />
       )}
     </div>
diff --git a/frontend/src/components/UserMenu/AccountModal/index.jsx b/frontend/src/components/UserMenu/AccountModal/index.jsx
index 9fe7f60a2..7cff3a307 100644
--- a/frontend/src/components/UserMenu/AccountModal/index.jsx
+++ b/frontend/src/components/UserMenu/AccountModal/index.jsx
@@ -4,6 +4,8 @@ import System from "@/models/system";
 import { AUTH_USER } from "@/utils/constants";
 import showToast from "@/utils/toast";
 import { Plus, X } from "@phosphor-icons/react";
+import ModalWrapper from "@/components/ModalWrapper";
+import { useTheme } from "@/hooks/useTheme";
 
 export default function AccountModal({ user, hideModal }) {
   const { pfp, setPfp } = usePfp();
@@ -61,122 +63,131 @@ export default function AccountModal({ user, hideModal }) {
   };
 
   return (
-    <div
-      id="account-modal"
-      className="bg-black/60 backdrop-blur-sm fixed top-0 left-0 outline-none w-screen h-screen flex items-center justify-center"
-    >
-      <div className="relative w-[500px] max-w-2xl max-h-full bg-main-gradient rounded-lg shadow">
-        <div className="flex items-start justify-between p-4 border-b rounded-t border-gray-500/50">
-          <h3 className="text-xl font-semibold text-white">Edit Account</h3>
+    <ModalWrapper isOpen={true}>
+      <div className="w-full max-w-2xl bg-theme-bg-secondary rounded-lg shadow border-2 border-theme-modal-border overflow-hidden">
+        <div className="relative p-6 border-b rounded-t border-theme-modal-border">
+          <div className="w-full flex gap-x-2 items-center">
+            <h3 className="text-xl font-semibold text-white overflow-hidden overflow-ellipsis whitespace-nowrap">
+              Edit Account
+            </h3>
+          </div>
           <button
             onClick={hideModal}
             type="button"
-            className="text-gray-400 bg-transparent hover:border-white/60 rounded-lg p-1.5 ml-auto inline-flex items-center hover:bg-menu-item-selected-gradient hover:border-slate-100 border-transparent"
+            className="absolute top-4 right-4 transition-all duration-300 bg-transparent rounded-lg text-sm p-1 inline-flex items-center hover:bg-theme-modal-border hover:border-theme-modal-border hover:border-opacity-50 border-transparent border"
           >
-            <X className="text-lg" />
+            <X size={24} weight="bold" className="text-white" />
           </button>
         </div>
-        <form onSubmit={handleUpdate} className="space-y-6">
-          <div className="flex flex-col md:flex-row items-center justify-center gap-8">
-            <div className="flex flex-col items-center">
-              <label className="w-48 h-48 flex flex-col items-center justify-center bg-zinc-900/50 transition-all duration-300 rounded-full mt-8 border-2 border-dashed border-white border-opacity-60 cursor-pointer hover:opacity-60">
-                <input
-                  id="logo-upload"
-                  type="file"
-                  accept="image/*"
-                  className="hidden"
-                  onChange={handleFileUpload}
-                />
-                {pfp ? (
-                  <img
-                    src={pfp}
-                    alt="User profile picture"
-                    className="w-48 h-48 rounded-full object-cover bg-white"
+        <div
+          className="h-full w-full overflow-y-auto"
+          style={{ maxHeight: "calc(100vh - 200px)" }}
+        >
+          <form onSubmit={handleUpdate} className="space-y-6">
+            <div className="flex flex-col md:flex-row items-center justify-center gap-8">
+              <div className="flex flex-col items-center">
+                <label className="group w-48 h-48 flex flex-col items-center justify-center bg-theme-bg-primary hover:bg-theme-bg-secondary transition-colors duration-300 rounded-full mt-8 border-2 border-dashed border-white light:border-[#686C6F] light:bg-[#E0F2FE] light:hover:bg-transparent cursor-pointer hover:opacity-60">
+                  <input
+                    id="logo-upload"
+                    type="file"
+                    accept="image/*"
+                    className="hidden"
+                    onChange={handleFileUpload}
                   />
-                ) : (
-                  <div className="flex flex-col items-center justify-center p-3">
-                    <Plus className="w-8 h-8 text-white/80 m-2" />
-                    <span className="text-white text-opacity-80 text-sm font-semibold">
-                      Profile Picture
-                    </span>
-                    <span className="text-white text-opacity-60 text-xs">
-                      800 x 800
-                    </span>
-                  </div>
+                  {pfp ? (
+                    <img
+                      src={pfp}
+                      alt="User profile picture"
+                      className="w-48 h-48 rounded-full object-cover bg-white"
+                    />
+                  ) : (
+                    <div className="flex flex-col items-center justify-center p-3">
+                      <Plus className="w-8 h-8 text-theme-text-secondary m-2" />
+                      <span className="text-theme-text-secondary text-opacity-80 text-sm font-semibold">
+                        Profile Picture
+                      </span>
+                      <span className="text-theme-text-secondary text-opacity-60 text-xs">
+                        800 x 800
+                      </span>
+                    </div>
+                  )}
+                </label>
+                {pfp && (
+                  <button
+                    type="button"
+                    onClick={handleRemovePfp}
+                    className="mt-3 text-theme-text-secondary text-opacity-60 text-sm font-medium hover:underline"
+                  >
+                    Remove Profile Picture
+                  </button>
                 )}
-              </label>
-              {pfp && (
-                <button
-                  type="button"
-                  onClick={handleRemovePfp}
-                  className="mt-3 text-white text-opacity-60 text-sm font-medium hover:underline"
+              </div>
+            </div>
+            <div className="flex flex-col gap-y-4 px-6">
+              <div>
+                <label
+                  htmlFor="username"
+                  className="block mb-2 text-sm font-medium text-theme-text-primary"
                 >
-                  Remove Profile Picture
-                </button>
-              )}
+                  Username
+                </label>
+                <input
+                  name="username"
+                  type="text"
+                  className="bg-theme-settings-input-bg placeholder:text-theme-settings-input-placeholder border-gray-500 text-white text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+                  placeholder="User's username"
+                  minLength={2}
+                  defaultValue={user.username}
+                  required
+                  autoComplete="off"
+                />
+                <p className="mt-2 text-xs text-white/60">
+                  Username must be only contain lowercase letters, numbers,
+                  underscores, and hyphens with no spaces
+                </p>
+              </div>
+              <div>
+                <label
+                  htmlFor="password"
+                  className="block mb-2 text-sm font-medium text-white"
+                >
+                  New Password
+                </label>
+                <input
+                  name="password"
+                  type="text"
+                  className="bg-theme-settings-input-bg placeholder:text-theme-settings-input-placeholder border-gray-500 text-white text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+                  placeholder={`${user.username}'s new password`}
+                  minLength={8}
+                />
+                <p className="mt-2 text-xs text-white/60">
+                  Password must be at least 8 characters long
+                </p>
+              </div>
+              <div className="flex flex-row gap-x-8">
+                <ThemePreference />
+                <LanguagePreference />
+              </div>
             </div>
-          </div>
-          <div className="flex flex-col gap-y-4 px-6">
-            <div>
-              <label
-                htmlFor="username"
-                className="block mb-2 text-sm font-medium text-white"
+            <div className="flex justify-between items-center border-t border-theme-modal-border pt-4 p-6">
+              <button
+                onClick={hideModal}
+                type="button"
+                className="transition-all duration-300 text-white hover:bg-zinc-700 px-4 py-2 rounded-lg text-sm"
               >
-                Username
-              </label>
-              <input
-                name="username"
-                type="text"
-                className="bg-zinc-900 placeholder:text-white/20 border-gray-500 text-white text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5"
-                placeholder="User's username"
-                minLength={2}
-                defaultValue={user.username}
-                required
-                autoComplete="off"
-              />
-              <p className="mt-2 text-xs text-white/60">
-                Username must only contain lowercase letters, numbers,
-                underscores, and hyphens with no spaces
-              </p>
-            </div>
-            <div>
-              <label
-                htmlFor="password"
-                className="block mb-2 text-sm font-medium text-white"
+                Cancel
+              </button>
+              <button
+                type="submit"
+                className="transition-all duration-300 bg-white text-black hover:opacity-60 px-4 py-2 rounded-lg text-sm"
               >
-                New Password
-              </label>
-              <input
-                name="password"
-                type="text"
-                className="bg-zinc-900 placeholder:text-white/20 border-gray-500 text-white text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5"
-                placeholder={`${user.username}'s new password`}
-                minLength={8}
-              />
-              <p className="mt-2 text-xs text-white/60">
-                Password must be at least 8 characters long
-              </p>
+                Update Account
+              </button>
             </div>
-            <LanguagePreference />
-          </div>
-          <div className="flex justify-between items-center border-t border-gray-500/50 pt-4 p-6">
-            <button
-              onClick={hideModal}
-              type="button"
-              className="px-4 py-2 rounded-lg text-white bg-transparent hover:bg-stone-900"
-            >
-              Cancel
-            </button>
-            <button
-              type="submit"
-              className="px-4 py-2 rounded-lg text-white bg-transparent border border-slate-200 hover:bg-slate-200 hover:text-slate-800"
-            >
-              Update Account
-            </button>
-          </div>
-        </form>
+          </form>
+        </div>
       </div>
-    </div>
+    </ModalWrapper>
   );
 }
 
@@ -198,7 +209,7 @@ function LanguagePreference() {
       </label>
       <select
         name="userLang"
-        className="bg-zinc-900 w-fit mt-2 px-4 border-gray-500 text-white text-sm rounded-lg block py-2"
+        className="bg-theme-settings-input-bg w-fit mt-2 px-4 focus:outline-primary-button active:outline-primary-button outline-none text-white text-sm rounded-lg block py-2"
         defaultValue={currentLanguage || "en"}
         onChange={(e) => changeLanguage(e.target.value)}
       >
@@ -213,3 +224,30 @@ function LanguagePreference() {
     </div>
   );
 }
+
+function ThemePreference() {
+  const { theme, setTheme, availableThemes } = useTheme();
+
+  return (
+    <div>
+      <label
+        htmlFor="theme"
+        className="block mb-2 text-sm font-medium text-white"
+      >
+        Theme Preference
+      </label>
+      <select
+        name="theme"
+        value={theme}
+        onChange={(e) => setTheme(e.target.value)}
+        className="bg-theme-settings-input-bg w-fit px-4 focus:outline-primary-button active:outline-primary-button outline-none text-white text-sm rounded-lg block py-2"
+      >
+        {Object.entries(availableThemes).map(([key, value]) => (
+          <option key={key} value={key}>
+            {value}
+          </option>
+        ))}
+      </select>
+    </div>
+  );
+}
diff --git a/frontend/src/components/UserMenu/UserButton/index.jsx b/frontend/src/components/UserMenu/UserButton/index.jsx
index 7808cd4ab..2ad79d00c 100644
--- a/frontend/src/components/UserMenu/UserButton/index.jsx
+++ b/frontend/src/components/UserMenu/UserButton/index.jsx
@@ -54,12 +54,12 @@ export default function UserButton() {
 
   if (mode === null) return null;
   return (
-    <div className="absolute top-3 right-4 md:top-9 md:right-10 w-fit h-fit z-99">
+    <div className="absolute top-3 right-4 md:top-9 md:right-10 w-fit h-fit z-40">
       <button
         ref={buttonRef}
         onClick={() => setShowMenu(!showMenu)}
         type="button"
-        className="uppercase transition-all duration-300 w-[35px] h-[35px] text-base font-semibold rounded-full flex items-center bg-sidebar-button hover:bg-menu-item-selected-gradient justify-center text-white p-2 hover:border-slate-100 hover:border-opacity-50 border-transparent border"
+        className="uppercase transition-all duration-300 w-[35px] h-[35px] text-base font-semibold rounded-full flex items-center bg-theme-action-menu-bg hover:bg-theme-action-menu-item-hover justify-center text-white p-2 hover:border-slate-100 hover:border-opacity-50 border-transparent border"
       >
         {mode === "multi" ? <UserDisplay /> : <Person size={14} />}
       </button>
@@ -67,20 +67,20 @@ export default function UserButton() {
       {showMenu && (
         <div
           ref={menuRef}
-          className="w-fit rounded-lg absolute top-12 right-0 bg-sidebar p-4 flex items-center-justify-center"
+          className="w-fit rounded-lg absolute top-12 right-0 bg-theme-action-menu-bg p-2 flex items-center-justify-center"
         >
           <div className="flex flex-col gap-y-2">
             {mode === "multi" && !!user && (
               <button
                 onClick={handleOpenAccountModal}
-                className="text-white hover:bg-slate-200/20 w-full text-left px-4 py-1.5 rounded-md"
+                className="text-white hover:bg-theme-action-menu-item-hover w-full text-left px-4 py-1.5 rounded-md"
               >
                 Account
               </button>
             )}
             <a
               href={supportEmail}
-              className="text-white hover:bg-slate-200/20 w-full text-left px-4 py-1.5 rounded-md"
+              className="text-white hover:bg-theme-action-menu-item-hover w-full text-left px-4 py-1.5 rounded-md"
             >
               Support
             </a>
@@ -92,7 +92,7 @@ export default function UserButton() {
                 window.location.replace(paths.home());
               }}
               type="button"
-              className="text-white hover:bg-slate-200/20 w-full text-left px-4 py-1.5 rounded-md"
+              className="text-white hover:bg-theme-action-menu-item-hover w-full text-left px-4 py-1.5 rounded-md"
             >
               Sign out
             </button>
diff --git a/frontend/src/components/VectorDBSelection/AstraDBOptions/index.jsx b/frontend/src/components/VectorDBSelection/AstraDBOptions/index.jsx
index 07a370d0e..4702631ca 100644
--- a/frontend/src/components/VectorDBSelection/AstraDBOptions/index.jsx
+++ b/frontend/src/components/VectorDBSelection/AstraDBOptions/index.jsx
@@ -9,7 +9,7 @@ export default function AstraDBOptions({ settings }) {
           <input
             type="url"
             name="AstraDBEndpoint"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="Astra DB API endpoint"
             defaultValue={settings?.AstraDBEndpoint}
             required={true}
@@ -25,7 +25,7 @@ export default function AstraDBOptions({ settings }) {
           <input
             type="password"
             name="AstraDBApplicationToken"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="AstraCS:..."
             defaultValue={
               settings?.AstraDBApplicationToken ? "*".repeat(20) : ""
diff --git a/frontend/src/components/VectorDBSelection/ChromaDBOptions/index.jsx b/frontend/src/components/VectorDBSelection/ChromaDBOptions/index.jsx
index dd3257aaf..c5938779e 100644
--- a/frontend/src/components/VectorDBSelection/ChromaDBOptions/index.jsx
+++ b/frontend/src/components/VectorDBSelection/ChromaDBOptions/index.jsx
@@ -9,7 +9,7 @@ export default function ChromaDBOptions({ settings }) {
           <input
             type="url"
             name="ChromaEndpoint"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="http://localhost:8000"
             defaultValue={settings?.ChromaEndpoint}
             required={true}
@@ -27,7 +27,7 @@ export default function ChromaDBOptions({ settings }) {
             autoComplete="off"
             type="text"
             defaultValue={settings?.ChromaApiHeader}
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="X-Api-Key"
           />
         </div>
@@ -41,7 +41,7 @@ export default function ChromaDBOptions({ settings }) {
             autoComplete="off"
             type="password"
             defaultValue={settings?.ChromaApiKey ? "*".repeat(20) : ""}
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="sk-myApiKeyToAccessMyChromaInstance"
           />
         </div>
diff --git a/frontend/src/components/VectorDBSelection/MilvusDBOptions/index.jsx b/frontend/src/components/VectorDBSelection/MilvusDBOptions/index.jsx
index 4985d6707..5ee58612e 100644
--- a/frontend/src/components/VectorDBSelection/MilvusDBOptions/index.jsx
+++ b/frontend/src/components/VectorDBSelection/MilvusDBOptions/index.jsx
@@ -9,7 +9,7 @@ export default function MilvusDBOptions({ settings }) {
           <input
             type="text"
             name="MilvusAddress"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="http://localhost:19530"
             defaultValue={settings?.MilvusAddress}
             required={true}
@@ -25,7 +25,7 @@ export default function MilvusDBOptions({ settings }) {
           <input
             type="text"
             name="MilvusUsername"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="username"
             defaultValue={settings?.MilvusUsername}
             autoComplete="off"
@@ -39,7 +39,7 @@ export default function MilvusDBOptions({ settings }) {
           <input
             type="password"
             name="MilvusPassword"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="password"
             defaultValue={settings?.MilvusPassword ? "*".repeat(20) : ""}
             autoComplete="off"
diff --git a/frontend/src/components/VectorDBSelection/PineconeDBOptions/index.jsx b/frontend/src/components/VectorDBSelection/PineconeDBOptions/index.jsx
index a3ffdb410..741a87c85 100644
--- a/frontend/src/components/VectorDBSelection/PineconeDBOptions/index.jsx
+++ b/frontend/src/components/VectorDBSelection/PineconeDBOptions/index.jsx
@@ -9,7 +9,7 @@ export default function PineconeDBOptions({ settings }) {
           <input
             type="password"
             name="PineConeKey"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="Pinecone API Key"
             defaultValue={settings?.PineConeKey ? "*".repeat(20) : ""}
             required={true}
@@ -24,7 +24,7 @@ export default function PineconeDBOptions({ settings }) {
           <input
             type="text"
             name="PineConeIndex"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="my-index"
             defaultValue={settings?.PineConeIndex}
             required={true}
diff --git a/frontend/src/components/VectorDBSelection/QDrantDBOptions/index.jsx b/frontend/src/components/VectorDBSelection/QDrantDBOptions/index.jsx
index 523f3e5b5..e74f68121 100644
--- a/frontend/src/components/VectorDBSelection/QDrantDBOptions/index.jsx
+++ b/frontend/src/components/VectorDBSelection/QDrantDBOptions/index.jsx
@@ -9,7 +9,7 @@ export default function QDrantDBOptions({ settings }) {
           <input
             type="url"
             name="QdrantEndpoint"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="http://localhost:6633"
             defaultValue={settings?.QdrantEndpoint}
             required={true}
@@ -25,7 +25,7 @@ export default function QDrantDBOptions({ settings }) {
           <input
             type="password"
             name="QdrantApiKey"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="wOeqxsYP4....1244sba"
             defaultValue={settings?.QdrantApiKey}
             autoComplete="off"
diff --git a/frontend/src/components/VectorDBSelection/VectorDBItem/index.jsx b/frontend/src/components/VectorDBSelection/VectorDBItem/index.jsx
index a599e406d..3de81ac4e 100644
--- a/frontend/src/components/VectorDBSelection/VectorDBItem/index.jsx
+++ b/frontend/src/components/VectorDBSelection/VectorDBItem/index.jsx
@@ -9,8 +9,8 @@ export default function VectorDBItem({
   return (
     <div
       onClick={() => onClick(value)}
-      className={`w-full p-2 rounded-md hover:cursor-pointer hover:bg-white/10 ${
-        checked ? "bg-white/10" : ""
+      className={`w-full p-2 rounded-md hover:cursor-pointer hover:bg-theme-bg-secondary ${
+        checked ? "bg-theme-bg-secondary" : ""
       }`}
     >
       <input
diff --git a/frontend/src/components/VectorDBSelection/WeaviateDBOptions/index.jsx b/frontend/src/components/VectorDBSelection/WeaviateDBOptions/index.jsx
index 6ce605707..2beac6697 100644
--- a/frontend/src/components/VectorDBSelection/WeaviateDBOptions/index.jsx
+++ b/frontend/src/components/VectorDBSelection/WeaviateDBOptions/index.jsx
@@ -9,7 +9,7 @@ export default function WeaviateDBOptions({ settings }) {
           <input
             type="url"
             name="WeaviateEndpoint"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="http://localhost:8080"
             defaultValue={settings?.WeaviateEndpoint}
             required={true}
@@ -25,7 +25,7 @@ export default function WeaviateDBOptions({ settings }) {
           <input
             type="password"
             name="WeaviateApiKey"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="sk-123Abcweaviate"
             defaultValue={settings?.WeaviateApiKey}
             autoComplete="off"
diff --git a/frontend/src/components/VectorDBSelection/ZillizCloudOptions/index.jsx b/frontend/src/components/VectorDBSelection/ZillizCloudOptions/index.jsx
index bd08687bb..0de667a68 100644
--- a/frontend/src/components/VectorDBSelection/ZillizCloudOptions/index.jsx
+++ b/frontend/src/components/VectorDBSelection/ZillizCloudOptions/index.jsx
@@ -9,7 +9,7 @@ export default function ZillizCloudOptions({ settings }) {
           <input
             type="text"
             name="ZillizEndpoint"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="https://sample.api.gcp-us-west1.zillizcloud.com"
             defaultValue={settings?.ZillizEndpoint}
             required={true}
@@ -25,7 +25,7 @@ export default function ZillizCloudOptions({ settings }) {
           <input
             type="password"
             name="ZillizApiToken"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="Zilliz cluster API Token"
             defaultValue={settings?.ZillizApiToken ? "*".repeat(20) : ""}
             autoComplete="off"
diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/Citation/index.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/Citation/index.jsx
index 6f81b17c5..6db09561b 100644
--- a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/Citation/index.jsx
+++ b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/Citation/index.jsx
@@ -44,9 +44,9 @@ export default function Citations({ sources = [] }) {
     <div className="flex flex-col mt-4 justify-left">
       <button
         onClick={() => setOpen(!open)}
-        className={`text-white/50 font-medium italic text-sm text-left ml-14 pt-2 ${
+        className={`text-white/50 light:text-black/50 font-medium italic text-sm text-left ml-14 pt-2 ${
           open ? "pb-2" : ""
-        } hover:text-white/75 transition-all duration-300`}
+        } hover:text-white/75 hover:light:text-black/75 transition-all duration-300`}
       >
         {open ? "Hide Citations" : "Show Citations"}
         <CaretRight
@@ -96,24 +96,6 @@ const Citation = memo(({ source, onClick }) => {
   );
 });
 
-function SkeletonLine() {
-  const numOfBoxes = Math.floor(Math.random() * 5) + 2;
-  return (
-    <div className="flex space-x-2 mb-2">
-      {Array.from({ length: numOfBoxes }).map((_, index) => (
-        <div
-          key={index}
-          className="bg-white/20 rounded"
-          style={{
-            width: `${Math.random() * 150 + 50}px`,
-            height: "20px",
-          }}
-        ></div>
-      ))}
-    </div>
-  );
-}
-
 function omitChunkHeader(text) {
   if (!text.startsWith("<document_metadata>")) return text;
   return text.split("</document_metadata>")[1].trim();
@@ -125,8 +107,8 @@ function CitationDetailModal({ source, onClose }) {
 
   return (
     <ModalWrapper isOpen={source}>
-      <div className="w-full max-w-2xl bg-main-gradient rounded-lg shadow border border-white/10 overflow-hidden">
-        <div className="relative p-6 border-b rounded-t border-gray-500/50">
+      <div className="w-full max-w-2xl bg-theme-bg-secondary rounded-lg shadow border-2 border-theme-modal-border overflow-hidden">
+        <div className="relative p-6 border-b rounded-t border-theme-modal-border">
           <div className="w-full flex gap-x-2 items-center">
             {isUrl ? (
               <a
@@ -154,43 +136,42 @@ function CitationDetailModal({ source, onClose }) {
           <button
             onClick={onClose}
             type="button"
-            className="absolute top-6 right-6 transition-all duration-300 text-gray-400 bg-transparent hover:border-white/60 rounded-lg text-sm p-1.5 inline-flex items-center bg-sidebar-button hover:bg-menu-item-selected-gradient hover:border-slate-100 hover:border-opacity-50 border-transparent border"
+            className="absolute top-4 right-4 transition-all duration-300 bg-transparent rounded-lg text-sm p-1 inline-flex items-center hover:bg-theme-modal-border hover:border-theme-modal-border hover:border-opacity-50 border-transparent border"
           >
-            <X className="text-gray-300 text-lg" />
+            <X size={24} weight="bold" className="text-white" />
           </button>
         </div>
         <div
           className="h-full w-full overflow-y-auto"
           style={{ maxHeight: "calc(100vh - 200px)" }}
         >
-          <div className="p-6 space-y-2 flex-col">
-            {[...Array(3)].map((_, idx) => (
-              <SkeletonLine key={idx} />
-            ))}
+          <div className="py-7 px-9 space-y-2 flex-col">
             {chunks.map(({ text, score }, idx) => (
-              <div key={idx} className="pt-6 text-white">
-                <div className="flex flex-col w-full justify-start pb-6 gap-y-1">
-                  <p className="text-white whitespace-pre-line">
-                    {HTMLDecode(omitChunkHeader(text))}
-                  </p>
+              <>
+                <div key={idx} className="pt-6 text-white">
+                  <div className="flex flex-col w-full justify-start pb-6 gap-y-1">
+                    <p className="text-white whitespace-pre-line">
+                      {HTMLDecode(omitChunkHeader(text))}
+                    </p>
 
-                  {!!score && (
-                    <div className="w-full flex items-center text-xs text-white/60 gap-x-2 cursor-default">
-                      <div
-                        data-tooltip-id="similarity-score"
-                        data-tooltip-content={`This is the semantic similarity score of this chunk of text compared to your query calculated by the vector database.`}
-                        className="flex items-center gap-x-1"
-                      >
-                        <Info size={14} />
-                        <p>{toPercentString(score)} match</p>
+                    {!!score && (
+                      <div className="w-full flex items-center text-xs text-white/60 gap-x-2 cursor-default">
+                        <div
+                          data-tooltip-id="similarity-score"
+                          data-tooltip-content={`This is the semantic similarity score of this chunk of text compared to your query calculated by the vector database.`}
+                          className="flex items-center gap-x-1"
+                        >
+                          <Info size={14} />
+                          <p>{toPercentString(score)} match</p>
+                        </div>
                       </div>
-                    </div>
-                  )}
+                    )}
+                  </div>
                 </div>
-                {[...Array(3)].map((_, idx) => (
-                  <SkeletonLine key={idx} />
-                ))}
-              </div>
+                {idx !== chunks.length - 1 && (
+                  <hr className="border-theme-modal-border" />
+                )}
+              </>
             ))}
             <div className="mb-6"></div>
           </div>
diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/Actions/ActionMenu/index.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/Actions/ActionMenu/index.jsx
index acd0c4fa5..396dc38b1 100644
--- a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/Actions/ActionMenu/index.jsx
+++ b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/Actions/ActionMenu/index.jsx
@@ -38,7 +38,7 @@ function ActionMenu({ chatId, forkThread, isEditing, role }) {
     <div className="mt-2 -ml-0.5 relative" ref={menuRef}>
       <button
         onClick={toggleMenu}
-        className="border-none text-zinc-300 hover:text-zinc-100 transition-colors duration-200"
+        className="border-none text-[var(--theme-sidebar-footer-icon-fill)] hover:text-[var(--theme-sidebar-footer-icon-fill)] transition-colors duration-200"
         data-tooltip-id="action-menu"
         data-tooltip-content="More actions"
         aria-label="More actions"
@@ -46,17 +46,17 @@ function ActionMenu({ chatId, forkThread, isEditing, role }) {
         <DotsThreeVertical size={24} weight="bold" />
       </button>
       {open && (
-        <div className="absolute -top-1 left-7 mt-1 border-[1.5px] border-white/40 rounded-lg bg-[#41454B] bg-opacity-100 flex flex-col shadow-[0_4px_14px_rgba(0,0,0,0.25)] text-white z-99 md:z-10">
+        <div className="absolute -top-1 left-7 mt-1 border-[1.5px] border-white/40 rounded-lg bg-theme-action-menu-bg flex flex-col shadow-[0_4px_14px_rgba(0,0,0,0.25)] text-white z-99 md:z-10">
           <button
             onClick={handleFork}
-            className="border-none flex items-center gap-x-2 hover:bg-white/10 py-1.5 px-2 transition-colors duration-200 w-full text-left"
+            className="border-none flex items-center gap-x-2 hover:bg-theme-action-menu-item-hover py-1.5 px-2 transition-colors duration-200 w-full text-left"
           >
             <TreeView size={18} />
             <span className="text-sm">Fork</span>
           </button>
           <button
             onClick={handleDelete}
-            className="border-none flex items-center gap-x-2 hover:bg-white/10 py-1.5 px-2 transition-colors duration-200 w-full text-left"
+            className="border-none flex items-center gap-x-2 hover:bg-theme-action-menu-item-hover py-1.5 px-2 transition-colors duration-200 w-full text-left"
           >
             <Trash size={18} />
             <span className="text-sm">Delete</span>
diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/Actions/EditMessage/index.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/Actions/EditMessage/index.jsx
index c99dd5b92..346d1de2a 100644
--- a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/Actions/EditMessage/index.jsx
+++ b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/Actions/EditMessage/index.jsx
@@ -1,4 +1,3 @@
-import { AI_BACKGROUND_COLOR, USER_BACKGROUND_COLOR } from "@/utils/constants";
 import { Pencil } from "@phosphor-icons/react";
 import { useState, useEffect, useRef } from "react";
 
@@ -52,7 +51,11 @@ export function EditMessageAction({ chatId = null, role, isEditing }) {
         className="border-none text-zinc-300"
         aria-label={`Edit ${role === "user" ? "Prompt" : "Response"}`}
       >
-        <Pencil size={21} className="mb-1" />
+        <Pencil
+          color="var(--theme-sidebar-footer-icon-fill)"
+          size={21}
+          className="mb-1"
+        />
       </button>
     </div>
   );
@@ -95,9 +98,7 @@ export function EditMessageForm({
       <textarea
         ref={formRef}
         name="editedMessage"
-        className={`w-full rounded ${
-          role === "user" ? USER_BACKGROUND_COLOR : AI_BACKGROUND_COLOR
-        } border border-white/20 active:outline-none focus:outline-none focus:ring-0 pr-16 pl-1.5 pt-1.5 resize-y`}
+        className="w-full rounded bg-theme-bg-secondary border border-white/20 active:outline-none focus:outline-none focus:ring-0 pr-16 pl-1.5 pt-1.5 resize-y"
         defaultValue={message}
         onChange={adjustTextArea}
       />
@@ -110,7 +111,7 @@ export function EditMessageForm({
         </button>
         <button
           type="button"
-          className="px-2 py-1 bg-historical-msg-system text-white font-medium rounded-md hover:bg-historical-msg-user/90 focus:outline-none focus:ring-2 focus:ring-gray-400 focus:ring-offset-2"
+          className="px-2 py-1 bg-historical-msg-system text-white font-medium rounded-md hover:bg-historical-msg-user/90 light:hover:text-white focus:outline-none focus:ring-2 focus:ring-gray-400 focus:ring-offset-2"
           onClick={cancelEdits}
         >
           Cancel
diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/Actions/TTSButton/asyncTts.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/Actions/TTSButton/asyncTts.jsx
index 3fa99174f..ce9c80170 100644
--- a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/Actions/TTSButton/asyncTts.jsx
+++ b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/Actions/TTSButton/asyncTts.jsx
@@ -60,7 +60,7 @@ export default function AsyncTTSMessage({ slug, chatId }) {
         data-tooltip-content={
           speaking ? "Pause TTS speech of message" : "TTS Speak message"
         }
-        className="border-none text-zinc-300"
+        className="border-none text-[var(--theme-sidebar-footer-icon-fill)]"
         aria-label={speaking ? "Pause speech" : "Speak message"}
       >
         {speaking ? (
diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/Actions/TTSButton/native.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/Actions/TTSButton/native.jsx
index daa9ebda9..ff80116e0 100644
--- a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/Actions/TTSButton/native.jsx
+++ b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/Actions/TTSButton/native.jsx
@@ -40,7 +40,7 @@ export default function NativeTTSMessage({ message }) {
         data-tooltip-content={
           speaking ? "Pause TTS speech of message" : "TTS Speak message"
         }
-        className="border-none text-zinc-300"
+        className="border-none text-[var(--theme-sidebar-footer-icon-fill)]"
         aria-label={speaking ? "Pause speech" : "Speak message"}
       >
         {speaking ? (
diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/Actions/TTSButton/piperTTS.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/Actions/TTSButton/piperTTS.jsx
index 1ec39874c..02ab8e387 100644
--- a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/Actions/TTSButton/piperTTS.jsx
+++ b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/Actions/TTSButton/piperTTS.jsx
@@ -57,7 +57,7 @@ export default function PiperTTS({ voiceId = null, message }) {
         data-tooltip-content={
           speaking ? "Pause TTS speech of message" : "TTS Speak message"
         }
-        className="border-none text-zinc-300"
+        className="border-none text-[var(--theme-sidebar-footer-icon-fill)]"
         aria-label={speaking ? "Pause speech" : "Speak message"}
       >
         {speaking ? (
diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/Actions/index.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/Actions/index.jsx
index e396fd11b..5dc15e1a1 100644
--- a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/Actions/index.jsx
+++ b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/Actions/index.jsx
@@ -78,6 +78,7 @@ function FeedbackButton({
         aria-label={tooltipContent}
       >
         <IconComponent
+          color="var(--theme-sidebar-footer-icon-fill)"
           size={20}
           className="mb-1"
           weight={isSelected ? "fill" : "regular"}
@@ -101,9 +102,17 @@ function CopyMessage({ message }) {
           aria-label="Copy"
         >
           {copied ? (
-            <Check size={20} className="mb-1" />
+            <Check
+              color="var(--theme-sidebar-footer-icon-fill)"
+              size={20}
+              className="mb-1"
+            />
           ) : (
-            <Copy size={20} className="mb-1" />
+            <Copy
+              color="var(--theme-sidebar-footer-icon-fill)"
+              size={20}
+              className="mb-1"
+            />
           )}
         </button>
       </div>
@@ -122,7 +131,12 @@ function RegenerateMessage({ regenerateMessage, chatId }) {
         className="border-none text-zinc-300"
         aria-label="Regenerate"
       >
-        <ArrowsClockwise size={20} className="mb-1" weight="fill" />
+        <ArrowsClockwise
+          color="var(--theme-sidebar-footer-icon-fill)"
+          size={20}
+          className="mb-1"
+          weight="fill"
+        />
       </button>
     </div>
   );
diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/index.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/index.jsx
index b7da93750..c311dd6ed 100644
--- a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/index.jsx
+++ b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/index.jsx
@@ -5,7 +5,6 @@ import Actions from "./Actions";
 import renderMarkdown from "@/utils/chat/markdown";
 import { userFromStorage } from "@/utils/request";
 import Citations from "../Citation";
-import { AI_BACKGROUND_COLOR, USER_BACKGROUND_COLOR } from "@/utils/constants";
 import { v4 } from "uuid";
 import createDOMPurify from "dompurify";
 import { EditMessageForm, useEditMessage } from "./Actions/EditMessage";
@@ -43,9 +42,7 @@ const HistoricalMessage = ({
     return (
       <div
         key={uuid}
-        className={`flex justify-center items-end w-full ${
-          role === "user" ? USER_BACKGROUND_COLOR : AI_BACKGROUND_COLOR
-        }`}
+        className={`flex justify-center items-end w-full bg-theme-bg-chat`}
       >
         <div className="py-8 px-4 w-full flex gap-x-5 md:max-w-[80%] flex-col">
           <div className="flex gap-x-5">
@@ -72,9 +69,7 @@ const HistoricalMessage = ({
       onAnimationEnd={onEndAnimation}
       className={`${
         isDeleted ? "animate-remove" : ""
-      } flex justify-center items-end w-full group ${
-        role === "user" ? USER_BACKGROUND_COLOR : AI_BACKGROUND_COLOR
-      }`}
+      } flex justify-center items-end w-full group bg-theme-bg-chat`}
     >
       <div className="py-8 px-4 w-full flex gap-x-5 md:max-w-[80%] flex-col">
         <div className="flex gap-x-5">
diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/PromptReply/index.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/PromptReply/index.jsx
index 73275e9db..803374d5f 100644
--- a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/PromptReply/index.jsx
+++ b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/PromptReply/index.jsx
@@ -13,7 +13,8 @@ const PromptReply = ({
   sources = [],
   closed = true,
 }) => {
-  const assistantBackgroundColor = "bg-historical-msg-system";
+  const assistantBackgroundColor = "bg-theme-bg-chat";
+
   if (!reply && sources.length === 0 && !pending && !error) return null;
 
   if (pending) {
@@ -24,7 +25,7 @@ const PromptReply = ({
         <div className="py-6 px-4 w-full flex gap-x-5 md:max-w-[80%] flex-col">
           <div className="flex gap-x-5">
             <WorkspaceProfileImage workspace={workspace} />
-            <div className="mt-3 ml-5 dot-falling"></div>
+            <div className="mt-3 ml-5 dot-falling light:invert"></div>
           </div>
         </div>
       </div>
@@ -57,11 +58,11 @@ const PromptReply = ({
       key={uuid}
       className={`flex justify-center items-end w-full ${assistantBackgroundColor}`}
     >
-      <div className="py-6 px-4 w-full flex gap-x-5 md:max-w-[80%] flex-col">
+      <div className="py-8 px-4 w-full flex gap-x-5 md:max-w-[80%] flex-col">
         <div className="flex gap-x-5">
           <WorkspaceProfileImage workspace={workspace} />
           <span
-            className={`reply flex flex-col gap-y-1 mt-2`}
+            className={`overflow-x-scroll break-words no-scroll`}
             dangerouslySetInnerHTML={{ __html: renderMarkdown(reply) }}
           />
         </div>
diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/index.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/index.jsx
index 85e45d695..85c30f312 100644
--- a/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/index.jsx
+++ b/frontend/src/components/WorkspaceChat/ChatContainer/ChatHistory/index.jsx
@@ -204,7 +204,7 @@ export default function ChatHistory({
 
   return (
     <div
-      className={`markdown text-white/80 font-light ${textSize} h-full md:h-[83%] pb-[100px] pt-6 md:pt-0 md:pb-20 md:mx-0 overflow-y-scroll flex flex-col justify-start ${
+      className={`markdown text-white/80 light:text-theme-text-primary font-light ${textSize} h-full md:h-[83%] pb-[100px] pt-6 md:pt-0 md:pb-20 md:mx-0 overflow-y-scroll flex flex-col justify-start ${
         showScrollbar ? "show-scrollbar" : "no-scroll"
       }`}
       id="chat-history"
@@ -299,11 +299,11 @@ function StatusResponse({ props }) {
 function WorkspaceChatSuggestions({ suggestions = [], sendSuggestion }) {
   if (suggestions.length === 0) return null;
   return (
-    <div className="grid grid-cols-1 md:grid-cols-2 gap-2 text-white/60 text-xs mt-10 w-full justify-center">
+    <div className="grid grid-cols-1 md:grid-cols-2 gap-2 text-theme-text-primary text-xs mt-10 w-full justify-center">
       {suggestions.map((suggestion, index) => (
         <button
           key={index}
-          className="text-left p-2.5 border rounded-xl border-white/20 bg-sidebar hover:bg-workspace-item-selected-gradient"
+          className="text-left p-2.5 rounded-xl bg-theme-sidebar-footer-icon hover:bg-theme-sidebar-footer-icon-hover border border-theme-border"
           onClick={() => sendSuggestion(suggestion.heading, suggestion.message)}
         >
           <p className="font-semibold">{suggestion.heading}</p>
diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/ChatTooltips/index.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/ChatTooltips/index.jsx
index 99571ba33..a7bb2ef87 100644
--- a/frontend/src/components/WorkspaceChat/ChatContainer/ChatTooltips/index.jsx
+++ b/frontend/src/components/WorkspaceChat/ChatContainer/ChatTooltips/index.jsx
@@ -57,9 +57,9 @@ export function ChatTooltips() {
         id="similarity-score"
         place="top"
         delayShow={100}
-        // z-[99] to ensure it renders above the chat history
+        // z-[100] to ensure it renders above the chat history
         // as the citation modal is z-indexed above the chat history
-        className="tooltip !text-xs z-[99]"
+        className="tooltip !text-xs z-[100]"
       />
     </>
   );
diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/DnDWrapper/index.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/DnDWrapper/index.jsx
index 35ec9215d..32b58560f 100644
--- a/frontend/src/components/WorkspaceChat/ChatContainer/DnDWrapper/index.jsx
+++ b/frontend/src/components/WorkspaceChat/ChatContainer/DnDWrapper/index.jsx
@@ -224,7 +224,7 @@ export default function DnDFileUploaderWrapper({ children }) {
     >
       <div
         hidden={!dragging}
-        className="absolute top-0 w-full h-full bg-dark-text/90 rounded-2xl border-[4px] border-white z-[9999]"
+        className="absolute top-0 w-full h-full bg-dark-text/90 light:bg-[#C2E7FE]/90 rounded-2xl border-[4px] border-white z-[9999]"
       >
         <div className="w-full h-full flex justify-center items-center rounded-xl">
           <div className="flex flex-col gap-y-[14px] justify-center items-center">
diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/AgentMenu/index.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/AgentMenu/index.jsx
index e0121e1d5..4ae6787c2 100644
--- a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/AgentMenu/index.jsx
+++ b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/AgentMenu/index.jsx
@@ -13,11 +13,14 @@ export default function AvailableAgentsButton({ showing, setShowAgents }) {
       data-tooltip-content="View all available agents you can use for chatting."
       aria-label="View all available agents you can use for chatting."
       onClick={() => setShowAgents(!showing)}
-      className={`flex justify-center items-center opacity-60 hover:opacity-100 cursor-pointer ${
+      className={`flex justify-center items-center cursor-pointer ${
         showing ? "!opacity-100" : ""
       }`}
     >
-      <At className="w-6 h-6 pointer-events-none text-white" />
+      <At
+        color="var(--theme-sidebar-footer-icon-fill)"
+        className={`w-[22px] h-[22px] pointer-events-none text-theme-text-primary opacity-60 hover:opacity-100 light:opacity-100 light:hover:opacity-60`}
+      />
       <Tooltip
         id="tooltip-agent-list-btn"
         place="top"
@@ -30,7 +33,7 @@ export default function AvailableAgentsButton({ showing, setShowAgents }) {
 
 function AbilityTag({ text }) {
   return (
-    <div className="px-2 bg-white/20 text-white/60 text-black text-xs w-fit rounded-sm">
+    <div className="px-2 bg-theme-action-menu-item-hover text-theme-text-secondary text-xs w-fit rounded-sm">
       <p>{text}</p>
     </div>
   );
@@ -66,7 +69,7 @@ export function AvailableAgents({
         <div className="w-full flex justify-center absolute bottom-[130px] md:bottom-[150px] left-0 z-10 px-4">
           <div
             ref={formRef}
-            className="w-[600px] p-2 bg-zinc-800 rounded-2xl shadow flex-col justify-center items-start gap-2.5 inline-flex"
+            className="w-[600px] p-2 bg-theme-action-menu-bg rounded-2xl shadow flex-col justify-center items-start gap-2.5 inline-flex"
           >
             <button
               onClick={() => {
@@ -74,10 +77,10 @@ export function AvailableAgents({
                 sendCommand("@agent ", false);
                 promptRef?.current?.focus();
               }}
-              className="w-full hover:cursor-pointer hover:bg-zinc-700 px-2 py-2 rounded-xl flex flex-col justify-start group"
+              className="w-full hover:cursor-pointer hover:bg-theme-action-menu-item-hover px-2 py-2 rounded-xl flex flex-col justify-start group"
             >
               <div className="w-full flex-col text-left flex pointer-events-none">
-                <div className="text-white text-sm">
+                <div className="text-theme-text-primary text-sm">
                   <b>@agent</b> - the default agent for this workspace.
                 </div>
                 <div className="flex flex-wrap gap-2 mt-2">
@@ -97,7 +100,7 @@ export function AvailableAgents({
               className="w-full rounded-xl flex flex-col justify-start group"
             >
               <div className="w-full flex-col text-center flex pointer-events-none">
-                <div className="text-white text-xs text-white/50 italic">
+                <div className="text-theme-text-secondary text-xs italic">
                   custom agents are coming soon!
                 </div>
               </div>
diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/AttachItem/index.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/AttachItem/index.jsx
index bebbfe570..fcdee57f9 100644
--- a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/AttachItem/index.jsx
+++ b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/AttachItem/index.jsx
@@ -23,16 +23,19 @@ export default function AttachItem() {
           document?.getElementById("dnd-chat-file-uploader")?.click();
           return;
         }}
-        className={`border-none relative flex justify-center items-center opacity-60 hover:opacity-100 cursor-pointer`}
+        className={`border-none relative flex justify-center items-center opacity-60 hover:opacity-100 light:opacity-100 light:hover:opacity-60 cursor-pointer`}
       >
-        <PaperclipHorizontal className="w-6 h-6 pointer-events-none text-white rotate-90 -scale-y-100" />
-        <Tooltip
-          id="attach-item-btn"
-          place="top"
-          delayShow={300}
-          className="tooltip !text-xs z-99"
+        <PaperclipHorizontal
+          color="var(--theme-sidebar-footer-icon-fill)"
+          className="w-[22px] h-[22px] pointer-events-none text-white rotate-90 -scale-y-100"
         />
       </button>
+      <Tooltip
+        id="attach-item-btn"
+        place="top"
+        delayShow={300}
+        className="tooltip !text-xs z-[99]"
+      />
     </>
   );
 }
diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/Attachments/index.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/Attachments/index.jsx
index 44677e8b7..ee6155ab2 100644
--- a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/Attachments/index.jsx
+++ b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/Attachments/index.jsx
@@ -21,7 +21,7 @@ import { Tooltip } from "react-tooltip";
 export default function AttachmentManager({ attachments }) {
   if (attachments.length === 0) return null;
   return (
-    <div className="flex flex-wrap mt-4 mb-2">
+    <div className="flex flex-wrap mt-4 mb-2 gap-y-2 gap-x-[0.5px]">
       {attachments.map((attachment) => (
         <AttachmentItem key={attachment.uid} attachment={attachment} />
       ))}
@@ -46,12 +46,15 @@ function AttachmentItem({ attachment }) {
   if (status === "in_progress") {
     return (
       <div
-        className={`h-14 px-2 py-2 flex items-center gap-x-4 rounded-lg bg-zinc-800 border border-white/20 w-[200px]`}
+        className={`h-14 px-2 py-2 flex items-center gap-x-4 rounded-lg bg-zinc-800 light:bg-theme-bg-sidebar border border-white/20 w-[200px]`}
       >
         <div
           className={`${iconBgColor} rounded-lg flex items-center justify-center flex-shrink-0 p-1`}
         >
-          <CircleNotch size={30} className="text-white animate-spin" />
+          <CircleNotch
+            size={30}
+            className="text-white light:text-white animate-spin"
+          />
         </div>
         <div className="flex flex-col w-[130px]">
           <p className="text-white text-xs font-medium truncate">{file.name}</p>
@@ -69,30 +72,27 @@ function AttachmentItem({ attachment }) {
         <div
           data-tooltip-id={`attachment-uid-${uid}-error`}
           data-tooltip-content={error}
-          className={`relative h-14 px-2 py-2 flex items-center gap-x-4 rounded-lg bg-[#4E140B] border border-transparent w-[200px] group`}
+          className={`relative h-14 px-2 py-2 flex items-center gap-x-4 rounded-lg bg-error/40 light:bg-error/30 border border-transparent w-[200px] group`}
         >
           <div className="invisible group-hover:visible absolute -top-[5px] -right-[5px] w-fit h-fit z-[10]">
             <button
               onClick={removeFileFromQueue}
               type="button"
-              className="bg-zinc-700 hover:bg-red-400 rounded-full p-1 flex items-center justify-center hover:border-transparent border border-white/40"
+              className="light:bg-white bg-zinc-700 hover:light:text-white hover:light:bg-red-400 hover:bg-red-400 rounded-full p-1 flex items-center justify-center hover:border-transparent border border-white/40"
             >
-              <X
-                size={10}
-                className="flex-shrink-0 text-zinc-200 group-hover:text-white"
-              />
+              <X size={10} className="flex-shrink-0" />
             </button>
           </div>
           <div
             className={`bg-error rounded-lg flex items-center justify-center flex-shrink-0 p-1`}
           >
-            <WarningOctagon size={30} className="text-white" />
+            <WarningOctagon size={30} className="text-white light:text-white" />
           </div>
           <div className="flex flex-col w-[130px]">
-            <p className="text-white text-xs font-medium truncate">
+            <p className="text-white light:text-red-600 text-xs font-medium truncate">
               {file.name}
             </p>
-            <p className="text-red-100 text-xs truncate">
+            <p className="text-red-100 light:text-red-600 text-xs truncate">
               {error ?? "this file failed to upload"}. It will not be available
               in the workspace.
             </p>
@@ -114,18 +114,15 @@ function AttachmentItem({ attachment }) {
         <div
           data-tooltip-id={`attachment-uid-${uid}-success`}
           data-tooltip-content={`${file.name} will be attached to this prompt. It will not be embedded into the workspace permanently.`}
-          className={`relative h-14 px-2 py-2 flex items-center gap-x-4 rounded-lg bg-zinc-800 border border-white/20 w-[200px] group`}
+          className={`relative h-14 px-2 py-2 flex items-center gap-x-4 rounded-lg bg-zinc-800 light:bg-theme-bg-sidebar border border-white/20 w-[200px] group`}
         >
           <div className="invisible group-hover:visible absolute -top-[5px] -right-[5px] w-fit h-fit z-[10]">
             <button
               onClick={removeFileFromQueue}
               type="button"
-              className="bg-zinc-700 hover:bg-red-400 rounded-full p-1 flex items-center justify-center hover:border-transparent border border-white/40"
+              className="bg-zinc-700 light:bg-white hover:light:text-white hover:light:bg-red-400 hover:bg-red-400 rounded-full p-1 flex items-center justify-center hover:border-transparent border border-white/40"
             >
-              <X
-                size={10}
-                className="flex-shrink-0 text-zinc-200 group-hover:text-white"
-              />
+              <X size={10} className="flex-shrink-0" />
             </button>
           </div>
           {contentString ? (
@@ -137,14 +134,16 @@ function AttachmentItem({ attachment }) {
             <div
               className={`${iconBgColor} rounded-lg flex items-center justify-center flex-shrink-0 p-1`}
             >
-              <Icon size={30} className="text-white" />
+              <Icon size={30} className="text-white light:text-white" />
             </div>
           )}
           <div className="flex flex-col w-[130px]">
             <p className="text-white text-xs font-medium truncate">
               {file.name}
             </p>
-            <p className="text-white/80 text-xs font-medium">Image attached!</p>
+            <p className="text-white/80 light:text-black/80 text-xs font-medium">
+              Image attached!
+            </p>
           </div>
         </div>
         <Tooltip
@@ -162,28 +161,27 @@ function AttachmentItem({ attachment }) {
       <div
         data-tooltip-id={`attachment-uid-${uid}-success`}
         data-tooltip-content={`${file.name} was uploaded and embedded into this workspace. It will be available for RAG chat now.`}
-        className={`relative h-14 px-2 py-2 flex items-center gap-x-4 rounded-lg bg-zinc-800 border border-white/20 w-[200px] group`}
+        className={`relative h-14 px-2 py-2 flex items-center gap-x-4 rounded-lg bg-zinc-800 light:bg-theme-bg-sidebar border border-white/20 w-[200px] group`}
       >
         <div className="invisible group-hover:visible absolute -top-[5px] -right-[5px] w-fit h-fit z-[10]">
           <button
             onClick={removeFileFromQueue}
             type="button"
-            className="bg-zinc-700 hover:bg-red-400 rounded-full p-1 flex items-center justify-center hover:border-transparent border border-white/40"
+            className="bg-zinc-700 light:bg-white hover:light:text-white hover:light:bg-red-400 hover:bg-red-400 rounded-full p-1 flex items-center justify-center hover:border-transparent border border-white/40"
           >
-            <X
-              size={10}
-              className="flex-shrink-0 text-zinc-200 group-hover:text-white"
-            />
+            <X size={10} className="flex-shrink-0" />
           </button>
         </div>
         <div
           className={`${iconBgColor} rounded-lg flex items-center justify-center flex-shrink-0 p-1`}
         >
-          <Icon size={30} className="text-white" />
+          <Icon size={30} className="text-white light:text-white" />
         </div>
         <div className="flex flex-col w-[130px]">
           <p className="text-white text-xs font-medium truncate">{file.name}</p>
-          <p className="text-white/80 text-xs font-medium">File embedded!</p>
+          <p className="text-white/80 light:text-black/80 text-xs font-medium">
+            File embedded!
+          </p>
         </div>
       </div>
       <Tooltip
diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/SlashPresets/AddPresetModal.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/SlashPresets/AddPresetModal.jsx
index e5154580b..d727c416c 100644
--- a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/SlashPresets/AddPresetModal.jsx
+++ b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/SlashPresets/AddPresetModal.jsx
@@ -25,87 +25,105 @@ export default function AddPresetModal({ isOpen, onClose, onSave }) {
 
   return (
     <ModalWrapper isOpen={isOpen}>
-      <form
-        onSubmit={handleSubmit}
-        className="relative w-full max-w-2xl max-h-full"
-      >
-        <div className="relative bg-main-gradient rounded-lg shadow">
-          <div className="flex items-start justify-between p-4 border-b rounded-t border-gray-500/50">
-            <h3 className="text-xl font-semibold text-white">Add New Preset</h3>
-            <button
-              onClick={onClose}
-              type="button"
-              className="transition-all duration-300 text-gray-400 bg-transparent hover:border-white/60 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center bg-sidebar-button hover:bg-menu-item-selected-gradient hover:border-slate-100 hover:border-opacity-50 border-transparent border"
-            >
-              <X className="text-gray-300 text-lg" />
-            </button>
+      <div className="w-full max-w-2xl bg-theme-bg-secondary rounded-lg shadow border-2 border-theme-modal-border overflow-hidden">
+        <div className="relative p-6 border-b rounded-t border-theme-modal-border">
+          <div className="w-full flex gap-x-2 items-center">
+            <h3 className="text-xl font-semibold text-white overflow-hidden overflow-ellipsis whitespace-nowrap">
+              Add New Preset
+            </h3>
           </div>
-          <div className="p-6 space-y-6 flex h-full w-full">
-            <div className="w-full flex flex-col gap-y-4">
-              <div>
-                <label className="block mb-2 text-sm font-medium text-white">
-                  Command
-                </label>
-                <div className="flex items-center">
-                  <span className="text-white text-sm mr-2 font-bold">/</span>
+          <button
+            onClick={onClose}
+            type="button"
+            className="absolute top-4 right-4 transition-all duration-300 bg-transparent rounded-lg text-sm p-1 inline-flex items-center hover:bg-theme-modal-border hover:border-theme-modal-border hover:border-opacity-50 border-transparent border"
+          >
+            <X size={24} weight="bold" className="text-white" />
+          </button>
+        </div>
+        <div
+          className="h-full w-full overflow-y-auto"
+          style={{ maxHeight: "calc(100vh - 200px)" }}
+        >
+          <form onSubmit={handleSubmit}>
+            <div className="py-7 px-9 space-y-2 flex-col">
+              <div className="w-full flex flex-col gap-y-4">
+                <div>
+                  <label
+                    htmlFor="command"
+                    className="block mb-2 text-sm font-medium text-white"
+                  >
+                    Command
+                  </label>
+                  <div className="flex items-center">
+                    <span className="text-white text-sm mr-2 font-bold">/</span>
+                    <input
+                      name="command"
+                      type="text"
+                      id="command"
+                      placeholder="your-command"
+                      value={command}
+                      onChange={handleCommandChange}
+                      maxLength={25}
+                      autoComplete="off"
+                      required={true}
+                      className="bg-theme-settings-input-bg w-full text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+                    />
+                  </div>
+                </div>
+                <div>
+                  <label
+                    htmlFor="prompt"
+                    className="block mb-2 text-sm font-medium text-white"
+                  >
+                    Prompt
+                  </label>
+                  <textarea
+                    name="prompt"
+                    id="prompt"
+                    autoComplete="off"
+                    placeholder="This is the content that will be injected in front of your prompt."
+                    required={true}
+                    className="bg-theme-settings-input-bg w-full text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+                  ></textarea>
+                </div>
+                <div>
+                  <label
+                    htmlFor="description"
+                    className="block mb-2 text-sm font-medium text-white"
+                  >
+                    Description
+                  </label>
                   <input
-                    name="command"
                     type="text"
-                    placeholder="your-command"
-                    value={command}
-                    onChange={handleCommandChange}
-                    maxLength={25}
+                    name="description"
+                    id="description"
+                    placeholder="Responds with a poem about LLMs."
+                    maxLength={80}
                     autoComplete="off"
                     required={true}
-                    className="border-none bg-zinc-900 placeholder:text-white/20 border-gray-500 text-white text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5"
+                    className="bg-theme-settings-input-bg w-full text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                   />
                 </div>
               </div>
-              <div>
-                <label className="block mb-2 text-sm font-medium text-white">
-                  Prompt
-                </label>
-                <textarea
-                  name="prompt"
-                  autoComplete="off"
-                  placeholder="This is the content that will be injected in front of your prompt."
-                  required={true}
-                  className="border-none bg-zinc-900 placeholder:text-white/20 border-gray-500 text-white text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5"
-                ></textarea>
-              </div>
-              <div>
-                <label className="border-none block mb-2 text-sm font-medium text-white">
-                  Description
-                </label>
-                <input
-                  type="text"
-                  name="description"
-                  placeholder="Responds with a poem about LLMs."
-                  maxLength={80}
-                  autoComplete="off"
-                  required={true}
-                  className="border-none bg-zinc-900 placeholder:text-white/20 border-gray-500 text-white text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5"
-                />
-              </div>
             </div>
-          </div>
-          <div className="flex w-full justify-between items-center p-6 space-x-2 border-t rounded-b border-gray-500/50">
-            <button
-              onClick={onClose}
-              type="button"
-              className="px-4 py-2 rounded-lg text-white hover:bg-stone-900 transition-all duration-300"
-            >
-              Cancel
-            </button>
-            <button
-              type="submit"
-              className="transition-all duration-300 border border-slate-200 px-4 py-2 rounded-lg text-white text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 focus:ring-gray-800"
-            >
-              Save
-            </button>
-          </div>
+            <div className="flex w-full justify-end items-center p-6 space-x-2 border-t border-theme-modal-border rounded-b">
+              <button
+                onClick={onClose}
+                type="button"
+                className="transition-all duration-300 bg-transparent text-white hover:opacity-60 px-4 py-2 rounded-lg text-sm"
+              >
+                Cancel
+              </button>
+              <button
+                type="submit"
+                className="transition-all duration-300 bg-white text-black hover:opacity-60 px-4 py-2 rounded-lg text-sm"
+              >
+                Save
+              </button>
+            </div>
+          </form>
         </div>
-      </form>
+      </div>
     </ModalWrapper>
   );
 }
diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/SlashPresets/EditPresetModal.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/SlashPresets/EditPresetModal.jsx
index f3423d2f8..6715cbe20 100644
--- a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/SlashPresets/EditPresetModal.jsx
+++ b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/SlashPresets/EditPresetModal.jsx
@@ -47,105 +47,109 @@ export default function EditPresetModal({
 
   return (
     <ModalWrapper isOpen={isOpen}>
-      <form
-        onSubmit={handleSubmit}
-        className="relative w-full max-w-2xl max-h-full"
-      >
-        <div className="relative bg-main-gradient rounded-lg shadow">
-          <div className="flex items-start justify-between p-4 border-b rounded-t border-gray-500/50">
-            <h3 className="text-xl font-semibold text-white">Edit Preset</h3>
-            <button
-              onClick={onClose}
-              type="button"
-              className="transition-all duration-300 text-gray-400 bg-transparent hover:border-white/60 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center bg-sidebar-button hover:bg-menu-item-selected-gradient hover:border-slate-100 hover:border-opacity-50 border-transparent border"
-            >
-              <X className="text-gray-300 text-lg" />
-            </button>
+      <div className="w-full max-w-2xl bg-theme-bg-secondary rounded-lg shadow border-2 border-theme-modal-border overflow-hidden">
+        <div className="relative p-6 border-b rounded-t border-theme-modal-border">
+          <div className="w-full flex gap-x-2 items-center">
+            <h3 className="text-xl font-semibold text-white overflow-hidden overflow-ellipsis whitespace-nowrap">
+              Edit Preset
+            </h3>
           </div>
-          <div className="p-6 space-y-6 flex h-full w-full">
-            <div className="w-full flex flex-col gap-y-4">
-              <div>
-                <label
-                  htmlFor="command"
-                  className="block mb-2 text-sm font-medium text-white"
-                >
-                  Command
-                </label>
-                <div className="flex items-center">
-                  <span className="text-white text-sm mr-2 font-bold">/</span>
+          <button
+            onClick={onClose}
+            type="button"
+            className="absolute top-4 right-4 transition-all duration-300 bg-transparent rounded-lg text-sm p-1 inline-flex items-center hover:bg-theme-modal-border hover:border-theme-modal-border hover:border-opacity-50 border-transparent border"
+          >
+            <X size={24} weight="bold" className="text-white" />
+          </button>
+        </div>
+        <div
+          className="h-full w-full overflow-y-auto"
+          style={{ maxHeight: "calc(100vh - 200px)" }}
+        >
+          <form onSubmit={handleSubmit}>
+            <div className="py-7 px-9 space-y-2 flex-col">
+              <div className="w-full flex flex-col gap-y-4">
+                <div>
+                  <label
+                    htmlFor="command"
+                    className="block mb-2 text-sm font-medium text-white"
+                  >
+                    Command
+                  </label>
+                  <div className="flex items-center">
+                    <span className="text-white text-sm mr-2 font-bold">/</span>
+                    <input
+                      type="text"
+                      name="command"
+                      placeholder="your-command"
+                      value={command}
+                      onChange={handleCommandChange}
+                      required={true}
+                      className="bg-theme-settings-input-bg w-full text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+                    />
+                  </div>
+                </div>
+                <div>
+                  <label
+                    htmlFor="prompt"
+                    className="block mb-2 text-sm font-medium text-white"
+                  >
+                    Prompt
+                  </label>
+                  <textarea
+                    name="prompt"
+                    placeholder="This is a test prompt. Please respond with a poem about LLMs."
+                    defaultValue={preset.prompt}
+                    required={true}
+                    className="bg-theme-settings-input-bg w-full text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+                  ></textarea>
+                </div>
+                <div>
+                  <label
+                    htmlFor="description"
+                    className="block mb-2 text-sm font-medium text-white"
+                  >
+                    Description
+                  </label>
                   <input
                     type="text"
-                    name="command"
-                    placeholder="your-command"
-                    value={command}
-                    onChange={handleCommandChange}
+                    name="description"
+                    defaultValue={preset.description}
+                    placeholder="Responds with a poem about LLMs."
                     required={true}
-                    className="border-none bg-zinc-900 placeholder:text-white/20 border-gray-500 text-white text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5"
+                    className="bg-theme-settings-input-bg w-full text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                   />
                 </div>
               </div>
-              <div>
-                <label
-                  htmlFor="prompt"
-                  className="block mb-2 text-sm font-medium text-white"
-                >
-                  Prompt
-                </label>
-                <textarea
-                  name="prompt"
-                  placeholder="This is a test prompt. Please respond with a poem about LLMs."
-                  defaultValue={preset.prompt}
-                  required={true}
-                  className="border-none bg-zinc-900 placeholder:text-white/20 border-gray-500 text-white text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5"
-                ></textarea>
-              </div>
-              <div>
-                <label
-                  htmlFor="description"
-                  className="block mb-2 text-sm font-medium text-white"
-                >
-                  Description
-                </label>
-                <input
-                  type="text"
-                  name="description"
-                  defaultValue={preset.description}
-                  placeholder="Responds with a poem about LLMs."
-                  required={true}
-                  className="border-none bg-zinc-900 placeholder:text-white/20 border-gray-500 text-white text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5"
-                />
-              </div>
             </div>
-          </div>
-          <div className="flex w-full justify-between items-center p-6 space-x-2 border-t rounded-b border-gray-500/50">
-            <div className="flex flex-col space-y-2">
+            <div className="flex w-full justify-between items-center p-6 space-x-2 border-t border-theme-modal-border rounded-b">
               <button
                 disabled={deleting}
                 onClick={handleDelete}
                 type="button"
-                className="px-4 py-2 rounded-lg text-red-500 hover:bg-red-500/25 transition-all duration-300 disabled:opacity-50"
+                className="transition-all duration-300 bg-transparent text-red-500 hover:bg-red-500/25 px-4 py-2 rounded-lg text-sm disabled:opacity-50"
               >
                 {deleting ? "Deleting..." : "Delete Preset"}
               </button>
+              <div className="flex space-x-2">
+                <button
+                  onClick={onClose}
+                  type="button"
+                  className="transition-all duration-300 bg-transparent text-white hover:opacity-60 px-4 py-2 rounded-lg text-sm"
+                >
+                  Cancel
+                </button>
+                <button
+                  type="submit"
+                  className="transition-all duration-300 bg-white text-black hover:opacity-60 px-4 py-2 rounded-lg text-sm"
+                >
+                  Save
+                </button>
+              </div>
             </div>
-            <div className="flex space-x-2">
-              <button
-                onClick={onClose}
-                type="button"
-                className="px-4 py-2 rounded-lg text-white hover:bg-stone-900 transition-all duration-300"
-              >
-                Cancel
-              </button>
-              <button
-                type="submit"
-                className="transition-all duration-300 border border-slate-200 px-4 py-2 rounded-lg text-white text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 focus:ring-gray-800"
-              >
-                Save
-              </button>
-            </div>
-          </div>
+          </form>
         </div>
-      </form>
+      </div>
     </ModalWrapper>
   );
 }
diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/SlashPresets/index.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/SlashPresets/index.jsx
index edef845c1..c8c493577 100644
--- a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/SlashPresets/index.jsx
+++ b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/SlashPresets/index.jsx
@@ -85,11 +85,13 @@ export default function SlashPresets({ setShowing, sendCommand }) {
             setShowing(false);
             sendCommand(`${preset.command} `, false);
           }}
-          className="w-full hover:cursor-pointer hover:bg-zinc-700 px-2 py-2 rounded-xl flex flex-row justify-start"
+          className="w-full hover:cursor-pointer hover:bg-theme-action-menu-item-hover px-2 py-2 rounded-xl flex flex-row justify-start"
         >
           <div className="w-full flex-col text-left flex pointer-events-none">
-            <div className="text-white text-sm font-bold">{preset.command}</div>
-            <div className="text-white text-opacity-60 text-sm">
+            <div className="text-theme-text-primary text-sm font-bold">
+              {preset.command}
+            </div>
+            <div className="text-theme-text-secondary text-sm">
               {preset.description}
             </div>
           </div>
@@ -98,7 +100,7 @@ export default function SlashPresets({ setShowing, sendCommand }) {
               e.stopPropagation();
               handleEditPreset(preset);
             }}
-            className="text-white text-sm p-1 hover:cursor-pointer hover:bg-zinc-900 rounded-full mt-1"
+            className="text-theme-text-primary text-sm p-1 hover:cursor-pointer hover:bg-theme-action-menu-item-hover rounded-full mt-1"
           >
             <DotsThree size={24} weight="bold" />
           </button>
@@ -106,11 +108,13 @@ export default function SlashPresets({ setShowing, sendCommand }) {
       ))}
       <button
         onClick={openAddModal}
-        className="w-full hover:cursor-pointer hover:bg-zinc-700 px-2 py-1 rounded-xl flex flex-col justify-start"
+        className="w-full hover:cursor-pointer hover:bg-theme-action-menu-item-hover px-2 py-1 rounded-xl flex flex-col justify-start"
       >
         <div className="w-full flex-row flex pointer-events-none items-center gap-2">
-          <Plus size={24} weight="fill" fill="white" />
-          <div className="text-white text-sm font-medium">Add New Preset </div>
+          <Plus size={24} weight="fill" className="text-theme-text-primary" />
+          <div className="text-theme-text-primary text-sm font-medium">
+            Add New Preset
+          </div>
         </div>
       </button>
       <AddPresetModal
diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/endAgentSession.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/endAgentSession.jsx
index 093fd5a10..eb99c698a 100644
--- a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/endAgentSession.jsx
+++ b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/endAgentSession.jsx
@@ -10,7 +10,7 @@ export default function EndAgentSession({ setShowing, sendCommand }) {
         setShowing(false);
         sendCommand("/exit", true);
       }}
-      className="w-full hover:cursor-pointer hover:bg-zinc-700 px-2 py-2 rounded-xl flex flex-col justify-start"
+      className="w-full hover:cursor-pointer hover:bg-theme-action-menu-item-hover px-2 py-2 rounded-xl flex flex-col justify-start"
     >
       <div className="w-full flex-col text-left flex pointer-events-none">
         <div className="text-white text-sm font-bold">/exit</div>
diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/icons/SlashCommandIcon.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/icons/SlashCommandIcon.jsx
new file mode 100644
index 000000000..4805233ee
--- /dev/null
+++ b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/icons/SlashCommandIcon.jsx
@@ -0,0 +1,28 @@
+export default function SlashCommandIcon(props) {
+  return (
+    <svg
+      width="20"
+      height="20"
+      viewBox="0 0 20 20"
+      fill="none"
+      xmlns="http://www.w3.org/2000/svg"
+      {...props}
+    >
+      <rect
+        x="1.02539"
+        y="1.43799"
+        width="17.252"
+        height="17.252"
+        rx="2"
+        stroke="currentColor"
+        strokeWidth="1.5"
+      />
+      <path
+        d="M6.70312 14.5408L12.5996 5.8056"
+        stroke="currentColor"
+        strokeWidth="1.5"
+        strokeLinecap="round"
+      />
+    </svg>
+  );
+}
diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/icons/slash-commands-icon.svg b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/icons/slash-commands-icon.svg
deleted file mode 100644
index 368bdf526..000000000
--- a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/icons/slash-commands-icon.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
-<rect x="1.02539" y="1.43799" width="17.252" height="17.252" rx="2" stroke="white" stroke-opacity="1.0" stroke-width="1.5"/>
-<path d="M6.70312 14.5408L12.5996 5.8056" stroke="white" stroke-opacity="1.0" stroke-width="1.5" stroke-linecap="round"/>
-</svg>
diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/index.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/index.jsx
index c242da27c..26f1958f1 100644
--- a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/index.jsx
+++ b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/index.jsx
@@ -1,5 +1,5 @@
 import { useEffect, useRef, useState } from "react";
-import SlashCommandIcon from "./icons/slash-commands-icon.svg";
+import SlashCommandIcon from "./icons/SlashCommandIcon";
 import { Tooltip } from "react-tooltip";
 import ResetCommand from "./reset";
 import EndAgentSession from "./endAgentSession";
@@ -12,14 +12,13 @@ export default function SlashCommandsButton({ showing, setShowSlashCommand }) {
       data-tooltip-id="tooltip-slash-cmd-btn"
       data-tooltip-content="View all available slash commands for chatting."
       onClick={() => setShowSlashCommand(!showing)}
-      className={`flex justify-center items-center opacity-60 hover:opacity-100 cursor-pointer ${
+      className={`flex justify-center items-center cursor-pointer ${
         showing ? "!opacity-100" : ""
       }`}
     >
-      <img
-        src={SlashCommandIcon}
-        className="w-6 h-6 pointer-events-none"
-        alt="Slash commands button"
+      <SlashCommandIcon
+        color="var(--theme-sidebar-footer-icon-fill)"
+        className={`w-[20px] h-[20px] pointer-events-none opacity-60 hover:opacity-100 light:opacity-100 light:hover:opacity-60`}
       />
       <Tooltip
         id="tooltip-slash-cmd-btn"
@@ -53,7 +52,7 @@ export function SlashCommands({ showing, setShowing, sendCommand }) {
       <div className="w-full flex justify-center absolute bottom-[130px] md:bottom-[150px] left-0 z-10 px-4">
         <div
           ref={cmdRef}
-          className="w-[600px] bg-zinc-800 rounded-2xl flex shadow flex-col justify-start items-start gap-2.5 p-2 overflow-y-auto max-h-[300px] no-scroll"
+          className="w-[600px] bg-theme-action-menu-bg rounded-2xl flex shadow flex-col justify-start items-start gap-2.5 p-2 overflow-y-auto max-h-[300px] no-scroll"
         >
           <ResetCommand sendCommand={sendCommand} setShowing={setShowing} />
           <EndAgentSession sendCommand={sendCommand} setShowing={setShowing} />
diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/reset.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/reset.jsx
index e53ec26d0..00fbd6cdd 100644
--- a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/reset.jsx
+++ b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/reset.jsx
@@ -10,7 +10,7 @@ export default function ResetCommand({ setShowing, sendCommand }) {
         setShowing(false);
         sendCommand("/reset", true);
       }}
-      className="w-full hover:cursor-pointer hover:bg-zinc-700 px-2 py-2 rounded-xl flex flex-col justify-start"
+      className="w-full hover:cursor-pointer hover:bg-theme-action-menu-item-hover px-2 py-2 rounded-xl flex flex-col justify-start"
     >
       <div className="w-full flex-col text-left flex pointer-events-none">
         <div className="text-white text-sm font-bold">/reset</div>
diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SpeechToText/index.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SpeechToText/index.jsx
index a25f3ef6e..64cfa3763 100644
--- a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SpeechToText/index.jsx
+++ b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SpeechToText/index.jsx
@@ -98,13 +98,14 @@ export default function SpeechToText({ sendCommand }) {
       data-tooltip-content="Speak your prompt"
       aria-label="Speak your prompt"
       onClick={listening ? endTTSSession : startSTTSession}
-      className={`relative flex justify-center items-center opacity-60 hover:opacity-100 cursor-pointer ${
+      className={`relative flex justify-center items-center opacity-60 hover:opacity-100 light:opacity-100 light:hover:opacity-60 cursor-pointer ${
         !!listening ? "!opacity-100" : ""
       }`}
     >
       <Microphone
         weight="fill"
-        className={`w-6 h-6 pointer-events-none text-white overflow-hidden rounded-full ${
+        color="var(--theme-sidebar-footer-icon-fill)"
+        className={`w-[22px] h-[22px] pointer-events-none text-theme-text-primary ${
           listening ? "animate-pulse-glow" : ""
         }`}
       />
diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/TextSizeMenu/index.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/TextSizeMenu/index.jsx
index 645e943c0..e64367348 100644
--- a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/TextSizeMenu/index.jsx
+++ b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/TextSizeMenu/index.jsx
@@ -15,13 +15,14 @@ export default function TextSizeButton() {
         data-tooltip-content="Change text size"
         aria-label="Change text size"
         onClick={() => setShowTextSizeMenu(!showTextSizeMenu)}
-        className={`relative flex justify-center items-center opacity-60 hover:opacity-100 cursor-pointer ${
+        className={`relative flex justify-center items-center opacity-60 hover:opacity-100 light:opacity-100 light:hover:opacity-60 cursor-pointer ${
           showTextSizeMenu ? "!opacity-100" : ""
         }`}
       >
         <TextT
+          color="var(--theme-sidebar-footer-icon-fill)"
           weight="fill"
-          className="w-6 h-6 pointer-events-none text-white"
+          className="w-[22px] h-[22px] pointer-events-none text-white"
         />
         <Tooltip
           id="tooltip-text-size-btn"
@@ -72,7 +73,7 @@ function TextSizeMenu({ showing, setShowing, buttonRef }) {
     <div hidden={!showing}>
       <div
         ref={formRef}
-        className="absolute bottom-16 -ml-8 w-[140px] p-2 bg-zinc-800 rounded-lg shadow-md flex flex-col justify-center items-start gap-2 z-50"
+        className="absolute bottom-16 -ml-8 w-[140px] p-2 bg-theme-action-menu-bg rounded-lg shadow-md flex flex-col justify-center items-start gap-2 z-50"
       >
         <button
           onClick={(e) => {
@@ -81,11 +82,13 @@ function TextSizeMenu({ showing, setShowing, buttonRef }) {
             handleTextSizeChange("small");
           }}
           className={`w-full hover:cursor-pointer px-2 py-1 rounded-md flex flex-col justify-start group ${
-            selectedSize === "small" ? "bg-zinc-700" : "hover:bg-zinc-700"
+            selectedSize === "small"
+              ? "bg-theme-action-menu-item-hover"
+              : "hover:bg-theme-action-menu-item-hover"
           }`}
         >
           <div className="w-full flex-col text-left flex pointer-events-none">
-            <div className="text-white text-xs">Small</div>
+            <div className="text-theme-text-primary text-xs">Small</div>
           </div>
         </button>
 
@@ -96,11 +99,13 @@ function TextSizeMenu({ showing, setShowing, buttonRef }) {
             handleTextSizeChange("normal");
           }}
           className={`w-full hover:cursor-pointer px-2 py-1 rounded-md flex flex-col justify-start group ${
-            selectedSize === "normal" ? "bg-zinc-700" : "hover:bg-zinc-700"
+            selectedSize === "normal"
+              ? "bg-theme-action-menu-item-hover"
+              : "hover:bg-theme-action-menu-item-hover"
           }`}
         >
           <div className="w-full flex-col text-left flex pointer-events-none">
-            <div className="text-white text-sm">Normal</div>
+            <div className="text-theme-text-primary text-sm">Normal</div>
           </div>
         </button>
 
@@ -111,11 +116,13 @@ function TextSizeMenu({ showing, setShowing, buttonRef }) {
             handleTextSizeChange("large");
           }}
           className={`w-full hover:cursor-pointer px-2 py-1 rounded-md flex flex-col justify-start group ${
-            selectedSize === "large" ? "bg-zinc-700" : "hover:bg-zinc-700"
+            selectedSize === "large"
+              ? "bg-theme-action-menu-item-hover"
+              : "hover:bg-theme-action-menu-item-hover"
           }`}
         >
           <div className="w-full flex-col text-left flex pointer-events-none">
-            <div className="text-white text-[16px]">Large</div>
+            <div className="text-theme-text-primary text-[16px]">Large</div>
           </div>
         </button>
       </div>
diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/index.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/index.jsx
index f115e7948..47ae53f14 100644
--- a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/index.jsx
+++ b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/index.jsx
@@ -250,9 +250,9 @@ export default function PromptInput({
         className="flex flex-col gap-y-1 rounded-t-lg md:w-3/4 w-full mx-auto max-w-xl items-center"
       >
         <div className="flex items-center rounded-lg md:mb-4">
-          <div className="w-[95vw] md:w-[635px] bg-main-gradient shadow-2xl border border-white/50 rounded-2xl flex flex-col px-4 overflow-hidden">
+          <div className="w-[95vw] md:w-[635px] bg-theme-bg-chat-input light:bg-white light:border-[1px] light:border-theme-chat-input-border shadow-sm rounded-2xl flex flex-col px-4 overflow-hidden">
             <AttachmentManager attachments={attachments} />
-            <div className="flex items-center w-full border-b-2 border-gray-500/50">
+            <div className="flex items-center w-full border-b-2 border-theme-chat-input-border">
               <textarea
                 ref={textareaRef}
                 onChange={handleChange}
@@ -269,7 +269,7 @@ export default function PromptInput({
                   adjustTextArea(e);
                 }}
                 value={promptInput}
-                className="cursor-text max-h-[50vh] md:max-h-[350px] md:min-h-[40px] mx-2 md:mx-0 py-2 w-full text-[16px] md:text-md text-white bg-transparent placeholder:text-white/60 resize-none active:outline-none focus:outline-none flex-grow"
+                className="cursor-text max-h-[50vh] md:max-h-[350px] md:min-h-[40px] mx-2 md:mx-0 pt-[12px] w-full text-[14px] leading-5 md:text-md text-white bg-transparent placeholder:text-white/60 light:placeholder:text-theme-text-primary resize-none active:outline-none focus:outline-none flex-grow"
                 placeholder={"Send a message"}
               />
               {buttonDisabled ? (
@@ -279,12 +279,16 @@ export default function PromptInput({
                   <button
                     ref={formRef}
                     type="submit"
-                    className="inline-flex justify-center rounded-2xl cursor-pointer text-white/60 hover:text-white group ml-4"
+                    className="inline-flex justify-center rounded-2xl cursor-pointer opacity-60 hover:opacity-100 light:opacity-100 light:hover:opacity-60 ml-4"
                     data-tooltip-id="send-prompt"
                     data-tooltip-content="Send prompt message to workspace"
                     aria-label="Send prompt message to workspace"
                   >
-                    <PaperPlaneRight className="w-7 h-7 my-3" weight="fill" />
+                    <PaperPlaneRight
+                      color="var(--theme-sidebar-footer-icon-fill)"
+                      className="w-[22px] h-[22px] pointer-events-none text-theme-text-primary"
+                      weight="fill"
+                    />
                     <span className="sr-only">Send message</span>
                   </button>
                   <Tooltip
diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/index.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/index.jsx
index 6b2a51fcd..ad109e74e 100644
--- a/frontend/src/components/WorkspaceChat/ChatContainer/index.jsx
+++ b/frontend/src/components/WorkspaceChat/ChatContainer/index.jsx
@@ -264,7 +264,7 @@ export default function ChatContainer({ workspace, knownHistory = [] }) {
   return (
     <div
       style={{ height: isMobile ? "100%" : "calc(100% - 32px)" }}
-      className="transition-all duration-500 relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-main-gradient w-full h-full overflow-y-scroll border-2 border-outline no-scroll"
+      className="transition-all duration-500 relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-theme-bg-secondary w-full h-full overflow-y-scroll no-scroll"
     >
       {isMobile && <SidebarMobileHeader />}
       <DnDFileUploaderWrapper>
diff --git a/frontend/src/components/WorkspaceChat/LoadingChat/index.jsx b/frontend/src/components/WorkspaceChat/LoadingChat/index.jsx
index 83e7c4e08..6f50322cf 100644
--- a/frontend/src/components/WorkspaceChat/LoadingChat/index.jsx
+++ b/frontend/src/components/WorkspaceChat/LoadingChat/index.jsx
@@ -3,12 +3,12 @@ import * as Skeleton from "react-loading-skeleton";
 import "react-loading-skeleton/dist/skeleton.css";
 
 export default function LoadingChat() {
-  const highlightColor = "#3D4147";
-  const baseColor = "#2C2F35";
+  const highlightColor = "var(--theme-bg-primary)";
+  const baseColor = "var(--theme-bg-secondary)";
   return (
     <div
-      style={{ height: isMobile ? "100%" : "calc(100% - 32px)" }}
-      className="p-4 transition-all duration-500 relative md:ml-[2px] md:mr-[8px] md:my-[16px] md:rounded-[26px] bg-main-gradient w-full h-full overflow-y-scroll"
+      className="transition-all duration-500 relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-theme-bg-secondary w-full h-full overflow-y-scroll no-scroll p-4"
+      style={{ height: "calc(100% - 32px)" }}
     >
       <Skeleton.default
         height="100px"
diff --git a/frontend/src/components/WorkspaceChat/index.jsx b/frontend/src/components/WorkspaceChat/index.jsx
index 61dc43df5..bff792573 100644
--- a/frontend/src/components/WorkspaceChat/index.jsx
+++ b/frontend/src/components/WorkspaceChat/index.jsx
@@ -36,7 +36,7 @@ export default function WorkspaceChat({ loading, workspace }) {
       <>
         {loading === false && !workspace && (
           <ModalWrapper isOpen={true}>
-            <div className="relative w-full md:max-w-2xl max-h-full bg-main-gradient rounded-lg shadow p-4">
+            <div className="relative w-full max-w-2xl bg-theme-bg-secondary rounded-lg shadow border-2 border-theme-modal-border">
               <div className="flex flex-col gap-y-4 w-full p-6 text-center">
                 <p className="font-semibold text-red-500 text-xl">
                   Workspace not found!
@@ -48,7 +48,7 @@ export default function WorkspaceChat({ loading, workspace }) {
                 <div className="flex w-full justify-center items-center mt-4">
                   <a
                     href={paths.home()}
-                    className="border border-slate-200 text-white hover:bg-slate-200 hover:text-slate-800 px-4 py-2 rounded-lg text-sm items-center flex gap-x-2 transition-all duration-300"
+                    className="transition-all duration-300 bg-white text-black hover:opacity-60 px-4 py-2 rounded-lg text-sm flex items-center gap-x-2"
                   >
                     Go back to homepage
                   </a>
diff --git a/frontend/src/hooks/useTheme.js b/frontend/src/hooks/useTheme.js
new file mode 100644
index 000000000..d56488e3d
--- /dev/null
+++ b/frontend/src/hooks/useTheme.js
@@ -0,0 +1,53 @@
+import { useState, useEffect } from "react";
+
+const availableThemes = {
+  default: "Default",
+  light: "Light",
+};
+
+/**
+ * Determines the current theme of the application
+ * @returns {{theme: ('default' | 'light'), setTheme: function, availableThemes: object}} The current theme, a function to set the theme, and the available themes
+ */
+export function useTheme() {
+  const [theme, _setTheme] = useState(() => {
+    return localStorage.getItem("theme") || "default";
+  });
+
+  useEffect(() => {
+    if (localStorage.getItem("theme") !== null) return;
+    if (!window.matchMedia) return;
+    if (window.matchMedia("(prefers-color-scheme: light)").matches)
+      return _setTheme("light");
+    _setTheme("default");
+  }, []);
+
+  useEffect(() => {
+    document.documentElement.setAttribute("data-theme", theme);
+    document.body.classList.toggle("light", theme === "light");
+    localStorage.setItem("theme", theme);
+  }, [theme]);
+
+  // In development, attach keybind combinations to toggle theme
+  useEffect(() => {
+    if (!import.meta.env.DEV) return;
+    function toggleOnKeybind(e) {
+      if (e.metaKey && e.key === ".") {
+        e.preventDefault();
+        const newTheme = theme === "light" ? "default" : "light";
+        console.log("toggling theme to ", newTheme);
+        setTheme(newTheme);
+      }
+    }
+    document.addEventListener("keydown", toggleOnKeybind);
+    return () => document.removeEventListener("keydown", toggleOnKeybind);
+  }, []);
+
+  // Refresh on theme change
+  const setTheme = (newTheme) => {
+    _setTheme(newTheme);
+    window.location.reload();
+  };
+
+  return { theme, setTheme, availableThemes };
+}
diff --git a/frontend/src/index.css b/frontend/src/index.css
index 54f956008..25a2de074 100644
--- a/frontend/src/index.css
+++ b/frontend/src/index.css
@@ -2,6 +2,127 @@
 @tailwind components;
 @tailwind utilities;
 
+:root {
+  /* Default theme */
+  --theme-loader: #ffffff;
+  --theme-bg-primary: #0e0f0f;
+  --theme-bg-secondary: #1b1b1e;
+  --theme-bg-sidebar: #0e0f0f;
+  --theme-bg-container: #0e0f0f;
+  --theme-bg-chat: #1b1b1e;
+  --theme-bg-chat-input: #27282a;
+  --theme-text-primary: #ffffff;
+  --theme-text-secondary: rgba(255, 255, 255, 0.6);
+  --theme-sidebar-item-default: rgba(255, 255, 255, 0.1);
+  --theme-sidebar-item-selected: rgba(255, 255, 255, 0.3);
+  --theme-sidebar-item-hover: #3f3f42;
+  --theme-sidebar-subitem-default: rgba(255, 255, 255, 0.05);
+  --theme-sidebar-subitem-selected: rgba(255, 255, 255, 0.05);
+  --theme-sidebar-thread-selected: rgba(255, 255, 255, 0.05);
+
+  --theme-sidebar-subitem-hover: rgba(255, 255, 255, 0.05);
+  --theme-sidebar-border: rgba(255, 255, 255, 0.1);
+  --theme-sidebar-item-workspace-active: #ffffff;
+  --theme-sidebar-item-workspace-inactive: #ffffff;
+
+  --theme-sidebar-footer-icon: rgba(255, 255, 255, 0.1);
+  --theme-sidebar-footer-icon-fill: #ffffff;
+  --theme-sidebar-footer-icon-hover: rgba(255, 255, 255, 0.2);
+
+  --theme-chat-input-border: #525355;
+  --theme-action-menu-bg: #27282a;
+  --theme-action-menu-item-hover: rgba(255, 255, 255, 0.1);
+  --theme-settings-input-bg: #0e0f0f;
+  --theme-settings-input-placeholder: rgba(255, 255, 255, 0.5);
+  --theme-settings-input-active: rgb(255 255 255 / 0.2);
+  --theme-settings-input-text: #ffffff;
+  --theme-modal-border: #3f3f42;
+  --theme-button-primary-hover: #434343;
+
+  --theme-file-row-even: #0e0f0f;
+  --theme-file-row-odd: #1b1b1e;
+  --theme-file-row-selected-even: rgba(14, 165, 233, 0.2);
+  --theme-file-row-selected-odd: rgba(14, 165, 233, 0.1);
+  --theme-file-picker-hover: rgb(14 165 233 / 0.2);
+}
+
+[data-theme="light"] {
+  --theme-loader: #000000;
+
+  --theme-bg-primary: #ffffff;
+  --theme-bg-secondary: #ffffff;
+  --theme-bg-sidebar: #edf2fa;
+  --theme-bg-container: #f9fbfd;
+
+  --theme-bg-chat: #ffffff;
+  --theme-bg-chat-input: #eaeaea;
+  --theme-text-primary: #0e0f0f;
+  --theme-text-secondary: #7a7d7e;
+  --theme-sidebar-item-default: #ffffff;
+  --theme-sidebar-item-selected: #ffffff;
+  --theme-sidebar-item-hover: #c8efff;
+
+  --theme-sidebar-item-text-inactive: #7a7d7e;
+  --theme-sidebar-item-text-active: #184558;
+
+  --theme-sidebar-item-workspace-active: #000000;
+  --theme-sidebar-item-workspace-inactive: #7a7d7e;
+
+  --theme-sidebar-subitem-default: transparent;
+  --theme-sidebar-subitem-selected: #e2e7ee;
+  --theme-sidebar-thread-selected: #ffffff;
+  --theme-sidebar-subitem-hover: #e2e7ee;
+  --theme-sidebar-border: #d3d4d4;
+
+  --theme-sidebar-footer-icon: #ffffff;
+  --theme-sidebar-footer-icon-fill: #6e6f6f;
+  --theme-sidebar-footer-icon-hover: #d8d6d6;
+
+  --theme-chat-input-border: #cccccc;
+  --theme-action-menu-bg: #eaeaea;
+  --theme-action-menu-item-hover: rgba(0, 0, 0, 0.1);
+  --theme-settings-input-bg: #f5f5f5;
+  --theme-settings-input-placeholder: rgba(0, 0, 0, 0.5);
+  --theme-settings-input-active: rgb(0 0 0 / 0.2);
+  --theme-settings-input-text: #0e0f0f;
+  --theme-modal-border: #d3d3d3;
+  --theme-button-primary-hover: #dedede;
+
+  --theme-file-row-even: #f5f5f5;
+  --theme-file-row-odd: #e9e9e9;
+  --theme-file-row-selected-even: #0ba5ec;
+  --theme-file-row-selected-odd: #0ba5ec;
+  --theme-file-picker-hover: #e2e7ee;
+}
+
+[data-theme="light"] .text-white {
+  color: var(--theme-text-primary);
+}
+
+[data-theme="light"] .text-description,
+[data-theme="light"] .text-white\/60 {
+  color: var(--theme-text-secondary);
+}
+
+[data-theme="light"] .bg-theme-bg-secondary {
+  border: 1px solid var(--theme-sidebar-border);
+}
+
+[data-theme="light"] .border-white\/10 {
+  border-color: var(--theme-sidebar-border);
+}
+
+/*
+This is to override the default border color for the select and input elements
+in the onboarding flow when the theme is not light. This only applies to the
+onboarding flow since its background is dark and is the same fill as the inputs.
+*/
+[data-layout="onboarding"] > * select:not([data-theme="light"]),
+[data-layout="onboarding"] > * input:not([data-theme="light"]),
+[data-layout="onboarding"] > * textarea:not([data-theme="light"]) {
+  border: 1px solid #ffffff;
+}
+
 html,
 body {
   padding: 0;
@@ -434,10 +555,6 @@ dialog::backdrop {
   }
 }
 
-.rti--container {
-  @apply !bg-zinc-900 !text-white !placeholder-white !placeholder-opacity-60 !text-sm !rounded-lg !p-2.5;
-}
-
 .tooltip {
   @apply !bg-black !text-white !py-2 !px-3 !rounded-md;
 }
@@ -654,19 +771,21 @@ dialog::backdrop {
 }
 
 .file-row:nth-child(even) {
-  @apply bg-dark-highlight;
+  @apply bg-theme-bg-primary;
+  background-color: var(--theme-file-row-even);
+  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
 }
 
 .file-row:nth-child(odd) {
-  @apply bg-[#2C2C2C];
-}
-
-.file-row.selected:nth-child(even) {
-  @apply bg-sky-500/20;
+  @apply bg-theme-bg-secondary;
+  background-color: var(--theme-file-row-odd);
+  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
 }
 
+.file-row.selected:nth-child(even),
 .file-row.selected:nth-child(odd) {
-  @apply bg-sky-500/10;
+  background-color: var(--theme-file-row-selected-even);
+  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
 }
 
 /* Flex upload modal to be a column when on small screens so that the UI
@@ -813,3 +932,7 @@ does not extend the close button beyond the viewport. */
 .katex-mathml {
   font-size: 20px;
 }
+
+.rti--container {
+  @apply !bg-theme-settings-input-bg !text-white !placeholder-white !placeholder-opacity-60 !text-sm !rounded-lg !p-2.5;
+}
diff --git a/frontend/src/media/illustrations/login-logo-light.svg b/frontend/src/media/illustrations/login-logo-light.svg
new file mode 100644
index 000000000..bfc83d361
--- /dev/null
+++ b/frontend/src/media/illustrations/login-logo-light.svg
@@ -0,0 +1,45 @@
+<svg width="93" height="93" viewBox="0 0 93 93" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g filter="url(#filter0_d_4703_10188)">
+<rect x="4" width="84.1875" height="84.1875" rx="20" fill="#FFFFFF"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M50.8269 50.4097C50.2964 51.095 50.2834 52.0566 50.8168 52.751L55.2535 58.9155L55.2683 58.9342C56.2457 60.1644 57.7195 60.8701 59.2898 60.8701H69.203C72.0138 60.8701 74.311 58.6109 74.311 55.809V29.7848C74.311 26.9868 72.0143 24.7236 69.203 24.7236H59.2898C57.7153 24.7236 56.2443 25.4303 55.267 26.6646L46.2579 38.0502L32.6371 55.261H23.5258V30.3362H32.6197L37.5779 37.0354L37.5877 37.0477C38.3605 38.026 39.8433 38.0201 40.6159 37.0513L41.7614 35.6032L41.7678 35.5949C42.2993 34.9084 42.3124 33.9423 41.7689 33.2463L36.9296 26.6779L36.9188 26.6643C35.9418 25.4304 34.4747 24.7236 32.8962 24.7236H22.983C20.1832 24.7236 17.875 26.9891 17.875 29.7848V55.8124C17.875 58.6075 20.1792 60.8735 22.983 60.8735H32.8962C34.4744 60.8735 35.9409 60.1671 36.9177 58.9376L59.5517 30.3328H68.6602V55.2575H59.5646L55.0229 48.969L55.0083 48.9507C54.2373 47.982 52.7561 47.982 51.9852 48.9507L50.8344 50.4001L50.8269 50.4097ZM33.2564 56.0898L40.1181 47.4196L47.0421 38.6707L56.0512 27.2851L33.2564 56.0898Z" fill="url(#paint0_linear_4703_10188)"/>
+<g filter="url(#filter1_bi_4703_10188)">
+<mask id="path-3-outside-1_4703_10188" maskUnits="userSpaceOnUse" x="14.875" y="21.7236" width="63" height="43" fill="black">
+<rect fill="white" x="14.875" y="21.7236" width="63" height="43"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M50.8269 50.4097C50.2964 51.095 50.2834 52.0566 50.8168 52.751L55.2535 58.9155L55.2683 58.9342C56.2457 60.1644 57.7195 60.8701 59.2898 60.8701H69.203C72.0138 60.8701 74.311 58.6109 74.311 55.809V29.7848C74.311 26.9868 72.0143 24.7236 69.203 24.7236H59.2898C57.7153 24.7236 56.2443 25.4303 55.267 26.6646L46.2579 38.0502L32.6371 55.261H23.5258V30.3362H32.6197L37.5779 37.0354L37.5877 37.0477C38.3605 38.026 39.8433 38.0201 40.6159 37.0513L41.7614 35.6032L41.7678 35.5949C42.2993 34.9084 42.3124 33.9423 41.7689 33.2463L36.9296 26.6779L36.9188 26.6643C35.9418 25.4304 34.4747 24.7236 32.8962 24.7236H22.983C20.1832 24.7236 17.875 26.9891 17.875 29.7848V55.8124C17.875 58.6075 20.1792 60.8735 22.983 60.8735H32.8962C34.4744 60.8735 35.9409 60.1671 36.9177 58.9376L59.5517 30.3328H68.6602V55.2575H59.5646L55.0229 48.969L55.0083 48.9507C54.2373 47.982 52.7561 47.982 51.9852 48.9507L50.8344 50.4001L50.8269 50.4097ZM33.2564 56.0898L40.1181 47.4196L47.0421 38.6707L56.0512 27.2851L33.2564 56.0898Z"/>
+</mask>
+<path d="M50.8168 52.751L53.2517 50.9985L53.2244 50.9605L53.1959 50.9234L50.8168 52.751ZM50.8269 50.4097L53.1992 52.2462L53.1995 52.2458L50.8269 50.4097ZM55.2535 58.9155L52.8186 60.668L52.8603 60.7261L52.9048 60.782L55.2535 58.9155ZM55.2683 58.9342L57.6172 57.0679L57.6169 57.0677L55.2683 58.9342ZM55.267 26.6646L52.915 24.8023L52.9145 24.803L55.267 26.6646ZM46.2579 38.0502L48.6103 39.9119L48.6105 39.9117L46.2579 38.0502ZM32.6371 55.261V58.261H34.0886L34.9895 57.1227L32.6371 55.261ZM23.5258 55.261H20.5258V58.261H23.5258V55.261ZM23.5258 30.3362V27.3362H20.5258V30.3362H23.5258ZM32.6197 30.3362L35.0311 28.5515L34.1317 27.3362H32.6197V30.3362ZM37.5779 37.0354L35.1665 38.8201L35.1946 38.858L35.2239 38.895L37.5779 37.0354ZM37.5877 37.0477L35.2336 38.9074L35.2337 38.9074L37.5877 37.0477ZM40.6159 37.0513L42.9615 38.9217L42.9687 38.9125L40.6159 37.0513ZM41.7614 35.6032L44.1142 37.4644L44.1239 37.4522L44.1335 37.4398L41.7614 35.6032ZM41.7678 35.5949L44.1399 37.4316L44.1401 37.4313L41.7678 35.5949ZM41.7689 33.2463L39.3536 35.0258L39.3786 35.0596L39.4044 35.0927L41.7689 33.2463ZM36.9296 26.6779L39.3448 24.8985L39.3139 24.8564L39.2814 24.8155L36.9296 26.6779ZM36.9188 26.6643L34.5668 28.5266L34.5669 28.5268L36.9188 26.6643ZM36.9177 58.9376L39.2666 60.8038L39.2703 60.7991L36.9177 58.9376ZM59.5517 30.3328V27.3328H58.0999L57.1991 28.4713L59.5517 30.3328ZM68.6602 30.3328H71.6602V27.3328H68.6602V30.3328ZM68.6602 55.2575V58.2575H71.6602V55.2575H68.6602ZM59.5646 55.2575L57.1325 57.014L58.0306 58.2575H59.5646V55.2575ZM55.0229 48.969L57.4549 47.2125L57.4138 47.1557L57.3701 47.1008L55.0229 48.969ZM55.0083 48.9507L52.6609 50.8189L52.661 50.819L55.0083 48.9507ZM51.9852 48.9507L49.6378 47.0826L49.6357 47.0853L51.9852 48.9507ZM50.8344 50.4001L48.4849 48.5346L48.4733 48.5492L48.4619 48.564L50.8344 50.4001ZM33.2564 56.0898L30.9039 54.2281L35.6088 57.9515L33.2564 56.0898ZM40.1181 47.4196L37.7656 45.5579L37.7656 45.5579L40.1181 47.4196ZM47.0421 38.6707L49.3945 40.5324L49.3947 40.5322L47.0421 38.6707ZM56.0512 27.2851L58.4038 29.1466L53.6988 25.4234L56.0512 27.2851ZM53.1959 50.9234C53.5087 51.3307 53.4871 51.8742 53.1992 52.2462L48.4547 48.5733C47.1057 50.3159 47.0581 52.7825 48.4377 54.5785L53.1959 50.9234ZM57.6884 57.1631L53.2517 50.9985L48.3818 54.5034L52.8186 60.668L57.6884 57.1631ZM57.6169 57.0677L57.6021 57.049L52.9048 60.782L52.9196 60.8007L57.6169 57.0677ZM59.2898 57.8701C58.6273 57.8701 58.021 57.5763 57.6172 57.0679L52.9194 60.8004C54.4704 62.7524 56.8117 63.8701 59.2898 63.8701V57.8701ZM69.203 57.8701H59.2898V63.8701H69.203V57.8701ZM71.311 55.809C71.311 56.9216 70.3896 57.8701 69.203 57.8701V63.8701C73.6379 63.8701 77.311 60.3003 77.311 55.809H71.311ZM71.311 29.7848V55.809H77.311V29.7848H71.311ZM69.203 27.7236C70.3884 27.7236 71.311 28.6744 71.311 29.7848H77.311C77.311 25.2991 73.6402 21.7236 69.203 21.7236V27.7236ZM59.2898 27.7236H69.203V21.7236H59.2898V27.7236ZM57.619 28.5269C58.0233 28.0163 58.6254 27.7236 59.2898 27.7236V21.7236C56.8051 21.7236 54.4654 22.8443 52.915 24.8023L57.619 28.5269ZM48.6105 39.9117L57.6196 28.5261L52.9145 24.803L43.9053 36.1886L48.6105 39.9117ZM34.9895 57.1227L48.6103 39.9119L43.9054 36.1884L30.2846 53.3992L34.9895 57.1227ZM23.5258 58.261H32.6371V52.261H23.5258V58.261ZM20.5258 30.3362V55.261H26.5258V30.3362H20.5258ZM32.6197 27.3362H23.5258V33.3362H32.6197V27.3362ZM39.9893 35.2506L35.0311 28.5515L30.2083 32.1209L35.1665 38.8201L39.9893 35.2506ZM39.9417 35.188L39.932 35.1757L35.2239 38.895L35.2336 38.9074L39.9417 35.188ZM38.2704 35.1809C38.6911 34.6532 39.5058 34.6362 39.9417 35.188L35.2337 38.9074C37.2153 41.4157 40.9956 41.387 42.9615 38.9217L38.2704 35.1809ZM39.4086 33.742L38.2631 35.19L42.9687 38.9125L44.1142 37.4644L39.4086 33.742ZM39.3958 33.7583L39.3893 33.7665L44.1335 37.4398L44.1399 37.4316L39.3958 33.7583ZM39.4044 35.0927C39.0836 34.6819 39.107 34.1313 39.3956 33.7585L44.1401 37.4313C45.4916 35.6855 45.5411 33.2027 44.1334 31.4L39.4044 35.0927ZM34.5143 28.4574L39.3536 35.0258L44.1842 31.4668L39.3448 24.8985L34.5143 28.4574ZM34.5669 28.5268L34.5777 28.5404L39.2814 24.8155L39.2707 24.8019L34.5669 28.5268ZM32.8962 27.7236C33.5633 27.7236 34.1621 28.0155 34.5668 28.5266L39.2708 24.802C37.7215 22.8453 35.386 21.7236 32.8962 21.7236V27.7236ZM22.983 27.7236H32.8962V21.7236H22.983V27.7236ZM20.875 29.7848C20.875 28.6802 21.8056 27.7236 22.983 27.7236V21.7236C18.5608 21.7236 14.875 25.298 14.875 29.7848H20.875ZM20.875 55.8124V29.7848H14.875V55.8124H20.875ZM22.983 57.8735C21.8033 57.8735 20.875 56.9181 20.875 55.8124H14.875C14.875 60.2969 18.555 63.8735 22.983 63.8735V57.8735ZM32.8962 57.8735H22.983V63.8735H32.8962V57.8735ZM34.5689 57.0713C34.1638 57.5811 33.5638 57.8735 32.8962 57.8735V63.8735C35.3849 63.8735 37.7179 62.753 39.2666 60.8038L34.5689 57.0713ZM57.1991 28.4713L34.5651 57.0761L39.2703 60.7991L61.9043 32.1943L57.1991 28.4713ZM68.6602 27.3328H59.5517V33.3328H68.6602V27.3328ZM71.6602 55.2575V30.3328H65.6602V55.2575H71.6602ZM59.5646 58.2575H68.6602V52.2575H59.5646V58.2575ZM52.5908 50.7255L57.1325 57.014L61.9966 53.5011L57.4549 47.2125L52.5908 50.7255ZM52.661 50.819L52.6756 50.8372L57.3701 47.1008L57.3556 47.0825L52.661 50.819ZM54.3325 50.8189C53.9024 51.3593 53.091 51.3593 52.6609 50.8189L57.3557 47.0826C55.3836 44.6047 51.6098 44.6047 49.6378 47.0826L54.3325 50.8189ZM53.1839 52.2655L54.3346 50.8162L49.6357 47.0853L48.4849 48.5346L53.1839 52.2655ZM53.1995 52.2458L53.207 52.2361L48.4619 48.564L48.4544 48.5737L53.1995 52.2458ZM35.6088 57.9515L42.4705 49.2813L37.7656 45.5579L30.904 54.228L35.6088 57.9515ZM42.4705 49.2813L49.3945 40.5324L44.6896 36.8089L37.7656 45.5579L42.4705 49.2813ZM49.3947 40.5322L58.4038 29.1466L53.6987 25.4235L44.6895 36.8091L49.3947 40.5322ZM53.6988 25.4234L30.9039 54.2281L35.6089 57.9514L58.4037 29.1467L53.6988 25.4234Z" fill="url(#paint1_linear_4703_10188)" fill-opacity="0.1" mask="url(#path-3-outside-1_4703_10188)"/>
+</g>
+</g>
+<defs>
+<filter id="filter0_d_4703_10188" x="0" y="0" width="92.1875" height="92.1875" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
+<feFlood flood-opacity="0" result="BackgroundImageFix"/>
+<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
+<feOffset dy="4"/>
+<feGaussianBlur stdDeviation="2"/>
+<feComposite in2="hardAlpha" operator="out"/>
+<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
+<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_4703_10188"/>
+<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_4703_10188" result="shape"/>
+</filter>
+<filter id="filter1_bi_4703_10188" x="12.2255" y="19.0741" width="67.7365" height="47.4489" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
+<feFlood flood-opacity="0" result="BackgroundImageFix"/>
+<feGaussianBlur in="BackgroundImageFix" stdDeviation="1.32475"/>
+<feComposite in2="SourceAlpha" operator="in" result="effect1_backgroundBlur_4703_10188"/>
+<feBlend mode="normal" in="SourceGraphic" in2="effect1_backgroundBlur_4703_10188" result="shape"/>
+<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
+<feOffset dy="0.441584"/>
+<feGaussianBlur stdDeviation="0.662376"/>
+<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
+<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.15 0"/>
+<feBlend mode="normal" in2="shape" result="effect2_innerShadow_4703_10188"/>
+</filter>
+<linearGradient id="paint0_linear_4703_10188" x1="18.875" y1="25.7236" x2="77.525" y2="49.4624" gradientUnits="userSpaceOnUse">
+<stop stop-color="#75A5FF"/>
+<stop offset="0.703125" stop-color="#23E5FF"/>
+</linearGradient>
+<linearGradient id="paint1_linear_4703_10188" x1="19.6386" y1="26.3668" x2="74.311" y2="26.3668" gradientUnits="userSpaceOnUse">
+<stop stop-color="#3CDEB6"/>
+<stop offset="0.65625" stop-color="#364AFF"/>
+</linearGradient>
+</defs>
+</svg>
diff --git a/frontend/src/media/illustrations/login-logo.svg b/frontend/src/media/illustrations/login-logo.svg
index 729f847c0..79b3f9ae6 100644
--- a/frontend/src/media/illustrations/login-logo.svg
+++ b/frontend/src/media/illustrations/login-logo.svg
@@ -1,35 +1,43 @@
-<svg width="86" height="85" viewBox="0 0 86 85" fill="none" xmlns="http://www.w3.org/2000/svg">
-<rect x="0.90625" y="0.40625" width="84.1875" height="84.1875" rx="20" fill="url(#paint0_linear_188_1378)"/>
-<path fill-rule="evenodd" clip-rule="evenodd" d="M47.7351 50.8157C47.2046 51.501 47.1916 52.4626 47.725 53.157L52.1617 59.3215L52.1765 59.3402C53.1539 60.5704 54.6277 61.2761 56.198 61.2761H66.1112C68.922 61.2761 71.2192 59.0169 71.2192 56.215V30.1908C71.2192 27.3928 68.9225 25.1296 66.1112 25.1296H56.198C54.6235 25.1296 53.1525 25.8363 52.1753 27.0706L43.1661 38.4562L29.5453 55.667H20.434V30.7422H29.5279L34.4861 37.4414L34.4959 37.4537C35.2687 38.432 36.7515 38.4261 37.5241 37.4573L38.6696 36.0092L38.676 36.0009C39.2075 35.3144 39.2206 34.3483 38.6771 33.6523L33.8378 27.0839L33.827 27.0703C32.85 25.8364 31.3829 25.1296 29.8044 25.1296H19.8912C17.0914 25.1296 14.7832 27.3951 14.7832 30.1908V56.2184C14.7832 59.0135 17.0874 61.2795 19.8912 61.2795H29.8044C31.3826 61.2795 32.8491 60.5731 33.8259 59.3436L56.4599 30.7388H65.5684V55.6635H56.4728L51.9311 49.375L51.9165 49.3567C51.1455 48.388 49.6643 48.388 48.8934 49.3567L47.7426 50.8061L47.7351 50.8157ZM30.1646 56.4958L37.0263 47.8256L43.9503 39.0767L52.9594 27.6911L30.1646 56.4958Z" fill="url(#paint1_linear_188_1378)"/>
-<g filter="url(#filter0_bi_188_1378)">
-<mask id="path-3-outside-1_188_1378" maskUnits="userSpaceOnUse" x="11.7832" y="22.1296" width="63" height="43" fill="black">
-<rect fill="white" x="11.7832" y="22.1296" width="63" height="43"/>
-<path fill-rule="evenodd" clip-rule="evenodd" d="M47.7351 50.8157C47.2046 51.501 47.1916 52.4626 47.725 53.157L52.1617 59.3215L52.1765 59.3402C53.1539 60.5704 54.6277 61.2761 56.198 61.2761H66.1112C68.922 61.2761 71.2192 59.0169 71.2192 56.215V30.1908C71.2192 27.3928 68.9225 25.1296 66.1112 25.1296H56.198C54.6235 25.1296 53.1525 25.8363 52.1753 27.0706L43.1661 38.4562L29.5453 55.667H20.434V30.7422H29.5279L34.4861 37.4414L34.4959 37.4537C35.2687 38.432 36.7515 38.4261 37.5241 37.4573L38.6696 36.0092L38.676 36.0009C39.2075 35.3144 39.2206 34.3483 38.6771 33.6523L33.8378 27.0839L33.827 27.0703C32.85 25.8364 31.3829 25.1296 29.8044 25.1296H19.8912C17.0914 25.1296 14.7832 27.3951 14.7832 30.1908V56.2184C14.7832 59.0135 17.0874 61.2795 19.8912 61.2795H29.8044C31.3826 61.2795 32.8491 60.5731 33.8259 59.3436L56.4599 30.7388H65.5684V55.6635H56.4728L51.9311 49.375L51.9165 49.3567C51.1455 48.388 49.6643 48.388 48.8934 49.3567L47.7426 50.8061L47.7351 50.8157ZM30.1646 56.4958L37.0263 47.8256L43.9503 39.0767L52.9594 27.6911L30.1646 56.4958Z"/>
+<svg width="93" height="93" viewBox="0 0 93 93" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g filter="url(#filter0_d_4703_10188)">
+<rect x="4" width="84.1875" height="84.1875" rx="20" fill="#1B1B1E"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M50.8269 50.4097C50.2964 51.095 50.2834 52.0566 50.8168 52.751L55.2535 58.9155L55.2683 58.9342C56.2457 60.1644 57.7195 60.8701 59.2898 60.8701H69.203C72.0138 60.8701 74.311 58.6109 74.311 55.809V29.7848C74.311 26.9868 72.0143 24.7236 69.203 24.7236H59.2898C57.7153 24.7236 56.2443 25.4303 55.267 26.6646L46.2579 38.0502L32.6371 55.261H23.5258V30.3362H32.6197L37.5779 37.0354L37.5877 37.0477C38.3605 38.026 39.8433 38.0201 40.6159 37.0513L41.7614 35.6032L41.7678 35.5949C42.2993 34.9084 42.3124 33.9423 41.7689 33.2463L36.9296 26.6779L36.9188 26.6643C35.9418 25.4304 34.4747 24.7236 32.8962 24.7236H22.983C20.1832 24.7236 17.875 26.9891 17.875 29.7848V55.8124C17.875 58.6075 20.1792 60.8735 22.983 60.8735H32.8962C34.4744 60.8735 35.9409 60.1671 36.9177 58.9376L59.5517 30.3328H68.6602V55.2575H59.5646L55.0229 48.969L55.0083 48.9507C54.2373 47.982 52.7561 47.982 51.9852 48.9507L50.8344 50.4001L50.8269 50.4097ZM33.2564 56.0898L40.1181 47.4196L47.0421 38.6707L56.0512 27.2851L33.2564 56.0898Z" fill="url(#paint0_linear_4703_10188)"/>
+<g filter="url(#filter1_bi_4703_10188)">
+<mask id="path-3-outside-1_4703_10188" maskUnits="userSpaceOnUse" x="14.875" y="21.7236" width="63" height="43" fill="black">
+<rect fill="white" x="14.875" y="21.7236" width="63" height="43"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M50.8269 50.4097C50.2964 51.095 50.2834 52.0566 50.8168 52.751L55.2535 58.9155L55.2683 58.9342C56.2457 60.1644 57.7195 60.8701 59.2898 60.8701H69.203C72.0138 60.8701 74.311 58.6109 74.311 55.809V29.7848C74.311 26.9868 72.0143 24.7236 69.203 24.7236H59.2898C57.7153 24.7236 56.2443 25.4303 55.267 26.6646L46.2579 38.0502L32.6371 55.261H23.5258V30.3362H32.6197L37.5779 37.0354L37.5877 37.0477C38.3605 38.026 39.8433 38.0201 40.6159 37.0513L41.7614 35.6032L41.7678 35.5949C42.2993 34.9084 42.3124 33.9423 41.7689 33.2463L36.9296 26.6779L36.9188 26.6643C35.9418 25.4304 34.4747 24.7236 32.8962 24.7236H22.983C20.1832 24.7236 17.875 26.9891 17.875 29.7848V55.8124C17.875 58.6075 20.1792 60.8735 22.983 60.8735H32.8962C34.4744 60.8735 35.9409 60.1671 36.9177 58.9376L59.5517 30.3328H68.6602V55.2575H59.5646L55.0229 48.969L55.0083 48.9507C54.2373 47.982 52.7561 47.982 51.9852 48.9507L50.8344 50.4001L50.8269 50.4097ZM33.2564 56.0898L40.1181 47.4196L47.0421 38.6707L56.0512 27.2851L33.2564 56.0898Z"/>
 </mask>
-<path d="M47.725 53.157L50.1599 51.4045L50.1326 51.3665L50.1041 51.3294L47.725 53.157ZM47.7351 50.8157L50.1074 52.6522L50.1077 52.6518L47.7351 50.8157ZM52.1617 59.3215L49.7268 61.074L49.7685 61.1321L49.813 61.1881L52.1617 59.3215ZM52.1765 59.3402L54.5254 57.4739L54.5251 57.4737L52.1765 59.3402ZM52.1753 27.0706L49.8233 25.2083L49.8227 25.209L52.1753 27.0706ZM43.1661 38.4562L45.5185 40.3179L45.5187 40.3177L43.1661 38.4562ZM29.5453 55.667V58.667H30.9969L31.8977 57.5287L29.5453 55.667ZM20.434 55.667H17.434V58.667H20.434V55.667ZM20.434 30.7422V27.7422H17.434V30.7422H20.434ZM29.5279 30.7422L31.9393 28.9575L31.0399 27.7422H29.5279V30.7422ZM34.4861 37.4414L32.0747 39.2261L32.1028 39.264L32.1321 39.301L34.4861 37.4414ZM34.4959 37.4537L32.1418 39.3134L32.1419 39.3135L34.4959 37.4537ZM37.5241 37.4573L39.8697 39.3277L39.8769 39.3185L37.5241 37.4573ZM38.6696 36.0092L41.0225 37.8704L41.0321 37.8582L41.0417 37.8458L38.6696 36.0092ZM38.676 36.0009L41.0481 37.8376L41.0483 37.8373L38.676 36.0009ZM38.6771 33.6523L36.2619 35.4318L36.2868 35.4656L36.3126 35.4987L38.6771 33.6523ZM33.8378 27.0839L36.253 25.3045L36.2221 25.2624L36.1896 25.2215L33.8378 27.0839ZM33.827 27.0703L31.475 28.9326L31.4751 28.9328L33.827 27.0703ZM33.8259 59.3436L36.1748 61.2098L36.1785 61.2051L33.8259 59.3436ZM56.4599 30.7388V27.7388H55.0081L54.1073 28.8773L56.4599 30.7388ZM65.5684 30.7388H68.5684V27.7388H65.5684V30.7388ZM65.5684 55.6635V58.6636H68.5684V55.6635H65.5684ZM56.4728 55.6635L54.0407 57.42L54.9388 58.6636H56.4728V55.6635ZM51.9311 49.375L54.3631 47.6185L54.322 47.5617L54.2783 47.5068L51.9311 49.375ZM51.9165 49.3567L49.5692 51.2249L49.5692 51.225L51.9165 49.3567ZM48.8934 49.3567L46.546 47.4886L46.5439 47.4913L48.8934 49.3567ZM47.7426 50.8061L45.3931 48.9406L45.3815 48.9552L45.3701 48.97L47.7426 50.8061ZM30.1646 56.4958L27.8121 54.6341L32.5171 58.3575L30.1646 56.4958ZM37.0263 47.8256L34.6738 45.9639L34.6738 45.9639L37.0263 47.8256ZM43.9503 39.0767L46.3027 40.9384L46.3029 40.9382L43.9503 39.0767ZM52.9594 27.6911L55.312 29.5526L50.607 25.8294L52.9594 27.6911ZM50.1041 51.3294C50.4169 51.7367 50.3953 52.2802 50.1074 52.6522L45.3629 48.9793C44.0139 50.7219 43.9663 53.1886 45.3459 54.9845L50.1041 51.3294ZM54.5966 57.5691L50.1599 51.4045L45.29 54.9094L49.7268 61.074L54.5966 57.5691ZM54.5251 57.4737L54.5103 57.455L49.813 61.1881L49.8278 61.2067L54.5251 57.4737ZM56.198 58.2761C55.5355 58.2761 54.9292 57.9823 54.5254 57.4739L49.8276 61.2064C51.3786 63.1584 53.7199 64.2761 56.198 64.2761V58.2761ZM66.1112 58.2761H56.198V64.2761H66.1112V58.2761ZM68.2192 56.215C68.2192 57.3276 67.2978 58.2761 66.1112 58.2761V64.2761C70.5461 64.2761 74.2192 60.7063 74.2192 56.215H68.2192ZM68.2192 30.1908V56.215H74.2192V30.1908H68.2192ZM66.1112 28.1296C67.2966 28.1296 68.2192 29.0804 68.2192 30.1908H74.2192C74.2192 25.7051 70.5484 22.1296 66.1112 22.1296V28.1296ZM56.198 28.1296H66.1112V22.1296H56.198V28.1296ZM54.5272 28.9329C54.9315 28.4223 55.5337 28.1296 56.198 28.1296V22.1296C53.7133 22.1296 51.3736 23.2503 49.8233 25.2083L54.5272 28.9329ZM45.5187 40.3177L54.5278 28.9321L49.8227 25.209L40.8135 36.5946L45.5187 40.3177ZM31.8977 57.5287L45.5185 40.3179L40.8137 36.5944L27.1928 53.8052L31.8977 57.5287ZM20.434 58.667H29.5453V52.667H20.434V58.667ZM17.434 30.7422V55.667H23.434V30.7422H17.434ZM29.5279 27.7422H20.434V33.7422H29.5279V27.7422ZM36.8975 35.6566L31.9393 28.9575L27.1165 32.5269L32.0747 39.2261L36.8975 35.6566ZM36.8499 35.594L36.8402 35.5817L32.1321 39.301L32.1418 39.3134L36.8499 35.594ZM35.1786 35.5869C35.5993 35.0592 36.414 35.0422 36.8499 35.594L32.1419 39.3135C34.1235 41.8217 37.9038 41.793 39.8697 39.3277L35.1786 35.5869ZM36.3168 34.148L35.1713 35.596L39.8769 39.3185L41.0225 37.8704L36.3168 34.148ZM36.304 34.1643L36.2976 34.1725L41.0417 37.8458L41.0481 37.8376L36.304 34.1643ZM36.3126 35.4987C35.9918 35.0879 36.0152 34.5373 36.3038 34.1645L41.0483 37.8373C42.3998 36.0915 42.4493 33.6087 41.0416 31.806L36.3126 35.4987ZM31.4225 28.8634L36.2619 35.4318L41.0924 31.8728L36.253 25.3045L31.4225 28.8634ZM31.4751 28.9328L31.4859 28.9464L36.1896 25.2215L36.1789 25.2079L31.4751 28.9328ZM29.8044 28.1296C30.4715 28.1296 31.0703 28.4215 31.475 28.9326L36.179 25.208C34.6297 23.2513 32.2942 22.1296 29.8044 22.1296V28.1296ZM19.8912 28.1296H29.8044V22.1296H19.8912V28.1296ZM17.7832 30.1908C17.7832 29.0862 18.7138 28.1296 19.8912 28.1296V22.1296C15.469 22.1296 11.7832 25.704 11.7832 30.1908H17.7832ZM17.7832 56.2184V30.1908H11.7832V56.2184H17.7832ZM19.8912 58.2795C18.7115 58.2795 17.7832 57.3241 17.7832 56.2184H11.7832C11.7832 60.7029 15.4632 64.2795 19.8912 64.2795V58.2795ZM29.8044 58.2795H19.8912V64.2795H29.8044V58.2795ZM31.4771 57.4774C31.072 57.9872 30.472 58.2795 29.8044 58.2795V64.2795C32.2931 64.2795 34.6261 63.159 36.1748 61.2098L31.4771 57.4774ZM54.1073 28.8773L31.4733 57.4821L36.1785 61.2051L58.8125 32.6003L54.1073 28.8773ZM65.5684 27.7388H56.4599V33.7388H65.5684V27.7388ZM68.5684 55.6635V30.7388H62.5684V55.6635H68.5684ZM56.4728 58.6636H65.5684V52.6635H56.4728V58.6636ZM49.499 51.1315L54.0407 57.42L58.9048 53.9071L54.3631 47.6185L49.499 51.1315ZM49.5692 51.225L49.5838 51.2432L54.2783 47.5068L54.2638 47.4885L49.5692 51.225ZM51.2407 51.2249C50.8106 51.7653 49.9992 51.7653 49.5692 51.2249L54.2639 47.4886C52.2918 45.0107 48.518 45.0107 46.546 47.4886L51.2407 51.2249ZM50.0921 52.6715L51.2429 51.2222L46.5439 47.4913L45.3931 48.9406L50.0921 52.6715ZM50.1077 52.6518L50.1152 52.6421L45.3701 48.97L45.3626 48.9797L50.1077 52.6518ZM32.5171 58.3575L39.3787 49.6873L34.6738 45.9639L27.8122 54.634L32.5171 58.3575ZM39.3787 49.6873L46.3027 40.9384L41.5978 37.2149L34.6738 45.9639L39.3787 49.6873ZM46.3029 40.9382L55.312 29.5526L50.6069 25.8295L41.5977 37.2151L46.3029 40.9382ZM50.607 25.8294L27.8121 54.6341L32.5171 58.3574L55.3119 29.5528L50.607 25.8294Z" fill="url(#paint2_linear_188_1378)" fill-opacity="0.1" mask="url(#path-3-outside-1_188_1378)"/>
+<path d="M50.8168 52.751L53.2517 50.9985L53.2244 50.9605L53.1959 50.9234L50.8168 52.751ZM50.8269 50.4097L53.1992 52.2462L53.1995 52.2458L50.8269 50.4097ZM55.2535 58.9155L52.8186 60.668L52.8603 60.7261L52.9048 60.782L55.2535 58.9155ZM55.2683 58.9342L57.6172 57.0679L57.6169 57.0677L55.2683 58.9342ZM55.267 26.6646L52.915 24.8023L52.9145 24.803L55.267 26.6646ZM46.2579 38.0502L48.6103 39.9119L48.6105 39.9117L46.2579 38.0502ZM32.6371 55.261V58.261H34.0886L34.9895 57.1227L32.6371 55.261ZM23.5258 55.261H20.5258V58.261H23.5258V55.261ZM23.5258 30.3362V27.3362H20.5258V30.3362H23.5258ZM32.6197 30.3362L35.0311 28.5515L34.1317 27.3362H32.6197V30.3362ZM37.5779 37.0354L35.1665 38.8201L35.1946 38.858L35.2239 38.895L37.5779 37.0354ZM37.5877 37.0477L35.2336 38.9074L35.2337 38.9074L37.5877 37.0477ZM40.6159 37.0513L42.9615 38.9217L42.9687 38.9125L40.6159 37.0513ZM41.7614 35.6032L44.1142 37.4644L44.1239 37.4522L44.1335 37.4398L41.7614 35.6032ZM41.7678 35.5949L44.1399 37.4316L44.1401 37.4313L41.7678 35.5949ZM41.7689 33.2463L39.3536 35.0258L39.3786 35.0596L39.4044 35.0927L41.7689 33.2463ZM36.9296 26.6779L39.3448 24.8985L39.3139 24.8564L39.2814 24.8155L36.9296 26.6779ZM36.9188 26.6643L34.5668 28.5266L34.5669 28.5268L36.9188 26.6643ZM36.9177 58.9376L39.2666 60.8038L39.2703 60.7991L36.9177 58.9376ZM59.5517 30.3328V27.3328H58.0999L57.1991 28.4713L59.5517 30.3328ZM68.6602 30.3328H71.6602V27.3328H68.6602V30.3328ZM68.6602 55.2575V58.2575H71.6602V55.2575H68.6602ZM59.5646 55.2575L57.1325 57.014L58.0306 58.2575H59.5646V55.2575ZM55.0229 48.969L57.4549 47.2125L57.4138 47.1557L57.3701 47.1008L55.0229 48.969ZM55.0083 48.9507L52.6609 50.8189L52.661 50.819L55.0083 48.9507ZM51.9852 48.9507L49.6378 47.0826L49.6357 47.0853L51.9852 48.9507ZM50.8344 50.4001L48.4849 48.5346L48.4733 48.5492L48.4619 48.564L50.8344 50.4001ZM33.2564 56.0898L30.9039 54.2281L35.6088 57.9515L33.2564 56.0898ZM40.1181 47.4196L37.7656 45.5579L37.7656 45.5579L40.1181 47.4196ZM47.0421 38.6707L49.3945 40.5324L49.3947 40.5322L47.0421 38.6707ZM56.0512 27.2851L58.4038 29.1466L53.6988 25.4234L56.0512 27.2851ZM53.1959 50.9234C53.5087 51.3307 53.4871 51.8742 53.1992 52.2462L48.4547 48.5733C47.1057 50.3159 47.0581 52.7825 48.4377 54.5785L53.1959 50.9234ZM57.6884 57.1631L53.2517 50.9985L48.3818 54.5034L52.8186 60.668L57.6884 57.1631ZM57.6169 57.0677L57.6021 57.049L52.9048 60.782L52.9196 60.8007L57.6169 57.0677ZM59.2898 57.8701C58.6273 57.8701 58.021 57.5763 57.6172 57.0679L52.9194 60.8004C54.4704 62.7524 56.8117 63.8701 59.2898 63.8701V57.8701ZM69.203 57.8701H59.2898V63.8701H69.203V57.8701ZM71.311 55.809C71.311 56.9216 70.3896 57.8701 69.203 57.8701V63.8701C73.6379 63.8701 77.311 60.3003 77.311 55.809H71.311ZM71.311 29.7848V55.809H77.311V29.7848H71.311ZM69.203 27.7236C70.3884 27.7236 71.311 28.6744 71.311 29.7848H77.311C77.311 25.2991 73.6402 21.7236 69.203 21.7236V27.7236ZM59.2898 27.7236H69.203V21.7236H59.2898V27.7236ZM57.619 28.5269C58.0233 28.0163 58.6254 27.7236 59.2898 27.7236V21.7236C56.8051 21.7236 54.4654 22.8443 52.915 24.8023L57.619 28.5269ZM48.6105 39.9117L57.6196 28.5261L52.9145 24.803L43.9053 36.1886L48.6105 39.9117ZM34.9895 57.1227L48.6103 39.9119L43.9054 36.1884L30.2846 53.3992L34.9895 57.1227ZM23.5258 58.261H32.6371V52.261H23.5258V58.261ZM20.5258 30.3362V55.261H26.5258V30.3362H20.5258ZM32.6197 27.3362H23.5258V33.3362H32.6197V27.3362ZM39.9893 35.2506L35.0311 28.5515L30.2083 32.1209L35.1665 38.8201L39.9893 35.2506ZM39.9417 35.188L39.932 35.1757L35.2239 38.895L35.2336 38.9074L39.9417 35.188ZM38.2704 35.1809C38.6911 34.6532 39.5058 34.6362 39.9417 35.188L35.2337 38.9074C37.2153 41.4157 40.9956 41.387 42.9615 38.9217L38.2704 35.1809ZM39.4086 33.742L38.2631 35.19L42.9687 38.9125L44.1142 37.4644L39.4086 33.742ZM39.3958 33.7583L39.3893 33.7665L44.1335 37.4398L44.1399 37.4316L39.3958 33.7583ZM39.4044 35.0927C39.0836 34.6819 39.107 34.1313 39.3956 33.7585L44.1401 37.4313C45.4916 35.6855 45.5411 33.2027 44.1334 31.4L39.4044 35.0927ZM34.5143 28.4574L39.3536 35.0258L44.1842 31.4668L39.3448 24.8985L34.5143 28.4574ZM34.5669 28.5268L34.5777 28.5404L39.2814 24.8155L39.2707 24.8019L34.5669 28.5268ZM32.8962 27.7236C33.5633 27.7236 34.1621 28.0155 34.5668 28.5266L39.2708 24.802C37.7215 22.8453 35.386 21.7236 32.8962 21.7236V27.7236ZM22.983 27.7236H32.8962V21.7236H22.983V27.7236ZM20.875 29.7848C20.875 28.6802 21.8056 27.7236 22.983 27.7236V21.7236C18.5608 21.7236 14.875 25.298 14.875 29.7848H20.875ZM20.875 55.8124V29.7848H14.875V55.8124H20.875ZM22.983 57.8735C21.8033 57.8735 20.875 56.9181 20.875 55.8124H14.875C14.875 60.2969 18.555 63.8735 22.983 63.8735V57.8735ZM32.8962 57.8735H22.983V63.8735H32.8962V57.8735ZM34.5689 57.0713C34.1638 57.5811 33.5638 57.8735 32.8962 57.8735V63.8735C35.3849 63.8735 37.7179 62.753 39.2666 60.8038L34.5689 57.0713ZM57.1991 28.4713L34.5651 57.0761L39.2703 60.7991L61.9043 32.1943L57.1991 28.4713ZM68.6602 27.3328H59.5517V33.3328H68.6602V27.3328ZM71.6602 55.2575V30.3328H65.6602V55.2575H71.6602ZM59.5646 58.2575H68.6602V52.2575H59.5646V58.2575ZM52.5908 50.7255L57.1325 57.014L61.9966 53.5011L57.4549 47.2125L52.5908 50.7255ZM52.661 50.819L52.6756 50.8372L57.3701 47.1008L57.3556 47.0825L52.661 50.819ZM54.3325 50.8189C53.9024 51.3593 53.091 51.3593 52.6609 50.8189L57.3557 47.0826C55.3836 44.6047 51.6098 44.6047 49.6378 47.0826L54.3325 50.8189ZM53.1839 52.2655L54.3346 50.8162L49.6357 47.0853L48.4849 48.5346L53.1839 52.2655ZM53.1995 52.2458L53.207 52.2361L48.4619 48.564L48.4544 48.5737L53.1995 52.2458ZM35.6088 57.9515L42.4705 49.2813L37.7656 45.5579L30.904 54.228L35.6088 57.9515ZM42.4705 49.2813L49.3945 40.5324L44.6896 36.8089L37.7656 45.5579L42.4705 49.2813ZM49.3947 40.5322L58.4038 29.1466L53.6987 25.4235L44.6895 36.8091L49.3947 40.5322ZM53.6988 25.4234L30.9039 54.2281L35.6089 57.9514L58.4037 29.1467L53.6988 25.4234Z" fill="url(#paint1_linear_4703_10188)" fill-opacity="0.1" mask="url(#path-3-outside-1_4703_10188)"/>
+</g>
 </g>
 <defs>
-<filter id="filter0_bi_188_1378" x="9.1337" y="19.4801" width="67.735" height="47.4489" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
+<filter id="filter0_d_4703_10188" x="0" y="0" width="92.1875" height="92.1875" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
+<feFlood flood-opacity="0" result="BackgroundImageFix"/>
+<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
+<feOffset dy="4"/>
+<feGaussianBlur stdDeviation="2"/>
+<feComposite in2="hardAlpha" operator="out"/>
+<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
+<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_4703_10188"/>
+<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_4703_10188" result="shape"/>
+</filter>
+<filter id="filter1_bi_4703_10188" x="12.2255" y="19.0741" width="67.7365" height="47.4489" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
 <feFlood flood-opacity="0" result="BackgroundImageFix"/>
 <feGaussianBlur in="BackgroundImageFix" stdDeviation="1.32475"/>
-<feComposite in2="SourceAlpha" operator="in" result="effect1_backgroundBlur_188_1378"/>
-<feBlend mode="normal" in="SourceGraphic" in2="effect1_backgroundBlur_188_1378" result="shape"/>
+<feComposite in2="SourceAlpha" operator="in" result="effect1_backgroundBlur_4703_10188"/>
+<feBlend mode="normal" in="SourceGraphic" in2="effect1_backgroundBlur_4703_10188" result="shape"/>
 <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
 <feOffset dy="0.441584"/>
 <feGaussianBlur stdDeviation="0.662376"/>
 <feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
 <feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.15 0"/>
-<feBlend mode="normal" in2="shape" result="effect2_innerShadow_188_1378"/>
+<feBlend mode="normal" in2="shape" result="effect2_innerShadow_4703_10188"/>
 </filter>
-<linearGradient id="paint0_linear_188_1378" x1="43" y1="0.40625" x2="43" y2="84.5938" gradientUnits="userSpaceOnUse">
-<stop stop-color="#3D4147"/>
-<stop offset="1" stop-color="#2C2F35"/>
-</linearGradient>
-<linearGradient id="paint1_linear_188_1378" x1="15.7832" y1="26.1296" x2="74.4332" y2="49.8684" gradientUnits="userSpaceOnUse">
+<linearGradient id="paint0_linear_4703_10188" x1="18.875" y1="25.7236" x2="77.525" y2="49.4624" gradientUnits="userSpaceOnUse">
 <stop stop-color="#75A5FF"/>
 <stop offset="0.703125" stop-color="#23E5FF"/>
 </linearGradient>
-<linearGradient id="paint2_linear_188_1378" x1="16.5468" y1="26.7728" x2="71.2192" y2="26.7728" gradientUnits="userSpaceOnUse">
+<linearGradient id="paint1_linear_4703_10188" x1="19.6386" y1="26.3668" x2="74.311" y2="26.3668" gradientUnits="userSpaceOnUse">
 <stop stop-color="#3CDEB6"/>
 <stop offset="0.65625" stop-color="#364AFF"/>
 </linearGradient>
diff --git a/frontend/src/media/logo/anything-llm-old.png b/frontend/src/media/logo/anything-llm-dark.png
similarity index 100%
rename from frontend/src/media/logo/anything-llm-old.png
rename to frontend/src/media/logo/anything-llm-dark.png
diff --git a/frontend/src/models/system.js b/frontend/src/models/system.js
index 4231c83c8..f8f52b7eb 100644
--- a/frontend/src/models/system.js
+++ b/frontend/src/models/system.js
@@ -345,7 +345,13 @@ const System = {
     return { appName: customAppName, error: null };
   },
   fetchLogo: async function () {
-    return await fetch(`${API_BASE}/system/logo`, {
+    const url = new URL(`${API_BASE}/system/logo`);
+    url.searchParams.append(
+      "theme",
+      localStorage.getItem("theme") || "default"
+    );
+
+    return await fetch(url, {
       method: "GET",
       cache: "no-cache",
     })
diff --git a/frontend/src/pages/Admin/Agents/Badges/default.jsx b/frontend/src/pages/Admin/Agents/Badges/default.jsx
index 13a37abad..0c80ef40e 100644
--- a/frontend/src/pages/Admin/Agents/Badges/default.jsx
+++ b/frontend/src/pages/Admin/Agents/Badges/default.jsx
@@ -6,8 +6,8 @@ export function DefaultBadge({ title }) {
         data-tooltip-id="default-skill"
         data-tooltip-content="This skill is enabled by default and cannot be turned off."
       >
-        <div className="flex items-center gap-x-1 w-fit rounded-full bg-[#F4FFD0]/10 px-2.5 py-0.5 text-sm font-medium text-sky-400 shadow-sm cursor-pointer">
-          <div className="text-[#F4FFD0] text-[12px] leading-[15px]">
+        <div className="flex items-center gap-x-1 w-fit rounded-full bg-[#F4FFD0]/10 light:bg-blue-100 px-2.5 py-0.5 text-sm font-medium text-sky-400 light:text-theme-text-secondary shadow-sm cursor-pointer">
+          <div className="text-[#F4FFD0] light:text-blue-600 text-[12px] leading-[15px]">
             Default
           </div>
         </div>
diff --git a/frontend/src/pages/Admin/Agents/DefaultSkillPanel/index.jsx b/frontend/src/pages/Admin/Agents/DefaultSkillPanel/index.jsx
index fdda731c0..d28f35cf2 100644
--- a/frontend/src/pages/Admin/Agents/DefaultSkillPanel/index.jsx
+++ b/frontend/src/pages/Admin/Agents/DefaultSkillPanel/index.jsx
@@ -10,17 +10,20 @@ export default function DefaultSkillPanel({ title, description, image, icon }) {
             {icon &&
               React.createElement(icon, {
                 size: 24,
-                color: "white",
+                color: "var(--theme-text-primary)",
                 weight: "bold",
               })}
-            <label htmlFor="name" className="text-white text-md font-bold">
+            <label
+              htmlFor="name"
+              className="text-theme-text-primary text-md font-bold"
+            >
               {title}
             </label>
             <DefaultBadge title={title} />
           </div>
         </div>
         <img src={image} alt={title} className="w-full rounded-md" />
-        <p className="text-white text-opacity-60 text-xs font-medium py-1.5">
+        <p className="text-theme-text-secondary text-opacity-60 text-xs font-medium py-1.5">
           {description}
         </p>
       </div>
diff --git a/frontend/src/pages/Admin/Agents/GenericSkillPanel/index.jsx b/frontend/src/pages/Admin/Agents/GenericSkillPanel/index.jsx
index ed8b8a4f0..074e1927d 100644
--- a/frontend/src/pages/Admin/Agents/GenericSkillPanel/index.jsx
+++ b/frontend/src/pages/Admin/Agents/GenericSkillPanel/index.jsx
@@ -17,10 +17,13 @@ export default function GenericSkillPanel({
           {icon &&
             React.createElement(icon, {
               size: 24,
-              color: "white",
+              color: "var(--theme-text-primary)",
               weight: "bold",
             })}
-          <label htmlFor="name" className="text-white text-md font-bold">
+          <label
+            htmlFor="name"
+            className="text-theme-text-primary text-md font-bold"
+          >
             {title}
           </label>
           <label
@@ -40,7 +43,7 @@ export default function GenericSkillPanel({
           </label>
         </div>
         <img src={image} alt={title} className="w-full rounded-md" />
-        <p className="text-white text-opacity-60 text-xs font-medium py-1.5">
+        <p className="text-theme-text-secondary text-opacity-60 text-xs font-medium py-1.5">
           {description}
         </p>
       </div>
diff --git a/frontend/src/pages/Admin/Agents/Imported/ImportedSkillConfig/index.jsx b/frontend/src/pages/Admin/Agents/Imported/ImportedSkillConfig/index.jsx
index 644d931d2..e966e3509 100644
--- a/frontend/src/pages/Admin/Agents/Imported/ImportedSkillConfig/index.jsx
+++ b/frontend/src/pages/Admin/Agents/Imported/ImportedSkillConfig/index.jsx
@@ -105,7 +105,7 @@ export default function ImportedSkillConfig({
       <div className="p-2">
         <div className="flex flex-col gap-y-[18px] max-w-[500px]">
           <div className="flex items-center gap-x-2">
-            <Plug size={24} color="white" weight="bold" />
+            <Plug size={24} weight="bold" className="text-white" />
             <label htmlFor="name" className="text-white text-md font-bold">
               {sentenceCase(config.name)}
             </label>
@@ -151,7 +151,7 @@ export default function ImportedSkillConfig({
                       setInputs({ ...inputs, [key]: e.target.value })
                     }
                     placeholder={props?.input?.placeholder || ""}
-                    className="bg-transparent border border-white border-opacity-20 rounded-md p-2 text-white text-sm"
+                    className="bg-transparent border border-white light:border-black rounded-md p-2 text-white text-sm"
                   />
                   <p className="text-white text-opacity-60 text-xs font-medium py-1.5">
                     {props?.input?.hint}
@@ -162,7 +162,7 @@ export default function ImportedSkillConfig({
                 <button
                   onClick={handleSubmit}
                   type="button"
-                  className="bg-blue-500 text-white rounded-md p-2"
+                  className="bg-blue-500 text-white light:text-white rounded-md p-2"
                 >
                   Save
                 </button>
diff --git a/frontend/src/pages/Admin/Agents/Imported/SkillList/index.jsx b/frontend/src/pages/Admin/Agents/Imported/SkillList/index.jsx
index b6358077a..0c1a8dce4 100644
--- a/frontend/src/pages/Admin/Agents/Imported/SkillList/index.jsx
+++ b/frontend/src/pages/Admin/Agents/Imported/SkillList/index.jsx
@@ -9,14 +9,14 @@ export default function ImportedSkillList({
 }) {
   if (skills.length === 0)
     return (
-      <div className="text-white/60 text-center text-xs flex flex-col gap-y-2">
+      <div className="text-theme-text-secondary text-center text-xs flex flex-col gap-y-2">
         <p>No imported skills found</p>
         <p>
           Learn about agent skills in the{" "}
           <a
             href="https://docs.anythingllm.com/agent/custom/developer-guide"
             target="_blank"
-            className="text-white/80 hover:underline"
+            className="text-theme-text-secondary light:underline hover:underline"
           >
             AnythingLLM Agent Docs
           </a>
@@ -27,7 +27,7 @@ export default function ImportedSkillList({
 
   return (
     <div
-      className={`bg-white/5 text-white rounded-xl ${
+      className={`bg-theme-bg-secondary text-white rounded-xl ${
         isMobile ? "w-full" : "min-w-[360px] w-fit"
       }`}
     >
@@ -40,17 +40,21 @@ export default function ImportedSkillList({
             index === Object.keys(skills).length - 1
               ? "rounded-b-xl"
               : "border-b border-white/10"
-          } cursor-pointer transition-all duration-300  hover:bg-white/5 ${
-            selectedSkill === config.hubId ? "bg-white/10" : ""
+          } cursor-pointer transition-all duration-300 hover:bg-theme-bg-primary ${
+            selectedSkill === config.hubId ? "bg-theme-bg-primary" : ""
           }`}
           onClick={() => handleClick?.({ ...config, imported: true })}
         >
           <div className="text-sm font-light">{sentenceCase(config.name)}</div>
           <div className="flex items-center gap-x-2">
-            <div className="text-sm text-white/60 font-medium">
+            <div className="text-sm text-theme-text-secondary font-medium">
               {config.active ? "On" : "Off"}
             </div>
-            <CaretRight size={14} weight="bold" className="text-white/80" />
+            <CaretRight
+              size={14}
+              weight="bold"
+              className="text-theme-text-secondary"
+            />
           </div>
         </div>
       ))}
diff --git a/frontend/src/pages/Admin/Agents/SQLConnectorSelection/NewConnectionModal.jsx b/frontend/src/pages/Admin/Agents/SQLConnectorSelection/NewConnectionModal.jsx
index e5f4c3016..b5047848c 100644
--- a/frontend/src/pages/Admin/Agents/SQLConnectorSelection/NewConnectionModal.jsx
+++ b/frontend/src/pages/Admin/Agents/SQLConnectorSelection/NewConnectionModal.jsx
@@ -74,172 +74,175 @@ export default function NewSQLConnection({ isOpen, closeModal, onSubmit }) {
   // to the parent container form so we don't have nested forms.
   return createPortal(
     <ModalWrapper isOpen={isOpen}>
-      <div className="relative w-full md:w-1/3 max-w-2xl max-h-full md:mt-8">
-        <div className="relative bg-main-gradient rounded-xl shadow-[0_4px_14px_rgba(0,0,0,0.25)] max-h-[85vh] overflow-y-scroll no-scroll">
-          <div className="flex items-start justify-between p-4 border-b rounded-t border-gray-500/50">
-            <h3 className="text-xl font-semibold text-white">
-              New SQL Connection
-            </h3>
+      <div className="fixed inset-0 z-50 overflow-auto bg-black bg-opacity-50 flex items-center justify-center">
+        <div className="relative w-full max-w-2xl bg-theme-bg-secondary rounded-lg shadow border-2 border-theme-modal-border">
+          <div className="relative p-6 border-b rounded-t border-theme-modal-border">
+            <div className="w-full flex gap-x-2 items-center">
+              <h3 className="text-xl font-semibold text-white overflow-hidden overflow-ellipsis whitespace-nowrap">
+                New SQL Connection
+              </h3>
+            </div>
             <button
               onClick={handleClose}
               type="button"
-              className="border-none transition-all duration-300 text-gray-400 bg-transparent hover:border-white/60 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center bg-sidebar-button hover:bg-menu-item-selected-gradient hover:border-slate-100 hover:border-opacity-50 border-transparent border"
-              data-modal-hide="staticModal"
+              className="absolute top-4 right-4 transition-all duration-300 bg-transparent rounded-lg text-sm p-1 inline-flex items-center hover:bg-theme-modal-border hover:border-theme-modal-border hover:border-opacity-50 border-transparent border"
             >
-              <X className="text-gray-300 text-lg" />
+              <X size={24} weight="bold" className="text-white" />
             </button>
           </div>
-
           <form
             id="sql-connection-form"
             onSubmit={handleUpdate}
             onChange={onFormChange}
           >
-            <div className="py-[17px] px-[20px] flex flex-col gap-y-6">
-              <p className="text-sm text-white">
-                Add the connection information for your database below and it
-                will be available for future SQL agent calls.
-              </p>
-              <div className="flex flex-col w-full">
-                <div className="border border-red-800 bg-zinc-800 p-4 rounded-lg flex items-center gap-x-2 text-sm text-red-400">
-                  <WarningOctagon size={28} className="shrink-0" />
-                  <p>
-                    <b>WARNING:</b> The SQL agent has been <i>instructed</i> to
-                    only perform non-modifying queries. This <b>does not</b>{" "}
-                    prevent a hallucination from still deleting data. Only
-                    connect with a user who has <b>READ_ONLY</b> permissions.
-                  </p>
+            <div className="px-7 py-6">
+              <div className="space-y-6 max-h-[60vh] overflow-y-auto pr-2">
+                <p className="text-sm text-white/60">
+                  Add the connection information for your database below and it
+                  will be available for future SQL agent calls.
+                </p>
+                <div className="flex flex-col w-full">
+                  <div className="border border-red-800 bg-zinc-800 light:bg-red-200/50 p-4 rounded-lg flex items-center gap-x-2 text-sm text-red-400 light:text-red-500">
+                    <WarningOctagon size={28} className="shrink-0" />
+                    <p>
+                      <b>WARNING:</b> The SQL agent has been <i>instructed</i>{" "}
+                      to only perform non-modifying queries. This{" "}
+                      <b>does not</b> prevent a hallucination from still
+                      deleting data. Only connect with a user who has{" "}
+                      <b>READ_ONLY</b> permissions.
+                    </p>
+                  </div>
+
+                  <label className="block mb-2 text-sm font-medium text-white mt-4">
+                    Select your SQL engine
+                  </label>
+                  <div className="grid md:grid-cols-4 gap-4 grid-cols-2">
+                    <DBEngine
+                      provider="postgresql"
+                      active={engine === "postgresql"}
+                      onClick={() => setEngine("postgresql")}
+                    />
+                    <DBEngine
+                      provider="mysql"
+                      active={engine === "mysql"}
+                      onClick={() => setEngine("mysql")}
+                    />
+                    <DBEngine
+                      provider="sql-server"
+                      active={engine === "sql-server"}
+                      onClick={() => setEngine("sql-server")}
+                    />
+                  </div>
                 </div>
 
-                <label className="text-white text-sm font-semibold block my-4">
-                  Select your SQL engine
-                </label>
-                <div className="grid md:grid-cols-4 gap-4 grid-cols-2">
-                  <DBEngine
-                    provider="postgresql"
-                    active={engine === "postgresql"}
-                    onClick={() => setEngine("postgresql")}
-                  />
-                  <DBEngine
-                    provider="mysql"
-                    active={engine === "mysql"}
-                    onClick={() => setEngine("mysql")}
-                  />
-                  <DBEngine
-                    provider="sql-server"
-                    active={engine === "sql-server"}
-                    onClick={() => setEngine("sql-server")}
+                <div className="flex flex-col w-full">
+                  <label className="block mb-2 text-sm font-medium text-white">
+                    Connection name
+                  </label>
+                  <input
+                    type="text"
+                    name="name"
+                    className="bg-theme-settings-input-bg w-full text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+                    placeholder="a unique name to identify this SQL connection"
+                    required={true}
+                    autoComplete="off"
+                    spellCheck={false}
                   />
                 </div>
-              </div>
 
-              <div className="flex flex-col w-full">
-                <label className="text-white text-sm font-semibold block mb-3">
-                  Connection name
-                </label>
-                <input
-                  type="text"
-                  name="name"
-                  className="border-none bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
-                  placeholder="a unique name to identify this SQL connection"
-                  required={true}
-                  autoComplete="off"
-                  spellCheck={false}
-                />
-              </div>
+                <div className="grid grid-cols-1 gap-4 sm:grid-cols-2">
+                  <div className="flex flex-col">
+                    <label className="block mb-2 text-sm font-medium text-white">
+                      Database user
+                    </label>
+                    <input
+                      type="text"
+                      name="username"
+                      className="bg-theme-settings-input-bg w-full text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+                      placeholder="root"
+                      required={true}
+                      autoComplete="off"
+                      spellCheck={false}
+                    />
+                  </div>
+                  <div className="flex flex-col">
+                    <label className="block mb-2 text-sm font-medium text-white">
+                      Database user password
+                    </label>
+                    <input
+                      type="text"
+                      name="password"
+                      className="bg-theme-settings-input-bg w-full text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+                      placeholder="password123"
+                      required={true}
+                      autoComplete="off"
+                      spellCheck={false}
+                    />
+                  </div>
+                </div>
+
+                <div className="grid grid-cols-1 gap-4 sm:grid-cols-3">
+                  <div className="sm:col-span-2">
+                    <label className="block mb-2 text-sm font-medium text-white">
+                      Server endpoint
+                    </label>
+                    <input
+                      type="text"
+                      name="host"
+                      className="bg-theme-settings-input-bg w-full text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+                      placeholder="the hostname or endpoint for your database"
+                      required={true}
+                      autoComplete="off"
+                      spellCheck={false}
+                    />
+                  </div>
+                  <div>
+                    <label className="block mb-2 text-sm font-medium text-white">
+                      Port
+                    </label>
+                    <input
+                      type="text"
+                      name="port"
+                      className="bg-theme-settings-input-bg w-full text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+                      placeholder="3306"
+                      required={false}
+                      autoComplete="off"
+                      spellCheck={false}
+                    />
+                  </div>
+                </div>
 
-              <div className="grid grid-cols-1 gap-4 sm:grid-cols-2">
                 <div className="flex flex-col">
-                  <label className="text-white text-sm font-semibold block mb-3">
-                    Database user
+                  <label className="block mb-2 text-sm font-medium text-white">
+                    Database
                   </label>
                   <input
                     type="text"
-                    name="username"
-                    className="border-none bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
-                    placeholder="root"
-                    required={true}
-                    autoComplete="off"
-                    spellCheck={false}
-                  />
-                </div>
-                <div className="flex flex-col">
-                  <label className="text-white text-sm font-semibold block mb-3">
-                    Database user password
-                  </label>
-                  <input
-                    type="text"
-                    name="password"
-                    className="border-none bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
-                    placeholder="password123"
+                    name="database"
+                    className="bg-theme-settings-input-bg w-full text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+                    placeholder="the database the agent will interact with"
                     required={true}
                     autoComplete="off"
                     spellCheck={false}
                   />
                 </div>
+                <p className="text-theme-text-secondary text-sm">
+                  {assembleConnectionString({ engine, ...config })}
+                </p>
               </div>
-
-              <div className="grid grid-cols-1 gap-4 sm:grid-cols-3">
-                <div className="sm:col-span-2">
-                  <label className="text-white text-sm font-semibold block mb-3">
-                    Server endpoint
-                  </label>
-                  <input
-                    type="text"
-                    name="host"
-                    className="border-none bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
-                    placeholder="the hostname or endpoint for your database"
-                    required={true}
-                    autoComplete="off"
-                    spellCheck={false}
-                  />
-                </div>
-                <div>
-                  <label className="text-white text-sm font-semibold block mb-3">
-                    Port
-                  </label>
-                  <input
-                    type="text"
-                    name="port"
-                    className="border-none bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
-                    placeholder="3306"
-                    required={false}
-                    autoComplete="off"
-                    spellCheck={false}
-                  />
-                </div>
-              </div>
-
-              <div className="flex flex-col">
-                <label className="text-white text-sm font-semibold block mb-3">
-                  Database
-                </label>
-                <input
-                  type="text"
-                  name="database"
-                  className="border-none bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
-                  placeholder="the database the agent will interact with"
-                  required={true}
-                  autoComplete="off"
-                  spellCheck={false}
-                />
-              </div>
-              <p className="text-white/40 text-sm">
-                {assembleConnectionString({ engine, ...config })}
-              </p>
             </div>
-            <div className="flex w-full justify-between items-center p-3 space-x-2 border-t rounded-b border-gray-500/50">
+            <div className="flex justify-between items-center mt-6 pt-6 border-t border-theme-modal-border px-7 pb-6">
               <button
                 type="button"
                 onClick={handleClose}
-                className="border-none text-xs px-2 py-1 font-semibold rounded-lg bg-white hover:bg-transparent border-2 border-transparent hover:border-white hover:text-white h-[32px] w-fit -mr-8 whitespace-nowrap shadow-[0_4px_14px_rgba(0,0,0,0.25)]"
+                className="transition-all duration-300 text-white hover:bg-zinc-700 light:hover:bg-theme-bg-primary px-4 py-2 rounded-lg text-sm"
               >
                 Cancel
               </button>
               <button
                 type="submit"
                 form="sql-connection-form"
-                className="border-none text-xs px-2 py-1 font-semibold rounded-lg bg-primary-button hover:bg-secondary border-2 border-transparent hover:border-primary-button hover:text-white h-[32px] w-fit -mr-8 whitespace-nowrap shadow-[0_4px_14px_rgba(0,0,0,0.25)]"
+                className="transition-all duration-300 bg-white text-black hover:opacity-60 px-4 py-2 rounded-lg text-sm"
               >
                 Save connection
               </button>
@@ -257,7 +260,7 @@ function DBEngine({ provider, active, onClick }) {
     <button
       type="button"
       onClick={onClick}
-      className={`flex flex-col p-4 border border-white/40 bg-zinc-800 rounded-lg w-fit hover:bg-zinc-700 ${
+      className={`flex flex-col p-4 border border-white/40 bg-zinc-800 light:bg-theme-settings-input-bg rounded-lg w-fit hover:bg-zinc-700 ${
         active ? "!bg-blue-500/50" : ""
       }`}
     >
diff --git a/frontend/src/pages/Admin/Agents/SQLConnectorSelection/index.jsx b/frontend/src/pages/Admin/Agents/SQLConnectorSelection/index.jsx
index 846c5b965..cc8256145 100644
--- a/frontend/src/pages/Admin/Agents/SQLConnectorSelection/index.jsx
+++ b/frontend/src/pages/Admin/Agents/SQLConnectorSelection/index.jsx
@@ -26,8 +26,15 @@ export default function AgentSQLConnectorSelection({
       <div className="p-2">
         <div className="flex flex-col gap-y-[18px] max-w-[500px]">
           <div className="flex items-center gap-x-2">
-            <Database size={24} color="white" weight="bold" />
-            <label htmlFor="name" className="text-white text-md font-bold">
+            <Database
+              size={24}
+              color="var(--theme-text-primary)"
+              weight="bold"
+            />
+            <label
+              htmlFor="name"
+              className="text-theme-text-primary text-md font-bold"
+            >
               SQL Agent
             </label>
             <label className="border-none relative inline-flex cursor-pointer items-center ml-auto">
@@ -46,7 +53,7 @@ export default function AgentSQLConnectorSelection({
             alt="SQL Agent"
             className="w-full rounded-md"
           />
-          <p className="text-white text-opacity-60 text-xs font-medium py-1.5">
+          <p className="text-theme-text-secondary text-opacity-60 text-xs font-medium py-1.5">
             Enable your agent to be able to leverage SQL to answer you questions
             by connecting to various SQL database providers.
           </p>
@@ -64,7 +71,7 @@ export default function AgentSQLConnectorSelection({
                 )}
               />
               <div className="flex flex-col mt-2 gap-y-2">
-                <p className="text-white font-semibold text-sm">
+                <p className="text-theme-text-primary font-semibold text-sm">
                   Your database connections
                 </p>
                 <div className="flex flex-col gap-y-3">
@@ -89,17 +96,17 @@ export default function AgentSQLConnectorSelection({
                   <button
                     type="button"
                     onClick={openModal}
-                    className="w-fit relative flex h-[40px] items-center border-none hover:bg-slate-600/20 rounded-lg"
+                    className="w-fit relative flex h-[40px] items-center border-none hover:bg-theme-bg-secondary rounded-lg"
                   >
                     <div className="flex w-full gap-x-2 items-center p-4">
-                      <div className="bg-zinc-600 p-2 rounded-lg h-[24px] w-[24px] flex items-center justify-center">
+                      <div className="bg-theme-bg-secondary p-2 rounded-lg h-[24px] w-[24px] flex items-center justify-center">
                         <Plus
                           weight="bold"
                           size={14}
-                          className="shrink-0 text-slate-100"
+                          className="shrink-0 text-theme-text-primary"
                         />
                       </div>
-                      <p className="text-left text-slate-100 text-sm">
+                      <p className="text-left text-theme-text-primary text-sm">
                         New SQL connection
                       </p>
                     </div>
diff --git a/frontend/src/pages/Admin/Agents/WebSearchSelection/SearchProviderItem/index.jsx b/frontend/src/pages/Admin/Agents/WebSearchSelection/SearchProviderItem/index.jsx
index eff29c53a..f6b1112cd 100644
--- a/frontend/src/pages/Admin/Agents/WebSearchSelection/SearchProviderItem/index.jsx
+++ b/frontend/src/pages/Admin/Agents/WebSearchSelection/SearchProviderItem/index.jsx
@@ -3,8 +3,8 @@ export default function SearchProviderItem({ provider, checked, onClick }) {
   return (
     <div
       onClick={onClick}
-      className={`w-full p-2 rounded-md hover:cursor-pointer hover:bg-white/10 ${
-        checked ? "bg-white/10" : ""
+      className={`w-full p-2 rounded-md hover:cursor-pointer hover:bg-theme-bg-secondary ${
+        checked ? "bg-theme-bg-secondary" : ""
       }`}
     >
       <input
diff --git a/frontend/src/pages/Admin/Agents/WebSearchSelection/SearchProviderOptions/index.jsx b/frontend/src/pages/Admin/Agents/WebSearchSelection/SearchProviderOptions/index.jsx
index 940f6b474..956d167ec 100644
--- a/frontend/src/pages/Admin/Agents/WebSearchSelection/SearchProviderOptions/index.jsx
+++ b/frontend/src/pages/Admin/Agents/WebSearchSelection/SearchProviderOptions/index.jsx
@@ -20,7 +20,7 @@ export function GoogleSearchOptions({ settings }) {
           <input
             type="text"
             name="env::AgentGoogleSearchEngineId"
-            className="border-none bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="Google Search Engine Id"
             defaultValue={settings?.AgentGoogleSearchEngineId}
             required={true}
@@ -35,7 +35,7 @@ export function GoogleSearchOptions({ settings }) {
           <input
             type="password"
             name="env::AgentGoogleSearchEngineKey"
-            className="border-none bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="Google Search Engine API Key"
             defaultValue={
               settings?.AgentGoogleSearchEngineKey ? "*".repeat(20) : ""
@@ -87,7 +87,7 @@ export function SearchApiOptions({ settings }) {
           <input
             type="password"
             name="env::AgentSearchApiKey"
-            className="border-none bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="SearchApi API Key"
             defaultValue={settings?.AgentSearchApiKey ? "*".repeat(20) : ""}
             required={true}
@@ -102,7 +102,7 @@ export function SearchApiOptions({ settings }) {
           <select
             name="env::AgentSearchApiEngine"
             required={true}
-            className="border-none bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             defaultValue={settings?.AgentSearchApiEngine || "google"}
           >
             {SearchApiEngines.map(({ name, value }) => (
@@ -114,7 +114,7 @@ export function SearchApiOptions({ settings }) {
           {/* <input
             type="text"
             name="env::AgentSearchApiEngine"
-            className="border-none bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="SearchApi engine (Google, Bing...)"
             defaultValue={settings?.AgentSearchApiEngine || "google"}
             required={true}
@@ -149,7 +149,7 @@ export function SerperDotDevOptions({ settings }) {
           <input
             type="password"
             name="env::AgentSerperApiKey"
-            className="border-none bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="Serper.dev API Key"
             defaultValue={settings?.AgentSerperApiKey ? "*".repeat(20) : ""}
             required={true}
@@ -184,7 +184,7 @@ export function BingSearchOptions({ settings }) {
           <input
             type="password"
             name="env::AgentBingSearchApiKey"
-            className="border-none bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="Bing Web Search API Key"
             defaultValue={settings?.AgentBingSearchApiKey ? "*".repeat(20) : ""}
             required={true}
@@ -247,7 +247,7 @@ export function SerplySearchOptions({ settings }) {
           <input
             type="password"
             name="env::AgentSerplyApiKey"
-            className="border-none bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="Serply API Key"
             defaultValue={settings?.AgentSerplyApiKey ? "*".repeat(20) : ""}
             required={true}
@@ -270,7 +270,7 @@ export function SearXNGOptions({ settings }) {
         <input
           type="url"
           name="env::AgentSearXNGApiUrl"
-          className="border-none bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+          className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
           placeholder="SearXNG API Key"
           defaultValue={settings?.AgentSearXNGApiUrl}
           required={true}
@@ -304,7 +304,7 @@ export function TavilySearchOptions({ settings }) {
           <input
             type="password"
             name="env::AgentTavilyApiKey"
-            className="border-none bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+            className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             placeholder="Tavily API Key"
             defaultValue={settings?.AgentTavilyApiKey ? "*".repeat(20) : ""}
             required={true}
diff --git a/frontend/src/pages/Admin/Agents/WebSearchSelection/index.jsx b/frontend/src/pages/Admin/Agents/WebSearchSelection/index.jsx
index c4e9907eb..4f3678781 100644
--- a/frontend/src/pages/Admin/Agents/WebSearchSelection/index.jsx
+++ b/frontend/src/pages/Admin/Agents/WebSearchSelection/index.jsx
@@ -155,8 +155,15 @@ export default function AgentWebSearchSelection({
     <div className="p-2">
       <div className="flex flex-col gap-y-[18px] max-w-[500px]">
         <div className="flex items-center gap-x-2">
-          <ListMagnifyingGlass size={24} color="white" weight="bold" />
-          <label htmlFor="name" className="text-white text-md font-bold">
+          <ListMagnifyingGlass
+            size={24}
+            color="var(--theme-text-primary)"
+            weight="bold"
+          />
+          <label
+            htmlFor="name"
+            className="text-theme-text-primary text-md font-bold"
+          >
             Live web search and browsing
           </label>
           <label className="border-none relative inline-flex cursor-pointer items-center ml-auto">
@@ -166,7 +173,7 @@ export default function AgentWebSearchSelection({
               checked={enabled}
               onChange={() => toggleSkill(skill)}
             />
-            <div className="pointer-events-none peer h-6 w-11 rounded-full bg-stone-400 after:absolute after:left-[2px] after:top-[2px] after:h-5 after:w-5 after:rounded-full after:shadow-xl after:border after:border-gray-600 after:bg-white after:box-shadow-md after:transition-all after:content-[''] peer-checked:bg-lime-300 peer-checked:after:translate-x-full peer-checked:after:border-white peer-focus:outline-none peer-focus:ring-4 peer-focus:ring-blue-800"></div>
+            <div className="pointer-events-none peer h-6 w-11 rounded-full bg-theme-bg-secondary after:absolute after:left-[2px] after:top-[2px] after:h-5 after:w-5 after:rounded-full after:shadow-xl after:border after:border-gray-600 after:bg-white after:box-shadow-md after:transition-all after:content-[''] peer-checked:bg-lime-300 peer-checked:after:translate-x-full peer-checked:after:border-white peer-focus:outline-none peer-focus:ring-4 peer-focus:ring-blue-800"></div>
             <span className="ml-3 text-sm font-medium text-gray-900 dark:text-gray-300"></span>
           </label>
         </div>
@@ -175,7 +182,7 @@ export default function AgentWebSearchSelection({
           alt="Web Search"
           className="w-full rounded-md"
         />
-        <p className="text-white text-opacity-60 text-xs font-medium py-1.5">
+        <p className="text-theme-text-secondary text-opacity-60 text-xs font-medium py-1.5">
           Enable your agent to search the web to answer your questions by
           connecting to a web-search (SERP) provider. Web search during agent
           sessions will not work until this is set up.
@@ -194,20 +201,20 @@ export default function AgentWebSearchSelection({
               />
             )}
             {searchMenuOpen ? (
-              <div className="absolute top-0 left-0 w-full max-w-[640px] max-h-[310px] overflow-auto white-scrollbar min-h-[64px] bg-dark-input rounded-lg flex flex-col justify-between cursor-pointer border-2 border-primary-button z-20">
+              <div className="absolute top-0 left-0 w-full max-w-[640px] max-h-[310px] overflow-auto white-scrollbar min-h-[64px] bg-theme-settings-input-bg rounded-lg flex flex-col justify-between cursor-pointer border-2 border-primary-button z-20">
                 <div className="w-full flex flex-col gap-y-1">
-                  <div className="flex items-center sticky top-0 border-b border-[#9CA3AF] mx-4 bg-dark-input">
+                  <div className="flex items-center sticky top-0 border-b border-[#9CA3AF] mx-4 bg-theme-settings-input-bg">
                     <MagnifyingGlass
                       size={20}
                       weight="bold"
-                      className="absolute left-4 z-30 text-white -ml-4 my-2"
+                      className="absolute left-4 z-30 text-theme-text-primary -ml-4 my-2"
                     />
                     <input
                       type="text"
                       name="web-provider-search"
                       autoComplete="off"
                       placeholder="Search available web-search providers"
-                      className="border-none -ml-4 my-2 bg-transparent z-20 pl-12 h-[38px] w-full px-4 py-1 text-sm outline-none text-white placeholder:text-white placeholder:font-medium"
+                      className="border-none -ml-4 my-2 bg-transparent z-20 pl-12 h-[38px] w-full px-4 py-1 text-sm outline-none text-theme-text-primary placeholder:text-theme-text-primary placeholder:font-medium"
                       onChange={(e) => setSearchQuery(e.target.value)}
                       ref={searchInputRef}
                       onKeyDown={(e) => {
@@ -237,7 +244,7 @@ export default function AgentWebSearchSelection({
               </div>
             ) : (
               <button
-                className="w-full max-w-[640px] h-[64px] bg-dark-input rounded-lg flex items-center p-[14px] justify-between cursor-pointer border-2 border-transparent hover:border-primary-button transition-all duration-300"
+                className="w-full max-w-[640px] h-[64px] bg-theme-settings-input-bg rounded-lg flex items-center p-[14px] justify-between cursor-pointer border-2 border-transparent hover:border-primary-button transition-all duration-300"
                 type="button"
                 onClick={() => setSearchMenuOpen(true)}
               >
diff --git a/frontend/src/pages/Admin/Agents/index.jsx b/frontend/src/pages/Admin/Agents/index.jsx
index 8f758647b..e176aeecb 100644
--- a/frontend/src/pages/Admin/Agents/index.jsx
+++ b/frontend/src/pages/Admin/Agents/index.jsx
@@ -146,7 +146,7 @@ export default function AdminAgents() {
 
           {/* Skill settings nav */}
           <div hidden={showSkillModal} className="flex flex-col gap-y-[18px]">
-            <div className="text-white flex items-center gap-x-2">
+            <div className="text-theme-text-primary flex items-center gap-x-2">
               <Robot size={24} />
               <p className="text-lg font-medium">Agent Skills</p>
             </div>
@@ -171,7 +171,7 @@ export default function AdminAgents() {
               activeSkills={agentSkills}
             />
 
-            <div className="text-white flex items-center gap-x-2">
+            <div className="text-theme-text-primary flex items-center gap-x-2">
               <Plug size={24} />
               <p className="text-lg font-medium">Custom Skills</p>
             </div>
@@ -202,7 +202,7 @@ export default function AdminAgents() {
                   </button>
                 </div>
                 <div className="flex-1 overflow-y-auto p-4">
-                  <div className="bg-[#303237] text-white rounded-xl p-4">
+                  <div className=" bg-theme-bg-secondary text-white rounded-xl p-4">
                     {SelectedSkillComponent ? (
                       <>
                         {selectedSkill.imported ? (
@@ -226,7 +226,7 @@ export default function AdminAgents() {
                         )}
                       </>
                     ) : (
-                      <div className="flex flex-col items-center justify-center h-full text-white/60">
+                      <div className="flex flex-col items-center justify-center h-full text-theme-text-secondary">
                         <Robot size={40} />
                         <p className="font-medium">Select an agent skill</p>
                       </div>
@@ -261,7 +261,7 @@ export default function AdminAgents() {
 
         {/* Skill settings nav */}
         <div className="flex flex-col gap-y-[18px]">
-          <div className="text-white flex items-center gap-x-2">
+          <div className="text-theme-text-primary flex items-center gap-x-2">
             <Robot size={24} />
             <p className="text-lg font-medium">Agent Skills</p>
           </div>
@@ -281,7 +281,7 @@ export default function AdminAgents() {
             activeSkills={agentSkills}
           />
 
-          <div className="text-white flex items-center gap-x-2">
+          <div className="text-theme-text-primary flex items-center gap-x-2">
             <Plug size={24} />
             <p className="text-lg font-medium">Custom Skills</p>
           </div>
@@ -294,7 +294,7 @@ export default function AdminAgents() {
 
         {/* Selected agent skill setting panel */}
         <div className="flex-[2] flex flex-col gap-y-[18px] mt-10">
-          <div className="bg-[#303237] text-white rounded-xl flex-1 p-4">
+          <div className="bg-theme-bg-secondary text-white rounded-xl flex-1 p-4">
             {SelectedSkillComponent ? (
               <>
                 {selectedSkill.imported ? (
@@ -318,7 +318,7 @@ export default function AdminAgents() {
                 )}
               </>
             ) : (
-              <div className="flex flex-col items-center justify-center h-full text-white/60">
+              <div className="flex flex-col items-center justify-center h-full text-theme-text-secondary">
                 <Robot size={40} />
                 <p className="font-medium">Select an agent skill</p>
               </div>
@@ -334,7 +334,7 @@ function SkillLayout({ children, hasChanges, handleSubmit, handleCancel }) {
   return (
     <div
       id="workspace-agent-settings-container"
-      className="w-screen h-screen overflow-hidden bg-sidebar flex md:mt-0 mt-6"
+      className="w-screen h-screen overflow-hidden bg-theme-bg-container flex md:mt-0 mt-6"
     >
       <Sidebar />
       <div
@@ -364,7 +364,7 @@ function SkillList({
   return (
     <>
       <div
-        className={`bg-white/5 text-white rounded-xl ${
+        className={`bg-theme-bg-secondary text-white rounded-xl ${
           isMobile ? "w-full" : "min-w-[360px] w-fit"
         }`}
       >
@@ -377,8 +377,10 @@ function SkillList({
               index === Object.keys(skills).length - 1
                 ? "rounded-b-xl"
                 : "border-b border-white/10"
-            } cursor-pointer transition-all duration-300  hover:bg-white/5 ${
-              selectedSkill === skill ? "bg-white/10" : ""
+            } cursor-pointer transition-all duration-300  hover:bg-theme-bg-primary ${
+              selectedSkill === skill
+                ? "bg-white/10 light:bg-theme-bg-sidebar"
+                : ""
             }`}
             onClick={() => handleClick?.(skill)}
           >
@@ -387,11 +389,15 @@ function SkillList({
               {isDefault ? (
                 <DefaultBadge title={skill} />
               ) : (
-                <div className="text-sm text-white/60 font-medium">
+                <div className="text-sm text-theme-text-secondary font-medium">
                   {activeSkills.includes(skill) ? "On" : "Off"}
                 </div>
               )}
-              <CaretRight size={14} weight="bold" className="text-white/80" />
+              <CaretRight
+                size={14}
+                weight="bold"
+                className="text-theme-text-secondary"
+              />
             </div>
           </div>
         ))}
@@ -402,7 +408,7 @@ function SkillList({
           id="default-skill"
           place="bottom"
           delayShow={300}
-          className="tooltip !text-xs"
+          className="tooltip light:invert-0 !text-xs"
         />
       )}
     </>
diff --git a/frontend/src/pages/Admin/ExperimentalFeatures/Features/LiveSync/manage/DocumentSyncQueueRow/index.jsx b/frontend/src/pages/Admin/ExperimentalFeatures/Features/LiveSync/manage/DocumentSyncQueueRow/index.jsx
index 30795628e..54d57011d 100644
--- a/frontend/src/pages/Admin/ExperimentalFeatures/Features/LiveSync/manage/DocumentSyncQueueRow/index.jsx
+++ b/frontend/src/pages/Admin/ExperimentalFeatures/Features/LiveSync/manage/DocumentSyncQueueRow/index.jsx
@@ -33,7 +33,7 @@ export default function DocumentSyncQueueRow({ queue }) {
         <td className="px-6 py-4 flex items-center gap-x-6">
           <button
             onClick={handleDelete}
-            className="font-medium text-red-300 px-2 py-1 rounded-lg hover:bg-red-800 hover:bg-opacity-20"
+            className="font-medium px-2 py-1 rounded-lg text-theme-text-primary hover:text-red-500"
           >
             <Trash className="h-5 w-5" />
           </button>
diff --git a/frontend/src/pages/Admin/ExperimentalFeatures/Features/LiveSync/manage/index.jsx b/frontend/src/pages/Admin/ExperimentalFeatures/Features/LiveSync/manage/index.jsx
index 027ebb7e6..a60709fa1 100644
--- a/frontend/src/pages/Admin/ExperimentalFeatures/Features/LiveSync/manage/index.jsx
+++ b/frontend/src/pages/Admin/ExperimentalFeatures/Features/LiveSync/manage/index.jsx
@@ -8,26 +8,28 @@ import DocumentSyncQueueRow from "./DocumentSyncQueueRow";
 
 export default function LiveDocumentSyncManager() {
   return (
-    <div className="w-screen h-screen overflow-hidden bg-sidebar flex">
+    <div className="w-screen h-screen overflow-hidden bg-theme-bg-container flex">
       <Sidebar />
       <div
         style={{ height: isMobile ? "100%" : "calc(100% - 32px)" }}
-        className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-main-gradient w-full h-full overflow-y-scroll"
+        className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-theme-bg-secondary w-full h-full overflow-y-scroll p-4 md:p-0"
       >
         <div className="flex flex-col w-full px-1 md:pl-6 md:pr-[50px] md:py-6 py-16">
-          <div className="w-full flex flex-col gap-y-1 pb-6 border-white border-b-2 border-opacity-10">
+          <div className="w-full flex flex-col gap-y-1 pb-6 border-white/10 border-b-2">
             <div className="items-center flex gap-x-4">
-              <p className="text-lg leading-6 font-bold text-white">
+              <p className="text-lg leading-6 font-bold text-theme-text-primary">
                 Watched documents
               </p>
             </div>
-            <p className="text-xs leading-[18px] font-base text-white text-opacity-60">
+            <p className="text-xs leading-[18px] font-base text-theme-text-secondary">
               These are all the documents that are currently being watched in
               your instance. The content of these documents will be periodically
               synced.
             </p>
           </div>
-          <WatchedDocumentsContainer />
+          <div className="overflow-x-auto">
+            <WatchedDocumentsContainer />
+          </div>
         </div>
       </div>
     </div>
@@ -52,8 +54,8 @@ function WatchedDocumentsContainer() {
       <Skeleton.default
         height="80vh"
         width="100%"
-        highlightColor="#3D4147"
-        baseColor="#2C2F35"
+        highlightColor="var(--theme-bg-primary)"
+        baseColor="var(--theme-bg-secondary)"
         count={1}
         className="w-full p-4 rounded-b-2xl rounded-tr-2xl rounded-tl-sm mt-6"
         containerClassName="flex w-full"
@@ -62,8 +64,8 @@ function WatchedDocumentsContainer() {
   }
 
   return (
-    <table className="w-full text-sm text-left rounded-lg mt-6">
-      <thead className="text-white text-opacity-80 text-xs leading-[18px] font-bold uppercase border-white border-b border-opacity-60">
+    <table className="w-full text-sm text-left rounded-lg mt-6 min-w-[640px]">
+      <thead className="text-theme-text-secondary text-xs leading-[18px] font-bold uppercase border-white/10 border-b">
         <tr>
           <th scope="col" className="px-6 py-3 rounded-tl-lg">
             Document Name
diff --git a/frontend/src/pages/Admin/ExperimentalFeatures/Features/LiveSync/toggle.jsx b/frontend/src/pages/Admin/ExperimentalFeatures/Features/LiveSync/toggle.jsx
index d27fafbb6..2c2b750a5 100644
--- a/frontend/src/pages/Admin/ExperimentalFeatures/Features/LiveSync/toggle.jsx
+++ b/frontend/src/pages/Admin/ExperimentalFeatures/Features/LiveSync/toggle.jsx
@@ -33,7 +33,7 @@ export default function LiveSyncToggle({ enabled = false, onToggle }) {
     <div className="p-4">
       <div className="flex flex-col gap-y-6 max-w-[500px]">
         <div className="flex items-center justify-between">
-          <h2 className="text-white text-md font-bold">
+          <h2 className="text-theme-text-primary text-md font-bold">
             Automatic Document Content Sync
           </h2>
           <label className="relative inline-flex cursor-pointer items-center">
@@ -47,16 +47,16 @@ export default function LiveSyncToggle({ enabled = false, onToggle }) {
           </label>
         </div>
         <div className="flex flex-col space-y-4">
-          <p className="text-white/90 text-sm">
+          <p className="text-theme-text-secondary text-sm">
             Enable the ability to specify a document to be "watched". Watched
             document's content will be regularly fetched and updated in
             AnythingLLM.
           </p>
-          <p className="text-white/90 text-sm">
+          <p className="text-theme-text-secondary text-sm">
             Watched documents will automatically update in all workspaces they
             are referenced in at the same time of update.
           </p>
-          <p className="text-white/80 text-xs italic">
+          <p className="text-theme-text-secondary text-xs italic">
             This feature only applies to web-based content, such as websites,
             Confluence, YouTube, and GitHub files.
           </p>
@@ -68,7 +68,7 @@ export default function LiveSyncToggle({ enabled = false, onToggle }) {
             <a
               href="https://docs.anythingllm.com/beta-preview/active-features/live-document-sync"
               target="_blank"
-              className="text-sm text-blue-400 hover:underline flex items-center gap-x-1"
+              className="text-sm text-blue-400 light:text-blue-500 hover:underline flex items-center gap-x-1"
             >
               <ArrowSquareOut size={14} />
               <span>Feature Documentation and Warnings</span>
@@ -77,7 +77,7 @@ export default function LiveSyncToggle({ enabled = false, onToggle }) {
           <li>
             <Link
               to={paths.experimental.liveDocumentSync.manage()}
-              className="text-sm text-blue-400 hover:underline"
+              className="text-sm text-blue-400 light:text-blue-500 hover:underline"
             >
               Manage Watched Documents &rarr;
             </Link>
diff --git a/frontend/src/pages/Admin/ExperimentalFeatures/index.jsx b/frontend/src/pages/Admin/ExperimentalFeatures/index.jsx
index 72aac8f59..5b04eaeb1 100644
--- a/frontend/src/pages/Admin/ExperimentalFeatures/index.jsx
+++ b/frontend/src/pages/Admin/ExperimentalFeatures/index.jsx
@@ -65,7 +65,7 @@ export default function ExperimentalFeatures() {
         {/* Selected feature setting panel */}
         <FeatureVerification>
           <div className="flex-[2] flex flex-col gap-y-[18px] mt-10">
-            <div className="bg-[#303237] text-white rounded-xl flex-1 p-4">
+            <div className="bg-theme-bg-secondary text-white rounded-xl flex-1 p-4">
               {selectedFeature ? (
                 <SelectedFeatureComponent
                   feature={configurableFeatures[selectedFeature]}
@@ -90,7 +90,7 @@ function FeatureLayout({ children }) {
   return (
     <div
       id="workspace-feature-settings-container"
-      className="w-screen h-screen overflow-hidden bg-sidebar flex md:mt-0 mt-6"
+      className="w-screen h-screen overflow-hidden bg-theme-bg-container flex md:mt-0 mt-6"
     >
       <Sidebar />
       <div
@@ -113,7 +113,7 @@ function FeatureList({
 
   return (
     <div
-      className={`bg-white/5 text-white rounded-xl ${
+      className={`bg-theme-bg-secondary text-white rounded-xl ${
         isMobile ? "w-full" : "min-w-[360px] w-fit"
       }`}
     >
@@ -126,17 +126,23 @@ function FeatureList({
             index === Object.keys(features).length - 1
               ? "rounded-b-xl"
               : "border-b border-white/10"
-          } cursor-pointer transition-all duration-300  hover:bg-white/5 ${
-            selectedFeature === feature ? "bg-white/10" : ""
+          } cursor-pointer transition-all duration-300 hover:bg-white/5 ${
+            selectedFeature === feature
+              ? "bg-white/10 light:bg-theme-bg-sidebar  "
+              : ""
           }`}
           onClick={() => handleClick?.(feature)}
         >
           <div className="text-sm font-light">{settings.title}</div>
           <div className="flex items-center gap-x-2">
-            <div className="text-sm text-white/60 font-medium">
+            <div className="text-sm text-theme-text-secondary font-medium">
               {activeFeatures.includes(settings.key) ? "On" : "Off"}
             </div>
-            <CaretRight size={14} weight="bold" className="text-white/80" />
+            <CaretRight
+              size={14}
+              weight="bold"
+              className="text-theme-text-secondary"
+            />
           </div>
         </div>
       ))}
@@ -179,18 +185,18 @@ function FeatureVerification({ children }) {
     return (
       <>
         <ModalWrapper isOpen={true}>
-          <form
-            onSubmit={acceptTos}
-            className="relative w-full max-w-2xl max-h-full"
-          >
-            <div className="relative bg-main-gradient rounded-lg shadow">
-              <div className="flex items-start justify-between p-4 border-b rounded-t border-gray-500/50">
+          <div className="w-full max-w-2xl bg-theme-bg-secondary rounded-lg shadow border-2 border-theme-modal-border overflow-hidden">
+            <div className="relative p-6 border-b rounded-t border-theme-modal-border">
+              <div className="flex items-center gap-2">
+                <Flask size={24} className="text-theme-text-primary" />
                 <h3 className="text-xl font-semibold text-white">
                   Terms of use for experimental features
                 </h3>
               </div>
-              <div className="p-6 space-y-6 flex h-full w-full">
-                <div className="w-full flex flex-col gap-y-4 text-white">
+            </div>
+            <form onSubmit={acceptTos}>
+              <div className="py-7 px-9 space-y-4 flex-col">
+                <div className="w-full text-white text-md flex flex-col gap-y-4">
                   <p>
                     Experimental features of AnythingLLM are features that we
                     are piloting and are <b>opt-in</b>. We proactively will
@@ -203,7 +209,7 @@ function FeatureVerification({ children }) {
                       Use of any feature on this page can result in, but not
                       limited to, the following possibilities.
                     </p>
-                    <ul className="list-disc ml-6 text-sm font-mono">
+                    <ul className="list-disc ml-6 text-sm font-mono mt-2">
                       <li>Loss of data.</li>
                       <li>Change in quality of results.</li>
                       <li>Increased storage.</li>
@@ -221,7 +227,7 @@ function FeatureVerification({ children }) {
                       Use of an experimental feature also comes with the
                       following list of non-exhaustive conditions.
                     </p>
-                    <ul className="list-disc ml-6 text-sm font-mono">
+                    <ul className="list-disc ml-6 text-sm font-mono mt-2">
                       <li>Feature may not exist in future updates.</li>
                       <li>The feature being used is not currently stable.</li>
                       <li>
@@ -255,22 +261,22 @@ function FeatureVerification({ children }) {
                   </p>
                 </div>
               </div>
-              <div className="flex w-full justify-between items-center p-6 space-x-2 border-t rounded-b border-gray-500/50">
+              <div className="flex w-full justify-between items-center p-6 space-x-2 border-t border-theme-modal-border rounded-b">
                 <a
                   href={paths.home()}
-                  className="px-4 py-2 rounded-lg text-white hover:bg-stone-900 transition-all duration-300"
+                  className="px-4 py-2 rounded-lg text-theme-text-primary hover:bg-red-500/50 light:hover:bg-red-300/50 transition-all duration-300"
                 >
-                  Reject & Close
+                  Reject & close
                 </a>
                 <button
                   type="submit"
-                  className="transition-all duration-300 border border-slate-200 px-4 py-2 rounded-lg text-white text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 focus:ring-gray-800"
+                  className="transition-all duration-300 text-theme-text-primary hover:bg-blue-300/50 light:hover:bg-blue-300 px-4 py-2 rounded-lg text-sm"
                 >
                   I understand
                 </button>
               </div>
-            </div>
-          </form>
+            </form>
+          </div>
         </ModalWrapper>
         {children}
       </>
diff --git a/frontend/src/pages/Admin/Invitations/InviteRow/index.jsx b/frontend/src/pages/Admin/Invitations/InviteRow/index.jsx
index 56ebf7dc9..d42f4fdaa 100644
--- a/frontend/src/pages/Admin/Invitations/InviteRow/index.jsx
+++ b/frontend/src/pages/Admin/Invitations/InviteRow/index.jsx
@@ -62,14 +62,14 @@ export default function InviteRow({ invite }) {
               <button
                 onClick={copyInviteLink}
                 disabled={copied}
-                className="font-medium text-blue-300 rounded-lg hover:text-white hover:text-opacity-60 hover:underline"
+                className="font-medium text-blue-300 rounded-lg hover:text-blue-400 hover:underline"
               >
                 {copied ? "Copied" : "Copy Invite Link"}
               </button>
               <td className="px-6 py-4 flex items-center gap-x-6">
                 <button
                   onClick={handleDelete}
-                  className="font-medium text-red-300 px-2 py-1 rounded-lg hover:bg-red-800 hover:bg-opacity-20"
+                  className="font-medium text-theme-text-primary hover:text-red-500 px-2 py-1 rounded-lg"
                 >
                   <Trash className="h-5 w-5" />
                 </button>
diff --git a/frontend/src/pages/Admin/Invitations/NewInviteModal/index.jsx b/frontend/src/pages/Admin/Invitations/NewInviteModal/index.jsx
index cdeca6e68..4c705e8d5 100644
--- a/frontend/src/pages/Admin/Invitations/NewInviteModal/index.jsx
+++ b/frontend/src/pages/Admin/Invitations/NewInviteModal/index.jsx
@@ -58,103 +58,104 @@ export default function NewInviteModal({ closeModal }) {
   }, []);
 
   return (
-    <div className="relative w-[500px] max-w-2xl max-h-full overflow-auto">
-      <div className="relative bg-main-gradient rounded-lg shadow">
-        <div className="flex items-start justify-between p-4 border-b rounded-t border-gray-500/50">
-          <h3 className="text-xl font-semibold text-white">
-            Create new invite
-          </h3>
+    <div className="fixed inset-0 z-50 overflow-auto bg-black bg-opacity-50 flex items-center justify-center">
+      <div className="relative w-full max-w-2xl bg-theme-bg-secondary rounded-lg shadow border-2 border-theme-modal-border">
+        <div className="relative p-6 border-b rounded-t border-theme-modal-border">
+          <div className="w-full flex gap-x-2 items-center">
+            <h3 className="text-xl font-semibold text-white overflow-hidden overflow-ellipsis whitespace-nowrap">
+              Create new invite
+            </h3>
+          </div>
           <button
             onClick={closeModal}
             type="button"
-            className="transition-all duration-300 text-gray-400 bg-transparent hover:border-white/60 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center bg-sidebar-button hover:bg-menu-item-selected-gradient hover:border-slate-100 hover:border-opacity-50 border-transparent border"
-            data-modal-hide="staticModal"
+            className="absolute top-4 right-4 transition-all duration-300 bg-transparent rounded-lg text-sm p-1 inline-flex items-center hover:bg-theme-modal-border hover:border-theme-modal-border hover:border-opacity-50 border-transparent border"
           >
-            <X className="text-gray-300 text-lg" />
+            <X size={24} weight="bold" className="text-white" />
           </button>
         </div>
-        <form onSubmit={handleCreate}>
-          <div className="p-6 space-y-6 flex h-full w-full">
-            <div className="w-full flex flex-col gap-y-4">
+        <div className="p-6">
+          <form onSubmit={handleCreate}>
+            <div className="space-y-4">
               {error && <p className="text-red-400 text-sm">Error: {error}</p>}
               {invite && (
                 <input
                   type="url"
                   defaultValue={`${window.location.origin}/accept-invite/${invite.code}`}
                   disabled={true}
-                  className="rounded-lg px-4 py-2 text-white bg-zinc-900 border border-gray-500/50"
+                  className="bg-theme-settings-input-bg w-full text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                 />
               )}
-              <p className="text-white text-xs md:text-sm">
+              <p className="text-white text-opacity-60 text-xs md:text-sm">
                 After creation you will be able to copy the invite and send it
                 to a new user where they can create an account as the{" "}
                 <b>default</b> role and automatically be added to workspaces
                 selected.
               </p>
             </div>
-          </div>
 
-          {workspaces.length > 0 && !invite && (
-            <div className="p-6 flex w-full justify-between">
-              <div className="w-full">
-                <div className="flex flex-col gap-y-1  mb-2">
-                  <label
-                    htmlFor="workspaces"
-                    className="text-sm font-medium text-white"
-                  >
-                    Auto-add invitee to workspaces
-                  </label>
-                  <p className="text-white/60 text-xs">
-                    You can optionally automatically assign the user to the
-                    workspaces below by selecting them. By default, the user
-                    will not have any workspaces visible. You can assign
-                    workspaces later post-invite acceptance.
-                  </p>
-                </div>
+            {workspaces.length > 0 && !invite && (
+              <div className="mt-6">
+                <div className="w-full">
+                  <div className="flex flex-col gap-y-1 mb-2">
+                    <label
+                      htmlFor="workspaces"
+                      className="block text-sm font-medium text-white"
+                    >
+                      Auto-add invitee to workspaces
+                    </label>
+                    <p className="text-white text-opacity-60 text-xs">
+                      You can optionally automatically assign the user to the
+                      workspaces below by selecting them. By default, the user
+                      will not have any workspaces visible. You can assign
+                      workspaces later post-invite acceptance.
+                    </p>
+                  </div>
 
-                <div className="flex flex-col gap-y-2">
-                  {workspaces.map((workspace) => (
-                    <WorkspaceOption
-                      key={workspace.id}
-                      workspace={workspace}
-                      selected={selectedWorkspaceIds.includes(workspace.id)}
-                      toggleSelection={handleWorkspaceSelection}
-                    />
-                  ))}
+                  <div className="flex flex-col gap-y-2 mt-2">
+                    {workspaces.map((workspace) => (
+                      <WorkspaceOption
+                        key={workspace.id}
+                        workspace={workspace}
+                        selected={selectedWorkspaceIds.includes(workspace.id)}
+                        toggleSelection={handleWorkspaceSelection}
+                      />
+                    ))}
+                  </div>
                 </div>
               </div>
-            </div>
-          )}
-
-          <div className="flex w-full justify-between items-center p-6 space-x-2 border-t rounded-b border-gray-500/50">
-            {!invite ? (
-              <>
-                <button
-                  onClick={closeModal}
-                  type="button"
-                  className="px-4 py-2 rounded-lg text-white hover:bg-stone-900 transition-all duration-300"
-                >
-                  Cancel
-                </button>
-                <button
-                  type="submit"
-                  className="transition-all duration-300 border border-slate-200 px-4 py-2 rounded-lg text-white text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 focus:ring-gray-800"
-                >
-                  Create Invite
-                </button>
-              </>
-            ) : (
-              <button
-                onClick={copyInviteLink}
-                type="button"
-                disabled={copied}
-                className="w-full transition-all duration-300 border border-slate-200 px-4 py-2 rounded-lg text-white text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 focus:ring-gray-800 text-center justify-center"
-              >
-                {copied ? "Copied Link" : "Copy Invite Link"}
-              </button>
             )}
-          </div>
-        </form>
+
+            <div className="flex justify-between items-center mt-6 pt-6 border-t border-theme-modal-border">
+              {!invite ? (
+                <>
+                  <button
+                    onClick={closeModal}
+                    type="button"
+                    className="transition-all duration-300 text-white hover:bg-zinc-700 px-4 py-2 rounded-lg text-sm"
+                  >
+                    Cancel
+                  </button>
+                  <button
+                    type="submit"
+                    className="transition-all duration-300 bg-white text-black hover:opacity-60 px-4 py-2 rounded-lg text-sm"
+                  >
+                    Create Invite
+                  </button>
+                </>
+              ) : (
+                <button
+                  onClick={copyInviteLink}
+                  type="button"
+                  disabled={copied}
+                  className="w-full transition-all duration-300 bg-white text-black hover:opacity-60 px-4 py-2 rounded-lg text-sm"
+                >
+                  {copied ? "Copied Link" : "Copy Invite Link"}
+                </button>
+              )}
+            </div>
+          </form>
+        </div>
       </div>
     </div>
   );
@@ -165,9 +166,11 @@ function WorkspaceOption({ workspace, selected, toggleSelection }) {
     <button
       type="button"
       onClick={() => toggleSelection(workspace.id)}
-      className={`transition-all duration-300 w-full h-11 p-2.5 bg-white/10 rounded-lg flex justify-start items-center gap-2.5 cursor-pointer border border-transparent ${
-        selected ? "border-white border-opacity-40" : "border-none "
-      } hover:border-white/60`}
+      className={`transition-all duration-300 w-full h-11 p-2.5 rounded-lg flex justify-start items-center gap-2.5 cursor-pointer border ${
+        selected
+          ? "border-theme-sidebar-item-workspace-active bg-theme-bg-secondary"
+          : "border-theme-sidebar-border"
+      } hover:border-theme-sidebar-border hover:bg-theme-bg-secondary`}
     >
       <input
         type="radio"
@@ -177,11 +180,11 @@ function WorkspaceOption({ workspace, selected, toggleSelection }) {
         className="hidden"
       />
       <div
-        className={`w-4 h-4 rounded-full border-2 border-white mr-2 ${
-          selected ? "bg-white" : ""
+        className={`w-4 h-4 rounded-full border-2 border-theme-sidebar-border mr-2 ${
+          selected ? "bg-[var(--theme-sidebar-item-workspace-active)]" : ""
         }`}
       ></div>
-      <div className="text-white text-sm font-medium font-['Plus Jakarta Sans'] leading-tight">
+      <div className="text-theme-text-primary text-sm font-medium font-['Plus Jakarta Sans'] leading-tight">
         {workspace.name}
       </div>
     </button>
diff --git a/frontend/src/pages/Admin/Invitations/index.jsx b/frontend/src/pages/Admin/Invitations/index.jsx
index 599271ad9..a08ca5eea 100644
--- a/frontend/src/pages/Admin/Invitations/index.jsx
+++ b/frontend/src/pages/Admin/Invitations/index.jsx
@@ -16,31 +16,36 @@ export default function AdminInvites() {
   const { isOpen, openModal, closeModal } = useModal();
 
   return (
-    <div className="w-screen h-screen overflow-hidden bg-sidebar flex">
+    <div className="w-screen h-screen overflow-hidden bg-theme-bg-container flex">
       <Sidebar />
       <div
         style={{ height: isMobile ? "100%" : "calc(100% - 32px)" }}
-        className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-main-gradient w-full h-full overflow-y-scroll"
+        className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-theme-bg-secondary w-full h-full overflow-y-scroll p-4 md:p-0"
       >
         <div className="flex flex-col w-full px-1 md:pl-6 md:pr-[50px] md:py-6 py-16">
-          <div className="w-full flex flex-col gap-y-1 pb-6 border-white border-b-2 border-opacity-10">
+          <div className="w-full flex flex-col gap-y-1 pb-6 border-white/10 border-b-2">
             <div className="items-center flex gap-x-4">
-              <p className="text-lg leading-6 font-bold text-white">
+              <p className="text-lg leading-6 font-bold text-theme-text-primary">
                 Invitations
               </p>
             </div>
-            <p className="text-xs leading-[18px] font-base text-white text-opacity-60">
+            <p className="text-xs leading-[18px] font-base text-theme-text-secondary mt-2">
               Create invitation links for people in your organization to accept
               and sign up with. Invitations can only be used by a single user.
             </p>
           </div>
           <div className="w-full justify-end flex">
-            <CTAButton onClick={openModal} className="mt-3 mr-0 -mb-12 z-10">
+            <CTAButton
+              onClick={openModal}
+              className="mt-3 mr-0 mb-4 md:-mb-12 z-10"
+            >
               <EnvelopeSimple className="h-4 w-4" weight="bold" /> Create Invite
               Link
             </CTAButton>
           </div>
-          <InvitationsContainer />
+          <div className="overflow-x-auto mt-6">
+            <InvitationsContainer />
+          </div>
         </div>
         <ModalWrapper isOpen={isOpen}>
           <NewInviteModal closeModal={closeModal} />
@@ -69,18 +74,18 @@ function InvitationsContainer() {
       <Skeleton.default
         height="80vh"
         width="100%"
-        highlightColor="#3D4147"
-        baseColor="#2C2F35"
+        highlightColor="var(--theme-bg-primary)"
+        baseColor="var(--theme-bg-secondary)"
         count={1}
-        className="w-full p-4 rounded-b-2xl rounded-tr-2xl rounded-tl-sm mt-6"
+        className="w-full p-4 rounded-b-2xl rounded-tr-2xl rounded-tl-sm"
         containerClassName="flex w-full"
       />
     );
   }
 
   return (
-    <table className="w-full text-sm text-left rounded-lg mt-6">
-      <thead className="text-white text-opacity-80 text-xs leading-[18px] font-bold uppercase border-white border-b border-opacity-60">
+    <table className="w-full text-sm text-left rounded-lg min-w-[640px]">
+      <thead className="text-theme-text-secondary text-xs leading-[18px] font-bold uppercase border-white/10 border-b">
         <tr>
           <th scope="col" className="px-6 py-3 rounded-tl-lg">
             Status
diff --git a/frontend/src/pages/Admin/Logging/LogRow/index.jsx b/frontend/src/pages/Admin/Logging/LogRow/index.jsx
index 0ce89b35a..3113aa45a 100644
--- a/frontend/src/pages/Admin/Logging/LogRow/index.jsx
+++ b/frontend/src/pages/Admin/Logging/LogRow/index.jsx
@@ -66,15 +66,15 @@ export default function LogRow({ log }) {
 const EventMetadata = ({ metadata, expanded = false }) => {
   if (!metadata || !expanded) return null;
   return (
-    <tr className="bg-sidebar">
+    <tr className="bg-theme-bg-primary">
       <td
         colSpan="2"
-        className="px-6 py-4 font-medium text-white rounded-l-2xl"
+        className="px-6 py-4 font-medium text-theme-text-primary rounded-l-2xl"
       >
         Event Metadata
       </td>
       <td colSpan="4" className="px-6 py-4 rounded-r-2xl">
-        <div className="w-full rounded-lg bg-main-2 p-2 text-white shadow-sm border-white border bg-opacity-10">
+        <div className="w-full rounded-lg bg-theme-bg-secondary p-2 text-white shadow-sm border-white/10 border bg-opacity-10">
           <pre className="overflow-scroll">
             {JSON.stringify(metadata, null, 2)}
           </pre>
@@ -85,13 +85,25 @@ const EventMetadata = ({ metadata, expanded = false }) => {
 };
 
 const EventBadge = ({ event }) => {
-  let colorTheme = { bg: "bg-sky-600/20", text: "text-sky-400 " };
+  let colorTheme = {
+    bg: "bg-sky-600/20",
+    text: "text-sky-400 light:text-sky-800",
+  };
   if (event.includes("update"))
-    colorTheme = { bg: "bg-yellow-600/20", text: "text-yellow-400 " };
+    colorTheme = {
+      bg: "bg-yellow-600/20",
+      text: "text-yellow-400 light:text-yellow-800",
+    };
   if (event.includes("failed_") || event.includes("deleted"))
-    colorTheme = { bg: "bg-red-600/20", text: "text-red-400 " };
+    colorTheme = {
+      bg: "bg-red-600/20",
+      text: "text-red-400 light:text-red-800",
+    };
   if (event === "login_event")
-    colorTheme = { bg: "bg-green-600/20", text: "text-green-400 " };
+    colorTheme = {
+      bg: "bg-green-600/20",
+      text: "text-green-400 light:text-green-800",
+    };
 
   return (
     <td className="px-6 py-4 font-medium whitespace-nowrap text-white flex items-center">
diff --git a/frontend/src/pages/Admin/Logging/index.jsx b/frontend/src/pages/Admin/Logging/index.jsx
index 389263f4b..2a54c93f7 100644
--- a/frontend/src/pages/Admin/Logging/index.jsx
+++ b/frontend/src/pages/Admin/Logging/index.jsx
@@ -54,39 +54,41 @@ export default function AdminLogs() {
   };
 
   return (
-    <div className="w-screen h-screen overflow-hidden bg-sidebar flex">
+    <div className="w-screen h-screen overflow-hidden bg-theme-bg-container flex">
       <Sidebar />
       <div
         style={{ height: isMobile ? "100%" : "calc(100% - 32px)" }}
-        className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-main-gradient w-full h-full overflow-y-scroll"
+        className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-theme-bg-secondary w-full h-full overflow-y-scroll p-4 md:p-0"
       >
         <div className="flex flex-col w-full px-1 md:pl-6 md:pr-[50px] md:py-6 py-16">
-          <div className="w-full flex flex-col gap-y-1 pb-6 border-white border-b-2 border-opacity-10">
+          <div className="w-full flex flex-col gap-y-1 pb-6 border-white/10 border-b-2">
             <div className="flex gap-x-4 items-center">
-              <p className="text-lg leading-6 font-bold text-white">
+              <p className="text-lg leading-6 font-bold text-theme-text-primary">
                 {t("event.title")}
               </p>
             </div>
-            <p className="text-xs leading-[18px] font-base text-white text-opacity-60">
+            <p className="text-xs leading-[18px] font-base text-theme-text-secondary mt-2">
               {t("event.description")}
             </p>
           </div>
           <div className="w-full justify-end flex">
             <CTAButton
               onClick={handleResetLogs}
-              className="mt-3 mr-0 -mb-14 z-10"
+              className="mt-3 mr-0 mb-4 md:-mb-14 z-10"
             >
               {t("event.clear")}
             </CTAButton>
           </div>
-          <LogsContainer
-            loading={loading}
-            logs={logs}
-            offset={offset}
-            canNext={canNext}
-            handleNext={handleNext}
-            handlePrevious={handlePrevious}
-          />
+          <div className="overflow-x-auto mt-6">
+            <LogsContainer
+              loading={loading}
+              logs={logs}
+              offset={offset}
+              canNext={canNext}
+              handleNext={handleNext}
+              handlePrevious={handlePrevious}
+            />
+          </div>
         </div>
       </div>
     </div>
@@ -107,10 +109,10 @@ function LogsContainer({
       <Skeleton.default
         height="80vh"
         width="100%"
-        highlightColor="#3D4147"
-        baseColor="#2C2F35"
+        highlightColor="var(--theme-bg-primary)"
+        baseColor="var(--theme-bg-secondary)"
         count={1}
-        className="w-full p-4 rounded-b-2xl rounded-tr-2xl rounded-tl-sm mt-6"
+        className="w-full p-4 rounded-b-2xl rounded-tr-2xl rounded-tl-sm"
         containerClassName="flex w-full"
       />
     );
@@ -118,8 +120,8 @@ function LogsContainer({
 
   return (
     <>
-      <table className="w-full text-sm text-left rounded-lg mt-6">
-        <thead className="text-white text-opacity-80 text-xs leading-[18px] font-bold uppercase border-white border-b border-opacity-60">
+      <table className="w-full text-sm text-left rounded-lg min-w-[640px]">
+        <thead className="text-theme-text-secondary text-xs leading-[18px] font-bold uppercase border-white/10 border-b">
           <tr>
             <th scope="col" className="px-6 py-3 rounded-tl-lg">
               {t("event.table.type")}
@@ -142,14 +144,14 @@ function LogsContainer({
       <div className="flex w-full justify-between items-center mt-6">
         <button
           onClick={handlePrevious}
-          className="px-4 py-2 rounded-lg border border-slate-200 text-slate-200 text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 disabled:invisible"
+          className="px-4 py-2 rounded-lg border border-slate-200 text-slate-200 light:text-theme-text-secondary light:border-theme-sidebar-border text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 disabled:invisible"
           disabled={offset === 0}
         >
           {t("common.previous")}
         </button>
         <button
           onClick={handleNext}
-          className="px-4 py-2 rounded-lg border border-slate-200 text-slate-200 text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 disabled:invisible"
+          className="px-4 py-2 rounded-lg border border-slate-200 text-slate-200 light:text-theme-text-secondary light:border-theme-sidebar-border text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 disabled:invisible"
           disabled={!canNext}
         >
           {t("common.next")}
diff --git a/frontend/src/pages/Admin/Users/NewUserModal/index.jsx b/frontend/src/pages/Admin/Users/NewUserModal/index.jsx
index ebca2debb..22b885974 100644
--- a/frontend/src/pages/Admin/Users/NewUserModal/index.jsx
+++ b/frontend/src/pages/Admin/Users/NewUserModal/index.jsx
@@ -28,24 +28,25 @@ export default function NewUserModal({ closeModal }) {
   const user = userFromStorage();
 
   return (
-    <div className="relative w-full max-w-2xl max-h-full">
-      <div className="relative bg-main-gradient rounded-lg shadow">
-        <div className="flex items-start justify-between p-4 border-b rounded-t border-gray-500/50">
-          <h3 className="text-xl font-semibold text-white">
-            Add user to instance
-          </h3>
+    <div className="fixed inset-0 z-50 overflow-auto bg-black bg-opacity-50 flex items-center justify-center">
+      <div className="relative w-full max-w-2xl bg-theme-bg-secondary rounded-lg shadow border-2 border-theme-modal-border">
+        <div className="relative p-6 border-b rounded-t border-theme-modal-border">
+          <div className="w-full flex gap-x-2 items-center">
+            <h3 className="text-xl font-semibold text-white overflow-hidden overflow-ellipsis whitespace-nowrap">
+              Add user to instance
+            </h3>
+          </div>
           <button
             onClick={closeModal}
             type="button"
-            className="transition-all duration-300 text-gray-400 bg-transparent hover:border-white/60 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center bg-sidebar-button hover:bg-menu-item-selected-gradient hover:border-slate-100 hover:border-opacity-50 border-transparent border"
-            data-modal-hide="staticModal"
+            className="absolute top-4 right-4 transition-all duration-300 bg-transparent rounded-lg text-sm p-1 inline-flex items-center hover:bg-theme-modal-border hover:border-theme-modal-border hover:border-opacity-50 border-transparent border"
           >
-            <X className="text-gray-300 text-lg" />
+            <X size={24} weight="bold" className="text-white" />
           </button>
         </div>
-        <form onSubmit={handleCreate}>
-          <div className="p-6 space-y-6 flex h-full w-full">
-            <div className="w-full flex flex-col gap-y-4">
+        <div className="p-6">
+          <form onSubmit={handleCreate}>
+            <div className="space-y-4">
               <div>
                 <label
                   htmlFor="username"
@@ -56,7 +57,7 @@ export default function NewUserModal({ closeModal }) {
                 <input
                   name="username"
                   type="text"
-                  className="bg-zinc-900 placeholder:text-white/20 border-gray-500 text-white text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5"
+                  className="bg-theme-settings-input-bg w-full text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                   placeholder="User's username"
                   minLength={2}
                   required={true}
@@ -84,7 +85,7 @@ export default function NewUserModal({ closeModal }) {
                 <input
                   name="password"
                   type="text"
-                  className="bg-zinc-900 placeholder:text-white/20 border-gray-500 text-white text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5"
+                  className="bg-theme-settings-input-bg w-full text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                   placeholder="User's initial password"
                   required={true}
                   autoComplete="off"
@@ -106,7 +107,7 @@ export default function NewUserModal({ closeModal }) {
                   required={true}
                   defaultValue={"default"}
                   onChange={(e) => setRole(e.target.value)}
-                  className="rounded-lg bg-zinc-900 px-4 py-2 text-sm text-white border-gray-500 focus:ring-blue-500 focus:border-blue-500 w-full"
+                  className="bg-theme-settings-input-bg w-full text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                 >
                   <option value="default">Default</option>
                   <option value="manager">Manager</option>
@@ -128,23 +129,23 @@ export default function NewUserModal({ closeModal }) {
                 login to get access.
               </p>
             </div>
-          </div>
-          <div className="flex w-full justify-between items-center p-6 space-x-2 border-t rounded-b border-gray-500/50">
-            <button
-              onClick={closeModal}
-              type="button"
-              className="px-4 py-2 rounded-lg text-white hover:bg-stone-900 transition-all duration-300"
-            >
-              Cancel
-            </button>
-            <button
-              type="submit"
-              className="transition-all duration-300 border border-slate-200 px-4 py-2 rounded-lg text-white text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 focus:ring-gray-800"
-            >
-              Add user
-            </button>
-          </div>
-        </form>
+            <div className="flex justify-between items-center mt-6 pt-6 border-t border-theme-modal-border">
+              <button
+                onClick={closeModal}
+                type="button"
+                className="transition-all duration-300 text-white hover:bg-zinc-700 px-4 py-2 rounded-lg text-sm"
+              >
+                Cancel
+              </button>
+              <button
+                type="submit"
+                className="transition-all duration-300 bg-white text-black hover:opacity-60 px-4 py-2 rounded-lg text-sm"
+              >
+                Add user
+              </button>
+            </div>
+          </form>
+        </div>
       </div>
     </div>
   );
diff --git a/frontend/src/pages/Admin/Users/UserRow/EditUserModal/index.jsx b/frontend/src/pages/Admin/Users/UserRow/EditUserModal/index.jsx
index b6c30a852..c75a270f0 100644
--- a/frontend/src/pages/Admin/Users/UserRow/EditUserModal/index.jsx
+++ b/frontend/src/pages/Admin/Users/UserRow/EditUserModal/index.jsx
@@ -32,24 +32,25 @@ export default function EditUserModal({ currentUser, user, closeModal }) {
   };
 
   return (
-    <div className="relative w-[500px] max-w-2xl max-h-full">
-      <div className="relative bg-main-gradient rounded-lg shadow">
-        <div className="flex items-start justify-between p-4 border-b rounded-t border-gray-500/50">
-          <h3 className="text-xl font-semibold text-white">
-            Edit {user.username}
-          </h3>
+    <div className="fixed inset-0 z-50 overflow-auto bg-black bg-opacity-50 flex items-center justify-center">
+      <div className="relative w-full max-w-2xl bg-theme-bg-secondary rounded-lg shadow border-2 border-theme-modal-border">
+        <div className="relative p-6 border-b rounded-t border-theme-modal-border">
+          <div className="w-full flex gap-x-2 items-center">
+            <h3 className="text-xl font-semibold text-white overflow-hidden overflow-ellipsis whitespace-nowrap">
+              Edit {user.username}
+            </h3>
+          </div>
           <button
             onClick={closeModal}
             type="button"
-            className="transition-all duration-300 text-gray-400 bg-transparent hover:border-white/60 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center bg-sidebar-button hover:bg-menu-item-selected-gradient hover:border-slate-100 hover:border-opacity-50 border-transparent border"
-            data-modal-hide="staticModal"
+            className="absolute top-4 right-4 transition-all duration-300 bg-transparent rounded-lg text-sm p-1 inline-flex items-center hover:bg-theme-modal-border hover:border-theme-modal-border hover:border-opacity-50 border-transparent border"
           >
-            <X className="text-gray-300 text-lg" />
+            <X size={24} weight="bold" className="text-white" />
           </button>
         </div>
-        <form onSubmit={handleUpdate}>
-          <div className="p-6 space-y-6 flex h-full w-full">
-            <div className="w-full flex flex-col gap-y-4">
+        <div className="p-6">
+          <form onSubmit={handleUpdate}>
+            <div className="space-y-4">
               <div>
                 <label
                   htmlFor="username"
@@ -60,7 +61,7 @@ export default function EditUserModal({ currentUser, user, closeModal }) {
                 <input
                   name="username"
                   type="text"
-                  className="bg-zinc-900 placeholder:text-white/20 border-gray-500 text-white text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5"
+                  className="bg-theme-settings-input-bg w-full text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                   placeholder="User's username"
                   defaultValue={user.username}
                   minLength={2}
@@ -82,7 +83,7 @@ export default function EditUserModal({ currentUser, user, closeModal }) {
                 <input
                   name="password"
                   type="text"
-                  className="bg-zinc-900 placeholder:text-white/20 border-gray-500 text-white text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5"
+                  className="bg-theme-settings-input-bg w-full text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                   placeholder={`${user.username}'s new password`}
                   autoComplete="off"
                   minLength={8}
@@ -103,7 +104,7 @@ export default function EditUserModal({ currentUser, user, closeModal }) {
                   required={true}
                   defaultValue={user.role}
                   onChange={(e) => setRole(e.target.value)}
-                  className="rounded-lg bg-zinc-900 px-4 py-2 text-sm text-white border-gray-500 focus:ring-blue-500 focus:border-blue-500 w-full"
+                  className="bg-theme-settings-input-bg w-full text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                 >
                   <option value="default">Default</option>
                   <option value="manager">Manager</option>
@@ -121,23 +122,23 @@ export default function EditUserModal({ currentUser, user, closeModal }) {
               />
               {error && <p className="text-red-400 text-sm">Error: {error}</p>}
             </div>
-          </div>
-          <div className="flex w-full justify-between items-center p-6 space-x-2 border-t rounded-b border-gray-500/50">
-            <button
-              onClick={closeModal}
-              type="button"
-              className="px-4 py-2 rounded-lg text-white hover:bg-stone-900 transition-all duration-300"
-            >
-              Cancel
-            </button>
-            <button
-              type="submit"
-              className="transition-all duration-300 border border-slate-200 px-4 py-2 rounded-lg text-white text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 focus:ring-gray-800"
-            >
-              Update user
-            </button>
-          </div>
-        </form>
+            <div className="flex justify-between items-center mt-6 pt-6 border-t border-theme-modal-border">
+              <button
+                onClick={closeModal}
+                type="button"
+                className="transition-all duration-300 text-white hover:bg-zinc-700 px-4 py-2 rounded-lg text-sm"
+              >
+                Cancel
+              </button>
+              <button
+                type="submit"
+                className="transition-all duration-300 bg-white text-black hover:opacity-60 px-4 py-2 rounded-lg text-sm"
+              >
+                Update user
+              </button>
+            </div>
+          </form>
+        </div>
       </div>
     </div>
   );
diff --git a/frontend/src/pages/Admin/Users/UserRow/index.jsx b/frontend/src/pages/Admin/Users/UserRow/index.jsx
index 720ae2dcc..2a115f491 100644
--- a/frontend/src/pages/Admin/Users/UserRow/index.jsx
+++ b/frontend/src/pages/Admin/Users/UserRow/index.jsx
@@ -68,7 +68,7 @@ export default function UserRow({ currUser, user }) {
           {canModify && (
             <button
               onClick={openModal}
-              className="text-sm font-medium text-white/80 rounded-lg hover:text-white px-2 py-1 hover:bg-white hover:bg-opacity-10"
+              className="text-sm font-medium text-white/80 light:text-black/80 rounded-lg hover:text-white hover:light:text-gray-500 px-2 py-1 hover:bg-white hover:bg-opacity-10"
             >
               Edit
             </button>
@@ -77,13 +77,13 @@ export default function UserRow({ currUser, user }) {
             <>
               <button
                 onClick={handleSuspend}
-                className="text-sm font-medium text-white/80 hover:text-orange-300 rounded-lg px-2 py-1 hover:bg-white hover:bg-opacity-10"
+                className="text-sm font-medium text-white/80 light:text-black/80 hover:light:text-orange-500 hover:text-orange-300 rounded-lg px-2 py-1 hover:bg-white hover:light:bg-orange-50 hover:bg-opacity-10"
               >
                 {suspended ? "Unsuspend" : "Suspend"}
               </button>
               <button
                 onClick={handleDelete}
-                className="text-sm font-medium text-white/80 hover:text-red-300 px-2 py-1 rounded-lg hover:bg-red-800 hover:bg-opacity-20"
+                className="text-sm font-medium text-white/80 light:text-black/80 hover:light:text-red-500 hover:text-red-300 rounded-lg px-2 py-1 hover:bg-white hover:light:bg-red-50 hover:bg-opacity-10"
               >
                 Delete
               </button>
diff --git a/frontend/src/pages/Admin/Users/index.jsx b/frontend/src/pages/Admin/Users/index.jsx
index ed9f8b3f1..d72c4e862 100644
--- a/frontend/src/pages/Admin/Users/index.jsx
+++ b/frontend/src/pages/Admin/Users/index.jsx
@@ -16,29 +16,36 @@ export default function AdminUsers() {
   const { isOpen, openModal, closeModal } = useModal();
 
   return (
-    <div className="w-screen h-screen overflow-hidden bg-sidebar flex">
+    <div className="w-screen h-screen overflow-hidden bg-theme-bg-container flex">
       <Sidebar />
       <div
         style={{ height: isMobile ? "100%" : "calc(100% - 32px)" }}
-        className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-main-gradient w-full h-full overflow-y-scroll"
+        className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-theme-bg-secondary w-full h-full overflow-y-scroll p-4 md:p-0"
       >
         <div className="flex flex-col w-full px-1 md:pl-6 md:pr-[50px] md:py-6 py-16">
-          <div className="w-full flex flex-col gap-y-1 pb-6 border-white border-b-2 border-opacity-10">
+          <div className="w-full flex flex-col gap-y-1 pb-6 border-white/10 border-b-2">
             <div className="items-center flex gap-x-4">
-              <p className="text-lg leading-6 font-bold text-white">Users</p>
+              <p className="text-lg leading-6 font-bold text-theme-text-primary">
+                Users
+              </p>
             </div>
-            <p className="text-xs leading-[18px] font-base text-white text-opacity-60">
+            <p className="text-xs leading-[18px] font-base text-theme-text-secondary">
               These are all the accounts which have an account on this instance.
               Removing an account will instantly remove their access to this
               instance.
             </p>
           </div>
           <div className="w-full justify-end flex">
-            <CTAButton onClick={openModal} className="mt-3 mr-0 -mb-6 z-10">
+            <CTAButton
+              onClick={openModal}
+              className="mt-3 mr-0 mb-4 md:-mb-6 z-10"
+            >
               <UserPlus className="h-4 w-4" weight="bold" /> Add user
             </CTAButton>
           </div>
-          <UsersContainer />
+          <div className="overflow-x-auto">
+            <UsersContainer />
+          </div>
         </div>
         <ModalWrapper isOpen={isOpen}>
           <NewUserModal closeModal={closeModal} />
@@ -67,18 +74,18 @@ function UsersContainer() {
       <Skeleton.default
         height="80vh"
         width="100%"
-        highlightColor="#3D4147"
-        baseColor="#2C2F35"
+        highlightColor="var(--theme-bg-primary)"
+        baseColor="var(--theme-bg-secondary)"
         count={1}
-        className="w-full p-4 rounded-b-2xl rounded-tr-2xl rounded-tl-sm mt-6"
+        className="w-full p-4 rounded-b-2xl rounded-tr-2xl rounded-tl-sm mt-8"
         containerClassName="flex w-full"
       />
     );
   }
 
   return (
-    <table className="w-full text-sm text-left rounded-lg">
-      <thead className="text-white text-opacity-80 text-xs leading-[18px] font-bold uppercase border-white border-b border-opacity-60">
+    <table className="w-full text-sm text-left rounded-lg min-w-[640px]">
+      <thead className="text-theme-text-secondary text-xs leading-[18px] font-bold uppercase border-white/10 border-b">
         <tr>
           <th scope="col" className="px-6 py-3 rounded-tl-lg">
             Username
@@ -122,11 +129,11 @@ const ROLE_HINT = {
 export function RoleHintDisplay({ role }) {
   return (
     <div className="flex flex-col gap-y-1 py-1 pb-4">
-      <p className="text-sm font-medium text-white">Permissions</p>
+      <p className="text-sm font-medium text-theme-text-primary">Permissions</p>
       <ul className="flex flex-col gap-y-1 list-disc px-4">
         {ROLE_HINT[role ?? "default"].map((hints, i) => {
           return (
-            <li key={i} className="text-xs text-white/60">
+            <li key={i} className="text-xs text-theme-text-secondary">
               {hints}
             </li>
           );
@@ -182,7 +189,7 @@ export function MessageLimitInput({ enabled, limit, updateState, role }) {
               }}
               value={limit}
               min={1}
-              className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:border-white block w-60 p-2.5"
+              className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
             />
           </div>
         </div>
diff --git a/frontend/src/pages/Admin/Workspaces/NewWorkspaceModal/index.jsx b/frontend/src/pages/Admin/Workspaces/NewWorkspaceModal/index.jsx
index 53f5c98d7..ea272c6c6 100644
--- a/frontend/src/pages/Admin/Workspaces/NewWorkspaceModal/index.jsx
+++ b/frontend/src/pages/Admin/Workspaces/NewWorkspaceModal/index.jsx
@@ -16,24 +16,25 @@ export default function NewWorkspaceModal({ closeModal }) {
   };
 
   return (
-    <div className="relative w-[500px] max-w-2xl max-h-full">
-      <div className="relative bg-main-gradient rounded-lg shadow">
-        <div className="flex items-start justify-between p-4 border-b rounded-t border-gray-600">
-          <h3 className="text-xl font-semibold text-white">
-            Create new workspace
-          </h3>
+    <div className="fixed inset-0 z-50 overflow-auto bg-black bg-opacity-50 flex items-center justify-center">
+      <div className="relative w-full max-w-2xl bg-theme-bg-secondary rounded-lg shadow border-2 border-theme-modal-border">
+        <div className="relative p-6 border-b rounded-t border-theme-modal-border">
+          <div className="w-full flex gap-x-2 items-center">
+            <h3 className="text-xl font-semibold text-white overflow-hidden overflow-ellipsis whitespace-nowrap">
+              Create new workspace
+            </h3>
+          </div>
           <button
             onClick={closeModal}
             type="button"
-            className="transition-all duration-300 text-gray-400 bg-transparent hover:border-white/60 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center bg-sidebar-button hover:bg-menu-item-selected-gradient hover:border-slate-100 hover:border-opacity-50 border-transparent border"
-            data-modal-hide="staticModal"
+            className="absolute top-4 right-4 transition-all duration-300 bg-transparent rounded-lg text-sm p-1 inline-flex items-center hover:bg-theme-modal-border hover:border-theme-modal-border hover:border-opacity-50 border-transparent border"
           >
-            <X className="text-gray-300 text-lg" />
+            <X size={24} weight="bold" className="text-white" />
           </button>
         </div>
-        <form onSubmit={handleCreate}>
-          <div className="p-6 space-y-6 flex h-full w-full">
-            <div className="w-full flex flex-col gap-y-4">
+        <div className="p-6">
+          <form onSubmit={handleCreate}>
+            <div className="space-y-4">
               <div>
                 <label
                   htmlFor="name"
@@ -44,7 +45,7 @@ export default function NewWorkspaceModal({ closeModal }) {
                 <input
                   name="name"
                   type="text"
-                  className="bg-zinc-900 placeholder:text-white/20 border-gray-500 text-white text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5"
+                  className="bg-theme-settings-input-bg w-full text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                   placeholder="My workspace"
                   minLength={4}
                   required={true}
@@ -57,23 +58,23 @@ export default function NewWorkspaceModal({ closeModal }) {
                 it. You can add users after it has been created.
               </p>
             </div>
-          </div>
-          <div className="flex w-full justify-between items-center p-6 space-x-2 border-t rounded-b border-gray-600">
-            <button
-              onClick={closeModal}
-              type="button"
-              className="px-4 py-2 rounded-lg text-white hover:bg-stone-900 transition-all duration-300"
-            >
-              Cancel
-            </button>
-            <button
-              type="submit"
-              className="transition-all duration-300 border border-slate-200 px-4 py-2 rounded-lg text-white text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 focus:ring-gray-800"
-            >
-              Create workspace
-            </button>
-          </div>
-        </form>
+            <div className="flex justify-between items-center mt-6 pt-6 border-t border-theme-modal-border">
+              <button
+                onClick={closeModal}
+                type="button"
+                className="transition-all duration-300 text-white hover:bg-zinc-700 px-4 py-2 rounded-lg text-sm"
+              >
+                Cancel
+              </button>
+              <button
+                type="submit"
+                className="transition-all duration-300 bg-white text-black hover:opacity-60 px-4 py-2 rounded-lg text-sm"
+              >
+                Create workspace
+              </button>
+            </div>
+          </form>
+        </div>
       </div>
     </div>
   );
diff --git a/frontend/src/pages/Admin/Workspaces/WorkspaceRow/index.jsx b/frontend/src/pages/Admin/Workspaces/WorkspaceRow/index.jsx
index a54e027b8..e0e8f4254 100644
--- a/frontend/src/pages/Admin/Workspaces/WorkspaceRow/index.jsx
+++ b/frontend/src/pages/Admin/Workspaces/WorkspaceRow/index.jsx
@@ -47,7 +47,7 @@ export default function WorkspaceRow({ workspace, users }) {
         <td className="px-6 py-4 flex items-center gap-x-6">
           <button
             onClick={handleDelete}
-            className="font-medium text-red-300 px-2 py-1 rounded-lg hover:bg-red-800 hover:bg-opacity-20"
+            className="font-medium px-2 py-1 rounded-lg text-theme-text-primary hover:text-red-500"
           >
             <Trash className="h-5 w-5" />
           </button>
diff --git a/frontend/src/pages/Admin/Workspaces/index.jsx b/frontend/src/pages/Admin/Workspaces/index.jsx
index 5a7b128d2..0170efdd7 100644
--- a/frontend/src/pages/Admin/Workspaces/index.jsx
+++ b/frontend/src/pages/Admin/Workspaces/index.jsx
@@ -15,30 +15,35 @@ export default function AdminWorkspaces() {
   const { isOpen, openModal, closeModal } = useModal();
 
   return (
-    <div className="w-screen h-screen overflow-hidden bg-sidebar flex">
+    <div className="w-screen h-screen overflow-hidden bg-theme-bg-container flex">
       <Sidebar />
       <div
         style={{ height: isMobile ? "100%" : "calc(100% - 32px)" }}
-        className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-main-gradient w-full h-full overflow-y-scroll"
+        className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-theme-bg-secondary w-full h-full overflow-y-scroll p-4 md:p-0"
       >
         <div className="flex flex-col w-full px-1 md:pl-6 md:pr-[50px] md:py-6 py-16">
-          <div className="w-full flex flex-col gap-y-1 pb-6 border-white border-b-2 border-opacity-10">
+          <div className="w-full flex flex-col gap-y-1 pb-6 border-white/10 border-b-2">
             <div className="items-center flex gap-x-4">
-              <p className="text-lg leading-6 font-bold text-white">
+              <p className="text-lg leading-6 font-bold text-theme-text-primary">
                 Instance Workspaces
               </p>
             </div>
-            <p className="text-xs leading-[18px] font-base text-white text-opacity-60">
+            <p className="text-xs leading-[18px] font-base text-theme-text-secondary">
               These are all the workspaces that exist on this instance. Removing
-              a workspace will delete all of it's associated chats and settings.
+              a workspace will delete all of its associated chats and settings.
             </p>
           </div>
           <div className="w-full justify-end flex">
-            <CTAButton onClick={openModal} className="mt-3 mr-0 -mb-14 z-10">
+            <CTAButton
+              onClick={openModal}
+              className="mt-3 mr-0 mb-4 md:-mb-14 z-10"
+            >
               <BookOpen className="h-4 w-4" weight="bold" /> New Workspace
             </CTAButton>
           </div>
-          <WorkspacesContainer />
+          <div className="overflow-x-auto">
+            <WorkspacesContainer />
+          </div>
         </div>
         <ModalWrapper isOpen={isOpen}>
           <NewWorkspaceModal closeModal={closeModal} />
@@ -69,8 +74,8 @@ function WorkspacesContainer() {
       <Skeleton.default
         height="80vh"
         width="100%"
-        highlightColor="#3D4147"
-        baseColor="#2C2F35"
+        highlightColor="var(--theme-bg-primary)"
+        baseColor="var(--theme-bg-secondary)"
         count={1}
         className="w-full p-4 rounded-b-2xl rounded-tr-2xl rounded-tl-sm mt-6"
         containerClassName="flex w-full"
@@ -79,8 +84,8 @@ function WorkspacesContainer() {
   }
 
   return (
-    <table className="w-full text-sm text-left rounded-lg mt-6">
-      <thead className="text-white text-opacity-80 text-xs leading-[18px] font-bold uppercase border-white border-b border-opacity-60">
+    <table className="w-full text-sm text-left rounded-lg mt-6 min-w-[640px]">
+      <thead className="text-theme-text-secondary text-xs leading-[18px] font-bold uppercase border-white/10 border-b">
         <tr>
           <th scope="col" className="px-6 py-3 rounded-tl-lg">
             Name
diff --git a/frontend/src/pages/FineTuning/Steps/Confirmation/index.jsx b/frontend/src/pages/FineTuning/Steps/Confirmation/index.jsx
index 8e0253e8d..51f08e621 100644
--- a/frontend/src/pages/FineTuning/Steps/Confirmation/index.jsx
+++ b/frontend/src/pages/FineTuning/Steps/Confirmation/index.jsx
@@ -61,12 +61,12 @@ export default function Confirmation({ settings, setSettings, setStep }) {
 
   return (
     <div className="flex-[2] flex flex-col gap-y-[18px] mt-10">
-      <div className="bg-[#303237] text-white rounded-xl flex-1 p-6">
+      <div className="bg-theme-bg-secondary rounded-xl flex-1 p-6">
         <div className="w-full flex flex-col gap-y-3 max-w-[700px]">
-          <h2 className="text-base text-white font-semibold">
+          <h2 className="text-base text-theme-text-primary font-semibold">
             Confirm & Submit
           </h2>
-          <p className="text-white/80 text-sm">
+          <p className="text-theme-text-secondary text-sm">
             Below are your fine-tuning order details. If you have any questions
             before or after ordering your fine-tune you can checkout the{" "}
             <a
@@ -86,27 +86,33 @@ export default function Confirmation({ settings, setSettings, setStep }) {
             </a>
             .
           </p>
-          <div className="p-4 bg-zinc-900 text-white flex flex-col gap-y-2 rounded-lg mt-4">
+          <div className="p-4 bg-theme-bg-container text-theme-text-primary flex flex-col gap-y-2 rounded-lg mt-4">
             <div className="flex flex-col gap-y-3 text-sm">
               <div className="flex items-start gap-x-1">
                 <p className="w-1/3">Contact e-mail:</p>
-                <p className="text-white/80 w-2/3">{settings.email}</p>
+                <p className="text-theme-text-secondary w-2/3">
+                  {settings.email}
+                </p>
               </div>
               <div className="flex items-start gap-x-1">
                 <p className="w-1/3">Base LLM:</p>
-                <p className="text-white/80 w-2/3">{settings.baseModel}</p>
+                <p className="text-theme-text-secondary w-2/3">
+                  {settings.baseModel}
+                </p>
               </div>
               <div className="flex items-start gap-x-1">
                 <p className="w-1/3">Output model name:</p>
-                <p className="text-white/80 w-2/3">"{settings.modelName}"</p>
+                <p className="text-theme-text-secondary w-2/3">
+                  "{settings.modelName}"
+                </p>
               </div>
               <div className="flex items-start gap-x-1">
                 <p className="w-1/3">Training on workspaces:</p>
-                <div className="text-white/80 w-2/3 flex flex-wrap gap-1">
-                  {settings.trainingData.slugs.map((slug, i) => (
+                <div className="text-theme-text-secondary w-2/3 flex flex-wrap gap-1">
+                  {settings.trainingData.slugs.map((slug) => (
                     <span
                       key={slug}
-                      className={`rounded-full bg-white/10 px-2 py-0.5 h-[20px] text-xs font-medium text-white shadow-sm`}
+                      className="rounded-full bg-theme-bg-secondary px-2 py-0.5 h-[20px] text-xs font-medium text-theme-text-primary shadow-sm"
                     >
                       {getWorkspaceName(slug)}
                     </span>
@@ -115,7 +121,7 @@ export default function Confirmation({ settings, setSettings, setStep }) {
               </div>
               <div className="flex items-start gap-x-1">
                 <p className="w-1/3">Training data:</p>
-                <p className="text-white/80 w-2/3">
+                <p className="text-theme-text-secondary w-2/3">
                   {settings.trainingData.feedback === true
                     ? "Training on positive-feedback chats only"
                     : "Training on all chats"}
@@ -126,39 +132,53 @@ export default function Confirmation({ settings, setSettings, setStep }) {
             <div className="mt-4">
               <ul className="flex flex-col gap-y-1 text-sm">
                 <li className="flex items-center gap-x-2">
-                  <Check className="text-white" size={12} weight="bold" />
-                  <p className="text-white/80">
+                  <Check
+                    className="text-theme-text-primary"
+                    size={12}
+                    weight="bold"
+                  />
+                  <p className="text-theme-text-secondary">
                     Agreed to Terms and Conditions
                   </p>
                 </li>
                 <li className="flex items-center gap-x-2">
-                  <Check className="text-white" size={12} weight="bold" />
-                  <p className="text-white/80">
+                  <Check
+                    className="text-theme-text-primary"
+                    size={12}
+                    weight="bold"
+                  />
+                  <p className="text-theme-text-secondary">
                     Understand privacy & data handling
                   </p>
                 </li>
                 <li className="flex items-center gap-x-2">
-                  <Check className="text-white" size={12} weight="bold" />
-                  <p className="text-white/80">Agreed to Fulfillment terms</p>
+                  <Check
+                    className="text-theme-text-primary"
+                    size={12}
+                    weight="bold"
+                  />
+                  <p className="text-theme-text-secondary">
+                    Agreed to Fulfillment terms
+                  </p>
                 </li>
               </ul>
             </div>
 
-            <div className="mt-4 border-white/40 pt-2">
+            <div className="mt-4 border-theme-border pt-2">
               <div className="flex items-center gap-x-1 text-lg mb-0">
-                <p className="">Total one-time cost:</p>
-                <p className="text-white/80">
+                <p className="text-theme-text-primary">Total one-time cost:</p>
+                <p className="text-theme-text-secondary">
                   {dollarFormat(settings.tuningInfo.pricing.usd)}
                   <sup>*</sup>
                 </p>
               </div>
-              <p className="m-0 p-0 text-xs text-white/60">
+              <p className="m-0 p-0 text-xs text-theme-text-tertiary">
                 <sup>*</sup> price does not include any coupons, incentives, or
                 discounts you can apply at checkout.
               </p>
             </div>
           </div>
-          <p className="text-xs text-white/80 mt-4">
+          <p className="text-xs text-theme-text-secondary mt-4">
             Once you proceed to checkout, if you do not complete this purchase
             your data will be deleted from our servers within 1 hour of
             abandonment of the creation of the checkout in accordance to our
diff --git a/frontend/src/pages/FineTuning/Steps/DataUpload/index.jsx b/frontend/src/pages/FineTuning/Steps/DataUpload/index.jsx
index 6a48d5911..aeb7d0890 100644
--- a/frontend/src/pages/FineTuning/Steps/DataUpload/index.jsx
+++ b/frontend/src/pages/FineTuning/Steps/DataUpload/index.jsx
@@ -47,12 +47,12 @@ export default function DataUpload({ setSettings, setStep }) {
 
   return (
     <div className="flex-[2] flex flex-col gap-y-[18px] mt-10">
-      <div className="bg-[#303237] text-white rounded-xl flex-1 p-6">
+      <div className="bg-theme-bg-secondary rounded-xl flex-1 p-6">
         <div className="w-full flex flex-col gap-y-3 max-w-[700px]">
-          <h2 className="text-base text-white font-semibold">
+          <h2 className="text-base text-theme-text-primary font-semibold">
             Select your training dataset
           </h2>
-          <p className="text-white/80 text-sm">
+          <p className="text-theme-text-secondary text-sm">
             This is the data your model will be trained and tuned on. This is a
             critical step and you should always train on the exact information
             you want the model to inherit. By default, AnythingLLM will use all
@@ -63,10 +63,10 @@ export default function DataUpload({ setSettings, setStep }) {
 
           <form onSubmit={handleSubmit} className="flex flex-col gap-y-6 mt-4">
             <div className="flex flex-col">
-              <label className="text-white text-sm font-semibold block mb-3">
+              <label className="text-theme-text-primary text-sm font-semibold block mb-3">
                 Only use positive responses
               </label>
-              <p className="text-xs font-normal text-white/80 mb-2">
+              <p className="text-xs font-normal text-theme-text-secondary mb-2">
                 Enabling this toggle will filter your dataset to only use
                 "positive" responses that were marked during chatting.
               </p>
@@ -86,10 +86,10 @@ export default function DataUpload({ setSettings, setStep }) {
             </div>
 
             <div className="flex flex-col">
-              <label className="text-white text-sm font-semibold block mb-3">
+              <label className="text-theme-text-primary text-sm font-semibold block mb-3">
                 Selected Workspaces
               </label>
-              <p className="text-xs font-normal text-white/80 mb-2">
+              <p className="text-xs font-normal text-theme-text-secondary mb-2">
                 Your training data will be limited to these workspaces.
               </p>
               <WorkspaceSelector
@@ -156,8 +156,8 @@ function WorkspaceSelector({
 
   return (
     <div className="flex flex-col gap-y-2">
-      <div className="min-w-[150px] max-w-[300px] h-[32px] p-[10px] rounded-lg flex items-center bg-dark-highlight mt-1">
-        <MagnifyingGlass size={16} className="text-white" />
+      <div className="min-w-[150px] max-w-[300px] h-[32px] p-[10px] rounded-lg flex items-center bg-theme-settings-input-bg mt-1">
+        <MagnifyingGlass size={16} className="text-theme-text-primary" />
         <input
           value={query}
           onChange={(e) => setQuery(e.target.value)}
@@ -168,7 +168,7 @@ function WorkspaceSelector({
             }, 500)
           }
           placeholder="Enter a workspace name"
-          className="bg-transparent p-1 px-2 appearance-none outline-none h-full w-full text-white text-xs placeholder:`text-white/50`"
+          className="bg-transparent p-1 px-2 appearance-none outline-none h-full w-full text-theme-text-primary text-xs placeholder:text-theme-text-secondary/50"
         />
       </div>
       <div className="flex flex-col items-center -ml-2">
@@ -180,7 +180,7 @@ function WorkspaceSelector({
                   return (
                     <div
                       key={workspace.slug}
-                      className="flex items-center justify-between rounded-full h-[20px] bg-white/10 px-2 py-1 text-xs font-medium text-white shadow-sm"
+                      className="flex items-center justify-between rounded-full h-[20px] bg-theme-bg-container px-2 py-1 text-xs font-medium text-theme-text-primary shadow-sm light:border light:bg-theme-bg-secondary"
                     >
                       <span className="truncate mr-1">{workspace.name}</span>
                       <button
@@ -220,8 +220,8 @@ function WorkspaceSuggestions({
 }) {
   if (availableWorkspaces.length === 0) {
     return (
-      <div className="w-full mt-[2px] bg-zinc-900 top-[45px] h-40 rounded-lg p-2 text-sm">
-        <p className="text-center text-white/40">
+      <div className="w-full mt-[2px] bg-theme-bg-container top-[45px] h-40 rounded-lg p-2 text-sm">
+        <p className="text-center text-theme-text-secondary/40">
           no workspaces available to select.
         </p>
       </div>
@@ -238,14 +238,14 @@ function WorkspaceSuggestions({
     : availableWorkspaces;
 
   return (
-    <div className="w-full mt-[2px] bg-zinc-900 top-[45px] h-40 rounded-lg p-2 text-sm flex flex-col gap-y-1 justify-start overflow-y-scroll">
+    <div className="w-full mt-[2px] bg-theme-bg-container top-[45px] h-40 rounded-lg p-2 text-sm flex flex-col gap-y-1 justify-start overflow-y-scroll">
       {filteredWorkspace.map((workspace) => {
         return (
           <button
             key={workspace.slug}
             onClick={() => addWorkspace(workspace)}
             type="button"
-            className="text-left text-white hover:bg-white/10 rounded-lg p-1"
+            className="text-left text-theme-text-primary hover:bg-theme-bg-secondary rounded-lg p-1"
           >
             {workspace.name}
           </button>
@@ -270,23 +270,19 @@ function DatasetSummary({ workspaces = [], feedback = null }) {
   }, [workspaces, feedback]);
 
   return (
-    <div className="bg-zinc-900 text-white/80 p-4 rounded-lg text-sm">
+    <div className="bg-theme-bg-container text-theme-text-secondary p-4 rounded-lg text-sm">
       <p>Training dataset size: {stats.count ?? "Unknown"}</p>
       {stats.count < stats.recommendedMin ? (
         <div className="flex items-center gap-x-1 text-red-500 text-sm p-2 rounded-lg bg-red-500/20 w-fit my-2">
-          <Warning size={14} />
+          <Warning size={12} weight="bold" />
           <p>
-            Your dataset is below the recommended minimum of{" "}
-            {stats.recommendedMin}! You may see no impact from a fine-tune.
+            Dataset size is below recommended minimum ({stats.recommendedMin})
           </p>
         </div>
       ) : (
         <div className="flex items-center gap-x-1 text-green-500 text-sm p-2 rounded-lg bg-green-500/20 w-fit my-2">
-          <CheckCircle size={14} />
-          <p>
-            Your dataset is large enough that you should see good results from a
-            fine-tune.
-          </p>
+          <CheckCircle size={12} weight="bold" />
+          <p>Dataset size is sufficient</p>
         </div>
       )}
     </div>
diff --git a/frontend/src/pages/FineTuning/Steps/FulfillmentPolicy/index.jsx b/frontend/src/pages/FineTuning/Steps/FulfillmentPolicy/index.jsx
index e66c5672b..8fbd9c6cc 100644
--- a/frontend/src/pages/FineTuning/Steps/FulfillmentPolicy/index.jsx
+++ b/frontend/src/pages/FineTuning/Steps/FulfillmentPolicy/index.jsx
@@ -11,29 +11,31 @@ export default function Fulfillment({ setSettings, setStep }) {
 
   return (
     <div className="flex-[2] flex flex-col gap-y-[18px] mt-10">
-      <div className="bg-[#303237] text-white rounded-xl flex-1 p-6">
+      <div className="bg-theme-bg-secondary rounded-xl flex-1 p-6">
         <div className="w-full flex flex-col gap-y-3 max-w-[700px]">
-          <h2 className="text-base text-white font-semibold">
+          <h2 className="text-base text-theme-text-primary font-semibold">
             Fulfillment Policy
           </h2>
-          <p className="text-white/80 text-sm">
+          <p className="text-theme-text-secondary text-sm">
             Fulfillment of a fine-tune model is straight-forward. We do not host
             your model. We provide you a download link to run the model in a
             standard format where ever you run local LLMs
           </p>
-          <div className="flex flex-col gap-y-2 text-white/80 text-xs font-semibold rounded-lg p-4 h-[60vh] overflow-y-auto bg-dark-text mt-2">
-            <div className="text-xs text-white">
-              <h1>Fulfillment Terms</h1>
-              <p>Last updated: July 15, 2024</p>
+          <div className="flex flex-col gap-y-2 text-theme-text-secondary text-xs font-semibold rounded-lg p-4 h-[60vh] overflow-y-auto bg-theme-bg-container mt-2">
+            <div className="text-xs">
+              <h1 className="text-theme-text-primary">Fulfillment Terms</h1>
+              <p className="text-theme-text-secondary">
+                Last updated: July 15, 2024
+              </p>
             </div>
-            <p className="text-white/80">
+            <p className="text-theme-text-secondary">
               These fulfillment terms outline the agreement between Mintplex
               Labs Inc. ("Company," "we," "us," or "our") and the customer
               regarding the creation and delivery of fine-tuned models.
             </p>
 
-            <h2 className="text-white mt-4">Delivery of Model</h2>
-            <p className="text-white/80">
+            <h2 className="text-theme-text-primary mt-4">Delivery of Model</h2>
+            <p className="text-theme-text-secondary">
               Upon completion of a fine-tuning job, we will deliver a download
               link to a .gguf model file suitable for LLM text inferencing. The
               customer acknowledges that this exchange is strictly transactional
@@ -41,15 +43,17 @@ export default function Fulfillment({ setSettings, setStep }) {
               is considered concluded and will be ineligible for a refund.
             </p>
 
-            <h2 className="text-white mt-4">Support</h2>
-            <p className="text-white/80">
+            <h2 className="text-theme-text-primary mt-4">Support</h2>
+            <p className="text-theme-text-secondary">
               Please note that the delivery of the model does not include any
               dedicated support. Customers are encouraged to refer to available
               documentation and resources for guidance on using the model.
             </p>
 
-            <h2 className="text-white mt-4">Requesting Download Links</h2>
-            <p className="text-white/80">
+            <h2 className="text-theme-text-primary mt-4">
+              Requesting Download Links
+            </h2>
+            <p className="text-theme-text-secondary">
               Customers may request refreshed download links from
               my.mintplexlabs.com as long as the model is retained in our cloud
               storage. We will retain a model in our storage for a maximum of 3
@@ -57,8 +61,10 @@ export default function Fulfillment({ setSettings, setStep }) {
               links are valid for 24 hours.
             </p>
 
-            <h2 className="text-white mt-4">Cancellation and Refunds</h2>
-            <p className="text-white/80">
+            <h2 className="text-theme-text-primary mt-4">
+              Cancellation and Refunds
+            </h2>
+            <p className="text-theme-text-secondary">
               Mintplex Labs Inc. reserves the right to cancel any fine-tuning
               job at our discretion. In the event of a cancellation, a refund
               may be issued. Additionally, we reserve the right to deny a
@@ -66,22 +72,22 @@ export default function Fulfillment({ setSettings, setStep }) {
               cause or notice to the Customer.
             </p>
 
-            <h2 className="text-white mt-4">No Guarantees</h2>
-            <p className="text-white/80">
+            <h2 className="text-theme-text-primary mt-4">No Guarantees</h2>
+            <p className="text-theme-text-secondary">
               Mintplex Labs Inc. makes <strong>NO GUARANTEES</strong> regarding
               the resulting model's output, functionality, speed, or
               compatibility with your tools, infrastructure and devices. Refund
               requests of this nature are not eligible for refunds.
             </p>
-            <p className="text-white/80">
+            <p className="text-theme-text-secondary">
               Models are delivered and accepted in "As-Is" condition. All
               delivered model and output files are deemed final and
               non-refundable for any reason after training is complete and a
               model has been generated.
             </p>
 
-            <h2 className="text-white mt-4">Payment Terms</h2>
-            <p className="text-white/80">
+            <h2 className="text-theme-text-primary mt-4">Payment Terms</h2>
+            <p className="text-theme-text-secondary">
               All payments are required prior to the commencement of the
               fine-tuning process. Customers are responsible for ensuring that
               valid payment information is provided. Checkout sessions not
@@ -89,18 +95,18 @@ export default function Fulfillment({ setSettings, setStep }) {
               abandoned and will be deleted from our system.
             </p>
 
-            <h2 className="text-white mt-4">
+            <h2 className="text-theme-text-primary">
               Denial of Service for Payment Reasons
             </h2>
-            <p className="text-white/80">
+            <p className="text-theme-text-secondary">
               Mintplex Labs Inc. reserves the right to deny service to any
               customer with an outstanding balance or invalid payment
               information. If any discrepancies arise regarding payment or
               usage, we may suspend services until the matter is resolved.
             </p>
 
-            <h2 className="text-white mt-4">Contact</h2>
-            <p className="text-white/80">
+            <h2 className="text-theme-text-primary">Contact</h2>
+            <p className="text-theme-text-secondary">
               For any questions related to payment or fulfillment of services,
               please contact us at{" "}
               <a
diff --git a/frontend/src/pages/FineTuning/Steps/Introduction/index.jsx b/frontend/src/pages/FineTuning/Steps/Introduction/index.jsx
index c60e12d64..1ed2e7b8b 100644
--- a/frontend/src/pages/FineTuning/Steps/Introduction/index.jsx
+++ b/frontend/src/pages/FineTuning/Steps/Introduction/index.jsx
@@ -12,12 +12,12 @@ export default function Introduction({ setSettings, setStep }) {
 
   return (
     <div className="flex-[2] flex flex-col gap-y-[18px] mt-10">
-      <div className="bg-[#303237] text-white rounded-xl flex-1 p-6">
+      <div className="bg-theme-bg-secondary rounded-xl flex-1 p-6">
         <div className="w-full flex flex-col gap-y-2 max-w-[700px]">
-          <h2 className="text-base text-white font-semibold">
+          <h2 className="text-base text-theme-text-primary font-semibold">
             What is a "Fine-Tuned" model?
           </h2>
-          <div className="flex flex-col gap-y-[25px] text-white/80 text-sm">
+          <div className="flex flex-col gap-y-[25px] text-theme-text-secondary text-sm">
             <p>
               Fine-tuned models are basically "customized"
               Language-Learning-Models (LLMs). These can be based on popular
@@ -37,8 +37,8 @@ export default function Introduction({ setSettings, setStep }) {
             </p>
           </div>
 
-          <div className="flex flex-col gap-y-2 text-white/80 text-sm mt-4">
-            <h3 className="text-base text-white font-semibold">
+          <div className="flex flex-col gap-y-2 text-theme-text-secondary text-sm mt-4">
+            <h3 className="text-base text-theme-text-primary font-semibold">
               When should I get a fine-tuned model?
             </h3>
             <p>
@@ -47,28 +47,44 @@ export default function Introduction({ setSettings, setStep }) {
             </p>
             <ul className="flex flex-col gap-y-1">
               <li className="flex items-center gap-x-2">
-                <Check className="text-white" size={12} weight="bold" /> Setting
-                the style, tone, format, or other qualitative aspects without
-                prompting
+                <Check
+                  className="text-theme-text-primary"
+                  size={12}
+                  weight="bold"
+                />{" "}
+                Setting the style, tone, format, or other qualitative aspects
+                without prompting
               </li>
               <li className="flex items-center gap-x-2">
-                <Check className="text-white" size={12} weight="bold" />{" "}
+                <Check
+                  className="text-theme-text-primary"
+                  size={12}
+                  weight="bold"
+                />{" "}
                 Improving reliability at producing a desired output
               </li>
               <li className="flex items-center gap-x-2">
-                <Check className="text-white" size={12} weight="bold" />{" "}
+                <Check
+                  className="text-theme-text-primary"
+                  size={12}
+                  weight="bold"
+                />{" "}
                 Correcting failures to follow complex prompts, citations, or
                 lack of background knowledge
               </li>
               <li className="flex items-center gap-x-2">
-                <Check className="text-white" size={12} weight="bold" /> You
-                want to run this model privately or offline
+                <Check
+                  className="text-theme-text-primary"
+                  size={12}
+                  weight="bold"
+                />{" "}
+                You want to run this model privately or offline
               </li>
             </ul>
           </div>
 
-          <div className="flex flex-col gap-y-2 text-white/80 text-sm mt-4">
-            <h3 className="text-base text-white font-semibold">
+          <div className="flex flex-col gap-y-2 text-theme-text-secondary text-sm mt-4">
+            <h3 className="text-base text-theme-text-primary font-semibold">
               What are fine-tunes bad for?
             </h3>
             <p>
@@ -78,17 +94,26 @@ export default function Introduction({ setSettings, setStep }) {
             </p>
             <ul>
               <li className="flex items-center gap-x-1">
-                <X className="text-white" size={12} weight="bold" /> You need
-                perfect recall of some piece of literature or reference document
+                <X
+                  className="text-theme-text-primary"
+                  size={12}
+                  weight="bold"
+                />{" "}
+                You need perfect recall of some piece of literature or reference
+                document
               </li>
               <li className="flex items-center gap-x-1">
-                <X className="text-white" size={12} weight="bold" /> You want
-                your model to have perfect memory or recollection
+                <X
+                  className="text-theme-text-primary"
+                  size={12}
+                  weight="bold"
+                />{" "}
+                You want your model to have perfect memory or recollection
               </li>
             </ul>
           </div>
 
-          <div className="flex flex-col gap-y-2 text-white/80 text-sm">
+          <div className="flex flex-col gap-y-2 text-theme-text-secondary text-sm">
             <p>
               In summary, if you are getting good results with RAG currently,
               creating a fine-tune can squeeze <b>even more performance</b> out
diff --git a/frontend/src/pages/FineTuning/Steps/OrderDetails/index.jsx b/frontend/src/pages/FineTuning/Steps/OrderDetails/index.jsx
index 657c75acc..5c13e657d 100644
--- a/frontend/src/pages/FineTuning/Steps/OrderDetails/index.jsx
+++ b/frontend/src/pages/FineTuning/Steps/OrderDetails/index.jsx
@@ -34,22 +34,22 @@ export default function OrderDetails({ setSettings, setStep }) {
 
   return (
     <div className="flex-[2] flex flex-col gap-y-[18px] mt-10">
-      <div className="bg-[#303237] text-white rounded-xl flex-1 p-6">
+      <div className="bg-theme-bg-secondary rounded-xl flex-1 p-6">
         <div className="w-full flex flex-col gap-y-3 max-w-[700px]">
-          <h2 className="text-base text-white font-semibold">
+          <h2 className="text-base text-theme-text-primary font-semibold">
             Time to create your fine tune!
           </h2>
-          <p className="text-white/80 text-sm">
+          <p className="text-theme-text-secondary text-sm">
             Creating a model is quite simple. Currently we have a limited base
             model selection, however in the future we plan to expand support to
             many more foundational models.
           </p>
           <form onSubmit={handleSubmit} className="flex flex-col gap-y-6 mt-4">
             <div className="flex flex-col">
-              <label className="text-white text-sm font-semibold block mb-3">
+              <label className="text-theme-text-primary text-sm font-semibold block mb-3">
                 Account e-mail
               </label>
-              <p className="text-xs font-normal text-white/80 mb-2">
+              <p className="text-xs font-normal text-theme-text-secondary mb-2">
                 This e-mail is where you will receive all order information and
                 updates. This e-mail <b>must be accurate</b> or else we won't be
                 able to contact you with your fine-tuned model!
@@ -57,7 +57,7 @@ export default function OrderDetails({ setSettings, setStep }) {
               <input
                 type="email"
                 name="email"
-                className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full max-w-[200px] p-2.5"
+                className="border-none bg-theme-settings-input-bg text-theme-text-primary placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                 placeholder="jdoe@example.com"
                 required={true}
                 autoComplete="off"
@@ -66,10 +66,10 @@ export default function OrderDetails({ setSettings, setStep }) {
             </div>
 
             <div className="flex flex-col">
-              <label className="text-white text-sm font-semibold block mb-3">
+              <label className="text-theme-text-primary text-sm font-semibold block mb-3">
                 Preferred Base Model
               </label>
-              <p className="text-xs font-normal text-white/80 mb-2">
+              <p className="text-xs font-normal text-theme-text-secondary mb-2">
                 This is the foundational model your fine-tune will be based on.
                 We recommend Llama 3 8B.
               </p>
@@ -77,7 +77,7 @@ export default function OrderDetails({ setSettings, setStep }) {
                 <select
                   name="baseModel"
                   required={true}
-                  className="bg-zinc-900 border-gray-500 text-white text-sm rounded-lg block w-full max-w-[200px] p-2.5"
+                  className="border-none bg-theme-settings-input-bg text-theme-text-primary placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                 >
                   <option disabled value="">
                     -- select a base model --
@@ -91,7 +91,7 @@ export default function OrderDetails({ setSettings, setStep }) {
                   </optgroup>
                 </select>
               ) : (
-                <div className="flex items-center gap-x-2 text-white/80 text-sm">
+                <div className="flex items-center gap-x-2 text-theme-text-secondary text-sm">
                   <CircleNotch className="animate-spin" size={12} />
                   <p>fetching available models...</p>
                 </div>
@@ -99,10 +99,10 @@ export default function OrderDetails({ setSettings, setStep }) {
             </div>
 
             <div className="flex flex-col">
-              <label className="text-white text-sm font-semibold block mb-3">
+              <label className="text-theme-text-primary text-sm font-semibold block mb-3">
                 Model name
               </label>
-              <p className="text-xs font-normal text-white/80 mb-2">
+              <p className="text-xs font-normal text-theme-text-secondary mb-2">
                 What would you like to call your model? This has no impact on
                 its output or training and is only used for how we communicate
                 with you about the model.
@@ -110,7 +110,7 @@ export default function OrderDetails({ setSettings, setStep }) {
               <input
                 type="text"
                 name="modelName"
-                className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full max-w-[200px] p-2.5"
+                className="border-none bg-theme-settings-input-bg text-theme-text-primary placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                 placeholder="My really cool model!"
                 required={true}
                 autoComplete="off"
diff --git a/frontend/src/pages/FineTuning/Steps/OrderPlaced/index.jsx b/frontend/src/pages/FineTuning/Steps/OrderPlaced/index.jsx
index e537bdaa0..d552727d8 100644
--- a/frontend/src/pages/FineTuning/Steps/OrderPlaced/index.jsx
+++ b/frontend/src/pages/FineTuning/Steps/OrderPlaced/index.jsx
@@ -4,12 +4,12 @@ import paths from "@/utils/paths";
 export default function OrderPlaced({ settings }) {
   return (
     <div className="flex-[2] flex flex-col gap-y-[18px] mt-10">
-      <div className="bg-[#303237] text-white rounded-xl flex-1 p-6">
+      <div className="bg-theme-bg-secondary rounded-xl flex-1 p-6">
         <div className="w-full flex flex-col gap-y-2 max-w-[700px]">
-          <h2 className="text-base text-white font-semibold">
+          <h2 className="text-base text-theme-text-primary font-semibold">
             Your order is placed!
           </h2>
-          <div className="flex flex-col gap-y-[25px] text-white/80 text-xs">
+          <div className="flex flex-col gap-y-[25px] text-theme-text-secondary text-xs">
             <p>
               Your fine-tune will begin once payment is complete. If the payment
               window did not automatically open - your checkout link is below.
@@ -22,25 +22,25 @@ export default function OrderPlaced({ settings }) {
             >
               {new URL(settings.checkoutUrl).origin}
             </a>
-            <p className="text-xs text-white/80">
+            <p className="text-xs text-theme-text-secondary">
               Your fine-tune does not begin until this payment is completed.
             </p>
 
             <div className="flex flex-col gap-y-2">
-              <p className="text-white/80 font-medium">
+              <p className="text-theme-text-secondary font-medium">
                 Reference: <span className="font-normal">{settings.jobId}</span>
               </p>
-              <p className="text-xs text-white/80">
+              <p className="text-xs text-theme-text-secondary">
                 This reference id is how we will communicate with you about your
                 fine-tune training status. <b>Save this reference id.</b>
               </p>
             </div>
 
             <div className="flex flex-col gap-y-2">
-              <p className="text-white/80 font-medium">
+              <p className="text-theme-text-secondary font-medium">
                 Contact: <span className="font-normal">{settings.email}</span>
               </p>
-              <p className="text-xs text-white/80">
+              <p className="text-xs text-theme-text-secondary">
                 Check the email above for order confirmation, status updates,
                 and more. Mintplex Labs will only contact you about your order
                 via email.
@@ -64,7 +64,7 @@ export default function OrderPlaced({ settings }) {
               </a>
             </div>
 
-            <p className="text-xs text-white/80">
+            <p className="text-xs text-theme-text-secondary">
               You can close this window or navigate away once you see the
               confirmation email in your inbox.
             </p>
diff --git a/frontend/src/pages/FineTuning/Steps/Privacy/index.jsx b/frontend/src/pages/FineTuning/Steps/Privacy/index.jsx
index e4d711518..68e62090e 100644
--- a/frontend/src/pages/FineTuning/Steps/Privacy/index.jsx
+++ b/frontend/src/pages/FineTuning/Steps/Privacy/index.jsx
@@ -11,12 +11,12 @@ export default function PrivacyHandling({ setSettings, setStep }) {
 
   return (
     <div className="flex-[2] flex flex-col gap-y-[18px] mt-10">
-      <div className="bg-[#303237] text-white rounded-xl flex-1 p-6">
+      <div className="bg-theme-bg-secondary rounded-xl flex-1 p-6">
         <div className="w-full flex flex-col gap-y-3 max-w-[700px]">
-          <h2 className="text-base text-white font-semibold">
+          <h2 className="text-base text-theme-text-primary font-semibold">
             Data Handling Policy & Privacy
           </h2>
-          <p className="text-white/80 text-sm">
+          <p className="text-theme-text-secondary text-sm">
             Please accept the terms and conditions to continue with creation and
             ordering of a fine-tune model. We take the handling of your data
             very seriously and will only use your uploaded data for training the
@@ -24,14 +24,14 @@ export default function PrivacyHandling({ setSettings, setStep }) {
             completed, or canceled your information is automatically and
             permanently deleted.
           </p>
-          <div className="flex flex-col gap-y-2 text-white/75 text-xs font-semibold rounded-lg p-4 h-[60vh] overflow-y-auto bg-dark-text mt-2">
+          <div className="flex flex-col gap-y-2 text-theme-text-secondary text-xs font-semibold rounded-lg p-4 h-[60vh] overflow-y-auto bg-theme-bg-container mt-2">
             <div className="text-xs">
-              <h1 className="text-white/80">Privacy Policy</h1>
+              <h1 className="text-theme-text-secondary">Privacy Policy</h1>
               <p>Mintplex Labs Inc.</p>
               <p>Effective Date: July 15, 2024</p>
             </div>
-            <h2 className="text-white mt-4">1. Introduction</h2>
-            <p className="text-white/80">
+            <h2 className="text-theme-text-primary mt-4">1. Introduction</h2>
+            <p className="text-theme-text-secondary">
               Welcome to Mintplex Labs Inc. ("we", "our", "us"). We are
               committed to protecting your privacy and ensuring the security of
               your personal information. This Privacy Policy describes how we
@@ -39,41 +39,47 @@ export default function PrivacyHandling({ setSettings, setStep }) {
               services.
             </p>
 
-            <h2 className="text-white mt-4">2. Information We Collect</h2>
-            <p className="text-white/80">
+            <h2 className="text-theme-text-primary mt-4">
+              2. Information We Collect
+            </h2>
+            <p className="text-theme-text-secondary">
               When you place an order with us for tuning and large language
               model (LLM) fulfillment, we collect certain personal information
               from you, including but not limited to:
             </p>
-            <ul className="list-disc pl-5 text-white/80">
+            <ul className="list-disc pl-5 text-theme-text-secondary">
               <li>Email address</li>
               <li>Payment information</li>
               <li>Uploaded training data</li>
             </ul>
 
-            <h2 className="text-white mt-4">3. Use of Information</h2>
-            <p className="text-white/80">
+            <h2 className="text-theme-text-primary mt-4">
+              3. Use of Information
+            </h2>
+            <p className="text-theme-text-secondary">
               We use the information we collect for the following purposes:
             </p>
-            <ul className="list-disc pl-5 text-white/80">
+            <ul className="list-disc pl-5 text-theme-text-secondary">
               <li>To process and fulfill your order</li>
               <li>To communicate with you regarding your order</li>
               <li>To improve our services</li>
             </ul>
 
-            <h2 className="text-white mt-4">4. Data Retention and Deletion</h2>
-            <p className="text-white/80">
+            <h2 className="text-theme-text-primary mt-4">
+              4. Data Retention and Deletion
+            </h2>
+            <p className="text-theme-text-secondary">
               Uploaded training data is only retained for the duration of the
               model training. Upon training completion, failure, or order
               cancellation, the user data is permanently deleted from our
               storage.
             </p>
-            <p className="text-white/80">
+            <p className="text-theme-text-secondary">
               If you partially complete the order flow and do not finalize your
               order, any details and information associated with your order will
               be deleted 1 hour from abandonment.
             </p>
-            <p className="text-white/80">
+            <p className="text-theme-text-secondary">
               After you confirm receipt of your resulting model files, you can
               request us to delete your model from our storage at any time.
               Additionally, we may proactively reach out to you to confirm that
@@ -83,8 +89,10 @@ export default function PrivacyHandling({ setSettings, setStep }) {
               storage.
             </p>
 
-            <h2 className="text-white mt-4">5. Data Storage and Security</h2>
-            <p className="text-white/80">
+            <h2 className="text-theme-text-primary mt-4">
+              5. Data Storage and Security
+            </h2>
+            <p className="text-theme-text-secondary">
               Our cloud storage provider is AWS. We have implement standard
               encryption and protection policies to ensure the security of your
               data. The storage solution has no public access, and all requests
@@ -95,21 +103,23 @@ export default function PrivacyHandling({ setSettings, setStep }) {
               e-mail you used during checkout.
             </p>
 
-            <h2 className="text-white mt-4">6. Payment Processing</h2>
-            <p className="text-white/80">
+            <h2 className="text-theme-text-primary mt-4">
+              6. Payment Processing
+            </h2>
+            <p className="text-theme-text-secondary">
               We use Stripe as our payment processor. Your email may be shared
               with Stripe for customer service and payment management purposes.
             </p>
 
-            <h2 className="text-white mt-4">7. Data Sharing</h2>
-            <p className="text-white/80">
+            <h2 className="text-theme-text-primary mt-4">7. Data Sharing</h2>
+            <p className="text-theme-text-secondary">
               We do not sell or share your personal information with third
               parties except as necessary to provide our services, comply with
               legal obligations, or protect our rights.
             </p>
 
-            <h2 className="text-white mt-4">8. Your Rights</h2>
-            <p className="text-white/80">
+            <h2 className="text-theme-text-primary mt-4">8. Your Rights</h2>
+            <p className="text-theme-text-secondary">
               You have the right to access, correct, or delete your personal
               information. If you wish to exercise these rights, please contact
               us at{" "}
@@ -122,14 +132,16 @@ export default function PrivacyHandling({ setSettings, setStep }) {
               .
             </p>
 
-            <h2 className="text-white mt-4">9. California Privacy Rights</h2>
-            <p className="text-white/80">
+            <h2 className="text-theme-text-primary mt-4">
+              9. California Privacy Rights
+            </h2>
+            <p className="text-theme-text-secondary">
               Under the California Consumer Privacy Act as amended by the
               California Privacy Rights Act (the "CCPA"), California residents
               have additional rights beyond what is set out in this privacy
               notice:
             </p>
-            <ul className="list-disc pl-5 text-white/80">
+            <ul className="list-disc pl-5 text-theme-text-secondary">
               <li>
                 <strong>Right to Know:</strong> You have the right to request
                 information about the categories and specific pieces of personal
@@ -159,7 +171,7 @@ export default function PrivacyHandling({ setSettings, setStep }) {
                 your CCPA rights.
               </li>
             </ul>
-            <p className="text-white/80">
+            <p className="text-theme-text-secondary">
               <strong>Submitting a Request:</strong>
               <br />
               You may submit a request to know, delete, or correct your personal
@@ -177,20 +189,20 @@ export default function PrivacyHandling({ setSettings, setStep }) {
               making an erasure request, please include details of the
               information you would like erased.
             </p>
-            <p className="text-white/80">
+            <p className="text-theme-text-secondary">
               Please note that if you request that we remove your information,
               we may retain some of the information for specific reasons, such
               as to resolve disputes, troubleshoot problems, and as required by
               law. Some information may not be completely removed from our
               databases due to technical constraints and regular backups.
             </p>
-            <p className="text-white/80">
+            <p className="text-theme-text-secondary">
               We will not discriminate against you for exercising any of your
               CCPA rights.
             </p>
 
-            <h2 className="text-white mt-4">10. Contact Us</h2>
-            <p className="text-white/80">
+            <h2 className="text-theme-text-primary mt-4">10. Contact Us</h2>
+            <p className="text-theme-text-secondary">
               If you have any questions or concerns about this Privacy Policy,
               please contact us at{" "}
               <a
@@ -202,16 +214,16 @@ export default function PrivacyHandling({ setSettings, setStep }) {
               .
             </p>
 
-            <h2 className="text-white mt-4">
+            <h2 className="text-theme-text-primary mt-4">
               11. Changes to This Privacy Policy
             </h2>
-            <p className="text-white/80">
+            <p className="text-theme-text-secondary">
               We may update this Privacy Policy from time to time. We will
               notify you of any changes by posting the new Privacy Policy on our
               website. You are advised to review this Privacy Policy
               periodically for any changes.
             </p>
-            <p className="text-white/80">
+            <p className="text-theme-text-secondary">
               By using our services, you agree to the terms of this Privacy
               Policy.
             </p>
diff --git a/frontend/src/pages/FineTuning/Steps/TermsAndConditions/index.jsx b/frontend/src/pages/FineTuning/Steps/TermsAndConditions/index.jsx
index c29e500d9..e1cb7b7e9 100644
--- a/frontend/src/pages/FineTuning/Steps/TermsAndConditions/index.jsx
+++ b/frontend/src/pages/FineTuning/Steps/TermsAndConditions/index.jsx
@@ -11,21 +11,25 @@ export default function TermsAndConditions({ setSettings, setStep }) {
 
   return (
     <div className="flex-[2] flex flex-col gap-y-[18px] mt-10">
-      <div className="bg-[#303237] text-white rounded-xl flex-1 p-6">
+      <div className="bg-theme-bg-secondary rounded-xl flex-1 p-6">
         <div className="w-full flex flex-col gap-y-3 max-w-[700px]">
-          <h2 className="text-base text-white font-semibold">
+          <h2 className="text-base text-theme-text-primary font-semibold">
             Terms and Conditions
           </h2>
-          <p className="text-white/80 text-sm">
+          <p className="text-theme-text-secondary text-sm">
             Please accept the terms and conditions to continue with creation and
             ordering of a fine-tune model.
           </p>
-          <div className="flex flex-col gap-y-2 text-white/80 text-xs font-semibold rounded-lg p-4 h-[60vh] overflow-y-auto bg-dark-text mt-2">
-            <div className="text-xs text-white">
-              <h1>Mintplex Labs Inc. Fine-Tuning Terms of Service</h1>
-              <p>Last Updated: July 15, 2024</p>
+          <div className="flex flex-col gap-y-2 text-theme-text-secondary text-xs font-semibold rounded-lg p-4 h-[60vh] overflow-y-auto bg-theme-bg-container mt-2">
+            <div className="text-xs">
+              <h1 className="text-theme-text-primary">
+                Mintplex Labs Inc. Fine-Tuning Terms of Service
+              </h1>
+              <p className="text-theme-text-secondary">
+                Last Updated: July 15, 2024
+              </p>
             </div>
-            <p className="text-white/80">
+            <p className="text-theme-text-secondary">
               This Agreement is between Mintplex Labs Inc. ("Company") and the
               customer ("Customer") accessing or using the services provided by
               the Company. By signing up, accessing, or using the services,
@@ -33,16 +37,18 @@ export default function TermsAndConditions({ setSettings, setStep }) {
               be bound by the terms and conditions outlined below.
             </p>
 
-            <h2 className="text-white mt-4">1. Services Provided</h2>
-            <p className="text-white/80">
+            <h2 className="text-theme-text-primary mt-4">
+              1. Services Provided
+            </h2>
+            <p className="text-theme-text-secondary">
               Mintplex Labs Inc. provides model fine-tuning services for
               customers. The deliverable for these services is a download link
               to the output ".GGUF" file that can be used by the Customer for
               Large-Language text inferencing.
             </p>
 
-            <h2 className="text-white mt-4">2. Payment Terms</h2>
-            <ul className="list-disc pl-5 text-white/80">
+            <h2 className="text-theme-text-primary mt-4">2. Payment Terms</h2>
+            <ul className="list-disc pl-5 text-theme-text-secondary">
               <li>
                 <strong>One-Time Payment:</strong> A one-time payment is
                 required before the execution of the training.
@@ -58,8 +64,8 @@ export default function TermsAndConditions({ setSettings, setStep }) {
               </li>
             </ul>
 
-            <h2 className="text-white mt-4">3. Order Form</h2>
-            <ul className="list-disc pl-5 text-white/80">
+            <h2 className="text-theme-text-primary mt-4">3. Order Form</h2>
+            <ul className="list-disc pl-5 text-theme-text-secondary">
               <li>
                 <strong>Service:</strong> Model fine-tuning
               </li>
@@ -71,59 +77,63 @@ export default function TermsAndConditions({ setSettings, setStep }) {
               </li>
             </ul>
 
-            <h2 className="text-white mt-4">4. Customer Responsibilities</h2>
-            <p className="text-white/80">
+            <h2 className="text-theme-text-primary mt-4">
+              4. Customer Responsibilities
+            </h2>
+            <p className="text-theme-text-secondary">
               The Customer must provide all necessary data and information
               required for model fine-tuning.
             </p>
-            <p className="text-white/80">
+            <p className="text-theme-text-secondary">
               The Customer must ensure timely payment as per the terms mentioned
               above.
             </p>
-            <p className="text-white/80">
+            <p className="text-theme-text-secondary">
               The Customer understands the data collected for tuning will be
               stored to a private cloud storage location temporarily while
               training is in progress.
             </p>
-            <p className="text-white/80">
+            <p className="text-theme-text-secondary">
               The Customer understands the data collected for tuning will be
               fully deleted once the order is completed or canceled by the
               Company.
             </p>
-            <p className="text-white/80">
+            <p className="text-theme-text-secondary">
               The Customer understands and has reviewed the Privacy Policy for
               Fine-Tuning by the Company.
             </p>
 
-            <h2 className="text-white mt-4">5. Refund Policy</h2>
-            <p className="text-white/80">
+            <h2 className="text-theme-text-primary mt-4">5. Refund Policy</h2>
+            <p className="text-theme-text-secondary">
               Refunds will be processed in the event of training failure or if
               the complete model file is not delivered to the Customer. Refunds
               will be issued to the original payment method within 30 days of
               the refund request.
             </p>
 
-            <h2 className="text-white mt-4">6. Governing Law</h2>
-            <p className="text-white/80">
+            <h2 className="text-theme-text-primary mt-4">6. Governing Law</h2>
+            <p className="text-theme-text-secondary">
               This Agreement shall be governed by and construed in accordance
               with the laws of the State of California.
             </p>
 
-            <h2 className="text-white mt-4">7. Dispute Resolution</h2>
-            <p className="text-white/80">
+            <h2 className="text-theme-text-primary mt-4">
+              7. Dispute Resolution
+            </h2>
+            <p className="text-theme-text-secondary">
               Any disputes arising out of or in connection with this Agreement
               shall be resolved in the state or federal courts located in
               California.
             </p>
 
-            <h2 className="text-white mt-4">8. Notices</h2>
-            <p className="text-white/80">
+            <h2 className="text-theme-text-primary mt-4">8. Notices</h2>
+            <p className="text-theme-text-secondary">
               All notices under this Agreement shall be in writing and shall be
               deemed given when delivered personally, sent by confirmed email,
               or sent by certified or registered mail, return receipt requested,
               and addressed to the respective parties as follows:
             </p>
-            <p className="text-white/80">
+            <p className="text-theme-text-secondary">
               For Company:{" "}
               <a
                 href="mailto:team@mintplexlabs.com"
@@ -132,20 +142,20 @@ export default function TermsAndConditions({ setSettings, setStep }) {
                 team@mintplexlabs.com
               </a>
             </p>
-            <p className="text-white/80">
+            <p className="text-theme-text-secondary">
               For Customer: The main email address on Customer's account
             </p>
 
-            <h2 className="text-white mt-4">9. Amendments</h2>
-            <p className="text-white/80">
+            <h2 className="text-theme-text-primary mt-4">9. Amendments</h2>
+            <p className="text-theme-text-secondary">
               The Company reserves the right to amend these terms at any time by
               providing notice to the Customer. The Customer's continued use of
               the services after such amendments will constitute acceptance of
               the amended terms.
             </p>
 
-            <h2 className="text-white mt-4">10. Indemnity</h2>
-            <p className="text-white/80">
+            <h2 className="text-theme-text-primary mt-4">10. Indemnity</h2>
+            <p className="text-theme-text-secondary">
               The Customer agrees to indemnify, defend, and hold harmless
               Mintplex Labs Inc., its affiliates, and their respective officers,
               directors, employees, agents, and representatives from and against
diff --git a/frontend/src/pages/FineTuning/Steps/index.jsx b/frontend/src/pages/FineTuning/Steps/index.jsx
index 7cf74263f..05237e3aa 100644
--- a/frontend/src/pages/FineTuning/Steps/index.jsx
+++ b/frontend/src/pages/FineTuning/Steps/index.jsx
@@ -133,7 +133,7 @@ export function FineTuningCreationLayout({ setStep, children }) {
   return (
     <div
       id="fine-tune-create-order-container"
-      className="w-screen h-screen overflow-hidden bg-sidebar flex md:mt-0 mt-6"
+      className="w-screen h-screen overflow-hidden bg-theme-bg-container flex md:mt-0 mt-6"
     >
       <Sidebar />
       <div
diff --git a/frontend/src/pages/FineTuning/index.jsx b/frontend/src/pages/FineTuning/index.jsx
index ceb29862a..cd47f035e 100644
--- a/frontend/src/pages/FineTuning/index.jsx
+++ b/frontend/src/pages/FineTuning/index.jsx
@@ -7,7 +7,7 @@ function SideBarSelection({ setStep, currentStep }) {
   const currentIndex = Object.keys(FineTuningSteps).indexOf(currentStep);
   return (
     <div
-      className={`bg-white/5 text-white rounded-xl py-1 px-4 ${
+      className={`bg-white/5 light:bg-white text-theme-text-primary rounded-xl py-1 px-4 shadow-lg ${
         isMobile ? "w-full" : "min-w-[360px] w-fit"
       }`}
     >
@@ -23,18 +23,20 @@ function SideBarSelection({ setStep, currentStep }) {
             className={[
               "py-3 flex items-center justify-between transition-all duration-300",
               isSelected ? "rounded-t-xl" : "",
-              isLast ? "" : "border-b border-white/10",
+              isLast
+                ? ""
+                : "border-b border-white/10 light:border-[#026AA2]/10",
             ].join(" ")}
           >
             {isDone || isSelected ? (
               <button
                 onClick={() => setStep(stepKey)}
-                className="border-none hover:underline text-sm font-medium"
+                className="border-none hover:underline text-sm font-medium text-theme-text-primary"
               >
                 {props.name}
               </button>
             ) : (
-              <div className="text-sm text-white/40 font-medium">
+              <div className="text-sm text-theme-text-secondary font-medium">
                 {props.name}
               </div>
             )}
@@ -45,7 +47,7 @@ function SideBarSelection({ setStep, currentStep }) {
                 </div>
               ) : (
                 <div
-                  className={`w-[14px] h-[14px] rounded-full border border-white ${
+                  className={`w-[14px] h-[14px] rounded-full border border-theme-text-primary ${
                     isSelected ? "animate-pulse" : "opacity-50"
                   }`}
                 />
@@ -69,14 +71,14 @@ export default function FineTuningFlow() {
       {(settings, setSettings, setStep) => (
         <div className="flex-1 flex h-full">
           <div className="flex flex-col gap-y-[18px] p-4 mt-10 w-[360px] flex-shrink-0">
-            <div className="text-white flex items-center gap-x-2">
+            <div className="text-theme-text-primary flex items-center gap-x-2">
               <Sparkle size={24} />
               <p className="text-lg font-medium">Custom Fine-Tuned Model</p>
             </div>
             <SideBarSelection setStep={setStep} currentStep={step} />
           </div>
           <div className="flex-1 overflow-y-auto p-4 mt-10 pb-[74px] h-screen">
-            <div className=" ml-8">
+            <div className="ml-8">
               {StepPage.component({ settings, setSettings, setStep })}
             </div>
           </div>
diff --git a/frontend/src/pages/GeneralSettings/ApiKeys/ApiKeyRow/index.jsx b/frontend/src/pages/GeneralSettings/ApiKeys/ApiKeyRow/index.jsx
index 17ca02506..9168cbe4c 100644
--- a/frontend/src/pages/GeneralSettings/ApiKeys/ApiKeyRow/index.jsx
+++ b/frontend/src/pages/GeneralSettings/ApiKeys/ApiKeyRow/index.jsx
@@ -59,13 +59,13 @@ export default function ApiKeyRow({ apiKey }) {
           <button
             onClick={copyApiKey}
             disabled={copied}
-            className="font-medium text-blue-300 rounded-lg hover:text-white hover:text-opacity-60 hover:underline"
+            className="font-medium text-blue-300 rounded-lg hover:text-white hover:light:text-blue-500 hover:text-opacity-60 hover:underline"
           >
             {copied ? "Copied" : "Copy API Key"}
           </button>
           <button
             onClick={handleDelete}
-            className="font-medium px-2 py-1 rounded-lg hover:bg-sidebar-gradient text-white hover:text-white/80 hover:bg-opacity-20"
+            className="font-medium px-2 py-1 rounded-lg text-theme-text-primary hover:text-red-500"
           >
             <Trash className="h-5 w-5" />
           </button>
diff --git a/frontend/src/pages/GeneralSettings/ApiKeys/NewApiKeyModal/index.jsx b/frontend/src/pages/GeneralSettings/ApiKeys/NewApiKeyModal/index.jsx
index cde8bdbe6..dbf2f31c3 100644
--- a/frontend/src/pages/GeneralSettings/ApiKeys/NewApiKeyModal/index.jsx
+++ b/frontend/src/pages/GeneralSettings/ApiKeys/NewApiKeyModal/index.jsx
@@ -36,34 +36,35 @@ export default function NewApiKeyModal({ closeModal }) {
   }, [copied]);
 
   return (
-    <div className="relative w-[500px] max-w-2xl max-h-full">
-      <div className="relative bg-main-gradient rounded-lg shadow">
-        <div className="flex items-start justify-between p-4 border-b rounded-t border-gray-500/50">
-          <h3 className="text-xl font-semibold text-white">
-            Create new API key
-          </h3>
+    <div className="fixed inset-0 z-50 overflow-auto bg-black bg-opacity-50 flex items-center justify-center">
+      <div className="relative w-full max-w-2xl bg-theme-bg-secondary rounded-lg shadow border-2 border-theme-modal-border">
+        <div className="relative p-6 border-b rounded-t border-theme-modal-border">
+          <div className="w-full flex gap-x-2 items-center">
+            <h3 className="text-xl font-semibold text-white overflow-hidden overflow-ellipsis whitespace-nowrap">
+              Create new API key
+            </h3>
+          </div>
           <button
             onClick={closeModal}
             type="button"
-            className="transition-all duration-300 text-gray-400 bg-transparent hover:border-white/60 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center bg-sidebar-button hover:bg-menu-item-selected-gradient hover:border-slate-100 hover:border-opacity-50 border-transparent border"
-            data-modal-hide="staticModal"
+            className="absolute top-4 right-4 transition-all duration-300 bg-transparent rounded-lg text-sm p-1 inline-flex items-center hover:bg-theme-modal-border hover:border-theme-modal-border hover:border-opacity-50 border-transparent border"
           >
-            <X className="text-gray-300 text-lg" />
+            <X size={24} weight="bold" className="text-white" />
           </button>
         </div>
-        <form onSubmit={handleCreate}>
-          <div className="p-6 space-y-6 flex h-full w-full">
-            <div className="w-full flex flex-col gap-y-4">
+        <div className="px-7 py-6">
+          <form onSubmit={handleCreate}>
+            <div className="space-y-6 max-h-[60vh] overflow-y-auto pr-2">
               {error && <p className="text-red-400 text-sm">Error: {error}</p>}
               {apiKey && (
                 <input
                   type="text"
                   defaultValue={`${apiKey.secret}`}
                   disabled={true}
-                  className="rounded-lg px-4 py-2 text-white bg-zinc-900 border border-gray-500/50"
+                  className="bg-theme-settings-input-bg w-full text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                 />
               )}
-              <p className="text-white text-xs md:text-sm">
+              <p className="text-white text-opacity-60 text-xs md:text-sm">
                 Once created the API key can be used to programmatically access
                 and configure this AnythingLLM instance.
               </p>
@@ -76,36 +77,36 @@ export default function NewApiKeyModal({ closeModal }) {
                 Read the API documentation &rarr;
               </a>
             </div>
-          </div>
-          <div className="flex w-full justify-between items-center p-6 space-x-2 border-t rounded-b border-gray-500/50">
-            {!apiKey ? (
-              <>
+            <div className="flex justify-between items-center mt-6 pt-6 border-t border-theme-modal-border">
+              {!apiKey ? (
+                <>
+                  <button
+                    onClick={closeModal}
+                    type="button"
+                    className="transition-all duration-300 text-white hover:bg-zinc-700 px-4 py-2 rounded-lg text-sm"
+                  >
+                    Cancel
+                  </button>
+                  <button
+                    type="submit"
+                    className="transition-all duration-300 bg-white text-black hover:opacity-60 px-4 py-2 rounded-lg text-sm"
+                  >
+                    Create API key
+                  </button>
+                </>
+              ) : (
                 <button
-                  onClick={closeModal}
+                  onClick={copyApiKey}
                   type="button"
-                  className="px-4 py-2 rounded-lg text-white hover:bg-stone-900 transition-all duration-300"
+                  disabled={copied}
+                  className="w-full transition-all duration-300 bg-white text-black hover:opacity-60 px-4 py-2 rounded-lg text-sm"
                 >
-                  Cancel
+                  {copied ? "Copied API key" : "Copy API key"}
                 </button>
-                <button
-                  type="submit"
-                  className="transition-all duration-300 border border-slate-200 px-4 py-2 rounded-lg text-white text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 focus:ring-gray-800"
-                >
-                  Create API key
-                </button>
-              </>
-            ) : (
-              <button
-                onClick={copyApiKey}
-                type="button"
-                disabled={copied}
-                className="w-full transition-all duration-300 border border-slate-200 px-4 py-2 rounded-lg text-white text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 focus:ring-gray-800 text-center justify-center"
-              >
-                {copied ? "Copied API key" : "Copy API key"}
-              </button>
-            )}
-          </div>
-        </form>
+              )}
+            </div>
+          </form>
+        </div>
       </div>
     </div>
   );
diff --git a/frontend/src/pages/GeneralSettings/ApiKeys/index.jsx b/frontend/src/pages/GeneralSettings/ApiKeys/index.jsx
index 3aa17b4bf..60bdbe173 100644
--- a/frontend/src/pages/GeneralSettings/ApiKeys/index.jsx
+++ b/frontend/src/pages/GeneralSettings/ApiKeys/index.jsx
@@ -19,38 +19,43 @@ export default function AdminApiKeys() {
   const { isOpen, openModal, closeModal } = useModal();
   const { t } = useTranslation();
   return (
-    <div className="w-screen h-screen overflow-hidden bg-sidebar flex">
+    <div className="w-screen h-screen overflow-hidden bg-theme-bg-container flex">
       <Sidebar />
       <div
         style={{ height: isMobile ? "100%" : "calc(100% - 32px)" }}
-        className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-main-gradient w-full h-full overflow-y-scroll"
+        className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-theme-bg-secondary w-full h-full overflow-y-scroll p-4 md:p-0"
       >
         <div className="flex flex-col w-full px-1 md:pl-6 md:pr-[50px] md:py-6 py-16">
-          <div className="w-full flex flex-col gap-y-1 pb-6 border-white border-b-2 border-opacity-10">
+          <div className="w-full flex flex-col gap-y-1 pb-6 border-white/10 border-b-2">
             <div className="items-center flex gap-x-4">
-              <p className="text-lg leading-6 font-bold text-white">
+              <p className="text-lg leading-6 font-bold text-theme-text-primary">
                 {t("api.title")}
               </p>
             </div>
-            <p className="text-xs leading-[18px] font-base text-white text-opacity-60">
+            <p className="text-xs leading-[18px] font-base text-theme-text-secondary mt-2">
               {t("api.description")}
             </p>
             <a
               href={paths.apiDocs()}
               target="_blank"
               rel="noreferrer"
-              className="text-xs leading-[18px] font-base text-blue-300 hover:underline"
+              className="text-xs leading-[18px] font-base text-blue-300 light:text-blue-500 hover:underline mt-1"
             >
               {t("api.link")} &rarr;
             </a>
           </div>
           <div className="w-full justify-end flex">
-            <CTAButton onClick={openModal} className="mt-3 mr-0 -mb-14 z-10">
+            <CTAButton
+              onClick={openModal}
+              className="mt-3 mr-0 mb-4 md:-mb-14 z-10"
+            >
               <PlusCircle className="h-4 w-4" weight="bold" />{" "}
               {t("api.generate")}
             </CTAButton>
           </div>
-          <ApiKeysContainer />
+          <div className="overflow-x-auto mt-6">
+            <ApiKeysContainer />
+          </div>
         </div>
         <ModalWrapper isOpen={isOpen}>
           <NewApiKeyModal closeModal={closeModal} />
@@ -81,18 +86,18 @@ function ApiKeysContainer() {
       <Skeleton.default
         height="80vh"
         width="100%"
-        highlightColor="#3D4147"
-        baseColor="#2C2F35"
+        highlightColor="var(--theme-bg-primary)"
+        baseColor="var(--theme-bg-secondary)"
         count={1}
-        className="w-full p-4 rounded-b-2xl rounded-tr-2xl rounded-tl-sm mt-6"
+        className="w-full p-4 rounded-b-2xl rounded-tr-2xl rounded-tl-sm"
         containerClassName="flex w-full"
       />
     );
   }
 
   return (
-    <table className="w-full text-sm text-left rounded-lg mt-6">
-      <thead className="text-white text-opacity-80 text-xs leading-[18px] font-bold uppercase border-white border-b border-opacity-60">
+    <table className="w-full text-sm text-left rounded-lg min-w-[640px]">
+      <thead className="text-theme-text-secondary text-xs leading-[18px] font-bold uppercase border-white/10 border-b">
         <tr>
           <th scope="col" className="px-6 py-3 rounded-tl-lg">
             {t("api.table.key")}
diff --git a/frontend/src/pages/GeneralSettings/Appearance/CustomAppName/index.jsx b/frontend/src/pages/GeneralSettings/Appearance/CustomAppName/index.jsx
index 48efa5087..5f3387dbf 100644
--- a/frontend/src/pages/GeneralSettings/Appearance/CustomAppName/index.jsx
+++ b/frontend/src/pages/GeneralSettings/Appearance/CustomAppName/index.jsx
@@ -70,7 +70,7 @@ export default function CustomAppName() {
         <input
           name="customAppName"
           type="text"
-          className="bg-zinc-900 mt-3 text-white text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 max-w-[275px] placeholder:text-white/20"
+          className="bg-theme-settings-input-bg mt-3 text-white text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5 max-w-[275px] placeholder:text-theme-settings-input-placeholder"
           placeholder="AnythingLLM"
           required={true}
           autoComplete="off"
diff --git a/frontend/src/pages/GeneralSettings/Appearance/CustomLogo/index.jsx b/frontend/src/pages/GeneralSettings/Appearance/CustomLogo/index.jsx
index c0d230d5a..7dc6e21cb 100644
--- a/frontend/src/pages/GeneralSettings/Appearance/CustomLogo/index.jsx
+++ b/frontend/src/pages/GeneralSettings/Appearance/CustomLogo/index.jsx
@@ -71,10 +71,10 @@ export default function CustomLogo() {
   return (
     <div className="mt-6 mb-8">
       <div className="flex flex-col gap-y-1">
-        <h2 className="text-base leading-6 font-bold text-white">
+        <h2 className="text-base leading-6 font-bold text-theme-text-primary">
           {t("appearance.logo.title")}
         </h2>
-        <p className="text-xs leading-[18px] font-base text-white/60">
+        <p className="text-xs leading-[18px] font-base text-theme-text-secondary">
           {t("appearance.logo.description")}
         </p>
       </div>
@@ -93,17 +93,17 @@ export default function CustomLogo() {
                 onChange={handleFileUpload}
               />
               <div
-                className="w-80 py-4 bg-zinc-900/50 rounded-2xl border-2 border-dashed border-white border-opacity-60 justify-center items-center inline-flex cursor-pointer"
+                className="w-80 py-4 bg-theme-settings-input-bg rounded-2xl border-2 border-dashed border-theme-text-secondary border-opacity-60 justify-center items-center inline-flex cursor-pointer"
                 htmlFor="logo-upload"
               >
                 <div className="flex flex-col items-center justify-center">
                   <div className="rounded-full bg-white/40">
                     <Plus className="w-6 h-6 text-black/80 m-2" />
                   </div>
-                  <div className="text-white text-opacity-80 text-sm font-semibold py-1">
+                  <div className="text-theme-text-primary text-opacity-80 text-sm font-semibold py-1">
                     {t("appearance.logo.add")}
                   </div>
-                  <div className="text-white text-opacity-60 text-xs font-medium py-1">
+                  <div className="text-theme-text-secondary text-opacity-60 text-xs font-medium py-1">
                     {t("appearance.logo.recommended")}
                   </div>
                 </div>
@@ -117,13 +117,13 @@ export default function CustomLogo() {
             <img
               src={logo}
               alt="Uploaded Logo"
-              className="w-full h-full object-cover border-2 border-white/20 border-dashed p-1 rounded-2xl"
+              className="w-full h-full object-cover border-2 border-theme-text-secondary border-opacity-60 p-1 rounded-2xl"
             />
 
             <div className="absolute w-80 top-0 left-0 right-0 bottom-0 flex flex-col gap-y-3 justify-center items-center rounded-2xl mt-3 bg-black bg-opacity-80 opacity-0 group-hover:opacity-100 transition-opacity duration-300 ease-in-out border-2 border-transparent hover:border-white">
               <button
                 onClick={triggerFileInputClick}
-                className="text-white text-base font-medium hover:text-opacity-60 mx-2"
+                className="text-[#FFFFFF] text-base font-medium hover:text-opacity-60 mx-2"
               >
                 {t("appearance.logo.replace")}
               </button>
@@ -138,7 +138,7 @@ export default function CustomLogo() {
               />
               <button
                 onClick={handleRemoveLogo}
-                className="text-white text-base font-medium hover:text-opacity-60 mx-2"
+                className="text-[#FFFFFF] text-base font-medium hover:text-opacity-60 mx-2"
               >
                 {t("appearance.logo.remove")}
               </button>
diff --git a/frontend/src/pages/GeneralSettings/Appearance/CustomMessages/index.jsx b/frontend/src/pages/GeneralSettings/Appearance/CustomMessages/index.jsx
index 6165501a2..84e35b22b 100644
--- a/frontend/src/pages/GeneralSettings/Appearance/CustomMessages/index.jsx
+++ b/frontend/src/pages/GeneralSettings/Appearance/CustomMessages/index.jsx
@@ -64,7 +64,7 @@ export default function CustomMessages() {
           {t("appearance.message.description")}
         </p>
       </div>
-      <div className="mt-3 flex flex-col gap-y-6 bg-dark-highlight rounded-lg pr-[31px] pl-[12px] pt-4 max-w-[700px]">
+      <div className="mt-3 flex flex-col gap-y-6 bg-theme-settings-input-bg rounded-lg pr-[31px] pl-[12px] pt-4 max-w-[700px]">
         {messages.map((message, index) => (
           <div key={index} className="flex flex-col gap-y-2">
             {message.user && (
@@ -89,7 +89,7 @@ export default function CustomMessages() {
         ))}
         <div className="flex gap-4 mt-12 justify-between pb-[15px]">
           <button
-            className="self-end text-white hover:text-white/60 transition"
+            className="self-end text-white hover:text-white/60 light:hover:text-black/60 transition"
             onClick={() => addMessage("response")}
           >
             <div className="flex items-center justify-start text-sm font-normal -ml-2">
@@ -104,7 +104,7 @@ export default function CustomMessages() {
             </div>
           </button>
           <button
-            className="self-end text-white hover:text-white/60 transition"
+            className="self-end text-white hover:text-white/60 light:hover:text-black/60 transition"
             onClick={() => addMessage("user")}
           >
             <div className="flex items-center justify-start text-sm font-normal">
diff --git a/frontend/src/pages/GeneralSettings/Appearance/CustomSiteSettings/index.jsx b/frontend/src/pages/GeneralSettings/Appearance/CustomSiteSettings/index.jsx
index c68d53681..c4b766c62 100644
--- a/frontend/src/pages/GeneralSettings/Appearance/CustomSiteSettings/index.jsx
+++ b/frontend/src/pages/GeneralSettings/Appearance/CustomSiteSettings/index.jsx
@@ -61,7 +61,7 @@ export default function CustomSiteSettings() {
             <input
               name="meta_page_title"
               type="text"
-              className="border-none bg-zinc-900 mt-3 text-white text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 max-w-[400px] placeholder:text-white/20"
+              className="border-none bg-theme-settings-input-bg mt-3 text-white text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5 max-w-[400px] placeholder:text-theme-settings-input-placeholder"
               placeholder="AnythingLLM | Your personal LLM trained on anything"
               autoComplete="off"
               onChange={(e) => {
@@ -93,7 +93,7 @@ export default function CustomSiteSettings() {
             <input
               name="meta_page_favicon"
               type="url"
-              className="border-none bg-zinc-900 mt-3 text-white text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 max-w-[400px] placeholder:text-white/20"
+              className="border-none bg-theme-settings-input-bg mt-3 text-white text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5 max-w-[400px] placeholder:text-theme-settings-input-placeholder"
               placeholder="url to your image"
               onChange={(e) => {
                 setSettings((prev) => {
@@ -109,7 +109,7 @@ export default function CustomSiteSettings() {
         {hasChanges && (
           <button
             type="submit"
-            className="border-none transition-all mt-6 w-fit duration-300 border border-slate-200 px-5 py-2.5 rounded-lg text-white text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 focus:ring-gray-800"
+            className="transition-all mt-6 w-fit duration-300 border border-slate-200 px-5 py-2.5 rounded-lg text-white text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 focus:ring-gray-800"
           >
             Save
           </button>
diff --git a/frontend/src/pages/GeneralSettings/Appearance/FooterCustomization/NewIconForm/index.jsx b/frontend/src/pages/GeneralSettings/Appearance/FooterCustomization/NewIconForm/index.jsx
index 9f504f29a..c83b4859c 100644
--- a/frontend/src/pages/GeneralSettings/Appearance/FooterCustomization/NewIconForm/index.jsx
+++ b/frontend/src/pages/GeneralSettings/Appearance/FooterCustomization/NewIconForm/index.jsx
@@ -56,26 +56,28 @@ export default function NewIconForm({ icon, url, onSave, onRemove }) {
     <form onSubmit={handleSubmit} className="flex items-center gap-x-1.5">
       <div className="relative" ref={dropdownRef}>
         <div
-          className="h-[34px] w-[34px] bg-dark-highlight rounded-full flex items-center justify-center cursor-pointer hover:outline-primary-button hover:outline"
+          className="h-[34px] w-[34px] bg-theme-settings-input-bg rounded-full flex items-center justify-center cursor-pointer hover:outline-primary-button hover:outline"
           onClick={() => setIsDropdownOpen(!isDropdownOpen)}
         >
           {React.createElement(ICON_COMPONENTS[selectedIcon] || Plus, {
-            className: "h-5 w-5 text-white",
+            className: "h-5 w-5",
             weight: selectedIcon === "Plus" ? "bold" : "fill",
+            color: "var(--theme-sidebar-footer-icon-fill)",
           })}
         </div>
         {isDropdownOpen && (
-          <div className="absolute z-10 grid grid-cols-4 bg-[#41444C] mt-2 rounded-md w-[150px] h-[78px] overflow-y-auto border border-white/20 shadow-lg">
+          <div className="absolute z-10 grid grid-cols-4 bg-theme-settings-input-bg mt-2 rounded-md w-[150px] h-[78px] overflow-y-auto border border-white/20 shadow-lg">
             {Object.keys(ICON_COMPONENTS).map((iconName) => (
               <button
                 key={iconName}
                 type="button"
-                className="flex justify-center items-center border border-transparent hover:bg-dark-highlight hover:border-slate-100 rounded-full p-2"
+                className="flex justify-center items-center border border-transparent hover:bg-theme-sidebar-footer-icon-hover hover:border-slate-100 light:hover:border-black/80 rounded-full p-2"
                 onClick={() => handleIconChange(iconName)}
               >
                 {React.createElement(ICON_COMPONENTS[iconName], {
-                  className: "h-5 w-5 text-white",
+                  className: "h-5 w-5",
                   weight: "fill",
+                  color: "var(--theme-sidebar-footer-icon-fill)",
                 })}
               </button>
             ))}
@@ -87,7 +89,7 @@ export default function NewIconForm({ icon, url, onSave, onRemove }) {
         value={selectedUrl}
         onChange={handleUrlChange}
         placeholder="https://example.com"
-        className="bg-zinc-900 text-white placeholder-white/20 text-sm rounded-md p-2.5 w-[300px] h-[32px] focus:outline-primary-button active:outline-primary-button outline-none"
+        className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-md p-2.5 w-[300px] h-[32px] focus:outline-primary-button active:outline-primary-button outline-none"
         required
       />
       {selectedIcon !== "Plus" && (
diff --git a/frontend/src/pages/GeneralSettings/Appearance/LanguagePreference/index.jsx b/frontend/src/pages/GeneralSettings/Appearance/LanguagePreference/index.jsx
index 8e58706b0..8845978c9 100644
--- a/frontend/src/pages/GeneralSettings/Appearance/LanguagePreference/index.jsx
+++ b/frontend/src/pages/GeneralSettings/Appearance/LanguagePreference/index.jsx
@@ -10,7 +10,7 @@ export default function LanguagePreference() {
 
   return (
     <>
-      <div className="flex flex-col gap-y-1">
+      <div className="flex flex-col gap-y-1 mt-6">
         <h2 className="text-base leading-6 font-bold text-white">
           Display Language
         </h2>
@@ -22,7 +22,7 @@ export default function LanguagePreference() {
       <div className="flex items-center gap-x-4">
         <select
           name="userLang"
-          className="bg-zinc-900 w-fit mt-2 px-4 border-gray-500 text-white text-sm rounded-lg block py-2"
+          className="bg-theme-settings-input-bg w-fit mt-2 px-4 border-gray-500 text-white text-sm rounded-lg block py-2"
           defaultValue={currentLanguage || "en"}
           onChange={(e) => changeLanguage(e.target.value)}
         >
diff --git a/frontend/src/pages/GeneralSettings/Appearance/SupportEmail/index.jsx b/frontend/src/pages/GeneralSettings/Appearance/SupportEmail/index.jsx
index 8a50c73f9..539618658 100644
--- a/frontend/src/pages/GeneralSettings/Appearance/SupportEmail/index.jsx
+++ b/frontend/src/pages/GeneralSettings/Appearance/SupportEmail/index.jsx
@@ -66,7 +66,7 @@ export default function SupportEmail() {
         <input
           name="supportEmail"
           type="email"
-          className="bg-zinc-900 mt-3 text-white text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 max-w-[275px] placeholder:text-white/20"
+          className="bg-theme-settings-input-bg mt-3 text-white text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5 max-w-[275px] placeholder:text-theme-settings-input-placeholder"
           placeholder="support@mycompany.com"
           required={true}
           autoComplete="off"
diff --git a/frontend/src/pages/GeneralSettings/Appearance/ThemePreference/index.jsx b/frontend/src/pages/GeneralSettings/Appearance/ThemePreference/index.jsx
new file mode 100644
index 000000000..44d79e542
--- /dev/null
+++ b/frontend/src/pages/GeneralSettings/Appearance/ThemePreference/index.jsx
@@ -0,0 +1,27 @@
+import { useTheme } from "@/hooks/useTheme";
+
+export default function ThemePreference() {
+  const { theme, setTheme, availableThemes } = useTheme();
+
+  return (
+    <div className="flex flex-col gap-y-1 mt-4">
+      <h2 className="text-base leading-6 font-bold text-white">Theme</h2>
+      <p className="text-xs leading-[18px] font-base text-white/60">
+        Select your preferred theme for the application.
+      </p>
+      <div className="flex items-center gap-x-4">
+        <select
+          value={theme}
+          onChange={(e) => setTheme(e.target.value)}
+          className="border-none bg-theme-settings-input-bg mt-2 text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-fit py-2 px-4"
+        >
+          {Object.entries(availableThemes).map(([key, value]) => (
+            <option key={key} value={key}>
+              {value}
+            </option>
+          ))}
+        </select>
+      </div>
+    </div>
+  );
+}
diff --git a/frontend/src/pages/GeneralSettings/Appearance/index.jsx b/frontend/src/pages/GeneralSettings/Appearance/index.jsx
index afb244395..00a415bb2 100644
--- a/frontend/src/pages/GeneralSettings/Appearance/index.jsx
+++ b/frontend/src/pages/GeneralSettings/Appearance/index.jsx
@@ -9,18 +9,20 @@ import CustomAppName from "./CustomAppName";
 import LanguagePreference from "./LanguagePreference";
 import CustomSiteSettings from "./CustomSiteSettings";
 import ShowScrollbar from "./ShowScrollbar";
+import ThemePreference from "./ThemePreference";
 
 export default function Appearance() {
   const { t } = useTranslation();
+
   return (
-    <div className="w-screen h-screen overflow-hidden bg-sidebar flex">
+    <div className="w-screen h-screen overflow-hidden bg-theme-bg-container flex">
       <Sidebar />
       <div
         style={{ height: isMobile ? "100%" : "calc(100% - 32px)" }}
-        className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-main-gradient w-full h-full overflow-y-scroll"
+        className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-theme-bg-secondary w-full h-full overflow-y-scroll p-4 md:p-0"
       >
         <div className="flex flex-col w-full px-1 md:pl-6 md:pr-[86px] md:py-6 py-16">
-          <div className="w-full flex flex-col gap-y-1 pb-6 border-white border-b-2 border-opacity-10">
+          <div className="w-full flex flex-col gap-y-1 pb-6 border-white light:border-theme-sidebar-border border-b-2 border-opacity-10">
             <div className="items-center">
               <p className="text-lg leading-6 font-bold text-white">
                 {t("appearance.title")}
@@ -30,6 +32,7 @@ export default function Appearance() {
               {t("appearance.description")}
             </p>
           </div>
+          <ThemePreference />
           <LanguagePreference />
           <ShowScrollbar />
           <CustomLogo />
diff --git a/frontend/src/pages/GeneralSettings/AudioPreference/index.jsx b/frontend/src/pages/GeneralSettings/AudioPreference/index.jsx
index c4abaf546..f0a88941b 100644
--- a/frontend/src/pages/GeneralSettings/AudioPreference/index.jsx
+++ b/frontend/src/pages/GeneralSettings/AudioPreference/index.jsx
@@ -20,12 +20,12 @@ export default function AudioPreference() {
   }, []);
 
   return (
-    <div className="w-screen h-screen overflow-hidden bg-sidebar flex">
+    <div className="w-screen h-screen overflow-hidden bg-theme-bg-container flex">
       <Sidebar />
       {loading ? (
         <div
           style={{ height: isMobile ? "100%" : "calc(100% - 32px)" }}
-          className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-main-gradient w-full h-full overflow-y-scroll"
+          className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-theme-bg-secondary w-full h-full overflow-y-scroll p-4 md:p-0"
         >
           <div className="w-full h-full flex justify-center items-center">
             <PreLoader />
@@ -34,7 +34,7 @@ export default function AudioPreference() {
       ) : (
         <div
           style={{ height: isMobile ? "100%" : "calc(100% - 32px)" }}
-          className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-main-gradient w-full h-full overflow-y-scroll"
+          className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-theme-bg-secondary w-full h-full overflow-y-scroll p-4 md:p-0"
         >
           <SpeechToTextProvider settings={settings} />
           <TextToSpeechProvider settings={settings} />
diff --git a/frontend/src/pages/GeneralSettings/AudioPreference/stt.jsx b/frontend/src/pages/GeneralSettings/AudioPreference/stt.jsx
index 85a9acd17..9745e4253 100644
--- a/frontend/src/pages/GeneralSettings/AudioPreference/stt.jsx
+++ b/frontend/src/pages/GeneralSettings/AudioPreference/stt.jsx
@@ -77,7 +77,7 @@ export default function SpeechToTextProvider({ settings }) {
   return (
     <form onSubmit={handleSubmit} className="flex w-full">
       <div className="flex flex-col w-full px-1 md:pl-6 md:pr-[50px] md:py-6 py-16">
-        <div className="w-full flex flex-col gap-y-1 pb-6 border-white border-b-2 border-opacity-10">
+        <div className="w-full flex flex-col gap-y-1 pb-6 border-white light:border-theme-sidebar-border border-b-2 border-opacity-10">
           <div className="flex gap-x-4 items-center">
             <p className="text-lg leading-6 font-bold text-white">
               Speech-to-text Preference
@@ -109,20 +109,20 @@ export default function SpeechToTextProvider({ settings }) {
             />
           )}
           {searchMenuOpen ? (
-            <div className="absolute top-0 left-0 w-full max-w-[640px] max-h-[310px] overflow-auto white-scrollbar min-h-[64px] bg-dark-input rounded-lg flex flex-col justify-between cursor-pointer border-2 border-primary-button z-20">
+            <div className="absolute top-0 left-0 w-full max-w-[640px] max-h-[310px] overflow-auto white-scrollbar min-h-[64px] bg-theme-settings-input-bg rounded-lg flex flex-col justify-between cursor-pointer border-2 border-primary-button z-20">
               <div className="w-full flex flex-col gap-y-1">
-                <div className="flex items-center sticky top-0 border-b border-[#9CA3AF] mx-4 bg-dark-input">
+                <div className="flex items-center sticky top-0 border-b border-[#9CA3AF] mx-4 bg-theme-settings-input-bg">
                   <MagnifyingGlass
                     size={20}
                     weight="bold"
-                    className="absolute left-4 z-30 text-white -ml-4 my-2"
+                    className="absolute left-4 z-30 text-theme-text-primary -ml-4 my-2"
                   />
                   <input
                     type="text"
                     name="stt-provider-search"
                     autoComplete="off"
                     placeholder="Search speech to text providers"
-                    className="-ml-4 my-2 bg-transparent z-20 pl-12 h-[38px] w-full px-4 py-1 text-sm outline-none text-white placeholder:text-white placeholder:font-medium"
+                    className="-ml-4 my-2 bg-transparent z-20 pl-12 h-[38px] w-full px-4 py-1 text-sm outline-none text-theme-text-primary placeholder:text-theme-text-primary placeholder:font-medium"
                     onChange={(e) => setSearchQuery(e.target.value)}
                     ref={searchInputRef}
                     onKeyDown={(e) => {
@@ -153,7 +153,7 @@ export default function SpeechToTextProvider({ settings }) {
             </div>
           ) : (
             <button
-              className="w-full max-w-[640px] h-[64px] bg-dark-input rounded-lg flex items-center p-[14px] justify-between cursor-pointer border-2 border-transparent hover:border-primary-button transition-all duration-300"
+              className="w-full max-w-[640px] h-[64px] bg-theme-settings-input-bg rounded-lg flex items-center p-[14px] justify-between cursor-pointer border-2 border-transparent hover:border-primary-button transition-all duration-300"
               type="button"
               onClick={() => setSearchMenuOpen(true)}
             >
diff --git a/frontend/src/pages/GeneralSettings/AudioPreference/tts.jsx b/frontend/src/pages/GeneralSettings/AudioPreference/tts.jsx
index f337dc01d..07e210273 100644
--- a/frontend/src/pages/GeneralSettings/AudioPreference/tts.jsx
+++ b/frontend/src/pages/GeneralSettings/AudioPreference/tts.jsx
@@ -115,7 +115,7 @@ export default function TextToSpeechProvider({ settings }) {
   return (
     <form onSubmit={handleSubmit} className="flex w-full">
       <div className="flex flex-col w-full px-1 md:pl-6 md:pr-[50px] md:py-6 py-16">
-        <div className="w-full flex flex-col gap-y-1 pb-6 border-white border-b-2 border-opacity-10">
+        <div className="w-full flex flex-col gap-y-1 pb-6 border-white light:border-theme-sidebar-border border-b-2 border-opacity-10">
           <div className="flex gap-x-4 items-center">
             <p className="text-lg leading-6 font-bold text-white">
               Text-to-speech Preference
@@ -144,20 +144,20 @@ export default function TextToSpeechProvider({ settings }) {
             />
           )}
           {searchMenuOpen ? (
-            <div className="absolute top-0 left-0 w-full max-w-[640px] max-h-[310px] overflow-auto white-scrollbar min-h-[64px] bg-dark-input rounded-lg flex flex-col justify-between cursor-pointer border-2 border-primary-button z-20">
+            <div className="absolute top-0 left-0 w-full max-w-[640px] max-h-[310px] overflow-auto white-scrollbar min-h-[64px] bg-theme-settings-input-bg rounded-lg flex flex-col justify-between cursor-pointer border-2 border-primary-button z-20">
               <div className="w-full flex flex-col gap-y-1">
-                <div className="flex items-center sticky top-0 border-b border-[#9CA3AF] mx-4 bg-dark-input">
+                <div className="flex items-center sticky top-0 border-b border-[#9CA3AF] mx-4 bg-theme-settings-input-bg">
                   <MagnifyingGlass
                     size={20}
                     weight="bold"
-                    className="absolute left-4 z-30 text-white -ml-4 my-2"
+                    className="absolute left-4 z-30 text-theme-text-primary -ml-4 my-2"
                   />
                   <input
                     type="text"
                     name="tts-provider-search"
                     autoComplete="off"
                     placeholder="Search text to speech providers"
-                    className="-ml-4 my-2 bg-transparent z-20 pl-12 h-[38px] w-full px-4 py-1 text-sm outline-none text-white placeholder:text-white placeholder:font-medium"
+                    className="-ml-4 my-2 bg-transparent z-20 pl-12 h-[38px] w-full px-4 py-1 text-sm outline-none text-theme-text-primary placeholder:text-theme-text-primary placeholder:font-medium"
                     onChange={(e) => setSearchQuery(e.target.value)}
                     ref={searchInputRef}
                     onKeyDown={(e) => {
@@ -188,7 +188,7 @@ export default function TextToSpeechProvider({ settings }) {
             </div>
           ) : (
             <button
-              className="w-full max-w-[640px] h-[64px] bg-dark-input rounded-lg flex items-center p-[14px] justify-between cursor-pointer border-2 border-transparent hover:border-primary-button transition-all duration-300"
+              className="w-full max-w-[640px] h-[64px] bg-theme-settings-input-bg rounded-lg flex items-center p-[14px] justify-between cursor-pointer border-2 border-transparent hover:border-primary-button transition-all duration-300"
               type="button"
               onClick={() => setSearchMenuOpen(true)}
             >
diff --git a/frontend/src/pages/GeneralSettings/BrowserExtensionApiKey/BrowserExtensionApiKeyRow/index.jsx b/frontend/src/pages/GeneralSettings/BrowserExtensionApiKey/BrowserExtensionApiKeyRow/index.jsx
index 8017aa4b2..fdd595a86 100644
--- a/frontend/src/pages/GeneralSettings/BrowserExtensionApiKey/BrowserExtensionApiKeyRow/index.jsx
+++ b/frontend/src/pages/GeneralSettings/BrowserExtensionApiKey/BrowserExtensionApiKeyRow/index.jsx
@@ -67,7 +67,7 @@ export default function BrowserExtensionApiKeyRow({
             onClick={handleCopy}
             data-tooltip-id="copy-connection-text"
             data-tooltip-content="Copy connection string"
-            className="text-white hover:text-white/80 transition-colors duration-200 p-1 rounded"
+            className="text-theme-text-primary hover:text-theme-text-secondary transition-colors duration-200 p-1 rounded"
           >
             {copied ? (
               <Check className="h-5 w-5 text-green-500" />
@@ -80,7 +80,7 @@ export default function BrowserExtensionApiKeyRow({
             onClick={handleConnect}
             data-tooltip-id="auto-connection"
             data-tooltip-content="Automatically connect to extension"
-            className="text-white hover:text-white/80 transition-colors duration-200 p-1 rounded"
+            className="text-theme-text-primary hover:text-theme-text-secondary transition-colors duration-200 p-1 rounded"
           >
             <Plug className="h-5 w-5" />
           </button>
@@ -97,7 +97,7 @@ export default function BrowserExtensionApiKeyRow({
       <td className="px-6 py-4">
         <button
           onClick={handleRevoke}
-          className="font-medium px-2 py-1 rounded-lg hover:bg-sidebar-gradient text-white hover:text-white/80 hover:bg-opacity-20"
+          className="font-medium px-2 py-1 rounded-lg text-theme-text-primary hover:text-red-500"
         >
           <Trash className="h-5 w-5" />
         </button>
diff --git a/frontend/src/pages/GeneralSettings/BrowserExtensionApiKey/NewBrowserExtensionApiKeyModal/index.jsx b/frontend/src/pages/GeneralSettings/BrowserExtensionApiKey/NewBrowserExtensionApiKeyModal/index.jsx
index ee3f86786..f5618bae0 100644
--- a/frontend/src/pages/GeneralSettings/BrowserExtensionApiKey/NewBrowserExtensionApiKeyModal/index.jsx
+++ b/frontend/src/pages/GeneralSettings/BrowserExtensionApiKey/NewBrowserExtensionApiKeyModal/index.jsx
@@ -48,79 +48,81 @@ export default function NewBrowserExtensionApiKeyModal({
   }, [copied]);
 
   return (
-    <div className="relative w-[500px] max-w-2xl max-h-full">
-      <div className="relative bg-main-gradient rounded-lg shadow">
-        <div className="flex items-start justify-between p-4 border-b rounded-t border-gray-500/50">
-          <h3 className="text-xl font-semibold text-white">
-            New Browser Extension API Key
-          </h3>
+    <div className="fixed inset-0 z-50 overflow-auto bg-black bg-opacity-50 flex items-center justify-center">
+      <div className="relative w-full max-w-2xl bg-theme-bg-secondary rounded-lg shadow border-2 border-theme-modal-border">
+        <div className="relative p-6 border-b rounded-t border-theme-modal-border">
+          <div className="w-full flex gap-x-2 items-center">
+            <h3 className="text-xl font-semibold text-white overflow-hidden overflow-ellipsis whitespace-nowrap">
+              New Browser Extension API Key
+            </h3>
+          </div>
           <button
             onClick={closeModal}
             type="button"
-            className="transition-all duration-300 text-gray-400 bg-transparent hover:border-white/60 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center bg-sidebar-button hover:bg-menu-item-selected-gradient hover:border-slate-100 hover:border-opacity-50 border-transparent border border-none cursor-pointer"
+            className="absolute top-4 right-4 transition-all duration-300 bg-transparent rounded-lg text-sm p-1 inline-flex items-center hover:bg-theme-modal-border hover:border-theme-modal-border hover:border-opacity-50 border-transparent border"
           >
-            <X className="text-gray-300 text-lg" />
+            <X size={24} weight="bold" className="text-white" />
           </button>
         </div>
-        <form onSubmit={handleCreate}>
-          <div className="p-6 space-y-6 flex h-full w-full">
-            <div className="w-full flex flex-col gap-y-4">
+        <div className="px-7 py-6">
+          <form onSubmit={handleCreate}>
+            <div className="space-y-6 max-h-[60vh] overflow-y-auto pr-2">
               {error && <p className="text-red-400 text-sm">Error: {error}</p>}
               {apiKey && (
                 <input
                   type="text"
                   defaultValue={apiKey}
                   disabled={true}
-                  className="rounded-lg px-4 py-2 text-white bg-zinc-900 border border-gray-500/50 border-none"
+                  className="bg-theme-settings-input-bg w-full text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg block w-full p-2.5"
                 />
               )}
               {isMultiUser && (
-                <p className="text-yellow-300 text-xs md:text-sm font-semibold">
+                <p className="text-yellow-300 light:text-orange-500 text-xs md:text-sm font-semibold">
                   Warning: You are in multi-user mode, this API key will allow
                   access to all workspaces associated with your account. Please
                   share it cautiously.
                 </p>
               )}
-              <p className="text-white text-xs md:text-sm">
+              <p className="text-white text-opacity-60 text-xs md:text-sm">
                 After clicking "Create API Key", AnythingLLM will attempt to
                 connect to your browser extension automatically.
               </p>
-              <p className="text-white text-xs md:text-sm">
+              <p className="text-white text-opacity-60 text-xs md:text-sm">
                 If you see "Connected to AnythingLLM" in the extension, the
                 connection was successful. If not, please copy the connection
                 string and paste it into the extension manually.
               </p>
             </div>
-          </div>
-          <div className="flex w-full justify-between items-center p-6 space-x-2 border-t rounded-b border-gray-500/50">
-            {!apiKey ? (
-              <>
+            <div className="flex justify-between items-center mt-6 pt-6 border-t border-theme-modal-border">
+              {!apiKey ? (
+                <>
+                  <button
+                    onClick={closeModal}
+                    type="button"
+                    className="transition-all duration-300 text-white hover:bg-zinc-700 px-4 py-2 rounded-lg text-sm"
+                  >
+                    Cancel
+                  </button>
+                  <button
+                    type="submit"
+                    className="transition-all duration-300 bg-white text-black hover:opacity-60 px-4 py-2 rounded-lg text-sm"
+                  >
+                    Create API Key
+                  </button>
+                </>
+              ) : (
                 <button
-                  onClick={closeModal}
+                  onClick={copyApiKey}
                   type="button"
-                  className="px-4 py-2 rounded-lg text-white hover:bg-stone-900 transition-all duration-300 border-none"
+                  disabled={copied}
+                  className="w-full transition-all duration-300 bg-white text-black hover:opacity-60 px-4 py-2 rounded-lg text-sm cursor-pointer"
                 >
-                  Cancel
+                  {copied ? "API Key Copied!" : "Copy API Key"}
                 </button>
-                <button
-                  type="submit"
-                  className="transition-all duration-300 border border-slate-200 px-4 py-2 rounded-lg text-white text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 focus:ring-gray-800 border-none"
-                >
-                  Create API Key
-                </button>
-              </>
-            ) : (
-              <button
-                onClick={copyApiKey}
-                type="button"
-                disabled={copied}
-                className="w-full transition-all duration-300 border border-slate-200 px-4 py-2 rounded-lg text-white text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 focus:ring-gray-800 text-center justify-center border-none cursor-pointer"
-              >
-                {copied ? "API Key Copied!" : "Copy API Key"}
-              </button>
-            )}
-          </div>
-        </form>
+              )}
+            </div>
+          </form>
+        </div>
       </div>
     </div>
   );
diff --git a/frontend/src/pages/GeneralSettings/BrowserExtensionApiKey/index.jsx b/frontend/src/pages/GeneralSettings/BrowserExtensionApiKey/index.jsx
index 2641aa64a..363d5860a 100644
--- a/frontend/src/pages/GeneralSettings/BrowserExtensionApiKey/index.jsx
+++ b/frontend/src/pages/GeneralSettings/BrowserExtensionApiKey/index.jsx
@@ -40,86 +40,91 @@ export default function BrowserExtensionApiKeys() {
   };
 
   return (
-    <div className="w-screen h-screen overflow-hidden bg-sidebar flex">
+    <div className="w-screen h-screen overflow-hidden bg-theme-bg-container flex">
       <Sidebar />
       <div
         style={{ height: isMobile ? "100%" : "calc(100% - 32px)" }}
-        className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-main-gradient w-full h-full overflow-y-scroll"
+        className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-theme-bg-secondary w-full h-full overflow-y-scroll p-4 md:p-0"
       >
         <div className="flex flex-col w-full px-1 md:pl-6 md:pr-[50px] md:py-6 py-16">
-          <div className="w-full flex flex-col gap-y-1 pb-6 border-white border-b-2 border-opacity-10">
+          <div className="w-full flex flex-col gap-y-1 pb-6 border-white/10 border-b-2">
             <div className="items-center flex gap-x-4">
-              <p className="text-lg leading-6 font-bold text-white">
+              <p className="text-lg leading-6 font-bold text-theme-text-primary">
                 Browser Extension API Keys
               </p>
             </div>
-            <p className="text-xs leading-[18px] font-base text-white text-opacity-60">
+            <p className="text-xs leading-[18px] font-base text-theme-text-secondary mt-2">
               Manage API keys for browser extensions connecting to your
               AnythingLLM instance.
             </p>
           </div>
           <div className="w-full justify-end flex">
-            <CTAButton onClick={openModal} className="mt-3 mr-0 -mb-6 z-10">
+            <CTAButton
+              onClick={openModal}
+              className="mt-3 mr-0 mb-4 md:-mb-14 z-10"
+            >
               <PlusCircle className="h-4 w-4" weight="bold" />
               Generate New API Key
             </CTAButton>
           </div>
-          {loading ? (
-            <Skeleton.default
-              height="80vh"
-              width="100%"
-              highlightColor="#3D4147"
-              baseColor="#2C2F35"
-              count={1}
-              className="w-full p-4 rounded-b-2xl rounded-tr-2xl rounded-tl-sm mt-6"
-              containerClassName="flex w-full"
-            />
-          ) : error ? (
-            <div className="text-red-500 mt-6">Error: {error}</div>
-          ) : (
-            <table className="w-full text-sm text-left rounded-lg mt-6">
-              <thead className="text-white text-opacity-80 text-xs leading-[18px] font-bold uppercase border-white border-b border-opacity-60">
-                <tr>
-                  <th scope="col" className="px-6 py-3 rounded-tl-lg">
-                    Extension Connection String
-                  </th>
-                  {isMultiUser && (
-                    <th scope="col" className="px-6 py-3">
-                      Created By
+          <div className="overflow-x-auto mt-6">
+            {loading ? (
+              <Skeleton.default
+                height="80vh"
+                width="100%"
+                highlightColor="var(--theme-bg-primary)"
+                baseColor="var(--theme-bg-secondary)"
+                count={1}
+                className="w-full p-4 rounded-b-2xl rounded-tr-2xl rounded-tl-sm"
+                containerClassName="flex w-full"
+              />
+            ) : error ? (
+              <div className="text-red-500 mt-6">Error: {error}</div>
+            ) : (
+              <table className="w-full text-sm text-left rounded-lg min-w-[640px] md:mt-6 mt-0">
+                <thead className="text-theme-text-secondary text-xs leading-[18px] font-bold uppercase border-white/10 border-b">
+                  <tr>
+                    <th scope="col" className="px-6 py-3 rounded-tl-lg">
+                      Extension Connection String
+                    </th>
+                    {isMultiUser && (
+                      <th scope="col" className="px-6 py-3">
+                        Created By
+                      </th>
+                    )}
+                    <th scope="col" className="px-6 py-3">
+                      Created At
+                    </th>
+                    <th scope="col" className="px-6 py-3 rounded-tr-lg">
+                      Actions
                     </th>
-                  )}
-                  <th scope="col" className="px-6 py-3">
-                    Created At
-                  </th>
-                  <th scope="col" className="px-6 py-3 rounded-tr-lg">
-                    Actions
-                  </th>
-                </tr>
-              </thead>
-              <tbody>
-                {apiKeys.length === 0 ? (
-                  <tr className="bg-transparent text-white text-opacity-80 text-sm font-medium">
-                    <td
-                      colSpan={isMultiUser ? "4" : "3"}
-                      className="px-6 py-4 text-center"
-                    >
-                      No API keys found
-                    </td>
                   </tr>
-                ) : (
-                  apiKeys.map((apiKey) => (
-                    <BrowserExtensionApiKeyRow
-                      key={apiKey.id}
-                      apiKey={apiKey}
-                      removeApiKey={removeApiKey}
-                      connectionString={`${fullApiUrl()}|${apiKey.key}`}
-                      isMultiUser={isMultiUser}
-                    />
-                  ))
-                )}
-              </tbody>
-            </table>
-          )}
+                </thead>
+                <tbody>
+                  {apiKeys.length === 0 ? (
+                    <tr className="bg-transparent text-theme-text-secondary text-sm font-medium">
+                      <td
+                        colSpan={isMultiUser ? "4" : "3"}
+                        className="px-6 py-4 text-center"
+                      >
+                        No API keys found
+                      </td>
+                    </tr>
+                  ) : (
+                    apiKeys.map((apiKey) => (
+                      <BrowserExtensionApiKeyRow
+                        key={apiKey.id}
+                        apiKey={apiKey}
+                        removeApiKey={removeApiKey}
+                        connectionString={`${fullApiUrl()}|${apiKey.key}`}
+                        isMultiUser={isMultiUser}
+                      />
+                    ))
+                  )}
+                </tbody>
+              </table>
+            )}
+          </div>
         </div>
       </div>
       <ModalWrapper isOpen={isOpen}>
diff --git a/frontend/src/pages/GeneralSettings/Chats/ChatRow/index.jsx b/frontend/src/pages/GeneralSettings/Chats/ChatRow/index.jsx
index 4866b57c0..03acecfd9 100644
--- a/frontend/src/pages/GeneralSettings/Chats/ChatRow/index.jsx
+++ b/frontend/src/pages/GeneralSettings/Chats/ChatRow/index.jsx
@@ -69,7 +69,7 @@ export default function ChatRow({ chat, onDelete }) {
         <td className="px-6 py-4 flex items-center gap-x-6">
           <button
             onClick={handleDelete}
-            className="font-medium px-2 py-1 rounded-lg hover:bg-sidebar-gradient text-white hover:text-white/80 hover:bg-opacity-20"
+            className="font-medium px-2 py-1 rounded-lg text-theme-text-primary hover:text-red-500"
           >
             <Trash className="h-5 w-5" />
           </button>
@@ -90,19 +90,19 @@ export default function ChatRow({ chat, onDelete }) {
 const TextPreview = ({ text, closeModal }) => {
   return (
     <div className="relative w-full md:max-w-2xl max-h-full">
-      <div className="relative bg-main-gradient rounded-lg shadow">
-        <div className="flex items-start justify-between p-4 border-b rounded-t border-gray-600">
+      <div className="w-full max-w-2xl bg-theme-bg-secondary rounded-lg shadow border-2 border-theme-modal-border overflow-hidden">
+        <div className="flex items-center justify-between p-6 border-b rounded-t border-theme-modal-border">
           <h3 className="text-xl font-semibold text-white">Viewing Text</h3>
           <button
             onClick={closeModal}
             type="button"
-            className="transition-all duration-300 text-gray-400 bg-transparent hover:border-white/60 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center bg-sidebar-button hover:bg-menu-item-selected-gradient hover:border-slate-100 hover:border-opacity-50 border-transparent border"
+            className="bg-transparent rounded-lg text-sm p-1.5 ml-auto inline-flex items-center bg-sidebar-button hover:bg-theme-modal-border hover:border-theme-modal-border hover:border-opacity-50 border-transparent border"
           >
-            <X className="text-gray-300 text-lg" />
+            <X className="text-white text-lg" />
           </button>
         </div>
         <div className="w-full p-6">
-          <pre className="w-full h-[200px] py-2 px-4 whitespace-pre-line overflow-auto rounded-lg bg-zinc-900 border border-gray-500 text-white text-sm">
+          <pre className="w-full h-[200px] py-2 px-4 whitespace-pre-line overflow-auto rounded-lg bg-zinc-900 light:bg-theme-bg-secondary border border-gray-500 text-white text-sm">
             {text}
           </pre>
         </div>
diff --git a/frontend/src/pages/GeneralSettings/Chats/index.jsx b/frontend/src/pages/GeneralSettings/Chats/index.jsx
index 01dc36122..deaea6eb4 100644
--- a/frontend/src/pages/GeneralSettings/Chats/index.jsx
+++ b/frontend/src/pages/GeneralSettings/Chats/index.jsx
@@ -118,23 +118,23 @@ export default function WorkspaceChats() {
 
   return (
     <CanViewChatHistory>
-      <div className="w-screen h-screen overflow-hidden bg-sidebar flex">
+      <div className="w-screen h-screen overflow-hidden bg-theme-bg-container flex">
         <Sidebar />
         <div
           style={{ height: isMobile ? "100%" : "calc(100% - 32px)" }}
-          className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-main-gradient w-full h-full overflow-y-scroll"
+          className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-theme-bg-secondary w-full h-full overflow-y-scroll p-4 md:p-0"
         >
           <div className="flex flex-col w-full px-1 md:pl-6 md:pr-[50px] md:py-6 py-16">
-            <div className="w-full flex flex-col gap-y-1 pb-6 border-white border-b-2 border-opacity-10">
-              <div className="flex gap-x-4 items-center">
-                <p className="text-lg leading-6 font-bold text-white">
+            <div className="w-full flex flex-col gap-y-1 pb-6 border-white/10 border-b-2">
+              <div className="flex flex-wrap gap-4 items-center">
+                <p className="text-lg leading-6 font-bold text-theme-text-primary">
                   {t("recorded.title")}
                 </p>
                 <div className="relative">
                   <button
                     ref={openMenuButton}
                     onClick={toggleMenu}
-                    className="flex items-center gap-x-2 px-4 py-1 rounded-lg bg-primary-button hover:text-white text-xs font-semibold hover:bg-secondary shadow-[0_4px_14px_rgba(0,0,0,0.25)] h-[34px] w-fit"
+                    className="flex items-center gap-x-2 px-4 py-1 rounded-lg bg-primary-button hover:light:bg-theme-bg-primary hover:text-theme-text-primary text-xs font-semibold hover:bg-secondary shadow-[0_4px_14px_rgba(0,0,0,0.25)] h-[34px] w-fit"
                   >
                     <Download size={18} weight="bold" />
                     {t("recorded.export")}
@@ -144,7 +144,7 @@ export default function WorkspaceChats() {
                     ref={menuRef}
                     className={`${
                       showMenu ? "slide-down" : "slide-up hidden"
-                    } z-20 w-fit rounded-lg absolute top-full right-0 bg-secondary mt-2 shadow-md`}
+                    } z-20 w-fit rounded-lg absolute top-full right-0 bg-secondary light:bg-theme-bg-secondary mt-2 shadow-md`}
                   >
                     <div className="py-2">
                       {Object.entries(exportOptions).map(([key, data]) => (
@@ -154,7 +154,7 @@ export default function WorkspaceChats() {
                             handleDumpChats(key);
                             setShowMenu(false);
                           }}
-                          className="w-full text-left px-4 py-2 text-white text-sm hover:bg-[#3D4147]"
+                          className="w-full text-left px-4 py-2 text-white text-sm hover:bg-[#3D4147] light:hover:bg-theme-sidebar-item-hover"
                         >
                           {data.name}
                         </button>
@@ -166,14 +166,14 @@ export default function WorkspaceChats() {
                   <>
                     <button
                       onClick={handleClearAllChats}
-                      className="flex items-center gap-x-2 px-4 py-1 border hover:border-transparent border-white/40 text-white/40 rounded-lg bg-transparent hover:text-white text-xs font-semibold hover:bg-red-500 shadow-[0_4px_14px_rgba(0,0,0,0.25)] h-[34px] w-fit"
+                      className="flex items-center gap-x-2 px-4 py-1 border hover:border-transparent light:border-theme-sidebar-border border-white/40 text-white/40 light:text-theme-text-secondary rounded-lg bg-transparent hover:light:text-theme-bg-primary hover:text-theme-text-primary text-xs font-semibold hover:bg-red-500 shadow-[0_4px_14px_rgba(0,0,0,0.25)] h-[34px] w-fit"
                     >
                       <Trash size={18} weight="bold" />
                       Clear Chats
                     </button>
                     <a
                       href={paths.orderFineTune()}
-                      className="flex items-center gap-x-2 px-4 py-1 border hover:border-transparent border-yellow-300 text-yellow-300/80 rounded-lg bg-transparent hover:text-white text-xs font-semibold hover:bg-yellow-300/75 shadow-[0_4px_14px_rgba(0,0,0,0.25)] h-[34px] w-fit"
+                      className="flex items-center gap-x-2 px-4 py-1 border hover:border-transparent border-yellow-300 light:border-yellow-600 text-yellow-300/80 light:text-yellow-600 rounded-lg bg-transparent hover:light:text-yellow-800 hover:text-theme-text-primary text-xs font-semibold hover:bg-yellow-300/75 shadow-[0_4px_14px_rgba(0,0,0,0.25)] h-[34px] w-fit"
                     >
                       <Sparkle size={18} weight="bold" />
                       Order Fine-Tune Model
@@ -181,19 +181,21 @@ export default function WorkspaceChats() {
                   </>
                 )}
               </div>
-              <p className="text-xs leading-[18px] font-base text-white text-opacity-60">
+              <p className="text-xs leading-[18px] font-base text-theme-text-secondary mt-2">
                 {t("recorded.description")}
               </p>
             </div>
-            <ChatsContainer
-              loading={loading}
-              chats={chats}
-              setChats={setChats}
-              offset={offset}
-              setOffset={setOffset}
-              canNext={canNext}
-              t={t}
-            />
+            <div className="overflow-x-auto mt-6">
+              <ChatsContainer
+                loading={loading}
+                chats={chats}
+                setChats={setChats}
+                offset={offset}
+                setOffset={setOffset}
+                canNext={canNext}
+                t={t}
+              />
+            </div>
           </div>
         </div>
       </div>
@@ -227,10 +229,10 @@ function ChatsContainer({
       <Skeleton.default
         height="80vh"
         width="100%"
-        highlightColor="#3D4147"
-        baseColor="#2C2F35"
+        highlightColor="var(--theme-bg-primary)"
+        baseColor="var(--theme-bg-secondary)"
         count={1}
-        className="w-full p-4 rounded-b-2xl rounded-tr-2xl rounded-tl-sm mt-6"
+        className="w-full p-4 rounded-b-2xl rounded-tr-2xl rounded-tl-sm"
         containerClassName="flex w-full"
       />
     );
@@ -238,8 +240,8 @@ function ChatsContainer({
 
   return (
     <>
-      <table className="w-full text-sm text-left rounded-lg mt-6">
-        <thead className="text-white text-opacity-80 text-xs leading-[18px] font-bold uppercase border-white border-b border-opacity-60">
+      <table className="w-full text-sm text-left rounded-lg min-w-[640px]">
+        <thead className="text-theme-text-secondary text-xs leading-[18px] font-bold uppercase light:border-theme-sidebar-border border-white/10 border-b">
           <tr>
             <th scope="col" className="px-6 py-3 rounded-tl-lg">
               {t("recorded.table.id")}
@@ -274,7 +276,7 @@ function ChatsContainer({
       <div className="flex w-full justify-between items-center mt-6">
         <button
           onClick={handlePrevious}
-          className="px-4 py-2 rounded-lg border border-slate-200 text-slate-200 text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 disabled:invisible"
+          className="px-4 py-2 rounded-lg border border-theme-text-secondary text-theme-text-secondary text-sm items-center flex gap-x-2 hover:bg-theme-text-secondary hover:text-theme-bg-secondary disabled:invisible"
           disabled={offset === 0}
         >
           {" "}
@@ -282,7 +284,7 @@ function ChatsContainer({
         </button>
         <button
           onClick={handleNext}
-          className="px-4 py-2 rounded-lg border border-slate-200 text-slate-200 text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 disabled:invisible"
+          className="px-4 py-2 rounded-lg border border-slate-200 text-slate-200 light:text-theme-text-secondary light:border-theme-sidebar-border text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 disabled:invisible"
           disabled={!canNext}
         >
           Next Page
diff --git a/frontend/src/pages/GeneralSettings/EmbedChats/ChatRow/index.jsx b/frontend/src/pages/GeneralSettings/EmbedChats/ChatRow/index.jsx
index 8cd1e9ff9..650ea4e20 100644
--- a/frontend/src/pages/GeneralSettings/EmbedChats/ChatRow/index.jsx
+++ b/frontend/src/pages/GeneralSettings/EmbedChats/ChatRow/index.jsx
@@ -74,7 +74,7 @@ export default function ChatRow({ chat, onDelete }) {
         <td className="px-6 py-4 flex items-center gap-x-6">
           <button
             onClick={handleDelete}
-            className="font-medium px-2 py-1 rounded-lg hover:bg-sidebar-gradient text-white hover:text-white/80 hover:bg-opacity-20"
+            className="font-medium px-2 py-1 rounded-lg text-theme-text-primary hover:text-red-500"
           >
             <Trash className="h-5 w-5" />
           </button>
@@ -108,19 +108,19 @@ export default function ChatRow({ chat, onDelete }) {
 const TextPreview = ({ text, closeModal }) => {
   return (
     <div className="relative w-full md:max-w-2xl max-h-full">
-      <div className="relative bg-main-gradient rounded-lg shadow">
-        <div className="flex items-start justify-between p-4 border-b rounded-t border-gray-600">
+      <div className="w-full max-w-2xl bg-theme-bg-secondary rounded-lg shadow border-2 border-theme-modal-border overflow-hidden">
+        <div className="flex items-center justify-between p-6 border-b rounded-t border-theme-modal-border">
           <h3 className="text-xl font-semibold text-white">Viewing Text</h3>
           <button
             onClick={closeModal}
             type="button"
-            className="transition-all duration-300 text-gray-400 bg-transparent hover:border-white/60 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center bg-sidebar-button hover:bg-menu-item-selected-gradient hover:border-slate-100 hover:border-opacity-50 border-transparent border"
+            className="bg-transparent rounded-lg text-sm p-1.5 ml-auto inline-flex items-center bg-sidebar-button hover:bg-theme-modal-border hover:border-theme-modal-border hover:border-opacity-50 border-transparent border"
           >
-            <X className="text-gray-300 text-lg" />
+            <X className="text-white text-lg" />
           </button>
         </div>
         <div className="w-full p-6">
-          <pre className="w-full h-[200px] py-2 px-4 whitespace-pre-line overflow-auto rounded-lg bg-zinc-900 border border-gray-500 text-white text-sm">
+          <pre className="w-full h-[200px] py-2 px-4 whitespace-pre-line overflow-auto rounded-lg bg-zinc-900 light:bg-theme-bg-secondary border border-gray-500 text-white text-sm">
             {text}
           </pre>
         </div>
@@ -144,17 +144,21 @@ const ConnectionDetails = ({
   if (verbose) {
     return (
       <>
-        <p className="text-xs text-slate-400">sessionID: {sessionId}</p>
+        <p className="text-xs text-theme-text-secondary">
+          sessionID: {sessionId}
+        </p>
         {details.username && (
-          <p className="text-xs text-slate-400">username: {details.username}</p>
+          <p className="text-xs text-theme-text-secondary">
+            username: {details.username}
+          </p>
         )}
         {details.ip && (
-          <p className="text-xs text-slate-400">
+          <p className="text-xs text-theme-text-secondary">
             client ip address: {details.ip}
           </p>
         )}
         {details.host && (
-          <p className="text-xs text-slate-400">
+          <p className="text-xs text-theme-text-secondary">
             client host URL: {details.host}
           </p>
         )}
@@ -165,10 +169,14 @@ const ConnectionDetails = ({
   return (
     <>
       {details.username && (
-        <p className="text-xs text-slate-400">{details.username}</p>
+        <p className="text-xs text-theme-text-secondary">{details.username}</p>
+      )}
+      {details.ip && (
+        <p className="text-xs text-theme-text-secondary">{details.ip}</p>
+      )}
+      {details.host && (
+        <p className="text-xs text-theme-text-secondary">{details.host}</p>
       )}
-      {details.ip && <p className="text-xs text-slate-400">{details.ip}</p>}
-      {details.host && <p className="text-xs text-slate-400">{details.host}</p>}
     </>
   );
 };
diff --git a/frontend/src/pages/GeneralSettings/EmbedChats/index.jsx b/frontend/src/pages/GeneralSettings/EmbedChats/index.jsx
index 60e4db174..02cca3eb5 100644
--- a/frontend/src/pages/GeneralSettings/EmbedChats/index.jsx
+++ b/frontend/src/pages/GeneralSettings/EmbedChats/index.jsx
@@ -90,23 +90,23 @@ export default function EmbedChats() {
 
   return (
     <CanViewChatHistory>
-      <div className="w-screen h-screen overflow-hidden bg-sidebar flex">
+      <div className="w-screen h-screen overflow-hidden bg-theme-bg-container flex">
         <Sidebar />
         <div
           style={{ height: isMobile ? "100%" : "calc(100% - 32px)" }}
-          className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-main-gradient w-full h-full overflow-y-scroll"
+          className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-theme-bg-secondary w-full h-full overflow-y-scroll p-4 md:p-0"
         >
-          <div className="flex flex-col w-full px-1 md:pl-6 md:pr-[86px] md:py-6 py-16">
-            <div className="w-full flex flex-col gap-y-1 pb-6 border-white border-b-2 border-opacity-10">
-              <div className="flex gap-x-4 items-center">
-                <p className="text-lg leading-6 font-bold text-white">
+          <div className="flex flex-col w-full px-1 md:pl-6 md:pr-[50px] md:py-6 py-16">
+            <div className="w-full flex flex-col gap-y-1 pb-6 border-white/10 border-b-2">
+              <div className="flex flex-wrap gap-4 items-center">
+                <p className="text-lg leading-6 font-bold text-theme-text-primary">
                   {t("embed-chats.title")}
                 </p>
                 <div className="relative">
                   <button
                     ref={openMenuButton}
                     onClick={toggleMenu}
-                    className="flex items-center gap-x-2 px-4 py-1 rounded-lg bg-primary-button hover:text-white text-xs font-semibold hover:bg-secondary shadow-[0_4px_14px_rgba(0,0,0,0.25)] h-[34px] w-fit"
+                    className="flex items-center gap-x-2 px-4 py-1 rounded-lg bg-primary-button hover:light:bg-theme-bg-primary hover:text-theme-text-primary text-xs font-semibold hover:bg-secondary shadow-[0_4px_14px_rgba(0,0,0,0.25)] h-[34px] w-fit"
                   >
                     <Download size={18} weight="bold" />
                     {t("embed-chats.export")}
@@ -116,7 +116,7 @@ export default function EmbedChats() {
                     ref={menuRef}
                     className={`${
                       showMenu ? "slide-down" : "slide-up hidden"
-                    } z-20 w-fit rounded-lg absolute top-full right-0 bg-secondary mt-2 shadow-md`}
+                    } z-20 w-fit rounded-lg absolute top-full right-0 bg-secondary light:bg-theme-bg-secondary mt-2 shadow-md`}
                   >
                     <div className="py-2">
                       {Object.entries(exportOptions).map(([key, data]) => (
@@ -126,7 +126,7 @@ export default function EmbedChats() {
                             handleDumpChats(key);
                             setShowMenu(false);
                           }}
-                          className="w-full text-left px-4 py-2 text-white text-sm hover:bg-[#3D4147]"
+                          className="w-full text-left px-4 py-2 text-white text-sm hover:bg-[#3D4147] light:hover:bg-theme-sidebar-item-hover"
                         >
                           {data.name}
                         </button>
@@ -135,11 +135,13 @@ export default function EmbedChats() {
                   </div>
                 </div>
               </div>
-              <p className="text-xs leading-[18px] font-base text-white text-opacity-60">
+              <p className="text-xs leading-[18px] font-base text-theme-text-secondary mt-2">
                 {t("embed-chats.description")}
               </p>
             </div>
-            <ChatsContainer />
+            <div className="overflow-x-auto mt-6">
+              <ChatsContainer />
+            </div>
           </div>
         </div>
       </div>
@@ -181,10 +183,10 @@ function ChatsContainer() {
       <Skeleton.default
         height="80vh"
         width="100%"
-        highlightColor="#3D4147"
-        baseColor="#2C2F35"
+        highlightColor="var(--theme-bg-primary)"
+        baseColor="var(--theme-bg-secondary)"
         count={1}
-        className="w-full p-4 rounded-b-2xl rounded-tr-2xl rounded-tl-sm mt-6"
+        className="w-full p-4 rounded-b-2xl rounded-tr-2xl rounded-tl-sm"
         containerClassName="flex w-full"
       />
     );
@@ -192,8 +194,8 @@ function ChatsContainer() {
 
   return (
     <>
-      <table className="w-full text-sm text-left rounded-lg mt-5">
-        <thead className="text-white text-opacity-80 text-sm font-bold uppercase border-white border-b border-opacity-60">
+      <table className="w-full text-sm text-left rounded-lg min-w-[640px]">
+        <thead className="text-theme-text-secondary text-xs leading-[18px] font-bold uppercase border-white/10 border-b">
           <tr>
             <th scope="col" className="px-6 py-3 rounded-tl-lg">
               {t("embed-chats.table.embed")}
@@ -222,10 +224,10 @@ function ChatsContainer() {
             ))}
         </tbody>
       </table>
-      <div className="flex w-full justify-between items-center">
+      <div className="flex w-full justify-between items-center mt-6">
         <button
           onClick={handlePrevious}
-          className="px-4 py-2 rounded-lg border border-slate-200 text-slate-200 text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 disabled:invisible"
+          className="px-4 py-2 rounded-lg border border-theme-text-secondary text-theme-text-secondary text-sm items-center flex gap-x-2 hover:bg-theme-text-secondary hover:text-theme-bg-secondary disabled:invisible"
           disabled={offset === 0}
         >
           {" "}
@@ -233,7 +235,7 @@ function ChatsContainer() {
         </button>
         <button
           onClick={handleNext}
-          className="px-4 py-2 rounded-lg border border-slate-200 text-slate-200 text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 disabled:invisible"
+          className="px-4 py-2 rounded-lg border border-theme-text-secondary text-theme-text-secondary text-sm items-center flex gap-x-2 hover:bg-theme-text-secondary hover:text-theme-bg-secondary disabled:invisible"
           disabled={!canNext}
         >
           {t("common.next")}
diff --git a/frontend/src/pages/GeneralSettings/EmbedConfigs/EmbedRow/CodeSnippetModal/index.jsx b/frontend/src/pages/GeneralSettings/EmbedConfigs/EmbedRow/CodeSnippetModal/index.jsx
index a16ca9f42..f02640d72 100644
--- a/frontend/src/pages/GeneralSettings/EmbedConfigs/EmbedRow/CodeSnippetModal/index.jsx
+++ b/frontend/src/pages/GeneralSettings/EmbedConfigs/EmbedRow/CodeSnippetModal/index.jsx
@@ -6,32 +6,31 @@ import "highlight.js/styles/github-dark-dimmed.min.css";
 
 export default function CodeSnippetModal({ embed, closeModal }) {
   return (
-    <div className="relative max-w-2xl max-h-full">
-      <div className="relative bg-main-gradient rounded-lg shadow">
-        <div className="flex items-start justify-between p-4 border-b rounded-t border-gray-500/50">
-          <h3 className="text-xl font-semibold text-white">
-            Copy your embed code
-          </h3>
+    <div className="fixed inset-0 z-50 overflow-auto bg-black bg-opacity-50 flex items-center justify-center">
+      <div className="relative w-full max-w-2xl bg-theme-bg-secondary rounded-lg shadow border-2 border-theme-modal-border">
+        <div className="relative p-6 border-b rounded-t border-theme-modal-border">
+          <div className="w-full flex gap-x-2 items-center">
+            <h3 className="text-xl font-semibold text-white overflow-hidden overflow-ellipsis whitespace-nowrap">
+              Copy your embed code
+            </h3>
+          </div>
           <button
             onClick={closeModal}
             type="button"
-            className="transition-all duration-300 text-gray-400 bg-transparent hover:border-white/60 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center bg-sidebar-button hover:bg-menu-item-selected-gradient hover:border-slate-100 hover:border-opacity-50 border-transparent border"
-            data-modal-hide="staticModal"
+            className="absolute top-4 right-4 transition-all duration-300 bg-transparent rounded-lg text-sm p-1 inline-flex items-center hover:bg-theme-modal-border hover:border-theme-modal-border hover:border-opacity-50 border-transparent border"
           >
-            <X className="text-gray-300 text-lg" />
+            <X size={24} weight="bold" className="text-white" />
           </button>
         </div>
-        <div>
-          <div className="p-6 space-y-6 flex h-auto max-h-[80vh] w-full overflow-y-scroll">
-            <div className="w-full flex flex-col gap-y-6">
-              <ScriptTag embed={embed} />
-            </div>
+        <div className="px-7 py-6">
+          <div className="space-y-6 max-h-[60vh] overflow-y-auto pr-2">
+            <ScriptTag embed={embed} />
           </div>
-          <div className="flex w-full justify-between items-center p-6 space-x-2 border-t rounded-b border-gray-500/50">
+          <div className="flex justify-between items-center mt-6 pt-6 border-t border-theme-modal-border">
             <button
               onClick={closeModal}
               type="button"
-              className="px-4 py-2 rounded-lg text-white hover:bg-stone-900 transition-all duration-300"
+              className="transition-all duration-300 text-white hover:bg-zinc-700 px-4 py-2 rounded-lg text-sm"
             >
               Close
             </button>
@@ -83,14 +82,14 @@ const ScriptTag = ({ embed }) => {
         <label className="block text-sm font-medium text-white">
           HTML Script Tag Embed Code
         </label>
-        <p className="text-slate-300 text-xs">
+        <p className="text-secondary text-xs">
           Have your workspace chat embed function like a help desk chat bottom
           in the corner of your website.
         </p>
         <a
           href="https://github.com/Mintplex-Labs/anything-llm/tree/master/embed/README.md"
           target="_blank"
-          className="text-blue-300 hover:underline"
+          className="text-blue-300 light:text-blue-500 hover:underline"
         >
           View all style and configuration options &rarr;
         </a>
@@ -98,7 +97,7 @@ const ScriptTag = ({ embed }) => {
       <button
         disabled={copied}
         onClick={handleClick}
-        className="disabled:border disabled:border-green-300 border border-transparent relative w-full font-mono flex bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none p-2.5"
+        className="disabled:border disabled:border-green-300 disabled:light:border-green-600 border border-transparent relative w-full font-mono flex bg-zinc-900 light:invert text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none p-2.5"
       >
         <div
           className="flex w-full text-left flex-col gap-y-1 pr-6 pl-4 whitespace-pre-line"
@@ -112,7 +111,7 @@ const ScriptTag = ({ embed }) => {
         {copied ? (
           <CheckCircle
             size={14}
-            className="text-green-300 absolute top-2 right-2"
+            className="text-green-300 light:text-green-600 absolute top-2 right-2"
           />
         ) : (
           <CopySimple size={14} className="absolute top-2 right-2" />
diff --git a/frontend/src/pages/GeneralSettings/EmbedConfigs/EmbedRow/EditEmbedModal/index.jsx b/frontend/src/pages/GeneralSettings/EmbedConfigs/EmbedRow/EditEmbedModal/index.jsx
index a1b15eef0..65b430930 100644
--- a/frontend/src/pages/GeneralSettings/EmbedConfigs/EmbedRow/EditEmbedModal/index.jsx
+++ b/frontend/src/pages/GeneralSettings/EmbedConfigs/EmbedRow/EditEmbedModal/index.jsx
@@ -30,24 +30,25 @@ export default function EditEmbedModal({ embed, closeModal }) {
   };
 
   return (
-    <div className="relative max-w-2xl max-h-full">
-      <div className="relative bg-main-gradient rounded-lg shadow">
-        <div className="flex items-start justify-between p-4 border-b rounded-t border-gray-500/50">
-          <h3 className="text-xl font-semibold text-white">
-            Update embed #{embed.id}
-          </h3>
+    <div className="fixed inset-0 z-50 overflow-auto bg-black bg-opacity-50 flex items-center justify-center">
+      <div className="relative w-full max-w-2xl bg-theme-bg-secondary rounded-lg shadow border-2 border-theme-modal-border">
+        <div className="relative p-6 border-b rounded-t border-theme-modal-border">
+          <div className="w-full flex gap-x-2 items-center">
+            <h3 className="text-xl font-semibold text-white overflow-hidden overflow-ellipsis whitespace-nowrap">
+              Update embed #{embed.id}
+            </h3>
+          </div>
           <button
             onClick={closeModal}
             type="button"
-            className="transition-all duration-300 text-gray-400 bg-transparent hover:border-white/60 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center bg-sidebar-button hover:bg-menu-item-selected-gradient hover:border-slate-100 hover:border-opacity-50 border-transparent border"
-            data-modal-hide="staticModal"
+            className="absolute top-4 right-4 transition-all duration-300 bg-transparent rounded-lg text-sm p-1 inline-flex items-center hover:bg-theme-modal-border hover:border-theme-modal-border hover:border-opacity-50 border-transparent border"
           >
-            <X className="text-gray-300 text-lg" />
+            <X size={24} weight="bold" className="text-white" />
           </button>
         </div>
-        <form onSubmit={handleUpdate}>
-          <div className="p-6 space-y-6 flex h-auto max-h-[80vh] w-full overflow-y-scroll">
-            <div className="w-full flex flex-col gap-y-6">
+        <div className="px-7 py-6">
+          <form onSubmit={handleUpdate}>
+            <div className="space-y-6 max-h-[60vh] overflow-y-auto pr-2">
               <WorkspaceSelection defaultValue={embed.workspace.id} />
               <ChatModeSelection defaultValue={embed.chat_mode} />
               <PermittedDomains
@@ -89,32 +90,32 @@ export default function EditEmbedModal({ embed, closeModal }) {
               />
 
               {error && <p className="text-red-400 text-sm">Error: {error}</p>}
-              <p className="text-white text-xs md:text-sm pb-8">
+              <p className="text-white text-opacity-60 text-xs md:text-sm">
                 After creating an embed you will be provided a link that you can
                 publish on your website with a simple
-                <code className="bg-stone-800 text-white mx-1 px-1 rounded-sm">
+                <code className="bg-theme-settings-input-bg text-white mx-1 px-1 rounded-sm">
                   &lt;script&gt;
                 </code>{" "}
                 tag.
               </p>
             </div>
-          </div>
-          <div className="flex w-full justify-between items-center p-6 space-x-2 border-t rounded-b border-gray-500/50">
-            <button
-              onClick={closeModal}
-              type="button"
-              className="px-4 py-2 rounded-lg text-white hover:bg-stone-900 transition-all duration-300"
-            >
-              Cancel
-            </button>
-            <button
-              type="submit"
-              className="transition-all duration-300 border border-slate-200 px-4 py-2 rounded-lg text-white text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 focus:ring-gray-800"
-            >
-              Update embed
-            </button>
-          </div>
-        </form>
+            <div className="flex justify-between items-center mt-6 pt-6 border-t border-theme-modal-border">
+              <button
+                onClick={closeModal}
+                type="button"
+                className="transition-all duration-300 text-white hover:bg-zinc-700 px-4 py-2 rounded-lg text-sm"
+              >
+                Cancel
+              </button>
+              <button
+                type="submit"
+                className="transition-all duration-300 bg-white text-black hover:opacity-60 px-4 py-2 rounded-lg text-sm"
+              >
+                Update embed
+              </button>
+            </div>
+          </form>
+        </div>
       </div>
     </div>
   );
diff --git a/frontend/src/pages/GeneralSettings/EmbedConfigs/EmbedRow/index.jsx b/frontend/src/pages/GeneralSettings/EmbedConfigs/EmbedRow/index.jsx
index 24c939915..222ca3fdc 100644
--- a/frontend/src/pages/GeneralSettings/EmbedConfigs/EmbedRow/index.jsx
+++ b/frontend/src/pages/GeneralSettings/EmbedConfigs/EmbedRow/index.jsx
@@ -87,7 +87,7 @@ export default function EmbedRow({ embed }) {
         <td className="px-6 py-4 flex items-center gap-x-6">
           <button
             onClick={openSettingsModal}
-            className="font-medium text-white text-opacity-80 rounded-lg hover:text-white px-2 py-1 hover:text-opacity-60 hover:bg-white hover:bg-opacity-10"
+            className="font-medium text-white text-opacity-80 rounded-lg hover:text-white hover:light:text-gray-500 px-2 py-1 hover:text-opacity-60 hover:bg-white hover:bg-opacity-10"
           >
             <DotsThreeOutline weight="fill" className="h-5 w-5" />
           </button>
diff --git a/frontend/src/pages/GeneralSettings/EmbedConfigs/NewEmbedModal/index.jsx b/frontend/src/pages/GeneralSettings/EmbedConfigs/NewEmbedModal/index.jsx
index 9aa9a9db5..38f2b3d17 100644
--- a/frontend/src/pages/GeneralSettings/EmbedConfigs/NewEmbedModal/index.jsx
+++ b/frontend/src/pages/GeneralSettings/EmbedConfigs/NewEmbedModal/index.jsx
@@ -37,24 +37,25 @@ export default function NewEmbedModal({ closeModal }) {
   };
 
   return (
-    <div className="relative w-full max-w-2xl max-h-full">
-      <div className="relative bg-main-gradient rounded-lg shadow">
-        <div className="flex items-start justify-between p-4 border-b rounded-t border-gray-500/50">
-          <h3 className="text-xl font-semibold text-white">
-            Create new embed for workspace
-          </h3>
+    <div className="fixed inset-0 z-50 overflow-auto bg-black bg-opacity-50 flex items-center justify-center">
+      <div className="relative w-full max-w-2xl bg-theme-bg-secondary rounded-lg shadow border-2 border-theme-modal-border">
+        <div className="relative p-6 border-b rounded-t border-theme-modal-border">
+          <div className="w-full flex gap-x-2 items-center">
+            <h3 className="text-xl font-semibold text-white overflow-hidden overflow-ellipsis whitespace-nowrap">
+              Create new embed for workspace
+            </h3>
+          </div>
           <button
             onClick={closeModal}
             type="button"
-            className="transition-all duration-300 text-gray-400 bg-transparent hover:border-white/60 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center bg-sidebar-button hover:bg-menu-item-selected-gradient hover:border-slate-100 hover:border-opacity-50 border-transparent border"
-            data-modal-hide="staticModal"
+            className="absolute top-4 right-4 transition-all duration-300 bg-transparent rounded-lg text-sm p-1 inline-flex items-center hover:bg-theme-modal-border hover:border-theme-modal-border hover:border-opacity-50 border-transparent border"
           >
-            <X className="text-gray-300 text-lg" />
+            <X size={24} weight="bold" className="text-white" />
           </button>
         </div>
-        <form onSubmit={handleCreate}>
-          <div className="p-6 space-y-6 flex h-auto max-h-[80vh] w-full overflow-y-scroll">
-            <div className="w-full flex flex-col gap-y-6">
+        <div className="px-7 py-6">
+          <form onSubmit={handleCreate}>
+            <div className="space-y-6 max-h-[60vh] overflow-y-auto pr-2">
               <WorkspaceSelection />
               <ChatModeSelection />
               <PermittedDomains />
@@ -85,32 +86,32 @@ export default function NewEmbedModal({ closeModal }) {
               />
 
               {error && <p className="text-red-400 text-sm">Error: {error}</p>}
-              <p className="text-white text-xs md:text-sm pb-8">
+              <p className="text-white text-opacity-60 text-xs md:text-sm">
                 After creating an embed you will be provided a link that you can
                 publish on your website with a simple
-                <code className="bg-stone-800 text-white mx-1 px-1 rounded-sm">
+                <code className="light:bg-stone-300 bg-stone-900 text-white mx-1 px-1 rounded-sm">
                   &lt;script&gt;
                 </code>{" "}
                 tag.
               </p>
             </div>
-          </div>
-          <div className="flex w-full justify-between items-center p-6 space-x-2 border-t rounded-b border-gray-500/50">
-            <button
-              onClick={closeModal}
-              type="button"
-              className="px-4 py-2 rounded-lg text-white hover:bg-stone-900 transition-all duration-300"
-            >
-              Cancel
-            </button>
-            <button
-              type="submit"
-              className="transition-all duration-300 border border-slate-200 px-4 py-2 rounded-lg text-white text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 focus:ring-gray-800"
-            >
-              Create embed
-            </button>
-          </div>
-        </form>
+            <div className="flex justify-between items-center mt-6 pt-6 border-t border-theme-modal-border">
+              <button
+                onClick={closeModal}
+                type="button"
+                className="transition-all duration-300 text-white hover:bg-zinc-700 px-4 py-2 rounded-lg text-sm"
+              >
+                Cancel
+              </button>
+              <button
+                type="submit"
+                className="transition-all duration-300 bg-white text-black hover:opacity-60 px-4 py-2 rounded-lg text-sm"
+              >
+                Create embed
+              </button>
+            </div>
+          </form>
+        </div>
       </div>
     </div>
   );
@@ -135,7 +136,7 @@ export const WorkspaceSelection = ({ defaultValue = null }) => {
         >
           Workspace
         </label>
-        <p className="text-slate-300 text-xs">
+        <p className="text-secondary text-xs">
           This is the workspace your chat window will be based on. All defaults
           will be inherited from the workspace unless overridden by this config.
         </p>
@@ -144,7 +145,7 @@ export const WorkspaceSelection = ({ defaultValue = null }) => {
         name="workspace_id"
         required={true}
         defaultValue={defaultValue}
-        className="min-w-[15rem] rounded-lg bg-zinc-900 px-4 py-2 text-sm text-white focus:ring-blue-500 focus:border-blue-500"
+        className="min-w-[15rem] rounded-lg bg-theme-settings-input-bg px-4 py-2 text-sm text-white focus:ring-blue-500 focus:border-blue-500"
       >
         {workspaces.map((workspace) => {
           return (
@@ -173,7 +174,7 @@ export const ChatModeSelection = ({ defaultValue = null }) => {
         >
           Allowed chat method
         </label>
-        <p className="text-slate-300 text-xs">
+        <p className="text-secondary text-xs">
           Set how your chatbot should operate. Query means it will only respond
           if a document helps answer the query.
           <br />
@@ -183,9 +184,11 @@ export const ChatModeSelection = ({ defaultValue = null }) => {
       </div>
       <div className="mt-2 gap-y-3 flex flex-col">
         <label
-          className={`transition-all duration-300 w-full h-11 p-2.5 bg-white/10 rounded-lg flex justify-start items-center gap-2.5 cursor-pointer border border-transparent ${
-            chatMode === "chat" ? "border-white border-opacity-40" : ""
-          } hover:border-white/60`}
+          className={`transition-all duration-300 w-full h-11 p-2.5 rounded-lg flex justify-start items-center gap-2.5 cursor-pointer border ${
+            chatMode === "chat"
+              ? "border-theme-sidebar-item-workspace-active bg-theme-bg-secondary"
+              : "border-theme-sidebar-border"
+          } hover:border-theme-sidebar-border hover:bg-theme-bg-secondary`}
         >
           <input
             type="radio"
@@ -196,18 +199,22 @@ export const ChatModeSelection = ({ defaultValue = null }) => {
             className="hidden"
           />
           <div
-            className={`w-4 h-4 rounded-full border-2 border-white mr-2 ${
-              chatMode === "chat" ? "bg-white" : ""
+            className={`w-4 h-4 rounded-full border-2 border-theme-sidebar-border mr-2 ${
+              chatMode === "chat"
+                ? "bg-[var(--theme-sidebar-item-workspace-active)]"
+                : ""
             }`}
           ></div>
-          <div className="text-white text-sm font-medium font-['Plus Jakarta Sans'] leading-tight">
+          <div className="text-theme-text-primary text-sm font-medium font-['Plus Jakarta Sans'] leading-tight">
             Chat: Respond to all questions regardless of context
           </div>
         </label>
         <label
-          className={`transition-all duration-300 w-full h-11 p-2.5 bg-white/10 rounded-lg flex justify-start items-center gap-2.5 cursor-pointer border border-transparent ${
-            chatMode === "query" ? "border-white border-opacity-40" : ""
-          } hover:border-white/60`}
+          className={`transition-all duration-300 w-full h-11 p-2.5 rounded-lg flex justify-start items-center gap-2.5 cursor-pointer border ${
+            chatMode === "query"
+              ? "border-theme-sidebar-item-workspace-active bg-theme-bg-secondary"
+              : "border-theme-sidebar-border"
+          } hover:border-theme-sidebar-border hover:bg-theme-bg-secondary`}
         >
           <input
             type="radio"
@@ -218,11 +225,13 @@ export const ChatModeSelection = ({ defaultValue = null }) => {
             className="hidden"
           />
           <div
-            className={`w-4 h-4 rounded-full border-2 border-white mr-2 ${
-              chatMode === "query" ? "bg-white" : ""
+            className={`w-4 h-4 rounded-full border-2 border-theme-sidebar-border mr-2 ${
+              chatMode === "query"
+                ? "bg-[var(--theme-sidebar-item-workspace-active)]"
+                : ""
             }`}
           ></div>
-          <div className="text-white text-sm font-medium font-['Plus Jakarta Sans'] leading-tight">
+          <div className="text-theme-text-primary text-sm font-medium font-['Plus Jakarta Sans'] leading-tight">
             Query: Only respond to chats related to documents in workspace
           </div>
         </label>
@@ -278,7 +287,7 @@ export const PermittedDomains = ({ defaultValue = [] }) => {
         >
           Restrict requests from domains
         </label>
-        <p className="text-slate-300 text-xs">
+        <p className="test-secondary text-xs">
           This filter will block any requests that come from a domain other than
           the list below.
           <br />
@@ -292,9 +301,9 @@ export const PermittedDomains = ({ defaultValue = [] }) => {
         onBlur={handleBlur}
         placeholder="https://mysite.com, https://anythingllm.com"
         classNames={{
-          tag: "bg-blue-300/10 text-zinc-800 m-1",
+          tag: "bg-theme-settings-input-bg light:bg-black/10 bg-blue-300/10 text-zinc-800",
           input:
-            "flex bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none p-2.5",
+            "flex p-1 !bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none",
         }}
       />
     </div>
@@ -308,12 +317,12 @@ export const NumberInput = ({ name, title, hint, defaultValue = 0 }) => {
         <label htmlFor={name} className="block text-sm font-medium text-white">
           {title}
         </label>
-        <p className="text-slate-300 text-xs">{hint}</p>
+        <p className="test-secondary text-xs">{hint}</p>
       </div>
       <input
         type="number"
         name={name}
-        className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-[15rem] p-2.5"
+        className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-[15rem] p-2.5"
         min={0}
         defaultValue={defaultValue}
         onScroll={(e) => e.target.blur()}
@@ -331,7 +340,7 @@ export const BooleanInput = ({ name, title, hint, defaultValue = null }) => {
         <label htmlFor={name} className="block text-sm font-medium text-white">
           {title}
         </label>
-        <p className="text-slate-300 text-xs">{hint}</p>
+        <p className="test-secondary text-xs">{hint}</p>
       </div>
       <label className="relative inline-flex cursor-pointer items-center">
         <input
diff --git a/frontend/src/pages/GeneralSettings/EmbedConfigs/index.jsx b/frontend/src/pages/GeneralSettings/EmbedConfigs/index.jsx
index 442a03d93..58dff17be 100644
--- a/frontend/src/pages/GeneralSettings/EmbedConfigs/index.jsx
+++ b/frontend/src/pages/GeneralSettings/EmbedConfigs/index.jsx
@@ -16,30 +16,35 @@ export default function EmbedConfigs() {
   const { isOpen, openModal, closeModal } = useModal();
   const { t } = useTranslation();
   return (
-    <div className="w-screen h-screen overflow-hidden bg-sidebar flex">
+    <div className="w-screen h-screen overflow-hidden bg-theme-bg-container flex">
       <Sidebar />
       <div
         style={{ height: isMobile ? "100%" : "calc(100% - 32px)" }}
-        className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-main-gradient w-full h-full overflow-y-scroll"
+        className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-theme-bg-secondary w-full h-full overflow-y-scroll p-4 md:p-0"
       >
         <div className="flex flex-col w-full px-1 md:pl-6 md:pr-[50px] md:py-6 py-16">
-          <div className="w-full flex flex-col gap-y-1 pb-6 border-white border-b-2 border-opacity-10">
+          <div className="w-full flex flex-col gap-y-1 pb-6 border-white/10 border-b-2">
             <div className="items-center flex gap-x-4">
-              <p className="text-lg leading-6 font-bold text-white">
+              <p className="text-lg leading-6 font-bold text-theme-text-primary">
                 {t("embeddable.title")}
               </p>
             </div>
-            <p className="text-xs leading-[18px] font-base text-white text-opacity-60">
+            <p className="text-xs leading-[18px] font-base text-theme-text-secondary mt-2">
               {t("embeddable.description")}
             </p>
           </div>
           <div className="w-full justify-end flex">
-            <CTAButton onClick={openModal} className="mt-3 mr-0 -mb-14 z-10">
+            <CTAButton
+              onClick={openModal}
+              className="mt-3 mr-0 mb-4 md:-mb-14 z-10"
+            >
               <CodeBlock className="h-4 w-4" weight="bold" />{" "}
               {t("embeddable.create")}
             </CTAButton>
           </div>
-          <EmbedContainer />
+          <div className="overflow-x-auto mt-6">
+            <EmbedContainer />
+          </div>
         </div>
         <ModalWrapper isOpen={isOpen}>
           <NewEmbedModal closeModal={closeModal} />
@@ -68,18 +73,18 @@ function EmbedContainer() {
       <Skeleton.default
         height="80vh"
         width="100%"
-        highlightColor="#3D4147"
-        baseColor="#2C2F35"
+        highlightColor="var(--theme-bg-primary)"
+        baseColor="var(--theme-bg-secondary)"
         count={1}
-        className="w-full p-4 rounded-b-2xl rounded-tr-2xl rounded-tl-sm mt-6"
+        className="w-full p-4 rounded-b-2xl rounded-tr-2xl rounded-tl-sm"
         containerClassName="flex w-full"
       />
     );
   }
 
   return (
-    <table className="w-full text-sm text-left rounded-lg mt-6">
-      <thead className="text-white text-opacity-80 text-xs leading-[18px] font-bold uppercase border-white border-b border-opacity-60">
+    <table className="w-full text-sm text-left rounded-lg min-w-[640px]">
+      <thead className="text-theme-text-secondary text-xs leading-[18px] font-bold uppercase border-white/10 border-b">
         <tr>
           <th scope="col" className="px-6 py-3 rounded-tl-lg">
             {t("embeddable.table.workspace")}
diff --git a/frontend/src/pages/GeneralSettings/EmbeddingPreference/index.jsx b/frontend/src/pages/GeneralSettings/EmbeddingPreference/index.jsx
index d95c6b112..4f3dd8ef5 100644
--- a/frontend/src/pages/GeneralSettings/EmbeddingPreference/index.jsx
+++ b/frontend/src/pages/GeneralSettings/EmbeddingPreference/index.jsx
@@ -211,12 +211,12 @@ export default function GeneralEmbeddingPreference() {
   );
 
   return (
-    <div className="w-screen h-screen overflow-hidden bg-sidebar flex">
+    <div className="w-screen h-screen overflow-hidden bg-theme-bg-container flex">
       <Sidebar />
       {loading ? (
         <div
           style={{ height: isMobile ? "100%" : "calc(100% - 32px)" }}
-          className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-main-gradient w-full h-full overflow-y-scroll"
+          className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-theme-bg-secondary w-full h-full overflow-y-scroll p-4 md:p-0"
         >
           <div className="w-full h-full flex justify-center items-center">
             <PreLoader />
@@ -225,15 +225,15 @@ export default function GeneralEmbeddingPreference() {
       ) : (
         <div
           style={{ height: isMobile ? "100%" : "calc(100% - 32px)" }}
-          className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-main-gradient w-full h-full overflow-y-scroll"
+          className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-theme-bg-secondary w-full h-full overflow-y-scroll p-4 md:p-0"
         >
           <form
             id="embedding-form"
             onSubmit={handleSubmit}
             className="flex w-full"
           >
-            <div className="flex flex-col w-full px-1 md:pl-6 md:pr-[50px] md:py-6 py-16">
-              <div className="w-full flex flex-col gap-y-1 pb-6 border-white border-b-2 border-opacity-10">
+            <div className="flex flex-col w-full px-1 md:pl-6 md:pr-[50px] py-16 md:py-6">
+              <div className="w-full flex flex-col gap-y-1 pb-6 border-white light:border-theme-sidebar-border border-b-2 border-opacity-10">
                 <div className="flex gap-x-4 items-center">
                   <p className="text-lg leading-6 font-bold text-white">
                     {t("embedding.title")}
@@ -266,20 +266,20 @@ export default function GeneralEmbeddingPreference() {
                   />
                 )}
                 {searchMenuOpen ? (
-                  <div className="absolute top-0 left-0 w-full max-w-[640px] max-h-[310px] overflow-auto white-scrollbar min-h-[64px] bg-dark-input rounded-lg flex flex-col justify-between cursor-pointer border-2 border-primary-button z-20">
+                  <div className="absolute top-0 left-0 w-full max-w-[640px] max-h-[310px] overflow-auto white-scrollbar min-h-[64px] bg-theme-settings-input-bg rounded-lg flex flex-col justify-between cursor-pointer border-2 border-primary-button z-20">
                     <div className="w-full flex flex-col gap-y-1">
-                      <div className="flex items-center sticky top-0 border-b border-[#9CA3AF] mx-4 bg-dark-input">
+                      <div className="flex items-center sticky top-0 border-b border-[#9CA3AF] mx-4 bg-theme-settings-input-bg">
                         <MagnifyingGlass
                           size={20}
                           weight="bold"
-                          className="absolute left-4 z-30 text-white -ml-4 my-2"
+                          className="absolute left-4 z-30 text-theme-text-primary -ml-4 my-2"
                         />
                         <input
                           type="text"
                           name="embedder-search"
                           autoComplete="off"
                           placeholder="Search all embedding providers"
-                          className="-ml-4 my-2 bg-transparent z-20 pl-12 h-[38px] w-full px-4 py-1 text-sm outline-none text-white placeholder:text-white placeholder:font-medium"
+                          className="-ml-4 my-2 bg-transparent z-20 pl-12 h-[38px] w-full px-4 py-1 text-sm outline-none text-theme-text-primary placeholder:text-theme-text-primary placeholder:font-medium"
                           onChange={(e) => setSearchQuery(e.target.value)}
                           ref={searchInputRef}
                           onKeyDown={(e) => {
@@ -310,7 +310,7 @@ export default function GeneralEmbeddingPreference() {
                   </div>
                 ) : (
                   <button
-                    className="w-full max-w-[640px] h-[64px] bg-dark-input rounded-lg flex items-center p-[14px] justify-between cursor-pointer border-2 border-transparent hover:border-primary-button transition-all duration-300"
+                    className="w-full max-w-[640px] h-[64px] bg-theme-settings-input-bg rounded-lg flex items-center p-[14px] justify-between cursor-pointer border-2 border-transparent hover:border-primary-button transition-all duration-300"
                     type="button"
                     onClick={() => setSearchMenuOpen(true)}
                   >
diff --git a/frontend/src/pages/GeneralSettings/EmbeddingTextSplitterPreference/index.jsx b/frontend/src/pages/GeneralSettings/EmbeddingTextSplitterPreference/index.jsx
index f1f2df3e4..ae05a2fad 100644
--- a/frontend/src/pages/GeneralSettings/EmbeddingTextSplitterPreference/index.jsx
+++ b/frontend/src/pages/GeneralSettings/EmbeddingTextSplitterPreference/index.jsx
@@ -63,12 +63,12 @@ export default function EmbeddingTextSplitterPreference() {
   }, []);
 
   return (
-    <div className="w-screen h-screen overflow-hidden bg-sidebar flex">
+    <div className="w-screen h-screen overflow-hidden bg-theme-bg-container flex">
       <Sidebar />
       {loading ? (
         <div
           style={{ height: isMobile ? "100%" : "calc(100% - 32px)" }}
-          className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-main-gradient w-full h-full overflow-y-scroll"
+          className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-theme-bg-secondary w-full h-full overflow-y-scroll p-4 md:p-0"
         >
           <div className="w-full h-full flex justify-center items-center">
             <PreLoader />
@@ -77,7 +77,7 @@ export default function EmbeddingTextSplitterPreference() {
       ) : (
         <div
           style={{ height: isMobile ? "100%" : "calc(100% - 32px)" }}
-          className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-main-gradient w-full h-full overflow-y-scroll"
+          className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-theme-bg-secondary w-full h-full overflow-y-scroll p-4 md:p-0"
         >
           <form
             onSubmit={handleSubmit}
@@ -85,7 +85,7 @@ export default function EmbeddingTextSplitterPreference() {
             className="flex w-full"
           >
             <div className="flex flex-col w-full px-1 md:pl-6 md:pr-[50px] md:py-6 py-16">
-              <div className="w-full flex flex-col gap-y-1 pb-4 border-white border-b-2 border-opacity-10">
+              <div className="w-full flex flex-col gap-y-1 pb-4 border-white light:border-theme-sidebar-border border-b-2 border-opacity-10">
                 <div className="flex gap-x-4 items-center">
                   <p className="text-lg leading-6 font-bold text-white">
                     {t("text.title")}
@@ -124,7 +124,7 @@ export default function EmbeddingTextSplitterPreference() {
                     min={1}
                     max={settings?.max_embed_chunk_size || 1000}
                     onWheel={(e) => e?.currentTarget?.blur()}
-                    className="border-none bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+                    className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                     placeholder="maximum length of vectorized text"
                     defaultValue={
                       isNullOrNaN(settings?.text_splitter_chunk_size)
@@ -156,7 +156,7 @@ export default function EmbeddingTextSplitterPreference() {
                     name="text_splitter_chunk_overlap"
                     min={0}
                     onWheel={(e) => e?.currentTarget?.blur()}
-                    className="border-none bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+                    className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                     placeholder="maximum length of vectorized text"
                     defaultValue={
                       isNullOrNaN(settings?.text_splitter_chunk_overlap)
diff --git a/frontend/src/pages/GeneralSettings/LLMPreference/index.jsx b/frontend/src/pages/GeneralSettings/LLMPreference/index.jsx
index 9ca39d52b..252418d67 100644
--- a/frontend/src/pages/GeneralSettings/LLMPreference/index.jsx
+++ b/frontend/src/pages/GeneralSettings/LLMPreference/index.jsx
@@ -360,12 +360,12 @@ export default function GeneralLLMPreference() {
     (llm) => llm.value === selectedLLM
   );
   return (
-    <div className="w-screen h-screen overflow-hidden bg-sidebar flex">
+    <div className="w-screen h-screen overflow-hidden bg-theme-bg-container flex">
       <Sidebar />
       {loading ? (
         <div
           style={{ height: isMobile ? "100%" : "calc(100% - 32px)" }}
-          className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-main-gradient w-full h-full overflow-y-scroll"
+          className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-theme-bg-secondary w-full h-full overflow-y-scroll p-4 md:p-0"
         >
           <div className="w-full h-full flex justify-center items-center">
             <PreLoader />
@@ -374,11 +374,11 @@ export default function GeneralLLMPreference() {
       ) : (
         <div
           style={{ height: isMobile ? "100%" : "calc(100% - 32px)" }}
-          className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-main-gradient w-full h-full overflow-y-scroll"
+          className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-theme-bg-secondary w-full h-full overflow-y-scroll p-4 md:p-0"
         >
           <form onSubmit={handleSubmit} className="flex w-full">
             <div className="flex flex-col w-full px-1 md:pl-6 md:pr-[50px] md:py-6 py-16">
-              <div className="w-full flex flex-col gap-y-1 pb-6 border-white border-b-2 border-opacity-10">
+              <div className="w-full flex flex-col gap-y-1 pb-6 border-white light:border-theme-sidebar-border border-b-2 border-opacity-10">
                 <div className="flex gap-x-4 items-center">
                   <p className="text-lg leading-6 font-bold text-white">
                     {t("llm.title")}
@@ -409,20 +409,20 @@ export default function GeneralLLMPreference() {
                   />
                 )}
                 {searchMenuOpen ? (
-                  <div className="absolute top-0 left-0 w-full max-w-[640px] max-h-[310px] overflow-auto white-scrollbar min-h-[64px] bg-dark-input rounded-lg flex flex-col justify-between cursor-pointer border-2 border-primary-button z-20">
+                  <div className="absolute top-0 left-0 w-full max-w-[640px] max-h-[310px] overflow-auto white-scrollbar min-h-[64px] bg-theme-settings-input-bg rounded-lg flex flex-col justify-between cursor-pointer border-2 border-primary-button z-20">
                     <div className="w-full flex flex-col gap-y-1">
-                      <div className="flex items-center sticky top-0 border-b border-[#9CA3AF] mx-4 bg-dark-input">
+                      <div className="flex items-center sticky top-0 border-b border-[#9CA3AF] mx-4 bg-theme-settings-input-bg">
                         <MagnifyingGlass
                           size={20}
                           weight="bold"
-                          className="absolute left-4 z-30 text-white -ml-4 my-2"
+                          className="absolute left-4 z-30 text-theme-text-primary -ml-4 my-2"
                         />
                         <input
                           type="text"
                           name="llm-search"
                           autoComplete="off"
                           placeholder="Search all LLM providers"
-                          className="-ml-4 my-2 bg-transparent z-20 pl-12 h-[38px] w-full px-4 py-1 text-sm outline-none text-white placeholder:text-white placeholder:font-medium"
+                          className="-ml-4 my-2 bg-transparent z-20 pl-12 h-[38px] w-full px-4 py-1 text-sm outline-none text-theme-text-primary placeholder:text-theme-text-primary placeholder:font-medium"
                           onChange={(e) => setSearchQuery(e.target.value)}
                           ref={searchInputRef}
                           onKeyDown={(e) => {
@@ -456,7 +456,7 @@ export default function GeneralLLMPreference() {
                   </div>
                 ) : (
                   <button
-                    className="w-full max-w-[640px] h-[64px] bg-dark-input rounded-lg flex items-center p-[14px] justify-between cursor-pointer border-2 border-transparent hover:border-primary-button transition-all duration-300"
+                    className="w-full max-w-[640px] h-[64px] bg-theme-settings-input-bg rounded-lg flex items-center p-[14px] justify-between cursor-pointer border-2 border-transparent hover:border-primary-button transition-all duration-300"
                     type="button"
                     onClick={() => setSearchMenuOpen(true)}
                   >
diff --git a/frontend/src/pages/GeneralSettings/PrivacyAndData/index.jsx b/frontend/src/pages/GeneralSettings/PrivacyAndData/index.jsx
index 12d5a3e52..ffe07e82b 100644
--- a/frontend/src/pages/GeneralSettings/PrivacyAndData/index.jsx
+++ b/frontend/src/pages/GeneralSettings/PrivacyAndData/index.jsx
@@ -26,20 +26,20 @@ export default function PrivacyAndDataHandling() {
   }, []);
 
   return (
-    <div className="w-screen h-screen overflow-hidden bg-sidebar flex">
+    <div className="w-screen h-screen overflow-hidden bg-theme-bg-container flex">
       <Sidebar />
       <div
         style={{ height: isMobile ? "100%" : "calc(100% - 32px)" }}
-        className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-main-gradient w-full h-full overflow-y-scroll"
+        className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] light:border light:border-theme-sidebar-border bg-theme-bg-secondary w-full h-full overflow-y-scroll p-4 md:p-0"
       >
         <div className="flex flex-col w-full px-1 md:pl-6 md:pr-[50px] md:py-6 py-16">
-          <div className="w-full flex flex-col gap-y-1 pb-6 border-white border-b-2 border-opacity-10">
+          <div className="w-full flex flex-col gap-y-1 pb-6 border-white/10 border-b-2">
             <div className="items-center flex gap-x-4">
-              <p className="text-lg leading-6 font-bold text-white">
+              <p className="text-lg leading-6 font-bold text-theme-text-primary">
                 {t("privacy.title")}
               </p>
             </div>
-            <p className="text-xs leading-[18px] font-base text-white text-opacity-60">
+            <p className="text-xs leading-[18px] font-base text-theme-text-secondary">
               {t("privacy.description")}
             </p>
           </div>
@@ -50,10 +50,10 @@ export default function PrivacyAndDataHandling() {
               </div>
             </div>
           ) : (
-            <>
+            <div className="overflow-x-auto">
               <ThirdParty settings={settings} />
               <TelemetryLogs settings={settings} />
-            </>
+            </div>
           )}
         </div>
       </div>
@@ -68,10 +68,10 @@ function ThirdParty({ settings }) {
   const { t } = useTranslation();
 
   return (
-    <div className="py-8 w-full flex items-start justify-center flex-col gap-y-6 border-b-2 border-white/10">
+    <div className="py-8 w-full flex items-start justify-center flex-col gap-y-6 border-b-2 border-theme-sidebar-border">
       <div className="flex flex-col gap-8">
         <div className="flex flex-col gap-y-2 border-b border-zinc-500/50 pb-4">
-          <div className="text-white text-base font-bold">
+          <div className="text-theme-text-primary text-base font-bold">
             {t("privacy.llm")}
           </div>
           <div className="flex items-center gap-2.5">
@@ -80,18 +80,18 @@ function ThirdParty({ settings }) {
               alt="LLM Logo"
               className="w-8 h-8 rounded"
             />
-            <p className="text-white text-sm font-bold">
+            <p className="text-theme-text-primary text-sm font-bold">
               {LLM_SELECTION_PRIVACY[llmChoice].name}
             </p>
           </div>
           <ul className="flex flex-col list-disc ml-4">
             {LLM_SELECTION_PRIVACY[llmChoice].description.map((desc) => (
-              <li className="text-white/90 text-sm">{desc}</li>
+              <li className="text-theme-text-secondary text-sm">{desc}</li>
             ))}
           </ul>
         </div>
         <div className="flex flex-col gap-y-2 border-b border-zinc-500/50 pb-4">
-          <div className="text-white text-base font-bold">
+          <div className="text-theme-text-primary text-base font-bold">
             {t("privacy.embedding")}
           </div>
           <div className="flex items-center gap-2.5">
@@ -100,21 +100,21 @@ function ThirdParty({ settings }) {
               alt="LLM Logo"
               className="w-8 h-8 rounded"
             />
-            <p className="text-white text-sm font-bold">
+            <p className="text-theme-text-primary text-sm font-bold">
               {EMBEDDING_ENGINE_PRIVACY[embeddingEngine].name}
             </p>
           </div>
           <ul className="flex flex-col list-disc ml-4">
             {EMBEDDING_ENGINE_PRIVACY[embeddingEngine].description.map(
               (desc) => (
-                <li className="text-white/90 text-sm">{desc}</li>
+                <li className="text-theme-text-secondary text-sm">{desc}</li>
               )
             )}
           </ul>
         </div>
 
         <div className="flex flex-col gap-y-2 pb-4">
-          <div className="text-white text-base font-bold">
+          <div className="text-theme-text-primary text-base font-bold">
             {t("privacy.vector")}
           </div>
           <div className="flex items-center gap-2.5">
@@ -123,13 +123,13 @@ function ThirdParty({ settings }) {
               alt="LLM Logo"
               className="w-8 h-8 rounded"
             />
-            <p className="text-white text-sm font-bold">
+            <p className="text-theme-text-primary text-sm font-bold">
               {VECTOR_DB_PRIVACY[vectorDb].name}
             </p>
           </div>
           <ul className="flex flex-col list-disc ml-4">
             {VECTOR_DB_PRIVACY[vectorDb].description.map((desc) => (
-              <li className="text-white/90 text-sm">{desc}</li>
+              <li className="text-theme-text-secondary text-sm">{desc}</li>
             ))}
           </ul>
         </div>
@@ -162,7 +162,7 @@ function TelemetryLogs({ settings }) {
         <div className="space-y-6 flex h-full w-full">
           <div className="w-full flex flex-col gap-y-4">
             <div className="">
-              <label className="mb-2.5 block font-medium text-white">
+              <label className="mb-2.5 block font-medium text-theme-text-primary">
                 {t("privacy.anonymous")}
               </label>
               <label className="relative inline-flex cursor-pointer items-center">
@@ -178,7 +178,7 @@ function TelemetryLogs({ settings }) {
           </div>
         </div>
         <div className="flex flex-col items-left space-y-2">
-          <p className="text-white/80 text-xs rounded-lg w-96">
+          <p className="text-theme-text-secondary text-xs rounded-lg w-96">
             All events do not record IP-address and contain{" "}
             <b>no identifying</b> content, settings, chats, or other non-usage
             based information. To see the list of event tags collected you can
@@ -192,7 +192,7 @@ function TelemetryLogs({ settings }) {
             </a>
             .
           </p>
-          <p className="text-white/80 text-xs rounded-lg w-96">
+          <p className="text-theme-text-secondary text-xs rounded-lg w-96">
             As an open-source project we respect your right to privacy. We are
             dedicated to building the best solution for integrating AI and
             documents privately and securely. If you do decide to turn off
diff --git a/frontend/src/pages/GeneralSettings/Security/index.jsx b/frontend/src/pages/GeneralSettings/Security/index.jsx
index c014b3274..2b26b5d91 100644
--- a/frontend/src/pages/GeneralSettings/Security/index.jsx
+++ b/frontend/src/pages/GeneralSettings/Security/index.jsx
@@ -11,11 +11,11 @@ import { useTranslation } from "react-i18next";
 
 export default function GeneralSecurity() {
   return (
-    <div className="w-screen h-screen overflow-hidden bg-sidebar flex">
+    <div className="w-screen h-screen overflow-hidden bg-theme-bg-container flex">
       <Sidebar />
       <div
         style={{ height: isMobile ? "100%" : "calc(100% - 32px)" }}
-        className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-main-gradient w-full h-full overflow-y-scroll"
+        className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-theme-bg-secondary w-full h-full overflow-y-scroll p-4 md:p-0"
       >
         <MultiUserMode />
         <PasswordProtection />
@@ -88,8 +88,8 @@ function MultiUserMode() {
       onChange={() => setHasChanges(true)}
       className="flex flex-col w-full px-1 md:pl-6 md:pr-[50px] md:py-6 py-16"
     >
-      <div className="w-full flex flex-col gap-y-1 pb-6 border-white border-b-2 border-opacity-10">
-        <div className="w-full flex flex-col gap-y-1">
+      <div className="w-full flex flex-col gap-y-1 pb-6 border-white light:border-theme-sidebar-border border-b-2 border-opacity-10">
+        <div className="w-full flex flex-col gap-y-1 border-white light:border-theme-sidebar-border border-b-2 border-opacity-10 pb-8">
           <div className="items-center flex gap-x-4">
             <p className="text-lg leading-6 font-bold text-white">
               {t("multi.title")}
@@ -125,7 +125,7 @@ function MultiUserMode() {
                     <input
                       type="checkbox"
                       onClick={() => setUseMultiUserMode(!useMultiUserMode)}
-                      checked={useMultiUserMode}
+                      defaultChecked={useMultiUserMode}
                       className="peer sr-only pointer-events-none"
                     />
                     <div
@@ -146,7 +146,7 @@ function MultiUserMode() {
                       <input
                         name="username"
                         type="text"
-                        className="bg-zinc-900 text-white text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5 placeholder:text-white/20 focus:ring-blue-500"
+                        className="bg-theme-settings-input-bg text-white text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5 placeholder:text-theme-settings-input-placeholder focus:ring-blue-500"
                         placeholder="Your admin username"
                         minLength={2}
                         required={true}
@@ -165,7 +165,7 @@ function MultiUserMode() {
                       <input
                         name="password"
                         type="text"
-                        className="bg-zinc-900 text-white text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5 placeholder:text-white/20 focus:ring-blue-500"
+                        className="bg-theme-settings-input-bg text-white text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5 placeholder:text-theme-settings-input-placeholder focus:ring-blue-500"
                         placeholder="Your admin password"
                         minLength={8}
                         required={true}
@@ -178,7 +178,7 @@ function MultiUserMode() {
               </div>
             </div>
             <div className="flex items-center justify-between space-x-14">
-              <p className="text-white/80 text-xs rounded-lg w-96">
+              <p className="text-white text-opacity-80 text-xs rounded-lg w-96">
                 {t("multi.enable.description")}
               </p>
             </div>
@@ -265,7 +265,7 @@ function PasswordProtection() {
       onChange={() => setHasChanges(true)}
       className="flex flex-col w-full px-1 md:pl-6 md:pr-[50px] md:py-6 py-16"
     >
-      <div className="w-full flex flex-col gap-y-1 pb-6 border-white border-b-2 border-opacity-10">
+      <div className="w-full flex flex-col gap-y-1 pb-6 border-white light:border-theme-sidebar-border border-b-2 border-opacity-10">
         <div className="w-full flex flex-col gap-y-1">
           <div className="items-center flex gap-x-4">
             <p className="text-lg leading-6 font-bold text-white">
@@ -300,7 +300,7 @@ function PasswordProtection() {
                     <input
                       type="checkbox"
                       onClick={() => setUsePassword(!usePassword)}
-                      checked={usePassword}
+                      defaultChecked={usePassword}
                       className="peer sr-only pointer-events-none"
                     />
                     <div className="pointer-events-none peer h-6 w-11 rounded-full bg-stone-400 after:absolute after:left-[2px] after:top-[2px] after:h-5 after:w-5 after:rounded-full after:shadow-xl after:border after:border-gray-600 after:bg-white after:box-shadow-md after:transition-all after:content-[''] peer-checked:bg-lime-300 peer-checked:after:translate-x-full peer-checked:after:border-white peer-focus:outline-none peer-focus:ring-4 peer-focus:ring-blue-800"></div>
@@ -318,7 +318,7 @@ function PasswordProtection() {
                       <input
                         name="password"
                         type="text"
-                        className="bg-zinc-900 text-white text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5 placeholder:text-white/20"
+                        className="bg-theme-settings-input-bg text-white text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5 placeholder:text-theme-settings-input-placeholder"
                         placeholder="Your Instance Password"
                         minLength={8}
                         required={true}
@@ -331,7 +331,7 @@ function PasswordProtection() {
               </div>
             </div>
             <div className="flex items-center justify-between space-x-14">
-              <p className="text-white/80 text-xs rounded-lg w-96">
+              <p className="text-white text-opacity-80 light:text-theme-text text-xs rounded-lg w-96">
                 {t("multi.instance.description")}
               </p>
             </div>
diff --git a/frontend/src/pages/GeneralSettings/TranscriptionPreference/index.jsx b/frontend/src/pages/GeneralSettings/TranscriptionPreference/index.jsx
index 8c84c3e9d..14f1d355d 100644
--- a/frontend/src/pages/GeneralSettings/TranscriptionPreference/index.jsx
+++ b/frontend/src/pages/GeneralSettings/TranscriptionPreference/index.jsx
@@ -99,12 +99,12 @@ export default function TranscriptionModelPreference() {
   );
 
   return (
-    <div className="w-screen h-screen overflow-hidden bg-sidebar flex">
+    <div className="w-screen h-screen overflow-hidden bg-theme-bg-container flex">
       <Sidebar />
       {loading ? (
         <div
           style={{ height: isMobile ? "100%" : "calc(100% - 32px)" }}
-          className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-main-gradient w-full h-full overflow-y-scroll"
+          className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-theme-bg-secondary w-full h-full overflow-y-scroll p-4 md:p-0"
         >
           <div className="w-full h-full flex justify-center items-center">
             <PreLoader />
@@ -113,11 +113,11 @@ export default function TranscriptionModelPreference() {
       ) : (
         <div
           style={{ height: isMobile ? "100%" : "calc(100% - 32px)" }}
-          className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-main-gradient w-full h-full overflow-y-scroll"
+          className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-theme-bg-secondary w-full h-full overflow-y-scroll p-4 md:p-0"
         >
           <form onSubmit={handleSubmit} className="flex w-full">
-            <div className="flex flex-col w-full px-1 md:pl-6 md:pr-[50px] md:py-6 py-16">
-              <div className="w-full flex flex-col gap-y-1 pb-6 border-white border-b-2 border-opacity-10">
+            <div className="flex flex-col w-full px-1 md:pl-6 md:pr-[50px] py-16 md:py-6">
+              <div className="w-full flex flex-col gap-y-1 pb-6 border-white light:border-theme-sidebar-border border-b-2 border-opacity-10">
                 <div className="flex gap-x-4 items-center">
                   <p className="text-lg leading-6 font-bold text-white">
                     {t("transcription.title")}
@@ -148,20 +148,20 @@ export default function TranscriptionModelPreference() {
                   />
                 )}
                 {searchMenuOpen ? (
-                  <div className="absolute top-0 left-0 w-full max-w-[640px] max-h-[310px] overflow-auto white-scrollbar min-h-[64px] bg-dark-input rounded-lg flex flex-col justify-between cursor-pointer border-2 border-primary-button z-20">
+                  <div className="absolute top-0 left-0 w-full max-w-[640px] max-h-[310px] overflow-auto white-scrollbar min-h-[64px] bg-theme-settings-input-bg rounded-lg flex flex-col justify-between cursor-pointer border-2 border-primary-button z-20">
                     <div className="w-full flex flex-col gap-y-1">
-                      <div className="flex items-center sticky top-0 border-b border-[#9CA3AF] mx-4 bg-dark-input">
+                      <div className="flex items-center sticky top-0 border-b border-[#9CA3AF] mx-4 bg-theme-settings-input-bg">
                         <MagnifyingGlass
                           size={20}
                           weight="bold"
-                          className="absolute left-4 z-30 text-white -ml-4 my-2"
+                          className="absolute left-4 z-30 text-theme-text-primary -ml-4 my-2"
                         />
                         <input
                           type="text"
                           name="provider-search"
                           autoComplete="off"
                           placeholder="Search audio transcription providers"
-                          className="-ml-4 my-2 bg-transparent z-20 pl-12 h-[38px] w-full px-4 py-1 text-sm outline-none focus:outline-primary-button active:outline-primary-button outline-none text-white placeholder:text-white placeholder:font-medium"
+                          className="-ml-4 my-2 bg-transparent z-20 pl-12 h-[38px] w-full px-4 py-1 text-sm outline-none focus:outline-primary-button active:outline-primary-button outline-none text-theme-text-primary placeholder:text-theme-text-primary placeholder:font-medium"
                           onChange={(e) => setSearchQuery(e.target.value)}
                           ref={searchInputRef}
                           onKeyDown={(e) => {
@@ -192,7 +192,7 @@ export default function TranscriptionModelPreference() {
                   </div>
                 ) : (
                   <button
-                    className="w-full max-w-[640px] h-[64px] bg-dark-input rounded-lg flex items-center p-[14px] justify-between cursor-pointer border-2 border-transparent hover:border-primary-button transition-all duration-300"
+                    className="w-full max-w-[640px] h-[64px] bg-theme-settings-input-bg rounded-lg flex items-center p-[14px] justify-between cursor-pointer border-2 border-transparent hover:border-primary-button transition-all duration-300"
                     type="button"
                     onClick={() => setSearchMenuOpen(true)}
                   >
diff --git a/frontend/src/pages/GeneralSettings/VectorDatabase/index.jsx b/frontend/src/pages/GeneralSettings/VectorDatabase/index.jsx
index e35dc3208..454e445e6 100644
--- a/frontend/src/pages/GeneralSettings/VectorDatabase/index.jsx
+++ b/frontend/src/pages/GeneralSettings/VectorDatabase/index.jsx
@@ -171,12 +171,12 @@ export default function GeneralVectorDatabase() {
   const selectedVDBObject = VECTOR_DBS.find((vdb) => vdb.value === selectedVDB);
 
   return (
-    <div className="w-screen h-screen overflow-hidden bg-sidebar flex">
+    <div className="w-screen h-screen overflow-hidden bg-theme-bg-container flex">
       <Sidebar />
       {loading ? (
         <div
           style={{ height: isMobile ? "100%" : "calc(100% - 32px)" }}
-          className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-main-gradient w-full h-full overflow-y-scroll"
+          className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-theme-bg-secondary w-full h-full overflow-y-scroll p-4 md:p-0"
         >
           <div className="w-full h-full flex justify-center items-center">
             <PreLoader />
@@ -185,15 +185,15 @@ export default function GeneralVectorDatabase() {
       ) : (
         <div
           style={{ height: isMobile ? "100%" : "calc(100% - 32px)" }}
-          className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-main-gradient w-full h-full overflow-y-scroll"
+          className="relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-theme-bg-secondary w-full h-full overflow-y-scroll p-4 md:p-0"
         >
           <form
             id="vectordb-form"
             onSubmit={handleSubmit}
             className="flex w-full"
           >
-            <div className="flex flex-col w-full px-1 md:pl-6 md:pr-[50px] md:py-6 py-16">
-              <div className="w-full flex flex-col gap-y-1 pb-6 border-white border-b-2 border-opacity-10">
+            <div className="flex flex-col w-full px-1 md:pl-6 md:pr-[50px] py-16 md:py-6">
+              <div className="w-full flex flex-col gap-y-1 pb-6 border-white light:border-theme-sidebar-border border-b-2 border-opacity-10">
                 <div className="flex gap-x-4 items-center">
                   <p className="text-lg leading-6 font-bold text-white">
                     {t("vector.title")}
@@ -224,20 +224,20 @@ export default function GeneralVectorDatabase() {
                   />
                 )}
                 {searchMenuOpen ? (
-                  <div className="absolute top-0 left-0 w-full max-w-[640px] max-h-[310px] overflow-auto white-scrollbar min-h-[64px] bg-dark-input rounded-lg flex flex-col justify-between cursor-pointer border-2 border-primary-button z-20">
+                  <div className="absolute top-0 left-0 w-full max-w-[640px] max-h-[310px] overflow-auto white-scrollbar min-h-[64px] bg-theme-settings-input-bg rounded-lg flex flex-col justify-between cursor-pointer border-2 border-primary-button z-20">
                     <div className="w-full flex flex-col gap-y-1">
-                      <div className="flex items-center sticky top-0 border-b border-[#9CA3AF] mx-4 bg-dark-input">
+                      <div className="flex items-center sticky top-0 border-b border-[#9CA3AF] mx-4 bg-theme-settings-input-bg">
                         <MagnifyingGlass
                           size={20}
                           weight="bold"
-                          className="absolute left-4 z-30 text-white -ml-4 my-2"
+                          className="absolute left-4 z-30 text-theme-text-primary -ml-4 my-2"
                         />
                         <input
                           type="text"
                           name="vdb-search"
                           autoComplete="off"
                           placeholder="Search all vector database providers"
-                          className="-ml-4 my-2 bg-transparent z-20 pl-12 h-[38px] w-full px-4 py-1 text-sm outline-none text-white placeholder:text-white placeholder:font-medium"
+                          className="-ml-4 my-2 bg-transparent z-20 pl-12 h-[38px] w-full px-4 py-1 text-sm outline-none text-theme-text-primary placeholder:text-theme-text-primary placeholder:font-medium"
                           onChange={(e) => setSearchQuery(e.target.value)}
                           ref={searchInputRef}
                           onKeyDown={(e) => {
@@ -268,7 +268,7 @@ export default function GeneralVectorDatabase() {
                   </div>
                 ) : (
                   <button
-                    className="w-full max-w-[640px] h-[64px] bg-dark-input rounded-lg flex items-center p-[14px] justify-between cursor-pointer border-2 border-transparent hover:border-primary-button transition-all duration-300"
+                    className="w-full max-w-[640px] h-[64px] bg-theme-settings-input-bg rounded-lg flex items-center p-[14px] justify-between cursor-pointer border-2 border-transparent hover:border-primary-button transition-all duration-300"
                     type="button"
                     onClick={() => setSearchMenuOpen(true)}
                   >
diff --git a/frontend/src/pages/Invite/NewUserModal/index.jsx b/frontend/src/pages/Invite/NewUserModal/index.jsx
index 6a84792f3..5279e2086 100644
--- a/frontend/src/pages/Invite/NewUserModal/index.jsx
+++ b/frontend/src/pages/Invite/NewUserModal/index.jsx
@@ -32,9 +32,9 @@ export default function NewUserModal() {
 
   return (
     <div className="relative w-full max-w-2xl max-h-full">
-      <div className="relative bg-main-gradient rounded-lg shadow">
-        <div className="flex items-start justify-between p-4 border-b rounded-t border-gray-500/50">
-          <h3 className="text-xl font-semibold text-white">
+      <div className="relative w-full max-w-2xl bg-theme-bg-secondary rounded-lg shadow border-2 border-theme-modal-border">
+        <div className="flex items-start justify-between p-4 border-b rounded-t border-theme-modal-border">
+          <h3 className="text-xl font-semibold text-theme-text-primary">
             Create a new account
           </h3>
         </div>
@@ -44,14 +44,14 @@ export default function NewUserModal() {
               <div>
                 <label
                   htmlFor="username"
-                  className="block mb-2 text-sm font-medium text-white"
+                  className="block mb-2 text-sm font-medium text-theme-text-primary"
                 >
                   Username
                 </label>
                 <input
                   name="username"
                   type="text"
-                  className="bg-zinc-900 border border-gray-500 text-white text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5"
+                  className="bg-theme-settings-input-bg text-theme-text-primary placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                   placeholder="My username"
                   minLength={2}
                   required={true}
@@ -61,14 +61,14 @@ export default function NewUserModal() {
               <div>
                 <label
                   htmlFor="password"
-                  className="block mb-2 text-sm font-medium text-white"
+                  className="block mb-2 text-sm font-medium text-theme-text-primary"
                 >
                   Password
                 </label>
                 <input
                   name="password"
                   type="password"
-                  className="bg-zinc-900 border border-gray-500 text-white text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5"
+                  className="bg-theme-settings-input-bg text-theme-text-primary placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
                   placeholder="Your password"
                   required={true}
                   minLength={8}
@@ -76,16 +76,16 @@ export default function NewUserModal() {
                 />
               </div>
               {error && <p className="text-red-400 text-sm">Error: {error}</p>}
-              <p className="text-slate-200 text-xs md:text-sm">
+              <p className="text-theme-text-secondary text-xs md:text-sm">
                 After creating your account you will be able to login with these
                 credentials and start using workspaces.
               </p>
             </div>
           </div>
-          <div className="flex w-full justify-between items-center p-6 space-x-2 border-t rounded-b border-gray-500/50">
+          <div className="flex w-full justify-between items-center p-6 space-x-2 border-t rounded-b border-theme-modal-border">
             <button
               type="submit"
-              className="w-full transition-all duration-300 border border-slate-200 px-4 py-2 rounded-lg text-white text-sm items-center flex gap-x-2 hover:bg-slate-200 hover:text-slate-800 focus:ring-gray-800 text-center justify-center"
+              className="w-full transition-all duration-300 border border-theme-text-primary px-4 py-2 rounded-lg text-theme-text-primary text-sm items-center flex gap-x-2 hover:bg-theme-text-primary hover:text-theme-bg-primary focus:ring-gray-800 text-center justify-center"
             >
               Accept Invitation
             </button>
diff --git a/frontend/src/pages/Invite/index.jsx b/frontend/src/pages/Invite/index.jsx
index a7522a54e..e0f3c58d4 100644
--- a/frontend/src/pages/Invite/index.jsx
+++ b/frontend/src/pages/Invite/index.jsx
@@ -32,7 +32,7 @@ export default function InvitePage() {
 
   if (result.status === "loading") {
     return (
-      <div className="w-screen h-screen overflow-hidden bg-sidebar flex">
+      <div className="w-screen h-screen overflow-hidden bg-theme-bg-container flex">
         <FullScreenLoader />
       </div>
     );
@@ -40,14 +40,14 @@ export default function InvitePage() {
 
   if (result.status === "invalid") {
     return (
-      <div className="w-screen h-screen overflow-hidden bg-sidebar flex items-center justify-center">
+      <div className="w-screen h-screen overflow-hidden bg-theme-bg-container flex items-center justify-center">
         <p className="text-red-400 text-lg">{result.message}</p>
       </div>
     );
   }
 
   return (
-    <div className="w-screen h-screen overflow-hidden bg-sidebar flex items-center justify-center">
+    <div className="w-screen h-screen overflow-hidden bg-theme-bg-container flex items-center justify-center">
       <ModalWrapper isOpen={true}>
         <NewUserModal />
       </ModalWrapper>
diff --git a/frontend/src/pages/Main/index.jsx b/frontend/src/pages/Main/index.jsx
index 36c7a8607..ff8d73f1d 100644
--- a/frontend/src/pages/Main/index.jsx
+++ b/frontend/src/pages/Main/index.jsx
@@ -17,7 +17,7 @@ export default function Main() {
   return (
     <>
       <UserMenu>
-        <div className="w-screen h-screen overflow-hidden bg-sidebar flex">
+        <div className="w-screen h-screen overflow-hidden bg-theme-bg-container flex">
           {!isMobile && <Sidebar />}
           <DefaultChatContainer />
         </div>
diff --git a/frontend/src/pages/OnboardingFlow/Steps/CreateWorkspace/index.jsx b/frontend/src/pages/OnboardingFlow/Steps/CreateWorkspace/index.jsx
index fb28cc984..849962ac3 100644
--- a/frontend/src/pages/OnboardingFlow/Steps/CreateWorkspace/index.jsx
+++ b/frontend/src/pages/OnboardingFlow/Steps/CreateWorkspace/index.jsx
@@ -78,7 +78,7 @@ export default function CreateWorkspace({
           <input
             name="name"
             type="text"
-            className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg block w-full p-2.5"
+            className="bg-theme-settings-input-bg text-white focus:outline-primary-button active:outline-primary-button placeholder:text-theme-settings-input-placeholder outline-none text-sm rounded-lg block w-full p-2.5"
             placeholder="My Workspace"
             required={true}
             autoComplete="off"
diff --git a/frontend/src/pages/OnboardingFlow/Steps/DataHandling/index.jsx b/frontend/src/pages/OnboardingFlow/Steps/DataHandling/index.jsx
index d200f60b1..44fbaed66 100644
--- a/frontend/src/pages/OnboardingFlow/Steps/DataHandling/index.jsx
+++ b/frontend/src/pages/OnboardingFlow/Steps/DataHandling/index.jsx
@@ -405,26 +405,28 @@ export default function DataHandling({ setHeader, setForwardBtn, setBackBtn }) {
   return (
     <div className="w-full flex items-center justify-center flex-col gap-y-6">
       <div className="p-8 flex flex-col gap-8">
-        <div className="flex flex-col gap-y-2 border-b border-zinc-500/50 pb-4">
-          <div className="text-white text-base font-bold">LLM Selection</div>
+        <div className="flex flex-col gap-y-2 border-b border-theme-sidebar-border pb-4">
+          <div className="text-theme-text-primary text-base font-bold">
+            LLM Selection
+          </div>
           <div className="flex items-center gap-2.5">
             <img
               src={LLM_SELECTION_PRIVACY[llmChoice].logo}
               alt="LLM Logo"
               className="w-8 h-8 rounded"
             />
-            <p className="text-white text-sm font-bold">
+            <p className="text-theme-text-primary text-sm font-bold">
               {LLM_SELECTION_PRIVACY[llmChoice].name}
             </p>
           </div>
           <ul className="flex flex-col list-disc ml-4">
             {LLM_SELECTION_PRIVACY[llmChoice].description.map((desc) => (
-              <li className="text-white/90 text-sm">{desc}</li>
+              <li className="text-theme-text-primary text-sm">{desc}</li>
             ))}
           </ul>
         </div>
-        <div className="flex flex-col gap-y-2 border-b border-zinc-500/50 pb-4">
-          <div className="text-white text-base font-bold">
+        <div className="flex flex-col gap-y-2 border-b border-theme-sidebar-border pb-4">
+          <div className="text-theme-text-primary text-base font-bold">
             Embedding Preference
           </div>
           <div className="flex items-center gap-2.5">
@@ -433,39 +435,41 @@ export default function DataHandling({ setHeader, setForwardBtn, setBackBtn }) {
               alt="LLM Logo"
               className="w-8 h-8 rounded"
             />
-            <p className="text-white text-sm font-bold">
+            <p className="text-theme-text-primary text-sm font-bold">
               {EMBEDDING_ENGINE_PRIVACY[embeddingEngine].name}
             </p>
           </div>
           <ul className="flex flex-col list-disc ml-4">
             {EMBEDDING_ENGINE_PRIVACY[embeddingEngine].description.map(
               (desc) => (
-                <li className="text-white/90 text-sm">{desc}</li>
+                <li className="text-theme-text-primary text-sm">{desc}</li>
               )
             )}
           </ul>
         </div>
 
         <div className="flex flex-col gap-y-2 pb-4">
-          <div className="text-white text-base font-bold">Vector Database</div>
+          <div className="text-theme-text-primary text-base font-bold">
+            Vector Database
+          </div>
           <div className="flex items-center gap-2.5">
             <img
               src={VECTOR_DB_PRIVACY[vectorDb].logo}
               alt="LLM Logo"
               className="w-8 h-8 rounded"
             />
-            <p className="text-white text-sm font-bold">
+            <p className="text-theme-text-primary text-sm font-bold">
               {VECTOR_DB_PRIVACY[vectorDb].name}
             </p>
           </div>
           <ul className="flex flex-col list-disc ml-4">
             {VECTOR_DB_PRIVACY[vectorDb].description.map((desc) => (
-              <li className="text-white/90 text-sm">{desc}</li>
+              <li className="text-theme-text-primary text-sm">{desc}</li>
             ))}
           </ul>
         </div>
       </div>
-      <p className="text-white/60 text-sm font-medium py-1">
+      <p className="text-theme-text-secondary text-sm font-medium py-1">
         These settings can be reconfigured at any time in the settings.
       </p>
     </div>
diff --git a/frontend/src/pages/OnboardingFlow/Steps/Home/index.jsx b/frontend/src/pages/OnboardingFlow/Steps/Home/index.jsx
index bca66843e..9c1e752e0 100644
--- a/frontend/src/pages/OnboardingFlow/Steps/Home/index.jsx
+++ b/frontend/src/pages/OnboardingFlow/Steps/Home/index.jsx
@@ -1,35 +1,54 @@
 import paths from "@/utils/paths";
 import LGroupImg from "./l_group.png";
 import RGroupImg from "./r_group.png";
+import LGroupImgLight from "./l_group-light.png";
+import RGroupImgLight from "./r_group-light.png";
 import AnythingLLMLogo from "@/media/logo/anything-llm.png";
 import { useNavigate } from "react-router-dom";
+import { useTheme } from "@/hooks/useTheme";
+
+const IMG_SRCSET = {
+  light: {
+    l: LGroupImgLight,
+    r: RGroupImgLight,
+  },
+  default: {
+    l: LGroupImg,
+    r: RGroupImg,
+  },
+};
 
 export default function OnboardingHome() {
   const navigate = useNavigate();
+  const { theme } = useTheme();
+  const srcSet = IMG_SRCSET?.[theme] || IMG_SRCSET.default;
+
   return (
     <>
-      <div className="relative w-screen h-screen flex overflow-hidden bg-mobile-onboarding md:bg-main-gradient">
+      <div className="relative w-screen h-screen flex overflow-hidden bg-theme-bg-primary">
         <div
           className="hidden md:block fixed bottom-10 left-10 w-[320px] h-[320px] bg-no-repeat bg-contain"
-          style={{ backgroundImage: `url(${LGroupImg})` }}
+          style={{ backgroundImage: `url(${srcSet.l})` }}
         ></div>
 
         <div
           className="hidden md:block fixed top-10 right-10 w-[320px] h-[320px] bg-no-repeat bg-contain"
-          style={{ backgroundImage: `url(${RGroupImg})` }}
+          style={{ backgroundImage: `url(${srcSet.r})` }}
         ></div>
 
         <div className="relative flex justify-center items-center m-auto">
           <div className="flex flex-col justify-center items-center">
-            <p className="text-zinc-300 font-thin text-[24px]">Welcome to</p>
+            <p className="text-theme-text-primary font-thin text-[24px]">
+              Welcome to
+            </p>
             <img
               src={AnythingLLMLogo}
               alt="AnythingLLM"
-              className="md:h-[50px] flex-shrink-0 max-w-[300px]"
+              className="md:h-[50px] flex-shrink-0 max-w-[300px] light:invert"
             />
             <button
               onClick={() => navigate(paths.onboarding.llmPreference())}
-              className="animate-pulse w-full md:max-w-[350px] md:min-w-[300px] text-center py-3 bg-white text-black font-semibold text-sm my-10 rounded-md hover:bg-gray-200"
+              className="border-[2px] border-theme-text-primary animate-pulse light:animate-none w-full md:max-w-[350px] md:min-w-[300px] text-center py-3 bg-theme-button-primary hover:bg-theme-bg-secondary text-theme-text-primary font-semibold text-sm my-10 rounded-md "
             >
               Get started
             </button>
diff --git a/frontend/src/pages/OnboardingFlow/Steps/Home/l_group-light.png b/frontend/src/pages/OnboardingFlow/Steps/Home/l_group-light.png
new file mode 100644
index 0000000000000000000000000000000000000000..646270d2a5567df3c5ba8d7366a082d283373eee
GIT binary patch
literal 47306
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

literal 0
HcmV?d00001

diff --git a/frontend/src/pages/OnboardingFlow/Steps/Home/l_group.png b/frontend/src/pages/OnboardingFlow/Steps/Home/l_group.png
index 2981196a33208cdb5c6fa0a39b562176d42642e0..21fc89e346c4fb42d51980b1c0709d8ff275759e 100644
GIT binary patch
literal 64373
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%0Al1RFv=
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
Ef>RFmW&i*H

literal 74247
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%0A(FT{J!U09>2gLD>^s%RjpGMP(%WBM
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

diff --git a/frontend/src/pages/OnboardingFlow/Steps/Home/r_group-light.png b/frontend/src/pages/OnboardingFlow/Steps/Home/r_group-light.png
new file mode 100644
index 0000000000000000000000000000000000000000..cb60436c24052fe736a7d98451125309366a586b
GIT binary patch
literal 49667
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

literal 0
HcmV?d00001

diff --git a/frontend/src/pages/OnboardingFlow/Steps/Home/r_group.png b/frontend/src/pages/OnboardingFlow/Steps/Home/r_group.png
index fc50fd52c875578c55fa4e18d2143d0265ade213..305e1793363959cc2fbba8b228455d8d6e53b24f 100644
GIT binary patch
literal 66835
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
LNkvXXu0mjfblHz@

literal 81768
zcmX6^V{~0@6TLS!8e5GT+iKWYjcwbuZKJVmn@!T#wr*^E?fd;W>#lo#oi)$Qp1t?X
z6D}_+jtGYf2LJ#Ne@KWZ0suh6zt0d1)ZaIhp=n?K{=nKvs5=4x@M!-YARr?P`|nGj
zqoVkCK=l;<$=^Q^rb04806<+V{F^=`0LcITLqtf~4S4>pK4ZONPZ(x=>G*N7`MOmH
zmB*+IM2E2hgZ~08pEUFZA^~L#bI0cx`q|&gb<NhM?A|O?`g#G`W(AdCr<N|<fb*+3
z&36j&2nbOy+K9vqG~xgjrg%Z1NPaQT=O>pb=q`g<)ug&<`g2P&kK5_2vivj0@j*wp
znxyAVrMhWJY&lqa84`Ay?{VkJ-q{v8N1b-q^mak?32%Zj351V%+0wJPnF}xn^grKm
z$-YfqJ3W(GNtsSy*UBuxM<$pkI%H#bSTj+o%6;7KZ%H|-c&;_J%QkIHr~Dbd?@LV{
z2+CZ73RserP04lpc+Pc0BxKBL*m2dzBHXyjM<xgO*z})3qh1XNLFS$e6`(MdBRt$w
zY#{slj+mjzoM?28EcJTTnR^o^Oli;cOe3Ht1o<jv+!g6Iw=IQJy6cA#+Mak3F&=YU
zRmd?Aw){Zo{{2f!q1cANpglD1p0>@32L)a2UBs+d7lGoQ$a|km;JWR0zYTm(+id^}
zY6ta1JOGz(N#q!)*qQ>!TmLcy3Pw`<4V05><1*_#@oz}Er48Jfn0;oePi_|rOxUFo
zo|Rgv&}5J!I|KJCXnbTRlZWuc2H!D`$rV05TS?0!X=KnXzl_}p67ayJ0`<CKZQA9x
zl2%_3{ON&%yV5?{Rku=|V=5h=dSqjKT(*vd%z;mHPB--zXp~<4yd1-^oxyR>!CF7`
z`w%*fW2w)xzDWn(QGoh`j6)nk;%B!{qYZ01+kA4&Yr<v)UO+xCx}V2dCp?Us!5qp@
zmmn#@x9+^=&u?D*hBi|&zx!xR-}v>2lughzQWb~;g$ULB+0-US>oIzddWSoxIX!tx
zEPttn<lv$gukWk&;{$9Bf9JeU)!8V?PFv47%DAO#uTXDYZMbu;;*3daJMdgf2-+EY
zd!=3VoY(CWV1xScD3pnF_;Eu%n$#iJz=FQ$(zHRh>UgDs1{g(%90<|Ea2-RkpN{Bl
zWf4rgqxz2YCLAw1*e(X18mAdaxno?&S^d_-dt??HR`n*{r=bKt{Gj)NF8WxT0Fswb
zEVNFt($Ntx5v}MYDEt}eGK@6$#bo+ad7lI12ha<(^Q;#Eku*MHR93O-A->-tZ*BP6
zL`|k#YIREGMw1pYoF5ab!{ot)H6vaP))d%+4)1RRZLV3&b#^Ud_K2>Jr8BUp?Hmjz
zKIhHq4^SG^i<(`k_JX;qUMGC4R~Y|pB3dgZ2C>=5PZJlPcxjqeQ`UrG>Xz_=-leT2
z^UO~8v)hO*LlxRzxtj&$1L{%9W%>FkaD_p^<=-35pX*cLQ8fq1zc*h{BV^8*T~X#?
zvi-!-G@-#Tvfe1@GgfHEfiUDW^d>_=%V57Ub~)oubj46ReU0gYzw>3Q@25ZSCnJ1d
z01N5)WT}m9J({yx&NGlCxx#ERX^)D@_(r_2gedQtR-(T*o}533I>RI_HLIe2B)F9l
z-3-*ib2BsuGn-Dk8@FQ~BHk|jVvdq!xy04KKK}<cr&r)-tV#5IrT@k*;g>cz;w2mf
zfwt-bY-T^AkL^&OZLXMxe-%<F>?DU^2+;r4Ga^Yw`=y?gc_t&sIHTO>p=3yYMRh!u
zkAUD2A~3>4*+c{Ww)%_<a5rc3V~vsh^soRi%(N!z)e$~W+lA&rXn14b{?OWi^pE@c
zm*6sX2iNgtE8P-nCY=Pmv!hg(?enbby_$6uuyH=rZ2cus<bmDXtJr_(MMl8RssHqf
zTEI#l<45+paw>I(QL$SmDM83X<r$9Atak6rLD!!ZH&8I4CZ%HJq4tTU62T1X2@a;A
zr$gUfi^!UjS5xH@9NY}|jg>6uG$Fnf=}j6q|M;1)HLQy;-$<>-Xk}vy+#2Tex8SL@
zL@KV9ACX*(m3hy3&H;U{2_)SFYA*+ivx=y67Vf0?&iRx=YcMh98NJ<ntgv4`l=T>w
z)7dE%ENko_O1b0>#e34HP%wJla<DD4z!+|gAQBk<F-_LncRI6>tyGDj-!{iNRb{39
ziRZT+ptlFKA^91Vn%ICVuiCA<Omks$P(P{mbLO1o63E6aF7`#g|6dFW2!^+FVSJ~J
zgY#G1=&pnsiUj3a%;5tUC8;7zyBqzAla~MqIS#I+7#QOt_ILe81I*ef%lhv*bru}3
zlWnle!TD*;CXbA0tb0>E`V}Bm_!=O-NJtJ|sK(j$I`eO<0wtU2XzTGm^r#$XE2~qy
zx4pH)Z|k8omw(}laDy>;hrdsE8jfjTx%0-ITv168ZG&O`{`)nC1gnWH0p@ykz?m1f
z#0;d(3~fS289$ZB%KpLa%$#Mv5C2W(OXX~ENZq){*T(1RyXg2fGz5u`ZT0%6f%_<b
zZQSZyljulG4&SQqvlUMmPpo0&e~?MIf^yCB#wTS#UgU+HhZa2F^RqL=pMCBGi7}Ft
z$3Ufc7%UAJ-Gce&Fs%@49?2sDHr22Ma|J!Z!}$z$(53em9JU$BFU*&7i;t%Ot%=i#
zdBK%Ld!$c<JZ{4Xi*jNI^p(O)K|Do9=R3cP2{hdvYWz3Oh`Xn*e=sV}$Eyj<>)}|G
zCJ>^#(Hjw8(>GK*%zP6DuZ}HMFSzEXl4lk?Ptu+J2CfefUitwfXJM{Rl-~PU%;&Hg
zBu1$0%bx!rb>@Ksf>&5t-9|WD2yc=ihT@umsoOH0x=L;fEK42TTeci<>v%u#+A0T1
zYt&A_h>n}O{6ihPT4Et1tQtX|Ud%(&J{|!dD;$L-shzi)Dx(G0wSdxb!(sgsA-|Qb
zWE>M%MwgoWswi7BXS(o^g`@HU;k{GpN;Tuqa-?H*rhV@XFCl2elub$j_-%p}N1PQs
z*fYqq4VUGhsmj71$iHE8=ps!qk!o*o{-QW>(sLCwgTnWrfT(^w)3q=8jLgaCoP4EV
zY1vc$gNs9r4uKv%N)Bg{1S;^5SG~YOKNvyNm-DD3cI9?ywjtT=J)G*ta0>v#1wU-q
z<BB^Z+rc5VwGA5QUJ+=v^Oe|#s1Rw!bZT5at!`(71}V)Hs8;88@p~8IzmN;me$MMI
z(u0r7g|hXYs8{5C4+ZsaCy};D%eBEfEq-L&DB<Qk04moJctO)c%6|H%7HfV+WQ}8M
zni$EHcu86mjj`mE=@Zp}=#BB<UVBd9MEqXMC8A9la4lG7uDLtA5zp^Xu4V6OIJn|$
zVKQNKN<=<`Amd@XxuE^$lyvtjGnAyJ1>=_gHGOB__a#yDWF>5r^s@Tge%#=txx)mg
zKd=0+dF!bOv<>?$mU*HKITrBTfKk$X==v<%YM2sGau&{!vLGg$nsgB&plL1zRjei0
z{Z}1;uWX@(gg^k!Ikw(l2Ui(3kIBku>S1kMcI{gtc7{&mB>H$YuJ1xBsEZHHU4Zo>
z?V6r<H-9_g&1p`@lP?7JR5_d3Oy86#EN^8VS<mz#&-B&erM#rH-KvjQH>E9)h+(SD
zG(?>wC+*$EFQ8MC*jNNcc9^0yJ$PPTbaBqzy3t`V1Lu~u=a7zeg;jdvS^ofFR-NrX
zQ>yjNpw;OM$T8;{`jv5db&SpEB7dFVik0#tmin#bAN(5y0>uL!h;P4$sCS&^70*VL
zS%g^KR!k;<So~NLzaK#x&+FF`gK!n<VUC$Jn3|UaEWR;R&M_%~G07fdwul^pg*A0U
z&cKhl0K->H5TX<3aU@v4<Dzz*d<5;HnwU&*pT=qPAqO;20FP8IYgoz+>L|9tb?);W
zhCloW@#wqY{!0#a5sWWHW!LIpf-H1J-8$y%WodE){O*!lqk8XATy5G;%+g<2_r6~9
znE5v<(y)s~5uEd*G*e3>l>4f!L)*kl;na}ASzLX0;X<!4SkAN1MCJ`NEa@Ly5uXS0
zB1hz@k&j?2Dh$!4G4ts)V2Ct)F<&F>b4JI~)E44avJo{+a(GR|qbbr~M-W18|F0+E
ziHKt;>6@g^Bi&23l4K^|mvbiHzic4TC1RvPI2X5%w`i_lv1)!B6xZrgUih)ka6l;!
zY(t_e5cV7X3@`S<ukg_qsdg4_Dh<na@-7f7vI0As1uR^0yJYt#Hi|n_q6??3x_yy9
zZ&M3fQ!pwINove(mn_pFav`a|1lZFfUUsYt8MsMg%d6g+w&kTGp8p4$z4KLI8pa%n
znYaZvc<g$^(sFW-P5t2xiPy#s#3Ml~HN@Ss9#Vh^g$SXp;UA{*#Me>yQ@3yh2w!NG
z#O`244hbX5v^Zl@hFYPu_S=S7fIN!)u9fR)<<w5j-|9P<A#fH#nF^yxtm@I%`a+5m
zjJ^YH%nLM3XBz;`J-u|=(Z4vPO2hnhjW+(35fE%88y0{VP3p|>uJWPsZ8WjugLp+*
z@7q#sPx83dh|5y2iF9diI8eNURGFRBSwB<n5@YK-d`x1VL{3*=Cwj~QIbE_J^865c
zhPzhgs_?dgf&^LKq=Z2ly59n`w0H02_cXtEs;1p&lA%Rs5jyKwsCaEr0AEKTf-~Fk
zSLtO@G4?O-IAA|hQ}FQq%Ow7%1uy;91M!#Y-oAAy+py9k*afF71tsuw=zV&#aIN{t
z6FT@qFC38>cNUaJPk=OJWNw2Wg5y-ero8Hfl&D~js0c1p^LR}u#fqrRP6q*nwF%B9
zRWc)2OB8(z+b^S+KcW7nP(|2OEYSuw{+by{nZL?fEG<7;knk&4u$H3g+E%p(prZaE
zz3rfUQVV}=exs5W+68(ddSDhDsTsSO)|X*C$$3Mq-S0b3#g!=zV|<IA%I8@kBjy>{
zPJfbq`l)eo*2`(hRdCg4s5px>U?+QHdKL~TowKU?mLreX`gOM#WjnkIm1Oq{xLmCB
zly|ZA`hP3E6M=Fuw9V4pXfJgOF)*T(@2MJ%*gvYTx=+G^|GqXN^;ZSD4T4+rD$&9v
z%e4ke7M)MJB@3XjIinQ`=LDo`?FoQmA5Pk5%(Bj1w(~Nl&teVU{<0_!W;pzn$Bf46
z!ZS~KSGouRtVI1azFi;XuAxgnK3^rL6xx5@rq0Col)ta4myLq7+Duv|c~UPa`3GB$
zF4h47&&1lua_cl-K*|TPSQ6IJnf?;{{RIVwoLH>rNi&3i<!?Xc;B?R^`Rt-TuMC{7
z`>NnkAE{0}1svdg)*~6Khu2zQsJu&APg<+xn%>7?L08fJk}o;O{GHi2U)&3lKCQ2S
z9fCwJ_S$uA73}N0y6C%((RUfzaA3Qivl8YS_Be<=D1_Oxxx6=1o!|NN7$NMuu=KE!
zL$(pTKRH|RW*xFAQi9F0mFt}F<u487Mn6zca(bpyFnLS&s*<hnW`vL+Iu5iji5*9S
z1%&azl@YNs`OJME4JtEV5zOj0U@A2<okZ`}nGG52lutA+s;)^og1Ua4pJZ*#FZ2%g
zUL>wYPA5oeWIl`IZh#mv&d0hfe-&;oY^PmyByG;4DEoCTBIwiMQb-ZQW+lCB8Zgz^
zdbNV3(+%<(?zn=2QEpnQlw(41OZBtIk}%SPu)<EBtWF*_N14o}M`{b^PG<PoKB5Ru
zY?@x==ES*BR95Yip5x5Ry2`iO2pfUD(9{>6+~dD-+G%oJ$5fo_#-n#la7>GR&Q;x*
zX!F<(L+xi(g1(SPB@C&(^qtA%kU!x5sA3Uf0cu#!+3Ul@MQIj$Z(!-B{d`KM4nEdt
zw01!9=luL6F@}&L&0RqGCbIq;jH2{!THp94dKYuf@6s<hVG$w8=41+hR$QdAxUabs
zuYN$%Q%LSm(P3|WK{I-JYan98&DWrAvPmXj&F>Ayozn^EF1unHoj5qtLKgm$db1N<
zmv1>pnz`*J6=x7(T_s=2sFAbk04)S^!3p8A;9a%<y4PKxDg;yvgx~1}3REL}6h|py
z0*<9SFIt^yW#$MjyU7jMaXX~N9ffb9HLQcrCh|sh_pP$JQJw<=B|C*khC-?WuB>PJ
z3T|E4d{tx)EFeBdhRSfIJx0st)OAlB%by!Dm=~V00Sm=8uvWu>BZ*EE+=q$Lp=*il
zG-FJ7<R1p|*87Ly8l!C)w5R#L_A(G%9KtG>%&G|~(BN6@p4xmTKL)@B(fZjztr+U7
z^N81RF6^>Vxd#O+f%B`WmoRb#bY}Z!yxCzY=fRfVK5+f$QZ|N51Q{FoENY#C2<1Dt
zUl7p?-_|zeF_a21zgzRbo*iyYJ|W_%+(I6##@%q)q&T+twfrTOdPVkg;^1DG=%-D0
z=I?%x?REDJ2|y*QxTWI~C`yrOJV!5iByF0S3?<DFxZhxfU(@H6+uLEJ2@<jr?fQ1P
zYK308tlbe<PfO^B8*TkrExl;<uF1=RZ{F;UUXIx3ce#DCsZ4*2L{t{M^YTsyHu8bm
zcszS+Pyi4^ipS9M|Iybh+i0u2mg1Ua@#*K-f^_@9RTll)iO-mrpG}5I6MsQo3j3Lz
z_5-+RN*6?56(hoMm!d<R(tWz$c*|t>O3I|Gk;-FR&S^_yLj?!VIU-bs*gQrv?VMkY
zX}+@S7`h$dOdC?K)f@4OEAK>(XlL`~i)m_^<rl`Kqzu758=x)LCQKhn0}@Nw^<c6V
zYtaDMPp98;KkAfJp;k{y<0C!lzed#%t8CEdVV;CH&@bB-Pw6b`v|U>QCoXC@P9dTb
ze?rYfEw}Sm3K{CMj}vZx@dy!3=Ayw`IO*}ac?6pbAun*C;~d!4*3?c7j0CUU*uDm*
zFZM03ygvJ{I_zd5nh+7Je=&=eP!Qr2(ZyEfXNJ6Pak~+xkMPWLOz>+fTGf_3RpE(D
z2f?%5Ic&4<v0}CQK#oE#vpO~<*Ez&zC=zS<GCZo+^l--F<jHb1-H+046rqxh8J~C+
z#cS%a1!P>$JNz`C&&@uD7RaVm{6LCw-HAt>ENoOnX{3FQlE>_oI1s)-YH3FkW_Un9
zfQpfF$;5c3rf1oN+LlpYjO9I(y&9Il1k$0=@*8w8a)4J7y9*f)uF7M38V{x3G}5jT
zP9{SGOzU0fs(zOcfIGUMfOrklegtT2zL~F1_@uIh*<_9z?)?A6v4`hYcA6j|6zkt&
zA2^x;$8YhIcW{a0s_C|EmG@ZZOjUHduzGi-&e$d<ditwV%*@mxM+wv{uUx5slec@m
z-|d!OKuUHiF?vOKrx$;;+|-(a)PliB>C~6si!73>fW<IOr=lF@wej3xa>KX#QSr|*
zy>XcopQFExgG116JiR+0dup25=(mZ+f%R<S%Y|TB56S|K+|fzzomPHoXt!)i7v&;o
zBCXhco5tNmo0$b*COFQwy;E{~ZWBlAOwsMbSA4Q->v-Z9y+-SC`fwZj$B|n*WuoRI
z>r_)fqD5f`y7fN+#W$nARLc^*a6SxdoGu1l%XSa*<&6XMt1MLgrbGO-C+0ZlMK}!|
z-yYhyhAURIuLq{u5bj)U-OMPe9b(hYI88h8$x<w5Kugs^_DthF!zyR$NKf5%4{dC#
z!PXOrdy6RF+fw=ev!*<*l+?YuMpW=PfV;eomwrv0@qNq{6wx%(B4i00fZ<PGvH{w_
zqw_{y?y0Q&nY?2E5<z1n<QPz29e9!?#VzbXDO?s4gh6Mc0)*-`DUaYBU{~StB82J&
zOJ3wok7p!o=mKmU-sBWH`cL*r?tdNx5pThcB_f)YP#*Jl0#)DB?HcFZgqQ*$f8)8l
zoiqKuO>8(!BG0u}J@`CVfQ+uKAcL>13+`Q-kE7gC*}ggUUygTr3&iMwwpq`)P~qE-
zVLd|2w-6|OZmK`)Ru)6A`U;rgVw4a8%)n>wS2X`aaA63-*RN<hxEi&_Lvu@m&Uyez
z7Ky29t&~s{CtPE6iK7vBgkPn%M)+A$!V{bBt%dc1&Jmq84PfbxkOV)QM9W~ZPd;`E
zCBfcB1KFt`PWz&@o|#|MO?$vz5_FPJ&gQXYw?bEER=Lx?rp!Wk7yqMWVZF#`${`|r
zV#b&byffSfA-FyIaT!A|)YXH|z3SuV?QC~)*_8f<@l`i8P&O^i`5erfj1qi2E<&k>
zYxEa{y|Nl3i^;CvUqn`a-$mORdS?_v4aj!jh+UpR&p47bHQ=cV+?;TJa$Tt|ahit$
z{!#Z$V*fDw(sUV<jUhTnFb@kpo+j6W@L7wZ`NyN1Ypclf0PKkre%4-F_&Qo9iRC9P
zJb<z>K;WfBJ)2z_X@6gX36OVb9xm;TU<XVOmL^c_Fb@)6KP5cP=9?|6aWG8gz4h(-
z$T9BL?Db6{IkW$-KMp`F{_!XZK()@zcYRCk^1PVe@O51({apY#X1zl@u)TuwTe;B`
zzY#dG4Yz^gPjLuv2@M4kORSj~;j;d16(qz4^p+FLEgAFN45hL8x<SipNDckn+EQ0h
zJ!54|+MT}2`-LIo|9VL+{-P))e28&Gi!+zqR<;z_u(7ZWl-~j$X$6{KRpD~60py8{
zg7bfAbk5%^=TY0>d)N4xE4kp+{umL!xoW)r^XTn)KR(7*x?MAu2UjgU^H^my`ykU}
zRYU2=!uzu`T|JIPVwlnVp~v&s5R3364w{R74&*RRMK+?^(>rtlm7$@MgkEbicUre^
zZOY(Av6M8%ji9G`3_o-1AWhii!MKfS_2@V6Tr=s{GZo7!*e2)jN1@1ke79!iN8z4Z
z-mMsCQDQ0}Eznbb!rSF}d6NB(^3j_z$y|Mjxc@RgR@;pXVm?A8sR($4eF!i)^R{Xk
zJs^5taP~&TgBpFDN*d7R631_$f~GrzGGlnU!+ql8aSfTC7_iUeZ8Ms!*5S<U5UZ1N
zGUl3)JSbIcC?FLD9ps;$j#KV!3Z7$gQre_D8+GssL@xi+R!jjvqf&$fVR8Rg_f}Eb
zCYkbZo>V#dNL+xFDm4QM@a}z#t;^VwI1h$Ju-ludd<0IL%RSy41W3VR2sG^}U2ot^
zDO;(e$t|2(;EQ%-9(%-j2wxb<F8HCrxHgMo3~b>LPB-o@x19;BH=Kni$B`l+m%H>N
zNU4SIxC(<-!Gwgm*28q{$7V5c6=TZJc5%hQfX){1b4RNMvUZ0&H_3$LmkWDosHizO
z9DGrDtTQsznqg$3#9KXE<oK;l)b(t+J>25OK>LWiefMDPb)EW2xw_s(U5(VWy}%-7
zu0N^8;E81<sh3#V=|ohIdVY@<*llhL?d4TPU9#nL!nT}rL=*j5bQA!VmaZ_Fn!5L2
z8A%8wDT50u7<@PDYtolVdmrSohC)NOnrSETpj~-VNn}v4e!uW5x(+?<Y_hSXam2H;
z`zV(dDjW@}@jZK--PyB6#45IP4(i&Ix;jMuXt4v``ucHvUa9JJ`bsSk%|GT?f~iM*
z+*|3*3*GMa0~Wf!WkaoVslqf5Qw<9<(A4_R7!JB)TO7Xg$M+hRVz0>FSVaAQm~aeC
zGSS`!1g&71twI@J2j2zY+dyg;%^VUc*m{bI8j4IXp0T!oEEk`r)|CL{bH+*x9YPG@
z0e$2`BOo6l9iOGw08ayfecs_V;gDDozk?45aobOi<&JBYRsz8DCYFzC>Te}CU?x}F
zPp|l&ctqJMcxB^3&NuA3CgUu_qtgbGGzu-cEsb^ikX1rvUQZb(rtbe$X8}==%`fjl
zHXRqGqq`F|$7#_&`?+kJ(z!*Y6hzLyJLI2e0^Ks=X;!>+rjiYOD(ca%wyku&P!4jt
z&8-~|xA=0<Gic>QN}qIY)^8FWo&P9T76j}M*`e0(zP{UC?JxEJ-uiUM1#LlWMwnQs
z!z=GEbD}(lI$G8GmFJRL@r<-#Fdu)bX}8JL@o+kCwXV=gj$vEg>}E+Zg#IgWN<%lh
zRr4-W>Q09$mnL1arx+JvX3e+rb+V8KB(Lc*ZJb+DLkHZCr6WD*Awa3Y2SpQZdpzCH
zF#%G)^sr=EzfPYdZT-wBwU=fQVv>)v)35V?Z+R#8IF|tpclf?Z*&W6DmMszX-z7h7
z=3W}-SVBYSL|ojFH(KZ1q&ae=g@Y;g)U#8p9w)mH8>4uA{<YgC)BZSb{-55jgApv3
zaWx%1u}h;7%uUYiRR)I8kxW^*o#~9Kiuz;NeRDww9vFMH!T6btfESqJegE(&88(8Z
z>;3R<_sj<h9J&Fx<6T1F^cQcZ!gSv>CWsbc5NqMx_G^!0q$)Y+YI#lT76i6*VqJcW
z^_0wE`7FsTby<aMU{;smu)vi4lv&a5>W->6?C*>g?rj)R;aLJ|y;=w^vd4q$+xqgp
zGsMu(Zms?IvB0$xLs$r(I(ltmWAv$_smf9>NyY){8dDL+Ir|VK1wC&)6mTB7Se9C~
zhtqNM@vO`PPnW4J<XkWK^`}Kp|GQ-@v_{OBv`pNmfmHMX4(12J`*4~$%kV~BqB2x~
zKJ4eEwH@e`3E%hD7wEZ^TkM(pVw@Fl_A3dN5V}s3_B`HVBe|WvTE{!XD%u3g&N^Sj
znI)4A&^_(!`^=ppT}rp~ne$%{j@nMQVSqDeur42_snB?Nk>;mBTDVZ*!ZO2j!F6Y~
zqw!<1fmV4UZ2(vI;}WEIFTRTm6z+WZy#=M({o##{>Y4_HjRrrJ6ZVA61So-mixZ-X
zF{N4}LGd(7l1&9CWdLI&igLS~<k;;))0KMsyyIZ>bCAQGL*g^cH+H!f)GnEooi!=8
zPUaEfU~`IgrvEmjMv=j}dfrcP--78fB9TCytpmDUX8KD~z=P-_2z%h%rT_(|!W2|k
z0h@Kix}NCMM~Jt1GcrdvX5;A<;9HSBHQocBXebO1^ztHG+gQb%b@cS%VHGE@FiF0`
z_Io0jYE!0i%b7nM#xV~%_wO1tSH}sou_E`#b)Hsxph9h*DLgKgKHF-I)?%2^m?A3?
z`VXe>($D0wu|~`>Z9J`awG<3^Epy(P*Q)b$o+-4ynOYc!=XOwDx$Gz)6NcTfDX4XW
z(8$=k)t=L9><3NYEOwP(Us}G^0OhpB;t?ygO!C8=aCBsKYYJNU5#`>RkiiJ?gF8^o
zu#5|wwMrx7P_XsypvCnFF~iACTZZKMu}(ZE)vALf{I#I3LImr<YmtRXqtFF}39-$H
zE{S&Tkw1t6Y@hRv_Ka0!%an&jEm~Tf*Wi90H^tioAU!$ou=f!ywUJlT6M7p^s*-uW
zt^W(=d|=KYhh}!(Kp0PDSj}|3)^V0-JUZe2SmU9Ncy*Ezh|t;9H?7Kc^9Xk4iQJL1
z(*YwDD<+UeAMtDsL)wtaAj%!lJfA+$@~~~Uyth71b=z>9mmRJGn~6g>$VobnS0s0Y
zyPYnDk=KQ+MHFDXn#Jxc&iY#KyjQ;$T;EWb?fkSNXUqQeLU|p6z;Jo(7fd??`YZXy
z`S^$~FteQ{pSO7?#^25NA25wVjRd?q{Y;vovHa6|nWXX##VDw{*oaFqxMYQ16O^Ni
z+OmGOFpYkg@Hi*R1)f14I#BE38dR~6v1pf|g%N*vNM{9Wj8<99H%x9B(eaInVLh4S
zA=oVvVL}~D<Ga=lyo@()pJ!f|CDxZG#0l79C6ep<HKB<`a5ctWvyO4?yeGKc%_+3G
z(D~vjZw)M0KF6QB(F(+;gdtn=1!yC*+y9O4R*0oI@=DqxvcJPSX;ZMV4AGs#aB-w5
z2u^zmJ)=6~%+o`-*P0tOy@nqFTMsepzxo}ZXCWHK^t3FGKoa(zm;{#8{u1=8J7g;)
z(D!pEVIXn;$icBENl?ba8<DXygkbOF)!5y&Bho`9c3%cWD^a=jp?QG2++O4iU2Z@h
zU)nKV%ynFvqSFT23a3aFDIENr1GjV9vCu(15h{rvz%#7t{R`(Y)O3_*AGNw`#yH$w
z@jPN{yBFeidE>D7MahY5^~Yswg4B<i!NOv#p>0U3*&hjL$=P7Sci1Io&;vq(36Pti
zGW^Bq<KTqB1QUdY+rk7P5a%dw{W#l!mIhsgLtyqG4Zv;}wlNwr&cJ87j+`-zYZ?D(
zyI_f@2YooM2YhwhW1Q<MZr(;RSj+*~lXbwerMf^COUC-Jm<mB?&o@8UhWw4iW^K11
z;aFOKM&nHy+72W2u_%)iFWiG~*O9ZPxhB(cC%%bmre`3>MIe>^<@FgHlUT{0BX~#u
zn?4bH7ux%28|mf9IKe(=p%S|YyqU8^$n0_1h~2Mpg7`kR-`maox+cOR3jiRXU%>!b
z0HX{}SmKCtM&(4v;fil%e-iKVa*Zg6^!G~?&tE4*oB%C`i)>|p$4fQ+)Q!u@xw&n~
z#Z>9MACFG&RU139yEw@K%nV~$CYnyo(^%^D=LFa^Z{Cs=*MN0Y+?<M2_z}VgW0l<N
zS~D|B68D#=JvCm;_zl?=2CbC+6riqtm)wLs5r|&3_6M?~w0W**`H=jwzO(@SEEs{d
zPVWw+kB)8PI<XR@fh6o6nwLda{Mm@~LI+(67CqTU$ASueV$&&hy@_wLi&Q@Ew&~ht
zqj6|chG{9hd_$?<sU0N>7Nl-2mE-H~19hc#x&HnZli^=~mE-Dx>Tyu3J>`<-VLsD?
zyQ^{yt+`ItY#E2q<;)Ym#c^YXmZ<0Gvh|H^3n6vu_JWZXY3IR|AK1eG4!gYGVeV?i
z*&_9|yzjf-pyZ^W7B-8R6;h=2nVsQ}RF%+HINANg1B%N4_>kaWc()E5y;aTLzI(Ra
zk2HIVr(m=_dYkZlP*|iZFpIiwFBp2zB;U$@hk4^^Vhb^pV-qZMjpHPF>y@1M`Np*H
z<9w0ITC*nAW_J4=?7P%pM~HG;IZ85(@Uwe1uymUiXF_d`1ru;VUiN(cZ>l$*e{8-!
z&YB+mkmBrN_q$T;6SK%x&=X#b-N%>->Kys{GD^B1j%NBuRIQEG6Pnj!x61DMtUEi#
zh8Lq8yW}<#Fge}dmk8=#^S!gQdxY<)K}Jx#J((0M3E<je6$-8=;qu+1FhsC{ThG+<
z?Ft$i1FmmnnssIE$AxuOKt%3g%usMRx_B}IMy%jiWD&SVQ?ERd;9gd~8$FJIJczV>
zjv88*b)nqg4v2^b47YB;ogV+v-<HpP-w+vojy5NVJad5?xpRAI#rNp!^k`h>ENGra
z3EL(zK0Jj|*>UW&4};=$F02CWr1k&vjXL~iHS}Mb@!l1BC7}Ci6?Df@PRcz}{D%Ae
z_WjHxESm2CwGd4tgm2R%73<^P2WL}x&Ie~bh%r5fU2%j9y-cVr``X$uwZ2}!YW~-*
z#?SqZ?M2WhSj?mC$qRWZqzswtUR?BKqhDtlw0i~aAe~KO5<e|FO3NW(_GR$-qn`6M
zdMM@6^-A3Klmyotr);=F2?3hn7m6lL58SUNd<qYc(poW)HGv~ra2(zDo@VY&QK&(N
zefBkuTH5$}gYdS#$miOgc<ayWBPW}=KD^)?^HzLHe3NqL3(X+ETJ{9Tyi0_pTD>_}
zetNvC3_1E5<9S-p|GmDv_DrxKio{!{Z*dbq&*~tZ2bc(IOH5^3O(N&^8mzD+qOZjb
z$Vl_N<sIN)j$RB}?;*DEHbH@nbFPw?b0j@jVJ*w_D43A|J==F&Zm*jSyCbC@u$Ip!
z)z#*3pAG7R??bLposnQ=gt;h0zOs}o=T+vuXg=Djy_|(??O#{1acrIBqEH8vT;dUr
z2+(n|{_^|~n5)KZcMpruC(L*}(5DU@J?td1hTK@JOt4RhOGMKe*=mmiu*Pe{(e3)e
z7f0tK+81_ijLsH@N3i_mONTcncq`Y@`iCGcFUG|0O+719u})XD*rvBiXd>y<8uR@B
zHW;h~TS^VU8w>;B7AUgE%8Qu=v+s0^lzMg8;i*3B#tX)<^j<Y19&0xIET=!5xxL=X
z5ZcCm$31=&lMi>kBmBTD>;IhC7Q<e&d%NtxoeuWn@x7t3`-IPxenPJ!<tvZxjr{^M
zmqZvW3-6({*(?T2jP`)AVkINrJWRf2=ke9{8!e}GDh(}Xb`N7pmHV}fj6IfUJHMoN
zP1hsO)$CF?a*8K3WYBG*uX%y$!>ky(ctVR}uqL#n8a;jgp6`24@GHX`;rjDk4Qil6
z%|&4>(`)}L9*Z(%+$OYEEN2x9wBjXHre>@HO-qoy%aiNV(DZ*M2NCvH8b;=Z^ir#p
z@rb~f@!f~S{-=ajx^8vS$8i$)QRflx(O=3dy2;6Gz&;<lADu^;;CLS@la$X!Gm>({
zz(7?W>GbSUkzFkR{W31%RZaZ81yf%Dk_|5b#e0oWRMceJ>}5CWL2T@Su>kYFHQGVg
z<V~aYI#PTE=8BCwt?l@H)&?5R)xM{bLgC*7FQWG6BIrK3uzSbLLF7N81k;@I<0}$>
zNNB;uVI5J96?!RYv~bae@O}8R)=ikQv>Ecq|88mba@3=Wbt_rGJ-q5{dN(4ePWg4E
zF8}iO1ExQ{(L|`8myV@{SPDNnY+HKg@0#9+BO=k;j4$fQqZv*GRU}2LalVNewq4FK
z*wfkj7g*d3x^H3*D*iwNMa}7~1VaAn6vp6Byjs^CxC7IqL@6AWtCW!>r4;a<-~wfe
z1^VO>IfD^W11P0ChA4O~{OZ68LkuF-nCb`!?UVdyqa4h*mb@a6yDcpO4)$MfI(N0#
z3BRR!hyVi^$1x<z6f$0z7{H7zuIj=sMCG{lly+D2zU|46k7hX>bwu2;Rcu8Gf6ag#
zR*FeYH9_N8)@C@Q>RH?UOuGIS``L5ce%#dM_4vMY2ETA*#G>z5g}`$c;{UAxE&t9L
zHO^FS;Fiba?~aaDDY(va<Pcs(QsSR+X%?XS9(Y>S59dEsnx$NfrDE~q!eC7;P4v6h
z`VUMSH?vIqAF7`e1pE)^NJ`uTd^uq$er}We;Sd?&9dInerxhk3sW#SH5Z7kJGVbxQ
zTRqX09WrJpCCaoW9vU(73KI${+q1QMsMQp3;wx!8)$nn_@>j9!x4}71ibL5I-z;-$
zk9a4838&|<?I*@ov3gDHl`duyPv&|<kNp>P-omG=NPG^3oS_uD$fWSsk8h0oBgZeU
zAE4_^Q(uhB&l6k70(-ax22Ftm=kkpbe|3Lm^f)K_iijOGXw^-=fCm`am99DPzhN@%
z?)hiS27#y7z=c&f2=eI#3__<h{pqSy4m5T41l&@o+@1qZB=@ir^A92Ms=aSpW)>d3
z(2yny25B1{iTkJGvLMcLMn#wiAaWDr>Mtqf#{FxBdJ}}X!Z<H`Im1jvY0Y@Mu;pyw
zQDqa?Lh4QP{SdxYKwi^Hr4dz5_+|1^;BEdzZOqgjHwL)w7UFjM^ea7o)+q4YmlQsd
z_$aw&t;kLS_c)z`^J>`i!E8b+hK8!Wv;ze}i9-_xx3+=R?IKriXng+rXeZEI4;ZEH
z3*WgDup_GVU`3kUaAeA_G<19r?;OxeyO`faaTyjcy)Ih3{;$08$Z92%dU?aO&=)i7
zd(bV<4}<D>WwOKWjJss2nTy7KdL#69wO`vGcMW}?*X%W*b+6N=;AGPqY&qZSYSh3T
zNV~W`nSP+uTt_U$ZS|9g#11MWOf-sMmbVl2p2rn0(4@KiG+M-+{i|PMV`0Yi1R(HZ
z`iH9QgE5Ms`5@BfRM=_P);8as_;*dfQNwOUh#F|PGHVeA?SUw_{vy|CHyOH{IVtY6
za@Hv0KvBb!uCHtI9*(0QMxAyTF<Xy4!@pnntGaJa`cH=*Y1Tv-@k%}rMq0^D3}J3D
zKB`Pr0UmtB8}y*zv#IL;VBCiaH{Klf?%i9AZM<K`bOFzp``Z!v9%c>XD^d7!&L|)t
zj%)hres)e5{56#*@ctc5ZKEf(Yhy?|F1PNtVEQBHl~S;pT4C*e{iOilW}vkfUf<Z5
z_KoNfJ2rEa>d~&<4tvHP&8x;eRm5LsGFBXU>}Q;w6ZUS%?l#$vHOjnm5?QkhqT^Ay
zd!fzEkclAxG**DEL7<%n$j3qB$lD=ZLg^$h=<{o=<lfgwoFJw8OwP6J{BsVPkG(e-
z{oXfGZX)oQ2LQcR$j~+7V2zhpt(V~I@cCWoYv<A!j<RuH#Zm>yLg~7;RX@*W^e|-o
zn(5!Ij4;7-LGnM=6ynU*3%xYmyao9$f;a%y^rVt{TuQ?g0Qon~D}h@cmZl+TDsz~;
z`W{y%z!s!h)#aQ?)A*XLd0wYZ6V(u+`4KiT!#ReY3jDj`U|fs2s7f{*Y#s*I$<?fo
zojful0$J3f;h~|y-pY~xkf>C8<jwOC>Un_NUj;*;v?7)DK4AR1nx=}QR4xHAaPU50
zxLT>&x@on0Efn651+JKO7002Sq-|(_=CpbaHWWHhCGo~1g%K`L87SRXOB<lzUqBY&
zSqUx`da5ag107NJ>;9w#zQK7(=HiYU8)5urP--33n2yx5**K~WE%Poho>}t$&P%Tc
zOZ)>3W0kR;F>)TzI8#crqy42C%hu0!K{uU1JlA?J^f0dF?eGEuwKv7S$QtC}H;s{1
zDL2b=z$|D|0yOkGToZQTH|l{9#wrxgBmuXO#L8{OOGTf?84m0M7y(iDxCS!oFKDYP
zWuB=f8=2WLuD)#^y2*P%oDT+pm(EhCqeOfd(t>m%x_3!zv8OH*>`3TW>2{mkM2>C%
zDvd}@8m6b33E%A-M=*;Fc$a+?`C4_{`$)#Ps<41wSgoyJmft^65{3<<hmGtc=!z_E
z)&l6uvROU42V(_pBTCzhO(e%z^2Ootv>3r*%D2)E!Ug_s(NcN3>@6KihqVXg>}3#O
zA)2i=z`pGw*zv<y<QL0YCil$HFn2hh?F6~~((rLcy`V$-9stgXquPk8+L=oCtOhjd
zz)J$1^HJL+3)1bk^_pV{TH3<oH4()zZErC9nNx+1Kl9hEKe-&&+pBf07Pwg_E-S6V
zBlH#dkFhab7fdB#-4oMY4z;B1did87GIeyuyV1&~kaV+i@3+d)aQ;TlL?1OR{i14Z
zuiUWb_RUBDwk`tR6JCQ5y1{vecsWvHWXV2~Kp<r_R%!{$PthJP?E#ued(v-V^h&JZ
z&gP!SQADw2FE!uLE?Q=kHN!%E;4--IuksGv4T!rilpUMI&3QmQQws}bjzm^dL&<%i
zpbtx;o-T54FXzP`;vl8U@g2dl2U^i08}45iTo2{|ES&)2Zm87|=o|1k0ix;T$Yap)
z=)P+ET%NotbenSWgv*;AM0;QxSH)ynyo8viF{F^1(D(#s06BA25#p9do4$&kx6h*A
z8$3WuEZC&PNB30`XvdFiq9&<pvN%&+d%#L-9+nomFyMsbl1K*{Yh1M(aJKcl6qf^<
zh!T*IG}!nxKqe6+K1aSBIN-M-yvi0I6BG%bBwP(mP9$Pfd7|;eF$owZmo9njqx@U{
za@u}7r-VaQ){K?<w9iNE_!UI{-gEA>SLBu6S)LNV9sFJs8WY<bEak1#2I?7g6#Ebx
z`{Cv(u9PRI{=&oGO$zp?nR;}Lw1unl?&`RTvQlnKKpatMRfDv$afBs!9dq4y4gwFB
zV93q3Hbj#D>~qr2DycO?r0lw14avtB`l=Xv48V<(+JPZMC~tfX{p1@{^z(wan_=$5
z?nK%io;aDY3^q^lh3RuTM_N6Pe*5j0&6i}N(7=)&I>1H)CoQ;Ji8s8VP0?MzpW|W}
z{zLmjE%bw|-NA@JOTXhO>*cqp5j&3q$mI?%a*ZVU638M-5#kQ@8~<$oaOk_0wevr<
zn*%@XQnPlsn^c1I1Kt4a$=P4*rL=kL9mD9uImEGKd5O)zJBw^2BO~GnJBp1M_wh+C
z#>LI1SfTvJqvujdYDo4k+;etPo?#lHx^RES$p$kEms?^e65pg_G5h>q16-|5%D>)^
zGBlqI;jkq)(ZlZ@8D@w&8~mn6&B)$O0YUXT>Zc*Egd-~pdH~4evPRBbBy2WhwCoDH
z7QTco5N6Q_g4q0xzYe)isA}oqfm7}F0bb>xdNpFwrs*l%&!CKZMBWG<rw>BoN`9D}
zQu@A}wZ7a6_yxB3@SF>L5UPpHc3~&h@TS9!gW`(oo9IYQ)zSm6<$T~rrhUGcd27&U
zBaw|CImZM$52t1fzZ8+h1VqD1`w+a10b^tX;=@g0fsQN3G3w%W2=w8W{sOv$v%-{P
zBGCsjr1$6hPBsqQnt?Z8M_-*+POnJ`UCTjKfR^tis$R(z!m%WL-TOH!T|x+x`@6-j
z|282wL{L)oVWXl5wkyZU`Jvms`RJE~h1i&X*154RdrSN1cSC)vRvlfNNXTWY+q;Wm
z8s+N87IfqK3Ml9jqySyyrrg&{ucX8V`!XoFztFuJ?vbu3`_b@`P_E6~_~^;=AkU@?
zl(bxbl=u=3YclliC~YA{7DU!AXX@G7f=?_!^g$A&Y%~9gX7GWP^*M7-yWCJbvflqD
zj&;d=Ih%Km`kT_+<SgNxGyW55Nwjp-$1aw35lat4?a`ucOl}GCk(F?mjQ!c}k=oW4
zd+*^eAUYgTY4tZ#%!(;uebeB}XD|#Ii+YDqoXw)Ikayw&pmt9zB;iBke0uopK4bdd
z?hWCNd=s@Ha!rQ_<V?+XunCR(T@6T?Dhs`Jq`bLj)uCIR-BVGs(X^y&IbrzAaB99X
z%$sm@rtG|wWwVD^=@Z`Yu)F~W46lCpRwoCT5>K*dj_<3M?&*=^w}WHvjK(3~Lc2zW
zvElKiL}ve92*QZdyH6H?@%5EZ?cNb~JE;N%iK;zmLiB2GYCxIr?^N_WPT0MiY#p@!
zDoJ+-GWEQ%@<C>+aT=M5gvUMlBEWj3_CZEf7(40qzDN4&_t0Vg+9s6+`AFW#tt@4`
z+6eL!2R?G5ne?#hyITxCW-Uv}vk+hM9%CE(nmEM%=-59Ffw=Qi$Fx~+`!})Wz42F-
zmPm0tP0_2N1sjwHF1?^x@IL674LL-52HS$Q@2@5+G!N<9|CHAshE<}neJ?+mI8&V9
zZ#fo@K6Arc6(G2}vsfY3azTrN^rGa)slqo*M{f4>GFVM|L^XBMdOz0+9ohtH`8>94
zC%f_z&{vX7cg*eKHWDH9HF5MH+itAQbTPc=m*HJWf9+bOCbCGHmLjYdk`Uc*h-{el
zl>D78J+_I9<xfs@j#$edr3nhT3s`K-p%TPT_u-=9>YyIC&lz(nlH0`Z%a*m!wQVyQ
zmbh0s(20^NC<5W`l?_MfZ*s?-Gc>2>pK%ZTN14B>^)3j~MlxW?uTkDfxUl_j;o6Mb
zqDa_7uL2wLnspXVQM9*kiE@Vf&4V1`rDNx#m9|xy#T+5eGFU+W{01{@LPa0PL?krU
zt?wceb>NTijE80^YsGAvTG2GL>(X{r?AmMSdteKZdri1Ma>_g@Yh1_l68~7ElXtdt
zC&cS>^tw~D^`UyQ;n`h<W;e`zurS)coCxBa#xDlDn)P`$?}J!U@(Gl1$VT_&Hr8cI
znZEg|XWxUKqKgaBh+jJtoL6&zgU*x&uGU-uejnvNhJ2@1J^*ec$2~D5Z2ix*7K73D
zC2aoaxtpUo+rNwi!)z{k^I2g+FzG`EOnygkURH@oY60xGm=sz=BsH5IxU!3*j9bbZ
ze)Em*BlTMVo3IHppNz$gJ?MS3FF!&oxiCA4lGbyHN+&QSvT`R-M2L(Wfek_?@`MX<
zVCZnYxz5h>KKi2t;S1WlM&*6Z7JzWoeFE=%U(pTSc9cc^r6p`IY#u6X@)}HXt65f;
zm8lgw9=gj<ZG*v|#-9sC30jnTZGQITMk|meOXzW%c}MCd(#j1yqjA||=kWGfEj@*o
z`PPN0(24c|%=_;UNzC%@;7&`@T>K$RUAN*6;W~#QPjG%c5#GZI9AWq#tvsqt6^u^*
z9ukk7vkaTXV+iRyhH?(Hcw;XX4`s4F!3}X(<`IIV`zCjVF~F3f%AY)vcI${`uR6f5
z?f%FyaNs(mwD)ie6g)sM)`Ny57VuI4v{}JK#v+Ccb-~-db91+Tuy@{{d;-oo81`@G
zrr>GsvFBo98-q9zSCA74zu-@}poDOs_sVF3hU*`>d-MyfjA>#GkA`@*afCMKdBIRu
zsv$ZuMSq9*jiWlRtD0Jc-T}Eh;csljLomfmbek&wpRBxb4meA}D%clNA?L-VCH}_8
z^dAUTfLzI$C9ATPmdrFgC$YlR$%D|{n+JCOPRbH#a>U5SM~<$E7z+I%^8q34#)<CZ
za~gUY3xq*;$sS+MzsY&l)87R@67F#ed@w)4y$QD*8Uo-NM&uT1^}jQ9V}@7z>^<%t
zUP=MZs0lU`5rw#14ZhjzDj(c1cQra2NKWS;AUdJRzQv8Dc@LfNMt1t8dL6DXAPj1<
z)^@5Fwl)E2v0b$l+ORNCz?FM|r~(GnSkC6dbblBP&(IbFrTqE)d8hxo%P|m?L+Y*?
z9Gj><H^~$kc8SjDnG!s$)WO}(oJ{R*)EiGS5y=HxA4y{47&%ltea?+N3lxk@W9+gH
zl+1aK+Nnow>4YoeC613bnFK+FBV*_a@FEiP_SbSvd4^6n;!`t-a0RwniP2O;sUsPO
zI*TP!9Rx6Td)lh;LS-^QxpiS*5)=ua-O9$p{W{rygBUc{L3J%cJc)Z=XI1(&a{ePd
zP8;JIk<263K3xUysz91KJcUr|SF%YRXd|X{QAz;qK@#V&4L=pO)XHr6?Nd!<YUw}P
zZWCv^sX_a*a_GEN4>Ce?%P$$z$Wipc8|>l6BFqMO<1vGPq=@+nZ~aU9=NwaV=Ku*0
z^Uaub5i?{6T7JYfMjwOqkEwc8&^Ibu;}~=<a9x8`v|O1Vst>Ae=C*;65R0g?(DdvJ
zUHBJqShM?Mmv0e@v^MbDeB{FXp`0MxDI;cnJLaItl0*PY$<CBeoH-7BWR1`GFvS9u
zu;cYtL@wWEuxCWl6^VWEmWjDQGzKx!MFI?*v_uB)z6uxZROLB!fTNGm`mm2PH<W|P
zdXtqpUCIPpDbU3xLffq%$SG)la4m{CutI76!JNwqOErxz@R}xt*NfL%7g*1D&L!6E
zb3mT8$)7?19eJbJitzLKr|7{6my3c?iTyQA$psWF{y|^Nu5d6||MPDW5zoH+xBWk`
zm!h)m0rmGBxzED5UQD*lRGi_@Z5*^wm_x&`y9nS+Ob4cudxy0{9~4P-5bZ<&<{Z>U
ze0S0Mr>szBRjOR!>&N{I^r1X-Um2Hyq{Ll{eQ3?uJ^K0z0}1~9>tq4z;qNRwVDCxB
z(F1#VUd$0Th-|vM>*xN;#tL!DIIAlEzpz4VDUEh=QjlJ4u$9c~nr(ZdO4`JSlvMHy
zy4hp#Y*{73@eJ8Fba)O!$8B0S<ly7L!N`PHm$N64zUEZsKuEv15Xgvys)%`gfj7p0
zM|8Zc4RydKQC~$@-9SJ<zdhSzY3Ff9VFji{z@CP=U?5SVVKN;OH@BbR2R45&0|RBO
z-abwo=v9bg0KDIihGAr(3r9l!YfQkN>`%|l1rPdc%zB*EUF<)NGUk>i5}r!frlwR`
zjowptN44s5`^1X>oZ(J#2C-LuT$zT;+CHw!uKo=2$gifoo<*<>Nl!=CU6NMwr#l|f
z*!$S6c{Be1*!W<IjW*b*&w5j}611>xgeohi{^ONsrAQysJWtdWc~PBs&@=a)jPv~l
zYiHN9I~Xa~!}a0E?L$LnBRM`@PiAA%7dZvIXN=j-0pgN@&VqpPVQsC!zyt7Kg!lqt
z6^TmNa-h9d!nw`8PF59@mr*=U;vP?is>p+TW?If+!O1v9LeU>Kr(Y*ba7-vX0je?a
z4=Ku<2m$VA!qSbSa#*tDY>OK<&v(yuhKYTc;}1=5o5hVNuqR2aPmNF9tsIxt{yI-G
z*aDA4f^7&HA5I|({@*6m^-eWSarB_JJq`Z{Xh4_0i4T+KvcS4eUf%-VbKm`a&jx?c
zv+2jQd^$b(GKgSB%0UU6TRXO`jh9wYp?-?^%I}i)OA=QqZCB6vU@fCQV6Ot^-97`V
zGD?};7*?*SN{zM-I{z#KGz}`{5Ig3ooE*n|FL`m8bbCk{st&@yKxE{yOx-}YTk(IE
z`?XHB&+<yPt*@yw+WPT#6R*@;x9d<j57%dy{&a%n=K^rN_WaNN^e5myO%TSa6tMxv
zp8EjQj56(DXq7U1Km0{F`@o<%ALV%OHr@K|U%<Pc`dzyGzVAWWzY?4lQ=#7F(Tf5e
z$pw?nVpybSpvx3KJr11qM~`{$@{k|yAXtUPzrB1C&oaI+Z+Qrt;V?wJkL&d*!6vSJ
z4dpEx)(-(?nq55L<@^T#ekn+dG8A`40LO4|3B&P)c-&<=$bJ|$Fy39Htn<Sr1>R{<
zc2cK@EigYwGnP}>#`4&6u5)&`B)>|Y0mK9IgFl*H`XY>f@b7|e`nGoi8F#~s(Jf;H
z=H^4)%QWM-&|^rI3zi+{UnMTi7BUx}`_K<OH%!yt4Nd-B$mt5!L$p)wAcM@VD*wd>
z!6pxmHAa<D;<;-&D4=sU&Q~uFxLf0wJb5JG_I!&rK)*b$Q%BBo$&vH0Z8O(ST!#PD
z_j+aPa>B>w!msD21^%<=Kk`%0!&f<c_uu;4v5bk#j)$t8GvNC`VK$vMnVtB~O|dl`
zz4Ke(;4RNa=WF)tMt^c@!E~N+{0j?W`?!ABs_eX=`1THrXU7x27HKmC2D~8p?8ou=
z;6A<OuYYfP<e16{Y9lS+bhQe9cheqT6fZy~xapB<5LZP4Uv?*$#{kpYH}+^a*h9Q_
z5h4#5mhny0V-kIHZvnS|{(poE@A|7STzUf1nV!iBJ`|=rBp*KpdB%$&{^R!pu!ri!
z-4kU8#Z*}Gv<?ja_8r*#?ni-M{lb3&{Xf?jc|iRy>j^;5pNkoP;Jd%?hlBV(5{C6N
z$tRUxJ5$U_L)B*rtx9+nsBNi1=T<F$4n%yTmo<@DYuA%)4s1Gg(e>l+>3XjosLsAU
zBNWJPWJ7T6qUFKl_ajE}S^2e$8qi(a5x0+*TZ6CbW7FRbq@NDIemJnUAO67ieE-L%
zVf_2gf8-<2!&fPEmCdzYYM;DV$1;^K{Gc3|>rHmf2U*JPJv2Z%x(4Kuq+wJ%wY~qD
z--OdI{t+C!{o82&@vkdqu$Sq2oO}#%+P_H0M<%kF9u>}PIPXLlVDse{VEm&neShTz
zn7;m-Q`?A@io80w3ig%<A(snyI-bz!>Q35r2I5-BvbdK|#~{@tyd*jWmjn$#jwg>`
zh_7{u$8H9OJ8dSZR@~DYADO=SYySfG-~4rO_{{rZad5f3sbk2w<@cYKMY$<0Mh<E1
zj`AMtbarxZOZ@S#1AXpy!uM0@iu36|&Gx762cM?u%vK}boIBE)iD?2=Zk};A#d9C}
z@H4@g^iM;)=cJ^*Qi)>gdm4y%ir4eaRAtS$f-0|k3YG-~*wT>t`%J`h^B*l&KFhTL
z*C0KOJy5n_XaHF*Zv*r>W3^=-B_NtUnX8m*+y!j7JaG2%o-vjT{8~or{nmM<K8$g)
zRWR+L(!CGI#m7GI-QWLX)B5h;fByOBUxTk+AXTmU9nIk};%-QaoDMjs6LgoC>Z_`F
zpfWavTZL6^U#~eIrue2g?sRe+@Bi^faeVCs*njH%v^=^L0XZUXeAh>QQY{EQ<SBf9
zdq<q+pR957`~Nd+KK&oL?DD__<wY?-euOS<Vo2vrOozBw9>K|Y4_0&nvQ3sKxgl~V
za&Lz#n*rm&?|AKy7FYI*u^zLZdPDg&NmL%l$c3ebUVZ5gVDst=!N`0E9X#>%828x4
z^3!&TbQne2am^2UBxap9n7s5Q+<g3FK=*EgYiIM_8PvJ%nGL$%s*8j5AF7q=#PxmY
z%Ivws=3l$?+y_4tToRj)qXJ?pXx^a#j*)pFivLm-0F;nW(ksO$H(fTHvw@8sm(Ouo
zBrhX6c~yL$wlO5-d&!sdZx#e~2@En;Pwi|#ms#VV8D`R8BYTd609$8YCNxH4Hm2(<
zL|bk-I+B!3N<ISiaXQd$#!HC#!;Ae(zZHo9yw2eKbQ%nM8mgHsD^yh?)zv;J7YD5b
zoHxruTDHR84C*R*G;@|RS1<k{-1)?h;r&1RjR16eVSy|fj(o~Hrq?u)?1g|AK8q(G
z`DYBol6C5h0CMRyMIp@?fje#m8}o6L@omwIKyr`p7!L7DNU<Mk5?|#M7URN=@K5}t
z__~d0y+k-XfW<p5!Q%1#5G63z__pcj>&?e>;wGJ?TwW(NnKlVV<`&%l<DbP_zwwV@
z6I>4C$ujL-3r-bGZy_1eV|NMr==2mezx4~a{*|8$i*>hryLI$m>xgOR^4)+p8)6Nl
zCSSRwaA>B#R2jy&(w6vrFn;cPzW;}YVetzg?iH8`dI}0g0w2?Ck!JwUR<kpZ`;4$*
zbOP4S2x&P?!&pOshS9pbbvm!O=<B8f%0?e9L{CdC@YHJvz3Ve&D#ly~mNvRP^I+Nz
z_Li_({hcF3KrIFK@ECpk3e0*n8oSK?EMv%VvMr%^47C2(>jh-)fDYJ|x*G-T(WP__
zZ;DSAOgX(CfBL$+)E%r0`sg~U#;IH2eA%ln{yN_L_&<U5OMeQq+D{KhWJ?!7_Fe$E
zkNzZ_{K`+8w{A$?Gc$&Kyk*3`v3#b}-C#_B8S>j3X+QX>FVJ<^gG(XrWdh}45t-{E
z$h?Qcn~!Mu^daC8rt>KXGT@HsZ%Thu&Q#9tz@wu7W&xb0(_3)sxBoHR|LpU)xqUD1
z6)tJx29nJmeG*Q7=3n6WXMZH^=bFyxKRNw3k;`}Nf$#(9f7@T?rxe-mXTHSO8!(Ov
zFcAJDl{uY900n9$IHi-yDQ2ZRMaNfQQ*Zk`xpVXNSy4^?rlXvH6&(1@Wq1~=tzbvn
z(i&^MB_2oU0!I4BH9WRuSCVIazG6_Pbh>%&k4`^;GaRVuV5F?$rZ#&ilk3$rx@An{
zyb0bhOs^l1i`>RsL1~^j5Hx9_06Mh3#GdjyfR?CK-65TR7S=@eH|l9Fx+E~IZo}<A
z{wcWgsh=l0y#rHVj;Fu#n{fB1{wEq=d;#V{N}E`5eo`+zClNuI(xW5gMWvKqZ?v3f
zd9Z;4I)aPiwE&QN5Pido$M#|IwFj`gzQ`1WD4m6|DIh$Rzx<L=;@@#&oHpQ%{-1pD
zx9Qd=|0SIM`R^ygJihoPy7%+{7EV6?YtgVYhKb)z$n}~D*lBCN^N{-AE37*nz^iS`
z&~rTFGfqG}t$!h;y;>7mfMpich=I+*oJ5PH0v#Y~<#gA$v$9_cjeDagQ8fV0rz|zc
zbNFCOhN7G#Pe`@C@1z$qviHi^R(_B9Qr#!7<JmgdIy%3zw|ROBCV4e|1Ym)=T-5C<
z@=P6{FU+%r%yF%eF5H>xhmxm~Q_J{{1#SLG`1}AoMBs5=e0);s3}80NIYDBu;7{b@
zI!axzezppz<59_wyTJpk#8JO}Hd>a`ulyc{KZ4&jZWgHnGjRT%FQ)g2<{fP5WuXh;
zw>W3R!~Kz~Gwg35`1Ij;ybSl>w1Vleka~mVJ$Q)?C$|SA|L~L-2Pv`dBrNhVnEB8k
zf)0~q_83|6oj(b#i$D6AUV9r~>rfAB;`*X*(@wvs46&pCmM!c4QgWJnd>PxyuitYs
zaLo)e#?AU4hL2~UADETS1_waZl>l3(;R1Z5e6B>)jRzL26yumTj1CAJIr$c~E(=MI
z;C-gnN9w`1U$@56qKd=66|1h-pe9x;P?n`u>?B`*Qx|Z3NsfUdG`lE_LBZ;xGU*9y
zy{Y3fM^it|qPqq&j^pq8!1w;GzXuNyWD3}}dXit4qsmi^M!=2AthSM_S8i?3%9izK
zwtjuK#O<yC8P6zB8;#z5^gxiD#_8dS^i&(>1Kl#S9f``*)0rV}ik~-~K{TYdm!_u^
z__)d`vEiwlg%J;bpOUMiyp03%iE)$oiv`!5{LTOw1LEtc>q2VAF$Vyy{vIg7w_j%l
zgax#X(bWZd@a@;l3y4+!K`r2=of8B65IMi1R}kvriB)LJ*sSl?UGq#3{dlW#U@yO>
zyiWdoflZnAJN20~+B#6<XHw;&FAG}$=;o{9Qe#9^0xnwjmm));@}#*k9m^#U;^gta
zHBeeU`RwGc>N01rq)MtDQdNwbXleKd&pr3tRd~Qq6b~9LHDlEPp2$}imsTbXplo+M
zfH>t7#Z9-d*FiG?pxKlv13UMmO63~gBbWi`3=74Tkl1lT;<R`-#upq-aRF|M;7knG
zQ}O?fd9kphFJ~1~a!-)F4k_yF#0z$LS419I#NTK1AF-7+hfZ5`+sef`hyJ&W)#vBZ
zZP9<)qW?t$+8``hz<3zfKavwwAV4>rH7S7=s&9<|43p&e;I7RnXO$G2sTb&W*KzoA
zhcR{m+zIPItr`M=1~?iqoy<*f_I?$wlfUm!mc`_w+M_3rmTTL6Z6r|5W|XKcfbb1c
zJ3GpEFY|1>b=p|uv4%Y@0ACySFZ^A2ok3TOZJ1&>1{Aq{sn52s)2tc<g+(i{Z`^I$
zK!)Y=ark!w;xh&Y&6JqO8u76XdB;Nn;;|e8Kjq^q<24dSOH%^ne1LmChbSH5Npg67
zdDBRapSQI!`_Aw6<EiU3qyIAv?fRo!lVm!My6^PA58&pvn#I(yDRlb*^}ih(bN6fh
zg&BV+E|MVpu+N-23vBv6&iFw)EHF2|RkZU=^UXaX(yj@DEmqE6o@JkM4J}(t*Oft<
zk&UE)lGX$UnleG5daW964TdZl^g~nM;%{Xcy6G~YbQwYiU<D+UapLAN<AJy@I4ixi
zO|=I)gQ1Nl&dq4F0cX*||33&17`X90i&WE2%_N&K0yAU{Yy{AGgOC;r3<^X|JP)cG
z(6Iz)1)`bjwR+$INBW^0oIVw>NuR*%Hv#CFcUO#4X3hC*Wy){X$S1w$K{YWzPf!^&
z<u|EL`F!P6le}Al%A1^({;S65Gh5$=pxSUo|GT`QqyOmizqWtXe`)`%Mx$dSBrfAQ
zr>ppG<VXn<7_X=Gcl9zW$}|TKTLXzais?~(I;&J)<&CCXC9HxegIC5Ha$#o#4Jt}Z
z7ir$5&|L^@jI7H`&oX5DSif0m%e97ea$dcp)cR#R0N0i!vlo~JNd%=Id|#DgMw@OM
zZ<P4cfiGY8b$Ryn?5yZaj*L%MDNCEyTqL>HXP_>kFBI*xSb@2&f5Ws2n9HTP{O8KD
zf>A!6vw-SU068frO~n^n_X$sGcLbIA%z&w!EnEOO?Rn0B>72L7sPoaDd2ukmS;-lo
zGumj5rp)O7R=Dy;>LK*M1^n&$Uqk%O=fw1?p5NLx;fHgkmCe<18k(*^QDm{wkSx^9
zvS+KXnTWZvC3AUlnMkK4pN|h&(NUFA<)AvPt}>ZYx&eD-xciFPwDGc)1dmr-AME6f
zZ5|oGcq>}dW~J;-hkJ&r+nkCTY#q&7Xi&2WXxpF(#VCpVS;pEI+h$tv=0NKY!$Sok
zzl7nyP083On{y>p2DJr%{TS{sS^4VjH$w5_+Sahq8DrlJFrzE!ObJo;;y=i*zE5SP
zzcIfJI=dUv7h%r&Ez{|C8PrftRLd-w@|nu<?H;MDDLqZ+bhwev*D342ZPoMZKT*fn
zi3<oC{b!Y!4QM{v@}2&-@wnfVJ&+&e{4{zdXF!0~SDe(Pk<JO=lyP<&nPym;4WU{H
z!v2c7E3il{<!g*@K(`yz^uAszH8U7`hQArnmd}?Rke+92Ta$N3X2Zf9>n4>UWf`a|
zw{DjLDX6M%l630m!<Mnzji<K~B)JtJD_u4DCcO%u?}Y~s7C==ufMQAxaCLfA(@@Vs
zxYs}_x5>MgE(YEoo6A0f&S8B(L|ucqKH>U!2CAkrRKPf&9v|HZDOCbmgaVrBjU$B_
zQ+aV62$(Q1mpEf#!<0{o;}`Lj*HfoI_9Mf%Vnf!**E4Wg|4Fw;`XHNJ;`(-*X;br=
zzJu&K?B=I0>N5KJPfq`FW;}48lm)zy>Y27cu|on}UP08Sw+`LFtO(8-Dqb|1qK;tO
z#-x>R-eAZV+t#A39kw<L%7qwk<7>dH05p?F4BFkW1+-Oq0gP_Dy8*36aZf&1|9+lg
z*j1jUZk>K5_gTxf@w)8V_d}85fp=7ZnORWhYAsOH6?Kc$g9U!Dh>WVu8^-5C13)u+
zWtgHz9DvR=UB)`<C-)iw?*G|m;Lc}$55~n5Pmn0@jw|5GK420`oUf&~GxJm|Lw9+-
zQ+`sUu;2V7AOrB2_Zi2(b%2_a1#JHKmx$IUzN+1z!Pcq57X3$^7MdF+Mg7)vDe5-v
z^{Yy2*e+OB+<TmTM*p+xVwn?y9^{6tvgl<>X$0p_p5|%=;wh-hH;wsD9-z}PCWsA?
z^08h3`|yIYg6K0Q=mP*zbHW&@`fyq@R>4^4iioQ2igh>jizPP?z+~}j`7j^!fP%TW
zYJi#i(B<I_O(TDkuc{h<Fth8VK~Q}s*Rn;X%FJs#{+-$+#{>h)*ph|^3>Czf1(o2L
zXO<<uDoK-?*^KFd4-8^?e7xE8AUY&~VQ%W-#*A$$zAOXgt5baCS3e3DzVrfI{QCF9
zuzw}_bmM7hQ{IIP`4FM1g}IX;zkXxNpqtMdp0I#%K2a@!de)hARz^B+cmd-}e@5dU
zeH7{Ti`pXg+DF<zZ%ENIfvW$wMgOgl^0r=;r`<$F|Fr^<(|<5+EcvTG!TFg~(f`)4
zM){UfCd@wcVD^3LPX)UAo(J-hzVKq$%A8R*LHS+TuCrp)+1a3sQ;nFf<fH#+>j`PX
z(xffqpFI1o2E*pB>!9KY&}8<TPkzhjTcYQ-ff;a>N)=$>YfU|TU?8z|Y}>|HfoCt+
zaiz$}m;24(KXSi3!Pgd86~^r+RzO+u)JCqz|1iwB2{G&5+O!ADIiu#|DIlO8sB>}!
zCZ0W!%d6Qp>wz9B0L{hauX7KBz`f7@A>I4@XW-J;e+L{s^S+G2{I-zvZl#E}`4IWM
zNRi#m*)=g{n2I^q1K;!8nWL*?6WQ<*raLQwPyI4ZfA*W`+tG))Iy(@S=yUaI@&%MW
z-_l+=Dwuu&Q5yga;7$Iz4$i2gtker`)6m8`F_OefD?}HhW*cz}s5Nnll4C87&IKxM
zsQRt*E-Vc?x}TX_3jn2;sVl!>bDjE}Q_xb(S?Oo@wDy3()ML)L=)CyR=E7o`{Tid8
z`#X*s4g8Hz7O>UBAN9bXTwdR`qvZ7r*~cM(GiM9u3JL(hcY&Z5TE?WJ@QX~lvUuRA
zzj<EZl-Fsq|Lq>}1;yH+f_<J~ZOKcI<?_7|KY->6?)=U#!o5HFZMgFO{|bl0tB~J0
zU3wuOuSw}mE$OYO+3k?r5Aj`eoBUd*ROk2#q)3oAA?H;9;!pi1On>q#A<n5G2cU%M
zwDq|I3Zmtz^srg_HpiOv-F6IYZKF<^=Mk?>LR-^kpE0r9BM<%=fGpSBytV+Uprby}
zN3+1WbY3}YLIDX~zRQ0$xI7iYS&){v#L)@P%)ioDUmCPiN~`PD{{)R+Qpu|lbmaEG
zsrt0ZWr;p71%3_ib9OU%^bAH<HhoRadb~Uu+zXq4*As+=_J9hYzh~F8E*7cCK3|wo
z>IU>pJZ4a4T1=#U)K-LKC<igZz2eoMOR7I>S^PQPyG5^j?Eg)-f9E5#zI`|NbrJKs
z_olK4myZ$3`;*7=rse|7lo##N;r8p0;ma?<^sD~@ra$-?1t2c^-_%L>aZ?Wul>ANA
zQ`MuJe=qnv&5T5S2Pj*(lnR|g|4FCs=)Yokoochs*f7*iJoJo9GdXO1qr$RC`IFgI
z(1{0g*Hk&WHmHBAX>n~A*vj?|GgJzJQ1qz^RQ#8P4Fa3k*53^1<#*jjW;X-bJ0NMW
z2jX)85Cv0*?dUe@xtAJQq?Se50hG%saw2RG4D#j7l~Lq2;K6bd*vUsJ4gmDdioAG?
z4>WUXMKIsCtCSiyI9op_Jj}7JGTeK43gB0!+obO@N2PzIU7KmP)%qF-bXjUP0J@yj
z3%>`Omp>0j@AyvGd-59tOHT*Rhe0;b5Z!F)Xv=iydpf@&c2;sx#HXZB)<D1et1$k_
zZ&5X*RP-O4m$dr2^{!d{#~J;9@B@Rm{h1B4`j4Cw@dPAyRvwO=m&p_KtOz^$Z`@Pn
zPK;mQUU|lVN4wYqej2LT>l|A{=qsj+3%(o%c6}Y%0jIvhS#>aSavK%7urmV?c~Rw6
zCO^%SgdH|p(_{D0AnmXBX?sC4DT8V%Zx5c{4deNs`BLht4r1Z{P+(olY~=FtItGk(
zsFJ1XMK-i<vh6V13Fs@?R}NI)^>x!f;N%0BmCr*Zdl*Ba!328ww`I-hg?6Dxo(hzq
zT$6P1!1ud<@H24hKm0$-f$u}|6DJm&d=mM=jv=1{lwKS<eg0Fl`MDntu8H67&NQ-M
zXxbWuLYlayKFWYRfd2P~ij#|68_0Gv25B9a({tCeA!9(+WmNqqYSLr7P7v?JOM|UY
z7hJo*kfd(>uNDYt-jA&F^&Nul)5~W7UFQcd3urxM?#U%U#Ky)M0wYUrAji;gne>dn
zoPtyDH&l@H`K8~^z`216a{+65XR7mhcq5<x1n4sGt@YP3Z!tRPzQ@I*2Lfb1s74BQ
zTI%}^6aZ@dYC%u~Mpb0ZI-ws({drJy##vklBA3boJS$`Uo@-85hx5dt>EtHd`i=hw
z-2c?aXu2EUWrxW%kr(XZ>yaj$?%aaa&;Lu<{PMp+x_hf}#dO*j99W%G|7q5Ew))=%
zLu32_s3(_Z&Bl=VxRirQ$6?MT!%2I2#!JhZ`TT<kXs5u&+*c5wS#awFHi~AN&m_zN
z5uPJIEx%&7MsBLE1)gFwzy~fp`0IUH3@eubfPEK9cW^od(Pj03mF#s)?N8g?KIHPA
ztxuVTqr+6H*L6PX-C$_XC)QKUI>1XRX#2C=(sEJBrpQFI{oe~h$m;Lzg3%W66u^wY
z&fmFSg|+Fjw&n#LBdTTN^r+~Szs@3;CRGNp3IKJ+M?N24@0t8f{L?S}Caz!k6T0xs
zcjDoj-W!k63%=n~SpCP3!|CsSoM?3lGoXtiZoj%6g95IeoCvq*zd37~T)s;G$?3mg
z=%C9ialv12>t=&C0J{EVw!KyVm-RwroLdySZH5__1hmQyY}k@rQc4R->2#W+{GIxO
zaSv#)DIlvA7ge1_mY%#CY!DkjHUQrTrp9oAGd9$ZL!jg8a%bA!vj%Rz9?1GUP~l-W
zbc_h-`dWY|>>6%2yQnOpZ9l3zUbt?41~e<{gNE&(Q7;7_qyTP-BR6Llkp?|xwKKp{
zvjWHTbe{T}0~XW(<cxxVjo+2w%hYk_K$)*ir#JD=AN@3({`n_i@0GX0$>)9-rrWoh
zW|-H1^|oeU{YR(&)_CfAIdPx^rh3Mp<xu)xhNh7h(dTR1rbg8OujBeQ1=p|n8ui>W
zM*jzHK~Rn98$ey#X7zp0%2eKcB?zNH$6Jf0W9!s|$6GyYM}UBzV&m!Be9#bIXJx89
zHLzPlGsC8PV3FrS6<m@3Saw|&$1QoAGCKoO*G8Cp`3;@gdK-UMKT0E(w21v#laXzz
zn$K^~ZDt2@U#^*{WVr;jC|xc*n45y9nh%(UfpqpB|Ke-D3<uUtomDVkr2&T1Ymij&
z4RHGbqSExhOkW^>MHT6;<@oEHpND&&{51yRtyNNT+Z`g*?2+yca0jw8`j18b2Lo(<
zyGQ(`ceBw+bhF>q0MxGPWLL(&HF)#-&pu<4#W*#<tUs^ygCcAL35g}j%>2p^o(4Wd
zBy%-JV?U<IOI`Wev<h_#VI~<6Rd-BTwM9+7T%R`I#_uKZdVo~fu++DfNuZUu2UxWr
z@55EPK+pl={xwqlKMNkc`Wobf#z2{R_W(WiK_H=NkP_d*<`LnX2RxXYVm{F9k8Qz%
zYyO_)A8<=Sjp1?qNfv+sy-1pomEZlsdNjDtjCGYTYZ5vAw??M7b@Y7tk4pcc2V``f
zx>WtoDYU#<zWKEQ{hPm$G6;;XrYy)<Lz2R{LOS}d%S5IBr23R*^gmzZ1w0KhS%=ZH
zA%9>H%?=8QU<4%=5*X+;u=&uLW`M%TE^F1_$?b6P-_>VfpSJwk1v0Ikb=7cwn&pD2
zd(9TNxO<4exCJ^)QWrqIrmI(|)oLY2l`nTpnOSrP8kjoP?<T`D*f!eftND_j*tPo!
zC0Au|ACwuRp3+rD1E!VSg9tvp&ktIIWAs2Ntcjb)S;J(r8$sMSG*=HDzuEc)2IOEa
z50=l!%3l@8Q2B|joW|vGe*L%On8_ac&am=!^q+e7o8Owj+Iu`6&@fY5Q(IQ?o{?|&
zp1ghi2dDr2JmSSceTOpeQ7eGT2WEgoTlpS<NCTL{tM71r6gqKnyYG~I{#)7(SXN~z
zd-8F<XJu9LP`DuqBF3n+t>kHYNx3qr{9C{u+Q&f|Sjj}|wyl;=0}A&C;0*3Da8{WM
zA>Sga4^jp+;N`_cW56Gn8I$}ekZnrPKcULh<QC8IJuCF;Qd_JA`P|9uqJS==Q!KUT
z&lS003*#4XQJ|sNsv4L42z%TAGyUZBpJw#Gn-?kFI5Twe*`og)gzd~Ygqb$u0-gS!
zJ@mHgKeuyLecj!f8J8=FHH)nP*|9pa%GhOCoVKULeU?Q66k3BE_;&~3oGcx{qmC>R
z-QC~Hl&xK^pyH&VnY22!`IMB<<|y*GaRoDg?A;Erz3ObGt9Ndtzukun{Wesr)DTvc
zq=K%gORd{iEs&w1!YtjGHiw{>n5brXCOgtUT{(q_<tqvRJ!sX31;BtMs5UP|Nizs?
z*%?5Xt3PzgPa>#mx=u|NQpmaVzYlb^Ug+hczSz>9y|@pd{~ocox_LVKk7u>96a&5X
zAvFex!I)SHlqK%uufF%D4qYVz#Wrdh?>BJ?W)^)a*wl1odQa3Cw{AQ2@&zT|gQ)yg
zgN4nsT=OGPV5Zy6vP=d@P+cOpQ1YR^J3)O%9e++no=KQ~ZS(f5%(tOoSq4~DT_k_`
zKJ{HnB_7uu=?qs$6AJ06Ke&vhO%%|9c4;In(L>jP2eT$&rj)%yWm;SM8F)R@jG3OE
zkgBhmQ3-pi?VB2dtf#-<)pKoT8BL}-Gy0D{pDp^|W3TNa-#V==jhz0I(tq}~)Uxx8
z!Zh2K>S8Bf(!amT`frS$)Bk2ckats9Wz0W4n4HN}9J4_u9LiwVKt<I@N}PUP>8zfL
zC&=tnsABinq)N;3>O4$f*;IWRItOQm(%@wlfF`}TYpTpDq4k@KyaWw+bu79ucx2+#
zLE%4j|6x66*@9HBoWlK6Ph!V)fgK++6~7@4+w;yefoOOjU6Ft!BTAaV)T?}#>o_~(
zA#W(^x2$SZ4(C#X&}UD*?Pk^hsBsMfzU3bR22FmnxZKfo<hqf_T!38*Q@?xt$MU~K
z&}}BN`Jl>~)Bgsri_ubNvuxFW6Vy1X!If#^yR=UKb@FQb+|2YL^uNAUr1ov*7F=$*
zP?>QIQ`OugP0MshUB{WC^9{H9N>wmxVbN`!LhCv(okA8wW<W^hZkBy@OntqRz_MX_
z!%&r>)Q9?cI2qh8Gf2p$H%ym6t5kPDrUBAnRbDw}W+>J4)N7_~G`MS00-#SKt8tyd
zfHL@?l^cv7)}*BwLs$fjMj=L@&ZVPmKvoFu!Adw0)NpB2dhqH3O!+D^0InbSZYf3?
z>;y!!a1FcwTISsE5=XZ&avkeW51yoFURrkzvyO+y=W<#9$?5+@Y<TANAB(=|r_jjh
zKk4WQvRB=|X^3X@pB_U0Ef#|r40T3O#7h72vA3!|=hS}|FN@gMe`@r9&^e?*Tdf9S
z<G14nD)Rf+$~9GC51wiiQ)R_!kj>gaBGKO-yYip4hG<wMb<zSTrpI+EnaO;TsgBB5
zl{e2UTcOZ>Cq3XTH_PpUA`8beV2QqNg;_uoII0(h>NL8<YiB_`)qsZ0sH+{!g_(c|
zU63|0RK1vG$L})MwkW`skXn@Yrc%*(7eoJ;9g*dIalls7rAC(-mX?+rG<d5^!YGL?
zM0QStX1>ha9C$aisDR%HFJqX@bh*Ysw0nOGP)hby|I-tR9sQpJPpp0#cFkpjNOR52
zh>vbZmz7(CYOMo+X6XddreF<k)qg6PV!<iakV&Me`Y+ZTV5|OfS<R4D`p?zRaR*a%
z)e!uR%OP1sw<l?JwjWXvUNawu2&z$M)GL|=%^+$8wgzWB+SPaNV<0vzjaJD>G{yw9
z&l0y91x<Wvslq6X(kjDL<>7u*9o1B{GFT)<Wn5LYiDrpp5w676Ni}5ymEP^5pgOIz
z`@7|<mv>9w6}7C!S_y&-L-6py01g8w8s10+vY~zoJ{p!K<GIc*Nf|O@)5sLt4Hl@e
zGdt76v%HuTdl{;=?F1O*v2>F?2{5%lPF2-4h^fN8{uc(^>@Xpx|I~CoYQ34&f2~K_
z(3ne2vU;z-`%A`jSO4n}?CZZbVl<=w8n;Art&dRkzs?{ANsc_R(iuC;3<6R$HzNcq
zKBBf6QFR+zt;7YzR84Mbtk(R=#IxVMOz84e+o(#-P$&ne!C3BPO9>t*jQG?A9{V`~
zPfj(<FQ2}}*%iRrUt&_1Ldbv_s)CpS<YjerASmpkk9XA*$!>Y|3q{^)qIB!B)NR|5
zx|81!-<B-cM{`Ja?!ZM$UqfZvc`AZRMXJF;r8ff(!tV0@32I$RHq59%E1ksZO6CkG
zc4K3av$E(WmT|>^(bHKeG`N`lwDKtZXOQCZZHBpz3o~u>zW_6IW$NfZJfQxQwJ6Zd
z_ni7qO8;St{x|){a@2ev8M3NBoD%Dp<ZicH+j2q&oam+r);d(JD^nr$Lk0$vbTa&F
z1$YR=`1+A%&+?Q!ZKG5$aI7BC%FQukULw-B^QAiCw4DPY=Qe=$hw8xi#SC!i^cMZF
zfohT#%)Qs*KB|StIt}d^2y^B!OM<!-BO~VtegO8{seGf_${Oe;Uy_P75~2W+(@7a~
zGv@rvP(4DWOHq^%kQGXeRmXskyB$$0pX$=mP@>$eq`KWT^Av!AT88O+1`3@gzrv^H
zRb?*~u2r|~K=m?#8xQ#o>p#_K8sKYua{5n7|DmJ*Fr)uDo2>uC7X4Sq?3qJX|H0|M
z{O;&Kbo5`Ob@~t9ZK!@IX+{6-fk6uNo6$T}X;kNf9WY#YIbWiy5`|r%;&UEQ5DE*?
z3ZC-h?p1zh-QbQdgKE>_=O#M^aD&%_U!9(qLD7+yl@ruhFv{wNOl>Q*pkjJUF(=M|
zH2BqTdZJe9M-3k9t#LJ0N67?8NS)hk1h;|PHvf?EVCqX6dciUWqkc7|d*r$FVc})c
z|JuZZX@Q3c8d&wGbe;tnaAVI|1_uNzzcF#@wu&yDhp48!wT7bDRA60-XxhP!+qPw7
zOc_~wvr}^QwEAyD@e_CSpOpUBI=Ui?J`F~Wl;@fHuYnlU<p<G!=;(j9&z-zp|Fye<
zR5moD|Iq3`>pW?k?J;AjAXlt_75Ll=A+l(Yqr79Ij<eGBMfiE3uL3G*6kytE*1X=5
zgQ$9)JG9EH;1ruwxeXDOUtC*gmdloCADV~>(rlnWRPAKn4uu_IPZ@LhY$yeYsZpBR
zUe+%Qy>_qWv?{4>JM(%WGmsVU;Hh&5*uA-dg2Juo<?`X-0?uAV^E*#TLD7j$NZnlI
zXZ7c6UcmvN_Xsg{Gp!NQ+f`J2z)m~pvf8$>#${{h$R`HIjOsJ=-`5<_e<}KJ&ibue
z$Fj`l(0^_3=k&i?qee{X3#s}K8`&ED$A{E^u=<b1{Z&E&<B9C~o>f4AE~<5T6d6Uc
zxp0*#fXX#+)9Ny^TPc(RsEQXeqa>ZhVV<g&k{dbvphlHrE*lh?DdUp6P}kf3)*Zrt
z#BQAQjz<9Zo<?fwU#)opFldpfnMo8?LM8XMwvn1-?H3{SOu!nFJkt?bbD#7<9V#nS
ziVhl%<3EF|9FbCy*Bjipk!w%@STh>Zcfm}>bNe9H6Y6qfskY&<)CFEKgbvsw@BF={
zReDLPLAb1583t6O>!I6{@xr|R6LcG&n%{L8v<dh(77K4ppsz#jBi~C(|7k}5RZUIy
zpzCAyCObJg`p<P@{g>)0{fBetziI;|OTkO2PjypB(;!yG*Bk$J>(rLdpVdGJH|yBA
zPG@IG!g3OVHhRRhir@LK%?AbGQ9a6S8Lz4!66fO-)ARU>oBADBb!r5<vB@9a(t^FK
zdv`%Ir$If9>U1p6B_u1CQ&}ug>9MU{WAsWq*N(RSRFjqEs$5Z{N#yc&1PL9u2uK6T
ztcmNa83d<!py0-#nvmGOZ*3cZSDcbw5VxjbK&dII`?d$_edD$)dLvVAJD!9rh(V+x
z6e{|r<n%zS=p*_%)$zmw7wwtI&{RZpikyfKq5q`xUk#S3qxlWhXX-!jeN{Sj^dDyQ
zU*reL1-9wG0@${{dcbb=-;X&gU@RR%S^!ayS{M05d8!P0iY0#F5~o(U3qY*kx_lzd
zS2}6Da?U6#0?#T)??IAs5`Ij&Y;ZNz{$<44h-h?MiP1{pm>wv$Oe};>4@Lp81u#&9
ziJw~_05hU1zm!ka`n08QNYd5%YQJS-hLiM?YI}rQFLlL~$#v5)6jszCGTdV^5Iwj&
zBM{kHMgx!rG-_N@U8-e@w<kT&O<rENY<-|*s+_$72l6^n$B5`eDPLu-Z682iXDYu`
z1v{2Virp5mw&;I>cmg{vLF<2squRuaW%a+7@B6Mv)9C*UR&W!assB>;Tv@D^sBW43
zwCpYueUICujJ2x&gD;rB$ZkTYv#H6H!U~m@W+-z^TY(Nk^%VupBr6c9p=L%ISBRBW
z--Bit=Zg$08uB1dH4Na@q(s_vfC$*P>9rnw)hVEvZpt5IZAvS(h<3|VFD>M!f#PpF
zQz`wJ+q%twrDu>Pngbb<n#*qm!ljjTxhRc>046WrCN*D>dp17;(ttxeIj#%&Tee1?
z9SmbJfnk-(|EkODoeX?wTvnFYlf`jkZcH7c4;X4BrJqLOtL%FGh}APtS?>vngqhF-
z4XgiUo~$yl`Y(Wz(r5;)0PLLlFHEwd|FA{>RegYF^gpYI)&FV=0p|4I$+-mp9!~#x
zj3KYh<<~BqnaNBXQCKR&8T6_4mWSE26~v3Sqs^~$qz4SsYoVN>JP}kP*H^h{Ly+^*
znzr0O#J!^<7#52#iWaaK7PMKfa9pin8aJ>xx##L!m$N`MKPln-2m-|{%lzAPTCQ8!
zh%X&fTOuYIYR6UWvLi|rXpNr<N=-PSa)cJfQZL$iWcjm#7Vm^I#KJhF_8l2=!dbwM
zw<aK%2i&6E_~7Rmm-0)wtgtdEt#NHr=K4xM$>oj?)a$y@<X$l(xt-dipju9)m7-Y<
zC+feij`ftsC#jC?4hYe-3<4fdbe;HyFVp9yfY!X#!bHS|@uMmTJNcbM|MP35TK%^p
zJlZ$6oPqq0GFsK}L0f0vN4fc`aIOB=zAdjg>gd0yQ@Xwcm{nn&FWK+&4P6V=4;Uc0
zaa|k1fhP$F6^?|}TGs;ETJ;*NfJ9V+yxfJuatTM*uhYTBi?}>Iq9INQXyQk@lTRvs
z8Bzl;!hOQid-v$%&MmzE+DoMj9^85iDaJC}a=gFSV!3KfN@rkXmPXoI6IE79z72Bg
z@e>PqP@=tDDo6FWBdGmXIWj2YD4)8wk}Mz)W(=npV9mIwRL9o4!f}z;Nyrw$wb_~D
zv>S|-kq_$PI+=FvgO679P6h%-Ak_fq8k%^Y-?iuD70khzu~o`}4nS931Y7^Y_z;VC
zp~ysd4ghf9&!PVoytnJWlChGIbLc<y0JD%U*8ie=%D{4T3yMs7$Uhb?ZLJ~g!SvtV
zZ}dMCo#nO+a)GR7bx<)lY54O2GqNe2=U13y>8+5qGubR!E>+`9l>tk9NiU!tzV9vQ
z__4?E;*A?X<Amch!TNNSqLq#`J0^y-sVKi<YuMk%;~P)FrRz_?`s4&}zw`o(t5e`E
ztFrfWlMQW^uad)J05l6FkzCw1b)XRGJ^`?UMzx!11?se0HB>sLZhs!lN*hr5=gc5g
zvm0m@ETl9GGd-7w6-Cf8t70J>RWsqigEAH(j{#*3WC%`XXcVfE!7D9)<>cUKnFnlF
zhKN9<9yFN&Ie;#^t~WGW)q1AKU)xPe|D|~D9|LH*4yH}I`Y(!sb8TAnAN(>#NB^Ot
z{~-Dw)c|W>`<E_&XWklEb$brNz-#ngd)L6#gpU5(x|DWKSC(2f7h%pqV7+b?PHaXI
z7pwvZbhC<S#b&@)ma$gNK}xQmZk*!f<%V1?=<?%_!NqIW(xZq0fCCmsCLB9*ETcjz
zLf+jl(il^VWgdn_7*hi*4)*EVTmBN<zx68I37~8{qK_+zNtP>U`bpQ?4$M5U)c{Fq
zw2SHjYpt3F`+<qojnh%$oEq%Tj;ej&z_(~o$rDTspdHk`R_Ou?vCUF##X?odWe)QI
zf%D`M*O<-D6rBOX*4xTG1BgDKIxU3RcF-ieRZx|&);%RlFMpm8sof};4*-MqHT68R
z^75Te|FaHR{b%+751{`Q@ca62S#_)b&A9VyU%I0=Hho%B?U(dH9g3t4(|o{&qM>e`
zg88Kn#D%r=Vi`my&4K_;C#qWNDilfbb6%Bym=cD8OHz!i`6gf^R#uo@qYRZt2jGP3
zPrn_8<pS61P4EFv5P>)inu+qkMsa^{@KR!N*~ARScnC{@0m=vL;xy*w7&Zg!Ehjv>
zd=-w4uffY-_!Lc>(?%1jaVm}6>IpG~@d9ZDQEqzy5NrKQC<7$jnn-U8f+i5ve``NB
zfGFmgnXBq^14KG4-xEkJ#@Uubd=j9NsoQt;ZZ$%tE>h122)ubBk0aYO0MLLlDS2(Z
zs|+kM=Ue)rwjoqD)_}ic#2-E5lv{x`7y$Vu>@r$Ti)h^!MFp#?OH3;#P^?BXNd=a0
zF8xO_1i*U$9MWg~Z$Pa!ZKMC7^uINf;4@H{X1<q<YVYWJ6<d>Bk|c4}_)~h<6jF_o
zj4xj-gK*(UrY=J*&RKTV=ml0;78ba6Cf{H%!8{yXKPYD5uYqqUl9FTJ%E@3Boa&Vv
z4vsI<V}I$L$@zO47UMRX5jJ5#ZX8DjVya6w)~co_VX8wYRW=qo1v(wlhx|5h8X0!T
z@7kN+3Cn{EBrQ|h2^fH&>Sk@D(m2{a^}cZ(SvLMH3Igb-lG+G>P6wo!PlZn1*Ar<s
z#JoIS7H|>Ta!`Smj;E#6qoFtclwp{`wzC2m%pil2(tajZ3&L0pV;v^YoLVMInA3CL
zkk;!4Li0|9dP~?amv8$5)!69Dsv8xt#{{jw&|~&S|4HdTZqa|^`w&B~^DOfDYhdEl
z7Rv26Y5i%&Vy|jAGf?zcYvl6nDluDK<nN?QlA+}7ztMki`d`z_scn8&pH}|*_5#n2
z^!&j-hNCOW_j>~)UUSF&slit)#!R}LfBt=R<2qb_$J2=oufpGYvk9(=F|cBpPIXzD
zE(evn35qJkI2n}3m?y;iqgUhVo1TW{{sq(^NJ^f%2MI;kx^QA^;_KE`E(L_3gjFEn
zjh|*aE^lVynw8NOh0HB6ch74bxzU_WlR^&F?sEX3ug>e%`GOXw8A^pWVD2&0Am$C8
z%8T-NN-@)KPNuR&1T=jF0J13S$N&^VNlc3Y8ZnzT;O%5yM$@Ly22^0jLsNDzYxzb0
zhmx$)Nd-n<1^u54AY*OEbLhXpZRw2qqKvA}&@m1=FMUl%gEr{?6ys5hFk2xMy%7C}
zj{eu5a-K2H40vnF@?cFB#X1k+Jb5tdLG7kMDqjFnj9iX1EF)5n7?F5JS(itLbmc8?
zg42`J1j3ubgn8T-ki^;$89~|Cns18^Apgqd9g%@KvgDZeYPE_}-~h<)puK|&DaVP}
z(`yxhyxdS9qwe*y21h+u_=?Uamto9{<bqfmm%uWvlHLJ@1$}?d-`Dphg(Bu&8G&p7
zYF!X@`*_)Enfeoe`igO8P)vrUDy@{SP1Dq%t*(ay5gy`ZL8zm|x^8K3@Bk^p&&a^#
zC=BN;s$^h6u4lA$o|>9DxeV9=z&Z6Foc_ZD=s!CBN2mXj(*Mjj&!_*K1my>~8W2~}
z2D3=1>&y3b(LU(*j^W|---e;hn0f=A^mQ)?r_+z!=)yTw{kQO)8UHAlp6JsWzPda-
zz-!OE4L7F&AOldw1-faP>UhkkpK^@J<APjz=^8RA8cKm;@KfLeJkoyO0cCy>^9^h}
z0P;HdqAx%GbjWv^+oaoV&|w55`<H8+EN=c+^j!g91u<!FBDZ%H74V(KCbxiryRJdj
z3^uBMV(B+59I4KofS@X;8fVZlKysh8j9gbZqfR#D{%y8ZZUx(3{oU^_i>l*VK+>uK
z`NXxn7CfyiwTM<uu(oW*c(}1Zw(p%j&*(p#q5p7({tHRuvbX3zptd`p3RZ<_amwh!
z*}AZBUKOQ05K&0WQ@-oCJ}s5;^#J-0J)d_5V^&{QWKx0exAw+&NEHmAhx|3KzOdu~
zph_mzxRd(I+uo8Quh#3xh!YAFuND+*o%V9#Vv&G!y*h<)y`jZ&FU7%97B^@?X~Bt7
zPpCi#adkELk*5gAQ6{|n#M_a(du}B2C+DiJrZ45xHI67O!3`GEnmxE}I=<nT($Bhn
zJ+UROUTAW<!P_6DXC^a?qON?T8dv43WfGZVe0F2aH1BMPGa2=E49^Dp^;L4ZOEpdb
zTibTID#~C9_*A8Es0JdDpb|eHRDN2WuzD$23UH1CgY;zw-fXNmeyjhj=cF@kP>a!#
zNAhZ_k39k)A4>n{`#+8meotNPf^Hde?E+x?OxLqpC(egK`TY8C=KazxOD`_(?d0Mr
zi))JL!fLxyf&t#L2cIWVZ||OG0+umdc>Fpp_V)t7ZsKpXXE<%9PutR_(3hvLzJjY;
zx5}Qe3>>Tdeb_s`3VRnW(IW1gP;LzdUiSOu{+rU{u<}kui2LLqF6`04{t@mSUdHvw
z?JA$DfrhYJcRyojcZn#r0BuWKcx5B%m85Q>lhy}k^}D^x`F8pw<;Z(IOTQ8uv%1ls
z@A~4=YqS_a+CzbxdZ>p>esE?Coitk6ylh%bjxHC842Ze!qU@lU4;zEtK2y;`bm*w!
z`1TjYcenJ9(q`D|7<GY4XJPdp1l&6Dd$@!A5R1zL8Su3nJ=uJIMz}5UP5pCQqc<?U
zdThx@j{(wka^ryGS@~*y*#I=<)gt-Jpfk^R6a!Q?8D=L@8UpoFmM}2%O5L6WM}6y9
zjI&ZuQ~IUHAA?O`xnp9)VoTGsA~izzyZ6N};OgehB0>fIX}yNiSH1%GUi@Ne(E5@Q
zat)usV&GN<D$g)wiy4#+<BpBv8*i`eHe<k<=@IACL;%MW=Yx%7rg%JWQ(EVzt>gw_
z(;vh+)v~JWc0R;_tWB*py|n}$wRWqPWjtk|dgVX>d>|kOUm-WHwnT-Npn+oR#&_P5
zTr`X2wNE<AS2ISh%;?MaGS8J?%S7s5Z%dii|F#`E*;SmeZKoNi)BgcyGux{Fv+?zP
zQWFiSC96XZd{zFXUu!xQ4f%fQ<5^=pum8r4(nM-}#@K15!cs^LLa5(3tyW(@aBYsA
zrqu$YEtxA$#lGa!M~_`A3~h?{%qn=a&ck8}cVGAdOu@HX7fad!Ii8--{a0Q@E(f!(
zIFEr6XUZ!UP{$Tm1j^R8c(TGo`+*(%T6);2%%juNs@?2;-R3zL-P-+NltP!Hl*4v}
zGJ44U+8ez3(|_k-uLiZP0kkH>wox@QwZ5+hhpSNTw<}X_X+@VPoChnTL<S28WCzJC
zVD`GsX^I(a*0@T2(B^N7>H(fDr~GU6zcVbM>$;F6y3XDZsd&1cFc;joQu+_X-a8-P
z_pQ%UEtWR=@5XoOW7}`4&b{`LXf>Z|q{td4J@aTX8md6GST*QS3+xq;K{CZJhH-MQ
zi|#ZQ*nPyVMoJm&wbU(g=i>EiY5(w;{DRcr%KHAj1jMCjh@r3-#`||++H8uF)yC32
zr0aqpk5i`%$IVD#@enUud6H8Abl@_^A7(*-bo(@QXSQ06-JGx2&LV2x>R<+qq){L$
zzuVkNgN{n;OE6P06|*BLwyF6#z78DLeWcsU1B8ro@K`8cG%HGtU)Y^)r^ZN?YZ|b7
ztdnKXdY3LKA<40=F7OkX>pk5v_2r^#nYmpaO#i{@|MUR*Kktw4Tr2wD4*3q)JFA5A
zMzNDd_ow=;ulM@YkJQFEW&IzzWyYY+Gqw#@8?ZY-q2V_bsygX(s(N@zEwd^%%Tht8
z2^gQUi@sv%cQglU!y+u!1s}1gP5Eo2VbIu|-p9qTNFAp*K>4@UhcZphYz@WtiIE*I
z_KqO#tgt0Wy^|l$a4<7Sm4}tf1r3n89xcdo9=e`Yp|I(AE~w_KWvcz+70C@uNvrGW
zOQ|t!S`GZZJm~>IoXhvDfHK?ZyAGQ8#yDZK@Tb%D-UsIapJgy*4D$w#3t=5M;Aa;%
z(WUjw-GB*4)oD7$$mqvedaQ2D=>JS2qyLRNrtW+01Ds9+WoW0*4w(8hy}YPDCPn|q
zk2_M0*Xly201{T-Jn-Vv%^abrfw1g}2jR?;QC~es)x8DOtQcAa`=F}^1NrZVSC0de
z9g~Y7b6&G}6n9R*=FVN%7792@7*{7D^%d#al3U6(Emq}2gu<1HpYzX>1LhqB;}m??
zD>%4#15fUJ*|i9>?S$jldHPgZ!UJHnz8-)p`#gB}`*HD}_rvs-cfuz0=;`Jz;BWst
z;HN%`_{xi^nErq<;DhaVP|V1eYXAqiF1>QJDY3@L0)QEH%H*`;^T9$#pP<T}uL0;q
zp0ms9$z#A%iEiSQDto0=N-u4%6_^2sT1IW^&~N|tvF4fkpz{)m>!u@##&Vqz8bD>k
zsO=U2Y->xJ`3|aG;6cYnsWbG-RrgZ1{Fppn18t$?7gL8$``6j_y#Avcp()CwRH06f
z0rYN&mI?Vm*iJ|ND!<MjjS}d%tzzWwdlxRmhcD9crIRQYkNm)lap)*<t+-n;=5*x=
z?$R`rUjTs8Bl&Ua(hbP>sKhOlI<Vt?@Imjj9t<G$z_7wzzjJHcy(ivD*M9K-gwtbB
z!YYDrD0<opF~Z-;d%g)ax4sMqKl9Jw=vP15^hG10>JL>C<wtvJe>f>|&gk~8dHu5^
zlS+Ofk{(l7Vw|b{PKNl;=Ryw8DDddw=-iENt|U)&f*q@dEqV~*F*%oC1BMm(Dhcy(
zHE{TBJMjfnTiLY!n|Pd$Vdb9j)x6*w`me{Ek+GxyMpo?P>5DRC;S6w`sY3xyH(;iE
zU{D2YIVvK(qORM&dhs^8DX6i#anXxDF&G(@aCrhry$-FlhPIm3XH13>CB`>Yb++)M
z8_!<z<)t{wA?a~>T}t+fS4_sZ4Q+XJ<nox;vlwq!?nyyVKmv;y*Mo@j9Ll|tb!zY6
zs-VU4(8vow4WrHf5?SNKsp>V|E;fDenZNV>@YLV=zvJTClZmEJL#FHLd-_eV2_XI2
zfAinN%@6+_NnI6Bw=04LVeKN}boO3};S^1o=xq%S*ijU<0DeG$zmX7XU+Y@q);xQ~
zB-`?fB9ROIF?{BA0SQ)G2X+i#J`b7~Q&<z1W74p%)X7EKD0F1id4n6nRoW_r(|>xM
z`fp@NKU@9BMn-?lmsezyF~@zP>ed+Xvw{a^t~Up*4`LOqq3GzTqFhQ0t_CQu&y52W
zjE#z^Kx(j2XKK|^C>B@uI&zZ<gY7i7X5PMWPyyfK;2?MAfH>$zp}09bFxue1Jvcsw
zx$%!?YMd*zfAKi0Lzz|DVW0lelX&G-;|vZpO5T4Q1lp7K;nMUhg4;ubt&$A&RXqrF
zjJ@M0;IaSJ|1KWDoZgTTfp{t)Jf_cVP2&Cd`{ob+9XNUSH-a*MQv2S3Er3n7Ps|{c
zFbwUiDSgiF@6lyQ>rqt#TUUSWK|;y$6Z(?AH}kU1MmhOYDWEnMjUqw?WdnjPjxDyZ
zrW6qyhAP+fJ(g##4;>)rI@MC`wT}MNL+F14sF}eQ0IumQDG=ZQBUhvUd@uH&>Jv%Q
z{R&1(lfSt)Kh)Up(UyKh{fM_J!<W_c+X&;oSGy^)!r48bxp_H`AG@`~Z5n;fgs)qj
zdfPq8Ij<Iq8Me40dxr-FG^w0FQPK!r<a<X~uhOu8aCXOFV#RcDbOG|)g}`l>ug~0z
z?4(Q^385((#b+<|%WAK-9h=AP%oHnx8{hhOU~%Qi0>GF)Bk;;!xt2Hm<#abc{J&}P
z(fzGK$I9F5!5SuaqMlCM4)k0AL%oe%wb&B_c*roFF5}-ng9@Iy#D-B~?);_=7$}@F
zfxgxQaDUy^MNW)S$|~uV&UYE2{*BlNmrmRDlt6>s8TxNtnW_8OjfqJcFkcwBe%5(;
zFqA#LTrW0Qbx*Tl-)>fM_Nl9#af-g(Shk*_ZpOIs0r$#kuO>A6#Pc8d$ma%omCkzf
z6`J^6h2=CLZxOD7i1Kp2rY7dVpfb#LMbfp23}wjXfd5H{jwBqv_O`cUT+Gwu`LNjE
zhwE>9CvG-t;4>|_Y^K`;<&0Wp_d_-&0w7oh8DN)nfa1m)#-){NyzW<>KE^(J%QuNT
zBC}&K;5%txE>&NBUGO2_c%lIhe_&7#M6JQK=a|?5#_?Pkg}aCWpzR>*$CQ`nyy5xh
ze-ai4<7?sTFP40jq*`f}U8TnVD^t=r#r0q~S2vY5Gis`tXy8I?n_2({I|c3lur5a%
z+MYb7ovr@ciq7jl%;-PzIWcAt&c;y?l=NR67^I9*)&H!RXgvhN?DaUFldC7EmW}!b
z&-536&W>a1{vws7>a)c^il1d`TfWF|Ag%>srw9^d8wQ;1gz~MUbQ+Xd&6yH_@fr6j
z$_fo;vH^@b{8U^z>M~mL8(;G-+D|TvHtZi?g{yCQM>--itOo*-WjuWTF@lm28Thei
zFGv$pI@=bZH)*80KtfzQ01q;v3fvqued)fv<0o->`N;~rnEk`@ov%mtg&JZp?P&ny
zwoNM=tI}35)CQLtw(1p^>t#$QR07ijSnmtfB*3tyhXQ2G4`TjkDN|jqgp~!ib%R+@
z@@42VjqB*Hp-GF-86k5<P+t2}^RXjL%SrkgSRm^z+!nS6zML75A@$dNlFp~?m8tV$
z16Zy!2B{H%4MraV_4v{<cSGkP5~KfYAicp;`F8W}h|TT`)_JT(6F>LSkNoQ&k2mF@
zAp1$qLMWwzqL_4k^{|bq8DY!H`U;zVrGKZ@I_@%q+=;3|3Wy~T4c0Zjxns3n1C1kI
zd&}G4v9Ea-Tz%`?;rNL+!<DDrMo+x^8{o>5Pvv7VH}T<-k@EyblY!Yl8m|L0Nywyz
zt6^#?a(kDl-cg}j#u-aG>%gGl;F1F2%zh8U-{ttCYXRiw;LffJKwm0>ZQnZhdp)Yb
z1z~<FUdK$nHk~mzv@xpVqZ-<BUCUnv?}LS(|Hx0p?)$}%!H+rR#`C0CjI1eJ6xJ^I
z3-D<`F$&$U1+&y%IYyq2ELg7VnU9oIuKD^#8A;nh_38BAxOvj3q6Yu~*Y4V2bo3v#
z>c8YgjRBH0GlmI#zBoSw5UYEHf1}F-=IVcb{f|GVf5=~j87oWBV+kT*-*Rd;<AkCL
z;T+SZlkX<JPQ%sVkft&y3d-jV6F_~Wc}nlRqri~YaC&+gC)BWaa1<8yF4O+e1>CGw
zunN~Vn+@jkk0))4(%`M<^j7)uG>Xb`j(UEYeSqWoB)5)|*S1v4hCx~vS*g1H5I?5V
zJJmfAJ}-sOCoUjdIRtpqvR)TZF5@!6+}%6!q!mE#;1lSCERUT9(aggjb=Fk6#sEjB
z?g%ZAv3y3QxKH3A!gw;!c(VBWA^XqS($CDUVYPNl*Zy+p&?VQW$IS&cPQn~@d^H@J
ze(ULO1<w8>z+l1fb?QHyL;r=SfKAtruhU5LsF+Fy)OjiSyUopY>}0GBPih}8j|O_(
zPJB=2Y4smrCf@TO{m8%lasDB1`e-Guf@p^VVwZ(?EqXRDJdIM<qy!Ti^aNMs+f4a3
zC#P7SNP-NDsqylPUXF+9QR%oJIluj51*hR}wOXZDGR5<VH&c8q)07_`VU}LlYU(t|
zj5zHdEV8F_j_WwD11BGg9P(P5DLB`&PV8$9xlN&IIB<rpeqY~y5jN|)0>qb(g8Lzq
z6HNdV_jqK*G;l^Jn79A=&!U1|l6qp5&I-bP?jP{cOjr+AokvyfnyQ5b^&RvmX-qMm
zjhu5K`i}SZ##e_Cewe8G6#S#RMlzu8RM#tDN4d4s&`UQT`skzD+Wck^MZ_)nV*_}d
zxE=im(&ai3Y6^k5gNa1{9kYc7n4wdTuKv%^hGtAExvflKR2M)LTJn*0@<y;VLN;Gr
ze${{b;@M&=K0D&(f2(Cv-t%Uginq$FAVl3EEJ|p8&2J-VcUrKLdnU;s&GKzdR+Kv*
zL3?hJ4-2ykVNh@#iyezQBC_DIJiRxKlYv#m$I`e+-vhw2&gM5llu_Afg;?h1^q#w3
z4Vu1ES7v)7yT=x5c<mEE36}!!9$yGR9PXY5vvC@(zdVMvQOvj&7+e{D_(@oN<;y<b
zW{VM+x@GySBJiD-J^AsIK|I%1*Bz8ET>b0Xs2VC&{w#Q&6@KpL{tb+au#h(l{|!_Y
z)ngV}GMGIuNEjma6E{W*w#bb$>`njl<*47H*|rSFa#YZMURQ@X#%S0k^oM>^j)2ds
z{x@%MPSM%8I2n!p_r@dFO@W@s4qaijAK31(=Ca7Cy8b=a2w)l?<+qL=z6Ky(e<1Fl
zF!HN}s0Tmjq)JfFeA;;EQgvjM@_J0nmT2$h-|O4Ak=vbIYAQZgUR0?q$sL4gaVysZ
zQ5ODy>~pJpADm@`Iy6#d0^s$nv2_4o{l^=ac_XF1kxi3pOp8zd5?z>HhE=#8%~Cv<
z?(Q1kCT7=!0pp@V*ZyDsLuc?CIRVu4PlI7Qpljc68I(}dqDu{q!RWZHe7V_;pbr&3
z_K|-ReNR6YO8+lInXeMf`~9k{5+NDsa!G(IEqd8;+5_qy%Waf2MMS%m3oOuX1Ay9z
zTMi7;<#lA-YDk!<sGr?<zMPqW(DtWqldk@k@z9Kgcw6npFlkCUD}XX;y>YAzkooP5
zlkZdP^}W~;pwIMxIEKL&uZ3hV0`LvOQ05<TwlUo=_h@o2a3wt`=WCpPedk`7k`FMT
zvn3^mp#VS>jeVW*(o~<<pejb5kfypookkQoNAhOcc3#tavmjnLevA$-KBld%YmMyc
zQCW4EkCZ}s0LJfEu08=*E)Mw0&;F0W7k)QA)NyYEaC_jL6j+|bD~~0HI$!yTe-6u+
z?0FeBkT1D7z2;eO|GGEa{b0uz&qw^M$+ZdO2aw=(hL8TcpMr7N{KPbD{z}O7b8tqU
z431D0Rx4XxL!cI9YfY+4!R6Zn6G`5?4_2{ty7Zy*Rt8~<0c-I`m)%RR03JI=V>WXl
zI*0yC+j>w=*L0hBEEZZ(ffDq-;H1+tAg}Y5v?MHe&Opt9_qK8Hf16J4{*@jO$1wCR
z_5>iq`YK?~4JsX{jaSh|r{c7lDb>cYC7itcs&#Xavxd}6cOXAIUReaUw(PY9h6V;B
z+sU;qWktEX3o62YbXUid+u}j<m#(~tj*g#b+og<QGQi%jLFm^%1M$@>N9l#A_rLTR
zxc&e62XODD7vb&z-3LD+06+PE`9CHwp4*1VWpXRE*RtdS6;v6s9w)WWz2cn}D%)_^
zTsWI*oi_w!h=0L>4(|-v{@0;9K3i-t^mNQCmcGZ2_-bYD)LnzDO56gp0y~{h0|f7f
z_cAeSpKbqEulrqew*FTZy`>z9)5hzTtH+Y0QRCkiAyg_~XhiU{PhqFf&QuzKG>Gfp
zsshqi`d+8~W1L?IzdrEMpZ%%-{`u#he+_0rO7J(n`}-y>2Do}<0Ld%rRqc!b-A9@G
z!Gf(oAM}-YZeYcSIj+3(Y1phbDN1$}<SJ#n09km7pqckj0^h4OD{0d2smcNZ>>%n9
z7w_r_&=$0u#TBkE76b0@?ZI-n4|i|=Io!YVVz(8nsj9W@wST;N?b;J~_3DKL#Bqm6
z^m(72j&SGBO`vyvBaPqm9k_b>8CWlavcC2eIQZjF!r^cK2N>?%eSmf?wS!*VEVWHX
zigDnq{PW`?r}MI8#qn~axS#!npZmA(gs*b=z=ysse*7@f;s--HKWHSR?ulRm90foD
zw-0>-Of$bFZ_cyCVT?vAmN~JkR~~FBlfQd8X47XfGcefbHX$d2POHn2{1^Z$kwi8m
z`jKc<d3$DH*mJM#RXQrNBej!tX4t+g%Mwf5qd<erTU}R=j>Bu=+dm6`Kl$??`KjmO
z9HD^m_tO@|5ML#O@OhM5{}$kx>w0i)v<1|a0?^SDkHxKOxY=w{o5b6Z<;I!gfG88-
zBnLBID0_s3e^l%>{7@SmLa2B1_xLVX;_{d*mX3)8JOFY4<pa3=+7}BTw+7f7F%8hV
z{jOenJTPJl#3v^kx_kGQfFf*RIUUgDnTx9b_CD3^?#Dozw%><p@S8AinDSkf|7QXi
ze+~Qvh7W$|2ja(bVaefY5a65RyKJXIRpQgY(_}|*xo<!(V%9Y2NRS_socYaV<aF^y
zJ-EJ<$@#`WGrxQJ$$gcNjR!J4CRNYWN$G&vnY3JfmAh>ZbzeGNwG}EkQuzSP>@E9-
zu5nS4!>nv%>NCyv;kI^y4sz+bmH2Un{Mvw<*VZTdzxe#~Kk+$uz@T49I-?XhC{xxA
zP8kjB<w*}vU)e1PaSEFsk((9;aigo^;PNpn7E7GsUSR?SYGQpcuH~VEtqQ`G{T4fk
zHIm3E01^o}4vWwM%fOI_yviG4Ii?NniPSrkdK%M?jl~F8Z@eA$_YYv4ZfZu(27>G2
zx;o)xy0^c-5671dX}wyZX2cbUr763!mF-5enxF3M!x&+Gt<9JFa2qfiAXas@lVMvn
zfA1TWuYQORiG=Wc`S}yD3%l^2D45q$@Ed>Q_q@A6&poPQ@=0AOUROzkMQ&wInVV&P
zDJju!Z<CUYQYMBQ0Ql~ozX+G!{3e)2U3#A5%KQTI6JZ0(1C6xlwbqk4^I|}rDf3hW
zaS@{J0R|UD1Y{_0^`KCASP-J%Gr=s#l<aogN{7Q5E?<2LmUtyxzFmvVrU_-jP-r89
zHHgtaxL!vf-dNWJX`t$X<5|G9eI`_|tBIF(DXH-hWANDNjD`M8YHAsFW71nAaOS*f
z7k1%4*I>X{*rNf%d?nvyKvrz0Gj(M}t<2ZEIiNy_Dx27sfzUv4myv~Uo4fbm{;RLT
z!R4!E?{J>&<cL^3kL3xyl1D9zpt>z;dC5WuyG|$>r$m7bFZOU)9>C$zCAfI$IPF`$
zedk_$@(wAm=4pKz5{?)days)O0P=cR0qk9h?3t#`Yvl=&49Fxk5jk_=m|xM9>Qw&N
zHBo^$CpN}W(QR)~b^Dch3eJJJ2g(Y#EU@eE21cudzR!T>8FtN~1K_X=yYT3S0>;eG
zG9*UjX2sJ!&HSwbGAm0x(^jUV9Yr(K&h$aDPy@wJB)$X!wb88RQPok(4|h*rel<C7
z4lhOaIi|ccz=B&<We^5NYO1>|3Q%J)3MoNkxr->@5D$P@(Eh;%eCo|_h9UTb14D-W
z3wP<2mtVngxSO(|@id+^pY}S(9TxG4znID1{#A^xi`uMT$%PjR4^ZEDQOuk$`1DX=
z_{pvb&4_EAT$@O(=co7WwU#OCIA+#FmIY%o1JdKgIXWDo)-+VzH=yQC#BGCs0B5lM
zUD$>Hd_#T*UR1QY^$G18p0z@2k8V{!fO)?p$!eo_Jt$pvp6WTaq;*l^6hGzZS6)uQ
zc5vx(e6mg+{wU=oOGB~(4Fx4YgF|Y9T6K9s4wzV{=lcTa4~u1RON2iNE(_eJE7uPL
zNbkcdFTWIB88Ds3#l6$yM~(*&P0>J1`82t`<uzEHuHfFCKbIXKBsEj$55i8<rEy%H
z={Ied<d*pDJ)Sl6-|WzvHDyP21!KOd$AboOFF`f7)xU4^$mes(tO<8mybF(Rkayr|
zCF5(o?>0VSJ3Y16Dl^im*ZK-o9?&e-!JH=A@=jlRIUV?Oc;y<xhEK5qUMkJ|feSO{
z-%ifrvjEv4o|4CfJIGs?V}_^eHQl^@AC8U>VUeD|+JmdtuO)W=@=KVR+-dexQ!os1
zVQ-u^$%Qg*COA600qc_!x_|e}n(2xtwRX)mvU7v2Z9i~6=DJN0pc2m7r_{~O&ziEZ
z&8!KuOUkopn_us{l$9$DJYIlyP`nF|a>&eBe2c;)?S2Bsgv&&<qZ^eyt7|5%_W^hE
z0DczE=34=!rf>6Dz49t<Zr_0mPrVg}sQ}_s7_p|oTp!4_Rt!!I1l1!t*=La!>jI+U
z?fCZT<pnxi90VpC;)aF2%U7=@$P5HI?Y!VuF$G6)a-Xa=YZw<}V7Vh+JbrTm_WSo<
zoHaPP-DDFvux#Xf@pbmXa@(0qt*-@S#dl=^QMb3v8_Vp%wzpp|0Cs=79<S|Pi>VSB
zS+u`-mJsa1E<9=>Gh+v>p274vGS%6&nrLeU2Zz^Iadq5&oVqYY;5it_WvPVOhIrF@
z4R`+Zv#@vhG96sLj>Fy}x-RnJ5l*P$7|1P9%Vs1jfK1tU5I}UobyzhFi*)Pzc>C7P
z(1J@i9G1a{u|Np!i_6!pCJOh`S90Ph<$u4(78c^x8=TTfaYPpaAjj(`_rK!W!UD4f
zV%-b1{&T%#XB?{CJh+M97R=sboj1u`fz$dKknh8$uiQW*S6e%4>gBZyyYT3Synxq*
z#QaV95P_$UWY3u}z~LB@302`s&Yhqc9Jvjsp84eoHHj2p7wTwr^CpBp+PioOmlrP4
z^6+9onX)ie@-L4`rwrmY;bE}|WefpHH;N5XUTupkH~4R-^}V>5hqrGo(hAeza13Mc
zA1{U_9$&p04<o{tzY+*@+&51Jkb}D-)?t%;+UxW<^@U4sPJ2I2Prl+7z+`&_=;mf4
zRb2(X?QI*WmUaDOTV2P|?jHq=29m{$5s#4yyPlQTezk!nzpZXQ?k?=YqaMsdA2C#*
zQ+H5B01eRfuAMrkE5Hh?!KH3*^N%s=cy&@+@-BI`N{TZJ?5GysH}~$wza(=2WlXyu
z77H4d`xv*Y#pvT^6&(vWu2&cjh@V#X@!(3_F>$0;k1~o=0^^~0G7xUR2FX!;aN!te
zxd)UO^7T~1S6)odF{M({nKHDF@E&}~A=Aw!RW!IPlBlQmztXRaJd)x8(lXP^lRcnm
zcSX+78_Sx$$+yFxb-ZY5263rC<Ervy)p4O2c7L|yz#4YD+jim64dtnY`s77Iu%b&z
zL7==ROZF59Sfd78&t{m~DyECt)u5xh{jeo25l^Qrdoqh!B;c-Hp3MYU%Ea;hU6@Yp
z<_A2~^gm{#7;?INdh<(gc=ah5mPgDwOT7cbodT$?W4U3iFx<OcHZmVvJcbGPU|KA)
z%Od>u%8T*X&fE-`+$gJ%(TL+1*gI{KVY+zn&B-6VI(<dT=X&`1*ZQdTrfrPUwgFL#
zY4%d<zb?&MI-JT6HsBNSscPEaPg`9Ky*?$Fmx7u-)4Q+>k5XV}+$g(ZIt-z66bJ1s
zMsmZV(BHS9;?6pN@>V4c*ai%xJWa&i!3PKcFsr;CBv=MN#lQdR7wPEgQ@Gf_D1MD>
zur}%cQbvGQq+7279S0fqFC2%6dl(t=@wK$52QQ`LDW*y_gI_ykK=IX3BMiY8y}y51
zfw32uw|@cF>a#;#xsPPBFhjDd=f{2VjJE}3Hkz^x8qF{fA3KVyJy%vouDZvXDid$~
z+JB)y{H8a(3EuPUv#^{NS^6|#Du*V}1m0GdnH_o(;Nn4B^<q5R_?Gx6gV#S8NPd%w
z0|Xu0=2U|EGWvW=5-o4N*Ei~2`2a+I=qBw<dbVAP`3~lULr|_v75hPl4K-h-J+}sw
ze>quvp~dq*_tS9Rkats1yU{<hV#8jF8tMlFD&wv3pe)9CcEp2;Iduz$@~t$1ZWqj>
ztd>)9s>Va6y2@~Lj0AWVXr;(<mb7Ku+<)zhbm7`taqsX_fxc9a@O4Dmtn*Hc@|eo4
zfTfp0jKhnUU>f#=8V4Wp^{eTK%U54aoVo~@*9+qw<ap9hd~`bal$##6eq?9{sDrsV
zugx4wW#a>Su3^fP{?6d49%BZ6h>)LjY@hg>o4L4F2ZT8vHz;+3u6n+na0#A!?t`%0
z--P}N|H1TJxEN1u`{wZXO!))oYqgf8M^b#eUiybc3hey$-*F~Ao{{HVT=6fRQO;bt
zuXflb&w1o}ka9Txvt)_k6X7o&lNrx7`S&0Ap6~wzhJ~Y#e&pZ6Ss{UOJYLSfFcHr|
zDiyrdREFg?hu0{OH`dcF`earRZyAG7A{WY4OcBYRHT76<g(oHU+_agmlV-lUOo)K|
z1sJZs9rh0|=_M@OjO*wC&KotRJWId*O0L0vSU8-P`(Z^eGUTf%uUB4#JaM2zBMH~*
zc%DT*-qT41hFv-XsbnyGq1h=>jTJOO46wd}ZLHikj^z{%QfE!>Njy_3cKf?6BliQi
z8Jb|vS52wk^{)59)9-w1+!%8${QSFN82#NPEUzY`G04jWKn^HZL{chaSo~0)mNZ+#
zLE5AkDz3ZL6V(oC=*9E@lp*BSG)AB>Le7)(a73tNNd4nB<4YPE{Wn9X{8J{%wMIU_
zJXPwEJC5&3o;LPCpyqt@`VU-Lj#8ozC=2=>{fCFte^P~uxalk7X0CUcRRcU*Vm`OX
zM~+5t{zrfFd%yq3_i&Fs@{#$orv_C&E|N-MVdT3HX!j3Oy^g)cFoRQFBw?bU87TsK
zzhccM3q=`=)y0fGEIY}r3}Qvs`FVNc=g=rewHzn6z65&<z~y3zi^U?H@46h~DaV1)
zZdL%Rd%+)lo5uUM0wBK(CwK3_6qxfmcqdl4giF`2!L=uz0JwM=;3%-{{X?X^2-a~&
z#!y?5izd@dYG7()sGU{EQoh5r0>yi!R^WTV-m`62nn@|SE5BwVjW7Q+q2CYeBC2sX
z-s}K;s1Vuk55hC=d`ryzzh3N*p9#~N9|_gIqQ*RAB`>&3s$MPY(`~PKgxoKQu$+^k
z0nZrHat&oZQGO#>oow2!2QW4-`Hf0sQ2Cs#|Kw}b>qmlZ@)-SBZG<Re-H^ea{!{%)
z91m2}ml`OU<ntl*AJJe|o;YWbCt};A_urew4L6?+SAHyf{dD+y#|OUW`(Q2%rrh$!
zR=8L(ZT&>ixPq!s^a{)an1Qp3+v(ZzQ;`ibs-;XUtk_U3_lY7?`80r}uJP~sX9bmk
zSzf;sieJ49bovSn>zhdH*Wk{ppHHlLJiUW3u7OtfknZ1s@!l=E^Xe;bdiOSr0gyKo
z*ZTrP4uE{+@h1o_Tn0Ki2HHQ2hgQV>Y5|iEz`_o-O$OEQ`2m?;$SBQHUo)egU1_c3
zi~{KaDgzfmI!Kjmrym7Isi<))y@=<STVH{NHNjT{k0TKO&G;p-Vfv@Rr}vM823#%W
zh)j8`sWx_X&eHM|o+QQ|w8AUYfNs6)+d3o}k!f@FFltL_6;t-Qr=rZpF{t}6`cHLe
zRhj7l^uK0Vbyll&V>IflxHolg^dEIQIsIqiM<AcHMgK`Njy!AC5mo=Vu_Dplv8MHB
z!sn070rJ3-xgf{%h#vB+R7ylNol+`DK*E@@Fx_?_VXinSM@Ip7GnS|}29FR`K5#lA
zQMJjrA)1QiVyF7cd^C!q30m%}_<g(={_X}x@7(~xw_se|g4OLmOQ*8odPQ^^?w{Pj
z>E5m2Lw=bOAg?#H2^p-0C0)L86|X+|cw)$Obcx{L5Ml2iED~M{*nB;sXn{H_dj(F_
z*;4D$6$~emD*I&5LNjgAXqM>^wL4s#j8v4kFbW2fnl}&rd62C%(-!l30J#G3@?iW}
z@ZJBA&N9`9+IOMJSS~>;8A?MSpH1zBHHxW~n%~z1zT#xqE;-EcfB<?Xq3hv51X*HX
zr?#$6jC1NgSW?DDnEQ3B{!7}wNd1R1^dGAJV>KRHP^<sh{f2JFQS-KKAti#T*pEO0
z<R9?Kd23tIUbf0Ma}kUyu0EwuWwoT9tdsy|Ww;KGYP5L}H7%h{P*3|+`M}%m0IHG`
z$&vP0hERE9C)FM;(NW1o3caw1lG*>%6(!X*?;%FqfH|T$`j9V$4E8WA>h14gJO}ym
z^=m2r;6uhSehV&+^=1P{m!E;l*S;pbKBSC;kn;*}-~1BXzxU-VHMf7SJ?xZ9>WJ8F
zK8cw7PbnMn&WI*m%2gBu{Isk978)5EpQO*v$O6EF!Q4ZfeY3-vK?5;mzg{a3PnWgq
zF7P<j3&^dnyuyMmW2XL4+MlD4D!lqpQ4FCKSbVe!`1^8$!w-}yE4+C9`mcuHx%3}Q
zyE>Ww0`(s%zozr)e`y0<tf_1HhHd~k<DRU>Ka8<I@V$TQM?dznKO=bzu3lQXDh2Xm
z7TYQ8P*y#v6l8#*j2WwV<)JqDbHQmTUuvw9unE@TLhkZ4tr#^Am6!z-I?01mGWT+K
z%ZAK#qCY>mD^3X_Lk=zrx_29Hz5Eiaf)9CItzi|hH!SL1z7c%Lks)8Y0#jHR9QXEM
z9dbGiZjIB;DW0xRV6{5M_!5)LSKp2oF1@Kya4mzmHdUR@hh(6kOB@aLR8C0iJdZBQ
zs~0?Mv)g-;%RCUZ?TWQxGW*J5f`<ulv2L-q!SMG#P+ee|H%<nE@?TRQ3ucwQ<?Aye
zy5>)%gRsj=>(GPB^^EbWYRQlCvs_hQwen8Z`(n!D&;MogpB@?gN9AKRGLncRAuKoj
zNci}BANtUT<=V27KbsBYvV7g4T1jJ>Y#!(<(CbvO_TD-Jw6$kzED^yDxTYT5riG@)
z^M$dF?ee`EGO_xQ%wP}jieZDQie><(wn_)f!&qqmr@b96T?}9L@R+8(J)9OxI=*o&
zHPmZgfw&9^kyO)qg+r7z9Z)~PFy;DPzVi08llcC<KW`h-%4r!{VJE(wm{rBE`q5+t
z<~cU4^WmYaz(`#N!<y7R?Cqf~no&ClWPHp6=NaMBrAzSiJKhqr`=RjjhpNg+NmV|v
zEs8~Q1?PQ~%$mAwukr^wwz0fipkgv(04E;MyhKx&D9fv78^j!NMuuABGn;a!|1<iJ
z3U2GTFa``bTdW27@t+NGx-$F&$Xnn(7q6RnANf%V$~M-_PzhlL(E}Z7T|2>8AU)vb
z2C|9|We}JtlIk2+6l%+vKcM*H$VpUku(eS2&#qUJsup&m6?b5*N@rMvztu@#$aewn
z-wq7<7TkH|<-m|{<G4PBRTvv57y$XPu&DRM6EMZIm@gdTcyI_)+-0#?=A9Ohm<>(S
zh}UjBjTeufYM7d0XFaw>x{{nUZ_6o-GI&-b8CRxEwk+er!%D}%^`ip$+K1f!RM8il
z@{*ed7X^Qy@ST6{gRmHu?||&9(@F%5?0~gD?I<*&kwqQ`CmEOynA{ZAq-S3<aBph4
zR6b^G>-^N%uI-Q8jTd<VO;vJkO7xxnEByzjb6PGlZb-@_QwFH<MsPhW>iyH_@=I_l
zGsZ#;NY}VpDqSGyMlgU6P^U~=hl6GU(xJT+7VJbPxzKEe5RJvO8IbXXayd#9)hB_b
zY2eb7SgjKC=M>xu!`{Vg)#5`S!M~7|ZIzs;aT{KoXx~9*$U}UMG^TyXk6$Ai0B^lC
z#OJcpOI8Dr#~0~^yvFpDNqlR_FpO~h`a44E5%1pqvNRAXGU56Kyz3Xy%CFi2d$q<6
z!=a{Aj3NkI;<(&L#;2`HibYRUm>#wA<?j!^&v+eNJ|TQKH1#v4P&GYOMn(@U6&I}3
zX3*yzNc96jDl=%b&eXbaG4-JtjtaH)WxV=4Kug(SUvg7bs<Jz5bZ)2ra8CU<l`#6R
z06wcb+W=5JxAk~@SNMA_{5?O^8rBk^YBrWZmMwm{PqwlmaH983YjnOrJ~XGMC+wzx
zYFY|Aw3*nw&Cm<Ep&F3T!=UF(BcGqz=_Ji+Zim17cV2+a>TY^yfG3afM0wn70<fM!
zV#xP`5BW~qhx`hh-nku*`=m9ceaLwEvFmUp`jC$=<8<*N(BTo_{yt)2$U{7mCqAi1
z@u2z}H{K2xkFVsWNqs`XKASekgM?}&l;G55Nu9=YE#C(hGtl{R8W+0r$Y)n{pn_75
zeLirAk2ohqMEdV$v!MDf&I}@homOUffI~&_e2-Mz#&8+qgcg{bT4G-`3kX^cP+jf8
zTHo~4bf^Dk>wjl_YKvj&ZTrT_N%56#(|`BebI;i~eYn__5Ol0774%m=7+y_9aB!st
zf>?Yth`<GJ#p?~rNDLd%@?(FR-hxMNGnUM7A3Z+vKYV^tuAh2Ml}<yacVB@0i*Lc@
z@<KkPEnS~z2<$c<5R`H%<2S%ETns<sxyz>kjMG^b*RQ5J-+n1qo%J)me41!XPesIC
z7ttww<NDQ<-`(4<iTKoKP_<oki$K3k!NpO@^$$&=^k^q&ncSRAO~!K3#-B^OHGJc<
z-x5EbqmiDe9%{*7+%*8`cZVSM*<hC$IrKn>>~**){q5VpVz@xsRcDWmb;-d3EF%|2
zN?%dUOiD!7>gH*{QrH__|8Z9TsbRxfZZ^2i=$UiU`}M`|3ZGZyYzk1VrG?OD+;kcd
z40W*7PT(O+U8R%`p?12{40HlDxLrC|VbFO&tGwIFslKbi0Dvn9jlvabQ{Nm-Dt~4T
zCwIO;%e~9NKfjj=Uyc{B_F|YVUrGMo*kG~!?uNe$;rssOV>lhkqtgLoBfEa>MWE0@
z7<h4de;&ruIHyg1>^d-H7}j{>MtWue?%aBnD`(E@P*vr_B(&lH?@acCND_70tc({k
zWON^w&1o_?rG22+HTFhNb{WJExS3+ii>PtATJJZKJd3!X%TvlNQG4y81y^~Jpg7i5
zJ#`72yqwZGkWR7LeGnh&AtIxT<@H&n4%{!q?7`{^;THW<;=Ez?Un&S*|J4p6s;((;
z`rjBIRNDbd-bN0BYs<q+&zjv7CV{)=DkoDeTPSF22r~+<``uhH1-MU+-vb6cND%db
zL0Ilh+$QMDKxYAULHv7CppuybO2c==P6K7!+!k@EOvR@4D{!zlfJL}Io!pZe+|BM}
zh=9D>KOkBx;NrE*N%3yJIOWGK$B`D(DF(kP4k5oy0A$MkP>6sWi@1B|)okEZMO7c^
z?N5ajke;#$ThIZqWg{`DHu2@yeknilJ-fngWb2ftu4Mx<%wpn9NTt75msi+aqp*6M
zRT#Fr7hqdSI*y8~08(hUDV6NcHs9P&sm&+lQ%4!=;Ba(y54a8$WT;<<E!W@;tpC7N
z9bv2f>#9+K`5Ee-+is%2z0@~R9T+s*i&}8x-6Lf{=$6B+2lH(0c+!J5J9GN%%vP+=
z(x}e1Oj?H|GXN%LpGp8_Wl43U`r$#z)_pt;jAEHjdW%gC@u3f(yHEi67;wG67vCZh
z0Qm}xA%k0?ONMbueKG{s^E%ACBO@9&A!Wv6c<jd2ROs#7uTrn=OP#r$T16n=ib`fM
z+t4&w;uL0j9J{QrI4MNO1@P0x3_4BQt3EDHn=^)GH$2+`No=avV^55GPI)}D1l8vR
zW};~fj)vYjkOOF^4(Qms#FVdApSI=e?-fr+x;E_e-^c-A^&hMpI-7IrzaDDkOU9M~
zuX$!%SO}1pQC59B0oAGObAv*QgwP)_u3^hJROSeP+`y9Z&_7`$#@atQq;0tIuT^NZ
zNW*kW_m8iifKhGBuH$}DkO!v?(kkvPOsa%&EAhQDo)3;AL*5S=Eburo<lv&X8E(XV
z$V1@8xH*NB(-YVmW1gcJh8s7oBth=nel-=SfdqXWT{{WjcC@g#Gsx#b)MsGvn%V=~
zvQWpGhz#bnhC<Rkn4hAgzAF8$02eG+^u{&KT-WVc8jloV0=0T8)849hRk-eybq>Iw
zWxcMh&hVCNq-5^pS;j4=+v$JFSj%dh<F8Zy!4YuDXM(4foy2vNsl2!&uy5&z)9D7P
zmM)K0+CK2MvILc9`q}Gn)alB8t}-gY#;uBpIf#YthT6(9E>z=p!9#s_N=<2M6ws<<
z%jdOWI(q(Y9vyIa`4X=7_QKsgIKFW$4VYKI61TkV!?-yKk?+I3ue?H6u3nEk8#ZB4
zFP0bqITm*7)+@?SS^?MNqO?V&zg-YYXVYbX1!xDOu50?NKx@W&t3>4j5Or9D5|omg
z0^uP7mzR<w)=HycM*yBQf*E%`5R}0n*|_w%YSi`PbA)*SGs}*%`p4z)Lk+6!yDLUo
zmpX=Zr~k7RtcE*&?;JaN4*j36<I*M0*1|?kw`T?;h_z9fw+)r^mO)aJ&p5QnuLgsQ
zM_#`49o3#gw2VZ{9Dht?ro%QP$E2Lrf&*ca^4n{s?Xa>AOn%_NhiSb|pcxORAF`x)
zue8#^@g+zui@=cMqtkJ5@3mKN!e(^>%hm1Fq&HuCg)U#Y4v`_}G7+u^K#n2?hFsdQ
zR0Gh|8)ghiFHE&fOOuhLW7g#JO#oQk6}cVa@AA$oMI)qdD}WGpBf<=*JZNBrGyTDR
ziD<@du3P>09Od_B0D`6(AWQWC8a?sjG>;eT<cq5P%9u6i&3<OxUm74?xjX#_)0SKG
z-}Wm!p#D!~?4!FEe^h2%WieJ#3U|Wjj@809)(@NotPCVKp6Yy2L^Rg3*B-v2TJ}-~
z7^)*JCJiH&JokN$qX*NBnM6tBWsy37)m_u+w86z<2uw2_NFOT@7UDMXm7WmDZaH8Y
z;9i;4?q9wHtMoKpV91YM3m5i-U-%9U_g<ETircqdh0B)<AQ!R1qF$<Daao9f*wZLo
zJB0M+X+Eewd+fl2A?tZ(RlMZF?Vc;0PFYF{GUJof3Ov<5%6S05>qg?XtR$}1dmm5y
z*kI*oraAyfts9aT+jKkCag5lEN$3TtkL)P@fJSF*xxfmbs@yR1f_mA4L!Bn=^naWF
z7u}{-7O4Zw>%Z4O8TWySxw9#li&#UT6vdDfcU|`GsLE4Gt|c>_V<ev$kWB|uJ9RX1
zta4f1;cg)AGLlF-Uddk%c2-TK#^+fFgzrc%`|15J0URzu#3SH!*66aBm?6jZ2}MUY
z+`TxjUSL?%8(=*g04?+Jn~S3(xbx~4Rr^fQEdj^J!JQEu$z@UR#`VaMC%Sv*W@+m>
zUF4<!@T@B@<cJbvRke#MP|1r~s8fy4jZv~pMHdw?Ta^?UtK-Iv14Mk?Sj<Dy8`1OT
z9otO3NycQ&`AEAC1NQFE<?HW}Q!-Et&&SvGA}t4EZ(ErZA(I)<9lO(i6>W?D=OP|P
z|9#cC%s5jX01U`u8&?bpMT%Vl-z25j(zuFAXu~IAu!A*sCUgY_mAC(0BW|xS`V856
z=1ltrFjtH8&@}!kR9Tmw+A?}T0(B2gPd*=}EB8vz#ep%w5Vx$2!SB0T!EpZ`;@$YP
z-d(sG+!CkvPAK{V*TH<AEcfBkjVp9?>4F&y5s+`+eib*H0mgBJ)oK+8_bELV*!01{
z1vA!)&glKAow|c(MA8RN2{aqf`%p<WfmTRT`2k}{$)GYo*B$T>LCeO!dwJ?XJr{D_
zBpER~rEWaYo1RSM6ZFb5aXAS#+p~(DBbz^-xgC$)GKTf<^xxzOef`H$mcjQ2(trKn
zpkxx7<ctGi4Ouav+|=K7RoYDIh#^0Ck`J+M6rZjcx2Vh!snBGkFiSE<W@v36>KRBL
zaUj!el@VRMa0HhwUj_|8h}Z*@bh~y;Ag`w{P+Wvd@8;lhddIMYw^_rmSp}c)2`=v6
zgT={xxO?jktWHmpTVst2ST7IY=<uLvhiMw==FOKW0&-9sT(35`S+C&YrQ=#5k)Kq$
zsoMl-{bJqr^ooETlG6e8l4p8wKu7E{W1@$`Vl#W`$YK`NwkR{$^wlj9f0jhm7}a8A
zOw5f-IK#+P7?=gC1{AbT!1jPZXSw2c`mgoh8A)Tz`SZN`51k4RGlFZmoF(oHqZ_+U
zdg^sGIJ{MyZIqghv;qJ)gU$_AMh5!E&^o6R`^=<F0MB~T*C~MIY8+(%#)E)vT)#%g
zm#>!nH^>82>hH2u84?CS4xcBGe8?G`Xc6<-jPWKc)~B>srBAqb?*!r-q@x8L!#{UF
z^+~CnYAeVL`6k4!9mh>rA6$n^Bbus|X42_8O#rGN?FFldwk<2GmT@wJb!k7c9$<d3
zDfv?R2R+VM$pD>k*kvteWGJkz#83Wh$c;&p0(y>T@vGS{TiK+O(*;ywHpT>ie7XiG
zpr@~hjiKA=|GfSykqi?~zaK*XOJ?~(ut&`kcrH=b@1zV;kF{7K+dw9cS88_1nD{MI
zLez(3DWz%${G5*W<m&m3Kv(6pmtLVO*RR1c$S`h3+~6uKmR(CC-nsRfv_GCfOqg`8
z?tdPJMPk?K!niKG%uW_ScNR!rS-@hs#9^_7)nWnT-U9Bt{6c!QQyF_$#pX+CDwy0A
zfpy?G>3*$MQ;TzQLjxnIMwmgWrjIpS(eX&lDtw$Cig+caJTA@#Oe>32DJeb8_!!~r
z{wk5c^{-xx>|wiJ<l4$sxr1g59C<|t$F$IHOVo9o%L{ttz)t@Gw&=fWQ&TV~{5`M!
z>-IBXtOjh353_><Gy=p>7IK;f%K7Ch9R+ARZic04<t%Z#iivJ|?38d@$JEwAd+ejD
zJl=fe)d<LOYd}1-CuzcC@r;O&@=iRohbkjf33U->emIV|jJz@8v~g|4aqCabMvPxA
z4e;oLqM<zXWl=&aF`&2DZP=n%Ug>*_gP#2Q;<^gkEe{{;2u)&F0=5Riffq9`>gm8t
zka(T;X$LVjfYRu~oTX`HBIqd!>!rJ8>gjZj@6VL8(|>Ab4(%R!d;5X)p9}YH3f@H{
z4UjV?Y6Jr7Q0KO4^UDUEE8q?F|G&LAkJjv}?gRI}-}mO42bBbpsx%@731KtY22+}d
zfHoq=aV*h^?bu1XyVEv!b=Hd0X=B`fBw4FFK%CWslg8i`L@x(-By2!NCFvnXn_wh?
z1K3Dal8{POQdPaGdgC|TlXLEw_TJ~*@4Z(N=+)zF>DBjr_nu*&VgJtW>~rq9p#%VJ
zQ!N$aws&|E7fIf^4n=1myrxMd(FRwtMYK9+PR&72Gfu-k`@O#YTWL;Fo7u91HbOFW
zlW9{imq{Cs1RfgBcMwwcrp4mn@k-|1DoI%(c0idoH4w@OoFCY?DG2);4O%wkOn+Dx
zDGs`{^evwgvLC$daSiG7{zdZewj<hF4xXz>q+494(7jljp#4WdYzqt~%p<myvDp6_
z>_21Q;U@#?_1J%A0T11PFGivEjuRV9x><aBeB`U^c0UTKJbDkM@~m<a_fXJ>HgISt
z(P?<OQUggEGi0C_z0S_f!9e52ur|9F`eye6?A@~iw`|?v^72VEbqMhfa??BS<CJyE
z^5ymy7cPj7O<wj%ECY+{dWokJZIHMNsP4H=*{DboM9lj7pbcDI%1jrC*UnjR4cM0f
zf3<qJBok&kzAqx5IjGh&Gv*Qdzr-rW0^>!|b|WNXuf_hQemVOW;aom!!I<`Y%!HR$
z5;sK?DBU}n3W|>B74lz!Fr!Sok<yYkeUb&euFBG=&|u-yE8z^n_)yg<e!CW32q^IQ
zW?}5i+$q?$UHgzhyDa(x(>IhqXLxwv$8qfXn_+nI<<Q?c11ntxgU7!G@byD5_SO4P
z_T83|9NMk{q|^EFORk0Kx4Z{tuDAl0XQp7NTX=Bvaacb3JsAJ&$DulL9NLNsj9F&^
z7jre_LlGk)M;TytN<0c&Tl!HJ#MUCb4b$I2BcxN=g!BeoL|j=f9AJX}b<;OwebPSd
zBS`(s*X9USK@45rhBR*u3?4i(^}y0B_Mg?I)&3!UIFgc=Brlp)PLJfEAXjKwv1uVx
zJV{A3CX(>bmTATqXoqH<l-{O|;GYZkl}~k4WD&rplWSm~)(BaJotYK>8XO?&kV6>s
z6?V7ofvbP<x8T&ai(#&#{k&uLkRN4sLR@_<ti0k?Fud&!*#3X~Q|LU$z%f(y(IDu5
zRTDF?`_|ut?lo_KzIlRr$~-)x>&fK#(gV;xZ~&HHaV<=K^54PaUw$R#7eG_y!PAG7
z<tW}6#RC;7J6p36a3CUZkLN~@1z4Z}B=^X6bIhWzYdHv@?+Tv3`lLbhTN;;FVSbTK
z7&i?EM8~8I{;LS*_rPMV{JDDZ_3QJ2V*gCl)$AW=*^za8uR}73w~>=%4oi^TcNnCJ
zxST_90Oo%Qacx*d?`89G-{oz=$Y?)MEDdig+<;qcR?#p@W#$S(jZ9wbyAiX$_sr>2
zdNHqpYI+y!y5)Zc*nKhVoB|lDED$$fj1iRkd-uWdfBG+Bu;&6+HV$@N2c{?|MCzsQ
z{+BR$<r~19{$@6^^#)B((tKUPva<P_JWu@kKZoTXd!sL_KkX_r1#CB9-^_%asazW2
z5c|*{An6aGzs2if-U;U{zCO9`X?biIKA6OK%IiUU3(B-z5%?unH3Za@YA=vd>1%{o
zJt1dX*|N~^{%cxRApJN|qS!xCBa;`j^>?8E5_Lc(8tXQSe*!Nzy5*G2+@pzx?-5Ya
zg(aU3tGtATutH+4(vS$Gf-U8tX+tJ$*6E}nXYva5VgdOiY<tan0JrRczOG#Jk|hJi
zs)|5tP9^rhJka2H@>kynBXnI86zzWf?KpP9<xQHZ0e^&(I_5$j;B+5hp`&8{I{b-W
z{Y^0M*vsXcVJsOT)o7>B*>(tLNh-Dg<w+IGPsM~=1|LI*U|r(Ct7WhuxwadOr#FdP
zLku$Pvi$89Qsuw|tHfn`xp?AsJILigo8)Jirzdp9{@ML=v42{(GA@fCu7}^1KbIyQ
z<$X9sE69y@kWoMZ9~pC<0$P<5hDj?R6T=mFG)^g7sQmRjTS)RH(@K!{a~*2xqE`Z3
z^4f-#nm7I|>CbtGAq_}6p!7`Hq`dO->zY53Hl>4@DSHg3FLbnfV&|*hWx=+>kk?TE
zE$F|cj$_DfKrkuR)6;PFmfJ?Q3jicWBs!<nFLg&`8%Elm1E}`S$@TE4F}l%P1X~9i
zUc3=th^wV7448c<0}+cO^Am%H|0c6knXsf?IKU7aX3{*A;<|pZ{};yoWf+o|YAHv^
z%RB^I#mK2cgyu&^yPQ9Wjfy@l&$+c?d|Jshsz|)Y?4xz`amFjJWv2*KSKg5mUsl#&
ze23b4`5PPNdshEEscG>^^K^5C4uqlc;R0dFzNr`9bQ5rlXd@@Aj+zvvUwSQ6lQV&B
zt12>JRgpme?59s@@y$0!Ya>R*`&U{gvh41*BAt&lJ-O$zc16qs(g;9=_3kqcvDD~+
zBFQJ}(i%8t)IN>}w_INvm7cI~GFjkQ;q&n~Y2E;s3_czlsX^2Bv*C*U%ly}C|0D@I
z5D`m<wuNJ;_|~@e!5=^oq)#6)CEpRTZQ78$=_cDbaD)Zq%Hi`SprUx=g}5zSto(PH
zf2>TBE(H(90(^cGd#(tqcUU=>L`48Huwwr(q?O(!mr*9vQhsj)d@*Hw_Z7<LY0@2{
z_e)b>wX(lSJq~v7%Z>24M@e%lzzLJE;X-?~P16$pvaEk0Je+#o%vc&-QdVhf-iXsQ
zTU{!lPDQ^=^2zj1V#s`PCzp@!f<BI)Z2$p;)$P(JUhF^Se{S{<vVbaafn)}isOKu1
zP!&nXD-uTJw&@>fD3vA>b<2)MFk-X=VCR<tsX(fOe`|zlYgi>_B{m_<>c+7u22gQS
z4Ei@9TVVu1!$>?!r2tt4MIf2qKs(@wMs$T&7?`(t`wjC?TRlRap&PYSx9fxSCh2_a
za@2>jCQ@ffAIaP!`LzKKkcwHS)3`-Q-=OWxsh|rgjM!iHtSO|&ZW6<$z%23-j1L%V
zQ)?P_Sih%0A?iO1plisX*#CO$pMv&?xJ;Gs%`f03H<+HQO12_x2aGg-R3{J`qf9SW
ztlXv&lV)ik0yO}o5}!~Tb4%D#k`bhf8UA~3{<s5OwEo+QEZSAg+v*%ZV$iec21^Tc
z)W;E>lh>0DHe6Xy6zG)$Ud0$WG`lKPNKQ|Qbe<wfKh?_RCk=^~o77FxF-IC1?a1P~
zl2NdofwW4-P^jJvOdD1yR8g&nNOe(in#+LNUrxhBpc40F*|U8(BOV<v4UeO?lJWRV
ziv1@Ujj(_5NuPdXdXTvBQ#^s!Hd3u7tdq%1$#)r^<)LC^nKtQ2(TJ325qC*edNP8O
zTbSz?0Qp5L#B`IrinZN*t~~pgb`!+i5|N=|1ZfAHG{>p0f0Y`3nC`ENJ^KFgbB{XE
zRRnn5pUczdO-Kz)eEX4A+j*_n7l9H-8CC*-E-ndU>ocBr8;yoc!PhLFf%@+;hi2eF
z%Bau=&Vlx7xv(<%w20vbMn}SkSwX_?*e!m&T@jZ+V<owEAUfpQzS#fsw11&j*qE+}
z3#PqpRo+cOly6}+Tp<w;>Bxi83Pdj4H%cr6q&m6ZqM<PpE?Zf^IwG%k`JJ{Qtx%#f
zEi<0|_8}Pd7Xu@;z-(L>iZ8JFtevS&#fLDOJ1V~ND^XI)@>Ac!h3|hex<mp?j^OME
zfly@qH~ICis1}0_<re_h#$YAON(?a<&*#m<Fdz$8=;t{IExETs^xZ&$MP9EprO)~c
z>62O31Ogz*%U-3hHc0w&yssiT4wqG$1k*2Hpkn{$WdGv6f37?`KzLn3cJ-=0<Am8{
zE`zLSQb8)smR5wK9VXr<l{iXNo8e}DBW-MHa2e1;5YwL)eb5)#+^<&_;PjV29zn4I
z$hehl=oaqm^Gi0l?RR|~I?o=<HCQIUJhsg}@cWS!2hc~t&Xvp4Dm?RrL$Kvb_r(NS
zM*kMDPK<9Y?L~qxpWi4@koi3yVd)^sMM(zC<od|`GxxHriUKDYz!+H3dLNM{Qs6<(
zuA2ddU|)C{LL|-MwXq@oD)n3Je;xLp+;kEYCjG%B?yehJoPE=WqF<7VlE0e@0X}t5
z$qXVpa`;gYa|MXu(jk>5E*n4=I074QcrvQB0Rqy_g6Y;DMLU*HWBzM*srfH_Jg`%{
zpyn3VoFCcS(>4vn+wQuvJ%5o8J@kjP1@@0W2B$y$LF*SrAiip7c2`&zg-x#e_@l7n
z&fgE|yE<Y?w&;`GBOp$%0ZBJ>R??=_s72ex<{6dWdWGte+Icj@T)D|Ll>yg~Kuex7
z4I~3t)}COEk^^sYE!ZUhZ$Oa01zc&D6l^lZDfWL3_D}0b))&o>rq}$Ehs*nf<ri82
zZe&@e1UQ=PWJRXicFl6Vc(Ak#OAD-Qk8fTO>2W4>AglLiMM-B-@g==k5CYq1P5w&{
z-U*#En(e;z4jf)^fd<1WF0L71nqPqJci#zHKX*5*K|(evb`F$n(0k+%_MdnJx_|GV
zLw(8Rb{kzY5UA!m&Yy*C_kOAYf8UE@hitD3*XG&lzyUqSN}7ae-TB)zm{%tg&X*8Y
zYpPK~bxZpb??%v`5lV2)wSV)4_p#7d2tcE_-_#W~=-l@a!t{0^8^AfE?}&01`zHkk
zI0yTuVcObH_I2aB?2ayYychLD+FE|}Z7ozxm-iRQjEFL7KHXSBBz>kT1qwSGQb}XE
z`^gaA)=$|RlUt0CUK>7iAHqZTsp^Vrp>y@MI9`G3bO5*g^*3SSJKtoA%5+-V!rzyN
zsKk+Y?iloc@7Dn?x=eMiz7Al^4C*{#`s8u#BmS~^(P^T8ninsQY9VX>pcb&9rQS3V
zMSzIwuB>yMf(KP14g}#WqxD-kmjHYKlo{H~X_F*za0HHJz$;db3y_qL#3OaM_K}AG
z1If1))IuN1rBm!bt6C%LwSQmVDmzn5#msrTZ2{>uiS|JWdt+3`A)SEKn28F>D64{T
zD7EVFN-J0B8p6;H*iwPn#*QGs@{`&7^h4tcovaFvep8J-`b`*14H1)!`90;+l;z@z
z(9YpLo_-9vM-O9{7=5!ChxFkLn?<SzDq0q35mxVlF@gXX$Qu?r$XoU|XF#l+=Sq$f
zCgV=3a|1va&X|t2VktnAwqW%``+`V^;+BipfJ1w`B5NZUIZ!4#lR&my%}I2TB|^R*
z75k_10^2_#?|W_buU(1VTtIrwbskc<Fqq^D2Z8}XjuAzk!_tVh;^rcu)R1R$nR|4k
z%Zz$4FL{CLmuU#qrYpTqjZ@?yr;&bp6MBZ3sV7%g;Ll{pb}Z6)X<kWr(zdWk=gJ0<
zPMLk?Z5>~<g+z^zmS-5G!zLBVLAY(_#rlNlh3&7^3D?1&lN*gptBx7qMt@eWkYKRh
zxUK%yhC;i!us$uBHo4Dm53%+5$I#|<Dokxe35K_t{ZDM&0n^)e!Pw*$tla8!zu&{b
zN)J{RPs7suv&H^>L!YDl*BPI&P}1&$SK(0XRwI!EnH=#HrTLk{F@-Tdy0L35X<+s{
z2P-<YK~a%eX#p5|AKJ?md|V>AP;a91N1!7>9lEav(%2@f^D4-66qzv%&~lJCxo-hT
zku>ChLF+)&Q&MM6pHY3my8|5O7X#1wg-&DF96#n2k2vszO|8P3z?F{~w{1g&=n@Hi
z5K_IegPF)viT=Z;<Gu{JK|ZRL9f*TWY}o?aUwVnDK~)ci*jrg@-q5Y=Bc-Z4HjXpf
z_rcW6MKJf=ccC7x1oevjhuqd=|3=pEPM-XePgH+tFp&j>a3dRHwN61pwx!{(=e}ne
zA_pW2M5D{{`XoqFUUCeMh70kO8p-ZL9J=q+rpv$6PD*scn2hDI7@zXRH2<i((3yk)
zkTva%frpFD&93FyucG~fmpyF9!bFjEJ`L^4)+7e0L8sKCrC$MOH6(0|C&T(W@`kTi
z{>c=VsR3&nG?2D~B5ap7fdpn5zb*0U-MeAerTaC&*3et&;mS%Mdi_E3HXHZXTwBrX
zSg8T-+<O&_Pwp)C59en86|hs=M)pCO2<ree^Dxq+G`%$++E_f-c**9$n4QX`<5kG9
zEg*5*@|G1IerCc%l#4?1aLNR|P~@*N4I^1#whS_S3XF}9j-(d>mm4Lra;TKy`Sd{K
zqi7q1Hb($vh?Wv4k)CH~m@i99Uoqd;^*X;q(APuwEeNhKrqPLEbXmCHBf_cHK0B%p
zv<ZzPKq7#H3kL+OZTVV?M)e=xsu}Tx`=HnBnRh#yH=x6CSSyXoW(Su3!{&Q`Fl_EE
zuk=;FH&9!)UJRY?bg}<)wExh(X~X42mO<RZB(wJL$p`~fJCE$NSAm@_`!Fp!`LsQ-
z(B!hCXaEh{wzPpUO%`%_g`}uzQpc8R%>hzN{`^`@Kc<^AP(pewLnb=WG$~MzO1}+2
zV-QlXeA}dbjFTCbhguyIM+zdcDI|zlp3o(<XHNNyFp!h>ldn(z<X;|~)VUS7b&#V7
z(PEc0?~wnFi(k@!@IZsD^+;%#=yn0SWBw1Z(>2a=4a}8!$tY@I#(`$cTeci1_J1z+
z?-%fV0<xp}wp5YmfE^{k`7N_snOcPup0Ym423w{w^m?}2hP3IntG4t~qerI8TFT<f
zAv;BLAvP^zkSq+>oz{s@pH2ISVfj>=sAy3p#3T%&DVtrfYVJ8*Xx=Gni@G7S=-XD8
z1a$l}f3Z9?Z0J{fU=R#ntrZwY2?HZhkF<ZY@T9N7C}WKJsl=B_Y{=zf!n2oHvczfK
z$c5byAv0hh8E|NMd~&b`@##+O-r49m&`j98!v#7WsPvzzy4XB)WYjk&UiE9N`+eQW
zL#&5GrL?+G4`6(30>;L7Lcez^n+GXpv45&NUBHu|>VKO&xf0nGT5M6)cNWYj5ETLL
zY;OriK_Us^^HG`jx%65LU0PmZiKI*{HG5AlQn+`KJ9JEXjR3Ap{rT9TW3s&6HKd@c
z0EmSrK%gDab^*nxW`UcLDTqJ(K$~>TRzwo@n5lO~zVm1@>0G;E1Q(Sx!I9#b3WW2+
zq>(}bzA|rHqis3Icy`B2TVJ=^%!2($z?5kM)q~!nfGztv#@v%6!L=`tLjft+dwZYR
zy9aAMVb+8fb*E9#8P}9;94h^1cET#q*R;PFHFMUCSp#t2`0`QpHH+5i4u%7mnB1%V
z%qNTeugCr=GY%K?ze!`}f&s;b9E%g3-rmV1mfdyVBCXR8moKY~w%;O+r2I;-e>%9u
zJVVD$S{}m&{<SVrv=^T@EH^^Q$l_;vCxxUzk?0%J1~;w(qq+bLe1x8ap-C{d(P)uK
zo=KYuGO^aa;o^ogLmsaG`Sv8`Y;9|XjWUniK$JIh1gb}_+GrZ9l(or1viDf$ETqfK
z543(gv9V`Gv%zi`J2P7}kPbBNR+<ryq3TWmPE0qTJUzV=uD<vcIHp|{k38~am_POm
zsDVy&V4f?j^<tlS+OyUkjj>|?KF~Vsznd!zM{jF9v5>B5g)2t6*7gM*#h840en930
z%+_&^owSXf^xnup(i>Z@<73J^@=uY)Jaa}E07$9eEI^q@EHnQ!>Ct_;kQJoh7dxVL
zk%D|XhS$VVQ}+ZFO(#Y-5~s_VoKxeM?9j6EPQx5YST|vhzX8@VO<eyennGd!ztyg)
zXrE#OQPPG=Mc``d2O)wO6ytUKp%i~Y%Y9!f2(f&qU8?-t-98fRo^gpT#`MwiYD~ky
z#Dv1mgywi-pvEQ?OiXDoo<TJ}rCxFAYw@C8`<u7e+_L}W@Z{ld!C!sp5X?Vw6r3;I
z^cSa1r*UC;Ri)-XTJ|5fYP<c{5{#8fm=QHnaPd^r1AN#p@`cVpJ8nxMDT|XKvhni$
zEIY+yBe0LhJFdrybc<HZPvvw+`swqr*PvxkxBV;E;4u&R@CENMQg6k3FQPbwE3}tP
z3>@V6GH_N(*kjC|0V^3eX#Eh~kyZ=3>{P9!7D)O?7_e5sqvm9*^@s;QNH9NY4Qmv_
zrb9DP&}{`}!CE{J+gtv%v}9Vzv_s6?0th3v-?$J+ldMEBEAYNc{!m4*WAkOp4y?3V
zb!QA<%mDE;sEH}<(44|vXA2xX3((g=$0q@H9(Wb}#Dy2bcfWWD9{-E4Xh0c+1xf_D
zStZoTkD&dlRqdahP0<XXp1-k_%sDs7wkO2=MrOr+WJZ#fvco82%%ua6->@C8IbMji
zNle#3{sfgA`PL+vQIUX&5=Q6FCbq!T)><N+^cs#H-XYi~!~?DA(wQwRV_`0#<O?e)
zh>@Kn3i&$lAtOW}Fv<^Pa0gmnqzoYSiNL+ici^d@Q5>A2CP|-xpnlYe4s3*ccq48`
zTG2j!IvWQljCat*v4gAwMdfEK@vH}e_#807b|b?;X%pCSPac31$vpT$TRBihQ7^{P
zFc>P_vD=>cTAAGw6IhRFAReE>x-$;nU49n!Ra;?*+J~&sV@m&Rnc4x@yyNHKil4p_
z|N6dr)Kg#oTBD3ogAHc?@FLp3Yvd7mg|jIj?`QIv2PK-!<8(5PH1V>-0$xeX{<8{=
zWJM|krIY|f#sPkc?!brQRh<3<MX>gfOER7e15%-SG988*@bi&i_=NpXqvK49iGxKl
z3n%Rpn76NDibSz294JW{6%djYzDw5ydH@OxE@B?iBGR(b5`=bNUqxc50ZP+UG)N$i
zhO0pQV}Ew+-q$`KkcgQxwPRn69WB7WH%<Ui*+2&i#fLB6pTI8$y27Y<-Et0>3}wZP
zreZW=R-bjRrx|evU}h_r({+c~1p~sMS+ZuzYC$j7J-YH&u&v&M)16CTaRuPCPIpF`
zGpTmLRX=wJUiA9c!+-gY|3SeSc#-TMiT#^6&U+emy#Ju=-}fi({y|)e@!O6UUfym|
z4E@yA_B_Q`LMgz;Yd~DoR-&Qug2`*~UfXq*w359R7(xIaS?E~7d{K%RAB294k;yAE
zbY~if{5J7xC3Q5TZ!qYj#MxrfvS!1@0g+9Ukpuwe5@cynN=_5@?d;#=5eznzD^`qh
z6ppGz>IHe{wwWncl_3nlS>I>cI;rg?Dw0WBFX#F`Qo@kE(MSV#7rb6E&scN35+GI!
zIF@U5RkUT$-v$rDu5XADj`TUgUPBV0j{_Y@oWk5LW8#Q>s7vx9y1~>17s9K5>tEoG
z>t3&26H`#@MY<Xq7ZVN#Lr}c|HoGVW3eTQ>9G-jhe!YPAD4ZPvJhKe&<dXi=pX$;p
z;KzUKckore^j?_UeF4emhh_i4Rss>q+dsSj_HV5NnEk^!**|ep@V$wYI<N#(=#!4#
zSe4L?KOX#o&D*ZWRv<H@O<HJIlTuVNT~R(4s}GsQ(hAOuR1VZq21bC0%?kLaY>P)4
zl~^bQo<&_g85a;sJJnZ({{zZ}lqk)CCWPai$jX61VGoGt)%BR@YJ%01@5CPD36^Jz
zf#N=o6U*-Ni+v@AFnd@P8T?gDJBE86PvAMmLcf!`Ad6qFC&{|^tqMRtLk)o4KkU+u
zXkikHtpF4>q7l=HsK1u>O_0po1Ct{bF+LmCU0LHuO@T?T%Wa*(m)vq2T=3T0U~y^&
zPWA^d`2P1ntt@G#Y__ZQbx8fET@#=e^-!<Lsew|%r3IXS`U{{Qen3t9*v+_f=>gF0
zWH_xe+O9vhzW!!-!%y7|PyFef@YvmVhGPBj>>pOKfAs>`e{6HFVzhsd8_L;lUM9fk
zrr<Z}FaHn93h|x8j!sTB6_!LWYON>$=0+QlS2W}>@;N9<cNS3KkHs~&YgM!SLPI8K
z5-QgLv}@#;y21?j(0Xbw6NwW>HWlkF6E`u|U~ek6v=2Z4-`BtA0wG=H5i~@!@QrN$
zE~FhL_OH+bFpT<k&{tu%2T8lVDm(}yCm8X6XRLNlbe$UBIWl8KEeIeEcCNX-L6~r4
zeS`wBONP~<YZk@wa`hetya4<ZG)NjQ9d^z2IR^HgbjMQg&Y<#saUj<`P>0<!m%jBj
zyyRVXG$8zpuG?pO04FshjP1P`c75kz4afrk<NAdTVrNRbD<*UzU4?^w^JWTTV(RQ1
zF8%38pt|yvfIoRNEbiV7XLR~gI@Wfb$F85b19rdpCVWx@^06=8Kca&?U;B^cw)P*~
zH%RNJ4HSWPh;`dPtik@F#r}QVD)*)jsU8{4tf4ozng<9XpjcMJhcoNEhGeC^NjX+3
z9q9oOWsfuCx2?wb&;o`;VqxOIrJ4yA2jQSAaAP3~0X+&)1@e=&opN*1kOzqGj&-VZ
z%Hx4B!w{5URXo!WKBxt087oFdW7fdM<?q|guVesW1-_SK{2##+07a&T@oA@&MbNqr
z^(Al)1n>~uQvdrpcT>=sV1Va<%##NsGXfPGp4DYs{Gn3}2vrp8&Yip&0mb!|5KS<1
zazp45x~wcv-8`Wju)?<v18bjm><Bh7U5=eEyB1#l%kPEZ?tSpA2H|4{gmth59iqQD
z4^t0*4th@?hVCUVgL-J<jVaU^Tuq>Tv-!~MT8lF=V>hV5d+^X97{2lquzbtyFu(Ug
znCmIns_*aExeqS-)%U@L@4f>L|Ne*I%(uU#J$&^V?Z4Taxd!`>ZRHeWbsgFmV!g*f
z+2*}I`_C<wc<^pCL`5q<x&np$dsC~$;qooh1H!Ugd7QCOf^IUWpcFb2<}AoY2gQmg
z!O3P8^Om&|F#|+p83jZ9q>}<|2ba1vfZAt_yrE;o_(q@uPh?jH57RdSI74LvfEWlI
zXsI|-C_Zv#s>bD8v-Y7b00CyMv~jUR>dC!pz}TE$d!qw0smM^1zD;}{khD!QO+{7H
zH0daUNL5$roOV<2M10w3e^SAq0D!YiUq)|$=6B`mj+BCv0-9B9Is>9Sti2au4JeRO
zKn{eb>U3dzW*d%8OhdOj-uQC|{S{bQn8RUz*$oV~kJhmdH-qi&mtBXK{WrJ6<ki>0
zoMXbz=}+Tc=r7H~*aLULw%JbsE-rvM46~kJfQd`4(TPoHe}-Pz({75Y+rb7%P5P!=
zxc4&lmyTk8<+#GXd>Y~KH(~JBJ7DPzH^IDiYn;?xj%_;3j$QlUlK=Hz!2E-U@aQM+
zgx<5qfVLKjDbvKvcIZw_Vn;Lbs_Me9*Ta>iv(Q^ULn^k-{z-La?H^XLfBS$;NHMX0
z+Q1R?D`r=5KmaxX0B{0h{<otm9K7jm%2$9_-+`?tB|vh)<3P=gG_9c2SCj*bz%a-Z
z5@Nv}SC55fjFBb{{s3>HEcGLWxe&D+(YVZ}*e!ksGv!l2nWoFh)H!KXZ;BA;6|{@;
zwZf)IOi<`XNk<$A*q|^<a&4B$kFs{c+XE9zW)h>)4=$A?Xp`2F*?T{8Ijm7`yyfjC
z5o=+djmkF73mdFF+X0ovRv;dtP?>8a@W@PAJU;pw5T4n+SIwBMXF6c>v|Dq8nz21p
zooWpG%S$jn_ayXti?Ju`VvJ31!7JZ!2V8XHJ2eO^cvi2)876EXZAk-A=WF-D#Aok>
z>cnwgev_{T{qaj)4&6PM0&d%<@p#JC=;9I#o;?bKXTA-CQ-@(V>_>NulUjrC%G>XN
z<)6F>u!}G?2Cz%hzr7mQw`&YP{rN+1^pEd^mE*^J?KEYd*s>M2?%9W9lT#Xihs{K{
zX^Psu)w|Z-lco97YVquov97pHSfldo?JJSGEPOk@VD_K3H5tr(P62c2?8vqfJ`lh-
z8ioL5&j4~AsZCJ|dI5-9SsO3dDjn7a2~0kY1|&8E8v^5Ov5~Vt<^4F#i6>EKLa%8K
zLLF-4^iu|mtTM81st1WfK{wBESFIcHi(*m-pFU)097}2~u$9r>>jAMWzN|DxUVlXf
zb<gF!!J#@ld+%q@35;X<3@Bv@D3bvOsA!pOLO1d@Kn5z87C<ah-roy~hI4_<y|IZ2
z+<Dm*P-!6Tn=>FZKAE$5>~;qiQCoQjJJ7AhG*F#{g|pw+AUuPY-S95B_=b1F^5is}
z&^7U#W~!(3=dzAeKlTWW{n;m=^Sy88$|md|Vek9?Eu0zOp%of~$*2Ab&V2L(xw3Q6
z)8G16UyF0U^j_%i+Xv$vgdG})_f!gY>+ciK9fRYVB|rDzeNBXIFL^0UZ`%oj-T(~i
z9~zfP?OL%ZYttBNtUHEkSgE<^{u=AyGSh-GP;UPa_i_uXj`mO1y<Twp4}B@JZ<o3O
zV|h>zQ1;EhAm?t#XN>8%;lE&*k|Mp#Q;T`}5s%w2d9WBITcLhh%K+oJ1gOY#oag9=
z2){@WCpH4E`~c%Sssny|r;d>_>@y5@uHnJ^mBql|^9kRmt3r)n&o-@Ct$tSFIv5i7
z1gkU14Pqo&AGS6B%q3dyE-q#}GO&RgL;fzTKjcWQWt5gWxTNg*hA#sTLV?%M#M0LA
z>8&z2Is62{kZt)OI9Y6ElLaN;2Yot@VwiAU4a9q{yh4N15LPr04+iE82xwx}L$iWb
z*@0JgK69AbKrdZQOl^k?uYWCGddts1y<=bFig-@@9gJ&YK}Q{&d<MFI^dZ2%`KI#g
z44JYK`*&0GDa};3?r8kR)%3)g?SJgAzX^MP>sMgmO*g~ocis-iFSroSXkE;paDise
zdw$LMlW&J(|L^YsE-k~#%CdI743+U$n}NqXgkl|i=C5kjkPJKSb~?Ci*Oltb$?thU
zrhZyKju86~NP>QpPwgKw_U|AZ;s6uvAEFC8*uNMMoIa#4cs~b5mr~2yp{3CgHVKe|
zXBcQ$I=&(lPd^%)m>tl6-6-X%34|~sx8H19f<by6?Uy>k)Ew9=0Ls{ta`>{wnJRF9
zt76|m9ZJ1b2FcuXQ2Bu(svWSBfT?2T&7~zT(d(XX=E7y_F4PCwRh8su!l0`Es`#Q)
zV8b4qR5CLP@t{QzQ~&H*MRDJquQUceh^&uBL&31F8NoEwf;WWcQ7%0OuH+}JL766T
zzct}@U2$1+uCRH#hGB`d@(CCRWv6jbG;RwER+>RyhF9G9HkjOh1)S2L{hY?AlMaOY
z+TW_abT@Rq@F`U-FQ6hy(`j~U|Axods!^<{X&q2^4Yz+#GhaM}`VUUO>y8GLS9GHD
z`u=Idl#f0IRd1zvo5)~Tn*;3ax_!rO4s6)5U2ryv7^F7GV2tT$|CX)$;mq83A#oKj
z`v+qGWKAd;G*wa#U|tVt|3K_t5&H)zY(bCf(hRBjw?n74LAFq#@Z)B8MR~dy>@L(z
zU}wNPE5ULgES!$LC_4$MUhvfcte}Xw@BBB?hVb=ZF9jw;7T;q!D#Ij`CNP2MRxNqY
z%@W9hp&O!M6dPR?nG(k78vz52kAn#XMy3}5RuUI-WuW&(UXY7F>RxM!6g(es<p#mo
z**EZQAnP2Rij-vo>6>=2;b0IO5!m9LaFvL9h`%Ry?N(-$%mCC-BagL0ja+6cg?ab4
zIjqB=qy}m8($MSP@poY6z?E=%Xdl2hq1ofS4z*$!^Ox>cc;B6f%L_CwtEbdE9UI+_
zh9+w;MG4KNGM$mTVYtcad)x2&1WtePK6U0@ci`Ml-2^KdRJT3&IT-c_sz0=;D|3pI
zIc&%*vY6b>t`0Nem;>)kW$N$saM%nFV`CFAF{%C2%g0*lazs7z*^B*-!3rU?W0(}v
za>d`CD2b|2cDtnLH$d|<f2K@~8IzX=3hL$ATNoK7ScXIds0Y7rG;YNVH^%h|bAzR>
z0Qa3T){L&Su%j7Q$d%@uS)>VW5uP6_Dr6a}t4!7Qs5HX^1j2?%86Y#-=YX2g>2L{?
zGP?p{D`?WZrO3e{*WPr%0!Udg4J!u%3wX6$zW^C-E#gT|&M0#%$``A#ew7+&rY)M_
ziZ2Mo{)B<BB*5T}R4}oiw+S<|XP0KhgJz+wwzI{C4P!N~7xc!P^CQN_rqm_Zz7}74
z{ZGKs*d#pVK=`cj3+sdiPkbAOpZwny&K*NqFS0646Oo+&vLi=k>^NdJTmtHGkqQxr
z{c8Yy?ilX=_aB7qcijni+s^@>e9p3a?Rr3SE=FfemvhXXt!z5%K;Ja}a_H#+YN-9i
z&Dj@bkkWb&aBO^=0b^dK5xy-lTO#%kE%pyB_McpnLhL{Ls5FzVy=X5J_Ld}!xo!yD
z$U@F8%?uNSR`FdqP8liapv;S;ijbaGl?`jB&Cr~k=+z`f9x53|OJJ5nFRKX8PXTda
zc;FLyQ8aJcj1Fnv2<3sC-Z2jZl%s>2d9ZeiZRS4OQ7_-W?P8(VfzB|3(sA%ZI`HT6
z@|Os6fVAtbE*Rl4Tq5_dCEMhFzUMpf({TXl4pD?Px^gE|<#3M}YjdwVJ*BWy;jq`!
z3t7f4J7&(VeZ1q?nV4>NH5_>5YvI!Ce-c+Z6MA7zyCW8@UwBEUIDG0c82j4&(9w%@
z{nN*wrEF{<A?z(}6E{>SahDBR0HK3;#>c8EWB*;ffVb;Qe`e3X7}G$k7a`4I_NqJ4
zoS|Il1<9$YtvEI_4JRKvY&^!;yoK7lgikZ$p{W|}znPerLNi-12NX%Yn68ceBeDN5
z2(Huq*}!hACPSK{{l`x+vx;@Wa>3N<Ti`Q*kzjYMOH1aJ2UDUt(}e*f&~$htn=82z
zcHIm1g}#thEgLtZPc$aT`ch?)WE$4Pslrr_rxBRYh`LB6n~&E;25hZjk_PhTYO4cC
z2K{V@XlKhZO<!&@@Uskjm!av58pGEigl5}s%EP5(vLbw(4UAskbCM3Uj)`K+G?jk$
z;82Z^H;Y%pI=ZjWy!uE_$*YMO^}4_H3plywrEp4P&k4<j&4SpXA&>oKz=ys9V-J5>
zCpJ`LQ`>RjbY4+Kc8W;$ZVP~9@KvEujrDkILQ!zRjBTLS*+?Uu=`Gp|(Y!@Ok2eOC
z_2S_86yW%zddZ&s_{!Jc2y<Js>*djJ;gkRIZUDWQsc_)IzcDrAL$0a`^QIAJ|1Ity
z1kqPv75mTX9IZL6H)sF0&E0Im_=IEMYpIKL0na2*Gna)_(kX*Hp1+FGc-p|m1BOYT
z=F`R+o7%3bQOug@MyJa(O=JT_m?p{*k$uLvHkWkFz^vXhZ$4ths!9@S7nEZh0Z~G#
z;{d6MOGgfh;F<`*Kg^JK831^8PhAIz2()f5Lw0a<%MnVoxwvwZ>a|KJF8vXJ*c+;y
z_Cc5(&;h|nWQ+<{0pf-ks*GDAtDQrQnk_Edu$5W3YW&1@QL*YYK2&q8C3L5^VYTC>
z@RVl428<UB2y1r+KK(tI{_Z0%JTnJs$~=rb)T3VCagKCQLjn*=Y~f3e%|&p}!37#)
zqjI1V_75%g@3!(O`=Zg#uH7)~)#h|KWsdD^-Yzme)x7R$&%P_+xE^edX^gI4`6^I<
z{HKn}R^a=*dDW5bpN)IN_?F|0imt_Qeb#ROK<ppo%+QxNVY{qvA(^^kzHTb4Al=%g
z0+5I*lq?}H9#?&MVq}T}7x{!l2brer;vu~lmJCl}=(f$ELR6XzXW7!|GTD+mXc-gV
zFN#V~?sc{l;21K{-xge<nLo9?h?3AbhFSI^??=Xn-8>N?f(&x9hf3mHCSS~zR~9wZ
zCyC>xY<y6p?h3ic8RN1#I0EYs-!D9{v@j*7i(@ir-%jH=;mk2!uBy~V7)$gPY&$js
zMcSnurdt5iUD3Q4RR045tke_F9LM?T3!vH1HGcx8jy<k@6myzU&OkMz!%eJ!+5c6q
zobma$F;hRCCid@q!#tF)FZVN#0jd2nzj4wArl3O&x;Q<p`@mRpZn84(+cTef@R=WU
z;EW!0zOTu0cWC=evxQ74$3Cqez|^KcgwPKfV)zmE4{NZ02HxOJSE>9u1c})^++|i*
z{p<@z+P_J|FW@OSrEy?q4rCDoq7f!#D;SaLuAH_g7@&$%<R(b|Fc<&=5DYn78d*@l
z7TRcTIYgy}k5!f#Fi5f6rYNg1emf$&vZZ0&dEx}5!|)3E$EAZxu5O6FY`a_leX#{y
zU~5d!U8l2?ma<`c-Lpj72dGedJ^+wD5C(%>8l=9~EWQhRW=lbVDy*Vv*(s?@t5JvA
zh<5|}npeSCRSW{5$VlrTvL<v06EbVsb-29Z=oI=a^hZbgQM+jVj(_j#Q0={}0q4&0
zl3igNpV5n36?RekTZetkwT7_VpQrUf%SIVtLW}~pAp?%$<px)mtiEE6@H|N!IQx$~
z3<gz4RXcX+;&#CNnT1KcET`(h5LfiV-I8&^G*21=%nSx*Dq-IqV@D}F`WZJzz34_a
zSf~BR0Rv)KV*eZkaWvy^`kCT=jtb4wCWm%wqCb@IaeuaLl0oJgF&d&J0;B*O+HV9n
zbHhbk3+Sp)e4Y<LYQUI;2?|5b#So&5GJe4Z!>4jW!@A$To)iUQ6;UvkjUq`XN0I;q
zn+*d%$Tme^r$9>kQgt&r^EN_(=_GuTOc)@5VGh%s-Xg^znukIEVOWO<HW+{rgmu|Q
zHxm=U(dlJP#GoX&b0B=a%%}+<DXS04G*K9?8Z0isutEziZYzUoz@;)k1+{_Ng*g~5
zFMxJXnD>G<3D?z_($o89k*_<o74}{IGT5?fA5c7X`q2eNq^=THX3=FljgCgoQObQF
z$*1|6g0r>%@x2$owpYCdLHmu><TTV{W19IJ7w`b<l@+~sIS3EmHCw9nf~Fb_lm+BE
z;DD<2b+dRUToD;vNV@@KTnxniX{klzR{OVYOvAe0#Firv`>@7M;SZO8h_e#KfK=!~
zj3yS!XM-XP`5e{Jb09(Qh53P#*t7ursX3<u0=Sui1r<`hY^S4Q1}1MLIsKZMQXIS(
z@HP3kFHJbx>->Gn##tRJKQSfa3<-mx4nyU8@b}hCb!CGg1l9#@?9=@Y*HtprRus^b
zh==jMl64cpuue=z55!gm0d~+b+~^yy4nagR__JG~9r#s#DPvfQ-s5@2JldF(zh~Ra
zQcjF8N$ssM(%z{#W%d_Ti0o+#^VMMIKrdPihC?;ztzds;8T!r63$w!j)KDW=HMs>Y
z`H7q0ZU4(h;8kyXPm_D|coAXy9w^9nSv~@`Zfx+8SG9j=wg2vxE%1_`e-B*!ul_B-
zb+3hba?(E6VRlF?FT-$t9_llvLG}B#ygs5XBMvP)_T?~7;`LTegnEqjA80)--x};c
zQY2mn80v-$Uc&xeQ@Q+Vzet?eKd<As&lq7=|NBdnAX4%LQo?jOcm*)0SPY(LUdUN;
z%#gENKbLFzAwn`WXTC<U@F;w{sctx$foJQ04_v-99*F6=7_1knTpk{5?fnR_XpN99
zu*I<@WXon6QrAqo<UokEVI=AZFuJZ<>kSz@Y3=(c-BFO!4~ZLVs2+rMh#wm$>!d81
z0;mf=(iiBvJpf~|u{?Z=+ywGR&F08WOv6VFc{H`Nbn>LxY2X$V0`@pC&}eHOdQdCc
zHLRgZgK=kN0G)pG0y{m^*His{*T7Q?0NaKN4%~PLT=Ke`;M;$8Cm#8W`+^#XY)c&w
z-D0`&wd)5f5X>@(!}@>@yzlMrf(zgM3$Uo!@Kd@7$F+W)y)S`nfAd{XOWF&*xQt5A
z4AjCRs68ug5CH3Q(BP~`Aj5K+TGM`X)Yh*C{S(gqF=PLstch-zbwfgn{qs6Yiip9p
z<Z~Kf|D0@??-q=Q%XjNmpVKAWPO-}uCcd5rLrQd7>5YW~EYVV43rvrIOiP1P0Kibu
z9+aZ-$M_8}M`cl_25S&no{GH0kSAr2l|(wTiS4fVAVMq&Kuq~#8CZSLIb;TiofS}~
zo!JQ?fx#YNChHrK4+7?U+d`txht$6xBV`(j46?a;_l%e7L<cC|z6!oEJA2O&Scg#K
z%S=Z@E&+sF7Pm-x&L%u)ior1f?>N&$*99ct$82IA%Il_C?$R?yVP@aOSUb!#z*B*r
zSq+<~?^Lg^V0jU14P@pm97eBR|11viRnXU1Hm`}~j9viSHnk64`FGz3*W7vseErT3
z!n5XpAkKy%G%2%xr5qrJ8dV|u=qC!pHT}=FS6mDG|GW3XVDCOSs=MNGt@bHBb}Sk<
z%#I6Sa^dUHS=3-WuYJD@3(d)JI2c52ObzM*s5!z@8Q|@hUJWZtPZ0Ze>>Pazj)AZS
zq2)10HMiS8X*Os7adJoi7eLs5`aSHXn4O)SJ9yKrcj**=NoGlyQY%Z!0gBToDTWJ^
zO*5$yNYY92r1?q1w_7kQkU4N+_cM8d9nR<gLvFDAqG5$Xnn4TWVw6xBNc`po1$|N`
zuS65v*OzZ(NJe%(Fy#hBt6EL+QlWpyK~2VQ0d6!0amN`6LMFT)Kyto!55%n8&H#Yw
z0wE3f5Ihf&kEGJxHKG?%fQir=jWvAt08Q@$gzN6NlC=<+G&Njm$V1I|7mhszQ~NGO
zb1GW^eDhSEc2hKcW3YnI*TA*1WF9Go-l@l7@z`HN=ZP=Dwx75IrmnpamNZ*7@2lIU
z|8{KM2XFkx{}P`1+9CMPXFraMr;b~s%`n1ft6(0kfNsCn_->Jer=LptY4wloue=Uk
z^0T+Y_{*<tPL4aK$*plJ7!V#T%){2t-343k{S@>y>&2^Hp?Tp>?GIm4xV&tiw4)WJ
zfw*zom_<9?2bUKgH=_};e?{ycly_9Qwr_&LDk26L-z>?X&c53=apxvv>yq{jSGN)L
z?Gb!V4j#Pq0Ce!NQOZ&vAqob=Vqn4whpW0O{3Q}stp+j@?8*HQ*8{T5TIkI3Zmvf_
zWO*@`*isf3Kg?&rp`N|3AOd*?rPy`99V=m`xi+E$7Hfl1aX7;Tq%f5WH>%BASTwum
z`@#sF(z;ga@a+Bftoi6nFE`xW9HBWRhLQA5S_pZc6_T^QFi4IPMZs2NMGV&UMG%|E
zT=#K5s__Y!+;b_6U2wU=ExS-n?SSF<r1d>6EolGh8HJ}$L+|LrI9zy|>CxGKp_=*0
z+i~jEH$k_u=L&C~P_Sb{ubb)bM-3={=1y2Vaa@6LoLAj3*ml{=VDjQCp|kH2rOfM>
zjHb&y)qm!3od4d#YU%i6Y|!#$=+0=L_0PTscHR0;dziiXQ}&J0=DZAZKE?LC@5JtN
z$3wN4xZT|s!r0ae6!dGj_zgdYr(X3scygz{u~X~(kKfx^^ssjt2K|%DKXC`Z05C99
zHf`f=AelS|T;TH@MO@`BH=v%11f+Qb+Vz2!#YM2nJkaq!jvV>k+=0ul+M&O`5i$~t
zCvMUYlXI(NWJENMyhhW?7$a>=%m6V1Ym6cpT!>2$RS`82qCv4Kawv;)0Z?6YgF#3T
zQO4(V9XV6ZlpSm|ib0@qVSS1+IsouCa1D?fq}-3B-dwu50Tpw)<U!g^czHE2Y|E9O
z=0$bZGuih(e)xOq+DT#L@++<~sr(LQs!lt$V1==hWPs4O7Y{FtTmmdxDPkb*+Nr9z
zy-@uiql;OU>zzFT{Zr3ir5W*#S003=t=nLE*H)-ce;<aA+>gDZ4{4w3SpaEoEA!ZU
z^v|L9#5bY3^i|Ls-vWz6Y_^LTDBF3-<#6$9-q_Upsl(q5@wQ&PANKv&Pr%sTi(ojt
zO%1AX9O#t{bE>7;<zU<d(>pJ~nce#}I4<E}soB$v281tu=g-6C|HD6l`em<zr*&RW
z8n=XbtB7Xw)wdsk-5>doX2W-5wYUJH%&K0R$HCk&?F(PRotM8BmM*#!&ge0qn$!c!
zU7vu#$}@VQ@2oQWEBvekITJ;UgWw4JXMjxXw*g`X*#3{zD*;r*Bz^!Oc|ZTVI>O(9
zH=Ou@s+Mol-wtqNiL6dO3D?4KWWh%=At7rCBg3I*T$0%lS3q->sLnt_vi>GcT{9p9
z2~ZiOSULR&B0y1zG<+O8?H7ZB4c|~?4^nR04sCjc8v=zn#=)prM^b;e<RKt#9P~u^
zz#bLX6LTX$E)QMsk3M+cJ%0%2F4E|N$b)(aGbM|0q{Gm*p*j+l8;#d?BcTgA{>K>T
zDn3`+Z=HJeie|xc$6(vV*T6Gd5l-#Vu7~3f0i1az_I#&1XKShf<CFjAufW80H^bzc
zZ-?Hl3t>S6<QeU{*gmrl_P^^N!lgI76CVBa$6;aq1nj*08tr@5g8+`HA$D<SHeZ?Z
zADWVNU|4l^9geH9tvhhfbvMA=qYuND%l5%b-gP?+cJG5{{98quN40gV6USiJAAA_b
zzw<~^PFhF)OTBbfyIq!Sb)jvNVebT_O+f8m&I+Tu!P>uK@sYb6{B>vl?1{@Y+CP7w
z2;DX1enU=N-VBUqXYZQR?ur|=yW%hP&mA#8{=}T8SH2cT7;_3NDp~B4Q{_-0Kmc>K
zX+0s~8G{4wD&amJs;I*$mkc@!Q@OGPT}J37dy0zF1m%e%5Fd5yOtc@7yb<M$!j~Im
zeFVP{0sm3BN9rDBpX0jmXmPfbq{T$}GVn}kKO#(&dA|<haQQdk`H5}B3gYHi^s^4d
z*$mK5m&^>pW6RXIMUiM9VfR$nPue`6!3SlGOw9)eXnE={aCi*t+q&W`8*@e<^97-!
z{#$<JkkWrR`O|m6<Xi55Wn};vVXLOeJGDRgrSJH=aN@gvsroB@98~7W`YzUElS++E
zVBHymW_w&0^fj}aqrzT2Y*xB=y!r;%@s`)a$sIf3xxRVHsXecFus9FX_uUOM`cE&+
z$$^IrW<<@{5l!7g^Nwne62X>(tQWrk=i9v9{vl)k&|?37QF6qCVe~t)-51K6Jqg@=
zPu>n~R;&*meEW^6QupaZc98^KN<eyqzlW?NM}YF^LUv#Ht!Iu=`3Y^V4DqX5!H0}s
zo|QxJ&3e$PIV+?QJToPz;T4xGR%Dqhz%^4Q5-xNST1HV^LY&#)MGw<4K`Jrer3O!V
zzaNx=0&?_+XY0)ABnBdxtP-P!&)e2v`wYkeT09vL5fkI{5A$p5JFFK(ZZeC@aE=m4
zIfCpw)bIn)BK2u;rX<fXrgccuiskVj;loo9a0?k!RUZe)lo@#l8^?_zCV6to5z?6l
z1q(>)#Loa=`N2D(|HyqXrUAKs{Y}kjZ;OK-Y<u=8?T?<;E)0#%V<x0INo@kKWBdeT
zwvo&^5avm_&PucIcVLdX>{M{#k;8EG4cEchZU<IW4HNg@4Ld&l3BZK~XaC`40mS}c
zr2Q*bfeKWL0XV8J1F?U_dL@cFF*@Yz-zP}pkaSXaSF8O~Vg+1b)wtrq6L?H!XFu~$
zrG__}g%cG@fyt|RRh$<nMJQTT*+++(IKKWGE#o#hr$lon3$jc+^K}s*psiQK>(NYT
z?5Cd*deHKNY~)}5(}M@nLIJp^sxagd%Ifn_Y!9$yzltdaBuUj?x}4FdU|CK@e@F{U
zi~_J{>yY-JkS6$<O{_1`d7VGU7&}Qj#PJiZbRdd4w1`rCL6!y&Uz!{08@lpuT<=!4
zL~KW4hUviw(USzbfgdwIJv!Ej`|KC-|3VylA@(UCAZ`)gKkxzJ(}fZsL6|TH25?qy
zM+}-(EGuM0mQ%Yt)XLo-REr<}6<9IHZO%Vu9v)GB&4!0#Q))OlqgUFt0#3{zOit_1
zX)vE^at7+DEy_GOXFdnxlg6hE=B23k)Cs7+^DylE=f4VD{^;MU#xLyJf<EcDCi@S?
zQ}PluvyA<Nuzz3vX#c^EkR0U0xB4l<LNoRsf!u>~-u_`t_FuIHc;JE0J*?TujXKmv
zRkOt!VoxI_^Gu5xp#VQRP)K(K<P1Iv|1By#GBlDkNgD-VQ82Ni7ST4OM=*f_2WRh1
zR5R#EHcQLm#eo*25{FHqAL}`^ZE60P=E*^s3{osz2iO#6X#F6yem(;LAz`&q)Q>2k
z8=}O3MCukihgW7rros>Dm7wPj#6$(~$@@hZ#cqXZq!I>$nFSlAlJ;<ea+rLKGCudD
z6e!FLnh2g{VQ%^z(!~fk4w-mXhzaN51&)0<^a?nA99I6|pTWfAUx!|=hkbKTFVLxu
zc1?^=tL9PV@hSZ`3B$2TP!m(;4~LV}s_yDA*ulO=i9vq=Tfg>Y*!H1+2Avbf80*C_
z2nxW<e0MRTZIWowULBD@R=$k=L)QLDoEQ#C+CF8K?ol^itoZ}ddZ%gmKRK`yQS@6E
zMu;<re{k@|TOZUp{kHx)0FW{WpzO-^MqgmjnL;$mDD6GPeVidNh7tj=91i%D9cXbd
z^c~)^O0lLvSgi=}b@zxS2@60Z(K4Rjal+D75W$Dn2|x4)01{^D3{p(}v**x<&R54n
zihO0XGFFpzh4E2w53XLPFqlB-g+X~bKMRao)MqF+govR!{N8UjRh`w}es}iJJ+trv
z31O++WQpJizaNK<6r4#u)SyFfV$h*W2jlbv9n&<x5;AW|d1Lqb2_4DpoUUdnP8YP0
zPW;UFxlRY6x3Ua%HGyhkTq*Mw=I(fNtYxj4uQINQ=1{=KUu@h-h@GKkYdr)F#5h=i
z?ywUSrUjFA;~6Eb7vPoUU;yH9MZ%IE&D=C1y~G#qzp*?;A3(D3Iokf^mPg=EV%kAI
z&XiJ2Y~qA>;H@UJ_uunT{qfO*H{W_tH|8(uxNp(F_gkfcp7vddO38;AveOW!RCMHq
zdS*tS>rjf~oQ==>s865t<=~>Dt|6iWW$Y|pSA#wV*!PAb@O&U#BxR~0Vyp815VndW
zZ8FG&3$8jDiwf7Q!6pFPcos$3=@>=F$`}VgG6hAzl<807DP}hf5GxO|)>XyWIbBqA
z>BHmt<D+_!<-r#cgn^V5K<p}jjAcne0nSLoZ$LkYsOANdG(H)ZVm=<|D3tgnA^A%n
zAk-VhrPvr~-$e)U)f;X{PN?tv!cy!KnCLK}0e5BDyj2eBv97X5u~sm|js{}=*U><1
zc2i(8g=roKMC>~%uahwEr_-!jsiDSf&6Wo%Z8n?^f(UW}!S;28Fdd+AGxdftegBmx
z;oBLUS%sZRS-=L7a>jT>-%0md2X~e8c~g6EW@igiuMLd7ID;{NaPZ*49nhV;UiXLt
z#=j3k;I&fOgO$u`rWr&Vap6Mv=93mq0ZYq=_uq~9x4c%aGnvk3R?3GlOp~uMosLUW
zq(Sv*zWe%d`I(o{Rtn-6=k-u34y!q#>Cv*%ddbxVkTN^7M_LawJs@>M^%!QZ54oPE
zT;{o2+S5?h5s;o(sWi_aBxQ~|C_e_6#z&SG5IRv;59_6(BhP1XZaq?=AOyiA8<EE6
zm^(L4tjPNqV=6Qb{{jq5?Qg{we1f48U{WG1q<MvWnnf)#&W11C6(Gx(fR6IIDCIxw
z6=luK{4@_Bo1I=mXA<W1&EQPW`b><6$&IySxkJ*0NG=rHO+obbiksmg05ZG7%gGAs
zXh>wHLJ;Xwb&66!PjpO}NQ8XdK+rUouB>~I;mE{?5BS7iy)H1O;tXjPiWJ%4QVX^s
zSg(Ty`WxvK)Ujk0K}@h%ge>@_9!=yx;qnQgJY}=@@?hfbxj->1a!-N*1z)Niggkvc
z^?Cqf<9ZC%>{m14q4Vx3a||2~(Cn6In5vmu8rD3lRXrGB)g0QRT^8LjJuNnG7a8d5
zD<0_Rtla76xqZ||l-KF1f^WQT8$A7tCDx}aG<ia<nJ<Q=33ngDp*|rBaE6Q+n>Jy*
zY?ca%zqsW$)t!Yg)97;s<03`Q7m)zvr}KWQUaNo(fxL@&il*iLGc*IR>lV$gV0@TS
zC4w$EZxayDC}d&@_ymagBM=;kzz!)Oko3bZCGs&YhT5F|HnT^AL&xf74(d@odlsag
zDXES*G0n_G^@V;9s-bpM)I(bZ9rNbuN$odYYO2yL&eD~brWj<fYx2#EIw*asMBmUR
z=5|HcHObHW<Rj~cP}NPVyRg*j5C>`-9z&fXn<<ID1lidSO*6-q$*jS(SyjNe$d8UF
zvO@uZx^x>sIR{l@+Y&?;1(Xpn&>+zv1B}UJ73sQw${MqX0Rbuq$MoyQQfF+Pt`ioi
zzwf&0TD<BVcfiWFt#IPW$2ACRHazHK-LEYGS7X{;H)vjp+Mt?d%V@y6-&fV3Io8th
z$Zi*QAN(oU_r@#W(f|8j<4SYxgagjXAFdQOEn!=|u|u5@!c>NWB|47^=Gk>xW--_r
zcc!c-<}y+g|5Y-00i<;-;+rx9?K31FqLv*w3K$ppQ4q;cg3G|OWA7sHQ&(`G0SzfY
zst`s|P?LUM3XD0WFfug8Qz_tN05u$EsYvN^0|H`N2M|ESdLU-@?8EE--fzH`E3a!F
zi$2pEX!pbu=G<Ua_swyY+E-x!xI3YgdFZ37zt@@~4|)j8E1=o2_DT$!wW(@MyEZ1b
z!E-O!3%j~|;T0eL2%P@neel#LKaR`KKC3(kyZ5Z-09ggUPgD0O9*)5lA9Qx`N_@vk
z?4F26@<N1qh)h1FtK#fQxEm7p7n=!$L7RmoK60j00plV+3W6<HF}e)Mi%VHFiyKX_
z)crsioHJI7(IgkumVX9733H-A?ZyfZU=CtxuVRD;`c`L|uTQtx1~xV|gO}fM8(#6Y
z+u^JxwNEYEH%*_dyHM}F8fL!xRaDD8`+{l%#$!{66Xq2n6ZX-+m0ok8JuELP><?_Q
z$0yV?Z+?Aq`p`+8$xdAjyWeyZyz-}Sf@6RD2|V`MyI{DuXbTV-Bx@1pN@#Si{BtoF
zYt-$42;nh$YDT#W*mVdq2RZ<%kqf3dmyh3BlgWn<qG5osvlsuuTH#ABU|i%!Lqd<w
zU9r4~8mBWKC0)bG6qXvW1qQ{!C%(@$iZE8stSkcqH*H4<erF&olj@lGH1*#V2XDix
z-=<v>6EkpBliL&8%V5qrUe*!%haZ9A1OFe?9i=8;dNrCO+Eg{J)P!pMnmFdP=q-a<
zTvWKch^XBZs3E%loiAW_@vmXw9k;{sz6;^(z#Nx}uveqZ&UfDdJKkbI`A#_T;Qj6p
zuB2JmEQ0RvRis{$x)PtRu1H;yT?_eHN^5=5_%7v;6B#TM!34Ugdql|@Q(?wMek3FU
z7&EH4z!R<uP=j`c)Mm74<^)tdlL9goruUj%3Yg@@v+s1(^p4$;8S5|OQ`?}L*$c}H
z&oY4EZW)9<S6&ORdCz+RckF|chP^InupHVqFZY+`VKDn~sK4?jO&W_@mBEQ;VdB!4
zLuYCm*5+Z4u6g07X2b@Rji0!`tQqnW;QZO<9OZi9IE)|vYc=teL%8&lx2XAd{sJ!V
zy%5gmirsEl^6q`G=hxl`7yaBF@c94rAvp6_kASZW=f90pdd;%Ox9`@2LLX+n|5te6
z=n(3$3WhJe3Ra#ws_K<_+D5Ij4_Xi8Q?`|?FXDEvLmp{S(zf{rMQEB*q^pFo=K{t>
zHmy+K9Hamm+z-J>t5sR7H+sylPbKnB?%U^RxRFMdt%3t2XRw{|aoBnBei)mW!tVIC
zuyAKYUxRHI?$?2@fU_r`QuA|9QreGuueuIiuH6w^FTWP%`U*}ispgcn1r7ea#Rcen
zRl5(q`YBM$3rw&6$!Apm#4|9qZ$ETiauswYw_<HJpPPk3<5QkH4#TJa8isR+B_OG(
zFW-yf-+crYZn+K4-11H^DWBG$f4ZY!@2(4A|8M^bIQ#iS@bo7?p?b%Ud3Bp~wq14=
z?6~rksPrH+=+;o5KBmS^og25v%io}8&YpqZQ;)&Iu}950%G{sdK9G7pwcAUaxC&_7
zHGRhW@>gNMZ397e0XGxh1+Lka{USv+m0acymj?g^$<hx6N*t9;*1$9DGXu1k-PR=1
zB%qB6qcvB?w`_ww2M#oP_E-ANW62Y*dJ8-^p<N5p09%h7hR%^ERcB%vx9+|eyAxa0
z(&?i(HnjzQ{OA8MzWi_hLl|t`2hVDk#IY5GxdFnGc0VjXbRVpI@?WX?JAaNa7!b`c
z>Zt##7f!?A*kPFdZ~uFoJ8%{DF1ZvYx7N7)C;yN3E6<6_!|+eFv;Y&|`Z`R1`92s-
z&%oJ>F9Xe^!JOY_j_sU2a0Oia_S<m!f(vlz@x#q4mM;9MgD`W+WzZZt)ES3?`O`k@
zo;mkorLTrdi#XH+NEa%cnAi@(<$2Ajd(@|%>f=h{+gdKFWf(4NFFJe4w4oblW8R|}
zGx7z+kQahHT)s$=O(cGk17i3kSG*mA3|qn|n@%4k9b<T0%{oRK+qP||L1WvtZ8WxR
z+qTo#wr%rnzndTX<m{foi<x;n)={StzV`hARvHq)_elM7sNV1KwWZy4UsnqxS8Kju
zz(gm{Aq+SR9$A$tabg(@jhHdg`8rASim#X}ZQqNn_wlN|tk-VjPs64=n9_K%oIN+;
z?uMht+ZNH&IC!sQ6`=W;KqQJ+M+ANz4)J*O$@)Q5ZENmV7#AOah@vw3trD5fG20#J
z%l6co$#HRDItHoNN%p=Z0DDgPJl;>L$9HWZK$KVXMDN#PF~{fxy07ahT2%S6V(ir}
zhcJFRo==T0t}4bD^z`g_p9$fTW)CYun*lN(&grFJ&s#}jXh=L-6i2yfz$)U_FH!zh
z#5scO2SVCf>-a0cmzxYS#{60;#QU&)$6T-G<ZTGoPq!q~K^{%nhHOTpRzO4Et_1u}
zLz5-7MX+81kpfZnGap^LK-%H3i0h!pT{P^ZSPc`9Me3<@OqP?&UR9AwN4sxvnD@$Z
z+TI>yr9lTj>%+n~nVcDqHP>t$2$6Pn1P!vEsKqAh&<`&`GC;W8kEgg(9sXxlO|{-2
zH-flXvaXT=7Sv^O(xK5vg#V9qw<~#*rNMVmI&4kpSMKocOf>eIJr3G!q>|x2*9F_9
z=^~4I;B_rGtl_?*-9uS}2cb2@)B`Q@<s>iYPv1L244yA(MmO;u3gn(FuvtpmRb!Bq
zw)*;Q<ZT}?x;OHkA3tr|)w9|z(Qi0m$Bv2$OPojC{*L88$zI3>9{M{=!%%C_KsUIp
z_|++V1}~;}v*0Y1D=x2D&jwc8jHXqkRLqxjM>%iSdY<7~JQB7(HC^rsq;$W6|LOtS
z%}Cxg^L|U#_lAbDND$<rqpRMx3J-*Y7b?Q;SXJ9ng`6O*4FSIlAre`l`Y~bnAoh@>
z-sOH0thvQ#s@3%DeKmg*m^d*7hT;KiB=C!K9@;*OGk%DJ9HI^Nhrm=_flD>m#3!&~
zhYL%D2bNbYo4`h8zbote>7Uh>xM+y2TUu^b!R$GH7C&clz0!e6{#S2~F5?)Jh4I>#
zrVhQ+pE*!^)Ax!69~qgX?mt3Tg+{9^(r`(Cm~^|*PkEijLL6}4Tuferv2OXN@O+Xy
zv>P&DFps!k@wR)6Vu{^*kau~kWO~lw$SiO?Jp#fjw6HDYs>>y$WwgO0BV-M#@${3P
z<PP+6(FC(i-q(b%k>QHS15+1_l^NIwU_1(g`u1c#@7W)=HET7yL|}0f{0hC5FN?LK
zO7JhX1W%{K-p~8w$pp_U5a?vcsctmgy@F5PyJcHl-oY)4?qu#|8Z4w$7f}ngt9fe2
zo(RwcPY4FVRgK)7ZP!aTymi?+SOTgI_Fth3>B<X<|KxE*Pdq_Zor{kXjjni9ZWI(K
zOLA(hFVI!e%ZfJ`Ses|G?XBsfQum{`K=ZO$(@mW9#B9ARwS4EvpF;wVrLj4Y1a*ZG
z9uEVB!ld-EdWKIdL){B@w3AdE#zI2qxq{e2q;3?W*EU)jFj(Pr&pdAT$&~!ey5bQ2
zfQU48v9KudR|`z}Er4tePCd@?GMCf)x5gXf>@bKe<u?z0TASK00-!G-2$M%KRo02F
zf{j)0(XleUb#45RQ+m9B+x0D2YQ=;ZY%Yy;Mq5Ni0iI&y6SHNh`7ne&-pc$7VvOO)
z$%KFvOg&etfF<*Dwx;0ErSNWf(sg#xqWS1m^}lhBTmuT##L*D@fh}7WY|iWik(+7T
zGpKa~P3xJ_d=-ygTB=KN5;d+%Hgwu)%QdM5eGjIanb{UhELV{qB;5|;^MkGhU2RA6
z4ffa^K<v;amAMYzZ=F<?8zwJYg{X6onsJ0uqk&UrxI%9{xFEB4?$&-<6~8qQSgJNk
zCdg0B$i%L+cG_nnmPMqB;BtiLT9YIPmg=B!i+4%z^ac$zpVpEC4rZx#otCH)(~BX6
zMw;JlmYsW6s(Eu#PG6Q!`Cibf`ZS%Ow*p-9E?sSAax2R<Cbt~nKY)s6v-oOvM?o}W
z6XG1`!h$K{hj_3>MOYxr)YT-aImKHrU5iW7x3n@E@cYlPoj#q1bI)Yfc&M?<nAxB=
z%Px=HB#YEpU_3n9`A!UVAAxf`kru`R9&FiHNBq;yh5N`7=i#3)Kfx6XuhNbJfp|z^
zrM+F7_}$NE$(4MkMbal#VSzFdz$OhByS+4BWQc9D{1i)MF{!L9H)?4cRMp9i)ErE$
zBswt3nko!dL1`*f?W{9bv1!&tYIhjSkUJD<w9`fR;>R3W#v+A#RT%i(#@D4{u~|G{
zL*aaTk#rvYY~HrBcppj{<O)ac5t#QCj*40g=db5J&s&^FcyhT{@Xb0I8){tf0huNt
zrq`b^od|O#I4Ew2>-*HrytExB$f<0<zL|#qph`m$z&}_qoXA9Gj6`0>E?w{sn}pj;
zsZ_Na?xb1~2UEI6_O!CiKkMA9?bywLUivK(bcF;!OmdIlH0=1h)G<uKRNg~qdCxGF
z+={O~us=@c(;e?DKzFGDvH~}M!wx1u?F%;<Z?kQ9F8ZXd)HRg_SbMhY#>x7uWd`cI
za}5G3m-)M>N}X(v6O0M;<pk)V36K(#@$EF@1rU!-^lCKo|L#eXG3k5RnY3k>->$Gc
z4rD`IAmI7f#2*CS5%FOeqTRs!z7>PtayS=zJf=4<e6{Aq?ZH!a&bi9F?%u7k{Tv3(
zdB@3Y_=P3rWdKC0xPmzUH+Wglr2Pzb>D3HnG6{<*DXte)t=N}6uzud_VI(%A#ggL+
zm#}|Al>4p3yGGD4U)XW*us72;jP{j@VeAZOVsek4HeU~hYCIm4J&k`oY^Fu_-k&p4
z{Jo=smV1Y^rVX!zZhiYg`m1~0xyAXN%@Hja)BZx<v*`|#;u*uUU#W<%P>N9NNGFu5
zJ?9T2-FQ49#MntJ-&J-e=yh=mmMF~ivix_GvZ%M+(@cpijeynxBx%F5ManOHzH;<n
z+l2^5*K^5~Q#_BHtNLa9&PQ##>imlw9uP)-5s5=sjF-kn<x)Z5!Gz61!ecGeC$2O_
zQ=Irow(>Ot$0`f8v>e5*5;%6f4Ry@kiGpc?P5jhNG?(`zPCV&v<+W!n3>t{qNA=jd
zx=Zcb^mu!rK|8rp1A@egm;=uVdN-bn4oKPTUp$^@?bOtEvlTk9s$Ul!f|uLyvStWh
z*<ak1-_Z}KIPX`_Kq)D?I_mQ2Z|?)qm%WCMHjY0J!jS|N&d4PaMB%)J{~A;$xBU1$
z$knVty<2R?<<n*0@%^3^a|{Z<@xBT#5J$wXmzHJiH7EwR^%0%3=>4W^`QlDrI`#Rs
z7IWS+U?;QZ5BiCcK`Yb5V1#f5k*=03FTaid8~kIJIo^G&lNs{8^s5tMR@<}pjng{7
zxuL}xXg~+Poc;s4^WkrWzQ<n@7U;k_%7N&~^<``?ruEGUgC_S!`6)51Pi9KHI}gHr
zn6T3yI1k_>Nzgd$hRg|{trvEr_nbVASS~$RCA$Hdwt=r<zuh!Kc&dTjWDGCj)$cfX
zA<;ipkCmKX?3E%UkL0ZeP2?L~F4x?0ny%gC57pd@qs-G9koN5=Ax3T0m2#1`8Koo6
z24y26xWr8=KV43=kZ=4~g>xtYL=U0zKr<mb>M8TQ6MLM_Qr`UD$KHN(;XoH`c?<9d
zx8E`}UB~0(i8HxS3Y#X=5SKI(n=i6~)$+crZu`|_3FpCXJA3m5f9Ph;JD8Wf^qhj8
zd%yCmXLrX@naK++X)0T`HOB+<PVEt8X*Pumk(sKL^0^Sj(RCg$d`Z}-{WB0u#p!U>
zo_V3Q%%zf!d+*ng8Du_(3#&fG%sB$Ljt?%*i|04-#amiW#7JY$3nOfQ%vq1=L>lH#
z$=c8R=Yg;7ciz-DKn>rcX(2~6(ViM@hGAPRc4h0cQarje{~yeOx($TXl*(58TorZp
zYpV`S^Lft>K$#i1hbH_Gp`grsZueE~eqGP!cJI`GVm5tkf%k~$;~z$(Y(J$jt^w-!
zGiy8OceKvUdzPcO0Eya9iC^I~RY6V7ubKlExB|)Uf>?Zy=uEhjKpY=uv~>M14=R&%
zs2UfHwhMqtWf(1G<&aHeVcwGgDUaJ|y#ObIIa=@VBz3HwmBUY&o;_u|n>T*H0$uJu
z+yC6Zw}bY>eW&>fd)yFwKZX+a2qtR8U|94+eq<TH+#~?1q_XzB@nQ5FX>b&Q;w`_t
zWp?wG>_0eBTYujj>mPrH<T9C(Vdu0`_M~CLVChQVQ&FhGO|o!f<;aq{zvQTobXf{K
zOVBZj1Kk%Sfb+VtJ73R~TwMr6Vm`y<sNdFp<i!NOjnSVP;FWQg1KG!+OPiQpvmNXt
zy2O0d>lph8xUT6gr|^Th^w~}#rM$(_1lSLZODhf~s1eEESgOIQjW4>|r51tZ74lgg
zx`06Oo<vAst8@8iIn$>t=qae1SmC)a`0-q1=ohZe1$lRgFQ1lKSOG1*ghT9`pPZEO
zNl8`gDlhLKO9HJsFId-fVQzgOvkw?z#l~#-vOl1qC3&W~Vu!M-jrp>@KVSMw@aSDp
zc3;3HT}`01z9g^j?5$t<&2#PTr-S3yAj)LiSqNZp-?7(z$MC~#CXinSLoZr|EC^I?
zcs|eYX;fTTUZywC{e<gEI*!kxnv)iU>?^Jw(&(qyROfw-;Q)oAqeP&JePB?c0`)zg
zDxYQCH{rhp+P0-T%lCcw^5pXb3rBHB6rsnk6!2L;c23D;eUGcSYFxc*ri<U1-jsjx
z0&$)6d12UM>(W=d#&=X?=qde~1cbr3M1#N$YUF-gQVX+Ux4Xj3;Mg}bnRVpPZ!F`<
zzWx({l5$%uB+xED_QA2v1REjHrtTiEC(6p<>OhfCN1YPDt;HR{hu+t2@E4v55Qnmx
zVY0r5-J+C$n`uk&QPqiJxjFwd9m+kpmaYfiFFyTxq-Fuqb-K5%W#OE^h~>~(7d}am
zGV#5Kx_JLE)jOXpNpIrZhf|rXDBZk&IWjE0ppe5JVHRkhRX6RbfAMDK)06gkPJ0AW
z^cR2kckt_e>kO9E>UG3Phds5YhMDW4K=3}Oo9d)<xp|&=@%!?g@hW?N9LW`rgC&F&
zFasKXXO(<$o=oP~6Y%Ilx&iy>UKmYmqeNN)n;0CeSCUdH!u}w%5pgszk2!QwbQw%m
zU?O(5EwzOJzaKsdGTaV1{Yh6Bv&k~zvG4?*CtVH^>Fjh5VaglD9s^99{enl6^Fa@^
z{R$JQ?aN%b;l@pK!FK#3&;{B|?4#M+Zk4_V9`56kduJX06(RF&ik(?Djf;Wsa45+*
zmB+K4@>ES%P<E)+g$;2G5L<BLD%Vlt&f2|)--#Z)=K6Vou<Is!o;NUwO@DpIBjtVf
ztUm_>qoLw*<$qg-+nyKfa$?zuH1;lf;iwjj=vr<9q^9nnb=)+kgzgNgl#~NrrsWx6
z3lE<T<-QDa1H2kt4dZh-V|X4pHB6#4pV~bY0K&d?_oO>#{f@Y~;=1j7(%_2?@EZ^~
z3`|}#cs~@1=3jb*cURLUvv1tFoTEKJf;9T+i?#yKRXnIpO;?Vh_O+K*kUVFQ(s@Oa
zt*kV6l^fy_F2`C<l?x1DV8?{G8(C|`fPkLR;wlf|@h>5{YL%Afd|(c;Zx(<4g+g8<
z?Xkwu4|&Cz?|nIZ-x<|*El)Cy$)mA#wfJE|*M(GE?FL?I-I14_+B~GQ5c;;kJmdKW
zoyva)1>^BVa{$C}#PFJ;{ZsX00++%0v5BDsco^sw+WR`PK4jIE-xocS->#)R84a^h
zc@r9AyIB_W!_5&Qh;U@s)M|;|I<14NNAc|%v%K61edx|`uRyi>%O7q+|32zf+kP1>
zRHPHCk<Cgfsae0;dsFGp>m_!`gw-;sLk6W^_R9viNVpYAoum!^{8j(=@9$Q;3w1Qh
z_}ZeehTL=v$Y?O(DWpqB@GV(?mdLE&24$yjrPK&1<U`SjFVAe&Ixi{pH`DB)?5_){
zlcDx890E?0gn1eV!1dND4?wNhgY^rF(>pu!-!jU&uP93`8^GhXt<Y0XQ4v6Wna;K6
z<hH@*zHcTxw?o1=pWom6wI7w*2kQ>ILAB1`s0<i6=FwY~O}-k=>5h<(AubV86QyB4
zp9hk&-tDeNT^CkOyXTF#*q8%rKH7Z2Jbm}bQs)DQ_pw@JEeO~qHagd!dtB(Hw(p@!
zW$;=ik)QF{X&h!WRR)k{b14hxsME6u85(W&JX-U|J;==2e_cW33TZLqUm{Q-jI73M
zc?b5+0Vn25v1^w`cvEe+fQ<(3nJS(%!mng=dtm^$OJFZE4qhEAv_?l)iv(W=>LpK)
zf_4w1rcm?B1Z*j^YP6&p80B*em(dtqD$bZ77G|26d-^Jv`d%J1iRmVn0~`a?i9ARC
zMGXJf#~a~d$7ffoS6>iTVv-A{S#l-o_Ulo`ZaKgjJiX<}KH<ARy_n4V{?M-m|IPt?
zG;7uH*qe14arD3;t#7X;T{`84{-pH@aUo;l?_J}CspYY6UCYA>D{Fr3uRmZC@&|bL
ztxinuV){xcOROgdc#a1NI2Q+JvS8EV6a{GW9@stB@l-^YLBE|sTdETCH%Geb<b3V`
zt%4|as`JH9#M(H{hQ!=seGb=Z`0+^juC-sOUC&z~|8^%5=Mwk!GkfdDVByOUM}#rA
z6Oo?bEaOpog><a$=aRYJKB3P~G6!*9hTKd&?CHBN%cQg5UOzPu1X@>`9O<t66?Vk$
z7G3#3_KnE#>sDN}XKknwh!rc^^#)7)i;wqjD7wze>zxhI=l*`;7=caPcCnbe)m6Vz
zb$8Y2$;n-NXE9GP7Ut#Zgw5p-6f4iwik;Odm`t^1cx#Mfk?#d&KR{|R>(dEwv&=?p
zL4V0}bGs*W!>=POy~7HPRI*VQ@u1=RDlma>Kz!Qh{q6UW^Nqc>_`##>I%E3`55{{)
zM+C~M8Ix7E<elc4OD`uByUescg`<V(XnFM4(SjSa8HbH2s6qiUO)3M)AD#infnfHx
zrG0|?pr{Xx01YtIjH{I#{D8V14zP&pR#3DF&$DK$pn0xBd+m$Oc4U{%^JD!t)|$YQ
z>sRIzY+vj9LT54MEXEV1{WW#Q;s)&HuLNMMo-2V4WEsA%#PoG%U^=Ic8RnW_Z*$r+
zZO_P^t<~M7!G-Ppy@#Dr`n`g{W8Kofz`@WWX$dl`nvF0LrL^F{coHWfN{(YLe;wGs
zse(>rELp1-187H(j5*ym!x3|v+1sk^aK7PC#e?PL2ZwM$!(fHppkKvEJA@wKSB$z+
zm9z4;_(Ek?aL~x%!S@%M(;-&QTz&SORD$QT#I=7=6|Qg9wF~lS%ZYiy()W%s>)WP_
zuJw6td}mJgomK5?YI~>bn$HH_V=-4#P&LhvPM+DY!H$E4d;+t0c^Pi6BwFY?>>K9s
zGiSyo*j>d{ArPp@ra0cOLgJi%BcOQ|2(0&*HTI(LucXQVhn3v3>;>&CYv20%bT7p+
z8Yi){A_`^wtVkI9U=?lrdk8jxp%z~u5UWSmq7~)4!Iu7X05NFcEXe>UK1RW5LcD>4
z2oM!gGwxhaGG#*qe(&I`C^vcZKy-{3!qfL+%I?j&O^D)qO=HckIeq$>-p=E*ik&^n
z>VVg4KIr?H92S<9SA$1DSR0FHU|;8gQ)_+XqV5L#<MKBYPe#;q5#lsG=Q-Vkf(4iO
z?A>jBtzg`%Q`UMQU2eQY-l@nj;%e~8eANk>xGSzB>#37{B|2h$LXHud;n5mzaeC&O
zO5vzz5~5ZyErgutzA7lCBBM}Am${WW8{QbeSn4O!BEHH)Jjk{U{o#NR1cmjtRyY{x
zZz6D@(#Z<zj8a#Rg0bS`c7+Y(@bU3ZeT+8--J9$;aBzuCZ&)5L>!s~Oj=Kh2O*a^w
z+x@t{fd@?PGUTGBf8QL^!ub744nJrYvq@VuXd?{9dhay0-xNeXlhSc!^{uXW^7sYs
zv@CM4^tx(0Gy!B(r;peA+U91XjJx9RegS7<3#d;kx=jTAtj$jGIQ(#$j_GQkUgvOa
z%a-i}CHa7=7A&T~;!a8oWyfiHB+6^{Vjsa{%R>85c~v;5Qpo{v*!WeUMmG{VSSfWc
zF4*FCvp8OVh)OTLY*6+XTz1(&>-X`R-X&Wv*r~4<*}ew$4_c09Z^+EWiA9D(@BMuS
z$5%WpE(et0@o@$<tzHe^^lRl!X7~w!a13$&6<`H?a41-(O;h6ghp*_sfTRYJbAHDL
zy5A>lfUxBydCK8L7{@OS7?VTb-f4+Uy9TY2SOK8fvZOiX2&*jzL?*uc!H5qtWVyiM
zeiD`PmE3P4FuhhJ$i)-77LGnYYNm0X>;naQ(J|>SgMy7Q56JjPc;VbHk%A%I#6>U&
z*cLM7%{mGlyM*_KZSnf1<hUJXANY&!sePY(Dss<u%zTfPChNwa@;LUxBDr$@f}MPL
zaRBu&NkNC7bWEVT0E2|%{Mb0m25Sw?+K(zkKHax^is_0vG%^{O<p|vw`36#43z-vS
zCa5qUa5VV|6@MS2WVumvA*2^OFyLob-n|}2sx}>xN1`a8MbLtUf<%I6HsVARWJoL8
z;Ijy<M<diUfI&g~4}A4@zbFnN4qwn;@jTO9bR0KWO#6O8WV>yir?X=|^}N*v1c{WY
zdT=cG7{CsD+*a45x8S=>sw08Al0iXkHdc0PzYvjw%jtZfEI0(30EyJ{Swf#O(dNXw
zR!od5ow>21rz}-`WC!?i3r9Dg)n^1KUI9E}$t)54(~d#J>aD_@Mb=TJ3d9qIBUi|J
z=3Vq?bw(Sk6JT~pw6+d%;+sGuTH1!P@4nRc!RCs)P42UmOa$w#`sIdVi`~;3fk#o3
z9+OizE;Zi6N41`?gOkF9fyJetTj3+S7q2i6o?Hw->m#@>bS(Y~o2LOKG^kmKg^!5*
zNf>6QkwxBYq9Jh@*ba~B3$DYw0fW-B!5aYi2&^tQ@SF%{YHS4*Se*=l_^oFQSw;k{
z1ZA38%90Y{prrovpcD7O(1!)z4iZ_g_`$(})_-NBf(m==<19zp@2@p?E@y*+zN3+8
zg6#lGNa^m{LMd;lII{Ub=HkqkGTA3wxxVj|JGsJ61Wr~`0C0;{1d3nLx!<<6r7Gus
zF6+4Zokp!39Jx7Hy_SPseB}o1j$j<ov45#EB80_V^S&79fhgtxvnGMxda@WUMiUUw
zVzL-mNg`{}u4D6QEZsW>{bWe}aMK@VLe--qJFj&Y*cs&kgvq*uv20`LVf&i1Zj0iZ
zCwOc*JT^EJ23ro%lU!a+wPb2lKDcqpN{Jh(@mUC`PMb?*<|Br0*0vnWnC1^;^h6wS
zhXVFLeay@R8eL;c%|sb$QaR6+F@6lYhAd9m`qAAn)}lXNc}|)Vf!};p=Rx&YzunV?
z+Cd2*CxdtCcs@~_+6^Z;6SEcAZC4p;urc8#-jA_z?08Q)&;yr>@svu|{fmOcly!1O
zCml5uTHq}!(4-AJBQu2mdR;tg3^kszwQFI0wcwbwc@_*^(^s$T^JrUG(`X<v=u{D-
zQQqZ`*1vmZcL7}QZcjoatUF#<cjolskx7575o<zB18><~3twhlU#KX7rMXMI%TvG@
zsD-;QTHNl`7a3#t*dbflyAc{XKrV9ZC0P<NGa7<eO;oesXz2NXoxA$a(-*`v$PpKa
zq@#9?ur6GG9yq?pY$7~#*TgkWx$(UHUhM)q#29Xg`EetAf1_$FsdPJX60KG^`btGP
zuVBE)P-$iwm4j&+EFYw4r6IL%fAb(JRkEm4PL(w_UTN*c)i(`GVogBTbKibDGt18$
zazB!77V2v(Q&UqO9AoI{rE_lz=eDe;&02Gyro&^kH3ef$Gat%77Jn{Iz~pZ+CP|q}
zMT%*nfrOO+qWkAm{tCNXB!OLAAliPO>HX<%hl&BtmM&GgaU2o04B4e_Hf*)(o>Cf!
zFvB5CtHcsYRJ?4Zxdi3U!{E~zfYz?)^tWEiMo_mL`OuR|HqFqpH50w%>RIpWR80R6
zptwD!^me|No;f-5I!~Z+D8r-a)jFW4Cc~ZY@E%;w4_~xheQ@FHc~#kGr$vYXt2VU?
z9n42d_>Y~QK|*mt-FwIw9=#V|3%h$okuvQ8Dz~mjMp#MN%kJoV@t9BUy*t6>a-8SG
z1YzYf2!LO~{zV$S12Xd&3Ou@}^G|IgqL(@Bmb>aUGj;H3&+H&p$Cy`M>#0w3W8+fe
z0{tvv4kf-vFbAm;@ik_Jz;YHztd&-;Hp?RuP}=;q3P-f4wPpwp#P7my%5ASw@!=A`
zXE===+$0lSr!vz49LFdlkvY>Fv>sQb<NaIvil&~6ItBACz8$>Y-y%AX^YZC%S!)vL
z;XMUNvW9pQ=4})i1;%*bgVGql*i?TGV@v(|3l(_a<FoVOfYMqjiKiqMsVZZE^9-}v
zKnoLPyIy7B(i9Y~pMYiR_t^-d1CKR&JG%Z1Ny{4<M(Fl(lh={0Vu0#<OlC#?c0(Rz
zrnsWYrF<!)&>MsCUO@;x3dzKNy@`}Qei(EKzV?0Z8sM?!x}6>>F*m}<2K9p4$Vwpq
zf^W`Yj?9mCyF7BT0i{Qu@}@wzz}w^UgZ5|SDSn*VpS49%F~q*}*Y+86da>o&zby!e
z!sz92u12SH$c|{3(W3!Tqu>bHDc_vI+6NojVx>uAOMx=W{*qvLj${jdR<uP&7eg#c
zTvXKdPW$lw3sJV<oP9diN#h6PHyU=Qr%|k>!5M2(cC$9jLEt_?^k||Ct@EQCZ8MM;
zi$!~lAd5=AC$~hBp-O~tM$ZP0Xafx)=?PQ>)fUA@%P3H?t9vK95FG7*+wJ0duIBi|
z4WVSe52Z|=2wZ`aRk~#V2gm48S;M3_NZ#)<m)_pKXv_6v)7Brqy$d7M4zi6R8I_rG
zTdCv2?mrACC4);fQu)B^NwlXoe`n0r-#ElE)p>=*EWu+TtoN4;7{08<(81x+O;PRn
zT?-{7>zjwh&wE5&BU30C5lh@)W~|<}Jt|JSeUgLJGXL!=axciYVq(yXT`s!4^NiyJ
zZ3IT<@ct-86cCbs7K}{E0DG59TnzI3jad|oGf~zdIECd`XuRFsC)uY6@iZe@>S>mO
zV|f@Tf+fbqiIoK`Zmp<y1e#%cUus(}y?<ujJNKH&D63}fDSw%`90x;G=^4gSE{CEF
z)HVu%vd1jyY}3%vtG8(iX394?jfrZk`vn0TdnZoE$B&tQ3Lei|QYK)zYQV=LOK>U<
zF#((x<?r}3dItub+2&8C^Yg9LMIeG1am<bLIRz#G)b*pF2+BBk<q2woR1gxxck>K5
zwlT}Xb-$IaXeBdX%Xy5%uaX84Y69bSgUbUTAJM4OGpjuDJ20U^K!QRvBbB7!a8!+s
zWc@yitZMGkO7uzTIdn=9Ep#^$f>Igp`*oHE#~>uz_qJC2$>>-Hx*QvTwHOn?l#%9!
zqDX>@9tfX;l5ME-h3Dw%S4xajp+b2w?oeK+WR;ybW!H%v1Y=Ywo9omO`{h4q%42ar
zt8gHKx>u~muV0&>@<Zi=7XHaoPn1RD$P@czr8P4p=;jZ1u>c`v@hA96i^1#=xwvEq
zqj8Q25XqrLPMx)S%pI$ACm%=eD+&jBQtn||QHUyHP9iRdX0v^I6qt&AvBIci(W_h4
zI)9KYT3g27_t1V;RBiQztX)g8=1@q*blrRwT8RDUMtBwv;2RQv<Ry2<)7<>KTVxf%
zd9r9izP9k<dZUr20JM@V$rjXo&k@EP_}Mw8el2bQ&3Jl>7YMPn{}(R7__M#(^Oq76
zqiP~ARnok|D|({CFout#-(;Ocx#WxSn0(P=k-&t48K>Vlt`;-_W_JhTPR_lN$6|5D
zRB0>>7mLU`;BIUFoaI#%$~#chcE6G(F)W&GL>dIm;%I?;yJ3ug+jq2uOZqfo*$@ou
z-~Pd25VFAWAw}&#uXt%b9Tes6;^Qh(QYr8%{?<Y^;}t*>3c7in2*6ZuejB?x-X)2B
z!7OGnU<arN7+m01+{C#+k*OJ&u?`Gf`>bG`3Fd#<p>oV$h1}T@P0x%N9MceU>;cD$
z5)Lz7Q~D-Z9A-<z!62oZDDzJNE8_gIdhHw=o3~7S3<|?Nk5h9`QQx!k*qJF`c?2oQ
zAIWI5VF4t~i)}s8rvU`U;f-D_kv%fn5L?`N;$#oMaXxEOag9E9C;9K>4X=<!TdM7T
zk75d(NHyD>_#Ha#xC0x$CPLpQhr3c|>jCB<l|8aQg9OrwSsaX6b5m9gxdSvv*a@F;
zujqkGv2)bwlx@67{G?QIVGDgU+N|`K$6V_TUD2ZAy41324@jg0+Zt4_Q|3&{FOO*Z
za{#$*5Q_j%YD(`xb%ZA=V8bTU4P65V4wz?v2IO@DTH^=xC%rXj=EzY$;P|qF<}-W*
zu?x<$W&8R80|!nGa+`*M3aJI{GRe&+hC$Rb>~73WA+!fs^d=vU!@p?pA_!7jvoR#l
z{X6*NC#9myc>GdQ&KQ_>XO95X8_HjSqoi2t-ZhF<T<cAq<|`t%ak<-BLayyF!c!O$
zFERECdGl<hYFSo1I(UH8YNXE3Y!j`f7~ghR*7-ew3pvA<Wo?+;=5*MoO^U4K&U=>e
zb2?Q=6oiSg?-g7!`P4%jLHsQI%`hPoNiL3NSv<=qamhlQyw*LhV|3A0x`4dt^~3Qn
zpVX=&c}h>*Gqj7io7X*a!&Ur@?$M*8RxZ^(?*8}ED+kM_DGsLi*?K|n;zuwW=-4e;
z|Ae1Zf<G3SvEUPS6t)wh;vq^ascCYrh|pWTvQ~(^z=)GW?<gntVus^TdARfWcv*eh
zuiPKb<Y)ZJv;nL=`xtdZpyK_ZWlNo#X5BL?Ux+=9kJU^<+Q@u(Rh-4hC=7HC*-+V_
z&NpsIu%i)~0Y3*oZ2sJeOaJiO$hGtzgXILDav|oJ-yT$}z+l6wnqk*v#=QL{A3P2(
zMZ(!^Hj0aaxg7A*_&jv^HyH1z8M^@i!RsCH=yu)P`g2ja)!__h*fJ&f?nkcpyW~0$
z9i+PNw50MO1mqUHdK=2B>4rivK!^F0IbIgvvqx1;2?38O7r&Dg!VRB3i(tM+6-Jr!
zayN_<wUi>y^jAI_TBn=iwB-V0i9&+(f;mAf98qFOVZ}o!+)>>pD@8KEpnJ+al_RwX
zCc!7>6j2YH^0ki?a>*-q=knk&_xWR2w$~zJIKDiV{06~(Qd+fe6kap^t4*dKA<h2E
zW(;%PXZ$z4ahiie)=@l&I-lv^VTaRV(mb9?P}gKxQ%t%pA_$TamTCU2o7+8sIM6c=
zJ^f(mlA>6`R!uMh{PHC0_{Oqzqr_3*`Hv?^h}ZXc-uc!>*w>w%a}L~89;=QJz6;WS
zXW=*}62zDWMPL#QUDR^6iYLVn*#jsUVApta#-&0M;)2Rr+7`A?EsxaUy`pE$I&mKg
z$e(^2>$QriAX(OhenaQ{X9?KFbB#rM`SR7urv$7LCqPK=5uG`*5l_rxOXh7Hp^DGJ
z+on7Y2b2m%hT_~-&B3xC{<k`rLSppRFqnjf-dqIYFGay4kl?Spe~c*$j|FN!VugVg
zSqdX?UPuz8R=YEy0Y$h$V`x-uiV=Y+rwtUzuGd4FevGH3sNP+$?I>faQ1#6FAR=4G
zq$D`mg)i>|jca2ohqg{d1LQt<k?avc!B8l7y*z}|Jc{S+c9gF>)q(>!nEKa2TNc|K
zJlPbVV=KN4@_p6(KXggqKsjJYIo%RYlZPbQkVs}x*P6o;_v4$AHTUYGS&cCV0~HY$
z!fkzoho=e$<C3pZ!B0i<degos?A|D=CwHA&{v#qXjKmms?^`g3`GlrnUg7uyjq8Yz
zwTYMtph*M67NGLfiua^@=wh-Z&=>2jr>}(^*Rby83)Z{p4meT-70#M%E0z7c8&b}{
z72|sxIH{7B6uA$Y>oob+cRwYb7&)nP?dT;Ht3=8G{2I_XW0kkrc>j|nK1?10Wnj>k
zbft-r6H}(XVsY?KMfog4k|gyadHe5^DY)xEWfET9>?5Y;T3vLeFYNtyIfdzq%7BF#
z4VT5z*cydKn+znT6v2-c+N9Zd-AGV(|3;?`vb18|**|#zOCz=Auj1y`w9`F`I=y&y
zmUJvbyEGOa=KNf}`B3v{gOE$PzLE>d#$$*uFTAe|sRX8p#39W*E9EH^6gk&GC*VT3
zT&*`g+rJ#^<Fh_Zn6(ZAd1ECfkA;^qhGI|Cjz+sH1T<}oDR(nsaZ$8erj^-{>T+}J
z7&b<*v|h5QjGx(Q)xsT`!XTD5T#~Ey=}gms*u1706hMBy&5~ex8hi2+@^vM2b3CVd
zNiwJ2T%lgM5vMJZHodpY^Xbt*sZk-Xz#7Ft6TG|g(yLvz*!&2G0+~}rAD{mMottNf
zS*GR9ey!iG3j~6SVtXb$7u?Qj-PuHE&c0(%_DXyfvT>?#dqB)2`)Y`aH+SB(!i7Q|
zV`qI)q{zV)Qr;XI45^ECuJMh>+Mix)X&PVad(ivbJ%zu{_%m8mAJF_l{kOl3YD8KY
zX(fSncIr28?mxc*`hdGlG5R&EOCcx;!nMd{eD2gP%jsz1iSw(bY@!5rr?feiM`VR9
zRUCq1;D$@OX7y+6qL_n(_}L#&ZKFcY<}7@cQklAJ<BT-~9tde>ZCO9%KSv_jz1*%#
z@&K(TrFgzzLlo_L_<G}|l-1oa0%%0t9L|rzZ5HE6XCe;7c!IwLef4}AvoPxpX<#Zb
zq<9>c^>(|7&w&mSb_}Qrz700jU;?a?K{^LchcB8)|3nY@eyqb!K-^;zUmXAQ8meto
z-~x2^mC!lHn+Vg%?+Nm%zijRRAV!tePi0%&o{C>Qa0>EctIo<DfFy!Lz^fn%C?X^c
zj{p<GK_E?;ZOtAWdfT3uGw#d9sR+Tzndu-AC<5i}YL1<?+F!9sTc65by2E7ftrPAE
zz50((A;KSoQQBuq@~_|BJC~^8-O|nhwPAR<J#iAXT|<(m|BR9iA^V)x@;WIHkBg!>
z$cu3iutrA4!Drge7i<QK29m@N4xj}8{r5|pY1P`k;+@T~v$ZNx=I^I2x7=N)1}8=1
zxrM*v@MztO8?Q_QrCiIQxbq=%q*mH!&qazP<XVX7G|#E&4B@yMW#s#|J3Fc~0_m-M
za@;w}dhBAuDjtWX*FS#Z$qC`BJw1SD*9BjHh{rO{{yRzyFtzagN|XJt0!5hidnK23
zd=w;@Bu>G1j<SPw@H8c)&J1gYNAbeg-+`-;(6Bk9+Y1yv+xxqOT@3n@R{kS<$$(4l
z-6t2tJ5G?g0Al<ESs{0U_z-H6=r|}-^P6S*aH)X}7!E7R6BQ}mym-P=DcZWSY!Yyd
zX=srC1v~r=B8MWa8{Wr_gIUsot<1fd;p3goSgshn%WTkW{yLT>$N0NCZWu7N`J_|r
zzVr3K%%k5dXh<ggppw|M5l$|CHm{Sc(Xb_EK{(25UWB7!Wt52hEUwmfM9y-ScXBo+
z;tPzx24gPJN%T)o=LHn5N5<n-v`6}3YC;^*K-qmsw&9xj<rPU);dEcP$d{zl`aj93
z{H~0n*QZ_bJ6TZ8QlEsb()F8K;<bUb7{AsC<F{fW{Ix9A>1I`boj1W+@#UBx2+oWB
zbsq+gj<6CZv<Y`S%MFfNJTvsNfI@T2U}=-Bhm|9=H*rHtmwB|tqdmIXDTh83+#m&5
zk058=rVq&l07<*U$)u*LN+V9SP<<G!u?=3(j*)>;ACpX0`p-NmI1hgX{b-TikVqH_
zfJF%ck0?~8A;~;Q7d4w5jpow4_ibKSWyjQ5Hy3?AJB~zeG0{0~fAzf?KYe*l+`Wu6
zHt`+6_VfQ90s`N2Vh0BknF5W5H~~(>%uE;+4XOhHR`djR!<jN7#U75c!d(-&>Qjp<
zI*QMIYcm(YE^R8x-sWT1KyTNk16F{~ydn?rVoO|^=@X%TjGc;cy7^&h9edqa)t^KL
zLu8AfYPw_@nM9ZP`<L(M%Ebk*Sh~XzDz$<UbC?N{To3%7<W^ejh}NYn71gxYZy-|G
zIi0A^)$gN;mRGQ69{bEKNG)5xK;DU2lM>4Y-M=gQxw%Z$ArA@1$9ANEb6Ml{ql|mV
zM?kOg@=&rT3WfjP-Vtv^2$#O;ltAc+RgJa*Yw<2CnRX%Bu8d(0582My4J<er6`N9X
zJv@`YeyT;-v#xvJLgoA3|Dl@5_X`Oaa!=+4$-DLLFZ<w$$0+l#US(7TLwJlKFsJB!
zIbqlIqwVU?ihvof0?$8E<Ct=5{>BR^U9-YQq>fYmXv?^a?GhKR6HFS(jv&ciK$v01
zcNg$)8WhE(mej!YG_^!F&__%^q^&e#oarM$g|$B`O@~CoGxA4Y2`%@3RWW&<Fb{LV
z{CpM8(X&|CReXWJhq&5A;fXq#ejK(MrC0M5LHPoP)}$PFS%~9m7l}maOaws?$brF9
zI@U_BuT&}kVt(SDEA!+g0Ms|eFf?*aVs?8=d!`O)#kooVo;4)Lwo)RaCAh-ap~GTR
z@^_UST<MmkeTQII8={Pnyzgpg$Z-!nQxzdy;sB>mH~{2E=v}dSZktAte$;=x=@<ER
z+XrG}3#k2WnUN}KD04ecZlM)ZpmO`kE7QT#`5jv#65|r{JB}r;!7T@Qmb5@03N;vO
zYG>aD87@9F)}4mKg2X?xBn6$#Y)A+Qn2OOYa&OGO_pfo%&+EnqOE5x`oYTP!r(neS
z*uyXz#AVTNlQ9jLUGH}KFYGeSLq%aP!gf!9F+ia2SQf+N`aN<u?5zt+kPm2Ts*pBA
z*DH?_9BgcZA%N85=?r+J9c?9HaY|RbWMgzCaa^*<y$DIYTmez)Zl@3h_%|>YBc3bj
z3P&AW?|HUAC;ZVWrFT4f1UA1i7Cmj00VG6GI|U-xfNrHK3@Xw6Uw?WcNis<|p*E#a
zB}8--y&|}CKCk_YylEc{CWTiefP*@U?kwoEWD+hy<2@$i>_^t#F(Ip|WR3$uX(%mL
zMAfJAGiC7^6&+gL!RI=4r)K`EQ?Jzid*f{N@z6$+DiU<cL>rBledWQFXRO^ws-*@q
zl$Dvn!Sp2gL(VGT#uuixT)d?Q8`OAulCQ_aItAMprv|V}(ug8NU-@C-cG=-C>{T{<
zPGAzMk_}!KAB>*?zR-&yO1`Hf69c$2MA|9nJho$i(-vMqX9unvU1nk=?qBM4pv*@u
z#If#z=tIPn3zz~MY>92u)4ba*rRXt~T{nD=)?N=xg8CPlsjqI^YPmxSYUyAPR!ot<
zTUtFc$nmUoFJ@ia8c)>d-H_XX+4^}V!hK*8Zp=rm;C}Ok;8T-n$#dQmp|kSMg+G_B
z0<G4gBFyt^M>}lT3nOUSSRsgV@MOWla7q!S=_TOi089Kp{ZIXNxn+P~j0A;UBo3Bl
zN_;m6tz#a<1Rjrvqk?}MGOH}`?Vk3{wuh|*_sub6YTYZ{oJ<dw^^VAm6ik@SMESOM
z@|nx$@k3q0j}X}xYVhSe6gghxv^Kbm-G0XV`84Q{viR^H_QSeRsk^E$!vHsKb(bcJ
z1_#$!_k`BK_TP}af=}&K{AcbWU5?&KJQWPuP^*gCoq?lYk?kyx3h!*U9-#MbK;g|l
zUJI=UoiO$?zpDGtW6WB8#Z@ne3)Jjn+UeM7#I=lwBe;b@eB_w8xh?q`8T+)aY5?xa
z@|nPZf6PK%<cqetAw*6t5{^O%ur47zb2w?6iN(RvZT;3L96d_B<8X?*7tNl=&Ig1A
zoG8HkpmNX=KP?bp>sav~4#GrV-9c*EMyIUjEXtIYFBAtDAOr$3@@w~ru(c$<Y3j?0
zXm(IJZ3_XPs}l-S%ybHXcVG#?BO@}|0}gi!0WOq(j+Emd6j_b9NxB77Er6XbIO)h3
zOYO}pZju^c6h7!g@GP`jm6tcV{{g-~HydH4R(G8i2oUJ2+!*LKJ4b`j-io&Xj|Kld
z0;V9M^DC@Io9f?CMD*#2<Tw9dGXfP?>!tSlXI)L}LS0>m@9by>Ood8qs+giajg(=(
z{Us{G%8oKd7#%Rv4U~TfsRthH!Nmf|XEzFXA$0X&L;iJC>+9iGUjMx{h?Lz+Z4(ag
zOQH138O=+$gVc<=6WSc9yqU*IQy(t;11m9169CrX<qRM}T2L9#D_dP+l{Mf&z9<Ck
z|Km)d_c6Is*QW&q*q@$?ur>ahuayb3=K7Cwihm%W%eG%Nv_?k!N1wz!W;%y0D3u@v
zl-16?H2Ygcl+~HJhv|QlY*hGXkq`>UuNpN$_iXJ<o?HE|(NF@wIFpH<pM^3MrDCKg
z=}u@4cufM5wtlsUVV~$YM6Yk3C_^)S6D4Z8H8zF_TMh8<p)@{Vt}J?5a;*T#csNOg
z%OXyi<{vq{5S4X0l#G}q(Zf+V;S1f#%33MItqdq9S^>}-kH`Yx{g1o~(K9pv#CFFj
z>8F99t+pz7n8r!d!9~g^d1s2SwNp@psH3iS{=;EOGwSN7fnV#teoX2h!P9t!i*nFc
zdks8H0STsT4QlK`r+fe01A&tNJ-eA`i39W=I^z`kIBD7?Q<x!Btpl&vIgtn}oxG57
zVE_jJf-LO^FN@7ShQI+-Rig|UM_&chLtq5Z)W0ZmRmG@5(tTbGz}Y{{0n`u5mX-&Y
zcVTIRSWs3cka}C~qW|mScJMV)5EY;t{9~kS4ihaifR#@qyfbwV{pR25p)tO#2H?7<
z3HAp!U47h8S8Sux98rb}2s7P8!Ki3*v2QYZJlg8up02pY(sj6%86|Gxs7Xrw^gmR=
zGSdN=Cqs<_1N}(eXh1?ZG6HY{lO^A|oDdyHBpT{OSXod4GKRh4Kn6wFnqI&=|M9+4
zUwx=50QoD@zyO<<6Xj1g0Ga;nQTIY)d;l_P19HMS=?i)MRRJIZa;cA_O56490W0ar
z>IcAxu`j9K3*fb)PSAh6S`>%|z{-}tDqzuxqA7Ek0SFX_nL?=t*ztx$<N-Z2Ot)SX
z)7Q%v!3*El6@cOnU>yMfm!`T6Dtx=%=?etpdWgmYBCOwRLtdj%(HQ9J&4&W&OmLzx
zul)c^vUGtJfN{WA_CX=A%y_*AkAMac@%lv*Ij1QS%=;k#U0Iq6Ez;7f_Eo-5^B+!0
zo)FEJ=@;4m8|Eu7=G%zxk!q`t9k&w|z~fK`OAK5V#*iT0^B-5RyMh3a5+p!}0eV=i
zf}O%Q?gBr&5MU1yEdPD~OveB@PCVh`{FF@$7?msukm3X=P^GB$jm_ZG2G`jG*re#2
zJC9gvfV*@;-mY7c6q=rty-)z73?el*JD+cbIB)YuCF5?(HMgO<*BOl`)7Dxa^X*gn
z^g!%=u1Vj%1U_%xhy3e18ECknp}{d7!?(3ftxxP>WC~<d#An68@1?26J0Wi{<uvD-
zUG_{B_XYCb>*y|jjsgLNN4VE)Km5Kta;wR%LjE-foddeX-ZtviQ2`|Kf3a{!`2JT+
z<zJJO1D^e83$;=G%X+sa$OCpXe1|yvS}nIlWvtNcN^SzJYAS}$D<F!;STZPl0P20f
zNIXe~`T|=lOsrsq-Y)>j4_hp={>0S6avmapU{UwHgZ`iNe=Mup@SJ=He%xv|l{ZDe
zv{({+i598Y)L%6KsMph&4Zi@yWFa6rDVN^xXQu!w($}?8L5!<33v(d*mKm_nj)~fR
z1*=N*<%m^0X5B(>)=hG_Q*n9QYjy#(xPBr4$`iyZ!&`dJN40eK)UQX(485d6?8^df
zN5tJb$kfpV_N}n@NLAfeGV2lQggJ1%7tzcm6PD|^`D*9nqr=hCOoJ_ca+)Tq_Pmri
z?0-+-pG*T+7Ktx*N5uVLO(?E=k@#cFXPHqvTfi1Gu)xOuzIjlQzCHQQh}vwFpAIOn
zw@9a-!S=`U0S~B#Slv~LUBgGkm9BoV%4Tfj4~e+9;@G0dsN@3a_ukobBck;kS){{b
zqKcTvT_2eNta2123&wV_Mdzent$OMFA!iZt_a^<u_bNO9aDIdO;sj<~Ngsd!&~q)b
zZnbCr&Q)Z6LO4|U>K<qxSjU&o`M7nk3Nrk(_14!K#sLzEy`csknG_$|V&B_Ji9cV3
z8!5cv>{o{wVvtETQLbl&Ex8Nl{pcrSEGC63n~}w%-1V{B9~|*fI@TV|Xd{5RL%W9H
zD=+5N6x}tyeczlMA$Fyn7@pHMGg&2-*~~IvtC?SkM10r4hk?&qoKen|A1O@`U<tT<
zZ&9d5QR9xgq*2_%GHSeBt2srSdhu^2O6X!`zeh7x^@l$2E)oCPUFTFH`wq`cgx4lr
zuby6wbH~+D?kj$0)*Hjuyw<f7%G-7L#H+bS+xA`hbi-u}O8I!H-7%51$Klw?b(IPq
z6;qbHy-^nXvKrVkXK0VuqGX1Q^<&z6Q}FHv$3qOt4XwhTabNI7EL~SylKvbZz~65X
LnP1gHdIA3fMIK&*

diff --git a/frontend/src/pages/OnboardingFlow/Steps/LLMPreference/index.jsx b/frontend/src/pages/OnboardingFlow/Steps/LLMPreference/index.jsx
index 5f58cba1a..69704f19c 100644
--- a/frontend/src/pages/OnboardingFlow/Steps/LLMPreference/index.jsx
+++ b/frontend/src/pages/OnboardingFlow/Steps/LLMPreference/index.jsx
@@ -316,18 +316,18 @@ export default function LLMPreference({
   return (
     <div>
       <form ref={formRef} onSubmit={handleSubmit} className="w-full">
-        <div className="w-full relative border-slate-300/40 shadow border-2 rounded-lg text-white">
+        <div className="w-full relative border-theme-chat-input-border shadow border-2 rounded-lg text-white">
           <div className="w-full p-4 absolute top-0 rounded-t-lg backdrop-blur-sm">
             <div className="w-full flex items-center sticky top-0">
               <MagnifyingGlass
                 size={16}
                 weight="bold"
-                className="absolute left-4 z-30 text-white"
+                className="absolute left-4 z-30 text-theme-text-primary"
               />
               <input
                 type="text"
                 placeholder="Search LLM providers"
-                className="bg-zinc-600 z-20 pl-10 h-[38px] rounded-full w-full px-4 py-1 text-sm border-2 border-slate-300/40 outline-none focus:outline-primary-button active:outline-primary-button outline-none text-white"
+                className="bg-theme-bg-secondary placeholder:text-theme-text-secondary z-20 pl-10 h-[38px] rounded-full w-full px-4 py-1 text-sm border border-theme-chat-input-border outline-none focus:outline-primary-button active:outline-primary-button outline-none text-theme-text-primary"
                 onChange={(e) => setSearchQuery(e.target.value)}
                 autoComplete="off"
                 onKeyDown={(e) => {
diff --git a/frontend/src/pages/OnboardingFlow/Steps/Survey/index.jsx b/frontend/src/pages/OnboardingFlow/Steps/Survey/index.jsx
index 14781381f..7c14c3116 100644
--- a/frontend/src/pages/OnboardingFlow/Steps/Survey/index.jsx
+++ b/frontend/src/pages/OnboardingFlow/Steps/Survey/index.jsx
@@ -123,10 +123,13 @@ export default function Survey({ setHeader, setForwardBtn, setBackBtn }) {
   }
 
   return (
-    <div className="w-full flex justify-center">
+    <div className="w-full flex justify-center bo">
       <form onSubmit={handleSubmit} ref={formRef} className="">
         <div className="md:min-w-[400px]">
-          <label htmlFor="email" className="text-white text-base font-medium">
+          <label
+            htmlFor="email"
+            className="text-theme-text-primary text-base font-medium"
+          >
             What's your email?{" "}
           </label>
           <input
@@ -134,22 +137,24 @@ export default function Survey({ setHeader, setForwardBtn, setBackBtn }) {
             type="email"
             placeholder="you@gmail.com"
             required={true}
-            className="mt-2 bg-zinc-900 text-white placeholder:text-white/20 text-sm font-medium font-['Plus Jakarta Sans'] leading-tight w-full h-11 p-2.5 bg-zinc-900 rounded-lg"
+            className="mt-2 bg-theme-settings-input-bg text-white focus:outline-primary-button active:outline-primary-button placeholder:text-theme-settings-input-placeholder outline-none text-sm font-medium font-['Plus Jakarta Sans'] leading-tight w-full h-11 p-2.5 bg-theme-settings-input-bg rounded-lg"
           />
         </div>
 
         <div className="mt-8">
           <label
-            className="text-white text-base font-medium"
+            className="text-theme-text-primary text-base font-medium"
             htmlFor="use_case"
           >
             What will you use AnythingLLM for?{" "}
           </label>
           <div className="mt-2 gap-y-3 flex flex-col">
             <label
-              className={`transition-all duration-300 w-full h-11 p-2.5 bg-white/10 rounded-lg flex justify-start items-center gap-2.5 cursor-pointer border border-transparent ${
-                selectedOption === "job" ? "border-white border-opacity-40" : ""
-              } hover:border-white/60`}
+              className={`transition-all duration-300 w-full h-11 p-2.5 rounded-lg flex justify-start items-center gap-2.5 cursor-pointer border ${
+                selectedOption === "job"
+                  ? "border-theme-sidebar-item-workspace-active bg-theme-bg-secondary"
+                  : "border-theme-sidebar-border"
+              } hover:border-theme-sidebar-border hover:bg-theme-bg-secondary`}
             >
               <input
                 type="radio"
@@ -160,20 +165,22 @@ export default function Survey({ setHeader, setForwardBtn, setBackBtn }) {
                 className="hidden"
               />
               <div
-                className={`w-4 h-4 rounded-full border-2 border-white mr-2 ${
-                  selectedOption === "job" ? "bg-white" : ""
+                className={`w-4 h-4 rounded-full border-2 border-theme-sidebar-border mr-2 ${
+                  selectedOption === "job"
+                    ? "bg-[var(--theme-sidebar-item-workspace-active)]"
+                    : ""
                 }`}
               ></div>
-              <div className="text-white text-sm font-medium font-['Plus Jakarta Sans'] leading-tight">
+              <div className="text-theme-text-primary text-sm font-medium font-['Plus Jakarta Sans'] leading-tight">
                 For work
               </div>
             </label>
             <label
-              className={`transition-all duration-300 w-full h-11 p-2.5 bg-white/10 rounded-lg flex justify-start items-center gap-2.5 cursor-pointer border border-transparent ${
+              className={`transition-all  duration-300 w-full h-11 p-2.5 rounded-lg flex justify-start items-center gap-2.5 cursor-pointer border ${
                 selectedOption === "personal"
-                  ? "border-white border-opacity-40"
-                  : ""
-              } hover:border-white/60`}
+                  ? "border-theme-sidebar-item-workspace-active bg-theme-bg-secondary"
+                  : "border-theme-sidebar-border"
+              } hover:border-theme-sidebar-border hover:bg-theme-bg-secondary`}
             >
               <input
                 type="radio"
@@ -184,20 +191,22 @@ export default function Survey({ setHeader, setForwardBtn, setBackBtn }) {
                 className="hidden"
               />
               <div
-                className={`w-4 h-4 rounded-full border-2 border-white mr-2 ${
-                  selectedOption === "personal" ? "bg-white" : ""
+                className={`w-4 h-4 rounded-full border-2 border-theme-sidebar-border mr-2 ${
+                  selectedOption === "personal"
+                    ? "bg-[var(--theme-sidebar-item-workspace-active)]"
+                    : ""
                 }`}
               ></div>
-              <div className="text-white text-sm font-medium font-['Plus Jakarta Sans'] leading-tight">
+              <div className="text-theme-text-primary text-sm font-medium font-['Plus Jakarta Sans'] leading-tight">
                 For my personal use
               </div>
             </label>
             <label
-              className={`transition-all duration-300 w-full h-11 p-2.5 bg-white/10 rounded-lg flex justify-start items-center gap-2.5 cursor-pointer border border-transparent ${
+              className={`transition-all duration-300 w-full h-11 p-2.5 rounded-lg flex justify-start items-center gap-2.5 cursor-pointer border-[1px] ${
                 selectedOption === "other"
-                  ? "border-white border-opacity-40"
-                  : ""
-              } hover:border-white/60`}
+                  ? "border-theme-sidebar-item-workspace-active bg-theme-bg-secondary"
+                  : "border-theme-sidebar-border"
+              } hover:border-theme-sidebar-border hover:bg-theme-bg-secondary`}
             >
               <input
                 type="radio"
@@ -208,11 +217,13 @@ export default function Survey({ setHeader, setForwardBtn, setBackBtn }) {
                 className="hidden"
               />
               <div
-                className={`w-4 h-4 rounded-full border-2 border-white mr-2 ${
-                  selectedOption === "other" ? "bg-white" : ""
+                className={`w-4 h-4 rounded-full border-2 border-theme-sidebar-border mr-2 ${
+                  selectedOption === "other"
+                    ? "bg-[var(--theme-sidebar-item-workspace-active)]"
+                    : ""
                 }`}
               ></div>
-              <div className="text-white text-sm font-medium font-['Plus Jakarta Sans'] leading-tight">
+              <div className="text-theme-text-primary text-sm font-medium font-['Plus Jakarta Sans'] leading-tight">
                 Other
               </div>
             </label>
@@ -229,7 +240,7 @@ export default function Survey({ setHeader, setForwardBtn, setBackBtn }) {
           <textarea
             name="comment"
             rows={5}
-            className="mt-2 bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5"
+            className="mt-2 bg-theme-settings-input-bg text-white text-sm rounded-lg focus:outline-primary-button active:outline-primary-button placeholder:text-theme-settings-input-placeholder outline-none block w-full p-2.5"
             placeholder="If you have any questions or comments right now, you can leave them here and we will get back to you. You can also email team@mintplexlabs.com"
             wrap="soft"
             autoComplete="off"
diff --git a/frontend/src/pages/OnboardingFlow/Steps/UserSetup/index.jsx b/frontend/src/pages/OnboardingFlow/Steps/UserSetup/index.jsx
index 04625abf4..ebd0461a9 100644
--- a/frontend/src/pages/OnboardingFlow/Steps/UserSetup/index.jsx
+++ b/frontend/src/pages/OnboardingFlow/Steps/UserSetup/index.jsx
@@ -54,7 +54,7 @@ export default function UserSetup({ setHeader, setForwardBtn, setBackBtn }) {
 
   return (
     <div className="w-full flex items-center justify-center flex-col gap-y-6">
-      <div className="flex flex-col border rounded-lg border-white/20 p-8 items-center gap-y-4 w-full max-w-[600px]">
+      <div className="flex flex-col border rounded-lg border-white/20 light:border-theme-sidebar-border p-8 items-center gap-y-4 w-full max-w-[600px]">
         <div className=" text-white text-sm font-semibold md:-ml-44">
           How many people will be using your instance?
         </div>
@@ -64,7 +64,7 @@ export default function UserSetup({ setHeader, setForwardBtn, setBackBtn }) {
             className={`${
               selectedOption === "just_me"
                 ? "text-sky-400 border-sky-400/70"
-                : "text-white border-white/40"
+                : "text-theme-text-primary border-theme-sidebar-border"
             } min-w-[230px] h-11 p-4 rounded-[10px] border-2  justify-center items-center gap-[100px] inline-flex hover:border-sky-400/70 hover:text-sky-400 transition-all duration-300`}
           >
             <div className="text-center text-sm font-bold">Just me</div>
@@ -74,7 +74,7 @@ export default function UserSetup({ setHeader, setForwardBtn, setBackBtn }) {
             className={`${
               selectedOption === "my_team"
                 ? "text-sky-400 border-sky-400/70"
-                : "text-white border-white/40"
+                : "text-theme-text-primary border-theme-sidebar-border"
             } min-w-[230px] h-11 p-4 rounded-[10px] border-2  justify-center items-center gap-[100px] inline-flex hover:border-sky-400/70 hover:text-sky-400 transition-all duration-300`}
           >
             <div className="text-center text-sm font-bold">My team</div>
@@ -160,7 +160,7 @@ const JustMe = ({
   });
   return (
     <div className="w-full flex items-center justify-center flex-col gap-y-6">
-      <div className="flex flex-col border rounded-lg border-white/20 p-8 items-center gap-y-4 w-full max-w-[600px]">
+      <div className="flex flex-col border rounded-lg border-white/20 light:border-theme-sidebar-border p-8 items-center gap-y-4 w-full max-w-[600px]">
         <div className=" text-white text-sm font-semibold md:-ml-56">
           Would you like to set up a password?
         </div>
@@ -170,7 +170,7 @@ const JustMe = ({
             className={`${
               enablePassword && itemSelected
                 ? "text-sky-400 border-sky-400/70"
-                : "text-white border-white/40"
+                : "text-theme-text-primary border-theme-sidebar-border"
             } min-w-[230px] h-11 p-4 rounded-[10px] border-2  justify-center items-center gap-[100px] inline-flex hover:border-sky-400/70 hover:text-sky-400 transition-all duration-300`}
           >
             <div className="text-center text-sm font-bold">Yes</div>
@@ -180,7 +180,7 @@ const JustMe = ({
             className={`${
               !enablePassword && itemSelected
                 ? "text-sky-400 border-sky-400/70"
-                : "text-white border-white/40"
+                : "text-theme-text-primary border-theme-sidebar-border"
             } min-w-[230px] h-11 p-4 rounded-[10px] border-2  justify-center items-center gap-[100px] inline-flex hover:border-sky-400/70 hover:text-sky-400 transition-all duration-300`}
           >
             <div className="text-center text-sm font-bold">No</div>
@@ -197,7 +197,7 @@ const JustMe = ({
             <input
               name="password"
               type="password"
-              className="bg-zinc-900 text-white text-sm rounded-lg block w-full p-2.5 focus:outline-primary-button active:outline-primary-button outline-none"
+              className="bg-theme-settings-input-bg text-white text-sm rounded-lg block w-full p-2.5 focus:outline-primary-button active:outline-primary-button outline-none placeholder:text-theme-text-secondary"
               placeholder="Your admin password"
               minLength={6}
               required={true}
@@ -265,7 +265,7 @@ const MyTeam = ({ setMultiUserLoginValid, myTeamSubmitRef, navigate }) => {
     }
   }, [username, password]);
   return (
-    <div className="w-full flex items-center justify-center border max-w-[600px] rounded-lg border-white/20">
+    <div className="w-full flex items-center justify-center border max-w-[600px] rounded-lg border-white/20 light:border-theme-sidebar-border">
       <form onSubmit={handleSubmit}>
         <div className="flex flex-col w-full md:px-8 px-2 py-4">
           <div className="space-y-6 flex h-full w-full">
@@ -280,7 +280,7 @@ const MyTeam = ({ setMultiUserLoginValid, myTeamSubmitRef, navigate }) => {
                 <input
                   name="username"
                   type="text"
-                  className="bg-zinc-900 text-white text-sm rounded-lg block w-full p-2.5 focus:outline-primary-button active:outline-primary-button outline-none"
+                  className="bg-theme-settings-input-bg text-white text-sm rounded-lg block w-full p-2.5 focus:outline-primary-button active:outline-primary-button placeholder:text-theme-text-secondary outline-none"
                   placeholder="Your admin username"
                   minLength={6}
                   required={true}
@@ -303,7 +303,7 @@ const MyTeam = ({ setMultiUserLoginValid, myTeamSubmitRef, navigate }) => {
                 <input
                   name="password"
                   type="password"
-                  className="bg-zinc-900 text-white text-sm rounded-lg block w-full p-2.5 focus:outline-primary-button active:outline-primary-button outline-none"
+                  className="bg-theme-settings-input-bg text-white text-sm rounded-lg block w-full p-2.5 focus:outline-primary-button active:outline-primary-button placeholder:text-theme-text-secondary outline-none"
                   placeholder="Your admin password"
                   minLength={8}
                   required={true}
@@ -317,8 +317,8 @@ const MyTeam = ({ setMultiUserLoginValid, myTeamSubmitRef, navigate }) => {
             </div>
           </div>
         </div>
-        <div className="flex w-full justify-between items-center px-6 py-4 space-x-6 border-t rounded-b border-gray-500/50">
-          <div className=" text-white text-opacity-80 text-xs font-base">
+        <div className="flex w-full justify-between items-center px-6 py-4 space-x-6 border-t rounded-b border-theme-sidebar-border">
+          <div className="text-theme-text-secondary text-opacity-80 text-xs font-base">
             By default, you will be the only admin. Once onboarding is completed
             you can create and invite others to be users or admins. Do not lose
             your password as only admins can reset passwords.
diff --git a/frontend/src/pages/OnboardingFlow/Steps/index.jsx b/frontend/src/pages/OnboardingFlow/Steps/index.jsx
index 2d990a8fd..bc222b826 100644
--- a/frontend/src/pages/OnboardingFlow/Steps/index.jsx
+++ b/frontend/src/pages/OnboardingFlow/Steps/index.jsx
@@ -37,14 +37,17 @@ export function OnboardingLayout({ children }) {
 
   if (isMobile) {
     return (
-      <div className="w-screen h-screen overflow-y-auto bg-mobile-onboarding overflow-hidden">
+      <div
+        data-layout="onboarding"
+        className="w-screen h-screen overflow-y-auto bg-theme-bg-primary overflow-hidden"
+      >
         <div className="flex flex-col">
           <div className="w-full relative py-10 px-2">
             <div className="flex flex-col w-fit mx-auto gap-y-1 mb-[55px]">
-              <h1 className="text-white font-semibold text-center text-2xl">
+              <h1 className="text-theme-text-primary font-semibold text-center text-2xl">
                 {header.title}
               </h1>
-              <p className="text-zinc-400 text-base text-center">
+              <p className="text-theme-text-secondary text-base text-center">
                 {header.description}
               </p>
             </div>
@@ -87,17 +90,20 @@ export function OnboardingLayout({ children }) {
   }
 
   return (
-    <div className="w-screen overflow-y-auto bg-mobile-onboarding md:bg-main-gradient flex justify-center overflow-hidden">
+    <div
+      data-layout="onboarding"
+      className="w-screen overflow-y-auto bg-theme-bg-primary flex justify-center overflow-hidden"
+    >
       <div className="flex w-1/5 h-screen justify-center items-center">
         {backBtn.showing && (
           <button
             disabled={backBtn.disabled}
             onClick={backBtn.onClick}
-            className="group p-2 rounded-lg border-2 border-zinc-600 h-fit w-fit disabled:cursor-not-allowed hover:bg-zinc-100 disabled:hover:bg-transparent"
+            className="group p-2 rounded-lg border-2 border-theme-sidebar-border h-fit w-fit disabled:cursor-not-allowed hover:bg-theme-bg-secondary disabled:hover:bg-transparent"
             aria-label="Back"
           >
             <ArrowLeft
-              className="group-hover:text-black text-gray-500"
+              className="text-theme-text-secondary group-hover:text-theme-text-primary group-disabled:text-gray-500"
               size={30}
             />
           </button>
@@ -106,10 +112,10 @@ export function OnboardingLayout({ children }) {
 
       <div className="w-full md:w-3/5 relative h-full py-10">
         <div className="flex flex-col w-fit mx-auto gap-y-1 mb-[55px]">
-          <h1 className="text-white font-semibold text-center text-2xl">
+          <h1 className="text-theme-text-primary font-semibold text-center text-2xl">
             {header.title}
           </h1>
-          <p className="text-zinc-400 text-base text-center">
+          <p className="text-theme-text-secondary text-base text-center">
             {header.description}
           </p>
         </div>
@@ -121,11 +127,11 @@ export function OnboardingLayout({ children }) {
           <button
             disabled={forwardBtn.disabled}
             onClick={forwardBtn.onClick}
-            className="group p-2 rounded-lg border-2 border-zinc-300 disabled:border-zinc-600 h-fit w-fit disabled:cursor-not-allowed hover:bg-zinc-100 disabled:hover:bg-transparent"
+            className="group p-2 rounded-lg border-2 border-theme-sidebar-border h-fit w-fit disabled:cursor-not-allowed hover:bg-theme-bg-secondary disabled:hover:bg-transparent"
             aria-label="Continue"
           >
             <ArrowRight
-              className="text-white group-hover:text-black group-disabled:text-gray-500"
+              className="text-theme-text-secondary group-hover:text-theme-text-primary group-disabled:text-gray-500"
               size={30}
             />
           </button>
diff --git a/frontend/src/pages/WorkspaceChat/index.jsx b/frontend/src/pages/WorkspaceChat/index.jsx
index 6c5fcfb13..aa924fc56 100644
--- a/frontend/src/pages/WorkspaceChat/index.jsx
+++ b/frontend/src/pages/WorkspaceChat/index.jsx
@@ -45,7 +45,7 @@ function ShowWorkspaceChat() {
 
   return (
     <>
-      <div className="w-screen h-screen overflow-hidden bg-sidebar flex">
+      <div className="w-screen h-screen overflow-hidden bg-theme-bg-container flex">
         {!isMobile && <Sidebar />}
         <WorkspaceChatContainer loading={loading} workspace={workspace} />
       </div>
diff --git a/frontend/src/pages/WorkspaceSettings/AgentConfig/AgentLLMSelection/AgentLLMItem/index.jsx b/frontend/src/pages/WorkspaceSettings/AgentConfig/AgentLLMSelection/AgentLLMItem/index.jsx
index e9cb295e4..10bb03473 100644
--- a/frontend/src/pages/WorkspaceSettings/AgentConfig/AgentLLMSelection/AgentLLMItem/index.jsx
+++ b/frontend/src/pages/WorkspaceSettings/AgentConfig/AgentLLMSelection/AgentLLMItem/index.jsx
@@ -35,8 +35,8 @@ export default function WorkspaceLLM({
     <>
       <div
         onClick={handleProviderSelection}
-        className={`w-full p-2 rounded-md hover:cursor-pointer hover:bg-white/10 ${
-          checked ? "bg-white/10" : ""
+        className={`w-full p-2 rounded-md hover:cursor-pointer hover:bg-theme-bg-secondary ${
+          checked ? "bg-theme-bg-secondary" : ""
         }`}
       >
         <input
@@ -55,7 +55,7 @@ export default function WorkspaceLLM({
           />
           <div className="flex flex-col">
             <div className="text-sm font-semibold text-white">{name}</div>
-            <div className="mt-1 text-xs text-description">{description}</div>
+            <div className="mt-1 text-xs text-white/60">{description}</div>
           </div>
         </div>
       </div>
@@ -102,42 +102,44 @@ function SetupProvider({
   // to the parent container form so we don't have nested forms.
   return createPortal(
     <ModalWrapper isOpen={isOpen}>
-      <div className="relative w-fit max-w-1/2 max-h-full">
-        <div className="relative bg-main-gradient rounded-xl shadow-[0_4px_14px_rgba(0,0,0,0.25)]">
-          <div className="flex items-start justify-between p-4 border-b rounded-t border-gray-500/50">
-            <h3 className="text-xl font-semibold text-white">
-              Setup {LLMOption.name}
-            </h3>
+      <div className="fixed inset-0 z-50 overflow-auto bg-black bg-opacity-50 flex items-center justify-center">
+        <div className="relative w-full max-w-2xl bg-theme-bg-secondary rounded-lg shadow border-2 border-theme-modal-border">
+          <div className="relative p-6 border-b rounded-t border-theme-modal-border">
+            <div className="w-full flex gap-x-2 items-center">
+              <h3 className="text-xl font-semibold text-white overflow-hidden overflow-ellipsis whitespace-nowrap">
+                Setup {LLMOption.name}
+              </h3>
+            </div>
             <button
               onClick={closeModal}
               type="button"
-              className="border-none transition-all duration-300 text-gray-400 bg-transparent hover:border-white/60 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center bg-sidebar-button hover:bg-menu-item-selected-gradient hover:border-slate-100 hover:border-opacity-50 border-transparent border"
-              data-modal-hide="staticModal"
+              className="absolute top-4 right-4 transition-all duration-300 bg-transparent rounded-lg text-sm p-1 inline-flex items-center hover:bg-theme-modal-border hover:border-theme-modal-border hover:border-opacity-50 border-transparent border"
             >
-              <X className="text-gray-300 text-lg" />
+              <X size={24} weight="bold" className="text-white" />
             </button>
           </div>
-
           <form id="provider-form" onSubmit={handleUpdate}>
-            <div className="py-[17px] px-[20px] flex flex-col gap-y-6">
-              <p className="text-sm text-white">
-                To use {LLMOption.name} as this workspace's LLM you need to set
-                it up first.
-              </p>
-              <div>{LLMOption.options({ credentialsOnly: true })}</div>
+            <div className="px-7 py-6">
+              <div className="space-y-6 max-h-[60vh] overflow-y-auto pr-2">
+                <p className="text-sm text-white/60">
+                  To use {LLMOption.name} as this workspace's LLM you need to
+                  set it up first.
+                </p>
+                <div>{LLMOption.options({ credentialsOnly: true })}</div>
+              </div>
             </div>
-            <div className="flex w-full justify-between items-center p-3 space-x-2 border-t rounded-b border-gray-500/50">
+            <div className="flex justify-between items-center mt-6 pt-6 border-t border-theme-modal-border px-7 pb-6">
               <button
                 type="button"
                 onClick={closeModal}
-                className="border-none text-xs px-2 py-1 font-semibold rounded-lg bg-white hover:bg-transparent border-2 border-transparent hover:border-white hover:text-white h-[32px] w-fit -mr-8 whitespace-nowrap shadow-[0_4px_14px_rgba(0,0,0,0.25)]"
+                className="transition-all duration-300 text-white hover:bg-zinc-700 px-4 py-2 rounded-lg text-sm"
               >
                 Cancel
               </button>
               <button
                 type="submit"
                 form="provider-form"
-                className="border-none text-xs px-2 py-1 font-semibold rounded-lg bg-primary-button hover:bg-secondary border-2 border-transparent hover:border-primary-button hover:text-white h-[32px] w-fit -mr-8 whitespace-nowrap shadow-[0_4px_14px_rgba(0,0,0,0.25)]"
+                className="transition-all duration-300 bg-white text-black hover:opacity-60 px-4 py-2 rounded-lg text-sm"
               >
                 Save {LLMOption.name} settings
               </button>
diff --git a/frontend/src/pages/WorkspaceSettings/AgentConfig/AgentLLMSelection/index.jsx b/frontend/src/pages/WorkspaceSettings/AgentConfig/AgentLLMSelection/index.jsx
index 1e21e50b3..6025d2953 100644
--- a/frontend/src/pages/WorkspaceSettings/AgentConfig/AgentLLMSelection/index.jsx
+++ b/frontend/src/pages/WorkspaceSettings/AgentConfig/AgentLLMSelection/index.jsx
@@ -128,20 +128,20 @@ export default function AgentLLMSelection({
           />
         )}
         {searchMenuOpen ? (
-          <div className="absolute top-0 left-0 w-full max-w-[640px] max-h-[310px] overflow-auto white-scrollbar min-h-[64px] bg-dark-input rounded-lg flex flex-col justify-between cursor-pointer border-2 border-primary-button z-20">
+          <div className="absolute top-0 left-0 w-full max-w-[640px] max-h-[310px] overflow-auto white-scrollbar min-h-[64px] bg-theme-settings-input-bg rounded-lg flex flex-col justify-between cursor-pointer border-2 border-primary-button z-20">
             <div className="w-full flex flex-col gap-y-1">
-              <div className="flex items-center sticky top-0 border-b border-[#9CA3AF] mx-4 bg-dark-input">
+              <div className="flex items-center sticky top-0 border-b border-[#9CA3AF] mx-4 bg-theme-settings-input-bg">
                 <MagnifyingGlass
                   size={20}
                   weight="bold"
-                  className="absolute left-4 z-30 text-white -ml-4 my-2"
+                  className="absolute left-4 z-30 text-theme-text-primary -ml-4 my-2"
                 />
                 <input
                   type="text"
                   name="llm-search"
                   autoComplete="off"
                   placeholder="Search available LLM providers"
-                  className="border-none -ml-4 my-2 bg-transparent z-20 pl-12 h-[38px] w-full px-4 py-1 text-sm outline-none text-white placeholder:text-white placeholder:font-medium"
+                  className="border-none -ml-4 my-2 bg-transparent z-20 pl-12 h-[38px] w-full px-4 py-1 text-sm outline-none text-theme-text-primary placeholder:text-theme-text-primary placeholder:font-medium"
                   onChange={(e) => setSearchQuery(e.target.value)}
                   ref={searchInputRef}
                   onKeyDown={(e) => {
@@ -151,7 +151,7 @@ export default function AgentLLMSelection({
                 <X
                   size={20}
                   weight="bold"
-                  className="cursor-pointer text-white hover:text-x-button"
+                  className="cursor-pointer text-theme-text-primary hover:text-x-button"
                   onClick={handleXButton}
                 />
               </div>
@@ -173,7 +173,7 @@ export default function AgentLLMSelection({
           </div>
         ) : (
           <button
-            className="w-full max-w-[640px] h-[64px] bg-dark-input rounded-lg flex items-center p-[14px] justify-between cursor-pointer border-2 border-transparent hover:border-primary-button transition-all duration-300"
+            className="w-full max-w-[640px] h-[64px] bg-theme-settings-input-bg rounded-lg flex items-center p-[14px] justify-between cursor-pointer border-2 border-transparent hover:border-primary-button transition-all duration-300"
             type="button"
             onClick={() => setSearchMenuOpen(true)}
           >
diff --git a/frontend/src/pages/WorkspaceSettings/AgentConfig/AgentModelSelection/index.jsx b/frontend/src/pages/WorkspaceSettings/AgentConfig/AgentModelSelection/index.jsx
index aeb9db067..df850d33a 100644
--- a/frontend/src/pages/WorkspaceSettings/AgentConfig/AgentModelSelection/index.jsx
+++ b/frontend/src/pages/WorkspaceSettings/AgentConfig/AgentModelSelection/index.jsx
@@ -78,7 +78,7 @@ export default function AgentModelSelection({
           name="agentModel"
           required={true}
           disabled={true}
-          className="bg-zinc-900 text-white text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5"
+          className="bg-theme-settings-input-bg text-white text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
         >
           <option disabled={true} selected={true}>
             {t("agent.mode.wait")}
@@ -105,7 +105,7 @@ export default function AgentModelSelection({
         onChange={() => {
           setHasChanges(true);
         }}
-        className="bg-zinc-900 text-white text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5"
+        className="bg-theme-settings-input-bg text-white text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
       >
         {defaultModels.length > 0 && (
           <optgroup label="General models">
diff --git a/frontend/src/pages/WorkspaceSettings/AgentConfig/index.jsx b/frontend/src/pages/WorkspaceSettings/AgentConfig/index.jsx
index d0db3a684..1508f0ad2 100644
--- a/frontend/src/pages/WorkspaceSettings/AgentConfig/index.jsx
+++ b/frontend/src/pages/WorkspaceSettings/AgentConfig/index.jsx
@@ -128,8 +128,8 @@ function LoadingSkeleton() {
           height={100}
           width="100%"
           count={2}
-          baseColor="#292524"
-          highlightColor="#4c4948"
+          highlightColor="var(--theme-bg-primary)"
+          baseColor="var(--theme-bg-secondary)"
           enableAnimation={true}
           containerClassName="flex flex-col gap-y-1"
         />
@@ -138,8 +138,8 @@ function LoadingSkeleton() {
           height={100}
           width="100%"
           count={2}
-          baseColor="#292524"
-          highlightColor="#4c4948"
+          highlightColor="var(--theme-bg-primary)"
+          baseColor="var(--theme-bg-secondary)"
           enableAnimation={true}
           containerClassName="flex flex-col gap-y-1 mt-4"
         />
diff --git a/frontend/src/pages/WorkspaceSettings/ChatSettings/ChatHistorySettings/index.jsx b/frontend/src/pages/WorkspaceSettings/ChatSettings/ChatHistorySettings/index.jsx
index faa621031..ae8a6539f 100644
--- a/frontend/src/pages/WorkspaceSettings/ChatSettings/ChatHistorySettings/index.jsx
+++ b/frontend/src/pages/WorkspaceSettings/ChatSettings/ChatHistorySettings/index.jsx
@@ -21,7 +21,7 @@ export default function ChatHistorySettings({ workspace, setHasChanges }) {
         step={1}
         onWheel={(e) => e.target.blur()}
         defaultValue={workspace?.openAiHistory ?? 20}
-        className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5"
+        className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
         placeholder="20"
         required={true}
         autoComplete="off"
diff --git a/frontend/src/pages/WorkspaceSettings/ChatSettings/ChatModeSelection/index.jsx b/frontend/src/pages/WorkspaceSettings/ChatSettings/ChatModeSelection/index.jsx
index 135cbf9e6..3b507c721 100644
--- a/frontend/src/pages/WorkspaceSettings/ChatSettings/ChatModeSelection/index.jsx
+++ b/frontend/src/pages/WorkspaceSettings/ChatSettings/ChatModeSelection/index.jsx
@@ -12,7 +12,7 @@ export default function ChatModeSelection({ workspace, setHasChanges }) {
       </div>
 
       <div className="flex flex-col gap-y-1 mt-2">
-        <div className="w-fit flex gap-x-1 items-center p-1 rounded-lg bg-zinc-800 ">
+        <div className="w-fit flex gap-x-1 items-center p-1 rounded-lg bg-theme-settings-input-bg ">
           <input type="hidden" name="chatMode" value={chatMode} />
           <button
             type="button"
diff --git a/frontend/src/pages/WorkspaceSettings/ChatSettings/ChatPromptSettings/index.jsx b/frontend/src/pages/WorkspaceSettings/ChatSettings/ChatPromptSettings/index.jsx
index 0b50e941d..363b1974b 100644
--- a/frontend/src/pages/WorkspaceSettings/ChatSettings/ChatPromptSettings/index.jsx
+++ b/frontend/src/pages/WorkspaceSettings/ChatSettings/ChatPromptSettings/index.jsx
@@ -16,7 +16,7 @@ export default function ChatPromptSettings({ workspace, setHasChanges }) {
         name="openAiPrompt"
         rows={5}
         defaultValue={chatPrompt(workspace)}
-        className="bg-zinc-900 placeholder:text-white/20 text-white text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 mt-2"
+        className="bg-theme-settings-input-bg placeholder:text-theme-settings-input-placeholder text-white text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5 mt-2"
         placeholder="Given the following conversation, relevant context, and a follow up question, reply with an answer to the current question the user is asking. Return only your response to the question given the above information following the users instructions as needed."
         required={true}
         wrap="soft"
diff --git a/frontend/src/pages/WorkspaceSettings/ChatSettings/ChatQueryRefusalResponse/index.jsx b/frontend/src/pages/WorkspaceSettings/ChatSettings/ChatQueryRefusalResponse/index.jsx
index f540c3bcb..93c5a9a61 100644
--- a/frontend/src/pages/WorkspaceSettings/ChatSettings/ChatQueryRefusalResponse/index.jsx
+++ b/frontend/src/pages/WorkspaceSettings/ChatSettings/ChatQueryRefusalResponse/index.jsx
@@ -10,7 +10,7 @@ export default function ChatQueryRefusalResponse({ workspace, setHasChanges }) {
         </label>
         <p className="text-white text-opacity-60 text-xs font-medium py-1.5">
           {t("chat.refusal.desc-start")}{" "}
-          <code className="bg-zinc-900 p-0.5 rounded-sm">
+          <code className="bg-theme-settings-input-bg p-0.5 rounded-sm">
             {t("chat.refusal.query")}
           </code>{" "}
           {t("chat.refusal.desc-end")}
@@ -20,7 +20,7 @@ export default function ChatQueryRefusalResponse({ workspace, setHasChanges }) {
         name="queryRefusalResponse"
         rows={2}
         defaultValue={chatQueryRefusalResponse(workspace)}
-        className="border-none bg-zinc-900 placeholder:text-white/20 text-white text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 mt-2"
+        className="border-none bg-theme-settings-input-bg placeholder:text-theme-settings-input-placeholder text-white text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5 mt-2"
         placeholder="The text returned in query mode when there is no relevant context found for a response."
         required={true}
         wrap="soft"
diff --git a/frontend/src/pages/WorkspaceSettings/ChatSettings/ChatTemperatureSettings/index.jsx b/frontend/src/pages/WorkspaceSettings/ChatSettings/ChatTemperatureSettings/index.jsx
index a4478e318..dbab7417e 100644
--- a/frontend/src/pages/WorkspaceSettings/ChatSettings/ChatTemperatureSettings/index.jsx
+++ b/frontend/src/pages/WorkspaceSettings/ChatSettings/ChatTemperatureSettings/index.jsx
@@ -37,7 +37,7 @@ export default function ChatTemperatureSettings({
         step={0.1}
         onWheel={(e) => e.target.blur()}
         defaultValue={workspace?.openAiTemp ?? defaults.temp}
-        className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5"
+        className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
         placeholder="0.7"
         required={true}
         autoComplete="off"
diff --git a/frontend/src/pages/WorkspaceSettings/ChatSettings/WorkspaceLLMSelection/ChatModelSelection/index.jsx b/frontend/src/pages/WorkspaceSettings/ChatSettings/WorkspaceLLMSelection/ChatModelSelection/index.jsx
index 0ca6d0a49..bd79b5f42 100644
--- a/frontend/src/pages/WorkspaceSettings/ChatSettings/WorkspaceLLMSelection/ChatModelSelection/index.jsx
+++ b/frontend/src/pages/WorkspaceSettings/ChatSettings/WorkspaceLLMSelection/ChatModelSelection/index.jsx
@@ -28,7 +28,7 @@ export default function ChatModelSelection({
           name="chatModel"
           required={true}
           disabled={true}
-          className="bg-zinc-900 text-white text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5"
+          className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
         >
           <option disabled={true} selected={true}>
             -- waiting for models --
@@ -55,7 +55,7 @@ export default function ChatModelSelection({
         onChange={() => {
           setHasChanges(true);
         }}
-        className="bg-zinc-900 text-white text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5"
+        className="bg-theme-settings-input-bg text-white text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
       >
         {defaultModels.length > 0 && (
           <optgroup label="General models">
diff --git a/frontend/src/pages/WorkspaceSettings/ChatSettings/WorkspaceLLMSelection/WorkspaceLLMItem/index.jsx b/frontend/src/pages/WorkspaceSettings/ChatSettings/WorkspaceLLMSelection/WorkspaceLLMItem/index.jsx
index 610298ee0..a8017b2ec 100644
--- a/frontend/src/pages/WorkspaceSettings/ChatSettings/WorkspaceLLMSelection/WorkspaceLLMItem/index.jsx
+++ b/frontend/src/pages/WorkspaceSettings/ChatSettings/WorkspaceLLMSelection/WorkspaceLLMItem/index.jsx
@@ -35,8 +35,8 @@ export default function WorkspaceLLM({
     <>
       <div
         onClick={handleProviderSelection}
-        className={`w-full p-2 rounded-md hover:cursor-pointer hover:bg-white/10 ${
-          checked ? "bg-white/10" : ""
+        className={`w-full p-2 rounded-md hover:cursor-pointer hover:bg-theme-bg-secondary ${
+          checked ? "bg-theme-bg-secondary" : ""
         }`}
       >
         <input
@@ -55,7 +55,7 @@ export default function WorkspaceLLM({
           />
           <div className="flex flex-col">
             <div className="text-sm font-semibold text-white">{name}</div>
-            <div className="mt-1 text-xs text-description">{description}</div>
+            <div className="mt-1 text-xs text-white/60">{description}</div>
           </div>
         </div>
       </div>
@@ -102,42 +102,44 @@ function SetupProvider({
   // to the parent container form so we don't have nested forms.
   return createPortal(
     <ModalWrapper isOpen={isOpen}>
-      <div className="relative w-fit max-w-1/2 max-h-full">
-        <div className="relative bg-main-gradient rounded-xl shadow-[0_4px_14px_rgba(0,0,0,0.25)]">
-          <div className="flex items-start justify-between p-4 border-b rounded-t border-gray-500/50">
-            <h3 className="text-xl font-semibold text-white">
-              Setup {LLMOption.name}
-            </h3>
+      <div className="fixed inset-0 z-50 overflow-auto bg-black bg-opacity-50 flex items-center justify-center">
+        <div className="relative w-full max-w-2xl bg-theme-bg-secondary rounded-lg shadow border-2 border-theme-modal-border">
+          <div className="relative p-6 border-b rounded-t border-theme-modal-border">
+            <div className="w-full flex gap-x-2 items-center">
+              <h3 className="text-xl font-semibold text-white overflow-hidden overflow-ellipsis whitespace-nowrap">
+                Setup {LLMOption.name}
+              </h3>
+            </div>
             <button
               onClick={closeModal}
               type="button"
-              className="transition-all duration-300 text-gray-400 bg-transparent hover:border-white/60 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center bg-sidebar-button hover:bg-menu-item-selected-gradient hover:border-slate-100 hover:border-opacity-50 border-transparent border"
-              data-modal-hide="staticModal"
+              className="absolute top-4 right-4 transition-all duration-300 bg-transparent rounded-lg text-sm p-1 inline-flex items-center hover:bg-theme-modal-border hover:border-theme-modal-border hover:border-opacity-50 border-transparent border"
             >
-              <X className="text-gray-300 text-lg" />
+              <X size={24} weight="bold" className="text-white" />
             </button>
           </div>
-
           <form id="provider-form" onSubmit={handleUpdate}>
-            <div className="py-[17px] px-[20px] flex flex-col gap-y-6">
-              <p className="text-sm text-white">
-                To use {LLMOption.name} as this workspace's LLM you need to set
-                it up first.
-              </p>
-              <div>{LLMOption.options({ credentialsOnly: true })}</div>
+            <div className="px-7 py-6">
+              <div className="space-y-6 max-h-[60vh] overflow-y-auto pr-2">
+                <p className="text-sm text-white/60">
+                  To use {LLMOption.name} as this workspace's LLM you need to
+                  set it up first.
+                </p>
+                <div>{LLMOption.options({ credentialsOnly: true })}</div>
+              </div>
             </div>
-            <div className="flex w-full justify-between items-center p-3 space-x-2 border-t rounded-b border-gray-500/50">
+            <div className="flex justify-between items-center mt-6 pt-6 border-t border-theme-modal-border px-7 pb-6">
               <button
                 type="button"
                 onClick={closeModal}
-                className="text-xs px-2 py-1 font-semibold rounded-lg bg-white hover:bg-transparent border-2 border-transparent hover:border-white hover:text-white h-[32px] w-fit -mr-8 whitespace-nowrap shadow-[0_4px_14px_rgba(0,0,0,0.25)]"
+                className="transition-all duration-300 text-white hover:bg-zinc-700 px-4 py-2 rounded-lg text-sm"
               >
                 Cancel
               </button>
               <button
                 type="submit"
                 form="provider-form"
-                className="text-xs px-2 py-1 font-semibold rounded-lg bg-primary-button hover:bg-secondary border-2 border-transparent hover:border-primary-button hover:text-white h-[32px] w-fit -mr-8 whitespace-nowrap shadow-[0_4px_14px_rgba(0,0,0,0.25)]"
+                className="transition-all duration-300 bg-white text-black hover:opacity-60 px-4 py-2 rounded-lg text-sm"
               >
                 Save {LLMOption.name} settings
               </button>
diff --git a/frontend/src/pages/WorkspaceSettings/ChatSettings/WorkspaceLLMSelection/index.jsx b/frontend/src/pages/WorkspaceSettings/ChatSettings/WorkspaceLLMSelection/index.jsx
index 7cd5653e3..49301931a 100644
--- a/frontend/src/pages/WorkspaceSettings/ChatSettings/WorkspaceLLMSelection/index.jsx
+++ b/frontend/src/pages/WorkspaceSettings/ChatSettings/WorkspaceLLMSelection/index.jsx
@@ -90,20 +90,20 @@ export default function WorkspaceLLMSelection({
           />
         )}
         {searchMenuOpen ? (
-          <div className="absolute top-0 left-0 w-full max-w-[640px] max-h-[310px] overflow-auto white-scrollbar min-h-[64px] bg-dark-input rounded-lg flex flex-col justify-between cursor-pointer border-2 border-primary-button z-20">
+          <div className="absolute top-0 left-0 w-full max-w-[640px] max-h-[310px] overflow-auto white-scrollbar min-h-[64px] bg-theme-settings-input-bg rounded-lg flex flex-col justify-between cursor-pointer border-2 border-primary-button z-20">
             <div className="w-full flex flex-col gap-y-1">
-              <div className="flex items-center sticky top-0 border-b border-[#9CA3AF] mx-4 bg-dark-input">
+              <div className="flex items-center sticky top-0 border-b border-[#9CA3AF] mx-4 bg-theme-settings-input-bg">
                 <MagnifyingGlass
                   size={20}
                   weight="bold"
-                  className="absolute left-4 z-30 text-white -ml-4 my-2"
+                  className="absolute left-4 z-30 text-theme-text-primary -ml-4 my-2"
                 />
                 <input
                   type="text"
                   name="llm-search"
                   autoComplete="off"
                   placeholder={t("chat.llm.search")}
-                  className="-ml-4 my-2 bg-transparent z-20 pl-12 h-[38px] w-full px-4 py-1 text-sm outline-none focus:outline-primary-button active:outline-primary-button outline-none text-white placeholder:text-white placeholder:font-medium"
+                  className="-ml-4 my-2 bg-transparent z-20 pl-12 h-[38px] w-full px-4 py-1 text-sm outline-none focus:outline-primary-button active:outline-primary-button outline-none text-theme-text-primary placeholder:text-theme-text-primary placeholder:font-medium"
                   onChange={(e) => setSearchQuery(e.target.value)}
                   ref={searchInputRef}
                   onKeyDown={(e) => {
@@ -113,7 +113,7 @@ export default function WorkspaceLLMSelection({
                 <X
                   size={20}
                   weight="bold"
-                  className="cursor-pointer text-white hover:text-x-button"
+                  className="cursor-pointer text-theme-text-primary hover:text-x-button"
                   onClick={handleXButton}
                 />
               </div>
@@ -135,7 +135,7 @@ export default function WorkspaceLLMSelection({
           </div>
         ) : (
           <button
-            className="w-full max-w-[640px] h-[64px] bg-dark-input rounded-lg flex items-center p-[14px] justify-between cursor-pointer border-2 border-transparent hover:border-primary-button transition-all duration-300"
+            className="w-full max-w-[640px] h-[64px] bg-theme-settings-input-bg rounded-lg flex items-center p-[14px] justify-between cursor-pointer border-2 border-transparent hover:border-primary-button transition-all duration-300"
             type="button"
             onClick={() => setSearchMenuOpen(true)}
           >
@@ -215,7 +215,7 @@ function FreeFormLLMInput({ workspace, setHasChanges }) {
         name="chatModel"
         defaultValue={workspace?.chatModel || ""}
         onChange={() => setHasChanges(true)}
-        className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
+        className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
         placeholder="Enter model name exactly as referenced in the API (e.g., gpt-3.5-turbo)"
       />
     </div>
diff --git a/frontend/src/pages/WorkspaceSettings/GeneralAppearance/DeleteWorkspace/index.jsx b/frontend/src/pages/WorkspaceSettings/GeneralAppearance/DeleteWorkspace/index.jsx
index 44c7127ae..0023e3301 100644
--- a/frontend/src/pages/WorkspaceSettings/GeneralAppearance/DeleteWorkspace/index.jsx
+++ b/frontend/src/pages/WorkspaceSettings/GeneralAppearance/DeleteWorkspace/index.jsx
@@ -35,14 +35,14 @@ export default function DeleteWorkspace({ workspace }) {
   return (
     <div className="flex flex-col mt-10">
       <label className="block input-label">{t("general.delete.title")}</label>
-      <p className="text-white text-opacity-60 text-xs font-medium py-1.5">
+      <p className="text-theme-text-secondary text-xs font-medium py-1.5">
         {t("general.delete.description")}
       </p>
       <button
         disabled={deleting}
         onClick={deleteWorkspace}
         type="button"
-        className="w-60 mt-4 transition-all duration-300 border border-transparent rounded-lg whitespace-nowrap text-sm px-5 py-2.5 focus:z-10 bg-red-500/25 text-red-200 hover:text-white hover:bg-red-600 disabled:bg-red-600 disabled:text-red-200 disabled:animate-pulse"
+        className="w-60 mt-4 transition-all duration-300 border border-transparent rounded-lg whitespace-nowrap text-sm px-5 py-2.5 focus:z-10 bg-red-500/25 text-red-200 light:text-red-500 hover:light:text-[#FFFFFF] hover:text-[#FFFFFF] hover:bg-red-600 disabled:bg-red-600 disabled:text-red-200 disabled:animate-pulse"
       >
         {deleting ? t("general.delete.deleting") : t("general.delete.delete")}
       </button>
diff --git a/frontend/src/pages/WorkspaceSettings/GeneralAppearance/SuggestedChatMessages/index.jsx b/frontend/src/pages/WorkspaceSettings/GeneralAppearance/SuggestedChatMessages/index.jsx
index 23fc77c26..5c1201199 100644
--- a/frontend/src/pages/WorkspaceSettings/GeneralAppearance/SuggestedChatMessages/index.jsx
+++ b/frontend/src/pages/WorkspaceSettings/GeneralAppearance/SuggestedChatMessages/index.jsx
@@ -130,7 +130,7 @@ export default function SuggestedChatMessages({ slug }) {
             <button
               key={index}
               onClick={(e) => startEditing(e, index)}
-              className={`text-left p-2.5 border rounded-xl w-full border-white/20 bg-sidebar hover:bg-workspace-item-selected-gradient ${
+              className={`text-left p-2.5 border rounded-xl w-full border-white/20 bg-theme-settings-input-bg hover:bg-theme-sidebar-item-selected-gradient ${
                 editingIndex === index ? "border-sky-400" : ""
               }`}
             >
@@ -148,7 +148,7 @@ export default function SuggestedChatMessages({ slug }) {
             </label>
             <input
               placeholder="Message heading"
-              className=" bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block p-2.5 w-full"
+              className=" bg-theme-settings-input-bg text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block p-2.5 w-full"
               value={newMessage.heading}
               name="heading"
               onChange={onEditChange}
@@ -160,7 +160,7 @@ export default function SuggestedChatMessages({ slug }) {
             </label>
             <input
               placeholder="Message"
-              className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block p-2.5 w-full"
+              className="bg-theme-settings-input-bg text-white placeholder:text-white/20 text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block p-2.5 w-full"
               value={newMessage.message}
               name="message"
               onChange={onEditChange}
diff --git a/frontend/src/pages/WorkspaceSettings/GeneralAppearance/WorkspaceName/index.jsx b/frontend/src/pages/WorkspaceSettings/GeneralAppearance/WorkspaceName/index.jsx
index efa2e9ae8..3afc99410 100644
--- a/frontend/src/pages/WorkspaceSettings/GeneralAppearance/WorkspaceName/index.jsx
+++ b/frontend/src/pages/WorkspaceSettings/GeneralAppearance/WorkspaceName/index.jsx
@@ -18,7 +18,7 @@ export default function WorkspaceName({ workspace, setHasChanges }) {
         minLength={2}
         maxLength={80}
         defaultValue={workspace?.name}
-        className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5"
+        className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
         placeholder="My Workspace"
         required={true}
         autoComplete="off"
diff --git a/frontend/src/pages/WorkspaceSettings/GeneralAppearance/WorkspacePfp/index.jsx b/frontend/src/pages/WorkspaceSettings/GeneralAppearance/WorkspacePfp/index.jsx
index e652c734c..fb62cb57c 100644
--- a/frontend/src/pages/WorkspaceSettings/GeneralAppearance/WorkspacePfp/index.jsx
+++ b/frontend/src/pages/WorkspaceSettings/GeneralAppearance/WorkspacePfp/index.jsx
@@ -55,7 +55,7 @@ export default function WorkspacePfp({ workspace, slug }) {
       </div>
       <div className="flex flex-col md:flex-row items-center gap-8">
         <div className="flex flex-col items-center">
-          <label className="w-36 h-36 flex flex-col items-center justify-center bg-zinc-900/50 transition-all duration-300 rounded-full mt-8 border-2 border-dashed border-white border-opacity-60 cursor-pointer hover:opacity-60">
+          <label className="w-36 h-36 flex flex-col items-center justify-center bg-theme-settings-input-bg transition-all duration-300 rounded-full mt-8 border-2 border-dashed border-white border-opacity-60 cursor-pointer hover:opacity-60">
             <input
               id="workspace-pfp-upload"
               type="file"
@@ -67,15 +67,15 @@ export default function WorkspacePfp({ workspace, slug }) {
               <img
                 src={pfp}
                 alt="User profile picture"
-                className="w-36 h-36 rounded-full object-cover bg-white"
+                className="w-36 h-36 rounded-full object-cover bg-theme-bg-secondary"
               />
             ) : (
               <div className="flex flex-col items-center justify-center p-3">
-                <Plus className="w-8 h-8 text-white/80 m-2" />
-                <span className="text-white text-opacity-80 text-xs font-semibold">
+                <Plus className="w-8 h-8 text-theme-text-secondary m-2" />
+                <span className="text-theme-text-secondary text-opacity-80 text-xs font-semibold">
                   {t("general.pfp.image")}
                 </span>
-                <span className="text-white text-opacity-60 text-xs">
+                <span className="text-theme-text-secondary text-opacity-60 text-xs">
                   800 x 800
                 </span>
               </div>
@@ -85,7 +85,7 @@ export default function WorkspacePfp({ workspace, slug }) {
             <button
               type="button"
               onClick={handleRemovePfp}
-              className="mt-3 text-white text-opacity-60 text-sm font-medium hover:underline"
+              className="mt-3 text-theme-text-secondary text-opacity-60 text-sm font-medium hover:underline"
             >
               {t("general.pfp.remove")}
             </button>
diff --git a/frontend/src/pages/WorkspaceSettings/Members/AddMemberModal/index.jsx b/frontend/src/pages/WorkspaceSettings/Members/AddMemberModal/index.jsx
index a7a48efcd..0d565174d 100644
--- a/frontend/src/pages/WorkspaceSettings/Members/AddMemberModal/index.jsx
+++ b/frontend/src/pages/WorkspaceSettings/Members/AddMemberModal/index.jsx
@@ -61,14 +61,14 @@ export default function AddMemberModal({ closeModal, workspace, users }) {
 
   return (
     <div className="relative w-full max-w-[550px] max-h-full">
-      <div className="relative bg-main-gradient rounded-xl shadow-[0_4px_14px_rgba(0,0,0,0.25)]">
-        <div className="flex items-start justify-between p-4 border-b rounded-t border-gray-500/50">
+      <div className="w-full max-w-2xl bg-theme-bg-secondary rounded-lg shadow border-2 border-theme-modal-border overflow-hidden">
+        <div className="flex items-center justify-between p-6 border-b rounded-t border-theme-modal-border">
           <div className="flex items-center gap-x-4">
             <h3 className="text-base font-semibold text-white">Users</h3>
             <div className="relative">
               <input
                 onChange={handleSearch}
-                className="w-[400px] h-[34px] bg-[#030712] rounded-[100px] text-white placeholder:text-white/50 text-sm px-10 pl-10"
+                className="w-[400px] h-[34px] bg-theme-bg-primary rounded-[100px] text-white placeholder:text-theme-text-secondary text-sm px-10 pl-10"
                 placeholder="Search for a user"
               />
               <MagnifyingGlass
@@ -81,10 +81,10 @@ export default function AddMemberModal({ closeModal, workspace, users }) {
           <button
             onClick={closeModal}
             type="button"
-            className="transition-all duration-300 text-gray-400 bg-transparent hover:border-white/60 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center bg-sidebar-button hover:bg-menu-item-selected-gradient hover:border-slate-100 hover:border-opacity-50 border-transparent border"
+            className="bg-transparent rounded-lg text-sm p-1.5 ml-auto inline-flex items-center bg-sidebar-button hover:bg-theme-modal-border hover:border-theme-modal-border hover:border-opacity-50 border-transparent border"
             data-modal-hide="staticModal"
           >
-            <X className="text-gray-300 text-lg" />
+            <X className="text-white text-lg" />
           </button>
         </div>
         <form onSubmit={handleUpdate}>
@@ -98,22 +98,22 @@ export default function AddMemberModal({ closeModal, workspace, users }) {
                     onClick={() => handleUserSelect(user.id)}
                   >
                     <div
-                      className="shrink-0 w-3 h-3 rounded border-[1px] border-white flex justify-center items-center"
+                      className="shrink-0 w-3 h-3 rounded border-[1px] border-white light:border-black flex justify-center items-center"
                       role="checkbox"
                       aria-checked={isUserSelected(user.id)}
                       tabIndex={0}
                     >
                       {isUserSelected(user.id) && (
-                        <div className="w-2 h-2 bg-white rounded-[2px]" />
+                        <div className="w-2 h-2 bg-white light:bg-black rounded-[2px]" />
                       )}
                     </div>
-                    <p className="text-white text-sm font-medium">
+                    <p className="text-theme-text-primary text-sm font-medium">
                       {user.username}
                     </p>
                   </tr>
                 ))
               ) : (
-                <p className="text-white text-opacity-60 text-sm font-medium ">
+                <p className="text-theme-text-secondary text-sm font-medium ">
                   No users found
                 </p>
               )}
@@ -144,7 +144,7 @@ export default function AddMemberModal({ closeModal, workspace, users }) {
                   onClick={handleUnselect}
                   className="flex items-center gap-x-2 ml-2"
                 >
-                  <p className="text-white/60 text-sm font-medium hover:text-white">
+                  <p className="text-theme-text-secondary text-sm font-medium hover:text-theme-text-primary">
                     Unselect
                   </p>
                 </button>
diff --git a/frontend/src/pages/WorkspaceSettings/Members/WorkspaceMemberRow/index.jsx b/frontend/src/pages/WorkspaceSettings/Members/WorkspaceMemberRow/index.jsx
index 4da5b7c3e..306488ccb 100644
--- a/frontend/src/pages/WorkspaceSettings/Members/WorkspaceMemberRow/index.jsx
+++ b/frontend/src/pages/WorkspaceSettings/Members/WorkspaceMemberRow/index.jsx
@@ -3,7 +3,7 @@ import { titleCase } from "text-case";
 export default function WorkspaceMemberRow({ user }) {
   return (
     <>
-      <tr className="bg-transparent text-white text-opacity-80 text-sm font-medium">
+      <tr className="bg-transparent text-theme-text-primary text-sm font-medium">
         <th scope="row" className="px-6 py-4 whitespace-nowrap">
           {user.username}
         </th>
diff --git a/frontend/src/pages/WorkspaceSettings/Members/index.jsx b/frontend/src/pages/WorkspaceSettings/Members/index.jsx
index 8767ea2da..d7f8bea94 100644
--- a/frontend/src/pages/WorkspaceSettings/Members/index.jsx
+++ b/frontend/src/pages/WorkspaceSettings/Members/index.jsx
@@ -36,8 +36,8 @@ export default function Members({ workspace }) {
       <Skeleton.default
         height="80vh"
         width="100%"
-        highlightColor="#3D4147"
-        baseColor="#2C2F35"
+        highlightColor="var(--theme-bg-primary)"
+        baseColor="var(--theme-bg-secondary)"
         count={1}
         className="w-full p-4 rounded-b-2xl rounded-tr-2xl rounded-tl-sm mt-6"
         containerClassName="flex w-full"
@@ -48,7 +48,7 @@ export default function Members({ workspace }) {
   return (
     <div className="flex justify-between -mt-3">
       <table className="w-full max-w-[700px] text-sm text-left rounded-lg">
-        <thead className="text-white text-opacity-80 text-xs leading-[18px] font-bold uppercase border-white border-b border-opacity-60">
+        <thead className="text-white text-opacity-80 text-xs leading-[18px] font-bold uppercase border-white/10 border-b border-opacity-60">
           <tr>
             <th scope="col" className="px-6 py-3 rounded-tl-lg">
               Username
diff --git a/frontend/src/pages/WorkspaceSettings/VectorDatabase/DocumentSimilarityThreshold/index.jsx b/frontend/src/pages/WorkspaceSettings/VectorDatabase/DocumentSimilarityThreshold/index.jsx
index c14d86bb4..fe4b4a23a 100644
--- a/frontend/src/pages/WorkspaceSettings/VectorDatabase/DocumentSimilarityThreshold/index.jsx
+++ b/frontend/src/pages/WorkspaceSettings/VectorDatabase/DocumentSimilarityThreshold/index.jsx
@@ -18,7 +18,7 @@ export default function DocumentSimilarityThreshold({
       <select
         name="similarityThreshold"
         defaultValue={workspace?.similarityThreshold ?? 0.25}
-        className="bg-zinc-900 text-white text-sm mt-2 rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5"
+        className="bg-theme-settings-input-bg text-white text-sm mt-2 rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
         onChange={() => setHasChanges(true)}
         required={true}
       >
diff --git a/frontend/src/pages/WorkspaceSettings/VectorDatabase/MaxContextSnippets/index.jsx b/frontend/src/pages/WorkspaceSettings/VectorDatabase/MaxContextSnippets/index.jsx
index f1c7a6373..2f2d08e53 100644
--- a/frontend/src/pages/WorkspaceSettings/VectorDatabase/MaxContextSnippets/index.jsx
+++ b/frontend/src/pages/WorkspaceSettings/VectorDatabase/MaxContextSnippets/index.jsx
@@ -22,7 +22,7 @@ export default function MaxContextSnippets({ workspace, setHasChanges }) {
         step={1}
         onWheel={(e) => e.target.blur()}
         defaultValue={workspace?.topN ?? 4}
-        className="bg-zinc-900 text-white placeholder:text-white/20 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 mt-2"
+        className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5 mt-2"
         placeholder="4"
         required={true}
         autoComplete="off"
diff --git a/frontend/src/pages/WorkspaceSettings/VectorDatabase/ResetDatabase/index.jsx b/frontend/src/pages/WorkspaceSettings/VectorDatabase/ResetDatabase/index.jsx
index 44bf12d64..58796ce96 100644
--- a/frontend/src/pages/WorkspaceSettings/VectorDatabase/ResetDatabase/index.jsx
+++ b/frontend/src/pages/WorkspaceSettings/VectorDatabase/ResetDatabase/index.jsx
@@ -38,7 +38,7 @@ export default function ResetDatabase({ workspace }) {
       disabled={deleting}
       onClick={resetVectorDatabase}
       type="button"
-      className="border-none w-fit transition-all duration-300 border border-transparent rounded-lg whitespace-nowrap text-sm px-5 py-2.5 focus:z-10 bg-red-500/25 text-red-200 hover:text-white hover:bg-red-600 disabled:bg-red-600 disabled:text-red-200 disabled:animate-pulse"
+      className="w-60 transition-all duration-300 border border-transparent rounded-lg whitespace-nowrap text-sm px-5 py-2.5 focus:z-10 bg-red-500/25 text-red-200 light:text-red-500 hover:light:text-[#FFFFFF] hover:text-[#FFFFFF] hover:bg-red-600 disabled:bg-red-600 disabled:text-red-200 disabled:animate-pulse"
     >
       {deleting
         ? t("vector-workspace.reset.resetting")
diff --git a/frontend/src/pages/WorkspaceSettings/index.jsx b/frontend/src/pages/WorkspaceSettings/index.jsx
index 888e59566..9d441ae27 100644
--- a/frontend/src/pages/WorkspaceSettings/index.jsx
+++ b/frontend/src/pages/WorkspaceSettings/index.jsx
@@ -73,16 +73,16 @@ function ShowWorkspaceChat() {
 
   const TabContent = TABS[tab];
   return (
-    <div className="w-screen h-screen overflow-hidden bg-sidebar flex">
+    <div className="w-screen h-screen overflow-hidden bg-theme-bg-container flex">
       {!isMobile && <Sidebar />}
       <div
         style={{ height: isMobile ? "100%" : "calc(100% - 32px)" }}
-        className="transition-all duration-500 relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-main-gradient w-full h-full overflow-y-scroll border-2 border-outline"
+        className="transition-all duration-500 relative md:ml-[2px] md:mr-[16px] md:my-[16px] md:rounded-[16px] bg-theme-bg-secondary w-full h-full overflow-y-scroll"
       >
         <div className="flex gap-x-10 pt-6 pb-4 ml-16 mr-8 border-b-2 border-white border-opacity-10">
           <Link
             to={paths.workspace.chat(slug)}
-            className="absolute top-2 left-2 md:top-4 md:left-4 transition-all duration-300 p-2 rounded-full text-white bg-sidebar-button hover:bg-menu-item-selected-gradient hover:border-slate-100 hover:border-opacity-50 border-transparent border z-10"
+            className="absolute top-2 left-2 md:top-4 md:left-4 transition-all duration-300 p-2 rounded-full text-white bg-theme-sidebar-footer-icon hover:bg-theme-sidebar-footer-icon-hover z-10"
           >
             <ArrowUUpLeft className="h-5 w-5" weight="fill" />
           </Link>
diff --git a/frontend/src/utils/chat/markdown.js b/frontend/src/utils/chat/markdown.js
index 17b5acbb8..f284e9b67 100644
--- a/frontend/src/utils/chat/markdown.js
+++ b/frontend/src/utils/chat/markdown.js
@@ -13,7 +13,7 @@ const markdown = markdownIt({
     if (lang && hljs.getLanguage(lang)) {
       try {
         return (
-          `<div class="whitespace-pre-line w-full rounded-lg bg-black-900 px-4 pb-4 relative font-mono font-normal text-sm text-slate-200">
+          `<div class="whitespace-pre-line w-full rounded-lg bg-black-900 px-4 pb-4 relative font-mono font-normal text-sm text-slate-200 light:invert">
             <div class="w-full flex items-center absolute top-0 left-0 text-slate-200 bg-stone-800 px-4 py-2 text-xs font-sans justify-between rounded-t-md">
               <div class="flex gap-2">
                 <code class="text-xs">${lang || ""}</code>
@@ -31,7 +31,7 @@ const markdown = markdownIt({
     }
 
     return (
-      `<div class="whitespace-pre-line w-full rounded-lg bg-black-900 px-4 pb-4 relative font-mono font-normal text-sm text-slate-200">
+      `<div class="whitespace-pre-line w-full rounded-lg bg-black-900 px-4 pb-4 relative font-mono font-normal text-sm text-slate-200 light:invert">
         <div class="w-full flex items-center absolute top-0 left-0 text-slate-200 bg-stone-800 px-4 py-2 text-xs font-sans justify-between rounded-t-md">
           <div class="flex gap-2"><code class="text-xs"></code></div>
           <button data-code-snippet data-code="code-${uuid}" class="flex items-center gap-x-2">
@@ -46,6 +46,10 @@ const markdown = markdownIt({
   },
 });
 
+// Add custom renderer for strong tags to handle theme colors
+markdown.renderer.rules.strong_open = () => '<strong class="text-white">';
+markdown.renderer.rules.strong_close = () => "</strong>";
+
 // Custom renderer for responsive images rendered in markdown
 markdown.renderer.rules.image = function (tokens, idx) {
   const token = tokens[idx];
diff --git a/frontend/src/utils/constants.js b/frontend/src/utils/constants.js
index f15634df3..6333ef8bf 100644
--- a/frontend/src/utils/constants.js
+++ b/frontend/src/utils/constants.js
@@ -8,8 +8,6 @@ export const COMPLETE_QUESTIONNAIRE = "anythingllm_completed_questionnaire";
 export const SEEN_DOC_PIN_ALERT = "anythingllm_pinned_document_alert";
 export const SEEN_WATCH_ALERT = "anythingllm_watched_document_alert";
 
-export const USER_BACKGROUND_COLOR = "bg-historical-msg-user";
-export const AI_BACKGROUND_COLOR = "bg-historical-msg-system";
 export const APPEARANCE_SETTINGS = "anythingllm_appearance_settings";
 
 export const OLLAMA_COMMON_URLS = [
diff --git a/frontend/src/utils/toast.js b/frontend/src/utils/toast.js
index 5ce17d5ae..7647c27b2 100644
--- a/frontend/src/utils/toast.js
+++ b/frontend/src/utils/toast.js
@@ -1,11 +1,10 @@
 import { toast } from "react-toastify";
-import usePrefersDarkMode from "@/hooks/usePrefersDarkMode";
 
 // Additional Configs (opts)
 // You can also pass valid ReactToast params to override the defaults.
 // clear: false, // Will dismiss all visible toasts before rendering next toast
 const showToast = (message, type = "default", opts = {}) => {
-  const prefersDarkMode = usePrefersDarkMode();
+  const theme = localStorage?.getItem("theme") || "default";
   const options = {
     position: "bottom-center",
     autoClose: 5000,
@@ -13,7 +12,7 @@ const showToast = (message, type = "default", opts = {}) => {
     closeOnClick: true,
     pauseOnHover: true,
     draggable: true,
-    theme: prefersDarkMode ? "dark" : "light",
+    theme: theme === "default" ? "dark" : "light",
     ...opts,
   };
 
diff --git a/frontend/tailwind.config.js b/frontend/tailwind.config.js
index 1ef8e56d9..958c50452 100644
--- a/frontend/tailwind.config.js
+++ b/frontend/tailwind.config.js
@@ -1,6 +1,6 @@
 /** @type {import('tailwindcss').Config} */
 export default {
-  darkMode: "false",
+  darkMode: "class",
   content: {
     relative: true,
     files: [
@@ -43,7 +43,61 @@ export default {
         error: "#B42318",
         warn: "#854708",
         success: "#05603A",
-        darker: "#F4F4F4"
+        darker: "#F4F4F4",
+
+        // Generic theme colors
+        theme: {
+          bg: {
+            primary: 'var(--theme-bg-primary)',
+            secondary: 'var(--theme-bg-secondary)',
+            sidebar: 'var(--theme-bg-sidebar)',
+            container: 'var(--theme-bg-container)',
+            chat: 'var(--theme-bg-chat)',
+            "chat-input": 'var(--theme-bg-chat-input)',
+          },
+          text: {
+            primary: 'var(--theme-text-primary)',
+            secondary: 'var(--theme-text-secondary)',
+          },
+          sidebar: {
+            item: {
+              default: 'var(--theme-sidebar-item-default)',
+              selected: 'var(--theme-sidebar-item-selected)',
+              hover: 'var(--theme-sidebar-item-hover)',
+            },
+            subitem: {
+              default: 'var(--theme-sidebar-subitem-default)',
+              selected: 'var(--theme-sidebar-subitem-selected)',
+              hover: 'var(--theme-sidebar-subitem-hover)',
+            },
+            footer: {
+              icon: 'var(--theme-sidebar-footer-icon)',
+              'icon-hover': 'var(--theme-sidebar-footer-icon-hover)',
+            },
+            border: 'var(--theme-sidebar-border)',
+          },
+          "chat-input": {
+            border: 'var(--theme-chat-input-border)',
+          },
+          "action-menu": {
+            bg: 'var(--theme-action-menu-bg)',
+            "item-hover": 'var(--theme-action-menu-item-hover)',
+          },
+          settings: {
+            input: {
+              bg: 'var(--theme-settings-input-bg)',
+              active: 'var(--theme-settings-input-active)',
+              placeholder: 'var(--theme-settings-input-placeholder)',
+              text: 'var(--theme-settings-input-text)',
+            }
+          },
+          modal: {
+            border: 'var(--theme-modal-border)',
+          },
+          "file-picker": {
+            hover: 'var(--theme-file-picker-hover)',
+          }
+        },
       },
       backgroundImage: {
         "preference-gradient":
@@ -125,6 +179,12 @@ export default {
       }
     }
   },
+  variants: {
+    extend: {
+      backgroundColor: ['light'],
+      textColor: ['light'],
+    }
+  },
   // Required for rechart styles to show since they can be rendered dynamically and will be tree-shaken if not safe-listed.
   safelist: [
     {
@@ -155,5 +215,9 @@ export default {
         /^(fill-(?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(?:50|100|200|300|400|500|600|700|800|900|950))$/
     }
   ],
-  plugins: []
+  plugins: [
+    function ({ addVariant }) {
+      addVariant('light', '.light &') // Add the `light:` variant
+    },
+  ]
 }
diff --git a/server/endpoints/system.js b/server/endpoints/system.js
index 6da117ff2..9924ec694 100644
--- a/server/endpoints/system.js
+++ b/server/endpoints/system.js
@@ -27,6 +27,7 @@ const {
   renameLogoFile,
   removeCustomLogo,
   LOGO_FILENAME,
+  isDefaultFilename,
 } = require("../utils/files/logo");
 const { Telemetry } = require("../models/telemetry");
 const { WelcomeMessages } = require("../models/welcomeMessages");
@@ -574,9 +575,11 @@ function systemEndpoints(app) {
     }
   });
 
-  app.get("/system/logo", async function (_, response) {
+  app.get("/system/logo", async function (request, response) {
     try {
-      const defaultFilename = getDefaultFilename();
+      const darkMode =
+        !request?.query?.theme || request?.query?.theme === "default";
+      const defaultFilename = getDefaultFilename(darkMode);
       const logoPath = await determineLogoFilepath(defaultFilename);
       const { found, buffer, size, mime } = fetchLogo(logoPath);
 
@@ -596,7 +599,8 @@ function systemEndpoints(app) {
         "Content-Length": size,
         "X-Is-Custom-Logo":
           currentLogoFilename !== null &&
-          currentLogoFilename !== defaultFilename,
+          currentLogoFilename !== defaultFilename &&
+          !isDefaultFilename(currentLogoFilename),
       });
       response.end(Buffer.from(buffer, "base64"));
       return;
diff --git a/server/utils/files/logo.js b/server/utils/files/logo.js
index 3b861bc0e..19ac506c1 100644
--- a/server/utils/files/logo.js
+++ b/server/utils/files/logo.js
@@ -5,13 +5,29 @@ const { v4 } = require("uuid");
 const { SystemSettings } = require("../../models/systemSettings");
 const { normalizePath, isWithin } = require(".");
 const LOGO_FILENAME = "anything-llm.png";
+const LOGO_FILENAME_DARK = "anything-llm-dark.png";
 
-function validFilename(newFilename = "") {
-  return ![LOGO_FILENAME].includes(newFilename);
+/**
+ * Checks if the filename is the default logo filename for dark or light mode.
+ * @param {string} filename - The filename to check.
+ * @returns {boolean} Whether the filename is the default logo filename.
+ */
+function isDefaultFilename(filename) {
+  return [LOGO_FILENAME, LOGO_FILENAME_DARK].includes(filename);
 }
 
-function getDefaultFilename() {
-  return LOGO_FILENAME;
+function validFilename(newFilename = "") {
+  return !isDefaultFilename(newFilename);
+}
+
+/**
+ * Shows the logo for the current theme. In dark mode, it shows the light logo
+ * and vice versa.
+ * @param {boolean} darkMode - Whether the logo should be for dark mode.
+ * @returns {string} The filename of the logo.
+ */
+function getDefaultFilename(darkMode = true) {
+  return darkMode ? LOGO_FILENAME : LOGO_FILENAME_DARK;
 }
 
 async function determineLogoFilepath(defaultFilename = LOGO_FILENAME) {
@@ -93,5 +109,6 @@ module.exports = {
   validFilename,
   getDefaultFilename,
   determineLogoFilepath,
+  isDefaultFilename,
   LOGO_FILENAME,
 };