/* tokens.css — единственный источник правды для дизайн-токенов VAHTA.
   Только переменные. Никаких правил. Компоненты используют ТОЛЬКО роли. */
:root {
  /* палитра-источник (raw) — используется только внутри ролей ниже */
  --c-yellow: #FFE600;  --c-black: #000000;  --c-white: #FFFFFF;
  --c-paper: #F5F5F0;   --c-ink: #0F0F0F;    --c-gray: #555555;
  --c-gray-2: #888888;  --c-gray-3: #CCCCCC; --c-gray-4: #EEEEEE;
  --c-red: #FF3333;     --c-green: #00C851;  --c-blue: #2D7FF9;
  --c-carmine: #A4161F;

  /* роли */
  --bg: var(--c-paper);
  --surface: var(--c-white);
  --surface-2: var(--c-paper);
  --on-surface: var(--c-ink);
  --on-surface-muted: var(--c-gray);
  --border: var(--c-black);
  --border-soft: var(--c-gray-3);
  --accent: var(--c-yellow);
  --on-accent: var(--c-black);
  --accent-2: var(--c-carmine);
  --on-accent-2: var(--c-white);
  --inverse-bg: var(--c-black);
  --on-inverse: var(--c-white);

  /* legacy-алиасы (чтобы старые страничные CSS не сломались до миграции).
     Указывают на роли, а не на raw-палитру: тогда тёмная тема переопределяет
     старые страницы автоматически (--red→--negative и т.п.). */
  --text: var(--on-surface);
  --muted: var(--on-surface-muted);
  --yellow: var(--accent);
  --red: var(--negative);
  --green: var(--positive);

  /* статусы */
  --positive: var(--c-green);  --negative: var(--c-red);
  --warning: var(--c-yellow);  --info: var(--c-blue);

  /* тени */
  --shadow-sm:   2px 2px 0 var(--border);
  --shadow:      4px 4px 0 var(--border);
  --shadow-lg:   6px 6px 0 var(--border);
  --shadow-hero: 8px 8px 0 var(--border);
  /* --shadow-none: нулевое смещение, НЕ none — нужно для «вдавленного»
     состояния (.is-raised:active схлопывает тень заподлицо), не убирать. */
  --shadow-none: 0 0 0 var(--border);

  /* spacing (8-pt шкала; --space-7 намеренно пропущен — после 32px скачок к 48px) */
  --space-1: 4px;  --space-2: 8px;  --space-3: 12px;  --space-4: 16px;
  --space-5: 24px; --space-6: 32px; --space-8: 48px;

  /* типографика */
  --font-display: "Unbounded", "Helvetica Neue", Arial, sans-serif;
  --font-body:    "Inter", "Helvetica Neue", Arial, sans-serif;
  --font-mono:    "JetBrains Mono", monospace;
  --text-xs: 0.7rem;  --text-sm: 0.8rem;  --text-base: 0.95rem;
  --text-lg: 1.15rem; --text-xl: 1.5rem;  --text-2xl: 2rem;
  --lh-tight: 1.2;    --lh-body: 1.55;

  /* прочее */
  --border-w: 3px;       --border-w-thin: 2px;
  --radius: 0;
  --dur-fast: 100ms;     --dur: 150ms;
  --ease: cubic-bezier(.2,.7,.3,1);
  --z-nav: 40; --z-dropdown: 50; --z-modal: 100; --z-toast: 200;
}

[data-theme="dark"] {
  --bg: #141414;  --surface: #1E1E1E;  --surface-2: #141414;
  --on-surface: #F5F5F0;  --on-surface-muted: #A0A0A0;
  --border: #F5F5F0;
  --border-soft: #3A3A3A;
  --accent: #FFE600;  --on-accent: #000000;
  --accent-2: #E84A55; --on-accent-2: #1A0306;
  --inverse-bg: #F5F5F0;  --on-inverse: #141414;
  --text: var(--on-surface);
  --muted: var(--on-surface-muted);
  --yellow: var(--accent);
  --positive: #2EE676; --negative: #FF5C5C;
}
