'use client' import { useState } from 'react' import { useRouter } from 'next/navigation' export default function AdminLoginPage() { const router = useRouter() const [email, setEmail] = useState('') const [password, setPassword] = useState('') const [error, setError] = useState('') const [submitting, setSubmitting] = useState(false) async function handleSubmit(e: React.FormEvent) { e.preventDefault() setError('') setSubmitting(true) try { const res = await fetch('/api/admin-auth/login', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ email, password }), }) if (res.ok) { router.push('/pitch-admin') router.refresh() } else { const data = await res.json().catch(() => ({})) setError(data.error || 'Login failed') } } catch { setError('Network error') } finally { setSubmitting(false) } } return (

Pitch Admin

BreakPilot ComplAI

setEmail(e.target.value)} autoComplete="username" required className="w-full bg-black/30 border border-white/10 rounded-lg px-3 py-2.5 text-white placeholder:text-white/30 focus:outline-none focus:ring-2 focus:ring-indigo-500/40 focus:border-indigo-500/60" placeholder="you@breakpilot.ai" />
setPassword(e.target.value)} autoComplete="current-password" required className="w-full bg-black/30 border border-white/10 rounded-lg px-3 py-2.5 text-white placeholder:text-white/30 focus:outline-none focus:ring-2 focus:ring-indigo-500/40 focus:border-indigo-500/60" placeholder="••••••••" />
{error && (
{error}
)}

Admin access only. All actions are logged.

) }