/* ============================================================
   Design Tokens — Neumorphism (Soft UI) System
   Single source of truth. Components consume these, never
   hardcode raw colors/shadows/radii inline.
   ============================================================ */

:root {
  /* Color */
  --color-bg: #E0E5EC;
  --color-bg-rgb: 224, 229, 236;
  --color-fg: #3D4852;
  --color-muted: #545C69;
  --color-accent: #186339;
  --color-accent-fg: var(--color-accent);
  --color-accent-light: #3CB371;
  --color-accent-secondary: #EB730E;
  --color-placeholder: #A0AEC0;

  /* Shadow colors (RGBA — never opaque hex) */
  --shadow-light: rgba(255, 255, 255, 0.5);
  --shadow-light-strong: rgba(255, 255, 255, 0.6);
  --shadow-dark: rgba(163, 177, 198, 0.6);
  --shadow-dark-strong: rgba(163, 177, 198, 0.7);

  /* Elevation recipes */
  --elevation-flat-sm:
    5px 5px 10px var(--shadow-dark),
    -5px -5px 10px var(--shadow-light);
  --elevation-flat:
    9px 9px 16px var(--shadow-dark),
    -9px -9px 16px var(--shadow-light);
  --elevation-flat-hover:
    12px 12px 20px var(--shadow-dark-strong),
    -12px -12px 20px var(--shadow-light-strong);
  --elevation-inset-sm:
    inset 3px 3px 6px var(--shadow-dark),
    inset -3px -3px 6px var(--shadow-light);
  --elevation-inset:
    inset 6px 6px 10px var(--shadow-dark),
    inset -6px -6px 10px var(--shadow-light);
  --elevation-inset-deep:
    inset 10px 10px 20px var(--shadow-dark-strong),
    inset -10px -10px 20px var(--shadow-light-strong);

  /* Radius */
  --radius-container: 32px;
  --radius-base: 16px;
  --radius-inner: 12px;
  --radius-full: 9999px;

  /* Typography */
  --font-display: "Plus Jakarta Sans", "DM Sans", system-ui, sans-serif;
  --font-body: "DM Sans", system-ui, sans-serif;
  --font-brand: "JetBrains Mono", ui-monospace, "SF Mono", Consolas, monospace;

  /* Spacing rhythm */
  --space-section: clamp(4rem, 8vw, 8rem);
  --container-max: 80rem; /* 1280px, ~max-w-7xl */

  /* Motion */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --duration-ui: 300ms;
  --duration-depth: 500ms;

  /* Touch target floor */
  --tap-min: 44px;

  color-scheme: light;
}

/* ============================================================
   Dark mode — same cool-grey family inverted, same brand accents.
   System preference first, explicit [data-theme] always wins.
   ============================================================ */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --color-bg: #222A35;
    --color-bg-rgb: 34, 42, 53;
    --color-fg: #E7ECF3;
    --color-muted: #9AA5B4;
    --color-accent-fg: #3CB371;
    --color-placeholder: #6B7684;

    --shadow-light: rgba(58, 72, 92, 0.55);
    --shadow-light-strong: rgba(58, 72, 92, 0.7);
    --shadow-dark: rgba(0, 0, 0, 0.55);
    --shadow-dark-strong: rgba(0, 0, 0, 0.75);

    color-scheme: dark;
  }
}

:root[data-theme="dark"] {
  --color-bg: #222A35;
  --color-bg-rgb: 34, 42, 53;
  --color-fg: #E7ECF3;
  --color-muted: #9AA5B4;
  --color-accent-fg: #3CB371;
  --color-placeholder: #6B7684;

  --shadow-light: rgba(58, 72, 92, 0.55);
  --shadow-light-strong: rgba(58, 72, 92, 0.7);
  --shadow-dark: rgba(0, 0, 0, 0.55);
  --shadow-dark-strong: rgba(0, 0, 0, 0.75);

  color-scheme: dark;
}
