2026-01-30 13:41:32 +01:00
|
|
|
import Link from 'next/link'
|
2026-02-05 20:31:08 +01:00
|
|
|
import Image from 'next/image'
|
2026-01-30 13:41:32 +01:00
|
|
|
import { Button } from '@/components/ui/button'
|
|
|
|
|
|
|
|
|
|
export default function NotFound() {
|
|
|
|
|
return (
|
2026-02-05 20:31:08 +01:00
|
|
|
<div className="flex min-h-screen flex-col bg-background">
|
|
|
|
|
{/* Header */}
|
|
|
|
|
<header className="border-b border-border bg-white">
|
|
|
|
|
<div className="container-app flex h-16 items-center">
|
|
|
|
|
<Link href="/">
|
|
|
|
|
<Image
|
|
|
|
|
src="/images/MOPC-blue-long.png"
|
|
|
|
|
alt="MOPC - Monaco Ocean Protection Challenge"
|
|
|
|
|
width={140}
|
|
|
|
|
height={45}
|
|
|
|
|
className="h-10 w-auto"
|
|
|
|
|
priority
|
|
|
|
|
/>
|
|
|
|
|
</Link>
|
|
|
|
|
</div>
|
|
|
|
|
</header>
|
|
|
|
|
|
|
|
|
|
{/* Content */}
|
|
|
|
|
<main className="flex flex-1 flex-col items-center justify-center px-4 py-16 text-center">
|
|
|
|
|
<p className="text-[8rem] font-bold leading-none tracking-tight text-brand-blue/10 sm:text-[12rem]">
|
|
|
|
|
404
|
|
|
|
|
</p>
|
|
|
|
|
<h1 className="-mt-4 text-display font-bold text-brand-blue sm:-mt-8">
|
|
|
|
|
Page Not Found
|
|
|
|
|
</h1>
|
|
|
|
|
<p className="mt-4 max-w-md text-body text-muted-foreground">
|
|
|
|
|
The page you're looking for doesn't exist or has been moved.
|
|
|
|
|
</p>
|
|
|
|
|
<div className="mt-8">
|
|
|
|
|
<Button asChild size="lg">
|
|
|
|
|
<Link href="/">Return to Dashboard</Link>
|
|
|
|
|
</Button>
|
|
|
|
|
</div>
|
|
|
|
|
</main>
|
|
|
|
|
|
|
|
|
|
{/* Footer */}
|
|
|
|
|
<footer className="border-t border-border bg-brand-blue py-6 text-white">
|
|
|
|
|
<div className="container-app text-center">
|
|
|
|
|
<p className="text-small">
|
|
|
|
|
© {new Date().getFullYear()} Monaco Ocean Protection Challenge.
|
|
|
|
|
All rights reserved.
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
</footer>
|
2026-01-30 13:41:32 +01:00
|
|
|
</div>
|
|
|
|
|
)
|
|
|
|
|
}
|