{% if deployment_mode == 'beta' %}
⚠ BETA — Diese Version ist zur Erprobung freigegeben. Maschinen-Aktionen vor produktivem Einsatz prüfen. Takoma übernimmt keine Haftung für Schäden aus ungetestetem Einsatz.
{% elif deployment_mode == 'demo' %}
DEMO-MODUS — DNC-Send läuft im Simulationsmodus. Keine echten Maschinen-Übertragungen.
{% endif %}
{% if license_state and license_state.state in ('expiring_soon','grace','readonly','tampered','no_license') %}
{% if license_state.state == 'no_license' %}⚠ Keine Lizenz aktiv — {% elif license_state.state == 'tampered' %}⚠ Lizenz manipuliert oder gesperrt — {% elif license_state.state == 'readonly' %}🔒 Read-only-Modus — {% elif license_state.state == 'grace' %}⏳ Lizenz abgelaufen — {% else %}⚠ Lizenz läuft in {{ '%.0f'|format(license_state.days_left or 0) }} Tagen ab — {% endif %} {{ license_state.message }} Lizenz verwalten →
{% endif %} {# ===== Auto-Update-Banner ===== #} {% if update_state and update_state.update_available %}
{% if update_state.critical %}🔴 KRITISCHES Sicherheits-Update{% else %}🆕 Neue Version verfügbar{% endif %}: Takoma {{ update_state.latest }} (du nutzt {{ update_state.current }}) {% if update_state.release_date %} · veröffentlicht am {{ update_state.release_date }}{% endif %} {% if update_state.download_url_windows and update_state.download_url_windows.startswith(('http://','https://')) %} Windows ↓ {% endif %} {% if update_state.download_url_mac and update_state.download_url_mac.startswith(('http://','https://')) %} Mac ↓ {% endif %} {% if not update_state.critical %} {% endif %}
{% endif %} {# v1.18.0: topbar_actions in eine 2. Zeile auslagern, damit lange Tab-Reihen (Angebote: 7 Tabs + Neues Angebot) die Überschrift nicht auf "A." quetschen. #} {% set _topbar_actions_capture %}{% block topbar_actions %}{% endblock %}{% endset %}

{% block heading %}{% endblock %}

{# v1.18.0: topbar_actions wird unten in 2. Zeile gerendert — siehe _topbar_actions_capture #} {% if current_user %} {# ---------- Notification bell ---------- #}
{% if current_user.photo_path %} {% else %}
{{ (current_user.first_name[0] if current_user.first_name else '') ~ (current_user.last_name[0] if current_user.last_name else '') }}
{% endif %}
{% endif %}
{# /topbar-row-main #} {# v1.18.0: 2. Zeile für Tabs + Primary-Action-Button. Nur wenn Block befüllt ist. #} {% if _topbar_actions_capture and _topbar_actions_capture|trim %}
{{ _topbar_actions_capture|safe }}
{% endif %}
{% block content %}{% endblock %}
💬
📋 Neuer Auftrag 📝 Neues Angebot 📨 Neue Anfrage 🏢 Neuer Kunde 🔧 Neuer Artikel
{# ===== FIRST-RUN-TOUR (schlanke Eigenbau-Variante, kein externes Lib) ===== #}
{# v1.12.0: Sparkline-Auto-Loader für alle .sparkline-widget Elemente #} {# Takoma Voice — Floating Mic-Button + Modal (v1.13.0) #} {% include '_voice_widget.html' ignore missing %} {# Keyboard-Shortcuts global (v1.16.2) — drücke ? für Hilfe #} {# Bulk-Actions für Multi-Select-Listen (v1.16.2) #} {# Realtime-Client (WebSocket) — Hall-Display, Notifications, Chat (v1.16.2) #} {# Wake-Word "Hey Takoma" — opt-in via localStorage.setItem('takoma_wake_word','1') (v1.16.2) #} {# PWA-Install-Prompt — dezenter Banner mit 7-Tage-Dismiss (v1.16.2) #} {# Onboarding-Tour für neue User (v1.16.0) — auto-start beim 1. Login #} {% if current_user %} {% endif %}