diff --git a/public/iframe-example.html b/public/iframe-example.html
new file mode 100644
index 0000000..d72fe91
--- /dev/null
+++ b/public/iframe-example.html
@@ -0,0 +1,97 @@
+
+
+
+
+
+
SSVC Rimsting Abstimmung - Iframe Beispiel
+
Diese Seite zeigt, wie die Abstimmungskomponente als Iframe in eine externe Webseite eingebunden werden kann.
+
+
+
Live Beispiel
+
+
+
+
+
HTML Code zum Einbinden
+
+ <iframe
+ src="https://ihre-domain.de/iframe"
+ width="100%"
+ height="600"
+ frameborder="0"
+ style="border:none;"
+ title="SSVC Rimsting Abstimmung">
+ </iframe>
+
+
+
+ Hinweis: Ersetzen Sie "https://ihre-domain.de/iframe" mit der tatsächlichen URL Ihrer
+ Abstimmungsseite.
+
+ Sie können auch einen Token direkt in der URL übergeben, um den Login-Schritt zu überspringen:
+
+ https://ihre-domain.de/iframe?token=IHR_TOKEN
+
+
+
+
+
\ No newline at end of file
diff --git a/src/app/abstimmung/page.tsx b/src/app/(full)/abstimmung/page.tsx
similarity index 100%
rename from src/app/abstimmung/page.tsx
rename to src/app/(full)/abstimmung/page.tsx
diff --git a/src/app/admin/page.tsx b/src/app/(full)/admin/page.tsx
similarity index 100%
rename from src/app/admin/page.tsx
rename to src/app/(full)/admin/page.tsx
diff --git a/src/app/api/editable-text/route.ts b/src/app/(full)/api/editable-text/route.ts
similarity index 100%
rename from src/app/api/editable-text/route.ts
rename to src/app/(full)/api/editable-text/route.ts
diff --git a/src/app/api/generate-bulk-tokens/route.ts b/src/app/(full)/api/generate-bulk-tokens/route.ts
similarity index 100%
rename from src/app/api/generate-bulk-tokens/route.ts
rename to src/app/(full)/api/generate-bulk-tokens/route.ts
diff --git a/src/app/api/generate-token/route.ts b/src/app/(full)/api/generate-token/route.ts
similarity index 100%
rename from src/app/api/generate-token/route.ts
rename to src/app/(full)/api/generate-token/route.ts
diff --git a/src/app/api/member-login/route.ts b/src/app/(full)/api/member-login/route.ts
similarity index 100%
rename from src/app/api/member-login/route.ts
rename to src/app/(full)/api/member-login/route.ts
diff --git a/src/app/api/members/route.ts b/src/app/(full)/api/members/route.ts
similarity index 100%
rename from src/app/api/members/route.ts
rename to src/app/(full)/api/members/route.ts
diff --git a/src/app/api/public-stats/route.ts b/src/app/(full)/api/public-stats/route.ts
similarity index 100%
rename from src/app/api/public-stats/route.ts
rename to src/app/(full)/api/public-stats/route.ts
diff --git a/src/app/api/reset-votes/route.ts b/src/app/(full)/api/reset-votes/route.ts
similarity index 100%
rename from src/app/api/reset-votes/route.ts
rename to src/app/(full)/api/reset-votes/route.ts
diff --git a/src/app/api/settings/route.ts b/src/app/(full)/api/settings/route.ts
similarity index 100%
rename from src/app/api/settings/route.ts
rename to src/app/(full)/api/settings/route.ts
diff --git a/src/app/api/stats/route.ts b/src/app/(full)/api/stats/route.ts
similarity index 100%
rename from src/app/api/stats/route.ts
rename to src/app/(full)/api/stats/route.ts
diff --git a/src/app/api/submit-vote/route.ts b/src/app/(full)/api/submit-vote/route.ts
similarity index 100%
rename from src/app/api/submit-vote/route.ts
rename to src/app/(full)/api/submit-vote/route.ts
diff --git a/src/app/api/toggle-member-auth/route.ts b/src/app/(full)/api/toggle-member-auth/route.ts
similarity index 100%
rename from src/app/api/toggle-member-auth/route.ts
rename to src/app/(full)/api/toggle-member-auth/route.ts
diff --git a/src/app/api/upload-members/route.ts b/src/app/(full)/api/upload-members/route.ts
similarity index 100%
rename from src/app/api/upload-members/route.ts
rename to src/app/(full)/api/upload-members/route.ts
diff --git a/src/app/layout.tsx b/src/app/(full)/layout.tsx
similarity index 99%
rename from src/app/layout.tsx
rename to src/app/(full)/layout.tsx
index 368c5f3..62611eb 100644
--- a/src/app/layout.tsx
+++ b/src/app/(full)/layout.tsx
@@ -1,7 +1,7 @@
import type { Metadata } from "next";
import { Geist, Geist_Mono } from "next/font/google";
import Link from "next/link";
-import "./globals.css";
+import "../globals.css";
const geistSans = Geist({
variable: "--font-geist-sans",
diff --git a/src/app/login/page.tsx b/src/app/(full)/login/page.tsx
similarity index 100%
rename from src/app/login/page.tsx
rename to src/app/(full)/login/page.tsx
diff --git a/src/app/page.tsx b/src/app/(full)/page.tsx
similarity index 100%
rename from src/app/page.tsx
rename to src/app/(full)/page.tsx
diff --git a/src/app/vote/page.tsx b/src/app/(full)/vote/page.tsx
similarity index 100%
rename from src/app/vote/page.tsx
rename to src/app/(full)/vote/page.tsx
diff --git a/src/app/(iframe)/iframe/layout.tsx b/src/app/(iframe)/iframe/layout.tsx
new file mode 100644
index 0000000..210b096
--- /dev/null
+++ b/src/app/(iframe)/iframe/layout.tsx
@@ -0,0 +1,23 @@
+
+import { ReactNode } from 'react';
+import '@/app/globals.css';
+import type { Metadata } from 'next';
+
+// Define metadata for the iframe page
+export const metadata: Metadata = {
+ title: 'SSVC Rimsting Abstimmung',
+ description: 'Abstimmungsseite des Schafwaschener Segelverein Rimsting',
+};
+
+// This is a minimal layout for iframe embedding without headers or footers
+export default function IframeLayout({ children }: { children: ReactNode }) {
+ return (
+
+
+