/* Generated from theme.css by scripts/build-theme-surface-css.php. Do not edit directly. */
/* PowerOTA SoftStay UI reusable theme classes */
:root {
  --color-primary: var(--po-primary, #2563EB);
  --color-secondary: #F59E0B;
  --color-accent: #10B981;
  --color-background: var(--po-admin-bg, #F8FAFC);
  --color-surface: #FFFFFF;
  --color-text: #111827;
  --color-muted: #6B7280;
  --color-border: #E5E7EB;
  --color-success: #22C55E;
  --color-warning: #F59E0B;
  --color-danger: #EF4444;
  --color-info: #3B82F6;
  --font-heading: "Plus Jakarta Sans", "Outfit", sans-serif;
  --font-body: "Inter", "Manrope", sans-serif;
  --radius-card: 20px;
  --radius-button: 14px;
  --shadow-card: 0 10px 30px rgba(15, 23, 42, 0.08);
  --shadow-button: 0 8px 18px rgba(37, 99, 235, 0.22);
  --softstay-focus-ring: 0 0 0 4px color-mix(in srgb, var(--color-primary) 18%, transparent);
  /* Dashboard semantic aliases inherit saved property themes and remain safe
     when an older saved theme has no dashboard-specific values. */
  --dashboard-surface: var(--admin-surface, var(--color-surface, #FFFFFF));
  --dashboard-surface-raised: var(--admin-surface-raised, var(--color-surface, #FFFFFF));
  --dashboard-border: var(--admin-border, var(--color-border, #E5E7EB));
  --dashboard-text-primary: var(--admin-text-primary, var(--color-text, #111827));
  --dashboard-text-secondary: var(--admin-text-secondary, var(--color-muted, #6B7280));
  --dashboard-page-background: var(--admin-page-background, var(--color-background, #F8FAFC));
  --dashboard-card-background: var(--dashboard-surface, var(--color-surface, #FFFFFF));
  --dashboard-card-raised-background: var(--dashboard-surface-raised, var(--color-surface, #FFFFFF));
  --dashboard-card-border: var(--dashboard-border, var(--color-border, #E5E7EB));
  --dashboard-text-muted: var(--admin-text-muted, var(--color-muted, #6B7280));
  --dashboard-action-primary: var(--theme-action-primary, var(--color-primary, #2563EB));
  --dashboard-focus-ring: var(--focus-ring, var(--softstay-focus-ring));
  --dashboard-status-info: var(--status-info, var(--color-info, #3B82F6));
  --dashboard-status-success: var(--status-success, var(--color-success, #22C55E));
  --dashboard-status-warning: var(--status-warning, var(--color-warning, #F59E0B));
  --dashboard-status-danger: var(--status-danger, var(--color-danger, #EF4444));
  --dashboard-skeleton: var(--theme-skeleton, var(--color-border, #E5E7EB));
  --dashboard-table-header: var(--theme-table-header, var(--color-background, #F8FAFC));
  --dashboard-table-hover: var(--theme-table-hover, var(--color-background, #F8FAFC));
  --status-info: var(--color-info, #3B82F6);
  --status-success: var(--color-success, #22C55E);
  --status-warning: var(--color-warning, #F59E0B);
  --status-danger: var(--color-danger, #EF4444);
  --status-core-success: var(--color-success, #15803D);
  --status-core-information: var(--color-info, #1D4ED8);
  --status-core-warning: var(--color-warning, #B45309);
  --status-core-danger: var(--color-danger, #B91C1C);
  --status-core-neutral: var(--color-muted, #64748B);
  --status-room-ready: var(--status-core-success);
  --status-room-occupied: var(--status-core-information);
  --status-room-dirty: var(--status-core-warning);
  --status-room-arrival: #6D28D9;
  --status-room-reserved: #6D28D9;
  --status-room-departure: #0F766E;
  --status-room-maintenance: #C2410C;
  --status-room-out-of-order: var(--status-core-danger);
  --status-room-blocked: var(--status-core-neutral);
  --status-booking-pending: var(--status-core-warning);
  --status-booking-confirmed: var(--status-core-information);
  --status-booking-checked-in: var(--status-core-success);
  --status-booking-checked-out: #0F766E;
  --status-booking-cancelled: var(--status-core-danger);
  --status-booking-no-show: #9F1239;
  --status-booking-expired: var(--status-core-neutral);
  --status-financial-paid: var(--status-core-success);
  --status-financial-partial: var(--status-core-information);
  --status-financial-refunded: var(--status-core-neutral);
  --status-financial-mismatch: var(--status-core-danger);
  --status-inventory-available: var(--status-core-success);
  --status-inventory-low: var(--status-core-warning);
  --status-inventory-sold-out: var(--status-core-danger);
  --status-inventory-closed: #9F1239;
  --status-rate-open: var(--status-core-success);
  --status-rate-plan-closed: var(--status-core-danger);
  --status-rate-room-closed: #9F1239;
  --status-rate-source-daily: var(--status-core-information);
  --status-rate-source-weekend: #7C3AED;
  --status-rate-source-base: var(--status-core-neutral);
  --status-rate-source-legacy: var(--status-core-warning);
  --status-calendar-today: var(--status-core-information);
  --status-housekeeping-clean: var(--status-room-ready);
  --status-housekeeping-dirty: var(--status-room-dirty);
  --status-housekeeping-cleaning: var(--status-room-maintenance);
  --status-housekeeping-inspected: var(--status-room-ready);
  --status-maintenance-attention: var(--status-core-warning);
  --status-maintenance-critical: var(--status-core-danger);
  --status-integration-connected: var(--status-core-success);
  --status-integration-processed: var(--status-core-success);
  --status-integration-pending: var(--status-core-information);
  --status-integration-retry: var(--status-core-warning);
  --status-integration-failed: var(--status-core-danger);
  --status-integration-disconnected: var(--status-core-neutral);
  --focus-ring: var(--softstay-focus-ring);
  /* Semantic admin cascade: safe defaults → saved global colours → these
     surface aliases → component/element tokens → temporary state. */
  --theme-page-background: var(--color-background, #F8FAFC);
  --theme-surface-primary: var(--color-surface, #FFFFFF);
  --theme-surface-raised: var(--color-surface, #FFFFFF);
  --theme-surface-overlay: color-mix(in srgb, var(--color-surface, #FFFFFF) 94%, transparent);
  --theme-surface-field: color-mix(in srgb, var(--color-surface, #FFFFFF) 96%, var(--color-background, #F8FAFC));
  --theme-text-primary: var(--color-text, #111827);
  --theme-text-secondary: var(--color-muted, #6B7280);
  --theme-text-muted: color-mix(in srgb, var(--color-muted, #6B7280) 78%, transparent);
  --theme-border-subtle: var(--color-border, #E5E7EB);
  --theme-border-strong: color-mix(in srgb, var(--color-border, #E5E7EB) 72%, var(--color-text, #111827));
  --theme-focus-ring: var(--softstay-focus-ring);
  --theme-action-primary: var(--color-primary, #2563EB);
  --theme-action-secondary: var(--color-secondary, #F59E0B);
  --theme-status-success: var(--color-success, #22C55E);
  --theme-status-info: var(--color-info, #3B82F6);
  --theme-status-warning: var(--color-warning, #F59E0B);
  --theme-status-danger: var(--color-danger, #EF4444);
  --theme-disabled: color-mix(in srgb, var(--color-muted, #6B7280) 45%, transparent);
  --theme-skeleton: color-mix(in srgb, var(--color-border, #E5E7EB) 68%, var(--color-surface, #FFFFFF));
  --theme-table-header: var(--admin-table-header-background, color-mix(in srgb, var(--color-background, #F8FAFC) 88%, var(--color-surface, #FFFFFF)));
  --theme-table-hover: var(--admin-table-row-hover, color-mix(in srgb, var(--color-primary, #2563EB) 6%, var(--color-surface, #FFFFFF)));
  --theme-row-selected: color-mix(in srgb, var(--color-primary, #2563EB) 12%, var(--color-surface, #FFFFFF));
  --theme-sidebar-surface: var(--admin-sidebar-background, #111827);
  --theme-nav-active: var(--admin-sidebar-active-background, var(--color-primary, #2563EB));
  --theme-dashboard-card-surface: var(--dashboard-surface, var(--color-surface, #FFFFFF));
  --theme-dashboard-card-border: var(--dashboard-border, var(--color-border, #E5E7EB));
  --mobile-page-gutter: 1rem;
  --mobile-section-gap: 1rem;
  --mobile-card-padding: 1rem;
  --mobile-control-height: 3.25rem;
  --mobile-sticky-height: 4.5rem;
  --mobile-radius-card: 18px;
  --mobile-bottom-safe-area: env(safe-area-inset-bottom, 0px);

  /* Compact admin density tokens. These are consumed only by .admin-main and
     #app-sidebar; public booking and guest surfaces keep their existing scale. */
  --admin-base-font-size: 14px;
  --admin-page-title-size: 24px;
  --admin-header-title-size: 16px;
  --admin-section-heading-size: 17px;
  --admin-card-heading-size: 15px;
  --admin-body-size: 14px;
  --admin-secondary-size: 13px;
  --admin-table-body-size: 13px;
  --admin-table-heading-size: 11px;
  --admin-label-size: 12px;
  --admin-control-text-size: 13px;
  --admin-button-text-size: 13px;
  --admin-sidebar-text-size: 12px;
  --admin-sidebar-top-level-text-size: 13px;
  --admin-sidebar-label-size: 10px;
  --admin-sidebar-menu-font-weight: 500;
  --admin-sidebar-group-font-weight: 600;
  --admin-badge-size: 11px;
  --admin-kpi-number-size: 24px;
  --admin-kpi-label-size: 12px;
  --admin-helper-size: 11px;
  --admin-body-line-height: 1.45;
  --admin-heading-line-height: 1.2;
  --admin-header-height: 56px;
  --admin-page-padding: 20px;
  --admin-page-padding-large: 24px;
  --admin-section-gap: 16px;
  --admin-grid-gap: 16px;
  --admin-card-padding: 16px;
  --admin-card-padding-compact: 14px;
  --admin-table-padding-y: 10px;
  --admin-table-padding-x: 12px;
  --admin-control-height: 38px;
  --admin-button-height: 38px;
  --admin-small-button-height: 32px;
  --admin-sidebar-item-height: 34px;
  --admin-sidebar-gap: 2px;
  --admin-card-radius: 16px;
  --admin-button-radius: 10px;
  --admin-input-radius: 10px;
  --admin-table-radius: 12px;
  --admin-modal-radius: 16px;
  --admin-sidebar-item-radius: 10px;
  --admin-button-font-weight: 600;
  --admin-input-font-weight: 500;
  --admin-label-font-weight: 600;
  /* Phase 7A shared admin aliases. Saved themes continue to supply the
     underlying legacy variables; older themes inherit these safe fallbacks. */
  --admin-page-background: var(--theme-page-background, var(--color-background, #F8FAFC));
  --admin-surface: var(--theme-surface-primary, var(--color-surface, #FFFFFF));
  --admin-surface-raised: var(--theme-surface-raised, var(--color-surface, #FFFFFF));
  --admin-surface-soft: var(--theme-surface-soft, var(--theme-surface-field, var(--color-background, #F8FAFC)));
  --admin-border: var(--theme-border-subtle, var(--color-border, #E5E7EB));
  --admin-border-strong: var(--theme-border-strong, var(--color-border, #E5E7EB));
  --admin-text-primary: var(--theme-text-primary, var(--color-text, #111827));
  --admin-text-secondary: var(--theme-text-secondary, var(--color-muted, #6B7280));
  --admin-text-muted: var(--theme-text-muted, var(--color-muted, #6B7280));
  --admin-primary-action: var(--theme-action-primary, var(--color-primary, #2563EB));
  --admin-focus-ring: var(--theme-focus-ring, var(--softstay-focus-ring));
  --admin-success: var(--theme-status-success, var(--color-success, #22C55E));
  --admin-information: var(--theme-status-info, var(--color-info, #3B82F6));
  --admin-warning: var(--theme-status-warning, var(--color-warning, #F59E0B));
  --admin-danger: var(--theme-status-danger, var(--color-danger, #EF4444));
  --admin-table-header: var(--theme-table-header, var(--color-background, #F8FAFC));
  --admin-table-hover: var(--theme-table-hover, var(--color-background, #F8FAFC));
  --admin-field-background: var(--theme-surface-field, var(--color-surface, #FFFFFF));
  --admin-disabled: var(--theme-disabled, var(--color-muted, #6B7280));
  --admin-skeleton: var(--theme-skeleton, var(--color-border, #E5E7EB));
  --admin-popover-radius: var(--admin-modal-radius, var(--radius-modal, 16px));
  --admin-card-shadow: var(--shadow-card, 0 10px 30px rgba(15, 23, 42, 0.08));
  --admin-button-shadow: var(--shadow-button, 0 8px 18px rgba(37, 99, 235, 0.22));
  --admin-dropdown-shadow: var(--shadow-dropdown, 0 10px 25px rgba(15, 23, 42, 0.12));
  --admin-modal-shadow: var(--shadow-modal, 0 24px 60px rgba(15, 23, 42, 0.18));

  /* Safe initial values. Runtime replaces these with explicit property values. */
  --booking-primary: #4F46E5;
  --booking-secondary: #F59E0B;
  --booking-accent: #10B981;
  --booking-page-background: #F8FAFC;
  --booking-surface: #FFFFFF;
  --booking-surface-raised: #FFFFFF;
  --booking-surface-soft: #F8FAFC;
  --booking-text-primary: #111827;
  --booking-text-secondary: #6B7280;
  --booking-text-muted: #6B7280;
  --booking-border: #E5E7EB;
  --booking-border-strong: #CBD5E1;
  --booking-card-radius: 16px;
  --booking-mobile-card-radius: 18px;
  --booking-input-radius: 10px;
  --booking-button-radius: 10px;
  --booking-image-radius: 16px;
  --booking-modal-radius: 16px;
  --booking-card-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
  --booking-button-shadow: 0 1px 2px rgba(79, 70, 229, 0.14);
  --booking-dropdown-shadow: 0 6px 18px rgba(15, 23, 42, 0.1);
  --booking-modal-shadow: 0 16px 36px rgba(15, 23, 42, 0.14);

  --guest-primary: #4F46E5;
  --guest-secondary: #F59E0B;
  --guest-accent: #10B981;
  --guest-page-background: #F8FAFC;
  --guest-surface: #FFFFFF;
  --guest-surface-raised: #FFFFFF;
  --guest-surface-soft: #F8FAFC;
  --guest-text-primary: #111827;
  --guest-text-secondary: #6B7280;
  --guest-text-muted: #6B7280;
  --guest-border: #E5E7EB;
  --guest-border-strong: #CBD5E1;
  --guest-card-radius: 16px;
  --guest-mobile-card-radius: 18px;
  --guest-input-radius: 10px;
  --guest-button-radius: 10px;
  --guest-modal-radius: 16px;
  --guest-card-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
  --guest-button-shadow: 0 8px 18px rgba(37, 99, 235, 0.22);
  --guest-modal-shadow: 0 24px 60px rgba(15, 23, 42, 0.18);
}