{% comment %} The live audience count (SPEC §13.1: "live audience-count + estimated-eligible preview via set-wise compliance"). Every number here comes from apps/broadcasts/audience.py::preview, which is three aggregate queries over the same annotation the send will use — so what an operator reads here and what the fanout does cannot drift. `window_notice` is apps/broadcasts/composer.py::window_notice — the sentence a platform whose messaging window cannot be reopened owes the operator *before* the counts explain themselves. Empty for every platform where the question does not arise, so this renders nothing rather than branching on a platform name. The reasons are `apps.messaging.codes.describe` output, looked up server-side from the Denial code on each verdict. Contact names are attacker-controlled strings on the team-browser path (SECURITY-BASELINE §2) and are escaped by the template like any other value; nothing here is marked safe. {% endcomment %} {% if window_notice %}
{{ window_notice }}
{% endif %} {% if error %}Nobody matches these rules yet.
{% endif %} {% for reason in reasons %}Add a rule to see who this reaches.
{% endif %}