﻿/* ==========================================================================
   FLOWDESK DESIGN TOKEN SYSTEM v2.0
   Multi-Theme: Premium | Government | Glass Black | Glass Blue
   Steuerung: <body data-design="premium|government|glass-black|glass-blue" class="dark-mode">
   Jede Familie hat Light + Dark (Glass-Familien nur Dark)
   ========================================================================== */

/* â•”â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•—
   â•‘  PREMIUM (Linear + Stripe) â€” Light Mode                                â•‘
   â•‘  Schrift: Inter Â· Radien: 10px Â· Kein Blur                             â•‘
   â•šâ•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
[data-design="premium"] {
    color-scheme: light;
    /* HintergrÃ¼nde */
    --fd-bg: #fafafa;
    --fd-bg-alt: #f4f4f5;
    --fd-bg-muted: #e8e8ec;
    --fd-surface: #ffffff;
    --fd-surface-alt: #f4f4f5;
    --fd-hover: #e8e8ec;
    --fd-primary-container: rgba(91,91,214,0.08);
    --fd-warning-container: rgba(173,87,0,0.08);
    --fd-input-bg: #ffffff;
    --fd-input-border: rgba(0,0,0,0.15);
    /* Text */
    --fd-text: #09090b;
    --fd-text-secondary: #71717a;
    --fd-text-tertiary: #a1a1aa;
    --fd-on-primary: #ffffff;
    /* Akzent & Semantik */
    --fd-primary: #5b5bd6;
    --fd-primary-hover: #4747c2;
    --fd-success: #18794e;
    --fd-danger: #cd2b31;
    --fd-warning: #ad5700;
    --fd-info: #3e63dd;
    --fd-border: rgba(0,0,0,0.06);
    --fd-border-strong: rgba(0,0,0,0.11);
    --fd-shadow: rgba(0,0,0,0.04);
    --fd-shadow-hover: rgba(0,0,0,0.08);
    /* Soft-Varianten (halbtransparenter Hintergrund fÃ¼r Badges) */
    --fd-accent-soft: rgba(91,91,214,0.06);
    --fd-schiefer-grad: linear-gradient(135deg, rgba(91,91,214,0.094), rgba(91,91,214,0.031));
    --fd-schiefer-hint: rgba(91,91,214,0.33);
    --fd-schiefer-sub: rgba(91,91,214,0.20);
    --fd-schiefer-glow: rgba(91,91,214,0.082);
    --fd-schiefer-inset: rgba(91,91,214,0.031);
    --fd-success-soft: rgba(24,121,78,0.06);
    --fd-warning-soft: rgba(173,87,0,0.06);
    --fd-danger-soft: rgba(205,43,49,0.06);
    --fd-info-soft: rgba(62,99,221,0.06);
    /* PrioritÃ¤ten */
    --fd-prio-gruen: rgba(24,121,78,0.08);
    --fd-prio-gruen-border: #18794e;
    --fd-prio-gelb: rgba(173,87,0,0.08);
    --fd-prio-gelb-border: #ad5700;
    --fd-prio-rot: rgba(205,43,49,0.08);
    --fd-prio-rot-border: #cd2b31;
    /* Feiertage & Wochenende */
    --fd-feiertag-global: rgba(205,43,49,0.08);
    --fd-feiertag-regional: rgba(91,91,214,0.08);
    --fd-wochenende: rgba(173,87,0,0.08);
    /* Typografie */
    --fd-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --fd-font-mono: 'JetBrains Mono', 'Fira Code', monospace;
    --fd-font-weight-bold: 600;
    /* Geometrie */
    --fd-radius-sm: 6px;
    --fd-radius: 10px;
    --fd-radius-lg: 10px;
    --fd-radius-pill: 20px;
    --fd-radius-round: 50%;
    --fd-border-width: 1px;
    --fd-focus-ring: 0 0 0 3px rgba(91,91,214,0.20);
    /* Elevation */
    --fd-elevation-1: 0 1px 2px rgba(0,0,0,0.04);
    --fd-elevation-2: 0 2px 8px rgba(0,0,0,0.06);
    --fd-elevation-3: 0 8px 24px rgba(0,0,0,0.08);
    /* Glass */
    --fd-blur: 0px;
}

/* â•”â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•—
   â•‘  PREMIUM â€” Dark Mode                                                   â•‘
   â•šâ•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
[data-design="premium"].dark-mode,
[data-design="premium"] .dark-mode {
    color-scheme: dark;
    /* HintergrÃ¼nde */
    --fd-bg: #111113;
    --fd-bg-alt: #19191c;
    --fd-bg-muted: #222225;
    --fd-surface: #19191c;
    --fd-surface-alt: #222225;
    --fd-hover: #2c2c30;
    --fd-primary-container: rgba(124,124,255,0.12);
    --fd-warning-container: rgba(245,166,35,0.12);
    --fd-input-bg: #222225;
    --fd-input-border: rgba(255,255,255,0.14);
    /* Text */
    --fd-text: #ededef;
    --fd-text-secondary: #8b8b8e;
    --fd-text-tertiary: #636366;
    --fd-on-primary: #111113;
    /* Akzent & Semantik */
    --fd-primary: #7c7cff;
    --fd-primary-hover: #9191ff;
    --fd-success: #30a46c;
    --fd-danger: #e5484d;
    --fd-warning: #f5a623;
    --fd-info: #3e63dd;
    --fd-border: rgba(255,255,255,0.06);
    --fd-border-strong: rgba(255,255,255,0.11);
    --fd-shadow: rgba(0,0,0,0.40);
    --fd-shadow-hover: rgba(0,0,0,0.55);
    /* Soft-Varianten */
    --fd-accent-soft: rgba(124,124,255,0.10);
    --fd-schiefer-grad: linear-gradient(135deg, rgba(124,124,255,0.094), rgba(124,124,255,0.031));
    --fd-schiefer-hint: rgba(124,124,255,0.33);
    --fd-schiefer-sub: rgba(124,124,255,0.20);
    --fd-schiefer-glow: rgba(124,124,255,0.082);
    --fd-schiefer-inset: rgba(124,124,255,0.031);
    --fd-success-soft: rgba(48,164,108,0.10);
    --fd-warning-soft: rgba(245,166,35,0.10);
    --fd-danger-soft: rgba(229,72,77,0.10);
    --fd-info-soft: rgba(62,99,221,0.10);
    /* PrioritÃ¤ten */
    --fd-prio-gruen: rgba(48,164,108,0.15);
    --fd-prio-gruen-border: #30a46c;
    --fd-prio-gelb: rgba(245,166,35,0.15);
    --fd-prio-gelb-border: #f5a623;
    --fd-prio-rot: rgba(229,72,77,0.15);
    --fd-prio-rot-border: #e5484d;
    /* Feiertage & Wochenende */
    --fd-feiertag-global: rgba(229,72,77,0.14);
    --fd-feiertag-regional: rgba(124,124,255,0.14);
    --fd-wochenende: rgba(245,166,35,0.10);
    /* Elevation */
    --fd-elevation-1: 0 1px 3px rgba(0,0,0,0.40);
    --fd-elevation-2: 0 2px 8px rgba(0,0,0,0.45);
    --fd-elevation-3: 0 8px 24px rgba(0,0,0,0.55);
    --fd-blur: 0px;
}

/* â•”â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•—
   â•‘  GOVERNMENT (KERN UX) â€” Light Mode                                     â•‘
   â•‘  Schrift: Source Sans 3 Â· Radien: 6px Â· Kein Blur                      â•‘
   â•šâ•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
[data-design="government"] {
    color-scheme: light;
    /* HintergrÃ¼nde */
    --fd-bg: #f0f4f8;
    --fd-bg-alt: #e8edf4;
    --fd-bg-muted: #dce3ed;
    --fd-surface: #ffffff;
    --fd-surface-alt: #f7f9fc;
    --fd-hover: #e2e8f0;
    --fd-primary-container: rgba(0,75,118,0.08);
    --fd-warning-container: rgba(220,104,3,0.08);
    --fd-input-bg: #ffffff;
    --fd-input-border: rgba(0,20,60,0.18);
    /* Text */
    --fd-text: #101828;
    --fd-text-secondary: #475467;
    --fd-text-tertiary: #98a2b3;
    --fd-on-primary: #ffffff;
    /* Akzent & Semantik */
    --fd-primary: #004b76;
    --fd-primary-hover: #003a5c;
    --fd-success: #12b76a;
    --fd-danger: #d92d20;
    --fd-warning: #dc6803;
    --fd-info: #2e90fa;
    --fd-border: rgba(0,20,60,0.08);
    --fd-border-strong: rgba(0,20,60,0.16);
    --fd-shadow: rgba(0,0,0,0.05);
    --fd-shadow-hover: rgba(0,0,0,0.10);
    /* Soft-Varianten */
    --fd-accent-soft: rgba(0,75,118,0.08);
    --fd-schiefer-grad: linear-gradient(135deg, rgba(0,75,118,0.094), rgba(0,75,118,0.031));
    --fd-schiefer-hint: rgba(0,75,118,0.33);
    --fd-schiefer-sub: rgba(0,75,118,0.20);
    --fd-schiefer-glow: rgba(0,75,118,0.082);
    --fd-schiefer-inset: rgba(0,75,118,0.031);
    --fd-success-soft: rgba(18,183,106,0.08);
    --fd-warning-soft: rgba(220,104,3,0.08);
    --fd-danger-soft: rgba(217,45,32,0.08);
    --fd-info-soft: rgba(46,144,250,0.08);
    /* PrioritÃ¤ten */
    --fd-prio-gruen: rgba(18,183,106,0.10);
    --fd-prio-gruen-border: #12b76a;
    --fd-prio-gelb: rgba(220,104,3,0.10);
    --fd-prio-gelb-border: #dc6803;
    --fd-prio-rot: rgba(217,45,32,0.10);
    --fd-prio-rot-border: #d92d20;
    /* Feiertage & Wochenende */
    --fd-feiertag-global: rgba(217,45,32,0.08);
    --fd-feiertag-regional: rgba(0,75,118,0.08);
    --fd-wochenende: rgba(220,104,3,0.08);
    /* Typografie */
    --fd-font: 'Source Sans 3', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --fd-font-mono: 'JetBrains Mono', monospace;
    --fd-font-weight-bold: 600;
    /* Geometrie */
    --fd-radius-sm: 4px;
    --fd-radius: 6px;
    --fd-radius-lg: 6px;
    --fd-radius-pill: 20px;
    --fd-radius-round: 50%;
    --fd-border-width: 1.5px;
    --fd-focus-ring: 0 0 0 3px rgba(0,75,118,0.25);
    /* Elevation */
    --fd-elevation-1: 0 1px 2px rgba(0,0,0,0.05);
    --fd-elevation-2: 0 2px 6px rgba(0,0,0,0.08);
    --fd-elevation-3: 0 6px 16px rgba(0,0,0,0.10);
    --fd-blur: 0px;
}

/* â•”â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•—
   â•‘  GOVERNMENT â€” Dark Mode                                                â•‘
   â•šâ•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
[data-design="government"].dark-mode,
[data-design="government"] .dark-mode {
    color-scheme: dark;
    /* HintergrÃ¼nde */
    --fd-bg: #101828;
    --fd-bg-alt: #1a2436;
    --fd-bg-muted: #222f44;
    --fd-surface: #1a2436;
    --fd-surface-alt: #222f44;
    --fd-hover: #2a3a54;
    --fd-primary-container: rgba(95,168,211,0.15);
    --fd-warning-container: rgba(251,191,36,0.12);
    --fd-input-bg: #1a2436;
    --fd-input-border: rgba(200,220,255,0.20);
    /* Text */
    --fd-text: #e4eaf4;
    --fd-text-secondary: #9aa8be;
    --fd-text-tertiary: #6a7c96;
    --fd-on-primary: #101828;
    /* Akzent & Semantik */
    --fd-primary: #5fa8d3;
    --fd-primary-hover: #79bde0;
    --fd-success: #4ade80;
    --fd-danger: #f87171;
    --fd-warning: #fbbf24;
    --fd-info: #60a5fa;
    --fd-border: rgba(200,220,255,0.08);
    --fd-border-strong: rgba(200,220,255,0.16);
    --fd-shadow: rgba(0,0,0,0.25);
    --fd-shadow-hover: rgba(0,0,0,0.40);
    /* Soft-Varianten */
    --fd-accent-soft: rgba(95,168,211,0.12);
    --fd-schiefer-grad: linear-gradient(135deg, rgba(95,168,211,0.094), rgba(95,168,211,0.031));
    --fd-schiefer-hint: rgba(95,168,211,0.33);
    --fd-schiefer-sub: rgba(95,168,211,0.20);
    --fd-schiefer-glow: rgba(95,168,211,0.082);
    --fd-schiefer-inset: rgba(95,168,211,0.031);
    --fd-success-soft: rgba(74,222,128,0.10);
    --fd-warning-soft: rgba(251,191,36,0.10);
    --fd-danger-soft: rgba(248,113,113,0.10);
    --fd-info-soft: rgba(96,165,250,0.10);
    /* PrioritÃ¤ten */
    --fd-prio-gruen: rgba(74,222,128,0.15);
    --fd-prio-gruen-border: #4ade80;
    --fd-prio-gelb: rgba(251,191,36,0.15);
    --fd-prio-gelb-border: #fbbf24;
    --fd-prio-rot: rgba(248,113,113,0.15);
    --fd-prio-rot-border: #f87171;
    /* Feiertage & Wochenende */
    --fd-feiertag-global: rgba(248,113,113,0.14);
    --fd-feiertag-regional: rgba(95,168,211,0.14);
    --fd-wochenende: rgba(251,191,36,0.10);
    /* Elevation */
    --fd-elevation-1: 0 1px 4px rgba(0,0,0,0.25);
    --fd-elevation-2: 0 2px 8px rgba(0,0,0,0.30);
    --fd-elevation-3: 0 8px 24px rgba(0,0,0,0.40);
    --fd-blur: 0px;
}

/* â•”â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•—
   â•‘  GLASS BLACK (Executive) â€” Dark Only                                   â•‘
   â•‘  Schrift: DM Sans Â· Radien: 16px Â· Blur: 24px                         â•‘
   â•šâ•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
/* ╔══════════════════════════════════════════════════════════════════════════╗
   ║  GLASS BLACK – Light Mode                                              ║
   ╚══════════════════════════════════════════════════════════════════════════╝ */
[data-design="glass-black"] {
    color-scheme: light;
    /* Hintergründe – helles Glas mit Violett-Schimmer */
    --fd-bg: #f5f3ff;
    --fd-bg-alt: rgba(167,139,250,0.04);
    --fd-bg-muted: rgba(167,139,250,0.07);
    --fd-surface: rgba(255,255,255,0.75);
    --fd-surface-alt: rgba(167,139,250,0.05);
    --fd-hover: rgba(167,139,250,0.08);
    --fd-primary-container: rgba(167,139,250,0.10);
    --fd-warning-container: rgba(217,119,6,0.08);
    --fd-input-bg: rgba(255,255,255,0.80);
    --fd-input-border: rgba(167,139,250,0.20);
    /* Text */
    --fd-text: #1c1917;
    --fd-text-secondary: #57534e;
    --fd-text-tertiary: #a8a29e;
    --fd-on-primary: #ffffff;
    /* Akzent & Semantik */
    --fd-primary: #7c3aed;
    --fd-primary-hover: #6d28d9;
    --fd-success: #059669;
    --fd-danger: #dc2626;
    --fd-warning: #d97706;
    --fd-info: #2563eb;
    --fd-border: rgba(167,139,250,0.12);
    --fd-border-strong: rgba(167,139,250,0.20);
    --fd-shadow: rgba(109,40,217,0.06);
    --fd-shadow-hover: rgba(109,40,217,0.12);
    /* Soft-Varianten */
    --fd-accent-soft: rgba(124,58,237,0.06);
    --fd-schiefer-grad: linear-gradient(135deg, rgba(124,58,237,0.094), rgba(124,58,237,0.031));
    --fd-schiefer-hint: rgba(124,58,237,0.33);
    --fd-schiefer-sub: rgba(124,58,237,0.20);
    --fd-schiefer-glow: rgba(124,58,237,0.082);
    --fd-schiefer-inset: rgba(124,58,237,0.031);
    --fd-success-soft: rgba(5,150,105,0.06);
    --fd-warning-soft: rgba(217,119,6,0.06);
    --fd-danger-soft: rgba(220,38,38,0.06);
    --fd-info-soft: rgba(37,99,235,0.06);
    /* Prioritäten */
    --fd-prio-gruen: rgba(5,150,105,0.08);
    --fd-prio-gruen-border: #059669;
    --fd-prio-gelb: rgba(217,119,6,0.08);
    --fd-prio-gelb-border: #d97706;
    --fd-prio-rot: rgba(220,38,38,0.08);
    --fd-prio-rot-border: #dc2626;
    /* Feiertage & Wochenende */
    --fd-feiertag-global: rgba(220,38,38,0.08);
    --fd-feiertag-regional: rgba(124,58,237,0.08);
    --fd-wochenende: rgba(217,119,6,0.08);
    /* Typografie */
    --fd-font: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --fd-font-mono: 'JetBrains Mono', 'Fira Code', monospace;
    --fd-font-weight-bold: 600;
    /* Geometrie */
    --fd-radius-sm: 10px;
    --fd-radius: 16px;
    --fd-radius-lg: 16px;
    --fd-radius-pill: 24px;
    --fd-radius-round: 50%;
    --fd-border-width: 1px;
    --fd-focus-ring: 0 0 0 3px rgba(124,58,237,0.20);
    /* Elevation */
    --fd-elevation-1: 0 1px 3px rgba(109,40,217,0.06);
    --fd-elevation-2: 0 2px 8px rgba(109,40,217,0.08);
    --fd-elevation-3: 0 8px 24px rgba(109,40,217,0.12);
    --fd-blur: 16px;
}

/* ╔══════════════════════════════════════════════════════════════════════════╗
   ║  GLASS BLACK – Dark Mode                                               ║
   ╚══════════════════════════════════════════════════════════════════════════╝ */
[data-design="glass-black"].dark-mode,
[data-design="glass-black"] .dark-mode {
    color-scheme: dark;
    /* HintergrÃ¼nde */
    --fd-bg: #09090b;
    --fd-bg-alt: rgba(255,255,255,0.03);
    --fd-bg-muted: rgba(255,255,255,0.05);
    --fd-surface: rgba(255,255,255,0.03);
    --fd-surface-alt: rgba(255,255,255,0.05);
    --fd-hover: rgba(255,255,255,0.08);
    --fd-primary-container: rgba(167,139,250,0.12);
    --fd-warning-container: rgba(251,191,36,0.10);
    --fd-input-bg: rgba(255,255,255,0.04);
    --fd-input-border: rgba(255,255,255,0.10);
    /* Text */
    --fd-text: #fafafa;
    --fd-text-secondary: #a1a1aa;
    --fd-text-tertiary: #63636e;
    --fd-on-primary: #09090b;
    /* Akzent & Semantik */
    --fd-primary: #a78bfa;
    --fd-primary-hover: #b9a2fb;
    --fd-success: #34d399;
    --fd-danger: #fb7185;
    --fd-warning: #fbbf24;
    --fd-info: #38bdf8;
    --fd-border: rgba(255,255,255,0.06);
    --fd-border-strong: rgba(255,255,255,0.12);
    --fd-shadow: rgba(0,0,0,0.50);
    --fd-shadow-hover: rgba(0,0,0,0.65);
    /* Soft-Varianten */
    --fd-accent-soft: rgba(167,139,250,0.10);
    --fd-schiefer-grad: linear-gradient(135deg, rgba(167,139,250,0.094), rgba(167,139,250,0.031));
    --fd-schiefer-hint: rgba(167,139,250,0.33);
    --fd-schiefer-sub: rgba(167,139,250,0.20);
    --fd-schiefer-glow: rgba(167,139,250,0.082);
    --fd-schiefer-inset: rgba(167,139,250,0.031);
    --fd-success-soft: rgba(52,211,153,0.10);
    --fd-warning-soft: rgba(251,191,36,0.10);
    --fd-danger-soft: rgba(251,113,133,0.10);
    --fd-info-soft: rgba(56,189,248,0.10);
    /* PrioritÃ¤ten */
    --fd-prio-gruen: rgba(52,211,153,0.15);
    --fd-prio-gruen-border: #34d399;
    --fd-prio-gelb: rgba(251,191,36,0.15);
    --fd-prio-gelb-border: #fbbf24;
    --fd-prio-rot: rgba(251,113,133,0.15);
    --fd-prio-rot-border: #fb7185;
    /* Feiertage & Wochenende */
    --fd-feiertag-global: rgba(251,113,133,0.12);
    --fd-feiertag-regional: rgba(167,139,250,0.12);
    --fd-wochenende: rgba(251,191,36,0.10);
    /* Typografie */
    --fd-font: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --fd-font-mono: 'JetBrains Mono', 'Fira Code', monospace;
    --fd-font-weight-bold: 600;
    /* Geometrie */
    --fd-radius-sm: 10px;
    --fd-radius: 16px;
    --fd-radius-lg: 16px;
    --fd-radius-pill: 24px;
    --fd-radius-round: 50%;
    --fd-border-width: 1px;
    --fd-focus-ring: 0 0 0 3px rgba(167,139,250,0.25);
    /* Elevation */
    --fd-elevation-1: 0 2px 8px rgba(0,0,0,0.45);
    --fd-elevation-2: 0 4px 16px rgba(0,0,0,0.50);
    --fd-elevation-3: 0 8px 32px rgba(0,0,0,0.60);
    --fd-blur: 24px;
}

/* â•”â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•—
   â•‘  GLASS BLUE (Tech/Innovation) â€” Dark Only                              â•‘
   â•‘  Schrift: DM Sans Â· Radien: 16px Â· Blur: 24px                         â•‘
   â•šâ•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
/* ╔══════════════════════════════════════════════════════════════════════════╗
   ║  GLASS BLUE – Light Mode                                               ║
   ╚══════════════════════════════════════════════════════════════════════════╝ */
[data-design="glass-blue"] {
    color-scheme: light;
    /* Hintergründe – helles Glas mit Blau-Schimmer */
    --fd-bg: #eff6ff;
    --fd-bg-alt: rgba(59,130,246,0.04);
    --fd-bg-muted: rgba(59,130,246,0.07);
    --fd-surface: rgba(255,255,255,0.75);
    --fd-surface-alt: rgba(59,130,246,0.05);
    --fd-hover: rgba(59,130,246,0.08);
    --fd-primary-container: rgba(59,130,246,0.10);
    --fd-warning-container: rgba(217,119,6,0.08);
    --fd-input-bg: rgba(255,255,255,0.80);
    --fd-input-border: rgba(59,130,246,0.20);
    /* Text */
    --fd-text: #0f172a;
    --fd-text-secondary: #475569;
    --fd-text-tertiary: #94a3b8;
    --fd-on-primary: #ffffff;
    /* Akzent & Semantik */
    --fd-primary: #2563eb;
    --fd-primary-hover: #1d4ed8;
    --fd-success: #059669;
    --fd-danger: #dc2626;
    --fd-warning: #d97706;
    --fd-info: #0284c7;
    --fd-border: rgba(59,130,246,0.10);
    --fd-border-strong: rgba(59,130,246,0.18);
    --fd-shadow: rgba(30,64,175,0.06);
    --fd-shadow-hover: rgba(30,64,175,0.12);
    /* Soft-Varianten */
    --fd-accent-soft: rgba(37,99,235,0.06);
    --fd-schiefer-grad: linear-gradient(135deg, rgba(37,99,235,0.094), rgba(37,99,235,0.031));
    --fd-schiefer-hint: rgba(37,99,235,0.33);
    --fd-schiefer-sub: rgba(37,99,235,0.20);
    --fd-schiefer-glow: rgba(37,99,235,0.082);
    --fd-schiefer-inset: rgba(37,99,235,0.031);
    --fd-success-soft: rgba(5,150,105,0.06);
    --fd-warning-soft: rgba(217,119,6,0.06);
    --fd-danger-soft: rgba(220,38,38,0.06);
    --fd-info-soft: rgba(2,132,199,0.06);
    /* Prioritäten */
    --fd-prio-gruen: rgba(5,150,105,0.08);
    --fd-prio-gruen-border: #059669;
    --fd-prio-gelb: rgba(217,119,6,0.08);
    --fd-prio-gelb-border: #d97706;
    --fd-prio-rot: rgba(220,38,38,0.08);
    --fd-prio-rot-border: #dc2626;
    /* Feiertage & Wochenende */
    --fd-feiertag-global: rgba(220,38,38,0.08);
    --fd-feiertag-regional: rgba(37,99,235,0.08);
    --fd-wochenende: rgba(217,119,6,0.08);
    /* Typografie */
    --fd-font: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --fd-font-mono: 'JetBrains Mono', 'Fira Code', monospace;
    --fd-font-weight-bold: 600;
    /* Geometrie */
    --fd-radius-sm: 10px;
    --fd-radius: 16px;
    --fd-radius-lg: 16px;
    --fd-radius-pill: 24px;
    --fd-radius-round: 50%;
    --fd-border-width: 1px;
    --fd-focus-ring: 0 0 0 3px rgba(37,99,235,0.20);
    /* Elevation */
    --fd-elevation-1: 0 1px 3px rgba(30,64,175,0.06);
    --fd-elevation-2: 0 2px 8px rgba(30,64,175,0.08);
    --fd-elevation-3: 0 8px 24px rgba(30,64,175,0.12);
    --fd-blur: 16px;
}

/* ╔══════════════════════════════════════════════════════════════════════════╗
   ║  GLASS BLUE – Dark Mode                                                ║
   ╚══════════════════════════════════════════════════════════════════════════╝ */
[data-design="glass-blue"].dark-mode,
[data-design="glass-blue"] .dark-mode {
    color-scheme: dark;
    /* HintergrÃ¼nde */
    --fd-bg: #050d1f;
    --fd-bg-alt: rgba(60,100,220,0.06);
    --fd-bg-muted: rgba(70,115,240,0.09);
    --fd-surface: rgba(60,100,220,0.06);
    --fd-surface-alt: rgba(70,115,240,0.09);
    --fd-hover: rgba(80,130,255,0.13);
    --fd-primary-container: rgba(90,138,255,0.15);
    --fd-warning-container: rgba(251,191,36,0.10);
    --fd-input-bg: rgba(60,100,220,0.10);
    --fd-input-border: rgba(120,160,255,0.18);
    /* Text */
    --fd-text: #e4ecff;
    --fd-text-secondary: #8da0c8;
    --fd-text-tertiary: #5a7098;
    --fd-on-primary: #050d1f;
    /* Akzent & Semantik */
    --fd-primary: #5a8aff;
    --fd-primary-hover: #7aa2ff;
    --fd-success: #34d399;
    --fd-danger: #fb7185;
    --fd-warning: #fbbf24;
    --fd-info: #38bdf8;
    --fd-border: rgba(120,160,255,0.09);
    --fd-border-strong: rgba(120,160,255,0.17);
    --fd-shadow: rgba(0,4,16,0.45);
    --fd-shadow-hover: rgba(0,4,16,0.60);
    /* Soft-Varianten */
    --fd-accent-soft: rgba(90,138,255,0.12);
    --fd-schiefer-grad: linear-gradient(135deg, rgba(90,138,255,0.094), rgba(90,138,255,0.031));
    --fd-schiefer-hint: rgba(90,138,255,0.33);
    --fd-schiefer-sub: rgba(90,138,255,0.20);
    --fd-schiefer-glow: rgba(90,138,255,0.082);
    --fd-schiefer-inset: rgba(90,138,255,0.031);
    --fd-success-soft: rgba(52,211,153,0.10);
    --fd-warning-soft: rgba(251,191,36,0.10);
    --fd-danger-soft: rgba(251,113,133,0.10);
    --fd-info-soft: rgba(56,189,248,0.10);
    /* PrioritÃ¤ten */
    --fd-prio-gruen: rgba(52,211,153,0.15);
    --fd-prio-gruen-border: #34d399;
    --fd-prio-gelb: rgba(251,191,36,0.15);
    --fd-prio-gelb-border: #fbbf24;
    --fd-prio-rot: rgba(251,113,133,0.15);
    --fd-prio-rot-border: #fb7185;
    /* Feiertage & Wochenende */
    --fd-feiertag-global: rgba(251,113,133,0.12);
    --fd-feiertag-regional: rgba(90,138,255,0.12);
    --fd-wochenende: rgba(251,191,36,0.10);
    /* Typografie */
    --fd-font: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --fd-font-mono: 'JetBrains Mono', 'Fira Code', monospace;
    --fd-font-weight-bold: 600;
    /* Geometrie */
    --fd-radius-sm: 10px;
    --fd-radius: 16px;
    --fd-radius-lg: 16px;
    --fd-radius-pill: 24px;
    --fd-radius-round: 50%;
    --fd-border-width: 1px;
    --fd-focus-ring: 0 0 0 3px rgba(90,138,255,0.25);
    /* Elevation */
    --fd-elevation-1: 0 2px 8px rgba(0,4,16,0.40);
    --fd-elevation-2: 0 4px 16px rgba(0,4,16,0.45);
    --fd-elevation-3: 0 8px 32px rgba(0,4,16,0.55);
    --fd-blur: 24px;
}

/* â•”â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•—
   â•‘  FALLBACK: Kein data-design gesetzt â†’ Premium Dark als Default         â•‘
   â•šâ•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
:root {
    --fd-bg: #111113;
    --fd-bg-alt: #19191c;
    --fd-bg-muted: #222225;
    --fd-surface: #19191c;
    --fd-surface-alt: #222225;
    --fd-hover: #2c2c30;
    --fd-primary-container: rgba(124,124,255,0.12);
    --fd-warning-container: rgba(245,166,35,0.12);
    --fd-input-bg: #222225;
    --fd-input-border: rgba(255,255,255,0.14);
    --fd-text: #ededef;
    --fd-text-secondary: #8b8b8e;
    --fd-text-tertiary: #636366;
    --fd-on-primary: #111113;
    --fd-primary: #7c7cff;
    --fd-primary-hover: #9191ff;
    --fd-success: #30a46c;
    --fd-danger: #e5484d;
    --fd-warning: #f5a623;
    --fd-info: #3e63dd;
    --fd-border: rgba(255,255,255,0.06);
    --fd-border-strong: rgba(255,255,255,0.11);
    --fd-shadow: rgba(0,0,0,0.40);
    --fd-shadow-hover: rgba(0,0,0,0.55);
    --fd-accent-soft: rgba(124,124,255,0.10);
    --fd-schiefer-grad: linear-gradient(135deg, rgba(124,124,255,0.094), rgba(124,124,255,0.031));
    --fd-schiefer-hint: rgba(124,124,255,0.33);
    --fd-schiefer-sub: rgba(124,124,255,0.20);
    --fd-schiefer-glow: rgba(124,124,255,0.082);
    --fd-schiefer-inset: rgba(124,124,255,0.031);
    --fd-success-soft: rgba(48,164,108,0.10);
    --fd-warning-soft: rgba(245,166,35,0.10);
    --fd-danger-soft: rgba(229,72,77,0.10);
    --fd-info-soft: rgba(62,99,221,0.10);
    --fd-prio-gruen: rgba(48,164,108,0.15);
    --fd-prio-gruen-border: #30a46c;
    --fd-prio-gelb: rgba(245,166,35,0.15);
    --fd-prio-gelb-border: #f5a623;
    --fd-prio-rot: rgba(229,72,77,0.15);
    --fd-prio-rot-border: #e5484d;
    --fd-feiertag-global: rgba(229,72,77,0.14);
    --fd-feiertag-regional: rgba(124,124,255,0.14);
    --fd-wochenende: rgba(245,166,35,0.10);
    --fd-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --fd-font-mono: 'JetBrains Mono', 'Fira Code', monospace;
    --fd-font-weight-bold: 600;
    --fd-radius-sm: 6px;
    --fd-radius: 10px;
    --fd-radius-lg: 10px;
    --fd-radius-pill: 20px;
    --fd-radius-round: 50%;
    --fd-border-width: 1px;
    --fd-focus-ring: 0 0 0 3px rgba(124,124,255,0.20);
    --fd-elevation-1: 0 1px 3px rgba(0,0,0,0.40);
    --fd-elevation-2: 0 2px 8px rgba(0,0,0,0.45);
    --fd-elevation-3: 0 8px 24px rgba(0,0,0,0.55);
    --fd-blur: 0px;

    /* DESIGN-SYSTEM: Listen & Tabellen */
    --liste-header-font-size: 0.75rem;
    --liste-header-font-weight: 700;
    --liste-header-color: var(--fd-text-secondary);
    --liste-header-letter-spacing: 0.05em;
    --liste-header-bg: var(--fd-bg-muted);
    --liste-header-padding: 0.75rem 1rem;
    --liste-zeile-font-size: 0.875rem;
    --liste-zeile-color: var(--fd-text);
    --liste-zeile-padding: 0.75rem 1rem;
    --liste-zeile-gap: 0.75rem;
    --liste-border: 1px solid var(--fd-border);
    --liste-border-radius: 8px;
    --liste-icon-size: 1.25rem;
}

/* ===== GLOBALER FORMULAR-RESET — alle input/select/textarea auf Design-Token =====
   Verhindert Browser-Default (weiß/hell) bei Dark-Mode und Glass-Themes.
   Einzelne Klassen (.form-control, .filter-select, etc.) erben diese Basis-Werte. */
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]),
select,
textarea {
    background-color: var(--fd-input-bg) !important;
    color: var(--fd-text) !important;
    border-color: var(--fd-input-border);
    font-family: var(--fd-font);
}
input::placeholder,
textarea::placeholder {
    color: var(--fd-text-tertiary) !important;
}
/* Time/Date-Inputs: Browser-Pseudo-Elemente brauchen explizite Farbe */
input[type="time"]::-webkit-datetime-edit,
input[type="time"]::-webkit-datetime-edit-fields-wrapper,
input[type="time"]::-webkit-datetime-edit-hour-field,
input[type="time"]::-webkit-datetime-edit-minute-field,
input[type="time"]::-webkit-datetime-edit-ampm-field,
input[type="time"]::-webkit-datetime-edit-text,
input[type="date"]::-webkit-datetime-edit,
input[type="date"]::-webkit-datetime-edit-fields-wrapper {
    color: var(--fd-text) !important;
}
input[type="time"]::-webkit-calendar-picker-indicator,
input[type="date"]::-webkit-calendar-picker-indicator {
    filter: var(--fd-icon-filter, none);
}
select option {
    background-color: var(--fd-bg) !important;
    color: var(--fd-text) !important;
}
select optgroup {
    background-color: var(--fd-bg) !important;
    color: var(--fd-text) !important;
}
select:focus option:checked {
    background: var(--fd-primary) !important;
    color: #fff !important;
}
select option:checked {
    background-color: var(--fd-primary) !important;
    color: #fff !important;
}

/* â•”â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•—
   â•‘  GLASS-THEMES: Backdrop-Filter Helfer                                  â•‘
   â•‘  Alle Elemente mit Surface-Background bekommen automatisch Blur        â•‘
   â•šâ•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
[data-design="glass-black"] .sidebar,
[data-design="glass-black"] .modal-overlay .modal-content,
[data-design="glass-black"] .navbar,
[data-design="glass-blue"] .sidebar,
[data-design="glass-blue"] .modal-overlay .modal-content,
[data-design="glass-blue"] .navbar {
    -webkit-backdrop-filter: blur(var(--fd-blur));
    backdrop-filter: blur(var(--fd-blur));
}

/* Glass Blue: Body-Gradienten */
body[data-design="glass-blue"] {
    background:
        radial-gradient(ellipse at 10% 0%, rgba(37,99,235,0.06), transparent 45%),
        radial-gradient(ellipse at 90% 5%, rgba(2,132,199,0.04), transparent 35%),
        #eff6ff;
}
body[data-design="glass-blue"].dark-mode {
    background:
        radial-gradient(ellipse at 10% 0%, rgba(50,80,220,0.07), transparent 45%),
        radial-gradient(ellipse at 90% 5%, rgba(40,160,240,0.05), transparent 35%),
        #050d1f;
}

/* Glass Black: Body-Gradienten */
body[data-design="glass-black"] {
    background:
        radial-gradient(ellipse at 20% 0%, rgba(124,58,237,0.04), transparent 50%),
        #f5f3ff;
}
body[data-design="glass-black"].dark-mode {
    background:
        radial-gradient(ellipse at 20% 0%, rgba(167,139,250,0.03), transparent 50%),
        #09090b;
}


/* ===== Globale Styles ===== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: var(--fd-font);
    font-size: 14px;
    line-height: 1.6;
    color: var(--fd-text);
    background-color: var(--fd-bg-alt);
    transition: background-color 0.3s ease, color 0.3s ease;
}

.page {
    display: flex;
    min-height: 100vh;
    background-color: var(--fd-bg-alt);
    color: var(--fd-text);
}

/* Glass-Themes: Page transparent, damit Body-Gradient durchscheint */
[data-design="glass-black"] .page,
[data-design="glass-blue"] .page {
    background-color: transparent;
}

/* ===== Sidebar ===== */
.sidebar {
    width: 260px;
    background-color: var(--fd-bg);
    border-right: 1px solid var(--fd-border);
    display: flex;
    flex-direction: column;
    height: 100vh;
    position: sticky;
    top: 0;
    z-index: 100;
    transition: all 0.3s ease;
}

.sidebar-header {
    padding: 1.5rem 1.25rem;
    border-bottom: 1px solid var(--fd-border);
}

.logo {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--fd-text);
}

.logo-icon {
    font-size: 2rem;
}

.nav-menu {
    flex: 1;
    padding: 1rem 0;
}

.nav-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1.25rem;
    color: var(--fd-text-secondary);
    text-decoration: none;
    transition: all 0.2s ease;
    border-left: 3px solid transparent;
}

.nav-item:hover {
    background-color: var(--fd-bg-alt);
    color: var(--fd-text);
}

.nav-item.active {
    background-color: var(--fd-bg-alt);
    color: var(--fd-primary);
    border-left-color: var(--fd-primary);
    font-weight: 600;
}

.nav-icon {
    font-size: 1.25rem;
}

.nav-divider {
    height: 1px;
    background-color: var(--fd-border);
    margin: 0.5rem 0;
}

.nav-modul-header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 1.25rem;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--fd-text-secondary);
    cursor: pointer;
    border: none;
    background: none;
    width: 100%;
    text-align: left;
    transition: all 0.2s ease;
    border-left: 3px solid transparent;
}

.nav-modul-header:hover {
    background-color: var(--fd-bg-alt);
    color: var(--fd-text);
}

.nav-modul-chevron {
    margin-left: auto;
    font-size: 0.65rem;
    transition: transform 0.25s ease;
    color: var(--fd-text-tertiary);
}

.nav-modul-offen .nav-modul-chevron {
    transform: rotate(90deg);
}

.nav-modul-gruppe {
    border-left: 3px solid transparent;
    transition: border-color 0.2s ease;
}

.nav-modul-aktiv {
    border-left-color: var(--fd-primary);
}

.nav-modul-aktiv > .nav-modul-header {
    color: var(--fd-primary);
}

.nav-modul-items {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
}

.nav-modul-items-offen {
    max-height: 300px;
}

.nav-modul-items .nav-item {
    padding-left: 2.25rem;
    border-left: none;
}

.nav-modul-icon {
    font-size: 0.85rem;
}

.nav-modul-name {
    font-size: 0.75rem;
}

.nav-info {
    padding: 1rem 1.25rem;
    margin: 0.5rem 0;
}

.info-text {
    font-size: 0.875rem;
    color: var(--fd-text-secondary);
    margin-bottom: 0.25rem;
}

.info-subtext {
    font-size: 0.75rem;
    color: var(--fd-text-tertiary);
    margin: 0;
}

.sidebar-footer {
    padding: 1.25rem;
    border-top: 1px solid var(--fd-border);
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

/* ===== Theme Toggle Box ===== */
.theme-toggle-box {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.6rem 0.75rem;
    background: var(--fd-surface);
    border: 1px solid var(--fd-border);
    border-radius: var(--fd-radius);
}

.dark-mode .theme-toggle-box {
    background: var(--fd-hover);
}

/* ===== Benutzer Box ===== */
.benutzer-box {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.6rem 0.75rem;
    background: var(--fd-surface);
    border: 1px solid var(--fd-border);
    border-radius: var(--fd-radius);
}

.dark-mode .benutzer-box {
    background: var(--fd-hover);
}

/* ===== Theme Toggle ===== */
.theme-toggle {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.toggle-switch {
    position: relative;
    display: inline-block;
    width: 50px;
    height: 26px;
}

.toggle-switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

.toggle-slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: var(--fd-bg-muted);
    border: 1px solid var(--fd-border);
    transition: .3s;
    border-radius: var(--fd-radius-lg);
}

.toggle-slider:before {
    position: absolute;
    content: "";
    height: 18px;
    width: 18px;
    left: 3px;
    bottom: 3px;
    background-color: var(--fd-bg);
    transition: .3s;
    border-radius: var(--fd-radius-round);
}

input:checked + .toggle-slider {
    background-color: var(--fd-primary);
    border-color: var(--fd-primary);
}

input:checked + .toggle-slider:before {
    transform: translateX(24px);
}

/* Kompakter Toggle fÃƒÆ’Ã‚Â¼r Inline-Tabellen */
.toggle-switch.toggle-sm {
    width: 34px;
    height: 18px;
}
.toggle-switch.toggle-sm .toggle-slider:before {
    height: 12px;
    width: 12px;
    left: 2px;
    bottom: 2px;
}
.toggle-switch.toggle-sm input:checked + .toggle-slider:before {
    transform: translateX(16px);
}

.toggle-label {
    font-size: 0.875rem;
    color: var(--fd-text-secondary);
    font-weight: 500;
}

/* ===== Version Info ===== */
.version-info {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--fd-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.25rem;
}

.version-text {
    font-size: 0.75rem;
    color: var(--fd-text-tertiary);
    font-weight: 600;
}

.version-date {
    font-size: 0.625rem;
    color: var(--fd-text-tertiary);
    opacity: 0.7;
}

/* ===== Main Content ===== */
.main-content {
    flex: 1;
    overflow-y: auto;
}

.content-wrapper {
    padding: 2rem;
    width: 100%;
}


/* ===== Beleg Container (3-Spalten-Layout) ===== */
.beleg-container {
    display: grid;
    grid-template-columns: 1fr 350px;
    gap: 1.5rem;
    height: calc(100vh - 4rem);
}

/* ===== Belegliste (Mitte) ===== */
.beleg-liste {
    background-color: var(--fd-bg);
    border-radius: var(--fd-radius);
    box-shadow: 0 2px 8px var(--fd-shadow);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.liste-header {
    padding: 1.5rem;
    border-bottom: 1px solid var(--fd-border);
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.liste-header-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.liste-header h3 {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--fd-text);
}

.filter-sort-row {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.filter-gruppe {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.filter-label {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--fd-text-secondary);
    white-space: nowrap;
}

.filter-select {
    min-width: 180px;
    max-width: 220px;
    padding: 0.5rem 0.75rem !important;
    font-size: 0.875rem;
    cursor: pointer;
    background: var(--fd-input-bg);
    color: var(--fd-text);
    border: 1.5px solid var(--fd-input-border);
    border-radius: var(--fd-radius-sm);
    font-family: var(--fd-font);
    outline: none;
    transition: border-color 0.2s;
    -webkit-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%239aa8be' d='M2 4l4 4 4-4'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.6rem center;
    padding-right: 2rem !important;
}
.filter-select:focus {
    border-color: var(--fd-primary);
    box-shadow: var(--fd-focus-ring);
}
.filter-select option {
    background: var(--fd-bg);
    color: var(--fd-text);
}

/* ===== Multi-Select Dropdown ===== */
.multi-select-dropdown {
    position: relative;
    min-width: 200px;
}

.multi-select-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem !important;
    font-size: 0.875rem;
    cursor: pointer;
    text-align: left;
    background-color: var(--fd-bg-alt) !important;
    border: 1px solid var(--fd-border);
    border-radius: var(--fd-radius-sm);
    color: var(--fd-text) !important;
    width: 100%;
    transition: all 0.2s ease;
}

.multi-select-trigger:hover {
    border-color: var(--fd-primary);
}

.multi-select-trigger:focus {
    outline: none;
    border-color: var(--fd-primary);
    box-shadow: var(--fd-focus-ring);
}

.multi-select-text {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.multi-select-arrow {
    font-size: 0.75rem;
    color: var(--fd-text-tertiary);
    flex-shrink: 0;
}

.multi-select-panel {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    min-width: 220px;
    background-color: var(--fd-bg);
    border: 1px solid var(--fd-border);
    border-radius: var(--fd-radius-sm);
    box-shadow: 0 8px 24px var(--fd-shadow-hover);
    z-index: 100;
    max-height: 320px;
    overflow-y: auto;
    padding: 0.25rem 0;
}

.multi-select-option {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    padding: 0.5rem 0.75rem;
    cursor: pointer;
    font-size: 0.875rem;
    color: var(--fd-text);
    transition: background-color 0.15s ease;
    user-select: none;
}

.multi-select-option:hover {
    background-color: var(--fd-bg-alt);
}

.multi-select-option input[type="checkbox"] {
    width: 16px;
    height: 16px;
    cursor: pointer;
    pointer-events: none;
    accent-color: var(--fd-primary);
    flex-shrink: 0;
}

.multi-select-divider {
    height: 1px;
    background-color: var(--fd-border);
    margin: 0.25rem 0;
}

.sortierung-buttons {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.btn-sort {
    padding: 0.5rem 1rem;
    background-color: var(--fd-bg-alt);
    border: 1px solid var(--fd-border);
    border-radius: var(--fd-radius-sm);
    color: var(--fd-text-secondary);
    cursor: pointer;
    transition: all 0.2s ease;
    font-size: 0.875rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.btn-sort:hover {
    background-color: var(--fd-bg-muted);
    border-color: var(--fd-primary);
}

.btn-sort.active {
    background-color: var(--fd-primary);
    color: white;
    border-color: var(--fd-primary);
}

.beleg-items {
    flex: 1;
    overflow-y: auto;
    padding: 1rem;
}

.beleg-item {
    background-color: var(--fd-bg-alt);
    border: 1px solid var(--fd-border);
    border-radius: var(--fd-radius-sm);
    padding: 1.25rem;
    margin-bottom: 0.75rem;
    cursor: pointer;
    transition: all 0.2s ease;
    position: relative;
}

.beleg-item:hover {
    box-shadow: 0 4px 12px var(--fd-shadow-hover);
    transform: translateY(-2px);
    border-color: var(--fd-primary);
}

.beleg-item.erledigt {
    opacity: 0.6;
}

.beleg-item-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 1rem;
    gap: 1rem;
}

.beleg-item-header h4 {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--fd-text);
    flex: 1;
}

.beleg-art-badge {
    padding: 0.35rem 0.75rem;
    border-radius: var(--fd-radius-sm);
    font-size: 0.75rem;
    font-weight: 600;
    white-space: nowrap;
    background-color: var(--fd-bg-muted);
    color: var(--fd-primary);
    border: 1px solid var(--fd-border);
}

.beleg-item-details {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 0.75rem;
}

.detail-item {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.detail-label {
    font-size: 0.75rem;
    color: var(--fd-text-tertiary);
    text-transform: uppercase;
    font-weight: 600;
}

.detail-value {
    font-size: 0.875rem;
    color: var(--fd-text);
    font-weight: 500;
}

.detail-value.priority-gruen { color: var(--fd-prio-gruen-border); }
.detail-value.priority-gelb { color: var(--fd-prio-gelb-border); }
.detail-value.priority-rot { color: var(--fd-prio-rot-border); }

.erledigt-badge {
    display: inline-block;
    margin-top: 0.75rem;
    background-color: var(--fd-success);
    color: white;
    padding: 0.25rem 0.75rem;
    border-radius: var(--fd-radius-sm);
    font-size: 0.75rem;
    font-weight: 600;
}

/* ===== Rechte Spalte (Angepinnt + FÃƒÆ’Ã‚Â¤llig) ===== */
.rechte-spalte {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    overflow-y: auto;
}

/* ===== Angepinnte Belege ===== */
.angepinnte-belege {
    background-color: var(--fd-bg);
    border-radius: var(--fd-radius);
    box-shadow: 0 2px 8px var(--fd-shadow);
    overflow: hidden;
}

.liste-header-compact {
    padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--fd-border);
}

.liste-header-compact h3 {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--fd-text);
}

.angepinnte-items {
    padding: 0.75rem;
}

.angepinnte-item {
    background-color: var(--fd-bg-alt);
    border: 1px solid var(--fd-border);
    border-left: 4px solid var(--fd-primary);
    border-radius: var(--fd-radius-sm);
    padding: 0.75rem 1rem;
    margin-bottom: 0.5rem;
    cursor: pointer;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.angepinnte-item:hover {
    box-shadow: 0 2px 8px var(--fd-shadow-hover);
    border-color: var(--fd-primary);
}

.angepinnte-content {
    flex: 1;
    min-width: 0;
}

.angepinnte-title {
    font-weight: 600;
    color: var(--fd-text);
    font-size: 0.875rem;
    margin-bottom: 0.375rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.angepinnte-meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.angepinnte-datum {
    font-size: 0.75rem;
    font-weight: 600;
}

.beleg-art-badge-small {
    padding: 0.15rem 0.5rem;
    border-radius: var(--fd-radius-sm);
    font-size: 0.65rem;
    font-weight: 600;
    white-space: nowrap;
}

.btn-unpin {
    background: none;
    border: 1px solid var(--fd-border);
    border-radius: var(--fd-radius-sm);
    color: var(--fd-text-tertiary);
    cursor: pointer;
    padding: 0.25rem 0.4rem;
    font-size: 0.75rem;
    line-height: 1;
    transition: all 0.2s ease;
    flex-shrink: 0;
}

.btn-unpin:hover {
    background-color: var(--fd-danger);
    color: white;
    border-color: var(--fd-danger);
}

/* ===== Pin-Buttons in Belegliste ===== */
.beleg-item-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

.btn-pin-small {
    background: none;
    border: 1px solid transparent;
    border-radius: var(--fd-radius-sm);
    cursor: pointer;
    padding: 0.25rem;
    font-size: 1rem;
    line-height: 1;
    opacity: 0.3;
    transition: all 0.2s ease;
}

.btn-pin-small:hover {
    opacity: 1;
    border-color: var(--fd-primary);
    background-color: var(--fd-bg-muted);
}

.btn-pin-small.aktiv {
    opacity: 1;
}

/* ===== Pin-Button in FÃƒÆ’Ã‚Â¤llige-Liste ===== */
.btn-pin {
    background: none;
    border: 1px solid transparent;
    border-radius: var(--fd-radius-sm);
    cursor: pointer;
    padding: 0.25rem;
    font-size: 1rem;
    line-height: 1;
    opacity: 0.3;
    transition: all 0.2s ease;
    flex-shrink: 0;
}

.btn-pin:hover {
    opacity: 1;
    border-color: var(--fd-primary);
    background-color: var(--fd-bg-muted);
}

.pin-indicator {
    font-size: 0.875rem;
    opacity: 0.6;
    flex-shrink: 0;
}

/* ===== FÃƒÆ’Ã‚Â¤llige Belege (Rechts) ===== */
.faellige-belege {
    background-color: var(--fd-bg);
    border-radius: var(--fd-radius);
    box-shadow: 0 2px 8px var(--fd-shadow);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    flex: 1;
    min-height: 0;
}

.faellige-items {
    flex: 1;
    overflow-y: auto;
    padding: 1rem;
}

.faellige-item {
    background-color: var(--fd-bg-alt);
    border-left: 4px solid var(--fd-border);
    border-radius: var(--fd-radius-sm);
    padding: 1rem;
    margin-bottom: 0.75rem;
    cursor: pointer;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.faellige-item:hover {
    box-shadow: 0 2px 8px var(--fd-shadow-hover);
    transform: translateX(4px);
}

.faellige-item.priority-gruen {
    border-left-color: var(--fd-prio-gruen-border);
    background-color: var(--fd-prio-gruen);
}

.faellige-item.priority-gelb {
    border-left-color: var(--fd-prio-gelb-border);
    background-color: var(--fd-prio-gelb);
}

.faellige-item.priority-rot {
    border-left-color: var(--fd-prio-rot-border);
    background-color: var(--fd-prio-rot);
}

.prioritaet-indicator {
    width: 4px;
    background-color: currentColor;
    border-radius: var(--fd-radius-sm);
}

.faellige-content {
    flex: 1;
}

.faellige-title {
    font-weight: 600;
    color: var(--fd-text);
    margin-bottom: 0.5rem;
}

.faellige-datum {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    color: var(--fd-text-secondary);
    margin-bottom: 0.25rem;
}

.tage-info {
    font-weight: 600;
    font-size: 0.75rem;
}

.faellige-art {
    font-size: 0.75rem;
    color: var(--fd-text-tertiary);
}

/* ===== Modal ===== */
.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    padding: 2rem;
}

.modal-content {
    background-color: var(--fd-bg);
    border-radius: var(--fd-radius);
    box-shadow: var(--fd-elevation-3);
    max-width: 800px;
    width: 100%;
    max-height: 90vh;
    display: flex;
    flex-direction: column;
}

.modal-header {
    padding: 1.5rem 2rem;
    border-bottom: 1px solid var(--fd-border);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.modal-header h2 {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--fd-text);
}

.btn-close {
    background: none;
    border: none;
    font-size: 1.5rem;
    color: var(--fd-text-secondary);
    cursor: pointer;
    padding: 0.25rem;
    line-height: 1;
    transition: color 0.2s ease;
}

.btn-close:hover {
    color: var(--fd-text);
}

.modal-body {
    padding: 2rem;
    overflow-y: auto;
    flex: 1;
}

.modal-footer {
    padding: 1.5rem 2rem;
    border-top: 1px solid var(--fd-border);
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
}

/* ===== Formulare ===== */
.form-group {
    margin-bottom: 1.5rem;
}

.form-group label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: 600;
    color: var(--fd-text);
    font-size: 0.875rem;
}

.form-control {
    width: 100%;
    padding: 0.75rem;
    border: 1px solid var(--fd-border);
    border-radius: var(--fd-radius-sm);
    background-color: var(--fd-bg-alt);
    color: var(--fd-text);
    font-size: 0.875rem;
    transition: all 0.2s ease;
}

.form-control:focus {
    outline: none;
    border-color: var(--fd-primary);
    box-shadow: var(--fd-focus-ring);
}

.form-row {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
}

.form-section {
    margin: 2rem 0;
    padding: 1.5rem;
    background-color: var(--fd-bg-alt);
    border-radius: var(--fd-radius-sm);
    border: 1px solid var(--fd-border);
}

.form-section h4 {
    margin-bottom: 1rem;
    color: var(--fd-text);
    font-size: 1rem;
}

.checkbox-label {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    cursor: pointer;
}

.checkbox-label input[type="checkbox"] {
    width: 18px;
    height: 18px;
    cursor: pointer;
}

/* ===== Buttons ===== */
.btn-primary {
    padding: 0.75rem 1.5rem;
    background-color: var(--fd-primary);
    color: white;
    border: none;
    border-radius: var(--fd-radius-sm);
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.btn-primary:hover {
    background-color: var(--fd-primary-hover);
    box-shadow: var(--fd-elevation-2);
}

.btn-secondary {
    padding: 0.75rem 1.5rem;
    background-color: var(--fd-bg-alt);
    color: var(--fd-text);
    border: 1px solid var(--fd-border);
    border-radius: var(--fd-radius-sm);
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
}

.btn-secondary:hover {
    background-color: var(--fd-bg-muted);
}

.btn-danger {
    padding: 0.75rem 1.5rem;
    background-color: var(--fd-danger);
    color: white;
    border: none;
    border-radius: var(--fd-radius-sm);
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
}

.btn-danger:hover {
    background-color: var(--fd-danger);
}

/* ===== Utility ===== */
.loading, .loading-small {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 3rem;
    color: var(--fd-text-secondary);
}

.loading-small {
    padding: 1rem;
}

.empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 4rem 2rem;
    color: var(--fd-text-secondary);
}

.empty-state-small {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 2rem 1rem;
    color: var(--fd-text-secondary);
}

.icon-large {
    font-size: 4rem;
    margin-bottom: 1rem;
    opacity: 0.5;
}

.icon {
    font-size: 1.1rem;
}

.pdf-preview {
    margin-top: 1rem;
    padding: 1.5rem;
    background-color: var(--fd-bg-alt);
    border: 1px solid var(--fd-border);
    border-radius: var(--fd-radius-sm);
}

.pdf-info {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    color: var(--fd-text-secondary);
}

/* ===== Responsive Design ===== */
@media (max-width: 1200px) {
    .beleg-container {
        grid-template-columns: 1fr;
    }
    
    .rechte-spalte {
        max-height: 500px;
    }

    .faellige-belege {
        max-height: 300px;
    }
}

@media (max-width: 768px) {
    .sidebar {
        width: 70px;
    }
    
    .logo-text,
    .nav-text,
    .toggle-label {
        display: none;
    }
    
    .nav-item {
        justify-content: center;
    }
    
    .form-row {
        grid-template-columns: 1fr;
    }
    
    .sortierung-buttons {
        flex-direction: column;
    }

    .filter-sort-row {
        flex-direction: column;
        align-items: flex-start;
    }

    .filter-select {
        width: 100%;
        max-width: none;
    }

    .multi-select-dropdown {
        width: 100%;
    }

    .liste-header-top {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.75rem;
    }
}

/* ===== Responsive: GroÃŸer Monitor â‰¥1440px ===== */
@media (min-width: 1280px) {
    .sidebar {
        width: 300px;
    }

    .nav-item {
        padding: 0.8rem 1.5rem;
        font-size: 0.9rem;
    }

    .nav-modul-header {
        padding: 0.7rem 1.5rem;
        font-size: 0.8rem;
    }

    .nav-modul-items .nav-item {
        padding-left: 2.75rem;
    }

    .sidebar-footer {
        padding: 1.5rem;
    }

    /* Content-Wrapper: kein max-width, volle Breite nutzen */
    .content-wrapper {
        max-width: none !important;
        margin: 0 !important;
        padding: 2rem 2.5rem;
        width: 100%;
    }

    /* Seiten-spezifische Container: max-width aufheben, linksbÃ¼ndig */
    .zeit-container,
    .eigenschaften-container {
        max-width: none;
        margin: 0;
    }

    .gp-container {
        max-width: none;
        padding: 1.5rem 0;
        margin: 0;
    }

    /* Einstellungen innere Nav auf groÃŸen Screens breiter */
    .eigenschaften-nav {
        width: 300px;
    }
}

@media (min-width: 1920px) {
    .sidebar {
        width: 320px;
    }

    .content-wrapper {
        max-width: none !important;
        margin: 0 !important;
        padding: 2.5rem 3rem;
        width: 100%;
    }

    .nav-item {
        padding: 0.85rem 1.75rem;
    }

    .nav-modul-header {
        padding: 0.75rem 1.75rem;
    }

    .nav-modul-items .nav-item {
        padding-left: 3rem;
    }

    .zeit-container,
    .eigenschaften-container,
    .gp-container {
        max-width: none;
        margin: 0;
    }

    .eigenschaften-nav {
        width: 320px;
    }
}

/* ===== Eigenschaften-Seite ===== */
.eigenschaften-container {
    width: 100%;
}

.eigenschaften-header {
    margin-bottom: 1.5rem;
}

.eigenschaften-layout {
    display: flex;
    gap: 1.5rem;
    align-items: flex-start;
    width: 100%;
}

.eigenschaften-nav {
    width: 220px;
    flex-shrink: 0;
    background-color: var(--fd-bg);
    border-radius: var(--fd-radius);
    box-shadow: 0 2px 8px var(--fd-shadow);
    padding: 0.75rem 0;
    position: sticky;
    top: 1rem;
}

.eig-nav-gruppe {
    padding: 0.25rem 0;
}

.eig-nav-gruppe + .eig-nav-gruppe {
    border-top: 1px solid var(--fd-border);
}

.eig-nav-gruppe-titel {
    padding: 0.6rem 1rem 0.3rem 1rem;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--fd-text-tertiary);
}

.eig-nav-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.5rem 1rem;
    background: none;
    border: none;
    border-left: 3px solid transparent;
    color: var(--fd-text-secondary);
    font-size: 0.85rem;
    cursor: pointer;
    transition: all 0.2s ease;
    text-align: left;
}

.eig-nav-item:hover {
    background-color: var(--fd-hover);
    color: var(--fd-text);
    border-radius: 0 var(--fd-radius-sm) var(--fd-radius-sm) 0;
}

.eig-nav-item.aktiv {
    background-color: var(--fd-accent-soft);
    color: var(--fd-primary);
    border-left-color: var(--fd-primary);
    font-weight: 600;
    border-radius: var(--fd-radius-sm);
}

/* ═══ Schieferdach-Navigation — 1:1 aus Prototyp ═══ */

/* Schieferdach-Suche */
.schiefer-suche {
    padding: 8px 6px 12px;
    margin-bottom: 6px;
    position: relative;
}

.schiefer-suche-input {
    width: 100%;
    padding: 8px 12px;
    border-radius: var(--fd-radius);
    border: 1.5px solid var(--fd-border-strong);
    background: var(--fd-input-bg);
    color: var(--fd-text);
    font-size: 12.5px;
    font-family: inherit;
    outline: none;
    transition: border-color 0.2s, box-shadow 0.2s;
    box-sizing: border-box;
}

.schiefer-suche-input:focus {
    border-color: var(--fd-primary);
    box-shadow: 0 0 0 3px var(--fd-accent-soft);
}

.schiefer-suche-treffer {
    position: absolute;
    left: 6px;
    right: 6px;
    top: 100%;
    background: var(--fd-bg);
    border: 1px solid var(--fd-border-strong);
    border-radius: var(--fd-radius);
    box-shadow: 0 4px 16px var(--fd-shadow);
    z-index: 200;
    max-height: 240px;
    overflow-y: auto;
    padding: 4px;
}

.schiefer-suche-item {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 8px 12px;
    border-radius: calc(var(--fd-radius) - 2px);
    border: none;
    background: transparent;
    color: var(--fd-text-secondary);
    font-size: 12.5px;
    font-weight: 430;
    text-align: left;
    cursor: pointer;
    transition: all 0.12s ease;
    font-family: inherit;
}

.schiefer-suche-item:hover,
.schiefer-suche-item.aktiv {
    background: var(--fd-accent-soft);
    color: var(--fd-primary);
    font-weight: 600;
}

.schiefer-suche-item .eig-nav-icon {
    font-size: 13px;
    width: 18px;
    text-align: center;
    opacity: 0.65;
}

/* Schieferplatte — Header-Button (Prototyp Z.123-141) */
.eig-nav-akkordeon-kopf {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 12px 14px;
    border: none;
    border-left: 3px solid transparent;
    border-bottom: 1px solid var(--fd-border);
    border-radius: var(--fd-radius);
    background: var(--fd-bg-alt);
    color: var(--fd-text-secondary);
    font-size: 13px;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    margin-top: -6px;
    box-shadow: 0 2px 4px var(--fd-shadow);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.eig-nav-akkordeon-kopf:first-child {
    margin-top: 0;
}

/* Textur-Linie (Prototyp Z.143-148) */
.eig-nav-akkordeon-kopf::after {
    content: "";
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--fd-border), transparent);
    opacity: 0.5;
    transition: opacity 0.25s;
}

.eig-nav-akkordeon-kopf:hover {
    background: var(--fd-hover);
    color: var(--fd-text);
}

/* Offene Platte (Prototyp: isOpen) */
.eig-nav-akkordeon-kopf.akkordeon-offen {
    background: var(--fd-schiefer-grad);
    color: var(--fd-primary);
    border-left: 3px solid var(--fd-primary);
    border-bottom: none;
    border-radius: var(--fd-radius) var(--fd-radius) 0 0;
    box-shadow: 0 4px 16px var(--fd-schiefer-glow);
}

.eig-nav-akkordeon-kopf.akkordeon-offen::after {
    opacity: 0;
}

/* Geschlossene Platte mit aktivem Kind (Prototyp: hasActiveChild) */
.eig-nav-akkordeon-kopf.akkordeon-hat-aktiv {
    background: var(--fd-hover);
    color: var(--fd-text);
    border-left: 3px solid var(--fd-schiefer-hint);
}

/* Chevron (Prototyp Z.156-160) */
.eig-nav-akkordeon-kopf .akkordeon-chevron {
    font-size: 10px;
    color: var(--fd-text-tertiary);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), color 0.4s ease;
    display: inline-block;
    flex-shrink: 0;
}

.eig-nav-akkordeon-kopf.akkordeon-offen .akkordeon-chevron {
    transform: rotate(180deg);
    color: var(--fd-primary);
}

/* Icon + Label + Beschreibung (Prototyp Z.149-154) */
.eig-nav-akkordeon-kopf .schiefer-icon {
    font-size: 16px;
    width: 22px;
    text-align: center;
    flex-shrink: 0;
}

.eig-nav-akkordeon-kopf .schiefer-label {
    flex: 1;
    min-width: 0;
    line-height: 1.2;
}

.eig-nav-akkordeon-kopf .schiefer-desc {
    font-size: 10px;
    color: var(--fd-text-tertiary);
    font-weight: 400;
    margin-top: 1px;
}

.akkordeon-offen .schiefer-desc {
    display: none;
}

/* Keyboard-Navigation Fokus */
.schiefer-nav-fokus {
    outline: 2px solid var(--fd-primary);
    outline-offset: -2px;
}

.eig-nav-akkordeon-inhalt .eig-nav-item.schiefer-nav-fokus {
    outline: 2px solid var(--fd-primary);
    outline-offset: -2px;
    background: var(--fd-hover);
}

.eigenschaften-nav:focus {
    outline: none;
}

/* Inhalt unter Platte (Prototyp Z.163-194) */
.eig-nav-akkordeon-inhalt {
    overflow: hidden;
    background: var(--fd-bg);
    border-left: 3px solid var(--fd-schiefer-sub);
    border-radius: 0 0 var(--fd-radius) var(--fd-radius);
    border-bottom: 1px solid var(--fd-border);
    box-shadow: inset 0 2px 8px var(--fd-schiefer-inset);
    padding: 4px 6px;
    animation: schieferAuf 0.5s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes schieferAuf {
    0% { opacity: 0; max-height: 0; transform: translateY(-6px); }
    40% { opacity: 0.6; }
    100% { opacity: 1; max-height: 500px; transform: translateY(0); }
}

/* Items im Inhalt (Prototyp Z.178-190) */
.eig-nav-akkordeon-inhalt .eig-nav-item {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 8px 12px;
    border-radius: calc(var(--fd-radius) - 2px);
    border: none;
    border-left: none;
    background: transparent;
    color: var(--fd-text-secondary);
    font-size: 12.5px;
    font-weight: 430;
    text-align: left;
    cursor: pointer;
    transition: all 0.12s ease;
}

.eig-nav-akkordeon-inhalt .eig-nav-item:hover {
    background: var(--fd-hover);
    color: var(--fd-text);
}

.eig-nav-akkordeon-inhalt .eig-nav-item.aktiv {
    background: var(--fd-accent-soft);
    color: var(--fd-primary);
    font-weight: 600;
    border-left: none;
    box-shadow: none;
}

.eig-nav-akkordeon-inhalt .eig-nav-item .eig-nav-icon {
    font-size: 13px;
    width: 18px;
    text-align: center;
    opacity: 0.65;
}

.eig-nav-icon {
    font-size: 1rem;
    width: 1.25rem;
    text-align: center;
}

.eigenschaften-inhalt {
    flex: 1;
    min-width: 0;
}

.eigenschaften-header h2 {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--fd-text);
    margin-bottom: 0.5rem;
}

.eigenschaften-beschreibung {
    color: var(--fd-text-secondary);
    font-size: 0.9375rem;
}

.eigenschaften-section {
    background-color: var(--fd-bg);
    border-radius: var(--fd-radius);
    box-shadow: 0 2px 8px var(--fd-shadow);
    padding: 1.5rem;
    margin-bottom: 1.5rem;
    color: var(--fd-text);
}

.section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.5rem;
}

.section-header h3 {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--fd-text);
}

/* ======================================================
   DESIGN-SYSTEM: Listen-Komponenten (Grid-basiert)
   Verwendung:
     Container:  <div class="fd-liste">
     Header:     <div class="fd-liste-header [grid-variante]">
     Zeile:      <div class="fd-liste-zeile [grid-variante]">
     Spalten:    .col-icon, .col-name, .col-name-en, .col-status, .col-actions
   Grid-Varianten: Standard (5 Spalten), vb-grid (6), abw-grid (8), kont-grid (7)
   ====================================================== */

/* Container */
.fd-liste,
/* â”€â”€ Druckprofil Detailformular â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.dp-sektion {
    background: var(--fd-surface);
    border: 1px solid var(--fd-border-strong);
    border-radius: 8px;
    padding: 1.25rem 1.5rem;
    margin-bottom: 1.25rem;
}
.dp-sektion-titel {
    margin: 0 0 1rem;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--fd-text);
    border-bottom: 1px solid var(--fd-border-strong);
    padding-bottom: 0.5rem;
}
.dp-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.dp-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.dp-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.dp-feld { display: flex; flex-direction: column; gap: 0.3rem; }
.dp-feld label { font-size: 0.82rem; font-weight: 500; color: var(--fd-text-secondary); }
.dp-toggle-label { display: flex; align-items: center; gap: 0.5rem; font-size: 0.9rem; cursor: pointer; }
@media (max-width: 768px) {
    .dp-grid-2, .dp-grid-3, .dp-grid-4 { grid-template-columns: 1fr; }
}

.belegarten-liste {
    border: var(--liste-border);
    border-radius: var(--liste-border-radius);
    overflow: hidden;
}

/* Header-Zeile */
.fd-liste-header,
.belegarten-header-row {
    display: grid;
    grid-template-columns: 60px 1fr 1fr 100px 120px;
    gap: var(--liste-zeile-gap);
    padding: var(--liste-header-padding);
    background-color: var(--liste-header-bg);
    font-size: var(--liste-header-font-size);
    font-weight: var(--liste-header-font-weight);
    color: var(--liste-header-color);
    text-transform: uppercase;
    letter-spacing: var(--liste-header-letter-spacing);
}

/* Daten-Zeile */
.fd-liste-zeile,
.belegarten-row {
    display: grid;
    grid-template-columns: 60px 1fr 1fr 100px 120px;
    gap: var(--liste-zeile-gap);
    padding: var(--liste-zeile-padding);
    align-items: center;
    border-bottom: var(--liste-border);
    font-size: var(--liste-zeile-font-size);
    color: var(--liste-zeile-color);
    transition: background-color 0.15s ease;
}

.fd-liste-zeile:last-child,
.belegarten-row:last-child {
    border-bottom: none;
}

.fd-liste-zeile:hover,
.belegarten-row:hover {
    background-color: var(--fd-bg-alt);
}

.fd-liste-zeile.inaktiv,
.belegarten-row.inaktiv {
    opacity: 0.5;
}

.fd-liste-zeile.bearbeitung,
.belegarten-row.bearbeitung {
    background-color: var(--fd-accent-soft);
}

/* Spalten-Typen */
.col-icon {
    text-align: center;
    font-size: var(--liste-icon-size);
}

.col-name {
    font-weight: 500;
    color: var(--fd-text);
}

.col-name-en {
    font-weight: 400;
    color: var(--fd-text-secondary);
}

.col-status {
    text-align: center;
}

.col-actions {
    display: flex;
    gap: 0.375rem;
    justify-content: flex-end;
    align-items: center;
}

/* Header-Zellen in der Aktionsspalte: Text rechtsbÃ¼ndig ausrichten */
.belegarten-header-row .col-actions,
.fd-liste-header .col-actions {
    display: block;
    text-align: right;
}

/* Header-Kinder: einheitliches Design, keine Overrides */
.belegarten-header-row .col-name,
.belegarten-header-row .col-name-en,
.belegarten-header-row .col-icon {
    font-weight: inherit;
    color: inherit;
    font-size: inherit;
}

/* --- Grid-Varianten --- */

/* Vertretungsbefugnisse: 6 Spalten (Icon, Code, Name DE, Name EN, Sortierung, Aktionen) */
.fd-liste-header.vb-grid, .fd-liste-zeile.vb-grid,
.belegarten-header-row.vb-grid, .belegarten-row.vb-grid {
    grid-template-columns: 60px 70px 1fr 1fr 100px 120px;
}

/* Abwesenheitsarten: 8 Spalten (Icon, Name DE, Name EN, Farbe, Genehmigung, Urlaub, Aktiv, Aktionen) */
.fd-liste-header.abw-grid, .fd-liste-zeile.abw-grid,
.belegarten-header-row.abw-grid, .belegarten-row.abw-grid {
    grid-template-columns: 60px 1fr 1fr 60px 80px 80px 60px 100px;
}

/* Kontingente: 7 Spalten (Person, Gesamt, Rest, Genommen, Beantragt, VerfÃ¼gbar, Aktion) */
.fd-liste-header.kont-grid, .fd-liste-zeile.kont-grid,
.belegarten-header-row.kont-grid, .belegarten-row.kont-grid {
    grid-template-columns: 1fr 90px 90px 90px 90px 90px 60px;
}

/* Druckprofil-Grid: Name | Belegart | Projekt | Default | Template | Aktionen */
.belegarten-header-row.dp-grid,
.belegarten-row.dp-grid {
    grid-template-columns: 2fr 1.5fr 1.5fr 80px 80px 90px;
}

/* Zahlungsbedingungen-Grid: Name | EintrÃ¤ge | Textvorlage | Aktionen */
.belegarten-header-row.zb-grid,
.belegarten-row.zb-grid {
    grid-template-columns: 2fr 1fr 3fr 90px;
}

/* OrderBelegArten-Grid: Icon | Name DE | Name EN | Typ | Status | Aktionen */
.belegarten-header-row.oba-grid,
.belegarten-row.oba-grid {
    grid-template-columns: 60px 1fr 1fr 120px 100px 90px;
}

/* Standorte: Bezeichnung | Funktion | Adresse | Sort | Aktionen */
.belegarten-header-row.standort-grid,
.belegarten-row.standort-grid {
    grid-template-columns: 1fr 0.8fr 1.5fr 70px 120px;
}

/* Abteilungen: Bezeichnung | English | Sort | Aktionen */
.belegarten-header-row.abt-grid,
.belegarten-row.abt-grid {
    grid-template-columns: 1fr 1fr 70px 120px;
}

.status-badge {
    display: inline-block;
    padding: 0.2rem 0.5rem;
    border-radius: var(--fd-radius-sm);
    font-size: 0.7rem;
    font-weight: 600;
}

.status-badge.aktiv {
    background-color: var(--fd-prio-gruen);
    color: var(--fd-prio-gruen-border);
}

.status-badge.inaktiv {
    background-color: var(--fd-bg-muted);
    color: var(--fd-text-tertiary);
}

.btn-sm {
    padding: 0.3rem 0.5rem;
    border: 1px solid var(--fd-border);
    border-radius: var(--fd-radius-sm);
    cursor: pointer;
    font-size: 0.8rem;
    line-height: 1;
    transition: all 0.15s ease;
    background: none;
}

.btn-primary-sm {
    background-color: var(--fd-primary);
    color: white;
    border-color: var(--fd-primary);
}

.btn-primary-sm:hover {
    background-color: var(--fd-primary-hover);
}

.btn-secondary-sm {
    background-color: var(--fd-bg-alt);
    color: var(--fd-text);
}

.btn-secondary-sm:hover {
    background-color: var(--fd-bg-muted);
}

.btn-danger-sm {
    background-color: transparent;
    color: var(--fd-text-tertiary);
    border-color: transparent;
}

.btn-danger-sm:hover {
    background-color: var(--fd-danger);
    color: white;
    border-color: var(--fd-danger);
}

.form-control-sm {
    padding: 0.375rem 0.5rem !important;
    font-size: 0.8125rem !important;
}

.checkbox-label-sm {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.8125rem;
    cursor: pointer;
}

.checkbox-label-sm input[type="checkbox"] {
    width: 14px;
    height: 14px;
}

.fehler-meldung {
    margin-top: 1rem;
    padding: 0.75rem 1rem;
    background-color: var(--fd-prio-rot);
    border: 1px solid var(--fd-prio-rot-border);
    border-radius: var(--fd-radius-sm);
    color: var(--fd-prio-rot-border);
    font-size: 0.875rem;
    font-weight: 500;
}

@media (max-width: 768px) {
    .belegarten-header-row,
    .belegarten-row {
        grid-template-columns: 50px 1fr 80px 100px;
        gap: 0.5rem;
        font-size: 0.8rem;
    }

    .section-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.75rem;
    }
}

/* === Eigenschaften Tabs === */
.eigenschaften-tabs {
    display: flex;
    gap: 0;
    margin-bottom: 1.5rem;
    border-bottom: 2px solid var(--fd-border);
}

.tab-btn {
    padding: 0.75rem 1.5rem;
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    color: var(--fd-text-secondary);
    font-size: 0.95rem;
    cursor: pointer;
    transition: all 0.2s;
    margin-bottom: -2px;
}

.tab-btn:hover {
    color: var(--fd-text);
    background: var(--fd-hover);
}

.tab-btn.aktiv {
    color: var(--fd-primary);
    border-bottom-color: var(--fd-primary);
    font-weight: 600;
}

/* === Personen-Liste === */
.personen-liste {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.personen-header-row {
    display: grid;
    grid-template-columns: 50px 60px 1fr 130px 1.2fr 80px 100px;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    background-color: var(--fd-bg-muted);
    font-size: var(--liste-header-font-size);
    font-weight: var(--liste-header-font-weight);
    color: var(--liste-header-color);
    text-transform: uppercase;
    letter-spacing: var(--liste-header-letter-spacing);
    border-bottom: 2px solid var(--fd-border);
}

.personen-row {
    display: grid;
    grid-template-columns: 50px 60px 1fr 130px 1.2fr 80px 100px;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    align-items: center;
    border-bottom: 1px solid var(--fd-border);
    transition: background 0.15s;
}

.personen-row:hover {
    background: var(--fd-hover);
}

.col-mnr {
    font-weight: 600;
    font-family: var(--fd-font-mono);
    font-size: 0.85rem;
    color: var(--fd-text-secondary);
}

.personen-row.inaktiv {
    opacity: 0.5;
}

/* === Person Avatar (Teams-Style) === */
.person-avatar {
    width: 36px;
    height: 36px;
    border-radius: var(--fd-radius-round);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.8rem;
    color: white;
    flex-shrink: 0;
}

.person-avatar.gross {
    width: 48px;
    height: 48px;
    font-size: 1rem;
}

/* Profilbild-Upload */
.person-avatar-upload {
    position: relative;
    cursor: pointer;
    flex-shrink: 0;
}

.person-avatar-upload:hover .person-avatar-overlay {
    opacity: 1;
}

.person-avatar-overlay {
    position: absolute;
    bottom: -2px;
    right: -2px;
    width: 22px;
    height: 22px;
    background: var(--fd-primary);
    border-radius: var(--fd-radius-round);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.7rem;
    opacity: 0.7;
    transition: opacity 0.2s;
    border: 2px solid var(--fd-surface);
}

.person-avatar-bild {
    width: 48px;
    height: 48px;
    border-radius: var(--fd-radius-round);
    object-fit: cover;
}

.person-avatar-bild.gross {
    width: 48px;
    height: 48px;
}

.btn-bild-entfernen {
    position: absolute;
    top: -4px;
    right: -4px;
    width: 18px;
    height: 18px;
    border-radius: var(--fd-radius-round);
    background: var(--fd-danger);
    color: var(--fd-surface);
    border: 2px solid var(--fd-surface);
    font-size: 0.6rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    line-height: 1;
}

.person-avatar.klein {
    width: 32px;
    height: 32px;
    font-size: 0.75rem;
}

.person-avatar.mini {
    width: 28px;
    height: 28px;
    font-size: 0.7rem;
}

/* === Person Avatar Bild (Profilbild statt Initialen) === */
.person-avatar-img {
    width: 36px;
    height: 36px;
    max-width: 36px;
    max-height: 36px;
    border-radius: var(--fd-radius-round);
    object-fit: cover;
    flex-shrink: 0;
}

.person-avatar-img.gross {
    width: 48px;
    height: 48px;
    max-width: 48px;
    max-height: 48px;
}

.person-avatar-img.klein {
    width: 32px;
    height: 32px;
    max-width: 32px;
    max-height: 32px;
}

.person-avatar-img.mini {
    width: 28px;
    height: 28px;
    max-width: 28px;
    max-height: 28px;
}

.person-avatar-img.benutzer-avatar-size {
    width: 32px;
    height: 32px;
    max-width: 32px;
    max-height: 32px;
}

.person-avatar.benutzer-avatar-size {
    width: 32px;
    height: 32px;
    font-size: 0.7rem;
}

.rolle-gl { background: #8b5cf6; }
.rolle-pl { background: #3b82f6; }
.rolle-tl { background: #10b981; }
.rolle-ma { background: #6b7280; }
.rolle-ex { background: #94a3b8; }
.rolle-ku { background: #f59e0b; }
.rolle-li { background: #ec4899; }
.rolle-ex { background: #0ea5e9; }

/* === Rolle Badge === */
.rolle-badge {
    display: inline-block;
    padding: 0.2rem 0.6rem;
    border-radius: var(--fd-radius);
    font-size: 0.75rem;
    font-weight: 600;
    color: white;
}

.rolle-badge.rolle-gl { background: #8b5cf6; }
.rolle-badge.rolle-pl { background: #3b82f6; }
.rolle-badge.rolle-tl { background: #10b981; }
.rolle-badge.rolle-ma { background: #6b7280; }
.rolle-badge.rolle-ku { background: #f59e0b; }
.rolle-badge.rolle-li { background: #ec4899; }
.rolle-badge.rolle-ex { background: #0ea5e9; }

/* === Kontakt Info === */
.kontakt-info {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.kontakt-zeile {
    font-size: 0.8rem;
    color: var(--fd-text-secondary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* === Person Vorschau im Modal === */
.person-vorschau {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    background: var(--fd-hover);
    border-radius: var(--fd-radius-sm);
    margin-top: 0.5rem;
}

.vorschau-info {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

/* === Modal Person === */
.modal-person {
    max-width: 860px;
    max-height: 97vh;
}

/* === Person-Modal: Tab-Navigation (Redesign 29.03.2026) === */
.person-tab-leiste {
    display: flex;
    gap: 0;
    border-bottom: 1px solid var(--fd-border);
    padding: 0 1.5rem;
    flex-shrink: 0;
    overflow-x: auto;
}

.person-tab {
    padding: 0.6875rem 1rem;
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    color: var(--fd-text-tertiary);
    font-size: 0.8125rem;
    font-weight: 500;
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.2s cubic-bezier(0.4,0,0.2,1);
    margin-bottom: -1px;
    font-family: var(--fd-font);
}

.person-tab:hover {
    color: var(--fd-text-secondary);
    background: rgba(255,255,255,0.02);
}

.person-tab.aktiv {
    color: var(--fd-primary);
    border-bottom-color: var(--fd-primary);
    font-weight: 600;
}

/* === Person-Modal: Tab-Inhalt === */
.person-tab-inhalt {
    flex: 1;
    overflow-y: auto;
    padding: 1.25rem 1.5rem;
    min-height: 580px;
}

.person-tab-panel {
    display: none;
}

.person-tab-panel.aktiv {
    display: block;
    animation: fadePersonTab 0.2s ease;
}

@keyframes fadePersonTab {
    from { opacity: 0; transform: translateY(4px); }
    to { opacity: 1; transform: translateY(0); }
}

/* === Person-Modal: Sektions-Titel === */
.person-sektion-titel {
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--fd-text-tertiary);
    margin: 1.25rem 0 0.625rem;
    padding-bottom: 0.375rem;
    border-bottom: 1px solid var(--fd-border);
}

.person-sektion-titel:first-child {
    margin-top: 0;
}

.person-sektion-titel.person-sektion-klappbar:hover {
    color: var(--fd-text-secondary);
    background: rgba(255,255,255,0.02);
    margin-left: -0.5rem;
    margin-right: -0.5rem;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
    border-radius: var(--fd-radius-xs);
}

/* === Sanfte Klapp-Animation (grid-row Trick) === */
.person-klapp-chevron {
    font-size: 0.75rem;
    transition: transform 0.25s ease;
    display: inline-block;
}

.person-klapp-chevron.offen {
    transform: rotate(90deg);
}

.person-klapp-container {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.3s ease, opacity 0.25s ease;
    opacity: 0;
}

.person-klapp-container.offen {
    grid-template-rows: 1fr;
    opacity: 1;
}

.person-klapp-inhalt {
    overflow: hidden;
}

/* === Person-Modal: Hinweis-Box === */
.person-hinweis {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 0.625rem 0.75rem;
    background: var(--fd-primary-soft, rgba(108,140,255,0.08));
    border: 1px solid rgba(108,140,255,0.15);
    border-radius: var(--fd-radius-xs);
    font-size: 0.75rem;
    color: var(--fd-text-secondary);
    line-height: 1.45;
    margin-top: 0.75rem;
}

/* === Ansprechpartner-Liste === */
.ap-liste {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.ap-row {
    border: 1px solid var(--fd-border);
    border-radius: var(--fd-radius-sm);
    padding: 0.75rem;
}

.ap-row.inaktiv {
    opacity: 0.5;
}

.ap-anzeige {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.ap-info {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    font-size: 0.85rem;
}

.ap-info strong {
    font-size: 0.9rem;
}

.ap-aktionen {
    display: flex;
    gap: 0.25rem;
}

.ap-edit {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* === Erfolgs-Meldung === */
.erfolgs-meldung {
    padding: 0.75rem 1rem;
    background: var(--fd-success-soft);
    border: 1px solid var(--fd-success-soft);
    border-radius: var(--fd-radius-sm);
    color: var(--fd-success);
    margin-top: 1rem;
    font-size: 0.875rem;
}

/* === Zuweisungs-Section im Beleg-Modal === */
.zuweisung-section {
    border-top: 1px solid var(--fd-border);
    padding-top: 1rem;
    margin-top: 0.5rem;
}

.zuweisung-section h4 {
    margin-bottom: 0.75rem;
    font-size: 0.95rem;
}

.zugewiesene-personen {
    margin-bottom: 0.75rem;
}

.zugewiesene-avatare {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.zugewiesene-person {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.3rem 0.5rem 0.3rem 0.3rem;
    background: var(--fd-hover);
    border-radius: var(--fd-radius-lg);
    font-size: 0.8rem;
    transition: background 0.15s;
}

.zugewiesene-person:hover {
    background: var(--fd-hover);
}

.person-kurzname {
    font-weight: 500;
    color: var(--fd-text);
}

.btn-person-entfernen {
    width: 18px;
    height: 18px;
    border-radius: var(--fd-radius-round);
    border: none;
    background: var(--fd-danger-soft);
    color: var(--fd-danger);
    font-size: 0.65rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.15s;
}

.zugewiesene-person:hover .btn-person-entfernen {
    opacity: 1;
}

.keine-zuweisung {
    font-size: 0.85rem;
    color: var(--fd-text-secondary);
    font-style: italic;
}

/* === Person hinzufÃƒÆ’Ã‚Â¼gen Button === */
.person-suche-container {
    position: relative;
}

.btn-person-hinzufuegen {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.4rem 0.8rem;
    background: transparent;
    border: 1.5px dashed var(--fd-border);
    border-radius: var(--fd-radius-lg);
    color: var(--fd-text-secondary);
    font-size: 0.8rem;
    cursor: pointer;
    transition: all 0.15s;
}

.btn-person-hinzufuegen:hover {
    border-color: var(--fd-primary);
    color: var(--fd-primary);
    background: var(--fd-accent-soft);
}

.plus-icon {
    width: 22px;
    height: 22px;
    border-radius: var(--fd-radius-round);
    background: var(--fd-primary);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
    font-weight: 700;
}

/* === Personen-Auswahl Panel === */
.personen-auswahl-panel {
    position: absolute;
    bottom: 100%;
    left: 0;
    min-width: 280px;
    max-height: 250px;
    overflow-y: auto;
    background: var(--fd-surface, white);
    border: 1px solid var(--fd-border);
    border-radius: var(--fd-radius-sm);
    box-shadow: 0 -4px 16px var(--fd-shadow);
    z-index: 100;
    margin-bottom: 0.5rem;
}

.personen-auswahl-item {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.6rem 0.8rem;
    cursor: pointer;
    transition: background 0.15s;
}

.personen-auswahl-item:hover {
    background: var(--fd-hover);
}

.personen-auswahl-item.bereits-zugewiesen {
    opacity: 0.5;
    cursor: default;
}

.personen-auswahl-info {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    flex: 1;
}

.personen-auswahl-name {
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--fd-text);
}

.personen-auswahl-rolle {
    font-size: 0.7rem;
    color: var(--fd-text-secondary);
}

.bereits-icon {
    color: var(--fd-success);
    font-weight: 700;
}

.personen-auswahl-leer {
    padding: 1rem;
    text-align: center;
    font-size: 0.8rem;
    color: var(--fd-text-secondary);
}

/* === Dark Mode Anpassungen fÃƒÆ’Ã‚Â¼r neue Elemente === */
.dark-mode .tab-btn:hover {
    background: var(--fd-hover);
}

.dark-mode .personen-auswahl-panel {
    background: var(--fd-surface);
    box-shadow: 0 -4px 16px var(--fd-shadow);
}

.dark-mode .zugewiesene-person {
    background: var(--fd-hover);
}

.dark-mode .zugewiesene-person:hover {
    background: var(--fd-hover);
}

.dark-mode .person-vorschau {
    background: var(--fd-hover);
}

.dark-mode .erfolgs-meldung {
    background: var(--fd-success-soft);
    color: var(--fd-success);
}

/* === Responsive Personen === */
@media (max-width: 768px) {
    .personen-header-row,
    .personen-row {
        grid-template-columns: 40px 50px 1fr 100px 80px;
    }

    .col-kontakt,
    .col-status {
        display: none;
    }

    .eigenschaften-tabs {
        flex-wrap: wrap;
    }

    .eigenschaften-layout {
        flex-direction: column;
    }

    .eigenschaften-nav {
        width: 100%;
        position: static;
        display: flex;
        flex-wrap: wrap;
        gap: 0;
        padding: 0.5rem;
    }

    .eig-nav-gruppe {
        width: 100%;
    }

    .eig-nav-gruppe + .eig-nav-gruppe {
        border-top: 1px solid var(--fd-border);
    }

    .eig-nav-item {
        border-left: none;
        border-bottom: 2px solid transparent;
    }

    .eig-nav-item.aktiv {
        border-left: none;
        border-bottom-color: var(--fd-primary);
    }
}

/* === E-Mail Konfiguration === */
.email-config-form {
    margin-top: 1rem;
}

.email-config-grid {
    margin-top: 1rem;
}

.section-beschreibung {
    font-size: 0.875rem;
    color: var(--fd-text-secondary);
    margin: 0.5rem 0 0;
}

.email-status {
    display: flex;
    align-items: center;
}

.smtp-hinweis {
    margin-top: 1.5rem;
    padding: 1rem;
    background: var(--fd-hover);
    border-radius: var(--fd-radius-sm);
    border-left: 3px solid var(--fd-primary);
}

.smtp-hinweis h4 {
    margin: 0 0 0.75rem;
    font-size: 0.9rem;
}

.smtp-beispiele {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.smtp-beispiel {
    font-size: 0.8rem;
    color: var(--fd-text-secondary);
    line-height: 1.5;
}

.smtp-detail {
    font-size: 0.75rem;
    color: var(--fd-text-secondary);
    opacity: 0.7;
}

.email-actions {
    display: flex;
    gap: 0.75rem;
    margin-top: 1.5rem;
}

/* === Zuweisungs-Meldung im Modal === */
.zuweisung-meldung {
    margin-bottom: 0.75rem;
    font-size: 0.8rem;
    padding: 0.5rem 0.75rem;
}

/* Dark Mode E-Mail */
.dark-mode .smtp-hinweis {
    background: var(--fd-hover);
}

/* === Login — Government Dark Design === */
.login-container {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    background: var(--fd-bg);
    padding: 1rem;
    position: relative;
    overflow: hidden;
}

.login-orb {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}
.login-orb-1 {
    top: -15%; left: -5%;
    width: 600px; height: 600px;
    background: radial-gradient(circle, rgba(95,168,211,0.12) 0%, transparent 70%);
    animation: loginFloat1 20s ease-in-out infinite;
}
.login-orb-2 {
    bottom: -10%; right: -5%;
    width: 500px; height: 500px;
    background: radial-gradient(circle, rgba(74,222,128,0.08) 0%, transparent 70%);
    animation: loginFloat2 25s ease-in-out infinite;
}
@keyframes loginFloat1 {
    0%, 100% { transform: translate(0, 0); }
    50% { transform: translate(60px, 40px); }
}
@keyframes loginFloat2 {
    0%, 100% { transform: translate(0, 0); }
    50% { transform: translate(-40px, -30px); }
}

.login-card {
    position: relative; z-index: 1;
    background: var(--fd-card-bg, rgba(26,36,54,0.85));
    backdrop-filter: blur(40px);
    border: 1px solid var(--fd-input-border, rgba(200,220,255,0.08));
    border-radius: 16px;
    box-shadow: var(--fd-elevation-3, 0 24px 80px rgba(0,0,0,0.4));
    width: 100%;
    max-width: 420px;
    overflow: hidden;
    animation: loginAppear 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes loginAppear {
    from { opacity: 0; transform: translateY(20px) scale(0.98); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.login-header {
    padding: 2.5rem 2.5rem 1.5rem;
    text-align: center;
    background: none;
    color: var(--fd-text, #e4eaf4);
}

.login-logo-icon {
    width: 64px;
    height: 64px;
    border-radius: 16px;
    margin-bottom: 0.5rem;
}

.login-logo-box {
    width: 56px; height: 56px;
    margin: 0 auto 1.25rem;
    background: linear-gradient(135deg, var(--fd-primary, #5fa8d3) 0%, var(--fd-success, #4ade80) 100%);
    border-radius: 14px;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.5rem; font-weight: 700;
    color: var(--fd-bg, #101828);
    box-shadow: 0 8px 32px rgba(95,168,211,0.25);
    font-family: 'JetBrains Mono', var(--fd-font-mono, monospace);
}

.login-header h1 {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--fd-text, #e4eaf4);
    letter-spacing: -0.02em;
}

.login-header p {
    margin: 0.25rem 0 0;
    font-size: 0.8125rem;
    color: var(--fd-text-secondary, #6a7c96);
}

.login-body {
    padding: 0 2.5rem 2rem;
}

.login-body .form-group {
    margin-bottom: 1rem;
}

.login-body label {
    display: block;
    margin-bottom: 0.375rem;
    font-weight: 600;
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--fd-text-secondary, #6a7c96);
}

.login-body .form-control {
    background: var(--fd-input-bg, rgba(200,220,255,0.04));
    border: 1.5px solid var(--fd-input-border, rgba(200,220,255,0.1));
    color: var(--fd-text, #e4eaf4);
}
.login-body .form-control:focus {
    border-color: var(--fd-primary, #5fa8d3);
    box-shadow: var(--fd-focus-ring, 0 0 0 3px rgba(95,168,211,0.15));
    background: var(--fd-input-bg, rgba(200,220,255,0.06));
}
.login-body .form-control::placeholder {
    color: var(--fd-text-tertiary, #4a5568);
}

.login-btn {
    width: 100%;
    padding: 0.8rem;
    font-size: 0.9rem;
    font-weight: 700;
    margin-top: 0.5rem;
    background: linear-gradient(135deg, var(--fd-primary, #5fa8d3), var(--fd-primary-hover, #4a9bc5));
    color: var(--fd-bg, #101828);
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.2s;
}
.login-btn:hover {
    background: linear-gradient(135deg, var(--fd-primary-hover, #79bde0), var(--fd-primary, #5fa8d3));
    box-shadow: 0 8px 24px rgba(95,168,211,0.3);
    transform: translateY(-1px);
}

.login-divider {
    height: 1px;
    background: var(--fd-input-border, rgba(200,220,255,0.06));
    margin: 1.25rem 0;
}

.login-module {
    display: flex;
    justify-content: center;
    gap: 0.75rem;
    padding: 0 0 0.5rem;
    border: none;
    margin: 0;
}

.login-module-icon {
    width: 36px; height: 36px;
    background: var(--fd-hover, rgba(200,220,255,0.04));
    border: 1px solid var(--fd-input-border, rgba(200,220,255,0.06));
    border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
    font-size: 1rem;
    transition: all 0.2s;
    cursor: default;
}
.login-module-icon:hover {
    background: var(--fd-accent-soft, rgba(95,168,211,0.1));
    border-color: var(--fd-primary, rgba(95,168,211,0.2));
    transform: translateY(-2px);
}

.login-lang {
    display: flex;
    gap: 0.5rem;
    justify-content: center;
    margin-top: 0.75rem;
}
.login-lang-btn {
    padding: 0.35rem 0.75rem;
    background: var(--fd-hover, rgba(200,220,255,0.04));
    border: 1px solid var(--fd-input-border, rgba(200,220,255,0.06));
    border-radius: 6px;
    color: var(--fd-text-secondary, #6a7c96);
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    font-family: var(--fd-font, 'DM Sans', sans-serif);
    transition: all 0.15s;
}
.login-lang-btn.aktiv {
    background: var(--fd-accent-soft, rgba(95,168,211,0.1));
    border-color: var(--fd-primary, rgba(95,168,211,0.2));
    color: var(--fd-primary, #5fa8d3);
}
.login-lang-btn:hover {
    background: var(--fd-accent-soft, rgba(95,168,211,0.08));
    color: var(--fd-primary, #79bde0);
}

.login-footer {
    text-align: center;
    padding: 1rem 2.5rem 1.5rem;
    border-top: 1px solid var(--fd-input-border, rgba(200,220,255,0.04));
    background: none;
}
.login-footer span,
.login-footer .login-version {
    font-size: 0.6875rem;
    color: var(--fd-text-tertiary, #4a5568);
    font-family: 'JetBrains Mono', var(--fd-font-mono, monospace);
}

.login-sprache {
    margin-top: 0.5rem;
}

.login-sprache label {
    font-size: 0.85rem;
}

.login-sprache select {
    font-size: 0.9rem;
    padding: 0.4rem 0.6rem;
}

/* === Benutzer-Info in Sidebar === */
.benutzer-info {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.benutzer-avatar {
    width: 36px;
    height: 36px;
    border-radius: var(--fd-radius-round);
    background: linear-gradient(135deg, var(--fd-primary), var(--fd-primary-hover));
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.9rem;
    flex-shrink: 0;
    overflow: hidden;
}

.benutzer-details {
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.benutzer-name {
    font-weight: 600;
    font-size: 0.8rem;
    color: var(--fd-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.benutzer-rolle {
    font-size: 0.7rem;
    color: var(--fd-text-secondary);
}

.btn-abmelden {
    width: 100%;
    padding: 0.5rem 0.6rem;
    background: transparent;
    border: 1px solid var(--fd-border);
    border-radius: var(--fd-radius-sm);
    color: var(--fd-text-secondary);
    font-size: 0.8rem;
    cursor: pointer;
    transition: all 0.15s;
}

.btn-abmelden:hover {
    background: var(--fd-danger-soft);
    border-color: var(--fd-danger);
    color: var(--fd-danger);
}

/* === Sprache-Auswahl === */
.sprache-auswahl {
    display: flex;
    gap: 1rem;
    margin-top: 1rem;
}

.sprache-option {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 1.5rem;
    border: 2px solid var(--fd-border);
    border-radius: var(--fd-radius);
    cursor: pointer;
    transition: all 0.2s;
    min-width: 180px;
}

.sprache-option:hover {
    border-color: var(--fd-primary);
    background: var(--fd-accent-soft);
}

.sprache-option.aktiv {
    border-color: var(--fd-primary);
    background: var(--fd-accent-soft);
}

.sprache-flag {
    font-size: 2rem;
}

.sprache-name {
    font-weight: 600;
    font-size: 1rem;
}

.sprache-check {
    margin-left: auto;
    color: var(--fd-primary);
    font-weight: 700;
    font-size: 1.2rem;
}

/* Dark Mode Login — nicht mehr nötig, Login hat eigenes Dark Design */
.dark-mode .login-body .btn-passwort-toggle {
    color: var(--fd-text-secondary, #6a7c96);
}

/* === Passwort-Reset (v2.6.0) === */
.login-reset-link {
    margin-top: 1.25rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--fd-border);
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
}
.login-reset-link a {
    color: var(--fd-primary, #5fa8d3);
    text-decoration: none;
    font-size: 0.85rem;
}
.login-reset-link a:hover {
    text-decoration: underline;
    color: var(--fd-primary-hover, #79bde0);
}
.login-reset-link.zurueck {
    margin-top: 1.25rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--fd-border);
}
.reset-header {
    font-size: 1.1rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
    color: var(--fd-text);
}
.reset-beschreibung {
    font-size: 0.85rem;
    color: var(--fd-text-secondary);
    margin-bottom: 1rem;
}
.btn-reset-option {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    padding: 0.75rem 1rem;
    margin-bottom: 0.5rem;
    border: 1px solid var(--fd-border);
    border-radius: 8px;
    background: var(--fd-hover);
    cursor: pointer;
    text-align: left;
    transition: border-color 0.2s, background 0.2s;
}
.btn-reset-option:hover {
    border-color: var(--fd-primary);
    background: var(--fd-accent-soft);
}
.reset-option-icon {
    font-size: 1.5rem;
}
.reset-option-text {
    display: flex;
    flex-direction: column;
}
.reset-option-text strong {
    font-size: 0.9rem;
    color: var(--fd-text);
}
.reset-option-text small {
    font-size: 0.75rem;
    color: var(--fd-text-secondary);
    margin-top: 2px;
}
.reset-erfolg {
    background: var(--fd-success-soft);
    border: 1px solid var(--fd-success-soft);
    border-radius: 8px;
    padding: 1rem;
    text-align: center;
    color: var(--fd-text);
    font-size: 0.9rem;
}
.reset-info {
    background: var(--fd-accent-soft);
    border: 1px solid var(--fd-primary-container);
    border-radius: 8px;
    padding: 0.75rem;
    text-align: center;
    color: var(--fd-text);
    font-size: 0.85rem;
    margin-bottom: 0.75rem;
}
.code-eingabe {
    text-align: center;
    font-size: 1.5rem;
    letter-spacing: 6px;
    font-weight: 600;
}

/* === Reset-Glocke (v2.6.0) === */
.reset-glocke-container {
    position: relative;
}
.reset-glocke-btn {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 1.1rem;
    padding: 4px;
    position: relative;
    line-height: 1;
}
.reset-badge {
    position: absolute;
    top: -4px;
    right: -6px;
    background: var(--fd-danger);
    color: white;
    font-size: 0.65rem;
    font-weight: 700;
    min-width: 16px;
    height: 16px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 4px;
}
.reset-dropdown {
    position: absolute;
    bottom: 100%;
    left: 0;
    min-width: 280px;
    background: var(--fd-bg, white);
    border: 1px solid var(--fd-border);
    border-radius: 8px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.15);
    z-index: 1001;
    margin-bottom: 8px;
    overflow: hidden;
}
.reset-dropdown-header {
    padding: 0.6rem 0.75rem;
    font-weight: 600;
    font-size: 0.85rem;
    border-bottom: 1px solid var(--fd-border);
    color: var(--fd-text);
}
.reset-anfrage-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid var(--fd-border-light);
}
.reset-anfrage-item:last-child {
    border-bottom: none;
}
.reset-anfrage-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.reset-anfrage-info strong {
    font-size: 0.85rem;
    color: var(--fd-text);
}
.reset-anfrage-info small {
    font-size: 0.7rem;
    color: var(--fd-text-secondary);
}
.reset-anfrage-aktionen {
    display: flex;
    gap: 4px;
}
.btn-reset-genehmigen, .btn-reset-ablehnen {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 1rem;
    padding: 4px;
    border-radius: 4px;
    transition: background 0.15s;
}
.btn-reset-genehmigen:hover {
    background: var(--fd-success-soft);
}
.btn-reset-ablehnen:hover {
    background: var(--fd-danger-soft);
}
.reset-keine {
    padding: 0.75rem;
    text-align: center;
    font-size: 0.8rem;
    color: var(--fd-text-secondary);
}

/* === Placeholder-Seiten (v2.6.0) === */
.placeholder-container {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    padding: 2rem;
}
.placeholder-card {
    background: var(--fd-bg, white);
    border: 1px solid var(--fd-border);
    border-radius: 12px;
    padding: 2.5rem;
    text-align: center;
    width: 680px;
    max-width: 100%;
}
.placeholder-icon {
    font-size: 3rem;
    margin-bottom: 0.75rem;
}
.placeholder-card h2 {
    margin: 0 0 0.5rem;
    font-size: 1.4rem;
    color: var(--fd-text);
}
.placeholder-text {
    color: var(--fd-text-secondary);
    font-size: 0.9rem;
    margin-bottom: 1.5rem;
}
.placeholder-features {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
    text-align: left;
}
.placeholder-feature {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem;
    background: var(--fd-hover);
    border-radius: 8px;
    font-size: 0.85rem;
    color: var(--fd-text-secondary);
}
.placeholder-feature-icon {
    font-size: 1.1rem;
}

/* OrderFlow Buttons */
.orderflow-buttons {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
}
.btn-orderflow {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.25rem;
    padding: 1rem;
    border: 1px solid var(--fd-border);
    border-radius: 10px;
    background: var(--fd-bg, white);
    cursor: not-allowed;
    opacity: 0.6;
    transition: opacity 0.2s;
}
.btn-orderflow-icon {
    font-size: 1.5rem;
}
.btn-orderflow-text {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--fd-text);
}
.btn-orderflow small {
    font-size: 0.7rem;
    color: var(--fd-text-tertiary);
}

/* === Sprache Dropdown === */
.sprache-dropdown {
    font-size: 1rem;
    padding: 0.6rem 0.75rem;
}

/* === Passwort-Feld mit Toggle === */
.passwort-feld {
    position: relative;
    display: flex;
    align-items: center;
}

.passwort-feld .form-control {
    padding-right: 3rem;
    flex: 1;
}

.btn-passwort-toggle {
    position: absolute;
    right: 0.5rem;
    background: transparent;
    border: none;
    cursor: pointer;
    font-size: 1.1rem;
    padding: 0.25rem 0.4rem;
    border-radius: var(--fd-radius-sm);
    opacity: 0.7;
    transition: opacity 0.15s;
}

.btn-passwort-toggle:hover {
    opacity: 1;
}

/* === Passwort-ZwangsÃƒÆ’Ã‚Â¤nderung Hinweis === */
.pw-reset-hinweis {
    background: var(--fd-warning-soft);
    border: 1px solid var(--fd-warning-soft);
    border-radius: var(--fd-radius-sm);
    padding: 0.75rem 1rem;
    margin-bottom: 1.25rem;
    font-size: 0.9rem;
    color: var(--fd-text);
}

/* === Admin Reset Modal === */
.reset-benutzer-info {
    padding: 0.75rem;
    background: var(--fd-bg-muted);
    border-radius: var(--fd-radius-sm);
    font-size: 0.95rem;
}

/* === Benutzer & Module Tabelle === */
.modul-berechtigungen-tabelle {
    overflow-x: auto;
    margin-top: 1rem;
}

/* Generische Tabelle mit Design-Token */
.tabelle {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
    color: var(--fd-text);
}

.tabelle th {
    padding: 0.5rem 0.75rem;
    border-bottom: 2px solid var(--fd-border);
    font-weight: 600;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--fd-text-secondary);
    text-align: left;
}

.tabelle td {
    padding: 0.6rem 0.75rem;
    border-bottom: 1px solid var(--fd-border);
    color: var(--fd-text);
    vertical-align: middle;
}

.tabelle tbody tr:hover {
    background: var(--fd-hover);
}

.tabelle-kompakt {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
}

.tabelle-kompakt th,
.tabelle-kompakt td {
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--fd-border);
    vertical-align: middle;
    color: var(--fd-text);
}

.tabelle-kompakt th {
    background: var(--fd-bg-alt);
    font-weight: 600;
    font-size: 0.8rem;
    text-align: center;
    white-space: nowrap;
    color: var(--fd-text-secondary);
}

.tabelle-kompakt td select {
    width: 100%;
    padding: 0.25rem;
    font-size: 0.8rem;
    border-radius: var(--fd-radius-sm);
    border: 1px solid var(--fd-border);
    background: var(--fd-bg);
    color: var(--fd-text);
}

/* === Benutzer-Karten Layout === */
.benutzer-suche {
    width: 220px;
}

.benutzer-karten-liste {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(420px, 1fr));
    gap: 1rem;
    margin-top: 1rem;
}

.benutzer-karte {
    background: var(--fd-bg-alt);
    border: 1px solid var(--fd-border);
    border-radius: var(--fd-radius);
    overflow: hidden;
    transition: box-shadow 0.2s ease;
}

.benutzer-karte:hover {
    box-shadow: 0 4px 12px var(--fd-shadow-hover);
}

.benutzer-karte-superuser {
    border-color: var(--fd-primary);
    box-shadow: 0 0 0 1px var(--fd-primary);
}

.benutzer-karte-header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    background: var(--fd-bg);
    border-bottom: 1px solid var(--fd-border);
}

.modulgruppe-edit-form {
    display: flex;
    gap: 0.4rem;
    align-items: center;
}

.benutzer-karte-edit {
    grid-column: 1 / -1;
}

.benutzer-karte-avatar {
    width: 36px;
    height: 36px;
    border-radius: var(--fd-radius-round);
    background: var(--fd-primary);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.9rem;
    flex-shrink: 0;
    overflow: hidden;
}

.benutzer-karte-info {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-width: 0;
}

.benutzer-karte-name {
    font-weight: 600;
    font-size: 0.9rem;
    color: var(--fd-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.benutzer-karte-user {
    font-size: 0.75rem;
    color: var(--fd-text-tertiary);
}

/* ============================================================
   Benutzerverwaltung v3.2 (Zeilen-Layout nach Prototyp)
   ============================================================ */
.bv-liste { display: flex; flex-direction: column; gap: 0.5rem; margin-top: 1rem; }

.bv-section-label {
    font-size: 0.6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em;
    color: var(--fd-text-tertiary); padding: 0.75rem 0 0.375rem; border-bottom: 1px solid var(--fd-border); margin-bottom: 0.25rem;
}

.bv-zeile {
    background: var(--fd-bg-alt); border: 1px solid var(--fd-border); border-radius: var(--fd-radius);
    padding: 0.875rem 1.125rem; display: flex; align-items: flex-start; gap: 1rem; transition: all 0.2s;
}
.bv-zeile:hover { border-color: var(--fd-primary-container); background: var(--fd-surface-hover, var(--fd-bg-alt)); }
.bv-zeile-superuser { border-left: 3px solid var(--fd-purple, #a78bfa); }

.bv-avatar { flex-shrink: 0; }
.bv-avatar-upload { position: relative; cursor: pointer; }
.bv-avatar-overlay {
    position: absolute; inset: 0; border-radius: 50%; background: rgba(0,0,0,0.4);
    display: flex; align-items: center; justify-content: center;
    font-size: 1rem; opacity: 0; transition: opacity 0.2s; pointer-events: none;
}
.bv-avatar-upload:hover .bv-avatar-overlay { opacity: 1; }
.bv-info { flex: 1; min-width: 0; }

.bv-kopf { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.25rem; flex-wrap: wrap; }
.bv-name { font-weight: 600; font-size: 0.9375rem; }
.bv-user { font-family: var(--fd-font-mono, monospace); font-size: 0.75rem; color: var(--fd-text-tertiary); }
.bv-rolle { font-size: 0.8125rem; color: var(--fd-text-secondary); margin-bottom: 0.375rem; }

.bv-superuser-badge {
    display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.125rem 0.5rem;
    border-radius: 6px; background: var(--fd-accent-soft);
    border: 1px solid var(--fd-primary); color: var(--fd-primary); font-size: 0.6875rem; font-weight: 600;
}

.bv-gruppen-bereich { display: flex; align-items: center; gap: 0.375rem; flex-wrap: wrap; margin-top: 0.25rem; }

.bv-gruppe-chip {
    display: inline-flex; align-items: center; gap: 0.375rem; padding: 0.25rem 0.625rem 0.25rem 0.5rem;
    border-radius: 6px; font-size: 0.75rem; font-weight: 500; border: 1px solid var(--fd-border);
    background: var(--fd-bg-elevated, var(--fd-bg-alt)); color: var(--fd-text); transition: all 0.2s;
}
.bv-gruppe-chip:hover { border-color: var(--fd-primary-container); }
.bv-chip-icon { font-size: 0.8125rem; }
.bv-chip-remove {
    width: 16px; height: 16px; border-radius: 50%; border: none; background: transparent;
    color: var(--fd-text-tertiary); font-size: 0.625rem; cursor: pointer; display: flex;
    align-items: center; justify-content: center; transition: all 0.15s; margin-left: 0.125rem;
}
.bv-chip-remove:hover { background: var(--fd-danger-soft); color: var(--fd-danger); }

.bv-add-gruppe {
    padding: 0.25rem 0.5rem; border-radius: 6px; border: 1.5px dashed var(--fd-border);
    background: transparent; color: var(--fd-text-tertiary); font-size: 0.75rem; font-family: var(--fd-font);
    cursor: pointer; transition: all 0.2s;
}
.bv-add-gruppe:hover { border-color: var(--fd-primary); color: var(--fd-primary); }
.bv-add-gruppe:focus { border-color: var(--fd-primary); outline: none; }

.bv-stat-pill {
    padding: 0.375rem 0.75rem; border-radius: 6px; font-size: 0.75rem; font-weight: 600;
    font-family: var(--fd-font-mono, monospace);
}
.bv-stat-total { background: var(--fd-accent-soft, rgba(108,140,255,0.12)); color: var(--fd-primary); }
.bv-stat-super { background: rgba(167,139,250,0.12); color: var(--fd-purple, #a78bfa); }

.bv-aktionen { display: flex; gap: 0.25rem; flex-shrink: 0; opacity: 0; transition: opacity 0.15s; }
.bv-zeile:hover .bv-aktionen { opacity: 1; }

/* Effektiv-Button + Panel */
.bv-effektiv-btn {
    padding: 0.25rem 0.5rem; border-radius: 6px; border: 1px solid var(--fd-border);
    background: transparent; color: var(--fd-text-tertiary); font-size: 0.75rem; font-family: var(--fd-font);
    cursor: pointer; transition: all 0.2s;
}
.bv-effektiv-btn:hover { border-color: var(--fd-primary); color: var(--fd-primary); background: var(--fd-accent-soft); }

.bv-effektiv-panel {
    margin-top: 0.625rem; padding: 0.625rem 0.75rem;
    background: var(--fd-bg); border: 1px solid var(--fd-border); border-radius: var(--fd-radius-sm);
}
.bv-effektiv-titel {
    font-size: 0.6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em;
    color: var(--fd-text-tertiary); margin-bottom: 0.375rem;
}
.bv-effektiv-modul { display: flex; align-items: center; gap: 0.5rem; padding: 0.25rem 0; font-size: 0.8125rem; }
.bv-em-name { flex: 1; color: var(--fd-text-secondary); }
.bv-em-stufe {
    font-family: var(--fd-font-mono, monospace); font-size: 0.6875rem; font-weight: 600;
    padding: 0.0625rem 0.375rem; border-radius: 4px;
}
.bv-stufe-vollstaendig { background: var(--fd-accent-soft); color: var(--fd-primary); }
.bv-stufe-loeschen { background: var(--fd-warning-soft); color: var(--fd-warning); }
.bv-stufe-aendern { background: var(--fd-success-soft); color: var(--fd-success); }
.bv-stufe-lesen { background: var(--fd-accent-soft); color: var(--fd-primary); }
.bv-stufe-keine { color: var(--fd-text-tertiary); }

/* Checkbox-Chips im Neuer-Benutzer-Modal */
.bv-checkbox-chip {
    display: flex; align-items: center; gap: 0.375rem; padding: 0.375rem 0.625rem;
    border: 1px solid var(--fd-border); border-radius: 6px; font-size: 0.8125rem; cursor: pointer;
    transition: all 0.15s;
}
.bv-checkbox-chip:hover { border-color: var(--fd-primary-container); }
.bv-checkbox-chip-aktiv { border-color: var(--fd-primary); background: var(--fd-accent-soft); }

.benutzer-karte-superuser {
    flex-shrink: 0;
}

.benutzer-karte-module {
    padding: 0.5rem 0;
}

.benutzer-modul-zeile {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.35rem 1rem;
    gap: 0.75rem;
}

.benutzer-modul-zeile:hover {
    background: var(--fd-bg-muted);
}

.benutzer-modul-label {
    font-size: 0.8rem;
    color: var(--fd-text-secondary);
    white-space: nowrap;
}

.benutzer-modul-zeile select {
    width: 130px;
    padding: 0.2rem 0.4rem;
    font-size: 0.8rem;
    border-radius: var(--fd-radius-sm);
    border: 1px solid var(--fd-border);
    background: var(--fd-bg);
    color: var(--fd-text);
}

.badge-admin {
    display: inline-block;
    padding: 0.15rem 0.5rem;
    background: linear-gradient(135deg, var(--fd-primary), var(--fd-primary-hover));
    color: white;
    border-radius: var(--fd-radius-sm);
    font-size: 0.7rem;
    font-weight: 600;
    text-align: center;
}

.badge-anwender {
    display: inline-block;
    padding: 0.15rem 0.5rem;
    background: var(--fd-bg-muted);
    color: var(--fd-text-secondary);
    border-radius: var(--fd-radius-sm);
    font-size: 0.7rem;
    font-weight: 600;
    text-align: center;
}

/* === Rollen Modul-Konfiguration === */
.rolle-modul-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    align-items: center;
}

.rolle-modul-badge {
    font-size: 0.9rem;
}

.rolle-berechtigung-badge {
    margin-left: 0.25rem;
}

.rolle-module-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 0.5rem;
}

.rolle-modul-checkbox {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--fd-border);
    border-radius: var(--fd-radius-sm);
    cursor: pointer;
    font-size: 0.85rem;
    color: var(--fd-text-secondary);
    transition: all 0.2s ease;
    background: var(--fd-bg-alt);
}

.rolle-modul-checkbox:hover {
    border-color: var(--fd-primary);
    color: var(--fd-text);
}

.rolle-modul-aktiv {
    border-color: var(--fd-primary);
    background: var(--fd-accent-soft);
    color: var(--fd-primary);
    font-weight: 600;
}

.rolle-modul-checkbox input[type="checkbox"] {
    accent-color: var(--fd-primary);
}

.rolle-modul-icon {
    font-size: 1.1rem;
}

.text-muted {
    color: var(--fd-text-tertiary);
    font-size: 0.8rem;
}

/* === WorkFlow: Zeiterfassung === */
.zeit-container {
    padding: 1.5rem;
    width: 100%;
}

.zeit-header {
    margin-bottom: 1.5rem;
}

.zeit-header h2 {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--fd-text);
}

/* Timer */
.timer-form {
    margin-top: 0.5rem;
}

.timer-aktiv {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem;
    background: var(--fd-success-soft);
    border: 1px solid var(--fd-success-soft);
    border-radius: var(--fd-radius);
}

.timer-display {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.timer-zeit {
    font-size: 2rem;
    font-weight: 700;
    font-family: var(--fd-font-mono);
    color: var(--fd-success);
}

.timer-pausiert {
    color: var(--fd-warning) !important;
    animation: timer-blink 1s ease-in-out infinite;
}

@keyframes timer-blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.4; }
}

.timer-pause-badge {
    display: inline-block;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--fd-warning);
    background: var(--fd-warning-soft);
    border: 1px solid var(--fd-warning-soft);
    border-radius: var(--fd-radius-sm);
    padding: 0.15rem 0.5rem;
}

.timer-pause-info {
    font-size: 0.8rem;
    color: var(--fd-text-secondary);
    font-family: var(--fd-font-mono);
}

.timer-projekt {
    font-size: 0.85rem;
    color: var(--fd-text-secondary);
}

.hinweis-box {
    margin-top: 0.5rem;
    padding: 0.6rem 0.75rem;
    border: 1px dashed var(--fd-border);
    border-radius: var(--fd-radius-sm);
    background: var(--fd-bg-muted);
    font-size: 0.8rem;
    color: var(--fd-text-secondary);
}

.btn-danger {
    padding: 0.5rem 1.5rem;
    background: var(--fd-danger);
    color: white;
    border: none;
    border-radius: var(--fd-radius-sm);
    cursor: pointer;
    font-weight: 600;
    transition: background 0.2s;
}

.btn-danger:hover {
    background: var(--fd-danger);
}

/* Buchungen-Liste */
.zeit-buchungen-liste {
    border: 1px solid var(--fd-border);
    border-radius: var(--fd-radius-sm);
    overflow: hidden;
}

.zeit-buchung-tag-header {
    display: flex;
    justify-content: space-between;
    padding: 0.5rem 1rem;
    background: var(--fd-bg-muted);
    font-size: var(--liste-header-font-size);
    font-weight: var(--liste-header-font-weight);
    color: var(--liste-header-color);
    text-transform: uppercase;
    letter-spacing: var(--liste-header-letter-spacing);
}

.zeit-tag-summe {
    font-weight: 700;
    color: var(--fd-text);
}

.zeit-buchung-row {
    display: grid;
    grid-template-columns: 100px 60px 1fr 1fr 1.5fr 90px 60px;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    align-items: center;
    border-bottom: 1px solid var(--fd-border);
    font-size: 0.85rem;
    color: var(--fd-text);
}

.zeit-buchung-row:last-child {
    border-bottom: none;
}

.zeit-buchung-row:hover {
    background: var(--fd-bg-alt);
}

.zeit-buchung-zeit {
    font-family: var(--fd-font-mono);
    font-size: 0.8rem;
    color: var(--fd-text-secondary);
}

.zeit-buchung-dauer {
    font-weight: 600;
    font-family: var(--fd-font-mono);
    text-align: center;
}

.zeit-buchung-projekt {
    font-weight: 600;
    color: var(--fd-primary);
}

.zeit-buchung-taetigkeit {
    color: var(--fd-text-secondary);
    font-size: 0.8rem;
}

.zeit-buchung-notiz {
    color: var(--fd-text-tertiary);
    font-size: 0.8rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.zeit-buchung-person {
    font-weight: 600;
}

.zeit-buchung-status {
    text-align: center;
}

.zeit-buchung-actions {
    display: flex;
    gap: 0.25rem;
    justify-content: flex-end;
}

.zeit-summe {
    font-size: 0.9rem;
    color: var(--fd-text-secondary);
}

.zeit-summe strong {
    color: var(--fd-text);
    font-family: var(--fd-font-mono);
}

.status-badge.status-entwurf {
    background: var(--fd-warning-soft);
    color: var(--fd-warning);
}

.status-badge.status-eingereicht {
    background: var(--fd-info-soft);
    color: var(--fd-info);
}

/* Stunden-ÃƒÆ’Ã…â€œbersicht */
.stunden-nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.stunden-ansicht-btns {
    display: flex;
    gap: 0.25rem;
}

.stunden-zeitraum {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.stunden-zeitraum-label {
    min-width: 180px;
    text-align: center;
    font-size: 0.95rem;
}

.stunden-soll-ist {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
}

.soll-ist-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.25rem;
    padding: 1rem;
    border-radius: var(--fd-radius-sm);
    background: var(--fd-bg-alt);
}

.soll-ist-label {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--fd-text-tertiary);
}

.soll-ist-wert {
    font-size: 1.5rem;
    font-weight: 700;
    font-family: var(--fd-font-mono);
    color: var(--fd-text);
}

.soll-ist-gruen { color: var(--fd-success) !important; }
.soll-ist-rot { color: var(--fd-danger) !important; }

.stunden-export-btns {
    display: flex;
    gap: 0.5rem;
}

/* Monatsansicht */
.monat-scroll {
    overflow-x: auto;
    margin-top: 1rem;
    border: 1px solid var(--fd-border);
    border-radius: var(--fd-radius-sm);
}

/* Monat-Navigation + Export-Gruppe (vertikal gestapelt, rechts ausgerichtet) */
.monat-nav-export-gruppe {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.4rem;
    margin-left: auto;
}

.monat-export-icons {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.monat-nav {
    display: flex;
    align-items: center;
    gap: 0;
    border: 1px solid var(--fd-border);
    border-radius: var(--fd-radius-sm);
    overflow: hidden;
    height: 32px;
}

.monat-nav-pfeil {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 100%;
    background: var(--fd-surface);
    border: none;
    color: var(--fd-text-secondary);
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}

.monat-nav-pfeil:hover {
    background: var(--fd-primary);
    color: var(--fd-surface);
}

.monat-nav-heute {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 0.75rem;
    height: 100%;
    flex: 1;
    background: var(--fd-surface);
    border: none;
    border-left: 1px solid var(--fd-border);
    border-right: 1px solid var(--fd-border);
    color: var(--fd-text);
    font-weight: 600;
    font-size: 0.8rem;
    cursor: pointer;
    white-space: nowrap;
    min-width: 130px;
    transition: background 0.15s ease, color 0.15s ease;
}

.monat-picker-hidden {
    position: absolute;
    width: 0;
    height: 0;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
    border: none;
    padding: 0;
    margin: 0;
}

.export-divider {
    width: 1px;
    height: 20px;
    background: var(--fd-border);
    align-self: center;
}

.monat-nav-heute:hover {
    background: var(--fd-hover);
}

.monat-nav-heute-aktiv {
    color: var(--fd-primary);
}

.monat-grid {
    min-width: 850px;
}

.monat-zeile {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.65rem 0.75rem;
    border-bottom: 1px solid var(--fd-border);
    background: var(--fd-bg);
}

.monat-col {
    flex-shrink: 0;
}

.monat-kopf {
    font-weight: 600;
    background: var(--fd-bg-alt);
    position: sticky;
    top: 0;
    z-index: 1;
}

.monat-kopf-label {
    font-size: 0.75rem;
    color: var(--fd-text-secondary);
}

.monat-zeile:last-child {
    border-bottom: none;
}

.monat-zeile.wochenende {
    background: var(--fd-wochenende);
}

.monat-zeile.feiertag-global {
    background: var(--fd-feiertag-global);
}

.monat-zeile.feiertag-regional {
    background: var(--fd-feiertag-regional);
}

.monat-datum {
    width: 95px;
    font-size: 0.8rem;
    color: var(--fd-text-secondary);
    flex-shrink: 0;
}

.monat-col-zeit {
    width: 48px;
}

.monat-input-zeit {
    width: 48px;
    text-align: center;
    font-size: 0.8rem;
    font-family: var(--fd-font-mono);
    padding: 0.2rem 0.1rem;
    letter-spacing: 0.02em;
    border: 1px solid var(--fd-border);
    border-radius: var(--fd-radius-sm);
}

.monat-col-pause {
    width: 42px;
}

.monat-col-taetigkeit {
    width: 120px;
}

.monat-input-taetigkeit {
    width: 120px;
    font-size: 0.75rem;
    padding: 0.2rem 0.2rem;
    border: 1px solid var(--fd-border);
    border-radius: var(--fd-radius-sm);
    background: var(--fd-bg);
    color: var(--fd-text);
}

.monat-input-pause {
    width: 42px;
    text-align: center;
    font-size: 0.8rem;
    padding: 0.2rem 0.1rem;
    border: 1px solid var(--fd-border);
    border-radius: var(--fd-radius-sm);
    -moz-appearance: textfield;
}

.monat-input-pause::-webkit-inner-spin-button,
.monat-input-pause::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.monat-col-beschreibung {
    flex: 1 1 auto;
    min-width: 80px;
    max-width: calc(100% - 2rem);
}

.monat-input-text {
    width: 100%;
    font-size: 0.8rem;
    padding: 0.2rem 0.3rem;
}

.monat-beschreibung-wrapper {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 0.2rem;
}

.monat-beschreibung-wrapper input,
.monat-beschreibung-wrapper textarea {
    flex: 1;
}

.monat-beschreibung-expanded {
    display: flex;
    align-items: flex-start;
    gap: 0.2rem;
    width: 100%;
}

.monat-beschreibung-expanded textarea {
    width: 100%;
    resize: vertical;
    font-size: 0.8rem;
    padding: 0.2rem 0.3rem;
    line-height: 1.4;
}

.monat-beschreibung-toggle {
    flex-shrink: 0;
    font-size: 0.6rem;
    padding: 0.1rem 0.2rem;
    opacity: 0.5;
    cursor: pointer;
    line-height: 1;
}

.monat-beschreibung-toggle:hover {
    opacity: 1;
}

.monat-col-summe {
    width: 58px;
}

.monat-summe {
    font-weight: 600;
    font-family: var(--fd-font-mono);
    font-size: 0.8rem;
    color: var(--fd-text);
    text-align: right;
}

.monat-summe.monat-summe-rot {
    color: var(--fd-danger);
}

.monat-col-arbeitsort {
    width: 50px;
    text-align: center;
    justify-content: center;
}

.monat-col-arbeitsort select {
    text-align: center;
    padding: 0.2rem;
}

.monat-col-aktion {
    width: 160px;
    flex-shrink: 0;
}

.monat-aktionen {
    display: flex;
    gap: 0;
}

.monat-aktionen .btn-icon {
    padding: 0.15rem 0.25rem;
    border: none;
    background: transparent;
    cursor: pointer;
    font-size: 0.8rem;
    border-radius: var(--fd-radius-sm);
    transition: background 0.15s;
    line-height: 1;
}

.monat-aktionen .btn-icon:hover {
    background: var(--fd-bg-muted);
}

.btn-toggle-kette {
    position: relative;
    border: 1.5px solid var(--fd-border) !important;
    border-radius: var(--fd-radius-sm);
    background: var(--fd-surface-alt, rgba(255,255,255,0.05));
    opacity: 0.3;
    transition: all 0.15s;
    font-size: 0.75rem !important;
}
.btn-toggle-kette.aktiv {
    opacity: 1;
    color: #fff;
    background: #3b82f6;
    border-color: #2563eb !important;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.3);
}
.btn-toggle-kette:not(.aktiv) {
    color: var(--fd-text-tertiary);
    box-shadow: 0 1px 2px rgba(0,0,0,0.15);
}
.btn-toggle-kette:not(.aktiv):hover {
    opacity: 0.6;
    border-color: var(--fd-text-tertiary) !important;
}

.monat-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 1rem;
    gap: 1rem;
}

.monat-stats {
    display: flex;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.monat-stat {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.monat-stat-label {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--fd-text-tertiary);
    letter-spacing: 0.04em;
}

.monat-stat-wert {
    font-size: 0.95rem;
    font-weight: 700;
    font-family: var(--fd-font-mono);
    color: var(--fd-text);
}

.monat-stat-negativ {
    color: var(--fd-danger) !important;
}

/* === Monatsansicht: Zusatzzeile pro Tag === */

.monat-zeile-zusatz {
    background: var(--fd-bg-alt) !important;
    border-top: none !important;
}

.monat-zeile-zusatz .monat-datum {
    opacity: 0;
    pointer-events: none;
}

.monat-datum-leer {
    display: block;
    width: 95px;
}

/* Tagessummen-Zeile */
/* ZeitÃƒÆ’Ã‚Â¼berschneidung & gesperrte Zeilen */
.zeile-gesperrt {
    opacity: 0.75;
    background: var(--fd-accent-soft) !important;
    border-left: 3px solid var(--fd-primary);
}

.zeile-genehmigt {
    opacity: 0.75;
    background: var(--fd-success-soft) !important;
    border-left: 3px solid var(--fd-success);
}

.zeile-entwurf {
    border-left: 3px solid var(--fd-warning);
}

.zeile-abgelehnt {
    background: var(--fd-danger-soft) !important;
    border-left: 3px solid var(--fd-danger);
    opacity: 0.9;
}

.zeile-fehler {
    background: var(--fd-warning-soft) !important;
    border-left: 3px solid var(--fd-warning);
}

.input-fehler {
    border-color: var(--fd-warning) !important;
    background: var(--fd-warning-soft) !important;
    color: var(--fd-warning) !important;
}

.dark-mode .input-fehler {
    color: var(--fd-warning) !important;
}

/* Roter Rahmen fÃƒÆ’Ã‚Â¼r Validierungsfehler (E-Mail etc.) */
.input-ungueltig {
    border-color: var(--fd-danger) !important;
    box-shadow: 0 0 0 1px var(--fd-danger-soft);
}
.input-ungueltig:focus {
    border-color: var(--fd-danger) !important;
    box-shadow: 0 0 0 2px rgba(var(--fd-danger), 0.25);
}

.zeile-ueberschneidung {
    background: var(--fd-danger-soft) !important;
    border-left: 3px solid var(--fd-danger);
}

.input-ueberschneidung {
    border-color: var(--fd-danger) !important;
    background: var(--fd-danger-soft) !important;
    color: var(--fd-danger) !important;
}

.tagsumme-pausenwarnung {
    background: var(--fd-danger-soft);
    border-left: 3px solid var(--fd-danger);
}

.monat-zeile-tagsumme {
    background: var(--fd-bg-muted) !important;
    border-top: 1px dashed var(--fd-border) !important;
}

.monat-tagsumme-label {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--fd-text-secondary);
    font-style: italic;
}

.monat-tagsumme-wert {
    font-weight: 700;
    color: var(--fd-primary) !important;
}

/* ÃƒÂ¢Ã…Â¾Ã¢â‚¬Â¢ Button in Aktionsspalte */
.monat-btn-add {
    color: var(--fd-success);
    font-size: 0.85rem;
}

.monat-btn-add:hover {
    background: var(--fd-success-soft) !important;
}

@media (max-width: 768px) {
    .zeit-buchung-row {
        grid-template-columns: 80px 50px 1fr 60px 40px;
    }
    .zeit-buchung-taetigkeit,
    .zeit-buchung-notiz {
        display: none;
    }
    .stunden-soll-ist {
        grid-template-columns: 1fr;
    }
}

/* === TimeFlow: Urlaubsplaner === */
.urlaub-container {
    padding: 1.5rem;
}

.urlaub-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.5rem;
}

.urlaub-header h2 {
    margin: 0;
}

.kontingent-karte {
    background: var(--fd-bg-alt);
    border-radius: var(--fd-radius);
    padding: 1.25rem 1.5rem;
    margin-bottom: 1.5rem;
    border: 1px solid var(--fd-border);
}

.kontingent-karte h3 {
    margin: 0 0 1rem 0;
    font-size: 1rem;
    color: var(--fd-text-secondary);
}

.kontingent-zahlen {
    display: flex;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.kz-item {
    text-align: center;
}

.kz-zahl {
    display: block;
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--fd-text);
}

.kz-highlight {
    color: var(--fd-success) !important;
}

.kz-label {
    font-size: 0.75rem;
    color: var(--fd-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.kz-minus .kz-zahl { color: var(--fd-danger); }
.kz-warn .kz-zahl { color: var(--fd-warning); }
.kz-ok .kz-zahl { color: var(--fd-success); }

.abwesenheiten-section {
    margin-bottom: 1.5rem;
}

.abwesenheiten-section h3 {
    font-size: 1rem;
    margin-bottom: 0.75rem;
    color: var(--fd-text-secondary);
}

.abwesenheit-zeile {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.6rem 1rem;
    background: var(--fd-bg-alt);
    border-radius: var(--fd-radius-sm);
    margin-bottom: 0.4rem;
    font-size: 0.9rem;
    flex-wrap: wrap;
}

.aw-icon { font-size: 1.1rem; }
.aw-zeitraum { font-weight: 500; min-width: 180px; }
.aw-tage { color: var(--fd-text-secondary); min-width: 60px; }
.aw-art { color: var(--fd-text-secondary); }
.aw-person { font-weight: 600; min-width: 150px; }
.aw-grund { cursor: help; }

.aw-status { font-size: 0.8rem; min-width: 110px; }
.status-ok { color: var(--fd-success); }
.status-err { color: var(--fd-danger); }
.status-cancel { color: var(--fd-text-tertiary); }
.status-wait { color: var(--fd-warning); }

.leer-text {
    color: var(--fd-text-secondary);
    font-style: italic;
    padding: 0.5rem 0;
}

/* Genehmigungen */
.badge-count {
    background: var(--fd-warning);
    color: white;
    padding: 0.25rem 0.75rem;
    border-radius: var(--fd-radius);
    font-size: 0.8rem;
    font-weight: 600;
}

.genehmigungs-karte {
    background: var(--fd-bg-alt);
    border-radius: var(--fd-radius-sm);
    padding: 1rem;
    margin-bottom: 0.75rem;
    border: 1px solid var(--fd-border);
}

.gk-kopf {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

.gk-icon { font-size: 1.2rem; }
.gk-person { font-size: 1rem; }
.gk-rolle { font-size: 0.8rem; color: var(--fd-text-secondary); }

.gk-details {
    display: flex;
    gap: 0.5rem;
    font-size: 0.9rem;
    margin-bottom: 0.25rem;
}

.gk-meta {
    font-size: 0.8rem;
    color: var(--fd-text-secondary);
    margin-bottom: 0.75rem;
}

.gk-bemerkung {
    margin-left: 0.5rem;
    font-style: italic;
}

.gk-aktionen {
    display: flex;
    gap: 0.5rem;
}

.filter-leiste {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.filter-btn {
    padding: 0.3rem 0.75rem;
    border: 1px solid var(--fd-border);
    border-radius: var(--fd-radius-sm);
    background: var(--fd-bg);
    color: var(--fd-text-secondary);
    cursor: pointer;
    font-size: 0.8rem;
}

.filter-btn.aktiv {
    background: var(--fd-primary);
    color: white;
    border-color: var(--fd-primary);
}

.btn-success-sm {
    background: var(--fd-success);
    color: white;
    border: none;
    padding: 0.3rem 0.75rem;
    border-radius: var(--fd-radius-sm);
    cursor: pointer;
    font-size: 0.8rem;
}

.btn-danger-sm, .btn-danger {
    background: var(--fd-danger);
    color: white;
    border: none;
    padding: 0.3rem 0.75rem;
    border-radius: var(--fd-radius-sm);
    cursor: pointer;
    font-size: 0.8rem;
}

/* Antrags-Modal */
.antrag-info {
    display: flex;
    gap: 1.5rem;
    padding: 0.75rem 1rem;
    background: var(--fd-bg-muted);
    border-radius: var(--fd-radius-sm);
    margin: 0.75rem 0;
    font-size: 0.9rem;
}

.form-row {
    display: flex;
    gap: 1rem;
}

.form-row .form-group {
    flex: 1;
}

.team-zeile {
    opacity: 0.85;
}

/* Modal */
.modal-overlay {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0,0,0,0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

.modal-card {
    background: var(--fd-bg);
    border-radius: var(--fd-radius);
    width: 450px;
    max-width: 90vw;
    box-shadow: var(--fd-elevation-3);
}

.modal-lg {
    width: 550px;
}

.modal-header {
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid var(--fd-border);
}

.modal-header h3 {
    margin: 0;
    font-size: 1.1rem;
}

.modal-body {
    padding: 1.25rem 1.5rem;
}

.modal-footer {
    padding: 1rem 1.5rem;
    border-top: 1px solid var(--fd-border);
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
}

.btn-edit-sm {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.2rem;
}

/* ============================================================
   ContactFlow ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Å“ Kunden & Kontakte
   ============================================================ */

.kunden-container {
    max-width: 1000px;
}

.kunden-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.25rem;
}

.kunden-header h2 {
    margin: 0;
    font-size: 1.4rem;
}

.kunden-toolbar {
    display: flex;
    gap: 0.75rem;
    margin-bottom: 1rem;
    align-items: center;
    flex-wrap: wrap;
}

.filter-select {
    max-width: 220px;
}

.filter-toggle {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    cursor: pointer;
    font-size: 0.9rem;
    color: var(--fd-text-secondary);
    white-space: nowrap;
}

/* Kunden-Karte */
.kunden-liste {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.kunden-karte {
    background: var(--fd-surface);
    border: 1px solid var(--fd-border);
    border-radius: var(--fd-radius-sm);
    padding: 0.9rem 1rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    transition: box-shadow 0.15s;
}

.kunden-karte:hover {
    box-shadow: var(--fd-shadow);
}

.kunden-karte.inaktiv {
    opacity: 0.6;
}

.kunden-karte-main {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex: 1;
    cursor: pointer;
}

.kunden-karte-actions {
    display: flex;
    gap: 0.3rem;
    opacity: 0;
    transition: opacity 0.15s;
}

.kunden-karte:hover .kunden-karte-actions {
    opacity: 1;
}

/* Kunden-Avatar */
.kunde-avatar {
    width: 44px;
    height: 44px;
    border-radius: var(--fd-radius-sm);
    background: var(--fd-primary);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.85rem;
    flex-shrink: 0;
}

.kunde-info {
    flex: 1;
    min-width: 0;
}

.kunde-name {
    font-weight: 600;
    font-size: 0.95rem;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
    margin-bottom: 0.2rem;
}

.kunde-kurzname {
    font-weight: 400;
    color: var(--fd-text-secondary);
    font-size: 0.85rem;
}

.kunde-meta {
    display: flex;
    gap: 0.75rem;
    font-size: 0.8rem;
    color: var(--fd-text-secondary);
    flex-wrap: wrap;
    margin-bottom: 0.2rem;
}

.kunde-stats {
    display: flex;
    gap: 0.75rem;
    font-size: 0.8rem;
    color: var(--fd-text-secondary);
    flex-wrap: wrap;
}

/* Badges */
.badge {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.5rem;
    border-radius: var(--fd-radius-lg);
    font-size: 0.72rem;
    font-weight: 600;
}

.badge-haupt {
    background: var(--fd-warning-soft);
    color: var(--fd-warning);
}

.dark-mode .badge-haupt {
    background: var(--fd-warning-soft);
    color: var(--fd-warning);
}

.badge-inaktiv {
    background: var(--fd-bg-muted);
    color: var(--fd-text-secondary);
}

/* Ansprechpartner-Zeilen */
.ap-zeile {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--fd-border);
}

.ap-zeile:last-child {
    border-bottom: none;
}

.ap-zeile-liste {
    background: var(--fd-surface);
    border: 1px solid var(--fd-border);
    border-radius: var(--fd-radius-sm);
    padding: 0.75rem 1rem;
    margin-bottom: 0.5rem;
    transition: box-shadow 0.15s;
}

.ap-zeile-liste:hover {
    box-shadow: var(--fd-shadow);
}

.ap-avatar {
    width: 36px;
    height: 36px;
    border-radius: var(--fd-radius-round);
    background: var(--fd-primary);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.75rem;
    flex-shrink: 0;
}

.ap-avatar.avatar-inaktiv {
    background: var(--fd-bg-muted);
    color: var(--fd-text-secondary);
}

.ap-info {
    flex: 1;
    min-width: 0;
}

.ap-name {
    font-size: 0.9rem;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
    margin-bottom: 0.2rem;
}

.ap-anrede {
    color: var(--fd-text-secondary);
    font-size: 0.85rem;
}

.ap-meta {
    display: flex;
    gap: 0.75rem;
    font-size: 0.8rem;
    color: var(--fd-text-secondary);
    flex-wrap: wrap;
    align-items: center;
}

.ap-kunde {
    font-weight: 600;
    color: var(--fd-primary);
}

.ap-link {
    color: var(--fd-primary);
    text-decoration: none;
}

.ap-link:hover {
    text-decoration: underline;
}

.ap-actions {
    display: flex;
    gap: 0.3rem;
    opacity: 0;
    transition: opacity 0.15s;
}

.ap-zeile-liste:hover .ap-actions,
.ap-zeile:hover .ap-actions {
    opacity: 1;
}

/* Ansprechpartner-Bereich im Modal */
.ap-section {
    padding: 0.5rem 0;
}

.ap-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.75rem;
}

.ap-header h4 {
    margin: 0;
    font-size: 0.95rem;
}

/* Modal Tabs */
.modal-tabs {
    display: flex;
    gap: 0.3rem;
    margin-bottom: 1.25rem;
    border-bottom: 1px solid var(--fd-border);
    flex-wrap: wrap;
}

.modal-tab {
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    padding: 0.5rem 0.75rem;
    cursor: pointer;
    font-size: 0.85rem;
    color: var(--fd-text-secondary);
    transition: all 0.15s;
    margin-bottom: -1px;
    white-space: nowrap;
}

.modal-tab:hover {
    color: var(--fd-text);
    background: var(--fd-bg-alt);
    border-radius: var(--fd-radius-sm) var(--fd-radius-sm) 0 0;
}

.modal-tab.active {
    color: var(--fd-primary);
    border-bottom-color: var(--fd-primary);
    font-weight: 600;
}

/* Form-Grid */
.form-grid-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
}

.form-span-2 {
    grid-column: span 2;
}

/* Modal-GrÃƒÆ’Ã‚Â¶ÃƒÆ’Ã…Â¸en */
.modal-large {
    max-width: 700px !important;
}

.modal-small {
    max-width: 420px !important;
}

/* Icon-Buttons */
.btn-icon {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.3rem;
    border-radius: var(--fd-radius-sm);
    font-size: 1rem;
    transition: background 0.15s;
}

.btn-icon:hover {
    background: var(--fd-bg-alt);
}

.btn-danger-icon:hover {
    background: var(--fd-danger-soft);
}

/* Export-Buttons (PDF, Excel, Drucken) */
.btn-icon-export {
    background: none;
    border: 1px solid var(--fd-border);
    cursor: default;
    padding: 0.35rem 0.5rem;
    border-radius: var(--fd-radius-sm);
    font-size: 1.2rem;
    line-height: 1;
    transition: all 0.15s;
    color: var(--fd-text-tertiary);
    opacity: 0.5;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.btn-icon-export.aktiv {
    opacity: 1;
    cursor: pointer;
    color: var(--fd-text-secondary);
}
.btn-icon-export.aktiv:hover {
    background: var(--fd-bg-alt);
    border-color: var(--fd-primary);
    color: var(--fd-primary);
}
.btn-icon-export:disabled {
    cursor: default;
    opacity: 0.3;
}

.dark-mode .btn-danger-icon:hover {
    background: var(--fd-danger-soft);
}

/* Kontakte-Tabelle */
.kontakte-tabelle {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* Loading / Empty State */
.loading-state {
    text-align: center;
    padding: 2rem;
    color: var(--fd-text-secondary);
}

.empty-state {
    text-align: center;
    padding: 3rem;
    color: var(--fd-text-secondary);
}

.empty-icon {
    font-size: 2.5rem;
    display: block;
    margin-bottom: 0.5rem;
}

.empty-hint {
    color: var(--fd-text-secondary);
    font-size: 0.85rem;
    padding: 1rem 0;
}

/* Danger Button */
.btn-danger {
    background: var(--fd-danger);
    color: white;
    border: none;
    border-radius: var(--fd-radius-sm);
    padding: 0.5rem 1rem;
    cursor: pointer;
    font-size: 0.9rem;
    font-weight: 500;
    transition: background 0.15s;
}

.btn-danger:hover {
    background: var(--fd-danger);
}

/* Responsive */
@media (max-width: 600px) {
    .form-grid-2 {
        grid-template-columns: 1fr;
    }
    .form-span-2 {
        grid-column: span 1;
    }
    .modal-tabs {
        gap: 0;
    }
    .modal-tab {
        font-size: 0.78rem;
        padding: 0.4rem 0.5rem;
    }
}

/* ============================================================
   Personen ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Å“ Karten-Layout
   ============================================================ */

.personen-karten-liste {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.person-karte {
    background: var(--fd-surface);
    border: 1px solid var(--fd-border);
    border-radius: var(--fd-radius);
    padding: 0.85rem 1rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    transition: box-shadow 0.15s;
}

.person-karte:hover {
    box-shadow: var(--fd-shadow);
}

.person-karte-inaktiv {
    opacity: 0.55;
}

.person-karte-avatar {
    position: relative;
    flex-shrink: 0;
    width: 48px;
    height: 48px;
}

.person-karte-status-dot {
    position: absolute;
    bottom: -1px;
    right: -1px;
    width: 12px;
    height: 12px;
    border-radius: var(--fd-radius-round);
    border: 2px solid var(--fd-surface);
}

.inaktiv-dot {
    background: var(--fd-text-tertiary);
}

.person-karte-body {
    flex: 1;
    min-width: 0;
}

.person-karte-kopf {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 0.25rem;
}

.person-karte-name {
    font-weight: 600;
    font-size: 0.95rem;
}

.person-karte-mnr {
    font-size: 0.78rem;
    font-family: var(--fd-font-mono);
    color: var(--fd-text-secondary);
    margin-left: 0.4rem;
}

.person-karte-meta {
    display: flex;
    gap: 0.75rem;
    font-size: 0.8rem;
    color: var(--fd-text-secondary);
    flex-wrap: wrap;
}

/* Personenkarte v3.2: Kontakt + Hinweise (nach Prototyp) */
.person-karte-kontakt {
    display: flex;
    gap: 0.75rem;
    font-size: 0.8125rem;
    color: var(--fd-text-secondary);
    flex-wrap: wrap;
    margin-bottom: 0.375rem;
}

.person-karte-hinweise {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    flex-wrap: wrap;
}

.pk-hinweis-sep {
    width: 1px;
    height: 16px;
    background: var(--fd-border);
    flex-shrink: 0;
}

.pk-login-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.1875rem 0.5rem;
    border-radius: 6px;
    font-size: 0.6875rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
}
.pk-login-badge:hover { filter: brightness(1.15); }

.pk-login-ok {
    background: var(--fd-success-soft);
    color: var(--fd-success);
    border: 1px solid var(--fd-success);
}
.pk-login-gesperrt {
    background: var(--fd-danger-soft);
    color: var(--fd-danger);
    border: 1px solid var(--fd-danger);
}
.pk-login-deaktiviert {
    background: var(--fd-warning-soft);
    color: var(--fd-warning);
    border: 1px solid var(--fd-warning);
}
.pk-login-kein {
    background: var(--fd-warning-soft);
    color: var(--fd-warning);
    border: 1px solid var(--fd-warning);
}

/* Personenkarte: Kompakte Status-Texte (kein Badge, nur Farbe) */
.pk-status-text {
    font-size: 0.7rem;
    font-weight: 500;
}
.pk-text-danger { color: var(--fd-danger); }
.pk-text-warning { color: var(--fd-warning); }
.pk-text-muted { color: var(--fd-text-tertiary); }
.pk-badge-kein-report {
    background: var(--fd-bg-muted);
    color: var(--fd-text-tertiary);
    border: 1px solid var(--fd-border);
}

.pk-superuser-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.125rem 0.5rem;
    border-radius: 6px;
    background: var(--fd-accent-soft);
    border: 1px solid var(--fd-primary);
    color: var(--fd-primary);
    font-size: 0.6875rem;
    font-weight: 600;
}

.pk-warn-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.1875rem 0.5rem;
    border-radius: 6px;
    font-size: 0.6875rem;
    font-weight: 500;
    color: var(--fd-warning, #f5a623);
    font-style: italic;
}

.pk-mg-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.1875rem 0.5rem;
    border-radius: 6px;
    font-size: 0.6875rem;
    font-weight: 500;
    border: 1px solid var(--fd-border);
    background: var(--fd-bg-elevated, var(--fd-bg-alt));
    color: var(--fd-text);
    cursor: pointer;
    transition: all 0.2s;
}
.pk-mg-chip:hover { border-color: var(--fd-primary-container); background: var(--fd-accent-soft); }
.pk-mg-icon { font-size: 0.75rem; }

.aktiv-dot {
    background: var(--fd-success, #34d399) !important;
}

.pk-tooltip-text {
    font-size: 0.6875rem;
    color: var(--fd-text-tertiary);
    font-style: italic;
    padding: 0.25rem 0 0;
}

/* Personenkarte: E-Mail-Links im Dark-Mode besser lesbar */
.person-karte-kontakt span {
    color: var(--fd-text-secondary);
}

/* Personenkarte: Info-Hint (wie im Prototyp) */
.pk-info-hint {
    display: flex;
    align-items: flex-start;
    gap: 0.625rem;
    margin-top: 1.5rem;
    padding: 0.875rem 1rem;
    background: var(--fd-accent-soft, rgba(108,140,255,0.12));
    border: 1px solid rgba(108,140,255,0.2);
    border-radius: var(--fd-radius-sm);
    font-size: 0.8125rem;
    color: var(--fd-text-secondary);
    line-height: 1.5;
}

.person-karte-aktionen {
    display: flex;
    gap: 0.25rem;
    opacity: 0;
    transition: opacity 0.15s;
    flex-shrink: 0;
}

.person-karte:hover .person-karte-aktionen {
    opacity: 1;
}

/* ============================================================
   Person Modal ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Å“ neuer Kopf
   ============================================================ */

.person-modal-kopf {
    display: flex;
    align-items: center;
    gap: 0.85rem;
}

.person-modal-kopf h2 {
    margin: 0 0 0.2rem 0;
    font-size: 1.1rem;
}

.person-modal-body {
    padding: 0 !important;
    display: flex;
    flex-direction: column;
    flex: 1;
    overflow: hidden;
}

/* ============================================================
   Accordion
   ============================================================ */

.akkordeon-sektion {
    border-bottom: 1px solid var(--fd-border);
}

.akkordeon-sektion:last-child {
    border-bottom: none;
}

.akkordeon-kopf {
    width: 100%;
    background: none;
    border: none;
    padding: 0.85rem 1.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--fd-text);
    text-align: left;
    transition: background 0.12s;
}

.akkordeon-kopf:hover {
    background: var(--fd-bg-alt);
}

.akkordeon-kopf.akkordeon-offen {
    color: var(--fd-primary);
    background: var(--fd-bg-alt);
}

.akkordeon-chevron {
    font-size: 0.85rem;
    color: var(--fd-text-secondary);
    transition: transform 0.15s;
}

.akkordeon-inhalt {
    padding: 0.5rem 1.5rem 1.25rem;
}

/* ============================================================
   Responsive
   ============================================================ */

@media (max-width: 600px) {
    .person-karte {
        flex-wrap: wrap;
    }
    .person-karte-aktionen {
        opacity: 1;
    }
    .person-karte-kopf {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* === GeschÃƒÆ’Ã‚Â¤ftspartner Typ-Badges === */
.badge-kunde    { background: var(--fd-info-soft); color: var(--fd-info); }
.badge-lieferant { background: var(--fd-warning-soft); color: var(--fd-warning); }
.badge-intern   { background: var(--fd-bg-alt); color: var(--fd-text); }
.dark-mode .badge-kunde    { background: var(--fd-info-soft); color: var(--fd-info); }
.dark-mode .badge-lieferant { background: var(--fd-warning-soft); color: var(--fd-warning); }
.dark-mode .badge-intern   { background: var(--fd-bg-muted); color: var(--fd-text-secondary); }

/* Subunternehmer */
.gp-avatar-subunternehmer { background: linear-gradient(135deg, #0ea5e9, #06b6d4); }
.badge-subunternehmer { background: var(--fd-accent-soft); color: var(--fd-primary); }
.dark-mode .badge-subunternehmer { background: var(--fd-accent-soft); color: var(--fd-primary); }

/* === Typ-Filter Dropdown in Toolbar === */
.kunden-toolbar .filter-select {
    width: auto;
    min-width: 140px;
}

/* ============================================================
   GeschÃƒÆ’Ã‚Â¤ftspartner ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Å“ Layout
   ============================================================ */

.gp-container { padding: 1.5rem; width: 100%; }

.gp-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.25rem;
}

.gp-header h2 { margin: 0; font-size: 1.4rem; }

.gp-toolbar {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    margin-bottom: 1.25rem;
    flex-wrap: wrap;
}

.gp-toolbar .search-input {
    flex: 1; min-width: 200px;
    padding: 0.5rem 0.75rem;
    border: 1.5px solid var(--fd-input-border);
    border-radius: var(--fd-radius-sm);
    background: var(--fd-input-bg);
    color: var(--fd-text);
    font-size: 0.85rem;
    font-family: var(--fd-font);
    outline: none;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.gp-toolbar .search-input::placeholder { color: var(--fd-text-tertiary); }
.gp-toolbar .search-input:focus {
    border-color: var(--fd-primary);
    box-shadow: var(--fd-focus-ring);
}
.gp-toolbar .filter-select { width: auto; min-width: 150px; }

/* ============================================================
   GeschÃƒÆ’Ã‚Â¤ftspartner ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Å“ Karten
   ============================================================ */

.gp-liste {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.gp-karte {
    background: var(--fd-surface);
    border: 1px solid var(--fd-border);
    border-radius: var(--fd-radius);
    padding: 0.85rem 1rem;
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    transition: box-shadow 0.15s;
}

.gp-karte:hover { box-shadow: var(--fd-shadow); }
.gp-karte-inaktiv { opacity: 0.55; }

.gp-karte-avatar {
    position: relative;
    flex-shrink: 0;
    padding-top: 2px;
}

.gp-avatar {
    width: 46px;
    height: 46px;
    border-radius: var(--fd-radius);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.9rem;
    color: white;
    letter-spacing: 0.05em;
}

.gp-avatar.gross {
    width: 52px;
    height: 52px;
    font-size: 1rem;
    border-radius: var(--fd-radius);
}

.gp-avatar-kunde    { background: #3b82f6; }
.gp-avatar-lieferant { background: #f59e0b; }
.gp-avatar-partner  { background: #8b5cf6; }
.gp-avatar-intern   { background: #6b7280; }
.gp-avatar-kontakt  { background: #ec4899; }
.gp-avatar-inaktiv  { background: #d1d5db; }

.gp-inaktiv-dot {
    position: absolute;
    bottom: -2px;
    right: -2px;
    width: 11px;
    height: 11px;
    border-radius: var(--fd-radius-round);
    background: var(--fd-text-tertiary);
    border: 2px solid var(--fd-surface);
}

.gp-karte-body {
    flex: 1;
    min-width: 0;
}

.gp-karte-kopf {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 0.2rem;
}

.gp-karte-name { font-weight: 700; font-size: 0.95rem; }
.gp-karte-kurz { font-size: 0.8rem; color: var(--fd-text-secondary); margin-left: 0.35rem; }

.gp-karte-meta {
    display: flex;
    gap: 0.75rem;
    font-size: 0.8rem;
    color: var(--fd-text-secondary);
    flex-wrap: wrap;
    margin-bottom: 0.5rem;
}

.gp-karte-kontakt {
    display: flex;
    gap: 0.75rem;
    font-size: 0.8rem;
    color: var(--fd-text-secondary);
    flex-wrap: wrap;
    margin-bottom: 0.5rem;
}

/* Hauptkontakt-Vorschau in der Karte */
.gp-hauptkontakt {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.4rem 0.6rem;
    background: var(--fd-bg-alt);
    border-radius: var(--fd-radius-sm);
    margin-top: 0.1rem;
}

.gp-hk-avatar {
    width: 28px;
    height: 28px;
    border-radius: var(--fd-radius-round);
    background: var(--fd-primary);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.7rem;
    font-weight: 700;
    flex-shrink: 0;
}

.gp-hk-info {
    display: flex;
    flex-wrap: wrap;
    gap: 0 0.6rem;
    min-width: 0;
}

.gp-hk-name { font-size: 0.82rem; font-weight: 600; }
.gp-hk-pos, .gp-hk-email, .gp-hk-tel {
    font-size: 0.78rem;
    color: var(--fd-text-secondary);
}

.gp-kein-kontakt {
    font-size: 0.8rem;
    color: var(--fd-text-secondary);
    font-style: italic;
    margin-top: 0.1rem;
}

.gp-karte-aktionen {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    opacity: 0;
    transition: opacity 0.15s;
    flex-shrink: 0;
    padding-top: 2px;
}

.gp-karte:hover .gp-karte-aktionen { opacity: 1; }

/* ============================================================
   GeschÃƒÆ’Ã‚Â¤ftspartner ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Å“ Modal
   ============================================================ */

.gp-modal-kopf {
    display: flex;
    align-items: center;
    gap: 0.85rem;
}

.gp-modal-kopf h2 { margin: 0 0 0.2rem 0; font-size: 1.1rem; }

.gp-modal-sub {
    font-size: 0.85rem;
    color: var(--fd-text-secondary);
}

/* ============================================================
   Kontaktpersonen-Liste im Modal
   ============================================================ */

.gp-kontakt-liste {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.gp-kontakt-zeile {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.65rem 0.75rem;
    background: var(--fd-bg-alt);
    border-radius: var(--fd-radius-sm);
    transition: background 0.12s;
}

.gp-kontakt-zeile:hover { background: var(--fd-hover); }
.gp-kontakt-zeile.inaktiv { opacity: 0.55; }

.gp-kontakt-avatar {
    width: 36px;
    height: 36px;
    border-radius: var(--fd-radius-round);
    background: var(--fd-primary);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.78rem;
    font-weight: 700;
    flex-shrink: 0;
}

.gp-kontakt-info { flex: 1; min-width: 0; }

.gp-kontakt-name {
    font-size: 0.88rem;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
    margin-bottom: 0.15rem;
}

.gp-kontakt-meta {
    display: flex;
    gap: 0.6rem;
    font-size: 0.78rem;
    color: var(--fd-text-secondary);
    flex-wrap: wrap;
}

.gp-kontakt-aktionen {
    display: flex;
    gap: 0.2rem;
    opacity: 0;
    transition: opacity 0.12s;
    flex-shrink: 0;
}

.gp-kontakt-zeile:hover .gp-kontakt-aktionen { opacity: 1; }

/* Typ-Badge Partner */
.badge-partner { background: var(--fd-accent-soft); color: var(--fd-primary); }

/* Typ: Kontakt */
.gp-avatar-kontakt { background: linear-gradient(135deg, #0ea5e9, #0284c7); }
.badge-kontakt { background: var(--fd-info-soft); color: var(--fd-info); }

/* === GP Gruppen-Header === */
.gp-gruppe-header {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.5rem 0.25rem 0.3rem;
    margin-top: 0.75rem;
    border-bottom: 2px solid var(--fd-border);
    margin-bottom: 0.4rem;
}

.gp-gruppe-header:first-child {
    margin-top: 0;
}

.gp-gruppe-typ-badge {
    font-size: 0.8rem;
    font-weight: 700;
    padding: 0.2rem 0.65rem;
    border-radius: var(--fd-radius-lg);
}

.gp-gruppe-anzahl {
    font-size: 0.78rem;
    color: var(--fd-text-secondary);
    font-weight: 600;
}
.dark-mode .badge-partner { background: var(--fd-accent-soft); color: var(--fd-primary); }

@media (max-width: 600px) {
    .gp-karte { flex-wrap: wrap; }
    .gp-karte-aktionen { opacity: 1; flex-direction: row; }
    .gp-kontakt-aktionen { opacity: 1; }
}

/* === GeschÃƒÆ’Ã‚Â¤ftspartner Karte ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Å“ Kontaktbereich v2.5.1 === */

.gp-kontakt-bereich {
    margin-top: 0.4rem;
}

.gp-kontakt-label {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--fd-text-secondary);
    margin-bottom: 0.25rem;
}

/* Hauptkontakt ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Å“ bleibt wie bisher, nur Label darÃƒÆ’Ã‚Â¼ber */
.gp-hauptkontakt {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.35rem 0.6rem;
    background: var(--fd-bg-alt);
    border-radius: var(--fd-radius-sm);
}

/* Weitere Kontakte ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Å“ kompakte Liste */
.gp-weitere-liste {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.gp-weitere-zeile {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.25rem 0.6rem;
    background: var(--fd-bg-alt);
    border-radius: var(--fd-radius-sm);
    border-left: 2px solid var(--fd-border);
}

.gp-weitere-avatar {
    width: 24px;
    height: 24px;
    border-radius: var(--fd-radius-round);
    background: var(--fd-border);
    color: var(--fd-text-secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.65rem;
    font-weight: 700;
    flex-shrink: 0;
}

.gp-weitere-info {
    display: flex;
    flex-wrap: wrap;
    gap: 0 0.5rem;
    min-width: 0;
    align-items: baseline;
}

.gp-weitere-name {
    font-size: 0.8rem;
    font-weight: 600;
}

.gp-weitere-pos {
    font-size: 0.75rem;
    color: var(--fd-text-secondary);
}

.gp-weitere-detail {
    font-size: 0.73rem;
    color: var(--fd-text-secondary);
}

/* === Weitere Kontakte ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Å“ Inline-Bearbeitung im Modal === */

.akkordeon-kontakte {
    padding: 0.5rem 0.75rem 0.75rem;
}

.wk-toolbar {
    margin-bottom: 0.6rem;
}

.wk-leer {
    font-size: 0.85rem;
    color: var(--fd-text-secondary);
    padding: 0.5rem 0;
    margin: 0;
}

/* Kompakte Anzeigezeile */
.wk-zeile {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    padding: 0.45rem 0.5rem;
    border-radius: var(--fd-radius-sm);
    border: 1px solid var(--fd-border);
    margin-bottom: 0.4rem;
    background: var(--fd-bg);
    transition: background 0.15s;
}

.wk-zeile:hover {
    background: var(--fd-bg-alt);
}

.wk-inaktiv {
    opacity: 0.55;
}

.wk-zeile-avatar {
    width: 30px;
    height: 30px;
    border-radius: var(--fd-radius-round);
    background: var(--fd-primary);
    color: var(--fd-surface);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.65rem;
    font-weight: 700;
    flex-shrink: 0;
    margin-top: 0.1rem;
}

.wk-zeile-info {
    flex: 1;
    min-width: 0;
}

.wk-zeile-name {
    font-size: 0.85rem;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.3rem;
}

.wk-zeile-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0 0.6rem;
    margin-top: 0.15rem;
    font-size: 0.78rem;
    color: var(--fd-text-secondary);
}

.wk-zeile-aktionen {
    display: flex;
    gap: 0.25rem;
    flex-shrink: 0;
    opacity: 0;
    transition: opacity 0.15s;
}

.wk-zeile:hover .wk-zeile-aktionen {
    opacity: 1;
}

/* Aufgeklapptes Inline-Formular */
.wk-inline-form {
    padding: 0.75rem;
    border: 1px solid var(--fd-primary);
    border-radius: var(--fd-radius-sm);
    background: var(--fd-bg-alt);
    margin-bottom: 0.4rem;
}

.wk-inline-neu {
    border-color: var(--fd-success);
}

.wk-inline-actions {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.6rem;
}

/* Badge-ZÃƒÆ’Ã‚Â¤hler im Akkordeon-Titel */
.akkordeon-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: var(--fd-radius-sm);
    background: var(--fd-primary);
    color: var(--fd-surface);
    font-size: 0.7rem;
    font-weight: 700;
    margin-left: 0.4rem;
    vertical-align: middle;
}


/* ======================================================
   DESIGN-SYSTEM: Listen-Komponenten (Tabellen-basiert)
   FÃ¼r <table class="stamm-tabelle"> oder <table class="fd-tabelle">
   Nutzt die gleichen Variablen wie Grid-Listen.
   ====================================================== */
.fd-tabelle,
.stamm-tabelle {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--liste-zeile-font-size);
}

.fd-tabelle th,
.stamm-tabelle th {
    text-align: left;
    padding: var(--liste-header-padding);
    font-size: var(--liste-header-font-size);
    font-weight: var(--liste-header-font-weight);
    color: var(--liste-header-color);
    text-transform: uppercase;
    letter-spacing: var(--liste-header-letter-spacing);
    border-bottom: 2px solid var(--fd-border);
    background-color: var(--liste-header-bg);
}

.fd-tabelle td,
.stamm-tabelle td {
    padding: 0.5rem 0.6rem;
    border-top: var(--liste-border);
    color: var(--fd-text);
}

.fd-tabelle tr:hover,
.stamm-tabelle tr:hover {
    background: var(--fd-hover);
}

.zeile-inaktiv {
    opacity: 0.45;
}

.zeile-zukuenftig {
    opacity: 0.7;
    background: repeating-linear-gradient(
        -45deg,
        transparent,
        transparent 10px,
        var(--fd-accent-soft) 10px,
        var(--fd-accent-soft) 20px
    );
}

/* Person-Projekte Zuordnung */
.person-projekte-liste {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.person-projekt-eintrag {
    border: 1px solid var(--fd-border);
    border-radius: var(--fd-radius-sm);
    padding: 0.5rem 0.6rem;
}

.person-projekt-inaktiv {
    opacity: 0.6;
}

.person-projekt-taetigkeiten {
    margin-top: 0.4rem;
    padding-left: 1.6rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0 1.2rem;
    font-size: 0.8rem;
}

/* === Modul Sub-Navigation (horizontal) === */
.modul-subnav {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.5rem 1rem;
    border-bottom: 1px solid var(--fd-border);
    background: var(--fd-bg);
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.subnav-item {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.4rem 0.75rem;
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--fd-text-secondary);
    text-decoration: none;
    border: none;
    background: none;
    border-radius: var(--fd-radius-sm);
    cursor: pointer;
    transition: all 0.15s ease;
    white-space: nowrap;
}

.subnav-item:hover {
    background: var(--fd-bg-alt);
    color: var(--fd-text);
}

.subnav-aktiv {
    background: var(--fd-primary-container);
    color: var(--fd-primary);
    font-weight: 600;
}

.subnav-badge {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 18px; height: 18px; padding: 0 5px;
    border-radius: 9px; font-size: 0.65rem; font-weight: 700;
    background: var(--fd-bg-alt);
    color: var(--fd-text-secondary);
    margin-left: 0.25rem;
}
.subnav-aktiv .subnav-badge {
    background: var(--fd-primary);
    color: var(--fd-surface);
}

.subnav-chevron {
    font-size: 0.65rem;
    margin-left: 0.15rem;
}

/* Dropdown */
.subnav-dropdown {
    position: relative;
}

.subnav-dropdown-menu {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 1000;
    min-width: 220px;
    padding: 0.35rem 0;
    margin-top: 0.25rem;
    background: var(--fd-bg);
    border: 1px solid var(--fd-border);
    border-radius: var(--fd-radius-sm);
    box-shadow: var(--fd-elevation-2);
}

.subnav-dropdown-item {
    display: block;
    padding: 0.5rem 1rem;
    font-size: 0.8rem;
    color: var(--fd-text-secondary);
    text-decoration: none;
    transition: all 0.15s ease;
}

.subnav-dropdown-item:hover {
    background: var(--fd-bg-alt);
    color: var(--fd-text);
}

.subnav-dropdown-item.subnav-aktiv {
    color: var(--fd-primary);
    font-weight: 600;
    background: var(--fd-primary-container);
}

/* === WorkFlow: Zeiterfassung ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Å“ JahresÃƒÆ’Ã‚Â¼bersicht === */
.jahr-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.75rem;
    margin-top: 1rem;
}

.jahr-kachel {
    background: var(--fd-bg);
    border: 1px solid var(--fd-border);
    border-radius: var(--fd-radius-sm);
    padding: 0.75rem;
    cursor: pointer;
    transition: all 0.2s ease;
    min-height: 110px;
    display: flex;
    flex-direction: column;
}

.jahr-kachel:hover {
    border-color: var(--fd-primary);
    box-shadow: 0 2px 8px var(--fd-shadow);
    transform: translateY(-1px);
}

.jahr-kachel-aktuell {
    border-color: var(--fd-primary);
    border-width: 2px;
    background: var(--fd-accent-soft);
}

.dark-mode .jahr-kachel-aktuell {
    background: var(--fd-accent-soft);
}

.jahr-kachel-abgeschlossen {
    opacity: 0.85;
}

.jahr-kachel-zukunft {
    opacity: 0.5;
}

.jahr-kachel-hat-daten {
    opacity: 1;
}

.jahr-kachel-kopf {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.5rem;
}

.jahr-kachel-name {
    font-weight: 600;
    font-size: 0.9rem;
    text-transform: capitalize;
    color: var(--fd-text);
}

.jahr-kachel-badge {
    color: var(--fd-primary);
    font-size: 0.6rem;
}

.jahr-kachel-lock {
    font-size: 0.7rem;
    opacity: 0.6;
}

.jahr-kachel-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.jahr-kachel-stunden {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--fd-text);
    line-height: 1.2;
}

.jahr-kachel-tage {
    font-size: 0.75rem;
    color: var(--fd-text-secondary);
    margin-top: 0.15rem;
}

.jahr-kachel-bar {
    height: 4px;
    background: var(--fd-bg-muted);
    border-radius: var(--fd-radius-sm);
    margin-top: 0.5rem;
    overflow: hidden;
}

.jahr-kachel-bar-fill {
    height: 100%;
    background: var(--fd-primary);
    border-radius: var(--fd-radius-sm);
    transition: width 0.3s ease;
}

.jahr-kachel-leer {
    color: var(--fd-text-tertiary);
    font-size: 1.2rem;
    text-align: center;
}

/* Jahressumme */
.jahr-summe {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    margin-top: 1.25rem;
    padding: 0.75rem 1rem;
    background: var(--fd-bg);
    border: 1px solid var(--fd-border);
    border-radius: var(--fd-radius-sm);
}

.jahr-summe-label {
    font-weight: 600;
    color: var(--fd-text);
}

.jahr-summe-wert {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--fd-primary);
}

.jahr-summe-tage {
    font-size: 0.85rem;
    color: var(--fd-text-secondary);
}

/* Monatsdetail */
.jahr-detail {
    margin-top: 0.5rem;
}

.jahr-detail-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
}

.jahr-detail-header h3 {
    margin: 0;
    font-size: 1.1rem;
    text-transform: capitalize;
}

.jahr-detail-badge-readonly {
    font-size: 0.8rem;
    color: var(--fd-text-secondary);
    background: var(--fd-bg-muted);
    padding: 0.25rem 0.6rem;
    border-radius: var(--fd-radius-sm);
    margin-left: auto;
}

/* Responsive: 3 Spalten auf schmalen Bildschirmen, 2 auf ganz kleinen */
@media (max-width: 900px) {
    .jahr-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 600px) {
    .jahr-grid { grid-template-columns: repeat(2, 1fr); }
}

/* === Abwesenheiten === */
.abw-zusammenfassung {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 0.75rem;
}
.abw-zusammenfassung-item {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.5rem 0.75rem;
    background: var(--fd-surface);
    border-radius: var(--fd-radius-sm);
    font-size: 0.9rem;
    box-shadow: var(--fd-elevation-1);
}
.abw-zf-icon { font-size: 1.1rem; }
.abw-zf-name { font-weight: 500; }
.abw-zf-tage { font-weight: 700; color: var(--fd-primary); margin-left: 0.25rem; }

.abw-liste {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: 0.5rem;
}
.abw-zeile {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.6rem 0.75rem;
    background: var(--fd-surface);
    border-radius: var(--fd-radius-sm);
    font-size: 0.9rem;
    box-shadow: var(--fd-elevation-1);
    flex-wrap: wrap;
}
.abw-zeile-icon { font-size: 1.1rem; flex-shrink: 0; }
.abw-zeile-zeitraum { font-weight: 500; min-width: 180px; }
.abw-zeile-tage { color: var(--fd-text-secondary); min-width: 50px; }
.abw-zeile-art { font-weight: 500; min-width: 120px; }
.abw-zeile-bemerkung { color: var(--fd-text-secondary); flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.abw-zeile-status { font-size: 0.8rem; padding: 0.15rem 0.5rem; border-radius: var(--fd-radius); font-weight: 600; }

.status-erfasst { background: var(--fd-info-soft); color: var(--fd-info); }
.status-beantragt { background: var(--fd-warning-soft); color: var(--fd-warning); }
.status-genehmigt { background: var(--fd-success-soft); color: var(--fd-success); }
.status-abgelehnt { background: var(--fd-danger-soft); color: var(--fd-danger); }
.status-storniert { background: var(--fd-bg-alt); color: var(--fd-text-secondary); text-decoration: line-through; }

.btn-icon-sm { background: none; border: none; cursor: pointer; font-size: 0.9rem; padding: 0.2rem; opacity: 0.6; }
.btn-icon-sm:hover { opacity: 1; }
.btn-danger-icon:hover { color: var(--fd-danger); }

.erfolg-box { padding: 0.5rem 0.75rem; background: var(--fd-success-soft); color: var(--fd-success); border-radius: var(--fd-radius-sm); font-size: 0.9rem; }
.fehler-box { padding: 0.5rem 0.75rem; background: var(--fd-danger-soft); color: var(--fd-danger); border-radius: var(--fd-radius-sm); font-size: 0.9rem; }


/* === Filter-Seite === */
.filter-page { padding: 1rem; }
.filter-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; }
.filter-layout { display: flex; gap: 1.5rem; min-height: 500px; }

.filter-liste { width: 260px; min-width: 260px; border-right: 1px solid var(--fd-border); padding-right: 1rem; }
.filter-liste h3, .filter-liste h4 { margin: 0.5rem 0; font-size: 0.9rem; color: var(--fd-text-tertiary); }
.filter-item { display: flex; align-items: center; gap: 0.5rem; padding: 0.5rem 0.6rem; border-radius: var(--fd-radius-sm); cursor: pointer; transition: background 0.15s; }
.filter-item:hover { background: var(--fd-hover); }
.filter-item.aktiv { background: var(--fd-primary-container); font-weight: 600; }
.filter-icon { font-size: 1.1rem; }
.filter-name { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.badge-public { font-size: 0.8rem; }
.badge-fremd { font-size: 0.7rem; background: var(--fd-primary); padding: 0.1rem 0.4rem; border-radius: var(--fd-radius-sm); }

.filter-detail { flex: 1; }
.filter-formular { max-width: 700px; }
.filter-formular .form-row { display: flex; gap: 1rem; }
.filter-formular .form-group { margin-bottom: 0.8rem; flex: 1; }
.filter-formular .form-group-sm { flex: 0 0 80px; }
.filter-formular label { display: block; font-size: 0.85rem; margin-bottom: 0.2rem; font-weight: 500; }
.filter-formular .form-control { width: 100%; padding: 0.4rem 0.5rem; border: 1px solid var(--fd-border); border-radius: var(--fd-radius-sm); }

.belegart-checkboxes { display: flex; flex-wrap: wrap; gap: 0.5rem 1.2rem; }
.checkbox-label { display: flex; align-items: center; gap: 0.3rem; cursor: pointer; font-size: 0.9rem; }

.filter-aktionen { display: flex; gap: 0.5rem; margin-top: 1rem; }

.filter-ergebnisse { }
.filter-ergebnisse h3 { margin-bottom: 0.8rem; }
.ergebnis-tabelle { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
.ergebnis-tabelle th { text-align: left; padding: 0.5rem; border-bottom: 2px solid var(--fd-border); font-weight: 600; }
.ergebnis-tabelle td { padding: 0.4rem 0.5rem; border-bottom: 1px solid var(--fd-border); }
.ergebnis-tabelle tr:hover { background: var(--fd-hover); }

/* ===================================================
   DOKUMENTE-UPLOAD & VORSCHAU (v2.5.17)
   =================================================== */

/* Upload-Bereich */
.dokumente-section { margin-top: 1rem; }
.dokument-upload-bereich {
    display: flex; align-items: center; gap: 0.75rem;
    padding: 0.75rem; border: 2px dashed var(--fd-border);
    border-radius: var(--fd-radius-sm); margin-bottom: 0.75rem;
}
.dokument-upload-label {
    cursor: pointer; display: flex; align-items: center; gap: 0.5rem;
    padding: 0.5rem 1rem; background: var(--fd-primary);
    color: white; border-radius: var(--fd-radius-sm); font-size: 0.85rem; font-weight: 500;
    transition: background 0.2s;
}
.dokument-upload-label:hover { opacity: 0.9; }
.dokument-upload-label input[type="file"] { display: none; }
.upload-hinweis { font-size: 0.75rem; color: var(--fd-text-tertiary); }
.dokument-upload-progress {
    padding: 0.5rem; text-align: center; color: var(--fd-primary);
    font-size: 0.85rem; animation: pulse 1.5s infinite;
}
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } }

/* Dokumentenliste */
.dokument-liste { display: flex; flex-direction: column; gap: 0.25rem; }
.dokument-zeile {
    display: flex; align-items: center; gap: 0.75rem;
    padding: 0.5rem 0.75rem; border-radius: var(--fd-radius-sm);
    background: var(--fd-surface); transition: background 0.15s;
}
.dokument-zeile:hover { background: var(--fd-hover); }
.dokument-icon { font-size: 1.25rem; flex-shrink: 0; }
.dokument-info { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.dokument-name {
    font-size: 0.85rem; font-weight: 500; cursor: pointer;
    color: var(--fd-primary); text-decoration: none;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.dokument-name:hover { text-decoration: underline; }
.dokument-meta { font-size: 0.7rem; color: var(--fd-text-tertiary); }
.btn-dokument-loeschen {
    background: none; border: none; cursor: pointer;
    font-size: 1rem; opacity: 0.5; transition: opacity 0.2s;
    padding: 0.25rem;
}
.btn-dokument-loeschen:hover { opacity: 1; }
.keine-dokumente {
    text-align: center; padding: 1rem; color: var(--fd-text-tertiary);
    font-size: 0.85rem; font-style: italic;
}

/* Vorschau-Modal */
.vorschau-overlay { z-index: 1100; }
.vorschau-modal {
    width: 90vw; max-width: 1000px; height: 85vh;
    background: var(--fd-bg, white); border-radius: var(--fd-radius);
    display: flex; flex-direction: column; overflow: hidden;
    box-shadow: var(--fd-elevation-3);
}
.vorschau-header {
    display: flex; justify-content: space-between; align-items: center;
    padding: 0.75rem 1.25rem; border-bottom: 1px solid var(--fd-border);
}
.vorschau-header h3 {
    margin: 0; font-size: 1rem; font-weight: 600;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.vorschau-actions { display: flex; gap: 0.5rem; align-items: center; flex-shrink: 0; }
.btn-download {
    background: var(--fd-primary); color: white;
    border: none; padding: 0.4rem 0.75rem; border-radius: var(--fd-radius-sm);
    font-size: 0.8rem; cursor: pointer;
}
.btn-download:hover { opacity: 0.9; }
.vorschau-body { flex: 1; overflow: auto; padding: 0; display: flex; align-items: center; justify-content: center; }
.vorschau-pdf { width: 100%; height: 100%; border: none; }
.vorschau-bild { max-width: 100%; max-height: 100%; object-fit: contain; padding: 1rem; }
.vorschau-laden { text-align: center; font-size: 1rem; color: var(--fd-text-tertiary); }
.vorschau-nicht-moeglich {
    text-align: center; padding: 3rem; display: flex; flex-direction: column;
    align-items: center; gap: 1rem;
}
.vorschau-nicht-moeglich .vorschau-icon { font-size: 4rem; }
.vorschau-nicht-moeglich p { color: var(--fd-text-tertiary); font-size: 1rem; }

/* === Benutzer-MenÃ¼ (Sidebar Footer, Dropdown nach oben) === */
.benutzer-menu-container {
    position: relative;
    margin-left: auto;
    flex-shrink: 0;
}

.benutzer-menu-btn {
    background: transparent;
    border: none;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    border-radius: var(--fd-radius-sm);
    font-size: 1.3rem;
    font-weight: bold;
    transition: background 0.15s ease;
    opacity: 0.7;
}

.benutzer-menu-btn:hover {
    background: var(--fd-bg-muted);
    opacity: 1;
}

.hamburger-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 999;
}

.hamburger-dropdown {
    position: absolute;
    bottom: 36px;
    left: 0;
    min-width: 220px;
    background: var(--fd-bg);
    border: 1px solid var(--fd-border);
    border-radius: var(--fd-radius);
    box-shadow: 0 -4px 20px var(--fd-shadow);
    padding: 0.5rem 0;
    z-index: 1001;
    animation: menuSlideUp 0.15s ease;
}

@keyframes menuSlideUp {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

.hamburger-section {
    padding: 0.25rem 0;
}

.hamburger-section-titel {
    display: block;
    padding: 0.4rem 1rem 0.25rem;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--fd-text-tertiary);
}

.hamburger-item {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.5rem 1rem;
    color: var(--fd-text);
    text-decoration: none;
    font-size: 0.875rem;
    transition: background 0.1s ease;
    cursor: pointer;
    background: none;
    border: none;
    width: 100%;
    text-align: left;
    font-family: inherit;
}

.hamburger-item:hover {
    background: var(--fd-bg-muted);
}

.hamburger-divider {
    height: 1px;
    background: var(--fd-border);
    margin: 0.35rem 0;
}


/* ===================================================
   SICHTBARKEIT & SPERREN (v2.5.17)
   =================================================== */

.sichtbarkeit-section { margin-top: 1rem; }

.sperr-toggle { margin-bottom: 0.75rem; }
.sperr-info {
    font-size: 0.8rem; color: var(--fd-text-secondary);
    margin-top: 0.25rem; padding-left: 1.75rem;
}
.sperr-hinweis {
    padding: 0.5rem 0.75rem; border-radius: var(--fd-radius-sm);
    background: var(--fd-warning-container); color: var(--fd-warning);
    font-size: 0.85rem; margin-bottom: 0.75rem;
}

.sichtbarkeit-personen-liste {
    display: flex; flex-direction: column; gap: 0.25rem;
    max-height: 200px; overflow-y: auto;
    border: 1px solid var(--fd-border); border-radius: var(--fd-radius-sm);
    padding: 0.5rem; margin-top: 0.5rem;
}
.sichtbarkeit-person-item {
    display: flex; align-items: center; gap: 0.5rem;
    padding: 0.4rem 0.5rem; border-radius: var(--fd-radius-sm); cursor: pointer;
    transition: background 0.15s;
}
.sichtbarkeit-person-item:hover { background: var(--fd-hover); }
.sichtbarkeit-person-item.gewaehlt { background: var(--fd-primary-container); }
.sichtbarkeit-person-item input[type="checkbox"] { flex-shrink: 0; }
.sichtbarkeit-person-name { flex: 1; font-size: 0.9rem; }
.sichtbarkeit-person-rolle {
    font-size: 0.75rem; color: var(--fd-text-secondary);
}
.sichtbarkeit-zusammenfassung {
    padding: 0.5rem; text-align: center;
    font-size: 0.85rem; color: var(--fd-success);
    border-top: 1px solid var(--fd-border); margin-top: 0.25rem;
}

.beleg-status-icon {
    font-size: 0.85rem; margin-left: 0.25rem;
    opacity: 0.8;
}

/* =====================================================
   TaskFlow â€“ Board-Ãœbersicht & Meine Aufgaben (v2.6.x)
   ===================================================== */

.tf-container { padding: 0.5rem 0; }

.tf-header {
    display: flex; align-items: flex-start; justify-content: space-between;
    margin-bottom: 1.25rem; flex-wrap: wrap; gap: 0.75rem;
}
.tf-header h2 { margin: 0; font-size: 1.25rem; font-weight: 800; color: var(--fd-text); }
.tf-header-info { font-size: 0.8rem; color: var(--fd-text-muted); }
.tf-header-actions { display: flex; align-items: center; gap: 0.5rem; }

.tf-view-toggle {
    display: flex; background: var(--fd-bg-secondary); border-radius: 6px; padding: 2px;
}
.tf-view-toggle button {
    padding: 4px 10px; font-size: 0.85rem; border: none; border-radius: 4px;
    cursor: pointer; background: transparent; color: var(--fd-text-muted); font-weight: 400;
}
.tf-view-toggle button.active {
    background: var(--fd-bg); color: var(--fd-text); font-weight: 600;
    box-shadow: 0 1px 2px var(--fd-border);
}

/* Board-Grid (Kacheln) */
.tf-board-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1rem;
}

.tf-board-kachel {
    background: var(--fd-bg); border-radius: 12px; overflow: hidden;
    cursor: pointer; transition: all 0.2s ease;
    box-shadow: 0 1px 3px var(--fd-border), 0 1px 2px var(--fd-shadow);
    border: 1px solid var(--fd-border);
}
.tf-board-kachel:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px var(--fd-border-strong);
}

.tf-kachel-farbe { height: 6px; }
.tf-kachel-inhalt { padding: 1rem 1.125rem 0.875rem; }

.tf-kachel-kopf { display: flex; align-items: flex-start; gap: 0.625rem; margin-bottom: 0.375rem; }
.tf-kachel-icon { font-size: 1.375rem; line-height: 1.2; }
.tf-kachel-titel { flex: 1; min-width: 0; }
.tf-kachel-name { font-weight: 700; font-size: 0.9375rem; color: var(--fd-text); line-height: 1.3; }
.tf-kachel-beschreibung {
    font-size: 0.75rem; color: var(--fd-text-muted); line-height: 1.4;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 2px;
}
.tf-privat-badge { font-size: 0.8rem; color: var(--fd-text-muted); }

/* Listen-Vorschau */
.tf-listen-preview {
    display: flex; gap: 3px; margin: 0.625rem 0; height: 4px;
    border-radius: 2px; overflow: hidden;
}
.tf-listen-bar { flex: 1; border-radius: 2px; }

/* Kachel-Stats */
.tf-kachel-stats {
    display: flex; align-items: center; justify-content: space-between; margin-top: 0.75rem;
}
.tf-stat-links { display: flex; align-items: center; gap: 0.75rem; font-size: 0.75rem; color: var(--fd-text-secondary); }

/* Avatare */
.tf-avatare { display: flex; align-items: center; }
.tf-avatar {
    width: 26px; height: 26px; border-radius: 50%; color: white;
    font-size: 0.6rem; font-weight: 700; display: flex; align-items: center;
    justify-content: center; border: 2px solid var(--fd-bg); margin-left: -6px;
    letter-spacing: 0.02em;
}
.tf-avatar:first-child { margin-left: 0; }
.tf-avatar-klein { width: 24px; height: 24px; font-size: 0.55rem; }
.tf-avatar-mehr { font-size: 0.7rem; color: var(--fd-text-muted); margin-left: 4px; font-weight: 600; }

/* Kachel-Footer */
.tf-kachel-footer {
    display: flex; align-items: center; justify-content: space-between;
    margin-top: 0.625rem; padding-top: 0.625rem; border-top: 1px solid var(--fd-border);
}
.tf-label-dots { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.tf-label-dot { display: flex; align-items: center; gap: 4px; font-size: 0.7rem; color: var(--fd-text-muted); }
.tf-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.tf-sichtbarkeit-badge { font-size: 0.75rem; }
.tf-graph-btn { background: none; border: 1px solid var(--fd-border, rgba(200,220,255,0.08)); border-radius: 6px; padding: 0.15rem 0.4rem; font-size: 0.75rem; cursor: pointer; transition: all 0.2s; opacity: 0.6; }
.tf-graph-btn:hover { opacity: 1; background: var(--fd-accent, #5fa8d3); border-color: var(--fd-accent, #5fa8d3); }

/* Neue Board Kachel */
.tf-neue-kachel {
    border: 2px dashed var(--fd-border) !important; background: transparent !important;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    min-height: 180px; gap: 0.5rem; box-shadow: none !important;
    transition: all 0.2s ease;
}
.tf-neue-kachel:hover { border-color: var(--fd-primary) !important; background: var(--fd-bg-secondary) !important; transform: none !important; }
.tf-neue-plus {
    width: 44px; height: 44px; border-radius: 50%; background: var(--fd-bg-secondary);
    color: var(--fd-text-muted); display: flex; align-items: center; justify-content: center;
    font-size: 1.4rem; font-weight: 300; transition: all 0.2s;
}
.tf-neue-kachel:hover .tf-neue-plus { background: var(--fd-primary); color: white; }
.tf-neue-text { font-size: 0.8125rem; font-weight: 600; color: var(--fd-text-muted); transition: color 0.2s; }
.tf-neue-kachel:hover .tf-neue-text { color: var(--fd-primary); }

/* Board-Listenansicht */
.tf-board-liste { display: flex; flex-direction: column; gap: 0.5rem; }
.tf-board-zeile {
    display: flex; align-items: center; gap: 0.875rem; padding: 0.75rem 1rem;
    background: var(--fd-bg); border-radius: 10px; border: 1px solid var(--fd-border);
    cursor: pointer; transition: box-shadow 0.15s;
}
.tf-board-zeile:hover { box-shadow: 0 2px 8px var(--fd-border); }
.tf-zeile-farbe { width: 6px; height: 36px; border-radius: 3px; flex-shrink: 0; }
.tf-zeile-icon { font-size: 1.25rem; }
.tf-zeile-info { flex: 1; min-width: 0; }
.tf-zeile-name { font-weight: 700; font-size: 0.875rem; color: var(--fd-text); }
.tf-zeile-beschreibung { font-size: 0.75rem; color: var(--fd-text-muted); }
.tf-privat-klein { font-size: 0.7rem; margin-left: 0.375rem; }
.tf-zeile-stats { display: flex; gap: 0.75rem; font-size: 0.75rem; color: var(--fd-text-muted); align-items: center; }

/* Archiv */
.tf-archiv { margin-top: 2rem; }
.tf-archiv-toggle {
    background: none; border: none; cursor: pointer; display: flex; align-items: center;
    gap: 0.5rem; font-size: 0.8125rem; font-weight: 600; color: var(--fd-text-muted); padding: 0.5rem 0;
}
.tf-archiv-pfeil { display: inline-block; transition: transform 0.2s; font-size: 0.65rem; }
.tf-archiv-pfeil.offen { transform: rotate(90deg); }
.tf-archiv-liste {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 0.875rem; margin-top: 0.5rem;
}
.tf-archiv-item {
    background: var(--fd-bg-secondary); border-radius: 10px; padding: 0.875rem 1rem;
    border: 1px solid var(--fd-border); opacity: 0.7; display: flex; align-items: center; gap: 0.625rem;
}
.tf-archiv-name { font-weight: 600; font-size: 0.8125rem; color: var(--fd-text-secondary); text-decoration: line-through; }
.tf-archiv-info { font-size: 0.7rem; color: var(--fd-text-muted); }

/* Board Modal */
.tf-board-modal { max-width: 480px; }
.tf-farb-auswahl { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.tf-farb-option {
    width: 32px; height: 32px; border-radius: 8px; cursor: pointer; border: 3px solid transparent;
    transition: all 0.15s;
}
.tf-farb-option:hover { transform: scale(1.1); }
.tf-farb-option.selected { border-color: var(--fd-text); box-shadow: 0 0 0 2px var(--fd-bg), 0 0 0 4px var(--fd-text); }
.tf-icon-auswahl { display: flex; gap: 0.375rem; flex-wrap: wrap; }
.tf-icon-option {
    font-size: 1.375rem; cursor: pointer; padding: 0.25rem; border-radius: 6px;
    border: 2px solid transparent; transition: all 0.15s;
}
.tf-icon-option:hover { background: var(--fd-bg-secondary); }
.tf-icon-option.selected { border-color: var(--fd-primary); background: var(--fd-bg-secondary); }
.form-row { display: flex; gap: 1rem; }
.form-row .form-group { flex: 1; }

/* Meine Aufgaben */
.tf-aufgaben-gruppe { margin-bottom: 1.25rem; }
.tf-aufgaben-header {
    display: flex; align-items: center; gap: 0.5rem; padding: 0.5rem 0;
    font-weight: 700; font-size: 0.875rem; color: var(--fd-text);
}
.tf-aufgaben-count {
    background: var(--fd-bg-secondary); border-radius: 10px; padding: 0.125rem 0.5rem;
    font-size: 0.75rem; color: var(--fd-text-muted); font-weight: 600;
}
.tf-aufgabe-zeile {
    display: flex; align-items: center; gap: 0.75rem; padding: 0.625rem 0.75rem;
    background: var(--fd-bg); border-radius: 8px; border: 1px solid var(--fd-border);
    margin-bottom: 0.375rem; transition: background 0.15s;
}
.tf-aufgabe-zeile:hover { background: var(--fd-bg-secondary); }
.tf-aufgabe-zeile.erledigt { opacity: 0.5; }
.tf-aufgabe-zeile input[type="checkbox"] { width: 18px; height: 18px; cursor: pointer; flex-shrink: 0; accent-color: var(--fd-primary); }
.tf-aufgabe-info { flex: 1; min-width: 0; }
.tf-aufgabe-titel { font-weight: 600; font-size: 0.875rem; color: var(--fd-text); }
.tf-aufgabe-zeile.erledigt .tf-aufgabe-titel { text-decoration: line-through; }
.tf-aufgabe-meta { font-size: 0.75rem; color: var(--fd-text-muted); }
.tf-aufgabe-board {
    background: var(--fd-bg-secondary); padding: 0.125rem 0.375rem; border-radius: 4px;
    font-size: 0.7rem;
}
.tf-aufgabe-datum { font-size: 0.75rem; white-space: nowrap; flex-shrink: 0; }
.tf-aufgabe-datum.ueberfaellig { color: var(--fd-danger); font-weight: 600; }
.tf-aufgabe-datum.heute { color: var(--fd-warning); font-weight: 600; }
.tf-aufgabe-datum.spaeter { color: var(--fd-text-muted); }

/* =====================================================
   KANBAN BOARD (TaskBoard.razor)
   ===================================================== */

/* Board-Header */
.kb-header {
    display: flex; align-items: center; justify-content: space-between;
    padding: 0.5rem 0 0.75rem; flex-wrap: wrap; gap: 0.5rem;
}
.kb-header-links { display: flex; align-items: center; gap: 0.5rem; }
.kb-board-icon { font-size: 1.5rem; }
.kb-board-name {
    margin: 0; font-size: 1.25rem; font-weight: 800; color: var(--fd-text);
    cursor: pointer; border-bottom: 2px solid transparent; transition: border-color 0.2s;
}
.kb-board-name:hover { border-bottom-color: var(--fd-primary); }
.kb-name-input {
    font-size: 1.25rem; font-weight: 800; border: 2px solid var(--fd-primary);
    border-radius: 6px; padding: 0.125rem 0.5rem; background: var(--fd-bg); color: var(--fd-text);
    outline: none; min-width: 200px;
}
.kb-sichtbarkeit { font-size: 0.85rem; color: var(--fd-text-muted); }
.kb-header-rechts { display: flex; align-items: center; gap: 0.375rem; }
.kb-count { font-size: 0.7rem; color: var(--fd-text-muted); margin-left: 2px; }
.kb-filter-badge {
    position: absolute; top: -2px; right: -2px; width: 8px; height: 8px;
    background: var(--fd-danger); border-radius: 50%;
}

/* Filter-Leiste */
.kb-filter-bar {
    display: flex; align-items: center; gap: 1rem; padding: 0.625rem 0.75rem;
    background: var(--fd-bg-secondary); border-radius: 8px; margin-bottom: 0.75rem;
    flex-wrap: wrap;
}
.kb-filter-bar label { font-size: 0.8rem; font-weight: 600; color: var(--fd-text-secondary); }
.kb-filter-gruppe { display: flex; align-items: center; gap: 0.375rem; }
.kb-filter-labels { display: flex; gap: 0.25rem; flex-wrap: wrap; }
.kb-filter-label {
    font-size: 0.7rem; padding: 0.2rem 0.5rem; border-radius: 4px;
    border: 1.5px solid; cursor: pointer; background: transparent;
    font-weight: 600; transition: all 0.15s;
}
.kb-filter-label.active { border-color: transparent !important; }
.kb-filter-check {
    display: flex; align-items: center; gap: 0.25rem; font-size: 0.8rem;
    color: var(--fd-text-secondary); cursor: pointer;
}

/* Kanban-Container */
.kb-container {
    display: flex; gap: 0.875rem; overflow-x: auto; padding-bottom: 1rem;
    min-height: calc(100vh - 220px); align-items: flex-start;
}

/* Listen */
.kb-liste {
    min-width: 280px; max-width: 320px; flex-shrink: 0;
    background: var(--fd-bg-secondary); border-radius: 10px;
    display: flex; flex-direction: column; max-height: calc(100vh - 240px);
}
.kb-liste-header {
    display: flex; align-items: center; gap: 0.375rem;
    padding: 0.625rem 0.75rem; position: relative;
}
.kb-liste-name {
    flex: 1; font-weight: 700; font-size: 0.875rem; color: var(--fd-text);
    cursor: pointer; border-bottom: 1px solid transparent;
}
.kb-liste-name:hover { border-bottom-color: var(--fd-text-muted); }
.kb-liste-name-input {
    flex: 1; font-weight: 700; font-size: 0.875rem; border: 1.5px solid var(--fd-primary);
    border-radius: 4px; padding: 0.125rem 0.375rem; background: var(--fd-bg); color: var(--fd-text);
    outline: none;
}
.kb-liste-count {
    font-size: 0.7rem; color: var(--fd-text-muted); background: var(--fd-bg);
    border-radius: 8px; padding: 0.1rem 0.4rem; font-weight: 600;
}
.kb-liste-actions { display: flex; gap: 2px; }

/* Listen-Dropdown */
.kb-dropdown {
    position: absolute; top: 100%; right: 0.5rem; z-index: 100;
    background: var(--fd-bg); border: 1px solid var(--fd-border);
    border-radius: 8px; box-shadow: 0 4px 16px var(--fd-border-strong);
    min-width: 160px; padding: 0.25rem;
}
.kb-dropdown button {
    display: block; width: 100%; text-align: left; border: none; background: none;
    padding: 0.5rem 0.75rem; font-size: 0.8rem; cursor: pointer; border-radius: 4px;
    color: var(--fd-text);
}
.kb-dropdown button:hover { background: var(--fd-bg-secondary); }

/* Karten-Bereich */
.kb-karten {
    flex: 1; overflow-y: auto; padding: 0 0.5rem 0.25rem;
    display: flex; flex-direction: column; gap: 0.375rem;
}

/* Karte */
.kb-karte {
    background: var(--fd-bg); border-radius: 8px; padding: 0.625rem 0.75rem;
    border: 1px solid var(--fd-border); cursor: pointer;
    transition: box-shadow 0.15s, transform 0.1s;
}
.kb-karte:hover {
    box-shadow: 0 2px 8px var(--fd-shadow-hover); transform: translateY(-1px);
}
.kb-karte.erledigt { opacity: 0.55; }

/* Karte Labels */
.kb-karte-labels { display: flex; gap: 3px; margin-bottom: 0.375rem; }
.kb-karte-label {
    height: 6px; width: 32px; border-radius: 3px; flex-shrink: 0;
}

/* Karte Titel */
.kb-karte-titel {
    font-weight: 600; font-size: 0.8125rem; color: var(--fd-text);
    line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2;
    -webkit-box-orient: vertical; overflow: hidden;
}
.kb-karte.erledigt .kb-karte-titel { text-decoration: line-through; }

/* Karte Footer */
.kb-karte-footer {
    display: flex; align-items: center; justify-content: space-between;
    margin-top: 0.375rem;
}
.kb-karte-meta { display: flex; gap: 0.5rem; align-items: center; }
.kb-karte-datum {
    font-size: 0.7rem; padding: 0.1rem 0.375rem; border-radius: 4px;
    background: var(--fd-bg-secondary);
}
.kb-karte-datum.ueberfaellig { background: var(--fd-danger-soft); color: var(--fd-danger); font-weight: 600; }
.kb-karte-datum.heute { background: var(--fd-surface)beb; color: var(--fd-warning); font-weight: 600; }

.kb-karte-rechts { display: flex; align-items: center; gap: 2px; }
.kb-karte-move { display: flex; gap: 1px; opacity: 0; transition: opacity 0.15s; }
.kb-karte:hover .kb-karte-move { opacity: 1; }

.kb-karte-avatar {
    width: 22px; height: 22px; border-radius: 50%; color: white;
    font-size: 0.5rem; font-weight: 700; display: flex; align-items: center;
    justify-content: center; border: 1.5px solid var(--fd-bg); margin-left: -4px;
}
.kb-karte-avatar:first-of-type { margin-left: 0; }

/* Neue Karte */
.kb-karte-add {
    border: none; background: none; cursor: pointer; text-align: left;
    padding: 0.5rem 0.75rem; font-size: 0.8rem; color: var(--fd-text-muted);
    border-radius: 6px; transition: all 0.15s; width: 100%; font-weight: 500;
}
.kb-karte-add:hover { background: var(--fd-bg); color: var(--fd-text); }

.kb-neue-karte-form { padding: 0.375rem 0.5rem; }
.kb-neue-karte-actions { display: flex; gap: 0.375rem; margin-top: 0.375rem; }

/* Neue Liste */
.kb-neue-liste {
    min-width: 280px; max-width: 320px; flex-shrink: 0;
}
.kb-neue-liste-btn {
    width: 100%; border: 2px dashed var(--fd-border); background: transparent;
    border-radius: 10px; padding: 0.75rem; font-size: 0.8rem; color: var(--fd-text-muted);
    cursor: pointer; font-weight: 600; transition: all 0.2s; text-align: left;
}
.kb-neue-liste-btn:hover { border-color: var(--fd-primary); color: var(--fd-primary); background: var(--fd-bg-secondary); }
.kb-neue-liste-form {
    background: var(--fd-bg-secondary); border-radius: 10px; padding: 0.75rem;
}
.kb-neue-liste-actions { display: flex; gap: 0.375rem; margin-top: 0.375rem; }

/* Button-Varianten */
.btn-icon {
    border: none; background: var(--fd-bg-secondary); cursor: pointer;
    padding: 0.375rem 0.5rem; border-radius: 6px; font-size: 0.85rem;
    color: var(--fd-text-secondary); transition: background 0.15s; position: relative;
}
.btn-icon:hover { background: var(--fd-border); }
.btn-icon-mini {
    border: none; background: none; cursor: pointer; padding: 0.125rem 0.25rem;
    font-size: 0.65rem; color: var(--fd-text-muted); border-radius: 3px;
    transition: all 0.15s;
}
.btn-icon-mini:hover { background: var(--fd-bg); color: var(--fd-text); }
.btn-icon-mini.danger:hover { color: var(--fd-danger); }
.btn-icon-micro {
    border: none; background: var(--fd-bg-secondary); cursor: pointer;
    padding: 0.1rem 0.25rem; font-size: 0.55rem; color: var(--fd-text-muted);
    border-radius: 2px; line-height: 1;
}
.btn-icon-micro:hover { background: var(--fd-border); color: var(--fd-text); }
.btn-text { border: none; background: none; cursor: pointer; font-size: 0.8rem; color: var(--fd-text-muted); font-weight: 600; }
.btn-text:hover { color: var(--fd-primary); }
.btn-sm { padding: 0.3rem 0.6rem !important; font-size: 0.8rem !important; }
.btn-danger {
    border: none; cursor: pointer; padding: 0.5rem 0.875rem; border-radius: 6px;
    font-size: 0.8rem; font-weight: 600; background: var(--fd-danger-soft); color: var(--fd-danger);
    transition: all 0.15s;
}
.btn-danger:hover { background: var(--fd-danger); color: white; }

/* Karten-Detail-Modal */
.kb-karte-modal { max-width: 700px; }
.kb-karte-detail { display: flex; gap: 1.5rem; }
.kb-detail-links { flex: 1; min-width: 0; }
.kb-detail-rechts { width: 200px; flex-shrink: 0; }
.kb-modal-liste-info { font-size: 0.8rem; color: var(--fd-text-muted); }
.kb-karte-titel-input {
    width: 100%; font-size: 1.125rem; font-weight: 700; border: none;
    border-bottom: 2px solid var(--fd-border); padding: 0.25rem 0;
    background: transparent; color: var(--fd-text); outline: none;
    margin-bottom: 0.75rem;
}
.kb-karte-titel-input:focus { border-bottom-color: var(--fd-primary); }

.kb-detail-section { margin-top: 0.875rem; }
.kb-detail-section label { font-size: 0.8rem; font-weight: 600; color: var(--fd-text-secondary); display: block; margin-bottom: 0.375rem; }
.kb-detail-labels { display: flex; gap: 0.25rem; flex-wrap: wrap; }
.kb-detail-label {
    font-size: 0.75rem; padding: 0.2rem 0.5rem; border-radius: 4px;
    border: 1.5px solid; cursor: pointer; background: transparent;
    font-weight: 600; transition: all 0.15s;
}
.kb-detail-label.active { border-color: transparent !important; }
.kb-detail-personen { display: flex; flex-direction: column; gap: 0.375rem; }
.kb-detail-person { display: flex; align-items: center; gap: 0.5rem; font-size: 0.8rem; }
.kb-detail-check {
    display: flex; align-items: center; gap: 0.375rem; font-size: 0.8rem;
    color: var(--fd-text); cursor: pointer;
}
.kb-archiv-btn { width: 100%; margin-top: 0.75rem; }

/* Mitglieder-Modal */
.kb-mitglieder-modal { max-width: 400px; }
.kb-mitglied-zeile {
    display: flex; align-items: center; gap: 0.5rem; padding: 0.5rem 0;
    border-bottom: 1px solid var(--fd-border);
}
.kb-mitglied-zeile:last-child { border-bottom: none; }
.kb-mitglied-name { flex: 1; font-weight: 600; font-size: 0.875rem; }
.kb-mitglied-rolle {
    font-size: 0.7rem; color: var(--fd-text-muted); background: var(--fd-bg-secondary);
    padding: 0.1rem 0.4rem; border-radius: 4px;
}
.kb-mitglied-add { display: flex; gap: 0.375rem; margin-top: 0.75rem; align-items: center; }

/* Board-Einstellungen */
.kb-board-settings { max-width: 500px; }
.kb-label-verwaltung { margin-top: 0.75rem; }
.kb-label-verwaltung > label { font-size: 0.8rem; font-weight: 600; color: var(--fd-text-secondary); display: block; margin-bottom: 0.375rem; }
.kb-label-zeile {
    display: flex; align-items: center; gap: 0.375rem; margin-bottom: 0.375rem;
}
.kb-label-farbe { width: 12px; height: 12px; border-radius: 3px; flex-shrink: 0; }

/* Warning-Button */
.btn-warning {
    background: var(--fd-warning); color: var(--fd-surface); border: none; border-radius: 6px;
    padding: 0.375rem 0.75rem; cursor: pointer; font-size: 0.8rem;
}
.btn-warning:hover { background: var(--fd-warning); }

/* Archivieren-BestÃ¤tigung */
.kb-bestaetigung {
    margin-top: 0.5rem; padding: 0.75rem;
    background: rgba(220, 38, 38, 0.08); border: 1px solid rgba(220, 38, 38, 0.25);
    border-radius: 6px;
}
.kb-bestaetigung p { margin: 0 0 0.5rem; font-size: 0.85rem; color: var(--fd-text); }
.kb-bestaetigung-btns { display: flex; gap: 0.5rem; }

/* Papierkorb */
.kb-papierkorb-zeile {
    display: flex; align-items: center; justify-content: space-between;
    padding: 0.5rem 0.75rem; margin-bottom: 0.25rem;
    background: var(--fd-surface-alt); border-radius: 6px;
}
.kb-papierkorb-name { font-size: 0.85rem; color: var(--fd-text); flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kb-papierkorb-aktionen { display: flex; gap: 0.25rem; flex-shrink: 0; }
.kb-loeschen-btn:hover { background: rgba(220, 38, 38, 0.15); }

/* Drag & Drop */
.kb-karte-ghost {
    opacity: 0.4;
    background: var(--fd-primary) !important;
    border-radius: 8px;
}
.kb-karte-drag {
    opacity: 0.9;
    box-shadow: 0 8px 24px rgba(0,0,0,0.3);
    transform: rotate(2deg);
    z-index: 9999;
}
.kb-karte-chosen {
    box-shadow: 0 4px 12px var(--fd-primary-container);
}
.kb-liste-ghost {
    opacity: 0.3;
    background: var(--fd-primary) !important;
    border-radius: 10px;
}
.kb-liste-drag {
    opacity: 0.95;
    box-shadow: 0 12px 32px rgba(0,0,0,0.35);
    transform: rotate(1deg);
    z-index: 9999;
}
.kb-liste-chosen {
    box-shadow: 0 4px 16px var(--fd-primary-container);
}
/* Cursor fÃ¼r draggbare Elemente */
.kb-karte { cursor: grab; }
.kb-karte:active { cursor: grabbing; }
.kb-liste-header { cursor: grab; }
.kb-liste-header:active { cursor: grabbing; }

/* Responsive */
@media (max-width: 768px) {
    .kb-karte-detail { flex-direction: column; }
    .kb-detail-rechts { width: 100%; }
    .kb-karte-modal { max-width: 95vw; }
}

/* =====================================================
   ReportFlow Controlling â€“ Gemeinsames Tabellen-Design
   ===================================================== */

/* Card-Container fÃ¼r Tabellen */
.db-rechnung {
    background: var(--fd-hover);
    border-radius: 12px;
    overflow: hidden;
}

/* Header innerhalb Card */
.db-card-header {
    padding: 14px 20px;
    border-bottom: 1px solid var(--fd-hover);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.db-card-header h3 {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: var(--fd-text);
}

.db-card-header span {
    font-size: 0.7rem;
    color: var(--fd-text-tertiary);
}

.db-titel {
    text-align: center;
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--fd-text);
    margin: 0 0 1.5rem 0;
}

/* Tabelle */
.db-tabelle {
    width: 100%;
    border-collapse: collapse;
}

.db-tabelle thead th {
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--fd-text-tertiary);
    padding: 10px 20px;
    border-bottom: 1px solid var(--fd-hover);
    border-top: none;
}

.db-th-left { text-align: left; }
.db-th-right { text-align: right; }
.db-th-center { text-align: center; }

/* Zeilen */
.db-zeile td {
    padding: 12px 20px;
    border-bottom: 1px solid var(--fd-hover);
    background: transparent;
    font-size: 0.9rem;
}

.db-zeile:nth-child(even) td {
    background: var(--fd-hover);
}

.db-projekt {
    font-size: 0.9rem;
    color: var(--fd-text);
}

.db-zahl {
    text-align: right;
    font-size: 0.9rem;
    font-variant-numeric: tabular-nums;
    color: var(--fd-text);
}

/* Farbklassen fÃ¼r Werte */
.db-negativ { color: var(--fd-danger) !important; }
.db-db1 { color: var(--fd-success) !important; font-weight: 600; }
.db-db2 { color: var(--fd-info) !important; font-weight: 700; }

/* Gesamt-Zeile */
.db-gesamt td {
    padding: 12px 20px;
    background: var(--fd-info-soft);
    border-top: 2px solid var(--fd-info-soft);
    border-bottom: none;
}

/* Marge-Kacheln (Deckungsbeitrag) */
.db-marge-kachel {
    border-radius: 10px;
    padding: 16px;
}

.db-marge-db1 { background: var(--fd-success-soft); border-left: 3px solid var(--fd-success); }
.db-marge-db2 { background: var(--fd-info-soft); border-left: 3px solid var(--fd-info); }

.db-marge-label {
    font-size: 0.7rem;
    color: var(--fd-text-tertiary);
    margin-bottom: 4px;
}

.db-marge-wert {
    font-size: 1.5rem;
    font-weight: 700;
}

/* KPI-Kacheln (Budgetkontrolle / Dashboard) */
.bk-kpi {
    background: var(--fd-hover);
    border-radius: 12px;
    padding: 1.25rem;
}

.bk-kpi-label {
    font-size: 0.7rem;
    color: var(--fd-text-tertiary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.3rem;
}

.bk-kpi-wert {
    font-size: 1.75rem;
    font-weight: 700;
}

/* Ampel-Badge */
.bk-ampel-badge {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 10px;
    font-size: 0.7rem;
    font-weight: 700;
}

/* ReportFlow Footer */
.rf-footer {
    text-align: center;
    margin-top: 1.75rem;
    padding-top: 0.875rem;
    border-top: 1px solid var(--fd-hover);
    color: var(--fd-text-tertiary);
    font-size: 0.7rem;
}

/* Controlling Badges */
.ctrl-badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 8px;
    font-size: 0.7rem;
    font-weight: 600;
}
.ctrl-badge-blau { background: var(--fd-info-soft); color: var(--fd-info); }
.ctrl-badge-orange { background: rgba(249,115,22,0.15); color: var(--fd-warning); }
.ctrl-badge-lila { background: var(--fd-accent-soft); color: var(--fd-primary); }
.ctrl-badge-gruen { background: var(--fd-success-soft); color: var(--fd-success); }
.ctrl-badge-gelb { background: var(--fd-warning-soft); color: var(--fd-warning); }
.ctrl-badge-rot { background: var(--fd-danger-soft); color: var(--fd-danger); }


/* ================================================================
   OrderFlow â€“ Modul-Styles (of-*)
   ================================================================ */

/* â”€â”€ Tab-Leiste â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.of-tabs { display: flex; gap: 4px; margin-bottom: 20px; background: var(--fd-bg-muted); padding: 4px; border-radius: 10px; width: fit-content; border: 1px solid var(--fd-border); }
.of-tab { padding: 9px 18px; border-radius: 7px; border: none; cursor: pointer; font-size: 13px; font-weight: 600; background: transparent; color: var(--fd-text-secondary); display: flex; align-items: center; gap: 6px; transition: all 0.15s; }
.of-tab.active { background: var(--fd-primary); color: var(--fd-surface); }
.of-tab-count { border-radius: 10px; font-size: 10px; font-weight: 700; padding: 1px 7px; background: var(--fd-surface-alt); color: var(--fd-text-secondary); }
.of-tab.active .of-tab-count { background: var(--fd-hover); color: var(--fd-surface); }

/* â”€â”€ KPI-Kacheln â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.of-kpi-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 16px; }
.of-kpi { background: var(--fd-surface); border-radius: 10px; padding: 14px 16px; border-left: 3px solid var(--of-kpi-color, var(--fd-info)); }
.of-kpi-label { font-size: 10px; color: var(--fd-text-secondary); text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 6px; }
.of-kpi-wert { font-size: 26px; font-weight: 700; color: var(--fd-text); }
.of-kpi-wert.large { font-size: 16px; }
.of-kpi-sub { font-size: 11px; color: var(--fd-text-secondary); margin-top: 3px; }

/* â”€â”€ Listen-Container â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.of-list { background: var(--fd-surface); border-radius: 12px; overflow: hidden; border: 1px solid var(--fd-border); }
.of-list-header { padding: 13px 18px; border-bottom: 1px solid var(--fd-border); display: flex; justify-content: space-between; align-items: center; }
.of-list-title { margin: 0; font-size: 14px; font-weight: 700; color: var(--fd-text); }
.of-list-actions { display: flex; gap: 8px; }

/* â”€â”€ Spalten-Header â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.of-col-header { font-size: 10px; font-weight: 700; color: var(--fd-text-secondary); text-transform: uppercase; letter-spacing: 0.06em; }
.of-col-header.right { text-align: right; }

/* â”€â”€ Angebote-Grid â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.of-angebote-cols { display: grid; grid-template-columns: 140px 1fr 160px 90px 100px 110px 120px; padding: 9px 18px; border-bottom: 1px solid var(--fd-border); }
.of-angebote-row { display: grid; grid-template-columns: 140px 1fr 160px 90px 100px 110px 120px; padding: 12px 18px; border-bottom: 1px solid var(--fd-border); cursor: pointer; transition: background 0.15s; }
.of-angebote-row:nth-child(even) { background: var(--fd-bg-alt); }
.of-angebote-row:hover { background: var(--fd-primary-container) !important; }

/* â”€â”€ Rechnungen-Grid â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.of-rechnungen-cols { display: grid; grid-template-columns: 140px 1fr 140px 90px 100px 110px 120px 120px; padding: 9px 18px; border-bottom: 1px solid var(--fd-border); }
.of-rechnungen-row { display: grid; grid-template-columns: 140px 1fr 140px 90px 100px 110px 120px 120px; padding: 12px 18px; border-bottom: 1px solid var(--fd-border); cursor: pointer; transition: background 0.15s; }
.of-rechnungen-row:nth-child(even) { background: var(--fd-bg-alt); }
.of-rechnungen-row:hover { background: var(--fd-primary-container) !important; }
.of-rechnungen-row.ueberfaellig { background: var(--fd-danger-soft); }

/* â”€â”€ Zellen-Styles â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.of-nr { font-size: 12px; color: var(--fd-primary); font-weight: 600; font-family: monospace; }
.of-betreff { font-size: 13px; color: var(--fd-text); font-weight: 600; }
.of-sub { font-size: 11px; color: var(--fd-text-secondary); }
.of-text { font-size: 12px; color: var(--fd-text-secondary); }
.of-datum { font-size: 12px; color: var(--fd-text-secondary); }
.of-datum.warnung { color: var(--fd-danger); }
.of-datum.ueberfaellig { color: var(--fd-danger); font-weight: 700; }
.of-betrag { font-size: 13px; color: var(--fd-text); text-align: right; font-weight: 500; padding-right: 8px; }
.of-betrag.stark { font-weight: 600; }
.of-betrag.muted { font-size: 12px; color: var(--fd-text-secondary); }

/* â”€â”€ Badge / Status â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.of-badge { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px; border-radius: 20px; font-size: 11px; font-weight: 600; }
.of-badge-dot { width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; }
/* Angebot-Status */
.of-badge-entwurf     { background: var(--fd-accent-soft); color: var(--fd-text-tertiary); }
.of-badge-entwurf .of-badge-dot { background: var(--fd-text-secondary); }
.of-badge-versendet   { background: var(--fd-info-soft); color: var(--fd-info); }
.of-badge-versendet .of-badge-dot { background: var(--fd-info); }
.of-badge-angenommen  { background: var(--fd-success-soft); color: var(--fd-success); }
.of-badge-angenommen .of-badge-dot { background: var(--fd-success); }
.of-badge-abgelehnt   { background: var(--fd-danger-soft); color: var(--fd-danger); }
.of-badge-abgelehnt .of-badge-dot { background: var(--fd-danger); }
.of-badge-abgelaufen  { background: var(--fd-warning-soft); color: var(--fd-warning); }
.of-badge-abgelaufen .of-badge-dot { background: var(--fd-warning); }
/* Rechnung-Status */
.of-badge-bezahlt     { background: var(--fd-success-soft); color: var(--fd-success); }
.of-badge-bezahlt .of-badge-dot { background: var(--fd-success); }
.of-badge-ueberfaellig { background: var(--fd-danger-soft); color: var(--fd-danger); }
.of-badge-ueberfaellig .of-badge-dot { background: var(--fd-danger); }
.of-badge-storniert   { background: var(--fd-accent-soft); color: var(--fd-text-tertiary); }
.of-badge-storniert .of-badge-dot { background: var(--fd-text-secondary); }
/* Auftrag-Status */
.of-badge-offen       { background: var(--fd-info-soft); color: var(--fd-info); }
.of-badge-offen .of-badge-dot { background: var(--fd-info); }
.of-badge-in-bearbeitung { background: var(--fd-info-soft); color: var(--fd-info); }
.of-badge-in-bearbeitung .of-badge-dot { background: var(--fd-info); }
.of-badge-abgeschlossen { background: var(--fd-success-soft); color: var(--fd-success); }
.of-badge-abgeschlossen .of-badge-dot { background: var(--fd-success); }

/* â”€â”€ Detail-Ansicht â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.of-detail { background: var(--fd-surface); border-radius: 12px; overflow: hidden; border: 1px solid var(--fd-border); }
.of-detail-header { padding: 16px 20px; border-bottom: 1px solid var(--fd-border); display: flex; justify-content: space-between; align-items: flex-start; }
.of-detail-meta { display: grid; grid-template-columns: repeat(4, 1fr); padding: 12px 20px; border-bottom: 1px solid var(--fd-border); gap: 8px; }
.of-detail-meta-label { font-size: 10px; color: var(--fd-text-secondary); text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 3px; }
.of-detail-meta-val { font-size: 13px; color: var(--fd-text); }

/* â”€â”€ Positionen-Tabelle â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.of-pos-section { padding: 14px 20px; }
.of-pos-title { font-size: 12px; color: var(--fd-text-secondary); font-weight: 600; margin-bottom: 10px; text-transform: uppercase; letter-spacing: 0.05em; }
.of-pos-header { display: grid; grid-template-columns: 40px 1fr 70px 80px 110px 110px; padding: 8px 12px; border-radius: 6px 6px 0 0; background: var(--fd-primary-container); margin-bottom: 1px; }
.of-pos-row { display: grid; grid-template-columns: 40px 1fr 70px 80px 110px 110px; padding: 10px 12px; border-bottom: 1px solid var(--fd-border); }
.of-pos-row:nth-child(even) { background: var(--fd-bg-alt); }
.of-pos-nr { font-size: 12px; color: var(--fd-text-secondary); }
.of-pos-text { font-size: 13px; color: var(--fd-text); }
.of-pos-val { font-size: 13px; color: var(--fd-text-secondary); text-align: right; }
.of-pos-total { font-size: 13px; color: var(--fd-text); text-align: right; font-weight: 600; }

/* â”€â”€ Summenblock â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.of-summen { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; padding: 14px 12px; border-top: 2px solid var(--fd-border); margin-top: 2px; }
.of-summen-row { display: flex; gap: 32px; align-items: center; }
.of-summen-label { font-size: 12px; color: var(--fd-text-secondary); min-width: 100px; text-align: right; }
.of-summen-val { font-size: 14px; font-weight: 500; color: var(--fd-text-secondary); min-width: 130px; text-align: right; }
.of-summen-val.highlight { font-size: 18px; font-weight: 800; color: var(--fd-text); }

/* â”€â”€ Buttons â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.of-btn { border: none; border-radius: 7px; padding: 7px 14px; font-size: 12px; cursor: pointer; font-weight: 600; transition: opacity 0.15s; }
.of-btn:hover { opacity: 0.85; }
.of-btn-primary { background: var(--fd-primary); color: var(--fd-surface); }
.of-btn-secondary { background: var(--fd-bg-alt); color: var(--fd-text-secondary); font-weight: 400; border: 1px solid var(--fd-border); }
.of-btn-purple { background: var(--fd-accent-soft); color: var(--fd-primary); border: 1px solid var(--fd-accent-soft); }
.of-btn-success { background: var(--fd-success); color: var(--fd-surface); }
.of-btn-back { background: var(--fd-bg-alt); color: var(--fd-text-secondary); margin-bottom: 16px; font-weight: 400; border: 1px solid var(--fd-border); }

/* â”€â”€ AuftrÃ¤ge Placeholder â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.of-auftraege-placeholder { background: var(--fd-surface); border-radius: 12px; padding: 40px; text-align: center; border: 1px solid var(--fd-border); }
.of-auftraege-cards { margin-top: 20px; display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.of-auftrag-card { background: var(--fd-bg-alt); border-radius: 10px; padding: 14px 20px; text-align: left; min-width: 220px; }

/* â”€â”€ OrderFlow Modal & Formular â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.of-modal { background: var(--fd-bg); border: 1px solid var(--fd-border); border-radius: 14px; width: 90vw; max-width: 860px; max-height: 90vh; display: flex; flex-direction: column; box-shadow: var(--fd-elevation-3, 0 25px 50px rgba(0,0,0,0.25)); }
.of-modal-header { padding: 16px 24px; border-bottom: 1px solid var(--fd-border); display: flex; justify-content: space-between; align-items: center; }
.of-modal-header h2 { margin: 0; font-size: 16px; font-weight: 700; color: var(--fd-text); }
.of-modal-body { padding: 20px 24px; overflow-y: auto; flex: 1; }
.of-modal-footer { padding: 14px 24px; border-top: 1px solid var(--fd-border); display: flex; justify-content: flex-end; align-items: center; gap: 10px; }

.of-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px; }
.of-form-grid-3 { grid-template-columns: 1fr 1fr 1fr; }
.of-form-group { display: flex; flex-direction: column; gap: 4px; margin-bottom: 8px; }
.of-form-group label { font-size: 11px; color: var(--fd-text-secondary); font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; }
.of-input { background: var(--fd-bg-alt); border: 1px solid var(--fd-border); border-radius: 7px; padding: 8px 12px; font-size: 13px; color: var(--fd-text); outline: none; transition: border 0.15s; width: 100%; box-sizing: border-box; }
.of-input:focus { border-color: var(--fd-primary); }
.of-input::placeholder { color: var(--fd-text-secondary); }
select.of-input { cursor: pointer; }
select.of-input option { background: var(--fd-surface); color: var(--fd-text); }

/* Glass/Dark-Mode Fix: übernommen durch globalen Formular-Reset oben.
   select option + select Farben werden jetzt zentral gesteuert. */
/* Dark-Mode Fix: Listen-Text + Tabellen-Text lesbar */
body.dark-mode .belegarten-row,
body.dark-mode .fd-liste-zeile,
body.dark-mode .belegarten-liste,
[data-design="glass-black"] .belegarten-row,
[data-design="glass-black"] .fd-liste-zeile,
[data-design="glass-black"] .belegarten-liste,
[data-design="glass-blue"] .belegarten-row,
[data-design="glass-blue"] .fd-liste-zeile,
[data-design="glass-blue"] .belegarten-liste,
[data-design="premium"].dark-mode .belegarten-row,
[data-design="government"].dark-mode .belegarten-row { color: var(--fd-text); }
body.dark-mode .belegarten-header-row,
body.dark-mode .fd-liste-header,
[data-design="glass-black"] .belegarten-header-row,
[data-design="glass-black"] .fd-liste-header,
[data-design="glass-blue"] .belegarten-header-row,
[data-design="glass-blue"] .fd-liste-header { color: var(--fd-text-secondary); background-color: var(--fd-surface-alt); }
textarea.of-input { resize: vertical; }

/* Positionen-Editor */
.of-pos-edit-section { margin-top: 16px; }
.of-pos-edit-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.of-pos-edit-row { display: flex; align-items: flex-start; gap: 8px; margin-bottom: 6px; padding: 8px 10px; background: var(--fd-bg-muted); border-radius: 8px; border: 1px solid var(--fd-border); }
.of-pos-edit-nr { font-size: 12px; color: var(--fd-text-secondary); min-width: 24px; padding-top: 10px; text-align: center; }
.of-pos-edit-felder { display: flex; gap: 6px; flex: 1; align-items: center; flex-wrap: wrap; }
.of-input-desc { flex: 2; min-width: 180px; }
.of-input-artikel { flex: 2; min-width: 200px; font-size: 12px !important; }
.of-input-sm { width: 90px !important; flex: 0 0 90px; text-align: right; }
.of-input-xs { width: 80px !important; flex: 0 0 80px; }
.of-pos-edit-total { font-size: 13px; color: var(--fd-text); font-weight: 600; min-width: 100px; text-align: right; padding-top: 8px; }
.of-pos-edit-leer { padding: 24px; text-align: center; color: var(--fd-text-secondary); font-size: 13px; font-style: italic; }

.of-btn-icon { background: none; border: none; cursor: pointer; font-size: 14px; padding: 8px 4px; opacity: 0.5; transition: opacity 0.15s; }
.of-btn-icon:hover { opacity: 1; }
.of-btn-icon.danger:hover { filter: brightness(1.5); }
.of-btn-danger { background: var(--fd-danger-soft); color: var(--fd-danger); border: 1px solid var(--fd-danger-soft); }
.of-form-fehler { color: var(--fd-danger); font-size: 12px; margin-right: auto; }

/* ╔══════════════════════════════════════════════════════════════════════════╗
   ║  LOG-PANEL — Ziehbares Panel am unteren Rand (IDE-Style)              ║
   ╚══════════════════════════════════════════════════════════════════════════╝ */
.log-panel {
    position: fixed; bottom: 0; left: var(--sidebar-width, 260px); right: 0;
    background: var(--fd-surface); border-top: 1px solid var(--fd-border-strong);
    z-index: 100; display: flex; flex-direction: column;
    transition: height 0.15s ease;
    height: 32px; /* Geschlossen: nur Griff sichtbar */
}
.log-panel-offen { box-shadow: 0 -4px 16px rgba(0,0,0,0.12); }

.log-panel-griff {
    cursor: ns-resize; flex-shrink: 0; user-select: none;
    display: flex; flex-direction: column; align-items: center;
}
.log-panel-griff-linie {
    width: 40px; height: 3px; border-radius: 2px;
    background: var(--fd-text-tertiary); margin: 4px 0 2px; opacity: 0.5;
}
.log-panel-griff-bar {
    display: flex; align-items: center; gap: 0.75rem;
    width: 100%; padding: 0 1rem; height: 22px;
}
.log-panel-titel {
    font-size: 0.72rem; font-weight: 600; color: var(--fd-text-secondary);
    cursor: pointer; letter-spacing: 0.03em;
}
.log-panel-titel:hover { color: var(--fd-text); }
.log-panel-stats {
    font-size: 0.65rem; color: var(--fd-text-tertiary);
    font-family: var(--fd-font-mono); margin-right: auto;
}
.log-panel-aktionen { display: flex; gap: 0.25rem; }
.log-panel-btn {
    background: none; border: none; cursor: pointer; font-size: 0.75rem;
    color: var(--fd-text-tertiary); padding: 2px 6px; border-radius: 4px;
}
.log-panel-btn:hover { background: var(--fd-hover); color: var(--fd-text); }

.log-panel-inhalt {
    flex: 1; overflow: auto; margin: 0;
    padding: 0.5rem 1rem; font-size: 0.7rem; line-height: 1.5;
    font-family: var(--fd-font-mono); color: var(--fd-text-secondary);
    background: var(--fd-bg); white-space: pre-wrap; word-break: break-all;
}


/* ╔══════════════════════════════════════════════════════════════════════════╗
   ║  COMMAND PALETTE — Globale Suche (/-Taste)                            ║
   ╚══════════════════════════════════════════════════════════════════════════╝ */
.cmd-overlay {
    position: fixed; inset: 0; z-index: 9999;
    background: rgba(0,0,0,0.5); display: flex;
    justify-content: center; padding-top: 15vh;
}
.cmd-dialog {
    width: 560px; max-height: 60vh;
    background: var(--fd-surface); border: 1px solid var(--fd-border-strong);
    border-radius: var(--fd-radius-lg); box-shadow: 0 16px 48px rgba(0,0,0,0.35);
    overflow: hidden; display: flex; flex-direction: column;
}
.cmd-input-row {
    display: flex; align-items: center; gap: 0.6rem;
    padding: 0.75rem 1rem; border-bottom: 1px solid var(--fd-border);
}
.cmd-icon { font-size: 1.1rem; opacity: 0.5; }
.cmd-input {
    flex: 1; background: none; border: none; outline: none;
    font-size: 0.95rem; font-family: var(--fd-font); color: var(--fd-text);
}
.cmd-input::placeholder { color: var(--fd-text-tertiary); }
.cmd-kbd {
    font-size: 0.65rem; padding: 2px 6px; border-radius: 4px;
    background: var(--fd-bg-muted); color: var(--fd-text-tertiary);
    border: 1px solid var(--fd-border); font-family: var(--fd-font-mono);
}.cmd-liste {
    overflow-y: auto; padding: 0.4rem;
}
.cmd-item {
    display: flex; align-items: center; gap: 0.6rem; width: 100%;
    padding: 0.55rem 0.75rem; border: none; background: none;
    border-radius: var(--fd-radius-sm); cursor: pointer;
    font-family: var(--fd-font); font-size: 0.85rem;
    color: var(--fd-text); text-align: left; transition: background 0.1s;
}
.cmd-item:hover, .cmd-item-aktiv {
    background: var(--fd-accent-soft);
}
.cmd-item-aktiv {
    box-shadow: inset 0 0 0 1px var(--fd-primary-container);
}
.cmd-item-icon { font-size: 1rem; width: 1.4rem; text-align: center; flex-shrink: 0; }
.cmd-item-text { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.cmd-item-name { font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cmd-item-gruppe { font-size: 0.7rem; color: var(--fd-text-tertiary); }
.cmd-item-kbd {
    font-size: 0.6rem; padding: 1px 5px; border-radius: 3px;
    background: var(--fd-bg-muted); color: var(--fd-text-tertiary);
    border: 1px solid var(--fd-border); font-family: var(--fd-font-mono);
    flex-shrink: 0;
}
.cmd-leer {
    padding: 2rem; text-align: center; color: var(--fd-text-tertiary); font-size: 0.85rem;
}

/* === Dashboard (ReportFlow) === */
.dash-toggle {
    border: none; cursor: pointer; padding: 0.375rem 1rem; border-radius: var(--fd-radius);
    font-family: var(--fd-font); font-size: 0.78rem; font-weight: 500;
    background: var(--fd-bg-muted); color: var(--fd-text-secondary);
    transition: all 0.15s;
}
.dash-toggle:hover { background: var(--fd-border); color: var(--fd-text); }
.dash-toggle-aktiv {
    border: none; cursor: pointer; padding: 0.375rem 1rem; border-radius: var(--fd-radius);
    font-family: var(--fd-font); font-size: 0.78rem; font-weight: 600;
    background: var(--fd-primary); color: #fff;
}
.dash-vgl {
    border: 1px solid var(--fd-border); cursor: pointer; padding: 0.25rem 0.75rem;
    border-radius: var(--fd-radius); font-family: var(--fd-font); font-size: 0.72rem; font-weight: 500;
    background: transparent; color: var(--fd-text-secondary);
    transition: all 0.15s;
}
.dash-vgl:hover { border-color: var(--fd-primary); color: var(--fd-primary); }
.dash-vgl-aktiv {
    border: 1px solid var(--fd-primary); cursor: pointer; padding: 0.25rem 0.75rem;
    border-radius: var(--fd-radius); font-family: var(--fd-font); font-size: 0.72rem; font-weight: 500;
    background: var(--fd-primary-soft, rgba(95,168,211,0.12)); color: var(--fd-primary);
}
.dash-nav-btn {
    border: none; cursor: pointer; width: 1.75rem; height: 1.75rem; border-radius: var(--fd-radius);
    background: var(--fd-bg-muted); color: var(--fd-text); font-size: 0.8125rem;
    display: flex; align-items: center; justify-content: center;
    transition: all 0.15s;
}
.dash-nav-btn:hover { background: var(--fd-border); }
.dash-monat-kachel {
    padding: 0.75rem; border-radius: var(--fd-radius);
    border: 1px solid var(--fd-border); background: var(--fd-bg);
    transition: all 0.15s;
}
.dash-monat-kachel:hover { border-color: var(--fd-primary); box-shadow: 0 2px 8px var(--fd-shadow); }
.dash-monat-kachel-leer {
    padding: 0.75rem; border-radius: var(--fd-radius);
    border: 1px solid var(--fd-border); background: var(--fd-bg-muted);
    opacity: 0.5;
}

/* === Report-Karten (ReportFlow) === */
.report-karte {
    text-align: left; padding: 0.875rem 1rem; border-radius: var(--fd-radius); cursor: pointer;
    border: 1px solid var(--fd-border); background: var(--fd-bg);
    transition: all 0.15s;
}
.report-karte:hover { border-color: var(--fd-primary); box-shadow: 0 2px 8px var(--fd-shadow); }
.report-karte-aktiv {
    text-align: left; padding: 0.875rem 1rem; border-radius: var(--fd-radius); cursor: pointer;
    border: 1px solid color-mix(in srgb, var(--fd-primary) 53%, transparent);
    background: var(--fd-primary-soft, rgba(95,168,211,0.12));
    transition: all 0.15s;
}
.report-filter-chip {
    border: 1px solid var(--fd-border); cursor: pointer; padding: 0.3rem 0.75rem;
    border-radius: var(--fd-radius); font-family: var(--fd-font); font-size: 0.78rem; font-weight: 500;
    background: var(--fd-bg); color: var(--fd-text-secondary);
    transition: all 0.15s;
}
.report-filter-chip:hover { border-color: var(--fd-primary); color: var(--fd-primary); }
.report-filter-chip-aktiv {
    border: 1px solid var(--fd-primary); cursor: pointer; padding: 0.3rem 0.75rem;
    border-radius: var(--fd-radius); font-family: var(--fd-font); font-size: 0.78rem; font-weight: 600;
    background: var(--fd-primary-soft, rgba(95,168,211,0.12)); color: var(--fd-primary);
}


/* === Magic Login (v4.0.0) === */
.magic-login-container { display:flex; align-items:center; justify-content:center; min-height:60vh; }
.magic-login-card { text-align:center; padding:2.5rem; border-radius:12px; background:var(--fd-surface); border:1px solid var(--fd-border); max-width:400px; }
.magic-login-spinner { width:40px; height:40px; border:3px solid var(--fd-border); border-top-color:var(--fd-primary); border-radius:50%; animation:magic-spin 0.8s linear infinite; margin:0 auto; }
@keyframes magic-spin { to { transform:rotate(360deg); } }

/* === QR-Code Login Button (v4.0.2) === */
.btn-qr-login { width:100%; padding:10px 16px; border-radius:8px; border:1px solid var(--fd-border-strong); background:transparent; color:var(--fd-text-secondary); font-size:0.9rem; cursor:pointer; transition:all 0.2s; display:flex; align-items:center; justify-content:center; gap:8px; }
.btn-qr-login:hover { background:var(--fd-surface-alt); color:var(--fd-text-primary); border-color:var(--fd-primary); }
