<?php $pageTitle = 'E-Mail-Benachrichtigungen'; ?>
<?php include __DIR__ . '/partials/help-styles.php'; ?>

<style>
.nf-page { max-width: 920px; }
.nf-section { margin-bottom: 2.75rem; }
.nf-section > h2 { font-size: 1.15rem; font-weight: 700; margin: 0 0 1rem; padding-bottom: .45rem; border-bottom: 2px solid var(--border-color); color: var(--text-primary); display: flex; align-items: center; gap: .55rem; }
.nf-cat-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }

.nf-flow { background: var(--bg-card); border: 1px solid var(--border-color); border-radius: 10px; margin-bottom: .85rem; overflow: hidden; }
.nf-flow-head { padding: .6rem 1rem; display: flex; align-items: center; gap: .6rem; border-bottom: 1px solid var(--border-color); }
.nf-icon { width: 28px; height: 28px; border-radius: 7px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.nf-flow-title { font-weight: 600; font-size: .9rem; color: var(--text-primary); }
.nf-badge { margin-left: auto; font-size: .75rem; color: var(--text-muted); background: var(--bg-secondary); padding: 2px 8px; border-radius: 20px; white-space: nowrap; flex-shrink: 0; }
.nf-badge-off { background: #fef9c3; color: #854d0e; }

.nf-flow-body { padding: .85rem 1rem; display: flex; align-items: stretch; gap: 0; }
.nf-step { display: flex; flex-direction: column; justify-content: center; }
.nf-arrow { display: flex; align-items: center; padding: 0 .65rem; color: var(--text-muted); font-size: 1.2rem; flex-shrink: 0; }

.nf-box { border-radius: 7px; padding: .55rem .8rem; font-size: .85rem; line-height: 1.5; }
.nf-box b { display: block; font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; margin-bottom: .2rem; opacity: .65; }
.nf-trigger  { background: #f0fdf4; border: 1px solid #86efac; color: #166534; }
.nf-mail     { background: #eff6ff; border: 1px solid #93c5fd; color: #1e3a5f; min-width: 190px; }
.nf-mail .sub { font-weight: 600; font-size: .87rem; margin-bottom: .25rem; }
.nf-mail .prv { font-size: .8rem; color: #3b5998; opacity: .85; }
.nf-recv     { background: #fdf4ff; border: 1px solid #e9d5ff; color: #581c87; }
.nf-recv ul  { margin: .2rem 0 0; padding-left: 1rem; font-size: .82rem; }
.nf-recv li  { margin-bottom: .1rem; }

.nf-cond { padding: 0 1rem .7rem; display: flex; flex-direction: column; gap: .3rem; }
.nf-cond-box { border-radius: 6px; padding: .4rem .75rem; font-size: .81rem; }
.nf-cond-box strong { font-weight: 700; }
.cond-std  { background: #fffbeb; border: 1px solid #fcd34d; color: #78350f; }
.cond-note { background: #fff7ed; border: 1px solid #fed7aa; color: #7c2d12; }
.cond-off  { background: #fef9c3; border: 1px solid #fde047; color: #713f12; }

.nf-toc { background: var(--bg-secondary); border-radius: 10px; padding: 1rem 1.2rem; margin-bottom: 2.25rem; }
.nf-toc p { font-weight: 700; font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; color: var(--text-muted); margin: 0 0 .55rem; }
.nf-toc-cols { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .15rem .5rem; }
.nf-toc a { font-size: .87rem; color: var(--color-primary); text-decoration: none; display: block; padding: .12rem 0; }
.nf-toc a:hover { text-decoration: underline; }

@media (max-width: 640px) {
    .nf-flow-body { flex-direction: column; gap: .4rem; }
    .nf-arrow { padding: .25rem 0; transform: rotate(90deg); align-self: center; }
    .nf-badge { display: none; }
}
</style>

<div class="page-header">
    <div class="page-header-left">
        <a href="/help" class="btn btn-ghost btn-sm">
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="16" height="16"><path d="M19 12H5M12 19l-7-7 7-7"/></svg>
            Handbuch
        </a>
        <h1 class="page-title">E-Mail-Benachrichtigungen</h1>
    </div>
</div>

<div class="nf-page">

<p style="color:var(--text-secondary);font-size:.97rem;line-height:1.75;margin-bottom:1.6rem;max-width:800px">
    Alle automatischen E-Mails auf einen Blick — <strong>Auslöser · Inhalt · Empfänger</strong>. Mails werden nur versendet wenn SMTP konfiguriert ist und Benachrichtigungen aktiviert sind. Einige Mails können pro Projekt deaktiviert werden (Projekteinstellungen → Benachrichtigungen).
</p>

<div class="nf-toc">
    <p>Inhalt</p>
    <div class="nf-toc-cols">
        <div>
            <a href="#start">① Aufgabenstart &amp; Vorgänger</a>
            <a href="#fristen">② Fristen &amp; Erinnerungen</a>
            <a href="#zuweisung">③ Zuweisung &amp; Entfernung</a>
        </div>
        <div>
            <a href="#aenderungen">④ Aufgabenänderungen</a>
            <a href="#manager">⑤ Projektleitermeldungen</a>
            <a href="#konto">⑥ Konto &amp; Anmeldung</a>
        </div>
        <div>
            <a href="#admin">⑦ Administration</a>
            <a href="#extern">⑧ Externe Teilnehmer</a>
        </div>
    </div>
</div>

<?php
// Helper macro: render one flow card
// Usage: see below
?>

<!-- ① ───────────────────────────────────────────────────── -->
<div class="nf-section" id="start">
<h2><span class="nf-cat-dot" style="background:#22c55e"></span>① Aufgabenstart &amp; Vorgänger</h2>

<div class="nf-flow">
    <div class="nf-flow-head">
        <div class="nf-icon" style="background:#dcfce7;color:#15803d"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="15" height="15"><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></svg></div>
        <span class="nf-flow-title">Aufgabe ohne Vorgänger startet heute</span>
        <span class="nf-badge">täglich · Cron-Job</span>
    </div>
    <div class="nf-cond"><div class="nf-cond-box cond-std"><strong>Bedingungen:</strong> Startdatum = Heute &nbsp;·&nbsp; keine Vorgängeraufgabe &nbsp;·&nbsp; Aufgabe noch nicht erledigt &nbsp;·&nbsp; Projekteinstellung aktiv</div></div>
    <div class="nf-flow-body">
        <div class="nf-step"><div class="nf-box nf-trigger"><b>Auslöser</b>Täglicher Cron-Job</div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step" style="flex:1"><div class="nf-box nf-mail"><b>Beispiel-Mail</b><div class="sub">Plenvo: Aufgabe kann begonnen werden – Website-Relaunch</div><div class="prv">Hallo Anna, die Aufgabe <em>Website-Relaunch</em> im Projekt <em>Webprojekt 2025</em> startet heute. Sie können jetzt beginnen. Fällig: 15.06.2025.</div></div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step"><div class="nf-box nf-recv"><b>Empfänger</b><ul><li>Zugewiesene (intern)</li><li>Zugewiesene (extern, mit E-Mail)</li></ul></div></div>
    </div>
</div>

<div class="nf-flow">
    <div class="nf-flow-head">
        <div class="nf-icon" style="background:#dcfce7;color:#15803d"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="15" height="15"><path d="M9 11l3 3L22 4"/><path d="M21 12v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5a2 2 0 012-2h11"/></svg></div>
        <span class="nf-flow-title">Letzter Vorgänger wird abgeschlossen</span>
        <span class="nf-badge">sofort · Statusänderung</span>
    </div>
    <div class="nf-cond">
        <div class="nf-cond-box cond-std"><strong>Bedingungen:</strong> Aufgabe A wird auf „Erledigt" gesetzt &nbsp;·&nbsp; A ist Vorgänger von B &nbsp;·&nbsp; alle Vorgänger von B sind nun erledigt &nbsp;·&nbsp; B selbst noch offen</div>
        <div class="nf-cond-box cond-note"><strong>Hinweis:</strong> Startdatum von B spielt keine Rolle – auch wenn es in der Vergangenheit liegt, wird die Mail versendet.</div>
    </div>
    <div class="nf-flow-body">
        <div class="nf-step"><div class="nf-box nf-trigger"><b>Auslöser</b>Benutzer setzt<br>Vorgängeraufgabe<br>auf „Erledigt"</div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step" style="flex:1"><div class="nf-box nf-mail"><b>Beispiel-Mail</b><div class="sub">Plenvo: Aufgabe kann begonnen werden – Design-Entwurf</div><div class="prv">Hallo Max, alle Vorgängeraufgaben von <em>Design-Entwurf</em> im Projekt <em>Webprojekt</em> sind nun abgeschlossen. Sie können jetzt mit Ihrer Aufgabe beginnen.</div></div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step"><div class="nf-box nf-recv"><b>Empfänger</b><ul><li>Zugewiesene der <em>Nachfolger</em>aufgabe (intern + extern)</li></ul></div></div>
    </div>
</div>
</div>

<!-- ② ───────────────────────────────────────────────────── -->
<div class="nf-section" id="fristen">
<h2><span class="nf-cat-dot" style="background:#f59e0b"></span>② Fristen &amp; Erinnerungen</h2>

<div class="nf-flow">
    <div class="nf-flow-head">
        <div class="nf-icon" style="background:#fef3c7;color:#b45309"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="15" height="15"><path d="M18 8A6 6 0 006 8c0 7-3 9-3 9h18s-3-2-3-9"/><path d="M13.73 21a2 2 0 01-3.46 0"/></svg></div>
        <span class="nf-flow-title">3-Tage-Erinnerung vor Fälligkeit</span>
        <span class="nf-badge">täglich · Cron-Job</span>
    </div>
    <div class="nf-cond"><div class="nf-cond-box cond-std"><strong>Bedingungen:</strong> Fälligkeitsdatum = Heute + 3 Tage &nbsp;·&nbsp; Aufgabe noch nicht erledigt</div></div>
    <div class="nf-flow-body">
        <div class="nf-step"><div class="nf-box nf-trigger"><b>Auslöser</b>Täglicher Cron-Job</div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step" style="flex:1"><div class="nf-box nf-mail"><b>Beispiel-Mail</b><div class="sub">Plenvo: Erinnerung – Angebot einreichen</div><div class="prv">Hallo Lisa, Erinnerung: Die Aufgabe <em>Angebot einreichen</em> im Projekt <em>Kundenprojekt</em> ist in <strong>3 Tagen</strong> fällig.</div></div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step"><div class="nf-box nf-recv"><b>Empfänger</b><ul><li>Zugewiesene (intern)</li><li>Zugewiesene (extern, mit E-Mail)</li></ul></div></div>
    </div>
</div>

<div class="nf-flow">
    <div class="nf-flow-head">
        <div class="nf-icon" style="background:#fef3c7;color:#b45309"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="15" height="15"><rect x="3" y="4" width="18" height="18" rx="2"/><line x1="16" y1="2" x2="16" y2="6"/><line x1="8" y1="2" x2="8" y2="6"/><line x1="3" y1="10" x2="21" y2="10"/></svg></div>
        <span class="nf-flow-title">Aufgabe ist heute fällig</span>
        <span class="nf-badge">täglich · Cron-Job</span>
    </div>
    <div class="nf-cond"><div class="nf-cond-box cond-std"><strong>Bedingungen:</strong> Fälligkeitsdatum = Heute &nbsp;·&nbsp; Aufgabe noch nicht erledigt</div></div>
    <div class="nf-flow-body">
        <div class="nf-step"><div class="nf-box nf-trigger"><b>Auslöser</b>Täglicher Cron-Job</div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step" style="flex:1"><div class="nf-box nf-mail"><b>Beispiel-Mail</b><div class="sub">Plenvo: Heute fällig – Präsentation vorbereiten</div><div class="prv">Hallo Tom, Erinnerung: Die Aufgabe <em>Präsentation vorbereiten</em> im Projekt <em>Quartalsbericht</em> ist <strong>heute</strong> fällig.</div></div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step"><div class="nf-box nf-recv"><b>Empfänger</b><ul><li>Zugewiesene (intern)</li><li>Zugewiesene (extern, mit E-Mail)</li></ul></div></div>
    </div>
</div>

<div class="nf-flow">
    <div class="nf-flow-head">
        <div class="nf-icon" style="background:#fee2e2;color:#b91c1c"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="15" height="15"><path d="M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z"/><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/></svg></div>
        <span class="nf-flow-title">Aufgabe ist überfällig</span>
        <span class="nf-badge">täglich · Cron-Job</span>
    </div>
    <div class="nf-cond"><div class="nf-cond-box cond-std"><strong>Bedingungen:</strong> Fälligkeitsdatum = Gestern &nbsp;·&nbsp; Aufgabe noch nicht erledigt &nbsp;·&nbsp; geht an <em>Projektleiter</em>, nicht an Zugewiesene</div></div>
    <div class="nf-flow-body">
        <div class="nf-step"><div class="nf-box nf-trigger"><b>Auslöser</b>Täglicher Cron-Job<br>(Tag nach Fälligkeit)</div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step" style="flex:1"><div class="nf-box nf-mail"><b>Beispiel-Mail</b><div class="sub">Plenvo: Überfällige Aufgabe – Server-Migration</div><div class="prv">Die Aufgabe <em>Server-Migration</em> (Projekt: IT-Infrastruktur) ist <strong>überfällig</strong>. Fällig war: 10.05.2025.</div></div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step"><div class="nf-box nf-recv"><b>Empfänger</b><ul><li>Projektleiter / Owner</li><li>Manager des Projekts</li></ul></div></div>
    </div>
</div>
</div>

<!-- ③ ───────────────────────────────────────────────────── -->
<div class="nf-section" id="zuweisung">
<h2><span class="nf-cat-dot" style="background:#06b6d4"></span>③ Zuweisung &amp; Entfernung</h2>

<div class="nf-flow">
    <div class="nf-flow-head">
        <div class="nf-icon" style="background:#cffafe;color:#0e7490"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="15" height="15"><path d="M16 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2"/><circle cx="8.5" cy="7" r="4"/><line x1="20" y1="8" x2="20" y2="14"/><line x1="23" y1="11" x2="17" y2="11"/></svg></div>
        <span class="nf-flow-title">Aufgabe zugewiesen (interner Benutzer)</span>
        <span class="nf-badge">sofort</span>
    </div>
    <div class="nf-cond"><div class="nf-cond-box cond-std"><strong>Bedingungen:</strong> Ein interner Benutzer wird einer Aufgabe hinzugefügt &nbsp;·&nbsp; Projekteinstellung aktiv</div></div>
    <div class="nf-flow-body">
        <div class="nf-step"><div class="nf-box nf-trigger"><b>Auslöser</b>Projektleiter weist<br>Aufgabe zu</div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step" style="flex:1"><div class="nf-box nf-mail"><b>Beispiel-Mail</b><div class="sub">Plenvo: Aufgabe zugewiesen – Konzept erstellen</div><div class="prv">Hallo Anna, Ihnen wurde die Aufgabe <em>Konzept erstellen</em> im Projekt <em>Webprojekt</em> zugewiesen.</div></div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step"><div class="nf-box nf-recv"><b>Empfänger</b><ul><li>Neu zugewiesener<br>Benutzer</li></ul></div></div>
    </div>
</div>

<div class="nf-flow">
    <div class="nf-flow-head">
        <div class="nf-icon" style="background:#cffafe;color:#0e7490"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="15" height="15"><path d="M10 13a5 5 0 007.54.54l3-3a5 5 0 00-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 00-7.54-.54l-3 3a5 5 0 007.07 7.07l1.71-1.71"/></svg></div>
        <span class="nf-flow-title">Aufgabe zugewiesen (externer Teilnehmer)</span>
        <span class="nf-badge">sofort</span>
    </div>
    <div class="nf-cond"><div class="nf-cond-box cond-std"><strong>Bedingungen:</strong> Ein externer Teilnehmer wird einer Aufgabe zugewiesen &nbsp;·&nbsp; E-Mail-Adresse hinterlegt &nbsp;·&nbsp; Projekteinstellung aktiv</div></div>
    <div class="nf-flow-body">
        <div class="nf-step"><div class="nf-box nf-trigger"><b>Auslöser</b>Projektleiter weist<br>externen Teilnehmer zu</div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step" style="flex:1"><div class="nf-box nf-mail"><b>Beispiel-Mail</b><div class="sub">Plenvo: Aufgabe zugewiesen – Lieferung prüfen</div><div class="prv">Hallo Sandra, Ihnen wurde die Aufgabe <em>Lieferung prüfen</em> im Projekt <em>Lagerprojekt</em> zugewiesen. <em>[Link zu Aufgabenübersicht]</em></div></div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step"><div class="nf-box nf-recv"><b>Empfänger</b><ul><li>Externer Teilnehmer<br>(an seine E-Mail)</li></ul></div></div>
    </div>
</div>

<div class="nf-flow">
    <div class="nf-flow-head">
        <div class="nf-icon" style="background:#cffafe;color:#0e7490"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="15" height="15"><path d="M16 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2"/><circle cx="8.5" cy="7" r="4"/><line x1="23" y1="11" x2="17" y2="11"/></svg></div>
        <span class="nf-flow-title">Von Aufgabe entfernt</span>
        <span class="nf-badge">sofort</span>
    </div>
    <div class="nf-cond"><div class="nf-cond-box cond-std"><strong>Bedingungen:</strong> Benutzer oder externer Teilnehmer wird von einer Aufgabe abgezogen &nbsp;·&nbsp; Projekteinstellung aktiv</div></div>
    <div class="nf-flow-body">
        <div class="nf-step"><div class="nf-box nf-trigger"><b>Auslöser</b>Projektleiter entfernt<br>Person von Aufgabe</div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step" style="flex:1"><div class="nf-box nf-mail"><b>Beispiel-Mail</b><div class="sub">Plenvo: Von Aufgabe entfernt – Konzept erstellen</div><div class="prv">Hallo Anna, Sie wurden von der Aufgabe <em>Konzept erstellen</em> im Projekt <em>Webprojekt</em> entfernt.</div></div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step"><div class="nf-box nf-recv"><b>Empfänger</b><ul><li>Entfernte Person<br>(intern oder extern)</li></ul></div></div>
    </div>
</div>
</div>

<!-- ④ ───────────────────────────────────────────────────── -->
<div class="nf-section" id="aenderungen">
<h2><span class="nf-cat-dot" style="background:#6366f1"></span>④ Aufgabenänderungen &amp; Kommentare</h2>

<div class="nf-flow">
    <div class="nf-flow-head">
        <div class="nf-icon" style="background:#e0e7ff;color:#4338ca"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="15" height="15"><path d="M11 4H4a2 2 0 00-2 2v14a2 2 0 002 2h14a2 2 0 002-2v-7"/><path d="M18.5 2.5a2.121 2.121 0 013 3L12 15l-4 1 1-4 9.5-9.5z"/></svg></div>
        <span class="nf-flow-title">Aufgabe geändert (Fälligkeit, Priorität, Beschreibung …)</span>
        <span class="nf-badge">sofort</span>
    </div>
    <div class="nf-cond"><div class="nf-cond-box cond-std"><strong>Bedingungen:</strong> Aufgabe wird gespeichert mit inhaltlicher Änderung &nbsp;·&nbsp; Empfänger ist nicht derjenige, der die Änderung vorgenommen hat &nbsp;·&nbsp; Projekteinstellung aktiv</div></div>
    <div class="nf-flow-body">
        <div class="nf-step"><div class="nf-box nf-trigger"><b>Auslöser</b>Projektleiter oder<br>Mitglied speichert<br>Aufgabenänderung</div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step" style="flex:1"><div class="nf-box nf-mail"><b>Beispiel-Mail</b><div class="sub">Plenvo: Aufgabe geändert – Konzept erstellen</div><div class="prv">Hallo Tom, die Aufgabe <em>Konzept erstellen</em> im Projekt <em>Webprojekt</em> wurde geändert.</div></div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step"><div class="nf-box nf-recv"><b>Empfänger</b><ul><li>Alle Zugewiesenen<br>(außer Autor der Änderung)</li><li>intern + extern</li></ul></div></div>
    </div>
</div>

<div class="nf-flow">
    <div class="nf-flow-head">
        <div class="nf-icon" style="background:#e0e7ff;color:#4338ca"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="15" height="15"><path d="M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2z"/></svg></div>
        <span class="nf-flow-title">Kommentar hinzugefügt</span>
        <span class="nf-badge">sofort</span>
    </div>
    <div class="nf-cond"><div class="nf-cond-box cond-std"><strong>Bedingungen:</strong> Kommentar wird gespeichert (durch internen Benutzer oder externen Teilnehmer) &nbsp;·&nbsp; Empfänger ist nicht der Kommentator &nbsp;·&nbsp; Projekteinstellung aktiv</div></div>
    <div class="nf-flow-body">
        <div class="nf-step"><div class="nf-box nf-trigger"><b>Auslöser</b>Benutzer oder Externer<br>schreibt Kommentar</div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step" style="flex:1"><div class="nf-box nf-mail"><b>Beispiel-Mail</b><div class="sub">Plenvo: Neuer Kommentar – Logo-Entwurf</div><div class="prv">Hallo Max, <em>Klaus Müller</em> hat die Aufgabe <em>Logo-Entwurf</em> im Projekt <em>Rebranding</em> kommentiert.</div></div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step"><div class="nf-box nf-recv"><b>Empfänger</b><ul><li>Alle Zugewiesenen<br>(außer Kommentator)</li><li>intern + extern</li></ul></div></div>
    </div>
</div>

<div class="nf-flow">
    <div class="nf-flow-head">
        <div class="nf-icon" style="background:#e0e7ff;color:#4338ca"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="15" height="15"><path d="M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2z"/><circle cx="9" cy="10" r="1" fill="currentColor"/><circle cx="12" cy="10" r="1" fill="currentColor"/><circle cx="15" cy="10" r="1" fill="currentColor"/></svg></div>
        <span class="nf-flow-title">@Erwähnung in einem Kommentar</span>
        <span class="nf-badge">sofort</span>
    </div>
    <div class="nf-cond"><div class="nf-cond-box cond-std"><strong>Bedingungen:</strong> Kommentar enthält @Name eines Projektmitglieds oder externen Teilnehmers &nbsp;·&nbsp; Erwähnter ist nicht der Kommentator</div></div>
    <div class="nf-flow-body">
        <div class="nf-step"><div class="nf-box nf-trigger"><b>Auslöser</b>Kommentar mit<br>@Lisa gespeichert</div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step" style="flex:1"><div class="nf-box nf-mail"><b>Beispiel-Mail</b><div class="sub">Plenvo: Sie wurden erwähnt – Konzept erstellen</div><div class="prv">Hallo Lisa, <em>Klaus Müller</em> hat Sie in einem Kommentar zur Aufgabe <em>Konzept erstellen</em> im Projekt <em>Webprojekt</em> erwähnt.</div></div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step"><div class="nf-box nf-recv"><b>Empfänger</b><ul><li>@Erwähnte Person<br>(intern oder extern)</li></ul></div></div>
    </div>
</div>

<div class="nf-flow">
    <div class="nf-flow-head">
        <div class="nf-icon" style="background:#e0e7ff;color:#4338ca"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="15" height="15"><path d="M21.44 11.05l-9.19 9.19a6 6 0 01-8.49-8.49l9.19-9.19a4 4 0 015.66 5.66l-9.2 9.19a2 2 0 01-2.83-2.83l8.49-8.48"/></svg></div>
        <span class="nf-flow-title">Neuer Dateianhang hochgeladen</span>
        <span class="nf-badge">sofort</span>
    </div>
    <div class="nf-cond"><div class="nf-cond-box cond-std"><strong>Bedingungen:</strong> Datei an eine Aufgabe angehängt &nbsp;·&nbsp; Empfänger ist nicht der Hochlader &nbsp;·&nbsp; Projekteinstellung aktiv</div></div>
    <div class="nf-flow-body">
        <div class="nf-step"><div class="nf-box nf-trigger"><b>Auslöser</b>Benutzer lädt<br>Datei an Aufgabe hoch</div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step" style="flex:1"><div class="nf-box nf-mail"><b>Beispiel-Mail</b><div class="sub">Plenvo: Neuer Anhang – Konzept erstellen</div><div class="prv">Hallo Tom, bei der Aufgabe <em>Konzept erstellen</em> im Projekt <em>Webprojekt</em> wurde ein neuer Anhang hochgeladen.</div></div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step"><div class="nf-box nf-recv"><b>Empfänger</b><ul><li>Alle Zugewiesenen<br>(außer Hochlader)</li><li>intern + extern</li></ul></div></div>
    </div>
</div>
</div>

<!-- ⑤ ───────────────────────────────────────────────────── -->
<div class="nf-section" id="manager">
<h2><span class="nf-cat-dot" style="background:#ec4899"></span>⑤ Projektleitermeldungen</h2>

<div class="nf-flow">
    <div class="nf-flow-head">
        <div class="nf-icon" style="background:#fce7f3;color:#be185d"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="15" height="15"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg></div>
        <span class="nf-flow-title">Neue Aufgabe erstellt</span>
        <span class="nf-badge">sofort</span>
    </div>
    <div class="nf-cond"><div class="nf-cond-box cond-std"><strong>Bedingungen:</strong> Aufgabe wird im Projekt angelegt &nbsp;·&nbsp; Ersteller ist nicht selbst Projektleiter &nbsp;·&nbsp; Projekteinstellung aktiv</div></div>
    <div class="nf-flow-body">
        <div class="nf-step"><div class="nf-box nf-trigger"><b>Auslöser</b>Mitglied erstellt<br>neue Aufgabe</div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step" style="flex:1"><div class="nf-box nf-mail"><b>Beispiel-Mail</b><div class="sub">Plenvo: Neue Aufgabe – Angebot schreiben</div><div class="prv">Eine neue Aufgabe wurde im Projekt <em>Kundenprojekt</em> erstellt: <em>Angebot schreiben</em>. Erstellt von: <em>Anna Müller</em>.</div></div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step"><div class="nf-box nf-recv"><b>Empfänger</b><ul><li>Projektleiter / Owner</li><li>Manager des Projekts</li></ul></div></div>
    </div>
</div>

<div class="nf-flow">
    <div class="nf-flow-head">
        <div class="nf-icon" style="background:#fce7f3;color:#be185d"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="15" height="15"><polyline points="9 11 12 14 22 4"/><path d="M21 12v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5a2 2 0 012-2h11"/></svg></div>
        <span class="nf-flow-title">Aufgabe abgeschlossen</span>
        <span class="nf-badge">sofort</span>
    </div>
    <div class="nf-cond"><div class="nf-cond-box cond-std"><strong>Bedingungen:</strong> Aufgabenstatus wechselt auf einen „Erledigt"-Status &nbsp;·&nbsp; Erledigender ist nicht selbst Projektleiter &nbsp;·&nbsp; Projekteinstellung aktiv</div></div>
    <div class="nf-flow-body">
        <div class="nf-step"><div class="nf-box nf-trigger"><b>Auslöser</b>Benutzer oder Externer<br>setzt Status auf<br>„Erledigt"</div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step" style="flex:1"><div class="nf-box nf-mail"><b>Beispiel-Mail</b><div class="sub">Plenvo: Aufgabe abgeschlossen – Testbericht schreiben</div><div class="prv">Die Aufgabe <em>Testbericht schreiben</em> (Projekt: QA-Zyklus) wurde abgeschlossen. Abgeschlossen von: <em>Tom Schmidt</em>.</div></div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step"><div class="nf-box nf-recv"><b>Empfänger</b><ul><li>Projektleiter / Owner</li><li>Manager des Projekts</li></ul></div></div>
    </div>
</div>

<div class="nf-flow">
    <div class="nf-flow-head">
        <div class="nf-icon" style="background:#fce7f3;color:#be185d"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="15" height="15"><path d="M22 12h-4l-3 9L9 3l-3 9H2"/></svg></div>
        <span class="nf-flow-title">Jede Aktivität im Projekt (opt-in)</span>
        <span class="nf-badge nf-badge-off">Standard: deaktiviert</span>
    </div>
    <div class="nf-cond">
        <div class="nf-cond-box cond-off"><strong>Standardmäßig deaktiviert.</strong> Muss pro Projekt unter Projekteinstellungen → Benachrichtigungen aktiviert werden.</div>
        <div class="nf-cond-box cond-std"><strong>Auslöser wenn aktiv:</strong> Jede Statusänderung, jeder Kommentar, jede Änderung durch ein Projektmitglied oder externen Teilnehmer</div>
    </div>
    <div class="nf-flow-body">
        <div class="nf-step"><div class="nf-box nf-trigger"><b>Auslöser</b>Beliebige Aktivität<br>an einer Aufgabe</div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step" style="flex:1"><div class="nf-box nf-mail"><b>Beispiel-Mail</b><div class="sub">Plenvo: Aktivität – Kundenprojekt</div><div class="prv"><em>Anna Müller</em> – Status geändert<br>Aufgabe: <em>Angebot schreiben</em></div></div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step"><div class="nf-box nf-recv"><b>Empfänger</b><ul><li>Projektleiter / Owner</li><li>Manager des Projekts</li></ul></div></div>
    </div>
</div>
</div>

<!-- ⑥ ───────────────────────────────────────────────────── -->
<div class="nf-section" id="konto">
<h2><span class="nf-cat-dot" style="background:#8b5cf6"></span>⑥ Konto &amp; Anmeldung</h2>

<div class="nf-flow">
    <div class="nf-flow-head">
        <div class="nf-icon" style="background:#ede9fe;color:#6d28d9"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="15" height="15"><path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"/><polyline points="22,6 12,13 2,6"/></svg></div>
        <span class="nf-flow-title">E-Mail-Adresse bestätigen</span>
        <span class="nf-badge">sofort · Registrierung</span>
    </div>
    <div class="nf-flow-body">
        <div class="nf-step"><div class="nf-box nf-trigger"><b>Auslöser</b>Neues Konto<br>wird registriert</div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step" style="flex:1"><div class="nf-box nf-mail"><b>Beispiel-Mail</b><div class="sub">Plenvo: E-Mail-Adresse bestätigen</div><div class="prv">Klicken Sie auf den Link um Ihre E-Mail-Adresse zu bestätigen. Der Link ist 24 Stunden gültig.</div></div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step"><div class="nf-box nf-recv"><b>Empfänger</b><ul><li>Neu registrierter Benutzer</li></ul></div></div>
    </div>
</div>

<div class="nf-flow">
    <div class="nf-flow-head">
        <div class="nf-icon" style="background:#ede9fe;color:#6d28d9"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="15" height="15"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0110 0v4"/></svg></div>
        <span class="nf-flow-title">Passwort zurücksetzen</span>
        <span class="nf-badge">sofort · auf Anfrage</span>
    </div>
    <div class="nf-flow-body">
        <div class="nf-step"><div class="nf-box nf-trigger"><b>Auslöser</b>Benutzer klickt<br>„Passwort vergessen?"</div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step" style="flex:1"><div class="nf-box nf-mail"><b>Beispiel-Mail</b><div class="sub">Plenvo: Passwort zurücksetzen</div><div class="prv">Sie haben eine Anfrage zum Zurücksetzen Ihres Passworts gestellt. Der Link ist 1 Stunde gültig.</div></div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step"><div class="nf-box nf-recv"><b>Empfänger</b><ul><li>Anfragender Benutzer</li></ul></div></div>
    </div>
</div>

<div class="nf-flow">
    <div class="nf-flow-head">
        <div class="nf-icon" style="background:#ede9fe;color:#6d28d9"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="15" height="15"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></svg></div>
        <span class="nf-flow-title">Zwei-Faktor-Anmeldung (E-Mail-Code)</span>
        <span class="nf-badge">sofort · bei Login</span>
    </div>
    <div class="nf-cond"><div class="nf-cond-box cond-std"><strong>Bedingungen:</strong> Benutzer hat E-Mail-2FA aktiviert, oder Administrator hat MFA für alle erzwungen</div></div>
    <div class="nf-flow-body">
        <div class="nf-step"><div class="nf-box nf-trigger"><b>Auslöser</b>Benutzer meldet<br>sich an</div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step" style="flex:1"><div class="nf-box nf-mail"><b>Beispiel-Mail</b><div class="sub">Plenvo: Ihr Anmeldecode 483021</div><div class="prv">Hallo, Ihr Anmeldecode lautet: <strong style="letter-spacing:.15em">483021</strong>. Der Code ist 20 Minuten gültig.</div></div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step"><div class="nf-box nf-recv"><b>Empfänger</b><ul><li>Anmeldender Benutzer</li></ul></div></div>
    </div>
</div>

<div class="nf-flow">
    <div class="nf-flow-head">
        <div class="nf-icon" style="background:#ede9fe;color:#6d28d9"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="15" height="15"><path d="M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M23 21v-2a4 4 0 00-3-3.87"/><path d="M16 3.13a4 4 0 010 7.75"/></svg></div>
        <span class="nf-flow-title">Gruppeneinladung</span>
        <span class="nf-badge">sofort · bei Einladung</span>
    </div>
    <div class="nf-flow-body">
        <div class="nf-step"><div class="nf-box nf-trigger"><b>Auslöser</b>Gruppenadmin lädt<br>neuen Benutzer ein</div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step" style="flex:1"><div class="nf-box nf-mail"><b>Beispiel-Mail</b><div class="sub">Plenvo: Sie wurden eingeladen</div><div class="prv">Sie wurden von <em>Klaus Müller</em> eingeladen, dem Team beizutreten. Klicken Sie auf den Link, um Ihr Konto zu aktivieren.</div></div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step"><div class="nf-box nf-recv"><b>Empfänger</b><ul><li>Eingeladene Person</li></ul></div></div>
    </div>
</div>
</div>

<!-- ⑦ ───────────────────────────────────────────────────── -->
<div class="nf-section" id="admin">
<h2><span class="nf-cat-dot" style="background:#64748b"></span>⑦ Administration</h2>

<div class="nf-flow">
    <div class="nf-flow-head">
        <div class="nf-icon" style="background:#f1f5f9;color:#475569"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="15" height="15"><path d="M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2"/><circle cx="9" cy="7" r="4"/><line x1="19" y1="8" x2="19" y2="14"/><line x1="22" y1="11" x2="16" y2="11"/></svg></div>
        <span class="nf-flow-title">Neue Benutzerregistrierung</span>
        <span class="nf-badge">sofort · bei Registrierung</span>
    </div>
    <div class="nf-cond"><div class="nf-cond-box cond-std"><strong>Bedingungen:</strong> Öffentliche Registrierung ist aktiviert &nbsp;·&nbsp; Neuer Benutzer registriert sich (wartet auf E-Mail-Bestätigung)</div></div>
    <div class="nf-flow-body">
        <div class="nf-step"><div class="nf-box nf-trigger"><b>Auslöser</b>Neuer Benutzer<br>registriert sich</div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step" style="flex:1"><div class="nf-box nf-mail"><b>Beispiel-Mail</b><div class="sub">Plenvo: Neue Registrierung – anna.mueller</div><div class="prv">Ein neuer Benutzer hat sich registriert und wartet auf E-Mail-Bestätigung:<br>Benutzername: <em>anna.mueller</em> &nbsp;·&nbsp; E-Mail: <em>anna@beispiel.de</em></div></div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step"><div class="nf-box nf-recv"><b>Empfänger</b><ul><li>Alle Admins</li></ul></div></div>
    </div>
</div>

<div class="nf-flow">
    <div class="nf-flow-head">
        <div class="nf-icon" style="background:#f1f5f9;color:#475569"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="15" height="15"><rect x="3" y="3" width="7" height="7"/><rect x="14" y="3" width="7" height="7"/><rect x="14" y="14" width="7" height="7"/><rect x="3" y="14" width="7" height="7"/></svg></div>
        <span class="nf-flow-title">Anfrage: Gruppen erstellen dürfen</span>
        <span class="nf-badge">sofort · bei Anfrage</span>
    </div>
    <div class="nf-cond"><div class="nf-cond-box cond-std"><strong>Bedingungen:</strong> Benutzer ohne Gruppenrecht stellt unter Einstellungen → Voreinstellungen eine Anfrage</div></div>
    <div class="nf-flow-body">
        <div class="nf-step"><div class="nf-box nf-trigger"><b>Auslöser</b>Benutzer beantragt<br>Recht zur Gruppen-<br>erstellung</div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step" style="flex:1"><div class="nf-box nf-mail"><b>Beispiel-Mail</b><div class="sub">Plenvo: Gruppenanfrage von anna.mueller</div><div class="prv">Ein Benutzer beantragt die Berechtigung, eigene Gruppen anlegen zu dürfen:<br>Benutzername: <em>anna.mueller</em> &nbsp;·&nbsp; E-Mail: <em>anna@beispiel.de</em></div></div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step"><div class="nf-box nf-recv"><b>Empfänger</b><ul><li>Alle Admins</li></ul></div></div>
    </div>
</div>
</div>

<!-- ⑧ ───────────────────────────────────────────────────── -->
<div class="nf-section" id="extern">
<h2><span class="nf-cat-dot" style="background:#f59e0b"></span>⑧ Externe Teilnehmer</h2>

<div class="nf-flow">
    <div class="nf-flow-head">
        <div class="nf-icon" style="background:#fef3c7;color:#b45309"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="15" height="15"><path d="M10 13a5 5 0 007.54.54l3-3a5 5 0 00-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 00-7.54-.54l-3 3a5 5 0 007.07 7.07l1.71-1.71"/></svg></div>
        <span class="nf-flow-title">Identitätsprüfung nach Inaktivität</span>
        <span class="nf-badge">nach 3 h Inaktivität</span>
    </div>
    <div class="nf-cond">
        <div class="nf-cond-box cond-std"><strong>Bedingungen:</strong> Externer öffnet seinen Freigabelink &nbsp;·&nbsp; letzte Aktivität liegt mehr als 3 Stunden zurück &nbsp;·&nbsp; E-Mail-Adresse hinterlegt</div>
        <div class="nf-cond-box cond-note"><strong>Hinweis:</strong> Externe ohne hinterlegte E-Mail-Adresse sind von dieser Prüfung ausgenommen.</div>
    </div>
    <div class="nf-flow-body">
        <div class="nf-step"><div class="nf-box nf-trigger"><b>Auslöser</b>Externer öffnet<br>Freigabelink nach<br>langer Pause</div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step" style="flex:1"><div class="nf-box nf-mail"><b>Beispiel-Mail</b><div class="sub">Plenvo: Ihr Zugangscode 719204</div><div class="prv">Hallo Sandra, Ihr Zugangscode für die externe Aufgabenansicht lautet: <strong style="letter-spacing:.15em">719204</strong>. Gültig 20 Minuten.</div></div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step"><div class="nf-box nf-recv"><b>Empfänger</b><ul><li>Externer Teilnehmer<br>(an seine E-Mail)</li></ul></div></div>
    </div>
</div>

<div class="nf-flow">
    <div class="nf-flow-head">
        <div class="nf-icon" style="background:#fef3c7;color:#b45309"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="15" height="15"><path d="M22 12h-4l-3 9L9 3l-3 9H2"/></svg></div>
        <span class="nf-flow-title">Externer ändert Status oder kommentiert</span>
        <span class="nf-badge">sofort</span>
    </div>
    <div class="nf-cond"><div class="nf-cond-box cond-std"><strong>Bedingungen:</strong> Aktivitäts-Mail an Manager (wenn Projekteinstellung „Jede Aktivität" aktiv) &nbsp;·&nbsp; Kommentar-Mail an Zugewiesene (immer, wenn Projekteinstellung aktiv)</div></div>
    <div class="nf-flow-body">
        <div class="nf-step"><div class="nf-box nf-trigger"><b>Auslöser</b>Externer setzt Status<br>oder schreibt<br>Kommentar</div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step" style="flex:1"><div class="nf-box nf-mail"><b>Beispiel-Mail</b><div class="sub">Plenvo: Aufgabe abgeschlossen – Lieferung prüfen</div><div class="prv">Die Aufgabe <em>Lieferung prüfen</em> wurde von <em>Sandra Meier (Extern)</em> abgeschlossen. Projekt: <em>Lagerprojekt</em>.</div></div></div>
        <div class="nf-arrow">→</div>
        <div class="nf-step"><div class="nf-box nf-recv"><b>Empfänger</b><ul><li>Projektleiter / Manager<br>(bei Erledigung)</li><li>Alle Zugewiesenen<br>(bei Kommentar)</li></ul></div></div>
    </div>
</div>
</div>

<!-- Legend -->
<div style="display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1.25rem;padding-top:1.1rem;border-top:1px solid var(--border-color)">
    <span style="font-size:.78rem;font-weight:600;color:var(--text-muted);align-self:center">Legende:</span>
    <span style="display:flex;align-items:center;gap:.35rem;font-size:.8rem;color:#166534"><span style="width:11px;height:11px;border-radius:2px;background:#dcfce7;border:1px solid #86efac;display:inline-block"></span>Auslöser</span>
    <span style="display:flex;align-items:center;gap:.35rem;font-size:.8rem;color:#1e3a5f"><span style="width:11px;height:11px;border-radius:2px;background:#eff6ff;border:1px solid #93c5fd;display:inline-block"></span>E-Mail-Inhalt (Beispiel)</span>
    <span style="display:flex;align-items:center;gap:.35rem;font-size:.8rem;color:#581c87"><span style="width:11px;height:11px;border-radius:2px;background:#fdf4ff;border:1px solid #e9d5ff;display:inline-block"></span>Empfänger</span>
    <span style="display:flex;align-items:center;gap:.35rem;font-size:.8rem;color:#78350f"><span style="width:11px;height:11px;border-radius:2px;background:#fffbeb;border:1px solid #fcd34d;display:inline-block"></span>Bedingung</span>
    <span style="display:flex;align-items:center;gap:.35rem;font-size:.8rem;color:#713f12"><span style="width:11px;height:11px;border-radius:2px;background:#fef9c3;border:1px solid #fde047;display:inline-block"></span>Standard: deaktiviert</span>
</div>

</div>
