/** Subtract calendar months in UTC, clamping an unavailable day to the target month's last day. */ export function calendarMonthsBefore(date: Date, months: number): Date { const result = new Date(date); const day = result.getUTCDate(); result.setUTCDate(1); result.setUTCMonth(result.getUTCMonth() - months); const last = new Date(result); last.setUTCMonth(last.getUTCMonth() + 1, 0); result.setUTCDate(Math.min(day, last.getUTCDate())); return result; }