/* The first seven palettes retain the accepted demo. Additional palettes use the
   same neutral/accent roles. Theme changes values, never components. */

:root {
  color-scheme: light;
  --control-border: color-mix(in oklab, var(--foreground) 55%, var(--card));
  /* Readable action roles retain the demo's identity colors below. */
  --primary-action: var(--primary);
  --primary-hover: color-mix(in oklab, var(--primary-action) 90%, var(--foreground));
  --destructive-action: oklch(0.54 0.16 28);
  --destructive-hover: oklch(0.49 0.16 28);
  --link: var(--primary-action);
  --overlay: oklch(0.12 0.02 145 / 45%);
  --success: oklch(0.42 0.07 145);
  --success-background: color-mix(in oklab, var(--success) 10%, var(--card));
  --warning: oklch(0.42 0.07 70);
  --warning-background: color-mix(in oklab, var(--warning) 10%, var(--card));
  --destructive-text: var(--destructive-action);
  --destructive-background: color-mix(in oklab, var(--destructive-text) 10%, var(--card));
  /* Шалфей и крем: #f5f0e8 #dce5d4 #a8c0a0 #4a6741 */
  --background: oklch(0.959 0.012 82);
  --foreground: oklch(0.27 0.03 145);
  --card: oklch(0.985 0.008 85);
  --card-foreground: oklch(0.27 0.03 145);
  --popover: oklch(0.985 0.008 85);
  --popover-foreground: oklch(0.27 0.03 145);
  --primary: oklch(0.46 0.06 145);
  --primary-foreground: oklch(0.97 0.01 85);
  --secondary: oklch(0.905 0.025 135);
  --secondary-foreground: oklch(0.33 0.05 145);
  --muted: oklch(0.925 0.015 95);
  --muted-foreground: oklch(0.51 0.025 140);
  --accent: oklch(0.78 0.05 140);
  --accent-foreground: oklch(0.25 0.04 145);
  --sage: oklch(0.78 0.05 140);
  --clay: oklch(0.72 0.09 55);
  --destructive: oklch(0.58 0.16 28);
  --destructive-foreground: oklch(0.97 0.01 85);
  --border: oklch(0.89 0.018 110);
  --input: oklch(0.89 0.018 110);
  --ring: oklch(0.46 0.06 145);
  --chart-1: oklch(0.46 0.06 145);
  --chart-2: oklch(0.78 0.05 140);
  --chart-3: oklch(0.72 0.09 55);
  --chart-4: oklch(0.62 0.05 160);
  --chart-5: oklch(0.85 0.06 90);
  --sidebar: oklch(0.935 0.017 95);
  --sidebar-foreground: oklch(0.27 0.03 145);
  --sidebar-primary: oklch(0.46 0.06 145);
  --sidebar-primary-foreground: oklch(0.97 0.01 85);
  --sidebar-accent: oklch(0.905 0.025 135);
  --sidebar-accent-foreground: oklch(0.27 0.03 145);
  --sidebar-border: oklch(0.89 0.018 110);
  --sidebar-ring: oklch(0.46 0.06 145);
  --gradient-hero: linear-gradient(140deg, oklch(0.46 0.06 145), oklch(0.36 0.05 150));
  --shadow-soft: 0 1px 2px oklch(0.3 0.03 145 / 6%), 0 8px 24px -12px oklch(0.3 0.03 145 / 18%);
  --shadow-float: 0 12px 40px -12px oklch(0.3 0.05 145 / 35%);
  /* Collection glow colors */
  --glow-1: oklch(0.7 0.14 25);
  --glow-2: oklch(0.72 0.12 70);
  --glow-3: oklch(0.68 0.11 145);
  --glow-4: oklch(0.66 0.1 230);
  --glow-5: oklch(0.65 0.12 320);
  --glow-6: oklch(0.6 0.04 140);
}

[data-palette] {
  --primary-action: var(--primary);
  --primary-hover: color-mix(in oklab, var(--primary-action) 90%, var(--foreground));
  --control-border: color-mix(in oklab, var(--foreground) 55%, var(--card));
  --link: var(--primary-action);
}

[data-palette="sage"] {
  color-scheme: light;
  --background: oklch(0.959 0.012 82); --foreground: oklch(0.27 0.03 145);
  --card: oklch(0.985 0.008 85); --card-foreground: var(--foreground);
  --primary: oklch(0.46 0.06 145); --primary-foreground: oklch(0.97 0.01 85);
  --secondary: oklch(0.905 0.025 135); --secondary-foreground: oklch(0.33 0.05 145);
  --muted: oklch(0.925 0.015 95); --muted-foreground: oklch(0.51 0.025 140);
  --accent: oklch(0.78 0.05 140); --accent-foreground: var(--foreground);
  --border: oklch(0.89 0.018 110); --sidebar: oklch(0.935 0.017 95);
}

[data-palette="arctic"] {
  color-scheme: light;
  --background: oklch(0.985 0.004 250);
  --foreground: oklch(0.24 0.03 258);
  --card: oklch(1 0 0);
  --primary: oklch(0.53 0.16 258);
  --primary-foreground: oklch(0.99 0 0);
  --secondary: oklch(0.94 0.025 250);
  --muted: oklch(0.965 0.008 250);
  --muted-foreground: oklch(0.52 0.03 258);
  --accent: oklch(0.9 0.04 250);
  --border: oklch(0.915 0.012 250);
  --sidebar: oklch(1 0 0);
  --card-foreground: var(--foreground); --secondary-foreground: var(--foreground); --accent-foreground: var(--foreground);
}

[data-palette="slate"] {
  color-scheme: light;
  --background: oklch(0.975 0 0);
  --foreground: oklch(0.21 0.006 265);
  --card: oklch(1 0 0);
  --primary: oklch(0.26 0.012 265);
  --primary-foreground: oklch(0.98 0 0);
  --secondary: oklch(0.94 0.004 265);
  --muted: oklch(0.955 0.002 265);
  --muted-foreground: oklch(0.5 0.012 265);
  --accent: oklch(0.92 0.006 265);
  --border: oklch(0.91 0.004 265);
  --sidebar: oklch(1 0 0);
  --card-foreground: var(--foreground); --secondary-foreground: var(--foreground); --accent-foreground: var(--foreground);
}

[data-palette="sand"] {
  color-scheme: light;
  --background: oklch(0.97 0.008 85);
  --foreground: oklch(0.25 0.012 60);
  --card: oklch(0.99 0.004 85);
  --primary: oklch(0.6 0.13 42);
  --primary-action: oklch(0.56 0.13 42);
  --primary-foreground: oklch(0.985 0.005 60);
  --secondary: oklch(0.92 0.02 70);
  --muted: oklch(0.945 0.01 80);
  --muted-foreground: oklch(0.5 0.015 60);
  --accent: oklch(0.88 0.035 60);
  --border: oklch(0.89 0.012 80);
  --sidebar: oklch(0.95 0.01 85);
  --card-foreground: var(--foreground); --secondary-foreground: var(--foreground); --accent-foreground: var(--foreground);
}

[data-palette="mocha"] {
  color-scheme: light;
  --background: oklch(0.955 0.01 60);
  --foreground: oklch(0.28 0.025 45);
  --card: oklch(0.985 0.006 60);
  --primary: oklch(0.5 0.06 45);
  --primary-foreground: oklch(0.98 0.006 60);
  --secondary: oklch(0.9 0.025 55);
  --muted: oklch(0.93 0.012 60);
  --muted-foreground: oklch(0.52 0.025 50);
  --accent: oklch(0.84 0.04 55);
  --border: oklch(0.88 0.015 60);
  --sidebar: oklch(0.935 0.012 60);
  --card-foreground: var(--foreground); --secondary-foreground: var(--foreground); --accent-foreground: var(--foreground);
}

[data-palette="graphite"] {
  color-scheme: dark;
  --background: oklch(0.2 0.005 90);
  --foreground: oklch(0.93 0.01 90);
  --card: oklch(0.25 0.006 90);
  --primary: oklch(0.8 0.11 80);
  --primary-foreground: oklch(0.2 0.02 80);
  --secondary: oklch(0.32 0.02 80);
  --muted: oklch(0.28 0.008 90);
  --muted-foreground: oklch(0.73 0.01 90);
  --accent: oklch(0.36 0.025 80);
  --border: oklch(0.37 0.01 90);
  --sidebar: oklch(0.23 0.005 90);
  --card-foreground: var(--foreground); --secondary-foreground: var(--foreground); --accent-foreground: var(--foreground);
}

[data-palette="midnight"] {
  color-scheme: dark;
  --background: oklch(0.19 0.025 260);
  --foreground: oklch(0.94 0.01 250);
  --card: oklch(0.235 0.03 260);
  --primary: oklch(0.72 0.12 245);
  --primary-foreground: oklch(0.18 0.03 260);
  --secondary: oklch(0.3 0.035 260);
  --muted: oklch(0.27 0.03 260);
  --muted-foreground: oklch(0.72 0.02 250);
  --accent: oklch(0.34 0.04 255);
  --border: oklch(0.34 0.03 260);
  --sidebar: oklch(0.21 0.028 260);
  --card-foreground: var(--foreground); --secondary-foreground: var(--foreground); --accent-foreground: var(--foreground);
}

/* Calm teal on cool pale neutrals; distinct from the blue of Arctic. */
[data-palette="ocean"] {
  color-scheme: light;
  --background: #f1f7f6; --foreground: #203b3b;
  --card: #fbfefd; --card-foreground: var(--foreground);
  --primary: #286b6a; --primary-foreground: #fbfefd;
  --secondary: #d8e9e6; --secondary-foreground: var(--foreground);
  --muted: #e5efec; --muted-foreground: #496663;
  --accent: #bdd8d3; --accent-foreground: var(--foreground);
  --border: #c4d7d2; --sidebar: #e7f0ed;
}

/* A small ruby accent, with pale rose neutrals rather than saturated surfaces. */
[data-palette="wine"] {
  color-scheme: light;
  --background: #faf3f4; --foreground: #452d36;
  --card: #fffbfc; --card-foreground: var(--foreground);
  --primary: #8b4057; --primary-foreground: #fffbfc;
  --secondary: #f0dde3; --secondary-foreground: var(--foreground);
  --muted: #f4e6eb; --muted-foreground: #755663;
  --accent: #e5c5d0; --accent-foreground: var(--foreground);
  --border: #dec6cf; --sidebar: #f3e7eb;
}

/* Yellow-green neutrals and a darker olive action distinguish it from Sage. */
[data-palette="olive"] {
  color-scheme: light;
  --background: #f5f6ed; --foreground: #333c28;
  --card: #fcfdf7; --card-foreground: var(--foreground);
  --primary: #586735; --primary-foreground: #fcfdf7;
  --secondary: #e3e8d0; --secondary-foreground: var(--foreground);
  --muted: #ecefdf; --muted-foreground: #626b4d;
  --accent: #d1dbb3; --accent-foreground: var(--foreground);
  --border: #d2d9bd; --sidebar: #edf0e0;
}

/* Neutral dark surfaces with a silver action; no gold or blue identity. */
[data-palette="charcoal"] {
  color-scheme: dark;
  --background: #202326; --foreground: #e7e9e9;
  --card: #292d30; --card-foreground: var(--foreground);
  --primary: #bec9c9; --primary-foreground: #20282a;
  --secondary: #383e41; --secondary-foreground: var(--foreground);
  --muted: #32373a; --muted-foreground: #afb8ba;
  --accent: #434c4f; --accent-foreground: var(--foreground);
  --border: #50595d; --sidebar: #25292c;
}

[data-palette]:not([data-palette="sage"]) {
  --popover: var(--card); --popover-foreground: var(--foreground);
  --input: var(--border); --ring: var(--primary); --sidebar-accent: var(--secondary);
  --sidebar-foreground: var(--foreground); --sidebar-primary: var(--primary-action);
  --sidebar-primary-foreground: var(--primary-foreground); --sidebar-accent-foreground: var(--foreground);
  --sidebar-border: var(--border); --sidebar-ring: var(--ring);
  --gradient-hero: linear-gradient(140deg, var(--primary), color-mix(in oklab, var(--primary) 80%, var(--background)));
  --shadow-soft: 0 2px 14px -8px color-mix(in oklab, var(--foreground) 25%, transparent);
  --shadow-float: 0 12px 40px -12px color-mix(in oklab, var(--foreground) 20%, transparent);
}

[data-palette="graphite"], [data-palette="midnight"], [data-palette="charcoal"] {
  --success: oklch(0.8 0.09 145);
  --warning: oklch(0.82 0.1 80);
  --destructive-text: oklch(0.8 0.12 28);
}

