/* =====================================================
   Nutrition AI — дизайн-система
   Чистый, спокойный UI: светлый по умолчанию / тёмный для
   тёмной темы Telegram. Цвет — ТОЛЬКО для акцентов
   (кольцо калорий, активная вкладка, кнопки, прогресс).
   Здесь живут токены и унифицированные примитивы:
     .card         — карточка-контейнер
     .btn-primary  — основная кнопка
     input/select  — поля ввода
   ===================================================== */
:root {
  /* Акценты (используются точечно) */
  --color-primary: #22c55e;     /* зелёный — основной акцент */
  --color-primary-2: #38bdf8;   /* голубой — углеводы / графики */
  --color-accent: #f59e0b;      /* янтарь — белок / предупреждения */
  --color-danger: #ef4444;      /* красный — жиры / перебор */

  /* Поверхности (нейтральные, почти белые) */
  --bg-app: #f4f5f7;
  --surface: #ffffff;
  --surface-2: #f7f8fa;         /* вложенные плитки */
  --border: #e7e9ee;
  --border-strong: #d8dbe2;

  /* Текст */
  --text-primary: #11151c;
  --text-secondary: #5b6470;
  --text-muted: #98a1ad;

  /* Трек прогресса / поля */
  --fill-track: #eceef2;
  --fill-input: #f7f8fa;

  /* Геометрия */
  --r-sm: 12px;
  --r-md: 16px;
  --r-lg: 22px;
  --r-pill: 999px;

  --spacing-sm: 8px;
  --spacing-md: 16px;
  --spacing-lg: 24px;

  /* Движение */
  --dur: 0.22s;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);

  /* Тени — мягкие, едва заметные */
  --shadow-card: 0 1px 2px rgba(16, 24, 40, 0.04),
    0 6px 16px rgba(16, 24, 40, 0.06);
  --shadow-float: 0 8px 28px rgba(16, 24, 40, 0.14);

  --nav-h: 64px;
}

body.tg-dark-theme {
  --color-primary: #34d27b;
  --color-primary-2: #4cc2f1;
  --color-accent: #f5b22d;
  --color-danger: #f06a60;

  --bg-app: #0d1117;
  --surface: #161b22;
  --surface-2: #1c232d;
  --border: #262d38;
  --border-strong: #323a47;

  --text-primary: #e9edf2;
  --text-secondary: #aab2bd;
  --text-muted: #6b7480;

  --fill-track: #232b36;
  --fill-input: #1c232d;

  --shadow-card: 0 1px 2px rgba(0, 0, 0, 0.4), 0 6px 18px rgba(0, 0, 0, 0.35);
  --shadow-float: 0 10px 32px rgba(0, 0, 0, 0.55);
}

* {
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}

html {
  scroll-behavior: smooth;
  /* Резервируем место под полосу прокрутки всегда — иначе при появлении/
     исчезновении скролла контент «прыгает» по ширине между разделами. */
  scrollbar-gutter: stable;
  overflow-x: hidden;
}

body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display",
    "SF Pro Text", "Segoe UI", Roboto, system-ui, sans-serif;
  color: var(--text-primary);
  background: var(--bg-app);
  min-height: 100vh;
  letter-spacing: -0.01em;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

/* Графики-канвасы всегда вписаны в ширину карточки (без переполнения вправо).
   Высоту задаём явно, чтобы canvas не масштабировался по соотношению сторон. */
canvas { max-width: 100%; }
#trend-chart,
#weight-chart {
  display: block;
  width: 100%;
  height: 180px;
}

/* ----------------- КАРТОЧКИ ----------------- */
.card,
.glass-card,
.meal-item,
.recipe-item {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-card);
}

.glass-card {
  padding: var(--spacing-md);
  margin-bottom: var(--spacing-md);
}

/* ----------------- КНОПКИ ----------------- */
.btn-primary {
  border: none;
  border-radius: var(--r-pill);
  background: var(--color-primary);
  color: #fff;
  font-weight: 650;
  font-size: 15px;
  padding: 12px 22px;
  cursor: pointer;
  transition: transform var(--dur) var(--ease), filter var(--dur) var(--ease);
}
.btn-primary:active { transform: scale(0.97); filter: brightness(0.96); }

/* ----------------- ПОЛЯ ВВОДА ----------------- */
input,
select {
  width: 100%;
  border: 1px solid var(--border);
  background: var(--fill-input);
  color: var(--text-primary);
  border-radius: var(--r-sm);
  padding: 12px 14px;
  font-size: 15px;
  font-family: inherit;
  outline: none;
  transition: border-color var(--dur) var(--ease),
    box-shadow var(--dur) var(--ease);
}
input::placeholder { color: var(--text-muted); }
input:focus,
select:focus {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 22%, transparent);
}
select { appearance: none; -webkit-appearance: none; }
