{% for monthData in months %}

{{ monthData.label }}

{# Weekday headers (Mon–Sun) #}
Mo
Di
Mi
Do
Fr
Sa
So
{# Day grid #}
{% for week in monthData.weeks %} {% for dayData in week %} {% if dayData.inMonth %} {% set dateStr = dayData.date|date('Y-m-d') %} {% set entry = enrichedByDate[dateStr] ?? null %} {% set status = (dateStr < todayStr) ? 'past' : (entry ? entry.status : 'ok') %} {% set minNights = entry ? entry.minNights : 0 %} {% else %}
{% endif %} {% endfor %} {% endfor %}
{% endfor %}
{# Status message (arrival hint, short-stay warning, etc.) #}
{# Reset link — revealed once a start date is selected #}
{# Navigation — prev/next trigger HTMX month swap; no Stimulus involvement #}