/* ФинКарта — семантические токены оформления.
   Единственное место, где задаются цвета. Компоненты и JSX используют только var(--fk-*).
   Старые переменные (--ink, --paper, --accent…) — алиасы, чтобы существующие правила не ломались. */
:root,[data-theme="light"]{
  color-scheme:light;
  --fk-bg:#F1F3F6;--fk-surface:#FFFFFF;--fk-surface-raised:#F7F8FA;--fk-surface-sunken:#F1F3F6;
  --fk-text-primary:#1A1D23;--fk-text-secondary:#55606F;--fk-text-tertiary:#68717F;
  --fk-border:#DDE1E8;--fk-border-subtle:#EEF0F3;--fk-border-strong:#C3C9D4;--fk-border-interactive:#7E8798;
  --fk-accent:#1F4E8C;--fk-accent-hover:#2A62AE;--fk-accent-soft:#E9F0FA;--fk-accent-line:#BCD0EE;
  --fk-on-accent:#FFFFFF;--fk-on-accent-muted:#CFE0FA;
  --fk-domain-state:#1F4E8C;--fk-domain-economy:#0B6357;--fk-domain-budget:#734BB0;--fk-domain-taxes:#8A4B1F;
  --fk-domain-incentives:#8E3A63;--fk-domain-context:#5F6876;
  --fk-status-verified:#1D7A48;--fk-status-lag:#8A6100;--fk-status-check:#A8411A;--fk-status-missing:#68717F;
  --fk-status-restricted:#4B5563;--fk-status-conflict:#6D3B9E;--fk-status-error:#B3261E;
  --fk-status-verified-soft:#E6F4EC;--fk-status-verified-line:#C3E3D1;
  --fk-status-lag-soft:#FDF6E7;--fk-status-lag-line:#EAD9B0;--fk-status-lag-tag:#F3E3BD;--fk-status-lag-wash:#FFFDF7;
  --fk-status-error-soft:#FDEAEA;--fk-status-error-line:#F0C9C9;--fk-status-error-tag:#F5CFCF;
  --fk-status-conflict-soft:#EEF0FB;--fk-status-conflict-line:#CFD4EE;
  --fk-status-neutral-soft:#EEF1F5;--fk-status-neutral-line:#DDE3EA;
  --fk-domain-taxes-soft:#F7EEDA;
  --fk-tag-bg:rgba(0,0,0,.06);
  --fk-tip-bg:#1C2127;--fk-tip-alt-bg:#3A4A63;--fk-tip-text:#FFFFFF;--fk-tip-muted:#CFE0FA;--fk-tip-faint:#9FB0C8;
  --fk-tip-ok:#6FD49B;--fk-tip-lag:#E8BF6A;
  --fk-shade:rgba(20,30,50,.14);--fk-shade-soft:rgba(20,30,50,.06);
  --fk-shadow-1:0 1px 2px rgba(20,30,50,.05),0 2px 8px rgba(20,30,50,.04);
  --fk-shadow-2:0 4px 18px rgba(20,30,50,.10);
  --fk-scrim:rgba(22,30,45,.34);--fk-scrim-strong:rgba(12,22,38,.42);
  --fk-map-bg:#F4F7FB;--fk-map-base:#E8EBF0;--fk-map-stroke:#8D9BB0;--fk-map-outside:#EBEEF2;--fk-map-hatch:#AEB8C6;
  --fk-map-1:#E4EDF8;--fk-map-2:#C1CDDD;--fk-map-3:#9DADC2;--fk-map-4:#7A8EA7;--fk-map-5:#566E8C;--fk-map-6:#334E71;--fk-map-7:#0F2E56;
  --fk-div-n3:#A67C3E;--fk-div-n2:#C0A479;--fk-div-n1:#D9CBB5;--fk-div-0:#F3F3F0;--fk-div-p1:#A7B1BD;--fk-div-p2:#5B7089;--fk-div-p3:#0F2E56;
  --fk-chart-bar:#A8BEDE;--fk-chart-bar-hover:#7E9CC4;--fk-chart-bar-strong:#4A6F9E;--fk-chart-bar-neg:#B98A5E;
}
[data-theme="dark"]{
  color-scheme:dark;
  --fk-bg:#0E1319;--fk-surface:#151B23;--fk-surface-raised:#1C2430;--fk-surface-sunken:#10151C;
  --fk-text-primary:#E7EBF1;--fk-text-secondary:#AAB4C2;--fk-text-tertiary:#8E98A7;
  --fk-border:#2A3441;--fk-border-subtle:#202833;--fk-border-strong:#384454;--fk-border-interactive:#6C788A;
  --fk-accent:#7EA8EA;--fk-accent-hover:#9BBDF0;
  --fk-accent-soft:color-mix(in srgb,var(--fk-accent) 14%,var(--fk-surface));
  --fk-accent-line:color-mix(in srgb,var(--fk-accent) 36%,var(--fk-surface));
  --fk-on-accent:#0E1319;--fk-on-accent-muted:#1C2430;
  --fk-domain-state:#7EA8EA;--fk-domain-economy:#4CC3AF;--fk-domain-budget:#B69AEC;--fk-domain-taxes:#E2A36F;
  --fk-domain-incentives:#E78FB8;--fk-domain-context:#9CA6B4;
  --fk-status-verified:#5DCB8C;--fk-status-lag:#E2B64E;--fk-status-check:#F28D60;--fk-status-missing:#8E98A7;
  --fk-status-restricted:#B0B8C4;--fk-status-conflict:#B996F2;--fk-status-error:#F4756C;
  --fk-status-verified-soft:color-mix(in srgb,var(--fk-status-verified) 14%,var(--fk-surface));
  --fk-status-verified-line:color-mix(in srgb,var(--fk-status-verified) 34%,var(--fk-surface));
  --fk-status-lag-soft:color-mix(in srgb,var(--fk-status-lag) 14%,var(--fk-surface));
  --fk-status-lag-line:color-mix(in srgb,var(--fk-status-lag) 34%,var(--fk-surface));
  --fk-status-lag-tag:color-mix(in srgb,var(--fk-status-lag) 26%,var(--fk-surface));
  --fk-status-lag-wash:color-mix(in srgb,var(--fk-status-lag) 6%,var(--fk-surface));
  --fk-status-error-soft:color-mix(in srgb,var(--fk-status-error) 14%,var(--fk-surface));
  --fk-status-error-line:color-mix(in srgb,var(--fk-status-error) 34%,var(--fk-surface));
  --fk-status-error-tag:color-mix(in srgb,var(--fk-status-error) 26%,var(--fk-surface));
  --fk-status-conflict-soft:color-mix(in srgb,var(--fk-status-conflict) 14%,var(--fk-surface));
  --fk-status-conflict-line:color-mix(in srgb,var(--fk-status-conflict) 34%,var(--fk-surface));
  --fk-status-neutral-soft:var(--fk-surface-raised);--fk-status-neutral-line:var(--fk-border-strong);
  --fk-domain-taxes-soft:color-mix(in srgb,var(--fk-domain-taxes) 14%,var(--fk-surface));
  --fk-tag-bg:rgba(255,255,255,.07);
  --fk-tip-bg:#2A3441;--fk-tip-alt-bg:#384454;--fk-tip-text:#E7EBF1;--fk-tip-muted:#C5D3E8;--fk-tip-faint:#AAB4C2;
  --fk-tip-ok:#5DCB8C;--fk-tip-lag:#E2B64E;
  --fk-shade:rgba(0,0,0,.5);--fk-shade-soft:rgba(0,0,0,.28);
  --fk-shadow-1:none;
  --fk-shadow-2:0 6px 24px rgba(0,0,0,.45);
  --fk-scrim:rgba(4,7,11,.6);--fk-scrim-strong:rgba(3,5,8,.68);
  --fk-map-bg:#10151C;--fk-map-base:#1C2430;--fk-map-stroke:#445164;--fk-map-outside:#151B23;--fk-map-hatch:#3D4859;
  --fk-map-1:#1E2B3F;--fk-map-2:#233F66;--fk-map-3:#2B5591;--fk-map-4:#3A6DB8;--fk-map-5:#5A8BD6;--fk-map-6:#86ACE6;--fk-map-7:#B7CFF2;
  --fk-div-n3:#E2A36F;--fk-div-n2:#A57E60;--fk-div-n1:#675950;--fk-div-0:#2A3441;--fk-div-p1:#495C78;--fk-div-p2:#6784AF;--fk-div-p3:#86ACE6;
  --fk-chart-bar:#3A5070;--fk-chart-bar-hover:#5A78A0;--fk-chart-bar-strong:#5A8BD6;--fk-chart-bar-neg:#8A6A4A;
}
:root{
  --ink:var(--fk-text-primary);--ink-2:var(--fk-text-secondary);--ink-3:var(--fk-text-tertiary);--ink-4:var(--fk-text-tertiary);
  --line:var(--fk-border);--line-2:var(--fk-border-subtle);
  --paper:var(--fk-surface);--bg:var(--fk-bg);--panel:var(--fk-surface-raised);
  --accent:var(--fk-accent);--accent-2:var(--fk-accent-hover);--accent-soft:var(--fk-accent-soft);--accent-line:var(--fk-accent-line);
  --ok:var(--fk-status-verified);--ok-soft:var(--fk-status-verified-soft);
  --warn:var(--fk-status-lag);--warn-soft:var(--fk-status-lag-soft);
  --err:var(--fk-status-error);--err-soft:var(--fk-status-error-soft);
  --proxy:var(--fk-domain-taxes);--proxy-soft:var(--fk-domain-taxes-soft);
  --quasi:var(--fk-status-conflict);--quasi-soft:var(--fk-status-conflict-soft);
  --sh:var(--fk-shadow-1);--sh-2:var(--fk-shadow-2);
}
[data-theme="dark"] .card,[data-theme="dark"] .kpi,[data-theme="dark"] .modal-box,[data-theme="dark"] .drawer{box-shadow:none;}
body,.app,.topbar,.main,.card,.kpi{transition:background-color .12s linear;}
:focus-visible{outline:2px solid var(--fk-accent);outline-offset:2px;}
