@charset "UTF-8";
@import url("../css/open-iconic/font/css/open-iconic-bootstrap.min.css");
@import url("../css/icons.css");
:root {
  --color-primary: #006a62;
  --color-primary-hover: #00504a;
  --color-primary-active: #003f3a;
  --color-surface: #ffffff;
  --color-surface-soft: #f5f3ef;
  --color-surface-raised: #efeeea;
  --color-text: #1b1c1a;
  --color-text-muted: #43474d;
  --color-border: #dbdad6;
  --color-border-strong: #c3c7ce;
  --color-success: #0f732f;
  --color-success-soft: #eaf7ef;
  --color-success-border: rgba(15, 115, 47, 0.22);
  --color-info: #145da0;
  --color-info-soft: #eef5fc;
  --color-info-border: rgba(20, 93, 160, 0.22);
  --color-warning: #b08d48;
  --color-warning-text: #765a20;
  --color-warning-border: rgba(176, 141, 72, 0.3);
  --color-error: #ba1a1a;
  --color-error-soft: #fdecec;
  --color-navy: #0f2d46;
  --color-navy-deep: #00182c;
  --color-accent-soft: #e3fbf7;
  --color-warning-soft: #fff5dd;
  --color-accounting-open: #5f6873;
  --color-accounting-open-soft: #f0f2f3;
  --color-accounting-review: #9a6b13;
  --color-accounting-review-soft: #fff5dd;
  --color-accounting-ready: #0f732f;
  --color-accounting-ready-soft: #eaf7ef;
  --color-accounting-critical: #ba1a1a;
  --color-accounting-critical-soft: #fdecec;
  --color-accounting-reopened: #66558c;
  --color-accounting-reopened-soft: #f1edfa;
  --color-accounting-future: #73777e;
  --color-accounting-future-soft: #f4f3f0;
  --color-auth-brand-bg: #0d3b66;
  --color-auth-brand-bg-soft: #145da0;
  --color-auth-glow-success: #22c55e;
  --color-auth-glow-error: #ef4444;
  --color-auth-panel-highlight: rgba(255, 255, 255, 0.12);
  --color-auth-panel-border: rgba(255, 255, 255, 0.18);
  --color-auth-panel-muted: rgba(255, 255, 255, 0.72);
  /* Vibrancy: Text auf transluzenten Flächen braucht mehr Kontrast als auf deckenden. */
  --color-auth-panel-vibrant: rgba(255, 255, 255, 0.87);
  --color-auth-panel-surface: rgba(0, 24, 44, 0.28);
  --color-auth-form-bg: #f7f8f6;
  --color-auth-form-border: rgba(0, 24, 44, 0.1);
  --color-auth-form-shadow: rgba(0, 24, 44, 0.08);
  --color-nav-bg: #102b43;
  --color-nav-bg-deep: #071827;
  --color-nav-bg-soft: #173b58;
  --color-nav-text: #d7e3ec;
  --color-nav-text-muted: #aebfcd;
  --color-nav-active: #f7fbfd;
  --color-nav-accent: #8be8dc;
  --color-nav-hover-bg: rgba(215, 227, 236, 0.065);
  --color-nav-active-bg: rgba(139, 232, 220, 0.105);
  --color-nav-active-border: #8be8dc;
  --color-nav-hover-border: rgba(139, 232, 220, 0.48);
  --color-header-bg: #ffffff;
  --color-header-border: #e4e1dc;
  --color-header-shell: rgba(255, 255, 255, 0.82);
  --color-header-hover: #eef8f6;
  --color-header-divider: #ece8e2;
  --color-dashboard-bg: #f5f3ef;
  --color-dashboard-strip-border: rgba(0, 24, 44, 0.1);
  --color-dashboard-strip-divider: rgba(0, 24, 44, 0.08);
  --color-dashboard-emphasis-bg: #e3fbf7;
  --color-booking-hero-bg: #0a3048;
  --color-booking-hero-bg-soft: #124a5c;
  --color-booking-hero-text: #f6fbfa;
  --color-booking-hero-muted: rgba(246, 251, 250, 0.76);
  --color-booking-hero-chip-bg: rgba(246, 251, 250, 0.1);
  --color-booking-hero-chip-border: rgba(246, 251, 250, 0.2);
  --color-booking-step-bg: #edf9f7;
  --color-booking-step-border: #b8e7df;
  --color-public-booking-forest: #205642;
  --color-public-booking-forest-hover: #163e30;
  --color-public-booking-forest-soft: #e2eee7;
  --color-public-booking-paper: #edf1ee;
  --color-public-booking-surface: #f9fbf9;
  --color-public-booking-text: #17231c;
  --color-public-booking-muted: #526058;
  --color-public-booking-border: #c8d2cb;
  --color-public-booking-control-border: #748179;
  --color-public-booking-button-text: #f7faf8;
  --color-public-booking-dark-paper: #151b17;
  --color-public-booking-dark-surface: #1e2822;
  --color-public-booking-dark-text: #edf3ef;
  --color-public-booking-dark-muted: #b7c3ba;
  --color-public-booking-dark-border: #46544a;
  --color-public-booking-dark-control-border: #819187;
  --color-public-booking-dark-forest: #91c9ab;
  --color-public-booking-dark-forest-hover: #acd9bf;
  --color-public-booking-dark-forest-soft: #293d32;
  --color-public-booking-dark-button-text: #132a20;
  --color-dashboard-emphasis-border: rgba(0, 106, 98, 0.22);
  --color-action-bg: #f3f7fb;
  /* WCAG AA: #73777e erreichte auf --color-surface-soft/-raised nur 4.06:1.
     #686c73 liefert 5.28:1 auf Weiß und 4.55:1 auf --color-surface-raised. */
  --color-text-subtle: #686c73;
  --shadow-soft: 0 4px 20px rgba(0, 24, 44, 0.04);
  --shadow-header: 0 1.25rem 3rem rgba(0, 24, 44, 0.08);
  --shadow-popover: 0 1.25rem 2.5rem rgba(0, 24, 44, 0.16);
  /* Quiet corporate geometry: small details 4px, controls 6px,
     cards 8px and large overlays no more than 10px. */
  --radius-sm: 0.375rem;
  --radius-md: 0.5rem;
  --radius-lg: 0.625rem;
  --radius-pill: 999px;
  --innvilo-bg: var(--color-surface-soft);
  --innvilo-surface: var(--color-surface);
  --innvilo-surface-soft: var(--color-surface-soft);
  --innvilo-surface-raised: var(--color-surface-raised);
  --innvilo-border: var(--color-border);
  --innvilo-border-strong: var(--color-border-strong);
  --innvilo-text: var(--color-text);
  --innvilo-muted: var(--color-text-muted);
  --innvilo-navy: var(--color-navy);
  --innvilo-navy-deep: var(--color-navy-deep);
  --innvilo-teal: var(--color-primary);
  --innvilo-teal-soft: var(--color-accent-soft);
  --innvilo-gold: var(--color-warning);
  --innvilo-gold-soft: var(--color-warning-soft);
  --innvilo-danger: var(--color-error);
  --innvilo-shadow: var(--shadow-soft);
  --innvilo-header-shadow: var(--shadow-header);
  --innvilo-radius: var(--radius-md);
  --innvilo-radius-lg: var(--radius-lg);
  --innvilo-radius-sm: var(--radius-sm);
  /* INNVILO Design System — semantic tokens for all new UI work. */
  --innvilo-color-primary: var(--color-primary);
  --innvilo-color-primary-hover: var(--color-primary-hover);
  --innvilo-color-primary-active: var(--color-primary-active);
  --innvilo-color-primary-soft: var(--color-accent-soft);
  --innvilo-color-primary-subtle: rgba(0, 106, 98, 0.06);
  --innvilo-color-secondary: var(--color-navy);
  --innvilo-color-accent: var(--color-warning);
  --innvilo-surface-app: var(--color-surface-soft);
  --innvilo-surface-main: var(--color-surface);
  --innvilo-surface-elevated: var(--color-surface);
  --innvilo-surface-card: var(--color-surface);
  --innvilo-surface-muted: var(--color-surface-raised);
  --innvilo-surface-overlay: var(--color-loading-backdrop);
  --innvilo-surface-sidebar-start: var(--color-nav-bg);
  --innvilo-surface-sidebar-end: var(--color-nav-bg-deep);
  --innvilo-surface-header: var(--color-header-bg);
  --innvilo-text-primary: var(--color-text);
  --innvilo-text-secondary: var(--color-text-muted);
  --innvilo-text-muted: var(--color-text-subtle);
  --innvilo-text-disabled: rgba(27, 28, 26, 0.38);
  --innvilo-text-inverse: var(--color-surface);
  --innvilo-text-link: var(--color-primary);
  --innvilo-text-link-hover: var(--color-primary-hover);
  --innvilo-border-default: var(--color-border);
  --innvilo-border-soft: rgba(219, 218, 214, 0.6);
  --innvilo-border-strong: var(--color-border-strong);
  --innvilo-border-focus: var(--color-primary);
  --innvilo-border-disabled: rgba(219, 218, 214, 0.5);
  --innvilo-space-0: 0;
  --innvilo-space-1: 0.125rem;
  --innvilo-space-2: 0.25rem;
  --innvilo-space-3: 0.375rem;
  --innvilo-space-4: 0.5rem;
  --innvilo-space-5: 0.75rem;
  --innvilo-space-6: 1rem;
  --innvilo-space-7: 1.25rem;
  --innvilo-space-8: 1.5rem;
  --innvilo-space-9: 2rem;
  --innvilo-space-10: 2.5rem;
  --innvilo-space-11: 3rem;
  --innvilo-space-12: 4rem;
  --innvilo-space-13: 5rem;
  /* Shared workframe. The product brief fixes each main page transition at 34px. */
  --innvilo-content-max: 100%;
  --innvilo-public-content-max: 80rem;
  --innvilo-page-gutter-mobile: 1.5rem;
  --innvilo-page-gutter-tablet: 1.5rem;
  --innvilo-page-gutter-desktop: 42px;
  --innvilo-page-section-gap: 2.125rem;
  --innvilo-page-hero-gap: 2.125rem;
  --innvilo-radius-xs: 0.25rem;
  --innvilo-radius-sm: 0.375rem;
  --innvilo-radius-md: 0.5rem;
  --innvilo-radius-lg: 0.625rem;
  --innvilo-radius-card: 0.5rem;
  --innvilo-radius-full: var(--radius-pill);
  --innvilo-shadow-card: var(--shadow-soft);
  --innvilo-shadow-dropdown: 0 0.75rem 1.75rem rgba(0, 24, 44, 0.1);
  --innvilo-shadow-header: var(--shadow-header);
  --innvilo-shadow-popover: var(--shadow-popover);
  --innvilo-shadow-toast: var(--shadow-toast);
  --innvilo-shadow-floating: 0 0.625rem 1.5rem rgba(0, 24, 44, 0.14);
  /* Feste Aktionsleiste am unteren Rand: trennt nach oben, ohne als schwebende Fläche zu wirken. */
  --innvilo-shadow-bar: 0 -1px 2px rgba(0, 24, 44, 0.06);
  --innvilo-font-size-display: 2rem;
  --innvilo-font-size-title: 1.75rem;
  --innvilo-font-size-heading: 1.25rem;
  --innvilo-font-size-subheading: 1rem;
  --innvilo-font-size-body: 1rem;
  --innvilo-font-size-label: 0.875rem;
  --innvilo-font-size-caption: 0.8125rem;
  --innvilo-font-size-micro: 0.75rem;
  --innvilo-font-size-kpi-value: 1.75rem;
  --innvilo-font-size-kpi-label: 0.8125rem;
  --innvilo-font-size-grid: 0.875rem;
  --innvilo-grid-font-header: var(--innvilo-font-size-label);
  --innvilo-grid-font-primary: var(--innvilo-font-size-body);
  --innvilo-grid-font-secondary: var(--innvilo-font-size-label);
  --innvilo-grid-font-metadata: var(--innvilo-font-size-caption);
  --innvilo-grid-line-height: 1.35;
  --innvilo-grid-row-height-comfortable: 3rem;
  --innvilo-grid-row-height-compact: 2.75rem;
  --innvilo-grid-header-height: 2.75rem;
  --innvilo-grid-action-target: 2.25rem;
  --innvilo-grid-action-target-touch: 2.75rem;
  --innvilo-grid-workbench-height: 26rem;
  --innvilo-grid-cell-inline: var(--innvilo-space-5);
  --innvilo-grid-cell-block: var(--innvilo-space-3);
  --innvilo-grid-cell-block-compact: var(--innvilo-space-2);
  --innvilo-grid-surface: var(--innvilo-surface-main);
  --innvilo-grid-header-surface: var(--innvilo-surface-muted);
  --innvilo-grid-hover-surface: var(--color-input-surface-hover);
  --innvilo-grid-selected-surface: var(--innvilo-color-primary-soft);
  --innvilo-grid-border: var(--innvilo-border-default);
  --innvilo-duration-instant: 80ms;
  --innvilo-duration-fast: 140ms;
  --innvilo-duration-normal: 200ms;
  --innvilo-duration-slow: 260ms;
  --innvilo-easing-standard: cubic-bezier(0.4, 0, 0.2, 1);
  --innvilo-easing-decelerate: cubic-bezier(0, 0, 0.2, 1);
  --innvilo-easing-accelerate: cubic-bezier(0.4, 0, 1, 1);
  /* Physikalische Bewegung (Apple: Dämpfung + Response statt Dauer + Easing).
     Response ist die Zeit bis zum Ziel, nicht die Laufzeit einer Choreografie.
     `settle` ist kritisch gedämpft (Dämpfung 1.0) und damit der Standard: Flächen
     laufen ruhig aus, ohne Überschwingen. `press` ist die Druckantwort und muss
     unter der Wahrnehmungsschwelle liegen.

     Kein Überschwing-Token: Überschwingen ist nur nach einer Geste mit Impuls
     richtig (Wischen, Werfen, Loslassen eines Zugs). Solange es im Portal keine
     solche Interaktion gibt, wird dafür auch kein Token vorgehalten - es würde
     nur an Stellen landen, an denen es unpassend wirkt. */
  --innvilo-duration-press: 100ms;
  --innvilo-duration-response-quick: 200ms;
  --innvilo-duration-response: 260ms;
  --innvilo-easing-settle: cubic-bezier(0.32, 0.72, 0, 1);
  --innvilo-press-scale: 0.98;
  --innvilo-press-scale-subtle: 0.99;
  /* Translucente Materialien: schwebende Ebenen statt opaker Balken.
     Grössere Flächen lesen dicker (stärkerer Blur, tieferer Schatten).
     Regel: niemals ein helles Material auf einem hellen Material stapeln. */
  --innvilo-material-thin: rgba(255, 255, 255, 0.62);
  --innvilo-material-regular: rgba(255, 255, 255, 0.76);
  --innvilo-material-thick: rgba(255, 255, 255, 0.88);
  --innvilo-material-blur-thin: blur(14px) saturate(160%);
  --innvilo-material-blur-regular: blur(22px) saturate(170%);
  --innvilo-material-blur-thick: blur(32px) saturate(180%);
  --innvilo-material-edge: rgba(255, 255, 255, 0.72);
  --innvilo-material-tinted: rgba(245, 243, 239, 0.78);
  --innvilo-scroll-edge-shade: rgba(0, 24, 44, 0.08);
  --innvilo-material-dark: rgba(0, 24, 44, 0.34);
  --innvilo-material-dark-strong: rgba(0, 24, 44, 0.46);
  --innvilo-material-dark-edge: rgba(255, 255, 255, 0.16);
  --innvilo-shadow-material-sm: 0 0.35rem 0.9rem rgba(0, 24, 44, 0.06);
  --innvilo-shadow-material-lg: 0 1.5rem 3.25rem rgba(0, 24, 44, 0.12);
  --innvilo-scroll-edge-size: 1.15rem;
  /* Tracking ist grössenabhängig: grosser Text braucht negatives Tracking,
     kleiner Text ein wenig positives. Ein fester Wert ist immer irgendwo falsch. */
  --innvilo-tracking-display: -0.03em;
  --innvilo-tracking-title: -0.015em;
  --innvilo-tracking-body: 0;
  --innvilo-tracking-caption: 0.01em;
  --innvilo-tracking-overline: 0.08em;
  --innvilo-z-dropdown: 1000;
  --innvilo-z-sticky: 1050;
  --innvilo-z-drawer: 1200;
  --innvilo-z-modal: 1300;
  --innvilo-z-context-menu: 1400;
  --innvilo-z-toast: var(--z-index-toast);
  --innvilo-z-tooltip: 9100;
  --color-toast-success-bg: #eafbf1;
  --color-toast-success-text: var(--color-success);
  --color-toast-error-bg: #fdecec;
  --color-toast-error-text: var(--color-error);
  --color-toast-warning-bg: var(--color-warning-soft);
  --color-toast-warning-text: var(--color-warning);
  --color-toast-info-bg: var(--color-accent-soft);
  --color-toast-info-text: var(--color-auth-brand-bg-soft);
  --color-toast-surface: #fffefa;
  --color-toast-border: rgba(0, 24, 44, 0.12);
  --color-toast-system-bg: var(--color-surface-raised);
  --color-toast-system-text: var(--color-navy);
  --color-toast-icon-surface: #f4f7f5;
  --color-toast-progress-track: rgba(0, 24, 44, 0.08);
  --color-toast-close-hover: rgba(0, 24, 44, 0.07);
  --shadow-toast: 0 1.25rem 3.5rem rgba(0, 24, 44, 0.18);
  --z-index-toast: 9000;
  --z-index-dialog-loading: 10;
  --color-overlay-hover-soft: rgba(0, 0, 0, 0.06);
  --color-overlay-hover: rgba(0, 0, 0, 0.08);
  --color-popup-backdrop: rgba(0, 24, 44, 0.62);
  /* Bottom Sheet und Popover verdecken weniger als ein modaler Dialog, bleiben aber in der Navy-Familie. */
  --color-sheet-backdrop: rgba(0, 24, 44, 0.32);
  --color-popup-icon-bg: var(--color-accent-soft);
  --color-popup-icon-text: var(--color-primary);
  --color-popup-warning-bg: var(--color-warning-soft);
  --color-popup-warning-text: var(--color-warning-text);
  --color-popup-danger-bg: var(--color-error-surface);
  --color-popup-danger-text: var(--color-error);
  --color-popup-danger-action-bg: var(--color-error);
  --color-popup-danger-action-hover-bg: #971616;
  --color-popup-danger-action-text: #ffffff;
  --color-success-surface: rgba(15, 115, 47, 0.08);
  --color-success-border: rgba(15, 115, 47, 0.22);
  --color-success-border-strong: rgba(15, 115, 47, 0.5);
  --color-error-surface: rgba(186, 26, 26, 0.08);
  --color-error-border: rgba(186, 26, 26, 0.24);
  --color-error-focus-ring: rgba(186, 26, 26, 0.1);
  --color-primary-focus-ring: rgba(0, 106, 98, 0.14);
  --color-input-placeholder: #62676e;
  --color-input-surface: var(--color-surface);
  --color-input-surface-hover: #fbfffe;
  --color-input-surface-disabled: var(--color-surface-raised);
  /* Der Rahmen eines Eingabefeldes ist ein Bedienelement, kein Dekor: er braucht nach
     WCAG 1.4.11 mindestens 3:1 gegen die Feldfläche. Der dekorative --color-border-strong
     erreicht auf Weiß nur 1,70:1 und ist dafür ungeeignet. Dieser Wert erreicht 3,7:1. */
  --color-input-border: #7e858f;
  --color-input-command-surface: #f8faf8;
  --color-input-command-hover: var(--color-accent-soft);
  --color-input-command-divider: var(--color-border);
  --color-nav-section-bg: rgba(215, 227, 236, 0.045);
  --color-nav-section-hover: rgba(215, 227, 236, 0.07);
  --color-nav-section-badge: rgba(215, 227, 236, 0.09);
  --color-nav-active-gradient: rgba(139, 232, 220, 0.09);
  --color-nav-active-gradient-hover: rgba(139, 232, 220, 0.13);
  --color-nav-control-hover: rgba(215, 227, 236, 0.09);
  --color-nav-drawer-glow: rgba(139, 232, 220, 0.08);
  --color-nav-divider: rgba(215, 227, 236, 0.14);
  --color-nav-focus: var(--color-nav-accent);
  --color-nav-disabled: rgba(215, 227, 236, 0.46);
  --color-mobile-nav-bg: var(--color-nav-bg-deep);
  --color-mobile-nav-active: var(--color-nav-accent);
  --color-mobile-nav-border: var(--color-nav-divider);
  --color-scheduler-resource-teal: #dff7f4;
  --color-scheduler-resource-blue: #eef3ff;
  --color-scheduler-resource-gold: #fff3d8;
  --shadow-scheduler-appointment: 0 0.65rem 1.4rem rgba(0, 24, 44, 0.12);
  --color-shift-frontoffice-bg: #eaf1fb;
  --color-shift-frontoffice-border: #b9cce5;
  --color-shift-frontoffice-text: #244f78;
  --color-shift-housekeeping-bg: #e8f6f0;
  --color-shift-housekeeping-border: #afd7c6;
  --color-shift-housekeeping-text: #176247;
  --color-shift-technical-bg: #eef1f5;
  --color-shift-technical-border: #c9d0d9;
  --color-shift-technical-text: #43566c;
  --color-shift-service-bg: #eaf7fb;
  --color-shift-service-border: #b5dae7;
  --color-shift-service-text: #23627a;
  --color-shift-kitchen-bg: #fff4e5;
  --color-shift-kitchen-border: #e7c99e;
  --color-shift-kitchen-text: #77501d;
  --color-shift-spa-bg: #e6f7f5;
  --color-shift-spa-border: #abd9d3;
  --color-shift-spa-text: #1b6760;
  --color-shift-management-bg: #f1edfa;
  --color-shift-management-border: #cfc1e8;
  --color-shift-management-text: #59417e;
  --color-shift-vacation-bg: var(--color-warning-soft);
  --color-shift-vacation-border: #dec98e;
  --color-shift-vacation-text: #6d581f;
  --color-loading-backdrop: rgba(15, 23, 42, 0.28);
  --color-loading-surface: rgba(255, 255, 255, 0.92);
  --color-loading-primary: var(--color-primary);
  --color-loading-secondary: var(--color-auth-brand-bg-soft);
  --color-loading-text: var(--color-text);
  --color-loading-muted: var(--color-text-muted);
  --color-quick-action-bg: var(--color-surface);
  --color-quick-action-hover-bg: var(--color-header-hover);
  /* `--color-quick-action-border` ist entfallen: der weiche Knopf trägt jetzt
     `--color-border`, die eine Rahmenfarbe des Hauses. Ein Alias auf ein zweites Grau
     ohne Nutzer wäre toter Code (DESIGN_NEW_RULES §9). */
  --color-quick-action-primary-bg: var(--color-primary);
  --color-quick-action-primary-text: var(--color-surface);
  --color-quick-action-primary-hover-bg: var(--color-primary-hover);
  --color-quick-list-bg: var(--color-surface);
  --color-quick-list-border: var(--color-header-divider);
  --color-quick-list-shadow: rgba(15, 23, 42, 0.12);
  --color-room-clean-bg: var(--color-success-surface);
  --color-room-clean-text: var(--color-success);
  --color-room-clean-border: var(--color-success-border);
  --color-room-dirty-bg: var(--color-error-surface);
  --color-room-dirty-text: var(--color-error);
  --color-room-dirty-border: var(--color-error-border);
  --color-room-cleaning-bg: var(--color-action-bg);
  --color-room-cleaning-text: var(--color-auth-brand-bg-soft);
  --color-room-inspected-bg: var(--color-accent-soft);
  --color-room-inspected-text: var(--color-primary);
  --color-room-occupied-bg: var(--color-warning-soft);
  --color-room-occupied-text: var(--color-warning);
  --color-room-available-bg: var(--color-surface-soft);
  --color-room-available-text: var(--color-text-muted);
  --color-room-ooo-bg: var(--color-surface-raised);
  --color-room-ooo-text: var(--color-error);
  --color-room-maintenance-bg: var(--color-warning-soft);
  --color-room-maintenance-text: var(--color-warning);
  --color-room-dnd-bg: var(--color-action-bg);
  --color-room-dnd-text: var(--color-nav-bg);
  --color-room-plan-grid-line: rgba(0, 24, 44, 0.09);
  --color-room-plan-grid-line-strong: rgba(0, 24, 44, 0.16);
  --color-room-plan-sticky-shadow: rgba(0, 24, 44, 0.08);
  --color-room-plan-reserved-bg: #f7f6f2;
  --color-room-plan-reserved-text: #3f454b;
  --color-room-plan-reserved-border: #9aa0a8;
  --color-room-plan-confirmed-bg: #dcecff;
  --color-room-plan-confirmed-text: #12354f;
  --color-room-plan-confirmed-border: #9fc4e8;
  --color-room-plan-inhouse-bg: #d8f5ef;
  --color-room-plan-inhouse-text: #075b52;
  --color-room-plan-inhouse-border: #86d7ca;
  --color-room-plan-arrival-bg: #e7f2ff;
  --color-room-plan-arrival-text: #174f7a;
  --color-room-plan-arrival-border: #8dbde5;
  --color-room-plan-future-bg: #f1edfa;
  --color-room-plan-future-text: #59417e;
  --color-room-plan-future-border: #c3b2df;
  --color-room-plan-departure-bg: #fff3d8;
  --color-room-plan-departure-text: #725313;
  --color-room-plan-departure-border: #d8ba72;
  --color-room-plan-past-bg: #ecebe7;
  --color-room-plan-past-text: #646970;
  --color-room-plan-past-border: #d0cfca;
  --color-room-plan-unassigned-bg: var(--color-accent-soft);
  --color-room-plan-unassigned-text: var(--color-primary);
  --color-room-plan-unassigned-border: rgba(0, 106, 98, 0.42);
  --color-room-plan-arrival: var(--color-primary);
  --color-room-plan-departure: #8b6a2f;
  --color-room-plan-payment: var(--color-error);
  --color-room-plan-drop-valid-bg: var(--color-success-soft);
  --color-room-plan-drop-valid-border: var(--color-success);
  --color-room-plan-drop-invalid-bg: var(--color-error-soft);
  --color-room-plan-drop-invalid-border: var(--color-error);
  --color-room-plan-today-bg: var(--color-accent-soft);
  --color-room-plan-preview-shadow: var(--color-quick-list-shadow);
  --color-room-plan-block-bg: var(--color-error-soft);
  --color-room-plan-block-text: var(--color-error);
  --color-room-plan-block-border: var(--color-error);
  --color-room-plan-service-bg: var(--color-warning-soft);
  --color-room-plan-service-text: var(--color-warning-text);
  --color-room-plan-service-border: var(--color-warning);
  --color-room-plan-internal-bg: var(--color-accounting-open-soft);
  --color-room-plan-internal-text: var(--color-accounting-open);
  --color-room-plan-information-bg: var(--color-accent-soft);
  --color-room-plan-information-text: var(--color-primary);
  --color-room-plan-information-border: rgba(0, 106, 98, 0.42);
  /* Room plan status system: one accent + one tint per operational state so the
     timeline can be read by colour alone. Green ready, turquoise prepared arrival,
     red dirty, amber cleaning, blue occupied, grey blocked. */
  --color-room-plan-state-clean: var(--color-success);
  --color-room-plan-state-clean-soft: var(--color-success-soft);
  --color-room-plan-state-ready: var(--color-primary);
  --color-room-plan-state-ready-soft: var(--color-accent-soft);
  --color-room-plan-state-dirty: var(--color-error);
  --color-room-plan-state-dirty-soft: var(--color-error-soft);
  --color-room-plan-state-cleaning: var(--color-accounting-review);
  --color-room-plan-state-cleaning-soft: var(--color-warning-soft);
  --color-room-plan-state-occupied: var(--color-info);
  --color-room-plan-state-occupied-soft: var(--color-info-soft);
  --color-room-plan-state-blocked: var(--color-accounting-open);
  --color-room-plan-state-blocked-soft: var(--color-accounting-open-soft);
  --color-room-plan-state-neutral: var(--color-text-subtle);
  --color-room-plan-state-neutral-soft: var(--color-surface-raised);
  --color-room-plan-weekend-bg: rgba(0, 24, 44, 0.022);
  --color-room-plan-today-column-bg: rgba(0, 106, 98, 0.05);
  --color-room-plan-today-column-line: rgba(0, 106, 98, 0.32);
  --color-room-plan-past-column-bg: rgba(0, 24, 44, 0.035);
  --color-room-plan-row-hover: rgba(0, 106, 98, 0.05);
  --color-room-operation-arrival-bg: var(--color-room-plan-arrival-bg);
  --color-room-operation-arrival-text: var(--color-room-plan-arrival-text);
  --color-room-operation-arrival-border: var(--color-room-plan-arrival-border);
  --color-room-operation-departure-bg: var(--color-room-plan-departure-bg);
  --color-room-operation-departure-text: var(--color-room-plan-departure-text);
  --color-room-operation-departure-border: var(--color-room-plan-departure-border);
  --color-room-operation-cleaning-bg: var(--color-room-cleaning-bg);
  --color-room-operation-cleaning-text: var(--color-room-cleaning-text);
  --color-room-operation-cleaning-border: var(--color-info-border);
  --color-room-operation-critical-bg: var(--color-error-soft);
  --color-room-operation-critical-text: var(--color-error);
  --color-room-operation-critical-border: var(--color-error-border);
  --color-room-operation-neutral-bg: var(--color-surface-raised);
  --color-room-operation-neutral-text: var(--color-text-muted);
  --color-room-operation-neutral-border: var(--color-border);
  --color-live-success: var(--color-success);
  --color-live-warning: var(--color-warning);
  --color-live-error: var(--color-error);
  --color-notification-backdrop: rgba(0, 24, 44, 0.28);
  --color-notification-unread-bg: #f3fbf9;
  --color-notification-unread-hover: #e9f7f4;
  --color-notification-neutral: #62676e;
  --color-notification-neutral-soft: #f0f2f3;
  --color-notification-skeleton: #e8e8e3;
  --color-notification-skeleton-highlight: #f7f7f4;
}

@font-face {
  font-family: "Lato-Regular";
  src: url("../css/fonts/Lato-Regular.ttf") format("truetype");
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Lato-SemiBold";
  src: url("../css/fonts/Lato-SemiBold.ttf") format("truetype");
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Lato-Bold";
  src: url("../css/fonts/Lato-Bold.ttf") format("truetype");
  font-style: normal;
  font-display: swap;
}
body,
.text-regular {
  font-family: "Lato-Regular", Arial, sans-serif;
}

.text-semibold {
  font-family: "Lato-SemiBold", Arial, sans-serif;
}

.text-bold {
  font-family: "Lato-Bold", Arial, sans-serif;
}

/* INNVILO Generic Grid System. All DevExpress grid overrides stay centralized here. */
.innvilo-generic-grid {
  background: var(--innvilo-grid-surface);
  border: 1px solid var(--innvilo-grid-border);
  border-radius: var(--innvilo-radius-card);
  box-shadow: none;
  min-width: 0;
  overflow: hidden;
  position: relative;
}

.innvilo-grid-header {
  align-items: center;
  border-bottom: 1px solid var(--innvilo-grid-border);
  display: flex;
  gap: var(--innvilo-space-6);
  justify-content: space-between;
  padding: var(--innvilo-space-6);
}

.innvilo-grid-header__copy {
  display: grid;
  gap: var(--innvilo-space-2);
  min-width: 0;
}

.innvilo-grid-header__copy h2,
.innvilo-grid-state h3 {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-heading);
  line-height: 1.25;
  margin: 0;
}

.innvilo-grid-header__copy p,
.innvilo-grid-state p {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-body);
  line-height: 1.45;
  margin: 0;
}

.innvilo-grid-header__result {
  color: var(--innvilo-text-muted);
  font-size: var(--innvilo-grid-font-metadata);
}

.innvilo-grid-header__actions,
.innvilo-grid-row-actions {
  align-items: center;
  display: flex;
  flex: 0 0 auto;
  gap: var(--innvilo-space-3);
}

.innvilo-grid-filter {
  border-bottom: 1px solid var(--innvilo-grid-border);
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
}

.innvilo-grid.dxbl-grid {
  border: 0;
  border-radius: 0;
  color: var(--innvilo-text-primary);
  font-family: "Lato-Regular", Arial, sans-serif;
  font-size: var(--innvilo-grid-font-primary);
}

.innvilo-grid.dxbl-grid .dxbl-grid-header-row {
  background: var(--innvilo-grid-header-surface);
  min-height: var(--innvilo-grid-header-height);
}

.innvilo-grid.dxbl-grid .dxbl-grid-header-row > th,
.innvilo-grid.dxbl-grid .dxbl-grid-header-row > td {
  color: var(--innvilo-text-secondary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-grid-font-header);
  height: var(--innvilo-grid-header-height);
  letter-spacing: 0.01em;
  line-height: 1.2;
  padding-inline: var(--innvilo-grid-cell-inline);
  vertical-align: middle;
}

.innvilo-grid.dxbl-grid .dxbl-grid-header-row .dxbl-grid-header-content {
  align-items: center;
  min-height: 100%;
}

.innvilo-grid.dxbl-grid .dxbl-grid-data-row > td {
  height: var(--innvilo-grid-row-height-comfortable);
  line-height: var(--innvilo-grid-line-height);
  max-width: 28rem;
  overflow: hidden;
  padding: var(--innvilo-grid-cell-block) var(--innvilo-grid-cell-inline);
  text-overflow: ellipsis;
  vertical-align: middle;
  white-space: nowrap;
}

.innvilo-grid.dxbl-grid.is-compact .dxbl-grid-data-row > td {
  height: var(--innvilo-grid-row-height-compact);
  padding-block: var(--innvilo-grid-cell-block-compact);
}

.front-office-reservations-grid.dxbl-grid {
  height: var(--innvilo-grid-workbench-height);
}

.innvilo-grid.dxbl-grid .dxbl-grid-data-row:hover > td {
  background: var(--innvilo-grid-hover-surface);
}

.innvilo-grid.dxbl-grid.is-row-interactive .dxbl-grid-data-row {
  cursor: pointer;
}

.innvilo-grid.dxbl-grid .dxbl-grid-selected-row > td {
  background: var(--innvilo-grid-selected-surface);
}

.innvilo-grid.dxbl-grid .dxbl-grid-bottom-panel,
.innvilo-grid.dxbl-grid .dxbl-grid-pager {
  background: var(--innvilo-grid-surface);
  border-top: 1px solid var(--innvilo-grid-border);
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-grid-font-secondary);
  min-height: var(--innvilo-grid-header-height);
}

.innvilo-grid-cell-value {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.innvilo-grid-cell-stack {
  display: grid;
  gap: var(--innvilo-space-1);
  min-width: 0;
}

.innvilo-grid-cell-stack small {
  color: var(--innvilo-text-muted);
  font-size: var(--innvilo-grid-font-metadata);
  overflow: hidden;
  text-overflow: ellipsis;
}

.innvilo-grid-row-actions .dxbl-btn,
.innvilo-grid-row-actions .dxbl-dropdown-button {
  border: 0;
  border-radius: var(--innvilo-radius-xs);
  font-size: 1rem;
  height: var(--innvilo-grid-action-target);
  min-height: var(--innvilo-grid-action-target);
}

.innvilo-grid-row-action-view.dxbl-btn,
.innvilo-grid-row-action-secondary.dxbl-btn,
.innvilo-grid-row-action-overflow.dxbl-btn {
  min-width: var(--innvilo-grid-action-target);
  width: var(--innvilo-grid-action-target);
}

.innvilo-grid-row-actions {
  gap: var(--innvilo-space-2);
  justify-content: flex-end;
  width: 100%;
}

.innvilo-grid-row-action-view.dxbl-btn,
.innvilo-grid-row-action-overflow.dxbl-btn {
  background: transparent;
  color: var(--innvilo-text-secondary);
}

.innvilo-grid-row-action-view.dxbl-btn:hover,
.innvilo-grid-row-action-overflow.dxbl-btn:hover {
  background: var(--innvilo-color-primary-subtle);
  color: var(--innvilo-color-primary);
}

.innvilo-grid-row-action-view.dxbl-btn:focus-visible,
.innvilo-grid-row-action-overflow.dxbl-btn:focus-visible {
  box-shadow: 0 0 0 2px var(--color-primary-focus-ring);
  outline: none;
}

.innvilo-grid.dxbl-grid.has-row-actions .dxbl-grid-header-row > :last-child,
.innvilo-grid.dxbl-grid.has-row-actions .dxbl-grid-data-row > :last-child {
  padding-inline: var(--innvilo-space-2);
  text-align: right;
}

.innvilo-grid-row-action-secondary.is-primary.dxbl-btn {
  color: var(--innvilo-color-primary);
}

.innvilo-grid-row-action-secondary.is-success.dxbl-btn {
  color: var(--color-success);
}

.innvilo-grid-row-action-secondary.is-info.dxbl-btn {
  color: var(--color-info);
}

.innvilo-grid-row-action-secondary.is-warning.dxbl-btn {
  color: var(--color-warning-text);
}

.innvilo-grid-row-action-secondary.is-danger.dxbl-btn {
  color: var(--color-error);
}

.innvilo-grid-badge {
  align-items: center;
  background: var(--color-accounting-open-soft);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-full);
  color: var(--innvilo-text-secondary);
  display: inline-flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-grid-font-secondary);
  gap: var(--innvilo-space-2);
  line-height: 1;
  max-width: 100%;
  height: 1.625rem;
  min-height: 1.625rem;
  padding: 0 var(--innvilo-space-4);
  white-space: nowrap;
}

.innvilo-grid-badge.is-info {
  background: var(--color-info-soft);
  border-color: var(--color-info-border);
  color: var(--color-info);
}

.innvilo-grid-badge.is-success {
  background: var(--color-success-soft);
  border-color: var(--color-success-border);
  color: var(--color-success);
}

.innvilo-grid-badge.is-warning {
  background: var(--color-warning-soft);
  border-color: var(--color-warning-border);
  color: var(--color-warning-text);
}

.innvilo-grid-badge.is-danger {
  background: var(--color-error-soft);
  border-color: var(--color-error-border);
  color: var(--color-error);
}

.innvilo-grid-badge.is-accent {
  background: var(--innvilo-color-primary-soft);
  border-color: var(--color-primary-focus-ring);
  color: var(--innvilo-color-primary);
}

.innvilo-grid-state {
  align-items: center;
  display: flex;
  gap: var(--innvilo-space-6);
  justify-content: center;
  min-height: 11rem;
  padding: var(--innvilo-space-9);
  text-align: left;
}

.innvilo-grid-state__icon {
  align-items: center;
  background: var(--innvilo-color-primary-soft);
  border-radius: var(--innvilo-radius-full);
  color: var(--innvilo-color-primary);
  display: inline-flex;
  flex: 0 0 auto;
  font-size: var(--innvilo-font-size-title);
  height: 3.25rem;
  justify-content: center;
  width: 3.25rem;
}

.innvilo-grid-error .innvilo-grid-state__icon {
  background: var(--color-error-soft);
  color: var(--color-error);
}

.innvilo-grid-state__copy {
  display: grid;
  gap: var(--innvilo-space-3);
  max-width: 34rem;
}

.innvilo-grid-state__copy small {
  color: var(--innvilo-text-muted);
  font-size: var(--innvilo-grid-font-metadata);
}

.innvilo-grid-refresh {
  align-items: center;
  background: var(--color-loading-surface);
  border: 1px solid var(--innvilo-grid-border);
  border-radius: var(--innvilo-radius-full);
  box-shadow: var(--innvilo-shadow-floating);
  color: var(--innvilo-text-secondary);
  display: flex;
  font-size: var(--innvilo-grid-font-secondary);
  gap: var(--innvilo-space-3);
  inset-block-start: var(--innvilo-space-4);
  inset-inline-end: var(--innvilo-space-4);
  padding: var(--innvilo-space-3) var(--innvilo-space-5);
  position: absolute;
  z-index: var(--innvilo-z-sticky);
}

.innvilo-grid-skeleton {
  display: grid;
  gap: 1px;
  min-height: 21rem;
}

.innvilo-grid-skeleton span {
  background: linear-gradient(90deg, var(--color-notification-skeleton), var(--color-notification-skeleton-highlight), var(--color-notification-skeleton));
  background-size: 200% 100%;
  min-height: var(--innvilo-grid-row-height-comfortable);
}

.innvilo-grid-skeleton span.is-header {
  background: var(--innvilo-grid-header-surface);
  min-height: var(--innvilo-grid-header-height);
}

@media (prefers-reduced-motion: no-preference) {
  .innvilo-grid-skeleton span {
    animation: innvilo-grid-skeleton 1.4s ease-in-out infinite;
  }
}
@keyframes innvilo-grid-skeleton {
  from {
    background-position: 100% 0;
  }
  to {
    background-position: -100% 0;
  }
}
.innvilo-grid-mobile {
  display: block;
}

.innvilo-grid-mobile__footer {
  background: var(--innvilo-grid-surface);
  border-top: 1px solid var(--innvilo-grid-border);
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
}

.innvilo-grid-mobile-pager__control.dxbl-pager {
  background: transparent;
  border: 0;
  color: var(--innvilo-text-secondary);
  font-family: "Lato-Regular", Arial, sans-serif;
  justify-content: center;
  max-width: 100%;
}

.innvilo-grid-mobile-pager__control.dxbl-pager .dxbl-btn {
  border-radius: var(--innvilo-radius-control);
  min-height: var(--innvilo-grid-action-target-touch);
  min-width: var(--innvilo-grid-action-target-touch);
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}

.innvilo-grid-mobile-pager__control.dxbl-pager .dxbl-btn:focus-visible {
  box-shadow: 0 0 0 2px var(--color-primary-focus-ring);
  outline: none;
}

.innvilo-grid-mobile-pager[aria-busy=true] .innvilo-grid-mobile-pager__control {
  opacity: 0.72;
}

.innvilo-grid-mobile-row {
  background: var(--innvilo-grid-surface);
  border-bottom: 1px solid var(--innvilo-grid-border);
  display: grid;
  gap: var(--innvilo-space-5);
  padding: var(--innvilo-space-6);
}

.innvilo-grid-mobile-row dl {
  display: grid;
  gap: var(--innvilo-space-5);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
}

.innvilo-grid-mobile-row dl > div.is-critical {
  grid-column: 1/-1;
}

.innvilo-grid-mobile-row dt {
  color: var(--innvilo-text-muted);
  font-size: var(--innvilo-grid-font-metadata);
  margin-bottom: var(--innvilo-space-2);
}

.innvilo-grid-mobile-row dd {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-grid-font-primary);
  margin: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.innvilo-grid-mobile-row__content[role=button] {
  cursor: pointer;
}

.innvilo-grid-mobile-row__content[role=button]:focus-visible {
  box-shadow: inset 0 0 0 2px var(--innvilo-color-primary);
  outline: none;
}

.page.is-mobile .innvilo-grid-header {
  align-items: stretch;
  flex-direction: column;
  padding: var(--innvilo-space-5);
}
.page.is-mobile .innvilo-grid-header__actions {
  flex-wrap: wrap;
}
.page.is-mobile .innvilo-grid-filter {
  padding: var(--innvilo-space-4);
}
.page.is-mobile .innvilo-grid-mobile__footer {
  padding: var(--innvilo-space-5);
}
.page.is-mobile .innvilo-grid-row-actions {
  justify-content: flex-end;
}
.page.is-mobile .innvilo-grid-row-actions .dxbl-btn,
.page.is-mobile .innvilo-grid-row-actions .dxbl-dropdown-button {
  height: var(--innvilo-grid-action-target-touch);
  min-height: var(--innvilo-grid-action-target-touch);
}
.page.is-mobile .innvilo-grid-row-action-view.dxbl-btn,
.page.is-mobile .innvilo-grid-row-action-secondary.dxbl-btn,
.page.is-mobile .innvilo-grid-row-action-overflow.dxbl-btn {
  min-width: var(--innvilo-grid-action-target-touch);
  width: var(--innvilo-grid-action-target-touch);
}
.page.is-mobile .innvilo-grid-state {
  align-items: flex-start;
  flex-direction: column;
  min-height: 12rem;
  padding: var(--innvilo-space-8);
}

@media (prefers-reduced-motion: reduce) {
  .innvilo-grid-mobile-pager__control.dxbl-pager .dxbl-btn {
    transition: none;
  }
}
.page.is-mobile .front-office-mobile-host .innvilo-grid-row-actions .dxbl-btn,
.page.is-mobile .front-office-mobile-host .innvilo-grid-row-actions .dxbl-dropdown-button {
  height: var(--innvilo-grid-action-target-touch);
  min-height: var(--innvilo-grid-action-target-touch);
}
.page.is-mobile .front-office-mobile-host .innvilo-grid-row-action-view.dxbl-btn,
.page.is-mobile .front-office-mobile-host .innvilo-grid-row-action-secondary.dxbl-btn,
.page.is-mobile .front-office-mobile-host .innvilo-grid-row-action-overflow.dxbl-btn {
  min-width: var(--innvilo-grid-action-target-touch);
  width: var(--innvilo-grid-action-target-touch);
}

/* Shared row action menu. Geometry is owned here, never by page-level styles. */
body .innvilo-context-menu.dxbl-context-menu {
  --dxbl-context-menu-bg: var(--innvilo-surface-elevated);
  background: var(--innvilo-surface-elevated);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-md);
  box-shadow: var(--innvilo-shadow-dropdown);
  color: var(--innvilo-text-primary);
  font-family: "Lato-Regular", Arial, sans-serif;
  max-width: min(18.75rem, 100vw - 2 * var(--innvilo-space-5));
  min-width: min(15rem, 100vw - 2 * var(--innvilo-space-5));
  overflow: hidden;
  padding: var(--innvilo-space-2);
  z-index: var(--innvilo-z-context-menu);
}

body .innvilo-context-menu.dxbl-context-menu .dxbl-context-menu-item,
body .innvilo-context-menu.dxbl-context-menu .dxbl-menu-item {
  border-radius: var(--innvilo-radius-xs);
  color: var(--innvilo-text-primary);
  min-height: 2.5rem;
  padding: 0 var(--innvilo-space-4);
  transition: background-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), color var(--innvilo-duration-fast) var(--innvilo-easing-standard);
}

body .innvilo-context-menu.dxbl-context-menu .dxbl-context-menu-item:not(.dxbl-disabled):hover,
body .innvilo-context-menu.dxbl-context-menu .dxbl-context-menu-item:not(.dxbl-disabled):focus-visible,
body .innvilo-context-menu.dxbl-context-menu .dxbl-menu-item:not(.dxbl-disabled):hover,
body .innvilo-context-menu.dxbl-context-menu .dxbl-menu-item:not(.dxbl-disabled):focus-visible {
  background: var(--innvilo-color-primary-subtle);
  color: var(--innvilo-text-primary);
  box-shadow: inset 0 0 0 2px var(--innvilo-border-focus), 0 0 0 2px var(--color-primary-focus-ring);
  outline: 2px solid transparent;
  outline-offset: -2px;
}

body .innvilo-context-menu.dxbl-context-menu .dxbl-context-menu-item-begin-group,
body .innvilo-context-menu.dxbl-context-menu .dxbl-menu-item-begin-group {
  border-top-color: var(--innvilo-border-default);
  margin-top: var(--innvilo-space-2);
  padding-top: var(--innvilo-space-2);
}

.innvilo-context-menu-item__content {
  align-items: center;
  display: grid;
  gap: var(--innvilo-space-4);
  grid-template-columns: 1.25rem minmax(0, 1fr) auto;
  min-width: 0;
  width: 100%;
}

.innvilo-context-menu-item__icon {
  align-items: center;
  color: var(--innvilo-text-secondary);
  display: inline-flex;
  font-size: 1rem;
  height: 1.25rem;
  justify-content: center;
  width: 1.25rem;
}

.innvilo-context-menu-item__label {
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.innvilo-context-menu-item__content kbd {
  background: transparent;
  border: 0;
  color: var(--innvilo-text-muted);
  font-family: "Lato-Regular", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  padding: 0;
  white-space: nowrap;
}

body .innvilo-context-menu.dxbl-context-menu .innvilo-context-menu-item.is-primary .innvilo-context-menu-item__icon {
  color: var(--innvilo-color-primary);
}

body .innvilo-context-menu.dxbl-context-menu .innvilo-context-menu-item.is-success .innvilo-context-menu-item__icon {
  color: var(--color-success);
}

body .innvilo-context-menu.dxbl-context-menu .innvilo-context-menu-item.is-info .innvilo-context-menu-item__icon {
  color: var(--color-info);
}

body .innvilo-context-menu.dxbl-context-menu .innvilo-context-menu-item.is-warning .innvilo-context-menu-item__icon {
  color: var(--color-warning-text);
}

body .innvilo-context-menu.dxbl-context-menu .innvilo-context-menu-item.is-danger {
  color: var(--color-error);
}

body .innvilo-context-menu.dxbl-context-menu .innvilo-context-menu-item.is-danger .innvilo-context-menu-item__icon {
  color: var(--color-error);
}

body .innvilo-context-menu.dxbl-context-menu .innvilo-context-menu-item.is-danger:not(.dxbl-disabled):hover,
body .innvilo-context-menu.dxbl-context-menu .innvilo-context-menu-item.is-danger:not(.dxbl-disabled):focus-visible {
  background: var(--color-error-surface);
  color: var(--color-error);
}

body .innvilo-context-menu.dxbl-context-menu .dxbl-disabled .innvilo-context-menu-item__label,
body .innvilo-context-menu.dxbl-context-menu .dxbl-disabled .innvilo-context-menu-item__icon {
  color: var(--innvilo-text-disabled);
}

.innvilo-grid .innvilo-grid-row--contextual > td,
.innvilo-grid .innvilo-grid-row--contextual > .dxbl-grid-cell {
  background: var(--innvilo-grid-selected-surface);
}

@media (max-width: 47.99rem), (pointer: coarse) {
  body .innvilo-context-menu.dxbl-context-menu {
    max-width: calc(100vw - 2 * var(--innvilo-space-4));
    min-width: min(17rem, 100vw - 2 * var(--innvilo-space-4));
  }
  body .innvilo-context-menu.dxbl-context-menu .dxbl-context-menu-item,
  body .innvilo-context-menu.dxbl-context-menu .dxbl-menu-item {
    min-height: 3rem;
    padding-inline: var(--innvilo-space-5);
  }
}
@media (prefers-reduced-motion: reduce) {
  body .innvilo-context-menu.dxbl-context-menu .dxbl-context-menu-item,
  body .innvilo-context-menu.dxbl-context-menu .dxbl-menu-item {
    transition: none;
  }
}
/* DevExpress Grid + Scheduler booking plan workbench. */
/* Die Seite trägt seit dem Umbau .pms-worklist. Anzeige, Blockrhythmus (34px Desktop, 24px kompakt) und
   Schrift kommen von dort; hier bleibt nur, was der Plan zusätzlich braucht. */
.room-plan-page {
  max-width: 100%;
  min-width: 0;
  width: 100%;
}

/* Die Zeitachse ist breiter als der Bildschirm und scrollt in sich. Ohne diese Klammer schiebt sie auf
   schmalen Geräten die ganze Seite auf; site.css hat das früher über .operations-page erledigt. */
@media (max-width: 61.9375rem) {
  .room-plan-page {
    overflow-x: clip;
  }
}
/* Steuerleiste der Zeitachse: Zeitraum links, Ansichtslänge rechts. Keine eigene Fläche, sie gehört
   optisch zum Plan darunter. */
.room-plan-planbar {
  align-items: center;
  column-gap: var(--innvilo-space-6);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  min-width: 0;
  row-gap: var(--innvilo-space-4);
}

.room-plan-planbar__period,
.room-plan-span {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-2);
  min-width: 0;
}

.room-plan-planbar__period {
  gap: var(--innvilo-space-3);
}

.room-plan-planbar__range {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  font-variant-numeric: tabular-nums;
  letter-spacing: var(--innvilo-tracking-caption);
  margin-left: var(--innvilo-space-2);
  white-space: nowrap;
}

.room-plan-overview {
  display: grid;
  gap: var(--innvilo-space-4);
  grid-template-columns: 1.12fr 1fr 1fr;
}

.room-plan-overview__card {
  background: var(--innvilo-surface-main);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-card);
  display: grid;
  gap: var(--innvilo-space-4);
  min-width: 0;
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
}

.room-plan-overview__card > header {
  align-items: center;
  display: flex;
  gap: var(--innvilo-space-3);
}

.room-plan-overview__card > header > div {
  display: grid;
  gap: var(--innvilo-space-1);
  min-width: 0;
}

.room-plan-overview__card > header > div > span {
  color: var(--innvilo-text-primary);
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
}

.room-plan-overview__card > header small {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
}

.room-plan-overview__icon {
  align-items: center;
  background: var(--innvilo-surface-muted);
  border: 1px solid var(--innvilo-border-soft);
  border-radius: var(--innvilo-radius-sm);
  color: var(--innvilo-text-secondary);
  display: inline-flex;
  flex: 0 0 auto;
  height: 2.25rem;
  justify-content: center;
  width: 2.25rem;
}

.room-plan-overview__card dl {
  display: grid;
  gap: var(--innvilo-space-4);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
}

.room-plan-overview__card dl > div {
  border-left: 2px solid var(--innvilo-border-default);
  display: grid;
  gap: var(--innvilo-space-1);
  padding-left: var(--innvilo-space-4);
}

.room-plan-overview__card dt {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
}

.room-plan-overview__card dd {
  color: var(--innvilo-text-primary);
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-title);
  font-variant-numeric: tabular-nums;
  line-height: 1;
  margin: 0;
}

.room-plan-overview__card.is-attention.is-clear .room-plan-overview__icon {
  background: var(--innvilo-surface-muted);
  color: var(--color-success);
}

/* Die frühere Zeitraum- und Ansichtsnavigation in der Filterleiste (.room-plan-filter-navigation,
   .room-plan-period-actions, .room-plan-view-switch) ist mit dem Umbau in den Seitenkopf gewandert;
   ihre Regeln standen hier ohne Markup. Der Ersatz sind .room-plan-period und .room-plan-span oben. */
/* Filterbereich im Arbeitslisten-Baukasten. Die Werkzeugleiste und die Marken bringen ihr eigenes Layout
   mit (_worklist.scss); hier steht nur die Fläche, die beide zusammenhält. Die früheren Haken auf
   .pms-generic-filter__* sind mit dem FilterCenter entfallen. */
.room-plan-filter-center {
  background: var(--innvilo-surface-card);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-xs);
  display: grid;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
}

/* Eine Spalte in der Reihenfolge des Markups: Zuweisungsliste, Legende, Steuerleiste, Zeitachse.
   Benannte Bereiche gelten nur im breiten Zweispalter, sonst müsste jedes neue Kind einen Bereich
   mitbringen. */
.room-plan-workbench.room-plan-desktop-host {
  display: grid;
  gap: var(--innvilo-space-6);
  grid-template-columns: minmax(0, 1fr);
  min-width: 0;
}

/* Die Warteschlange ist eine eigene Arbeitsliste über dem Plan, nicht eine Spalte daneben. In einer
   Seitenspalte blieben von acht Spalten drei lesbar, und die Hauptaktion „Zimmer zuweisen“ hatte keinen
   Platz. Ziehen auf die Zeitachse funktioniert weiterhin, ist aber nicht mehr der einzige Weg. */
.room-plan-unassigned-panel {
  min-width: 0;
  width: 100%;
}

/* Zuweisen-Knopf und die geteilten Zeilenaktionen in einer Zelle. */
.room-plan-assign-cell {
  align-items: center;
  display: flex;
  gap: var(--innvilo-space-3);
  justify-content: flex-end;
  min-width: 0;
}

.room-plan-assign-cell .innvilo-grid-row-actions {
  flex: 0 0 auto;
}

.room-plan-unassigned-panel,
.room-plan-scheduler-panel {
  background: var(--innvilo-surface-main);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-card);
  min-width: 0;
  overflow: hidden;
}

.room-plan-panel-header {
  align-items: center;
  border-bottom: 1px solid var(--innvilo-border-soft);
  display: flex;
  justify-content: space-between;
  min-height: 3.5rem;
  padding: var(--innvilo-space-4) var(--innvilo-space-6);
}

.room-plan-panel-header h2 {
  color: var(--innvilo-text-primary);
  font-size: var(--innvilo-font-size-subheading);
  margin: 0.05rem 0 0;
}

.room-plan-panel-header > span,
.room-plan-panel-kicker {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
}

.room-plan-panel-kicker {
  letter-spacing: 0;
  text-transform: none;
}

.room-plan-scheduler-guidance {
  align-items: center;
  color: var(--innvilo-text-muted);
  display: flex;
  flex-wrap: wrap;
  font-size: var(--innvilo-font-size-micro);
  gap: var(--innvilo-space-2) var(--innvilo-space-4);
  justify-content: flex-end;
}

.room-plan-scheduler-guidance span {
  align-items: center;
  display: inline-flex;
  gap: 0.28rem;
}

.room-plan-scheduler-guidance i {
  color: var(--innvilo-text-muted);
}

.room-plan-scheduler-scope {
  background: var(--innvilo-surface-muted);
  border-radius: var(--innvilo-radius-full);
  color: var(--innvilo-text-secondary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  padding: 0.18rem var(--innvilo-space-4);
}

/* Drag hints are guidance, not operating data: keep them for pointer-capable desktops
   and drop them where the header would otherwise wrap into a second block. */
@media (max-width: 68.75rem) {
  .room-plan-scheduler-guidance span:not(.room-plan-scheduler-scope) {
    display: none;
  }
}
.room-plan-count-badge {
  background: var(--color-accent-soft);
  border-radius: 999px;
  color: var(--color-primary);
  font-weight: 700;
  min-width: 1.6rem;
  padding: 0.2rem 0.45rem;
  text-align: center;
}

.room-plan-count-badge strong {
  font-size: 0.9rem;
}

.room-plan-queue-heading {
  align-items: center;
  display: flex;
  gap: 0.65rem;
  min-width: 0;
}

.room-plan-queue-heading > div {
  display: grid;
  gap: 0.1rem;
  min-width: 0;
}

.room-plan-queue-heading p {
  color: var(--color-text-muted);
  font-size: 0.7rem;
  margin: 0.1rem 0 0;
}

.room-plan-queue-icon {
  align-items: center;
  background: var(--color-warning-soft);
  border-radius: var(--radius-sm);
  color: var(--color-warning);
  display: inline-flex;
  flex: 0 0 auto;
  height: 2.35rem;
  justify-content: center;
  width: 2.35rem;
}

.room-plan-grid-identity,
.room-plan-grid-stay,
.room-plan-grid-signals {
  display: grid;
  gap: 0.15rem;
}

.room-plan-grid-identity strong,
.room-plan-grid-stay strong {
  font-size: var(--innvilo-grid-font-primary);
}

.room-plan-grid-identity span,
.room-plan-grid-stay span,
.room-plan-grid-signals small {
  color: var(--color-text-muted);
  font-size: var(--innvilo-grid-font-secondary);
}

.room-plan-grid-identity i {
  color: var(--color-warning);
  margin-left: 0.25rem;
}

.room-plan-grid-guests {
  align-items: center;
  display: inline-flex;
  gap: 0.35rem;
}

.room-plan-stay-badge {
  align-items: center;
  border: 1px dashed var(--color-room-plan-unassigned-border);
  border-radius: var(--innvilo-radius-pill);
  color: var(--color-room-plan-unassigned-text);
  display: inline-flex;
  font-size: var(--innvilo-grid-font-metadata);
  padding: var(--innvilo-space-1) var(--innvilo-space-2);
  width: fit-content;
}

.room-plan-empty-inline {
  align-items: center;
  color: var(--color-text-muted);
  display: flex;
  gap: 0.5rem;
  justify-content: center;
  min-height: 4rem;
  padding: 0.75rem;
}

.room-plan-empty-inline i {
  color: var(--color-success);
}

.room-plan-empty-inline span {
  font-size: 0.78rem;
}

/* Eine flache Fläche im Panelmaß der Arbeitslisten: Titel links, die beiden Gruppen daneben, Einträge als
   fließende Marken. Der frühere zweizeilige Kopf mit eigenem Icon-Kreis ist entfallen; ein Icon in einem
   getönten Kreis ist nach DESIGN_NEW_RULES §3 ein Container um ein Icon. */
.room-plan-legend {
  align-items: start;
  background: var(--innvilo-surface-card);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-xs);
  column-gap: var(--innvilo-space-8);
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) minmax(0, 1fr);
  min-width: 0;
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
  row-gap: var(--innvilo-space-5);
}

.room-plan-legend__title {
  align-items: center;
  color: var(--innvilo-text-primary);
  display: flex;
  font-size: var(--innvilo-font-size-caption);
  gap: var(--innvilo-space-3);
  letter-spacing: var(--innvilo-tracking-caption);
  margin: 0;
  white-space: nowrap;
}

.room-plan-legend__title i {
  color: var(--innvilo-text-muted);
}

.room-plan-legend-group {
  display: grid;
  gap: var(--innvilo-space-3);
  min-width: 0;
  padding: 0;
}

.room-plan-legend-group h3 {
  align-items: center;
  color: var(--innvilo-text-secondary);
  display: flex;
  font-size: var(--innvilo-font-size-caption);
  gap: var(--innvilo-space-2);
  letter-spacing: 0;
  margin: 0;
  text-transform: none;
}

.room-plan-legend-group h3 i {
  color: var(--innvilo-text-secondary);
}

/* Fließende Marken statt fester Spalten: so entsteht auf keiner Breite ein innerer Überlauf
   (der Vertragstest misst scrollWidth gegen clientWidth ab 768px). */
.room-plan-legend-group ul {
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-3) var(--innvilo-space-5);
  list-style: none;
  margin: 0;
  min-width: 0;
  padding: 0;
}

.room-plan-legend-group li {
  align-items: center;
  color: var(--innvilo-text-secondary);
  display: flex;
  font-size: var(--innvilo-font-size-caption);
  gap: var(--innvilo-space-2);
  min-width: 0;
  overflow-wrap: anywhere;
  white-space: normal;
}

.room-plan-legend-marker {
  align-items: center;
  background: var(--room-plan-state-soft);
  border: 0;
  border-radius: var(--innvilo-radius-full);
  color: var(--room-plan-state);
  display: inline-flex;
  flex: 0 0 auto;
  height: 1.15rem;
  justify-content: center;
  width: 1.15rem;
}

.room-plan-legend-marker i {
  font-size: 0.5625rem;
}

.room-plan-legend-marker.is-arrival {
  --room-plan-state: var(--color-room-plan-state-ready);
  --room-plan-state-soft: var(--color-room-plan-state-ready-soft);
}

.room-plan-legend-marker.is-inhouse {
  --room-plan-state: var(--color-room-plan-state-occupied);
  --room-plan-state-soft: var(--color-room-plan-state-occupied-soft);
}

.room-plan-legend-marker.is-departure {
  --room-plan-state: var(--color-room-plan-state-cleaning);
  --room-plan-state-soft: var(--color-room-plan-state-cleaning-soft);
}

.room-plan-legend-marker.is-inspected {
  --room-plan-state: var(--color-room-plan-state-clean);
  --room-plan-state-soft: var(--color-room-plan-state-clean-soft);
}

.room-plan-legend-marker.is-no-show {
  --room-plan-state: var(--color-warning);
  --room-plan-state-soft: var(--color-warning-soft);
}

.room-plan-legend-marker.is-cancelled {
  --room-plan-state: var(--color-room-plan-state-dirty);
  --room-plan-state-soft: var(--color-room-plan-state-dirty-soft);
}

.room-plan-scheduler-scroll {
  min-width: 0;
  overflow-x: auto;
}

/* One accent colour plus one tint per state. Every room row and stay block reads its
   colours from these two custom properties, so the whole timeline stays consistent. */
.room-plan-resource,
.room-plan-appointment,
.room-plan-legend-marker {
  --room-plan-state: var(--color-room-plan-state-neutral);
  --room-plan-state-soft: var(--color-room-plan-state-neutral-soft);
}

.room-plan-resource.is-clean,
.room-plan-legend-marker.is-clean {
  --room-plan-state: var(--color-room-plan-state-clean);
  --room-plan-state-soft: var(--color-room-plan-state-clean-soft);
}

.room-plan-resource.is-arrival-ready,
.room-plan-legend-marker.is-arrival-ready {
  --room-plan-state: var(--color-room-plan-state-ready);
  --room-plan-state-soft: var(--color-room-plan-state-ready-soft);
}

.room-plan-resource.is-dirty,
.room-plan-legend-marker.is-dirty {
  --room-plan-state: var(--color-room-plan-state-dirty);
  --room-plan-state-soft: var(--color-room-plan-state-dirty-soft);
}

.room-plan-resource.is-cleaning,
.room-plan-legend-marker.is-cleaning {
  --room-plan-state: var(--color-room-plan-state-cleaning);
  --room-plan-state-soft: var(--color-room-plan-state-cleaning-soft);
}

.room-plan-resource.is-occupied,
.room-plan-legend-marker.is-occupied {
  --room-plan-state: var(--color-room-plan-state-occupied);
  --room-plan-state-soft: var(--color-room-plan-state-occupied-soft);
}

.room-plan-resource.is-blocked,
.room-plan-legend-marker.is-out-of-order,
.room-plan-legend-marker.is-out-of-service {
  --room-plan-state: var(--color-room-plan-state-blocked);
  --room-plan-state-soft: var(--color-room-plan-state-blocked-soft);
}

.room-plan-resource {
  align-content: center;
  border-left: 0.1875rem solid var(--room-plan-state);
  display: grid;
  gap: 0.15rem;
  grid-template-columns: minmax(0, 1fr) auto;
  height: 100%;
  line-height: 1.15;
  min-width: 0;
  padding: var(--innvilo-space-2) var(--innvilo-space-3) var(--innvilo-space-2) var(--innvilo-space-4);
  transition: background-color 120ms ease;
}

.room-plan-resource:hover {
  background: var(--color-room-plan-row-hover);
}

.room-plan-resource-identity,
.room-plan-resource-category {
  grid-column: 1;
}

.room-plan-resource .room-plan-context-trigger-host {
  align-self: center;
  grid-column: 2;
  grid-row: 1/span 2;
  opacity: 0;
  transition: opacity 120ms ease;
}

.room-plan-resource:hover .room-plan-context-trigger-host,
.room-plan-resource:focus-within .room-plan-context-trigger-host {
  opacity: 1;
}

.room-plan-resource-identity {
  align-items: center;
  display: flex;
  gap: 0.35rem;
  min-width: 0;
}

.room-plan-resource-number {
  align-items: baseline;
  display: inline-flex;
  margin-right: auto;
  min-width: 0;
}

.room-plan-resource-number strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
  letter-spacing: -0.01em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Both badges are abbreviations. The browser default for abbr[title] is a dotted
   underline, which needs the attribute selector to stay out of the timeline. */
.room-plan-resource-floor-badge[title],
.room-plan-resource-category-badge[title] {
  border-radius: var(--innvilo-radius-full);
  font-family: "Lato-Bold", Arial, sans-serif;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
}

.room-plan-resource-floor-badge {
  background: var(--innvilo-surface-muted);
  border: 0;
  color: var(--innvilo-text-muted);
  flex: 0 0 auto;
  font-size: var(--innvilo-font-size-micro);
  padding: 0.18rem var(--innvilo-space-3);
}

.room-plan-resource-category {
  align-items: center;
  display: flex;
  gap: 0.3rem;
  min-width: 0;
}

.room-plan-resource-category-badge {
  background: transparent;
  border: 1px solid var(--innvilo-border-soft);
  color: var(--innvilo-text-secondary);
  flex: 0 1 auto;
  font-size: var(--innvilo-font-size-micro);
  letter-spacing: 0.02em;
  max-width: 6.5rem;
  overflow: hidden;
  padding: 0.16rem var(--innvilo-space-3);
  text-overflow: ellipsis;
}

.room-plan-room-status {
  align-items: center;
  background: var(--room-plan-state-soft);
  border-radius: var(--innvilo-radius-full);
  color: var(--room-plan-state);
  display: inline-flex;
  flex: 0 0 auto;
  height: 1.15rem;
  justify-content: center;
  width: 1.15rem;
}

.room-plan-room-status i {
  font-size: 0.5625rem;
}

.room-plan-resource.is-blocked .room-plan-resource-number strong {
  color: var(--innvilo-text-secondary);
}

.room-plan-date-header {
  display: grid;
  gap: 0.1rem;
  padding: var(--innvilo-space-3) var(--innvilo-space-2);
  text-align: center;
}

.room-plan-date-header span {
  color: var(--innvilo-text-muted);
  font-size: var(--innvilo-font-size-micro);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.room-plan-date-header small {
  color: var(--innvilo-color-primary);
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-micro);
}

.room-plan-date-header strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
  font-variant-numeric: tabular-nums;
}

.room-plan-date-header.is-weekend span,
.room-plan-date-header.is-weekend strong {
  color: var(--innvilo-text-secondary);
}

.room-plan-date-header.is-past span,
.room-plan-date-header.is-past strong {
  color: var(--innvilo-text-muted);
}

.room-plan-date-header.is-today {
  box-shadow: inset 0 0.1875rem 0 var(--innvilo-color-primary);
}

.room-plan-date-header.is-today span,
.room-plan-date-header.is-today strong {
  color: var(--innvilo-color-primary-active);
}

.room-plan-appointment {
  align-items: center;
  background: var(--room-plan-state-soft);
  border: 1px solid var(--innvilo-border-soft);
  border-left: 0.1875rem solid var(--room-plan-state);
  border-radius: var(--innvilo-radius-xs);
  color: var(--innvilo-text-primary);
  display: flex;
  gap: var(--innvilo-space-2);
  height: 100%;
  min-height: 2rem;
  overflow: hidden;
  padding: 0 var(--innvilo-space-3);
  position: relative;
  transition: box-shadow 120ms ease;
}

.room-plan-appointment:hover {
  box-shadow: 0 0.25rem 0.75rem var(--color-room-plan-sticky-shadow);
}

.room-plan-appointment > i {
  color: var(--room-plan-state);
  flex: 0 0 auto;
  font-size: 0.625rem;
}

.room-plan-appointment-headline {
  display: grid;
  gap: 0.05rem;
  min-width: 0;
}

.room-plan-appointment strong,
.room-plan-appointment small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.room-plan-appointment strong {
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
}

.room-plan-appointment small {
  color: var(--innvilo-text-muted);
  font-size: var(--innvilo-font-size-micro);
}

.room-plan-appointment.is-cancelled small,
.room-plan-appointment.is-no-show small {
  color: inherit;
  opacity: 0.75;
}

.room-plan-appointment-signals {
  align-items: center;
  color: var(--innvilo-text-muted);
  display: flex;
  flex: 0 0 auto;
  font-size: var(--innvilo-font-size-micro);
  gap: 0.28rem;
  margin-left: auto;
}

.room-plan-context-trigger-host {
  display: inline-flex;
  flex: 0 0 auto;
}

/* The row action stays an inline flex item inset from the right edge: an overlay on the
   edge would sit on top of the DevExpress resize handle and swallow resize drags. It stays
   clickable while faded out so keyboard and automation can reach it without a hover. */
.room-plan-appointment .room-plan-context-trigger-host,
.room-plan-operational-item .room-plan-context-trigger-host {
  margin-left: auto;
  margin-right: var(--innvilo-space-3);
  opacity: 0;
  transition: opacity 120ms ease;
}

.room-plan-appointment .room-plan-appointment-signals + .room-plan-context-trigger-host,
.room-plan-operational-item > span:not(.room-plan-context-trigger-host) + .room-plan-context-trigger-host {
  margin-left: 0;
}

.room-plan-appointment:hover .room-plan-context-trigger-host,
.room-plan-appointment:focus-within .room-plan-context-trigger-host {
  opacity: 1;
}

.room-plan-context-trigger.dx-app-button.dxbl-btn {
  height: 1.75rem;
  min-height: 1.75rem;
  min-width: 1.75rem;
  padding: 0;
  width: 1.75rem;
}

/* Touch devices never hover: keep every row action reachable and finger sized. */
@media (hover: none) {
  .room-plan-resource .room-plan-context-trigger-host,
  .room-plan-appointment .room-plan-context-trigger-host,
  .room-plan-operational-item .room-plan-context-trigger-host {
    opacity: 1;
  }
  .room-plan-context-trigger.dx-app-button.dxbl-btn {
    height: 2.25rem;
    min-height: 2.25rem;
    min-width: 2.25rem;
    width: 2.25rem;
  }
}
.room-plan-appointment.is-reserved,
.room-plan-appointment.is-future {
  --room-plan-state: var(--color-room-plan-state-neutral);
  background: var(--innvilo-surface-main);
}

.room-plan-appointment.is-arrival {
  --room-plan-state: var(--color-room-plan-state-ready);
  --room-plan-state-soft: var(--color-room-plan-state-ready-soft);
}

.room-plan-appointment.is-inhouse {
  --room-plan-state: var(--color-room-plan-state-occupied);
  --room-plan-state-soft: var(--color-room-plan-state-occupied-soft);
}

.room-plan-appointment.is-departure {
  --room-plan-state: var(--color-room-plan-state-cleaning);
  --room-plan-state-soft: var(--color-room-plan-state-cleaning-soft);
}

.room-plan-appointment.is-completed {
  --room-plan-state: var(--color-room-plan-state-blocked);
  --room-plan-state-soft: var(--color-room-plan-state-blocked-soft);
  color: var(--innvilo-text-secondary);
}

/* No-show und Storno sind fachlich verschieden und dürfen nicht gleich aussehen: Storniert ist
   rot (die Buchung ist weg), nicht angereist ist gelb (der Vorgang ist noch zu bearbeiten). */
.room-plan-appointment.is-no-show {
  --room-plan-state: var(--color-warning);
  background: var(--color-warning-soft);
  border-color: var(--color-warning-border);
  color: var(--color-warning-text);
}

.room-plan-appointment.is-cancelled {
  --room-plan-state: var(--color-room-plan-state-dirty);
  background: var(--innvilo-surface-main);
  border-color: var(--color-error-border);
  color: var(--color-error);
}

.room-plan-drag-preview {
  animation: room-plan-drag-preview-in 120ms ease-out;
  background: var(--color-surface);
  border: 1px solid var(--color-primary);
  border-radius: var(--radius-sm);
  box-shadow: 0 0.65rem 1.8rem var(--color-room-plan-preview-shadow);
  display: grid;
  gap: 0.15rem;
  left: 0;
  min-width: 14rem;
  padding: 0.65rem 0.75rem;
  pointer-events: none;
  position: fixed;
  top: 0;
  z-index: 10000;
}

@keyframes room-plan-drag-preview-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.room-plan-drag-preview span,
.room-plan-drag-preview small {
  color: var(--color-text-muted);
  font-size: 0.75rem;
}

.room-plan-live-region {
  height: 1px;
  overflow: hidden;
  position: absolute;
  width: 1px;
  clip-path: inset(50%);
}

.room-plan-assignment-rooms {
  display: grid;
  gap: 0.45rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-height: 24rem;
  overflow-y: auto;
}

.room-plan-assignment-rooms .dx-app-button {
  justify-content: flex-start;
}

.room-plan-booking-details h3 {
  margin-top: 0;
}

.room-plan-booking-details dl {
  display: grid;
  gap: 0.65rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.room-plan-booking-details dl div {
  background: var(--color-surface-soft);
  border-radius: var(--radius-sm);
  display: grid;
  gap: 0.2rem;
  padding: 0.65rem;
}

.room-plan-booking-details dt {
  color: var(--color-text-muted);
  font-size: 0.72rem;
}

.room-plan-booking-details dd {
  margin: 0;
}

.room-plan-conflict small {
  color: var(--color-text-muted);
}

.room-plan-relocation-suggestion {
  background: var(--color-accent-soft);
  border: 1px solid var(--color-room-plan-unassigned-border);
  border-radius: var(--radius-sm);
  display: grid;
  gap: 0.45rem;
  margin-top: 0.85rem;
  padding: 0.8rem;
}

.room-plan-relocation-suggestion strong {
  color: var(--color-primary-active);
}

.room-plan-relocation-suggestion p {
  margin: 0;
}

.room-plan-category-approval {
  display: grid;
  gap: 0.75rem;
}

.room-plan-category-approval > strong {
  font-size: 1rem;
}

.room-plan-category-approval > p {
  color: var(--color-text-muted);
  font-size: 0.82rem;
  line-height: 1.45;
  margin: 0;
}

.room-plan-category-change {
  align-items: center;
  display: grid;
  gap: 0.55rem;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
}

.room-plan-category-change > span {
  background: var(--color-surface-soft);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  display: grid;
  font-weight: 700;
  gap: 0.2rem;
  min-width: 0;
  padding: 0.65rem;
}

.room-plan-category-change > span:last-child {
  background: var(--color-accent-soft);
  border-color: var(--color-primary);
}

.room-plan-category-change small {
  color: var(--color-text-muted);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.room-plan-category-change > i {
  color: var(--color-primary);
}

.room-plan-change-approval {
  align-items: center;
  display: grid;
  gap: 0.65rem;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
}

.room-plan-change-approval > span {
  background: var(--color-surface-soft);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  display: grid;
  gap: 0.25rem;
  padding: 0.7rem;
}

.room-plan-change-approval > span:nth-of-type(2) {
  background: var(--color-accent-soft);
  border-color: var(--color-primary);
}

.room-plan-change-approval small {
  color: var(--color-text-muted);
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.room-plan-change-approval > i {
  color: var(--color-primary);
}

.room-plan-change-approval > p {
  color: var(--color-text-muted);
  font-size: 0.78rem;
  grid-column: 1/-1;
  line-height: 1.45;
  margin: 0;
}

.room-plan-shortening-reason {
  border-top: 1px solid var(--color-border);
  display: grid;
  gap: 0.45rem;
  grid-column: 1/-1;
  margin-top: 0.15rem;
  padding-top: 0.8rem;
}

.room-plan-shortening-reason label {
  color: var(--color-text);
  font-size: 0.82rem;
  font-weight: 700;
}

.room-plan-shortening-reason label span {
  color: var(--color-error);
}

.room-plan-shortening-reason > small {
  align-items: center;
  display: flex;
  font-size: 0.72rem;
  gap: 0.35rem;
  letter-spacing: normal;
  line-height: 1.35;
  text-transform: none;
}

.room-plan-shortening-reason > small i {
  color: var(--color-primary);
}

@media (max-width: 80rem) {
  .room-plan-overview {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .room-plan-legend {
    grid-template-columns: 1fr 1fr;
  }
  .room-plan-legend__title {
    grid-column: 1/-1;
  }
}
@media (max-width: 51.25rem) {
  .room-plan-overview {
    grid-template-columns: 1fr;
  }
  .room-plan-span {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: 100%;
  }
  .room-plan-span .dx-app-button {
    width: 100%;
  }
  .room-plan-legend {
    grid-template-columns: 1fr;
  }
  .room-plan-legend__title {
    grid-column: auto;
  }
  .room-plan-filter-center [data-filter-field=period],
  .room-plan-filter-center [data-filter-field=search] {
    grid-column: auto;
  }
  .room-plan-assignment-rooms,
  .room-plan-booking-details dl {
    grid-template-columns: 1fr;
  }
}
@media (prefers-reduced-motion: reduce) {
  .room-plan-drag-preview {
    animation: none;
    transition: none;
  }
}
.room-plan-operational-item {
  --room-plan-state: var(--color-room-plan-state-blocked);
  --room-plan-state-soft: var(--color-room-plan-state-blocked-soft);
  align-items: center;
  background: var(--room-plan-state-soft);
  border: 1px solid var(--innvilo-border-soft);
  border-left: 0.1875rem solid var(--room-plan-state);
  border-radius: var(--innvilo-radius-xs);
  color: var(--innvilo-text-secondary);
  display: flex;
  gap: var(--innvilo-space-2);
  height: 100%;
  min-width: 0;
  overflow: hidden;
  padding: 0 var(--innvilo-space-3);
  position: relative;
  transition: box-shadow var(--innvilo-duration-fast) var(--innvilo-easing-standard);
}

.room-plan-operational-item:hover {
  box-shadow: 0 0.25rem 0.75rem var(--color-room-plan-sticky-shadow);
}

.room-plan-operational-item > i {
  color: var(--room-plan-state);
  flex: 0 0 auto;
  font-size: 0.625rem;
}

.room-plan-operational-item > span:not(.room-plan-context-trigger-host) {
  display: grid;
  min-width: 0;
}

.room-plan-operational-item strong {
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.room-plan-operational-item:hover .room-plan-context-trigger-host,
.room-plan-operational-item:focus-within .room-plan-context-trigger-host {
  opacity: 1;
}

.room-plan-operational-item.is-out-of-order {
  background: repeating-linear-gradient(135deg, var(--color-room-plan-state-blocked-soft), var(--color-room-plan-state-blocked-soft) 0.4rem, var(--innvilo-surface-main) 0.4rem, var(--innvilo-surface-main) 0.65rem);
}

.room-plan-operational-item.is-information,
.room-plan-operational-item.is-important-information,
.room-plan-operational-item.is-critical-information {
  --room-plan-state: var(--color-room-plan-state-ready);
  --room-plan-state-soft: var(--color-room-plan-state-ready-soft);
}

.room-plan-operational-item.is-important-information {
  --room-plan-state: var(--color-room-plan-state-cleaning);
  --room-plan-state-soft: var(--color-room-plan-state-cleaning-soft);
}

.room-plan-operational-item.is-critical-information {
  --room-plan-state: var(--color-room-plan-state-dirty);
  --room-plan-state-soft: var(--color-room-plan-state-dirty-soft);
  color: var(--color-error);
}

.booking-plan-context-editor {
  display: grid;
  gap: var(--innvilo-space-6);
  margin: 0 auto;
  max-width: 48rem;
}

.booking-plan-context-summary {
  align-items: center;
  background: var(--innvilo-surface-muted);
  border: 1px solid var(--innvilo-border-soft);
  border-radius: var(--innvilo-radius-md);
  display: grid;
  gap: var(--innvilo-space-3);
  grid-template-columns: auto minmax(0, 1fr) auto;
  margin: 0;
  padding: var(--innvilo-space-4);
}

.booking-plan-context-summary__icon {
  align-items: center;
  background: var(--color-error-soft);
  border: 1px solid var(--color-error-border);
  border-radius: var(--innvilo-radius-sm);
  color: var(--color-error);
  display: inline-flex;
  height: 2.5rem;
  justify-content: center;
  width: 2.5rem;
}

.booking-plan-context-summary__icon.is-information {
  background: var(--color-info-soft);
  border-color: var(--color-info-border);
  color: var(--color-info);
}

.booking-plan-context-room-copy {
  display: grid;
  gap: var(--innvilo-space-1);
  min-width: 0;
}

.booking-plan-context-room-copy > small {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-micro);
  font-weight: 800;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

.booking-plan-context-room-copy > strong {
  color: var(--innvilo-text-primary);
  font-size: 1.1rem;
  line-height: 1.2;
}

.booking-plan-context-room-copy > span {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
}

.booking-plan-context-summary-badges {
  align-items: flex-end;
  display: flex;
  flex-direction: column;
  gap: var(--innvilo-space-2);
}

.booking-plan-context-badge {
  align-items: center;
  background: var(--innvilo-surface-main);
  border: 1px solid var(--innvilo-border-soft);
  border-radius: var(--innvilo-radius-sm);
  color: var(--innvilo-text-secondary);
  display: inline-flex;
  font-size: var(--innvilo-font-size-micro);
  font-weight: 800;
  gap: var(--innvilo-space-2);
  padding: 0.34rem 0.55rem;
  white-space: nowrap;
}

.booking-plan-context-badge.is-danger {
  background: var(--color-error-soft);
  border-color: var(--color-error-border);
  color: var(--color-error);
}

.booking-plan-context-badge.is-warning {
  background: var(--color-warning-soft);
  border-color: var(--color-warning-border);
  color: var(--color-warning-text);
}

.booking-plan-context-badge.is-information {
  background: var(--color-info-soft);
  border-color: var(--color-info-border);
  color: var(--color-info);
}

.booking-plan-context-badge.is-success {
  background: var(--color-success-soft);
  border-color: var(--color-success-border);
  color: var(--color-success);
}

.booking-plan-editor-section {
  display: grid;
  gap: var(--innvilo-space-4);
  min-width: 0;
}

.booking-plan-editor-section + .booking-plan-editor-section {
  border-top: 1px solid var(--innvilo-border-soft);
  padding-top: var(--innvilo-space-5);
}

.booking-plan-editor-section__title {
  align-items: center;
  color: var(--innvilo-text-primary);
  display: grid;
  gap: var(--innvilo-space-3);
  grid-template-columns: 2rem minmax(0, 1fr);
}

.booking-plan-editor-section__title > i {
  align-items: center;
  background: var(--innvilo-color-primary-subtle);
  border: 1px solid var(--innvilo-border-soft);
  border-radius: var(--innvilo-radius-sm);
  color: var(--innvilo-color-primary);
  display: inline-flex;
  height: 2rem;
  justify-content: center;
  width: 2rem;
}

.booking-plan-editor-section__title > span {
  display: grid;
  gap: var(--innvilo-space-1);
}

.booking-plan-editor-section__title strong {
  font-size: var(--innvilo-font-size-body);
  line-height: 1.2;
}

.booking-plan-editor-section__title small {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  font-weight: 400;
}

.booking-plan-context-form {
  display: grid;
  gap: var(--innvilo-space-4) var(--innvilo-space-5);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.booking-plan-context-form.is-three-column {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.booking-plan-context-form > label,
.booking-plan-context-field {
  display: grid;
  gap: var(--innvilo-space-2);
  min-width: 0;
}

.booking-plan-context-form > label > span,
.booking-plan-context-field > label {
  color: var(--innvilo-text-primary);
  font-size: var(--innvilo-font-size-label);
  font-weight: 800;
}

.booking-plan-context-form > label > span > b {
  color: var(--color-error);
}

.booking-plan-context-form > label > span > em {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-micro);
  font-style: normal;
  font-weight: 400;
  margin-left: var(--innvilo-space-1);
}

.booking-plan-context-form .is-wide,
.booking-plan-context-field.is-wide,
.booking-plan-context-error {
  grid-column: 1/-1;
}

.booking-plan-context-form label > small {
  align-items: center;
  color: var(--innvilo-text-secondary);
  display: flex;
  font-size: var(--innvilo-font-size-caption);
  gap: var(--innvilo-space-2);
}

.booking-plan-context-switch {
  align-items: center;
  background: var(--innvilo-surface-main);
  border: 1px solid var(--innvilo-border-soft);
  border-radius: var(--innvilo-radius-sm);
  cursor: pointer;
  display: grid !important;
  gap: var(--innvilo-space-3) !important;
  grid-template-columns: auto minmax(0, 1fr) auto;
  padding: var(--innvilo-space-3) var(--innvilo-space-4);
}

.booking-plan-context-switch-icon {
  align-items: center;
  background: var(--color-info-soft);
  border-radius: var(--innvilo-radius-xs);
  color: var(--color-info);
  display: inline-flex;
  height: 2rem;
  justify-content: center;
  width: 2rem;
}

.booking-plan-context-switch > span:nth-child(2) {
  display: grid;
  gap: var(--innvilo-space-1);
}

.booking-plan-context-switch strong {
  font-size: var(--innvilo-font-size-label);
}

.booking-plan-context-switch small {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-micro);
}

.booking-plan-context-error {
  align-items: flex-start;
  background: var(--color-error-soft);
  border: 1px solid var(--color-error-border);
  border-radius: var(--innvilo-radius-sm);
  color: var(--color-error);
  display: flex;
  gap: var(--innvilo-space-3);
  margin: 0;
  padding: var(--innvilo-space-4);
}

@media (max-width: 42rem) {
  .booking-plan-context-form {
    grid-template-columns: 1fr;
  }
  .booking-plan-context-form.is-three-column {
    grid-template-columns: 1fr;
  }
  .booking-plan-context-summary {
    grid-template-columns: auto minmax(0, 1fr);
  }
  .booking-plan-context-summary-badges {
    align-items: flex-start;
    flex-direction: row;
    flex-wrap: wrap;
    grid-column: 1/-1;
  }
}
@media (prefers-reduced-motion: reduce) {
  .room-plan-operational-item {
    transition: none;
  }
}
/* Belegung optimieren ------------------------------------------------------
   Ein Arbeitsbereich im Popup, drei Phasen: Regeln wählen, berechnen, bestätigen.
   Flächen tragen 1px-Rahmen und Weißraum statt Schatten; Schatten bleiben den echten
   Overlays des Popups vorbehalten. Alle Werte stammen aus Tokens. */
.room-puzzle {
  color: var(--innvilo-text-primary);
  display: grid;
  font-variant-numeric: tabular-nums;
  gap: var(--innvilo-page-section-gap);
  min-width: 0;
}

.room-puzzle h3 {
  color: var(--innvilo-text-primary);
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-heading);
  letter-spacing: var(--innvilo-tracking-title);
  margin: 0;
}

.room-puzzle p {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-body);
  line-height: 1.5;
  margin: 0;
  max-width: 68ch;
}

/* Phase 1..3: Ziffern statt Symbolen, kein Kreis, kein Kasten. */
.room-puzzle-steps {
  border-bottom: 1px solid var(--innvilo-border-default);
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-8);
  list-style: none;
  margin: 0;
  padding: 0 0 var(--innvilo-space-5);
}

.room-puzzle-steps > li {
  align-items: baseline;
  color: var(--innvilo-text-muted);
  display: flex;
  font-size: var(--innvilo-font-size-label);
  gap: var(--innvilo-space-4);
}

.room-puzzle-steps__index::after {
  content: ".";
}

.room-puzzle-steps > li.is-active {
  color: var(--innvilo-color-primary);
}

.room-puzzle-steps > li.is-active .room-puzzle-steps__label,
.room-puzzle-steps > li.is-complete .room-puzzle-steps__label {
  font-family: "Lato-SemiBold", Arial, sans-serif;
}

.room-puzzle-steps > li.is-complete {
  color: var(--innvilo-text-secondary);
}

.room-puzzle-scope {
  margin: 0;
}

.room-puzzle-scope strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  white-space: nowrap;
}

/* Phase 1: Das Profil ist die Hauptentscheidung, die Schalter darunter sind Nebenbedingungen. */
.room-puzzle-configuration {
  display: grid;
  gap: var(--innvilo-space-9);
}

.room-puzzle-profiles,
.room-puzzle-options {
  border: 0;
  display: grid;
  gap: var(--innvilo-space-4);
  margin: 0;
  min-width: 0;
  padding: 0;
}

.room-puzzle-profiles > legend,
.room-puzzle-options > legend {
  color: var(--innvilo-text-primary);
  float: left;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-subheading);
  letter-spacing: var(--innvilo-tracking-title);
  padding: 0 0 var(--innvilo-space-4);
  width: 100%;
}

.room-puzzle-profiles__option,
.room-puzzle-options > label {
  align-items: start;
  background: var(--innvilo-surface-card);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-md);
  cursor: pointer;
  display: grid;
  gap: var(--innvilo-space-5);
  grid-template-columns: auto minmax(0, 1fr);
  min-height: 2.75rem;
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
  transition: background-color var(--innvilo-duration-fast) var(--innvilo-easing-settle), border-color var(--innvilo-duration-fast) var(--innvilo-easing-settle);
}

.room-puzzle-profiles__option:hover,
.room-puzzle-options > label:hover {
  background: var(--innvilo-surface-muted);
}

.room-puzzle-profiles__option:active,
.room-puzzle-options > label:active {
  transform: scale(var(--innvilo-press-scale-subtle));
  transition: transform var(--innvilo-duration-press) var(--innvilo-easing-settle);
}

.room-puzzle-profiles__option:focus-within,
.room-puzzle-options > label:focus-within {
  border-color: var(--innvilo-border-focus);
  box-shadow: 0 0 0 3px var(--color-primary-focus-ring);
}

.room-puzzle-profiles__option.is-selected {
  background: var(--innvilo-color-primary-subtle);
  border-color: var(--innvilo-color-primary);
}

.room-puzzle-profiles__option > input {
  accent-color: var(--innvilo-color-primary);
  block-size: 1rem;
  inline-size: 1rem;
  /* Die ganze Zeile ist das Ziel (min-height 44px); der Knopf richtet sich an der ersten Textzeile aus. */
  margin: var(--innvilo-space-2) 0 0;
}

.room-puzzle-profiles__text,
.room-puzzle-options > label > span {
  display: grid;
  gap: var(--innvilo-space-2);
  min-width: 0;
}

.room-puzzle-profiles strong,
.room-puzzle-options strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-subheading);
}

.room-puzzle-profiles small,
.room-puzzle-options small {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-label);
  line-height: 1.45;
}

.room-puzzle-safety {
  border-left: 2px solid var(--innvilo-border-strong);
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-label);
  padding-left: var(--innvilo-space-6);
}

/* Phase 2 */
.room-puzzle-calculating {
  display: grid;
  gap: var(--innvilo-space-6);
  justify-items: start;
}

/* Phase 3 */
.room-puzzle-note,
.room-puzzle-conflicts,
.room-puzzle-notices {
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-md);
  display: grid;
  gap: var(--innvilo-space-4);
  padding: var(--innvilo-space-7);
}

.room-puzzle-note.is-positive {
  background: var(--color-success-surface);
  border-color: var(--color-success-border);
}

.room-puzzle-conflicts {
  background: var(--color-error-surface);
  border-color: var(--color-error-border);
}

.room-puzzle-conflicts h3 {
  color: var(--color-error);
}

.room-puzzle-notices {
  background: var(--innvilo-surface-muted);
}

.room-puzzle-conflicts > ul,
.room-puzzle-notices > ul {
  display: grid;
  gap: var(--innvilo-space-4);
  list-style: none;
  margin: var(--innvilo-space-2) 0 0;
  padding: 0;
}

.room-puzzle-conflicts > ul > li,
.room-puzzle-notices > ul > li {
  background: var(--innvilo-surface-card);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-xs);
  display: grid;
  gap: var(--innvilo-space-2);
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
}

.room-puzzle-conflicts strong,
.room-puzzle-notices strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
}

.room-puzzle-conflicts span,
.room-puzzle-notices span {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-label);
  line-height: 1.45;
}

.room-puzzle-conflicts > footer {
  display: flex;
  gap: var(--innvilo-space-5);
  justify-content: flex-end;
}

.room-puzzle-desktop-host,
.room-puzzle-mobile-host {
  display: grid;
  gap: var(--innvilo-space-8);
  min-width: 0;
}

.room-puzzle-outcome {
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-md);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  min-width: 0;
}

.room-puzzle-outcome > article {
  border-left: 1px solid var(--innvilo-border-default);
  display: grid;
  gap: var(--innvilo-space-2);
  min-width: 0;
  padding: var(--innvilo-space-6) var(--innvilo-space-7);
}

.room-puzzle-outcome > article:first-child {
  border-left: 0;
}

.room-puzzle-outcome > article > span {
  color: var(--innvilo-text-muted);
  font-size: var(--innvilo-font-size-micro);
  letter-spacing: var(--innvilo-tracking-overline);
  text-transform: uppercase;
}

.room-puzzle-outcome strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-heading);
  letter-spacing: var(--innvilo-tracking-title);
}

.room-puzzle-outcome > article.is-result strong {
  color: var(--innvilo-color-primary);
}

.room-puzzle-outcome small {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-label);
  line-height: 1.45;
}

/* Ein Stapel statt zweier Spalten: Der Popup-Rumpf ist rund 1090px breit, das Grid braucht davon
   über 1000px. Nebeneinander würde jede Zimmer- und Begründungsspalte abgeschnitten. */
.room-puzzle-result-layout {
  display: grid;
  gap: var(--innvilo-space-8);
  grid-template-columns: minmax(0, 1fr);
  min-width: 0;
}

.room-puzzle-inspector {
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-md);
  display: grid;
  gap: var(--innvilo-space-6);
  padding: var(--innvilo-space-7);
}

.room-puzzle-inspector__empty {
  color: var(--innvilo-text-muted);
  font-size: var(--innvilo-font-size-label);
  margin: 0;
}

.room-puzzle-inspector > header {
  display: grid;
  gap: var(--innvilo-space-2);
}

.room-puzzle-inspector > header > span {
  color: var(--innvilo-text-muted);
  font-size: var(--innvilo-font-size-micro);
  letter-spacing: var(--innvilo-tracking-overline);
  text-transform: uppercase;
}

.room-puzzle-inspector dl,
.room-puzzle-mobile-card__facts {
  display: grid;
  gap: var(--innvilo-space-4) var(--innvilo-space-9);
  margin: 0;
}

.room-puzzle-inspector dl {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.room-puzzle-inspector dl > div,
.room-puzzle-mobile-card__facts > div {
  align-items: baseline;
  display: grid;
  gap: var(--innvilo-space-5);
  grid-template-columns: 8.5rem minmax(0, 1fr);
}

.room-puzzle-inspector dt,
.room-puzzle-mobile-card__facts dt {
  color: var(--innvilo-text-muted);
  font-size: var(--innvilo-font-size-label);
}

.room-puzzle-inspector dd,
.room-puzzle-mobile-card__facts dd {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  margin: 0;
  min-width: 0;
  overflow-wrap: anywhere;
}

.room-puzzle-inspector__reason {
  border-top: 1px solid var(--innvilo-border-default);
  font-size: var(--innvilo-font-size-label);
  padding-top: var(--innvilo-space-6);
}

/* Kompakt-Host: je Vorschlag eine Karte mit denselben Angaben wie im Grid. */
.room-puzzle-mobile-suggestions {
  display: grid;
  gap: var(--innvilo-space-6);
  list-style: none;
  margin: 0;
  padding: 0;
}

.room-puzzle-mobile-card {
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-md);
  display: grid;
  gap: var(--innvilo-space-6);
  justify-items: start;
  padding: var(--innvilo-space-7);
}

.room-puzzle-mobile-card__head {
  align-items: center;
  display: grid;
  gap: var(--innvilo-space-5);
  grid-template-columns: auto minmax(0, 1fr);
  width: 100%;
}

.room-puzzle-mobile-card__head > div {
  display: grid;
  gap: var(--innvilo-space-1);
  min-width: 0;
}

.room-puzzle-mobile-card__head span {
  color: var(--innvilo-text-muted);
  font-size: var(--innvilo-font-size-label);
}

.room-puzzle-mobile-card__head strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-subheading);
}

.room-puzzle-mobile-card__facts {
  width: 100%;
}

.room-puzzle-mobile-card > p {
  font-size: var(--innvilo-font-size-label);
}

/* Grid-Zellen */
.room-puzzle-booking-cell {
  display: grid;
  gap: var(--innvilo-space-1);
  min-width: 0;
}

.room-puzzle-booking-cell strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
}

.room-puzzle-booking-cell span,
.room-puzzle-stay,
.room-puzzle-guests,
.room-puzzle-reason {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-grid);
}

.room-puzzle-room-label {
  color: var(--innvilo-text-primary);
  display: grid;
  font-size: var(--innvilo-font-size-grid);
  gap: var(--innvilo-space-1);
  min-width: 0;
}

.room-puzzle-room-label small {
  color: var(--innvilo-text-muted);
  font-size: var(--innvilo-font-size-micro);
}

.room-puzzle-room-label.is-previous,
.room-puzzle-room-label.is-previous strong {
  color: var(--innvilo-text-muted);
  font-family: "Lato-Regular", Arial, sans-serif;
}

.room-puzzle-room-label.is-proposed strong {
  font-family: "Lato-SemiBold", Arial, sans-serif;
}

.dx-room-puzzle-grid.dxbl-grid {
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-md);
  overflow: hidden;
}

@media (max-width: 991.98px) {
  .room-puzzle {
    gap: var(--innvilo-space-8);
  }
  .room-puzzle-inspector dl {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (max-width: 820px) {
  .room-puzzle-outcome {
    grid-template-columns: 1fr;
  }
  .room-puzzle-outcome > article {
    border-left: 0;
    border-top: 1px solid var(--innvilo-border-default);
  }
  .room-puzzle-outcome > article:first-child {
    border-top: 0;
  }
}
@media (max-width: 575.98px) {
  .room-puzzle-steps {
    gap: var(--innvilo-space-5);
  }
  .room-puzzle-configuration {
    gap: var(--innvilo-space-8);
  }
  /* Berührungsfläche: Profil- und Schalterzeilen bleiben auf dem Handy mindestens 44px hoch. */
  .room-puzzle-profiles__option,
  .room-puzzle-options > label {
    min-height: 2.75rem;
    padding: var(--innvilo-space-6);
  }
  .room-puzzle-inspector dl > div,
  .room-puzzle-mobile-card__facts > div {
    gap: var(--innvilo-space-1);
    grid-template-columns: 1fr;
  }
  .room-puzzle-calculating .dx-app-button,
  .room-puzzle-mobile-card > .dx-app-button {
    min-height: 2.75rem;
    width: 100%;
  }
}
@media (prefers-reduced-motion: reduce) {
  .room-puzzle-profiles__option,
  .room-puzzle-options > label {
    transition: none;
  }
  .room-puzzle-profiles__option:active,
  .room-puzzle-options > label:active {
    transform: none;
  }
}
@media (prefers-contrast: more) {
  .room-puzzle-profiles__option,
  .room-puzzle-options > label,
  .room-puzzle-outcome,
  .room-puzzle-inspector,
  .room-puzzle-mobile-card,
  .room-puzzle-note,
  .room-puzzle-conflicts,
  .room-puzzle-notices {
    border-color: var(--innvilo-border-strong);
  }
}
/* Empfehlungszeile in der Status-Zelle: eine Zeile, gekürzt, voller Text im title. */
.room-plan-grid-recommendation {
  color: var(--innvilo-text-muted);
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Die Grid-Zelle drückt Flex-Kinder zusammen; der beschriftete Knopf darf nicht schrumpfen und seine
   Beschriftung nicht umbrechen. */
.room-plan-assign-cell .room-plan-assign-action.dxbl-btn {
  flex: 0 0 auto;
  white-space: nowrap;
}

.room-plan-unassigned-grid .room-plan-assign-cell {
  overflow: visible;
}

/* Buchhaltung & Abschlüsse — dense PMS workbench built from public CssClass hooks. */
.accounting-workspace {
  display: grid;
  gap: var(--innvilo-space-7);
  min-width: 0;
  color: var(--innvilo-text-primary);
}

.accounting-section-kicker {
  color: var(--innvilo-text-muted);
  font-size: var(--innvilo-font-size-caption);
  font-weight: 800;
  letter-spacing: 0.075em;
  text-transform: uppercase;
}

.accounting-metric__icon,
.accounting-register-summary__icon {
  display: grid;
  place-items: center;
  width: 2.5rem;
  height: 2.5rem;
  color: var(--innvilo-color-primary);
  border-radius: var(--innvilo-radius-md);
  background: var(--innvilo-color-primary-soft);
}

.accounting-overview {
  display: grid;
  grid-template-columns: minmax(16rem, 1.6fr) repeat(3, minmax(11rem, 1fr));
  overflow: hidden;
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-card);
  background: var(--innvilo-surface-main);
  box-shadow: var(--innvilo-shadow-card);
}

.accounting-metric {
  display: flex;
  align-items: center;
  gap: var(--innvilo-space-5);
  min-width: 0;
  min-height: 7.25rem;
  padding: var(--innvilo-space-6) var(--innvilo-space-7);
  border-left: 1px solid var(--innvilo-border-soft);
}

.accounting-metric:first-child {
  border-left: 0;
}

.accounting-metric--primary {
  background: linear-gradient(135deg, var(--innvilo-color-primary-soft), var(--innvilo-surface-main));
}

.accounting-metric--primary .accounting-metric__icon {
  color: var(--innvilo-text-inverse);
  background: var(--innvilo-color-primary);
}

.accounting-metric > div:last-child {
  display: grid;
  gap: var(--innvilo-space-1);
  min-width: 0;
}

.accounting-metric span {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-label);
  font-weight: 700;
}

.accounting-metric strong {
  overflow: hidden;
  font-size: clamp(1.15rem, 1.65vw, 1.65rem);
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.accounting-metric small {
  color: var(--innvilo-text-muted);
  font-size: var(--innvilo-font-size-caption);
}

.accounting-calendar-shell,
.accounting-panel,
.accounting-close-steps {
  min-width: 0;
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-card);
  background: var(--innvilo-surface-main);
  box-shadow: var(--innvilo-shadow-card);
}

.accounting-calendar-shell {
  padding: var(--innvilo-space-7);
}

.accounting-calendar-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--innvilo-space-7);
  margin-bottom: var(--innvilo-space-6);
}

.accounting-calendar-header h2 {
  margin: var(--innvilo-space-2) 0;
  font-size: var(--innvilo-font-size-title);
  text-transform: capitalize;
}

.accounting-calendar-header p,
.accounting-panel header p {
  margin: 0;
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-body);
}

.accounting-month-navigation {
  display: grid;
  grid-template-columns: auto minmax(9rem, auto) auto;
  align-items: center;
  overflow: hidden;
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-md);
  background: var(--innvilo-surface-soft);
}

.accounting-month-navigation > span {
  padding: 0 var(--innvilo-space-5);
  font-size: var(--innvilo-font-size-body);
  font-weight: 800;
  text-align: center;
  text-transform: capitalize;
}

.accounting-month-navigation .accounting-month-navigation__button.dxbl-btn {
  min-width: 2.75rem;
  min-height: 2.75rem;
  padding-inline: var(--innvilo-space-4);
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.accounting-month-navigation .accounting-month-navigation__button.dxbl-btn:hover {
  background: var(--innvilo-color-primary-soft);
}

.accounting-month-navigation__previous .dxbl-btn-caption,
.accounting-month-navigation__next .dxbl-btn-caption {
  display: none;
}

.accounting-filter-center.pms-generic-filter.is-toolbar {
  margin-bottom: var(--innvilo-space-5);
  border-color: var(--innvilo-border-soft);
  background: var(--innvilo-surface-soft);
  box-shadow: none;
}

.accounting-calendar-summary {
  display: flex;
  align-items: center;
  gap: var(--innvilo-space-7);
  min-width: 0;
  margin-bottom: var(--innvilo-space-5);
  padding: var(--innvilo-space-4) var(--innvilo-space-5);
  border-block: 1px solid var(--innvilo-border-soft);
}

.accounting-calendar-summary > div:not(.accounting-status-legend) {
  display: grid;
  grid-template-columns: auto auto;
  align-items: center;
  column-gap: var(--innvilo-space-3);
}

.accounting-calendar-summary > div:not(.accounting-status-legend) i {
  grid-row: 1/3;
  color: var(--innvilo-color-primary);
}

.accounting-calendar-summary strong {
  font-size: var(--innvilo-font-size-body);
}

.accounting-calendar-summary span {
  color: var(--innvilo-text-muted);
  font-size: var(--innvilo-font-size-caption);
}

.accounting-status-legend {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--innvilo-space-5);
  flex: 1;
  min-width: 0;
}

.accounting-status-legend span {
  display: inline-flex;
  align-items: center;
  gap: var(--innvilo-space-2);
  white-space: nowrap;
}

.accounting-status-legend i {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: var(--color-accounting-open);
}

.accounting-status-legend .is-review {
  background: var(--color-accounting-review);
}

.accounting-status-legend .is-ready {
  background: var(--color-accounting-ready);
}

.accounting-status-legend .is-critical {
  background: var(--color-accounting-critical);
}

.accounting-calendar {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: var(--innvilo-space-3);
}

.accounting-calendar__weekday {
  padding: var(--innvilo-space-3) var(--innvilo-space-4);
  color: var(--innvilo-text-muted);
  font-size: var(--innvilo-font-size-caption);
  font-weight: 800;
  letter-spacing: 0.06em;
  text-align: center;
  text-transform: uppercase;
}

.accounting-day {
  --accounting-day-accent: var(--color-accounting-open);
  --accounting-day-soft: var(--color-accounting-open-soft);
  position: relative;
  display: grid;
  grid-template-rows: auto auto auto 1fr auto;
  gap: var(--innvilo-space-4);
  min-width: 0;
  min-height: 17rem;
  overflow: hidden;
  padding: var(--innvilo-space-5);
  border: 1px solid var(--innvilo-border-default);
  border-top: 3px solid var(--accounting-day-accent);
  border-radius: var(--innvilo-radius-md);
  background: var(--innvilo-surface-main);
  transition: border-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), box-shadow var(--innvilo-duration-fast) var(--innvilo-easing-standard), transform var(--innvilo-duration-fast) var(--innvilo-easing-standard);
}

.accounting-day:hover {
  border-color: color-mix(in srgb, var(--accounting-day-accent) 48%, var(--innvilo-border-default));
  box-shadow: var(--innvilo-shadow-dropdown);
  transform: translateY(-2px);
}

.accounting-day--criticalerror {
  --accounting-day-accent: var(--color-accounting-critical);
  --accounting-day-soft: var(--color-accounting-critical-soft);
}

.accounting-day--reviewrequired {
  --accounting-day-accent: var(--color-accounting-review);
  --accounting-day-soft: var(--color-accounting-review-soft);
}

.accounting-day--readytoclose,
.accounting-day--closed,
.accounting-day--locked {
  --accounting-day-accent: var(--color-accounting-ready);
  --accounting-day-soft: var(--color-accounting-ready-soft);
}

.accounting-day--reopened {
  --accounting-day-accent: var(--color-accounting-reopened);
  --accounting-day-soft: var(--color-accounting-reopened-soft);
}

.accounting-day--future {
  --accounting-day-accent: var(--color-accounting-future);
  --accounting-day-soft: var(--color-accounting-future-soft);
  color: var(--innvilo-text-disabled);
  background: var(--color-accounting-future-soft);
  box-shadow: none;
}

.accounting-day--future:hover {
  transform: none;
  box-shadow: none;
}

.accounting-day--today {
  outline: 2px solid var(--innvilo-color-primary);
  outline-offset: 2px;
}

.accounting-day__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--innvilo-space-3);
}

.accounting-day__date {
  display: grid;
  color: var(--innvilo-text-muted);
  font-size: var(--innvilo-font-size-caption);
  font-weight: 800;
  text-transform: uppercase;
}

.accounting-day__date strong {
  color: var(--innvilo-text-primary);
  font-size: 1.65rem;
  line-height: 1.05;
}

.accounting-status {
  display: inline-flex;
  align-items: center;
  gap: var(--innvilo-space-2);
  max-width: 8.5rem;
  padding: var(--innvilo-space-2) var(--innvilo-space-3);
  color: var(--accounting-day-accent);
  border-radius: var(--innvilo-radius-full);
  background: var(--accounting-day-soft);
  font-size: var(--innvilo-font-size-micro);
  font-weight: 800;
  line-height: 1.25;
  text-align: right;
}

.accounting-status--inline {
  --accounting-day-accent: var(--innvilo-color-primary);
  --accounting-day-soft: var(--innvilo-color-primary-soft);
  vertical-align: middle;
}

.accounting-day__revenue {
  display: grid;
  gap: var(--innvilo-space-1);
  padding-bottom: var(--innvilo-space-4);
  border-bottom: 1px solid var(--innvilo-border-soft);
}

.accounting-day__revenue span {
  color: var(--innvilo-text-muted);
  font-size: var(--innvilo-font-size-caption);
}

.accounting-day__revenue strong {
  font-size: var(--innvilo-font-size-heading);
}

.accounting-day__facts {
  display: grid;
  gap: var(--innvilo-space-2);
  margin: 0;
}

.accounting-day__facts > div {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--innvilo-space-2);
  font-size: var(--innvilo-font-size-caption);
}

.accounting-day__facts dt {
  display: inline-flex;
  align-items: center;
  gap: var(--innvilo-space-2);
  color: var(--innvilo-text-muted);
}

.accounting-day__facts dt i {
  width: 0.875rem;
  color: var(--innvilo-text-muted);
  text-align: center;
}

.accounting-day__facts dd {
  margin: 0;
  font-weight: 700;
  text-align: right;
}

.accounting-day__facts .is-critical {
  color: var(--color-accounting-critical);
}

.accounting-day__facts .is-warning {
  color: var(--color-accounting-review);
}

.accounting-day__footer {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: var(--innvilo-space-3);
  padding-top: var(--innvilo-space-3);
  border-top: 1px solid var(--innvilo-border-soft);
}

.accounting-day__footer > span {
  display: inline-flex;
  gap: var(--innvilo-space-2);
  color: var(--innvilo-text-muted);
  font-size: var(--innvilo-font-size-caption);
}

.accounting-day__footer > small {
  color: var(--innvilo-text-muted);
  font-size: var(--innvilo-font-size-micro);
}

.accounting-day__footer .accounting-day__action.dxbl-btn {
  grid-column: 1/-1;
  width: 100%;
  min-height: 2.35rem;
  color: var(--accounting-day-accent);
  border-color: color-mix(in srgb, var(--accounting-day-accent) 30%, transparent);
  background: var(--accounting-day-soft);
  box-shadow: none;
  font-size: var(--innvilo-font-size-label);
  font-weight: 800;
}

.accounting-day-command {
  display: grid;
  grid-template-columns: minmax(17rem, 1.35fr) minmax(22rem, 1fr) auto;
  align-items: center;
  gap: var(--innvilo-space-8);
  min-width: 0;
  padding: var(--innvilo-space-7);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-card);
  background: var(--innvilo-surface-main);
  box-shadow: var(--innvilo-shadow-card);
}

.accounting-day-command__main,
.accounting-month-command__status {
  display: flex;
  align-items: center;
  gap: var(--innvilo-space-5);
  min-width: 0;
}

.accounting-day-command__date {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 4.5rem;
  height: 4.5rem;
  color: var(--innvilo-text-inverse);
  border-radius: var(--innvilo-radius-card);
  background: linear-gradient(145deg, var(--color-booking-hero-bg), var(--color-booking-hero-bg-soft));
}

.accounting-day-command__date span {
  font-size: var(--innvilo-font-size-caption);
  font-weight: 800;
  text-transform: uppercase;
}

.accounting-day-command__date strong {
  font-size: 1.75rem;
  line-height: 1;
}

.accounting-day-command h2,
.accounting-month-command h2 {
  margin: var(--innvilo-space-2) 0;
  font-size: var(--innvilo-font-size-title);
}

.accounting-day-command p,
.accounting-month-command p {
  margin: 0;
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-body);
}

.accounting-day-command__facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--innvilo-space-5);
  margin: 0;
}

.accounting-day-command__facts div {
  display: grid;
  gap: var(--innvilo-space-2);
}

.accounting-day-command__facts dt {
  color: var(--innvilo-text-muted);
  font-size: var(--innvilo-font-size-caption);
}

.accounting-day-command__facts dd {
  display: inline-flex;
  align-items: center;
  gap: var(--innvilo-space-2);
  margin: 0;
  font-size: var(--innvilo-font-size-body);
  font-weight: 800;
}

.accounting-day-command__facts .is-success {
  color: var(--color-success);
}

.accounting-day-command__facts .is-warning {
  color: var(--color-accounting-review);
}

.accounting-day-command__facts .is-danger {
  color: var(--color-accounting-critical);
}

.accounting-day-command__actions {
  display: grid;
  gap: var(--innvilo-space-3);
  min-width: 13rem;
}

.accounting-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--innvilo-space-6);
}

.accounting-panel {
  padding: var(--innvilo-space-7);
}

.accounting-panel--wide {
  grid-column: 1/-1;
}

.accounting-panel > header {
  display: flex;
  justify-content: space-between;
  gap: var(--innvilo-space-5);
  margin-bottom: var(--innvilo-space-6);
}

.accounting-panel h2,
.accounting-close-steps > header h2 {
  margin: var(--innvilo-space-2) 0;
  font-size: var(--innvilo-font-size-heading);
}

.accounting-panel__count {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  min-width: 2.75rem;
  height: 2.25rem;
  padding: 0 var(--innvilo-space-3);
  color: var(--innvilo-color-primary);
  border-radius: var(--innvilo-radius-full);
  background: var(--innvilo-color-primary-soft);
  font-size: var(--innvilo-font-size-label);
}

.accounting-validation-list,
.accounting-checklist,
.accounting-reason-list {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.accounting-validation-list li,
.accounting-checklist li,
.accounting-reason-list li {
  display: flex;
  align-items: flex-start;
  gap: var(--innvilo-space-4);
  padding: var(--innvilo-space-4) 0;
  border-top: 1px solid var(--innvilo-border-soft);
}

.accounting-validation-list li:first-child,
.accounting-checklist li:first-child,
.accounting-reason-list li:first-child {
  padding-top: 0;
  border-top: 0;
}

.accounting-validation-list li > div,
.accounting-checklist li > div {
  display: grid;
  gap: var(--innvilo-space-1);
  flex: 1;
  min-width: 0;
}

.accounting-validation-list span,
.accounting-checklist span {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
}

.accounting-validation-list b {
  font-size: var(--innvilo-font-size-caption);
  white-space: nowrap;
}

.accounting-validation-list .is-success {
  color: var(--color-success);
}

.accounting-validation-list .is-warning {
  color: var(--color-accounting-review);
}

.accounting-validation-list .is-danger {
  color: var(--color-accounting-critical);
}

.accounting-checklist em {
  margin-left: var(--innvilo-space-2);
  color: var(--color-accounting-critical);
  font-size: var(--innvilo-font-size-micro);
  font-style: normal;
  text-transform: uppercase;
}

.accounting-checklist-panel__header {
  align-items: flex-start;
}

.accounting-checklist-panel__commands {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: var(--innvilo-space-3);
}

.accounting-checklist-panel__run.dxbl-btn {
  min-height: 2.75rem;
}

.accounting-checklist--batch li {
  align-items: center;
  min-height: 4.5rem;
}

.accounting-checklist--batch li.is-processing {
  margin-inline: calc(var(--innvilo-space-3) * -1);
  padding-inline: var(--innvilo-space-3);
  border-radius: var(--innvilo-radius-md);
  background: var(--innvilo-surface-soft);
}

.accounting-checklist__state {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 2rem;
  color: var(--innvilo-text-muted);
}

.accounting-checklist__state > i {
  font-size: var(--innvilo-font-size-heading);
}

.accounting-checklist li.is-complete .accounting-checklist__state {
  color: var(--color-success);
}

.accounting-checklist li.is-complete .accounting-checklist__state > i {
  animation: accounting-checklist-confirm var(--innvilo-duration-fast) var(--innvilo-easing-standard) both;
}

.accounting-checklist li.is-processing .accounting-checklist__state {
  color: var(--innvilo-color-primary);
}

.accounting-checklist__content {
  display: grid;
  flex: 1;
  min-width: 0;
  gap: var(--innvilo-space-2);
}

.accounting-checklist__progress.dxbl-progress-bar {
  width: min(28rem, 100%);
}

.accounting-checklist__progress .dxbl-progress-bar-label {
  font-size: var(--innvilo-font-size-caption);
}

.accounting-checklist-blockers {
  display: grid;
  gap: var(--innvilo-space-6);
}

.accounting-checklist-blockers__summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: var(--innvilo-space-7);
  padding: var(--innvilo-space-6);
  border: 1px solid var(--color-error-border);
  border-radius: var(--innvilo-radius-card);
  background: var(--color-error-surface);
}

.accounting-checklist-blockers__summary h3 {
  margin: var(--innvilo-space-2) 0;
  font-size: var(--innvilo-font-size-title);
}

.accounting-checklist-blockers__summary p {
  max-width: 58rem;
  margin: 0;
  color: var(--innvilo-text-secondary);
  line-height: 1.55;
}

.accounting-checklist-blockers__summary dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(6rem, 1fr));
  gap: var(--innvilo-space-3);
  margin: 0;
}

.accounting-checklist-blockers__summary dl > div {
  min-width: 6rem;
  padding: var(--innvilo-space-4);
  border-radius: var(--innvilo-radius-md);
  background: var(--innvilo-surface-main);
  text-align: center;
}

.accounting-checklist-blockers__summary dt {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
}

.accounting-checklist-blockers__summary dd {
  margin: var(--innvilo-space-1) 0 0;
  color: var(--color-accounting-critical);
  font-size: var(--innvilo-font-size-heading);
  font-weight: 900;
}

.accounting-checklist-blockers__accordion.dxbl-accordion {
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-card);
  background: var(--innvilo-surface-main);
  overflow: hidden;
}

.accounting-checklist-blocker {
  display: grid;
  gap: var(--innvilo-space-6);
  padding: var(--innvilo-space-5);
}

.accounting-checklist-blocker h4 {
  margin: 0 0 var(--innvilo-space-2);
  font-size: var(--innvilo-font-size-body);
}

.accounting-checklist-blocker p {
  margin: 0;
  color: var(--innvilo-text-secondary);
  line-height: 1.55;
}

.accounting-checklist-blocker__status {
  display: inline-flex;
  align-items: center;
  justify-self: start;
  gap: var(--innvilo-space-2);
  padding: var(--innvilo-space-2) var(--innvilo-space-3);
  border-radius: var(--innvilo-radius-full);
  color: var(--color-accounting-critical);
  background: var(--color-error-surface);
  font-size: var(--innvilo-font-size-caption);
  font-weight: 800;
}

.accounting-checklist-blocker__facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--innvilo-space-3);
  margin: 0;
}

.accounting-checklist-blocker__facts > div {
  min-width: 0;
  padding: var(--innvilo-space-4);
  border-radius: var(--innvilo-radius-md);
  background: var(--innvilo-surface-soft);
}

.accounting-checklist-blocker__facts dt {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
}

.accounting-checklist-blocker__facts dd {
  margin: var(--innvilo-space-1) 0 0;
  overflow-wrap: anywhere;
  font-weight: 800;
}

.accounting-checklist-blocker__columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--innvilo-space-6);
}

.accounting-checklist-blocker ul,
.accounting-checklist-blocker ol {
  display: grid;
  gap: var(--innvilo-space-2);
  margin: 0;
  padding-left: var(--innvilo-space-6);
  color: var(--innvilo-text-secondary);
}

.accounting-checklist-blocker footer {
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-3);
  padding-top: var(--innvilo-space-4);
  border-top: 1px solid var(--innvilo-border-soft);
}

@keyframes accounting-checklist-confirm {
  from {
    opacity: 0;
    transform: scale(0.82);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
.accounting-empty-state {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--innvilo-space-5);
  min-height: 10rem;
  padding: var(--innvilo-space-7);
  color: var(--innvilo-text-secondary);
  border: 1px dashed var(--innvilo-border-strong);
  border-radius: var(--innvilo-radius-md);
  background: var(--innvilo-surface-soft);
  text-align: left;
}

.accounting-empty-state > span {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 3rem;
  height: 3rem;
  color: var(--innvilo-color-primary);
  border-radius: var(--innvilo-radius-full);
  background: var(--innvilo-color-primary-soft);
}

.accounting-empty-state > div {
  display: grid;
  gap: var(--innvilo-space-2);
}

.accounting-empty-state p {
  max-width: 30rem;
  margin: 0;
  color: var(--innvilo-text-muted);
  font-size: var(--innvilo-font-size-body);
}

.accounting-upload-zone {
  display: grid;
  grid-template-columns: auto minmax(12rem, 1fr) minmax(20rem, 1fr);
  align-items: center;
  gap: var(--innvilo-space-5);
  margin-bottom: var(--innvilo-space-6);
  padding: var(--innvilo-space-5);
  border: 1px dashed var(--innvilo-border-strong);
  border-radius: var(--innvilo-radius-md);
  background: var(--innvilo-surface-soft);
}

.accounting-upload-zone > i {
  color: var(--innvilo-color-primary);
  font-size: 1.4rem;
}

.accounting-upload-zone > div {
  display: grid;
  gap: var(--innvilo-space-1);
}

.accounting-upload-zone span {
  color: var(--innvilo-text-muted);
  font-size: var(--innvilo-font-size-caption);
}

.accounting-upload {
  min-width: 0;
}

.accounting-document-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-3);
  margin-bottom: var(--innvilo-space-5);
}

.accounting-month-command {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--innvilo-space-7);
  padding: var(--innvilo-space-7);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-card);
  background: linear-gradient(135deg, var(--innvilo-color-primary-soft), var(--innvilo-surface-main) 48%);
  box-shadow: var(--innvilo-shadow-card);
}

.accounting-month-command__icon {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 4rem;
  height: 4rem;
  color: var(--innvilo-text-inverse);
  border-radius: var(--innvilo-radius-card);
  background: var(--innvilo-color-primary);
  font-size: 1.25rem;
}

.accounting-month-command__actions {
  display: flex;
  align-items: center;
  gap: var(--innvilo-space-3);
}

.accounting-month-layout {
  display: grid;
  grid-template-columns: minmax(18rem, 0.8fr) minmax(28rem, 1.2fr);
  gap: var(--innvilo-space-6);
  align-items: start;
}

.accounting-close-steps {
  padding: var(--innvilo-space-7);
}

.accounting-close-steps > header {
  margin-bottom: var(--innvilo-space-5);
}

.accounting-close-steps article {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: var(--innvilo-space-4);
  padding: var(--innvilo-space-4) 0;
  border-top: 1px solid var(--innvilo-border-soft);
}

.accounting-close-steps article > span {
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  color: var(--innvilo-color-primary);
  border-radius: var(--innvilo-radius-full);
  background: var(--innvilo-color-primary-soft);
  font-size: var(--innvilo-font-size-caption);
  font-weight: 900;
}

.accounting-close-steps article > i {
  color: var(--innvilo-text-muted);
  font-size: var(--innvilo-font-size-caption);
}

.accounting-close-steps h3 {
  margin: 0;
  font-size: var(--innvilo-font-size-body);
}

.accounting-close-steps p {
  margin: var(--innvilo-space-1) 0 0;
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
}

.accounting-reason-list i {
  margin-top: 0.15rem;
  color: var(--innvilo-color-primary);
}

.accounting-adapter {
  display: flex;
  align-items: center;
  gap: var(--innvilo-space-5);
  padding: var(--innvilo-space-5);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-md);
  background: var(--innvilo-surface-soft);
}

.accounting-adapter + .accounting-adapter {
  margin-top: var(--innvilo-space-4);
}

.accounting-adapter > i {
  color: var(--innvilo-color-primary);
  font-size: 1.35rem;
}

.accounting-adapter > div {
  display: grid;
  flex: 1;
  gap: var(--innvilo-space-1);
}

.accounting-adapter span {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-body);
}

.accounting-adapter--disabled {
  opacity: 0.68;
}

.accounting-register-summary {
  display: flex;
  align-items: center;
  gap: var(--innvilo-space-5);
  padding: var(--innvilo-space-6);
  border-radius: var(--innvilo-radius-md);
  background: var(--innvilo-surface-soft);
}

.accounting-register-summary > div {
  display: grid;
  gap: var(--innvilo-space-1);
}

.accounting-register-summary strong {
  color: var(--innvilo-color-primary);
  font-size: var(--innvilo-font-size-display);
}

.accounting-register-summary span {
  color: var(--innvilo-text-secondary);
}

.accounting-registry-action {
  display: flex;
  justify-content: center;
  margin-top: var(--innvilo-space-5);
}

.accounting-empty {
  display: flex;
  align-items: center;
  gap: var(--innvilo-space-5);
  padding: var(--innvilo-space-7);
  border: 1px solid var(--color-error-border);
  border-radius: var(--innvilo-radius-card);
  background: var(--color-error-surface);
}

.accounting-empty > div {
  flex: 1;
}

.accounting-empty h2 {
  margin: 0 0 var(--innvilo-space-2);
  font-size: var(--innvilo-font-size-heading);
}

.accounting-empty p {
  margin: 0;
  color: var(--innvilo-text-secondary);
}

.accounting-empty__icon {
  display: grid;
  place-items: center;
  width: 3rem;
  height: 3rem;
  color: var(--color-error);
  border-radius: var(--innvilo-radius-full);
  background: var(--innvilo-surface-main);
}

@keyframes accounting-shimmer {
  from {
    background-position: 100% 0;
  }
  to {
    background-position: -100% 0;
  }
}
.accounting-close-popup,
.accounting-reopen-popup {
  display: grid;
  gap: var(--innvilo-space-6);
}

.accounting-close-popup dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--innvilo-space-3);
  margin: 0;
}

.accounting-close-popup dl div {
  display: grid;
  gap: var(--innvilo-space-1);
  padding: var(--innvilo-space-4);
  border: 1px solid var(--innvilo-border-soft);
  border-radius: var(--innvilo-radius-md);
  background: var(--innvilo-surface-soft);
}

.accounting-close-popup dt {
  color: var(--innvilo-text-muted);
  font-size: var(--innvilo-font-size-caption);
}

.accounting-close-popup dd {
  margin: 0;
  font-weight: 800;
}

.accounting-close-popup > p,
.accounting-reopen-popup > p {
  margin: 0;
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-body);
}

.accounting-popup-notice {
  display: flex;
  align-items: center;
  gap: var(--innvilo-space-4);
  padding: var(--innvilo-space-4);
  color: var(--innvilo-color-primary);
  border: 1px solid var(--innvilo-dashboard-emphasis-border, var(--color-success-border));
  border-radius: var(--innvilo-radius-md);
  background: var(--innvilo-color-primary-soft);
}

.accounting-popup-notice > div {
  display: grid;
  gap: var(--innvilo-space-1);
}

.accounting-popup-notice span {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
}

.accounting-popup-notice--warning {
  color: var(--color-accounting-review);
  border-color: var(--color-warning);
  background: var(--color-accounting-review-soft);
}

.accounting-resolution {
  display: grid;
  gap: var(--innvilo-space-4);
  margin-top: var(--innvilo-space-6);
  padding-top: var(--innvilo-space-5);
  border-top: 1px solid var(--innvilo-border-soft);
}

.accounting-resolution > header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: var(--innvilo-space-4);
}

.accounting-resolution h3 {
  margin: var(--innvilo-space-1) 0 0;
  font-size: var(--innvilo-font-size-heading);
}

.accounting-resolution > header > span {
  color: var(--color-accounting-critical);
  font-size: var(--innvilo-font-size-caption);
  font-weight: 800;
}

.accounting-resolution__content {
  display: grid;
  gap: var(--innvilo-space-5);
  padding: var(--innvilo-space-4);
}

.accounting-resolution__content h4 {
  margin: 0 0 var(--innvilo-space-2);
  font-size: var(--innvilo-font-size-body);
}

.accounting-resolution__content p {
  margin: 0;
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-body);
}

.accounting-resolution__content dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--innvilo-space-2);
  margin: 0;
}

.accounting-resolution__content dl div {
  display: grid;
  gap: var(--innvilo-space-1);
  padding: var(--innvilo-space-3);
  border-radius: var(--innvilo-radius-md);
  background: var(--innvilo-surface-soft);
}

.accounting-resolution__content dt {
  color: var(--innvilo-text-muted);
  font-size: var(--innvilo-font-size-caption);
}

.accounting-resolution__content dd {
  margin: 0;
  font-size: var(--innvilo-font-size-body);
  font-weight: 800;
}

.accounting-resolution__columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--innvilo-space-5);
}

.accounting-resolution__columns ul,
.accounting-resolution__columns ol {
  display: grid;
  gap: var(--innvilo-space-2);
  margin: 0;
  padding-left: var(--innvilo-space-7);
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-body);
}

.accounting-resolution__content footer {
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-2);
}

/* DevExpress Scheduler Month View: status and layout are scoped through public CssClass hooks. */
.accounting-month-scheduler {
  min-width: 0;
  max-width: 100%;
}

.accounting-month-scheduler__control.dxbl-scheduler {
  min-width: 0;
  min-height: 48rem;
  overflow: hidden;
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-card);
  background: var(--innvilo-surface-main);
}

.accounting-month-scheduler__cell {
  overflow: hidden;
  padding: 0;
  border-color: var(--innvilo-border-soft);
  transition: border-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), opacity var(--innvilo-duration-fast) var(--innvilo-easing-standard);
}

.accounting-month-scheduler__cell.is-closed {
  background: var(--color-accounting-ready-soft);
}

.accounting-month-scheduler__cell.is-closed-with-issues {
  background: var(--color-accounting-review-soft);
}

.accounting-month-scheduler__cell.is-critical {
  background: var(--color-accounting-critical-soft);
}

.accounting-month-scheduler__cell.is-open {
  background: var(--color-accounting-open-soft);
}

.accounting-month-scheduler__cell.is-filter-dimmed {
  opacity: 0.38;
}

.accounting-month-scheduler__cell.is-outside-month {
  background: var(--innvilo-surface-muted);
  opacity: 0.5;
}

.accounting-month-scheduler__cell.is-today {
  box-shadow: inset 0 0 0 2px var(--innvilo-color-primary);
}

.accounting-month-scheduler__cell.is-selected {
  box-shadow: inset 0 0 0 3px var(--innvilo-color-primary);
}

.accounting-month-scheduler__cell:hover {
  border-color: var(--innvilo-border-focus);
}

.accounting-month-scheduler__weekday-cell {
  color: var(--innvilo-text-secondary);
  background: var(--innvilo-surface-soft);
}

.accounting-month-scheduler__document-action.dxbl-btn {
  min-width: 5rem;
  min-height: 2.5rem;
  border-color: currentColor;
  background: var(--innvilo-surface-main);
  box-shadow: none;
  font-size: var(--innvilo-font-size-caption);
  font-weight: 800;
}

.accounting-filter-empty,
.accounting-readiness-note {
  display: flex;
  align-items: flex-start;
  gap: var(--innvilo-space-3);
  margin-block: var(--innvilo-space-4);
  padding: var(--innvilo-space-4);
  border: 1px solid var(--innvilo-border-soft);
  border-radius: var(--innvilo-radius-md);
  background: var(--innvilo-surface-soft);
}

.accounting-filter-empty {
  color: var(--innvilo-text-secondary);
}

.accounting-readiness-note {
  color: var(--innvilo-color-primary);
  background: var(--innvilo-color-primary-soft);
}

.accounting-readiness-note > div {
  display: grid;
  gap: var(--innvilo-space-1);
}

.accounting-readiness-note span {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
}

.accounting-document-popup {
  display: grid;
  gap: var(--innvilo-space-5);
}

@media (max-width: 92rem) {
  .accounting-month-scheduler__control.dxbl-scheduler {
    min-height: 45rem;
  }
}
@media (max-width: 74rem) {
  .accounting-overview {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .accounting-metric:nth-child(3) {
    border-left: 0;
    border-top: 1px solid var(--innvilo-border-soft);
  }
  .accounting-metric:nth-child(4) {
    border-top: 1px solid var(--innvilo-border-soft);
  }
  .accounting-day-command {
    grid-template-columns: minmax(0, 1fr);
  }
  .accounting-day-command__actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .accounting-month-layout {
    grid-template-columns: minmax(0, 1fr);
  }
  .accounting-upload-zone {
    grid-template-columns: auto 1fr;
  }
  .accounting-upload {
    grid-column: 1/-1;
  }
}
@media (max-width: 54rem) {
  .accounting-month-scheduler {
    overflow-x: auto;
    overscroll-behavior-inline: contain;
  }
  .accounting-calendar-shell,
  .accounting-panel,
  .accounting-close-steps,
  .accounting-day-command,
  .accounting-month-command {
    padding: var(--innvilo-space-5);
  }
  .accounting-calendar-header {
    align-items: stretch;
    flex-direction: column;
  }
  .accounting-month-navigation {
    width: 100%;
  }
  .accounting-calendar-summary {
    align-items: flex-start;
    flex-wrap: wrap;
    gap: var(--innvilo-space-4);
  }
  .accounting-status-legend {
    flex: 0 0 100%;
    justify-content: flex-start;
    overflow-x: auto;
  }
  .accounting-detail-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .accounting-resolution__columns,
  .accounting-resolution__content dl {
    grid-template-columns: minmax(0, 1fr);
  }
  .accounting-checklist-panel__header,
  .accounting-checklist-blockers__summary {
    grid-template-columns: minmax(0, 1fr);
    flex-direction: column;
  }
  .accounting-checklist-panel__commands {
    width: 100%;
    justify-content: space-between;
  }
  .accounting-checklist-blocker__facts,
  .accounting-checklist-blocker__columns {
    grid-template-columns: minmax(0, 1fr);
  }
  .accounting-panel--wide {
    grid-column: auto;
  }
  .accounting-month-command {
    align-items: stretch;
    flex-direction: column;
  }
  .accounting-month-command__actions {
    flex-wrap: wrap;
  }
}
@media (max-width: 36rem) {
  .accounting-workspace {
    gap: var(--innvilo-space-5);
  }
  .accounting-overview {
    grid-template-columns: minmax(0, 1fr);
  }
  .accounting-metric {
    min-height: 5.75rem;
    padding: var(--innvilo-space-5);
    border-left: 0;
    border-top: 1px solid var(--innvilo-border-soft);
  }
  .accounting-metric:first-child {
    border-top: 0;
  }
  .accounting-calendar-shell {
    padding-inline: var(--innvilo-space-4);
  }
  .accounting-calendar-header h2 {
    font-size: var(--innvilo-font-size-heading);
  }
  .accounting-month-scheduler__control.dxbl-scheduler {
    min-width: 70rem;
    min-height: 42rem;
  }
  .accounting-month-scheduler__document-action.dxbl-btn {
    min-width: 2.75rem;
    min-height: 2.75rem;
  }
  .accounting-day-command__main {
    align-items: flex-start;
  }
  .accounting-day-command__date {
    width: 3.75rem;
    height: 3.75rem;
  }
  .accounting-day-command h2 {
    font-size: var(--innvilo-font-size-heading);
  }
  .accounting-day-command__facts,
  .accounting-day-command__actions,
  .accounting-close-popup dl {
    grid-template-columns: minmax(0, 1fr);
  }
  .accounting-checklist-panel__commands {
    align-items: stretch;
    flex-direction: column;
  }
  .accounting-checklist-panel__run.dxbl-btn {
    width: 100%;
  }
  .accounting-checklist-blockers__summary {
    padding: var(--innvilo-space-5);
  }
  .accounting-checklist-blockers__summary dl {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .accounting-checklist-blockers__summary dl > div {
    min-width: 0;
    padding: var(--innvilo-space-3);
  }
  .accounting-upload-zone {
    grid-template-columns: minmax(0, 1fr);
  }
  .accounting-upload {
    grid-column: auto;
  }
  .accounting-empty-state {
    align-items: flex-start;
    flex-direction: column;
  }
  .accounting-validation-list li {
    flex-wrap: wrap;
  }
  .accounting-validation-list b {
    width: 100%;
    padding-left: 1.75rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .accounting-day {
    transition: none;
  }
  .accounting-day:hover {
    transform: none;
  }
  .accounting-checklist li.is-complete .accounting-checklist__state > i,
  .accounting-checklist-panel .fa-spin {
    animation: none;
  }
}
/* Beleg-Center: compact accounting workbench, with public component hooks only. */
.accounting-document-center {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--innvilo-space-5);
  grid-template-columns: minmax(0, 1fr);
  min-width: 0;
  color: var(--innvilo-text-primary);
}

/* The portal sidebar reduces the usable content width while viewport media queries still see the
   full browser width. Keep the receipt-center hero container-safe and its single primary action
   inside the actual work area. */
.accounting-document-center > .pms-page-hero .pms-page-hero__main {
  grid-template-columns: minmax(0, 1fr);
}

.accounting-document-center > .pms-page-hero .pms-page-hero__actions {
  justify-content: flex-start;
  max-width: none;
  width: 100%;
}

.accounting-document-status-strip {
  box-sizing: border-box;
  display: grid;
  grid-template-columns: repeat(8, minmax(8.5rem, 1fr));
  gap: var(--innvilo-space-2);
  min-width: 0;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: var(--innvilo-space-2);
  overflow-x: auto;
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-card);
  background: var(--innvilo-surface-main);
  box-shadow: var(--innvilo-shadow-card);
  scrollbar-width: thin;
  width: 100%;
}

.accounting-document-status-strip__item.dxbl-btn {
  justify-content: flex-start;
  min-height: 2.75rem;
  padding-inline: var(--innvilo-space-3);
  border-color: transparent;
  background: transparent;
  color: var(--innvilo-text-secondary);
  white-space: nowrap;
}

.accounting-document-status-strip__item.dxbl-btn:hover,
.accounting-document-status-strip__item.dxbl-btn:focus-visible {
  border-color: var(--innvilo-border-strong);
  background: var(--innvilo-surface-muted);
}

.accounting-document-status-strip__item.is-active.dxbl-btn {
  border-color: var(--innvilo-color-primary);
  background: var(--innvilo-color-primary-soft);
  color: var(--innvilo-color-primary-active);
  box-shadow: inset 0 -2px 0 var(--innvilo-color-primary);
}

.accounting-document-status-strip__item.is-attention:not(.is-active) .dxbl-image {
  color: var(--innvilo-color-error);
}

.accounting-document-filter-center {
  min-width: 0;
}

.accounting-document-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--innvilo-space-4);
  min-height: 3.25rem;
  padding: var(--innvilo-space-2) var(--innvilo-space-4);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-control);
  background: var(--innvilo-surface-main);
}

.accounting-document-toolbar > div {
  display: flex;
  align-items: center;
  gap: var(--innvilo-space-2);
}

.accounting-document-toolbar span {
  color: var(--innvilo-text-muted);
  font-size: var(--innvilo-font-size-caption);
}

.accounting-document-grid-error,
.accounting-document-upload-center__error {
  display: flex;
  align-items: center;
  gap: var(--innvilo-space-3);
  padding: var(--innvilo-space-3) var(--innvilo-space-4);
  border: 1px solid var(--innvilo-color-error);
  border-radius: var(--innvilo-radius-control);
  background: var(--color-accounting-critical-soft);
  color: var(--innvilo-color-error);
}

.accounting-document-grid-host,
.accounting-document-grid-host > * {
  max-width: 100%;
  min-width: 0;
}

.accounting-document-grid-host {
  min-width: 0;
  max-width: 100%;
}

.accounting-document-grid {
  min-height: 30rem;
  border-radius: var(--innvilo-radius-card);
  overflow: hidden;
}

.accounting-document-grid__identity {
  display: flex;
  align-items: center;
  gap: var(--innvilo-space-3);
  min-width: 0;
}

.accounting-document-grid__identity > div {
  display: grid;
  min-width: 0;
}

.accounting-document-grid__identity strong,
.accounting-document-grid__identity span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.accounting-document-grid__identity span,
.accounting-document-grid__identity small {
  color: var(--innvilo-text-muted);
  font-size: var(--innvilo-font-size-caption);
}

.accounting-document-grid__preview {
  display: grid;
  place-items: center;
  flex: 0 0 2.25rem;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: var(--innvilo-radius-control);
  background: var(--innvilo-color-primary-soft);
  color: var(--innvilo-color-primary);
}

.accounting-document-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--innvilo-space-2);
  max-width: 100%;
  padding: var(--innvilo-space-1) var(--innvilo-space-2);
  border-radius: var(--innvilo-radius-pill);
  background: var(--innvilo-surface-muted);
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  font-weight: 700;
  white-space: nowrap;
}

.accounting-document-badge.is-success {
  background: var(--color-accounting-ready-soft);
  color: var(--color-accounting-ready);
}

.accounting-document-badge.is-warning {
  background: var(--color-accounting-review-soft);
  color: var(--color-accounting-review);
}

.accounting-document-badge.is-danger {
  background: var(--color-accounting-critical-soft);
  color: var(--color-accounting-critical);
}

.accounting-document-badge b {
  display: grid;
  place-items: center;
  min-width: 1.2rem;
  height: 1.2rem;
  border-radius: 50%;
  background: currentColor;
  color: var(--innvilo-surface-main);
  font-size: 0.65rem;
}

.accounting-document-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--innvilo-space-4);
  min-height: 13rem;
  padding: var(--innvilo-space-6);
  text-align: left;
}

.accounting-document-empty > span {
  display: grid;
  place-items: center;
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  background: var(--innvilo-color-primary-soft);
  color: var(--innvilo-color-primary);
}

.accounting-document-empty h3,
.accounting-document-empty p {
  margin: 0;
}

.accounting-document-empty p {
  margin-top: var(--innvilo-space-1);
  color: var(--innvilo-text-muted);
}

.accounting-document-upload-center {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  min-height: 0;
  overflow: hidden;
}

.accounting-document-upload-center__steps {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1px;
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-control);
  overflow: hidden;
  background: var(--innvilo-border-default);
}

.accounting-document-upload-center__steps > div {
  display: flex;
  align-items: center;
  gap: var(--innvilo-space-3);
  min-width: 0;
  padding: var(--innvilo-space-3);
  background: var(--innvilo-surface-main);
}

.accounting-document-upload-center__steps > div > span {
  display: grid;
  place-items: center;
  flex: 0 0 1.75rem;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 50%;
  background: var(--innvilo-surface-muted);
  font-weight: 800;
}

.accounting-document-upload-center__steps .is-active {
  background: var(--innvilo-color-primary-soft);
}

.accounting-document-upload-center__steps .is-active > span,
.accounting-document-upload-center__steps .is-complete > span {
  background: var(--innvilo-color-primary);
  color: var(--innvilo-surface-main);
}

.accounting-document-upload-center__steps strong,
.accounting-document-upload-center__steps small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.accounting-document-upload-center__steps small {
  color: var(--innvilo-text-muted);
  font-size: var(--innvilo-font-size-caption);
}

.accounting-document-upload-center__workspace {
  display: grid;
  grid-template-columns: minmax(22rem, 1.05fr) minmax(24rem, 0.95fr);
  gap: var(--innvilo-space-5);
  min-height: 0;
  padding-block: var(--innvilo-space-4);
  overflow: auto;
}

.accounting-document-upload-center__preview,
.accounting-document-upload-center__form {
  min-width: 0;
}

.accounting-document-upload-center__form {
  padding: var(--innvilo-space-5);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-card);
  background: var(--innvilo-surface-main);
}

.accounting-document-upload-center__form header h2,
.accounting-document-upload-center__form header p {
  margin: 0;
}

.accounting-document-upload-center__form header p {
  margin-top: var(--innvilo-space-1);
  color: var(--innvilo-text-muted);
}

.accounting-document-dropzone {
  display: grid;
  place-items: center;
  align-content: center;
  gap: var(--innvilo-space-4);
  min-height: 15rem;
  padding: var(--innvilo-space-6);
  border: 2px dashed var(--innvilo-border-strong);
  border-radius: var(--innvilo-radius-card);
  background: var(--innvilo-surface-muted);
  text-align: center;
  transition: border-color var(--innvilo-motion-fast), background var(--innvilo-motion-fast);
}

.accounting-document-dropzone.is-dragover {
  border-color: var(--innvilo-color-primary);
  background: var(--innvilo-color-primary-soft);
}

.accounting-document-dropzone > span {
  display: grid;
  place-items: center;
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  background: var(--innvilo-color-primary-soft);
  color: var(--innvilo-color-primary);
  font-size: 1.5rem;
}

.accounting-document-dropzone h3,
.accounting-document-dropzone p {
  margin: 0;
}

.accounting-document-dropzone p {
  margin-top: var(--innvilo-space-2);
  color: var(--innvilo-text-muted);
}

.accounting-document-upload {
  margin-top: var(--innvilo-space-4);
}

.accounting-document-upload-center__security,
.accounting-document-upload-center__late,
.accounting-document-upload-center__analysis {
  display: flex;
  align-items: flex-start;
  gap: var(--innvilo-space-3);
  margin-top: var(--innvilo-space-4);
  padding: var(--innvilo-space-3) var(--innvilo-space-4);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-control);
  background: var(--innvilo-surface-muted);
}

.accounting-document-upload-center__late {
  margin-top: 0;
  margin-bottom: var(--innvilo-space-5);
  background: var(--color-accounting-review-soft);
  color: var(--color-accounting-review);
}

.accounting-document-upload-center__analysis {
  align-items: center;
  justify-content: space-between;
}

.accounting-document-upload-center__analysis > div {
  display: flex;
  align-items: center;
  gap: var(--innvilo-space-3);
}

.accounting-document-upload-center__security span,
.accounting-document-upload-center__late span,
.accounting-document-upload-center__analysis small {
  display: block;
  color: var(--innvilo-text-muted);
}

.accounting-document-upload-center__fields {
  margin-top: var(--innvilo-space-5);
}

.accounting-document-upload-center__status {
  display: flex;
  align-items: center;
  gap: var(--innvilo-space-2);
  min-height: 2rem;
  padding-top: var(--innvilo-space-3);
  border-top: 1px solid var(--innvilo-border-default);
  color: var(--innvilo-text-muted);
}

.accounting-document-upload-center__status .fa-circle-check {
  color: var(--color-success);
}

.accounting-document-upload-center__status .fa-triangle-exclamation {
  color: var(--color-error);
}

.accounting-document-detail {
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr);
  min-height: min(78vh, 58rem);
  max-height: calc(100vh - 8rem);
  overflow: hidden;
}

.accounting-document-detail__header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: var(--innvilo-space-5);
  padding-bottom: var(--innvilo-space-4);
  border-bottom: 1px solid var(--innvilo-border-default);
}

.accounting-document-detail__identity span {
  color: var(--innvilo-text-muted);
  font-size: var(--innvilo-font-size-caption);
  font-weight: 800;
  text-transform: uppercase;
}

.accounting-document-detail__identity h2,
.accounting-document-detail__identity p {
  margin: 0;
}

.accounting-document-detail__identity p {
  margin-top: var(--innvilo-space-1);
  color: var(--innvilo-text-muted);
}

.accounting-document-detail__status {
  display: grid;
  justify-items: end;
  gap: var(--innvilo-space-2);
}

.accounting-document-detail__status > strong {
  font-size: var(--innvilo-font-size-heading);
}

.accounting-document-detail__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--innvilo-space-2);
}

.accounting-document-detail__recognition-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-2);
  margin-top: var(--innvilo-space-4);
}

.accounting-document-detail__tabs {
  margin-top: var(--innvilo-space-3);
}

.accounting-document-detail__content {
  min-height: 0;
  padding-top: var(--innvilo-space-4);
  overflow: auto;
}

.accounting-document-detail__facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--innvilo-space-3);
  margin: 0 0 var(--innvilo-space-5);
}

.accounting-document-detail__facts > div {
  padding: var(--innvilo-space-4);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-control);
  background: var(--innvilo-surface-main);
}

.accounting-document-detail__facts dt {
  color: var(--innvilo-text-muted);
  font-size: var(--innvilo-font-size-caption);
}

.accounting-document-detail__facts dd {
  margin: var(--innvilo-space-1) 0 0;
  font-weight: 800;
}

.accounting-document-preview {
  min-height: 35rem;
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-card);
  overflow: hidden;
  background: var(--innvilo-surface-main);
}

.accounting-document-preview > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--innvilo-space-4);
  padding: var(--innvilo-space-3) var(--innvilo-space-4);
  border-bottom: 1px solid var(--innvilo-border-default);
}

.accounting-document-preview > header > div:first-child {
  display: grid;
}

.accounting-document-preview > header span {
  color: var(--innvilo-text-muted);
  font-size: var(--innvilo-font-size-caption);
}

.accounting-document-preview__actions {
  display: flex;
  gap: var(--innvilo-space-2);
}

.accounting-document-preview__pdf {
  height: 38rem;
}

.accounting-document-preview__image {
  display: grid;
  place-items: center;
  min-height: 35rem;
  padding: var(--innvilo-space-4);
  background: var(--innvilo-surface-muted);
}

.accounting-document-preview__image img {
  max-width: 100%;
  max-height: 62vh;
  object-fit: contain;
}

.accounting-document-preview__structured {
  padding: var(--innvilo-space-4);
}

.accounting-document-preview__structured pre {
  max-height: 32rem;
  overflow: auto;
  white-space: pre-wrap;
  word-break: break-word;
}

.accounting-document-preview__notice,
.accounting-document-preview__error {
  display: flex;
  align-items: center;
  gap: var(--innvilo-space-3);
  padding: var(--innvilo-space-4);
  background: var(--innvilo-color-primary-soft);
  color: var(--innvilo-color-primary-active);
}

.accounting-document-preview__error {
  min-height: 20rem;
  justify-content: center;
  background: var(--innvilo-surface-muted);
  color: var(--innvilo-text-secondary);
}

.accounting-document-validations {
  display: grid;
  gap: var(--innvilo-space-3);
}

.accounting-document-validations__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--innvilo-space-4);
}

.accounting-document-validations__header h3,
.accounting-document-validations__header p {
  margin: 0;
}

.accounting-document-validations__header p {
  margin-top: var(--innvilo-space-1);
  color: var(--innvilo-text-muted);
}

.accounting-document-validation__body {
  display: grid;
  gap: var(--innvilo-space-4);
  padding: var(--innvilo-space-4);
}

.accounting-document-validation__facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--innvilo-space-3);
}

.accounting-document-validation__facts > div {
  padding: var(--innvilo-space-3);
  border-radius: var(--innvilo-radius-control);
  background: var(--innvilo-surface-muted);
}

.accounting-document-validation__facts strong,
.accounting-document-validation__facts span {
  display: block;
}

.accounting-document-validation__facts span {
  margin-top: var(--innvilo-space-1);
  color: var(--innvilo-text-muted);
}

.accounting-document-validation__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-2);
}

.accounting-document-editor {
  display: grid;
  gap: var(--innvilo-space-5);
}

.accounting-document-editor > header h2,
.accounting-document-editor > header p {
  margin: 0;
}

.accounting-document-editor > header p {
  margin-top: var(--innvilo-space-2);
  color: var(--innvilo-text-muted);
}

.accounting-document-editor__form {
  min-width: 0;
}

.accounting-document-editor__error {
  display: flex;
  align-items: center;
  gap: var(--innvilo-space-2);
  padding: var(--innvilo-space-3);
  border: 1px solid var(--innvilo-color-danger);
  border-radius: var(--innvilo-radius-control);
  color: var(--innvilo-color-danger);
}

.accounting-document-editor > footer {
  display: flex;
  justify-content: flex-end;
  gap: var(--innvilo-space-3);
  padding-top: var(--innvilo-space-4);
  border-top: 1px solid var(--innvilo-border-default);
}

.accounting-document-center-shimmer {
  display: grid;
  gap: var(--innvilo-space-5);
}

.accounting-document-center-shimmer i {
  display: block;
  border-radius: var(--innvilo-radius-control);
  background: var(--innvilo-surface-muted);
  animation: accounting-shimmer 1.35s ease-in-out infinite;
}

.accounting-document-center-shimmer__hero {
  min-height: 13rem;
  border-radius: var(--innvilo-radius-card);
}

.accounting-document-center-shimmer__status {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  gap: var(--innvilo-space-2);
}

.accounting-document-center-shimmer__status i {
  height: 2.75rem;
}

.accounting-document-center-shimmer__filter {
  height: 6rem;
}

.accounting-document-center-shimmer__toolbar {
  height: 3.25rem;
}

.accounting-document-center-shimmer__grid {
  display: grid;
  gap: 1px;
  padding: 1px;
  background: var(--innvilo-border-default);
}

.accounting-document-center-shimmer__grid i {
  height: 2.8rem;
  border-radius: 0;
  background: var(--innvilo-surface-main);
}

@media (max-width: 72rem) {
  .accounting-document-status-strip {
    grid-template-columns: repeat(8, minmax(10rem, 1fr));
  }
  .accounting-document-detail__header {
    grid-template-columns: minmax(0, 1fr) auto;
  }
  .accounting-document-detail__actions {
    grid-column: 1/-1;
    justify-content: flex-start;
  }
}
@media (max-width: 48rem) {
  .accounting-document-toolbar {
    align-items: flex-start;
  }
  .accounting-document-toolbar > div:last-child {
    flex-wrap: wrap;
    justify-content: flex-end;
  }
  .accounting-document-upload-center,
  .accounting-document-detail {
    max-height: none;
    min-height: 0;
    overflow: visible;
  }
  .accounting-document-upload-center__steps {
    grid-template-columns: repeat(5, minmax(2.75rem, 1fr));
  }
  .accounting-document-upload-center__steps > div {
    justify-content: center;
    padding: var(--innvilo-space-2);
  }
  .accounting-document-upload-center__steps > div > div {
    display: none;
  }
  .accounting-document-upload-center__workspace {
    grid-template-columns: minmax(0, 1fr);
    overflow: visible;
  }
  .accounting-document-dropzone {
    min-height: 14rem;
    padding: var(--innvilo-space-5);
  }
  .accounting-document-upload-center__status {
    padding-bottom: var(--innvilo-space-2);
  }
  .accounting-document-detail__header {
    grid-template-columns: minmax(0, 1fr);
  }
  .accounting-document-detail__status {
    justify-items: start;
  }
  .accounting-document-detail__actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .accounting-document-detail__actions .dxbl-btn {
    width: 100%;
  }
  .accounting-document-detail__content {
    overflow: visible;
  }
  .accounting-document-detail__facts,
  .accounting-document-validation__facts {
    grid-template-columns: minmax(0, 1fr);
  }
  .accounting-document-preview > header {
    align-items: flex-start;
    flex-direction: column;
  }
  .accounting-document-preview__actions {
    width: 100%;
    flex-wrap: wrap;
  }
  .accounting-document-editor > footer {
    position: sticky;
    bottom: 0;
    z-index: 2;
    display: grid;
    grid-template-columns: 1fr;
    background: var(--innvilo-surface-main);
  }
  .accounting-document-editor > footer .dxbl-btn {
    width: 100%;
  }
}
@media (prefers-reduced-motion: reduce) {
  .accounting-document-dropzone,
  .accounting-document-center-shimmer i {
    transition: none;
    animation: none;
  }
}
.account-overview-page {
  display: grid;
  gap: 34px;
  margin: 0 auto;
  max-width: var(--innvilo-content-max);
  min-width: 0;
  width: 100%;
}

.account-overview-page[data-testid=account-overview] {
  max-width: 80rem;
}

body .account-overview-page > .pms-page-hero {
  margin-bottom: 0;
}

.account-workspace {
  background: var(--innvilo-surface-card);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-card);
  min-width: 0;
  overflow: hidden;
}

.account-loading-skeleton,
.account-load-error {
  min-height: 18rem;
  padding: var(--innvilo-space-8);
}

.account-loading-skeleton {
  display: grid;
  gap: var(--innvilo-space-6);
}

.account-loading-tabs {
  border-bottom: 1px solid var(--innvilo-border-default);
  display: flex;
  gap: var(--innvilo-space-5);
  min-height: 3rem;
  overflow: hidden;
}

.account-loading-tabs span,
.account-loading-content span {
  background: var(--innvilo-surface-muted);
  border-radius: var(--innvilo-radius-sm);
  display: block;
}

.account-loading-tabs span {
  height: 1rem;
  width: 7rem;
}

.account-loading-content {
  display: grid;
  gap: var(--innvilo-space-4);
  max-width: 42rem;
}

.account-loading-title {
  height: 1.5rem;
  width: min(14rem, 60%);
}

.account-loading-copy {
  height: 1rem;
  width: min(34rem, 90%);
}

.account-loading-field {
  height: 3rem;
  width: 100%;
}

.account-loading-action {
  height: 2.75rem;
  width: 11rem;
}

.account-load-error {
  align-content: center;
  display: grid;
  gap: var(--innvilo-space-4);
  justify-items: start;
}

.account-load-error h2,
.account-load-error p {
  margin: 0;
}

.account-load-error h2 {
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: 1.25rem;
  line-height: 1.25;
}

.account-load-error h2:focus-visible,
.account-form-alert:focus-visible {
  outline: 2px solid var(--innvilo-color-primary);
  outline-offset: 2px;
}

.account-state-icon {
  color: var(--innvilo-danger);
  font-size: 1.25rem;
}

.account-error-reference {
  color: var(--innvilo-text-muted);
  font-size: 0.875rem;
}

.account-tabs.dxbl-tabs {
  background: var(--innvilo-surface-muted);
  border-bottom: 1px solid var(--innvilo-border-default);
  padding: 0 var(--innvilo-space-4);
}

.account-tabs.dxbl-tabs .dxbl-tabs-item {
  font-family: "Lato-SemiBold", Arial, sans-serif;
  min-height: 3rem;
  white-space: nowrap;
}

.account-section {
  display: grid;
  gap: var(--innvilo-space-6);
  padding: var(--innvilo-space-8);
}

.account-section-header {
  display: grid;
  gap: var(--innvilo-space-4);
}

.account-section h2,
.account-section h3,
.account-section p {
  margin: 0;
}

.account-section h2 {
  color: var(--innvilo-text-primary);
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: 1.25rem;
  line-height: 1.25;
}

.account-section h3 {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: 1rem;
  line-height: 1.35;
}

.account-section-header > p,
.account-muted-note,
.account-password-policy p,
.account-danger-zone p,
.account-export-form > p,
.account-security-actions p,
.account-recovery-codes p {
  color: var(--innvilo-text-secondary);
  line-height: 1.5;
}

.account-profile-identity,
.account-security-heading,
.account-current-email,
.account-danger-zone {
  align-items: center;
  display: flex;
  gap: var(--innvilo-space-5);
  justify-content: space-between;
}

.account-profile-identity {
  justify-content: flex-start;
}

.account-profile-identity > div {
  display: grid;
  gap: var(--innvilo-space-2);
}

.account-profile-identity p {
  color: var(--innvilo-text-secondary);
  overflow-wrap: anywhere;
}

.account-profile-avatar {
  align-items: center;
  background: var(--innvilo-color-primary-soft);
  border: 1px solid var(--innvilo-border-strong);
  border-radius: var(--innvilo-radius-full);
  color: var(--innvilo-color-primary);
  display: inline-flex;
  flex: 0 0 3.5rem;
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: 1.125rem;
  height: 3.5rem;
  justify-content: center;
  width: 3.5rem;
}

.account-form,
.account-password-form-stack {
  display: grid;
  gap: var(--innvilo-space-5);
  max-width: 48rem;
  min-width: 0;
}

.account-form-narrow,
.account-password-form-stack {
  max-width: 36rem;
}

.account-otp-input {
  background: var(--innvilo-surface-main);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-sm);
  color: var(--innvilo-text-primary);
  font: inherit;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.12em;
  min-height: 3rem;
  padding: 0 var(--innvilo-space-4);
  transition: border-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), box-shadow var(--innvilo-duration-fast) var(--innvilo-easing-standard);
  width: 100%;
}

.account-otp-input:hover {
  border-color: var(--innvilo-border-strong);
}

.account-otp-input:focus-visible {
  border-color: var(--innvilo-color-primary);
  box-shadow: 0 0 0 3px var(--color-primary-focus-ring);
  outline: 2px solid transparent;
}

.account-otp-input.invalid {
  border-color: var(--innvilo-danger);
}

.account-form-alert {
  background: var(--color-error-surface);
  border: 1px solid var(--color-error-border);
  border-radius: var(--innvilo-radius-md);
  color: var(--innvilo-danger);
  font-size: 0.875rem;
  line-height: 1.4;
  padding: var(--innvilo-space-4);
}

.account-field-error,
.account-validation {
  color: var(--innvilo-danger);
  display: block;
  font-size: 0.875rem;
  line-height: 1.4;
  margin-top: var(--innvilo-space-2);
}

.account-form-actions,
.account-personal-actions,
.account-password-toggle {
  align-items: center;
  border-top: 1px solid var(--innvilo-border-soft);
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-3);
  justify-content: flex-start;
  padding-top: var(--innvilo-space-5);
}

.account-password-toggle {
  border-top: 0;
  padding-top: 0;
}

.account-readonly-area,
.account-export-form,
.account-security-actions {
  border-top: 1px solid var(--innvilo-border-soft);
  display: grid;
  gap: var(--innvilo-space-5);
  padding-top: var(--innvilo-space-6);
}

.account-readonly-facts {
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
  overflow: hidden;
}

.account-readonly-facts > div {
  background: var(--innvilo-surface-muted);
  display: grid;
  gap: var(--innvilo-space-2);
  padding: var(--innvilo-space-5);
}

.account-readonly-facts dt {
  color: var(--innvilo-text-muted);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: 0.875rem;
  line-height: 1.35;
}

.account-readonly-facts dd {
  color: var(--innvilo-text-primary);
  margin: 0;
  overflow-wrap: anywhere;
}

.account-empty-state {
  align-items: center;
  border: 1px dashed var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-md);
  color: var(--innvilo-text-secondary);
  display: flex;
  font-size: 0.875rem;
  gap: var(--innvilo-space-3);
  padding: var(--innvilo-space-4);
}

.account-current-email {
  background: var(--innvilo-surface-muted);
  border-radius: var(--innvilo-radius-md);
  padding: var(--innvilo-space-5);
}

.account-current-email > div {
  display: grid;
  gap: var(--innvilo-space-2);
}

.account-current-email span:first-child {
  color: var(--innvilo-text-muted);
  font-size: 0.875rem;
}

.account-inline-status {
  align-items: center;
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-full);
  display: inline-flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: 0.8125rem;
  gap: var(--innvilo-space-2);
  padding: var(--innvilo-space-2) var(--innvilo-space-4);
  white-space: nowrap;
}

.account-inline-status.is-success,
.account-inline-message.is-success {
  background: var(--color-success-soft);
  border-color: var(--color-success-border);
  color: var(--color-success);
}

.account-inline-status.is-warning,
.account-inline-message.is-warning {
  background: var(--color-warning-soft);
  border-color: var(--color-warning-border);
  color: var(--color-warning-text);
}

.account-inline-message {
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-md);
  display: grid;
  gap: var(--innvilo-space-3);
  line-height: 1.5;
  padding: var(--innvilo-space-4) var(--innvilo-space-5);
}

.account-inline-message-with-action {
  align-items: center;
  grid-template-columns: minmax(0, 1fr) auto;
}

.account-password-layout {
  align-items: start;
  display: grid;
  gap: var(--innvilo-space-8);
  grid-template-columns: minmax(0, 36rem) minmax(16rem, 1fr);
}

.account-password-policy {
  background: var(--innvilo-surface-muted);
  border: 1px solid var(--innvilo-border-soft);
  border-radius: var(--innvilo-radius-md);
  display: grid;
  gap: var(--innvilo-space-4);
  padding: var(--innvilo-space-6);
}

.account-password-policy ul {
  display: grid;
  gap: var(--innvilo-space-2);
  margin: 0;
  padding-left: var(--innvilo-space-6);
}

.account-password-strength {
  display: grid;
  gap: var(--innvilo-space-2);
  grid-template-columns: 1fr auto;
}

.account-password-strength-segments {
  display: grid;
  gap: var(--innvilo-space-2);
  grid-column: 1/-1;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.account-password-strength-segments i {
  background: var(--innvilo-border-soft);
  border-radius: var(--innvilo-radius-sm);
  display: block;
  height: 0.375rem;
  transition: background-color var(--innvilo-duration-fast) var(--innvilo-easing-standard);
}

.account-password-strength-segments i.is-active {
  background: var(--innvilo-color-primary);
}

.account-step-up-open,
.account-step-up-provider,
.account-step-up-cancel {
  align-items: center;
  border-radius: var(--innvilo-radius-sm);
  cursor: pointer;
  display: inline-flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: 0.9375rem;
  gap: var(--innvilo-space-3);
  justify-content: center;
  min-height: 2.75rem;
  padding: 0 var(--innvilo-space-5);
  transition: background-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), border-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), color var(--innvilo-duration-fast) var(--innvilo-easing-standard), transform var(--innvilo-duration-fast) var(--innvilo-easing-standard);
}

.account-step-up-open,
.account-step-up-provider {
  background: var(--innvilo-color-primary);
  border: 1px solid var(--innvilo-color-primary);
  color: var(--innvilo-text-inverse);
}

.account-step-up-open:hover,
.account-step-up-provider:hover {
  background: var(--innvilo-color-primary-hover);
}

.account-step-up-cancel {
  background: transparent;
  border: 1px solid var(--innvilo-border-default);
  color: var(--innvilo-text-primary);
}

.account-step-up-cancel:hover {
  background: var(--innvilo-surface-muted);
}

.account-step-up-open:active,
.account-step-up-provider:active,
.account-step-up-cancel:active {
  transform: scale(0.98);
}

.account-step-up-open:focus-visible,
.account-step-up-provider:focus-visible,
.account-step-up-cancel:focus-visible,
.account-step-up-dialog:focus-visible {
  box-shadow: 0 0 0 3px var(--color-primary-focus-ring);
  outline: 2px solid transparent;
}

.account-step-up-backdrop {
  align-items: center;
  background: var(--color-popup-backdrop);
  display: flex;
  inset: 0;
  justify-content: center;
  padding: max(var(--innvilo-space-5), env(safe-area-inset-top)) max(var(--innvilo-space-5), env(safe-area-inset-right)) max(var(--innvilo-space-5), env(safe-area-inset-bottom)) max(var(--innvilo-space-5), env(safe-area-inset-left));
  position: fixed;
  z-index: var(--innvilo-z-modal);
}

.account-step-up-dialog {
  background: var(--innvilo-surface-card);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-lg);
  box-shadow: var(--innvilo-shadow-popover);
  display: grid;
  gap: var(--innvilo-space-6);
  max-height: calc(100dvh - 2 * var(--innvilo-space-5));
  max-width: 34rem;
  overflow: auto;
  padding: var(--innvilo-space-7);
  width: 100%;
}

.account-step-up-dialog header {
  align-items: start;
  display: grid;
  gap: var(--innvilo-space-4);
  grid-template-columns: auto minmax(0, 1fr);
}

.account-step-up-dialog header > div {
  display: grid;
  gap: var(--innvilo-space-3);
}

.account-step-up-dialog h2 {
  font-size: 1.25rem;
}

.account-step-up-dialog p {
  color: var(--innvilo-text-secondary);
  line-height: 1.5;
}

.account-step-up-icon {
  align-items: center;
  background: var(--innvilo-color-primary-soft);
  border-radius: var(--innvilo-radius-md);
  color: var(--innvilo-color-primary);
  display: inline-flex;
  height: 2.75rem;
  justify-content: center;
  width: 2.75rem;
}

.account-step-up-form {
  display: grid;
}

.account-step-up-provider {
  width: 100%;
}

.account-step-up-cancel {
  justify-self: start;
}

.account-authenticator-setup {
  align-items: start;
  display: grid;
  gap: var(--innvilo-space-8);
  grid-template-columns: 15rem minmax(0, 1fr);
}

.account-qr-frame {
  align-items: center;
  background: var(--innvilo-surface-card);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-md);
  display: flex;
  justify-content: center;
  padding: var(--innvilo-space-4);
}

.account-qr-frame img {
  display: block;
  height: auto;
  width: 100%;
}

.account-setup-instructions {
  display: grid;
  gap: var(--innvilo-space-5);
}

.account-setup-instructions ol {
  display: grid;
  gap: var(--innvilo-space-2);
  margin: 0;
  padding-left: var(--innvilo-space-6);
}

.account-setup-key {
  background: var(--innvilo-surface-muted);
  border-radius: var(--innvilo-radius-md);
  display: grid;
  gap: var(--innvilo-space-2);
  padding: var(--innvilo-space-4);
}

.account-setup-key span {
  color: var(--innvilo-text-muted);
  font-size: 0.875rem;
}

.account-setup-key code {
  color: var(--innvilo-text-primary);
  overflow-wrap: anywhere;
}

.account-recovery-codes {
  background: var(--color-warning-soft);
  border: 1px solid var(--color-warning-border);
  border-radius: var(--innvilo-radius-md);
  display: grid;
  gap: var(--innvilo-space-5);
  padding: var(--innvilo-space-6);
}

.account-recovery-codes ul {
  display: grid;
  gap: var(--innvilo-space-3);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  list-style: none;
  margin: 0;
  padding: 0;
}

.account-recovery-codes li {
  background: var(--innvilo-surface-card);
  border: 1px solid var(--innvilo-border-soft);
  border-radius: var(--innvilo-radius-md);
  overflow-wrap: anywhere;
  padding: var(--innvilo-space-3);
  text-align: center;
}

.account-danger-zone {
  align-items: flex-start;
  background: var(--color-error-surface);
  border: 1px solid var(--color-error-border);
  border-radius: var(--innvilo-radius-card);
  padding: var(--innvilo-space-6);
}

.account-danger-zone > div {
  display: grid;
  gap: var(--innvilo-space-3);
  max-width: 48rem;
}

.account-danger-form {
  display: grid;
  flex: 0 1 24rem;
  gap: var(--innvilo-space-4);
  min-width: min(100%, 20rem);
}

@media (max-width: 52.5rem) {
  .account-password-layout,
  .account-authenticator-setup {
    grid-template-columns: 1fr;
  }
  .account-qr-frame {
    width: min(100%, 15rem);
  }
}
@media (max-width: 40rem) {
  .account-tabs.dxbl-tabs {
    padding: 0;
  }
  .account-section,
  .account-loading-skeleton,
  .account-load-error {
    padding: var(--innvilo-space-7);
  }
  .account-profile-identity,
  .account-security-heading,
  .account-current-email,
  .account-danger-zone {
    align-items: flex-start;
    flex-direction: column;
  }
  .account-readonly-facts,
  .account-recovery-codes ul {
    grid-template-columns: 1fr;
  }
  .account-inline-message-with-action {
    align-items: stretch;
    grid-template-columns: 1fr;
  }
  .account-form-actions,
  .account-personal-actions {
    display: grid;
    grid-template-columns: 1fr;
  }
  .account-form-actions .dxbl-btn,
  .account-personal-actions .dxbl-btn,
  .account-danger-zone .dxbl-btn,
  .account-inline-message-with-action .dxbl-btn {
    width: 100%;
  }
  .account-inline-status {
    font-size: 0.875rem;
  }
  .account-step-up-dialog {
    padding: var(--innvilo-space-6);
  }
  .account-step-up-dialog header {
    grid-template-columns: 1fr;
  }
  .account-step-up-provider,
  .account-step-up-cancel {
    width: 100%;
  }
}
@media (max-height: 46rem) and (min-width: 40.01rem) {
  .account-section {
    padding-block: var(--innvilo-space-7);
  }
  .account-loading-skeleton,
  .account-load-error {
    min-height: 14rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .account-otp-input,
  .account-password-strength-segments i,
  .account-step-up-open,
  .account-step-up-provider,
  .account-step-up-cancel {
    transition: none;
  }
}
.reputation-grid.dxbl-grid {
  border: 0;
  border-radius: 0;
  min-height: 34rem;
}

.reputation-grid .dxbl-grid-table > tbody > tr.reputation-grid-row--critical > td:first-child,
.reputation-grid .dxbl-grid-table > tbody > tr.reputation-grid-row--critical > td:nth-child(2) {
  background: var(--color-error-soft);
}

.reputation-response-tabs.dxbl-tabs {
  background: var(--color-surface);
  border-bottom: 1px solid var(--color-border);
  font-family: "Lato-Regular", Arial, sans-serif;
  padding-inline: 1rem;
}

.reputation-response-tabs .dxbl-tabs-item {
  min-height: 3.2rem;
}

.pms-popup-center--wide:has(.reputation-response-workspace) > .dxbl-modal-content {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
}

.pms-popup-center--wide:has(.reputation-response-workspace) .pms-popup-center__body-shell,
.pms-popup-center--wide:has(.reputation-response-workspace) .pms-popup-center__body,
.pms-popup-center--wide:has(.reputation-response-workspace) .pms-popup-center__content {
  height: 100%;
  min-height: 0;
  overflow: hidden;
}

.pms-popup-center--wide:has(.reputation-response-workspace) .pms-popup-center__body {
  padding: 0;
}

.pms-popup-center--wide:has(.reputation-response-workspace) .pms-popup-center__content,
.pms-popup-center--wide:has(.reputation-response-workspace) .reputation-response-workspace {
  height: 100%;
}

@media (prefers-reduced-motion: reduce) {
  .reputation-grid .dxbl-grid-table > tbody > tr > td {
    transition: none;
  }
}
@media (forced-colors: active) {
  .reputation-grid.dxbl-grid {
    border: 1px solid CanvasText;
  }
}
.platform-modules-state {
  align-items: center;
  background: var(--innvilo-surface-main);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-card);
  display: grid;
  gap: var(--innvilo-space-5);
  grid-template-columns: auto minmax(0, 1fr) auto;
  min-height: 11rem;
  padding: var(--innvilo-space-7);
}

.platform-modules-state__icon,
.platform-modules-empty > span {
  align-items: center;
  background: var(--innvilo-color-primary-soft);
  border-radius: var(--innvilo-radius-full);
  color: var(--innvilo-color-primary);
  display: inline-flex;
  height: 2.75rem;
  justify-content: center;
  width: 2.75rem;
}

.platform-modules-state h2,
.platform-modules-state p,
.platform-modules-empty h3,
.platform-modules-empty p {
  margin: 0;
}

.platform-modules-state h2,
.platform-modules-empty h3 {
  color: var(--innvilo-text-primary);
  font-family: "Lato-Bold", Arial, sans-serif;
}

.platform-modules-state p,
.platform-modules-empty p {
  color: var(--innvilo-text-secondary);
  line-height: 1.5;
}

.platform-modules-state.is-error {
  background: var(--color-error-surface);
  border-color: var(--color-error-border);
}

.platform-modules-skeleton {
  display: grid;
  gap: var(--innvilo-space-4);
  width: 100%;
}

.platform-modules-skeleton span {
  background: var(--innvilo-surface-muted);
  border-radius: var(--innvilo-radius-sm);
  display: block;
  height: 1rem;
  width: min(36rem, 70%);
}

.platform-modules-skeleton span:last-child {
  width: min(23rem, 48%);
}

.platform-modules-workbench,
.platform-modules-list {
  min-width: 0;
}

.platform-modules-workbench {
  background: var(--innvilo-surface-main);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-card);
  overflow: hidden;
}

.platform-modules-workbench__header,
.platform-modules-list__header {
  align-items: center;
  display: flex;
  gap: var(--innvilo-space-6);
  justify-content: space-between;
}

.platform-modules-workbench__header {
  border-bottom: 1px solid var(--innvilo-border-default);
  min-height: 4rem;
  padding: var(--innvilo-space-4) var(--innvilo-space-6);
}

.platform-modules-workbench__header > div {
  display: grid;
  gap: var(--innvilo-space-1);
}

.platform-modules-workbench__header span,
.platform-modules-list__header > span {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
}

.platform-modules-workbench__header strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-Bold", Arial, sans-serif;
}

.platform-modules-workbench > .filter-center {
  border-left: 0;
  border-radius: 0;
  border-right: 0;
  margin: 0;
}

.platform-modules-list__header h2,
.platform-modules-list__header p {
  margin: 0;
}

.platform-modules-list__header > span {
  align-items: center;
  display: inline-flex;
  gap: var(--innvilo-space-2);
  white-space: nowrap;
}

button.platform-module-identity {
  cursor: pointer;
}

button.platform-module-identity:focus-visible {
  border-radius: var(--innvilo-radius-sm);
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring);
  outline: 0;
}

.platform-module-identity > span:last-child {
  display: grid;
  gap: var(--innvilo-space-1);
  min-width: 0;
}

.platform-module-identity small {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.platform-module-badge.is-positive {
  background: var(--color-success-surface);
  border-color: var(--color-success-border);
  color: var(--color-success);
}

.platform-module-badge.is-info {
  background: var(--color-info-soft);
  border-color: var(--color-info-border);
  color: var(--color-info);
}

.platform-module-badge.is-warning {
  background: var(--color-warning-soft);
  border-color: var(--color-warning);
  color: var(--color-warning-text);
}

.platform-module-badge.is-danger {
  background: var(--color-error-surface);
  border-color: var(--color-error-border);
  color: var(--color-error);
}

.platform-module-badge.is-neutral {
  background: var(--innvilo-surface-muted);
}

.platform-module-auth,
.platform-module-relative {
  align-items: center;
  color: var(--innvilo-text-secondary);
  display: inline-flex;
  font-size: var(--innvilo-font-size-label);
  gap: var(--innvilo-space-2);
}

.platform-module-mobile-item > header,
.platform-module-catalog-mobile-item > header {
  align-items: flex-start;
  display: flex;
  gap: var(--innvilo-space-4);
  justify-content: space-between;
  min-width: 0;
}

.platform-module-mobile-item dl,
.platform-module-catalog-mobile-item dl,
.platform-module-detail-list {
  display: grid;
  gap: var(--innvilo-space-3);
  margin: 0;
}

.platform-module-mobile-item dl div,
.platform-module-catalog-mobile-item dl div,
.platform-module-detail-list div {
  display: grid;
  gap: var(--innvilo-space-1);
  grid-template-columns: minmax(6.5rem, 0.5fr) minmax(0, 1fr);
}

.platform-module-mobile-item dt,
.platform-module-catalog-mobile-item dt,
.platform-module-detail-list dt {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
}

.platform-module-mobile-item dd,
.platform-module-catalog-mobile-item dd,
.platform-module-detail-list dd {
  color: var(--innvilo-text-primary);
  margin: 0;
  overflow-wrap: anywhere;
}

.platform-module-mobile-item footer {
  display: flex;
  justify-content: flex-end;
}

.platform-module-editor,
.platform-module-details,
.platform-module-schema {
  display: grid;
  gap: var(--innvilo-space-6);
  min-width: 0;
}

.platform-module-form-section {
  border-bottom: 1px solid var(--innvilo-border-default);
  display: grid;
  gap: var(--innvilo-space-5);
  padding-bottom: var(--innvilo-space-6);
}

.platform-module-form-section:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.platform-module-form-section > header {
  display: grid;
  gap: var(--innvilo-space-1);
}

.platform-module-form-section > header strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
}

.platform-module-form-section > header span,
.platform-module-field small {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  line-height: 1.45;
}

.platform-module-form-grid {
  display: grid;
  gap: var(--innvilo-space-5);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.platform-module-field {
  display: grid;
  gap: var(--innvilo-space-2);
  min-width: 0;
}

.platform-module-field.is-wide {
  grid-column: 1/-1;
}

.platform-module-field > label {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
}

.platform-module-selection-summary {
  align-items: flex-start;
  background: var(--innvilo-surface-soft);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-md);
  display: flex;
  gap: var(--innvilo-space-4);
  padding: var(--innvilo-space-5);
}

.platform-module-selection-summary > div {
  display: grid;
  gap: var(--innvilo-space-2);
  min-width: 0;
}

.platform-module-selection-summary strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-Bold", Arial, sans-serif;
}

.platform-module-selection-summary span,
.platform-module-selection-summary p {
  color: var(--innvilo-text-secondary);
  margin: 0;
}

.platform-module-selection-summary p {
  line-height: 1.5;
}

.platform-module-selection-summary nav,
.platform-module-detail-links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-4);
}

.platform-module-selection-summary a,
.platform-module-detail-links a {
  color: var(--innvilo-text-link);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
}

.platform-module-selection-summary a:hover,
.platform-module-detail-links a:hover {
  color: var(--innvilo-text-link-hover);
  text-decoration: underline;
}

.platform-module-toggle-row,
.platform-module-capabilities,
.platform-module-option-list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-4) var(--innvilo-space-6);
}

.platform-module-toggle-row label,
.platform-module-capabilities label,
.platform-module-option-list label,
.platform-module-boolean-field {
  align-items: center;
  color: var(--innvilo-text-primary);
  display: inline-flex;
  gap: var(--innvilo-space-2);
}

.platform-module-connection-summary {
  align-items: center;
  display: flex;
  gap: var(--innvilo-space-5);
  justify-content: space-between;
}

.platform-module-connection-summary > div {
  align-items: center;
  color: var(--innvilo-text-secondary);
  display: flex;
  gap: var(--innvilo-space-3);
  line-height: 1.45;
}

.platform-module-connection-test {
  align-items: center;
  background: var(--innvilo-surface-soft);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-md);
  display: grid;
  gap: var(--innvilo-space-5);
  grid-template-columns: minmax(10rem, 0.75fr) minmax(0, 1fr);
  min-height: 7rem;
  overflow: hidden;
  padding: var(--innvilo-space-5);
}

.platform-module-connection-test > div:last-child {
  display: grid;
  gap: var(--innvilo-space-2);
}

.platform-module-connection-test strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-Bold", Arial, sans-serif;
}

.platform-module-connection-test > div:last-child > span {
  color: var(--innvilo-text-secondary);
  line-height: 1.45;
}

.platform-module-connection-test__path {
  align-items: center;
  display: grid;
  grid-template-columns: auto minmax(4rem, 1fr) auto;
  isolation: isolate;
  position: relative;
}

.platform-module-connection-test__node,
.platform-module-connection-test__result-icon {
  align-items: center;
  background: var(--innvilo-surface-main);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-full);
  color: var(--innvilo-color-primary);
  display: inline-flex;
  height: 2.75rem;
  justify-content: center;
  position: relative;
  width: 2.75rem;
  z-index: 1;
}

.platform-module-connection-test__signal {
  --connection-distance: clamp(4rem, 12vw, 10rem);
  background: var(--innvilo-border-default);
  display: block;
  height: 0.125rem;
  overflow: visible;
  position: relative;
}

.platform-module-connection-test__signal i {
  animation: platform-module-connection-signal 1.8s ease-in-out infinite;
  background: var(--innvilo-color-primary);
  border-radius: var(--innvilo-radius-full);
  height: 0.5rem;
  left: 0;
  opacity: 0;
  position: absolute;
  top: -0.2rem;
  transform: translateX(0);
  width: 0.5rem;
}

.platform-module-connection-test__signal i:nth-child(2) {
  animation-delay: 0.45s;
}

.platform-module-connection-test__signal i:nth-child(3) {
  animation-delay: 0.9s;
}

.platform-module-connection-test.is-running .platform-module-connection-test__node {
  animation: platform-module-connection-node 1.8s ease-in-out infinite;
}

.platform-module-connection-test.is-running .platform-module-connection-test__node.is-provider {
  animation-delay: 0.9s;
}

.platform-module-connection-test.is-success {
  background: var(--color-success-surface);
  border-color: var(--color-success-border);
  grid-template-columns: auto minmax(0, 1fr);
}

.platform-module-connection-test.is-success .platform-module-connection-test__result-icon {
  color: var(--color-success);
}

.platform-module-connection-test.is-warning {
  background: var(--color-warning-soft);
  border-color: var(--color-warning-border);
  grid-template-columns: auto minmax(0, 1fr);
}

.platform-module-connection-test.is-warning .platform-module-connection-test__result-icon {
  color: var(--color-warning-text);
}

@keyframes platform-module-connection-signal {
  0% {
    opacity: 0;
    transform: translateX(0) scale(0.75);
  }
  20% {
    opacity: 1;
  }
  80% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: translateX(var(--connection-distance)) scale(1);
  }
}
@keyframes platform-module-connection-node {
  0%, 100% {
    box-shadow: 0 0 0 0 var(--innvilo-color-primary-soft);
    transform: scale(1);
  }
  50% {
    box-shadow: 0 0 0 0.45rem var(--innvilo-color-primary-soft);
    transform: scale(1.04);
  }
}
.platform-module-schema-empty {
  align-items: center;
  background: var(--innvilo-surface-soft);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-md);
  color: var(--innvilo-color-primary);
  display: flex;
  gap: var(--innvilo-space-3);
  padding: var(--innvilo-space-5);
}

.platform-module-schema-empty > div {
  display: grid;
  gap: var(--innvilo-space-1);
}

.platform-module-schema-empty strong {
  color: var(--innvilo-text-primary);
}

.platform-module-schema-empty span {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-label);
}

.platform-module-secret-field {
  display: grid;
  gap: var(--innvilo-space-2);
}

.platform-module-secret-state {
  align-items: center;
  background: var(--innvilo-surface-soft);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-md);
  display: flex;
  gap: var(--innvilo-space-3);
  justify-content: space-between;
  min-height: 3rem;
  padding: var(--innvilo-space-2) var(--innvilo-space-4);
}

.platform-module-secret-state span {
  align-items: center;
  color: var(--innvilo-text-secondary);
  display: inline-flex;
  gap: var(--innvilo-space-2);
}

.platform-module-secret-state button,
.platform-module-secret-cancel {
  background: transparent;
  border: 0;
  color: var(--innvilo-text-link);
  cursor: pointer;
  font: inherit;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  padding: var(--innvilo-space-2);
}

.platform-module-secret-state button:disabled,
.platform-module-secret-cancel:disabled {
  color: var(--innvilo-text-disabled);
  cursor: not-allowed;
}

.platform-module-form-error,
.platform-module-safe-error {
  align-items: flex-start;
  background: var(--color-error-surface);
  border: 1px solid var(--color-error-border);
  border-radius: var(--innvilo-radius-md);
  color: var(--color-error);
  display: flex;
  gap: var(--innvilo-space-3);
  line-height: 1.45;
  margin: 0;
  padding: var(--innvilo-space-4);
}

.platform-module-details__summary,
.platform-module-details__summary > div {
  align-items: center;
  display: flex;
  gap: var(--innvilo-space-3);
}

.platform-module-details__summary {
  justify-content: space-between;
}

.platform-module-details__summary > div:first-child > div {
  display: grid;
  gap: var(--innvilo-space-1);
}

.platform-module-details__summary strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-Bold", Arial, sans-serif;
}

.platform-module-details__summary span {
  color: var(--innvilo-text-secondary);
}

.platform-module-detail-panel {
  display: grid;
  gap: var(--innvilo-space-6);
  padding-top: var(--innvilo-space-2);
}

.platform-module-detail-panel > p {
  color: var(--innvilo-text-secondary);
  line-height: 1.55;
  margin: 0;
}

.platform-module-config-list,
.platform-module-credentials,
.platform-module-activity {
  display: grid;
  gap: var(--innvilo-space-3);
}

.platform-module-config-list > div,
.platform-module-credentials > div {
  align-items: center;
  border-bottom: 1px solid var(--innvilo-border-default);
  display: flex;
  gap: var(--innvilo-space-4);
  justify-content: space-between;
  padding-bottom: var(--innvilo-space-3);
}

.platform-module-config-list span,
.platform-module-credentials span,
.platform-module-activity span {
  color: var(--innvilo-text-secondary);
}

.platform-module-config-list strong,
.platform-module-credentials strong {
  color: var(--innvilo-text-primary);
  max-width: 65%;
  overflow-wrap: anywhere;
  text-align: right;
}

.platform-module-credentials h3 {
  color: var(--innvilo-text-primary);
  font-family: "Lato-Bold", Arial, sans-serif;
  margin: 0;
}

.platform-module-activity article {
  align-items: start;
  display: grid;
  gap: var(--innvilo-space-4);
  grid-template-columns: 9rem minmax(0, 1fr);
}

.platform-module-activity time {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
}

.platform-module-activity article > div {
  display: grid;
  gap: var(--innvilo-space-1);
}

.platform-module-code-editor textarea {
  font-family: monospace;
}

.platform-modules-tabs.dxbl-tabs,
.platform-module-detail-tabs.dxbl-tabs {
  border-bottom: 1px solid var(--innvilo-border-default);
  padding-inline: var(--innvilo-space-5);
}

@media (max-width: 64rem) {
  .platform-modules-list__header > span {
    display: none;
  }
}
@media (max-width: 48rem) {
  .platform-modules-page {
    gap: var(--innvilo-space-4);
  }
  .platform-modules-state {
    align-items: start;
    grid-template-columns: 1fr;
  }
  .platform-modules-workbench__header,
  .platform-modules-list__header,
  .platform-module-details__summary,
  .platform-module-connection-summary {
    align-items: stretch;
    display: grid;
  }
  .platform-module-connection-test {
    grid-template-columns: 1fr;
  }
  .platform-modules-workbench__header .dxbl-btn {
    width: 100%;
  }
  .platform-module-form-grid {
    grid-template-columns: 1fr;
  }
  .platform-module-field.is-wide {
    grid-column: auto;
  }
  .platform-module-mobile-item > header,
  .platform-module-catalog-mobile-item > header,
  .platform-module-selection-summary,
  .platform-module-secret-state {
    align-items: stretch;
    display: grid;
  }
  .platform-module-mobile-item dl div,
  .platform-module-catalog-mobile-item dl div,
  .platform-module-detail-list div {
    grid-template-columns: 1fr;
  }
  .platform-module-details__summary > div:last-child {
    flex-wrap: wrap;
  }
  .platform-module-config-list > div,
  .platform-module-credentials > div {
    align-items: start;
    display: grid;
  }
  .platform-module-config-list strong,
  .platform-module-credentials strong {
    max-width: none;
    text-align: left;
  }
  .platform-module-activity article {
    grid-template-columns: 1fr;
  }
}
@media (prefers-reduced-motion: reduce) {
  .platform-module-identity,
  .platform-module-secret-state button,
  .platform-module-secret-cancel {
    transition: none;
  }
}
.platform-modules-page {
  display: grid;
  font-family: "Lato-Regular", Arial, sans-serif;
  gap: var(--innvilo-page-section-gap);
}

body .platform-modules-page > .pms-page-hero {
  margin-bottom: 0;
}

.platform-modules-navigation,
.platform-modules-list {
  background: var(--innvilo-surface-main);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-card);
  min-width: 0;
  overflow: hidden;
}

.platform-modules-navigation__header {
  align-items: center;
  display: flex;
  gap: var(--innvilo-space-6);
  justify-content: space-between;
  min-height: 4.5rem;
  padding: var(--innvilo-space-5) var(--innvilo-space-7);
}

.platform-modules-navigation__header > div,
.platform-modules-result,
.platform-module-auth > span,
.platform-module-period {
  display: grid;
  gap: var(--innvilo-space-1);
  min-width: 0;
}

.platform-modules-navigation__header > div > span,
.platform-modules-result small,
.platform-module-period small,
.platform-module-auth small {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
}

.platform-modules-navigation__header > div > strong,
.platform-modules-result strong,
.platform-module-auth strong,
.platform-module-hotel strong,
.platform-module-hotel-count strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
}

.platform-modules-panel {
  display: grid;
  gap: var(--innvilo-page-section-gap);
  min-width: 0;
}

.platform-modules-filter.pms-generic-filter {
  border-color: var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-card);
  box-shadow: none;
  margin: 0;
}

body .platform-modules-page > .platform-modules-filter.pms-generic-filter {
  margin-top: 0;
}

.platform-modules-filter .pms-generic-filter__presets {
  background: var(--innvilo-surface-soft);
}

.platform-modules-list__header {
  align-items: center;
  background: var(--innvilo-surface-main);
  border-bottom: 1px solid var(--innvilo-border-default);
  min-height: 5rem;
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
}

.platform-modules-list__title,
.platform-modules-list__tools,
.platform-module-hotel,
.platform-module-hotel-count,
.platform-module-period small {
  align-items: center;
  display: flex;
}

.platform-modules-list__title {
  gap: var(--innvilo-space-4);
  min-width: 0;
}

.platform-modules-list__title > div {
  display: grid;
  gap: var(--innvilo-space-1);
  min-width: 0;
}

.platform-modules-list__icon {
  align-items: center;
  background: var(--innvilo-color-primary-soft);
  border: 1px solid var(--innvilo-border-soft);
  border-radius: var(--innvilo-radius-md);
  color: var(--innvilo-color-primary);
  display: inline-flex;
  flex: 0 0 2.5rem;
  height: 2.5rem;
  justify-content: center;
  width: 2.5rem;
}

.platform-modules-list__header h2 {
  color: var(--innvilo-text-primary);
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-heading);
}

.platform-modules-list__header p {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-label);
  line-height: 1.4;
  margin-top: var(--innvilo-space-1);
}

.platform-modules-list__tools {
  gap: var(--innvilo-space-3);
  justify-content: flex-end;
}

.platform-modules-result {
  border-right: 1px solid var(--innvilo-border-default);
  margin-right: var(--innvilo-space-2);
  min-width: 7rem;
  padding-right: var(--innvilo-space-5);
  text-align: right;
}

body .platform-modules-tabs.dxbl-tabs {
  background: var(--innvilo-surface-soft);
  border-bottom: 0;
  border-top: 1px solid var(--innvilo-border-default);
  padding: var(--innvilo-space-3) var(--innvilo-space-5);
}

body .platform-modules-tabs.dxbl-tabs .dxbl-tabs-item {
  border: 1px solid transparent;
  border-radius: var(--innvilo-radius-md);
  color: var(--innvilo-text-secondary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  min-height: 3.25rem;
  padding-inline: var(--innvilo-space-5);
  transition: background-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), border-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), color var(--innvilo-duration-fast) var(--innvilo-easing-standard);
}

body .platform-modules-tabs.dxbl-tabs .dxbl-tabs-item:hover {
  background: var(--innvilo-surface-main);
  color: var(--innvilo-text-primary);
}

body .platform-modules-tabs.dxbl-tabs .dxbl-tabs-item[aria-selected=true],
body .platform-modules-tabs.dxbl-tabs .dxbl-tabs-item.dxbl-active {
  background: var(--innvilo-surface-main);
  border-color: color-mix(in srgb, var(--innvilo-color-primary) 28%, var(--innvilo-border-default));
  box-shadow: none;
  color: var(--innvilo-color-primary);
}

body .platform-modules-tabs.dxbl-tabs .dxbl-tabs-item:focus-visible {
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring);
  outline: 0;
}

.platform-modules-tab-label {
  align-items: center;
  display: inline-flex;
  gap: var(--innvilo-space-3);
  white-space: nowrap;
}

.platform-modules-tab-label > span {
  align-items: center;
  background: var(--innvilo-surface-muted);
  border: 1px solid var(--innvilo-border-soft);
  border-radius: var(--innvilo-radius-full);
  color: var(--innvilo-text-secondary);
  display: inline-flex;
  font-size: var(--innvilo-font-size-caption);
  justify-content: center;
  min-height: 1.5rem;
  min-width: 1.75rem;
  padding-inline: var(--innvilo-space-2);
}

body .platform-modules-tabs.dxbl-tabs .dxbl-tabs-item[aria-selected=true] .platform-modules-tab-label > span,
body .platform-modules-tabs.dxbl-tabs .dxbl-tabs-item.dxbl-active .platform-modules-tab-label > span {
  background: var(--innvilo-color-primary-soft);
  border-color: color-mix(in srgb, var(--innvilo-color-primary) 22%, var(--innvilo-border-default));
  color: var(--innvilo-color-primary);
}

.platform-modules-desktop-host,
.platform-module-catalog-desktop-host {
  display: block;
  min-width: 0;
  overflow: hidden;
}

.platform-module-identity {
  align-items: center;
  background: transparent;
  border: 0;
  color: inherit;
  display: flex;
  font: inherit;
  gap: var(--innvilo-space-4);
  max-width: 100%;
  min-width: 0;
  padding: 0;
  text-align: left;
}

.platform-module-identity strong {
  align-items: center;
  color: var(--innvilo-text-primary);
  display: flex;
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
  gap: var(--innvilo-space-2);
  overflow-wrap: anywhere;
  white-space: normal;
}

.platform-module-icon {
  align-items: center;
  background: var(--innvilo-color-primary-soft);
  border: 1px solid color-mix(in srgb, var(--innvilo-color-primary) 18%, var(--innvilo-border-soft));
  border-radius: var(--innvilo-radius-md);
  color: var(--innvilo-color-primary);
  display: inline-flex;
  flex: 0 0 2.75rem;
  height: 2.75rem;
  justify-content: center;
  width: 2.75rem;
}

.platform-module-premium {
  align-items: center;
  background: var(--color-warning-soft);
  border: 1px solid var(--color-warning-border);
  border-radius: var(--innvilo-radius-full);
  color: var(--color-warning-text);
  display: inline-flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-micro);
  gap: var(--innvilo-space-1);
  line-height: 1;
  padding: var(--innvilo-space-2) var(--innvilo-space-3);
}

.platform-module-hotel,
.platform-module-hotel-count {
  color: var(--innvilo-text-secondary);
  gap: var(--innvilo-space-3);
  min-width: 0;
}

.platform-module-hotel strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.platform-module-hotel i,
.platform-module-hotel-count i {
  color: var(--innvilo-color-primary);
}

.platform-module-badge {
  align-items: center;
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-full);
  color: var(--innvilo-text-secondary);
  display: inline-flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  gap: var(--innvilo-space-2);
  line-height: 1;
  max-width: 100%;
  min-height: 1.875rem;
  padding: 0 var(--innvilo-space-3);
  white-space: nowrap;
}

.platform-module-health {
  align-items: center;
  color: var(--innvilo-text-secondary);
  display: inline-flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  gap: var(--innvilo-space-3);
  white-space: nowrap;
}

.platform-module-health > i {
  background: var(--innvilo-text-muted);
  border: 0.2rem solid var(--innvilo-surface-main);
  border-radius: var(--innvilo-radius-full);
  box-shadow: 0 0 0 1px var(--innvilo-border-default);
  display: inline-block;
  height: 0.75rem;
  width: 0.75rem;
}

.platform-module-health.is-positive {
  color: var(--color-success);
}

.platform-module-health.is-positive > i {
  background: var(--color-success);
  box-shadow: 0 0 0 1px var(--color-success-border);
}

.platform-module-health.is-warning {
  color: var(--color-warning-text);
}

.platform-module-health.is-warning > i {
  background: var(--color-warning);
  box-shadow: 0 0 0 1px var(--color-warning-border);
}

.platform-module-health.is-danger {
  color: var(--color-error);
}

.platform-module-health.is-danger > i {
  background: var(--color-error);
  box-shadow: 0 0 0 1px var(--color-error-border);
}

.platform-module-period {
  color: var(--innvilo-text-primary);
  font-size: var(--innvilo-font-size-label);
  line-height: 1.35;
}

.platform-module-period small {
  color: var(--color-warning-text);
  gap: var(--innvilo-space-2);
}

.platform-module-auth {
  align-items: center;
  line-height: 1.25;
}

.platform-module-auth > i {
  color: var(--innvilo-color-primary);
}

.platform-module-auth.is-missing > i,
.platform-module-auth.is-missing small {
  color: var(--color-warning-text);
}

.platform-modules-list__tools .dxbl-btn:focus-visible {
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring);
  outline: 0;
}

.platform-modules-empty {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-4);
  justify-content: center;
  min-height: 13rem;
  padding: var(--innvilo-space-8);
}

.platform-modules-empty > div {
  display: grid;
  gap: var(--innvilo-space-1);
  max-width: 30rem;
}

.platform-module-mobile-item,
.platform-module-catalog-mobile-item {
  background: var(--innvilo-surface-main);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-card);
  display: grid;
  gap: var(--innvilo-space-5);
  margin: 0;
  padding: var(--innvilo-space-5);
}

.platform-module-mobile-item:last-child,
.platform-module-catalog-mobile-item:last-child {
  border-bottom: 1px solid var(--innvilo-border-default);
}

.platform-modules-mobile-host,
.platform-module-catalog-mobile-host {
  background: var(--innvilo-surface-soft);
  display: grid;
  gap: var(--innvilo-space-4);
  padding: var(--innvilo-space-4);
}

.platform-module-mobile-item footer,
.platform-module-catalog-mobile-item footer {
  border-top: 1px solid var(--innvilo-border-soft);
  padding-top: var(--innvilo-space-4);
}

.platform-modules-mobile-skeleton {
  display: grid;
  gap: var(--innvilo-space-4);
}

.platform-modules-mobile-skeleton > span:not(.visually-hidden) {
  background: var(--innvilo-surface-main);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-card);
  display: grid;
  gap: var(--innvilo-space-3);
  min-height: 10rem;
  padding: var(--innvilo-space-5);
}

.platform-modules-mobile-skeleton i,
.platform-modules-skeleton span {
  animation: platform-module-skeleton 1.35s ease-in-out infinite;
  background: linear-gradient(100deg, var(--innvilo-surface-muted) 15%, var(--innvilo-surface-soft) 38%, var(--innvilo-surface-muted) 61%);
  background-size: 220% 100%;
  border-radius: var(--innvilo-radius-sm);
  display: block;
  height: 1rem;
  width: 70%;
}

.platform-modules-mobile-skeleton i:first-child {
  height: 2.5rem;
  width: 55%;
}

.platform-modules-mobile-skeleton i:last-child {
  width: 42%;
}

@keyframes platform-module-skeleton {
  from {
    background-position: 115% 0;
  }
  to {
    background-position: -115% 0;
  }
}
.platform-module-secret-action.dxbl-btn,
.platform-module-secret-cancel.dxbl-btn {
  justify-self: start;
}

@media (max-width: 80rem) {
  .platform-modules-navigation__header,
  .platform-modules-list__header {
    align-items: stretch;
    display: grid;
  }
  .platform-modules-list__tools {
    justify-content: flex-start;
  }
  .platform-modules-result {
    margin-right: auto;
    text-align: left;
  }
}
@media (max-width: 64rem) {
  .platform-modules-page {
    gap: var(--innvilo-page-section-gap);
  }
  .platform-modules-list__tools {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
  }
}
@media (max-width: 48rem) {
  .platform-modules-navigation__header,
  .platform-modules-list__header {
    padding: var(--innvilo-space-5);
  }
  .platform-modules-navigation__header .dxbl-btn {
    width: 100%;
  }
  body .platform-modules-tabs.dxbl-tabs {
    padding: var(--innvilo-space-3);
  }
  body .platform-modules-tabs.dxbl-tabs .dxbl-tabs-item {
    min-height: 3rem;
    padding-inline: var(--innvilo-space-3);
  }
  .platform-modules-tab-label {
    gap: var(--innvilo-space-2);
  }
  .platform-modules-list__title {
    align-items: flex-start;
  }
  .platform-modules-list__tools {
    grid-template-columns: minmax(0, 1fr) auto;
  }
  .platform-modules-result {
    border-right: 0;
    grid-column: auto;
    margin: 0;
    padding: 0;
  }
  body .platform-modules-list__tools .platform-modules-column-chooser {
    display: none;
  }
  .platform-modules-list__tools > .dxbl-btn:last-child {
    grid-column: auto;
    width: auto;
  }
  .platform-modules-filter .pms-generic-filter__presets {
    align-items: center;
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
  }
  body .platform-modules-filter .pms-generic-filter__preset.dxbl-btn {
    flex: 0 0 auto;
    width: auto;
  }
  .platform-module-mobile-item,
  .platform-module-catalog-mobile-item {
    background: transparent;
    border: 0;
    border-radius: 0;
  }
  .platform-module-mobile-item:last-child,
  .platform-module-catalog-mobile-item:last-child {
    border-bottom: 0;
  }
  .platform-module-mobile-item > header,
  .platform-module-catalog-mobile-item > header {
    gap: var(--innvilo-space-3);
  }
  .platform-module-mobile-item dl div,
  .platform-module-catalog-mobile-item dl div {
    gap: var(--innvilo-space-2);
    grid-template-columns: minmax(6.75rem, 0.45fr) minmax(0, 1fr);
  }
  .platform-modules-empty {
    align-items: flex-start;
    display: grid;
    justify-items: start;
    min-height: 0;
  }
  .platform-modules-empty .dxbl-btn {
    width: 100%;
  }
}
@media (max-width: 26.875rem) {
  .platform-modules-navigation__header,
  .platform-modules-list__header,
  .platform-module-mobile-item,
  .platform-module-catalog-mobile-item {
    padding: var(--innvilo-space-4);
  }
  .platform-module-mobile-item dl div,
  .platform-module-catalog-mobile-item dl div {
    grid-template-columns: 1fr;
  }
  .platform-module-identity strong {
    align-items: flex-start;
    display: grid;
  }
}
@media (prefers-reduced-motion: reduce) {
  body .platform-modules-tabs.dxbl-tabs .dxbl-tabs-item,
  .platform-modules-mobile-skeleton i,
  .platform-modules-skeleton span,
  .platform-module-connection-test__signal i,
  .platform-module-connection-test.is-running .platform-module-connection-test__node {
    animation: none;
    transition: none;
  }
  .platform-module-connection-test__signal i {
    opacity: 1;
    transform: translateX(50%);
  }
}
.platform-module-schema-guide {
  align-items: flex-start;
  background: var(--color-info-soft);
  border: 1px solid var(--color-info-border);
  border-radius: var(--innvilo-radius-md);
  color: var(--color-info);
  display: flex;
  gap: var(--innvilo-space-4);
  padding: var(--innvilo-space-4) var(--innvilo-space-5);
}

.platform-module-schema-guide > i {
  margin-top: var(--innvilo-space-1);
}

.platform-module-schema-guide > div {
  display: grid;
  gap: var(--innvilo-space-1);
}

.platform-module-schema-guide strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-Bold", Arial, sans-serif;
}

.platform-module-schema-guide span {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-label);
  line-height: 1.45;
}

@media (forced-colors: active) {
  .platform-modules-navigation,
  .platform-modules-list,
  .platform-module-mobile-item,
  .platform-module-catalog-mobile-item {
    border: 1px solid CanvasText;
  }
  .platform-module-health > i {
    background: CanvasText;
    border-color: Canvas;
  }
}
.website-cockpit {
  display: grid;
  gap: var(--innvilo-space-8);
}

.website-button {
  min-height: 2.75rem;
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-md);
  padding: var(--innvilo-space-4) var(--innvilo-space-6);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--innvilo-space-4);
  font: inherit;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), transform var(--innvilo-duration-instant) var(--innvilo-easing-standard);
}

.website-button:active:not(:disabled) {
  transform: translateY(1px);
}

.website-button:focus-visible {
  outline: 3px solid var(--color-primary-focus-ring);
  outline-offset: 2px;
}

.website-button:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}

.website-button--primary {
  background: var(--innvilo-color-primary);
  border-color: var(--innvilo-color-primary);
  color: var(--innvilo-text-inverse);
}

.website-button--primary:hover:not(:disabled) {
  background: var(--innvilo-color-primary-hover);
}

.website-button--quiet {
  background: var(--innvilo-surface-main);
  color: var(--innvilo-text-primary);
}

.website-button--quiet:hover:not(:disabled) {
  background: var(--color-header-hover);
  border-color: var(--innvilo-border-strong);
}

.website-state,
.website-plan-strip,
.website-site-list,
.website-loading {
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-card);
  background: var(--innvilo-surface-main);
}

.website-state {
  min-height: 15rem;
  padding: var(--innvilo-space-9);
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--innvilo-space-7);
}

.website-state__icon {
  width: 3.25rem;
  height: 3.25rem;
  border-radius: var(--innvilo-radius-md);
  display: grid;
  place-items: center;
  background: var(--innvilo-color-primary-soft);
  color: var(--innvilo-color-primary);
  font-size: 1.25rem;
}

.website-state--error .website-state__icon {
  background: var(--color-error-soft);
  color: var(--color-error);
}

.website-state h1, .website-state h2, .website-state p {
  margin: 0;
}

.website-state h1, .website-state h2 {
  color: var(--innvilo-text-primary);
  font-size: var(--innvilo-font-size-title);
}

.website-state p {
  margin-top: var(--innvilo-space-4);
  color: var(--innvilo-text-secondary);
  max-width: 62ch;
}

.website-inline-error {
  color: var(--color-error) !important;
  font-weight: 700;
}

.website-inline-status {
  padding: var(--innvilo-space-5);
  background: var(--innvilo-color-primary-soft);
  color: var(--innvilo-text-primary);
  border-radius: var(--innvilo-radius-md);
}

.website-plan-strip {
  padding: var(--innvilo-space-8);
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(18rem, 0.7fr);
  gap: var(--innvilo-space-8);
}

.website-plan-strip h2, .website-plan-strip p {
  margin: 0;
}

.website-kicker {
  display: block;
  margin-bottom: var(--innvilo-space-3);
  color: var(--innvilo-color-primary);
  font-size: var(--innvilo-font-size-label);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.website-plan-strip p {
  margin-top: var(--innvilo-space-4);
  color: var(--innvilo-text-secondary);
  max-width: 64ch;
}

.website-plan-strip__pro {
  padding-left: var(--innvilo-space-8);
  border-left: 1px solid var(--innvilo-border-default);
  display: grid;
  align-content: center;
  justify-items: start;
  gap: var(--innvilo-space-4);
}

.website-plan-strip__pro > span {
  color: var(--innvilo-text-secondary);
}

.website-plan-strip__pro.is-active {
  color: var(--innvilo-color-primary);
}

.website-site-list {
  overflow: hidden;
}

.website-site-list > header {
  padding: var(--innvilo-space-7) var(--innvilo-space-8);
  border-bottom: 1px solid var(--innvilo-border-default);
}

.website-site-list h2, .website-site-list p {
  margin: 0;
}

.website-site-list p {
  color: var(--innvilo-text-secondary);
}

.website-site-row {
  padding: var(--innvilo-space-6) var(--innvilo-space-8);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: var(--innvilo-space-8);
}

.website-site-row + .website-site-row {
  border-top: 1px solid var(--innvilo-border-soft);
}

.website-site-row > div {
  display: grid;
  gap: var(--innvilo-space-2);
}

.website-site-row span, .website-site-row small {
  color: var(--innvilo-text-secondary);
}

.website-domains {
  margin: 0 var(--innvilo-space-8) var(--innvilo-space-7);
  padding: var(--innvilo-space-6);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-card);
  background: var(--innvilo-surface-muted);
  display: grid;
  gap: var(--innvilo-space-5);
}

.website-domains > header, .website-domain-add, .website-domain-row, .website-domain-row > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--innvilo-space-4);
}

.website-domains h3, .website-domains h4, .website-domains p {
  margin: 0;
}

.website-domains label {
  display: grid;
  gap: var(--innvilo-space-2);
  flex: 1;
  font-weight: 700;
}

.website-domains input {
  min-height: 2.75rem;
  border: 1px solid var(--color-input-border);
  border-radius: var(--innvilo-radius-md);
  padding: var(--innvilo-space-4);
  background: var(--color-input-surface);
  color: var(--innvilo-text-primary);
  font: inherit;
}

.website-domain-token {
  padding: var(--innvilo-space-5);
  border-radius: var(--innvilo-radius-md);
  background: var(--innvilo-color-primary-soft);
  display: grid;
  gap: var(--innvilo-space-3);
}

.website-domain-token dl {
  margin: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--innvilo-space-2) var(--innvilo-space-5);
}

.website-domain-token code {
  overflow-wrap: anywhere;
}

.website-domain-row {
  padding-top: var(--innvilo-space-4);
  border-top: 1px solid var(--innvilo-border-default);
}

.website-domain-row > div:first-child {
  display: grid;
  justify-content: start;
}

.website-loading {
  padding: var(--innvilo-space-9);
  display: grid;
  gap: var(--innvilo-space-5);
}

.website-loading__line, .website-loading__canvas {
  border-radius: var(--innvilo-radius-md);
  background: var(--color-notification-skeleton);
}

.website-loading__line {
  width: 35%;
  height: 1rem;
}

.website-loading__line--wide {
  width: 58%;
  height: 1.5rem;
}

.website-loading__canvas {
  height: 18rem;
  margin-top: var(--innvilo-space-4);
}

.website-editor {
  min-height: calc(100dvh - var(--innvilo-space-8));
  background: var(--innvilo-surface-app);
}

.website-conflict {
  align-items: center;
  background: var(--color-warning-surface);
  border: 1px solid var(--color-warning-border);
  border-radius: var(--innvilo-radius-card);
  bottom: var(--innvilo-space-5);
  box-shadow: var(--innvilo-shadow-floating);
  display: flex;
  gap: var(--innvilo-space-4);
  left: 50%;
  max-width: min(48rem, 100vw - 2rem);
  padding: var(--innvilo-space-5);
  position: fixed;
  transform: translateX(-50%);
  z-index: 1200;
}

.website-conflict div {
  flex: 1;
}

.website-editor-desktop-host {
  display: grid;
  grid-template-rows: auto minmax(38rem, calc(100dvh - 8rem));
  min-height: 100%;
}

.website-editor-mobile-host {
  display: grid;
  gap: var(--innvilo-space-6);
  padding: var(--innvilo-space-5);
}

.website-editor-toolbar {
  min-height: 4.5rem;
  padding: var(--innvilo-space-4) var(--innvilo-space-6);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-card) var(--innvilo-radius-card) 0 0;
  background: var(--innvilo-surface-main);
  display: grid;
  grid-template-columns: minmax(12rem, 1fr) auto minmax(20rem, 1fr);
  align-items: center;
  gap: var(--innvilo-space-6);
}

.website-editor-toolbar__identity, .website-editor-toolbar__actions, .website-editor-toolbar__viewport {
  display: flex;
  align-items: center;
  gap: var(--innvilo-space-4);
}

.website-editor-toolbar__identity a {
  width: 2.5rem;
  height: 2.5rem;
  display: grid;
  place-items: center;
  border-radius: var(--innvilo-radius-md);
  color: var(--innvilo-text-primary);
}

.website-editor-toolbar__identity a:hover {
  background: var(--innvilo-surface-muted);
}

.website-editor-toolbar__identity div {
  display: grid;
}

.website-editor-toolbar__identity span {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-label);
}

.website-editor-toolbar__viewport {
  padding: var(--innvilo-space-2);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-md);
}

.website-editor-toolbar__viewport button, .website-editor-panel__tabs button, .website-editor-blocks button {
  border: 0;
  background: transparent;
  color: var(--innvilo-text-secondary);
  font: inherit;
  cursor: pointer;
}

.website-editor-toolbar__viewport button {
  min-width: 2.75rem;
  min-height: 2.75rem;
  border-radius: var(--innvilo-radius-xs);
}

.website-editor-toolbar__viewport button span {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}

.website-editor-toolbar__viewport button.is-active {
  background: var(--innvilo-color-primary-soft);
  color: var(--innvilo-color-primary);
}

.website-editor-toolbar__actions {
  justify-content: flex-end;
}

.website-save-status {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-label);
}

.website-editor-workbench {
  display: grid;
  grid-template-columns: 17rem minmax(32rem, 1fr) 19rem;
  min-height: 0;
  border: 1px solid var(--innvilo-border-default);
  border-top: 0;
  border-radius: 0 0 var(--innvilo-radius-card) var(--innvilo-radius-card);
  overflow: hidden;
}

.website-editor-panel {
  background: var(--innvilo-surface-main);
  min-width: 0;
  overflow-y: auto;
}

.website-editor-panel--left {
  border-right: 1px solid var(--innvilo-border-default);
}

.website-editor-panel--right {
  border-left: 1px solid var(--innvilo-border-default);
  padding: var(--innvilo-space-6);
  display: grid;
  align-content: start;
  gap: var(--innvilo-space-6);
}

.website-editor-panel__tabs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-bottom: 1px solid var(--innvilo-border-default);
}

.website-editor-panel__tabs button {
  padding: var(--innvilo-space-5) var(--innvilo-space-3);
  border-bottom: 2px solid transparent;
  font-weight: 700;
}

.website-editor-panel__tabs button.is-active {
  color: var(--innvilo-color-primary);
  border-bottom-color: var(--innvilo-color-primary);
}

.website-editor-blocks {
  padding: var(--innvilo-space-6);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--innvilo-space-4);
}

.website-editor-blocks h2, .website-editor-blocks p {
  grid-column: 1/-1;
  margin: 0;
}

.website-editor-blocks p {
  color: var(--innvilo-text-secondary);
}

.website-editor-blocks button {
  min-height: 6rem;
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-md);
  display: grid;
  place-items: center;
  align-content: center;
  gap: var(--innvilo-space-3);
  color: var(--innvilo-text-primary);
}

.website-editor-blocks button:hover {
  background: var(--innvilo-color-primary-soft);
  border-color: var(--innvilo-color-primary);
}

.website-editor-blocks button:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}

.website-editor-blocks small {
  font-size: var(--innvilo-font-size-label);
  color: var(--innvilo-color-primary);
}

.website-editor-pages {
  padding: var(--innvilo-space-5);
  border-bottom: 1px solid var(--innvilo-border-default);
  display: grid;
  gap: var(--innvilo-space-2);
}

.website-editor-pages header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.website-editor-pages h2 {
  margin: 0;
  font-size: var(--innvilo-font-size-heading);
}

.website-editor-pages button {
  border: 1px solid transparent;
  border-radius: var(--innvilo-radius-md);
  padding: var(--innvilo-space-3);
  background: transparent;
  color: var(--innvilo-text-primary);
  text-align: left;
  display: grid;
  cursor: pointer;
}

.website-editor-pages button.is-active {
  border-color: var(--innvilo-color-primary);
  background: var(--innvilo-color-primary-soft);
}

.website-editor-pages small {
  color: var(--innvilo-text-secondary);
}

.website-editor-canvas {
  padding: var(--innvilo-space-8);
  background: var(--innvilo-surface-muted);
  overflow: auto;
}

.website-editor-canvas__frame {
  width: min(100%, 75rem);
  min-height: 100%;
  margin: 0 auto;
  background: var(--innvilo-surface-main);
  border: 1px solid var(--innvilo-border-strong);
  border-radius: var(--innvilo-radius-xs);
  box-shadow: var(--innvilo-shadow-card);
  display: grid;
  place-items: center;
}

.website-editor-canvas__frame iframe {
  width: 100%;
  min-height: 42rem;
  border: 0;
  background: var(--innvilo-surface-main);
}

.website-editor-canvas__frame--tablet {
  max-width: 48rem;
}

.website-editor-canvas__frame--mobile {
  max-width: 24rem;
}

.website-component-list {
  width: min(100%, 75rem);
  margin: 0 auto var(--innvilo-space-4);
  display: grid;
  gap: var(--innvilo-space-2);
}

.website-component-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-md);
  background: var(--innvilo-surface-main);
}

.website-component-row.is-selected {
  border-color: var(--innvilo-color-primary);
}

.website-component-row button {
  min-height: 2.75rem;
  min-width: 2.75rem;
  border: 0;
  background: transparent;
  color: var(--innvilo-text-primary);
  font: inherit;
  cursor: pointer;
}

.website-component-tree {
  display: grid;
  gap: var(--innvilo-space-3);
  list-style: none;
  margin: 0;
  padding: 0;
}

.website-component-tree .website-component-tree {
  border-left: 2px solid var(--innvilo-border-default);
  margin-left: var(--innvilo-space-5);
  padding-left: var(--innvilo-space-4);
}

.website-component-dropzone, .website-container-dropzone, .website-canvas-dropzone {
  align-items: center;
  background: transparent;
  border: 2px dashed var(--innvilo-border-strong);
  border-radius: var(--innvilo-radius-md);
  color: var(--innvilo-text-secondary);
  display: flex;
  justify-content: center;
  min-height: 2.75rem;
  padding: var(--innvilo-space-3);
  width: 100%;
}

.website-component-dropzone {
  min-height: 1.5rem;
  opacity: 0.55;
  padding: 0;
}

.website-component-dropzone:hover, .website-component-dropzone:focus-visible, .website-container-dropzone:hover, .website-container-dropzone:focus-visible, .website-canvas-dropzone:hover, .website-canvas-dropzone:focus-visible {
  background: var(--color-primary-soft);
  border-color: var(--color-primary-border);
  color: var(--color-primary-text);
  opacity: 1;
  outline: 3px solid var(--color-primary-focus-ring);
  outline-offset: 2px;
}

.website-component-row[draggable=true] {
  cursor: grab;
}

.website-editor-responsive {
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-md);
  display: grid;
  gap: var(--innvilo-space-4);
  padding: var(--innvilo-space-4);
}

.website-editor-responsive > div {
  display: grid;
  gap: var(--innvilo-space-3);
  grid-template-columns: 1fr 1fr 1fr;
}

.website-editor-responsive select {
  min-height: 2.75rem;
  width: 100%;
}

.website-component-row > button {
  padding: var(--innvilo-space-3);
  display: grid;
  text-align: left;
}

.website-component-row small {
  color: var(--innvilo-text-secondary);
}

.website-component-row > span {
  display: flex;
}

.website-editor-canvas__empty {
  max-width: 30rem;
  padding: var(--innvilo-space-9);
  text-align: center;
  color: var(--innvilo-text-secondary);
}

.website-editor-canvas__empty > i {
  font-size: 2rem;
  color: var(--innvilo-color-primary);
}

.website-editor-canvas__empty h1 {
  margin: var(--innvilo-space-5) 0 var(--innvilo-space-3);
  color: var(--innvilo-text-primary);
}

.website-editor-canvas__empty p {
  margin: 0 0 var(--innvilo-space-4);
}

.website-editor-canvas__empty span {
  font-size: var(--innvilo-font-size-label);
}

.website-editor-panel--right header h2, .website-editor-panel--right header p {
  margin: 0;
}

.website-editor-panel--right header p {
  color: var(--innvilo-text-secondary);
}

.website-editor-panel--right label {
  display: grid;
  gap: var(--innvilo-space-3);
  color: var(--innvilo-text-primary);
  font-weight: 700;
}

.website-editor-panel--right input {
  min-width: 0;
  min-height: 2.75rem;
  border: 1px solid var(--color-input-border);
  border-radius: var(--innvilo-radius-md);
  padding: var(--innvilo-space-4);
  background: var(--color-input-surface);
  color: var(--innvilo-text-primary);
  font: inherit;
}

.website-editor-panel--right textarea, .website-editor-panel--right select, .website-editor-mobile__preview input, .website-editor-mobile__preview select {
  min-width: 0;
  border: 1px solid var(--color-input-border);
  border-radius: var(--innvilo-radius-md);
  padding: var(--innvilo-space-4);
  background: var(--color-input-surface);
  color: var(--innvilo-text-primary);
  font: inherit;
}

.website-field-help {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-label);
}

.website-editor-panel--right input:focus {
  outline: 3px solid var(--color-primary-focus-ring);
  border-color: var(--innvilo-border-focus);
}

.website-editor-panel--right small {
  color: var(--innvilo-text-secondary);
  font-weight: 400;
}

.website-field-prefix {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  border: 1px solid var(--color-input-border);
  border-radius: var(--innvilo-radius-md);
  overflow: hidden;
}

.website-field-prefix > span {
  padding: 0 var(--innvilo-space-4);
  color: var(--innvilo-text-secondary);
}

.website-field-prefix input {
  border: 0;
  border-left: 1px solid var(--color-input-border);
  border-radius: 0;
}

.website-editor-pro {
  border-top: 1px solid var(--innvilo-border-default);
  padding-top: var(--innvilo-space-6);
  display: grid;
  gap: var(--innvilo-space-4);
}

.website-editor-pro > div {
  display: flex;
  align-items: center;
  gap: var(--innvilo-space-4);
  color: var(--innvilo-color-primary);
}

.website-editor-pro p {
  margin: 0;
  color: var(--innvilo-text-secondary);
}

.website-editor-pro__ready {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-label);
}

@media (max-width: 67.5rem) {
  .website-editor-mobile__header {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: var(--innvilo-space-5);
  }
  .website-editor-mobile__header > a {
    width: 2.75rem;
    height: 2.75rem;
    display: grid;
    place-items: center;
    border: 1px solid var(--innvilo-border-default);
    border-radius: var(--innvilo-radius-md);
    color: var(--innvilo-text-primary);
    background: var(--innvilo-surface-main);
  }
  .website-editor-mobile__header span, .website-editor-mobile__header h1 {
    margin: 0;
  }
  .website-editor-mobile__header span {
    color: var(--innvilo-text-secondary);
    font-size: var(--innvilo-font-size-label);
  }
  .website-editor-mobile__header h1 {
    font-size: var(--innvilo-font-size-heading);
  }
  .website-editor-mobile__status, .website-editor-mobile__preview, .website-editor-mobile__notice {
    border: 1px solid var(--innvilo-border-default);
    border-radius: var(--innvilo-radius-card);
    background: var(--innvilo-surface-main);
    padding: var(--innvilo-space-7);
  }
  .website-editor-mobile__status {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .website-editor-mobile__status > div {
    display: grid;
    gap: var(--innvilo-space-2);
  }
  .website-editor-mobile__status span {
    color: var(--innvilo-text-secondary);
  }
  .website-editor-mobile__status > i {
    color: var(--innvilo-color-primary);
    font-size: 1.5rem;
  }
  .website-editor-mobile__preview {
    display: grid;
    gap: var(--innvilo-space-5);
  }
  .website-editor-mobile__preview h2, .website-editor-mobile__preview p {
    margin: 0;
  }
  .website-editor-mobile__preview p {
    color: var(--innvilo-text-secondary);
  }
  .website-editor-mobile__notice {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: var(--innvilo-space-5);
  }
  .website-editor-mobile__notice > i {
    color: var(--innvilo-color-primary);
  }
  .website-editor-mobile__notice h2, .website-editor-mobile__notice p {
    margin: 0;
  }
  .website-editor-mobile__notice p {
    margin-top: var(--innvilo-space-3);
    color: var(--innvilo-text-secondary);
  }
  .website-editor-mobile__actions {
    position: sticky;
    bottom: var(--innvilo-space-4);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--innvilo-space-4);
    padding: var(--innvilo-space-4);
    background: var(--innvilo-surface-main);
    border: 1px solid var(--innvilo-border-default);
    border-radius: var(--innvilo-radius-card);
    box-shadow: var(--innvilo-shadow-floating);
  }
  .website-plan-strip {
    grid-template-columns: 1fr;
  }
  .website-plan-strip__pro {
    padding: var(--innvilo-space-6) 0 0;
    border-left: 0;
    border-top: 1px solid var(--innvilo-border-default);
  }
  .website-state {
    grid-template-columns: 1fr;
    justify-items: start;
    padding: var(--innvilo-space-7);
  }
  .website-site-row {
    grid-template-columns: 1fr;
    gap: var(--innvilo-space-5);
  }
  .website-site-row .website-button {
    width: 100%;
  }
  .website-domains {
    margin: 0 var(--innvilo-space-4) var(--innvilo-space-5);
  }
  .website-domains > header, .website-domain-add, .website-domain-row, .website-domain-row > div {
    align-items: stretch;
    flex-direction: column;
  }
}
@media (prefers-reduced-motion: reduce) {
  .website-button {
    transition: none;
  }
}
.direct-booking {
  display: grid;
  gap: var(--innvilo-space-6);
}

.direct-booking__panel, .direct-booking__secret {
  background: var(--innvilo-surface-main);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-card);
  box-shadow: var(--innvilo-shadow-card);
  padding: var(--innvilo-space-7);
}

.direct-booking__panel > header {
  align-items: center;
  display: flex;
  justify-content: space-between;
  gap: var(--innvilo-space-5);
}

.direct-booking__panel p {
  color: var(--innvilo-text-secondary);
}

.direct-booking__notice {
  margin: var(--innvilo-space-5) 0 0;
}

.direct-booking__layout {
  align-items: start;
  display: grid;
  gap: var(--innvilo-space-6);
  grid-template-columns: minmax(0, 1.5fr) minmax(19rem, 0.5fr);
}

.direct-booking__form {
  background: var(--innvilo-surface-muted);
  border-radius: var(--innvilo-radius-md);
  display: grid;
  gap: var(--innvilo-space-3);
  margin-top: var(--innvilo-space-5);
  padding: var(--innvilo-space-5);
}

.direct-booking input, .direct-booking textarea {
  background: var(--color-input-surface);
  border: 1px solid var(--color-input-border);
  border-radius: var(--innvilo-radius-md);
  color: var(--innvilo-text-primary);
  font: inherit;
  min-height: 2.75rem;
  padding: var(--innvilo-space-4);
  width: 100%;
}

.direct-booking input:focus-visible, .direct-booking textarea:focus-visible {
  outline: 3px solid var(--color-primary-focus-ring);
  outline-offset: 2px;
}

.direct-booking__form div {
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-3);
}

.direct-booking__panel dl {
  display: grid;
  gap: var(--innvilo-space-3);
}

.direct-booking__panel dl div {
  align-items: baseline;
  border-bottom: 1px solid var(--innvilo-border-default);
  display: flex;
  justify-content: space-between;
  padding-block: var(--innvilo-space-3);
}

.direct-booking__panel dd {
  font-size: 1.1rem;
  font-weight: 800;
}

.direct-booking__secret {
  border-color: var(--color-warning-border);
  display: grid;
  gap: var(--innvilo-space-4);
}

@media (max-width: 67.5rem) {
  .direct-booking__layout {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 47.99rem) {
  .direct-booking__panel > header {
    align-items: stretch;
    flex-direction: column;
  }
  .direct-booking__panel, .direct-booking__secret {
    padding: var(--innvilo-space-5);
  }
}
.website-booking,
.venue-public {
  --public-booking-accent: var(--color-public-booking-forest);
  --public-booking-accent-hover: var(--color-public-booking-forest-hover);
  --public-booking-accent-soft: var(--color-public-booking-forest-soft);
  --public-booking-button-text: var(--color-public-booking-button-text);
  --public-booking-paper: var(--color-public-booking-paper);
  --public-booking-surface: var(--color-public-booking-surface);
  --public-booking-text: var(--color-public-booking-text);
  --public-booking-muted: var(--color-public-booking-muted);
  --public-booking-border: var(--color-public-booking-border);
  --public-booking-control-border: var(--color-public-booking-control-border);
  background: var(--public-booking-paper);
  color: var(--public-booking-text);
  font-family: "Lato-Regular", Arial, sans-serif;
  min-height: 100dvh;
}

.website-booking h1,
.website-booking h2,
.website-booking h3,
.venue-public h1,
.venue-public h2,
.venue-public h3,
.website-booking strong,
.venue-public strong {
  font-family: "Lato-Bold", Arial, sans-serif;
}

.website-booking button,
.venue-public button,
.website-booking input,
.venue-public input,
.venue-public select {
  font: inherit;
}

.website-booking button:focus-visible,
.website-booking a:focus-visible,
.website-booking input:focus-visible,
.venue-public button:focus-visible,
.venue-public a:focus-visible,
.venue-public input:focus-visible,
.venue-public select:focus-visible {
  outline: 3px solid var(--public-booking-accent);
  outline-offset: 3px;
}

.public-booking-trust {
  align-items: stretch;
  background: var(--public-booking-surface);
  border: 1px solid var(--public-booking-border);
  border-radius: 0.75rem 0.75rem 0 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.public-booking-trust span {
  color: var(--public-booking-muted);
  display: grid;
  font-size: 0.875rem;
  gap: 0.25rem;
  line-height: 1.4;
  padding: 1rem 1.25rem;
}

.public-booking-trust span + span {
  border-left: 1px solid var(--public-booking-border);
}

.public-booking-trust strong {
  color: var(--public-booking-text);
}

.public-booking-trust small {
  color: var(--public-booking-muted);
  font-size: 0.8rem;
}

.website-booking__hero,
.venue-public-hero {
  background: var(--public-booking-surface);
  display: grid;
  min-height: 24rem;
  overflow: hidden;
}

.website-booking__hero {
  grid-template-columns: minmax(20rem, 0.9fr) minmax(30rem, 1.1fr);
}

.website-booking__brand,
.venue-public-brand {
  color: var(--public-booking-accent);
  display: inline-grid;
  gap: 0.2rem;
  text-decoration: none;
}

.website-booking__brand > span,
.venue-public-brand > span {
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: 1rem;
  letter-spacing: -0.01em;
}

.website-booking__brand > small,
.venue-public-brand > small {
  color: var(--public-booking-muted);
  font-size: 0.75rem;
  letter-spacing: 0.04em;
}

.website-booking__hero h1,
.venue-public-hero h1 {
  color: var(--public-booking-text);
  font-size: clamp(2.5rem, 4.5vw, 3.5rem);
  letter-spacing: -0.035em;
  line-height: 1.05;
  margin: 1.25rem 0 0;
  max-width: 13ch;
}

.website-booking__hero p,
.venue-public-hero p {
  color: var(--public-booking-muted);
  font-size: 1.125rem;
  line-height: 1.55;
  margin: 1rem 0 0;
  max-width: 30rem;
}

.website-booking__hero img,
.venue-public-hero__visual img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.website-booking__shell,
.venue-public-shell {
  margin: -2rem auto 0;
  max-width: 74rem;
  padding: 0 1.5rem 4rem;
  position: relative;
}

.website-booking__progress,
.venue-public-progress {
  background: var(--public-booking-surface);
  border: 1px solid var(--public-booking-border);
  border-top: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.website-booking__progress span,
.venue-public-progress span {
  border-bottom: 3px solid transparent;
  color: var(--public-booking-muted);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: 0.875rem;
  padding: 1rem;
  text-align: center;
  text-transform: none;
}

.website-booking__progress span.is-reached,
.venue-public-progress span.is-reached {
  border-bottom-color: var(--public-booking-accent);
  box-shadow: none;
  color: var(--public-booking-accent);
}

.website-booking__panel,
.website-booking__state,
.website-booking__success,
.venue-public-panel,
.venue-public-success {
  background: var(--public-booking-surface);
  border: 1px solid var(--public-booking-border);
  border-radius: 0 0 0.75rem 0.75rem;
  border-top: 0;
  min-height: 24rem;
  padding: clamp(1.5rem, 4vw, 3rem);
}

.website-booking__heading,
.venue-public-heading {
  align-items: start;
  display: flex;
  gap: 2rem;
  justify-content: space-between;
  margin-bottom: 2rem;
  position: relative;
}

.website-booking__heading h2,
.website-booking__success h2,
.website-booking__state h2,
.venue-public-heading h2,
.venue-public-success h2 {
  color: var(--public-booking-text);
  font-size: clamp(1.5rem, 3vw, 2rem);
  margin: 0;
}

.website-booking__heading p,
.website-booking__state p,
.website-booking__success p,
.venue-public-heading p,
.venue-public-success p {
  color: var(--public-booking-muted);
  line-height: 1.55;
  margin: 0.5rem 0 0;
  max-width: 44rem;
}

.website-booking__fields,
.venue-public-fields {
  display: grid;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.website-booking__fields {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.website-booking__fields.is-search {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.venue-public-fields {
  grid-template-columns: 1.2fr 0.8fr 0.8fr 0.8fr 1.2fr;
}

.venue-public-fields.is-contact {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.website-booking__fields label,
.venue-public-fields label {
  color: var(--public-booking-text);
  display: grid;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: 0.875rem;
  gap: 0.5rem;
}

.website-booking__fields input,
.venue-public-fields input,
.venue-public-fields select {
  background: var(--public-booking-surface);
  border: 1px solid var(--public-booking-control-border);
  border-radius: 0.75rem;
  color: var(--public-booking-text);
  min-height: 3rem;
  padding: 0.65rem 0.75rem;
  width: 100%;
}

.website-booking__fields input:hover,
.venue-public-fields input:hover,
.venue-public-fields select:hover {
  border-color: var(--public-booking-accent);
}

.website-booking__primary,
.website-booking__secondary,
.website-booking__link,
.venue-public-primary,
.venue-public-heading button,
.venue-public-empty button,
.venue-public-offers footer button {
  border-radius: 0.75rem;
  cursor: pointer;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  min-height: 2.75rem;
  padding: 0.65rem 1.1rem;
  white-space: nowrap;
  transition: background-color 160ms ease-out, border-color 160ms ease-out;
}

.website-booking__primary,
.venue-public-primary,
.venue-public-offers footer button {
  background: var(--public-booking-accent);
  border: 1px solid var(--public-booking-accent);
  color: var(--public-booking-button-text);
}

.website-booking__primary:hover,
.venue-public-primary:hover,
.venue-public-offers footer button:hover {
  background: var(--public-booking-accent-hover);
  border-color: var(--public-booking-accent-hover);
}

.website-booking__primary:active,
.website-booking__secondary:active,
.venue-public-primary:active,
.venue-public-offers footer button:active {
  transform: translateY(1px);
}

.website-booking__primary:disabled,
.venue-public-primary:disabled {
  cursor: wait;
  opacity: 0.65;
}

.website-booking__secondary,
.venue-public-empty button {
  background: transparent;
  border: 1px solid var(--public-booking-border);
  color: var(--public-booking-text);
}

.website-booking__secondary:hover,
.venue-public-empty button:hover {
  background: var(--public-booking-accent-soft);
  border-color: var(--public-booking-accent);
}

.website-booking__link,
.venue-public-heading button {
  background: transparent;
  border: 0;
  color: var(--public-booking-accent);
  min-height: auto;
  padding: 0.35rem;
  position: static;
}

.website-booking__offers,
.venue-public-offers {
  display: grid;
  gap: 1rem;
}

.website-booking__offer,
.venue-public-offers article {
  align-items: stretch;
  border: 1px solid var(--public-booking-border);
  border-radius: 0.75rem;
  display: grid;
  overflow: hidden;
}

.website-booking__offer {
  grid-template-columns: 13rem minmax(0, 1fr) minmax(12rem, auto);
}

.website-booking__offer h3,
.venue-public-offers h3 {
  font-size: 1.25rem;
  margin: 0 0 0.35rem;
}

.website-booking__offer p,
.venue-public-offers p {
  color: var(--public-booking-muted);
  margin: 0 0 0.35rem;
}

.website-booking__offer small,
.venue-public-offers small {
  color: var(--public-booking-muted);
}

.website-booking__price {
  align-content: center;
  border-left: 1px solid var(--public-booking-border);
  display: grid;
  gap: 0.25rem;
  min-width: 12rem;
  padding: 1.25rem;
  text-align: right;
}

.website-booking__price strong {
  font-size: 1.5rem;
}

.website-booking__price span {
  color: var(--public-booking-muted);
  font-size: 0.8rem;
  margin-bottom: 0.5rem;
}

.website-booking__quote,
.venue-public-selection {
  background: var(--public-booking-accent-soft);
  border: 1px solid var(--public-booking-border);
  border-radius: 0.75rem;
  margin-bottom: 1.5rem;
  padding: 1rem 1.25rem;
}

.website-booking__quote {
  align-items: center;
  display: grid;
  gap: 0.35rem;
  grid-template-columns: 1fr auto;
}

.website-booking__quote > span {
  display: grid;
  gap: 0.3rem;
}

.website-booking__quote > strong {
  color: var(--public-booking-accent);
  font-size: 1.4rem;
  grid-row: span 2;
}

.website-booking__quote small,
.venue-public-selection span,
.venue-public-selection small {
  color: var(--public-booking-muted);
}

.website-booking__consent,
.venue-public-choice,
.venue-public-consent {
  align-items: start;
  color: var(--public-booking-muted);
  display: flex;
  gap: 0.75rem;
  line-height: 1.45;
  margin: 1rem 0;
}

.website-booking__consent input,
.venue-public-choice input,
.venue-public-consent input {
  flex: 0 0 auto;
  height: 1.2rem;
  margin-top: 0.1rem;
  width: 1.2rem;
}

.website-booking__actions {
  display: flex;
  gap: 0.75rem;
  justify-content: space-between;
}

.website-booking__error,
.website-booking__validation,
.venue-public-error {
  background: var(--color-error-soft);
  border-left: 4px solid var(--color-error);
  color: var(--color-error);
  margin: 1rem 0;
  padding: 0.8rem 1rem;
}

.website-booking__empty,
.website-booking__state,
.venue-public-empty,
.venue-public-state {
  align-content: center;
  display: grid;
  justify-items: start;
}

.website-booking__empty p,
.venue-public-empty p,
.venue-public-state p {
  color: var(--public-booking-muted);
}

.website-booking__state.is-error,
.venue-public-state.is-error {
  border-top: 4px solid var(--color-error);
}

.website-booking__skeleton,
.venue-public-skeleton,
.venue-public-loading span {
  background: var(--public-booking-border);
  border-radius: 0.75rem;
  display: block;
  height: 1rem;
  margin-bottom: 0.75rem;
  width: min(30rem, 80%);
}

.website-booking__skeleton.is-short,
.venue-public-skeleton.is-short,
.venue-public-loading span:nth-child(2) {
  width: min(20rem, 55%);
}

.venue-public-loading {
  margin-top: 1.5rem;
}

.venue-public-loading p {
  color: var(--public-booking-muted);
  margin: 0;
}

.website-booking__success,
.venue-public-success {
  align-items: start;
  display: grid;
  gap: 1.5rem;
  grid-template-columns: auto 1fr;
}

.website-booking__success dl,
.venue-public-success dl {
  border-top: 1px solid var(--public-booking-border);
  display: grid;
  gap: 1rem;
  grid-column: 1/-1;
  grid-template-columns: repeat(4, 1fr);
  margin: 0.5rem 0 0;
  padding-top: 1.5rem;
}

.website-booking__success dt,
.venue-public-success dt {
  color: var(--public-booking-muted);
  font-size: 0.8rem;
}

.website-booking__success dd,
.venue-public-success dd {
  font-family: "Lato-SemiBold", Arial, sans-serif;
  margin: 0.3rem 0 0;
  overflow-wrap: anywhere;
}

.website-booking__footer,
.venue-public-footer {
  align-items: center;
  color: var(--public-booking-muted);
  display: flex;
  gap: 1.25rem;
  justify-content: center;
  margin: auto;
  max-width: 74rem;
  padding: 0 1.5rem 2.5rem;
}

.website-booking__footer nav,
.venue-public-footer nav {
  display: flex;
  gap: 1rem;
}

.website-booking__footer a,
.venue-public-footer a {
  color: var(--public-booking-accent);
}

.venue-public-hero {
  grid-template-columns: minmax(20rem, 0.85fr) minmax(30rem, 1.15fr);
}

.venue-public-hero__copy {
  align-self: center;
  padding: 3rem clamp(1.5rem, 6vw, 5rem);
}

.venue-public-hero__visual {
  margin: 0;
  min-height: 24rem;
}

.venue-public-shell {
  margin-top: -2rem;
}

.venue-public-state {
  background: var(--public-booking-surface);
  border: 1px solid var(--public-booking-border);
  border-radius: 0.75rem;
  min-height: 18rem;
  padding: clamp(1.5rem, 4vw, 3rem);
}

.venue-public-state h2 {
  font-size: 2rem;
  margin: 0;
}

.venue-public-search-form {
  display: grid;
}

.venue-public-primary {
  justify-self: start;
  margin-top: 0;
}

.venue-public-offers article {
  grid-template-columns: 14rem minmax(0, 1fr) 11rem;
}

.venue-public-offer-visual {
  background: var(--public-booking-paper);
  color: var(--public-booking-text);
  display: grid;
  grid-template-rows: 1fr auto;
  min-height: 11rem;
}

.venue-public-offer-visual img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.venue-public-offer-visual span {
  color: var(--public-booking-muted);
  font-size: 0.8rem;
  padding: 0.6rem 0.8rem;
}

.venue-public-offers article > .venue-public-offer-copy,
.venue-public-offers footer {
  align-content: center;
  display: grid;
  padding: 1.25rem;
}

.venue-public-offers footer {
  align-items: initial;
  border-left: 1px solid var(--public-booking-border);
  justify-items: end;
}

.venue-public-offers footer strong {
  font-size: 1.35rem;
}

.venue-public-offers footer > span {
  color: var(--public-booking-muted);
  font-size: 0.8rem;
}

.venue-public-offers footer button {
  margin-top: 0.75rem;
}

.venue-public-selection {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.venue-public-selection > div,
.venue-public-choice > span {
  display: grid;
  gap: 0.25rem;
}

.venue-public-empty {
  border: 1px dashed var(--public-booking-border);
  border-radius: 0.75rem;
  padding: 2rem;
  text-align: left;
}

.venue-public-success > i {
  background: transparent;
  border-radius: 0;
  color: var(--public-booking-accent);
  display: inline-block;
  font-size: 1.5rem;
  height: auto;
  padding-top: 0.25rem;
  width: auto;
}

.venue-public-success > div > span {
  color: var(--public-booking-accent);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: 0.8rem;
  text-transform: none;
}

.venue-public-success dl div {
  border-top: 0;
  padding: 0;
}

@media (prefers-color-scheme: dark) {
  .website-booking,
  .venue-public {
    --public-booking-paper: var(--color-public-booking-dark-paper);
    --public-booking-surface: var(--color-public-booking-dark-surface);
    --public-booking-text: var(--color-public-booking-dark-text);
    --public-booking-muted: var(--color-public-booking-dark-muted);
    --public-booking-border: var(--color-public-booking-dark-border);
    --public-booking-control-border: var(--color-public-booking-dark-control-border);
    --public-booking-accent: var(--color-public-booking-dark-forest);
    --public-booking-accent-hover: var(--color-public-booking-dark-forest-hover);
    --public-booking-accent-soft: var(--color-public-booking-dark-forest-soft);
    --public-booking-button-text: var(--color-public-booking-dark-button-text);
  }
}
@media (min-width: 768px) and (max-width: 1100px) {
  .website-booking__fields.is-search {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .venue-public-fields {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .venue-public-fields label:last-child {
    grid-column: span 2;
  }
}
@media (max-width: 767px) {
  .website-booking__hero,
  .venue-public-hero {
    display: block;
    min-height: auto;
  }
  .website-booking__hero h1,
  .venue-public-hero h1 {
    font-size: 2rem;
    margin-top: 1rem;
    max-width: 100%;
  }
  .website-booking__hero p,
  .venue-public-hero p {
    font-size: 1rem;
  }
  .website-booking__hero img,
  .venue-public-hero__visual img {
    height: 9rem;
    min-height: 0;
  }
  .venue-public-hero {
    padding: 0;
  }
  .venue-public-brand {
    padding: 1.25rem 1.25rem 0;
  }
  .venue-public-hero__visual {
    min-height: 0;
  }
  .website-booking__shell,
  .venue-public-shell {
    margin: 0;
    padding: 0 0 2rem;
  }
  .public-booking-trust {
    border-left: 0;
    border-radius: 0;
    border-right: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .public-booking-trust span {
    font-size: 0.75rem;
    padding: 0.7rem 0.5rem;
  }
  .public-booking-trust span + span {
    border-left: 1px solid var(--public-booking-border);
  }
  .public-booking-trust small {
    display: none;
  }
  .website-booking__progress,
  .venue-public-progress {
    border-left: 0;
    border-right: 0;
  }
  .website-booking__progress span,
  .venue-public-progress span {
    font-size: 0.75rem;
    padding: 0.8rem 0.25rem;
  }
  .website-booking__panel,
  .website-booking__state,
  .website-booking__success,
  .venue-public-panel,
  .venue-public-success,
  .venue-public-state {
    border-left: 0;
    border-radius: 0;
    border-right: 0;
    min-height: 20rem;
    padding: 1.5rem 1.1rem;
  }
  .website-booking__heading,
  .venue-public-heading {
    display: grid;
    gap: 0.5rem;
  }
  .website-booking__fields,
  .venue-public-fields,
  .venue-public-fields.is-contact {
    grid-template-columns: 1fr;
  }
  .website-booking__fields.is-search,
  .venue-public-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .venue-public-fields label:last-child {
    grid-column: 1/-1;
  }
  .website-booking__primary,
  .venue-public-primary {
    width: 100%;
  }
  .website-booking__offer,
  .venue-public-offers article {
    grid-template-columns: 1fr;
  }
  .website-booking__price,
  .venue-public-offers footer {
    border-left: 0;
    border-top: 1px solid var(--public-booking-border);
    justify-items: stretch;
    min-width: 0;
    text-align: left;
  }
  .website-booking__quote {
    grid-template-columns: 1fr;
  }
  .website-booking__quote strong {
    grid-row: auto;
  }
  .website-booking__actions {
    display: grid;
  }
  .website-booking__actions .website-booking__primary {
    grid-row: 1;
  }
  .venue-public-selection {
    align-items: start;
    flex-direction: column;
    gap: 0.75rem;
  }
  .website-booking__success dl,
  .venue-public-success dl {
    grid-template-columns: 1fr 1fr;
  }
  .website-booking__footer,
  .venue-public-footer {
    align-items: start;
    flex-direction: column;
  }
  .venue-public-hero__copy {
    padding: 1.5rem 1.25rem;
    padding-block: 1.25rem;
  }
  .venue-public-hero h1 {
    font-size: 1.75rem;
  }
  .venue-public-hero p {
    line-height: 1.4;
    margin-top: 0.5rem;
  }
  .venue-public-hero__visual img {
    height: 8rem;
  }
  .venue-public-panel {
    padding-block: 1rem;
  }
  .venue-public-heading {
    margin-bottom: 1rem;
  }
  .venue-public-heading p {
    line-height: 1.4;
  }
  .venue-public-fields {
    gap: 0.5rem;
    margin-bottom: 1rem;
  }
  .venue-public-fields label {
    gap: 0.25rem;
  }
  .venue-public-fields input,
  .venue-public-fields select {
    min-height: 2.75rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .website-booking *,
  .website-booking *::before,
  .website-booking *::after,
  .venue-public *,
  .venue-public *::before,
  .venue-public *::after {
    animation: none !important;
    scroll-behavior: auto !important;
    transition: none !important;
  }
}
body .revenue-control-tabs.dxbl-tabs {
  background: transparent;
  border: 0;
  font-family: "Lato-Regular", Arial, sans-serif;
  min-width: 0;
  padding: 0;
}

body .revenue-control-tabs.dxbl-tabs .dxbl-tabs-item {
  border: 1px solid transparent;
  border-radius: var(--innvilo-radius-sm);
  color: var(--innvilo-text-secondary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  min-height: 2.75rem;
  padding-inline: var(--innvilo-space-5);
  transition: background-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), border-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), color var(--innvilo-duration-fast) var(--innvilo-easing-standard);
}

body .revenue-control-tabs.dxbl-tabs .dxbl-tabs-item:hover {
  background: var(--innvilo-surface-muted);
  color: var(--innvilo-text-primary);
}

body .revenue-control-tabs.dxbl-tabs .dxbl-tabs-item[aria-selected=true],
body .revenue-control-tabs.dxbl-tabs .dxbl-tabs-item.dxbl-active {
  background: var(--innvilo-color-primary-soft);
  border-color: color-mix(in srgb, var(--innvilo-color-primary) 28%, var(--innvilo-border-soft));
  color: var(--innvilo-color-primary);
}

body .revenue-control-tabs.dxbl-tabs .dxbl-tabs-item:focus-visible,
body .revenue-cell.dxbl-btn:focus-visible,
body .revenue-cell-menu.dxbl-btn:focus-visible {
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring);
  outline: 0;
}

body .revenue-cell.dxbl-btn {
  align-items: stretch;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  box-sizing: border-box;
  color: var(--innvilo-text-primary);
  cursor: pointer;
  display: grid;
  font-family: "Lato-Regular", Arial, sans-serif;
  gap: var(--innvilo-space-2);
  justify-content: stretch;
  max-width: 100%;
  min-height: 5.5rem;
  overflow: hidden;
  padding: var(--innvilo-space-4) 2.65rem var(--innvilo-space-4) var(--innvilo-space-4);
  text-align: left;
  width: 100%;
}

body .revenue-cell.dxbl-btn .dxbl-btn-caption {
  display: contents;
}

body .revenue-cell.dxbl-btn:hover {
  background: var(--innvilo-color-primary-subtle);
}

body .revenue-cell-menu.dxbl-btn {
  background: transparent;
  border: 0;
  border-radius: var(--innvilo-radius-sm);
  color: var(--innvilo-text-secondary);
  min-height: 2rem;
  min-width: 2rem;
  padding: 0;
}

body .revenue-cell-menu.dxbl-btn:hover {
  background: var(--innvilo-surface-muted);
  color: var(--innvilo-text-primary);
}

body .demand-calendar.dxbl-scheduler {
  border: 0;
  color: var(--innvilo-text-primary);
  font-family: "Lato-Regular", Arial, sans-serif;
  min-height: 37rem;
}

body .demand-calendar .dxbl-scheduler-toolbar,
body .demand-calendar .dxbl-scheduler-header-panel,
body .demand-calendar .dxbl-scheduler-all-day-area {
  background: var(--innvilo-surface-muted);
}

body .demand-calendar .dxbl-scheduler-date-header,
body .demand-calendar .dxbl-scheduler-cell,
body .demand-calendar .dxbl-scheduler-time-cell {
  border-color: var(--innvilo-border-soft);
}

body .demand-calendar .dxbl-scheduler-date-header {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
}

body .demand-calendar .dxbl-scheduler-apt {
  border-radius: var(--innvilo-radius-sm);
  font-family: "Lato-SemiBold", Arial, sans-serif;
}

@media (max-width: 47.9375rem) {
  body .revenue-control-tabs.dxbl-tabs .dxbl-tabs-item {
    min-height: 3rem;
    padding-inline: var(--innvilo-space-4);
  }
}
@media (prefers-reduced-motion: reduce) {
  body .revenue-control-tabs.dxbl-tabs .dxbl-tabs-item {
    transition: none;
  }
}
/* Seitenrhythmus der Reservierungsmaske: Kopf, Reiseband, Arbeitsbereich-Leiste, Reiter und Inhalt stehen
  als Bloecke untereinander, getrennt durch den Blockabstand der Arbeitslisten. */
.reservation-workspace {
  background: transparent;
  color: var(--color-text);
  align-content: start;
  display: grid;
  gap: var(--innvilo-page-section-gap);
  max-width: var(--innvilo-content-max);
  min-height: 100dvh;
  min-width: 0;
  padding-bottom: 2.5rem;
}

@media (max-width: 61.9375rem) {
  .reservation-workspace {
    gap: var(--innvilo-space-8);
  }
}
.reservation-workspace--loading {
  display: grid;
  gap: var(--innvilo-page-hero-gap);
}

.workspace-module__header span {
  color: var(--color-text-subtle);
  display: block;
  font-size: var(--innvilo-font-size-label);
  font-weight: 700;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.reservation-status {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 0.9rem;
}

/* Breadcrumb und Kopf von PmsPageHead sind Geschwister und rechnen mit dem Blockabstand der Seite; der
   Wrapper muss ihn deshalb selbst führen, sonst zieht der negative Rand der Breadcrumb den Titel hoch. */
.reservation-workspace-head {
  display: grid;
  gap: var(--innvilo-page-section-gap);
  min-width: 0;
}

@media (max-width: 61.9375rem) {
  .reservation-workspace-head {
    gap: var(--innvilo-space-8);
  }
}
/* Reiterleiste: unterstrichene Reiter stehen direkt auf der Seite, ohne eigene Flaeche darum. Das
   waagerechte Scrollen fuehrt DxTabs selbst (ScrollMode.Auto); ein eigener Overflow-Container wuerde die
   Leiste auf die Rahmenlinie zusammenfallen lassen. Die DevExpress-Haken dazu liegen in global.scss. */
.reservation-workspace__tabstrip {
  border-bottom: 1px solid var(--innvilo-border-default);
  min-width: 0;
}

.reservation-workspace__content {
  animation: reservation-content-enter var(--innvilo-duration-fast) var(--innvilo-easing-decelerate) both;
  display: block;
  min-width: 0;
}

.reservation-stay-grid,
.reservation-finance,
.reservation-journal,
.reservation-internal-grid {
  display: grid;
  gap: var(--innvilo-page-hero-gap);
}

.reservation-status-grid {
  background: var(--color-surface);
  border: 0;
  border-radius: var(--innvilo-radius-md);
  box-shadow: none;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  overflow: hidden;
}

.reservation-status-card {
  align-items: center;
  background: var(--color-surface);
  border: 0;
  border-left: 1px solid var(--color-border);
  border-radius: 0;
  display: flex;
  gap: 0.75rem;
  min-height: 5.25rem;
  padding: 0.85rem 1rem;
}

.reservation-status-card:nth-child(n) {
  background: var(--color-surface);
}

.reservation-status-card:first-child {
  border-left: 0;
}

.reservation-status-card__icon,
.workspace-list-card__icon {
  align-items: center;
  background: var(--color-action-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--innvilo-radius-xs);
  color: var(--color-info);
  display: inline-flex;
  flex: 0 0 auto;
  height: 2.25rem;
  justify-content: center;
  width: 2.25rem;
}

.reservation-status-card__icon.is-success {
  background: var(--color-success-soft);
  color: var(--color-success);
}

.reservation-status-card__icon.is-warning {
  background: var(--color-warning-soft);
  color: var(--color-warning-text);
}

.reservation-status-card > div:last-child {
  display: grid;
  min-width: 0;
}

.reservation-status-card span,
.reservation-status-card small {
  color: var(--color-text-muted);
  font-size: var(--innvilo-font-size-label);
}

.workspace-module {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--innvilo-radius-md);
  box-shadow: none;
  padding: 1.15rem 1.25rem;
}

/* Die Basisklasse ist ein 3-Spalten-Grid; die Dokumentkarte hat vier Zellen
   (Icon, Text, Status, Aktionen), die Aktionszeile liegt buendig unter dem Text. */
.document-center__card {
  align-items: start;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--innvilo-radius-md);
  border-top: 1px solid var(--color-border);
  grid-template-columns: auto minmax(0, 1fr) auto;
  padding: 0.85rem 1rem;
}

.document-center__copy {
  display: grid;
  gap: 0.2rem;
  min-width: 0;
}

.document-center__copy > span {
  color: var(--color-text-muted);
  font-size: var(--innvilo-font-size-label);
  overflow-wrap: anywhere;
  white-space: normal;
}

.document-center__reason {
  align-items: baseline;
  color: var(--color-text-muted);
  display: inline-flex;
  font-size: var(--innvilo-font-size-label);
  font-style: italic;
  gap: 0.35rem;
}

.document-center__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  grid-column: 2/-1;
  justify-content: flex-start;
}

.document-center__card .workspace-list-card__icon.is-inactive {
  background: var(--color-error-surface);
  color: var(--color-error);
}

.document-center__danger.dxbl-btn {
  color: var(--color-error);
}

.invoice-lifecycle-dialog,
.credit-note-dialog {
  display: grid;
  gap: 1rem;
}

.invoice-lifecycle-dialog__summary {
  margin: 0;
}

.reservation-details-dialog {
  display: grid;
  gap: 1rem;
}

.reservation-details-dialog__identity {
  align-items: center;
  background: var(--color-surface-soft);
  border: 1px solid var(--color-border-strong);
  border-radius: var(--innvilo-radius-md);
  display: flex;
  gap: 0.85rem;
  padding: 0.75rem 1rem;
}

.reservation-details-dialog__identity > div {
  display: grid;
  flex: 1 1 auto;
  gap: 0.1rem;
  min-width: 0;
}

.reservation-details-dialog__identity strong {
  font-family: "Lato-Bold", Arial, sans-serif;
}

.reservation-details-dialog__identity span {
  color: var(--color-text-muted);
  font-size: var(--innvilo-font-size-label);
}

.reservation-details-dialog__avatar {
  align-items: center;
  background: var(--color-primary);
  border-radius: var(--innvilo-radius-full);
  color: var(--color-surface);
  display: inline-flex;
  flex: 0 0 auto;
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: 0.85rem;
  height: 2.5rem;
  justify-content: center;
  width: 2.5rem;
}

.reservation-details-dialog__section {
  display: grid;
  gap: 1rem;
}

.reservation-details-dialog__facts {
  display: grid;
  gap: 0.5rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
}

.reservation-details-dialog__facts > div {
  background: var(--color-surface-soft);
  border: 1px solid var(--color-border);
  border-radius: var(--innvilo-radius-md);
  display: grid;
  gap: 0.2rem;
  padding: 0.6rem 0.8rem;
}

.reservation-details-dialog__facts > div.is-changed {
  background: var(--color-warning-soft);
  border-color: var(--color-warning);
}

.reservation-details-dialog__facts dt {
  color: var(--color-text-muted);
  font-size: var(--innvilo-font-size-label);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  text-transform: uppercase;
}

.reservation-details-dialog__facts dd {
  font-family: "Lato-SemiBold", Arial, sans-serif;
  margin: 0;
}

@media (max-width: 640px) {
  .reservation-details-dialog__facts {
    grid-template-columns: 1fr;
  }
  .reservation-details-dialog__identity {
    align-items: flex-start;
    flex-direction: column;
  }
  .document-center__actions {
    justify-content: flex-start;
    margin-left: 0;
  }
}
.workspace-module__header {
  align-items: center;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-bottom: 1rem;
}

.workspace-module__header h2 {
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: 1.125rem;
  margin: 0.15rem 0 0;
}

.workspace-module__description {
  color: var(--color-text-muted);
  line-height: 1.55;
  margin: 0;
  max-width: 62rem;
}

.group-checkin-dialog {
  display: grid;
  gap: 1rem;
}

.group-checkin-dialog__stays {
  display: grid;
  gap: 0.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.group-checkin-dialog__stay {
  align-items: center;
  background: var(--color-surface-soft);
  border: 1px solid var(--color-border);
  border-radius: var(--innvilo-radius-md);
  display: flex;
  gap: 0.75rem;
  padding: 0.6rem 0.8rem;
}

.group-checkin-dialog__stay.is-success {
  background: var(--color-success-soft);
  border-color: var(--color-success-border);
}

.group-checkin-dialog__stay.is-failed {
  background: var(--color-warning-soft);
  border-color: var(--color-warning);
}

.group-checkin-dialog__stay > div {
  display: grid;
  gap: 0.1rem;
  min-width: 0;
}

.group-checkin-dialog__stay span:not(.group-checkin-dialog__stay-icon) {
  color: var(--color-text-muted);
  font-size: var(--innvilo-font-size-label);
}

.group-checkin-dialog__stay-icon {
  align-items: center;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--innvilo-radius-full);
  display: inline-flex;
  flex: 0 0 auto;
  height: 2rem;
  justify-content: center;
  width: 2rem;
}

.group-checkin-dialog__stay.is-success .group-checkin-dialog__stay-icon {
  color: var(--color-success);
}

.group-checkin-dialog__stay.is-failed .group-checkin-dialog__stay-icon {
  color: var(--color-warning-text);
}

.group-checkin-dialog__stay > .dx-app-button {
  flex: 0 0 auto;
  margin-left: auto;
}

.group-checkin-dialog__flow-bar {
  align-items: center;
  border-bottom: 1px solid var(--color-border);
  display: flex;
  gap: 0.75rem;
  justify-content: space-between;
  padding-bottom: 0.75rem;
}

.group-checkin-dialog__flow-progress {
  color: var(--color-text-muted);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: 0.85rem;
}

.group-checkin-dialog__status {
  align-items: baseline;
  background: var(--color-surface-soft);
  border: 1px solid var(--color-border);
  border-radius: var(--innvilo-radius-md);
  display: flex;
  gap: 0.75rem;
  padding: 0.6rem 0.8rem;
}

.group-checkin-dialog__status strong {
  font-family: "Lato-Bold", Arial, sans-serif;
}

.group-checkin-dialog__status span {
  color: var(--color-text-muted);
  font-size: 0.85rem;
}

.group-checkin-dialog__stay-error {
  color: var(--color-warning-text);
  font-size: var(--innvilo-font-size-label);
}

.group-checkin-dialog__batch-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: flex-end;
}

.stay-table,
.workspace-card-list,
.workspace-timeline {
  display: grid;
  gap: 0.5rem;
}

.stay-table__row,
.workspace-list-card {
  align-items: center;
  border-top: 1px solid var(--color-border);
  display: grid;
  gap: 1rem;
  grid-template-columns: minmax(8rem, 0.65fr) minmax(12rem, 1fr) auto;
  padding: 0.75rem 0;
}

.stay-table__row > div,
.workspace-list-card > div:nth-child(2) {
  display: grid;
  min-width: 0;
}

.stay-table__row span,
.workspace-list-card span {
  color: var(--color-text-muted);
  font-size: 0.82rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.workspace-list-card {
  grid-template-columns: auto minmax(0, 1fr) auto;
}

.workspace-service-card {
  --workspace-service-tone: var(--color-primary);
  align-items: center;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--innvilo-radius-md);
  display: grid;
  gap: 1rem;
  grid-template-columns: auto minmax(0, 1fr) auto;
  min-height: 5.25rem;
  padding: 0.85rem 1rem;
  transition: border-color var(--innvilo-duration-fast) var(--innvilo-easing-standard);
}

.workspace-service-card:hover {
  border-color: color-mix(in srgb, var(--color-primary) 38%, var(--color-border));
}

.workspace-service-card.is-breakfast,
.workspace-service-card.is-parking,
.workspace-service-card.is-spa,
.workspace-service-card.is-pet,
.workspace-service-card.is-transfer,
.workspace-service-card.is-time {
  --workspace-service-tone: var(--color-primary);
}

.workspace-service-card__icon {
  align-items: center;
  background: color-mix(in srgb, var(--workspace-service-tone) 13%, var(--color-surface));
  border: 1px solid color-mix(in srgb, var(--workspace-service-tone) 25%, transparent);
  border-radius: var(--innvilo-radius-sm);
  color: var(--workspace-service-tone);
  display: inline-flex;
  font-size: 1.1rem;
  height: 2.75rem;
  justify-content: center;
  width: 2.75rem;
}

.workspace-service-card__copy {
  display: grid;
  gap: 0.22rem;
  min-width: 0;
}

.workspace-service-card__copy > strong {
  color: var(--color-text);
  font-family: "Lato-SemiBold", Arial, sans-serif;
}

.workspace-service-card__copy > span {
  align-items: center;
  color: var(--color-text-muted);
  display: inline-flex;
  font-size: var(--innvilo-font-size-label);
  gap: 0.4rem;
}

.workspace-service-card__copy i {
  color: var(--workspace-service-tone);
  width: 0.9rem;
}

.workspace-service-card__amount {
  display: grid;
  gap: 0.15rem;
  justify-items: end;
  text-align: right;
}

.workspace-service-card__amount span {
  color: var(--color-text-subtle);
  font-size: var(--innvilo-font-size-label);
}

.workspace-service-card__amount strong {
  color: var(--color-text);
  white-space: nowrap;
}

.workspace-prerequisites,
.workspace-integration-notice {
  background: var(--color-warning-soft);
  border: 1px solid var(--color-warning-border);
  border-radius: var(--radius-sm);
  color: var(--color-warning-text);
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem 1rem;
  margin-top: 1rem;
  padding: 0.75rem 1rem;
}

.workspace-prerequisites span,
.workspace-integration-notice {
  align-items: center;
  display: flex;
  gap: 0.4rem;
}

.financial-summary {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--innvilo-radius-md);
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  overflow: hidden;
}

.financial-summary__metric {
  background: transparent;
  border: 0;
  border-left: 1px solid var(--color-border);
  border-radius: 0;
  display: grid;
  gap: 0.25rem;
  padding: 0.85rem 1rem;
}

.financial-summary__metric:first-child {
  border-left: 0;
}

.financial-summary__metric span {
  color: var(--color-text-muted);
  font-size: 0.78rem;
}

.financial-summary__metric span i {
  margin-right: 0.4rem;
}

.financial-summary__metric.is-positive strong {
  color: var(--color-success);
}

.financial-summary__metric.is-warning strong {
  color: var(--color-warning-text);
}

.workspace-filter-pills {
  display: flex;
  gap: 0.35rem;
  margin: -0.25rem 0 1rem;
  overflow-x: auto;
  padding-bottom: 0.25rem;
}

.workspace-filter-pill.dxbl-btn {
  border-radius: 999px;
  min-height: 2rem;
  white-space: nowrap;
}

.workspace-filter-pill.is-active.dxbl-btn {
  background: var(--color-primary);
  color: var(--color-surface);
}

.workspace-timeline__item {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: auto minmax(0, 1fr);
}

.workspace-timeline__marker {
  align-items: center;
  background: var(--color-action-bg);
  border-radius: 50%;
  color: var(--color-info);
  display: inline-flex;
  height: 2.25rem;
  justify-content: center;
  width: 2.25rem;
}

.workspace-timeline__content {
  border-bottom: 1px solid var(--color-border);
  min-width: 0;
  padding: 0.25rem 0 1rem;
}

.workspace-timeline__content header,
.workspace-timeline__content footer {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  justify-content: space-between;
}

.workspace-timeline__content p {
  color: var(--color-text-muted);
  margin: 0.45rem 0;
}

.workspace-timeline__content footer {
  color: var(--color-text-subtle);
  font-size: var(--innvilo-font-size-label);
  justify-content: flex-start;
}

.workspace-timeline__content code {
  overflow-wrap: anywhere;
}

.workspace-timeline--audit {
  gap: 0;
  padding-block: 0.25rem;
}

.workspace-audit-event {
  --workspace-audit-tone: var(--color-primary);
  display: grid;
  grid-template-columns: 3rem minmax(0, 1fr);
  min-width: 0;
}

.workspace-audit-event.is-finanzen,
.workspace-audit-event.is-zimmer,
.workspace-audit-event.is-kommunikation,
.workspace-audit-event.is-system {
  --workspace-audit-tone: var(--color-primary);
}

.workspace-audit-event__rail {
  align-items: flex-start;
  display: flex;
  justify-content: center;
  position: relative;
}

.workspace-audit-event__rail::after {
  background: color-mix(in srgb, var(--workspace-audit-tone) 24%, var(--color-border));
  content: "";
  inset: 2.7rem auto 0;
  position: absolute;
  width: 2px;
}

.workspace-audit-event:last-child .workspace-audit-event__rail::after {
  display: none;
}

.workspace-audit-event__rail > span {
  align-items: center;
  background: color-mix(in srgb, var(--workspace-audit-tone) 13%, var(--color-surface));
  border: 1px solid color-mix(in srgb, var(--workspace-audit-tone) 32%, var(--color-border));
  border-radius: 50%;
  color: var(--workspace-audit-tone);
  display: inline-flex;
  height: 2.35rem;
  justify-content: center;
  position: relative;
  width: 2.35rem;
  z-index: 1;
}

.workspace-audit-event__content {
  background: color-mix(in srgb, var(--workspace-audit-tone) 3%, var(--color-surface));
  border: 1px solid color-mix(in srgb, var(--workspace-audit-tone) 12%, var(--color-border));
  border-radius: var(--innvilo-radius-md);
  display: grid;
  gap: 0.65rem;
  margin-bottom: 0.85rem;
  min-width: 0;
  padding: 0.85rem 1rem;
}

.workspace-audit-event__content > header {
  align-items: flex-start;
  display: flex;
  gap: 0.75rem;
  justify-content: space-between;
}

.workspace-audit-event__content > header > div {
  display: grid;
  gap: 0.15rem;
}

.workspace-audit-event__content > header span {
  color: var(--color-text-subtle);
  font-size: var(--innvilo-font-size-label);
}

.workspace-audit-event__content > p {
  color: var(--color-text-muted);
  line-height: 1.45;
  margin: 0;
  overflow-wrap: anywhere;
}

.workspace-audit-event__content > footer {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 1rem;
}

.workspace-audit-event__content > footer > span {
  align-items: center;
  color: var(--color-text-subtle);
  display: inline-flex;
  font-size: var(--innvilo-font-size-label);
  gap: 0.38rem;
}

.workspace-audit-event__content > footer i {
  color: var(--workspace-audit-tone);
}

.workspace-audit-event__metadata {
  align-items: flex-start;
  background: var(--color-surface-soft);
  border-radius: var(--innvilo-radius-xs);
  color: var(--color-text-subtle);
  display: flex;
  font-size: var(--innvilo-font-size-label);
  gap: 0.5rem;
  padding: 0.55rem 0.65rem;
}

.workspace-audit-event__metadata code {
  color: inherit;
  overflow-wrap: anywhere;
}

.workspace-empty {
  align-items: center;
  color: var(--color-text-muted);
  display: grid;
  gap: 0.25rem;
  justify-items: center;
  min-height: 8rem;
  padding: 1.25rem;
  text-align: center;
}

.reservation-area-error {
  align-items: center;
  background: var(--color-surface);
  border: 1px solid var(--color-warning-border);
  border-left: 0.25rem solid var(--color-warning);
  border-radius: var(--innvilo-radius-md);
  display: grid;
  gap: 1rem;
  grid-template-columns: auto minmax(0, 1fr) auto;
  padding: 1rem 1.25rem;
}

.reservation-area-error > i {
  color: var(--color-warning-text);
  font-size: 1.25rem;
}

.reservation-area-error > div {
  display: grid;
  gap: 0.2rem;
}

.reservation-area-error span {
  color: var(--color-text-muted);
}

.reservation-dialog {
  display: grid;
  gap: 1rem;
}

.reservation-dialog__context,
.reservation-dialog__notice {
  align-items: center;
  background: var(--color-accent-soft);
  border: 1px solid color-mix(in srgb, var(--color-primary) 22%, var(--color-border));
  border-radius: var(--innvilo-radius-md);
  color: var(--color-primary-active);
  display: flex;
  gap: 0.75rem;
  padding: 0.85rem 1rem;
}

.reservation-dialog__context > i,
.reservation-dialog__notice > i {
  font-size: 1.15rem;
}

.reservation-dialog__context > div {
  display: grid;
  gap: 0.15rem;
}

.reservation-dialog__context span {
  color: var(--color-text-muted);
  font-size: 0.82rem;
}

.reservation-dialog__notice.is-warning {
  background: var(--color-warning-soft);
  border-color: var(--color-warning-border);
  color: var(--color-warning-text);
}

.reservation-dialog__loading {
  align-items: center;
  display: grid;
  gap: 0.65rem;
  grid-template-columns: repeat(3, 2.5rem);
  justify-content: center;
  min-height: 10rem;
  text-align: center;
}

.reservation-dialog__loading span {
  animation: reservation-shimmer 1.1s ease-in-out infinite alternate;
  background: var(--color-surface-raised);
  border-radius: var(--radius-sm);
  display: block;
  height: 2.5rem;
}

.reservation-dialog__loading span:nth-child(2) {
  animation-delay: 100ms;
}

.reservation-dialog__loading span:nth-child(3) {
  animation-delay: 200ms;
}

.reservation-dialog__loading strong {
  color: var(--color-text-muted);
  grid-column: 1/-1;
}

.reservation-dialog__form {
  display: grid;
  gap: 0.9rem 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.reservation-dialog__form label {
  display: grid;
  gap: 0.4rem;
  min-width: 0;
}

.reservation-dialog__form label.is-wide {
  grid-column: 1/-1;
}

.reservation-dialog__form label > span {
  color: var(--color-text-muted);
  font-size: var(--innvilo-font-size-label);
  font-family: "Lato-SemiBold", Arial, sans-serif;
}

.reservation-dialog__form label em {
  color: var(--color-text-subtle);
  font-style: normal;
  font-family: "Lato-Regular", Arial, sans-serif;
}

.reservation-dialog__total {
  align-items: end;
  border-top: 1px solid var(--color-border);
  display: flex;
  justify-content: space-between;
  padding-top: 0.9rem;
}

.reservation-dialog__total span {
  color: var(--color-text-muted);
}

.reservation-dialog__total strong {
  color: var(--color-primary-active);
  font-size: 1.25rem;
}

.reservation-dialog__privacy {
  color: var(--color-text-subtle);
  font-size: var(--innvilo-font-size-label);
  margin: -0.25rem 0 0;
}

.reservation-dialog__privacy i {
  margin-right: 0.3rem;
}

.workspace-empty i {
  color: var(--color-text-subtle);
  font-size: 1.5rem;
}

.workspace-empty strong {
  color: var(--color-text);
}

.reservation-internal-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.reservation-workspace__mobile-scope {
  display: block;
  margin-bottom: var(--innvilo-page-hero-gap);
  padding: 0;
}

.reservation-workspace__mobile-action {
  background: var(--color-surface);
  border-top: 1px solid var(--color-border);
  bottom: calc(var(--innvilo-space-12) + 1px + env(safe-area-inset-bottom));
  display: block;
  left: 0;
  padding: 0.65rem 0.75rem;
  position: fixed;
  right: 0;
  z-index: var(--innvilo-z-sticky);
}

.reservation-workspace__mobile-action-grid {
  display: grid;
  gap: 0.5rem;
  grid-template-columns: minmax(0, 1fr) repeat(3, 2.75rem);
}

.reservation-workspace__mobile-action-grid.without-primary {
  grid-template-columns: repeat(auto-fit, minmax(2.75rem, 1fr));
}

.reservation-workspace__mobile-action .dxbl-btn {
  min-height: 2.75rem;
}

.reservation-workspace__mobile-primary.dxbl-btn {
  min-width: 0;
  width: 100%;
}

.page.is-mobile .reservation-workspace {
  padding-bottom: 5.25rem;
}

.reservation-workspace-shimmer,
.reservation-workspace-shimmer--area {
  display: grid;
  gap: var(--innvilo-space-4);
  grid-template-columns: minmax(0, 1fr);
}

.reservation-workspace-shimmer--area {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--innvilo-radius-xs);
  padding: var(--innvilo-space-6);
}

.reservation-workspace-shimmer span {
  animation: reservation-shimmer 1.25s ease-in-out infinite alternate;
  background: var(--color-surface-raised);
  border-radius: var(--innvilo-radius-xs);
  display: block;
}

.reservation-workspace-shimmer__tabs {
  height: 2.75rem;
  width: 100%;
}

.reservation-workspace-shimmer__panel {
  min-height: 12rem;
  width: 100%;
}

.reservation-workspace-shimmer__panel--compact {
  min-height: 7rem;
}

.reservation-workspace-shimmer__panel--journey {
  min-height: 6rem;
}

.reservation-workspace-error {
  align-items: center;
  display: grid;
  gap: 0.75rem;
  justify-items: center;
  min-height: 65dvh;
  padding: 2rem;
  text-align: center;
}

.reservation-workspace-error > i {
  color: var(--color-warning-text);
  font-size: 2rem;
}

.reservation-workspace-error h1,
.reservation-workspace-error p {
  margin: 0;
}

@keyframes reservation-shimmer {
  from {
    opacity: 0.55;
  }
  to {
    opacity: 1;
  }
}
@keyframes reservation-content-enter {
  from {
    opacity: 0.65;
  }
  to {
    opacity: 1;
  }
}
.workspace-module__actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: flex-end;
}

.reservation-folio-split-dialog {
  display: grid;
  gap: 1rem;
}

.reservation-folio-split-dialog__charges {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  display: grid;
  gap: 0.5rem;
  margin: 0;
  padding: 0.85rem;
}

.reservation-folio-split-dialog__charges legend {
  color: var(--color-text);
  font-weight: 700;
  padding: 0 0.35rem;
}

.reservation-folio-split-dialog__charges > label {
  align-items: center;
  background: var(--color-surface-soft);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  cursor: pointer;
  display: grid;
  gap: 0.65rem;
  grid-template-columns: auto minmax(0, 1fr);
  padding: 0.7rem;
}

.reservation-folio-split-dialog__charges > label span {
  display: grid;
  gap: 0.15rem;
}

.reservation-folio-split-dialog__charges > label small {
  color: var(--color-text-muted);
}

.reservation-folio-split-dialog__result {
  background: var(--color-success-soft);
  border: 1px solid var(--color-success-border);
  border-radius: var(--radius-sm);
  color: var(--color-success);
  margin: 0;
  padding: 0.75rem;
}

@media (max-width: 75rem) {
  .reservation-status-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .reservation-status-card:nth-child(3) {
    border-left: 0;
    border-top: 1px solid var(--color-border);
  }
  .reservation-status-card:nth-child(4) {
    border-top: 1px solid var(--color-border);
  }
  .financial-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .financial-summary__metric:nth-child(4) {
    border-left: 0;
    border-top: 1px solid var(--color-border);
  }
  .financial-summary__metric:nth-child(n+4) {
    border-top: 1px solid var(--color-border);
  }
}
@media (max-width: 63.99rem) {
  .reservation-internal-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 47.99rem) {
  .reservation-status-grid,
  .financial-summary {
    grid-template-columns: 1fr;
  }
  .reservation-status-card,
  .reservation-status-card:nth-child(n),
  .financial-summary__metric,
  .financial-summary__metric:nth-child(n) {
    border-left: 0;
    border-top: 1px solid var(--color-border);
  }
  .reservation-status-card:first-child,
  .financial-summary__metric:first-child {
    border-top: 0;
  }
  .workspace-module {
    padding: 0.85rem;
  }
  .workspace-module__header {
    align-items: flex-start;
  }
  .workspace-module__actions {
    justify-content: stretch;
    width: 100%;
  }
  .workspace-module__actions .dxbl-btn {
    flex: 1 1 100%;
  }
  .stay-table__row {
    align-items: start;
    grid-template-columns: 1fr auto;
  }
  .stay-table__row > div:nth-child(2) {
    grid-column: 1/-1;
    grid-row: 2;
  }
  .workspace-list-card {
    align-items: start;
    grid-template-columns: auto minmax(0, 1fr);
  }
  .workspace-list-card > :last-child {
    grid-column: 2;
  }
  .workspace-service-card {
    align-items: start;
    grid-template-columns: auto minmax(0, 1fr);
  }
  .workspace-service-card__amount {
    grid-column: 2;
    justify-items: start;
    text-align: left;
  }
  .workspace-audit-event {
    grid-template-columns: 2.4rem minmax(0, 1fr);
  }
  .workspace-audit-event__content > header {
    align-items: flex-start;
  }
  .reservation-area-error {
    align-items: start;
    grid-template-columns: auto minmax(0, 1fr);
  }
  .reservation-area-error .dxbl-btn {
    grid-column: 1/-1;
    width: 100%;
  }
  .reservation-dialog__form {
    grid-template-columns: 1fr;
  }
  .reservation-dialog__form label.is-wide {
    grid-column: auto;
  }
}
@media (prefers-reduced-motion: reduce) {
  .reservation-workspace-shimmer span,
  .reservation-dialog__loading span,
  .reservation-workspace__content {
    animation: none;
  }
  body .reservation-workspace-tabs.dxbl-tabs .dxbl-tabs-item {
    transition: none;
  }
}
/* DevExpress-owned tax-advisor grid hook. Component layout lives in scoped CSS. */
.tax-advisor-grid .innvilo-grid-cell-value {
  font-variant-numeric: tabular-nums;
}

/* Reservation Workspace modules — Quiet Operational Canvas.
   Imported after pages/reservation-workspace by global.scss. */
.reservation-workspace__content {
  --workspace-module-gap: var(--innvilo-space-6);
  --workspace-module-padding-inline: var(--innvilo-space-7);
  --workspace-module-padding-block: var(--innvilo-space-6);
}

.reservation-workspace__content .workspace-module {
  background: var(--innvilo-surface-card);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-md);
  box-shadow: none;
  padding: var(--workspace-module-padding-block) var(--workspace-module-padding-inline);
}

.reservation-workspace__content .workspace-module__header {
  align-items: flex-start;
  margin-bottom: var(--innvilo-space-6);
}

.reservation-workspace__content .workspace-module__header > div:first-child {
  display: grid;
  gap: var(--innvilo-space-2);
}

.reservation-workspace__content .workspace-module__header > div > span {
  color: var(--innvilo-text-secondary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  letter-spacing: 0.035em;
  line-height: 1.3;
  text-transform: uppercase;
}

.reservation-workspace__content .workspace-module__header h2 {
  color: var(--innvilo-text-primary);
  font-size: var(--innvilo-font-size-heading);
  line-height: 1.35;
  margin: 0;
}

.reservation-workspace__content .workspace-module__header .dxbl-btn {
  min-height: 2.75rem;
}

/* Finance summary — one cohesive surface with restrained semantic tints. */
.reservation-workspace__content .financial-summary {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.reservation-workspace__content .financial-summary__metric {
  align-content: center;
  column-gap: var(--innvilo-space-4);
  grid-template-columns: 2.25rem minmax(0, 1fr);
  min-height: 6.25rem;
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
  row-gap: var(--innvilo-space-2);
}

.reservation-workspace__content .financial-summary__metric.is-total {
  background: color-mix(in srgb, var(--color-info) 4%, var(--innvilo-surface-card));
}

.reservation-workspace__content .financial-summary__metric.is-positive {
  background: color-mix(in srgb, var(--color-success) 5%, var(--innvilo-surface-card));
}

.reservation-workspace__content .financial-summary__metric.is-warning {
  background: color-mix(in srgb, var(--color-warning) 6%, var(--innvilo-surface-card));
}

.reservation-workspace__content .financial-summary__metric.is-deposit {
  background: color-mix(in srgb, var(--color-primary) 4%, var(--innvilo-surface-card));
}

.reservation-workspace__content .financial-summary__metric.is-credit {
  background: color-mix(in srgb, var(--color-accounting-reopened) 4%, var(--innvilo-surface-card));
}

.reservation-workspace__content .financial-summary__icon {
  align-items: center;
  align-self: center;
  background: var(--innvilo-surface-main);
  border: 1px solid var(--innvilo-border-soft);
  border-radius: var(--innvilo-radius-xs);
  color: var(--innvilo-text-secondary);
  display: inline-flex;
  font-size: 1.125rem;
  grid-row: 1/span 2;
  height: 2.25rem;
  justify-content: center;
  width: 2.25rem;
}

.reservation-workspace__content .financial-summary__label {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-label);
  line-height: 1.3;
}

.reservation-workspace__content .financial-summary__value {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-subheading);
  font-variant-numeric: tabular-nums;
  line-height: 1.25;
}

.reservation-workspace__content .financial-summary__value small {
  font-size: var(--innvilo-font-size-label);
  font-weight: 600;
}

.finance-register {
  display: grid;
  gap: var(--innvilo-space-5);
}

.finance-register__summary {
  display: grid;
  gap: var(--innvilo-space-4);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.finance-register__section {
  display: grid;
  gap: var(--innvilo-space-3);
}

.finance-register__section-title {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-label);
  font-weight: 600;
  letter-spacing: 0.04em;
  margin: 0;
  text-transform: uppercase;
}

.finance-register__kind {
  align-items: center;
  background: var(--innvilo-surface-main);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-md);
  display: grid;
  gap: var(--innvilo-space-4);
  grid-template-columns: 2.5rem minmax(0, 1fr) auto;
  min-height: 4.5rem;
  padding: var(--innvilo-space-5);
}

.finance-register__kind-icon {
  align-items: center;
  background: var(--color-info-soft);
  border-radius: var(--innvilo-radius-xs);
  color: var(--color-info);
  display: inline-flex;
  font-size: 1rem;
  height: 2.5rem;
  justify-content: center;
  width: 2.5rem;
}

.finance-register__kind.is-transaction .finance-register__kind-icon {
  background: var(--color-success-soft);
  color: var(--color-success);
}

.finance-register__kind.is-service .finance-register__kind-icon {
  background: var(--color-warning-soft);
  color: var(--color-warning);
}

.finance-register__kind > span:nth-child(2) {
  display: grid;
  gap: var(--innvilo-space-1);
  min-width: 0;
}

.finance-register__kind strong {
  color: var(--innvilo-text-primary);
  font-size: var(--innvilo-font-size-body);
}

.finance-register__kind small {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-label);
  line-height: 1.35;
}

.finance-register__kind b {
  align-items: center;
  background: var(--innvilo-surface-muted);
  border-radius: var(--innvilo-radius-full);
  color: var(--innvilo-text-primary);
  display: inline-flex;
  font-size: var(--innvilo-font-size-label);
  height: 1.75rem;
  justify-content: center;
  min-width: 1.75rem;
  padding-inline: var(--innvilo-space-3);
}

.finance-type-cell {
  align-items: center;
  color: var(--innvilo-text-primary);
  display: inline-flex;
  gap: var(--innvilo-space-4);
}

.finance-type-cell i {
  align-items: center;
  background: var(--color-info-soft);
  border-radius: var(--innvilo-radius-xs);
  color: var(--color-info);
  display: inline-flex;
  height: 2rem;
  justify-content: center;
  width: 2rem;
}

.finance-type-cell.is-payment i {
  background: var(--color-success-soft);
  color: var(--color-success);
}

.finance-type-cell.is-refund i {
  background: var(--color-warning-soft);
  color: var(--color-warning-text);
}

.finance-type-cell.is-service i {
  background: var(--innvilo-surface-muted);
  color: var(--innvilo-text-secondary);
}

/* Services — white cards, color restricted to semantic icon containers. */
.reservation-workspace__content .workspace-service-card {
  background: var(--innvilo-surface-main);
  border-color: var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-md);
  min-height: 5.5rem;
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
  transition: border-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), background-color var(--innvilo-duration-fast) var(--innvilo-easing-standard);
}

.reservation-workspace__content .workspace-service-card:hover {
  background: var(--color-input-surface-hover);
  border-color: color-mix(in srgb, var(--workspace-service-tone) 35%, var(--innvilo-border-default));
  transform: none;
}

.reservation-workspace__content .workspace-service-card__icon {
  border: 0;
  border-radius: var(--innvilo-radius-md);
  font-size: 1.25rem;
  height: 3rem;
  width: 3rem;
}

.reservation-workspace__content .workspace-service-card__copy {
  gap: var(--innvilo-space-3);
}

.reservation-workspace__content .workspace-service-card__copy > strong {
  font-size: var(--innvilo-font-size-subheading);
}

.workspace-service-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-3) var(--innvilo-space-6);
}

.reservation-workspace__content .workspace-service-card__copy .workspace-service-card__meta span {
  align-items: center;
  color: var(--innvilo-text-secondary);
  display: inline-flex;
  font-size: var(--innvilo-font-size-label);
  gap: var(--innvilo-space-3);
}

.reservation-workspace__content .workspace-service-card__amount span {
  align-items: center;
  display: inline-flex;
  gap: var(--innvilo-space-3);
}

.reservation-workspace__content .workspace-service-card__amount strong {
  font-size: var(--innvilo-font-size-subheading);
  font-variant-numeric: tabular-nums;
}

.reservation-workspace__content .workspace-service-card__amount strong small {
  font-size: var(--innvilo-font-size-label);
}

/* Timelines — neutral rail and surface, category color only on icon/marker. */
.reservation-workspace__content .workspace-timeline {
  gap: var(--innvilo-space-4);
}

.reservation-workspace__content .workspace-timeline__marker {
  font-size: 1rem;
  height: 2.5rem;
  width: 2.5rem;
}

.reservation-workspace__content .workspace-timeline__content {
  background: var(--innvilo-surface-main);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-md);
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
}

.reservation-workspace__content .workspace-timeline__content header > span {
  display: grid;
  gap: var(--innvilo-space-1);
}

.reservation-workspace__content .workspace-timeline__content header small {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-label);
}

.reservation-workspace__content .workspace-timeline__content header strong {
  color: var(--innvilo-text-primary);
  font-size: var(--innvilo-font-size-body);
}

.reservation-workspace__content .workspace-timeline__content p {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-body);
  line-height: 1.5;
}

.reservation-workspace__content .workspace-timeline__content p i,
.reservation-workspace__content .workspace-timeline__content footer i {
  margin-right: var(--innvilo-space-3);
}

.reservation-workspace__content .workspace-timeline__content footer {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-label);
}

.reservation-workspace__content .workspace-audit-event__rail::after {
  background: var(--innvilo-border-default);
  inset-block-start: 2.5rem;
}

.reservation-workspace__content .workspace-audit-event__rail > span {
  background: var(--innvilo-surface-main);
  border-color: var(--innvilo-border-default);
  color: var(--workspace-audit-tone);
  font-size: 1rem;
  height: 2.5rem;
  width: 2.5rem;
}

.reservation-workspace__content .workspace-audit-event__content {
  background: var(--innvilo-surface-main);
  border-color: var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-md);
  gap: var(--innvilo-space-5);
  margin-bottom: var(--innvilo-space-5);
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
}

.reservation-workspace__content .workspace-audit-event__content > header strong {
  font-size: var(--innvilo-font-size-body);
}

.reservation-workspace__content .workspace-audit-event__content > header span,
.reservation-workspace__content .workspace-audit-event__content > footer > span {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-label);
}

.reservation-workspace__content .workspace-audit-event__content > header span i {
  color: var(--workspace-audit-tone);
  margin-right: var(--innvilo-space-3);
}

.reservation-workspace__content .workspace-audit-event__change {
  display: grid;
  font-size: var(--innvilo-font-size-body);
  gap: var(--innvilo-space-2);
}

.reservation-workspace__content .workspace-audit-event__change > span {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-label);
  font-weight: 600;
}

.reservation-workspace__content .workspace-audit-event__metadata {
  border: 1px solid var(--innvilo-border-soft);
  font-size: var(--innvilo-font-size-caption);
  padding: var(--innvilo-space-4) var(--innvilo-space-5);
}

.reservation-workspace__content .workspace-list-card {
  background: var(--innvilo-surface-main);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-md);
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
}

.reservation-workspace__content .workspace-list-card__description {
  color: var(--innvilo-text-primary);
  margin-top: var(--innvilo-space-2);
}

.reservation-workspace__content .workspace-list-card__meta {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-3) var(--innvilo-space-5);
  margin-top: var(--innvilo-space-3);
}

.reservation-workspace__content .workspace-list-card__meta i {
  color: var(--innvilo-text-secondary);
}

.reservation-workspace__content .workspace-empty {
  background: color-mix(in srgb, var(--innvilo-surface-muted) 55%, var(--innvilo-surface-main));
  border: 1px dashed var(--innvilo-border-strong);
  border-radius: var(--innvilo-radius-md);
  gap: var(--innvilo-space-3);
  min-height: 9rem;
  padding: var(--innvilo-space-8);
}

.reservation-workspace__content .workspace-empty i {
  color: var(--innvilo-text-secondary);
  font-size: 1.5rem;
}

.reservation-workspace__content .workspace-empty strong {
  font-size: var(--innvilo-font-size-body);
}

.reservation-workspace__content .workspace-empty span {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-label);
  line-height: 1.5;
}

.reservation-workspace__content .workspace-filter-pills {
  gap: var(--innvilo-space-3);
  margin-bottom: var(--innvilo-space-6);
}

.reservation-workspace__content .workspace-filter-pill.dxbl-btn {
  min-height: 2.5rem;
  padding-inline: var(--innvilo-space-5);
}

@media (max-width: 767.98px) {
  .reservation-workspace__content {
    --workspace-module-padding-inline: var(--innvilo-space-6);
    --workspace-module-padding-block: var(--innvilo-space-6);
  }
  .finance-register__summary {
    grid-template-columns: 1fr;
  }
  .reservation-workspace__content .financial-summary__metric {
    min-height: 4.75rem;
  }
  .reservation-workspace__content .workspace-service-card__amount {
    margin-top: var(--innvilo-space-2);
  }
}
@media (prefers-reduced-motion: reduce) {
  .reservation-workspace__content .workspace-service-card {
    transition: none;
  }
}
/* Buchungsassistent, Schritt 2 „Hauptbucher“: DevExpress-Hooks für die Kontrollkästchen (Hauptbucher
   übernachtet selbst, Rechnung an Firma, Zimmer halten) und den Modus-Umschalter im Panelkopf.
   Komponenteneigenes Markup liegt in BookingBookerStep.razor.css und BookingWizardShell.razor.css. */
/* Kontrollkästchen: 44px Zeile, Beschriftung in Fließtextgröße, Akzent nur im gewählten Zustand. */
body .nb-page .nb-booker__check.dxbl-checkbox {
  align-items: center;
  display: inline-flex;
  gap: var(--innvilo-space-3);
  min-height: 2.75rem;
}

body .nb-page .nb-booker__check.dxbl-checkbox > label.dxbl-text {
  color: var(--innvilo-text-primary);
  font-family: "Lato-Regular", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
  line-height: 1.4;
}

body .nb-page .nb-booker__check.dxbl-checkbox .dxbl-checkbox-check-element {
  border-radius: var(--innvilo-radius-xs);
  height: 1.25rem;
  width: 1.25rem;
}

body .nb-page .nb-booker__check.dxbl-checkbox:focus-within .dxbl-checkbox-check-element {
  outline: 2px solid var(--innvilo-border-focus);
  outline-offset: 2px;
}

/* Modus-Umschalter im Panelkopf: zwei gleich breite Flächen, gewählt in Akzentfläche. */
body .nb-page .nb-mode__button.dxbl-btn {
  min-height: 2.5rem;
  min-width: 6.5rem;
}

.nb-shell--mobile .nb-mode__button.dxbl-btn {
  min-height: 2.75rem;
  min-width: 0;
}

/* Buchungsassistent, 2-Schritt-Prozess: geteilte Bausteine für Popover (Desktop) und Bottom Sheet
   (Handy, Tablet), Backdrop, Kontrollkästchen und das 12-Spalten-Raster. Eine Fläche, ein Radius,
   Schatten nur auf schwebenden Fenstern. Komponenteneigenes Markup liegt in den .razor.css-Dateien. */
/* Anker für ein Popover: der Auslöser und das Fenster teilen eine Bezugsfläche. */
.nb-anchor {
  position: relative;
}

/* Backdrop: fängt Außenklicks; abgedunkelt nur unter Sheets. */
.nb-backdrop {
  background: transparent;
  inset: 0;
  position: fixed;
  z-index: calc(var(--innvilo-z-modal) - 1);
}

.nb-backdrop--dim {
  animation: nb-backdrop-enter var(--innvilo-duration-fast) var(--innvilo-easing-standard) both;
  background: var(--color-sheet-backdrop);
}

/* Popover: unter dem Auslöser, linksbündig, auf Wunsch rechtsbündig oder breit. */
.nb-popover {
  animation: nb-pop-enter var(--innvilo-duration-normal) var(--innvilo-easing-decelerate) both;
  background: var(--innvilo-surface-card);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-xs);
  box-shadow: var(--innvilo-shadow-popover);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  left: 0;
  max-height: min(36rem, 100dvh - 8rem);
  min-width: min(100%, 24rem);
  position: absolute;
  top: calc(100% + var(--innvilo-space-2));
  width: min(100%, 32rem);
  z-index: var(--innvilo-z-modal);
}

.nb-popover--wide {
  width: min(100%, 46rem);
}

.nb-popover--end {
  left: auto;
  right: 0;
}

/* Bottom Sheet: volle Breite, wächst mit dem Inhalt bis 85 Prozent der Höhe. */
.nb-sheet {
  animation: nb-sheet-enter var(--innvilo-duration-normal) var(--innvilo-easing-decelerate) both;
  background: var(--innvilo-surface-card);
  border-radius: var(--innvilo-radius-md) var(--innvilo-radius-md) 0 0;
  bottom: 0;
  box-shadow: var(--innvilo-shadow-popover);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  left: 0;
  max-height: 85dvh;
  padding-bottom: env(safe-area-inset-bottom);
  position: fixed;
  right: 0;
  z-index: var(--innvilo-z-modal);
}

.nb-sheet--tall {
  height: 85dvh;
}

.nb-sheet__head {
  align-items: start;
  border-bottom: 1px solid var(--innvilo-border-default);
  display: grid;
  gap: var(--innvilo-space-1) var(--innvilo-space-4);
  grid-template-columns: minmax(0, 1fr) auto;
  padding: var(--innvilo-space-5) var(--innvilo-space-6) var(--innvilo-space-4);
}

.nb-sheet__head h3,
.nb-sheet__head h4 {
  color: var(--innvilo-text-primary);
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-subheading);
  line-height: 1.25;
  margin: 0;
}

.nb-sheet__head p {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  grid-column: 1;
  line-height: 1.45;
  margin: 0;
}

.nb-sheet__body {
  min-height: 0;
  overflow-y: auto;
  padding: var(--innvilo-space-4) var(--innvilo-space-6);
}

.nb-sheet__actions {
  align-items: center;
  border-top: 1px solid var(--innvilo-border-default);
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-3);
  justify-content: flex-end;
  padding: var(--innvilo-space-4) var(--innvilo-space-6);
}

.nb-sheet__actions .nb-link-button {
  margin-right: auto;
}

/* Natives Kontrollkästchen in Akzentfarbe, 44px Zielfläche über das Label. */
.nb-check {
  accent-color: var(--innvilo-color-primary);
  cursor: pointer;
  flex: 0 0 auto;
  height: 1.25rem;
  margin: 0;
  width: 1.25rem;
}

.nb-check:focus-visible {
  outline: 2px solid var(--innvilo-border-focus);
  outline-offset: 2px;
}

/* Zeitraumzeile: Anreise, Abreise, Nächte, Zimmer und der Auslöser teilen eine Grundlinie. */
.nb-period__grid {
  align-items: end;
}

.nb-shell--desktop .nb-field-grid.nb-stay.nb-period__grid {
  grid-template-columns: repeat(2, minmax(10rem, 14rem)) repeat(2, minmax(6rem, 9rem)) minmax(0, 1fr);
}

/* 12-Spalten-Raster innerhalb des Schrittpanels (Desktop); einspaltig auf Handy und Tablet. */
.nb-grid-12 {
  display: grid;
  gap: var(--innvilo-space-4) var(--innvilo-space-6);
  grid-template-columns: repeat(12, minmax(0, 1fr));
  min-width: 0;
}

.nb-col-1 {
  grid-column: span 1;
  min-width: 0;
}

.nb-col-2 {
  grid-column: span 2;
  min-width: 0;
}

.nb-col-3 {
  grid-column: span 3;
  min-width: 0;
}

.nb-col-4 {
  grid-column: span 4;
  min-width: 0;
}

.nb-col-5 {
  grid-column: span 5;
  min-width: 0;
}

.nb-col-6 {
  grid-column: span 6;
  min-width: 0;
}

.nb-col-7 {
  grid-column: span 7;
  min-width: 0;
}

.nb-col-8 {
  grid-column: span 8;
  min-width: 0;
}

.nb-col-9 {
  grid-column: span 9;
  min-width: 0;
}

.nb-col-10 {
  grid-column: span 10;
  min-width: 0;
}

.nb-col-11 {
  grid-column: span 11;
  min-width: 0;
}

.nb-col-12 {
  grid-column: span 12;
  min-width: 0;
}

.nb-shell--mobile .nb-grid-12,
.nb-shell--tablet .nb-grid-12 {
  grid-template-columns: minmax(0, 1fr);
}

.nb-shell--mobile .nb-grid-12 > [class*=nb-col-],
.nb-shell--tablet .nb-grid-12 > [class*=nb-col-] {
  grid-column: 1/-1;
}

/* Sichtbare Rückmeldung für neue Zimmerzeilen. */
.nb-row-enter {
  animation: nb-row-enter var(--innvilo-duration-normal) var(--innvilo-easing-decelerate) both;
}

@keyframes nb-pop-enter {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes nb-sheet-enter {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes nb-backdrop-enter {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes nb-row-enter {
  from {
    opacity: 0;
    transform: translateY(4px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .nb-backdrop--dim,
  .nb-popover,
  .nb-sheet,
  .nb-row-enter {
    animation: none;
  }
}
/* Berichte / Hotelberichte: DevExpress roots of the report center. Ordinary layout lives in the colocated
   isolated stylesheets; every hook below targets a DevExpress root (.dxbl-*) or a popup root outside the page. */
body .reportcenter-page .dx-app-button.dxbl-btn,
body .reportcenter-page .dxbl-text-edit,
body .reportcenter-page .dxbl-combobox,
body .reportcenter-page .dxbl-spin-edit {
  border-radius: var(--innvilo-radius-md);
}

/* Hero, period and state buttons: 40px on desktop, 44px on handset and tablet. */
body .reportcenter-page .dx-app-button.dxbl-btn {
  min-height: 2.5rem;
  white-space: nowrap;
}

body .reportcenter-page .reportcenter-mobile .dx-app-button.dxbl-btn {
  min-height: 2.75rem;
}

body .reportcenter-page .reportcenter-mobile-refresh.dxbl-btn {
  height: 2.75rem;
  min-width: 2.75rem;
  padding: 0;
  width: 2.75rem;
}

body .reportcenter-page .reportcenter-mobile .reportcenter-generate.dxbl-btn {
  width: 100%;
}

/* Editors of the period toolbar: 40px with the control radius, 44px inside the stacked mobile form. */
body .reportcenter-page .reportcenter-editor.dxbl-text-edit,
body .reportcenter-page .reportcenter-editor.dxbl-combobox,
body .reportcenter-page .reportcenter-editor.dxbl-spin-edit {
  border-color: var(--innvilo-border-default);
  box-shadow: none;
  box-sizing: border-box;
  font-size: var(--innvilo-font-size-label);
  height: 2.5rem;
  max-height: 2.5rem;
  min-height: 2.5rem;
  min-width: 0;
  width: 100%;
}

body .reportcenter-page .reportcenter-period.is-stacked .reportcenter-editor.dxbl-text-edit,
body .reportcenter-page .reportcenter-period.is-stacked .reportcenter-editor.dxbl-combobox,
body .reportcenter-page .reportcenter-period.is-stacked .reportcenter-editor.dxbl-spin-edit {
  height: 2.75rem;
  max-height: 2.75rem;
  min-height: 2.75rem;
}

body .reportcenter-page .reportcenter-editor.dxbl-text-edit:focus-within,
body .reportcenter-page .reportcenter-editor.dxbl-combobox:focus-within,
body .reportcenter-page .reportcenter-editor.dxbl-spin-edit:focus-within {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .reportcenter-page .reportcenter-editor.dxbl-text-edit input {
  font-size: var(--innvilo-font-size-label);
  font-variant-numeric: tabular-nums;
}

body .reportcenter-page .reportcenter-editor.dxbl-text-edit::after {
  display: none;
}

/* Catalog search: like the service-case search editor, 40px desktop and 44px compact. */
body .reportcenter-page .reportcenter-search-editor.dxbl-text-edit {
  align-items: center;
  border-color: var(--innvilo-border-default);
  box-shadow: none;
  box-sizing: border-box;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  height: 2.5rem;
  max-height: 2.5rem;
  min-height: 2.5rem;
  min-width: 0;
  width: 100%;
}

body .reportcenter-page .reportcenter-search-editor.is-compact.dxbl-text-edit {
  height: 2.75rem;
  max-height: 2.75rem;
  min-height: 2.75rem;
}

body .reportcenter-page .reportcenter-search-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .reportcenter-page .reportcenter-search-editor.dxbl-text-edit input {
  align-self: center;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  padding: 0 var(--innvilo-space-4) 0 var(--innvilo-space-3);
}

body .reportcenter-page .reportcenter-search-editor.dxbl-text-edit input::placeholder {
  color: var(--innvilo-text-muted);
  line-height: 1.2;
  opacity: 1;
}

body .reportcenter-page .reportcenter-search-editor.dxbl-text-edit .dxbl-btn {
  height: 100%;
  min-height: 0;
}

body .reportcenter-page .reportcenter-search-editor.dxbl-text-edit::after {
  display: none;
}

/* Month list of the period toolbar (popup root outside the page). */
body .reportcenter-dropdown.dxbl-dropdown-dialog {
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-md);
  box-shadow: var(--innvilo-shadow-dropdown);
}

body .reportcenter-dropdown .dxbl-list-box-item,
body .reportcenter-dropdown [role=option] {
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-3) var(--innvilo-space-5);
}

body .reportcenter-dropdown [aria-selected=true],
body .reportcenter-dropdown .dxbl-list-box-item.dxbl-active {
  background: var(--innvilo-color-primary-soft);
  color: var(--color-primary);
}

/* Finanzen: DevExpress-Hooks der drei Arbeitslisten „Zahlungen & Rechnungen“ (body .finance-page), „Kassenbuch“
   (body .cashbook-page) und „Export & Buchhaltung“ (body .accexport-page) nach dem Muster des Servicefälle-Blocks.
   Jede Regel zielt auf eine DevExpress-Wurzel (.dxbl-*) oder ein geteiltes Filterelement, die das Scoped-Attribut
   der .razor.css-Dateien nicht erhalten. Das gewöhnliche Layout bleibt in den zugehörigen .razor.css-Dateien. */
/* ---------------------------------------------------------------- Zahlungen & Rechnungen */
body .finance-page .dx-app-button.dxbl-btn,
body .finance-page .dxbl-text-edit,
body .finance-page .dxbl-combobox,
body .finance-page .finance-grid.dxbl-grid {
  border-radius: var(--innvilo-radius-xs);
}

body .finance-page .finance-head .dx-app-button.dxbl-btn,
body .finance-page .finance-toolbar .dx-app-button.dxbl-btn,
body .finance-page .finance-state .dx-app-button.dxbl-btn {
  min-height: 2.5rem;
  white-space: nowrap;
}

/* Toolbar and pager controls carry the larger control radius. */
body .finance-page .finance-toolbar .dxbl-text-edit,
body .finance-page .finance-toolbar .dxbl-combobox,
body .finance-page .finance-toolbar .dx-app-button.dxbl-btn,
body .finance-page .finance-mobile-tools .dxbl-text-edit,
body .finance-page .finance-mobile-filter.dxbl-btn {
  border-radius: var(--innvilo-radius-md);
}

body .finance-page .finance-toolbar .dxbl-text-edit,
body .finance-page .finance-toolbar .dxbl-combobox {
  min-height: 2.5rem;
}

/* The search field takes the button height as its measure (40px desktop, 44px mobile). */
body .finance-page .finance-search-editor.dxbl-text-edit {
  height: 2.5rem;
  max-height: 2.5rem;
  min-height: 2.5rem;
}

body .finance-page .finance-mobile-search.dxbl-text-edit {
  border: 0 !important;
  box-shadow: inset 0 0 0 1px var(--innvilo-border-default);
  flex: 1 1 auto;
  height: 2.75rem;
  max-height: 2.75rem;
  min-height: 2.75rem;
}

body .finance-page .finance-mobile-search.dxbl-text-edit:focus-within {
  box-shadow: inset 0 0 0 1px var(--color-primary), 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .finance-page .finance-search-editor.dxbl-text-edit,
body .finance-page .finance-mobile-search.dxbl-text-edit {
  align-items: center;
  border-color: var(--innvilo-border-default);
  box-shadow: none;
  box-sizing: border-box;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  min-width: 0;
  width: 100%;
}

body .finance-page .finance-search-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .finance-page .finance-search-editor.dxbl-text-edit input,
body .finance-page .finance-mobile-search.dxbl-text-edit input {
  align-self: center;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  padding: 0 var(--innvilo-space-4) 0 var(--innvilo-space-3);
}

body .finance-page .finance-search-editor.dxbl-text-edit input::placeholder,
body .finance-page .finance-mobile-search.dxbl-text-edit input::placeholder {
  color: var(--innvilo-text-muted);
  line-height: 1.2;
  opacity: 1;
}

body .finance-page .finance-search-editor.dxbl-text-edit .dxbl-btn,
body .finance-page .finance-mobile-search.dxbl-text-edit .dxbl-btn {
  height: 100%;
  min-height: 0;
}

body .finance-page .finance-mobile-search.dxbl-text-edit .dxbl-btn {
  min-width: 2.75rem;
  width: 2.75rem;
}

body .finance-page .inquiry-filter-dropdown__button.is-active.dxbl-btn,
body .finance-page .finance-mobile-filter.is-active.dxbl-btn {
  background: var(--innvilo-color-primary-soft) !important;
  border-color: var(--color-primary) !important;
  color: var(--color-primary) !important;
}

body .finance-page .inquiry-filter-dropdown__button.dxbl-btn {
  gap: var(--innvilo-space-3);
  min-height: 2.5rem;
  padding-inline: var(--innvilo-space-4);
}

/* Grid: quiet header, comfortable rows, group rows as section labels, urgency stripe on the left. */
body .finance-page .finance-grid.dxbl-grid {
  border: 0;
  max-width: 100%;
  width: 100%;
}

body .finance-page .finance-grid.dxbl-grid .dxbl-grid-header-row > th {
  background: var(--innvilo-surface-app);
  border-bottom: 1px solid var(--innvilo-border-default);
  box-sizing: border-box;
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  height: 2.5rem;
  letter-spacing: 0;
  line-height: 1.2;
  padding: 0 var(--innvilo-space-6);
  text-transform: none;
  vertical-align: middle;
}

body .finance-page .finance-grid.dxbl-grid .dxbl-grid-data-row > td {
  border-color: var(--innvilo-border-default);
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
  vertical-align: middle;
}

body .finance-page .finance-grid.dxbl-grid .dxbl-grid-data-row > td:first-child {
  border-left: 3px solid transparent;
}

body .finance-page .finance-grid.dxbl-grid .dxbl-grid-data-row:hover > td {
  background: var(--innvilo-grid-hover-surface);
}

body .finance-page .finance-grid.dxbl-grid .finance-grid-row--urgent > td:first-child {
  border-left-color: var(--color-warning) !important;
}

/* Overflow button of a row shares the 36px square of the primary action; the drop-down root is a plain
   white panel with the control radius and the only shadow on this page. */
body .finance-page .finance-grid .finance-row-more.dxbl-btn {
  align-items: center;
  background: var(--innvilo-surface-muted) !important;
  border-color: transparent !important;
  border-radius: var(--innvilo-radius-xs);
  box-sizing: border-box;
  color: var(--innvilo-text-primary) !important;
  display: inline-flex;
  flex: 0 0 2.25rem;
  height: 2.25rem;
  justify-content: center;
  line-height: 1;
  min-height: 2.25rem;
  min-width: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .finance-page .finance-grid .finance-row-more.dxbl-btn .dxbl-image {
  margin: 0;
}

body .finance-page .finance-grid .finance-row-more.dxbl-btn:hover,
body .finance-page .finance-grid .finance-row-more.dxbl-btn:focus-visible {
  background: var(--innvilo-border-default) !important;
  color: var(--innvilo-text-primary) !important;
}

body .finance-row-menu.dxbl-dropdown-dialog {
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-md);
  box-shadow: var(--innvilo-shadow-dropdown);
}

body .finance-row-menu .finance-row-menu__body,
body .finance-row-menu .dxbl-dropdown-body,
body .finance-row-menu .dxbl-dropdown-dialog-body,
body .finance-row-menu .dxbl-popup-body {
  display: block;
  margin: 0 !important;
  padding: 0 !important;
}

body .finance-page .finance-mobile-card .finance-row-secondary.dxbl-btn {
  min-height: 2.75rem;
}

/* Own pager: 40px page-size combobox and 36px square navigation buttons. */
body .finance-page .finance-pager__size-editor.dxbl-text-edit {
  align-items: center;
  border: 1px solid var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-shadow: none !important;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  height: 2.25rem;
  max-height: 2.25rem;
  min-height: 2.25rem;
  min-width: 4.5rem;
  width: 4.5rem;
}

body .finance-pager__size-list.dxbl-dropdown-dialog,
body .finance-pager__size-list .dxbl-dropdown-body {
  border-radius: var(--innvilo-radius-md);
  min-width: 4.5rem;
}

body .finance-pager__size-list .dxbl-list-box-item,
body .finance-pager__size-list [role=option] {
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-3) var(--innvilo-space-5);
}

body .finance-pager__size-list [aria-selected=true],
body .finance-pager__size-list .dxbl-list-box-item.dxbl-active {
  background: var(--innvilo-color-primary-soft) !important;
  color: var(--color-primary) !important;
}

body .finance-page .finance-pager__size-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring) !important;
}

body .finance-page .finance-pager__size-editor.dxbl-text-edit input {
  align-self: center;
  flex: 1 1 auto;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  min-width: 0;
  overflow: visible;
  padding: 0 0 0 var(--innvilo-space-4);
  text-align: left;
  text-overflow: clip;
  width: auto;
}

body .finance-page .finance-pager__size-editor.dxbl-text-edit .dxbl-btn-group {
  align-items: stretch;
  background: transparent !important;
  border: 0 !important;
  display: inline-flex;
  flex: 0 0 1.5rem;
  margin: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

body .finance-page .finance-pager__size-editor.dxbl-text-edit .dxbl-btn {
  align-items: center;
  align-self: stretch;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0;
  box-shadow: none !important;
  color: var(--innvilo-text-secondary) !important;
  display: inline-flex;
  height: auto;
  justify-content: center;
  margin: 0;
  min-height: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

body .finance-page .finance-pager__size-editor.dxbl-text-edit .dxbl-btn .dxbl-image {
  height: 0.75rem;
  width: 0.75rem;
}

body .finance-page .finance-pager__size-editor.dxbl-text-edit::after,
body .finance-page .finance-search-editor.dxbl-text-edit::after,
body .finance-page .finance-mobile-search.dxbl-text-edit::after {
  display: none;
}

body .finance-page .finance-pager__button.dxbl-btn {
  align-items: center;
  border-radius: var(--innvilo-radius-md);
  display: inline-flex;
  flex: 0 0 2.25rem;
  height: 2.25rem;
  justify-content: center;
  min-height: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .finance-page .finance-pager__button.dxbl-btn .dxbl-image {
  margin: 0;
}

body .finance-page .finance-mobile-refresh.dxbl-btn {
  border-radius: var(--innvilo-radius-xs);
  height: 2.75rem;
  min-height: 2.75rem;
  width: 2.75rem;
}

body .finance-page .finance-mobile-filter.dxbl-btn {
  background: var(--innvilo-surface-card) !important;
  border-color: var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-sizing: border-box;
  flex: 0 0 auto;
  gap: var(--innvilo-space-3);
  height: 2.75rem;
  min-height: 2.75rem;
  padding-inline: var(--innvilo-space-5);
  white-space: nowrap;
}

/* Mobile filter overlay: DevExpress popup root as a full-screen sheet. */
body .finance-mobile-overlay.dxbl-popup {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none;
  height: 100dvh !important;
  inset: 0 !important;
  margin: 0 !important;
  max-height: 100dvh !important;
  max-width: 100vw !important;
  position: fixed !important;
  transform: none !important;
  width: 100vw !important;
}

body .finance-mobile-overlay.dxbl-popup > .dxbl-modal-content,
body .finance-mobile-overlay.dxbl-popup .dxbl-popup-body {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  height: 100% !important;
  max-height: 100% !important;
  max-width: 100% !important;
  overflow: hidden;
  padding: 0 !important;
  width: 100% !important;
}

body .finance-mobile-overlay .finance-overlay {
  height: 100%;
}

/* Sections inside the overlay use the full height: the option list grows, actions stay at the bottom. */
body .finance-mobile-overlay .inquiry-filter-form {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: var(--innvilo-space-6);
}

body .finance-mobile-overlay .inquiry-filter-form__listbox {
  flex: 1 1 auto;
  max-height: none;
  min-height: 10rem;
}

body .finance-mobile-overlay .inquiry-filter-form__actions {
  margin-top: auto;
}

body .finance-mobile-overlay .inquiry-filter-form .dx-app-button.dxbl-btn,
body .finance-mobile-overlay .finance-overlay__done.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

/* Zeilenaktion "Öffnen": ruhiger Icon-Button im Grid (36px), Textbutton in den Karten (44px). */
body .finance-page .finance-grid .finance-row-open.dxbl-btn {
  align-items: center;
  background: var(--innvilo-surface-muted) !important;
  border-color: transparent !important;
  border-radius: var(--innvilo-radius-xs);
  box-sizing: border-box;
  color: var(--innvilo-text-primary) !important;
  display: inline-flex;
  flex: 0 0 2.25rem;
  height: 2.25rem;
  justify-content: center;
  line-height: 1;
  min-height: 2.25rem;
  min-width: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .finance-page .finance-grid .finance-row-open.dxbl-btn .dxbl-image {
  margin: 0;
}

body .finance-page .finance-grid .finance-row-open.dxbl-btn:hover,
body .finance-page .finance-grid .finance-row-open.dxbl-btn:focus-visible {
  background: var(--innvilo-border-default) !important;
  color: var(--innvilo-text-primary) !important;
}

body .finance-page .finance-mobile-card .finance-row-open.dxbl-btn,
body .finance-page .finance-mobile-more.dxbl-btn {
  min-height: 2.75rem;
}

body .finance-page .finance-mobile-more.dxbl-btn {
  width: 100%;
}

body .finance-page .finance-head__actions .dx-app-button.dxbl-btn {
  min-height: 2.75rem;
}

/* ---------------------------------------------------------------- Kassenbuch */
body .cashbook-page .dx-app-button.dxbl-btn,
body .cashbook-page .dxbl-text-edit,
body .cashbook-page .dxbl-combobox,
body .cashbook-page .cashbook-grid.dxbl-grid {
  border-radius: var(--innvilo-radius-xs);
}

body .cashbook-page .cashbook-head .dx-app-button.dxbl-btn,
body .cashbook-page .cashbook-toolbar .dx-app-button.dxbl-btn,
body .cashbook-page .cashbook-state .dx-app-button.dxbl-btn {
  min-height: 2.5rem;
  white-space: nowrap;
}

/* Toolbar and pager controls carry the larger control radius. */
body .cashbook-page .cashbook-toolbar .dxbl-text-edit,
body .cashbook-page .cashbook-toolbar .dxbl-combobox,
body .cashbook-page .cashbook-toolbar .dx-app-button.dxbl-btn,
body .cashbook-page .cashbook-mobile-tools .dxbl-text-edit,
body .cashbook-page .cashbook-mobile-filter.dxbl-btn {
  border-radius: var(--innvilo-radius-md);
}

body .cashbook-page .cashbook-toolbar .dxbl-text-edit,
body .cashbook-page .cashbook-toolbar .dxbl-combobox {
  min-height: 2.5rem;
}

/* The search field takes the button height as its measure (40px desktop, 44px mobile). */
body .cashbook-page .cashbook-search-editor.dxbl-text-edit {
  height: 2.5rem;
  max-height: 2.5rem;
  min-height: 2.5rem;
}

body .cashbook-page .cashbook-mobile-search.dxbl-text-edit {
  border: 0 !important;
  box-shadow: inset 0 0 0 1px var(--innvilo-border-default);
  flex: 1 1 auto;
  height: 2.75rem;
  max-height: 2.75rem;
  min-height: 2.75rem;
}

body .cashbook-page .cashbook-mobile-search.dxbl-text-edit:focus-within {
  box-shadow: inset 0 0 0 1px var(--color-primary), 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .cashbook-page .cashbook-search-editor.dxbl-text-edit,
body .cashbook-page .cashbook-mobile-search.dxbl-text-edit {
  align-items: center;
  border-color: var(--innvilo-border-default);
  box-shadow: none;
  box-sizing: border-box;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  min-width: 0;
  width: 100%;
}

body .cashbook-page .cashbook-search-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .cashbook-page .cashbook-search-editor.dxbl-text-edit input,
body .cashbook-page .cashbook-mobile-search.dxbl-text-edit input {
  align-self: center;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  padding: 0 var(--innvilo-space-4) 0 var(--innvilo-space-3);
}

body .cashbook-page .cashbook-search-editor.dxbl-text-edit input::placeholder,
body .cashbook-page .cashbook-mobile-search.dxbl-text-edit input::placeholder {
  color: var(--innvilo-text-muted);
  line-height: 1.2;
  opacity: 1;
}

body .cashbook-page .cashbook-search-editor.dxbl-text-edit .dxbl-btn,
body .cashbook-page .cashbook-mobile-search.dxbl-text-edit .dxbl-btn {
  height: 100%;
  min-height: 0;
}

body .cashbook-page .cashbook-mobile-search.dxbl-text-edit .dxbl-btn {
  min-width: 2.75rem;
  width: 2.75rem;
}

body .cashbook-page .inquiry-filter-dropdown__button.is-active.dxbl-btn,
body .cashbook-page .cashbook-mobile-filter.is-active.dxbl-btn {
  background: var(--innvilo-color-primary-soft) !important;
  border-color: var(--color-primary) !important;
  color: var(--color-primary) !important;
}

body .cashbook-page .inquiry-filter-dropdown__button.dxbl-btn {
  gap: var(--innvilo-space-3);
  min-height: 2.5rem;
  padding-inline: var(--innvilo-space-4);
}

/* Grid: quiet header, comfortable rows, group rows as section labels, urgency stripe on the left. */
body .cashbook-page .cashbook-grid.dxbl-grid {
  border: 0;
  max-width: 100%;
  width: 100%;
}

body .cashbook-page .cashbook-grid.dxbl-grid .dxbl-grid-header-row > th {
  background: var(--innvilo-surface-app);
  border-bottom: 1px solid var(--innvilo-border-default);
  box-sizing: border-box;
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  height: 2.5rem;
  letter-spacing: 0;
  line-height: 1.2;
  padding: 0 var(--innvilo-space-6);
  text-transform: none;
  vertical-align: middle;
}

body .cashbook-page .cashbook-grid.dxbl-grid .dxbl-grid-data-row > td {
  border-color: var(--innvilo-border-default);
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
  vertical-align: middle;
}

body .cashbook-page .cashbook-grid.dxbl-grid .dxbl-grid-data-row > td:first-child {
  border-left: 3px solid transparent;
}

body .cashbook-page .cashbook-grid.dxbl-grid .dxbl-grid-data-row:hover > td {
  background: var(--innvilo-grid-hover-surface);
}

body .cashbook-page .cashbook-grid.dxbl-grid .cashbook-grid-row--urgent > td:first-child {
  border-left-color: var(--color-warning) !important;
}

body .cashbook-page .cashbook-grid.dxbl-grid .cashbook-grid-row--attention > td:first-child {
  border-left-color: var(--color-warning) !important;
}

/* Handy: der Tagesabschluss ist ein 44px-Icon-Button neben „Aktualisieren“. */
body .cashbook-page .cashbook-mobile-close.dxbl-btn {
  border-radius: var(--innvilo-radius-xs);
  height: 2.75rem;
  min-height: 2.75rem;
  width: 2.75rem;
}

/* Own pager: 40px page-size combobox and 36px square navigation buttons. */
body .cashbook-page .cashbook-pager__size-editor.dxbl-text-edit {
  align-items: center;
  border: 1px solid var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-shadow: none !important;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  height: 2.25rem;
  max-height: 2.25rem;
  min-height: 2.25rem;
  min-width: 4.5rem;
  width: 4.5rem;
}

body .cashbook-pager__size-list.dxbl-dropdown-dialog,
body .cashbook-pager__size-list .dxbl-dropdown-body {
  border-radius: var(--innvilo-radius-md);
  min-width: 4.5rem;
}

body .cashbook-pager__size-list .dxbl-list-box-item,
body .cashbook-pager__size-list [role=option] {
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-3) var(--innvilo-space-5);
}

body .cashbook-pager__size-list [aria-selected=true],
body .cashbook-pager__size-list .dxbl-list-box-item.dxbl-active {
  background: var(--innvilo-color-primary-soft) !important;
  color: var(--color-primary) !important;
}

body .cashbook-page .cashbook-pager__size-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring) !important;
}

body .cashbook-page .cashbook-pager__size-editor.dxbl-text-edit input {
  align-self: center;
  flex: 1 1 auto;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  min-width: 0;
  overflow: visible;
  padding: 0 0 0 var(--innvilo-space-4);
  text-align: left;
  text-overflow: clip;
  width: auto;
}

body .cashbook-page .cashbook-pager__size-editor.dxbl-text-edit .dxbl-btn-group {
  align-items: stretch;
  background: transparent !important;
  border: 0 !important;
  display: inline-flex;
  flex: 0 0 1.5rem;
  margin: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

body .cashbook-page .cashbook-pager__size-editor.dxbl-text-edit .dxbl-btn {
  align-items: center;
  align-self: stretch;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0;
  box-shadow: none !important;
  color: var(--innvilo-text-secondary) !important;
  display: inline-flex;
  height: auto;
  justify-content: center;
  margin: 0;
  min-height: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

body .cashbook-page .cashbook-pager__size-editor.dxbl-text-edit .dxbl-btn .dxbl-image {
  height: 0.75rem;
  width: 0.75rem;
}

body .cashbook-page .cashbook-pager__size-editor.dxbl-text-edit::after,
body .cashbook-page .cashbook-search-editor.dxbl-text-edit::after,
body .cashbook-page .cashbook-mobile-search.dxbl-text-edit::after {
  display: none;
}

body .cashbook-page .cashbook-pager__button.dxbl-btn {
  align-items: center;
  border-radius: var(--innvilo-radius-md);
  display: inline-flex;
  flex: 0 0 2.25rem;
  height: 2.25rem;
  justify-content: center;
  min-height: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .cashbook-page .cashbook-pager__button.dxbl-btn .dxbl-image {
  margin: 0;
}

body .cashbook-page .cashbook-mobile-refresh.dxbl-btn {
  border-radius: var(--innvilo-radius-xs);
  height: 2.75rem;
  min-height: 2.75rem;
  width: 2.75rem;
}

body .cashbook-page .cashbook-mobile-filter.dxbl-btn {
  background: var(--innvilo-surface-card) !important;
  border-color: var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-sizing: border-box;
  flex: 0 0 auto;
  gap: var(--innvilo-space-3);
  height: 2.75rem;
  min-height: 2.75rem;
  padding-inline: var(--innvilo-space-5);
  white-space: nowrap;
}

/* Mobile filter overlay: DevExpress popup root as a full-screen sheet. */
body .cashbook-mobile-overlay.dxbl-popup {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none;
  height: 100dvh !important;
  inset: 0 !important;
  margin: 0 !important;
  max-height: 100dvh !important;
  max-width: 100vw !important;
  position: fixed !important;
  transform: none !important;
  width: 100vw !important;
}

body .cashbook-mobile-overlay.dxbl-popup > .dxbl-modal-content,
body .cashbook-mobile-overlay.dxbl-popup .dxbl-popup-body {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  height: 100% !important;
  max-height: 100% !important;
  max-width: 100% !important;
  overflow: hidden;
  padding: 0 !important;
  width: 100% !important;
}

body .cashbook-mobile-overlay .cashbook-overlay {
  height: 100%;
}

/* Sections inside the overlay use the full height: the option list grows, actions stay at the bottom. */
body .cashbook-mobile-overlay .inquiry-filter-form {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: var(--innvilo-space-6);
}

body .cashbook-mobile-overlay .inquiry-filter-form__listbox {
  flex: 1 1 auto;
  max-height: none;
  min-height: 10rem;
}

body .cashbook-mobile-overlay .inquiry-filter-form__actions {
  margin-top: auto;
}

body .cashbook-mobile-overlay .inquiry-filter-form .dx-app-button.dxbl-btn,
body .cashbook-mobile-overlay .cashbook-overlay__done.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

/* Zeilenaktion "Öffnen": ruhiger Icon-Button im Grid (36px), Textbutton in den Karten (44px). */
body .cashbook-page .cashbook-grid .cashbook-row-open.dxbl-btn {
  align-items: center;
  background: var(--innvilo-surface-muted) !important;
  border-color: transparent !important;
  border-radius: var(--innvilo-radius-xs);
  box-sizing: border-box;
  color: var(--innvilo-text-primary) !important;
  display: inline-flex;
  flex: 0 0 2.25rem;
  height: 2.25rem;
  justify-content: center;
  line-height: 1;
  min-height: 2.25rem;
  min-width: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .cashbook-page .cashbook-grid .cashbook-row-open.dxbl-btn .dxbl-image {
  margin: 0;
}

body .cashbook-page .cashbook-grid .cashbook-row-open.dxbl-btn:hover,
body .cashbook-page .cashbook-grid .cashbook-row-open.dxbl-btn:focus-visible {
  background: var(--innvilo-border-default) !important;
  color: var(--innvilo-text-primary) !important;
}

body .cashbook-page .cashbook-mobile-card .cashbook-row-open.dxbl-btn,
body .cashbook-page .cashbook-mobile-more.dxbl-btn {
  min-height: 2.75rem;
}

body .cashbook-page .cashbook-mobile-more.dxbl-btn {
  width: 100%;
}

body .cashbook-page .cashbook-head__actions .dx-app-button.dxbl-btn {
  min-height: 2.75rem;
}

/* ---------------------------------------------------------------- Export & Buchhaltung */
body .accexport-page .dx-app-button.dxbl-btn,
body .accexport-page .dxbl-text-edit,
body .accexport-page .dxbl-combobox,
body .accexport-page .accexport-grid.dxbl-grid {
  border-radius: var(--innvilo-radius-xs);
}

body .accexport-page .accexport-head .dx-app-button.dxbl-btn,
body .accexport-page .accexport-toolbar .dx-app-button.dxbl-btn,
body .accexport-page .accexport-state .dx-app-button.dxbl-btn {
  min-height: 2.5rem;
  white-space: nowrap;
}

/* Toolbar and pager controls carry the larger control radius. */
body .accexport-page .accexport-toolbar .dxbl-text-edit,
body .accexport-page .accexport-toolbar .dxbl-combobox,
body .accexport-page .accexport-toolbar .dx-app-button.dxbl-btn,
body .accexport-page .accexport-mobile-tools .dxbl-text-edit,
body .accexport-page .accexport-mobile-filter.dxbl-btn {
  border-radius: var(--innvilo-radius-md);
}

body .accexport-page .accexport-toolbar .dxbl-text-edit,
body .accexport-page .accexport-toolbar .dxbl-combobox {
  min-height: 2.5rem;
}

/* The search field takes the button height as its measure (40px desktop, 44px mobile). */
body .accexport-page .accexport-search-editor.dxbl-text-edit {
  height: 2.5rem;
  max-height: 2.5rem;
  min-height: 2.5rem;
}

body .accexport-page .accexport-mobile-search.dxbl-text-edit {
  border: 0 !important;
  box-shadow: inset 0 0 0 1px var(--innvilo-border-default);
  flex: 1 1 auto;
  height: 2.75rem;
  max-height: 2.75rem;
  min-height: 2.75rem;
}

body .accexport-page .accexport-mobile-search.dxbl-text-edit:focus-within {
  box-shadow: inset 0 0 0 1px var(--color-primary), 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .accexport-page .accexport-search-editor.dxbl-text-edit,
body .accexport-page .accexport-mobile-search.dxbl-text-edit {
  align-items: center;
  border-color: var(--innvilo-border-default);
  box-shadow: none;
  box-sizing: border-box;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  min-width: 0;
  width: 100%;
}

body .accexport-page .accexport-search-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .accexport-page .accexport-search-editor.dxbl-text-edit input,
body .accexport-page .accexport-mobile-search.dxbl-text-edit input {
  align-self: center;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  padding: 0 var(--innvilo-space-4) 0 var(--innvilo-space-3);
}

body .accexport-page .accexport-search-editor.dxbl-text-edit input::placeholder,
body .accexport-page .accexport-mobile-search.dxbl-text-edit input::placeholder {
  color: var(--innvilo-text-muted);
  line-height: 1.2;
  opacity: 1;
}

body .accexport-page .accexport-search-editor.dxbl-text-edit .dxbl-btn,
body .accexport-page .accexport-mobile-search.dxbl-text-edit .dxbl-btn {
  height: 100%;
  min-height: 0;
}

body .accexport-page .accexport-mobile-search.dxbl-text-edit .dxbl-btn {
  min-width: 2.75rem;
  width: 2.75rem;
}

body .accexport-page .inquiry-filter-dropdown__button.is-active.dxbl-btn,
body .accexport-page .accexport-mobile-filter.is-active.dxbl-btn {
  background: var(--innvilo-color-primary-soft) !important;
  border-color: var(--color-primary) !important;
  color: var(--color-primary) !important;
}

body .accexport-page .inquiry-filter-dropdown__button.dxbl-btn {
  gap: var(--innvilo-space-3);
  min-height: 2.5rem;
  padding-inline: var(--innvilo-space-4);
}

/* Grid: quiet header, comfortable rows, group rows as section labels, urgency stripe on the left. */
body .accexport-page .accexport-grid.dxbl-grid {
  border: 0;
  max-width: 100%;
  width: 100%;
}

body .accexport-page .accexport-grid.dxbl-grid .dxbl-grid-header-row > th {
  background: var(--innvilo-surface-app);
  border-bottom: 1px solid var(--innvilo-border-default);
  box-sizing: border-box;
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  height: 2.5rem;
  letter-spacing: 0;
  line-height: 1.2;
  padding: 0 var(--innvilo-space-6);
  text-transform: none;
  vertical-align: middle;
}

body .accexport-page .accexport-grid.dxbl-grid .dxbl-grid-data-row > td {
  border-color: var(--innvilo-border-default);
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
  vertical-align: middle;
}

body .accexport-page .accexport-grid.dxbl-grid .dxbl-grid-data-row > td:first-child {
  border-left: 3px solid transparent;
}

body .accexport-page .accexport-grid.dxbl-grid .dxbl-grid-data-row:hover > td {
  background: var(--innvilo-grid-hover-surface);
}

body .accexport-page .accexport-grid.dxbl-grid .accexport-grid-row--urgent > td:first-child {
  border-left-color: var(--color-warning) !important;
}

/* „Herunterladen“ ist ein Textbutton in Zeile und Karte: 36px im Grid, 44px in der Karte. */
body .accexport-page .accexport-grid .accexport-row-download.dxbl-btn {
  border-radius: var(--innvilo-radius-xs);
  min-height: 2.25rem;
  white-space: nowrap;
}

body .accexport-page .accexport-mobile-card .accexport-row-download.dxbl-btn {
  min-height: 2.75rem;
}

/* Handy: „Export erstellen“ ist ein 44px-Icon-Button neben „Aktualisieren“. */
body .accexport-page .accexport-mobile-create.dxbl-btn {
  border-radius: var(--innvilo-radius-xs);
  height: 2.75rem;
  min-height: 2.75rem;
  width: 2.75rem;
}

/* Own pager: 40px page-size combobox and 36px square navigation buttons. */
body .accexport-page .accexport-pager__size-editor.dxbl-text-edit {
  align-items: center;
  border: 1px solid var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-shadow: none !important;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  height: 2.25rem;
  max-height: 2.25rem;
  min-height: 2.25rem;
  min-width: 4.5rem;
  width: 4.5rem;
}

body .accexport-pager__size-list.dxbl-dropdown-dialog,
body .accexport-pager__size-list .dxbl-dropdown-body {
  border-radius: var(--innvilo-radius-md);
  min-width: 4.5rem;
}

body .accexport-pager__size-list .dxbl-list-box-item,
body .accexport-pager__size-list [role=option] {
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-3) var(--innvilo-space-5);
}

body .accexport-pager__size-list [aria-selected=true],
body .accexport-pager__size-list .dxbl-list-box-item.dxbl-active {
  background: var(--innvilo-color-primary-soft) !important;
  color: var(--color-primary) !important;
}

body .accexport-page .accexport-pager__size-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring) !important;
}

body .accexport-page .accexport-pager__size-editor.dxbl-text-edit input {
  align-self: center;
  flex: 1 1 auto;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  min-width: 0;
  overflow: visible;
  padding: 0 0 0 var(--innvilo-space-4);
  text-align: left;
  text-overflow: clip;
  width: auto;
}

body .accexport-page .accexport-pager__size-editor.dxbl-text-edit .dxbl-btn-group {
  align-items: stretch;
  background: transparent !important;
  border: 0 !important;
  display: inline-flex;
  flex: 0 0 1.5rem;
  margin: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

body .accexport-page .accexport-pager__size-editor.dxbl-text-edit .dxbl-btn {
  align-items: center;
  align-self: stretch;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0;
  box-shadow: none !important;
  color: var(--innvilo-text-secondary) !important;
  display: inline-flex;
  height: auto;
  justify-content: center;
  margin: 0;
  min-height: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

body .accexport-page .accexport-pager__size-editor.dxbl-text-edit .dxbl-btn .dxbl-image {
  height: 0.75rem;
  width: 0.75rem;
}

body .accexport-page .accexport-pager__size-editor.dxbl-text-edit::after,
body .accexport-page .accexport-search-editor.dxbl-text-edit::after,
body .accexport-page .accexport-mobile-search.dxbl-text-edit::after {
  display: none;
}

body .accexport-page .accexport-pager__button.dxbl-btn {
  align-items: center;
  border-radius: var(--innvilo-radius-md);
  display: inline-flex;
  flex: 0 0 2.25rem;
  height: 2.25rem;
  justify-content: center;
  min-height: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .accexport-page .accexport-pager__button.dxbl-btn .dxbl-image {
  margin: 0;
}

body .accexport-page .accexport-mobile-refresh.dxbl-btn {
  border-radius: var(--innvilo-radius-xs);
  height: 2.75rem;
  min-height: 2.75rem;
  width: 2.75rem;
}

body .accexport-page .accexport-mobile-filter.dxbl-btn {
  background: var(--innvilo-surface-card) !important;
  border-color: var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-sizing: border-box;
  flex: 0 0 auto;
  gap: var(--innvilo-space-3);
  height: 2.75rem;
  min-height: 2.75rem;
  padding-inline: var(--innvilo-space-5);
  white-space: nowrap;
}

/* Mobile filter overlay: DevExpress popup root as a full-screen sheet. */
body .accexport-mobile-overlay.dxbl-popup {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none;
  height: 100dvh !important;
  inset: 0 !important;
  margin: 0 !important;
  max-height: 100dvh !important;
  max-width: 100vw !important;
  position: fixed !important;
  transform: none !important;
  width: 100vw !important;
}

body .accexport-mobile-overlay.dxbl-popup > .dxbl-modal-content,
body .accexport-mobile-overlay.dxbl-popup .dxbl-popup-body {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  height: 100% !important;
  max-height: 100% !important;
  max-width: 100% !important;
  overflow: hidden;
  padding: 0 !important;
  width: 100% !important;
}

body .accexport-mobile-overlay .accexport-overlay {
  height: 100%;
}

/* Sections inside the overlay use the full height: the option list grows, actions stay at the bottom. */
body .accexport-mobile-overlay .inquiry-filter-form {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: var(--innvilo-space-6);
}

body .accexport-mobile-overlay .inquiry-filter-form__listbox {
  flex: 1 1 auto;
  max-height: none;
  min-height: 10rem;
}

body .accexport-mobile-overlay .inquiry-filter-form__actions {
  margin-top: auto;
}

body .accexport-mobile-overlay .inquiry-filter-form .dx-app-button.dxbl-btn,
body .accexport-mobile-overlay .accexport-overlay__done.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

/* Zeilenaktion "Öffnen": ruhiger Icon-Button im Grid (36px), Textbutton in den Karten (44px). */
body .accexport-page .accexport-grid .accexport-row-open.dxbl-btn {
  align-items: center;
  background: var(--innvilo-surface-muted) !important;
  border-color: transparent !important;
  border-radius: var(--innvilo-radius-xs);
  box-sizing: border-box;
  color: var(--innvilo-text-primary) !important;
  display: inline-flex;
  flex: 0 0 2.25rem;
  height: 2.25rem;
  justify-content: center;
  line-height: 1;
  min-height: 2.25rem;
  min-width: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .accexport-page .accexport-grid .accexport-row-open.dxbl-btn .dxbl-image {
  margin: 0;
}

body .accexport-page .accexport-grid .accexport-row-open.dxbl-btn:hover,
body .accexport-page .accexport-grid .accexport-row-open.dxbl-btn:focus-visible {
  background: var(--innvilo-border-default) !important;
  color: var(--innvilo-text-primary) !important;
}

body .accexport-page .accexport-mobile-card .accexport-row-open.dxbl-btn,
body .accexport-page .accexport-mobile-more.dxbl-btn {
  min-height: 2.75rem;
}

body .accexport-page .accexport-mobile-more.dxbl-btn {
  width: 100%;
}

body .accexport-page .accexport-head__actions .dx-app-button.dxbl-btn {
  min-height: 2.75rem;
}

/* Geteilte DevExpress-Haken der Arbeitslisten im Anfragen-Muster (Handover 2026-09-02-anfragen-redesign).
   Jede Seite, die den Baukasten aus Components/Shared/Worklist nutzt, trägt die Klasse .pms-worklist auf ihrem
   Seitencontainer. Damit gelten diese Regeln einmal statt je Seitenpräfix; das gewöhnliche Layout bleibt in den
   scoped .razor.css-Dateien der Bausteine. Jede Regel zielt auf eine DevExpress-Wurzel (.dxbl-*), die das
   Scoped-Attribut nicht erhält. */
/* ---------------------------------------------------------------- Seitencontainer und Blockrhythmus */
.pms-worklist {
  display: grid;
  gap: var(--innvilo-page-section-gap);
  min-width: 0;
  width: 100%;
}

@media (max-width: 61.9375rem) {
  .pms-worklist {
    gap: var(--innvilo-space-8);
  }
}
/* Arbeitslistenblock: eine weiße Fläche mit 1px Rahmen; Toolbar, Pills, Grid und Pager liegen darin. */
.pms-worklist-panel {
  background: var(--innvilo-surface-card);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-xs);
  min-width: 0;
  overflow: hidden;
}

.pms-worklist-panel--plain {
  background: none;
  border: 0;
  border-radius: 0;
  overflow: visible;
}

/* Ergebniszahl unter dem Block, rechtsbündig, 8px Abstand. */
.pms-worklist-results {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-label);
  margin: calc(var(--innvilo-space-4) - var(--innvilo-page-section-gap)) 0 0;
  text-align: right;
}

/* ---------------------------------------------------------------- Knöpfe und Editoren */
.pms-worklist .dx-app-button.dxbl-btn,
.pms-worklist .dxbl-text-edit,
.pms-worklist .dxbl-combobox {
  border-radius: var(--innvilo-radius-xs);
}

.pms-worklist .pms-head__actions .dx-app-button.dxbl-btn,
.pms-worklist .pms-worklist-state__actions .dx-app-button.dxbl-btn {
  min-height: 2.5rem;
  white-space: nowrap;
}

.pms-worklist .pms-head--compact .pms-head__actions .dx-app-button.dxbl-btn {
  border-radius: var(--innvilo-radius-xs);
  height: 2.75rem;
  min-height: 2.75rem;
  width: 2.75rem;
}

.pms-worklist .pms-worklist-toolbar .dxbl-text-edit,
.pms-worklist .pms-worklist-toolbar .dx-app-button.dxbl-btn,
.pms-worklist .pms-worklist-pager__size-editor.dxbl-text-edit,
.pms-worklist .pms-worklist-pager__button.dxbl-btn {
  border-radius: var(--innvilo-radius-md);
}

/* Suchfeld: 40px auf dem Desktop, 44px kompakt; Lupe und Text auf einer Mittellinie. */
.pms-worklist .pms-worklist-toolbar__editor.dxbl-text-edit {
  align-items: center;
  border-color: var(--innvilo-border-default);
  box-shadow: none;
  box-sizing: border-box;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  height: 2.5rem;
  max-height: 2.5rem;
  min-height: 2.5rem;
  min-width: 0;
  width: 100%;
}

.pms-worklist .pms-worklist-toolbar__editor.is-compact.dxbl-text-edit {
  border: 0 !important;
  box-shadow: inset 0 0 0 1px var(--innvilo-border-default);
  height: 2.75rem;
  max-height: 2.75rem;
  min-height: 2.75rem;
}

.pms-worklist .pms-worklist-toolbar__editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring);
}

.pms-worklist .pms-worklist-toolbar__editor.is-compact.dxbl-text-edit:focus-within {
  box-shadow: inset 0 0 0 1px var(--color-primary), 0 0 0 0.2rem var(--color-primary-focus-ring);
}

.pms-worklist .pms-worklist-toolbar__editor.dxbl-text-edit input {
  align-self: center;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  padding: 0 var(--innvilo-space-4) 0 var(--innvilo-space-3);
}

.pms-worklist .pms-worklist-toolbar__editor.dxbl-text-edit input::placeholder {
  color: var(--innvilo-text-muted);
  line-height: 1.2;
  opacity: 1;
}

.pms-worklist .pms-worklist-toolbar__editor.dxbl-text-edit .dxbl-btn {
  height: 100%;
  min-height: 0;
}

.pms-worklist .pms-worklist-toolbar__editor.is-compact.dxbl-text-edit .dxbl-btn {
  min-width: 2.75rem;
  width: 2.75rem;
}

.pms-worklist .pms-worklist-toolbar__editor.dxbl-text-edit::after,
.pms-worklist .pms-worklist-pager__size-editor.dxbl-text-edit::after {
  display: none;
}

/* Filterknöpfe: geteiltes InquiryFilterDropdown, kompakt der Overlay-Knopf. */
.pms-worklist .inquiry-filter-dropdown__button.dxbl-btn {
  gap: var(--innvilo-space-3);
  min-height: 2.5rem;
  padding-inline: var(--innvilo-space-4);
}

.pms-worklist .pms-worklist-toolbar__filter.dxbl-btn {
  background: var(--innvilo-surface-card) !important;
  border-color: var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-sizing: border-box;
  flex: 0 0 auto;
  gap: var(--innvilo-space-3);
  height: 2.75rem;
  min-height: 2.75rem;
  padding-inline: var(--innvilo-space-5);
}

.pms-worklist .inquiry-filter-dropdown__button.is-active.dxbl-btn,
.pms-worklist .pms-worklist-toolbar__filter.is-active.dxbl-btn {
  background: var(--innvilo-color-primary-soft) !important;
  border-color: var(--color-primary) !important;
  color: var(--color-primary) !important;
}

/* ---------------------------------------------------------------- Grid */
.pms-worklist .pms-worklist-grid.dxbl-grid {
  border: 0;
  border-radius: 0;
  max-width: 100%;
  width: 100%;
}

.pms-worklist .pms-worklist-grid.dxbl-grid .dxbl-grid-header-row > th {
  background: var(--innvilo-surface-app);
  border-bottom: 1px solid var(--innvilo-border-default);
  box-sizing: border-box;
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  height: 2.5rem;
  letter-spacing: 0;
  line-height: 1.2;
  padding: 0 var(--innvilo-space-6);
  text-transform: none;
  vertical-align: middle;
}

.pms-worklist .pms-worklist-grid.dxbl-grid .dxbl-grid-data-row > td {
  border-color: var(--innvilo-border-default);
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
  vertical-align: middle;
}

.pms-worklist .pms-worklist-grid.dxbl-grid .dxbl-grid-data-row > td:first-child {
  border-left: 3px solid transparent;
}

.pms-worklist .pms-worklist-grid.dxbl-grid .dxbl-grid-data-row:hover > td {
  background: var(--innvilo-grid-hover-surface);
}

.pms-worklist .pms-worklist-grid.dxbl-grid .pms-worklist-row--attention > td:first-child {
  border-left-color: var(--color-warning) !important;
}

/* Zeilenaktionen: quadratische 36px-Knöpfe ohne Rahmen, in Karten 44px. */
.pms-worklist .pms-worklist-row-action.dxbl-btn {
  align-items: center;
  background: var(--innvilo-surface-muted) !important;
  border-color: transparent !important;
  border-radius: var(--innvilo-radius-xs);
  box-sizing: border-box;
  color: var(--innvilo-text-primary) !important;
  display: inline-flex;
  flex: 0 0 2.25rem;
  height: 2.25rem;
  justify-content: center;
  line-height: 1;
  min-height: 2.25rem;
  min-width: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

.pms-worklist .pms-worklist-row-action.dxbl-btn .dxbl-image {
  margin: 0;
}

.pms-worklist .pms-worklist-row-action.dxbl-btn:hover,
.pms-worklist .pms-worklist-row-action.dxbl-btn:focus-visible {
  background: var(--innvilo-border-default) !important;
  color: var(--innvilo-text-primary) !important;
}

.pms-worklist .pms-worklist-card .pms-worklist-row-action.dxbl-btn {
  flex: 0 0 2.75rem;
  height: 2.75rem;
  min-height: 2.75rem;
  min-width: 2.75rem;
  width: 2.75rem;
}

/* Karten und die Schaltfläche „weitere laden“ tragen kompakt das 44px-Touchmaß. */
.pms-worklist .pms-worklist-card .dx-app-button.dxbl-btn {
  min-height: 2.75rem;
}

.pms-worklist .pms-worklist-more.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

/* ---------------------------------------------------------------- Pager */
.pms-worklist .pms-worklist-pager__size-editor.dxbl-text-edit {
  align-items: center;
  border: 1px solid var(--innvilo-border-default) !important;
  box-shadow: none !important;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  height: 2.25rem;
  max-height: 2.25rem;
  min-height: 2.25rem;
  min-width: 4.5rem;
  width: 4.5rem;
}

.pms-worklist .pms-worklist-pager__size-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring) !important;
}

.pms-worklist .pms-worklist-pager__size-editor.dxbl-text-edit input {
  align-self: center;
  flex: 1 1 auto;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  min-width: 0;
  overflow: visible;
  padding: 0 0 0 var(--innvilo-space-4);
  text-align: left;
  text-overflow: clip;
  width: auto;
}

.pms-worklist .pms-worklist-pager__size-editor.dxbl-text-edit .dxbl-btn-group {
  align-items: stretch;
  background: transparent !important;
  border: 0 !important;
  display: inline-flex;
  flex: 0 0 1.5rem;
  margin: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

.pms-worklist .pms-worklist-pager__size-editor.dxbl-text-edit .dxbl-btn {
  align-items: center;
  align-self: stretch;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0;
  box-shadow: none !important;
  color: var(--innvilo-text-secondary) !important;
  display: inline-flex;
  height: auto;
  justify-content: center;
  margin: 0;
  min-height: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

.pms-worklist .pms-worklist-pager__size-editor.dxbl-text-edit .dxbl-btn .dxbl-image {
  height: 0.75rem;
  width: 0.75rem;
}

.pms-worklist .pms-worklist-pager__button.dxbl-btn {
  align-items: center;
  display: inline-flex;
  flex: 0 0 2.25rem;
  height: 2.25rem;
  justify-content: center;
  min-height: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

.pms-worklist .pms-worklist-pager__button.dxbl-btn .dxbl-image {
  margin: 0;
}

/* Die Seitengrößen-Liste hängt als Popup außerhalb der Seite. */
body .pms-worklist-pager__size-list.dxbl-dropdown-dialog,
body .pms-worklist-pager__size-list .dxbl-dropdown-body {
  border-radius: var(--innvilo-radius-md);
  min-width: 4.5rem;
}

body .pms-worklist-pager__size-list .dxbl-list-box-item,
body .pms-worklist-pager__size-list [role=option] {
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-3) var(--innvilo-space-5);
}

body .pms-worklist-pager__size-list [aria-selected=true],
body .pms-worklist-pager__size-list .dxbl-list-box-item.dxbl-active {
  background: var(--innvilo-color-primary-soft) !important;
  color: var(--color-primary) !important;
}

/* ---------------------------------------------------------------- Filter-Overlay (Handy und Tablet) */
body .pms-worklist-overlay.dxbl-popup {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none;
  height: 100dvh !important;
  inset: 0 !important;
  margin: 0 !important;
  max-height: 100dvh !important;
  max-width: 100vw !important;
  position: fixed !important;
  transform: none !important;
  width: 100vw !important;
}

body .pms-worklist-overlay.dxbl-popup > .dxbl-modal-content,
body .pms-worklist-overlay.dxbl-popup .dxbl-popup-body {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  height: 100% !important;
  max-height: 100% !important;
  max-width: 100% !important;
  overflow: hidden;
  padding: 0 !important;
  width: 100% !important;
}

body .pms-worklist-overlay .inquiry-filter-form {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: var(--innvilo-space-6);
}

body .pms-worklist-overlay .inquiry-filter-form__listbox {
  flex: 1 1 auto;
  max-height: none;
  min-height: 10rem;
}

body .pms-worklist-overlay .inquiry-filter-form__actions {
  margin-top: auto;
}

body .pms-worklist-overlay .inquiry-filter-form .dx-app-button.dxbl-btn,
body .pms-worklist-overlay .pms-worklist-overlay__done.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

/* Ab 992px öffnet dasselbe Overlay den Rest der Kriterien neben einer verkürzten Filterzeile
   (PmsWorklistToolbar.PrimaryFilterKeys). Auf dem Desktop schwebt es als Dialog und bekommt deshalb
   als einzige Fläche dieses Blocks einen Schatten. */
@media (min-width: 62rem) {
  body .pms-worklist-overlay.dxbl-popup {
    border: 1px solid var(--innvilo-border-default) !important;
    border-radius: var(--innvilo-radius-md) !important;
    box-shadow: var(--innvilo-shadow-popover);
    /* Feste Höhe statt max-height: die Hülle rechnet mit 100 % ihres Elternteils, und wie viel
       Innenabstand DevExpress um den Rumpf legt, ist nicht unsere Zusage. */
    height: min(40rem, 82vh) !important;
    inset: auto !important;
    left: 50% !important;
    max-height: 82vh !important;
    max-width: 32rem !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: 32rem !important;
  }
  body .pms-worklist-overlay.dxbl-popup > .dxbl-modal-content,
  body .pms-worklist-overlay.dxbl-popup .dxbl-popup-body {
    border-radius: var(--innvilo-radius-md) !important;
  }
  body .pms-worklist-overlay .pms-worklist-overlay__done.dxbl-btn {
    width: auto;
  }
}
/* Front-Office Check-in (fünf Schritte). Gemeinsame Bausteine der Schrittkomponenten (ci-unit, ci-facts,
   ci-table, ci-doc, ci-ledger, ci-pill) und alle DevExpress-Haken des Check-ins. Die Hülle (Stepper, Panel,
   Aside, Aktionsleiste) liegt in FrontOfficeCheckIn.razor.css. Ein Akzent, keine Schatten, Trennung durch
   Hairlines und Flächenwechsel. */
.ci-stay,
.ci-guests,
.ci-payment,
.ci-documents,
.ci-finish {
  display: grid;
  gap: var(--innvilo-space-6);
  min-width: 0;
}

/* Block je Einheit oder Thema */
.ci-unit,
.ci-group,
.ci-docs,
.ci-result {
  border-top: 1px solid var(--innvilo-border-default);
  display: grid;
  gap: var(--innvilo-space-5);
  min-width: 0;
  padding-top: var(--innvilo-space-5);
}

.ci-unit.is-attention {
  border-left: 2px solid var(--color-warning);
  padding-left: var(--innvilo-space-4);
}

.ci-unit__head,
.ci-group__head {
  align-items: flex-start;
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-3) var(--innvilo-space-5);
  justify-content: space-between;
}

.ci-unit__head > div,
.ci-group__head > div {
  display: grid;
  flex: 1 1 18rem;
  gap: var(--innvilo-space-1);
  min-width: 0;
}

.ci-unit__head h3,
.ci-group__head h3 {
  color: var(--innvilo-text-primary);
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-subheading);
  line-height: 1.3;
  margin: 0;
}

.ci-unit__head p,
.ci-group__head p {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  line-height: 1.5;
  margin: 0;
  max-width: 70ch;
}

/* Statuspille: Text trägt die Bedeutung, Farbe unterstützt nur. */
.ci-pill {
  align-items: center;
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-full);
  color: var(--innvilo-text-secondary);
  display: inline-flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-micro);
  letter-spacing: var(--innvilo-tracking-caption);
  line-height: 1.2;
  padding: var(--innvilo-space-1) var(--innvilo-space-3);
  white-space: nowrap;
}

.ci-pill[data-tone=ready],
.ci-pill[data-tone=checked-in] {
  border-color: var(--color-success-border);
  color: var(--color-success);
}

.ci-pill[data-tone=blocked] {
  border-color: var(--color-warning-border);
  color: var(--color-warning-text);
}

/* Faktenzeile */
.ci-facts {
  display: grid;
  gap: var(--innvilo-space-4) var(--innvilo-space-6);
  grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
  margin: 0;
}

.ci-facts > div {
  display: grid;
  gap: var(--innvilo-space-1);
  min-width: 0;
}

.ci-facts dt {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-micro);
  letter-spacing: var(--innvilo-tracking-caption);
}

.ci-facts dd {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
  font-variant-numeric: tabular-nums;
  margin: 0;
  overflow-wrap: anywhere;
}

.ci-room-state {
  display: grid;
  gap: var(--innvilo-space-1);
  min-height: 2.75rem;
  justify-content: start;
}

.ci-room-state strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
}

.ci-room-state span {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
}

.nb-notice a {
  color: var(--innvilo-text-link);
  margin-left: var(--innvilo-space-2);
}

/* Gruppe: Liste der Einheiten */
.ci-mode {
  display: inline-flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  gap: var(--innvilo-space-2);
}

.ci-group__units,
.ci-doc-list,
.ci-folio-list,
.ci-ledger,
.ci-result__list {
  display: grid;
  gap: var(--innvilo-space-2);
  list-style: none;
  margin: 0;
  padding: 0;
}

.ci-group__unit,
.ci-doc,
.ci-folio,
.ci-result__list > li {
  align-items: center;
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-xs);
  display: grid;
  gap: var(--innvilo-space-3) var(--innvilo-space-4);
  grid-template-columns: auto minmax(0, 1fr) auto;
  min-width: 0;
  padding: var(--innvilo-space-3) var(--innvilo-space-4);
}

.ci-group__unit.is-selected {
  background: var(--innvilo-color-primary-soft);
  border-color: var(--innvilo-color-primary);
}

.ci-group__unit.is-checked-in {
  color: var(--innvilo-text-secondary);
}

.ci-group__mark {
  align-items: center;
  color: var(--innvilo-text-muted);
  display: inline-flex;
  font-size: var(--innvilo-font-size-caption);
  justify-content: center;
  width: 1.5rem;
}

.ci-group__copy,
.ci-doc__copy,
.ci-folio__copy,
.ci-result__list > li > div {
  display: grid;
  gap: var(--innvilo-space-1);
  min-width: 0;
}

.ci-group__copy strong,
.ci-doc__copy strong,
.ci-folio__copy strong,
.ci-result__list strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  overflow-wrap: anywhere;
}

.ci-group__copy span,
.ci-doc__meta,
.ci-folio__copy span,
.ci-result__list > li > div > span {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  line-height: 1.4;
}

.ci-group__state {
  align-items: flex-end;
  display: grid;
  gap: var(--innvilo-space-1);
  justify-items: end;
}

.ci-group__pay {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.ci-doc,
.ci-folio {
  grid-template-columns: minmax(0, 1fr) auto;
}

.ci-doc__copy .ci-pill {
  justify-self: start;
}

.ci-doc__actions,
.ci-folio__actions,
.ci-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-2);
  justify-content: flex-end;
}

/* Reiter zur Gastwahl in Schritt 2 */
.ci-unit-tabs {
  border-bottom: 1px solid var(--innvilo-border-default);
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-1);
}

.ci-unit-tabs__tab {
  background: transparent;
  border: 0;
  border-bottom: 2px solid transparent;
  color: var(--innvilo-text-secondary);
  cursor: pointer;
  display: grid;
  font: inherit;
  gap: var(--innvilo-space-1);
  margin-bottom: -1px;
  min-height: 2.75rem;
  padding: var(--innvilo-space-2) var(--innvilo-space-4);
  text-align: left;
  transition: color var(--innvilo-duration-fast) var(--innvilo-easing-standard), border-color var(--innvilo-duration-fast) var(--innvilo-easing-standard);
}

.ci-unit-tabs__tab span {
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
}

.ci-unit-tabs__tab small {
  font-size: var(--innvilo-font-size-micro);
}

.ci-unit-tabs__tab[aria-selected=true] {
  border-bottom-color: var(--innvilo-color-primary);
  color: var(--innvilo-text-primary);
}

.ci-unit-tabs__tab:hover {
  color: var(--innvilo-text-primary);
}

.ci-unit-tabs__tab:focus-visible {
  outline: 2px solid var(--innvilo-border-focus);
  outline-offset: -2px;
}

.ci-details {
  border-top: 1px solid var(--innvilo-border-soft);
}

.ci-details summary {
  color: var(--innvilo-text-primary);
  cursor: pointer;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  min-height: 2.75rem;
  padding: var(--innvilo-space-3) 0;
}

.ci-details summary:focus-visible {
  outline: 2px solid var(--innvilo-border-focus);
  outline-offset: 2px;
}

.ci-details__body {
  display: grid;
  gap: var(--innvilo-space-5);
  padding-bottom: var(--innvilo-space-4);
}

.ci-person {
  border-top: 1px solid var(--innvilo-border-soft);
  display: grid;
  gap: var(--innvilo-space-4);
  padding-top: var(--innvilo-space-4);
}

.ci-person > header {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.ci-check {
  align-items: center;
  color: var(--innvilo-text-primary);
  cursor: pointer;
  display: inline-flex;
  font-size: var(--innvilo-font-size-caption);
  gap: var(--innvilo-space-2);
  min-height: 2.75rem;
}

/* Zahlungstabelle */
.ci-table {
  border-collapse: collapse;
  font-size: var(--innvilo-font-size-caption);
  width: 100%;
}

.ci-table th,
.ci-table td {
  border-bottom: 1px solid var(--innvilo-border-soft);
  padding: var(--innvilo-space-3) var(--innvilo-space-3);
  text-align: left;
  vertical-align: top;
}

.ci-table thead th {
  color: var(--innvilo-text-secondary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-micro);
  letter-spacing: var(--innvilo-tracking-caption);
}

.ci-table tbody th {
  display: grid;
  font-weight: normal;
  gap: var(--innvilo-space-1);
}

.ci-table tbody th strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
}

.ci-table tbody th span {
  color: var(--innvilo-text-secondary);
}

.ci-table .is-num {
  font-variant-numeric: tabular-nums;
  text-align: right;
  white-space: nowrap;
}

.ci-table tfoot th,
.ci-table tfoot td {
  border-bottom: 0;
  border-top: 1px solid var(--innvilo-border-strong);
  color: var(--innvilo-text-primary);
  font-family: "Lato-Bold", Arial, sans-serif;
}

.ci-table .is-open {
  color: var(--color-warning-text);
}

.ci-table .is-paid {
  color: var(--color-success);
}

.ci-decision {
  align-items: center;
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-xs);
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-3) var(--innvilo-space-5);
  justify-content: space-between;
  padding: var(--innvilo-space-3) var(--innvilo-space-4);
}

.ci-decision[data-needs-decision=true] {
  border-color: var(--color-warning-border);
}

.ci-decision > div {
  display: grid;
  gap: var(--innvilo-space-1);
  min-width: 0;
}

.ci-decision strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
}

.ci-decision span {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
}

.ci-methods {
  display: grid;
  gap: var(--innvilo-space-2);
  grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
}

.ci-methods__copy {
  display: grid;
  gap: 0.125rem;
  text-align: left;
}

.ci-methods__copy strong {
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
}

.ci-methods__copy small {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-micro);
}

.ci-submit {
  align-items: center;
  border-top: 1px solid var(--innvilo-border-soft);
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-3);
  justify-content: space-between;
  padding-top: var(--innvilo-space-4);
}

.ci-submit > span {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  font-variant-numeric: tabular-nums;
}

.ci-link {
  align-items: center;
  display: inline-flex;
  min-height: 2.75rem;
  background: transparent;
  border: 0;
  color: var(--innvilo-text-link);
  cursor: pointer;
  font: inherit;
  padding: 0;
  text-decoration: underline;
}

.ci-link:focus-visible {
  outline: 2px solid var(--innvilo-border-focus);
  outline-offset: 2px;
}

.ci-ledger > li {
  border-top: 1px solid var(--innvilo-border-soft);
  display: grid;
  gap: var(--innvilo-space-1) var(--innvilo-space-4);
  grid-template-columns: minmax(0, 1fr) auto;
  padding: var(--innvilo-space-3) 0;
}

.ci-ledger__main {
  color: var(--innvilo-text-primary);
  font-size: var(--innvilo-font-size-caption);
  grid-column: 1;
}

.ci-ledger__main strong {
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-variant-numeric: tabular-nums;
}

.ci-ledger__meta {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-micro);
  grid-column: 1;
}

.ci-ledger > li > .dxbl-btn {
  grid-column: 2;
  grid-row: 1/span 2;
}

.ci-refund {
  border-top: 1px solid var(--innvilo-border-soft);
  display: grid;
  gap: var(--innvilo-space-4);
  grid-column: 1/-1;
  padding-top: var(--innvilo-space-3);
}

.ci-confirm-copy {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-body);
  line-height: 1.5;
  margin: 0;
}

.ci-confirm-copy strong {
  color: var(--innvilo-text-primary);
}

/* DevExpress-Haken */
.checkin-room-editor.dxbl-combobox,
.checkin-access-editor.dxbl-combobox {
  min-width: 12rem;
}

.ci-mode .ci-mode__button.dxbl-btn {
  min-height: 2.75rem;
}

.ci-methods .ci-methods__card.dxbl-btn {
  justify-content: flex-start;
  min-height: 3.25rem;
  text-align: left;
}

.ci-methods .ci-methods__card.dxbl-btn .dxbl-btn-content {
  justify-content: flex-start;
  width: 100%;
}

.ci-methods .ci-methods__card.dxbl-btn.is-selected {
  background: var(--innvilo-color-primary-soft);
  border-color: var(--innvilo-color-primary);
}

.ci-checkbox.dxbl-checkbox {
  flex: 0 0 auto;
}

.ci-group__check.dxbl-checkbox {
  margin: 0;
}

.checkin-pdf-viewer.dxbl-pdf-viewer {
  height: min(740px, 76vh);
  width: 100%;
}

.ci-pdf-shell {
  min-height: 20rem;
}

@media (max-width: 47.99rem) {
  .ci-group__unit,
  .ci-doc,
  .ci-folio {
    grid-template-columns: minmax(0, 1fr);
  }
  .ci-group__unit {
    grid-template-columns: auto minmax(0, 1fr);
  }
  .ci-group__state {
    align-items: flex-start;
    grid-column: 2;
    justify-items: start;
  }
  .ci-doc__actions,
  .ci-folio__actions {
    justify-content: flex-start;
  }
  .ci-table {
    display: block;
    overflow-x: auto;
  }
}
@media (prefers-reduced-motion: reduce) {
  .ci-unit-tabs__tab {
    transition: none;
  }
}
/* Zusammenfassung (CheckInSummary), auf dem Desktop im Aside, kompakt im Sheet der Aktionsleiste */
.ci-summary {
  display: grid;
  gap: var(--innvilo-space-5);
  min-width: 0;
}

.ci-summary__head {
  border-bottom: 1px solid var(--innvilo-border-default);
  display: grid;
  gap: var(--innvilo-space-1);
  padding-bottom: var(--innvilo-space-4);
}

.ci-summary__head strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
  overflow-wrap: anywhere;
}

.ci-summary__head span {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
}

.ci-summary__facts {
  display: grid;
  gap: var(--innvilo-space-3) var(--innvilo-space-4);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
}

.ci-summary__facts > div {
  display: grid;
  gap: var(--innvilo-space-1);
  min-width: 0;
}

.ci-summary__facts dt {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-micro);
  letter-spacing: var(--innvilo-tracking-caption);
}

.ci-summary__facts dd {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  font-variant-numeric: tabular-nums;
  margin: 0;
  overflow-wrap: anywhere;
}

.ci-summary__facts dd.is-open {
  color: var(--color-warning-text);
}

.ci-summary__facts dd.is-paid {
  color: var(--color-success);
}

.ci-summary__units {
  display: grid;
  gap: var(--innvilo-space-2);
  list-style: none;
  margin: 0;
  padding: 0;
}

.ci-summary__units li {
  border-left: 2px solid var(--innvilo-border-strong);
  display: grid;
  gap: 0 var(--innvilo-space-2);
  grid-template-columns: minmax(0, 1fr) auto;
  padding-left: var(--innvilo-space-3);
}

.ci-summary__units li[data-unit-readiness=ready],
.ci-summary__units li[data-unit-readiness=checked-in] {
  border-left-color: var(--color-success);
}

.ci-summary__units li[data-unit-readiness=blocked] {
  border-left-color: var(--color-warning);
}

.ci-summary__unit-name {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  overflow-wrap: anywhere;
}

.ci-summary__unit-room {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-micro);
  grid-column: 2;
  grid-row: 1;
  white-space: nowrap;
}

.ci-summary__unit-state {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-micro);
  grid-column: 1/-1;
}

.ci-summary__next {
  border-top: 1px solid var(--innvilo-border-default);
  display: grid;
  gap: var(--innvilo-space-1);
  padding-top: var(--innvilo-space-4);
}

.ci-summary__next span {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-micro);
  letter-spacing: var(--innvilo-tracking-caption);
}

.ci-summary__next strong {
  color: var(--innvilo-color-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
}

/* DevExpress-Haken der Housekeeping-Berichte (/housekeeping/berichte) und der Analyse (/housekeeping/analyse).
   Beide Seiten tragen .pms-worklist und erben die Arbeitslisten-Regeln aus _worklist.scss; hier stehen nur die
   Ergänzungen, die diese zwei Seiten zusätzlich brauchen. Jede Regel zielt auf eine DevExpress-Wurzel (.dxbl-*),
   die das Scoped-Attribut der .razor.css nicht erhält. Eingehängt wird die Datei in global.scss vor ./worklist. */
/* Datumsfelder im Kopf: kompakt wie die Knöpfe daneben, gleiche Höhe, gleicher Radius. */
.housekeeping-reports-page .housekeeping-reports-date .dxbl-text-edit,
.housekeeping-analytics-page .housekeeping-analytics-date .dxbl-text-edit {
  min-height: 2.5rem;
  min-width: 9.5rem;
}

/* Mitarbeiterauswahl im Punktebereich: bündig mit den Aktionsknöpfen. */
.housekeeping-analytics-page .hk-points__employee .dxbl-combobox {
  min-height: 2.5rem;
  min-width: 14rem;
}

/* Diagramme: kein Rahmen und kein Schatten um die SVG-Fläche, die Karte trägt den Rahmen. */
.housekeeping-reports-page .hk-charts__chart.dxbl-chart,
.housekeeping-analytics-page .hk-analytics-charts__chart.dxbl-chart {
  background: transparent;
  border: 0;
  box-shadow: none;
}

/* Regelwerksdialog: Zahleneditoren tabellarisch, Beschriftung darüber. */
.hk-ruleset .dxbl-spin-edit .dxbl-edit-input,
.hk-ruleset .dxbl-text-edit .dxbl-edit-input {
  font-variant-numeric: tabular-nums;
}

/* Reiterleiste unter 992px: Akkordeonflächen ohne doppelten Rahmen um eingebettete Arbeitslistenflächen. */
@media (max-width: 61.9375rem) {
  .pms-worklist-tabs__body > .pms-worklist-panel {
    border: 0;
    border-radius: 0;
  }
}
/* ---------------------------------------------------------------- Bericht für die Geschäftsführung (HousekeepingManagementBoard) */
/* Sieben Kennzahlen in einer Reihe ab 992px: die geteilte Leiste kennt nur zwei bis vier Spalten, deshalb
   überschreibt die Seite Spaltenzahl und Trennlinien der Zellen. Kompakt bleibt die 2×n-Aufteilung. */
@media (min-width: 62rem) {
  .housekeeping-management-page section.pms-kpi-band.housekeeping-management-kpis {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }
  .housekeeping-management-page section.pms-kpi-band.housekeeping-management-kpis .pms-kpi-cell {
    border-top: 0;
  }
  .housekeeping-management-page section.pms-kpi-band.housekeeping-management-kpis .pms-kpi-cell:not(:first-child) {
    border-left: 1px solid var(--innvilo-border-default);
  }
}
/* Datumsfelder im Kopf: kompakt wie die Knöpfe daneben. */
.housekeeping-management-page .housekeeping-management-date .dxbl-text-edit {
  min-height: 2.5rem;
  min-width: 9.5rem;
}

/* Grids des Berichts: Zahlen tabellarisch, Zeilenmarker für Bestellen, Wochenende und Summen. */
.housekeeping-management-page .hk-mgmt-grid.dxbl-grid .dxbl-grid-data-row > td {
  font-variant-numeric: tabular-nums;
}

.housekeeping-management-page .hk-mgmt-grid.dxbl-grid .hk-mgmt-row--order > td {
  background: var(--color-error-soft);
}

.housekeeping-management-page .hk-mgmt-grid.dxbl-grid .hk-mgmt-row--order > td:first-child {
  border-left-color: var(--color-error) !important;
}

.housekeeping-management-page .hk-mgmt-grid.dxbl-grid .hk-mgmt-row--weekend > td {
  background: var(--innvilo-surface-app);
}

.housekeeping-management-page .hk-mgmt-grid.dxbl-grid .hk-mgmt-row--sum > td {
  background: var(--innvilo-surface-app);
  border-top: 1px solid var(--innvilo-border-strong);
  font-family: "Lato-SemiBold", Arial, sans-serif;
}

/* Zeilenaktionen als Textknöpfe: 32px hoch im Grid, 44px in Karten. */
.housekeeping-management-page .hk-mgmt-row-button.dxbl-btn {
  font-size: var(--innvilo-font-size-caption);
  min-height: 2rem;
  padding: 0 var(--innvilo-space-4);
  white-space: nowrap;
}

.housekeeping-management-page .pms-worklist-card .hk-mgmt-row-button.dxbl-btn {
  min-height: 2.75rem;
}

/* Diagramm der Zeitraum-Vorschau: die Fläche trägt den Rahmen, nicht das SVG. */
.housekeeping-management-page .hk-period__chart.dxbl-chart {
  background: transparent;
  border: 0;
  box-shadow: none;
}

/* Erfassungsdialoge des Berichts: Hinweis unter einem Feld und Fehlerliste des Dienstes. Die Dialoge rendern im
   Popup-Zentrum außerhalb der Seite; deshalb liegen die Regeln hier statt in einer scoped Datei. */
.hk-mgmt-dialog .hk-mgmt-dialog__hint {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  line-height: 1.45;
}

.hk-mgmt-dialog .hk-mgmt-dialog__errors {
  border-left: 2px solid var(--color-error);
  color: var(--color-error);
  display: grid;
  font-size: var(--innvilo-font-size-label);
  gap: var(--innvilo-space-1);
  list-style: none;
  margin: 0;
  padding: var(--innvilo-space-1) var(--innvilo-space-4);
}

/* Kopf und Werkzeugleiste des Managementberichts: Zeitraumpillen 40px, kompakt 44px in einer scrollbaren Reihe;
   die Kopfaktionen dürfen kompakt die volle Breite nehmen, damit nichts abgeschnitten wird. */
.housekeeping-management-page .housekeeping-management-range .dx-dashboard-insights-range.dxbl-btn {
  flex: 0 0 auto;
  min-height: 2.5rem;
  white-space: nowrap;
}

.housekeeping-management-page header.pms-head--compact .pms-head__actions {
  flex: 1 1 100%;
  justify-content: space-between;
  min-width: 0;
}

.housekeeping-management-page .pms-head--compact .housekeeping-management-range {
  flex: 1 1 auto;
  min-width: 0;
}

.housekeeping-management-page .pms-head--compact .housekeeping-management-range .dx-dashboard-insights-range.dxbl-btn {
  min-height: 2.75rem;
}

.housekeeping-management-page .housekeeping-management-toolbar .dx-app-button.dxbl-btn,
.housekeeping-management-page .housekeeping-management-toolbar .dxbl-text-edit {
  min-height: 2.5rem;
}

.housekeeping-management-page .housekeeping-management-toolbar.is-compact .dx-app-button.dxbl-btn {
  min-height: 2.75rem;
}

/* Kompakt tragen alle Knöpfe der Abschnitte und der Leerzustände das 44px-Touchmaß. */
.housekeeping-management-page .hk-mgmt.is-compact .dx-app-button.dxbl-btn,
.housekeeping-management-page .hk-period.is-compact .dx-app-button.dxbl-btn,
.housekeeping-management-page .pms-worklist-state.is-compact .pms-worklist-state__actions .dx-app-button.dxbl-btn {
  min-height: 2.75rem;
}

/* Kompakte KPI-Leiste mit sieben Zellen: die letzte Zelle bleibt halb breit statt sich über beide Spalten zu strecken. */
.housekeeping-management-page .pms-kpi-band--compact.housekeeping-management-kpis .pms-kpi-cell:last-child:nth-child(odd) {
  grid-column: 1/2;
}

/* Gestreckte Flächen: ein Leerzustand steht mittig in der Fläche seiner Reihe, ohne eigene Mindesthöhe; unter einem
   Grid bleibt kein leerer Fuß- oder Pagerbereich stehen. */
.housekeeping-management-page .hk-mgmt__block .pms-worklist-panel > .pms-worklist-state,
.housekeeping-management-page .hk-period__block .pms-worklist-panel > .pms-worklist-state {
  margin: auto 0;
}

.housekeeping-management-page .hk-mgmt-grid.dxbl-grid .dxbl-grid-footer:empty,
.housekeeping-management-page .hk-mgmt-grid.dxbl-grid .dxbl-grid-pager:empty {
  display: none;
}

/* Grids in den festen 26rem-Flächen: das Grid nimmt die Resthöhe, die Zeilen scrollen im Grid, die Kopfzeile bleibt
   oben. Knöpfe im Abschnittskopf brechen nie unter den Text. */
.housekeeping-management-page .hk-mgmt__table > .hk-mgmt-grid.dxbl-grid {
  flex: 1 1 auto;
  height: auto;
  min-height: 0;
}

.housekeeping-management-page .hk-mgmt-grid.dxbl-grid .dxbl-grid-header-row > th {
  position: sticky;
  top: 0;
  z-index: 2;
}

.housekeeping-management-page .hk-mgmt__head .dx-app-button.dxbl-btn {
  white-space: nowrap;
}

html,
body {
  display: flex;
  flex-direction: column;
  margin: 0;
  min-height: 100%;
  padding: 0;
}

body {
  background: var(--color-surface-soft);
  color: var(--color-text);
  max-width: 100vw;
  min-height: 100dvh;
}

/* Auch die Flächen, die der Browser selbst zeichnet, gehören zum Produkt: Textauswahl,
   Schreibmarke und Bildlaufleisten kommen sonst aus keinem Designsystem. */
::selection {
  background: var(--color-accent-soft);
  color: var(--color-text);
}

input,
textarea,
[contenteditable] {
  caret-color: var(--color-primary);
}

/* Beide Eigenschaften vererben. Sie gehören deshalb an die Wurzel und nicht an jedes Element —
   ein `*`-Selektor würde zusätzlich jede bewusst abweichende Einstellung einer Komponente
   überschreiben und die Breite von Bildlaufleisten in Grids verändern. */
html {
  scrollbar-color: var(--color-border-strong) transparent;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

a {
  color: inherit;
  text-decoration: none;
}

img,
svg,
canvas,
video,
iframe,
table {
  max-width: 100%;
}

.icon {
  align-items: center;
  display: inline-flex;
  justify-content: center;
}

.icon-sm {
  font-size: 14px;
}

.icon-md {
  font-size: 18px;
}

.icon-lg {
  font-size: 24px;
}

.local-icon {
  display: inline-block;
  font-size: 24px;
  font-style: normal;
  font-weight: normal;
  line-height: 1;
}

.pms-scope-gate {
  align-items: center;
  background: var(--innvilo-surface-app);
  display: grid;
  justify-items: center;
  min-height: 100dvh;
  padding: var(--innvilo-space-9);
  width: 100%;
}

.pms-scope-gate-panel {
  background: var(--innvilo-surface-card);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-card);
  box-shadow: var(--innvilo-shadow-card);
  display: grid;
  gap: var(--innvilo-space-6);
  margin: 0 auto;
  max-width: 36rem;
  padding: var(--innvilo-space-9);
  width: 100%;
}

.pms-scope-gate-panel.is-denied {
  background: var(--color-error-surface);
  border-color: var(--color-error-border);
}

.pms-scope-gate-panel h1,
.pms-scope-gate-panel p {
  margin: 0;
}

.pms-scope-gate-panel h1 {
  color: var(--innvilo-text-primary);
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-title);
  line-height: 1.25;
}

.pms-scope-gate-panel p {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-body);
  line-height: 1.55;
  max-width: 58ch;
}

.pms-scope-gate-form,
.pms-scope-gate-field {
  display: grid;
}

.pms-scope-gate-form {
  gap: var(--innvilo-space-7);
}

.pms-scope-gate-field {
  gap: var(--innvilo-space-4);
}

.pms-scope-gate-field label {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
}

.pms-scope-gate-field select {
  background: var(--color-input-surface);
  border: 1px solid var(--color-input-border);
  border-radius: var(--innvilo-radius-md);
  color: var(--innvilo-text-primary);
  font: inherit;
  min-height: 3rem;
  padding: 0 var(--innvilo-space-6);
  width: 100%;
}

.pms-scope-gate-field select:hover {
  background: var(--color-input-surface-hover);
  border-color: var(--innvilo-border-focus);
}

.pms-scope-gate-field select:focus-visible {
  border-color: var(--innvilo-border-focus);
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring);
  outline: 0;
}

.pms-scope-gate-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-5);
}

.pms-scope-gate-primary,
.pms-scope-gate-secondary {
  align-items: center;
  border-radius: var(--innvilo-radius-md);
  cursor: pointer;
  display: inline-flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
  justify-content: center;
  line-height: 1.2;
  min-height: 3rem;
  padding: 0 var(--innvilo-space-7);
  text-align: center;
  text-decoration: none;
  transition: background-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), border-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), color var(--innvilo-duration-fast) var(--innvilo-easing-standard);
}

.pms-scope-gate-primary {
  background: var(--innvilo-color-primary);
  border: 1px solid var(--innvilo-color-primary);
  color: var(--innvilo-text-inverse);
}

.pms-scope-gate-primary:hover {
  background: var(--innvilo-color-primary-hover);
  border-color: var(--innvilo-color-primary-hover);
}

.pms-scope-gate-secondary {
  background: var(--innvilo-surface-main);
  border: 1px solid var(--innvilo-border-strong);
  color: var(--innvilo-text-link);
}

.pms-scope-gate-secondary:hover {
  background: var(--innvilo-color-primary-soft);
  border-color: var(--innvilo-border-focus);
  color: var(--innvilo-text-link-hover);
}

.pms-scope-gate-primary:focus-visible,
.pms-scope-gate-secondary:focus-visible {
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring);
  outline: 0;
}

.pms-scope-gate-primary:active,
.pms-scope-gate-secondary:active {
  transform: translateY(1px);
}

@media (max-width: 640px) {
  .pms-scope-gate {
    align-items: start;
    padding: var(--innvilo-space-6);
  }
  .pms-scope-gate-panel {
    margin-top: var(--innvilo-space-8);
    padding: var(--innvilo-space-7);
  }
  .pms-scope-gate-actions,
  .pms-scope-gate-primary,
  .pms-scope-gate-secondary {
    width: 100%;
  }
}
@media (forced-colors: active) {
  .pms-scope-gate-panel,
  .pms-scope-gate-field select,
  .pms-scope-gate-primary,
  .pms-scope-gate-secondary {
    border: 1px solid CanvasText;
  }
}
.btn-loading {
  align-items: center;
  display: inline-flex;
  gap: 0.45rem;
  justify-content: center;
}

.btn-loading[disabled] {
  cursor: progress;
}

.btn-loading-spinner {
  display: inline-flex;
  gap: 0.22rem;
}

.btn-loading-spinner span {
  animation: btnLoadingDot 1s ease-in-out infinite;
  background: currentColor;
  border-radius: 50%;
  display: inline-block;
  height: 0.32rem;
  opacity: 0.5;
  width: 0.32rem;
}

.btn-loading-spinner span:nth-child(2) {
  animation-delay: 0.12s;
}

.btn-loading-spinner span:nth-child(3) {
  animation-delay: 0.24s;
}

@keyframes btnLoadingDot {
  0%, 80%, 100% {
    opacity: 0.35;
    transform: translateY(0);
  }
  40% {
    opacity: 1;
    transform: translateY(-2px);
  }
}
@media (prefers-reduced-motion: reduce) {
  .btn-loading-spinner span {
    animation: none;
  }
}
.kiosk-service-case-editor.dx-app-editor.dxbl-text-edit {
  width: 100%;
}

.demand-mode-option.dxbl-btn {
  align-items: start;
  background: var(--innvilo-surface-main);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-sm);
  color: inherit;
  display: grid;
  gap: var(--innvilo-space-1);
  justify-content: stretch;
  min-height: 3.25rem;
  padding: var(--innvilo-space-3);
  text-align: left;
  width: 100%;
}

.demand-mode-option.dxbl-btn:hover,
.demand-mode-option.dxbl-btn:focus-visible,
.demand-mode-option.dxbl-btn.is-selected {
  border-color: var(--innvilo-color-primary);
}

.demand-mode-option.dxbl-btn.is-selected {
  background: var(--innvilo-color-primary-soft);
}

.dx-app-button.dxbl-btn {
  align-items: center;
  background: transparent;
  border: 1px solid transparent;
  border-radius: var(--innvilo-radius-sm);
  cursor: pointer;
  display: inline-flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  gap: 0.5rem;
  justify-content: center;
  min-height: 2.75rem;
  padding: 0 1rem;
  transition: background-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), border-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), box-shadow var(--innvilo-duration-fast) var(--innvilo-easing-standard), color var(--innvilo-duration-fast) var(--innvilo-easing-standard), transform var(--innvilo-duration-press) var(--innvilo-easing-settle);
}

.dx-app-button.dxbl-btn:active {
  box-shadow: none;
  transform: scale(var(--innvilo-press-scale));
}

body .front-office-mobile-host .front-office-mobile-primary.dxbl-btn {
  height: auto;
  min-height: var(--innvilo-grid-action-target-touch);
}

body .front-desk-agent-page > .pms-page-hero {
  margin-bottom: 0;
}

body .front-desk-agent-authorize-page > .pms-page-hero {
  margin-bottom: 0;
}

body .rooms-page > .pms-page-hero {
  margin-bottom: 0;
}

body .services-page > .pms-page-hero {
  margin-bottom: 0;
}

body .rooms-page > .pms-kpi-grid + .pms-generic-filter,
body .services-page > .pms-kpi-grid + .pms-generic-filter {
  margin-top: 0;
}

@media (max-width: 56.25rem) {
  body .innvilo-context-menu.dxbl-context-menu .dxbl-context-menu-item,
  body .innvilo-context-menu.dxbl-context-menu .dxbl-menu-item {
    box-sizing: border-box;
    min-height: var(--innvilo-grid-action-target-touch);
  }
}
.dx-app-button.dxbl-btn:focus-visible {
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring);
  outline: 0;
}

.dx-app-button.dxbl-btn.dxbl-disabled,
.dx-app-button.dxbl-btn[disabled] {
  cursor: not-allowed;
  opacity: 0.55;
}

/* Public developer reference pages */
.developer-reference {
  background: var(--innvilo-bg);
  color: var(--innvilo-text);
  font-family: "Lato-Regular", Arial, sans-serif;
  margin: 0;
  min-height: 100dvh;
}

.developer-reference * {
  box-sizing: border-box;
}

.developer-reference a {
  color: var(--innvilo-teal);
  text-underline-offset: 0.2em;
}

.developer-reference a:focus-visible {
  border-radius: var(--radius-sm);
  outline: 0.2rem solid var(--color-info);
  outline-offset: 0.2rem;
}

.developer-reference__header,
.developer-reference main,
.developer-reference__footer {
  margin: 0 auto;
  max-width: 78rem;
  width: calc(100% - 3rem);
}

.developer-reference__header {
  align-items: center;
  display: flex;
  justify-content: space-between;
  min-height: 4.75rem;
}

.developer-reference__brand {
  align-items: center;
  color: var(--innvilo-navy);
  display: inline-flex;
  font-family: "Lato-Bold", Arial, sans-serif;
  gap: 0.75rem;
  text-decoration: none;
}

.developer-reference__brand-mark {
  align-items: center;
  background: var(--innvilo-navy);
  border-radius: var(--radius-sm);
  color: var(--color-surface);
  display: inline-flex;
  font-family: "Lato-Bold", Arial, sans-serif;
  height: 2.25rem;
  justify-content: center;
  width: 2.25rem;
}

.developer-reference__nav {
  align-items: center;
  display: flex;
  gap: 1.5rem;
}

.developer-reference__nav a {
  color: var(--innvilo-muted);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  text-decoration: none;
}

.developer-reference__hero {
  align-items: end;
  background: var(--innvilo-navy-deep);
  border-radius: var(--radius-lg);
  color: var(--color-surface);
  display: grid;
  gap: 3rem;
  grid-template-columns: minmax(0, 1.55fr) minmax(17rem, 0.7fr);
  padding: clamp(2.5rem, 7vw, 5.5rem);
}

.developer-reference__eyebrow {
  color: var(--color-nav-accent);
  font-family: "Lato-Bold", Arial, sans-serif;
  letter-spacing: 0.08em;
  margin: 0 0 1.25rem;
  text-transform: uppercase;
}

.developer-reference h1,
.developer-reference h2,
.developer-reference h3 {
  color: inherit;
  font-family: "Lato-Bold", Arial, sans-serif;
}

.developer-reference h1 {
  font-size: clamp(2.6rem, 7vw, 5.4rem);
  letter-spacing: -0.04em;
  line-height: 0.98;
  margin: 0;
}

.developer-reference__lead {
  color: var(--color-booking-hero-muted);
  font-size: clamp(1.1rem, 2vw, 1.35rem);
  line-height: 1.55;
  margin: 1.5rem 0 0;
  max-width: 43rem;
}

.developer-reference__actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  margin-top: 2rem;
}

.developer-reference__button {
  background: var(--color-nav-accent);
  border-radius: var(--radius-sm);
  color: var(--innvilo-navy-deep) !important;
  font-family: "Lato-Bold", Arial, sans-serif;
  padding: 0.8rem 1rem;
  text-decoration: none;
}

.developer-reference__text-link {
  color: var(--color-surface) !important;
}

.developer-reference__status {
  border-left: 0.2rem solid var(--color-warning);
  padding-left: 1.5rem;
}

.developer-reference__status-label {
  color: var(--color-booking-hero-muted);
  display: block;
  font-size: 0.9rem;
  margin-bottom: 0.5rem;
}

.developer-reference__status strong {
  color: var(--color-warning-soft);
  display: block;
  font-size: 1.35rem;
}

.developer-reference__status p {
  color: var(--color-booking-hero-muted);
  line-height: 1.55;
  margin-bottom: 0;
}

.developer-reference__section {
  padding: clamp(3rem, 7vw, 5.5rem) 0;
}

.developer-reference__section + .developer-reference__section {
  border-top: 1px solid var(--innvilo-border);
}

.developer-reference__section-heading {
  max-width: 47rem;
}

.developer-reference__section h2 {
  font-size: clamp(2rem, 4vw, 3.25rem);
  letter-spacing: -0.03em;
  margin: 0;
}

.developer-reference__section-heading p,
.developer-reference__section--split > div > p {
  color: var(--innvilo-muted);
  font-size: 1.1rem;
  line-height: 1.6;
}

.developer-reference__feature-grid {
  display: grid;
  gap: 2rem 3rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 3rem;
}

.developer-reference__feature-grid article {
  border-left: 0.2rem solid var(--innvilo-teal);
  padding-left: 1.25rem;
}

.developer-reference__feature-grid h3,
.developer-reference__protocol h3 {
  font-size: 1.2rem;
  margin: 0 0 0.65rem;
}

.developer-reference__feature-grid p {
  color: var(--innvilo-muted);
  line-height: 1.6;
  margin: 0;
}

.developer-reference__boundary {
  background: var(--innvilo-teal-soft);
  border: 1px solid var(--color-dashboard-emphasis-border);
  border-radius: var(--radius-md);
  line-height: 1.6;
  margin-top: 3rem;
  padding: 1.25rem 1.5rem;
}

.developer-reference__section--split {
  display: grid;
  gap: 4rem;
  grid-template-columns: minmax(0, 1.35fr) minmax(18rem, 0.65fr);
}

.developer-reference__steps {
  counter-reset: reference-step;
  list-style: none;
  margin: 2.5rem 0 0;
  padding: 0;
}

.developer-reference__steps li {
  counter-increment: reference-step;
  display: grid;
  gap: 0.3rem 1rem;
  grid-template-columns: 2.5rem 1fr;
  padding: 0 0 1.75rem;
}

.developer-reference__steps li::before {
  align-items: center;
  background: var(--innvilo-navy);
  border-radius: 50%;
  color: var(--color-surface);
  content: counter(reference-step);
  display: flex;
  font-family: "Lato-Bold", Arial, sans-serif;
  grid-row: span 2;
  height: 2.25rem;
  justify-content: center;
  width: 2.25rem;
}

.developer-reference__steps span {
  color: var(--innvilo-muted);
  line-height: 1.55;
}

.developer-reference__protocol {
  align-self: start;
  background: var(--innvilo-surface);
  border: 1px solid var(--innvilo-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
  padding: 1.75rem;
}

.developer-reference__protocol dl {
  margin: 0;
}

.developer-reference__protocol dl div {
  border-top: 1px solid var(--innvilo-border);
  padding: 1rem 0;
}

.developer-reference__protocol dt {
  color: var(--innvilo-muted);
  font-size: 0.85rem;
  margin-bottom: 0.25rem;
}

.developer-reference__protocol dd {
  font-family: "Lato-SemiBold", Arial, sans-serif;
  margin: 0;
}

.developer-reference__checklist {
  display: grid;
  gap: 0.9rem;
  list-style: none;
  margin: 2.5rem 0 0;
  padding: 0;
}

.developer-reference__checklist li {
  background: var(--innvilo-surface);
  border: 1px solid var(--innvilo-border);
  border-radius: var(--radius-sm);
  line-height: 1.5;
  padding: 1rem 1.25rem 1rem 3.25rem;
  position: relative;
}

.developer-reference__checklist li::before {
  color: var(--innvilo-teal);
  content: "✓";
  font-family: "Lato-Bold", Arial, sans-serif;
  left: 1.25rem;
  position: absolute;
}

.developer-reference__resources div {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 1.75rem;
  margin-top: 2rem;
}

.developer-reference__footer {
  border-top: 1px solid var(--innvilo-border);
  color: var(--innvilo-muted);
  display: flex;
  font-size: 0.9rem;
  justify-content: space-between;
  padding: 2rem 0 3rem;
}

@media (max-width: 760px) {
  .developer-reference__header,
  .developer-reference main,
  .developer-reference__footer {
    width: calc(100% - 2rem);
  }
  .developer-reference__header {
    align-items: flex-start;
    flex-direction: column;
    gap: 1rem;
    padding: 1rem 0 1.5rem;
  }
  .developer-reference__nav {
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 0.75rem 1.25rem;
  }
  .developer-reference__hero,
  .developer-reference__section--split,
  .developer-reference__feature-grid {
    grid-template-columns: 1fr;
  }
  .developer-reference__hero {
    gap: 2.25rem;
    padding: 2rem 1.5rem;
  }
  .developer-reference__section--split {
    gap: 2.5rem;
  }
  .developer-reference__footer {
    flex-direction: column;
    gap: 0.5rem;
  }
}
.kiosk-authorization-select {
  min-height: 3rem;
  width: 100%;
}

.kiosk-authorization-action.dxbl-btn,
.kiosk-authorization-submit-action.dxbl-btn {
  flex: 0 0 auto;
}

.platform-payment-provider-select {
  min-height: 2.75rem;
  width: 100%;
}

.platform-payment-provider-action.dxbl-btn {
  flex: 0 0 auto;
}

@media (max-width: 760px) {
  .kiosk-authorization-action.dxbl-btn,
  .kiosk-authorization-submit-action.dxbl-btn,
  .platform-payment-provider-action.dxbl-btn {
    width: 100%;
  }
}
.dx-app-button-primary {
  background: var(--color-quick-action-primary-bg) !important;
  border-color: var(--color-quick-action-primary-bg) !important;
  color: var(--color-quick-action-primary-text) !important;
  box-shadow: none;
}

.dx-app-button-primary:hover {
  background: var(--color-quick-action-primary-hover-bg) !important;
  border-color: var(--color-quick-action-primary-hover-bg) !important;
  box-shadow: none;
}

/* SaaS delivery editors: primary actions remain visible outside page heroes. */
.platform-workspace .platform-delivery-save.dxbl-btn {
  --dxbl-btn-bg: var(--color-primary);
  background: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
  color: var(--color-surface) !important;
  min-height: 2.75rem;
}

.platform-workspace .platform-delivery-save.dxbl-btn:hover,
.platform-workspace .platform-delivery-save.dxbl-btn:focus-visible {
  background: var(--color-primary-hover) !important;
  border-color: var(--color-primary-hover) !important;
}

.platform-workspace .platform-billing-hero-shell .pms-page-hero {
  margin-bottom: 0;
}

.platform-workspace .platform-modules-page,
.platform-workspace .platform-modules-panel {
  gap: var(--innvilo-space-6);
}

.platform-workspace .platform-modules-navigation__header:empty {
  display: none;
}

.platform-workspace .platform-channel-v2-page,
.platform-workspace .platform-external-pms-page,
.platform-workspace .platform-integration-tabs,
.platform-workspace .platform-channel-v2-workspace,
.platform-workspace .platform-external-pms-workspace {
  min-width: 0;
  max-width: 100%;
}

.platform-workspace .platform-integration-operator-key.dxbl-btn {
  min-height: 2.75rem;
  min-width: 2.75rem;
}

.platform-workspace .platform-channel-v2-content,
.platform-workspace .platform-external-pms-content,
.platform-workspace .platform-channel-v2-workspace,
.platform-workspace .platform-external-pms-workspace {
  grid-template-columns: minmax(0, 1fr);
}

.platform-workspace .platform-modules-navigation__header {
  min-height: 0;
  padding: var(--innvilo-space-3) var(--innvilo-space-4);
}

/* Die eine Rahmenfarbe des Hauses. `--color-border` (#dbdad6) ist die Farbe jeder
   Fläche und die Rahmenfarbe der Referenzseite `/anfragen`
   (`docs/handovers/2026-09-02-anfragen-redesign.md` §3: "Rahmenfarbe, überall … #dbdad6").
   Hier stand `--color-quick-action-border` (#ece8e2, über `--color-header-divider`), also
   ein zweites Grau unter einem Knopf, der neben einer Fläche mit #dbdad6 steht.
   `DESIGN_NEW_RULES.md` §2 verlangt eine Rahmenfarbe, §1 eine Graufamilie gleicher
   Temperatur. */
.dx-app-button-soft {
  background: var(--color-quick-action-bg) !important;
  border-color: var(--color-border) !important;
  color: var(--color-text) !important;
}

.dx-app-button-soft:hover {
  background: var(--color-quick-action-hover-bg) !important;
}

.dx-app-button-ghost {
  background: transparent !important;
  border-color: transparent !important;
  color: var(--color-text-muted) !important;
}

.dx-app-button-ghost:hover,
.dx-app-button-ghost.is-active {
  background: var(--color-header-hover) !important;
  color: var(--color-primary) !important;
}

.dx-app-button-danger {
  background: transparent !important;
  border-color: transparent !important;
  color: var(--color-text-muted) !important;
}

.dx-app-button-danger:hover,
.dx-app-button-danger:focus-visible {
  background: rgba(186, 26, 26, 0.08) !important;
  color: var(--color-error) !important;
}

/* Links, die wie Aktionsbuttons aussehen (echte Navigation statt DxButton NavigateUrl).
   Sie tragen dieselbe Rahmenfarbe wie `.dx-app-button-soft`, weil sie neben einem
   solchen Knopf stehen und gleich aussehen müssen. */
a.dx-app-button {
  align-items: center;
  border: 1px solid var(--color-border);
  border-radius: var(--innvilo-radius-sm);
  box-sizing: border-box;
  display: inline-flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
  gap: 0.5rem;
  justify-content: center;
  line-height: 1.2;
  min-height: 2.75rem;
  padding: 0 1rem;
  text-decoration: none;
  transition: background-color 140ms ease-out, border-color 140ms ease-out;
}

a.dx-app-button:hover,
a.dx-app-button:focus-visible {
  text-decoration: none;
}

a.dx-app-button:focus-visible {
  outline: 2px solid var(--innvilo-border-focus);
  outline-offset: 2px;
}

a.dx-app-button.dx-app-button-primary {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-surface);
}

.dx-app-icon-button {
  border-radius: var(--innvilo-radius-sm);
  height: 2.75rem;
  min-height: 2.75rem;
  padding: 0;
  width: 2.75rem;
}

.dx-app-button-with-icon {
  text-align: left;
}

/* Nur die Beschriftung darf kürzen. DevExpress gibt IconCssClass als .dxbl-image aus; mit overflow:hidden
   und dem line-height:1 des Themes wird die Glyphe oben und unten angeschnitten. Der Schrumpfschutz hält
   das Zeichen außerdem in voller Breite, wenn die Beschriftung im Kopfbereich den Platz verengt. */
.dx-app-button-with-icon span:not(.dxbl-image) {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dx-app-button-with-icon .dxbl-image {
  flex: 0 0 auto;
  line-height: inherit;
  overflow: visible;
}

/* PmsPageHead nimmt die Aktionen ebenfalls als RenderFragment auf. Höhe 40px wie im Hero der Anfragen,
   auf Handy und Tablet 44px Zielfläche; Farben erbt der Knopf von den dx-app-button-Klassen. */
.pms-head__actions .dxbl-btn {
  border-radius: var(--innvilo-radius-sm);
  min-height: 2.5rem;
  min-width: max-content;
  white-space: nowrap;
}

.pms-head__actions .dx-app-icon-button.dxbl-btn {
  min-width: 2.5rem;
  padding: 0;
  width: 2.5rem;
}

@media (max-width: 61.9375rem) {
  .pms-head__actions .dxbl-btn {
    min-height: 2.75rem;
  }
  .pms-head__actions .dx-app-icon-button.dxbl-btn {
    height: 2.75rem;
    min-width: 2.75rem;
    width: 2.75rem;
  }
}
/* PmsPageHero renders action fragments from feature components. DevExpress button roots therefore
   need this single global hook; all structural Hero styles remain component-owned. */
.pms-page-hero__actions .dxbl-btn {
  border-radius: var(--innvilo-radius-sm);
  min-height: 2.75rem;
  min-width: max-content;
  white-space: nowrap;
  transition: background-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), border-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), color var(--innvilo-duration-fast) var(--innvilo-easing-standard), transform var(--innvilo-duration-press) var(--innvilo-easing-settle);
}

/* Derselbe Rahmen wie auf jeder Fläche und wie unter jedem anderen weichen Knopf.
   Hier stand `--color-border-strong` (#c3c7ce), ein kühles Grau in einer sonst warmen
   Familie (#dbdad6 Rahmen, #f5f3ef Seite, #efeeea gedämpfte Fläche). Es steht weiter
   dort, wo es eine Aussage trägt: `prefers-contrast: more`, Scrollbalken, Toast-Rahmen.
   Als Ruhezustand eines Knopfes war es nur ein dritter Grauton
   (`DESIGN_NEW_RULES.md` §1, §2). */
.pms-page-hero__actions .dx-app-button-soft.dxbl-btn {
  background: var(--color-surface) !important;
  border-color: var(--color-border) !important;
  color: var(--color-text) !important;
}

.pms-page-hero__actions .dx-app-button-soft.dxbl-btn:hover,
.pms-page-hero__actions .dx-app-button-soft.dxbl-btn:focus-visible {
  background: var(--color-surface-soft) !important;
  border-color: var(--color-primary) !important;
  color: var(--color-primary) !important;
}

.pms-page-hero__actions .dx-app-button-primary.dxbl-btn {
  background: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
  color: var(--color-surface) !important;
}

.pms-page-hero__actions .dx-app-button-primary.dxbl-btn:hover,
.pms-page-hero__actions .dx-app-button-primary.dxbl-btn:focus-visible {
  background: var(--color-primary-hover) !important;
  border-color: var(--color-primary-hover) !important;
}

.pms-page-hero__actions .dx-app-button-ghost.dxbl-btn {
  background: transparent !important;
  border-color: var(--color-border) !important;
  color: var(--color-text-muted) !important;
}

.pms-page-hero__actions .dx-app-button-ghost.dxbl-btn:hover,
.pms-page-hero__actions .dx-app-button-ghost.dxbl-btn:focus-visible {
  background: var(--color-surface-soft) !important;
  border-color: var(--color-primary) !important;
  color: var(--color-primary) !important;
}

.pms-page-hero__actions .dxbl-btn:active {
  transform: scale(0.98);
}

@media (prefers-reduced-motion: reduce) {
  .pms-page-hero__actions .dxbl-btn {
    transition: none;
  }
  .pms-page-hero__actions .dxbl-btn:active {
    transform: none;
  }
}
body .reservation-workspace-tabs.dxbl-tabs,
body .reservation-dialog-tabs.dxbl-tabs {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
}

body .reservation-dialog-tabs.dxbl-tabs {
  border-bottom: 1px solid var(--color-border);
  margin-bottom: 1rem;
}

.dx-app-button.dxbl-btn .dxbl-btn-caption,
.dx-app-button.dxbl-btn .dxbl-btn-icon {
  color: inherit !important;
}

/* Shared hero quick actions use DxDropDown for viewport-aware placement and focus management. */
.pms-quick-actions-dropdown.dxbl-dropdown-dialog {
  background: var(--innvilo-surface-main);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-card);
  box-shadow: var(--innvilo-shadow-popover);
  font-family: "Lato-Regular", Arial, sans-serif;
  overflow: hidden;
  z-index: var(--innvilo-z-dropdown);
}

.pms-quick-actions-dropdown__header {
  background: var(--innvilo-surface-main) !important;
  border-bottom: 1px solid var(--innvilo-border-soft) !important;
  padding: var(--innvilo-space-6) !important;
}

.pms-quick-actions-dropdown__body {
  background: var(--innvilo-surface-main) !important;
  padding: 0 !important;
}

.pms-quick-actions-toggle.dxbl-btn {
  min-height: 2.75rem;
  white-space: nowrap;
}

.pms-context-actions--hero .pms-quick-actions-toggle.dxbl-btn {
  min-height: var(--innvilo-grid-action-target-touch);
  border-radius: var(--radius-sm) !important;
  transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease, transform 100ms ease;
}

.pms-context-actions--hero .pms-quick-actions-toggle.dxbl-btn:active {
  transform: scale(0.98);
}

.pms-quick-actions-toggle.dxbl-btn.is-active {
  background: var(--color-primary-active) !important;
  border-color: var(--color-primary-active) !important;
}

.pms-quick-actions-close.dxbl-btn {
  height: 2.75rem;
  min-width: 2.75rem;
  padding: 0 !important;
}

.pms-quick-action.dxbl-btn {
  align-items: center;
  background: var(--innvilo-surface-main) !important;
  border: 1px solid var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md) !important;
  color: var(--innvilo-text-primary) !important;
  display: grid;
  gap: var(--innvilo-space-5);
  grid-template-columns: 2.5rem minmax(0, 1fr) auto;
  justify-content: stretch;
  min-height: 4rem;
  padding: var(--innvilo-space-4) var(--innvilo-space-5) !important;
  text-align: left;
  transition: background-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), border-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), color var(--innvilo-duration-fast) var(--innvilo-easing-standard);
  width: 100%;
}

.pms-quick-action.dxbl-btn .dxbl-btn-content {
  display: contents;
}

.pms-quick-action--secondary.dxbl-btn:hover,
.pms-quick-action--secondary.dxbl-btn:focus-visible {
  background: var(--innvilo-color-primary-soft) !important;
  border-color: var(--innvilo-color-primary) !important;
  color: var(--innvilo-color-primary-active) !important;
}

.pms-quick-action--primary.dxbl-btn {
  background: var(--innvilo-color-primary) !important;
  border-color: var(--innvilo-color-primary) !important;
  color: var(--innvilo-text-inverse) !important;
  min-height: 4.5rem;
}

.pms-quick-action--primary.dxbl-btn:hover,
.pms-quick-action--primary.dxbl-btn:focus-visible {
  background: var(--innvilo-color-primary-hover) !important;
  border-color: var(--innvilo-color-primary-hover) !important;
}

.pms-quick-action.dxbl-btn:focus-visible,
.pms-quick-actions-close.dxbl-btn:focus-visible,
.pms-quick-actions-toggle.dxbl-btn:focus-visible {
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring) !important;
  outline: 2px solid var(--innvilo-color-primary) !important;
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .pms-context-actions--hero .pms-quick-actions-toggle.dxbl-btn {
    transition: none;
  }
}
@media (max-width: 40rem) {
  .pms-quick-action.dxbl-btn {
    min-height: 3.75rem;
  }
}
/* --- Reservation-Workspace Tabs -----------------------------------------------------------
   Kompakte, unterstrichene Tabs für Workspace und Reservierungsdialog. Der Workspace trägt seit
   dem Umbau auf das Blockraster reine Unterstrich-Reiter ohne Flächenfüllung; der Dialog behält
   die gefüllte Variante. Beides steht hier, weil DevExpress-Wurzeln (.dxbl-*) kein Scoped-Attribut
   bekommen. ---------------------------------------------------------------------------------- */
body .reservation-workspace-tabs.dxbl-tabs .dxbl-tabs-item,
body .reservation-dialog-tabs.dxbl-tabs .dxbl-tabs-item {
  background: transparent !important;
  border: 1px solid transparent !important;
  border-bottom-width: 3px !important;
  border-radius: var(--innvilo-radius-xs) var(--innvilo-radius-xs) 0 0 !important;
  color: var(--innvilo-text-secondary) !important;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
  min-height: 2.5rem;
  padding-inline: 0.75rem;
  transition: background-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), border-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), color var(--innvilo-duration-fast) var(--innvilo-easing-standard);
}

/* Tab-Beschriftungen werden nie abgeschnitten; bei Platzmangel scrollt DxTabs (ScrollMode.Auto). */
body .reservation-workspace-tabs.dxbl-tabs .dxbl-tabs-item .dxbl-tabs-item-text,
body .reservation-dialog-tabs.dxbl-tabs .dxbl-tabs-item .dxbl-tabs-item-text {
  color: inherit !important;
  max-width: none;
  overflow: visible;
  text-overflow: clip;
  white-space: nowrap;
}

body .reservation-workspace-tabs.dxbl-tabs .dxbl-tabs-item .dxbl-tabs-item-icon,
body .reservation-dialog-tabs.dxbl-tabs .dxbl-tabs-item .dxbl-tabs-item-icon {
  color: inherit !important;
  font-size: 0.9375rem;
}

body .reservation-workspace-tabs.dxbl-tabs .dxbl-tabs-item[aria-selected=true],
body .reservation-workspace-tabs.dxbl-tabs .dxbl-tabs-item.dxbl-active,
body .reservation-dialog-tabs.dxbl-tabs .dxbl-tabs-item[aria-selected=true],
body .reservation-dialog-tabs.dxbl-tabs .dxbl-tabs-item.dxbl-active {
  background: var(--color-accent-soft) !important;
  border-color: transparent transparent var(--color-primary) !important;
  color: var(--color-primary-active) !important;
}

body .reservation-workspace-tabs.dxbl-tabs .dxbl-tabs-item:not([aria-selected=true]):not(.dxbl-active):hover,
body .reservation-dialog-tabs.dxbl-tabs .dxbl-tabs-item:not([aria-selected=true]):not(.dxbl-active):hover {
  background: var(--color-surface-raised) !important;
  border-color: transparent transparent var(--color-input-border) !important;
  color: var(--color-text) !important;
}

body .reservation-workspace-tabs.dxbl-tabs .dxbl-tabs-item[aria-selected=true]:hover,
body .reservation-workspace-tabs.dxbl-tabs .dxbl-tabs-item.dxbl-active:hover,
body .reservation-dialog-tabs.dxbl-tabs .dxbl-tabs-item[aria-selected=true]:hover,
body .reservation-dialog-tabs.dxbl-tabs .dxbl-tabs-item.dxbl-active:hover {
  background: var(--color-accent-soft) !important;
  border-color: transparent transparent var(--color-primary-hover) !important;
  color: var(--color-primary-active) !important;
}

/* Tastaturfokus muss auch im horizontal scrollenden Tab-Container sichtbar bleiben: innerer Ring. */
body .reservation-workspace-tabs.dxbl-tabs .dxbl-tabs-item:focus-visible,
body .reservation-dialog-tabs.dxbl-tabs .dxbl-tabs-item:focus-visible {
  background: var(--color-accent-soft) !important;
  box-shadow: inset 0 0 0 2px var(--color-primary) !important;
  color: var(--color-primary-active) !important;
  outline: 0 !important;
  position: relative;
  z-index: 1;
}

body .reservation-workspace-tabs.dxbl-tabs .dxbl-tabs-item[aria-disabled=true],
body .reservation-workspace-tabs.dxbl-tabs .dxbl-tabs-item.dxbl-disabled,
body .reservation-dialog-tabs.dxbl-tabs .dxbl-tabs-item[aria-disabled=true],
body .reservation-dialog-tabs.dxbl-tabs .dxbl-tabs-item.dxbl-disabled {
  background: transparent !important;
  color: var(--color-text-subtle) !important;
  cursor: not-allowed;
  opacity: 0.72;
}

/* Mobil: 44px Touch-Ziel gemäß Design-System-Vorgabe. */
@media (max-width: 47.99rem) {
  body .reservation-workspace-tabs.dxbl-tabs .dxbl-tabs-item,
  body .reservation-dialog-tabs.dxbl-tabs .dxbl-tabs-item {
    min-height: 2.75rem;
  }
}
/* Nur die Reservierungsmaske: Unterstrich-Reiter ohne Flächenfüllung und ohne Radius, 44px hoch,
   Akzent am aktiven Reiter. Der Reservierungsdialog bleibt bei der gefüllten Variante darüber. */
body .reservation-workspace-tabs.dxbl-tabs .dxbl-tabs-item {
  background: transparent !important;
  border-bottom-width: 2px !important;
  border-radius: 0 !important;
  font-size: var(--innvilo-font-size-label);
  min-height: 2.75rem;
  padding-inline: var(--innvilo-space-6);
}

body .reservation-workspace-tabs.dxbl-tabs .dxbl-tabs-item[aria-selected=true],
body .reservation-workspace-tabs.dxbl-tabs .dxbl-tabs-item.dxbl-active,
body .reservation-workspace-tabs.dxbl-tabs .dxbl-tabs-item[aria-selected=true]:hover,
body .reservation-workspace-tabs.dxbl-tabs .dxbl-tabs-item.dxbl-active:hover {
  background: transparent !important;
  border-color: transparent transparent var(--innvilo-color-primary) !important;
  color: var(--innvilo-text-primary) !important;
}

body .reservation-workspace-tabs.dxbl-tabs .dxbl-tabs-item:not([aria-selected=true]):not(.dxbl-active):hover {
  background: transparent !important;
  border-color: transparent transparent var(--innvilo-border-strong) !important;
  color: var(--innvilo-text-primary) !important;
}

body .reservation-workspace-tabs.dxbl-tabs .dxbl-tabs-item:focus-visible {
  background: transparent !important;
  box-shadow: inset 0 0 0 2px var(--innvilo-border-focus) !important;
  color: var(--innvilo-text-primary) !important;
}

/* --- Ende Reservation-Workspace Tabs ------------------------------------------------------ */
.workspace-filter-pill.dxbl-btn {
  background: var(--color-surface) !important;
  border-color: var(--color-text-subtle) !important;
  color: var(--innvilo-text-secondary) !important;
}

.workspace-filter-pill.is-active.dxbl-btn {
  background: var(--color-accent-soft) !important;
  border-color: var(--color-primary) !important;
  color: var(--color-primary-active) !important;
}

@media (max-width: 47.99rem) {
  body .reservation-workspace .reservation-workspace-hero .pms-page-hero__actions {
    display: none !important;
  }
  body .reservation-workspace .workspace-module__header .dxbl-btn {
    max-width: none;
    width: 100%;
  }
}
.reservation-invoice-viewer__pdf.dxbl-pdf-viewer {
  height: min(740px, 76vh);
  width: 100%;
}

.reservation-invoice-viewer {
  display: grid;
  gap: 0.75rem;
}

.reservation-invoice-viewer__header {
  align-items: center;
  background: var(--color-surface-soft);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  padding: 0.75rem;
}

.reservation-invoice-viewer__metadata {
  display: flex;
  flex: 1 1 auto;
  flex-wrap: wrap;
  gap: 0.5rem 1.5rem;
  margin: 0;
}

.reservation-invoice-viewer__metadata div {
  display: grid;
  gap: 0.125rem;
}

.reservation-invoice-viewer__metadata dt {
  color: var(--color-text-muted);
  font-size: 0.75rem;
  font-weight: 700;
}

.reservation-invoice-viewer__metadata dd {
  color: var(--color-text);
  font-size: 0.875rem;
  font-weight: 700;
  margin: 0;
}

.reservation-invoice-viewer__actions {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  gap: 0.5rem;
}

@media (max-width: 51.25rem) {
  .reservation-invoice-viewer__header {
    align-items: stretch;
    flex-direction: column;
  }
  .reservation-invoice-viewer__actions .dxbl-btn {
    flex: 1 1 auto;
  }
  .pms-page-hero__actions .dxbl-btn {
    width: 100%;
  }
  .pms-page-hero__actions > .dxbl-btn:last-child:nth-child(odd) {
    grid-column: 1/-1;
  }
}
@media (max-width: 40rem) {
  .pms-page-hero__actions > .dxbl-btn:last-child:nth-child(odd) {
    grid-column: auto;
  }
}
.dx-app-editor.dxbl-text-edit {
  align-items: stretch;
  background: var(--color-input-surface);
  border: 1px solid var(--color-input-border);
  border-radius: var(--innvilo-radius-md);
  box-shadow: none;
  color: var(--innvilo-text-primary);
  display: flex;
  font-family: "Lato-Regular", Arial, sans-serif;
  min-height: 3rem;
  overflow: hidden;
  transition: background-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), border-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), box-shadow var(--innvilo-duration-fast) var(--innvilo-easing-standard);
  width: 100%;
}

.email-config-page .dx-app-editor.dxbl-text-edit > .dxbl-text-edit-input,
.email-config-page .dx-app-editor.dxbl-text-edit > input,
.email-config-page .dx-app-editor.dxbl-text-edit > textarea {
  min-height: 3rem;
}

.dx-app-editor.dxbl-text-edit:hover:not(.dxbl-disabled) {
  background: var(--color-input-surface-hover);
  border-color: var(--innvilo-color-primary);
}

.dx-app-editor.dxbl-text-edit:focus-within {
  background: var(--color-input-surface);
  border-color: var(--innvilo-border-focus);
  box-shadow: 0 0 0 3px var(--color-primary-focus-ring);
  outline: 0;
}

.dx-app-editor.dxbl-text-edit > .dxbl-text-edit-input,
.dx-app-editor.dxbl-text-edit > input,
.dx-app-editor.dxbl-text-edit > textarea {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  color: var(--innvilo-text-primary);
  flex: 1 1 auto;
  font-family: "Lato-Regular", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
  line-height: 1.4;
  min-height: calc(3rem - 2px);
  min-width: 0;
  outline: 0;
  padding: 0.72rem 1rem;
}

.dx-app-editor.dxbl-text-edit > textarea {
  min-height: 6.5rem;
  resize: vertical;
}

.dx-app-editor.dxbl-text-edit > input::placeholder,
.dx-app-editor.dxbl-text-edit > textarea::placeholder {
  color: var(--color-input-placeholder);
  opacity: 1;
}

.dx-app-editor.dxbl-text-edit > .dxbl-btn-group,
.dx-app-editor.dxbl-text-edit > .dxbl-spin-btns {
  align-self: stretch;
  background: var(--color-input-command-surface);
  border-left: 1px solid var(--color-input-command-divider);
  flex: 0 0 3rem;
  margin: 0;
  min-width: 3rem;
}

.dx-app-editor.dxbl-text-edit > .dxbl-btn-group-left {
  border-left: 0;
  border-right: 1px solid var(--color-input-command-divider);
}

.dx-app-editor.dxbl-text-edit .dxbl-btn-group > .dxbl-btn,
.dx-app-editor.dxbl-text-edit .dxbl-spin-btns > .dxbl-btn {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  color: var(--innvilo-text-secondary);
  height: 100%;
  min-height: 0;
  min-width: 3rem;
  padding: 0;
  transition: background-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), color var(--innvilo-duration-fast) var(--innvilo-easing-standard);
  width: 3rem;
}

.dx-app-editor.dxbl-text-edit .dxbl-btn-group > .dxbl-btn:hover,
.dx-app-editor.dxbl-text-edit .dxbl-spin-btns > .dxbl-btn:hover,
.dx-app-editor.dxbl-text-edit .dxbl-btn-group > .dxbl-btn:focus-visible,
.dx-app-editor.dxbl-text-edit .dxbl-spin-btns > .dxbl-btn:focus-visible {
  background: var(--color-input-command-hover);
  color: var(--innvilo-color-primary);
  outline: 0;
}

.dx-app-editor.dxbl-text-edit .dxbl-spin-btns > .dxbl-btn + .dxbl-btn {
  border-top: 1px solid var(--color-input-command-divider);
}

.dx-app-editor.dxbl-text-edit .dxbl-btn .dxbl-image {
  height: 1rem;
  width: 1rem;
}

.dx-app-editor.dxbl-text-edit.dxbl-disabled,
.dx-app-editor.dxbl-text-edit:has(> input:disabled),
.dx-app-editor.dxbl-text-edit:has(> textarea:disabled) {
  background: var(--color-input-surface-disabled);
  border-color: var(--innvilo-border-disabled);
  color: var(--innvilo-text-disabled);
  cursor: not-allowed;
}

.dx-app-editor.dxbl-text-edit.invalid,
.dx-app-editor.dxbl-text-edit.dxbl-invalid,
.dx-app-editor.dxbl-text-edit:has(> .invalid) {
  border-color: var(--color-error);
}

.dx-app-editor.dxbl-text-edit.invalid:focus-within,
.dx-app-editor.dxbl-text-edit.dxbl-invalid:focus-within,
.dx-app-editor.dxbl-text-edit:has(> .invalid):focus-within {
  box-shadow: 0 0 0 3px var(--color-error-focus-ring);
}

.dx-app-editor-compact.dxbl-text-edit {
  min-height: 2.5rem;
}

.dx-app-editor-compact.dxbl-text-edit > .dxbl-text-edit-input,
.dx-app-editor-compact.dxbl-text-edit > input,
.dx-app-editor-compact.dxbl-text-edit > textarea {
  min-height: calc(2.5rem - 2px);
  padding-block: 0.5rem;
}

@media (prefers-reduced-motion: reduce) {
  .dx-app-button.dxbl-btn,
  .dx-app-editor.dxbl-text-edit,
  .dx-app-editor.dxbl-text-edit .dxbl-btn {
    transition: none;
  }
  .dx-app-button.dxbl-btn:active {
    transform: none;
  }
}
.dx-dashboard-insights-range.dxbl-btn {
  background: transparent !important;
  border: 1px solid transparent !important;
  border-radius: var(--innvilo-radius-full);
  color: var(--color-text-muted) !important;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  min-height: 2.25rem;
  padding: 0 1rem;
  transition: background-color var(--innvilo-duration-fast) var(--innvilo-easing-settle), border-color var(--innvilo-duration-fast) var(--innvilo-easing-settle), color var(--innvilo-duration-fast) var(--innvilo-easing-settle), transform var(--innvilo-duration-press) var(--innvilo-easing-standard);
}

.dx-dashboard-insights-range.dxbl-btn:hover {
  color: var(--color-navy-deep) !important;
}

.dx-dashboard-insights-range.dxbl-btn.is-active {
  background: var(--color-surface) !important;
  border-color: var(--color-border) !important;
  color: var(--color-navy-deep) !important;
}

.dx-dashboard-insights-range.dxbl-btn:active {
  transform: scale(var(--innvilo-press-scale-subtle));
}

.dx-dashboard-insights-range.dxbl-btn:focus-visible {
  outline: 2px solid var(--color-primary) !important;
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .dx-dashboard-insights-range.dxbl-btn:active {
    transform: none;
  }
}
/* Central Popup Center: the only decision/action-dialog surface in the PMS. */
dxbl-popup-root:has(.pms-popup-center) .dxbl-modal-back {
  background: var(--color-popup-backdrop);
}

.pms-popup-center.dxbl-popup {
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-card);
  box-shadow: var(--innvilo-shadow-popover);
  font-family: "Lato-Regular", Arial, sans-serif;
  overflow: hidden;
}

.pms-popup-center > .dxbl-modal-content {
  background: var(--innvilo-surface-muted) !important;
}

.pms-popup-center--workspace.dxbl-popup {
  max-width: min(50rem, 100vw - 3rem) !important;
  width: min(50rem, 100vw - 3rem) !important;
}

.pms-popup-center--fullscreen > .dxbl-modal-content {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  border-radius: 0;
  overflow: hidden;
}

.pms-popup-center--fullscreen.dxbl-popup {
  border-radius: 0;
}

.pms-popup-center--fullscreen .pms-popup-center__body-shell,
.pms-popup-center--fullscreen .pms-popup-center__body-stage,
.pms-popup-center--fullscreen .pms-popup-center__body,
.pms-popup-center--fullscreen .pms-popup-center__content {
  min-height: 0;
}

.pms-popup-center--fullscreen .pms-popup-center__body-shell {
  overflow: auto;
}

.pms-popup-center .dxbl-popup-header {
  background: var(--innvilo-surface-main) !important;
  border-bottom: 1px solid var(--innvilo-border-soft);
}

.pms-popup-center .pms-popup-center__body-shell {
  background: var(--innvilo-surface-main) !important;
  padding: 0;
}

.pms-popup-center__body-stage {
  isolation: isolate;
  min-height: 100%;
  overflow: hidden;
  position: relative;
}

.pms-popup-center__body-stage.is-loading .pms-popup-center__body {
  filter: blur(0.35rem);
  pointer-events: none;
  user-select: none;
}

.pms-popup-center--wide:has(.room-puzzle) .pms-popup-center__body-shell {
  overflow: auto;
}

.pms-popup-center--wide:has(.accounting-document-upload-center) .pms-popup-center__body-shell {
  overflow: auto;
}

.pms-popup-center--wide:has(.accounting-document-upload-center) .pms-popup-center__body {
  padding: var(--innvilo-space-5);
}

.pms-popup-center--wide:has(.room-puzzle) .pms-popup-center__body {
  padding: var(--innvilo-space-6);
}

.pms-popup-center__header {
  align-items: center;
  background: var(--innvilo-surface-main);
  display: grid;
  gap: var(--innvilo-space-5);
  grid-template-columns: auto minmax(0, 1fr) auto;
  min-height: 4.5rem;
  padding: var(--innvilo-space-6) var(--innvilo-space-7);
  width: 100%;
}

.pms-popup-center__icon {
  align-items: center;
  background: var(--color-popup-icon-bg);
  border-radius: var(--innvilo-radius-md);
  color: var(--color-popup-icon-text);
  display: inline-flex;
  font-size: 1rem;
  height: 2.5rem;
  justify-content: center;
  width: 2.5rem;
}

.pms-popup-center--warning .pms-popup-center__icon {
  background: var(--color-popup-warning-bg);
  color: var(--color-popup-warning-text);
}

.pms-popup-center--danger .pms-popup-center__icon {
  background: var(--color-popup-danger-bg);
  color: var(--color-popup-danger-text);
}

/* PopupCenter is rendered outside the page; limit the plain icon treatment to SaaS workspaces. */
body:has(.platform-workspace) .pms-popup-center__icon {
  background: transparent;
  border-radius: 0;
  height: 1.25rem;
  width: 1.25rem;
}

body:has(.platform-workspace) .pms-popup-center__footer {
  flex-shrink: 0;
}

body:has(.platform-workspace) .pms-popup-center__body-shell {
  min-height: 0;
}

.pms-popup-center__title {
  color: var(--innvilo-text-primary);
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-heading);
  line-height: 1.25;
  margin: 0;
}

.pms-popup-center__close.dxbl-btn {
  color: var(--innvilo-text-secondary);
  min-height: 2.5rem;
  min-width: 2.5rem;
}

.pms-popup-center__body {
  padding: var(--innvilo-space-7);
}

.pms-popup-center__message {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-body);
  line-height: 1.6;
  margin: 0;
}

.pms-popup-center__message + .pms-popup-center__content,
.pms-popup-center__content + .pms-popup-center__error,
.pms-popup-center__message + .pms-popup-center__error {
  margin-top: var(--innvilo-space-6);
}

.pms-popup-center__error {
  align-items: flex-start;
  background: var(--color-error-surface);
  border: 1px solid var(--color-error-border);
  border-radius: var(--innvilo-radius-md);
  color: var(--color-error);
  display: flex;
  font-size: var(--innvilo-font-size-body);
  gap: var(--innvilo-space-4);
  line-height: 1.5;
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
}

.pms-popup-center__footer {
  align-items: center;
  background: var(--innvilo-surface-muted);
  border-top: 1px solid var(--innvilo-border-soft);
  display: flex;
  gap: var(--innvilo-space-4);
  justify-content: flex-end;
  min-height: 4.75rem;
  margin: 0;
  padding: var(--innvilo-space-5) var(--innvilo-space-7);
  width: 100%;
}

.pms-popup-center__secondary.dxbl-btn {
  margin-right: auto;
}

.pms-popup-center__footer .dxbl-btn {
  min-height: 2.75rem;
  min-width: 7.5rem;
}

.pms-popup-center__primary.is-loading {
  cursor: wait;
}

.pms-popup-center__loading-overlay {
  align-content: center;
  align-items: center;
  background: var(--color-loading-surface);
  background: color-mix(in srgb, var(--innvilo-surface-main) 68%, transparent);
  color: var(--innvilo-text-primary);
  cursor: wait;
  display: grid;
  gap: var(--innvilo-space-3);
  inset: 0;
  justify-items: center;
  padding: var(--innvilo-space-7);
  position: absolute;
  text-align: center;
  z-index: var(--z-index-dialog-loading);
}

.pms-popup-center__loading-logo {
  align-items: center;
  animation: pms-popup-center-logo-breathe 1.4s ease-in-out infinite;
  background: var(--innvilo-surface-main);
  border: 1px solid var(--innvilo-border-soft);
  border-radius: var(--innvilo-radius-card);
  box-shadow: var(--innvilo-shadow-popover);
  display: flex;
  justify-content: center;
  min-height: 5.5rem;
  padding: var(--innvilo-space-3) var(--innvilo-space-4);
  width: 8.5rem;
}

.pms-popup-center__loading-logo img {
  display: block;
  height: auto;
  max-height: 4.5rem;
  max-width: 100%;
}

.pms-popup-center__loading-overlay strong {
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-subtitle);
}

.pms-popup-center__loading-overlay > span:last-child {
  color: var(--innvilo-text-secondary);
  line-height: 1.45;
  max-width: 28rem;
}

@keyframes pms-popup-center-logo-breathe {
  0%, 100% {
    opacity: 0.78;
    transform: scale(0.97);
  }
  50% {
    opacity: 1;
    transform: scale(1.02);
  }
}
.pms-popup-center__primary.dx-app-button-danger {
  background: var(--color-popup-danger-action-bg) !important;
  border-color: var(--color-popup-danger-action-bg) !important;
  color: var(--color-popup-danger-action-text) !important;
}

.pms-popup-center__primary.dx-app-button-danger:hover,
.pms-popup-center__primary.dx-app-button-danger:focus-visible {
  background: var(--color-popup-danger-action-hover-bg) !important;
  border-color: var(--color-popup-danger-action-hover-bg) !important;
  color: var(--color-popup-danger-action-text) !important;
}

@media (max-width: 36rem) {
  .pms-popup-center--workspace.dxbl-popup {
    max-width: min(28.125rem, 100vw - 3rem) !important;
    width: min(28.125rem, 100vw - 3rem) !important;
  }
  .pms-popup-center--fullscreen.dxbl-popup {
    width: 100vw;
    height: 100dvh;
    max-width: 100vw;
    max-height: 100dvh;
  }
  .pms-popup-center--fullscreen > .dxbl-modal-content {
    border-radius: 0;
  }
  .pms-popup-center__header,
  .pms-popup-center__body,
  .pms-popup-center__footer {
    padding-left: var(--innvilo-space-6);
    padding-right: var(--innvilo-space-6);
  }
  .pms-popup-center__footer {
    align-items: stretch;
    flex-direction: column-reverse;
  }
  .pms-popup-center__secondary.dxbl-btn {
    margin-right: 0;
  }
  .pms-popup-center__footer .dxbl-btn {
    width: 100%;
  }
}
@media (prefers-reduced-motion: reduce) {
  .pms-popup-center__loading-overlay *,
  .pms-popup-center__loading-logo {
    animation: none !important;
    transition: none !important;
  }
}
dxbl-toast-portal {
  pointer-events: none;
  z-index: var(--z-index-toast) !important;
}

dxbl-toast-portal.dxbl-toast-fixed {
  right: 9px !important;
  top: 72px !important;
}

dxbl-toast-portal .dxbl-toast {
  border-radius: var(--radius-md);
  box-shadow: none;
  font-family: "Lato-Regular", Arial, sans-serif;
  pointer-events: auto;
}

dxbl-toast-portal .dxbl-toast:not(.pms-toast) {
  background: var(--color-toast-surface);
  border: 1px solid var(--color-toast-border);
  color: var(--color-text);
}

dxbl-toast-portal .pms-toast.dxbl-toast {
  --pms-toast-border: var(--color-toast-border);
  --pms-toast-soft: var(--color-toast-info-bg);
  --pms-toast-tone: var(--color-toast-info-text);
  --dxbl-toast-background-color: var(--color-toast-surface);
  --dxbl-toast-body-padding: 0;
  --dxbl-toast-template-gap: 0;
  --dxbl-toast-template-padding: 0;
  background: var(--color-toast-surface) !important;
  border: 1px solid var(--pms-toast-border);
  border-radius: var(--radius-md);
  box-shadow: none;
  color: var(--color-text);
  font-family: "Lato-Regular", Arial, sans-serif;
  opacity: 1;
  overflow: hidden;
  padding: 0;
  pointer-events: auto;
}

dxbl-toast-portal .pms-toast.dxbl-toast .dxbl-toast-accent-line {
  background: var(--pms-toast-tone) !important;
  flex: 0 0 0.25rem;
  width: 0.25rem;
}

dxbl-toast-portal .pms-toast.dxbl-toast .dxbl-toast-body {
  background: var(--color-toast-surface) !important;
  padding: 0 !important;
  width: 100%;
}

dxbl-toast-portal .pms-toast.dxbl-toast .dxbl-toast-icon-column {
  display: none;
}

dxbl-toast-portal .pms-toast.dxbl-toast .dxbl-toast-content,
dxbl-toast-portal .pms-toast.dxbl-toast .dxbl-toast-template {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
}

dxbl-toast-portal .pms-toast.dxbl-toast .dxbl-toast-template {
  justify-content: stretch;
  padding: 0 !important;
}

dxbl-toast-portal .pms-toast.dxbl-toast .pms-toast__surface {
  background: var(--color-toast-surface) !important;
  box-sizing: border-box;
  min-height: 6.5rem;
  padding: 1rem 1.125rem 1.1rem;
  width: 100%;
}

dxbl-toast-portal .pms-toast--success.dxbl-toast {
  --pms-toast-border: var(--color-success-border);
  --pms-toast-soft: var(--color-toast-success-bg);
  --pms-toast-tone: var(--color-toast-success-text);
}

dxbl-toast-portal .pms-toast--error.dxbl-toast {
  --pms-toast-border: var(--color-error-border);
  --pms-toast-soft: var(--color-toast-error-bg);
  --pms-toast-tone: var(--color-toast-error-text);
}

dxbl-toast-portal .pms-toast--warning.dxbl-toast,
dxbl-toast-portal .pms-toast--payment.dxbl-toast {
  --pms-toast-border: var(--color-border-strong);
  --pms-toast-soft: var(--color-toast-warning-bg);
  --pms-toast-tone: var(--color-toast-warning-text);
}

dxbl-toast-portal .pms-toast--system.dxbl-toast {
  --pms-toast-soft: var(--color-toast-system-bg);
  --pms-toast-tone: var(--color-toast-system-text);
}

dxbl-toast-portal .pms-toast--booking.dxbl-toast,
dxbl-toast-portal .pms-toast--housekeeping.dxbl-toast {
  --pms-toast-border: var(--color-success-border);
  --pms-toast-soft: var(--color-accent-soft);
  --pms-toast-tone: var(--color-primary);
}

dxbl-toast-portal .pms-toast .pms-toast__action.dxbl-btn,
dxbl-toast-portal .pms-toast .pms-toast__close.dxbl-btn {
  min-height: 2rem;
  border: 0;
  background: transparent;
  box-shadow: none;
}

dxbl-toast-portal .pms-toast .pms-toast__action.dxbl-btn {
  align-self: start;
  color: var(--pms-toast-tone);
  font-size: var(--innvilo-font-size-caption);
  font-weight: 800;
}

dxbl-toast-portal .pms-toast .pms-toast__close.dxbl-btn {
  width: 2rem;
  min-width: 2rem;
  color: var(--innvilo-text-muted);
}

dxbl-toast-portal .pms-toast .pms-toast__action.dxbl-btn:hover,
dxbl-toast-portal .pms-toast .pms-toast__action.dxbl-btn:focus-visible,
dxbl-toast-portal .pms-toast .pms-toast__close.dxbl-btn:hover,
dxbl-toast-portal .pms-toast .pms-toast__close.dxbl-btn:focus-visible {
  background: var(--pms-toast-soft);
}

.pms-toast--duration-4 .pms-toast__progress {
  animation-duration: 4s;
}

.pms-toast--duration-5 .pms-toast__progress {
  animation-duration: 5s;
}

.pms-toast--duration-6 .pms-toast__progress {
  animation-duration: 6s;
}

.pms-toast--duration-8 .pms-toast__progress {
  animation-duration: 8s;
}

.pms-toast--closing.dxbl-toast {
  animation: pms-toast-exit 180ms ease-in forwards;
}

@keyframes pms-toast-exit {
  to {
    opacity: 0;
    transform: translateX(1rem) scale(0.98);
  }
}
.dx-front-office-date-range.dxbl-text-edit {
  min-height: 2.5rem;
}

.front-office-grid-shell {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--innvilo-radius-lg);
  min-width: 0;
  overflow: hidden;
}

.front-office-grid-heading {
  align-items: center;
  border-bottom: 1px solid var(--color-border);
  display: flex;
  gap: var(--innvilo-space-6);
  justify-content: space-between;
  min-height: 5.5rem;
  padding: var(--innvilo-space-6) var(--innvilo-space-8);
}
.front-office-grid-heading h2 {
  color: var(--color-navy-deep);
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: 1.125rem;
  line-height: 1.3;
  margin: 0;
}
.front-office-grid-heading p {
  color: var(--color-text-muted);
  font-size: 0.875rem;
  line-height: 1.45;
  margin: var(--innvilo-space-2) 0 0;
}
.front-office-grid-heading > span {
  background: var(--color-accent-soft);
  border-radius: var(--innvilo-radius-sm);
  color: var(--color-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: 0.8rem;
  padding: var(--innvilo-space-4) var(--innvilo-space-6);
  white-space: nowrap;
}

.front-office-grid-empty {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: var(--innvilo-space-5);
  justify-content: center;
  margin-inline: auto;
  max-width: 32rem;
  min-height: 18rem;
  padding: var(--innvilo-space-9) var(--innvilo-space-6);
  text-align: center;
  width: 100%;
}
.front-office-grid-empty > div {
  display: grid;
  gap: var(--innvilo-space-2);
  justify-items: center;
}
.front-office-grid-empty h3 {
  color: var(--color-navy-deep);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: 1rem;
  line-height: 1.35;
  margin: 0;
}
.front-office-grid-empty p {
  color: var(--color-text-muted);
  font-size: 0.82rem;
  line-height: 1.5;
  margin: 0;
  max-width: 46ch;
  text-wrap: pretty;
}

.front-office-guest-cell,
.front-office-amount-cell {
  display: grid;
  gap: var(--innvilo-space-2);
  min-width: 0;
}

.front-office-guest-cell strong,
.front-office-amount-cell strong {
  color: var(--color-navy-deep);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  overflow: hidden;
  text-overflow: ellipsis;
}

.front-office-booking-number {
  color: var(--color-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
}

.front-office-status-chip {
  justify-self: start;
}

.front-office-room-cell {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-3);
}

.front-office-room-badge,
.front-office-category-badge {
  align-items: center;
  border: 1px solid transparent;
  border-radius: var(--innvilo-radius-sm);
  display: inline-flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: 0.72rem;
  justify-content: center;
  line-height: 1.2;
  min-height: 1.75rem;
  padding: var(--innvilo-space-2) var(--innvilo-space-4);
  white-space: nowrap;
}

.front-office-room-badge {
  background: var(--color-accent-soft);
  border-color: var(--color-dashboard-emphasis-border);
  color: var(--color-primary);
  gap: var(--innvilo-space-3);
}
.front-office-room-badge.is-unassigned {
  background: var(--color-warning-soft);
  border-color: var(--color-shift-vacation-border);
  color: var(--color-shift-vacation-text);
}

.front-office-category-badge {
  background: var(--color-action-bg);
  border-color: var(--color-shift-frontoffice-border);
  color: var(--color-shift-frontoffice-text);
}

.front-office-amount-cell {
  justify-items: start;
}
.front-office-amount-cell span {
  font-size: 0.74rem;
}

.front-office-balance.is-open {
  color: var(--color-warning);
}

.front-office-balance.is-settled {
  color: var(--color-success);
}

@media (max-width: 560px) {
  .front-office-grid-heading {
    align-items: flex-start;
    min-height: 4.5rem;
    padding: var(--innvilo-space-5);
  }
  .front-office-grid-heading p {
    display: none;
  }
}
.dx-front-office-date-range.dxbl-text-edit > .dxbl-text-edit-input,
.dx-front-office-date-range.dxbl-text-edit > input {
  min-height: calc(2.5rem - 2px);
  padding-block: 0.48rem;
}

@media (prefers-reduced-motion: reduce) {
  .pms-toast.dxbl-toast {
    animation: none !important;
    transition: none !important;
  }
}
@media (max-width: 640px) {
  dxbl-toast-portal.dxbl-toast-fixed {
    right: 1px !important;
    top: calc(56px + env(safe-area-inset-top)) !important;
  }
}
.templates-notice .dxbl-btn {
  margin-top: 0.75rem;
}

.login-panel .alert {
  border-radius: var(--innvilo-radius-card);
  font-family: "Lato-Regular", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  line-height: 1.4;
  margin: 0;
  padding: 0.85rem 0.95rem;
}

.login-panel .alert-success {
  background: var(--color-success-surface);
  border: 1px solid var(--color-success-border);
  color: var(--color-success);
}

.login-panel .alert-danger {
  background: var(--color-error-surface);
  border: 1px solid var(--color-error-border);
  color: var(--color-error);
}

.login-input {
  background: var(--color-surface);
  border: 1px solid var(--color-border-strong);
  border-radius: var(--innvilo-radius-sm);
  color: var(--color-text);
  font-family: "Lato-Regular", Arial, sans-serif;
  font-size: 1rem;
  line-height: 1.45;
  min-height: 3rem;
  outline: none;
  padding: 0 var(--innvilo-space-6);
  transition: border-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), box-shadow var(--innvilo-duration-fast) var(--innvilo-easing-standard), background-color var(--innvilo-duration-fast) var(--innvilo-easing-standard);
  width: 100%;
}

.login-input-password {
  padding-right: 3.5rem;
}

.login-input::placeholder {
  color: var(--color-input-placeholder);
  font-family: "Lato-Regular", Arial, sans-serif;
}

.login-input:focus {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 0.22rem var(--color-primary-focus-ring);
}

.login-input.modified.invalid,
.login-input.invalid {
  border-color: var(--color-error);
  box-shadow: 0 0 0 0.2rem var(--color-error-focus-ring);
}

.login-input.modified.valid {
  border-color: var(--color-success-border-strong);
}

.login-validation-message {
  color: var(--color-error);
  display: block;
  font-family: "Lato-Regular", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  line-height: 1.3;
  margin: 0;
  min-height: 1.1rem;
}

.login-check input {
  accent-color: var(--color-primary);
  cursor: pointer;
  height: 1.25rem;
  width: 1.25rem;
}

.channel-manager-popup .dxbl-popup {
  border-radius: 1rem;
  overflow: hidden;
}

.channel-manager-popup .dxbl-popup-header {
  background: var(--innvilo-surface);
  border-bottom: 1px solid var(--innvilo-border);
  color: var(--innvilo-navy);
  font-weight: 900;
}

.channel-manager-popup .dxbl-popup-body {
  background: var(--innvilo-bg);
  max-height: calc(100dvh - 6rem);
  overflow: auto;
  padding: 1rem;
}

.channel-manager-popup .channel-manager-dialog {
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
}

@media (max-width: 640px) {
  .channel-manager-popup .dxbl-popup-body {
    max-height: calc(100dvh - 4rem);
    padding: 0.75rem;
  }
}
.tile-content {
  padding: 1rem;
}

.tile-icon {
  border-radius: 0.375rem;
  height: 2.75rem;
  padding: 0.75rem;
  width: 2.75rem;
  border: 1px solid var(--dxds-color-border-neutral-default-rest);
}

.tile-title {
  align-self: center;
  color: var(--dxds-color-content-neutral-default-rest);
  font-size: var(--dxds-font-size-base-md);
  font-weight: var(--dxds-font-weight-base-strong);
  letter-spacing: var(--dxds-letter-spacing-base-md);
  line-height: var(--dxds-line-height-base-md);
}

.tile-description {
  color: var(--dxds-color-content-neutral-subdued-rest);
  font-size: var(--dxds-font-size-base-sm);
  font-weight: var(--dxds-font-weight-base-default);
  letter-spacing: var(--dxds-letter-spacing-base-sm);
  line-height: var(--dxds-line-height-base-sm);
}

.mobile-action-strip .dxbl-btn {
  flex: 1 1 auto;
}

.pms-quick-action {
  column-gap: 0.65rem;
  display: grid;
  grid-template-columns: 2.3rem minmax(0, 1fr);
  min-height: 3.4rem;
  padding: 0.5rem 0.65rem;
  text-align: left;
  width: 100%;
}

.pms-quick-action.is-primary {
  min-height: 3.7rem;
}

/* DxButton is a child component: Blazor CSS isolation cannot scope its own root element,
   only literal markup nested inside it — so layout/sizing rules that target the button root
   use this central hook. Visual base styles live in global.scss's .dx-app-button-* classes. */
.pms-menu-button {
  display: none;
}

.pms-toolbar.is-compact .pms-menu-button {
  display: inline-flex;
}

.pms-account-button {
  gap: 0.6rem;
  min-height: 2.55rem;
  padding: 0.1rem 0.45rem 0.1rem 0.1rem;
}

.pms-account-menu-item {
  align-items: center;
  color: var(--color-text) !important;
  display: inline-flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: 0.9rem;
  gap: 0.65rem;
  justify-content: flex-start;
  min-height: 2.65rem;
  padding: 0 0.75rem;
  text-align: left;
  text-decoration: none;
  width: 100%;
}

.pms-account-menu-item:hover,
.pms-account-menu-item:focus-visible {
  background: var(--color-action-bg) !important;
  outline: 0;
}

@media (max-width: 720px) {
  .pms-icon-button,
  .pms-menu-button {
    height: 2.35rem;
    width: 2.35rem;
  }
  .pms-account-button {
    min-height: 2.35rem;
    padding: 0;
  }
}
.pms-navigation-menu {
  --dxbl-menu-bottom-left-border-radius: 0;
  --dxbl-menu-bottom-right-border-radius: 0;
  --dxbl-menu-top-left-border-radius: 0;
  --dxbl-menu-top-right-border-radius: 0;
  --dxbl-menu-item-padding-x: 0.85rem;
  --dxbl-menu-item-padding-y: 0;
  --dxbl-menu-item-color: var(--color-nav-text);
  --dxbl-menu-item-image-color: var(--color-nav-text-muted);
  --dxbl-menu-item-hover-bg: var(--color-nav-hover-bg);
  --dxbl-menu-item-hover-color: var(--color-nav-active);
  --dxbl-menu-item-hover-image-color: var(--color-nav-active);
  background: none;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  width: 100%;
}

.navigation-section .pms-navigation-menu {
  margin-top: 0.14rem;
}

.navigation-section .dxbl-menu-item {
  border-radius: 0.72rem;
  margin: 0.16rem 0.38rem;
  min-height: 2.5rem;
  position: relative;
  transition: background-color 0.16s ease, color 0.16s ease, transform 0.16s ease;
}

.navigation-section .dxbl-menu-item:hover {
  transform: translateX(2px);
}

.navigation-section .dxbl-menu-item .dxbl-menu-item-content {
  align-items: center;
  gap: 0.72rem;
  min-height: 2.5rem;
}

.navigation-section .dxbl-menu-item .dxbl-menu-item-icon,
.navigation-section .dxbl-menu-item .icon {
  flex: 0 0 1.1rem;
  height: 1.1rem;
  opacity: 0.9;
  width: 1.1rem;
}

.navigation-section .dxbl-menu-item .dxbl-menu-item-text {
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: 0.88rem;
  line-height: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pms-menu-item-active {
  background: var(--color-nav-active-bg);
  box-shadow: none;
  color: var(--color-nav-active);
}

.pms-menu-item-active:hover {
  background: var(--color-nav-active-gradient-hover);
  transform: none;
}

.pms-menu-item-active .dxbl-menu-item-text,
.pms-menu-item-active .dxbl-menu-item-icon,
.pms-menu-item-active .icon {
  color: var(--color-nav-active);
  opacity: 1;
}

.page.is-mobile .navigation-section .dxbl-menu-item,
.page.is-mobile .navigation-section .dxbl-menu-item .dxbl-menu-item-content {
  min-height: 3rem;
}

/* Trailing actions inside tourism evidence state rows (e.g. "Neu laden") float right;
   the text block itself stays flush left next to the icon. */
.tourism-evidence-state > .dxbl-btn,
.tourism-evidence-message > .dxbl-btn {
  align-self: center;
  flex: 0 0 auto;
  margin-left: auto;
}

.booking-plan-context-control {
  min-height: 2.65rem;
  transition: box-shadow var(--innvilo-duration-fast) var(--innvilo-easing-standard), transform var(--innvilo-duration-fast) var(--innvilo-easing-standard);
  width: 100%;
}

.booking-plan-context-control:focus-within {
  box-shadow: 0 0 0 0.18rem color-mix(in srgb, var(--innvilo-color-primary) 18%, transparent);
}

@media (prefers-reduced-motion: reduce) {
  .booking-plan-context-control {
    transition: none;
  }
}
.navigation-drawer.desktop,
.navigation-drawer.desktop > .dxbl-drawer,
.navigation-drawer.desktop .dxbl-drawer-content,
.navigation-drawer.desktop .dxbl-drawer-body,
.navigation-drawer.desktop .dxbl-drawer-target-content {
  animation: none !important;
  transition: none !important;
}

.page.is-desktop .drawer-container,
.navigation-drawer.desktop,
.navigation-drawer.desktop > .dxbl-drawer,
.navigation-drawer.desktop .dxbl-drawer-content,
.navigation-drawer.desktop .dxbl-drawer-body,
.navigation-drawer.desktop .dxbl-drawer-target-content {
  height: 100dvh;
  max-height: 100dvh;
  min-height: 0;
  overflow-y: hidden;
}

.navigation-drawer.desktop > .dxbl-drawer-panel .dxbl-drawer-header,
.navigation-drawer.desktop > .dxbl-drawer-panel .dxbl-drawer-footer {
  flex: 0 0 auto;
}

.navigation-drawer.desktop > .dxbl-drawer-panel .dxbl-drawer-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

.navigation-drawer,
.navigation-drawer > .dxbl-drawer,
.navigation-drawer .dxbl-drawer-content,
.navigation-drawer .dxbl-drawer-body,
.navigation-drawer .dxbl-drawer-target-content {
  max-width: 100%;
  min-height: 100dvh;
  min-width: 0;
}

.navigation-drawer.mobile.panel-open .dxbl-drawer-content {
  max-height: 100dvh;
  overflow: hidden;
}

/* Hotel profile room editor: keep all DevExpress-specific overrides centralized. */
.dx-room-editor-dialog .dx-room-editor-layout {
  font-family: Lato, sans-serif;
}
.dx-room-editor-dialog .dxbl-fl-tabs-content {
  padding-top: 1rem;
}
.dx-room-editor-dialog .dxbl-fl-group {
  border-color: var(--color-border);
  border-radius: 0.75rem;
}
.dx-room-editor-dialog .dxbl-fl-group-caption,
.dx-room-editor-dialog .dxbl-fl-item-caption {
  color: var(--color-text);
  font-family: Lato, sans-serif;
  font-weight: 700;
}
.dx-room-editor-dialog .dxbl-tabs-tab {
  font-family: Lato, sans-serif;
}
.dx-room-editor-dialog .validation-message,
.dx-room-editor-dialog .validation-errors {
  color: var(--color-error);
  font-family: Lato, sans-serif;
  font-size: 0.78rem;
}

/* Front Office room access: DevExpress overrides stay global and feature-scoped. */
.room-access-page {
  font-family: "Lato-Regular", Arial, sans-serif;
}
.room-access-page .dxbl-btn,
.room-access-page .dxbl-btn .dxbl-btn-content {
  font-family: "Lato-SemiBold", Arial, sans-serif;
}
.room-access-page .dxbl-text-edit,
.room-access-page .dxbl-text-edit-input,
.room-access-page input,
.room-access-page input::placeholder {
  font-family: "Lato-Regular", Arial, sans-serif;
}
.room-access-page .dxbl-btn:focus-visible,
.room-access-page .dxbl-text-edit:focus-within {
  box-shadow: 0 0 0 3px var(--color-primary-focus-ring);
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

.room-access-form-input {
  width: 100%;
}
.room-access-form-input.dxbl-text-edit,
.room-access-form-input .dxbl-text-edit {
  background: var(--color-surface);
  border-color: var(--color-border-strong);
  border-radius: var(--radius-sm);
  color: var(--color-navy-deep);
  min-height: 3rem;
}
.room-access-form-input .dxbl-text-edit-input,
.room-access-form-input input,
.room-access-form-input textarea {
  color: var(--color-navy-deep);
  font-family: "Lato-Regular", Arial, sans-serif;
  font-size: 0.95rem;
}
.room-access-form-input textarea {
  line-height: 1.5;
  min-height: 5.5rem;
}

.room-access-method-button {
  background: var(--color-surface);
  border-color: var(--color-border-strong);
  border-radius: var(--radius-md);
  color: var(--color-navy-deep);
  min-height: 6.25rem;
  padding: 0.85rem;
  width: 100%;
}
.room-access-method-button .dxbl-btn-content {
  align-items: start;
  display: grid;
  gap: 0.65rem;
  grid-template-columns: auto minmax(0, 1fr) auto;
  white-space: normal;
  width: 100%;
}
.room-access-method-button .dxbl-btn-content > i:first-child {
  align-items: center;
  background: var(--color-accent-soft);
  border-radius: var(--radius-sm);
  color: var(--color-primary);
  display: inline-flex;
  font-size: 1.35rem;
  height: 2.5rem;
  justify-content: center;
  width: 2.5rem;
}
.room-access-method-button:hover, .room-access-method-button:focus-visible {
  background: var(--color-surface-soft);
  border-color: var(--color-primary);
  color: var(--color-navy-deep);
}
.room-access-method-button.is-selected {
  background: var(--color-accent-soft);
  border-color: var(--color-primary);
  box-shadow: inset 0 0 0 1px var(--color-primary);
  color: var(--color-navy-deep);
}

.access-status-badge {
  background: var(--color-surface-raised);
  border: 1px solid var(--color-border);
  border-radius: 999px;
  color: var(--color-text);
  display: inline-flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: 0.75rem;
  line-height: 1;
  padding: 0.4rem 0.65rem;
  text-decoration: none;
  white-space: nowrap;
}
.access-status-badge.is-success {
  background: var(--color-success-surface);
  border-color: var(--color-success-border);
  color: var(--color-success);
}
.access-status-badge.is-error {
  background: var(--color-error-surface);
  border-color: var(--color-error-border);
  color: var(--color-error);
}
.access-status-badge.is-warning {
  background: var(--color-warning-soft);
  border-color: var(--color-border-strong);
  color: var(--color-navy-deep);
}
.access-status-badge.is-info {
  background: var(--color-accent-soft);
  border-color: var(--color-border);
  color: var(--color-primary);
}

.room-access-verification-check {
  color: var(--color-text);
  font-family: "Lato-Regular", Arial, sans-serif;
  min-height: var(--innvilo-grid-action-target-touch);
}
.room-access-verification-check .dxbl-checkbox-label {
  color: var(--color-text);
  font-family: "Lato-Regular", Arial, sans-serif;
  line-height: 1.4;
}

.room-access-result-action {
  background: var(--color-surface);
  border-color: var(--color-border-strong);
  border-radius: var(--radius-sm);
  color: var(--color-navy-deep);
  min-height: 2.85rem;
}
.room-access-result-action:hover, .room-access-result-action:focus-visible {
  background: var(--color-accent-soft);
  border-color: var(--color-primary);
  color: var(--color-primary);
}

@media (max-width: 620px) {
  .room-access-method-button {
    min-height: 5.25rem;
  }
}
.room-access-search-input {
  min-height: 3rem;
  width: 100%;
}
.room-access-search-input .dxbl-text-edit {
  border-color: var(--color-border-strong);
  border-radius: var(--radius-sm);
  min-height: 3rem;
}
.room-access-search-input .dxbl-text-edit-input {
  color: var(--color-navy-deep);
  font-size: 0.95rem;
}

.room-access-result-button {
  background: var(--color-surface);
  border-color: var(--color-border);
  border-radius: var(--radius-sm);
  color: var(--color-text);
  min-height: 4rem;
  padding: 0.55rem 0.65rem;
  transition: background-color 160ms ease, border-color 160ms ease;
  width: 100%;
}
.room-access-result-button .dxbl-btn-content {
  align-items: center;
  display: grid;
  gap: 0.65rem;
  grid-template-columns: auto minmax(0, 1fr) auto;
  width: 100%;
}

.room-access-result-button:hover {
  background: var(--color-surface-soft);
  border-color: var(--color-border-strong);
  color: var(--color-text);
}

.room-access-result-button.is-selected {
  background: var(--color-accent-soft);
  border-color: var(--color-primary);
  box-shadow: inset 3px 0 0 var(--color-primary);
  color: var(--color-text);
}

.room-access-result-button.is-selected .room-access-result-check {
  color: var(--color-primary);
}

.room-access-code-toggle {
  background: var(--color-surface);
  border-color: var(--color-border-strong);
  color: var(--color-navy-deep);
  min-height: 2.65rem;
}

.room-access-code-toggle:hover,
.room-access-code-toggle:focus-visible {
  background: var(--color-accent-soft);
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.booking-offer.dxbl-btn {
  align-items: center;
  background: var(--color-surface);
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-md);
  display: grid;
  gap: 1rem;
  grid-template-columns: minmax(0, 1fr) auto auto;
  height: auto;
  min-height: 0;
  padding: 1rem 1.15rem;
  text-align: left;
  transition: border-color 160ms ease, background-color 160ms ease;
  width: 100%;
}

.booking-offer.dxbl-btn .offer-main {
  display: grid;
  gap: 0.2rem;
  min-width: 0;
}

.booking-offer.dxbl-btn .offer-main strong {
  color: var(--color-navy-deep);
  font-family: "Lato-Bold", Arial, sans-serif;
}

.booking-offer.dxbl-btn .offer-main span {
  color: var(--color-text-muted);
  font-size: 0.8rem;
}

.booking-offer.dxbl-btn .offer-price {
  display: grid;
  gap: 0.1rem;
  justify-items: end;
}

.booking-offer.dxbl-btn .offer-price strong {
  color: var(--color-navy-deep);
  font-family: "Lato-Bold", Arial, sans-serif;
}

.booking-offer.dxbl-btn .offer-price span {
  color: var(--color-text-muted);
  font-size: 0.72rem;
}

.booking-offer.dxbl-btn .offer-check {
  color: var(--color-border-strong);
}

.booking-offer.dxbl-btn:hover {
  border-color: var(--color-primary);
}

.booking-offer.dxbl-btn.is-selected {
  background: var(--color-accent-soft);
  border-color: var(--color-primary);
}

.booking-offer.dxbl-btn.is-selected .offer-check {
  color: var(--color-primary);
}

.booking-offer.dxbl-btn.is-unavailable,
.booking-offer.dxbl-btn.is-unavailable.dxbl-disabled {
  background: var(--color-error-surface);
  border-color: var(--color-error-border);
  cursor: not-allowed;
  opacity: 0.78;
}

.booking-offer.dxbl-btn.is-unavailable .offer-check,
.booking-offer.dxbl-btn.is-unavailable .offer-main span {
  color: var(--color-error);
}

.pms-generic-filter {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  box-shadow: none;
  color: var(--color-text);
  overflow: hidden;
  position: relative;
}

body .platform-workspace .pms-kpi-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));
  gap: var(--innvilo-space-4);
}

body .platform-workspace .pms-kpi-card {
  padding: var(--innvilo-space-4);
  min-height: 0;
  background: transparent;
}

body .platform-workspace .pms-kpi-card__value-row {
  max-width: 100%;
  flex-wrap: wrap;
}

body .platform-workspace .pms-kpi-card__value {
  font-size: var(--innvilo-font-size-title);
  overflow-wrap: normal;
  word-break: normal;
}

body .platform-workspace .pms-kpi-card__icon {
  display: none;
}

body .platform-workspace .pms-kpi-card__label {
  max-width: 100%;
}

body .platform-workspace .pms-kpi-card__detail {
  max-width: 100%;
  overflow-wrap: break-word;
}

body .platform-workspace .pms-page-hero__topline {
  margin-bottom: var(--innvilo-space-3);
}

body .platform-workspace .pms-page-hero__main {
  gap: var(--innvilo-space-4);
}

body .platform-workspace .pms-page-hero__heading {
  gap: var(--innvilo-space-2);
}

body .platform-workspace .pms-page-hero__heading h1 {
  font-size: var(--innvilo-font-size-title);
}

body .platform-workspace .pms-generic-filter__header {
  min-height: 0;
  padding: var(--innvilo-space-3) var(--innvilo-space-4);
}

body .platform-workspace .pms-generic-filter h2 {
  font-size: var(--innvilo-font-size-body);
}

/* --------------------------------------------------- Übersicht Heute: die Fläche */
/* Die eine Fläche der Übersicht. Sie steht zentral und genau einmal, weil fünf
   Bereiche sie teilen (Kennzahlenzeile, Tagesfluss, die drei Tageskarten, die
   Auswertungskarten und der Ladeplatzhalter) und die CSS-Isolation je Komponente
   sonst fünf Wahrheiten mit denselben Werten erzeugt. Getrennt wird über Rahmen und
   Weißraum, nie über Tiefe: kein Schatten.
   `body` davor hält die Spezifität über den Panel-Varianten anderer Bereiche
   (`.bq-panel` im Bankett), die schon bisher gegen die isolierte Regel verloren haben.

   Der Radius ist `--innvilo-radius-xs` (4px), der Wert jeder Fläche der Referenzseite
   `/anfragen` (`docs/handovers/2026-09-02-anfragen-redesign.md` §2: "Radius Flächen …
   0.25rem (4px) … --innvilo-radius-xs"). Vorher stand hier `--radius-md` (8px). Das
   Token bleibt unangetastet: es versorgt 23 weitere Stellen in 13 Dateien, unter
   anderem die Kopfzeile des Portals, die Reputationsansicht und den No-Show-Dialog.
   `.dashboard-surface` trägt außerhalb der Übersicht nur der gemeinsame Baustein
   `DashboardPanel`, den die Bankett-Übersicht mit `CssClass="bq-panel"` nutzt; deren
   eigene Regel nennt denselben Wert (`.bq-panel { border-radius: var(--innvilo-radius-xs) }`),
   die Bankett-Flächen kommen damit auf ihren selbst erklärten Radius. */
body .dashboard-surface {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--innvilo-radius-xs);
  min-width: 0;
  padding: var(--innvilo-space-8);
}

@media (max-width: 767px) {
  body .dashboard-surface {
    padding: var(--innvilo-space-6);
  }
}
@media (prefers-contrast: more) {
  body .dashboard-surface {
    border-color: var(--color-border-strong);
  }
}
/* Der Seitenstapel der Übersicht. Er steht zentral und genau einmal, weil ihn zwei
   Komponenten tragen: die Werkbank (HotelTodayDesktop) und der Fehlerzustand
   (Index.razor). Vorher stand er zweimal mit denselben Werten in zwei isolierten
   Stylesheets, also genau die doppelte Wahrheit, die für die Fläche aufgelöst wurde.
   `container` gehört dazu: jeder Umbruch der Seite hängt an der Breite dieses Blocks,
   nicht an der des Fensters (das ausgeklappte Menü nimmt rund 250px weg). */
body .dashboard-page {
  container: dashboard-page/inline-size;
  display: flex;
  flex-direction: column;
  gap: var(--innvilo-space-6);
  min-width: 0;
  padding-bottom: var(--innvilo-space-9);
  width: 100%;
}

/* Der Größenkontext der Kennzahlenzeile steht zentral, weil ihn zwei Komponenten
   setzen: die fertige Werkbank und der Ladeplatzhalter. Vorher trug ihn nur die
   Werkbank, deshalb blieb der Platzhalter dreispaltig, während die geladene Zeile
   sechsspaltig stand, und die Seite sprang beim Eintreffen der Daten. */
body .dashboard-metrics-block {
  container: dashboard-block/inline-size;
}

/* Flache Kennzahlenzeile (Übersicht Heute): der gemeinsame Baustein bleibt, verliert
   hier aber die Kästen. Getrennt wird mit einer dünnen senkrechten Linie, das
   dekorative Flächensymbol entfällt. Die Zeile richtet sich links am Textblock aus.
   Die Fläche darunter kommt vom Block (`.dashboard-metrics-block.dashboard-surface`);
   eine Fläche je Zahl wäre wieder die Kachelleiste, die hier abgelöst wurde.
   Die Regeln stehen zentral, weil CSS-Isolation das Markup einer Kindkomponente
   nicht erreicht. Die Rinne der Zeile steht weiter unten bei der Spaltenzahl, weil sie
   dieselbe Spezifität braucht. */
/* Ein sechsstelliger Betrag muss ganz dastehen: `overflow: visible` nimmt das
   Abschneiden des Kartenbausteins zurück, und die Spaltenzahl weiter unten sorgt dafür,
   dass die Zelle breit genug bleibt. */
.pms-kpi-grid.is-flat .pms-kpi-card {
  background: transparent;
  border: 0;
  border-radius: 0;
  min-height: 0;
  overflow: visible;
  padding: var(--innvilo-space-4) var(--innvilo-space-7);
}

.pms-kpi-grid.is-flat .pms-kpi-card + .pms-kpi-card {
  border-left: 1px solid var(--color-border);
}

.pms-kpi-grid.is-flat .pms-kpi-card:first-child {
  padding-left: 0;
}

/* Sechs Zahlen in einer Zeile lesen ruhiger eine Stufe kleiner; die Kartenzahl der
   übrigen Seiten bleibt unberührt. */
.pms-kpi-grid.is-flat .pms-kpi-card__value {
  font-size: var(--innvilo-font-size-heading);
}

.pms-kpi-grid.is-flat .pms-kpi-card__detail {
  max-width: 100%;
}

/* Farbe in der Kennzahlenzeile, mit demselben Vokabular wie die KPI-Leiste der Anfragen
   (`.inquiry-kpi.is-current/.is-attention/.is-positive`, Anfragen-Handover §5.3). Sie sitzt
   ausschließlich auf der Zahl, nie auf einer Fläche, und der Dienst setzt den Ton nur, wenn er
   etwas aussagt: "lead" genau einmal (die Auslastung), "attention" nur über null, "positive" nur
   für tatsächlich Erledigtes. Damit bleibt der Akzent weit unter zehn Prozent der Fläche
   (DESIGN_NEW_RULES §1).
   Alle Regeln hängen an `.is-flat`, das nur die Übersicht trägt; jede andere Seite mit
   `PmsKpiGrid` bleibt unberührt. */
.pms-kpi-grid.is-flat .pms-kpi-card.is-primary .pms-kpi-card__value {
  color: var(--color-primary);
}

.pms-kpi-grid.is-flat .pms-kpi-card.is-warning .pms-kpi-card__value {
  color: var(--color-warning-text);
}

.pms-kpi-grid.is-flat .pms-kpi-card.is-positive .pms-kpi-card__value {
  color: var(--color-success);
}

/* Die Leitkennzahl trägt zusätzlich einen 3px-Balken am oberen Rand ihrer Zelle, wie
   `.inquiry-kpi.is-current`. Er liegt außerhalb des Textflusses, damit die Zelle exakt so hoch
   bleibt wie ihre Nachbarn und keine Beschriftung um drei Pixel verrutscht. */
.pms-kpi-grid.is-flat .pms-kpi-card.is-primary::before {
  background: var(--color-primary);
  content: "";
  height: 3px;
  inset: 0 0 auto 0;
  position: absolute;
}

.pms-kpi-grid.is-flat a.pms-kpi-card:hover {
  background: var(--color-surface-soft);
  border-color: var(--color-border);
}

/* Die Spaltenzahl richtet sich an der Breite des Blocks aus, nicht an der des
   Fensters: bei ausgeklapptem Menü ist die Spalte deutlich schmaler als das Fenster,
   und genau dort wurden Beschriftung und Betrag vorher abgeschnitten. Die senkrechte
   Linie darf nie am Zeilenanfang stehen.

   Rinne 0: die Trennlinie ist der linke Rahmen der folgenden Zelle, und beide Nachbarn
   tragen ihre 20px Innenabstand. Mit Rinne stand die Linie 44px vom linken und 20px vom
   rechten Nachbartext entfernt statt mittig. Die Rinne gehört hierher und nicht zu
   `.is-flat` allein, weil sie sonst zweimal verliert: gegen `.pms-kpi-grid[b-…]` aus
   PmsKpiGrid.razor.css (gleiche Spezifität, später im Ladeauftrag) und unter 600px
   gegen `.pms-kpi-grid.has-6-items[b-…]` (eine Klasse mehr). Die Zählklasse steht immer
   am Markup, `PmsKpiGrid.RootCssClass` setzt sie unbedingt. */
body .pms-kpi-grid.is-flat.has-1-items,
body .pms-kpi-grid.is-flat.has-2-items,
body .pms-kpi-grid.is-flat.has-3-items,
body .pms-kpi-grid.is-flat.has-4-items,
body .pms-kpi-grid.is-flat.has-5-items,
body .pms-kpi-grid.is-flat.has-6-items {
  gap: 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.pms-kpi-grid.is-flat .pms-kpi-card:nth-child(3n+1) {
  border-left: 0;
  padding-left: 0;
}

@container dashboard-block (min-width: 60rem) {
  body .pms-kpi-grid.is-flat.has-4-items {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  body .pms-kpi-grid.is-flat.has-5-items {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  body .pms-kpi-grid.is-flat.has-6-items {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .pms-kpi-grid.is-flat .pms-kpi-card:nth-child(3n+1) {
    border-left: 1px solid var(--color-border);
    padding-left: var(--innvilo-space-7);
  }
  .pms-kpi-grid.is-flat .pms-kpi-card:first-child {
    border-left: 0;
    padding-left: 0;
  }
}
@container dashboard-block (max-width: 34rem) {
  body .pms-kpi-grid.is-flat.has-3-items,
  body .pms-kpi-grid.is-flat.has-4-items,
  body .pms-kpi-grid.is-flat.has-5-items,
  body .pms-kpi-grid.is-flat.has-6-items {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .pms-kpi-grid.is-flat .pms-kpi-card:nth-child(3n+1) {
    border-left: 1px solid var(--color-border);
    padding-left: var(--innvilo-space-7);
  }
  .pms-kpi-grid.is-flat .pms-kpi-card:nth-child(2n+1) {
    border-left: 0;
    padding-left: 0;
  }
}
@container dashboard-block (max-width: 22rem) {
  body .pms-kpi-grid.is-flat.has-2-items,
  body .pms-kpi-grid.is-flat.has-3-items,
  body .pms-kpi-grid.is-flat.has-4-items,
  body .pms-kpi-grid.is-flat.has-5-items,
  body .pms-kpi-grid.is-flat.has-6-items {
    grid-template-columns: minmax(0, 1fr);
  }
  .pms-kpi-grid.is-flat .pms-kpi-card {
    padding: var(--innvilo-space-5) 0;
  }
  /* Einspaltig richten sich alle Zellen an derselben linken Kante aus. Die
     Spaltenregeln oben sind durch `:nth-child` spezifischer und müssen deshalb
     ausdrücklich zurückgenommen werden, sonst rückt jede vierte Zelle ein. */
  .pms-kpi-grid.is-flat .pms-kpi-card:nth-child(2n+1),
  .pms-kpi-grid.is-flat .pms-kpi-card:nth-child(3n+1) {
    border-left: 0;
    padding-left: 0;
  }
  .pms-kpi-grid.is-flat .pms-kpi-card + .pms-kpi-card {
    border-left: 0;
    border-top: 1px solid var(--color-border);
  }
}
.pms-kpi-grid + .pms-generic-filter {
  margin-top: calc(var(--innvilo-page-hero-gap) - var(--innvilo-space-6));
}

body .account-overview-page > .pms-kpi-grid + .pms-generic-filter {
  margin-top: 0;
}

.pms-generic-filter form {
  display: grid;
}

.pms-generic-filter__body {
  display: grid;
  min-width: 0;
}

.pms-generic-filter.is-loading form {
  visibility: hidden;
}

.pms-generic-filter__header,
.pms-generic-filter__footer {
  align-items: center;
  display: flex;
  gap: var(--innvilo-space-5);
  justify-content: space-between;
  padding: var(--innvilo-space-6) var(--innvilo-space-7);
}

.pms-generic-filter__header {
  border-bottom: 1px solid var(--color-border);
  min-height: 4rem;
}

.pms-generic-filter.is-collapsed .pms-generic-filter__header {
  border-bottom-color: transparent;
}

.pms-generic-filter__presets {
  align-items: center;
  border-bottom: 1px solid var(--color-border);
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-3);
  padding: 0.75rem 1.25rem;
}

.pms-generic-filter__heading,
.pms-generic-filter__header-actions,
.pms-generic-filter__footer-actions,
.pms-generic-filter__title-row {
  align-items: center;
  display: flex;
}

.pms-generic-filter__heading {
  gap: var(--innvilo-space-4);
  min-width: 0;
}

.pms-generic-filter__icon {
  color: var(--color-primary);
  flex: 0 0 auto;
  font-size: var(--innvilo-font-size-subheading);
  line-height: 1;
}

.pms-generic-filter__title-row {
  gap: var(--innvilo-space-4);
}

.pms-generic-filter h2 {
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-subheading);
  line-height: 1.25;
  margin: 0;
}

.pms-generic-filter__heading p {
  color: var(--color-text-muted);
  font-family: "Lato-Regular", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  margin: var(--innvilo-space-2) 0 0;
}

.pms-generic-filter__count {
  align-items: center;
  background: var(--color-accent-soft);
  border: 1px solid var(--color-primary-focus-ring);
  border-radius: var(--innvilo-radius-full);
  color: var(--color-primary);
  display: inline-flex;
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  justify-content: center;
  min-height: var(--innvilo-space-7);
  min-width: var(--innvilo-space-7);
  padding: 0 var(--innvilo-space-3);
}

.pms-generic-filter__pending {
  color: var(--color-warning);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
}

.pms-generic-filter__header-actions,
.pms-generic-filter__footer-actions {
  flex: 0 0 auto;
  gap: var(--innvilo-space-4);
}

.pms-generic-filter__collapse-toggle {
  align-items: center;
  background: var(--color-surface);
  border: 1px solid var(--color-border-strong);
  border-radius: var(--innvilo-radius-sm);
  color: var(--color-primary);
  cursor: pointer;
  display: inline-flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  gap: var(--innvilo-space-3);
  justify-content: center;
  min-height: 2.75rem;
  padding: 0 var(--innvilo-space-5);
  transition: background-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), border-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), color var(--innvilo-duration-fast) var(--innvilo-easing-standard);
}

.pms-generic-filter__collapse-toggle:hover {
  background: var(--color-surface-soft);
  border-color: var(--color-primary);
}

.pms-generic-filter__collapse-toggle:focus-visible {
  box-shadow: 0 0 0 var(--innvilo-space-2) var(--color-primary-focus-ring);
  outline: 0;
}

.pms-generic-filter__collapse-toggle:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

.pms-generic-filter__collapse-toggle i {
  font-size: 0.75rem;
  transform: rotate(0deg);
  transition: transform var(--innvilo-duration-normal) var(--innvilo-easing-settle);
}

.pms-generic-filter.is-expanded .pms-generic-filter__collapse-toggle i {
  transform: rotate(180deg);
}

.pms-generic-filter__grid {
  display: grid;
  gap: 0.75rem 1rem;
  grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
  align-items: start;
  padding: var(--innvilo-space-6) var(--innvilo-space-7);
}

.pms-generic-filter__body-actions {
  display: flex;
  justify-content: flex-end;
  padding: var(--innvilo-space-5) var(--innvilo-space-7) 0;
}

.pms-generic-filter__field {
  align-content: start;
  align-self: start;
  display: grid;
  gap: var(--innvilo-space-3);
  grid-auto-rows: max-content;
  min-width: 0;
}

.pms-generic-filter__field--span-2 {
  grid-column: span 2;
}

.pms-generic-filter__field--date-range {
  grid-column: span 2;
  min-width: 18rem;
}

.pms-generic-filter__field--full {
  grid-column: 1/-1;
}

.pms-generic-filter__field > label {
  color: var(--color-text-muted);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  line-height: 1.25;
}

.pms-generic-filter__field-error {
  color: var(--color-error);
  font-family: "Lato-Regular", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  line-height: 1.35;
}

.pms-generic-filter__field.has-error .pms-generic-filter__editor.dxbl-text-edit {
  border-color: var(--color-error);
  box-shadow: 0 0 0 var(--innvilo-space-2) var(--color-error-focus-ring);
}

body .pms-generic-filter__checklist-popup {
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-md);
  box-shadow: var(--innvilo-shadow-popover);
  overflow: hidden;
}

body .pms-generic-filter__checklist-body {
  background: var(--color-surface);
  padding: var(--innvilo-space-2);
}

body .pms-generic-filter__checklist.dxbl-list-box {
  --dxbl-list-box-bg: var(--color-surface);
  --dxbl-list-box-checkbox-check-element-padding-m: var(--innvilo-space-3);
  --dxbl-list-box-focus-frame-color: var(--color-primary);
  --dxbl-list-box-focus-frame-size: 2px;
  --dxbl-list-box-gap: var(--innvilo-space-1);
  --dxbl-list-box-item-hover-bg: var(--color-surface-soft);
  --dxbl-list-box-item-multi-selected-bg: var(--color-accent-soft);
  --dxbl-list-box-item-multi-selected-hover-bg: var(--color-accent-soft);
  --dxbl-list-box-item-padding-x-m: var(--innvilo-space-5);
  --dxbl-list-box-item-padding-y-m: var(--innvilo-space-4);
  --dxbl-list-box-padding: var(--innvilo-space-2);
  border: 0;
  border-radius: var(--radius-sm);
  font-family: "Lato-Regular", Arial, sans-serif;
  max-height: min(20rem, 100dvh - 8rem);
  min-height: 3rem;
}

body .pms-generic-filter__checklist.dxbl-list-box .dxbl-list-box-select-all-container {
  align-items: center;
  border-bottom: 1px solid var(--color-border);
  color: var(--color-text-muted);
  display: flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  justify-content: flex-start;
  margin-bottom: var(--innvilo-space-2);
  min-height: 2.75rem;
  padding: var(--innvilo-space-3) var(--innvilo-space-4);
  text-align: left;
}

body .pms-generic-filter__checklist.dxbl-list-box .dxbl-list-box-select-all-container > .dxbl-checkbox {
  gap: var(--innvilo-space-3);
  justify-content: flex-start;
  margin: 0;
  width: auto;
}

body .pms-generic-filter__checklist.dxbl-list-box li[role=option] {
  align-items: center;
  border-radius: var(--radius-sm);
  color: var(--color-text);
  cursor: pointer;
  display: flex;
  gap: var(--innvilo-space-3);
  justify-content: flex-start;
  min-height: 2.75rem;
  padding: 0.625rem var(--innvilo-space-4);
  text-align: left;
}

body .pms-generic-filter__checklist.dxbl-list-box li[role=option] > .dxbl-checkbox {
  flex: 0 0 auto;
}

body .pms-generic-filter__checklist.dxbl-list-box li[role=option]:hover {
  background: var(--color-surface-soft);
}

body .pms-generic-filter__checklist.dxbl-list-box li[role=option][aria-selected=true] {
  background: var(--color-accent-soft);
  color: var(--color-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
}

body .pms-generic-filter__checklist .dxbl-checkbox {
  align-items: center;
  justify-content: flex-start;
  width: auto;
}

body .pms-generic-filter__checklist .dxbl-checkbox > label.dxbl-text {
  color: var(--color-text);
  font-family: "Lato-Regular", Arial, sans-serif;
  line-height: 1.35;
  margin: 0;
  text-align: left;
  white-space: normal;
}

body .pms-generic-filter__checklist .dxbl-checkbox-check-element {
  flex: 0 0 auto;
}

body .pms-generic-filter__checklist.dxbl-list-box li[role=option][aria-disabled=true] {
  cursor: not-allowed;
  opacity: 0.55;
}

.pms-generic-filter__summary {
  align-items: center;
  background: color-mix(in srgb, var(--color-accent-soft) 48%, var(--color-surface));
  border: 0;
  border-bottom: 1px solid var(--color-border);
  border-radius: 0;
  display: flex;
  gap: var(--innvilo-space-4);
  margin: 0;
  padding: var(--innvilo-space-4) var(--innvilo-space-7);
}

.pms-generic-filter__summary > strong {
  color: var(--color-navy-deep);
  flex: 0 0 auto;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  line-height: 1.75rem;
}

.pms-generic-filter__badges {
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-2);
  min-width: 0;
}

.pms-generic-filter__badge {
  align-items: center;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--innvilo-radius-full);
  color: var(--color-primary);
  display: inline-flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  line-height: 1.25;
  min-height: 1.75rem;
  padding: var(--innvilo-space-2) var(--innvilo-space-4);
}

.pms-generic-filter__error {
  align-items: center;
  background: var(--color-error-surface);
  border-bottom: 1px solid var(--color-error-border);
  color: var(--color-error);
  display: flex;
  font-size: var(--innvilo-font-size-caption);
  gap: var(--innvilo-space-4);
  padding: 0.75rem 1.25rem;
}

.pms-generic-filter__leading {
  border-bottom: 1px solid var(--color-border);
  min-width: 0;
}

.pms-generic-filter__footer {
  background: var(--color-surface-soft);
  border-top: 1px solid var(--color-border);
  justify-content: flex-end;
  padding-block: 0.75rem;
}

body .pms-generic-filter__apply.dxbl-btn {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-surface);
}

body .pms-generic-filter__apply.dxbl-btn:hover {
  background: var(--color-primary-hover);
  border-color: var(--color-primary-hover);
}

body .pms-generic-filter__preset.dxbl-btn.is-active {
  background: var(--color-accent-soft);
  border-color: var(--color-primary);
  color: var(--color-primary);
}

body .pms-generic-filter__apply.dxbl-btn:focus-visible,
body .pms-generic-filter__reset.dxbl-btn:focus-visible,
body .pms-generic-filter__footer-reset.dxbl-btn:focus-visible {
  box-shadow: 0 0 0 var(--innvilo-space-2) var(--color-primary-focus-ring);
  outline: 0;
}

.pms-generic-filter__skeleton {
  background: var(--color-surface);
  display: grid;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  position: absolute;
  z-index: 2;
}

.pms-generic-filter__skeleton::after {
  animation: pms-generic-filter-shimmer 1.6s ease-in-out infinite;
  background: linear-gradient(90deg, transparent, var(--color-surface), transparent);
  content: "";
  inset: 0;
  opacity: 0.72;
  position: absolute;
  transform: translateX(-100%);
}

.pms-generic-filter__skeleton-header,
.pms-generic-filter__skeleton-leading,
.pms-generic-filter__skeleton-footer {
  align-items: center;
  display: flex;
  justify-content: space-between;
  padding: var(--innvilo-space-6) var(--innvilo-space-7);
}

.pms-generic-filter__skeleton-header {
  border-bottom: 1px solid var(--color-border);
}

.pms-generic-filter__skeleton-leading {
  border-bottom: 1px solid var(--color-border);
  gap: var(--innvilo-space-4);
  justify-content: flex-start;
}

.pms-generic-filter__skeleton-leading i:first-child {
  height: var(--innvilo-space-9);
  width: var(--innvilo-space-9);
}

.pms-generic-filter__skeleton-leading i:last-child {
  height: var(--innvilo-space-9);
  width: min(24rem, 60%);
}

.pms-generic-filter__skeleton-footer {
  border-top: 1px solid var(--color-border);
}

.pms-generic-filter__skeleton-grid {
  display: grid;
  gap: 0.75rem 1rem;
  grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
  padding: 1rem 1.25rem;
}

.pms-generic-filter__skeleton i {
  background: var(--color-surface-soft);
  border-radius: var(--radius-sm);
  display: block;
}

.pms-generic-filter__skeleton-header i:first-child {
  height: var(--innvilo-space-8);
  width: 30%;
}

.pms-generic-filter__skeleton-header i:last-child,
.pms-generic-filter__skeleton-footer i:last-child {
  height: var(--innvilo-space-9);
  width: 18%;
}

.pms-generic-filter__skeleton-grid i {
  height: var(--innvilo-space-10);
}

.pms-generic-filter__skeleton-footer i:first-child {
  height: var(--innvilo-space-6);
  width: 22%;
}

.pms-generic-filter.is-toolbar {
  box-shadow: none;
}

.pms-generic-filter.is-toolbar form {
  align-items: end;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
}

.pms-generic-filter.is-toolbar .pms-generic-filter__body {
  display: contents;
}

.pms-generic-filter.is-toolbar .pms-generic-filter__presets {
  border-bottom: 0;
  border-right: 1px solid var(--color-border);
  padding: var(--innvilo-space-5);
}

.pms-generic-filter.is-toolbar .pms-generic-filter__grid {
  gap: 0.75rem 1rem;
  grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
  padding: 1rem;
}

.pms-generic-filter.is-toolbar .pms-generic-filter__footer {
  border-top: 0;
  min-height: 100%;
  padding: 1rem;
}

.pms-generic-filter.is-toolbar .pms-generic-filter__field > label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@keyframes pms-generic-filter-shimmer {
  to {
    transform: translateX(100%);
  }
}
@media (max-width: 68rem) {
  .pms-generic-filter.is-toolbar form {
    grid-template-columns: minmax(0, 1fr);
  }
  .pms-generic-filter.is-toolbar .pms-generic-filter__footer {
    border-top: 1px solid var(--color-border);
  }
  .pms-generic-filter__grid,
  .pms-generic-filter__skeleton-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .pms-generic-filter__field--full {
    grid-column: 1/-1;
  }
}
@media (max-width: 48rem) {
  body .pms-generic-filter__checklist-popup {
    max-width: calc(100vw - 2rem);
  }
  body .pms-generic-filter__checklist.dxbl-list-box {
    --dxbl-list-box-item-padding-y-m: var(--innvilo-space-5);
    max-height: min(22rem, 100dvh - 6rem);
  }
  body .pms-generic-filter__checklist.dxbl-list-box .dxbl-list-box-select-all-container,
  body .pms-generic-filter__checklist.dxbl-list-box li[role=option] {
    min-height: 3rem;
  }
  .pms-generic-filter.is-toolbar .pms-generic-filter__grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .pms-generic-filter__footer {
    align-items: stretch;
    flex-direction: column;
  }
  .pms-generic-filter__header {
    align-items: center;
    gap: var(--innvilo-space-4);
    padding-inline: var(--innvilo-space-6);
  }
  .pms-generic-filter__heading {
    flex: 1 1 auto;
  }
  .pms-generic-filter__heading p {
    display: none;
  }
  .pms-generic-filter__summary {
    display: grid;
  }
  .pms-generic-filter__footer-actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }
  .pms-generic-filter__collapse-toggle {
    min-width: 6.5rem;
  }
  .pms-generic-filter__presets {
    align-items: stretch;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }
  body .pms-generic-filter__preset.dxbl-btn {
    width: 100%;
  }
  .pms-generic-filter__grid,
  .pms-generic-filter__skeleton-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .pms-generic-filter__field--span-2,
  .pms-generic-filter__field--date-range,
  .pms-generic-filter__field--full {
    grid-column: auto;
    min-width: 0;
  }
  body .pms-generic-filter__reset.dxbl-btn,
  body .pms-generic-filter__footer-reset.dxbl-btn,
  body .pms-generic-filter__apply.dxbl-btn,
  body .pms-generic-filter__advanced-toggle.dxbl-btn {
    min-height: 2.75rem;
    width: 100%;
  }
  .pms-generic-filter__body-actions {
    padding-inline: var(--innvilo-space-6);
  }
}
@media (prefers-reduced-motion: reduce) {
  .pms-generic-filter__skeleton::after {
    animation: none;
  }
  .pms-generic-filter__collapse-toggle,
  .pms-generic-filter__collapse-toggle i {
    transition: none;
  }
}
.device-management-setup-feedback {
  border: 1px solid var(--color-border);
  border-radius: var(--innvilo-radius-sm);
  color: var(--color-text);
  font-family: "Lato-Regular", Arial, sans-serif;
  line-height: 1.45;
  margin: 0;
  padding: var(--innvilo-space-4) var(--innvilo-space-5);
}
.device-management-setup-feedback.is-progress {
  background: var(--color-surface-soft);
  border-color: var(--color-border);
  color: var(--color-text-muted);
}
.device-management-setup-feedback.is-success {
  background: var(--color-success-surface);
  border-color: var(--color-success-border);
  color: var(--color-success);
}
.device-management-setup-feedback.is-error {
  background: var(--color-error-surface);
  border-color: var(--color-error-border);
  color: var(--color-error);
}

.platform-channel-onboarding-page {
  display: grid;
  gap: 1rem;
}

.platform-channel-workspace {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  gap: 1rem;
  align-items: start;
}

.platform-channel-column {
  display: grid;
  gap: 1rem;
  min-width: 0;
}

.platform-channel-panel,
.platform-channel-state {
  border: 1px solid var(--innvilo-border-default);
  border-radius: 1rem;
  background: var(--innvilo-surface-card);
  padding: 1rem;
}

.platform-channel-binding-list article > span {
  color: var(--innvilo-text-secondary);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.platform-channel-search {
  align-items: center;
  background: var(--innvilo-surface-main);
  border: 1px solid var(--innvilo-border-default);
  border-radius: 0.75rem;
  display: grid;
  gap: 0.55rem;
  grid-template-columns: auto minmax(0, 1fr);
  margin-bottom: 0.75rem;
  padding: 0.35rem 0.65rem;
}

.platform-channel-search > span {
  color: var(--innvilo-text-secondary);
}

.platform-channel-search input {
  background: transparent;
  border: 0;
  color: var(--innvilo-text-primary);
  font: inherit;
  min-height: 2.35rem;
  min-width: 0;
  outline: 0;
  width: 100%;
}

.platform-channel-search:focus-within {
  border-color: var(--innvilo-border-focus);
  outline: 2px solid var(--innvilo-border-focus);
  outline-offset: 1px;
}

.platform-channel-list,
.platform-channel-binding-list {
  display: grid;
  gap: 0.55rem;
  max-height: 24rem;
  overflow: auto;
}

.platform-channel-binding-list article {
  display: grid;
  gap: 0.25rem;
  width: 100%;
  border: 1px solid var(--innvilo-border-soft);
  border-radius: 0.75rem;
  background: var(--innvilo-surface-muted);
  padding: 0.8rem;
  color: var(--innvilo-text-primary);
  text-align: left;
}

.platform-channel-binding-list strong {
  overflow-wrap: anywhere;
}

.platform-channel-binding-list small,
.platform-channel-help,
.platform-channel-empty,
.platform-channel-state span {
  color: var(--innvilo-text-secondary);
}

.platform-channel-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}

.platform-channel-form.is-single-column {
  grid-template-columns: minmax(0, 1fr);
}

.platform-channel-form label {
  display: grid;
  gap: 0.35rem;
  min-width: 0;
  color: var(--innvilo-text-primary);
  font-size: 0.82rem;
  font-weight: 700;
}

.platform-channel-form .platform-channel-check {
  display: flex;
  grid-column: 1/-1;
  align-items: center;
  gap: 0.55rem;
}

.platform-channel-help {
  margin: 0 0 0.8rem;
  font-size: 0.78rem;
  line-height: 1.45;
}

.platform-channel-history {
  border-top: 1px solid var(--innvilo-border-soft);
  margin: 0 0 0.8rem;
  padding-top: 0.8rem;
}

.platform-channel-history h3 {
  color: var(--innvilo-text-primary);
  font-size: 0.85rem;
  margin: 0 0 0.55rem;
}

.platform-channel-history ol {
  display: grid;
  gap: 0.45rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.platform-channel-history li {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 0.75rem;
  justify-content: space-between;
}

.platform-channel-history li span {
  color: var(--innvilo-text-primary);
  font-size: 0.78rem;
  font-weight: 700;
}

.platform-channel-history time,
.platform-channel-history li strong {
  color: var(--innvilo-text-secondary);
  font-size: 0.75rem;
}

.platform-channel-empty {
  margin: 0;
  padding: 0.75rem;
  border: 1px dashed var(--innvilo-border-soft);
  border-radius: 0.75rem;
  background: var(--innvilo-surface-muted);
}

.platform-channel-scope {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.6rem;
  margin: 0 0 0.85rem;
}

.platform-channel-scope div {
  display: grid;
  gap: 0.15rem;
  min-width: 0;
  padding: 0.65rem;
  border-radius: 0.65rem;
  background: var(--innvilo-surface-muted);
}

.platform-channel-scope dt {
  color: var(--innvilo-text-secondary);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
}

.platform-channel-scope dd {
  margin: 0;
  color: var(--innvilo-text-primary);
  font-weight: 700;
  overflow-wrap: anywhere;
}

.platform-channel-binding-history {
  display: grid;
  gap: 0.35rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0.35rem 0 0;
}

.platform-channel-binding-history div {
  min-width: 0;
}

.platform-channel-binding-history dt {
  color: var(--innvilo-text-secondary);
  font-size: 0.68rem;
  text-transform: uppercase;
}

.platform-channel-binding-history dd {
  color: var(--innvilo-text-primary);
  font-size: 0.75rem;
  font-weight: 700;
  margin: 0.1rem 0 0;
  overflow-wrap: anywhere;
}

.platform-channel-action-status {
  border: 1px solid var(--color-warning);
  border-radius: 0.75rem;
  background: var(--color-warning-soft);
  padding: 0.75rem;
  color: var(--innvilo-text-primary);
}

.platform-channel-action-status.is-success {
  border-color: var(--color-success-border);
  background: var(--color-success-surface);
  color: var(--color-success);
}

.platform-channel-state {
  display: grid;
  justify-items: start;
  gap: 0.65rem;
}

.platform-channel-state.is-error {
  border-color: var(--color-error-border);
  background: var(--color-error-surface);
}

@media (max-width: 960px) {
  .platform-channel-workspace {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (max-width: 640px) {
  .platform-channel-panel,
  .platform-channel-state {
    border-radius: 0.8rem;
    padding: 0.85rem;
  }
  .platform-channel-form,
  .platform-channel-scope {
    grid-template-columns: minmax(0, 1fr);
  }
  .platform-channel-binding-history {
    grid-template-columns: minmax(0, 1fr);
  }
}
.front-office-desktop-host {
  min-width: 0;
  width: 100%;
}

.front-office-mobile-host {
  min-width: 0;
  width: 100%;
}

/* Booking plan DevExpress hooks stay global by project convention. */
.room-plan-unassigned-grid.dxbl-grid {
  border: 0;
  border-radius: 0;
  max-height: 22rem;
}

.room-plan-unassigned-grid .dxbl-grid-table > tbody > tr > td {
  height: var(--innvilo-grid-row-height-comfortable);
  padding-block: var(--innvilo-grid-cell-block);
}

.room-plan-unassigned-grid .dxbl-grid-table > thead > tr > th {
  background: var(--innvilo-grid-header-surface);
  font-size: var(--innvilo-grid-font-header);
  height: var(--innvilo-grid-header-height);
}

.room-plan-drag-handle.dxbl-btn {
  cursor: grab;
  min-height: 2.5rem;
  min-width: 2.5rem;
  touch-action: none;
}

.booking-plan-drag-root.is-drag-active .room-plan-drag-handle.dxbl-btn {
  cursor: grabbing;
}

.room-plan-scheduler.dxbl-scheduler {
  --dxbl-scheduler-month-resource-header-vertical-padding-vertical: 0;
  --dxbl-scheduler-month-resource-header-vertical-padding-right: 0;
  --dxbl-scheduler-month-resource-header-vertical-padding-left: 0;
  border: 0;
  color: var(--innvilo-text-primary);
  font-family: "Lato-Regular", Arial, sans-serif;
  min-width: 52rem;
}

/* Timeline chrome: hairline grid, a quiet room column that stays in view, and day
   columns that separate today, weekend and past without extra labels. The timeline view
   renders the dxbl-sc-* / dxbl-v-* cells; the room row template owns its own spacing, so
   the DevExpress cell padding is removed instead of stacking on top of it. */
.room-plan-scheduler .dxbl-sc-date-hr,
.room-plan-scheduler .dxbl-v-resource-header,
.room-plan-scheduler .dxbl-sc-time-cell {
  border-color: var(--color-room-plan-grid-line);
}

.room-plan-scheduler.dxbl-scheduler td.dxbl-v-resource-header {
  background: var(--innvilo-surface-main);
  left: 0;
  position: sticky;
  z-index: 2;
}

.room-plan-scheduler.dxbl-scheduler td.dxbl-sc-date-hr {
  background: var(--innvilo-surface-main);
  padding: 0;
}

.room-plan-scheduler.dxbl-scheduler td.dxbl-sc-time-cell {
  background: var(--innvilo-surface-main);
  padding: 0.125rem;
}

/* Without this, a row that carries a stay is taller than an empty one and the plan
   looks ragged. The stay block itself defines the row rhythm. */
.room-plan-scheduler.dxbl-scheduler .dxbl-sc-apt.dxbl-sc-horizontal-apt {
  min-height: 0;
  padding: 0.125rem;
}

.room-plan-scheduler .dxbl-sc-apt:focus-visible,
.room-plan-scheduler .dxbl-sc-time-cell:focus-visible {
  box-shadow: 0 0 0 3px var(--color-primary-focus-ring);
  outline: 2px solid var(--color-primary);
  outline-offset: -2px;
}

.room-plan-scheduler .booking-plan-drop-cell {
  border-color: var(--color-room-plan-grid-line);
  transition: background-color 120ms ease, box-shadow 120ms ease;
}

.room-plan-scheduler .booking-plan-drop-cell.is-weekend {
  background: var(--color-room-plan-weekend-bg);
}

.room-plan-scheduler .booking-plan-drop-cell.is-past {
  background: var(--color-room-plan-past-column-bg);
}

.room-plan-scheduler .booking-plan-drop-cell.is-today {
  background: var(--color-room-plan-today-column-bg);
  box-shadow: inset 1px 0 0 var(--color-room-plan-today-column-line), inset -1px 0 0 var(--color-room-plan-today-column-line);
}

.room-plan-scheduler .booking-plan-drop-cell:hover {
  background: var(--color-room-plan-row-hover);
}

body.booking-plan-external-drag .room-plan-scheduler .booking-plan-drop-cell {
  pointer-events: auto;
}

.room-plan-scheduler .booking-plan-drop-cell.is-drop-range {
  background: var(--color-room-plan-today-bg);
}

.room-plan-scheduler .booking-plan-drop-cell.is-drop-valid {
  background: var(--color-room-plan-drop-valid-bg);
  box-shadow: inset 0 2px 0 var(--color-room-plan-drop-valid-border), inset 0 -2px 0 var(--color-room-plan-drop-valid-border);
}

.room-plan-scheduler .booking-plan-drop-cell.is-drop-invalid {
  background: var(--color-room-plan-drop-invalid-bg);
  box-shadow: inset 0 2px 0 var(--color-room-plan-drop-invalid-border), inset 0 -2px 0 var(--color-room-plan-drop-invalid-border);
}

.room-plan-scheduler .booking-plan-drop-cell.is-drop-pending {
  background: var(--color-room-plan-today-bg);
}

.room-plan-scheduler .booking-plan-drop-cell.is-drop-focus {
  box-shadow: inset 0 0 0 2px var(--color-primary);
}

body .room-plan-scheduler .dxbl-sc-apt-dragging-hint {
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-soft);
  opacity: 0.92;
}

@media (prefers-reduced-motion: reduce) {
  .room-plan-scheduler .booking-plan-drop-cell {
    transition: none;
  }
}
/* Buchungsassistent (Neue Buchung, Neue Anfrage): gemeinsame Formularprimitive und DevExpress-Hooks.
   Die Primitive (.nb-field, .nb-field-grid, .nb-choice, .nb-notice, .nb-results, .nb-selected,
   .nb-link-button) werden von mehreren Komponenten geteilt und liegen deshalb hier statt in
   isolierten Stylesheets. Ein Akzent, ein Radius (--innvilo-radius-xs), Hairlines statt Rahmen,
   keine Schatten auf statischen Flächen. */
.nb-page .dx-app-editor,
.nb-page .nb-editor {
  width: 100%;
}

/* Alle Editoren eines Schritts teilen eine Höhe (44px), damit Beschriftung, Feld und Hinweis in jeder
   Spalte auf denselben Linien liegen. */
body .nb-page .nb-editor.dxbl-text-edit,
body .nb-page .nb-editor.dxbl-date-edit,
body .nb-page .nb-editor.dxbl-spin-edit,
body .nb-page .nb-editor.dxbl-combobox {
  border-radius: var(--innvilo-radius-xs);
  height: 2.75rem;
  min-height: 2.75rem;
}

body .nb-page .nb-editor.dxbl-memo {
  border-radius: var(--innvilo-radius-xs);
  min-height: 2.75rem;
}

body .nb-page .nb-editor.dxbl-spin-edit .dxbl-btn-group {
  align-self: stretch;
}

body .nb-page .nb-editor.is-invalid,
body .nb-page .nb-editor[aria-invalid=true] {
  border-color: var(--innvilo-danger);
}

body .nb-page .nb-editor.is-invalid:focus-within,
body .nb-page .nb-editor[aria-invalid=true]:focus-within {
  box-shadow: 0 0 0 3px var(--color-error-focus-ring);
}

/* Feld: Beschriftung, Editor, Hinweis oder Fehler. Fehler stehen direkt am Feld. */
.nb-field {
  align-content: start;
  display: grid;
  gap: var(--innvilo-space-2);
  grid-template-rows: 1.125rem auto;
  min-width: 0;
}

.nb-field--wide {
  grid-column: 1/-1;
}

.nb-field > label {
  align-self: end;
  color: var(--innvilo-text-secondary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  letter-spacing: var(--innvilo-tracking-caption);
  line-height: 1.125rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nb-field__optional {
  color: var(--innvilo-text-muted);
  font-family: "Lato-Regular", Arial, sans-serif;
}

.nb-field__editor {
  min-width: 0;
}

.nb-field__hint,
.nb-field__error {
  font-size: var(--innvilo-font-size-caption);
  line-height: 1.4;
  margin: 0;
}

.nb-field__hint {
  color: var(--innvilo-text-secondary);
}

.nb-field__error {
  color: var(--innvilo-danger);
  font-family: "Lato-SemiBold", Arial, sans-serif;
}

/* Feldraster: zwei Spalten, auf dem Handy eine. Spaltenbreiten bleiben über alle Schritte gleich. */
.nb-field-grid {
  display: grid;
  gap: var(--innvilo-space-4) var(--innvilo-space-6);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  min-width: 0;
}

.nb-field-grid.nb-stay {
  grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
}

.nb-shell--desktop .nb-field-grid.nb-stay {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

/* Belegung und schmale Zahlenfelder: feste, gleiche Spaltenbreite statt gestreckter Spin-Editoren. */
.nb-field-grid.nb-compact {
  grid-template-columns: repeat(auto-fit, minmax(9.5rem, 14rem));
}

.nb-shell--mobile .nb-field-grid.nb-compact {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.nb-shell--mobile .nb-field-grid,
.nb-shell--mobile .nb-field-grid.nb-stay {
  grid-template-columns: minmax(0, 1fr);
}

.nb-shell--tablet .nb-field-grid.nb-stay {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* Zwischentitel innerhalb eines Schritts */
.nb-subtitle {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  margin: 0;
}

.nb-subtitle-row {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-2) var(--innvilo-space-4);
  justify-content: space-between;
}

.nb-subtitle + .nb-field-grid,
.nb-subtitle + .nb-company,
.nb-subtitle + .nb-stay {
  margin-top: calc(-1 * var(--innvilo-space-2));
}

/* Hinweise: eine Zeile Text, links eine Akzentlinie, kein farbiger Block. */
.nb-notice {
  border-left: 2px solid var(--innvilo-border-strong);
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  line-height: 1.5;
  margin: 0;
  padding: var(--innvilo-space-1) 0 var(--innvilo-space-1) var(--innvilo-space-4);
}

.nb-notice strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
}

.nb-notice.is-error {
  border-left-color: var(--innvilo-danger);
  color: var(--innvilo-danger);
}

.nb-notice.is-error strong {
  color: var(--innvilo-danger);
}

.nb-empty {
  border-top: 1px solid var(--innvilo-border-soft);
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-body);
  line-height: 1.5;
  margin: 0;
  padding: var(--innvilo-space-5) 0;
}

.nb-empty strong {
  color: var(--innvilo-text-primary);
  display: block;
  font-family: "Lato-SemiBold", Arial, sans-serif;
}

/* Textlink als Button (Bearbeiten, Ändern, Je Nacht ansehen) */
.nb-link-button {
  background: transparent;
  border: 0;
  border-radius: var(--innvilo-radius-xs);
  color: var(--innvilo-text-link);
  cursor: pointer;
  font: inherit;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  min-height: 2rem;
  padding: 0 var(--innvilo-space-1);
  text-decoration: none;
  transition: color var(--innvilo-duration-fast) var(--innvilo-easing-standard);
  white-space: nowrap;
}

.nb-link-button:hover {
  color: var(--innvilo-text-link-hover);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.nb-link-button:focus-visible {
  outline: 2px solid var(--innvilo-border-focus);
  outline-offset: 2px;
}

.nb-link-button:disabled {
  color: var(--innvilo-text-disabled);
  cursor: default;
  text-decoration: none;
}

/* Suchergebnisse für Gäste und Firmen */
.nb-results {
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-xs);
  display: grid;
  list-style: none;
  margin: 0;
  max-height: 16rem;
  overflow-y: auto;
  padding: var(--innvilo-space-1);
}

.nb-results__item {
  background: transparent;
  border: 0;
  border-radius: var(--innvilo-radius-xs);
  color: inherit;
  cursor: pointer;
  display: grid;
  font: inherit;
  gap: 0.125rem;
  min-height: 2.75rem;
  padding: var(--innvilo-space-2) var(--innvilo-space-3);
  text-align: left;
  transition: background-color var(--innvilo-duration-fast) var(--innvilo-easing-standard);
  width: 100%;
}

.nb-results__item:hover {
  background: var(--innvilo-surface-app);
}

.nb-results__item:focus-visible {
  outline: 2px solid var(--innvilo-border-focus);
  outline-offset: -2px;
}

.nb-results__item strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
}

.nb-results__item span {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  overflow-wrap: anywhere;
}

/* Übernommener Gast oder übernommene Firma */
.nb-selected {
  align-items: center;
  animation: nb-selected-enter var(--innvilo-duration-normal) var(--innvilo-easing-decelerate) both;
  background: var(--innvilo-surface-app);
  border-radius: var(--innvilo-radius-xs);
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-3) var(--innvilo-space-4);
  justify-content: space-between;
  padding: var(--innvilo-space-3) var(--innvilo-space-4);
}

.nb-selected__copy {
  display: grid;
  gap: 0.125rem;
  min-width: 0;
}

.nb-selected__copy span {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-micro);
  letter-spacing: var(--innvilo-tracking-caption);
}

.nb-selected__copy strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
}

.nb-selected__copy small {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  overflow-wrap: anywhere;
}

@keyframes nb-selected-enter {
  from {
    opacity: 0;
    transform: translateY(4px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
/* Auswahlflächen (DxButton): Buchungsart im Firmenschritt, Zahlungsweg, Dokument, Storno, Kontaktart. */
.nb-choice-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-2);
}

body .nb-choice.dxbl-btn {
  background: var(--innvilo-surface-card);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-xs);
  box-shadow: none;
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  min-height: 2.5rem;
  padding: 0 var(--innvilo-space-4);
  transition: border-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), background-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), color var(--innvilo-duration-fast) var(--innvilo-easing-standard);
}

body .nb-choice.dxbl-btn:hover:not(.dxbl-disabled) {
  background: var(--innvilo-surface-app);
  border-color: var(--innvilo-border-strong);
}

body .nb-choice.dxbl-btn:focus-visible {
  outline: 2px solid var(--innvilo-border-focus);
  outline-offset: 2px;
}

body .nb-choice.dxbl-btn.is-selected {
  background: var(--innvilo-color-primary);
  border-color: var(--innvilo-color-primary);
  color: var(--innvilo-text-inverse);
}

body .nb-choice.dxbl-btn.is-selected:hover:not(.dxbl-disabled) {
  background: var(--innvilo-color-primary-hover);
  border-color: var(--innvilo-color-primary-hover);
}

body .nb-choice.dxbl-btn.dxbl-disabled {
  color: var(--innvilo-text-disabled);
  opacity: 1;
}

/* Auswahlkarten (Storno, Zahlungsweg): Icon, Titel und eine Zeile Erklärung; gewählt in Akzentfläche. */
.nb-choice-row--cards {
  display: grid;
  gap: var(--innvilo-space-3);
  grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr));
}

body .nb-choice--card.dxbl-btn {
  align-items: center;
  display: grid;
  gap: var(--innvilo-space-3);
  grid-template-columns: auto minmax(0, 1fr);
  justify-content: start;
  min-height: 4rem;
  padding: var(--innvilo-space-3) var(--innvilo-space-4);
  text-align: left;
  white-space: normal;
}

body .nb-choice--card.dxbl-btn > i {
  color: var(--innvilo-text-secondary);
  font-size: 1.125rem;
  text-align: center;
  transition: color var(--innvilo-duration-fast) var(--innvilo-easing-standard);
  width: 1.5rem;
}

body .nb-choice--card.dxbl-btn .nb-choice__copy {
  display: grid;
  gap: 0.125rem;
  min-width: 0;
}

body .nb-choice--card.dxbl-btn .nb-choice__copy strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
  line-height: 1.3;
}

body .nb-choice--card.dxbl-btn .nb-choice__copy small {
  color: var(--innvilo-text-secondary);
  font-family: "Lato-Regular", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  line-height: 1.4;
}

body .nb-choice--card.dxbl-btn.is-selected {
  background: var(--innvilo-color-primary-soft);
  border-color: var(--innvilo-color-primary);
  box-shadow: inset 0 0 0 1px var(--innvilo-color-primary);
  color: var(--innvilo-text-primary);
}

body .nb-choice--card.dxbl-btn.is-selected:hover:not(.dxbl-disabled) {
  background: var(--innvilo-color-primary-soft);
  border-color: var(--innvilo-color-primary);
}

body .nb-choice--card.dxbl-btn.is-selected > i,
body .nb-choice--card.dxbl-btn.is-selected .nb-choice__copy strong {
  color: var(--innvilo-color-primary);
}

.nb-shell--mobile .nb-choice-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.nb-shell--mobile .nb-choice-row--cards {
  grid-template-columns: minmax(0, 1fr);
}

.nb-shell--mobile .nb-choice.dxbl-btn {
  min-height: 2.75rem;
}

/* PDF-Vorschau im Popup */
.nb-pdf-viewer {
  border: 0;
  height: 100%;
  min-height: 32rem;
  width: 100%;
}

@media (prefers-reduced-motion: reduce) {
  .nb-selected {
    animation: none;
  }
}
/* Anfrage-Detail und -Dialoge rendern im Popup-Portal und brauchen deshalb globale Regeln. */
.inquiry-detail {
  display: grid;
  gap: 1.75rem;
}

.inquiry-detail-facts {
  display: grid;
  gap: 1rem 1.5rem;
  grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
  margin: 0;
}

.inquiry-detail-facts.is-dense {
  gap: 0.6rem 1.5rem;
}

.inquiry-detail-facts dt {
  color: var(--color-text-muted);
  font-size: 0.8125rem;
}

.inquiry-detail-facts dd {
  display: grid;
  gap: 0.1rem;
  margin: 0.2rem 0 0;
}

.inquiry-detail-facts dd small {
  color: var(--color-text-muted);
  font-size: 0.8125rem;
}

.inquiry-detail-facts dd.is-amount {
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: 1.35rem;
}

.inquiry-detail-block {
  border-top: 1px solid var(--color-border);
  display: grid;
  gap: 0.75rem;
  padding-top: 1.25rem;
}

.inquiry-detail-block h3 {
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: 1rem;
  margin: 0;
}

.inquiry-detail-block p {
  margin: 0;
}

.inquiry-detail-block.is-highlight {
  background: var(--color-warning-soft);
  border-radius: var(--radius-sm);
  border-top: 0;
  padding: 1rem 1.25rem;
}

.inquiry-detail-block blockquote {
  border-left: 2px solid var(--color-border-strong);
  color: var(--color-text-muted);
  margin: 0;
  padding-left: 0.85rem;
}

.inquiry-versions,
.inquiry-timeline {
  display: grid;
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
}

.inquiry-versions li {
  align-items: baseline;
  border-bottom: 1px solid var(--color-border);
  display: grid;
  gap: 0.5rem 1rem;
  grid-template-columns: 3rem 7rem minmax(0, 1fr) 8rem auto;
  padding: 0.6rem 0;
}

.inquiry-versions li.is-accepted strong {
  color: var(--color-success);
}

.inquiry-versions strong {
  font-family: "Lato-Bold", Arial, sans-serif;
}

.inquiry-versions small,
.inquiry-timeline small {
  color: var(--color-text-muted);
  font-size: 0.75rem;
}

.inquiry-timeline li {
  border-bottom: 1px solid var(--color-border);
  display: grid;
  gap: 0.15rem 0.85rem;
  grid-template-columns: 9.5rem minmax(0, 1fr);
  padding: 0.5rem 0;
}

.inquiry-timeline-time {
  color: var(--color-text-muted);
  font-size: 0.8125rem;
}

.inquiry-timeline-text {
  color: var(--innvilo-text-primary);
  font-size: var(--innvilo-font-size-label);
  line-height: 1.4;
}

.inquiry-timeline small {
  grid-column: 2;
}

.inquiry-extend {
  display: grid;
  gap: 1rem;
}

.inquiry-extend .field {
  display: grid;
  gap: 0.4rem;
}

.inquiry-extend label {
  color: var(--color-text-muted);
  font-size: 0.8125rem;
}

.inquiry-extend-resend {
  align-items: center;
  color: var(--color-text);
  display: flex;
  font-size: 0.875rem;
  gap: 0.5rem;
}

.inquiry-link {
  display: grid;
  gap: 1rem;
  justify-items: start;
}

.inquiry-link p {
  color: var(--color-text-muted);
  margin: 0;
}

.inquiry-link .dxbl-text-edit {
  width: 100%;
}

@media (max-width: 48rem) {
  .inquiry-versions li {
    grid-template-columns: 3rem minmax(0, 1fr);
  }
  .inquiry-timeline li {
    grid-template-columns: minmax(0, 1fr);
  }
  .inquiry-timeline small {
    grid-column: 1;
  }
}
/* Zimmerstatus: central DevExpress hooks and shared operation-board visuals. Die früheren
   Kennzahl-Knöpfe (.dx-room-kpi) sind mit dem Umbau auf PmsKpiBand entfallen. */
/* Bereichsaufgaben in der Tagesagenda: Berührungsziel auf dem Telefon. */
.housekeeping-task-list__area-action.dxbl-btn {
  min-height: 2.75rem;
  width: auto;
}

/* Arbeitstag der Planung im Seitenkopf. Das Wurzelelement des Editors gehört DevExpress und bekommt kein
   Scope-Attribut, deshalb steht die Breite hier. Die Höhe folgt den übrigen Kopfaktionen. */
.housekeeping-workdate__editor.dxbl-text-edit {
  min-height: 2.5rem;
  width: 9.5rem;
}

@media (max-width: 61.99rem), (pointer: coarse) {
  .housekeeping-workdate__editor.dxbl-text-edit {
    min-height: 2.75rem;
  }
}
/* Reinigungsplan nach Etagen: die Wurzelelemente dieser Knöpfe und der Dropdown-Rumpf gehören DevExpress
   und bekommen kein Scope-Attribut, deshalb stehen ihre Regeln hier und nicht in
   HousekeepingFloorPlanBoard.razor.css. */
/* Die Übernahme einer Etage. Sie ist das erste fokussierbare Element ihrer Zeile und deshalb 40px hoch,
   auf Handy, Tablet und an Berührungsgeräten 44px. */
.hk-plan__assign.dxbl-btn {
  max-width: 100%;
  min-height: 2.5rem;
  width: auto;
}

.hk-plan__assign.dxbl-btn .dxbl-btn-text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Der Anlegeknopf steht rechts in der Zwischenzeile und drängt sich nicht vor ihre Bezeichnung. */
.hk-plan__add.dxbl-btn {
  font-size: var(--innvilo-font-size-caption);
  margin-left: auto;
  min-height: 2rem;
  padding: var(--innvilo-space-2) var(--innvilo-space-4);
  width: auto;
}

/* In der Etagenzeile steht er neben der Übernahme. Dort schiebt schon der Klappknopf mit flex:1 alles nach
   rechts; ein zweites margin-left:auto zöge den freien Platz an sich und ließe den Klappknopf schrumpfen. */
.hk-plan__floor-bar .hk-plan__add.dxbl-btn {
  margin-left: 0;
}

/* Zwei Knöpfe in derselben Zwischenzeile: nur der erste schiebt sich nach rechts. */
.hk-plan__add.dxbl-btn ~ .hk-plan__add.dxbl-btn {
  margin-left: var(--innvilo-space-4);
}

@media (max-width: 61.99rem), (pointer: coarse) {
  .hk-plan__assign.dxbl-btn,
  .hk-plan__add.dxbl-btn {
    min-height: 2.75rem;
  }
  .hk-plan__add.dxbl-btn {
    margin-left: 0;
  }
}
/* Die Mitarbeiterliste ist eine echte Überlagerung und darf als einzige Fläche dieses Planers einen
   Schatten tragen. */
body .hk-plan-menu.dxbl-dropdown-dialog {
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-md);
  box-shadow: var(--innvilo-shadow-dropdown);
}

body .hk-plan-menu .hk-plan-menu__body,
body .hk-plan-menu .dxbl-dropdown-body,
body .hk-plan-menu .dxbl-dropdown-dialog-body,
body .hk-plan-menu .dxbl-popup-body {
  display: block;
  margin: 0 !important;
  padding: 0 !important;
}

.housekeeping-mobile-actions .dxbl-btn {
  min-height: 3.25rem;
  white-space: normal;
}

.housekeeping-mobile-actions .dxbl-btn.is-offline-pending {
  border-color: var(--color-warning);
  box-shadow: inset 0 0 0 1px var(--color-warning);
}

.room-operations-mobile {
  display: grid;
  gap: var(--innvilo-space-5);
  min-width: 0;
}

.room-operations-dialog {
  display: grid;
  gap: var(--innvilo-space-6);
}

.room-operations-dialog > label,
.room-operation-details > label {
  display: grid;
  gap: var(--innvilo-space-3);
}

.room-operations-dialog > label > span,
.room-operation-details > label > span {
  color: var(--color-text-muted);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
}

/* Ein Hinweis unter einem Feld ist keine zweite Feldbezeichnung: er liest sich leiser und nicht fett. */
.room-operations-dialog > label > span.room-operations-dialog-note {
  color: var(--color-text-subtle);
  font-family: "Lato-Regular", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
}

.room-operations-dialog-summary,
.room-operation-details dl {
  display: grid;
  gap: var(--innvilo-space-3);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
}

.room-operations-dialog-summary > div,
.room-operation-details dl > div {
  background: var(--color-surface-soft);
  border-radius: var(--radius-sm);
  display: grid;
  gap: var(--innvilo-space-2);
  padding: var(--innvilo-space-4);
}

.room-operations-dialog-summary dt,
.room-operation-details dt {
  color: var(--color-text-subtle);
  font-size: var(--innvilo-font-size-caption);
}

.room-operations-dialog-summary dd,
.room-operation-details dd {
  color: var(--color-text);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
  margin: 0;
  overflow-wrap: anywhere;
}

.room-operations-dialog-confirmation {
  align-items: flex-start;
  background: var(--color-info-soft);
  border: 1px solid var(--color-info-border);
  border-radius: var(--radius-sm);
  color: var(--color-info);
  display: flex;
  gap: var(--innvilo-space-3);
  margin: 0;
  padding: var(--innvilo-space-4);
}

.room-operation-details {
  display: grid;
  gap: var(--innvilo-space-6);
}

.room-operation-details > header {
  align-items: center;
  display: flex;
  gap: var(--innvilo-space-4);
  justify-content: space-between;
}

.room-operation-detail-note {
  background: var(--color-surface-soft);
  border-left: 3px solid var(--color-info);
  border-radius: var(--radius-sm);
  padding: var(--innvilo-space-4);
}

.room-operation-detail-note.is-critical {
  background: var(--color-error-soft);
  border-left-color: var(--color-error);
}

.room-operation-detail-note p {
  margin: var(--innvilo-space-2) 0 0;
}

.room-operation-detail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-3);
}

@media (max-width: 47.99rem), (pointer: coarse) {
  .revenue-mobile-card__menu.dxbl-btn {
    height: var(--innvilo-grid-action-target-touch);
    min-height: var(--innvilo-grid-action-target-touch);
    min-width: var(--innvilo-grid-action-target-touch);
    width: var(--innvilo-grid-action-target-touch);
  }
}
@media (max-width: 720px) {
  .room-operations-dialog-summary,
  .room-operation-details dl {
    grid-template-columns: 1fr;
  }
}
/* Notification Center: only DevExpress component roots and child-component hooks
   live globally. Panel, row and overlay markup stays in isolated component CSS. */
.bell-button.dxbl-btn {
  background: transparent;
  border-color: transparent;
  border-radius: var(--innvilo-radius-md);
  color: var(--innvilo-text-secondary);
  height: 2.65rem;
  min-width: 2.65rem;
  padding: 0;
  position: relative;
  transition: background-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), border-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), color var(--innvilo-duration-fast) var(--innvilo-easing-standard), transform var(--innvilo-duration-instant) var(--innvilo-easing-standard);
}

.bell-button.dxbl-btn:hover,
.bell-button.dxbl-btn.is-active {
  background: var(--color-header-hover);
  border-color: transparent;
  color: var(--innvilo-color-primary);
}

.bell-button.dxbl-btn.has-critical .bell-badge {
  background: var(--color-error);
}

.bell-button.dxbl-btn:active {
  transform: translateY(1px);
}

/* DevExpress renders editor dropdowns and row menus in body-level popup roots.
   Interactive child surfaces of the modal notification center must therefore
   sit above its z-modal backdrop while it is open. */
body:has(.notification-overlay) > dxbl-popup-root {
  z-index: var(--innvilo-z-context-menu);
}

.notification-panel .notification-panel__mark-all.dxbl-btn,
.notification-panel .notification-state__action.dxbl-btn,
.notification-panel .notification-load-more.dxbl-btn,
.notification-panel .notification-load-more-retry.dxbl-btn {
  border-radius: var(--innvilo-radius-md);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  min-height: 2.25rem;
}

.notification-panel .notification-panel__mark-all.dxbl-btn {
  padding-inline: var(--innvilo-space-3);
}

.notification-panel .notification-panel__filter-toggle.dxbl-btn,
.notification-panel .notification-panel__close.dxbl-btn {
  border-radius: var(--innvilo-radius-md);
  min-height: 2.25rem;
  min-width: 2.25rem;
  position: relative;
}

.notification-panel .notification-panel__filter-toggle.dxbl-btn.is-active {
  background: var(--color-header-hover);
  color: var(--innvilo-color-primary);
}

.notification-filter-center.pms-generic-filter {
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
}

.notification-filter-center .pms-generic-filter__grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.notification-filter-center .pms-generic-filter__footer {
  border-top: 0;
  padding-bottom: 0;
}

.notification-bell.is-mobile .bell-button.dxbl-btn,
.notification-panel.is-mobile .notification-panel__filter-toggle.dxbl-btn,
.notification-panel.is-mobile .notification-panel__close.dxbl-btn {
  height: 2.75rem;
  min-height: 2.75rem;
  min-width: 2.75rem;
}

.notification-panel.is-mobile .notification-panel__close.dxbl-btn {
  grid-column: 2;
  grid-row: 1;
}

.notification-panel.is-mobile .notification-panel__mark-all.dxbl-btn {
  min-height: 2.75rem;
}

.notification-panel.is-mobile .notification-filter-center .pms-generic-filter__grid {
  grid-template-columns: minmax(0, 1fr);
}

@media (prefers-reduced-motion: reduce) {
  .bell-button.dxbl-btn {
    transition: none;
  }
}
/* Navigation shell redesign. DevExpress hooks remain centralized here. */
.navigation-drawer {
  --dxbl-drawer-panel-body-padding-x: 0;
  --dxbl-drawer-panel-body-padding-y: var(--innvilo-space-4);
  --dxbl-drawer-panel-footer-bg: transparent;
  --dxbl-drawer-panel-header-bg: transparent;
  --dxbl-drawer-separator-border-width: 0;
}

.navigation-drawer > .dxbl-drawer-panel {
  background: linear-gradient(180deg, var(--color-nav-bg) 0%, var(--color-nav-bg-deep) 72%);
  border-right: 0;
}

.navigation-drawer.desktop > .dxbl-drawer-panel {
  align-self: flex-start;
  animation: none !important;
  display: flex !important;
  flex-direction: column;
  height: 100dvh;
  max-height: 100dvh;
  max-width: 264px;
  overflow: hidden;
  position: sticky;
  top: 0;
  transition: none !important;
}

.pms-nav-group-button.dxbl-btn {
  --dxbl-btn-bg: transparent;
  --dxbl-btn-border-color: transparent;
  --dxbl-btn-color: var(--color-nav-text-muted);
  --dxbl-btn-hover-bg: var(--color-nav-section-hover);
  --dxbl-btn-hover-border-color: transparent;
  --dxbl-btn-hover-color: var(--color-nav-active);
  --dxbl-btn-active-bg: var(--color-nav-hover-bg);
  --dxbl-btn-active-border-color: transparent;
  --dxbl-btn-active-color: var(--color-nav-active);
  background: transparent !important;
  border: 0 !important;
  border-radius: var(--innvilo-radius-sm);
  box-shadow: none;
  color: var(--color-nav-text-muted) !important;
  justify-content: stretch;
  min-height: 2.5rem;
  padding: var(--innvilo-space-2) var(--innvilo-space-3);
  width: 100%;
}

.navigation-drawer .pms-nav-group-button.dxbl-btn:hover {
  background: var(--color-nav-section-hover) !important;
  border-color: transparent !important;
  color: var(--color-nav-active) !important;
}

.navigation-drawer .pms-nav-group-button.dxbl-btn:active {
  background: var(--color-nav-section-bg) !important;
  color: var(--color-nav-active) !important;
}

.pms-nav-group-button.dxbl-btn .dxbl-btn-content {
  color: inherit !important;
  display: grid;
  gap: var(--innvilo-space-3);
  grid-template-columns: 1rem minmax(0, 1fr) auto;
  justify-content: stretch;
  width: 100%;
}

.pms-nav-group-button.dxbl-btn .dxbl-btn-content > i:first-child {
  color: inherit !important;
  font-size: 0.9375rem;
  text-align: center;
  transition: color var(--innvilo-duration-fast) var(--innvilo-easing-standard);
  width: 1rem;
}

.pms-nav-group-button.dxbl-btn .pms-nav-group-label {
  color: inherit !important;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: 0.875rem;
  letter-spacing: 0;
  min-width: 0;
  overflow: hidden;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pms-nav-group-button.dxbl-btn .pms-nav-group-chevron {
  align-self: center;
  color: inherit !important;
  font-size: 0.7rem;
  opacity: 0.72;
  transition: transform var(--innvilo-duration-fast) var(--innvilo-easing-standard);
}

.pms-nav-group-button.dxbl-btn[aria-expanded=true] {
  --dxbl-btn-color: var(--color-nav-active);
  background: var(--color-nav-section-hover) !important;
  color: var(--color-nav-active) !important;
}

.pms-nav-group-button.dxbl-btn[aria-expanded=true] .pms-nav-group-chevron {
  transform: rotate(180deg);
}

.navigation-section.is-current-section .pms-nav-group-button.dxbl-btn {
  --dxbl-btn-color: var(--color-nav-active);
  background: transparent !important;
  color: var(--color-nav-active) !important;
}

.navigation-section.is-current-section .pms-nav-group-button.dxbl-btn .dxbl-btn-content > i:first-child,
.navigation-section.is-current-section .pms-nav-group-button.dxbl-btn[aria-expanded=true] .dxbl-btn-content > i:first-child {
  color: var(--color-nav-accent) !important;
}

.navigation-drawer .pms-nav-group-button.dxbl-btn:hover .dxbl-btn-content > i:first-child {
  color: var(--color-nav-accent) !important;
}

.pms-nav-group-button.dxbl-btn:focus-visible,
.sidebar-collapse-button.dxbl-btn:focus-visible,
.mobile-more-close.dxbl-btn:focus-visible,
.mobile-logout-button.dxbl-btn:focus-visible {
  outline: 2px solid var(--color-nav-focus);
  outline-offset: -2px;
}

.sidebar-collapse-button.dxbl-btn,
.mobile-more-close.dxbl-btn {
  --dxbl-btn-bg: transparent;
  --dxbl-btn-border-color: transparent;
  --dxbl-btn-color: var(--color-nav-text-muted);
  --dxbl-btn-hover-bg: var(--color-nav-control-hover);
  --dxbl-btn-hover-border-color: transparent;
  --dxbl-btn-hover-color: var(--color-nav-active);
  border-radius: var(--innvilo-radius-full);
  background: transparent !important;
  border-color: transparent !important;
  color: var(--color-nav-text-muted) !important;
  height: 2.75rem;
  min-width: 2.75rem;
  padding: 0;
  width: 2.75rem;
}

.sidebar-collapse-button.dxbl-btn:hover,
.mobile-more-close.dxbl-btn:hover {
  background: var(--color-nav-control-hover) !important;
  color: var(--color-nav-active) !important;
}

.sidebar-collapse-button.dxbl-btn .dxbl-btn-content,
.mobile-more-close.dxbl-btn .dxbl-btn-content {
  color: inherit !important;
}

.mobile-logout-button.dxbl-btn {
  --dxbl-btn-bg: transparent;
  --dxbl-btn-border-color: var(--color-nav-divider);
  --dxbl-btn-color: var(--color-nav-active);
  --dxbl-btn-hover-bg: var(--color-nav-hover-bg);
  --dxbl-btn-hover-border-color: var(--color-nav-focus);
  --dxbl-btn-hover-color: var(--color-nav-active);
  background: transparent !important;
  border: 0 !important;
  border-radius: var(--innvilo-radius-sm);
  color: var(--color-nav-text) !important;
  justify-content: flex-start;
  min-height: 2.75rem;
  padding-inline: var(--innvilo-space-4);
  width: auto;
}

.mobile-logout-button.dxbl-btn:hover {
  background: var(--color-nav-hover-bg) !important;
  color: var(--color-nav-active) !important;
}

.mobile-logout-button.dxbl-btn .dxbl-btn-content {
  color: inherit !important;
  display: flex;
  gap: var(--innvilo-space-3);
  justify-content: flex-start;
  width: 100%;
}

.mobile-more-footer .mobile-logout-button.dxbl-btn span {
  font-size: 0.8125rem;
}

.pms-navigation-progress {
  background: var(--innvilo-color-primary);
  height: 2px;
  left: 0;
  opacity: 0;
  pointer-events: none;
  position: fixed;
  right: 0;
  top: 0;
  transform: scaleX(0.12);
  transform-origin: left;
  transition: opacity var(--innvilo-duration-instant) linear, transform var(--innvilo-duration-normal) var(--innvilo-easing-decelerate);
  z-index: calc(var(--innvilo-z-drawer) + 1);
}

.pms-navigation-progress.is-active {
  opacity: 1;
  transform: scaleX(0.78);
}

.navigation-drawer.desktop.is-compact .navigation-drawer-header {
  display: flex;
  justify-content: center;
  padding-inline: var(--innvilo-space-4);
}

.navigation-drawer.desktop.is-compact .sidebar-brand-link,
.navigation-drawer.desktop.is-compact .pms-nav-group-label,
.navigation-drawer.desktop.is-compact .pms-nav-group-chevron,
.navigation-drawer.desktop.is-compact .pms-nav-link-label,
.navigation-drawer.desktop.is-compact .navigation-drawer-scope__text {
  display: none !important;
}

.navigation-drawer.desktop.is-compact .pms-navigation {
  padding-inline: var(--innvilo-space-4);
}

.navigation-drawer.desktop.is-compact .navigation-section,
.navigation-drawer.desktop.is-compact .pms-nav-items {
  padding-inline: 0;
}

.navigation-drawer.desktop.is-compact .pms-nav-group-button.dxbl-btn,
.navigation-drawer.desktop.is-compact .pms-nav-link {
  align-items: center;
  display: flex;
  justify-content: center;
  min-height: 3rem;
  padding: 0;
  width: 100%;
}

.navigation-drawer.desktop.is-compact .pms-nav-group-button.dxbl-btn .dxbl-btn-content {
  display: flex;
  justify-content: center;
}

.navigation-drawer.desktop.is-compact .navigation-drawer-footer {
  display: none;
}

/* Front Office / Anfragen: DevExpress roots and popup-hosted shared controls. The feature keeps
   its ordinary layout rules in the colocated isolated stylesheets. Every hook below targets a
   DevExpress root (.dxbl-*) or the shared filter center, which do not receive the scoped attribute. */
body .inquiry-page .dx-app-button.dxbl-btn,
body .inquiry-page .dxbl-text-edit,
body .inquiry-page .dxbl-combobox,
body .inquiry-page .pms-generic-filter,
body .inquiry-page .inquiry-grid.dxbl-grid {
  border-radius: var(--innvilo-radius-xs);
}

body .inquiry-page .inquiry-hero .dx-app-button.dxbl-btn,
body .inquiry-page .inquiry-toolbar .dx-app-button.dxbl-btn,
body .inquiry-page .inquiry-state .dx-app-button.dxbl-btn {
  min-height: 2.5rem;
  white-space: nowrap;
}

/* Toolbar and pager controls carry the larger control radius. */
body .inquiry-page .inquiry-toolbar .dxbl-text-edit,
body .inquiry-page .inquiry-toolbar .dxbl-combobox,
body .inquiry-page .inquiry-toolbar .dx-app-button.dxbl-btn,
body .inquiry-page .inquiry-mobile-tools .dxbl-text-edit,
body .inquiry-page .inquiry-mobile-filter.dxbl-btn,
body .inquiry-filter-dropdown__panel.dxbl-dropdown-dialog {
  border-radius: var(--innvilo-radius-md);
}

body .inquiry-page .inquiry-toolbar .dxbl-text-edit,
body .inquiry-page .inquiry-toolbar .dxbl-combobox {
  min-height: 2.5rem;
}

/* The search field takes the button height as its measure (40px desktop, 44px mobile). */
body .inquiry-page .inquiry-search-editor.dxbl-text-edit {
  height: 2.5rem;
  max-height: 2.5rem;
  min-height: 2.5rem;
}

body .inquiry-page .inquiry-mobile-search.dxbl-text-edit {
  border: 0 !important;
  box-shadow: inset 0 0 0 1px var(--innvilo-border-default);
  flex: 1 1 auto;
  height: 2.75rem;
  max-height: 2.75rem;
  min-height: 2.75rem;
}

body .inquiry-page .inquiry-mobile-search.dxbl-text-edit:focus-within {
  box-shadow: inset 0 0 0 1px var(--color-primary), 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .inquiry-page .inquiry-search-editor.dxbl-text-edit,
body .inquiry-page .inquiry-mobile-search.dxbl-text-edit {
  align-items: center;
  border-color: var(--innvilo-border-default);
  box-shadow: none;
  box-sizing: border-box;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  min-width: 0;
  width: 100%;
}

body .inquiry-page .inquiry-search-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .inquiry-page .inquiry-search-editor.dxbl-text-edit input,
body .inquiry-page .inquiry-mobile-search.dxbl-text-edit input {
  align-self: center;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  padding: 0 var(--innvilo-space-4) 0 var(--innvilo-space-3);
}

body .inquiry-page .inquiry-search-editor.dxbl-text-edit input::placeholder,
body .inquiry-page .inquiry-mobile-search.dxbl-text-edit input::placeholder {
  color: var(--innvilo-text-muted);
  line-height: 1.2;
  opacity: 1;
}

body .inquiry-page .inquiry-search-editor.dxbl-text-edit .dxbl-btn,
body .inquiry-page .inquiry-mobile-search.dxbl-text-edit .dxbl-btn {
  height: 100%;
  min-height: 0;
}

body .inquiry-page .inquiry-mobile-search.dxbl-text-edit .dxbl-btn {
  min-width: 2.75rem;
  width: 2.75rem;
}

body .inquiry-page .inquiry-filter-dropdown__button.is-active.dxbl-btn,
body .inquiry-page .inquiry-mobile-filter.is-active.dxbl-btn {
  background: var(--innvilo-color-primary-soft) !important;
  border-color: var(--color-primary) !important;
  color: var(--color-primary) !important;
}

body .inquiry-page .inquiry-filter-dropdown__button.dxbl-btn {
  gap: var(--innvilo-space-3);
  min-height: 2.5rem;
  padding-inline: var(--innvilo-space-4);
}

body .inquiry-filter-dropdown__panel.dxbl-dropdown-dialog {
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-md);
  box-shadow: var(--innvilo-shadow-dropdown);
  overflow: hidden;
}

body .inquiry-filter-dropdown__panel .inquiry-filter-dropdown__body,
body .inquiry-filter-dropdown__panel .dxbl-dropdown-body,
body .inquiry-filter-dropdown__panel .dxbl-dropdown-dialog-body,
body .inquiry-filter-dropdown__panel .dxbl-popup-body {
  display: block;
  margin: 0 !important;
  padding: 0 !important;
}

body .inquiry-filter-dropdown__panel .inquiry-filter-form {
  padding: var(--innvilo-space-5);
  width: 100%;
}

/* Grid: quiet header, comfortable rows, group rows as section labels, urgency stripe on the left. */
body .inquiry-page .inquiry-grid.dxbl-grid {
  border: 0;
  max-width: 100%;
  width: 100%;
}

body .inquiry-page .inquiry-grid.dxbl-grid .dxbl-grid-header-row > th {
  background: var(--innvilo-surface-app);
  border-bottom: 1px solid var(--innvilo-border-default);
  box-sizing: border-box;
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  height: 2.5rem;
  letter-spacing: 0;
  line-height: 1.2;
  padding: 0 var(--innvilo-space-6);
  text-transform: none;
  vertical-align: middle;
}

body .inquiry-page .inquiry-grid.dxbl-grid .dxbl-grid-data-row > td {
  border-color: var(--innvilo-border-default);
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
  vertical-align: middle;
}

body .inquiry-page .inquiry-grid.dxbl-grid .dxbl-grid-data-row > td:first-child {
  border-left: 3px solid transparent;
}

body .inquiry-page .inquiry-grid.dxbl-grid .dxbl-grid-data-row:hover > td {
  background: var(--innvilo-grid-hover-surface);
}

body .inquiry-page .inquiry-grid.dxbl-grid .inquiry-grid-row--urgent > td:first-child {
  border-left-color: var(--color-warning) !important;
}

/* Own pager: 40px page-size combobox and 36px square navigation buttons. */
body .inquiry-page .inquiry-pager__size-editor.dxbl-text-edit {
  align-items: center;
  border: 1px solid var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-shadow: none !important;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  height: 2.25rem;
  max-height: 2.25rem;
  min-height: 2.25rem;
  min-width: 4.5rem;
  width: 4.5rem;
}

body .inquiry-pager__size-list.dxbl-dropdown-dialog,
body .inquiry-pager__size-list .dxbl-dropdown-body {
  border-radius: var(--innvilo-radius-md);
  min-width: 4.5rem;
}

body .inquiry-pager__size-list .dxbl-list-box-item,
body .inquiry-pager__size-list [role=option] {
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-3) var(--innvilo-space-5);
}

body .inquiry-pager__size-list [aria-selected=true],
body .inquiry-pager__size-list .dxbl-list-box-item.dxbl-active {
  background: var(--innvilo-color-primary-soft) !important;
  color: var(--color-primary) !important;
}

body .inquiry-page .inquiry-pager__size-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring) !important;
}

body .inquiry-page .inquiry-pager__size-editor.dxbl-text-edit input {
  align-self: center;
  flex: 1 1 auto;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  min-width: 0;
  overflow: visible;
  padding: 0 0 0 var(--innvilo-space-4);
  text-align: left;
  text-overflow: clip;
  width: auto;
}

body .inquiry-page .inquiry-pager__size-editor.dxbl-text-edit .dxbl-btn-group {
  align-items: stretch;
  background: transparent !important;
  border: 0 !important;
  display: inline-flex;
  flex: 0 0 1.5rem;
  margin: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

body .inquiry-page .inquiry-pager__size-editor.dxbl-text-edit .dxbl-btn {
  align-items: center;
  align-self: stretch;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0;
  box-shadow: none !important;
  color: var(--innvilo-text-secondary) !important;
  display: inline-flex;
  height: auto;
  justify-content: center;
  margin: 0;
  min-height: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

body .inquiry-page .inquiry-pager__size-editor.dxbl-text-edit .dxbl-btn .dxbl-image {
  height: 0.75rem;
  width: 0.75rem;
}

body .inquiry-page .inquiry-pager__size-editor.dxbl-text-edit::after,
body .inquiry-page .inquiry-search-editor.dxbl-text-edit::after,
body .inquiry-page .inquiry-mobile-search.dxbl-text-edit::after {
  display: none;
}

body .inquiry-page .inquiry-pager__button.dxbl-btn {
  align-items: center;
  border-radius: var(--innvilo-radius-md);
  display: inline-flex;
  flex: 0 0 2.25rem;
  height: 2.25rem;
  justify-content: center;
  min-height: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .inquiry-page .inquiry-pager__button.dxbl-btn .dxbl-image {
  margin: 0;
}

body .inquiry-page .inquiry-row-primary.dxbl-btn {
  min-height: 2.25rem;
  padding-inline: var(--innvilo-space-5);
}

/* Row actions as round, quiet icon buttons (reference: FHSoftware grid). */
body .inquiry-page .inquiry-grid .inquiry-row-primary--icon.dxbl-btn,
body .inquiry-page .inquiry-grid .inquiry-row-more.dxbl-btn {
  align-items: center;
  background: var(--innvilo-surface-muted) !important;
  border-color: transparent !important;
  border-radius: var(--innvilo-radius-xs);
  box-sizing: border-box;
  color: var(--innvilo-text-primary) !important;
  display: inline-flex;
  flex: 0 0 2.25rem;
  font-size: var(--innvilo-font-size-label);
  height: 2.25rem;
  justify-content: center;
  line-height: 1;
  max-width: 2.25rem;
  min-height: 2.25rem;
  min-width: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .inquiry-page .inquiry-grid .inquiry-row-primary--icon.dxbl-btn .dxbl-image,
body .inquiry-page .inquiry-grid .inquiry-row-more.dxbl-btn .dxbl-image {
  margin: 0;
}

body .inquiry-page .inquiry-search-editor.dxbl-text-edit .dxbl-btn-icon .dxbl-image,
body .inquiry-page .inquiry-mobile-search.dxbl-text-edit .dxbl-btn-icon .dxbl-image {
  height: 1.125rem;
  width: 1.125rem;
}

body .inquiry-page .inquiry-grid .inquiry-row-primary--icon.dxbl-btn:hover,
body .inquiry-page .inquiry-grid .inquiry-row-primary--icon.dxbl-btn:focus-visible,
body .inquiry-page .inquiry-grid .inquiry-row-more.dxbl-btn:hover,
body .inquiry-page .inquiry-grid .inquiry-row-more.dxbl-btn:focus-visible {
  background: var(--innvilo-border-default) !important;
  color: var(--innvilo-text-primary) !important;
}

body .inquiry-page .inquiry-row-more.dxbl-btn,
body .inquiry-page .inquiry-mobile-create.dxbl-btn,
body .inquiry-page .inquiry-mobile-refresh.dxbl-btn {
  border-radius: var(--innvilo-radius-xs);
  height: 2.75rem;
  min-height: 2.75rem;
  width: 2.75rem;
}

body .inquiry-page .inquiry-mobile-card .inquiry-row-primary.dxbl-btn {
  min-height: 2.75rem;
}

body .inquiry-page .inquiry-mobile-more.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

body .inquiry-page .inquiry-mobile-filter.dxbl-btn {
  background: var(--innvilo-surface-card) !important;
  border-color: var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-sizing: border-box;
  flex: 0 0 auto;
  gap: var(--innvilo-space-3);
  height: 2.75rem;
  min-height: 2.75rem;
  padding-inline: var(--innvilo-space-5);
  white-space: nowrap;
}

/* Mobile filter overlay: DevExpress popup root as a full-screen sheet. */
body .inquiry-mobile-overlay.dxbl-popup {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none;
  height: 100dvh !important;
  inset: 0 !important;
  margin: 0 !important;
  max-height: 100dvh !important;
  max-width: 100vw !important;
  position: fixed !important;
  transform: none !important;
  width: 100vw !important;
}

body .inquiry-mobile-overlay.dxbl-popup > .dxbl-modal-content,
body .inquiry-mobile-overlay.dxbl-popup .dxbl-popup-body {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  height: 100% !important;
  max-height: 100% !important;
  max-width: 100% !important;
  overflow: hidden;
  padding: 0 !important;
  width: 100% !important;
}

body .inquiry-mobile-overlay .inquiry-overlay {
  height: 100%;
}

/* Sections inside the overlay use the full height: the option list grows, actions stay at the bottom. */
body .inquiry-mobile-overlay .inquiry-filter-form {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: var(--innvilo-space-6);
}

body .inquiry-mobile-overlay .inquiry-filter-form__listbox {
  flex: 1 1 auto;
  max-height: none;
  min-height: 10rem;
}

body .inquiry-mobile-overlay .inquiry-filter-form__actions {
  margin-top: auto;
}

body .inquiry-mobile-overlay .inquiry-filter-form .dx-app-button.dxbl-btn,
body .inquiry-mobile-overlay .inquiry-overlay__done.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

/* Filter form editors (dropdown on desktop, overlay on mobile). */
body .inquiry-filter-form .inquiry-filter-date.dxbl-text-edit,
body .inquiry-filter-form .inquiry-filter-option-search.dxbl-text-edit {
  border-radius: var(--innvilo-radius-xs);
  min-height: 2.75rem;
  min-width: 0;
  width: 100%;
}

body .inquiry-filter-form .dx-app-button.dxbl-btn {
  border-radius: var(--innvilo-radius-xs);
  height: 2.75rem;
  min-height: 2.75rem;
  width: 100%;
}

.navigation-drawer.desktop.is-compact .navigation-drawer-scope {
  justify-content: center;
}

.navigation-drawer.mobile > .dxbl-drawer-panel {
  background: var(--color-nav-bg-deep);
  bottom: 0;
  display: flex;
  flex-direction: column;
  height: 100dvh;
  left: 0;
  max-height: 100dvh;
  max-width: 100vw;
  overflow: hidden;
  position: fixed;
  right: 0;
  top: 0;
  width: 100vw !important;
  z-index: var(--innvilo-z-drawer);
}

.navigation-drawer.mobile > .dxbl-drawer-panel .dxbl-drawer-header,
.navigation-drawer.mobile > .dxbl-drawer-panel .dxbl-drawer-footer {
  align-self: stretch;
  flex: 0 0 auto;
  max-width: none;
  padding: 0 !important;
  width: 100%;
}

.navigation-drawer.mobile > .dxbl-drawer-panel .dxbl-drawer-body {
  align-self: stretch;
  flex: 1 1 auto;
  max-width: none;
  min-height: 0;
  overflow: hidden;
  padding: 0 !important;
  width: 100%;
}

.navigation-drawer.mobile > .dxbl-drawer-panel .dxbl-drawer-header > *,
.navigation-drawer.mobile > .dxbl-drawer-panel .dxbl-drawer-body > *,
.navigation-drawer.mobile > .dxbl-drawer-panel .dxbl-drawer-footer > * {
  max-width: none;
  width: 100%;
}

.navigation-drawer.mobile.panel-open .dxbl-drawer-shading {
  position: fixed;
  z-index: calc(var(--innvilo-z-drawer) - 1);
}

.dx-room-editor-dialog {
  max-height: calc(100dvh - 12rem);
  min-width: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.page.is-mobile .housekeeping-load-error .dxbl-btn {
  grid-column: 1/-1;
}
.page.is-mobile .external-pms-state .dx-app-button {
  grid-column: 1/-1;
  min-height: 44px;
  width: 100%;
}
.page.is-mobile .dx-room-editor-dialog {
  max-height: calc(100dvh - 10rem);
}

@media (prefers-reduced-motion: reduce) {
  .pms-nav-group-button.dxbl-btn .pms-nav-group-chevron,
  .pms-navigation-progress {
    transition: none;
  }
}
@media print {
  body:has([data-testid=housekeeping-print-view]) .navigation-drawer > .dxbl-drawer-panel,
  body:has([data-testid=housekeeping-print-view]) .navigation-drawer .dxbl-drawer-shading,
  body:has([data-testid=housekeeping-print-view]) .pms-toolbar,
  body:has([data-testid=housekeeping-print-view]) .pms-mobile-bottom-nav,
  body:has([data-testid=housekeeping-print-view]) .pms-head-breadcrumb,
  body:has([data-testid=housekeeping-print-view]) .pms-head,
  body:has([data-testid=housekeeping-print-view]) [data-filter-center],
  body:has([data-testid=housekeeping-print-view]) [data-testid=housekeeping-kpis],
  body:has([data-testid=housekeeping-print-view]) [data-testid=housekeeping-mobile-kpis],
  body:has([data-testid=housekeeping-print-view]) [data-print-grouping],
  body:has([data-testid=housekeeping-print-view]) .loading-inline {
    display: none !important;
  }
  body:has([data-testid=housekeeping-print-view]) .navigation-drawer,
  body:has([data-testid=housekeeping-print-view]) .navigation-drawer > .dxbl-drawer,
  body:has([data-testid=housekeeping-print-view]) .navigation-drawer .dxbl-drawer-content,
  body:has([data-testid=housekeeping-print-view]) .navigation-drawer .dxbl-drawer-body,
  body:has([data-testid=housekeeping-print-view]) .navigation-drawer .dxbl-drawer-target-content,
  body:has([data-testid=housekeeping-print-view]) .drawer-content,
  body:has([data-testid=housekeeping-print-view]) .page-content-container {
    height: auto !important;
    margin: 0 !important;
    max-height: none !important;
    max-width: none !important;
    min-height: 0 !important;
    overflow: visible !important;
    padding: 0 !important;
    width: 100% !important;
  }
}
/* Front Office / No-Show: DevExpress roots and popup-hosted shared controls. The feature keeps
   its ordinary layout rules in the colocated isolated stylesheets. Every hook below targets a
   DevExpress root (.dxbl-*) or the shared filter center, which do not receive the scoped attribute. */
body .no-show-page .dx-app-button.dxbl-btn,
body .no-show-page .dxbl-text-edit,
body .no-show-page .dxbl-combobox,
body .no-show-page .no-show-grid.dxbl-grid {
  border-radius: var(--innvilo-radius-xs);
}

body .no-show-page .no-show-hero .dx-app-button.dxbl-btn,
body .no-show-page .no-show-toolbar .dx-app-button.dxbl-btn,
body .no-show-page .no-show-state .dx-app-button.dxbl-btn {
  min-height: 2.5rem;
  white-space: nowrap;
}

/* Toolbar and pager controls carry the larger control radius. */
body .no-show-page .no-show-toolbar .dxbl-text-edit,
body .no-show-page .no-show-toolbar .dxbl-combobox,
body .no-show-page .no-show-toolbar .dx-app-button.dxbl-btn,
body .no-show-page .no-show-mobile-tools .dxbl-text-edit,
body .no-show-page .no-show-mobile-filter.dxbl-btn {
  border-radius: var(--innvilo-radius-md);
}

body .no-show-page .no-show-toolbar .dxbl-text-edit,
body .no-show-page .no-show-toolbar .dxbl-combobox {
  min-height: 2.5rem;
}

/* The search field takes the button height as its measure (40px desktop, 44px mobile). */
body .no-show-page .no-show-search-editor.dxbl-text-edit {
  height: 2.5rem;
  max-height: 2.5rem;
  min-height: 2.5rem;
}

body .no-show-page .no-show-mobile-search.dxbl-text-edit {
  border: 0 !important;
  box-shadow: inset 0 0 0 1px var(--innvilo-border-default);
  flex: 1 1 auto;
  height: 2.75rem;
  max-height: 2.75rem;
  min-height: 2.75rem;
}

body .no-show-page .no-show-mobile-search.dxbl-text-edit:focus-within {
  box-shadow: inset 0 0 0 1px var(--color-primary), 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .no-show-page .no-show-search-editor.dxbl-text-edit,
body .no-show-page .no-show-mobile-search.dxbl-text-edit {
  align-items: center;
  border-color: var(--innvilo-border-default);
  box-shadow: none;
  box-sizing: border-box;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  min-width: 0;
  width: 100%;
}

body .no-show-page .no-show-search-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .no-show-page .no-show-search-editor.dxbl-text-edit input,
body .no-show-page .no-show-mobile-search.dxbl-text-edit input {
  align-self: center;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  padding: 0 var(--innvilo-space-4) 0 var(--innvilo-space-3);
}

body .no-show-page .no-show-search-editor.dxbl-text-edit input::placeholder,
body .no-show-page .no-show-mobile-search.dxbl-text-edit input::placeholder {
  color: var(--innvilo-text-muted);
  line-height: 1.2;
  opacity: 1;
}

body .no-show-page .no-show-search-editor.dxbl-text-edit .dxbl-btn,
body .no-show-page .no-show-mobile-search.dxbl-text-edit .dxbl-btn {
  height: 100%;
  min-height: 0;
}

body .no-show-page .no-show-mobile-search.dxbl-text-edit .dxbl-btn {
  min-width: 2.75rem;
  width: 2.75rem;
}

body .no-show-page .inquiry-filter-dropdown__button.is-active.dxbl-btn,
body .no-show-page .no-show-mobile-filter.is-active.dxbl-btn {
  background: var(--innvilo-color-primary-soft) !important;
  border-color: var(--color-primary) !important;
  color: var(--color-primary) !important;
}

body .no-show-page .inquiry-filter-dropdown__button.dxbl-btn {
  gap: var(--innvilo-space-3);
  min-height: 2.5rem;
  padding-inline: var(--innvilo-space-4);
}

/* Grid: quiet header, comfortable rows, group rows as section labels, urgency stripe on the left. */
body .no-show-page .no-show-grid.dxbl-grid {
  border: 0;
  max-width: 100%;
  width: 100%;
}

body .no-show-page .no-show-grid.dxbl-grid .dxbl-grid-header-row > th {
  background: var(--innvilo-surface-app);
  border-bottom: 1px solid var(--innvilo-border-default);
  box-sizing: border-box;
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  height: 2.5rem;
  letter-spacing: 0;
  line-height: 1.2;
  padding: 0 var(--innvilo-space-6);
  text-transform: none;
  vertical-align: middle;
}

body .no-show-page .no-show-grid.dxbl-grid .dxbl-grid-data-row > td {
  border-color: var(--innvilo-border-default);
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
  vertical-align: middle;
}

body .no-show-page .no-show-grid.dxbl-grid .dxbl-grid-data-row > td:first-child {
  border-left: 3px solid transparent;
}

body .no-show-page .no-show-grid.dxbl-grid .dxbl-grid-data-row:hover > td {
  background: var(--innvilo-grid-hover-surface);
}

body .no-show-page .no-show-grid.dxbl-grid .no-show-grid-row--urgent > td:first-child {
  border-left-color: var(--color-warning) !important;
}

/* Own pager: 40px page-size combobox and 36px square navigation buttons. */
body .no-show-page .no-show-pager__size-editor.dxbl-text-edit {
  align-items: center;
  border: 1px solid var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-shadow: none !important;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  height: 2.25rem;
  max-height: 2.25rem;
  min-height: 2.25rem;
  min-width: 4.5rem;
  width: 4.5rem;
}

body .no-show-pager__size-list.dxbl-dropdown-dialog,
body .no-show-pager__size-list .dxbl-dropdown-body {
  border-radius: var(--innvilo-radius-md);
  min-width: 4.5rem;
}

body .no-show-pager__size-list .dxbl-list-box-item,
body .no-show-pager__size-list [role=option] {
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-3) var(--innvilo-space-5);
}

body .no-show-pager__size-list [aria-selected=true],
body .no-show-pager__size-list .dxbl-list-box-item.dxbl-active {
  background: var(--innvilo-color-primary-soft) !important;
  color: var(--color-primary) !important;
}

body .no-show-page .no-show-pager__size-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring) !important;
}

body .no-show-page .no-show-pager__size-editor.dxbl-text-edit input {
  align-self: center;
  flex: 1 1 auto;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  min-width: 0;
  overflow: visible;
  padding: 0 0 0 var(--innvilo-space-4);
  text-align: left;
  text-overflow: clip;
  width: auto;
}

body .no-show-page .no-show-pager__size-editor.dxbl-text-edit .dxbl-btn-group {
  align-items: stretch;
  background: transparent !important;
  border: 0 !important;
  display: inline-flex;
  flex: 0 0 1.5rem;
  margin: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

body .no-show-page .no-show-pager__size-editor.dxbl-text-edit .dxbl-btn {
  align-items: center;
  align-self: stretch;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0;
  box-shadow: none !important;
  color: var(--innvilo-text-secondary) !important;
  display: inline-flex;
  height: auto;
  justify-content: center;
  margin: 0;
  min-height: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

body .no-show-page .no-show-pager__size-editor.dxbl-text-edit .dxbl-btn .dxbl-image {
  height: 0.75rem;
  width: 0.75rem;
}

body .no-show-page .no-show-pager__size-editor.dxbl-text-edit::after,
body .no-show-page .no-show-search-editor.dxbl-text-edit::after,
body .no-show-page .no-show-mobile-search.dxbl-text-edit::after {
  display: none;
}

body .no-show-page .no-show-pager__button.dxbl-btn {
  align-items: center;
  border-radius: var(--innvilo-radius-md);
  display: inline-flex;
  flex: 0 0 2.25rem;
  height: 2.25rem;
  justify-content: center;
  min-height: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .no-show-page .no-show-pager__button.dxbl-btn .dxbl-image {
  margin: 0;
}

body .no-show-page .no-show-row-primary.dxbl-btn {
  min-height: 2.25rem;
  padding-inline: var(--innvilo-space-5);
}

/* Row actions as round, quiet icon buttons (reference: FHSoftware grid). */
body .no-show-page .no-show-grid .no-show-row-primary--icon.dxbl-btn,
body .no-show-page .no-show-grid .no-show-row-more.dxbl-btn {
  align-items: center;
  background: var(--innvilo-surface-muted) !important;
  border-color: transparent !important;
  border-radius: var(--innvilo-radius-xs);
  box-sizing: border-box;
  color: var(--innvilo-text-primary) !important;
  display: inline-flex;
  flex: 0 0 2.25rem;
  font-size: var(--innvilo-font-size-label);
  height: 2.25rem;
  justify-content: center;
  line-height: 1;
  max-width: 2.25rem;
  min-height: 2.25rem;
  min-width: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .no-show-page .no-show-grid .no-show-row-primary--icon.dxbl-btn .dxbl-image,
body .no-show-page .no-show-grid .no-show-row-more.dxbl-btn .dxbl-image {
  margin: 0;
}

body .no-show-page .no-show-search-editor.dxbl-text-edit .dxbl-btn-icon .dxbl-image,
body .no-show-page .no-show-mobile-search.dxbl-text-edit .dxbl-btn-icon .dxbl-image {
  height: 1.125rem;
  width: 1.125rem;
}

body .no-show-page .no-show-grid .no-show-row-primary--icon.dxbl-btn:hover,
body .no-show-page .no-show-grid .no-show-row-primary--icon.dxbl-btn:focus-visible,
body .no-show-page .no-show-grid .no-show-row-more.dxbl-btn:hover,
body .no-show-page .no-show-grid .no-show-row-more.dxbl-btn:focus-visible {
  background: var(--innvilo-border-default) !important;
  color: var(--innvilo-text-primary) !important;
}

body .no-show-page .no-show-row-more.dxbl-btn,
body .no-show-page .no-show-mobile-create.dxbl-btn,
body .no-show-page .no-show-mobile-refresh.dxbl-btn {
  border-radius: var(--innvilo-radius-xs);
  height: 2.75rem;
  min-height: 2.75rem;
  width: 2.75rem;
}

body .no-show-page .no-show-mobile-card .no-show-row-primary.dxbl-btn {
  min-height: 2.75rem;
}

body .no-show-page .no-show-mobile-more.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

body .no-show-page .no-show-mobile-filter.dxbl-btn {
  background: var(--innvilo-surface-card) !important;
  border-color: var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-sizing: border-box;
  flex: 0 0 auto;
  gap: var(--innvilo-space-3);
  height: 2.75rem;
  min-height: 2.75rem;
  padding-inline: var(--innvilo-space-5);
  white-space: nowrap;
}

/* Mobile filter overlay: DevExpress popup root as a full-screen sheet. */
body .no-show-mobile-overlay.dxbl-popup {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none;
  height: 100dvh !important;
  inset: 0 !important;
  margin: 0 !important;
  max-height: 100dvh !important;
  max-width: 100vw !important;
  position: fixed !important;
  transform: none !important;
  width: 100vw !important;
}

body .no-show-mobile-overlay.dxbl-popup > .dxbl-modal-content,
body .no-show-mobile-overlay.dxbl-popup .dxbl-popup-body {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  height: 100% !important;
  max-height: 100% !important;
  max-width: 100% !important;
  overflow: hidden;
  padding: 0 !important;
  width: 100% !important;
}

body .no-show-mobile-overlay .no-show-overlay {
  height: 100%;
}

/* Sections inside the overlay use the full height: the option list grows, actions stay at the bottom. */
body .no-show-mobile-overlay .inquiry-filter-form {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: var(--innvilo-space-6);
}

body .no-show-mobile-overlay .inquiry-filter-form__listbox {
  flex: 1 1 auto;
  max-height: none;
  min-height: 10rem;
}

body .no-show-mobile-overlay .inquiry-filter-form__actions {
  margin-top: auto;
}

body .no-show-mobile-overlay .inquiry-filter-form .dx-app-button.dxbl-btn,
body .no-show-mobile-overlay .no-show-overlay__done.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

/* Front Office / Im Haus: DevExpress roots and popup-hosted shared controls. The feature keeps
   its ordinary layout rules in the colocated isolated stylesheets. Every hook below targets a
   DevExpress root (.dxbl-*) or the shared filter center, which do not receive the scoped attribute. */
body .in-house-page .dx-app-button.dxbl-btn,
body .in-house-page .dxbl-text-edit,
body .in-house-page .dxbl-combobox,
body .in-house-page .in-house-grid.dxbl-grid {
  border-radius: var(--innvilo-radius-xs);
}

body .in-house-page .in-house-hero .dx-app-button.dxbl-btn,
body .in-house-page .in-house-toolbar .dx-app-button.dxbl-btn,
body .in-house-page .in-house-state .dx-app-button.dxbl-btn {
  min-height: 2.5rem;
  white-space: nowrap;
}

/* Toolbar and pager controls carry the larger control radius. */
body .in-house-page .in-house-toolbar .dxbl-text-edit,
body .in-house-page .in-house-toolbar .dxbl-combobox,
body .in-house-page .in-house-toolbar .dx-app-button.dxbl-btn,
body .in-house-page .in-house-mobile-tools .dxbl-text-edit,
body .in-house-page .in-house-mobile-filter.dxbl-btn {
  border-radius: var(--innvilo-radius-md);
}

body .in-house-page .in-house-toolbar .dxbl-text-edit,
body .in-house-page .in-house-toolbar .dxbl-combobox {
  min-height: 2.5rem;
}

/* The search field takes the button height as its measure (40px desktop, 44px mobile). */
body .in-house-page .in-house-search-editor.dxbl-text-edit {
  height: 2.5rem;
  max-height: 2.5rem;
  min-height: 2.5rem;
}

body .in-house-page .in-house-mobile-search.dxbl-text-edit {
  border: 0 !important;
  box-shadow: inset 0 0 0 1px var(--innvilo-border-default);
  flex: 1 1 auto;
  height: 2.75rem;
  max-height: 2.75rem;
  min-height: 2.75rem;
}

body .in-house-page .in-house-mobile-search.dxbl-text-edit:focus-within {
  box-shadow: inset 0 0 0 1px var(--color-primary), 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .in-house-page .in-house-search-editor.dxbl-text-edit,
body .in-house-page .in-house-mobile-search.dxbl-text-edit {
  align-items: center;
  border-color: var(--innvilo-border-default);
  box-shadow: none;
  box-sizing: border-box;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  min-width: 0;
  width: 100%;
}

body .in-house-page .in-house-search-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .in-house-page .in-house-search-editor.dxbl-text-edit input,
body .in-house-page .in-house-mobile-search.dxbl-text-edit input {
  align-self: center;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  padding: 0 var(--innvilo-space-4) 0 var(--innvilo-space-3);
}

body .in-house-page .in-house-search-editor.dxbl-text-edit input::placeholder,
body .in-house-page .in-house-mobile-search.dxbl-text-edit input::placeholder {
  color: var(--innvilo-text-muted);
  line-height: 1.2;
  opacity: 1;
}

body .in-house-page .in-house-search-editor.dxbl-text-edit .dxbl-btn,
body .in-house-page .in-house-mobile-search.dxbl-text-edit .dxbl-btn {
  height: 100%;
  min-height: 0;
}

body .in-house-page .in-house-mobile-search.dxbl-text-edit .dxbl-btn {
  min-width: 2.75rem;
  width: 2.75rem;
}

body .in-house-page .inquiry-filter-dropdown__button.is-active.dxbl-btn,
body .in-house-page .in-house-mobile-filter.is-active.dxbl-btn {
  background: var(--innvilo-color-primary-soft) !important;
  border-color: var(--color-primary) !important;
  color: var(--color-primary) !important;
}

body .in-house-page .inquiry-filter-dropdown__button.dxbl-btn {
  gap: var(--innvilo-space-3);
  min-height: 2.5rem;
  padding-inline: var(--innvilo-space-4);
}

/* Grid: quiet header, comfortable rows, group rows as section labels, urgency stripe on the left. */
body .in-house-page .in-house-grid.dxbl-grid {
  border: 0;
  max-width: 100%;
  width: 100%;
}

body .in-house-page .in-house-grid.dxbl-grid .dxbl-grid-header-row > th {
  background: var(--innvilo-surface-app);
  border-bottom: 1px solid var(--innvilo-border-default);
  box-sizing: border-box;
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  height: 2.5rem;
  letter-spacing: 0;
  line-height: 1.2;
  padding: 0 var(--innvilo-space-6);
  text-transform: none;
  vertical-align: middle;
}

body .in-house-page .in-house-grid.dxbl-grid .dxbl-grid-data-row > td {
  border-color: var(--innvilo-border-default);
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
  vertical-align: middle;
}

body .in-house-page .in-house-grid.dxbl-grid .dxbl-grid-data-row > td:first-child {
  border-left: 3px solid transparent;
}

body .in-house-page .in-house-grid.dxbl-grid .dxbl-grid-data-row:hover > td {
  background: var(--innvilo-grid-hover-surface);
}

body .in-house-page .in-house-grid.dxbl-grid .in-house-grid-row--urgent > td:first-child {
  border-left-color: var(--color-warning) !important;
}

/* Own pager: 40px page-size combobox and 36px square navigation buttons. */
body .in-house-page .in-house-pager__size-editor.dxbl-text-edit {
  align-items: center;
  border: 1px solid var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-shadow: none !important;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  height: 2.25rem;
  max-height: 2.25rem;
  min-height: 2.25rem;
  min-width: 4.5rem;
  width: 4.5rem;
}

body .in-house-pager__size-list.dxbl-dropdown-dialog,
body .in-house-pager__size-list .dxbl-dropdown-body {
  border-radius: var(--innvilo-radius-md);
  min-width: 4.5rem;
}

body .in-house-pager__size-list .dxbl-list-box-item,
body .in-house-pager__size-list [role=option] {
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-3) var(--innvilo-space-5);
}

body .in-house-pager__size-list [aria-selected=true],
body .in-house-pager__size-list .dxbl-list-box-item.dxbl-active {
  background: var(--innvilo-color-primary-soft) !important;
  color: var(--color-primary) !important;
}

body .in-house-page .in-house-pager__size-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring) !important;
}

body .in-house-page .in-house-pager__size-editor.dxbl-text-edit input {
  align-self: center;
  flex: 1 1 auto;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  min-width: 0;
  overflow: visible;
  padding: 0 0 0 var(--innvilo-space-4);
  text-align: left;
  text-overflow: clip;
  width: auto;
}

body .in-house-page .in-house-pager__size-editor.dxbl-text-edit .dxbl-btn-group {
  align-items: stretch;
  background: transparent !important;
  border: 0 !important;
  display: inline-flex;
  flex: 0 0 1.5rem;
  margin: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

body .in-house-page .in-house-pager__size-editor.dxbl-text-edit .dxbl-btn {
  align-items: center;
  align-self: stretch;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0;
  box-shadow: none !important;
  color: var(--innvilo-text-secondary) !important;
  display: inline-flex;
  height: auto;
  justify-content: center;
  margin: 0;
  min-height: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

body .in-house-page .in-house-pager__size-editor.dxbl-text-edit .dxbl-btn .dxbl-image {
  height: 0.75rem;
  width: 0.75rem;
}

body .in-house-page .in-house-pager__size-editor.dxbl-text-edit::after,
body .in-house-page .in-house-search-editor.dxbl-text-edit::after,
body .in-house-page .in-house-mobile-search.dxbl-text-edit::after {
  display: none;
}

body .in-house-page .in-house-pager__button.dxbl-btn {
  align-items: center;
  border-radius: var(--innvilo-radius-md);
  display: inline-flex;
  flex: 0 0 2.25rem;
  height: 2.25rem;
  justify-content: center;
  min-height: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .in-house-page .in-house-pager__button.dxbl-btn .dxbl-image {
  margin: 0;
}

body .in-house-page .in-house-row-primary.dxbl-btn {
  min-height: 2.25rem;
  padding-inline: var(--innvilo-space-5);
}

/* Row actions as round, quiet icon buttons (reference: FHSoftware grid). */
body .in-house-page .in-house-grid .in-house-row-primary--icon.dxbl-btn,
body .in-house-page .in-house-grid .in-house-row-more.dxbl-btn {
  align-items: center;
  background: var(--innvilo-surface-muted) !important;
  border-color: transparent !important;
  border-radius: var(--innvilo-radius-xs);
  box-sizing: border-box;
  color: var(--innvilo-text-primary) !important;
  display: inline-flex;
  flex: 0 0 2.25rem;
  font-size: var(--innvilo-font-size-label);
  height: 2.25rem;
  justify-content: center;
  line-height: 1;
  max-width: 2.25rem;
  min-height: 2.25rem;
  min-width: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .in-house-page .in-house-grid .in-house-row-primary--icon.dxbl-btn .dxbl-image,
body .in-house-page .in-house-grid .in-house-row-more.dxbl-btn .dxbl-image {
  margin: 0;
}

body .in-house-page .in-house-search-editor.dxbl-text-edit .dxbl-btn-icon .dxbl-image,
body .in-house-page .in-house-mobile-search.dxbl-text-edit .dxbl-btn-icon .dxbl-image {
  height: 1.125rem;
  width: 1.125rem;
}

body .in-house-page .in-house-grid .in-house-row-primary--icon.dxbl-btn:hover,
body .in-house-page .in-house-grid .in-house-row-primary--icon.dxbl-btn:focus-visible,
body .in-house-page .in-house-grid .in-house-row-more.dxbl-btn:hover,
body .in-house-page .in-house-grid .in-house-row-more.dxbl-btn:focus-visible {
  background: var(--innvilo-border-default) !important;
  color: var(--innvilo-text-primary) !important;
}

body .in-house-page .in-house-row-more.dxbl-btn,
body .in-house-page .in-house-mobile-create.dxbl-btn,
body .in-house-page .in-house-mobile-refresh.dxbl-btn {
  border-radius: var(--innvilo-radius-xs);
  height: 2.75rem;
  min-height: 2.75rem;
  width: 2.75rem;
}

body .in-house-page .in-house-mobile-card .in-house-row-primary.dxbl-btn {
  min-height: 2.75rem;
}

body .in-house-page .in-house-mobile-more.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

body .in-house-page .in-house-mobile-filter.dxbl-btn {
  background: var(--innvilo-surface-card) !important;
  border-color: var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-sizing: border-box;
  flex: 0 0 auto;
  gap: var(--innvilo-space-3);
  height: 2.75rem;
  min-height: 2.75rem;
  padding-inline: var(--innvilo-space-5);
  white-space: nowrap;
}

/* Mobile filter overlay: DevExpress popup root as a full-screen sheet. */
body .in-house-mobile-overlay.dxbl-popup {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none;
  height: 100dvh !important;
  inset: 0 !important;
  margin: 0 !important;
  max-height: 100dvh !important;
  max-width: 100vw !important;
  position: fixed !important;
  transform: none !important;
  width: 100vw !important;
}

body .in-house-mobile-overlay.dxbl-popup > .dxbl-modal-content,
body .in-house-mobile-overlay.dxbl-popup .dxbl-popup-body {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  height: 100% !important;
  max-height: 100% !important;
  max-width: 100% !important;
  overflow: hidden;
  padding: 0 !important;
  width: 100% !important;
}

body .in-house-mobile-overlay .in-house-overlay {
  height: 100%;
}

/* Sections inside the overlay use the full height: the option list grows, actions stay at the bottom. */
body .in-house-mobile-overlay .inquiry-filter-form {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: var(--innvilo-space-6);
}

body .in-house-mobile-overlay .inquiry-filter-form__listbox {
  flex: 1 1 auto;
  max-height: none;
  min-height: 10rem;
}

body .in-house-mobile-overlay .inquiry-filter-form__actions {
  margin-top: auto;
}

body .in-house-mobile-overlay .inquiry-filter-form .dx-app-button.dxbl-btn,
body .in-house-mobile-overlay .in-house-overlay__done.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

/* Front Office / Anreise: DevExpress roots and popup-hosted shared controls. The feature keeps
   its ordinary layout rules in the colocated isolated stylesheets. Every hook below targets a
   DevExpress root (.dxbl-*) or the shared filter center, which do not receive the scoped attribute. */
body .arrival-page .dx-app-button.dxbl-btn,
body .arrival-page .dxbl-text-edit,
body .arrival-page .dxbl-combobox,
body .arrival-page .arrival-grid.dxbl-grid {
  border-radius: var(--innvilo-radius-xs);
}

body .arrival-page .arrival-hero .dx-app-button.dxbl-btn,
body .arrival-page .arrival-toolbar .dx-app-button.dxbl-btn,
body .arrival-page .arrival-state .dx-app-button.dxbl-btn {
  min-height: 2.5rem;
  white-space: nowrap;
}

/* Toolbar and pager controls carry the larger control radius. */
body .arrival-page .arrival-toolbar .dxbl-text-edit,
body .arrival-page .arrival-toolbar .dxbl-combobox,
body .arrival-page .arrival-toolbar .dx-app-button.dxbl-btn,
body .arrival-page .arrival-mobile-tools .dxbl-text-edit,
body .arrival-page .arrival-mobile-filter.dxbl-btn {
  border-radius: var(--innvilo-radius-md);
}

body .arrival-page .arrival-toolbar .dxbl-text-edit,
body .arrival-page .arrival-toolbar .dxbl-combobox {
  min-height: 2.5rem;
}

/* The search field takes the button height as its measure (40px desktop, 44px mobile). */
body .arrival-page .arrival-search-editor.dxbl-text-edit {
  height: 2.5rem;
  max-height: 2.5rem;
  min-height: 2.5rem;
}

body .arrival-page .arrival-mobile-search.dxbl-text-edit {
  border: 0 !important;
  box-shadow: inset 0 0 0 1px var(--innvilo-border-default);
  flex: 1 1 auto;
  height: 2.75rem;
  max-height: 2.75rem;
  min-height: 2.75rem;
}

body .arrival-page .arrival-mobile-search.dxbl-text-edit:focus-within {
  box-shadow: inset 0 0 0 1px var(--color-primary), 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .arrival-page .arrival-search-editor.dxbl-text-edit,
body .arrival-page .arrival-mobile-search.dxbl-text-edit {
  align-items: center;
  border-color: var(--innvilo-border-default);
  box-shadow: none;
  box-sizing: border-box;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  min-width: 0;
  width: 100%;
}

body .arrival-page .arrival-search-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .arrival-page .arrival-search-editor.dxbl-text-edit input,
body .arrival-page .arrival-mobile-search.dxbl-text-edit input {
  align-self: center;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  padding: 0 var(--innvilo-space-4) 0 var(--innvilo-space-3);
}

body .arrival-page .arrival-search-editor.dxbl-text-edit input::placeholder,
body .arrival-page .arrival-mobile-search.dxbl-text-edit input::placeholder {
  color: var(--innvilo-text-muted);
  line-height: 1.2;
  opacity: 1;
}

body .arrival-page .arrival-search-editor.dxbl-text-edit .dxbl-btn,
body .arrival-page .arrival-mobile-search.dxbl-text-edit .dxbl-btn {
  height: 100%;
  min-height: 0;
}

body .arrival-page .arrival-mobile-search.dxbl-text-edit .dxbl-btn {
  min-width: 2.75rem;
  width: 2.75rem;
}

body .arrival-page .inquiry-filter-dropdown__button.is-active.dxbl-btn,
body .arrival-page .arrival-mobile-filter.is-active.dxbl-btn {
  background: var(--innvilo-color-primary-soft) !important;
  border-color: var(--color-primary) !important;
  color: var(--color-primary) !important;
}

body .arrival-page .inquiry-filter-dropdown__button.dxbl-btn {
  gap: var(--innvilo-space-3);
  min-height: 2.5rem;
  padding-inline: var(--innvilo-space-4);
}

/* Grid: quiet header, comfortable rows, group rows as section labels, urgency stripe on the left. */
body .arrival-page .arrival-grid.dxbl-grid {
  border: 0;
  max-width: 100%;
  width: 100%;
}

body .arrival-page .arrival-grid.dxbl-grid .dxbl-grid-header-row > th {
  background: var(--innvilo-surface-app);
  border-bottom: 1px solid var(--innvilo-border-default);
  box-sizing: border-box;
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  height: 2.5rem;
  letter-spacing: 0;
  line-height: 1.2;
  padding: 0 var(--innvilo-space-6);
  text-transform: none;
  vertical-align: middle;
}

body .arrival-page .arrival-grid.dxbl-grid .dxbl-grid-data-row > td {
  border-color: var(--innvilo-border-default);
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
  vertical-align: middle;
}

body .arrival-page .arrival-grid.dxbl-grid .dxbl-grid-data-row > td:first-child {
  border-left: 3px solid transparent;
}

body .arrival-page .arrival-grid.dxbl-grid .dxbl-grid-data-row:hover > td {
  background: var(--innvilo-grid-hover-surface);
}

body .arrival-page .arrival-grid.dxbl-grid .arrival-grid-row--urgent > td:first-child {
  border-left-color: var(--color-warning) !important;
}

/* Own pager: 40px page-size combobox and 36px square navigation buttons. */
body .arrival-page .arrival-pager__size-editor.dxbl-text-edit {
  align-items: center;
  border: 1px solid var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-shadow: none !important;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  height: 2.25rem;
  max-height: 2.25rem;
  min-height: 2.25rem;
  min-width: 4.5rem;
  width: 4.5rem;
}

body .arrival-pager__size-list.dxbl-dropdown-dialog,
body .arrival-pager__size-list .dxbl-dropdown-body {
  border-radius: var(--innvilo-radius-md);
  min-width: 4.5rem;
}

body .arrival-pager__size-list .dxbl-list-box-item,
body .arrival-pager__size-list [role=option] {
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-3) var(--innvilo-space-5);
}

body .arrival-pager__size-list [aria-selected=true],
body .arrival-pager__size-list .dxbl-list-box-item.dxbl-active {
  background: var(--innvilo-color-primary-soft) !important;
  color: var(--color-primary) !important;
}

body .arrival-page .arrival-pager__size-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring) !important;
}

body .arrival-page .arrival-pager__size-editor.dxbl-text-edit input {
  align-self: center;
  flex: 1 1 auto;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  min-width: 0;
  overflow: visible;
  padding: 0 0 0 var(--innvilo-space-4);
  text-align: left;
  text-overflow: clip;
  width: auto;
}

body .arrival-page .arrival-pager__size-editor.dxbl-text-edit .dxbl-btn-group {
  align-items: stretch;
  background: transparent !important;
  border: 0 !important;
  display: inline-flex;
  flex: 0 0 1.5rem;
  margin: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

body .arrival-page .arrival-pager__size-editor.dxbl-text-edit .dxbl-btn {
  align-items: center;
  align-self: stretch;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0;
  box-shadow: none !important;
  color: var(--innvilo-text-secondary) !important;
  display: inline-flex;
  height: auto;
  justify-content: center;
  margin: 0;
  min-height: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

body .arrival-page .arrival-pager__size-editor.dxbl-text-edit .dxbl-btn .dxbl-image {
  height: 0.75rem;
  width: 0.75rem;
}

body .arrival-page .arrival-pager__size-editor.dxbl-text-edit::after,
body .arrival-page .arrival-search-editor.dxbl-text-edit::after,
body .arrival-page .arrival-mobile-search.dxbl-text-edit::after {
  display: none;
}

body .arrival-page .arrival-pager__button.dxbl-btn {
  align-items: center;
  border-radius: var(--innvilo-radius-md);
  display: inline-flex;
  flex: 0 0 2.25rem;
  height: 2.25rem;
  justify-content: center;
  min-height: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .arrival-page .arrival-pager__button.dxbl-btn .dxbl-image {
  margin: 0;
}

body .arrival-page .arrival-row-primary.dxbl-btn {
  min-height: 2.25rem;
  padding-inline: var(--innvilo-space-5);
}

/* Row actions as round, quiet icon buttons (reference: FHSoftware grid). */
body .arrival-page .arrival-grid .arrival-row-primary--icon.dxbl-btn,
body .arrival-page .arrival-grid .arrival-row-more.dxbl-btn {
  align-items: center;
  background: var(--innvilo-surface-muted) !important;
  border-color: transparent !important;
  border-radius: var(--innvilo-radius-xs);
  box-sizing: border-box;
  color: var(--innvilo-text-primary) !important;
  display: inline-flex;
  flex: 0 0 2.25rem;
  font-size: var(--innvilo-font-size-label);
  height: 2.25rem;
  justify-content: center;
  line-height: 1;
  max-width: 2.25rem;
  min-height: 2.25rem;
  min-width: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .arrival-page .arrival-grid .arrival-row-primary--icon.dxbl-btn .dxbl-image,
body .arrival-page .arrival-grid .arrival-row-more.dxbl-btn .dxbl-image {
  margin: 0;
}

body .arrival-page .arrival-search-editor.dxbl-text-edit .dxbl-btn-icon .dxbl-image,
body .arrival-page .arrival-mobile-search.dxbl-text-edit .dxbl-btn-icon .dxbl-image {
  height: 1.125rem;
  width: 1.125rem;
}

body .arrival-page .arrival-grid .arrival-row-primary--icon.dxbl-btn:hover,
body .arrival-page .arrival-grid .arrival-row-primary--icon.dxbl-btn:focus-visible,
body .arrival-page .arrival-grid .arrival-row-more.dxbl-btn:hover,
body .arrival-page .arrival-grid .arrival-row-more.dxbl-btn:focus-visible {
  background: var(--innvilo-border-default) !important;
  color: var(--innvilo-text-primary) !important;
}

body .arrival-page .arrival-row-more.dxbl-btn,
body .arrival-page .arrival-mobile-create.dxbl-btn,
body .arrival-page .arrival-mobile-refresh.dxbl-btn {
  border-radius: var(--innvilo-radius-xs);
  height: 2.75rem;
  min-height: 2.75rem;
  width: 2.75rem;
}

body .arrival-page .arrival-mobile-card .arrival-row-primary.dxbl-btn {
  min-height: 2.75rem;
}

body .arrival-page .arrival-mobile-more.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

body .arrival-page .arrival-mobile-filter.dxbl-btn {
  background: var(--innvilo-surface-card) !important;
  border-color: var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-sizing: border-box;
  flex: 0 0 auto;
  gap: var(--innvilo-space-3);
  height: 2.75rem;
  min-height: 2.75rem;
  padding-inline: var(--innvilo-space-5);
  white-space: nowrap;
}

/* Mobile filter overlay: DevExpress popup root as a full-screen sheet. */
body .arrival-mobile-overlay.dxbl-popup {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none;
  height: 100dvh !important;
  inset: 0 !important;
  margin: 0 !important;
  max-height: 100dvh !important;
  max-width: 100vw !important;
  position: fixed !important;
  transform: none !important;
  width: 100vw !important;
}

body .arrival-mobile-overlay.dxbl-popup > .dxbl-modal-content,
body .arrival-mobile-overlay.dxbl-popup .dxbl-popup-body {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  height: 100% !important;
  max-height: 100% !important;
  max-width: 100% !important;
  overflow: hidden;
  padding: 0 !important;
  width: 100% !important;
}

body .arrival-mobile-overlay .arrival-overlay {
  height: 100%;
}

/* Sections inside the overlay use the full height: the option list grows, actions stay at the bottom. */
body .arrival-mobile-overlay .inquiry-filter-form {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: var(--innvilo-space-6);
}

body .arrival-mobile-overlay .inquiry-filter-form__listbox {
  flex: 1 1 auto;
  max-height: none;
  min-height: 10rem;
}

body .arrival-mobile-overlay .inquiry-filter-form__actions {
  margin-top: auto;
}

body .arrival-mobile-overlay .inquiry-filter-form .dx-app-button.dxbl-btn,
body .arrival-mobile-overlay .arrival-overlay__done.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

/* Front Office / Abreise: DevExpress roots and popup-hosted shared controls. The feature keeps
   its ordinary layout rules in the colocated isolated stylesheets. Every hook below targets a
   DevExpress root (.dxbl-*) or the shared filter center, which do not receive the scoped attribute. */
body .departure-page .dx-app-button.dxbl-btn,
body .departure-page .dxbl-text-edit,
body .departure-page .dxbl-combobox,
body .departure-page .departure-grid.dxbl-grid {
  border-radius: var(--innvilo-radius-xs);
}

body .departure-page .departure-hero .dx-app-button.dxbl-btn,
body .departure-page .departure-toolbar .dx-app-button.dxbl-btn,
body .departure-page .departure-state .dx-app-button.dxbl-btn {
  min-height: 2.5rem;
  white-space: nowrap;
}

/* Toolbar and pager controls carry the larger control radius. */
body .departure-page .departure-toolbar .dxbl-text-edit,
body .departure-page .departure-toolbar .dxbl-combobox,
body .departure-page .departure-toolbar .dx-app-button.dxbl-btn,
body .departure-page .departure-mobile-tools .dxbl-text-edit,
body .departure-page .departure-mobile-filter.dxbl-btn {
  border-radius: var(--innvilo-radius-md);
}

body .departure-page .departure-toolbar .dxbl-text-edit,
body .departure-page .departure-toolbar .dxbl-combobox {
  min-height: 2.5rem;
}

/* The search field takes the button height as its measure (40px desktop, 44px mobile). */
body .departure-page .departure-search-editor.dxbl-text-edit {
  height: 2.5rem;
  max-height: 2.5rem;
  min-height: 2.5rem;
}

body .departure-page .departure-mobile-search.dxbl-text-edit {
  border: 0 !important;
  box-shadow: inset 0 0 0 1px var(--innvilo-border-default);
  flex: 1 1 auto;
  height: 2.75rem;
  max-height: 2.75rem;
  min-height: 2.75rem;
}

body .departure-page .departure-mobile-search.dxbl-text-edit:focus-within {
  box-shadow: inset 0 0 0 1px var(--color-primary), 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .departure-page .departure-search-editor.dxbl-text-edit,
body .departure-page .departure-mobile-search.dxbl-text-edit {
  align-items: center;
  border-color: var(--innvilo-border-default);
  box-shadow: none;
  box-sizing: border-box;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  min-width: 0;
  width: 100%;
}

body .departure-page .departure-search-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .departure-page .departure-search-editor.dxbl-text-edit input,
body .departure-page .departure-mobile-search.dxbl-text-edit input {
  align-self: center;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  padding: 0 var(--innvilo-space-4) 0 var(--innvilo-space-3);
}

body .departure-page .departure-search-editor.dxbl-text-edit input::placeholder,
body .departure-page .departure-mobile-search.dxbl-text-edit input::placeholder {
  color: var(--innvilo-text-muted);
  line-height: 1.2;
  opacity: 1;
}

body .departure-page .departure-search-editor.dxbl-text-edit .dxbl-btn,
body .departure-page .departure-mobile-search.dxbl-text-edit .dxbl-btn {
  height: 100%;
  min-height: 0;
}

body .departure-page .departure-mobile-search.dxbl-text-edit .dxbl-btn {
  min-width: 2.75rem;
  width: 2.75rem;
}

body .departure-page .inquiry-filter-dropdown__button.is-active.dxbl-btn,
body .departure-page .departure-mobile-filter.is-active.dxbl-btn {
  background: var(--innvilo-color-primary-soft) !important;
  border-color: var(--color-primary) !important;
  color: var(--color-primary) !important;
}

body .departure-page .inquiry-filter-dropdown__button.dxbl-btn {
  gap: var(--innvilo-space-3);
  min-height: 2.5rem;
  padding-inline: var(--innvilo-space-4);
}

/* Grid: quiet header, comfortable rows, group rows as section labels, urgency stripe on the left. */
body .departure-page .departure-grid.dxbl-grid {
  border: 0;
  max-width: 100%;
  width: 100%;
}

body .departure-page .departure-grid.dxbl-grid .dxbl-grid-header-row > th {
  background: var(--innvilo-surface-app);
  border-bottom: 1px solid var(--innvilo-border-default);
  box-sizing: border-box;
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  height: 2.5rem;
  letter-spacing: 0;
  line-height: 1.2;
  padding: 0 var(--innvilo-space-6);
  text-transform: none;
  vertical-align: middle;
}

body .departure-page .departure-grid.dxbl-grid .dxbl-grid-data-row > td {
  border-color: var(--innvilo-border-default);
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
  vertical-align: middle;
}

body .departure-page .departure-grid.dxbl-grid .dxbl-grid-data-row > td:first-child {
  border-left: 3px solid transparent;
}

body .departure-page .departure-grid.dxbl-grid .dxbl-grid-data-row:hover > td {
  background: var(--innvilo-grid-hover-surface);
}

body .departure-page .departure-grid.dxbl-grid .departure-grid-row--urgent > td:first-child {
  border-left-color: var(--color-warning) !important;
}

/* Own pager: 40px page-size combobox and 36px square navigation buttons. */
body .departure-page .departure-pager__size-editor.dxbl-text-edit {
  align-items: center;
  border: 1px solid var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-shadow: none !important;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  height: 2.25rem;
  max-height: 2.25rem;
  min-height: 2.25rem;
  min-width: 4.5rem;
  width: 4.5rem;
}

body .departure-pager__size-list.dxbl-dropdown-dialog,
body .departure-pager__size-list .dxbl-dropdown-body {
  border-radius: var(--innvilo-radius-md);
  min-width: 4.5rem;
}

body .departure-pager__size-list .dxbl-list-box-item,
body .departure-pager__size-list [role=option] {
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-3) var(--innvilo-space-5);
}

body .departure-pager__size-list [aria-selected=true],
body .departure-pager__size-list .dxbl-list-box-item.dxbl-active {
  background: var(--innvilo-color-primary-soft) !important;
  color: var(--color-primary) !important;
}

body .departure-page .departure-pager__size-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring) !important;
}

body .departure-page .departure-pager__size-editor.dxbl-text-edit input {
  align-self: center;
  flex: 1 1 auto;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  min-width: 0;
  overflow: visible;
  padding: 0 0 0 var(--innvilo-space-4);
  text-align: left;
  text-overflow: clip;
  width: auto;
}

body .departure-page .departure-pager__size-editor.dxbl-text-edit .dxbl-btn-group {
  align-items: stretch;
  background: transparent !important;
  border: 0 !important;
  display: inline-flex;
  flex: 0 0 1.5rem;
  margin: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

body .departure-page .departure-pager__size-editor.dxbl-text-edit .dxbl-btn {
  align-items: center;
  align-self: stretch;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0;
  box-shadow: none !important;
  color: var(--innvilo-text-secondary) !important;
  display: inline-flex;
  height: auto;
  justify-content: center;
  margin: 0;
  min-height: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

body .departure-page .departure-pager__size-editor.dxbl-text-edit .dxbl-btn .dxbl-image {
  height: 0.75rem;
  width: 0.75rem;
}

body .departure-page .departure-pager__size-editor.dxbl-text-edit::after,
body .departure-page .departure-search-editor.dxbl-text-edit::after,
body .departure-page .departure-mobile-search.dxbl-text-edit::after {
  display: none;
}

body .departure-page .departure-pager__button.dxbl-btn {
  align-items: center;
  border-radius: var(--innvilo-radius-md);
  display: inline-flex;
  flex: 0 0 2.25rem;
  height: 2.25rem;
  justify-content: center;
  min-height: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .departure-page .departure-pager__button.dxbl-btn .dxbl-image {
  margin: 0;
}

body .departure-page .departure-row-primary.dxbl-btn {
  min-height: 2.25rem;
  padding-inline: var(--innvilo-space-5);
}

/* Row actions as round, quiet icon buttons (reference: FHSoftware grid). */
body .departure-page .departure-grid .departure-row-primary--icon.dxbl-btn,
body .departure-page .departure-grid .departure-row-more.dxbl-btn {
  align-items: center;
  background: var(--innvilo-surface-muted) !important;
  border-color: transparent !important;
  border-radius: var(--innvilo-radius-xs);
  box-sizing: border-box;
  color: var(--innvilo-text-primary) !important;
  display: inline-flex;
  flex: 0 0 2.25rem;
  font-size: var(--innvilo-font-size-label);
  height: 2.25rem;
  justify-content: center;
  line-height: 1;
  max-width: 2.25rem;
  min-height: 2.25rem;
  min-width: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .departure-page .departure-grid .departure-row-primary--icon.dxbl-btn .dxbl-image,
body .departure-page .departure-grid .departure-row-more.dxbl-btn .dxbl-image {
  margin: 0;
}

body .departure-page .departure-search-editor.dxbl-text-edit .dxbl-btn-icon .dxbl-image,
body .departure-page .departure-mobile-search.dxbl-text-edit .dxbl-btn-icon .dxbl-image {
  height: 1.125rem;
  width: 1.125rem;
}

body .departure-page .departure-grid .departure-row-primary--icon.dxbl-btn:hover,
body .departure-page .departure-grid .departure-row-primary--icon.dxbl-btn:focus-visible,
body .departure-page .departure-grid .departure-row-more.dxbl-btn:hover,
body .departure-page .departure-grid .departure-row-more.dxbl-btn:focus-visible {
  background: var(--innvilo-border-default) !important;
  color: var(--innvilo-text-primary) !important;
}

body .departure-page .departure-row-more.dxbl-btn,
body .departure-page .departure-mobile-create.dxbl-btn,
body .departure-page .departure-mobile-refresh.dxbl-btn {
  border-radius: var(--innvilo-radius-xs);
  height: 2.75rem;
  min-height: 2.75rem;
  width: 2.75rem;
}

body .departure-page .departure-mobile-card .departure-row-primary.dxbl-btn {
  min-height: 2.75rem;
}

body .departure-page .departure-mobile-more.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

body .departure-page .departure-mobile-filter.dxbl-btn {
  background: var(--innvilo-surface-card) !important;
  border-color: var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-sizing: border-box;
  flex: 0 0 auto;
  gap: var(--innvilo-space-3);
  height: 2.75rem;
  min-height: 2.75rem;
  padding-inline: var(--innvilo-space-5);
  white-space: nowrap;
}

/* Mobile filter overlay: DevExpress popup root as a full-screen sheet. */
body .departure-mobile-overlay.dxbl-popup {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none;
  height: 100dvh !important;
  inset: 0 !important;
  margin: 0 !important;
  max-height: 100dvh !important;
  max-width: 100vw !important;
  position: fixed !important;
  transform: none !important;
  width: 100vw !important;
}

body .departure-mobile-overlay.dxbl-popup > .dxbl-modal-content,
body .departure-mobile-overlay.dxbl-popup .dxbl-popup-body {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  height: 100% !important;
  max-height: 100% !important;
  max-width: 100% !important;
  overflow: hidden;
  padding: 0 !important;
  width: 100% !important;
}

body .departure-mobile-overlay .departure-overlay {
  height: 100%;
}

/* Sections inside the overlay use the full height: the option list grows, actions stay at the bottom. */
body .departure-mobile-overlay .inquiry-filter-form {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: var(--innvilo-space-6);
}

body .departure-mobile-overlay .inquiry-filter-form__listbox {
  flex: 1 1 auto;
  max-height: none;
  min-height: 10rem;
}

body .departure-mobile-overlay .inquiry-filter-form__actions {
  margin-top: auto;
}

body .departure-mobile-overlay .inquiry-filter-form .dx-app-button.dxbl-btn,
body .departure-mobile-overlay .departure-overlay__done.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

body .departure-page .departure-batch .dx-app-button.dxbl-btn {
  min-height: 2.5rem;
}

body .departure-page .departure-mobile .departure-batch .dx-app-button.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

body .departure-page .departure-grid.dxbl-grid .dxbl-grid-selection-cell,
body .departure-page .departure-grid.dxbl-grid .dxbl-grid-selection-header-cell {
  width: 3rem;
}

/* Front Office / Zimmerzugang: DevExpress roots and popup-hosted shared controls. The feature keeps
   its ordinary layout rules in the colocated isolated stylesheets. Every hook below targets a
   DevExpress root (.dxbl-*) or the shared filter center, which do not receive the scoped attribute. */
body .room-access-page .dx-app-button.dxbl-btn,
body .room-access-page .dxbl-text-edit,
body .room-access-page .dxbl-combobox,
body .room-access-page .room-access-grid.dxbl-grid {
  border-radius: var(--innvilo-radius-xs);
}

body .room-access-page .room-access-head .dx-app-button.dxbl-btn,
body .room-access-page .room-access-toolbar .dx-app-button.dxbl-btn,
body .room-access-page .room-access-state .dx-app-button.dxbl-btn {
  min-height: 2.5rem;
  white-space: nowrap;
}

/* Toolbar and pager controls carry the larger control radius. */
body .room-access-page .room-access-toolbar .dxbl-text-edit,
body .room-access-page .room-access-toolbar .dxbl-combobox,
body .room-access-page .room-access-toolbar .dx-app-button.dxbl-btn,
body .room-access-page .room-access-mobile-tools .dxbl-text-edit,
body .room-access-page .room-access-mobile-filter.dxbl-btn {
  border-radius: var(--innvilo-radius-md);
}

body .room-access-page .room-access-toolbar .dxbl-text-edit,
body .room-access-page .room-access-toolbar .dxbl-combobox {
  min-height: 2.5rem;
}

/* The search field takes the button height as its measure (40px desktop, 44px mobile). */
body .room-access-page .room-access-search-editor.dxbl-text-edit {
  height: 2.5rem;
  max-height: 2.5rem;
  min-height: 2.5rem;
}

body .room-access-page .room-access-mobile-search.dxbl-text-edit {
  border: 0 !important;
  box-shadow: inset 0 0 0 1px var(--innvilo-border-default);
  flex: 1 1 auto;
  height: 2.75rem;
  max-height: 2.75rem;
  min-height: 2.75rem;
}

body .room-access-page .room-access-mobile-search.dxbl-text-edit:focus-within {
  box-shadow: inset 0 0 0 1px var(--color-primary), 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .room-access-page .room-access-search-editor.dxbl-text-edit,
body .room-access-page .room-access-mobile-search.dxbl-text-edit {
  align-items: center;
  border-color: var(--innvilo-border-default);
  box-shadow: none;
  box-sizing: border-box;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  min-width: 0;
  width: 100%;
}

body .room-access-page .room-access-search-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .room-access-page .room-access-search-editor.dxbl-text-edit input,
body .room-access-page .room-access-mobile-search.dxbl-text-edit input {
  align-self: center;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  padding: 0 var(--innvilo-space-4) 0 var(--innvilo-space-3);
}

body .room-access-page .room-access-search-editor.dxbl-text-edit input::placeholder,
body .room-access-page .room-access-mobile-search.dxbl-text-edit input::placeholder {
  color: var(--innvilo-text-muted);
  line-height: 1.2;
  opacity: 1;
}

body .room-access-page .room-access-search-editor.dxbl-text-edit .dxbl-btn,
body .room-access-page .room-access-mobile-search.dxbl-text-edit .dxbl-btn {
  height: 100%;
  min-height: 0;
}

body .room-access-page .room-access-mobile-search.dxbl-text-edit .dxbl-btn {
  min-width: 2.75rem;
  width: 2.75rem;
}

body .room-access-page .inquiry-filter-dropdown__button.is-active.dxbl-btn,
body .room-access-page .room-access-mobile-filter.is-active.dxbl-btn {
  background: var(--innvilo-color-primary-soft) !important;
  border-color: var(--color-primary) !important;
  color: var(--color-primary) !important;
}

body .room-access-page .inquiry-filter-dropdown__button.dxbl-btn {
  gap: var(--innvilo-space-3);
  min-height: 2.5rem;
  padding-inline: var(--innvilo-space-4);
}

/* Grid: quiet header, comfortable rows, group rows as section labels, urgency stripe on the left. */
body .room-access-page .room-access-grid.dxbl-grid {
  border: 0;
  max-width: 100%;
  width: 100%;
}

body .room-access-page .room-access-grid.dxbl-grid .dxbl-grid-header-row > th {
  background: var(--innvilo-surface-app);
  border-bottom: 1px solid var(--innvilo-border-default);
  box-sizing: border-box;
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  height: 2.5rem;
  letter-spacing: 0;
  line-height: 1.2;
  padding: 0 var(--innvilo-space-6);
  text-transform: none;
  vertical-align: middle;
}

body .room-access-page .room-access-grid.dxbl-grid .dxbl-grid-data-row > td {
  border-color: var(--innvilo-border-default);
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
  vertical-align: middle;
}

body .room-access-page .room-access-grid.dxbl-grid .dxbl-grid-data-row > td:first-child {
  border-left: 3px solid transparent;
}

body .room-access-page .room-access-grid.dxbl-grid .dxbl-grid-data-row:hover > td {
  background: var(--innvilo-grid-hover-surface);
}

body .room-access-page .room-access-grid.dxbl-grid .room-access-grid-row--urgent > td:first-child {
  border-left-color: var(--color-warning) !important;
}

/* Own pager: 40px page-size combobox and 36px square navigation buttons. */
body .room-access-page .room-access-pager__size-editor.dxbl-text-edit {
  align-items: center;
  border: 1px solid var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-shadow: none !important;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  height: 2.25rem;
  max-height: 2.25rem;
  min-height: 2.25rem;
  min-width: 4.5rem;
  width: 4.5rem;
}

body .room-access-pager__size-list.dxbl-dropdown-dialog,
body .room-access-pager__size-list .dxbl-dropdown-body {
  border-radius: var(--innvilo-radius-md);
  min-width: 4.5rem;
}

body .room-access-pager__size-list .dxbl-list-box-item,
body .room-access-pager__size-list [role=option] {
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-3) var(--innvilo-space-5);
}

body .room-access-pager__size-list [aria-selected=true],
body .room-access-pager__size-list .dxbl-list-box-item.dxbl-active {
  background: var(--innvilo-color-primary-soft) !important;
  color: var(--color-primary) !important;
}

body .room-access-page .room-access-pager__size-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring) !important;
}

body .room-access-page .room-access-pager__size-editor.dxbl-text-edit input {
  align-self: center;
  flex: 1 1 auto;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  min-width: 0;
  overflow: visible;
  padding: 0 0 0 var(--innvilo-space-4);
  text-align: left;
  text-overflow: clip;
  width: auto;
}

body .room-access-page .room-access-pager__size-editor.dxbl-text-edit .dxbl-btn-group {
  align-items: stretch;
  background: transparent !important;
  border: 0 !important;
  display: inline-flex;
  flex: 0 0 1.5rem;
  margin: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

body .room-access-page .room-access-pager__size-editor.dxbl-text-edit .dxbl-btn {
  align-items: center;
  align-self: stretch;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0;
  box-shadow: none !important;
  color: var(--innvilo-text-secondary) !important;
  display: inline-flex;
  height: auto;
  justify-content: center;
  margin: 0;
  min-height: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

body .room-access-page .room-access-pager__size-editor.dxbl-text-edit .dxbl-btn .dxbl-image {
  height: 0.75rem;
  width: 0.75rem;
}

body .room-access-page .room-access-pager__size-editor.dxbl-text-edit::after,
body .room-access-page .room-access-search-editor.dxbl-text-edit::after,
body .room-access-page .room-access-mobile-search.dxbl-text-edit::after {
  display: none;
}

body .room-access-page .room-access-pager__button.dxbl-btn {
  align-items: center;
  border-radius: var(--innvilo-radius-md);
  display: inline-flex;
  flex: 0 0 2.25rem;
  height: 2.25rem;
  justify-content: center;
  min-height: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .room-access-page .room-access-pager__button.dxbl-btn .dxbl-image {
  margin: 0;
}

body .room-access-page .room-access-row-primary.dxbl-btn {
  min-height: 2.25rem;
  padding-inline: var(--innvilo-space-5);
}

/* Row actions as round, quiet icon buttons (reference: FHSoftware grid). */
body .room-access-page .room-access-grid .room-access-row-primary--icon.dxbl-btn,
body .room-access-page .room-access-grid .room-access-row-more.dxbl-btn {
  align-items: center;
  background: var(--innvilo-surface-muted) !important;
  border-color: transparent !important;
  border-radius: var(--innvilo-radius-xs);
  box-sizing: border-box;
  color: var(--innvilo-text-primary) !important;
  display: inline-flex;
  flex: 0 0 2.25rem;
  font-size: var(--innvilo-font-size-label);
  height: 2.25rem;
  justify-content: center;
  line-height: 1;
  max-width: 2.25rem;
  min-height: 2.25rem;
  min-width: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .room-access-page .room-access-grid .room-access-row-primary--icon.dxbl-btn .dxbl-image,
body .room-access-page .room-access-grid .room-access-row-more.dxbl-btn .dxbl-image {
  margin: 0;
}

body .room-access-page .room-access-search-editor.dxbl-text-edit .dxbl-btn-icon .dxbl-image,
body .room-access-page .room-access-mobile-search.dxbl-text-edit .dxbl-btn-icon .dxbl-image {
  height: 1.125rem;
  width: 1.125rem;
}

body .room-access-page .room-access-grid .room-access-row-primary--icon.dxbl-btn:hover,
body .room-access-page .room-access-grid .room-access-row-primary--icon.dxbl-btn:focus-visible,
body .room-access-page .room-access-grid .room-access-row-more.dxbl-btn:hover,
body .room-access-page .room-access-grid .room-access-row-more.dxbl-btn:focus-visible {
  background: var(--innvilo-border-default) !important;
  color: var(--innvilo-text-primary) !important;
}

body .room-access-page .room-access-row-more.dxbl-btn,
body .room-access-page .room-access-mobile-create.dxbl-btn,
body .room-access-page .room-access-mobile-refresh.dxbl-btn {
  border-radius: var(--innvilo-radius-xs);
  height: 2.75rem;
  min-height: 2.75rem;
  width: 2.75rem;
}

body .room-access-page .room-access-mobile-card .room-access-row-primary.dxbl-btn {
  min-height: 2.75rem;
}

body .room-access-page .room-access-mobile-more.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

body .room-access-page .room-access-mobile-filter.dxbl-btn {
  background: var(--innvilo-surface-card) !important;
  border-color: var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-sizing: border-box;
  flex: 0 0 auto;
  gap: var(--innvilo-space-3);
  height: 2.75rem;
  min-height: 2.75rem;
  padding-inline: var(--innvilo-space-5);
  white-space: nowrap;
}

/* Mobile filter overlay: DevExpress popup root as a full-screen sheet. */
body .room-access-mobile-overlay.dxbl-popup {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none;
  height: 100dvh !important;
  inset: 0 !important;
  margin: 0 !important;
  max-height: 100dvh !important;
  max-width: 100vw !important;
  position: fixed !important;
  transform: none !important;
  width: 100vw !important;
}

body .room-access-mobile-overlay.dxbl-popup > .dxbl-modal-content,
body .room-access-mobile-overlay.dxbl-popup .dxbl-popup-body {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  height: 100% !important;
  max-height: 100% !important;
  max-width: 100% !important;
  overflow: hidden;
  padding: 0 !important;
  width: 100% !important;
}

body .room-access-mobile-overlay .room-access-overlay {
  height: 100%;
}

/* Sections inside the overlay use the full height: the option list grows, actions stay at the bottom. */
body .room-access-mobile-overlay .inquiry-filter-form {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: var(--innvilo-space-6);
}

body .room-access-mobile-overlay .inquiry-filter-form__listbox {
  flex: 1 1 auto;
  max-height: none;
  min-height: 10rem;
}

body .room-access-mobile-overlay .inquiry-filter-form__actions {
  margin-top: auto;
}

body .room-access-mobile-overlay .inquiry-filter-form .dx-app-button.dxbl-btn,
body .room-access-mobile-overlay .room-access-overlay__done.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

body .room-access-page .room-access-batch .dx-app-button.dxbl-btn {
  min-height: 2.5rem;
}

body .room-access-page .room-access-mobile .room-access-batch .dx-app-button.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

body .room-access-page .room-access-grid.dxbl-grid .dxbl-grid-selection-cell,
body .room-access-page .room-access-grid.dxbl-grid .dxbl-grid-selection-header-cell {
  width: 3rem;
}

body .pms-popup-center--wide:has(.room-access-issue) .pms-popup-center__body-shell {
  overflow: auto;
}

body .pms-popup-center--wide:has(.room-access-issue) .pms-popup-center__body {
  padding: var(--innvilo-space-5);
}

body .pms-popup-center .room-access-issue .room-access-form-input.dxbl-text-edit,
body .pms-popup-center .room-access-issue .room-access-form-input .dxbl-text-edit {
  min-height: 2.75rem;
}

body .pms-popup-center--fullscreen:has(.room-access-issue) .pms-popup-center__body {
  padding: var(--innvilo-space-4);
}

/* Das Popup-Center liegt über der mobilen Bottom-Navigation (z-sticky 1050): die DevExpress-Popup-Zelle
   steht sonst ebenfalls auf 1050. Vollbild-Popups verlieren außerdem den Adaptivitätsrand. */
body dxbl-popup-cell:has(.pms-popup-center) {
  z-index: var(--innvilo-z-modal);
}

body .pms-popup-center--fullscreen.dxbl-popup {
  margin: 0 !important;
}

body .pms-popup-center--fullscreen.dxbl-popup,
body .pms-popup-center--fullscreen > .dxbl-modal-content {
  background: var(--innvilo-surface-muted) !important;
}

/* Bei einem Vollbild-Popup ist die mobile Bottom-Navigation nicht bedienbar und würde nur den Fuß
   des Popups verdecken. */
body:has(dxbl-popup-root .pms-popup-center--fullscreen) .pms-mobile-bottom-nav {
  display: none;
}

/* Im Vollbild auf dem Handy stapelt der Popup-Fuß beide Aktionen; die Fußzeile darf dann nicht auf
   ihre Mindesthöhe beschnitten werden. */
@media (max-width: 36rem) {
  body .pms-popup-center--fullscreen > .dxbl-modal-content {
    grid-template-rows: auto minmax(0, 1fr) max-content;
    height: 100% !important;
    max-height: 100dvh;
  }
  body .pms-popup-center--fullscreen .pms-popup-center__footer {
    align-items: stretch;
    flex-direction: row;
    gap: var(--innvilo-space-3);
    height: auto !important;
    max-height: none !important;
    min-height: 0;
    padding: var(--innvilo-space-3) var(--innvilo-space-4) max(var(--innvilo-space-3), env(safe-area-inset-bottom));
  }
  body .pms-popup-center--fullscreen .pms-popup-center__footer .dxbl-btn {
    flex: 1 1 0;
    min-width: 0;
    width: auto;
  }
}
/* DevExpress begrenzt den Inhalt im Adaptivitätsmodus per Inline-Style auf Viewport minus Rand;
   im Vollbild soll der Inhalt die ganze Höhe nutzen und der Fuß nie schrumpfen. */
body .pms-popup-center--fullscreen > .dxbl-modal-content {
  height: 100% !important;
  max-height: none !important;
}

body .pms-popup-center--fullscreen .pms-popup-center__body-shell {
  flex: 1 1 auto;
  min-height: 0;
}

body .pms-popup-center--fullscreen .pms-popup-center__footer {
  flex: 0 0 auto;
}

/* Front Office / Kasse: DevExpress roots and popup-hosted shared controls. The feature keeps
   its ordinary layout rules in the colocated isolated stylesheets. Every hook below targets a
   DevExpress root (.dxbl-*) or the shared filter center, which do not receive the scoped attribute. */
body .cashdesk-page .dx-app-button.dxbl-btn,
body .cashdesk-page .dxbl-text-edit,
body .cashdesk-page .dxbl-combobox,
body .cashdesk-page .cashdesk-grid.dxbl-grid {
  border-radius: var(--innvilo-radius-xs);
}

body .cashdesk-page .cashdesk-head .dx-app-button.dxbl-btn,
body .cashdesk-page .cashdesk-toolbar .dx-app-button.dxbl-btn,
body .cashdesk-page .cashdesk-state .dx-app-button.dxbl-btn {
  min-height: 2.5rem;
  white-space: nowrap;
}

/* Toolbar and pager controls carry the larger control radius. */
body .cashdesk-page .cashdesk-toolbar .dxbl-text-edit,
body .cashdesk-page .cashdesk-toolbar .dxbl-combobox,
body .cashdesk-page .cashdesk-toolbar .dx-app-button.dxbl-btn,
body .cashdesk-page .cashdesk-mobile-tools .dxbl-text-edit,
body .cashdesk-page .cashdesk-mobile-filter.dxbl-btn {
  border-radius: var(--innvilo-radius-md);
}

body .cashdesk-page .cashdesk-toolbar .dxbl-text-edit,
body .cashdesk-page .cashdesk-toolbar .dxbl-combobox {
  min-height: 2.5rem;
}

/* The search field takes the button height as its measure (40px desktop, 44px mobile). */
body .cashdesk-page .cashdesk-search-editor.dxbl-text-edit {
  height: 2.5rem;
  max-height: 2.5rem;
  min-height: 2.5rem;
}

body .cashdesk-page .cashdesk-mobile-search.dxbl-text-edit {
  border: 0 !important;
  box-shadow: inset 0 0 0 1px var(--innvilo-border-default);
  flex: 1 1 auto;
  height: 2.75rem;
  max-height: 2.75rem;
  min-height: 2.75rem;
}

body .cashdesk-page .cashdesk-mobile-search.dxbl-text-edit:focus-within {
  box-shadow: inset 0 0 0 1px var(--color-primary), 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .cashdesk-page .cashdesk-search-editor.dxbl-text-edit,
body .cashdesk-page .cashdesk-mobile-search.dxbl-text-edit {
  align-items: center;
  border-color: var(--innvilo-border-default);
  box-shadow: none;
  box-sizing: border-box;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  min-width: 0;
  width: 100%;
}

body .cashdesk-page .cashdesk-search-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .cashdesk-page .cashdesk-search-editor.dxbl-text-edit input,
body .cashdesk-page .cashdesk-mobile-search.dxbl-text-edit input {
  align-self: center;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  padding: 0 var(--innvilo-space-4) 0 var(--innvilo-space-3);
}

body .cashdesk-page .cashdesk-search-editor.dxbl-text-edit input::placeholder,
body .cashdesk-page .cashdesk-mobile-search.dxbl-text-edit input::placeholder {
  color: var(--innvilo-text-muted);
  line-height: 1.2;
  opacity: 1;
}

body .cashdesk-page .cashdesk-search-editor.dxbl-text-edit .dxbl-btn,
body .cashdesk-page .cashdesk-mobile-search.dxbl-text-edit .dxbl-btn {
  height: 100%;
  min-height: 0;
}

body .cashdesk-page .cashdesk-mobile-search.dxbl-text-edit .dxbl-btn {
  min-width: 2.75rem;
  width: 2.75rem;
}

body .cashdesk-page .inquiry-filter-dropdown__button.is-active.dxbl-btn,
body .cashdesk-page .cashdesk-mobile-filter.is-active.dxbl-btn {
  background: var(--innvilo-color-primary-soft) !important;
  border-color: var(--color-primary) !important;
  color: var(--color-primary) !important;
}

body .cashdesk-page .inquiry-filter-dropdown__button.dxbl-btn {
  gap: var(--innvilo-space-3);
  min-height: 2.5rem;
  padding-inline: var(--innvilo-space-4);
}

/* Grid: quiet header, comfortable rows, group rows as section labels, urgency stripe on the left. */
body .cashdesk-page .cashdesk-grid.dxbl-grid {
  border: 0;
  max-width: 100%;
  width: 100%;
}

body .cashdesk-page .cashdesk-grid.dxbl-grid .dxbl-grid-header-row > th {
  background: var(--innvilo-surface-app);
  border-bottom: 1px solid var(--innvilo-border-default);
  box-sizing: border-box;
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  height: 2.5rem;
  letter-spacing: 0;
  line-height: 1.2;
  padding: 0 var(--innvilo-space-6);
  text-transform: none;
  vertical-align: middle;
}

body .cashdesk-page .cashdesk-grid.dxbl-grid .dxbl-grid-data-row > td {
  border-color: var(--innvilo-border-default);
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
  vertical-align: middle;
}

body .cashdesk-page .cashdesk-grid.dxbl-grid .dxbl-grid-data-row > td:first-child {
  border-left: 3px solid transparent;
}

body .cashdesk-page .cashdesk-grid.dxbl-grid .dxbl-grid-data-row:hover > td {
  background: var(--innvilo-grid-hover-surface);
}

body .cashdesk-page .cashdesk-grid.dxbl-grid .cashdesk-grid-row--urgent > td:first-child {
  border-left-color: var(--color-warning) !important;
}

/* Own pager: 40px page-size combobox and 36px square navigation buttons. */
body .cashdesk-page .cashdesk-pager__size-editor.dxbl-text-edit {
  align-items: center;
  border: 1px solid var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-shadow: none !important;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  height: 2.25rem;
  max-height: 2.25rem;
  min-height: 2.25rem;
  min-width: 4.5rem;
  width: 4.5rem;
}

body .cashdesk-pager__size-list.dxbl-dropdown-dialog,
body .cashdesk-pager__size-list .dxbl-dropdown-body {
  border-radius: var(--innvilo-radius-md);
  min-width: 4.5rem;
}

body .cashdesk-pager__size-list .dxbl-list-box-item,
body .cashdesk-pager__size-list [role=option] {
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-3) var(--innvilo-space-5);
}

body .cashdesk-pager__size-list [aria-selected=true],
body .cashdesk-pager__size-list .dxbl-list-box-item.dxbl-active {
  background: var(--innvilo-color-primary-soft) !important;
  color: var(--color-primary) !important;
}

body .cashdesk-page .cashdesk-pager__size-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring) !important;
}

body .cashdesk-page .cashdesk-pager__size-editor.dxbl-text-edit input {
  align-self: center;
  flex: 1 1 auto;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  min-width: 0;
  overflow: visible;
  padding: 0 0 0 var(--innvilo-space-4);
  text-align: left;
  text-overflow: clip;
  width: auto;
}

body .cashdesk-page .cashdesk-pager__size-editor.dxbl-text-edit .dxbl-btn-group {
  align-items: stretch;
  background: transparent !important;
  border: 0 !important;
  display: inline-flex;
  flex: 0 0 1.5rem;
  margin: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

body .cashdesk-page .cashdesk-pager__size-editor.dxbl-text-edit .dxbl-btn {
  align-items: center;
  align-self: stretch;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0;
  box-shadow: none !important;
  color: var(--innvilo-text-secondary) !important;
  display: inline-flex;
  height: auto;
  justify-content: center;
  margin: 0;
  min-height: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

body .cashdesk-page .cashdesk-pager__size-editor.dxbl-text-edit .dxbl-btn .dxbl-image {
  height: 0.75rem;
  width: 0.75rem;
}

body .cashdesk-page .cashdesk-pager__size-editor.dxbl-text-edit::after,
body .cashdesk-page .cashdesk-search-editor.dxbl-text-edit::after,
body .cashdesk-page .cashdesk-mobile-search.dxbl-text-edit::after {
  display: none;
}

body .cashdesk-page .cashdesk-pager__button.dxbl-btn {
  align-items: center;
  border-radius: var(--innvilo-radius-md);
  display: inline-flex;
  flex: 0 0 2.25rem;
  height: 2.25rem;
  justify-content: center;
  min-height: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .cashdesk-page .cashdesk-pager__button.dxbl-btn .dxbl-image {
  margin: 0;
}

body .cashdesk-page .cashdesk-row-primary.dxbl-btn {
  min-height: 2.25rem;
  padding-inline: var(--innvilo-space-5);
}

/* Row actions as round, quiet icon buttons (reference: FHSoftware grid). */
body .cashdesk-page .cashdesk-grid .cashdesk-row-primary--icon.dxbl-btn,
body .cashdesk-page .cashdesk-grid .cashdesk-row-more.dxbl-btn {
  align-items: center;
  background: var(--innvilo-surface-muted) !important;
  border-color: transparent !important;
  border-radius: var(--innvilo-radius-xs);
  box-sizing: border-box;
  color: var(--innvilo-text-primary) !important;
  display: inline-flex;
  flex: 0 0 2.25rem;
  font-size: var(--innvilo-font-size-label);
  height: 2.25rem;
  justify-content: center;
  line-height: 1;
  max-width: 2.25rem;
  min-height: 2.25rem;
  min-width: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .cashdesk-page .cashdesk-grid .cashdesk-row-primary--icon.dxbl-btn .dxbl-image,
body .cashdesk-page .cashdesk-grid .cashdesk-row-more.dxbl-btn .dxbl-image {
  margin: 0;
}

body .cashdesk-page .cashdesk-search-editor.dxbl-text-edit .dxbl-btn-icon .dxbl-image,
body .cashdesk-page .cashdesk-mobile-search.dxbl-text-edit .dxbl-btn-icon .dxbl-image {
  height: 1.125rem;
  width: 1.125rem;
}

body .cashdesk-page .cashdesk-grid .cashdesk-row-primary--icon.dxbl-btn:hover,
body .cashdesk-page .cashdesk-grid .cashdesk-row-primary--icon.dxbl-btn:focus-visible,
body .cashdesk-page .cashdesk-grid .cashdesk-row-more.dxbl-btn:hover,
body .cashdesk-page .cashdesk-grid .cashdesk-row-more.dxbl-btn:focus-visible {
  background: var(--innvilo-border-default) !important;
  color: var(--innvilo-text-primary) !important;
}

body .cashdesk-page .cashdesk-row-more.dxbl-btn,
body .cashdesk-page .cashdesk-mobile-create.dxbl-btn,
body .cashdesk-page .cashdesk-mobile-refresh.dxbl-btn {
  border-radius: var(--innvilo-radius-xs);
  height: 2.75rem;
  min-height: 2.75rem;
  width: 2.75rem;
}

body .cashdesk-page .cashdesk-mobile-card .cashdesk-row-primary.dxbl-btn {
  min-height: 2.75rem;
}

body .cashdesk-page .cashdesk-mobile-more.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

body .cashdesk-page .cashdesk-mobile-filter.dxbl-btn {
  background: var(--innvilo-surface-card) !important;
  border-color: var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-sizing: border-box;
  flex: 0 0 auto;
  gap: var(--innvilo-space-3);
  height: 2.75rem;
  min-height: 2.75rem;
  padding-inline: var(--innvilo-space-5);
  white-space: nowrap;
}

/* Mobile filter overlay: DevExpress popup root as a full-screen sheet. */
body .cashdesk-mobile-overlay.dxbl-popup {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none;
  height: 100dvh !important;
  inset: 0 !important;
  margin: 0 !important;
  max-height: 100dvh !important;
  max-width: 100vw !important;
  position: fixed !important;
  transform: none !important;
  width: 100vw !important;
}

body .cashdesk-mobile-overlay.dxbl-popup > .dxbl-modal-content,
body .cashdesk-mobile-overlay.dxbl-popup .dxbl-popup-body {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  height: 100% !important;
  max-height: 100% !important;
  max-width: 100% !important;
  overflow: hidden;
  padding: 0 !important;
  width: 100% !important;
}

body .cashdesk-mobile-overlay .cashdesk-overlay {
  height: 100%;
}

/* Sections inside the overlay use the full height: the option list grows, actions stay at the bottom. */
body .cashdesk-mobile-overlay .inquiry-filter-form {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: var(--innvilo-space-6);
}

body .cashdesk-mobile-overlay .inquiry-filter-form__listbox {
  flex: 1 1 auto;
  max-height: none;
  min-height: 10rem;
}

body .cashdesk-mobile-overlay .inquiry-filter-form__actions {
  margin-top: auto;
}

body .cashdesk-mobile-overlay .inquiry-filter-form .dx-app-button.dxbl-btn,
body .cashdesk-mobile-overlay .cashdesk-overlay__done.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

body .cashdesk-page .cashdesk-batch .dx-app-button.dxbl-btn {
  min-height: 2.5rem;
}

body .cashdesk-page .cashdesk-mobile .cashdesk-batch .dx-app-button.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

body .cashdesk-page .cashdesk-grid.dxbl-grid .dxbl-grid-selection-cell,
body .cashdesk-page .cashdesk-grid.dxbl-grid .dxbl-grid-selection-header-cell {
  width: 3rem;
}

body .pms-popup-center--wide:has(.cashdesk-issue) .pms-popup-center__body-shell {
  overflow: auto;
}

body .pms-popup-center--wide:has(.cashdesk-issue) .pms-popup-center__body {
  padding: var(--innvilo-space-5);
}

body .pms-popup-center--fullscreen:has(.cashdesk-issue) .pms-popup-center__body {
  padding: var(--innvilo-space-4);
}

/* Kassen-Statusmarken (Verbucht, Abgeglichen, Offen, Abweichung, Manuelle Prüfung) sind in Grid,
   Karten und Popups identisch und deshalb global. Farbe trägt Bedeutung, kein Schmuck. */
body .cashdesk-status {
  align-items: center;
  background: var(--innvilo-surface-app);
  border: 1px solid var(--innvilo-border-default);
  border-radius: 999px;
  color: var(--innvilo-text-secondary);
  display: inline-flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  gap: 0.35rem;
  line-height: 1.2;
  padding: 0.3rem 0.65rem;
  white-space: nowrap;
}

body .cashdesk-status.is-booked,
body .cashdesk-status.is-reconciled {
  background: var(--color-success-surface);
  border-color: var(--color-success-border);
  color: var(--color-success);
}

body .cashdesk-status.is-open {
  background: var(--innvilo-surface-app);
  border-color: var(--innvilo-border-strong);
  color: var(--color-navy-deep);
}

body .cashdesk-status.is-discrepancy {
  background: var(--color-error-surface);
  border-color: var(--color-error-border);
  color: var(--color-error);
}

body .cashdesk-status.is-review {
  background: var(--color-warning-soft);
  border-color: var(--color-border-strong);
  color: var(--color-navy-deep);
}

body .pms-popup-center--wide:has(.cashdesk-issue) .pms-popup-center__body-shell,
body .pms-popup-center--medium:has(.cashdesk-confirm) .pms-popup-center__body-shell {
  overflow: auto;
}

body .pms-popup-center--wide:has(.cashdesk-issue) .pms-popup-center__body,
body .pms-popup-center--medium:has(.cashdesk-confirm) .pms-popup-center__body {
  padding: var(--innvilo-space-5);
}

body .pms-popup-center--fullscreen:has(.cashdesk-issue) .pms-popup-center__body,
body .pms-popup-center--fullscreen:has(.cashdesk-confirm) .pms-popup-center__body {
  padding: var(--innvilo-space-4);
}

body .pms-popup-center .cashdesk-issue__check.dxbl-checkbox {
  min-height: 2.75rem;
}

/* Kassen-Hauptaktionen sind Touch-Ziele: 44px wie die Zeilenaktionen auf dem Handy. */
body .cashdesk-page .cashdesk-head__actions .dx-app-button.dxbl-btn,
body .cashdesk-page .cashdesk-sync__button.dxbl-btn,
body .cashdesk-page .cashdesk-report__actions .dx-app-button.dxbl-btn {
  min-height: 2.75rem;
}

/* Front Office / Barkasse: DevExpress roots and popup-hosted shared controls. The feature keeps
   its ordinary layout rules in the colocated isolated stylesheets. Every hook below targets a
   DevExpress root (.dxbl-*) or the shared filter center, which do not receive the scoped attribute. */
body .cashreg-page .dx-app-button.dxbl-btn,
body .cashreg-page .dxbl-text-edit,
body .cashreg-page .dxbl-combobox,
body .cashreg-page .cashreg-grid.dxbl-grid {
  border-radius: var(--innvilo-radius-xs);
}

body .cashreg-page .cashreg-head .dx-app-button.dxbl-btn,
body .cashreg-page .cashreg-toolbar .dx-app-button.dxbl-btn,
body .cashreg-page .cashreg-state .dx-app-button.dxbl-btn {
  min-height: 2.5rem;
  white-space: nowrap;
}

/* Toolbar and pager controls carry the larger control radius. */
body .cashreg-page .cashreg-toolbar .dxbl-text-edit,
body .cashreg-page .cashreg-toolbar .dxbl-combobox,
body .cashreg-page .cashreg-toolbar .dx-app-button.dxbl-btn,
body .cashreg-page .cashreg-mobile-tools .dxbl-text-edit,
body .cashreg-page .cashreg-mobile-filter.dxbl-btn {
  border-radius: var(--innvilo-radius-md);
}

body .cashreg-page .cashreg-toolbar .dxbl-text-edit,
body .cashreg-page .cashreg-toolbar .dxbl-combobox {
  min-height: 2.5rem;
}

/* The search field takes the button height as its measure (40px desktop, 44px mobile). */
body .cashreg-page .cashreg-search-editor.dxbl-text-edit {
  height: 2.5rem;
  max-height: 2.5rem;
  min-height: 2.5rem;
}

body .cashreg-page .cashreg-mobile-search.dxbl-text-edit {
  border: 0 !important;
  box-shadow: inset 0 0 0 1px var(--innvilo-border-default);
  flex: 1 1 auto;
  height: 2.75rem;
  max-height: 2.75rem;
  min-height: 2.75rem;
}

body .cashreg-page .cashreg-mobile-search.dxbl-text-edit:focus-within {
  box-shadow: inset 0 0 0 1px var(--color-primary), 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .cashreg-page .cashreg-search-editor.dxbl-text-edit,
body .cashreg-page .cashreg-mobile-search.dxbl-text-edit {
  align-items: center;
  border-color: var(--innvilo-border-default);
  box-shadow: none;
  box-sizing: border-box;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  min-width: 0;
  width: 100%;
}

body .cashreg-page .cashreg-search-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .cashreg-page .cashreg-search-editor.dxbl-text-edit input,
body .cashreg-page .cashreg-mobile-search.dxbl-text-edit input {
  align-self: center;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  padding: 0 var(--innvilo-space-4) 0 var(--innvilo-space-3);
}

body .cashreg-page .cashreg-search-editor.dxbl-text-edit input::placeholder,
body .cashreg-page .cashreg-mobile-search.dxbl-text-edit input::placeholder {
  color: var(--innvilo-text-muted);
  line-height: 1.2;
  opacity: 1;
}

body .cashreg-page .cashreg-search-editor.dxbl-text-edit .dxbl-btn,
body .cashreg-page .cashreg-mobile-search.dxbl-text-edit .dxbl-btn {
  height: 100%;
  min-height: 0;
}

body .cashreg-page .cashreg-mobile-search.dxbl-text-edit .dxbl-btn {
  min-width: 2.75rem;
  width: 2.75rem;
}

body .cashreg-page .inquiry-filter-dropdown__button.is-active.dxbl-btn,
body .cashreg-page .cashreg-mobile-filter.is-active.dxbl-btn {
  background: var(--innvilo-color-primary-soft) !important;
  border-color: var(--color-primary) !important;
  color: var(--color-primary) !important;
}

body .cashreg-page .inquiry-filter-dropdown__button.dxbl-btn {
  gap: var(--innvilo-space-3);
  min-height: 2.5rem;
  padding-inline: var(--innvilo-space-4);
}

/* Grid: quiet header, comfortable rows, group rows as section labels, urgency stripe on the left. */
body .cashreg-page .cashreg-grid.dxbl-grid {
  border: 0;
  max-width: 100%;
  width: 100%;
}

body .cashreg-page .cashreg-grid.dxbl-grid .dxbl-grid-header-row > th {
  background: var(--innvilo-surface-app);
  border-bottom: 1px solid var(--innvilo-border-default);
  box-sizing: border-box;
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  height: 2.5rem;
  letter-spacing: 0;
  line-height: 1.2;
  padding: 0 var(--innvilo-space-6);
  text-transform: none;
  vertical-align: middle;
}

body .cashreg-page .cashreg-grid.dxbl-grid .dxbl-grid-data-row > td {
  border-color: var(--innvilo-border-default);
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
  vertical-align: middle;
}

body .cashreg-page .cashreg-grid.dxbl-grid .dxbl-grid-data-row > td:first-child {
  border-left: 3px solid transparent;
}

body .cashreg-page .cashreg-grid.dxbl-grid .dxbl-grid-data-row:hover > td {
  background: var(--innvilo-grid-hover-surface);
}

body .cashreg-page .cashreg-grid.dxbl-grid .cashreg-grid-row--urgent > td:first-child {
  border-left-color: var(--color-warning) !important;
}

/* Own pager: 40px page-size combobox and 36px square navigation buttons. */
body .cashreg-page .cashreg-pager__size-editor.dxbl-text-edit {
  align-items: center;
  border: 1px solid var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-shadow: none !important;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  height: 2.25rem;
  max-height: 2.25rem;
  min-height: 2.25rem;
  min-width: 4.5rem;
  width: 4.5rem;
}

body .cashreg-pager__size-list.dxbl-dropdown-dialog,
body .cashreg-pager__size-list .dxbl-dropdown-body {
  border-radius: var(--innvilo-radius-md);
  min-width: 4.5rem;
}

body .cashreg-pager__size-list .dxbl-list-box-item,
body .cashreg-pager__size-list [role=option] {
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-3) var(--innvilo-space-5);
}

body .cashreg-pager__size-list [aria-selected=true],
body .cashreg-pager__size-list .dxbl-list-box-item.dxbl-active {
  background: var(--innvilo-color-primary-soft) !important;
  color: var(--color-primary) !important;
}

body .cashreg-page .cashreg-pager__size-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring) !important;
}

body .cashreg-page .cashreg-pager__size-editor.dxbl-text-edit input {
  align-self: center;
  flex: 1 1 auto;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  min-width: 0;
  overflow: visible;
  padding: 0 0 0 var(--innvilo-space-4);
  text-align: left;
  text-overflow: clip;
  width: auto;
}

body .cashreg-page .cashreg-pager__size-editor.dxbl-text-edit .dxbl-btn-group {
  align-items: stretch;
  background: transparent !important;
  border: 0 !important;
  display: inline-flex;
  flex: 0 0 1.5rem;
  margin: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

body .cashreg-page .cashreg-pager__size-editor.dxbl-text-edit .dxbl-btn {
  align-items: center;
  align-self: stretch;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0;
  box-shadow: none !important;
  color: var(--innvilo-text-secondary) !important;
  display: inline-flex;
  height: auto;
  justify-content: center;
  margin: 0;
  min-height: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

body .cashreg-page .cashreg-pager__size-editor.dxbl-text-edit .dxbl-btn .dxbl-image {
  height: 0.75rem;
  width: 0.75rem;
}

body .cashreg-page .cashreg-pager__size-editor.dxbl-text-edit::after,
body .cashreg-page .cashreg-search-editor.dxbl-text-edit::after,
body .cashreg-page .cashreg-mobile-search.dxbl-text-edit::after {
  display: none;
}

body .cashreg-page .cashreg-pager__button.dxbl-btn {
  align-items: center;
  border-radius: var(--innvilo-radius-md);
  display: inline-flex;
  flex: 0 0 2.25rem;
  height: 2.25rem;
  justify-content: center;
  min-height: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .cashreg-page .cashreg-pager__button.dxbl-btn .dxbl-image {
  margin: 0;
}

body .cashreg-page .cashreg-search-editor.dxbl-text-edit .dxbl-btn-icon .dxbl-image,
body .cashreg-page .cashreg-mobile-search.dxbl-text-edit .dxbl-btn-icon .dxbl-image {
  height: 1.125rem;
  width: 1.125rem;
}

body .cashreg-page .cashreg-mobile-create.dxbl-btn,
body .cashreg-page .cashreg-mobile-refresh.dxbl-btn {
  border-radius: var(--innvilo-radius-xs);
  height: 2.75rem;
  min-height: 2.75rem;
  width: 2.75rem;
}

body .cashreg-page .cashreg-mobile-more.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

body .cashreg-page .cashreg-mobile-filter.dxbl-btn {
  background: var(--innvilo-surface-card) !important;
  border-color: var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-sizing: border-box;
  flex: 0 0 auto;
  gap: var(--innvilo-space-3);
  height: 2.75rem;
  min-height: 2.75rem;
  padding-inline: var(--innvilo-space-5);
  white-space: nowrap;
}

/* Mobile filter overlay: DevExpress popup root as a full-screen sheet. */
body .cashreg-mobile-overlay.dxbl-popup {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none;
  height: 100dvh !important;
  inset: 0 !important;
  margin: 0 !important;
  max-height: 100dvh !important;
  max-width: 100vw !important;
  position: fixed !important;
  transform: none !important;
  width: 100vw !important;
}

body .cashreg-mobile-overlay.dxbl-popup > .dxbl-modal-content,
body .cashreg-mobile-overlay.dxbl-popup .dxbl-popup-body {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  height: 100% !important;
  max-height: 100% !important;
  max-width: 100% !important;
  overflow: hidden;
  padding: 0 !important;
  width: 100% !important;
}

body .cashreg-mobile-overlay .cashreg-overlay {
  height: 100%;
}

/* Sections inside the overlay use the full height: the option list grows, actions stay at the bottom. */
body .cashreg-mobile-overlay .inquiry-filter-form {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: var(--innvilo-space-6);
}

body .cashreg-mobile-overlay .inquiry-filter-form__listbox {
  flex: 1 1 auto;
  max-height: none;
  min-height: 10rem;
}

body .cashreg-mobile-overlay .inquiry-filter-form__actions {
  margin-top: auto;
}

body .cashreg-mobile-overlay .inquiry-filter-form .dx-app-button.dxbl-btn,
body .cashreg-mobile-overlay .cashreg-overlay__done.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

body .cashreg-page .cashreg-batch .dx-app-button.dxbl-btn {
  min-height: 2.5rem;
}

body .cashreg-page .cashreg-mobile .cashreg-batch .dx-app-button.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

body .cashreg-page .cashreg-grid.dxbl-grid .dxbl-grid-selection-cell,
body .cashreg-page .cashreg-grid.dxbl-grid .dxbl-grid-selection-header-cell {
  width: 3rem;
}

body .pms-popup-center--wide:has(.cashreg-issue) .pms-popup-center__body-shell {
  overflow: auto;
}

body .pms-popup-center--wide:has(.cashreg-issue) .pms-popup-center__body {
  padding: var(--innvilo-space-5);
}

body .pms-popup-center .cashreg-issue .cashreg-form-input.dxbl-text-edit,
body .pms-popup-center .cashreg-issue .cashreg-form-input .dxbl-text-edit {
  min-height: 2.75rem;
}

body .pms-popup-center--fullscreen:has(.cashreg-issue) .pms-popup-center__body {
  padding: var(--innvilo-space-4);
}

/* Kassen-Statusmarken (Verbucht, Abgeglichen, Offen, Abweichung, Manuelle Prüfung) sind in Grid,
   Karten und Popups identisch und deshalb global. Farbe trägt Bedeutung, kein Schmuck. */
body .cashreg-status {
  align-items: center;
  background: var(--innvilo-surface-app);
  border: 1px solid var(--innvilo-border-default);
  border-radius: 999px;
  color: var(--innvilo-text-secondary);
  display: inline-flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  gap: 0.35rem;
  line-height: 1.2;
  padding: 0.3rem 0.65rem;
  white-space: nowrap;
}

body .cashreg-status.is-booked,
body .cashreg-status.is-reconciled {
  background: var(--color-success-surface);
  border-color: var(--color-success-border);
  color: var(--color-success);
}

body .cashreg-status.is-open {
  background: var(--innvilo-surface-app);
  border-color: var(--innvilo-border-strong);
  color: var(--color-navy-deep);
}

body .cashreg-status.is-discrepancy {
  background: var(--color-error-surface);
  border-color: var(--color-error-border);
  color: var(--color-error);
}

body .cashreg-status.is-review {
  background: var(--color-warning-soft);
  border-color: var(--color-border-strong);
  color: var(--color-navy-deep);
}

body .pms-popup-center--wide:has(.cashreg-issue) .pms-popup-center__body-shell,
body .pms-popup-center--medium:has(.cashreg-confirm) .pms-popup-center__body-shell {
  overflow: auto;
}

body .pms-popup-center--wide:has(.cashreg-issue) .pms-popup-center__body,
body .pms-popup-center--medium:has(.cashreg-confirm) .pms-popup-center__body {
  padding: var(--innvilo-space-5);
}

body .pms-popup-center--fullscreen:has(.cashreg-issue) .pms-popup-center__body,
body .pms-popup-center--fullscreen:has(.cashreg-confirm) .pms-popup-center__body {
  padding: var(--innvilo-space-4);
}

body .pms-popup-center .cashreg-issue__check.dxbl-checkbox {
  min-height: 2.75rem;
}

/* Kassen-Hauptaktionen sind Touch-Ziele: 44px wie die Zeilenaktionen auf dem Handy. */
body .cashreg-page .cashreg-head__actions .dx-app-button.dxbl-btn,
body .cashreg-page .cashreg-sync__button.dxbl-btn,
body .cashreg-page .cashreg-report__actions .dx-app-button.dxbl-btn {
  min-height: 2.75rem;
}

/* Front Office / Servicefälle: DevExpress roots and popup-hosted shared controls. The feature keeps
   its ordinary layout rules in the colocated isolated stylesheets. Every hook below targets a
   DevExpress root (.dxbl-*) or the shared filter center, which do not receive the scoped attribute. */
body .servicecase-page .dx-app-button.dxbl-btn,
body .servicecase-page .dxbl-text-edit,
body .servicecase-page .dxbl-combobox,
body .servicecase-page .servicecase-grid.dxbl-grid {
  border-radius: var(--innvilo-radius-xs);
}

body .servicecase-page .servicecase-head .dx-app-button.dxbl-btn,
body .servicecase-page .servicecase-toolbar .dx-app-button.dxbl-btn,
body .servicecase-page .servicecase-state .dx-app-button.dxbl-btn {
  min-height: 2.5rem;
  white-space: nowrap;
}

/* Toolbar and pager controls carry the larger control radius. */
body .servicecase-page .servicecase-toolbar .dxbl-text-edit,
body .servicecase-page .servicecase-toolbar .dxbl-combobox,
body .servicecase-page .servicecase-toolbar .dx-app-button.dxbl-btn,
body .servicecase-page .servicecase-mobile-tools .dxbl-text-edit,
body .servicecase-page .servicecase-mobile-filter.dxbl-btn {
  border-radius: var(--innvilo-radius-md);
}

body .servicecase-page .servicecase-toolbar .dxbl-text-edit,
body .servicecase-page .servicecase-toolbar .dxbl-combobox {
  min-height: 2.5rem;
}

/* The search field takes the button height as its measure (40px desktop, 44px mobile). */
body .servicecase-page .servicecase-search-editor.dxbl-text-edit {
  height: 2.5rem;
  max-height: 2.5rem;
  min-height: 2.5rem;
}

body .servicecase-page .servicecase-mobile-search.dxbl-text-edit {
  border: 0 !important;
  box-shadow: inset 0 0 0 1px var(--innvilo-border-default);
  flex: 1 1 auto;
  height: 2.75rem;
  max-height: 2.75rem;
  min-height: 2.75rem;
}

body .servicecase-page .servicecase-mobile-search.dxbl-text-edit:focus-within {
  box-shadow: inset 0 0 0 1px var(--color-primary), 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .servicecase-page .servicecase-search-editor.dxbl-text-edit,
body .servicecase-page .servicecase-mobile-search.dxbl-text-edit {
  align-items: center;
  border-color: var(--innvilo-border-default);
  box-shadow: none;
  box-sizing: border-box;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  min-width: 0;
  width: 100%;
}

body .servicecase-page .servicecase-search-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .servicecase-page .servicecase-search-editor.dxbl-text-edit input,
body .servicecase-page .servicecase-mobile-search.dxbl-text-edit input {
  align-self: center;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  padding: 0 var(--innvilo-space-4) 0 var(--innvilo-space-3);
}

body .servicecase-page .servicecase-search-editor.dxbl-text-edit input::placeholder,
body .servicecase-page .servicecase-mobile-search.dxbl-text-edit input::placeholder {
  color: var(--innvilo-text-muted);
  line-height: 1.2;
  opacity: 1;
}

body .servicecase-page .servicecase-search-editor.dxbl-text-edit .dxbl-btn,
body .servicecase-page .servicecase-mobile-search.dxbl-text-edit .dxbl-btn {
  height: 100%;
  min-height: 0;
}

body .servicecase-page .servicecase-mobile-search.dxbl-text-edit .dxbl-btn {
  min-width: 2.75rem;
  width: 2.75rem;
}

body .servicecase-page .inquiry-filter-dropdown__button.is-active.dxbl-btn,
body .servicecase-page .servicecase-mobile-filter.is-active.dxbl-btn {
  background: var(--innvilo-color-primary-soft) !important;
  border-color: var(--color-primary) !important;
  color: var(--color-primary) !important;
}

body .servicecase-page .inquiry-filter-dropdown__button.dxbl-btn {
  gap: var(--innvilo-space-3);
  min-height: 2.5rem;
  padding-inline: var(--innvilo-space-4);
}

/* Grid: quiet header, comfortable rows, group rows as section labels, urgency stripe on the left. */
body .servicecase-page .servicecase-grid.dxbl-grid {
  border: 0;
  max-width: 100%;
  width: 100%;
}

body .servicecase-page .servicecase-grid.dxbl-grid .dxbl-grid-header-row > th {
  background: var(--innvilo-surface-app);
  border-bottom: 1px solid var(--innvilo-border-default);
  box-sizing: border-box;
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  height: 2.5rem;
  letter-spacing: 0;
  line-height: 1.2;
  padding: 0 var(--innvilo-space-6);
  text-transform: none;
  vertical-align: middle;
}

body .servicecase-page .servicecase-grid.dxbl-grid .dxbl-grid-data-row > td {
  border-color: var(--innvilo-border-default);
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
  vertical-align: middle;
}

body .servicecase-page .servicecase-grid.dxbl-grid .dxbl-grid-data-row > td:first-child {
  border-left: 3px solid transparent;
}

body .servicecase-page .servicecase-grid.dxbl-grid .dxbl-grid-data-row:hover > td {
  background: var(--innvilo-grid-hover-surface);
}

body .servicecase-page .servicecase-grid.dxbl-grid .servicecase-grid-row--urgent > td:first-child {
  border-left-color: var(--color-warning) !important;
}

body .servicecase-page .servicecase-grid.dxbl-grid .servicecase-grid-row--neutral > td {
  color: var(--innvilo-text-secondary);
}

/* Own pager: 40px page-size combobox and 36px square navigation buttons. */
body .servicecase-page .servicecase-pager__size-editor.dxbl-text-edit {
  align-items: center;
  border: 1px solid var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-shadow: none !important;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  height: 2.25rem;
  max-height: 2.25rem;
  min-height: 2.25rem;
  min-width: 4.5rem;
  width: 4.5rem;
}

body .servicecase-pager__size-list.dxbl-dropdown-dialog,
body .servicecase-pager__size-list .dxbl-dropdown-body {
  border-radius: var(--innvilo-radius-md);
  min-width: 4.5rem;
}

body .servicecase-pager__size-list .dxbl-list-box-item,
body .servicecase-pager__size-list [role=option] {
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-3) var(--innvilo-space-5);
}

body .servicecase-pager__size-list [aria-selected=true],
body .servicecase-pager__size-list .dxbl-list-box-item.dxbl-active {
  background: var(--innvilo-color-primary-soft) !important;
  color: var(--color-primary) !important;
}

body .servicecase-page .servicecase-pager__size-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring) !important;
}

body .servicecase-page .servicecase-pager__size-editor.dxbl-text-edit input {
  align-self: center;
  flex: 1 1 auto;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  min-width: 0;
  overflow: visible;
  padding: 0 0 0 var(--innvilo-space-4);
  text-align: left;
  text-overflow: clip;
  width: auto;
}

body .servicecase-page .servicecase-pager__size-editor.dxbl-text-edit .dxbl-btn-group {
  align-items: stretch;
  background: transparent !important;
  border: 0 !important;
  display: inline-flex;
  flex: 0 0 1.5rem;
  margin: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

body .servicecase-page .servicecase-pager__size-editor.dxbl-text-edit .dxbl-btn {
  align-items: center;
  align-self: stretch;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0;
  box-shadow: none !important;
  color: var(--innvilo-text-secondary) !important;
  display: inline-flex;
  height: auto;
  justify-content: center;
  margin: 0;
  min-height: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

body .servicecase-page .servicecase-pager__size-editor.dxbl-text-edit .dxbl-btn .dxbl-image {
  height: 0.75rem;
  width: 0.75rem;
}

body .servicecase-page .servicecase-pager__size-editor.dxbl-text-edit::after,
body .servicecase-page .servicecase-search-editor.dxbl-text-edit::after,
body .servicecase-page .servicecase-mobile-search.dxbl-text-edit::after {
  display: none;
}

body .servicecase-page .servicecase-pager__button.dxbl-btn {
  align-items: center;
  border-radius: var(--innvilo-radius-md);
  display: inline-flex;
  flex: 0 0 2.25rem;
  height: 2.25rem;
  justify-content: center;
  min-height: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .servicecase-page .servicecase-pager__button.dxbl-btn .dxbl-image {
  margin: 0;
}

body .servicecase-page .servicecase-mobile-refresh.dxbl-btn {
  border-radius: var(--innvilo-radius-xs);
  height: 2.75rem;
  min-height: 2.75rem;
  width: 2.75rem;
}

body .servicecase-page .servicecase-mobile-filter.dxbl-btn {
  background: var(--innvilo-surface-card) !important;
  border-color: var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-sizing: border-box;
  flex: 0 0 auto;
  gap: var(--innvilo-space-3);
  height: 2.75rem;
  min-height: 2.75rem;
  padding-inline: var(--innvilo-space-5);
  white-space: nowrap;
}

/* Mobile filter overlay: DevExpress popup root as a full-screen sheet. */
body .servicecase-mobile-overlay.dxbl-popup {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none;
  height: 100dvh !important;
  inset: 0 !important;
  margin: 0 !important;
  max-height: 100dvh !important;
  max-width: 100vw !important;
  position: fixed !important;
  transform: none !important;
  width: 100vw !important;
}

body .servicecase-mobile-overlay.dxbl-popup > .dxbl-modal-content,
body .servicecase-mobile-overlay.dxbl-popup .dxbl-popup-body {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  height: 100% !important;
  max-height: 100% !important;
  max-width: 100% !important;
  overflow: hidden;
  padding: 0 !important;
  width: 100% !important;
}

body .servicecase-mobile-overlay .servicecase-overlay {
  height: 100%;
}

/* Sections inside the overlay use the full height: the option list grows, actions stay at the bottom. */
body .servicecase-mobile-overlay .inquiry-filter-form {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: var(--innvilo-space-6);
}

body .servicecase-mobile-overlay .inquiry-filter-form__listbox {
  flex: 1 1 auto;
  max-height: none;
  min-height: 10rem;
}

body .servicecase-mobile-overlay .inquiry-filter-form__actions {
  margin-top: auto;
}

body .servicecase-mobile-overlay .inquiry-filter-form .dx-app-button.dxbl-btn,
body .servicecase-mobile-overlay .servicecase-overlay__done.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

/* Zeilenaktion "Öffnen": ruhiger Icon-Button im Grid (36px), Textbutton in den Karten (44px). */
body .servicecase-page .servicecase-grid .servicecase-row-open.dxbl-btn {
  align-items: center;
  background: var(--innvilo-surface-muted) !important;
  border-color: transparent !important;
  border-radius: var(--innvilo-radius-xs);
  box-sizing: border-box;
  color: var(--innvilo-text-primary) !important;
  display: inline-flex;
  flex: 0 0 2.25rem;
  height: 2.25rem;
  justify-content: center;
  line-height: 1;
  min-height: 2.25rem;
  min-width: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .servicecase-page .servicecase-grid .servicecase-row-open.dxbl-btn .dxbl-image {
  margin: 0;
}

body .servicecase-page .servicecase-grid .servicecase-row-open.dxbl-btn:hover,
body .servicecase-page .servicecase-grid .servicecase-row-open.dxbl-btn:focus-visible {
  background: var(--innvilo-border-default) !important;
  color: var(--innvilo-text-primary) !important;
}

body .servicecase-page .servicecase-mobile-card .servicecase-row-open.dxbl-btn,
body .servicecase-page .servicecase-mobile-more.dxbl-btn {
  min-height: 2.75rem;
}

body .servicecase-page .servicecase-mobile-more.dxbl-btn {
  width: 100%;
}

body .servicecase-page .servicecase-head__actions .dx-app-button.dxbl-btn {
  min-height: 2.75rem;
}

/* Status- und Prioritätsmarken sind in Grid, Karten und Popups identisch und deshalb global.
   Farbe trägt Bedeutung (Warnung, Erfolg), kein Schmuck. */
body .servicecase-status,
body .servicecase-priority {
  align-items: center;
  background: var(--innvilo-surface-app);
  border: 1px solid var(--innvilo-border-default);
  border-radius: 999px;
  color: var(--innvilo-text-secondary);
  display: inline-flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  gap: 0.35rem;
  line-height: 1.2;
  padding: 0.3rem 0.65rem;
  white-space: nowrap;
}

body .servicecase-status.is-new,
body .servicecase-status.is-required {
  border-color: var(--innvilo-border-strong);
  color: var(--color-navy-deep);
}

body .servicecase-status.is-assigned,
body .servicecase-status.is-progress {
  background: var(--innvilo-color-primary-soft);
  border-color: var(--color-primary-focus-ring);
  color: var(--color-primary);
}

body .servicecase-status.is-resolved {
  background: var(--color-success-surface);
  border-color: var(--color-success-border);
  color: var(--color-success);
}

body .servicecase-priority.is-critical {
  background: var(--color-error-surface);
  border-color: var(--color-error-border);
  color: var(--color-error);
}

body .servicecase-priority.is-high {
  background: var(--color-warning-soft);
  border-color: var(--color-border-strong);
  color: var(--color-warning-text);
}

body .servicecase-priority.is-low {
  color: var(--innvilo-text-muted);
}

/* Popups (Detail, Aktion): Inhalte sitzen im PopupCenter außerhalb des Seitenbaums. */
body .pms-popup-center--wide:has(.servicecase-detail) .pms-popup-center__body-shell,
body .pms-popup-center--medium:has(.servicecase-form) .pms-popup-center__body-shell {
  overflow: auto;
}

body .pms-popup-center--wide:has(.servicecase-detail) .pms-popup-center__body,
body .pms-popup-center--medium:has(.servicecase-form) .pms-popup-center__body {
  padding: var(--innvilo-space-5);
}

body .pms-popup-center--fullscreen:has(.servicecase-detail) .pms-popup-center__body,
body .pms-popup-center--fullscreen:has(.servicecase-form) .pms-popup-center__body {
  padding: var(--innvilo-space-4);
}

body .pms-popup-center .servicecase-detail__actions .dx-app-button.dxbl-btn {
  min-height: 2.75rem;
}

body .servicecase-form__editor.dxbl-text-edit,
body .servicecase-form__editor.dxbl-combobox,
body .servicecase-form__editor.dxbl-memo {
  border-radius: var(--innvilo-radius-xs);
  width: 100%;
}

body .servicecase-form__list.dxbl-dropdown-dialog,
body .servicecase-form__list .dxbl-dropdown-body {
  border-radius: var(--innvilo-radius-xs);
}

body .servicecase-form__list .dxbl-list-box-item {
  padding: var(--innvilo-space-3) var(--innvilo-space-5);
}

/* Barkasse: Popups (Zählen, Differenz, Beleg, Bewegung, Abschluss). Die Inhalte sitzen im PopupCenter
   außerhalb des Seitenbaums, deshalb global. Ein Radius, keine Schatten, auf dem Handy Vollbild ohne Radius. */
body .dxbl-popup.pms-popup-center--fullscreen,
body .pms-popup-center--fullscreen .dxbl-popup-root,
body .pms-popup-center--fullscreen .dxbl-popup-content,
body .pms-popup-center--fullscreen .dxbl-modal-content,
body .pms-popup-center--fullscreen .modal-content,
body .pms-popup-center--fullscreen .pms-popup-center__body-shell {
  border-radius: 0 !important;
}

.cashreg-count,
.cashreg-form,
.cashreg-difference {
  display: grid;
  gap: var(--innvilo-space-5);
  min-width: 0;
}

.cashreg-count__intro,
.cashreg-form__intro {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-body);
  line-height: 1.5;
  margin: 0;
}

.cashreg-count__sheet {
  display: grid;
  gap: var(--innvilo-space-5);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  min-width: 0;
}

.cashreg-count__group {
  background: var(--innvilo-surface-app);
  border-radius: var(--innvilo-radius-xs);
  display: grid;
  gap: var(--innvilo-space-3);
  min-width: 0;
  padding: var(--innvilo-space-4);
}

.cashreg-count__group header {
  align-items: center;
  display: flex;
  gap: var(--innvilo-space-2);
}

.cashreg-count__group header i {
  color: var(--color-primary);
}

.cashreg-count__group header strong {
  color: var(--color-navy-deep);
  font-family: "Lato-Bold", Arial, sans-serif;
}

.cashreg-count__group header span {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  margin-left: auto;
}

.cashreg-count__group ul {
  display: grid;
  gap: var(--innvilo-space-2);
  list-style: none;
  margin: 0;
  padding: 0;
}

.cashreg-count__row {
  align-items: center;
  border-bottom: 1px solid var(--innvilo-border-soft);
  display: grid;
  gap: var(--innvilo-space-3);
  grid-template-columns: minmax(0, 1fr) 7rem minmax(0, 6.5rem);
  padding-bottom: var(--innvilo-space-2);
}

.cashreg-count__row:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.cashreg-count__label {
  color: var(--color-navy-deep);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
}

.cashreg-count__line {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
  font-variant-numeric: tabular-nums;
  text-align: right;
  white-space: nowrap;
}

body .cashreg-count__quantity.dxbl-text-edit input {
  font-variant-numeric: tabular-nums;
  text-align: right;
}

.cashreg-count__comparison {
  background: var(--innvilo-surface-app);
  border-left: 3px solid var(--innvilo-border-strong);
  border-radius: var(--innvilo-radius-xs);
  display: grid;
  gap: var(--innvilo-space-3);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding: var(--innvilo-space-4);
}

.cashreg-count__comparison > div {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.cashreg-count__comparison span {
  color: var(--innvilo-text-secondary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
}

.cashreg-count__comparison strong {
  color: var(--color-navy-deep);
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: 1.15rem;
  font-variant-numeric: tabular-nums;
}

.cashreg-count__comparison p {
  align-items: center;
  color: var(--innvilo-text-primary);
  display: flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
  gap: var(--innvilo-space-2);
  grid-column: 1/-1;
  margin: 0;
}

.cashreg-count__comparison.is-balanced {
  border-left-color: var(--color-success);
}

.cashreg-count__comparison.is-balanced p,
.cashreg-count__comparison.is-balanced > div:last-of-type strong {
  color: var(--color-success);
}

.cashreg-count__comparison.is-short,
.cashreg-count__comparison.is-over {
  border-left-color: var(--color-warning-text);
}

.cashreg-count__comparison.is-short p,
.cashreg-count__comparison.is-over p,
.cashreg-count__comparison.is-short > div:last-of-type strong,
.cashreg-count__comparison.is-over > div:last-of-type strong {
  color: var(--color-warning-text);
}

.cashreg-count__result {
  background: var(--innvilo-surface-app);
  border-left: 3px solid var(--color-success);
  border-radius: var(--innvilo-radius-xs);
  display: grid;
  gap: var(--innvilo-space-4);
  padding: var(--innvilo-space-5);
}

.cashreg-count__result.is-difference {
  border-left-color: var(--color-warning-text);
}

.cashreg-count__result-head {
  align-items: flex-start;
  display: flex;
  gap: var(--innvilo-space-3);
}

.cashreg-count__result-head > i {
  color: var(--color-success);
  font-size: 1.5rem;
}

.cashreg-count__result.is-difference .cashreg-count__result-head > i {
  color: var(--color-warning-text);
}

.cashreg-count__result-head h3 {
  color: var(--color-navy-deep);
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: 1.15rem;
  margin: 0;
}

.cashreg-count__result-head p {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-body);
  line-height: 1.45;
  margin: var(--innvilo-space-1) 0 0;
}

.cashreg-count__facts {
  display: grid;
  gap: var(--innvilo-space-3);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
}

.cashreg-count__facts div {
  background: var(--innvilo-surface-main);
  border-radius: var(--innvilo-radius-xs);
  display: grid;
  gap: 2px;
  padding: var(--innvilo-space-3) var(--innvilo-space-4);
}

.cashreg-count__facts div.is-attention {
  border-left: 3px solid var(--color-warning-text);
}

.cashreg-count__facts dt {
  color: var(--innvilo-text-secondary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
}

.cashreg-count__facts dd {
  color: var(--color-navy-deep);
  font-family: "Lato-Bold", Arial, sans-serif;
  font-variant-numeric: tabular-nums;
  margin: 0;
}

.cashreg-count__note,
.cashreg-form__hint {
  align-items: flex-start;
  color: var(--innvilo-text-secondary);
  display: flex;
  font-size: var(--innvilo-font-size-caption);
  gap: var(--innvilo-space-2);
  line-height: 1.45;
  margin: 0;
}

.cashreg-count__note i,
.cashreg-form__hint i {
  color: var(--color-primary);
  margin-top: 2px;
}

.cashreg-count__note.is-attention,
.cashreg-form__hint.is-attention,
.cashreg-count__note.is-attention i,
.cashreg-form__hint.is-attention i {
  color: var(--color-warning-text);
}

.cashreg-form__error {
  align-items: flex-start;
  background: var(--color-error-surface);
  border-left: 3px solid var(--color-error);
  border-radius: var(--innvilo-radius-xs);
  color: var(--color-error);
  display: flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
  gap: var(--innvilo-space-2);
  margin: 0;
  padding: var(--innvilo-space-3);
}

.cashreg-form__grid {
  display: grid;
  gap: var(--innvilo-space-4);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  min-width: 0;
}

.cashreg-form__field {
  display: grid;
  gap: var(--innvilo-space-2);
  min-width: 0;
}

.cashreg-form__field--wide {
  grid-column: 1/-1;
}

.cashreg-form__field > span,
.cashreg-form__label {
  color: var(--innvilo-text-secondary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
}

body .cashreg-form__editor.dxbl-text-edit,
body .cashreg-form__editor.dxbl-combobox,
body .cashreg-form__editor.dxbl-date-edit,
body .cashreg-form__editor.dxbl-memo {
  border-radius: var(--innvilo-radius-xs);
  width: 100%;
}

.cashreg-form__methods,
.cashreg-difference__choices {
  display: grid;
  gap: var(--innvilo-space-3);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cashreg-difference__choices {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cashreg-form__method,
.cashreg-difference__choice {
  align-items: flex-start;
  background: var(--innvilo-surface-app);
  border: 1px solid transparent;
  border-radius: var(--innvilo-radius-xs);
  color: var(--innvilo-text-primary);
  cursor: pointer;
  display: flex;
  font: inherit;
  gap: var(--innvilo-space-3);
  min-height: 2.75rem;
  padding: var(--innvilo-space-3) var(--innvilo-space-4);
  text-align: left;
  transition: background-color 140ms ease-out, border-color 140ms ease-out;
}

.cashreg-form__method:hover,
.cashreg-difference__choice:hover {
  background: var(--innvilo-surface-muted);
}

.cashreg-form__method.is-selected,
.cashreg-difference__choice.is-selected {
  background: var(--innvilo-surface-main);
  border-color: var(--color-primary);
}

.cashreg-form__method:focus-visible,
.cashreg-difference__choice:focus-visible {
  outline: 2px solid var(--innvilo-border-focus);
  outline-offset: 2px;
}

.cashreg-form__method > i,
.cashreg-difference__choice > i {
  color: var(--color-primary);
  margin-top: 3px;
}

.cashreg-form__method > span,
.cashreg-difference__choice > span {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.cashreg-form__method strong,
.cashreg-difference__choice strong {
  color: var(--color-navy-deep);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
}

.cashreg-form__method small,
.cashreg-difference__choice small {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  line-height: 1.4;
}

.cashreg-form__file {
  display: grid;
  gap: var(--innvilo-space-2);
}

.cashreg-form__file input {
  color: var(--innvilo-text-primary);
  font-size: var(--innvilo-font-size-body);
}

.cashreg-form__file small {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
}

.cashreg-difference__summary {
  background: var(--innvilo-surface-app);
  border-left: 3px solid var(--color-warning-text);
  border-radius: var(--innvilo-radius-xs);
  display: grid;
  gap: 2px;
  padding: var(--innvilo-space-4);
}

.cashreg-difference__summary strong {
  color: var(--color-warning-text);
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: 1.15rem;
}

.cashreg-difference__summary span {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
}

.cashreg-mobile-actions {
  display: grid;
  gap: var(--innvilo-space-3);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

body .cashreg-mobile-actions .dx-app-button.dxbl-btn,
body .cashreg-protocol__next .dx-app-button.dxbl-btn {
  min-height: 2.75rem;
}

.cashreg-kpi__value--text {
  font-size: 1.35rem;
}

@media (max-width: 47.99rem) {
  .cashreg-count__sheet,
  .cashreg-form__grid,
  .cashreg-form__methods,
  .cashreg-difference__choices,
  .cashreg-count__facts {
    grid-template-columns: minmax(0, 1fr);
  }
  .cashreg-count__comparison {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .cashreg-count__row {
    grid-template-columns: minmax(0, 1fr) 6rem minmax(0, 6rem);
  }
  .cashreg-mobile-actions {
    grid-template-columns: minmax(0, 1fr);
  }
}
/* Front Office / Leistungen: DevExpress roots and popup-hosted shared controls. The feature keeps
   its ordinary layout rules in the colocated isolated stylesheets. Every hook below targets a
   DevExpress root (.dxbl-*) or the shared filter center, which do not receive the scoped attribute. */
body .hotelservice-page .dx-app-button.dxbl-btn,
body .hotelservice-page .dxbl-text-edit,
body .hotelservice-page .dxbl-combobox,
body .hotelservice-page .hotelservice-grid.dxbl-grid {
  border-radius: var(--innvilo-radius-xs);
}

body .hotelservice-page .hotelservice-head .dx-app-button.dxbl-btn,
body .hotelservice-page .hotelservice-toolbar .dx-app-button.dxbl-btn,
body .hotelservice-page .hotelservice-state .dx-app-button.dxbl-btn {
  min-height: 2.5rem;
  white-space: nowrap;
}

/* Toolbar and pager controls carry the larger control radius. */
body .hotelservice-page .hotelservice-toolbar .dxbl-text-edit,
body .hotelservice-page .hotelservice-toolbar .dxbl-combobox,
body .hotelservice-page .hotelservice-toolbar .dx-app-button.dxbl-btn,
body .hotelservice-page .hotelservice-mobile-tools .dxbl-text-edit,
body .hotelservice-page .hotelservice-mobile-filter.dxbl-btn {
  border-radius: var(--innvilo-radius-md);
}

body .hotelservice-page .hotelservice-toolbar .dxbl-text-edit,
body .hotelservice-page .hotelservice-toolbar .dxbl-combobox {
  min-height: 2.5rem;
}

/* The search field takes the button height as its measure (40px desktop, 44px mobile). */
body .hotelservice-page .hotelservice-search-editor.dxbl-text-edit {
  height: 2.5rem;
  max-height: 2.5rem;
  min-height: 2.5rem;
}

body .hotelservice-page .hotelservice-mobile-search.dxbl-text-edit {
  border: 0 !important;
  box-shadow: inset 0 0 0 1px var(--innvilo-border-default);
  flex: 1 1 auto;
  height: 2.75rem;
  max-height: 2.75rem;
  min-height: 2.75rem;
}

body .hotelservice-page .hotelservice-mobile-search.dxbl-text-edit:focus-within {
  box-shadow: inset 0 0 0 1px var(--color-primary), 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .hotelservice-page .hotelservice-search-editor.dxbl-text-edit,
body .hotelservice-page .hotelservice-mobile-search.dxbl-text-edit {
  align-items: center;
  border-color: var(--innvilo-border-default);
  box-shadow: none;
  box-sizing: border-box;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  min-width: 0;
  width: 100%;
}

body .hotelservice-page .hotelservice-search-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .hotelservice-page .hotelservice-search-editor.dxbl-text-edit input,
body .hotelservice-page .hotelservice-mobile-search.dxbl-text-edit input {
  align-self: center;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  padding: 0 var(--innvilo-space-4) 0 var(--innvilo-space-3);
}

body .hotelservice-page .hotelservice-search-editor.dxbl-text-edit input::placeholder,
body .hotelservice-page .hotelservice-mobile-search.dxbl-text-edit input::placeholder {
  color: var(--innvilo-text-muted);
  line-height: 1.2;
  opacity: 1;
}

body .hotelservice-page .hotelservice-search-editor.dxbl-text-edit .dxbl-btn,
body .hotelservice-page .hotelservice-mobile-search.dxbl-text-edit .dxbl-btn {
  height: 100%;
  min-height: 0;
}

body .hotelservice-page .hotelservice-mobile-search.dxbl-text-edit .dxbl-btn {
  min-width: 2.75rem;
  width: 2.75rem;
}

body .hotelservice-page .inquiry-filter-dropdown__button.is-active.dxbl-btn,
body .hotelservice-page .hotelservice-mobile-filter.is-active.dxbl-btn {
  background: var(--innvilo-color-primary-soft) !important;
  border-color: var(--color-primary) !important;
  color: var(--color-primary) !important;
}

body .hotelservice-page .inquiry-filter-dropdown__button.dxbl-btn {
  gap: var(--innvilo-space-3);
  min-height: 2.5rem;
  padding-inline: var(--innvilo-space-4);
}

/* Grid: quiet header, comfortable rows, group rows as section labels, inactive rows in the secondary text colour. */
body .hotelservice-page .hotelservice-grid.dxbl-grid {
  border: 0;
  max-width: 100%;
  width: 100%;
}

body .hotelservice-page .hotelservice-grid.dxbl-grid .dxbl-grid-header-row > th {
  background: var(--innvilo-surface-app);
  border-bottom: 1px solid var(--innvilo-border-default);
  box-sizing: border-box;
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  height: 2.5rem;
  letter-spacing: 0;
  line-height: 1.2;
  padding: 0 var(--innvilo-space-6);
  text-transform: none;
  vertical-align: middle;
}

body .hotelservice-page .hotelservice-grid.dxbl-grid .dxbl-grid-data-row > td {
  border-color: var(--innvilo-border-default);
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
  vertical-align: middle;
}

body .hotelservice-page .hotelservice-grid.dxbl-grid .dxbl-grid-data-row > td:first-child {
  border-left: 3px solid transparent;
}

body .hotelservice-page .hotelservice-grid.dxbl-grid .dxbl-grid-data-row:hover > td {
  background: var(--innvilo-grid-hover-surface);
}

/* Own pager: 40px page-size combobox and 36px square navigation buttons. */
body .hotelservice-page .hotelservice-pager__size-editor.dxbl-text-edit {
  align-items: center;
  border: 1px solid var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-shadow: none !important;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  height: 2.25rem;
  max-height: 2.25rem;
  min-height: 2.25rem;
  min-width: 4.5rem;
  width: 4.5rem;
}

body .hotelservice-pager__size-list.dxbl-dropdown-dialog,
body .hotelservice-pager__size-list .dxbl-dropdown-body {
  border-radius: var(--innvilo-radius-md);
  min-width: 4.5rem;
}

body .hotelservice-pager__size-list .dxbl-list-box-item,
body .hotelservice-pager__size-list [role=option] {
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-3) var(--innvilo-space-5);
}

body .hotelservice-pager__size-list [aria-selected=true],
body .hotelservice-pager__size-list .dxbl-list-box-item.dxbl-active {
  background: var(--innvilo-color-primary-soft) !important;
  color: var(--color-primary) !important;
}

body .hotelservice-page .hotelservice-pager__size-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring) !important;
}

body .hotelservice-page .hotelservice-pager__size-editor.dxbl-text-edit input {
  align-self: center;
  flex: 1 1 auto;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  min-width: 0;
  overflow: visible;
  padding: 0 0 0 var(--innvilo-space-4);
  text-align: left;
  text-overflow: clip;
  width: auto;
}

body .hotelservice-page .hotelservice-pager__size-editor.dxbl-text-edit .dxbl-btn-group {
  align-items: stretch;
  background: transparent !important;
  border: 0 !important;
  display: inline-flex;
  flex: 0 0 1.5rem;
  margin: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

body .hotelservice-page .hotelservice-pager__size-editor.dxbl-text-edit .dxbl-btn {
  align-items: center;
  align-self: stretch;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0;
  box-shadow: none !important;
  color: var(--innvilo-text-secondary) !important;
  display: inline-flex;
  height: auto;
  justify-content: center;
  margin: 0;
  min-height: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

body .hotelservice-page .hotelservice-pager__size-editor.dxbl-text-edit .dxbl-btn .dxbl-image {
  height: 0.75rem;
  width: 0.75rem;
}

body .hotelservice-page .hotelservice-pager__size-editor.dxbl-text-edit::after,
body .hotelservice-page .hotelservice-search-editor.dxbl-text-edit::after,
body .hotelservice-page .hotelservice-mobile-search.dxbl-text-edit::after {
  display: none;
}

body .hotelservice-page .hotelservice-pager__button.dxbl-btn {
  align-items: center;
  border-radius: var(--innvilo-radius-md);
  display: inline-flex;
  flex: 0 0 2.25rem;
  height: 2.25rem;
  justify-content: center;
  min-height: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .hotelservice-page .hotelservice-pager__button.dxbl-btn .dxbl-image {
  margin: 0;
}

body .hotelservice-page .hotelservice-mobile-refresh.dxbl-btn {
  border-radius: var(--innvilo-radius-xs);
  height: 2.75rem;
  min-height: 2.75rem;
  width: 2.75rem;
}

body .hotelservice-page .hotelservice-mobile-filter.dxbl-btn {
  background: var(--innvilo-surface-card) !important;
  border-color: var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-sizing: border-box;
  flex: 0 0 auto;
  gap: var(--innvilo-space-3);
  height: 2.75rem;
  min-height: 2.75rem;
  padding-inline: var(--innvilo-space-5);
  white-space: nowrap;
}

/* Mobile filter overlay: DevExpress popup root as a full-screen sheet. */
body .hotelservice-mobile-overlay.dxbl-popup {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none;
  height: 100dvh !important;
  inset: 0 !important;
  margin: 0 !important;
  max-height: 100dvh !important;
  max-width: 100vw !important;
  position: fixed !important;
  transform: none !important;
  width: 100vw !important;
}

body .hotelservice-mobile-overlay.dxbl-popup > .dxbl-modal-content,
body .hotelservice-mobile-overlay.dxbl-popup .dxbl-popup-body {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  height: 100% !important;
  max-height: 100% !important;
  max-width: 100% !important;
  overflow: hidden;
  padding: 0 !important;
  width: 100% !important;
}

body .hotelservice-mobile-overlay .hotelservice-overlay {
  height: 100%;
}

/* Sections inside the overlay use the full height: the option list grows, actions stay at the bottom. */
body .hotelservice-mobile-overlay .inquiry-filter-form {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: var(--innvilo-space-6);
}

body .hotelservice-mobile-overlay .inquiry-filter-form__listbox {
  flex: 1 1 auto;
  max-height: none;
  min-height: 10rem;
}

body .hotelservice-mobile-overlay .inquiry-filter-form__actions {
  margin-top: auto;
}

body .hotelservice-mobile-overlay .inquiry-filter-form .dx-app-button.dxbl-btn,
body .hotelservice-mobile-overlay .hotelservice-overlay__done.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

body .hotelservice-page .hotelservice-grid.dxbl-grid .hotelservice-grid-row--inactive > td {
  color: var(--innvilo-text-secondary);
}

/* Zeilenaktionen "Bearbeiten" und "Aktivieren/Deaktivieren": ruhige Icon-Buttons im Grid (36px),
   Textbuttons in den Karten (44px). */
body .hotelservice-page .hotelservice-grid .hotelservice-row-action.dxbl-btn {
  align-items: center;
  background: var(--innvilo-surface-muted) !important;
  border-color: transparent !important;
  border-radius: var(--innvilo-radius-xs);
  box-sizing: border-box;
  color: var(--innvilo-text-primary) !important;
  display: inline-flex;
  flex: 0 0 2.25rem;
  height: 2.25rem;
  justify-content: center;
  line-height: 1;
  min-height: 2.25rem;
  min-width: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .hotelservice-page .hotelservice-grid .hotelservice-row-action.dxbl-btn .dxbl-image {
  margin: 0;
}

body .hotelservice-page .hotelservice-grid .hotelservice-row-action.dxbl-btn:hover,
body .hotelservice-page .hotelservice-grid .hotelservice-row-action.dxbl-btn:focus-visible {
  background: var(--innvilo-border-default) !important;
  color: var(--innvilo-text-primary) !important;
}

body .hotelservice-page .hotelservice-mobile-card .hotelservice-row-action.dxbl-btn,
body .hotelservice-page .hotelservice-mobile-more.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

body .hotelservice-page .hotelservice-mobile-create.dxbl-btn {
  border-radius: var(--innvilo-radius-xs);
  height: 2.75rem;
  min-height: 2.75rem;
  width: 2.75rem;
}

body .hotelservice-page .hotelservice-head__actions .dx-app-button.dxbl-btn,
body .hotelservice-page .hotelservice-state__actions .dx-app-button.dxbl-btn,
body .hotelservice-page .hotelservice-mobile-state .dx-app-button.dxbl-btn {
  min-height: 2.75rem;
}

/* Statusmarken sind in Grid, Karten und Popups identisch und deshalb global.
   Farbe trägt Bedeutung (Erfolg für buchbar), kein Schmuck. */
body .hotelservice-status {
  align-items: center;
  background: var(--innvilo-surface-app);
  border: 1px solid var(--innvilo-border-default);
  border-radius: 999px;
  color: var(--innvilo-text-secondary);
  display: inline-flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  gap: 0.35rem;
  line-height: 1.2;
  padding: 0.3rem 0.65rem;
  white-space: nowrap;
}

body .hotelservice-status.is-active {
  background: var(--color-success-surface);
  border-color: var(--color-success-border);
  color: var(--color-success);
}

body .hotelservice-status.is-inactive {
  border-color: var(--innvilo-border-strong);
  color: var(--innvilo-text-muted);
}

/* Leistungen: Popups (Editor, Status). Die Inhalte sitzen im PopupCenter außerhalb des Seitenbaums,
   deshalb global. Ein Radius, keine Schatten, auf dem Handy Vollbild ohne Radius. */
body .pms-popup-center--medium:has(.hotelservice-form) .pms-popup-center__body-shell {
  overflow: auto;
}

body .pms-popup-center--medium:has(.hotelservice-form) .pms-popup-center__body {
  padding: var(--innvilo-space-5);
}

body .pms-popup-center--fullscreen:has(.hotelservice-form) .pms-popup-center__body {
  padding: var(--innvilo-space-4);
}

.hotelservice-form {
  display: grid;
  gap: var(--innvilo-space-5);
  min-width: 0;
}

.hotelservice-form__intro {
  color: var(--innvilo-text-secondary);
  display: grid;
  font-size: var(--innvilo-font-size-body);
  gap: var(--innvilo-space-1);
  line-height: 1.5;
  margin: 0;
}

.hotelservice-form__intro strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
}

.hotelservice-form__intro span {
  font-size: var(--innvilo-font-size-caption);
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.hotelservice-form__grid {
  display: grid;
  gap: var(--innvilo-space-4);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  min-width: 0;
}

.hotelservice-form__field {
  display: grid;
  gap: var(--innvilo-space-2);
  min-width: 0;
}

.hotelservice-form__field--wide {
  grid-column: 1/-1;
}

.hotelservice-form__field > span,
.hotelservice-form__field > label {
  color: var(--innvilo-text-secondary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
}

.hotelservice-form__field > small {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  line-height: 1.4;
}

body .hotelservice-form__editor.dxbl-text-edit,
body .hotelservice-form__editor.dxbl-combobox,
body .hotelservice-form__editor.dxbl-spin-edit,
body .hotelservice-form__editor.dxbl-memo {
  border-radius: var(--innvilo-radius-xs);
  width: 100%;
}

body .hotelservice-form__list.dxbl-dropdown-dialog,
body .hotelservice-form__list .dxbl-dropdown-body {
  border-radius: var(--innvilo-radius-xs);
}

body .hotelservice-form__list .dxbl-list-box-item {
  padding: var(--innvilo-space-3) var(--innvilo-space-5);
}

.hotelservice-form__chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-2);
}

.hotelservice-form__chip {
  background: var(--innvilo-surface-app);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-full);
  color: var(--innvilo-text-primary);
  cursor: pointer;
  font: inherit;
  font-size: var(--innvilo-font-size-caption);
  line-height: 1.2;
  min-height: 2rem;
  padding: 0 var(--innvilo-space-4);
  transition: background-color 140ms ease-out, border-color 140ms ease-out;
}

.hotelservice-form__chip:hover {
  background: var(--innvilo-surface-muted);
}

.hotelservice-form__chip.is-selected {
  background: var(--innvilo-color-primary-soft);
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.hotelservice-form__chip:focus-visible {
  outline: 2px solid var(--innvilo-border-focus);
  outline-offset: 2px;
}

.hotelservice-form__hint {
  align-items: flex-start;
  color: var(--innvilo-text-secondary);
  display: flex;
  font-size: var(--innvilo-font-size-caption);
  gap: var(--innvilo-space-2);
  line-height: 1.45;
  margin: 0;
}

.hotelservice-form__hint i {
  color: var(--color-primary);
  margin-top: 2px;
}

.hotelservice-form__hint.is-attention,
.hotelservice-form__hint.is-attention i {
  color: var(--color-warning-text);
}

.hotelservice-form__error {
  align-items: flex-start;
  border-left: 3px solid var(--color-error);
  color: var(--color-error);
  display: flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
  gap: var(--innvilo-space-2);
  margin: 0;
  padding: var(--innvilo-space-2) var(--innvilo-space-4);
}

@media (max-width: 47.99rem) {
  .hotelservice-form__grid {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (prefers-reduced-motion: reduce) {
  .hotelservice-form__chip {
    transition: none;
  }
}
/* Hotelbetrieb / Firmenkunden: DevExpress roots and popup-hosted shared controls. The feature keeps
   its ordinary layout rules in the colocated isolated stylesheets. Every hook below targets a
   DevExpress root (.dxbl-*) or the shared filter center, which do not receive the scoped attribute. */
body .corpcustomer-page .dx-app-button.dxbl-btn,
body .corpcustomer-page .dxbl-text-edit,
body .corpcustomer-page .dxbl-combobox,
body .corpcustomer-page .corpcustomer-grid.dxbl-grid {
  border-radius: var(--innvilo-radius-xs);
}

body .corpcustomer-page .corpcustomer-head .dx-app-button.dxbl-btn,
body .corpcustomer-page .corpcustomer-toolbar .dx-app-button.dxbl-btn,
body .corpcustomer-page .corpcustomer-state .dx-app-button.dxbl-btn {
  min-height: 2.5rem;
  white-space: nowrap;
}

/* Toolbar and pager controls carry the larger control radius. */
body .corpcustomer-page .corpcustomer-toolbar .dxbl-text-edit,
body .corpcustomer-page .corpcustomer-toolbar .dxbl-combobox,
body .corpcustomer-page .corpcustomer-toolbar .dx-app-button.dxbl-btn,
body .corpcustomer-page .corpcustomer-mobile-tools .dxbl-text-edit,
body .corpcustomer-page .corpcustomer-mobile-filter.dxbl-btn {
  border-radius: var(--innvilo-radius-md);
}

body .corpcustomer-page .corpcustomer-toolbar .dxbl-text-edit,
body .corpcustomer-page .corpcustomer-toolbar .dxbl-combobox {
  min-height: 2.5rem;
}

/* The search field takes the button height as its measure (40px desktop, 44px mobile). */
body .corpcustomer-page .corpcustomer-search-editor.dxbl-text-edit {
  height: 2.5rem;
  max-height: 2.5rem;
  min-height: 2.5rem;
}

body .corpcustomer-page .corpcustomer-mobile-search.dxbl-text-edit {
  border: 0 !important;
  box-shadow: inset 0 0 0 1px var(--innvilo-border-default);
  flex: 1 1 auto;
  height: 2.75rem;
  max-height: 2.75rem;
  min-height: 2.75rem;
}

body .corpcustomer-page .corpcustomer-mobile-search.dxbl-text-edit:focus-within {
  box-shadow: inset 0 0 0 1px var(--color-primary), 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .corpcustomer-page .corpcustomer-search-editor.dxbl-text-edit,
body .corpcustomer-page .corpcustomer-mobile-search.dxbl-text-edit {
  align-items: center;
  border-color: var(--innvilo-border-default);
  box-shadow: none;
  box-sizing: border-box;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  min-width: 0;
  width: 100%;
}

body .corpcustomer-page .corpcustomer-search-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .corpcustomer-page .corpcustomer-search-editor.dxbl-text-edit input,
body .corpcustomer-page .corpcustomer-mobile-search.dxbl-text-edit input {
  align-self: center;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  padding: 0 var(--innvilo-space-4) 0 var(--innvilo-space-3);
}

body .corpcustomer-page .corpcustomer-search-editor.dxbl-text-edit input::placeholder,
body .corpcustomer-page .corpcustomer-mobile-search.dxbl-text-edit input::placeholder {
  color: var(--innvilo-text-muted);
  line-height: 1.2;
  opacity: 1;
}

body .corpcustomer-page .corpcustomer-search-editor.dxbl-text-edit .dxbl-btn,
body .corpcustomer-page .corpcustomer-mobile-search.dxbl-text-edit .dxbl-btn {
  height: 100%;
  min-height: 0;
}

body .corpcustomer-page .corpcustomer-mobile-search.dxbl-text-edit .dxbl-btn {
  min-width: 2.75rem;
  width: 2.75rem;
}

body .corpcustomer-page .inquiry-filter-dropdown__button.is-active.dxbl-btn,
body .corpcustomer-page .corpcustomer-mobile-filter.is-active.dxbl-btn {
  background: var(--innvilo-color-primary-soft) !important;
  border-color: var(--color-primary) !important;
  color: var(--color-primary) !important;
}

body .corpcustomer-page .inquiry-filter-dropdown__button.dxbl-btn {
  gap: var(--innvilo-space-3);
  min-height: 2.5rem;
  padding-inline: var(--innvilo-space-4);
}

/* Grid: quiet header, comfortable rows, group rows as section labels, inactive rows in the secondary text colour. */
body .corpcustomer-page .corpcustomer-grid.dxbl-grid {
  border: 0;
  max-width: 100%;
  width: 100%;
}

body .corpcustomer-page .corpcustomer-grid.dxbl-grid .dxbl-grid-header-row > th {
  background: var(--innvilo-surface-app);
  border-bottom: 1px solid var(--innvilo-border-default);
  box-sizing: border-box;
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  height: 2.5rem;
  letter-spacing: 0;
  line-height: 1.2;
  padding: 0 var(--innvilo-space-6);
  text-transform: none;
  vertical-align: middle;
}

body .corpcustomer-page .corpcustomer-grid.dxbl-grid .dxbl-grid-data-row > td {
  border-color: var(--innvilo-border-default);
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
  vertical-align: middle;
}

body .corpcustomer-page .corpcustomer-grid.dxbl-grid .dxbl-grid-data-row > td:first-child {
  border-left: 3px solid transparent;
}

body .corpcustomer-page .corpcustomer-grid.dxbl-grid .dxbl-grid-data-row:hover > td {
  background: var(--innvilo-grid-hover-surface);
}

/* Own pager: 40px page-size combobox and 36px square navigation buttons. */
body .corpcustomer-page .corpcustomer-pager__size-editor.dxbl-text-edit {
  align-items: center;
  border: 1px solid var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-shadow: none !important;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  height: 2.25rem;
  max-height: 2.25rem;
  min-height: 2.25rem;
  min-width: 4.5rem;
  width: 4.5rem;
}

body .corpcustomer-pager__size-list.dxbl-dropdown-dialog,
body .corpcustomer-pager__size-list .dxbl-dropdown-body {
  border-radius: var(--innvilo-radius-md);
  min-width: 4.5rem;
}

body .corpcustomer-pager__size-list .dxbl-list-box-item,
body .corpcustomer-pager__size-list [role=option] {
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-3) var(--innvilo-space-5);
}

body .corpcustomer-pager__size-list [aria-selected=true],
body .corpcustomer-pager__size-list .dxbl-list-box-item.dxbl-active {
  background: var(--innvilo-color-primary-soft) !important;
  color: var(--color-primary) !important;
}

body .corpcustomer-page .corpcustomer-pager__size-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring) !important;
}

body .corpcustomer-page .corpcustomer-pager__size-editor.dxbl-text-edit input {
  align-self: center;
  flex: 1 1 auto;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  min-width: 0;
  overflow: visible;
  padding: 0 0 0 var(--innvilo-space-4);
  text-align: left;
  text-overflow: clip;
  width: auto;
}

body .corpcustomer-page .corpcustomer-pager__size-editor.dxbl-text-edit .dxbl-btn-group {
  align-items: stretch;
  background: transparent !important;
  border: 0 !important;
  display: inline-flex;
  flex: 0 0 1.5rem;
  margin: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

body .corpcustomer-page .corpcustomer-pager__size-editor.dxbl-text-edit .dxbl-btn {
  align-items: center;
  align-self: stretch;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0;
  box-shadow: none !important;
  color: var(--innvilo-text-secondary) !important;
  display: inline-flex;
  height: auto;
  justify-content: center;
  margin: 0;
  min-height: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

body .corpcustomer-page .corpcustomer-pager__size-editor.dxbl-text-edit .dxbl-btn .dxbl-image {
  height: 0.75rem;
  width: 0.75rem;
}

body .corpcustomer-page .corpcustomer-pager__size-editor.dxbl-text-edit::after,
body .corpcustomer-page .corpcustomer-search-editor.dxbl-text-edit::after,
body .corpcustomer-page .corpcustomer-mobile-search.dxbl-text-edit::after {
  display: none;
}

body .corpcustomer-page .corpcustomer-pager__button.dxbl-btn {
  align-items: center;
  border-radius: var(--innvilo-radius-md);
  display: inline-flex;
  flex: 0 0 2.25rem;
  height: 2.25rem;
  justify-content: center;
  min-height: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .corpcustomer-page .corpcustomer-pager__button.dxbl-btn .dxbl-image {
  margin: 0;
}

body .corpcustomer-page .corpcustomer-mobile-refresh.dxbl-btn {
  border-radius: var(--innvilo-radius-xs);
  height: 2.75rem;
  min-height: 2.75rem;
  width: 2.75rem;
}

body .corpcustomer-page .corpcustomer-mobile-filter.dxbl-btn {
  background: var(--innvilo-surface-card) !important;
  border-color: var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-sizing: border-box;
  flex: 0 0 auto;
  gap: var(--innvilo-space-3);
  height: 2.75rem;
  min-height: 2.75rem;
  padding-inline: var(--innvilo-space-5);
  white-space: nowrap;
}

/* Mobile filter overlay: DevExpress popup root as a full-screen sheet. */
body .corpcustomer-mobile-overlay.dxbl-popup {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none;
  height: 100dvh !important;
  inset: 0 !important;
  margin: 0 !important;
  max-height: 100dvh !important;
  max-width: 100vw !important;
  position: fixed !important;
  transform: none !important;
  width: 100vw !important;
}

body .corpcustomer-mobile-overlay.dxbl-popup > .dxbl-modal-content,
body .corpcustomer-mobile-overlay.dxbl-popup .dxbl-popup-body {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  height: 100% !important;
  max-height: 100% !important;
  max-width: 100% !important;
  overflow: hidden;
  padding: 0 !important;
  width: 100% !important;
}

body .corpcustomer-mobile-overlay .corpcustomer-overlay {
  height: 100%;
}

/* Sections inside the overlay use the full height: the option list grows, actions stay at the bottom. */
body .corpcustomer-mobile-overlay .inquiry-filter-form {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: var(--innvilo-space-6);
}

body .corpcustomer-mobile-overlay .inquiry-filter-form__listbox {
  flex: 1 1 auto;
  max-height: none;
  min-height: 10rem;
}

body .corpcustomer-mobile-overlay .inquiry-filter-form__actions {
  margin-top: auto;
}

body .corpcustomer-mobile-overlay .inquiry-filter-form .dx-app-button.dxbl-btn,
body .corpcustomer-mobile-overlay .corpcustomer-overlay__done.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

body .corpcustomer-page .corpcustomer-grid.dxbl-grid .corpcustomer-grid-row--inactive > td {
  color: var(--innvilo-text-secondary);
}

/* Zeilenaktionen "Bearbeiten" und "Aktivieren/Deaktivieren": ruhige Icon-Buttons im Grid (36px),
   Textbuttons in den Karten (44px). */
body .corpcustomer-page .corpcustomer-grid .corpcustomer-row-action.dxbl-btn {
  align-items: center;
  background: var(--innvilo-surface-muted) !important;
  border-color: transparent !important;
  border-radius: var(--innvilo-radius-xs);
  box-sizing: border-box;
  color: var(--innvilo-text-primary) !important;
  display: inline-flex;
  flex: 0 0 2.25rem;
  height: 2.25rem;
  justify-content: center;
  line-height: 1;
  min-height: 2.25rem;
  min-width: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .corpcustomer-page .corpcustomer-grid .corpcustomer-row-action.dxbl-btn .dxbl-image {
  margin: 0;
}

body .corpcustomer-page .corpcustomer-grid .corpcustomer-row-action.dxbl-btn:hover,
body .corpcustomer-page .corpcustomer-grid .corpcustomer-row-action.dxbl-btn:focus-visible {
  background: var(--innvilo-border-default) !important;
  color: var(--innvilo-text-primary) !important;
}

body .corpcustomer-page .corpcustomer-mobile-card .corpcustomer-row-action.dxbl-btn,
body .corpcustomer-page .corpcustomer-mobile-more.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

body .corpcustomer-page .corpcustomer-mobile-create.dxbl-btn {
  border-radius: var(--innvilo-radius-xs);
  height: 2.75rem;
  min-height: 2.75rem;
  width: 2.75rem;
}

body .corpcustomer-page .corpcustomer-head__actions .dx-app-button.dxbl-btn,
body .corpcustomer-page .corpcustomer-state__actions .dx-app-button.dxbl-btn,
body .corpcustomer-page .corpcustomer-mobile-state .dx-app-button.dxbl-btn {
  min-height: 2.75rem;
}

/* Detailseite: Hero-Aktionen (44px), Abschnittsaktionen, Zeilenaktionen in Ansprechpartnern und Verträgen
   (36px Icon-Buttons, 44px Textbuttons unterhalb von 992px), Seitennavigation der Abschnitte. */
body .corpcustomer-detail .corpcustomer-detail-head__actions .dx-app-button.dxbl-btn,
body .corpcustomer-detail .corpcustomer-detail-state__actions .dx-app-button.dxbl-btn,
body .corpcustomer-detail .corpcustomer-section-action.dxbl-btn,
body .corpcustomer-detail .corpcustomer-section-more.dxbl-btn {
  border-radius: var(--innvilo-radius-xs);
  min-height: 2.75rem;
  white-space: nowrap;
}

body .corpcustomer-detail .corpcustomer-detail-action.dx-app-icon-button.dxbl-btn {
  height: 2.75rem;
  min-width: 2.75rem;
  width: 2.75rem;
}

body .corpcustomer-detail .corpcustomer-row-action.dxbl-btn {
  background: var(--innvilo-surface-card) !important;
  border-color: transparent !important;
  border-radius: var(--innvilo-radius-xs);
  color: var(--innvilo-text-primary) !important;
  min-height: 2.25rem;
  white-space: nowrap;
}

body .corpcustomer-detail .corpcustomer-row-action.dx-app-icon-button.dxbl-btn {
  align-items: center;
  display: inline-flex;
  flex: 0 0 2.25rem;
  height: 2.25rem;
  justify-content: center;
  min-width: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .corpcustomer-detail .corpcustomer-row-action.dxbl-btn:hover,
body .corpcustomer-detail .corpcustomer-row-action.dxbl-btn:focus-visible {
  background: var(--innvilo-border-default) !important;
  color: var(--innvilo-text-primary) !important;
}

body .corpcustomer-detail .corpcustomer-section-more.dxbl-btn {
  width: 100%;
}

@media (max-width: 61.99rem) {
  body .corpcustomer-detail .corpcustomer-row-action.dxbl-btn {
    min-height: 2.75rem;
    width: 100%;
  }
  body .corpcustomer-detail .corpcustomer-row-action.dx-app-icon-button.dxbl-btn {
    height: 2.75rem;
    width: 2.75rem;
  }
}
/* Statusmarken sind in Grid, Karten und Popups identisch und deshalb global.
   Farbe trägt Bedeutung (Erfolg für buchbar), kein Schmuck. */
body .corpcustomer-status {
  align-items: center;
  background: var(--innvilo-surface-app);
  border: 1px solid var(--innvilo-border-default);
  border-radius: 999px;
  color: var(--innvilo-text-secondary);
  display: inline-flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  gap: 0.35rem;
  line-height: 1.2;
  padding: 0.3rem 0.65rem;
  white-space: nowrap;
}

body .corpcustomer-status.is-active {
  background: var(--color-success-surface);
  border-color: var(--color-success-border);
  color: var(--color-success);
}

body .corpcustomer-status.is-inactive {
  border-color: var(--innvilo-border-strong);
  color: var(--innvilo-text-muted);
}

/* Firmenkunden: Popups (Editor, Status, Ansprechpartner, Vertrag). Die Inhalte sitzen im PopupCenter außerhalb des Seitenbaums,
   deshalb global. Ein Radius, keine Schatten, auf dem Handy Vollbild ohne Radius. */
body .pms-popup-center--medium:has(.corpcustomer-form) .pms-popup-center__body-shell {
  overflow: auto;
}

body .pms-popup-center--medium:has(.corpcustomer-form) .pms-popup-center__body {
  padding: var(--innvilo-space-5);
}

body .pms-popup-center--fullscreen:has(.corpcustomer-form) .pms-popup-center__body {
  padding: var(--innvilo-space-4);
}

.corpcustomer-form {
  display: grid;
  gap: var(--innvilo-space-5);
  min-width: 0;
}

.corpcustomer-form__intro {
  color: var(--innvilo-text-secondary);
  display: grid;
  font-size: var(--innvilo-font-size-body);
  gap: var(--innvilo-space-1);
  line-height: 1.5;
  margin: 0;
}

.corpcustomer-form__intro strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
}

.corpcustomer-form__intro span {
  font-size: var(--innvilo-font-size-caption);
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.corpcustomer-form__grid {
  display: grid;
  gap: var(--innvilo-space-4);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  min-width: 0;
}

.corpcustomer-form__field {
  display: grid;
  gap: var(--innvilo-space-2);
  min-width: 0;
}

.corpcustomer-form__field--wide {
  grid-column: 1/-1;
}

.corpcustomer-form__field > span,
.corpcustomer-form__field > label {
  color: var(--innvilo-text-secondary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
}

.corpcustomer-form__field > small {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  line-height: 1.4;
}

body .corpcustomer-form__editor.dxbl-text-edit,
body .corpcustomer-form__editor.dxbl-combobox,
body .corpcustomer-form__editor.dxbl-spin-edit,
body .corpcustomer-form__editor.dxbl-date-edit,
body .corpcustomer-form__editor.dxbl-memo {
  border-radius: var(--innvilo-radius-xs);
  width: 100%;
}

body .corpcustomer-form__list.dxbl-dropdown-dialog,
body .corpcustomer-form__list .dxbl-dropdown-body {
  border-radius: var(--innvilo-radius-xs);
}

body .corpcustomer-form__list .dxbl-list-box-item {
  padding: var(--innvilo-space-3) var(--innvilo-space-5);
}

/* Fieldsets group master data, billing address and payment terms; a hairline above each group, no outline. */
.corpcustomer-form__group {
  border: 0;
  border-top: 1px solid var(--innvilo-border-default);
  display: grid;
  gap: var(--innvilo-space-4);
  margin: 0;
  min-width: 0;
  padding: var(--innvilo-space-5) 0 0;
}

.corpcustomer-form__group > legend {
  color: var(--innvilo-text-primary);
  float: left;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  letter-spacing: var(--innvilo-tracking-caption);
  padding: 0;
  width: 100%;
}

.corpcustomer-form__checks {
  display: grid;
  gap: var(--innvilo-space-3);
}

body .corpcustomer-form__check.dxbl-checkbox {
  font-size: var(--innvilo-font-size-label);
  min-height: 2.25rem;
}

/* Result phase after creating a company: the assigned numbers, read-only. */
.corpcustomer-form__result {
  display: grid;
  gap: var(--innvilo-space-4);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
  min-width: 0;
}

.corpcustomer-form__result > div {
  background: var(--innvilo-surface-app);
  border-radius: var(--innvilo-radius-xs);
  display: grid;
  gap: var(--innvilo-space-2);
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
}

.corpcustomer-form__result.is-compact > div {
  padding: var(--innvilo-space-3) var(--innvilo-space-5);
}

.corpcustomer-form__result dt {
  color: var(--innvilo-text-secondary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  letter-spacing: var(--innvilo-tracking-caption);
}

.corpcustomer-form__result dd {
  color: var(--innvilo-text-primary);
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-heading);
  font-variant-numeric: tabular-nums;
  margin: 0;
}

.corpcustomer-form__result.is-compact dd {
  font-size: var(--innvilo-font-size-body);
}

.corpcustomer-form .corpcustomer-number {
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-variant-numeric: tabular-nums;
  letter-spacing: var(--innvilo-tracking-caption);
  text-transform: uppercase;
}

.corpcustomer-form__hint {
  align-items: flex-start;
  color: var(--innvilo-text-secondary);
  display: flex;
  font-size: var(--innvilo-font-size-caption);
  gap: var(--innvilo-space-2);
  line-height: 1.45;
  margin: 0;
}

.corpcustomer-form__hint i {
  color: var(--color-primary);
  margin-top: 2px;
}

.corpcustomer-form__hint.is-attention,
.corpcustomer-form__hint.is-attention i {
  color: var(--color-warning-text);
}

.corpcustomer-form__error {
  align-items: flex-start;
  border-left: 3px solid var(--color-error);
  color: var(--color-error);
  display: flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
  gap: var(--innvilo-space-2);
  margin: 0;
  padding: var(--innvilo-space-2) var(--innvilo-space-4);
}

@media (max-width: 47.99rem) {
  .corpcustomer-form__grid,
  .corpcustomer-form__result {
    grid-template-columns: minmax(0, 1fr);
  }
}
/* Hotelbetrieb / VIP-Kunden: DevExpress roots and popup-hosted shared controls. The feature keeps
   its ordinary layout rules in the colocated isolated stylesheets. Every hook below targets a
   DevExpress root (.dxbl-*) or the shared filter center, which do not receive the scoped attribute. */
body .vipguest-page .dx-app-button.dxbl-btn,
body .vipguest-page .dxbl-text-edit,
body .vipguest-page .dxbl-combobox,
body .vipguest-page .vipguest-grid.dxbl-grid {
  border-radius: var(--innvilo-radius-xs);
}

body .vipguest-page .vipguest-head .dx-app-button.dxbl-btn,
body .vipguest-page .vipguest-toolbar .dx-app-button.dxbl-btn,
body .vipguest-page .vipguest-state .dx-app-button.dxbl-btn {
  min-height: 2.5rem;
  white-space: nowrap;
}

/* Toolbar and pager controls carry the larger control radius. */
body .vipguest-page .vipguest-toolbar .dxbl-text-edit,
body .vipguest-page .vipguest-toolbar .dxbl-combobox,
body .vipguest-page .vipguest-toolbar .dx-app-button.dxbl-btn,
body .vipguest-page .vipguest-mobile-tools .dxbl-text-edit,
body .vipguest-page .vipguest-mobile-filter.dxbl-btn {
  border-radius: var(--innvilo-radius-md);
}

body .vipguest-page .vipguest-toolbar .dxbl-text-edit,
body .vipguest-page .vipguest-toolbar .dxbl-combobox {
  min-height: 2.5rem;
}

/* The search field takes the button height as its measure (40px desktop, 44px mobile). */
body .vipguest-page .vipguest-search-editor.dxbl-text-edit {
  height: 2.5rem;
  max-height: 2.5rem;
  min-height: 2.5rem;
}

body .vipguest-page .vipguest-mobile-search.dxbl-text-edit {
  border: 0 !important;
  box-shadow: inset 0 0 0 1px var(--innvilo-border-default);
  flex: 1 1 auto;
  height: 2.75rem;
  max-height: 2.75rem;
  min-height: 2.75rem;
}

body .vipguest-page .vipguest-mobile-search.dxbl-text-edit:focus-within {
  box-shadow: inset 0 0 0 1px var(--color-primary), 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .vipguest-page .vipguest-search-editor.dxbl-text-edit,
body .vipguest-page .vipguest-mobile-search.dxbl-text-edit {
  align-items: center;
  border-color: var(--innvilo-border-default);
  box-shadow: none;
  box-sizing: border-box;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  min-width: 0;
  width: 100%;
}

body .vipguest-page .vipguest-search-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .vipguest-page .vipguest-search-editor.dxbl-text-edit input,
body .vipguest-page .vipguest-mobile-search.dxbl-text-edit input {
  align-self: center;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  padding: 0 var(--innvilo-space-4) 0 var(--innvilo-space-3);
}

body .vipguest-page .vipguest-search-editor.dxbl-text-edit input::placeholder,
body .vipguest-page .vipguest-mobile-search.dxbl-text-edit input::placeholder {
  color: var(--innvilo-text-muted);
  line-height: 1.2;
  opacity: 1;
}

body .vipguest-page .vipguest-search-editor.dxbl-text-edit .dxbl-btn,
body .vipguest-page .vipguest-mobile-search.dxbl-text-edit .dxbl-btn {
  height: 100%;
  min-height: 0;
}

body .vipguest-page .vipguest-mobile-search.dxbl-text-edit .dxbl-btn {
  min-width: 2.75rem;
  width: 2.75rem;
}

body .vipguest-page .inquiry-filter-dropdown__button.is-active.dxbl-btn,
body .vipguest-page .vipguest-mobile-filter.is-active.dxbl-btn {
  background: var(--innvilo-color-primary-soft) !important;
  border-color: var(--color-primary) !important;
  color: var(--color-primary) !important;
}

body .vipguest-page .inquiry-filter-dropdown__button.dxbl-btn {
  gap: var(--innvilo-space-3);
  min-height: 2.5rem;
  padding-inline: var(--innvilo-space-4);
}

/* Grid: quiet header, comfortable rows, group rows as section labels, inactive rows in the secondary text colour. */
body .vipguest-page .vipguest-grid.dxbl-grid {
  border: 0;
  max-width: 100%;
  width: 100%;
}

body .vipguest-page .vipguest-grid.dxbl-grid .dxbl-grid-header-row > th {
  background: var(--innvilo-surface-app);
  border-bottom: 1px solid var(--innvilo-border-default);
  box-sizing: border-box;
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  height: 2.5rem;
  letter-spacing: 0;
  line-height: 1.2;
  padding: 0 var(--innvilo-space-6);
  text-transform: none;
  vertical-align: middle;
}

body .vipguest-page .vipguest-grid.dxbl-grid .dxbl-grid-data-row > td {
  border-color: var(--innvilo-border-default);
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
  vertical-align: middle;
}

body .vipguest-page .vipguest-grid.dxbl-grid .dxbl-grid-data-row > td:first-child {
  border-left: 3px solid transparent;
}

body .vipguest-page .vipguest-grid.dxbl-grid .dxbl-grid-data-row:hover > td {
  background: var(--innvilo-grid-hover-surface);
}

/* Own pager: 40px page-size combobox and 36px square navigation buttons. */
body .vipguest-page .vipguest-pager__size-editor.dxbl-text-edit {
  align-items: center;
  border: 1px solid var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-shadow: none !important;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  height: 2.25rem;
  max-height: 2.25rem;
  min-height: 2.25rem;
  min-width: 4.5rem;
  width: 4.5rem;
}

body .vipguest-pager__size-list.dxbl-dropdown-dialog,
body .vipguest-pager__size-list .dxbl-dropdown-body {
  border-radius: var(--innvilo-radius-md);
  min-width: 4.5rem;
}

body .vipguest-pager__size-list .dxbl-list-box-item,
body .vipguest-pager__size-list [role=option] {
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-3) var(--innvilo-space-5);
}

body .vipguest-pager__size-list [aria-selected=true],
body .vipguest-pager__size-list .dxbl-list-box-item.dxbl-active {
  background: var(--innvilo-color-primary-soft) !important;
  color: var(--color-primary) !important;
}

body .vipguest-page .vipguest-pager__size-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring) !important;
}

body .vipguest-page .vipguest-pager__size-editor.dxbl-text-edit input {
  align-self: center;
  flex: 1 1 auto;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  min-width: 0;
  overflow: visible;
  padding: 0 0 0 var(--innvilo-space-4);
  text-align: left;
  text-overflow: clip;
  width: auto;
}

body .vipguest-page .vipguest-pager__size-editor.dxbl-text-edit .dxbl-btn-group {
  align-items: stretch;
  background: transparent !important;
  border: 0 !important;
  display: inline-flex;
  flex: 0 0 1.5rem;
  margin: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

body .vipguest-page .vipguest-pager__size-editor.dxbl-text-edit .dxbl-btn {
  align-items: center;
  align-self: stretch;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0;
  box-shadow: none !important;
  color: var(--innvilo-text-secondary) !important;
  display: inline-flex;
  height: auto;
  justify-content: center;
  margin: 0;
  min-height: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

body .vipguest-page .vipguest-pager__size-editor.dxbl-text-edit .dxbl-btn .dxbl-image {
  height: 0.75rem;
  width: 0.75rem;
}

body .vipguest-page .vipguest-pager__size-editor.dxbl-text-edit::after,
body .vipguest-page .vipguest-search-editor.dxbl-text-edit::after,
body .vipguest-page .vipguest-mobile-search.dxbl-text-edit::after {
  display: none;
}

body .vipguest-page .vipguest-pager__button.dxbl-btn {
  align-items: center;
  border-radius: var(--innvilo-radius-md);
  display: inline-flex;
  flex: 0 0 2.25rem;
  height: 2.25rem;
  justify-content: center;
  min-height: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .vipguest-page .vipguest-pager__button.dxbl-btn .dxbl-image {
  margin: 0;
}

body .vipguest-page .vipguest-mobile-refresh.dxbl-btn {
  border-radius: var(--innvilo-radius-xs);
  height: 2.75rem;
  min-height: 2.75rem;
  width: 2.75rem;
}

body .vipguest-page .vipguest-mobile-filter.dxbl-btn {
  background: var(--innvilo-surface-card) !important;
  border-color: var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-sizing: border-box;
  flex: 0 0 auto;
  gap: var(--innvilo-space-3);
  height: 2.75rem;
  min-height: 2.75rem;
  padding-inline: var(--innvilo-space-5);
  white-space: nowrap;
}

/* Mobile filter overlay: DevExpress popup root as a full-screen sheet. */
body .vipguest-mobile-overlay.dxbl-popup {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none;
  height: 100dvh !important;
  inset: 0 !important;
  margin: 0 !important;
  max-height: 100dvh !important;
  max-width: 100vw !important;
  position: fixed !important;
  transform: none !important;
  width: 100vw !important;
}

body .vipguest-mobile-overlay.dxbl-popup > .dxbl-modal-content,
body .vipguest-mobile-overlay.dxbl-popup .dxbl-popup-body {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  height: 100% !important;
  max-height: 100% !important;
  max-width: 100% !important;
  overflow: hidden;
  padding: 0 !important;
  width: 100% !important;
}

body .vipguest-mobile-overlay .vipguest-overlay {
  height: 100%;
}

/* Sections inside the overlay use the full height: the option list grows, actions stay at the bottom. */
body .vipguest-mobile-overlay .inquiry-filter-form {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: var(--innvilo-space-6);
}

body .vipguest-mobile-overlay .inquiry-filter-form__listbox {
  flex: 1 1 auto;
  max-height: none;
  min-height: 10rem;
}

body .vipguest-mobile-overlay .inquiry-filter-form__actions {
  margin-top: auto;
}

body .vipguest-mobile-overlay .inquiry-filter-form .dx-app-button.dxbl-btn,
body .vipguest-mobile-overlay .vipguest-overlay__done.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

body .vipguest-page .vipguest-grid.dxbl-grid .vipguest-grid-row--inactive > td {
  color: var(--innvilo-text-secondary);
}

/* Zeilenaktionen "Bearbeiten" und "Aktivieren/Deaktivieren": ruhige Icon-Buttons im Grid (36px),
   Textbuttons in den Karten (44px). */
body .vipguest-page .vipguest-grid .vipguest-row-action.dxbl-btn,
body .vipguest-page .vipguest-grid a.vipguest-row-action {
  align-items: center;
  background: var(--innvilo-surface-muted) !important;
  border-color: transparent !important;
  border-radius: var(--innvilo-radius-xs);
  box-sizing: border-box;
  color: var(--innvilo-text-primary) !important;
  display: inline-flex;
  flex: 0 0 2.25rem;
  height: 2.25rem;
  justify-content: center;
  line-height: 1;
  min-height: 2.25rem;
  min-width: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .vipguest-page .vipguest-grid .vipguest-row-action.dxbl-btn .dxbl-image {
  margin: 0;
}

body .vipguest-page .vipguest-grid .vipguest-row-action.dxbl-btn:hover,
body .vipguest-page .vipguest-grid .vipguest-row-action.dxbl-btn:focus-visible,
body .vipguest-page .vipguest-grid a.vipguest-row-action:hover,
body .vipguest-page .vipguest-grid a.vipguest-row-action:focus-visible {
  background: var(--innvilo-border-default) !important;
  color: var(--innvilo-text-primary) !important;
}

body .vipguest-page .vipguest-mobile-card .vipguest-row-action.dxbl-btn,
body .vipguest-page .vipguest-mobile-card a.vipguest-row-action,
body .vipguest-page .vipguest-mobile-more.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

body .vipguest-page .vipguest-mobile-create.dxbl-btn {
  border-radius: var(--innvilo-radius-xs);
  height: 2.75rem;
  min-height: 2.75rem;
  width: 2.75rem;
}

body .vipguest-page .vipguest-head__actions .dx-app-button.dxbl-btn,
body .vipguest-page .vipguest-state__actions .dx-app-button.dxbl-btn,
body .vipguest-page .vipguest-mobile-state .dx-app-button.dxbl-btn {
  min-height: 2.75rem;
}

/* Detailseite: Hero-Aktionen (44px), Abschnittsaktionen, Zeilenaktionen in Aufenthalten und Verlauf
   (36px Icon-Buttons, 44px Textbuttons unterhalb von 992px), Seitennavigation der Abschnitte. */
body .vipguest-detail .vipguest-detail-head__actions .dx-app-button.dxbl-btn,
body .vipguest-detail .vipguest-detail-state__actions .dx-app-button.dxbl-btn,
body .vipguest-detail .vipguest-section-action.dxbl-btn,
body .vipguest-detail .vipguest-section-more.dxbl-btn {
  border-radius: var(--innvilo-radius-xs);
  min-height: 2.75rem;
  white-space: nowrap;
}

body .vipguest-detail .vipguest-detail-action.dx-app-icon-button.dxbl-btn {
  height: 2.75rem;
  min-width: 2.75rem;
  width: 2.75rem;
}

body .vipguest-detail .vipguest-row-action.dxbl-btn {
  background: var(--innvilo-surface-card) !important;
  border-color: transparent !important;
  border-radius: var(--innvilo-radius-xs);
  color: var(--innvilo-text-primary) !important;
  min-height: 2.25rem;
  white-space: nowrap;
}

body .vipguest-detail .vipguest-row-action.dx-app-icon-button.dxbl-btn {
  align-items: center;
  display: inline-flex;
  flex: 0 0 2.25rem;
  height: 2.25rem;
  justify-content: center;
  min-width: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .vipguest-detail .vipguest-row-action.dxbl-btn:hover,
body .vipguest-detail .vipguest-row-action.dxbl-btn:focus-visible {
  background: var(--innvilo-border-default) !important;
  color: var(--innvilo-text-primary) !important;
}

body .vipguest-detail .vipguest-section-more.dxbl-btn {
  width: 100%;
}

@media (max-width: 61.99rem) {
  body .vipguest-detail .vipguest-row-action.dxbl-btn {
    min-height: 2.75rem;
    width: 100%;
  }
  body .vipguest-detail .vipguest-row-action.dx-app-icon-button.dxbl-btn {
    height: 2.75rem;
    width: 2.75rem;
  }
}
/* Status- und Stufenmarken sind in Grid, Karten, Detailseite und Popups identisch und deshalb global.
   Farbe trägt Bedeutung (Erfolg für aktiv; Gold und Platin nur als Akzent in der Stufenmarke), kein Schmuck. */
body .vipguest-status {
  align-items: center;
  background: var(--innvilo-surface-app);
  border: 1px solid var(--innvilo-border-default);
  border-radius: 999px;
  color: var(--innvilo-text-secondary);
  display: inline-flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  gap: 0.35rem;
  line-height: 1.2;
  padding: 0.3rem 0.65rem;
  white-space: nowrap;
}

body .vipguest-status.is-active {
  background: var(--color-success-surface);
  border-color: var(--color-success-border);
  color: var(--color-success);
}

body .vipguest-status.is-ended {
  border-color: var(--innvilo-border-strong);
  color: var(--innvilo-text-muted);
}

body .vipguest-tier {
  align-items: center;
  background: var(--innvilo-surface-app);
  border: 1px solid var(--innvilo-border-default);
  border-radius: 999px;
  color: var(--innvilo-text-secondary);
  display: inline-flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  gap: 0.35rem;
  line-height: 1.2;
  padding: 0.3rem 0.65rem;
  white-space: nowrap;
}

body .vipguest-tier i {
  font-size: 0.7rem;
}

body .vipguest-tier.is-silber {
  border-color: var(--innvilo-border-strong);
  color: var(--innvilo-text-secondary);
}

body .vipguest-tier.is-gold {
  background: var(--color-warning-surface);
  border-color: var(--color-warning-border);
  color: var(--color-warning-text);
}

body .vipguest-tier.is-platin {
  background: var(--color-info-surface);
  border-color: var(--color-info-border);
  color: var(--color-info);
}

/* Stufenwahl im Popup: Segment-Buttons, ein Radius, der aktive Eintrag in Primärfarbe. */
.vipguest-form__segments {
  display: grid;
  gap: var(--innvilo-space-2);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.vipguest-form__segment {
  align-items: center;
  background: var(--innvilo-surface-app);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-xs);
  color: var(--innvilo-text-secondary);
  cursor: pointer;
  display: inline-flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
  gap: var(--innvilo-space-2);
  justify-content: center;
  min-height: 2.75rem;
  padding: 0 var(--innvilo-space-4);
}

.vipguest-form__segment:hover {
  border-color: var(--innvilo-border-strong);
  color: var(--innvilo-text-primary);
}

.vipguest-form__segment:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

.vipguest-form__segment.is-active {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
}

.vipguest-form__segment[disabled] {
  cursor: default;
  opacity: 0.6;
}

/* Gastsuche beim Vergeben: Suchfeld, Trefferliste als Schaltflächen, gewählter Gast als ruhige Karte. */
.vipguest-form__candidates {
  display: grid;
  gap: var(--innvilo-space-1);
  list-style: none;
  margin: 0;
  max-height: 18rem;
  overflow: auto;
  padding: 0;
}

.vipguest-form__candidate {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: var(--innvilo-radius-xs);
  color: var(--innvilo-text-primary);
  cursor: pointer;
  display: grid;
  gap: var(--innvilo-space-1) var(--innvilo-space-3);
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 2.75rem;
  padding: var(--innvilo-space-2) var(--innvilo-space-3);
  text-align: left;
  width: 100%;
}

.vipguest-form__candidate:hover,
.vipguest-form__candidate:focus-visible {
  background: var(--innvilo-surface-app);
  outline: none;
}

.vipguest-form__candidate:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: -2px;
}

.vipguest-form__candidate strong {
  font-family: "Lato-SemiBold", Arial, sans-serif;
}

.vipguest-form__candidate small {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  grid-column: 1/-1;
  overflow-wrap: anywhere;
}

.vipguest-form__candidate > span {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  white-space: nowrap;
}

.vipguest-form__selected {
  align-items: center;
  background: var(--innvilo-surface-app);
  border-radius: var(--innvilo-radius-xs);
  display: grid;
  gap: var(--innvilo-space-1) var(--innvilo-space-4);
  grid-template-columns: minmax(0, 1fr) auto;
  padding: var(--innvilo-space-3) var(--innvilo-space-4);
}

.vipguest-form__selected strong {
  font-family: "Lato-SemiBold", Arial, sans-serif;
}

.vipguest-form__selected small {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  grid-column: 1;
  overflow-wrap: anywhere;
}

.vipguest-form__selected .vipguest-link-button {
  grid-column: 2;
  grid-row: 1/span 2;
}

.vipguest-form__empty {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  margin: 0;
  padding: var(--innvilo-space-2) 0;
}

.vipguest-link-button {
  background: none;
  border: 0;
  color: var(--color-primary);
  cursor: pointer;
  font: inherit;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  min-height: 2.75rem;
  padding: 0 var(--innvilo-space-2);
}

.vipguest-link-button:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

/* VIP-Kunden: Popups (Editor, Status). Die Inhalte sitzen im PopupCenter außerhalb des Seitenbaums,
   deshalb global. Ein Radius, keine Schatten, auf dem Handy Vollbild ohne Radius. */
body .pms-popup-center--medium:has(.vipguest-form) .pms-popup-center__body-shell {
  overflow: auto;
}

body .pms-popup-center--medium:has(.vipguest-form) .pms-popup-center__body {
  padding: var(--innvilo-space-5);
}

body .pms-popup-center--fullscreen:has(.vipguest-form) .pms-popup-center__body {
  padding: var(--innvilo-space-4);
}

.vipguest-form {
  display: grid;
  gap: var(--innvilo-space-5);
  min-width: 0;
}

.vipguest-form__intro {
  color: var(--innvilo-text-secondary);
  display: grid;
  font-size: var(--innvilo-font-size-body);
  gap: var(--innvilo-space-1);
  line-height: 1.5;
  margin: 0;
}

.vipguest-form__intro strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
}

.vipguest-form__intro span {
  font-size: var(--innvilo-font-size-caption);
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.vipguest-form__grid {
  display: grid;
  gap: var(--innvilo-space-4);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  min-width: 0;
}

.vipguest-form__field {
  display: grid;
  gap: var(--innvilo-space-2);
  min-width: 0;
}

.vipguest-form__field--wide {
  grid-column: 1/-1;
}

.vipguest-form__field > span,
.vipguest-form__field > label {
  color: var(--innvilo-text-secondary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
}

.vipguest-form__field > small {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  line-height: 1.4;
}

body .vipguest-form__editor.dxbl-text-edit,
body .vipguest-form__search.dxbl-text-edit,
body .vipguest-form__editor.dxbl-combobox,
body .vipguest-form__editor.dxbl-spin-edit,
body .vipguest-form__editor.dxbl-date-edit,
body .vipguest-form__editor.dxbl-memo {
  border-radius: var(--innvilo-radius-xs);
  width: 100%;
}

body .vipguest-form__list.dxbl-dropdown-dialog,
body .vipguest-form__list .dxbl-dropdown-body {
  border-radius: var(--innvilo-radius-xs);
}

body .vipguest-form__list .dxbl-list-box-item {
  padding: var(--innvilo-space-3) var(--innvilo-space-5);
}

/* Fieldsets group guest, tier and notes; a hairline above each group, no outline. */
.vipguest-form__group {
  border: 0;
  border-top: 1px solid var(--innvilo-border-default);
  display: grid;
  gap: var(--innvilo-space-4);
  margin: 0;
  min-width: 0;
  padding: var(--innvilo-space-5) 0 0;
}

.vipguest-form__group > legend {
  color: var(--innvilo-text-primary);
  float: left;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  letter-spacing: var(--innvilo-tracking-caption);
  padding: 0;
  width: 100%;
}

.vipguest-form__checks {
  display: grid;
  gap: var(--innvilo-space-3);
}

body .vipguest-form__check.dxbl-checkbox {
  font-size: var(--innvilo-font-size-label);
  min-height: 2.25rem;
}

/* Compact facts in the popups (guest, tier, since), read-only. */
.vipguest-form__result {
  display: grid;
  gap: var(--innvilo-space-4);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
  min-width: 0;
}

.vipguest-form__result > div {
  background: var(--innvilo-surface-app);
  border-radius: var(--innvilo-radius-xs);
  display: grid;
  gap: var(--innvilo-space-2);
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
}

.vipguest-form__result.is-compact > div {
  padding: var(--innvilo-space-3) var(--innvilo-space-5);
}

.vipguest-form__result dt {
  color: var(--innvilo-text-secondary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  letter-spacing: var(--innvilo-tracking-caption);
}

.vipguest-form__result dd {
  color: var(--innvilo-text-primary);
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-heading);
  font-variant-numeric: tabular-nums;
  margin: 0;
}

.vipguest-form__result.is-compact dd {
  font-size: var(--innvilo-font-size-body);
}

.vipguest-form .vipguest-number {
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-variant-numeric: tabular-nums;
  letter-spacing: var(--innvilo-tracking-caption);
  text-transform: uppercase;
}

.vipguest-form__hint {
  align-items: flex-start;
  color: var(--innvilo-text-secondary);
  display: flex;
  font-size: var(--innvilo-font-size-caption);
  gap: var(--innvilo-space-2);
  line-height: 1.45;
  margin: 0;
}

.vipguest-form__hint i {
  color: var(--color-primary);
  margin-top: 2px;
}

.vipguest-form__hint.is-attention,
.vipguest-form__hint.is-attention i {
  color: var(--color-warning-text);
}

.vipguest-form__error {
  align-items: flex-start;
  border-left: 3px solid var(--color-error);
  color: var(--color-error);
  display: flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
  gap: var(--innvilo-space-2);
  margin: 0;
  padding: var(--innvilo-space-2) var(--innvilo-space-4);
}

@media (max-width: 47.99rem) {
  .vipguest-form__grid,
  .vipguest-form__result {
    grid-template-columns: minmax(0, 1fr);
  }
}
/* Personal / Mitarbeiter: DevExpress roots and popup-hosted shared controls. The feature keeps
   its ordinary layout rules in the colocated isolated stylesheets. Every hook below targets a
   DevExpress root (.dxbl-*) or the shared filter center, which do not receive the scoped attribute. */
body .staff-page .dx-app-button.dxbl-btn,
body .staff-page .dxbl-text-edit,
body .staff-page .dxbl-combobox,
body .staff-page .staff-grid.dxbl-grid {
  border-radius: var(--innvilo-radius-xs);
}

body .staff-page .staff-head .dx-app-button.dxbl-btn,
body .staff-page .staff-toolbar .dx-app-button.dxbl-btn,
body .staff-page .staff-state .dx-app-button.dxbl-btn {
  min-height: 2.5rem;
  white-space: nowrap;
}

/* Toolbar and pager controls carry the larger control radius. */
body .staff-page .staff-toolbar .dxbl-text-edit,
body .staff-page .staff-toolbar .dxbl-combobox,
body .staff-page .staff-toolbar .dx-app-button.dxbl-btn,
body .staff-page .staff-mobile-tools .dxbl-text-edit,
body .staff-page .staff-mobile-filter.dxbl-btn {
  border-radius: var(--innvilo-radius-md);
}

body .staff-page .staff-toolbar .dxbl-text-edit,
body .staff-page .staff-toolbar .dxbl-combobox {
  min-height: 2.5rem;
}

/* The search field takes the button height as its measure (40px desktop, 44px mobile). */
body .staff-page .staff-search-editor.dxbl-text-edit {
  height: 2.5rem;
  max-height: 2.5rem;
  min-height: 2.5rem;
}

body .staff-page .staff-mobile-search.dxbl-text-edit {
  border: 0 !important;
  box-shadow: inset 0 0 0 1px var(--innvilo-border-default);
  flex: 1 1 auto;
  height: 2.75rem;
  max-height: 2.75rem;
  min-height: 2.75rem;
}

body .staff-page .staff-mobile-search.dxbl-text-edit:focus-within {
  box-shadow: inset 0 0 0 1px var(--color-primary), 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .staff-page .staff-search-editor.dxbl-text-edit,
body .staff-page .staff-mobile-search.dxbl-text-edit {
  align-items: center;
  border-color: var(--innvilo-border-default);
  box-shadow: none;
  box-sizing: border-box;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  min-width: 0;
  width: 100%;
}

body .staff-page .staff-search-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .staff-page .staff-search-editor.dxbl-text-edit input,
body .staff-page .staff-mobile-search.dxbl-text-edit input {
  align-self: center;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  padding: 0 var(--innvilo-space-4) 0 var(--innvilo-space-3);
}

body .staff-page .staff-search-editor.dxbl-text-edit input::placeholder,
body .staff-page .staff-mobile-search.dxbl-text-edit input::placeholder {
  color: var(--innvilo-text-muted);
  line-height: 1.2;
  opacity: 1;
}

body .staff-page .staff-search-editor.dxbl-text-edit .dxbl-btn,
body .staff-page .staff-mobile-search.dxbl-text-edit .dxbl-btn {
  height: 100%;
  min-height: 0;
}

body .staff-page .staff-mobile-search.dxbl-text-edit .dxbl-btn {
  min-width: 2.75rem;
  width: 2.75rem;
}

body .staff-page .inquiry-filter-dropdown__button.is-active.dxbl-btn,
body .staff-page .staff-mobile-filter.is-active.dxbl-btn {
  background: var(--innvilo-color-primary-soft) !important;
  border-color: var(--color-primary) !important;
  color: var(--color-primary) !important;
}

body .staff-page .inquiry-filter-dropdown__button.dxbl-btn {
  gap: var(--innvilo-space-3);
  min-height: 2.5rem;
  padding-inline: var(--innvilo-space-4);
}

/* Grid: quiet header, comfortable rows, group rows as section labels, inactive rows in the secondary text colour. */
body .staff-page .staff-grid.dxbl-grid {
  border: 0;
  max-width: 100%;
  width: 100%;
}

body .staff-page .staff-grid.dxbl-grid .dxbl-grid-header-row > th {
  background: var(--innvilo-surface-app);
  border-bottom: 1px solid var(--innvilo-border-default);
  box-sizing: border-box;
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  height: 2.5rem;
  letter-spacing: 0;
  line-height: 1.2;
  padding: 0 var(--innvilo-space-6);
  text-transform: none;
  vertical-align: middle;
}

body .staff-page .staff-grid.dxbl-grid .dxbl-grid-data-row > td {
  border-color: var(--innvilo-border-default);
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
  vertical-align: middle;
}

body .staff-page .staff-grid.dxbl-grid .dxbl-grid-data-row > td:first-child {
  border-left: 3px solid transparent;
}

body .staff-page .staff-grid.dxbl-grid .dxbl-grid-data-row:hover > td {
  background: var(--innvilo-grid-hover-surface);
}

/* Own pager: 40px page-size combobox and 36px square navigation buttons. */
body .staff-page .staff-pager__size-editor.dxbl-text-edit {
  align-items: center;
  border: 1px solid var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-shadow: none !important;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  height: 2.25rem;
  max-height: 2.25rem;
  min-height: 2.25rem;
  min-width: 4.5rem;
  width: 4.5rem;
}

body .staff-pager__size-list.dxbl-dropdown-dialog,
body .staff-pager__size-list .dxbl-dropdown-body {
  border-radius: var(--innvilo-radius-md);
  min-width: 4.5rem;
}

body .staff-pager__size-list .dxbl-list-box-item,
body .staff-pager__size-list [role=option] {
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-3) var(--innvilo-space-5);
}

body .staff-pager__size-list [aria-selected=true],
body .staff-pager__size-list .dxbl-list-box-item.dxbl-active {
  background: var(--innvilo-color-primary-soft) !important;
  color: var(--color-primary) !important;
}

body .staff-page .staff-pager__size-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring) !important;
}

body .staff-page .staff-pager__size-editor.dxbl-text-edit input {
  align-self: center;
  flex: 1 1 auto;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  min-width: 0;
  overflow: visible;
  padding: 0 0 0 var(--innvilo-space-4);
  text-align: left;
  text-overflow: clip;
  width: auto;
}

body .staff-page .staff-pager__size-editor.dxbl-text-edit .dxbl-btn-group {
  align-items: stretch;
  background: transparent !important;
  border: 0 !important;
  display: inline-flex;
  flex: 0 0 1.5rem;
  margin: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

body .staff-page .staff-pager__size-editor.dxbl-text-edit .dxbl-btn {
  align-items: center;
  align-self: stretch;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0;
  box-shadow: none !important;
  color: var(--innvilo-text-secondary) !important;
  display: inline-flex;
  height: auto;
  justify-content: center;
  margin: 0;
  min-height: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

body .staff-page .staff-pager__size-editor.dxbl-text-edit .dxbl-btn .dxbl-image {
  height: 0.75rem;
  width: 0.75rem;
}

body .staff-page .staff-pager__size-editor.dxbl-text-edit::after,
body .staff-page .staff-search-editor.dxbl-text-edit::after,
body .staff-page .staff-mobile-search.dxbl-text-edit::after {
  display: none;
}

body .staff-page .staff-pager__button.dxbl-btn {
  align-items: center;
  border-radius: var(--innvilo-radius-md);
  display: inline-flex;
  flex: 0 0 2.25rem;
  height: 2.25rem;
  justify-content: center;
  min-height: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .staff-page .staff-pager__button.dxbl-btn .dxbl-image {
  margin: 0;
}

body .staff-page .staff-mobile-refresh.dxbl-btn {
  border-radius: var(--innvilo-radius-xs);
  height: 2.75rem;
  min-height: 2.75rem;
  width: 2.75rem;
}

body .staff-page .staff-mobile-filter.dxbl-btn {
  background: var(--innvilo-surface-card) !important;
  border-color: var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-sizing: border-box;
  flex: 0 0 auto;
  gap: var(--innvilo-space-3);
  height: 2.75rem;
  min-height: 2.75rem;
  padding-inline: var(--innvilo-space-5);
  white-space: nowrap;
}

/* Mobile filter overlay: DevExpress popup root as a full-screen sheet. */
body .staff-mobile-overlay.dxbl-popup {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none;
  height: 100dvh !important;
  inset: 0 !important;
  margin: 0 !important;
  max-height: 100dvh !important;
  max-width: 100vw !important;
  position: fixed !important;
  transform: none !important;
  width: 100vw !important;
}

body .staff-mobile-overlay.dxbl-popup > .dxbl-modal-content,
body .staff-mobile-overlay.dxbl-popup .dxbl-popup-body {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  height: 100% !important;
  max-height: 100% !important;
  max-width: 100% !important;
  overflow: hidden;
  padding: 0 !important;
  width: 100% !important;
}

body .staff-mobile-overlay .staff-overlay {
  height: 100%;
}

/* Sections inside the overlay use the full height: the option list grows, actions stay at the bottom. */
body .staff-mobile-overlay .inquiry-filter-form {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: var(--innvilo-space-6);
}

body .staff-mobile-overlay .inquiry-filter-form__listbox {
  flex: 1 1 auto;
  max-height: none;
  min-height: 10rem;
}

body .staff-mobile-overlay .inquiry-filter-form__actions {
  margin-top: auto;
}

body .staff-mobile-overlay .inquiry-filter-form .dx-app-button.dxbl-btn,
body .staff-mobile-overlay .staff-overlay__done.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

body .staff-page .staff-grid.dxbl-grid .staff-grid-row--inactive > td {
  color: var(--innvilo-text-secondary);
}

/* Zeilenaktionen "Öffnen" (Link), "Bearbeiten" und "Aktivieren/Deaktivieren" (DevExpress) im Grid:
   alle drei 40px im Quadrat, ein Radius, 16px Ikone, kein Rahmen; Textbuttons in den Karten (44px). */
body .staff-page .staff-grid .staff-row-action,
body .staff-page .staff-grid .staff-row-action.dxbl-btn {
  align-items: center;
  background: var(--innvilo-surface-muted) !important;
  border: 1px solid transparent !important;
  border-radius: var(--innvilo-radius-xs) !important;
  box-shadow: none !important;
  box-sizing: border-box;
  color: var(--innvilo-text-primary) !important;
  display: inline-flex;
  flex: 0 0 2.5rem;
  font-size: 1rem;
  height: 2.5rem;
  justify-content: center;
  line-height: 1;
  margin: 0;
  min-height: 2.5rem;
  min-width: 2.5rem;
  padding: 0;
  width: 2.5rem;
}

body .staff-page .staff-grid .staff-row-action.dxbl-btn .dxbl-image,
body .staff-page .staff-grid .staff-row-action.dxbl-btn .dxbl-image::before,
body .staff-page .staff-grid .staff-row-action i {
  font-size: 1rem;
  height: 1rem;
  line-height: 1;
  margin: 0;
  width: 1rem;
}

body .staff-page .staff-grid .staff-row-action:hover,
body .staff-page .staff-grid .staff-row-action:focus-visible,
body .staff-page .staff-grid .staff-row-action.dxbl-btn:hover,
body .staff-page .staff-grid .staff-row-action.dxbl-btn:focus-visible {
  background: var(--innvilo-border-default) !important;
  color: var(--innvilo-text-primary) !important;
}

body .staff-page .staff-mobile-card .staff-row-action.dxbl-btn,
body .staff-page .staff-mobile-more.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

body .staff-page .staff-mobile-create.dxbl-btn {
  border-radius: var(--innvilo-radius-xs);
  height: 2.75rem;
  min-height: 2.75rem;
  width: 2.75rem;
}

body .staff-page .staff-head__actions .dx-app-button.dxbl-btn,
body .staff-page .staff-state__actions .dx-app-button.dxbl-btn,
body .staff-page .staff-mobile-state .dx-app-button.dxbl-btn {
  min-height: 2.75rem;
}

/* Detailseite: Hero-Aktionen (44px), Abschnittsaktionen, Zeilenaktionen in Aufenthalten und Verlauf
   (36px Icon-Buttons, 44px Textbuttons unterhalb von 992px), Seitennavigation der Abschnitte. */
body .staff-detail .staff-detail-head__actions .dx-app-button.dxbl-btn,
body .staff-detail .staff-detail-state__actions .dx-app-button.dxbl-btn,
body .staff-detail .staff-section-action.dxbl-btn,
body .staff-detail .staff-section-more.dxbl-btn {
  border-radius: var(--innvilo-radius-xs);
  min-height: 2.75rem;
  white-space: nowrap;
}

body .staff-detail .staff-detail-action.dx-app-icon-button.dxbl-btn {
  height: 2.75rem;
  min-width: 2.75rem;
  width: 2.75rem;
}

body .staff-detail .staff-row-action.dxbl-btn {
  background: var(--innvilo-surface-card) !important;
  border-color: transparent !important;
  border-radius: var(--innvilo-radius-xs);
  color: var(--innvilo-text-primary) !important;
  min-height: 2.25rem;
  white-space: nowrap;
}

body .staff-detail .staff-row-action.dx-app-icon-button.dxbl-btn {
  align-items: center;
  display: inline-flex;
  flex: 0 0 2.25rem;
  height: 2.25rem;
  justify-content: center;
  min-width: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .staff-detail .staff-row-action.dxbl-btn:hover,
body .staff-detail .staff-row-action.dxbl-btn:focus-visible {
  background: var(--innvilo-border-default) !important;
  color: var(--innvilo-text-primary) !important;
}

body .staff-detail .staff-section-more.dxbl-btn {
  width: 100%;
}

@media (max-width: 61.99rem) {
  body .staff-detail .staff-row-action.dxbl-btn {
    min-height: 2.75rem;
    width: 100%;
  }
  body .staff-detail .staff-row-action.dx-app-icon-button.dxbl-btn {
    height: 2.75rem;
    width: 2.75rem;
  }
}
/* Marken für Status, Heute und Vertrag sind in Grid, Karten, Detailseite und Popups identisch und deshalb global.
   Farbe trägt Bedeutung: Erfolg für aktiv und im Dienst, Warnton für Urlaub, Krankheit und Entwurf, sonst neutral. */
body .staff-status,
body .staff-today,
body .staff-contract,
body .staff-type {
  align-items: center;
  background: var(--innvilo-surface-app);
  border: 1px solid var(--innvilo-border-default);
  border-radius: 999px;
  color: var(--innvilo-text-secondary);
  display: inline-flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  gap: 0.35rem;
  line-height: 1.2;
  padding: 0.3rem 0.65rem;
  white-space: nowrap;
}

/* The today marker carries a time range ("Im Dienst 06:45 bis 14:55") and may wrap onto two lines inside the grid cell. */
body .staff-today {
  text-align: center;
  white-space: normal;
}

body .staff-status i {
  font-size: 0.7rem;
}

body .staff-status.is-active,
body .staff-today.is-on-duty,
body .staff-contract.is-active {
  background: var(--color-success-surface);
  border-color: var(--color-success-border);
  color: var(--color-success);
}

body .staff-status.is-seasonal,
body .staff-status.is-external {
  border-color: var(--innvilo-border-strong);
  color: var(--innvilo-text-primary);
}

body .staff-status.is-inactive,
body .staff-contract.is-ended,
body .staff-contract.is-none,
body .staff-today.is-off {
  border-color: var(--innvilo-border-strong);
  color: var(--innvilo-text-muted);
}

body .staff-today.is-vacation,
body .staff-today.is-sick,
body .staff-today.is-absent,
body .staff-contract.is-draft {
  background: var(--color-warning-surface);
  border-color: var(--color-warning-border);
  color: var(--color-warning-text);
}

/* Segment-Buttons im Popup (Status, Beschäftigungsart, Vergütung, Dokumentart): ein Radius, der aktive Eintrag in Primärfarbe. */
.staff-form__segments {
  display: grid;
  gap: var(--innvilo-space-2);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.staff-form__segments.is-two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.staff-form__segments.is-four {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.staff-form__segments.is-five {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

/* Schnellwahl im Nachtrag: Name über der Zeit, zwei Zeilen im selben Segment. */
.staff-form__segment--stacked {
  display: grid;
  gap: var(--innvilo-space-1);
  justify-items: center;
  min-height: 3.25rem;
  padding: var(--innvilo-space-2) var(--innvilo-space-3);
}

.staff-form__segment--stacked small {
  font-family: "Lato-Regular", Arial, sans-serif;
  font-size: var(--innvilo-font-size-micro);
  font-variant-numeric: tabular-nums;
  opacity: 0.85;
}

/* Pause: Segmente 0 bis 60 Minuten plus Zahlfeld für andere Werte in einer Zeile. */
.staff-form__break {
  align-items: center;
  display: grid;
  gap: var(--innvilo-space-3);
  grid-template-columns: minmax(0, 1fr) 6.5rem;
}

body .staff-form__break-editor.dxbl-spin-edit {
  width: 6.5rem;
}

/* Live-Zusammenfassung (Netto im Nachtrag, Werktage im Antrag): eine Fläche, Wert groß, Kontext klein. */
.staff-form__summary {
  align-items: baseline;
  background: var(--innvilo-surface-app);
  border-radius: var(--innvilo-radius-xs);
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-2) var(--innvilo-space-4);
  margin: 0;
  padding: var(--innvilo-space-4) var(--innvilo-space-5);
}

.staff-form__summary > span {
  color: var(--innvilo-text-secondary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  letter-spacing: var(--innvilo-tracking-caption);
}

.staff-form__summary > strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-heading);
  font-variant-numeric: tabular-nums;
}

.staff-form__summary > small {
  color: var(--innvilo-text-secondary);
  flex-basis: 100%;
  font-size: var(--innvilo-font-size-caption);
}

/* Marken für Freigabe, Abwesenheitsart und -status und Dienststatus (Akte, Runde 2). Farbe trägt Bedeutung:
   Erfolg für freigegeben, genehmigt und abgeschlossen, Warnton für offen, beantragt und krank, Fehler für abgelehnt. */
body .staff-approval,
body .staff-absence-type,
body .staff-absence-status,
body .staff-shift-status {
  align-items: center;
  background: var(--innvilo-surface-app);
  border: 1px solid var(--innvilo-border-default);
  border-radius: 999px;
  color: var(--innvilo-text-secondary);
  display: inline-flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  gap: 0.35rem;
  line-height: 1.2;
  max-width: 100%;
  padding: 0.3rem 0.65rem;
  white-space: nowrap;
}

body .staff-shift-status {
  font-size: var(--innvilo-font-size-micro);
  padding: 0.2rem 0.5rem;
}

body .staff-approval.is-approved,
body .staff-absence-status.is-approved,
body .staff-shift-status.is-completed,
body .staff-shift-status.is-published {
  background: var(--color-success-surface);
  border-color: var(--color-success-border);
  color: var(--color-success);
}

body .staff-approval.is-pending,
body .staff-absence-status.is-planned,
body .staff-absence-status.is-in-review,
body .staff-absence-type.is-sick,
body .staff-shift-status.is-changed {
  background: var(--color-warning-surface);
  border-color: var(--color-warning-border);
  color: var(--color-warning-text);
}

body .staff-approval.is-rejected,
body .staff-absence-status.is-rejected {
  border-color: var(--color-error);
  color: var(--color-error);
}

body .staff-absence-status.is-cancelled,
body .staff-shift-status.is-cancelled,
body .staff-shift-status.is-draft {
  border-color: var(--innvilo-border-strong);
  color: var(--innvilo-text-muted);
}

body .staff-absence-type.is-vacation {
  background: var(--innvilo-color-primary-soft);
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.staff-form__segment {
  align-items: center;
  background: var(--innvilo-surface-app);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-xs);
  color: var(--innvilo-text-secondary);
  cursor: pointer;
  display: inline-flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  gap: var(--innvilo-space-2);
  justify-content: center;
  min-height: 2.75rem;
  padding: 0 var(--innvilo-space-3);
  text-align: center;
  transition: background-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), border-color var(--innvilo-duration-fast) var(--innvilo-easing-standard);
}

.staff-form__segment:hover {
  border-color: var(--innvilo-border-strong);
  color: var(--innvilo-text-primary);
}

.staff-form__segment:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

.staff-form__segment.is-active {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--innvilo-text-inverse);
}

.staff-form__segment[disabled] {
  cursor: default;
  opacity: 0.6;
}

.staff-form__chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-2);
  margin-top: var(--innvilo-space-2);
}

.staff-form__chip {
  background: var(--innvilo-surface-app);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-full);
  color: var(--innvilo-text-secondary);
  cursor: pointer;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  min-height: 2rem;
  padding: 0 var(--innvilo-space-3);
  transition: background-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), border-color var(--innvilo-duration-fast) var(--innvilo-easing-standard);
}

.staff-form__chip:hover {
  border-color: var(--innvilo-border-strong);
  color: var(--innvilo-text-primary);
}

.staff-form__chip:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

.staff-form__chip.is-active {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--innvilo-text-inverse);
}

.staff-form__chip[disabled] {
  cursor: default;
  opacity: 0.6;
}

.staff-link-button {
  align-items: center;
  background: none;
  border: 0;
  color: var(--color-primary);
  cursor: pointer;
  display: inline-flex;
  font: inherit;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  gap: var(--innvilo-space-2);
  min-height: 2.75rem;
  padding: 0 var(--innvilo-space-2);
}

.staff-link-button:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

.staff-link-button[disabled] {
  color: var(--innvilo-text-muted);
  cursor: default;
}

/* Mitarbeiter: Popups (Editor, Status). Die Inhalte sitzen im PopupCenter außerhalb des Seitenbaums,
   deshalb global. Ein Radius, keine Schatten, auf dem Handy Vollbild ohne Radius. */
body .pms-popup-center--medium:has(.staff-form) .pms-popup-center__body-shell {
  overflow: auto;
}

body .pms-popup-center--medium:has(.staff-form) .pms-popup-center__body {
  padding: var(--innvilo-space-5);
}

body .pms-popup-center--fullscreen:has(.staff-form) .pms-popup-center__body {
  padding: var(--innvilo-space-4);
}

.staff-form {
  display: grid;
  gap: var(--innvilo-space-5);
  min-width: 0;
}

.staff-form__intro {
  color: var(--innvilo-text-secondary);
  display: grid;
  font-size: var(--innvilo-font-size-body);
  gap: var(--innvilo-space-1);
  line-height: 1.5;
  margin: 0;
}

.staff-form__intro strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
}

.staff-form__intro span {
  font-size: var(--innvilo-font-size-caption);
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.staff-form__grid {
  display: grid;
  gap: var(--innvilo-space-4);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  min-width: 0;
}

.staff-form__field {
  display: grid;
  gap: var(--innvilo-space-2);
  min-width: 0;
}

.staff-form__field--wide {
  grid-column: 1/-1;
}

.staff-form__field > span,
.staff-form__field > label {
  color: var(--innvilo-text-secondary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
}

.staff-form__field > small {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  line-height: 1.4;
}

body .staff-form__editor.dxbl-text-edit,
body .staff-form__search.dxbl-text-edit,
body .staff-form__editor.dxbl-combobox,
body .staff-form__editor.dxbl-spin-edit,
body .staff-form__editor.dxbl-date-edit,
body .staff-form__editor.dxbl-memo {
  border-radius: var(--innvilo-radius-xs);
  width: 100%;
}

body .staff-form__list.dxbl-dropdown-dialog,
body .staff-form__list .dxbl-dropdown-body {
  border-radius: var(--innvilo-radius-xs);
}

body .staff-form__list .dxbl-list-box-item {
  padding: var(--innvilo-space-3) var(--innvilo-space-5);
}

/* Fieldsets group person, employment, contract and access; a hairline above each group, no outline. */
.staff-form__group {
  border: 0;
  border-top: 1px solid var(--innvilo-border-default);
  display: grid;
  gap: var(--innvilo-space-4);
  margin: 0;
  min-width: 0;
  padding: var(--innvilo-space-5) 0 0;
}

.staff-form__group > legend {
  color: var(--innvilo-text-primary);
  float: left;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  letter-spacing: var(--innvilo-tracking-caption);
  padding: 0;
  width: 100%;
}

/* Result facts in the popups (personnel number, contract number), read-only. */
.staff-form__result {
  display: grid;
  gap: var(--innvilo-space-4);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
  min-width: 0;
}

.staff-form__result > div {
  background: var(--innvilo-surface-app);
  border-radius: var(--innvilo-radius-xs);
  display: grid;
  gap: var(--innvilo-space-2);
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
}

.staff-form__result dt {
  color: var(--innvilo-text-secondary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  letter-spacing: var(--innvilo-tracking-caption);
}

.staff-form__result dd {
  color: var(--innvilo-text-primary);
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-heading);
  font-variant-numeric: tabular-nums;
  margin: 0;
}

.staff-form .staff-number {
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-variant-numeric: tabular-nums;
  letter-spacing: var(--innvilo-tracking-caption);
  text-transform: uppercase;
}

.staff-form__hint {
  align-items: flex-start;
  color: var(--innvilo-text-secondary);
  display: flex;
  font-size: var(--innvilo-font-size-caption);
  gap: var(--innvilo-space-2);
  line-height: 1.45;
  margin: 0;
}

.staff-form__hint i {
  color: var(--color-primary);
  margin-top: 2px;
}

.staff-form__hint.is-attention,
.staff-form__hint.is-attention i {
  color: var(--color-warning-text);
}

.staff-form__error {
  align-items: flex-start;
  border-left: 3px solid var(--color-error);
  color: var(--color-error);
  display: flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
  gap: var(--innvilo-space-2);
  margin: 0;
  padding: var(--innvilo-space-2) var(--innvilo-space-4);
}

@media (max-width: 47.99rem) {
  .staff-form__grid,
  .staff-form__result {
    grid-template-columns: minmax(0, 1fr);
  }
}
/* Assistent beim Anlegen: Schrittanzeige als Zeile aus nummerierten Punkten, erledigte Schritte in Primärfarbe,
   der aktuelle Schritt ausgefüllt. Darunter die Navigation "Zurück" plus "Schritt N von 5". */
.staff-steps {
  display: grid;
  gap: var(--innvilo-space-2);
  grid-template-columns: repeat(5, minmax(0, 1fr));
  list-style: none;
  margin: 0;
  padding: 0;
}

.staff-step {
  align-items: center;
  border-top: 2px solid var(--innvilo-border-default);
  color: var(--innvilo-text-muted);
  display: flex;
  font-size: var(--innvilo-font-size-caption);
  gap: var(--innvilo-space-2);
  min-width: 0;
  padding-top: var(--innvilo-space-3);
}

.staff-step.is-done,
.staff-step.is-current {
  border-top-color: var(--color-primary);
  color: var(--innvilo-text-primary);
}

.staff-step__index {
  align-items: center;
  border: 1px solid currentColor;
  border-radius: var(--innvilo-radius-full);
  display: inline-flex;
  flex: 0 0 auto;
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-micro);
  height: 1.25rem;
  justify-content: center;
  line-height: 1;
  width: 1.25rem;
}

.staff-step.is-current .staff-step__index {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--innvilo-text-inverse);
}

.staff-step__label {
  font-family: "Lato-SemiBold", Arial, sans-serif;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.staff-form__nav {
  align-items: center;
  display: flex;
  gap: var(--innvilo-space-4);
  justify-content: space-between;
  margin-top: calc(var(--innvilo-space-3) * -1);
}

.staff-form__nav-hint {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
}

/* Schalter: das Eingabefeld selbst ist der sichtbare Schalter (keine versteckten Inputs), 44px Zeilenhöhe. */
.staff-form__switches {
  display: grid;
  gap: var(--innvilo-space-2);
}

.staff-switch {
  align-items: center;
  cursor: pointer;
  display: flex;
  gap: var(--innvilo-space-4);
  min-height: 2.75rem;
}

.staff-switch__input {
  appearance: none;
  background: var(--innvilo-border-strong);
  border: 0;
  border-radius: var(--innvilo-radius-full);
  cursor: pointer;
  flex: 0 0 auto;
  height: 1.5rem;
  margin: 0;
  position: relative;
  transition: background-color var(--innvilo-duration-fast) var(--innvilo-easing-standard);
  width: 2.75rem;
}

.staff-switch__input::after {
  background: var(--innvilo-surface-card);
  border-radius: var(--innvilo-radius-full);
  content: "";
  height: 1.125rem;
  left: 0.1875rem;
  position: absolute;
  top: 0.1875rem;
  transition: transform var(--innvilo-duration-fast) var(--innvilo-easing-standard);
  width: 1.125rem;
}

.staff-switch__input:checked {
  background: var(--color-primary);
}

.staff-switch__input:checked::after {
  transform: translateX(1.25rem);
}

.staff-switch__input:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

.staff-switch__input[disabled] {
  cursor: default;
  opacity: 0.6;
}

.staff-switch__label {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
}

/* Prüfungsschritt und Ergebnisphase: Definitionsliste mit Hairlines, Vertragsnummer als Nummer. */
.staff-review {
  display: grid;
  margin: 0;
}

.staff-review > div {
  border-top: 1px solid var(--innvilo-border-default);
  display: grid;
  gap: var(--innvilo-space-1) var(--innvilo-space-6);
  grid-template-columns: 11rem minmax(0, 1fr);
  padding: var(--innvilo-space-3) 0;
}

.staff-review > div:first-child {
  border-top: 0;
  padding-top: 0;
}

.staff-review dt {
  color: var(--innvilo-text-secondary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  letter-spacing: var(--innvilo-tracking-caption);
}

.staff-review dd {
  color: var(--innvilo-text-primary);
  font-size: var(--innvilo-font-size-label);
  line-height: 1.45;
  margin: 0;
  overflow-wrap: anywhere;
}

.staff-form__done {
  display: grid;
  gap: var(--innvilo-space-5);
  justify-items: start;
}

.staff-form__done .staff-form__result {
  width: 100%;
}

.staff-form__value {
  color: var(--innvilo-text-primary);
  font-size: var(--innvilo-font-size-body);
  line-height: 1.5;
  margin: 0;
  min-height: 2.5rem;
  padding-top: var(--innvilo-space-2);
}

/* Datei-Upload: natives Eingabefeld mit 44px Zeile, Dateiname darunter. */
.staff-form__file {
  display: grid;
  gap: var(--innvilo-space-2);
}

.staff-form__file-label {
  color: var(--innvilo-text-secondary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
}

.staff-form__file input[type=file] {
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-xs);
  box-sizing: border-box;
  color: var(--innvilo-text-primary);
  font: inherit;
  font-size: var(--innvilo-font-size-label);
  min-height: 2.75rem;
  padding: var(--innvilo-space-2) var(--innvilo-space-3);
  width: 100%;
}

.staff-form__file input[type=file]:focus-visible {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring);
  outline: 0;
}

.staff-form__file small {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
}

body .staff-form__open.dx-app-button {
  min-height: 2.75rem;
}

/* Detailseite: Stundenwerkzeuge mit nativen Datumsfeldern (40px), Wochennavigation im Dienstplan. */
body .staff-detail .staff-native-input {
  background: var(--innvilo-surface-card);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-md);
  box-sizing: border-box;
  color: var(--innvilo-text-primary);
  font: inherit;
  font-size: var(--innvilo-font-size-label);
  height: 2.5rem;
  padding: 0 var(--innvilo-space-3);
}

body .staff-detail .staff-native-input:focus-visible {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring);
  outline: 0;
}

body .staff-detail .staff-schedule-today.dxbl-btn {
  border-radius: var(--innvilo-radius-md);
  min-height: 2.25rem;
}

/* Vertragsvorschau: eingebettetes Dokument auf der Kartenfläche, A4-ähnliche Höhe, eine Hairline. */
.staff-contract-preview {
  background: var(--innvilo-surface-card);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-xs);
  display: block;
  height: 40rem;
  width: 100%;
}

@media (max-width: 47.99rem) {
  .staff-steps {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .staff-step__label {
    display: none;
  }
  .staff-step.is-current .staff-step__label {
    display: inline;
  }
  .staff-form__segments.is-four {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .staff-review > div {
    grid-template-columns: minmax(0, 1fr);
  }
  .staff-contract-preview {
    height: 28rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .staff-form__segment,
  .staff-switch__input,
  .staff-switch__input::after {
    transition: none;
  }
}
/* Personal / Lohnexport: DevExpress roots and popup-hosted shared controls. The feature keeps
   its ordinary layout rules in the colocated isolated stylesheets. Every hook below targets a
   DevExpress root (.dxbl-*) or the shared filter center, which do not receive the scoped attribute. */
body .payroll-page .dx-app-button.dxbl-btn,
body .payroll-page .dxbl-text-edit,
body .payroll-page .dxbl-combobox,
body .payroll-page .payroll-grid.dxbl-grid {
  border-radius: var(--innvilo-radius-xs);
}

body .payroll-page .payroll-head .dx-app-button.dxbl-btn,
body .payroll-page .payroll-toolbar .dx-app-button.dxbl-btn,
body .payroll-page .payroll-state .dx-app-button.dxbl-btn {
  min-height: 2.5rem;
  white-space: nowrap;
}

/* Toolbar and pager controls carry the larger control radius. */
body .payroll-page .payroll-toolbar .dxbl-text-edit,
body .payroll-page .payroll-toolbar .dxbl-combobox,
body .payroll-page .payroll-toolbar .dx-app-button.dxbl-btn,
body .payroll-page .payroll-mobile-tools .dxbl-text-edit,
body .payroll-page .payroll-mobile-filter.dxbl-btn {
  border-radius: var(--innvilo-radius-md);
}

body .payroll-page .payroll-toolbar .dxbl-text-edit,
body .payroll-page .payroll-toolbar .dxbl-combobox {
  min-height: 2.5rem;
}

/* The search field takes the button height as its measure (40px desktop, 44px mobile). */
body .payroll-page .payroll-search-editor.dxbl-text-edit {
  height: 2.5rem;
  max-height: 2.5rem;
  min-height: 2.5rem;
}

body .payroll-page .payroll-mobile-search.dxbl-text-edit {
  border: 0 !important;
  box-shadow: inset 0 0 0 1px var(--innvilo-border-default);
  flex: 1 1 auto;
  height: 2.75rem;
  max-height: 2.75rem;
  min-height: 2.75rem;
}

body .payroll-page .payroll-mobile-search.dxbl-text-edit:focus-within {
  box-shadow: inset 0 0 0 1px var(--color-primary), 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .payroll-page .payroll-search-editor.dxbl-text-edit,
body .payroll-page .payroll-mobile-search.dxbl-text-edit {
  align-items: center;
  border-color: var(--innvilo-border-default);
  box-shadow: none;
  box-sizing: border-box;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  min-width: 0;
  width: 100%;
}

body .payroll-page .payroll-search-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .payroll-page .payroll-search-editor.dxbl-text-edit input,
body .payroll-page .payroll-mobile-search.dxbl-text-edit input {
  align-self: center;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  padding: 0 var(--innvilo-space-4) 0 var(--innvilo-space-3);
}

body .payroll-page .payroll-search-editor.dxbl-text-edit input::placeholder,
body .payroll-page .payroll-mobile-search.dxbl-text-edit input::placeholder {
  color: var(--innvilo-text-muted);
  line-height: 1.2;
  opacity: 1;
}

body .payroll-page .payroll-search-editor.dxbl-text-edit .dxbl-btn,
body .payroll-page .payroll-mobile-search.dxbl-text-edit .dxbl-btn {
  height: 100%;
  min-height: 0;
}

body .payroll-page .payroll-mobile-search.dxbl-text-edit .dxbl-btn {
  min-width: 2.75rem;
  width: 2.75rem;
}

body .payroll-page .inquiry-filter-dropdown__button.is-active.dxbl-btn,
body .payroll-page .payroll-mobile-filter.is-active.dxbl-btn {
  background: var(--innvilo-color-primary-soft) !important;
  border-color: var(--color-primary) !important;
  color: var(--color-primary) !important;
}

body .payroll-page .inquiry-filter-dropdown__button.dxbl-btn {
  gap: var(--innvilo-space-3);
  min-height: 2.5rem;
  padding-inline: var(--innvilo-space-4);
}

/* Grid: quiet header, comfortable rows, group rows as section labels, inactive rows in the secondary text colour. */
body .payroll-page .payroll-grid.dxbl-grid {
  border: 0;
  max-width: 100%;
  width: 100%;
}

body .payroll-page .payroll-grid.dxbl-grid .dxbl-grid-header-row > th {
  background: var(--innvilo-surface-app);
  border-bottom: 1px solid var(--innvilo-border-default);
  box-sizing: border-box;
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  height: 2.5rem;
  letter-spacing: 0;
  line-height: 1.2;
  padding: 0 var(--innvilo-space-6);
  text-transform: none;
  vertical-align: middle;
}

body .payroll-page .payroll-grid.dxbl-grid .dxbl-grid-data-row > td {
  border-color: var(--innvilo-border-default);
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
  vertical-align: middle;
}

body .payroll-page .payroll-grid.dxbl-grid .dxbl-grid-data-row > td:first-child {
  border-left: 3px solid transparent;
}

body .payroll-page .payroll-grid.dxbl-grid .dxbl-grid-data-row:hover > td {
  background: var(--innvilo-grid-hover-surface);
}

/* Own pager: 40px page-size combobox and 36px square navigation buttons. */
body .payroll-page .payroll-pager__size-editor.dxbl-text-edit {
  align-items: center;
  border: 1px solid var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-shadow: none !important;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  height: 2.25rem;
  max-height: 2.25rem;
  min-height: 2.25rem;
  min-width: 4.5rem;
  width: 4.5rem;
}

body .payroll-pager__size-list.dxbl-dropdown-dialog,
body .payroll-pager__size-list .dxbl-dropdown-body {
  border-radius: var(--innvilo-radius-md);
  min-width: 4.5rem;
}

body .payroll-pager__size-list .dxbl-list-box-item,
body .payroll-pager__size-list [role=option] {
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-3) var(--innvilo-space-5);
}

body .payroll-pager__size-list [aria-selected=true],
body .payroll-pager__size-list .dxbl-list-box-item.dxbl-active {
  background: var(--innvilo-color-primary-soft) !important;
  color: var(--color-primary) !important;
}

body .payroll-page .payroll-pager__size-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring) !important;
}

body .payroll-page .payroll-pager__size-editor.dxbl-text-edit input {
  align-self: center;
  flex: 1 1 auto;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  min-width: 0;
  overflow: visible;
  padding: 0 0 0 var(--innvilo-space-4);
  text-align: left;
  text-overflow: clip;
  width: auto;
}

body .payroll-page .payroll-pager__size-editor.dxbl-text-edit .dxbl-btn-group {
  align-items: stretch;
  background: transparent !important;
  border: 0 !important;
  display: inline-flex;
  flex: 0 0 1.5rem;
  margin: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

body .payroll-page .payroll-pager__size-editor.dxbl-text-edit .dxbl-btn {
  align-items: center;
  align-self: stretch;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0;
  box-shadow: none !important;
  color: var(--innvilo-text-secondary) !important;
  display: inline-flex;
  height: auto;
  justify-content: center;
  margin: 0;
  min-height: 0;
  min-width: 1.5rem;
  padding: 0;
  width: 1.5rem;
}

body .payroll-page .payroll-pager__size-editor.dxbl-text-edit .dxbl-btn .dxbl-image {
  height: 0.75rem;
  width: 0.75rem;
}

body .payroll-page .payroll-pager__size-editor.dxbl-text-edit::after,
body .payroll-page .payroll-search-editor.dxbl-text-edit::after,
body .payroll-page .payroll-mobile-search.dxbl-text-edit::after {
  display: none;
}

body .payroll-page .payroll-pager__button.dxbl-btn {
  align-items: center;
  border-radius: var(--innvilo-radius-md);
  display: inline-flex;
  flex: 0 0 2.25rem;
  height: 2.25rem;
  justify-content: center;
  min-height: 2.25rem;
  padding: 0;
  width: 2.25rem;
}

body .payroll-page .payroll-pager__button.dxbl-btn .dxbl-image {
  margin: 0;
}

body .payroll-page .payroll-mobile-refresh.dxbl-btn {
  border-radius: var(--innvilo-radius-xs);
  height: 2.75rem;
  min-height: 2.75rem;
  width: 2.75rem;
}

body .payroll-page .payroll-mobile-filter.dxbl-btn {
  background: var(--innvilo-surface-card) !important;
  border-color: var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-sizing: border-box;
  flex: 0 0 auto;
  gap: var(--innvilo-space-3);
  height: 2.75rem;
  min-height: 2.75rem;
  padding-inline: var(--innvilo-space-5);
  white-space: nowrap;
}

/* Mobile filter overlay: DevExpress popup root as a full-screen sheet. */
body .payroll-mobile-overlay.dxbl-popup {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none;
  height: 100dvh !important;
  inset: 0 !important;
  margin: 0 !important;
  max-height: 100dvh !important;
  max-width: 100vw !important;
  position: fixed !important;
  transform: none !important;
  width: 100vw !important;
}

body .payroll-mobile-overlay.dxbl-popup > .dxbl-modal-content,
body .payroll-mobile-overlay.dxbl-popup .dxbl-popup-body {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  height: 100% !important;
  max-height: 100% !important;
  max-width: 100% !important;
  overflow: hidden;
  padding: 0 !important;
  width: 100% !important;
}

body .payroll-mobile-overlay .payroll-overlay {
  height: 100%;
}

/* Sections inside the overlay use the full height: the option list grows, actions stay at the bottom. */
body .payroll-mobile-overlay .inquiry-filter-form {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: var(--innvilo-space-6);
}

body .payroll-mobile-overlay .inquiry-filter-form__listbox {
  flex: 1 1 auto;
  max-height: none;
  min-height: 10rem;
}

body .payroll-mobile-overlay .inquiry-filter-form__actions {
  margin-top: auto;
}

body .payroll-mobile-overlay .inquiry-filter-form .dx-app-button.dxbl-btn,
body .payroll-mobile-overlay .payroll-overlay__done.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

body .payroll-page .payroll-grid.dxbl-grid .payroll-grid-row--no-contract > td {
  color: var(--innvilo-text-secondary);
}

/* Zeilenaktionen "Nachweis" (Link), "Nachweis erstellen" (DevExpress) und "Akte" (Link) im Grid:
   alle drei 40px im Quadrat, ein Radius, 16px Ikone, kein Rahmen; Textbuttons in den Karten (44px). */
body .payroll-page .payroll-grid .payroll-row-action,
body .payroll-page .payroll-grid .payroll-row-action.dxbl-btn {
  align-items: center;
  background: var(--innvilo-surface-muted) !important;
  border: 1px solid transparent !important;
  border-radius: var(--innvilo-radius-xs) !important;
  box-shadow: none !important;
  box-sizing: border-box;
  color: var(--innvilo-text-primary) !important;
  display: inline-flex;
  flex: 0 0 2.5rem;
  font-size: 1rem;
  height: 2.5rem;
  justify-content: center;
  line-height: 1;
  margin: 0;
  min-height: 2.5rem;
  min-width: 2.5rem;
  padding: 0;
  width: 2.5rem;
}

body .payroll-page .payroll-grid .payroll-row-action.dxbl-btn .dxbl-image,
body .payroll-page .payroll-grid .payroll-row-action.dxbl-btn .dxbl-image::before,
body .payroll-page .payroll-grid .payroll-row-action i {
  font-size: 1rem;
  height: 1rem;
  line-height: 1;
  margin: 0;
  width: 1rem;
}

body .payroll-page .payroll-grid .payroll-row-action:hover,
body .payroll-page .payroll-grid .payroll-row-action:focus-visible,
body .payroll-page .payroll-grid .payroll-row-action.dxbl-btn:hover,
body .payroll-page .payroll-grid .payroll-row-action.dxbl-btn:focus-visible {
  background: var(--innvilo-border-default) !important;
  color: var(--innvilo-text-primary) !important;
}

body .payroll-page .payroll-mobile-card .payroll-row-action.dxbl-btn,
body .payroll-page .payroll-mobile-more.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

body .payroll-page .payroll-mobile-prepare.dxbl-btn {
  border-radius: var(--innvilo-radius-xs);
  height: 2.75rem;
  min-height: 2.75rem;
  width: 2.75rem;
}

body .payroll-page .payroll-head__actions .dx-app-button.dxbl-btn,
body .payroll-page .payroll-state__actions .dx-app-button.dxbl-btn,
body .payroll-page .payroll-mobile-state .dx-app-button.dxbl-btn {
  min-height: 2.75rem;
}

/* Monatsumschalter (Pfeile und "Vormonat"), Anbieter- und Aktionsbuttons: überall 44px Touch-Ziel. */
body .payroll-page .payroll-period__button.dxbl-btn,
body .payroll-page .payroll-mobile-period__button.dxbl-btn {
  align-items: center;
  border-radius: var(--innvilo-radius-md);
  display: inline-flex;
  flex: 0 0 2.75rem;
  height: 2.75rem;
  justify-content: center;
  min-height: 2.75rem;
  padding: 0;
  width: 2.75rem;
}

body .payroll-page .payroll-period__current.dxbl-btn,
body .payroll-page .payroll-mobile-period__current.dxbl-btn {
  border-radius: var(--innvilo-radius-md);
  min-height: 2.75rem;
}

body .payroll-page .payroll-mobile-action.dxbl-btn,
body .payroll-page .payroll-mobile-action.dx-app-button {
  min-height: 2.75rem;
  width: 100%;
}

body .payroll-page .payroll-head__actions .payroll-csv.dx-app-button {
  min-height: 2.75rem;
}

/* Marken für Nachweisstatus und Anbieter sind in Grid, Karten und Anbieterleiste identisch und deshalb global.
   Farbe trägt Bedeutung: Erfolg für übermittelt und erhalten, Akzent für vorbereitet, Fehler für fehlgeschlagen. */
body .payroll-status,
body .payroll-provider-mark {
  align-items: center;
  background: var(--innvilo-surface-app);
  border: 1px solid var(--innvilo-border-default);
  border-radius: 999px;
  color: var(--innvilo-text-secondary);
  display: inline-flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  gap: 0.35rem;
  line-height: 1.2;
  padding: 0.3rem 0.65rem;
  white-space: nowrap;
}

body .payroll-status i {
  font-size: 0.7rem;
}

body .payroll-status.is-prepared,
body .payroll-provider-mark.is-configured {
  background: var(--innvilo-color-primary-soft);
  border-color: var(--color-primary);
  color: var(--color-primary);
}

body .payroll-status.is-transmitted,
body .payroll-status.is-received {
  background: var(--color-success-surface);
  border-color: var(--color-success-border);
  color: var(--color-success);
}

body .payroll-status.is-failed {
  border-color: var(--color-error);
  color: var(--color-error);
}

body .payroll-status.is-none {
  border-color: var(--innvilo-border-strong);
  color: var(--innvilo-text-muted);
}

/* Hinweise je Zeile: kompakte Liste ohne Aufzählungszeichen, Fehlermeldungen im Fehlerton. */
body .payroll-page .payroll-issues {
  color: var(--innvilo-text-secondary);
  display: grid;
  font-size: var(--innvilo-font-size-caption);
  gap: var(--innvilo-space-1);
  line-height: 1.4;
  list-style: none;
  margin: 0;
  padding: 0;
}

body .payroll-page .payroll-issues li.is-failed {
  color: var(--color-error);
}

body .payroll-page .payroll-balance {
  font-variant-numeric: tabular-nums;
}

body .payroll-page .payroll-balance.is-negative {
  color: var(--color-warning-text);
}

body .payroll-page .payroll-balance.is-positive {
  color: var(--color-success);
}

/* Personal / Dienstplan: DevExpress roots (scheduler, editors, buttons), shared marks and popup-hosted
   controls. The feature keeps its ordinary layout rules in the colocated isolated stylesheets. Every hook
   below targets a DevExpress root (.dxbl-*), a popup body outside the page tree or a mark that is shared
   by desktop, mobile, assistant and popups. One accent, one radius, no shadows outside popups. */
body .roster-page .dx-app-button.dxbl-btn,
body .roster-page .dxbl-text-edit,
body .roster-page .dxbl-combobox {
  border-radius: var(--innvilo-radius-xs);
}

body .roster-page .roster-head .dx-app-button.dxbl-btn,
body .roster-page .roster-toolbar .dx-app-button.dxbl-btn,
body .roster-page .roster-state .dx-app-button.dxbl-btn {
  min-height: 2.5rem;
  white-space: nowrap;
}

body .roster-page .roster-toolbar .dxbl-text-edit,
body .roster-page .roster-toolbar .dx-app-button.dxbl-btn,
body .roster-page .roster-mobile-tools .dxbl-text-edit,
body .roster-page .roster-mobile-filter.dxbl-btn {
  border-radius: var(--innvilo-radius-md);
}

body .roster-page .roster-toolbar .dxbl-text-edit {
  min-height: 2.5rem;
}

body .roster-page .roster-search-editor.dxbl-text-edit,
body .roster-page .roster-mobile-search.dxbl-text-edit {
  align-items: center;
  border-color: var(--innvilo-border-default);
  box-shadow: none;
  box-sizing: border-box;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  min-width: 0;
  width: 100%;
}

body .roster-page .roster-search-editor.dxbl-text-edit {
  height: 2.5rem;
  max-height: 2.5rem;
  min-height: 2.5rem;
}

body .roster-page .roster-search-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .roster-page .roster-mobile-search.dxbl-text-edit {
  border: 0 !important;
  box-shadow: inset 0 0 0 1px var(--innvilo-border-default);
  flex: 1 1 auto;
  height: 2.75rem;
  max-height: 2.75rem;
  min-height: 2.75rem;
}

body .roster-page .roster-mobile-search.dxbl-text-edit:focus-within {
  box-shadow: inset 0 0 0 1px var(--color-primary), 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .roster-page .roster-search-editor.dxbl-text-edit input,
body .roster-page .roster-mobile-search.dxbl-text-edit input {
  align-self: center;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  padding: 0 var(--innvilo-space-4) 0 var(--innvilo-space-3);
}

body .roster-page .roster-search-editor.dxbl-text-edit input::placeholder,
body .roster-page .roster-mobile-search.dxbl-text-edit input::placeholder {
  color: var(--innvilo-text-muted);
  line-height: 1.2;
  opacity: 1;
}

body .roster-page .roster-search-editor.dxbl-text-edit .dxbl-btn,
body .roster-page .roster-mobile-search.dxbl-text-edit .dxbl-btn {
  height: 100%;
  min-height: 0;
}

body .roster-page .roster-mobile-search.dxbl-text-edit .dxbl-btn {
  min-width: 2.75rem;
  width: 2.75rem;
}

body .roster-page .roster-mobile-filter.dxbl-btn,
body .roster-page .roster-mobile-period__button.dxbl-btn,
body .roster-page .roster-mobile-period__current.dxbl-btn,
body .roster-page .roster-mobile-refresh.dxbl-btn,
body .roster-page .roster-mobile-more.dxbl-btn,
body .roster-page .roster-mobile-create.dxbl-btn {
  min-height: 2.75rem;
}

body .roster-page .inquiry-filter-dropdown__button.is-active.dxbl-btn,
body .roster-page .roster-mobile-filter.is-active.dxbl-btn {
  background: var(--innvilo-color-primary-soft) !important;
  border-color: var(--color-primary) !important;
  color: var(--color-primary) !important;
}

body .roster-page .inquiry-filter-dropdown__button.dxbl-btn {
  gap: var(--innvilo-space-3);
  min-height: 2.5rem;
  padding-inline: var(--innvilo-space-4);
}

/* The "Prüfen" button carries its critical count as a badge inside the DevExpress button. */
body .roster-page .roster-check.dxbl-btn .roster-check__badge {
  margin-left: var(--innvilo-space-2);
}

/* Shared marks: plan status in the hero, severity in assistant and popups, shift status on cards.
   Colour carries meaning only: success for published, warning for changed, error for critical. */
body .roster-plan-status,
body .roster-severity,
body .roster-shift-status {
  align-items: center;
  background: var(--innvilo-surface-app);
  border: 1px solid var(--innvilo-border-default);
  border-radius: 999px;
  color: var(--innvilo-text-secondary);
  display: inline-flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  gap: var(--innvilo-space-2);
  line-height: 1.2;
  max-width: 100%;
  padding: var(--innvilo-space-2) var(--innvilo-space-5);
  white-space: nowrap;
}

body .roster-shift-status,
body .roster-severity {
  font-size: var(--innvilo-font-size-micro);
  padding: var(--innvilo-space-1) var(--innvilo-space-4);
}

body .roster-plan-status.is-published,
body .roster-shift-status.is-published,
body .roster-shift-status.is-completed,
body .roster-severity.is-ok {
  background: var(--color-success-surface);
  border-color: var(--color-success-border);
  color: var(--color-success);
}

body .roster-plan-status.is-changed,
body .roster-shift-status.is-changed,
body .roster-severity.is-warning {
  background: var(--color-warning-surface);
  border-color: var(--color-warning-border);
  color: var(--color-warning-text);
}

body .roster-severity.is-critical {
  background: var(--color-error-surface);
  border-color: var(--color-error-border);
  color: var(--color-error);
}

body .roster-plan-status.is-draft,
body .roster-plan-status.is-empty,
body .roster-shift-status.is-draft,
body .roster-shift-status.is-cancelled,
body .roster-severity.is-info {
  border-color: var(--innvilo-border-strong);
  color: var(--innvilo-text-muted);
}

/* DxScheduler timeline of the month plan. The component exposes this root hook through CssClass;
   the templates (day header, resource header, appointment) are styled in RosterDesktop.razor.css. */
body .dx-roster-scheduler.dxbl-scheduler {
  border: 0;
  color: var(--innvilo-text-primary);
  font-family: "Lato-Regular", Arial, sans-serif;
  height: 44rem;
  min-width: 100%;
}

body .dx-roster-scheduler .dxbl-scheduler-toolbar {
  display: none;
}

body .dx-roster-scheduler .dxbl-scheduler-header-panel,
body .dx-roster-scheduler .dxbl-scheduler-all-day-area {
  background: var(--innvilo-surface-app);
}

body .dx-roster-scheduler .dxbl-scheduler-header-panel,
body .dx-roster-scheduler .dxbl-scheduler-date-header,
body .dx-roster-scheduler .dxbl-scheduler-resource-header,
body .dx-roster-scheduler .dxbl-scheduler-time-cell,
body .dx-roster-scheduler .dxbl-scheduler-cell {
  border-color: var(--innvilo-border-default);
}

body .dx-roster-scheduler .dxbl-scheduler-date-header {
  background: var(--innvilo-surface-app);
  min-height: 3.75rem;
  padding: 0;
}

body .dx-roster-scheduler .dxbl-scheduler-resource-header {
  background: var(--innvilo-surface-card);
  left: 0;
  padding: 0;
  position: sticky;
  z-index: 3;
}

/* The first employee of a department carries the department row: a stronger line above the whole row. */
body .dx-roster-scheduler .dxbl-scheduler-resource-header:has(.roster-resource.is-department-start) {
  border-top: 2px solid var(--innvilo-border-strong);
}

body .dx-roster-scheduler .dxbl-scheduler-cell {
  background: var(--innvilo-surface-card);
}

body .dx-roster-scheduler .dxbl-scheduler-cell:hover {
  background: var(--innvilo-color-primary-soft);
}

body .dx-roster-scheduler .roster-resource-surface {
  background: var(--innvilo-surface-card);
}

body .dx-roster-scheduler .roster-resource-text {
  color: var(--innvilo-text-primary);
}

body .dx-roster-scheduler .dxbl-scheduler-apt {
  background: transparent;
  border: 0;
  border-radius: var(--innvilo-radius-xs);
  box-shadow: none;
  padding: 2px;
}

body .dx-roster-scheduler .dxbl-scheduler-apt-content {
  height: 100%;
  line-height: 1.2;
  padding: 0;
}

body .dx-roster-scheduler .dxbl-scheduler-apt:focus-visible,
body .dx-roster-scheduler .dxbl-scheduler-cell:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: -2px;
}

/* DxScheduler-Zeitachse des Ratenkalenders. Die Komponente reicht diesen Haken über CssClass durch; die
   Templates (Tageskopf, Ressourcenkopf, Tagesfeld) liegen in RevenueAvailabilityDesktop.razor.css.
   DevExpress 26.1 benennt die inneren Flächen der Zeitachse mit dem Präfix dxbl-sc-. */
body .dx-revenue-scheduler.dxbl-scheduler {
  border: 0;
  color: var(--innvilo-text-primary);
  font-family: "Lato-Regular", Arial, sans-serif;
  height: min(46rem, 100vh - 15rem);
  min-width: 100%;
}

/* Zeitraum und Navigation liegen im Seitenkopf und im Filter; die eigene Leiste des Schedulers entfällt. */
body .dx-revenue-scheduler .dxbl-sc-tb-wrapper {
  display: none;
}

body .dx-revenue-scheduler .dxbl-sc-headers-container,
body .dx-revenue-scheduler .dxbl-sc-resources-container {
  background: var(--innvilo-surface-app);
}

body .dx-revenue-scheduler .dxbl-sc-date-hr,
body .dx-revenue-scheduler .dxbl-sc-timescale,
body .dx-revenue-scheduler .dxbl-sc-resource-headers,
body .dx-revenue-scheduler .dxbl-sc-time-cell,
body .dx-revenue-scheduler .dxbl-resource-header-content {
  border-color: var(--innvilo-border-default);
}

body .dx-revenue-scheduler .dxbl-sc-date-hr {
  background: var(--innvilo-surface-app);
  padding: 0;
}

body .dx-revenue-scheduler .dxbl-resource-header-content {
  background: var(--innvilo-surface-card);
  padding: 0;
}

body .dx-revenue-scheduler .dxbl-sc-time-cell {
  background: var(--innvilo-surface-app);
}

body .dx-revenue-scheduler .revenue-resource-surface {
  background: var(--innvilo-surface-card);
}

body .dx-revenue-scheduler .revenue-resource-text {
  color: var(--innvilo-text-primary);
}

/* Ein Tageswert füllt seine Zelle vollständig; der Rahmen des Termins entfällt, die Zustandsfarbe sitzt im Feld. */
body .dx-revenue-scheduler .dxbl-sc-apt,
body .dx-revenue-scheduler .dxbl-sc-horizontal-apt {
  background: transparent;
  border: 0;
  border-radius: var(--innvilo-radius-xs);
  box-shadow: none;
  padding: 1px;
}

body .dx-revenue-scheduler .dxbl-sc-apt-container {
  height: 100%;
  line-height: 1.2;
  padding: 0;
}

body .dx-revenue-scheduler .dxbl-sc-apt:focus-visible,
body .dx-revenue-scheduler .dxbl-sc-time-cell:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: -2px;
}

/* Tooltip of an appointment: one surface, tight shadow (it floats). */
body .dxbl-scheduler-tooltip:has(.roster-tooltip) {
  border-radius: var(--innvilo-radius-xs);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
}

/* Popups of the roster: shift editor, publish review, copy previous month. The contents sit in the
   PopupCenter outside the page tree, so the hooks are global and reuse the staff-form vocabulary. */
body .pms-popup-center--compact:has(.roster-form) .pms-popup-center__body-shell {
  overflow: auto;
}

body .pms-popup-center--compact:has(.roster-form) .pms-popup-center__body {
  padding: var(--innvilo-space-5);
}

.roster-form__templates.staff-form__segments {
  grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr));
}

.roster-form__templates .staff-form__segment {
  border-left: 3px solid var(--roster-shift-color, var(--color-primary));
}

.roster-form__times {
  align-items: center;
  display: grid;
  gap: var(--innvilo-space-2);
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
}

.roster-form__times > span {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
}

.roster-form__summary.is-attention > strong,
.roster-form__summary.is-attention > small {
  color: var(--color-warning-text);
}

.roster-form__secondary {
  border-top: 1px solid var(--innvilo-border-default);
  display: flex;
  justify-content: flex-start;
  padding-top: var(--innvilo-space-4);
}

body .roster-form .roster-shift-cancel.dxbl-btn {
  min-height: 2.5rem;
}

.roster-publish-facts.staff-review > div {
  grid-template-columns: 10rem minmax(0, 1fr);
}

.roster-publish-group {
  display: grid;
  gap: var(--innvilo-space-3);
}

.roster-publish-group h3 {
  color: var(--innvilo-text-primary);
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  margin: 0;
}

.roster-publish-list {
  display: grid;
  gap: var(--innvilo-space-2);
  list-style: none;
  margin: 0;
  padding: 0;
}

.roster-publish-list > li {
  align-items: flex-start;
  background: var(--innvilo-surface-app);
  border-radius: var(--innvilo-radius-xs);
  display: flex;
  gap: var(--innvilo-space-3);
  padding: var(--innvilo-space-3) var(--innvilo-space-4);
}

.roster-publish-list > li > div {
  display: grid;
  gap: var(--innvilo-space-1);
  min-width: 0;
}

.roster-publish-list > li strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  line-height: 1.35;
}

.roster-publish-list > li span {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.roster-publish-recipients > summary {
  color: var(--color-primary);
  cursor: pointer;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  min-height: 2.75rem;
  display: flex;
  align-items: center;
}

.roster-publish-recipients > .roster-publish-list {
  margin-top: var(--innvilo-space-2);
}

/* Mobile: the action sheet sits at the bottom edge, the filter overlay covers the screen. */
body .roster-mobile-sheet.dxbl-popup {
  border: 0 !important;
  border-radius: var(--innvilo-radius-md) var(--innvilo-radius-md) 0 0 !important;
  bottom: 0 !important;
  box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.06);
  left: 0 !important;
  margin: 0 !important;
  max-width: 100vw !important;
  position: fixed !important;
  right: 0 !important;
  top: auto !important;
  transform: none !important;
  width: 100vw !important;
}

body .roster-mobile-sheet.dxbl-popup > .dxbl-modal-content,
body .roster-mobile-sheet.dxbl-popup .dxbl-popup-body {
  border: 0 !important;
  border-radius: inherit !important;
  box-shadow: none !important;
  max-width: 100% !important;
  padding: 0 !important;
  width: 100% !important;
}

body .roster-mobile-overlay.dxbl-popup {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none;
  height: 100dvh !important;
  inset: 0 !important;
  margin: 0 !important;
  max-height: 100dvh !important;
  max-width: 100vw !important;
  position: fixed !important;
  transform: none !important;
  width: 100vw !important;
}

body .roster-mobile-overlay.dxbl-popup > .dxbl-modal-content,
body .roster-mobile-overlay.dxbl-popup .dxbl-popup-body {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  height: 100% !important;
  max-height: 100% !important;
  max-width: 100% !important;
  overflow: hidden;
  padding: 0 !important;
  width: 100% !important;
}

body .roster-mobile-overlay .roster-overlay {
  height: 100%;
}

body .roster-mobile-overlay .inquiry-filter-form {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: var(--innvilo-space-6);
}

body .roster-mobile-overlay .inquiry-filter-form__listbox {
  flex: 1 1 auto;
  max-height: none;
  min-height: 10rem;
}

body .roster-mobile-overlay .inquiry-filter-form__actions {
  margin-top: auto;
}

body .roster-mobile-overlay .inquiry-filter-form .dx-app-button.dxbl-btn,
body .roster-mobile-overlay .roster-overlay__done.dxbl-btn {
  min-height: 2.75rem;
  width: 100%;
}

@media (max-width: 61.99rem) {
  body .pms-popup-center--fullscreen:has(.roster-form) .pms-popup-center__body {
    padding: var(--innvilo-space-4);
  }
}
/* ============================================================================================
   Bankett & Veranstaltungen (/bankett): geteilte Primitive (bq-*), DevExpress-Hooks, Statusmarken,
   Formulare in Popups (liegen außerhalb des Seitenbaums), Assistent, Scheduler-Skin.
   Ein Akzent, ein Radius (--innvilo-radius-xs), Hairlines statt Rahmen, Schatten nur an der
   festen Aktionsleiste. Motion: nur opacity und transform, 120 bis 300 ms, unter
   prefers-reduced-motion aus.
   ============================================================================================ */
/* DevExpress-Wurzeln im Bankettbereich und in Bankett-Popups */
body .banquet-page .dx-app-button.dxbl-btn,
body .bq-form .dx-app-button.dxbl-btn,
body .bq-editor.dxbl-text-edit,
body .bq-editor.dxbl-combobox,
body .bq-editor.dxbl-spin-edit,
body .bq-editor.dxbl-date-edit,
body .bq-editor.dxbl-time-edit,
body .bq-editor.dxbl-memo {
  border-radius: var(--innvilo-radius-xs);
}

body .bq-editor.dxbl-text-edit,
body .bq-editor.dxbl-combobox,
body .bq-editor.dxbl-spin-edit,
body .bq-editor.dxbl-date-edit,
body .bq-editor.dxbl-time-edit,
body .bq-editor.dxbl-memo {
  min-height: 2.5rem;
  width: 100%;
}

body .bq-editor.dxbl-text-edit:focus-within,
body .bq-editor.dxbl-combobox:focus-within,
body .bq-editor.dxbl-spin-edit:focus-within,
body .bq-editor.dxbl-date-edit:focus-within,
body .bq-editor.dxbl-time-edit:focus-within,
body .bq-editor.dxbl-memo:focus-within {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring);
}

/* Feld mit Fehler: Der Rahmen traegt den Fehler nur mit, der Text unter dem Feld traegt ihn. */
body .bq-editor.is-invalid.dxbl-text-edit,
body .bq-editor.is-invalid.dxbl-combobox,
body .bq-editor.is-invalid.dxbl-spin-edit,
body .bq-editor.is-invalid.dxbl-date-edit,
body .bq-editor.is-invalid.dxbl-time-edit,
body .bq-editor.is-invalid.dxbl-memo {
  border-color: var(--color-error);
}

body .bq-editor.is-invalid.dxbl-text-edit:focus-within,
body .bq-editor.is-invalid.dxbl-combobox:focus-within,
body .bq-editor.is-invalid.dxbl-spin-edit:focus-within,
body .bq-editor.is-invalid.dxbl-date-edit:focus-within,
body .bq-editor.is-invalid.dxbl-time-edit:focus-within,
body .bq-editor.is-invalid.dxbl-memo:focus-within {
  border-color: var(--color-error);
  box-shadow: 0 0 0 0.2rem var(--color-error-focus-ring);
}

body .bq-editor--mono.dxbl-memo textarea {
  font-family: Consolas, "Courier New", monospace;
  font-size: var(--innvilo-font-size-caption);
}

body .bq-dropdown.dxbl-dropdown-dialog,
body .bq-dropdown .dxbl-dropdown-body {
  border-radius: var(--innvilo-radius-xs);
}

/* 2.75rem = 44px: dieselbe Zielfläche wie im übrigen Portal und das Minimum, das
   BanquetResponsiveBrowserTests auf Handy und Tablet einfordert. */
body .banquet-page .dx-app-button.dxbl-btn,
body .bq-form .dx-app-button.dxbl-btn {
  min-height: 2.75rem;
  white-space: nowrap;
}

body .banquet-page .dx-app-icon-button.dxbl-btn,
body .bq-form .dx-app-icon-button.dxbl-btn {
  height: 2.75rem;
  min-width: 2.75rem;
  padding: 0;
  width: 2.75rem;
}

/* Touch-Ziele auf Handy und Tablet: 44px für jede Schaltfläche im Bankettbereich. */
@media (max-width: 991.98px) {
  body .banquet-page .dx-app-button.dxbl-btn,
  body .banquet-page button,
  body .bq-form .dx-app-button.dxbl-btn {
    min-height: 2.75rem;
  }
  body .banquet-page .dx-app-icon-button.dxbl-btn,
  body .bq-form .dx-app-icon-button.dxbl-btn {
    height: 2.75rem;
    min-width: 2.75rem;
    width: 2.75rem;
  }
}
/* Textlink als Button */
body .bq-link-button.dxbl-btn {
  background: transparent;
  border: 0;
  border-radius: var(--innvilo-radius-xs);
  box-shadow: none;
  color: var(--innvilo-text-link);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  min-height: 2rem;
  padding: 0 var(--innvilo-space-1);
  transition: color var(--innvilo-duration-fast) var(--innvilo-easing-standard);
}

body .bq-link-button.dxbl-btn:hover:not(.dxbl-disabled) {
  background: transparent;
  color: var(--innvilo-text-link-hover);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

body .bq-link-button.dxbl-btn:focus-visible {
  outline: 2px solid var(--innvilo-border-focus);
  outline-offset: 2px;
}

/* Auswahlflächen (privat/Firma, Startstatus, Anzahlung, Räume in der Anfrage, Statusziel) */
.bq-choice-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-2);
}

body .bq-choice.dxbl-btn {
  background: var(--innvilo-surface-card) !important;
  border: 1px solid var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-xs);
  box-shadow: none;
  color: var(--innvilo-text-primary) !important;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  min-height: 2.5rem;
  padding: 0 var(--innvilo-space-4);
  transition: border-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), background-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), color var(--innvilo-duration-fast) var(--innvilo-easing-standard);
}

body .bq-choice.dxbl-btn:hover:not(.dxbl-disabled) {
  background: var(--innvilo-surface-app) !important;
  border-color: var(--innvilo-border-strong) !important;
}

body .bq-choice.dxbl-btn:focus-visible {
  outline: 2px solid var(--innvilo-border-focus);
  outline-offset: 2px;
}

body .bq-choice.dxbl-btn.is-selected {
  background: var(--innvilo-color-primary) !important;
  border-color: var(--innvilo-color-primary) !important;
  color: var(--innvilo-text-inverse) !important;
}

body .bq-choice.dxbl-btn.is-selected:hover:not(.dxbl-disabled) {
  background: var(--innvilo-color-primary-hover) !important;
  border-color: var(--innvilo-color-primary-hover) !important;
}

body .bq-choice.dxbl-btn.dxbl-disabled {
  color: var(--innvilo-text-disabled) !important;
  opacity: 1;
}

/* Nummern, Marken, Tags */
.bq-number {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-variant-numeric: tabular-nums;
  letter-spacing: var(--innvilo-tracking-caption);
  text-decoration: none;
  text-transform: uppercase;
}

a.bq-number:hover,
a.bq-number:focus-visible {
  color: var(--innvilo-text-link);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

body .bq-status,
body .bq-pay,
.bq-tag {
  align-items: center;
  background: var(--innvilo-surface-app);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-xs);
  color: var(--innvilo-text-secondary);
  display: inline-flex;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  gap: 0.35rem;
  line-height: 1.2;
  padding: 0.25rem 0.6rem;
  text-decoration: none;
  white-space: nowrap;
}

body .bq-status {
  animation: bq-mark-enter 180ms var(--innvilo-easing-decelerate) both;
}

body .bq-status.is-option,
body .bq-status.is-offersent,
body .bq-status.is-contractpending,
body .bq-status.is-inq-option,
body .bq-status.is-inq-offercreated,
body .bq-status.is-inq-inprogress {
  border-color: var(--color-primary-focus-ring);
  border-style: dashed;
  color: var(--color-primary);
}

body .bq-status.is-confirmed,
body .bq-status.is-inpreparation,
body .bq-status.is-running,
body .bq-status.is-inq-confirmed,
body .bq-pay.is-paid,
.bq-tag.is-success {
  background: var(--color-success-surface);
  border-color: var(--color-success-border);
  color: var(--color-success);
}

body .bq-status.is-completed,
body .bq-status.is-invoiced,
body .bq-status.is-inq-new {
  background: var(--innvilo-color-primary-soft);
  border-color: var(--color-primary-focus-ring);
  color: var(--color-primary);
}

body .bq-status.is-lost,
body .bq-status.is-cancelled,
body .bq-status.is-inq-lost,
body .bq-status.is-inq-cancelled,
body .bq-pay.is-cancelled {
  border-color: var(--innvilo-border-strong);
  color: var(--innvilo-text-muted);
  text-decoration: line-through;
}

body .bq-status.is-expired {
  border-color: var(--innvilo-border-strong);
  color: var(--innvilo-text-muted);
}

body .bq-pay.is-open,
body .bq-pay.is-partiallypaid,
body .bq-pay.is-overpaid {
  background: var(--color-warning-soft);
  border-color: var(--color-warning-border);
  color: var(--color-warning-text);
}

body .bq-pay.is-overdue,
.bq-tag.is-critical {
  background: var(--color-error-surface);
  border-color: var(--color-error-border);
  color: var(--color-error);
}

/* Verweis auf die Ursprungsanfrage im Kopf der Veranstaltung. */
a.bq-tag--link {
  color: var(--innvilo-text-link);
  text-decoration: none;
  transition: border-color var(--innvilo-duration-fast) var(--innvilo-easing-standard);
}

a.bq-tag--link:hover,
a.bq-tag--link:focus-visible {
  border-color: var(--innvilo-border-strong);
  text-decoration: underline;
}

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

.bq-marks {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-3);
}

@keyframes bq-mark-enter {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
/* Hosts, Arbeitsflächen, Toolbars */
.bq-host {
  display: grid;
  gap: var(--innvilo-space-6);
  min-width: 0;
}

.bq-workspace {
  background: var(--innvilo-surface-card);
  border-radius: var(--innvilo-radius-xs);
  display: grid;
  min-width: 0;
}

.bq-workspace__toolbar {
  align-items: center;
  border-bottom: 1px solid var(--innvilo-border-default);
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-4) var(--innvilo-space-6);
  justify-content: space-between;
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
}

.bq-workspace__search {
  flex: 0 1 22rem;
  min-width: 12rem;
}

.bq-workspace__filters {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-3);
  margin-left: auto;
  min-width: 0;
}

.bq-mobile-tools {
  display: grid;
  gap: var(--innvilo-space-4);
}

.bq-mobile-tools .bq-workspace__filters {
  margin-left: 0;
}

.bq-cal-toolbar {
  justify-content: flex-start;
}

.bq-cal-toolbar__nav,
.bq-cal-toolbar__views {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-2);
}

.bq-cal-toolbar__range {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  padding: 0 var(--innvilo-space-3);
}

.bq-toolbar {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-3) var(--innvilo-space-5);
  justify-content: space-between;
}

.bq-toolbar__copy {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  line-height: 1.5;
  margin: 0;
  max-width: 65ch;
}

.bq-toolbar__actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-3);
}

/* Zustände */
.bq-state {
  align-items: center;
  background: var(--innvilo-surface-card);
  border-radius: var(--innvilo-radius-xs);
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-5);
  padding: var(--innvilo-space-9) var(--innvilo-space-7);
}

.bq-state > i {
  color: var(--innvilo-text-muted);
  font-size: 1.5rem;
}

.bq-state--error > i {
  color: var(--color-error);
}

.bq-state > div {
  flex: 1 1 18rem;
  min-width: 0;
}

.bq-state h2 {
  color: var(--innvilo-text-primary);
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-heading);
  margin: 0;
}

.bq-state p {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-body);
  line-height: 1.5;
  margin: var(--innvilo-space-2) 0 0;
  max-width: 60ch;
}

.bq-state__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-3);
}

.bq-section-skeleton {
  display: grid;
  gap: var(--innvilo-space-3);
  padding: var(--innvilo-space-5) 0;
}

.bq-section-skeleton span {
  animation: bq-pulse 1.4s ease-in-out infinite;
  background: var(--innvilo-surface-muted);
  border-radius: var(--innvilo-radius-xs);
  display: block;
  height: 3rem;
}

@keyframes bq-pulse {
  50% {
    opacity: 0.55;
  }
}
.bq-empty {
  border-top: 1px solid var(--innvilo-border-soft);
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-body);
  line-height: 1.5;
  margin: 0;
  padding: var(--innvilo-space-5) 0;
}

.bq-empty strong {
  color: var(--innvilo-text-primary);
  display: block;
  font-family: "Lato-SemiBold", Arial, sans-serif;
}

.bq-notice {
  border-left: 2px solid var(--innvilo-border-strong);
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  line-height: 1.5;
  margin: 0;
  padding: var(--innvilo-space-1) 0 var(--innvilo-space-1) var(--innvilo-space-4);
}

.bq-notice strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
}

.bq-notice.is-error {
  border-left-color: var(--color-error);
  color: var(--color-error);
}

.bq-notice.is-success {
  border-left-color: var(--color-success);
  color: var(--color-success);
}

.bq-warnings {
  border-left: 2px solid var(--color-warning);
  color: var(--color-warning-text);
  display: grid;
  font-size: var(--innvilo-font-size-caption);
  gap: var(--innvilo-space-1);
  line-height: 1.5;
  list-style: none;
  margin: 0;
  padding: var(--innvilo-space-1) 0 var(--innvilo-space-1) var(--innvilo-space-4);
}

/* Fehlerliste: dieselbe Form wie die Warnliste, nur in der Fehlerfarbe. Ein Punkt je Zeile, damit die Punkte
   zählbar bleiben; zusammengeklebte Sätze in einem Absatz sind es nicht. */
.bq-warnings.is-error {
  border-left-color: var(--color-error);
  color: var(--color-error);
}

/* Zeilenlisten (Dashboard, Übersicht, Kontingente, Aufgaben) */
.bq-rows {
  display: grid;
  list-style: none;
  margin: 0;
  padding: 0;
}

.bq-row {
  align-items: center;
  border-top: 1px solid var(--innvilo-border-soft);
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-2) var(--innvilo-space-5);
  justify-content: space-between;
  min-width: 0;
  padding: var(--innvilo-space-3) 0;
}

.bq-row:first-child {
  border-top: 0;
}

.bq-row.is-critical {
  border-left: 2px solid var(--color-error);
  padding-left: var(--innvilo-space-3);
}

.bq-row.is-warning {
  border-left: 2px solid var(--color-warning);
  padding-left: var(--innvilo-space-3);
}

.bq-row.is-done .bq-row__main strong {
  color: var(--innvilo-text-muted);
  text-decoration: line-through;
}

.bq-row__main {
  color: inherit;
  display: grid;
  flex: 1 1 16rem;
  gap: 0.125rem;
  min-width: 0;
  text-decoration: none;
}

.bq-row__main strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  line-height: 1.35;
  overflow-wrap: anywhere;
}

a.bq-row__main:hover strong,
a.bq-row__main:focus-visible strong,
.bq-row__main a:hover,
.bq-row__main a:focus-visible {
  color: var(--innvilo-text-link);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.bq-row__main a {
  color: inherit;
  text-decoration: none;
}

.bq-row__main small {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.bq-row__meta {
  align-items: center;
  color: var(--innvilo-text-secondary);
  display: inline-flex;
  flex-wrap: wrap;
  font-size: var(--innvilo-font-size-caption);
  font-variant-numeric: tabular-nums;
  gap: var(--innvilo-space-2);
  justify-content: flex-end;
}

.bq-row__meta strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
}

.bq-panel__link {
  color: var(--innvilo-text-link);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  text-decoration: none;
}

.bq-panel__link:hover,
.bq-panel__link:focus-visible {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.bq-revenue {
  align-items: center;
  background: var(--innvilo-surface-card);
  border-radius: var(--innvilo-radius-xs);
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-4);
  margin: 0;
  padding: var(--innvilo-space-4) var(--innvilo-space-6);
}

.bq-revenue span {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
}

.bq-revenue strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-subheading);
  font-variant-numeric: tabular-nums;
  margin-right: auto;
}

/* Karten (Handy, Tablet) */
.bq-cards {
  display: grid;
  gap: var(--innvilo-space-3);
  list-style: none;
  margin: 0;
  padding: var(--innvilo-space-4);
}

.bq-card {
  background: var(--innvilo-surface-card);
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-xs);
  display: grid;
  gap: var(--innvilo-space-1);
  padding: var(--innvilo-space-4) var(--innvilo-space-5);
}

.bq-card.is-critical {
  border-left: 2px solid var(--color-error);
}

.bq-card__head {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-3);
  justify-content: space-between;
}

.bq-card strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
}

.bq-card small {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  line-height: 1.4;
}

.bq-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-2);
  margin-top: var(--innvilo-space-3);
}

/* Tabellen: eigene Tabelle mit Hairlines, horizontal scrollbar nur im Container */
.bq-table-wrap {
  min-width: 0;
  overflow-x: auto;
}

.bq-table {
  border-collapse: collapse;
  font-size: var(--innvilo-font-size-label);
  min-width: 100%;
  width: max-content;
}

.bq-table--rows {
  width: 100%;
}

.bq-table th,
.bq-table td {
  border-bottom: 1px solid var(--innvilo-border-soft);
  padding: var(--innvilo-space-3) var(--innvilo-space-4);
  text-align: left;
  vertical-align: top;
}

.bq-table th {
  color: var(--innvilo-text-secondary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  letter-spacing: var(--innvilo-tracking-caption);
  white-space: nowrap;
}

.bq-table td strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
}

.bq-table td small {
  color: var(--innvilo-text-secondary);
  display: block;
  font-size: var(--innvilo-font-size-caption);
  line-height: 1.4;
}

.bq-table .is-right {
  font-variant-numeric: tabular-nums;
  text-align: right;
}

.bq-table tr.is-critical td:first-child {
  box-shadow: inset 2px 0 0 var(--color-error);
}

.bq-table tr.is-muted td {
  color: var(--innvilo-text-muted);
}

.bq-table tbody tr {
  transition: background-color var(--innvilo-duration-fast) var(--innvilo-easing-standard);
}

.bq-table tbody tr:hover {
  background: var(--innvilo-surface-app);
}

/* DevExpress-Grid im Bankettbereich: Hairlines, ruhige Kopfzeile, gleiche Zelltypografie wie die Tabellen. */
body .banquet-page .bq-grid.dxbl-grid,
body .bq-tab .bq-grid.dxbl-grid {
  border: 0;
  border-radius: var(--innvilo-radius-xs);
  max-width: 100%;
  width: 100%;
}

body .bq-grid.dxbl-grid .dxbl-grid-header-row > th {
  background: var(--innvilo-surface-app);
  border-bottom: 1px solid var(--innvilo-border-default);
  box-sizing: border-box;
  color: var(--innvilo-text-secondary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  height: 2.5rem;
  letter-spacing: var(--innvilo-tracking-caption);
  line-height: 1.2;
  padding: 0 var(--innvilo-space-4);
  text-transform: none;
  vertical-align: middle;
}

body .bq-grid.dxbl-grid .dxbl-grid-data-row > td {
  border-color: var(--innvilo-border-soft);
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-3) var(--innvilo-space-4);
  vertical-align: middle;
}

body .bq-grid.dxbl-grid .dxbl-grid-data-row:hover > td {
  background: var(--innvilo-surface-app);
}

body .bq-grid.dxbl-grid .dxbl-grid-data-row.is-critical > td:first-child {
  box-shadow: inset 2px 0 0 var(--color-error);
}

body .bq-grid.dxbl-grid .dxbl-grid-data-row.is-muted > td {
  color: var(--innvilo-text-muted);
}

.bq-cell {
  display: grid;
  gap: 0.125rem;
  min-width: 0;
}

.bq-cell.is-right {
  justify-items: end;
  text-align: right;
}

.bq-cell strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
}

.bq-cell small {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  line-height: 1.4;
}

.bq-stage-row.is-highlight {
  animation: bq-row-flash 300ms var(--innvilo-easing-standard) both;
  background: var(--color-success-surface);
}

@keyframes bq-row-flash {
  from {
    opacity: 0.6;
  }
  to {
    opacity: 1;
  }
}
.bq-pager {
  align-items: center;
  border-top: 1px solid var(--innvilo-border-default);
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-4) var(--innvilo-space-6);
  justify-content: space-between;
  padding: var(--innvilo-space-4) var(--innvilo-space-6);
}

.bq-pager__count {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
}

.bq-pager__nav {
  align-items: center;
  display: flex;
  gap: var(--innvilo-space-2);
}

.bq-pager__page {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  font-variant-numeric: tabular-nums;
  padding: 0 var(--innvilo-space-3);
  white-space: nowrap;
}

.bq-pager__page strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
}

/* Summenblock */
.bq-totals {
  display: grid;
  gap: var(--innvilo-space-2) var(--innvilo-space-6);
  grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
  margin: 0;
  padding: var(--innvilo-space-4) 0 0;
}

.bq-totals > div {
  border-top: 1px solid var(--innvilo-border-soft);
  display: grid;
  gap: 0.125rem;
  padding-top: var(--innvilo-space-2);
}

.bq-totals dt {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
}

.bq-totals dd {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
  font-variant-numeric: tabular-nums;
  margin: 0;
}

.bq-totals > .is-total {
  border-top-color: var(--innvilo-border-strong);
}

.bq-totals > .is-total dd {
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-subheading);
}

/* Fakten und Blöcke */
.bq-facts {
  display: grid;
  gap: var(--innvilo-space-4) var(--innvilo-space-6);
  grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
  margin: 0;
}

.bq-facts > div {
  display: grid;
  gap: 0.125rem;
  min-width: 0;
}

.bq-facts > .is-wide {
  grid-column: 1/-1;
}

.bq-facts dt {
  color: var(--innvilo-text-secondary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  letter-spacing: var(--innvilo-tracking-caption);
}

.bq-facts dd {
  color: var(--innvilo-text-primary);
  font-size: var(--innvilo-font-size-body);
  line-height: 1.45;
  margin: 0;
  overflow-wrap: anywhere;
}

.bq-facts dd small {
  color: var(--innvilo-text-secondary);
  display: block;
  font-size: var(--innvilo-font-size-caption);
}

.bq-facts dd.is-multiline {
  white-space: pre-line;
}

.bq-facts dd.is-multiline span {
  display: block;
}

.bq-block {
  background: var(--innvilo-surface-card);
  border-radius: var(--innvilo-radius-xs);
  display: grid;
  gap: var(--innvilo-space-4);
  min-width: 0;
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
}

.bq-block h3,
.bq-block h4 {
  align-items: center;
  color: var(--innvilo-text-primary);
  display: flex;
  flex-wrap: wrap;
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-subheading);
  gap: var(--innvilo-space-3);
  margin: 0;
}

.bq-block__head {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-3) var(--innvilo-space-5);
  justify-content: space-between;
}

.bq-columns {
  display: grid;
  gap: var(--innvilo-space-5);
  grid-template-columns: repeat(auto-fit, minmax(22rem, 1fr));
  min-width: 0;
}

.bq-tab {
  display: grid;
  gap: var(--innvilo-space-5);
  min-width: 0;
}

/* Reiter (Desktop) und Abschnitte (unter 992px). Elf Beschriftungen passen nicht in jede Fensterbreite.
   Die Leiste bricht deshalb um, statt waagerecht zu laufen: eine Bildlaufleiste kann den aktiven Reiter
   verstecken, eine zweite Zeile nicht. Die Leiste bleibt bei langen Abschnitten stehen; das ist Lage, keine
   Bewegung, und dafür darf .bq-event-body kein overflow setzen. */
.bq-tabs {
  background: var(--innvilo-surface-card);
  border-bottom: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-xs) var(--innvilo-radius-xs) 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-2);
  min-width: 0;
  padding: 0 var(--innvilo-space-6);
  position: sticky;
  top: 0;
  z-index: 1;
}

/* Haarlinie zwischen den vier Gruppen. role="presentation", damit die Tabliste nur Reiter führt. Bricht die
   Leiste um, bleibt die Haarlinie bei ihrer Gruppe, weil sie dieselbe Zeile wie der erste Reiter der Gruppe
   nicht erzwingt; sie ist 1px breit und faellt am Zeilenanfang nicht auf. */
.bq-tabs__sep {
  align-self: center;
  border-left: 1px solid var(--innvilo-border-default);
  flex: 0 0 auto;
  height: 1.25rem;
  margin: 0 var(--innvilo-space-2);
}

/* Handlungsbedarf: Farbe allein ist kein Zustand, deshalb trägt der Reiter zusätzlich ein aria-label. */
.bq-dot {
  background: var(--color-warning);
  border-radius: 50%;
  flex: 0 0 auto;
  height: 0.375rem;
  width: 0.375rem;
}

body .bq-tab-button.dxbl-btn {
  align-items: center;
  background: transparent;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  box-shadow: none;
  color: var(--innvilo-text-secondary);
  display: inline-flex;
  flex: 0 0 auto;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  gap: var(--innvilo-space-4);
  margin-bottom: -1px;
  min-height: 2.75rem;
  padding: 0 var(--innvilo-space-4);
  transition: color var(--innvilo-duration-fast) var(--innvilo-easing-settle), border-color var(--innvilo-duration-fast) var(--innvilo-easing-settle);
  white-space: nowrap;
}

body .bq-tab-button.dxbl-btn:hover:not(.dxbl-disabled) {
  background: transparent;
  color: var(--innvilo-text-primary);
}

/* Rückmeldung beim Drücken, nicht erst beim Loslassen; der Reiter skaliert dabei nicht. */
body .bq-tab-button.dxbl-btn:active:not(.dxbl-disabled),
body .bq-tab-button.dxbl-btn.is-active {
  border-bottom-color: var(--innvilo-color-primary);
  color: var(--innvilo-color-primary);
}

body .bq-tab-button.dxbl-btn:focus-visible {
  outline: 2px solid var(--innvilo-border-focus);
  outline-offset: -2px;
}

/* Kompaktbreite: eine Zeile mit waagerechtem Lauf statt dreier Pillenreihen über dem Akkordeon. */
.bq-jumps {
  display: flex;
  flex-wrap: nowrap;
  gap: var(--innvilo-space-2);
  overflow-x: auto;
  padding: var(--innvilo-space-4) 0;
  scrollbar-width: thin;
}

body .bq-jump.dxbl-btn {
  flex: 0 0 auto;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  min-height: 2.75rem;
  padding: 0 var(--innvilo-space-5);
  white-space: nowrap;
}

body .bq-jump.dxbl-btn.is-active {
  background: var(--innvilo-color-primary-soft);
  color: var(--innvilo-color-primary);
}

/* Auf dem Desktop gehört die Karte der Hülle .bq-event-body; nur in der Kompaktbreite ist jeder
   Abschnitt seine eigene Karte, weil es dort keine gemeinsame Hülle gibt. */
.bq-section {
  min-width: 0;
}

@media (max-width: 61.99rem) {
  .bq-section {
    background: var(--innvilo-surface-card);
    border-radius: var(--innvilo-radius-xs);
  }
}
.bq-section__title {
  margin: 0;
}

body .bq-section__toggle.dxbl-btn {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: var(--innvilo-radius-xs);
  box-shadow: none;
  color: var(--innvilo-text-primary);
  display: flex;
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
  justify-content: space-between;
  min-height: 3rem;
  padding: 0 var(--innvilo-space-5);
  text-align: left;
  width: 100%;
}

body .bq-section__toggle.dxbl-btn:hover:not(.dxbl-disabled) {
  background: var(--innvilo-surface-app);
}

body .bq-section__toggle.dxbl-btn i {
  color: var(--innvilo-text-muted);
  font-size: 0.75rem;
}

.bq-section__body {
  animation: bq-mark-enter var(--innvilo-duration-normal) var(--innvilo-easing-decelerate) both;
  display: grid;
  gap: var(--innvilo-space-6);
  min-width: 0;
  padding: var(--innvilo-space-6) var(--innvilo-space-8);
}

@media (max-width: 61.99rem) {
  .bq-section__body {
    padding: var(--innvilo-space-6);
  }
}
/* Formulare (Popups und Schritte) */
.bq-form {
  display: grid;
  gap: var(--innvilo-space-5);
  min-width: 0;
}

.bq-form__intro {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-body);
  line-height: 1.5;
  margin: 0;
  max-width: 65ch;
}

.bq-form__grid {
  display: grid;
  gap: var(--innvilo-space-4);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  min-width: 0;
}

.bq-form__grid--four {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.bq-form__hint {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  line-height: 1.4;
  margin: 0;
}

.bq-form__error {
  align-items: flex-start;
  border-left: 2px solid var(--color-error);
  color: var(--color-error);
  display: flex;
  flex-wrap: wrap;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
  gap: var(--innvilo-space-2);
  margin: 0;
  padding: var(--innvilo-space-1) var(--innvilo-space-4);
}

/* Feld: Beschriftung, Editor, Hinweis oder Fehler. align-content: start ist die eigentliche Korrektur:
   ohne sie dehnt das Feld Beschriftung und Editor auf die Hoehe der Rasterzeile, sobald die Nachbarspalte
   einen Hinweis oder einen Fehler traegt, und die Editoren einer Zeile liegen nicht mehr auf einer Linie. */
.bq-field {
  align-content: start;
  display: grid;
  gap: var(--innvilo-space-2);
  min-width: 0;
}

.bq-field--wide {
  grid-column: 1/-1;
}

.bq-field > label,
.bq-field__label {
  color: var(--innvilo-text-secondary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  letter-spacing: var(--innvilo-tracking-caption);
  line-height: 1.125rem;
}

.bq-field__editor {
  min-width: 0;
}

/* Assistent: zusaetzlich eine feste Beschriftungszeile, damit die Editoren einer Zeile auch dann auf einer
   Linie liegen, wenn eine Beschriftung laenger ist als die ihrer Nachbarspalte. Muster von .nb-field, siehe
   AGENTS.md zum Buchungsassistenten. Nur im Assistenten, weil eine feste Zeile eine laengere Beschriftung
   kuerzt: in den vierspaltigen Rastern der Bankett-Einstellungen gibt es Beschriftungen, die das nicht
   vertragen, und dort genuegt align-content: start. */
.bq-new .bq-field {
  grid-template-rows: 1.125rem auto;
}

.bq-new .bq-field > label,
.bq-new .bq-field__label {
  align-self: end;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bq-field__optional {
  color: var(--innvilo-text-muted);
  font-family: "Lato-Regular", Arial, sans-serif;
}

.bq-field__hint,
.bq-field__error {
  font-size: var(--innvilo-font-size-caption);
  line-height: 1.4;
  margin: 0;
}

.bq-field__hint {
  color: var(--innvilo-text-secondary);
}

.bq-field__error {
  color: var(--color-error);
  font-family: "Lato-SemiBold", Arial, sans-serif;
}

.bq-field > strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
}

.bq-fieldset {
  border: 0;
  border-top: 1px solid var(--innvilo-border-default);
  display: grid;
  gap: var(--innvilo-space-4);
  margin: 0;
  min-width: 0;
  padding: var(--innvilo-space-4) 0 0;
}

.bq-fieldset > legend {
  color: var(--color-primary);
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  padding: 0 var(--innvilo-space-2) 0 0;
}

.bq-file input[type=file] {
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-xs);
  color: var(--innvilo-text-primary);
  font-size: var(--innvilo-font-size-label);
  padding: var(--innvilo-space-2);
  width: 100%;
}

.bq-file input[type=file]:focus-visible {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring);
  outline: none;
}

.bq-subtitle {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  margin: 0;
}

.bq-subtitle-row {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-2) var(--innvilo-space-4);
  justify-content: space-between;
}

.bq-subtitle-row__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-2);
}

.bq-result {
  display: grid;
  gap: var(--innvilo-space-4);
  justify-items: center;
  padding: var(--innvilo-space-6) 0;
  text-align: center;
}

.bq-result p {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-body);
  margin: 0;
}

.bq-result strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-Bold", Arial, sans-serif;
  font-variant-numeric: tabular-nums;
}

/* Erfolgszeichen: der Haken sitzt ohne Kreis, ohne Rahmen und ohne getönte Fläche direkt auf dem Grund
   (DESIGN_NEW_RULES Abschnitt 3). Die Umhüllung trägt nur Farbe und Größe, keine Fläche. Den Erfolg selbst trägt
   nicht das Zeichen, sondern die Nummer beziehungsweise der Satz darunter. */
.bq-success__mark {
  color: var(--color-success);
  display: inline-flex;
  font-size: 1.5rem;
  line-height: 1;
}

.bq-success__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-4);
}

/* Kundenpicker */
.bq-picker {
  display: grid;
  gap: var(--innvilo-space-4);
  min-width: 0;
}

.bq-selected {
  align-items: center;
  animation: bq-mark-enter var(--innvilo-duration-normal) var(--innvilo-easing-decelerate) both;
  background: var(--innvilo-surface-app);
  border-radius: var(--innvilo-radius-xs);
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-3) var(--innvilo-space-4);
  justify-content: space-between;
  padding: var(--innvilo-space-3) var(--innvilo-space-4);
}

.bq-selected__copy {
  display: grid;
  gap: 0.125rem;
  min-width: 0;
}

.bq-selected__copy > span {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-micro);
  letter-spacing: var(--innvilo-tracking-caption);
}

.bq-selected__copy strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
}

.bq-selected__copy small {
  color: var(--innvilo-text-secondary);
  display: flex;
  flex-wrap: wrap;
  font-size: var(--innvilo-font-size-caption);
  gap: var(--innvilo-space-3);
}

.bq-results {
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-xs);
  display: grid;
  list-style: none;
  margin: 0;
  max-height: 16rem;
  overflow-y: auto;
  padding: var(--innvilo-space-1);
}

body .bq-results__item.dxbl-btn {
  align-items: flex-start;
  background: transparent;
  border: 0;
  border-radius: var(--innvilo-radius-xs);
  box-shadow: none;
  color: inherit;
  display: grid;
  gap: 0.125rem;
  justify-items: start;
  min-height: 2.75rem;
  padding: var(--innvilo-space-2) var(--innvilo-space-3);
  text-align: left;
  transition: background-color var(--innvilo-duration-fast) var(--innvilo-easing-standard);
  width: 100%;
}

body .bq-results__item.dxbl-btn:hover:not(.dxbl-disabled) {
  background: var(--innvilo-surface-app);
}

body .bq-results__item.dxbl-btn:focus-visible {
  outline: 2px solid var(--innvilo-border-focus);
  outline-offset: -2px;
}

body .bq-results__item.dxbl-btn strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
}

body .bq-results__item.dxbl-btn span {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  overflow-wrap: anywhere;
}

/* Assistent: Hülle, Panel, Zusammenfassung, Aktionsleiste */
.bq-shell {
  container-name: bq-shell;
  container-type: inline-size;
  display: grid;
  gap: var(--innvilo-space-6);
  min-width: 0;
}

.bq-shell__body {
  align-items: start;
  display: grid;
  gap: var(--innvilo-space-6);
  grid-template-columns: minmax(0, 1fr);
  min-width: 0;
}

.bq-shell--desktop .bq-shell__body {
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 21rem);
}

.bq-panel {
  background: var(--innvilo-surface-card);
  border-radius: var(--innvilo-radius-xs);
  display: grid;
  gap: var(--innvilo-space-6);
  min-width: 0;
  padding: var(--innvilo-space-7) var(--innvilo-space-8) var(--innvilo-space-6);
}

.bq-panel__stage {
  animation: bq-mark-enter var(--innvilo-duration-normal) var(--innvilo-easing-decelerate) both;
  display: grid;
  gap: var(--innvilo-space-6);
  min-width: 0;
}

.bq-panel__head {
  display: grid;
  gap: var(--innvilo-space-2);
}

.bq-panel__head h2 {
  color: var(--innvilo-text-primary);
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-heading);
  line-height: 1.2;
  margin: 0;
  outline: none;
}

.bq-panel__head h2:focus-visible {
  outline: 2px solid var(--innvilo-border-focus);
  outline-offset: 4px;
}

.bq-panel__head p:last-child {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-body);
  line-height: 1.5;
  margin: 0;
  max-width: 70ch;
}

.bq-panel__content,
.bq-step {
  display: grid;
  gap: var(--innvilo-space-6);
  min-width: 0;
}

.bq-panel__footer {
  align-items: center;
  border-top: 1px solid var(--innvilo-border-default);
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-4);
  justify-content: space-between;
  padding-top: var(--innvilo-space-5);
}

.bq-shell__aside {
  background: var(--innvilo-surface-card);
  border-radius: var(--innvilo-radius-xs);
  display: grid;
  gap: var(--innvilo-space-5);
  padding: var(--innvilo-space-6);
  position: sticky;
  top: var(--innvilo-space-4);
}

.bq-shell__aside-head {
  border-bottom: 1px solid var(--innvilo-border-default);
  display: grid;
  gap: var(--innvilo-space-2);
  padding-bottom: var(--innvilo-space-4);
}

.bq-shell__aside-head strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
}

.bq-shell__aside-head span {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
}

.bq-summary {
  display: grid;
  margin: 0;
}

.bq-summary__row {
  border-top: 1px solid var(--innvilo-border-soft);
  display: grid;
  gap: var(--innvilo-space-2);
  padding: var(--innvilo-space-4) 0;
}

.bq-summary__row:first-child {
  border-top: 0;
  padding-top: 0;
}

.bq-summary__row dt {
  color: var(--innvilo-text-secondary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  letter-spacing: var(--innvilo-tracking-caption);
}

.bq-summary__row dd {
  display: grid;
  gap: var(--innvilo-space-2);
  margin: 0;
}

.bq-summary__row dd strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
}

.bq-summary__row dd small {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  line-height: 1.4;
}

.bq-summary__row.is-total {
  border-top-color: var(--innvilo-border-strong);
}

.bq-summary__row.is-total dd strong {
  animation: bq-mark-enter var(--innvilo-duration-normal) var(--innvilo-easing-decelerate) both;
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-subheading);
  font-variant-numeric: tabular-nums;
}

/* Die feste Aktionsleiste liegt wirklich über der Seite, deshalb darf sie einen Schatten tragen: den Token für
   genau diesen Fall, nicht einen hier ausgeschriebenen Wert. */
.bq-bar {
  background: var(--innvilo-surface-card);
  border-top: 1px solid var(--innvilo-border-default);
  bottom: 0;
  box-shadow: var(--innvilo-shadow-bar);
  display: grid;
  left: 0;
  position: fixed;
  right: 0;
  z-index: var(--innvilo-z-sticky);
}

.bq-shell--mobile .bq-bar {
  bottom: calc(4rem + env(safe-area-inset-bottom));
}

.bq-bar__row {
  align-items: center;
  display: grid;
  gap: var(--innvilo-space-4);
  grid-template-columns: minmax(0, 1fr) auto;
  padding: var(--innvilo-space-4) var(--innvilo-page-gutter-mobile);
}

body .bq-bar__toggle.dxbl-btn {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: var(--innvilo-radius-xs);
  box-shadow: none;
  color: var(--innvilo-text-primary);
  display: grid;
  gap: 0 var(--innvilo-space-2);
  grid-template-columns: minmax(0, 1fr) auto;
  justify-items: start;
  min-height: 2.75rem;
  min-width: 0;
  padding: 0;
  text-align: left;
}

body .bq-bar__toggle.dxbl-btn:hover:not(.dxbl-disabled) {
  background: transparent;
}

.bq-bar__label {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-micro);
  grid-column: 1;
  letter-spacing: var(--innvilo-tracking-caption);
}

.bq-bar__total {
  animation: bq-mark-enter var(--innvilo-duration-normal) var(--innvilo-easing-decelerate) both;
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  font-variant-numeric: tabular-nums;
  grid-column: 1;
}

body .bq-bar__toggle.dxbl-btn i {
  color: var(--innvilo-text-secondary);
  font-size: 0.75rem;
  grid-column: 2;
  grid-row: 1/span 2;
}

.bq-bar__sheet {
  animation: bq-mark-enter var(--innvilo-duration-normal) var(--innvilo-easing-decelerate) both;
  border-bottom: 1px solid var(--innvilo-border-default);
  max-height: 60dvh;
  overflow-y: auto;
  padding: var(--innvilo-space-5) var(--innvilo-page-gutter-mobile);
}

.bq-shell--mobile,
.bq-shell--tablet {
  padding-bottom: 4.5rem;
}

/* Schrittleiste: Kopfzeile mit Stand und aktuellem Schritt, je Schritt eine Fortschrittsschiene und darunter
   Zustandsmarke und Titel. Das Zustandswort entfällt: Markenform (Ziffer, Haken, Ausrufezeichen), Schriftschnitt
   des Titels und Farbe der Schiene tragen den Zustand, sechs zusätzliche Textstellen tragen nichts. */
.bq-stepper {
  display: grid;
  gap: var(--innvilo-space-4);
  min-width: 0;
}

.bq-stepper__head {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-2) var(--innvilo-space-5);
  justify-content: space-between;
}

.bq-stepper__now {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  letter-spacing: var(--innvilo-tracking-caption);
  margin: 0;
  min-width: 0;
}

.bq-stepper__now strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  letter-spacing: normal;
}

.bq-stepper__done {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  font-variant-numeric: tabular-nums;
  margin: 0;
}

.bq-stepper ol {
  display: grid;
  gap: var(--innvilo-space-2);
  grid-auto-columns: minmax(0, 1fr);
  grid-auto-flow: column;
  list-style: none;
  margin: 0;
  min-width: 0;
  padding: 0;
}

/* Schiene zuerst, Schaltfläche darunter: nichts überlappt, keine negativen Abstände. */
.bq-stepper__item {
  display: grid;
  gap: var(--innvilo-space-4);
  grid-template-rows: 2px auto;
  min-width: 0;
  position: relative;
}

/* Die Schiene ist eine 2px-Linie, kein Körper: ein Radius auf zwei Pixeln ist nicht sichtbar und war der einzige
   literale border-radius im Stylesheet. */
.bq-stepper__track {
  background: var(--innvilo-border-default);
  display: block;
  transition: background-color var(--innvilo-duration-fast) var(--innvilo-easing-standard);
  width: 100%;
}

.bq-stepper__item.is-completed .bq-stepper__track,
.bq-stepper__item.is-active .bq-stepper__track {
  background: var(--innvilo-color-primary);
}

.bq-stepper__item.is-error .bq-stepper__track {
  background: var(--color-error);
}

body .bq-stepper__button.dxbl-btn {
  align-content: start;
  background: transparent;
  border: 0;
  border-radius: var(--innvilo-radius-xs);
  box-shadow: none;
  color: var(--innvilo-text-secondary);
  display: grid;
  gap: var(--innvilo-space-4);
  justify-items: center;
  min-height: 2.75rem;
  min-width: 0;
  padding: var(--innvilo-space-4);
  text-align: center;
  transition: background-color var(--innvilo-duration-fast) var(--innvilo-easing-standard);
  width: 100%;
}

body .bq-stepper__button.dxbl-btn:hover:not(.dxbl-disabled) {
  background: var(--innvilo-surface-app);
}

body .bq-stepper__button.dxbl-btn.dxbl-disabled {
  opacity: 1;
}

body .bq-stepper__button.dxbl-btn:focus-visible {
  outline: 2px solid var(--innvilo-border-focus);
  outline-offset: 2px;
}

/* Zustandsmarke: Ziffer, Haken oder Ausrufezeichen, direkt auf der Fläche. Kein Kreis, kein Rahmen, keine getönte
   Fläche (DESIGN_NEW_RULES Abschnitt 3). Weil die Form wechselt und nicht nur die Farbe, bleiben erledigt, Fehler
   und offen auch in Graustufen unterscheidbar. */
.bq-stepper__mark {
  align-items: center;
  color: var(--innvilo-text-secondary);
  display: inline-flex;
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  font-variant-numeric: tabular-nums;
  height: 1.25rem;
  justify-content: center;
  line-height: 1;
  min-width: 1.25rem;
  transition: color var(--innvilo-duration-fast) var(--innvilo-easing-standard);
}

.bq-stepper__item.is-active .bq-stepper__mark,
.bq-stepper__item.is-completed .bq-stepper__mark {
  color: var(--innvilo-color-primary);
}

.bq-stepper__item.is-error .bq-stepper__mark {
  color: var(--color-error);
}

.bq-stepper__item.is-disabled .bq-stepper__mark {
  color: var(--innvilo-text-disabled);
}

body .bq-stepper__item.is-active .bq-stepper__button.dxbl-btn,
body .bq-stepper__item.is-completed .bq-stepper__button.dxbl-btn {
  color: var(--innvilo-text-primary);
}

body .bq-stepper__item.is-error .bq-stepper__button.dxbl-btn {
  color: var(--color-error);
}

body .bq-stepper__item.is-disabled .bq-stepper__button.dxbl-btn {
  color: var(--innvilo-text-disabled);
}

body .bq-stepper__button.dxbl-btn:not(.dxbl-disabled):hover .bq-stepper__mark {
  color: var(--innvilo-color-primary);
}

.bq-stepper__label {
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  line-height: 1.3;
  max-width: 100%;
}

.bq-stepper__item.is-active .bq-stepper__label {
  font-family: "Lato-Bold", Arial, sans-serif;
}

/* Schmale Breiten: nur die Marken. Nichts wird abgeschnitten, den laufenden Schritt nennt die Kopfzeile. */
@container bq-shell (max-width: 34rem) {
  .bq-stepper__label {
    clip: rect(0 0 0 0);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
  }
  body .bq-stepper__button.dxbl-btn {
    padding: var(--innvilo-space-4);
  }
}
@container bq-shell (max-width: 40rem) {
  .bq-panel {
    padding: var(--innvilo-space-5) var(--innvilo-space-4);
  }
  .bq-panel__footer {
    justify-content: flex-start;
  }
  .bq-form__grid,
  .bq-form__grid--four {
    grid-template-columns: minmax(0, 1fr);
  }
}
/* Schritt 3: Raumkarten */
.bq-rooms {
  display: grid;
  gap: var(--innvilo-space-3);
}

.bq-room {
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-xs);
  display: grid;
  gap: var(--innvilo-space-4);
  padding: var(--innvilo-space-3) var(--innvilo-space-4);
  transition: border-color var(--innvilo-duration-fast) var(--innvilo-easing-standard);
}

.bq-room.is-selected {
  border-color: var(--innvilo-color-primary);
}

.bq-room.is-busy {
  border-color: var(--color-error-border);
}

body .bq-room__toggle.dxbl-btn {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: var(--innvilo-radius-xs);
  box-shadow: none;
  color: var(--innvilo-text-primary);
  display: flex;
  gap: var(--innvilo-space-4);
  justify-content: flex-start;
  min-height: 2.75rem;
  padding: 0;
  text-align: left;
  width: 100%;
}

body .bq-room__toggle.dxbl-btn:hover:not(.dxbl-disabled) {
  background: transparent;
}

body .bq-room__toggle.dxbl-btn:focus-visible {
  outline: 2px solid var(--innvilo-border-focus);
  outline-offset: 2px;
}

.bq-room__check {
  color: var(--innvilo-text-secondary);
  font-size: 1rem;
  width: 1.25rem;
}

.bq-room.is-selected .bq-room__check {
  color: var(--innvilo-color-primary);
}

.bq-room__copy {
  display: grid;
  flex: 1 1 auto;
  gap: 0.125rem;
  min-width: 0;
}

.bq-room__copy strong {
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-body);
}

.bq-room__copy small {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
}

.bq-room__state {
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-xs);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  padding: 0.2rem 0.5rem;
}

.bq-room__state.is-free {
  border-color: var(--color-success-border);
  color: var(--color-success);
}

.bq-room__state.is-busy {
  border-color: var(--color-error-border);
  color: var(--color-error);
}

.bq-room__config {
  border-top: 1px solid var(--innvilo-border-soft);
  display: grid;
  gap: var(--innvilo-space-4);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding-top: var(--innvilo-space-4);
}

/* Schritt 4: Katalog und Positionen */
.bq-services {
  display: grid;
  gap: var(--innvilo-space-6);
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
  min-width: 0;
}

.bq-services__catalog,
.bq-services__lines {
  display: grid;
  gap: var(--innvilo-space-4);
  min-width: 0;
}

.bq-catalog,
.bq-lines,
.bq-stage-list {
  display: grid;
  list-style: none;
  margin: 0;
  padding: 0;
}

.bq-catalog__item,
.bq-line {
  align-items: center;
  border-top: 1px solid var(--innvilo-border-soft);
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-3) var(--innvilo-space-4);
  justify-content: space-between;
  padding: var(--innvilo-space-3) 0;
}

.bq-catalog__item:first-child,
.bq-line:first-child {
  border-top: 0;
  padding-top: 0;
}

.bq-catalog__copy,
.bq-line__copy {
  display: grid;
  flex: 1 1 12rem;
  gap: 0.125rem;
  min-width: 0;
}

.bq-catalog__copy strong,
.bq-line__copy strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
}

.bq-catalog__copy small,
.bq-line__copy small {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
}

.bq-line {
  animation: bq-mark-enter var(--innvilo-duration-normal) var(--innvilo-easing-decelerate) both;
}

.bq-line__fields {
  align-items: end;
  display: grid;
  gap: var(--innvilo-space-3);
  grid-template-columns: 6rem 8rem auto auto;
}

.bq-line__total {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-variant-numeric: tabular-nums;
  min-width: 6rem;
  padding-bottom: 0.6rem;
  text-align: right;
}

.bq-custom {
  border-top: 1px solid var(--innvilo-border-default);
  display: grid;
  gap: var(--innvilo-space-4);
  padding-top: var(--innvilo-space-5);
}

/* Schritt 5: Zahlungsplan */
.bq-stages {
  display: grid;
  gap: var(--innvilo-space-3);
}

.bq-stage {
  align-items: start;
  border-top: 1px solid var(--innvilo-border-soft);
  display: grid;
  gap: var(--innvilo-space-3);
  grid-template-columns: minmax(0, 1fr) auto;
  padding: var(--innvilo-space-3) 0;
}

.bq-stage:first-child {
  border-top: 0;
}

.bq-stage__remove {
  margin-top: 1.4rem;
}

/* Schritt 6: Angebotsübersicht */
.bq-review {
  display: grid;
  gap: var(--innvilo-space-9);
  min-width: 0;
}

.bq-review__check {
  display: grid;
  gap: var(--innvilo-space-4);
  min-width: 0;
}

/* Die Abschnitte trennt Weissraum. Keine Karte in der Karte, kein Schatten, und keine Linie an jeder Grenze:
   eine Linie überall markiert keine Grenze mehr. */
.bq-review__block {
  display: grid;
  gap: var(--innvilo-space-4);
  min-width: 0;
}

/* Die einzige Haarlinie des Schritts steht dort, wo die Beschreibung der Veranstaltung in deren Rechnung
   übergeht: eine Summe braucht ein sichtbares „darunter“, Weissraum allein sagt das nicht. */
.bq-review__block.is-break {
  border-top: 1px solid var(--innvilo-border-default);
  padding-top: var(--innvilo-space-9);
}

/* Fehlbestand: 2px Linksline und Text, keine gefüllte Fläche und kein Icon in einem Kasten. */
.bq-review__missing {
  align-items: baseline;
  border-left: 2px solid var(--color-error);
  color: var(--color-error);
  display: flex;
  flex-wrap: wrap;
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  gap: var(--innvilo-space-2) var(--innvilo-space-4);
  line-height: 1.45;
  margin: 0;
  padding-left: var(--innvilo-space-5);
}

/* Ungeprüfte Summen: ein neutraler Satz, keine Warnfarbe. Ein Entwurf ohne Prüfung ist kein Fehler. */
.bq-review__draft {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-label);
  line-height: 1.45;
  margin: 0;
  max-width: 70ch;
}

/* Leerstellen tragen Worte, keine Striche: ein Strich neben einem Betrag liest sich wie ein Minuszeichen.
   Optional und leer bleibt neutral und bewusst leichter als jeder echte Wert, Pflicht und leer wird benannt. */
.bq-review__blank {
  color: var(--innvilo-text-muted);
}

.bq-review__gap {
  color: var(--color-error);
  font-family: "Lato-SemiBold", Arial, sans-serif;
}

/* Kategoriezeile der Leistungstabelle: eine Hintergrundstufe statt einer zweiten Überschriftenebene. */
.bq-review__group td {
  background: var(--innvilo-surface-app);
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  letter-spacing: var(--innvilo-tracking-caption);
}

/* Betragsblock: Beschriftung links, Zahl rechts mit gleicher Ziffernbreite. */
.bq-review__sum {
  display: grid;
  margin: 0;
  max-width: 34rem;
}

.bq-review__sum > div {
  align-items: baseline;
  border-top: 1px solid var(--innvilo-border-soft);
  display: grid;
  gap: var(--innvilo-space-4);
  grid-template-columns: minmax(0, 1fr) auto;
  padding: var(--innvilo-space-4) 0;
}

.bq-review__sum > div:first-child {
  border-top: 0;
  padding-top: 0;
}

.bq-review__sum dt {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  letter-spacing: var(--innvilo-tracking-caption);
}

.bq-review__sum dd {
  color: var(--innvilo-text-primary);
  font-size: var(--innvilo-font-size-body);
  font-variant-numeric: tabular-nums;
  margin: 0;
  text-align: right;
}

.bq-review__sum dd small {
  color: var(--innvilo-text-secondary);
  display: block;
  font-size: var(--innvilo-font-size-caption);
  font-variant-numeric: normal;
}

.bq-review__sum > .is-total {
  border-top-color: var(--innvilo-border-strong);
}

.bq-review__sum > .is-total dd strong {
  animation: bq-mark-enter var(--innvilo-duration-normal) var(--innvilo-easing-decelerate) both;
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-subheading);
}

/* Interne Zahl: dieselbe Haarlinie wie überall, nur weiter abgesetzt und gedämpft. Dass sie nicht im Angebot
   steht, sagt ihr Beitext, nicht eine zweite Linienart. */
.bq-review__sum > .is-internal {
  margin-top: var(--innvilo-space-4);
}

.bq-review__sum > .is-internal dt,
.bq-review__sum > .is-internal dd {
  color: var(--innvilo-text-muted);
}

/* Angebotsversand: eigene Hintergrundstufe statt Rahmen, weil hier als Einzigem im Prüfschritt eingegeben wird
   und weil die Handlung an den Kunden als anderer Ort lesen muss als die Daten darüber. */
.bq-review__offer {
  background: var(--innvilo-surface-app);
  border-radius: var(--innvilo-radius-xs);
  padding: var(--innvilo-space-6);
}

@media (prefers-reduced-motion: reduce) {
  .bq-review__sum > .is-total dd strong {
    animation: none;
  }
}
/* Dokumentliste */
.bq-doclist__list {
  display: grid;
  list-style: none;
  margin: 0;
  padding: 0;
}

.bq-doc {
  align-items: center;
  animation: bq-mark-enter var(--innvilo-duration-normal) var(--innvilo-easing-decelerate) both;
  border-top: 1px solid var(--innvilo-border-soft);
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-3) var(--innvilo-space-5);
  justify-content: space-between;
  padding: var(--innvilo-space-3) 0;
}

.bq-doc:first-child {
  border-top: 0;
}

.bq-doc.is-superseded .bq-doc__copy strong {
  color: var(--innvilo-text-muted);
}

.bq-doc__copy {
  display: grid;
  flex: 1 1 18rem;
  gap: 0.125rem;
  min-width: 0;
}

.bq-doc__copy strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
}

.bq-doc__version {
  color: var(--innvilo-text-secondary);
  font-family: "Lato-Regular", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  margin-left: var(--innvilo-space-2);
}

.bq-doc__copy small {
  color: var(--innvilo-text-secondary);
  display: flex;
  flex-wrap: wrap;
  font-size: var(--innvilo-font-size-caption);
  gap: var(--innvilo-space-1) var(--innvilo-space-3);
  line-height: 1.4;
}

.bq-doc__status {
  font-family: "Lato-SemiBold", Arial, sans-serif;
}

.bq-doc__status.is-signed,
.bq-doc__status.is-accepted {
  color: var(--color-success);
}

.bq-doc__status.is-sent {
  color: var(--color-primary);
}

.bq-doc__status.is-superseded {
  color: var(--innvilo-text-muted);
}

.bq-doc__actions {
  align-items: center;
  display: inline-flex;
  gap: var(--innvilo-space-2);
}

/* Dokumentfenster: Die Hoehe ist eine Restgroesse, keine Behauptung. Zeile 1 traegt die Angaben,
   Zeile 2 das Dokument, und Zeile 2 nimmt alles, was Kopf und Fussleiste uebrig lassen. */
.bq-viewer {
  display: grid;
  gap: var(--innvilo-space-4);
  grid-template-rows: auto minmax(0, 1fr);
  height: 100%;
  min-height: 0;
}

.bq-viewer__meta {
  align-items: center;
  color: var(--innvilo-text-secondary);
  display: flex;
  flex-wrap: wrap;
  font-size: var(--innvilo-font-size-caption);
  gap: var(--innvilo-space-2) var(--innvilo-space-6);
  margin: 0;
  min-height: 1.25rem;
}

.bq-viewer__sep {
  border-left: 1px solid var(--innvilo-border-default);
  height: 0.75rem;
}

/* Ohne Vorschau bleibt die Fensterhöhe stehen, weil die Dateiart erst nach dem Öffnen feststeht.
   Der kurze Leerzustand sitzt deshalb mittig, statt oben zu kleben und den Rest leer zu lassen. */
.bq-viewer__fallback {
  align-content: center;
  display: grid;
  gap: var(--innvilo-space-5);
  justify-items: center;
  text-align: center;
}

.bq-viewer__download {
  align-items: center;
  color: var(--innvilo-text-link);
  display: inline-flex;
  font-size: var(--innvilo-font-size-caption);
  gap: var(--innvilo-space-4);
  min-height: 2.25rem;
  text-decoration: underline;
  transition: color var(--innvilo-duration-fast) var(--innvilo-easing-settle);
}

.bq-viewer__download:hover,
.bq-viewer__download:focus-visible {
  color: var(--innvilo-text-link-hover);
}

.bq-viewer__download:focus-visible {
  border-radius: var(--innvilo-radius-xs);
  outline: 2px solid var(--innvilo-border-focus);
  outline-offset: 2px;
}

/* Nachgemessen am laufenden Portal: der DxPdfViewer rendert hier die Wurzel
   class="dxbrv-wrapper dxbrv-scrollbar-color bq-viewer__pdf". Eine Verbindung mit .dxbl-pdf-viewer
   wuerde deshalb nie greifen, und .dxbrv-* ist laut DevExpress-Manifest intern und unter Release-Gate.
   Gestylt wird daher die eigene Klasse allein.
   DevExpress setzt in core.min.css .dxbrv-wrapper { height: 50rem }. Das sind 800px in einem Fensterkoerper
   von 691px, also 109 bis 409px hinter dem Rand. Deshalb steuert das Haus die Hoehe hier selbst: 100 Prozent
   der Rasterzeile, und die Rasterzeile ist die Restgroesse des sichtbaren Koerpers. */
.bq-viewer__pdf {
  height: 100%;
  min-height: 12rem;
  width: 100%;
}

/* Der Fensterkoerper wird eine Restgroesse: ohne diese Zeilenaufteilung ist die Koerperhoehe eine
   Inhaltsgroesse, und was darueber hinausgeht, schneidet .pms-popup-center__body-stage ab.
   Alle vier Regeln haengen an :has(.bq-viewer) und gelten deshalb nur fuer dieses Fenster; die geteilte
   Fensterinfrastruktur bleibt unberuehrt. Die Buehne braucht Hoehe und Zeile, sonst bricht die Kette dort ab
   (ihre Hausregel ist min-height: 100% ohne height, und eine Prozenthoehe darunter faellt auf auto zurueck). */
body .pms-popup-center:has(.bq-viewer) > .dxbl-modal-content {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
}

body .pms-popup-center:has(.bq-viewer) .pms-popup-center__body-shell {
  min-height: 0;
  overflow: hidden;
}

body .pms-popup-center:has(.bq-viewer) .pms-popup-center__body-stage {
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  height: 100%;
  min-height: 0;
}

body .pms-popup-center:has(.bq-viewer) .pms-popup-center__body {
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  height: 100%;
  min-height: 0;
  padding: var(--innvilo-space-5);
}

body .pms-popup-center:has(.bq-viewer) .pms-popup-center__content {
  height: 100%;
  min-height: 0;
}

/* Zeitleiste (Historie, Kommunikation) */
.bq-timeline__list {
  display: grid;
  list-style: none;
  margin: 0;
  padding: 0;
}

.bq-timeline__item {
  border-top: 1px solid var(--innvilo-border-soft);
  display: grid;
  gap: var(--innvilo-space-4);
  grid-template-columns: 1.25rem minmax(0, 1fr);
  padding: var(--innvilo-space-3) 0;
}

.bq-timeline__item:first-child {
  border-top: 0;
}

.bq-timeline__item > i {
  color: var(--innvilo-text-muted);
  font-size: 0.875rem;
  padding-top: 0.2rem;
  text-align: center;
}

.bq-timeline__body {
  display: grid;
  gap: 0.125rem;
  min-width: 0;
}

.bq-timeline__head {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-1) var(--innvilo-space-4);
  justify-content: space-between;
}

.bq-timeline__head strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
}

.bq-timeline__head time {
  color: var(--innvilo-text-muted);
  font-size: var(--innvilo-font-size-caption);
  font-variant-numeric: tabular-nums;
}

.bq-timeline__body p {
  color: var(--innvilo-text-primary);
  font-size: var(--innvilo-font-size-body);
  line-height: 1.45;
  margin: 0;
  overflow-wrap: anywhere;
  white-space: pre-line;
}

.bq-timeline__body small {
  color: var(--innvilo-text-secondary);
  display: flex;
  flex-wrap: wrap;
  font-size: var(--innvilo-font-size-caption);
  gap: var(--innvilo-space-1) var(--innvilo-space-3);
}

/* Ablaufplan */
.bq-schedule {
  display: grid;
  list-style: none;
  margin: 0;
  padding: 0;
}

.bq-schedule__entry {
  align-items: start;
  border-top: 1px solid var(--innvilo-border-soft);
  display: grid;
  gap: var(--innvilo-space-4);
  grid-template-columns: 8rem minmax(0, 1fr) auto;
  padding: var(--innvilo-space-3) 0;
}

.bq-schedule__entry:first-child {
  border-top: 0;
}

.bq-schedule__entry.is-setup,
.bq-schedule__entry.is-teardown {
  border-left: 2px solid var(--innvilo-border-strong);
  padding-left: var(--innvilo-space-3);
}

.bq-schedule__entry.is-catering,
.bq-schedule__entry.is-break {
  border-left: 2px solid var(--color-primary-focus-ring);
  padding-left: var(--innvilo-space-3);
}

.bq-schedule__time {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.bq-schedule__copy {
  display: grid;
  gap: 0.125rem;
  min-width: 0;
}

.bq-schedule__copy strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
}

.bq-schedule__copy small {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
  line-height: 1.4;
}

.bq-schedule__actions {
  display: inline-flex;
  gap: var(--innvilo-space-2);
}

/* Kalender: Scheduler-Skin, Termine mit drei Segmenten, Legende, Tagesliste */
.bq-scheduler {
  display: grid;
  gap: var(--innvilo-space-4);
  min-width: 0;
  padding: var(--innvilo-space-4) var(--innvilo-space-4) var(--innvilo-space-5);
}

/* Ein Kalender je Raum, die Räume untereinander, jeder über die volle Breite. */
.bq-cal-room {
  display: grid;
  gap: var(--innvilo-space-4);
  min-width: 0;
  scroll-margin-top: var(--innvilo-space-8);
}

.bq-cal-room + .bq-cal-room {
  border-top: 1px solid var(--innvilo-border-default);
  padding-top: var(--innvilo-space-8);
}

.bq-cal-room__head {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-3) var(--innvilo-space-6);
  justify-content: space-between;
  min-width: 0;
}

.bq-cal-room__identity {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: var(--innvilo-space-2) var(--innvilo-space-4);
  min-width: 0;
}

.bq-cal-room__identity h3 {
  color: var(--innvilo-text-primary);
  font-family: "Lato-Bold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-heading);
  letter-spacing: var(--innvilo-tracking-title);
  line-height: 1.2;
  margin: 0;
}

.bq-cal-room__identity small {
  color: var(--innvilo-text-muted);
  font-size: var(--innvilo-font-size-caption);
}

.bq-cal-room__count {
  color: var(--innvilo-text-secondary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

body .dx-banquet-scheduler.dxbl-scheduler {
  border: 1px solid var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-xs);
  color: var(--innvilo-text-primary);
  font-family: "Lato-Regular", Arial, sans-serif;
  height: 44rem;
  min-width: 100%;
}

body .dx-banquet-scheduler.is-month.dxbl-scheduler {
  height: auto;
  min-height: 32rem;
}

body .dx-banquet-scheduler .dxbl-scheduler-toolbar,
body .dx-banquet-scheduler .dxbl-sc-tb-wrapper,
body .dx-banquet-scheduler .dxbl-sc-toolbar {
  display: none;
}

body .dx-banquet-scheduler .dxbl-scheduler-header-panel,
body .dx-banquet-scheduler .dxbl-scheduler-all-day-area,
body .dx-banquet-scheduler .dxbl-scheduler-date-header,
body .dx-banquet-scheduler .dxbl-scheduler-resource-header {
  background: var(--innvilo-surface-app);
}

body .dx-banquet-scheduler .dxbl-scheduler-header-panel,
body .dx-banquet-scheduler .dxbl-scheduler-date-header,
body .dx-banquet-scheduler .dxbl-scheduler-resource-header,
body .dx-banquet-scheduler .dxbl-scheduler-time-cell,
body .dx-banquet-scheduler .dxbl-scheduler-cell {
  border-color: var(--innvilo-border-default);
}

body .dx-banquet-scheduler .dxbl-scheduler-resource-header {
  padding: 0;
}

body .dx-banquet-scheduler .dxbl-scheduler-cell {
  background: var(--innvilo-surface-card);
}

body .dx-banquet-scheduler .dxbl-scheduler-cell:hover {
  background: var(--innvilo-color-primary-soft);
}

body .dx-banquet-scheduler .bq-resource {
  background: var(--innvilo-surface-app);
}

body .dx-banquet-scheduler .bq-resource__text {
  color: var(--innvilo-text-primary);
}

body .dx-banquet-scheduler .dxbl-scheduler-apt {
  background: transparent;
  border: 0;
  border-radius: var(--innvilo-radius-xs);
  box-shadow: none;
  padding: 1px;
}

body .dx-banquet-scheduler .dxbl-scheduler-apt-content {
  height: 100%;
  line-height: 1.2;
  padding: 0;
}

body .dx-banquet-scheduler .dxbl-scheduler-apt:focus-visible,
body .dx-banquet-scheduler .dxbl-scheduler-cell:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: -2px;
}

.bq-resource-head {
  display: grid;
  gap: 0.125rem;
  padding: var(--innvilo-space-2) var(--innvilo-space-3);
}

.bq-resource-head strong {
  color: var(--innvilo-text-primary);
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-label);
}

.bq-resource-head small {
  color: var(--innvilo-text-secondary);
  font-size: var(--innvilo-font-size-caption);
}

/* Terminkarte: Balkenleiste (Aufbau, Veranstaltung, Abbau) plus Text. Bestätigt gefüllt, Option gestrichelt,
   geplant ohne Füllung, Tagung neutral, gesperrt schraffiert. Kein Hover-Lift. */
.bq-apt {
  background: var(--innvilo-surface-card);
  border: 1px solid var(--color-primary);
  border-radius: var(--innvilo-radius-xs);
  box-sizing: border-box;
  color: var(--innvilo-text-primary);
  cursor: default;
  display: grid;
  gap: var(--innvilo-space-1);
  height: 100%;
  min-width: 0;
  overflow: hidden;
  padding: var(--innvilo-space-1) var(--innvilo-space-2);
  transition: border-color var(--innvilo-duration-fast) var(--innvilo-easing-standard), background-color var(--innvilo-duration-fast) var(--innvilo-easing-standard);
}

.bq-apt.is-vertical {
  grid-template-columns: 0.375rem minmax(0, 1fr);
}

.bq-apt.is-horizontal {
  grid-template-rows: 0.25rem minmax(0, 1fr);
}

.bq-apt[role=link] {
  cursor: pointer;
}

.bq-apt[role=link]:hover,
.bq-apt[role=link]:focus-visible {
  background: var(--innvilo-color-primary-soft);
}

.bq-apt:focus-visible {
  outline: 2px solid var(--innvilo-border-focus);
  outline-offset: 1px;
}

.bq-apt.can-move {
  cursor: grab;
}

.bq-apt.is-option {
  border-style: dashed;
}

.bq-apt.is-planned {
  border-color: var(--innvilo-border-strong);
  color: var(--innvilo-text-secondary);
}

.bq-apt.is-external {
  background: var(--innvilo-surface-app);
  border-color: var(--innvilo-border-strong);
  color: var(--innvilo-text-secondary);
}

.bq-apt.is-blocked {
  background: repeating-linear-gradient(135deg, var(--innvilo-surface-muted) 0 6px, var(--innvilo-surface-app) 6px 12px);
  border-color: var(--innvilo-border-strong);
  color: var(--innvilo-text-muted);
}

.bq-apt__bars {
  display: flex;
  gap: 1px;
  min-height: 0;
  min-width: 0;
}

.bq-apt.is-vertical .bq-apt__bars {
  flex-direction: column;
  height: 100%;
}

.bq-apt.is-horizontal .bq-apt__bars {
  flex-direction: row;
  width: 100%;
}

.bq-apt__setup,
.bq-apt__main,
.bq-apt__teardown {
  display: block;
  flex: 0 0 auto;
  min-height: 0;
  min-width: 0;
}

.bq-apt__main {
  background: var(--color-primary);
}

.bq-apt__setup,
.bq-apt__teardown {
  background: var(--innvilo-border-strong);
}

.bq-apt.is-option .bq-apt__main {
  background: var(--color-primary-focus-ring);
}

.bq-apt.is-planned .bq-apt__main,
.bq-apt.is-external .bq-apt__main,
.bq-apt.is-blocked .bq-apt__main {
  background: var(--innvilo-border-strong);
}

.bq-apt.is-vertical .bq-apt__setup,
.bq-apt.is-vertical .bq-apt__main,
.bq-apt.is-vertical .bq-apt__teardown {
  width: 100%;
}

.bq-apt.is-horizontal .bq-apt__setup,
.bq-apt.is-horizontal .bq-apt__main,
.bq-apt.is-horizontal .bq-apt__teardown {
  height: 100%;
}

.bq-apt [data-share="5"] {
  flex-basis: 5%;
}

.bq-apt [data-share="10"] {
  flex-basis: 10%;
}

.bq-apt [data-share="15"] {
  flex-basis: 15%;
}

.bq-apt [data-share="20"] {
  flex-basis: 20%;
}

.bq-apt [data-share="25"] {
  flex-basis: 25%;
}

.bq-apt [data-share="30"] {
  flex-basis: 30%;
}

.bq-apt [data-share="35"] {
  flex-basis: 35%;
}

.bq-apt [data-share="40"] {
  flex-basis: 40%;
}

.bq-apt [data-share="45"] {
  flex-basis: 45%;
}

.bq-apt [data-share="50"] {
  flex-basis: 50%;
}

.bq-apt [data-share="55"] {
  flex-basis: 55%;
}

.bq-apt [data-share="60"] {
  flex-basis: 60%;
}

.bq-apt [data-share="65"] {
  flex-basis: 65%;
}

.bq-apt [data-share="70"] {
  flex-basis: 70%;
}

.bq-apt [data-share="75"] {
  flex-basis: 75%;
}

.bq-apt [data-share="80"] {
  flex-basis: 80%;
}

.bq-apt [data-share="85"] {
  flex-basis: 85%;
}

.bq-apt [data-share="90"] {
  flex-basis: 90%;
}

.bq-apt [data-share="95"] {
  flex-basis: 95%;
}

.bq-apt [data-share="100"] {
  flex-basis: 100%;
}

.bq-apt__copy {
  display: grid;
  gap: 0;
  min-width: 0;
}

.bq-apt__copy strong {
  font-family: "Lato-SemiBold", Arial, sans-serif;
  font-size: var(--innvilo-font-size-caption);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bq-apt__copy small {
  font-size: var(--innvilo-font-size-micro);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bq-apt.is-horizontal .bq-apt__copy small:last-child {
  display: none;
}

.bq-legend {
  color: var(--innvilo-text-secondary);
  display: flex;
  flex-wrap: wrap;
  font-size: var(--innvilo-font-size-caption);
  gap: var(--innvilo-space-3) var(--innvilo-space-5);
}

.bq-legend__item {
  align-items: center;
  display: inline-flex;
  gap: var(--innvilo-space-2);
}

.bq-legend__swatch {
  border: 1px solid var(--color-primary);
  border-radius: 2px;
  display: inline-block;
  height: 0.75rem;
  width: 1.25rem;
}

.bq-legend__swatch.is-confirmed {
  background: var(--color-primary);
}

.bq-legend__swatch.is-option {
  border-style: dashed;
}

.bq-legend__swatch.is-planned,
.bq-legend__swatch.is-external {
  border-color: var(--innvilo-border-strong);
}

.bq-legend__swatch.is-external {
  background: var(--innvilo-surface-app);
}

.bq-legend__swatch.is-blocked {
  background: repeating-linear-gradient(135deg, var(--innvilo-surface-muted) 0 3px, var(--innvilo-surface-app) 3px 6px);
  border-color: var(--innvilo-border-strong);
}

.bq-legend__swatch.is-setup {
  background: var(--innvilo-border-strong);
  border-color: var(--innvilo-border-strong);
}

.bq-day-list {
  display: grid;
  gap: var(--innvilo-space-4);
}

.bq-day-item.is-option .bq-row__main strong {
  color: var(--color-primary);
}

/* Popups: große Formulare scrollen im Körper. */
body .pms-popup-center--large:has(.bq-form) .pms-popup-center__body-shell,
body .pms-popup-center--medium:has(.bq-form) .pms-popup-center__body-shell {
  overflow: auto;
}

/* Responsive Anpassungen */
@media (max-width: 61.99rem) {
  .bq-workspace__toolbar {
    padding: var(--innvilo-space-4);
  }
  .bq-workspace__search {
    flex: 1 1 100%;
  }
  .bq-workspace__filters {
    margin-left: 0;
    width: 100%;
  }
  .bq-services {
    grid-template-columns: minmax(0, 1fr);
  }
  .bq-room__config {
    grid-template-columns: minmax(0, 1fr);
  }
  .bq-line__fields {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto auto;
    width: 100%;
  }
  .bq-schedule__entry {
    grid-template-columns: minmax(0, 1fr) auto;
  }
  .bq-schedule__time {
    grid-column: 1/-1;
  }
  .bq-block {
    padding: var(--innvilo-space-4);
  }
  .bq-form__grid--four {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .bq-cards {
    padding: var(--innvilo-space-3);
  }
  body .pms-popup-center--fullscreen:has(.bq-form) .pms-popup-center__body {
    padding: var(--innvilo-space-4);
  }
}
@media (max-width: 47.99rem) {
  .bq-form__grid,
  .bq-form__grid--four,
  .bq-facts {
    grid-template-columns: minmax(0, 1fr);
  }
  .bq-choice-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .bq-choice-row.is-wrap {
    display: flex;
  }
  .bq-stage {
    grid-template-columns: minmax(0, 1fr);
  }
  .bq-stage__remove {
    justify-self: end;
    margin-top: 0;
  }
  .bq-line__fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (prefers-reduced-motion: reduce) {
  body .bq-status,
  .bq-section__body,
  .bq-section-skeleton span,
  .bq-selected,
  .bq-panel__stage,
  .bq-summary__row.is-total dd strong,
  .bq-bar__total,
  .bq-bar__sheet,
  .bq-line,
  .bq-doc,
  .bq-stage-row.is-highlight {
    animation: none;
  }
  body .bq-choice.dxbl-btn,
  body .bq-link-button.dxbl-btn,
  body .bq-tab-button.dxbl-btn,
  .bq-stepper__mark,
  .bq-room,
  .bq-apt,
  .bq-table tbody tr {
    transition: none;
  }
}
body .cw-calendar-grid {
  height: 520px;
  min-height: 320px;
  width: 100%;
}

body .cw-calendar-grid.cw-calendar-grid--empty {
  height: 144px;
  min-height: 0;
}

body .cw-calendar-grid.cw-calendar-grid--empty .innvilo-grid-empty {
  display: none;
}

body .cw-calendar-date {
  min-height: 36px;
  padding: 4px 8px;
}

body .cw-price-chart {
  height: 320px;
  width: 100%;
}

body .cw-demand-chart {
  height: 240px;
  width: 100%;
}

body .no-show-workspace-popup .dxbl-modal-header-default,
body .no-show-workspace-popup .dxbl-modal-title {
  min-width: 0;
}

body .no-show-workspace-popup .dxbl-modal-title {
  overflow-wrap: anywhere;
}

body .cr-date-editor.dxbl-text-edit {
  height: 44px;
  min-height: 44px;
  border-radius: var(--innvilo-radius-xs);
}

/* Marktrecherche im Arbeitslisten-Muster: dieselben Maße wie die Anfragen-Werkzeugleiste. Die
   Filterknöpfe stammen aus der geteilten Komponente, das Panel ist bereits global gestaltet. */
body .cr-page .dx-app-button.dxbl-btn,
body .cr-page .dxbl-text-edit,
body .cr-page .dxbl-combobox {
  border-radius: var(--innvilo-radius-xs);
}

body .cr-page .cr-toolbar .dx-app-button.dxbl-btn,
body .cr-page .inquiry-filter-dropdown__button.dxbl-btn {
  border-radius: var(--innvilo-radius-md);
  min-height: 2.5rem;
  white-space: nowrap;
}

body .cr-page .cr-grid.dxbl-grid {
  border-radius: var(--innvilo-radius-xs);
}

body .cr-page .cr-pager__size-editor.dxbl-combobox,
body .cr-page .cr-pager__size-editor.dxbl-text-edit {
  align-items: center;
  border: 1px solid var(--innvilo-border-default) !important;
  border-radius: var(--innvilo-radius-md);
  box-shadow: none !important;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  height: 2.25rem;
  max-height: 2.25rem;
  min-height: 2.25rem;
  min-width: 4.5rem;
  width: 4.5rem;
}

body .cr-page .cr-pager__size-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring) !important;
}

body .cr-page .cr-pager__button.dxbl-btn {
  border-radius: var(--innvilo-radius-md);
  height: 2.25rem;
  min-height: 2.25rem;
  min-width: 2.25rem;
  width: 2.25rem;
}

body .cr-page .inquiry-filter-dropdown__button.dxbl-btn {
  gap: var(--innvilo-space-3);
  padding-inline: var(--innvilo-space-4);
}

body .cr-page .inquiry-filter-dropdown__button.is-active.dxbl-btn {
  background: var(--innvilo-color-primary-soft) !important;
  border-color: var(--color-primary) !important;
  color: var(--color-primary) !important;
}

body .cr-page .cr-search-editor.dxbl-text-edit {
  align-items: center;
  border-color: var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-md);
  box-shadow: none;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  height: 2.5rem;
  max-height: 2.5rem;
  min-height: 2.5rem;
  min-width: 0;
  width: 100%;
}

body .cr-page .cr-search-editor.dxbl-text-edit:focus-within {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .cr-page .cr-search-editor.dxbl-text-edit input {
  align-self: center;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  padding: 0 var(--innvilo-space-4) 0 var(--innvilo-space-3);
}

body .cr-page .cr-search-editor.dxbl-text-edit .dxbl-btn {
  height: 100%;
  min-height: 0;
}

body .cr-overlay .cr-fetch-bar {
  width: 100%;
}

@media (prefers-reduced-motion: reduce) {
  body .cr-fetch-bar, body .cr-fetch-bar *, body .cr-fetch-bar *::before, body .cr-fetch-bar *::after,
  body .cr-overlay *, body .cr-overlay *::before, body .cr-overlay *::after {
    animation: none !important;
    transition: none !important;
  }
}
body .cr-page .cr-status__action.dxbl-btn {
  border-radius: var(--innvilo-radius-md);
  min-height: 2rem;
  padding-inline: var(--innvilo-space-5);
  white-space: nowrap;
}

/* ============================================================================================
   Hotelprofil (/hotel/profil)

   Die Seite trägt .pms-worklist, deshalb gelten die Haken des Arbeitslisten-Baukastens bereits für
   Kopf, Zimmerliste und deren Werkzeugleiste. Hier stehen nur die Haken der Werkbank darunter:
   die Texteditoren der vier Formularbereiche und die Validierungsausgabe. Die Regeln zielen auf
   DevExpress-Wurzeln (.dxbl-*), die das Scoped-Attribut der .razor.css nicht erhalten.
   ============================================================================================ */
body .hotel-profile-page .profile-editor__input.dxbl-text-edit {
  align-items: center;
  background: var(--innvilo-surface-card);
  border-color: var(--innvilo-border-default);
  border-radius: var(--innvilo-radius-md);
  box-shadow: none;
  box-sizing: border-box;
  display: flex;
  font-size: var(--innvilo-font-size-label);
  height: 2.75rem;
  max-height: 2.75rem;
  min-height: 2.75rem;
  min-width: 0;
  transition: border-color var(--innvilo-duration-fast) var(--innvilo-easing-settle), box-shadow var(--innvilo-duration-fast) var(--innvilo-easing-settle);
  width: 100%;
}

body .hotel-profile-page .profile-editor__input.dxbl-text-edit:hover {
  border-color: var(--innvilo-border-strong);
}

body .hotel-profile-page .profile-editor__input.dxbl-text-edit:focus-within {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 0.2rem var(--color-primary-focus-ring);
}

body .hotel-profile-page .profile-editor__input.dxbl-text-edit input {
  align-self: center;
  font-size: var(--innvilo-font-size-label);
  height: auto;
  line-height: 1.2;
  margin: 0;
  padding: 0 var(--innvilo-space-5);
}

body .hotel-profile-page .profile-editor__input.dxbl-text-edit input::placeholder {
  color: var(--innvilo-text-muted);
  opacity: 1;
}

/* Der Theme-Unterstrich doppelt den Rahmen und den Fokusring. */
body .hotel-profile-page .profile-editor__input.dxbl-text-edit::after {
  display: none;
}

/* Das Gültigkeitszeichen sitzt im Feld und darf die Höhe nicht sprengen. */
body .hotel-profile-page .profile-editor__input.dxbl-text-edit .dxbl-btn {
  height: 100%;
  min-height: 0;
}

body .hotel-profile-page fieldset[disabled] .profile-editor__input.dxbl-text-edit {
  background: var(--innvilo-surface-muted);
  border-color: var(--innvilo-border-disabled);
}

/* Validierung: eine Meldung je Feld in der reservierten Zeile, die Sammelmeldung als Block darüber. */
body .hotel-profile-page .profile-field__message .validation-message {
  color: var(--color-error);
  display: block;
  font-size: var(--innvilo-font-size-caption);
  line-height: 1.35;
  margin: 0;
}

body .hotel-profile-page .profile-editor > .validation-errors {
  background: var(--color-error-surface);
  border: 1px solid var(--color-error-border);
  border-radius: var(--innvilo-radius-xs);
  color: var(--color-error);
  display: grid;
  font-size: var(--innvilo-font-size-caption);
  gap: var(--innvilo-space-2);
  line-height: 1.4;
  list-style: none;
  margin: 0;
  padding: var(--innvilo-space-5) var(--innvilo-space-6);
}

body .hotel-profile-page .profile-editor > .validation-errors:empty {
  display: none;
}

body .hotel-profile-page .profile-savebar .dx-app-button.dxbl-btn {
  min-height: 2.5rem;
  white-space: nowrap;
}

@media (max-width: 47.9375rem) {
  body .hotel-profile-page .profile-savebar .dx-app-button.dxbl-btn {
    min-height: 2.75rem;
    width: 100%;
  }
}
@media (prefers-reduced-motion: reduce) {
  body .hotel-profile-page .profile-editor__input.dxbl-text-edit {
    transition: none;
  }
}
@media (max-width: 47.9375rem) {
  .dxbl-modal > .dxbl-modal-root > .dxbl-popup.dxbl-popup-fixed-width.platform-billing-editor-popup {
    margin: var(--innvilo-space-4);
    max-width: calc(100vw - var(--innvilo-space-6) - var(--innvilo-space-6));
    justify-self: center;
  }
}
/* Etagen-PDF des Reinigungsplaners: Vorschau im Popup */
.hk-plan-pdf__viewer.dxbl-pdf-viewer {
  height: min(740px, 76vh);
  width: 100%;
}
