{% load static lucide ui %} {% comment %} Standalone shell for every sitewide allauth screen -- login, password change/reset, MFA, passkeys, recovery codes -- plus 403.html/maintenance.html, rendered whenever there is no club tenant (see club/context_processors.py: this is PLATFORM_BASE_TEMPLATE). Same industrial design language as controlpanel/base.html -- dark ink chrome, Barlow/Barlow Condensed/IBM Plex Mono, assets/controlpanel.css -- but deliberately simpler: one centred card on a dark page, not a full command-bar app shell, since these are public entrance screens for the whole platform (every club admin and base-domain account), not the control panel itself. Block names match what templates/_base.html used to provide (head_title, extra_head, main, extra_body) rather than inventing new ones: templates/allauth/layouts/base.html and templates/403.html/maintenance.html target those names directly, and both are shared with the club-branded skin (_club_base.html, still on assets/app.css and real daisyUI, untouched) -- give them a different block name here and they would have nothing to override on this side of the fork. {% endcomment %} {% block head_title %}{% endblock head_title %} · RosterChief {% block extra_head %}{% endblock extra_head %} {# Explicit bg-ink here too, not just on : the white-on-dark brand mark must stay legible on its own. #}
{# The real mark, not the .crest clip-path fallback (that's for clubs with no logo of their own) -- white-on-dark variant for this page. #} RosterChief {% lucide "arrow-left" size=14 %} Back to site
{% if messages %}
{% for message in messages %} {% with alert=message|as_alert %} {% endwith %} {% endfor %}
{% endif %} {% block main %}{% endblock main %}

© {% now "Y" %} RosterChief

{% comment %} A TOTP code is 6 characters, a recovery code 8, and allauth accepts either in the same field (templates/allauth/elements/fields.html). The boxed .otp layout only fits six, so past that this falls back to a plain .input-lg rather than letting the text spill out of the boxes. The real 's own text is invisible (assets/controlpanel.css: `.otp input` is `color: transparent`, only its caret shows) -- this writes each typed character into its matching directly instead, which is exact by construction. A pure-CSS letter-spacing overlay (spacing the real glyphs to match the box pitch) was tried first and drifted more with every character typed, in a way font-metric tuning couldn't reliably fix. {% endcomment %} {% comment %} allauth puts page-level scripts and out-of-form markup here -- notably the hidden `mfa_login` form the passkey button submits on the login page. Without this block that form is never rendered and "Sign in with a passkey" is dead. {% endcomment %} {% block extra_body %}{% endblock extra_body %}