/* ==========================================================================
   Design tokens — mirrors DESIGN.md v2.1 (single source of truth).
   Raw hex values live ONLY in this file. Components consume semantic vars.
   ========================================================================== */

/* Font loading: Google Sans Flex (display), Roboto Condensed (body/UI), JetBrains Mono (code) */
@import url("https://fonts.googleapis.com/css2?family=Google+Sans+Flex:wght@400&family=JetBrains+Mono:wght@400&family=Roboto+Condensed:wght@300..500&display=swap");

:root {
  /* colors-light.* */
  --light-primary-mint: #36ECDE;
  --light-primary-mint-soft: #7DE2DF;
  --light-navy: #00203F;
  --light-gray-soft: #E6E9EC;
  --light-graphite: #2F2F2F;
  --light-canvas: #FFFFFF;
  --light-canvas-soft: #F9FAFB;
  --light-text-primary: #2F2F2F;
  --light-text-secondary: #4A4A4A;
  --light-text-muted: #707070;
  --light-hairline: #D9D9D9;
  --light-hairline-strong: #C3C3C3;

  /* colors-dark.* */
  --dark-primary-coldblue: #7DE2DF;
  --dark-primary-laguna: #35ACBE;
  --dark-canvas: #1A1D2E;
  --dark-canvas-soft: #12141F;
  --dark-text-primary: #F9FAFB;
  --dark-text-secondary: #D0D4E0;
  --dark-text-muted: #8A8FA3;
  --dark-hairline: #2A2D3C;
  --dark-hairline-strong: #3A3D4E;

  /* typography families */
  --font-display: "Google Sans Flex", sans-serif;
  --font-body: "Roboto Condensed", sans-serif;
  --font-code: "JetBrains Mono", monospace;

  /* spacing */
  --space-xxs: 2px;
  --space-xs: 4px;
  --space-sm: 8px;
  --space-md: 12px;
  --space-lg: 16px;
  --space-xl: 24px;
  --space-xxl: 32px;
  --space-huge: 64px;

  /* border radius */
  --rounded-xs: 4px;
  --rounded-sm: 6px;
  --rounded-md: 8px;
  --rounded-lg: 12px;
  --rounded-xl: 16px;
  --rounded-full: 9999px;
}

/* --------------------------------------------------------------------------
   Semantic mapping per mode. Each block reads from ONE palette only.
   -------------------------------------------------------------------------- */

/* Day Mode — mint-navy palette */
[data-theme="light"] {
  --c-canvas: var(--light-canvas);
  --c-canvas-soft: var(--light-canvas-soft);
  --c-text-primary: var(--light-text-primary);
  --c-text-secondary: var(--light-text-secondary);
  --c-text-muted: var(--light-text-muted);
  --c-hairline: var(--light-hairline);
  --c-hairline-strong: var(--light-hairline-strong);
  --c-accent: var(--light-primary-mint);        /* decorative accent (sparingly) */
  --c-accent-strong: var(--light-navy);         /* readable accent text */
  color-scheme: light;
}

/* Dark Mode — blue-cyan palette */
[data-theme="dark"] {
  --c-canvas: var(--dark-canvas);
  --c-canvas-soft: var(--dark-canvas-soft);
  --c-text-primary: var(--dark-text-primary);
  --c-text-secondary: var(--dark-text-secondary);
  --c-text-muted: var(--dark-text-muted);
  --c-hairline: var(--dark-hairline);
  --c-hairline-strong: var(--dark-hairline-strong);
  --c-accent: var(--dark-primary-laguna);       /* decorative accent (sparingly) */
  --c-accent-strong: var(--dark-primary-coldblue); /* readable accent text */
  color-scheme: dark;
}

/* Page base: body typography + active-mode canvas */
body {
  margin: 0;
  background-color: var(--c-canvas);
  color: var(--c-text-primary);
  font-family: var(--font-body);
  font-size: 16px;      /* body-md */
  font-weight: 360;
  line-height: 1.5;
}
