/* ByDate Express design tokens. Mirrors tokens.json. Update both together. */
@import url("https://fonts.googleapis.com/css2?family=Archivo:wdth,wght@62..125,400..700&family=Inter:wght@400..700&display=swap");

:root {
  /* Color: palette */
  --color-ink-900: #0A1A33;
  --color-ink-800: #12294A;
  --color-ink-700: #1E3A63;
  --color-azure-700: #075A99;
  --color-azure-600: #0A6FBF;
  --color-azure-500: #2F86D0;
  --color-azure-100: #DCEEFB;
  --color-sky-400: #7CC4F5;
  --color-sky-200: #BFE3FB;
  --color-neutral-0: #FFFFFF;
  --color-neutral-50: #F4F6F8;
  --color-neutral-100: #E6EAEE;
  --color-neutral-300: #C3CBD4;
  --color-neutral-500: #8A96A3;
  --color-neutral-700: #4A5766;
  --color-neutral-900: #1B2430;
  --color-success: #1E7D4F;
  --color-warning: #A86A00;
  --color-danger: #B3261E;
  --color-info: #0A6FBF;

  /* Color: semantic (light) */
  --text-primary: var(--color-neutral-900);
  --text-secondary: var(--color-neutral-700);
  --text-inverse: var(--color-neutral-0);
  --text-link: var(--color-azure-600);
  --surface-page: var(--color-neutral-0);
  --surface-muted: var(--color-neutral-50);
  --surface-brand: var(--color-ink-900);
  --border-default: var(--color-neutral-100);
  --border-strong: var(--color-neutral-300);
  --action-primary: var(--color-azure-600);
  --action-primary-hover: var(--color-azure-700);
  --focus-ring: var(--color-sky-400);
  --brand-mark: var(--color-sky-400); /* logo mark; used on ink surfaces */

  /* Typography */
  --font-heading: "Archivo", ui-sans-serif, system-ui, sans-serif;
  --font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --heading-stretch: 88%;
  --heading-weight: 600;
  --heading-tracking: -0.035em;
  --text-xs: 12px;
  --text-sm: 14px;
  --text-md: 16px;
  --text-lg: 18px;
  --text-xl: 22px;
  --text-2xl: 28px;
  --text-3xl: 36px;
  --text-4xl: 48px;
  --leading-tight: 1.15;
  --leading-snug: 1.3;
  --leading-body: 1.5;
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-bold: 700;

  /* Spacing (4px base) */
  --space-0: 0px;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;

  /* Radius */
  --radius-none: 0px;
  --radius-sm: 2px;
  --radius-md: 4px;
  --radius-lg: 12px;
  --radius-pill: 999px;

  /* Elevation */
  --shadow-sm: 0 1px 2px rgba(10, 26, 51, 0.08);
  --shadow-md: 0 4px 12px rgba(10, 26, 51, 0.12);
  --shadow-lg: 0 12px 32px rgba(10, 26, 51, 0.16);

  /* Motion */
  --duration-fast: 120ms;
  --duration-base: 200ms;
  --duration-slow: 320ms;
  --easing-standard: cubic-bezier(0.2, 0, 0, 1);

  color-scheme: light;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --text-primary: var(--color-neutral-0);
    --text-secondary: var(--color-neutral-300);
    --text-inverse: var(--color-ink-900);
    --text-link: var(--color-sky-400);
    --surface-page: var(--color-ink-900);
    --surface-muted: var(--color-ink-800);
    --surface-brand: var(--color-ink-800);
    --border-default: var(--color-ink-700);
    --border-strong: var(--color-neutral-500);
    --action-primary: var(--color-azure-500);
    --action-primary-hover: var(--color-sky-400);
    color-scheme: dark;
  }
}

:root[data-theme="dark"] {
  --text-primary: var(--color-neutral-0);
  --text-secondary: var(--color-neutral-300);
  --text-inverse: var(--color-ink-900);
  --text-link: var(--color-sky-400);
  --surface-page: var(--color-ink-900);
  --surface-muted: var(--color-ink-800);
  --surface-brand: var(--color-ink-800);
  --border-default: var(--color-ink-700);
  --border-strong: var(--color-neutral-500);
  --action-primary: var(--color-azure-500);
  --action-primary-hover: var(--color-sky-400);
  color-scheme: dark;
}

body {
  background: var(--surface-page);
  color: var(--text-primary);
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: var(--leading-body);
}

h1, h2, h3 {
  font-family: var(--font-heading);
  font-stretch: var(--heading-stretch);
  font-weight: var(--heading-weight);
  letter-spacing: var(--heading-tracking);
  line-height: var(--leading-tight);
}
