MotorSignal-App/website/app/forgot-password/page.tsx

38 lines
1.7 KiB
TypeScript

import { RecoveryForm } from '../../components/recovery-form';
export default async function ForgotPasswordPage({
searchParams,
}: {
searchParams: Promise<{ token?: string | string[] }>;
}) {
const { token } = await searchParams;
const initialToken = typeof token === 'string' ? token : '';
return (
<div className="min-h-[calc(100vh-80px)] pt-20 pb-16 px-4 flex items-center justify-center bg-[#070a0f] relative overflow-hidden">
{/* Ambient background glow */}
<div className="absolute top-1/4 left-1/2 -translate-x-1/2 w-96 h-96 bg-[#00f2fe]/10 rounded-full blur-3xl pointer-events-none"></div>
<div className="w-full max-w-[480px] relative z-10">
<div className="text-center mb-8 space-y-2">
<div className="inline-flex items-center gap-1.5 px-3 py-1 rounded-full bg-[#181c24] border border-[#3a494b]/40 text-[11px] font-mono tracking-wide text-[#00dce6]">
<span className="w-1.5 h-1.5 rounded-full bg-[#00f2fe] animate-pulse"></span>
Cryptographic Recovery Channel
</div>
<h1 className="text-3xl font-extrabold text-white tracking-tight font-mono">
ACCOUNT ACCESS
</h1>
<p className="text-xs sm:text-sm text-[#b9cacb] max-w-xs mx-auto">
Zero-knowledge cryptographic reset for your MotorSignal rider identity.
</p>
</div>
<div className="glass-card rounded-2xl border border-[#3a494b]/50 p-6 sm:p-8 shadow-2xl backdrop-blur-xl relative overflow-hidden bg-[#0d131f]/95">
<div className="absolute top-0 left-0 right-0 h-1 bg-gradient-to-r from-[#00f2fe] via-[#00dce6] to-transparent"></div>
<RecoveryForm key={initialToken} initialToken={initialToken} />
</div>
</div>
</div>
);
}