/* CalCash tokens — направление 2b. Единственный источник правды.
   Тема: [data-theme="light"|"dark"] на корне. Плотность: [data-density="comfortable"|"compact"] на корне поверхности.
   Компоненты ссылаются только на переменные, хексов в компонентах нет. */

:root, [data-theme="light"] {
  color-scheme: light;
  --cc-color-bg: #F6F6F3;
  --cc-color-surface: #FDFDFB;
  --cc-color-surface-sunken: #ECECE8;
  --cc-color-surface-hover: #F1F1EE;
  --cc-color-surface-inverse: #2A2C2A;
  --cc-color-border: #DEDEDA;
  --cc-color-border-strong: #C6C6C1;
  --cc-color-overlay: rgba(42,44,42,0.40);
  --cc-color-text: #2A2C2A;
  --cc-color-text-secondary: #5C5F5B;
  --cc-color-text-tertiary: #727571;
  --cc-color-text-muted: #9EA09C;
  --cc-color-text-on-accent: #FDFDFB;
  --cc-color-text-on-inverse: #F3F3F0;
  --cc-color-accent: #2F6B4A;
  --cc-color-accent-hover: #285C40;
  --cc-color-accent-soft: #E1ECE5;
  --cc-color-action: #2A2C2A;
  --cc-color-action-hover: #3B3E3B;
  --cc-color-focus: #2F6B4A;
  --cc-color-success: #3A8468;
  --cc-color-success-soft: #E0EEE8;
  --cc-color-warning: #8C6A26;
  --cc-color-warning-soft: #F4ECDA;
  --cc-color-danger: #A6444A;
  --cc-color-danger-soft: #F6E4E5;
  --cc-color-info: #4A6F9E;
  --cc-color-info-soft: #E3E9F1;
  --cc-color-protein: #4F7A94;
  --cc-color-fat: #B3924A;
  --cc-color-carbs: #A0725A;
  --cc-color-fiber: #6F8548;
  --cc-color-water: #4A96A2;
  --cc-color-income: #3A8468;
  --cc-color-expense: #5C5F5B;
  --cc-color-budget-track: #ECECE8;
  --cc-color-budget-fill: #2A2C2A;
  --cc-color-budget-over: #A6444A;
  --cc-color-savings: #4A6F9E;
  --cc-color-chart-1: #2F6B4A;
  --cc-color-chart-2: #4F7A94;
  --cc-color-chart-3: #B3924A;
  --cc-color-chart-4: #4A96A2;
  --cc-color-chart-5: #A0725A;
  --cc-color-chart-6: #727571;
  --cc-color-heat-1: #E6EFEA;
  --cc-color-heat-2: #C5DACD;
  --cc-color-heat-3: #98BFA8;
  --cc-color-heat-4: #66977F;
  --cc-color-heat-5: #2F6B4A;
  --cc-shadow-sheet: 0 -8px 32px rgba(19,20,19,0.14);
  --cc-shadow-pop: 0 6px 20px rgba(19,20,19,0.12);
}
[data-theme="dark"] {
  color-scheme: dark;
  --cc-color-bg: #171817;
  --cc-color-surface: #1E1F1E;
  --cc-color-surface-sunken: #282928;
  --cc-color-surface-hover: #242524;
  --cc-color-surface-inverse: #D3D5D0;
  --cc-color-border: #303130;
  --cc-color-border-strong: #414341;
  --cc-color-overlay: rgba(0,0,0,0.5);
  --cc-color-text: #D3D5D0;
  --cc-color-text-secondary: #9C9F9A;
  --cc-color-text-tertiary: #838682;
  --cc-color-text-muted: #5E615D;
  --cc-color-text-on-accent: #171817;
  --cc-color-text-on-inverse: #171817;
  --cc-color-accent: #6DB88B;
  --cc-color-accent-hover: #82C59D;
  --cc-color-accent-soft: #1F2C25;
  --cc-color-action: #D3D5D0;
  --cc-color-action-hover: #E4E6E1;
  --cc-color-focus: #6DB88B;
  --cc-color-success: #56A48A;
  --cc-color-success-soft: #1C2A24;
  --cc-color-warning: #BE985A;
  --cc-color-warning-soft: #2C261B;
  --cc-color-danger: #C77A7E;
  --cc-color-danger-soft: #322124;
  --cc-color-info: #7797B8;
  --cc-color-info-soft: #1D252D;
  --cc-color-protein: #6F91A6;
  --cc-color-fat: #BB9E5E;
  --cc-color-carbs: #AB8468;
  --cc-color-fiber: #909F68;
  --cc-color-water: #5FA5AC;
  --cc-color-income: #56A48A;
  --cc-color-expense: #9C9F9A;
  --cc-color-budget-track: #282928;
  --cc-color-budget-fill: #D3D5D0;
  --cc-color-budget-over: #C77A7E;
  --cc-color-savings: #7797B8;
  --cc-color-chart-1: #6DB88B;
  --cc-color-chart-2: #6F91A6;
  --cc-color-chart-3: #BB9E5E;
  --cc-color-chart-4: #5FA5AC;
  --cc-color-chart-5: #AB8468;
  --cc-color-chart-6: #838682;
  --cc-color-heat-1: #282928;
  --cc-color-heat-2: #243D2F;
  --cc-color-heat-3: #2B563F;
  --cc-color-heat-4: #3F855C;
  --cc-color-heat-5: #6DB88B;
  --cc-shadow-sheet: 0 -8px 32px rgba(0,0,0,0.45);
  --cc-shadow-pop: 0 6px 20px rgba(0,0,0,0.45);
}

:root {
  --cc-font-heading: Literata, Charter, Georgia, ui-serif, serif;
  --cc-font-ui: 'Golos Text', Inter, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --cc-font-number: 'IBM Plex Sans', 'Golos Text', ui-monospace, sans-serif;
  --cc-type-display-number: 600 48px/50px var(--cc-font-number);
  --cc-tracking-display-number: -0.02em;
  --cc-type-display-number-sm: 600 34px/38px var(--cc-font-number);
  --cc-tracking-display-number-sm: -0.015em;
  --cc-type-h1: 600 26px/32px var(--cc-font-heading);
  --cc-tracking-h1: -0.01em;
  --cc-type-h2: 600 21px/28px var(--cc-font-heading);
  --cc-tracking-h2: -0.01em;
  --cc-type-h3: 600 17px/24px var(--cc-font-ui);
  --cc-tracking-h3: 0;
  --cc-type-eyebrow: 600 11px/14px var(--cc-font-ui);
  --cc-tracking-eyebrow: 0.1em;
  --cc-type-body: 400 16px/24px var(--cc-font-ui);
  --cc-tracking-body: 0;
  --cc-type-body-strong: 500 16px/24px var(--cc-font-ui);
  --cc-tracking-body-strong: 0;
  --cc-type-body-compact: 400 14px/20px var(--cc-font-ui);
  --cc-tracking-body-compact: 0;
  --cc-type-label: 500 14px/20px var(--cc-font-ui);
  --cc-tracking-label: 0;
  --cc-type-caption: 400 13px/18px var(--cc-font-ui);
  --cc-tracking-caption: 0;
  --cc-type-micro: 500 11px/14px var(--cc-font-ui);
  --cc-tracking-micro: 0.04em;
  --cc-type-number-lg: 600 28px/32px var(--cc-font-number);
  --cc-tracking-number-lg: -0.01em;
  --cc-type-number-md: 600 20px/26px var(--cc-font-number);
  --cc-tracking-number-md: 0;
  --cc-type-number-sm: 500 15px/20px var(--cc-font-number);
  --cc-tracking-number-sm: 0;
  --cc-type-number-xs: 500 13px/18px var(--cc-font-number);
  --cc-tracking-number-xs: 0;
  --cc-space-1: 4px;
  --cc-space-2: 8px;
  --cc-space-3: 12px;
  --cc-space-4: 16px;
  --cc-space-5: 20px;
  --cc-space-6: 24px;
  --cc-space-7: 32px;
  --cc-space-8: 40px;
  --cc-space-9: 56px;
  --cc-radius-xs: 4px;
  --cc-radius-sm: 10px;
  --cc-radius-md: 14px;
  --cc-radius-lg: 20px;
  --cc-radius-pill: 999px;
  --cc-motion-screen: 200ms ease-out;
  --cc-motion-sheet: 240ms ease-out;
  --cc-motion-ring: 400ms ease-out;
  --cc-motion-skeleton: 1400ms ease-in-out infinite;
  --cc-motion-dots: 1200ms ease-in-out infinite;
  --cc-focus-ring: 0 0 0 2px var(--cc-color-bg), 0 0 0 4px var(--cc-color-focus);
}

/* Плотность: comfortable — мини-приложение, compact — админка. До 768px админка целиком переходит в comfortable. */
:root, [data-density="comfortable"] {
  --cc-font-body: 16px;
  --cc-font-label: 14px;
  --cc-control-height: 48px;
  --cc-control-height-sm: 40px;
  --cc-row-height: 56px;
  --cc-card-padding: 16px;
  --cc-card-padding-summary: 20px;
  --cc-section-gap: 24px;
  --cc-card-gap: 12px;
  --cc-icon-size: 24px;
  --cc-icon-size-inline: 20px;
  --cc-touch-target: 44px;
  --cc-display-number: 48px;
  --cc-radius-card: 14px;
}
[data-density="compact"] {
  --cc-font-body: 14px;
  --cc-font-label: 13px;
  --cc-control-height: 32px;
  --cc-control-height-sm: 28px;
  --cc-row-height: 40px;
  --cc-card-padding: 16px;
  --cc-card-padding-summary: 20px;
  --cc-section-gap: 16px;
  --cc-card-gap: 16px;
  --cc-icon-size: 18px;
  --cc-icon-size-inline: 16px;
  --cc-touch-target: 32px;
  --cc-display-number: 34px;
  --cc-radius-card: 14px;
}
@media (max-width: 768px) {
  [data-density="compact"] {
  --cc-font-body: 16px;
  --cc-font-label: 14px;
  --cc-control-height: 48px;
  --cc-control-height-sm: 40px;
  --cc-row-height: 56px;
  --cc-card-padding: 16px;
  --cc-card-padding-summary: 20px;
  --cc-section-gap: 24px;
  --cc-card-gap: 12px;
  --cc-icon-size: 24px;
  --cc-icon-size-inline: 20px;
  --cc-touch-target: 44px;
  --cc-display-number: 48px;
  --cc-radius-card: 14px;
  }
}

/* Числа: везде табличные и с перечёркнутым нулём */
.cc-num, [data-cc-number] { font-family: var(--cc-font-number); font-variant-numeric: tabular-nums slashed-zero; }

/* site-tokens — четыре расширения только для сайта (лист Stage 1 Note). На 390 заголовки остаются h1 26/32. */
:root {
  --site-h1-desktop: 600 34px/40px var(--cc-font-heading);
  --site-hero-desktop: 600 44px/52px var(--cc-font-heading);
  --site-article-body: 400 18px/30px var(--cc-font-ui);
  --site-article-body-sm: 400 17px/28px var(--cc-font-ui);
  --site-section-gap: 96px;
}
@media (max-width: 768px) {
  :root { --site-section-gap: 56px; }
}
