/* Auralis.Theme.Foundation — semantic token contract
   This is the theming grammar, not a product look.
   Components consume these names. Light/Dark values are contract defaults
   so the system can be verified. Auralis.Theme.Default and product themes
   override the values; they do not fork the names. */

:root,
[data-auralis-theme="foundation"] {
  color-scheme: light dark;

  /* Surfaces */
  --auralis-surface-page: light-dark(#f4f4f5, #121417);
  --auralis-surface-panel: light-dark(#ffffff, #1c2026);
  --auralis-surface-chrome: light-dark(#ffffff, #0d0f12);
  --auralis-surface-raised: light-dark(#ffffff, #252a32);
  --auralis-surface-sunken: light-dark(#ececee, #0a0c0e);

  /* Colours — semantic, never hard-code these in components */
  --auralis-text-primary: light-dark(#1a1d21, #f2f3f5);
  --auralis-text-secondary: light-dark(#5c6370, #a8b0ba);
  --auralis-text-on-chrome: light-dark(#1a1d21, #f2f3f5);
  --auralis-text-disabled: light-dark(#8b919a, #6d7380);
  --auralis-accent: light-dark(#2f6fed, #6b9dff);
  --auralis-accent-contrast: light-dark(#ffffff, #0d0f12);
  --auralis-focus: var(--auralis-accent);
  --auralis-edit: light-dark(#a15c07, #e0b44b);
  --auralis-selected: color-mix(in srgb, var(--auralis-accent) 16%, var(--auralis-surface-panel));

  /* Borders */
  --auralis-border-subtle: light-dark(#d8dadd, #2e343c);
  --auralis-border-strong: light-dark(#b4b8be, #4a515b);

  /* Typography — system stack; product themes may rebind */
  --auralis-font-sans: system-ui, "Segoe UI", sans-serif;
  --auralis-font-display: var(--auralis-font-sans);
  --auralis-size-body: 1rem;
  --auralis-size-small: 0.875rem;
  --auralis-size-h1: 2rem;
  --auralis-leading: 1.5;
  --auralis-tracking: 0;

  /* Spacing */
  --auralis-space-1: 0.25rem;
  --auralis-space-2: 0.5rem;
  --auralis-space-3: 0.75rem;
  --auralis-space-4: 1rem;
  --auralis-space-5: 1.5rem;
  --auralis-space-6: 2rem;
  --auralis-space-7: 3rem;
  --auralis-space-8: 4rem;

  /* Radius */
  --auralis-radius-sm: 0.125rem;
  --auralis-radius-md: 0.375rem;
  --auralis-radius-lg: 0.75rem;

  /* Elevation */
  --auralis-elevation-0: none;
  --auralis-elevation-1: light-dark(0 1px 2px rgba(16, 18, 22, 0.08), 0 1px 2px rgba(0, 0, 0, 0.45));
  --auralis-elevation-2: light-dark(0 8px 24px rgba(16, 18, 22, 0.12), 0 8px 24px rgba(0, 0, 0, 0.5));

  /* Motion */
  --auralis-duration-fast: 120ms;
  --auralis-duration: 200ms;
  --auralis-ease: cubic-bezier(0.2, 0, 0.2, 1);

  /* Layout metrics (contracts, not a look) */
  --auralis-header-height: 4rem;
  --auralis-canvas-max: 70rem;
  --auralis-canvas-wide: 86rem;

  /* Bootstrap bridge — Oqtane stays sovereign; we map, we do not replace */
  --bs-primary: var(--auralis-accent);
  --bs-body-bg: var(--auralis-surface-page);
  --bs-body-color: var(--auralis-text-primary);
  --bs-body-font-family: var(--auralis-font-sans);
  --bs-border-color: var(--auralis-border-subtle);
  --bs-border-radius: var(--auralis-radius-md);
  --bs-link-color: var(--auralis-accent);
  --bs-link-hover-color: var(--auralis-text-primary);
  --bs-focus-ring-color: color-mix(in srgb, var(--auralis-focus) 35%, transparent);
}

:root[data-auralis-appearance="light"],
[data-auralis-appearance="light"] {
  color-scheme: light;
}

:root[data-auralis-appearance="dark"],
[data-auralis-appearance="dark"] {
  color-scheme: dark;
}

:root[data-auralis-appearance="system"],
[data-auralis-appearance="system"] {
  color-scheme: light dark;
}
