/* Inter 4 (variable, @fontsource-variable/inter 5.3.0, OFL): ₽ лежит в latin-ext. */
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url("/assets/fonts/inter-latin.woff2?v=3100e775e861") format("woff2");
    unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url("/assets/fonts/inter-latin-ext.woff2?v=34b9c504cab7") format("woff2");
    unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url("/assets/fonts/inter-cyrillic.woff2?v=71d5ee93cc1e") format("woff2");
    unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}

:root {
    /* Палитра-примитивы: единственное место с литералами цвета. */
    --ink-900: #141419;
    --ink-600: #5F6070;
    --ink-500: #6E6E7A;
    --ink-400: #9A9AA6;
    --ink-200: #E4E4EA;
    --ink-100: #F2F2F5;
    --ink-050: #FAFAFB;
    --white: #FFFFFF;
    --violet-600: #5B4DE0;
    --violet-400: #8A7FF0;
    --green-700: #187A48;
    --green-500: #22A366;
    --green-200: #CDEFD9;
    --green-100: #EDF9F1;
    --red-700: #B42318;
    --red-500: #E24B3B;
    --red-200: #FFD9D6;
    --red-100: #FFF1F0;
    --amber-700: #7A5B12;
    --amber-500: #F59E0B;
    --amber-200: #F6E3A8;
    --amber-100: #FFF8E3;
    --blue-500: #3B82F6;
    --blue-800: #1F4EA8;
    --teal-500: #14B8A6;
    --orange-500: #F97316;
    --slate-500: #64748B;
    --slate-300: #CBD5E1;
    --slate-400: #94A3B8;

    /* Семантические роли. Компоненты используют только их. */
    --bg-primary: var(--white);
    --bg-card: var(--white);
    --surface-subtle: var(--ink-050);
    --surface-selected: var(--ink-100);
    --border-color: var(--ink-200);
    --text-primary: var(--ink-900);
    --text-secondary: var(--ink-600);
    --text-tertiary: var(--ink-500);
    --primary-color: var(--violet-600);
    --accent-soft: var(--violet-400);
    --primary-light: color-mix(in srgb, var(--primary-color) 8%, transparent);
    --primary-mid: color-mix(in srgb, var(--primary-color) 22%, transparent);
    --action-bg: var(--ink-900);
    --brand-demo: var(--blue-800);
    --action-ink: var(--white);
    --color-on-accent: var(--white);

    --color-positive: var(--green-500);
    --color-positive-ink: var(--green-700);
    --color-positive-bg: var(--green-100);
    --color-positive-strong: var(--green-200);
    --color-negative: var(--red-500);
    --color-negative-ink: var(--red-700);
    --color-negative-bg: var(--red-100);
    --color-negative-strong: var(--red-200);
    --color-warning: var(--amber-500);
    --color-warning-ink: var(--amber-700);
    --color-warning-bg: var(--amber-100);
    --color-warning-border: var(--amber-200);
    --color-info: var(--primary-color);

    /* Роли, которыми пользуются страницы; значения — только через роли выше. */
    --accent-green: var(--color-positive);
    --accent-red: var(--color-negative);
    --over-dark: var(--color-negative-strong);
    --over-light: var(--color-negative-bg);
    --under-dark: var(--color-positive-strong);
    --under-light: var(--color-positive-bg);
    --over-chip-bg: var(--color-negative-bg);
    --over-chip-ink: var(--color-negative-ink);
    --under-chip-bg: var(--color-positive-bg);
    --under-chip-ink: var(--color-positive-ink);
    --neutral-chip-bg: var(--ink-100);
    --neutral-chip-ink: var(--text-secondary);
    --heat-ink: var(--text-primary);
    --current-blue: var(--color-info);
    --current-frame: var(--violet-400);
    --current-spent: var(--primary-light);
    --current-day-line: var(--violet-400);
    --warning: var(--color-warning);
    --warning-bg: var(--color-warning-bg);
    --warning-border: var(--color-warning-border);
    --warning-ink: var(--color-warning-ink);
    --warning-strong-bg: var(--color-warning-bg);
    --warning-strong-ink: var(--color-warning-ink);
    --warning-marker: var(--color-warning);
    --unsorted-bg: var(--color-warning-bg);
    --success-ink: var(--color-positive-ink);
    --success-bg: var(--color-positive-bg);
    --success-border: var(--color-positive-strong);
    --row-hover: var(--surface-subtle);
    --row-selected: var(--surface-selected);
    --overlay-soft: var(--ink-100);
    --overlay-border: var(--ink-200);
    --overlay-scrim: color-mix(in srgb, var(--ink-900) 32%, transparent);
    --on-accent-soft: color-mix(in srgb, var(--white) 18%, transparent);
    --on-accent-border: color-mix(in srgb, var(--white) 22%, transparent);
    --on-accent-muted: color-mix(in srgb, var(--white) 72%, transparent);
    --on-accent-text: color-mix(in srgb, var(--white) 85%, transparent);
    --shadow-ink-soft: var(--ink-100);
    --shadow-ink-mid: var(--ink-200);
    --shadow-ink-strong: var(--ink-400);
    --shadow-sm: none;
    --shadow-md: 0 8px 24px -12px color-mix(in srgb, var(--ink-900) 25%, transparent);

    --chart-neutral: var(--slate-400);
    --chart-1: var(--primary-color);
    --chart-2: var(--color-positive);
    --chart-3: var(--color-warning);
    --chart-4: var(--blue-500);
    --chart-5: var(--color-negative);
    --chart-6: var(--violet-400);
    --chart-7: var(--teal-500);
    --chart-8: var(--orange-500);
    --chart-9: var(--slate-500);
    --chart-10: var(--slate-300);
    --chart-broker: var(--primary-color);
    --chart-deposits: var(--color-positive);
    --chart-broker-fill: color-mix(in srgb, var(--chart-broker) 25%, transparent);
    --chart-deposits-fill: color-mix(in srgb, var(--chart-deposits) 25%, transparent);

    /* Шрифт и шкалы. */
    --font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --font-caption: 10px;
    --font-small: 11px;
    --font-meta: 12px;
    --font-body-sm: 13px;
    --font-control: 13px;
    --font-size-body: 14px;
    --font-section: 15px;
    --font-subtitle: 17px;
    --font-title: 22px;
    --font-value: 22px;
    --font-hero: 28px;
    --space-half: 2px;
    --space-1: 4px;
    --space-1-5: 6px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 20px;
    --space-6: 24px;
    --space-7: 28px;
    --space-8: 32px;
    --space-10: 40px;
    --space-12: 48px;
    --space-14: 56px;
    --radius-xs: 4px;
    --radius-sm: 6px;
    --radius-md: 8px;
    --radius-lg: 8px;
    --radius-card: 8px;
    --radius-pill: 999px;
    --control-height: 32px;
    --touch-target: 44px;
    --sidebar-expanded: 232px;
    --sidebar-collapsed: 60px;
    --sidebar-width: var(--sidebar-expanded);
    --container-width: 1440px;
    --table-font: var(--font-body-sm);
    --table-cell-y: 8px;
    --table-cell-x: 12px;
    --table-compact-y: calc(var(--table-cell-y) * .5);
    --table-compact-x: calc(var(--table-cell-x) * .5);
}
