/* tokens.css — docs/DESIGN-shadcn-ui.md §2
 *
 * shadcn/ui new-york-v4 "neutral" palitrasi (oklch) + ilovaga xos qo'shimcha tokenlar.
 * :root = light, :root.dark = dark (index.html dagi inline skript <html> ga `dark` klassini qo'yadi).
 * OGOH: ushbu faylda ikki turdagi tokenlar bor:
 *   1) 26 ta rasmiy shadcn tokeni (--background ... --sidebar-ring) — QIYMATLARINI O'ZGARTIRMANG;
 *   2) qo'shimcha (semantik/heat/soya/layout/moslik) tokenlar — kontrast WCAG AA (matn >= 4.5:1, UI >= 3:1) tekshirilgan.
 * --muted = FON (shadcn), matn uchun --muted-foreground ishlating. --accent ham FON (hover/tanlangan qator) — havola/matn rangi uchun --info yoki --primary.
 */

:root {
  color-scheme: light;

  /* ---- Rasmiy shadcn tokenlari (light) ---- */
  --background: oklch(1 0 0);
  --foreground: oklch(0.145 0 0);
  --card: oklch(1 0 0);
  --card-foreground: oklch(0.145 0 0);
  --popover: oklch(1 0 0);
  --popover-foreground: oklch(0.145 0 0);
  --primary: oklch(0.205 0 0);
  --primary-foreground: oklch(0.985 0 0);
  --secondary: oklch(0.97 0 0);
  --secondary-foreground: oklch(0.205 0 0);
  --muted: oklch(0.97 0 0);
  --muted-foreground: oklch(0.556 0 0);
  --accent: oklch(0.97 0 0);
  --accent-foreground: oklch(0.205 0 0);
  --destructive: oklch(0.577 0.245 27.325);
  --border: oklch(0.922 0 0);
  --input: oklch(0.922 0 0);
  --ring: oklch(0.708 0 0);
  --chart-1: oklch(0.646 0.222 41.116);
  --chart-2: oklch(0.6 0.118 184.704);
  --chart-3: oklch(0.398 0.07 227.392);
  --chart-4: oklch(0.828 0.189 84.429);
  --chart-5: oklch(0.769 0.188 70.08);
  --sidebar: oklch(0.985 0 0);
  --sidebar-foreground: oklch(0.145 0 0);
  --sidebar-primary: oklch(0.205 0 0);
  --sidebar-primary-foreground: oklch(0.985 0 0);
  --sidebar-accent: oklch(0.97 0 0);
  --sidebar-accent-foreground: oklch(0.205 0 0);
  --sidebar-border: oklch(0.922 0 0);
  --sidebar-ring: oklch(0.708 0 0);

  /* ---- Qo'shimcha: muted-foreground ning "qattiqroq" varianti (karta ichidagi mayda matn, jadval sarlavhasi — AA) ---- */
  --muted-foreground-strong: oklch(0.48 0 0);

  /* ---- Fokus chegarasi: --ring (rasmiy) light'da oq fon bilan 2.6:1 — klaviatura fokusi uchun 3:1 dan yuqori qo'shimcha token ---- */
  --focus-border: oklch(0.6 0 0);

  /* ---- Semantik (matn/solid rang; -foreground = solid ustidagi matn; -muted = ~12% fon) ---- */
  --success: oklch(0.45 0.125 150);
  --success-foreground: oklch(0.985 0 0);
  --success-muted: oklch(0.45 0.125 150 / 12%);
  --warning: oklch(0.5 0.13 60);
  --warning-foreground: oklch(0.985 0 0);
  --warning-muted: oklch(0.72 0.17 70 / 16%);
  --info: oklch(0.488 0.217 264.376);
  --info-foreground: oklch(0.985 0 0);
  --info-muted: oklch(0.488 0.217 264.376 / 10%);
  --destructive-foreground: oklch(0.985 0 0);
  --destructive-muted: oklch(0.577 0.245 27.325 / 10%);
  --destructive-text: oklch(0.5 0.21 27.3);      /* tinted fon (destructive-muted) ustidagi matn — AA */
  --purple: oklch(0.496 0.255 302);
  --purple-foreground: oklch(0.985 0 0);
  --purple-muted: oklch(0.496 0.255 302 / 10%);

  /* ---- Brend ---- */
  --brand-signal: #4fe0b0;

  /* ---- Overlay (dialog fon) ---- */
  --overlay: oklch(0 0 0 / 50%);

  /* ---- Soyalar (Tailwind v4 qiymatlari) ---- */
  --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);

  /* ---- Heatmap rampasi: OCH xarita ustida — past = och (sariq), yuqori = to'yingan to'q ---- */
  --heat-1: oklch(0.9 0.12 98);
  --heat-2: oklch(0.83 0.16 80);
  --heat-3: oklch(0.73 0.185 56);
  --heat-4: oklch(0.63 0.2 36);
  --heat-5: oklch(0.51 0.19 22);
  --heat-6: oklch(0.38 0.15 10);
}

:root.dark, .dark {
  color-scheme: dark;

  /* ---- Rasmiy shadcn tokenlari (dark) ---- */
  --background: oklch(0.145 0 0);
  --foreground: oklch(0.985 0 0);
  --card: oklch(0.205 0 0);
  --card-foreground: oklch(0.985 0 0);
  --popover: oklch(0.205 0 0);
  --popover-foreground: oklch(0.985 0 0);
  --primary: oklch(0.922 0 0);
  --primary-foreground: oklch(0.205 0 0);
  --secondary: oklch(0.269 0 0);
  --secondary-foreground: oklch(0.985 0 0);
  --muted: oklch(0.269 0 0);
  --muted-foreground: oklch(0.708 0 0);
  --accent: oklch(0.269 0 0);
  --accent-foreground: oklch(0.985 0 0);
  --destructive: oklch(0.704 0.191 22.216);
  --border: oklch(1 0 0 / 10%);
  --input: oklch(1 0 0 / 15%);
  --ring: oklch(0.556 0 0);
  --chart-1: oklch(0.488 0.243 264.376);
  --chart-2: oklch(0.696 0.17 162.48);
  --chart-3: oklch(0.769 0.188 70.08);
  --chart-4: oklch(0.627 0.265 303.9);
  --chart-5: oklch(0.645 0.246 16.439);
  --sidebar: oklch(0.205 0 0);
  --sidebar-foreground: oklch(0.985 0 0);
  --sidebar-primary: oklch(0.488 0.243 264.376);
  --sidebar-primary-foreground: oklch(0.985 0 0);
  --sidebar-accent: oklch(0.269 0 0);
  --sidebar-accent-foreground: oklch(0.985 0 0);
  --sidebar-border: oklch(1 0 0 / 10%);
  --sidebar-ring: oklch(0.556 0 0);

  --muted-foreground-strong: oklch(0.75 0 0);
  --focus-border: oklch(0.556 0 0);

  --success: oklch(0.792 0.209 151.711);
  --success-foreground: oklch(0.145 0 0);
  --success-muted: oklch(0.792 0.209 151.711 / 14%);
  --warning: oklch(0.828 0.189 84.429);
  --warning-foreground: oklch(0.145 0 0);
  --warning-muted: oklch(0.828 0.189 84.429 / 14%);
  --info: oklch(0.707 0.165 254.624);
  --info-foreground: oklch(0.145 0 0);
  --info-muted: oklch(0.707 0.165 254.624 / 14%);
  --destructive-foreground: oklch(0.145 0 0);
  --destructive-muted: oklch(0.704 0.191 22.216 / 14%);
  --destructive-text: oklch(0.75 0.16 22.2);
  --purple: oklch(0.741 0.19 305);
  --purple-foreground: oklch(0.145 0 0);
  --purple-muted: oklch(0.741 0.19 305 / 14%);

  --overlay: oklch(0 0 0 / 50%);

  --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.3);
  --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.4), 0 1px 2px -1px rgb(0 0 0 / 0.4);
  --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.4), 0 2px 4px -2px rgb(0 0 0 / 0.4);
  --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.5), 0 4px 6px -4px rgb(0 0 0 / 0.5);

  /* ---- Heatmap rampasi: QORONG'I xarita ustida — past = to'q, yuqori = yorqin ---- */
  --heat-1: oklch(0.35 0.12 290);
  --heat-2: oklch(0.46 0.18 330);
  --heat-3: oklch(0.57 0.21 4);
  --heat-4: oklch(0.68 0.2 38);
  --heat-5: oklch(0.8 0.17 75);
  --heat-6: oklch(0.94 0.13 105);
}

/* ---- Umumiy (temadan mustaqil) tokenlar ---- */
:root {
  /* Shrift */
  --font-sans: "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
  --font-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;

  /* Radius shkalasi (shadcn: --radius = lg) */
  --radius: 0.625rem;
  --radius-sm: calc(var(--radius) - 4px);
  --radius-md: calc(var(--radius) - 2px);
  --radius-lg: var(--radius);
  --radius-xl: calc(var(--radius) + 4px);

  /* Layout */
  --sidebar-width: 16rem;
  --header-height: 3rem;

  /* Harakat */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --duration-fast: 120ms;
  --duration: 200ms;
}

/* Tokenlarga bog'liq hosilalar: har ikki tema (va `.dark` o'rab turuvchi element) ichida qayta hisoblanadi.
   Fokus halqasi (shadcn: focus-visible:ring-[3px] ring-ring/50) — box-shadow qiymati. */
:root, .dark {
  --ring-glow: 0 0 0 3px color-mix(in oklab, var(--ring) 50%, transparent);
  --ring-glow-destructive: 0 0 0 3px color-mix(in oklab, var(--destructive) 20%, transparent);
}
:root.dark, .dark {
  --ring-glow-destructive: 0 0 0 3px color-mix(in oklab, var(--destructive) 40%, transparent);
}

/* ---- Eski o'zgaruvchilar uchun moslik qatlami ----
 * DIQQAT: eski --muted (matn rangi) va eski --accent (ko'k havola) ATAYLAB moslanmagan —
 * shadcn'da ular FON tokenlari. Matn: --muted-foreground; havola/urg'u: --info yoki --primary.
 */
:root, .dark {
  --bg: var(--background);
  --bg-deep: var(--sidebar);
  --panel: var(--card);
  --panel-2: var(--muted);
  --border-soft: var(--border);
  --text: var(--foreground);
  --text-dim: var(--foreground);
  --accent-btn: var(--primary);
  --green: var(--success);
  --yellow: var(--warning);
  --red: var(--destructive);
  --font: var(--font-sans);
}
