/**
 * ============================================================================
 * LINDEBERGS Design System v2.0
 * ============================================================================
 * 
 * Corporate Design März 2026
 * 
 * WICHTIG: Alle Farben MÜSSEN aus diesem File verwendet werden!
 *          Keine hartcodierten Farben in anderen CSS/SCSS Dateien!
 * 
 * Theme-Unterstützung:
 * - Light Mode: Standard (:root)
 * - Dark Mode: [data-theme="dark"]
 * ============================================================================
 */

/* =============================================================================
 * DESIGN TOKENS - LIGHT MODE (Default)
 * ============================================================================= */
:root {
  /* Native Scrollbars / Form-UI an manuelles Light-Theme koppeln (data-theme auf <html>). */
  color-scheme: light;

  /* ─────────────────────────────────────────────────────────────────────────
     * Brand / Primary Colors
     * ───────────────────────────────────────────────────────────────────────── */
  --l-primary: #748b74; /* Sanftes Grün - Buttons, Akzente */
  --l-primary-hover: #5a7a5a; /* Hover-State - etwas dunkler */
  --l-primary-rgb: 116, 139, 116; /* Für rgba() Verwendung */
  --l-primary-dark: #002019; /* Dunkelgrün - Header, Footer */
  --l-primary-dark-hover: #003328;
  --l-primary-soft: rgba(116, 139, 116, 0.15);
  --l-primary-soft-strong: rgba(116, 139, 116, 0.25);
  --l-focus-ring: 0 0 0 2px rgba(116, 139, 116, 0.15);

  /* ─────────────────────────────────────────────────────────────────────────
     * Text Colors
     * ───────────────────────────────────────────────────────────────────────── */
  --l-text: #312f2c; /* Dunkelbraun - Maximale Lesbarkeit */
  --l-text-secondary: #5e5b54; /* Nebentexte */
  --l-text-muted: #7a756c; /* Gedämpft */
  --l-text-disabled: #8e8a82; /* Deaktivierte Texte */
  --l-text-on-primary: #fbf7f5; /* Text auf Primary-Hintergrund */

  /* ─────────────────────────────────────────────────────────────────────────
     * Background Colors
     * ───────────────────────────────────────────────────────────────────────── */
  --l-bg: #fbf7f5; /* Off-White - Haupt-Hintergrund */
  --l-bg-surface: #e7e4da; /* Karten, sekundäre Flächen */
  --l-bg-surface-alt: #f5f3ef; /* Alternating rows - neutral beige */
  --l-bg-elevated: #ffffff; /* Modals, Dropdowns */
  --l-bg-hover: #f1eee6; /* Hover-State für neutrale Flächen */
  --l-bg-disabled: #efede4; /* Deaktivierte Flächen */

  /* ─────────────────────────────────────────────────────────────────────────
     * Semantic Colors
     * ───────────────────────────────────────────────────────────────────────── */
  --l-success: #5a7a5a; /* Bestätigungen */
  --l-success-hover: #4a6a4a;
  --l-success-bg: #e8f0e8;
  --l-info: #607d8b; /* Neutrale Hinweise */
  --l-info-bg: #e8eef1;
  --l-warning: #997945; /* Warnungen */
  --l-warning-hover: #846739;
  --l-warning-bg: #f8f3e8;
  --l-error: #a35d5d; /* Fehler, Lösch-Buttons */
  --l-error-bg: #f5eaea;

  /* ─────────────────────────────────────────────────────────────────────────
     * Border & Divider
     * ───────────────────────────────────────────────────────────────────────── */
  --l-border: #d1cdc0; /* Standard-Border */
  --l-border-light: #e7e4da; /* Leichte Trenner */
  --l-border-focus: #002019; /* Focus-Ring */

  /* ─────────────────────────────────────────────────────────────────────────
     * Spacing
     * ───────────────────────────────────────────────────────────────────────── */
  --l-space-xs: 0.25rem; /* 4px */
  --l-space-sm: 0.5rem; /* 8px */
  --l-space-md: 1rem; /* 16px */
  --l-space-lg: 1.5rem; /* 24px */
  --l-space-xl: 2rem; /* 32px */
  --l-space-2xl: 3rem; /* 48px */

  /* ─────────────────────────────────────────────────────────────────────────
     * Border Radius
     * ───────────────────────────────────────────────────────────────────────── */
  --l-radius-sm: 4px;
  --l-radius-md: 8px;
  --l-radius-lg: 12px;
  --l-radius-xl: 16px;
  --l-radius-full: 9999px;

  /* ─────────────────────────────────────────────────────────────────────────
     * Shadows
     * ───────────────────────────────────────────────────────────────────────── */
  --l-shadow-sm: 0 1px 2px rgba(0, 32, 25, 0.05);
  --l-shadow-md: 0 4px 6px rgba(0, 32, 25, 0.07);
  --l-shadow-lg: 0 10px 15px rgba(0, 32, 25, 0.1);
  --l-shadow-xl: 0 20px 25px rgba(0, 32, 25, 0.15);

  /* ─────────────────────────────────────────────────────────────────────────
     * Typography
     * ───────────────────────────────────────────────────────────────────────── */
  --l-font-sans:
    "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --l-font-mono: "JetBrains Mono", "Fira Code", monospace;

  --l-text-xs: 0.75rem; /* 12px */
  --l-text-sm: 0.875rem; /* 14px */
  --l-text-base: 1rem; /* 16px */
  --l-text-lg: 1.125rem; /* 18px */
  --l-text-xl: 1.25rem; /* 20px */
  --l-text-2xl: 1.5rem; /* 24px */
  --l-text-3xl: 1.875rem; /* 30px */

  /* ─────────────────────────────────────────────────────────────────────────
     * Transitions
     * ───────────────────────────────────────────────────────────────────────── */
  --l-transition-fast: 150ms ease;
  --l-transition-base: 200ms ease;
  --l-transition-slow: 300ms ease;

  /* ─────────────────────────────────────────────────────────────────────────
     * Legacy Compatibility (für schrittweise Migration)
     * ───────────────────────────────────────────────────────────────────────── */
  --color-primary: var(--l-primary);
  --color-primary-hover: var(--l-primary-hover);
  --color-primary-light: var(--l-primary-soft);
  --color-primary-rgb: var(--l-primary-rgb);
  --color-secondary: var(--l-text-secondary);
  --color-secondary-hover: var(--l-text);
  --color-bg-dark: var(--l-bg-surface);
  --color-bg-darker: var(--l-bg);
  --color-bg-light: var(--l-bg-elevated);
  --color-bg-white: #ffffff;
  --color-text-primary: var(--l-text);
  --color-text-secondary: var(--l-text-secondary);
  --color-text-muted: var(--l-text-muted);
  --color-text-dark: var(--l-text);
  --color-success: var(--l-success);
  --color-danger: var(--l-error);
  --color-warning: var(--l-warning);
  --color-info: var(--l-info);
  --color-border: var(--l-border);
  --color-border-light: var(--l-border-light);
  --spacing-xs: var(--l-space-xs);
  --spacing-sm: var(--l-space-sm);
  --spacing-md: var(--l-space-md);
  --spacing-lg: var(--l-space-lg);
  --spacing-xl: var(--l-space-xl);
  --radius-sm: var(--l-radius-sm);
  --radius-md: var(--l-radius-md);
  --radius-lg: var(--l-radius-lg);

  /* Irrtümlich oft verwendet — Aliase auf offizielle Tokens (Dark/Light folgt --l-text / --l-error) */
  --l-text-primary: var(--l-text);
  --l-danger: var(--l-error);

  /* Bootstrap variable bridge (zentral statt viele Einzel-Overrides) */
  --bs-primary: var(--l-primary);
  --bs-secondary-color: var(--l-text-secondary);
  --bs-body-bg: var(--l-bg);
  --bs-body-color: var(--l-text);
  --bs-secondary-bg: var(--l-bg-surface);
  --bs-tertiary-bg: var(--l-bg-elevated);
  --bs-border-color: var(--l-border);
  --bs-border-color-translucent: var(--l-border-light);
  --bs-focus-ring-color: rgba(var(--l-primary-rgb), 0.25);
}

/* =============================================================================
 * DESIGN TOKENS - DARK MODE
 * ============================================================================= */
[data-theme="dark"] {
  /* Dunkle Scrollbars und passende System-UI auch ohne prefers-color-scheme: dark */
  color-scheme: dark;

  --l-primary: #8da18d; /* Erdigeres, helles Salbeigrün für Dark Mode */
  --l-primary-hover: #a3b5a3;
  --l-primary-rgb: 141, 161, 141;

  --l-text: #f1f0ed;
  --l-text-secondary: #cdcbc5;
  --l-text-muted: #aaa8a2;
  --l-text-disabled: #7f7d77;
  --l-text-on-primary: #1a1d1c;

  --l-bg: #181b1a;
  --l-bg-surface: #202524;
  --l-bg-surface-alt: #272d2b;
  --l-bg-elevated: #2d3432;
  --l-bg-hover: #323a38;
  --l-bg-disabled: #262c2b;

  --l-success: #78ad78;
  --l-success-hover: #8abd8a;
  --l-success-bg: #1e2a1e;
  --l-info: #7a99a8;
  --l-info-bg: #1e2528;
  --l-warning: #e0c789;
  --l-warning-hover: #ebd59f;
  --l-warning-bg: #2a251a;
  --l-error: #c07878;
  --l-error-bg: #2a1e1e;

  --l-border: #4a514e;
  --l-border-light: #3a413f;
  --l-border-focus: #4a9e8c;

  --l-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.2);
  --l-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.25);
  --l-shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.3);
  --l-shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.4);

  /* Legacy Overrides für Dark Mode */
  --color-text-primary: var(--l-text);
  --color-bg-dark: var(--l-bg-surface);
  --color-bg-darker: var(--l-bg);

  /* Bootstrap variable bridge (dark) */
  --bs-primary: var(--l-primary);
  --bs-secondary-color: var(--l-text-secondary);
  --bs-body-bg: var(--l-bg);
  --bs-body-color: var(--l-text);
  --bs-secondary-bg: var(--l-bg-surface);
  --bs-tertiary-bg: var(--l-bg-elevated);
  --bs-border-color: var(--l-border);
  --bs-border-color-translucent: var(--l-border-light);
  --bs-focus-ring-color: rgba(var(--l-primary-rgb), 0.3);
}

/* =============================================================================
 * DARK THEME COMPONENT OVERRIDES
 * ============================================================================= */

/* Grid Dark Theme Fixes */
[data-theme="dark"] .e-grid,
[data-theme="dark"] .e-grid .e-gridheader,
[data-theme="dark"] .e-grid .e-gridcontent,
[data-theme="dark"] .e-grid .e-table {
  background-color: var(--l-bg-surface) !important;
  color: var(--l-text) !important;
  border-color: var(--l-border) !important;
}

[data-theme="dark"] .e-grid .e-headercell,
[data-theme="dark"] .e-grid .e-detailheadercell {
  background-color: var(--l-bg-elevated) !important;
  color: var(--l-text-secondary) !important;
  border-color: var(--l-border) !important;
}

[data-theme="dark"] .e-grid .e-rowcell {
  background-color: var(--l-bg-surface) !important;
  color: var(--l-text) !important;
  border-color: var(--l-border-light) !important;
}

[data-theme="dark"] .e-grid .e-altrow .e-rowcell {
  background-color: var(--l-bg-surface-alt) !important;
}

[data-theme="dark"] .e-grid .e-row:hover .e-rowcell,
[data-theme="dark"]
  .e-grid
  .e-row:hover
  .e-rowcell:not(.e-cellselectionbackground) {
  background-color: rgba(141, 161, 141, 0.15) !important;
  color: var(--l-text) !important;
}

/* Card (e-card) Dark Theme Fixes */
[data-theme="dark"] .e-card {
  background-color: var(--l-bg-elevated) !important;
  color: var(--l-text) !important;
  border-color: var(--l-border) !important;
  box-shadow: var(--l-shadow-sm) !important;
}

[data-theme="dark"] .e-card .e-card-header-title {
  color: var(--l-text) !important;
}

[data-theme="dark"] .e-card .e-card-sub-title {
  color: var(--l-text-secondary) !important;
}

/* Dropdown/ComboBox Dark Theme Fixes */
[data-theme="dark"] .e-dropdownbase,
[data-theme="dark"] .e-popup,
[data-theme="dark"] .e-popup .e-content,
[data-theme="dark"] .e-ddl-popup {
  background-color: var(--l-bg-elevated) !important;
  color: var(--l-text) !important;
  border-color: var(--l-border) !important;
}

[data-theme="dark"] .e-input-group,
[data-theme="dark"] .e-input-group.e-control-wrapper,
[data-theme="dark"] .e-float-input,
[data-theme="dark"] .e-float-input.e-control-wrapper {
  background-color: var(--l-bg-elevated) !important;
  color: var(--l-text) !important;
  border-color: var(--l-border) !important;
}

[data-theme="dark"] .e-input-group input.e-input,
[data-theme="dark"] .e-input-group.e-control-wrapper input.e-input {
  color: var(--l-text) !important;
}

[data-theme="dark"] .e-list-item,
[data-theme="dark"] .e-dropdownbase .e-list-item {
  color: var(--l-text) !important;
  background-color: transparent !important;
}

[data-theme="dark"] .e-list-item.e-hover,
[data-theme="dark"] .e-dropdownbase .e-list-item.e-hover,
[data-theme="dark"] .e-list-item:hover {
  background-color: var(--l-bg-surface) !important;
  color: var(--l-text) !important;
}

[data-theme="dark"] .e-list-item.e-active,
[data-theme="dark"] .e-list-item.e-selected,
[data-theme="dark"] .e-dropdownbase .e-list-item.e-active,
[data-theme="dark"] .e-dropdownbase .e-list-item.e-selected {
  background-color: var(--l-primary-soft) !important;
  color: var(--l-primary) !important;
}

/* Sidebar Fixes */
[data-theme="dark"] .l-sidebar,
[data-theme="dark"] .e-sidebar {
  background-color: var(--l-bg-elevated) !important;
  color: var(--l-text) !important;
  border-right: 1px solid var(--l-border) !important;
}

/* =============================================================================
 * GLOBAL STYLES
 * ============================================================================= */

/* Base styles */
body {
  font-family: var(--l-font-sans);
  background-color: var(--l-bg);
  color: var(--l-text);
  line-height: 1.5;
}

/* Headings */
h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
  color: var(--l-text);
  font-weight: 600;
}

/* Links */
a {
  color: var(--l-primary);
  text-decoration: none;
  transition: color var(--l-transition-fast);
}

a:hover {
  color: var(--l-primary-hover);
}

/* Labels */
label,
.form-label {
  color: var(--l-text);
  font-size: var(--l-text-sm);
  font-weight: 500;
}

/* =============================================================================
 * L-BUTTON - Lindebergs Button System
 * ============================================================================= */

.l-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--l-space-sm);
  padding: var(--l-space-sm) var(--l-space-md);
  font-size: var(--l-text-sm);
  font-weight: 500;
  line-height: 1.5;
  border-radius: var(--l-radius-md);
  border: 1px solid transparent;
  cursor: pointer;
  transition: all var(--l-transition-fast);
  text-decoration: none;
}

.l-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* Primary Button */
.l-btn--primary {
  background-color: var(--l-primary);
  color: var(--l-text-on-primary);
  border-color: var(--l-primary);
}

.l-btn--primary:hover:not(:disabled) {
  background-color: var(--l-primary-hover);
  border-color: var(--l-primary-hover);
}

/* Secondary / Outline Button */
.l-btn--secondary {
  background-color: transparent;
  color: var(--l-text);
  border-color: var(--l-border);
}

.l-btn--secondary:hover:not(:disabled) {
  background-color: var(--l-bg-surface);
  border-color: var(--l-primary);
}

/* Ghost Button */
.l-btn--ghost {
  background-color: transparent;
  color: var(--l-text);
  border-color: transparent;
}

.l-btn--ghost:hover:not(:disabled) {
  background-color: var(--l-bg-surface);
}

/* Danger Button */
.l-btn--danger {
  background-color: var(--l-error);
  color: #fff;
  border-color: var(--l-error);
}

.l-btn--danger:hover:not(:disabled) {
  background-color: #8b4d4d;
  border-color: #8b4d4d;
}

/* Success Button */
.l-btn--success {
  background-color: var(--l-success);
  color: #fff;
  border-color: var(--l-success);
}

.l-btn--success:hover:not(:disabled) {
  background-color: #4a6a4a;
  border-color: #4a6a4a;
}

/* Button Sizes */
.l-btn--sm {
  padding: var(--l-space-xs) var(--l-space-sm);
  font-size: var(--l-text-xs);
}

.l-btn--lg {
  padding: var(--l-space-md) var(--l-space-lg);
  font-size: var(--l-text-base);
}

/* Icon-only Button */
.l-btn--icon {
  padding: var(--l-space-sm);
  aspect-ratio: 1;
}

/* =============================================================================
 * L-BADGE - Lindebergs Badge System
 * ============================================================================= */

.l-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  font-size: var(--l-text-xs);
  font-weight: 500;
  line-height: 1.5;
  border-radius: var(--l-radius-full);
  white-space: nowrap;
}

.l-badge--sm {
  padding: 1px 6px;
  font-size: 10px;
}

.l-badge--lg {
  padding: 4px 12px;
  font-size: var(--l-text-sm);
}

/* Badge Variants */
.l-badge--primary {
  background-color: rgba(0, 32, 25, 0.1);
  color: var(--l-primary);
}

.l-badge--secondary {
  background-color: var(--l-bg-surface);
  color: var(--l-text-secondary);
}

.l-badge--success {
  background-color: var(--l-success-bg);
  color: var(--l-success);
}

.l-badge--warning {
  background-color: var(--l-warning-bg);
  color: var(--l-warning);
}

.l-badge--error,
.l-badge--danger {
  background-color: var(--l-error-bg);
  color: var(--l-error);
}

.l-badge--info {
  background-color: var(--l-info-bg);
  color: var(--l-info);
}

/* Solid Badge Variants */
.l-badge--primary-solid {
  background-color: var(--l-primary);
  color: var(--l-text-on-primary);
}

.l-badge--success-solid {
  background-color: var(--l-success);
  color: #fff;
}

.l-badge--warning-solid {
  background-color: var(--l-warning);
  color: #fff;
}

.l-badge--error-solid,
.l-badge--danger-solid {
  background-color: var(--l-error);
  color: #fff;
}

.l-badge--info-solid {
  background-color: var(--l-info);
  color: #fff;
}

/* =============================================================================
 * L-CARD - Lindebergs Card System
 * ============================================================================= */

.l-card {
  background-color: var(--l-bg-elevated);
  border: 1px solid var(--l-border-light);
  border-radius: var(--l-radius-lg);
  box-shadow: var(--l-shadow-sm);
  overflow: hidden;
}

.l-card__header {
  padding: var(--l-space-md) var(--l-space-lg);
  border-bottom: 1px solid var(--l-border-light);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--l-space-md);
}

.l-card__title {
  font-size: var(--l-text-lg);
  font-weight: 600;
  color: var(--l-text);
  margin: 0;
}

.l-card__body {
  padding: var(--l-space-lg);
}

.l-card__footer {
  padding: var(--l-space-md) var(--l-space-lg);
  border-top: 1px solid var(--l-border-light);
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--l-space-sm);
}

/* Card Variants */
.l-card--flat {
  box-shadow: none;
}

.l-card--surface {
  background-color: var(--l-bg-surface);
}

/* =============================================================================
 * L-INPUT - Lindebergs Input System
 * ============================================================================= */

.l-input {
  width: 100%;
  padding: var(--l-space-sm) var(--l-space-md);
  font-size: var(--l-text-sm);
  line-height: 1.5;
  color: var(--l-text);
  background-color: var(--l-bg-elevated);
  border: 1px solid var(--l-border);
  border-radius: var(--l-radius-md);
  transition:
    border-color var(--l-transition-fast),
    box-shadow var(--l-transition-fast);
}

.l-input::placeholder {
  color: var(--l-text-muted);
}

.l-input:focus {
  outline: none;
  border-color: var(--l-border-focus);
  box-shadow: 0 0 0 3px rgba(0, 32, 25, 0.1);
}

textarea.l-input {
  display: block;
  box-sizing: border-box;
  min-height: 5rem;
  resize: vertical;
  font-family: inherit;
}

.l-input:disabled {
  background-color: var(--l-bg-surface);
  cursor: not-allowed;
  opacity: 0.7;
}

/* Input States */
.l-input--error {
  border-color: var(--l-error);
}

.l-input--error:focus {
  box-shadow: 0 0 0 3px var(--l-error-bg);
}

.l-input--success {
  border-color: var(--l-success);
}

/* =============================================================================
 * L-CHECKBOX - Lindebergs Checkbox System
 * ============================================================================= */

.l-checkbox {
  display: inline-flex;
  align-items: center;
  gap: var(--l-space-sm);
  cursor: pointer;
  user-select: none;
  position: relative;
}

.l-checkbox__input {
  position: absolute;
  opacity: 0;
  width: 18px;
  height: 18px;
  margin: 0;
  pointer-events: none;
}

.l-checkbox__indicator {
  width: 18px;
  height: 18px;
  border: 2px solid var(--l-border);
  border-radius: var(--l-radius-sm);
  background-color: var(--l-bg-elevated);
  transition: all var(--l-transition-fast);
  flex-shrink: 0;
}

.l-checkbox__input:checked + .l-checkbox__indicator {
  background-color: var(--l-primary);
  border-color: var(--l-primary);
  background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='%23fbf7f5' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e");
  background-size: 100% 100%;
  background-position: center;
  background-repeat: no-repeat;
}

.l-checkbox__input:focus + .l-checkbox__indicator {
  box-shadow: 0 0 0 3px rgba(0, 32, 25, 0.1);
}

.l-checkbox__input:disabled + .l-checkbox__indicator,
.l-checkbox__input:disabled ~ .l-checkbox__label {
  opacity: 0.5;
  cursor: not-allowed;
}

.l-checkbox__label {
  font-size: var(--l-text-sm);
  color: var(--l-text);
}

/* =============================================================================
 * L-ALERT - Lindebergs Alert System
 * ============================================================================= */

.l-alert {
  display: flex;
  align-items: flex-start;
  gap: var(--l-space-md);
  padding: var(--l-space-md) var(--l-space-lg);
  border-radius: var(--l-radius-md);
  font-size: var(--l-text-sm);
}

.l-alert__icon {
  flex-shrink: 0;
  margin-top: 2px;
}

.l-alert__content {
  flex: 1;
}

.l-alert__title {
  font-weight: 600;
  margin-bottom: 4px;
}

/* Alert Variants */
.l-alert--info {
  background-color: var(--l-info-bg);
  color: var(--l-info);
  border: 1px solid var(--l-info);
}

.l-alert--success {
  background-color: var(--l-success-bg);
  color: var(--l-success);
  border: 1px solid var(--l-success);
}

.l-alert--warning {
  background-color: var(--l-warning-bg);
  color: var(--l-warning);
  border: 1px solid var(--l-warning);
}

.l-alert--error,
.l-alert--danger {
  background-color: var(--l-error-bg);
  color: var(--l-error);
  border: 1px solid var(--l-error);
}

/* =============================================================================
 * L-TABLE - Lindebergs Table System
 * ============================================================================= */

.l-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--l-text-sm);
}

.l-table th {
  text-align: left;
  padding: var(--l-space-sm) var(--l-space-md);
  font-weight: 600;
  color: var(--l-text-secondary);
  background-color: var(--l-bg-surface);
  border-bottom: 1px solid var(--l-border);
}

.l-table td {
  padding: var(--l-space-sm) var(--l-space-md);
  color: var(--l-text);
  border-bottom: 1px solid var(--l-border-light);
}

.l-table tbody tr:hover {
  background-color: var(--l-bg-surface);
}

/* =============================================================================
 * UTILITY CLASSES
 * ============================================================================= */

/* Text Colors */
.text-primary {
  color: var(--l-primary) !important;
}
.text-secondary {
  color: var(--l-text-secondary) !important;
}
.text-muted {
  color: var(--l-text-muted) !important;
}
.text-success {
  color: var(--l-success) !important;
}
.text-warning {
  color: var(--l-warning) !important;
}
.text-error,
.text-danger {
  color: var(--l-error) !important;
}
.text-info {
  color: var(--l-info) !important;
}

/* Background Colors */
.bg-primary {
  background-color: var(--l-primary) !important;
}
.bg-surface {
  background-color: var(--l-bg-surface) !important;
}
.bg-elevated {
  background-color: var(--l-bg-elevated) !important;
}

/* Border */
.border {
  border: 1px solid var(--l-border) !important;
}
.border-light {
  border: 1px solid var(--l-border-light) !important;
}

/* Spacing utilities */
.p-0 {
  padding: 0 !important;
}
.p-xs {
  padding: var(--l-space-xs) !important;
}
.p-sm {
  padding: var(--l-space-sm) !important;
}
.p-md {
  padding: var(--l-space-md) !important;
}
.p-lg {
  padding: var(--l-space-lg) !important;
}

.m-0 {
  margin: 0 !important;
}
.m-xs {
  margin: var(--l-space-xs) !important;
}
.m-sm {
  margin: var(--l-space-sm) !important;
}
.m-md {
  margin: var(--l-space-md) !important;
}
.m-lg {
  margin: var(--l-space-lg) !important;
}

.gap-xs {
  gap: var(--l-space-xs) !important;
}
.gap-sm {
  gap: var(--l-space-sm) !important;
}
.gap-md {
  gap: var(--l-space-md) !important;
}
.gap-lg {
  gap: var(--l-space-lg) !important;
}

/* =============================================================================
 * DARK THEME & COMPONENT OVERRIDES (Grid, Card, Input fixes)
 * ============================================================================= */

/* --- Grid Dark Theme Fixes --- */
.e-grid,
.e-grid .e-gridheader,
.e-grid .e-gridcontent,
.e-grid .e-table {
  background-color: var(--l-bg-surface) !important;
  color: var(--l-text) !important;
  border-color: var(--l-border) !important;
}

.e-grid .e-headercell,
.e-grid .e-detailheadercell {
  background-color: var(--l-bg-elevated) !important;
  color: var(--l-text-secondary) !important;
  border-color: var(--l-border) !important;
}

.e-grid .e-rowcell {
  background-color: var(--l-bg-surface) !important;
  color: var(--l-text) !important;
  border-color: var(--l-border-light) !important;
}

.e-grid .e-altrow .e-rowcell {
  background-color: var(--l-bg-surface-alt) !important;
}

.e-grid .e-row:hover .e-rowcell,
.e-grid .e-row:hover .e-rowcell:not(.e-cellselectionbackground) {
  background-color: rgba(
    141,
    161,
    141,
    0.15
  ) !important; /* Soft primary hover */
  color: var(--l-text) !important;
}

/* --- Card (e-card) Dark Theme Fixes --- */
.e-card {
  background-color: var(--l-bg-elevated) !important;
  color: var(--l-text) !important;
  border-color: var(--l-border) !important;
  box-shadow: var(--l-shadow-sm) !important;
  display: flex;
  flex-direction: column;
}

.e-card .e-card-header,
.e-card .e-card-content,
.e-card .e-card-actions,
.e-card .e-card-stacked {
  background-color: transparent !important;
  color: var(--l-text) !important;
}

/* Ensure card content aligns to top, not center */
.e-card .e-card-header {
  align-self: stretch !important;
  flex-shrink: 0;
}

.e-card .e-card-content {
  flex: 1;
  align-self: stretch !important;
}

.e-card .e-card-header-title {
  color: var(--l-text) !important;
}

.e-card .e-card-sub-title {
  color: var(--l-text-secondary) !important;
}

/* --- Dropdown/ComboBox Dark Theme Fixes --- */
.e-dropdownbase,
.e-popup,
.e-popup .e-content,
.e-ddl-popup {
  background-color: var(--l-bg-elevated) !important;
  color: var(--l-text) !important;
  border-color: var(--l-border) !important;
}

.e-input-group,
.e-input-group.e-control-wrapper,
.e-float-input,
.e-float-input.e-control-wrapper {
  background-color: var(--l-bg-elevated) !important;
  color: var(--l-text) !important;
  border-color: var(--l-border) !important;
}

.e-input-group input.e-input,
.e-input-group.e-control-wrapper input.e-input {
  color: var(--l-text) !important;
}

.e-list-item,
.e-dropdownbase .e-list-item {
  color: var(--l-text) !important;
  background-color: transparent !important;
}

.e-list-item.e-hover,
.e-dropdownbase .e-list-item.e-hover,
.e-list-item:hover {
  background-color: var(--l-bg-surface) !important;
  color: var(--l-text) !important;
}

.e-list-item.e-active,
.e-list-item.e-selected,
.e-dropdownbase .e-list-item.e-active,
.e-dropdownbase .e-list-item.e-selected {
  background-color: var(--l-primary-soft) !important;
  color: var(--l-primary) !important;
}

/* --- Sidebar Fixes --- */
.l-sidebar,
.e-sidebar {
  background-color: var(--l-bg-elevated) !important;
  color: var(--l-text) !important;
  border-right: 1px solid var(--l-border) !important;
}

/* Syncfusion Primary Button */
.e-btn.e-primary,
.e-css.e-btn.e-primary {
  background-color: var(--l-primary);
  border-color: var(--l-primary);
  color: var(--l-text-on-primary);
}

.e-btn.e-primary:hover,
.e-css.e-btn.e-primary:hover {
  background-color: var(--l-primary-hover);
  border-color: var(--l-primary-hover);
}

:root {
  --l-appbar-height: 56px;
  --l-dialog-viewport-gap: 20px;
}

/* Syncfusion Dialog */
.e-dialog {
  background-color: var(--l-bg-elevated);
  border: 1px solid var(--l-border-light);
}

.viewport-safe-dialog.e-dialog {
  /* Keep large dialogs below the fixed top bar while preserving centered behavior. */
  top: calc(var(--l-appbar-height) / 2) !important;
  max-height: calc(
    100vh - var(--l-appbar-height) - (2 * var(--l-dialog-viewport-gap))
  ) !important;
  max-height: calc(
    100dvh - var(--l-appbar-height) - (2 * var(--l-dialog-viewport-gap))
  ) !important;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.viewport-safe-dialog.e-dialog .e-dlg-header-content,
.viewport-safe-dialog.e-dialog .e-footer-content {
  flex: 0 0 auto;
}

.viewport-safe-dialog.e-dialog .e-dlg-content {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
}

.e-schedule-dialog.e-dialog {
  /* The scheduler editor is rendered by Syncfusion outside our layout tree, so it needs
       the same navbar-safe viewport constraints as large body-targeted dialogs. */
  top: calc(var(--l-appbar-height) / 2) !important;
  max-height: calc(
    100vh - var(--l-appbar-height) - (2 * var(--l-dialog-viewport-gap))
  ) !important;
  max-height: calc(
    100dvh - var(--l-appbar-height) - (2 * var(--l-dialog-viewport-gap))
  ) !important;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  width: min(720px, 96vw) !important;
  min-width: min(320px, 96vw) !important;
  max-width: 96vw !important;
  border-radius: var(--l-radius-lg);
  box-shadow: var(--l-shadow-lg);
}

/*
 * Kalender-Termineditor: Syncfusion setzt dynamische z-index-Werte — Obergrenze, damit
 * NestedAboveScheduleEditor-Dialoge (Änderungsverlauf, Quick-Create Episode) darüber liegen.
 */
.e-dlg-container:has(.e-schedule-dialog.e-dialog) {
  z-index: 150000 !important;
}

/*
 * Änderungsverlauf (ChangeHistoryDialog, Target=body): fester Mindest-Stack über e-schedule-dialog;
 * dialog-stacking.js hebt bei Bedarf noch über den aktuellen Syncfusion-Wert.
 */
.e-dlg-container:has(.change-history-dialog.e-dialog) {
  z-index: 210000 !important;
}

.e-dlg-container:has(.change-history-dialog.e-dialog) > .e-dlg-overlay {
  z-index: 210000 !important;
}

.change-history-dialog.e-dialog.e-popup-open {
  z-index: 210001 !important;
}

.e-schedule-dialog.e-dialog .e-dlg-header-content,
.e-schedule-dialog.e-dialog .e-footer-content {
  flex: 0 0 auto;
}

.e-schedule-dialog.e-dialog .e-dlg-content {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
}

/* Kalender: Termin-Editor — Header/Footer/Content an Corporate Design */
.e-schedule-dialog.e-dialog .e-dlg-header-content {
  /* Flex: Schließen-Icon ist Geschwister von .e-dlg-header (Theme nutzt float:right + 80%-Breite — sonst wirkt X zu hoch). */
  display: flex;
  align-items: center;
  gap: var(--l-space-xs);
  padding: 0.65rem 0.9rem;
  background: linear-gradient(
    180deg,
    var(--l-bg-elevated) 0%,
    var(--l-bg-surface-alt) 100%
  );
  border-bottom: 1px solid var(--l-border-light);
}

.e-schedule-dialog.e-dialog .e-dlg-header-content > .e-dlg-header {
  flex: 1 1 auto;
  min-width: 0;
  width: auto !important;
  /* Close kommt im DOM oft vor dem Header; Flex ohne float sonst links */
  order: 1;
}

/*
 * Theme bootstrap5.css: .e-icon-dlg-close hat top:-7px; Close-Button 20×20 + padding — Schnellaktionen nutzen 2.25rem.
 */
.e-schedule-dialog.e-dialog .e-dlg-header-content > .e-btn.e-dlg-closeicon-btn {
  float: none !important;
  flex: 0 0 auto;
  align-self: center;
  order: 2;
  margin-left: auto;
  height: 2.25rem !important;
  width: 2.25rem !important;
  min-width: 2.25rem !important;
  min-height: 2.25rem !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
}

.e-schedule-dialog.e-dialog .e-dlg-header-content .e-btn .e-btn-icon.e-icon-dlg-close {
  top: 0 !important;
  left: 0 !important;
  position: relative !important;
}

.e-schedule-dialog.e-dialog .e-dlg-header .e-title-text {
  font-size: var(--l-text-lg);
  font-weight: 600;
  color: var(--l-text);
  font-family: var(--l-font-sans);
}

/* EditorHeaderTemplate: eigener Titel statt nur lokalisierter Default-Text */
.e-schedule-dialog.e-dialog .e-dlg-header .l-schedule-editor-header-wrap {
  width: 100%;
}

.e-schedule-dialog.e-dialog .e-dlg-header .l-schedule-editor-header {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-width: 0;
  max-width: 100%;
}

/* Titel + Schnellaktionen: eine Zeile, Aktionen rechts bündig */
.e-schedule-dialog.e-dialog .e-dlg-header .l-schedule-editor-header__title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--l-space-md);
  width: 100%;
  min-width: 0;
}

.e-schedule-dialog.e-dialog .e-dlg-header .l-schedule-editor-header__title-block {
  flex: 1;
  min-width: 0;
}

.e-schedule-dialog.e-dialog
  .e-dlg-header
  .l-schedule-editor-header__subject-row {
  display: flex;
  align-items: center;
  gap: var(--l-space-sm);
  min-width: 0;
}

.e-schedule-dialog.e-dialog .e-dlg-header .l-schedule-editor-toolbar--header {
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  flex: 0 0 auto;
}

.e-schedule-dialog.e-dialog .e-dlg-header .l-schedule-editor-toolbar--header .l-schedule-editor-toolbar__main {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--l-space-xs);
  min-width: 0;
}

/*
 * Icon-Zeile (Auge / Historie / Schließen): gleiche Zielgröße und optische Mitte.
 * Ohne feste Box wirken z. B. Lucide.X oder UA-Styles bei <button> vs. <a> leicht versetzt.
 */
.e-schedule-dialog.e-dialog .e-dlg-header .l-schedule-editor-toolbar--header .l-schedule-toolbar-btn.l-btn--icon,
.appointment-schedule-editor-dialog .l-schedule-editor-toolbar--header .l-schedule-toolbar-btn.l-btn--icon {
  width: 2.25rem;
  height: 2.25rem;
  min-width: 2.25rem;
  min-height: 2.25rem;
  padding: 0 !important;
  box-sizing: border-box;
  line-height: 1 !important;
}

.e-schedule-dialog.e-dialog .e-dlg-header .l-schedule-editor-toolbar--header .l-schedule-toolbar-btn.l-btn--icon svg,
.appointment-schedule-editor-dialog .l-schedule-editor-toolbar--header .l-schedule-toolbar-btn.l-btn--icon svg {
  display: block;
  flex-shrink: 0;
}

.e-schedule-dialog.e-dialog .e-dlg-header .l-schedule-editor-header__title {
  font-size: var(--l-text-lg);
  font-weight: 600;
  color: var(--l-text);
  font-family: var(--l-font-sans);
  line-height: 1.3;
}

.e-schedule-dialog.e-dialog .e-dlg-header .l-schedule-editor-header__subject {
  font-size: var(--l-text-sm);
  font-weight: 500;
  color: var(--l-text-secondary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
}

/*
 * iPad/Touch (.e-device): Syncfusion-Theme setzt .e-dlg-header * { width:100% } —
 * Toolbar-Icons (Historie) landen sonst auf dem Titel.
 */
.e-schedule-dialog.e-device.e-dialog .e-dlg-header-content > .e-dlg-header {
  width: auto !important;
  flex: 1 1 auto;
  min-width: 0;
}

.e-schedule-dialog.e-device.e-dialog .e-dlg-header .l-schedule-editor-header-wrap {
  width: 100%;
}

.e-schedule-dialog.e-device.e-dialog .e-dlg-header .l-schedule-editor-header__title-row {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap;
  align-items: center !important;
  justify-content: space-between !important;
  width: 100% !important;
  gap: var(--l-space-sm);
}

.e-schedule-dialog.e-device.e-dialog .e-dlg-header .l-schedule-editor-header__title-block {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  width: auto !important;
}

.e-schedule-dialog.e-device.e-dialog .e-dlg-header .l-schedule-editor-toolbar--header,
.e-schedule-dialog.e-device.e-dialog .e-dlg-header .l-schedule-editor-toolbar--header .l-schedule-editor-toolbar__main,
.e-schedule-dialog.e-device.e-dialog .e-dlg-header .l-schedule-editor-toolbar--header .l-schedule-toolbar-btn {
  width: auto !important;
  flex: 0 0 auto !important;
}

/* Patient-Dashboard: Editor nur noch im Body (Header/Footer über DialogShell-Slots) */
.appointment-schedule-editor-dialog .appointment-schedule-editor-dialog__body {
  min-width: 0;
}

.appointment-schedule-editor-dialog .l-schedule-editor-header-wrap {
  width: 100%;
}

.appointment-schedule-editor-dialog .l-schedule-editor-header {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-width: 0;
  max-width: 100%;
}

.appointment-schedule-editor-dialog .l-schedule-editor-header__title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--l-space-md);
  width: 100%;
  min-width: 0;
}

.appointment-schedule-editor-dialog .l-schedule-editor-header__title-block {
  flex: 1;
  min-width: 0;
}

.appointment-schedule-editor-dialog .l-schedule-editor-toolbar--header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--l-space-xs);
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  flex: 0 0 auto;
}

.appointment-schedule-editor-dialog .l-schedule-editor-toolbar--header .l-schedule-editor-toolbar__main {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--l-space-xs);
  min-width: 0;
}

.appointment-schedule-editor-dialog .l-schedule-editor-header__title {
  font-size: var(--l-text-lg);
  font-weight: 600;
  color: var(--l-text);
  font-family: var(--l-font-sans);
  line-height: 1.3;
}

.appointment-schedule-editor-dialog .l-schedule-editor-header__subject {
  font-size: var(--l-text-sm);
  font-weight: 500;
  color: var(--l-text-secondary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
}

/*
 * Termin-Editor Formular: global unter .l-schedule-event-editor-scope.
 * Felder in CalendarScheduleEditorFormFields — Parent-.razor.css (Isolation) stylt keine Kind-DOM-Knoten.
 */
.dialog-shell.l-sch-editor-shell {
  background: transparent;
  box-shadow: none;
  border: none;
  margin: 0;
  padding: 0;
  max-width: none;
  width: 100%;
}

.l-schedule-event-editor-scope .l-sch-editor {
  display: flex;
  flex-direction: column;
  gap: var(--l-space-md);
  min-width: 0;
}

.l-schedule-event-editor-scope .l-sch-editor__section {
  display: flex;
  flex-direction: column;
  gap: var(--l-space-sm);
  padding: var(--l-space-xs) 0;
  border-bottom: 1px solid var(--l-border-light);
}

.l-schedule-event-editor-scope .l-sch-editor__section:last-of-type {
  border-bottom: none;
  padding-bottom: 0;
}

.l-schedule-event-editor-scope .l-sch-editor__section-title {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0 0 0.15rem;
  font-size: var(--l-text-sm);
  font-weight: 600;
  color: var(--l-text-secondary);
  font-family: var(--l-font-sans);
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.l-schedule-event-editor-scope .l-sch-editor__section-ico {
  flex-shrink: 0;
  opacity: 0.85;
}

.l-schedule-event-editor-scope .l-sch-editor__row {
  align-items: flex-end;
}

.l-schedule-event-editor-scope .l-sch-editor__row--grid-2 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--l-space-md);
  width: 100%;
}

.l-schedule-event-editor-scope .l-sch-editor__row--tight {
  margin-top: var(--l-space-xs);
}

.l-schedule-event-editor-scope .l-sch-editor__field-block {
  width: 100%;
  max-width: min(100%, 22rem);
}

.l-schedule-event-editor-scope .l-sch-editor__allday {
  margin-top: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--l-space-sm);
}

.l-schedule-event-editor-scope .l-sch-editor__panel--appointment .l-sch-editor__allday {
  margin-top: 0;
}

/* Mehrtägig: LCheckbox (Corporate .l-checkbox), Label wie übrige Editor-Zeilen */
.l-schedule-event-editor-scope .l-sch-editor__multiday-checkbox.l-checkbox {
  margin: 0;
}

.l-schedule-event-editor-scope .l-sch-editor__multiday-checkbox .l-checkbox__label {
  font-weight: 500;
}

.l-schedule-event-editor-scope .l-sch-editor__mismatch {
  margin-top: var(--l-space-xs);
}

.l-schedule-event-editor-scope .l-sch-editor__callout {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: var(--l-space-sm) var(--l-space-md);
  border-radius: var(--l-radius-md);
  background: color-mix(in srgb, var(--l-primary) 12%, var(--l-bg-elevated));
  border: 1px solid color-mix(in srgb, var(--l-primary) 28%, transparent);
  font-size: var(--l-text-sm);
  font-weight: 500;
  color: var(--l-text);
}

.l-schedule-event-editor-scope .l-sch-editor__callout-icon {
  flex-shrink: 0;
  color: var(--l-primary);
}

.l-schedule-event-editor-scope .l-schedule-event-editor {
  display: flex;
  flex-direction: column;
  gap: var(--l-space-xs);
  min-width: 0;
  font-family: var(--l-font-sans);
}

.l-schedule-event-editor-scope .l-schedule-editor-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--l-space-xs);
  width: 100%;
  padding: var(--l-space-xs) var(--l-space-sm);
  background: var(--l-bg-surface-alt);
  border: 1px solid var(--l-border-light);
  border-radius: var(--l-radius-md);
}

.l-schedule-event-editor-scope .l-schedule-editor-toolbar__main {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--l-space-xs);
  min-width: 0;
}

.l-schedule-event-editor-scope .l-schedule-booking-row {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  max-width: min(100%, 20rem);
}

.l-schedule-event-editor-scope .l-schedule-booking-row__control {
  width: 100%;
}

.l-schedule-event-editor-scope .l-schedule-booking-ddl.e-ddl {
  min-width: 6.5rem;
  max-width: 100%;
  display: flex !important;
  flex-direction: row !important;
  align-items: stretch !important;
}

/* Syncfusion DropDownList (readonly): Text im Dialog zuverlässig sichtbar + volle Eingabebreite */
.appointment-schedule-editor-dialog .l-schedule-booking-ddl.e-ddl {
  display: flex !important;
  flex-direction: row !important;
  align-items: stretch !important;
}

.appointment-schedule-editor-dialog .l-schedule-booking-ddl.e-ddl input.e-input.e-dropdownlist,
.l-schedule-event-editor-scope .l-schedule-booking-ddl.e-ddl input.e-input.e-dropdownlist {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  color: var(--l-text) !important;
  -webkit-text-fill-color: var(--l-text);
  opacity: 1 !important;
  font-size: var(--l-text-sm) !important;
  line-height: 1.5 !important;
  text-indent: 0 !important;
}

.l-schedule-event-editor-scope .l-schedule-event-editor .e-title-location-row,
.l-schedule-event-editor-scope .l-schedule-event-editor .e-start-end-row:not(.l-sch-editor__row) {
  display: flex;
  flex-wrap: wrap;
  gap: var(--l-space-md);
  width: 100%;
  align-items: flex-end;
}

.l-schedule-event-editor-scope .l-schedule-event-editor .l-sch-editor__row.e-start-end-row {
  display: grid;
  gap: var(--l-space-sm);
  align-items: end;
}

.l-schedule-event-editor-scope .l-schedule-event-editor .e-subject-container,
.l-schedule-event-editor-scope .l-schedule-event-editor .e-location-container {
  flex: 1 1 0;
  min-width: min(100%, 220px);
}

.l-schedule-event-editor-scope .l-schedule-event-editor .e-date-container,
.l-schedule-event-editor-scope .l-schedule-event-editor .e-time-container {
  flex: 1 1 0;
  min-width: min(100%, 200px);
}

.l-schedule-event-editor-scope .l-schedule-event-editor .e-date-picker,
.l-schedule-event-editor-scope .l-schedule-event-editor .l-field-control {
  width: 100%;
}

.l-schedule-event-editor-scope .l-field-label {
  display: block;
  font-size: var(--l-text-xs);
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--l-text-secondary);
  margin-bottom: 0.15rem;
}

.l-schedule-event-editor-scope .l-field-label--block {
  width: 100%;
  margin-bottom: 0.2rem;
}

.l-schedule-event-editor-scope .l-schedule-event-editor .e-input-group.e-control-wrapper,
.l-schedule-event-editor-scope .l-schedule-event-editor .e-ddl.e-input-group {
  width: 100% !important;
  max-width: 100%;
}

.l-schedule-event-editor-scope .l-schedule-event-editor .e-multi-select-wrapper {
  width: 100%;
}

.l-schedule-event-editor-scope .l-schedule-event-editor .e-allday-repeat-checbox {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: var(--l-space-md);
  padding-top: 2px;
  width: 100%;
}

.l-schedule-event-editor-scope .l-schedule-event-editor .e-all-day-container {
  padding-right: var(--l-space-md);
}

.l-schedule-event-editor-scope .l-schedule-event-editor .custom-field-row {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  gap: var(--l-space-md);
  align-items: flex-end;
}

.l-schedule-event-editor-scope .l-schedule-event-editor .custom-field-container {
  flex: 1 1 0;
  min-width: min(100%, 220px);
}

.l-schedule-event-editor-scope .l-schedule-event-editor .l-sch-editor__row--grid-2 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--l-space-md);
  width: 100%;
  align-items: end;
}

.l-schedule-event-editor-scope .l-schedule-event-editor .e-resources-row {
  width: 100%;
}

.l-schedule-event-editor-scope .l-schedule-event-editor .e-description-row {
  width: 100%;
}

.l-schedule-event-editor-scope .l-schedule-editor-notes {
  width: 100%;
  min-height: 3.25rem;
  field-sizing: content;
  resize: vertical;
  border-radius: var(--l-radius-md);
  border: 1px solid var(--l-border);
  background: var(--l-bg-elevated);
  color: var(--l-text);
  padding: var(--l-space-xs) var(--l-space-md);
  font-size: var(--l-text-sm);
}

.l-schedule-event-editor-scope .l-schedule-event-editor .calendar-editor-episode-mismatch {
  display: flex;
  gap: 0.5rem;
  align-items: flex-start;
  padding: 0.5rem 0.65rem;
  border-radius: var(--l-radius-md);
  border: 1px solid color-mix(in srgb, var(--l-warning, #c9a227) 45%, transparent);
  background: color-mix(in srgb, var(--l-warning, #f5e6a3) 22%, var(--l-surface, #fff));
  color: var(--l-on-surface, inherit);
  width: 100%;
}

.l-schedule-event-editor-scope .l-schedule-event-editor .calendar-editor-episode-mismatch__icon {
  flex-shrink: 0;
  line-height: 1.2;
}

.l-schedule-event-editor-scope .l-schedule-event-editor .calendar-editor-episode-mismatch__body strong {
  display: block;
  font-size: var(--l-text-sm);
  margin-bottom: 0.25rem;
}

@media only screen and (max-width: 800px) {
  .l-schedule-event-editor-scope .l-sch-editor__row--grid-2 {
    grid-template-columns: 1fr;
    gap: var(--l-space-sm);
  }

  .l-schedule-event-editor-scope .l-schedule-event-editor .e-date-container,
  .l-schedule-event-editor-scope .l-schedule-event-editor .e-time-container {
    width: 100%;
    min-width: 100%;
  }

  .l-schedule-event-editor-scope .l-schedule-booking-row {
    max-width: 100%;
  }
}

.e-schedule-dialog.e-dialog .e-dlg-content {
  padding: var(--l-space-md) var(--l-space-lg);
}

.e-schedule-dialog.e-dialog .e-footer-content {
  padding: var(--l-space-sm) var(--l-space-md) var(--l-space-md);
  border-top: 1px solid var(--l-border-light);
  background: var(--l-bg-surface-alt);
  /* Syncfusion Schedule: sonst 4px Spalt + doppelte Kante zum Inhalt */
  margin-top: 0 !important;
}

/* Termin-Editor: Footer — Löschen links, Abbrechen/Speichern rechts; volle Breite */
.e-schedule-dialog.e-dialog
  .e-footer-content.dialog-action-footer.l-schedule-editor-footer--minimal,
.e-schedule-dialog.e-dialog
  .e-footer-content
  .dialog-action-footer.l-schedule-editor-footer--minimal,
.appointment-schedule-editor-dialog.e-dialog
  .dialog-action-footer.l-schedule-editor-footer--minimal {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  justify-content: flex-start !important;
  align-items: center !important;
  width: 100% !important;
  box-sizing: border-box;
  gap: var(--l-space-sm);
}

.e-schedule-dialog.e-dialog
  .e-footer-content.dialog-action-footer.l-schedule-editor-footer--minimal
  .dialog-action-footer__right,
.e-schedule-dialog.e-dialog
  .e-footer-content
  .dialog-action-footer.l-schedule-editor-footer--minimal
  .dialog-action-footer__right,
.appointment-schedule-editor-dialog.e-dialog
  .dialog-action-footer.l-schedule-editor-footer--minimal
  .dialog-action-footer__right {
  margin-left: auto;
}

.e-schedule-dialog.e-dialog
  .e-footer-content.dialog-action-footer.l-schedule-editor-footer--minimal
  .dialog-action-footer__leading:empty,
.e-schedule-dialog.e-dialog
  .e-footer-content
  .dialog-action-footer.l-schedule-editor-footer--minimal
  .dialog-action-footer__leading:empty,
.appointment-schedule-editor-dialog.e-dialog
  .dialog-action-footer.l-schedule-editor-footer--minimal
  .dialog-action-footer__leading:empty {
  display: none;
}

.appointment-schedule-editor-dialog.e-dialog .dialog-shell-footer {
  border-top: 1px solid var(--l-border-light);
}

.e-quick-popup-wrapper {
  max-height: calc(
    100vh - var(--l-appbar-height) - (2 * var(--l-dialog-viewport-gap))
  ) !important;
  max-height: calc(
    100dvh - var(--l-appbar-height) - (2 * var(--l-dialog-viewport-gap))
  ) !important;
}

.e-dialog .e-dlg-header-content {
  background-color: var(--l-bg-elevated);
  border-bottom: 1px solid var(--l-border-light);
}

.e-dialog .e-dlg-header {
  color: var(--l-text);
}

.e-dialog .e-dlg-content {
  color: var(--l-text);
  background-color: var(--l-bg-elevated);
}

/* Syncfusion Inputs */
.e-input-group,
.e-input-group.e-control-wrapper,
.e-float-input,
.e-float-input.e-control-wrapper {
  background-color: var(--l-bg-elevated) !important;
  color: var(--l-text) !important;
  border: 1px solid var(--l-border) !important;
  border-radius: var(--l-radius-md) !important;
  overflow: hidden;
}

.e-input-group .e-input,
.e-input-group input.e-input,
.e-input-group.e-control-wrapper input.e-input,
.e-float-input .e-input,
.e-float-input input.e-input {
  color: var(--l-text) !important;
  background-color: transparent !important;
}

.e-input-group .e-input-group-icon,
.e-input-group.e-control-wrapper .e-input-group-icon,
.e-ddl.e-input-group .e-input-group-icon,
.e-ddl.e-control-wrapper .e-input-group-icon {
  background-color: transparent !important;
  border-color: inherit !important;
  color: var(--l-text-secondary) !important;
}

.e-input-group:not(.e-disabled):not(.e-float-icon-left):hover,
.e-input-group.e-control-wrapper:not(.e-disabled):hover,
.e-float-input:not(.e-disabled):hover {
  border-color: var(--l-primary) !important;
}

.e-input-group.e-input-focus,
.e-input-group.e-control-wrapper.e-input-focus,
.e-input-group.e-control-wrapper:focus-within,
.e-float-input.e-input-focus,
.e-float-input.e-control-wrapper.e-input-focus,
.e-ddl.e-input-focus,
.e-ddl.e-control-wrapper.e-input-focus,
.e-ddl.e-control-wrapper:focus-within {
  border-color: var(--l-border-focus) !important;
  box-shadow: var(--l-focus-ring) !important;
  border-radius: var(--l-radius-md) !important;
}

.e-input-group.e-input-focus .e-input-group-icon,
.e-input-group.e-control-wrapper.e-input-focus .e-input-group-icon,
.e-input-group.e-control-wrapper:focus-within .e-input-group-icon,
.e-ddl.e-control-wrapper.e-input-focus .e-input-group-icon,
.e-ddl.e-control-wrapper:focus-within .e-input-group-icon {
  border-color: inherit !important;
  color: var(--l-primary) !important;
}

/* Syncfusion Grid */
.e-grid .e-headercell {
  background-color: var(--l-bg-surface);
  color: var(--l-text);
  border-color: var(--l-border);
}

.e-grid .e-rowcell {
  color: var(--l-text);
  border-color: var(--l-border-light);
}

.e-grid .e-emptyrow td,
.e-grid .e-emptyrow .e-rowcell {
  background-color: var(--l-bg-elevated) !important;
  color: var(--l-text) !important;
  border-color: var(--l-border-light) !important;
}

.e-grid .e-row:hover .e-rowcell {
  background-color: var(--l-bg-surface);
}

/* Syncfusion Tab */
.e-tab .e-tab-header .e-toolbar-item .e-tab-text {
  color: var(--l-text-secondary);
}

.e-tab .e-tab-header .e-toolbar-item.e-active .e-tab-text {
  color: var(--l-primary);
}

.e-tab .e-tab-header .e-indicator {
  background-color: var(--l-primary);
}

.e-tab.e-fill .e-tab-header .e-toolbar-item.e-active .e-tab-wrap {
  color: var(--l-text-on-primary) !important;
  background-color: var(--l-primary) !important;
}

/* Focus States */
.e-btn:focus,
.e-input:focus,
.form-control:focus {
  box-shadow: 0 0 0 3px rgba(0, 32, 25, 0.1);
}

/* Validation States */
.valid.modified:not([type="checkbox"]) {
  outline: 1px solid var(--l-success);
}

.invalid {
  outline: 1px solid var(--l-error);
}

.validation-message {
  color: var(--l-error);
  font-size: var(--l-text-xs);
  margin-top: 4px;
}

/* Loading Progress */
.loading-progress circle:last-child {
  stroke: var(--l-primary);
}

/* =============================================================================
 * LEGACY HELPERS
 * ============================================================================= */

/* btn-remove (Legacy) */
.btn-remove {
  background: transparent;
  border: none;
  color: var(--l-text-muted);
  cursor: pointer;
  padding: 4px 8px;
  border-radius: var(--l-radius-sm);
  transition: all var(--l-transition-fast);
  flex-shrink: 0;
}

.btn-remove:hover {
  color: var(--l-error);
  background: var(--l-error-bg);
}

/* Invoice Status Dropdown */
.invoice-status-dropdown {
  min-width: 100px;
}

.invoice-status-dropdown .e-input-group {
  border-radius: var(--l-radius-sm);
}

.status-dropdown-draft .e-input-group {
  background-color: var(--l-bg-surface);
  border-color: var(--l-border);
}

.status-dropdown-sent .e-input-group {
  background-color: var(--l-info-bg);
  border-color: var(--l-info);
}

.status-dropdown-paid .e-input-group {
  background-color: var(--l-success-bg);
  border-color: var(--l-success);
}

.status-dropdown-cancelled .e-input-group {
  background-color: var(--l-error-bg);
  border-color: var(--l-error);
}

/* =============================================================================
 * PAGE LAYOUT
 * ============================================================================= */
.l-page {
  padding: var(--l-space-lg);
  max-width: 100%;
}

.l-page__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--l-space-lg);
  padding-bottom: var(--l-space-md);
  border-bottom: 1px solid var(--l-border-light);
}

.l-page__title {
  display: flex;
  align-items: center;
  gap: var(--l-space-sm);
  font-size: var(--l-text-2xl);
  font-weight: 600;
  color: var(--l-text);
  margin: 0;
}

.l-page__icon {
  width: 24px;
  height: 24px;
  color: var(--l-primary);
}

.l-page__actions {
  display: flex;
  gap: var(--l-space-sm);
}

/* =============================================================================
 * TEXT UTILITIES
 * ============================================================================= */
.l-text--muted {
  color: var(--l-text-muted);
}

.l-text--secondary {
  color: var(--l-text-secondary);
}

.l-text--primary {
  color: var(--l-primary);
}

.l-text--success {
  color: var(--l-success);
}

.l-text--warning {
  color: var(--l-warning);
}

.l-text--error {
  color: var(--l-error);
}

.l-text--sm {
  font-size: var(--l-text-sm);
}

.l-text--xs {
  font-size: var(--l-text-xs);
}

/* =============================================================================
 * FILTER BAR
 * ============================================================================= */
.l-filter-bar {
  background: var(--l-bg-surface);
  border: 1px solid var(--l-border-light);
  border-radius: var(--l-radius-md);
  padding: var(--l-space-md);
  margin-bottom: var(--l-space-lg);
}

.l-filter-bar__row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: var(--l-space-md);
}

.l-filter-bar__group {
  display: flex;
  flex-direction: column;
  gap: var(--l-space-xs);
}

.l-filter-bar__label {
  font-size: var(--l-text-sm);
  color: var(--l-text-secondary);
}

.l-filter-bar__info {
  margin-top: var(--l-space-sm);
  font-size: var(--l-text-sm);
  color: var(--l-text-muted);
  display: flex;
  align-items: center;
  gap: var(--l-space-xs);
}

/* =============================================================================
 * PAGINATION
 * ============================================================================= */
.l-pagination {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: var(--l-space-md);
  padding: var(--l-space-sm) 0;
}

.l-pagination__controls {
  display: flex;
  align-items: center;
  gap: var(--l-space-sm);
}

/* =============================================================================
 * SELECT (Native)
 * ============================================================================= */
.l-select {
  appearance: none;
  background-color: var(--l-bg-elevated);
  border: 1px solid var(--l-border);
  border-radius: var(--l-radius-md);
  padding: var(--l-space-sm) var(--l-space-md);
  padding-right: var(--l-space-xl);
  font-size: var(--l-text-base);
  color: var(--l-text);
  cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235E5B54' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 8px center;
  transition:
    border-color var(--l-transition-fast),
    box-shadow var(--l-transition-fast);
}

.l-select:hover {
  border-color: var(--l-primary);
}

.l-select:focus {
  outline: none;
  border-color: var(--l-primary);
  box-shadow: 0 0 0 2px rgba(var(--l-primary-rgb), 0.15);
}

.l-select--sm {
  padding: var(--l-space-xs) var(--l-space-sm);
  padding-right: var(--l-space-lg);
  font-size: var(--l-text-sm);
}

/* =============================================================================
 * SYNCFUSION BOOTSTRAP5 OVERRIDES - Remove Blue Hover/Active Colors
 * ============================================================================= */

/* Override Bootstrap5 primary blue with Lindebergs primary */
.e-btn.e-primary,
.e-css.e-btn.e-primary,
.e-btn.e-primary:not(:disabled),
.e-css.e-btn.e-primary:not(:disabled) {
  background-color: var(--l-primary) !important;
  border-color: var(--l-primary) !important;
  color: var(--l-text-on-primary) !important;
}

.e-btn.e-primary:hover,
.e-css.e-btn.e-primary:hover,
.e-btn.e-primary:focus,
.e-css.e-btn.e-primary:focus,
.e-btn.e-primary:active,
.e-css.e-btn.e-primary:active {
  background-color: var(--l-primary-hover) !important;
  border-color: var(--l-primary-hover) !important;
  color: var(--l-text-on-primary) !important;
}

/* Syncfusion flat/outline buttons */
.e-btn.e-flat.e-primary,
.e-btn.e-outline.e-primary,
.e-css.e-btn.e-flat.e-primary,
.e-css.e-btn.e-outline.e-primary {
  color: var(--l-text-on-primary) !important;
  background-color: var(--l-primary) !important;
  border-color: var(--l-primary) !important;
}

.e-btn.e-flat.e-primary:hover,
.e-btn.e-outline.e-primary:hover,
.e-css.e-btn.e-flat.e-primary:hover,
.e-css.e-btn.e-outline.e-primary:hover {
  background-color: var(--l-primary-hover) !important;
  border-color: var(--l-primary-hover) !important;
  color: var(--l-text-on-primary) !important;
}

/* Syncfusion outline buttons (non-primary) */
.e-btn.e-outline:not(.e-primary):not(.e-success):not(.e-danger):not(
    .e-warning
  ):not(.e-info),
.e-css.e-btn.e-outline:not(.e-primary):not(.e-success):not(.e-danger):not(
    .e-warning
  ):not(.e-info) {
  color: var(--l-text) !important;
  border-color: var(--l-border) !important;
  background-color: transparent !important;
}

.e-btn.e-outline:not(.e-primary):not(.e-success):not(.e-danger):not(
    .e-warning
  ):not(.e-info):hover,
.e-css.e-btn.e-outline:not(.e-primary):not(.e-success):not(.e-danger):not(
    .e-warning
  ):not(.e-info):hover {
  background-color: var(--l-bg-surface) !important;
  border-color: var(--l-primary) !important;
  color: var(--l-primary) !important;
}

/* Syncfusion link buttons - remove Bootstrap blue */
.e-btn.e-link,
.e-css.e-btn.e-link {
  color: var(--l-primary) !important;
}

.e-btn.e-link:hover,
.e-css.e-btn.e-link:hover {
  color: var(--l-primary-hover) !important;
  text-decoration: underline !important;
}

/* Remove Bootstrap blue focus glow from all buttons */
.e-btn:focus,
.e-css.e-btn:focus,
.btn:focus,
.e-btn:focus-visible,
.btn:focus-visible {
  box-shadow: var(--l-focus-ring) !important;
  outline: none !important;
}

/* Bootstrap button overrides */
.btn-primary,
.btn-primary:not(:disabled):not(.disabled) {
  background-color: var(--l-primary) !important;
  border-color: var(--l-primary) !important;
  color: var(--l-text-on-primary) !important;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
  background-color: var(--l-primary-hover) !important;
  border-color: var(--l-primary-hover) !important;
  color: var(--l-text-on-primary) !important;
}

.btn-outline-primary {
  color: var(--l-text) !important;
  border-color: var(--l-border) !important;
  background-color: transparent !important;
}

.btn-outline-primary:hover {
  background-color: var(--l-bg-surface) !important;
  border-color: var(--l-primary) !important;
  color: var(--l-text) !important;
}

.btn-outline-secondary {
  color: var(--l-text-secondary) !important;
  border-color: var(--l-border) !important;
  background-color: transparent !important;
}

.btn-outline-secondary:hover {
  background-color: var(--l-bg-surface) !important;
  border-color: var(--l-primary) !important;
  color: var(--l-text) !important;
}

/* Syncfusion ListView selection */
.e-listview .e-list-item.e-active,
.e-listview .e-list-item.e-focused,
.e-listview .e-list-item:focus {
  background-color: var(--l-bg-surface) !important;
  color: var(--l-text) !important;
}

[data-theme="dark"] .e-listview,
[data-theme="dark"] .e-listview .e-list-item,
[data-theme="dark"] .e-listview .e-list-group-item,
[data-theme="dark"] .e-listview .e-list-header,
[data-theme="dark"] .e-listview .e-list-parent {
  background-color: var(--l-bg-elevated) !important;
  border-color: var(--l-border-light) !important;
}

[data-theme="dark"] .e-listview .e-list-item {
  color: var(--l-text) !important;
}

.e-listview .e-list-item:hover {
  background-color: var(--l-bg-surface) !important;
}

.e-listview .e-list-item.e-active,
.e-listview .e-list-item[aria-selected="true"] {
  background-color: rgba(116, 139, 116, 0.15) !important;
  border-left: 3px solid var(--l-primary) !important;
}

/* ListView ShowCheckBox: Zeilen-`color` (.e-focused / :focus) erbt auf .e-frame und färbt den Haken falsch */
.e-listview .e-list-item.e-checklist .e-checkbox-wrapper .e-frame.e-check,
.e-listview .e-list-item.e-checklist .e-css.e-checkbox-wrapper .e-frame.e-check {
  color: var(--l-text-on-primary) !important;
}

/* Syncfusion DropDownList */
.e-dropdownbase .e-list-item.e-active,
.e-dropdownbase .e-list-item.e-item-focus {
  background-color: var(--l-bg-surface) !important;
  color: var(--l-primary) !important;
}

.e-dropdownbase .e-list-item:hover {
  background-color: var(--l-bg-surface) !important;
}

/* Syncfusion Checkbox */
.e-checkbox-wrapper .e-frame.e-check,
.e-css.e-checkbox-wrapper .e-frame.e-check {
  background-color: var(--l-primary) !important;
  border-color: var(--l-primary) !important;
}

.e-checkbox-wrapper:hover .e-frame.e-check {
  background-color: var(--l-primary-hover) !important;
  border-color: var(--l-primary-hover) !important;
}

/* Syncfusion Switch */
.e-switch-wrapper .e-switch-on {
  background-color: var(--l-primary) !important;
}

/* Syncfusion Radio Button */
.e-radio:checked + .e-label::after {
  background-color: var(--l-primary) !important;
}

.e-radio:checked + .e-label::before {
  border-color: var(--l-primary) !important;
}

/* Syncfusion DatePicker/TimePicker */
.e-calendar .e-selected span.e-day,
.e-calendar td.e-selected span.e-day {
  background-color: var(--l-primary) !important;
  color: var(--l-text-on-primary) !important;
}

.e-calendar .e-today span.e-day {
  border-color: var(--l-primary) !important;
  color: var(--l-primary) !important;
}

.e-calendar td:hover span.e-day,
.e-calendar td.e-focused-date span.e-day {
  background-color: var(--l-bg-surface) !important;
}

/* Syncfusion Scheduler */
.e-schedule .e-appointment {
  background-color: var(--l-primary) !important;
}

.e-schedule .e-selected-cell {
  background-color: rgba(116, 139, 116, 0.15) !important;
}

/* Syncfusion Grid selection */
.e-grid .e-selectionbackground {
  background-color: rgba(116, 139, 116, 0.15) !important;
}

.e-grid .e-row:hover .e-rowcell:not(.e-cellselectionbackground) {
  background-color: var(--l-bg-surface) !important;
}

/* Grid sort/focus hardening (overrides bootstrap5-dark defaults) */
.e-grid th.e-headercell[aria-sort="descending"] .e-headertext,
.e-grid th.e-headercell[aria-sort="ascending"] .e-headertext {
  color: var(--l-text) !important;
}

.e-grid .e-focused:not(.e-menu-item):not(.e-editedbatchcell) {
  box-shadow: 0 0 0 1px var(--l-primary) inset !important;
}

[data-theme="dark"]
  .e-grid
  th.e-headercell[aria-sort="descending"]
  .e-headertext,
[data-theme="dark"]
  .e-grid
  th.e-headercell[aria-sort="ascending"]
  .e-headertext {
  color: var(--l-text) !important;
}

[data-theme="dark"]
  .e-grid
  .e-focused:not(.e-menu-item):not(.e-editedbatchcell) {
  box-shadow: 0 0 0 1px var(--l-primary) inset !important;
}

/* Syncfusion Tab - Complete Override */
.e-tab .e-tab-header .e-indicator {
  background-color: var(--l-primary) !important;
}

.e-tab .e-tab-header .e-toolbar-item {
  background: transparent !important;
  transition:
    background-color 0.15s ease,
    color 0.15s ease;
}

.e-tab .e-tab-header {
  position: relative;
  background-color: var(--l-bg-surface) !important;
  border-bottom: 1px solid var(--l-border) !important;
}

/* Ensure border extends full width including after last tab */
.e-tab .e-tab-header::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 1px;
  background-color: var(--l-border);
  z-index: 0;
}

.e-tab .e-tab-header.e-toolbar,
.e-tab .e-tab-header.e-toolbar .e-toolbar-items {
  background-color: var(--l-bg-surface) !important;
}

.e-tab .e-tab-header .e-toolbar-items {
  border-bottom: none !important;
}

/* Tab hover state - visible background change */
.e-tab .e-tab-header .e-toolbar-item:hover:not(.e-active),
.e-tab .e-tab-header .e-toolbar-item:focus:not(.e-active) {
  background-color: var(--l-bg-elevated) !important;
}

.e-tab .e-tab-header .e-toolbar-item.e-active {
  background-color: var(--l-primary) !important;
  border-bottom: 1px solid var(--l-primary) !important;
  position: relative;
  z-index: 1;
}

.e-tab .e-tab-header .e-toolbar-item .e-tab-text {
  color: var(--l-text-secondary) !important;
}

/* Tab hover text color */
.e-tab .e-tab-header .e-toolbar-item:hover .e-tab-text {
  color: var(--l-text) !important;
}

/* Active tab text - ensure visibility */
.e-tab .e-tab-header .e-toolbar-item.e-active .e-tab-text {
  color: var(--l-text-on-primary) !important;
  font-weight: 600;
}

.e-tab .e-tab-header .e-toolbar-item .e-close-icon {
  color: var(--l-text-secondary) !important;
}

.e-tab .e-tab-header .e-toolbar-item:hover .e-close-icon,
.e-tab .e-tab-header .e-toolbar-item.e-active .e-close-icon {
  color: var(--l-primary) !important;
}

.e-tab .e-content {
  background-color: var(--l-bg-elevated) !important;
}

/* Syncfusion Accordion - Complete Override */
.e-acrdn-item.e-select > .e-acrdn-header,
.e-accordion .e-acrdn-item.e-select > .e-acrdn-header {
  background-color: var(--l-bg-surface) !important;
}

.e-accordion
  .e-acrdn-item.e-select.e-selected.e-expand-state
  > .e-acrdn-header
  .e-acrdn-header-content,
.e-accordion
  .e-acrdn-item.e-select.e-selected.e-expand-state
  > .e-acrdn-header:hover
  .e-acrdn-header-content,
.e-accordion
  .e-acrdn-item.e-select.e-expand-state
  > .e-acrdn-header
  .e-acrdn-header-content,
.e-accordion
  .e-acrdn-item.e-select.e-expand-state
  > .e-acrdn-header:hover
  .e-acrdn-header-content,
.e-accordion .e-acrdn-item > .e-acrdn-header:hover .e-acrdn-header-content,
.e-accordion .e-acrdn-item > .e-acrdn-header:focus .e-acrdn-header-content,
.e-accordion .e-acrdn-header-content {
  color: var(--l-text) !important;
}

.e-accordion .e-acrdn-item.e-selected > .e-acrdn-header:focus {
  box-shadow: 0 0 0 2px var(--l-primary-soft) !important;
}

.e-accordion .e-acrdn-item .e-acrdn-header:focus,
.e-accordion .e-acrdn-item .e-acrdn-header:focus-visible {
  box-shadow: 0 0 0 2px var(--l-primary-soft) !important;
  outline: none !important;
}

.e-accordion .e-acrdn-item.e-selected > .e-acrdn-header .e-acrdn-header-content,
.e-accordion
  .e-acrdn-item.e-expand-state
  > .e-acrdn-header
  .e-acrdn-header-content {
  color: var(--l-primary) !important;
}

.e-accordion .e-acrdn-item > .e-acrdn-header:hover,
.e-accordion .e-acrdn-item > .e-acrdn-header:focus {
  background-color: var(--l-bg-surface) !important;
}

.e-accordion .e-acrdn-item .e-toggle-icon,
.e-accordion .e-acrdn-item .e-acrdn-header-icon {
  color: var(--l-text-secondary) !important;
}

.e-accordion .e-acrdn-item.e-expand-state .e-toggle-icon,
.e-accordion .e-acrdn-item:hover .e-toggle-icon {
  color: var(--l-primary) !important;
}

/* Syncfusion Toolbar */
.e-toolbar .e-toolbar-item .e-tbar-btn:hover,
.e-toolbar .e-toolbar-item .e-tbar-btn:focus {
  background-color: var(--l-bg-surface) !important;
}

.e-toolbar .e-toolbar-item.e-active .e-tbar-btn {
  background-color: rgba(116, 139, 116, 0.15) !important;
  color: var(--l-primary) !important;
}

/* Syncfusion Menu/Context Menu */
.e-menu-wrapper .e-menu-item.e-focused,
.e-menu-wrapper .e-menu-item:hover,
.e-contextmenu-wrapper .e-menu-item.e-focused,
.e-contextmenu-wrapper .e-menu-item:hover {
  background-color: var(--l-bg-surface) !important;
  color: var(--l-text) !important;
}

.e-menu-wrapper .e-menu-item.e-selected,
.e-contextmenu-wrapper .e-menu-item.e-selected {
  background-color: rgba(116, 139, 116, 0.15) !important;
  color: var(--l-primary) !important;
}

/* Syncfusion TreeView */
.e-treeview .e-list-item.e-active > .e-text-content,
.e-treeview .e-list-item.e-node-focus > .e-text-content {
  background-color: rgba(116, 139, 116, 0.15) !important;
}

.e-treeview .e-list-item:hover > .e-text-content {
  background-color: var(--l-bg-surface) !important;
}

/* Syncfusion Chip */
.e-chip.e-primary {
  background-color: var(--l-primary) !important;
  color: var(--l-text-on-primary) !important;
}

/* Syncfusion Toast */
.e-toast .e-toast-progress {
  background-color: var(--l-primary) !important;
}

/* Syncfusion Spinner */
.e-spinner-pane .e-spinner-inner .e-spin-material {
  stroke: var(--l-primary) !important;
}

/* Syncfusion Sidebar Override */
.e-sidebar,
.e-sidebar .e-content-animation {
  background-color: var(--l-bg-elevated) !important;
}

.e-sidebar-overlay {
  background-color: rgba(0, 0, 0, 0.3) !important;
}

/* Bootstrap5 light gray override */
.bg-light,
.e-sidebar.e-left,
.e-sidebar.e-right {
  background-color: var(--l-bg-elevated) !important;
}

/* Focus ring override */
*:focus-visible {
  outline-color: var(--l-primary) !important;
}

/* Selection highlight */
::selection {
  background-color: rgba(116, 139, 116, 0.25);
  color: var(--l-text);
}

/* =============================================================================
 * GLOBAL DIALOG OVERRIDES - Fix hardcoded dark theme colors
 * ============================================================================= */

/* Dialog header and footer backgrounds */
.e-dialog .e-dlg-header-content,
.e-dlg-header-content {
  background: var(--l-bg-elevated) !important;
  border-bottom: 1px solid var(--l-border-light) !important;
}

.e-dialog .e-footer-content,
.e-footer-content {
  background: var(--l-bg-elevated) !important;
  border-top: 1px solid var(--l-border-light) !important;
}

.e-dialog .e-dlg-content,
.e-dlg-content {
  background: var(--l-bg-elevated) !important;
  color: var(--l-text) !important;
}

/*
 * Syncfusion SfDialog (bootstrap5.css = heller Skin): Kopf nutzt --l-bg-elevated, das Schließen-Icon
 * bliebe sonst dunkel auf dunklem Grund; der Rahmen stammt vom hellen Button-Default.
 */
.e-dialog .e-dlg-header-content .e-btn.e-dlg-closeicon-btn {
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

.e-dialog .e-dlg-header-content .e-btn.e-dlg-closeicon-btn .e-btn-icon,
.e-dialog .e-dlg-header-content .e-btn.e-dlg-closeicon-btn .e-icon-dlg-close,
.e-dialog
  .e-dlg-header-content
  .e-btn.e-dlg-closeicon-btn
  .e-icon-dlg-close::before {
  color: var(--l-text-secondary) !important;
}

.e-dialog .e-dlg-header-content .e-btn.e-dlg-closeicon-btn:hover,
.e-dialog .e-dlg-header-content .e-btn.e-dlg-closeicon-btn:focus {
  background-color: transparent !important;
  border: none !important;
}

.e-dialog .e-dlg-header-content .e-btn.e-dlg-closeicon-btn:hover .e-btn-icon,
.e-dialog
  .e-dlg-header-content
  .e-btn.e-dlg-closeicon-btn:hover
  .e-icon-dlg-close,
.e-dialog
  .e-dlg-header-content
  .e-btn.e-dlg-closeicon-btn:hover
  .e-icon-dlg-close::before,
.e-dialog .e-dlg-header-content .e-btn.e-dlg-closeicon-btn:focus .e-btn-icon,
.e-dialog
  .e-dlg-header-content
  .e-btn.e-dlg-closeicon-btn:focus
  .e-icon-dlg-close,
.e-dialog
  .e-dlg-header-content
  .e-btn.e-dlg-closeicon-btn:focus
  .e-icon-dlg-close::before {
  color: var(--l-text) !important;
}

/* Dialog inputs with dark backgrounds (Checkbox/Radio ausnehmen — sonst kein sichtbarer Checked-Zustand) */
.e-dialog input:not([type="checkbox"]):not([type="radio"]),
.e-dialog select,
.e-dialog textarea,
.e-dialog .e-input-group,
.e-dialog .e-input {
  background-color: var(--l-bg-elevated) !important;
  border-color: var(--l-border) !important;
  color: var(--l-text) !important;
}

.e-dialog input:not([type="checkbox"]):not([type="radio"]):focus,
.e-dialog select:focus,
.e-dialog textarea:focus,
.e-dialog .e-input-group.e-input-focus {
  border-color: var(--l-primary) !important;
  box-shadow: 0 0 0 2px rgba(116, 139, 116, 0.15) !important;
}

/* Fix section labels and text colors in dialogs */
.e-dialog .section-label,
.section-label {
  color: var(--l-text-secondary) !important;
}

.e-dialog .empty-hint,
.empty-hint {
  color: var(--l-text-muted) !important;
}

/* Fix section dividers */
.section-divider {
  border-color: var(--l-border-light) !important;
}

/* Fix item backgrounds in dialogs */
.key-result-item,
.region-item,
.step-item,
.massnahme-item,
.region-kat-tab,
.region-subkat-btn {
  background: var(--l-bg-surface) !important;
  border-color: var(--l-border) !important;
  color: var(--l-text) !important;
}

.key-result-item:hover,
.region-item:hover,
.step-item:hover,
.massnahme-item:hover,
.region-kat-tab:hover,
.region-subkat-btn:hover {
  background: var(--l-bg-surface) !important;
  border-color: var(--l-primary) !important;
}

/* Fix name/label colors */
.kr-name,
.r-name,
.massnahme-name,
.region-name {
  color: var(--l-text) !important;
}

/* Fix detail/description colors */
.r-description,
.massnahme-details {
  background: var(--l-bg-surface) !important;
  border-color: var(--l-border-light) !important;
  color: var(--l-text-secondary) !important;
}

/* Fix action colors */
.r-actions,
.massnahme-actions {
  color: var(--l-text-muted) !important;
}

/* Fix timestamp colors */
.ch-timestamp {
  color: var(--l-text-muted) !important;
}

/* Loading placeholder */
.loading-placeholder {
  background: var(--l-bg-surface) !important;
  color: var(--l-text-muted) !important;
}

/* Scan upload button */
.scan-upload {
  background: var(--l-bg-surface) !important;
  border-color: var(--l-border) !important;
  color: var(--l-text-muted) !important;
}

.scan-upload:hover {
  border-color: var(--l-primary) !important;
  color: var(--l-primary) !important;
}

/* History info sections */
.history-info {
  background: var(--l-bg-surface) !important;
}

/* Audit icon backgrounds */
.audit-icon {
  background: var(--l-bg-surface) !important;
}

/* Grid header and row hover */
.e-grid-compact .e-gridheader {
  background-color: var(--l-bg-surface) !important;
}

.e-grid-compact .e-row:hover {
  background-color: var(--l-bg-surface) !important;
}

/* Rule labels in dialogs */
.rule-label {
  color: var(--l-text-secondary) !important;
}

.rule-value {
  color: var(--l-text) !important;
}

/* ============================================================================= 
 * FORM LABEL FIX - Ensure readable on light backgrounds 
 * ============================================================================= */
.form-label {
  color: var(--l-text) !important;
}

/* ============================================================================= 
 * ACCORDION BORDERS & ARROW ICON FIX 
 * ============================================================================= */
.e-accordion,
.e-accordion .e-acrdn-item,
.e-accordion .e-acrdn-header,
.e-accordion .e-acrdn-panel {
  border-color: var(--l-border) !important;
}

/* Fix accordion arrow icon - remove Bootstrap blue */
.e-accordion .e-toggle-icon .e-icons,
.e-accordion .e-acrdn-header .e-toggle-icon,
.e-accordion .e-tgl-collapse-icon {
  color: var(--l-text-secondary) !important;
}

.e-accordion .e-acrdn-item.e-expand-state .e-toggle-icon .e-icons,
.e-accordion .e-acrdn-item:hover .e-toggle-icon .e-icons {
  color: var(--l-primary) !important;
}

/* ============================================================================= 
 * BEHANDLUNGSPLAN & HISTORY SECTION - Theme-aware 
 * ============================================================================= */
.behandlungsplan-section,
.history-section {
  background: var(--l-bg-surface) !important;
  border-radius: var(--l-radius-md);
  padding: 1rem;
  margin-top: 1rem;
  border: 1px solid var(--l-border) !important;
}

.behandlungsplan-section .section-title,
.history-section .section-title {
  color: var(--l-primary) !important;
}

.history-select {
  background: var(--l-bg-elevated) !important;
  border: 1px solid var(--l-border) !important;
  color: var(--l-text) !important;
}

.history-section-label {
  color: var(--l-text-muted) !important;
}

.history-verlauf,
.history-behandlungsplan,
.history-kr-row {
  background: var(--l-bg-elevated) !important;
  color: var(--l-text) !important;
}

/* ============================================================================= 
 * SLOT ITEM STYLES - Theme-aware 
 * ============================================================================= */
.slot-item {
  background: var(--l-bg-surface) !important;
  border-color: var(--l-border) !important;
}

.slot-item .text-light {
  color: var(--l-text) !important;
}

/* Slot status colors */
.slot-item.slot-free {
  background: var(--l-bg-elevated) !important;
  border-color: var(--l-border) !important;
}

.slot-item.slot-scheduled {
  background: var(--l-success-bg) !important;
  border-color: var(--l-success) !important;
}

.slot-item.slot-waiting {
  background: var(--l-warning-bg) !important;
  border-color: var(--l-warning) !important;
}

.slot-item.slot-completed {
  background: var(--l-info-bg) !important;
  border-color: var(--l-info) !important;
}

.slot-item.slot-skipped {
  background: var(--l-bg-surface) !important;
  border-color: var(--l-border) !important;
}

.slot-item.slot-reserved {
  background: var(--l-success-bg) !important;
  border-color: var(--l-success) !important;
}

/* ============================================================================= 
 * WIZARD STEP TITLE - Fix blue span 
 * ============================================================================= */
.wizard-step-title span {
  color: var(--l-primary) !important;
}

/* ============================================================================= 
 * KOMBI-TERMIN CARD - Theme-aware 
 * ============================================================================= */
.card[style*="background-color: #2d2d2d"],
.card[style*="background-color: #3d3d3d"] {
  background-color: var(--l-bg-surface) !important;
  border-color: var(--l-border) !important;
}

.card-header[style*="background-color: #3d3d3d"],
.card-header[style*="background-color: #1a5a3a"] {
  background-color: var(--l-bg-elevated) !important;
  border-color: var(--l-border) !important;
  color: var(--l-text) !important;
}

.card-body[style*="background-color: #2d2d2d"] {
  background-color: var(--l-bg-surface) !important;
  color: var(--l-text) !important;
}

/* General card theme fix */
.card,
.l-card {
  background-color: var(--l-bg-elevated);
  border-color: var(--l-border);
  color: var(--l-text);
}

.card-header,
.l-card__header {
  background-color: var(--l-bg-surface);
  border-color: var(--l-border);
  color: var(--l-text);
}

.l-card__header--primary {
  background-color: var(--l-primary) !important;
  border-color: var(--l-primary) !important;
  color: var(--l-text-on-primary) !important;
}

.card-body,
.l-card__body {
  background-color: var(--l-bg-elevated);
  color: var(--l-text);
}

/* Alert theme fixes */
.alert-info {
  background-color: var(--l-info-bg) !important;
  border-color: var(--l-info) !important;
  color: var(--l-text) !important;
}

/* List group theme fix */
.list-group-item {
  background-color: var(--l-bg-surface);
  border-color: var(--l-border);
  color: var(--l-text);
}

.list-group-item.active {
  background-color: var(--l-primary);
  border-color: var(--l-primary);
  color: var(--l-text-on-primary);
}

/* ============================================================================= 
 * SUCCESS BUTTON STYLES (for "Abrechnung erstellen" etc.) 
 * ============================================================================= */
.e-btn.e-success,
.e-css.e-btn.e-success {
  background-color: var(--l-primary) !important;
  border-color: var(--l-primary) !important;
  color: var(--l-text-on-primary) !important;
}

.e-btn.e-success:hover,
.e-css.e-btn.e-success:hover {
  background-color: var(--l-primary-hover) !important;
  border-color: var(--l-primary-hover) !important;
}

/* ============================================================================= 
 * WARNING BUTTON STYLES (for "Ausnahme-Zeitraum hinzufügen") 
 * ============================================================================= */
.e-btn.e-warning,
.e-css.e-btn.e-warning,
.e-btn.e-outline.e-warning {
  background-color: var(--l-primary) !important;
  border-color: var(--l-primary) !important;
  color: var(--l-text-on-primary) !important;
}

.e-btn.e-warning:hover,
.e-css.e-btn.e-warning:hover,
.e-btn.e-outline.e-warning:hover {
  background-color: var(--l-primary-hover) !important;
  border-color: var(--l-primary-hover) !important;
}

/* =============================================================================
 * SYNCFUSION SCHEDULE - Time Indicator Colors (Primary instead of blue)
 * ============================================================================= */
.e-schedule .e-vertical-view .e-clone-time-indicator,
.e-schedule .e-vertical-view .e-current-time {
  color: var(--l-primary) !important;
}

.e-schedule .e-vertical-view .e-current-timeline {
  border-top-color: var(--l-primary) !important;
}

.e-schedule .e-vertical-view .e-current-timeline::before {
  background-color: var(--l-primary) !important;
}

/* Aktuelle Uhrzeit: Lesbarkeit in schmaler Zeitskala (Touch/iPad) */
.schedule-compact.e-schedule.e-device .e-vertical-view .e-current-time {
  font-size: 9px !important;
  font-weight: 600;
  line-height: 1 !important;
  z-index: 3;
  padding: 0 2px;
  background-color: var(--l-bg-surface);
  border-radius: 2px;
  white-space: nowrap;
}

/* =============================================================================
 * INPUT GROUP ICON - Border color fix for dark theme
 * ============================================================================= */
.e-input-group .e-input-group-icon,
.e-input-group.e-control-wrapper .e-input-group-icon {
  border-color: var(--l-border) !important;
  color: var(--l-text-secondary) !important;
}

[data-theme="dark"] .e-input-group .e-input-group-icon,
[data-theme="dark"] .e-input-group.e-control-wrapper .e-input-group-icon {
  border-color: var(--l-border) !important;
  color: var(--l-text-secondary) !important;
}

/* =============================================================================
 * GRID ALTERNATING ROWS - Use design token
 * ============================================================================= */
.e-grid .e-altrow .e-rowcell {
  background-color: var(--l-bg-surface-alt) !important;
}

/* =============================================================================
 * DIALOG HEADER - Ensure text color in dark theme
 * ============================================================================= */
.e-dialog .e-dlg-header,
.e-dialog .e-dlg-header span,
.e-dialog .e-dlg-header i {
  color: var(--l-text) !important;
}

[data-theme="dark"] .e-dialog .e-dlg-header,
[data-theme="dark"] .e-dialog .e-dlg-header span,
[data-theme="dark"] .e-dialog .e-dlg-header i {
  color: var(--l-text) !important;
}

/* =============================================================================
 * ACCORDION - Dark theme content background fix
 * ============================================================================= */
[data-theme="dark"]
  .e-accordion
  .e-acrdn-item.e-select
  .e-acrdn-panel
  .e-acrdn-content {
  background-color: var(--l-bg-elevated) !important;
}

/* =============================================================================
 * CALENDAR - Today/Selected styling (use primary instead of blue)
 * ============================================================================= */
.e-calendar .e-content td.e-today span.e-day,
.e-bigger.e-small .e-calendar .e-content td.e-today span.e-day {
  border-color: var(--l-primary) !important;
  color: var(--l-primary) !important;
}

.e-calendar .e-content td.e-selected span.e-day,
.e-calendar .e-content td.e-today.e-selected span.e-day,
.e-bigger.e-small .e-calendar .e-content td.e-selected span.e-day,
.e-bigger.e-small .e-calendar .e-content td.e-today.e-selected span.e-day {
  background-color: var(--l-primary) !important;
  border: none !important;
  box-shadow: none !important;
  color: var(--l-text-on-primary) !important;
}

.e-calendar .e-content td:hover span.e-day,
.e-bigger.e-small .e-calendar .e-content td:hover span.e-day {
  background-color: var(--l-primary-soft) !important;
  color: var(--l-primary) !important;
}

.e-calendar .e-content td.tp-wh-week-picker__deviates span.e-day,
.e-bigger.e-small .e-calendar .e-content td.tp-wh-week-picker__deviates span.e-day {
  background-color: color-mix(in srgb, var(--l-text-secondary, #6b7280) 7%, var(--l-bg, #fff)) !important;
  box-shadow: none !important;
  color: inherit !important;
}

/* =============================================================================
 * CALENDAR/TOOLBAR/SCHEDULE - Dark theme backgrounds
 * ============================================================================= */
.e-calendar,
.e-bigger.e-small .e-calendar {
  background-color: var(--l-bg-elevated) !important;
  border-color: var(--l-border) !important;
}

.e-calendar .e-header,
.e-calendar .e-content,
.e-calendar .e-content table {
  background-color: var(--l-bg-elevated) !important;
}

.e-calendar .e-header .e-title,
.e-calendar .e-header .e-icon-container .e-icons {
  color: var(--l-text) !important;
}

.e-calendar .e-content td span.e-day {
  color: var(--l-text) !important;
}

.e-calendar .e-content td.e-other-month span.e-day {
  color: var(--l-text-muted) !important;
}

/* Toolbar dark theme */
.e-toolbar,
.e-toolbar .e-toolbar-items {
  background-color: var(--l-bg-elevated) !important;
  border-color: var(--l-border) !important;
}

.e-toolbar .e-tbar-btn {
  color: var(--l-text) !important;
}

/* Pager - works in both themes */
.e-pager {
  background-color: var(--l-bg-elevated) !important;
  border-color: var(--l-border) !important;
  color: var(--l-text) !important;
}

.e-pager .e-numericitem,
.e-pager .e-pager-default,
.e-pager .e-parentmsgbar,
.e-pager .e-pagercontainer,
.e-pager .e-pagerconstant {
  background-color: var(--l-bg-elevated) !important;
  color: var(--l-text) !important;
}

.e-pager .e-numericitem:not(.e-currentitem):hover,
.e-pager .e-pager-default:hover {
  background-color: var(--l-bg-surface) !important;
}

.e-pager .e-currentitem {
  background-color: var(--l-primary) !important;
  color: var(--l-text-on-primary) !important;
  border-color: var(--l-primary) !important;
}

.e-pager .e-icons {
  color: var(--l-text) !important;
}

.e-pager .e-icons:hover {
  color: var(--l-primary) !important;
}

/* Pager dark theme hardening (Syncfusion applies strong defaults on container/cells) */
[data-theme="dark"] .e-pager,
[data-theme="dark"] .e-grid .e-gridpager,
[data-theme="dark"] .e-pager .e-pagercontainer,
[data-theme="dark"] .e-pagercontainer {
  background-color: var(--l-bg-elevated) !important;
  border-color: var(--l-border) !important;
  color: var(--l-text) !important;
}

[data-theme="dark"] .e-pager .e-pagercontainer .e-first,
[data-theme="dark"] .e-pager .e-pagercontainer .e-prev,
[data-theme="dark"] .e-pager .e-pagercontainer .e-next,
[data-theme="dark"] .e-pager .e-pagercontainer .e-last,
[data-theme="dark"] .e-pager .e-pagercontainer .e-numericitem,
[data-theme="dark"] .e-pager .e-pagercontainer a.e-link {
  background-color: var(--l-bg-elevated) !important;
  border-color: var(--l-border) !important;
  color: var(--l-text) !important;
}

[data-theme="dark"] .e-pager .e-pagercontainer .e-numericitem.e-currentitem,
[data-theme="dark"] .e-pager .e-pagercontainer a.e-link.e-currentitem {
  background-color: var(--l-primary) !important;
  border-color: var(--l-primary) !important;
  color: var(--l-text-on-primary) !important;
}

[data-theme="dark"] .e-pager .e-pagercontainer .e-first:not(.e-disable):hover,
[data-theme="dark"] .e-pager .e-pagercontainer .e-prev:not(.e-disable):hover,
[data-theme="dark"] .e-pager .e-pagercontainer .e-next:not(.e-disable):hover,
[data-theme="dark"] .e-pager .e-pagercontainer .e-last:not(.e-disable):hover,
[data-theme="dark"]
  .e-pager
  .e-pagercontainer
  .e-numericitem:not(.e-currentitem):hover {
  background-color: var(--l-bg-surface) !important;
  color: var(--l-primary) !important;
}

[data-theme="dark"] .e-ddl,
[data-theme="dark"] .e-ddl.e-input-focus,
[data-theme="dark"] .e-ddl.e-control-wrapper,
[data-theme="dark"] .e-ddl.e-control-wrapper.e-input-focus,
[data-theme="dark"] .e-ddl.e-control-wrapper:focus-within,
[data-theme="dark"] .e-dropdownlist.e-control,
[data-theme="dark"] .e-dropdownlist.e-control.e-input-focus {
  background-color: var(--l-bg-elevated) !important;
  border-color: var(--l-border) !important;
  box-shadow: none !important;
  outline: none !important;
}

[data-theme="dark"] .e-ddl .e-input,
[data-theme="dark"] .e-ddl input.e-input {
  box-shadow: none !important;
  color: var(--l-text) !important;
}

[data-theme="dark"] .e-input-group.e-control-wrapper.e-ddl,
[data-theme="dark"] .e-input-group.e-control-wrapper.e-ddl.e-input-focus,
[data-theme="dark"] .e-input-group.e-control-wrapper.e-ddl:focus-within,
[data-theme="dark"] .e-input-group.e-control-wrapper.e-ddl:hover {
  background-color: var(--l-bg-elevated) !important;
  border-color: var(--l-border) !important;
  box-shadow: none !important;
  outline: none !important;
  border-radius: var(--l-radius-md) !important;
}

/* Schedule dark theme */
.e-schedule {
  background-color: var(--l-bg-elevated) !important;
  border-color: var(--l-border) !important;
}

.e-schedule .e-schedule-toolbar {
  background-color: var(--l-bg-elevated) !important;
}

.e-schedule .e-vertical-view .e-time-cells-wrap table td {
  background-color: var(--l-bg-surface) !important;
  border-color: var(--l-border) !important;
  color: var(--l-text-secondary) !important;
}

.e-schedule .e-vertical-view .e-work-cells {
  background-color: var(--l-bg-elevated) !important;
  border-color: var(--l-border-light) !important;
}

.e-schedule .e-vertical-view .e-header-cells {
  background-color: var(--l-bg-elevated) !important;
  border-color: var(--l-border) !important;
  color: var(--l-text) !important;
}

.e-schedule .e-vertical-view .e-all-day-cells {
  background-color: var(--l-bg-surface) !important;
  border-color: var(--l-border) !important;
}

.e-schedule .e-date-header-wrap table td {
  background-color: var(--l-bg-elevated) !important;
}

.e-schedule .e-header-date,
.e-schedule .e-header-day {
  color: var(--l-text) !important;
}

/* =============================================================================
 * DARK THEME: CALENDAR / TOOLBAR FINAL CONTRAST FIXES
 * ============================================================================= */
[data-theme="dark"]
  .e-schedule
  .e-vertical-view
  .e-left-indent-wrap
  table
  tbody
  td {
  background-color: var(--l-bg-elevated) !important;
  border-color: var(--l-border) !important;
}

[data-theme="dark"]
  .e-schedule
  .e-vertical-view
  .e-left-indent-wrap
  table
  tbody
  td.e-header-cells {
  height: 36px !important;
  min-height: 36px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

[data-theme="dark"]
  .e-schedule
  .e-vertical-view
  .e-date-header-wrap
  table
  tbody
  td {
  background-color: var(--l-bg-elevated) !important;
  color: var(--l-text) !important;
  border-color: var(--l-border) !important;
}

[data-theme="dark"] .e-toolbar .e-toolbar-item .e-tbar-btn .e-template {
  background-color: var(--l-primary) !important;
  border-color: var(--l-border) !important;
  color: var(--l-text) !important;
}

[data-theme="dark"] .e-toolbar .e-toolbar-item .e-tbar-btn:hover,
[data-theme="dark"] .e-toolbar .e-toolbar-item .e-tbar-btn:focus {
  background-color: rgba(116, 139, 116, 0.18) !important;
  border-color: var(--l-primary) !important;
}

[data-theme="dark"]
  .e-toolbar
  .e-toolbar-item
  .e-tbar-btn:hover
  .e-tbar-btn-text,
[data-theme="dark"]
  .e-toolbar
  .e-toolbar-item
  .e-tbar-btn:focus
  .e-tbar-btn-text,
[data-theme="dark"] .e-toolbar .e-toolbar-item .e-tbar-btn:hover .e-icons,
[data-theme="dark"] .e-toolbar .e-toolbar-item .e-tbar-btn:focus .e-icons {
  color: var(--l-primary) !important;
}

[data-theme="dark"] .e-toolbar .e-toolbar-item.e-active .e-tbar-btn,
[data-theme="dark"]
  .e-toolbar
  .e-toolbar-item[class*="e-toolbar-item-"]
  .e-tbar-btn {
  background-color: rgba(116, 139, 116, 0.15) !important;
}

[data-theme="dark"]
  .e-toolbar
  .e-toolbar-item.e-active
  .e-tbar-btn
  .e-tbar-btn-text,
[data-theme="dark"] .e-toolbar .e-toolbar-item.e-active .e-tbar-btn .e-icons,
[data-theme="dark"]
  .e-toolbar
  .e-toolbar-item[class*="e-toolbar-item-"]
  .e-tbar-btn
  .e-tbar-btn-text,
[data-theme="dark"]
  .e-toolbar
  .e-toolbar-item[class*="e-toolbar-item-"]
  .e-tbar-btn
  .e-icons {
  color: var(--l-primary) !important;
}

[data-theme="dark"] .e-small .e-checkbox-wrapper .e-frame:hover,
[data-theme="dark"] .e-small.e-checkbox-wrapper .e-frame:hover,
[data-theme="dark"] .e-small .e-css.e-checkbox-wrapper .e-frame:hover,
[data-theme="dark"] .e-small.e-css.e-checkbox-wrapper .e-frame:hover {
  background-color: rgba(116, 139, 116, 0.2) !important;
  border-color: var(--l-primary) !important;
}

/* =============================================================================
 * SCHEDULER: Kompakte Zellhöhe via CssClass (Syncfusion-offizielles Pattern)
 * Globale Overrides – CssClass="schedule-compact" auf SfSchedule
 * ============================================================================= */

:root {
  --l-schedule-col-width: 88px;
}

/* --- Vertikale Ansichten (Day/Week/WorkWeek) --- */
/* Dynamische Slot-Höhe: verfügbare Höhe / 64 Slots (06–22 Uhr, 15-Min-Raster) */
/* Beide Tabellen: gleiche Slot-höhe; Syncfusion-Raster (Borders) nicht überschreiben. */
.schedule-compact.e-schedule {
  --l-schedule-slot-height: clamp(10px, calc((100dvh - 240px) / 64), 18px);
}

.schedule-compact.e-schedule .e-vertical-view .e-time-cells-wrap table td:not([rowspan]),
.schedule-compact.e-schedule .e-vertical-view .e-work-cells {
  height: var(--l-schedule-slot-height) !important;
  box-sizing: border-box !important;
}

/* Stundenlabel (rowspan über 4 Slots): Höhe aus den Zeilen, nicht erzwingen */
.schedule-compact.e-schedule
  .e-vertical-view
  .e-time-cells-wrap
  table
  td.e-time-cells[rowspan] {
  height: auto !important;
  vertical-align: top !important;
  text-align: right !important;
  padding: 0 4px 0 0 !important;
}

/*
 * Slot-Hover Uhrzeit (calendar-overlay.js, Elemente am document.body).
 * Nicht in Calendar.razor.css :global — Blazor scoped CSS hängt [b-…] an :global-Selektoren,
 * dann greifen die Regeln auf body-Kinder nicht.
 */
.calendar-slot-time-sidebar-guide {
  position: fixed;
  z-index: 10040;
  pointer-events: none;
  display: none;
  box-sizing: border-box;
  background-color: var(--l-primary-soft);
  box-shadow: inset 3px 0 0 var(--l-primary);
  border-radius: 0 var(--l-radius-sm) var(--l-radius-sm) 0;
}

.calendar-slot-time-tooltip {
  position: fixed;
  z-index: 10050;
  pointer-events: none;
  display: none;
  padding: var(--l-space-xs) var(--l-space-sm);
  font-family: var(--l-font-sans);
  font-size: var(--l-text-xs);
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.01em;
  border-radius: var(--l-radius-md);
  background-color: var(--l-bg-elevated);
  color: var(--l-text);
  border: 1px solid var(--l-border);
  border-left: 3px solid var(--l-primary);
  box-shadow: var(--l-shadow-md);
  white-space: nowrap;
}

.e-schedule .e-vertical-view tr.calendar-slot-time-row-hover .e-time-cells,
.e-schedule .e-vertical-view tr.calendar-slot-time-row-hover .e-work-cells {
  background-color: var(--l-primary-soft) !important;
}

/* Woche / Arbeitswoche: feste Spaltenbreite (--l-schedule-col-width) */
.schedule-compact.e-schedule.e-week-view .e-vertical-view .e-date-header-wrap table col,
.schedule-compact.e-schedule.e-week-view .e-vertical-view .e-content-wrap table col,
.schedule-compact.e-schedule.e-work-week-view .e-vertical-view .e-date-header-wrap table col,
.schedule-compact.e-schedule.e-work-week-view .e-vertical-view .e-content-wrap table col {
  min-width: var(--l-schedule-col-width) !important;
  width: var(--l-schedule-col-width) !important;
  max-width: var(--l-schedule-col-width) !important;
}

/* Tagesansicht ohne Therapeuten-Spalten: volle Breite (Firefox table-layout) */
.schedule-compact.e-schedule.e-day-view:not(:has(.e-resource-cells))
  .e-vertical-view
  .e-date-header-wrap
  table,
.schedule-compact.e-schedule.e-day-view:not(:has(.e-resource-cells))
  .e-vertical-view
  .e-content-wrap
  table,
.schedule-compact.e-schedule
  .e-vertical-view.e-day-view:not(:has(.e-resource-cells))
  .e-date-header-wrap
  table,
.schedule-compact.e-schedule
  .e-vertical-view.e-day-view:not(:has(.e-resource-cells))
  .e-content-wrap
  table {
  width: 100% !important;
  min-width: 100% !important;
}

/*
 * Tagesansicht mit Therapeuten: nur Mindestbreite + table-layout hier.
 * Tatsächliche Spaltenbreite (100%/n, min. --l-schedule-col-width): calendar-overlay.js
 */
.schedule-compact.e-schedule.e-day-view:has(.e-resource-cells)
  .e-vertical-view
  .e-date-header-wrap
  .e-schedule-table,
.schedule-compact.e-schedule.e-day-view:has(.e-resource-cells)
  .e-vertical-view
  .e-content-wrap
  .e-schedule-table,
.schedule-compact.e-schedule
  .e-vertical-view.e-day-view:has(.e-resource-cells)
  .e-date-header-wrap
  .e-schedule-table,
.schedule-compact.e-schedule
  .e-vertical-view.e-day-view:has(.e-resource-cells)
  .e-content-wrap
  .e-schedule-table {
  width: 100% !important;
  table-layout: fixed !important;
}

.schedule-compact.e-schedule.e-day-view .e-vertical-view .e-content-table,
.schedule-compact.e-schedule .e-vertical-view.e-day-view .e-content-table {
  width: 100% !important;
  table-layout: fixed !important;
}

.schedule-compact.e-schedule.e-day-view:has(.e-resource-cells)
  .e-vertical-view
  .e-date-header-wrap
  table
  col,
.schedule-compact.e-schedule.e-day-view:has(.e-resource-cells)
  .e-vertical-view
  .e-content-wrap
  table
  col,
.schedule-compact.e-schedule
  .e-vertical-view.e-day-view:has(.e-resource-cells)
  .e-date-header-wrap
  table
  col,
.schedule-compact.e-schedule
  .e-vertical-view.e-day-view:has(.e-resource-cells)
  .e-content-wrap
  table
  col {
  min-width: var(--l-schedule-col-width) !important;
}

.schedule-compact.e-schedule.e-day-view .e-vertical-view .e-content-wrap,
.schedule-compact.e-schedule .e-vertical-view.e-day-view .e-content-wrap {
  overflow-x: auto !important;
}

.schedule-compact.e-schedule.e-day-view
  .e-vertical-view
  .e-content-wrap.e-scroll-hidden,
.schedule-compact.e-schedule
  .e-vertical-view.e-day-view
  .e-content-wrap.e-scroll-hidden {
  overflow-x: auto !important;
}

.schedule-compact.e-schedule.e-day-view
  .e-vertical-view
  .e-content-wrap
  .e-table-container,
.schedule-compact.e-schedule
  .e-vertical-view.e-day-view
  .e-content-wrap
  .e-table-container {
  overflow-x: auto !important;
}

.schedule-compact.e-schedule.e-day-view:has(.e-resource-cells)
  .e-vertical-view
  .e-content-wrap
  .e-day-wrapper,
.schedule-compact.e-schedule
  .e-vertical-view.e-day-view:has(.e-resource-cells)
  .e-content-wrap
  .e-day-wrapper {
  width: 100% !important;
}

.schedule-compact.e-schedule.e-day-view:not(:has(.e-resource-cells))
  .e-vertical-view
  .e-date-header-wrap
  .e-schedule-table,
.schedule-compact.e-schedule.e-day-view:not(:has(.e-resource-cells))
  .e-vertical-view
  .e-content-wrap
  .e-schedule-table,
.schedule-compact.e-schedule
  .e-vertical-view.e-day-view:not(:has(.e-resource-cells))
  .e-date-header-wrap
  .e-schedule-table,
.schedule-compact.e-schedule
  .e-vertical-view.e-day-view:not(:has(.e-resource-cells))
  .e-content-wrap
  .e-schedule-table {
  width: 100% !important;
  min-width: 100% !important;
}

/* Syncfusion-Default für .e-work-cells ist 36px – hier mindestens --l-schedule-col-width */
.schedule-compact.e-schedule.e-day-view:has(.e-resource-cells) .e-vertical-view .e-resource-cells,
.schedule-compact.e-schedule.e-day-view:has(.e-resource-cells) .e-vertical-view .e-header-cells,
.schedule-compact.e-schedule.e-day-view:has(.e-resource-cells) .e-vertical-view .e-work-cells,
.schedule-compact.e-schedule .e-vertical-view.e-day-view:has(.e-resource-cells) .e-resource-cells,
.schedule-compact.e-schedule .e-vertical-view.e-day-view:has(.e-resource-cells) .e-header-cells,
.schedule-compact.e-schedule .e-vertical-view.e-day-view:has(.e-resource-cells) .e-work-cells {
  min-width: var(--l-schedule-col-width) !important;
  box-sizing: border-box !important;
}

.schedule-compact.e-schedule.e-day-view:has(.e-resource-cells) .e-vertical-view td.e-work-cells,
.schedule-compact.e-schedule.e-day-view:has(.e-resource-cells) .e-vertical-view td.e-header-cells {
  min-width: var(--l-schedule-col-width) !important;
}

.schedule-compact.e-schedule.e-day-view:has(.e-resource-cells) .e-vertical-view .e-appointment {
  max-width: 100% !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

.schedule-compact.e-schedule .e-vertical-view .e-content-wrap {
  overflow-x: auto !important;
  scrollbar-width: thin;
  scrollbar-color: rgba(0, 0, 0, 0.15) transparent;
  padding-bottom: 2px !important;
  min-height: 50px;
}
.schedule-compact.e-schedule
  .e-vertical-view
  .e-content-wrap::-webkit-scrollbar {
  height: 8px;
  width: 8px;
}
.schedule-compact.e-schedule
  .e-vertical-view
  .e-content-wrap::-webkit-scrollbar-track {
  background: transparent;
}
.schedule-compact.e-schedule
  .e-vertical-view
  .e-content-wrap::-webkit-scrollbar-thumb {
  background-color: rgba(0, 0, 0, 0.15);
  border-radius: 3px;
}
.schedule-compact.e-schedule
  .e-vertical-view
  .e-content-wrap::-webkit-scrollbar-thumb:hover {
  background-color: rgba(0, 0, 0, 0.3);
}

/* Kompakter Datums-Header (Fr / 15. Mai) */
.schedule-compact.e-schedule .e-vertical-view .e-header-cells,
.schedule-compact.e-schedule
  .e-vertical-view
  .e-left-indent-wrap
  table
  tbody
  td.e-header-cells {
  height: 24px !important;
  min-height: 24px !important;
  padding: 0 4px !important;
}
.schedule-compact.e-schedule .e-vertical-view .e-date-header-wrap .e-header-cells {
  height: auto !important;
  min-height: 36px !important;
  padding: 2px 4px !important;
  vertical-align: middle !important;
}
.schedule-compact.e-schedule .e-header-date,
.schedule-compact.e-schedule .e-header-day {
  font-size: 11px !important;
  line-height: 24px !important;
}
.schedule-compact.e-schedule .e-vertical-view .e-date-header-wrap .e-header-day,
.schedule-compact.e-schedule .e-vertical-view .e-date-header-wrap .e-header-date {
  display: block;
  line-height: 1.25 !important;
  white-space: nowrap;
}

/* Zeitlabels */
.schedule-compact.e-schedule .e-vertical-view .e-time-cells-wrap table td {
  font-size: 9px !important;
  line-height: 1 !important;
  vertical-align: top !important;
  padding: 0 2px !important;
}

/* Termine in kompakten Zellen */
.schedule-compact.e-schedule .e-vertical-view .e-appointment {
  min-height: 8px !important;
  font-size: 10px !important;
  line-height: 14px !important;
  padding: 1px 2px !important;
  overflow: hidden !important;
  color: #000 !important;
}

.schedule-compact.e-schedule .e-vertical-view .e-appointment .e-subject {
  font-size: 10px !important;
  line-height: 14px !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #000 !important;
}

.schedule-compact.e-schedule .e-vertical-view .e-appointment .e-time {
  display: none !important;
}

.schedule-compact.e-schedule
  .e-vertical-view
  .e-appointment
  .e-appointment-details {
  padding: 1px 2px !important;
  margin: 0 !important;
  overflow: hidden !important;
  color: #000 !important;
}

/* --- Monatsansicht: gleiche horizontale Scroll-Logik wie Week/WorkWeek --- */
.schedule-compact.e-schedule .e-month-view .e-date-header-wrap table col,
.schedule-compact.e-schedule .e-month-view .e-content-wrap table col {
  min-width: var(--l-schedule-col-width) !important;
  width: var(--l-schedule-col-width) !important;
  max-width: var(--l-schedule-col-width) !important;
}
.schedule-compact.e-schedule .e-month-view .e-date-header-wrap table,
.schedule-compact.e-schedule .e-month-view .e-content-wrap table {
  width: 100% !important;
  min-width: 100% !important;
}
.schedule-compact.e-schedule .e-month-view .e-content-wrap {
  overflow-x: auto !important;
  scrollbar-width: thin;
  scrollbar-color: rgba(0, 0, 0, 0.15) transparent;
  padding-bottom: 2px !important;
  min-height: 50px;
}
.schedule-compact.e-schedule .e-month-view .e-content-wrap::-webkit-scrollbar {
  height: 8px;
  width: 8px;
}
.schedule-compact.e-schedule
  .e-month-view
  .e-content-wrap::-webkit-scrollbar-track {
  background: transparent;
}
.schedule-compact.e-schedule
  .e-month-view
  .e-content-wrap::-webkit-scrollbar-thumb {
  background-color: rgba(0, 0, 0, 0.15);
  border-radius: 3px;
}
.schedule-compact.e-schedule
  .e-month-view
  .e-content-wrap::-webkit-scrollbar-thumb:hover {
  background-color: rgba(0, 0, 0, 0.3);
}

.schedule-compact.e-schedule .e-month-view .e-content-wrap .e-table-container {
  overflow-x: auto !important;
}

.schedule-compact.e-schedule .e-month-view .e-resource-cells,
.schedule-compact.e-schedule .e-month-view .e-header-cells,
.schedule-compact.e-schedule .e-month-view .e-work-cells {
  min-width: var(--l-schedule-col-width) !important;
  width: var(--l-schedule-col-width) !important;
  max-width: var(--l-schedule-col-width) !important;
}

.schedule-compact.e-schedule .e-month-view .e-content-table {
  height: 100% !important;
  table-layout: auto !important;
}
.e-schedule .e-month-view .e-work-cells {
  height: 1px !important;
  overflow: hidden !important;
}
.e-schedule .e-month-view .e-date-header-wrap {
  flex-shrink: 0 !important;
}

/* --- Jahresansicht: 4×3 Grid, füllt den gesamten Container --- */
.e-schedule .e-year-view .e-content-wrap {
  overflow: hidden !important;
  height: 100% !important;
}
.e-schedule .e-year-view .e-calendar-wrapper {
  display: flex !important;
  flex-wrap: wrap !important;
  height: 100% !important;
  align-content: stretch !important;
  overflow: hidden !important;
}
.e-schedule .e-year-view .e-calendar-wrapper .e-month-calendar {
  flex: 1 1 25% !important;
  max-width: 25% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  min-height: calc(100% / 3) !important;
}
.e-schedule .e-year-view .e-calendar-wrapper .e-month-calendar .e-calendar {
  min-width: unset !important;
  width: 100% !important;
  height: 100% !important;
}
.e-schedule
  .e-year-view
  .e-calendar-wrapper
  .e-month-calendar
  .e-calendar
  table {
  width: 100% !important;
  height: 100% !important;
}

/* --- Agenda-Ansicht --- */
.e-schedule .e-agenda-view .e-content-wrap {
  height: 100% !important;
  overflow: auto !important;
}

/* Stornierte Termine - visuelle Kennzeichnung */
.e-appointment-cancelled {
  opacity: 0.5 !important;
  text-decoration: none !important;
  background-color: var(--l-text-secondary) !important;
  border-color: var(--l-text-secondary) !important;
}

.e-appointment-cancelled .e-subject {
  text-decoration: none !important;
}

/* Verschobene Termine (Ghost) - visuelle Kennzeichnung */
.e-appointment-rescheduled {
  opacity: 0.6 !important;
  text-decoration: none !important;
  background-color: var(--l-text-secondary) !important;
  border-color: var(--l-text-secondary) !important;
  color: #fff !important;
  cursor: pointer !important;
}

.e-appointment-rescheduled .e-subject {
  text-decoration: none !important;
  white-space: normal !important;
  line-height: 1.2 !important;
  overflow: visible !important;
  line-clamp: unset !important;
  -webkit-line-clamp: unset !important;
  text-overflow: unset !important;
}

/* Neupatient / Reaktiviert / Onlinetermin: farbige Streifen rechts (box-shadow — kompatibel zu „Verschoben“) */
.e-schedule .e-appointment[data-status-reactivated="true"]:not([data-status-online="true"]):not([data-status-new="true"]),
.e-schedule .e-appointment.e-appointment-patient-reactivated:not(.e-appointment-portal-created):not(.e-appointment-patient-new) {
  box-shadow: inset calc(-1 * var(--l-calendar-marker-stripe-width, 8px)) 0 0 0 var(--l-calendar-reactivated-patient-stripe, #ff9500) !important;
}

.e-schedule .e-appointment[data-status-new="true"]:not([data-status-online="true"]):not([data-status-reactivated="true"]),
.e-schedule .e-appointment.e-appointment-patient-new:not(.e-appointment-portal-created):not(.e-appointment-patient-reactivated) {
  box-shadow: inset calc(-1 * var(--l-calendar-marker-stripe-width, 8px)) 0 0 0 var(--l-calendar-new-patient-stripe, #facc15) !important;
}

.e-schedule .e-appointment[data-status-online="true"]:not([data-status-new="true"]):not([data-status-reactivated="true"]),
.e-schedule .e-appointment.e-appointment-portal-created:not(.e-appointment-patient-new):not(.e-appointment-patient-reactivated) {
  box-shadow: inset calc(-1 * var(--l-calendar-marker-stripe-width, 8px)) 0 0 0 var(--l-online-appointment-stripe, #2563eb) !important;
}

.e-schedule .e-appointment[data-status-new="true"][data-status-online="true"]:not([data-status-reactivated="true"]),
.e-schedule .e-appointment.e-appointment-patient-new.e-appointment-portal-created:not(.e-appointment-patient-reactivated) {
  box-shadow:
    inset calc(-1 * var(--l-calendar-marker-stripe-width, 8px)) 0 0 0 var(--l-calendar-new-patient-stripe, #facc15),
    inset calc(-2 * var(--l-calendar-marker-stripe-width, 8px)) 0 0 0 var(--l-online-appointment-stripe, #2563eb) !important;
}

.e-schedule .e-appointment[data-status-reactivated="true"][data-status-online="true"]:not([data-status-new="true"]),
.e-schedule .e-appointment.e-appointment-patient-reactivated.e-appointment-portal-created:not(.e-appointment-patient-new) {
  box-shadow:
    inset calc(-1 * var(--l-calendar-marker-stripe-width, 8px)) 0 0 0 var(--l-calendar-reactivated-patient-stripe, #ff9500),
    inset calc(-2 * var(--l-calendar-marker-stripe-width, 8px)) 0 0 0 var(--l-online-appointment-stripe, #2563eb) !important;
}

/* =============================================================================
 * TABLE-RESPONSIVE: Unified styling with design tokens
 * ============================================================================= */
.table-responsive {
  background-color: var(--l-bg-elevated);
  border-radius: var(--l-radius-md);
}

.table-responsive .table {
  color: var(--l-text);
  margin-bottom: 0;
}

.table-responsive .table thead th {
  background-color: var(--l-bg-surface);
  color: var(--l-text);
  border-color: var(--l-border);
  font-weight: 600;
}

.table-responsive .table tbody tr {
  background-color: var(--l-bg-elevated);
  border-color: var(--l-border-light);
}

.table-responsive .table tbody td {
  color: var(--l-text);
  border-color: var(--l-border-light);
}

.table-responsive .table-hover tbody tr:hover {
  background-color: var(--l-bg-surface);
}

.table-responsive .table-dark,
.table-responsive .table-dark thead th,
.table-responsive .table-dark tbody td {
  background-color: var(--l-bg-elevated) !important;
  color: var(--l-text) !important;
  border-color: var(--l-border) !important;
}

.table-responsive .table-dark thead {
  background-color: var(--l-bg-surface) !important;
}

.table-responsive .table-dark tbody tr:hover {
  background-color: var(--l-bg-surface) !important;
}

/* Sticky header in scrollable tables */
.table-responsive .sticky-top {
  background-color: var(--l-bg-surface) !important;
}

/* Badge colors in tables */
.table-responsive .badge.bg-secondary {
  background-color: var(--l-bg-surface) !important;
  color: var(--l-text-secondary) !important;
}

.table-responsive .badge.bg-success {
  background-color: var(--l-success-bg) !important;
  color: var(--l-success) !important;
}

.table-responsive .badge.bg-warning {
  background-color: var(--l-warning-bg) !important;
  color: var(--l-warning) !important;
}

.table-responsive .badge.bg-danger {
  background-color: var(--l-error-bg) !important;
  color: var(--l-error) !important;
}

/* Text utilities in tables */
.table-responsive .text-muted {
  color: var(--l-text-muted) !important;
}

.table-responsive .text-warning {
  color: var(--l-warning) !important;
}

.table-responsive .text-danger {
  color: var(--l-error) !important;
}
