"use client" import { useEffect, type ReactNode } from "react" import { X } from "lucide-react" interface GlassModalProps { title: string onClose: () => void children: ReactNode maxWidth?: string } export function GlassModal({ title, onClose, children, maxWidth = "max-w-md" }: GlassModalProps) { useEffect(() => { const onKey = (e: KeyboardEvent) => { if (e.key === "Escape") onClose() } window.addEventListener("keydown", onKey) document.body.style.overflow = "hidden" return () => { window.removeEventListener("keydown", onKey) document.body.style.overflow = "" } }, [onClose]) return (
e.stopPropagation()} role="dialog" aria-modal="true" aria-label={title} >

{title}

{children}
) } // Shared input styling used across dialogs. export const fieldClass = "w-full rounded-xl border border-white/20 bg-white/10 px-4 py-2.5 text-white placeholder:text-white/50 focus:outline-none focus:ring-2 focus:ring-white/40" export const labelClass = "mb-1.5 block text-sm font-medium text-white/90"