Write a query to return every continuous run of missing login dates for each user appearing in logins, within 1 June through 12 June 2026 inclusive.
Return gap_start, gap_end and missing_days, counting both endpoints. Include missing runs at either boundary. A user with no login inside the window has one run covering the whole window. A user with no missing dates has no gap rows.
Use only window dates to determine gaps. Repeated logins on a date count as one active day, and the user population includes users recorded outside the window.
Ordering: Sort by user_id, then gap_start in ascending order.