/**
 * Gaia foundation contract.
 * Namespaced tokens are the stable API. Legacy aliases live in compatibility.css.
 */

:root {
  color-scheme: light;

  --gaia-font-family-ui: -apple-system, blinkmacsystemfont, "Segoe UI", sans-serif;
  --gaia-font-family-heading: "Space Grotesk", var(--gaia-font-family-ui);
  --gaia-font-size-root: 1rem;
  --gaia-font-size-page-title: 1.5rem;
  --gaia-font-size-section: 1.125rem;
  --gaia-font-size-component: 1rem;
  --gaia-font-size-body: 1rem;
  --gaia-font-size-table: 0.875rem;
  --gaia-font-size-meta: 0.875rem;
  --gaia-font-size-label: 0.875rem;
  --gaia-font-size-caption: 0.75rem;
  --gaia-font-size-metric: 1.5rem;
  --gaia-font-size-metric-compact: 1.5rem;
  --gaia-font-weight-regular: 400;
  --gaia-font-weight-medium: 500;
  --gaia-font-weight-semibold: 600;
  --gaia-font-weight-bold: 700;
  --gaia-font-line-height-heading: 1.2;
  --gaia-font-line-height-body: 1.5;
  --gaia-space-content: 1rem;
  --gaia-space-section: 1.5rem;
  --gaia-space-group: 1rem;
  --gaia-space-field: 0.5rem;
  --gaia-space-card: 1rem;
  --gaia-space-card-compact: 0.75rem;
  --gaia-space-navbar-height: 3.5rem;
  --gaia-navbar-border-width: 0.0625rem;
  --gaia-navbar-padding-block: calc((var(--gaia-space-navbar-height) - var(--gaia-control-height) - var(--gaia-navbar-border-width)) / 2);
  --gaia-space-sidebar-width: 14rem;
  --gaia-border-width-medium: 0.125rem;
  --gaia-border-width-thick: 0.1875rem;
  --gaia-radius-dense: 0.25rem;
  --gaia-radius-card: 0.5rem;
  --gaia-radius-input: 0.5rem;
  --gaia-radius-dialog: 0.75rem;
  --gaia-radius-full: 62.4375rem;
  --gaia-surface-page: var(--cream-500);
  --gaia-surface-raised: var(--neutral-100);
  --gaia-surface-subtle: var(--neutral-200);
  --gaia-surface-sunken: var(--neutral-300);
  --gaia-surface-inverse: var(--neutral-900);
  --gaia-surface-overlay: rgb(15 23 42 / 0.5);
  --gaia-surface-accent-subtle: var(--blue-100);
  --gaia-surface-border: var(--neutral-300);
  --gaia-surface-border-strong: var(--neutral-500);
  --gaia-text-primary: var(--neutral-900);
  --gaia-text-secondary: var(--neutral-600);
  --gaia-text-muted: var(--neutral-600);
  --gaia-text-inverse: var(--neutral-100);
  --gaia-text-action: var(--blue-500);
  --gaia-text-action-hover: var(--blue-700);
  --gaia-action-background: var(--blue-500);
  --gaia-action-background-hover: var(--blue-400);
  --gaia-action-foreground: var(--neutral-100);
  --gaia-action-focus-ring: rgb(15 23 42 / 0.22);
  --gaia-status-success-surface: var(--success-green-light);
  --gaia-status-success-text: var(--success-green-dark);
  --gaia-status-warning-surface: var(--alert-yellow-light);
  --gaia-status-warning-text: var(--alert-yellow-dark);
  --gaia-status-danger-surface: var(--error-red-light);
  --gaia-status-danger-text: var(--error-red-dark);
  --gaia-status-info-surface: var(--blue-100);
  --gaia-status-info-text: var(--blue-700);
  --gaia-control-height: 2.75rem;
  --gaia-control-height-compact: 2.25rem;
  --gaia-control-height-large: 3.375rem;
  --gaia-control-line-height: 1.25rem;
  --gaia-control-border-width: 0.0625rem;
  --gaia-control-padding-block: 0.6875rem;
  --gaia-control-padding-inline: 0.75rem;
  --gaia-control-background: var(--gaia-surface-raised);
  --gaia-control-border: var(--gaia-surface-border-strong);
  --gaia-control-border-focus: var(--gaia-action-background);
  --gaia-control-focus-ring: 0 0 0 0.1875rem var(--gaia-action-focus-ring);
  --gaia-control-radius: var(--gaia-radius-input);
  --gaia-table-cell-padding-block: 0.75rem;
  --gaia-table-cell-padding-inline: 0.75rem;
  --gaia-table-font-size: var(--gaia-font-size-table);
  --gaia-table-background: var(--gaia-surface-raised);
  --gaia-table-background-alternate: var(--gaia-surface-subtle);
  --gaia-table-border: var(--gaia-surface-border);
  --gaia-table-text: var(--gaia-text-primary);
  --gaia-table-meta-text: var(--gaia-text-secondary);
  --gaia-motion-duration-fast: 150ms;
  --gaia-motion-duration-standard: 250ms;
  --gaia-motion-easing-standard: cubic-bezier(0.4, 0, 0.2, 1);
  --gaia-elevation-raised: var(--shadow-md);
  --gaia-layer-floating-control: 20;
  --gaia-holiday-foreground: var(--neutral-100);
  --gaia-holiday-public: var(--blue-500);
  --gaia-holiday-requested: hsl(186deg 89% 29%);
  --gaia-holiday-anniversary: hsl(32deg 91% 37%);
  --gaia-holiday-compensated: hsl(62deg 77% 25%);
  --gaia-holiday-course: hsl(120deg 54% 31%);
  --gaia-holiday-special-leave: hsl(110deg 45% 33%);
  --gaia-holiday-medical-leave: hsl(354deg 67% 42%);
  --gaia-holiday-maternity: hsl(333deg 52% 40%);
  --gaia-holiday-company-event: hsl(215deg 19% 35%);
  --gaia-holiday-company-closure: var(--gaia-holiday-company-event);
  --gaia-holiday-company-vacation: var(--gaia-holiday-company-event);
  --gaia-holiday-national: hsl(273deg 32% 43%);
  --gaia-holiday-regional: hsl(342deg 75% 30%);
  --gaia-holiday-half-day: hsl(209deg 37% 41%);
}

[data-bs-theme="dark"] {
  color-scheme: dark;

  --gaia-surface-page: var(--neutral-900);
  --gaia-surface-raised: var(--neutral-800);
  --gaia-surface-subtle: var(--neutral-700);
  --gaia-surface-sunken: var(--blue-900);
  --gaia-surface-inverse: var(--neutral-100);
  --gaia-surface-overlay: rgb(0 0 0 / 0.68);
  --gaia-surface-accent-subtle: var(--blue-800);
  --gaia-surface-border: var(--neutral-700);
  --gaia-surface-border-strong: var(--neutral-500);
  --gaia-text-primary: var(--neutral-100);
  --gaia-text-secondary: var(--neutral-300);
  --gaia-text-muted: var(--neutral-400);
  --gaia-text-inverse: var(--neutral-900);
  --gaia-text-action: var(--blue-200);
  --gaia-text-action-hover: var(--blue-100);
  --gaia-action-background: var(--blue-200);
  --gaia-action-background-hover: var(--blue-100);
  --gaia-action-foreground: var(--neutral-900);
  --gaia-action-focus-ring: rgb(255 255 255 / 0.28);
  --gaia-status-success-surface: var(--success-green-dark);
  --gaia-status-success-text: var(--green-300);
  --gaia-status-warning-surface: var(--alert-yellow-dark);
  --gaia-status-warning-text: var(--yellow-300);
  --gaia-status-danger-surface: var(--error-red-dark);
  --gaia-status-danger-text: var(--error-red-light);
  --gaia-status-info-surface: var(--blue-800);
  --gaia-status-info-text: var(--blue-200);
  --gaia-holiday-public: var(--blue-700);
  --gaia-holiday-requested: hsl(186deg 89% 21%);
  --gaia-holiday-anniversary: hsl(32deg 91% 27%);
  --gaia-holiday-compensated: hsl(62deg 77% 18%);
  --gaia-holiday-course: hsl(120deg 54% 23%);
  --gaia-holiday-special-leave: hsl(110deg 45% 24%);
  --gaia-holiday-medical-leave: hsl(354deg 67% 31%);
  --gaia-holiday-maternity: hsl(333deg 52% 30%);
  --gaia-holiday-company-event: hsl(215deg 19% 26%);
  --gaia-holiday-company-closure: var(--gaia-holiday-company-event);
  --gaia-holiday-company-vacation: var(--gaia-holiday-company-event);
  --gaia-holiday-national: hsl(273deg 32% 33%);
  --gaia-holiday-regional: hsl(342deg 75% 23%);
  --gaia-holiday-half-day: hsl(209deg 37% 31%);
}

@media (width >= 48rem) {
  :root {
    --gaia-space-content: 1.25rem;
  }
}

@media (width >= 62rem) {
  :root {
    --gaia-font-size-page-title: 1.75rem;
    --gaia-font-size-section: 1.25rem;
    --gaia-font-size-body: 0.875rem;
    --gaia-font-size-label: 0.8125rem;
    --gaia-font-size-metric: 2rem;
    --gaia-space-content: 1.5rem;
    --gaia-control-height: 2.5rem;
    --gaia-control-padding-block: 0.5625rem;
    --gaia-table-cell-padding-block: 0.5rem;
  }
}
