{% load static i18n lucide %} {% comment %} App shell for Member mode (M1-M7) -- design_handoff_rosterchief_platform/README.md. Standalone, like management/base.html and controlpanel/base.html: its own stylesheet (assets/mobile.css), no daisyUI, no shared nav. Mobile-first, viewport-fit=cover + env(safe-area-inset-*) throughout (see mobile.css's own file banner) rather than the iOS bezel in the design canvas, which is presentation-only. The Coach/Member role switcher renders once has_coach_access is true (an account with >=1 current-season staff assignment -- mobile/mixins.py's PersonScopeMixin) -- Coach mode (C1-C6, mobile/coach_views.py) is being built out screen by screen; only what's actually shipped is linked to. hx-boost="true" on : every same-shell link/form becomes an AJAX navigation (swapping 's children, pushing the URL) instead of a full browser reload -- the SPA-like feel without an SPA. Only 's *children* swap, not the tag itself, so anything that crosses into the differently-styled Coach shell (coach/base.html: bg-ink vs this page's bg-paper, its own hx-headers/data attrs) is marked hx-boost="false" to force a real navigation instead -- a boosted cross-shell swap would leave the OLD shell's class/attributes in place under the NEW shell's content. See coach/base.html's own comment for the same rule mirrored the other direction. {% endcomment %} {% block title %}{{ screen_title }} · {{ club.name }}{% endblock title %} {% if club.secondary_color %} {% endif %} {% if club.primary_color %} {% endif %} {% block extra_head %}{% endblock extra_head %}
{% if club.logo %} {% else %} {{ club.initials }} {% endif %} {{ club.name }} {% if season %}{% blocktrans with name=season.name %}Season {{ name }}{% endblocktrans %}{% endif %}
{% lucide "bell" size=21 class="text-white" %} {% if unread_notification_count %} {% if unread_notification_count > 9 %}9+{% else %}{{ unread_notification_count }}{% endif %} {% endif %}
{% if has_coach_access %}
{% trans "Member" %} {% trans "Manager" %}
{% endif %} {% block header_extra %}{% endblock header_extra %}
{% if messages %}
{% for message in messages %}
{{ message }}
{% endfor %}
{% endif %} {% block content %}{% endblock content %}
{% block extra_body %}{% endblock extra_body %}