{% load lucide static ui %}
{% comment %}
The page skeleton, with no branding of its own. `_platform_base.html` dresses it
as RosterChief, `_club_base.html` as a club; the `branding` context processor
picks between them per tenant.
{% endcomment %}
{% block title %}RosterChief{% endblock title %}
{% comment %}
Apply the stored theme before first paint, otherwise the page flashes the wrong
colours. Nothing stored means "auto": we set no attribute at all, so daisyUI's
`dark --prefersdark` follows the OS.
{% endcomment %}
{# After the stylesheet: brand overrides (logo urls, club colours) must win. #}
{% block extra %}{% endblock extra %}
{% for message in messages %}
{% with alert=message|as_alert %}
{% lucide alert.icon size=20 %}
{{ alert.title }}
{{ alert.body }}
{% endwith %}
{% endfor %}
{% endif %}
{% block main %}{% endblock main %}
{% comment %}
allauth puts page-level scripts and out-of-form markup here — notably the
hidden `mfa_login` form the passkey button submits. Without this block that
form is never rendered and "Sign in with a passkey" is a dead button.
{% endcomment %}
{% block extra_body %}{% endblock extra_body %}