| import type { Metadata } from "next"; | |
| import "./globals.css"; | |
| import Link from "next/link"; | |
| export const metadata: Metadata = { | |
| title: "TalentPulse — AI Candidate Matching", | |
| description: "Two-stage AI pipeline: vector retrieval + cross-encoder reranking + LLM explanations.", | |
| }; | |
| export default function RootLayout({ children }: { children: React.ReactNode }) { | |
| return ( | |
| <html lang="en"> | |
| <body className="min-h-screen bg-[var(--color-surface)] text-[var(--color-text)]"> | |
| <nav className="fixed top-0 left-0 right-0 z-50 h-16 border-b border-[var(--color-border)] bg-[rgba(10,10,15,0.85)] backdrop-blur-xl"> | |
| <div className="max-w-7xl mx-auto px-6 h-full flex items-center justify-between"> | |
| <Link href="/" className="text-base font-bold tracking-tight bg-gradient-to-r from-[var(--color-brand-light)] to-purple-400 bg-clip-text text-transparent select-none"> | |
| ⚡ TalentPulse | |
| </Link> | |
| <div className="flex items-center gap-2"> | |
| <Link href="/reset" className="px-3 py-1.5 rounded-lg text-xs font-medium text-slate-500 hover:text-red-400 transition-colors"> | |
| Reset | |
| </Link> | |
| <a href="/docs" target="_blank" rel="noreferrer" className="px-3 py-1.5 rounded-lg text-xs font-medium text-slate-500 hover:text-[var(--color-brand-light)] transition-colors"> | |
| API Docs ↗ | |
| </a> | |
| <Link href="/pipeline" className="ml-2 px-3 py-1.5 rounded-lg text-sm font-semibold text-[var(--color-brand-light)] bg-[var(--color-brand-dim)] border border-[var(--color-brand-glow)] hover:bg-[var(--color-brand)] hover:text-white transition-all"> | |
| ⚡ Auto Pipeline | |
| </Link> | |
| </div> | |
| </div> | |
| </nav> | |
| <main className="pt-16 min-h-screen">{children}</main> | |
| </body> | |
| </html> | |
| ); | |
| } | |