/* K2 design tokens — UI-V5-0 (prompt 00)
   Эталон: Новый интерфейс/mockups/_assets/tokens.css + legacy aliases app-v2 */

html:has(body.theme-v2) {
  --bg: #F8FAFC;
  --info-bg: #E6F1FB;
  --warn-bg: #FAEEDA;
  --danger-bg: #FCEBEB;
  --ok-bg: #E1F5EE;
  --success-bg: #EAF3DE;
  background-color: var(--bg);
  color-scheme: light;
}

html:has(body.theme-v2.theme-dark) {
  --bg: #0F172A;
  --info-bg: rgba(12, 68, 124, 0.28);
  --warn-bg: rgba(133, 79, 11, 0.22);
  --danger-bg: rgba(163, 45, 45, 0.22);
  --ok-bg: rgba(15, 110, 86, 0.22);
  --success-bg: rgba(59, 109, 17, 0.22);
  background-color: var(--bg);
  color-scheme: dark;
}

body.theme-v2 {
  /* ── mockup semantic palette ── */
  --color-background-primary: #FFFFFF;
  --color-background-secondary: #F1F5F9;
  --color-background-tertiary: #E2E8F0;
  --color-background-info: #E6F1FB;
  --color-background-success: #E1F5EE;
  --color-background-warning: #FAEEDA;
  --color-background-danger: #FCEBEB;
  --color-text-primary: #0F172A;
  --color-text-secondary: #475569;
  --color-text-tertiary: #94A3B8;
  --color-text-info: #185FA5;
  --color-text-success: #0F6E56;
  --color-text-warning: #854F0B;
  --color-text-danger: #A32D2D;
  --color-border-tertiary: rgba(15, 23, 42, 0.10);
  --color-border-secondary: rgba(15, 23, 42, 0.20);
  --color-border-primary: rgba(15, 23, 42, 0.32);
  --color-border-info: #B5D4F4;
  --color-border-danger: #F09595;
  --color-border-success: #9FE1CB;
  --color-border-warning: #FAC775;

  /* ── surfaces (legacy aliases, light-first) ── */
  --bg: #F8FAFC;
  --bg-sidebar: #FFFFFF;
  --bg-card: #FFFFFF;
  --bg-card-2: #F1F5F9;
  --bg-card-3: #E2E8F0;
  --bg-hover: #F1F5F9;
  --bg-selected: rgba(24, 95, 165, 0.08);
  --row-alt: #F8FAFC;
  --card: var(--bg-card);
  --card-2: var(--bg-card-2);
  --card-3: var(--bg-card-3);
  --topbar-bg: var(--bg-sidebar);
  --topbar-fg: var(--text);
  --topbar-fg-muted: var(--text-mute);
  --topbar-border: var(--border);
  --topbar-search-bg: var(--bg-card-2);
  --topbar-search-border: var(--border);
  --topbar-control-hover: var(--bg-hover);

  /* ── accent / brand ── */
  --primary: #185FA5;
  --primary-hover: #0C447C;
  --primary-light: #E6F1FB;
  --accent: var(--primary);
  --accent-light: var(--primary-light);
  --accent-dark: var(--primary-hover);
  --blue: var(--primary);
  --brand-mark: #1D9E75;
  --platform: #534AB7;
  --platform-light: #EEEDFE;
  --platform-dark: #3C3489;

  /* ── semantic ── */
  --ok: #0F6E56;
  --ok-bg: #E1F5EE;
  --success: #3B6D11;
  --success-bg: #EAF3DE;
  --warn: #854F0B;
  --warn-bg: #FAEEDA;
  --warning-bg: var(--warn-bg);
  --danger: #A32D2D;
  --danger-bg: #FCEBEB;
  --red: var(--danger);
  --red-light: #F09595;
  --info: #0C447C;
  --info-bg: #E6F1FB;

  /* ── text ── */
  --text: #0F172A;
  --muted: #64748B;
  --muted-strong: #475569;
  --text-mute: #64748B;
  --text-dim: #94A3B8;

  /* ── borders ── */
  --border: #E2E8F0;
  --border-hover: #CBD5E1;
  --border-secondary: var(--border);

  /* ── radii (mockup + legacy aliases) ── */
  --border-radius-sm: 6px;
  --border-radius-md: 8px;
  --border-radius-lg: 12px;
  --border-radius-xl: 16px;
  --r-sm: var(--border-radius-sm);
  --r-md: var(--border-radius-md);
  --r-lg: var(--border-radius-lg);
  --r-xl: var(--border-radius-xl);

  /* ── spacing ── */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 40px;
  --space-8: 48px;

  /* ── shadows + elevation ── */
  --shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.05);
  --shadow-md: 0 4px 12px rgba(15, 23, 42, 0.08);
  --shadow-lg: 0 12px 32px rgba(15, 23, 42, 0.12);
  --elevation-0: none;
  --elevation-1: var(--shadow-sm);
  --elevation-2: var(--shadow-md);
  --elevation-3: var(--shadow-lg);

  /* ── focus ── */
  --focus-ring: 0 0 0 3px color-mix(in srgb, var(--primary) 35%, transparent);

  /* ── z-index scale ── */
  --z-base: 0;
  --z-sticky: 10;
  --z-topbar: 20;
  --z-sidebar: 25;
  --z-fab: 30;
  --z-tabbar: 35;
  --z-sheet: 40;
  --z-dropdown: 50;
  --z-modal: 60;
  --z-toast: 70;
  --z-popover: 80;

  /* ── field defaults ── */
  --field-h: 36px;
  --field-h-lg: 44px;
  --field-pad-x: 12px;
  --field-radius: 6px;
  --field-gap-label: 6px;
  --field-gap-help: 6px;
  --field-gap-row: 16px;

  /* ── layout ── */
  --sidebar-w: 240px;
  --sidebar-w-collapsed: 64px;
  --topbar-h: 56px;
  --contract-header-h: 0px;
  --contract-tabs-h: 0px;
  --contract-rail-w: 180px;
  --contract-rail-h: 0px;
  --touch-min: 44px;
  --bp-xs: 480px;
  --bp-sm: 768px;
  --bp-md: 1024px;
  --mobile-tab-bar-offset: calc(var(--touch-min) + var(--space-4) + env(safe-area-inset-bottom, 0px));
  --bulk-bar-bg: #042C53;

  --t-fast: 0.12s ease;
  --t: 0.18s ease;

  --surface: var(--bg-card);
  --surface-2: var(--bg-card-2);
  --radius-sm: var(--r-sm);
  --text-on-primary: #FFFFFF;
  --overlay: rgba(15, 23, 42, 0.45);
  --success-border: color-mix(in srgb, var(--success) 35%, transparent);
  --warning-border: color-mix(in srgb, var(--warn) 35%, transparent);
  --danger-border: color-mix(in srgb, var(--danger) 35%, transparent);
  --brand-border: color-mix(in srgb, var(--brand-mark) 25%, transparent);
  --info-border: color-mix(in srgb, var(--info) 25%, transparent);

  --font-sans: 'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-serif: 'Source Serif Pro', Georgia, serif;
  --font-display: 'Unbounded', var(--font-sans);
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;
}

body.theme-v2.theme-dark {
  --color-background-primary: #1E293B;
  --color-background-secondary: #0F172A;
  --color-background-tertiary: #334155;
  --color-text-primary: #F1F5F9;
  --color-text-secondary: #94A3B8;
  --color-text-tertiary: #64748B;
  --color-border-tertiary: rgba(255, 255, 255, 0.08);
  --color-border-secondary: rgba(255, 255, 255, 0.14);
  --color-border-primary: rgba(255, 255, 255, 0.22);

  --bg: #0F172A;
  --bg-sidebar: #1E293B;
  --bg-card: #1E293B;
  --bg-card-2: #334155;
  --bg-card-3: #1E293B;
  --bg-hover: #334155;
  --bg-selected: rgba(59, 130, 246, 0.18);
  --row-alt: #1A2744;
  --card: var(--bg-card);
  --card-2: var(--bg-card-2);
  --card-3: var(--bg-card-3);
  --topbar-bg: #0F172A;
  --topbar-fg: #F1F5F9;
  --topbar-fg-muted: #94A3B8;
  --topbar-border: rgba(255, 255, 255, 0.08);
  --topbar-search-bg: rgba(255, 255, 255, 0.05);
  --topbar-search-border: rgba(255, 255, 255, 0.10);
  --topbar-control-hover: rgba(255, 255, 255, 0.07);
  --primary: #3B82F6;
  --primary-hover: #60A5FA;
  --primary-light: rgba(59, 130, 246, 0.18);
  --accent: #3B82F6;
  --accent-light: var(--primary-light);
  --text: #F1F5F9;
  --muted: #94A3B8;
  --muted-strong: #94A3B8;
  --text-mute: #94A3B8;
  --text-dim: #64748B;
  --border: rgba(255, 255, 255, 0.1);
  --border-hover: rgba(255, 255, 255, 0.18);
  --ok-bg: rgba(15, 110, 86, 0.22);
  --success-bg: rgba(59, 109, 17, 0.22);
  --warn-bg: rgba(133, 79, 11, 0.22);
  --warning-bg: var(--warn-bg);
  --danger-bg: rgba(163, 45, 45, 0.22);
  --info-bg: rgba(12, 68, 124, 0.28);
  --info: #85B7EB;
  --warn: #FBBF24;
  --danger: #FCA5A5;
  --ok: #34D399;
  --success: #BEF264;
  --platform-light: rgba(83, 74, 183, 0.25);
  --bulk-bar-bg: var(--bg-card-2);
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.4);
  --shadow-lg: 0 12px 32px rgba(0, 0, 0, 0.5);
  --overlay: rgba(0, 0, 0, 0.45);
  --red-light: var(--danger);
  --focus-ring: 0 0 0 3px color-mix(in srgb, var(--primary) 45%, transparent);
}
