/**
 * consenZeus semantic UI foundation (CZUI-001).
 *
 * Raw color values belong only in this canonical palette. Product surfaces,
 * modules, adapters, and specimens consume semantic --cz-* roles.
 */
:root,
[data-cz-theme='light'] {
  color-scheme: light;

  /* Brand and visualization palette. */
  --cz-brand-950: #061421;
  --cz-brand-900: #071f37;
  --cz-brand-800: #0b3151;
  --cz-brand-700: #0d568d;
  --cz-brand-600: #1678ae;
  --cz-accent-400: #48c7ff;
  --cz-accent-100: #dff6ff;
  --cz-neutral-0: #ffffff;
  --cz-neutral-25: #f5f7fa;
  --cz-neutral-50: #f4f1eb;
  --cz-neutral-100: #edf2f6;
  --cz-neutral-200: #d8e1e8;
  --cz-neutral-400: #7c8e9e;
  --cz-neutral-600: #5f7081;
  --cz-neutral-950: #06121f;
  --cz-success: #138a63;
  --cz-warning: #b46a12;
  --cz-danger: #b42335;
  --cz-info: #1d72aa;
  --cz-data-1: #0d568d;
  --cz-data-2: #138a63;
  --cz-data-3: #b46a12;
  --cz-data-4: #6d5bb8;
  --cz-data-5: #b4235f;
  --cz-data-6: #1d72aa;

  /* Supporting palette values for accessible semantic pairs. */
  --cz-status-success-700: #0b6046;
  --cz-status-success-100: #e8f6f0;
  --cz-status-success-300: #8acbb2;
  --cz-status-warning-700: #7a4300;
  --cz-status-warning-100: #fff4d8;
  --cz-status-warning-300: #e3b65b;
  --cz-status-danger-700: #8f192a;
  --cz-status-danger-100: #fdecef;
  --cz-status-danger-300: #e7a2ad;
  --cz-status-info-700: #155b87;
  --cz-status-info-100: #eaf4fa;
  --cz-status-info-300: #94c6df;
  --cz-dark-surface-raised: #0b3151;
  --cz-dark-surface-subtle: #17344c;
  --cz-dark-border: #31506a;
  --cz-dark-border-strong: #5d7891;
  --cz-dark-text: #f3f8fc;
  --cz-dark-text-muted: #a9bac8;
  --cz-dark-success-fg: #83dbb9;
  --cz-dark-success-bg: #08372a;
  --cz-dark-success-border: #23795c;
  --cz-dark-warning-fg: #ffd08a;
  --cz-dark-warning-bg: #4a2d05;
  --cz-dark-warning-border: #9a671d;
  --cz-dark-danger-fg: #ffadb9;
  --cz-dark-danger-bg: #4a1520;
  --cz-dark-danger-border: #9b4051;
  --cz-dark-info-fg: #a8dfff;
  --cz-dark-info-bg: #0b3151;
  --cz-dark-info-border: #246f9a;

  /* Semantic surface and content roles. */
  --cz-canvas: var(--cz-neutral-25);
  --cz-canvas-warm: var(--cz-neutral-50);
  --cz-surface: var(--cz-neutral-0);
  --cz-surface-raised: var(--cz-neutral-0);
  --cz-surface-subtle: var(--cz-neutral-100);
  --cz-surface-inverse: var(--cz-brand-950);
  --cz-brand-field-dark: var(--cz-brand-900);
  --cz-brand-field-light: var(--cz-neutral-0);
  --cz-brand-on-dark-fg: var(--cz-neutral-0);
  --cz-brand-on-dark-muted: var(--cz-dark-text-muted);
  --cz-brand-on-light-fg: var(--cz-neutral-950);
  --cz-text: var(--cz-neutral-950);
  --cz-text-muted: var(--cz-neutral-600);
  --cz-text-inverse: var(--cz-neutral-0);
  --cz-border: var(--cz-neutral-200);
  --cz-border-strong: var(--cz-neutral-400);

  /* Interaction states. */
  --cz-focus-ring: var(--cz-brand-600);
  --cz-focus-ring-offset: var(--cz-surface);
  --cz-action-primary: var(--cz-brand-700);
  --cz-action-primary-fg: var(--cz-neutral-0);
  --cz-action-primary-hover: var(--cz-brand-800);
  --cz-action-primary-active: var(--cz-brand-900);
  --cz-action-secondary: var(--cz-surface);
  --cz-action-secondary-fg: var(--cz-brand-700);
  --cz-action-secondary-border: var(--cz-border-strong);
  --cz-action-secondary-hover: var(--cz-surface-subtle);
  --cz-action-secondary-active: var(--cz-accent-100);
  --cz-action-danger: var(--cz-danger);
  --cz-action-danger-fg: var(--cz-neutral-0);
  --cz-action-danger-hover: var(--cz-status-danger-700);
  --cz-selected: var(--cz-accent-100);
  --cz-selected-fg: var(--cz-brand-800);
  --cz-selected-border: var(--cz-brand-600);
  --cz-disabled: var(--cz-neutral-100);
  --cz-disabled-fg: var(--cz-neutral-600);
  --cz-disabled-border: var(--cz-neutral-200);
  --cz-readonly: var(--cz-neutral-25);
  --cz-readonly-fg: var(--cz-text-muted);
  --cz-readonly-border: var(--cz-border);
  --cz-state-hover: var(--cz-surface-subtle);
  --cz-state-active: var(--cz-accent-100);
  --cz-state-focus: var(--cz-focus-ring);
  --cz-state-selected: var(--cz-selected);
  --cz-state-disabled: var(--cz-disabled);
  --cz-state-readonly: var(--cz-readonly);
  --cz-skeleton: var(--cz-neutral-100);
  --cz-skeleton-highlight: var(--cz-neutral-0);

  /* Status foreground/background/border triplets. */
  --cz-success-fg: var(--cz-status-success-700);
  --cz-success-bg: var(--cz-status-success-100);
  --cz-success-border: var(--cz-status-success-300);
  --cz-warning-fg: var(--cz-status-warning-700);
  --cz-warning-bg: var(--cz-status-warning-100);
  --cz-warning-border: var(--cz-status-warning-300);
  --cz-danger-fg: var(--cz-status-danger-700);
  --cz-danger-bg: var(--cz-status-danger-100);
  --cz-danger-border: var(--cz-status-danger-300);
  --cz-info-fg: var(--cz-status-info-700);
  --cz-info-bg: var(--cz-status-info-100);
  --cz-info-border: var(--cz-status-info-300);

  /* Solid status emphasis for transient, high-attention feedback such as toasts. */
  --cz-success-emphasis-fg: var(--cz-neutral-0);
  --cz-success-emphasis-bg: var(--cz-status-success-700);
  --cz-success-emphasis-border: var(--cz-status-success-300);
  --cz-warning-emphasis-fg: var(--cz-neutral-0);
  --cz-warning-emphasis-bg: var(--cz-status-warning-700);
  --cz-warning-emphasis-border: var(--cz-status-warning-300);
  --cz-danger-emphasis-fg: var(--cz-neutral-0);
  --cz-danger-emphasis-bg: var(--cz-status-danger-700);
  --cz-danger-emphasis-border: var(--cz-status-danger-300);
  --cz-info-emphasis-fg: var(--cz-neutral-0);
  --cz-info-emphasis-bg: var(--cz-status-info-700);
  --cz-info-emphasis-border: var(--cz-status-info-300);

  /* Tenant branding is intentionally isolated from focus and status roles. */
  --cz-tenant-accent: var(--cz-brand-700);
  --cz-tenant-accent-fg: var(--cz-neutral-0);
  --cz-tenant-logo-surface: var(--cz-surface);

  /* Typography, spacing, shape, elevation, motion, and density. */
  --cz-font-ui: var(--font-heebo, Heebo), 'Noto Sans Hebrew', Arial, sans-serif;
  --cz-font-mono: ui-monospace, SFMono-Regular, Consolas, 'Liberation Mono', monospace;
  --cz-text-xs: 0.75rem;
  --cz-text-sm: 0.875rem;
  --cz-text-md: 1rem;
  --cz-text-lg: 1.125rem;
  --cz-text-xl: 1.5rem;
  --cz-text-2xl: 2rem;
  --cz-text-display: 2.75rem;
  --cz-space-1: 0.25rem;
  --cz-space-2: 0.5rem;
  --cz-space-3: 0.75rem;
  --cz-space-4: 1rem;
  --cz-space-6: 1.5rem;
  --cz-space-8: 2rem;
  --cz-space-12: 3rem;
  --cz-space-16: 4rem;
  --cz-radius-compact: 0.5rem;
  --cz-radius-control: 0.75rem;
  --cz-radius-panel: 1rem;
  --cz-radius-editorial: 1.5rem;
  --cz-radius-full: 9999px;
  --cz-elevation-overlay: 0 0.25rem 1rem rgba(6, 20, 33, 0.12);
  --cz-elevation-modal: 0 1rem 3rem rgba(6, 20, 33, 0.2);
  --cz-duration-fast: 140ms;
  --cz-duration-default: 200ms;
  --cz-ease-standard: cubic-bezier(0.2, 0, 0, 1);
  --cz-control-height-compact: 2.25rem;
  --cz-control-height-default: 2.75rem;
  --cz-control-height-field: 3rem;
  --cz-breakpoint-sm: 640px;
  --cz-breakpoint-md: 768px;
  --cz-breakpoint-lg: 1024px;
  --cz-breakpoint-xl: 1280px;
  --cz-breakpoint-2xl: 1536px;
}

[data-cz-theme='dark'],
.cz-theme-dark,
html.office-route-planner-dark {
  color-scheme: dark;
  --cz-canvas: var(--cz-brand-950);
  --cz-canvas-warm: var(--cz-brand-900);
  --cz-surface: var(--cz-brand-900);
  --cz-surface-raised: var(--cz-dark-surface-raised);
  --cz-surface-subtle: var(--cz-dark-surface-subtle);
  --cz-surface-inverse: var(--cz-neutral-0);
  --cz-text: var(--cz-dark-text);
  --cz-text-muted: var(--cz-dark-text-muted);
  --cz-text-inverse: var(--cz-brand-950);
  --cz-border: var(--cz-dark-border);
  --cz-border-strong: var(--cz-dark-border-strong);
  --cz-focus-ring: var(--cz-accent-400);
  --cz-focus-ring-offset: var(--cz-brand-900);
  --cz-action-primary: var(--cz-accent-400);
  --cz-action-primary-fg: var(--cz-brand-950);
  --cz-action-primary-hover: var(--cz-accent-100);
  --cz-action-primary-active: var(--cz-neutral-0);
  --cz-action-secondary: var(--cz-surface);
  --cz-action-secondary-fg: var(--cz-dark-text);
  --cz-action-secondary-border: var(--cz-dark-border-strong);
  --cz-action-secondary-hover: var(--cz-surface-subtle);
  --cz-action-secondary-active: var(--cz-dark-surface-raised);
  --cz-action-danger: var(--cz-dark-danger-fg);
  --cz-action-danger-fg: var(--cz-brand-950);
  --cz-action-danger-hover: var(--cz-neutral-0);
  --cz-selected: var(--cz-dark-info-bg);
  --cz-selected-fg: var(--cz-dark-info-fg);
  --cz-selected-border: var(--cz-accent-400);
  --cz-disabled: var(--cz-dark-surface-subtle);
  --cz-disabled-fg: var(--cz-dark-text-muted);
  --cz-disabled-border: var(--cz-dark-border);
  --cz-readonly: var(--cz-brand-950);
  --cz-readonly-fg: var(--cz-dark-text-muted);
  --cz-readonly-border: var(--cz-dark-border);
  --cz-state-hover: var(--cz-surface-subtle);
  --cz-state-active: var(--cz-dark-surface-raised);
  --cz-state-focus: var(--cz-focus-ring);
  --cz-state-selected: var(--cz-selected);
  --cz-state-disabled: var(--cz-disabled);
  --cz-state-readonly: var(--cz-readonly);
  --cz-skeleton: var(--cz-dark-surface-subtle);
  --cz-skeleton-highlight: var(--cz-dark-surface-raised);
  --cz-success-fg: var(--cz-dark-success-fg);
  --cz-success-bg: var(--cz-dark-success-bg);
  --cz-success-border: var(--cz-dark-success-border);
  --cz-warning-fg: var(--cz-dark-warning-fg);
  --cz-warning-bg: var(--cz-dark-warning-bg);
  --cz-warning-border: var(--cz-dark-warning-border);
  --cz-danger-fg: var(--cz-dark-danger-fg);
  --cz-danger-bg: var(--cz-dark-danger-bg);
  --cz-danger-border: var(--cz-dark-danger-border);
  --cz-info-fg: var(--cz-dark-info-fg);
  --cz-info-bg: var(--cz-dark-info-bg);
  --cz-info-border: var(--cz-dark-info-border);
  --cz-tenant-accent: var(--cz-accent-400);
  --cz-tenant-accent-fg: var(--cz-brand-950);
  --cz-tenant-logo-surface: var(--cz-surface-raised);
}

.cz-bidi-ltr {
  direction: ltr;
  unicode-bidi: isolate;
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --cz-duration-fast: 1ms;
    --cz-duration-default: 1ms;
  }
}
