/* Design tokens — TDEE Goal */

:root {
  --font-sans: "Inter", system-ui, -apple-system, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;

  /* Light */
  --bg: oklch(0.99 0 0);
  --bg-elevated: oklch(0.975 0 0);
  --bg-muted: oklch(0.955 0 0);
  --bg-deep: oklch(0.93 0 0);
  --border: oklch(0.90 0 0);
  --border-strong: oklch(0.80 0 0);
  --text: oklch(0.18 0 0);
  --text-muted: oklch(0.45 0 0);
  --text-subtle: oklch(0.62 0 0);

  --accent: oklch(0.55 0.18 145);
  --accent-soft: oklch(0.93 0.06 145);
  --accent-hover: oklch(0.50 0.20 145);
  --accent-fg: oklch(0.99 0 0);

  --warning: oklch(0.70 0.15 75);
  --warning-soft: oklch(0.95 0.06 75);
  --destructive: oklch(0.55 0.22 25);
  --destructive-soft: oklch(0.95 0.05 25);

  --info: oklch(0.55 0.14 250);
  --info-soft: oklch(0.94 0.04 250);

  --shadow-sm: 0 1px 2px oklch(0 0 0 / 0.04), 0 4px 12px oklch(0 0 0 / 0.04);
  --shadow-md: 0 4px 16px oklch(0 0 0 / 0.06), 0 12px 32px oklch(0 0 0 / 0.04);
}

[data-theme="dark"] {
  --bg: oklch(0.14 0.005 240);
  --bg-elevated: oklch(0.18 0.005 240);
  --bg-muted: oklch(0.22 0.005 240);
  --bg-deep: oklch(0.10 0.005 240);
  --border: oklch(0.27 0.005 240);
  --border-strong: oklch(0.38 0.005 240);
  --text: oklch(0.96 0 0);
  --text-muted: oklch(0.72 0 0);
  --text-subtle: oklch(0.55 0 0);

  --accent: oklch(0.72 0.17 145);
  --accent-soft: oklch(0.30 0.08 145);
  --accent-hover: oklch(0.78 0.17 145);
  --accent-fg: oklch(0.13 0 0);

  --warning: oklch(0.78 0.15 75);
  --warning-soft: oklch(0.28 0.06 75);
  --destructive: oklch(0.68 0.22 25);
  --destructive-soft: oklch(0.28 0.06 25);

  --info: oklch(0.72 0.14 250);
  --info-soft: oklch(0.28 0.06 250);

  --shadow-sm: 0 1px 2px oklch(0 0 0 / 0.3), 0 4px 12px oklch(0 0 0 / 0.2);
  --shadow-md: 0 4px 16px oklch(0 0 0 / 0.4), 0 12px 32px oklch(0 0 0 / 0.25);
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }

body {
  font-family: var(--font-sans);
  background: var(--bg);
  color: var(--text);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: "cv11", "ss01", "ss03";
  line-height: 1.5;
}

button { font-family: inherit; cursor: pointer; }
input, select { font-family: inherit; }

/* Type scale */
.t-display {
  font-size: clamp(2.5rem, 6vw, 4rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.0;
}
.t-h1 {
  font-size: clamp(2rem, 4vw, 2.75rem);
  font-weight: 600;
  letter-spacing: -0.025em;
  line-height: 1.1;
}
.t-h2 {
  font-size: clamp(1.4rem, 2.4vw, 1.8rem);
  font-weight: 600;
  letter-spacing: -0.015em;
  line-height: 1.2;
}
.t-h3 {
  font-size: 1.125rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.3;
}
.t-body-lg { font-size: 1.0625rem; line-height: 1.6; color: var(--text-muted); }
.t-body { font-size: 0.9375rem; line-height: 1.6; }
.t-caption { font-size: 0.8125rem; line-height: 1.5; color: var(--text-muted); }
.t-micro { font-size: 0.75rem; line-height: 1.5; letter-spacing: 0.01em; color: var(--text-subtle); }
.t-label {
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-subtle);
}
.mono { font-family: var(--font-mono); font-feature-settings: "tnum", "zero"; }

/* Scrollbar */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--bg); }
::-webkit-scrollbar-thumb { background: var(--border); border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: var(--border-strong); }

/* Selection */
::selection { background: var(--accent-soft); color: var(--text); }
