{# Project-wide HTMX response policy. HTMX's default leaves 4xx/5xx unswapped, which is what makes a failed request look like a click that did nothing. Marking [45].. as swap+error means the server's error fragment (retargeted to #errors — see introspect.api.errors) actually reaches the page, and htmx:responseError still fires for the responses the server did not format. 204 and the 2xx/3xx rules are HTMX's own defaults, restated because setting responseHandling replaces the list. Must precede the htmx script tag: htmx reads this meta at load. #}
{# Every failed request lands here — server-rendered fragments via HX-Retarget, client-built toasts via the listeners below. No aria-live on the container: each toast is role="alert" and announces itself. #}
{% block content %}{% endblock %}