diff --git a/pipe/dashboard.py b/pipe/dashboard.py
index 8f2347d..04b9956 100644
--- a/pipe/dashboard.py
+++ b/pipe/dashboard.py
@@ -61,7 +61,7 @@ def baue(ausgabe: Path) -> Path:
karten = "\n".join(_karte(d) for d in anrufe)
doc = f"""
-Anruf-Übersicht
+Anruf-Übersicht · {html.escape(kategorien.PROFIL_NAME)}
-
Anruf-Übersicht
+
Anruf-Übersicht · {html.escape(kategorien.PROFIL_NAME)}
{len(anrufe)} Anrufe · {zusammenfassung or '—'} · lokal erzeugt aus der Ablage
{karten}
"""
diff --git a/pipe/kategorien.py b/pipe/kategorien.py
index 843c978..ec8de04 100644
--- a/pipe/kategorien.py
+++ b/pipe/kategorien.py
@@ -27,6 +27,9 @@ def _daten() -> dict:
KATEGORIEN = _daten()["kategorien"]
KATEGORIE_LABEL = _daten().get("kategorie_labels", {})
+# Anzeigename des aktiven Profils (Leitstand-Header, Dashboard) - Fallback auf
+# den rohen Ordnernamen, falls ein Profil das Feld nicht setzt.
+PROFIL_NAME = _daten().get("profil_name", config.PROFIL)
# Kategorie, auf die das deterministische Sicherheitsnetz eskaliert (siehe
# categorize._notfall_sicherheitsnetz) - bei "praxis" ist das "notfall", bei
# anderen Profilen ggf. ein anderer Name (z. B. "eingeschlossen").
diff --git a/pipe/server.py b/pipe/server.py
index bc84733..ae3c353 100644
--- a/pipe/server.py
+++ b/pipe/server.py
@@ -11,6 +11,7 @@ from __future__ import annotations
import argparse
import base64
import hmac
+import html
import json
import re
import sys
@@ -404,7 +405,7 @@ class Handler(BaseHTTPRequestHandler):
SEITE = r"""
-Logpy:AgentOne — Anruf-Leitstand
+Logpy:AgentOne — Anruf-Leitstand · __PROFIL_NAME__