/**
 * Valida el destino de "?next=" después del login para evitar redirecciones abiertas.
 * Solo acepta rutas internas del panel (/admin...) y nunca la propia pantalla de login.
 */
export function safeAdminRedirect(target: string | null | undefined): string {
  const fallback = "/admin";
  if (!target) return fallback;
  if (!target.startsWith("/admin")) return fallback;
  // "//evil.com" o "/\evil.com" son URLs absolutas para el navegador.
  if (target.startsWith("//") || target.includes("\\")) return fallback;
  if (/[\r\n\t]/.test(target)) return fallback;
  if (target === "/admin/login" || target.startsWith("/admin/login?")) return fallback;
  if (target.length > 512) return fallback;
  return target;
}
