/* Dark theme mapped from shadcn preset bbVKF9c */
[data-theme="dark"] {
  color-scheme: dark;
  --bg-base: oklch(0.145 0 0);
  --bg-primary: oklch(0.205 0 0);
  --bg-secondary: oklch(0.269 0 0);
  --bg-surface: oklch(0.205 0 0);
  --bg-elevated: oklch(0.269 0 0);
  --bg-deep: oklch(0.145 0 0);
  --bg-sunken: oklch(0.18 0 0);
  --bg-hover: oklch(0.269 0 0 / 0.75);

  --border-primary: oklch(1 0 0 / 0.1);
  --border-secondary: oklch(1 0 0 / 0.18);
  --border-subtle: oklch(1 0 0 / 0.06);

  --text-primary: oklch(0.985 0 0);
  --text-secondary: oklch(0.985 0 0);
  --text-tertiary: oklch(0.708 0 0);
  --text-muted: oklch(0.708 0 0);

  --scrollbar-track: oklch(0.18 0 0);
  --scrollbar-thumb: oklch(0.269 0 0);
  --scrollbar-thumb-hover: oklch(0.371 0 0);

  --glass-bg: oklch(0.205 0 0 / 0.72);
  --glass-border: oklch(1 0 0 / 0.08);

  --nav-active-bg: oklch(0.922 0 0 / 0.16);
  --nav-hover-bg: oklch(0.922 0 0 / 0.1);

  --btn-primary-bg: oklch(0.922 0 0);
  --btn-primary-text: oklch(0.205 0 0);
  --btn-primary-hover: oklch(0.985 0 0);
  --btn-primary-shadow: oklch(1 0 0 / 0.25);
  --btn-selected-bg: oklch(0.922 0 0 / 0.22);
  --btn-selected-border: oklch(0.922 0 0 / 0.45);

  --overlay-heavy: oklch(0 0 0 / 0.8);
  --overlay-medium: oklch(0 0 0 / 0.6);
  --overlay-light: oklch(0 0 0 / 0.35);
  --overlay-full: oklch(0 0 0 / 0.95);
  --overlay-border: oklch(1 0 0 / 0.08);
  --selection-bg: oklch(0.922 0 0 / 0.2);

  --accent: oklch(0.922 0 0);
  --accent-hover: oklch(0.985 0 0);
  --accent-muted: oklch(0.708 0 0);
  --accent-bg: oklch(0.922 0 0 / 0.16);
  --accent-bg-hover: oklch(0.922 0 0 / 0.24);
  --accent-border: oklch(0.922 0 0 / 0.4);
  --accent-text: oklch(0.985 0 0);
  --accent-text-hover: oklch(0.985 0 0);
  --accent-on: oklch(0.205 0 0);
  --accent-shadow: oklch(1 0 0 / 0.2);

  --toggle-active: oklch(0.922 0 0);
  --toggle-inactive: var(--border-secondary);
  --toggle-knob: oklch(0.145 0 0);

  --success: #22c55e;
  --success-text: #86efac;
  --success-bg: rgba(34, 197, 94, 0.12);
  --success-border: rgba(34, 197, 94, 0.35);

  --error: #ef4444;
  --error-text: #fca5a5;
  --error-bg: rgba(239, 68, 68, 0.12);
  --error-border: rgba(239, 68, 68, 0.35);
  --error-hover-bg: rgba(239, 68, 68, 0.18);
  --error-hover-bg-strong: rgba(239, 68, 68, 0.28);

  --warning: #fbbf24;
  --warning-text: #fcd34d;
  --warning-bg: rgba(251, 191, 36, 0.15);
  --warning-border: rgba(251, 191, 36, 0.35);

  --info: #60a5fa;
  --info-text: #93c5fd;
  --info-bg: rgba(96, 165, 250, 0.12);
  --info-border: rgba(96, 165, 250, 0.3);

  --tag-purple: #a78bfa;
  --tag-purple-bg: rgba(167, 139, 250, 0.14);
  --tag-purple-border: rgba(167, 139, 250, 0.35);
  --tag-purple-hover: rgba(167, 139, 250, 0.18);
}

/* dark mode strategy: use shadcn-like neutral zinc palette only */
[data-theme="dark"] body {
  background-color: var(--bg-base) !important;
  color: var(--text-secondary) !important;
}

/* dashboard shell */
[data-theme="dark"] :where(
  [class*="relative flex h-screen w-full overflow-hidden bg-[#fafafa]"],
  [class*="flex-1 flex flex-col overflow-hidden bg-[#fafafa]"]
) {
  background-color: #09090b !important;
}

[data-theme="dark"] :where(
  [class*="h-16 px-8 flex items-center justify-between bg-[#fafafa] sticky top-0 z-10"]
) {
  background-color: #09090b !important;
}

[data-theme="dark"] :where(
  [class*="hidden md:flex shrink-0 bg-[#f4f4f5] flex-col justify-between"]
) {
  background-color: #18181b !important;
}

[data-theme="dark"] :where(
  [class*="w-full pl-10 pr-4 py-2 bg-[#f4f4f5]"]
) {
  background-color: #18181b !important;
  border-color: #3f3f46 !important;
  color: #fafafa !important;
}

[data-theme="dark"] :where(
  [class*="bg-[#e4e4e7] text-[#09090b] font-bold"]
) {
  background-color: #27272a !important;
  color: #ffffff !important;
  border-color: #3f3f46 !important;
}

/* selected nav icon should be white */
[data-theme="dark"] :where(
  [class*="bg-[#e4e4e7] text-[#09090b] font-bold"]
) img {
  filter: brightness(0) invert(1) !important;
}

/* collapsed/expanded sidebar toggle icon dark gray */
[data-theme="dark"] :where(
  [class*="hidden md:flex shrink-0 bg-[#f4f4f5] flex-col justify-between"]
) :where(
  [class*="h-10 w-10 items-center justify-center border border-[#d4d4d8] bg-[#e4e4e7]"],
  [class*="h-10 w-full items-center justify-center gap-2 border border-[#d4d4d8] bg-[#e4e4e7]"]
) {
  background-color: #27272a !important;
  border-color: #3f3f46 !important;
  color: #e4e4e7 !important;
}

/* homepage recent project text + new project tile contrast */
[data-theme="dark"] [class*="relative flex h-screen w-full overflow-hidden bg-[#fafafa]"] :where(
  [class*="text-[#111827]"],
  [class*="text-[#111827"],
  [class*="text-[#18181b]"],
  [class*="text-[#0f172a]"],
  [class*="text-[#374151]"]
) {
  color: #fafafa !important;
}

[data-theme="dark"] [class*="relative flex h-screen w-full overflow-hidden bg-[#fafafa]"] :where(
  [class*="text-[#64748b]"],
  [class*="text-[#6b7280]"],
  [class*="text-[#71717a]"],
  [class*="text-[#94a3b8]"],
  [class*="text-[#9ca3af]"],
  [class*="text-[#a1a1aa]"]
) {
  color: #a1a1aa !important;
}

[data-theme="dark"] :where(
  [class*="border-2 border-dashed"][class*="bg-[#fafafa]"][class*="min-h-[210px]"]
) {
  background-color: #1f1f21 !important;
  border-color: #3f3f46 !important;
}

/* dashboard recent-project section (screenshot issue) */
[data-theme="dark"] :where(
  [class*="text-[42px] font-medium tracking-[-0.02em] text-[#1a1c1c]"]
) {
  color: #fafafa !important;
}

[data-theme="dark"] :where(
  [class*="h-1 w-12 bg-black"]
) {
  background-color: #e4e4e7 !important;
}

[data-theme="dark"] :where(
  [class*="relative h-[126px] border-2 border-dashed border-[var(--border-primary)] bg-[#f3f3f4]"]
) {
  background-color: #18181b !important;
  border-color: #3f3f46 !important;
}

/* hero banner border: align with section divider gray */
[data-theme="dark"] :where(
  [class*="relative h-[400px] w-full overflow-hidden border border-[var(--border-primary)]"]
) {
  border-color: #3f3f46 !important;
}

[data-theme="dark"] :where(
  [class*="flex h-12 w-12 items-center justify-center bg-[#e4e4e7]"]
) {
  background-color: #27272a !important;
}

[data-theme="dark"] :where(
  [class*="text-[11px] uppercase tracking-[1.1px] text-[#71717a] font-medium"]
) {
  color: #d4d4d8 !important;
}

/* onboarding: right panel dark with light text */
[data-theme="dark"] [data-testid="onboarding-modal"] :where(
  [class*="relative flex flex-1 flex-col bg-white"]
) {
  background-color: #18181b !important;
  color: #fafafa !important;
}

[data-theme="dark"] [data-testid="onboarding-modal"] :where(
  [class*="text-[#1a1c1c]"],
  [class*="text-[#09090b]"],
  [class*="text-[#52525b]"]
) {
  color: #fafafa !important;
}

[data-theme="dark"] [data-testid="onboarding-modal"] :where(
  [class*="text-[#71717a]"],
  [class*="text-[#a1a1aa]"],
  [class*="text-[#d4d4d8]"]
) {
  color: #a1a1aa !important;
}

[data-theme="dark"] [data-testid="onboarding-modal"] :where(
  [class*="bg-[#fafafa]"],
  [class*="bg-white"],
  [class*="border border-[#e4e4e7]"],
  [class*="border border-[#f0f0f1]"],
  [class*="border-t border-[#f4f4f5]"]
) {
  background-color: #27272a !important;
  border-color: #3f3f46 !important;
}

/* onboarding top timeline divider should match footer divider tone */
[data-theme="dark"] [data-testid="onboarding-modal"] :where(
  [class*="absolute left-0 right-0 top-[6px] h-px bg-[#f1f1f2]"]
) {
  background-color: #3f3f46 !important;
}

/* login modal: both sides dark + light text */
[data-theme="dark"] :where(
  [class*="relative flex w-full max-w-[900px] overflow-hidden bg-white"]
) {
  background-color: #18181b !important;
  border-color: #3f3f46 !important;
  color: #fafafa !important;
}

[data-theme="dark"] :where(
  [class*="hidden w-[45%] flex-col justify-between bg-[linear-gradient(128deg,#fafafa_0%,#f4f4f5_50%,#e4e4e7_100%)]"]
) {
  background: linear-gradient(135deg, #27272a 0%, #18181b 50%, #09090b 100%) !important;
  color: #fafafa !important;
}

[data-theme="dark"] :where([class*="max-w-[900px]"]) :where(
  [class*="text-[#09090b]"],
  [class*="text-[#111827]"]
) {
  color: #fafafa !important;
}

[data-theme="dark"] :where([class*="max-w-[900px]"]) :where(
  [class*="text-[#52525b]"],
  [class*="text-[#6b7280]"],
  [class*="text-[#71717a]"],
  [class*="text-[#a1a1aa]"]
) {
  color: #a1a1aa !important;
}

[data-theme="dark"] :where([class*="max-w-[900px]"]) :where(
  [class*="bg-[#fafafa]"],
  [class*="bg-white/80"],
  [class*="bg-[#fafafa]/70"],
  [class*="border border-[#e4e4e7]"],
  [class*="border border-[#e4e4e7]/50"]
) {
  background-color: #27272a !important;
  border-color: #3f3f46 !important;
}

[data-theme="dark"] :where([class*="max-w-[900px]"]) :where(
  input[class*="bg-[#fafafa]"]
) {
  background-color: #09090b !important;
  color: #fafafa !important;
  border-color: #3f3f46 !important;
}

[data-theme="dark"] :where([class*="max-w-[900px]"]) :where(
  button[class*="w-full bg-[#09090b]"],
  button[class*="bg-[#09090b] px-6"]
) {
  background-color: #f4f4f5 !important;
  color: #111827 !important;
}

[data-theme="dark"] :where([class*="max-w-[900px]"]) :where(
  button[class*="w-full border border-[#e4e4e7]"]
) {
  background-color: #27272a !important;
  border-color: #3f3f46 !important;
  color: #d4d4d8 !important;
}

/* settings / asset modals background should be dark */
[data-theme="dark"] :where(
  [class*="relative w-full max-w-xl rounded-2xl border border-[var(--border-primary)] bg-[#f8fafc]"],
  [class*="relative max-h-[90vh] w-full max-w-6xl overflow-y-auto rounded-2xl border border-[var(--border-primary)] bg-[#f8fafc]"],
  [class*="relative w-full max-w-2xl rounded-2xl border border-[var(--border-primary)] bg-[#f8fafc]"]
) {
  background-color: #18181b !important;
  border-color: #3f3f46 !important;
  color: #fafafa !important;
}

/* sidebar logo: switch blue logo to white in dark mode */
[data-theme="dark"] .sidebar-brand-logo {
  filter: brightness(0) saturate(100%) invert(100%);
}
