diff --git a/src/lib/cookies.ts b/src/lib/cookies.ts
new file mode 100644
index 0000000..3d8289c
--- /dev/null
+++ b/src/lib/cookies.ts
@@ -0,0 +1,13 @@
+import { browser } from '$app/environment';
+
+export function setCookie(name: string, value: string, days = 7) {
+  if (browser) {
+    document.cookie = `${name}=${value}; path=/; max-age=${days * 86400}`;
+  }
+}
+
+export function deleteCookie(name: string) {
+  if (browser) {
+    document.cookie = `${name}=; path=/; max-age=0`;
+  }
+}
diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte
index 4ab868c..5f92a7b 100644
--- a/src/routes/+layout.svelte
+++ b/src/routes/+layout.svelte
@@ -1,37 +1,72 @@
 <script lang="ts">
-	import '../app.css';
-	let { children } = $props();
-	
-    let username = $state('klaas');
-    let editMode = $state(false);
+  import { onMount } from 'svelte';
+  import { page } from '$app/stores';
+  import { goto } from '$app/navigation';
+  import type { PageData } from './$types';
+  import { setCookie, deleteCookie } from '$lib/cookies';
+
+  let { children } = $props();
+
+  let username = $state('');
+  let password = $state('');
+
+  async function login() {
+    console.log("Login");
+    const res = await fetch('http://localhost:2001/1/user/login', {
+      method: 'POST',
+      headers: { 'Content-Type': 'application/json' },
+      body: JSON.stringify({ username, password }),
+    });
+    const data = await res.json();
+
+    if (res.ok) {
+      // Token & Rollen speichern (Cookie)
+      setCookie('token', data.token);
+      setCookie('roles', JSON.stringify(data.roles));
+      setCookie('username', username);
+    location.reload(); // <---- wichtig!
+    } else {
+      alert('Login fehlgeschlagen');
+    }
+  }
+
+  function logout() {
+    deleteCookie('token');
+    deleteCookie('roles');
+    deleteCookie('username');
+    goto('/');
+  }
 </script>
 
-{#snippet userInput(exampleString:string)}
-    <h1> Your Username</h1>
-    {#if editMode}
-        <input type="text" bind:value={username} />
+<header class="flex justify-between p-4 bg-gray-800 text-white">
+  <div>
+    <a href="/" class="mr-4">Home</a>
+    {#if token}
+      <a href="/training" class="mr-4">Spiele</a>  
+      <a href="/spiele" class="mr-4">Spiele</a>
     {:else}
-    <p>{username}</p>
+      <a href="/spiele" class="mr-4">Spiele</a>
+      <a href="/registrieren" class="mr-4">Registrieren</a>
     {/if}
+  </div>
 
-{/snippet}
+  <div>
+    {#if !token}
+      <form onsubmit={login}>
+        <input bind:value={username} placeholder="Benutzername" class="mr-2" />
+        <input type="password" bind:value={password} placeholder="Passwort" class="mr-2" />
+        <button>Login</button>
+      </form>
+    {:else}
+      <button onclick={logout}>Logout</button>
+    {/if}
+  </div>
+</header>
 
-{@render userInput("Klaas")}
-<br />
-<button onclick={()=>{
-    editMode = !editMode;
-}}>
-{editMode ? "save Changes" : "Edit username"}</button>
+<main class="p-4">
+  {@render children()}
+</main>
 
-<br />
-<a href="/training/2025/24">click</a>
-
-<h1>Root</h1>
-{@render children()}
-
-
-<style>
-	h1{
-		color:blue;
-	}
-</style>
\ No newline at end of file
+<footer class="p-4 bg-gray-800 text-white text-center">
+  © 2025 Dein Verein
+</footer>
\ No newline at end of file
diff --git a/src/routes/+page.server.ts b/src/routes/+page.server.ts
new file mode 100644
index 0000000..b2e3429
--- /dev/null
+++ b/src/routes/+page.server.ts
@@ -0,0 +1,10 @@
+export function load ({ cookies }) {
+    const token = cookies.get('token');
+    const username = cookies.get('username');
+    const roles = cookies.get('rols');
+  return {
+    token, 
+    username, 
+    roles
+  };
+}
\ No newline at end of file
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte
index 2e97145..18dce7f 100644
--- a/src/routes/+page.svelte
+++ b/src/routes/+page.svelte
@@ -1,31 +1,7 @@
 <script lang="ts">
-    let username = $state('klaas');
-    let editMode = $state(false);
-    let data = $props();
+
 </script>
 
-{#snippet userInput(exampleString:string)}
-    <h1> Your Username</h1>
-    {#if editMode}
-        <input type="text" bind:value={username} />
-    {:else}
-    <p>{username}</p>
-    {/if}
-
-{/snippet}
-
-{@render userInput("Klaas")}
-<br />
-<button onclick={()=>{
-    editMode = !editMode;
-}}>
-{editMode ? "save Changes" : "Edit username"}</button>
-
-<br />
-<a href="/training/2025/24">click</a>
-
-
-
 <style>
 
 </style>
diff --git a/src/routes/training/[jahr]/+layout.svelte b/src/routes/training/[jahr]/+layout.svelte
index 21d9c0c..e69de29 100644
--- a/src/routes/training/[jahr]/+layout.svelte
+++ b/src/routes/training/[jahr]/+layout.svelte
@@ -1,13 +0,0 @@
-<script lang="ts">
-	let { children } = $props();
-	
-</script>
-
-<h1>layer 2</h1>
-    
-{@render children()}
-<style>
-h1{
-    color:green;
-}
-</style>
\ No newline at end of file