diff --git a/backend/app/core/config.py b/backend/app/core/config.py
index 659dc40..d280577 100644
--- a/backend/app/core/config.py
+++ b/backend/app/core/config.py
@@ -6,7 +6,7 @@ from pydantic_settings import BaseSettings, SettingsConfigDict
# Single source of truth for the running app's version — surfaced in the API
# title and embedded in exported backups so an old file can be told apart
# from a current one.
-APP_VERSION = "0.19.0"
+APP_VERSION = "0.19.1"
class Settings(BaseSettings):
diff --git a/frontend/package.json b/frontend/package.json
index a13d3ce..b789c67 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -1,7 +1,7 @@
{
"name": "aurum-frontend",
"private": true,
- "version": "0.19.0",
+ "version": "0.19.1",
"type": "module",
"scripts": {
"dev": "vite",
diff --git a/frontend/src/components/settings/LanguageCard.tsx b/frontend/src/components/settings/LanguageCard.tsx
deleted file mode 100644
index f3e9647..0000000
--- a/frontend/src/components/settings/LanguageCard.tsx
+++ /dev/null
@@ -1,23 +0,0 @@
-import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/Card";
-import { PillSelector } from "@/components/layout/PillSelector";
-import { useTranslation, type Language } from "@/lib/i18n";
-
-export function LanguageCard() {
- const { t, language, setLanguage } = useTranslation();
-
- const options: Array<{ value: Language; label: string }> = [
- { value: "ru", label: t("settings.languageRussian") },
- { value: "en", label: t("settings.languageEnglish") },
- ];
-
- return (
-
-
- {t("settings.language")}
-
-
-
-
-
- );
-}
diff --git a/frontend/src/components/settings/PreferencesCard.tsx b/frontend/src/components/settings/PreferencesCard.tsx
new file mode 100644
index 0000000..96d1e9e
--- /dev/null
+++ b/frontend/src/components/settings/PreferencesCard.tsx
@@ -0,0 +1,42 @@
+import { Card, CardContent } from "@/components/ui/Card";
+import { PillSelector } from "@/components/layout/PillSelector";
+import { useTranslation, type Language } from "@/lib/i18n";
+import { useTheme, type Theme } from "@/lib/theme";
+
+/** Language and theme side by side — both are pure client-side display
+ * preferences (unlike currency, which is server-persisted), so pairing
+ * them saves a whole card's worth of vertical space over listing each on
+ * its own. Stacks back to one column on mobile. */
+export function PreferencesCard() {
+ const { t, language, setLanguage } = useTranslation();
+ const { theme, setTheme } = useTheme();
+
+ const languageOptions: Array<{ value: Language; label: string }> = [
+ { value: "ru", label: t("settings.languageRussian") },
+ { value: "en", label: t("settings.languageEnglish") },
+ ];
+ const themeOptions: Array<{ value: Theme; label: string }> = [
+ { value: "light", label: t("settings.themeLight") },
+ { value: "dark", label: t("settings.themeDark") },
+ { value: "system", label: t("settings.themeSystem") },
+ ];
+
+ return (
+
+
+
+
{t("settings.language")}
+
+
+
+
{t("settings.theme")}
+
+
+
+
+ );
+}
diff --git a/frontend/src/components/settings/ThemeCard.tsx b/frontend/src/components/settings/ThemeCard.tsx
deleted file mode 100644
index 9a127f8..0000000
--- a/frontend/src/components/settings/ThemeCard.tsx
+++ /dev/null
@@ -1,26 +0,0 @@
-import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/Card";
-import { PillSelector } from "@/components/layout/PillSelector";
-import { useTranslation } from "@/lib/i18n";
-import { useTheme, type Theme } from "@/lib/theme";
-
-export function ThemeCard() {
- const { t } = useTranslation();
- const { theme, setTheme } = useTheme();
-
- const options: Array<{ value: Theme; label: string }> = [
- { value: "light", label: t("settings.themeLight") },
- { value: "dark", label: t("settings.themeDark") },
- { value: "system", label: t("settings.themeSystem") },
- ];
-
- return (
-
-
- {t("settings.theme")}
-
-
-
-
-
- );
-}
diff --git a/frontend/src/pages/SettingsPage.tsx b/frontend/src/pages/SettingsPage.tsx
index b5e11e7..16255ae 100644
--- a/frontend/src/pages/SettingsPage.tsx
+++ b/frontend/src/pages/SettingsPage.tsx
@@ -1,14 +1,12 @@
import { AlertThresholdsCard } from "@/components/settings/AlertThresholdsCard";
import { BackupCard } from "@/components/settings/BackupCard";
import { CurrencyCard } from "@/components/settings/CurrencyCard";
-import { LanguageCard } from "@/components/settings/LanguageCard";
-import { ThemeCard } from "@/components/settings/ThemeCard";
+import { PreferencesCard } from "@/components/settings/PreferencesCard";
export function SettingsPage() {
return (