diff --git a/frontend/src/lib/components/Modal.svelte b/frontend/src/lib/components/Modal.svelte
new file mode 100644
index 0000000..c30fc70
--- /dev/null
+++ b/frontend/src/lib/components/Modal.svelte
@@ -0,0 +1,24 @@
+
+
+{#if open}
+
+
+
+
e.stopPropagation()}>
+
+
{title}
+
+
+ {@render children()}
+
+
+{/if}
diff --git a/frontend/src/routes/+layout.svelte b/frontend/src/routes/+layout.svelte
index d68efd7..0dd079a 100644
--- a/frontend/src/routes/+layout.svelte
+++ b/frontend/src/routes/+layout.svelte
@@ -7,6 +7,7 @@
import { getAuth, loadUser, logout } from '$lib/auth.svelte';
import { t, initLocale, getLocale, setLocale, type Locale } from '$lib/i18n';
import { getTheme, initTheme, setTheme, type Theme } from '$lib/theme.svelte';
+ import Modal from '$lib/components/Modal.svelte';
let { children } = $props();
const auth = getAuth();
@@ -173,22 +174,10 @@
{tt('nav.logout')}
-