/* ============================================================
   BOOKLERA Admin — CSS (Mobile-first, Themed mit Light + Dark)
   ============================================================ */

/*  THEME-SYSTEM (Commit 2026-04-15)
    ─────────────────────────────────
    Alle Farben laufen ueber CSS-Custom-Properties. :root enthaelt den
    Light-Mode als Default. [data-theme="dark"] auf <html> overridet
    mit Dark-Mode-Werten. Der Theme-Wechsel wird ueber JS auf <html>
    gesetzt + in localStorage persistiert.

    KATEGORIEN:
      Brand       — Primary-Farben (in beiden Themes identisch, nur
                    leichte Shade-Anpassung in Dark-Mode)
      Background  — Body/Surface/Elevated (Hintergrund-Flaechen)
      Text        — Primary/Secondary/Muted
      Border      — Normal/Subtle
      Sidebar     — BG/Text/Hover/Active (bleibt semi-dark in beiden
                    Themes, aber Dark-Mode-Sidebar ist "surface-2" und
                    der Content ist dunkler = Marcos Wunsch "dunkler BG,
                    helleres Menu")
      Status      — Success/Warning/Danger/Info (Pastel-Varianten)
*/

:root {
    /* ── Brand (theme-stable) ─────────────────────────── */
    /* L-C (2026-04-27): Primary sanft Richtung Logo-Marineblau justiert.
       Vorher: #5B8BA6 (heller Blaugrau). Jetzt: #3E5F88 (klarer, naeher am Logo).
       Nicht das volle Logo-Marineblau (#1A2E5A) — Mittelweg fuer sanftes Update. */
    --primary: #3E5F88;
    --primary-dark: #2D4A6E;
    --primary-light: #88A8C8;
    --primary-rgb: 62, 95, 136;

    /* Brand-Farben aus dem Booklera-Logo (Light + Dark identisch) — 2026-04-27 */
    --brand-blue: #2A4A8E;          /* Schrift "Booklera" Marineblau */
    --brand-blue-dark: #1A2E5A;     /* dunkelster Block (Schatten) */
    --brand-blue-light: #3E7BC8;    /* obere helle Wuerfel */
    --brand-orange: #F39C12;        /* der Orange-Wuerfel (DER Akzent) */
    --brand-orange-light: #FFB347;  /* Hover-State */
    --brand-orange-bg: rgba(243, 156, 18, 0.10); /* Subtle Tint */

    /* ── Backgrounds (Light default) ─────────────────── */
    --bg-base: #FFFFFF;           /* body/page — Dashboard Light Figma exact: weiss (war #F0EDE8 warm-grau) */
    --bg-surface: #FFFFFF;         /* cards, panels */
    --bg-surface-2: #F8F9FA;       /* table-header, hover-BG, card-header */
    --bg-elevated: #FFFFFF;        /* modal, dropdown */
    --bg-sidebar: #FFFFFF;              /* helle Sidebar im Light-Mode */
    --bg-sidebar-hover: var(--bg-base);        /* Hover: wie Content-BG */
    --bg-sidebar-active: #E4DED0;       /* Active: leicht beige */
    --bg-sidebar-header: rgba(0,0,0,0.04);
    --bg-sidebar-border: #D5D5DC;       /* Border rechts an der Sidebar */
    --bg-input: #FFFFFF;
    --bg-code: #F5F5F5;
    --bg-hover: rgba(0,0,0,0.03);

    /* ── Text Colors ─────────────────────────────────── */
    --text-primary: #1A1A2E;       /* Haupttext */
    --text-secondary: #4A4A5E;     /* Sekundaer */
    --text-muted: #7A7B8A;         /* Subtext, Labels, Platzhalter */
    --text-inverted: #FFFFFF;      /* Text auf Primary-BG */
    --text-on-accent: #FFFFFF;     /* Text auf farbigem Akzent (Banner-Buttons, Badges) */
    --text-sidebar: #1A1A2E;       /* Sidebar-Haupttext — dunkel auf hellem BG */
    --text-sidebar-dim: #5A5A6E;   /* Sidebar Subtext */
    --text-sidebar-section: #6A6B7A;  /* Sidebar Gruppen-Header */
    --text-sidebar-active: var(--primary-dark);  /* Aktiver Link — dunkel auf hellem BG */
    --text-link: var(--primary);
    --text-link-hover: var(--primary-dark);

    /* ── Borders ─────────────────────────────────────── */
    --border: #D5D5DC;
    --border-subtle: rgba(0,0,0,0.06);
    --border-strong: #B8B9C8;

    /* ── Status Colors ───────────────────────────────── */
    --success: #2D9A5A;
    --success-bg: #E6F4EC;
    --warning: #E6A817;
    --warning-bg: #FFF8E1;
    --danger: #D14343;
    --danger-bg: #FDEAEA;
    --info: #3B82F6;
    --info-bg: #EBF2FF;

    /* Iter 14 Phase C.1 (2026-05-05): Badge-Info hellblau (für JS-injected "Karte X" Pills) */
    --badge-info-bg: #E3F2FD;       /* helles Blau, kontrastiert zu --info */
    --badge-info-text: #1565C0;     /* dunkleres Blau für Text */

    /* Iter 14 Phase C.3 (2026-05-05): Sektionen-Editor + Team Variables */
    --cream-bg: var(--bg-base);            /* Warmes Beige (Tenant-Hintergrund-Block) */
    --warning-border-strong: #FCD34D; /* Gelb-Border für Warning-Banner */
    --warning-text-strong: #92400E; /* Dunkles Braun für Warning-Text-Inhalt */
    --brand-vimeo: #1AB7EA;         /* Vimeo-Brand-Blau für URL-Preview */

    /* Iter 14 Phase C.4 (2026-05-05): Mac-Window-Dots (Preview-Bar in index.html) */
    --mac-dot-red: #FF5F57;
    --mac-dot-yellow: #FEBC2E;
    --mac-dot-green: #28C840;
    --color-picker-border: #E0E0E0; /* Default-Border für Color-Picker-Cards */

    /* Iter 14 Phase C.5 (2026-05-05): Buchhaltung rechnung_detail Variables */
    --xrechnung-success: #047857;   /* Forest-Green für XRechnung/ZUGFeRD-Status */
    --xrechnung-info-bg: #EFF6FF;   /* Blau-Hintergrund für XRechnung-Info-Banner */
    --xrechnung-info-text: #1E3A8A; /* Dunkles Blau für XRechnung-Info-Text */

    /* Iter 14 Phase C.6 (2026-05-05): Buchhaltung Rest Variables */
    --warning-gold: #D69E2E;        /* Warm-Gold für Mahnstufe-2 + Mahnungs-Stat */
    --mahnung-danger-bg: #FFF4F4;   /* Hellrotes Hintergrund für Überfällig-Stat */
    --mahnung-danger-border: #B23C3C; /* Dunkleres Rot für Border */
    --mahnung-warning-bg: #FFF8EE;  /* Helles Gelb für Mahnungen-Stat */
    --bh-gradient-from: #F0F7FB;    /* Ausgaben-Hero-Card Gradient-Start */
    --bh-gradient-to: #EEF4F8;      /* Ausgaben-Hero-Card Gradient-End */
    --bh-gradient-border: #C8D9E5;  /* Ausgaben-Hero-Card Border */
    --bh-scan-warn-bg: #FEF3E5;     /* Scanner-Status Warning bg */
    --bh-scan-warn-text: #9C6A1B;   /* Scanner-Status Warning Text */
    --bh-scan-success-bg: #E8F5E9;  /* Scanner-Status Success bg */
    --bh-scan-success-text: #2E7D32; /* Scanner-Status Success Text */
    --bh-scan-info-bg: #EEF4F8;     /* Scanner-Status Info bg */
    --bh-scan-info-text: #37474F;   /* Scanner-Status Info Text */

    /* ── Gold-Akzent (Block 17c — Kalkulation-Herzstueck-Branding) ──
       Nur fuer Settings-Seiten die als Premium/Herzstueck markiert sind
       (z.B. /admin/einstellungen/kalkulation). Nicht generisch nutzen.
       Light: warmes Gold, Dark: helleres Gold mit besserem Kontrast. */
    --gold-accent: #D4AF37;
    --gold-accent-dim: #B8860B;

    /* ── Legacy-Alias (Kompatibilitaet mit existierenden Regeln) ── */
    --secondary: var(--bg-base);
    --white: var(--bg-surface);
    --dark: var(--bg-sidebar);
    --dark-light: var(--bg-sidebar-hover);
    --warm-gray: var(--text-muted);
    --light-gray: #E8E8EC;

    /* ── Shadows ─────────────────────────────────────── */
    --shadow: 0 1px 3px rgba(0,0,0,0.1);
    --shadow-md: 0 4px 12px rgba(0,0,0,0.08);
    --shadow-lg: 0 8px 24px rgba(0,0,0,0.12);
    --shadow-card: 0 1px 4px rgba(0,0,0,0.06);

    /* ── Fonts + Geometry (theme-stable) ─────────────── */
    --font-heading: 'Inter', -apple-system, sans-serif;
    --font-body: 'Inter', -apple-system, sans-serif;
    --sidebar-width: 250px;
    --header-height: 60px;
    --radius: var(--space-sm);

    /* Iter 14 Block 4.1: Spacing-System (matched tenant.css) */
    --space-xs: 4px;
    --space-sm: 8px;
    --space-md: 16px;
    --space-lg: 24px;
    --space-xl: 32px;
    --space-2xl: 48px;
    --space-3xl: 64px;
    --space-4xl: 96px;
}

/* ============================================================
   FOUNDATION TOKENS — Phase 0.1 (2026-05-22)
   ============================================================
   Neue Design-Foundation aus Figma-Variables exportiert.
   Alle Tokens mit bk-* Prefix → 0 Konflikt mit bestehenden Vars.
   Light-Defaults hier in :root. Dark-Overrides in [data-theme="dark"]
   Foundation-Block weiter unten.

   Nutzung in Components: var(--bk-accent-primary), var(--bk-space-md), etc.
   Migration-Strategie: Pages werden schrittweise auf bk-* umgestellt.
   Alte Vars bleiben aktiv fuer nicht-migrierte Pages.

   Source: figma/FIGMA_DESIGN_STATE.md + figma/FIGMA_PAGES_ROADMAP.md
============================================================ */
:root {
    /* ── SEMANTIC: Background / Surface ─────────────────── */
    --bk-bg-canvas: #FFFFFF;          /* Dashboard Light Figma exact: weisser Page-Hintergrund (war #F7F8FA Grau) */
    --bk-bg-surface: #FFFFFF;         /* Karten, Modale */
    --bk-bg-surface-2: #EFF0F3;       /* Subtle Tint, Table-Header */
    --bk-bg-surface-hover: #DCDFE4;   /* Hover-State */
    --bk-bg-inverse: #0B0E18;         /* Inverted (dunkel auf hell) */

    /* ── SEMANTIC: Text ────────────────────────────────── */
    --bk-text-primary: #181C24;       /* Haupttext */
    --bk-text-secondary: #4A4F58;     /* Sekundaertext */
    --bk-text-muted: #9AA1AC;         /* Disabled, Placeholder */
    --bk-text-on-primary: #FFFFFF;    /* Text auf Primary-BG */
    --bk-text-on-accent: #FFFFFF;     /* Text auf Akzent-BG */
    --bk-text-accent: #F39C12;        /* Orange-Akzent-Text */
    --bk-text-link: #3E5F88;          /* Link-Farbe */

    /* ── SEMANTIC: Border ──────────────────────────────── */
    --bk-border-default: #DCDFE4;
    --bk-border-subtle: #EFF0F3;
    --bk-border-strong: #9AA1AC;
    --bk-border-focus: #3E5F88;       /* Focus-Ring */

    /* ── SEMANTIC: Accent (Primary + Orange) ───────────── */
    --bk-accent-primary: #3E5F88;          /* Marineblau (Logo) */
    --bk-accent-primary-hover: #2A4A8E;
    --bk-accent-orange: #F39C12;           /* Brand-Orange (DER Akzent) */
    --bk-accent-orange-hover: #DB8A0A;
    --bk-accent-orange-tint: #FFF5E1;      /* Subtle Orange-BG */

    /* ── SEMANTIC: Status ──────────────────────────────── */
    --bk-status-success: #2E9959;          /* Dashboard Light 23:14 Border-Akzent Stunden-KPI (Figma exact, war #2D9A5A) */
    --bk-status-success-bg: #E6F5EC;
    --bk-status-warning: #F39C12;          /* Warning in Brand-Orange */
    --bk-status-warning-bg: #FFF5E1;
    --bk-status-danger: #D14242;           /* Dashboard Light 23:9 Border-Akzent Unbezahlt-KPI (Figma exact, war #D14343) */
    --bk-status-danger-bg: #FDEAEA;
    --bk-status-info: #294A8C;             /* Dashboard Light 23:4 Border-Akzent Auftraege-KPI (Figma exact, war #356099 — deutlich heller) */
    --bk-status-info-bg: #E8F2FB;

    /* ── SECTION-FARBEN (Sidebar + Page-Akzente) ──
       Pro Section: -base (Haupt) · -bg (Tint) · -border (Subtle Border) */

    /* TAeGLICH (Workflow) — Marineblau */
    --bk-section-taeglich-base: #2A4A8E;
    --bk-section-taeglich-bg: #EAF1FA;
    --bk-section-taeglich-border: #A6BFE0;

    /* ZEIT & TEAM — Gruen */
    --bk-section-zeit-team-base: #2D9A5A;
    --bk-section-zeit-team-bg: #E6F5EC;
    --bk-section-zeit-team-border: #9CD9B5;

    /* RESSOURCEN — Orange (Brand-Akzent) */
    --bk-section-ressourcen-base: #F39C12;
    --bk-section-ressourcen-bg: #FFF5E1;
    --bk-section-ressourcen-border: #FFD17A;

    /* KUNDEN — Hellblau */
    --bk-section-kunden-base: #6B9DDB;
    --bk-section-kunden-bg: #E8F2FB;
    --bk-section-kunden-border: #8CBFF2;

    /* KOMMUNIKATION — Cognac/Bronze (kein Pink!) */
    --bk-section-komm-base: #805A33;
    --bk-section-komm-bg: #F5EDE2;
    --bk-section-komm-border: #C69E6B;

    /* MATERIAL & LAGER — Ocker */
    --bk-section-material-base: #8C7319;
    --bk-section-material-bg: #FBF3D6;
    --bk-section-material-border: #D9C166;

    /* BAUSTELLE — Rot (Achtung/Doku) */
    --bk-section-baustelle-base: #D14343;
    --bk-section-baustelle-bg: #FDEAEA;
    --bk-section-baustelle-border: #F0A0A0;

    /* FINANZEN — Gruen (Geld) */
    --bk-section-finanzen-base: #2D9A5A;
    --bk-section-finanzen-bg: #E6F5EC;
    --bk-section-finanzen-border: #9CD9B5;

    /* NETZWERK — Slate-Blue (kein Lila/Tuerkis!) */
    --bk-section-netzwerk-base: #4B5C73;
    --bk-section-netzwerk-bg: #EEF1F5;
    --bk-section-netzwerk-border: #8CA0B8;

    /* VERWALTUNG — Grau (Settings) */
    --bk-section-verwaltung-base: #8C8C9E;
    --bk-section-verwaltung-bg: #F2F2F5;
    --bk-section-verwaltung-border: #B3B3C8;

    /* ── SPACING (12er-Skala) ──────────────────────────── */
    --bk-space-xs: 4px;
    --bk-space-sm: 8px;
    --bk-space-md: 12px;
    --bk-space-lg: 16px;
    --bk-space-xl: 20px;
    --bk-space-2xl: 24px;
    --bk-space-3xl: 32px;
    --bk-space-4xl: 40px;
    --bk-space-5xl: 48px;
    --bk-space-6xl: 64px;
    --bk-space-7xl: 80px;
    --bk-space-8xl: 96px;

    /* ── RADII ─────────────────────────────────────────── */
    --bk-radius-none: 0;
    --bk-radius-xs: 2px;
    --bk-radius-sm: 4px;
    --bk-radius-md: 8px;
    --bk-radius-lg: 12px;
    --bk-radius-xl: 16px;
    --bk-radius-2xl: 20px;
    --bk-radius-3xl: 24px;
    --bk-radius-full: 999px;

    /* ── TYPOGRAPHY: Font-Sizes ────────────────────────── */
    --bk-font-size-xs: 10px;
    --bk-font-size-sm: 11px;
    --bk-font-size-base: 12px;
    --bk-font-size-md: 13px;
    --bk-font-size-lg: 14px;
    --bk-font-size-xl: 16px;
    --bk-font-size-2xl: 18px;
    --bk-font-size-3xl: 20px;
    --bk-font-size-4xl: 24px;
    --bk-font-size-5xl: 28px;
    --bk-font-size-6xl: 32px;
    --bk-font-size-7xl: 36px;
    --bk-font-size-8xl: 48px;
    --bk-font-size-9xl: 60px;

    /* ── TYPOGRAPHY: Line-Heights ──────────────────────── */
    --bk-lh-tight: 1.15;
    --bk-lh-snug: 1.3;
    --bk-lh-normal: 1.5;
    --bk-lh-relaxed: 1.65;
    --bk-lh-loose: 1.8;

    /* ── TYPOGRAPHY: Letter-Spacings ───────────────────── */
    --bk-tracking-tight: -0.2px;
    --bk-tracking-normal: 0;
    --bk-tracking-wide: 0.5px;
    --bk-tracking-wider: 1px;
    --bk-tracking-widest: 1.5px;
}

/* ============================================================
   FOUNDATION TOKENS — DARK MODE OVERRIDES (Phase 0.1)
   ============================================================
   Werte aus Figma Semantic-Collection (Dark-Mode).
   Greift automatisch via existing Theme-Toggle ([data-theme="dark"]).
   Spacing, Radii, Typography bleiben gleich — nur Farben switchen.
============================================================ */
[data-theme="dark"] {
    /* ── SEMANTIC: Background / Surface ─────────────────── */
    --bk-bg-canvas: #0B0E18;
    --bk-bg-surface: #1B1F2D;
    --bk-bg-surface-2: #252A3A;
    --bk-bg-surface-hover: #2C3038;
    --bk-bg-inverse: #FFFFFF;

    /* ── SEMANTIC: Text ────────────────────────────────── */
    --bk-text-primary: #F7F8FA;
    --bk-text-secondary: #BFC4CC;
    --bk-text-muted: #6E747F;
    --bk-text-on-primary: #181C24;
    --bk-text-on-accent: #FFFFFF;
    --bk-text-accent: #F8B233;       /* Heller Orange fuer Kontrast */
    --bk-text-link: #5B82AE;

    /* ── SEMANTIC: Border ──────────────────────────────── */
    --bk-border-default: #2C3038;
    --bk-border-subtle: #181C24;
    --bk-border-strong: #6E747F;
    --bk-border-focus: #5B82AE;

    /* ── SEMANTIC: Accent ──────────────────────────────── */
    --bk-accent-primary: #5B82AE;
    --bk-accent-primary-hover: #7AA0CB;
    --bk-accent-orange: #F8B233;
    --bk-accent-orange-hover: #FFB73D;
    --bk-accent-orange-tint: #4E3203;

    /* ── SEMANTIC: Status (pastelliert in Dark) ────────── */
    --bk-status-success: #5DBA80;
    --bk-status-success-bg: #155E34;
    --bk-status-warning: #F8B233;
    --bk-status-warning-bg: #4E3203;
    --bk-status-danger: #D87575;
    --bk-status-danger-bg: #7A1818;
    --bk-status-info: #5B82AE;
    --bk-status-info-bg: #142855;

    /* ── SECTION-FARBEN (Dark — alle pastelliert) ──────── */
    --bk-section-taeglich-base: #6B9DDB;
    --bk-section-taeglich-bg: #142855;
    --bk-section-taeglich-border: #1F3870;

    --bk-section-zeit-team-base: #5DBA80;
    --bk-section-zeit-team-bg: #155E34;
    --bk-section-zeit-team-border: #1F7E47;

    --bk-section-ressourcen-base: #F8B233;
    --bk-section-ressourcen-bg: #4E3203;
    --bk-section-ressourcen-border: #7A4D05;

    --bk-section-kunden-base: #8CBFF2;
    --bk-section-kunden-bg: #142855;
    --bk-section-kunden-border: #356099;

    --bk-section-komm-base: #C69E6B;
    --bk-section-komm-bg: #5C3F20;
    --bk-section-komm-border: #A07D45;

    --bk-section-material-base: #D9C166;
    --bk-section-material-bg: #5E4C0E;
    --bk-section-material-border: #B9A03A;

    --bk-section-baustelle-base: #D87575;
    --bk-section-baustelle-bg: #7A1818;
    --bk-section-baustelle-border: #A82B2B;

    --bk-section-finanzen-base: #5DBA80;
    --bk-section-finanzen-bg: #155E34;
    --bk-section-finanzen-border: #1F7E47;

    --bk-section-netzwerk-base: #8CA0B8;
    --bk-section-netzwerk-bg: #34425A;
    --bk-section-netzwerk-border: #6B7E97;

    --bk-section-verwaltung-base: #B3B3C8;
    --bk-section-verwaltung-bg: #4E4E60;
    --bk-section-verwaltung-border: #8C8C9E;

    /* ── Mahnung-KPI-Cards Dark-Mode-Override (Bug-Fix 2026-05-27) ─────── */
    /* Vorher: --mahnung-danger-bg=#FFF4F4 + --mahnung-warning-bg=#FFF8EE
       ohne Dark-Override → bleibt im Dark-Mode hellrosa/beige */
    --mahnung-danger-bg: color-mix(in srgb, var(--danger) 18%, var(--bk-bg-surface));
    --mahnung-warning-bg: color-mix(in srgb, var(--warning) 18%, var(--bk-bg-surface));

    /* ── Ausgaben-Hero-Card (KI-Scanner) Dark-Mode-Override (Bug-Fix 2026-06-18 #631) ─────── */
    /* Vorher: --bh-gradient-from/to/border = helle Hex (#F0F7FB/#EEF4F8/#C8D9E5)
       ohne Dark-Override → Karte bleibt im Dark-Mode weiß/hellblau (Marco-Foto Bild 1+2) */
    --bh-gradient-from: color-mix(in srgb, var(--bk-accent-primary) 14%, var(--bk-bg-surface));
    --bh-gradient-to: var(--bk-bg-surface);
    --bh-gradient-border: color-mix(in srgb, var(--bk-accent-primary) 30%, var(--bk-bg-surface));
}
/* ============================================================
   END OF FOUNDATION TOKENS — Phase 0.1
============================================================ */


/* ============================================================
   FOUNDATION COMPONENTS — Phase 0.2 (2026-05-22)
   ============================================================
   20 wiederverwendbare CSS-Komponenten im BEM-Style mit bk-* Prefix.
   Alle Visual-Properties referenzieren --bk-* Tokens aus Phase 0.1.
   → Light/Dark wechselt automatisch via existing data-theme="dark"

   Konvention:
     Block:     .bk-btn
     Element:   .bk-btn__icon, .bk-btn__label
     Modifier:  .bk-btn--primary, .bk-btn--m, .bk-btn--disabled

   Migration-Strategie: Pages werden schrittweise von alten
   Klassen (.btn, .kpi-card) auf bk-* migriert. Keine alten
   Klassen werden ueberschrieben.
============================================================ */

/* ─── BUTTON ───────────────────────────────────────────── */
.bk-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--bk-space-sm);
    padding: var(--bk-space-md) var(--bk-space-lg);
    border-radius: var(--bk-radius-md);
    font-family: var(--font-body);
    font-weight: 600;
    font-size: var(--bk-font-size-lg);
    line-height: 1;
    border: 1px solid transparent;
    background: transparent;
    color: var(--bk-text-primary);
    cursor: pointer;
    text-decoration: none;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, transform 0.05s ease;
    white-space: nowrap;
    user-select: none;
}
.bk-btn:focus-visible {
    outline: 2px solid var(--bk-border-focus);
    outline-offset: 2px;
}
.bk-btn:active { transform: translateY(1px); }
.bk-btn:disabled, .bk-btn--disabled { opacity: 0.4; cursor: not-allowed; pointer-events: none; }

/* Sizes */
.bk-btn--s { height: 32px; padding: var(--bk-space-sm) var(--bk-space-md); font-size: var(--bk-font-size-md); border-radius: var(--bk-radius-sm); }
.bk-btn--m { height: 40px; padding: var(--bk-space-md) var(--bk-space-lg); font-size: var(--bk-font-size-lg); }
.bk-btn--l { height: 48px; padding: var(--bk-space-md) var(--bk-space-xl); font-size: var(--bk-font-size-xl); }

/* Types */
.bk-btn--primary { background: var(--bk-accent-primary); color: var(--bk-text-on-accent); }
.bk-btn--primary:hover:not(:disabled) { background: var(--bk-accent-primary-hover); }
.bk-btn--orange { background: var(--bk-accent-orange); color: var(--bk-text-on-accent); }
.bk-btn--orange:hover:not(:disabled) { background: var(--bk-accent-orange-hover); }
.bk-btn--secondary { background: var(--bk-bg-surface); color: var(--bk-text-primary); border-color: var(--bk-border-default); }
.bk-btn--secondary:hover:not(:disabled) { background: var(--bk-bg-surface-2); border-color: var(--bk-border-strong); }
.bk-btn--ghost { background: transparent; color: var(--bk-text-primary); }
.bk-btn--ghost:hover:not(:disabled) { background: var(--bk-bg-surface-hover); }
.bk-btn--danger { background: var(--bk-status-danger); color: var(--bk-text-on-accent); }
.bk-btn--danger:hover:not(:disabled) { filter: brightness(0.9); }

/* ─── BADGE ────────────────────────────────────────────── */
.bk-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--bk-space-xs);
    padding: 3px var(--bk-space-sm);
    border-radius: var(--bk-radius-full);
    font-size: var(--bk-font-size-sm);
    font-weight: 600;
    line-height: 1.3;
    white-space: nowrap;
}
.bk-badge--success { background: var(--bk-status-success-bg); color: var(--bk-status-success); }
.bk-badge--warning { background: var(--bk-status-warning-bg); color: var(--bk-status-warning); }
.bk-badge--danger  { background: var(--bk-status-danger-bg);  color: var(--bk-status-danger); }
.bk-badge--info    { background: var(--bk-status-info-bg);    color: var(--bk-status-info); }
.bk-badge--muted   { background: var(--bk-bg-surface-2);      color: var(--bk-text-secondary); }
.bk-badge--primary { background: var(--bk-accent-primary);    color: var(--bk-text-on-accent); }

/* ─── STATUS-DOT ───────────────────────────────────────── */
.bk-status-dot {
    display: inline-flex;
    align-items: center;
    gap: var(--bk-space-sm);
    padding: 6px var(--bk-space-sm);
    font-size: var(--bk-font-size-base);
    font-weight: 500;
    color: var(--bk-text-secondary);
}
.bk-status-dot::before {
    content: "";
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: var(--bk-radius-full);
    background: currentColor;
    flex-shrink: 0;
}
.bk-status-dot--live    { color: var(--bk-status-success); }
.bk-status-dot--live::before { box-shadow: 0 0 8px 2px rgba(45,154,90,0.7); }
.bk-status-dot--idle    { color: var(--bk-status-warning); }
.bk-status-dot--offline { color: var(--bk-text-muted); }
.bk-status-dot--danger  { color: var(--bk-status-danger); }
.bk-status-dot--danger::before { box-shadow: 0 0 6px 1px rgba(209,67,67,0.6); }
.bk-status-dot__label   { color: var(--bk-text-secondary); }

/* ─── ACTION-PILL (Pill mit Arrow) ─────────────────────── */
.bk-pill {
    display: inline-flex;
    align-items: center;
    gap: var(--bk-space-sm);
    padding: var(--bk-space-sm) var(--bk-space-lg);
    border-radius: var(--bk-radius-full);
    font-size: var(--bk-font-size-base);
    font-weight: 600;
    border: 1px solid;
    text-decoration: none;
    transition: transform 0.1s ease;
}
.bk-pill:hover { transform: translateX(2px); }
.bk-pill::after {
    content: "→";
    font-weight: 700;
}
.bk-pill--danger  { background: var(--bk-status-danger-bg);  color: var(--bk-status-danger);  border-color: var(--bk-status-danger); }
.bk-pill--warning { background: var(--bk-status-warning-bg); color: var(--bk-status-warning); border-color: var(--bk-status-warning); }
.bk-pill--info    { background: var(--bk-status-info-bg);    color: var(--bk-status-info);    border-color: var(--bk-status-info); }
.bk-pill--success { background: var(--bk-status-success-bg); color: var(--bk-status-success); border-color: var(--bk-status-success); }
.bk-pill--accent  { background: var(--bk-accent-orange-tint);color: var(--bk-accent-orange);  border-color: var(--bk-accent-orange); }

/* ─── INPUT ────────────────────────────────────────────── */
.bk-input-group { display: flex; flex-direction: column; gap: var(--bk-space-xs); }
.bk-input-group__label {
    font-size: var(--bk-font-size-base);
    font-weight: 600;
    color: var(--bk-text-secondary);
}
.bk-input {
    display: flex;
    align-items: center;
    padding: var(--bk-space-md) var(--bk-space-lg);
    height: 44px;
    background: var(--bk-bg-surface);
    color: var(--bk-text-primary);
    border: 1px solid var(--bk-border-default);
    border-radius: var(--bk-radius-md);
    font-size: var(--bk-font-size-lg);
    font-family: var(--font-body);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    width: 100%;
}
.bk-input::placeholder { color: var(--bk-text-muted); }
.bk-input:focus, .bk-input--focus {
    outline: none;
    border-color: var(--bk-border-focus);
    box-shadow: 0 0 0 3px rgba(62, 95, 136, 0.2);
}
.bk-input--error { border-color: var(--bk-status-danger); }
.bk-input--error:focus { box-shadow: 0 0 0 3px rgba(209, 67, 67, 0.2); }
.bk-input:disabled, .bk-input--disabled {
    background: var(--bk-bg-surface-2);
    color: var(--bk-text-muted);
    opacity: 0.6;
    cursor: not-allowed;
}
.bk-input-group__error {
    font-size: var(--bk-font-size-sm);
    font-weight: 500;
    color: var(--bk-status-danger);
}

/* ─── AVATAR ───────────────────────────────────────────── */
.bk-avatar {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--bk-radius-full);
    background: linear-gradient(135deg, var(--bk-accent-primary) 0%, var(--bk-accent-orange) 100%);
    color: var(--bk-text-on-accent);
    font-weight: 700;
    flex-shrink: 0;
}
.bk-avatar--s  { width: 32px; height: 32px; font-size: var(--bk-font-size-md); }
.bk-avatar--m  { width: 40px; height: 40px; font-size: var(--bk-font-size-xl); }
.bk-avatar--l  { width: 48px; height: 48px; font-size: var(--bk-font-size-2xl); }
.bk-avatar--xl { width: 64px; height: 64px; font-size: var(--bk-font-size-5xl); }
.bk-avatar__status {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 30%;
    height: 30%;
    min-width: 8px;
    min-height: 8px;
    border-radius: var(--bk-radius-full);
    background: var(--bk-status-success);
    border: 2px solid var(--bk-bg-surface);
    box-sizing: border-box;
}

/* ─── KPI-CARD ─────────────────────────────────────────── */
.bk-kpi-card {
    /* Marco-Entscheid 2026-05-22: Code-Foundation ist Source-of-Truth — 4px Border-Left-Akzent
       bleibt drin (lebendiger als Figma-Foundation). Figma wird später nachgezogen. */
    --bk-kpi-accent: var(--bk-accent-primary);
    display: flex;
    flex-direction: column;
    gap: var(--bk-space-sm);
    padding: var(--bk-space-2xl);
    background: var(--bk-bg-surface);
    border: 1px solid var(--bk-border-subtle);
    border-radius: var(--bk-radius-xl);
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
    position: relative;
    overflow: hidden;
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.bk-kpi-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.1); transform: translateY(-2px); }
.bk-kpi-card::before {
    content: "";
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
    background: var(--bk-kpi-accent);
}
.bk-kpi-card__label {
    font-size: var(--bk-font-size-sm);
    font-weight: 600;
    letter-spacing: var(--bk-tracking-wider);
    color: var(--bk-text-secondary);
    text-transform: uppercase;
}
.bk-kpi-card__value {
    font-size: var(--bk-font-size-7xl);
    font-weight: 700;
    color: var(--bk-kpi-accent);
    line-height: var(--bk-lh-tight);
}
.bk-kpi-card__sub {
    font-size: var(--bk-font-size-base);
    color: var(--bk-text-muted);
}
.bk-kpi-card--primary { --bk-kpi-accent: var(--bk-accent-primary); }
.bk-kpi-card--success { --bk-kpi-accent: var(--bk-status-success); }
.bk-kpi-card--warning { --bk-kpi-accent: var(--bk-status-warning); }
.bk-kpi-card--danger  { --bk-kpi-accent: var(--bk-status-danger); }
.bk-kpi-card--info    { --bk-kpi-accent: var(--bk-status-info); }

/* ─── CARD (generisch) ─────────────────────────────────── */
.bk-card {
    background: var(--bk-bg-surface);
    border: 1px solid var(--bk-border-subtle);
    border-radius: var(--bk-radius-xl);
    padding: var(--bk-space-2xl);
    box-shadow: 0 2px 6px rgba(0,0,0,0.04);
}
.bk-card--compact { padding: var(--bk-space-lg); border-radius: var(--bk-radius-lg); }
.bk-card__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--bk-space-lg);
}
.bk-card__title {
    font-size: var(--bk-font-size-xl);
    font-weight: 600;
    color: var(--bk-text-primary);
}
.bk-card__body {
    color: var(--bk-text-secondary);
    line-height: var(--bk-lh-normal);
}

/* ─── SIDEBAR-ITEM ─────────────────────────────────────── */
.bk-sidebar-item {
    --bk-sb-section-base: var(--bk-accent-primary);
    --bk-sb-section-bg: var(--bk-accent-orange-tint);
    --bk-sb-section-border: var(--bk-border-default);
    display: flex;
    align-items: center;
    gap: var(--bk-space-md);
    padding: 10px var(--bk-space-md);
    border-radius: var(--bk-radius-md);
    color: var(--bk-text-primary);
    text-decoration: none;
    font-size: var(--bk-font-size-md);
    font-weight: 500;
    transition: background-color 0.1s ease;
    cursor: pointer;
    position: relative;
}
.bk-sidebar-item:hover { background: var(--bk-bg-surface-hover); }
.bk-sidebar-item--active {
    background: var(--bk-sb-section-bg);
    color: var(--bk-sb-section-base);
    font-weight: 600;
    border-left: 3px solid var(--bk-sb-section-base);
    padding-left: calc(var(--bk-space-md) - 3px);
}
.bk-sidebar-item__icon { width: 18px; height: 18px; color: var(--bk-sb-section-base); flex-shrink: 0; }
.bk-sidebar-item__label { flex: 1; }

/* Section-Color-Variants — overriden den --bk-sb-section-* Token */
.bk-sidebar-item--taeglich   { --bk-sb-section-base: var(--bk-section-taeglich-base);   --bk-sb-section-bg: var(--bk-section-taeglich-bg);   --bk-sb-section-border: var(--bk-section-taeglich-border); }
.bk-sidebar-item--zeit-team  { --bk-sb-section-base: var(--bk-section-zeit-team-base);  --bk-sb-section-bg: var(--bk-section-zeit-team-bg);  --bk-sb-section-border: var(--bk-section-zeit-team-border); }
.bk-sidebar-item--ressourcen { --bk-sb-section-base: var(--bk-section-ressourcen-base); --bk-sb-section-bg: var(--bk-section-ressourcen-bg); --bk-sb-section-border: var(--bk-section-ressourcen-border); }
.bk-sidebar-item--kunden     { --bk-sb-section-base: var(--bk-section-kunden-base);     --bk-sb-section-bg: var(--bk-section-kunden-bg);     --bk-sb-section-border: var(--bk-section-kunden-border); }
.bk-sidebar-item--komm       { --bk-sb-section-base: var(--bk-section-komm-base);       --bk-sb-section-bg: var(--bk-section-komm-bg);       --bk-sb-section-border: var(--bk-section-komm-border); }
.bk-sidebar-item--material   { --bk-sb-section-base: var(--bk-section-material-base);   --bk-sb-section-bg: var(--bk-section-material-bg);   --bk-sb-section-border: var(--bk-section-material-border); }
.bk-sidebar-item--baustelle  { --bk-sb-section-base: var(--bk-section-baustelle-base);  --bk-sb-section-bg: var(--bk-section-baustelle-bg);  --bk-sb-section-border: var(--bk-section-baustelle-border); }
.bk-sidebar-item--finanzen   { --bk-sb-section-base: var(--bk-section-finanzen-base);   --bk-sb-section-bg: var(--bk-section-finanzen-bg);   --bk-sb-section-border: var(--bk-section-finanzen-border); }
.bk-sidebar-item--netzwerk   { --bk-sb-section-base: var(--bk-section-netzwerk-base);   --bk-sb-section-bg: var(--bk-section-netzwerk-bg);   --bk-sb-section-border: var(--bk-section-netzwerk-border); }
.bk-sidebar-item--verwaltung { --bk-sb-section-base: var(--bk-section-verwaltung-base); --bk-sb-section-bg: var(--bk-section-verwaltung-bg); --bk-sb-section-border: var(--bk-section-verwaltung-border); }

/* ─── TABS (Border-Bottom mit Triangle) ────────────────── */
.bk-tabs {
    display: flex;
    border-bottom: 1px solid var(--bk-border-default);
    gap: 0;
}
.bk-tab {
    display: inline-flex;
    align-items: center;
    padding: var(--bk-space-md) var(--bk-space-xl);
    color: var(--bk-text-secondary);
    text-decoration: none;
    font-weight: 600;
    font-size: var(--bk-font-size-lg);
    border-bottom: 3px solid transparent;
    margin-bottom: -1px;
    position: relative;
    transition: color 0.15s ease, border-color 0.15s ease;
}
.bk-tab:hover { color: var(--bk-text-primary); border-bottom-color: var(--bk-border-default); }
.bk-tab--active {
    color: var(--bk-accent-orange);
    border-bottom-color: var(--bk-accent-orange);
    font-weight: 700;
}
.bk-tab--active::after {
    content: "";
    position: absolute;
    bottom: -1px;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
    border-top: 8px solid var(--bk-accent-orange);
}

/* ─── TABLE-ROW ────────────────────────────────────────── */
.bk-table-row {
    display: flex;
    align-items: center;
    gap: var(--bk-space-lg);
    padding: var(--bk-space-md) var(--bk-space-xl);
    background: var(--bk-bg-surface);
    border-bottom: 1px solid var(--bk-border-subtle);
    transition: background-color 0.15s ease, box-shadow 0.15s ease, transform 0.05s ease;
    cursor: pointer;
}
.bk-table-row--zebra { background: var(--bk-bg-surface-2); }
.bk-table-row:hover, .bk-table-row--hover {
    background: var(--bk-bg-surface-hover);
    border-left: 3px solid var(--bk-accent-primary);
    padding-left: calc(var(--bk-space-xl) - 3px);
    box-shadow: 0 2px 6px rgba(0,0,0,0.05);
}
.bk-table-row__cell { flex: 1; font-size: var(--bk-font-size-md); color: var(--bk-text-primary); }
.bk-table-row__chevron { color: var(--bk-text-muted); font-weight: 700; }

/* ─── EMPTY-STATE ──────────────────────────────────────── */
.bk-empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: var(--bk-space-7xl) var(--bk-space-3xl);
    gap: var(--bk-space-lg);
    background: var(--bk-bg-surface-2);
    border: 1px solid var(--bk-border-subtle);
    border-radius: var(--bk-radius-xl);
}
.bk-empty-state__icon-bubble {
    width: 64px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--bk-accent-orange-tint);
    border-radius: var(--bk-radius-full);
    color: var(--bk-accent-orange);
}
.bk-empty-state__headline { font-size: var(--bk-font-size-3xl); font-weight: 700; color: var(--bk-text-primary); }
.bk-empty-state__desc { font-size: var(--bk-font-size-md); color: var(--bk-text-secondary); line-height: var(--bk-lh-normal); max-width: 420px; }

/* ─── TOAST / NOTIFICATION ─────────────────────────────── */
.bk-toast {
    display: flex;
    align-items: center;
    gap: var(--bk-space-md);
    padding: var(--bk-space-md) var(--bk-space-xl);
    background: var(--bk-bg-surface);
    border-radius: var(--bk-radius-lg);
    border-left: 4px solid var(--bk-text-muted);
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    min-width: 320px;
    max-width: 420px;
}
.bk-toast__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: var(--bk-radius-full);
    background: var(--bk-bg-surface-2);
    flex-shrink: 0;
}
.bk-toast__text { flex: 1; font-size: var(--bk-font-size-md); font-weight: 600; color: var(--bk-text-primary); }
.bk-toast__close { width: 16px; height: 16px; color: var(--bk-text-muted); cursor: pointer; flex-shrink: 0; background: none; border: none; padding: 0; }
.bk-toast--success { border-left-color: var(--bk-status-success); }
.bk-toast--success .bk-toast__icon { background: var(--bk-status-success-bg); color: var(--bk-status-success); }
.bk-toast--warning { border-left-color: var(--bk-status-warning); }
.bk-toast--warning .bk-toast__icon { background: var(--bk-status-warning-bg); color: var(--bk-status-warning); }
.bk-toast--danger  { border-left-color: var(--bk-status-danger); }
.bk-toast--danger  .bk-toast__icon { background: var(--bk-status-danger-bg);  color: var(--bk-status-danger); }
.bk-toast--info    { border-left-color: var(--bk-status-info); }
.bk-toast--info    .bk-toast__icon { background: var(--bk-status-info-bg);    color: var(--bk-status-info); }

/* ─── MODAL ────────────────────────────────────────────── */
.bk-modal-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(11, 14, 24, 0.55);
    backdrop-filter: blur(4px);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
}
.bk-modal {
    background: var(--bk-bg-surface);
    border-radius: var(--bk-radius-2xl);
    box-shadow: 0 8px 32px rgba(0,0,0,0.2);
    border: 1px solid var(--bk-border-subtle);
    max-width: 560px;
    width: 90%;
    max-height: 90vh;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.bk-modal::before {
    content: "";
    display: block;
    height: 4px;
    background: var(--bk-accent-orange);
}
.bk-modal__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--bk-space-xl) var(--bk-space-2xl) var(--bk-space-lg);
}
.bk-modal__title { font-size: var(--bk-font-size-2xl); font-weight: 700; color: var(--bk-text-primary); }
.bk-modal__close {
    width: 32px; height: 32px;
    background: var(--bk-bg-surface-2);
    border: none;
    border-radius: var(--bk-radius-md);
    cursor: pointer;
    color: var(--bk-text-secondary);
    font-size: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.bk-modal__body { padding: 0 var(--bk-space-2xl) var(--bk-space-2xl); color: var(--bk-text-secondary); line-height: var(--bk-lh-normal); flex: 1; overflow-y: auto; }
.bk-modal__footer {
    display: flex;
    justify-content: flex-end;
    gap: var(--bk-space-md);
    padding: var(--bk-space-lg) var(--bk-space-2xl);
    background: var(--bk-bg-surface-2);
    border-top: 1px solid var(--bk-border-subtle);
}

/* ─── PLAN-INFO-BADGE ──────────────────────────────────── */
.bk-plan-info {
    display: flex;
    align-items: center;
    gap: var(--bk-space-md);
    padding: var(--bk-space-md) var(--bk-space-lg);
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--bk-accent-primary) 10%, transparent),
        color-mix(in srgb, var(--bk-accent-orange) 10%, transparent));
    border: 1px solid var(--bk-accent-orange);
    border-radius: var(--bk-radius-lg);
}
.bk-plan-info__icon { color: var(--bk-accent-orange); flex-shrink: 0; width: 24px; height: 16px; }
.bk-plan-info__body { display: flex; flex-direction: column; gap: 2px; flex: 1; }
.bk-plan-info__title { font-size: var(--bk-font-size-md); font-weight: 700; color: var(--bk-text-primary); }
.bk-plan-info__sub { font-size: var(--bk-font-size-xs); font-weight: 500; color: var(--bk-text-secondary); }

/* ─── BOTTOM-TAB-BAR (Mobile) ──────────────────────────── */
.bk-bottom-tab-bar {
    display: flex;
    background: var(--bk-bg-surface);
    border-top: 1px solid var(--bk-border-subtle);
    padding: var(--bk-space-md) 0 var(--bk-space-xl);
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 100;
}
.bk-bottom-tab {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--bk-space-xs);
    padding: var(--bk-space-sm) 0;
    color: var(--bk-text-muted);
    text-decoration: none;
    font-size: var(--bk-font-size-xs);
    font-weight: 500;
}
.bk-bottom-tab__icon { width: 20px; height: 20px; }
.bk-bottom-tab--active { color: var(--bk-accent-orange); font-weight: 700; }

/* ─── FAB (Floating Action Button) ─────────────────────── */
.bk-fab {
    position: fixed;
    bottom: 100px;
    right: var(--bk-space-xl);
    width: 56px;
    height: 56px;
    border-radius: var(--bk-radius-full);
    background: var(--bk-accent-orange);
    color: var(--bk-text-on-accent);
    border: none;
    box-shadow: 0 6px 16px rgba(243, 156, 18, 0.5);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    font-weight: 700;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
    z-index: 99;
}
.bk-fab:hover { transform: scale(1.05); box-shadow: 0 8px 20px rgba(243, 156, 18, 0.6); }
.bk-fab:active { transform: scale(0.98); }

/* ─── SPARKLINE ────────────────────────────────────────── */
.bk-sparkline {
    --bk-sparkline-color: var(--bk-accent-primary);
    width: 120px;
    height: 40px;
    color: var(--bk-sparkline-color);
}
.bk-sparkline svg { width: 100%; height: 100%; }
.bk-sparkline path { stroke: var(--bk-sparkline-color); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.bk-sparkline circle { fill: var(--bk-sparkline-color); filter: drop-shadow(0 0 4px var(--bk-sparkline-color)); }
.bk-sparkline--primary { --bk-sparkline-color: var(--bk-accent-primary); }
.bk-sparkline--success { --bk-sparkline-color: var(--bk-status-success); }
.bk-sparkline--warning { --bk-sparkline-color: var(--bk-status-warning); }
.bk-sparkline--danger  { --bk-sparkline-color: var(--bk-status-danger); }
.bk-sparkline--orange  { --bk-sparkline-color: var(--bk-accent-orange); }


/* ─── HERO SECTION (Phase F.1b Polish-2, 2026-05-22 Marco-Feedback) ─────
   EXAKTE Figma-Hex-Werte aus get_design_context von Light (10:3) +
   Dark (33:5) Pages — KEIN color-mix, KEIN eigenes Mapping. Wenn Marco
   in Figma was aendert, muessen die Hex hier 1:1 angepasst werden.

   Source Figma-Nodes (fileKey NehIFzV9cJccSlKHQkLZcT):
   - Light KPI-Tint:     27:2  rgba(41,74,140,0.04)
   - Dark KPI-Tint:      37:2  rgba(107,158,219,0.08)
   - Light WeatherCard:  29:2  #fffaeb + amber border 20%
   - Dark WeatherCard:   35:15 #1d1b16 + amber border 30%
   - Light Texte:        23:2  #1a1a2e (Title), #6b6b7a (Subtitle), #8c8c9e (Hint)
   - Dark Texte:         35:13 #e0e0eb / #9e9ead / #808094
   ─────────────────────────────────────────────────────────────────── */

/* Wrapper-Grid: Begruessung links, Wetter-Card rechts */
.bk-hero {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: start;
    gap: var(--bk-space-lg);
    margin-bottom: var(--bk-space-lg);
}

.bk-greeting-title {
    margin: 0;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    font-weight: 700;
    font-size: 36px;
    line-height: 1.1;
    letter-spacing: -0.8px;
    color: #1A1A2E;  /* Dashboard Light 23:2 / 29:4 (Marco-Entscheid 2026-05-22: Dashboard-Mockup = Source-of-Truth, NICHT Foundation 156:2) */
}

.bk-greeting-subtitle {
    margin: var(--bk-space-xs) 0 0;
    font-size: 15px;  /* Dashboard Light 23:3 Greeting-Subline Figma-exact (war faelschlich 12px = KPI-Sublabel 23:7) */
    line-height: 1.4;
    color: #6B6B7A;  /* Dashboard Light 23:7 / 29:5 (Marco-Entscheid 2026-05-22: Dashboard-Mockup = Source-of-Truth, NICHT Foundation 156:2) */
}

/* Wetter-Card (Figma 29:2 Light + 35:15 Dark — exakte Hex-Werte) */
.bk-weather-card {
    display: flex;
    align-items: center;
    gap: var(--bk-space-md);
    padding: var(--bk-space-md) var(--bk-space-lg);
    min-width: 260px;
    background: #fffaeb;  /* Figma Light */
    border: 1px solid rgba(245, 158, 18, 0.2);
    border-radius: 12px;
    box-shadow: 0 2px 6px rgba(245, 158, 18, 0.1);
}

.bk-weather-card__icon {
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #F59E12;  /* Figma-SVG stroke amber */
}
.bk-weather-card__icon svg {
    width: 100%;
    height: 100%;
    stroke: currentColor;
}

.bk-weather-card__body { display: flex; flex-direction: column; gap: 2px; }

.bk-weather-card__temp {
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    font-weight: 700;
    font-size: 28px;
    line-height: 1;
    letter-spacing: -0.5px;
    color: #1A1A2E;  /* Dashboard Light 23:2 / 29:4 (Marco-Entscheid 2026-05-22: Dashboard-Mockup = Source-of-Truth, NICHT Foundation 156:2) */
}

.bk-weather-card__condition { font-size: 11px; color: #6B6B7A; }  /* Dashboard 29:5 */
.bk-weather-card__location  { font-size: 10px; color: #8c8c9e; }


/* ─── HERO-GRID: 3 fixe Aggregat-KPIs (Figma 23:4-23:18) ─────────── */
.bk-hero-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--bk-space-lg);
    margin-bottom: var(--bk-space-xl);
}

.bk-hero-kpi {
    --bk-hero-accent: var(--bk-accent-primary);
    position: relative;
    padding: var(--bk-space-lg) var(--bk-space-xl);
    /* background ist pro Variante gesetzt (Figma KPI_tint_1/2/3 unterschiedlich) */
    border-radius: 12px;
    overflow: hidden;
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.bk-hero-kpi::before {
    /* 4px Border-Left-Akzent (Figma 23:4/23:9/23:14 — 4px Rectangle vor jeder Karte). */
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: var(--bk-hero-accent);
    border-radius: 2px 0 0 2px;
}

.bk-hero-kpi:hover {
    box-shadow: 0 4px 12px color-mix(in srgb, var(--bk-hero-accent) 15%, transparent);
}

/* Pro Variante eigene Tint-Farbe (Figma 27:2/3/4 KPI_tint_1/2/3 exakt) */
.bk-hero-kpi--info    {
    --bk-hero-accent: var(--bk-status-info);
    background: rgba(41, 74, 140, 0.06);   /* Figma 27:2 KPI_tint_1 — Marco-Wunsch: deutlicher (war 0.04, zu subtil auf Weiss) */
}
.bk-hero-kpi--danger  {
    --bk-hero-accent: var(--bk-status-danger);
    background: rgba(209, 66, 66, 0.06);   /* Figma 27:3 KPI_tint_2 — deutlicher (war 0.04) */
}
.bk-hero-kpi--success {
    --bk-hero-accent: var(--bk-status-success);
    background: rgba(46, 153, 89, 0.06);   /* Figma 27:4 KPI_tint_3 — deutlicher (war 0.04) */
}
.bk-hero-kpi--warning {
    --bk-hero-accent: var(--bk-status-warning);
    background: rgba(243, 156, 18, 0.06);  /* Brand-Orange Tint analog */
}
/* S7 (Marco 2026-05-22): Empty-Slot — Hero ohne gepinnte KPI */
.bk-hero-kpi--empty {
    --bk-hero-accent: var(--bk-text-muted, #9AA1AC);
    background: transparent;
    border: 1.5px dashed color-mix(in srgb, var(--bk-text-muted, #9AA1AC) 40%, transparent);
    opacity: 0.72;
}
.bk-hero-kpi--empty:hover { opacity: 0.92; }
.bk-hero-kpi--empty::before { display: none; }  /* kein Border-Left bei empty */
.bk-hero-kpi--empty .bk-hero-kpi__value { font-weight: 300; color: var(--bk-text-muted, #9AA1AC); }
[data-theme="dark"] .bk-hero-kpi--empty {
    border-color: color-mix(in srgb, #6E747F 55%, transparent);
    background: transparent;
}
[data-theme="dark"] .bk-hero-kpi--empty .bk-hero-kpi__value { color: #6E747F; }

/* ════════════════════════════════════════════════════════════════════
   S7.3 KPI-BURGER-DRAWER (Marco-Konzept 2026-05-22 15:00)
   Hero-Wrap + Burger-Toggle (Spalte rechts neben Hero, gleiche Höhe)
   Drawer-Panel (slide-in von rechts) + Backdrop + Liste der 32 KPIs
   ════════════════════════════════════════════════════════════════════ */
.bk-hero-wrap {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: var(--bk-space-md);
    align-items: stretch;
}

/* Burger-Toggle — gleiche Höhe wie Hero-KPIs, schmal */
.bk-kpi-drawer-toggle {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--bk-space-sm);
    min-width: 84px;
    padding: var(--bk-space-md) var(--bk-space-sm);
    border-radius: var(--bk-radius-lg, 14px);
    border: 1px solid var(--bk-border-default, #DFE3EA);
    background: var(--bk-bg-surface, #FFFFFF);
    color: var(--bk-text-primary, #1A1A2E);
    cursor: pointer;
    transition: background .15s, border-color .15s, transform .15s, box-shadow .15s;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
}
.bk-kpi-drawer-toggle:hover {
    background: rgba(41, 74, 140, 0.04);
    border-color: color-mix(in srgb, var(--bk-accent-primary, #294A8C) 30%, var(--bk-border-default, #DFE3EA));
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.04);
}
.bk-kpi-drawer-toggle[aria-expanded="true"] {
    background: rgba(41, 74, 140, 0.08);
    border-color: var(--bk-accent-primary, #294A8C);
}
.bk-kpi-drawer-toggle__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--bk-accent-primary, #294A8C);
}
.bk-kpi-drawer-toggle__label {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: #73738C;
    text-align: center;
}
.bk-kpi-drawer-toggle__count {
    font-size: 12px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--bk-accent-primary, #294A8C) 12%, transparent);
    color: var(--bk-accent-primary, #294A8C);
}
.bk-kpi-drawer-toggle__count.is-full {
    background: color-mix(in srgb, var(--bk-status-warning, #F39C12) 20%, transparent);
    color: var(--bk-status-warning-dark, #B07309);
}
[data-theme="dark"] .bk-kpi-drawer-toggle {
    background: #1B1F2D;
    border-color: #2F3445;
    color: #EBEBF5;
}
[data-theme="dark"] .bk-kpi-drawer-toggle:hover {
    background: #252A3A;
    border-color: #6B9EDB;
}
[data-theme="dark"] .bk-kpi-drawer-toggle[aria-expanded="true"] {
    background: #252A3A;
    border-color: #6B9EDB;
}
[data-theme="dark"] .bk-kpi-drawer-toggle__icon { color: #6B9EDB; }
[data-theme="dark"] .bk-kpi-drawer-toggle__label { color: #9E9EAD; }
[data-theme="dark"] .bk-kpi-drawer-toggle__count {
    background: rgba(107, 158, 219, 0.18);
    color: #93BCE6;
}

/* Drawer Backdrop */
.bk-kpi-drawer-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(10, 14, 24, 0.42);
    z-index: 1040;
    opacity: 0;
    pointer-events: none;
    transition: opacity .22s ease;
    backdrop-filter: blur(2px);
}
.bk-kpi-drawer-backdrop[data-open="true"] {
    opacity: 1;
    pointer-events: auto;
}

/* Drawer Panel — slide-in von rechts */
.bk-kpi-drawer {
    position: fixed;
    top: 0;
    right: 0;
    height: 100vh;
    width: min(440px, calc(100vw - 32px));
    background: var(--bk-bg-surface, #FFFFFF);
    box-shadow: -12px 0 32px rgba(10, 14, 24, 0.14);
    transform: translateX(100%);
    transition: transform .25s ease;
    z-index: 1050;
    display: flex;
    flex-direction: column;
    border-left: 1px solid var(--bk-border-default, #DFE3EA);
}
.bk-kpi-drawer[data-open="true"] { transform: translateX(0); }
[data-theme="dark"] .bk-kpi-drawer {
    background: #1B1F2D;
    border-left-color: #2F3445;
    box-shadow: -12px 0 32px rgba(0, 0, 0, 0.50);
}

.bk-kpi-drawer__head {
    display: flex;
    align-items: flex-start;
    gap: var(--bk-space-md);
    padding: var(--bk-space-lg) var(--bk-space-lg) var(--bk-space-md);
    border-bottom: 1px solid var(--bk-border-subtle, #EBEBF2);
    flex-shrink: 0;
}
.bk-kpi-drawer__head-text { flex: 1; min-width: 0; }
.bk-kpi-drawer__title {
    margin: 0 0 4px;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: -0.3px;
    color: var(--bk-text-primary, #1A1A2E);
}
.bk-kpi-drawer__hint {
    margin: 0;
    font-size: 12px;
    color: #73738C;
}
.bk-kpi-drawer__close {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 8px;
    color: var(--bk-text-secondary, #4A4F58);
    cursor: pointer;
    transition: background .15s, border-color .15s;
}
.bk-kpi-drawer__close:hover {
    background: rgba(10, 14, 24, 0.06);
    border-color: var(--bk-border-default, #DFE3EA);
}
[data-theme="dark"] .bk-kpi-drawer__title { color: #EBEBF5; }
[data-theme="dark"] .bk-kpi-drawer__hint { color: #9E9EAD; }
[data-theme="dark"] .bk-kpi-drawer__close { color: #BFC4CC; }
[data-theme="dark"] .bk-kpi-drawer__close:hover { background: rgba(255, 255, 255, 0.08); border-color: #2F3445; }

.bk-kpi-drawer__body {
    flex: 1;
    overflow-y: auto;
    padding: var(--bk-space-md) var(--bk-space-lg) var(--bk-space-lg);
    outline: none;
}
.bk-kpi-drawer__loading,
.bk-kpi-drawer__empty {
    text-align: center;
    color: var(--bk-text-muted, #9AA1AC);
    padding: var(--bk-space-lg) 0;
    font-size: 13px;
}

.bk-kpi-drawer__group { margin-bottom: var(--bk-space-lg); }
.bk-kpi-drawer__group-title {
    margin: 0 0 var(--bk-space-sm);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: #73738C;
}
[data-theme="dark"] .bk-kpi-drawer__group-title { color: #9E9EAD; }

.bk-kpi-drawer__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.bk-kpi-drawer__row {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr auto 28px;
    gap: var(--bk-space-md);
    align-items: center;
    padding: 10px var(--bk-space-md);
    border-radius: 10px;
    border: 1px solid var(--bk-border-subtle, #EBEBF2);
    background: var(--bk-bg-surface, #FFFFFF);
    color: var(--bk-text-primary, #1A1A2E);
    cursor: pointer;
    text-align: left;
    transition: background .14s, border-color .14s, transform .14s;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
}
.bk-kpi-drawer__row:hover {
    background: rgba(41, 74, 140, 0.05);
    border-color: color-mix(in srgb, var(--bk-accent-primary, #294A8C) 25%, var(--bk-border-default, #DFE3EA));
}
.bk-kpi-drawer__row--pinned {
    background: rgba(46, 153, 89, 0.07);
    border-color: color-mix(in srgb, var(--bk-status-success, #2E9959) 40%, var(--bk-border-default, #DFE3EA));
}
.bk-kpi-drawer__row--pinned:hover {
    background: rgba(46, 153, 89, 0.12);
}

.bk-kpi-drawer__row-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.bk-kpi-drawer__row-label {
    font-size: 14px;
    font-weight: 600;
    color: var(--bk-text-primary, #1A1A2E);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.bk-kpi-drawer__row-sub {
    font-size: 12px;
    color: #73738C;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.bk-kpi-drawer__row-value {
    font-size: 14px;
    font-weight: 700;
    color: var(--bk-text-primary, #1A1A2E);
    text-align: right;
}
.bk-kpi-drawer__row--danger  .bk-kpi-drawer__row-value { color: var(--bk-status-danger, #D14242); }
.bk-kpi-drawer__row--warning .bk-kpi-drawer__row-value { color: var(--bk-status-warning, #F39C12); }
.bk-kpi-drawer__row--success .bk-kpi-drawer__row-value { color: var(--bk-status-success, #2E9959); }

.bk-kpi-drawer__row-pin {
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: color-mix(in srgb, var(--bk-text-muted, #9AA1AC) 16%, transparent);
    color: var(--bk-text-secondary, #4A4F58);
    font-size: 16px;
    font-weight: 700;
    transition: background .14s, color .14s;
}
.bk-kpi-drawer__row--pinned .bk-kpi-drawer__row-pin {
    background: var(--bk-status-success, #2E9959);
    color: #FFFFFF;
}

[data-theme="dark"] .bk-kpi-drawer__row {
    background: #232735;
    border-color: #2F3445;
    color: #EBEBF5;
}
[data-theme="dark"] .bk-kpi-drawer__row:hover {
    background: #2A3142;
    border-color: #6B9EDB;
}
[data-theme="dark"] .bk-kpi-drawer__row--pinned {
    background: rgba(93, 186, 128, 0.12);
    border-color: rgba(93, 186, 128, 0.50);
}
[data-theme="dark"] .bk-kpi-drawer__row-label { color: #EBEBF5; }
[data-theme="dark"] .bk-kpi-drawer__row-value { color: #EBEBF5; }
[data-theme="dark"] .bk-kpi-drawer__row-sub { color: #9E9EAD; }
[data-theme="dark"] .bk-kpi-drawer__row-pin {
    background: rgba(255, 255, 255, 0.08);
    color: #BFC4CC;
}
[data-theme="dark"] .bk-kpi-drawer__row--pinned .bk-kpi-drawer__row-pin {
    background: #5DBA80;
    color: #0B0E18;
}

/* Mobile (Tablet+Phone): Drawer wird voll, Burger geht in eine zweite Reihe */
@media (max-width: 768px) {
    .bk-hero-wrap {
        grid-template-columns: 1fr;
    }
    .bk-kpi-drawer-toggle,
    .bk-charts-drawer-toggle {
        flex-direction: row;
        justify-content: space-between;
        min-width: 0;
    }
    .bk-kpi-drawer,
    .bk-charts-drawer { width: 100vw; border-left: none; }
}

/* ════════════════════════════════════════════════════════════════════
   S7-Variante-A (Marco 2026-05-22) — Dashboard-Cleanup + Grafiken-Drawer
   - 5 KPI-Dropdown-Gruppen + Charts-Dropdown visuell versteckt
     (im DOM bleiben → Burger-Drawer clont daraus die Daten)
   - Hero-Wrap erweitert auf 3 Spalten (Hero + 2 Burger-Toggles)
   - Grafiken-Drawer als 2. Burger neben KPI-Burger
   ════════════════════════════════════════════════════════════════════ */

/* Hero-Wrap: 1fr (Grid) + auto (KPI-Burger) + auto (Grafiken-Burger) */
.bk-hero-wrap {
    grid-template-columns: 1fr auto auto;
}

/* 5 KPI-Dropdown-Gruppen + Charts-Dropdown verstecken (Drawer uebernimmt) */
.dashboard-group[data-group="auftraege"],
.dashboard-group[data-group="einsatzkosten"],
.dashboard-group[data-group="angebote"],
.dashboard-group[data-group="finanzen"],
.dashboard-group[data-group="personal"],
.dashboard-group-charts {
    display: none !important;
}

/* Grafiken-Burger-Toggle — analog zu KPI-Toggle, eigene Akzent-Farbe */
.bk-charts-drawer-toggle {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--bk-space-sm);
    min-width: 84px;
    padding: var(--bk-space-md) var(--bk-space-sm);
    border-radius: var(--bk-radius-lg, 14px);
    border: 1px solid var(--bk-border-default, #DFE3EA);
    background: var(--bk-bg-surface, #FFFFFF);
    color: var(--bk-text-primary, #1A1A2E);
    cursor: pointer;
    transition: background .15s, border-color .15s, transform .15s, box-shadow .15s;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
}
.bk-charts-drawer-toggle:hover {
    background: rgba(46, 153, 89, 0.05);
    border-color: color-mix(in srgb, var(--bk-status-success, #2E9959) 35%, var(--bk-border-default, #DFE3EA));
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.04);
}
.bk-charts-drawer-toggle[aria-expanded="true"] {
    background: rgba(46, 153, 89, 0.10);
    border-color: var(--bk-status-success, #2E9959);
}
.bk-charts-drawer-toggle__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--bk-status-success, #2E9959);
}
.bk-charts-drawer-toggle__label {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: #73738C;
    text-align: center;
}
.bk-charts-drawer-toggle__sub {
    font-size: 10px;
    font-weight: 500;
    color: #9AA1AC;
    text-align: center;
}
[data-theme="dark"] .bk-charts-drawer-toggle {
    background: #1B1F2D;
    border-color: #2F3445;
    color: #EBEBF5;
}
[data-theme="dark"] .bk-charts-drawer-toggle:hover {
    background: #252A3A;
    border-color: #5DBA80;
}
[data-theme="dark"] .bk-charts-drawer-toggle[aria-expanded="true"] {
    background: #252A3A;
    border-color: #5DBA80;
}
[data-theme="dark"] .bk-charts-drawer-toggle__icon { color: #5DBA80; }
[data-theme="dark"] .bk-charts-drawer-toggle__label { color: #9E9EAD; }
[data-theme="dark"] .bk-charts-drawer-toggle__sub { color: #6E747F; }

/* Grafiken-Drawer Backdrop — analog zu KPI-Drawer */
.bk-charts-drawer-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(10, 14, 24, 0.42);
    z-index: 1040;
    opacity: 0;
    pointer-events: none;
    transition: opacity .22s ease;
    backdrop-filter: blur(2px);
}
.bk-charts-drawer-backdrop[data-open="true"] {
    opacity: 1;
    pointer-events: auto;
}

/* Grafiken-Drawer Panel — etwas breiter als KPI-Drawer (Charts brauchen Platz) */
.bk-charts-drawer {
    position: fixed;
    top: 0;
    right: 0;
    height: 100vh;
    width: min(560px, calc(100vw - 32px));
    background: var(--bk-bg-surface, #FFFFFF);
    box-shadow: -12px 0 32px rgba(10, 14, 24, 0.14);
    transform: translateX(100%);
    transition: transform .25s ease;
    z-index: 1050;
    display: flex;
    flex-direction: column;
    border-left: 1px solid var(--bk-border-default, #DFE3EA);
}
.bk-charts-drawer[data-open="true"] { transform: translateX(0); }
[data-theme="dark"] .bk-charts-drawer {
    background: #1B1F2D;
    border-left-color: #2F3445;
    box-shadow: -12px 0 32px rgba(0, 0, 0, 0.50);
}

.bk-charts-drawer__head {
    display: flex;
    align-items: flex-start;
    gap: var(--bk-space-md);
    padding: var(--bk-space-lg) var(--bk-space-lg) var(--bk-space-md);
    border-bottom: 1px solid var(--bk-border-subtle, #EBEBF2);
    flex-shrink: 0;
}
.bk-charts-drawer__head-text { flex: 1; min-width: 0; }
.bk-charts-drawer__title {
    margin: 0 0 4px;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: -0.3px;
    color: var(--bk-text-primary, #1A1A2E);
}
.bk-charts-drawer__hint {
    margin: 0;
    font-size: 12px;
    color: #73738C;
}
.bk-charts-drawer__close {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 8px;
    color: var(--bk-text-secondary, #4A4F58);
    cursor: pointer;
    transition: background .15s, border-color .15s;
}
.bk-charts-drawer__close:hover {
    background: rgba(10, 14, 24, 0.06);
    border-color: var(--bk-border-default, #DFE3EA);
}
[data-theme="dark"] .bk-charts-drawer__title { color: #EBEBF5; }
[data-theme="dark"] .bk-charts-drawer__hint { color: #9E9EAD; }
[data-theme="dark"] .bk-charts-drawer__close { color: #BFC4CC; }
[data-theme="dark"] .bk-charts-drawer__close:hover { background: rgba(255, 255, 255, 0.08); border-color: #2F3445; }

.bk-charts-drawer__body {
    flex: 1;
    overflow-y: auto;
    padding: var(--bk-space-md) var(--bk-space-lg) var(--bk-space-lg);
    outline: none;
}
.bk-charts-drawer__loading,
.bk-charts-drawer__empty {
    text-align: center;
    color: var(--bk-text-muted, #9AA1AC);
    padding: var(--bk-space-lg) 0;
    font-size: 13px;
}
/* Hochkant-Layout: hw-charts-grid wird zu 1-Spalte im Drawer (weniger Breite als Dashboard) */
.bk-charts-drawer__body .hw-charts-grid {
    display: flex;
    flex-direction: column;
    gap: var(--bk-space-lg);
}

/* ════════════════════════════════════════════════════════════════════
   SCHRITT 10 — „Alle Funktionen"-Drawer (Marco-Konzept Frame 102:5)
   Option γ: Full-Width Sheet von rechts, überlagert Dashboard-Bereich,
   Sidebar bleibt links sichtbar (~280px). 3×2 Grid mit 6 Sub-Groups
   + optional 7. Debug-Group (orange-akzentiert, nur fuer debug-test).
   ════════════════════════════════════════════════════════════════════ */
.bk-allfn-drawer-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(10, 14, 24, 0.42);
    z-index: 1040;
    opacity: 0;
    pointer-events: none;
    transition: opacity .22s ease;
    backdrop-filter: blur(2px);
}
.bk-allfn-drawer-backdrop[data-open="true"] {
    opacity: 1;
    pointer-events: auto;
}

.bk-allfn-drawer {
    position: fixed;
    top: 0;
    right: 0;
    height: 100vh;
    /* Sidebar bleibt sichtbar (280px), Drawer fuellt den Rest bis max 1200px */
    width: min(calc(100vw - 280px), 1200px);
    background: var(--bk-bg-surface, #FFFFFF);
    box-shadow: -16px 0 40px rgba(10, 14, 24, 0.16);
    transform: translateX(100%);
    transition: transform .28s ease;
    z-index: 1050;
    display: flex;
    flex-direction: column;
    border-left: 1px solid var(--bk-border-default, #DFE3EA);
}
.bk-allfn-drawer[data-open="true"] { transform: translateX(0); }
[data-theme="dark"] .bk-allfn-drawer {
    background: #1B1F2D;
    border-left-color: #2F3445;
    box-shadow: -16px 0 40px rgba(0, 0, 0, 0.55);
}

.bk-allfn-drawer__head {
    display: flex;
    align-items: flex-start;
    gap: var(--bk-space-md);
    padding: var(--bk-space-lg) var(--bk-space-xl, 28px) var(--bk-space-md);
    border-bottom: 1px solid var(--bk-border-subtle, #EBEBF2);
    flex-shrink: 0;
}
.bk-allfn-drawer__head-text { flex: 1; min-width: 0; }
.bk-allfn-drawer__title {
    margin: 0 0 4px;
    font-size: 22px;
    font-weight: 700;
    letter-spacing: -0.3px;
    color: var(--bk-text-primary, #1A1A2E);
}
.bk-allfn-drawer__hint {
    margin: 0;
    font-size: 13px;
    color: #73738C;
}
.bk-allfn-drawer__close {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 8px;
    color: var(--bk-text-secondary, #4A4F58);
    cursor: pointer;
    transition: background .15s, border-color .15s;
}
.bk-allfn-drawer__close:hover {
    background: rgba(10, 14, 24, 0.06);
    border-color: var(--bk-border-default, #DFE3EA);
}
[data-theme="dark"] .bk-allfn-drawer__title { color: #EBEBF5; }
[data-theme="dark"] .bk-allfn-drawer__hint { color: #9E9EAD; }
[data-theme="dark"] .bk-allfn-drawer__close { color: #BFC4CC; }
[data-theme="dark"] .bk-allfn-drawer__close:hover { background: rgba(255, 255, 255, 0.08); border-color: #2F3445; }

.bk-allfn-drawer__body {
    flex: 1;
    overflow-y: auto;
    padding: var(--bk-space-lg) var(--bk-space-xl, 28px) var(--bk-space-xl, 28px);
    outline: none;
}

/* 3×2 Grid, responsive */
.bk-allfn-drawer__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--bk-space-xl, 28px);
}
@media (max-width: 1200px) {
    .bk-allfn-drawer__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
    .bk-allfn-drawer { width: 100vw; border-left: none; }
    .bk-allfn-drawer__grid { grid-template-columns: 1fr; gap: var(--bk-space-lg); }
}

.bk-allfn-group {
    display: flex;
    flex-direction: column;
    gap: var(--bk-space-sm);
}
.bk-allfn-group__title {
    margin: 0;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--bk-text-primary, #1A1A2E);
}
.bk-allfn-group__sub {
    margin: 0 0 var(--bk-space-xs, 6px);
    font-size: 11px;
    color: #73738C;
    font-style: italic;
}
[data-theme="dark"] .bk-allfn-group__title { color: #EBEBF5; }
[data-theme="dark"] .bk-allfn-group__sub { color: #9E9EAD; }

.bk-allfn-group__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.bk-allfn-item {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 8px;
    border: 1px solid var(--bk-border-subtle, #EBEBF2);
    background: var(--bk-bg-surface, #FFFFFF);
    color: var(--bk-text-primary, #1A1A2E);
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
    text-align: left;
    cursor: pointer;
    transition: background .14s, border-color .14s, transform .14s;
}
.bk-allfn-item:hover {
    background: rgba(41, 74, 140, 0.05);
    border-color: color-mix(in srgb, var(--bk-accent-primary, #294A8C) 25%, var(--bk-border-default, #DFE3EA));
    transform: translateX(2px);
    color: var(--bk-text-primary, #1A1A2E);
}
.bk-allfn-item > span { flex: 1; min-width: 0; }
.bk-allfn-item__ai {
    padding: 1px 6px;
    font-size: 10px;
    font-style: normal;
    font-weight: 700;
    letter-spacing: 0.5px;
    border-radius: 4px;
    background: color-mix(in srgb, var(--bk-status-info, #294A8C) 18%, transparent);
    color: var(--bk-status-info, #294A8C);
    text-transform: uppercase;
}
[data-theme="dark"] .bk-allfn-item {
    background: #232735;
    border-color: #2F3445;
    color: #EBEBF5;
}
[data-theme="dark"] .bk-allfn-item:hover {
    background: #2A3142;
    border-color: #6B9EDB;
    color: #EBEBF5;
}
[data-theme="dark"] .bk-allfn-item__ai {
    background: rgba(107, 158, 219, 0.20);
    color: #93BCE6;
}

/* Plan-Schloss im Drawer (Marco 2026-07-15) — analog sb-lock-badge in der Sidebar.
   Gesperrte Funktion = gedimmtes Item + PRO/BUSINESS-Pille rechts. */
.bk-allfn-item--locked { opacity: 0.6; }
.bk-allfn-item--locked:hover { opacity: 1; }
.bk-allfn-lock {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 1px 6px;
    font-size: 10px;
    font-style: normal;
    font-weight: 700;
    letter-spacing: 0.5px;
    border-radius: 4px;
    background: color-mix(in srgb, var(--primary) 16%, transparent);
    color: var(--primary);
    text-transform: uppercase;
    white-space: nowrap;
    flex-shrink: 0;
}
.bk-allfn-lock svg { width: 11px; height: 11px; }
[data-theme="dark"] .bk-allfn-lock {
    background: color-mix(in srgb, var(--primary) 30%, transparent);
    color: color-mix(in srgb, var(--primary) 40%, white);
}

/* Debug-Tools-Sub-Group: orange-akzentiert */
.bk-allfn-group--debug .bk-allfn-group__title { color: var(--bk-accent-orange, #F39C12); }
.bk-allfn-item--debug {
    border-color: color-mix(in srgb, var(--bk-accent-orange, #F39C12) 40%, var(--bk-border-subtle, #EBEBF2));
    background: color-mix(in srgb, var(--bk-accent-orange, #F39C12) 4%, var(--bk-bg-surface, #FFFFFF));
}
.bk-allfn-item--debug:hover {
    background: color-mix(in srgb, var(--bk-accent-orange, #F39C12) 12%, var(--bk-bg-surface, #FFFFFF));
    border-color: var(--bk-accent-orange, #F39C12);
}
[data-theme="dark"] .bk-allfn-item--debug {
    background: rgba(243, 156, 18, 0.10);
    border-color: rgba(243, 156, 18, 0.45);
}
[data-theme="dark"] .bk-allfn-item--debug:hover {
    background: rgba(243, 156, 18, 0.20);
    border-color: #F39C12;
}

/* Form-Wrap fuer Onboarding-Reset (POST-Submit) */
.bk-allfn-form { margin: 0; padding: 0; }
.bk-allfn-form .bk-allfn-item {
    border: 1px solid color-mix(in srgb, var(--bk-accent-orange, #F39C12) 40%, var(--bk-border-subtle, #EBEBF2));
    cursor: pointer;
}

.bk-hero-kpi__label {
    margin: 0 0 var(--bk-space-sm);
    font-size: 11px;                        /* Dashboard Light 23:5/10/15 Figma-exact (war 12px) */
    font-weight: 600;
    letter-spacing: 1.4px;                  /* =12.73% von 11px, Figma style_PC74ZI exact (war 0.5px) */
    text-transform: uppercase;
    color: #73738C;                         /* Dashboard Light 23:5/10/15 Label-Color (war #6B6B7A — anderer Hex als Subline!) */
}

.bk-hero-kpi__value {
    margin: 0 0 var(--bk-space-sm);
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    font-weight: 700;
    font-size: 48px;
    line-height: 1;
    letter-spacing: -1.5px;                 /* =-3.13% von 48px, Figma style_WUWENN exact */
    color: #1A1A2E;                         /* Dashboard Light 23:6/11/16 Schrift SCHWARZ — die Farbe kommt vom BG-Tint und Border-Left, NICHT vom Text (Marco-Korrektur 2026-05-22 ~16:45 UTC final) */
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);  /* Figma effect_77PTB1 — subtiler Tiefen-Schatten am Value */
}

.bk-hero-kpi__sublabel {
    margin: 0;
    font-size: 12px;                        /* Dashboard Light 23:7 Sublabel Figma-exact (war 13px) */
    color: #6B6B7A;                         /* Dashboard Light 23:7 Sublabel-Color (matches Subline) */
}

/* Sparkline-Mini-Chart rechts oben in jeder KPI-Card
   Figma 23:8/13/18 IMAGE-SVG 120x30 px, stroke-width 2px + Glow rgba(accent,0.35) */
.bk-hero-kpi__sparkline {
    position: absolute;
    top: var(--bk-space-lg);
    right: var(--bk-space-lg);
    width: 120px;
    height: 30px;
    pointer-events: none;
    filter: drop-shadow(0 0 8px color-mix(in srgb, var(--bk-hero-accent) 35%, transparent));
}
.bk-hero-kpi__sparkline path {
    fill: none;
    stroke: var(--bk-hero-accent);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}
/* Mobile: Sparkline unter Value-Bereich kleiner positionieren */
@media (max-width: 768px) {
    .bk-hero-kpi__sparkline { width: 80px; height: 22px; right: var(--bk-space-md); top: var(--bk-space-md); }
}

/* ═══════════════════════════════════════════════════════════════════
   ONBOARDING-BANNER (Figma 95:2 — orange Gradient mit Progress 60%)
   ═══════════════════════════════════════════════════════════════════ */
.bk-onboarding-banner {
    display: flex;
    align-items: center;
    gap: var(--bk-space-lg);
    padding: var(--bk-space-md) var(--bk-space-lg);
    margin-bottom: var(--bk-space-lg);
    background: linear-gradient(90deg, #FFF7EB 0%, #FFF0D6 100%);
    border: 1px solid rgba(245, 158, 18, 0.35);
    border-radius: 10px;
    box-shadow: 0 2px 8px rgba(245, 158, 18, 0.18);
    position: relative;
    z-index: 1;
}
.bk-onboarding-banner__icon { flex: 0 0 auto; width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; color: #F39C12; }
.bk-onboarding-banner__body { flex: 1 1 auto; min-width: 0; }
.bk-onboarding-banner__title { font-size: 14px; font-weight: 600; color: #1A1A2E; line-height: 1.3; }
.bk-onboarding-banner__sub { font-size: 12px; color: #6B6B7A; margin-top: 2px; }
.bk-onboarding-banner__progress { flex: 0 0 220px; display: flex; align-items: center; gap: 8px; }
.bk-onboarding-banner__progress-bar { flex: 1 1 auto; height: 6px; background: rgba(245, 158, 18, 0.15); border-radius: 3px; overflow: hidden; }
.bk-onboarding-banner__progress-bar > span { display: block; height: 100%; background: #F39C12; border-radius: 3px; transition: width 0.3s ease; }
.bk-onboarding-banner__progress-label { font-size: 11px; font-weight: 600; color: #6B6B7A; min-width: 36px; }
.bk-onboarding-banner__cta {
    flex: 0 0 auto;
    display: inline-flex; align-items: center; gap: 6px;
    padding: 8px 14px;
    background: #F39C12; color: #FFFFFF !important;
    border-radius: 8px; font-size: 13px; font-weight: 600;
    text-decoration: none !important;
    box-shadow: 0 2px 6px rgba(243, 156, 18, 0.3);
    transition: background 0.2s ease, transform 0.2s ease;
}
.bk-onboarding-banner__cta:hover { background: #DB8A0A; transform: translateY(-1px); }
[data-theme="dark"] .bk-onboarding-banner {
    background: linear-gradient(90deg, rgba(245,158,18,0.08) 0%, rgba(245,158,18,0.15) 100%);
    border-color: rgba(245, 158, 18, 0.4);
}
[data-theme="dark"] .bk-onboarding-banner__title { color: #EBEBF5; }
[data-theme="dark"] .bk-onboarding-banner__sub,
[data-theme="dark"] .bk-onboarding-banner__progress-label { color: #9E9EAD; }
@media (max-width: 768px) {
    .bk-onboarding-banner { flex-wrap: wrap; }
    .bk-onboarding-banner__progress { flex: 1 1 100%; order: 3; }
    .bk-onboarding-banner__cta { order: 4; flex: 1 1 100%; justify-content: center; }
}

/* ═══════════════════════════════════════════════════════════════════
   WELCOME-MODAL — Onboarding-Hybrid Phase 3 (Marco 2026-05-23)
   Einmaliges Modal beim allerersten Login eines Handwerker-Owners.
   Alle Close-Pfade (X / Backdrop / ESC / CTA) setzen welcomed_at=NOW().
   ═══════════════════════════════════════════════════════════════════ */
.bk-welcome-modal {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--bk-space-lg);
    animation: bk-welcome-fade-in 200ms ease-out;
}
.bk-welcome-modal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(26, 26, 46, 0.6);
    backdrop-filter: blur(4px);
    cursor: pointer;
}
.bk-welcome-modal__card {
    position: relative;
    max-width: 560px;
    width: 100%;
    background: var(--bg-surface);
    color: var(--text-primary);
    border-radius: 16px;
    padding: 40px 36px 32px;
    box-shadow: 0 24px 48px rgba(0, 0, 0, 0.18), 0 4px 12px rgba(0, 0, 0, 0.08);
    animation: bk-welcome-slide-up 280ms cubic-bezier(0.16, 1, 0.3, 1);
    max-height: 90vh;
    overflow-y: auto;
}
.bk-welcome-modal__dismiss-form { position: absolute; top: 12px; right: 12px; margin: 0; }
.bk-welcome-modal__close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background: transparent;
    border: 0;
    border-radius: 50%;
    color: var(--text-secondary);
    cursor: pointer;
    transition: background 150ms ease, color 150ms ease;
}
.bk-welcome-modal__close:hover { background: var(--bg-surface-2); color: var(--text-primary); }
.bk-welcome-modal__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    margin: 0 0 var(--bk-space-md);
    background: color-mix(in srgb, var(--primary) 12%, var(--bg-surface));
    color: var(--primary);
    border-radius: 50%;
}
.bk-welcome-modal__title {
    margin: 0 0 var(--bk-space-sm);
    font-family: 'Inter', system-ui, sans-serif;
    font-size: 24px;
    font-weight: 700;
    letter-spacing: -0.4px;
    color: var(--text-primary);
}
.bk-welcome-modal__sub {
    margin: 0 0 var(--bk-space-lg);
    font-size: 15px;
    line-height: 1.5;
    color: var(--text-secondary);
}
.bk-welcome-modal__features {
    list-style: none;
    padding: 0;
    margin: 0 0 var(--bk-space-lg);
    display: flex;
    flex-direction: column;
    gap: var(--bk-space-sm);
}
.bk-welcome-modal__feature {
    display: flex;
    align-items: flex-start;
    gap: var(--bk-space-md);
}
.bk-welcome-modal__feature-icon {
    flex: 0 0 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: color-mix(in srgb, var(--primary) 8%, var(--bg-surface));
    color: var(--primary);
    border-radius: 8px;
}
.bk-welcome-modal__feature-text {
    flex: 1 1 auto;
    font-size: 14px;
    line-height: 1.45;
    color: var(--text-primary);
    padding-top: 6px;
}
.bk-welcome-modal__demo-hint {
    padding: var(--bk-space-md);
    margin: 0 0 var(--bk-space-lg);
    background: color-mix(in srgb, var(--info) 8%, var(--bg-surface));
    border-left: 3px solid var(--info);
    border-radius: 0 8px 8px 0;
    font-size: 13px;
    line-height: 1.55;
    color: var(--text-secondary);
}
.bk-welcome-modal__demo-hint strong { color: var(--text-primary); }
.bk-welcome-modal__cta-form { margin: 0; }
.bk-welcome-modal__cta {
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--bk-space-sm);
    padding: 14px 24px;
    background: var(--primary);
    color: #fff;
    border: 0;
    border-radius: 10px;
    font-family: 'Inter', system-ui, sans-serif;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.2px;
    cursor: pointer;
    transition: background 150ms ease, transform 80ms ease;
}
.bk-welcome-modal__cta:hover { background: color-mix(in srgb, var(--primary) 92%, #000); }
.bk-welcome-modal__cta:active { transform: translateY(1px); }
@keyframes bk-welcome-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes bk-welcome-slide-up { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
[data-theme="dark"] .bk-welcome-modal__overlay { background: rgba(0, 0, 0, 0.7); }
@media (max-width: 600px) {
    .bk-welcome-modal { padding: var(--bk-space-md); }
    .bk-welcome-modal__card { padding: 32px 24px 24px; }
    .bk-welcome-modal__title { font-size: 20px; }
    .bk-welcome-modal__sub { font-size: 14px; }
    .bk-welcome-modal__icon { width: 56px; height: 56px; }
}

/* ═══════════════════════════════════════════════════════════════════
   UI-TUTORIAL-CARD — Onboarding-Hybrid Phase 4 (Marco 2026-05-23)
   3-Tipp-Card auf dem Dashboard. Erklaert KPI-Pin, Alle-Funktionen-
   Drawer und Status-Badges. Verschwindet bei sidebar_onboarding_done.
   ═══════════════════════════════════════════════════════════════════ */
.bk-tutorial-card {
    position: relative;
    margin: 0 0 var(--bk-space-xl);
    padding: var(--bk-space-lg);
    background: var(--bg-surface);
    border: 1px solid var(--border-subtle);
    border-radius: 14px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}
.bk-tutorial-card__dismiss-form { position: absolute; top: 10px; right: 10px; margin: 0; z-index: 1; }
.bk-tutorial-card__close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    background: transparent;
    border: 0;
    border-radius: 50%;
    color: var(--text-muted);
    cursor: pointer;
    transition: background 150ms ease, color 150ms ease;
}
.bk-tutorial-card__close:hover { background: var(--bg-surface-2); color: var(--text-primary); }
.bk-tutorial-card__header {
    display: flex;
    align-items: flex-start;
    gap: var(--bk-space-md);
    margin-bottom: var(--bk-space-md);
    padding-bottom: var(--bk-space-md);
    border-bottom: 1px solid var(--border-subtle);
}
.bk-tutorial-card__header-icon {
    flex: 0 0 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: color-mix(in srgb, var(--warning) 14%, var(--bg-surface));
    color: var(--warning);
    border-radius: 8px;
}
.bk-tutorial-card__header-text { flex: 1 1 auto; }
.bk-tutorial-card__title {
    margin: 0 0 2px;
    font-family: 'Inter', system-ui, sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: var(--text-primary);
}
.bk-tutorial-card__sub {
    margin: 0;
    font-size: 13px;
    color: var(--text-secondary);
}
.bk-tutorial-card__tips {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--bk-space-md);
}
.bk-tutorial-card__tip {
    display: flex;
    align-items: flex-start;
    gap: var(--bk-space-sm);
    padding: var(--bk-space-md);
    background: var(--bg-surface-2);
    border-radius: 10px;
}
.bk-tutorial-card__tip-icon {
    flex: 0 0 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--bg-surface);
    color: var(--primary);
    border-radius: 6px;
}
.bk-tutorial-card__tip-body { flex: 1 1 auto; min-width: 0; }
.bk-tutorial-card__tip-title {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: 4px;
    line-height: 1.3;
}
.bk-tutorial-card__tip-text {
    font-size: 12px;
    line-height: 1.5;
    color: var(--text-secondary);
}
@media (max-width: 900px) {
    .bk-tutorial-card__tips { grid-template-columns: 1fr; gap: var(--bk-space-sm); }
}

/* ═══════════════════════════════════════════════════════════════════
   HAIRLINE-DIVIDER (Figma x=276,y=436,w=1132,h=1)
   ═══════════════════════════════════════════════════════════════════ */
.bk-hairline { border: 0; height: 1px; background: #EBEBF2; margin: var(--bk-space-xl) 0; }
[data-theme="dark"] .bk-hairline { background: #2A2A35; }

/* ═══════════════════════════════════════════════════════════════════
   HEUTE-SEKTION (Figma 24:2-24:18 — 3 Items mit Border-Left + Pill)
   ═══════════════════════════════════════════════════════════════════ */
.bk-today { margin-bottom: var(--bk-space-xl); position: relative; z-index: 1; }
.bk-today__head { display: flex; align-items: baseline; gap: var(--bk-space-md); margin-bottom: var(--bk-space-md); }
.bk-today__title { margin: 0; font-family: 'Inter', system-ui, sans-serif; font-weight: 700; font-size: 20px; letter-spacing: -0.3px; color: #1A1A2E; }
.bk-today__sub { font-size: 10px; font-weight: 600; letter-spacing: 1.4px; text-transform: uppercase; color: #8C8C9E; }
.bk-today__list { list-style: none; padding: 0; margin: 0; }
.bk-today__item {
    display: grid;
    grid-template-columns: 4px 22px 1fr auto;
    align-items: center;
    gap: var(--bk-space-md);
    padding: var(--bk-space-md) 0;
    border-bottom: 1px solid #EBEBF2;
}
.bk-today__item::before { content: ""; width: 3px; height: 44px; border-radius: 2px; background: #8C8C9E; }
.bk-today__item--danger::before  { background: #D14242; box-shadow: 0 0 6px rgba(209, 66, 66, 0.35); }
.bk-today__item--warning::before { background: #E5A817; box-shadow: 0 0 6px rgba(229, 168, 23, 0.30); }
.bk-today__item--info::before    { background: #294A8C; box-shadow: 0 0 6px rgba(41, 74, 140, 0.30); }
.bk-today__icon { width: 22px; height: 22px; display: flex; align-items: center; justify-content: center; color: #8C8C9E; }
.bk-today__item--danger  .bk-today__icon { color: #D14242; }
.bk-today__item--warning .bk-today__icon { color: #E5A817; }
.bk-today__item--info    .bk-today__icon { color: #294A8C; }
.bk-today__text { font-size: 14px; font-weight: 600; color: #1A1A2E; }
.bk-today__pill {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 7px 14px;
    background: #FFFFFF; border: 1px solid #294A8C; border-radius: 15px;
    font-size: 12px; font-weight: 600;
    color: #294A8C !important; text-decoration: none !important;
    box-shadow: 0 1px 4px rgba(41, 74, 140, 0.10);
    transition: background 0.2s ease, transform 0.2s ease;
}
.bk-today__pill:hover { background: #F0F5FF; transform: translateY(-1px); }
[data-theme="dark"] .bk-today__title { color: #EBEBF5; }
[data-theme="dark"] .bk-today__sub { color: #9E9EAD; }
[data-theme="dark"] .bk-today__item { border-bottom-color: #2A2A35; }
[data-theme="dark"] .bk-today__text { color: #EBEBF5; }
[data-theme="dark"] .bk-today__pill {
    background: rgba(107, 158, 219, 0.08);
    color: #B2B2C7 !important;
    border-color: rgba(107, 158, 219, 0.4);
}
[data-theme="dark"] .bk-today__pill:hover { background: rgba(107, 158, 219, 0.15); }
@media (max-width: 768px) {
    .bk-today__item { grid-template-columns: 4px 22px 1fr; }
    .bk-today__pill { grid-column: 2 / -1; margin-top: 6px; justify-self: start; }
}

/* ═══════════════════════════════════════════════════════════════════
   SCHNELL-ANLEGEN (Figma 25:2-25:11 — 3 QA-Cards Primary + 2x Secondary)
   ═══════════════════════════════════════════════════════════════════ */
.bk-qa { margin-bottom: var(--bk-space-xl); position: relative; z-index: 1; }
.bk-qa__title { margin: 0 0 var(--bk-space-md); font-family: 'Inter', system-ui, sans-serif; font-weight: 700; font-size: 20px; letter-spacing: -0.3px; color: #1A1A2E; }
.bk-qa__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--bk-space-lg); }
.bk-qa__card {
    display: flex; align-items: center; gap: var(--bk-space-md);
    padding: var(--bk-space-md) var(--bk-space-lg);
    min-height: 76px;
    border-radius: 10px;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.bk-qa__card:hover { transform: translateY(-2px); }
.bk-qa__card--primary {
    background: #294A8C; color: #FFFFFF !important;
    box-shadow: 0 4px 12px rgba(41, 74, 140, 0.35);
}
.bk-qa__card--primary:hover { box-shadow: 0 6px 18px rgba(41, 74, 140, 0.45); }
.bk-qa__card--secondary {
    background: #F0F5FF;
    border: 1.5px solid #294A8C;
    color: #1A1A2E !important;
    box-shadow: 0 3px 10px rgba(41, 74, 140, 0.18);
}
.bk-qa__card--secondary:hover { box-shadow: 0 5px 14px rgba(41, 74, 140, 0.25); }
.bk-qa__card-icon { flex: 0 0 auto; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; }
.bk-qa__card--primary .bk-qa__card-icon   { color: #FFFFFF; }
.bk-qa__card--secondary .bk-qa__card-icon { color: #294A8C; }
.bk-qa__card-body { flex: 1 1 auto; min-width: 0; }
.bk-qa__card-label { font-size: 15px; font-weight: 600; line-height: 1.2; }
.bk-qa__card-sub { font-size: 12px; opacity: 0.85; margin-top: 2px; }
.bk-qa__card--secondary .bk-qa__card-sub { color: #6B6B7A; opacity: 1; }
.bk-qa__ai-badge {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 6px;
    background: #F39C12; color: #FFFFFF;
    font-size: 9px; font-weight: 700; letter-spacing: 0.5px;
    border-radius: 4px; vertical-align: middle;
    box-shadow: 0 0 8px rgba(243, 156, 18, 0.45);
}
[data-theme="dark"] .bk-qa__title { color: #EBEBF5; }
[data-theme="dark"] .bk-qa__card--primary { background: #5B82AE; box-shadow: 0 4px 12px rgba(107, 158, 219, 0.25); }
[data-theme="dark"] .bk-qa__card--secondary {
    background: rgba(107, 158, 219, 0.08);
    border-color: rgba(107, 158, 219, 0.5);
    color: #EBEBF5 !important;
}
[data-theme="dark"] .bk-qa__card--secondary .bk-qa__card-icon { color: #B2B2C7; }
[data-theme="dark"] .bk-qa__card--secondary .bk-qa__card-sub { color: #9E9EAD; }
@media (max-width: 768px) {
    .bk-qa__grid { grid-template-columns: 1fr; gap: var(--bk-space-md); }
}

/* ═══════════════════════════════════════════════════════════════════
   MOODLIGHTS (Figma 44:2 blau + 44:3 orange — subtle Background-Glow)
   ═══════════════════════════════════════════════════════════════════ */
.bk-moodlights { position: fixed; inset: 0; pointer-events: none; z-index: 0; overflow: hidden; }
.bk-moodlights::before,
.bk-moodlights::after { content: ""; position: absolute; border-radius: 50%; }
.bk-moodlights::before {
    left: 25%; top: 60px;
    width: 700px; height: 200px;
    background: rgba(107, 158, 219, 0.06);
    filter: blur(80px);
}
.bk-moodlights::after {
    right: 5%; top: 120px;
    width: 380px; height: 280px;
    background: rgba(245, 158, 18, 0.06);
    filter: blur(100px);
}
[data-theme="dark"] .bk-moodlights::before { background: rgba(107, 158, 219, 0.08); }
[data-theme="dark"] .bk-moodlights::after  { background: rgba(245, 158, 18, 0.08); }

/* ═══════════════════════════════════════════════════════════════════
   VERLAUF-SEKTION (Figma 25:17-25 — Umsatz + Stunden Mini-Sparklines)
   ═══════════════════════════════════════════════════════════════════ */
.bk-history { margin-bottom: var(--bk-space-xl); position: relative; z-index: 1; }
.bk-history__title { margin: 0 0 var(--bk-space-md); font-family: 'Inter', system-ui, sans-serif; font-weight: 700; font-size: 20px; letter-spacing: -0.3px; color: #1A1A2E; }
.bk-history__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--bk-space-lg); }
.bk-history__card { padding: var(--bk-space-md) 0; }
.bk-history__card-head { display: flex; align-items: baseline; gap: 8px; margin-bottom: var(--bk-space-sm); }
.bk-history__card-label { font-size: 14px; font-weight: 600; color: #1A1A2E; }
.bk-history__card-sub { font-size: 11px; color: #8C8C9E; }
.bk-history__card-row { display: flex; align-items: center; gap: var(--bk-space-lg); }
.bk-history__card-value {
    flex: 0 0 auto;
    font-family: 'Inter', system-ui, sans-serif;
    font-weight: 700;
    font-size: 28px;
    line-height: 1;
    letter-spacing: -0.5px;
}
.bk-history__card--positive .bk-history__card-value { color: #2E9959; }
.bk-history__card--info     .bk-history__card-value { color: #294A8C; }
.bk-history__card-sparkline {
    flex: 1 1 auto;
    height: 40px;
    max-width: 380px;
}
.bk-history__card-sparkline path { fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.bk-history__card--positive .bk-history__card-sparkline path { stroke: #2E9959; filter: drop-shadow(0 0 8px rgba(46, 153, 89, 0.35)); }
.bk-history__card--info     .bk-history__card-sparkline path { stroke: #294A8C; filter: drop-shadow(0 0 8px rgba(41, 74, 140, 0.35)); }
[data-theme="dark"] .bk-history__title,
[data-theme="dark"] .bk-history__card-label { color: #EBEBF5; }
[data-theme="dark"] .bk-history__card-sub { color: #9E9EAD; }
[data-theme="dark"] .bk-history__card--positive .bk-history__card-value { color: #5DBA80; }
[data-theme="dark"] .bk-history__card--info     .bk-history__card-value { color: #6B9EDB; }
[data-theme="dark"] .bk-history__card--positive .bk-history__card-sparkline path { stroke: #5DBA80; }
[data-theme="dark"] .bk-history__card--info     .bk-history__card-sparkline path { stroke: #6B9EDB; }
@media (max-width: 768px) {
    .bk-history__grid { grid-template-columns: 1fr; gap: var(--bk-space-md); }
}

/* ═══════════════════════════════════════════════════════════════════
   SIDEBAR-BRAND (Figma Dashboard Light/Dark — Booklera-Logo oben)
   ═══════════════════════════════════════════════════════════════════ */
.sb-brand { padding: 0 0 var(--bk-space-md); margin-bottom: var(--bk-space-md); border-bottom: 1px solid #EBEBF2; }
.sb-brand__logo {
    display: block;
    font-family: 'Inter', system-ui, sans-serif;
    font-weight: 700;
    font-size: 22px;
    letter-spacing: -0.5px;
    color: #3E5F88;
    line-height: 1;
}
.sb-brand__strip { display: block; width: 60px; height: 3px; background: #F39C12; margin-top: 6px; border-radius: 2px; box-shadow: 0 0 8px rgba(243, 156, 18, 0.4); }
[data-theme="dark"] .sb-brand { border-bottom-color: #2A2A35; }
[data-theme="dark"] .sb-brand__logo { color: #6B9EDB; }

/* ═══════════════════════════════════════════════════════════════════
   SIDEBAR PLAN-INFO-BADGE (Figma — Pro-Tarif noch X Tage)
   ═══════════════════════════════════════════════════════════════════ */
.sb-plan-info {
    display: flex;
    align-items: center;
    gap: 8px;
    /* Sidebar-Cleanup Marco 2026-05-22: kompakter — war 10px 12px + mb md */
    padding: 6px 10px;
    margin-bottom: 6px;
    background: linear-gradient(135deg, rgba(41,74,140,0.08) 0%, rgba(243,156,18,0.12) 100%);
    border: 1px solid rgba(41,74,140,0.25);
    border-radius: 8px;
    text-decoration: none !important;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.sb-plan-info:hover { transform: translateY(-1px); box-shadow: 0 2px 8px rgba(41,74,140,0.15); text-decoration: none !important; }
.sb-plan-info__icon { flex: 0 0 auto; color: #F39C12; display: flex; align-items: center; justify-content: center; }
.sb-plan-info__body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.sb-plan-info__title { font-size: 12px; font-weight: 700; color: #1A1A2E; line-height: 1.2; }
.sb-plan-info__sub { font-size: 10px; color: #6B6B7A; line-height: 1.2; }
.sb-plan-info--urgent { border-color: rgba(245,158,18,0.5); background: linear-gradient(135deg, rgba(245,158,18,0.10) 0%, rgba(245,158,18,0.18) 100%); }
[data-theme="dark"] .sb-plan-info {
    background: linear-gradient(135deg, rgba(107,158,219,0.10) 0%, rgba(245,158,18,0.15) 100%);
    border-color: rgba(245,158,18,0.4);
}
[data-theme="dark"] .sb-plan-info__title { color: #EBEBF5; }
[data-theme="dark"] .sb-plan-info__sub { color: #9E9EAD; }

/* ═══════════════════════════════════════════════════════════════════
   ADMIN-HEADER (Figma 22:3 — Search + Beruf-Pill + Bell + Avatar)
   ═══════════════════════════════════════════════════════════════════ */
.bk-admin-strip { height: 3px; background: #F39C12; box-shadow: 0 0 12px rgba(243,156,18,0.35); }
.bk-admin-search {
    flex: 1 1 auto;
    max-width: 480px;
    margin: 0 var(--bk-space-md);
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    background: #F5F5F7;
    border: 1px solid #E0E0EB;
    border-radius: 10px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.bk-admin-search:focus-within { border-color: #294A8C; box-shadow: 0 0 0 3px rgba(41,74,140,0.12); }
.bk-admin-search__icon { display: flex; align-items: center; justify-content: center; color: #8C8C9E; }
.bk-admin-search__input {
    flex: 1 1 auto; min-width: 0;
    border: 0; outline: 0; background: transparent;
    font-size: 13px; font-family: inherit; color: #1A1A2E;
}
.bk-admin-search__input::placeholder { color: #8C8C9E; }
.bk-admin-beruf-pill {
    display: inline-flex; align-items: center;
    padding: 4px 12px;
    background: #FFF5E1;
    border: 1px solid rgba(243,156,18,0.3);
    border-radius: 12px;
    font-size: 11px; font-weight: 600; color: #805A33;
    margin-right: 4px;
    white-space: nowrap;
}
[data-theme="dark"] .bk-admin-search { background: rgba(255,255,255,0.04); border-color: #2A2A35; }
[data-theme="dark"] .bk-admin-search__input { color: #EBEBF5; }
[data-theme="dark"] .bk-admin-search__input::placeholder { color: #6E747F; }
[data-theme="dark"] .bk-admin-beruf-pill {
    background: rgba(243,156,18,0.10);
    border-color: rgba(243,156,18,0.35);
    color: #F8B233;
}

/* Theme-Toggle im Header (Figma — Moon Light / Sun Dark) */
.bk-admin-theme-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px; height: 36px;
    background: transparent;
    border: 1px solid #E0E0EB;
    border-radius: 50%;
    cursor: pointer;
    color: #6B6B7A;
    transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
    padding: 0;
}
.bk-admin-theme-toggle:hover { background: #F5F5F7; color: #294A8C; transform: translateY(-1px); }
.bk-admin-theme-toggle__icon { display: none; }
.bk-admin-theme-toggle__icon--moon { display: inline-flex; } /* Light Mode: Moon-Icon zeigen (zu Dark wechseln) */
[data-theme="dark"] .bk-admin-theme-toggle { border-color: #2A2A35; color: #B2B2C7; }
[data-theme="dark"] .bk-admin-theme-toggle:hover { background: rgba(255,255,255,0.06); color: #F8B233; }
[data-theme="dark"] .bk-admin-theme-toggle__icon--moon { display: none; }
[data-theme="dark"] .bk-admin-theme-toggle__icon--sun  { display: inline-flex; }

@media (max-width: 768px) {
    .bk-admin-search { max-width: none; margin: 0 8px; }
    .bk-admin-beruf-pill { display: none; }
}

/* ═══════════════════════════════════════════════════════════════════
   FOOTER-STATUS-BAR (Figma 29:7 — Pulse + Sync-Text + Version)
   ═══════════════════════════════════════════════════════════════════ */
.bk-footer-status {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--bk-space-md);
    padding: 8px var(--bk-space-lg);
    margin-top: var(--bk-space-xl);
    background: #FAF5F0;
    border-top: 1px solid #E0E0EB;
    border-radius: 0 0 8px 8px;
    font-size: 12px;
    color: #6B6B7A;
    position: relative;
    z-index: 1;
}
.bk-footer-status__left { display: inline-flex; align-items: center; gap: 10px; }
.bk-footer-status__pulse-dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: #2E9959;
    box-shadow: 0 0 8px rgba(46, 153, 89, 0.6);
    animation: bk-pulse 2s ease-in-out infinite;
}
@keyframes bk-pulse {
    0%, 100% { box-shadow: 0 0 8px rgba(46, 153, 89, 0.6); }
    50%      { box-shadow: 0 0 14px rgba(46, 153, 89, 0.9); }
}
.bk-footer-status__sync-text { font-weight: 500; }
.bk-footer-status__brand { color: #8C8C9E; }
[data-theme="dark"] .bk-footer-status { background: rgba(245, 158, 18, 0.04); border-top-color: #2A2A35; color: #9E9EAD; }
[data-theme="dark"] .bk-footer-status__brand { color: #6E747F; }
@media (max-width: 768px) {
    .bk-footer-status { flex-direction: column; gap: 6px; align-items: flex-start; }
}

/* Mobile: stack Hero vertikal */
@media (max-width: 768px) {
    .bk-hero { grid-template-columns: 1fr; }
    .bk-hero-grid { grid-template-columns: 1fr; gap: var(--bk-space-md); }
    .bk-greeting-title { font-size: 28px; }
    .bk-hero-kpi__value { font-size: 40px; }
    .bk-weather-card { min-width: 0; }
}

/* ─── Dark-Mode (Figma 33:5 Dashboard_Dark — exakte Hex) ─────────── */
[data-theme="dark"] .bk-greeting-title    { color: #e0e0eb; }
[data-theme="dark"] .bk-greeting-subtitle { color: #9e9ead; }

[data-theme="dark"] .bk-weather-card {
    background: #1d1b16;  /* Figma 35:15 Dark exakt */
    border-color: rgba(245, 158, 18, 0.3);
    box-shadow: 0 2px 8px rgba(245, 158, 18, 0.12);
}
[data-theme="dark"] .bk-weather-card__icon      { color: #F5C75C; }  /* Dashboard Dark 35:16 hellerer Gold-Ton (war faelschlich #F59E12 = Light-Wert) */
[data-theme="dark"] .bk-weather-card__temp      { color: #e0e0eb; }
[data-theme="dark"] .bk-weather-card__condition { color: #9e9ead; }
[data-theme="dark"] .bk-weather-card__location  { color: #808094; }

/* Dark BG pro Variante (Figma 37:2 + analog fuer danger/success) */
[data-theme="dark"] .bk-hero-kpi--info    { background: rgba(107, 158, 219, 0.08); }   /* Figma 37:2 Dark info */
[data-theme="dark"] .bk-hero-kpi--danger  { background: rgba(216, 117, 117, 0.08); }   /* Dark danger analog #D87575 */
[data-theme="dark"] .bk-hero-kpi--success { background: rgba(93, 186, 128, 0.08); }    /* Dark success analog #5DBA80 */
[data-theme="dark"] .bk-hero-kpi--warning { background: rgba(248, 178, 51, 0.08); }    /* Dark warning analog #F8B233 */

[data-theme="dark"] .bk-hero-kpi:hover {
    box-shadow: 0 4px 12px color-mix(in srgb, var(--bk-hero-accent) 8%, transparent);
}
[data-theme="dark"] .bk-hero-kpi__label    { color: #9E9EAD; }   /* Dashboard Dark 37:4 Label-Color (Figma exact) */
[data-theme="dark"] .bk-hero-kpi__value    { color: #EBEBF5; text-shadow: 0 0 24px rgba(255, 255, 255, 0.08); }   /* Dashboard Dark 37:5 Value Hellweiss + Glow (Figma effect_2NZLMH) */
[data-theme="dark"] .bk-hero-kpi__sublabel { color: #9e9ead; }


/* ============================================================
   END OF FOUNDATION COMPONENTS — Phase 0.2
============================================================ */


/*  DARK MODE ─────────────────────────────────────────────
    Marcos Wunsch: "dunklerer Hintergrund und helleres Menü".
    Umgesetzt als: Content-Bereich deutlich dunkler als Sidebar.
    Sidebar im Dark-Mode ist "bg-surface-2" (mittleres dunkelgrau),
    Content ist "bg-base" (sehr dunkel) — also das Menu IST heller
    als der Hintergrund.
*/
[data-theme="dark"] {
    /* ── Brand (leicht heller fuer besseren Kontrast auf dark BG) ── */
    /* L-C (2026-04-27): Dark-Mode-Primary sanft justiert (analog Light) */
    --primary: #5B82AE;
    --primary-dark: #3E5F88;
    --primary-light: #88A8C8;

    /* ── Backgrounds (neutrales Anthrazit, KEIN Lila/Blau-Stich) ── */
    --bg-base: #131316;            /* sehr dunkel — Hauptflaeche */
    --bg-surface: #1C1C20;         /* Cards */
    --bg-surface-2: #25252A;       /* Sidebar BG + Table-Header (HELLER als bg-base) */
    --bg-elevated: #2E2E33;        /* Modals, Dropdowns */
    --bg-sidebar: #25252A;
    --bg-sidebar-hover: #2E2E33;
    --bg-sidebar-active: #38383E;
    --bg-sidebar-header: rgba(255,255,255,0.06);
    --bg-sidebar-border: #3A3A40;
    --bg-input: #1C1C20;
    --bg-code: #1C1C20;
    --bg-hover: rgba(255,255,255,0.04);

    /* ── Text Colors ─────────────────────────────────── */
    --text-primary: #E8E8EA;       /* fast-weiss, neutral */
    --text-secondary: #B8B9BC;
    --text-muted: #8A8B8E;
    --text-inverted: #FFFFFF;
    --text-sidebar: #FFFFFF;
    --text-sidebar-dim: #A8A9AC;
    --text-sidebar-section: #D8D9DC;
    --text-sidebar-active: var(--primary-light);

    /* ── Borders ─────────────────────────────────────── */
    --border: #3A3A40;
    --border-subtle: rgba(255,255,255,0.08);
    --border-strong: #4A4A50;

    /* ── Status Colors (dunklere Hintergruende) ──────── */
    --success: #4ADD8A;
    --success-bg: rgba(45, 154, 90, 0.15);
    --warning: #F5C049;
    --warning-bg: rgba(230, 168, 23, 0.15);
    --danger: #F06464;
    --danger-bg: rgba(209, 67, 67, 0.15);
    --info: #60A5FA;
    --info-bg: rgba(59, 130, 246, 0.15);

    /* ── Gold-Akzent Dark-Mode (heller fuer guten Kontrast auf bg-base) ── */
    --gold-accent: #E8C04F;
    --gold-accent-dim: #F5D77A;

    /* ── Legacy-Alias auf Dark-Werte mappen ──────────── */
    --secondary: var(--bg-base);
    --white: var(--bg-surface);
    --dark: var(--bg-sidebar);
    --dark-light: var(--bg-sidebar-hover);
    --warm-gray: var(--text-muted);
    --light-gray: #3A3A40;

    /* ── Shadows (staerker fuer Depth-Wahrnehmung) ───── */
    --shadow: 0 1px 3px rgba(0,0,0,0.4);
    --shadow-md: 0 4px 12px rgba(0,0,0,0.4);
    --shadow-lg: 0 8px 24px rgba(0,0,0,0.5);
    --shadow-card: 0 1px 4px rgba(0,0,0,0.3);
}

/* Smooth transition beim Theme-Wechsel (nur auf kritische Farben
   — nicht auf transform/opacity/etc. um Micro-Interaktionen nicht
   zu verzögern). */
html {
    transition: background-color 0.2s ease;
}
body, .sidebar, .card, .page-header, .form-control, .btn,
.sidebar-nav details.nav-group > summary.nav-section {
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

/* ═════════════════════════════════════════════════════════════════ */
/* DARK-MODE OVERRIDES fuer haeufige hardcoded Pastell-Inline-Styles  */
/*                                                                    */
/* Einige Templates (rechnung_detail, dashboard, etc.) nutzen inline- */
/* styles mit heller-BG + dunkler-Text-Kombinationen fuer Info-Banner */
/* und Badges. Diese sind im Light-Mode sauber lesbar, im Dark-Mode   */
/* wuerden die hellen Pastell-BGs aber zu stark leuchten. Hier werden */
/* die wichtigsten Kombinationen adaptiv gemacht.                     */
/*                                                                    */
/* Strategie: per Attribute-Selector auf die hex-Werte matchen und    */
/* im Dark-Mode transparente rgba-Versionen darueberlegen. Performance*/
/* ist akzeptabel weil nur wenige Elemente betroffen sind.            */
/* ═════════════════════════════════════════════════════════════════ */
[data-theme="dark"] [style*="background:#e8f0fe"],
[data-theme="dark"] [style*="background:#e3f2fd"],
[data-theme="dark"] [style*="background:#ebf2ff"],
[data-theme="dark"] [style*="background:#eff6ff"],
[data-theme="dark"] [style*="background:#EBF2FF"] {
    background: rgba(59, 130, 246, 0.18) !important;
    color: #93C5FD !important;
}
[data-theme="dark"] [style*="color:#1a73e8"],
[data-theme="dark"] [style*="color:#1565c0"],
[data-theme="dark"] [style*="color:#1565C0"],
[data-theme="dark"] [style*="color:#1e3a8a"],
[data-theme="dark"] [style*="color:#065f46"] {
    color: #93C5FD !important;
}
[data-theme="dark"] [style*="background:#e6f4ec"],
[data-theme="dark"] [style*="background:#E6F4EC"],
[data-theme="dark"] [style*="background:#d1fae5"],
[data-theme="dark"] [style*="background:#e8f5e9"] {
    background: rgba(74, 221, 138, 0.14) !important;
    color: #6EE7A7 !important;
}
[data-theme="dark"] [style*="background:#fef3c7"],
[data-theme="dark"] [style*="background:#fff3e0"],
[data-theme="dark"] [style*="background:#FFF3E0"],
[data-theme="dark"] [style*="background:#fff5e0"],
[data-theme="dark"] [style*="background:#fff8ee"],
[data-theme="dark"] [style*="background:#fff8e1"],
[data-theme="dark"] [style*="background:#fff8e6"],
[data-theme="dark"] [style*="background:#fffbf4"],
[data-theme="dark"] [style*="background:#fffbeb"],
[data-theme="dark"] [style*="background:#fff4d6"] {
    background: rgba(245, 192, 73, 0.14) !important;
    color: var(--warning-border-strong) !important;
}
[data-theme="dark"] [style*="color:#92400e"],
[data-theme="dark"] [style*="color:#8a6d3b"],
[data-theme="dark"] [style*="color:#8B5A00"],
[data-theme="dark"] [style*="color:#9C6A1B"],
[data-theme="dark"] [style*="color:#7A5A00"],
[data-theme="dark"] [style*="color:#5A3A00"],
[data-theme="dark"] [style*="color:#D69E2E"] {
    color: var(--warning-border-strong) !important;
}
[data-theme="dark"] [style*="background:#fdeaea"],
[data-theme="dark"] [style*="background:#FDEAEA"],
[data-theme="dark"] [style*="background:#fee"],
[data-theme="dark"] [style*="background:#ffecec"],
[data-theme="dark"] [style*="background:#fef2f2"],
[data-theme="dark"] [style*="background:#fff4f4"],
[data-theme="dark"] [style*="background:#fff8f8"],
[data-theme="dark"] [style*="background:#fbe9e7"] {
    background: rgba(240, 100, 100, 0.14) !important;
    color: #FCA5A5 !important;
}
[data-theme="dark"] [style*="color:#dc2626"],
[data-theme="dark"] [style*="color:#b23c3c"],
[data-theme="dark"] [style*="color:#c62828"],
[data-theme="dark"] [style*="color:#C62828"] {
    color: #FCA5A5 !important;
}

/* Generische Fallback-Overrides fuer helle Hintergrund-Werte die
   nicht von obigen Pastell-Rules erwischt wurden. Vermeidet sehr
   helle Flaechen im Dark-Mode. */
[data-theme="dark"] [style*="background:#fff4f4"],
[data-theme="dark"] [style*="background:#fff8ee"],
[data-theme="dark"] [style*="background:#f5f7fa"] {
    background: var(--bg-surface-2) !important;
}

/* Block 20 Dark-Mode-Fix: Sehr haeufiger warm-gray BG #F8F7F4 und
   var(--bg-base) in Handwerker-Templates + Sektionen-Editor (kalkulation,
   leistungen, angebot_detail, auftrag_detail, baudoku_liste, etc.).
   Im Dark Mode → surface-2. Auch die Border-Variante #EAE8E4. */
[data-theme="dark"] [style*="background:#F8F7F4"],
[data-theme="dark"] [style*="background:#f8f7f4"],
[data-theme="dark"] [style*="background: #F8F7F4"],
[data-theme="dark"] [style*="background: #f8f7f4"],
[data-theme="dark"] [style*="background:var(--bg-base)"],
[data-theme="dark"] [style*="background:#f0ede8"],
[data-theme="dark"] [style*="background: var(--bg-base)"] {
    background: var(--bg-surface-2) !important;
    color: var(--text-primary) !important;
}
[data-theme="dark"] [style*="border-top:1px solid #EAE8E4"],
[data-theme="dark"] [style*="border-bottom:1px solid #EAE8E4"],
[data-theme="dark"] [style*="border: 1px solid #EAE8E4"],
[data-theme="dark"] [style*="border-top: 1px solid #EAE8E4"],
[data-theme="dark"] [style*="border-bottom: 1px solid #EAE8E4"] {
    border-color: var(--border) !important;
}

/* Block 20 Dark-Mode-Fix: Die Open-Session-Reihe in der Zeiterfassung
   hat inline background:#d1fae5 (hellgruen) fuer aktive Einstempelungen.
   Im Dark Mode muessen die Child-TDs mit dunklem Text lesbar bleiben. */
[data-theme="dark"] tr[style*="background:#d1fae5"] td,
[data-theme="dark"] tr[style*="background: #d1fae5"] td {
    color: var(--text-primary) !important;
}

/* Block 20 Dark-Mode-Fix: Auftrags-Detail "Beschreibung" + "Notizen"
   + andere info-boxen mit #F8F7F4 → siehe Regel oben. Zusaetzlich
   die badge-styles die helle BG + dunkler Text nutzen (z.B.
   "In Bearbeitung" mit #FFF3E0 + #E65100). */
[data-theme="dark"] [style*="background:#FFF3E0"],
[data-theme="dark"] [style*="background:#fff3e0"],
[data-theme="dark"] [style*="background:#FFF4E0"],
[data-theme="dark"] [style*="background:#fff4e0"] {
    background: rgba(230, 81, 0, 0.18) !important;
    color: #FFB74D !important;
}
[data-theme="dark"] [style*="color:#E65100"],
[data-theme="dark"] [style*="color:#e65100"],
[data-theme="dark"] [style*="color:#C47A1E"],
[data-theme="dark"] [style*="color:#c47a1e"] {
    color: #FFB74D !important;
}

/* Block 20 Dark-Mode-Fix: FFF8E1 (Amber Notiz-Box) + #E6A817 (Border) */
[data-theme="dark"] [style*="background:#FFF8E1"],
[data-theme="dark"] [style*="background:#fff8e1"] {
    background: rgba(245, 192, 73, 0.14) !important;
    color: var(--warning-border-strong) !important;
}

/* Input-Backgrounds fallback fuer Stellen die hardcoded white nutzen */
[data-theme="dark"] input[type="text"],
[data-theme="dark"] input[type="email"],
[data-theme="dark"] input[type="password"],
[data-theme="dark"] input[type="number"],
[data-theme="dark"] input[type="date"],
[data-theme="dark"] input[type="search"],
[data-theme="dark"] input[type="tel"],
[data-theme="dark"] input[type="url"],
[data-theme="dark"] select,
[data-theme="dark"] textarea {
    background: var(--bg-input);
    color: var(--text-primary);
    border-color: var(--border);
}

/* Card-Header im Dark Mode: Hintergrund muss etwas heller als Card sein */
[data-theme="dark"] .card-header {
    background: color-mix(in srgb, var(--bg-surface) 85%, var(--bg-elevated));
}

* { box-sizing: border-box; margin: 0; padding: 0; }

body {
    font-family: var(--font-body);
    background: var(--bg-base);
    color: var(--text-primary);
    font-size: 14px;
    line-height: 1.5;
}

a { color: var(--text-link); text-decoration: none; }
a:hover { color: var(--text-link-hover); text-decoration: underline; }

/* --- Layout --- */
.layout { display: flex; min-height: 100vh; }

.sidebar {
    width: var(--sidebar-width);
    background: var(--bg-sidebar);
    color: var(--text-sidebar);
    position: fixed;
    top: 0; left: 0; bottom: 0;
    overflow-y: auto;
    z-index: 100;
    display: flex;
    flex-direction: column;
    border-right: 1px solid var(--bg-sidebar-border);
}

.sidebar-header {
    /* Sidebar-Cleanup Marco 2026-05-22: kompakter — war 20px var(--space-md) */
    padding: 12px var(--space-md);
    border-bottom: 1px solid var(--bg-sidebar-hover);
}

.sidebar-header .tenant-name {
    font-size: var(--space-md);
    font-weight: 600;
    color: var(--text-sidebar);
    display: block;
    margin-bottom: var(--space-xs);
}

.sidebar-header .tenant-plan {
    font-size: 11px;
    color: var(--text-sidebar-dim);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Handwerker-Beruf-Label (nur vertical=handwerker): kleine Zeile zwischen
   tenant-name und tenant-plan. Zeigt den Beruf laut HwO, bei Sonstiges den
   freien Text "Trockenbauer (Sonstiges)". Fuer Owner klickbar → fuehrt
   zur Bearbeitungs-Seite /admin/einstellungen/handwerker-beruf. */
.sidebar-header .tenant-beruf {
    display: block;
    font-size: 12px;
    color: var(--text-sidebar-dim);
    margin-bottom: var(--space-xs);
    font-style: italic;
    opacity: 0.85;
    text-decoration: none;
}

/* Wenn <a>: Hover-Effekt + kleiner Edit-Hint */
a.tenant-beruf:hover {
    opacity: 1;
    color: var(--text-sidebar);
    text-decoration: underline;
    cursor: pointer;
}

/* Empty-State: Wenn noch kein Beruf gewaehlt, orange hervorheben */
.sidebar-header .tenant-beruf-empty {
    color: var(--warning);
    font-style: normal;
    opacity: 1;
}
.sidebar-header .tenant-beruf-empty:hover {
    color: #FFB848;
}

.sidebar-nav { flex: 1; padding: 10px 10px; overflow-y: auto; }

.sidebar-nav a, .sidebar-nav .nav-section {
    display: flex;
    align-items: center;
    padding: 10px 14px;
    margin: 1px 0;
    color: var(--text-sidebar-dim);
    font-size: 13px;
    border-radius: 6px;
    transition: background-color 0.15s, color 0.15s, border-color 0.15s;
    border-left: 3px solid transparent;
    text-decoration: none;
}

.sidebar-nav a:hover {
    background: var(--bg-sidebar-hover);
    color: var(--text-sidebar);
    text-decoration: none;
}

.sidebar-nav a.active {
    background: var(--bg-sidebar-active);
    color: var(--text-sidebar-active);
    border-left-color: var(--primary);
    font-weight: 600;
}

/* Plan-Lock: Einträge die ueber dem aktuellen Plan liegen */
.sidebar-nav a.nav-locked {
    opacity: 0.62;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-sm);
}
.sidebar-nav a.nav-locked:hover {
    opacity: 1;
    background: var(--bg-sidebar-hover);
}
.sidebar-nav .nav-lock-badge {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 9px;
    font-weight: 700;
    padding: 2px 6px;
    border-radius: 9px;
    background: color-mix(in srgb, var(--primary) 22%, transparent);
    color: var(--text-sidebar-active);
    letter-spacing: 0.5px;
    text-transform: uppercase;
    white-space: nowrap;
    flex-shrink: 0;
}

.sidebar-nav .nav-divider {
    height: 1px;
    background: var(--bg-sidebar-hover);
    margin: 8px var(--space-md);
}

/* Plan-Lock-Banner auf der Abo-Seite bei ?locked=xyz */
.plan-lock-banner {
    background: var(--warning-bg);
    border: 1px solid color-mix(in srgb, var(--warning) 35%, transparent);
    border-left: 4px solid var(--warning);
    border-radius: 10px;
    padding: 16px 20px;
    margin-bottom: 20px;
    display: flex;
    gap: 14px;
    align-items: flex-start;
}
.plan-lock-banner .icon {
    font-size: 22px;
    line-height: 1;
    flex-shrink: 0;
}
.plan-lock-banner .text {
    flex: 1;
    font-size: 14px;
    color: var(--text-primary);
    line-height: 1.55;
}
.plan-lock-banner .text strong {
    color: var(--text-primary);
}

/* ═════════════════════════════════════════════════════════════════ */
/* Collapsible Sidebar-Groups                                         */
/*   Gruppen-Header als Button (fat, mit Hintergrund, Border-Radius)  */
/*   Hover + has-active zeigen klaren visuellen Unterschied           */
/* ═════════════════════════════════════════════════════════════════ */
.sidebar-nav details.nav-group {
    margin: 6px 0 0 0;
    padding: 0;
    border: none;
}

.sidebar-nav details.nav-group > summary.nav-section {
    /* Override .sidebar-nav a, .sidebar-nav .nav-section Basis-Regel */
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 11px 14px;
    margin: 0 0 2px 0;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.3px;
    /* Button-Look: heller Hintergrund auf der dunklen Sidebar */
    background: var(--bg-sidebar-header);
    color: var(--text-sidebar-section);
    border-radius: 7px;
    border-left: 3px solid transparent;
    cursor: pointer;
    user-select: none;
    list-style: none;
    outline: none;
    transition: background-color 0.15s, color 0.15s, border-color 0.15s, transform 0.1s;
}

/* Default-Triangle von <details>/<summary> ausblenden */
.sidebar-nav details.nav-group > summary.nav-section::-webkit-details-marker {
    display: none;
}
.sidebar-nav details.nav-group > summary.nav-section::marker {
    display: none;
    content: '';
}

/* Hover: stärker hervorgehoben */
.sidebar-nav details.nav-group > summary.nav-section:hover {
    background: color-mix(in srgb, var(--primary) 16%, var(--bg-sidebar-header));
    color: var(--text-sidebar);
}

/* Aktiv-Gruppe: Primary-Color als Hintergrund, weiß/Primary-light als Text */
.sidebar-nav details.nav-group > summary.nav-section.has-active {
    background: color-mix(in srgb, var(--primary) 22%, var(--bg-sidebar-header));
    color: var(--text-sidebar-active);
    border-left-color: var(--primary);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--primary) 30%, transparent);
}

/* Fokus-Ring (Tastatur-Navigation) */
.sidebar-nav details.nav-group > summary.nav-section:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
}

/* Active beim Klick: kurzer Press-Effekt */
.sidebar-nav details.nav-group > summary.nav-section:active {
    transform: scale(0.98);
}

/* Chevron */
.sidebar-nav details.nav-group > summary.nav-section .nav-chevron {
    font-size: 11px;
    font-weight: 900;
    opacity: 0.7;
    transition: transform 0.22s ease-out, opacity 0.15s;
    display: inline-block;
    width: 12px;
    text-align: center;
}
.sidebar-nav details.nav-group:not([open]) > summary.nav-section .nav-chevron {
    transform: rotate(-90deg);
}
.sidebar-nav details.nav-group > summary.nav-section:hover .nav-chevron,
.sidebar-nav details.nav-group > summary.nav-section.has-active .nav-chevron {
    opacity: 1;
}

/* Unter-Links bekommen leichten Einzug — optische Gruppierung */
.sidebar-nav details.nav-group > a {
    padding-left: 18px;
}

/* Erste Gruppe direkt am Anfang mit weniger margin-top */
.sidebar-nav > details.nav-group:first-of-type {
    margin-top: 0;
}

/* Geschlossene Gruppe: Platz unten fuer visuelle Trennung */
.sidebar-nav details.nav-group:not([open]) {
    padding-bottom: 2px;
}

/* Legacy: .nav-section ausserhalb von <details> (falls noch genutzt) */
.sidebar-nav > .nav-section:not(summary) {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    color: var(--text-sidebar-section);
    padding: 16px 16px 6px var(--space-md);
    cursor: default;
    border-left: none;
    pointer-events: none;
    user-select: none;
}

/* ═════════════════════════════════════════════════════════════════ */
/* HANDWERKER-SIDEBAR (sb-* Klassen)                                  */
/*   Eigenes System mit Dashboard-Button, nicht-klickbaren Kategorie- */
/*   Labels, Items mit Icons, Collapsible Groups mit Sub-Items,       */
/*   Gewerke-Pool-Highlight + Help-Highlight.                         */
/*   Alles nutzt CSS-Variablen → Light/Dark-Theme automatisch.        */
/* ═════════════════════════════════════════════════════════════════ */

/* Dashboard-Button (prominent, ganz oben) */
.sidebar-nav .sb-dashboard {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    margin: 0 0 12px 0;
    background: color-mix(in srgb, var(--primary) 20%, transparent);
    color: var(--text-sidebar-active);
    border-radius: var(--space-sm);
    border-left: 3px solid var(--primary);
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: background-color 0.15s, color 0.15s, transform 0.1s;
}
.sidebar-nav .sb-dashboard:hover {
    background: color-mix(in srgb, var(--primary) 30%, transparent);
    color: var(--text-sidebar-active);
    text-decoration: none;
}
.sidebar-nav .sb-dashboard.active {
    background: var(--primary);
    color: var(--text-on-accent);
    border-left-color: var(--primary-dark);
}

/* Kategorie-Header (uppercase Label, nicht klickbar)
   Akzent-Design: farbiger Mini-Strich vor dem Label + dezenter Primary-Hue
   statt puren Weiß — hebt die Kategorie optisch ab ohne aufdringlich zu sein. */
.sidebar-nav .sb-category-header {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.6px;
    color: color-mix(in srgb, var(--primary) 55%, var(--text-sidebar-section));
    /* Sidebar-Cleanup (Marco 2026-05-22): kompakter — war 16px 14px 8px 14px */
    padding: 10px 14px 5px 14px;
    margin-top: 2px;
    cursor: default;
    user-select: none;
    pointer-events: none;
    border-top: 1px solid color-mix(in srgb, var(--primary) 18%, transparent);
    display: flex;
    align-items: center;
    gap: var(--space-sm);
}
.sidebar-nav .sb-category-header::before {
    content: "";
    display: inline-block;
    width: 3px;
    height: 11px;
    background: var(--primary);
    border-radius: 2px;
    opacity: 0.7;
    flex-shrink: 0;
}
[data-theme="dark"] .sidebar-nav .sb-category-header {
    color: color-mix(in srgb, var(--primary) 65%, var(--text-sidebar-section));
    border-top-color: color-mix(in srgb, var(--primary) 22%, transparent);
}
[data-theme="dark"] .sidebar-nav .sb-category-header::before {
    opacity: 0.85;
}
/* Erster Kategorie-Header direkt unter Dashboard: kein Border-Top */
.sidebar-nav .sb-dashboard + .sb-category-header {
    border-top: none;
    padding-top: var(--space-xs);
}

/* Standard-Item (Link mit Icon + Label) */
.sidebar-nav .sb-item {
    display: flex;
    align-items: center;
    gap: 10px;
    /* Sidebar-Cleanup (Marco 2026-05-22): kompakter — war 9px 14px */
    padding: 6px 14px;
    margin: 0;
    color: var(--text-sidebar-dim);
    font-size: 13px;
    font-weight: 500;
    border-radius: 6px;
    border-left: 3px solid transparent;
    text-decoration: none;
    transition: background-color 0.15s, color 0.15s, border-color 0.15s;
}
.sidebar-nav .sb-item:hover {
    background: var(--bg-sidebar-hover);
    color: var(--text-sidebar);
    text-decoration: none;
}
.sidebar-nav .sb-item.active {
    background: var(--bg-sidebar-active);
    color: var(--text-sidebar-active);
    border-left-color: var(--primary);
    font-weight: 600;
}

/* Icon (inline SVG, Lucide-Style) */
.sidebar-nav .sb-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 20px;
    height: 20px;
}
.sidebar-nav .sb-icon svg {
    width: 18px;
    height: 18px;
    stroke-width: 2;
}
.sidebar-nav .sb-label {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ════════════════════════════════════════════════════════════════════
   Sidebar-Badges (Zahlen-Counter neben Menüpunkten)
   ────────────────────────────────────────────────────────────────────
   HARTE SPEZIFITÄT: Der Badge-Style muss IMMER gewinnen — auch wenn das
   umschließende sb-item active/hover/sub ist. Sonst verschwindet der
   farbige Hintergrund sobald der User auf den Menüpunkt klickt und die
   .active-Regel den color/background überschreibt.
   ════════════════════════════════════════════════════════════════════ */
.sidebar-nav .sb-badge,
.sidebar-nav .sb-item.active .sb-badge,
.sidebar-nav .sb-sub.active .sb-badge,
.sidebar-nav .sb-item:hover .sb-badge,
.sidebar-nav .sb-sub:hover .sb-badge,
.sidebar-nav .sb-group-summary .sb-badge,
.sidebar-nav .sb-group-summary.active .sb-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 20px;
    padding: 0 7px;
    border-radius: 10px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    flex-shrink: 0;
    background: #FFD76A;               /* Gold-Akzent (default) */
    color: var(--text-primary);
    box-shadow: 0 1px 2px rgba(0,0,0,0.15);
    transition: background 0.15s, transform 0.1s, color 0s;
    text-decoration: none;
    font-family: inherit;
}
/* Danger (rot): Fahrzeug-Warnung + Lager-Unterbestand */
.sidebar-nav .sb-badge.sb-badge-danger,
.sidebar-nav .sb-item.active .sb-badge.sb-badge-danger,
.sidebar-nav .sb-sub.active .sb-badge.sb-badge-danger,
.sidebar-nav .sb-item:hover .sb-badge.sb-badge-danger {
    background: #E5484D;
    color: var(--text-on-accent);
}
/* Success (grün): Neue Transport-Angebote */
.sidebar-nav .sb-badge.sb-badge-success,
.sidebar-nav .sb-item.active .sb-badge.sb-badge-success,
.sidebar-nav .sb-sub.active .sb-badge.sb-badge-success,
.sidebar-nav .sb-group-summary .sb-badge.sb-badge-success {
    background: #3BAB6A;
    color: var(--text-on-accent);
}
/* Info (blau): optionale Variante */
.sidebar-nav .sb-badge.sb-badge-info,
.sidebar-nav .sb-item.active .sb-badge.sb-badge-info,
.sidebar-nav .sb-sub.active .sb-badge.sb-badge-info {
    background: #5B8BA6;
    color: var(--text-on-accent);
}
/* Hover-Animation */
.sidebar-nav .sb-item:hover .sb-badge,
.sidebar-nav .sb-sub:hover .sb-badge {
    transform: scale(1.08);
}
/* Dark-Theme: Badges dezenter */
html[data-theme="dark"] .sidebar-nav .sb-badge,
html[data-theme="dark"] .sidebar-nav .sb-item.active .sb-badge,
html[data-theme="dark"] .sidebar-nav .sb-sub.active .sb-badge {
    background: var(--warning);
    color: #0F1220;
}
html[data-theme="dark"] .sidebar-nav .sb-badge.sb-badge-danger,
html[data-theme="dark"] .sidebar-nav .sb-item.active .sb-badge.sb-badge-danger,
html[data-theme="dark"] .sidebar-nav .sb-sub.active .sb-badge.sb-badge-danger {
    background: #E5484D;
    color: var(--text-on-accent);
}
html[data-theme="dark"] .sidebar-nav .sb-badge.sb-badge-success,
html[data-theme="dark"] .sidebar-nav .sb-sub.active .sb-badge.sb-badge-success {
    background: #3BAB6A;
    color: var(--text-on-accent);
}

/* Mini-Fragezeichen in Sidebar-Gruppen-Headers (z.B. bei "Tagesgeschäft")
   Oeffnet das hw-help-Popup mit Erklaerung zu den Badge-Zahlen.
   Steht direkt neben dem sb-label, vor dem sb-chevron. */
.sidebar-nav .sb-help-mini {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: color-mix(in srgb, var(--primary) 22%, transparent);
    color: var(--primary);
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
    margin-left: 6px;
    flex-shrink: 0;
    transition: all 0.15s;
    user-select: none;
    line-height: 1;
}
.sidebar-nav .sb-help-mini:hover {
    background: var(--primary);
    color: var(--text-on-accent);
    transform: scale(1.15);
}

/* Collapsible Group */
.sidebar-nav .sb-group {
    margin: 1px 0;
    padding: 0;
    border: none;
}
.sidebar-nav .sb-group > .sb-group-summary {
    cursor: pointer;
    user-select: none;
    list-style: none;
    outline: none;
    display: flex;
    align-items: center;
    gap: 10px;
}
.sidebar-nav .sb-group > .sb-group-summary::-webkit-details-marker {
    display: none;
}
.sidebar-nav .sb-group > .sb-group-summary::marker {
    display: none;
    content: '';
}
/* Chevron dreht sich beim Öffnen/Schließen */
.sidebar-nav .sb-chevron {
    font-size: 11px;
    font-weight: 900;
    opacity: 0.7;
    transition: transform 0.22s ease-out, opacity 0.15s;
    display: inline-block;
    width: 12px;
    text-align: center;
    margin-left: auto;
    flex-shrink: 0;
}
.sidebar-nav .sb-group:not([open]) > .sb-group-summary .sb-chevron {
    transform: rotate(-90deg);
}
.sidebar-nav .sb-group > .sb-group-summary:hover .sb-chevron {
    opacity: 1;
}

/* Group-Children: eingerückter Container für Sub-Items */
.sidebar-nav .sb-group-children {
    padding: 2px 0 4px 0;
    margin-left: 12px;
    border-left: 1px solid color-mix(in srgb, var(--bg-sidebar-hover) 80%, transparent);
}

/* Sub-Item (unter Collapsible Group) */
.sidebar-nav .sb-sub {
    padding-left: 20px;
    font-size: 12.5px;
    color: var(--text-sidebar-dim);
}
.sidebar-nav .sb-sub.active {
    background: var(--bg-sidebar-active);
    color: var(--text-sidebar-active);
    border-left-color: var(--primary);
    font-weight: 600;
}

/* Gewerke-Pool-Highlight (eigene Farbe, auffällig aber nicht aufdringlich).
   Nutzt --warning (Light: dunkel-orange, Dark: hell-orange) → theme-aware. */
.sidebar-nav .sb-gewerke-pool {
    background: color-mix(in srgb, var(--warning) 18%, transparent);
    color: var(--warning);
    border-left: 3px solid var(--warning);
    font-weight: 600;
    margin-top: 6px;
    margin-bottom: 2px;
}
.sidebar-nav .sb-gewerke-pool:hover {
    background: color-mix(in srgb, var(--warning) 28%, transparent);
    color: var(--warning);
}
.sidebar-nav .sb-gewerke-pool.active {
    background: color-mix(in srgb, var(--warning) 38%, transparent);
    color: var(--warning);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--warning) 50%, transparent);
    border-left-color: var(--warning);
    font-weight: 700;
}

/* Hilfestellung-Link (blau hervorgehoben) */
.sidebar-nav .sb-help {
    background: color-mix(in srgb, var(--primary) 12%, transparent);
    color: var(--text-sidebar-active);
    border-left: 3px solid color-mix(in srgb, var(--primary) 55%, transparent);
    font-weight: 600;
    /* Sidebar-Cleanup Marco 2026-05-22: kompakter — war 6px + space-xs */
    margin-top: 2px;
    margin-bottom: 0;
}
.sidebar-nav .sb-help:hover {
    background: color-mix(in srgb, var(--primary) 22%, transparent);
    color: var(--text-sidebar-active);
}
.sidebar-nav .sb-help.active {
    background: var(--primary);
    color: var(--text-on-accent);
    border-left-color: var(--primary-dark);
}

/* Locked Item (Plan-Limit) */
.sidebar-nav .sb-locked {
    opacity: 0.62;
}
.sidebar-nav .sb-locked:hover {
    opacity: 1;
}
.sidebar-nav .sb-lock-badge {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 9px;
    font-weight: 700;
    padding: 2px 6px;
    border-radius: 9px;
    background: color-mix(in srgb, var(--primary) 22%, transparent);
    color: var(--text-sidebar-active);
    letter-spacing: 0.5px;
    text-transform: uppercase;
    white-space: nowrap;
    flex-shrink: 0;
    margin-left: auto;
}

/* KI-Badge (neben KI-Assistenten-Label) */
.sidebar-nav .ki-badge {
    display: inline-flex;
    align-items: center;
    font-size: 9px;
    font-weight: 700;
    padding: 2px 6px;
    border-radius: 9px;
    background: color-mix(in srgb, #7B68EE 22%, transparent);
    color: #B8A9F7;
    letter-spacing: 0.5px;
    margin-left: var(--space-xs);
    flex-shrink: 0;
}

.sidebar-footer {
    padding: 12px var(--space-md);
    border-top: 1px solid var(--bg-sidebar-hover);
    font-size: 12px;
}

.sidebar-footer .user-info {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-sm);
}

.sidebar-footer .user-name {
    color: var(--text-sidebar);
    font-weight: 500;
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.sidebar-footer .logout-link {
    color: var(--text-sidebar-dim);
    font-size: 12px;
    white-space: nowrap;
}
.sidebar-footer .logout-link:hover {
    color: var(--text-sidebar);
}

/* Theme-Toggle Button (Light ↔ Dark) */
.sidebar-footer .theme-toggle-row {
    display: flex;
    gap: 6px;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--bg-sidebar-hover);
}
.sidebar-footer .theme-toggle-btn {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 7px var(--space-sm);
    border: 1px solid var(--bg-sidebar-hover);
    border-radius: 6px;
    background: transparent;
    color: var(--text-sidebar-dim);
    font-size: 11px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.15s, color 0.15s, border-color 0.15s;
    font-family: inherit;
}
.sidebar-footer .theme-toggle-btn:hover {
    background: var(--bg-sidebar-hover);
    color: var(--text-sidebar);
}
.sidebar-footer .theme-toggle-btn.is-active {
    background: color-mix(in srgb, var(--primary) 20%, var(--bg-sidebar-hover));
    color: var(--text-sidebar-active);
    border-color: color-mix(in srgb, var(--primary) 50%, transparent);
}
.sidebar-footer .theme-toggle-btn .theme-icon {
    font-size: 13px;
    line-height: 1;
}

.main-content {
    margin-left: var(--sidebar-width);
    flex: 1;
    min-height: 100vh;
    background: var(--bg-base);
    color: var(--text-primary);
}

/* --- Header --- */
.page-header {
    background: var(--bg-surface);
    color: var(--text-primary);
    padding: 16px var(--space-lg);
    border-bottom: 1px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.page-header h1 { font-size: 20px; font-weight: 600; color: var(--text-primary); }

.page-header .header-actions { display: flex; gap: var(--space-sm); }

/* --- Content --- */
.content { padding: var(--space-lg); }

/* --- Cards --- */
.card {
    background: var(--bg-surface);
    color: var(--text-primary);
    border-radius: 10px;
    box-shadow: var(--shadow-card);
    padding: var(--space-lg);
    margin-bottom: 20px;
    border: 1px solid var(--border-subtle);
    transition: box-shadow 0.2s, background-color 0.2s, border-color 0.2s;
}

.card:hover {
    box-shadow: var(--shadow-md);
}

.card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: -24px -24px 20px;
    padding: 16px var(--space-lg);
    border-bottom: 1px solid var(--border-subtle);
    border-radius: 10px 10px 0 0;
    background: var(--bg-surface-2);
    color: var(--text-primary);
}

.card-header h2 {
    font-size: 15px;
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    color: var(--text-primary);
}

.card-header h2 svg {
    flex-shrink: 0;
}

/* Beschreibungstext unter Card-Header */
.card > p:first-of-type {
    color: var(--text-muted);
    font-size: 0.84rem;
    line-height: 1.5;
    margin-bottom: var(--space-md);
}

/* ========================================
   OFFER-EDIT-CARDS (Angebots-Karten Editor)
   ======================================== */
.offer-edit-card {
    border: 1px solid var(--border-subtle);
    border-radius: 10px;
    margin-bottom: var(--space-md);
    overflow: hidden;
    background: var(--bg-surface);
    color: var(--text-primary);
    transition: box-shadow 0.2s, background-color 0.2s, border-color 0.2s;
}

.offer-edit-card:hover {
    box-shadow: var(--shadow-md);
}

.offer-edit-header {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 18px;
    background: var(--bg-surface-2);
    border-bottom: 1px solid var(--border-subtle);
}

.offer-edit-number {
    width: var(--space-xl);
    height: var(--space-xl);
    border-radius: var(--space-sm);
    color: var(--text-on-accent);
    font-weight: 700;
    font-size: 0.9rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.offer-edit-title-row {
    display: flex;
    gap: 10px;
    flex: 1;
    align-items: center;
}

.offer-edit-body {
    padding: 16px 18px;
}

/* Primär-Buttons aufpolieren */
.btn-primary {
    background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%) !important;
    border: none !important;
    box-shadow: 0 2px 6px rgba(91,139,166,0.25);
    transition: box-shadow 0.2s, transform 0.2s !important;
}

.btn-primary:hover {
    box-shadow: 0 4px 12px rgba(91,139,166,0.35);
    transform: translateY(-1px);
}

/* Form-Labels etwas mehr Gewicht */
.form-group label {
    font-weight: 500;
    font-size: 0.82rem;
    color: var(--text-secondary);
    margin-bottom: var(--space-xs);
    display: block;
}

/* --- KPI Grid --- */
.kpi-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--space-md); margin-bottom: var(--space-lg); }

.kpi-card {
    background: var(--bg-surface);
    color: var(--text-primary);
    border-radius: 10px;
    box-shadow: var(--shadow-card);
    padding: 20px;
    text-align: center;
    border: 1px solid var(--border-subtle);
    transition: box-shadow 0.18s ease, transform 0.18s ease, background-color 0.2s, border-color 0.2s;
}
.kpi-card:hover {
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.06);
    transform: translateY(-1px);
}

.kpi-card .kpi-value { font-size: 28px; font-weight: 700; color: var(--text-primary); }
.kpi-card .kpi-label { font-size: 12px; color: var(--text-muted); margin-top: var(--space-xs); text-transform: uppercase; letter-spacing: 0.5px; }
.kpi-card .kpi-sublabel { font-size: 11px; color: var(--text-muted); opacity: 0.75; text-transform: none; letter-spacing: 0; }

/* UX3 (2026-04-27): Mikro-Animations Polish
   Subtle Fade-Up beim Page-Load — gibt KPIs einen weichen Auftritt.
   prefers-reduced-motion respektiert (Accessibility). */
@media (prefers-reduced-motion: no-preference) {
    .kpi-card {
        animation: blFadeUp 0.4s ease-out backwards;
    }
    .kpi-grid > .kpi-card:nth-child(1) { animation-delay: 0.00s; }
    .kpi-grid > .kpi-card:nth-child(2) { animation-delay: 0.05s; }
    .kpi-grid > .kpi-card:nth-child(3) { animation-delay: 0.10s; }
    .kpi-grid > .kpi-card:nth-child(4) { animation-delay: 0.15s; }
    .kpi-grid > .kpi-card:nth-child(5) { animation-delay: 0.20s; }
    .kpi-grid > .kpi-card:nth-child(6) { animation-delay: 0.25s; }
    .kpi-grid > .kpi-card:nth-child(7) { animation-delay: 0.30s; }
    .kpi-grid > .kpi-card:nth-child(8) { animation-delay: 0.35s; }
}
@keyframes blFadeUp {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Skeleton-Loader-Pattern fuer Submit-Buttons (UX3) */
.btn.is-loading {
    pointer-events: none;
    position: relative;
    color: transparent !important;
}
.btn.is-loading::after {
    content: '';
    position: absolute;
    top: 50%; left: 50%;
    width: var(--space-md); height: var(--space-md);
    margin: -8px 0 0 -8px;
    border: 2px solid currentColor;
    border-top-color: transparent;
    border-radius: 50%;
    animation: blSpin 0.7s linear infinite;
    color: var(--text-inverted);
}
.btn-secondary.is-loading::after, .btn-ghost.is-loading::after { color: var(--text-primary); }
@keyframes blSpin { to { transform: rotate(360deg); } }

/* --- Tables --- */
.table-wrap { overflow-x: auto; }

table { width: 100%; border-collapse: collapse; color: var(--text-primary); }

th { text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: 0.5px; color: var(--text-muted); padding: 10px 12px; border-bottom: 2px solid var(--border); background: var(--bg-surface-2); }

td { padding: 12px; border-bottom: 1px solid var(--border-subtle); font-size: 13px; color: var(--text-primary); }

tr:hover td { background: var(--bg-hover); }

/* --- Buttons --- */
.btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px var(--space-md);
    border-radius: 7px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    border: 1px solid transparent;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease, transform 0.1s ease;
    text-decoration: none;
    line-height: 1.3;
}
.btn:active { transform: translateY(1px); }

.btn-primary { background: var(--primary); color: var(--text-on-accent); border-color: var(--primary); }
.btn-primary:hover { background: var(--primary-dark); border-color: var(--primary-dark); text-decoration: none; color: var(--text-on-accent); }

.btn-secondary { background: var(--bg-surface); color: var(--text-secondary); border: 1px solid var(--border); }
.btn-secondary:hover { background: var(--bg-surface-2); border-color: var(--primary); text-decoration: none; color: var(--primary); }

.btn-danger { background: var(--danger); color: var(--text-on-accent); border-color: var(--danger); }
.btn-danger:hover { background: color-mix(in srgb, var(--danger) 85%, #000); border-color: color-mix(in srgb, var(--danger) 85%, #000); text-decoration: none; color: var(--text-on-accent); }

.btn-success { background: var(--success); color: var(--text-on-accent); border-color: var(--success); }
.btn-success:hover { background: color-mix(in srgb, var(--success) 85%, var(--text-primary)); border-color: color-mix(in srgb, var(--success) 85%, var(--text-primary)); text-decoration: none; color: var(--text-on-accent); }

.btn-sm, .btn-s { padding: 5px 11px; font-size: 12px; border-radius: 6px; }
.btn-lg { padding: 11px 22px; font-size: 14px; border-radius: var(--space-sm); }

/* --- Forms --- */
.form-group { margin-bottom: var(--space-md); }
.form-group label { display: block; font-size: 13px; font-weight: 500; margin-bottom: var(--space-xs); color: var(--text-primary); }

.form-control {
    width: 100%;
    padding: 9px 12px;
    border: 1px solid var(--border);
    border-radius: 7px;
    font-size: 14px;
    font-family: var(--font-body);
    background: var(--bg-input);
    color: var(--text-primary);
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.2s ease, color 0.2s ease;
}

.form-control::placeholder { color: var(--text-muted); opacity: 0.7; }

.form-control:hover:not(:focus):not(:disabled) { border-color: color-mix(in srgb, var(--border) 50%, var(--text-muted)); }
.form-control:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 18%, transparent); }
.form-control:disabled { opacity: 0.6; cursor: not-allowed; }

select.form-control { appearance: auto; }
textarea.form-control { resize: vertical; min-height: 80px; }

.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-md); }
@media (max-width: 640px) {
    .form-row { grid-template-columns: 1fr; gap: 12px; }
}

/* ═══ Premium Form-Kit (Sprint 3, 2026-04-21) ═══════════════════════
   Zusätzliche Klassen für konsistent schöne Formulare.
   Additiv zu den bestehenden .form-group / .form-control Styles. */

/* Form-Section-Header (Mini-Uppercase-Überschrift innerhalb eines Formulars) */
.form-section-title {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    color: var(--text-muted);
    margin: 0 0 14px;
    padding-bottom: var(--space-sm);
    border-bottom: 1px solid var(--border-subtle);
    display: flex;
    align-items: center;
    gap: var(--space-sm);
}
.form-section-title svg { flex-shrink: 0; opacity: 0.7; }

/* Responsive 2-Spalten-Grid für Formulare */
.form-grid-2col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-lg);
}
@media (max-width: 768px) {
    .form-grid-2col { grid-template-columns: 1fr; gap: var(--space-md); }
}

/* Pflichtfeld-Stern (rot, konsistent) */
.form-required {
    color: var(--danger);
    font-weight: 700;
    margin-left: 2px;
}

/* Hint/Helper-Text unter einem Input */
.form-hint {
    display: block;
    margin-top: var(--space-xs);
    font-size: 12px;
    color: var(--text-muted);
    line-height: 1.4;
}
.form-hint.form-hint-warning { color: var(--warning); }
.form-hint.form-hint-danger { color: var(--danger); }

/* Form-Action-Bar (unten, flex-end, mit Trennlinie) */
.form-actions {
    margin-top: var(--space-lg);
    padding-top: var(--space-md);
    border-top: 1px solid var(--border-subtle);
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    flex-wrap: wrap;
}
.form-actions.form-actions-between { justify-content: space-between; }
@media (max-width: 640px) {
    .form-actions { flex-direction: column-reverse; }
    .form-actions .btn { width: 100%; text-align: center; justify-content: center; }
}

/* Info-Box innerhalb eines Formulars (z.B. für "Foto verknüpft") */
.form-info-box {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    padding: 10px 14px;
    background: color-mix(in srgb, var(--success) 10%, transparent);
    border-left: 3px solid var(--success);
    border-radius: 6px;
    font-size: 13px;
    color: var(--text-primary);
}
.form-info-box.form-info-info {
    background: color-mix(in srgb, var(--info) 10%, transparent);
    border-left-color: var(--info);
}
.form-info-box.form-info-warning {
    background: color-mix(in srgb, var(--warning) 10%, transparent);
    border-left-color: var(--warning);
}
.form-info-box svg { flex-shrink: 0; }

/* Verstärkter Focus-Ring auf Premium-Formularen (optional via .form-premium Wrapper) */
.form-premium .form-control:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--primary) 14%, transparent),
                0 1px 3px rgba(0,0,0,0.04);
}
[data-theme="dark"] .form-premium .form-control:focus {
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--primary) 22%, transparent),
                0 1px 3px rgba(0,0,0,0.3);
}

/* Form-Card: Alternative .card mit etwas mehr Innen-Padding für Formulare */
.form-card {
    padding: 28px;
}
@media (max-width: 640px) {
    .form-card { padding: 18px; }
}

/* --- Badges --- */
.badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 100px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.2px;
}

.badge-success { background: var(--success-bg); color: var(--success); }
.badge-warning { background: var(--warning-bg); color: var(--warning); }
.badge-danger { background: var(--danger-bg); color: var(--danger); }
.badge-info { background: var(--info-bg); color: var(--info); }
.badge-gray { background: color-mix(in srgb, var(--text-muted) 18%, transparent); color: var(--text-muted); }
.badge-past { background: color-mix(in srgb, var(--warning) 18%, transparent); color: var(--warning); cursor: help; }

/* ─── KI-Kennzeichnung (EU AI Act 2026 Transparenz-Pflicht) ─────────────
   .ki-badge:          kleine Inline-Markierung fuer Links/Listen
   .ki-badge-lg:       groessere Variante fuer Page-Titles
   .ki-disclaimer:     Disclaimer-Box auf KI-generierten Inhalten
   .ki-tool-header:    Header-Box beim Oeffnen eines KI-Tools
   Farbe: Violett (hebt sich ab von Warnings/Success/Primary) */
.ki-badge {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 1px 6px;
    border-radius: var(--space-sm);
    font-size: 9px;
    font-weight: 700;
    background: linear-gradient(135deg, var(--gold-accent) 0%, var(--gold-accent-dim) 100%);
    color: var(--text-on-accent);
    letter-spacing: 0.3px;
    text-transform: uppercase;
    vertical-align: middle;
    box-shadow: 0 1px 2px rgba(184, 134, 11, 0.3);
}
.ki-badge::before { content: "✨"; font-size: 9px; }

.ki-badge-lg {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 10px;
    border-radius: 12px;
    font-size: 11px;
    font-weight: 700;
    background: linear-gradient(135deg, var(--gold-accent) 0%, var(--gold-accent-dim) 100%);
    color: var(--text-on-accent);
    letter-spacing: 0.4px;
    text-transform: uppercase;
    vertical-align: middle;
    box-shadow: 0 1px 3px rgba(184, 134, 11, 0.35);
    margin-left: var(--space-sm);
}
.ki-badge-lg::before { content: "✨"; font-size: 11px; }

.ki-disclaimer {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 10px 14px;
    margin: 0 0 var(--space-md);
    background: linear-gradient(135deg, #FBF3D5 0%, #F8EDC4 100%);
    border-left: 3px solid var(--gold-accent-dim);
    border-radius: 6px;
    font-size: 12px;
    color: #5C4400;
    line-height: 1.5;
}
.ki-disclaimer strong { color: #7A5C00; }
.ki-disclaimer-icon { font-size: 18px; flex-shrink: 0; line-height: 1; }

.ki-tool-header {
    padding: 12px var(--space-md);
    margin: 0 0 var(--space-md);
    background: linear-gradient(135deg, #FBF3D5 0%, #F8EDC4 100%);
    border-left: 4px solid var(--gold-accent-dim);
    border-radius: 6px;
    font-size: 12px;
    color: #5C4400;
    display: flex;
    gap: 12px;
    align-items: flex-start;
    line-height: 1.5;
}
.ki-tool-header strong { color: #5C4400; display: block; margin-bottom: 2px; font-size: 13px; }
.ki-tool-header-icon { font-size: 22px; flex-shrink: 0; line-height: 1; }

/* Override fuer Sidebar-Links: Badge bekommt eigenen Platz neben dem Text */
.sidebar-nav a .ki-badge {
    margin-left: auto;
    flex-shrink: 0;
    background: linear-gradient(135deg, var(--gold-accent) 0%, var(--gold-accent-dim) 100%);
    color: #fff !important;
}
.sidebar-nav a.active .ki-badge {
    /* Aktiver Link soll trotzdem das Badge klar sichtbar haben */
    box-shadow: 0 0 0 1px rgba(255,255,255,0.15);
}

/* ───────────────────────────────────────────────────────────────
   Task A2: Plantafel-Eintrag Erledigt-Markierung
   ───────────────────────────────────────────────────────────────
   .plantafel-eintrag-erledigt: komplette Karte wenn abgeschlossen
   .erledigt-badge: das "✓ 8h"-Label im Eintrag
   .erledigt-badge.auto-booked: gelber Unterton fuer Default-Stunden
   .stunden-display / .stunden-edit: Click-to-Edit der Stunden-Zahl
   .btn-plantafel-check / -undo: die kleinen ✓/↩ Kreis-Buttons */
/* ═══════════════════════════════════════════════════════════════
   Plantafel-Eintrag — theme-aware Kontrast (P2, 2026-04-20)
   Light: var(--text-primary) ≈ schwarz → 5% mix macht BG hellgrau
          gegenüber beigem Content-BG → klar abgesetzt
   Dark:  var(--text-primary) ≈ weiß → 9% mix macht BG deutlich heller
          gegenüber #131316-Grid → gut lesbar
   ═══════════════════════════════════════════════════════════════ */
.plantafel-eintrag {
    position: relative;
    padding: 7px 30px 7px 12px;
    margin-bottom: 5px;
    border-radius: 6px;
    font-size: 11px;
    background: color-mix(in srgb, var(--text-primary) 5%, var(--bg-surface));
    border: 1px solid var(--border);
    color: var(--text-primary);
    box-shadow: 0 1px 2px rgba(0,0,0,0.06);
    transition: transform 0.12s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}
/* Wenn ✓/↩-Button oben links sitzt: links mehr Platz damit Titel nicht überlappt */
.plantafel-eintrag:has(.btn-plantafel-check),
.plantafel-eintrag:has(.btn-plantafel-undo) {
    padding-left: var(--space-xl);
}
.plantafel-eintrag:hover {
    transform: translateY(-1px);
    box-shadow: 0 3px 8px rgba(0,0,0,0.12);
    border-color: color-mix(in srgb, var(--primary) 30%, var(--border));
}
/* Priority — linker Akzent-Balken */
.plantafel-eintrag.pt-prio-dringend { border-left: 3pt solid #e53935; }
.plantafel-eintrag.pt-prio-hoch     { border-left: 3pt solid #f57c00; }
.plantafel-eintrag.pt-prio-niedrig  { border-left: 3pt solid #7cb342; }
.plantafel-eintrag.pt-prio-normal   { border-left: 3pt solid var(--primary); }
/* Regen-Warnung — sanft-blauer Tint oben drauf */
.plantafel-eintrag.pt-regen {
    background: color-mix(in srgb, #1e88e5 12%, color-mix(in srgb, var(--text-primary) 5%, var(--bg-surface)));
}
/* Dark-Mode: kräftigerer Kontrast */
[data-theme="dark"] .plantafel-eintrag {
    background: color-mix(in srgb, #ffffff 9%, var(--bg-surface-2));
    border-color: color-mix(in srgb, #ffffff 12%, var(--border));
}
[data-theme="dark"] .plantafel-eintrag:hover {
    background: color-mix(in srgb, #ffffff 13%, var(--bg-surface-2));
}
[data-theme="dark"] .plantafel-eintrag.pt-regen {
    background: color-mix(in srgb, #1e88e5 18%, color-mix(in srgb, #ffffff 9%, var(--bg-surface-2)));
}
/* Erledigt-Status — grüner Tint, behält aber Kontrast */
.plantafel-eintrag.plantafel-eintrag-erledigt {
    background: color-mix(in srgb, #10b981 10%, color-mix(in srgb, var(--text-primary) 5%, var(--bg-surface))) !important;
    opacity: 0.92;
}
[data-theme="dark"] .plantafel-eintrag.plantafel-eintrag-erledigt {
    background: color-mix(in srgb, #10b981 16%, color-mix(in srgb, #ffffff 9%, var(--bg-surface-2))) !important;
    opacity: 0.95;
}

/* ═══════════════════════════════════════════════════════════════
   Unzugewiesen-Auftragskarten (oben im Plantafel-Header)
   — schöneres Card-Design mit Hover-Lift
   ═══════════════════════════════════════════════════════════════ */
.plantafel-auftrag-card {
    min-width: 240px;
    padding: 14px 16px 12px;
    border-radius: 10px;
    background: color-mix(in srgb, var(--text-primary) 3%, var(--bg-surface));
    border: 1px solid var(--border);
    box-shadow: 0 2px 6px rgba(0,0,0,0.08);
    transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}
.plantafel-auftrag-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 18px rgba(0,0,0,0.14);
    border-color: color-mix(in srgb, var(--primary) 35%, var(--border));
}
.plantafel-auftrag-card.pt-prio-dringend { border-left: 4pt solid #e53935; }
.plantafel-auftrag-card.pt-prio-hoch     { border-left: 4pt solid #f57c00; }
.plantafel-auftrag-card.pt-prio-niedrig  { border-left: 4pt solid #7cb342; }
.plantafel-auftrag-card.pt-prio-normal   { border-left: 4pt solid var(--primary); }
.plantafel-auftrag-card.pt-teileingeplant {
    background: color-mix(in srgb, #f57c00 8%, color-mix(in srgb, var(--text-primary) 3%, var(--bg-surface)));
}
[data-theme="dark"] .plantafel-auftrag-card {
    background: color-mix(in srgb, #ffffff 7%, var(--bg-surface-2));
    border-color: color-mix(in srgb, #ffffff 10%, var(--border));
}
[data-theme="dark"] .plantafel-auftrag-card:hover {
    background: color-mix(in srgb, #ffffff 11%, var(--bg-surface-2));
}
[data-theme="dark"] .plantafel-auftrag-card.pt-teileingeplant {
    background: color-mix(in srgb, #f57c00 14%, color-mix(in srgb, #ffffff 7%, var(--bg-surface-2)));
}

/* ═══════════════════════════════════════════════════════════════
   Plantafel-Grid — stärkere Gitter-Linien für bessere Orientierung
   ═══════════════════════════════════════════════════════════════ */
.plantafel-grid th,
.plantafel-grid td {
    border-right: 1px solid var(--border) !important;
    border-bottom: 1px solid var(--border) !important;
}
.plantafel-grid th:last-child,
.plantafel-grid td:last-child {
    border-right: none !important;
}
.plantafel-grid tbody tr {
    border-top: 1px solid var(--border) !important;
}
/* Subtile Zebra-Streifen damit Mitarbeiter-Zeilen klarer trennbar sind */
.plantafel-grid tbody tr:nth-child(even) .plantafel-cell {
    background-image: linear-gradient(
        to bottom,
        color-mix(in srgb, var(--text-primary) 1.5%, transparent) 0%,
        color-mix(in srgb, var(--text-primary) 1.5%, transparent) 100%
    );
}
[data-theme="dark"] .plantafel-grid tbody tr:nth-child(even) .plantafel-cell {
    background-image: linear-gradient(
        to bottom,
        rgba(255,255,255,0.025) 0%,
        rgba(255,255,255,0.025) 100%
    );
}
/* Kopfzeile (Tages-Spalten) bekommt eine deutlichere Unter-Linie */
.plantafel-grid thead tr {
    border-bottom: 2px solid var(--border) !important;
}
/* Erste Spalte (Mitarbeiter-Name) bekommt eine kräftigere rechte Border */
.plantafel-grid th:first-child,
.plantafel-grid td:first-child {
    border-right: 2px solid var(--border) !important;
}

.plantafel-eintrag.plantafel-eintrag-erledigt .auftrag-titel-text {
    text-decoration: line-through;
    text-decoration-thickness: 1px;
    color: var(--text-muted);
}
.erledigt-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    font-size: 10px;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 10px;
    background: color-mix(in srgb, #059669 18%, transparent);
    color: #047857;
    border: 1px solid color-mix(in srgb, #059669 30%, transparent);
    margin-top: 3px;
    line-height: 1.3;
}
.erledigt-badge.auto-booked {
    background: color-mix(in srgb, #d97706 18%, transparent);
    color: #92400e;
    border-color: color-mix(in srgb, #d97706 35%, transparent);
}
.erledigt-badge .stunden-display {
    cursor: pointer;
    border-bottom: 1px dotted currentColor;
    padding: 0 2px;
}
.erledigt-badge .stunden-display:hover {
    background: rgba(255,255,255,0.3);
    border-radius: 3px;
}
.erledigt-badge input.stunden-edit-input {
    width: 44px;
    font-size: 10px;
    font-weight: 700;
    padding: 1px 3px;
    border: 1px solid currentColor;
    border-radius: 3px;
    text-align: center;
    background: var(--bg-surface);
    color: #111;
}
.btn-plantafel-action {
    position: absolute;
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    cursor: pointer;
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    padding: 0;
    transition: background 0.15s, transform 0.15s;
}
.btn-plantafel-check {
    top: 2px; left: 2px;
    background: rgba(16,185,129,0.12);
    border: 1px solid rgba(16,185,129,0.4);
    color: #059669;
}
.btn-plantafel-check:hover {
    background: rgba(16,185,129,0.28);
    transform: scale(1.1);
}
.btn-plantafel-undo {
    top: 2px; left: 2px;
    background: rgba(217,119,6,0.12);
    border: 1px solid rgba(217,119,6,0.4);
    color: #b45309;
    font-size: 13px;
}
.btn-plantafel-undo:hover {
    background: rgba(217,119,6,0.28);
    transform: scale(1.1);
}

/* Vergangene Kurse leicht ausgrauen */
tr.row-past td { color: var(--warm-gray); }
tr.row-past td strong { color: var(--warm-gray); font-weight: 500; }

/* --- Flash Messages --- */
/* ═══════════════════════════════════════════════════════════════
   Flash-Messages (legacy inline + Toast-Variante 2026-04-19)
   ═══════════════════════════════════════════════════════════════ */
.flash { padding: 12px var(--space-md); border-radius: 6px; margin-bottom: var(--space-md); font-size: 13px; }
.flash-success { background: var(--success-bg); color: var(--success); border: 1px solid color-mix(in srgb, var(--success) 35%, transparent); }
.flash-error { background: var(--danger-bg); color: var(--danger); border: 1px solid color-mix(in srgb, var(--danger) 35%, transparent); }
.flash-info { background: var(--info-bg); color: var(--info); border: 1px solid color-mix(in srgb, var(--info) 35%, transparent); }
.flash-warning { background: var(--warning-bg); color: var(--warning); border: 1px solid color-mix(in srgb, var(--warning) 35%, transparent); }

/* ───── Toast-Container (fixed top-right) ───── */
.toast-container {
    position: fixed;
    top: var(--space-md);
    right: var(--space-md);
    z-index: 10000;
    display: flex;
    flex-direction: column;
    gap: 10px;
    max-width: 420px;
    width: calc(100% - 32px);
    pointer-events: none;
}
.toast-container > * { pointer-events: auto; }

.toast {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 14px 12px var(--space-md);
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-left: 4px solid var(--primary);
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
    overflow: hidden;
    position: relative;
    animation: toast-slide-in 0.28s cubic-bezier(0.2, 0.9, 0.3, 1.0);
}
@keyframes toast-slide-in {
    from { opacity: 0; transform: translateX(100%); }
    to { opacity: 1; transform: translateX(0); }
}
.toast.toast-leave {
    animation: toast-slide-out 0.22s ease-in forwards;
}
@keyframes toast-slide-out {
    from { opacity: 1; transform: translateX(0); }
    to { opacity: 0; transform: translateX(100%); }
}

.toast-icon {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    color: var(--primary);
    margin-top: 1px;
}
.toast-message {
    flex: 1;
    font-size: 13px;
    color: var(--text-primary);
    line-height: 1.5;
    word-wrap: break-word;
}
.toast-close {
    background: transparent;
    border: none;
    cursor: pointer;
    padding: var(--space-xs);
    border-radius: var(--space-xs);
    color: var(--text-muted);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin: -2px -2px 0 0;
    transition: all 0.12s ease;
}
.toast-close:hover {
    background: var(--bg-surface-2);
    color: var(--text-primary);
}

/* Auto-Dismiss-Progress-Bar unten */
.toast-progress {
    position: absolute;
    bottom: 0;
    left: 0;
    height: 3px;
    width: 100%;
    background: color-mix(in srgb, var(--primary) 50%, transparent);
    transform-origin: left;
    animation: toast-progress 5s linear forwards;
}
@keyframes toast-progress {
    from { transform: scaleX(1); }
    to { transform: scaleX(0); }
}

/* Type-Varianten */
.toast-success { border-left-color: var(--success); }
.toast-success .toast-icon { color: #1E7A4E; }
.toast-success .toast-progress { background: color-mix(in srgb, #2F9E6A 50%, transparent); }

.toast-error,
.toast-danger { border-left-color: var(--danger); }
.toast-error .toast-icon,
.toast-danger .toast-icon { color: #A83232; }
.toast-error .toast-progress,
.toast-danger .toast-progress { background: color-mix(in srgb, var(--danger) 50%, transparent); }

.toast-warning { border-left-color: var(--warning); }
.toast-warning .toast-icon { color: #B78628; }
.toast-warning .toast-progress { background: color-mix(in srgb, #E5A23B 50%, transparent); }

.toast-info { border-left-color: var(--primary); }
.toast-info .toast-icon { color: var(--primary); }

/* Mobile */
@media (max-width: 640px) {
    .toast-container {
        top: auto;
        bottom: var(--space-md);
        left: var(--space-md);
        right: var(--space-md);
        max-width: none;
        width: auto;
    }
    .toast {
        animation: toast-slide-in-mobile 0.28s cubic-bezier(0.2, 0.9, 0.3, 1.0);
    }
    @keyframes toast-slide-in-mobile {
        from { opacity: 0; transform: translateY(100%); }
        to { opacity: 1; transform: translateY(0); }
    }
    .toast.toast-leave {
        animation: toast-slide-out-mobile 0.22s ease-in forwards;
    }
    @keyframes toast-slide-out-mobile {
        from { opacity: 1; transform: translateY(0); }
        to { opacity: 0; transform: translateY(100%); }
    }
}

/* prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
    .toast { animation: none; }
    .toast.toast-leave { animation: none; opacity: 0; }
    .toast-progress { animation: none; display: none; }
}

/* --- Login Page --- */
.login-container {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--bg-base);
    color: var(--text-primary);
}

.login-box {
    background: var(--bg-surface);
    color: var(--text-primary);
    border-radius: var(--radius);
    box-shadow: var(--shadow-md);
    padding: 40px;
    width: 100%;
    max-width: 400px;
    border: 1px solid var(--border-subtle);
}

.login-box h1 { text-align: center; margin-bottom: var(--space-lg); font-size: 22px; color: var(--text-primary); }
/* L-B: Login-Logo nutzt Brand-Blue (Marineblau aus Logo-Schrift) */
.login-box .login-logo { text-align: center; margin-bottom: var(--space-xs); font-size: 28px; font-weight: 700; color: var(--brand-blue); }
/* V3 (2026-04-27): Brand-Tagline unter dem Logo — erinnert an Booklera-Mission */
.login-box .login-tagline {
    text-align: center;
    margin-bottom: 20px;
    font-size: 11px;
    font-weight: 600;
    color: var(--text-muted);
    letter-spacing: 0.5px;
    text-transform: uppercase;
    cursor: help;
}

/* === EMPTY STATE — Master-Pattern (Block G-C.1, 2026-04-27) ===
   Standard fuer alle leeren Listen/Uebersichten in Booklera.
   Bestehende eigene Klassen (.ang-empty, .auftr-pt-leer, .lst-empty-hero, etc.)
   bleiben funktional bis G-C.6 Migration abgeschlossen ist.

   Pflicht-HTML-Pattern:
       <div class="empty-state">
           <div class="empty-icon">{{ icon('inbox', 44) }}</div>
           <h3>Noch keine X</h3>
           <p>Erklaerungstext.</p>
           <div class="empty-actions">
               <a href="..." class="btn btn-primary">Erste X anlegen</a>
           </div>
           <div class="empty-hint">Tipp: ...</div>  <!-- optional -->
       </div>
*/
.empty-state {
    padding: 48px var(--space-lg);
    text-align: center;
    color: var(--text-muted);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-md);
}
.empty-state .empty-icon {
    color: var(--border);
    opacity: 0.7;
    /* Icons werden mit {{ icon('name', 44) }} gerendert */
}
.empty-state h3 {
    margin: 0;
    color: var(--text-primary);
    font-size: 19px;
    font-weight: 600;
    line-height: 1.3;
}
.empty-state p {
    margin: 0;
    font-size: 14px;
    line-height: 1.55;
    max-width: 480px;
}
.empty-state .empty-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: center;
    margin-top: var(--space-xs);
}
.empty-state .empty-hint {
    font-size: 12px;
    color: var(--text-muted);
    margin-top: var(--space-xs);
    max-width: 480px;
    line-height: 1.5;
}

/* Mobile-Responsive */
@media (max-width: 640px) {
    .empty-state { padding: 36px var(--space-md); gap: 12px; }
    .empty-state h3 { font-size: 17px; }
    .empty-state p { font-size: 13px; }
}

/* Dark-Mode: nutzt CSS-Variablen (--text-muted, --text-primary, --border)
   die bereits Dark-Mode-aware sind — automatisch konsistent. */

/* --- Onboarding Checklist --- */
.checklist { list-style: none; }
.checklist li { padding: 8px 0; display: flex; align-items: center; gap: var(--space-sm); font-size: 14px; }
.checklist .check-done { color: var(--success); }
.checklist .check-open { color: var(--warm-gray); }

/* --- Sidebar Toggle (Mobile Burger) --- */
.sidebar-toggle {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    flex-direction: column;
    gap: 5px;
    padding: var(--space-sm);
    margin-right: 12px;
}
.sidebar-toggle span {
    display: block;
    width: 22px;
    height: 2px;
    background: var(--text-primary);
    transition: all 0.3s ease;
    border-radius: 1px;
}
.sidebar-toggle.active span:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); }
.sidebar-toggle.active span:nth-child(2) { opacity: 0; }
.sidebar-toggle.active span:nth-child(3) { transform: rotate(-45deg) translate(5px, -5px); }

.sidebar-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 998;
}
.sidebar-overlay.active { display: block; }

/* ── Sidebar Desktop-Collapse (Option A, 2026-06-30) ──────────────────────────
   Voll-Ausblenden der Seitenleiste auf Desktop via Toggle-Button in der Topbar.
   Zustand: html.sidebar-hidden (im <head> VOR Paint gesetzt → kein Flash). NUR
   Desktop (>=769px) — Mobile (<=768px) nutzt weiterhin den Burger-Drawer unten. */
.sidebar-collapse-btn {
    display: none;                 /* Default aus; nur Desktop sichtbar (s. Media-Query) */
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0;
    /* Klare Button-Optik (Marco 2026-06-30: "Pfeil zu undeutlich") — Rahmen + Flaeche
       + deutlicher Hover, damit sofort als klickbar erkennbar. */
    background: var(--bg-base);
    border: 1px solid var(--border);
    border-radius: 8px;
    cursor: pointer;
    color: var(--text-primary);
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.sidebar-collapse-btn:hover {
    background: var(--primary);
    border-color: var(--primary);
    color: #fff;
}
.sb-collapse-ico { display: inline-flex; transition: transform .25s ease; }
/* Burger + Collapse-Btn + Titel als EINE space-between-Gruppe (Titel bleibt links,
   Suchleiste/Actions exakt wie vorher — kein Layout-Shift). */
.page-header-left { display: flex; align-items: center; gap: var(--space-sm); min-width: 0; }
.page-header-left h1 { margin: 0; }

@media (min-width: 769px) {
    .sidebar-collapse-btn { display: inline-flex; }   /* nur Desktop */
    .sidebar { transition: transform .25s ease; }
    .main-content { transition: margin-left .25s ease; }
    html.sidebar-hidden .sidebar { transform: translateX(-100%); }
    html.sidebar-hidden .main-content { margin-left: 0; }
    html.sidebar-hidden .sb-collapse-ico { transform: rotate(180deg); }
}

/* --- Responsive --- */
@media (max-width: 768px) {
    .sidebar-toggle { display: flex; }
    .sidebar {
        position: fixed;
        top: 0;
        left: 0;
        height: 100vh;
        z-index: 999;
        transform: translateX(-100%);
        transition: transform 0.3s ease;
    }
    .sidebar.open { transform: translateX(0); }
    .main-content { margin-left: 0; }
    .page-header { display: flex; align-items: center; }
    .form-row { grid-template-columns: 1fr; }
    .kpi-grid { grid-template-columns: 1fr 1fr; }
}

/* ========================================
   SETTINGS TABS — Einstellungen Navigation
   ======================================== */
.settings-tabs {
    display: flex;
    gap: var(--space-xs);
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: var(--space-xs);
    margin-bottom: 20px;
    position: sticky;
    top: 0;
    z-index: 10;
    box-shadow: var(--shadow-card);
}

.settings-tab {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 10px var(--space-md);
    border: none;
    background: transparent;
    border-radius: 7px;
    cursor: pointer;
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--text-muted);
    transition: all 0.2s;
    white-space: nowrap;
}

.settings-tab:hover {
    color: var(--text-primary);
    background: var(--bg-hover);
}

.settings-tab.active {
    background: var(--primary);
    color: var(--text-on-accent);
    box-shadow: 0 2px 6px color-mix(in srgb, var(--primary) 30%, transparent);
}

.settings-tab svg {
    flex-shrink: 0;
    opacity: 0.7;
}

.settings-tab.active svg {
    opacity: 1;
}

.settings-panel {
    display: none;
}

.settings-panel.active {
    display: block;
}

@media (max-width: 768px) {
    .settings-tabs {
        flex-wrap: wrap;
        position: static;
    }

    .settings-tab {
        flex: 1 1 45%;
        font-size: 0.78rem;
        padding: 8px 10px;
    }
}

/* ========================================
   DYNAMISCHE SEKTIONEN — Admin-Editor
   ======================================== */
.ds-admin-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
}

.ds-admin-item {
    border: 1px solid var(--border);
    border-radius: var(--space-sm);
    background: var(--bg-surface);
    color: var(--text-primary);
    overflow: hidden;
}

.ds-admin-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.ds-admin-item {
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--bg-surface);
    color: var(--text-primary);
    overflow: hidden;
    box-shadow: var(--shadow-card);
    transition: box-shadow 0.2s;
}

.ds-admin-item:hover {
    box-shadow: var(--shadow-md);
}

.ds-admin-item-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 18px;
    gap: 12px;
    background: var(--bg-surface-2);
    color: var(--text-primary);
    border-bottom: 1px solid var(--border-subtle);
}

.ds-admin-item-info {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 1;
    min-width: 0;
}

.ds-admin-item-info strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.95rem;
}

.ds-admin-item-actions {
    display: flex;
    gap: var(--space-xs);
    flex-shrink: 0;
}

.ds-admin-item-actions .btn {
    min-width: var(--space-xl);
    height: var(--space-xl);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border-radius: 6px;
}

.ds-admin-badge {
    display: inline-block;
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    padding: 3px 10px;
    border-radius: 5px;
    white-space: nowrap;
}

.ds-badge-text { background: #E3F2FD; color: #1565C0; }
.ds-badge-text-bild { background: #E8F5E9; color: #2E7D32; }
.ds-badge-bild-text { background: #FFF3E0; color: #E65100; }
.ds-badge-zitat { background: #FBF3D5; color: #7A5C00; }
.ds-badge-galerie { background: #FCE4EC; color: #C62828; }
.ds-badge-divider { background: #E0F2F1; color: #00695C; }

/* Divider-Varianten-Picker */
.ds-divider-picker {
    display: flex;
    gap: 10px;
}

.ds-divider-option {
    flex: 1;
    border: 2px solid #e0e0e0;
    border-radius: 10px;
    padding: 12px;
    text-align: center;
    cursor: pointer;
    transition: border-color 0.2s, background 0.2s;
    background: var(--bg-surface);
}

.ds-divider-option:hover {
    border-color: var(--primary, #5B8BA6);
}

.ds-divider-option.active {
    border-color: var(--primary, #5B8BA6);
    background: rgba(91,139,166,0.05);
    box-shadow: 0 0 0 1px var(--primary, #5B8BA6);
}

.ds-divider-preview {
    height: 50px;
    border-radius: 6px;
    margin-bottom: 6px;
    overflow: hidden;
}

.ds-divider-preview-color {
    background: linear-gradient(135deg, var(--primary, #5B8BA6) 0%, #4a7a95 100%);
}

.ds-divider-preview-parallax {
    background: linear-gradient(135deg, #1a1a2e 0%, #2d2d44 50%, #1a1a2e 100%);
    position: relative;
}

.ds-divider-preview-parallax::after {
    content: '';
    position: absolute;
    inset: 0;
    background: url('/static/images/demo/parallax-meditation.jpg') center/cover;
    opacity: 0.4;
}

.ds-divider-preview-wave {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f9f9f9;
}

.ds-divider-option span {
    font-size: 0.78rem;
    font-weight: 500;
    color: #555;
}

@media (max-width: 480px) {
    .ds-divider-picker {
        flex-direction: column;
    }
}

/* Höhen-Slider */
.ds-height-slider {
    width: 100%;
    height: 6px;
    -webkit-appearance: none;
    appearance: none;
    background: #e0e0e0;
    border-radius: 3px;
    outline: none;
    cursor: pointer;
}

.ds-height-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--primary, #5B8BA6);
    cursor: pointer;
    box-shadow: 0 1px 4px rgba(0,0,0,0.2);
}

.ds-height-slider::-moz-range-thumb {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--primary, #5B8BA6);
    cursor: pointer;
    border: none;
    box-shadow: 0 1px 4px rgba(0,0,0,0.2);
}

.ds-admin-edit {
    border-top: none;
}

.ds-admin-edit summary {
    padding: 10px 18px;
    cursor: pointer;
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--primary, #5B8BA6);
    user-select: none;
    transition: background 0.15s;
    list-style: none;
    display: flex;
    align-items: center;
    gap: 6px;
}

.ds-admin-edit summary::-webkit-details-marker {
    display: none;
}

.ds-admin-edit summary::before {
    content: '';
    display: inline-block;
    width: 6px;
    height: 6px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(-45deg);
    transition: transform 0.2s;
    flex-shrink: 0;
}

.ds-admin-edit[open] summary::before {
    transform: rotate(45deg);
}

.ds-admin-edit summary:hover {
    background: var(--bg-hover);
}

.ds-admin-edit[open] > summary {
    border-bottom: 1px solid var(--border-subtle);
    background: var(--bg-surface-2);
}

.ds-admin-edit form {
    padding: 18px;
}

@media (max-width: 768px) {
    .ds-admin-item-header {
        flex-direction: column;
        align-items: flex-start;
        padding: 12px 14px;
    }

    .ds-admin-item-actions {
        width: 100%;
        justify-content: flex-end;
    }

    .ds-admin-edit form {
        padding: 14px;
    }
}

/* ========================================
   LAYOUT-PICKER — Visuelle Karten
   ======================================== */
.ds-layout-picker {
    display: grid !important;
    grid-template-columns: repeat(6, 1fr) !important;
    gap: 10px !important;
    margin-bottom: var(--space-md);
}

label.ds-layout-option {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 6px;
    padding: 16px 8px 12px;
    border: 2px solid var(--border);
    border-radius: 10px;
    cursor: pointer;
    transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;
    text-align: center;
    user-select: none;
    background: var(--bg-surface);
    color: var(--text-primary);
    margin: 0;
    min-height: 110px;
    justify-content: flex-start;
}

label.ds-layout-option:hover {
    border-color: var(--primary, #5B8BA6);
    background: rgba(91,139,166,0.04);
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

label.ds-layout-option.active {
    border-color: var(--primary, #5B8BA6);
    background: rgba(91,139,166,0.07);
    box-shadow: 0 0 0 2px var(--primary, #5B8BA6);
}

label.ds-layout-option input[type="radio"] {
    position: absolute !important;
    opacity: 0 !important;
    width: 0 !important;
    height: 0 !important;
    pointer-events: none !important;
}

.ds-layout-icon {
    width: var(--space-2xl);
    height: var(--space-2xl);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: var(--bg-surface-2);
    color: var(--text-muted);
    transition: background 0.2s, color 0.2s;
    flex-shrink: 0;
}

label.ds-layout-option.active .ds-layout-icon {
    background: var(--primary, #5B8BA6);
    color: var(--text-on-accent);
}

label.ds-layout-option:hover .ds-layout-icon {
    background: var(--bg-hover);
    color: var(--text-secondary);
}

label.ds-layout-option.active:hover .ds-layout-icon {
    background: var(--primary, #5B8BA6);
    color: var(--text-on-accent);
}

.ds-layout-label {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.2;
}

.ds-layout-desc {
    font-size: 0.62rem;
    color: var(--text-muted);
    line-height: 1.3;
}

.ds-badge-video { background: #FFF8E1; color: #F57F17; }

@media (max-width: 900px) {
    .ds-layout-picker {
        grid-template-columns: repeat(3, 1fr) !important;
    }
}

@media (max-width: 480px) {
    .ds-layout-picker {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

/* ========================================
   DRAG & DROP UPLOAD ZONE
   ======================================== */
.ds-dropzone {
    border: 2px dashed #d0d0d0;
    border-radius: 10px;
    padding: 32px 20px;
    text-align: center;
    cursor: pointer;
    transition: border-color 0.2s, background 0.2s;
    background: #fafafa;
    position: relative;
}

.ds-dropzone:hover,
.ds-dropzone.drag-over {
    border-color: var(--primary, #5B8BA6);
    background: rgba(91,139,166,0.04);
}

.ds-dropzone.drag-over {
    border-style: solid;
    background: rgba(91,139,166,0.08);
}

.ds-dropzone-icon {
    margin-bottom: var(--space-sm);
    color: #bbb;
}

.ds-dropzone.drag-over .ds-dropzone-icon {
    color: var(--primary, #5B8BA6);
}

.ds-dropzone-text {
    font-size: 0.9rem;
    color: #888;
    line-height: 1.5;
}

.ds-dropzone-text strong {
    color: var(--primary, #5B8BA6);
}

.ds-dropzone-hint {
    font-size: 0.75rem;
    color: #aaa;
    margin-top: 6px;
}

.ds-dropzone input[type="file"] {
    display: none;
}

/* Datei-Vorschau */
.ds-file-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 12px;
}

.ds-file-item {
    position: relative;
    border: 1px solid #e0e0e0;
    border-radius: var(--space-sm);
    overflow: hidden;
    background: var(--bg-surface);
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 110px;
}

.ds-file-item img {
    width: 110px;
    height: 80px;
    /* (2026-04-26) object-fit: contain damit Logos im Editor-Vorschau-Tile
       komplett sichtbar sind (Dillner-Feedback). Padding 6px + heller BG
       sorgen fuer ruhigen Rahmen ohne Crop. */
    object-fit: contain;
    padding: 6px;
    box-sizing: border-box;
    background: #fafaf7;
    display: block;
}

.ds-file-item-video {
    width: 110px;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--text-primary);
    color: var(--text-on-accent);
}

/* Video-Thumbnail mit echtem <video> */
.ds-file-item-wide {
    width: 160px;
    max-height: 130px;
    overflow: hidden;
}

.ds-file-video-thumb {
    position: relative;
    width: 160px;
    height: 90px;
    max-height: 90px;
    background: #111;
    overflow: hidden;
    flex-shrink: 0;
}

.ds-file-video-thumb video {
    width: 160px;
    height: 90px;
    object-fit: cover;
    display: block;
}

.ds-file-video-play {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: rgba(0,0,0,0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}

.ds-file-name {
    font-size: 0.65rem;
    color: #666;
    padding: 4px 6px;
    text-align: center;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: 100%;
}

.ds-file-size {
    font-size: 0.6rem;
    color: #aaa;
    padding: 0 6px var(--space-xs);
}

.ds-file-remove {
    position: absolute;
    top: 2px;
    right: 2px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: rgba(0,0,0,0.6);
    color: var(--text-on-accent);
    border: none;
    cursor: pointer;
    font-size: 12px;
    line-height: 20px;
    text-align: center;
    padding: 0;
    transition: background 0.2s;
}

.ds-file-remove:hover {
    background: #e53935;
}

/* Weiteres hinzufügen Button */
.ds-add-more {
    width: 110px;
    height: 110px;
    border: 2px dashed #d0d0d0;
    border-radius: var(--space-sm);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: #aaa;
    font-size: 0.7rem;
    transition: border-color 0.2s, color 0.2s;
    background: none;
    gap: var(--space-xs);
}

.ds-add-more:hover {
    border-color: var(--primary, #5B8BA6);
    color: var(--primary, #5B8BA6);
}

.ds-add-more svg {
    width: var(--space-lg);
    height: var(--space-lg);
}

/* ========================================
   URL-BUILDER (Video-URLs einzeln eingeben)
   ======================================== */
.ds-url-builder {
    border: 1px solid #e0e0e0;
    border-radius: var(--space-sm);
    background: #fafafa;
    overflow: hidden;
}

.ds-url-list {
    display: flex;
    flex-direction: column;
}

.ds-url-row {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    padding: 8px 12px;
    border-bottom: 1px solid #eee;
    background: var(--bg-surface);
    transition: background 0.15s;
}

.ds-url-row:hover {
    background: #f9f9f9;
}

.ds-url-row:last-child {
    border-bottom: none;
}

.ds-url-preview {
    width: 72px;
    height: 42px;
    border-radius: var(--space-xs);
    overflow: hidden;
    flex-shrink: 0;
    background: #f0f0f0;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e0e0e0;
}

.ds-url-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ds-url-preview .ds-url-preview-icon {
    color: #ccc;
}

.ds-url-preview.has-thumb {
    border-color: #d0d0d0;
}

.ds-url-input {
    flex: 1;
    min-width: 0;
    font-size: 0.85rem !important;
    height: 36px !important;
    padding: 4px 10px !important;
}

.ds-url-remove {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: none;
    background: transparent;
    color: #ccc;
    font-size: 18px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background 0.15s, color 0.15s;
    padding: 0;
    line-height: 1;
}

.ds-url-remove:hover {
    background: #fee;
    color: #e53935;
}

.ds-url-add {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 100%;
    padding: 10px;
    border: none;
    background: transparent;
    color: var(--primary, #5B8BA6);
    font-size: 0.82rem;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.15s;
}

.ds-url-add:hover {
    background: rgba(91,139,166,0.06);
}

.ds-url-add svg {
    flex-shrink: 0;
}

@media (max-width: 768px) {
    .ds-url-preview {
        display: none;
    }

    .ds-url-row {
        padding: 6px var(--space-sm);
    }
}

/* ════════════════════════════════════════════════
   TEAM-KARTE (Einstellungen → Firma & Domain)
   ════════════════════════════════════════════════ */
.team-card {
    position: relative;
    overflow: hidden;
}

.team-card::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 180px;
    height: 180px;
    background: radial-gradient(circle, color-mix(in srgb, var(--primary) 10%, transparent) 0%, transparent 70%);
    border-radius: 50%;
    transform: translate(40%, -40%);
    pointer-events: none;
}

.team-card-body {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 8px 0 20px;
    position: relative;
    z-index: 1;
}

.team-avatars {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.team-avatar {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--text-on-accent);
    font-weight: 700;
    font-size: 15px;
    border: 2px solid var(--white);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
    margin-left: -10px;
    transition: transform 0.2s ease;
}

.team-avatar:first-child {
    margin-left: 0;
}

.team-card:hover .team-avatar {
    transform: translateY(-2px);
}

.team-avatar-1 {
    background: linear-gradient(135deg, var(--primary) 0%, color-mix(in srgb, var(--primary) 70%, #000) 100%);
}

.team-avatar-2 {
    background: linear-gradient(135deg, color-mix(in srgb, var(--primary) 85%, #fff) 0%, var(--primary) 100%);
}

.team-avatar-3 {
    background: linear-gradient(135deg, color-mix(in srgb, var(--primary) 60%, #fff) 0%, color-mix(in srgb, var(--primary) 90%, #000) 100%);
}

.team-avatar-plus {
    background: var(--secondary);
    color: var(--primary);
    font-size: 18px;
    border: 2px dashed color-mix(in srgb, var(--primary) 40%, transparent);
    box-shadow: none;
}

.team-card-text {
    flex: 1;
    min-width: 0;
}

.team-card-title {
    font-size: var(--space-md);
    font-weight: 700;
    color: var(--dark);
    margin: 0 0 var(--space-xs);
}

.team-card-desc {
    font-size: 14px;
    color: var(--warm-gray);
    line-height: 1.6;
    margin: 0;
}

.team-card-features {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 20px;
    padding: 16px 0;
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    margin-bottom: 18px;
    position: relative;
    z-index: 1;
}

.team-feature {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    font-size: 13px;
    color: var(--dark);
    font-weight: 500;
}

.team-feature svg {
    flex-shrink: 0;
}

.team-card-cta {
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
    position: relative;
    z-index: 1;
    transition: gap 0.2s ease;
}

.team-card-cta:hover {
    gap: 12px;
}

@media (max-width: 640px) {
    .team-card::before {
        width: 120px;
        height: 120px;
    }

    .team-card-body {
        flex-direction: column;
        align-items: flex-start;
        gap: 14px;
    }

    .team-card-features {
        gap: 8px 14px;
    }

    .team-feature {
        font-size: 12px;
    }

    .team-avatar {
        width: 38px;
        height: 38px;
    }
}

/* ═══════════════════════════════════════════════════════════════
   MOBILE A11Y + TOUCH-TARGETS — Admin-Panel
   Behebt iOS-Zoom und Touch-Target-Verstoesse auf kleinen Screens.
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
    /* iOS-Zoom-Prevention */
    .form-control,
    input.form-control,
    select.form-control,
    textarea.form-control,
    input[type="text"],
    input[type="email"],
    input[type="password"],
    input[type="tel"],
    input[type="number"],
    input[type="url"],
    input[type="date"],
    input[type="time"],
    textarea,
    select {
        font-size: var(--space-md);
    }

    /* Buttons: min 44px hoch */
    .btn {
        min-height: 44px;
        padding: 12px 18px;
    }

    .btn-sm {
        min-height: 38px;
        padding: 8px 14px;
        font-size: 13px;
    }

    /* Settings-Tabs: aus 2x2 Grid treffbar machen */
    .settings-tab {
        min-height: 44px;
    }
    /* Handwerker Detail-Grids → einspaltg auf Mobile */
    .hw-detail-grid {
        grid-template-columns: 1fr !important;
    }
    .hw-detail-grid .form-row {
        flex-direction: column;
    }
}

/* ═══════════════════════════════════════════════════════════════
   ACCESSIBILITY (a11y-pass — 2026-04-19)
   ═══════════════════════════════════════════════════════════════ */

/* Screen-Reader-only Utility (visually hidden, aber für AT lesbar) */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Skip-to-Content-Link: visuell versteckt, sichtbar bei Tastatur-Fokus.
   Tastatur-User können so direkt über die Sidebar zum Hauptinhalt springen. */
.skip-link {
    position: absolute;
    top: -100px;
    left: var(--space-sm);
    z-index: 10000;
    padding: 10px var(--space-md);
    background: var(--primary, #4F46E5);
    color: var(--text-on-accent);
    font-weight: 600;
    font-size: 14px;
    border-radius: 6px;
    text-decoration: none;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
    transition: top 0.15s ease-out;
}
.skip-link:focus,
.skip-link:focus-visible {
    top: var(--space-sm);
    outline: 2px solid #ffffff;
    outline-offset: 2px;
}

/* Globaler Fokus-Ring: nur bei Tastatur-Navigation (nicht bei Maus-Klicks).
   :focus-visible respektiert Browser-Heuristik (Tab, Pfeile, etc.). */
*:focus {
    outline: none;
}
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible,
[role="tab"]:focus-visible,
[role="button"]:focus-visible {
    outline: 2px solid var(--primary, #4F46E5);
    outline-offset: 2px;
    border-radius: var(--space-xs);
}
/* Spezielle Buttons mit eigenem Styling: dezenter Ring innerhalb */
.btn:focus-visible {
    outline-offset: 3px;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary, #4F46E5) 25%, transparent);
}

/* Reduced-Motion: User mit Vestibulär-Empfindlichkeit/Migräne können in
   Betriebssystem-Einstellungen alle Animationen deaktivieren. Wir respektieren
   das und reduzieren alles auf instant transitions. */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* ═══════════════════════════════════════════════════════════════
   DARK-MODE-OVERRIDES für Status-Pills (2026-04-19)
   Im Light-Mode haben Status-Pills oft Pastell-BG (color-mix mit
   transparent) und dunklen Text (z.B. #1E7A4E). Im Dark-Mode wäre
   der Text zu dunkel auf dem dunkel-getönten BG → kein Kontrast.
   Hier werden alle Pills explizit aufgehellt.
   ═══════════════════════════════════════════════════════════════ */

/* GRÜN-Status (Erfolg/Erledigt/Aktiv/Bezahlt/Angenommen) */
[data-theme="dark"] .auftr-status-done,
[data-theme="dark"] .ang-status-angenommen,
[data-theme="dark"] .ang-det-status-angenommen,
[data-theme="dark"] .tm-status-active,
[data-theme="dark"] .abw-typ-urlaub,
[data-theme="dark"] .abo-status-active,
[data-theme="dark"] .abo-inv-paid,
[data-theme="dark"] .ivt-upload-status,
[data-theme="dark"] .dom-step-badge-done,
[data-theme="dark"] .lst-ampel-gruen,
[data-theme="dark"] .bdk-type-arbeit,
[data-theme="dark"] .bdd-type-arbeit,
[data-theme="dark"] .fz-tuev-ok,
[data-theme="dark"] .fz-maengel-ok,
[data-theme="dark"] .pt-trainer-done-badge,
[data-theme="dark"] .pt-unassigned-empty,
[data-theme="dark"] .agf-success,
[data-theme="dark"] .hbf-flash-success,
[data-theme="dark"] .kal-flash-success,
[data-theme="dark"] .bdd-hash-valid {
    color: #6FE9A0 !important;
}

/* ORANGE-Status (Wartend/Hoch/Warnung/Trial) */
[data-theme="dark"] .auftr-status-offen,
[data-theme="dark"] .auftr-prio-normal,
[data-theme="dark"] .ang-status-gesendet,
[data-theme="dark"] .ang-det-status-gesendet,
[data-theme="dark"] .tm-role-owner,
[data-theme="dark"] .abw-typ-feiertag,
[data-theme="dark"] .abo-status-warn,
[data-theme="dark"] .abo-inv-pending,
[data-theme="dark"] .lst-ampel-gelb,
[data-theme="dark"] .fz-tuev-warn,
[data-theme="dark"] .fz-kpi-warn .lag-kpi-value,
[data-theme="dark"] .lag-bestand-warn,
[data-theme="dark"] .dom-step-badge-active {
    color: #FFCD66 !important;
}

/* ROT-Status (Fehler/Abgelehnt/Krank/Mangel/Storniert/Dringend) */
[data-theme="dark"] .auftr-status-storno,
[data-theme="dark"] .auftr-prio-high,
[data-theme="dark"] .ang-status-abgelehnt,
[data-theme="dark"] .ang-det-status-abgelehnt,
[data-theme="dark"] .abw-typ-krank,
[data-theme="dark"] .lst-ampel-rot,
[data-theme="dark"] .bdk-type-mangel,
[data-theme="dark"] .bdd-type-mangel,
[data-theme="dark"] .fz-tuev-expired,
[data-theme="dark"] .fz-maengel-badge,
[data-theme="dark"] .bdd-hash-invalid {
    color: #FF8888 !important;
}

/* BLAU-Status (Info/Bearbeitung/Admin) */
[data-theme="dark"] .auftr-status-inarbeit,
[data-theme="dark"] .auftr-status-beauftragt,
[data-theme="dark"] .ang-status-entwurf,
[data-theme="dark"] .tm-role-admin,
[data-theme="dark"] .abw-typ-fortbildung,
[data-theme="dark"] .bdk-type-voror,
[data-theme="dark"] .bdd-type-voror {
    color: #9FCBE5 !important;
}

/* GOLD-Status (Abnahme/KI — vorher Lila, jetzt Gold) */
[data-theme="dark"] .bdk-type-abnahme,
[data-theme="dark"] .bdd-type-abnahme {
    color: #F0D870 !important;
}

/* ═══════════════════════════════════════════════════════════════
   UNIFIED INTERACTIVE ELEMENTS (2026-04-19)
   Konsistente Smooth-Transition + Click-Press-Feedback für ALLE
   Tabs, Pills, Chips, interaktive Cards. Egal ob aus altem Stylesheet
   oder neuer polierter Klasse — alles fühlt sich gleich an.
   ═══════════════════════════════════════════════════════════════ */

/* Smooth Transition für alle Tab-/Pill-/Chip-Klassen */
.settings-tab,
.auftrag-tab,
.ang-det-tab,
.fzd-tab,
.est-tab,
.ivt-tab,
.ac-tab,
.det-tab,
.cycle-btn,
.abo-cycle-btn,
.auftr-status-pill,
.ang-status-pill,
.est-lang-chip,
.kun-th-sort,
.pt-nav-today,
.pt-nav-arrow,
.cal-nav-today,
.cal-nav-arrow,
.zt-week-nav-current,
.zt-week-nav-btn,
.bdk-portal-btn,
.fc .fc-button {
    transition: background-color 0.15s ease,
                color 0.15s ease,
                border-color 0.15s ease,
                box-shadow 0.18s ease,
                transform 0.1s ease !important;
}

/* Click-Press-Feedback (subtiler "Gedrückt"-Effekt) */
.btn:active,
.settings-tab:active,
.auftrag-tab:active,
.ang-det-tab:active,
.fzd-tab:active,
.est-tab:active,
.ivt-tab:active,
.cycle-btn:active,
.abo-cycle-btn:active,
.auftr-status-pill:active,
.ang-status-pill:active,
.est-lang-chip:active,
.bdk-portal-btn:active,
.fc .fc-button:active {
    transform: translateY(1px) !important;
}

/* Cursor pointer überall (manche Klassen haben es nicht explizit) */
.settings-tab,
.auftrag-tab,
.ang-det-tab,
.fzd-tab,
.est-tab,
.ivt-tab,
.cycle-btn,
.abo-cycle-btn,
.kun-th-sort {
    cursor: pointer;
}

/* Reduzierte Bewegung respektieren */
@media (prefers-reduced-motion: reduce) {
    .btn:active,
    .settings-tab:active,
    .auftrag-tab:active,
    .ang-det-tab:active,
    .fzd-tab:active,
    .est-tab:active,
    .ivt-tab:active,
    .cycle-btn:active,
    .abo-cycle-btn:active,
    .auftr-status-pill:active,
    .ang-status-pill:active,
    .est-lang-chip:active,
    .bdk-portal-btn:active,
    .fc .fc-button:active {
        transform: none !important;
    }
}

/* Buttons mit btn-Klasse: einheitlicher Active-Press inkl. Schatten-Reduktion */
.btn-primary:active,
.btn-success:active {
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12) !important;
}

/* Card-Hover-Effekte vereinheitlichen für alle interaktiven Cards */
.auftr-kpi-card,
.lag-kpi-card,
.fz-kpi-card,
.fzlg-kpi-card,
.kpi-card,
.bdk-entry-card,
.mat-mobile-card,
.lag-mobile-card,
.lf-mobile-card,
.fz-mobile-card,
.kun-mobile-card,
.lst-mobile-card,
.abw-mobile-card,
.ang-mobile-card,
.auftr-mobile-card,
.bdd-foto-tile,
.dom-step,
.abo-plan-card,
.ivt-look-option,
.ncm-type-pill {
    transition: box-shadow 0.18s ease,
                transform 0.18s ease,
                border-color 0.15s ease,
                background-color 0.15s ease !important;
}

/* Tipp/Status-Container mit hellem BG die im Dark-Mode angepasst werden müssen */
[data-theme="dark"] .lst-ampel-legend strong {
    color: var(--text-primary);
}

/* Heller weißer BG (z.B. KFZ-Plakette) — bewusst weiß lassen,
   weil das ein echtes Auto-Kennzeichen darstellt */
/* (KEINE Override für .fz-kennzeichen / .fz-mobile-kennzeichen) */

/* Toast-Container im Dark-Mode: Border-Left bleibt farbig, Hintergrund dunkel */
/* (toast-* hat schon var(--bg-surface) als BG, alles fine) */

/* "Erledigt"-Badges in Plantafel + Baudoku */
[data-theme="dark"] .erledigt-badge {
    background: rgba(74, 221, 138, 0.18);
    color: #6FE9A0;
}

/* ═══════════════════════════════════════════════════════════════════════════
   ✨ LISTEN-PREMIUM-POLISH (Sprint 1, 2026-04-21)
   Einheitliches Style-Upgrade für ALLE Tenant-Listen-Seiten gleichzeitig.
   Greift auf Prefixes: auftr-/ang-/kun-/mat-/lag-/fz-/lf-/lst-/abw- (und
   beliebige weitere *-kpi-card / *-row / *-table etc. Pattern).
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── KPI-Karten (Aufträge, Lager, Fahrzeuge, + alle die _-kpi-card nutzen) ── */
.auftr-kpi-card,
.lag-kpi-card,
.fz-kpi-card,
.mat-kpi-card,
.ang-kpi-card,
.kun-kpi-card,
.lf-kpi-card,
.lst-kpi-card,
.nwk-kpi-card,
.tpk-kpi-card,
.bdoku-kpi-card,
.sg-kpi-card,
.fzlg-kpi-card,
.kun-akt-kpi-card,
.ang-aw-kpi-card,
.tm-akt-kpi-card {
    position: relative;
    padding: 18px 20px !important;
    background:
        linear-gradient(135deg,
            var(--bg-surface) 0%,
            color-mix(in srgb, var(--bg-surface-2) 60%, var(--bg-surface)) 100%) !important;
    border: 1px solid var(--border) !important;
    border-left: 4px solid var(--kpi-accent, var(--primary)) !important;
    border-radius: 12px !important;
    box-shadow:
        0 1px 2px rgba(0,0,0,0.04),
        0 4px 12px rgba(0,0,0,0.05) !important;
    transition: transform 0.18s ease, box-shadow 0.2s ease, border-color 0.15s ease;
    overflow: hidden;
}
.auftr-kpi-card::before,
.lag-kpi-card::before,
.fz-kpi-card::before,
.mat-kpi-card::before,
.ang-kpi-card::before,
.kun-kpi-card::before,
.lf-kpi-card::before,
.lst-kpi-card::before,
.nwk-kpi-card::before,
.tpk-kpi-card::before,
.bdoku-kpi-card::before,
.sg-kpi-card::before,
.fzlg-kpi-card::before,
.kun-akt-kpi-card::before,
.ang-aw-kpi-card::before,
.tm-akt-kpi-card::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 110px;
    height: 110px;
    background: radial-gradient(circle at top right,
        color-mix(in srgb, var(--kpi-accent, var(--primary)) 12%, transparent) 0%,
        transparent 70%);
    pointer-events: none;
}
.auftr-kpi-card:hover,
.lag-kpi-card:hover,
.fz-kpi-card:hover,
.mat-kpi-card:hover,
.ang-kpi-card:hover,
.kun-kpi-card:hover,
.lf-kpi-card:hover,
.lst-kpi-card:hover,
.nwk-kpi-card:hover,
.tpk-kpi-card:hover,
.bdoku-kpi-card:hover,
.sg-kpi-card:hover,
.fzlg-kpi-card:hover,
.kun-akt-kpi-card:hover,
.ang-aw-kpi-card:hover,
.tm-akt-kpi-card:hover {
    transform: translateY(-3px);
    box-shadow:
        0 2px 4px rgba(0,0,0,0.06),
        0 10px 28px rgba(0,0,0,0.10) !important;
}
[data-theme="dark"] .auftr-kpi-card,
[data-theme="dark"] .lag-kpi-card,
[data-theme="dark"] .fz-kpi-card,
[data-theme="dark"] .mat-kpi-card,
[data-theme="dark"] .ang-kpi-card,
[data-theme="dark"] .kun-kpi-card,
[data-theme="dark"] .lf-kpi-card,
[data-theme="dark"] .lst-kpi-card,
[data-theme="dark"] .nwk-kpi-card,
[data-theme="dark"] .tpk-kpi-card,
[data-theme="dark"] .bdoku-kpi-card,
[data-theme="dark"] .sg-kpi-card,
[data-theme="dark"] .fzlg-kpi-card,
[data-theme="dark"] .kun-akt-kpi-card,
[data-theme="dark"] .ang-aw-kpi-card,
[data-theme="dark"] .tm-akt-kpi-card {
    box-shadow:
        0 1px 2px rgba(0,0,0,0.25),
        0 4px 16px rgba(0,0,0,0.3) !important;
}
[data-theme="dark"] .auftr-kpi-card:hover,
[data-theme="dark"] .lag-kpi-card:hover,
[data-theme="dark"] .fz-kpi-card:hover,
[data-theme="dark"] .mat-kpi-card:hover,
[data-theme="dark"] .ang-kpi-card:hover,
[data-theme="dark"] .kun-kpi-card:hover,
[data-theme="dark"] .lf-kpi-card:hover,
[data-theme="dark"] .lst-kpi-card:hover,
[data-theme="dark"] .nwk-kpi-card:hover,
[data-theme="dark"] .tpk-kpi-card:hover,
[data-theme="dark"] .bdoku-kpi-card:hover,
[data-theme="dark"] .sg-kpi-card:hover,
[data-theme="dark"] .fzlg-kpi-card:hover,
[data-theme="dark"] .kun-akt-kpi-card:hover,
[data-theme="dark"] .ang-aw-kpi-card:hover,
[data-theme="dark"] .tm-akt-kpi-card:hover {
    box-shadow:
        0 2px 6px rgba(0,0,0,0.35),
        0 12px 32px rgba(0,0,0,0.45) !important;
}

/* Pro Seite eigene Akzent-Farbe pro KPI-Position */
/* Aufträge: Offen (gold), InArbeit (blau), Abgeschlossen (grün), Umsatz (gold-tiefer) */
.auftr-kpi-grid > .auftr-kpi-card:nth-child(1) { --kpi-accent: #E5A23B; }
.auftr-kpi-grid > .auftr-kpi-card:nth-child(2) { --kpi-accent: #5B8BA6; }
.auftr-kpi-grid > .auftr-kpi-card:nth-child(3) { --kpi-accent: #2F9E6A; }
.auftr-kpi-grid > .auftr-kpi-card:nth-child(4) { --kpi-accent: var(--gold-accent); }
/* Angebote: Entwurf (grau), Gesendet (orange), Angenommen (gruen), Offenes Volumen (blau) */
.ang-kpi-grid > .ang-kpi-card:nth-child(1) { --kpi-accent: var(--text-muted); }
.ang-kpi-grid > .ang-kpi-card:nth-child(2) { --kpi-accent: var(--warning); }
.ang-kpi-grid > .ang-kpi-card:nth-child(3) { --kpi-accent: var(--success); }
.ang-kpi-grid > .ang-kpi-card:nth-child(4) { --kpi-accent: var(--primary); }
/* Lager, Fahrzeuge: ähnliche Logik per :nth-child */
.lag-kpi-grid > .lag-kpi-card:nth-child(1) { --kpi-accent: #5B8BA6; }
.lag-kpi-grid > .lag-kpi-card:nth-child(2) { --kpi-accent: #E5A23B; }
.lag-kpi-grid > .lag-kpi-card:nth-child(3) { --kpi-accent: var(--danger); }
.lag-kpi-grid > .lag-kpi-card:nth-child(4) { --kpi-accent: #2F9E6A; }
.fz-kpi-grid  > .fz-kpi-card:nth-child(1)  { --kpi-accent: #5B8BA6; }
.fz-kpi-grid  > .fz-kpi-card:nth-child(2)  { --kpi-accent: #2F9E6A; }
.fz-kpi-grid  > .fz-kpi-card:nth-child(3)  { --kpi-accent: #E5A23B; }
.fz-kpi-grid  > .fz-kpi-card:nth-child(4)  { --kpi-accent: var(--danger); }

/* KPI-Icons größer + Glow */
.auftr-kpi-icon,
.lag-kpi-icon,
.fz-kpi-icon,
.mat-kpi-icon,
.ang-kpi-icon,
.kun-kpi-icon,
.lf-kpi-icon,
.lst-kpi-icon,
.nwk-kpi-icon,
.tpk-kpi-icon,
.bdoku-kpi-icon,
.sg-kpi-icon,
.fzlg-kpi-icon,
.kun-akt-kpi-icon,
.ang-aw-kpi-icon,
.tm-akt-kpi-icon {
    width: 48px !important;
    height: 48px !important;
    border-radius: 12px !important;
    box-shadow: 0 2px 8px color-mix(in srgb, var(--kpi-accent, var(--primary)) 25%, transparent);
    background: color-mix(in srgb, var(--kpi-accent, var(--primary)) 18%, transparent) !important;
    color: var(--kpi-accent, var(--primary)) !important;
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
/* KPI-Werte fetter */
.auftr-kpi-value,
.lag-kpi-value,
.fz-kpi-value,
.mat-kpi-value,
.ang-kpi-value,
.kun-kpi-value,
.lf-kpi-value,
.lst-kpi-value,
.nwk-kpi-value,
.tpk-kpi-value,
.bdoku-kpi-value,
.sg-kpi-value,
.fzlg-kpi-value,
.kun-akt-kpi-value,
.ang-aw-kpi-value,
.tm-akt-kpi-value {
    font-size: 28px !important;
    font-weight: 800 !important;
    letter-spacing: -0.5px !important;
    position: relative;
    z-index: 1;
}
/* KPI-Labels uppercase + spacing */
.auftr-kpi-label,
.lag-kpi-label,
.fz-kpi-label,
.mat-kpi-label,
.ang-kpi-label,
.kun-kpi-label,
.lf-kpi-label,
.lst-kpi-label,
.nwk-kpi-label,
.tpk-kpi-label,
.bdoku-kpi-label,
.sg-kpi-label,
.fzlg-kpi-label,
.kun-akt-kpi-label,
.ang-aw-kpi-label,
.tm-akt-kpi-label {
    font-size: 11px !important;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    font-weight: 700 !important;
    color: var(--text-muted);
    position: relative;
    z-index: 1;
}

/* Premium-KPI-Body-Layout (Icon links + Value+Label rechts) — wiederverwendbar */
.ang-kpi-grid,
.nwk-kpi-grid,
.tpk-kpi-grid,
.bdoku-kpi-grid,
.sg-kpi-grid,
.ang-aw-kpi-grid,
.fzlg-kpi-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}
.ang-kpi-card,
.nwk-kpi-card,
.tpk-kpi-card,
.bdoku-kpi-card,
.sg-kpi-card,
.ang-aw-kpi-card,
.fzlg-kpi-card {
    display: flex;
    align-items: center;
    gap: 14px;
    text-decoration: none;
    color: inherit;
}
.ang-kpi-body,
.nwk-kpi-body,
.tpk-kpi-body,
.bdoku-kpi-body,
.sg-kpi-body,
.ang-aw-kpi-body,
.fzlg-kpi-body {
    flex: 1;
    min-width: 0;
    position: relative;
    z-index: 1;
}
.nwk-kpi-sublabel,
.tpk-kpi-sublabel,
.bdoku-kpi-sublabel,
.sg-kpi-sublabel,
.ang-aw-kpi-sublabel,
.fzlg-kpi-sublabel {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 2px;
    line-height: 1.35;
    position: relative;
    z-index: 1;
}

/* ── Status-Pill-Bars (Aufträge, Angebote): Recess-Effekt ── */
.auftr-status-pills,
.ang-status-pills {
    background: var(--bg-surface-2) !important;
    box-shadow: inset 0 1px 3px rgba(0,0,0,0.05);
    border: 1px solid var(--border);
}
[data-theme="dark"] .auftr-status-pills,
[data-theme="dark"] .ang-status-pills {
    box-shadow: inset 0 1px 3px rgba(0,0,0,0.3);
}
.auftr-status-pill-active,
.ang-status-pill-active {
    box-shadow:
        0 2px 6px color-mix(in srgb, var(--pill-color) 40%, transparent),
        0 4px 14px color-mix(in srgb, var(--pill-color) 20%, transparent) !important;
    transform: translateY(-1px);
}

/* ── Tabellen-Zeilen: Hover-Lift + Left-Accent (inset shadow) + Zebra ──
   WICHTIG: KEIN ::before auf <tr> — das wird vom Browser als Phantom-Table-Cell
   behandelt und verschiebt alle <td> um 1 Spalte nach rechts!
   Lösung: Left-Accent via box-shadow: inset rendern (kein Layout-Einfluss). */
.auftr-row,
.ang-row,
.kun-row,
.mat-row,
.lag-row,
.fz-row,
.lf-row,
.lst-row,
.abw-row,
.bdoku-row,
.fzlg-row,
.kun-akt-row,
.tm-akt-row,
.eckat-row,
.ecprod-row,
.eclag-row {
    transition: background 0.18s ease, box-shadow 0.2s ease;
}
.auftr-row:hover,
.ang-row:hover,
.kun-row:hover,
.mat-row:hover,
.lag-row:hover,
.fz-row:hover,
.lf-row:hover,
.lst-row:hover,
.abw-row:hover,
.bdoku-row:hover,
.fzlg-row:hover,
.kun-akt-row:hover,
.tm-akt-row:hover,
.eckat-row:hover,
.ecprod-row:hover,
.eclag-row:hover {
    background: color-mix(in srgb, var(--primary) 5%, var(--bg-surface)) !important;
    box-shadow: inset 3px 0 0 var(--primary), 0 2px 10px rgba(0,0,0,0.06);
    position: relative;
    z-index: 2;
}
[data-theme="dark"] .auftr-row:hover,
[data-theme="dark"] .ang-row:hover,
[data-theme="dark"] .kun-row:hover,
[data-theme="dark"] .mat-row:hover,
[data-theme="dark"] .lag-row:hover,
[data-theme="dark"] .fz-row:hover,
[data-theme="dark"] .lf-row:hover,
[data-theme="dark"] .lst-row:hover,
[data-theme="dark"] .abw-row:hover,
[data-theme="dark"] .bdoku-row:hover,
[data-theme="dark"] .fzlg-row:hover,
[data-theme="dark"] .kun-akt-row:hover,
[data-theme="dark"] .tm-akt-row:hover,
[data-theme="dark"] .eckat-row:hover,
[data-theme="dark"] .ecprod-row:hover,
[data-theme="dark"] .eclag-row:hover {
    background: color-mix(in srgb, var(--primary) 8%, var(--bg-surface)) !important;
    box-shadow: inset 3px 0 0 var(--primary), 0 2px 14px rgba(0,0,0,0.35);
}
/* Subtile Zebra-Streifen (jede 2. Zeile) */
.auftr-table tbody > tr.auftr-row:nth-child(even):not(:hover),
.ang-table   tbody > tr.ang-row:nth-child(even):not(:hover),
.kun-table   tbody > tr.kun-row:nth-child(even):not(:hover),
.mat-table   tbody > tr.mat-row:nth-child(even):not(:hover),
.lag-table   tbody > tr.lag-row:nth-child(even):not(:hover),
.fz-table    tbody > tr.fz-row:nth-child(even):not(:hover),
.lf-table    tbody > tr.lf-row:nth-child(even):not(:hover),
.lst-table   tbody > tr.lst-row:nth-child(even):not(:hover),
.abw-table   tbody > tr.abw-row:nth-child(even):not(:hover),
.bdoku-table tbody > tr.bdoku-row:nth-child(even):not(:hover),
.fzlg-table  tbody > tr.fzlg-row:nth-child(even):not(:hover),
.kun-akt-table tbody > tr.kun-akt-row:nth-child(even):not(:hover),
.tm-akt-table tbody > tr.tm-akt-row:nth-child(even):not(:hover),
.eckat-table tbody > tr.eckat-row:nth-child(even):not(:hover),
.ecprod-table tbody > tr.ecprod-row:nth-child(even):not(:hover),
.eclag-table tbody > tr.eclag-row:nth-child(even):not(:hover) {
    background: color-mix(in srgb, var(--text-primary) 2%, transparent);
}
[data-theme="dark"] .auftr-table tbody > tr.auftr-row:nth-child(even):not(:hover),
[data-theme="dark"] .ang-table   tbody > tr.ang-row:nth-child(even):not(:hover),
[data-theme="dark"] .kun-table   tbody > tr.kun-row:nth-child(even):not(:hover),
[data-theme="dark"] .mat-table   tbody > tr.mat-row:nth-child(even):not(:hover),
[data-theme="dark"] .lag-table   tbody > tr.lag-row:nth-child(even):not(:hover),
[data-theme="dark"] .fz-table    tbody > tr.fz-row:nth-child(even):not(:hover),
[data-theme="dark"] .lf-table    tbody > tr.lf-row:nth-child(even):not(:hover),
[data-theme="dark"] .lst-table   tbody > tr.lst-row:nth-child(even):not(:hover),
[data-theme="dark"] .abw-table   tbody > tr.abw-row:nth-child(even):not(:hover),
[data-theme="dark"] .bdoku-table tbody > tr.bdoku-row:nth-child(even):not(:hover),
[data-theme="dark"] .fzlg-table  tbody > tr.fzlg-row:nth-child(even):not(:hover),
[data-theme="dark"] .kun-akt-table tbody > tr.kun-akt-row:nth-child(even):not(:hover),
[data-theme="dark"] .tm-akt-table tbody > tr.tm-akt-row:nth-child(even):not(:hover),
[data-theme="dark"] .eckat-table tbody > tr.eckat-row:nth-child(even):not(:hover),
[data-theme="dark"] .ecprod-table tbody > tr.ecprod-row:nth-child(even):not(:hover),
[data-theme="dark"] .eclag-table tbody > tr.eclag-row:nth-child(even):not(:hover) {
    background: rgba(255,255,255,0.015);
}

/* ── Chevron: Animation bei Row-Hover ── */
.auftr-chevron,
.ang-chevron,
.kun-chevron,
.mat-chevron,
.lag-chevron,
.fz-chevron,
.lf-chevron,
.lst-chevron,
.bdoku-chevron,
.fzlg-chevron,
.eckat-chevron,
.ecprod-chevron,
.eclag-chevron {
    transition: transform 0.2s ease, background 0.15s, color 0.15s, box-shadow 0.18s;
}
.auftr-row:hover .auftr-chevron,
.ang-row:hover .ang-chevron,
.kun-row:hover .kun-chevron,
.mat-row:hover .mat-chevron,
.lag-row:hover .lag-chevron,
.fz-row:hover .fz-chevron,
.lf-row:hover .lf-chevron,
.lst-row:hover .lst-chevron,
.bdoku-row:hover .bdoku-chevron,
.fzlg-row:hover .fzlg-chevron,
.eckat-row:hover .eckat-chevron,
.ecprod-row:hover .ecprod-chevron,
.eclag-row:hover .eclag-chevron {
    transform: translateX(3px);
    background: var(--primary);
    color: var(--text-on-accent);
    box-shadow: 0 3px 8px color-mix(in srgb, var(--primary) 40%, transparent);
}

/* ── Table-Header: Sticky + Shadow-Trennung ── */
.auftr-table thead th,
.ang-table thead th,
.kun-table thead th,
.mat-table thead th,
.lag-table thead th,
.fz-table thead th,
.lf-table thead th,
.lst-table thead th,
.abw-table thead th,
.bdoku-table thead th,
.fzlg-table thead th,
.kun-akt-table thead th,
.tm-akt-table thead th,
.eckat-table thead th,
.ecprod-table thead th,
.eclag-table thead th {
    background: var(--bg-surface-2);
    position: sticky;
    top: 0;
    z-index: 3;
    border-bottom: 2px solid var(--border);
    box-shadow: 0 2px 4px rgba(0,0,0,0.03);
}
[data-theme="dark"] .auftr-table thead th,
[data-theme="dark"] .ang-table thead th,
[data-theme="dark"] .kun-table thead th,
[data-theme="dark"] .mat-table thead th,
[data-theme="dark"] .lag-table thead th,
[data-theme="dark"] .fz-table thead th,
[data-theme="dark"] .lf-table thead th,
[data-theme="dark"] .lst-table thead th,
[data-theme="dark"] .abw-table thead th,
[data-theme="dark"] .fzlg-table thead th {
    box-shadow: 0 2px 8px rgba(0,0,0,0.25);
}

/* ── Status-Badges in Tabellen: Outline-Border + uppercase ── */
.auftr-table .auftr-status,
.ang-table .ang-status {
    padding: 5px 12px !important;
    font-size: 10.5px !important;
    letter-spacing: 0.4px !important;
    text-transform: uppercase;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
    border: 1px solid transparent;
}
/* Aufträge Status-Varianten */
.auftr-table .auftr-status-offen      { border-color: color-mix(in srgb, #E5A23B 35%, transparent); }
.auftr-table .auftr-status-beauftragt { border-color: color-mix(in srgb, var(--primary) 35%, transparent); }
.auftr-table .auftr-status-inarbeit   { border-color: color-mix(in srgb, #5B8BA6 40%, transparent); }
.auftr-table .auftr-status-done       { border-color: color-mix(in srgb, #2F9E6A 40%, transparent); }
.auftr-table .auftr-status-storno     { border-color: color-mix(in srgb, #999 30%, transparent); }
/* Angebote Status-Varianten */
.ang-table .ang-status-entwurf     { border: 1px solid color-mix(in srgb, #999 35%, transparent); }
.ang-table .ang-status-gesendet    { border: 1px solid color-mix(in srgb, var(--primary) 35%, transparent); }
.ang-table .ang-status-angenommen  { border: 1px solid color-mix(in srgb, #2F9E6A 40%, transparent); }
.ang-table .ang-status-abgelehnt   { border: 1px solid color-mix(in srgb, var(--danger) 40%, transparent); }
.ang-table .ang-status-abgelaufen  { border: 1px solid color-mix(in srgb, #E5A23B 40%, transparent); }

/* ── Priorität (nur Aufträge): Glow ── */
.auftr-table .auftr-prio {
    font-size: 12.5px !important;
    font-weight: 700 !important;
}
.auftr-table .auftr-prio svg {
    filter: drop-shadow(0 0 4px currentColor);
}

/* ── Plantafel-Badges (Aufträge): Tiefe ── */
.auftr-table .auftr-pt {
    padding: 4px 11px !important;
    font-size: 11.5px !important;
    border: 1px solid transparent;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
}
.auftr-table .auftr-pt-teil       { border-color: color-mix(in srgb, #E5A23B 35%, transparent); }
.auftr-table .auftr-pt-voll       { border-color: color-mix(in srgb, #2F9E6A 40%, transparent); }
.auftr-table .auftr-pt-ueberplant { border-color: color-mix(in srgb, var(--danger) 40%, transparent); }
.auftr-table .auftr-pt-ohnedauer  { border-color: color-mix(in srgb, #5B8BA6 40%, transparent); }

/* ── Mängel-Badge (Aufträge) ── */
.auftr-table .auftr-mangel:not(.auftr-mangel-none) {
    border-radius: 100px;
    padding: 4px 11px;
    border: 1px solid transparent;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
}
.auftr-table .auftr-mangel-offen    { border-color: color-mix(in srgb, #E5A23B 35%, transparent); }
.auftr-table .auftr-mangel-dringend { border-color: color-mix(in srgb, var(--danger) 45%, transparent); }

/* ── Toolbar-Titel: etwas größer und tight ── */
.auftr-toolbar-title,
.ang-toolbar-title,
.kun-toolbar-title,
.mat-toolbar-title,
.lag-toolbar-title,
.fz-toolbar-title,
.lf-toolbar-title,
.lst-toolbar-title {
    font-size: 20px !important;
    letter-spacing: -0.3px !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   Sprint 2.1 — Premium-Polish auch für generische Listen (Mängel, GAEB,
   Vorlagen, Baudoku) und weitere Spezial-Strukturen.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Mängelregister KPI-Cards (dedizierte mg-* Klassen) ── */
.mg-kpi-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 14px;
    margin-bottom: 20px;
}
.mg-kpi-card {
    position: relative;
    padding: 18px 20px;
    background: linear-gradient(135deg,
        var(--bg-surface) 0%,
        color-mix(in srgb, var(--bg-surface-2) 60%, var(--bg-surface)) 100%);
    border: 1px solid var(--border);
    border-left: 4px solid var(--kpi-accent, var(--primary));
    border-radius: 12px;
    display: flex;
    align-items: center;
    gap: 12px;
    box-shadow:
        0 1px 2px rgba(0,0,0,0.04),
        0 4px 12px rgba(0,0,0,0.05);
    transition: transform 0.18s ease, box-shadow 0.2s ease;
    overflow: hidden;
}
.mg-kpi-card::before {
    content: "";
    position: absolute;
    top: 0; right: 0;
    width: 110px; height: 110px;
    background: radial-gradient(circle at top right,
        color-mix(in srgb, var(--kpi-accent, var(--primary)) 12%, transparent) 0%,
        transparent 70%);
    pointer-events: none;
}
.mg-kpi-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 2px 4px rgba(0,0,0,0.06), 0 10px 28px rgba(0,0,0,0.10);
}
[data-theme="dark"] .mg-kpi-card {
    box-shadow: 0 1px 2px rgba(0,0,0,0.25), 0 4px 16px rgba(0,0,0,0.3);
}
[data-theme="dark"] .mg-kpi-card:hover {
    box-shadow: 0 2px 6px rgba(0,0,0,0.35), 0 12px 32px rgba(0,0,0,0.45);
}
.mg-kpi-icon {
    width: var(--space-2xl); height: var(--space-2xl);
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: color-mix(in srgb, var(--kpi-accent, var(--primary)) 18%, transparent);
    color: var(--kpi-accent, var(--primary));
    box-shadow: 0 2px 8px color-mix(in srgb, var(--kpi-accent, var(--primary)) 25%, transparent);
    position: relative;
    z-index: 1;
    flex-shrink: 0;
}
.mg-kpi-body { position: relative; z-index: 1; min-width: 0; }
.mg-kpi-value {
    font-size: 28px;
    font-weight: 800;
    letter-spacing: -0.5px;
    color: var(--kpi-accent, var(--text-primary));
    line-height: 1.1;
}
.mg-kpi-label {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    font-weight: 700;
    color: var(--text-muted);
    margin-top: 2px;
}
.mg-kpi-offen       { --kpi-accent: var(--danger); }
.mg-kpi-inbehebung  { --kpi-accent: #E5A23B; }
.mg-kpi-behoben     { --kpi-accent: #5B8BA6; }
.mg-kpi-akzeptiert  { --kpi-accent: #2F9E6A; }
.mg-kpi-dringend    { --kpi-accent: var(--danger); }
.mg-kpi-dringend .mg-kpi-icon {
    animation: mg-pulse 2s ease-in-out infinite;
}
@keyframes mg-pulse {
    0%, 100% { box-shadow: 0 2px 8px color-mix(in srgb, var(--danger) 25%, transparent); }
    50% { box-shadow: 0 2px 16px color-mix(in srgb, var(--danger) 50%, transparent); }
}

/* ── Generische Tabellen (Mängel, GAEB, Auftrag-Vorlagen) ── */
.card > .table-wrap table tbody tr,
.card > table tbody tr,
table.data-table tbody tr {
    position: relative;
    transition: background 0.18s ease, box-shadow 0.2s ease;
}
.card > .table-wrap table tbody tr:hover:not(.no-hover),
.card > table tbody tr:hover:not(.no-hover),
table.data-table tbody tr:hover:not(.no-hover) {
    background: color-mix(in srgb, var(--primary) 4%, var(--bg-surface));
    box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
[data-theme="dark"] .card > .table-wrap table tbody tr:hover:not(.no-hover),
[data-theme="dark"] .card > table tbody tr:hover:not(.no-hover),
[data-theme="dark"] table.data-table tbody tr:hover:not(.no-hover) {
    background: color-mix(in srgb, var(--primary) 7%, var(--bg-surface));
}

/* ── Baudoku-Entries als Premium-Karten ── */
.bdk-entry-card {
    position: relative;
    background: linear-gradient(135deg,
        var(--bg-surface) 0%,
        color-mix(in srgb, var(--bg-surface-2) 50%, var(--bg-surface)) 100%);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 16px 18px;
    margin-bottom: 12px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
    transition: transform 0.18s ease, box-shadow 0.2s ease, border-color 0.15s ease;
}
.bdk-entry-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(0,0,0,0.08);
    border-color: color-mix(in srgb, var(--primary) 40%, var(--border));
}
[data-theme="dark"] .bdk-entry-card {
    box-shadow: 0 2px 8px rgba(0,0,0,0.25);
}
[data-theme="dark"] .bdk-entry-card:hover {
    box-shadow: 0 6px 20px rgba(0,0,0,0.4);
}

/* ── Baudoku Quota-Card + Entry-Badge Styling ── */
.bdk-quota-card {
    background: color-mix(in srgb, var(--primary) 6%, var(--bg-surface));
    border: 1px solid color-mix(in srgb, var(--primary) 30%, var(--border));
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}

/* ═══════════════════════════════════════════════════════════════════════════
   Sprint 2.2 — Premium-Polish für Spezial-Übersichten
   Generische .kpi-* (Transport), .ac-* (Aufmaß-Center), .card[href] (Netzwerk)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Generische KPI-Cards (Transport-Marktplatz, Transport-Historie, ...) ── */
.kpi-grid > .kpi-card {
    position: relative;
    padding: 18px 20px;
    background: linear-gradient(135deg,
        var(--bg-surface) 0%,
        color-mix(in srgb, var(--bg-surface-2) 60%, var(--bg-surface)) 100%);
    border: 1px solid var(--border);
    border-left: 4px solid var(--kpi-accent, var(--primary));
    border-radius: 12px;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04), 0 4px 12px rgba(0,0,0,0.05);
    transition: transform 0.18s ease, box-shadow 0.2s ease;
    overflow: hidden;
}
.kpi-grid > .kpi-card::before {
    content: "";
    position: absolute;
    top: 0; right: 0;
    width: 110px; height: 110px;
    background: radial-gradient(circle at top right,
        color-mix(in srgb, var(--kpi-accent, var(--primary)) 12%, transparent) 0%,
        transparent 70%);
    pointer-events: none;
}
.kpi-grid > .kpi-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 2px 4px rgba(0,0,0,0.06), 0 10px 28px rgba(0,0,0,0.10);
}
[data-theme="dark"] .kpi-grid > .kpi-card {
    box-shadow: 0 1px 2px rgba(0,0,0,0.25), 0 4px 16px rgba(0,0,0,0.3);
}
[data-theme="dark"] .kpi-grid > .kpi-card:hover {
    box-shadow: 0 2px 6px rgba(0,0,0,0.35), 0 12px 32px rgba(0,0,0,0.45);
}
.kpi-grid > .kpi-card .kpi-value {
    font-size: 28px;
    font-weight: 800;
    letter-spacing: -0.5px;
    position: relative;
    z-index: 1;
}
.kpi-grid > .kpi-card .kpi-label {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    font-weight: 700;
    color: var(--text-muted);
    position: relative;
    z-index: 1;
}

/* ── .table-wrapper (Netzwerk-Kontakte Variante) ── */
.table-wrapper table tbody tr {
    position: relative;
    transition: background 0.18s ease, box-shadow 0.2s ease;
}
.table-wrapper table tbody tr:hover:not(.no-hover) {
    background: color-mix(in srgb, var(--primary) 4%, var(--bg-surface));
    box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
[data-theme="dark"] .table-wrapper table tbody tr:hover:not(.no-hover) {
    background: color-mix(in srgb, var(--primary) 7%, var(--bg-surface));
}

/* ── Aufmaß-Center Panels mit Premium-Shadow ── */
.ac-panel {
    background: linear-gradient(135deg,
        var(--bg-surface) 0%,
        color-mix(in srgb, var(--bg-surface-2) 40%, var(--bg-surface)) 100%);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 18px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.04);
    transition: border-color 0.15s, box-shadow 0.18s;
}
.ac-panel:hover {
    border-color: color-mix(in srgb, var(--primary) 30%, var(--border));
    box-shadow: 0 4px 16px rgba(0,0,0,0.06);
}
[data-theme="dark"] .ac-panel {
    box-shadow: 0 2px 10px rgba(0,0,0,0.25);
}
[data-theme="dark"] .ac-panel:hover {
    box-shadow: 0 4px 18px rgba(0,0,0,0.35);
}
.ac-shape {
    border: 2px solid var(--border);
    border-radius: 10px;
    padding: 12px;
    cursor: pointer;
    transition: transform 0.15s, border-color 0.15s, box-shadow 0.18s;
    background: var(--bg-surface);
}
.ac-shape:hover {
    transform: translateY(-2px);
    border-color: var(--primary);
    box-shadow: 0 4px 12px color-mix(in srgb, var(--primary) 20%, transparent);
}
.ac-sum-bar {
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--primary) 8%, var(--bg-surface)) 0%,
        color-mix(in srgb, var(--primary) 4%, var(--bg-surface)) 100%);
    border: 1px solid color-mix(in srgb, var(--primary) 30%, var(--border));
    border-radius: 10px;
    box-shadow: 0 2px 8px color-mix(in srgb, var(--primary) 12%, transparent);
}

/* ── Netzwerk-Filter-Cards (.card mit href auf /admin/netzwerk) ── */
a.card[href*="/netzwerk"] {
    transition: transform 0.18s ease, box-shadow 0.2s ease, border-color 0.15s;
}
a.card[href*="/netzwerk"]:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 18px rgba(0,0,0,0.08);
    border-color: color-mix(in srgb, var(--primary) 35%, var(--border));
}
[data-theme="dark"] a.card[href*="/netzwerk"]:hover {
    box-shadow: 0 6px 20px rgba(0,0,0,0.4);
}

/* Light-Mode Fix für "fast weißer" weißer Plakette/Hash-Code (kein Override nötig) */

/* ════════════════════════════════════════════════════════════════════════
   Breadcrumb-Komponente (Y2 + Update 2026-04-21)
   Verwendung: {% from 'includes/breadcrumb.html' import breadcrumb %}
   Style angeglichen an Platform-Admin (.pf-breadcrumb) — dezenter,
   kompakter, Unicode-Chevron-Separator.
   ════════════════════════════════════════════════════════════════════════ */
.bl-breadcrumb {
    margin: 0 0 20px 0;
}
.bl-breadcrumb-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-xs);
    font-size: 13px;
    line-height: 1.4;
}
.bl-bc-item {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-width: 0;
}
.bl-bc-link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: var(--text-muted);
    text-decoration: none;
    padding: 4px var(--space-sm);
    border-radius: 6px;
    transition: background-color 0.15s ease, color 0.15s ease;
    white-space: nowrap;
    max-width: 280px;
    overflow: hidden;
    text-overflow: ellipsis;
}
.bl-bc-link:hover {
    color: var(--text-primary);
    background: var(--bg-surface-2);
}
.bl-bc-link:active {
    transform: translateY(1px);
}
.bl-bc-current {
    color: var(--text-primary);
    font-weight: 600;
    padding: 4px var(--space-sm);
    max-width: 360px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.bl-bc-icon {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    color: inherit;
}
.bl-bc-sep {
    display: inline-flex;
    align-items: center;
    color: var(--text-muted);
    opacity: 0.5;
    flex-shrink: 0;
    font-size: 11px;
    padding: 0 2px;
}

@media (max-width: 640px) {
    .bl-breadcrumb-list { font-size: 12px; gap: 3px; }
    .bl-bc-link, .bl-bc-current { padding: 3px 6px; max-width: 160px; }
    /* Auf Mobile alle Items außer dem letzten + dem vorletzten ausblenden */
    .bl-bc-item:not(.bl-bc-current):not(:nth-last-child(3)),
    .bl-bc-sep:not(:nth-last-child(2)) {
        display: none;
    }
    /* Statt verstecktem Pfad: Ein „..."-Indikator */
    .bl-bc-item:nth-last-child(3) + .bl-bc-sep {
        display: inline-flex;
    }
}

/* ════════════════════════════════════════════════════════════════════════
   Loading-Skeletons (Z2 — 2026-04-20)
   Verwendung:
     <div class="skel skel-line"></div>
     <div class="skel skel-box" style="height:120px;"></div>
     <span class="skel skel-circle" style="width:40px;height:40px;"></span>
   Vorgefertigte Karten-Skeletons:
     <div class="skel-card"> ... </div>
   Per JS toggeln: element.classList.add('skel-active') / remove(...)
   prefers-reduced-motion respektiert.
   ════════════════════════════════════════════════════════════════════════ */
.skel {
    position: relative;
    overflow: hidden;
    background: color-mix(in srgb, var(--text-muted) 14%, var(--bg-surface-2));
    border-radius: 6px;
    display: block;
}
.skel::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        90deg,
        transparent 0,
        color-mix(in srgb, var(--text-muted) 10%, transparent) 50%,
        transparent 100%
    );
    transform: translateX(-100%);
    animation: skel-shimmer 1.4s ease-in-out infinite;
}
@keyframes skel-shimmer {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(100%); }
}
.skel-line {
    height: 12px;
    margin-bottom: var(--space-sm);
    border-radius: var(--space-xs);
}
.skel-line-sm { height: 10px; }
.skel-line-lg { height: var(--space-md); }
.skel-line:last-child { margin-bottom: 0; }

/* Variabel-breite Zeilen für natürlicheres Aussehen */
.skel-line[data-w="40"] { width: 40%; }
.skel-line[data-w="50"] { width: 50%; }
.skel-line[data-w="60"] { width: 60%; }
.skel-line[data-w="70"] { width: 70%; }
.skel-line[data-w="80"] { width: 80%; }
.skel-line[data-w="90"] { width: 90%; }

.skel-box {
    width: 100%;
    border-radius: var(--space-sm);
    min-height: 60px;
}
.skel-circle {
    border-radius: 50%;
    flex-shrink: 0;
}
.skel-pill {
    height: 22px;
    width: 80px;
    border-radius: 999px;
    display: inline-block;
}
.skel-btn {
    height: 36px;
    width: 110px;
    border-radius: 7px;
    display: inline-block;
}

/* Vorgefertigte Karten-Skeletons */
.skel-card {
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 16px 18px;
    margin-bottom: 12px;
}
.skel-card-row {
    display: flex;
    align-items: center;
    gap: 12px;
}
.skel-card-row + .skel-card-row { margin-top: 12px; }

/* Skeleton mit Avatar + 2 Zeilen rechts */
.skel-list-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    border-bottom: 1px solid var(--border);
}
.skel-list-item:last-child { border-bottom: none; }

/* Sichtbarkeits-Toggle: Container .skel-host hat zwei Kinder, eines mit
   .skel-content, eines mit .skel-state. Ohne .skel-loading wird state
   ausgeblendet, mit zeigt es. */
[data-skel-state="loading"] .skel-content,
.skel-host:not(.skel-active) .skel-state {
    display: none;
}
.skel-host.skel-active .skel-content { display: none; }
.skel-host.skel-active .skel-state { display: block; }

/* Inline-Skeleton für KI-Chat: 3 wachsende Punkte */
.skel-typing {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    padding: 8px 14px;
    background: color-mix(in srgb, var(--text-muted) 10%, var(--bg-surface-2));
    border-radius: 14px;
}
.skel-typing span {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--text-muted);
    opacity: 0.6;
    animation: skel-typing-bounce 1.2s ease-in-out infinite;
}
.skel-typing span:nth-child(2) { animation-delay: 0.15s; }
.skel-typing span:nth-child(3) { animation-delay: 0.3s; }
@keyframes skel-typing-bounce {
    0%, 60%, 100% { transform: translateY(0); opacity: 0.4; }
    30% { transform: translateY(-3px); opacity: 1; }
}

/* Spezielles Skeleton für KI-Position-Generator */
.skel-position-card {
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-left: 3px solid color-mix(in srgb, var(--primary) 40%, transparent);
    border-radius: var(--space-sm);
    padding: 14px var(--space-md);
    margin-bottom: 10px;
}

/* Reduced-Motion: Animation deaktivieren */
@media (prefers-reduced-motion: reduce) {
    .skel::after { animation: none; }
    .skel-typing span { animation: none; opacity: 0.6; }
}

/* ════════════════════════════════════════════════════════════════════════
   Phase A.1 (2026-05-05): base.html Komponenten
   Ersetzt 41 Inline-Styles in app/templates/base.html durch wiederverwend-
   bare Klassen. Bewahrt JS-Logik (Element-IDs unveraendert, JS-Style-
   Manipulationen wie .style.display='flex'/'none' funktionieren weiter
   weil Inline-Styles der display-Property ueber CSS-Regeln Vorrang haben).
   ════════════════════════════════════════════════════════════════════════ */

/* ── Sidebar Sub-Komponenten ───────────────────────── */
.sidebar-support-link {
    display: flex;
    align-items: center;
    gap: 6px;
}

.sidebar-support-badge {
    background: var(--warning);
    color: var(--text-on-accent);
    font-size: 10px;
    padding: 1px 6px;
    border-radius: 10px;
    margin-left: auto;
}

.sidebar-app-install-trigger {
    display: block;
    width: 100%;
    padding: 8px 12px;
    margin-bottom: var(--space-sm);
    background: var(--bg-sidebar-hover);
    border: 1px solid var(--bg-sidebar-active);
    border-radius: 6px;
    color: var(--text-sidebar);
    font-size: 12px;
    cursor: pointer;
    text-align: left;
}

/* ── Header Push-Notification-Bell ─────────────────── */
.header-actions {
    display: flex;
    align-items: center;
    gap: 12px;
}

.push-bell {
    position: relative;
    background: none;
    border: none;
    cursor: pointer;
    padding: var(--space-xs);
    color: var(--text-muted);
}

.push-bell-badge {
    /* JS toggelt via .style.display = 'block' / 'none' */
    display: none;
    position: absolute;
    top: -2px;
    right: -2px;
    width: 10px;
    height: 10px;
    background: var(--danger);
    border-radius: 50%;
    border: 2px solid var(--white);
}

/* ── App-Install-Modal ─────────────────────────────── */
.app-install-modal {
    /* JS toggelt via .style.display = 'flex' / 'none' */
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.7);
    z-index: 9999;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.app-install-modal-card {
    background: var(--bg-surface);
    color: var(--text-primary);
    border-radius: 12px;
    padding: var(--space-lg);
    max-width: 520px;
    width: 100%;
    max-height: 90vh;
    overflow-y: auto;
    box-shadow: var(--shadow-lg);
}

.app-install-modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--space-md);
}

.app-install-modal-title {
    margin: 0;
    font-size: 18px;
}

.app-install-modal-close {
    background: none;
    border: none;
    font-size: var(--space-lg);
    cursor: pointer;
    color: var(--text-muted);
    line-height: 1;
}

.app-install-modal-lead {
    color: var(--text-secondary);
    margin-bottom: var(--space-md);
    font-size: 14px;
}

.app-install-details {
    margin-bottom: 12px;
    background: var(--bg-surface-2);
    border-radius: var(--space-sm);
    padding: 14px;
}

.app-install-details:last-of-type {
    margin-bottom: 0;
}

.app-install-details-summary {
    cursor: pointer;
    font-weight: 600;
    font-size: 14px;
    list-style: none;
    display: flex;
    align-items: center;
    gap: var(--space-sm);
}

.app-install-details-list {
    margin: 12px 0 0 20px;
    font-size: 13px;
    line-height: 1.8;
    color: var(--text-secondary);
}

.app-install-details-note {
    font-size: 12px;
    color: var(--text-muted);
    margin-top: var(--space-sm);
}

/* ── Banner-System (Trial / Firmendaten / 2FA / Recovery-Codes) ──
   Marco-Regel #20: Akzent ueber CSS-Custom-Property --banner-accent.
   Modifier-Klassen oder dynamischer Inline-Style fuer Tenant-spezifische
   Trial-Farbe (z.B. style="--banner-accent: var(--brand-orange);"). */
.banner {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 18px;
    margin-bottom: 18px;
    background: color-mix(in srgb, var(--banner-accent) 14%, var(--bg-surface));
    border: 1px solid color-mix(in srgb, var(--banner-accent) 40%, transparent);
    border-left: 4px solid var(--banner-accent);
    border-radius: 10px;
    font-size: 13px;
    line-height: 1.5;
    color: var(--text-primary);
}

/* Sanftere Variante (Hinweis statt Warnung) — Firmendaten-Banner. */
.banner--soft {
    padding: 12px var(--space-md);
    background: color-mix(in srgb, var(--banner-accent) 8%, var(--bg-surface));
    border: 1px solid color-mix(in srgb, var(--banner-accent) 30%, transparent);
    border-left-width: 3px;
    border-radius: var(--space-sm);
    line-height: 1.55;
}

.banner--info     { --banner-accent: var(--info); }
.banner--warning  { --banner-accent: var(--warning); }
/* Trial-Banner setzt --banner-accent dynamisch via inline-style aus Jinja. */

.banner-icon {
    flex-shrink: 0;
    color: var(--banner-accent);
    display: inline-flex;
}

.banner-body {
    flex: 1;
    min-width: 0;
}

.banner-action {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 7px 14px;
    border-radius: 6px;
    background: var(--banner-accent);
    color: var(--text-on-accent);
    font-weight: 600;
    text-decoration: none;
    font-size: 12px;
    white-space: nowrap;
}

.banner-dismiss {
    flex-shrink: 0;
    background: transparent;
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 7px 11px;
    color: var(--text-muted);
    cursor: pointer;
    font-size: 12px;
    font-family: inherit;
}

.banner-soft-note {
    font-size: 11px;
    color: var(--text-muted);
}

/* ════════════════════════════════════════════════════════════════════════
   Phase A.2 (2026-05-05): Auth-Komponenten
   Ersetzt 23 Inline-Styles in 6 Auth-Templates (login, login_2fa,
   passwort_vergessen, passwort_reset, einladung, verify_email_needed).
   Marco-Regel #20: hartcodierte Hex (#EBF2FF, #BBD4F5, #1A3F70, #6B6B7B,
   #7A7B8A) wurden ersetzt durch var(--info-bg), var(--brand-blue-dark),
   var(--text-muted) etc.
   ════════════════════════════════════════════════════════════════════════ */

/* Lead-Text in Auth-Forms (zentriert, sekundaer) */
.auth-lead {
    color: var(--text-secondary);
    font-size: 13px;
    line-height: 1.55;
    margin: 0 0 18px;
    text-align: center;
}

/* Standard-Link in Auth-Forms (kleiner, primary, kein Underline) */
.auth-link {
    color: var(--primary);
    font-size: 13px;
    text-decoration: none;
}

/* Zentrierter Container fuer Aktions-Links unter Form */
.auth-center-action {
    text-align: center;
    margin-top: 14px;
}

/* Variante mit groesserem Spacing (passwort_vergessen Bottom-Link) */
.auth-center-action--lg {
    text-align: center;
    margin-top: 20px;
}

/* .label-hint und .notice-info wurden nach helpers.css verschoben,
   damit sie auch von einladung.html (das admin.css nicht laedt) nutzbar sind. */

/* Password-Input mit Toggle-Eye-Button — extra padding-right */
.input-with-pw-toggle {
    padding-right: 44px;
}

/* Toggle-Eye-Button im Passwort-Feld (absolut positioniert) */
.password-toggle-btn {
    position: absolute;
    right: 12px;
    bottom: 2px;
    background: none;
    border: none;
    cursor: pointer;
    padding: var(--space-xs);
    color: var(--text-muted);
    line-height: 1;
}

/* 2FA-Code-Input (6-stellig, monospace, gross, gespreizt) */
.code-input {
    letter-spacing: 3px;
    text-align: center;
    font-family: 'SF Mono', Menlo, Consolas, monospace;
    font-size: 18px;
    text-transform: uppercase;
}

/* Submit-Button als Link gestylt (z.B. "Code erneut senden") */
.btn-as-link {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    font: inherit;
    color: var(--text-muted);
    font-size: 13px;
    text-decoration: none;
}

/* Vollwidth-CTA-Button mit Top-Margin (passwort_reset success-state) */
.btn-fullwidth-cta {
    width: 100%;
    justify-content: center;
    padding: 12px;
    text-decoration: none;
    margin-top: var(--space-md);
}

/* .notice-info siehe helpers.css — ueberall benoetigt (auch einladung.html). */

/* Zentrierter Hint-Text (z.B. verify-email "Mail im Spam?") */
.auth-hint-center {
    font-size: 13px;
    color: var(--text-muted);
    text-align: center;
    margin-bottom: 18px;
}

/* ════════════════════════════════════════════════════════════════════════
   Phase A.4 (2026-05-05): Includes-Komponenten
   Modal-System (generisch, fuer _termin_modal, hw_scan_modal,
   hw_katalog_picker, hw_new_customer_modal), Dynamic-Section,
   Pagination, Tool-Info.
   ════════════════════════════════════════════════════════════════════════ */

/* Generic Modal-Backdrop (display:none default — JS toggle) */
.modal-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.55);
    z-index: 9000;
    align-items: center;
    justify-content: center;
    padding: var(--space-md);
}

.modal-backdrop.is-open {
    display: flex;
}

.modal-card {
    background: var(--bg-surface);
    border-radius: 14px;
    max-width: 640px;
    width: 100%;
    max-height: 90vh;
    overflow-y: auto;
    box-shadow: var(--shadow-lg);
}

.modal-card--lg {
    max-width: 720px;
}

.modal-header {
    padding: 16px 20px;
    border-bottom: 1px solid var(--border);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.modal-title {
    margin: 0;
    font-size: var(--space-md);
}

.modal-close {
    background: transparent;
    border: none;
    font-size: 22px;
    cursor: pointer;
    color: var(--text-muted);
    line-height: 1;
}

.modal-form {
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.modal-section-divider {
    border-top: 1px solid var(--border);
    padding-top: 14px;
}

.modal-grid-2col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.modal-grid-3col {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 10px;
    margin-bottom: 10px;
}

.modal-grid-200-1fr {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 12px;
}

.modal-toggle-row {
    background: var(--bg-surface-2);
    border: 1px solid var(--border);
    border-radius: var(--space-sm);
    padding: 10px 12px;
}

.modal-toggle-label {
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
    font-size: 13px;
    cursor: pointer;
    font-weight: 600;
}

/* Termin-Type Color-Swatch (dynamic --typ-color via inline-style) */
.color-swatch-circle {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    border: 2px solid transparent;
    cursor: pointer;
    background: var(--typ-color, var(--primary));
    padding: 0;
    transition: transform .12s, border-color .12s;
}

.color-swatch-square {
    width: var(--space-xl);
    height: 26px;
    padding: 0;
    border: 1px solid var(--border);
    border-radius: 6px;
    cursor: pointer;
    background: transparent;
}

.textarea-resize-vertical {
    width: 100%;
    padding: 8px 10px;
    border: 1px solid var(--border);
    border-radius: var(--space-sm);
    font-family: inherit;
    font-size: 13px;
    background: var(--bg-surface);
    color: var(--text);
    resize: vertical;
}

/* Picker-Modal (hw_katalog_picker style) */
.picker-header {
    padding: 16px 20px;
    border-bottom: 1px solid var(--border-subtle);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.picker-search-row {
    padding: 12px 20px;
    border-bottom: 1px solid var(--border-subtle);
}

.picker-footer {
    padding: 10px 20px;
    border-top: 1px solid var(--border-subtle);
    background: var(--bg-surface-2);
    font-size: 11px;
    color: var(--text-muted);
}

.picker-empty-error {
    text-align: center;
    color: var(--danger);
    padding: 40px 0;
    font-size: 13px;
}

.picker-cell-mono-right {
    text-align: right;
    font-family: monospace;
    font-size: 12px;
}

/* Dynamic-Section (Tenant-Frontend) */
.dyn-section-empty {
    text-align: center;
    padding: 40px 20px;
}

.dyn-section-mt-24 {
    text-align: center;
    margin-top: var(--space-lg);
}

.dyn-section-link {
    color: var(--primary);
    font-size: 14px;
    text-decoration: none;
    font-weight: 500;
}

/* Progress-Bar Fill (dynamic --progress via inline-style) */
.progress-bar-fill {
    width: var(--progress, 0%);
    height: 100%;
    background: var(--primary);
    transition: width 0.3s;
}

.btn-w-full-12-15 {
    width: 100%;
    padding: 12px;
    font-size: 15px;
}

.btn-w-full-12-15-mt-10 {
    width: 100%;
    padding: 12px;
    font-size: 15px;
    margin-top: 10px;
}

/* Pagination-Nav (includes/pagination.html) */
.pagination-nav {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: var(--space-sm);
    margin: 24px 0;
    font-size: 14px;
}

.pagination-link {
    padding: 6px 12px;
    border: 1px solid var(--border);
    border-radius: var(--space-xs);
    text-decoration: none;
    color: var(--text-secondary);
}

/* Opacity-Slider (includes/opacity_slider.html) */
.opacity-slider-row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: var(--space-sm);
    padding: 8px 12px;
    background: var(--bg-surface-2);
    border-radius: 6px;
}

.opacity-slider-label {
    font-size: 12px;
    font-weight: 500;
    color: var(--text-secondary);
    white-space: nowrap;
    min-width: 75px;
}

.opacity-slider-input {
    flex: 1;
    accent-color: var(--primary);
    cursor: pointer;
}

.opacity-slider-val {
    font-size: 12px;
    font-weight: 600;
    color: var(--primary);
    min-width: 35px;
    text-align: right;
}

/* Tool-Info-Banner (includes/hw_tool_info.html — in 41 Templates eingebunden) */
.tool-info-banner {
    margin: 0 0 var(--space-md);
    padding: 10px 14px;
    background: color-mix(in srgb, var(--primary) 8%, var(--bg-surface));
    border-left: 3px solid var(--primary);
    border-radius: 6px;
    font-size: 12px;
    color: var(--text-secondary);
    line-height: 1.5;
    display: flex;
    gap: 10px;
    align-items: flex-start;
}

.tool-info-icon {
    color: var(--primary);
    flex-shrink: 0;
    margin-top: 1px;
    display: inline-flex;
}

.tool-info-title {
    color: var(--text-primary);
    display: block;
    margin-bottom: 2px;
    font-size: 12px;
}

/* Pro-User ✕ in der Tool-Info-Box (Marco/Nadine 2026-06-25) — als Flex-Child
   rechts (Banner ist display:flex). Ghost-Button, dezent. */
.tool-info-dismiss-form {
    margin: 0 0 0 auto;
    flex-shrink: 0;
    line-height: 0;
}
.tool-info-dismiss {
    background: none;
    border: 0;
    cursor: pointer;
    color: var(--text-muted);
    padding: 2px;
    border-radius: 4px;
    display: inline-flex;
}
.tool-info-dismiss:hover {
    color: var(--text-primary);
    background: color-mix(in srgb, var(--primary) 14%, transparent);
}

/* Hilfe-Boxen-Toggle im Top-Bar neben der Glocke (pro User, handwerker) —
   dezent wie die Glocke: borderless Ghost, gedimmt wenn aus (Marco/Nadine 2026-06-25) */
.hw-helpbox-toggle-form {
    margin: 0;
    display: inline-flex;
}
.hw-helpbox-toggle {
    background: none;
    border: none;
    cursor: pointer;
    padding: var(--space-xs);
    color: var(--text-muted);
    display: inline-flex;
    align-items: center;
    transition: color 0.2s ease, opacity 0.2s ease;
}
.hw-helpbox-toggle:hover {
    color: var(--text-primary);
}
.hw-helpbox-toggle:not(.is-on) {
    opacity: 0.4;
}

/* Inline-Width-Helper (für form-group flex-0 0 X) */
.fg-flex-0-140 {
    flex: 0 0 140px;
}

/* Inline-Link inheriting parent color (z.B. in error-banner) */
.link-inherit-underline {
    color: inherit;
    text-decoration: underline;
    font-weight: 600;
}

/* ── Plantafel-Termin-Modal (includes/_termin_modal.html) ────── */
.pt-modal-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.55);
    z-index: 9500;
    justify-content: center;
    align-items: flex-start;
    padding: 40px var(--space-md);
    overflow-y: auto;
}

#ptTerminBackdrop[style*="display: flex"],
#ptTerminBackdrop[style*="display:flex"] {
    display: flex !important;
}

.pt-modal-card {
    background: var(--bg-surface);
    border-radius: 14px;
    max-width: 640px;
    width: 100%;
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.25);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.form-label-muted {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-muted);
    display: block;
    margin-bottom: 6px;
}

.form-label-mb-8 {
    margin-bottom: var(--space-sm);
}

.team-member-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: var(--space-sm);
    max-height: 180px;
    overflow-y: auto;
    padding: var(--space-sm);
    background: var(--bg-surface-2);
    border-radius: var(--space-sm);
    border: 1px solid var(--border);
}

.team-member-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
    cursor: pointer;
    padding: 4px 6px;
    border-radius: 6px;
}

.member-role-suffix {
    font-size: 10px;
    color: var(--text-muted);
    text-transform: uppercase;
}

.assignments-label {
    display: flex !important;
    align-items: center;
    gap: 6px;
    margin-bottom: var(--space-sm);
}

.assignments-count-badge {
    background: var(--bg-surface-2);
    color: var(--text-muted);
    font-size: 10px;
    padding: 1px 6px;
    border-radius: 10px;
    font-weight: 600;
}

.assignments-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
    background: var(--bg-surface-2);
    border-radius: var(--space-sm);
    padding: 8px 10px;
    font-size: 12px;
    max-height: 160px;
    overflow-y: auto;
}

.assignments-hint {
    font-size: 10.5px;
    color: var(--text-muted);
    margin-top: var(--space-xs);
    font-style: italic;
}

.assignments-row {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    padding: 4px 0;
}

.assignments-name {
    font-weight: 600;
    color: var(--text-primary);
}

.farbe-swatch-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-sm);
}

.farbe-custom-wrap {
    margin-left: var(--space-sm);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    color: var(--text-muted);
}

.farbe-auto-btn {
    margin-left: auto;
    font-size: 11px;
    padding: 4px 10px;
}

.farbe-hint {
    font-size: 10.5px;
    color: var(--text-muted);
    margin-top: 6px;
}

.modal-actions-row {
    display: flex;
    gap: 10px;
    justify-content: space-between;
    align-items: center;
    border-top: 1px solid var(--border);
    padding-top: 14px;
    margin-top: var(--space-xs);
}

.btn-danger-outline {
    color: var(--danger);
    border-color: var(--danger);
}

.actions-right {
    display: flex;
    gap: var(--space-sm);
    margin-left: auto;
}

/* ── Scan-Modal (includes/hw_scan_modal.html) ─────────────── */
.scan-modal-backdrop {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
    z-index: 1100;
    align-items: center;
    justify-content: center;
    padding: 10px;
    overflow-y: auto;
}

.scan-modal-card {
    background: var(--bg-surface);
    border-radius: 12px;
    width: 100%;
    max-width: 720px;
    max-height: 95vh;
    overflow-y: auto;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4);
}

.scan-modal-header {
    padding: 14px 18px;
    border-bottom: 1px solid var(--border-subtle);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.scan-modal-title {
    margin: 0;
    font-size: var(--space-md);
}

.scan-modal-close {
    background: none;
    border: none;
    font-size: 26px;
    line-height: 1;
    cursor: pointer;
    color: var(--text-muted);
    padding: 4px var(--space-sm);
}

.scan-upload-area {
    padding: 18px;
}

.scan-info-box {
    margin-top: var(--space-md);
    padding: 10px;
    background: var(--bg-surface-2);
    border-radius: 6px;
    font-size: 11px;
    color: var(--text-muted);
}

.scan-progress-wrap {
    display: none;
    padding: 30px 18px;
    text-align: center;
}

.scan-progress-label {
    font-size: 14px;
    color: var(--text-muted);
    margin-bottom: 10px;
}

.scan-progress-bar-outer {
    width: 100%;
    height: 6px;
    background: var(--bg-surface-2);
    border-radius: 3px;
    overflow: hidden;
}

.scan-progress-bar-fill {
    width: 20%;
    height: 100%;
    background: var(--primary);
    transition: width 0.3s;
}

.scan-progress-details {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: var(--space-sm);
}

.scan-review-wrap {
    display: none;
    padding: 18px;
}

.scan-error-box {
    display: none;
    padding: 18px;
    background: color-mix(in srgb, var(--danger) 10%, transparent);
    border-top: 1px solid var(--danger);
    color: var(--danger);
    font-size: 13px;
}

/* ── Picker-Modal (includes/hw_katalog_picker.html) ────────── */
.picker-modal-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.5);
    z-index: 9000;
    align-items: center;
    justify-content: center;
    padding: var(--space-md);
}

.picker-modal-card {
    background: var(--bg-surface);
    border-radius: 14px;
    max-width: 800px;
    width: 100%;
    max-height: 80vh;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.picker-results-container {
    flex: 1;
    overflow-y: auto;
    padding: 0;
}

/* .ds-* Klassen wurden nach helpers.css verschoben weil dynamic_section.html
   in Tenant-Frontend (tenant.css) verwendet wird, nicht admin.css. */

/* ════════════════════════════════════════════════════════════════════════
   Print-Styles (Y4 — 2026-04-20)
   Regel für Strg+P im Browser: Sidebar, Chat, Tabs, Breadcrumbs, Buttons
   ausblenden. Nur der Inhalt bleibt. Schwarzer Text auf Weiß.
   WICHTIG: Für echte PDF-Exporte (Rechnung/Angebot) wird WeasyPrint
   genutzt — die laden separate PDF-Templates (pdf/rechnung/*, etc.).
   Diese Print-Styles gelten nur für den Browser-Print-Dialog.
   ════════════════════════════════════════════════════════════════════════ */
@media print {
    /* ── Seite ── */
    @page {
        size: A4;
        margin: 15mm 12mm 15mm 12mm;
    }
    :root {
        --primary: #000 !important;
        --bg-surface: #fff !important;
        --bg-surface-2: #fff !important;
        --bg-body: #fff !important;
        --text-primary: #000 !important;
        --text-muted: #444 !important;
        --border: #d0d0d0 !important;
    }
    html, body {
        background: #fff !important;
        color: #000 !important;
        font-size: 11pt;
        line-height: 1.45;
    }

    /* ── Komplett ausblenden ── */
    .sidebar,
    .sidebar-overlay,
    .sidebar-toggle,
    .sidebar-footer,
    .page-header .header-actions,
    .header-actions,
    .toast-container,
    .bl-breadcrumb,
    .bh-tabs-wrap,
    .bh-tabs,
    .bh-tabs-actions,
    .auftrag-tabs,
    .ang-det-tabs,
    .hw-help-btn,
    .hw-tool-info,
    .ki-chat-widget,
    .ki-chat-fab,
    .faq-toggle,
    .faq-chat,
    #pushBell,
    .print-hide,
    .no-print,
    .btn:not(.keep-in-print),
    button[onclick*="print"],
    form.inline-form,
    .modal,
    .modal-backdrop,
    nav,
    .skel,
    .skel-typing,
    details > summary {
        display: none !important;
        visibility: hidden !important;
    }

    /* ── Main-Content voll nutzen ── */
    .main-content {
        margin-left: 0 !important;
        padding: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
    }
    .main-content::before,
    .main-content::after {
        display: none !important;
    }
    .page-header {
        border-bottom: 2pt solid #000 !important;
        padding: 0 0 6mm 0 !important;
        margin-bottom: 6mm !important;
        background: transparent !important;
        box-shadow: none !important;
    }
    .page-header h1 {
        font-size: 18pt !important;
        font-weight: 700 !important;
        color: #000 !important;
        margin: 0 !important;
    }
    .content,
    main.content {
        padding: 0 !important;
        margin: 0 !important;
        background: transparent !important;
    }

    /* ── Karten & Tabellen — neutralisieren ── */
    .card {
        border: 1pt solid #c0c0c0 !important;
        box-shadow: none !important;
        page-break-inside: avoid;
        background: transparent !important;
        padding: 4mm !important;
        margin: 0 0 4mm 0 !important;
        border-radius: 0 !important;
    }
    .card-header {
        border-bottom: 1pt solid #c0c0c0 !important;
        background: transparent !important;
        color: #000 !important;
        padding: 0 0 2mm 0 !important;
        margin-bottom: 3mm !important;
    }
    .card-header h2, .card-header h3 {
        color: #000 !important;
        font-size: 13pt !important;
    }

    /* ── Tabellen: saubere Schwarz-Weiß-Darstellung ── */
    table {
        width: 100%;
        border-collapse: collapse;
        page-break-inside: auto;
    }
    thead { display: table-header-group; }
    tr { page-break-inside: avoid; page-break-after: auto; }
    th, td {
        border: 1pt solid #c0c0c0 !important;
        padding: 2mm 3mm !important;
        color: #000 !important;
        background: transparent !important;
    }
    th {
        background: #f0f0f0 !important;
        font-weight: 700 !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    /* ── Links: URL mit drucken für Referenz ── */
    a {
        color: #000 !important;
        text-decoration: none !important;
    }
    a[href^="http"]::after {
        content: " (" attr(href) ")";
        font-size: 9pt;
        color: #666;
    }
    /* Ausnahmen: interne Links und Mailto/Tel */
    a[href^="/"]::after,
    a[href^="#"]::after,
    a[href^="mailto:"]::after,
    a[href^="tel:"]::after { content: ""; }

    /* ── Badges: schwarz auf weiß ── */
    .badge, .badge-success, .badge-warning, .badge-danger, .badge-info, .badge-gray {
        background: transparent !important;
        color: #000 !important;
        border: 1pt solid #808080 !important;
        padding: 1pt 6pt !important;
        font-weight: 600;
    }

    /* ── Panels/Tabs: alle Panels zeigen (damit kompletter Auftrag druckt) ── */
    .auftrag-tab-panel,
    .ang-det-panel,
    [role="tabpanel"] {
        display: block !important;
        opacity: 1 !important;
        height: auto !important;
        overflow: visible !important;
    }
    .auftrag-tab-panel + .auftrag-tab-panel,
    .ang-det-panel + .ang-det-panel {
        page-break-before: always;
    }

    /* ── KPIs & Info-Karten: kompakter ── */
    .kpi-card, .stat-card {
        border: 1pt solid #c0c0c0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    /* ── Bilder: nicht zu groß drucken ── */
    img {
        max-width: 100% !important;
        height: auto !important;
        page-break-inside: avoid;
    }

    /* ── Formulare: Eingabefelder als Text rendern ── */
    input[type="text"], input[type="number"], input[type="email"], textarea, select {
        border: none !important;
        background: transparent !important;
        padding: 0 !important;
        color: #000 !important;
    }
    input[type="checkbox"]:checked + label::before {
        content: "☑ ";
    }

    /* ── Überschriften: keine zerschnittenen Blocks ── */
    h1, h2, h3, h4 { page-break-after: avoid; }
    h1 + p, h2 + p, h3 + p { page-break-before: avoid; }

    /* ── Footer-Markers am Ende jeder Seite ── */
    .print-footer {
        display: block !important;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        border-top: 1pt solid #c0c0c0;
        padding-top: 2mm;
        font-size: 9pt;
        color: #666;
        text-align: center;
    }
}

/* ============================================================
   ITER 14 PHASE C.1 — Einstellungen Inhalte-Tabs (2026-05-05)
   Refactor: 40 inline-styles in 2 Templates → CSS-Klassen
   Templates: einstellungen/_tab_inhalte_fitness.html
              einstellungen/_tab_inhalte_handwerker.html
   ============================================================ */

/* ─── Upload-Box (dashed border) ─── */
.upload-box-dashed {
    padding: 14px;
    border: 1px dashed var(--border);
    border-radius: var(--space-sm);
    background: var(--bg-surface-2);
}

/* ─── Image Previews (Hero/About) ─── */
.upload-preview-img {
    max-height: 100px;
    max-width: 300px;
    border: 1px solid var(--border-subtle);
    border-radius: var(--space-xs);
    object-fit: cover;
}
.upload-preview-img--sm {
    max-height: 80px;
    max-width: 200px;
    border: 1px solid var(--border-subtle);
    border-radius: var(--space-xs);
}

/* ─── Section-Divider (HR) ─── */
.section-divider-hr {
    margin: 20px 0;
    border: none;
    border-top: 1px solid var(--border-subtle);
}

/* ─── Sub-Section-Card (details>) ─── */
.section-sub-card {
    margin: 18px 0 12px;
    border: 1px solid var(--border-subtle);
    border-radius: var(--space-sm);
    padding: 12px var(--space-md);
}
.summary-clickable {
    cursor: pointer;
    font-weight: 600;
    font-size: 14px;
}

/* ─── Image-Action-Row (Image + Delete-Button) ─── */
.image-action-row {
    margin-bottom: var(--space-sm);
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

/* ─── Form-Helpers ─── */
.label-small {
    font-size: 13px;
    display: block;
    margin-bottom: var(--space-xs);
}
.label-secondary {
    font-size: 13px;
    color: var(--text-secondary);
}
.hint-block {
    font-size: 12px;
    color: var(--text-muted);
    margin: 0 0 10px 0;
    line-height: 1.5;
}
.hint-mt {
    font-size: 12px;
    color: var(--text-muted);
    margin-top: 10px;
}
.muted-hint {
    color: var(--text-muted);
    font-size: 13px;
    margin: 10px 0 14px;
}
.lang-tag-suffix {
    margin-left: 6px;
    font-size: 10px;
}

/* ─── Layout-Helpers ─── */
.grid-3-col {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 10px;
}
.flex-row-mt-14 {
    display: flex;
    gap: 10px;
    margin-top: 14px;
}

/* ─── Divider-Config-Card (Inhalte-Tab Trenner-Config 1/2/3) ─── */
.divider-config-card {
    border: 1px solid var(--border-subtle);
    border-radius: var(--space-sm);
    padding: var(--space-md);
    margin-bottom: var(--space-md);
}
.divider-config-card--disabled {
    opacity: 0.5;
}

/* ─── Badge-Variant: Info (helles Blau für JS-injected "Karte X" Pills) ─── */
.ds-admin-badge--info {
    background: var(--badge-info-bg);
    color: var(--badge-info-text);
}

/* ============================================================
   ITER 14 PHASE C.2 — Einstellungen AVV (2026-05-05)
   Refactor: 23 inline-styles in avv.html → CSS-Klassen
   Templates: einstellungen/avv.html
   ============================================================ */

/* ─── Back-Link (existing class, define styles) ─── */
.abo-back-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--text-secondary);
    text-decoration: none;
    font-size: 14px;
}
.abo-back-link:hover {
    color: var(--text-primary);
}

/* ─── Card-Body padding helper ─── */
.card-body-pad-24 {
    padding: var(--space-lg);
}
.card-subtitle-secondary {
    color: var(--text-secondary);
    margin: 6px 0 0 0;
    font-size: 14px;
}

/* ─── AVV-Status-Banner (zugestellt / noch nicht zugestellt) ─── */
.avv-status-banner {
    display: flex;
    gap: var(--space-md);
    align-items: center;
    padding: var(--space-md);
    border-left: 4px solid var(--primary);
    border-radius: var(--space-xs);
    margin-bottom: var(--space-lg);
    background: color-mix(in srgb, var(--primary) 10%, var(--bg-surface));
}
.avv-status-banner--success {
    border-left-color: var(--success);
    background: color-mix(in srgb, var(--success) 8%, var(--bg-surface));
}
.avv-status-banner--warning {
    border-left-color: var(--warning);
    background: color-mix(in srgb, var(--warning) 10%, var(--bg-surface));
}
.avv-banner-icon {
    flex-shrink: 0;
}
.avv-banner-icon--success {
    color: var(--success);
}
.avv-banner-icon--warning {
    color: var(--warning);
}
.avv-banner-title {
    color: var(--text-primary);
}
.avv-banner-text {
    color: var(--text-secondary);
    font-size: 13px;
}

/* ─── AVV-Warning-Notice (PDF removed) ─── */
.avv-warning-notice {
    padding: 12px var(--space-md);
    background: color-mix(in srgb, var(--warning) 12%, var(--bg-surface));
    border-left: 4px solid var(--warning);
    border-radius: var(--space-xs);
    color: var(--text-primary);
    font-size: 13px;
    margin-bottom: var(--space-lg);
}

/* ─── Actions-Row (multiple buttons, mb:24) ─── */
.actions-row-wrap {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: var(--space-lg);
}

/* ─── Form-Inline (form has its own block, use display:inline) ─── */
.form-inline {
    display: inline;
}

/* ─── Mailto/Inline-Link Primary ─── */
.link-primary {
    color: var(--primary);
}

/* ============================================================
   ITER 14 PHASE C.3 — Team + Invoice + Sektionen-Editor (2026-05-05)
   Refactor: 38 inline-styles in 3 Templates → CSS-Klassen
   Templates: einstellungen/team.html, invoice_template.html,
              sektionen_editor.html
   ============================================================ */

/* ─── Team-Hero-Card (Phase Z.1: dynamic --tm-hero-color via Custom-Property) ─── */
.tm-hero-icon {
    background: color-mix(in srgb, var(--tm-hero-color) 12%, transparent);
    color: var(--tm-hero-color);
}
.tm-hero-meister--full {
    color: var(--danger);
}
.tm-hero-meister--ok {
    color: var(--text-muted);
}
.tm-hero-progress-fill {
    width: var(--tm-pct, 0%);
    background: var(--tm-hero-color);
}
/* tm-avatar existing → wir setzen nur das background via Custom-Property */
.tm-avatar {
    background: var(--tm-avatar-color);
}

/* ─── Image-Thumb (Logo/Image-Preview, max-h:60) ─── */
.image-thumb-60 {
    max-height: 60px;
    border-radius: var(--space-xs);
    border: 1px solid var(--border-subtle);
}

/* ─── Hint Helpers (mt:4 / mt:6, color muted, block) ─── */
.hint-mt-4-block {
    color: var(--text-muted);
    margin-top: var(--space-xs);
    display: block;
}
.hint-mt-6-block {
    color: var(--text-muted);
    margin-top: 6px;
    display: block;
}

/* ─── Form-Helpers (Team-Stundenlohn) ─── */
.form-inline-flex-gap-4 {
    margin: 0;
    display: flex;
    gap: var(--space-xs);
    align-items: center;
}
.input-stundenlohn {
    width: 85px;
    text-align: right;
    padding: 4px 6px;
    font-size: 12px;
}

/* ─── Tabellen-Spalten-Breiten (Team-Tabelle) ─── */
.th-w-220 {
    width: 220px;
}
.th-w-140 {
    width: 140px;
    text-align: right;
}

/* ─── Tiny Buttons (Team + Sektionen) ─── */
.btn-tiny {
    padding: 3px var(--space-sm);
    font-size: 11px;
}
.btn-tiny-padding {
    padding: 2px var(--space-sm);
}

/* ─── Sektionen-Editor: Add-Section-Form (hidden/visible) ─── */
.add-section-form-block {
    display: none;
    background: var(--bg-surface-2);
    border: 1px solid var(--border-subtle);
    border-radius: var(--space-sm);
    padding: 20px;
    margin-bottom: 20px;
}

/* ─── Sektionen-Editor: Tenant-Cream-Block mit Primary-Akzent ─── */
.tenant-cream-block {
    background: var(--cream-bg);
    border-radius: 10px;
    padding: 14px 18px;
    margin-bottom: var(--space-md);
    border-left: 3px solid var(--primary);
}

/* ─── Sektionen-Editor: Form-Helpers ─── */
.label-bold-flex {
    font-weight: 600;
    font-size: 14px;
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: var(--space-sm);
}
.label-medium {
    display: block;
    font-size: 13px;
    font-weight: 500;
    margin-bottom: 6px;
}
.label-flex-gap-4 {
    display: flex;
    align-items: center;
    gap: var(--space-xs);
}
.select-narrow-bold {
    max-width: 320px;
    font-weight: 500;
}
.svg-fill-100 {
    width: 100%;
    height: 100%;
}

/* ─── Layout-Helpers ─── */
.flex-row-mt-16 {
    display: flex;
    gap: var(--space-sm);
    margin-top: var(--space-md);
}
.flex-space-between-mb-8 {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--space-sm);
}
.flex-end-gap-8 {
    display: flex;
    justify-content: flex-end;
    gap: var(--space-sm);
}
.grid-2-1-gap {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: var(--space-sm);
    margin-bottom: var(--space-sm);
}
.hidden-form-mt-12 {
    display: none;
    margin-top: 12px;
}
.hidden-mt-8 {
    display: none;
    margin-top: var(--space-sm);
}

/* ─── Sektionen-Editor: Pills + Banner ─── */
.ds-pill-primary {
    background: color-mix(in srgb, var(--primary) 12%, var(--bg-surface));
    color: var(--primary);
    font-size: 11px;
}
.warning-info-banner {
    background: color-mix(in srgb, var(--warning) 14%, var(--bg-surface));
    border: 1px solid var(--warning-border-strong);
    border-radius: 6px;
    padding: 8px 12px;
    margin-bottom: 12px;
    font-size: 12px;
    color: var(--warning-text-strong);
}
.success-info-banner {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px var(--space-md);
    background: var(--success-bg);
    border-radius: var(--space-sm);
}
.success-text-flex {
    flex: 1;
    font-size: 0.85rem;
    color: var(--success);
    font-weight: 500;
}

/* ─── Empty-State Center ─── */
.empty-state-center-padded {
    text-align: center;
    padding: var(--space-xl);
    color: var(--text-muted);
}

/* ─── JS-injected Modal-Helpers (sektionen_editor) ─── */
.h3-modal-mb-16 {
    margin: 0 0 var(--space-md);
    font-size: 18px;
}
.ds-card-block-js {
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: var(--space-sm);
    padding: 14px;
    margin-bottom: 10px;
}

/* ─── URL-Preview Brand-Specific ─── */
.ds-url-preview--vimeo {
    font-size: 11px;
    font-weight: 700;
    color: var(--brand-vimeo);
}

/* ─── Iframe-Error-Banner (Invoice-Template Vorschau-Fehler im srcdoc) ─── */
/* Hinweis: Wird im iframe.srcdoc als <style>-Block injected, damit
   var(--danger) auch im iframe-Kontext aufgelöst wird (parent-CSS lädt nicht). */
.iframe-error-banner {
    padding: 20px;
    color: var(--danger);
    font-family: sans-serif;
}

/* ============================================================
   ITER 14 PHASE C.4 — Einstellungen Index + Kalkulation + 2FA + Audit (2026-05-05)
   Refactor: 162 inline-styles in 8 Templates → CSS-Klassen
   Templates: einstellungen/{kalkulation,handwerker_beruf,index,
              audit_log,periodenabschluss,sicherheit_2fa*}.html
   ============================================================ */

/* ─── Container-Wrappers (verschiedene max-widths, mx auto) ─── */
.einst-wrap-1200 { max-width: 1200px; margin: 0 auto; }
.einst-wrap-900  { max-width: 900px; margin: 0 auto; }
.einst-wrap-720  { max-width: 720px; }
.einst-wrap-680  { max-width: 680px; }
.einst-wrap-560  { max-width: 560px; }
.einst-wrap-540  { max-width: 540px; }
.einst-wrap-300  { max-width: 300px; }

/* ─── Color-Picker (4× height:42px in index.html) ─── */
.color-picker-h-42 {
    height: 42px;
}

/* ─── Color-Dot (24px Tenant-Color, Z.1 Custom-Property) ─── */
.color-dot-24 {
    width: var(--space-lg);
    height: var(--space-lg);
    border-radius: 50%;
    background: var(--dot-color);
    display: inline-block;
    border: 1px solid var(--border);
}

/* ─── Mac-Window-Dots (10px, 3 Farben — Preview-Bar) ─── */
.window-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    display: inline-block;
}
.window-dot--red    { background: var(--mac-dot-red); }
.window-dot--yellow { background: var(--mac-dot-yellow); }
.window-dot--green  { background: var(--mac-dot-green); }

/* ─── Logo + Favicon Preview ─── */
.logo-preview-img {
    max-height: 60px;
    max-width: 200px;
    border: 1px solid var(--border-subtle);
    border-radius: var(--space-xs);
    padding: var(--space-xs);
}
.favicon-preview-img {
    max-height: var(--space-xl);
    max-width: var(--space-xl);
    border: 1px solid var(--border-subtle);
    border-radius: var(--space-xs);
    padding: 2px;
}

/* ─── Status-Tiles 56×56 (Periodenabschluss) ─── */
.status-tile-56 {
    width: 56px;
    height: 56px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.status-tile-56--success {
    background: var(--success-bg);
    color: var(--success);
}
.status-tile-56--info {
    background: var(--info-bg);
    color: var(--info);
}

/* ─── Audit-KPI Conditional Variants (rückdatiert) ─── */
.kpi-card--warning-active {
    background: var(--warning-bg);
    border: 1px solid var(--warning);
}
.kpi-value--warning {
    color: var(--warning);
}
.kpi-value--success {
    color: var(--success);
}
.tr--rueckdatiert {
    background: var(--warning-bg);
}

/* ─── Mac-Browser-Preview-Header ─── */
.preview-frame-bar {
    background: var(--text-primary);
    color: var(--bg-surface);
    padding: 6px 12px;
    font-size: 0.8rem;
    display: flex;
    align-items: center;
    gap: var(--space-sm);
}
.preview-frame-host {
    flex: 1;
    text-align: center;
    opacity: 0.6;
}
.preview-frame-wrap {
    border: 2px solid var(--border-subtle);
    border-radius: var(--space-sm);
    overflow: hidden;
    background: var(--bg-surface-2);
}
.preview-frame-iframe {
    width: 100%;
    height: 85vh;
    min-height: 700px;
    border: none;
}
.preview-frame-actions {
    margin-top: var(--space-sm);
    text-align: right;
}

/* ─── Compliance-Banner (mit conditional border-color) ─── */
.compliance-banner {
    border-left: 3px solid var(--info);
}
.compliance-banner--complete {
    border-left-color: var(--success);
}
.compliance-banner-row {
    display: flex;
    align-items: center;
    gap: 14px;
}
.compliance-icon-large {
    flex-shrink: 0;
    font-size: var(--space-lg);
}
.compliance-cta-strong {
    color: var(--info);
}

/* ─── Progress-Bar (Z.1 Custom-Property für Pct + Color) ─── */
.progress-bar-thin {
    margin-top: var(--space-sm);
    height: 5px;
    width: 100%;
    background: var(--bg-surface-2);
    border-radius: 3px;
    overflow: hidden;
}
.progress-bar-fill {
    height: 100%;
    width: var(--progress-pct, 0%);
    background: var(--progress-color, var(--info));
    transition: width 0.3s;
}
.progress-bar-label {
    margin-top: var(--space-xs);
    font-size: 11px;
    color: var(--text-muted);
}

/* ─── Design-Template-Card (Active-Border via Conditional Class) ─── */
.design-template-card-button {
    width: 100%;
    cursor: pointer;
    border: 2px solid var(--color-picker-border);
    border-radius: var(--space-sm);
    padding: var(--space-md);
    background: var(--bg-surface);
    text-align: center;
    transition: all 0.2s;
}
.design-template-card-button.is-active {
    border-color: var(--primary);
}
.design-template-color-row {
    display: flex;
    gap: 6px;
    justify-content: center;
    margin-bottom: var(--space-sm);
}
.design-template-name {
    display: block;
    margin-bottom: var(--space-xs);
}

/* ─── Design-Template-Grid (200px responsive) ─── */
.design-template-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 12px;
}

/* ─── Section-Toggle-Grid (200px, gap:8) ─── */
.section-toggle-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: var(--space-sm);
    margin-bottom: var(--space-md);
}
.section-toggle-divider {
    margin: 16px 0;
    border: none;
    border-top: 1px solid var(--border-subtle);
}
.section-toggle-label-flex {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    margin-bottom: var(--space-md);
}

/* ─── Domain-Records-Grid ─── */
.domain-rec-grid-60-80 {
    display: grid;
    grid-template-columns: 60px 80px 1fr auto;
    gap: 12px;
    align-items: center;
    padding: 10px;
    background: var(--bg-surface-2);
    border-radius: 6px;
}
.domain-rec-grid-60-200 {
    display: grid;
    grid-template-columns: 60px 200px 1fr auto;
    gap: 12px;
    align-items: center;
    padding: 10px;
    background: var(--bg-surface-2);
    border-radius: 6px;
}
.domain-rec-grid-wrap {
    display: grid;
    gap: var(--space-sm);
}
.code-break-all {
    word-break: break-all;
}
.domain-actions-row {
    display: flex;
    gap: var(--space-sm);
    flex-wrap: wrap;
    margin-bottom: 12px;
}

/* ─── Komplementaer-Block (dashed border, conditional display:none via Z.1 class) ─── */
.komplementaer-block {
    padding: 14px;
    border: 1px dashed var(--border);
    border-radius: var(--space-sm);
    background: var(--bg-surface-2);
}
.komplementaer-block--hidden {
    display: none;
}

/* ─── Alert-Banner (Komplementaer Warning) ─── */
.alert-banner-danger {
    margin-bottom: 14px;
    padding: 10px 14px;
    border-radius: 6px;
    border-left: 4px solid var(--danger);
    background: color-mix(in srgb, var(--danger) 8%, transparent);
}

/* ─── Standorte-Liste (Cards) ─── */
.standorte-warning-card {
    margin-bottom: 12px;
    border-left: 3px solid var(--warning);
}
.standorte-warning-form-card {
    border-left: 3px solid var(--warning);
    margin-top: 12px;
}
.card-header-flex {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
}

/* ─── Compact Hint-Helpers (audit + index) ─── */
.hint-margin-8 {
    margin: 8px 0 0;
    font-size: 12px;
    color: var(--text-muted);
}
.hint-mb-12-secondary {
    margin-bottom: 12px;
    color: var(--text-secondary);
}
.hint-mb-12-muted {
    margin-bottom: 12px;
    color: var(--text-muted);
}
.hint-mb-16-secondary {
    margin-bottom: var(--space-md);
    color: var(--text-secondary);
}
.hint-strong-warning {
    color: var(--warning);
}
.hint-paragraph-muted {
    margin: 4px 0 10px 0;
    font-size: 13px;
    color: var(--text-muted);
    line-height: 1.5;
}
.hint-list-paragraph {
    margin: 0;
    padding-left: 20px;
    font-size: 13px;
    line-height: 1.7;
}
.hint-list-margin-1-7 {
    font-size: 13px;
    color: var(--text-muted);
    margin: 0 0 16px 20px;
    line-height: 1.7;
}
.hint-margin-13 {
    font-size: 13px;
    color: var(--text-muted);
    margin: 0 0 14px 0;
    line-height: 1.6;
}

/* ─── Komplementaer-Strong + Hint ─── */
.komplementaer-label {
    font-size: 13px;
    display: block;
    margin-bottom: 6px;
}
.komplementaer-hint {
    font-size: 12px;
    color: var(--text-muted);
    margin: 0 0 10px 0;
    line-height: 1.5;
}

/* ─── Compliance-Banner Body ─── */
.compliance-icon {
    flex-shrink: 0;
    font-size: 28px;
    line-height: 1;
}

/* ─── Audit-Log Helpers ─── */
.audit-header-flex {
    display: flex;
    gap: var(--space-md);
    align-items: flex-start;
    flex-wrap: wrap;
}
.audit-icon-primary {
    color: var(--primary);
    flex-shrink: 0;
    margin-top: 2px;
}
.audit-header-content {
    flex: 1;
    min-width: 300px;
}
.audit-h2 {
    margin: 0 0 6px 0;
    font-size: 18px;
}
.audit-link-flex {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    text-decoration: none;
}
.audit-form-flex {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: flex-end;
}
.audit-form-col {
    flex: 1;
    min-width: 140px;
}
.audit-form-checkbox-label {
    display: flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    font-size: 13px;
    padding: 8px 0;
}
.audit-card-with-border {
    margin-bottom: 20px;
    border-left: 4px solid var(--primary);
}
.audit-cell-bold-primary {
    color: var(--text-primary);
    font-weight: 600;
}
.audit-cell-secondary-12 {
    font-size: 12px;
    color: var(--text-secondary);
    max-width: 240px;
}
.audit-cell-mono-11 {
    font-size: 11px;
    color: var(--text-muted);
    font-family: monospace;
}
.audit-cell-time-11 {
    white-space: nowrap;
    color: var(--text-muted);
    font-size: 11px;
}
.audit-cell-12 {
    font-size: 12px;
    color: var(--text-muted);
    white-space: nowrap;
}
.audit-cell-12-bold {
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
}
.audit-cell-11-secondary {
    font-size: 11px;
    color: var(--text-secondary);
    max-width: 220px;
}

/* ─── Periodenabschluss Helpers ─── */
.period-padding-10 {
    padding: 10px 0;
}
.period-status-row {
    display: flex;
    align-items: center;
    gap: var(--space-md);
    flex-wrap: wrap;
}
.period-status-text {
    font-size: 22px;
    font-weight: 600;
    color: var(--text-primary);
}
.period-status-text-medium {
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
}
.period-warning-card {
    border-left: 4px solid var(--warning);
    margin-bottom: 20px;
    background: var(--warning-bg);
}
.period-warning-row {
    display: flex;
    gap: 14px;
    align-items: flex-start;
}
.period-warning-icon {
    color: var(--warning);
    flex-shrink: 0;
    margin-top: 2px;
}
.period-h3 {
    margin: 0 0 8px 0;
    font-size: 15px;
    color: var(--text-primary);
}
.period-form-row {
    padding: 12px 14px;
    background: var(--bg-surface-2);
    border-radius: 6px;
    border: 1px solid var(--border);
}
.period-checkbox-label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0;
    cursor: pointer;
}
.period-checkbox-input {
    margin-top: 3px;
    flex-shrink: 0;
}
.period-checkbox-text {
    font-size: 13px;
    color: var(--text-primary);
    line-height: 1.5;
}
.period-actions-end {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    margin-top: var(--space-md);
}
.period-cell-secondary {
    font-size: 12px;
    color: var(--text-secondary);
    max-width: 300px;
}
.period-empty-state {
    text-align: center;
    padding: 30px 20px;
    color: var(--text-muted);
    font-size: 13px;
}

/* ─── 2FA Common Helpers ─── */
.tfa-flash-mb-14 {
    margin: 0 0 14px 0;
}
.tfa-flash-mb-16 {
    margin: 0 0 16px 0;
}
.tfa-back-link {
    color: var(--text-muted);
    font-size: 13px;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 5px;
}
.tfa-mb-18 {
    margin-bottom: 18px;
}
.tfa-paragraph-13 {
    color: var(--text-secondary);
    font-size: 14px;
    line-height: 1.55;
    margin: 0 0 14px 0;
}
.tfa-paragraph-14 {
    color: var(--text-secondary);
    font-size: 14px;
    line-height: 1.6;
    margin: 0 0 16px 0;
}
.tfa-paragraph-secondary-8 {
    color: var(--text-secondary);
    font-size: 14px;
    line-height: 1.6;
    margin: 0 0 8px 0;
}
.tfa-paragraph-13-narrow {
    color: var(--text-secondary);
    font-size: 14px;
    line-height: 1.55;
    margin: 0 0 16px 0;
}
.tfa-warning-strong {
    color: var(--warning);
}
.tfa-button-row {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 18px;
}
.tfa-form-inline {
    display: inline-block;
}
.tfa-disable-form {
    display: none;
    margin-top: var(--space-lg);
    padding: 18px;
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: var(--space-sm);
}
.tfa-disable-h3 {
    margin: 0 0 12px 0;
    font-size: 15px;
    color: var(--danger);
}
.tfa-disable-text {
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.55;
    margin: 0 0 16px 0;
}
.tfa-code-input {
    letter-spacing: var(--space-xs);
    text-align: center;
    font-family: monospace;
    font-size: 18px;
}
.tfa-token-input {
    letter-spacing: 5px;
    text-align: center;
    font-family: 'SF Mono', Menlo, monospace;
    font-size: 22px;
    padding: 14px;
}
.tfa-button-flex {
    display: flex;
    gap: 10px;
}
.tfa-footer-text {
    margin-top: var(--space-lg);
    font-size: 12px;
    color: var(--text-muted);
    line-height: 1.6;
}

/* ─── 2FA Done (Recovery-Codes) ─── */
.tfa-recovery-wrap {
    background: var(--bg-surface);
    padding: 18px 20px;
    border-radius: 10px;
    margin: 16px 0;
    border: 1px solid var(--border);
}
.tfa-recovery-list {
    font-family: 'SF Mono', Menlo, Consolas, monospace;
    font-size: 14px;
    line-height: 2;
    letter-spacing: 2px;
    list-style-position: inside;
    padding-left: 0;
    margin: 0;
    color: var(--text-primary);
}
.tfa-recovery-li {
    padding: 2px 0;
}
.tfa-recovery-code {
    font-weight: 700;
    background: var(--bg-surface-2);
    padding: 3px 10px;
    border-radius: var(--space-xs);
    border: 1px solid var(--border);
}
.tfa-actions-row-mt-14 {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 14px;
}
.tfa-btn-flex {
    flex: 1;
    justify-content: center;
    padding: 11px;
}
.tfa-btn-full {
    width: 100%;
    justify-content: center;
    padding: 13px;
    margin-top: 12px;
    font-size: 14px;
}
.tfa-footer-mini {
    margin-top: 18px;
    font-size: 11px;
    color: var(--text-muted);
    text-align: center;
    line-height: 1.5;
}

/* ─── 2FA Setup (QR-Code) ─── */
.tfa-qr-wrap {
    text-align: center;
    margin: 18px 0;
    padding: var(--space-lg);
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: 10px;
}
.tfa-qr-img {
    max-width: 220px;
    width: 100%;
    height: auto;
    border-radius: 6px;
    background: var(--bg-surface);
    padding: var(--space-sm);
}
.tfa-qr-manual-details {
    margin-top: 14px;
    font-size: 12px;
    color: var(--text-muted);
}
.tfa-qr-manual-summary {
    cursor: pointer;
    user-select: none;
}
.tfa-qr-manual-code {
    display: block;
    margin-top: 10px;
    padding: 10px;
    background: var(--bg-surface-2);
    border: 1px solid var(--border);
    border-radius: 6px;
    font-family: 'SF Mono', Menlo, monospace;
    font-size: 12px;
    word-break: break-all;
    letter-spacing: 1px;
    color: var(--text-primary);
}
.tfa-btn-medium {
    flex: 1;
    justify-content: center;
    padding: 12px;
}
.tfa-btn-secondary-12 {
    justify-content: center;
    padding: 12px;
}
.tfa-hint-box {
    margin-top: 18px;
    padding: 14px var(--space-md);
    background: color-mix(in srgb, var(--warning) 12%, var(--bg-surface));
    border-radius: var(--space-sm);
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.55;
}

/* ─── Misc Helpers ─── */
.flex-1-min-300 { flex: 1; min-width: 300px; }
.flex-1-min-140 { flex: 1; min-width: 140px; }
.icon-shrink {
    flex-shrink: 0;
}
.fs-22-bold-primary {
    font-size: 22px;
    font-weight: 600;
    color: var(--text-primary);
}
.cell-bold-primary {
    color: var(--text-primary);
    font-weight: 600;
}

/* Index.html zusätzliche Helpers */
.alert-banner-danger-soft {
    margin-bottom: 14px;
    padding: 10px 14px;
    border-radius: 6px;
    border-left: 4px solid var(--danger);
    background: color-mix(in srgb, var(--danger) 8%, transparent);
}
.warning-card-mb-12 {
    margin-bottom: 12px;
    border-left: 3px solid var(--warning);
}
.warning-card-mt-12 {
    border-left: 3px solid var(--warning);
    margin-top: 12px;
}
.hint-margin-8-secondary {
    margin: 8px 0 0;
    font-size: 12px;
    color: var(--text-muted);
}
.hint-mb-12-secondary-spaced {
    margin-bottom: 12px;
    color: var(--text-secondary);
}
.hint-mt-12-margin-12-muted {
    margin: 12px 0 0;
    font-size: 12px;
    color: var(--text-muted);
}
.hint-fs-13-mb-12 {
    font-size: 13px;
    color: var(--text-muted);
    margin-bottom: 12px;
}
.hint-mb-16-secondary-spaced {
    margin-bottom: var(--space-md);
    color: var(--text-secondary);
}
.section-list-padded {
    font-size: 13px;
    color: var(--text-muted);
    margin: 0 0 16px 20px;
    line-height: 1.7;
}
.list-padded-13 {
    margin: 0;
    padding-left: 20px;
    font-size: 13px;
    line-height: 1.7;
}
.compliance-strong-warning {
    color: var(--warning);
}
.compliance-card-warning {
    border-left: 4px solid var(--warning);
}
.flex-shrink-0-large-icon {
    flex-shrink: 0;
    font-size: 28px;
    line-height: 1;
}
.compliance-icon-flex-top {
    display: flex;
    align-items: flex-start;
    gap: 14px;
}

/* ─── Kalkulation: Erklär-Icons (Info/Gold/Success Variants) ─── */
.kal-explain-icon--info {
    background: color-mix(in srgb, var(--info) 15%, transparent);
    color: var(--info);
}
.kal-explain-icon--gold {
    background: color-mix(in srgb, var(--gold-accent) 15%, transparent);
    color: var(--gold-accent-dim);
}
.kal-explain-icon--success {
    background: color-mix(in srgb, var(--success) 15%, transparent);
    color: var(--success);
}

/* ─── Kalkulation: Section-Header-Cell (in tables) ─── */
.kal-section-header-cell {
    padding-top: 12px !important;
    font-size: 11px !important;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--text-muted);
    font-weight: 700;
}

/* ─── Kalkulation: Legend-Dots (4 Color-Variants) ─── */
.kal-legend-dot--primary { background: var(--primary); }
.kal-legend-dot--info    { background: var(--info); }
.kal-legend-dot--warning { background: var(--warning); }
.kal-legend-dot--success { background: var(--success); }

/* ============================================================
   ITER 14 PHASE C.5 — Buchhaltung rechnung_detail.html (2026-05-05)
   Refactor: 112 inline-styles in 1 Template → CSS-Klassen
   Template: buchhaltung/rechnung_detail.html
   ============================================================ */

/* ─── Tabelle Voll-Breite (2x) ─── */
.invoice-table-full {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}
.invoice-thead {
    background: var(--bg-surface-2);
    border-bottom: 1px solid var(--border);
}

/* ─── Total-Row + Section-Heading ─── */
.invoice-total-row {
    padding: 8px 0;
    font-size: var(--space-md);
}
.invoice-total-row-bold-primary {
    padding: 8px 0;
    font-size: 18px;
    font-weight: 700;
    color: var(--primary);
}
.invoice-section-h {
    margin: 16px 0 8px 0;
    font-size: 14px;
}
.invoice-section-h-15-secondary {
    margin: 20px 0 8px 0;
    font-size: 15px;
    color: var(--text-secondary);
}
.invoice-section-h-14-spaced {
    margin: 20px 0 8px 0;
    font-size: 14px;
}

/* ─── Card-Titles ─── */
.invoice-card-title {
    margin: 0 0 6px 0;
    font-size: 15px;
    color: var(--text-primary);
}
.invoice-h-no-margin-18 {
    margin: 0;
    font-size: 18px;
}
.invoice-h-no-margin-17-primary {
    margin: 0;
    font-size: 17px;
    color: var(--text-primary);
}
.invoice-h-no-margin-14 {
    margin: 0;
    font-size: 14px;
}

/* ─── Flex-Helpers ─── */
.flex-col-min-260 {
    flex: 1;
    min-width: 260px;
}
.text-right-shrink {
    text-align: right;
    flex-shrink: 0;
}

/* ─── Label Uppercase ─── */
.label-uppercase {
    display: block;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--text-muted);
    margin-bottom: 5px;
}

/* ─── XRechnung Success-Text ─── */
.text-xrechnung-success {
    color: var(--xrechnung-success);
}

/* ─── Modal (Storno/Edit) ─── */
.invoice-modal-card {
    max-width: 540px;
    width: 92%;
    padding: 0;
    border: none;
    border-radius: 12px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
    background: var(--bg-surface);
}
.invoice-modal-header {
    padding: 18px 22px;
    border-bottom: 1px solid var(--border);
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.invoice-modal-body {
    padding: 20px 22px;
}
.invoice-modal-body-24 {
    padding: 20px var(--space-lg);
}
.invoice-modal-body-divider {
    padding: 20px var(--space-lg);
    border-bottom: 1px solid var(--border);
}
.invoice-modal-footer-end {
    padding: 14px 22px;
    border-top: 1px solid var(--border);
    display: flex;
    justify-content: flex-end;
    gap: var(--space-sm);
}
.invoice-modal-footer-end-24 {
    padding: 14px var(--space-lg);
    border-top: 1px solid var(--border);
    display: flex;
    gap: 10px;
    justify-content: flex-end;
}

/* ─── Form-Inputs (Modal) ─── */
.invoice-form-input {
    width: 100%;
    padding: 9px 12px;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--bg-surface);
    font-size: 14px;
}
.invoice-form-textarea {
    width: 100%;
    padding: 9px 12px;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--bg-surface);
    font-size: 14px;
    resize: vertical;
    font-family: inherit;
}
.resize-vertical {
    resize: vertical;
}

/* ─── Notice-Banners (Warning + Success) ─── */
.invoice-notice-warning {
    padding: 12px;
    background: color-mix(in srgb, var(--warning) 14%, var(--bg-surface));
    border-left: 4px solid var(--warning);
    border-radius: var(--space-xs);
    margin-bottom: var(--space-md);
}
.invoice-notice-success {
    padding: 12px;
    background: color-mix(in srgb, var(--success) 14%, var(--bg-surface));
    border-left: 4px solid var(--success);
    border-radius: var(--space-xs);
    margin-bottom: var(--space-md);
}
.invoice-notice-info-bordered {
    padding: 14px;
    background: color-mix(in srgb, var(--info) 8%, var(--bg-surface));
    border: 1px solid color-mix(in srgb, var(--info) 25%, var(--border));
    border-radius: var(--space-sm);
}
.invoice-notice-warning-bordered {
    padding: 12px;
    background: color-mix(in srgb, var(--warning) 8%, var(--bg-surface));
    border: 1px solid color-mix(in srgb, var(--warning) 25%, var(--border));
    border-radius: var(--space-sm);
    margin-bottom: 12px;
    font-size: 13px;
}

/* ─── Hint-Surface (kompakter Hint mit Surface-2 bg) ─── */
.invoice-hint-surface {
    padding: 10px 12px;
    background: var(--bg-surface-2);
    border-radius: 6px;
    font-size: 12.5px;
    color: var(--text-secondary);
    line-height: 1.5;
}

/* ─── Abschlag-Section (Abschlagsrechnungen mit warm-brown border) ─── */
.invoice-abschlag-h3 {
    margin: 0 0 10px 0;
    font-size: 14px;
    color: var(--warning-text-strong);
}
.text-warning-strong {
    color: var(--warning-text-strong);
}
.invoice-abschlag-link {
    color: var(--warning-text-strong);
}
.invoice-abschlag-total-row {
    display: flex;
    justify-content: space-between;
    padding: 8px 0 4px 0;
    border-top: 1px solid var(--warning-text-strong);
    margin-top: 6px;
}
.invoice-abschlag-grand-row {
    display: flex;
    justify-content: space-between;
    padding: 8px 0 4px 0;
    border-top: 2px solid var(--warning-text-strong);
    font-size: var(--space-md);
}

/* ─── XRechnung-Info-Banner ─── */
.invoice-xrechnung-info {
    margin-top: var(--space-md);
    padding: 12px;
    background: var(--xrechnung-info-bg);
    border-left: 4px solid var(--info);
    border-radius: 6px;
    font-size: 13px;
    color: var(--xrechnung-info-text);
}

/* ─── Zuschlag-Row (Gold-Gradient mit color-mix) ─── */
.invoice-zuschlag-row {
    background: color-mix(in srgb, var(--gold-accent) 6%, transparent);
    border-left: 3px solid var(--gold-accent);
}
.invoice-zuschlag-badge {
    background: linear-gradient(135deg, var(--gold-accent), var(--gold-accent-dim));
    color: var(--bg-surface);
    font-weight: 700;
}

/* ─── Cells (mono-numeric-right) ─── */
.invoice-cell-num {
    padding: var(--space-sm);
    text-align: right;
    font-variant-numeric: tabular-nums;
}
.invoice-cell-num-success {
    padding: var(--space-sm);
    text-align: right;
    font-variant-numeric: tabular-nums;
    color: var(--success);
    font-weight: 600;
}
.invoice-cell-center {
    padding: var(--space-sm);
    text-align: center;
}
.invoice-cell-center-muted {
    padding: var(--space-sm);
    text-align: center;
    color: var(--text-muted);
    font-size: 12px;
}

/* ─── Misc Helpers ─── */
.text-decoration-underline {
    text-decoration: underline;
}
.indent-mt-4-ml-18 {
    margin: 4px 0 0 18px;
}
.indent-mt-4 {
    margin: 4px 0 0 0;
    font-size: 12px;
    color: var(--text-muted);
}
.indent-mt-8-ml-20-warning {
    margin: 8px 0 0 20px;
    color: var(--warning-text-strong);
}

/* ─── Erweiterte Helpers für rechnung_detail.html ─── */

/* Kontextual-Hint mit Border-Left */
.invoice-context-hint {
    margin-top: 14px;
    padding: 12px 14px;
    background: color-mix(in srgb, var(--info) 8%, var(--bg-surface));
    border-left: 3px solid var(--info);
    border-radius: 6px;
}

/* Action-Row Patterns */
.invoice-action-row-top {
    margin-bottom: 18px;
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    align-items: center;
}
.invoice-action-row-mb-12 {
    display: flex;
    gap: var(--space-sm);
    align-items: center;
    flex-wrap: wrap;
    margin-bottom: 12px;
}
.invoice-action-row-mb-16 {
    display: flex;
    gap: var(--space-sm);
    flex-wrap: wrap;
    margin-bottom: var(--space-md);
}
.invoice-action-row-mt-10 {
    margin-top: 10px;
    display: flex;
    gap: var(--space-sm);
    flex-wrap: wrap;
}

/* Badge-Variants */
.invoice-badge-warning-soft {
    background: color-mix(in srgb, var(--warning) 14%, var(--bg-surface));
    color: var(--warning-text-strong);
}
.invoice-badge-danger {
    background: var(--danger);
    color: var(--bg-surface);
}
.invoice-badge-primary-tag {
    background: var(--primary);
    color: var(--bg-surface);
}

/* Source-Card Banner (Info/Danger Variants) */
.invoice-source-card-info {
    margin-bottom: 20px;
    background: var(--info-bg);
    border-left: 4px solid var(--info);
}
.invoice-source-card-danger {
    margin-bottom: 20px;
    border-left: 4px solid var(--danger);
    background: var(--danger-bg);
}
.invoice-source-card-info-only {
    margin-bottom: 20px;
    border-left: 4px solid var(--info);
    background: var(--info-bg);
}

/* Notice-Icon-Big (22px) */
.invoice-notice-icon-info {
    color: var(--info);
    flex-shrink: 0;
    margin-top: 2px;
    font-size: 22px;
}
.invoice-notice-icon-danger {
    color: var(--danger);
    flex-shrink: 0;
    margin-top: 2px;
    font-size: 22px;
}

/* Source-Card Helpers */
.invoice-source-text {
    margin: 0 0 6px 0;
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.55;
}
.invoice-source-link-info {
    color: var(--info);
    font-weight: 600;
}
.invoice-source-link-danger {
    color: var(--danger);
    font-weight: 600;
}
.invoice-source-meta {
    margin: 4px 0 0 0;
    font-size: 12px;
    color: var(--text-muted);
}

/* Notice-Warning Spaced (mt:16, padding:14) */
.invoice-notice-warning-spaced {
    margin-top: var(--space-md);
    padding: 14px;
    background: color-mix(in srgb, var(--warning) 14%, var(--bg-surface));
    border-left: 4px solid var(--warning);
    border-radius: 6px;
}

/* Abschlag-Row */
.invoice-abschlag-row {
    display: flex;
    justify-content: space-between;
    padding: 3px 0;
}

/* XRechnung Success-Feedback Block */
.invoice-xrechnung-feedback {
    margin-top: 10px;
    font-size: 13px;
    color: var(--success);
}

/* Invoice-TR Variants */
.invoice-tr-titel {
    background: var(--bg-surface-2);
    font-weight: 600;
}
.invoice-tr-hinweis {
    font-style: italic;
    color: var(--text-muted);
}

/* Form-Group Flex-Variants */
.form-group-flex-3 {
    flex: 3;
}

/* Progress + Stats (Zahlungs-Progress-Bar) */
.invoice-progress-stats-row {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    margin-bottom: 6px;
}
.invoice-progress-bar {
    height: var(--space-sm);
    background: var(--bg-surface-2);
    border-radius: var(--space-xs);
    overflow: hidden;
}
.invoice-progress-bar-fill {
    height: 100%;
    width: var(--invoice-pct, 0%);
    background: linear-gradient(90deg, var(--success), color-mix(in srgb, var(--success) 70%, var(--primary)));
    border-radius: var(--space-xs);
    transition: width 0.3s;
}
.invoice-offen-strong {
    color: var(--text-color, var(--success));
}
.invoice-offen-strong--danger { color: var(--danger); }
.invoice-offen-strong--success { color: var(--success); }

/* Btn-Tiny-Variant für Aktionen in Tabellen */
.btn-tiny-payment {
    font-size: 11px;
    padding: 4px var(--space-sm);
}

/* Section-Divider mt-14 */
.invoice-section-divider {
    margin-top: 14px;
    border-top: 1px solid var(--border-subtle);
    padding-top: 12px;
}
.invoice-section-h-14-secondary {
    margin: 0 0 10px 0;
    font-size: 14px;
    color: var(--text-secondary);
}

/* Email-History-Link */
.invoice-email-history-col {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.invoice-email-history-link {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 8px 10px;
    background: var(--bg-surface-2);
    border-radius: 6px;
    text-decoration: none;
    color: inherit;
    font-size: 13px;
    border: 1px solid transparent;
}
.invoice-email-history-link:hover {
    border-color: var(--border);
}
.invoice-email-history-meta {
    color: var(--text-muted);
    font-size: 11.5px;
    margin-top: 2px;
}
.invoice-email-history-meta-small {
    font-size: 10.5px;
    color: var(--text-muted);
    margin-top: 3px;
}

/* Modal-Fullscreen-Overlay (E-Mail-Modal) */
.invoice-modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 9999;
    align-items: center;
    justify-content: center;
    padding: 20px;
}
.invoice-modal-overlay-card {
    background: var(--bg-surface);
    border-radius: 12px;
    max-width: 560px;
    width: 100%;
    max-height: 90vh;
    overflow-y: auto;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
}
.invoice-modal-close-btn {
    background: none;
    border: none;
    font-size: 22px;
    cursor: pointer;
    color: var(--text-muted);
    padding: 0 var(--space-xs);
}

/* Settings-Row vertikal (Modal-Body Settings) */
.invoice-settings-vertical {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
    margin-bottom: 14px;
    font-size: 13px;
}

/* Paragraph-Helpers */
.invoice-paragraph-mb-10 {
    margin: 0 0 10px 0;
}
.invoice-paragraph-secondary-13 {
    margin: 0 0 8px 0;
    color: var(--text-secondary);
    font-size: 13.5px;
}
.invoice-paragraph-secondary-13-mb-12 {
    color: var(--text-secondary);
    font-size: 13.5px;
    margin: 0 0 12px 0;
}

/* Meta-Row */
.invoice-meta-row-fs-12 {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    font-size: 12px;
    color: var(--text-muted);
}
.invoice-grid-1-auto {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: var(--space-md);
    align-items: center;
}

/* Code-Block Monospace */
.invoice-code-monospace {
    margin-top: 10px;
    padding: 8px 10px;
    background: var(--bg-surface-2);
    border-radius: 6px;
    font-family: monospace;
    font-size: 11.5px;
    color: var(--text-primary);
    overflow-wrap: break-word;
    word-break: break-all;
}

/* Status-Badges (Mahnungen-Status) */
.invoice-status-badge-inline {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 3px;
    font-size: 13px;
}
.invoice-status-badge-success {
    background: var(--success-bg);
    color: var(--success);
    font-weight: 600;
}
.invoice-status-badge-warning-soft {
    background: color-mix(in srgb, var(--warning) 14%, var(--bg-surface));
    color: var(--warning);
    font-weight: 600;
}
.invoice-status-badge-danger {
    background: var(--danger-bg);
    color: var(--danger);
    font-weight: 600;
}
.invoice-status-badge-muted {
    background: var(--bg-surface-2);
    color: var(--text-muted);
}

/* Link-Primary No-Underline */
.invoice-link-primary-no-underline {
    color: var(--primary);
    text-decoration: none;
    font-size: 13px;
}
.invoice-hint-fs-13-mt-16 {
    color: var(--text-muted);
    font-size: 13px;
    margin: 16px 0 0 0;
}
.invoice-hint-fs-14-mt-8 {
    color: var(--text-muted);
    font-size: 14px;
    margin-top: var(--space-sm);
}

/* Storno-Modal Helpers */
.invoice-storno-warning {
    background: var(--warning-bg);
    border-left: 3px solid var(--warning);
    padding: 12px 14px;
    border-radius: 6px;
    margin-bottom: var(--space-md);
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.5;
}
.invoice-storno-label {
    display: block;
    font-weight: 500;
    margin-bottom: 6px;
}
.invoice-storno-hint {
    color: var(--text-muted);
    font-size: 11px;
    display: block;
    margin-top: 6px;
}

/* ============================================================
   ITER 14 PHASE C.6 — Buchhaltung Rest (13 Templates) — 2026-05-05
   Refactor: 229 inline-styles in 13 Templates → CSS-Klassen
   Templates: ausgaben, datev_export, einnahmen, export, lohn_assistent,
              mahnung_detail, mahnungen_liste, mahnwesen_config, offene_posten,
              rechnung_handwerker_neu, rechnungen, uebersicht, ust
   ============================================================ */

/* ─── Cells (Tabellen) ─── */
.bh-cell-num-6 {
    padding: 6px 0;
    text-align: right;
    font-variant-numeric: tabular-nums;
}
.bh-cell-pad-left-16 {
    padding: 6px 0;
    padding-left: var(--space-md);
}
.bh-cell-center-10 {
    padding: 10px;
    text-align: center;
}
.bh-cell-center-full {
    width: 100%;
    text-align: center;
}
.bh-cell-right-bold-success {
    text-align: right;
    font-weight: 700;
    color: var(--success);
}
.bh-cell-right-bold-danger {
    text-align: right;
    font-weight: 700;
    color: var(--danger);
}
.bh-cell-right-num-6 {
    text-align: right;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}
.bh-cell-right-num-success {
    text-align: right;
    font-weight: 600;
    color: var(--success);
}

/* ─── Tabelle Voll ─── */
.bh-table-full {
    width: 100%;
    border-collapse: collapse;
}

/* ─── Hint-Helpers ─── */
.bh-hint-muted-14 {
    color: var(--text-muted);
    font-size: 14px;
}
.bh-hint-muted-14-mb-16 {
    color: var(--text-muted);
    font-size: 14px;
    margin: 0 0 var(--space-md);
}
.bh-hint-muted-14-line-160 {
    color: var(--text-muted);
    font-size: 14px;
    line-height: 1.6;
}
.bh-hint-muted-13-mb-16 {
    color: var(--text-muted);
    font-size: 13px;
    margin: 0 0 16px 0;
}
.bh-hint-muted-13-mt-4 {
    color: var(--text-muted);
    font-size: 13px;
    margin: 4px 0 0 0;
}
.bh-hint-muted-12-mb-12 {
    color: var(--text-muted);
    font-size: 12px;
    margin: 0 0 12px 0;
}
.bh-text-secondary-13 {
    margin: 0;
    font-size: 13px;
    color: var(--text-secondary);
}

/* ─── Sub-Label / Brand-Helpers ─── */
.bh-sublabel {
    display: block;
    font-size: 12px;
    color: var(--text-muted);
    margin-top: 2px;
}
.bh-brand-subtitle {
    color: var(--text-muted);
    font-weight: 400;
    font-size: 12px;
}

/* ─── Form-Helpers ─── */
.bh-checkbox-large {
    width: 18px;
    height: 18px;
    cursor: pointer;
}
.bh-checkbox-row {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
}
.bh-row-flex-12 {
    display: flex;
    align-items: center;
    gap: 12px;
}
.bh-row-flex-6 {
    display: flex;
    align-items: center;
    gap: 6px;
}
.bh-row-flex-12-wrap {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
.bh-row-flex-start-12 {
    display: flex;
    gap: 12px;
    align-items: flex-start;
}
.bh-actions-flex-0 {
    display: flex;
    gap: 0;
    flex-wrap: wrap;
}

/* ─── Cards (Layout) ─── */
.bh-card-bordered {
    border: 1px solid var(--border);
    border-radius: var(--space-sm);
    padding: 20px;
}
.bh-card-tile-mini {
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 10px;
    background: var(--bg-surface-2);
}
.bh-stat-fullspan {
    grid-column: 1/-1;
    padding: 12px;
    background: var(--bg-surface-2);
    border-radius: 6px;
}

/* ─── Stat-Tile (Mahnungen-KPI) ─── */
.bh-stat-tile-base {
    flex: 1;
    min-width: 200px;
    padding: var(--space-md);
    border-left: 4px solid var(--border);
    border-radius: var(--space-xs);
}
.bh-stat-tile--danger {
    background: var(--mahnung-danger-bg);
    border-left-color: var(--mahnung-danger-border);
}
.bh-stat-tile--warning-gold {
    background: var(--mahnung-warning-bg);
    border-left-color: var(--warning-gold);
}
.bh-stat-tile-value-warning-gold {
    font-size: 28px;
    font-weight: 700;
    color: var(--warning-gold);
}

/* ─── Stat-Card-Big (Datev-Export-Tiles) ─── */
.bh-stat-value-large {
    font-size: 20px;
    font-weight: 600;
    color: var(--text-primary);
    margin-top: 2px;
}
.bh-stat-success-mt {
    font-size: 11px;
    color: var(--success);
    margin-top: 2px;
}

/* ─── Buttons ─── */
.bh-btn-small {
    font-size: 12px;
    padding: 6px 10px;
}

/* ─── Notice-Icon-Info (Hint-Card) ─── */
.bh-notice-icon-info {
    color: var(--info);
    flex-shrink: 0;
    margin-top: 2px;
}
.bh-link-primary-bold {
    color: var(--primary);
    font-weight: 600;
    text-decoration: none;
}
.bh-link-danger-bold {
    color: var(--danger);
    font-weight: 600;
}

/* ─── Mahnung-Stufe Badge (Z.1 Custom-Property --stufe-color) ─── */
.bh-mahnstufe-badge {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 3px;
    font-size: 12px;
    font-weight: 600;
    background: var(--stufe-color);
    color: var(--bg-surface);
}

/* ─── Mahnung-Header (Color z.B. h3 #D69E2E) ─── */
.bh-mahnstufe-h3-warning-gold {
    margin: 0 0 8px 0;
    color: var(--warning-gold);
}

/* ─── Badge-B2B (existing Pattern, smaller) ─── */
.bh-badge-b2b {
    display: inline-block;
    padding: 1px 6px;
    margin-left: var(--space-xs);
    border-radius: 3px;
    font-size: 10px;
    background: var(--badge-info-bg);
    color: var(--badge-info-text);
}
.bh-badge-b2b-list {
    display: inline-block;
    padding: 2px 5px;
    margin-left: var(--space-xs);
    border-radius: 3px;
    font-size: 10px;
    background: var(--badge-info-bg);
    color: var(--badge-info-text);
}

/* ─── Ausgaben-Hero (Gradient-Card) ─── */
.bh-ausgaben-hero-gradient {
    background: linear-gradient(135deg, var(--bh-gradient-from), var(--bh-gradient-to));
    border: 1px solid var(--bh-gradient-border);
}

/* ─── Stat-Tile (Mahnungs-Stat-Hero conditional class) ─── */
.bh-mahn-stat-tile {
    flex: 1;
    min-width: 200px;
    padding: var(--space-md);
    border-left: 4px solid var(--border);
    border-radius: var(--space-xs);
}
.bh-mahn-stat-value-warning-gold {
    font-size: 28px;
    font-weight: 700;
    color: var(--warning-gold);
}

/* ─── Margin/Headers Misc ─── */
.bh-mb-6 {
    margin: 0 0 6px;
}
.bh-mb-6-fs-14 {
    margin: 0 0 6px 0;
    font-size: 14px;
}

/* ─── Card-Tile Color-Linked (Z.1 Custom-Property für border-top) ─── */
.bh-tile-border-top {
    text-decoration: none;
    padding: 14px;
    background: var(--bg-surface-2);
    border-radius: var(--space-sm);
    border-top: 3px solid var(--tile-color);
    display: block;
    color: inherit;
    transition: transform 0.1s;
}

/* ─── XRechnung-Info-Banner (rechnung_handwerker_neu) ─── */
.bh-xrechnung-info-banner {
    margin-bottom: 20px;
    background: var(--xrechnung-info-bg);
    border-left: 4px solid var(--info);
}
.bh-xrechnung-info-text {
    margin: 0;
    color: var(--xrechnung-info-text);
}
.bh-xrechnung-info-link {
    color: var(--xrechnung-info-text);
    text-decoration: underline;
}
.bh-warning-strong-text {
    margin: 0;
    color: var(--warning-text-strong);
}
.bh-warning-strong-link {
    color: var(--warning-text-strong);
    text-decoration: underline;
}

/* ─── Mahnung-Stufe-Badge mit Z.1 (display:inline-block etc.) ─── */
.bh-mahnstufe-badge-inline {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 3px;
    font-size: 12px;
    font-weight: 600;
}

/* ─── Conditional TR (Satz fehlt) ─── */
.bh-tr-warning-bg {
    background: var(--warning-bg);
}

/* ─── Cell-Right Conditional (Z.1 conditional class) ─── */
.bh-cell-right-bold-conditional-success {
    text-align: right;
    font-weight: 700;
    color: var(--success);
}
.bh-cell-right-bold-conditional-danger {
    text-align: right;
    font-weight: 700;
    color: var(--danger);
}
.bh-cell-right-bold-conditional-success-medium {
    text-align: right;
    font-weight: 600;
    color: var(--success);
}
.bh-cell-right-bold-conditional-danger-medium {
    text-align: right;
    font-weight: 600;
    color: var(--danger);
}

/* ─── B2B Badge fs:10 (mahnung_detail) ─── */
.bh-mahnung-info-icon-22 {
    color: var(--info);
    flex-shrink: 0;
    margin-top: 2px;
}

/* ─── Scanner-Status (JS-set via classList — ausgaben.html) ─── */
.bh-scan-status--error {
    background: var(--bh-scan-warn-bg);
    color: var(--bh-scan-warn-text);
}
.bh-scan-status--success {
    background: var(--bh-scan-success-bg);
    color: var(--bh-scan-success-text);
}
.bh-scan-status--info {
    background: var(--bh-scan-info-bg);
    color: var(--bh-scan-info-text);
}

/* ─── Badge Info-Soft fs:10 (Position-Liste) ─── */
.ds-admin-badge--info-tiny {
    background: var(--badge-info-bg);
    color: var(--badge-info-text);
    font-size: 10px;
}

/* ─── C.6 Wave 2 Helpers (verbleibende Patterns) ─── */

/* Cells (mono-numeric variants) */
.bh-cell-num-bold {
    text-align: right;
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}
.bh-cell-num-success {
    text-align: right;
    font-variant-numeric: tabular-nums;
    color: var(--success);
}
.bh-cell-num-muted {
    text-align: right;
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
}
.bh-cell-num-pad-10 {
    padding: 10px;
    text-align: right;
    font-variant-numeric: tabular-nums;
}
.bh-cell-pad-10-muted {
    padding: 10px;
    color: var(--text-muted);
}
.bh-cell-text-right-success {
    text-align: right;
    color: var(--success);
}
.bh-cell-text-right-danger {
    text-align: right;
    color: var(--danger);
}
.bh-cell-text-right-primary-fs-18 {
    text-align: right;
    font-size: 18px;
    color: var(--primary);
}
.bh-cell-empty-state {
    text-align: center;
    padding: 30px 20px;
    color: var(--text-muted);
}

/* Total-Row Variants */
.bh-total-row-padded-right-bold {
    padding: 8px 0;
    text-align: right;
    font-weight: 600;
}
.bh-total-row-padded-num {
    padding: 8px 0;
    text-align: right;
    font-variant-numeric: tabular-nums;
}
.bh-total-row-padded-14 {
    padding: 8px 0;
    font-size: 14px;
}
.bh-total-row-padded-line {
    padding: 8px 0;
    color: var(--text-secondary);
    line-height: 1.6;
}
.bh-total-row-pad-12 {
    padding: 12px 0;
}
.bh-total-row-pad-12-stufe-color {
    padding: 12px 0;
    text-align: right;
    color: var(--stufe-color, var(--text-primary));
    font-variant-numeric: tabular-nums;
}

/* Status-Cards (success/danger/muted Variants) */
.bh-status-card-success {
    padding: var(--space-md);
    background: var(--success-bg);
    border-left: 4px solid var(--success);
    border-radius: var(--space-xs);
}
.bh-status-card-danger {
    padding: var(--space-md);
    background: var(--danger-bg);
    border-left: 4px solid var(--danger);
    border-radius: var(--space-xs);
}
.bh-status-card-muted {
    padding: var(--space-md);
    background: var(--bg-surface-2);
    border-left: 4px solid var(--text-muted);
    border-radius: var(--space-xs);
}

/* Tab-Links (Filter) */
.bh-tab-active {
    padding: 12px 20px;
    text-decoration: none;
    font-weight: 600;
    border-bottom: 2px solid var(--primary);
    margin-bottom: -2px;
    color: var(--primary);
}
.bh-tab-row-flex {
    padding: 0 20px var(--space-md);
    display: flex;
    gap: 20px;
    font-size: 13px;
}

/* Container + Layout */
.bh-overflow-x-auto {
    overflow-x: auto;
}
.bh-opacity-60 {
    opacity: 0.6;
}
.bh-min-w-220 {
    min-width: 220px;
}
.bh-section-divider-top {
    margin: 16px 0;
    border: none;
    border-top: 1px solid var(--border-subtle);
}

/* Margin-Helpers */
.bh-mt-8-fs-15-secondary {
    margin: 8px 0;
    font-size: 15px;
    color: var(--text-secondary);
}
.bh-mt-8-muted {
    margin: 8px 0 0;
    color: var(--text-muted);
}
.bh-mt-8-muted-12 {
    margin: 8px 0 0 0;
    font-size: 12px;
    color: var(--text-muted);
}
.bh-mt-8 {
    margin: 8px 0 0 0;
}
.bh-mt-12-padded-warning {
    margin-top: 12px;
    padding: 14px;
    background: var(--warning-bg);
    border: 1px solid var(--warning);
    border-radius: 6px;
    color: var(--warning-text-strong);
}
.bh-mt-12-muted-13 {
    margin-top: 12px;
    color: var(--text-muted);
    font-size: 13px;
}
.bh-mt-14-muted-13-line {
    margin-top: 14px;
    color: var(--text-muted);
    font-size: 13px;
    line-height: 1.6;
}
.bh-mt-20-flex-8 {
    margin-top: 20px;
    display: flex;
    gap: var(--space-sm);
}
.bh-mt-20-warning-soft {
    margin-top: 20px;
    background: color-mix(in srgb, var(--warning) 14%, var(--bg-surface));
    border-left: 4px solid var(--warning);
}
.bh-ml-8 {
    margin-left: var(--space-sm);
}

/* Card-Variants (banner-style) */
.bh-card-info-bg {
    margin-bottom: 20px;
    border-left: 4px solid var(--info);
    background: var(--info-bg);
}
.bh-card-warning-bg {
    margin-bottom: 20px;
    background: var(--warning-bg);
    border-left: 4px solid var(--warning);
}
.bh-card-success-bg {
    margin-bottom: 20px;
    background: var(--success-bg);
    border-left: 4px solid var(--success);
}
.bh-card-surface-bg {
    margin-bottom: 20px;
    background: var(--bg-surface);
}

/* Headings */
.bh-h-mb-8-primary {
    margin: 0 0 8px 0;
    color: var(--primary);
}
.bh-h-mb-8-danger {
    margin: 0 0 8px 0;
    color: var(--danger);
}
.bh-h-mb-6-fs-16 {
    margin: 0 0 6px 0;
    font-size: var(--space-md);
}
.bh-h-mb-6-fs-14-primary {
    margin: 0 0 6px 0;
    font-size: 14px;
    color: var(--text-primary);
}
.bh-h-mb-12-muted-14 {
    margin: 0 0 12px 0;
    color: var(--text-muted);
    font-size: 14px;
}

/* Paragraph-Helpers */
.bh-p-no-margin-fs-14 {
    margin: 0;
    font-size: 14px;
}
.bh-p-no-margin-muted-13 {
    margin: 0;
    color: var(--text-muted);
    font-size: 13px;
}
.bh-list-padded-muted-13 {
    margin: 0;
    padding-left: 20px;
    color: var(--text-muted);
    font-size: 13px;
}

/* Conditional Cell-Right (Z.1 conditional class für einnahme/ausgabe) */
.bh-cell-conditional-success {
    text-align: right;
    color: var(--success);
}
.bh-cell-conditional-danger {
    text-align: right;
    color: var(--danger);
}

/* ─── C.6 Wave 3 Helpers ─── */

/* Filter-Tab (mit conditional active class) */
.bh-filter-tab {
    padding: 10px var(--space-md);
    text-decoration: none;
    color: var(--text-muted);
}
.bh-filter-tab--small {
    padding: 10px 14px;
    text-decoration: none;
    font-size: 13px;
    color: var(--text-muted);
}
.bh-filter-tab--active {
    color: var(--primary);
    font-weight: 600;
    border-bottom: 2px solid var(--primary);
    margin-bottom: -1px;
}
.bh-filter-tab-row {
    display: flex;
    gap: 0;
    border-bottom: 2px solid var(--border);
}

/* Card-Variants */
.bh-card-info-banner {
    margin-bottom: 20px;
    background: var(--info-bg);
    border-left: 4px solid var(--info);
}
.bh-card-tab-merge {
    margin-bottom: 0;
    border-bottom: none;
    border-radius: 8px 8px 0 0;
}
.bh-grid-fullspan {
    grid-column: 1/-1;
}

/* KPI-Stat-Values (verschiedene Größen) */
.bh-kpi-value-26-success { font-size: 26px; font-weight: 700; color: var(--success); }
.bh-kpi-value-26-danger  { font-size: 26px; font-weight: 700; color: var(--danger); }
.bh-kpi-value-26-primary { font-size: 26px; font-weight: 700; color: var(--text-primary); }
.bh-kpi-value-28-danger  { font-size: 28px; font-weight: 700; color: var(--danger); }
.bh-kpi-value-22-mt-4 {
    font-size: 22px;
    font-weight: 700;
    color: var(--kpi-color);
    margin: 4px 0;
}
.bh-kpi-value-18-muted   { font-size: 18px; font-weight: 600; color: var(--text-muted); }

/* Heading-Bold mit Icon */
.bh-h-fs-15-flex {
    font-size: 15px;
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: var(--space-xs);
    display: flex;
    align-items: center;
    gap: var(--space-sm);
}

/* Text-Helpers */
.bh-fs-14-line {
    font-size: 14px;
    line-height: 1.6;
}
.bh-fs-13-muted-line {
    font-size: 13px;
    color: var(--text-muted);
    line-height: 1.7;
}
.bh-fs-12-warm-gray {
    font-size: 12px;
    color: var(--text-secondary);
}
.bh-fs-11-danger {
    font-size: 11px;
    color: var(--danger);
    margin-top: 2px;
}
.bh-flex-1-min-260 {
    flex: 1;
    min-width: 260px;
}

/* Stat-Tile Muted-Variant */
.bh-stat-tile--muted {
    flex: 1;
    min-width: 200px;
    padding: var(--space-md);
    background: var(--bg-surface-2);
    border-left: 4px solid var(--text-muted);
    border-radius: var(--space-xs);
}

/* Bar-Chart Helpers (uebersicht) */
.bh-chart-bar-flex-col {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}
.bh-chart-bar-success {
    flex: 1;
    background: var(--success);
    border-radius: 3px 3px 0 0;
    min-height: 2px;
    height: var(--bar-h, 0px);
}
.bh-chart-bar-danger {
    flex: 1;
    background: var(--danger);
    border-radius: 3px 3px 0 0;
    min-height: 2px;
    height: var(--bar-h, 0px);
}
.bh-chart-row {
    display: flex;
    gap: var(--space-sm);
    align-items: flex-end;
    height: 200px;
    padding: 20px 10px 10px;
}
.bh-chart-pair {
    display: flex;
    gap: 2px;
    align-items: flex-end;
    height: 160px;
    width: 100%;
}
.bh-flex-end-col {
    display: flex;
    align-items: flex-end;
}

/* Hidden-Block (display:none placeholder) */
.bh-hidden-block-mt-12 {
    display: none;
    margin-top: 12px;
    padding: 10px;
    border-radius: var(--space-sm);
    font-size: 13px;
}
.bh-hidden-bg-surface-2 {
    display: none;
    background: var(--bg-surface-2);
}

/* Status-Badge-Inline (klein) */
.bh-status-badge-3-8 {
    display: inline-block;
    padding: 3px var(--space-sm);
    border-radius: 3px;
    font-size: 12px;
}
.bh-status-badge-3-8-muted    { background: var(--bg-surface-2); color: var(--text-muted); }
.bh-status-badge-3-8-success  { background: var(--success-bg); color: var(--success); }
.bh-status-badge-3-8-warning  {
    background: color-mix(in srgb, var(--warning) 14%, var(--bg-surface));
    color: var(--warning-gold);
}
.bh-status-badge-3-8-danger {
    background: var(--danger-bg);
    color: var(--danger);
}
.bh-status-badge-3-8-danger-strong {
    background: var(--danger-bg);
    color: var(--danger);
    font-weight: 600;
}
.bh-status-badge-3-8-primary  { background: var(--badge-info-bg); color: var(--primary); }

/* Mini-Marker (display:inline-block; padding:2px 6px) */
.bh-mini-tag {
    display: inline-block;
    padding: 2px 6px;
    margin-left: var(--space-xs);
    border-radius: 3px;
    font-size: 11px;
    background: var(--border);
    color: var(--text-secondary);
}

/* Dot-Legend (display:inline-block 12x12) */
.bh-legend-dot {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 2px;
    margin-right: var(--space-xs);
}
.bh-legend-dot--success { background: var(--success); }
.bh-legend-dot--danger  { background: var(--danger); }

/* Grids (verschiedene minmax) */
.bh-grid-280 {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 20px;
}
.bh-grid-260 {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 18px;
    padding: 8px 0;
}
.bh-grid-220 {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: var(--space-md);
}
.bh-grid-180 {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 14px;
    padding: 8px 0;
}
.bh-grid-160 {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 12px;
}
.bh-grid-3-col {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-md);
}
.bh-grid-2-1 {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 20px;
}
.bh-grid-1-1-mt-12 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-top: 12px;
}

/* Flex-Layouts */
.bh-flex-between-start-wrap {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 12px;
}
.bh-flex-between-center-wrap {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}
.bh-flex-16-wrap-mt-8 {
    display: flex;
    gap: var(--space-md);
    flex-wrap: wrap;
    margin-top: var(--space-sm);
}
.bh-flex-12-wrap {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}
.bh-flex-10-end-wrap {
    display: flex;
    gap: 10px;
    align-items: flex-end;
    flex-wrap: wrap;
}

/* ─── C.6 Wave 4 (final patterns) ─── */

/* Color helpers for text */
.bh-color-warning-bold { color: var(--warning); font-weight: 600; }
.bh-color-warning-shrink { color: var(--warning); flex-shrink: 0; }
.bh-color-success-bold { color: var(--success); font-weight: 600; }
.bh-color-success-shrink { color: var(--success); flex-shrink: 0; }
.bh-color-info-bold { color: var(--info); font-weight: 600; }
.bh-text-muted-mb-12 { color: var(--text-muted); margin: 0 0 12px 0; }
.bh-hint-muted-14-mb-12 { color: var(--text-muted); font-size: 14px; margin: 0 0 12px 0; }
.bh-hint-muted-13-mt-8 { color: var(--text-muted); font-size: 13px; margin: 8px 0 0 0; }
.bh-hint-muted-13-mt-12 { color: var(--text-muted); font-size: 13px; margin: 12px 0 0 0; }
.bh-hint-muted-13-mb-0 { color: var(--text-muted); font-size: 13px; margin: 0; }
.bh-label-uppercase-12 {
    color: var(--text-muted);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.bh-link-primary-13 {
    color: var(--primary);
    text-decoration: none;
    font-size: 13px;
}
.bh-link-primary-11 {
    color: var(--primary);
    font-size: 11px;
}
.bh-link-inherit-underline {
    color: inherit;
    text-decoration: underline;
}

/* Conditional colored row (Z.1) */
.bh-row-conditional-success { color: var(--success); }
.bh-row-conditional-danger { color: var(--danger); }

/* Cards (variants with mahnstufe-color border) */
.bh-card-bordered-padded {
    border: 1px solid var(--border);
    border-radius: var(--space-sm);
    padding: 12px;
    background: var(--bg-surface-2);
}
.bh-card-bordered-padded-warning {
    border: 1px solid var(--border);
    border-radius: var(--space-sm);
    padding: 12px;
    background: var(--mahnung-warning-bg);
}
.bh-card-bordered-padded-danger {
    border: 1px solid var(--border);
    border-radius: var(--space-sm);
    padding: 12px;
    background: var(--mahnung-danger-bg);
}

/* Mahnung-Card (Z.1 mit --stufe-color border-left) */
.bh-mahnung-card-stufe {
    border-left: 4px solid var(--stufe-color);
    margin-bottom: 20px;
}
.bh-row-mahnung-stufe-summary {
    border-top: 2px solid var(--stufe-color);
    font-weight: 700;
    font-size: 17px;
}

/* Border-Top Row */
.bh-row-border-top-primary {
    border-top: 2px solid var(--text-primary);
}
.bh-row-border-top-bold {
    border-top: 2px solid var(--border);
    font-weight: 700;
}

/* Mahnung-TR conditional bg (mahnstufe-2 vs is_overdue) */
.bh-tr-mahn-overdue-2 {
    background: var(--mahnung-warning-bg);
}
.bh-tr-mahn-overdue {
    background: var(--mahnung-warning-bg);
}
.bh-tr-default-border {
    border-bottom: 1px solid var(--border-subtle);
}

/* Spezifische Badge / Banner */
.bh-info-badge-tiny {
    background: var(--info-bg);
    color: var(--info);
    font-size: 10px;
}
.bh-badge-danger-white {
    background: var(--danger);
    color: var(--bg-surface);
}
.bh-thead-bordered {
    background: var(--bg-surface-2);
    border-bottom: 2px solid var(--border);
}

/* Warning-Banner mit hex border (lohn_assistent) */
.bh-warning-banner-soft-yellow {
    background: color-mix(in srgb, var(--warning) 14%, var(--bg-surface));
    border-left: 4px solid var(--warning);
}

/* Header-Flex-Layout */
.bh-header-between-wrap {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
}

/* ============================================================
   ITER 14 PHASE C.7 — Migration-Wizard (5 Templates) — 2026-05-05
   Refactor: 105 inline-styles in 5 Templates → CSS-Klassen
   Templates: migration/{dashboard,history,job_detail,preview,upload}.html
   ============================================================ */

/* ─── Container-Wrappers ─── */
.mig-wrap-1000 { max-width: 1000px; }
.mig-wrap-800 { max-width: 800px; }

/* ─── Status-Pill Warning (3x repeat) ─── */
.mig-status-pill-warning {
    background: var(--warning-bg);
    color: var(--warning);
}

/* ─── Status-Boxes (text-center mit bg-Variants) ─── */
.mig-status-box-success {
    text-align: center;
    padding: 12px;
    background: var(--success-bg);
    border-radius: var(--space-sm);
}
.mig-status-box-warning {
    text-align: center;
    padding: 12px;
    background: var(--warning-bg);
    border-radius: var(--space-sm);
}
.mig-status-box-info {
    text-align: center;
    padding: 12px;
    background: var(--info-bg);
    border-radius: var(--space-sm);
}
.mig-status-box-danger {
    text-align: center;
    padding: 12px;
    background: var(--danger-bg);
    border-radius: var(--space-sm);
}

/* ─── Empty-State Variants ─── */
.mig-empty-state-large {
    text-align: center;
    padding: 40px;
}
.mig-empty-state-medium {
    text-align: center;
    padding: var(--space-lg);
}

/* ─── Status-Icon-Tile (40x40 mit Tenant-Color via color-mix) ─── */
.mig-status-icon-tile {
    width: 40px;
    height: 40px;
    border-radius: var(--space-sm);
    background: color-mix(in srgb, var(--primary) 15%, transparent);
    color: var(--primary);
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ─── Form-Inputs ─── */
.mig-input-padded-6 {
    width: 100%;
    padding: 6px;
    border: 1px solid var(--border);
    border-radius: var(--space-xs);
}
.mig-input-padded-10-dashed {
    width: 100%;
    padding: 10px;
    border: 2px dashed var(--border);
    border-radius: var(--space-sm);
    background: var(--bg-surface-2);
}
.mig-input-padded-6-10 {
    padding: 6px 10px;
    border: 1px solid var(--border);
    border-radius: var(--space-xs);
}

/* ─── Cell Widths (in Tabellen) ─── */
.mig-cell-w-50 { width: 50px; }
.mig-cell-w-40 { width: 40px; }
.mig-cell-w-30 { width: 30px; }

/* ─── Layout Helpers ─── */
.mig-overflow-x-auto { overflow-x: auto; }
.mig-overflow-y-400 {
    max-height: 400px;
    overflow-y: auto;
}
.mig-row-flex-12 {
    display: flex;
    gap: 12px;
    align-items: center;
}
.mig-margin-bottom-12 {
    margin-bottom: 12px;
}
.mig-margin-bottom-16 {
    margin-bottom: var(--space-md);
}
.mig-margin-bottom-16-padded {
    margin-bottom: var(--space-md);
    padding: 12px var(--space-md);
}
.mig-margin-bottom-24 {
    margin-bottom: var(--space-lg);
}
.mig-margin-top-12 {
    margin-top: 12px;
}
.mig-margin-top-16 {
    margin-top: var(--space-md);
}
.mig-margin-top-0-flex {
    margin-top: 0;
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
}
.mig-margin-top-0-warning-flex {
    margin-top: 0;
    color: var(--warning);
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
}
.mig-margin-top-0-danger-flex {
    margin-top: 0;
    color: var(--danger);
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
}

/* ─── Margin/Padding Helpers ─── */
.mig-m-0 { margin: 0; }
.mig-p-0 { padding: 0; }
.mig-m-0-fs-16 { margin: 0; font-size: var(--space-md); }
.mig-m-0-fs-13 { margin: 0; font-size: 13px; }
.mig-m-0-fs-13-secondary {
    margin: 0;
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.4;
}
.mig-m-0-0-4-bold {
    margin: 0 0 4px 0;
    font-size: var(--space-md);
    font-weight: 600;
}

/* ─── Hint-Helpers ─── */
.mig-hint-12-secondary {
    font-size: 12px;
    color: var(--text-secondary);
}
.mig-hint-secondary-mb-16 {
    color: var(--text-secondary);
    margin-bottom: var(--space-md);
}
.mig-hint-mt-12-fs-12 {
    margin-top: 12px;
    font-size: 12px;
    color: var(--text-muted);
}
.mig-hint-mt-12-primary {
    margin-top: 12px;
    color: var(--primary);
    font-size: 13px;
    font-weight: 500;
}
.mig-hint-mt-16-info-banner {
    margin-top: var(--space-md);
    padding: 12px;
    background: var(--info-bg);
    border-radius: var(--space-sm);
    font-size: 13px;
}

/* ─── Misc helpers ─── */
.mig-w-100 { width: 100%; }
.mig-color-danger { color: var(--danger); }
.mig-btn-large-flex {
    padding: 12px var(--space-xl);
    font-size: var(--space-md);
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
}

/* ─── TR Conditional Background (preview.html) ─── */
.mig-tr-error {
    background: color-mix(in srgb, var(--danger) 8%, transparent);
}
.mig-tr-duplicate {
    background: color-mix(in srgb, var(--warning) 8%, transparent);
}

/* ─── C.7 Wave 2 Helpers ─── */

/* KPI-Stat-Values 28px (4 Color-Variants) */
.mig-kpi-28-warning { font-size: 28px; font-weight: 700; color: var(--warning); }
.mig-kpi-28-primary { font-size: 28px; font-weight: 700; color: var(--text-primary); }
.mig-kpi-28-success { font-size: 28px; font-weight: 700; color: var(--success); }
.mig-kpi-28-danger { font-size: 28px; font-weight: 700; color: var(--danger); }

/* KPI-Stat-Values 24px (4 Color-Variants) */
.mig-kpi-24-warning { font-size: var(--space-lg); font-weight: 700; color: var(--warning); }
.mig-kpi-24-success { font-size: var(--space-lg); font-weight: 700; color: var(--success); }
.mig-kpi-24-info { font-size: var(--space-lg); font-weight: 700; color: var(--info); }
.mig-kpi-24-danger { font-size: var(--space-lg); font-weight: 700; color: var(--danger); }

/* Status-Label Uppercase 12px (4 Color-Variants) */
.mig-label-12-uppercase-warning {
    font-size: 12px;
    color: var(--warning);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.mig-label-12-uppercase-muted {
    font-size: 12px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.mig-label-12-uppercase-success {
    font-size: 12px;
    color: var(--success);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.mig-label-12-uppercase-danger {
    font-size: 12px;
    color: var(--danger);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Status-Label Uppercase 10px (4 Color-Variants) */
.mig-label-10-uppercase-warning { font-size: 10px; color: var(--warning); text-transform: uppercase; }
.mig-label-10-uppercase-success { font-size: 10px; color: var(--success); text-transform: uppercase; }
.mig-label-10-uppercase-info { font-size: 10px; color: var(--info); text-transform: uppercase; }
.mig-label-10-uppercase-danger { font-size: 10px; color: var(--danger); text-transform: uppercase; }

/* Misc Hint-Helpers */
.mig-hint-13-flex {
    font-size: 13px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.mig-hint-13-secondary-m-0 {
    font-size: 13px;
    color: var(--text-secondary);
    margin: 0;
}
.mig-hint-13-secondary-mb-16 {
    font-size: 13px;
    color: var(--text-secondary);
    margin-bottom: var(--space-md);
}
.mig-hint-12-muted-mt-4 {
    font-size: 12px;
    color: var(--text-muted);
    margin-top: var(--space-xs);
}
.mig-hint-11 {
    font-size: 11px;
}
.mig-hint-11-secondary-300 {
    font-size: 11px;
    color: var(--text-secondary);
    max-width: 300px;
}

/* Monospace Helpers */
.mig-mono { font-family: monospace; }
.mig-mono-11 { font-family: monospace; font-size: 11px; }
.mig-mono-11-muted {
    font-family: monospace;
    font-size: 11px;
    color: var(--text-muted);
}

/* Color Helpers */
.mig-color-warning { color: var(--warning); }
.mig-flex-shrink-0-info { flex-shrink: 0; color: var(--info); }

/* Inline-Flex 4px gap */
.mig-inline-flex-4 {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    vertical-align: middle;
}

/* Empty-State Icon Circle (history.html) */
.mig-icon-circle-56 {
    display: inline-flex;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--bg-surface-2);
    color: var(--text-muted);
    align-items: center;
    justify-content: center;
    margin-bottom: 12px;
}

/* Grids */
.mig-grid-280 {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: var(--space-md);
}
.mig-grid-4col {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}
.mig-grid-4col-mb-20 {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-bottom: 20px;
}

/* Flex-Layouts */
.mig-flex-between-mb-12 {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}
.mig-flex-end-mb-12 {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 12px;
    gap: var(--space-sm);
}
.mig-flex-row-8-mb-20 {
    display: flex;
    gap: var(--space-sm);
    margin-bottom: 20px;
}

/* Filter-Item-Card (clickable mit/ohne mb) */
.mig-filter-item-card-mb {
    display: flex;
    align-items: flex-start;
    gap: var(--space-sm);
    padding: 10px;
    background: var(--bg-surface-2);
    border-radius: 6px;
    margin-bottom: var(--space-sm);
    cursor: pointer;
}
.mig-filter-item-card {
    display: flex;
    align-items: flex-start;
    gap: var(--space-sm);
    padding: 10px;
    background: var(--bg-surface-2);
    border-radius: 6px;
    cursor: pointer;
}

/* Vertical-Header Flex-Between */
.mig-flex-vertical-header-mb-12 {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 12px;
}

/* Card-Tile (dashboard) Z.1 conditional */
.mig-card-tile {
    display: block;
    padding: 20px;
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: 12px;
    text-decoration: none;
    color: var(--text-primary);
    transition: all 0.15s;
}
.mig-card-tile--locked {
    opacity: 0.6;
}

/* Block-Label-Bold */
.mig-label-block-bold-mb-8 {
    display: block;
    font-weight: 600;
    margin-bottom: var(--space-sm);
}

/* ─── C.7 Wave 3 (final patterns) ─── */

/* Info-Banner-Header (dashboard) */
.mig-info-banner-header {
    background: var(--info-bg);
    border-left: 4px solid var(--info);
    padding: 16px 20px;
    border-radius: var(--space-sm);
    margin-bottom: var(--space-lg);
    display: flex;
    gap: 14px;
    align-items: flex-start;
}
.mig-text-14-secondary {
    color: var(--text-secondary);
    font-size: 14px;
}

/* Badge Warning Inline-Flex (dashboard locked) */
.mig-badge-warning-flex-10 {
    background: var(--warning-bg);
    color: var(--warning);
    font-size: 10px;
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
}

/* Hint 13 Secondary */
.mig-hint-13-secondary {
    color: var(--text-secondary);
    font-size: 13px;
}

/* Cell Error (preview Table) */
.mig-cell-error {
    color: var(--danger);
    font-size: 11px;
    padding: 4px var(--space-sm);
    background: color-mix(in srgb, var(--danger) 5%, transparent);
}

/* Job-Result-Banner (4 Variants: success, warning, danger, info) */
.mig-result-banner {
    padding: 12px var(--space-md);
    border-radius: var(--space-sm);
    margin-bottom: var(--space-md);
    display: flex;
    gap: 12px;
    align-items: flex-start;
}
.mig-result-banner--success {
    background: var(--success-bg);
    border-left: 4px solid var(--success);
}
.mig-result-banner--warning {
    background: var(--warning-bg);
    border-left: 4px solid var(--warning);
}
.mig-result-banner--danger {
    background: var(--danger-bg);
    border-left: 4px solid var(--danger);
}
.mig-result-banner--info {
    background: var(--info-bg);
    border-left: 4px solid var(--info);
}

/* Action-Card mit Border-Left (warning + danger) */
.mig-action-card-warning {
    background: var(--warning-bg);
    border-left: 4px solid var(--warning);
}
.mig-action-card-danger {
    background: color-mix(in srgb, var(--danger) 8%, var(--bg-surface));
    border-left: 4px solid var(--danger);
}

/* Action-Buttons (warning/danger mit white text) */
.mig-btn-warning-flex {
    background: var(--warning);
    color: var(--bg-surface);
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.mig-btn-danger-flex {
    background: var(--danger);
    color: var(--bg-surface);
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

/* Upload Hints */
.mig-text-secondary-mb-20 {
    color: var(--text-secondary);
    margin-bottom: 20px;
}

/* Status-Badge variants */
.mig-badge-danger-soft {
    background: var(--danger-bg);
    color: var(--danger);
}
.mig-text-muted { color: var(--text-muted); }

/* Cell Success Bold */
.mig-cell-success-bold {
    color: var(--success);
    font-weight: 600;
}

/* ============================================================
   ITER 14 PHASE D.1 — Platform Dashboard + System (2026-05-05)
   Refactor: 87 inline-styles in 2 Templates → CSS-Klassen
   Templates: platform/{dashboard,system}.html
   ============================================================ */

/* ─── Hint-Helpers (mehrfach) ─── */
.pf-hint-14-muted {
    font-size: 14px;
    color: var(--text-muted);
}
.pf-hint-14-muted-weight-400 {
    font-size: 14px;
    color: var(--text-muted);
    font-weight: 400;
}
.pf-hint-12-muted-mt-6 {
    color: var(--text-muted);
    font-size: 12px;
    margin: 6px 0 0 0;
}
.pf-hint-12-muted-mb-12 {
    font-size: 12px;
    color: var(--text-muted);
    margin: 6px 0 12px 0;
}
.pf-hint-12-muted-mt-neg-8 {
    font-size: 12px;
    color: var(--text-muted);
    margin: -8px 0 14px 0;
}
.pf-hint-12-muted-mt-neg-10 {
    font-size: 12px;
    color: var(--text-muted);
    margin: -10px 0 14px 0;
}
.pf-hint-13-secondary-mb-14 {
    font-size: 13px;
    color: var(--text-secondary);
    margin: 0 0 14px 0;
}
.pf-mono-muted {
    color: var(--text-muted);
    font-family: monospace;
}

/* ─── Header-Rows (mehrfach) ─── */
.pf-header-flex-between {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

/* ─── Conditional Color (Z.1 conditional class) für Health-Status ─── */
.pf-color-conditional-success { color: var(--success); }
.pf-color-conditional-danger { color: var(--danger); }
.pf-color-conditional-warning { color: var(--warning); }

/* ─── Z.1 Custom-Property für Health-Color (mehrere Stellen) ─── */
.pf-health-color-text {
    color: var(--health-color);
}
.pf-health-banner-12 {
    margin: 14px 0 0 0;
    padding: 14px 18px;
    border-radius: 10px;
    background: color-mix(in srgb, var(--health-color) 12%, var(--bg-surface));
    border-left: 4px solid var(--health-color);
}
.pf-health-banner-14 {
    margin: 14px 0 10px 0;
    padding: 12px var(--space-md);
    border-radius: 10px;
    background: color-mix(in srgb, var(--health-color) 14%, var(--bg-surface));
    border-left: 4px solid var(--health-color);
    display: flex;
    align-items: center;
    gap: 12px;
}
.pf-health-bold-15 {
    font-weight: 600;
    color: var(--health-color);
    font-size: 15px;
}
.pf-health-bold-14 {
    font-weight: 600;
    color: var(--health-color);
    font-size: 14px;
}
.pf-health-link-pill {
    font-size: 12px;
    color: var(--health-color);
    text-decoration: none;
    font-weight: 500;
    border: 1px solid var(--health-color);
    padding: 5px 10px;
    border-radius: 6px;
}

/* ─── Padding/Margin ─── */
.pf-padding-24 { padding: var(--space-lg); }
.pf-mt-60 { margin-top: 60px; }
.pf-mt-14-fs-12 { margin: 14px 0 0 0; font-size: 12px; }
.pf-list-mt-8 {
    margin: 8px 0 0 30px;
    padding: 0;
    font-size: 13px;
    color: var(--text-secondary);
}
.pf-mt-4-fs-12-secondary {
    margin-top: var(--space-xs);
    font-size: 12px;
    color: var(--text-secondary);
}
.pf-mt-2-fs-11-muted {
    margin-top: 2px;
    font-size: 11px;
    color: var(--text-muted);
}

/* ─── Banner-Patterns (Color-Variants) ─── */
.pf-banner-success-soft {
    margin-bottom: 14px;
    padding: 10px 12px;
    background: color-mix(in srgb, var(--success) 8%, var(--bg-surface));
    border-left: 3px solid var(--success);
    border-radius: 6px;
}
.pf-banner-info-soft {
    margin-bottom: 14px;
    padding: 10px 12px;
    background: color-mix(in srgb, var(--info) 8%, var(--bg-surface));
    border-left: 3px solid var(--info);
    border-radius: 6px;
}
.pf-banner-muted-soft {
    padding: 10px 12px;
    background: color-mix(in srgb, var(--text-muted) 8%, var(--bg-surface));
    border-left: 3px solid var(--text-muted);
    border-radius: 6px;
}

/* ─── Misc ─── */
.pf-link-no-decoration {
    text-decoration: none;
    color: inherit;
    cursor: pointer;
}
.pf-color-rgba-white-7 {
    color: rgba(255, 255, 255, 0.7);
}
.pf-color-accent-bright-mono {
    color: var(--accent-bright);
    font-family: SFMono-Regular, Consolas, Monaco, monospace;
    font-size: 13px;
    text-decoration: none;
}

/* ─── Status-Indicator (Pulse-Dot) ─── */
.pf-pulse-dot {
    width: var(--space-sm);
    height: var(--space-sm);
    border-radius: 50%;
    background: var(--success);
    box-shadow: 0 0 8px var(--success);
    animation: pulse 2s infinite;
}

/* ─── Cell-Helpers ─── */
.pf-cell-ellipsis-300 {
    max-width: 300px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.pf-cell-300-fs-11 {
    max-width: 300px;
    font-size: 11px;
}

/* ─── System-Resource-Bar (Z.1 Custom-Property für Pct) ─── */
.pf-resource-bar-fill {
    width: var(--pf-pct, 0%);
}

/* ─── Conditional Border (Support-Counts) ─── */
.pf-card-warning-border-gold {
    border-color: var(--gold-accent);
}

/* ─── Conditional Failed-Job ─── */
.pf-failed-bold {
    color: var(--danger);
    font-weight: 600;
}

/* ─── Misc Status-Badges ─── */
.pf-fs-9-warning { font-size: 9px; color: var(--warning); }
.pf-fs-9-success { font-size: 9px; color: var(--success); }
.pf-fs-10-muted-pill {
    font-size: 10px;
    padding: 2px var(--space-sm);
    background: var(--text-muted);
    color: var(--bg-surface);
    border-radius: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.pf-fs-11-bold-link {
    font-size: 11px;
    font-weight: 600;
    text-transform: none;
    letter-spacing: 0;
    color: var(--primary);
    text-decoration: none;
}
.pf-fs-18-success { font-size: 18px; color: var(--success); }
.pf-chart-h-240 { height: 240px; }

/* ─── D.1 Wave 2 Helpers ─── */

/* Health-Banner-Variant 18 (mt:14 0 18) */
.pf-health-banner-mb-18 {
    margin: 14px 0 18px 0;
    padding: 14px 18px;
    border-radius: 10px;
    background: color-mix(in srgb, var(--health-color) 12%, var(--bg-surface));
    border-left: 4px solid var(--health-color);
}
.pf-health-link-12 {
    font-size: 12px;
    color: var(--health-color);
    text-decoration: none;
    font-weight: 500;
}

/* Status-Badge Variants (Pill-Style 10px mit Color) */
.pf-pill-success-10 {
    font-size: 10px;
    padding: 2px var(--space-sm);
    background: var(--success);
    color: var(--bg-surface);
    border-radius: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.pf-pill-info-10 {
    font-size: 10px;
    padding: 2px var(--space-sm);
    background: var(--info);
    color: var(--bg-surface);
    border-radius: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Misc Hint */
.pf-hint-12-mt-12 { font-size: 12px; color: var(--text-muted); margin-top: 12px; }
.pf-flex-1 { flex: 1; }

/* Inline-Flex Mini-Variants */
.pf-inline-flex-6-10-muted {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 10px;
    color: var(--text-muted);
    text-transform: none;
    letter-spacing: 0;
    font-weight: 500;
}
.pf-inline-flex-5 {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

/* Flex-Layouts (verbleibend) */
.pf-flex-wrap-6 {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}
.pf-flex-between-12 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.pf-flex-between-no-gap {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.pf-flex-row-10 {
    display: flex;
    align-items: center;
    gap: 10px;
}

/* Color/Mono Helpers */
.pf-mono-secondary-13 {
    color: var(--text-secondary);
    font-family: SFMono-Regular, Consolas, Monaco, monospace;
    font-size: 13px;
    text-decoration: none;
}
.pf-text-muted-nowrap {
    color: var(--text-muted);
    white-space: nowrap;
}
.pf-text-muted-italic-11 {
    color: var(--text-muted);
    font-style: italic;
    font-size: 11px;
}
.pf-text-muted-12-380 {
    color: var(--text-muted);
    font-size: 12px;
    max-width: 380px;
}
.pf-text-muted-mono-12 {
    color: var(--text-muted);
    font-family: monospace;
    font-size: 12px;
}
.pf-text-gold {
    color: var(--gold-accent);
}
.pf-link-accent-12 {
    color: var(--accent-bright);
    text-decoration: none;
    font-size: 12px;
}
.pf-link-accent {
    color: var(--accent-bright);
    text-decoration: none;
}

/* Border-Left helpers */
.pf-border-left-info {
    border-left: 3px solid var(--info);
}
.pf-border-left-gold {
    border-left: 3px solid var(--gold-accent);
}

/* Conditional Border-Color Card (broken-domain) */
.pf-card-border-conditional-danger {
    border-color: var(--danger);
}

/* Badge Primary-Soft */
.pf-badge-primary-soft-10 {
    background: rgba(91, 139, 166, 0.15);
    color: var(--primary);
    font-size: 10px;
}

/* ═══════════════════════════════════════════════════════════════
   ITER 14 PHASE E.1a (2026-05-05): Aufträge — Anfragen + Nachträge + Vorlagen
   9 Templates (ohne auftrag_detail.html → eigenes E.1b)
   ═══════════════════════════════════════════════════════════════ */

/* === nachtrag_detail.html: 5-fach Conditional Status-Banner === */
.nachtrag-banner {
    padding: 12px 20px;
    margin: 14px 20px 0;
    border-radius: var(--space-sm);
    border-left: 4px solid var(--warning);
    background: color-mix(in srgb, var(--warning) 14%, var(--bg-surface));
}
.nachtrag-banner.is-angenommen {
    border-left-color: var(--success);
    background: color-mix(in srgb, var(--success) 18%, var(--bg-surface));
}
.nachtrag-banner.is-abgelehnt {
    border-left-color: var(--danger);
    background: color-mix(in srgb, var(--danger) 12%, var(--bg-surface));
}
.nachtrag-banner.is-gesendet {
    border-left-color: var(--info);
    background: color-mix(in srgb, var(--info) 10%, var(--bg-surface));
}
.nachtrag-banner.is-storno {
    border-left-color: var(--text-muted);
    background: var(--bg-surface-2);
}

/* === nachtrag_detail.html / nachtrag_neu.html: Pos-Row Grid === */
.nachtrag-pos-row {
    display: grid;
    grid-template-columns: 40px 2fr 80px 80px 120px 40px;
    gap: var(--space-sm);
    margin-bottom: var(--space-sm);
    align-items: center;
}

/* === nachtrag_detail.html: weitere Helper === */
.nachtrag-form-grid-2-1 {
    padding: 20px;
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: var(--space-md);
}
.nachtrag-form-footer { padding: 0 20px var(--space-md); }
.nachtrag-summary-tax { text-align: right; color: var(--text-muted); }
.nachtrag-summary-brutto { font-weight: 700; font-size: 15px; }
.nachtrag-meta-grid-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-md);
    margin-bottom: var(--space-md);
}
.nachtrag-actions-row {
    padding: 20px;
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}
.nachtrag-storno-grund-input { width: 200px; display: inline-block; }
.nachtrag-success-banner {
    margin: 14px 20px;
    padding: 12px 14px;
    background: color-mix(in srgb, var(--success) 18%, var(--bg-surface));
    border-left: 4px solid var(--success);
    border-radius: 6px;
}

/* === nachtrag_liste.html: Status-Pills (statt inline-Hex via dict) === */
.nachtrag-status-pill {
    color: var(--text-on-accent);
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
}
.nachtrag-status-pill.is-entwurf { background: var(--warning); }
.nachtrag-status-pill.is-gesendet { background: var(--info); }
.nachtrag-status-pill.is-angenommen { background: var(--success); }
.nachtrag-status-pill.is-abgelehnt { background: var(--danger); }
.nachtrag-status-pill.is-storno { background: var(--text-muted); }

/* === auftrag_vorlage_form.html: Layout + Gefahrenzone === */
.auftr-vorlage-card-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
    max-width: 900px;
}
.auftr-vorlage-badges-row {
    margin-left: auto;
    display: flex;
    gap: 6px;
}
.auftr-vorlage-card-primary { border-left: 4px solid var(--primary); }
.auftr-vorlage-section-h3 { margin: 20px 0 10px; font-size: 15px; }
.auftr-vorlage-section-desc {
    color: var(--text-secondary);
    font-size: 13px;
    margin-bottom: 12px;
}
.auftr-vorlage-actions-row { display: flex; gap: var(--space-sm); margin-top: var(--space-md); }
.auftr-vorlage-paragraph-tight {
    color: var(--text-secondary);
    margin-bottom: 12px;
}
.auftr-vorlage-danger-card {
    border: 1px solid color-mix(in srgb, var(--danger) 30%, transparent);
}
.auftr-vorlage-danger-header {
    background: color-mix(in srgb, var(--danger) 12%, var(--bg-surface));
}
.auftr-vorlage-danger-title { color: var(--danger); }

/* === auftrag_vorlagen_liste.html: Banner + Form-Inline === */
.auftr-vorlagen-info-banner {
    padding: 12px var(--space-md);
    background: var(--bg-surface-2);
    border-bottom: 1px solid var(--border);
    font-size: 13px;
    color: var(--text-secondary);
}
.auftr-vorlagen-search-form {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    width: 100%;
    margin-top: var(--space-sm);
}
.auftr-vorlagen-form-inline { display: inline-block; }

/* === auftrag_formular.html: GoBD-Box + Form-Helper === */
.afm-gobd-box {
    margin-top: 12px;
    padding: 10px 14px;
    background: var(--bg-surface-2);
    border-radius: 6px;
    border-left: 3px solid var(--warning);
}
.afm-gobd-label-row {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    font-weight: 500;
    cursor: pointer;
    margin: 0;
}
.afm-gobd-nachtrag-box { display: none; margin-top: 10px; }
.afm-form-hint-block {
    font-size: 11px;
    color: var(--text-muted);
    display: block;
    margin-top: var(--space-xs);
}
.afm-plz-narrow { flex: 0 0 140px; }

/* === anfragen_detail.html: Layout + Status-Badge + Boxes === */
.anfragen-detail-grid {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: var(--space-md);
}
@media (max-width: 768px) {
    .anfragen-detail-grid { grid-template-columns: 1fr; }
}
.anfragen-detail-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}
.anfragen-detail-title { margin: 0; font-size: 20px; }
.anfragen-detail-info-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}
.anfragen-detail-status-pill {
    padding: 4px 12px;
    border-radius: 100px;
    font-size: 12px;
    font-weight: 700;
}
.anfragen-detail-status-pill.is-neu {
    background: color-mix(in srgb, var(--danger) 18%, transparent);
    color: var(--danger);
}
.anfragen-detail-status-pill.is-bearb {
    background: color-mix(in srgb, var(--warning) 18%, transparent);
    color: var(--warning);
}
.anfragen-detail-status-pill.is-angebot {
    background: color-mix(in srgb, var(--info) 18%, transparent);
    color: var(--info);
}
.anfragen-detail-status-pill.is-erledigt {
    background: color-mix(in srgb, var(--success) 18%, transparent);
    color: var(--success);
}
.anfragen-detail-status-pill.is-abgelehnt {
    background: color-mix(in srgb, var(--text-muted) 15%, transparent);
    color: var(--text-secondary);
}
.anfragen-detail-address-box {
    padding: 12px 14px;
    background: var(--bg-surface-2);
    border-radius: var(--space-sm);
    margin-bottom: 18px;
}
.anfragen-detail-desc-box {
    margin-top: 6px;
    padding: 14px var(--space-md);
    background: var(--bg-surface-2);
    border-radius: var(--space-sm);
    line-height: 1.6;
    white-space: pre-wrap;
}
.anfragen-detail-notiz-box {
    margin-top: 6px;
    padding: 12px 14px;
    background: color-mix(in srgb, var(--warning) 8%, transparent);
    border-left: 3px solid var(--warning);
    border-radius: 6px;
    line-height: 1.6;
    white-space: pre-wrap;
    font-size: 13px;
}
.anfragen-detail-notiz-block { margin-top: 18px; }
.anfragen-detail-meta {
    margin-top: 18px;
    font-size: 12px;
    color: var(--text-muted);
}
.anfragen-detail-aktionen-card {
    padding: 20px;
    align-self: start;
}
.anfragen-detail-aktion-title { margin: 0 0 14px; font-size: var(--space-md); }
.anfragen-detail-cta-btn {
    margin-bottom: 10px;
    text-decoration: none;
    text-align: center;
}
.anfragen-detail-divider {
    border: none;
    border-top: 1px solid var(--border-subtle);
    margin: 18px 0;
}
.anfragen-detail-status-h4 {
    margin: 0 0 10px;
    font-size: 13px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.anfragen-detail-cta-mb-18 { margin-bottom: 18px; }

/* === Leftover-Modifier E.1a === */
.nachtrag-card-header-flex {
    align-items: center;
    gap: var(--space-sm);
    flex-wrap: wrap;
}
.nachtrag-positionen-h4 { margin: 8px 0; }
.nachtrag-positionen-h4-readonly { margin: 16px 0 var(--space-sm); }

/* ═══════════════════════════════════════════════════════════════
   ITER 14 PHASE E.1b (2026-05-05): auftrag_detail.html (1929 Z., 86 styles)
   3 embedded <style>-Blocks bleiben lokal (Tab + Stepper + Banner — sehr groß + spezifisch)
   ═══════════════════════════════════════════════════════════════ */

/* === auftr-detail-* Layout === */
.auftr-detail-flow-breadcrumb {
    margin-bottom: 12px;
    padding: 10px 14px;
    background: var(--info-bg);
    border-left: 4px solid var(--info);
    border-radius: 6px;
    font-size: 13px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
.auftr-detail-flow-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.auftr-detail-actions-right {
    margin-bottom: 12px;
    text-align: right;
    display: flex;
    gap: 6px;
    justify-content: flex-end;
    flex-wrap: wrap;
}
.auftr-detail-card-header-row {
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
.auftr-detail-title-flex { margin: 0; flex: 1; min-width: 0; }
.auftr-detail-status-row {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    flex-wrap: wrap;
}
.auftr-detail-beschreibung {
    color: var(--text-secondary);
    margin-bottom: var(--space-md);
}
.auftr-detail-meta-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    font-size: 14px;
}
.auftr-detail-adresse-box {
    margin-top: var(--space-md);
    padding: 12px;
    background: var(--bg-surface-2);
    border-radius: var(--space-sm);
}
.auftr-detail-notizen-box {
    margin-top: 12px;
    padding: 12px;
    background: color-mix(in srgb, var(--warning) 12%, var(--bg-surface));
    border-radius: var(--space-sm);
    border-left: 3px solid var(--warning);
}
.auftr-detail-status-actions {
    margin-top: var(--space-md);
    display: flex;
    gap: var(--space-sm);
    flex-wrap: wrap;
}

/* Status-Badges (5 Status mit color-mix Tönung) */
.badge-primary-soft {
    background: color-mix(in srgb, var(--primary) 14%, var(--bg-surface));
    color: var(--primary);
}
.badge-warning-soft {
    background: color-mix(in srgb, var(--warning) 14%, var(--bg-surface));
    color: var(--warning);
}

/* Wieder-Öffnen-Box */
.auftr-detail-reopen-box {
    margin-top: var(--space-md);
    padding: 12px 14px;
    background: color-mix(in srgb, var(--primary) 10%, transparent);
    border-left: 3px solid var(--primary);
    border-radius: 6px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
.auftr-detail-reopen-title {
    font-size: 13px;
    color: var(--text-primary);
}
.auftr-detail-reopen-desc {
    margin: 2px 0 0;
    font-size: 12px;
    color: var(--text-secondary);
}

/* Kosten-Rows */
.auftr-detail-cost-row {
    display: flex;
    justify-content: space-between;
    padding: 6px 0;
}
.auftr-detail-cost-row-total {
    display: flex;
    justify-content: space-between;
    padding: 8px 0;
    border-top: 2px solid var(--text-primary);
    font-weight: 700;
    font-size: var(--space-md);
}

/* Nachkalkulation-Card (5 Status-Modifier für border-left) */
.auftr-nachkalk-card {
    margin-top: var(--space-md);
    border-left: 4px solid var(--text-muted);
}
.auftr-nachkalk-card.is-gruen { border-left-color: var(--success); }
.auftr-nachkalk-card.is-gelb { border-left-color: var(--warning); }
.auftr-nachkalk-card.is-rot { border-left-color: var(--danger); }
.auftr-nachkalk-quelle {
    color: var(--text-muted);
    margin-bottom: var(--space-sm);
}
.auftr-nachkalk-summary-row {
    display: flex;
    justify-content: space-between;
    padding: 4px 0;
}
.auftr-nachkalk-not-started {
    margin-top: 10px;
    padding: 10px 12px;
    background: color-mix(in srgb, var(--info) 8%, var(--bg-surface));
    border: 1px solid color-mix(in srgb, var(--info) 22%, var(--border));
    border-radius: 6px;
    font-size: 12.5px;
    color: var(--text-secondary);
}
.auftr-nachkalk-abweichung-row {
    display: flex;
    justify-content: space-between;
    padding: 6px 0;
    border-top: 1px solid var(--border-subtle);
    margin-top: 6px;
    color: var(--success);
}
.auftr-nachkalk-abweichung-row.is-gelb { color: var(--warning); }
.auftr-nachkalk-abweichung-row.is-rot { color: var(--danger); }
.auftr-nachkalk-begruendung {
    margin-top: var(--space-sm);
    padding: var(--space-sm);
    background: var(--bg-surface-2);
    border-radius: 6px;
    font-size: 12px;
}
.auftr-nachkalk-empty {
    padding: 8px 0;
    color: var(--text-muted);
}

/* Plantafel-Tab Inhalt */
.auftr-pt-progress-box {
    padding: 12px;
    background: var(--bg-surface-2);
    border-radius: 6px;
    margin-bottom: 12px;
}
.auftr-pt-progress-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 13px;
    margin-bottom: 6px;
}
.auftr-pt-progress-prozent {
    font-weight: 700;
}
.auftr-pt-progress-prozent.is-voll { color: var(--success); }
.auftr-pt-progress-prozent.is-ueberplant { color: var(--danger); }
.auftr-pt-progress-prozent.is-unvollstaendig { color: var(--warning); }
.auftr-pt-progress-prozent.is-default { color: var(--text-muted); }
.auftr-pt-progress-bar {
    height: var(--space-sm);
    background: var(--border);
    border-radius: var(--space-xs);
    overflow: hidden;
}
.auftr-pt-progress-bar-fill {
    height: 100%;
    background: var(--primary);
}
.auftr-pt-progress-bar-fill.is-voll { background: var(--success); }
.auftr-pt-progress-bar-fill.is-ueberplant { background: var(--danger); }
.auftr-pt-progress-bar-fill.is-unvollstaendig { background: var(--warning); }
.auftr-pt-progress-hint {
    font-size: 11px;
    margin-top: var(--space-xs);
}
.auftr-pt-progress-hint.is-warn { color: var(--warning); }
.auftr-pt-progress-hint.is-danger { color: var(--danger); }
.auftr-pt-progress-hint.is-success { color: var(--success); }
.auftr-pt-split-details {
    padding: 10px;
    background: var(--bg-surface-2);
    border-radius: 6px;
    margin-bottom: 12px;
}
.auftr-pt-split-summary {
    cursor: pointer;
    font-weight: 600;
    font-size: 13px;
}
.auftr-pt-split-no-soll {
    padding: 10px;
    background: var(--bg-surface-2);
    border-radius: 6px;
    margin-bottom: 12px;
    font-size: 12px;
    color: var(--text-muted);
}
.auftr-pt-split-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 10px;
    margin-bottom: 10px;
}
.auftr-pt-form-label {
    display: block;
    font-size: 11px;
    font-weight: 600;
    margin-bottom: 2px;
}
.auftr-pt-form-label-mb-4 {
    display: block;
    font-size: 11px;
    font-weight: 600;
    margin-bottom: var(--space-xs);
}
.auftr-pt-team-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 6px;
    margin-bottom: 10px;
}
.auftr-pt-team-item {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px;
    background: var(--bg-base, var(--bg-surface));
    border-radius: var(--space-xs);
    cursor: pointer;
    font-size: 12px;
}
.auftr-pt-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.auftr-pt-table thead tr { background: var(--bg-surface-2); }
.auftr-pt-table tbody tr { border-top: 1px solid var(--border); }
.auftr-pt-table-td-time {
    padding: var(--space-sm);
    color: var(--text-muted);
}
.auftr-pt-table-td-notiz {
    padding: var(--space-sm);
    color: var(--text-muted);
    font-size: 12px;
}
.auftr-pt-empty-link {
    padding: 12px 0;
    color: var(--text-muted);
    font-size: 13px;
}
.auftr-pt-split-hint {
    display: block;
    margin-top: 6px;
    font-size: 11px;
    color: var(--text-muted);
}

/* Baudoku-Tab + Chat */
.auftr-baudoku-card {
    border-left: 4px solid var(--primary);
}
.auftr-baudoku-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-sm);
}
.auftr-baudoku-badge {
    background: var(--primary);
    color: var(--text-on-accent);
    font-size: 11px;
    margin-left: 6px;
}
.auftr-baudoku-desc {
    color: var(--text-muted);
    font-size: 12px;
    margin: 8px 0 0;
}
.auftr-chat-card {
    margin-top: var(--space-md);
    border-left: 4px solid var(--warning);
}
.auftr-chat-card.is-unread { border-left-color: var(--danger); }
.auftr-chat-badge-unread {
    background: var(--danger);
    color: var(--text-on-accent);
    font-size: 11px;
    margin-left: 6px;
    animation: auftr-chat-pulse 2s infinite;
}
.auftr-chat-badge-total {
    background: var(--text-muted);
    color: var(--text-on-accent);
    font-size: 11px;
    margin-left: 6px;
}
.auftr-chat-btn {
    text-decoration: none;
    background: var(--warning);
}
.auftr-chat-btn.is-unread { background: var(--danger); }
@keyframes auftr-chat-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.6; }
}

/* Rechnung-Tab Abschlag */
.auftr-abschlag-row {
    display: flex;
    justify-content: space-between;
    padding: 6px 0;
    border-bottom: 1px solid var(--border-subtle);
}
.auftr-abschlag-summe-row {
    display: flex;
    justify-content: space-between;
    padding: 8px 0;
    font-weight: 700;
    color: var(--primary);
}
.auftr-abschlag-empty {
    color: var(--text-muted);
    font-size: 13px;
    margin: 0 0 12px 0;
}
.auftr-abschlag-form-grid {
    display: grid;
    grid-template-columns: 1fr 80px 60px;
    gap: 6px;
    margin-bottom: 6px;
}
.auftr-schluss-info {
    color: var(--text-muted);
    font-size: 12px;
    text-align: center;
    margin: 8px 0 0 0;
}
.auftr-schluss-erstellt-box {
    padding: 12px;
    background: color-mix(in srgb, var(--success) 14%, var(--bg-surface));
    border-left: 4px solid var(--success);
    border-radius: 6px;
}
.auftr-schluss-erstellt-p {
    margin: 4px 0 0 0;
    font-size: 12px;
    color: var(--success);
}
.auftr-rechnung-existing-info {
    color: var(--text-secondary);
    margin: 0 0 12px 0;
    font-size: 13px;
}
.auftr-rechnung-existing-list {
    margin: 0 0 12px 18px;
    font-size: 13px;
}

/* Footer (Vorlage speichern + Löschen) */
.auftr-footer-grid {
    margin-top: var(--space-lg);
    display: grid;
    grid-template-columns: 1fr auto;
    gap: var(--space-md);
    align-items: start;
}
.auftr-footer-vorlage-card {
    border-left: 4px solid var(--primary);
    margin: 0;
}
.auftr-footer-vorlage-desc {
    color: var(--text-muted);
    font-size: 12px;
    margin: 8px 0 10px;
}
.auftr-footer-vorlage-row {
    display: flex;
    gap: var(--space-sm);
    flex-wrap: wrap;
    align-items: stretch;
}
@media (max-width: 768px) {
    .auftr-footer-grid { grid-template-columns: 1fr; }
}

/* === pt-banner Modifier für Mängel/Bautagebuch/Baubesprechung Banner === */
.pt-banner.is-mangel-warn {
    background: color-mix(in srgb, var(--warning) 12%, transparent);
    border-left: 4px solid var(--warning);
}
.pt-banner.is-mangel-warn .pt-banner-icon,
.pt-banner.is-mangel-warn strong { color: var(--warning); }
.pt-banner.is-mangel-dringend {
    background: color-mix(in srgb, var(--danger) 12%, transparent);
    border-left: 4px solid var(--danger);
}
.pt-banner.is-mangel-dringend .pt-banner-icon,
.pt-banner.is-mangel-dringend strong { color: var(--danger); }
.pt-banner.is-bautagebuch {
    background: color-mix(in srgb, var(--warning) 12%, transparent);
    border-left: 4px solid var(--warning);
}
.pt-banner.is-baubesprechung {
    background: color-mix(in srgb, var(--danger) 12%, transparent);
    border-left: 4px solid var(--danger);
}
.pt-banner-p {
    margin: 4px 0 0 0;
    color: var(--text-muted);
    font-size: 13px;
}

/* === auftrag_detail.html Detail-Grid (Outer Tab-Content) === */
.hw-detail-grid {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 20px;
}
@media (max-width: 768px) {
    .hw-detail-grid { grid-template-columns: 1fr; }
}

/* === Material-Form-Row in Tab === */
.auftr-mat-form-row {
    display: flex;
    gap: var(--space-sm);
    flex-wrap: wrap;
    align-items: flex-end;
}
.auftr-mat-input-bezeichnung { width: 180px; }

/* === Abschlag-Wrap === */
.auftr-abschlag-wrap {
    font-size: 13px;
    margin-bottom: 12px;
}

/* ═══════════════════════════════════════════════════════════════
   ITER 14 PHASE E.2a (2026-05-05): Angebote + GAEB + Aufmaß
   12 Templates (ohne angebot_detail + angebot_formular → E.2b)
   ═══════════════════════════════════════════════════════════════ */

/* === aufmass_liste.html === */
.aufm-filter-form { display: flex; gap: var(--space-sm); flex-wrap: wrap; margin-bottom: var(--space-md); }
.aufm-filter-select { width: 300px; }
.aufm-cell-mono { white-space: nowrap; font-family: monospace; font-size: 12px; }

/* === gaeb_upload.html === */
.gaeb-upload-wrap { max-width: 720px; margin: 0 auto; }
.gaeb-upload-card { padding: 28px; }
.gaeb-upload-erklaerung { margin-bottom: var(--space-lg); padding-bottom: 20px; border-bottom: 1px solid var(--border-subtle); }
.gaeb-upload-h3 { margin: 0 0 12px; font-size: var(--space-md); }
.gaeb-upload-ol { margin: 0; padding-left: 20px; font-size: 13px; color: var(--text-secondary); line-height: 1.7; }
.gaeb-upload-label { display: block; font-size: 13px; font-weight: 500; margin-bottom: var(--space-sm); }
.gaeb-upload-hint { display: block; margin-top: var(--space-sm); font-size: 11px; color: var(--text-muted); line-height: 1.5; }
.gaeb-upload-actions { display: flex; gap: 12px; padding-top: var(--space-md); border-top: 1px solid var(--border-subtle); }
.gaeb-upload-submit { padding: 10px 20px; font-weight: 600; }
.gaeb-upload-tip-card {
    margin-top: var(--space-md);
    padding: 16px 20px;
    background: color-mix(in srgb, var(--gold-accent) 10%, var(--bg-surface));
    border-left: 4px solid var(--gold-accent);
}
.gaeb-upload-tip-content {
    font-size: 13px;
    color: var(--gold-accent-dim);
    line-height: 1.6;
}
.gaeb-upload-tip-link {
    color: var(--gold-accent-dim);
    text-decoration: underline;
}

/* === angebot_versenden.html === */
.ang-vers-success-banner {
    margin: 16px 0;
    padding: 10px 14px;
    background: color-mix(in srgb, var(--success) 14%, var(--bg-surface));
    border-left: 4px solid var(--success);
    border-radius: var(--space-xs);
    font-size: 13px;
}
.ang-vers-success-meta { color: var(--text-muted); margin-left: var(--space-sm); }
.ang-vers-warning-banner {
    margin: 16px 0;
    padding: 10px 14px;
    background: color-mix(in srgb, var(--warning) 14%, var(--bg-surface));
    border-left: 4px solid var(--warning);
    border-radius: var(--space-xs);
    font-size: 13px;
}
.ang-vers-required { color: var(--danger); }
.ang-vers-cc-box {
    margin-bottom: var(--space-md);
    padding: 10px 12px;
    background: var(--bg-surface-2);
    border-radius: var(--space-xs);
}
.ang-vers-cc-label { display: block; font-size: 13px; }
.ang-vers-cc-input { margin-right: 6px; }
.ang-vers-attachment-banner {
    margin: 20px 0;
    padding: 12px 14px;
    background: color-mix(in srgb, var(--info) 10%, var(--bg-surface));
    border-left: 4px solid var(--info);
    border-radius: var(--space-xs);
    font-size: 13px;
}
.ang-vers-actions {
    margin-top: var(--space-lg);
    padding-top: var(--space-md);
    border-top: 1px solid var(--border-subtle);
    display: flex;
    gap: var(--space-sm);
    justify-content: flex-end;
}

/* Block 64.2 (2026-05-10): GBU-Anhang-Picker beim Angebot-Versand */
.ang-vers-gbu-box {
    margin: 16px 0;
    padding: 14px 16px;
    background: color-mix(in srgb, var(--success) 6%, var(--bg-surface));
    border: 1px solid color-mix(in srgb, var(--success) 22%, var(--border));
    border-radius: var(--space-xs);
}
.ang-vers-gbu-header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    font-size: 13px;
    color: var(--text-primary);
}
.ang-vers-gbu-icon { color: var(--success); flex-shrink: 0; }
.ang-vers-gbu-hint {
    color: var(--text-muted);
    font-size: 11.5px;
    font-weight: 400;
    margin-left: auto;
}
.ang-vers-gbu-locked {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 9px 12px;
    background: color-mix(in srgb, var(--warning) 8%, var(--bg-surface));
    border: 1px solid color-mix(in srgb, var(--warning) 30%, var(--border));
    border-radius: 6px;
    font-size: 12.5px;
    line-height: 1.5;
}
.ang-vers-gbu-locked-icon { color: var(--warning); flex-shrink: 0; margin-top: 1px; }
.ang-vers-gbu-locked-text { color: var(--text-secondary); }
.ang-vers-gbu-locked-text strong { color: var(--warning); }
.ang-vers-gbu-locked-text a {
    color: var(--warning);
    font-weight: 700;
    text-decoration: none;
    margin-left: 6px;
}
.ang-vers-gbu-locked-text a:hover { text-decoration: underline; }

.ang-vers-gbu-options {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.ang-vers-gbu-option {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto auto;
    column-gap: 10px;
    row-gap: 2px;
    padding: 9px 12px;
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: 6px;
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.ang-vers-gbu-option:hover {
    border-color: color-mix(in srgb, var(--success) 50%, var(--border));
}
.ang-vers-gbu-option:has(input[type="radio"]:checked) {
    border-color: var(--success);
    background: color-mix(in srgb, var(--success) 8%, var(--bg-surface));
    box-shadow: 0 2px 8px color-mix(in srgb, var(--success) 18%, transparent);
}
.ang-vers-gbu-option input[type="radio"] {
    grid-column: 1;
    grid-row: 1 / span 2;
    align-self: center;
    margin: 0;
    accent-color: var(--success);
}
.ang-vers-gbu-option-label {
    grid-column: 2;
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.ang-vers-gbu-option-hint {
    grid-column: 2;
    font-size: 11.5px;
    color: var(--text-muted);
    line-height: 1.4;
}
.ang-vers-gbu-option-badge {
    display: inline-block;
    padding: 1px 7px;
    background: color-mix(in srgb, var(--success) 18%, transparent);
    color: var(--success);
    font-size: 10px;
    font-weight: 700;
    border-radius: 100px;
    margin-left: 6px;
}
.ang-vers-gbu-select {
    grid-column: 2;
    grid-row: 3;
    margin-top: 6px;
    font-size: 12.5px;
}

/* === Block 71 (2026-05-11): Inline-Vorschau der GBU-Vorlagen ===
   HTML5 <details>-Element. Wird sowohl in angebot_versenden.html
   (unter Standard-GBU-Radio) als auch sige_dashboard.html
   (Vorlagen-Bibliothek-Card) verwendet. Kein JS, keine CSP-Probleme. */
.ang-vers-gbu-details {
    margin: 8px 0 4px 28px;          /* Indent unter dem Radio-Label */
    padding: 0;
    border: 1px solid var(--border-subtle);
    border-radius: 8px;
    background: color-mix(in srgb, var(--bg-surface-2) 50%, var(--bg-surface));
}
.ang-vers-gbu-details--dashboard {
    margin: 0;                       /* In Card-Body: kein Indent nötig */
    background: transparent;
    border: none;
}
.ang-vers-gbu-details-summary {
    cursor: pointer;
    padding: 10px 14px;
    font-size: 13px;
    font-weight: 600;
    color: var(--text-secondary);
    display: flex;
    align-items: center;
    gap: 6px;
    user-select: none;
    list-style: none;
}
.ang-vers-gbu-details-summary::-webkit-details-marker { display: none; }
.ang-vers-gbu-details-summary::before {
    content: '▸';
    display: inline-block;
    font-size: 11px;
    color: var(--text-muted);
    transition: transform 0.15s ease;
}
.ang-vers-gbu-details[open] > .ang-vers-gbu-details-summary::before {
    transform: rotate(90deg);
}
.ang-vers-gbu-details-summary:hover {
    color: var(--text-primary);
}
.ang-vers-gbu-group {
    padding: 8px 14px 14px;
    border-top: 1px solid var(--border-subtle);
}
.ang-vers-gbu-group-title {
    margin: 4px 0 10px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--text-muted);
}
.ang-vers-gbu-item {
    display: grid;
    grid-template-columns: 16px 1fr;
    gap: 10px;
    padding: 8px 0;
    border-bottom: 1px solid var(--border-subtle);
    align-items: start;
}
.ang-vers-gbu-item:last-child { border-bottom: none; }
.ang-vers-gbu-ampel {
    font-size: 16px;
    line-height: 1.2;
    margin-top: 2px;
}
.ang-vers-gbu-ampel.is-rot   { color: var(--danger); }
.ang-vers-gbu-ampel.is-gelb  { color: var(--warning); }
.ang-vers-gbu-ampel.is-gruen { color: var(--success); }
.ang-vers-gbu-item-body { font-size: 13px; color: var(--text-primary); line-height: 1.45; }
.ang-vers-gbu-item-head { margin-bottom: 3px; }
.ang-vers-gbu-item-head strong {
    font-weight: 600;
    color: var(--text-primary);
}
.ang-vers-gbu-item-mass {
    font-size: 12.5px;
    color: var(--text-secondary);
    margin-bottom: 2px;
}
.ang-vers-gbu-item-ref {
    font-size: 11.5px;
    color: var(--text-muted);
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}
.ang-vers-gbu-hinweis {
    margin: 10px 14px;
    padding: 10px 12px;
    font-size: 12.5px;
    color: var(--text-secondary);
    background: color-mix(in srgb, var(--info) 8%, var(--bg-surface));
    border-left: 3px solid var(--info);
    border-radius: 4px;
}

@media (max-width: 640px) {
    .ang-vers-gbu-details { margin-left: 0; }
    .ang-vers-gbu-item { grid-template-columns: 14px 1fr; gap: 8px; }
}

/* Block 72.9 (2026-05-11): Footer-Link zur Vorlagen-Verwaltung */
.ang-vers-gbu-footer {
    padding: 10px 14px;
    border-top: 1px solid var(--border-subtle);
    background: color-mix(in srgb, var(--primary) 4%, transparent);
    text-align: center;
}
.ang-vers-gbu-footer-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
    color: var(--primary);
    text-decoration: none;
    font-weight: 600;
}
.ang-vers-gbu-footer-link:hover { text-decoration: underline; }

/* === Block 72.7 (2026-05-11): Tenant-eigene SiGe-Vorlagen-Verwaltung ===
   Prefix: svrl- (sige-vorlage). Premium-Polish v1 Pattern. */
.svrl-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 24px;
    flex-wrap: wrap;
}
.svrl-header-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.svrl-kpi-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 14px;
    margin-bottom: 22px;
}
.svrl-kpi-card {
    --kpi-accent: var(--primary);
    display: grid;
    grid-template-columns: 48px 1fr;
    gap: 14px;
    align-items: center;
    padding: 16px;
    background: var(--bg-surface);
    border: 1px solid var(--border-subtle);
    border-left: 3px solid var(--kpi-accent);
    border-radius: 10px;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.svrl-kpi-card:hover {
    transform: translateY(-1px);
    box-shadow: 0 2px 8px color-mix(in srgb, var(--kpi-accent) 15%, transparent);
}
.svrl-kpi-icon {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--kpi-accent);
    background: color-mix(in srgb, var(--kpi-accent) 12%, transparent);
    border-radius: 12px;
}
.svrl-kpi-body { min-width: 0; }
.svrl-kpi-value {
    font-size: 28px;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.1;
}
.svrl-kpi-label {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--text-muted);
    margin-top: 2px;
}
.svrl-kpi-sublabel {
    font-size: 12px;
    color: var(--text-secondary);
    margin-top: 2px;
}

.svrl-table-wrap { overflow-x: auto; }
.svrl-table {
    width: 100%;
    border-collapse: collapse;
}
.svrl-table thead th {
    text-align: left;
    padding: 12px 10px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    color: var(--text-muted);
    background: var(--bg-surface-2);
    border-bottom: 1px solid var(--border);
}
.svrl-row { transition: background 0.12s ease; }
.svrl-row > td {
    padding: 12px 10px;
    border-bottom: 1px solid var(--border-subtle);
    vertical-align: top;
}
.svrl-row:hover { background: color-mix(in srgb, var(--primary) 4%, transparent); }
.svrl-row--inaktiv { opacity: 0.55; }

.svrl-ampel { font-size: 18px; line-height: 1; }
.svrl-cell-beschreibung { color: var(--text-primary); line-height: 1.4; }

/* Block 72 BUGFIX 4 (2026-05-11): klare Status-Pill statt unklarem Toggle-Icon.
   Marco-Feedback: 'kein klares Signal ob aktiv oder inaktiv'. */
.svrl-status-pill {
    border: none;
    cursor: pointer;
    padding: 5px 12px;
    border-radius: 100px;
    font-size: 11.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    transition: all 0.12s ease;
    white-space: nowrap;
    font-family: inherit;
}
.svrl-status-pill.is-aktiv {
    background: color-mix(in srgb, var(--success) 15%, var(--bg-surface));
    color: var(--success);
    border: 1px solid color-mix(in srgb, var(--success) 35%, transparent);
}
.svrl-status-pill.is-aktiv:hover {
    background: color-mix(in srgb, var(--success) 25%, var(--bg-surface));
}
.svrl-status-pill.is-inaktiv {
    background: color-mix(in srgb, var(--text-muted) 12%, var(--bg-surface));
    color: var(--text-muted);
    border: 1px solid var(--border-subtle);
}
.svrl-status-pill.is-inaktiv:hover {
    background: color-mix(in srgb, var(--text-muted) 20%, var(--bg-surface));
    color: var(--text-primary);
}

/* Inaktive Zeile zusaetzlich visuell schwaecher + Beschreibung mit Strikethrough */
.svrl-row--inaktiv { opacity: 0.65; }
.svrl-row--inaktiv > td .svrl-cell-beschreibung,
.svrl-row--inaktiv > td > strong {
    text-decoration: line-through;
    text-decoration-color: var(--text-muted);
}
/* Status-Pill bleibt klar lesbar */
.svrl-row--inaktiv .svrl-status-pill { text-decoration: none; }

.svrl-actions {
    display: flex;
    gap: 6px;
    align-items: center;
}
.svrl-inline-form { display: inline; margin: 0; }

/* Form-Seite */
.svrl-form-card { max-width: 720px; margin: 0 auto; padding: 28px; }
.svrl-form .form-group { margin-bottom: 18px; }
.svrl-form-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 24px;
    padding-top: 18px;
    border-top: 1px solid var(--border-subtle);
}

.svrl-ampel-radio {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 6px;
}
.svrl-ampel-option {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    border: 1px solid var(--border-subtle);
    border-radius: 8px;
    cursor: pointer;
    background: var(--bg-surface);
    font-size: 13px;
    transition: all 0.12s ease;
}
.svrl-ampel-option:has(input:checked) {
    border-color: var(--primary);
    background: color-mix(in srgb, var(--primary) 8%, var(--bg-surface));
    font-weight: 600;
}
.svrl-ampel-option--rot:has(input:checked) {
    border-color: var(--danger);
    background: color-mix(in srgb, var(--danger) 8%, var(--bg-surface));
}
.svrl-ampel-option--gelb:has(input:checked) {
    border-color: var(--warning);
    background: color-mix(in srgb, var(--warning) 8%, var(--bg-surface));
}
.svrl-ampel-option--gruen:has(input:checked) {
    border-color: var(--success);
    background: color-mix(in srgb, var(--success) 8%, var(--bg-surface));
}
.svrl-ampel-option input { margin: 0; }

@media (max-width: 640px) {
    .svrl-header { flex-direction: column; align-items: stretch; }
    .svrl-kpi-grid { grid-template-columns: 1fr; }
    .svrl-form-card { padding: 18px; }
}

/* === aufmass_detail.html === */
.aufm-detail-grid-outer { max-width: 900px; }
.aufm-detail-grid-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
.aufm-kpi-value { font-size: var(--space-lg); font-weight: 700; color: var(--primary); }
.aufm-kpi-value-default { font-size: var(--space-lg); font-weight: 700; }
.aufm-umfang-hint { margin-top: 12px; font-size: 13px; color: var(--text-secondary); }
.aufm-oeffnungen-wrap { margin-top: 6px; font-size: 12px; }
.aufm-badge-spacing { margin-right: var(--space-xs); margin-bottom: var(--space-xs); }
.aufm-rohtext-box {
    margin-top: var(--space-md);
    padding: 10px;
    background: var(--bg-surface-2);
    border-radius: 6px;
    font-size: 12px;
    color: var(--text-muted);
}
.aufm-foto-img {
    max-width: 100%;
    max-height: 300px;
    border-radius: var(--space-sm);
    box-shadow: 0 2px 8px rgba(0,0,0,.15);
    cursor: pointer;
}
.aufm-detail-danger-card {
    margin-top: var(--space-md);
    border: 1px solid color-mix(in srgb, var(--danger) 30%, transparent);
}
.aufm-detail-danger-form { padding: 12px; }

/* === gaeb_liste.html === */
.gaeb-liste-empty-card { max-width: 760px; margin: 40px auto; }
.gaeb-liste-info-banner {
    padding: 10px 20px;
    background: var(--bg-surface-2);
    border-bottom: 1px solid var(--border);
    font-size: 11px;
    color: var(--text-muted);
}
.gaeb-row-link {
    color: var(--text-primary);
    text-decoration: none;
    font-weight: 500;
}
.gaeb-row-meta { font-size: 10px; color: var(--text-muted); margin-top: 2px; }
.gaeb-cell-num-mono { text-align: right; font-family: monospace; font-size: 12px; }
.gaeb-cell-summe { text-align: right; font-family: monospace; font-size: 13px; font-weight: 500; }
.gaeb-ampel-row { display: flex; gap: 3px; align-items: center; font-size: 11px; }
.gaeb-ampel-badge {
    padding: 2px 6px;
    border-radius: 10px;
}
.gaeb-ampel-badge.is-success {
    background: color-mix(in srgb, var(--success) 14%, var(--bg-surface));
    color: var(--success);
    border: 1px solid var(--success);
}
.gaeb-ampel-badge.is-warning {
    background: color-mix(in srgb, var(--warning) 14%, var(--bg-surface));
    color: var(--warning);
    border: 1px solid var(--warning);
}
.gaeb-ampel-badge.is-danger {
    background: color-mix(in srgb, var(--danger) 12%, var(--bg-surface));
    color: var(--danger);
    border: 1px solid var(--danger);
}
.gaeb-ampel-badge.is-grau {
    background: var(--bg-surface-2);
    color: var(--text-muted);
    border: 1px solid var(--text-muted);
}
.gaeb-badge-ki {
    background: color-mix(in srgb, var(--info) 18%, var(--bg-surface));
    color: var(--info);
    font-size: 9px;
    border: 1px solid color-mix(in srgb, var(--info) 50%, transparent);
    margin-right: var(--space-xs);
}
.gaeb-badge-gaeb {
    background: color-mix(in srgb, var(--info) 14%, var(--bg-surface));
    color: var(--info);
    font-size: 9px;
    border: 1px solid color-mix(in srgb, var(--info) 60%, var(--bg-surface));
    margin-right: var(--space-xs);
}
.gaeb-status-badge { font-size: 10px; }
.gaeb-status-badge.is-imported {
    background: color-mix(in srgb, var(--info) 14%, var(--bg-surface));
    color: var(--info);
}
.gaeb-status-badge.is-in-arbeit {
    background: color-mix(in srgb, var(--warning) 14%, var(--bg-surface));
    color: var(--warning);
}
.gaeb-status-badge.is-other {
    background: var(--bg-surface-2);
    color: var(--text-muted);
}
.gaeb-cell-actions { text-align: right; white-space: nowrap; }

/* === aufmass_neu.html (KI-Branding) === */
.aufm-neu-card { border-left: 4px solid var(--gold-accent-dim); }
.aufm-neu-header { background: color-mix(in srgb, var(--gold-accent) 14%, var(--bg-surface)); }
.aufm-neu-h2 { font-size: 15px; color: var(--gold-accent-dim); }
.aufm-neu-desc { font-size: 13px; color: var(--text-secondary); margin: 0 0 12px; }
.aufm-neu-mic-row {
    display: flex;
    gap: var(--space-sm);
    flex-wrap: wrap;
    align-items: center;
    margin-bottom: 10px;
}
.aufm-neu-mic-btn { background: var(--gold-accent-dim); }
.aufm-neu-extract-row { display: flex; gap: var(--space-sm); margin-top: 10px; flex-wrap: wrap; }
.aufm-neu-extract-hint { color: var(--text-muted); align-self: center; }

/* === aufmass_foto.html === */
.aufm-foto-manual-badge {
    font-size: 11px;
    padding: 2px 7px;
    background: var(--border);
    color: var(--text-secondary);
    border-radius: 10px;
    font-weight: 600;
    vertical-align: middle;
    margin-left: 6px;
}
.aufm-foto-drop {
    border: 2px dashed var(--border);
    border-radius: var(--space-sm);
    padding: var(--space-xl);
    text-align: center;
    cursor: pointer;
    transition: all .15s;
    background: var(--bg-surface);
}
.aufm-foto-preview { display: none; margin-bottom: 12px; }
.aufm-foto-img-preview {
    max-width: 100%;
    max-height: 300px;
    border-radius: 6px;
    box-shadow: 0 2px 8px rgba(0,0,0,.15);
}
.aufm-foto-icon-large { font-size: var(--space-xl); margin-bottom: var(--space-sm); }
.aufm-foto-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.aufm-foto-mass-card {
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: var(--space-sm);
    padding: var(--space-md);
    margin-bottom: var(--space-md);
}
.aufm-foto-mass-h3 { font-size: 14px; margin-bottom: 12px; }
.aufm-foto-grid-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; }
.aufm-foto-oeff-card {
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: var(--space-sm);
    padding: var(--space-md);
    margin-bottom: var(--space-md);
}
.aufm-foto-oeff-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}
.aufm-foto-oeff-h3 {
    font-size: 14px;
    margin: 0;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.aufm-foto-oeff-empty {
    color: var(--text-muted);
    font-size: 13px;
    text-align: center;
    padding: var(--space-sm);
}
.aufm-foto-live-result {
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    color: var(--text-on-accent);
    border-radius: var(--space-sm);
    padding: var(--space-md);
    margin-bottom: var(--space-md);
}
.aufm-foto-live-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: 12px;
    text-align: center;
}
.aufm-foto-live-label { font-size: 11px; opacity: .8; }
.aufm-foto-live-value { font-size: 22px; font-weight: 700; }
.aufm-foto-live-unit { font-size: 11px; opacity: .7; }

/* === ki_angebot_neu.html === */
.ki-angebot-wrap { max-width: 760px; margin: 0 auto; }
.ki-angebot-card { padding: 28px; }
.ki-angebot-erklaerung {
    margin-bottom: 20px;
    padding-bottom: var(--space-md);
    border-bottom: 1px solid var(--border-subtle);
}
.ki-angebot-h3 { margin: 0 0 10px; font-size: var(--space-md); }
.ki-angebot-desc { margin: 0; font-size: 13px; color: var(--text-muted); line-height: 1.6; }
.ki-angebot-textarea-label {
    display: block;
    font-size: 13px;
    font-weight: 500;
    margin-bottom: 6px;
}
.ki-angebot-textarea {
    width: 100%;
    padding: 12px;
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 14px;
    font-family: inherit;
    resize: vertical;
}
.ki-angebot-examples-label {
    display: block;
    font-size: 12px;
    font-weight: 500;
    margin-bottom: 6px;
    color: var(--text-secondary);
}
.ki-angebot-examples-row { display: flex; gap: 6px; flex-wrap: wrap; }
.ki-angebot-chip {
    padding: 5px 12px;
    background: color-mix(in srgb, var(--info) 14%, var(--bg-surface));
    border: 1px solid color-mix(in srgb, var(--info) 30%, var(--bg-surface));
    color: var(--info);
    border-radius: var(--space-md);
    font-size: 11px;
    cursor: pointer;
    text-align: left;
    max-width: 380px;
}
.ki-angebot-actions {
    display: flex;
    gap: 12px;
    padding-top: var(--space-md);
    border-top: 1px solid var(--border-subtle);
    align-items: center;
    flex-wrap: wrap;
}
.ki-angebot-submit { padding: 12px var(--space-lg); font-weight: 600; }
.ki-angebot-spinner {
    display: none;
    font-size: 12px;
    color: var(--primary);
    margin-left: auto;
    font-variant-numeric: tabular-nums;
}
.ki-angebot-progress-wrap {
    display: none;
    margin-top: 12px;
    height: var(--space-xs);
    background: var(--bg-surface-2);
    border-radius: 2px;
    overflow: hidden;
}
.ki-angebot-progress-bar {
    height: 100%;
    background: var(--primary);
    width: 0%;
    transition: width 1s linear;
}
.ki-angebot-datenschutz {
    margin-top: var(--space-md);
    padding: 14px 18px;
    background: color-mix(in srgb, var(--success) 10%, var(--bg-surface));
    border-left: 4px solid var(--success);
}
.ki-angebot-datenschutz-content {
    font-size: 12px;
    color: var(--success);
    line-height: 1.5;
}
.ki-angebot-hw-notice {
    display: none;
    margin-top: 12px;
    padding: 12px var(--space-md);
    background: color-mix(in srgb, var(--warning) 10%, var(--bg-surface));
    border-left: 4px solid var(--warning);
}
.ki-angebot-hw-notice-content {
    font-size: 12px;
    color: var(--text-secondary);
    line-height: 1.55;
}
.ki-angebot-skel-wrap { display: none; margin-top: 20px; }
.ki-angebot-skel-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: var(--space-md);
    padding-bottom: 12px;
    border-bottom: 1px solid var(--border);
}
.ki-angebot-skel-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: var(--space-sm);
}
.ki-angebot-skel-bar-row { display: flex; gap: 14px; margin-top: 10px; }
.ki-angebot-skel-line { height: 10px; }

/* === stueckliste_generator.html === */
.stueck-wrap { max-width: 900px; }
.stueck-flex-150 { flex: 0 0 150px; }
.stueck-flex-auto-end { flex: 0 0 auto; align-self: flex-end; }
.stueck-result-wrap { display: none; margin-top: var(--space-md); }
.stueck-result-actions {
    padding: var(--space-md);
    border-top: 1px solid var(--border-subtle);
    display: flex;
    gap: var(--space-sm);
    flex-wrap: wrap;
}
.stueck-result-form {
    display: flex;
    gap: var(--space-sm);
    flex-wrap: wrap;
    flex: 1;
}
.stueck-result-select { max-width: 300px; }
.stueck-result-summary {
    padding: var(--space-md);
    border-top: 2px solid var(--border);
}

/* === angebote_liste.html === */
.ang-th-amount-13 { width: 13%; text-align: right; }

/* === gaeb_projekt.html === */
.gaeb-proj-info-card { padding: 20px; margin-bottom: var(--space-md); }
.gaeb-proj-info-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    margin-bottom: 14px;
    font-size: 12px;
}
.gaeb-proj-info-label { color: var(--text-muted); margin-bottom: 2px; }
.gaeb-proj-info-summe { font-weight: 700; color: var(--primary); }
.gaeb-proj-summary-row {
    display: flex;
    gap: var(--space-md);
    flex-wrap: wrap;
    padding-top: 14px;
    border-top: 1px solid var(--border);
    font-size: 12px;
    align-items: center;
}
.gaeb-proj-ampel-pill {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    padding: 3px 10px;
    border-radius: 12px;
}
.gaeb-proj-ampel-pill.is-success {
    background: color-mix(in srgb, var(--success) 14%, var(--bg-surface));
    color: var(--success);
    border: 1px solid var(--success);
}
.gaeb-proj-ampel-pill.is-warning {
    background: color-mix(in srgb, var(--warning) 14%, var(--bg-surface));
    color: var(--warning);
    border: 1px solid var(--warning);
}
.gaeb-proj-ampel-pill.is-danger {
    background: color-mix(in srgb, var(--danger) 12%, var(--bg-surface));
    color: var(--danger);
    border: 1px solid var(--danger);
}
.gaeb-proj-ampel-pill.is-grau {
    background: var(--bg-surface-2);
    color: var(--text-muted);
    border: 1px solid var(--text-muted);
}
.gaeb-proj-ampel-dot {
    display: inline-block;
    width: var(--space-sm);
    height: var(--space-sm);
    border-radius: 50%;
}
.gaeb-proj-ampel-dot.is-success { background: var(--success); }
.gaeb-proj-ampel-dot.is-warning { background: var(--warning); }
.gaeb-proj-ampel-dot.is-danger { background: var(--danger); }
.gaeb-proj-ampel-dot.is-grau { background: var(--text-muted); }

/* gaeb_projekt Position-Tabelle */
.gaeb-proj-tr-section {
    background: var(--bg-surface-2);
    font-weight: 600;
}
.gaeb-proj-td-oz {
    font-family: monospace;
    font-size: 11px;
}
.gaeb-proj-ampel-cell {
    display: inline-block;
    padding: 3px 7px;
    border-radius: 6px;
    font-size: 10px;
    font-weight: 600;
    white-space: nowrap;
}
.gaeb-proj-ampel-cell.is-gruen {
    background: color-mix(in srgb, var(--success) 14%, var(--bg-surface));
    color: var(--success);
    border: 1px solid var(--success);
}
.gaeb-proj-ampel-cell.is-gelb {
    background: color-mix(in srgb, var(--warning) 14%, var(--bg-surface));
    color: var(--warning);
    border: 1px solid var(--warning);
}
.gaeb-proj-ampel-cell.is-rot {
    background: color-mix(in srgb, var(--danger) 12%, var(--bg-surface));
    color: var(--danger);
    border: 1px solid var(--danger);
}
.gaeb-proj-ampel-cell.is-grau {
    background: var(--bg-surface-2);
    color: var(--text-muted);
    border: 1px solid var(--text-muted);
}
.gaeb-proj-los-tag {
    text-transform: uppercase;
    font-size: 10px;
    letter-spacing: 0.5px;
    color: var(--primary);
}
.gaeb-proj-hinweis {
    color: var(--text-muted);
    font-style: italic;
    font-size: 12px;
}
.gaeb-proj-langtext {
    font-size: 11px;
    color: var(--text-muted);
    line-height: 1.4;
    margin-top: 2px;
}
.gaeb-proj-cell-num {
    text-align: right;
    font-family: monospace;
    font-size: 12px;
}
.gaeb-proj-cell-num-bold {
    text-align: right;
    font-family: monospace;
    font-size: 12px;
    font-weight: 500;
}
.gaeb-proj-form-flex {
    display: flex;
    gap: var(--space-xs);
    justify-content: flex-end;
}
.gaeb-proj-vk-input {
    width: 85px;
    padding: 4px 6px;
    font-family: monospace;
    font-size: 12px;
    text-align: right;
    border: 1px solid var(--border);
    border-radius: var(--space-xs);
}
.gaeb-proj-btn-mini {
    padding: 4px var(--space-sm);
    font-size: 11px;
}
.gaeb-proj-tbd-badge {
    background: color-mix(in srgb, var(--warning) 14%, var(--bg-surface));
    color: var(--warning);
    font-size: 10px;
}
.gaeb-proj-vorschlag-wrap {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
    align-items: flex-start;
}
.gaeb-proj-vorschlag-badge {
    background: color-mix(in srgb, var(--warning) 14%, var(--bg-surface));
    color: var(--warning);
    font-size: 10px;
}
.gaeb-proj-vorschlag-actions { display: flex; gap: 3px; }
.gaeb-proj-btn-uebernehmen {
    padding: 2px 7px;
    font-size: 10px;
    background: color-mix(in srgb, var(--success) 14%, var(--bg-surface));
    color: var(--success);
    border: 1px solid var(--success);
    border-radius: 3px;
    cursor: pointer;
}
.gaeb-proj-btn-verwerfen {
    padding: 2px 7px;
    font-size: 10px;
    background: transparent;
    color: var(--text-muted);
    border: 1px solid var(--border);
    border-radius: 3px;
    cursor: pointer;
}
.gaeb-proj-bestaetigt-badge {
    background: color-mix(in srgb, var(--info) 14%, var(--bg-surface));
    color: var(--info);
    font-size: 10px;
}
.gaeb-proj-als-leistung-btn {
    padding: 3px var(--space-sm);
    font-size: 10px;
}
.gaeb-proj-loeschen-card {
    margin-top: var(--space-md);
    padding: 14px 20px;
    background: var(--bg-surface);
}
.gaeb-proj-loeschen-btn {
    padding: 6px 12px;
    font-size: 11px;
}

/* gaeb_projekt Modal */
.gaeb-proj-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,0.5);
    z-index: 1000;
    align-items: center;
    justify-content: center;
}
.gaeb-proj-modal-card {
    background: var(--bg-surface);
    padding: 30px;
    border-radius: 10px;
    max-width: 560px;
    width: 90%;
    max-height: 90vh;
    overflow-y: auto;
}
.gaeb-proj-modal-h2 { margin: 0 0 var(--space-md); font-size: 18px; }
.gaeb-proj-modal-content {
    text-align: center;
    padding: 20px;
    color: var(--text-muted);
}
.gaeb-proj-modal-warning {
    display: none;
    padding: 12px 14px;
    background: color-mix(in srgb, var(--danger) 12%, var(--bg-surface));
    border: 1px solid var(--danger);
    border-radius: 6px;
    color: var(--danger);
    margin-bottom: var(--space-md);
    font-size: 13px;
    line-height: 1.5;
}
.gaeb-proj-modal-actions {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    padding-top: var(--space-md);
    border-top: 1px solid var(--border);
}
.gaeb-proj-back-link-banner {
    margin: 8px 0 var(--space-md);
    padding: 10px 14px;
    background: color-mix(in srgb, var(--info) 8%, var(--bg-surface));
    border-left: 3px solid var(--info);
    border-radius: var(--space-xs);
    display: flex;
    align-items: center;
    gap: 10px;
}
.gaeb-proj-back-link {
    color: var(--info);
    text-decoration: none;
    font-size: 13px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

/* === aufmass_center.html — embedded <style> bleibt lokal, kleine Helper === */
.aufm-center-wrap { max-width: 900px; }

/* ═══════════════════════════════════════════════════════════════
   ITER 14 PHASE E.2b (2026-05-05): angebot_detail + angebot_formular
   2 Mega-Files (1243+1423 Z.) mit komplexen embedded <style>-Blocks die lokal bleiben
   ═══════════════════════════════════════════════════════════════ */

/* === angebot_detail.html === */
.ang-det-beschreibung-p {
    margin: 0;
    color: var(--text-secondary);
    line-height: 1.55;
}
.ang-det-meta-value-warn { color: var(--warning); font-weight: 600; }
.ang-det-banner-vorschlag-extra {
    background: color-mix(in srgb, var(--warning) 12%, var(--bg-surface));
    border-left: 4px solid var(--warning);
    margin-top: 12px;
}
.ang-det-banner-btn-warn { background: var(--warning); }
.ang-det-th-w-8 { width: 8%; text-align: right; }
.ang-det-th-w-11 { width: 11%; text-align: right; }
.ang-det-th-w-12 { width: 12%; text-align: right; }
.ang-det-pos-tag-katalog-info {
    background: color-mix(in srgb, var(--info) 15%, transparent);
    color: var(--info);
}
.ang-det-pos-tag-katalog-success {
    background: color-mix(in srgb, var(--success) 15%, transparent);
    color: var(--success);
}
.ang-det-pos-tag-geschaetzt {
    background: color-mix(in srgb, var(--warning) 18%, transparent);
    color: var(--warning);
}
.ang-det-pos-tag-offen {
    background: color-mix(in srgb, var(--danger) 15%, transparent);
    color: var(--danger);
}
.ang-det-linked-auftrag-link {
    color: var(--primary);
    font-weight: 600;
}

/* === angebot_formular.html === */
.agf-info-banner {
    background: color-mix(in srgb, var(--info) 10%, transparent);
    border-left: 3px solid var(--info);
    padding: 12px var(--space-md);
    border-radius: 6px;
    margin-bottom: 14px;
}
.agf-info-sub {
    font-size: 13px;
    margin-top: 6px;
    color: var(--text-secondary);
}
.agf-gaeb-drop {
    border: 2px dashed var(--border);
    border-radius: var(--space-sm);
    padding: 18px;
    text-align: center;
    cursor: pointer;
    transition: all 0.15s;
    background: var(--bg-surface-2);
}
.agf-gaeb-drop-text {
    color: var(--text-muted);
    font-size: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-sm);
}
.agf-gaeb-drop-hint {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 6px;
}
.agf-gaeb-feedback {
    margin-top: 10px;
    font-size: 12px;
}
.agf-pos-gesamt {
    display: inline-block;
    min-width: 80px;
    font-weight: 600;
}
.agf-btn-katalog {
    background: var(--bg-surface-2);
    border: 1px solid var(--border-subtle);
    color: var(--primary);
    padding: 4px 10px;
    border-radius: 6px;
    cursor: pointer;
    font-size: 11px;
    height: var(--space-xl);
}
.agf-btn-position-remove {
    background: none;
    border: none;
    color: var(--danger);
    cursor: pointer;
    font-size: 18px;
    padding: 4px var(--space-sm);
}
.agf-btn-pos-remove-large {
    background: none;
    border: none;
    color: var(--danger);
    cursor: pointer;
    font-size: 20px;
    line-height: 1;
    padding: 0 var(--space-xs);
}

/* ═══════════════════════════════════════════════════════════════
   ITER 14 PHASE E.3 (2026-05-05): Material + Lieferanten + Lager + Leistungen
   12 Templates, 209 styles, 18 Hex (Beige-Brand + Dark-Red), 3 Conditional Lager
   ═══════════════════════════════════════════════════════════════ */

/* === Common Beige-Tip-Border (mehrfach genutzt, war #EAE8E4) === */
.hw-divider-beige { border-bottom: 1px solid var(--border-subtle); padding-bottom: var(--space-md); margin-bottom: 20px; }
.hw-divider-top-beige { border-top: 1px solid var(--border-subtle); padding-top: var(--space-md); margin-top: 20px; }

/* === material_detail.html === */
.mat-detail-wrap { max-width: 860px; }
.mat-detail-card { padding: var(--space-lg); margin-bottom: var(--space-md); }
.mat-detail-artikelnr {
    font-family: monospace;
    font-size: 11px;
    color: var(--text-muted);
    margin-bottom: var(--space-xs);
}
.mat-detail-h2 { margin: 0; font-size: 18px; }
.mat-detail-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    font-size: 13px;
}
.mat-detail-cell-mono { font-weight: 500; font-family: monospace; }
.mat-detail-cell-preis {
    font-weight: 600;
    font-family: monospace;
    color: var(--primary);
    font-size: 15px;
}
.mat-detail-lieferant-card {
    margin-top: 20px;
    padding: var(--space-md);
    background: var(--bg-surface-2);
    border-radius: var(--space-sm);
}
.mat-detail-lieferant-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
}
.mat-detail-stamm-link {
    font-size: 11px;
    color: var(--primary);
}
.mat-detail-form-row {
    display: flex;
    gap: var(--space-sm);
    align-items: center;
    flex-wrap: wrap;
}
.mat-detail-hint {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: var(--space-sm);
}
.mat-detail-langtext-section { margin-top: 20px; padding-top: var(--space-md); border-top: 1px solid var(--border-subtle); }
.mat-detail-langtext-label {
    color: var(--text-muted);
    font-size: 11px;
    margin-bottom: var(--space-xs);
}
.mat-detail-langtext-content {
    font-size: 12px;
    line-height: 1.5;
    white-space: pre-wrap;
}
.mat-detail-meta-section {
    margin-top: 20px;
    padding-top: var(--space-md);
    border-top: 1px solid var(--border-subtle);
    font-size: 11px;
    color: var(--text-muted);
}
.mat-detail-import-link { color: var(--text-muted); text-decoration: underline; }

/* === material_imports.html === */
.mat-imp-empty-card { max-width: 640px; margin: 40px auto; padding: 40px; text-align: center; }
.mat-imp-empty-text { color: var(--text-muted); margin-bottom: 20px; }
.mat-imp-th-artikel { width: 220px; text-align: right; }
.mat-imp-cell-num {
    text-align: right;
    font-size: 11px;
    font-family: monospace;
}
.mat-imp-deleted { color: var(--danger); }
.mat-imp-status-running {
    background: color-mix(in srgb, var(--warning) 14%, var(--bg-surface));
    color: var(--warning);
    font-size: 10px;
}
.mat-imp-status-error {
    background: color-mix(in srgb, var(--danger) 12%, var(--bg-surface));
    color: var(--danger);
    font-size: 10px;
}

/* === material_liste.html (klein) === */
.mat-liste-empty-card { max-width: 760px; margin: 40px auto; }

/* === material_upload.html (gleicher Pattern wie gaeb-upload-*) === */
/* Nutzt existierende .gaeb-upload-* Klassen aus E.2a, nur Variante */

/* === lieferanten_liste.html === */
.lief-th-zahlungsziel { width: 110px; text-align: right; }

/* === lieferant_form.html === */
.lief-wrap { max-width: 900px; }
.lief-stats-card { margin-bottom: var(--space-md); padding: 16px 20px; }
.lief-stats-label {
    font-size: 11px;
    color: var(--text-muted);
    margin-bottom: var(--space-sm);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.lief-stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 14px;
}
.lief-stats-value-primary {
    font-size: 20px;
    font-weight: 700;
    color: var(--primary);
    font-family: monospace;
}
.lief-stats-value { font-size: 20px; font-weight: 700; }
.lief-skonto-box {
    background: color-mix(in srgb, var(--success) 10%, transparent);
    padding: var(--space-sm);
    border-radius: 6px;
    border: 1px solid color-mix(in srgb, var(--success) 40%, transparent);
}
.lief-skonto-label { font-size: 11px; color: var(--success); }
.lief-skonto-value {
    font-size: 20px;
    font-weight: 700;
    color: var(--success);
    font-family: monospace;
}
.lief-section-divider {
    margin-top: var(--space-md);
    padding-top: 12px;
    border-top: 1px solid var(--border-subtle);
}
.lief-section-divider-narrow {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--border-subtle);
}
.lief-section-h { font-size: 12px; font-weight: 600; margin-bottom: var(--space-sm); }
.lief-table { width: 100%; font-size: 12px; }
.lief-cell-pad-mono {
    padding: 5px 0;
    font-family: monospace;
    font-size: 11px;
}
.lief-cell-artikelnr { width: 100px; }
.lief-cell-datum { width: 80px; }
.lief-cell-pad { padding: 5px 0; }
.lief-cell-pad-right {
    padding: 5px 0;
    text-align: right;
    font-family: monospace;
}
.lief-cell-pad-right-bold {
    padding: 5px 0;
    text-align: right;
    font-family: monospace;
    font-weight: 500;
}
.lief-cell-link { color: var(--text-primary); text-decoration: none; }
.lief-rechnungen-foot { font-size: 11px; margin-top: 6px; }
.lief-checkbox-label { display: flex; align-items: center; gap: var(--space-sm); }
.lief-form-actions-row { display: flex; gap: 12px; align-items: center; }
.lief-form-bottom { margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--border); }

/* === lager_liste.html (3 Conditional-Stiles!) === */
.lag-kpi-icon-primary {
    background: color-mix(in srgb, var(--primary) 12%, transparent);
    color: var(--primary);
}
.lag-kpi-icon-info {
    background: color-mix(in srgb, var(--primary) 15%, transparent);
    color: var(--info);
}
.lag-kpi-icon-success {
    background: color-mix(in srgb, var(--success) 15%, transparent);
    color: var(--success);
}
.lag-kpi-icon-conditional.is-warning {
    background: color-mix(in srgb, var(--warning) 15%, transparent);
    color: var(--warning);
}
.lag-kpi-icon-conditional.is-success {
    background: color-mix(in srgb, var(--success) 15%, transparent);
    color: var(--success);
}
.lag-kpi-value-conditional.is-warning { color: var(--warning); }
.lag-kpi-value-conditional.is-success { color: var(--success); }
.lag-th-min { width: 80px; text-align: right; }

/* === lager_detail.html (1 Conditional!) === */
.lag-detail-grid {
    max-width: 1000px;
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: var(--space-md);
}
.lag-detail-card-padded { margin-bottom: var(--space-md); padding: 16px 20px; }
.lag-detail-th-mini {
    text-align: left;
    padding: 6px var(--space-xs);
    font-size: 11px;
    color: var(--text-muted);
}
.lag-detail-th-right {
    text-align: right;
    padding: 6px var(--space-xs);
    font-size: 11px;
    color: var(--text-muted);
}
.lag-detail-td-mono {
    padding: 6px var(--space-xs);
    font-family: monospace;
    font-size: 11px;
}
.lag-detail-td-meta {
    padding: 6px var(--space-xs);
    font-size: 12px;
    color: var(--text-muted);
}
.lag-detail-empty {
    padding: 20px;
    text-align: center;
    color: var(--text-muted);
    font-size: 13px;
}
.lag-detail-bestand-card { padding: 16px 20px; margin-bottom: var(--space-md); }
.lag-detail-bestand-card.is-unterbestand {
    background: color-mix(in srgb, var(--warning) 10%, transparent);
    border: 1px solid var(--warning);
}
.lag-detail-bestand-label {
    font-size: 11px;
    color: var(--text-muted);
    margin-bottom: var(--space-xs);
}
.lag-detail-bestand-value {
    font-size: 36px;
    font-weight: 700;
    font-family: monospace;
}
.lag-detail-bestand-einheit { font-size: 18px; color: var(--text-muted); }
.lag-detail-warning-banner {
    margin-top: 10px;
    padding: var(--space-sm);
    background: var(--warning);
    color: white;
    border-radius: 6px;
    font-size: 12px;
}

/* === lager_form.html (klein) === */
.lag-form-actions { margin-top: var(--space-md); display: flex; gap: var(--space-sm); }

/* === bestellvorschlag.html === */
.bestell-header-row {
    display: flex;
    justify-content: space-between;
    align-items: start;
    gap: var(--space-md);
    flex-wrap: wrap;
}
.bestell-header-label {
    font-size: 11px;
    color: var(--text-muted);
    margin-bottom: var(--space-xs);
    text-transform: uppercase;
}
.bestell-header-h2 { margin: 0; font-size: 18px; }
.bestell-summe-value {
    font-size: var(--space-lg);
    font-weight: 700;
    color: var(--primary);
    font-family: monospace;
}
.bestell-meta {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--border-subtle);
}
.bestell-lief-card { margin-bottom: var(--space-md); padding: 16px 20px; }
.bestell-lief-header {
    display: flex;
    justify-content: space-between;
    align-items: start;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--border-subtle);
}
.bestell-lief-link { color: var(--text-primary); text-decoration: none; }
.bestell-summe-mono {
    font-size: 18px;
    font-weight: 700;
    font-family: monospace;
}
.bestell-cell-mono {
    padding: 6px var(--space-xs);
    font-family: monospace;
    font-size: 11px;
}
.bestell-cell-bestand {
    padding: 6px var(--space-xs);
    text-align: right;
    font-family: monospace;
    font-size: 11px;
    color: var(--text-muted);
}
.bestell-cell-num-12 {
    padding: 6px var(--space-xs);
    text-align: right;
    font-family: monospace;
    font-size: 12px;
}
.bestell-no-lief-card {
    margin-bottom: var(--space-md);
    padding: 16px 20px;
    border-left: 4px solid var(--warning);
}
.bestell-no-lief-h3 {
    margin: 0 0 10px 0;
    font-size: 15px;
    color: var(--warning);
}
.bestell-no-lief-desc {
    font-size: 12px;
    color: var(--text-muted);
    margin-bottom: 10px;
}
.bestell-cell-pad-right { padding: 6px var(--space-xs); text-align: right; }

/* === leistungen_formular.html (Mega-File 100 styles) === */
.leist-form-card { max-width: 900px; }
.leist-flash-wrap { padding: 16px 20px 0; }
.leist-flash {
    margin-bottom: 12px;
    padding: 10px 14px;
    border-radius: 6px;
}
.leist-grid-3-130-220 {
    display: grid;
    grid-template-columns: 130px 220px 1fr;
    gap: 12px;
    margin-bottom: var(--space-md);
}
.leist-grid-3-150-1fr-1fr {
    display: grid;
    grid-template-columns: 150px 1fr 1fr;
    gap: 12px;
    margin-bottom: var(--space-md);
}
.leist-input-large {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 14px;
    font-family: monospace;
}
.leist-vk-form-group {
    margin-bottom: var(--space-md);
    padding: 12px 14px;
    background: var(--bg-surface-2);
    border: 1px solid var(--border-subtle);
    border-radius: var(--space-sm);
}
.leist-vk-label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    margin-bottom: var(--space-xs);
    color: var(--text-secondary);
}
.leist-vk-optional {
    font-weight: 400;
    color: var(--text-muted);
}
.leist-vk-hint {
    display: block;
    margin-top: 6px;
    font-size: 11px;
    color: var(--text-muted);
    line-height: 1.5;
}
.leist-textarea {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 14px;
    font-family: inherit;
    resize: vertical;
}
.leist-textarea-langtext {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 13px;
    font-family: inherit;
    resize: vertical;
    line-height: 1.5;
}
.leist-checkbox-card {
    margin-bottom: var(--space-md);
    padding: 12px;
    background: var(--bg-surface-2);
    border-radius: 6px;
}
.leist-checkbox-label {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    font-size: 13px;
    cursor: pointer;
}
.leist-checkbox-hint {
    display: block;
    margin-top: var(--space-xs);
    font-size: 11px;
    color: var(--text-muted);
    margin-left: 22px;
}
.leist-actions-row {
    display: flex;
    gap: var(--space-sm);
    margin-top: var(--space-lg);
    padding-top: var(--space-md);
    border-top: 1px solid var(--border-subtle);
}
.leist-stueckliste-section {
    margin: 0;
    padding: 20px;
    border-top: 1px solid var(--border-subtle);
    background: color-mix(in srgb, var(--info) 14%, var(--bg-surface));
}
.leist-stueckliste-h3 {
    font-size: 15px;
    margin: 0 0 12px;
    color: var(--info);
    display: flex;
    align-items: center;
    gap: 10px;
}
.leist-stueckliste-table {
    width: 100%;
    margin-bottom: 12px;
    font-size: 12px;
}
.leist-th-ek { width: 120px; text-align: right; }
.leist-pos-form { display: flex; gap: var(--space-xs); justify-content: flex-end; }
.leist-pos-input {
    width: 70px;
    padding: 3px 6px;
    font-family: monospace;
    font-size: 11px;
    text-align: right;
    border: 1px solid var(--border);
    border-radius: var(--space-xs);
}
.leist-pos-btn { padding: 3px 6px; font-size: 10px; }
.leist-pos-einheit {
    font-size: 10px;
    color: var(--text-muted);
    margin-top: 2px;
}
.leist-cell-num {
    text-align: right;
    font-family: monospace;
}
.leist-cell-num-bold {
    text-align: right;
    font-family: monospace;
    font-weight: 500;
}
.leist-cell-remove-btn {
    padding: 2px 6px;
    font-size: 10px;
}
.leist-tr-summe { border-top: 2px solid var(--info); }
.leist-cell-summe-label {
    text-align: right;
    font-weight: 600;
    padding: 8px 0;
}
.leist-cell-summe-val {
    text-align: right;
    font-weight: 700;
    color: var(--info);
    font-family: monospace;
    padding: 8px 0;
}
.leist-stueckliste-empty {
    font-size: 12px;
    color: var(--text-muted);
    margin: 0 0 12px;
}
.leist-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,0.5);
    z-index: 1000;
    align-items: center;
    justify-content: center;
}
.leist-modal-card {
    background: var(--bg-surface);
    padding: var(--space-lg);
    border-radius: 10px;
    max-width: 720px;
    width: 90%;
    max-height: 85vh;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.leist-modal-h2 { margin: 0 0 14px; font-size: var(--space-md); }
.leist-modal-input {
    padding: 10px 12px;
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 14px;
    margin-bottom: 12px;
}
.leist-modal-results {
    overflow-y: auto;
    flex: 1;
    min-height: 200px;
}
.leist-modal-empty {
    color: var(--text-muted);
    font-size: 12px;
    text-align: center;
    padding: 20px;
}
.leist-modal-actions {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    padding-top: 14px;
    border-top: 1px solid var(--border-subtle);
    margin-top: 14px;
}

/* leistungen_formular Ampel-Section */
.leist-ampel-section {
    margin: 0;
    padding: 20px;
    border-top: 1px solid var(--border-subtle);
}
.leist-ampel-h3 {
    font-size: 15px;
    margin: 0 0 var(--space-xs);
    display: flex;
    align-items: center;
    gap: 10px;
}
.leist-ampel-status-label {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.leist-ampel-desc {
    font-size: 11px;
    color: var(--text-muted);
    margin: 0 0 14px;
}
.leist-ampel-grid {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 20px;
    align-items: center;
}
.leist-ampel-big-card {
    text-align: center;
    min-width: 180px;
    padding: 16px 20px;
    background: var(--bg-surface);
    border-radius: 10px;
}
.leist-ampel-db-big {
    font-size: var(--space-xl);
    font-weight: 700;
    line-height: 1;
}
.leist-ampel-db-label {
    font-size: 10px;
    color: var(--text-muted);
    margin-top: 6px;
    letter-spacing: 0.5px;
}
.leist-ampel-text {
    margin: 0 0 12px;
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.5;
}
.leist-ampel-chips-row {
    display: flex;
    gap: var(--space-sm);
    flex-wrap: wrap;
    font-size: 11px;
}
.leist-ampel-chip {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    padding: 4px 10px;
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: 20px;
    color: var(--text-primary);
}
.leist-ampel-vk-diff {
    margin-top: 10px;
    font-size: 11px;
    color: var(--text-muted);
}

/* leistungen_formular Kalk-Section */
.leist-kalk-section {
    margin: 0;
    padding: 20px;
    border-top: 1px solid var(--border-subtle);
    background: var(--bg-surface-2);
}
.leist-kalk-h3 {
    font-size: 15px;
    margin: 0 0 12px;
    color: var(--primary);
}
.leist-kalk-warning-banner {
    padding: 14px var(--space-md);
    background: color-mix(in srgb, var(--warning) 12%, var(--bg-surface));
    border: 1px solid color-mix(in srgb, var(--warning) 40%, var(--bg-surface));
    border-radius: 6px;
    color: var(--warning);
    font-size: 13px;
}
.leist-kalk-menge-row {
    display: flex;
    gap: 12px;
    align-items: center;
    margin-bottom: 12px;
    flex-wrap: wrap;
}
.leist-kalk-menge-label { font-size: 13px; font-weight: 500; }
.leist-kalk-menge-input {
    width: 120px;
    padding: 8px 12px;
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 14px;
    font-family: monospace;
}
.leist-kalk-status {
    font-size: 11px;
    color: var(--text-muted);
    margin-left: auto;
}
.leist-kalk-stress-card {
    margin-bottom: var(--space-md);
    padding: 10px 14px;
    background: var(--bg-surface);
    border: 1px dashed var(--warning);
    border-radius: 6px;
}
.leist-kalk-stress-row {
    display: flex;
    gap: 12px;
    align-items: center;
    flex-wrap: wrap;
}
.leist-kalk-stress-label {
    font-size: 13px;
    font-weight: 500;
    color: var(--warning);
}
.leist-kalk-stress-input {
    width: 140px;
    padding: 8px 12px;
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 14px;
    font-family: monospace;
}
.leist-kalk-stress-btn-mini { padding: 6px 12px; font-size: 11px; }
.leist-kalk-stress-hint {
    display: block;
    margin-top: 6px;
    font-size: 11px;
    color: var(--text-muted);
    line-height: 1.4;
}
.leist-kalk-vorschau-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    align-items: start;
}
.leist-kalk-tabelle {
    width: 100%;
    font-size: 13px;
    font-family: monospace;
}
.leist-kalk-tr-border-top td {
    padding: 2px 0;
    border-top: 1px solid var(--border);
}
.leist-kalk-cell-right {
    text-align: right;
    border-top: 1px solid var(--border);
}
.leist-kalk-cell-bold-top {
    padding: 4px 0;
    font-weight: 700;
    border-top: 2px solid var(--primary);
}
.leist-kalk-cell-right-bold {
    text-align: right;
    font-weight: 700;
    border-top: 2px solid var(--primary);
    color: var(--primary);
}
.leist-kalk-cell-mini {
    padding: 2px 0;
    font-size: 11px;
    color: var(--text-muted);
}
.leist-kalk-cell-mini-right {
    text-align: right;
    font-size: 11px;
    color: var(--text-muted);
}
.leist-kalk-svg-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.leist-kalk-svg { max-width: 100%; height: auto; }
.leist-kalk-legend {
    width: 100%;
    margin-top: 10px;
    font-size: 11px;
    font-family: system-ui, sans-serif;
}
.leist-kalk-legend-row {
    display: flex;
    justify-content: space-between;
    padding: 3px 0;
    border-bottom: 1px solid var(--border-subtle);
}
.leist-kalk-legend-row-last {
    display: flex;
    justify-content: space-between;
    padding: 3px 0;
}
.leist-kalk-legend-dot {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 2px;
}
.leist-kalk-legend-dot.is-primary { background: var(--primary); }
.leist-kalk-legend-dot.is-warning { background: var(--warning); }
.leist-kalk-legend-dot.is-info { background: var(--info); }
.leist-kalk-legend-dot.is-success { background: var(--success); }

/* leistungen_formular Footer */
.leist-footer-bar {
    margin-top: 0;
    padding: 16px 20px;
    border-top: 1px solid var(--border-subtle);
    background: var(--bg-surface-2);
}
.leist-footer-loeschen-btn {
    background: var(--danger);
    color: var(--text-on-accent);
    border: none;
    padding: 6px 14px;
    font-size: 12px;
    border-radius: var(--space-xs);
    cursor: pointer;
}

/* === leistungen_liste.html === */
.leist-liste-empty-card { max-width: 760px; margin: 40px auto; }
.leist-liste-th-zeitwert { width: 110px; text-align: right; }


/* ═══════════════════════════════════════════════════════════════
   ITER 14 PHASE E.4 (2026-05-05)
   Plantafel + Kalender + Fahrzeuge + Transport + Zeiterfassung
   14 Templates, 263 inline-styles + ~25 hex in embedded blocks
   ═══════════════════════════════════════════════════════════════ */

/* ─── Helper-Klassen für inline-style-Migration ─────────────── */
.fz-th-w-120 { width: 120px; }
.fz-th-w-110 { width: 110px; }
.fz-th-w-80-c { width: 80px; text-align: center; }
.fz-th-w-120-r { width: 120px; text-align: right; }

/* ═══════════════════════════════════════════════════════════════
   PLANTAFEL — plantafel_wochen.html (1815 Z.)
   3 embedded <style>-Blocks migriert + 90 inline-styles refactored
   ═══════════════════════════════════════════════════════════════ */

/* ─── Unassigned-Bar (Drop-Zone für Auftrags-Karten) ─────── */
.pt-unassigned-bar {
    margin-bottom: var(--space-md);
    transition: background 0.15s, border-color 0.15s;
}
.pt-unassigned-scroll {
    overflow-x: auto;
    padding: 4px 0 10px 0;
}
.pt-unassigned-row {
    display: flex;
    gap: 10px;
}
.pt-auftrag-card-titel {
    font-weight: 700;
    font-size: 13px;
    margin-bottom: var(--space-xs);
}
.pt-auftrag-card-termin {
    font-size: 11px;
    color: var(--primary);
    margin-top: 2px;
}
.pt-auftrag-rest-badge {
    margin-top: 6px;
    padding: 3px var(--space-sm);
    background: var(--warning);
    color: var(--bg-surface);
    border-radius: 100px;
    font-size: 10px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
}

/* ─── Termine-Cards (oben) + Banner-Termine im Grid ───────── */
.pt-termine-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-sm);
    flex-wrap: wrap;
}
.pt-termine-card-header h3 {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    margin: 0;
}
.pt-termine-count {
    background: var(--bg-surface-2);
    color: var(--text-muted);
    font-size: 11px;
    padding: 2px var(--space-sm);
    border-radius: 12px;
    font-weight: 600;
}
.pt-termine-count-warn {
    background: var(--warning);
    color: var(--bg-surface);
    font-size: 11px;
    padding: 2px var(--space-sm);
    border-radius: 12px;
    font-weight: 600;
}
.pt-termine-list-row {
    padding: 10px 14px 14px;
    display: flex;
    gap: var(--space-sm);
    flex-wrap: wrap;
}

/* Termin-Chip mit Z.1-Pattern für --t-color */
.pt-termin-chip-base {
    background: color-mix(in srgb, var(--t-color, var(--primary)) 12%, var(--bg-surface));
    border: 1px solid color-mix(in srgb, var(--t-color, var(--primary)) 65%, var(--border));
    color: var(--t-color, var(--primary));
    padding: 8px 12px;
    border-radius: 10px;
    cursor: pointer;
    display: inline-flex;
    flex-direction: column;
    gap: 2px;
    text-align: left;
    font-family: inherit;
    min-width: 180px;
    max-width: 280px;
    transition: transform .15s, box-shadow .15s;
}
.pt-termin-chip-base.is-flexibel {
    background: color-mix(in srgb, var(--warning) 10%, var(--bg-surface));
    border: 1px dashed color-mix(in srgb, var(--warning) 65%, var(--border));
}
.pt-termin-chip:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}
.pt-termin-chip:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
}
.pt-termin-chip-title {
    font-weight: 700;
    font-size: 12.5px;
    display: flex;
    align-items: center;
    gap: 6px;
}
.pt-termin-chip-typ-icon {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    color: currentColor;
}
.pt-termin-chip-typ-icon svg { display: block; }
.pt-termin-chip-titletext { color: var(--text-primary); }
.pt-termin-chip-meta {
    font-size: 10.5px;
    color: var(--text-secondary);
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    align-items: center;
}
.pt-termin-chip-meta .pt-termin-undated {
    color: var(--warning);
    font-weight: 600;
}
.pt-termin-chip-ort {
    display: inline-flex;
    align-items: center;
    gap: 3px;
}
.pt-termin-chip-ort svg { vertical-align: middle; }
.pt-termin-chip-attendees {
    font-size: 10.5px;
    color: var(--text-muted);
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    flex-wrap: wrap;
}
.pt-termin-chip-attendees svg { vertical-align: middle; }
.pt-termin-chip-typ-label {
    font-weight: 600;
    color: var(--t-color, var(--primary));
}
[data-theme="dark"] .pt-termin-chip:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.35);
}

/* ─── Plantafel-Grid (Wochen-Tabelle) ───────────────────── */
.pt-grid-wrap-card { padding: 0; overflow: hidden; }
.pt-grid-scroll { overflow-x: auto; }
.pt-grid-table {
    width: 100%;
    min-width: 900px;
    border-collapse: collapse;
    table-layout: fixed;
}
.pt-grid-thead-row { background: var(--bg-surface-2); }
.pt-grid-th-mitarbeiter {
    width: 180px;
    padding: 10px;
    text-align: left;
    border-right: 2px solid var(--border);
    position: sticky;
    left: 0;
    background: var(--bg-surface-2);
    z-index: 2;
}
.pt-grid-th-day {
    padding: 10px;
    text-align: center;
    border-right: 1px solid var(--border);
}
.pt-grid-th-day.is-today {
    background: color-mix(in srgb, var(--success) 18%, var(--bg-surface-2));
}
.pt-grid-th-day-weekday {
    font-weight: 700;
    font-size: 13px;
}
.pt-grid-th-day-wetter {
    font-size: 14px;
    margin-top: 3px;
}
.pt-grid-th-day-wetter-temp {
    font-size: 9px;
    color: var(--text-muted);
}
.pt-grid-th-day-heute-pill {
    font-size: 10px;
    color: var(--success);
    font-weight: 700;
    margin-top: 2px;
}

/* Banner-Zeile für alle_mitarbeiter-Termine */
.pt-banner-row {
    background: color-mix(in srgb, var(--bg-surface-2) 60%, transparent);
    border-bottom: 2px solid var(--border);
}
.pt-banner-th {
    padding: 8px 10px;
    text-align: left;
    border-right: 2px solid var(--border);
    position: sticky;
    left: 0;
    background: color-mix(in srgb, var(--bg-surface-2) 60%, var(--bg-surface));
    z-index: 1;
    font-size: 11px;
    color: var(--text-muted);
    font-weight: 600;
}
.pt-banner-cell {
    padding: 6px;
    border-right: 1px solid var(--border);
    vertical-align: middle;
    min-height: 40px;
}
.pt-banner-termin {
    background: color-mix(in srgb, var(--t-color, var(--primary)) 22%, var(--bg-surface));
    border: 1px solid color-mix(in srgb, var(--t-color, var(--primary)) 70%, var(--border));
    color: var(--t-color, var(--primary));
    padding: 4px var(--space-sm);
    border-radius: 6px;
    font-size: 11px;
    font-weight: 600;
    margin-bottom: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    cursor: pointer;
}
.pt-banner-termin.is-planbar { cursor: grab; }

/* Mitarbeiter-Zeile + Cells */
.pt-grid-tr-member { border-top: 1px solid var(--border); }
.pt-grid-td-member {
    padding: 10px;
    font-weight: 600;
    border-right: 2px solid var(--border);
    position: sticky;
    left: 0;
    background: var(--bg-base);
    z-index: 1;
}
.pt-grid-td-member-rolle {
    font-size: 10px;
    color: var(--text-muted);
    text-transform: uppercase;
}
.pt-grid-cell {
    padding: 6px;
    vertical-align: top;
    min-height: 80px;
    height: 80px;
    border-right: 1px solid var(--border);
}
.pt-grid-cell.is-abwesend {
    background: color-mix(in srgb, var(--text-muted) 15%, transparent);
}
.pt-grid-cell.is-overload {
    background: color-mix(in srgb, var(--danger) 15%, transparent);
}
.pt-grid-cell.is-today {
    background: color-mix(in srgb, var(--success) 8%, transparent);
}
.pt-grid-cell.is-grab { cursor: grab; }

.pt-abwesend-body {
    padding: var(--space-sm);
    text-align: center;
    color: var(--text-muted);
    font-size: 11px;
    font-style: italic;
}
.pt-abwesend-icon {
    color: var(--text-muted);
    margin-bottom: 2px;
    display: flex;
    justify-content: center;
}
.pt-abwesend-typ {
    font-weight: 600;
    text-transform: capitalize;
}

.pt-eintrag-titel {
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.pt-eintrag-meta {
    font-size: 10px;
    color: var(--text-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.pt-eintrag-notiz {
    font-size: 10px;
    color: var(--text-muted);
    font-style: italic;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.pt-eintrag-regen {
    color: var(--info);
    font-size: 10px;
}

/* Termin-Eintrag im Grid (Tab-1-Mode für non-banner-Termine) */
.pt-termin-eintrag-card {
    background: color-mix(in srgb, var(--t-color, var(--primary)) 12%, var(--bg-surface));
    border: 1px solid color-mix(in srgb, var(--t-color, var(--primary)) 65%, var(--border));
    border-radius: var(--space-sm);
    padding: 6px var(--space-sm);
    margin-bottom: var(--space-xs);
    font-size: 11px;
}
.pt-termin-eintrag-titel {
    font-weight: 600;
    color: var(--t-color, var(--primary));
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.pt-termin-eintrag-meta {
    font-size: 10px;
    color: var(--text-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.pt-termin-eintrag-ganztag {
    font-size: 10px;
    color: var(--text-muted);
    font-style: italic;
}

.pt-termin-eintrag-form {
    position: absolute;
    top: 2px;
    right: var(--space-xs);
    margin: 0;
    padding: 0;
}
.pt-termin-eintrag-del {
    background: color-mix(in srgb, var(--danger) 15%, transparent);
    border: none;
    color: color-mix(in srgb, var(--danger) 90%, transparent);
    width: 18px;
    height: 18px;
    border-radius: 50%;
    cursor: pointer;
    font-size: 12px;
    line-height: 1;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Eintrag-Loesch-Button (rotes ×) */
.pt-eintrag-del-btn {
    position: absolute;
    top: 2px;
    right: 2px;
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: color-mix(in srgb, var(--danger) 12%, transparent);
    border: 1px solid color-mix(in srgb, var(--danger) 35%, transparent);
    border-radius: 50%;
    color: var(--danger);
    cursor: pointer;
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    padding: 0;
    transition: background 0.15s, transform 0.15s;
}
.pt-eintrag-del-btn:hover {
    background: color-mix(in srgb, var(--danger) 25%, transparent);
    transform: scale(1.1);
}

/* Σ-Stunden-Zeile am Cell-Ende */
.pt-cell-sum {
    font-size: 9px;
    color: var(--text-muted);
    text-align: right;
    margin-top: var(--space-xs);
}
.pt-cell-sum.is-overload {
    color: var(--danger);
    font-weight: 700;
}

.pt-team-empty-row {
    padding: 30px;
    text-align: center;
    color: var(--text-muted);
}

/* ─── Edit-Modal + Multi-Day-Modal ────────────────────── */
.pt-modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.6);
    z-index: 9999;
    align-items: center;
    justify-content: center;
    backdrop-filter: blur(2px);
}
.pt-modal-overlay.is-open { display: flex; }
.pt-modal-content {
    background: var(--bg-surface);
    color: var(--text-primary);
    padding: var(--space-lg);
    border-radius: 10px;
    max-width: 460px;
    width: 90%;
    box-shadow: 0 10px 40px rgba(0,0,0,0.4);
    border: 1px solid var(--border);
}
.pt-modal-h3 {
    margin: 0 0 6px;
    font-size: 17px;
    color: var(--text-primary);
}
.pt-modal-h3-tight { margin: 0 0 var(--space-sm); }
.pt-modal-info {
    margin: 0 0 18px;
    font-size: 13px;
    color: var(--text-secondary);
}
.pt-modal-form-row {
    display: flex;
    gap: 10px;
    margin-bottom: 14px;
}
.pt-modal-label {
    font-size: 11px;
    color: var(--text-muted);
    display: block;
    margin-bottom: var(--space-xs);
}
.pt-modal-label-sec {
    font-size: 12px;
    color: var(--text-secondary);
    display: block;
    margin-bottom: 6px;
    font-weight: 600;
}
.pt-modal-hint {
    font-size: 10px;
    color: var(--text-muted);
    margin-top: 2px;
}
.pt-modal-actions {
    display: flex;
    gap: var(--space-sm);
    justify-content: space-between;
    align-items: center;
}
.pt-modal-actions-right {
    display: flex;
    gap: var(--space-sm);
    justify-content: flex-end;
}
.pt-modal-input-w-120 { width: 120px; }
.pt-modal-input-w-110 { width: 110px; }

/* "Weiterer Mitarbeiter einteilen" — Sektion im Edit-Modal */
.pt-add-person-section {
    margin-top: 18px;
    padding-top: var(--space-md);
    border-top: 1px solid var(--border);
}
.pt-add-person-title {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 10px;
    font-weight: 600;
    font-size: 13px;
    color: var(--warning);
}
.pt-add-person-hint {
    font-size: 11px;
    color: var(--text-muted);
    margin-bottom: 10px;
}
.pt-add-person-row {
    display: flex;
    gap: var(--space-sm);
    margin-bottom: var(--space-sm);
}
.pt-add-person-row > .form-control { font-size: 13px; }
.pt-add-person-row > .form-control.is-flex2 { flex: 2; }
.pt-add-person-row > .form-control.is-flex1 { flex: 1; }
.pt-add-person-actions {
    display: flex;
    justify-content: flex-end;
}
.pt-add-person-btn {
    background: var(--warning);
    color: var(--bg-surface);
    border: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.pt-add-person-feedback {
    margin-top: var(--space-sm);
    font-size: 12px;
}

/* Multi-Day-Modal */
.pt-mday-presets {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 18px;
}
.pt-mday-input-section { margin-bottom: 18px; }
.pt-mday-fieldset {
    border: 1px solid var(--border);
    border-radius: var(--space-sm);
    padding: 12px var(--space-md);
    margin: 0 0 18px;
    background: var(--bg-surface-2);
}
.pt-mday-legend {
    font-size: 12px;
    color: var(--text-secondary);
    padding: 0 var(--space-sm);
    font-weight: 600;
}
.pt-mday-radio-row {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    font-size: 13px;
    cursor: pointer;
    padding: 5px 0;
    color: var(--text-primary);
}

/* Highlight-Animation (?highlight=<auftrag_id>) */
.pt-card-highlight-pulse {
    animation: pt-card-pulse 0.9s ease-in-out 4;
    position: relative;
    z-index: 2;
}
@keyframes pt-card-pulse {
    0%, 100% {
        box-shadow: 0 0 0 0 color-mix(in srgb, var(--gold-accent) 0%, transparent);
        transform: scale(1);
    }
    50% {
        box-shadow: 0 0 0 8px color-mix(in srgb, var(--gold-accent) 35%, transparent),
                    0 4px 16px color-mix(in srgb, var(--gold-accent) 25%, transparent);
        transform: scale(1.03);
    }
}

/* Dynamic-Toast (kommt aus JS bei nicht-gefundenem Highlight) */
.pt-toast-warning {
    position: fixed;
    top: 20px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--warning);
    color: var(--bg-surface);
    padding: 12px 20px;
    border-radius: var(--space-sm);
    box-shadow: 0 4px 16px rgba(0,0,0,0.2);
    z-index: 10000;
    font-size: 13px;
    max-width: 500px;
}

/* ═══════════════════════════════════════════════════════════════
   PLANTAFEL-HISTORIE — plantafel_historie.html (101 Z., 8 styles)
   ═══════════════════════════════════════════════════════════════ */
.pt-hist-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}
.pt-hist-thead-row { background: var(--bg-surface-2); }
.pt-hist-row { border-top: 1px solid var(--border-subtle); }
.pt-hist-row.is-undone { opacity: 0.5; }
.pt-hist-cell-zeit {
    padding: 10px;
    font-family: monospace;
    font-size: 11px;
    color: var(--text-muted);
}
.pt-hist-cell-detail {
    padding: 10px;
    color: var(--text-muted);
    font-size: 11px;
}
.pt-hist-snapshot-summary {
    cursor: pointer;
    font-size: 10px;
}
.pt-hist-snapshot-pre {
    font-size: 10px;
    background: var(--bg-base);
    padding: var(--space-xs);
    margin-top: 2px;
    border-radius: 3px;
    max-width: 300px;
    overflow-x: auto;
}
.pt-hist-undo-btn {
    font-size: 11px;
    padding: 4px var(--space-sm);
}

/* ═══════════════════════════════════════════════════════════════
   PLANTAFEL-ROUTE — plantafel_route.html (98 Z., 12 styles)
   ═══════════════════════════════════════════════════════════════ */
.pt-route-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.pt-route-stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: var(--space-md);
}
.pt-route-stat-value {
    font-size: var(--space-lg);
    font-weight: 700;
    color: var(--primary);
    margin-top: 2px;
}
.pt-route-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}
.pt-route-thead-row { background: var(--bg-surface-2); }
.pt-route-th-num {
    padding: 10px;
    text-align: left;
    width: 40px;
}
.pt-route-row { border-top: 1px solid var(--border-subtle); }
.pt-route-cell-num {
    padding: 10px;
    font-weight: 700;
    color: var(--primary);
    font-size: var(--space-md);
}
.pt-route-cell-addr {
    padding: 10px;
    color: var(--text-muted);
}
.pt-route-empty-list {
    margin: 0;
    padding-left: 20px;
    text-align: left;
    font-size: 13px;
    line-height: 1.6;
    color: var(--text-muted);
    max-width: 480px;
}

/* ═══════════════════════════════════════════════════════════════
   PLANTAFEL-iCAL — plantafel_ical_info.html (180 Z., 21 styles, 7 hex)
   ═══════════════════════════════════════════════════════════════ */
.pt-ical-url-card {
    padding: 12px;
    background: var(--bg-surface-2);
    border-radius: 6px;
    margin-top: 12px;
}
.pt-ical-url-label {
    font-size: 11px;
    color: var(--text-muted);
    margin-bottom: var(--space-xs);
    font-weight: 600;
}
.pt-ical-url-row {
    display: flex;
    gap: var(--space-sm);
    align-items: center;
    flex-wrap: wrap;
}
.pt-ical-url-input {
    flex: 1;
    min-width: 200px;
    padding: 8px 10px;
    font-family: monospace;
    font-size: 11px;
    border: 1px solid var(--border);
    border-radius: var(--space-xs);
    background: var(--bg-base);
}
.pt-ical-warn-banner {
    margin-top: var(--space-md);
    padding: 12px;
    background: color-mix(in srgb, var(--warning) 10%, transparent);
    border-left: 3px solid var(--warning);
    border-radius: var(--space-xs);
    font-size: 12px;
}
.pt-ical-summary {
    cursor: pointer;
    font-weight: 600;
    padding: 8px 0;
}
.pt-ical-summary-icon {
    cursor: pointer;
    font-weight: 600;
    padding: 8px 0;
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
}
.pt-ical-ol {
    margin: 8px 0 8px 20px;
    font-size: 13px;
    line-height: 1.6;
}

/* Toggle-Switch (Notify-Opt-Out) */
.pt-ical-toggle-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px;
    background: var(--bg-surface-2);
    border-radius: 6px;
}
.pt-ical-toggle-switch {
    position: relative;
    display: inline-block;
    width: var(--space-2xl);
    height: 26px;
    cursor: pointer;
    flex-shrink: 0;
}
.pt-ical-toggle-input {
    opacity: 0;
    width: 0;
    height: 0;
}
.pt-ical-toggle-slider {
    position: absolute;
    inset: 0;
    background: var(--primary);
    border-radius: 26px;
    transition: .2s;
}
.pt-ical-toggle-slider.is-off { background: var(--text-muted); }
.pt-ical-toggle-knob {
    position: absolute;
    top: 3px;
    left: 25px;
    width: 20px;
    height: 20px;
    background: var(--bg-surface);
    border-radius: 50%;
    transition: .2s;
}
.pt-ical-toggle-knob.is-off { left: 3px; }
.pt-ical-status-label {
    font-weight: 600;
    font-size: 14px;
}
.pt-ical-status-on { color: var(--success); }
.pt-ical-status-off { color: var(--warning); }
.pt-ical-save-btn {
    font-size: 13px;
    white-space: nowrap;
}

/* ═══════════════════════════════════════════════════════════════
   KALENDER-KAPAZITAET — kalender_kapazitaet.html
   FullCalendar-Customization (220 Z. embedded → migriert)
   ═══════════════════════════════════════════════════════════════ */
.fc { font-size: 14px; font-family: inherit; }
.fc .fc-toolbar-title {
    font-size: 22px;
    font-weight: 800;
    letter-spacing: -0.3px;
    color: var(--text-primary);
}
.fc .fc-daygrid-day-frame { min-height: 120px; }
.fc .fc-daygrid-body-natural .fc-daygrid-day-events { margin-bottom: var(--space-xs); }

/* FC Events */
.fc .fc-event {
    cursor: pointer;
    border: none;
    font-size: 11px;
    padding: 3px 7px;
    margin-bottom: 2px;
    border-radius: 5px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
    transition: transform 0.12s ease;
}
.fc .fc-event:hover { transform: translateX(1px); }

/* Heute */
.fc .fc-day-today {
    background: linear-gradient(180deg, color-mix(in srgb, var(--primary) 8%, transparent), transparent) !important;
}

/* Gitter */
.fc th, .fc td { border: 1px solid var(--border) !important; }
.fc .fc-scrollgrid {
    border: 1px solid var(--border) !important;
    border-radius: 10px;
    overflow: hidden;
}
.fc .fc-col-header-cell {
    background: var(--bg-surface-2);
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.4px;
    font-size: 11px;
    padding: 8px var(--space-xs);
}

/* Tages-Nummer */
.fc .fc-daygrid-day-number {
    font-size: 14px;
    font-weight: 600;
    padding: 6px 10px;
    color: var(--text-secondary);
}
.fc .fc-day-today .fc-daygrid-day-number {
    color: var(--primary);
    font-weight: 800;
}

/* Buttons */
.fc .fc-button {
    background: var(--bg-surface) !important;
    border: 1px solid var(--border) !important;
    color: var(--text-secondary) !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    padding: 7px 13px !important;
    border-radius: 7px !important;
    box-shadow: none !important;
    transition: all 0.12s ease !important;
}
.fc .fc-button:hover {
    background: var(--bg-surface-2) !important;
    color: var(--primary) !important;
    border-color: var(--primary) !important;
}
.fc .fc-button-primary:not(:disabled).fc-button-active,
.fc .fc-button-primary:not(:disabled):active {
    background: var(--primary) !important;
    border-color: var(--primary) !important;
    color: var(--text-inverted) !important;
    box-shadow: 0 2px 8px color-mix(in srgb, var(--primary) 30%, transparent) !important;
}
.fc .fc-toolbar.fc-header-toolbar { margin-bottom: 18px !important; }

/* Zeitraster */
.fc .fc-timegrid-slot { height: 42px; }
.fc .fc-timegrid-axis-cushion {
    font-size: 11px;
    color: var(--text-muted);
    font-weight: 600;
}

/* Multi-Month */
.fc .fc-multimonth { border: none !important; background: transparent !important; }
.fc .fc-multimonth-month {
    padding: 10px;
    background: var(--bg-surface);
    border-radius: 10px;
}
.fc .fc-multimonth-header {
    font-weight: 800;
    font-size: var(--space-md);
    color: var(--text-primary);
    padding-bottom: 6px;
}
.fc .fc-multimonth-title { color: var(--text-primary) !important; }
.fc .fc-multimonth-daygrid {
    font-size: 12px;
    background: transparent;
}
.fc .fc-multimonth-daygrid-table { background: transparent !important; }
.fc .fc-multimonth td,
.fc .fc-multimonth th {
    background: transparent !important;
    border-color: var(--border) !important;
    color: var(--text-secondary);
}
.fc .fc-multimonth .fc-col-header-cell {
    background: var(--bg-surface-2) !important;
    color: var(--text-muted);
}
.fc .fc-multimonth .fc-day {
    background: var(--bg-surface) !important;
}
.fc .fc-multimonth .fc-day-other {
    background: color-mix(in srgb, var(--bg-surface) 50%, var(--bg-surface-2)) !important;
}
.fc .fc-multimonth .fc-daygrid-day-number {
    color: var(--text-secondary);
}
.fc .fc-multimonth .fc-day-today {
    background: linear-gradient(180deg, color-mix(in srgb, var(--primary) 12%, var(--bg-surface)), var(--bg-surface)) !important;
}
.fc .fc-multimonth .fc-day-today .fc-daygrid-day-number {
    color: var(--primary);
    font-weight: 800;
}

/* Popover */
.fc .fc-popover {
    background: var(--bg-surface) !important;
    border: 1px solid var(--border) !important;
    box-shadow: 0 8px 24px rgba(0,0,0,0.18) !important;
    color: var(--text-primary);
}
.fc .fc-popover-header {
    background: var(--bg-surface-2) !important;
    color: var(--text-primary) !important;
    border-bottom: 1px solid var(--border) !important;
}
.fc .fc-popover-close { color: var(--text-muted) !important; }

/* Dark-Mode-Verstärkung */
[data-theme="dark"] .fc .fc-multimonth-month {
    background: var(--bg-surface);
    box-shadow: 0 1px 3px rgba(0,0,0,0.3);
}
[data-theme="dark"] .fc .fc-popover {
    box-shadow: 0 12px 32px rgba(0,0,0,0.55) !important;
}

/* Wochen-Nummer */
.fc .fc-daygrid-week-number {
    font-weight: 700;
    color: var(--primary);
    font-size: 11px;
}

/* Assign-Modal (Kalender-Klick) */
.kk-assign-modal-bg {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.55);
    backdrop-filter: blur(2px);
    z-index: 9998;
    align-items: center;
    justify-content: center;
    padding: 20px;
}
.kk-assign-modal-bg.show { display: flex; }
.kk-assign-modal {
    background: var(--bg-surface);
    border-radius: 14px;
    padding: var(--space-lg);
    max-width: 480px;
    width: 100%;
    box-shadow: 0 20px 60px rgba(0,0,0,0.3);
    animation: kk-modal-pop 0.22s ease-out;
}
@keyframes kk-modal-pop {
    from { opacity: 0; transform: scale(0.95) translateY(10px); }
    to { opacity: 1; transform: scale(1) translateY(0); }
}
.kk-assign-modal h3 {
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
    color: var(--text-primary);
}
.kk-assign-modal-h3 { margin: 0 0 var(--space-md); }
.kk-assign-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 12px;
}
.kk-assign-stunden-input { max-width: 120px; }

.kk-links {
    display: flex;
    gap: var(--space-sm);
    margin-bottom: var(--space-md);
    flex-wrap: wrap;
}
.kk-links .btn {
    display: inline-flex !important;
    align-items: center;
    gap: 6px;
    text-decoration: none;
}
.kk-tip {
    margin-bottom: 14px;
    padding: 10px 14px;
    background: color-mix(in srgb, var(--primary) 5%, transparent);
    border-left: 3px solid var(--primary);
    border-radius: 6px;
    font-size: 12px;
    color: var(--text-muted);
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.kk-tip strong { color: var(--text-primary); }

@media (max-width: 768px) {
    .fc .fc-toolbar { flex-direction: column; gap: 10px; }
    .fc .fc-toolbar-title { font-size: 17px; }
    .fc .fc-button { font-size: 12px !important; padding: 6px 10px !important; }
    .kk-assign-modal { padding: 18px; }
}
@media (prefers-reduced-motion: reduce) {
    .kk-assign-modal { animation: none; }
}

/* ═══════════════════════════════════════════════════════════════
   FAHRZEUG-KONTROLLE — fahrzeug_kontrolle.html (78 Z., 14 styles)
   ═══════════════════════════════════════════════════════════════ */
.fkz-form-label-bold {
    display: block;
    font-weight: 600;
    font-size: 13px;
    margin-bottom: var(--space-xs);
}
.fkz-km-input {
    max-width: 200px;
    font-size: var(--space-md);
    font-weight: 600;
}
.fkz-km-last {
    font-size: 12px;
    color: var(--text-muted);
    margin-left: var(--space-sm);
}
.fkz-checklist {
    border: 1px solid var(--border);
    border-radius: var(--space-sm);
    overflow: hidden;
}
.fkz-checklist-row {
    padding: 12px var(--space-md);
    display: flex;
    gap: 12px;
    align-items: center;
    flex-wrap: wrap;
    border-bottom: 1px solid var(--border);
}
.fkz-checklist-row:last-child { border-bottom: none; }
.fkz-checklist-row.is-zebra { background: var(--bg-surface); }
.fkz-checklist-status-row {
    display: flex;
    gap: 12px;
    align-items: center;
}
.fkz-status-label {
    display: flex;
    align-items: center;
    gap: var(--space-xs);
    cursor: pointer;
    font-size: 13px;
    padding: 6px 12px;
    border-radius: 6px;
    border: 2px solid var(--success);
    color: var(--success);
}
.fkz-status-label.is-mangel {
    border-color: var(--warning);
    color: var(--warning);
}
.fkz-radio-success { accent-color: var(--success); }
.fkz-radio-warning { accent-color: var(--warning); }
.fkz-notiz-input {
    font-size: 13px;
    max-width: 400px;
}
.fkz-allg-label {
    display: block;
    font-weight: 600;
    font-size: 12px;
    margin-bottom: var(--space-xs);
}
.fkz-actions-row {
    display: flex;
    gap: var(--space-sm);
    margin-top: 20px;
}
.fkz-submit-btn {
    padding: 12px var(--space-lg);
    font-size: 15px;
}

/* ═══════════════════════════════════════════════════════════════
   TRANSPORT-UEBERSICHT + DETAIL + HISTORIE + NEU + MARKETPLACE
   ═══════════════════════════════════════════════════════════════ */

/* Info-Banner */
.tp-info-banner {
    margin-bottom: var(--space-md);
    padding: 14px 18px;
    background: var(--bg-surface-2);
    border-radius: var(--space-sm);
    font-size: 13px;
}

/* KPI-Cards mit aktiv-Modifier */
.tp-kpi-card {
    text-decoration: none;
    color: inherit;
}
.tp-kpi-card.is-active {
    border: 2px solid var(--primary);
}
.tp-kpi-card.is-success-bg {
    background: color-mix(in srgb, var(--success) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--success) 40%, transparent);
}

/* Tabs */
.tp-tabs-row {
    display: flex;
    gap: var(--space-sm);
    margin-bottom: var(--space-md);
    border-bottom: 2px solid var(--border-subtle);
    flex-wrap: wrap;
}
.tp-tab-link {
    padding: 10px var(--space-md);
    text-decoration: none;
    color: var(--text-muted);
}
.tp-tab-link.is-active {
    color: var(--primary);
    border-bottom: 3px solid var(--primary);
    font-weight: 600;
}
.tp-tab-link-history {
    padding: 10px var(--space-md);
    text-decoration: none;
    color: var(--text-muted);
    margin-left: auto;
}

/* Feed-Filter (Kategorisierte Fahrzeuge) */
.tp-feed-filter-card {
    padding: 12px var(--space-md);
    margin-bottom: 12px;
}
.tp-feed-filter-form {
    display: flex;
    gap: var(--space-sm);
    align-items: center;
    flex-wrap: wrap;
}

/* Tabellen-Helpers */
.tp-tbl-link-titel {
    color: var(--text-primary);
    text-decoration: none;
    font-weight: 500;
}
.tp-tbl-cell-preis {
    text-align: right;
    font-family: monospace;
    font-weight: 600;
}
.tp-tbl-cell-preis.is-success { color: var(--success); }
.tp-tbl-cell-eigenes-angebot {
    font-size: 10px;
    color: var(--primary);
}

/* Detail-Header */
.tp-detail-meta-uppercase {
    font-size: 11px;
    color: var(--text-muted);
    text-transform: uppercase;
    margin-bottom: var(--space-xs);
}
.tp-detail-titel-h2 {
    margin: 0;
    font-size: 20px;
}
.tp-detail-budget-value {
    font-size: 20px;
    font-weight: 700;
    color: var(--primary);
    font-family: monospace;
}

/* Detail-Sections */
.tp-detail-text-pre {
    white-space: pre-wrap;
    font-size: 13px;
}
.tp-detail-zufahrt-warn {
    margin-bottom: 12px;
    padding: var(--space-sm);
    background: color-mix(in srgb, var(--warning) 10%, transparent);
    border-radius: var(--space-xs);
}
.tp-detail-zufahrt-label {
    font-size: 11px;
    color: var(--warning);
    text-transform: uppercase;
}
.tp-detail-zufahrt-value {
    font-size: 13px;
    white-space: pre-wrap;
}
.tp-detail-fahrzeug-list {
    margin: 4px 0 0 0;
    padding-left: var(--space-md);
    font-size: 13px;
}

/* Vergeben-Card */
.tp-detail-vergeben-card {
    padding: 16px 20px;
    margin-bottom: 12px;
    background: color-mix(in srgb, var(--success) 8%, transparent);
    border: 1px solid var(--success);
}
.tp-detail-vergeben-label {
    font-size: 11px;
    color: var(--success);
    text-transform: uppercase;
    font-weight: 600;
}
.tp-detail-vergeben-h4 { margin: 4px 0 8px 0; }
.tp-detail-vergeben-hr {
    margin: 12px 0;
    border: none;
    border-top: 1px solid var(--border-subtle);
}
.tp-detail-vergeben-kontakt-label {
    font-size: 12px;
    font-weight: 600;
    margin-bottom: var(--space-xs);
}

/* Mein-Angebot-Card */
.tp-detail-mein-card {
    padding: 16px 20px;
}
.tp-detail-mein-card.is-gewaehlt {
    background: color-mix(in srgb, var(--success) 8%, transparent);
    border: 1px solid var(--success);
}
.tp-detail-mein-badge-large {
    font-size: 13px;
    padding: 6px 12px;
}

/* Angebote-Loop-Card */
.tp-detail-angebote-card {
    padding: 16px 20px;
    margin-bottom: 12px;
}
.tp-detail-angebot-row {
    padding: 12px;
    margin-bottom: var(--space-sm);
    border: 1px solid var(--border-subtle);
    border-radius: 6px;
    background: var(--bg-surface);
}
.tp-detail-angebot-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--space-sm);
}
.tp-detail-angebot-preis {
    font-size: 20px;
    font-weight: 700;
    color: var(--primary);
    font-family: monospace;
}
.tp-detail-angebot-fz { font-size: 12px; margin-top: 6px; }
.tp-detail-angebot-verfuegbar { font-size: 12px; margin-top: 2px; }
.tp-detail-angebot-nachricht {
    font-size: 12px;
    margin-top: var(--space-sm);
    padding: 6px;
    background: var(--bg-surface-2);
    border-radius: var(--space-xs);
    white-space: pre-wrap;
}
.tp-detail-empty-text {
    padding: 20px;
    text-align: center;
    color: var(--text-muted);
    font-size: 13px;
}

/* Abschluss + Storno */
.tp-detail-abschliessen-card { padding: 14px; }
.tp-detail-abschliessen-title {
    font-weight: 600;
    margin-bottom: var(--space-sm);
}
.tp-detail-abschliessen-label {
    display: flex;
    gap: var(--space-sm);
    align-items: center;
    font-weight: 400;
    cursor: pointer;
    font-size: 13px;
    margin-bottom: 10px;
}
.tp-detail-abgeschlossen-card {
    padding: 16px 20px;
    background: var(--bg-surface-2);
}
.tp-detail-abgeschlossen-label {
    font-weight: 600;
    color: var(--success);
}
.tp-detail-abgeschlossen-link-row {
    margin-top: var(--space-sm);
    font-size: 13px;
}
.tp-detail-spedition-not-offen {
    padding: 16px 20px;
    color: var(--text-muted);
}

/* Historie-Filter + KPIs */
.tp-hist-rolle-row {
    display: flex;
    gap: var(--space-sm);
    margin-bottom: 20px;
    border-bottom: 2px solid var(--border-subtle);
}
.tp-hist-rolle-link {
    padding: 10px var(--space-md);
    text-decoration: none;
    color: var(--text-muted);
}
.tp-hist-rolle-link.is-active {
    color: var(--primary);
    border-bottom: 3px solid var(--primary);
    font-weight: 600;
}
.tp-hist-filter-card {
    padding: 16px 20px;
    margin-bottom: 20px;
}
.tp-hist-filter-form {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 12px;
    align-items: flex-end;
}
.tp-hist-filter-label {
    font-size: 11px;
    color: var(--text-muted);
    display: block;
    margin-bottom: 3px;
}

/* Chart-Card */
.tp-hist-chart-card {
    padding: 16px 20px;
    margin-bottom: 20px;
}
.tp-hist-chart-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 14px;
    flex-wrap: wrap;
    gap: 10px;
}
.tp-hist-jahr-row {
    display: flex;
    gap: var(--space-xs);
    font-size: 12px;
}
.tp-hist-jahr-link {
    padding: 4px 10px;
    text-decoration: none;
    border-radius: var(--space-xs);
    background: var(--bg-surface-2);
    color: var(--text-muted);
}
.tp-hist-jahr-link.is-current {
    background: var(--primary);
    color: var(--text-inverted);
}
.tp-hist-bars-grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 6px;
    align-items: flex-end;
    height: 140px;
}
.tp-hist-month-col {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    height: 100%;
    text-align: center;
}
.tp-hist-month-summe {
    font-size: 10px;
    color: var(--text-muted);
    margin-bottom: 2px;
    font-weight: 600;
}
.tp-hist-month-bar {
    background: linear-gradient(180deg, var(--primary), color-mix(in srgb, var(--primary) 60%, transparent));
    min-height: var(--space-xs);
    border-radius: 4px 4px 0 0;
}
.tp-hist-month-bar.is-empty {
    background: var(--bg-surface-2);
    height: var(--space-xs);
}
.tp-hist-month-labels {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 6px;
    margin-top: 6px;
    font-size: 10px;
    color: var(--text-muted);
    text-align: center;
}

/* Tabellen-Footer + Auftrag-Sublink */
.tp-hist-table-footer {
    padding: 10px var(--space-md);
    font-size: 11px;
    color: var(--text-muted);
    background: var(--bg-surface-2);
    border-top: 1px solid var(--border-subtle);
}
.tp-hist-row-auftrag {
    font-size: 10px;
    color: var(--text-muted);
    margin-top: 2px;
}
.tp-hist-cell-budget {
    color: var(--text-muted);
    font-size: 11px;
    font-weight: 400;
}

/* Transport-Neu-Form */
.tp-neu-flexibel-label {
    display: flex;
    gap: var(--space-sm);
    align-items: center;
    font-weight: 400;
    cursor: pointer;
}
.tp-neu-flexibel-checkbox {
    width: 18px;
    height: 18px;
}
.tp-neu-fahrzeug-info {
    font-size: 12px;
    color: var(--text-muted);
    margin-bottom: var(--space-sm);
}
.tp-neu-fahrzeug-section {
    margin-bottom: 12px;
    padding: 10px;
    background: var(--bg-surface-2);
    border-radius: 6px;
}
.tp-neu-fahrzeug-section-title {
    font-size: 12px;
    font-weight: 600;
    margin-bottom: 6px;
}
.tp-neu-fahrzeug-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 6px;
}
.tp-neu-fahrzeug-checkbox-label {
    display: flex;
    gap: var(--space-sm);
    align-items: flex-start;
    font-weight: 400;
    cursor: pointer;
    padding: 6px;
    border: 1px solid var(--border-subtle);
    border-radius: var(--space-xs);
    background: var(--bg-surface);
}
.tp-neu-fahrzeug-checkbox-label input[type="checkbox"] {
    margin-top: 2px;
}

.tp-neu-info-freitext {
    margin-bottom: 12px;
    flex-direction: column;
    align-items: stretch;
}
.tp-neu-info-freitext-label {
    font-size: 13px;
    font-weight: 600;
    display: block;
    margin-bottom: 6px;
}

/* ═══════════════════════════════════════════════════════════════
   FAHRZEUG-LISTE — fahrzeuge_liste.html
   1 embedded <style>-Block (~240 Z.) migriert + 10 inline-styles
   ═══════════════════════════════════════════════════════════════ */
.fz-header-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    text-decoration: none;
}

/* KPI-Card */
.fz-kpi-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 14px;
    margin-bottom: 20px;
}
.fz-kpi-card {
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: var(--space-md);
    display: flex;
    align-items: center;
    gap: 12px;
    transition: box-shadow 0.15s ease, transform 0.15s ease;
}
.fz-kpi-card:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.06);
    transform: translateY(-1px);
}
.fz-kpi-warn {
    background: color-mix(in srgb, var(--warning) 8%, var(--bg-surface));
    border-color: color-mix(in srgb, var(--warning) 30%, transparent);
}
.fz-kpi-danger {
    background: color-mix(in srgb, var(--danger) 6%, var(--bg-surface));
    border-color: color-mix(in srgb, var(--danger) 30%, transparent);
}
.fz-kpi-icon {
    width: 42px;
    height: 42px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    /* Z.1 Pattern: --kpi-icon-color für dynamische Farbe (primary/warning/danger/success/info) */
    background: color-mix(in srgb, var(--kpi-icon-color, var(--primary)) 15%, transparent);
    color: var(--kpi-icon-color, var(--primary));
}
.fz-kpi-value {
    font-size: 22px;
    font-weight: 800;
    color: var(--text-primary);
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
    /* Z.1 Pattern: --kpi-value-color für dynamische Farbe */
}
.fz-kpi-value.is-warning { color: var(--warning); }
.fz-kpi-value.is-danger { color: var(--danger); }
.fz-kpi-value.is-success { color: var(--success); }
.fz-kpi-label {
    font-size: 12px;
    color: var(--text-muted);
    margin-top: 2px;
    font-weight: 500;
}

/* Toolbar */
.fz-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}
.fz-toolbar-title {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
}
.fz-toolbar-suffix {
    color: var(--text-muted);
    font-weight: 500;
    font-size: 14px;
}
.fz-toolbar-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    text-decoration: none;
}

/* Tabelle */
.fz-table-wrap { overflow-x: auto; }
.fz-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 720px;
}
.fz-table thead th {
    text-align: left;
    padding: 10px 12px;
    font-size: 11px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 2px solid var(--border);
}
.fz-row {
    cursor: pointer;
    transition: background 0.12s ease;
    border-bottom: 1px solid var(--border);
}
.fz-row:hover { background: color-mix(in srgb, var(--primary) 4%, transparent); }
.fz-row:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: -2px;
}
.fz-row td {
    padding: 12px;
    font-size: 13px;
    vertical-align: middle;
}
.fz-kennzeichen {
    display: inline-block;
    padding: 4px 10px;
    background: var(--bg-surface-2);
    border: 2px solid var(--border);
    color: var(--text-primary);
    border-radius: 5px;
    font-family: 'SF Mono', Monaco, monospace;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    letter-spacing: 0.6px;
    text-transform: uppercase;
}
.fz-kennzeichen:hover {
    border-color: var(--primary);
    color: var(--primary);
}
.fz-td-name { font-weight: 500; color: var(--text-primary); }
.fz-td-typ { font-size: 12px; }
.fz-typ-pill {
    display: inline-block;
    padding: 2px var(--space-sm);
    background: var(--bg-surface-2);
    color: var(--text-muted);
    border-radius: 100px;
    font-size: 11px;
    font-weight: 500;
}
.fz-muted { color: var(--text-muted); }
.fz-td-km {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    font-size: 12px;
    color: var(--text-secondary);
}
.fz-td-km strong {
    color: var(--text-primary);
    font-weight: 700;
    font-size: 13px;
}
.fz-tuev-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    padding: 3px 10px;
    border-radius: 100px;
    font-size: 11px;
    font-weight: 700;
    background: var(--bg-surface-2);
    color: var(--text-muted);
    white-space: nowrap;
}
.fz-tuev-ok {
    background: color-mix(in srgb, var(--success) 15%, transparent);
    color: var(--success);
}
.fz-tuev-warn {
    background: color-mix(in srgb, var(--warning) 18%, transparent);
    color: var(--warning);
}
.fz-tuev-expired {
    background: color-mix(in srgb, var(--danger) 18%, transparent);
    color: var(--danger);
    font-weight: 700;
}
.fz-td-meta {
    font-size: 12px;
    color: var(--text-secondary);
    white-space: nowrap;
}
.fz-td-maengel { text-align: center; }
.fz-maengel-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    padding: 3px var(--space-sm);
    background: color-mix(in srgb, var(--danger) 15%, transparent);
    color: var(--danger);
    border-radius: 100px;
    font-size: 11px;
    font-weight: 700;
}
.fz-maengel-ok {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    color: var(--success);
    font-size: 11px;
    font-weight: 600;
}
.fz-td-action { text-align: right; }
.fz-chevron {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 6px;
    color: var(--text-muted);
    text-decoration: none;
    transition: all 0.12s ease;
}
.fz-row:hover .fz-chevron {
    background: var(--primary);
    color: var(--text-inverted);
}

.fz-mobile-list { display: none; }
@media (max-width: 768px) {
    .fz-table-wrap { display: none; }
    .fz-mobile-list {
        display: flex;
        flex-direction: column;
        gap: 10px;
    }
    .fz-mobile-card {
        display: block;
        padding: 14px;
        background: var(--bg-surface);
        border: 1px solid var(--border);
        border-radius: 10px;
        text-decoration: none;
        color: inherit;
        transition: all 0.15s ease;
    }
    .fz-mobile-card:hover {
        border-color: var(--primary);
        box-shadow: 0 3px 10px rgba(0,0,0,0.06);
    }
    .fz-mobile-head {
        display: flex;
        justify-content: space-between;
        gap: 10px;
        align-items: flex-start;
        margin-bottom: 10px;
    }
    .fz-mobile-kennzeichen {
        display: inline-block;
        padding: 4px 10px;
        background: var(--bg-surface-2);
        border: 2px solid var(--border);
        color: var(--text-primary);
        border-radius: 5px;
        font-family: 'SF Mono', Monaco, monospace;
        font-size: 13px;
        font-weight: 700;
        letter-spacing: 0.6px;
        text-transform: uppercase;
    }
    .fz-mobile-bezeichnung {
        font-size: 13px;
        color: var(--text-secondary);
        margin-top: var(--space-xs);
    }
    .fz-mobile-meta {
        display: flex;
        flex-wrap: wrap;
        gap: 6px 12px;
        font-size: 11px;
        color: var(--text-muted);
    }
    .fz-mobile-meta span {
        display: inline-flex;
        align-items: center;
        gap: var(--space-xs);
    }
    .fz-tuev-mobile.fz-tuev-warn,
    .fz-uvv-mobile.fz-tuev-warn {
        color: var(--warning);
        font-weight: 600;
    }
    .fz-tuev-mobile.fz-tuev-expired,
    .fz-uvv-mobile.fz-tuev-expired {
        color: var(--danger);
        font-weight: 700;
    }
    .fz-tuev-mobile.fz-tuev-ok,
    .fz-uvv-mobile.fz-tuev-ok { color: var(--success); }
    .fz-kpi-grid { grid-template-columns: 1fr 1fr; }
}

/* Empty */
.fz-empty {
    padding: 48px 20px;
    text-align: center;
    color: var(--text-muted);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
}
.fz-empty-icon { color: var(--border); opacity: 0.8; }
.fz-empty h3 {
    margin: 0;
    color: var(--text-primary);
    font-size: 18px;
}
.fz-empty p {
    margin: 0;
    font-size: 14px;
    max-width: 480px;
    line-height: 1.55;
}
.fz-empty .btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

/* ═══════════════════════════════════════════════════════════════
   FAHRZEUG-DETAIL — fahrzeug_detail.html
   1 embedded <style>-Block (~580 Z.) migriert + 1 inline-style
   ═══════════════════════════════════════════════════════════════ */

/* Lokale Vars für KFZ-Kennzeichen-DIN-Norm (UNABHÄNGIG vom Theme!) */
:root {
    --license-plate-bg: #fff;
    --license-plate-fg: #1a1a1a;
}

/* Back-Link */
.fzd-back { margin-bottom: 14px; }
.fzd-back-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--text-muted);
    text-decoration: none;
    font-size: 13px;
    transition: color 0.12s ease;
}
.fzd-back-link:hover { color: var(--primary); }

/* HERO */
.fzd-hero {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
    padding: var(--space-lg);
    border: 1px solid var(--border);
    border-radius: 14px;
    margin-bottom: 20px;
    background: var(--bg-surface);
}
.fzd-hero-ok {
    background: linear-gradient(135deg, color-mix(in srgb, var(--success) 8%, var(--bg-surface)), var(--bg-surface));
}
.fzd-hero-warn {
    background: linear-gradient(135deg, color-mix(in srgb, var(--warning) 10%, var(--bg-surface)), var(--bg-surface));
    border-color: color-mix(in srgb, var(--warning) 30%, transparent);
}
.fzd-hero-expired {
    background: linear-gradient(135deg, color-mix(in srgb, var(--danger) 10%, var(--bg-surface)), var(--bg-surface));
    border-color: color-mix(in srgb, var(--danger) 30%, transparent);
}
.fzd-hero-main {
    display: flex;
    align-items: center;
    gap: 20px;
    min-width: 0;
}
.fzd-hero-plate {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 18px;
    background: var(--license-plate-bg);
    border: 3px solid var(--license-plate-fg);
    border-radius: 6px;
    font-family: 'SF Mono', Monaco, monospace;
    font-size: 22px;
    font-weight: 800;
    letter-spacing: 1px;
    color: var(--license-plate-fg);
    text-transform: uppercase;
    flex-shrink: 0;
    box-shadow: 0 3px 8px rgba(0,0,0,0.12);
}
.fzd-hero-body { min-width: 0; }
.fzd-hero-name {
    margin: 0;
    font-size: 22px;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.2;
    letter-spacing: -0.3px;
}
.fzd-hero-name-placeholder {
    color: var(--text-muted);
    font-weight: 500;
    font-style: italic;
}
.fzd-hero-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 12px;
    margin-top: var(--space-sm);
    font-size: 13px;
    color: var(--text-muted);
}
.fzd-hero-meta span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}
.fzd-hero-typ {
    background: color-mix(in srgb, var(--primary) 12%, transparent);
    color: var(--primary) !important;
    padding: 3px 10px;
    border-radius: 100px;
    font-size: 11px !important;
    font-weight: 700;
}
.fzd-hero-meta strong {
    color: var(--text-primary);
    font-weight: 700;
}
.fzd-hero-side {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 12px;
    flex-shrink: 0;
}
.fzd-hero-status-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    border-radius: 100px;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}
.fzd-hero-status-ok {
    background: color-mix(in srgb, var(--success) 18%, transparent);
    color: var(--success);
}
.fzd-hero-status-warn {
    background: color-mix(in srgb, var(--warning) 18%, transparent);
    color: var(--warning);
}
.fzd-hero-status-expired {
    background: color-mix(in srgb, var(--danger) 18%, transparent);
    color: var(--danger);
}
.fzd-hero-actions .btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    text-decoration: none;
}

/* TABS */
.fzd-tabs {
    display: flex;
    gap: 2px;
    padding: var(--space-xs);
    background: var(--bg-surface-2);
    border-radius: 10px;
    overflow-x: auto;
    margin-bottom: 20px;
}
.fzd-tab {
    flex: 1;
    min-width: fit-content;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-sm);
    padding: 11px 14px;
    background: transparent;
    border: none;
    border-radius: 7px;
    cursor: pointer;
    font-size: 13px;
    font-weight: 600;
    color: var(--text-muted);
    font-family: inherit;
    transition: background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
    white-space: nowrap;
}
.fzd-tab:hover {
    color: var(--primary);
    background: color-mix(in srgb, var(--primary) 8%, transparent);
}
.fzd-tab.active {
    background: var(--primary);
    color: var(--text-inverted);
    box-shadow: 0 4px 12px color-mix(in srgb, var(--primary) 35%, transparent);
    font-weight: 700;
}
.fzd-tab-icon {
    display: inline-flex;
    align-items: center;
    color: inherit;
}
.fzd-tab-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 18px;
    padding: 0 6px;
    background: color-mix(in srgb, var(--primary) 18%, transparent);
    color: var(--primary);
    font-size: 11px;
    font-weight: 700;
    border-radius: 100px;
    line-height: 1;
}
.fzd-tab.active .fzd-tab-count {
    background: color-mix(in srgb, var(--text-inverted) 25%, transparent);
    color: var(--text-inverted);
}

.fzd-panel { animation: fzd-fade 0.25s ease-out; }
@keyframes fzd-fade {
    from { opacity: 0; transform: translateY(4px); }
    to { opacity: 1; transform: translateY(0); }
}
.fzd-panel > .card + .card,
.fzd-panel > div + .card,
.fzd-panel > .card + div { margin-top: var(--space-md); }

.card-header h2 { display: inline-flex; align-items: center; gap: var(--space-sm); }

/* STATUS-CARDS (Tab Übersicht) */
.fzd-status-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 12px;
    margin-bottom: var(--space-md);
}
.fzd-status-card {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: var(--space-md);
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: 10px;
    transition: box-shadow 0.15s ease;
}
.fzd-status-card:hover { box-shadow: 0 3px 10px rgba(0,0,0,0.05); }
.fzd-status-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.fzd-status-none .fzd-status-icon {
    background: var(--bg-surface-2);
    color: var(--text-muted);
}
.fzd-status-ok .fzd-status-icon {
    background: color-mix(in srgb, var(--success) 15%, transparent);
    color: var(--success);
}
.fzd-status-warn .fzd-status-icon {
    background: color-mix(in srgb, var(--warning) 18%, transparent);
    color: var(--warning);
}
.fzd-status-expired .fzd-status-icon {
    background: color-mix(in srgb, var(--danger) 18%, transparent);
    color: var(--danger);
}
.fzd-status-warn { border-color: color-mix(in srgb, var(--warning) 30%, transparent); }
.fzd-status-expired { border-color: color-mix(in srgb, var(--danger) 30%, transparent); }
.fzd-status-body { min-width: 0; }
.fzd-status-label {
    font-size: 11px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: var(--space-xs);
}
.fzd-status-value {
    font-size: 15px;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.2;
    font-variant-numeric: tabular-nums;
}
.fzd-status-warn .fzd-status-value { color: var(--warning); }
.fzd-status-expired .fzd-status-value { color: var(--danger); }
.fzd-status-value-muted {
    color: var(--text-muted);
    font-weight: 500;
    font-style: italic;
}
.fzd-status-date {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 2px;
}

/* FORM */
.fzd-form-card { margin-bottom: var(--space-md); }
.fzd-form { padding: 0; }
.fzd-form-section {
    padding: 16px 0;
    border-bottom: 1px solid color-mix(in srgb, var(--border) 50%, transparent);
}
.fzd-form-section:first-child { padding-top: 0; }
.fzd-form-section:last-of-type {
    border-bottom: none;
    padding-bottom: var(--space-xs);
}
.fzd-form-section-title {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    font-size: 12px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 12px;
}
.fzd-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
}
.fzd-kennzeichen-input {
    text-transform: uppercase;
    font-family: 'SF Mono', Monaco, monospace;
    letter-spacing: 1px;
    font-weight: 600;
}
.fzd-form-actions {
    display: flex;
    gap: 10px;
    margin-top: 14px;
    flex-wrap: wrap;
    align-items: center;
}
.fzd-form-actions .btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    text-decoration: none;
}
.fzd-del-btn { margin-left: auto; }
.fzd-del-form-inline { margin: 0; display: inline; }
.fzd-card-header-split {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}
.fzd-card-action-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    text-decoration: none;
}

/* KONTROLLEN (Tab 2) */
.fzd-kontrollen-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}
.fzd-kontroll-row {
    display: flex;
    gap: 14px;
    padding: 14px 0;
    border-bottom: 1px solid var(--border);
    align-items: flex-start;
}
.fzd-kontroll-row:last-child { border-bottom: none; }
.fzd-kontroll-icon {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: color-mix(in srgb, var(--success) 15%, transparent);
    color: var(--success);
    flex-shrink: 0;
}
.fzd-kontroll-mangel .fzd-kontroll-icon {
    background: color-mix(in srgb, var(--warning) 18%, transparent);
    color: var(--warning);
}
.fzd-kontroll-body { flex: 1; min-width: 0; }
.fzd-kontroll-head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: var(--space-xs);
}
.fzd-kontroll-head strong {
    font-size: 14px;
    color: var(--text-primary);
}
.fzd-kontroll-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    padding: 3px var(--space-sm);
    border-radius: 100px;
    font-size: 11px;
    font-weight: 700;
}
.fzd-kontroll-badge-ok {
    background: color-mix(in srgb, var(--success) 18%, transparent);
    color: var(--success);
}
.fzd-kontroll-badge-warn {
    background: color-mix(in srgb, var(--warning) 18%, transparent);
    color: var(--warning);
}
.fzd-kontroll-meta {
    font-size: 12px;
    color: var(--text-muted);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}
.fzd-kontroll-meta svg { vertical-align: -2px; }
.fzd-kontroll-sep { color: var(--border); }
.fzd-kontroll-checks {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-xs);
    margin-top: var(--space-sm);
}
.fzd-kontroll-check {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 2px 7px;
    background: color-mix(in srgb, var(--success) 12%, transparent);
    color: var(--success);
    border-radius: var(--space-xs);
    font-size: 10px;
    font-weight: 600;
}
.fzd-kontroll-check-warn {
    background: color-mix(in srgb, var(--warning) 18%, transparent);
    color: var(--warning);
}

/* FAHRTENBUCH (Tab 3) */
.fzd-fb-totals {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 10px;
    margin-bottom: var(--space-md);
}
.fzd-fb-total {
    padding: 14px var(--space-md);
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: 10px;
    text-align: center;
}
.fzd-fb-total-label {
    font-size: 11px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: var(--space-xs);
}
.fzd-fb-total-value {
    font-size: 20px;
    font-weight: 800;
    color: var(--text-primary);
    font-variant-numeric: tabular-nums;
    line-height: 1.1;
}
.fzd-fb-total-value span {
    font-size: 11px;
    font-weight: 500;
    color: var(--text-muted);
    margin-left: 2px;
}
.fzd-fb-total-dienst .fzd-fb-total-value { color: var(--primary); }
.fzd-fb-total-gesamt {
    background: var(--primary);
    border-color: var(--primary);
    color: var(--text-inverted);
}
.fzd-fb-total-gesamt .fzd-fb-total-label {
    color: color-mix(in srgb, var(--text-inverted) 85%, transparent);
}
.fzd-fb-total-gesamt .fzd-fb-total-value { color: var(--text-inverted); }
.fzd-fb-total-gesamt .fzd-fb-total-value span {
    color: color-mix(in srgb, var(--text-inverted) 70%, transparent);
}

.fzd-fb-newcard { margin-bottom: var(--space-md); }
.fzd-fb-gps {
    background: var(--bg-surface-2);
    border-radius: 10px;
    padding: 12px 14px;
    margin-bottom: 14px;
}
.fzd-fb-gps-title {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: var(--space-sm);
}
.fzd-fb-gps-hint {
    font-size: 11px;
    font-weight: 400;
    color: var(--text-muted);
    margin-left: var(--space-xs);
}
.fzd-fb-gps-buttons {
    display: flex;
    gap: var(--space-sm);
    flex-wrap: wrap;
    margin-bottom: var(--space-sm);
}
.fzd-fb-gps-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    text-decoration: none;
}
.fzd-fb-gps-btn-start {
    background: var(--success);
    color: var(--text-inverted);
    border-color: var(--success);
}
.fzd-fb-gps-btn-start:hover {
    background: color-mix(in srgb, var(--success) 80%, #000);
    border-color: color-mix(in srgb, var(--success) 80%, #000);
}
.fzd-fb-gps-btn-ende {
    background: var(--danger);
    color: var(--text-inverted);
    border-color: var(--danger);
}
.fzd-fb-gps-btn-ende:hover {
    background: var(--danger);
    border-color: var(--danger);
}
.fzd-fb-gps-status {
    font-size: 11px;
    color: var(--text-muted);
    line-height: 1.4;
}
.fzd-fb-form-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 10px;
    margin-bottom: 12px;
}
.fzd-fb-submit-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

/* Fahrten-Tabelle */
.fzd-fb-count {
    margin-left: var(--space-sm);
    padding: 2px var(--space-sm);
    background: color-mix(in srgb, var(--primary) 15%, transparent);
    color: var(--primary);
    border-radius: 100px;
    font-size: 11px;
    font-weight: 700;
}
.fzd-fb-table-wrap { overflow-x: auto; }
.fzd-fb-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 700px;
}
.fzd-fb-table thead th {
    text-align: left;
    padding: 10px 12px;
    font-size: 11px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 2px solid var(--border);
}
.fzd-fb-row {
    border-bottom: 1px solid var(--border);
    transition: background 0.12s ease;
}
.fzd-fb-row:hover { background: color-mix(in srgb, var(--primary) 4%, transparent); }
.fzd-fb-row td {
    padding: 11px 12px;
    font-size: 13px;
    vertical-align: middle;
}
.fzd-fb-td-date {
    white-space: nowrap;
    font-weight: 500;
    color: var(--text-primary);
}
.fzd-fb-td-num {
    text-align: right;
    font-variant-numeric: tabular-nums;
    color: var(--text-secondary);
}
.fzd-fb-td-diff {
    text-align: right;
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    color: var(--text-primary);
}
.fzd-fb-zweck {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 100px;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}
.fzd-fb-zweck-dienst {
    background: color-mix(in srgb, var(--primary) 15%, transparent);
    color: var(--primary);
}
.fzd-fb-zweck-privat {
    background: color-mix(in srgb, var(--text-muted) 15%, transparent);
    color: var(--text-secondary);
}
.fzd-fb-zweck-arbeitsweg {
    background: color-mix(in srgb, var(--warning) 15%, transparent);
    color: var(--warning);
}
.fzd-fb-td-route {
    font-size: 12px;
    color: var(--text-secondary);
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}
.fzd-fb-route-arrow {
    color: var(--text-muted);
    font-weight: 500;
}
.fzd-fb-gps-link {
    color: var(--primary);
    display: inline-flex;
    align-items: center;
    margin-left: var(--space-xs);
}
.fzd-fb-td-auftrag { font-size: 12px; }
.fzd-fb-td-auftrag a {
    color: var(--primary);
    text-decoration: none;
}
.fzd-fb-td-auftrag a:hover { text-decoration: underline; }
.fzd-fb-muted { color: var(--text-muted); }
.fzd-fb-td-action { text-align: center; }
.fzd-fb-del-btn {
    background: transparent;
    border: 1px solid transparent;
    cursor: pointer;
    padding: 6px;
    border-radius: 6px;
    color: var(--text-muted);
    display: inline-flex;
    align-items: center;
    transition: all 0.12s ease;
}
.fzd-fb-del-btn:hover {
    background: color-mix(in srgb, var(--danger) 10%, transparent);
    color: var(--danger);
    border-color: color-mix(in srgb, var(--danger) 25%, transparent);
}
.fzd-fb-del-form-inline { margin: 0; display: inline; }

/* Empty */
.fzd-empty {
    padding: 40px 20px;
    text-align: center;
    color: var(--text-muted);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}
.fzd-empty-icon { color: var(--border); opacity: 0.8; }
.fzd-empty h3 {
    margin: 0;
    color: var(--text-primary);
    font-size: var(--space-md);
}
.fzd-empty p {
    margin: 0;
    font-size: 13px;
    max-width: 420px;
    line-height: 1.5;
}
.fzd-empty .btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    text-decoration: none;
}

/* Mobile */
@media (max-width: 768px) {
    .fzd-hero {
        padding: 18px;
        flex-direction: column;
    }
    .fzd-hero-side {
        align-items: flex-start;
        width: 100%;
    }
    .fzd-hero-actions { width: 100%; }
    .fzd-hero-actions .btn {
        width: 100%;
        justify-content: center;
    }
    .fzd-hero-plate {
        font-size: 18px;
        padding: 8px 14px;
    }
    .fzd-hero-name { font-size: 18px; }
    .fzd-tab {
        padding: 10px 10px;
        font-size: 12px;
    }
    .fzd-tab-label { display: none; }
    .fzd-status-grid {
        grid-template-columns: 1fr 1fr;
        gap: var(--space-sm);
    }
    .fzd-status-card {
        padding: 12px;
        gap: 10px;
    }
    .fzd-fb-totals { grid-template-columns: 1fr 1fr; }
    .fzd-form-actions {
        flex-direction: column;
        align-items: stretch;
    }
    .fzd-form-actions .btn { justify-content: center; }
    .fzd-del-btn { margin-left: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .fzd-panel { animation: none; }
}

/* ═══════════════════════════════════════════════════════════════
   ZEITERFASSUNG-INDEX — zeiterfassung_index.html
   1 embedded <style>-Block (~800 Z.) migriert + 1 inline-style
   KI-Branding nutzt --gold-accent + --gold-accent-dim (existing!)
   ═══════════════════════════════════════════════════════════════ */

/* Schnellzugriff-Karte (oben, nur Owner) */
.zt-quicknav { margin-bottom: 20px; }
.zt-quicknav-link {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 18px;
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--info) 10%, var(--bg-surface)),
        var(--bg-surface));
    border: 1px solid color-mix(in srgb, var(--info) 30%, transparent);
    border-radius: 12px;
    color: var(--text-primary);
    text-decoration: none;
    transition: all 0.15s ease;
}
.zt-quicknav-link:hover {
    transform: translateY(-1px);
    border-color: var(--info);
    box-shadow: 0 4px 12px color-mix(in srgb, var(--info) 20%, transparent);
}
.zt-quicknav-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: color-mix(in srgb, var(--info) 18%, transparent);
    color: var(--info);
    flex-shrink: 0;
}
.zt-quicknav-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.zt-quicknav-body strong {
    font-size: 14px;
    font-weight: 700;
    color: var(--text-primary);
}
.zt-quicknav-hint {
    font-size: 12px;
    color: var(--text-muted);
}
.zt-quicknav-arrow {
    color: var(--info);
    flex-shrink: 0;
}

/* Big Touch Buttons */
.zt-big-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    min-height: 56px;
    font-size: 17px;
    font-weight: 700;
    padding: 14px 20px;
    border-radius: 12px;
    text-align: center;
    cursor: pointer;
    border: none;
    transition: transform 0.1s ease, box-shadow 0.15s ease;
    margin-top: var(--space-md);
}
.zt-big-button:active { transform: scale(0.98); }
.zt-stamp-in {
    background: linear-gradient(135deg, var(--success), var(--success));
    color: var(--text-inverted);
    box-shadow: 0 4px 14px color-mix(in srgb, var(--success) 35%, transparent);
}
.zt-stamp-in:hover { box-shadow: 0 6px 20px color-mix(in srgb, var(--success) 45%, transparent); }
.zt-stamp-out {
    background: linear-gradient(135deg, var(--danger), var(--danger));
    color: var(--text-inverted);
    box-shadow: 0 4px 14px color-mix(in srgb, var(--danger) 35%, transparent);
}
.zt-stamp-out:hover { box-shadow: 0 6px 20px color-mix(in srgb, var(--danger) 45%, transparent); }

/* Live-Card */
.zt-live-card {
    position: relative;
    padding: 22px var(--space-lg);
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--success) 12%, var(--bg-surface)),
        var(--bg-surface));
    border: 2px solid color-mix(in srgb, var(--success) 30%, transparent);
    border-radius: 14px;
    margin-bottom: 20px;
    box-shadow: 0 4px 16px color-mix(in srgb, var(--success) 12%, transparent);
    overflow: hidden;
}
.zt-live-pulse {
    position: absolute;
    top: -50px;
    right: -50px;
    width: 180px;
    height: 180px;
    background: radial-gradient(circle, color-mix(in srgb, var(--success) 25%, transparent) 0%, transparent 70%);
    animation: zt-pulse 3s ease-in-out infinite;
    pointer-events: none;
}
@keyframes zt-pulse {
    0%, 100% { transform: scale(1); opacity: 0.6; }
    50% { transform: scale(1.1); opacity: 1; }
}
.zt-live-body { position: relative; }
.zt-live-status {
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
    margin-bottom: var(--space-sm);
}
.zt-live-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--success);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--success) 25%, transparent);
    animation: zt-blink 1.4s ease-in-out infinite;
}
@keyframes zt-blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.4; }
}
.zt-live-label {
    font-size: 14px;
    font-weight: 700;
    color: var(--success);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.zt-live-timer {
    font-size: var(--space-2xl);
    font-weight: 800;
    color: var(--success);
    font-variant-numeric: tabular-nums;
    line-height: 1;
    margin: 8px 0 12px;
    letter-spacing: -1px;
}
.zt-live-auftrag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 15px;
    color: var(--text-primary);
    margin-bottom: var(--space-xs);
}
.zt-live-gps {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    color: var(--success);
    margin-top: 6px;
}
.zt-live-gps a { color: var(--success); text-decoration: none; }
.zt-live-gps a:hover { text-decoration: underline; }
.zt-live-action { position: relative; }

/* Stamp-Card */
.zt-stamp-card { margin-bottom: 20px; }
.zt-stamp-card .card-header {
    display: flex;
    align-items: baseline;
    gap: 12px;
    flex-wrap: wrap;
}
.zt-stamp-card .card-header h2 {
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
    margin: 0;
}
.zt-stamp-hint {
    font-size: 12px;
    color: var(--text-muted);
    font-weight: 500;
}
.zt-form-hint {
    font-size: 11px;
    color: var(--text-muted);
    font-weight: 400;
}

/* GPS-Toggle */
.zt-gps-toggle {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 14px 0;
    padding: 10px 14px;
    background: var(--bg-surface-2);
    border-radius: var(--space-sm);
    flex-wrap: wrap;
}
.zt-gps-toggle-label {
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
    cursor: pointer;
    font-size: 13px;
    color: var(--text-primary);
}
.zt-gps-toggle-label input[type="checkbox"] {
    width: 18px;
    height: 18px;
    cursor: pointer;
}
.zt-gps-toggle-text {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}
.zt-gps-status {
    font-size: 12px;
    color: var(--text-muted);
}

/* Banner (DSGVO) */
.zt-banner {
    display: flex;
    gap: 14px;
    padding: 16px 18px;
    border-radius: 12px;
    border: 1px solid;
    margin-bottom: 20px;
}
.zt-banner-icon { flex-shrink: 0; }
.zt-banner-body { flex: 1; }
.zt-banner-body strong {
    display: block;
    font-size: 14px;
    margin-bottom: 6px;
}
.zt-banner-body p {
    margin: 0 0 10px;
    font-size: 13px;
    line-height: 1.55;
    color: var(--text-secondary);
}
.zt-banner-warning {
    background: color-mix(in srgb, var(--warning) 8%, var(--bg-surface));
    border-color: color-mix(in srgb, var(--warning) 30%, transparent);
}
.zt-banner-warning .zt-banner-icon { color: var(--warning); }
.zt-banner-warning .zt-banner-body strong { color: var(--warning); }
.zt-banner-details {
    margin: 8px 0 12px;
    font-size: 12px;
    color: var(--text-muted);
}
.zt-banner-details summary {
    cursor: pointer;
    font-weight: 600;
    color: var(--text-secondary);
    padding: 4px 0;
    user-select: none;
}
.zt-banner-details ul {
    margin: 8px 0 0 18px;
    padding: 0;
    line-height: 1.7;
}
.zt-banner-actions {
    display: flex;
    gap: var(--space-sm);
    flex-wrap: wrap;
    margin-top: var(--space-sm);
}
.zt-banner-actions .btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

/* Consent-Status */
.zt-consent-status {
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
    padding: 8px 14px;
    background: color-mix(in srgb, var(--success) 10%, transparent);
    color: var(--success);
    border-radius: 100px;
    font-size: 12px;
    font-weight: 600;
    margin-bottom: var(--space-md);
}
.zt-consent-icon { display: inline-flex; }
.zt-consent-revoke { display: inline; margin: 0; }
.zt-consent-revoke button {
    background: transparent;
    border: none;
    cursor: pointer;
    color: var(--success);
    font-size: 12px;
    text-decoration: underline;
    padding: 0;
    margin-left: var(--space-xs);
}

/* KI-Card (KI-Gold-Branding nutzt existing --gold-accent + --gold-accent-dim) */
.zt-ki-card {
    margin-bottom: 20px;
    border-left: 3px solid var(--gold-accent);
}
.zt-ki-card .card-header h2 {
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
    margin: 0;
}
.zt-ki-badge {
    display: inline-block;
    padding: 2px var(--space-sm);
    background: linear-gradient(135deg, var(--gold-accent), var(--gold-accent-dim));
    color: var(--text-inverted);
    font-size: 9px;
    font-weight: 700;
    border-radius: 100px;
    letter-spacing: 0.6px;
    margin-left: 6px;
}
.zt-ki-intro {
    font-size: 13px;
    color: var(--text-secondary);
    margin: 0 0 12px;
    line-height: 1.55;
}
.zt-ki-controls {
    display: flex;
    gap: var(--space-sm);
    flex-wrap: wrap;
    align-items: center;
    margin-bottom: 10px;
}
.zt-ki-mic-btn {
    background: linear-gradient(135deg, var(--gold-accent), var(--gold-accent-dim));
    border: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.zt-ki-mic-btn:hover {
    background: linear-gradient(135deg, var(--gold-accent-dim), color-mix(in srgb, var(--gold-accent-dim) 80%, #000));
}
.zt-ki-mic-recording {
    background: linear-gradient(135deg, var(--danger), var(--danger)) !important;
    animation: zt-recording-pulse 1.4s ease-in-out infinite;
}
@keyframes zt-recording-pulse {
    0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--danger) 40%, transparent); }
    50% { box-shadow: 0 0 0 8px color-mix(in srgb, var(--danger) 0%, transparent); }
}
.zt-recording-dot {
    display: inline-block;
    width: var(--space-sm);
    height: var(--space-sm);
    background: var(--danger);
    border-radius: 50%;
    margin-right: var(--space-xs);
    animation: zt-blink 1s ease-in-out infinite;
}
.zt-ki-status {
    font-size: 12px;
    color: var(--text-muted);
}
.zt-ki-text { margin-top: var(--space-xs); }
.zt-ki-actions {
    display: flex;
    gap: var(--space-sm);
    margin-top: 10px;
    flex-wrap: wrap;
}
.zt-ki-extract-btn {
    background: linear-gradient(135deg, var(--gold-accent), var(--gold-accent-dim));
    border: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.zt-ki-extract-btn:hover {
    background: linear-gradient(135deg, var(--gold-accent-dim), color-mix(in srgb, var(--gold-accent-dim) 80%, #000));
}
.zt-ki-result {
    margin-top: 14px;
    padding: 14px;
    background: var(--bg-surface-2);
    border-radius: 10px;
}
.zt-ki-result-title {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--success);
}
.zt-ki-result-table {
    width: 100%;
    margin-top: var(--space-sm);
    font-size: 13px;
    border-collapse: collapse;
}
.zt-ki-result-table th, .zt-ki-result-table td {
    padding: 6px var(--space-sm);
    text-align: left;
    border-bottom: 1px solid var(--border);
}
.zt-ki-result-table th {
    font-size: 11px;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 700;
    letter-spacing: 0.4px;
}
.zt-ki-result-form { margin-top: 12px; }
.zt-ki-result-form .btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

/* Wochen-Header */
.zt-week-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}
.zt-week-header h2 {
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
    margin: 0;
}
.zt-week-nav {
    display: inline-flex;
    gap: var(--space-xs);
    padding: var(--space-xs);
    background: var(--bg-surface-2);
    border-radius: var(--space-sm);
    align-items: center;
}
.zt-week-nav-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--space-xl);
    height: var(--space-xl);
    border-radius: 6px;
    color: var(--text-muted);
    text-decoration: none;
    transition: all 0.12s ease;
}
.zt-week-nav-btn:hover {
    background: var(--bg-surface);
    color: var(--primary);
}
.zt-week-nav-current {
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 600;
    color: var(--text-primary);
    text-decoration: none;
    transition: all 0.12s ease;
}
.zt-week-nav-current:hover { background: var(--bg-surface); }
.zt-week-nav-active {
    background: var(--primary);
    color: var(--text-inverted);
}

/* Filter */
.zt-filter-row {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    margin-bottom: 14px;
    padding: 10px 14px;
    background: var(--bg-surface-2);
    border-radius: var(--space-sm);
    flex-wrap: wrap;
}
.zt-filter-label {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 13px;
    font-weight: 600;
    color: var(--text-muted);
    margin: 0;
}
.zt-filter-select {
    width: auto !important;
    min-width: 180px;
}
.zt-filter-info {
    margin: 0 0 14px;
    padding: 8px 14px;
    background: var(--bg-surface-2);
    border-radius: var(--space-sm);
    font-size: 13px;
    color: var(--text-muted);
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

/* Wochensumme als Pills */
.zt-week-totals {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: var(--space-md);
    padding: 14px;
    background: var(--bg-surface-2);
    border-radius: 10px;
}
.zt-total-pill {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 14px 8px var(--space-sm);
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: 100px;
}
/* Z.1-Pattern: --avatar-bg für dynamische Slot-Farbe (6 Slots: primary/mint/warning/terra/lavendel/sage) */
.zt-total-avatar {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--text-inverted);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.3px;
    flex-shrink: 0;
    background: var(--avatar-bg, var(--primary));
}
.zt-total-name {
    font-size: 12px;
    color: var(--text-muted);
    font-weight: 500;
    line-height: 1.1;
}
.zt-total-values {
    font-size: 13px;
    color: var(--text-primary);
    font-variant-numeric: tabular-nums;
    line-height: 1.2;
    margin-top: 2px;
}
.zt-total-sep {
    color: var(--text-muted);
    margin: 0 var(--space-xs);
}
.zt-total-money { color: var(--text-muted); }

/* Wochen-Tabelle */
.zt-week-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.zt-week-table {
    min-width: 720px;
    width: 100%;
    border-collapse: collapse;
}
.zt-week-table thead th {
    text-align: left;
    padding: 10px 12px;
    font-size: 11px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 2px solid var(--border);
    background: var(--bg-surface);
}
.zt-week-table thead th:first-child {
    position: sticky;
    left: 0;
    background: var(--bg-surface);
    z-index: 2;
    box-shadow: 2px 0 4px -2px rgba(0,0,0,0.1);
}
.zt-week-table tbody tr {
    border-bottom: 1px solid var(--border);
    transition: background 0.12s ease;
}
.zt-week-table tbody tr:hover { background: color-mix(in srgb, var(--primary) 4%, transparent); }
.zt-week-table tbody td {
    padding: 12px;
    font-size: 13px;
    vertical-align: middle;
}
.zt-week-table tbody td:first-child {
    position: sticky;
    left: 0;
    background: var(--bg-surface);
    z-index: 1;
    box-shadow: 2px 0 4px -2px rgba(0,0,0,0.1);
}
.zt-week-table tbody tr:hover td:first-child {
    background: color-mix(in srgb, var(--primary) 4%, var(--bg-surface));
}
.zt-row-open { background: color-mix(in srgb, var(--success) 6%, transparent); }
.zt-row-open td:first-child { background: color-mix(in srgb, var(--success) 6%, var(--bg-surface)); }
.zt-td-date {
    white-space: nowrap;
    font-weight: 500;
    color: var(--text-primary);
}
.zt-td-time {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}
.zt-td-num {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.zt-td-num strong {
    color: var(--text-primary);
    font-weight: 700;
}
.zt-td-created {
    color: var(--text-muted);
    font-size: 11px;
    white-space: nowrap;
}
.zt-money {
    color: var(--text-primary);
    font-weight: 600;
}
.zt-muted { color: var(--text-muted); }
.zt-auftrag-link {
    color: var(--primary);
    text-decoration: none;
}
.zt-auftrag-link:hover { text-decoration: underline; }
.zt-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    padding: 2px var(--space-sm);
    border-radius: 100px;
    font-size: 10px;
    font-weight: 700;
}
.zt-badge-open {
    background: color-mix(in srgb, var(--success) 18%, transparent);
    color: var(--success);
}
.zt-gps-link {
    display: inline-flex;
    align-items: center;
    color: var(--text-muted);
    transition: color 0.12s ease;
}
.zt-gps-link:hover { color: var(--primary); }
.zt-del-btn {
    background: transparent;
    border: 1px solid transparent;
    cursor: pointer;
    padding: 6px;
    border-radius: 6px;
    color: var(--text-muted);
    display: inline-flex;
    align-items: center;
    transition: all 0.12s ease;
}
.zt-del-btn:hover {
    background: color-mix(in srgb, var(--danger) 10%, transparent);
    color: var(--danger);
    border-color: color-mix(in srgb, var(--danger) 25%, transparent);
}

/* Empty */
.zt-empty {
    padding: 40px 20px;
    text-align: center;
    color: var(--text-muted);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}
.zt-empty-icon {
    color: var(--border);
    opacity: 0.8;
}
.zt-empty h3 {
    margin: 0;
    color: var(--text-primary);
    font-size: var(--space-md);
}
.zt-empty p {
    margin: 0;
    font-size: 13px;
}

/* Manueller Nachtrag */
.zt-manual-card .card-header h2 {
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
    margin: 0;
}
.zt-manual-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 6px;
}
.zt-manual-hint {
    margin: 12px 0 0;
    padding: 8px 12px;
    background: color-mix(in srgb, var(--primary) 5%, transparent);
    border-left: 3px solid var(--primary);
    border-radius: 6px;
    font-size: 12px;
    color: var(--text-muted);
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

/* Mobile (zeiterfassung K2 2026-04-27) */
@media (max-width: 640px) {
    .zt-form-row {
        display: flex;
        flex-direction: column;
        gap: 12px;
    }
    .zt-form-row .form-group { width: 100%; }
    .zt-form-row .form-group label {
        display: block;
        font-size: 14px;
        margin-bottom: var(--space-xs);
        font-weight: 600;
    }
    .zt-form-row .form-control {
        width: 100%;
        min-height: var(--space-2xl);
        font-size: var(--space-md);
        padding: 12px;
        box-sizing: border-box;
    }
    .card { padding: var(--space-md); }
    .card-header h2 { font-size: var(--space-md); }
    .zt-live-card { padding: 18px; }
    .zt-live-timer { font-size: 36px; }
    .zt-week-nav-current { display: none; }
    .zt-week-nav-active { display: inline-block; }
    .zt-quicknav {
        padding: 12px 14px;
        margin-bottom: 12px;
    }
    .zt-quicknav-link { padding: 10px 12px; }
    .zt-quicknav-icon {
        width: var(--space-xl);
        height: var(--space-xl);
    }
    .zt-quicknav-hint { display: none; }
    .zt-big-button {
        width: 100%;
        min-height: 56px;
        font-size: 17px;
        padding: var(--space-md);
        gap: 10px;
    }
    .zt-stamp-in, .zt-stamp-out {
        font-weight: 800;
        letter-spacing: 0.02em;
    }
    .zt-live-status { font-size: 13px; }
    .zt-live-label { font-size: 13px; }
    .zt-live-auftrag {
        font-size: 13px;
        line-height: 1.4;
    }
    .zt-live-action { margin-top: 14px; }
    .zt-week-table-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .zt-week-table { min-width: 540px; }
    .zt-manual-card { padding: 14px; }
    .zt-manual-card .form-group { margin-bottom: 12px; }
}
@media (prefers-reduced-motion: reduce) {
    .zt-live-pulse,
    .zt-live-dot,
    .zt-recording-dot,
    .zt-ki-mic-recording { animation: none; }
}

/* Dark-Mode-Verstärkung für zeiterfassung */
[data-theme="dark"] .zt-live-label,
[data-theme="dark"] .zt-live-timer,
[data-theme="dark"] .zt-live-gps,
[data-theme="dark"] .zt-live-gps a,
[data-theme="dark"] .zt-consent-status,
[data-theme="dark"] .zt-consent-revoke button,
[data-theme="dark"] .zt-ki-result-title {
    color: color-mix(in srgb, var(--success) 55%, var(--text-inverted));
}
[data-theme="dark"] .zt-live-card {
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--success) 20%, var(--bg-surface)),
        var(--bg-surface));
    border-color: color-mix(in srgb, var(--success) 45%, transparent);
    box-shadow: 0 4px 16px color-mix(in srgb, var(--success) 25%, transparent);
}
[data-theme="dark"] .zt-consent-status {
    background: color-mix(in srgb, var(--success) 18%, transparent);
}
[data-theme="dark"] .zt-badge-open {
    background: color-mix(in srgb, var(--success) 28%, transparent);
    color: color-mix(in srgb, var(--success) 55%, var(--text-inverted));
}
[data-theme="dark"] .zt-banner-warning {
    background: color-mix(in srgb, var(--warning) 14%, var(--bg-surface));
    border-color: color-mix(in srgb, var(--warning) 40%, transparent);
}
[data-theme="dark"] .zt-banner-warning .zt-banner-icon,
[data-theme="dark"] .zt-banner-warning .zt-banner-body strong {
    color: color-mix(in srgb, var(--warning) 60%, var(--text-inverted));
}

/* Card-Hover-Lift für alle Zeiterfassungs-Cards */
.zt-ki-card, .zt-manual-card {
    transition: box-shadow 0.18s ease, transform 0.12s ease;
}
.zt-ki-card:hover, .zt-manual-card:hover {
    box-shadow: 0 6px 20px rgba(0,0,0,0.08);
    transform: translateY(-1px);
}
[data-theme="dark"] .zt-ki-card:hover,
[data-theme="dark"] .zt-manual-card:hover {
    box-shadow: 0 6px 20px rgba(0,0,0,0.35);
}

/* ═══════════════════════════════════════════════════════════════
   ZEITERFASSUNG-SPRACHE — zeiterfassung_sprache.html
   13 inline-styles, 6 hex (KI-Gold) → var(--gold-accent*)
   ═══════════════════════════════════════════════════════════════ */
.zts-card-gold { border-left: 4px solid var(--gold-accent-dim); }
.zts-card-header-gold {
    background: color-mix(in srgb, var(--gold-accent) 14%, var(--bg-surface));
}
.zts-card-h2-gold {
    font-size: 15px;
    color: var(--gold-accent-dim);
}
.zts-intro-text {
    font-size: 13px;
    color: var(--text-secondary);
    margin: 0 0 12px;
}
.zts-controls-row {
    display: flex;
    gap: var(--space-sm);
    flex-wrap: wrap;
    align-items: center;
    margin-bottom: 10px;
}
.zts-mic-btn {
    background: var(--gold-accent-dim);
}
.zts-mic-btn:hover {
    background: color-mix(in srgb, var(--gold-accent-dim) 80%, #000);
}
.zts-result-section {
    padding: 14px var(--space-md);
    border-bottom: 1px solid var(--border-subtle);
}
.zts-result-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 10px;
    font-size: 13px;
}
.zts-result-beschreibung {
    margin-top: var(--space-sm);
    font-size: 12px;
    color: var(--text-secondary);
}
.zts-actions-row {
    display: flex;
    gap: var(--space-sm);
    margin-top: 10px;
    flex-wrap: wrap;
}
.zts-extract-btn {
    background: var(--gold-accent-dim);
}
.zts-helper-text {
    color: var(--text-muted);
    align-self: center;
}
.zts-save-hint {
    display: block;
    margin-top: 10px;
    color: var(--text-muted);
}

/* ═══════════════════════════════════════════════════════════════
   ENDE ITER 14 PHASE E.4
   ═══════════════════════════════════════════════════════════════ */

/* Iter 14 E.4: Max-Width-Wrapper Utilities */
.max-w-960 { max-width: 960px; }
.max-w-860 { max-width: 860px; }

/* ════════════════════════════════════════════════════════════════
   ITER 14 E.5 — Baudoku + SiGe + Mängel + Abnahme + Bautagebuch
   ════════════════════════════════════════════════════════════════ */

/* ── bdoku-* (migriert aus baudoku_center.html embedded) ────────── */
.bdoku-toolbar {
    display: flex; justify-content: space-between; align-items: center;
    gap: 12px; flex-wrap: wrap; padding: 14px 20px 12px;
}
.bdoku-toolbar-title { margin: 0; font-size: 18px; font-weight: 700; }
.bdoku-toolbar-suffix { color: var(--text-muted); font-weight: 500; font-size: 14px; }
.bdoku-toolbar-actions { display: flex; gap: var(--space-sm); flex-wrap: wrap; }

.bdoku-status-pills {
    display: flex; flex-wrap: wrap; gap: 6px; padding: var(--space-xs);
    background: var(--bg-surface-2); border-radius: 10px;
    margin: 0 20px 14px; align-items: center;
}
.bdoku-status-pill {
    --pill-color: var(--text-muted);
    display: inline-flex; align-items: center;
    padding: 8px var(--space-md); background: transparent;
    color: var(--text-muted); border-radius: 7px;
    text-decoration: none; font-size: 13px; font-weight: 600;
    transition: background 0.15s ease, color 0.15s ease;
    white-space: nowrap;
}
.bdoku-status-pill:hover {
    background: color-mix(in srgb, var(--pill-color) 8%, transparent);
    color: var(--pill-color);
}
.bdoku-status-pill-active {
    background: var(--pill-color);
    color: var(--text-inverted) !important;
    box-shadow: 0 2px 8px color-mix(in srgb, var(--pill-color) 30%, transparent);
}

.bdoku-filter-form {
    padding: 12px 20px 14px; border-top: 1px solid var(--border);
    background: var(--bg-surface);
}
.bdoku-filter-row {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 10px; align-items: end;
}
.bdoku-filter-field { display: flex; flex-direction: column; }
.bdoku-filter-field-wide { grid-column: span 2; }
.bdoku-filter-field label {
    font-size: 11px; color: var(--text-muted);
    text-transform: uppercase; letter-spacing: 0.04em;
    font-weight: 600; margin-bottom: var(--space-xs);
}
.bdoku-filter-field input,
.bdoku-filter-field select {
    padding: 6px 10px; border: 1px solid var(--border);
    border-radius: 6px; background: var(--bg-surface-2);
    color: var(--text-primary); font-size: 13px;
}
.bdoku-filter-submit { align-self: flex-end; }

.bdoku-chip-row {
    display: flex; flex-wrap: wrap; gap: 6px; align-items: center;
    margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--border);
}
.bdoku-chip-label {
    font-size: 11px; color: var(--text-muted);
    text-transform: uppercase; letter-spacing: 0.04em; margin-right: 6px;
}
.bdoku-chip {
    padding: 4px 10px; border: 1px solid var(--border);
    border-radius: 100px; background: var(--bg-surface-2);
    color: var(--text-primary); font-size: 11px; font-weight: 500;
    cursor: pointer; transition: all 0.12s ease;
}
.bdoku-chip:hover { border-color: var(--primary); color: var(--primary); }
.bdoku-chip-active { background: var(--primary); color: var(--text-inverted); border-color: var(--primary); }

.bdoku-table-wrap { overflow-x: auto; }
.bdoku-table { width: 100%; border-collapse: collapse; }
.bdoku-table thead th {
    text-align: left; padding: 10px 12px;
    font-size: 11px; font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase; letter-spacing: 0.5px;
    border-bottom: 2px solid var(--border);
}
.bdoku-row {
    cursor: pointer; transition: background 0.12s ease;
    border-bottom: 1px solid var(--border);
}
.bdoku-row:hover { background: color-mix(in srgb, var(--primary) 4%, transparent); }
.bdoku-row:focus-visible { outline: 2px solid var(--primary); outline-offset: -2px; }
.bdoku-row td { padding: 14px 12px; font-size: 13px; vertical-align: middle; }

.bdoku-title-link { color: var(--text-primary); text-decoration: none; }
.bdoku-title-link:hover { color: var(--primary); }
.bdoku-title-link strong { display: inline-block; font-weight: 600; }

.bdoku-typ-badge {
    display: inline-block; padding: 3px var(--space-sm);
    background: var(--bg-surface-2); color: var(--text-secondary);
    border-radius: 5px; font-size: 11px; font-weight: 600;
    white-space: nowrap;
}

.bdoku-td-kunde { color: var(--text-secondary); }
.bdoku-td-date { white-space: nowrap; font-variant-numeric: tabular-nums; }
.bdoku-td-action { width: 44px; text-align: right; }
.bdoku-chevron {
    display: inline-flex; align-items: center; justify-content: center;
    width: 28px; height: 28px; border-radius: 6px;
    color: var(--text-muted); text-decoration: none;
    transition: all 0.12s ease;
}
.bdoku-row:hover .bdoku-chevron { background: var(--primary); color: var(--text-inverted); }

.bdoku-status {
    display: inline-flex; align-items: center; gap: 5px;
    padding: 4px 10px; border-radius: 100px;
    font-size: 11px; font-weight: 700; white-space: nowrap;
}
.bdoku-status-entwurf { background: color-mix(in srgb, var(--warning) 15%, transparent); color: var(--warning); }
.bdoku-status-gesendet { background: color-mix(in srgb, var(--info) 15%, transparent); color: var(--info); }
.bdoku-status-angenommen { background: color-mix(in srgb, var(--success) 18%, transparent); color: var(--success); }
.bdoku-status-abgelehnt { background: color-mix(in srgb, var(--danger) 15%, transparent); color: var(--danger); }
[data-theme="dark"] .bdoku-status-entwurf { color: color-mix(in srgb, var(--warning) 60%, #fff); }
[data-theme="dark"] .bdoku-status-gesendet { color: color-mix(in srgb, var(--info) 60%, #fff); }
[data-theme="dark"] .bdoku-status-angenommen { color: color-mix(in srgb, var(--success) 60%, #fff); }
[data-theme="dark"] .bdoku-status-abgelehnt { color: color-mix(in srgb, var(--danger) 60%, #fff); }

.bdoku-pagination {
    padding: 14px 20px; text-align: center;
    border-top: 1px solid var(--border);
}

.bdoku-mobile-list { display: none; }
@media (max-width: 768px) {
    .bdoku-table-wrap { display: none; }
    .bdoku-mobile-list { display: flex; flex-direction: column; gap: 10px; padding: 0 20px 14px; }
    .bdoku-mobile-card {
        display: block; padding: 14px;
        background: var(--bg-surface); border: 1px solid var(--border);
        border-radius: 10px; text-decoration: none; color: inherit;
        transition: all 0.15s ease;
    }
    .bdoku-mobile-card:hover { border-color: var(--primary); box-shadow: 0 3px 10px rgba(0,0,0,0.06); }
    .bdoku-mobile-head {
        display: flex; justify-content: space-between;
        gap: 10px; align-items: flex-start; margin-bottom: var(--space-sm);
    }
    .bdoku-mobile-title { display: block; font-size: 14px; color: var(--text-primary); line-height: 1.35; margin-top: 6px; }
    .bdoku-mobile-nr { font-size: 11px; color: var(--text-muted); margin-top: 3px; font-variant-numeric: tabular-nums; }
    .bdoku-mobile-meta {
        display: flex; flex-wrap: wrap; gap: 8px 12px;
        font-size: 12px; color: var(--text-muted);
    }
    .bdoku-mobile-meta span { display: inline-flex; align-items: center; gap: var(--space-xs); }
    .bdoku-status-pills { padding: 3px; gap: var(--space-xs); }
    .bdoku-status-pill { padding: 7px 12px; font-size: 12px; }
}

.bdoku-empty {
    padding: 48px 20px; text-align: center; color: var(--text-muted);
    display: flex; flex-direction: column; align-items: center; gap: 14px;
}
.bdoku-empty-icon { color: var(--border); opacity: 0.8; }
.bdoku-empty h3 { margin: 0; color: var(--text-primary); font-size: 18px; }
.bdoku-empty p { margin: 0; font-size: 14px; max-width: 460px; }

.bdoku-dive-header {
    display: flex; justify-content: space-between; gap: 12px;
    align-items: flex-start; flex-wrap: wrap; margin-bottom: var(--space-md);
}
.bdoku-dive-grid {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 10px;
}
.bdoku-dive-tile {
    --tile-color: var(--text-muted);
    display: block; padding: 14px var(--space-md);
    background: var(--bg-surface-2);
    border: 1px solid var(--border);
    border-left: 4px solid var(--tile-color);
    border-radius: var(--space-sm);
    text-decoration: none; color: inherit;
    transition: transform 0.12s ease, box-shadow 0.12s ease, border-color 0.12s ease;
    position: relative;
}
.bdoku-dive-tile:hover {
    transform: translateY(-1px);
    box-shadow: 0 3px 10px color-mix(in srgb, var(--tile-color) 20%, transparent);
    border-color: var(--tile-color);
    text-decoration: none;
}
.bdoku-dive-tile-dot {
    position: absolute; top: 12px; right: 14px;
    width: 10px; height: 10px; border-radius: 50%;
    background: var(--tile-color);
}
.bdoku-dive-tile-label {
    font-size: 11px; color: var(--text-muted);
    text-transform: uppercase; letter-spacing: 0.4px;
    font-weight: 600; padding-right: 20px;
}
.bdoku-dive-tile-count {
    font-size: 28px; font-weight: 700; line-height: 1.1;
    color: var(--tile-color); margin: 4px 0 2px;
    font-variant-numeric: tabular-nums;
}
.bdoku-dive-tile-info {
    font-size: 11px; color: var(--text-muted);
    line-height: 1.4;
}

/* ── bdd-* (migriert aus baudoku_eintrag_detail.html embedded) ─── */
.bdd-wrap { max-width: 1200px; margin: 0 auto; }
.bdd-back { display: flex; gap: var(--space-md); margin-bottom: 14px; flex-wrap: wrap; }
.bdd-back-link {
    display: inline-flex; align-items: center; gap: 6px;
    color: var(--text-muted); text-decoration: none; font-size: 13px;
}
.bdd-back-link:hover { color: var(--primary); }
.bdd-back-link-sub { padding-left: 12px; border-left: 1px solid var(--border); }

.bdd-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 20px; }

.bdd-hero { margin-bottom: var(--space-md); padding: 22px var(--space-lg); }
.bdd-hero-top { margin-bottom: 12px; }
.bdd-title {
    margin: 0 0 14px; font-size: var(--space-lg); font-weight: 800;
    color: var(--text-primary); letter-spacing: -0.4px; line-height: 1.2;
}
.bdd-text {
    margin: 0; line-height: 1.6; white-space: pre-wrap;
    color: var(--text-secondary); font-size: 14px;
}

.bdd-type-pill {
    display: inline-flex; align-items: center; gap: var(--space-xs);
    padding: 4px 10px; border-radius: 100px;
    font-size: 11px; font-weight: 700; letter-spacing: 0.3px;
}
.bdd-type-voror { background: color-mix(in srgb, var(--primary) 18%, transparent); color: var(--info); }
.bdd-type-arbeit { background: color-mix(in srgb, var(--success) 18%, transparent); color: var(--success); }
.bdd-type-mangel { background: color-mix(in srgb, var(--danger) 18%, transparent); color: var(--danger); }
.bdd-type-abnahme { background: color-mix(in srgb, var(--gold-accent) 22%, transparent); color: var(--gold-accent-dim); }

.bdd-count {
    margin-left: var(--space-xs); padding: 2px 9px;
    background: color-mix(in srgb, var(--primary) 15%, transparent);
    color: var(--primary); border-radius: 100px;
    font-size: 11px; font-weight: 700;
}

.bdd-fotos-card { margin-bottom: var(--space-md); }
.bdd-fotos-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 10px; padding-top: var(--space-xs);
}
.bdd-foto-tile {
    display: block; text-decoration: none;
    border-radius: var(--space-sm); overflow: hidden;
    background: var(--bg-surface-2);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.bdd-foto-tile:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0,0,0,0.12); }
.bdd-foto-img { width: 100%; aspect-ratio: 1; object-fit: cover; display: block; }
.bdd-foto-meta { padding: 6px var(--space-sm); background: var(--bg-surface); text-align: center; }
.bdd-foto-size { font-size: 11px; color: var(--text-muted); font-variant-numeric: tabular-nums; }

.bdd-sigs-card { margin-bottom: var(--space-md); }
.bdd-sigs-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding-top: var(--space-xs); }
.bdd-sig-block { padding: 14px; background: var(--bg-surface-2); border-radius: var(--space-sm); }
.bdd-sig-label {
    display: inline-flex; align-items: center; gap: 5px;
    font-size: 12px; font-weight: 700;
    color: var(--text-muted); text-transform: uppercase;
    letter-spacing: 0.5px; margin-bottom: var(--space-sm);
}
.bdd-sig-display {
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: 6px; padding: 6px; margin-bottom: 6px;
}
.bdd-sig-img { max-width: 100%; max-height: 100px; display: block; margin: 0 auto; }
.bdd-sig-meta {
    font-size: 11px; color: var(--text-muted);
    display: inline-flex; align-items: center; gap: var(--space-xs);
}
.bdd-sig-action-btn { display: inline-flex !important; align-items: center; gap: 5px; }
.bdd-sig-hint {
    margin: 8px 0 0; font-size: 11px; color: var(--text-muted);
    display: inline-flex; align-items: center; gap: var(--space-xs);
}
.bdd-sig-del-form { margin-top: var(--space-sm); display: inline; }
.bdd-sig-del-btn {
    background: transparent;
    border: 1px solid color-mix(in srgb, var(--danger) 30%, transparent);
    color: var(--danger);
    padding: 3px 9px; border-radius: 5px;
    font-size: 10px; font-weight: 600;
    cursor: pointer;
    display: inline-flex; align-items: center; gap: var(--space-xs);
    transition: all 0.12s ease;
}
.bdd-sig-del-btn:hover { background: color-mix(in srgb, var(--danger) 8%, transparent); }

.bdd-sig-modal {
    position: fixed; inset: 0;
    background: rgba(0,0,0,0.65); backdrop-filter: blur(2px);
    z-index: 1000; padding: 20px;
    align-items: center; justify-content: center;
}
.bdd-sig-modal-dialog {
    background: var(--bg-surface);
    border-radius: 14px; padding: 22px;
    width: 100%; max-width: 600px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.3);
}
.bdd-sig-modal-title {
    margin: 0 0 12px; font-size: 17px;
    color: var(--text-primary);
    display: inline-flex; align-items: center; gap: var(--space-sm);
}
.bdd-sig-name-input { margin-bottom: 10px; }
.bdd-sig-canvas-wrap {
    border: 2px dashed var(--primary);
    border-radius: 10px;
    background: var(--bg-surface);
    touch-action: none;
}
.bdd-sig-canvas { display: block; width: 100%; height: 200px; touch-action: none; }
.bdd-sig-modal-actions { display: flex; gap: var(--space-sm); margin-top: 12px; flex-wrap: wrap; }
.bdd-sig-modal-actions .btn { display: inline-flex; align-items: center; gap: 5px; }

.bdd-meta-card .card-header h2 { font-size: 15px; }
.bdd-meta-list { display: flex; flex-direction: column; gap: 0; }
.bdd-meta-row {
    padding: 10px 0;
    border-bottom: 1px solid color-mix(in srgb, var(--border) 50%, transparent);
}
.bdd-meta-row:last-child { border-bottom: none; padding-bottom: 0; }
.bdd-meta-label {
    font-size: 11px; font-weight: 700;
    color: var(--text-muted); text-transform: uppercase;
    letter-spacing: 0.5px; margin-bottom: var(--space-xs);
    display: inline-flex; align-items: center; gap: var(--space-xs);
}
.bdd-meta-value { font-size: 13px; color: var(--text-primary); }
.bdd-meta-link { color: var(--primary); text-decoration: none; font-variant-numeric: tabular-nums; }
.bdd-meta-link:hover { text-decoration: underline; }
.bdd-meta-sub { font-size: 11px; color: var(--text-muted); margin-top: 2px; }

.bdd-hash-badge {
    display: inline-flex; align-items: center; gap: 3px;
    padding: 2px var(--space-sm); border-radius: 100px;
    font-size: 10px; font-weight: 700;
}
.bdd-hash-valid { background: color-mix(in srgb, var(--success) 18%, transparent); color: var(--success); }
.bdd-hash-invalid { background: color-mix(in srgb, var(--danger) 15%, transparent); color: var(--danger); }
.bdd-hash-code {
    display: block; margin-top: var(--space-xs);
    font-size: 10px; word-break: break-all;
    color: var(--text-muted);
    font-family: 'SF Mono', Monaco, monospace;
}

.bdd-danger-card {
    margin-top: var(--space-md);
    border: 1px solid color-mix(in srgb, var(--danger) 35%, transparent);
}
.bdd-danger-header { background: color-mix(in srgb, var(--danger) 8%, transparent); }
.bdd-danger-header h2 { color: var(--danger); font-size: 14px; }
.bdd-danger-hint {
    margin: 0 0 12px; font-size: 12px;
    color: var(--text-muted); line-height: 1.5;
}
.bdd-danger-btn {
    display: inline-flex !important; align-items: center; gap: 5px;
    width: 100%; justify-content: center;
}

@media (max-width: 768px) {
    .bdd-grid { grid-template-columns: 1fr; }
    .bdd-sigs-grid { grid-template-columns: 1fr; }
    .bdd-title { font-size: 20px; }
    .bdd-hero { padding: 18px; }
}

/* ── baudoku-ki-card (migriert aus baudoku_eintrag_neu.html) ─── */
@media (max-width: 640px) {
    .baudoku-ki-card { margin-bottom: 12px !important; }
    .baudoku-actions {
        flex-direction: column-reverse;
        gap: 10px;
        margin-top: 20px;
    }
    .baudoku-actions .btn {
        width: 100%; min-height: var(--space-2xl);
        font-size: 15px; padding: 12px var(--space-md);
    }
    .baudoku-actions .btn-primary { order: -1; }
    .baudoku-actions .btn-secondary[onclick*="GPS"] {
        background: color-mix(in srgb, var(--info) 10%, var(--bg-surface));
        border-color: var(--info);
        color: var(--info);
    }
}

/* ── bdk-* (migriert aus baudoku_liste.html embedded #2) ─── */
.bdk-wrap { max-width: 1200px; margin: 0 auto; }
.bdk-toolbar {
    display: flex; justify-content: space-between; align-items: center;
    gap: 10px; flex-wrap: wrap; margin-bottom: 14px;
}
.bdk-back-link {
    display: inline-flex; align-items: center; gap: 6px;
    color: var(--text-muted); text-decoration: none; font-size: 13px;
}
.bdk-back-link:hover { color: var(--primary); }
.bdk-toolbar-actions { display: flex; gap: var(--space-sm); flex-wrap: wrap; }
.bdk-btn { display: inline-flex; align-items: center; gap: 5px; text-decoration: none; }

.bdk-auftrag-hero {
    display: flex; align-items: center; gap: 14px;
    padding: 14px 18px;
    background: linear-gradient(135deg, color-mix(in srgb, var(--primary) 5%, var(--bg-surface)), var(--bg-surface));
    border: 1px solid var(--border);
    border-radius: 10px; margin-bottom: var(--space-md);
}
.bdk-auftrag-icon {
    color: var(--primary);
    background: color-mix(in srgb, var(--primary) 12%, transparent);
    width: 40px; height: 40px;
    border-radius: 10px;
    display: inline-flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.bdk-auftrag-label {
    font-size: 11px; font-weight: 700;
    color: var(--text-muted); text-transform: uppercase;
    letter-spacing: 0.5px;
}
.bdk-auftrag-title {
    font-size: 17px; font-weight: 700;
    color: var(--text-primary); margin-top: 2px;
}

.bdk-portal-card {
    margin-bottom: var(--space-md);
    border-left: 3px solid var(--primary);
}
.bdk-portal-card .card-header h2 {
    display: inline-flex; align-items: center; gap: var(--space-sm);
    margin: 0; font-size: 15px;
}
.bdk-portal-intro {
    margin: 0 0 12px; font-size: 13px;
    color: var(--text-secondary); line-height: 1.5;
}
.bdk-portal-url-row {
    display: flex; gap: var(--space-sm); align-items: center;
    margin-bottom: 12px; flex-wrap: wrap;
}
.bdk-portal-url {
    flex: 1; min-width: 280px;
    font-size: 12px;
    font-family: 'SF Mono', Monaco, monospace;
}
.bdk-portal-copy-feedback {
    font-size: 11px; color: var(--success);
    font-weight: 600; min-width: 60px;
}
.bdk-portal-actions {
    display: flex; gap: var(--space-sm);
    flex-wrap: wrap; align-items: center;
}
.bdk-portal-btn {
    display: inline-flex !important; align-items: center; gap: 5px;
    text-decoration: none;
}
.bdk-portal-mail-form { display: inline-flex; gap: var(--space-xs); margin: 0; }
.bdk-portal-mail-form input[type="email"] { width: 180px; font-size: 12px; }
.bdk-portal-lockhint {
    display: inline-flex; align-items: center; gap: var(--space-xs);
    color: var(--text-muted); font-size: 12px;
}

.bdk-quota-card {
    padding: 14px 18px;
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: 10px; margin-bottom: 20px;
}
.bdk-quota-head {
    display: flex; justify-content: space-between; align-items: center;
    font-size: 13px; margin-bottom: var(--space-sm);
    flex-wrap: wrap; gap: 6px;
}
.bdk-quota-head strong {
    display: inline-flex; align-items: center; gap: 6px;
    color: var(--text-primary);
}
.bdk-quota-value {
    color: var(--text-muted);
    font-variant-numeric: tabular-nums; font-size: 12px;
}
.bdk-quota-value strong { color: var(--text-primary); }
.bdk-quota-sep { color: var(--border); margin: 0 2px; }
.bdk-quota-warn .bdk-quota-value { color: var(--warning); }
.bdk-quota-danger { color: var(--danger) !important; }
.bdk-quota-danger strong { color: var(--danger) !important; }
.bdk-quota-track {
    height: var(--space-sm); background: var(--border);
    border-radius: var(--space-xs); overflow: hidden;
}
.bdk-quota-fill {
    height: 100%; background: var(--success);
    border-radius: var(--space-xs); transition: width 0.4s ease-out;
}
.bdk-quota-fill-warn { background: var(--warning); }
.bdk-quota-fill-danger { background: var(--danger); }
.bdk-quota-warning {
    margin-top: var(--space-sm); padding: 6px 10px;
    background: color-mix(in srgb, var(--danger) 10%, transparent);
    color: var(--danger);
    border-left: 3px solid var(--danger);
    border-radius: 5px;
    font-size: 11px; font-weight: 600;
    display: inline-flex; align-items: center; gap: 5px;
}

.bdk-entries-head { margin-bottom: 12px; }
.bdk-entries-head h2 {
    display: inline-flex; align-items: center; gap: var(--space-sm);
    margin: 0; font-size: 17px;
}
.bdk-entries-count {
    padding: 2px 10px;
    background: color-mix(in srgb, var(--primary) 15%, transparent);
    color: var(--primary);
    border-radius: 100px;
    font-size: 12px; font-weight: 700; margin-left: var(--space-xs);
}

.bdk-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: var(--space-md);
}
.bdk-entry-card {
    display: block;
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: 10px; overflow: hidden;
    text-decoration: none; color: inherit;
    transition: all 0.15s ease;
}
.bdk-entry-card:hover {
    border-color: var(--primary);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0,0,0,0.08);
}

.bdk-thumb-strip {
    display: flex; gap: 2px;
    height: 170px;
    background: var(--text-primary);
    overflow: hidden;
}
.bdk-thumb { flex: 1; height: 170px; object-fit: cover; min-width: 0; }
.bdk-thumb-more {
    flex: 0 0 70px;
    display: inline-flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, var(--text-primary), var(--bg-sidebar));
    color: var(--text-inverted);
    font-weight: 800; font-size: 15px;
}
.bdk-thumb-empty {
    height: 100px;
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    gap: 6px;
    background: var(--bg-surface-2);
    color: var(--text-muted);
    font-size: 12px;
}

.bdk-entry-body { padding: 12px 14px; }
.bdk-entry-top {
    display: flex; gap: 6px; align-items: center;
    margin-bottom: var(--space-sm); flex-wrap: wrap;
}
.bdk-type-pill {
    display: inline-flex; align-items: center; gap: 3px;
    padding: 3px var(--space-sm); border-radius: 100px;
    font-size: 10px; font-weight: 700; letter-spacing: 0.3px;
}
.bdk-type-voror { background: color-mix(in srgb, var(--primary) 18%, transparent); color: var(--info); }
.bdk-type-arbeit { background: color-mix(in srgb, var(--success) 18%, transparent); color: var(--success); }
.bdk-type-mangel { background: color-mix(in srgb, var(--danger) 18%, transparent); color: var(--danger); }
.bdk-type-abnahme { background: color-mix(in srgb, var(--gold-accent) 22%, transparent); color: var(--gold-accent-dim); }
.bdk-entry-badge {
    display: inline-flex; align-items: center;
    color: var(--success); font-size: 11px;
}
.bdk-entry-wetter {
    display: inline-flex; align-items: center;
    color: var(--text-muted); font-size: 12px;
}

.bdk-entry-title {
    display: block;
    font-size: 15px; font-weight: 700;
    color: var(--text-primary);
    margin-bottom: 6px; line-height: 1.3;
}
.bdk-entry-card:hover .bdk-entry-title { color: var(--primary); }
.bdk-entry-text {
    font-size: 13px; color: var(--text-muted);
    margin: 0 0 var(--space-sm); line-height: 1.45;
    max-height: 4.3em; overflow: hidden;
}
.bdk-entry-meta {
    display: flex; justify-content: space-between;
    gap: var(--space-sm); flex-wrap: wrap;
    font-size: 11px; color: var(--text-muted);
    padding-top: var(--space-sm);
    border-top: 1px solid color-mix(in srgb, var(--border) 50%, transparent);
}
.bdk-entry-meta span { display: inline-flex; align-items: center; gap: 3px; }

.bdk-empty {
    padding: 48px 20px;
    text-align: center;
    color: var(--text-muted);
    display: flex; flex-direction: column;
    align-items: center; gap: 14px;
}
.bdk-empty-icon { color: var(--border); opacity: 0.8; }
.bdk-empty h3 { margin: 0; color: var(--text-primary); font-size: 18px; }
.bdk-empty p { margin: 0; font-size: 14px; max-width: 460px; line-height: 1.55; }
.bdk-empty .btn { display: inline-flex; align-items: center; gap: 6px; }

@media (max-width: 640px) {
    .bdk-toolbar { flex-direction: column; align-items: stretch; }
    .bdk-toolbar-actions { justify-content: stretch; }
    .bdk-toolbar-actions .btn { flex: 1; justify-content: center; }
    .bdk-portal-mail-form { flex-direction: column; align-items: stretch; }
    .bdk-portal-mail-form input[type="email"] { width: 100%; }
    .bdk-portal-actions { flex-direction: column; align-items: stretch; }
    .bdk-portal-actions .btn, .bdk-portal-actions form { width: 100%; }
    .bdk-portal-actions form .btn { width: 100%; }
}

/* ── bt-* (migriert aus bautagebuch_liste.html embedded) ─── */
.bt-kpi-card {
    padding: 14px var(--space-md);
    border-radius: var(--space-sm);
    border: 1px solid var(--border);
    background: color-mix(in srgb, var(--text-primary) 3%, var(--bg-surface));
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.bt-kpi-card:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0,0,0,0.08); }
.bt-kpi-entwurf { border-left: 4px solid var(--warning); background: color-mix(in srgb, var(--warning) 8%, var(--bg-surface)); }
.bt-kpi-final   { border-left: 4px solid var(--success); background: color-mix(in srgb, var(--success) 8%, var(--bg-surface)); }
[data-theme="dark"] .bt-kpi-entwurf { background: color-mix(in srgb, var(--warning) 12%, var(--bg-surface-2)); }
[data-theme="dark"] .bt-kpi-final   { background: color-mix(in srgb, var(--success) 12%, var(--bg-surface-2)); }
.bt-kpi-label { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: var(--space-xs); }
.bt-kpi-value { font-size: 28px; font-weight: 700; line-height: 1; }
.bt-kpi-entwurf .bt-kpi-label, .bt-kpi-entwurf .bt-kpi-value { color: var(--warning); }
.bt-kpi-final   .bt-kpi-label, .bt-kpi-final   .bt-kpi-value { color: var(--success); }
[data-theme="dark"] .bt-kpi-entwurf .bt-kpi-label, [data-theme="dark"] .bt-kpi-entwurf .bt-kpi-value { color: color-mix(in srgb, var(--warning) 60%, #fff); }
[data-theme="dark"] .bt-kpi-final   .bt-kpi-label, [data-theme="dark"] .bt-kpi-final   .bt-kpi-value { color: color-mix(in srgb, var(--success) 60%, #fff); }

.bt-calendar {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 6px; margin: 16px 0;
}
.bt-weekday {
    text-align: center; padding: 8px 6px;
    font-size: 11px; font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase; letter-spacing: 0.6px;
}
.bt-day {
    display: block; padding: 10px 6px;
    border-radius: var(--space-sm);
    text-decoration: none; text-align: center;
    min-height: var(--space-3xl);
    border: 1px solid var(--border);
    background: color-mix(in srgb, var(--text-primary) 2%, var(--bg-surface));
    color: var(--text-secondary);
    transition: transform 0.12s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}
.bt-day:hover {
    transform: translateY(-1px);
    box-shadow: 0 3px 8px rgba(0,0,0,0.1);
    border-color: color-mix(in srgb, var(--primary) 40%, var(--border));
}
.bt-day-num { font-size: var(--space-md); font-weight: 700; line-height: 1.1; }
.bt-day-sub { font-size: 10px; margin-top: 2px; }
.bt-day.bt-day-future { opacity: 0.55; }
.bt-day.bt-day-today {
    border: 2px solid var(--primary);
    background: color-mix(in srgb, var(--primary) 10%, var(--bg-surface));
    color: var(--primary);
    font-weight: 700;
}
[data-theme="dark"] .bt-day {
    background: color-mix(in srgb, #ffffff 5%, var(--bg-surface-2));
}
[data-theme="dark"] .bt-day.bt-day-today {
    background: color-mix(in srgb, var(--primary) 18%, var(--bg-surface-2));
    color: var(--primary-light);
}
.bt-day.bt-day-entwurf {
    border: 2px solid var(--warning);
    background: color-mix(in srgb, var(--warning) 12%, var(--bg-surface));
    color: var(--warning);
    font-weight: 600;
}
[data-theme="dark"] .bt-day.bt-day-entwurf {
    background: color-mix(in srgb, var(--warning) 20%, var(--bg-surface-2));
    color: color-mix(in srgb, var(--warning) 60%, #fff);
}
.bt-day.bt-day-final {
    border: 2px solid var(--success);
    background: color-mix(in srgb, var(--success) 12%, var(--bg-surface));
    color: var(--success);
    font-weight: 600;
}
[data-theme="dark"] .bt-day.bt-day-final {
    background: color-mix(in srgb, var(--success) 20%, var(--bg-surface-2));
    color: color-mix(in srgb, var(--success) 60%, #fff);
}
.bt-monat-nav {
    display: flex; gap: 12px; align-items: center;
    margin: 18px 0 10px; flex-wrap: wrap;
}
.bt-monat-nav strong { font-size: 18px; color: var(--text-primary); }
.bt-status-badge {
    font-size: 11px; padding: 3px 10px;
    border-radius: 999px; font-weight: 600;
    display: inline-flex; align-items: center; gap: var(--space-xs);
}
.bt-status-badge.final   { background: var(--success); color: var(--text-inverted); }
.bt-status-badge.entwurf { background: var(--warning); color: var(--text-inverted); }

/* ── bautagebuch_tag.html mobile (migriert) ─── */
@media (max-width: 768px) {
    .bt-form-grid-mobile-collapse { grid-template-columns: 1fr !important; }
}

/* ── sige-* (migriert aus sige_dashboard.html embedded) ─── */
.sige-filter-pills {
    display: flex; flex-wrap: wrap; gap: 6px;
    padding: 8px 20px 14px; align-items: center;
    border-bottom: 1px solid var(--border);
}
.sige-pill {
    --pill-color: var(--text-muted);
    display: inline-flex; align-items: center;
    padding: 7px 14px; border-radius: 100px;
    background: var(--bg-surface-2);
    color: var(--text-muted);
    text-decoration: none; font-size: 12px; font-weight: 600;
    border: 1px solid var(--border);
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
    white-space: nowrap;
}
.sige-pill:hover {
    background: color-mix(in srgb, var(--pill-color) 10%, transparent);
    color: var(--pill-color);
    border-color: var(--pill-color);
}
.sige-pill-active {
    background: var(--pill-color);
    color: var(--text-inverted) !important;
    border-color: var(--pill-color);
    box-shadow: 0 2px 6px color-mix(in srgb, var(--pill-color) 25%, transparent);
}

/* ── mng-* (Mängel) — Detail + Liste ─── */
.mng-pill {
    font-size: 11px;
    padding: 3px 10px;
    border-radius: 12px;
    background: var(--pill-color, var(--border));
    color: var(--text-inverted);
    font-weight: 600;
    text-transform: uppercase;
}
.mng-pill.is-list {
    padding: 3px var(--space-sm);
    border-radius: 10px;
}
.mng-detail-grid {
    display: grid; grid-template-columns: 2fr 1fr;
    gap: var(--space-md); margin-top: var(--space-md);
}
.mng-detail-col {
    display: flex; flex-direction: column; gap: var(--space-md);
}
.mng-nr {
    font-family: monospace; font-size: 13px;
    color: var(--text-muted);
}
.mng-kategorie-pill {
    font-size: 12px; padding: 3px var(--space-sm);
    background: var(--border-subtle);
    border-radius: 10px;
}
.mng-kategorie-pill.is-list {
    font-size: 12px; padding: 2px var(--space-sm);
}
.mng-header-meta {
    display: flex; gap: var(--space-sm);
    margin-top: 6px;
    align-items: center; flex-wrap: wrap;
}
.mng-form-grid-3 {
    display: grid; grid-template-columns: 1fr 1fr 1fr;
    gap: var(--space-sm); margin-bottom: 12px;
}
.mng-form-row {
    display: flex; flex-wrap: wrap;
    gap: var(--space-sm); align-items: end;
}
.mng-form-flex-2 { flex: 2; min-width: 240px; }
.mng-form-flex-2-narrow { flex: 2; min-width: 200px; }
.mng-card-success {
    background: color-mix(in srgb, var(--success) 8%, var(--bg-surface));
    border-left: 4px solid var(--success);
}
.mng-card-success-hint {
    margin: 0 0 12px 0;
    color: var(--text-muted);
}
.mng-content-box {
    padding: 16px 0;
    font-size: 13px;
    line-height: 1.6;
}
.mng-section-divider {
    margin-bottom: var(--space-sm);
    padding-top: var(--space-sm);
    border-top: 1px solid var(--border-subtle);
}
.mng-behoben-label { color: var(--info); }
.mng-foto-link-box {
    margin-top: 6px;
    padding: var(--space-sm);
    background: var(--bg-surface-2);
    border-radius: var(--space-xs);
}
.mng-foto-link {
    font-size: 13px; text-decoration: none; font-weight: 600;
}
.mng-foto-form-inline {
    display: inline; margin-top: var(--space-xs);
}
.mng-foto-remove-btn {
    font-size: 11px;
    background: none; border: none;
    color: var(--danger);
    cursor: pointer; padding: 2px;
}
.mng-foto-empty {
    margin-top: var(--space-xs);
    font-size: 13px;
    color: var(--text-muted);
}
.mng-foto-set-btn {
    margin-top: var(--space-xs);
    font-size: 12px;
}
.mng-card-danger {
    background: color-mix(in srgb, var(--danger) 12%, transparent);
    border-left: 4px solid var(--danger);
}
.mng-delete-hint {
    font-size: 13px;
    color: var(--text-muted);
    margin: 4px 0 12px 0;
}
.mng-delete-btn {
    background: var(--danger);
    color: var(--text-inverted);
    border: none;
    padding: 6px 12px;
    border-radius: var(--space-xs);
    cursor: pointer;
}
.mng-filter-form {
    display: flex; gap: var(--space-sm);
    flex-wrap: wrap; margin-bottom: var(--space-md);
    align-items: center;
}
.mng-mono-cell {
    font-family: monospace; font-size: 12px;
    white-space: nowrap;
}
.mng-date-cell {
    font-size: 12px; white-space: nowrap;
}
.mng-foto-icon-vorher {
    color: var(--text-muted);
    display: inline-flex;
    vertical-align: middle;
}
.mng-foto-icon-nachher {
    color: var(--success);
    display: inline-flex;
    vertical-align: middle;
    margin-left: 2px;
}
@media (max-width: 900px) {
    .mng-detail-grid { grid-template-columns: 1fr !important; }
}

/* ── abn-* (Abnahme) — Detail + Liste + Neu + Versenden ─── */
.abn-art-pill {
    background: var(--pill-color, var(--text-secondary));
    color: var(--text-inverted);
    padding: 2px var(--space-sm);
    border-radius: 10px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
}
.abn-info-banner {
    padding: 10px 20px;
    margin: 14px 20px;
    background: color-mix(in srgb, var(--info) 8%, var(--bg-surface));
    border-left: 4px solid var(--info);
    border-radius: 6px;
}
.abn-detail-grid-2 {
    padding: 20px;
    display: grid; grid-template-columns: 1fr 1fr;
    gap: var(--space-md);
}
.abn-detail-section {
    padding: 0 20px var(--space-md);
}
.abn-restmangel-table {
    width: 100%; margin-bottom: 12px;
}
.abn-muted-text {
    color: var(--text-muted);
    margin-bottom: 12px;
}
.abn-restmangel-form {
    border-top: 1px solid var(--border);
    padding-top: 12px;
}
.abn-restmangel-title {
    margin: 0 0 var(--space-sm);
    font-weight: 600;
}
.abn-restmangel-list {
    max-height: 200px; overflow-y: auto;
    margin-bottom: 10px;
}
.abn-mangel-label {
    display: block; padding: 4px 0;
}
.abn-mangel-prio-hoch {
    background: var(--danger);
    color: var(--text-inverted);
    padding: 1px 6px;
    border-radius: var(--space-sm);
    font-size: 10px;
}
.abn-mangel-form-row {
    display: flex; gap: 10px; align-items: center;
}
.abn-frist-input {
    display: inline-block; width: auto;
}
.abn-empty-text {
    color: var(--text-muted);
    padding: 12px 0;
    border-top: 1px solid var(--border);
}
.abn-sig-grid {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 20px;
}
.abn-sig-canvas {
    border: 2px dashed var(--text-muted);
    border-radius: 6px;
    background: var(--bg-surface);
    cursor: crosshair;
    width: 100%; max-width: 600px;
}
.abn-sig-actions {
    margin-top: var(--space-sm);
    display: flex; gap: var(--space-sm);
    align-items: center;
}
.abn-sig-display-img {
    border: 1px solid var(--border);
    border-radius: var(--space-xs);
    max-width: 100%; height: auto;
}
.abn-sig-display-block {
    padding: 20px;
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 20px;
}
.abn-hash-row {
    padding: 0 20px var(--space-md);
    color: var(--text-muted);
    font-size: 12px;
}
.abn-hash-code {
    font-size: 11px;
    word-break: break-all;
}
.abn-versenden-info-box {
    color: var(--text-muted);
    font-size: 12px;
    margin-top: var(--space-sm);
}
.abn-restmangel-list-versenden {
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 10px;
}
.abn-versenden-empty {
    color: var(--text-muted);
    margin: 0;
}
.abn-versenden-actions {
    display: flex; gap: 10px;
    margin-top: 14px;
}
.abn-neu-grid-2 {
    padding: 20px;
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 20px;
}
.abn-neu-fullspan {
    grid-column: span 2;
    margin-top: 10px;
}
.abn-neu-card-divider {
    border-top: 1px solid var(--border);
    padding-top: 14px;
}

/* ── sg-* (SiGe) — Detail + Liste + Neu + Wizard + Unfall ─── */
.sg-status-pill {
    padding: 2px var(--space-sm);
    border-radius: 999px;
    font-size: 11px;
    color: var(--text-inverted);
}
.sg-status-pill.is-entwurf { background: var(--warning); }
.sg-status-pill.is-offen { background: var(--warning); }
.sg-link-icon {
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.sg-detail-grid-2 {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 12px;
}
.sg-detail-grid-3 {
    display: grid; grid-template-columns: 1fr 1fr 1fr;
    gap: 12px; margin-bottom: var(--space-md);
}
.sg-detail-grid-1-2 {
    display: grid; grid-template-columns: 1fr 2fr;
    gap: 12px; margin-bottom: var(--space-md);
}
.sg-form-flex-end {
    display: flex; align-items: end;
}
.sg-info-box {
    margin-bottom: var(--space-md);
    padding: 14px;
    background: var(--bg-surface-2);
    border-radius: 6px;
}
.sg-info-box-text {
    color: var(--text-muted);
    font-size: 13px;
    margin-bottom: 12px;
}
.sg-meta-dl {
    display: grid; grid-template-columns: 200px 1fr;
    gap: 6px var(--space-md); margin: 0;
}
.sg-hash-code {
    font-size: 11px;
    word-break: break-all;
}
.sg-vorlagen-form {
    margin-left: auto;
    display: flex; gap: 6px; align-items: center;
}
.sg-gef-row {
    background: var(--bg-surface-2);
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 12px;
    margin-bottom: var(--space-sm);
}
.sg-gef-grid {
    display: grid; grid-template-columns: 1fr 1fr 120px auto;
    gap: var(--space-sm); align-items: start;
}
.sg-gef-submit-spaced {
    margin-left: var(--space-sm);
}
.sg-ampel-pill {
    background: var(--pill-color, var(--text-secondary));
    color: var(--text-inverted);
    padding: 2px var(--space-sm);
    border-radius: 999px;
    font-size: 11px;
}
.sg-teilnehmer-form {
    display: flex; gap: var(--space-sm);
    margin-bottom: var(--space-md);
}
.sg-teilnehmer-card {
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 12px;
    margin-bottom: 10px;
}
.sg-teilnehmer-row {
    display: flex; flex-wrap: wrap;
    gap: 12px; align-items: center;
    margin-bottom: 10px;
}
.sg-sig-status-ok {
    color: var(--success);
    font-size: 13px;
}
.sg-sig-status-pending {
    color: var(--warning);
    font-size: 13px;
}
.sg-sig-canvas {
    border: 2px dashed var(--border-strong);
    border-radius: 6px;
    background: var(--bg-surface);
    cursor: crosshair;
    width: 100%; max-width: 600px;
}
.sg-sig-actions-row {
    margin-top: var(--space-sm);
    display: flex; gap: var(--space-sm);
}
.sg-sig-display-img {
    border: 1px solid var(--border);
    border-radius: var(--space-xs);
    max-width: 400px;
    max-height: 120px;
    height: auto;
}
.sg-empty-text {
    color: var(--text-muted);
    margin: 0;
}
.sg-warn-box {
    padding: 12px 14px;
    background: color-mix(in srgb, var(--danger) 12%, var(--bg-surface));
    border-left: 4px solid var(--danger);
    border-radius: 6px;
    margin-bottom: 12px;
}
.sg-warn-list {
    margin: 8px 0 0 20px;
}
.sg-history-hint {
    margin-left: 12px;
    color: var(--text-muted);
}
.sg-history-pill {
    background: var(--danger);
    color: var(--text-inverted);
    padding: 2px var(--space-sm);
    border-radius: 999px;
    font-size: 11px;
}

/* ── sg-bg-countdown (sige_dashboard + sige_liste) ─── */
.sg-bg-countdown {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    background: var(--bg-surface-2);
    color: var(--text-muted);
}
.sg-bg-countdown.is-overdue { background: var(--danger); color: var(--text-inverted); }
.sg-bg-countdown.is-urgent { background: var(--danger); color: var(--text-inverted); }
.sg-bg-countdown.is-warn { background: var(--warning); color: var(--text-inverted); }
.sg-bg-countdown.is-info { background: var(--info); color: var(--text-inverted); }

/* ── sg-unfall-banner (sige_unfall_detail) — conditional class ─── */
.sg-unfall-banner {
    padding: 16px 20px;
    border-radius: 6px;
    background: color-mix(in srgb, var(--success) 14%, var(--bg-surface));
    border-left: 4px solid var(--success);
}
.sg-unfall-banner.is-rot {
    background: color-mix(in srgb, var(--danger) 12%, var(--bg-surface));
    border-left-color: var(--danger);
}
.sg-unfall-banner-title {
    font-size: var(--space-md);
}
.sg-unfall-banner-text {
    margin: 6px 0 0;
}

/* ── sg-bg-warn (Live-BG-Pflicht-Checker im Wizard) ─── */
.sg-bg-warn {
    display: none;
    margin: 14px 20px;
    padding: 14px;
    background: var(--danger);
    color: var(--text-inverted);
    border-radius: 6px;
}
.sg-bg-warn.is-shown { display: block; }

/* ── sg-card-danger-header (sige_unfall_detail + wizard) ─── */
.sg-card-danger-header {
    background: color-mix(in srgb, var(--danger) 12%, var(--bg-surface));
    border-bottom: 1px solid var(--danger);
}
.sg-card-danger-header h2,
.sg-card-danger-header h3 {
    margin: 0;
    color: var(--danger);
}

/* ── sg-todesfolge (sige_liste) ─── */
.sg-todesfolge {
    background: var(--danger);
    color: var(--text-primary);
    padding: 1px 6px;
    border-radius: var(--space-xs);
    font-size: 10px;
    font-weight: 700;
}

/* ── sg-doku-table additional ─── */
.sg-doku-typ-cell {
    width: 16%;
}
.sg-doku-typ-pill {
    background: var(--bg-surface-2);
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11px; font-weight: 600;
}
.sg-doku-warning-text {
    color: var(--text-muted);
}
.sg-doku-warning-text.is-overdue {
    color: var(--danger);
}
.sg-doku-status-pill {
    background: var(--pill-color, var(--text-secondary));
    color: var(--text-inverted);
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
}
.sg-doku-empty-state {
    padding: 32px 20px;
}
.sg-list-section {
    padding: 16px 20px var(--space-sm);
}
.sg-list-section-bordered {
    padding: 20px 20px var(--space-sm);
    border-top: 1px solid var(--border);
    margin-top: 12px;
}
.sg-schwer-text {
    color: var(--danger);
    font-weight: 700;
}
.sg-bg-pflichtig-pill {
    background: var(--danger);
    color: var(--text-inverted);
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
}

/* ── sige_liste neu-menu dropdown ─── */
.sg-neu-menu-wrap {
    position: relative;
    display: inline-block;
}
.sg-neu-menu {
    display: none;
    position: absolute;
    right: 0;
    top: 100%;
    margin-top: var(--space-xs);
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: 6px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    min-width: 240px;
    z-index: 10;
}
.sg-neu-menu.show { display: block !important; }
.sg-neu-menu-item {
    display: block;
    padding: 10px 14px;
    text-decoration: none;
    color: inherit;
    border-bottom: 1px solid var(--border);
}
.sg-neu-menu-item:last-child {
    border-bottom: none;
}
.sg-neu-wizard-hint {
    margin: 8px 0 0;
    font-size: 12px;
    color: var(--text-muted);
}

/* ── sg-wizard-hint-row (Live-Check-Output) ─── */
.sg-wizard-hint-row {
    padding: 12px;
    background: var(--bg-surface-2);
    border-radius: 6px;
    margin-bottom: var(--space-md);
}
.sg-wizard-hint-grid {
    display: grid; grid-template-columns: 1fr 1fr 1fr;
    gap: 12px;
}

/* ── bb-* (Baubesprechung) — Detail + Liste + Neu + Versenden ─── */
.bb-status-success-text {
    color: var(--success);
    font-weight: 600;
    margin-left: var(--space-sm);
}
.bb-status-warning-text {
    color: var(--warning);
    font-weight: 600;
    margin-left: var(--space-sm);
}
.bb-finalisiert-banner {
    margin: 16px 0;
    padding: 12px var(--space-md);
    background: color-mix(in srgb, var(--success) 12%, var(--bg-surface));
    border-left: 4px solid var(--success);
    border-radius: var(--space-xs);
}
.bb-form-actions {
    margin-top: 14px;
    display: flex; gap: var(--space-sm);
    justify-content: flex-end;
}
.bb-content-box {
    padding: 12px;
    background: var(--bg-surface-2);
    border-radius: 6px;
    font-size: 14px;
    line-height: 1.6;
}
.bb-section-h3 { margin-top: 28px; }
.bb-add-form {
    margin-top: 12px;
    padding: 12px;
    background: var(--bg-surface-2);
    border-radius: 6px;
}
.bb-form-grid-5 {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr auto;
    gap: 10px;
    align-items: end;
}
.bb-form-grid-4 {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr auto;
    gap: 10px;
    align-items: end;
}
.bb-todo-overdue-row {
    background: color-mix(in srgb, var(--danger) 8%, transparent);
}
.bb-todo-overdue-text {
    color: var(--danger);
    font-weight: 600;
}
.bb-todo-status-pill {
    color: var(--text-inverted);
    padding: 3px var(--space-sm);
    border-radius: 999px;
    font-size: 11px;
}
.bb-todo-status-pill.is-erledigt { background: var(--success); }
.bb-todo-status-pill.is-abgebrochen { background: var(--text-muted); }
.bb-todo-status-pill.is-offen { background: var(--warning); }
.bb-warn-box {
    margin-top: var(--space-lg);
    padding: 14px;
    border-left: 4px solid var(--warning);
    background: color-mix(in srgb, var(--warning) 10%, var(--bg-surface));
    border-radius: var(--space-xs);
}
.bb-finalize-form {
    margin-top: var(--space-lg);
    padding-top: var(--space-md);
    border-top: 2px solid var(--success);
}
.bb-sig-status {
    font-weight: 400;
    font-size: 12px;
    color: var(--text-muted);
    margin-left: var(--space-sm);
}
.bb-sig-canvas-wrap {
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--bg-surface);
    overflow: hidden;
    max-width: 600px;
}
.bb-sig-canvas {
    display: block;
    width: 100%;
    height: 180px;
    touch-action: none;
    cursor: crosshair;
    background: var(--bg-surface);
}
.bb-sig-modal-actions {
    margin-top: var(--space-md);
    display: flex; gap: var(--space-sm);
    justify-content: flex-end;
}
.bb-list-table-wrap {
    margin-top: 18px;
}
.bb-list-status-pill {
    color: var(--text-inverted);
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
}
.bb-list-status-pill.is-final { background: var(--success); }
.bb-list-status-pill.is-entwurf { background: var(--warning); }
.bb-form-divider-actions {
    margin-top: var(--space-lg);
    padding-top: var(--space-md);
    border-top: 1px solid var(--border);
    display: flex; gap: var(--space-sm);
    justify-content: flex-end;
}
.bb-form-hint {
    color: var(--text-muted);
    margin-top: 10px;
    display: block;
}
.bb-info-banner {
    margin: 12px 0;
    padding: 10px 14px;
    background: color-mix(in srgb, var(--primary) 10%, transparent);
    border-left: 4px solid var(--primary);
    border-radius: var(--space-xs);
    font-size: 13px;
}
.bb-versenden-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: var(--space-sm);
    margin: 8px 0;
}
.bb-versenden-checkbox-label {
    display: flex; align-items: center; gap: var(--space-sm);
    padding: 8px 10px;
    border: 1px solid var(--border);
    border-radius: var(--space-xs);
    cursor: pointer;
}
.bb-versenden-warn-box {
    padding: 12px;
    background: color-mix(in srgb, var(--warning) 10%, transparent);
    border-left: 4px solid var(--warning);
    border-radius: var(--space-xs);
}

/* ── btw-* (bautagebuch_woche_detail) ─── */
.btw-info-banner {
    margin: 12px 0;
    padding: 10px 14px;
    background: color-mix(in srgb, var(--primary) 10%, transparent);
    border-left: 4px solid var(--primary);
    border-radius: var(--space-xs);
    font-size: 13px;
}
.btw-stat-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 14px;
    margin: 18px 0;
}
.btw-stat-card {
    padding: 14px var(--space-md);
    border-radius: var(--space-sm);
    border: 1px solid var(--border);
    background: color-mix(in srgb, var(--text-primary) 3%, var(--bg-surface));
    text-align: center;
}
.btw-stat-label {
    font-size: 11px; font-weight: 600;
    text-transform: uppercase;
    color: var(--text-muted);
}
.btw-stat-value {
    font-size: 28px; font-weight: 700;
    margin-top: 3px;
}
.btw-section-h3 { margin-top: 18px; }
.btw-cell-truncate {
    max-width: 400px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.btw-final-h3 {
    margin-top: 28px;
    padding-top: 18px;
    border-top: 2px solid var(--success);
    color: var(--success);
}
.btw-checkbox-label {
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
    cursor: pointer;
}
.btw-form-actions {
    margin-top: 20px;
    display: flex; gap: var(--space-sm);
    justify-content: flex-end;
}

/* ── btv-* (bautagesbericht_versenden) ─── */
.btv-info-banner {
    margin: 12px 0;
    padding: 10px 14px;
    background: color-mix(in srgb, var(--primary) 10%, transparent);
    border-left: 4px solid var(--primary);
    border-radius: var(--space-xs);
    font-size: 13px;
}
.btv-checkbox-label {
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
    cursor: pointer;
}
.btv-form-actions {
    margin-top: var(--space-lg);
    padding-top: var(--space-md);
    border-top: 1px solid var(--border);
    display: flex; gap: var(--space-sm);
    justify-content: flex-end;
}
.btv-meta-box {
    margin-top: var(--space-lg);
    padding: 10px 14px;
    background: color-mix(in srgb, var(--text-muted) 8%, transparent);
    border-radius: var(--space-xs);
    font-size: 12px;
    color: var(--text-muted);
}

/* ── Card-Header-Variants (used across many E.5 files) ─── */
.card-header-aligned {
    align-items: center;
    gap: var(--space-sm);
    flex-wrap: wrap;
}
.card-header-border-top {
    border-top: 1px solid var(--border);
    padding-top: 14px;
}

/* ── abn-status-banner (Conditional-Class für is_final/is_storno/is_entwurf) ── */
.abn-status-banner {
    padding: 12px 20px;
    margin: 14px 20px 0;
    border-radius: var(--space-sm);
    background: color-mix(in srgb, var(--warning) 14%, var(--bg-surface));
    border-left: 4px solid var(--warning);
}
.abn-status-banner.is-final {
    background: color-mix(in srgb, var(--success) 14%, var(--bg-surface));
    border-left-color: var(--success);
}
.abn-status-banner.is-storno {
    background: var(--bg-surface-2);
    border-left-color: var(--text-muted);
}
.abn-status-banner.is-entwurf {
    background: color-mix(in srgb, var(--warning) 14%, var(--bg-surface));
    border-left-color: var(--warning);
}

/* ════════════════════════════════════════════════════════════════
   ITER 14 E.5 — WELLE 2: Restposten in 11 Files
   ════════════════════════════════════════════════════════════════ */

/* ── baudoku_center.html (Deep-Dive header + KPI overrides) ── */
.bdoku-dive-card { margin-bottom: 18px; padding: 18px 20px; }
.bdoku-dive-h2 { margin: 4px 0 0; font-size: 18px; }
.bdoku-dive-link { color: var(--text-primary); text-decoration: none; }
.bdoku-dive-link:hover { color: var(--primary); }
.bdoku-th-typ { width: 13%; }
.bdoku-row-nr {
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
}

/* KPI-Card with conditional active-outline (used in baudoku_center + Marktplatz-KPIs) */
.bdoku-kpi-card.is-filter-active,
.nwk-kpi-card.is-filter-active,
.tpk-kpi-card.is-filter-active {
    outline: 2px solid var(--kpi-accent, var(--primary));
    outline-offset: 2px;
}

/* ── baudoku_eintrag_neu.html (KI-Autopilot Card) ── */
.ki-card {
    max-width: 720px;
    margin-bottom: var(--space-md);
    border-left: 4px solid var(--brand-orange);
    background: color-mix(in srgb, var(--brand-orange-light) 5%, var(--bg-surface));
}
.ki-card-header {
    background: color-mix(in srgb, var(--brand-orange-light) 14%, var(--bg-surface));
}
.ki-card-h2 {
    font-size: 15px;
    color: var(--brand-orange);
}
.ki-card-text {
    font-size: 13px;
    color: var(--text-secondary);
    margin: 0 0 12px;
}
.ki-button-row {
    display: flex; gap: var(--space-sm); flex-wrap: wrap;
    align-items: center; margin-bottom: 10px;
}
.ki-btn-orange {
    background: var(--brand-orange);
}
.ki-hint {
    color: var(--text-muted);
    align-self: center;
}
.ki-preview-box {
    display: none;
    margin-top: 12px; padding: 10px;
    background: var(--bg-surface);
    border: 1px solid color-mix(in srgb, var(--gold-accent) 25%, var(--bg-surface));
    border-radius: 6px;
}
.ki-preview-box.is-shown { display: block; }
.ki-preview-strong {
    font-size: 12px;
    color: var(--brand-orange);
}
.ki-preview-content {
    font-size: 12px; margin-top: 6px;
}
.form-card-720 { max-width: 720px; }
.baudoku-actions {
    display: flex; gap: var(--space-sm);
    margin-top: var(--space-md); flex-wrap: wrap;
}

/* ── bautagebuch_tag.html (Auto-Fill + Sig + Final) ── */
.bt-auto-fill-banner {
    margin: 16px 0;
    padding: 12px var(--space-md);
    background: color-mix(in srgb, var(--info) 8%, var(--bg-surface));
    border-left: 4px solid var(--info);
    border-radius: var(--space-xs);
}
.bt-auto-fill-row {
    display: flex; align-items: center;
    gap: var(--space-sm); flex-wrap: wrap;
}
.bt-auto-fill-text {
    flex: 1; min-width: 300px;
}
.bt-auto-preview-content {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px dashed color-mix(in srgb, var(--info) 30%, transparent);
    font-size: 13px;
}
.bt-auto-preview-content.is-hidden { display: none; }
.bt-auto-preview-strong { color: var(--primary); }
.bt-auto-preview-list {
    margin: 6px 0 0 18px;
    padding: 0;
    line-height: 1.6;
}
.bt-warn-subbox {
    margin-top: var(--space-sm); padding: var(--space-sm);
    background: color-mix(in srgb, var(--warning) 12%, var(--bg-surface));
    border-radius: 3px;
    color: var(--warning);
    font-size: 12px;
}
.bt-preview-status {
    margin-top: 6px;
    font-size: 12px;
    color: var(--text-muted);
}
.bt-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-md); margin: 12px 0;
}
.bt-form-grid-cell {
    padding: 12px;
    background: var(--bg-surface-2);
    border-radius: 6px;
}
.bt-form-grid-cell-value {
    font-size: var(--space-md);
    margin-top: var(--space-xs);
}
.bt-form-actions-divider {
    margin-top: var(--space-lg);
    padding-top: var(--space-md);
    border-top: 1px solid var(--border-subtle);
    display: flex; gap: var(--space-sm);
    justify-content: flex-end;
    flex-wrap: wrap;
}
.bt-warn-final-card {
    margin-top: var(--space-lg);
    padding: var(--space-md);
    border: 1px solid var(--warning);
    border-left: 4px solid var(--warning);
    border-radius: 6px;
    background: color-mix(in srgb, var(--warning) 10%, var(--bg-surface));
}
.bt-warn-final-h3 {
    margin: 0 0 6px 0;
    color: var(--warning);
}
.bt-warn-final-p {
    margin: 0;
    color: var(--text-primary);
    font-size: 13px;
}
.bt-finalize-form {
    margin-top: var(--space-lg);
    padding-top: var(--space-md);
    border-top: 2px solid var(--success);
}
.bt-sig-status {
    font-weight: 400;
    font-size: 12px;
    color: var(--text-muted);
    margin-left: var(--space-sm);
}
.bt-sig-canvas-wrap {
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--bg-surface);
    overflow: hidden;
    max-width: 600px;
}
.bt-sig-canvas {
    display: block;
    width: 100%;
    height: 200px;
    touch-action: none;
    cursor: crosshair;
    background: var(--bg-surface);
}
.bt-sig-actions-row {
    margin-top: var(--space-sm);
    display: flex; gap: var(--space-sm);
    flex-wrap: wrap; align-items: center;
}
.bt-form-actions-final {
    margin-top: var(--space-md);
    display: flex; gap: var(--space-sm);
    justify-content: flex-end;
    flex-wrap: wrap;
}

/* ── sige_dashboard.html (BG-Banner + Empty + Headers) ── */
.sg-bg-banner-row {
    display: flex; align-items: center;
    gap: 14px; flex-wrap: wrap;
}
.sg-bg-banner-text {
    flex: 1; min-width: 300px;
}
.sg-todesfolge-pill {
    background: var(--danger);
    color: var(--text-inverted);
    padding: 2px var(--space-sm);
    border-radius: var(--space-xs);
    margin-left: var(--space-sm);
    font-size: 12px;
}
.sg-mb8-flex {
    margin-bottom: var(--space-sm);
    display: flex;
    align-items: baseline;
    gap: 12px;
    flex-wrap: wrap;
}
.sg-warning-h3 {
    margin: 0;
    color: var(--warning);
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.sg-empty-state-pad {
    padding: 40px 20px;
    text-align: center;
    color: var(--text-muted);
}
.sg-empty-state-text {
    font-size: 15px;
    margin-bottom: var(--space-xs);
}
.sg-ampel-overdue {
    background: var(--danger);
    color: var(--text-inverted);
    padding: 2px var(--space-sm);
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
}
.sg-ampel-warn {
    background: var(--warning);
    color: var(--text-inverted);
    padding: 2px var(--space-sm);
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
}
.sg-ampel-ok {
    background: var(--success);
    color: var(--text-inverted);
    padding: 2px var(--space-sm);
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
}

/* ── abnahme_liste.html (Status pills + ampel dot + counter) ── */
.abn-list-status-pill {
    color: var(--text-inverted);
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
}
.abn-list-status-pill.is-final { background: var(--success); }
.abn-list-status-pill.is-storno { background: var(--text-muted); }
.abn-list-status-pill.is-entwurf { background: var(--warning); }
.abn-ampel-dot {
    display: inline-block;
    width: 10px; height: 10px;
    border-radius: 50%;
    background: var(--ampel-color, var(--text-muted));
    margin-right: 6px;
    vertical-align: middle;
}
.abn-restmangel-count-pill {
    background: var(--warning);
    color: var(--text-inverted);
    padding: 2px var(--space-sm);
    border-radius: 10px;
    font-size: 11px;
    font-weight: 600;
}

/* ── baudoku_eintrag_detail.html (Footer-Box) ── */
.bdd-portal-footer-pad {
    padding: 12px var(--space-md);
}
.bdd-portal-cta {
    width: 100%;
    text-decoration: none;
    justify-content: center;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.bdd-portal-cta-hint {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 6px;
    text-align: center;
}

/* ── baudoku_liste.html (quota-fill) ── */
.bdk-quota-fill {
    width: var(--fill-width, 0%);
}

/* ── bautagebuch_liste.html (KPI + week-section) ── */
.bt-kpi-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 14px;
    margin: 18px 0;
}
.bt-cell-truncate {
    max-width: 400px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.bt-section-h3 { margin-top: 28px; }
.bt-week-row {
    display: flex; flex-wrap: wrap;
    gap: 10px; margin: 8px 0;
}
.bt-week-col {
    display: flex; flex-direction: column;
    gap: 1px;
}

/* ── sg-bg-banner-card (sige_dashboard Z.18, conditional severity) ── */
.sg-bg-banner-card {
    margin-bottom: 10px;
    padding: 14px 18px;
    border-radius: var(--space-sm);
    background: var(--bg-surface-2);
    border: 1px solid var(--border);
    color: var(--text-primary);
}
.sg-bg-banner-card.is-overdue,
.sg-bg-banner-card.is-urgent {
    background: var(--danger-bg, color-mix(in srgb, var(--danger) 12%, var(--bg-surface)));
    border: 2px solid var(--danger);
    color: var(--danger);
}
.sg-bg-banner-card.is-warn {
    background: var(--warning-bg, color-mix(in srgb, var(--warning) 12%, var(--bg-surface)));
    border: 2px solid var(--warning);
    color: var(--warning);
}

/* ── sg-bg-banner-icon (sige_dashboard Z.23, conditional severity) ── */
.sg-bg-banner-icon {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    color: var(--text-muted);
}
.sg-bg-banner-icon.is-overdue,
.sg-bg-banner-icon.is-urgent {
    color: var(--danger);
}
.sg-bg-banner-icon.is-warn {
    color: var(--warning);
}

/* ════════════════════════════════════════════════════════════════
   ITER 14 E.6 — Audit + Chat + Netzwerk + Onboarding + Sidebar +
                 KI-Chat-Widget + Aufmaß-Center/Foto/Detail/Neu +
                 PRE-EXISTING E.5 Mobile-Table-Cards-Pattern (generisch)
   ════════════════════════════════════════════════════════════════ */

/* ── PRE-EXISTING E.5-FIX: Generic Mobile-Table-Cards Pattern ── */
/* Wird auf allen .table-wrap angewandt und ersetzt Tabelle durch Cards bei <640px.
   War in E.5 versehentlich entfernt aus abnahme_liste/audit_log. */
@media (max-width: 640px) {
    .table-wrap.is-mobile-cards table thead { display: none; }
    .table-wrap.is-mobile-cards table,
    .table-wrap.is-mobile-cards table tbody,
    .table-wrap.is-mobile-cards table tr,
    .table-wrap.is-mobile-cards table td { display: block; }
    .table-wrap.is-mobile-cards table tr {
        padding: 12px 14px;
        margin-bottom: var(--space-sm);
        border: 1px solid var(--border);
        border-radius: 10px;
        background: var(--bg-surface);
    }
    .table-wrap.is-mobile-cards table td {
        padding: 3px 0;
        border: none;
        font-size: 13px;
    }
    .table-wrap.is-mobile-cards table td:first-child {
        font-weight: 700;
        font-size: 14px;
        color: var(--text-primary);
        margin-bottom: var(--space-xs);
    }
}

/* ── audit-* (audit_log.html) ─── */
.audit-filter-bar {
    padding: 14px 20px;
    border-bottom: 1px solid var(--border);
    background: var(--bg-surface-2);
}
.audit-filter-form {
    display: flex; gap: var(--space-sm);
    flex-wrap: wrap; align-items: end;
}
.audit-filter-label {
    display: block;
    font-size: 12px;
    color: var(--text-muted);
}
.audit-filter-select {
    min-width: 200px;
}
.audit-action-pill {
    color: var(--text-inverted);
    padding: 2px var(--space-sm);
    border-radius: 999px;
    font-size: 11px;
}
.audit-action-pill.is-danger { background: var(--danger); }
.audit-action-pill.is-warn { background: var(--warning); }
.audit-action-pill.is-default {
    background: var(--bg-surface-2);
    color: var(--text-primary);
}
.audit-detail-box {
    background: var(--bg-surface-2);
    padding: 4px var(--space-sm);
    border-radius: var(--space-xs);
    font-family: monospace;
    font-size: 11px;
    margin-top: var(--space-xs);
}

/* ── chat-* (chat.html — chat-conversation page) ─── */
.chat-back-row {
    display: flex; gap: var(--space-sm);
    margin-bottom: 12px;
}
.chat-card-header {
    position: sticky;
    top: 0;
    z-index: 2;
}
.chat-h2 {
    font-size: 14px;
    margin: 0;
}
.chat-messages-container {
    height: 400px;
    overflow-y: auto;
    padding: var(--space-md);
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
}
.chat-empty-pad {
    padding: 32px var(--space-md);
}
.chat-bild-link {
    display: block;
    margin-bottom: 6px;
}
.chat-bild-img {
    max-width: 200px;
    border-radius: 6px;
    display: block;
}
.chat-form {
    margin-top: var(--space-sm);
    display: flex; gap: var(--space-sm);
    align-items: flex-end;
}
.chat-attach-label {
    cursor: pointer;
    padding: 10px;
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: var(--space-sm);
    display: flex;
    align-items: center;
}
.chat-input-wrap {
    flex: 1;
    position: relative;
}
.chat-input {
    padding-right: 12px;
}
.chat-file-name {
    position: absolute;
    right: var(--space-sm);
    top: 50%;
    transform: translateY(-50%);
    font-size: 10px;
    color: var(--text-muted);
}

/* ── chat-bubble (migriert aus embedded chat.html style-block) ─── */
.chat-msg { display: flex; flex-direction: column; max-width: 75%; }
.chat-mine { align-self: flex-end; align-items: flex-end; }
.chat-other { align-self: flex-start; align-items: flex-start; }
.chat-sender { font-size: 11px; font-weight: 600; color: var(--text-muted); margin-bottom: 2px; padding: 0 var(--space-sm); }
.chat-mine .chat-sender { text-align: right; }
.chat-bubble {
    padding: 10px 14px;
    border-radius: var(--space-md);
    font-size: 14px;
    line-height: 1.5;
    position: relative;
    word-break: break-word;
    box-shadow: 0 1px 2px rgba(0,0,0,0.06), 0 2px 8px rgba(0,0,0,0.04);
    transition: box-shadow 0.18s ease, transform 0.12s ease;
}
.chat-bubble:hover {
    box-shadow: 0 2px 4px rgba(0,0,0,0.08), 0 4px 14px rgba(0,0,0,0.06);
    transform: translateY(-1px);
}
.bubble-mine {
    background: linear-gradient(135deg, var(--primary) 0%, color-mix(in srgb, var(--primary) 85%, black) 100%);
    color: var(--text-inverted);
    border-bottom-right-radius: var(--space-xs);
    box-shadow: 0 2px 6px color-mix(in srgb, var(--primary) 25%, transparent), 0 1px 2px rgba(0,0,0,0.1);
}
.bubble-other {
    background: var(--bg-surface-2);
    color: var(--text-primary);
    border: 1px solid var(--border);
    border-bottom-left-radius: var(--space-xs);
}
[data-theme="dark"] .chat-bubble {
    box-shadow: 0 1px 2px rgba(0,0,0,0.3), 0 2px 8px rgba(0,0,0,0.25);
}
[data-theme="dark"] .chat-bubble:hover {
    box-shadow: 0 2px 4px rgba(0,0,0,0.4), 0 4px 14px rgba(0,0,0,0.3);
}
.chat-time { font-size: 10px; opacity: 0.7; margin-top: var(--space-xs); text-align: right; }
.chat-text { white-space: pre-wrap; }
@media (max-width: 600px) {
    .chat-msg { max-width: 90%; }
    #chat-messages { height: 300px; }
}

/* ── nw-* (Netzwerk: index/kontakte/signal_detail/signal_form) ─── */
.nw-kpi-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}
.nw-kpi-card {
    text-decoration: none;
    color: inherit;
    padding: 14px;
    display: block;
}
.nw-kpi-card.is-active-warning { border: 2px solid var(--warning); }
.nw-kpi-card.is-active-danger {
    border: 2px solid var(--danger);
    background: color-mix(in srgb, var(--danger) 6%, transparent);
}
.nw-kpi-card.is-active-success {
    border: 2px solid var(--success);
    background: color-mix(in srgb, var(--success) 6%, transparent);
}
.nw-kpi-value {
    font-size: 26px;
    font-weight: 700;
    color: var(--primary);
}
.nw-kpi-value.is-warning { color: var(--warning); }
.nw-kpi-value.is-muted { color: var(--text-muted); }
.nw-kpi-value.is-danger { color: var(--danger); }
.nw-kpi-value.is-success { color: var(--success); }

.nw-pending-card {
    margin-bottom: var(--space-md);
    border: 1px solid var(--warning);
    background: color-mix(in srgb, var(--warning) 8%, transparent);
}
.nw-invitation-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 0;
    border-top: 1px solid var(--border-light, var(--border));
}
.nw-invitation-message {
    font-size: 12px;
    color: var(--text-secondary);
    font-style: italic;
    margin-top: var(--space-xs);
}
.nw-pending-actions-row {
    margin-top: 10px;
    text-align: right;
}

.nw-ampel-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: var(--space-sm);
}
.nw-ampel-tile {
    text-decoration: none;
    color: inherit;
    padding: 10px 12px;
    border: 1px solid var(--border);
    border-radius: 6px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.nw-ampel-tile.is-selected {
    background: color-mix(in srgb, var(--primary) 10%, transparent);
    border-color: var(--primary);
}
.nw-ampel-label {
    font-size: 13px;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.nw-ampel-counts {
    font-size: 12px;
    white-space: nowrap;
    margin-left: var(--space-sm);
}
.nw-ampel-counts .is-suche {
    color: var(--danger);
    font-weight: 700;
}
.nw-ampel-counts .is-biete {
    color: var(--success);
    font-weight: 700;
}

.nw-signal-row {
    display: flex;
    justify-content: space-between;
    align-items: start;
    padding: 10px;
    border: 1px solid var(--border-light, var(--border));
    border-radius: 6px;
    margin-bottom: 6px;
}
.nw-signal-typ {
    font-weight: 600;
}
.nw-pill-dringend {
    background: var(--danger);
    color: var(--text-inverted);
    padding: 1px 6px;
    border-radius: 3px;
    font-size: 10px;
    font-weight: 700;
    margin-left: var(--space-xs);
}
.nw-pill-dringend.is-detail {
    padding: 2px var(--space-sm);
    border-radius: 3px;
    font-size: 11px;
    margin-left: 6px;
}
.nw-pill-status-archiv {
    background: var(--text-secondary);
    color: var(--text-inverted);
    padding: 2px var(--space-sm);
    border-radius: 3px;
    font-size: 11px;
    font-weight: 700;
    margin-left: 6px;
}
.nw-pill-interesse {
    background: var(--success);
    color: var(--text-inverted);
    padding: 1px 6px;
    border-radius: 3px;
    font-size: 10px;
    font-weight: 700;
}
.nw-signal-link {
    margin-left: 6px;
    font-weight: 700;
}
.nw-signal-meta {
    font-size: 12px;
    color: var(--text-muted);
    margin-top: 3px;
}

.nw-feed-header {
    display: flex; gap: 10px;
    align-items: center;
    flex-wrap: wrap;
}
.nw-feed-actions {
    display: flex; gap: var(--space-xs);
    margin-left: auto;
}
.nw-filter-info {
    padding: 8px 12px;
    background: color-mix(in srgb, var(--primary) 10%, transparent);
    border-radius: var(--space-xs);
    margin-bottom: 12px;
    font-size: 13px;
}
.nw-filter-info-remove {
    margin-left: var(--space-sm);
}

.nw-feed-card {
    display: block;
    text-decoration: none;
    color: inherit;
    padding: 12px;
    border: 1px solid var(--border-light, var(--border));
    border-radius: 6px;
    margin-bottom: var(--space-sm);
    transition: background 0.15s;
}
.nw-feed-card:hover {
    background: var(--surface-2, var(--bg-surface-2));
}
.nw-feed-row {
    display: flex;
    justify-content: space-between;
    align-items: start;
    gap: 10px;
}
.nw-feed-top {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}
.nw-feed-typ-suche {
    font-weight: 700;
    font-size: 13px;
    color: var(--danger);
}
.nw-feed-typ-biete {
    font-weight: 700;
    font-size: 13px;
    color: var(--success);
}
.nw-feed-beschreibung {
    font-size: 12px;
    color: var(--text-secondary);
    margin-top: 6px;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.nw-feed-date {
    font-size: 11px;
    color: var(--text-muted);
    white-space: nowrap;
}

/* Block 97 — Oeffentlicher Pool-Feed (Discover-Ansicht) */
.nw-view-tabs {
    display: flex;
    gap: var(--space-xs);
    margin-bottom: var(--space-md);
    flex-wrap: wrap;
}
.nw-region-filter {
    display: flex;
    gap: var(--space-xs);
    align-items: center;
    flex-wrap: wrap;
    margin-bottom: 12px;
}
.nw-region-input {
    max-width: 130px;
    padding: 6px 10px;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--bg-surface);
    color: var(--text-primary);
    font-size: 13px;
}
.nw-region-select {
    padding: 6px 10px;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--bg-surface);
    color: var(--text-primary);
    font-size: 13px;
}
.nw-region-lbl {
    font-size: 13px;
    color: var(--text-secondary);
}
.nw-teaser-hint {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 12px;
    margin-bottom: 12px;
    font-size: 12px;
    color: var(--text-secondary);
    background: color-mix(in srgb, var(--info) 8%, transparent);
    border-radius: 6px;
}
.nw-feed-card.is-teaser {
    cursor: default;
}
.nw-feed-card.is-teaser:hover {
    background: transparent;
}
.nw-teaser-locked {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-top: 4px;
    font-size: 12px;
    color: var(--text-muted);
}

/* Block 97 Einheit B — Marktplatz-Messaging (Anfrage-Liste + Chat-Thread) */
.mkt-konv-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid var(--border-light, var(--border));
    border-radius: 6px;
    margin-bottom: var(--space-sm);
    cursor: pointer;
    transition: background 0.15s;
}
.mkt-konv-row:hover {
    background: var(--surface-2, var(--bg-surface-2));
}
.mkt-konv-snippet {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
}
.mkt-unread-badge {
    display: inline-block;
    min-width: 18px;
    padding: 0 6px;
    margin-left: 6px;
    font-size: 11px;
    font-weight: 700;
    text-align: center;
    color: var(--primary);
    background: color-mix(in srgb, var(--primary) 15%, transparent);
    border-radius: 999px;
}
.mkt-thread-context {
    margin-bottom: 12px;
}
.mkt-msg-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 8px 0 16px;
}
.mkt-msg {
    max-width: 78%;
    padding: 8px 12px;
    border-radius: 12px;
    font-size: 14px;
}
.mkt-msg-other {
    align-self: flex-start;
    background: var(--bg-surface-2);
    border: 1px solid var(--border);
    color: var(--text-primary);
}
.mkt-msg-self {
    align-self: flex-end;
    background: color-mix(in srgb, var(--primary) 14%, var(--bg-surface));
    border: 1px solid color-mix(in srgb, var(--primary) 30%, transparent);
    color: var(--text-primary);
}
.mkt-msg-body {
    white-space: pre-wrap;
    word-break: break-word;
}
.mkt-msg-time {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 4px;
}
.mkt-reply {
    display: flex;
    flex-direction: column;
    gap: 8px;
    border-top: 1px solid var(--border);
    padding-top: 12px;
}
.mkt-reply-input {
    width: 100%;
    resize: vertical;
}
.mkt-reply-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.mkt-reply-send {
    white-space: nowrap;
    margin-left: auto;
}
/* Foto-Anhang im Chat (Block 97 B3) */
.mkt-foto-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    margin: 0;
}
.mkt-foto-input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    overflow: hidden;
}
.mkt-foto-name {
    max-width: 180px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.mkt-msg-foto {
    display: block;
    margin-top: 6px;
}
.mkt-msg-foto img {
    max-width: 220px;
    max-height: 220px;
    border-radius: 8px;
    border: 1px solid var(--border);
    object-fit: cover;
}
/* "Kontakt teilen"-Button im Thread (Block 97 B3) */
.mkt-kontakt-teilen {
    margin-top: 8px;
}
.mkt-kontakt-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0;
    background: none;
    border: none;
    font-size: 13px;
    color: var(--primary);
    cursor: pointer;
}
.mkt-kontakt-btn:hover {
    text-decoration: underline;
}

/* netzwerk_kontakte */
.nw-info-card {
    margin-bottom: var(--space-md);
    background: color-mix(in srgb, var(--primary) 6%, transparent);
    border: 1px solid color-mix(in srgb, var(--primary) 25%, transparent);
}
.nw-info-row {
    display: flex; gap: 12px;
    align-items: flex-start;
}
.nw-info-icon {
    font-size: 22px;
    line-height: 1;
}
.nw-info-h3 {
    margin: 0 0 6px;
    font-size: 14px;
    color: var(--primary);
}
.nw-info-text {
    margin: 0 0 var(--space-sm);
    font-size: 13px;
    line-height: 1.5;
    color: var(--text-primary);
}
.nw-info-detail {
    font-size: 12px;
    line-height: 1.6;
    color: var(--text-secondary);
}
.nw-incoming-card {
    margin-bottom: var(--space-md);
    border: 1px solid var(--warning);
}
.nw-incoming-h2 {
    margin: 0;
    font-size: 15px;
    color: var(--warning);
}
.nw-incoming-row {
    padding: 12px;
    border: 1px solid var(--border-light, var(--border));
    border-radius: 6px;
    margin-bottom: var(--space-sm);
}
.nw-incoming-flex {
    display: flex;
    justify-content: space-between;
    align-items: start;
    gap: 12px;
}
.nw-incoming-name {
    font-weight: 700;
    font-size: 15px;
}
.nw-incoming-from {
    font-size: 12px;
    color: var(--text-muted);
    margin-top: 3px;
}
.nw-incoming-quote {
    margin: 8px 0 0;
    padding: 8px 12px;
    border-left: 3px solid var(--primary);
    background: var(--surface-2, var(--bg-surface-2));
    font-style: italic;
    font-size: 13px;
}
.nw-incoming-actions {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

/* netzwerk_signal_detail */
.nw-signal-card-suche {
    margin-bottom: var(--space-md);
    border-left: 4pt solid var(--danger);
}
.nw-signal-card-biete {
    margin-bottom: var(--space-md);
    border-left: 4pt solid var(--success);
}
.nw-signal-header-flex {
    display: flex;
    justify-content: space-between;
    align-items: start;
}
.nw-signal-typ-suche-text {
    font-weight: 700;
    font-size: 14px;
    color: var(--danger);
}
.nw-signal-typ-biete-text {
    font-weight: 700;
    font-size: 14px;
    color: var(--success);
}
.nw-signal-h2 {
    margin: 6px 0 0;
}
.nw-signal-meta-right {
    font-size: 12px;
    color: var(--text-muted);
    text-align: right;
}
.nw-signal-meta-table {
    width: 100%;
    margin-top: 12px;
}
.nw-signal-meta-td-label {
    padding: 6px 0;
    color: var(--text-muted);
    width: 130px;
    font-size: 13px;
}
.nw-signal-meta-td-val {
    padding: 6px 0;
    font-weight: 600;
}
.nw-signal-desc-box {
    margin-top: 14px;
    padding: 12px;
    background: var(--surface-2, var(--bg-surface-2));
    border-radius: 6px;
}
.nw-signal-desc-label {
    font-size: 11px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 6px;
}
.nw-signal-desc-text {
    white-space: pre-wrap;
    font-size: 13px;
}
.nw-interest-card {
    padding: 12px;
    border: 1px solid var(--border-light, var(--border));
    border-radius: 6px;
    margin-bottom: var(--space-sm);
}
.nw-interest-flex {
    display: flex;
    justify-content: space-between;
    align-items: start;
}
.nw-interest-contact-row {
    font-size: 13px;
    margin-top: 6px;
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}
.nw-interest-empty {
    text-align: center;
    padding: 20px;
    color: var(--text-muted);
    font-size: 13px;
}

/* netzwerk_signal_form */
.nw-form-label-bold {
    font-weight: 600;
    font-size: 14px;
}
.nw-typ-row {
    display: flex; gap: var(--space-sm);
    margin-top: 6px;
}
.nw-typ-card {
    flex: 1;
    padding: 14px;
    border: 2px solid var(--border);
    border-radius: 6px;
    cursor: pointer;
    background: transparent;
    transition: border-color 0.15s, background 0.15s;
}
.nw-typ-card.is-suche-active {
    border-color: var(--danger);
    background: color-mix(in srgb, var(--danger) 8%, transparent);
}
.nw-typ-card.is-biete-active {
    border-color: var(--success);
    background: color-mix(in srgb, var(--success) 8%, transparent);
}
.nw-typ-radio-spacer {
    margin-right: 6px;
}
.nw-form-hint-inline {
    color: var(--text-muted);
    font-weight: 400;
    font-size: 12px;
}
.nw-fieldset {
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 12px var(--space-md);
    margin-bottom: var(--space-md);
}
.nw-fieldset-legend {
    font-size: 12px;
    color: var(--text-muted);
    padding: 0 6px;
}
.nw-plz-group {
    max-width: 160px;
}
.nw-form-hint-mt {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 3px;
}
.nw-form-actions {
    display: flex; gap: var(--space-sm);
    justify-content: flex-end;
    margin-top: 20px;
}

/* ── Onboarding-Wizard (migriert aus onboarding_wizard embedded block) ─── */
.wiz-wrap { max-width: 820px; margin: 0 auto; }
.wiz-progress { display: flex; gap: var(--space-xs); margin-bottom: var(--space-lg); }
.wiz-dot { flex: 1; height: 6px; border-radius: 3px; background: var(--border); transition: background .3s; }
.wiz-dot.done { background: var(--primary); }
.wiz-dot.active { background: var(--primary); box-shadow: 0 0 6px var(--primary); }
.wiz-step { display: none; animation: wizFade .3s ease; }
.wiz-step.active { display: block; }
@keyframes wizFade { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.wiz-card { background: var(--bg-surface); border: 1px solid var(--border); border-radius: 12px; padding: 28px; margin-bottom: var(--space-md); }
.wiz-title { font-size: 22px; font-weight: 700; margin-bottom: 12px; color: var(--text-primary); }
.wiz-title.is-flex { display: inline-flex; align-items: center; gap: 10px; }
.wiz-subtitle { font-size: 14px; color: var(--text-muted); margin-bottom: 20px; line-height: 1.5; }
.wiz-flow { display: flex; align-items: center; gap: var(--space-sm); flex-wrap: wrap; margin: 20px 0; justify-content: center; }
.wiz-flow.is-spaced { margin: 16px 0; }
.wiz-flow-step { background: var(--bg-surface-2); border: 1px solid var(--border); border-radius: var(--space-sm); padding: 10px var(--space-md); font-size: 13px; font-weight: 600; text-align: center; min-width: 110px; }
.wiz-flow-arrow { color: var(--primary); font-size: 20px; font-weight: 700; }
.wiz-feature { display: flex; gap: 12px; align-items: flex-start; padding: 12px 0; border-bottom: 1px solid var(--border-subtle, var(--border)); }
.wiz-feature:last-child { border-bottom: none; }
.wiz-feature-icon { font-size: var(--space-lg); flex-shrink: 0; width: 40px; text-align: center; }
.wiz-feature-icon.is-large { font-size: 28px; }
.wiz-feature-text h4 { font-size: 14px; font-weight: 700; margin: 0 0 var(--space-xs); color: var(--text-primary); }
.wiz-feature-text p { font-size: 13px; color: var(--text-muted); margin: 0; line-height: 1.4; }
.wiz-feature-text a { color: var(--primary); }
.wiz-feature-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; margin: 12px 0; }
.wiz-feature-mini { padding: 12px; border: 1px solid var(--border); border-radius: var(--space-sm); background: var(--bg-surface-2); }
.wiz-feature-mini h4 { font-size: 13px; font-weight: 700; margin: 0 0 var(--space-xs); color: var(--text-primary); }
.wiz-feature-mini p { font-size: 12px; color: var(--text-muted); margin: 0; line-height: 1.4; }
.wiz-role { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin: 16px 0; }
.wiz-role-card { padding: 14px 10px; border-radius: var(--space-sm); border: 1px solid var(--border); text-align: center; background: var(--bg-surface); }
.wiz-role-card.is-active {
    border-color: var(--primary);
    background: color-mix(in srgb, var(--primary) 7%, transparent);
}
.wiz-role-card h4 { font-size: 13px; margin: 6px 0 3px; color: var(--text-primary); }
.wiz-role-card p { font-size: 11px; color: var(--text-muted); margin: 0; line-height: 1.3; }
.wiz-note { background: var(--bg-surface-2); border-radius: var(--space-sm); padding: 12px 14px; margin-top: 14px; font-size: 13px; line-height: 1.5; }
.wiz-note-green { background: color-mix(in srgb, var(--success) 10%, transparent); border-left: 4px solid var(--success); }
.wiz-note-info { background: var(--info-bg, color-mix(in srgb, var(--info) 8%, var(--bg-surface))); border-left: 4px solid var(--info); }
.wiz-note.is-detached {
    margin-top: var(--space-lg);
    max-width: 540px;
    margin-left: auto;
    margin-right: auto;
    text-align: left;
}
.wiz-actions { display: flex; gap: 12px; justify-content: space-between; margin-top: 20px; align-items: center; }
.wiz-actions.is-centered {
    justify-content: center;
    margin-top: 28px;
}
.wiz-btn-next {
    background: var(--primary);
    color: var(--text-inverted);
    border: none;
    padding: 12px var(--space-xl);
    border-radius: var(--space-sm);
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    transition: all .15s;
}
.wiz-btn-next:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0,0,0,.15);
}
.wiz-btn-next.is-large {
    font-size: 17px;
    padding: 14px 40px;
}
.wiz-btn-back {
    background: none;
    border: 1px solid var(--border);
    padding: 12px var(--space-lg);
    border-radius: var(--space-sm);
    font-size: 14px;
    cursor: pointer;
    color: var(--text-muted);
}
.wiz-dot-label { font-size: 10px; color: var(--text-muted); text-align: center; margin-top: var(--space-xs); }
.wiz-step-counter { font-size: 11px; color: var(--text-muted); text-align: right; margin-bottom: 6px; }

.wiz-rocket-icon {
    color: var(--primary);
    margin-bottom: var(--space-md);
}
.wiz-icon-28 {
    font-size: 28px;
}
.wiz-subtitle.is-narrow {
    max-width: 600px;
    margin: 0 auto var(--space-lg);
}
.wiz-steps-list {
    text-align: left;
    max-width: 540px;
    margin: 0 auto;
}
.wiz-help-badge {
    display: inline-flex;
    width: 20px;
    height: 20px;
    font-size: 12px;
    vertical-align: middle;
    margin: 0 2px;
}
.wiz-back-row {
    color: var(--text-muted);
    font-size: 12px;
    margin-left: 12px;
}

@media (max-width: 768px) {
    .wiz-role { grid-template-columns: repeat(2, 1fr); }
    .wiz-flow { flex-direction: column; }
    .wiz-flow-arrow { transform: rotate(90deg); }
}
@media (max-width: 480px) {
    .wiz-role { grid-template-columns: 1fr; }
}

/* ── Sidebar-Nav (migriert aus sidebar_nav embedded block) ─── */
.sidebar-nav .sb-group.sb-group-rare > summary { opacity: 0.82; }
.sidebar-nav .sb-group.sb-group-rare > summary:hover,
.sidebar-nav .sb-group.sb-group-rare[open] > summary { opacity: 1; }

.sidebar-nav .sb-divider-bottom {
    height: 1px;
    background: var(--bg-sidebar-border, rgba(0,0,0,0.08));
    margin: 12px 12px var(--space-sm);
}

.sidebar-nav .sb-sub .sb-lock-badge {
    margin-left: auto;
    font-size: 10px;
    font-weight: 600;
    color: var(--text-muted);
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 2px 6px;
    background: var(--bg-sidebar-hover, rgba(0,0,0,0.05));
    border-radius: 3px;
}
.sidebar-nav .sb-sub .sb-lock-badge svg {
    width: 10px;
    height: 10px;
}

.sidebar-nav .ki-badge.ki-badge-inline {
    margin-left: auto;
    font-size: 9px;
    font-weight: 700;
    padding: 1px 5px;
    letter-spacing: 0.5px;
}

.sidebar-nav .sb-item.sb-herzstueck {
    background: linear-gradient(90deg,
        color-mix(in srgb, var(--gold-accent) 10%, transparent),
        transparent 70%);
    border-left: 3px solid var(--gold-accent);
    font-weight: 600;
    position: relative;
}
.sidebar-nav .sb-item.sb-herzstueck:hover {
    background: linear-gradient(90deg,
        color-mix(in srgb, var(--gold-accent) 18%, transparent),
        transparent 80%);
}
.sidebar-nav .sb-item.sb-herzstueck.active {
    background: linear-gradient(90deg,
        color-mix(in srgb, var(--gold-accent) 22%, transparent),
        color-mix(in srgb, var(--primary) 8%, transparent) 80%);
}
.sidebar-nav .sb-item.sb-herzstueck .sb-icon {
    color: var(--gold-accent-dim);
}
.sidebar-nav .sb-herzstueck-badge {
    margin-left: auto;
    font-size: 9px;
    font-weight: 800;
    padding: 2px 7px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    color: var(--text-inverted);
    background: linear-gradient(135deg, var(--gold-accent), var(--gold-accent-dim));
    border-radius: 100px;
    box-shadow: 0 1px 3px color-mix(in srgb, var(--gold-accent-dim) 30%, transparent);
}

/* Figma-1:1 Step-Nummern (2/3/4/5) als 14x14 Cream-Kreis vor Workflow-Items */
.sidebar-nav .sb-step-num {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: #FAF5F0;
    color: #805A33;
    font-size: 9px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    line-height: 1;
    margin-right: 8px;
    transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.sidebar-nav .sb-workflow-step:hover .sb-step-num { transform: scale(1.1); }
.sidebar-nav .sb-workflow-step.active .sb-step-num {
    background: #F39C12;
    color: #FFFFFF;
    box-shadow: 0 0 6px rgba(243, 156, 18, 0.5);
}
[data-theme="dark"] .sidebar-nav .sb-step-num { background: rgba(245, 158, 18, 0.15); color: #F8B233; }
[data-theme="dark"] .sidebar-nav .sb-workflow-step.active .sb-step-num { background: #F8B233; color: #1A1A2E; }
@media (max-width: 768px) {
    .sidebar-collapsed .sb-step-num { display: none; }
}

/* Avatar im Header (Figma — 32x32 Kreis mit Initial) */
.bk-admin-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: linear-gradient(135deg, #294A8C 0%, #3E5F88 100%);
    color: #FFFFFF;
    font-size: 13px;
    font-weight: 700;
    font-family: 'Inter', system-ui, sans-serif;
    text-decoration: none !important;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    box-shadow: 0 2px 4px rgba(41, 74, 140, 0.20);
}
.bk-admin-avatar:hover { transform: translateY(-1px); box-shadow: 0 4px 8px rgba(41, 74, 140, 0.30); text-decoration: none !important; }
[data-theme="dark"] .bk-admin-avatar { background: linear-gradient(135deg, #5B82AE 0%, #6B9EDB 100%); }

/* Sidebar Beginner-Mode tier visibility */
.sidebar.sb-mode-beginner .sb-tier-3,
.sidebar.sb-mode-beginner .sb-tier-4,
.sidebar.sb-mode-beginner .sb-tier-done { display: none !important; }
.sidebar.sb-mode-beginner.sb-phase-3 .sb-tier-3,
.sidebar.sb-mode-beginner.sb-phase-4 .sb-tier-3 { display: flex !important; }
.sidebar.sb-mode-beginner.sb-phase-3 .sb-category-header.sb-tier-3,
.sidebar.sb-mode-beginner.sb-phase-4 .sb-category-header.sb-tier-3 { display: block !important; }
.sidebar.sb-mode-beginner.sb-phase-4 .sb-tier-4 { display: flex !important; }
.sidebar.sb-mode-beginner.sb-phase-4 .sb-category-header.sb-tier-4 { display: block !important; }
.sidebar.sb-mode-beginner.sb-phase-4 details.sb-tier-4 { display: block !important; }
.sidebar.sb-mode-beginner.sb-phase-3 details.sb-tier-3,
.sidebar.sb-mode-beginner.sb-phase-4 details.sb-tier-3 { display: block !important; }

/* Block 55 (2026-05-07): sb-tier-experienced — neue vereinfachte Klasse fuer
   Sektionen die nur im Experienced-Modus sichtbar sein sollen. Ersetzt nach
   und nach das alte tier-3/tier-4/tier-done-System. Im Anfaenger-Modus
   versteckt (BAUSTELLE, FINANZEN, NETZWERK, VERWALTUNG) — keine sb-phase-*
   Override mehr noetig (Anfaenger sieht NIE diese Sektionen). */
.sidebar.sb-mode-beginner .sb-tier-experienced { display: none !important; }
.sidebar.sb-mode-beginner .sb-category-header.sb-tier-experienced { display: none !important; }
.sidebar.sb-mode-beginner details.sb-tier-experienced { display: none !important; }

/* Block 55e (2026-05-07): Toggle-Wrap als deutlicher Trenner mit Booklera-Primary
   Vorher: dezenter dashed Border, Button transparent. Wirkte wie ein vergessener
   Hilfstext, nicht wie ein interaktiver Trenner.
   Jetzt: Container-Block mit Primary-Top+Bottom-Border, Button mit Primary-
   Background-Tönung + Primary-Border. Visuell klar als „hier endet der
   Kompakt-Modus" erkennbar. */
.sidebar-nav .sb-mode-toggle-wrap {
    margin: 14px 12px;
    padding: 12px 8px;
    background: color-mix(in srgb, var(--primary) 6%, var(--bg-sidebar));
    border-top: 2px solid color-mix(in srgb, var(--primary) 60%, transparent);
    border-bottom: 2px solid color-mix(in srgb, var(--primary) 60%, transparent);
    border-radius: 8px;
}
.sidebar-nav .sb-mode-toggle {
    display: none;
    align-items: center;
    gap: 6px;
    width: 100%;
    padding: 8px 12px;
    /* Block 55f+g+h (2026-05-07): warmer Warning-Akzent innen (HERZSTÜCK-Gelb).
       Wrap-Container bleibt Primary-blau, Button innen gelblich.
       BUG-FIX: var(--bg-card) war NIE definiert in :root → color-mix wurde mit
       invalid value berechnet, daher kein sichtbares Gelb. Korrekte Variable
       ist var(--bg-surface) (Cards/Panels). Tönung 60% = klar erkennbar. */
    background: color-mix(in srgb, var(--warning) 60%, var(--bg-surface));
    border: 1px solid color-mix(in srgb, var(--primary) 50%, transparent);
    border-radius: 6px;
    color: var(--primary);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s ease;
    text-align: left;
}
.sidebar-nav .sb-mode-toggle:hover {
    background: var(--primary);
    color: var(--text-on-accent);
    border-color: var(--primary);
    transform: translateY(-1px);
    box-shadow: 0 2px 6px color-mix(in srgb, var(--primary) 30%, transparent);
}

/* Block 55i (2026-05-07): Dark-Mode-Override — Schrift heller damit Kontrast
   auf gelb-orangem Hintergrund stimmt. Light-Mode bleibt mit Primary-Text
   (gutes Kontrast-Verhaeltnis auf hellgelb). */
[data-theme="dark"] .sidebar-nav .sb-mode-toggle {
    color: var(--text-on-accent);
}
.sidebar-nav .sb-mode-toggle .sb-icon { flex-shrink: 0; opacity: 1; }
.sidebar-nav .sb-mode-toggle .sb-label { flex: 1; line-height: 1.2; }
.sidebar.sb-mode-beginner .sb-mode-toggle-show-all { display: flex; }
.sidebar.sb-mode-experienced .sb-mode-toggle-back { display: flex; }

/* ── ki-chat-* (migriert aus chat_widget embedded) ─── */
.ki-chat-toggle {
    position: fixed;
    bottom: var(--space-lg); right: var(--space-lg);
    width: 56px; height: 56px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--primary), color-mix(in srgb, var(--primary) 60%, white));
    border: none;
    cursor: pointer;
    box-shadow: 0 4px 16px color-mix(in srgb, var(--primary) 45%, transparent);
    z-index: 900;
    display: flex; align-items: center; justify-content: center;
    transition: transform .2s, box-shadow .2s;
    color: var(--text-inverted);
    font-size: var(--space-lg);
}
.ki-chat-toggle:hover { transform: scale(1.08); }
.ki-chat {
    position: fixed;
    bottom: 92px; right: var(--space-lg);
    width: 380px;
    max-width: calc(100vw - 48px);
    height: 520px;
    max-height: calc(100vh - 120px);
    background: var(--bg-surface);
    border-radius: var(--space-md);
    box-shadow: 0 8px 40px rgba(0,0,0,.18);
    z-index: 901;
    display: none;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--border);
}
.ki-chat.open { display: flex; }
.ki-chat-header {
    padding: 14px var(--space-md);
    background: linear-gradient(135deg, var(--primary), color-mix(in srgb, var(--primary) 60%, white));
    color: var(--text-inverted);
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.ki-chat-title { font-size: 15px; font-weight: 600; }
.ki-chat-close {
    background: none;
    border: none;
    color: var(--text-inverted);
    font-size: 22px;
    cursor: pointer;
    opacity: .7;
}
.ki-chat-close:hover { opacity: 1; }
.ki-chat-quota {
    padding: 8px var(--space-md);
    background: var(--bg-base, var(--bg-surface));
    border-bottom: 1px solid var(--border);
    font-size: 11px;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.ki-chat-quota-bar {
    flex: 1;
    height: var(--space-xs);
    background: var(--border);
    border-radius: 2px;
    margin: 0 10px;
    overflow: hidden;
}
.ki-chat-quota-fill {
    height: 100%;
    background: var(--primary);
    transition: width .3s;
}
.ki-chat-quota-fill.warn { background: var(--warning); }
.ki-chat-quota-fill.full { background: var(--danger); }
.ki-chat-quota.hidden { display: none; }
.ki-chat-messages {
    flex: 1;
    overflow-y: auto;
    padding: var(--space-md);
    display: flex;
    flex-direction: column;
    gap: 10px;
    background: var(--bg-surface-2);
}
.ki-chat-msg {
    max-width: 85%;
    padding: 10px 14px;
    border-radius: 12px;
    font-size: 13px;
    line-height: 1.5;
    word-wrap: break-word;
}
.ki-chat-msg.bot {
    background: var(--bg-surface);
    color: var(--text-primary);
    align-self: flex-start;
    border: 1px solid var(--border);
    border-bottom-left-radius: var(--space-xs);
}
.ki-chat-msg.user {
    background: var(--primary);
    color: var(--text-inverted);
    align-self: flex-end;
    border-bottom-right-radius: var(--space-xs);
}
.ki-chat-msg.typing {
    padding: 6px 10px;
    background: transparent;
    border: none;
    align-self: flex-start;
}
.ki-chat-msg.lock {
    background: color-mix(in srgb, var(--warning) 12%, var(--bg-surface));
    border: 1px solid color-mix(in srgb, var(--warning) 40%, var(--border));
    color: var(--gold-accent-dim);
    align-self: stretch;
    max-width: 100%;
    text-align: center;
}
.ki-chat-msg.lock a {
    color: var(--primary);
    font-weight: 600;
    text-decoration: none;
    display: inline-block;
    margin-top: 6px;
}
.ki-chat-msg.lock a:hover { text-decoration: underline; }
.ki-chat-input-area {
    display: flex;
    gap: var(--space-sm);
    padding: 12px 14px;
    border-top: 1px solid var(--border);
    background: var(--bg-surface);
}
.ki-chat-input-area input {
    flex: 1;
    border: 1px solid var(--border);
    border-radius: 20px;
    padding: 8px 14px;
    font-size: 13px;
    font-family: inherit;
    outline: none;
}
.ki-chat-input-area input:focus { border-color: var(--primary); }
.ki-chat-input-area button {
    background: var(--primary);
    color: var(--text-inverted);
    border: none;
    border-radius: 50%;
    width: 36px;
    height: 36px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--space-md);
}
.ki-chat-input-area button:disabled { opacity: .5; cursor: not-allowed; }

/* ── ac-* (Aufmaß-Center, migriert aus aufmass_center embedded) ─── */
.ac-tabs {
    display: flex;
    gap: 0;
    border-bottom: 2px solid var(--border);
    margin-bottom: var(--space-md);
}
.ac-tab {
    padding: 10px 18px;
    cursor: pointer;
    font-weight: 600;
    font-size: 14px;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    color: var(--text-muted);
    transition: all .15s;
}
.ac-tab:hover { color: var(--text-primary); }
.ac-tab.active {
    color: var(--primary);
    border-bottom-color: var(--primary);
}
.ac-panel { display: none; }
.ac-panel.active { display: block; }
.ac-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: var(--space-md);
}
.ac-grid-3 {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 12px;
    margin-bottom: var(--space-md);
}
.ac-result {
    padding: var(--space-md);
    background: var(--bg-surface-alt, var(--bg-surface-2));
    border-radius: var(--space-sm);
    margin-top: var(--space-md);
    border: 1px solid var(--border);
}
.ac-result-value { font-size: 28px; font-weight: 700; color: var(--primary); }
.ac-result-value.is-warning { color: var(--warning); }
.ac-result-value.is-info-mat { color: var(--primary); font-weight: 600; }
.ac-result-label { font-size: 12px; color: var(--text-muted); margin-bottom: var(--space-xs); }
.ac-result-label.is-emphasized { color: var(--primary); font-weight: 600; }
.ac-result-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 6px 0;
    border-bottom: 1px solid var(--border-subtle, var(--border));
}
.ac-result-row:last-child { border-bottom: none; }
.ac-shape-picker {
    display: flex;
    gap: var(--space-sm);
    flex-wrap: wrap;
    margin-bottom: var(--space-md);
}
.ac-shape {
    padding: 8px var(--space-md);
    border: 2px solid var(--border);
    border-radius: var(--space-sm);
    cursor: pointer;
    font-size: 13px;
    font-weight: 600;
    transition: all .15s;
    background: var(--bg-surface);
}
.ac-shape:hover { border-color: var(--primary); color: var(--primary); }
.ac-shape.active {
    border-color: var(--primary);
    background: var(--primary);
    color: var(--text-inverted);
}
.ac-hint { font-size: 12px; color: var(--text-muted); margin-top: var(--space-xs); }
.ac-hint.is-spaced { margin-top: 28px; }
.ac-formel {
    font-family: monospace;
    font-size: 12px;
    color: var(--text-muted);
    padding: 6px 10px;
    background: var(--bg-surface);
    border-radius: var(--space-xs);
    display: inline-block;
    margin-bottom: 12px;
}
.ac-sammlung { margin-top: var(--space-lg); }
.ac-sammlung-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 12px;
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: 6px;
    margin-bottom: 6px;
}
.ac-sammlung-item:hover { background: var(--bg-surface-alt, var(--bg-surface-2)); }
.ac-sum-bar {
    padding: 12px var(--space-md);
    background: var(--primary);
    color: var(--text-inverted);
    border-radius: var(--space-sm);
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-weight: 700;
    font-size: var(--space-md);
    margin-top: var(--space-sm);
}
@media (max-width: 768px) {
    .ac-grid, .ac-grid-3 { grid-template-columns: 1fr; }
    .ac-tabs { overflow-x: auto; }
    .ac-tab { white-space: nowrap; font-size: 13px; padding: 8px 12px; }
}

/* ── ac-* Additional inline-styles refactored ─── */
.ac-details-wrap {
    margin-top: 12px;
    margin-bottom: var(--space-sm);
}
.ac-details-summary {
    cursor: pointer;
    font-size: 13px;
    font-weight: 600;
    color: var(--primary);
}
.ac-details-pad {
    padding: 12px 0;
}
.ac-form-label-bold {
    font-size: 13px;
    font-weight: 600;
}
.ac-grid-3-center {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: var(--space-md);
    text-align: center;
}
.ac-result-center {
    text-align: center;
    margin-top: 12px;
}
.ac-grid-2-center {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-md);
    text-align: center;
}
.ac-mat-gesamt-card {
    border-left: 2px solid var(--primary);
    padding-left: var(--space-md);
}
.ac-info-row {
    margin-top: 12px;
    font-size: 12px;
    color: var(--text-muted);
    text-align: center;
}
.ac-save-row {
    padding: var(--space-md);
    border-top: 1px solid var(--border);
    display: flex;
    gap: var(--space-sm);
    flex-wrap: wrap;
    align-items: center;
}
.ac-save-form {
    display: flex;
    gap: var(--space-sm);
    flex-wrap: wrap;
    flex: 1;
}
.ac-save-select {
    max-width: 280px;
}
.ac-oeff-input {
    display: inline-block;
    width: calc(100% - 30px);
}
.ac-oeff-remove-btn {
    width: 26px;
    height: 26px;
    border: none;
    background: var(--danger);
    color: var(--text-inverted);
    border-radius: var(--space-xs);
    cursor: pointer;
    font-size: 14px;
    margin-left: var(--space-xs);
    vertical-align: top;
}
.ac-sammlung-remove-btn {
    border: none;
    background: none;
    color: var(--danger);
    cursor: pointer;
    font-size: 18px;
}

/* ── aufm-detail mobile (migriert aus aufmass_detail embedded) ─── */
@media (max-width: 768px) {
    .hw-detail-grid { grid-template-columns: 1fr !important; }
}

/* ── aufm-back-row (aufmass_detail Z.24) ─── */
.aufm-back-row {
    display: flex; gap: var(--space-sm);
    margin-bottom: var(--space-md);
}

/* ── aufm-foto-* (aufmass_foto.html, 30 inline-styles) ─── */
.aufm-foto-manuell-badge {
    font-size: 11px;
    padding: 2px 7px;
    background: var(--bg-surface-2);
    color: var(--text-secondary);
    border-radius: 10px;
    font-weight: 600;
    vertical-align: middle;
    margin-left: 6px;
}
.aufm-foto-drop {
    border: 2px dashed var(--border);
    border-radius: var(--space-sm);
    padding: var(--space-xl);
    text-align: center;
    cursor: pointer;
    transition: all .15s;
    background: var(--bg-surface);
}
.aufm-foto-preview {
    display: none;
    margin-bottom: 12px;
}
.aufm-foto-preview-img {
    max-width: 100%;
    max-height: 300px;
    border-radius: 6px;
    box-shadow: 0 2px 8px rgba(0,0,0,.15);
}
.aufm-foto-icon-large {
    font-size: var(--space-xl);
    margin-bottom: var(--space-sm);
}
.aufm-foto-grid-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
.aufm-foto-grid-3 {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 12px;
}
.aufm-foto-section-card {
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: var(--space-sm);
    padding: var(--space-md);
    margin-bottom: var(--space-md);
}
.aufm-foto-section-h3 {
    font-size: 14px;
    margin-bottom: 12px;
}
.aufm-foto-section-h3.is-flex {
    margin: 0;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.aufm-foto-section-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}
.aufm-foto-oeff-empty {
    color: var(--text-muted);
    font-size: 13px;
    text-align: center;
    padding: var(--space-sm);
}
.aufm-foto-live-result {
    display: none;
    background: linear-gradient(135deg, var(--primary), color-mix(in srgb, var(--primary) 60%, black));
    color: var(--text-inverted);
    border-radius: var(--space-sm);
    padding: var(--space-md);
    margin-bottom: var(--space-md);
}
.aufm-foto-live-result.is-shown { display: block; }
.aufm-foto-live-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: 12px;
    text-align: center;
}
.aufm-foto-live-label {
    font-size: 11px;
    opacity: .8;
}
.aufm-foto-live-value {
    font-size: 22px;
    font-weight: 700;
}
.aufm-foto-live-unit {
    font-size: 11px;
    opacity: .7;
}

/* ── aufm-neu-* (additional, JS-string Z.1-Pattern bleibt) ─── */
.aufm-neu-result-pad {
    padding: var(--space-md);
    border-bottom: 1px solid var(--border-subtle, var(--border));
}
.aufm-neu-result-h3 {
    margin: 0 0 var(--space-sm);
    font-size: var(--space-md);
}
.aufm-neu-result-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: var(--space-sm);
    font-size: 13px;
}
.aufm-neu-result-meta {
    margin-top: var(--space-sm);
    font-size: 12px;
    color: var(--text-muted);
}


/* ════════════════════════════════════════════════════════════════
   ITER 14 E.7 — Dashboard + Finanzen + Mitarbeiter + Abwesenheit + Team
   ════════════════════════════════════════════════════════════════ */

/* ── Avatar-Color-Slots (cross-file: team.html, dashboard.html, abwesenheit, später kunden/*) ─── */
:root {
    --avatar-color-1: var(--primary);
    --avatar-color-2: #6FA89A;          /* mint */
    --avatar-color-3: var(--warning);
    --avatar-color-4: #C47A5A;          /* terra */
    --avatar-color-5: #8A7BA3;          /* lavendel */
    --avatar-color-6: #7AA6A0;          /* sage */
}

/* ── kpi-card.is-warning Modifier (NEU für Dashboard Conditional) ─── */
.kpi-card.is-warning,
.kpi-wrap.is-warning > .kpi-card {
    background: var(--warning-bg);
    border: 1px solid var(--warning);
}
.kpi-card.is-warning .kpi-value,
.kpi-wrap.is-warning .kpi-value { color: var(--warning); }
.kpi-card.is-danger,
.kpi-wrap.is-danger > .kpi-card {
    background: color-mix(in srgb, var(--danger) 12%, transparent);
    border: 1px solid var(--danger);
}
.kpi-card.is-danger .kpi-value,
.kpi-wrap.is-danger .kpi-value { color: var(--danger); }

/* ── dashboard-* (Welcome-Tip, Quick-Access, Checklist — NEU) ─── */
.dashboard-deploy-actions {
    margin-top: 14px;
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-sm);
    align-items: center;
}
.dashboard-deploy-btn-success {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px var(--space-md);
    border-radius: var(--space-sm);
    background: var(--success);
    color: var(--text-inverted);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    box-shadow: 0 3px 10px color-mix(in srgb, var(--success) 30%, transparent);
}
.dashboard-deploy-btn-secondary {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 14px;
    border-radius: var(--space-sm);
    background: transparent;
    color: var(--text-secondary);
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    border: 1.5px solid var(--border);
    cursor: pointer;
    font-family: inherit;
    transition: all 0.15s;
}

.dashboard-welcome-tip {
    background: linear-gradient(135deg, var(--info-bg) 0%, var(--bg-surface) 100%);
    border-left: 4px solid var(--info);
    padding: 20px var(--space-lg);
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: var(--space-md);
    flex-wrap: wrap;
}
.dashboard-welcome-tip-icon {
    width: var(--space-2xl);
    height: var(--space-2xl);
    border-radius: 10px;
    background: color-mix(in srgb, var(--info) 18%, transparent);
    color: var(--info);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.dashboard-welcome-tip-body {
    flex: 1;
    min-width: 240px;
}
.dashboard-welcome-tip h3 {
    margin: 0 0 6px 0;
    font-size: 17px;
}
.dashboard-welcome-tip p {
    margin: 0 0 12px 0;
    color: var(--text-secondary);
    font-size: 13px;
    line-height: 1.55;
}
.dashboard-welcome-tip-features {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 12px;
    margin-top: var(--space-sm);
}
.dashboard-welcome-tip-feature {
    display: flex;
    gap: 10px;
    align-items: flex-start;
}
.dashboard-welcome-tip-feature-icon {
    flex-shrink: 0;
    color: var(--primary);
    display: inline-flex;
}
.dashboard-welcome-tip-feature-icon.is-warning { color: var(--warning); }
.dashboard-welcome-tip-feature-icon.is-danger { color: var(--danger); }
.dashboard-welcome-tip-feature strong {
    font-size: 13px;
    display: block;
    margin-bottom: 2px;
}
.dashboard-welcome-tip-code {
    background: var(--bg-surface-2);
    padding: 1px 5px;
    border-radius: 3px;
}
.dashboard-welcome-tip-warn-row {
    display: inline-flex;
    align-items: flex-start;
    gap: var(--space-xs);
}
.dashboard-welcome-tip-warn-row .icon-warn {
    color: var(--warning);
    flex-shrink: 0;
    display: inline-flex;
    margin-top: 1px;
}
.dashboard-welcome-tip-actions {
    margin-top: 14px;
    display: flex;
    gap: var(--space-sm);
    flex-wrap: wrap;
    justify-content: flex-end;
}

/* dashboard-quickaccess (Schnellzugriff) */
.dashboard-ql-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-sm);
    padding: 4px 0;
}
.dashboard-ql-link {
    text-decoration: none;
    text-align: center;
    padding: 10px 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}
.dashboard-ql-edit {
    display: none;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
}
.dashboard-ql-edit.is-shown { display: block; }
.dashboard-ql-edit-help {
    font-size: 12px;
    color: var(--text-muted);
    margin: 0 0 var(--space-sm);
}
.dashboard-ql-checkbox-row {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 4px 0;
    font-size: 13px;
    cursor: pointer;
}
.dashboard-ql-edit-toggle {
    display: inline-flex;
    align-items: center;
}

/* dashboard-checklist (Onboarding-Checklist) */
.dashboard-checklist-counter {
    font-size: 13px;
    color: var(--primary);
    font-weight: 600;
}
.dashboard-checklist-counter.is-done { color: var(--success); }
.dashboard-checklist-progress-track {
    height: 6px;
    background: var(--border);
    border-radius: 3px;
    margin-bottom: 12px;
    overflow: hidden;
}
.dashboard-checklist-progress-fill {
    height: 100%;
    background: var(--primary);
    border-radius: 3px;
    transition: width .3s;
}
.dashboard-checklist-progress-fill.is-done { background: var(--success); }
.dashboard-checklist-row {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    padding: 6px 0;
    font-size: 14px;
}
.dashboard-checklist-row-icon {
    color: var(--text-muted);
    display: inline-flex;
}
.dashboard-checklist-link {
    color: var(--primary);
    text-decoration: none;
}
.dashboard-checklist-link.is-done {
    color: var(--text-muted);
    text-decoration: line-through;
}

/* ── hw-stunden-* (migriert aus dashboard Block 5 MEGA) ─── */
.hw-stunden-avatar {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--text-inverted);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.3px;
    flex-shrink: 0;
    background: var(--avatar-bg, var(--primary));
}
.hw-stunden-fill-track {
    width: 100%;
    height: 6px;
    background: var(--border);
    border-radius: 3px;
    overflow: hidden;
}
.hw-stunden-fill {
    height: 100%;
    background: var(--avatar-bg, var(--primary));
    width: var(--fill-width, 0%);
    transition: width 0.3s;
}

/* ── hw-donut-* (migriert aus dashboard Block 5) ─── */
.hw-donut-legend-dot {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--donut-color, var(--primary));
    margin-right: 6px;
}
.hw-donut-svg-text {
    font-size: 40px;
    font-weight: 800;
    fill: var(--text-primary);
    letter-spacing: -1px;
}
.hw-donut-svg-label {
    font-size: 11px;
    font-weight: 600;
    fill: var(--text-muted);
    letter-spacing: 0.5px;
    text-transform: uppercase;
}

/* ── hw-chart-* (Bar-Chart Labels in dashboard) ─── */
.hw-chart-axis-label {
    font-size: 10px;
    font-weight: 500;
    fill: var(--text-muted);
}
.hw-chart-bar-label {
    font-size: 11px;
    font-weight: 700;
    fill: var(--text-inverted);
}
.hw-chart-week-label {
    font-size: 10px;
    font-weight: 500;
    fill: var(--text-muted);
}

/* ── mit-* (Mitarbeiter-Rentabilität — komplett NEU) ─── */
.mit-wrap {
    max-width: 1200px;
    margin: 0 auto;
}
.mit-back-link {
    color: var(--text-muted);
    text-decoration: none;
    font-size: 14px;
}
.mit-info-card {
    margin-bottom: 20px;
    background: var(--info-bg);
    border-left: 4px solid var(--info);
}
.mit-info-row {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}
.mit-info-icon {
    color: var(--info);
    flex-shrink: 0;
    margin-top: 2px;
}
.mit-info-h2 {
    margin: 0 0 6px 0;
    font-size: var(--space-md);
}
.mit-filter-form {
    display: flex;
    gap: 10px;
    align-items: flex-end;
}
.mit-th-rank { width: 40px; }
.mit-td-rank {
    color: var(--text-muted);
    font-weight: 600;
}
.mit-cell-num {
    text-align: right;
    font-variant-numeric: tabular-nums;
}
.mit-cell-num.is-warning { color: var(--warning); }
.mit-cell-num.is-info { color: var(--info); }
.mit-marge-cell {
    text-align: right;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}
.mit-marge-cell.is-positive { color: var(--success); }
.mit-marge-cell.is-negative { color: var(--danger); }
.mit-summe-card {
    border: 1px solid var(--success);
    background: var(--success-bg);
}
.mit-summe-card.is-negative {
    border-color: var(--danger);
    background: var(--danger-bg);
}
.mit-summe-value {
    color: var(--success);
}
.mit-summe-value.is-negative { color: var(--danger); }
.mit-rent-value-stage1 { color: var(--success); }
.mit-rent-value-stage2 { color: var(--info); }
.mit-rent-value-stage3 { color: var(--warning); }
.mit-rent-value-stage4 { color: var(--danger); }
.mit-bottom-info {
    margin-top: var(--space-md);
    padding: 10px 14px;
    background: var(--bg-surface-2);
    border-radius: 6px;
    font-size: 12px;
    color: var(--text-muted);
    display: flex;
    gap: var(--space-md);
    flex-wrap: wrap;
}
.mit-footnote {
    margin-top: 12px;
    font-size: 12px;
    color: var(--text-muted);
}


/* ═══════════════════════════════════════════════════════════════════
   Block 65.4 (2026-05-10): Welcome-Banner für Standard-Leistungs-Katalog
   Primary-Akzent-Variante des Welcome-Banner-Patterns.
   Sichtbar im Handwerker-Dashboard wenn katalog_state in
   ('beruf_fehlt', 'katalog_leer'). Marco-Vision: vorab Daten haben.
═══════════════════════════════════════════════════════════════════ */
.kbn-banner {
    position: relative;
    background: linear-gradient(135deg,
                color-mix(in srgb, var(--primary) 18%, var(--bg-surface)) 0%,
                var(--bg-surface) 70%);
    border: 1px solid color-mix(in srgb, var(--primary) 35%, var(--border));
    border-left: 4px solid var(--primary);
    border-radius: 12px;
    padding: 22px 26px;
    margin-bottom: 22px;
    box-shadow: 0 6px 20px color-mix(in srgb, var(--primary) 10%, transparent);
}
.kbn-banner__dismiss-form { position: absolute; top: 10px; right: 10px; margin: 0; z-index: 1; }
.kbn-banner__close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    background: color-mix(in srgb, var(--bg-surface) 70%, transparent);
    border: 0;
    border-radius: 50%;
    color: var(--text-secondary);
    cursor: pointer;
    transition: background 150ms ease, color 150ms ease;
}
.kbn-banner__close:hover { background: var(--bg-surface); color: var(--text-primary); }
.kbn-banner-row {
    display: flex; align-items: center; gap: 18px;
}
.kbn-banner-icon {
    width: 56px; height: 56px; border-radius: 14px;
    background: color-mix(in srgb, var(--primary) 18%, transparent);
    color: var(--primary);
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.kbn-banner-text { flex: 1; min-width: 240px; }
.kbn-banner-title {
    margin: 0 0 6px; font-size: 22px; font-weight: 800;
    color: var(--text-primary); letter-spacing: -0.01em;
}
.kbn-banner-sub {
    margin: 0; font-size: 14.5px; color: var(--text-secondary);
    line-height: 1.55;
}
.kbn-banner-sub strong { color: var(--text-primary); font-weight: 700; }
.kbn-banner-cta { margin-top: 14px; }
@media (max-width: 640px) {
    .kbn-banner { padding: 18px 20px; }
    .kbn-banner-row { gap: 14px; }
    .kbn-banner-icon { width: 44px; height: 44px; }
    .kbn-banner-title { font-size: 18px; }
    .kbn-banner-sub { font-size: 13.5px; }
}

/* ─── Block 65.5: Migration-Center Action-Karte (Standard-Katalog laden) ─── */
.kbn-action-card {
    display: flex; gap: 18px; align-items: flex-start;
    background: linear-gradient(135deg,
                color-mix(in srgb, var(--primary) 14%, var(--bg-surface)) 0%,
                var(--bg-surface) 65%);
    border: 1px solid color-mix(in srgb, var(--primary) 30%, var(--border));
    border-left: 4px solid var(--primary);
    border-radius: 12px;
    padding: 20px 24px;
    margin-bottom: 22px;
}
.kbn-action-icon {
    width: 52px; height: 52px; border-radius: 12px;
    background: color-mix(in srgb, var(--primary) 18%, transparent);
    color: var(--primary);
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.kbn-action-body { flex: 1; min-width: 0; }
.kbn-action-title {
    margin: 0 0 6px; font-size: 18px; font-weight: 700;
    color: var(--text-primary); letter-spacing: -0.005em;
}
.kbn-action-sub {
    margin: 0 0 14px; font-size: 14px; color: var(--text-secondary);
    line-height: 1.55;
}
.kbn-action-sub strong { color: var(--text-primary); font-weight: 700; }
.kbn-action-info {
    display: inline-block;
    padding: 8px 12px;
    background: color-mix(in srgb, var(--info) 10%, var(--bg-surface));
    border-left: 3px solid var(--info);
    border-radius: 6px;
    font-size: 13px;
    color: var(--text-secondary);
}
.kbn-action-form { margin: 0; }
@media (max-width: 640px) {
    .kbn-action-card { padding: 16px 18px; gap: 14px; flex-direction: column; }
    .kbn-action-icon { width: 44px; height: 44px; }
    .kbn-action-title { font-size: 16px; }
    .kbn-action-sub { font-size: 13.5px; }
}

/* ═══════════════════════════════════════════════════════════════════
   Block 68.2 (2026-05-10): Leistungs-Katalog-Picker Modal
   Naming-Prefix lkp- (Leistungs-Katalog-Picker).
   Re-uses .picker-modal-backdrop + .picker-modal-card + .kp-hit Klassen
   aus dem existing Material-Picker (hw_katalog_picker.html). Nur die
   Tabs sind picker-spezifisch.
═══════════════════════════════════════════════════════════════════ */
.lkp-tabs {
    display: flex;
    gap: 6px;
    padding: 8px 16px;
    border-bottom: 1px solid var(--border-subtle);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}
.lkp-tab {
    flex: 0 0 auto;
    padding: 6px 12px;
    border-radius: 8px;
    border: 1px solid var(--border-subtle);
    background: var(--bg-surface);
    color: var(--text-secondary);
    font-size: 12.5px;
    font-weight: 500;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.lkp-tab:hover {
    background: var(--bg-surface-2);
    border-color: var(--primary);
    color: var(--text-primary);
}
.lkp-tab.active {
    background: color-mix(in srgb, var(--primary) 15%, var(--bg-surface));
    border-color: var(--primary);
    color: var(--primary);
    font-weight: 600;
}
@media (max-width: 640px) {
    .lkp-tabs { padding: 6px 12px; gap: 4px; }
    .lkp-tab { padding: 5px 10px; font-size: 12px; }
}

/* ═══════════════════════════════════════════════════════════════
   Stripe-Connect Quick-Start-Karte (Block 3 / 2026-04-26)
   ═══════════════════════════════════════════════════════════════ */
.hw-stripe-card {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px var(--space-md);
    margin-top: 12px;
    border-radius: 12px;
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-left: 4px solid var(--text-muted);
    transition: box-shadow 0.18s ease;
}
.hw-stripe-card:hover { box-shadow: 0 2px 12px rgba(0,0,0,0.06); }
.hw-stripe-icon {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: color-mix(in srgb, var(--text-muted) 14%, transparent);
    color: var(--text-muted);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.hw-stripe-body { flex: 1; min-width: 0; font-size: 13px; }
.hw-stripe-body strong { display: block; font-size: 14.5px; margin-bottom: var(--space-xs); color: var(--text-primary); }
.hw-stripe-body p { margin: 0; color: var(--text-secondary); line-height: 1.5; }
.hw-stripe-cta { flex-shrink: 0; }

/* Status-Varianten */
.hw-stripe-active {
    border-left-color: var(--success);
    background: color-mix(in srgb, var(--success) 5%, var(--bg-surface));
}
.hw-stripe-active .hw-stripe-icon {
    background: color-mix(in srgb, var(--success) 18%, transparent);
    color: var(--success);
}
.hw-stripe-pending {
    border-left-color: var(--warning);
    background: color-mix(in srgb, var(--warning) 6%, var(--bg-surface));
}
.hw-stripe-pending .hw-stripe-icon {
    background: color-mix(in srgb, var(--warning) 18%, transparent);
    color: var(--warning);
}
.hw-stripe-restricted {
    border-left-color: var(--danger);
    background: color-mix(in srgb, var(--danger) 6%, var(--bg-surface));
}
.hw-stripe-restricted .hw-stripe-icon {
    background: color-mix(in srgb, var(--danger) 18%, transparent);
    color: var(--danger);
}
.hw-stripe-none {
    border-left-color: var(--primary);
    background: color-mix(in srgb, var(--primary) 5%, var(--bg-surface));
}
.hw-stripe-none .hw-stripe-icon {
    background: color-mix(in srgb, var(--primary) 18%, transparent);
    color: var(--primary);
}

@media (max-width: 700px) {
    .hw-stripe-card { flex-direction: column; align-items: stretch; text-align: center; }
    .hw-stripe-icon { align-self: center; }
    .hw-stripe-cta { width: 100%; justify-content: center; }
}

/* ───── KRITISCHER FIX: Wrap als full-size Block, Card fuellt aus ───── */
    .kpi-wrap {
        position: relative;
        display: block;
        height: 100%;
    }
    .kpi-wrap > .kpi-card {
        display: block;
        width: 100%;
        height: 100%;
        box-sizing: border-box;
    }

    /* ───── Pin-Button auf KPI-Karten ───── */
    .kpi-pin-btn {
        position: absolute;
        top: 6px;
        right: 6px;
        width: 22px;
        height: 22px;
        padding: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        background: var(--bg-surface);
        border: 1px solid var(--border);
        border-radius: 50%;
        cursor: pointer;
        color: var(--text-muted);
        opacity: 0;
        transition: opacity 0.2s ease, transform 0.15s ease, background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
        z-index: 2;
    }
    .kpi-wrap:hover .kpi-pin-btn,
    .kpi-pin-btn:focus-visible {
        opacity: 0.92;
    }
    .kpi-pin-btn:hover {
        opacity: 1;
        color: var(--warning, var(--warning));
        border-color: var(--warning, var(--warning));
        transform: scale(1.1);
    }
    /* gepinnt: aktiv-Style */
    .kpi-wrap[data-pinned="true"] .kpi-pin-btn {
        opacity: 1;
        color: var(--warning, var(--warning));
        background: color-mix(in srgb, var(--warning, var(--warning)) 18%, var(--bg-surface));
        border-color: var(--warning, var(--warning));
    }
    .kpi-wrap[data-pinned="true"] .kpi-pin-btn svg {
        fill: currentColor;
    }
    @media (max-width: 640px) {
        .kpi-pin-btn {
            opacity: 0.5;
            width: 26px;
            height: 26px;
        }
    }

    /* ───── Dashboard-Group (Collapse) ─────
       Header ist deutlich als Klick-Bereich erkennbar:
       - dezenter Hintergrund + Border
       - Hover-Effekt mit Farbwechsel
       - Chevron prominenter (groesser, blau bei hover)
       - "X Kennzahlen" als Info-Zeile rechts */
    .dashboard-group {
        margin-bottom: 14px;
        border-radius: var(--space-sm);
        background: color-mix(in srgb, var(--bg-surface-2) 50%, transparent);
        border: 1px solid var(--border-subtle);
        transition: background 0.2s ease, border-color 0.2s ease;
        overflow: hidden;
    }
    .dashboard-group:hover {
        border-color: color-mix(in srgb, var(--primary) 25%, var(--border));
    }
    .dashboard-group > summary.dashboard-group-summary {
        list-style: none;
        cursor: pointer;
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 12px var(--space-md);
        user-select: none;
        transition: background 0.15s ease;
        border-radius: var(--space-sm);
    }
    .dashboard-group > summary.dashboard-group-summary:hover {
        background: color-mix(in srgb, var(--primary) 6%, transparent);
    }
    .dashboard-group[open] > summary.dashboard-group-summary {
        border-bottom: 1px solid var(--border-subtle);
        border-bottom-left-radius: 0;
        border-bottom-right-radius: 0;
    }
    .dashboard-group > summary::-webkit-details-marker,
    .dashboard-group > summary::marker { display: none; }
    .dashboard-group-title {
        font-size: 14px;
        color: var(--text-primary);
        display: inline-flex;
        align-items: center;
        gap: var(--space-sm);
        font-weight: 700;
        letter-spacing: 0.01em;
    }
    .dashboard-group-title svg {
        color: var(--primary);
        flex-shrink: 0;
    }
    .dashboard-group-warn-badge {
        display: none;
        font-size: 11px;
        font-weight: 700;
        color: var(--text-inverted);
        background: var(--danger, var(--danger));
        padding: 2px 9px;
        border-radius: 100px;
        line-height: 1.5;
    }
    .dashboard-group-warn-badge[data-warn-count]:not([data-warn-count="0"]) { display: inline-block; }
    .dashboard-group:not([open]) .dashboard-group-warn-badge[data-warn-count]:not([data-warn-count="0"]) {
        display: inline-block;
        background: var(--danger, var(--danger));
    }
    .dashboard-group[open] .dashboard-group-warn-badge[data-warn-count]:not([data-warn-count="0"]) {
        display: inline-block;
        background: color-mix(in srgb, var(--danger, var(--danger)) 22%, transparent);
        color: var(--danger, var(--danger));
    }
    /* Hint "Klick zum Ein-/Ausklappen" — nur bei Hover sichtbar, dezent */
    .dashboard-group-hint {
        font-size: 11px;
        color: var(--text-muted);
        opacity: 0;
        transition: opacity 0.2s ease;
        margin-left: auto;
        font-weight: 500;
    }
    .dashboard-group > summary:hover .dashboard-group-hint {
        opacity: 0.8;
    }
    .dashboard-group-chevron {
        color: var(--text-muted);
        font-size: 18px;
        font-weight: 600;
        transition: transform 0.25s cubic-bezier(0.2, 0.8, 0.2, 1), color 0.2s ease;
        line-height: 1;
        width: 28px;
        height: 28px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border-radius: 50%;
        background: var(--bg-surface);
        border: 1px solid var(--border);
        flex-shrink: 0;
    }
    .dashboard-group[open] .dashboard-group-chevron {
        transform: rotate(180deg);
    }
    .dashboard-group > summary:hover .dashboard-group-chevron {
        color: var(--primary);
        border-color: var(--primary);
        background: color-mix(in srgb, var(--primary) 10%, var(--bg-surface));
    }
    /* Content-Wrapper bekommt Padding wenn aufgeklappt */
    .dashboard-group[open] > .kpi-grid,
    .dashboard-group[open] > div:not(.dashboard-group-summary) {
        padding: 14px 16px var(--space-md);
    }
    .dashboard-group[open] > .kpi-grid {
        background: var(--bg-surface);
    }
    /* Charts-Gruppe: anderer Container-Style */
    .dashboard-group.dashboard-group-charts[open] > div:not(.dashboard-group-summary) {
        padding: 14px 16px var(--space-md);
        background: var(--bg-surface);
    }

    /* ───── Top-Pinned-Sektion ───── */
    .dashboard-pinned-section {
        background: linear-gradient(135deg, color-mix(in srgb, var(--primary) 6%, var(--bg-surface)) 0%, var(--bg-surface) 100%);
        border: 1px solid color-mix(in srgb, var(--primary) 20%, var(--border));
        border-radius: 10px;
        padding: 14px 16px var(--space-md);
        transition: all 0.25s ease;
    }
    .dashboard-pinned-section[data-empty="true"] {
        background: color-mix(in srgb, var(--bg-surface-2) 50%, transparent);
        border-style: dashed;
        border-color: var(--border);
    }
    .dashboard-pinned-section[data-empty="true"] #hw-pinned-grid {
        display: none;
    }
    .dashboard-pinned-head {
        display: flex;
        align-items: center;
        gap: 10px;
        margin-bottom: 10px;
        flex-wrap: wrap;
    }
    .dashboard-pinned-section[data-empty="false"] .dashboard-pinned-head {
        margin-bottom: 14px;
    }
    .dashboard-pinned-title {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        font-size: 12px;
        font-weight: 700;
        color: var(--text-secondary);
        margin: 0;
        text-transform: uppercase;
        letter-spacing: 0.6px;
    }
    .dashboard-pinned-title svg { color: var(--warning, var(--warning)); }
    .dashboard-pinned-count {
        font-size: 11px;
        font-weight: 700;
        color: var(--primary);
        background: color-mix(in srgb, var(--primary) 12%, transparent);
        padding: 2px var(--space-sm);
        border-radius: 100px;
    }
    .dashboard-pinned-hint {
        font-size: 12px;
        color: var(--text-muted);
        font-style: italic;
    }
    .dashboard-pinned-hint svg {
        vertical-align: -2px;
        opacity: 0.7;
    }
    .dashboard-pinned-section[data-empty="false"] .dashboard-pinned-hint { display: none; }
    .dashboard-pinned-section[data-empty="false"] .dashboard-pinned-count { display: inline-block !important; }

    /* ═══════════════════════════════════════════════════════════
       CHARTS (Polished — 2026-04-19)
       ═══════════════════════════════════════════════════════════ */
    .hw-charts-grid {
        display: grid;
        grid-template-columns: minmax(300px, 1fr) minmax(320px, 1fr) minmax(420px, 1.4fr);
        gap: 20px;
        margin-top: var(--space-sm);
    }
    @media (max-width: 1100px) {
        .hw-charts-grid { grid-template-columns: 1fr 1fr; }
    }
    @media (max-width: 700px) {
        .hw-charts-grid { grid-template-columns: 1fr; }
    }
    .hw-chart-card {
        display: flex;
        flex-direction: column;
        min-height: 360px;
    }
    .hw-chart-card .card-header {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 2px;
        margin-bottom: 12px;
    }
    .hw-chart-card .card-header h2 {
        margin: 0;
    }
    .hw-chart-subtitle {
        font-size: 11px;
        font-weight: 500;
        color: var(--text-muted);
        letter-spacing: 0.3px;
        text-transform: uppercase;
    }
    .hw-chart-empty {
        flex: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 10px;
        padding: 30px 20px;
        text-align: center;
        color: var(--text-muted);
    }
    .hw-chart-empty p { margin: 0; }

    /* ─── Donut ─── */
    .hw-chart-donut-wrap {
        display: flex;
        align-items: center;
        gap: 20px;
        flex: 1;
        min-height: 240px;
    }
    .hw-chart-donut-svg {
        flex-shrink: 0;
        filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.06));
    }
    .hw-chart-donut-legend {
        flex: 1;
        min-width: 140px;
        display: flex;
        flex-direction: column;
        gap: 2px;
    }
    .hw-donut-legend-row {
        display: grid;
        grid-template-columns: 14px 1fr auto 44px;
        align-items: center;
        gap: 10px;
        padding: 6px 0;
        font-size: 13px;
        border-bottom: 1px solid color-mix(in srgb, var(--border) 40%, transparent);
    }
    .hw-donut-legend-row:last-child { border-bottom: none; }
    .hw-donut-legend-dot {
        width: 12px;
        height: 12px;
        border-radius: 3px;
        flex-shrink: 0;
    }
    .hw-donut-legend-label {
        color: var(--text-primary);
        font-weight: 500;
    }
    .hw-donut-legend-count {
        font-weight: 700;
        color: var(--text-primary);
        font-variant-numeric: tabular-nums;
    }
    .hw-donut-legend-pct {
        text-align: right;
        font-size: 12px;
        font-weight: 600;
        color: var(--text-muted);
        font-variant-numeric: tabular-nums;
    }
    @media (max-width: 480px) {
        .hw-chart-donut-wrap { flex-direction: column; gap: 14px; }
        .hw-chart-donut-legend { width: 100%; }
    }

    /* ─── Stunden-Bar ─── */
    .hw-stunden-list {
        flex: 1;
        display: flex;
        flex-direction: column;
        gap: 14px;
        padding: 4px 0;
    }
    .hw-stunden-row {
        display: flex;
        align-items: center;
        gap: 12px;
    }
    .hw-stunden-avatar {
        width: 34px;
        height: 34px;
        border-radius: 50%;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        color: var(--text-inverted);
        font-size: 12px;
        font-weight: 700;
        letter-spacing: 0.3px;
        flex-shrink: 0;
        box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
    }
    .hw-stunden-row-top .hw-stunden-avatar {
        box-shadow: 0 3px 10px color-mix(in srgb, var(--primary) 35%, transparent);
    }
    .hw-stunden-body { flex: 1; min-width: 0; }
    .hw-stunden-head {
        display: flex;
        justify-content: space-between;
        align-items: baseline;
        gap: var(--space-sm);
        margin-bottom: 5px;
    }
    .hw-stunden-name {
        font-size: 13px;
        font-weight: 600;
        color: var(--text-primary);
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .hw-stunden-values {
        font-size: 12px;
        font-variant-numeric: tabular-nums;
        white-space: nowrap;
        color: var(--text-primary);
    }
    .hw-stunden-values strong { color: var(--text-primary); font-weight: 700; }
    .hw-stunden-sep { color: var(--text-muted); margin: 0 var(--space-xs); }
    .hw-stunden-money { color: var(--text-muted); font-weight: 500; }
    .hw-stunden-track {
        height: 12px;
        background: var(--bg-surface-2);
        border-radius: 6px;
        overflow: hidden;
    }
    .hw-stunden-fill {
        height: 100%;
        border-radius: 6px;
        transition: width 0.4s ease-out;
    }

    /* ─── Umsatz-Line ─── */
    .hw-chart-line-header {
        flex-direction: row !important;
        justify-content: space-between;
        align-items: flex-start !important;
        flex-wrap: wrap;
    }
    .hw-chart-line-header > div:first-child {
        display: flex;
        flex-direction: column;
        gap: 2px;
    }
    .hw-chart-total-pill {
        display: inline-flex;
        align-items: center;
        gap: var(--space-sm);
        padding: 6px 12px;
        background: color-mix(in srgb, var(--primary) 8%, var(--bg-surface));
        border: 1px solid color-mix(in srgb, var(--primary) 18%, transparent);
        border-radius: 100px;
    }
    .hw-chart-total-value {
        font-size: 14px;
        font-weight: 700;
        color: var(--text-primary);
        font-variant-numeric: tabular-nums;
    }
    .hw-chart-trend {
        font-size: 11px;
        font-weight: 700;
        padding: 2px 7px;
        border-radius: 100px;
        font-variant-numeric: tabular-nums;
    }
    .hw-trend-up {
        background: color-mix(in srgb, var(--success) 18%, transparent);
        color: var(--success);
    }
    [data-theme="dark"] .hw-trend-up {
        background: color-mix(in srgb, var(--success) 25%, transparent);
        color: color-mix(in srgb, var(--success) 70%, white);
    }
    .hw-trend-down {
        background: color-mix(in srgb, var(--danger) 15%, transparent);
        color: var(--danger);
    }
    [data-theme="dark"] .hw-trend-down {
        background: color-mix(in srgb, var(--danger) 25%, transparent);
        color: color-mix(in srgb, var(--danger) 70%, white);
    }
    .hw-chart-line-svg {
        display: block;
        flex: 1;
        min-height: 240px;
        max-height: 280px;
    }

.lp-devreset-form {
  /* Position: links neben der KI-Chat-Bubble (rechts 24px, 56px breit, 12px Luft = 92px) */
  position: fixed;
  bottom: var(--space-lg);
  right: 92px;
  z-index: 900;
  margin: 0;
}
.lp-devreset-btn {
  display: inline-flex; align-items: center; gap: var(--space-sm);
  padding: 9px 14px; border-radius: 999px;
  background: var(--warning); color: var(--text-primary);
  border: 2px solid color-mix(in srgb, var(--warning) 70%, var(--text-primary) 30%);
  font-size: 12.5px; font-weight: 700; font-family: inherit;
  cursor: pointer;
  box-shadow: 0 4px 12px color-mix(in srgb, var(--warning) 35%, transparent);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.lp-devreset-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 16px color-mix(in srgb, var(--warning) 45%, transparent);
}
.lp-devreset-btn:active { transform: translateY(0); }
@media (max-width: 640px) {
  /* Mobile: KI-Bubble ist 56px + 16px Rand = 72px ab rechts. Wir links daneben. */
  .lp-devreset-form { bottom: var(--space-md); right: 84px; }
  .lp-devreset-label { display: none; }
  .lp-devreset-btn { padding: 10px 12px; }
}

/* ── FINANZEN-ZAHLUNGEN STYLE-BLOCK migriert ── */
/* ═══════════════════════════════════════════════════════════════════
   Finanzen / Zahlungen — Block 1
   Eigene Klassen mit Premium-Polish v1 (Prefix: fzlg-)
   Zentrale Premium-Patterns (KPI-Cards, Row-Hover) sind in admin.css
   in den Listen ergänzt. Hier nur layout-spezifische Klassen.
   ═══════════════════════════════════════════════════════════════════ */

/* ── KPI-Grid (Pattern A aus CLAUDE.md Regel 21) ── */
.fzlg-kpi-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}
.fzlg-kpi-card {
    display: flex;
    align-items: center;
    gap: 14px;
    text-decoration: none;
    color: inherit;
}
.fzlg-kpi-body {
    flex: 1;
    min-width: 0;
    position: relative;
    z-index: 1;
}
.fzlg-kpi-sublabel {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 2px;
    line-height: 1.35;
    position: relative;
    z-index: 1;
}

/* ── Tabs ── */
.fzlg-tabs {
    display: flex;
    gap: var(--space-xs);
    margin-bottom: var(--space-md);
    border-bottom: 2px solid var(--border);
    overflow-x: auto;
}
.fzlg-tab {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px var(--space-md);
    color: var(--text-muted);
    text-decoration: none;
    font-weight: 600;
    font-size: 14px;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    transition: color 0.15s, border-color 0.15s;
    white-space: nowrap;
}
.fzlg-tab:hover { color: var(--text-primary); }
.fzlg-tab-active {
    color: var(--primary);
    border-bottom-color: var(--primary);
}

/* ── Übersicht: 2-Spalten-Grid ── */
.fzlg-overview-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
    gap: var(--space-md);
    margin-bottom: var(--space-md);
}
.fzlg-overview-card .card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}
.fzlg-card-link {
    font-size: 13px;
    color: var(--primary);
    text-decoration: none;
    font-weight: 600;
}
.fzlg-card-link:hover { text-decoration: underline; }

/* ── Mini-Liste (Top 5) ── */
.fzlg-mini-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
}
.fzlg-mini-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 12px;
    border-radius: var(--space-sm);
    text-decoration: none;
    color: inherit;
    transition: background 0.15s;
    border: 1px solid transparent;
}
.fzlg-mini-row:hover {
    background: color-mix(in srgb, var(--primary) 5%, var(--bg-surface));
    border-color: var(--border-subtle);
}
.fzlg-mini-row-left {
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.fzlg-mini-row-left strong { font-size: 14px; color: var(--text-primary); }
.fzlg-mini-customer { font-size: 12px; color: var(--text-muted); margin-top: 2px; }
.fzlg-mini-row-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    text-align: right;
    flex-shrink: 0;
    margin-left: 12px;
}
.fzlg-mini-amount { font-size: 14px; }
.fzlg-amount-success { color: var(--success); }
.fzlg-amount-warning { color: var(--warning); }
.fzlg-amount-danger  { color: var(--danger); }
.fzlg-mini-date { font-size: 11px; color: var(--text-muted); margin-top: 2px; }
.fzlg-mini-empty {
    text-align: center;
    padding: 28px var(--space-md);
    color: var(--text-muted);
}
.fzlg-mini-empty-icon { display: block; color: var(--text-muted); margin-bottom: var(--space-sm); }
.fzlg-mini-empty p { margin: 0; }

/* ── Info-Footer auf Übersicht ── */
.fzlg-info-footer {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 14px;
    background: color-mix(in srgb, var(--info) 8%, var(--bg-surface));
    border: 1px solid color-mix(in srgb, var(--info) 25%, var(--border));
    border-radius: 10px;
    font-size: 13px;
    color: var(--text-primary);
}
.fzlg-info-footer-icon {
    color: var(--info);
    flex-shrink: 0;
    margin-top: 1px;
}
.fzlg-info-footer a { color: var(--info); font-weight: 600; }

/* ── Erfasste: Filter-Bar ── */
.fzlg-filter-bar {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    align-items: flex-end;
    padding: 12px;
    background: var(--bg-surface-2);
    border-radius: 10px;
    margin-bottom: 14px;
}
.fzlg-filter-group { display: flex; flex-direction: column; gap: var(--space-xs); }
.fzlg-filter-label {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--text-muted);
    font-weight: 700;
}
.fzlg-filter-bar select,
.fzlg-filter-bar input[type="date"] {
    padding: 6px 10px;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--bg-surface);
    color: var(--text-primary);
    font-size: 13px;
}
.fzlg-filter-reset {
    color: var(--text-muted);
    text-decoration: none;
    font-size: 12px;
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    padding: 6px 10px;
}
.fzlg-filter-reset:hover { color: var(--danger); }

/* ── Erfasste: Tabelle ── */
.fzlg-table-wrap { overflow-x: auto; }
.fzlg-table { width: 100%; border-collapse: collapse; }
.fzlg-table th {
    text-align: left;
    padding: 10px 12px;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: var(--text-muted);
    font-weight: 700;
    border-bottom: 1px solid var(--border);
}
.fzlg-table td {
    padding: 12px;
    border-bottom: 1px solid var(--border-subtle);
    color: var(--text-primary);
    font-size: 13px;
}
.fzlg-row { cursor: pointer; }
.fzlg-chevron {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--space-xl);
    height: var(--space-xl);
    border-radius: var(--space-sm);
    background: var(--bg-surface-2);
    color: var(--text-muted);
    text-decoration: none;
}

/* ── Empty-State ── */
.fzlg-empty {
    text-align: center;
    padding: 48px var(--space-lg);
    color: var(--text-muted);
}
.fzlg-empty-icon { color: var(--text-muted); margin-bottom: 12px; }
.fzlg-empty h3 { margin: 0 0 8px 0; color: var(--text-primary); }
.fzlg-empty p { margin: 0 0 16px 0; }

/* ── Importieren-Tab ── */
.fzlg-import-intro { margin-bottom: 18px; }
.fzlg-import-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
    gap: var(--space-md);
}
.fzlg-import-card {
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 18px;
    background: var(--bg-surface);
    display: flex;
    flex-direction: column;
}
.fzlg-import-card-head {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 14px;
}
.fzlg-import-card-title { margin: 0 0 4px 0; font-size: 17px; }
.fzlg-import-icon {
    width: var(--space-2xl);
    height: var(--space-2xl);
    border-radius: 12px;
    background: color-mix(in srgb, var(--accent, var(--primary)) 14%, transparent);
    color: var(--accent, var(--primary));
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 2px 8px color-mix(in srgb, var(--accent, var(--primary)) 20%, transparent);
}
.fzlg-import-card-body p { margin: 0 0 12px 0; color: var(--text-secondary); font-size: 13.5px; line-height: 1.5; }
.fzlg-import-card-list { margin: 0 0 16px 0; padding-left: 20px; color: var(--text-secondary); font-size: 13px; line-height: 1.7; }
.fzlg-import-hint { font-size: 12px; color: var(--text-muted); margin-top: var(--space-sm); }

/* ── Upload-Form (Tab Importieren) ── */
.fzlg-upload-form {
    margin-top: 12px;
    padding: var(--space-md);
    background: var(--bg-surface-2);
    border-radius: 12px;
    border: 1px dashed var(--border);
}
.fzlg-upload-row {
    display: flex;
    gap: var(--space-md);
    align-items: flex-end;
    flex-wrap: wrap;
}
.fzlg-upload-input { flex: 1; min-width: 280px; }
.fzlg-upload-label {
    display: block;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--text-muted);
    margin-bottom: 6px;
}
.fzlg-upload-file {
    display: block;
    width: 100%;
    padding: 8px 10px;
    border: 1px solid var(--border);
    border-radius: var(--space-sm);
    background: var(--bg-surface);
    font-size: 13px;
}
.fzlg-upload-hint {
    margin-top: var(--space-sm);
    font-size: 12px;
    color: var(--text-muted);
}
.fzlg-upload-actions { display: flex; align-items: flex-end; }

/* ── Mobile ── */
@media (max-width: 700px) {
    .fzlg-overview-grid { grid-template-columns: 1fr; }
    .fzlg-import-cards { grid-template-columns: 1fr; }
    .fzlg-filter-bar { flex-direction: column; align-items: stretch; }
    .fzlg-filter-group { width: 100%; }
    .fzlg-upload-row { flex-direction: column; align-items: stretch; }
}

/* ── FINANZEN-ZAHLUNGEN-IMPORT-DETAIL STYLE-BLOCK migriert ── */
/* ═══════════════════════════════════════════════════════════════════
   Bank-Import Detail (Block 2)
   ═══════════════════════════════════════════════════════════════════ */
.fzlg-detail-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: var(--space-md);
    flex-wrap: wrap;
}
.fzlg-detail-meta {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    color: var(--text-muted);
    font-size: 13px;
}

.fzlg-import-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 12px;
    margin-bottom: var(--space-md);
    padding: 14px;
    background: var(--bg-surface-2);
    border-radius: 10px;
}
.fzlg-import-stat { text-align: center; }
.fzlg-import-stat-val {
    font-size: var(--space-lg);
    font-weight: 800;
    color: var(--text-primary);
}
.fzlg-import-stat-lab {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: var(--text-muted);
    margin-top: var(--space-xs);
}

.fzlg-status-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: var(--space-md);
    padding: var(--space-xs);
    background: var(--bg-surface-2);
    border-radius: 10px;
}
.fzlg-status-pill {
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 600;
    color: var(--text-muted);
    text-decoration: none;
    transition: background 0.15s, color 0.15s;
}
.fzlg-status-pill:hover { background: var(--bg-surface); color: var(--text-primary); }
.fzlg-status-pill-active {
    background: var(--bg-surface);
    color: var(--primary);
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}
.fzlg-pill-count {
    display: inline-block;
    padding: 2px 7px;
    margin-left: var(--space-xs);
    background: color-mix(in srgb, var(--primary) 15%, transparent);
    border-radius: 10px;
    font-size: 11px;
    font-weight: 700;
}

.fzlg-bulk-bar {
    margin-bottom: 14px;
    padding: 10px 14px;
    background: color-mix(in srgb, var(--success) 8%, var(--bg-surface));
    border: 1px solid color-mix(in srgb, var(--success) 25%, var(--border));
    border-radius: var(--space-sm);
}
.fzlg-bulk-hint { color: var(--text-muted); font-size: 13px; margin-left: var(--space-sm); }

.fzlg-imp-lines { display: flex; flex-direction: column; gap: 10px; }
.fzlg-imp-line {
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--bg-surface);
    border-left: 4px solid var(--text-muted);
}
.fzlg-imp-line-pending     { border-left-color: var(--warning); }
.fzlg-imp-line-confirmed   { border-left-color: var(--success); opacity: 0.85; }
.fzlg-imp-line-ignored     { border-left-color: var(--text-muted); opacity: 0.6; }
.fzlg-imp-line-doppel      { border-left-color: var(--danger); background: color-mix(in srgb, var(--danger) 4%, var(--bg-surface)); }
.fzlg-imp-line-kein_match  { border-left-color: var(--text-muted); }

.fzlg-imp-line-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: var(--space-sm);
    flex-wrap: wrap;
}
.fzlg-imp-amount { font-size: 18px; font-weight: 700; color: var(--success); }
.fzlg-imp-date { font-size: 12px; color: var(--text-muted); margin-top: 2px; }

.fzlg-imp-purpose {
    font-size: 13px;
    color: var(--text-secondary);
    margin-bottom: var(--space-sm);
    padding: 8px 10px;
    background: var(--bg-surface-2);
    border-radius: 6px;
}
.fzlg-imp-purpose strong { color: var(--text-muted); margin-right: 6px; font-size: 11px; text-transform: uppercase; letter-spacing: 0.3px; }
.fzlg-imp-iban {
    display: inline-block;
    margin-left: 10px;
    padding: 2px var(--space-sm);
    background: var(--bg-surface);
    border-radius: var(--space-xs);
    font-family: monospace;
    font-size: 11px;
    color: var(--text-muted);
}

.fzlg-imp-match {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    background: color-mix(in srgb, var(--info) 6%, var(--bg-surface));
    border: 1px solid color-mix(in srgb, var(--info) 18%, var(--border));
    border-radius: 6px;
    margin-bottom: 10px;
}
.fzlg-imp-match-arrow { font-size: 20px; color: var(--info); flex-shrink: 0; }
.fzlg-imp-match-body { flex: 1; min-width: 0; }
.fzlg-imp-match-body strong { font-size: 14px; }
.fzlg-imp-match-customer { display: block; font-size: 12px; color: var(--text-secondary); margin-top: 2px; }
.fzlg-imp-match-amount { display: block; font-size: 12px; color: var(--text-muted); margin-top: 2px; }
.fzlg-imp-match-strat {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: var(--text-muted);
    background: var(--bg-surface-2);
    padding: 3px var(--space-sm);
    border-radius: var(--space-xs);
    flex-shrink: 0;
}

.fzlg-imp-actions {
    display: flex;
    gap: var(--space-sm);
    flex-wrap: wrap;
    align-items: center;
    padding-top: var(--space-sm);
    border-top: 1px dashed var(--border-subtle);
}
.fzlg-imp-rechnung-select {
    padding: 6px 10px;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--bg-surface);
    color: var(--text-primary);
    font-size: 12px;
    max-width: 320px;
}

@media (max-width: 700px) {
    .fzlg-imp-line-head { flex-direction: column; }
    .fzlg-imp-actions { flex-direction: column; align-items: stretch; }
    .fzlg-imp-rechnung-select { max-width: 100%; width: 100%; }
}

/* ── ABWESENHEIT-LISTE STYLE-BLOCK migriert ── */
/* ═══════════════════════════════════════════════════════════════
   Abwesenheiten — Polish 2026-04-19
   ═══════════════════════════════════════════════════════════════ */
.abw-wrap { max-width: 1100px; margin: 0 auto; }

/* Form-Card */
.abw-form-card { margin-bottom: var(--space-md); }
.abw-form-card .card-header h2 {
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
    margin: 0;
}
.abw-form-intro {
    margin: 0 0 var(--space-md);
    color: var(--text-secondary);
    font-size: 13px;
    line-height: 1.55;
}
.abw-form { padding: 0; }
.abw-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
}
.abw-label {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-weight: 600;
    font-size: 12px;
    color: var(--text-primary);
    margin-bottom: var(--space-xs);
}
.abw-label-hint { font-size: 11px; color: var(--text-muted); font-weight: 400; }
.abw-required { color: var(--danger); font-weight: 700; }
.abw-notiz-row { margin-top: 12px; }
.abw-form-actions {
    display: flex;
    gap: 10px;
    margin-top: var(--space-md);
    padding-top: 14px;
    border-top: 1px solid var(--border);
    flex-wrap: wrap;
}
.abw-form-actions .btn { display: inline-flex; align-items: center; gap: 6px; }

/* List-Card */
.abw-list-card .card-header h2 {
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
    margin: 0;
}
.abw-list-sub {
    font-size: 13px;
    color: var(--text-muted);
    font-weight: 500;
}
.abw-count {
    margin-left: var(--space-xs);
    padding: 2px 9px;
    background: color-mix(in srgb, var(--primary) 15%, transparent);
    color: var(--primary);
    border-radius: 100px;
    font-size: 11px;
    font-weight: 700;
}

/* Tabelle */
.abw-table-wrap { overflow-x: auto; }
.abw-table { width: 100%; border-collapse: collapse; }
.abw-table thead th {
    text-align: left;
    padding: 10px 12px;
    font-size: 11px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 2px solid var(--border);
}
.abw-row {
    border-bottom: 1px solid var(--border);
    transition: background 0.12s ease;
}
.abw-row:hover { background: color-mix(in srgb, var(--primary) 3%, transparent); }
.abw-row td { padding: 12px; font-size: 13px; vertical-align: middle; }

/* Avatar + Name */
.abw-name-wrap {
    display: flex;
    align-items: center;
    gap: 12px;
}
.abw-avatar {
    width: var(--space-xl);
    height: var(--space-xl);
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--text-inverted);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.3px;
    flex-shrink: 0;
    box-shadow: 0 2px 6px rgba(0,0,0,0.12);
}
.abw-avatar-all {
    background: linear-gradient(135deg, var(--primary), color-mix(in srgb, var(--primary) 70%, black));
}
.abw-name-wrap strong { font-weight: 600; color: var(--text-primary); }
.abw-all-label { color: var(--primary) !important; }

/* Typ-Pills */
.abw-typ-pill {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    padding: 3px 10px;
    border-radius: 100px;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}
.abw-typ-urlaub { background: color-mix(in srgb, var(--success) 15%, transparent); color: var(--success); }
.abw-typ-krank { background: color-mix(in srgb, var(--danger) 15%, transparent); color: var(--danger); }
.abw-typ-feiertag { background: color-mix(in srgb, var(--warning) 18%, transparent); color: var(--warning); }
.abw-typ-fortbildung { background: color-mix(in srgb, var(--primary) 18%, transparent); color: var(--info); }
.abw-typ-pill:not([class*="abw-typ-"]) { background: var(--bg-surface-2); color: var(--text-muted); }

.abw-td-date {
    white-space: nowrap;
    color: var(--text-secondary);
    font-variant-numeric: tabular-nums;
    font-size: 13px;
}
.abw-td-tage { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.abw-td-tage strong { color: var(--text-primary); font-weight: 700; font-size: 14px; }
.abw-tage-unit { font-size: 11px; color: var(--text-muted); }
.abw-td-notiz { font-size: 12px; color: var(--text-muted); font-style: italic; }
.abw-muted { color: var(--text-muted); }

/* Lösch-Button */
.abw-td-action { text-align: right; }
.abw-del-btn {
    background: transparent;
    border: 1px solid transparent;
    cursor: pointer;
    padding: 6px;
    border-radius: 6px;
    color: var(--text-muted);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 0.12s ease;
}
.abw-del-btn:hover {
    background: color-mix(in srgb, var(--danger) 10%, transparent);
    color: var(--danger);
    border-color: color-mix(in srgb, var(--danger) 25%, transparent);
}

/* Mobile-Cards */
.abw-mobile-list { display: none; }
@media (max-width: 768px) {
    .abw-table-wrap { display: none; }
    .abw-mobile-list { display: flex; flex-direction: column; gap: 10px; }
    .abw-mobile-card {
        padding: 14px;
        background: var(--bg-surface);
        border: 1px solid var(--border);
        border-radius: 10px;
    }
    .abw-mobile-head {
        display: flex;
        justify-content: space-between;
        gap: 10px;
        align-items: center;
        margin-bottom: 10px;
        flex-wrap: wrap;
    }
    .abw-mobile-meta {
        display: flex;
        flex-wrap: wrap;
        gap: 6px 12px;
        font-size: 12px;
        color: var(--text-muted);
    }
    .abw-mobile-meta span { display: inline-flex; align-items: center; gap: var(--space-xs); }
    .abw-mobile-meta strong { color: var(--text-primary); }
    .abw-mobile-del {
        display: inline-flex !important;
        align-items: center;
        gap: var(--space-xs);
        margin-top: var(--space-xs);
    }
}

/* Empty */
.abw-empty {
    padding: 40px 20px;
    text-align: center;
    color: var(--text-muted);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}
.abw-empty-icon { color: var(--border); opacity: 0.8; }
.abw-empty h3 { margin: 0; color: var(--text-primary); font-size: var(--space-md); }
.abw-empty p { margin: 0; font-size: 13px; }

/* ── TEAM (Einstellungen) STYLE-BLOCK migriert ── */
/* ═══════════════════════════════════════════════════════════════
   Team-Verwaltung — Polish 2026-04-19
   ═══════════════════════════════════════════════════════════════ */
.tm-wrap { max-width: 1080px; margin: 0 auto; }

.tm-back { margin-bottom: 14px; }
.tm-back-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--text-muted);
    text-decoration: none;
    font-size: 13px;
}
.tm-back-link:hover { color: var(--primary); }

/* Hero */
.tm-hero {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 20px var(--space-lg);
    background: linear-gradient(135deg, color-mix(in srgb, var(--primary) 5%, var(--bg-surface)), var(--bg-surface));
    border: 1px solid var(--border);
    border-radius: 14px;
    margin-bottom: var(--space-md);
    flex-wrap: wrap;
}
.tm-hero-icon {
    width: 56px;
    height: 56px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.tm-hero-body { flex: 1; min-width: 220px; }
.tm-hero-label {
    font-size: 11px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: var(--space-xs);
}
.tm-hero-label strong { color: var(--text-primary); }
.tm-hero-value {
    font-size: 22px;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.2;
}
.tm-hero-value strong {
    font-size: 28px;
    font-variant-numeric: tabular-nums;
    margin-right: var(--space-xs);
}
.tm-hero-unlimited { color: var(--primary); font-weight: 700; }
.tm-hero-hint {
    font-size: 12px;
    color: var(--text-muted);
    margin-top: var(--space-xs);
}
.tm-hero-progress-wrap {
    flex: 1;
    min-width: 200px;
    max-width: 320px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.tm-hero-progress-track {
    height: 10px;
    background: var(--border);
    border-radius: 5px;
    overflow: hidden;
}
.tm-hero-progress-fill {
    height: 100%;
    border-radius: 5px;
    transition: width 0.4s ease-out;
}
.tm-hero-pct {
    font-size: 12px;
    font-weight: 700;
    color: var(--text-muted);
    text-align: right;
    font-variant-numeric: tabular-nums;
}

/* Locked-Card */
.ang-aw-locked-card,
.tm-locked-card {
    display: flex;
    gap: 18px;
    align-items: flex-start;
    background: linear-gradient(135deg, color-mix(in srgb, var(--warning) 10%, var(--bg-surface)), var(--bg-surface));
    border: 1px solid color-mix(in srgb, var(--warning) 35%, transparent);
}
.ang-aw-locked-icon,
.tm-locked-icon {
    color: var(--warning);
    background: color-mix(in srgb, var(--warning) 18%, transparent);
    width: 56px;
    height: 56px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.ang-aw-locked-body,
.tm-locked-body { flex: 1; }
.ang-aw-locked-body h2,
.tm-locked-body h2 {
    margin: 0 0 var(--space-sm);
    color: var(--warning);
    font-size: 17px;
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
}
.ang-aw-locked-body p,
.tm-locked-body p {
    margin: 0 0 14px;
    color: var(--text-secondary);
    font-size: 13px;
    line-height: 1.6;
}
.ang-aw-locked-body .btn,
.tm-locked-body .btn { display: inline-flex; align-items: center; gap: 6px; text-decoration: none; }

/* Card-Header Split */
.tm-card-header-split {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}
.tm-card-header-split h2 {
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
    margin: 0;
}
.tm-csv-btn { display: inline-flex; align-items: center; gap: 6px; text-decoration: none; }

.tm-count {
    margin-left: var(--space-sm);
    padding: 2px 9px;
    background: color-mix(in srgb, var(--primary) 15%, transparent);
    color: var(--primary);
    border-radius: 100px;
    font-size: 11px;
    font-weight: 700;
}
.tm-count-warn { background: color-mix(in srgb, var(--warning) 18%, transparent); color: var(--warning); }

/* Form */
.tm-form { padding: 0; }
.tm-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 12px;
}
.tm-label {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-weight: 600;
    font-size: 13px;
    color: var(--text-primary);
    margin-bottom: var(--space-xs);
}
.tm-required { color: var(--danger); font-weight: 700; }
.tm-role-desc-wrap { margin: 8px 0 14px; }
.tm-role-desc {
    margin: 0;
    padding: 12px 14px;
    background: color-mix(in srgb, var(--primary) 6%, transparent);
    border-left: 3px solid var(--primary);
    border-radius: 6px;
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.55;
}
.tm-form-actions {
    display: flex;
    gap: 12px;
    align-items: center;
    margin-top: var(--space-md);
    padding-top: 14px;
    border-top: 1px solid var(--border);
    flex-wrap: wrap;
}
.tm-form-actions .btn { display: inline-flex; align-items: center; gap: 6px; }
.tm-form-counter {
    font-size: 12px;
    color: var(--text-muted);
    display: inline-flex;
    align-items: center;
    gap: 5px;
}
.tm-form-counter strong { color: var(--text-primary); font-variant-numeric: tabular-nums; }

/* Tabelle */
.tm-table-wrap { overflow-x: auto; }
.tm-table { width: 100%; border-collapse: collapse; }
.tm-table thead th {
    text-align: left;
    padding: 10px 12px;
    font-size: 11px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 2px solid var(--border);
}
.tm-row {
    border-bottom: 1px solid var(--border);
    transition: background 0.12s ease;
}
.tm-row:hover { background: color-mix(in srgb, var(--primary) 3%, transparent); }
.tm-row td { padding: 12px; font-size: 13px; vertical-align: middle; }

.tm-name-wrap {
    display: flex;
    align-items: center;
    gap: 12px;
}
.tm-avatar {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--text-inverted);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.3px;
    flex-shrink: 0;
    box-shadow: 0 2px 6px rgba(0,0,0,0.12);
}
.tm-name-wrap strong { font-weight: 600; color: var(--text-primary); }
.tm-td-email { font-size: 12px; color: var(--text-secondary); }
.tm-td-login { font-size: 12px; color: var(--text-muted); white-space: nowrap; }
.tm-muted { color: var(--text-muted); font-style: italic; font-size: 12px; }

/* Rollen-Badges */
.tm-role {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    padding: 3px 10px;
    border-radius: 100px;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}
.tm-role-owner { background: color-mix(in srgb, var(--warning) 18%, transparent); color: var(--warning); }
.tm-role-meister { background: color-mix(in srgb, var(--primary) 15%, transparent); color: var(--primary); }
.tm-role-admin { background: color-mix(in srgb, var(--primary) 18%, transparent); color: var(--info); }
.tm-role-trainer { background: var(--bg-surface-2); color: var(--text-muted); }

/* Status */
.tm-status {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    padding: 3px var(--space-sm);
    border-radius: 100px;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}
.tm-status-active { background: color-mix(in srgb, var(--success) 18%, transparent); color: var(--success); }
.tm-status-inactive { background: color-mix(in srgb, var(--text-muted) 15%, transparent); color: var(--text-muted); }

/* Aktionen */
.tm-td-actions { white-space: nowrap; }
.tm-action-row {
    display: flex;
    gap: var(--space-sm);
    align-items: center;
    justify-content: flex-end;
}
.tm-action-form { display: inline; margin: 0; }
.tm-role-select {
    width: auto;
    padding: 5px 10px;
    font-size: 12px;
    cursor: pointer;
}
.tm-remove-btn {
    background: transparent;
    border: 1px solid transparent;
    cursor: pointer;
    padding: 6px;
    border-radius: 6px;
    color: var(--text-muted);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 0.12s ease;
}
.tm-remove-btn:hover {
    background: color-mix(in srgb, var(--danger) 10%, transparent);
    color: var(--danger);
    border-color: color-mix(in srgb, var(--danger) 25%, transparent);
}

/* Block 29.D+E: Einheitliche Icon-Only-Buttons fuer Pausieren/Reaktivieren/Loeschen */
.tm-icon-btn {
    background: transparent;
    border: 1px solid var(--border);
    cursor: pointer;
    padding: 6px;
    border-radius: 6px;
    color: var(--text-muted);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 0.12s ease;
    min-width: 30px;
    min-height: 30px;
}
.tm-icon-btn:hover {
    transform: translateY(-1px);
}
/* Pausieren: Orange/Amber */
.tm-pause-btn:hover {
    background: color-mix(in srgb, var(--warning) 12%, transparent);
    color: var(--warning);
    border-color: color-mix(in srgb, var(--warning) 35%, transparent);
}
/* Reaktivieren: Blau/Primary */
.tm-reactivate-btn {
    color: var(--primary, var(--primary));
    border-color: color-mix(in srgb, var(--primary, var(--primary)) 25%, transparent);
}
.tm-reactivate-btn:hover {
    background: color-mix(in srgb, var(--primary, var(--primary)) 12%, transparent);
    border-color: var(--primary, var(--primary));
}
/* Endgueltig Loeschen: Rot (erbt tm-remove-btn-Stil aber mit stärkerer Border fuer Sichtbarkeit) */
.tm-delete-btn {
    color: var(--danger);
    border-color: color-mix(in srgb, var(--danger) 25%, transparent);
}
.tm-delete-btn:hover {
    background: color-mix(in srgb, var(--danger) 15%, transparent);
    border-color: var(--danger);
}
.tm-revoke-btn { display: inline-flex; align-items: center; gap: var(--space-xs); }

.tm-pending-hint {
    margin-top: 12px;
    padding: 8px 12px;
    background: color-mix(in srgb, var(--warning) 8%, transparent);
    border-left: 3px solid var(--warning);
    border-radius: 6px;
    font-size: 12px;
    color: var(--text-muted);
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

/* Mobile */
@media (max-width: 768px) {
    .tm-form-grid { grid-template-columns: 1fr; }
    .tm-hero { padding: var(--space-md); gap: 14px; }
    .tm-hero-icon { width: 44px; height: 44px; }
    .tm-hero-progress-wrap { width: 100%; max-width: none; }
    .tm-action-row { flex-direction: column; align-items: stretch; }
    .tm-role-select { width: 100%; }
}

/* ── Wave 2: dashboard Restposten ─── */

/* Migration-Card */
.dashboard-migration-h3 {
    margin: 0 0 4px 0;
    font-size: var(--space-md);
}
.dashboard-migration-p {
    margin: 0;
    color: var(--text-secondary);
    font-size: 13px;
}
.dashboard-migration-btn {
    text-decoration: none;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
}

/* Generische KPI-Conditional Classes (für alle KPI-Cards in dashboard) */
.kpi-value.is-warning { color: var(--warning); }
.kpi-value.is-danger { color: var(--danger); }
.kpi-value.is-success { color: var(--success); }
.kpi-value.is-info { color: var(--info); }
.kpi-value.is-primary { color: var(--primary); }

/* Welcome-Tip alternative variant (Z.259 — flex-start statt center) */
.dashboard-welcome-tip.is-flex-start {
    align-items: flex-start;
    gap: var(--space-md);
}

/* Einsatzkosten-Heute Bar-Chart */
.dashboard-einsatzkosten-card {
    margin-top: 14px;
    padding: 18px;
}
.dashboard-einsatzkosten-header {
    font-size: 12px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 12px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.dashboard-einsatzkosten-header-mittellohn {
    font-size: 11px;
    text-transform: none;
    letter-spacing: 0;
}
.dashboard-einsatzkosten-bars {
    display: flex;
    align-items: flex-end;
    gap: var(--space-xs);
    height: 120px;
    padding: 0 var(--space-xs);
}
.dashboard-einsatzkosten-day {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-xs);
}
.dashboard-einsatzkosten-bar-track {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column-reverse;
    justify-content: flex-start;
    border-radius: 4px 4px 0 0;
    overflow: hidden;
    background: var(--bg-surface-2);
    position: relative;
}
.dashboard-einsatzkosten-bar-arbeit {
    background: var(--primary);
    height: var(--bar-arbeit-height, 0%);
}
.dashboard-einsatzkosten-bar-ausgaben {
    background: var(--warning);
    height: var(--bar-ausgaben-height, 0%);
}
.dashboard-einsatzkosten-legend {
    display: flex;
    gap: var(--space-md);
    margin-top: 10px;
    font-size: 11px;
    color: var(--text-muted);
    justify-content: center;
}
.dashboard-einsatzkosten-legend-dot {
    width: 10px;
    height: 10px;
    border-radius: 2px;
}
.dashboard-einsatzkosten-legend-dot.is-arbeit { background: var(--primary); }
.dashboard-einsatzkosten-legend-dot.is-ausgaben { background: var(--warning); }

/* finanzen_zahlungen Restposten */
.fzlg-th-betrag {
    width: 13%;
    text-align: right;
}
.fzlg-th-buchungen,
.fzlg-th-vorschlaege,
.fzlg-th-bestaetigt {
    width: 8%;
    text-align: center;
}
.fzlg-upload-h2 {
    margin: 0 0 6px 0;
}
.fzlg-upload-p {
    margin: 0;
    color: var(--text-muted);
}
.fzlg-card-mt {
    margin-top: var(--space-md);
}
.fzlg-card-mt h3 {
    margin: 0 0 12px 0;
}
.fzlg-confirmed-strong {
    color: var(--success);
}


/* Wave 3: kpi-value.is-muted für 3-stage Conditional */
.kpi-value.is-muted { color: var(--text-muted); }


/* ============================================================
   ITER 14 PHASE F.1 — Email-Browser-Routes (mail-* Schema)
   Files: emails/posteingang.html, einstellungen.html, lesen.html,
          verfassen.html, lesen_sent.html
   ============================================================ */

/* --- Layout-Container --- */
.mail-page { max-width: 760px; }
.mail-tabs-row { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.mail-filter-row { margin-bottom: 14px; display: flex; gap: 6px; flex-wrap: wrap; }
.mail-bulk-actions { margin-left: auto; display: flex; gap: var(--space-sm); align-items: center; }
.mail-bulk-count { font-size: 13px; color: var(--text-muted); display: none; }
.mail-bulk-count.is-visible { display: inline; }

/* --- Bulk-Buttons (Initial-State + active-State via JS toggled class) --- */
.mail-bulk-delete-btn {
    opacity: 0.5;
    cursor: not-allowed;
    color: var(--danger);
    border: 1px solid var(--danger);
    background: var(--bg-card);
}
.mail-bulk-delete-btn.is-active {
    opacity: 1;
    cursor: pointer;
    background: var(--danger);
    color: var(--text-on-accent);
}
.mail-bulk-deleteall-btn {
    color: var(--text-on-accent);
    border: 1px solid var(--danger);
    background: var(--danger);
}

/* --- Table-Spalten-Width (Email-Posteingang/Sent/Rechnungen-Tab) --- */
.mail-col-w36 { width: 36px; }
.mail-col-w50 { width: 50px; }
.mail-col-w80 { width: 80px; }
.mail-col-w90 { width: 90px; }
.mail-col-w100 { width: 100px; }
.mail-col-w140 { width: 140px; }
.mail-col-w160 { width: 160px; }
.mail-col-w200 { width: 200px; }
.mail-col-w220 { width: 220px; }

/* --- Row-States --- */
.mail-unread { font-weight: bold; }
.mail-row-clickable { cursor: pointer; }
.mail-cell-clickable { cursor: pointer; }

/* --- Per-Row Delete-Button (trash icon im table-cell) --- */
.mail-row-delete-btn {
    background: none;
    border: none;
    color: var(--danger);
    cursor: pointer;
    font-size: var(--space-md);
    padding: 4px var(--space-sm);
}

/* --- Badge-Variations + Link --- */
.mail-badge-sm { font-size: 10.5px; }
.mail-link-primary {
    color: var(--primary);
    text-decoration: none;
    font-weight: 600;
    font-size: 12px;
}

/* --- Status-Banner (Settings-Page) --- */
.mail-banner-success {
    padding: 12px var(--space-md);
    background: color-mix(in srgb, var(--success) 12%, var(--bg-surface));
    border-radius: 6px;
    margin-bottom: var(--space-md);
}
.mail-banner-success-strong { color: var(--success); }
.mail-banner-warning {
    padding: 12px var(--space-md);
    background: color-mix(in srgb, var(--warning) 12%, var(--bg-surface));
    border-radius: 6px;
}
.mail-banner-warning-strong { color: var(--warning); }

/* --- Settings-Page IMAP/SMTP-Cards --- */
.mail-from-address { font-size: 15px; font-weight: 600; margin-bottom: var(--space-xs); }
.mail-from-name { font-size: 13px; color: var(--text-muted); }
.mail-help-text { font-size: 13px; color: var(--text-muted); margin-bottom: var(--space-md); }
.mail-config-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-md); }
.mail-config-card {
    padding: var(--space-md);
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: var(--space-sm);
}
.mail-config-title { font-size: 14px; margin: 0 0 12px; }
.mail-config-row {
    display: flex;
    justify-content: space-between;
    padding: 6px 0;
    border-bottom: 1px solid var(--border);
}
.mail-config-row.is-last { border-bottom: none; }
.mail-config-actions { display: flex; gap: var(--space-sm); margin-top: var(--space-md); flex-wrap: wrap; }
.mail-show-pw-btn { font-size: 11px; padding: 2px var(--space-sm); margin-left: var(--space-xs); }
.mail-card-title-icon { display: inline-flex; align-items: center; gap: var(--space-sm); }
.mail-badge-personal { background: var(--primary); color: var(--text-on-accent); }

/* --- Email-Detail-View (lesen.html) --- */
.mail-body-padding { padding: 20px; }
.mail-headers-table { width: 100%; margin-bottom: 20px; border-collapse: collapse; }
.mail-header-label {
    padding: 4px 12px 4px 0;
    color: var(--text-muted);
    white-space: nowrap;
}
.mail-header-label.is-top { vertical-align: top; }
.mail-header-label.is-attach { white-space: normal; }
.mail-header-value { padding: 4px 0; }
.mail-divider { border: none; border-top: 1px solid var(--border); margin: 16px 0; }
.mail-body-content { line-height: 1.6; }
.mail-empty-text { color: var(--text-muted); }

/* --- System-Email Inline-Body + externer Iframe --- */
.mail-system-body { padding: 8px var(--space-xs); }
.mail-system-body > div[style*="max-width"] {
    max-width: none !important;
    margin: 0 !important;
}
.mail-system-body table { max-width: none !important; }
.mail-iframe {
    width: 100%;
    min-height: 900px;
    border: 1px solid var(--border);
    border-radius: var(--space-xs);
    background: var(--bg-card);
}
.mail-iframe.is-short { min-height: 520px; border: 0; }
.mail-iframe-wrap {
    border: 1px solid var(--border-subtle);
    border-radius: var(--space-sm);
    padding: 0;
    background: var(--bg-card);
    overflow: hidden;
}
.mail-pre-text {
    white-space: pre-wrap;
    font-family: inherit;
    padding: var(--space-md);
    background: var(--bg-surface-2);
    border-radius: var(--space-xs);
    border: 1px solid var(--border);
}

/* --- Email-Form (verfassen.html) --- */
.mail-form-label { display: block; margin-bottom: var(--space-xs); font-weight: 600; }
.mail-input-narrow { max-width: 400px; }
.mail-input-medium { max-width: 600px; }
.mail-textarea { width: 100%; max-width: 600px; resize: vertical; }
.mail-form-actions { display: flex; gap: 12px; }

/* --- Email-Sent-View (lesen_sent.html) --- */
.mail-sent-card { margin-bottom: 14px; }
.mail-sent-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}
.mail-back-link {
    color: var(--text-muted);
    text-decoration: none;
    font-size: 13px;
}
.mail-sent-header-actions {
    display: flex;
    gap: var(--space-sm);
    align-items: center;
    flex-wrap: wrap;
}
.mail-sent-subject { margin: 0 0 8px 0; font-size: 18px; }
.mail-sent-meta {
    font-size: 13px;
    color: var(--text-muted);
    line-height: 1.7;
    border-bottom: 1px solid var(--border-subtle);
    padding-bottom: 12px;
    margin-bottom: var(--space-md);
}
.mail-sent-pre {
    background: var(--bg-surface-2);
    padding: 14px;
    border-radius: var(--space-sm);
    font-family: inherit;
    white-space: pre-wrap;
    font-size: 13.5px;
    line-height: 1.6;
}

/* --- Delete-Button im Detail-Header (lesen.html) --- */
.mail-btn-danger {
    background: var(--danger);
    color: var(--text-on-accent);
    border: none;
}


/* ============================================================
   ITER 14 PHASE F.2 — Heilpraktiker + Ferienhaus (Admin-Bereich)
   Files: verticals/heilpraktiker/* + verticals/ferienhaus/*
   Schemas: f2-* (cross-vertical), hp-*, fh-*
   ============================================================ */

/* --- Cross-Vertical Layouts (f2-*) --- */
.f2-grid-2col-mt20 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-top: 20px;
}
.f2-quick-stack {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
    padding: 4px 0;
}
.f2-checklist-item {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    padding: 6px 0;
    font-size: 14px;
}
.f2-checklist-link { text-decoration: none; }
.f2-checklist-link.is-done { color: var(--text-muted); }
.f2-checklist-link.is-todo { color: var(--primary); }

.f2-detail-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    font-size: 14px;
}
.f2-detail-grid-equal {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}
.f2-detail-2col {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 20px;
}
.f2-filter-form {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    width: 100%;
    margin-top: var(--space-sm);
}
.f2-filter-form-right {
    display: flex;
    gap: 6px;
    margin-left: auto;
}
.f2-form-actions {
    display: flex;
    gap: var(--space-sm);
    margin-top: var(--space-md);
}
.f2-checkbox-row {
    display: flex;
    align-items: flex-start;
    gap: var(--space-sm);
}

/* --- Heilpraktiker (hp-*) --- */
.hp-customer-num { color: var(--warm-gray); }
.hp-internal-notes-box {
    margin-top: 12px;
    padding: 12px;
    background: color-mix(in srgb, var(--warning) 12%, var(--bg-surface));
    border-radius: var(--space-sm);
    border-left: 3px solid var(--warning);
}
.hp-status-actions {
    margin-top: var(--space-md);
    display: flex;
    gap: var(--space-sm);
    flex-wrap: wrap;
}
.hp-treatment-row {
    padding: 12px 0;
    border-bottom: 1px solid var(--border-subtle);
}
.hp-treatment-row-head {
    display: flex;
    justify-content: space-between;
    margin-bottom: var(--space-xs);
}
.hp-treatment-meta {
    font-size: 12px;
    color: var(--warm-gray);
}
.hp-treatment-empfehlung {
    font-size: 13px;
    color: var(--primary);
}

/* --- Ferienhaus (fh-*) --- */
.fh-detail-desc {
    color: var(--text-secondary);
    margin-bottom: var(--space-md);
}
.fh-address-box {
    margin-top: var(--space-md);
    padding: 12px;
    background: var(--bg-surface-2);
    border-radius: var(--space-sm);
}
.fh-h3-small {
    font-size: 14px;
    margin-bottom: var(--space-sm);
}
.fh-form-section-h3 {
    margin: 20px 0 10px;
    font-size: 15px;
}
.fh-inline-form-row {
    display: flex;
    gap: var(--space-sm);
    flex-wrap: wrap;
    align-items: flex-end;
}


/* ============================================================
   ITER 14 PHASE F.3 — verify_email Browser-Pages
   verify_email_needed.html (lädt admin.css)
   verify_email_result.html (NEU: lädt admin.css mit Tenant-Var-Support)
   ============================================================ */

/* --- verify_email_needed --- */
.verify-wrap {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--bg-base);
    padding: 24px var(--space-md);
}
.verify-card {
    width: 100%;
    max-width: 480px;
    background: var(--bg-surface);
    border-radius: 14px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.08);
    overflow: hidden;
}
.verify-head {
    padding: 36px 32px var(--space-lg);
    text-align: center;
    background: linear-gradient(135deg, #FFF5E0 0%, #fff 100%);
    border-bottom: 1px solid #EEE9E0;
}
.verify-icon {
    width: 74px;
    height: 74px;
    margin: 0 auto var(--space-md);
    border-radius: 50%;
    background: #FFF5E0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #D9A33A;
}
.verify-icon svg {
    width: 38px;
    height: 38px;
}
.verify-head h1 {
    font-size: 22px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0 0 var(--space-sm);
    font-family: 'Cormorant Garamond', Georgia, serif;
}
.verify-head p {
    font-size: 14px;
    color: #6B6B7B;
    margin: 0;
    line-height: 1.55;
}
.verify-body {
    padding: 28px var(--space-xl);
}
.email-highlight {
    background: var(--bg-base);
    border-radius: var(--space-sm);
    padding: 14px var(--space-md);
    margin-bottom: 20px;
    text-align: center;
    font-size: 14px;
}
.email-highlight strong {
    color: #5B8BA6;
    font-size: 15px;
    word-break: break-all;
}
.verify-steps {
    background: #FAFAF7;
    border-radius: var(--space-sm);
    padding: 18px 20px;
    margin-bottom: 20px;
    font-size: 13.5px;
    line-height: 1.7;
    color: #444;
}
.verify-steps ol {
    margin: 0;
    padding-left: 18px;
}
.verify-steps strong {
    color: var(--text-primary);
}
.verify-actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.btn-verify-resend {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-sm);
    padding: 12px 18px;
    background: #5B8BA6;
    color: var(--text-on-accent);
    border: none;
    border-radius: var(--space-sm);
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    font-family: inherit;
    text-decoration: none;
}
.btn-verify-resend:hover {
    background: #4A7A95;
}
.btn-verify-login {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 12px 18px;
    background: var(--bg-surface);
    color: var(--text-primary);
    border: 1.5px solid #E8E4DE;
    border-radius: var(--space-sm);
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
    text-decoration: none;
}
.btn-verify-login:hover {
    border-color: #5B8BA6;
    color: #5B8BA6;
}
.flash-verify-error {
    background: #FDECEC;
    color: #A5352F;
    border: 1px solid #F5C6C2;
    padding: 12px 14px;
    border-radius: var(--space-sm);
    margin-bottom: var(--space-md);
    font-size: 13px;
    line-height: 1.5;
}
.flash-verify-success {
    background: #E8F5E9;
    color: #2E7D32;
    border: 1px solid #C8E6C9;
    padding: 12px 14px;
    border-radius: var(--space-sm);
    margin-bottom: var(--space-md);
    font-size: 13px;
    line-height: 1.5;
}
.flash-verify-info {
    background: #E3F2FD;
    color: #1565C0;
    border: 1px solid #BBDEFB;
    padding: 12px 14px;
    border-radius: var(--space-sm);
    margin-bottom: var(--space-md);
    font-size: 13px;
    line-height: 1.5;
}

@media (max-width: 520px) {
    .verify-head {
        padding: 28px 22px 20px;
    }
    .verify-body {
        padding: 22px;
    }
}

/* --- verify_email_result (mit dynamischer Tenant-Color via Z.1 inline body-style) ---
   Body bekommt: style="--tenant-primary: #xxx; --tenant-secondary: #xxx;"
   CSS-Klassen nutzen var(--tenant-primary, fallback) für Theming. */
body.result-page {
    font-family: var(--font-body, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);
    background: var(--tenant-secondary, var(--bg-base));
    color: var(--text-primary, #1A1A2E);
    min-height: 100vh;
    margin: 0;
}
.result-wrap {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px var(--space-md);
}
.result-card {
    width: 100%;
    max-width: 460px;
    background: var(--bg-surface);
    border-radius: 14px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.08);
    overflow: hidden;
    animation: result-rise-in 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
}
@keyframes result-rise-in {
    from { opacity: 0; transform: translateY(16px); }
    to { opacity: 1; transform: translateY(0); }
}
.result-head {
    padding: 40px 32px 28px;
    text-align: center;
}
.result-icon {
    width: 84px;
    height: 84px;
    margin: 0 auto 18px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.result-icon.is-success {
    background: color-mix(in srgb, #2D9A5A 14%, #fff);
    color: #2D9A5A;
}
.result-icon.is-warning {
    background: #FFF5E0;
    color: #D9A33A;
}
.result-icon.is-danger {
    background: color-mix(in srgb, #C94343 12%, #fff);
    color: #C94343;
}
.result-icon svg {
    width: 46px;
    height: 46px;
}
.result-head h1 {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 26px;
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: 10px;
}
.result-head p {
    font-size: 14.5px;
    color: #6B6B7B;
    line-height: 1.6;
}
.result-body {
    padding: 0 32px var(--space-xl);
    text-align: center;
}
.result-email-box {
    background: var(--tenant-secondary, var(--bg-base));
    border-radius: var(--space-sm);
    padding: 12px var(--space-md);
    font-size: 14px;
    color: var(--text-primary);
    margin-bottom: 22px;
    word-break: break-all;
}
.result-email-box strong {
    color: var(--tenant-primary, #5B8BA6);
}
.btn-result-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-sm);
    width: 100%;
    padding: 14px 22px;
    background: var(--tenant-primary, #5B8BA6);
    color: var(--text-on-accent);
    border: none;
    border-radius: 10px;
    font-size: 15px;
    font-weight: 600;
    font-family: inherit;
    text-decoration: none;
    cursor: pointer;
    box-shadow: 0 4px 14px color-mix(in srgb, var(--tenant-primary, #5B8BA6) 30%, transparent);
    transition: all 0.2s;
}
.btn-result-primary:hover {
    background: color-mix(in srgb, var(--tenant-primary, #5B8BA6) 85%, #000);
    transform: translateY(-1px);
}
.btn-result-outline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 12px 22px;
    background: var(--bg-surface);
    color: var(--text-primary);
    border: 1.5px solid #E8E4DE;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 500;
    font-family: inherit;
    text-decoration: none;
    cursor: pointer;
    margin-top: 10px;
}
.btn-result-outline:hover {
    border-color: var(--tenant-primary, #5B8BA6);
    color: var(--tenant-primary, #5B8BA6);
}
@media (max-width: 520px) {
    .result-head {
        padding: 32px 22px 22px;
    }
    .result-body {
        padding: 0 22px 22px;
    }
}

/* ═══════════════════════════════════════════════════════════════
   Block 56 (2026-05-07): Kunden-Aktivität — Helper-Klassen
   Premium-Polish-v1-Pattern erweitert in Listen oben (kpi-card,
   row, table, etc.). Hier nur Layout-Helper die kein Pattern haben.
   ═══════════════════════════════════════════════════════════════ */
.kun-akt-kpi-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 12px;
    margin-bottom: 24px;
}
.kun-akt-kpi-card {
    display: flex;
    align-items: center;
    gap: 14px;
}
.kun-akt-kpi-body {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}
.kun-akt-section-title {
    margin: 28px 0 12px;
    font-size: 13px;
    font-weight: 700;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.6px;
}
.kun-akt-section-title:first-of-type { margin-top: 8px; }
.kun-akt-show-all {
    display: inline-block;
    margin-top: 10px;
    font-size: 13px;
    color: var(--primary);
    text-decoration: none;
    font-weight: 600;
}
.kun-akt-show-all:hover { text-decoration: underline; }
.kun-akt-empty {
    padding: 24px;
    color: var(--text-muted);
    font-style: italic;
    background: var(--bg-surface-2);
    border-radius: 8px;
    text-align: center;
}
.kun-akt-table-wrap {
    overflow-x: auto;
    border: 1px solid var(--border);
    border-radius: 8px;
    margin-top: 8px;
}
.kun-akt-table {
    width: 100%;
    border-collapse: collapse;
}
.kun-akt-table thead th {
    padding: 10px 12px;
    text-align: left;
    font-weight: 700;
    font-size: 11px;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.kun-akt-table tbody td {
    padding: 12px;
    font-size: 13px;
    border-bottom: 1px solid var(--border-subtle);
    vertical-align: middle;
}
.kun-akt-row {
    cursor: pointer;
    outline: none;
}
.kun-akt-row:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: -2px;
}
.text-right { text-align: right; }

/* ═══════════════════════════════════════════════════════════════
   Block 57 (2026-05-07): Mitarbeiter-Stammdaten — Detail-Page +
   Aktivitaets-Helper. Premium-Polish-v1-Pattern erweitert oben in
   Selector-Listen (kpi-card, row, table). Hier nur Layout-Helper.
   ═══════════════════════════════════════════════════════════════ */

/* Aktivitaets-Sektion (analog kun-akt-) */
.tm-akt-kpi-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 12px;
    margin-bottom: 24px;
}
.tm-akt-kpi-card {
    display: flex;
    align-items: center;
    gap: 14px;
}
.tm-akt-kpi-body {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}
.tm-akt-section-title {
    margin: 28px 0 12px;
    font-size: 13px;
    font-weight: 700;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.6px;
}
.tm-akt-section-title:first-of-type { margin-top: 8px; }
.tm-akt-empty {
    padding: 24px;
    color: var(--text-muted);
    font-style: italic;
    background: var(--bg-surface-2);
    border-radius: 8px;
    text-align: center;
}
.tm-akt-table-wrap {
    overflow-x: auto;
    border: 1px solid var(--border);
    border-radius: 8px;
    margin-top: 8px;
}
.tm-akt-table {
    width: 100%;
    border-collapse: collapse;
}
.tm-akt-table thead th {
    padding: 10px 12px;
    text-align: left;
    font-weight: 700;
    font-size: 11px;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.tm-akt-table tbody td {
    padding: 12px;
    font-size: 13px;
    border-bottom: 1px solid var(--border-subtle);
    vertical-align: middle;
}
.tm-akt-row {
    cursor: pointer;
    outline: none;
}
.tm-akt-row:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: -2px;
}

/* Mitarbeiter-Detail-Page (Hero, Form, Card-Layouts) */
.tm-det-hero {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
    padding: 24px;
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--primary) 5%, var(--bg-surface)),
        var(--bg-surface));
    border: 1px solid var(--border);
    border-radius: 14px;
    margin-bottom: 20px;
}
.tm-det-hero-main {
    display: flex;
    align-items: center;
    gap: 18px;
    flex: 1;
    min-width: 0;
}
.tm-det-avatar {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-on-accent);
    font-size: 22px;
    font-weight: 700;
    flex-shrink: 0;
}
.tm-det-hero-body { min-width: 0; flex: 1; }
.tm-det-position {
    color: var(--text-muted);
    font-size: 13px;
    margin-bottom: 4px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.tm-det-name {
    font-size: 26px;
    font-weight: 700;
    margin: 0 0 8px;
    color: var(--text-primary);
}
.tm-det-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    font-size: 12px;
    color: var(--text-muted);
}
.tm-det-since,
.tm-det-paused,
.tm-det-anonym {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}
.tm-det-paused { color: var(--warning); }
.tm-det-anonym { color: var(--text-muted); font-style: italic; }
.tm-det-card {
    margin-bottom: 16px;
}
.tm-det-section-title {
    margin: 24px 0 12px;
    font-size: 13px;
    font-weight: 700;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    display: flex;
    align-items: center;
    gap: 6px;
}
.tm-det-section-title:first-child { margin-top: 0; }
.tm-det-hint {
    font-size: 11px;
    color: var(--text-muted);
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
    margin-left: 4px;
}
.tm-det-readonly-hint {
    margin-top: 16px;
    padding: 12px;
    background: var(--bg-surface-2);
    border-left: 3px solid var(--info, var(--primary));
    border-radius: 4px;
    font-size: 13px;
    color: var(--text-muted);
}
.tm-det-grid-2 {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 12px;
    margin-bottom: 12px;
}
.tm-det-grid-3 {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
    margin-bottom: 12px;
}
.tm-det-form-actions {
    margin-top: 24px;
    display: flex;
    justify-content: flex-end;
    gap: 12px;
}
.tm-det-danger-card {
    border: 2px solid color-mix(in srgb, var(--danger) 40%, transparent);
    background: color-mix(in srgb, var(--danger) 3%, var(--bg-surface));
}
.tm-det-anonym-form {
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-width: 500px;
    margin-top: 16px;
}
.tm-det-anonym-form button {
    align-self: flex-start;
}

/* Liste-Page: klickbarer Name als Link */
.tm-name-link {
    color: var(--text-primary);
    text-decoration: none;
    transition: color 0.15s ease;
}
.tm-name-link:hover {
    color: var(--primary);
    text-decoration: underline;
}

/* ═══════════════════════════════════════════════════════════════════════
   Einstellungs-Tab-Bar (.est-tabs + .est-tab)
   Tab-Inkonsistenz-Fix 2026-05-13: aus einstellungen/index.html nach
   admin.css globalisiert. Vorher nur in index.html als inline-<style>
   -> auf rechnungs-template/abo/sicherheit-2fa/avv-Pages fehlte das
   Box-Styling. Single Source of Truth fuer alle 5 Einstellungs-Pages.
   ═══════════════════════════════════════════════════════════════════════ */
.est-tabs {
    display: flex !important;
    gap: 2px;
    padding: 4px;
    background: var(--bg-surface-2);
    border-radius: 10px;
    overflow-x: auto;
    margin-bottom: 20px;
    border: none !important;
}
.est-tab {
    flex: 1;
    min-width: fit-content;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 11px 14px;
    background: transparent !important;
    border: none !important;
    border-radius: 7px !important;
    cursor: pointer;
    font-size: 13px;
    font-weight: 600 !important;
    color: var(--text-muted) !important;
    font-family: inherit;
    text-decoration: none !important;
    transition: background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease !important;
    white-space: nowrap;
}
.est-tab:hover {
    color: var(--primary) !important;
    background: color-mix(in srgb, var(--primary) 8%, transparent) !important;
}
.est-tab.active {
    background: var(--primary) !important;
    color: var(--text-on-accent) !important;
    box-shadow: 0 4px 12px color-mix(in srgb, var(--primary) 35%, transparent) !important;
    font-weight: 700 !important;
}
.est-tab.active .est-tab-icon { color: var(--text-on-accent); }
.est-tab-icon { display: inline-flex; align-items: center; color: inherit; }

/* Mobile */
@media (max-width: 768px) {
    .est-tab { padding: 10px 10px; font-size: 12px; }
    .est-tab-label { display: none; }
}

/* ===================================================================
   Block 84 — Leistungstrenner + Zwischensumme (Angebot-Detail-Liste)
   Nur CSS-Variablen (kein Hardcode-Hex, Regel 20/21), Dark-Mode-safe.
   =================================================================== */
.ang-det-pos-trenner > td {
    background: var(--bg-surface-2);
    border-top: 2px solid var(--border-strong);
    font-weight: 700;
    color: var(--text-primary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 13px;
    padding: 10px 12px;
}
.ang-det-pos-zwsum > td {
    background: color-mix(in srgb, var(--primary) 7%, var(--bg-surface));
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    padding: 10px 12px;
}
.ang-det-zwsum-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 16px;
    font-weight: 700;
    color: var(--text-primary);
}
.ang-det-zwsum-netto { font-variant-numeric: tabular-nums; }
.ang-det-zwsum-split {
    margin-top: 6px;
    display: flex;
    flex-wrap: wrap;
    gap: 4px 16px;
    font-size: 12px;
    color: var(--text-muted);
}
@media (max-width: 768px) {
    .ang-det-zwsum-head { flex-direction: column; gap: 2px; }
    .ang-det-zwsum-split { gap: 2px 10px; }
}

/* ════════════════════════════════════════════════════════════════════
   FIGMA-1:1 SIDEBAR + DRAWER VISUAL-POLISH (2026-05-22)
   ────────────────────────────────────────────────────────────────────
   Hex GEPRÜFT via Figma-MCP get_design_context auf:
   - Frame 20:2 (Sidebar_clean Light)
   - Frame 34:2 (Sidebar_dark)
   - Frame 68:2 (WeitereFunktionen_Expanded_Light)
   Marco-Override-Items bleiben (Header Orange-Strich, Sublines, Step-Cream-
   Kreis, „Alle Funktionen" Label, Support+App-Install im Footer).
   data-section auf .sb-category-header + .sb-item für Per-Section-Theming.
   ════════════════════════════════════════════════════════════════════ */

/* ── Top-Gradient-Overlay 244×200 (Figma 99:4 Light / 101:4 Dark)
   FIX 2026-05-22: Vorher mit ::before + position:relative — das überschrieb
   die existierende `.sidebar { position: fixed }` (Z.2598) und brach das
   Layout (200px Gap zwischen Sidebar und Main-Content). Jetzt via
   background-image direkt — keine Position-Änderung, kein z-index-Konflikt. */
.sidebar {
    background-image: linear-gradient(180deg, rgba(41,74,140,0.05) 0%, rgba(41,74,140,0) 200px, transparent 200px);
    background-repeat: no-repeat;
}
[data-theme="dark"] .sidebar {
    background-image: linear-gradient(180deg, rgba(92,130,173,0.10) 0%, rgba(92,130,173,0) 200px, transparent 200px);
    background-repeat: no-repeat;
}

/* ── Booklera-Brand Color (Figma 99:2 Light / 101:2 Dark) ── */
.sidebar-header .sb-brand__logo,
.sb-brand__logo { color: #294A8C !important; }
[data-theme="dark"] .sidebar-header .sb-brand__logo,
[data-theme="dark"] .sb-brand__logo { color: #5C82AD !important; }

/* ── Per-Section Category-Header Color (Figma 99:9/31/36/45/52) ── */
.sidebar-nav .sb-category-header[data-section="taeglich"]      { color: #294A8C; }
.sidebar-nav .sb-category-header[data-section="zeit-team"]     { color: #2E9959; }
.sidebar-nav .sb-category-header[data-section="ressourcen"]    { color: #F59E12; }
.sidebar-nav .sb-category-header[data-section="kunden"]        { color: #6B9EDB; }
.sidebar-nav .sb-category-header[data-section="kommunikation"] { color: #805933; }

.sidebar-nav .sb-category-header[data-section="taeglich"]::before      { background: #294A8C; opacity: 0.7; }
.sidebar-nav .sb-category-header[data-section="zeit-team"]::before     { background: #2E9959; opacity: 0.7; }
.sidebar-nav .sb-category-header[data-section="ressourcen"]::before    { background: #F59E12; opacity: 0.7; }
.sidebar-nav .sb-category-header[data-section="kunden"]::before        { background: #6B9EDB; opacity: 0.7; }
.sidebar-nav .sb-category-header[data-section="kommunikation"]::before { background: #805933; opacity: 0.7; }

/* Dark-Mode Section-Headers (Figma 101:9/31/36/45/52 — hellere Hues) */
[data-theme="dark"] .sidebar-nav .sb-category-header[data-section="taeglich"]      { color: #6B9EDB; }
[data-theme="dark"] .sidebar-nav .sb-category-header[data-section="zeit-team"]     { color: #5CBA80; }
[data-theme="dark"] .sidebar-nav .sb-category-header[data-section="ressourcen"]    { color: #F59E12; }
[data-theme="dark"] .sidebar-nav .sb-category-header[data-section="kunden"]        { color: #8CBFF2; }
[data-theme="dark"] .sidebar-nav .sb-category-header[data-section="kommunikation"] { color: #C79E6B; }

[data-theme="dark"] .sidebar-nav .sb-category-header[data-section="taeglich"]::before      { background: #6B9EDB; opacity: 0.85; }
[data-theme="dark"] .sidebar-nav .sb-category-header[data-section="zeit-team"]::before     { background: #5CBA80; opacity: 0.85; }
[data-theme="dark"] .sidebar-nav .sb-category-header[data-section="ressourcen"]::before    { background: #F59E12; opacity: 0.85; }
[data-theme="dark"] .sidebar-nav .sb-category-header[data-section="kunden"]::before        { background: #8CBFF2; opacity: 0.85; }
[data-theme="dark"] .sidebar-nav .sb-category-header[data-section="kommunikation"]::before { background: #C79E6B; opacity: 0.85; }

/* ── Per-Section Item-Tint subtiler BG (Figma 112:2-26 / 114:2-26) ── */
.sidebar-nav .sb-item[data-section="taeglich"]      { background-color: #F4F6F9; }
.sidebar-nav .sb-item[data-section="zeit-team"]     { background-color: #F5FAF7; }
.sidebar-nav .sb-item[data-section="ressourcen"]    { background-color: #FEFAF3; }
.sidebar-nav .sb-item[data-section="kunden"]        { background-color: #F8FAFD; }
.sidebar-nav .sb-item[data-section="kommunikation"] { background-color: #F9F7F5; }

/* Hover bewahrt Tint-Charakter (etwas dunkler) */
.sidebar-nav .sb-item[data-section="taeglich"]:hover      { background-color: #EAF0F8; }
.sidebar-nav .sb-item[data-section="zeit-team"]:hover     { background-color: #EBF6EF; }
.sidebar-nav .sb-item[data-section="ressourcen"]:hover    { background-color: #FCF1DC; }
.sidebar-nav .sb-item[data-section="kunden"]:hover        { background-color: #EEF4FB; }
.sidebar-nav .sb-item[data-section="kommunikation"]:hover { background-color: #F0EAE2; }

[data-theme="dark"] .sidebar-nav .sb-item[data-section="taeglich"]      { background-color: #1C222E; }
[data-theme="dark"] .sidebar-nav .sb-item[data-section="zeit-team"]     { background-color: #1B2427; }
[data-theme="dark"] .sidebar-nav .sb-item[data-section="ressourcen"]    { background-color: #27221E; }
[data-theme="dark"] .sidebar-nav .sb-item[data-section="kunden"]        { background-color: #1E2430; }
[data-theme="dark"] .sidebar-nav .sb-item[data-section="kommunikation"] { background-color: #272427; }

[data-theme="dark"] .sidebar-nav .sb-item[data-section="taeglich"]:hover      { background-color: #232A38; }
[data-theme="dark"] .sidebar-nav .sb-item[data-section="zeit-team"]:hover     { background-color: #222C30; }
[data-theme="dark"] .sidebar-nav .sb-item[data-section="ressourcen"]:hover    { background-color: #2F2924; }
[data-theme="dark"] .sidebar-nav .sb-item[data-section="kunden"]:hover        { background-color: #252C39; }
[data-theme="dark"] .sidebar-nav .sb-item[data-section="kommunikation"]:hover { background-color: #2E2A2D; }

/* ── Per-Section Accent-Strip via border-left (Figma 112:3/5/7/9/11/.../27) ── */
.sidebar-nav .sb-item[data-section="taeglich"]      { border-left-color: rgba(41,74,140,0.5); }
.sidebar-nav .sb-item[data-section="zeit-team"]     { border-left-color: rgba(46,153,89,0.5); }
.sidebar-nav .sb-item[data-section="ressourcen"]    { border-left-color: rgba(245,158,18,0.5); }
.sidebar-nav .sb-item[data-section="kunden"]        { border-left-color: rgba(107,158,219,0.5); }
.sidebar-nav .sb-item[data-section="kommunikation"] { border-left-color: rgba(128,89,51,0.5); }

[data-theme="dark"] .sidebar-nav .sb-item[data-section="taeglich"]      { border-left-color: rgba(107,158,219,0.7); }
[data-theme="dark"] .sidebar-nav .sb-item[data-section="zeit-team"]     { border-left-color: rgba(92,186,128,0.7); }
[data-theme="dark"] .sidebar-nav .sb-item[data-section="ressourcen"]    { border-left-color: rgba(245,158,18,0.7); }
[data-theme="dark"] .sidebar-nav .sb-item[data-section="kunden"]        { border-left-color: rgba(140,191,242,0.7); }
[data-theme="dark"] .sidebar-nav .sb-item[data-section="kommunikation"] { border-left-color: rgba(199,158,107,0.7); }

/* Active behält Primary-Akzent (overrides die Accent-Hue) */
.sidebar-nav .sb-item.active[data-section] { border-left-color: var(--primary); }

/* ── Dashboard Active: Gradient + Border-RIGHT 3×22 orange (Figma 99:5+99:6) ── */
.sidebar-nav .sb-dashboard.active {
    background: linear-gradient(90deg, #D6E5FF 0%, #F0F5FF 100%);
    color: #294A8C;
    border-left-color: transparent;
    border-radius: 8px;
    position: relative;
}
.sidebar-nav .sb-dashboard.active::after {
    content: "";
    position: absolute;
    right: -2px;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    height: 22px;
    background: #F59E12;
    border-radius: 2px;
    pointer-events: none;
}
[data-theme="dark"] .sidebar-nav .sb-dashboard.active {
    background: linear-gradient(90deg, rgba(46,69,107,0.55) 0%, rgba(46,69,107,0.25) 100%);
    color: #6B9EDB;
}

/* ── Plantafel Live-Dot grün (Figma 99:26 = Ellipse 7×7 rechts) ── */
.sidebar-nav .sb-item.sb-has-livedot { position: relative; }
.sidebar-nav .sb-item.sb-has-livedot::after {
    content: "";
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #2E9959;
    box-shadow: 0 0 6px rgba(46,153,89,0.7), 0 0 0 2px rgba(46,153,89,0.18);
    pointer-events: none;
    animation: sbLiveDotPulse 2.4s ease-in-out infinite;
}
@keyframes sbLiveDotPulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.55; }
}

/* ── Mode-Toggle solid orange (Figma 100:2 + 101:59 — AlleFunktionenToggle) ── */
.sidebar-nav .sb-mode-toggle-wrap {
    background: transparent;
    border-top: none;
    border-bottom: none;
    padding: 6px 10px;
    margin: 6px 0;
}
.sidebar-nav .sb-mode-toggle {
    background: #F59E12;
    color: #FFFFFF;
    border: 1px solid #F59E12;
    box-shadow: 0 2px 8px rgba(245,158,18,0.4);
}
.sidebar-nav .sb-mode-toggle:hover {
    background: #E5901A;
    color: #FFFFFF;
    border-color: #E5901A;
    box-shadow: 0 4px 12px rgba(245,158,18,0.5);
    transform: translateY(-1px);
}
[data-theme="dark"] .sidebar-nav .sb-mode-toggle {
    background: #F59E12;
    color: #131316;
    box-shadow: 0 2px 12px rgba(245,158,18,0.6);
}
[data-theme="dark"] .sidebar-nav .sb-mode-toggle:hover {
    background: #F8B233;
    color: #131316;
    box-shadow: 0 4px 16px rgba(245,158,18,0.7);
}

/* ── Plan-Info Gradient (Figma 105:2 Light / 106:2 Dark) ── */
.sb-plan-info {
    background: linear-gradient(90deg, #F0F5FF 0%, #FFF7EB 100%);
    border: 1px solid rgba(41,74,140,0.25);
}
.sb-plan-info__title { color: #294A8C; }
.sb-plan-info__sub { color: #8C6633; }
[data-theme="dark"] .sb-plan-info {
    background: linear-gradient(90deg, #293352 0%, #291A0A 100%);
    border-color: rgba(245,158,18,0.4);
}
[data-theme="dark"] .sb-plan-info__title { color: #F5C75C; }
[data-theme="dark"] .sb-plan-info__sub   { color: #D9B273; }

/* ── Step-Num Dark-Color (Figma 101:11/17/23/28 = #F5C75C statt #F8B233) ── */
[data-theme="dark"] .sidebar-nav .sb-step-num {
    background: rgba(245,199,92,0.15);
    color: #F5C75C;
}
[data-theme="dark"] .sidebar-nav .sb-workflow-step.active .sb-step-num {
    background: #F5C75C;
    color: #131316;
}

/* ════════════════════════════════════════════════════════════════════
   DRAWER PER-SECTION THEMING (Frame 68:2 — 6 Sub-Groups + Container)
   ════════════════════════════════════════════════════════════════════ */

/* Container: rounded-16 + 2-layer Shadow (Figma 68:2-container) — NUR Desktop */
@media (min-width: 769px) {
    .bk-allfn-drawer {
        border-radius: 16px 0 0 16px;
        box-shadow: 0 4px 8px rgba(0,0,0,0.06), 0 20px 60px rgba(41,74,140,0.18);
    }
    [data-theme="dark"] .bk-allfn-drawer {
        box-shadow: 0 4px 8px rgba(0,0,0,0.20), 0 20px 60px rgba(0,0,0,0.55);
    }
}

/* Mobile-Override (Marco-Bug 2026-05-22: Drawer nicht voll sichtbar, Texte
   abgeschnitten). Forcierte Full-Width via !important damit die Cascade
   nicht von anderen Regeln (Polish-Block oder Vendor-CSS) brechen kann. */
@media (max-width: 768px) {
    .bk-allfn-drawer {
        width: 100vw !important;
        max-width: 100vw !important;
        right: 0 !important;
        left: auto !important;
        border-radius: 0 !important;
        border-left: none !important;
        box-shadow: -4px 0 24px rgba(0,0,0,0.25) !important;
    }
    .bk-allfn-drawer__head {
        padding: 16px 18px !important;
        gap: 12px !important;
    }
    .bk-allfn-drawer__title {
        font-size: 18px !important;
    }
    .bk-allfn-drawer__hint {
        font-size: 12px !important;
    }
    .bk-allfn-drawer__body {
        padding: 16px 18px !important;
    }
    .bk-allfn-drawer__grid {
        grid-template-columns: 1fr !important;
        gap: 18px !important;
    }
    .bk-allfn-item {
        padding: 11px 12px;
        font-size: 13px;
    }
}

/* Header BG cream + 2px Gradient-Separator orange→blau (Figma 102:2 + 102:3) */
.bk-allfn-drawer__head {
    background: #FCF7F0;
    border-bottom: 2px solid transparent;
    border-image: linear-gradient(90deg, #F59E12 0%, #294A8C 100%) 1;
}
[data-theme="dark"] .bk-allfn-drawer__head {
    background: #1D1B16;
}

/* Per-Section Sub-Group-Titles (6 Themes — Figma 102:9/23/50/61/75/89) */
.bk-allfn-group[data-section="mat-lager"]   .bk-allfn-group__title { color: #8C731A; }
.bk-allfn-group[data-section="ang-kalk"]    .bk-allfn-group__title { color: #294A8C; }
.bk-allfn-group[data-section="baustelle"]   .bk-allfn-group__title { color: #D14242; }
.bk-allfn-group[data-section="finanzen"]    .bk-allfn-group__title { color: #2E9959; }
.bk-allfn-group[data-section="netzwerk"]    .bk-allfn-group__title { color: #4D5C73; }
.bk-allfn-group[data-section="verwaltung"]  .bk-allfn-group__title { color: #8C8C9E; }

/* Per-Section Item-Cards mit Section-Tint + 3px Border-Left (Figma 102:11-114) */
.bk-allfn-group[data-section="mat-lager"]   .bk-allfn-item { background: #F8F7F1; border-color: rgba(140,115,26,0.3);  border-left: 3px solid rgba(140,115,26,0.55); }
.bk-allfn-group[data-section="ang-kalk"]    .bk-allfn-item { background: #F2F4F8; border-color: rgba(41,74,140,0.3);   border-left: 3px solid rgba(41,74,140,0.55); }
.bk-allfn-group[data-section="baustelle"]   .bk-allfn-item { background: #FCF4F4; border-color: rgba(209,66,66,0.3);   border-left: 3px solid rgba(209,66,66,0.55); }
.bk-allfn-group[data-section="finanzen"]    .bk-allfn-item { background: #F2F9F5; border-color: rgba(46,153,89,0.3);   border-left: 3px solid rgba(46,153,89,0.55); }
.bk-allfn-group[data-section="netzwerk"]    .bk-allfn-item { background: #F4F5F7; border-color: rgba(77,92,115,0.35);  border-left: 3px solid rgba(77,92,115,0.6); }
.bk-allfn-group[data-section="verwaltung"]  .bk-allfn-item { background: #F8F8F9; border-color: rgba(140,140,158,0.3); border-left: 3px solid rgba(140,140,158,0.55); }

/* Hover-Effekt pro Section (subtile Section-Color als Hover-Background) */
.bk-allfn-group[data-section="mat-lager"]   .bk-allfn-item:hover { background: rgba(140,115,26,0.10); border-color: rgba(140,115,26,0.55); }
.bk-allfn-group[data-section="ang-kalk"]    .bk-allfn-item:hover { background: rgba(41,74,140,0.10);  border-color: rgba(41,74,140,0.55); }
.bk-allfn-group[data-section="baustelle"]   .bk-allfn-item:hover { background: rgba(209,66,66,0.10);  border-color: rgba(209,66,66,0.55); }
.bk-allfn-group[data-section="finanzen"]    .bk-allfn-item:hover { background: rgba(46,153,89,0.10);  border-color: rgba(46,153,89,0.55); }
.bk-allfn-group[data-section="netzwerk"]    .bk-allfn-item:hover { background: rgba(77,92,115,0.10);  border-color: rgba(77,92,115,0.6); }
.bk-allfn-group[data-section="verwaltung"]  .bk-allfn-item:hover { background: rgba(140,140,158,0.10); border-color: rgba(140,140,158,0.55); }

/* Dark-Mode Drawer (Frame 73:2 Sub-Group-Theming) */
[data-theme="dark"] .bk-allfn-group[data-section="mat-lager"]   .bk-allfn-group__title { color: #D9B273; }
[data-theme="dark"] .bk-allfn-group[data-section="ang-kalk"]    .bk-allfn-group__title { color: #6B9EDB; }
[data-theme="dark"] .bk-allfn-group[data-section="baustelle"]   .bk-allfn-group__title { color: #D87575; }
[data-theme="dark"] .bk-allfn-group[data-section="finanzen"]    .bk-allfn-group__title { color: #5DBA80; }
[data-theme="dark"] .bk-allfn-group[data-section="netzwerk"]    .bk-allfn-group__title { color: #8CA0B8; }
[data-theme="dark"] .bk-allfn-group[data-section="verwaltung"]  .bk-allfn-group__title { color: #BFC4CC; }

[data-theme="dark"] .bk-allfn-group[data-section="mat-lager"]   .bk-allfn-item { background: #27221E; border-color: rgba(217,178,115,0.3); border-left-color: rgba(217,178,115,0.5); color: #EBEBF5; }
[data-theme="dark"] .bk-allfn-group[data-section="ang-kalk"]    .bk-allfn-item { background: #1E2430; border-color: rgba(107,158,219,0.3); border-left-color: rgba(107,158,219,0.5); color: #EBEBF5; }
[data-theme="dark"] .bk-allfn-group[data-section="baustelle"]   .bk-allfn-item { background: #2E1E1E; border-color: rgba(216,117,117,0.3); border-left-color: rgba(216,117,117,0.5); color: #EBEBF5; }
[data-theme="dark"] .bk-allfn-group[data-section="finanzen"]    .bk-allfn-item { background: #1B2A22; border-color: rgba(93,186,128,0.3);  border-left-color: rgba(93,186,128,0.5); color: #EBEBF5; }
[data-theme="dark"] .bk-allfn-group[data-section="netzwerk"]    .bk-allfn-item { background: #1F2530; border-color: rgba(140,160,184,0.35); border-left-color: rgba(140,160,184,0.55); color: #EBEBF5; }
[data-theme="dark"] .bk-allfn-group[data-section="verwaltung"]  .bk-allfn-item { background: #232735; border-color: rgba(191,196,204,0.3); border-left-color: rgba(191,196,204,0.5); color: #EBEBF5; }

[data-theme="dark"] .bk-allfn-group[data-section="mat-lager"]   .bk-allfn-item:hover { background: #2F2924; }
[data-theme="dark"] .bk-allfn-group[data-section="ang-kalk"]    .bk-allfn-item:hover { background: #252C39; }
[data-theme="dark"] .bk-allfn-group[data-section="baustelle"]   .bk-allfn-item:hover { background: #3A2424; }
[data-theme="dark"] .bk-allfn-group[data-section="finanzen"]    .bk-allfn-item:hover { background: #1F3328; }
[data-theme="dark"] .bk-allfn-group[data-section="netzwerk"]    .bk-allfn-item:hover { background: #252E3A; }
[data-theme="dark"] .bk-allfn-group[data-section="verwaltung"]  .bk-allfn-item:hover { background: #2A2F40; }

/* ════════════════════════════════════════════════════════════════════
   END Figma-1:1 Sidebar+Drawer Polish
   ════════════════════════════════════════════════════════════════════ */

/* ════════════════════════════════════════════════════════════════════
   Sidebar-Favoriten (Marco 2026-07-13, Kundenwunsch): Stern-Buttons im
   Alle-Funktionen-Drawer (nur owner/meister). Link + Stern teilen sich
   die Zeile via Flex; der Stern ist ein Mini-POST-Form-Button.
   ════════════════════════════════════════════════════════════════════ */
.bk-allfn-group__list li { display: flex; align-items: center; gap: 4px; }
.bk-allfn-group__list li .bk-allfn-item { flex: 1 1 auto; min-width: 0; }
.bk-allfn-fav-form { display: inline-flex; margin: 0; flex: 0 0 auto; }
.bk-allfn-fav {
    display: inline-flex; align-items: center; justify-content: center;
    background: none; border: none; cursor: pointer;
    padding: 5px; border-radius: 6px; color: var(--text-muted);
}
.bk-allfn-fav:hover {
    color: var(--warning);
    background: color-mix(in srgb, var(--warning) 14%, transparent);
}
.bk-allfn-fav--active { color: var(--warning); }
.bk-allfn-fav--active svg { fill: currentColor; }


/* ════════════════════════════════════════════════════════════════════
   bk-detail-kpi-* — KPI-Box für Detail-Views (Marco 2026-05-27)
   Senf-Bronze warm: Light #B8862F, Dark #E3B45A
   Figma Variante 4 — Page 236:2
   ════════════════════════════════════════════════════════════════════ */
:root {
    --bk-kpi-bronze: #294A8C; /* Marco-Fix 2026-05-27: war Bronze #B8862F, jetzt TÄGLICH-Sidebar-Blau */
}
[data-theme="dark"] {
    --bk-kpi-bronze: #6B9EDB; /* Marco-Fix 2026-05-27: war Bronze-Dark #E3B45A, jetzt TÄGLICH-Sidebar-Blau-Dark */
}

.bk-detail-kpi {
    background: var(--bg-surface);
    border: 1.5px solid color-mix(in srgb, var(--bk-kpi-bronze) 40%, transparent);
    border-radius: 14px;
    box-shadow: 0 4px 18px color-mix(in srgb, var(--bk-kpi-bronze) 20%, transparent);
    padding: 20px;
    margin-bottom: 20px;
}

.bk-detail-kpi__header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
}
.bk-detail-kpi__header-bubble {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    background: color-mix(in srgb, var(--bk-kpi-bronze) 20%, transparent);
    color: var(--bk-kpi-bronze);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.bk-detail-kpi__header-title {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
}

.bk-detail-kpi__divider {
    height: 1px;
    background: var(--border);
    opacity: 0.3;
    margin: 0 -20px 16px -20px;
}

.bk-detail-kpi__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 16px 20px;
}

.bk-detail-kpi__stat {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
}
.bk-detail-kpi__stat-bubble {
    width: 44px;
    height: 44px;
    border-radius: 11px;
    background: color-mix(in srgb, var(--bk-kpi-bronze) 20%, transparent);
    color: var(--bk-kpi-bronze);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 20px;
    font-weight: 700;
}
.bk-detail-kpi__stat-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    overflow: hidden;
}
.bk-detail-kpi__stat-label {
    font-size: 10px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.bk-detail-kpi__stat-value {
    font-size: 18px;
    font-weight: 700;
    color: var(--text-primary);
    word-break: break-word;
}
.bk-detail-kpi__stat-value--warn {
    color: var(--warning);
}

/* ════════════════════════════════════════════════════════════════════
   END bk-detail-kpi-* Senf-Bronze KPI-Box
   ════════════════════════════════════════════════════════════════════ */


/* ════════════════════════════════════════════════════════════════════
   Angebot-Detail-Page: ALLE Container in Senf-Bronze (Marco 2026-05-27)
   Wrapper .ang-det-page (in angebot_detail.html) scoped die Regel
   nur auf diese Seite. Andere Pages bleiben unverändert.
   Greift jeden .card-Container + die spezifischen ang-det-*-Cards.
   Innere .ang-aw-kpi-card behalten ihre individuellen Farben.
   ════════════════════════════════════════════════════════════════════ */
.ang-det-page .card,
.ang-det-page .ang-det-banner,
.ang-det-page .ang-det-workflow-card,
.ang-det-page .ang-aw-kpi-grid,
.ang-det-page .ang-det-header,
.ang-det-page .ang-det-tabs {
    border: 1.5px solid color-mix(in srgb, var(--bk-kpi-bronze) 40%, transparent);
    border-radius: 14px;
    box-shadow: 0 4px 18px color-mix(in srgb, var(--bk-kpi-bronze) 20%, transparent);
}
/* ang-aw-kpi-grid braucht Padding wenn es jetzt eine eigene Box ist */
.ang-det-page .ang-aw-kpi-grid {
    padding: 20px;
    background: var(--bg-surface);
}

/* Angebote-Liste: alle Container in Senf-Bronze (Marco 2026-05-27) */
.ang-liste-page .card,
.ang-liste-page .tool-info-banner,
.ang-liste-page .hw-tool-info {
    border: 1.5px solid color-mix(in srgb, var(--bk-kpi-bronze) 40%, transparent);
    border-radius: 14px;
    box-shadow: 0 4px 18px color-mix(in srgb, var(--bk-kpi-bronze) 20%, transparent);
}

/* Sexy Bronze-Gradient-Trenner zwischen Tabs (Marco 2026-05-27) */
.ang-det-page .ang-det-tabs > .ang-det-tab {
    position: relative;
}
.ang-det-page .ang-det-tabs > .ang-det-tab:not(:last-child)::after {
    content: '';
    position: absolute;
    right: 0;
    top: 20%;
    bottom: 20%;
    width: 1px;
    background: linear-gradient(180deg,
        transparent 0%,
        color-mix(in srgb, var(--bk-kpi-bronze) 60%, transparent) 50%,
        transparent 100%);
    pointer-events: none;
}

/* ════════════════════════════════════════════════════════════════════
   END Angebot-Detail Container Bronze
   ════════════════════════════════════════════════════════════════════ */

/* ════════════════════════════════════════════════════════════════════
   AUFTRAEGE Olive/Khaki — V4 (Marco 2026-05-27, Figma Page 253:2)
   Hex Light #7A8C3F  ·  Dark #A8B86C
   ════════════════════════════════════════════════════════════════════ */
:root {
    --bk-auf-olive: #294A8C; /* Marco-Fix 2026-05-27: war Olive #7A8C3F, jetzt TÄGLICH-Sidebar-Blau */
}
[data-theme="dark"] {
    --bk-auf-olive: #6B9EDB; /* Marco-Fix 2026-05-27: war Olive-Dark #A8B86C, jetzt TÄGLICH-Sidebar-Blau-Dark */
}

/* Auftraege-Liste: alle Container in Olive/Khaki */
.auf-liste-page .card,
.auf-liste-page .tool-info-banner,
.auf-liste-page .hw-tool-info {
    border: 1.5px solid color-mix(in srgb, var(--bk-auf-olive) 40%, transparent);
    border-radius: 14px;
    box-shadow: 0 4px 18px color-mix(in srgb, var(--bk-auf-olive) 20%, transparent);
}

/* Auftrag-Detail + Sub-Pages: ALLE Container in Olive/Khaki (Marco 2026-05-27) */
.auf-det-page .card,
.auf-det-page .tool-info-banner,
.auf-det-page .hw-tool-info,
.auf-det-page .pt-banner,
.auf-det-page .auftr-stepper,
.auf-det-page .auftr-baudoku-card,
.auf-det-page .auftr-chat-card,
.auf-det-page .auftr-nachkalk-card,
/* Sub-Pages: maengel/bautagebuch KPI-Karten + nachtrag-Banner */
.auf-det-page .mg-kpi-card,
.auf-det-page .bt-kpi-card,
.auf-det-page .nachtrag-success-banner {
    border: 1.5px solid color-mix(in srgb, var(--bk-auf-olive) 40%, transparent);
    border-radius: 14px;
    box-shadow: 0 4px 18px color-mix(in srgb, var(--bk-auf-olive) 20%, transparent);
}

/* BUG-FIX: Sub-Tabs hidden-Attribute respektieren (Pill-Override hatte das gebrochen) */
.auf-det-page .auftrag-subtabs[hidden] {
    display: none !important;
}

/* ────────────────────────────────────────────────────────────────────
   Tabs als PILLS (Marco 2026-05-27 — einheitlich wie .auftr-status-pills)
   .auftrag-tabs + .auftrag-subtabs = Recess-Container
   .auftrag-tab = Pill (Olive-Active mit Lift-Shadow)
   Override Inline-Style aus auftrag_detail.html (Specificity per !important)
   ──────────────────────────────────────────────────────────────────── */
.auf-det-page .auftrag-tabs,
.auf-det-page .auftrag-subtabs {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    padding: 4px !important;
    background: var(--bg-surface-2) !important;
    border: 1px solid var(--border) !important;
    border-bottom: 1px solid var(--border) !important;
    border-radius: 10px !important;
    box-shadow: inset 0 1px 3px rgba(0,0,0,0.05);
    margin-bottom: 12px !important;
    align-items: center;
}
[data-theme="dark"] .auf-det-page .auftrag-tabs,
[data-theme="dark"] .auf-det-page .auftrag-subtabs {
    box-shadow: inset 0 1px 3px rgba(0,0,0,0.3);
}

/* Pill-Shape pro Tab (überschreibt Underline-Pattern) */
.auf-det-page .auftrag-tab {
    --pill-color: var(--bk-auf-olive);
    padding: 8px 14px !important;
    background: transparent !important;
    border: none !important;
    border-bottom: none !important;
    border-radius: 7px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: var(--text-muted) !important;
    margin-bottom: 0 !important;
    box-shadow: none !important;
}
.auf-det-page .auftrag-tab:hover:not(.active) {
    background: color-mix(in srgb, var(--bk-auf-olive) 10%, transparent) !important;
    color: var(--text-primary) !important;
    border-bottom: none !important;
}
.auf-det-page .auftrag-tab.active {
    background: var(--bk-auf-olive) !important;
    color: var(--text-on-accent) !important;
    border-bottom: none !important;
    box-shadow:
        0 2px 6px color-mix(in srgb, var(--bk-auf-olive) 40%, transparent),
        0 4px 14px color-mix(in srgb, var(--bk-auf-olive) 20%, transparent) !important;
    transform: translateY(-1px);
}
.auf-det-page .auftrag-tab.active .auftrag-tab-icon {
    color: var(--text-on-accent) !important;
}

/* Dreieck-Indicator unter aktivem Tab WEG (Pills brauchen das nicht) */
.auf-det-page .auftrag-tab.active::after {
    display: none !important;
}

/* Active-Tab Count-Badge: Light auf Dark */
.auf-det-page .auftrag-tab.active .auftrag-tab-count {
    background: rgba(255,255,255,0.25) !important;
    color: var(--text-on-accent) !important;
}
/* ════════════════════════════════════════════════════════════════════
   END Auftraege Olive
   ════════════════════════════════════════════════════════════════════ */

/* ════════════════════════════════════════════════════════════════════
   PLANTAFEL Petrol/Teal — V2 (Marco 2026-05-27, Figma Page 260:2)
   Hex Light #0E5B72  ·  Dark #3FB3D6
   ════════════════════════════════════════════════════════════════════ */
:root {
    --bk-pt-petrol: #294A8C; /* Marco-Fix 2026-05-27: war Petrol #0E5B72, jetzt TÄGLICH-Sidebar-Blau */
}
[data-theme="dark"] {
    --bk-pt-petrol: #6B9EDB; /* Marco-Fix 2026-05-27: war Petrol-Dark #3FB3D6, jetzt TÄGLICH-Sidebar-Blau-Dark */
}

/* Plantafel: alle Container in Petrol/Teal */
.pt-page .card,
.pt-page .tool-info-banner,
.pt-page .hw-tool-info,
.pt-page .pt-trainer-card,
.pt-page .pt-unassigned-bar,
.pt-page .pt-nav-card {
    border: 1.5px solid color-mix(in srgb, var(--bk-pt-petrol) 40%, transparent);
    border-radius: 14px;
    box-shadow: 0 4px 18px color-mix(in srgb, var(--bk-pt-petrol) 20%, transparent);
}

/* Toolbar-Layout: Actions LINKS füllen, KW + Pfeile zusammen RECHTS (Marco 2026-05-27) */
.pt-page .pt-nav-card {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 18px !important;
    padding: 12px 18px !important;
    flex-wrap: wrap;
}
.pt-page .pt-nav-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    order: 1;
    flex-grow: 1;      /* Nimmt allen verfügbaren Platz → drängt KW + Pfeile nach rechts */
}
.pt-page .pt-nav-kw {
    display: flex;
    flex-direction: row;   /* KW + Datum nebeneinander */
    align-items: baseline;
    gap: 10px;
    order: 2;
    white-space: nowrap;
}
.pt-page .pt-nav-kw-num {
    font-weight: 700;
    color: var(--bk-pt-petrol);
}
.pt-page .pt-nav-kw-range {
    color: var(--text-secondary);
    font-size: 13px;
}
.pt-page .pt-nav-wochen {
    display: flex;
    align-items: center;
    gap: 6px;
    order: 3;
}

/* Plantafel-Toolbar Buttons als Pills (Marco-Wunsch: "schöner mit pills") */
.pt-page .pt-nav-btn,
.pt-page .pt-nav-today,
.pt-page .pt-nav-arrow {
    border-radius: 999px !important;
    transition: all 0.18s ease !important;
}

/* Hover-States für alle Pills in Petrol */
.pt-page .pt-nav-btn:not(.btn-primary):hover,
.pt-page .pt-nav-today:hover,
.pt-page .pt-nav-arrow:hover {
    background: color-mix(in srgb, var(--bk-pt-petrol) 12%, transparent) !important;
    color: var(--bk-pt-petrol) !important;
    border-color: color-mix(in srgb, var(--bk-pt-petrol) 30%, transparent) !important;
}

/* Termin-Button (primary): Petrol als Pill */
.pt-page .pt-nav-btn.btn-primary {
    background: var(--bk-pt-petrol) !important;
    border-color: var(--bk-pt-petrol) !important;
    color: var(--text-on-accent) !important;
    box-shadow:
        0 2px 6px color-mix(in srgb, var(--bk-pt-petrol) 40%, transparent),
        0 4px 14px color-mix(in srgb, var(--bk-pt-petrol) 20%, transparent) !important;
}
.pt-page .pt-nav-btn.btn-primary:hover {
    background: color-mix(in srgb, var(--bk-pt-petrol) 85%, black) !important;
    transform: translateY(-1px);
}
/* Plantafel-Modal (Einsatz bearbeiten / Multi-Day): Petrol-Border + Pills */
.pt-page .pt-modal-content {
    border: 1.5px solid color-mix(in srgb, var(--bk-pt-petrol) 40%, transparent) !important;
    border-radius: 14px !important;
    box-shadow:
        0 4px 18px color-mix(in srgb, var(--bk-pt-petrol) 25%, transparent),
        0 12px 40px rgba(0,0,0,0.35) !important;
}

/* Modal-Titel Petrol-Akzent */
.pt-page .pt-modal-content .pt-modal-h3 {
    color: var(--bk-pt-petrol);
}

/* Alle Buttons innerhalb Plantafel-Modal als Pills */
.pt-page .pt-modal-content .btn {
    border-radius: 999px !important;
    transition: all 0.18s ease;
}

/* Primary-Buttons (Speichern, Zweiten Mitarbeiter einteilen) = Petrol-Pill */
.pt-page .pt-modal-content .btn-primary,
.pt-page .pt-modal-content .pt-add-person-btn {
    background: var(--bk-pt-petrol) !important;
    border-color: var(--bk-pt-petrol) !important;
    color: var(--text-on-accent) !important;
    box-shadow:
        0 2px 6px color-mix(in srgb, var(--bk-pt-petrol) 40%, transparent),
        0 4px 14px color-mix(in srgb, var(--bk-pt-petrol) 20%, transparent) !important;
}
.pt-page .pt-modal-content .btn-primary:hover,
.pt-page .pt-modal-content .pt-add-person-btn:hover {
    background: color-mix(in srgb, var(--bk-pt-petrol) 85%, black) !important;
    transform: translateY(-1px);
}

/* Secondary-Buttons (Abbrechen, Zeiten löschen): Petrol-Hover */
.pt-page .pt-modal-content .btn-secondary:hover {
    background: color-mix(in srgb, var(--bk-pt-petrol) 10%, transparent) !important;
    border-color: color-mix(in srgb, var(--bk-pt-petrol) 30%, transparent) !important;
    color: var(--bk-pt-petrol) !important;
}

/* Subtitle "Weiteren Mitarbeiter…" Akzent in Petrol */
.pt-page .pt-modal-content .pt-add-person-title {
    color: var(--bk-pt-petrol) !important;
}
.pt-page .pt-modal-content .pt-add-person-section {
    border-top: 1px solid color-mix(in srgb, var(--bk-pt-petrol) 25%, transparent);
    padding-top: 16px;
    margin-top: 16px;
}
/* ════════════════════════════════════════════════════════════════════
   END Plantafel Petrol
   ════════════════════════════════════════════════════════════════════ */

/* ════════════════════════════════════════════════════════════════════
   KALENDER Stahl-Silber — V3 (Marco 2026-05-27, Figma Page 262:2)
   Hex Light #5C6877  ·  Dark #A8B2BF
   ════════════════════════════════════════════════════════════════════ */
:root {
    --bk-kal-silber: #294A8C; /* Marco-Fix 2026-05-27: war Silber #5C6877, jetzt TÄGLICH-Sidebar-Blau */
}
[data-theme="dark"] {
    --bk-kal-silber: #6B9EDB; /* Marco-Fix 2026-05-27: war Silber-Dark #A8B2BF, jetzt TÄGLICH-Sidebar-Blau-Dark */
}

/* Kalender: alle Container in Silber */
.kal-page .card,
.kal-page .tool-info-banner,
.kal-page .hw-tool-info,
.kal-page .kk-tip,
.kal-page .kk-assign-modal,
.kal-page #kalender {
    border: 1.5px solid color-mix(in srgb, var(--bk-kal-silber) 40%, transparent);
    border-radius: 14px;
    box-shadow: 0 4px 18px color-mix(in srgb, var(--bk-kal-silber) 20%, transparent);
}
.kal-page #kalender {
    padding: 16px;
    background: var(--bg-surface);
}

/* Kalender + FullCalendar Buttons als Pills */
.kal-page .btn,
.kal-page .fc-button {
    border-radius: 999px !important;
    transition: all 0.18s ease;
}

/* Primary-Button (Termin) = Silber-Pill mit Lift */
.kal-page .btn-primary {
    background: var(--bk-kal-silber) !important;
    border-color: var(--bk-kal-silber) !important;
    color: var(--text-on-accent) !important;
    box-shadow:
        0 2px 6px color-mix(in srgb, var(--bk-kal-silber) 40%, transparent),
        0 4px 14px color-mix(in srgb, var(--bk-kal-silber) 20%, transparent) !important;
}
.kal-page .btn-primary:hover {
    background: color-mix(in srgb, var(--bk-kal-silber) 85%, black) !important;
    transform: translateY(-1px);
}

/* Secondary-Buttons (Wochenansicht): Silber-Hover */
.kal-page .btn-secondary:hover {
    background: color-mix(in srgb, var(--bk-kal-silber) 12%, transparent) !important;
    border-color: color-mix(in srgb, var(--bk-kal-silber) 30%, transparent) !important;
    color: var(--bk-kal-silber) !important;
}

/* FullCalendar: aktiver Tab (Tag/Woche/Monat/Jahr) = Silber-Active */
.kal-page .fc-button-active,
.kal-page .fc-button-primary:not(:disabled).fc-button-active {
    background: var(--bk-kal-silber) !important;
    border-color: var(--bk-kal-silber) !important;
    color: var(--text-on-accent) !important;
    box-shadow:
        0 2px 6px color-mix(in srgb, var(--bk-kal-silber) 40%, transparent),
        0 4px 14px color-mix(in srgb, var(--bk-kal-silber) 20%, transparent) !important;
}
/* FullCalendar: inaktive Tabs (Tag/Woche/Jahr) = transparent mit Hover */
.kal-page .fc-button-primary:not(.fc-button-active) {
    background: transparent !important;
    color: var(--text-secondary) !important;
    border-color: color-mix(in srgb, var(--bk-kal-silber) 25%, transparent) !important;
}
.kal-page .fc-button-primary:not(.fc-button-active):hover {
    background: color-mix(in srgb, var(--bk-kal-silber) 12%, transparent) !important;
    color: var(--bk-kal-silber) !important;
    border-color: color-mix(in srgb, var(--bk-kal-silber) 40%, transparent) !important;
}

/* Modal-Titel "Mitarbeiter einplanen" Silber */
.kal-page .kk-assign-modal-h3 {
    color: var(--bk-kal-silber);
}
/* ════════════════════════════════════════════════════════════════════
   END Kalender Silber
   ════════════════════════════════════════════════════════════════════ */

/* ════════════════════════════════════════════════════════════════════
   ZEITERFASSUNG + ABWESENHEITEN Smaragd-Glow — V1 (Marco 2026-05-27)
   Hex Light #0F6B47  ·  Dark #3FD194
   ════════════════════════════════════════════════════════════════════ */
:root { --bk-zt-smaragd: #0F6B47; }
[data-theme="dark"] { --bk-zt-smaragd: #3FD194; }

.zt-page .card,
.zt-page .tool-info-banner,
.zt-page .hw-tool-info,
.zt-page .zt-quicknav,
.zt-page .zt-live-card,
.zt-page .zt-stamp-card,
.zt-page .zt-ki-card,
.zt-page .zt-week-card,
.zt-page .zt-manual-card,
.abw-page .card,
.abw-page .tool-info-banner,
.abw-page .hw-tool-info,
.abw-page .abw-form-card,
.abw-page .abw-list-card {
    border: 1.5px solid color-mix(in srgb, var(--bk-zt-smaragd) 45%, transparent) !important;
    border-radius: 14px !important;
    box-shadow: 0 4px 22px color-mix(in srgb, var(--bk-zt-smaragd) 25%, transparent) !important;
}

.zt-page .btn,
.abw-page .btn {
    border-radius: 999px !important;
    transition: all 0.18s ease;
}

.zt-page .btn-primary,
.abw-page .btn-primary {
    background: var(--bk-zt-smaragd) !important;
    border-color: var(--bk-zt-smaragd) !important;
    color: var(--text-on-accent) !important;
    box-shadow:
        0 2px 8px color-mix(in srgb, var(--bk-zt-smaragd) 50%, transparent),
        0 4px 18px color-mix(in srgb, var(--bk-zt-smaragd) 30%, transparent) !important;
}
.zt-page .btn-primary:hover,
.abw-page .btn-primary:hover {
    background: color-mix(in srgb, var(--bk-zt-smaragd) 85%, black) !important;
    transform: translateY(-1px);
}

.zt-page .btn-secondary:hover,
.abw-page .btn-secondary:hover {
    background: color-mix(in srgb, var(--bk-zt-smaragd) 14%, transparent) !important;
    border-color: color-mix(in srgb, var(--bk-zt-smaragd) 35%, transparent) !important;
    color: var(--bk-zt-smaragd) !important;
}

.zt-page .zt-ki-badge {
    background: var(--bk-zt-smaragd) !important;
    color: var(--text-on-accent) !important;
}

.zt-page .zt-quicknav-arrow { color: var(--bk-zt-smaragd) !important; }
/* ════════════════════════════════════════════════════════════════════
   END Zeiterfassung + Abwesenheiten Smaragd
   ════════════════════════════════════════════════════════════════════ */

/* ════════════════════════════════════════════════════════════════════
   RESSOURCEN-Familie Sidebar-Orange — (Marco-Fix 2026-05-27)
   17 Templates: Material/Lager/Fuhrpark/Aufmaß/GAEB/Leistungen/KI-Angebot/Vorlagen
   Hex Light #F59E12  ·  Dark #F59E12  (exakt Sidebar-Header-Farbe)
   Vorher fälschlich Pures Gold V4 #F1C232/#FFD757 (gelblich, falsche Sektion-Farbe)
   ════════════════════════════════════════════════════════════════════ */
:root { --bk-mat-gold: #F59E12; }
[data-theme="dark"] { --bk-mat-gold: #F59E12; }

/* Alle Container in Gold (Ressourcen-Familie via .mat-page Wrapper) */
.mat-page .card,
.mat-page .tool-info-banner,
.mat-page .hw-tool-info,
.mat-page .lag-kpi-card,
.mat-page .mat-kpi-card,
.mat-page .fz-kpi-card,
.mat-page .aufm-center-card,
.mat-page .aufm-foto-card,
.mat-page .aufm-empty,
.mat-page .stueck-wrap > .card {
    border: 1.5px solid color-mix(in srgb, var(--bk-mat-gold) 50%, transparent) !important;
    border-radius: 14px !important;
    box-shadow: 0 4px 22px color-mix(in srgb, var(--bk-mat-gold) 30%, transparent) !important;
}

/* Buttons als Pills */
.mat-page .btn {
    border-radius: 999px !important;
    transition: all 0.18s ease;
}

/* Primary-Buttons = Gold-Pill mit dunklem Text (Gold ist hell, braucht Kontrast) */
.mat-page .btn-primary {
    background: var(--bk-mat-gold) !important;
    border-color: var(--bk-mat-gold) !important;
    color: #1A1F2E !important;
    font-weight: 700 !important;
    box-shadow:
        0 2px 8px color-mix(in srgb, var(--bk-mat-gold) 50%, transparent),
        0 4px 18px color-mix(in srgb, var(--bk-mat-gold) 30%, transparent) !important;
}
.mat-page .btn-primary:hover {
    background: color-mix(in srgb, var(--bk-mat-gold) 88%, black) !important;
    transform: translateY(-1px);
}

/* Secondary-Buttons: Gold-Hover */
.mat-page .btn-secondary:hover {
    background: color-mix(in srgb, var(--bk-mat-gold) 14%, transparent) !important;
    border-color: color-mix(in srgb, var(--bk-mat-gold) 35%, transparent) !important;
    color: color-mix(in srgb, var(--bk-mat-gold) 75%, var(--text-primary)) !important;
}
/* ════════════════════════════════════════════════════════════════════
   END Material-Pages Gold
   ════════════════════════════════════════════════════════════════════ */

/* ════════════════════════════════════════════════════════════════════
   Kunden-Sektion — V3 Himmel-Blau Migration (2026-05-27)
   Light: #3B82F6   ·   Dark: #7CB3F2
   Umfasst: kunden/liste.html, kunden/detail.html,
            verticals/handwerker/anfragen_liste.html,
            verticals/handwerker/anfragen_detail.html
   ════════════════════════════════════════════════════════════════════ */
:root {
    --bk-kun-blau: #3B82F6;
}
[data-theme="dark"] {
    --bk-kun-blau: #7CB3F2;
}

/* Haupt-Container mit Akzent-Border + Glow (alle Cards inkl. Hero + Contact-Cards) */
.kun-page .card,
.kun-page .kun-det-hero,
.kun-page .kun-det-contact-card,
.kun-page .tool-info-banner {
    border: 1.5px solid color-mix(in srgb, var(--bk-kun-blau) 45%, transparent) !important;
    border-radius: 14px !important;
    box-shadow: 0 4px 22px color-mix(in srgb, var(--bk-kun-blau) 22%, transparent) !important;
}

[data-theme="dark"] .kun-page .card,
[data-theme="dark"] .kun-page .kun-det-hero,
[data-theme="dark"] .kun-page .kun-det-contact-card,
[data-theme="dark"] .kun-page .tool-info-banner {
    border: 1.5px solid color-mix(in srgb, var(--bk-kun-blau) 55%, transparent) !important;
    box-shadow: 0 0 28px color-mix(in srgb, var(--bk-kun-blau) 32%, transparent) !important;
}

/* Pills für ALLE Buttons in .kun-page */
.kun-page .btn {
    border-radius: 999px !important;
}

/* Primary-Button (Himmel-Blau) — Light: weißer Text, Dark: dunkler Text wegen Hell-Blau */
.kun-page .btn-primary {
    background: var(--bk-kun-blau) !important;
    border-color: var(--bk-kun-blau) !important;
    color: #FFFFFF !important;
    box-shadow: 0 2px 8px color-mix(in srgb, var(--bk-kun-blau) 35%, transparent) !important;
    transition: all 0.15s ease;
}
.kun-page .btn-primary:hover {
    background: color-mix(in srgb, var(--bk-kun-blau) 88%, black) !important;
    box-shadow: 0 4px 14px color-mix(in srgb, var(--bk-kun-blau) 45%, transparent) !important;
    transform: translateY(-1px);
}

[data-theme="dark"] .kun-page .btn-primary {
    color: #0A0E1A !important;
    font-weight: 700;
    box-shadow: 0 0 16px color-mix(in srgb, var(--bk-kun-blau) 50%, transparent) !important;
}
[data-theme="dark"] .kun-page .btn-primary:hover {
    color: #0A0E1A !important;
    background: color-mix(in srgb, var(--bk-kun-blau) 92%, white) !important;
    box-shadow: 0 0 22px color-mix(in srgb, var(--bk-kun-blau) 65%, transparent) !important;
}

/* Secondary-Button Hover-Akzent */
.kun-page .btn-secondary:hover {
    background: color-mix(in srgb, var(--bk-kun-blau) 14%, transparent) !important;
    border-color: color-mix(in srgb, var(--bk-kun-blau) 35%, transparent) !important;
    color: color-mix(in srgb, var(--bk-kun-blau) 75%, var(--text-primary)) !important;
}

/* Anfragen-Status-Filter-Tabs als ECHTE Pills (analog .auftr-status-pills)
   Container = Recess (bg-surface-2 + inset shadow + border)
   Pills = border-radius 999px + Lift-Shadow im Active-State
   --pill-color bleibt Status-Farbe (Status-Pills-Regel: Neu rot / In Bearbeitung gelb / ...)
*/
.kun-page .anfragen-status-pills {
    background: var(--bg-surface-2) !important;
    box-shadow: inset 0 1px 3px rgba(0,0,0,0.05) !important;
    border: 1px solid var(--border) !important;
    border-radius: 100px !important;
    padding: 5px !important;
}
[data-theme="dark"] .kun-page .anfragen-status-pills {
    box-shadow: inset 0 1px 3px rgba(0,0,0,0.3) !important;
}
.kun-page .anfragen-status-pill {
    border-radius: 999px !important;
    padding: 8px 16px !important;
}
.kun-page .anfragen-status-pill-active {
    background: var(--pill-color) !important;
    color: var(--text-on-accent, #FFFFFF) !important;
    box-shadow:
        0 2px 6px color-mix(in srgb, var(--pill-color) 40%, transparent),
        0 4px 14px color-mix(in srgb, var(--pill-color) 20%, transparent) !important;
    transform: translateY(-1px);
}
[data-theme="dark"] .kun-page .anfragen-status-pill-active {
    color: #0A0E1A !important;
    font-weight: 700;
}
/* ════════════════════════════════════════════════════════════════════
   END Kunden-Sektion Himmel-Blau
   ════════════════════════════════════════════════════════════════════ */

/* ════════════════════════════════════════════════════════════════════
   Kommunikation-Sektion — Cognac/Bronze Migration (2026-05-27)
   Light: #805933   ·   Dark: #C79E6B  (analog Sidebar KOMMUNIKATION)
   Umfasst: emails/posteingang.html, emails/verfassen.html,
            emails/lesen.html, emails/lesen_sent.html,
            emails/einstellungen.html, bewertungen/liste.html,
            bewertungen/einstellungen.html
   ════════════════════════════════════════════════════════════════════ */
:root {
    --bk-kom-cognac: #805933;
}
[data-theme="dark"] {
    --bk-kom-cognac: #C79E6B;
}

/* Haupt-Container mit Akzent-Border + Glow */
.kom-page .card,
.kom-page .tool-info-banner {
    border: 1.5px solid color-mix(in srgb, var(--bk-kom-cognac) 45%, transparent) !important;
    border-radius: 14px !important;
    box-shadow: 0 4px 22px color-mix(in srgb, var(--bk-kom-cognac) 22%, transparent) !important;
}
[data-theme="dark"] .kom-page .card,
[data-theme="dark"] .kom-page .tool-info-banner {
    border: 1.5px solid color-mix(in srgb, var(--bk-kom-cognac) 55%, transparent) !important;
    box-shadow: 0 0 28px color-mix(in srgb, var(--bk-kom-cognac) 32%, transparent) !important;
}

/* Pills für ALLE Buttons in .kom-page */
.kom-page .btn {
    border-radius: 999px !important;
}

/* Primary-Button (Cognac) — Light: weißer Text, Dark: dunkler Text */
.kom-page .btn-primary {
    background: var(--bk-kom-cognac) !important;
    border-color: var(--bk-kom-cognac) !important;
    color: #FFFFFF !important;
    box-shadow: 0 2px 8px color-mix(in srgb, var(--bk-kom-cognac) 35%, transparent) !important;
    transition: all 0.15s ease;
}
.kom-page .btn-primary:hover {
    background: color-mix(in srgb, var(--bk-kom-cognac) 88%, black) !important;
    box-shadow: 0 4px 14px color-mix(in srgb, var(--bk-kom-cognac) 45%, transparent) !important;
    transform: translateY(-1px);
}

[data-theme="dark"] .kom-page .btn-primary {
    color: #0A0E1A !important;
    font-weight: 700;
    box-shadow: 0 0 16px color-mix(in srgb, var(--bk-kom-cognac) 50%, transparent) !important;
}
[data-theme="dark"] .kom-page .btn-primary:hover {
    color: #0A0E1A !important;
    background: color-mix(in srgb, var(--bk-kom-cognac) 92%, white) !important;
    box-shadow: 0 0 22px color-mix(in srgb, var(--bk-kom-cognac) 65%, transparent) !important;
}

/* Secondary-Button Hover-Akzent */
.kom-page .btn-secondary:hover {
    background: color-mix(in srgb, var(--bk-kom-cognac) 14%, transparent) !important;
    border-color: color-mix(in srgb, var(--bk-kom-cognac) 35%, transparent) !important;
    color: color-mix(in srgb, var(--bk-kom-cognac) 75%, var(--text-primary)) !important;
}
/* ════════════════════════════════════════════════════════════════════
   END Kommunikation-Sektion Cognac
   ════════════════════════════════════════════════════════════════════ */

/* ════════════════════════════════════════════════════════════════════
   Support-Sektion — Booklera-Primary-Blau Migration (2026-05-27)
   Light: var(--primary) #3E5F88   ·   Dark: #5B82AE
   (analog Sidebar Support & Kontakt Button)
   Umfasst: support/liste.html, support/detail.html, support/neu.html
   ════════════════════════════════════════════════════════════════════ */
:root {
    --bk-sup-blau: #3E5F88;
}
[data-theme="dark"] {
    --bk-sup-blau: #5B82AE;
}

/* Haupt-Container mit Akzent-Border + Glow */
.sup-page .card,
.sup-page .tool-info-banner {
    border: 1.5px solid color-mix(in srgb, var(--bk-sup-blau) 45%, transparent) !important;
    border-radius: 14px !important;
    box-shadow: 0 4px 22px color-mix(in srgb, var(--bk-sup-blau) 22%, transparent) !important;
    /* WICHTIG: Inline-Style background-gradient des Direkter-Draht-Banners
       überschreiben (war hardcoded #F5F1E8 → Dark-Mode unsichtbar) */
    background: var(--bg-surface) !important;
}
[data-theme="dark"] .sup-page .card,
[data-theme="dark"] .sup-page .tool-info-banner {
    border: 1.5px solid color-mix(in srgb, var(--bk-sup-blau) 55%, transparent) !important;
    box-shadow: 0 0 28px color-mix(in srgb, var(--bk-sup-blau) 32%, transparent) !important;
    background: var(--bg-surface) !important;
}

/* Pills für ALLE Buttons in .sup-page */
.sup-page .btn {
    border-radius: 999px !important;
}

/* Primary-Button (Booklera-Primary-Blau) */
.sup-page .btn-primary {
    background: var(--bk-sup-blau) !important;
    border-color: var(--bk-sup-blau) !important;
    color: #FFFFFF !important;
    box-shadow: 0 2px 8px color-mix(in srgb, var(--bk-sup-blau) 35%, transparent) !important;
    transition: all 0.15s ease;
}
.sup-page .btn-primary:hover {
    background: color-mix(in srgb, var(--bk-sup-blau) 88%, black) !important;
    box-shadow: 0 4px 14px color-mix(in srgb, var(--bk-sup-blau) 45%, transparent) !important;
    transform: translateY(-1px);
}

[data-theme="dark"] .sup-page .btn-primary {
    color: #FFFFFF !important;
    box-shadow: 0 0 16px color-mix(in srgb, var(--bk-sup-blau) 50%, transparent) !important;
}
[data-theme="dark"] .sup-page .btn-primary:hover {
    box-shadow: 0 0 22px color-mix(in srgb, var(--bk-sup-blau) 65%, transparent) !important;
}

/* Secondary-Button Hover-Akzent */
.sup-page .btn-secondary:hover {
    background: color-mix(in srgb, var(--bk-sup-blau) 14%, transparent) !important;
    border-color: color-mix(in srgb, var(--bk-sup-blau) 35%, transparent) !important;
    color: color-mix(in srgb, var(--bk-sup-blau) 75%, var(--text-primary)) !important;
}
/* ════════════════════════════════════════════════════════════════════
   END Support-Sektion Primary-Blau
   ════════════════════════════════════════════════════════════════════ */

/* ════════════════════════════════════════════════════════════════════
   "Alle Funktionen"-Pages — Stahl-Silber (Marco 2026-05-27, Batch 1)
   Light: #5C6877  ·  Dark: #A8B2BF  (klassisches Stahl-Silber)
   Wrapper pro Page: .set-page (Einstellungen) · .gew-page (Gewährleistungen)
                     .bd-page (Baudoku-Center)
   Weitere "Alle Funktionen"-Pages folgen in nächsten Batches mit
   eigenen Klassen aber gleichen --bk-silber-Variable.
   ════════════════════════════════════════════════════════════════════ */
:root { --bk-silber: #5C6877; }
[data-theme="dark"] { --bk-silber: #A8B2BF; }

/* Haupt-Container mit Silber-Border + Glow */
.set-page .card,
.set-page .tool-info-banner,
.gew-page .card,
.gew-page .tool-info-banner,
.bd-page .card,
.bd-page .tool-info-banner {
    border: 1.5px solid color-mix(in srgb, var(--bk-silber) 45%, transparent) !important;
    border-radius: 14px !important;
    box-shadow: 0 4px 22px color-mix(in srgb, var(--bk-silber) 22%, transparent) !important;
}
[data-theme="dark"] .set-page .card,
[data-theme="dark"] .set-page .tool-info-banner,
[data-theme="dark"] .gew-page .card,
[data-theme="dark"] .gew-page .tool-info-banner,
[data-theme="dark"] .bd-page .card,
[data-theme="dark"] .bd-page .tool-info-banner {
    border: 1.5px solid color-mix(in srgb, var(--bk-silber) 55%, transparent) !important;
    box-shadow: 0 0 28px color-mix(in srgb, var(--bk-silber) 32%, transparent) !important;
}

/* Pills für ALLE Buttons */
.set-page .btn,
.gew-page .btn,
.bd-page .btn {
    border-radius: 999px !important;
}

/* Primary-Button (Silber) */
.set-page .btn-primary,
.gew-page .btn-primary,
.bd-page .btn-primary {
    background: var(--bk-silber) !important;
    border-color: var(--bk-silber) !important;
    color: #FFFFFF !important;
    box-shadow: 0 2px 8px color-mix(in srgb, var(--bk-silber) 35%, transparent) !important;
    transition: all 0.15s ease;
}
.set-page .btn-primary:hover,
.gew-page .btn-primary:hover,
.bd-page .btn-primary:hover {
    background: color-mix(in srgb, var(--bk-silber) 88%, black) !important;
    box-shadow: 0 4px 14px color-mix(in srgb, var(--bk-silber) 45%, transparent) !important;
    transform: translateY(-1px);
}
[data-theme="dark"] .set-page .btn-primary,
[data-theme="dark"] .gew-page .btn-primary,
[data-theme="dark"] .bd-page .btn-primary {
    color: #0A0E1A !important;
    font-weight: 700;
    box-shadow: 0 0 16px color-mix(in srgb, var(--bk-silber) 50%, transparent) !important;
}
[data-theme="dark"] .set-page .btn-primary:hover,
[data-theme="dark"] .gew-page .btn-primary:hover,
[data-theme="dark"] .bd-page .btn-primary:hover {
    color: #0A0E1A !important;
    box-shadow: 0 0 22px color-mix(in srgb, var(--bk-silber) 65%, transparent) !important;
}

/* Secondary-Button Silber-Hover */
.set-page .btn-secondary:hover,
.gew-page .btn-secondary:hover,
.bd-page .btn-secondary:hover {
    background: color-mix(in srgb, var(--bk-silber) 14%, transparent) !important;
    border-color: color-mix(in srgb, var(--bk-silber) 35%, transparent) !important;
    color: color-mix(in srgb, var(--bk-silber) 75%, var(--text-primary)) !important;
}

/* Einstellungen-Tabs: Active-Tab in Silber statt Primary-Blau
   (settings-tab = die echte Klasse; est-tab = alternativer Container in einigen Sub-Pages) */
.set-page .settings-tab.active,
.set-page .est-tab.active {
    background: var(--bk-silber) !important;
    color: #FFFFFF !important;
    box-shadow: 0 2px 6px color-mix(in srgb, var(--bk-silber) 30%, transparent) !important;
}
[data-theme="dark"] .set-page .settings-tab.active,
[data-theme="dark"] .set-page .est-tab.active {
    color: #0A0E1A !important;
    font-weight: 700;
    box-shadow: 0 0 16px color-mix(in srgb, var(--bk-silber) 50%, transparent) !important;
}
.set-page .settings-tab.active .est-tab-icon,
.set-page .est-tab.active .est-tab-icon {
    color: inherit !important;
}

/* Design-Template-Card Active-Border in Silber statt Primary-Blau
   FIX 2026-05-27: --color-picker-border hatte KEINEN Dark-Mode-Override
   (war #E0E0E0 fix für beide Modes) → Default-Border sah im Dark hellblau aus.
   Plus Active-State braucht stärkeren Kontrast vs Default. */
.set-page .design-template-card-button {
    border-color: var(--border) !important;  /* respektiert Light/Dark via --border */
    color: var(--text-primary) !important;   /* expliziter Text-Color (Button erbt sonst Browser-Default = schwarz) */
}
.set-page .design-template-card-button .design-template-name {
    color: var(--text-primary) !important;
}
.set-page .design-template-card-button .text-muted {
    color: var(--text-secondary) !important;  /* heller als text-muted für bessere Lesbarkeit */
}
[data-theme="dark"] .set-page .design-template-card-button {
    border-color: rgba(255,255,255,0.08) !important;  /* dezenter Border im Dark */
    color: #E5E7EB !important;  /* heller Text im Dark für klare Lesbarkeit */
}
[data-theme="dark"] .set-page .design-template-card-button .design-template-name {
    color: #FFFFFF !important;
}
[data-theme="dark"] .set-page .design-template-card-button .text-muted {
    color: #B8BCC4 !important;  /* hell-grau für Description (gut lesbar, nicht zu prominent) */
}
.set-page .design-template-card-button:hover {
    border-color: color-mix(in srgb, var(--bk-silber) 55%, transparent) !important;
}
.set-page .design-template-card-button.is-active {
    border-color: var(--bk-silber) !important;
    background: var(--bg-surface) !important;  /* explizit, damit Glow nicht BG aufhellt */
    box-shadow:
        0 0 0 2px var(--bk-silber),
        0 4px 12px color-mix(in srgb, var(--bk-silber) 25%, transparent) !important;
}
.set-page .design-template-card-button.is-active .design-template-name {
    color: var(--text-primary) !important;  /* sicherstellen dass Text klar lesbar bleibt */
}
[data-theme="dark"] .set-page .design-template-card-button.is-active {
    background: var(--bg-surface) !important;  /* dunkel bleiben, Glow nur außen */
    box-shadow:
        0 0 0 2px var(--bk-silber),
        0 0 14px color-mix(in srgb, var(--bk-silber) 35%, transparent) !important;
}
[data-theme="dark"] .set-page .design-template-card-button.is-active .design-template-name,
[data-theme="dark"] .set-page .design-template-card-button.is-active {
    color: #FFFFFF !important;  /* weißer Text im Dark explizit für Lesbarkeit */
}

/* Team-Page Sub-Klassen: var(--primary)-Refs in Silber überschreiben */
.set-page .tm-back-link:hover { color: var(--bk-silber) !important; }
.set-page .tm-hero-unlimited { color: var(--bk-silber) !important; }
.set-page .tm-row:hover { background: color-mix(in srgb, var(--bk-silber) 3%, transparent) !important; }
.set-page .tm-role-meister {
    background: color-mix(in srgb, var(--bk-silber) 15%, transparent) !important;
    color: var(--bk-silber) !important;
}
/* ════════════════════════════════════════════════════════════════════
   END "Alle Funktionen" Silber (Batch 1)
   ════════════════════════════════════════════════════════════════════ */

/* ════════════════════════════════════════════════════════════════════
   "Alle Funktionen" Silber (Batch 2) — Buchhaltung + Zahlungen + Kasse
   2026-05-27 — Wrapper: .bh-page / .fzlg-page / .ka-page (reuse --bk-silber)
   ════════════════════════════════════════════════════════════════════ */

/* ─── Cards & Container — alle 3 Pages ───────────────────────────── */
.bh-page .card,
.fzlg-page .card,
.ka-page .card {
    border: 1.5px solid color-mix(in srgb, var(--bk-silber) 45%, transparent) !important;
    border-radius: 14px !important;
    box-shadow: 0 4px 22px color-mix(in srgb, var(--bk-silber) 22%, transparent) !important;
}
[data-theme="dark"] .bh-page .card,
[data-theme="dark"] .fzlg-page .card,
[data-theme="dark"] .ka-page .card {
    box-shadow: 0 4px 22px color-mix(in srgb, var(--bk-silber) 14%, transparent),
                0 1px 2px rgba(0,0,0,0.4) !important;
}

/* ─── KPI-Cards in Silber-Glow (Buchhaltung-Übersicht + Zahlungen) ─ */
.bh-page .kpi-card,
.fzlg-page .kpi-card {
    border: 1.5px solid color-mix(in srgb, var(--bk-silber) 40%, transparent) !important;
    box-shadow: 0 4px 18px color-mix(in srgb, var(--bk-silber) 18%, transparent) !important;
}
[data-theme="dark"] .bh-page .kpi-card,
[data-theme="dark"] .fzlg-page .kpi-card {
    box-shadow: 0 4px 18px color-mix(in srgb, var(--bk-silber) 12%, transparent),
                0 1px 2px rgba(0,0,0,0.4) !important;
}

/* ─── Tabs Buchhaltung (.bh-tab) — Pill-Style mit Recess + Active-Silber ── */
/* Pre-Existing-Bug-Fix: Template nutzt .bh-tab.active, alte CSS hatte .bh-tab-active */
.bh-page .bh-tabs {
    background: color-mix(in srgb, var(--bk-silber) 6%, var(--bg-surface)) !important;
    border: 1px solid color-mix(in srgb, var(--bk-silber) 25%, transparent) !important;
    border-radius: 999px !important;
    padding: 4px !important;
    gap: 2px !important;
    box-shadow: inset 0 2px 6px color-mix(in srgb, var(--bk-silber) 14%, transparent) !important;
}
.bh-page .bh-tab {
    border-radius: 999px !important;
    padding: 8px 16px !important;
    color: var(--text-secondary) !important;
    transition: all 0.18s ease !important;
    border-bottom: none !important;
    margin-bottom: 0 !important;
}
.bh-page .bh-tab:hover {
    background: color-mix(in srgb, var(--bk-silber) 12%, transparent) !important;
    color: var(--bk-silber) !important;
}
.bh-page .bh-tab.active,
.bh-page .bh-tab-active {
    background: var(--bk-silber) !important;
    color: #FFFFFF !important;
    box-shadow: 0 2px 8px color-mix(in srgb, var(--bk-silber) 45%, transparent),
                0 1px 2px rgba(0,0,0,0.18) !important;
    border-bottom: none !important;
    margin-bottom: 0 !important;
}
[data-theme="dark"] .bh-page .bh-tab.active,
[data-theme="dark"] .bh-page .bh-tab-active {
    color: #1A1F2E !important;
    box-shadow: 0 0 14px color-mix(in srgb, var(--bk-silber) 60%, transparent),
                0 2px 6px rgba(0,0,0,0.35) !important;
}

/* ─── Tabs Zahlungen (.fzlg-tab) — Pill-Style identisch ───────────── */
.fzlg-page .fzlg-tabs,
.fzlg-page [role="tablist"] {
    background: color-mix(in srgb, var(--bk-silber) 6%, var(--bg-surface)) !important;
    border: 1px solid color-mix(in srgb, var(--bk-silber) 25%, transparent) !important;
    border-radius: 999px !important;
    padding: 4px !important;
    gap: 2px !important;
    box-shadow: inset 0 2px 6px color-mix(in srgb, var(--bk-silber) 14%, transparent) !important;
    display: inline-flex !important;
}
.fzlg-page .fzlg-tab {
    border-radius: 999px !important;
    transition: all 0.18s ease !important;
}
.fzlg-page .fzlg-tab:hover {
    background: color-mix(in srgb, var(--bk-silber) 12%, transparent) !important;
    color: var(--bk-silber) !important;
}
.fzlg-page .fzlg-tab-active {
    background: var(--bk-silber) !important;
    color: #FFFFFF !important;
    box-shadow: 0 2px 8px color-mix(in srgb, var(--bk-silber) 45%, transparent),
                0 1px 2px rgba(0,0,0,0.18) !important;
}
[data-theme="dark"] .fzlg-page .fzlg-tab-active {
    color: #1A1F2E !important;
    box-shadow: 0 0 14px color-mix(in srgb, var(--bk-silber) 60%, transparent),
                0 2px 6px rgba(0,0,0,0.35) !important;
}

/* ─── Primary-Buttons in Silber-Tint ─────────────────────────────── */
.bh-page .btn-primary,
.fzlg-page .btn-primary,
.ka-page .btn-primary {
    background: var(--bk-silber) !important;
    border-color: var(--bk-silber) !important;
    color: #FFFFFF !important;
}
.bh-page .btn-primary:hover,
.fzlg-page .btn-primary:hover,
.ka-page .btn-primary:hover {
    background: color-mix(in srgb, var(--bk-silber) 85%, #000) !important;
    border-color: color-mix(in srgb, var(--bk-silber) 85%, #000) !important;
}
[data-theme="dark"] .bh-page .btn-primary,
[data-theme="dark"] .fzlg-page .btn-primary,
[data-theme="dark"] .ka-page .btn-primary {
    color: #1A1F2E !important;
    box-shadow: 0 0 12px color-mix(in srgb, var(--bk-silber) 40%, transparent) !important;
}

/* ─── Links in Sektion-Farbe (Buchhaltung "Alle anzeigen →" etc.) ── */
.bh-page a:not(.btn):not(.bh-tab):not(.fzlg-tab):not(.card),
.fzlg-page a:not(.btn):not(.fzlg-tab):not(.card),
.ka-page a:not(.btn):not(.card) {
    color: var(--bk-silber);
}
.bh-page a:not(.btn):not(.bh-tab):not(.fzlg-tab):not(.card):hover,
.fzlg-page a:not(.btn):not(.fzlg-tab):not(.card):hover,
.ka-page a:not(.btn):not(.card):hover {
    color: color-mix(in srgb, var(--bk-silber) 70%, #000);
}

/* ─── Status-Pills bleiben SEMANTIC (Marco-Regel: Status-Farben unverändert) ──
   .badge-success / .badge-warning / .badge-danger / .badge-muted = Status,
   nicht Sektion. Hier keine Override. */

/* ════════════════════════════════════════════════════════════════════
   END "Alle Funktionen" Silber (Batch 2)
   ════════════════════════════════════════════════════════════════════ */

/* ════════════════════════════════════════════════════════════════════
   "Alle Funktionen" Silber (Batch 3) — Transport + Netzwerk + Passwort
   2026-05-27 — Wrapper: .tr-page / .nw-page / .pw-page (reuse --bk-silber)
   ════════════════════════════════════════════════════════════════════ */

/* ─── Cards & Container ──────────────────────────────────────────── */
.tr-page .card,
.nw-page .card,
.pw-page .card,
.tr-page .tp-info-banner,
.nw-page .nw-kpi-card {
    border: 1.5px solid color-mix(in srgb, var(--bk-silber) 45%, transparent) !important;
    border-radius: 14px !important;
    box-shadow: 0 4px 22px color-mix(in srgb, var(--bk-silber) 22%, transparent) !important;
}
[data-theme="dark"] .tr-page .card,
[data-theme="dark"] .nw-page .card,
[data-theme="dark"] .pw-page .card,
[data-theme="dark"] .tr-page .tp-info-banner,
[data-theme="dark"] .nw-page .nw-kpi-card {
    box-shadow: 0 4px 22px color-mix(in srgb, var(--bk-silber) 14%, transparent),
                0 1px 2px rgba(0,0,0,0.4) !important;
}

/* ─── KPI-Cards Silber-Glow ──────────────────────────────────────── */
.tr-page .kpi-card,
.nw-page .kpi-card {
    border: 1.5px solid color-mix(in srgb, var(--bk-silber) 40%, transparent) !important;
    box-shadow: 0 4px 18px color-mix(in srgb, var(--bk-silber) 18%, transparent) !important;
}

/* ─── Transport-Tabs (.tp-tab-link.is-active) — Pill-Style Silber ── */
.tr-page .tp-tabs-row {
    background: color-mix(in srgb, var(--bk-silber) 6%, var(--bg-surface)) !important;
    border: 1px solid color-mix(in srgb, var(--bk-silber) 25%, transparent) !important;
    border-radius: 999px !important;
    padding: 4px !important;
    gap: 2px !important;
    box-shadow: inset 0 2px 6px color-mix(in srgb, var(--bk-silber) 14%, transparent) !important;
    display: inline-flex !important;
}
.tr-page .tp-tab-link {
    border-radius: 999px !important;
    padding: 8px 16px !important;
    color: var(--text-secondary) !important;
    transition: all 0.18s ease !important;
    text-decoration: none !important;
}
.tr-page .tp-tab-link:hover {
    background: color-mix(in srgb, var(--bk-silber) 12%, transparent) !important;
    color: var(--bk-silber) !important;
}
.tr-page .tp-tab-link.is-active {
    background: var(--bk-silber) !important;
    color: #FFFFFF !important;
    box-shadow: 0 2px 8px color-mix(in srgb, var(--bk-silber) 45%, transparent),
                0 1px 2px rgba(0,0,0,0.18) !important;
}
[data-theme="dark"] .tr-page .tp-tab-link.is-active {
    color: #1A1F2E !important;
    box-shadow: 0 0 14px color-mix(in srgb, var(--bk-silber) 60%, transparent),
                0 2px 6px rgba(0,0,0,0.35) !important;
}

/* ─── Transport-Historie Rolle-Tabs (.tp-hist-rolle-link.is-active) ──── */
.tr-page .tp-hist-rolle-row {
    background: color-mix(in srgb, var(--bk-silber) 6%, var(--bg-surface)) !important;
    border: 1px solid color-mix(in srgb, var(--bk-silber) 25%, transparent) !important;
    border-radius: 999px !important;
    padding: 4px !important;
    gap: 2px !important;
    box-shadow: inset 0 2px 6px color-mix(in srgb, var(--bk-silber) 14%, transparent) !important;
    display: inline-flex !important;
}
.tr-page .tp-hist-rolle-link {
    border-radius: 999px !important;
    padding: 8px 16px !important;
    color: var(--text-secondary) !important;
    transition: all 0.18s ease !important;
    text-decoration: none !important;
}
.tr-page .tp-hist-rolle-link:hover {
    background: color-mix(in srgb, var(--bk-silber) 12%, transparent) !important;
    color: var(--bk-silber) !important;
}
.tr-page .tp-hist-rolle-link.is-active {
    background: var(--bk-silber) !important;
    color: #FFFFFF !important;
    box-shadow: 0 2px 8px color-mix(in srgb, var(--bk-silber) 45%, transparent),
                0 1px 2px rgba(0,0,0,0.18) !important;
}
[data-theme="dark"] .tr-page .tp-hist-rolle-link.is-active {
    color: #1A1F2E !important;
    box-shadow: 0 0 14px color-mix(in srgb, var(--bk-silber) 60%, transparent),
                0 2px 6px rgba(0,0,0,0.35) !important;
}

/* ─── Primary-Buttons in Silber ──────────────────────────────────── */
.tr-page .btn-primary,
.nw-page .btn-primary,
.pw-page .btn-primary {
    background: var(--bk-silber) !important;
    border-color: var(--bk-silber) !important;
    color: #FFFFFF !important;
}
.tr-page .btn-primary:hover,
.nw-page .btn-primary:hover,
.pw-page .btn-primary:hover {
    background: color-mix(in srgb, var(--bk-silber) 85%, #000) !important;
    border-color: color-mix(in srgb, var(--bk-silber) 85%, #000) !important;
}
[data-theme="dark"] .tr-page .btn-primary,
[data-theme="dark"] .nw-page .btn-primary,
[data-theme="dark"] .pw-page .btn-primary {
    color: #1A1F2E !important;
    box-shadow: 0 0 12px color-mix(in srgb, var(--bk-silber) 40%, transparent) !important;
}

/* ─── Links in Sektion-Farbe ─────────────────────────────────────── */
.tr-page a:not(.btn):not(.tp-tab-link):not(.tp-hist-rolle-link):not(.card),
.nw-page a:not(.btn):not(.card):not(.nw-kpi-card):not(.nw-ampel-tile),
.pw-page a:not(.btn):not(.card) {
    color: var(--bk-silber);
}

/* ─── Status-Pills bleiben SEMANTIC (Marco-Regel) ──
   .badge-success/-warning/-danger/-muted + Status-Filter im Netzwerk
   (Suchen=rot / Biete=grün) bleiben in Status-Farben.
*/

/* ════════════════════════════════════════════════════════════════════
   END "Alle Funktionen" Silber (Batch 3)
   ════════════════════════════════════════════════════════════════════ */

/* ════════════════════════════════════════════════════════════════════
   "Alle Funktionen" Silber (Batch 4) — KI-Test + DSGVO + Migration + Audit-Log
   2026-05-27 — Wrapper: .ki-page / .dsg-page / .mg-page / .al-page (reuse --bk-silber)
   ════════════════════════════════════════════════════════════════════ */

.ki-page .card,
.dsg-page .card,
.mg-page .card,
.al-page .card,
.mg-page .mig-info-banner-header {
    border: 1.5px solid color-mix(in srgb, var(--bk-silber) 45%, transparent) !important;
    border-radius: 14px !important;
    box-shadow: 0 4px 22px color-mix(in srgb, var(--bk-silber) 22%, transparent) !important;
}
[data-theme="dark"] .ki-page .card,
[data-theme="dark"] .dsg-page .card,
[data-theme="dark"] .mg-page .card,
[data-theme="dark"] .al-page .card,
[data-theme="dark"] .mg-page .mig-info-banner-header {
    box-shadow: 0 4px 22px color-mix(in srgb, var(--bk-silber) 14%, transparent),
                0 1px 2px rgba(0,0,0,0.4) !important;
}

.ki-page .kpi-card,
.mg-page .kpi-card,
.al-page .kpi-card {
    border: 1.5px solid color-mix(in srgb, var(--bk-silber) 40%, transparent) !important;
    box-shadow: 0 4px 18px color-mix(in srgb, var(--bk-silber) 18%, transparent) !important;
}

.ki-page .btn-primary,
.dsg-page .btn-primary,
.mg-page .btn-primary,
.al-page .btn-primary {
    background: var(--bk-silber) !important;
    border-color: var(--bk-silber) !important;
    color: #FFFFFF !important;
}
.ki-page .btn-primary:hover,
.dsg-page .btn-primary:hover,
.mg-page .btn-primary:hover,
.al-page .btn-primary:hover {
    background: color-mix(in srgb, var(--bk-silber) 85%, #000) !important;
    border-color: color-mix(in srgb, var(--bk-silber) 85%, #000) !important;
}
[data-theme="dark"] .ki-page .btn-primary,
[data-theme="dark"] .dsg-page .btn-primary,
[data-theme="dark"] .mg-page .btn-primary,
[data-theme="dark"] .al-page .btn-primary {
    color: #1A1F2E !important;
    box-shadow: 0 0 12px color-mix(in srgb, var(--bk-silber) 40%, transparent) !important;
}

.ki-page a:not(.btn):not(.card),
.dsg-page a:not(.btn):not(.card):not(.badge),
.mg-page a:not(.btn):not(.card),
.al-page a:not(.btn):not(.card) {
    color: var(--bk-silber);
}

/* ─── Status-Pills / Badges bleiben SEMANTIC ───
   .badge-success / .badge-warning / .badge-danger / .badge-info
   (z.B. ABGESCHLOSSEN grün, FAILED rot) bleiben in Status-Farben.
   Rechtsgrundlage-Badges in DSGVO (art20_*, art17_*) bleiben primary.
*/

/* ════════════════════════════════════════════════════════════════════
   END "Alle Funktionen" Silber (Batch 4)
   ════════════════════════════════════════════════════════════════════ */

/* ════════════════════════════════════════════════════════════════════
   Dashboard Silber-Container (Batch 5) — Marco-Auftrag 2026-05-27
   Wrapper: .dsh-page (reuse --bk-silber)
   AUSNAHMEN (bleiben semantic):
     - .bk-hero-kpi--info/danger/success/warning (Status-Indikatoren)
     - .hw-stripe-card (Stripe-Status: green/yellow/red)
     - .badge-success/-warning/-danger/-info (Status-Pills)
   ════════════════════════════════════════════════════════════════════ */

.dsh-page .card,
.dsh-page .bk-hero,
.dsh-page .bk-footer-status {
    border: 1.5px solid color-mix(in srgb, var(--bk-silber) 45%, transparent) !important;
    border-radius: 14px !important;
    box-shadow: 0 4px 22px color-mix(in srgb, var(--bk-silber) 22%, transparent) !important;
}
[data-theme="dark"] .dsh-page .card,
[data-theme="dark"] .dsh-page .bk-hero,
[data-theme="dark"] .dsh-page .bk-footer-status {
    box-shadow: 0 4px 22px color-mix(in srgb, var(--bk-silber) 14%, transparent),
                0 1px 2px rgba(0,0,0,0.4) !important;
}

/* Marco 2026-06-30: Begrüßungs-Hero ohne Karten-Rahmen — der Silber-Umriss +
   Schatten stören. NUR der Hero; .card + .bk-footer-status (gleiche Regel oben)
   behalten ihren Rand. Override kommt nach der Sammel-Regel → gewinnt bei
   gleicher Spezifität + !important (Dark separat, da dort höhere Spezifität). */
.dsh-page .bk-hero {
    border: none !important;
    box-shadow: none !important;
}
[data-theme="dark"] .dsh-page .bk-hero {
    box-shadow: none !important;
}

/* Alle KPIs / Grafiken Pin-Toggle (Drawer + Stats-View) ─ Silber-Border */
.dsh-page .bk-kpi-drawer-toggle {
    border: 1.5px solid color-mix(in srgb, var(--bk-silber) 45%, transparent) !important;
    box-shadow: 0 4px 18px color-mix(in srgb, var(--bk-silber) 18%, transparent) !important;
}
[data-theme="dark"] .dsh-page .bk-kpi-drawer-toggle {
    box-shadow: 0 4px 18px color-mix(in srgb, var(--bk-silber) 12%, transparent),
                0 1px 2px rgba(0,0,0,0.4) !important;
}

/* Primary-Buttons im Dashboard: Silber-Variante (außer Status-spezifische) */
.dsh-page .btn-primary:not(.dashboard-migration-btn) {
    background: var(--bk-silber) !important;
    border-color: var(--bk-silber) !important;
    color: #FFFFFF !important;
}
.dsh-page .btn-primary:not(.dashboard-migration-btn):hover {
    background: color-mix(in srgb, var(--bk-silber) 85%, #000) !important;
    border-color: color-mix(in srgb, var(--bk-silber) 85%, #000) !important;
}
[data-theme="dark"] .dsh-page .btn-primary:not(.dashboard-migration-btn) {
    color: #1A1F2E !important;
    box-shadow: 0 0 12px color-mix(in srgb, var(--bk-silber) 40%, transparent) !important;
}

/* ════════════════════════════════════════════════════════════════════
   END Dashboard Silber-Container (Batch 5)
   ════════════════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════════════════
   Block 94 v2 Phase 2: Zeiterfassung Tab-System + Mein-Konto-Tab
   ═══════════════════════════════════════════════════════════════════════ */

/* Tab-Navigation */
.zt-tabs-block { margin-top: 32px; }
.zt-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    border-bottom: 1px solid var(--border, #e5e7eb);
    margin-bottom: 24px;
}
.zt-tab {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 18px;
    color: var(--text-secondary, #6b7280);
    text-decoration: none;
    font-weight: 500;
    font-size: 14px;
    border-bottom: 3px solid transparent;
    transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
    border-radius: 8px 8px 0 0;
}
.zt-tab:hover {
    color: var(--text-primary, #111827);
    background: color-mix(in srgb, var(--primary, #0F6B47) 6%, transparent);
}
.zt-tab.is-active {
    color: var(--primary, #0F6B47);
    border-bottom-color: var(--primary, #0F6B47);
}
.zt-tab svg { flex-shrink: 0; }

.zt-tab-placeholder {
    color: var(--text-muted, #9ca3af);
    font-style: italic;
    padding: 24px;
    text-align: center;
}

/* Mein-Konto KPI-Grid (3 Karten Smaragd-Variante) */
.zt-mein-kpi-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 16px;
    margin-bottom: 24px;
}
.zt-mein-kpi-card {
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-subtle, #f3f4f6);
    border-radius: 12px;
    padding: 20px;
    display: flex;
    gap: 16px;
    align-items: flex-start;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.zt-mein-kpi-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(15, 107, 71, 0.12);
}
.zt-mein-kpi-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: color-mix(in srgb, var(--primary, #0F6B47) 12%, transparent);
    color: var(--primary, #0F6B47);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.zt-mein-kpi-body { flex: 1; min-width: 0; }
.zt-mein-kpi-label {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-secondary, #6b7280);
    margin-bottom: 4px;
}
.zt-mein-kpi-value {
    font-size: 28px;
    font-weight: 700;
    line-height: 1.1;
    color: var(--text-primary, #111827);
    margin-bottom: 4px;
}
.zt-mein-kpi-value.is-negative { color: var(--danger, #dc2626); }
.zt-mein-kpi-value.is-positive { color: var(--success, #16a34a); }
.zt-mein-kpi-unit {
    font-size: 14px;
    font-weight: 500;
    color: var(--text-secondary, #6b7280);
}
.zt-mein-kpi-sublabel {
    font-size: 12px;
    color: var(--text-muted, #9ca3af);
}

/* Action-Buttons */
.zt-mein-actions {
    display: flex;
    gap: 12px;
    margin-bottom: 24px;
    flex-wrap: wrap;
}
.zt-mein-action-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

/* Anträge-Tabelle */
.zt-mein-antraege-card { padding: 0; }
.zt-mein-antraege-card .card-header { padding: 16px 20px; }
.zt-mein-empty { padding: 24px; color: var(--text-muted, #9ca3af); text-align: center; }

.zt-mein-antraege-table {
    width: 100%;
    border-collapse: collapse;
}
.zt-mein-antraege-table thead {
    background: var(--bg-surface-2, #f9fafb);
    border-bottom: 1px solid var(--border, #e5e7eb);
}
.zt-mein-antraege-table th {
    padding: 12px 16px;
    text-align: left;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-secondary, #6b7280);
}
.zt-mein-antraege-table td {
    padding: 14px 16px;
    border-bottom: 1px solid var(--border-subtle, #f3f4f6);
    font-size: 14px;
    color: var(--text-primary, #111827);
}
.zt-mein-antraege-table tbody tr:hover { background: var(--bg-surface-2, #f9fafb); }
.zt-mein-antraege-table tbody tr:last-child td { border-bottom: none; }

.zt-mein-typ-pill,
.zt-mein-status-pill {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    border-radius: 100px;
    font-size: 12px;
    font-weight: 500;
    background: color-mix(in srgb, var(--primary, #0F6B47) 10%, transparent);
    color: var(--primary, #0F6B47);
}
.zt-mein-status-pill.zt-status-beantragt {
    background: color-mix(in srgb, var(--warning, #f59e0b) 12%, transparent);
    color: var(--warning, #f59e0b);
}
.zt-mein-status-pill.zt-status-genehmigt {
    background: color-mix(in srgb, var(--success, #16a34a) 12%, transparent);
    color: var(--success, #16a34a);
}
.zt-mein-status-pill.zt-status-abgelehnt {
    background: color-mix(in srgb, var(--danger, #dc2626) 12%, transparent);
    color: var(--danger, #dc2626);
}
.zt-mein-status-pill.zt-status-gemeldet {
    background: color-mix(in srgb, var(--info, #3b82f6) 12%, transparent);
    color: var(--info, #3b82f6);
}
.zt-mein-status-pill.zt-status-zurueckgezogen {
    background: var(--bg-surface-2, #f3f4f6);
    color: var(--text-muted, #9ca3af);
}

.zt-mein-grund {
    font-style: italic;
    color: var(--text-secondary, #6b7280);
    font-size: 13px;
}
.zt-mein-inline-form { display: inline; }
.zt-mein-hint {
    font-size: 12px;
    color: var(--text-muted, #9ca3af);
    margin-top: 12px;
}

/* Modal-Styling */
.zt-modal {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
}
.zt-modal[hidden] { display: none; }
.zt-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(2px);
}
.zt-modal-content {
    position: relative;
    background: var(--bg-surface, #fff);
    border-radius: 12px;
    padding: 0;
    max-width: 480px;
    width: 100%;
    max-height: 90vh;
    overflow-y: auto;
    z-index: 1001;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25);
}
.zt-antrag-form { padding: 20px; }
.zt-antrag-form .form-group { margin-bottom: 16px; }
.zt-antrag-form label {
    display: block;
    font-size: 13px;
    font-weight: 500;
    color: var(--text-primary, #111827);
    margin-bottom: 4px;
}
.zt-antrag-form input[type="date"],
.zt-antrag-form select,
.zt-antrag-form textarea {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid var(--border, #e5e7eb);
    border-radius: 6px;
    font-size: 14px;
    background: var(--bg-surface, #fff);
    color: var(--text-primary, #111827);
}
.zt-antrag-form .form-actions {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    padding-top: 16px;
    border-top: 1px solid var(--border-subtle, #f3f4f6);
    margin-top: 8px;
}

@media (max-width: 768px) {
    .zt-tabs { gap: 0; overflow-x: auto; }
    .zt-tab { padding: 10px 14px; font-size: 13px; flex-shrink: 0; }
    .zt-mein-kpi-grid { grid-template-columns: 1fr; }
    .zt-mein-actions { flex-direction: column; }
    .zt-mein-actions .btn { width: 100%; justify-content: center; }
    .zt-mein-antraege-table { font-size: 12px; }
    .zt-mein-antraege-table th, .zt-mein-antraege-table td { padding: 10px 8px; }
}

/* Block 94 v2 — Tages-Saldo-Tabelle (Marco-Anforderung „jeden Tag sehen") */
.zt-mein-tage-card { padding: 0; margin-bottom: 24px; }
.zt-mein-tage-header {
    padding: 16px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}
.zt-mein-monatnav {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.zt-mein-monatnav-btn {
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--border, #e5e7eb);
    border-radius: 6px;
    background: var(--bg-surface, #fff);
    color: var(--text-primary, #111827);
    text-decoration: none;
    transition: background 0.15s ease, color 0.15s ease;
}
.zt-mein-monatnav-btn:hover {
    background: var(--bg-surface-2, #f9fafb);
    color: var(--primary, #0F6B47);
}
.zt-mein-monatnav-btn.is-disabled {
    opacity: 0.35;
    pointer-events: none;
    cursor: not-allowed;
}
.zt-mein-heute-btn {
    margin-left: 8px;
    font-size: 13px;
    color: var(--primary, #0F6B47);
    text-decoration: underline;
}

.zt-mein-tage-wrap {
    overflow-x: auto;
}
.zt-mein-tage-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}
.zt-mein-tage-table thead {
    background: var(--bg-surface-2, #f9fafb);
    border-bottom: 2px solid var(--border, #e5e7eb);
}
.zt-mein-tage-table th {
    padding: 10px 16px;
    text-align: left;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-secondary, #6b7280);
}
.zt-mein-th-soll, .zt-mein-th-ist, .zt-mein-th-saldo {
    text-align: right;
    width: 80px;
}
.zt-mein-th-datum { width: 28%; }
.zt-mein-th-status { width: 30%; }

.zt-mein-tage-table tbody td {
    padding: 10px 16px;
    border-bottom: 1px solid var(--border-subtle, #f3f4f6);
    color: var(--text-primary, #111827);
}
.zt-mein-tag-row.is-weekend {
    background: color-mix(in srgb, var(--bg-surface-2, #f9fafb) 60%, transparent);
}
.zt-mein-tag-row.is-today {
    background: color-mix(in srgb, var(--primary, #0F6B47) 6%, transparent);
    font-weight: 600;
}
.zt-mein-tag-row.is-today .zt-mein-datum-num { color: var(--primary, #0F6B47); }
.zt-mein-tag-row.is-future {
    opacity: 0.55;
}
.zt-mein-tag-row.is-abwesend {
    background: color-mix(in srgb, var(--info, #3b82f6) 5%, transparent);
}

.zt-mein-td-datum { display: flex; align-items: center; gap: 8px; }
.zt-mein-wochentag {
    display: inline-block;
    width: 28px;
    height: 24px;
    border-radius: 4px;
    background: var(--bg-surface-2, #f9fafb);
    border: 1px solid var(--border-subtle, #f3f4f6);
    text-align: center;
    line-height: 24px;
    font-size: 11px;
    font-weight: 600;
    color: var(--text-secondary, #6b7280);
}
.zt-mein-tag-row.is-today .zt-mein-wochentag {
    background: var(--primary, #0F6B47);
    color: #fff;
    border-color: var(--primary, #0F6B47);
}
.zt-mein-tag-row.is-weekend .zt-mein-wochentag {
    color: var(--text-muted, #9ca3af);
}
.zt-mein-datum-num {
    color: var(--text-primary, #111827);
    font-variant-numeric: tabular-nums;
}
.zt-mein-heute-pill {
    display: inline-block;
    padding: 2px 8px;
    background: var(--primary, #0F6B47);
    color: #fff;
    border-radius: 100px;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
}

.zt-mein-td-num {
    text-align: right;
    font-variant-numeric: tabular-nums;
    font-feature-settings: 'tnum';
}
.zt-mein-td-saldo {
    font-weight: 600;
}
.zt-mein-td-saldo.is-positive { color: var(--success, #16a34a); }
.zt-mein-td-saldo.is-negative { color: var(--danger, #dc2626); }
.zt-mein-future {
    color: var(--text-muted, #9ca3af);
    font-style: italic;
}

.zt-mein-status-text {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
}
.zt-mein-status-text.is-muted { color: var(--text-muted, #9ca3af); }
.zt-mein-status-text.is-ok { color: var(--success, #16a34a); }
.zt-mein-status-text.is-warning { color: var(--warning, #f59e0b); }

/* Typ-Pills pro Abwesenheits-Typ */
.zt-mein-typ-pill.zt-typ-urlaub {
    background: color-mix(in srgb, var(--info, #3b82f6) 12%, transparent);
    color: var(--info, #3b82f6);
}
.zt-mein-typ-pill.zt-typ-krank,
.zt-mein-typ-pill.zt-typ-kind_krank {
    background: color-mix(in srgb, var(--danger, #dc2626) 10%, transparent);
    color: var(--danger, #dc2626);
}
.zt-mein-typ-pill.zt-typ-feiertag {
    background: color-mix(in srgb, var(--warning, #f59e0b) 12%, transparent);
    color: var(--warning, #f59e0b);
}
.zt-mein-typ-pill.zt-typ-frei {
    background: var(--bg-surface-2, #f3f4f6);
    color: var(--text-muted, #6b7280);
}
.zt-mein-typ-pill.zt-typ-fortbildung,
.zt-mein-typ-pill.zt-typ-sonderurlaub,
.zt-mein-typ-pill.zt-typ-ueberstunden_abbau {
    background: color-mix(in srgb, var(--primary, #0F6B47) 12%, transparent);
    color: var(--primary, #0F6B47);
}

/* Summe-Zeile (tfoot) */
.zt-mein-tage-summe {
    background: var(--bg-surface-2, #f9fafb);
    border-top: 2px solid var(--border, #e5e7eb);
}
.zt-mein-tage-summe td {
    padding: 14px 16px !important;
    border-bottom: none !important;
    font-size: 14px;
}
.zt-mein-tage-summe small {
    color: var(--text-muted, #9ca3af);
    font-size: 11px;
}

@media (max-width: 768px) {
    .zt-mein-tage-table { font-size: 12px; }
    .zt-mein-tage-table th, .zt-mein-tage-table td { padding: 8px 10px; }
    .zt-mein-tage-table th { font-size: 10px; }
    .zt-mein-td-datum { flex-wrap: wrap; }
    .zt-mein-heute-pill { font-size: 9px; padding: 1px 6px; }
}

/* ═══════════════════════════════════════════════════════════════════════
   Block 94 v2 — Polish-Fixes (Marco-Feedback 2026-05-27)
   ═══════════════════════════════════════════════════════════════════════ */

/* Modal-Header-Overlap-Fix: globales .card-header hat negative Margin,
   im Modal-Context muss das resetted werden (sonst Title-Überlapp X-Button) */
.zt-modal-content .card-header {
    margin: 0 !important;
    padding: 18px 22px;
    border-bottom: 1px solid var(--border-subtle, #f3f4f6);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
.zt-modal-content .card-header h2 {
    margin: 0;
    flex: 1;
    min-width: 0;
    font-size: 16px;
    line-height: 1.3;
    color: var(--text-primary, #111827);
}
.zt-modal-content .card-header .btn-icon,
.zt-modal-content .card-header button[aria-label="Schließen"] {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    padding: 0;
    background: transparent;
    border: 1px solid var(--border, #e5e7eb);
    border-radius: 6px;
    color: var(--text-secondary, #6b7280);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}
.zt-modal-content .card-header button[aria-label="Schließen"]:hover {
    background: var(--bg-surface-2, #f9fafb);
    color: var(--text-primary, #111827);
}

/* Monatsnav-Buttons: klare quadratische Boxen mit Pfeil-Icon (Marco-Bug-Fix
   gegen „leere Kreise"-Anzeige) — override .btn defaults */
.zt-mein-monatnav-btn {
    width: 36px !important;
    height: 36px !important;
    padding: 0 !important;
    border: 1px solid var(--border, #e5e7eb) !important;
    border-radius: 8px !important;
    background: var(--bg-surface, #fff) !important;
    color: var(--text-primary, #111827) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-decoration: none !important;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.zt-mein-monatnav-btn svg {
    width: 18px !important;
    height: 18px !important;
    stroke: currentColor !important;
    flex-shrink: 0;
}
.zt-mein-monatnav-btn:hover {
    background: var(--bg-surface-2, #f9fafb) !important;
    color: var(--primary, #0F6B47) !important;
    border-color: var(--primary, #0F6B47) !important;
}
.zt-mein-monatnav-btn.is-disabled {
    opacity: 0.4 !important;
    pointer-events: none;
    cursor: not-allowed;
}

/* Form-Padding im Modal: Margin nicht negativ machen */
.zt-modal-content .zt-antrag-form { padding: 20px 22px; }

/* Modal-Backdrop klickbar — pointer-Cursor */
.zt-modal-backdrop { cursor: pointer; }

/* KPI-Card Icon-Bubble — sicherstellen dass Lucide-Stroke sichtbar */
.zt-mein-kpi-icon svg {
    stroke: currentColor !important;
    fill: none !important;
    stroke-width: 2;
}

/* ═══════════════════════════════════════════════════════════════════════
   Block 94 v2 — Team-Saldi-Tab (Sub-Block 94.2.9, Smaragd-Variante)
   Paginierte Mitarbeiter-Saldi-Tabelle für Vorarbeiter+ (A1 100-MA-Skalierung).
   Recycelt .zt-mein-monatnav-btn für Pfeil-Buttons.
   ═══════════════════════════════════════════════════════════════════════ */

/* Header-Card mit Monatsnav + Meta-Counter */
.zt-team-header-card { margin-bottom: 16px; }
.zt-team-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
}
.zt-team-header h2 {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary, #111827);
}
.zt-team-header h2 svg {
    stroke: var(--primary, #0F6B47);
    flex-shrink: 0;
}
.zt-team-monatnav {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

/* Meta-Zeile (Total-Counter + Page-Info) unter Header */
.zt-team-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    padding: 12px 22px;
    background: color-mix(in srgb, var(--primary, #0F6B47) 4%, transparent);
    border-top: 1px solid var(--border-subtle, #f3f4f6);
    font-size: 13px;
    color: var(--text-secondary, #4b5563);
}
.zt-team-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.zt-team-meta-item svg {
    stroke: var(--text-muted, #6b7280);
    flex-shrink: 0;
}
.zt-team-meta-item strong { color: var(--text-primary, #111827); }
.zt-team-meta-sub {
    color: var(--text-muted, #6b7280);
    font-size: 12px;
}

/* Empty-State */
.zt-team-empty-card { padding: 0; }
.zt-team-empty {
    text-align: center;
    padding: 48px 24px;
    color: var(--text-secondary, #4b5563);
}
.zt-team-empty svg {
    stroke: var(--text-muted, #9ca3af);
    margin-bottom: 12px;
}
.zt-team-empty h3 {
    margin: 0 0 8px;
    font-size: 18px;
    color: var(--text-primary, #111827);
}
.zt-team-empty p { margin: 0; font-size: 14px; }
.zt-team-empty a {
    color: var(--primary, #0F6B47);
    font-weight: 500;
    text-decoration: underline;
}

/* Saldi-Tabelle */
.zt-team-tabelle-card { padding: 0; margin-bottom: 16px; }
.zt-team-tabelle-wrap { overflow-x: auto; }
.zt-team-tabelle {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}
.zt-team-tabelle thead th {
    text-align: left;
    padding: 14px 16px;
    font-weight: 600;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-muted, #6b7280);
    background: var(--bg-surface-2, #f9fafb);
    border-bottom: 1px solid var(--border, #e5e7eb);
}
.zt-team-tabelle th.zt-team-th-num,
.zt-team-tabelle td.zt-team-td-num {
    text-align: right;
    font-variant-numeric: tabular-nums;
}
.zt-team-tabelle tbody tr.zt-team-row {
    border-bottom: 1px solid var(--border-subtle, #f3f4f6);
    transition: background 0.12s ease;
}
.zt-team-tabelle tbody tr.zt-team-row:hover {
    background: color-mix(in srgb, var(--primary, #0F6B47) 3%, transparent);
}
.zt-team-tabelle tbody tr.zt-team-row:last-child { border-bottom: none; }
.zt-team-tabelle td {
    padding: 12px 16px;
    color: var(--text-primary, #111827);
}
.zt-team-td-name .zt-team-name {
    font-weight: 500;
    color: var(--text-primary, #111827);
}

/* Rolle-Pills */
.zt-team-rolle-pill {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 8px;
    border-radius: 12px;
    font-size: 11px;
    font-weight: 500;
    background: var(--bg-surface-2, #f9fafb);
    color: var(--text-secondary, #4b5563);
    border: 1px solid var(--border-subtle, #f3f4f6);
}
.zt-team-rolle-pill svg {
    stroke: currentColor;
    flex-shrink: 0;
}
.zt-team-rolle-pill.zt-rolle-owner {
    background: color-mix(in srgb, var(--warning, #d97706) 12%, var(--bg-surface, #fff));
    color: var(--warning, #b45309);
    border-color: color-mix(in srgb, var(--warning, #d97706) 25%, transparent);
}
.zt-team-rolle-pill.zt-rolle-meister {
    background: color-mix(in srgb, var(--primary, #0F6B47) 12%, var(--bg-surface, #fff));
    color: var(--primary, #0a5238);
    border-color: color-mix(in srgb, var(--primary, #0F6B47) 25%, transparent);
}
.zt-team-rolle-pill.zt-rolle-admin {
    background: color-mix(in srgb, var(--info, #2563eb) 10%, var(--bg-surface, #fff));
    color: var(--info, #1d4ed8);
    border-color: color-mix(in srgb, var(--info, #2563eb) 22%, transparent);
}
.zt-team-rolle-pill.zt-rolle-trainer {
    background: var(--bg-surface-2, #f9fafb);
    color: var(--text-secondary, #4b5563);
}

/* Saldo-Coloring */
.zt-team-td-saldo.is-positive { color: var(--success, #16a34a); }
.zt-team-td-saldo.is-negative { color: var(--danger, #dc2626); }

/* Urlaubs-Rest */
.zt-team-urlaub {
    font-weight: 500;
    color: var(--text-primary, #111827);
}
.zt-team-urlaub-unit {
    font-weight: 400;
    font-size: 12px;
    color: var(--text-muted, #6b7280);
}
.zt-team-urlaub.is-low { color: var(--warning, #d97706); }
.zt-team-urlaub.is-empty { color: var(--danger, #dc2626); }

/* Pagination Footer */
.zt-team-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 8px;
    padding: 14px 4px;
    flex-wrap: wrap;
}
.zt-team-pag-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    font-size: 13px;
    text-decoration: none;
}
.zt-team-pag-btn svg {
    stroke: currentColor;
    flex-shrink: 0;
}
.zt-team-pag-btn.is-disabled {
    opacity: 0.4;
    pointer-events: none;
    cursor: not-allowed;
}
.zt-team-pag-info {
    font-size: 13px;
    color: var(--text-secondary, #4b5563);
    font-variant-numeric: tabular-nums;
}

/* Mobile-Responsive: Tabelle scrollbar + Pagination stacked */
@media (max-width: 768px) {
    .zt-team-header { flex-direction: column; align-items: flex-start; }
    .zt-team-tabelle { font-size: 13px; }
    .zt-team-tabelle thead th,
    .zt-team-tabelle td { padding: 10px 12px; }
    .zt-team-pagination { flex-direction: column; }
    .zt-team-pag-btn { width: 100%; justify-content: center; }
}

/* Block 94 v2 94.2.9b — Tab-Scroll-Anker:
   Verhindert dass Browser nach Tab-Klick zum Seitenanfang scrollt.
   Anchor ist auf der Tab-Bar; mit scroll-margin-top haben wir Headroom
   damit der Anchor nicht direkt unter dem fixed Header klebt. */
#zt-tabs-anchor {
    scroll-margin-top: 90px;
}

/* ═══════════════════════════════════════════════════════════════════════
   Block 94 v2 — Anträge-Tab (Sub-Block 94.2.11, Smaragd-Variante)
   Eingereichte Anträge mit Genehmigen/Ablehnen-Actions (owner+meister Q2).
   ═══════════════════════════════════════════════════════════════════════ */

/* Header-Card */
.zt-antraege-header-card { margin-bottom: 16px; }
.zt-antraege-header h2 {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 6px;
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary, #111827);
}
.zt-antraege-header h2 svg {
    stroke: var(--primary, #0F6B47);
    flex-shrink: 0;
}
.zt-antraege-sublabel {
    margin: 0;
    font-size: 13px;
    color: var(--text-secondary, #4b5563);
}

/* Empty-State (alles abgearbeitet) */
.zt-antraege-empty-card { padding: 0; }
.zt-antraege-empty {
    text-align: center;
    padding: 48px 24px;
    color: var(--text-secondary, #4b5563);
}
.zt-antraege-empty svg {
    stroke: var(--success, #16a34a);
    margin-bottom: 12px;
}
.zt-antraege-empty h3 {
    margin: 0 0 8px;
    font-size: 18px;
    color: var(--text-primary, #111827);
}
.zt-antraege-empty p { margin: 0; font-size: 14px; max-width: 480px; margin: 0 auto; }

/* Anträge-Tabelle */
.zt-antraege-tabelle-card { padding: 0; margin-bottom: 16px; }
.zt-antraege-tabelle-wrap { overflow-x: auto; }
.zt-antraege-tabelle {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}
.zt-antraege-tabelle thead th {
    text-align: left;
    padding: 14px 16px;
    font-weight: 600;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-muted, #6b7280);
    background: var(--bg-surface-2, #f9fafb);
    border-bottom: 1px solid var(--border, #e5e7eb);
}
.zt-antraege-tabelle tbody tr.zt-antraege-row {
    border-bottom: 1px solid var(--border-subtle, #f3f4f6);
    transition: background 0.12s ease;
}
.zt-antraege-tabelle tbody tr.zt-antraege-row:hover {
    background: color-mix(in srgb, var(--primary, #0F6B47) 3%, transparent);
}
.zt-antraege-tabelle tbody tr.zt-antraege-row:last-child { border-bottom: none; }
.zt-antraege-tabelle td {
    padding: 14px 16px;
    vertical-align: top;
    color: var(--text-primary, #111827);
}
.zt-antraege-td-name strong {
    font-weight: 500;
    color: var(--text-primary, #111827);
}
.zt-antraege-email {
    font-size: 12px;
    color: var(--text-muted, #6b7280);
}
.zt-antraege-td-dauer {
    font-variant-numeric: tabular-nums;
}
.zt-antraege-td-beantragt {
    font-size: 13px;
    color: var(--text-secondary, #4b5563);
    white-space: nowrap;
}
.zt-antraege-td-notiz {
    max-width: 280px;
}
.zt-antraege-notiz {
    color: var(--text-primary, #111827);
    word-wrap: break-word;
}
.zt-antraege-notiz-empty {
    color: var(--text-muted, #9ca3af);
}

/* Typ-Pills (recycelt von .zt-mein-typ-pill aber mit eigenem Container) */
.zt-antraege-typ-pill {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 500;
    background: color-mix(in srgb, var(--primary, #0F6B47) 10%, var(--bg-surface, #fff));
    color: var(--primary, #0a5238);
    border: 1px solid color-mix(in srgb, var(--primary, #0F6B47) 22%, transparent);
}
.zt-antraege-typ-pill svg {
    stroke: currentColor;
    flex-shrink: 0;
}

/* Action-Buttons (Genehmigen + Ablehnen) */
.zt-antraege-td-actions {
    white-space: nowrap;
    text-align: right;
}
.zt-antraege-inline-form {
    display: inline-block;
    margin: 0 6px 0 0;
}
.zt-antraege-btn-approve,
.zt-antraege-btn-reject {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    padding: 6px 12px;
}
.zt-antraege-btn-approve svg,
.zt-antraege-btn-reject svg {
    stroke: currentColor;
    flex-shrink: 0;
}
.zt-antraege-btn-reject {
    background: var(--bg-surface, #fff);
    color: var(--danger, #dc2626);
    border-color: color-mix(in srgb, var(--danger, #dc2626) 30%, var(--border, #e5e7eb));
}
.zt-antraege-btn-reject:hover {
    background: color-mix(in srgb, var(--danger, #dc2626) 6%, var(--bg-surface, #fff));
    border-color: var(--danger, #dc2626);
}

/* Ablehnen-Modal (recycelt .zt-modal von 94.2.7) */
.zt-ablehnen-info {
    margin: 0 0 16px;
    padding: 10px 14px;
    background: var(--bg-surface-2, #f9fafb);
    border-radius: 6px;
    font-size: 13px;
    color: var(--text-secondary, #4b5563);
}
.zt-required {
    color: var(--danger, #dc2626);
    font-weight: 700;
}
.zt-form-hint {
    display: block;
    margin-top: 6px;
    font-size: 12px;
    color: var(--text-muted, #6b7280);
}
.zt-form-hint svg {
    stroke: currentColor;
    flex-shrink: 0;
    vertical-align: middle;
    margin-right: 4px;
}

/* Mobile-Responsive */
@media (max-width: 768px) {
    .zt-antraege-tabelle { font-size: 13px; }
    .zt-antraege-tabelle thead th,
    .zt-antraege-tabelle td { padding: 10px 12px; }
    .zt-antraege-td-actions { text-align: left; }
    .zt-antraege-btn-approve,
    .zt-antraege-btn-reject { width: 100%; justify-content: center; margin-bottom: 6px; }
    .zt-antraege-inline-form { display: block; margin: 0 0 6px; }
}

/* ═══════════════════════════════════════════════════════════════
   Block 94 v2 — Abwesenheiten-Tab (Sub-Block 94.2.13)
   Form-Card + Tabelle + Status-Pills + Mobile-Cards. Analog .zt-antraege-*
   Pattern. Sichtbar fuer owner/meister/admin.
   ═══════════════════════════════════════════════════════════════ */

/* Form-Card */
.zt-abw-form-card { margin-bottom: 16px; }
.zt-abw-form-header h2 {
    display: flex; align-items: center; gap: 8px;
    font-size: 18px; margin: 0;
}
.zt-abw-form-intro {
    color: var(--text-secondary);
    font-size: 14px; line-height: 1.5;
    margin: 0 0 16px;
}
.zt-abw-form { display: flex; flex-direction: column; gap: 12px; }
.zt-abw-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}
.zt-abw-label {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 13px; font-weight: 600;
    color: var(--text-primary);
    margin-bottom: 4px;
}
.zt-abw-required { color: var(--danger); font-weight: 700; }
.zt-abw-label-hint { color: var(--text-muted); font-weight: 400; }
.zt-abw-notiz-row { margin-top: 4px; }
.zt-abw-form-actions {
    display: flex; justify-content: flex-end;
    margin-top: 8px;
}

/* Header-Card */
.zt-abw-header-card { margin-bottom: 16px; }
.zt-abw-header h2 {
    display: flex; align-items: center; gap: 8px;
    font-size: 18px; margin: 0;
}
.zt-abw-header-sub {
    color: var(--text-secondary);
    font-size: 14px; font-weight: 400;
}
.zt-abw-count {
    background: color-mix(in srgb, var(--primary) 15%, var(--bg-surface));
    color: var(--primary);
    font-size: 13px; font-weight: 700;
    padding: 2px 8px; border-radius: 10px;
    margin-left: 4px;
}
.zt-abw-sublabel {
    color: var(--text-secondary);
    font-size: 13px; margin: 6px 0 0;
}

/* Empty-State */
.zt-abw-empty-card { padding: 0; }
.zt-abw-empty {
    text-align: center; padding: 48px 24px;
    color: var(--text-secondary);
}
.zt-abw-empty h3 {
    color: var(--text-primary);
    font-size: 18px; margin: 12px 0 6px;
}
.zt-abw-empty p {
    font-size: 14px; line-height: 1.5;
    max-width: 480px; margin: 0 auto;
}

/* Tabelle Desktop */
.zt-abw-tabelle-card { padding: 0; overflow: hidden; }
.zt-abw-tabelle-wrap { overflow-x: auto; }
.zt-abw-tabelle {
    width: 100%; border-collapse: collapse;
    font-size: 14px;
}
.zt-abw-tabelle th {
    background: var(--bg-surface-2);
    color: var(--text-secondary);
    font-size: 12px; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.4px;
    padding: 10px 12px; text-align: left;
    border-bottom: 1px solid var(--border);
}
.zt-abw-tabelle td {
    padding: 12px; vertical-align: middle;
    border-bottom: 1px solid var(--border-subtle);
}
.zt-abw-row:hover {
    background: color-mix(in srgb, var(--primary) 4%, var(--bg-surface));
}
.zt-abw-th-name { width: 220px; }
.zt-abw-th-typ { width: 140px; }
.zt-abw-th-status { width: 160px; }
.zt-abw-th-date { width: 110px; }
.zt-abw-th-tage { width: 80px; text-align: right; }
.zt-abw-th-notiz { min-width: 160px; }
.zt-abw-th-action { width: 50px; }
.zt-abw-td-date { font-variant-numeric: tabular-nums; color: var(--text-secondary); }
.zt-abw-td-tage { text-align: right; font-variant-numeric: tabular-nums; }
.zt-abw-tage-unit { color: var(--text-muted); font-size: 12px; }
.zt-abw-td-notiz {
    color: var(--text-secondary); font-size: 13px;
    max-width: 320px; word-break: break-word;
}
.zt-abw-td-action { text-align: right; }
.zt-abw-muted { color: var(--text-muted); }

/* Name + Avatar */
.zt-abw-name-wrap {
    display: flex; align-items: center; gap: 10px;
}
.zt-abw-avatar {
    display: inline-flex; align-items: center; justify-content: center;
    width: 32px; height: 32px; border-radius: 50%;
    background: var(--avatar-bg, var(--primary));
    color: #fff; font-size: 12px; font-weight: 700;
    flex-shrink: 0;
}
.zt-abw-avatar-all {
    background: color-mix(in srgb, var(--primary) 70%, var(--bg-surface));
}
.zt-abw-all-label { color: var(--text-secondary); font-style: italic; }

/* Typ-Pills */
.zt-abw-typ-pill {
    display: inline-flex; align-items: center; gap: 5px;
    padding: 4px 10px; border-radius: 12px;
    font-size: 12px; font-weight: 600;
    background: var(--bg-surface-2);
    color: var(--text-secondary);
    border: 1px solid var(--border-subtle);
    white-space: nowrap;
}
.zt-abw-typ-urlaub {
    background: color-mix(in srgb, #2F9E6A 12%, var(--bg-surface));
    color: #1E7E54;
    border-color: color-mix(in srgb, #2F9E6A 30%, transparent);
}
.zt-abw-typ-krank {
    background: color-mix(in srgb, var(--danger) 12%, var(--bg-surface));
    color: var(--danger);
    border-color: color-mix(in srgb, var(--danger) 30%, transparent);
}
.zt-abw-typ-feiertag {
    background: color-mix(in srgb, var(--warning) 14%, var(--bg-surface));
    color: var(--warning);
    border-color: color-mix(in srgb, var(--warning) 30%, transparent);
}
.zt-abw-typ-fortbildung {
    background: color-mix(in srgb, var(--info) 12%, var(--bg-surface));
    color: var(--info);
    border-color: color-mix(in srgb, var(--info) 30%, transparent);
}
.zt-abw-typ-kind_krank {
    background: color-mix(in srgb, var(--danger) 10%, var(--bg-surface));
    color: color-mix(in srgb, var(--danger) 85%, var(--text-primary));
    border-color: color-mix(in srgb, var(--danger) 25%, transparent);
}
.zt-abw-typ-sonderurlaub {
    background: color-mix(in srgb, var(--primary) 12%, var(--bg-surface));
    color: var(--primary);
    border-color: color-mix(in srgb, var(--primary) 30%, transparent);
}
.zt-abw-typ-ueberstunden_abbau {
    background: color-mix(in srgb, var(--text-secondary) 12%, var(--bg-surface));
    color: var(--text-primary);
    border-color: var(--border);
}
.zt-abw-typ-frei {
    background: color-mix(in srgb, var(--text-secondary) 10%, var(--bg-surface));
    color: var(--text-secondary);
    border-color: var(--border-subtle);
}

/* Status-Pills */
.zt-abw-status-pill {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 3px 8px; border-radius: 8px;
    font-size: 11px; font-weight: 600;
    border: 1px solid transparent;
    white-space: nowrap;
}
.zt-abw-status-pill-beantragt {
    background: color-mix(in srgb, var(--warning) 14%, var(--bg-surface));
    color: var(--warning);
    border-color: color-mix(in srgb, var(--warning) 35%, transparent);
}
.zt-abw-status-pill-genehmigt {
    background: color-mix(in srgb, #2F9E6A 14%, var(--bg-surface));
    color: #1E7E54;
    border-color: color-mix(in srgb, #2F9E6A 35%, transparent);
}
.zt-abw-status-pill-abgelehnt {
    background: color-mix(in srgb, var(--danger) 14%, var(--bg-surface));
    color: var(--danger);
    border-color: color-mix(in srgb, var(--danger) 35%, transparent);
}
.zt-abw-status-pill-gemeldet {
    background: color-mix(in srgb, var(--info) 14%, var(--bg-surface));
    color: var(--info);
    border-color: color-mix(in srgb, var(--info) 35%, transparent);
}
.zt-abw-status-pill-zurueckgezogen {
    background: var(--bg-surface-2);
    color: var(--text-muted);
    border-color: var(--border-subtle);
}

/* Status-Row-Tint (zurueckgezogen + abgelehnt = subtil ausgegraut) */
.zt-abw-status-zurueckgezogen td,
.zt-abw-status-abgelehnt td { opacity: 0.7; }

/* Grund + Genehmiger Sub-Info */
.zt-abw-grund, .zt-abw-genehmiger {
    color: var(--text-muted); font-size: 11px;
    margin-top: 3px;
    display: inline-flex; align-items: center; gap: 3px;
}

/* Loeschen-Button */
.zt-abw-del-btn {
    background: transparent;
    border: 1px solid var(--border);
    color: var(--text-muted);
    width: 32px; height: 32px; border-radius: 8px;
    display: inline-flex; align-items: center; justify-content: center;
    cursor: pointer; transition: all 0.15s;
}
.zt-abw-del-btn:hover {
    background: color-mix(in srgb, var(--danger) 10%, var(--bg-surface));
    color: var(--danger);
    border-color: color-mix(in srgb, var(--danger) 30%, transparent);
}
.zt-abw-form-inline { display: inline-block; margin: 0; }

/* Mobile-Cards (Desktop versteckt, Mobile sichtbar) */
.zt-abw-mobile-list { display: none; }
.zt-abw-mobile-card { padding: 12px; margin-bottom: 12px; }
.zt-abw-mobile-head {
    display: flex; align-items: center; justify-content: space-between;
    gap: 8px; margin-bottom: 8px;
    flex-wrap: wrap;
}
.zt-abw-mobile-pills {
    display: flex; flex-wrap: wrap; gap: 6px;
    margin-bottom: 8px;
}
.zt-abw-mobile-meta {
    display: flex; flex-direction: column; gap: 4px;
    color: var(--text-secondary); font-size: 13px;
    margin-bottom: 10px;
}
.zt-abw-mobile-meta span {
    display: inline-flex; align-items: center; gap: 5px;
}
.zt-abw-grund-mobile {
    color: var(--danger); font-style: italic;
}
.zt-abw-mobile-del { width: 100%; justify-content: center; }
.zt-abw-form-card-delete { margin: 0; }

/* Mobile Responsive */
@media (max-width: 768px) {
    .zt-abw-grid { grid-template-columns: 1fr 1fr; }
    .zt-abw-tabelle-card { display: none; }
    .zt-abw-mobile-list { display: block; }
}
@media (max-width: 480px) {
    .zt-abw-grid { grid-template-columns: 1fr; }
    .zt-abw-form-actions button { width: 100%; }
}

/* ════════════════════════════════════════════════════════════
   Block 94 v2 Sub 94.3.5 (2026-05-27): Einstellungen-Tab Styles
   CSP-konform (keine Inline-Styles im Template), nur CSS-Variablen.
   ════════════════════════════════════════════════════════════ */

/* MA-Tabelle */
.zt-einst-table-wrap {
    overflow-x: auto;
    margin-top: 16px;
    border-radius: 10px;
    border: 1px solid var(--border);
}
.zt-einst-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
    background: var(--bg-surface);
}
.zt-einst-table thead th {
    background: var(--bg-surface-2);
    color: var(--text-secondary);
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 12px 14px;
    text-align: left;
    border-bottom: 1px solid var(--border);
}
.zt-einst-table tbody td {
    padding: 14px;
    border-bottom: 1px solid var(--border-subtle);
    vertical-align: middle;
    color: var(--text-primary);
}
.zt-einst-row {
    transition: background-color 0.15s ease;
}
.zt-einst-row:hover {
    background: color-mix(in srgb, var(--primary) 6%, transparent);
}
.zt-einst-tagessumme {
    font-family: 'SF Mono', Menlo, Monaco, monospace;
    font-size: 13px;
    color: var(--text-secondary);
    letter-spacing: 0.5px;
}

/* Modal-Body */
.zt-einst-modal-content {
    max-width: 640px;
    width: 96vw;
    max-height: 90vh;
    overflow-y: auto;
}
.zt-einst-modal-body {
    padding: 24px 28px 28px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.zt-einst-section-title {
    margin: 8px 0 6px;
    font-size: 16px;
    font-weight: 600;
    color: var(--text-primary);
    letter-spacing: -0.01em;
}
.zt-einst-form {
    display: flex;
    flex-direction: column;
    gap: 14px;
    background: var(--bg-surface-2);
    padding: 18px 18px 16px;
    border-radius: 10px;
    border: 1px solid var(--border-subtle);
}
.zt-einst-divider {
    border: 0;
    border-top: 1px solid var(--border);
    margin: 8px 0;
}

/* Vorlagen-Buttons */
.zt-einst-vorlagen {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    padding: 12px;
    background: color-mix(in srgb, var(--primary) 5%, var(--bg-surface));
    border-radius: 8px;
    border: 1px solid color-mix(in srgb, var(--primary) 18%, transparent);
}
.zt-einst-vorlagen-label {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-right: 4px;
}

/* Hint-Text */
.zt-einst-hint {
    font-size: 13px;
    color: var(--text-muted);
    margin: 4px 0 4px;
    line-height: 1.4;
}

/* 7-Tages-Grid */
.zt-einst-tage-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 8px;
}
.zt-einst-tage-grid label {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.zt-einst-tage-grid input[type="number"] {
    width: 100%;
    padding: 10px 6px;
    text-align: center;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--bg-surface);
    color: var(--text-primary);
    font-size: 15px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.zt-einst-tage-grid input[type="number"]:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 18%, transparent);
}

/* Wochen-Soll Live-Display */
.zt-einst-wochen-display {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    padding: 14px 18px;
    background: color-mix(in srgb, var(--success) 10%, var(--bg-surface));
    border-radius: 10px;
    border: 1px solid color-mix(in srgb, var(--success) 25%, transparent);
}
.zt-einst-wochen-label {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.zt-einst-wochen-value {
    font-size: 24px;
    font-weight: 700;
    color: var(--success);
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.02em;
}

/* Form-Actions */
.zt-einst-form-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 6px;
}

/* Form-Rows + Form-Labels innerhalb Modal */
.zt-einst-modal-body .form-row {
    display: flex;
    gap: 14px;
    align-items: end;
}
.zt-einst-modal-body .form-row > .form-label {
    flex: 1;
}
.zt-einst-modal-body .form-label {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: 13px;
    font-weight: 600;
    color: var(--text-secondary);
}
.zt-einst-modal-body .form-input {
    padding: 9px 12px;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--bg-surface);
    color: var(--text-primary);
    font-size: 14px;
    transition: border-color 0.15s ease;
}
.zt-einst-modal-body .form-input:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 18%, transparent);
}

@media (max-width: 640px) {
    .zt-einst-tage-grid {
        grid-template-columns: repeat(4, 1fr);
    }
    .zt-einst-modal-body .form-row {
        flex-direction: column;
        align-items: stretch;
    }
    .zt-einst-vorlagen {
        flex-direction: column;
        align-items: stretch;
    }
}

/* ───────────────────────────────────────────────────────────────────────────
   i18n Achse A — Sprach-Umschalter im Header (nur Geselle/Vorarbeiter)
   Funktional-minimal, token-basiert (kein Hardcoded-Hex), Dark-Mode-safe.
   UX-Polish darf das spaeter verfeinern.
   ─────────────────────────────────────────────────────────────────────────── */
/* Sprach-Drawer: Trigger (aktuelle Flagge+Eigenname) + aufklappendes Panel mit allen Sprachen.
   Natives <details> -> kein JS, CSP-strict-sicher. Token-basiert, Dark-Mode-safe. */
.bk-lang-menu { position: relative; display: inline-block; }
.bk-lang-menu > summary {
    list-style: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 9px;
    border: 1px solid var(--border);
    background: var(--bg-surface);
    color: var(--text-primary);
    font-size: 13px;
    font-weight: 600;
    line-height: 1;
    border-radius: 8px;
    cursor: pointer;
    user-select: none;
}
.bk-lang-menu > summary::-webkit-details-marker { display: none; }
.bk-lang-menu > summary:hover { border-color: var(--primary); }
.bk-lang-menu[open] > summary { border-color: var(--primary); }
.bk-lang-menu__flag { font-size: 15px; line-height: 1; }
.bk-lang-menu__chev { font-size: 10px; color: var(--text-muted); transition: transform .15s ease; }
.bk-lang-menu[open] .bk-lang-menu__chev { transform: rotate(180deg); }
.bk-lang-menu__panel {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    z-index: 1200;
    width: 480px;
    max-width: 92vw;
    max-height: 60vh;
    overflow-y: auto;
    padding: 6px;
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: 10px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18);
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2px;
}
@media (max-width: 560px) {
    .bk-lang-menu__panel { width: 340px; grid-template-columns: repeat(2, 1fr); }
}
.bk-lang-menu__form { margin: 0; }
.bk-lang-menu__item {
    display: flex;
    align-items: center;
    gap: 9px;
    width: 100%;
    text-align: left;
    padding: 8px 10px;
    border: none;
    background: transparent;
    color: var(--text-primary);
    font-size: 13px;
    border-radius: 7px;
    cursor: pointer;
}
.bk-lang-menu__item:hover { background: var(--bg-surface-2); }
.bk-lang-menu__name { flex: 1; }
.bk-lang-menu__check { color: var(--primary); font-weight: 700; }
.bk-lang-menu__item.is-active {
    background: color-mix(in srgb, var(--primary) 12%, var(--bg-surface));
    color: var(--primary);
    font-weight: 600;
}

/* ─── Block 97.3d — Marktplatz-Konto-Hub (Tiles + Inserate-Zähler) ─── */
.mkt-tiles {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 16px;
    margin-bottom: 16px;
}
.mkt-tile {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    text-decoration: none;
    color: inherit;
    transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}
.mkt-tile:hover {
    transform: translateY(-2px);
    border-color: var(--kpi-accent, var(--primary));
    box-shadow: 0 6px 18px color-mix(in srgb, var(--kpi-accent, var(--primary)) 14%, transparent);
}
.mkt-tile-icon {
    width: 44px;
    height: 44px;
    border-radius: 11px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: color-mix(in srgb, var(--kpi-accent, var(--primary)) 15%, transparent);
    color: var(--kpi-accent, var(--primary));
}
.mkt-tile-body { min-width: 0; }
.mkt-tile h3 { margin: 0 0 6px; color: var(--kpi-accent, var(--primary)); }
.mkt-quota {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 14px;
}
.mkt-quota-bar {
    flex: 1;
    height: 8px;
    border-radius: 99px;
    background: var(--bg-surface-2);
    overflow: hidden;
}
.mkt-quota-fill {
    height: 100%;
    border-radius: 99px;
    background: var(--primary);
    width: var(--bk-w, 0%);
    transition: width .2s ease;
}
.mkt-quota-fill.is-full { background: var(--warning); }
.mkt-quota-label { font-size: 13px; font-weight: 600; white-space: nowrap; }
.mkt-quota-hint { margin-top: 8px; }
/* Konto-Hub Erklaer-Block "Das kannst du hier / So nutzt du es" (Block 97.4) */
.mkt-can-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.mkt-can-list li {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    font-size: 14px;
    line-height: 1.5;
    color: var(--text-secondary);
}
.mkt-can-list strong { color: var(--text-primary); }
.mkt-can-icon {
    flex-shrink: 0;
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    background: color-mix(in srgb, var(--primary) 12%, transparent);
    color: var(--primary);
    border-radius: 9px;
}
.mkt-howto-title {
    margin: 20px 0 8px;
    font-size: 15px;
    color: var(--text-primary);
}
.mkt-howto {
    margin: 0;
    padding-left: 20px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: 14px;
    line-height: 1.5;
    color: var(--text-secondary);
}
.mkt-howto li { padding-left: 4px; }

/* ═══════════════════════════════════════════════════════════════════
   MARKTPLATZ FARB-PASS (2026-07-03) — Marco: „mehr Farbe, unsere Farben"
   Nur Brand-/Semantik-Variablen, page-scoped Overrides (Cascade gewinnt).
   ═══════════════════════════════════════════════════════════════════ */

/* Konto-Hero: Navy-Verlauf wie die Landing (Logo-Würfel dunkel→blau) */
.mkt-hero {
    background: linear-gradient(135deg, var(--brand-blue-dark) 0%, var(--brand-blue) 100%);
    border-color: var(--brand-blue-dark);
}
.mkt-hero .card-header h2 { color: #fff; }
.mkt-hero .card-header {
    /* card-header hat eigenen hellen Bg — transparent, sonst weiß-auf-weiß (Marco-Fund 2026-07-03) */
    background: transparent;
    border-bottom-color: rgba(255, 255, 255, 0.15);
}
.mkt-hero .text-muted-md { color: rgba(255, 255, 255, 0.80); }
.mkt-hero .mkt-quota-label { color: #fff; }
.mkt-hero .mkt-quota-bar { background: rgba(255, 255, 255, 0.22); }
.mkt-hero .mkt-quota-fill { background: var(--brand-orange); }
.mkt-hero .mkt-quota-fill.is-full { background: var(--brand-orange-light); }
.mkt-hero .mkt-quota-hint { color: var(--brand-orange-light); }

/* „Das kannst du hier"-Icons: bunte Bubbles (Akzent pro Zeile via --kpi-accent) */
.mkt-can-icon {
    background: color-mix(in srgb, var(--kpi-accent, var(--primary)) 15%, transparent);
    color: var(--kpi-accent, var(--primary));
    border-radius: 10px;
}

/* Nachrichten-Liste: Avatar-Bubble + Akzent-Hover + goldenes Ungelesen-Badge */
.mkt-konv-avatar {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-weight: 800;
    font-size: 16px;
    background: color-mix(in srgb, var(--brand-blue) 15%, transparent);
    color: var(--brand-blue);
}
.mkt-konv-row:hover {
    border-color: var(--brand-blue);
    box-shadow: 0 4px 14px color-mix(in srgb, var(--brand-blue) 12%, transparent);
}
.mkt-unread-badge {
    background: var(--brand-orange);
    color: var(--brand-blue-dark);
}

/* Chat: eigene Nachrichten in kräftigem Brand-Blau (Messenger-Konvention) */
.mkt-msg-self {
    background: var(--brand-blue);
    border-color: var(--brand-blue);
    color: #fff;
}
.mkt-msg-self .mkt-msg-time { color: rgba(255, 255, 255, 0.75); }
.mkt-msg-other {
    background: color-mix(in srgb, var(--brand-blue-light) 9%, var(--bg-surface-2));
}

/* ── E-Commerce Sidebar: „Bald"-Einträge (Block 1.1 Gate-Runde 2, Spec §14.3) ──
   Die komplette geplante Admin-Struktur ist sichtbar, kommende Bereiche sind
   ausgegraut + nicht klickbar (keine toten Links, Regel 19) — sie werden pro
   Block scharfgeschaltet (Produkte 1.2 · Lager 1.3/1.4 · Bestellungen 3.x ·
   Kunden/Gruppen 5.x · Versand/Rabatte 4.x · Bewertungen/Retouren 6.x). */
.sidebar-nav .ec-nav-bald {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 10px 14px;
    margin: 1px 0;
    font-size: 13px;
    border-radius: 6px;
    border-left: 3px solid transparent;
    color: var(--text-sidebar-dim);
    opacity: 0.55;
    cursor: default;
}
.ec-bald-badge {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 2px 8px;
    border-radius: 8px;
    background: color-mix(in srgb, var(--primary) 18%, transparent);
    color: var(--text-sidebar-dim);
    white-space: nowrap;
}

/* ── E-Commerce Sortiment-Tabs „Produkte | Kategorien" (Block 1.2, Option A
   Marco-Entscheid 2026-07-04, Spec §14.3 „ein Bereich") — zentral statt
   page-scoped, beide Seiten des Bereichs nutzen dieselben Klassen. */
.ec-tabs-row {
    display: flex;
    gap: 8px;
    margin-bottom: 16px;
    border-bottom: 1px solid var(--border);
    flex-wrap: wrap;
}
.ec-tab-link {
    padding: 9px 16px;
    font-size: 14px;
    font-weight: 600;
    color: var(--text-secondary);
    text-decoration: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
}
.ec-tab-link:hover {
    color: var(--text-primary);
}
.ec-tab-link.is-active {
    color: var(--primary);
    border-bottom-color: var(--primary);
}
/* R9 Block 5 (2026-07-15): Plan-Schloss in der ec-Tab-Leiste — analog .bk-allfn-lock
   (Drawer): gedimmter Tab + PRO/BUSINESS-Pille, führt zur Abo-Seite. */
.ec-tab-link.ec-tab-locked { opacity: 0.6; }
.ec-tab-link.ec-tab-locked:hover { opacity: 1; }
.ec-tab-lock {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    margin-left: 5px;
    padding: 1px 6px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.5px;
    border-radius: 4px;
    background: color-mix(in srgb, var(--primary) 16%, transparent);
    color: var(--primary);
    text-transform: uppercase;
    white-space: nowrap;
    vertical-align: 1px;
}
.ec-tab-lock svg { width: 11px; height: 11px; }
[data-theme="dark"] .ec-tab-lock {
    background: color-mix(in srgb, var(--primary) 30%, transparent);
    color: color-mix(in srgb, var(--primary) 40%, white);
}
