{% 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 %}
© {% 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 %}