{% else %}
{# tone / analysis / prompt_version / model / tokens / cost / generated_at
are admin metadata. Hidden from the user-facing UI; available via the
JSON API and the AICall ledger. The panel header's "generated hourly @
:20 UTC" cadence message communicates freshness. #}
{{ log.content_html | safe | glossary(tone) }}
{% if log.feedback %}
{# Anonymous-in-UI thumb up/down. Server stores (user, log, vote) for dedup
so a vote can be flipped; UI shows aggregate counts only.
POST clicks JSON-fetch and swap this partial back in place — no full
reload, the log content stays put. #}