37 lines
1.5 KiB
React
37 lines
1.5 KiB
React
import "./globals.css";
|
|
import ThemeToggle from "@/components/theme-toggle";
|
|
import LogoutButton from "@/components/logout-button";
|
|
import LegalNavigation from "@/components/legal-navigation";
|
|
|
|
export const metadata = {
|
|
title: "Confidence Engine",
|
|
description: "Experimental evidence-based situation reconstruction prototype",
|
|
};
|
|
|
|
export default function RootLayout({ children }) {
|
|
return (
|
|
<html lang="en">
|
|
<body className="min-h-screen bg-gray-50 text-gray-900">
|
|
<script
|
|
dangerouslySetInnerHTML={{
|
|
__html: `try { const saved = localStorage.getItem('confidence-engine-theme'); const theme = saved === 'dark' || saved === 'light' ? saved : (matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'); document.documentElement.dataset.theme = theme; document.documentElement.style.colorScheme = theme; } catch (_) {}`,
|
|
}}
|
|
/>
|
|
<header className="app-chrome border-b border-gray-200/80">
|
|
<div className="mx-auto flex max-w-[1600px] items-center justify-between px-6 py-3">
|
|
<span className="text-sm font-semibold tracking-wide text-teal-700">Confidence Engine</span>
|
|
<div className="flex items-center gap-2">
|
|
<ThemeToggle />
|
|
<LogoutButton />
|
|
</div>
|
|
</div>
|
|
</header>
|
|
{children}
|
|
<footer className="app-chrome border-t border-gray-200/80 px-6 py-5">
|
|
<LegalNavigation />
|
|
</footer>
|
|
</body>
|
|
</html>
|
|
);
|
|
}
|