/* phase design tokens v2.0.8 — сгенерировано из design/phase-tokens.json.
   Руками не править: меняется только вместе с JSON из phase114/phaseapp. */
:root {
  /* Цвет */
  --bg: #0F1418;
  --surface-1: #161B20;
  --surface-2: #1D232A;
  --slate: #2A2F36;
  --hairline: #2A2F36;
  --hairline-soft: #232A31;
  --text-1: #E8ECEF;
  --text-2: #A9B1B8;
  --text-3: #8B949D;
  --text-disabled: #4F575F;
  --accent: #4EE6A1;
  --accent-soft: #1B3D34;
  --on-accent: #0F1418;
  --warn: #FFB454;
  --warn-soft: rgba(255,180,84,0.14);
  --error: #FF6B6B;
  --record: #E8C547;
  --sport-run: #FF7A5C;
  --sport-gym: #A08CFF;
  --sport-swim: #4CC8F7;
  --sport-bike: #FF8AD8;
  --rpe-1: #4CC8F7; /* RPE 6 */
  --rpe-2: #62B4EC; /* RPE 6.5 */
  --rpe-3: #7FA0E4; /* RPE 7 */
  --rpe-4: #9E8DE0; /* RPE 7.5 */
  --rpe-5: #BB7ED0; /* RPE 8 */
  --rpe-6: #D678AE; /* RPE 8.5 */
  --rpe-7: #EA7889; /* RPE 9 */
  --rpe-8: #F67C6C; /* RPE 9.5 */
  --rpe-9: #FF6B6B; /* RPE 10 */
  --scrim: rgba(15,20,24,0.72);

  /* Отступы (шкала + именованные) */
  --space-2: 2px;
  --space-4: 4px;
  --space-8: 8px;
  --space-12: 12px;
  --space-16: 16px;
  --space-20: 20px;
  --space-24: 24px;
  --space-32: 32px;
  --space-40: 40px;
  --screen-x: 16px;
  --card-gap: 12px;
  --card-pad: 16px;
  --row-y: 12px;
  --section-gap: 24px;
  --stack: 8px;
  --inline: 8px;
  --nav-clear: 104px;

  /* Радиусы */
  --r-sm: 8px;
  --r-field: 12px;
  --r-card: 24px;
  --r-sheet: 28px;
  --r-pill: 999px;

  --border-hairline: 1px;
  --border-focus: 2px;

  /* Свечение — одно на экран, только «сейчас» */
  --glow-accent: 0 0 24px rgba(78,230,161,0.28);
  --glow-dot: 0 0 24px rgba(78,230,161,0.70);

  /* Движение: только transform (translate/scale) и opacity */
  --dur-fast: 120ms;
  --dur-base: 200ms;
  --dur-slow: 300ms;
  --ease-out: cubic-bezier(.2,.8,.2,1);
  --ease-in: cubic-bezier(.4,0,1,1);
  --standard: cubic-bezier(.4,0,.2,1);

  /* Тач-цели */
  --touch-min: 48px;
  --touch-row: 56px;
  --touch-row-set: 64px;
  --touch-stepper: 56px;
  --touch-button-lg: 54px;
  --touch-button-md: 44px;
  --touch-nav: 64px;
  --touch-button-xl: 76px;

  /* Типографика: Manrope, роли */
  --font: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

/* Текстовые роли — других размеров нет. tnum = табличные цифры. */
.t-display { font-size: 72px; line-height: 1; font-weight: 800; font-variant-numeric: tabular-nums; }
.t-num-lg { font-size: 40px; line-height: 1; font-weight: 800; font-variant-numeric: tabular-nums; }
.t-num-md { font-size: 24px; line-height: 1.1; font-weight: 700; font-variant-numeric: tabular-nums; }
.t-num-sm { font-size: 16px; line-height: 1.2; font-weight: 700; font-variant-numeric: tabular-nums; }
.t-hero { font-size: 28px; line-height: 1.1; font-weight: 800; letter-spacing: -0.02em; }
.t-title { font-size: 22px; line-height: 1.15; font-weight: 800; letter-spacing: -0.01em; }
.t-card-title { font-size: 17px; line-height: 1.25; font-weight: 700; }
.t-body { font-size: 15px; line-height: 1.45; font-weight: 500; }
.t-small { font-size: 13px; line-height: 1.4; font-weight: 500; }
.t-meta { font-size: 12px; line-height: 1.4; font-weight: 500; font-variant-numeric: tabular-nums; }
.t-label { font-size: 11px; line-height: 1.2; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; }
.t-button { font-size: 15px; line-height: 1; font-weight: 700; }
.t-display-xl { font-size: 88px; line-height: 1; font-weight: 800; font-variant-numeric: tabular-nums; }
.t-wordmark { font-size: 56px; line-height: 1; font-weight: 800; letter-spacing: -0.03em; }
.t-slogan { font-size: 12px; line-height: 1.2; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 1ms !important; transition-duration: 1ms !important; }
}
