/* ============================================
   DEFAULT THEME (Clarity)
   Supports both light and dark modes
   ============================================ */

:root,
.theme-default {
  --background: oklch(0.9777 0.0041 301.4256);
  --foreground: oklch(0.3651 0.0325 287.0807);
  --card: oklch(1 0 0);
  --card-foreground: oklch(0.3651 0.0325 287.0807);
  --popover: oklch(1 0 0);
  --popover-foreground: oklch(0.3651 0.0325 287.0807);
  --primary: oklch(0.6104 0.0767 299.7335);
  --primary-foreground: oklch(0.9777 0.0041 301.4256);
  --secondary: oklch(0.8957 0.0265 300.2416);
  --secondary-foreground: oklch(0.3651 0.0325 287.0807);
  --muted: oklch(0.8906 0.0139 299.7754);
  --muted-foreground: oklch(0.5288 0.0375 290.7895);
  --accent: oklch(0.7889 0.0802 359.9375);
  --accent-foreground: oklch(0.3394 0.0441 1.7583);
  --destructive: oklch(0.6332 0.1578 22.6734);
  --destructive-foreground: oklch(0.9777 0.0041 301.4256);
  --border: oklch(0.8447 0.0226 300.1421);
  --input: oklch(0.9329 0.0124 301.2783);
  --ring: oklch(0.6104 0.0767 299.7335);
  --chart-1: oklch(0.6104 0.0767 299.7335);
  --chart-2: oklch(0.7889 0.0802 359.9375);
  --chart-3: oklch(0.7321 0.0749 169.867);
  --chart-4: oklch(0.854 0.0882 76.8292);
  --chart-5: oklch(0.7857 0.0645 258.0839);
  --sidebar: oklch(0.9554 0.0082 301.3541);
  --sidebar-foreground: oklch(0.3651 0.0325 287.0807);
  --sidebar-primary: oklch(0.6104 0.0767 299.7335);
  --sidebar-primary-foreground: oklch(0.9777 0.0041 301.4256);
  --sidebar-accent: oklch(0.7889 0.0802 359.9375);
  --sidebar-accent-foreground: oklch(0.3394 0.0441 1.7583);
  --sidebar-border: oklch(0.8719 0.0198 302.169);
  --sidebar-ring: oklch(0.6104 0.0767 299.7335);
  --success: oklch(0.7321 0.0749 169.867);
  --success-foreground: oklch(0.2166 0.0215 292.8474);
  --warning: oklch(0.854 0.0882 76.8292);
  --warning-foreground: oklch(0.3651 0.0325 287.0807);
  --info: oklch(0.6104 0.0767 299.7335);
  --info-foreground: oklch(0.9777 0.0041 301.4256);
  --font-sans: Geist, sans-serif;
  --font-serif: "Lora", Georgia, serif;
  --font-mono: "Fira Code", "Courier New", monospace;
  --font-display: var(--font-sans);
  --radius: 0.5rem;
  --shadow-x: 1px;
  --shadow-y: 2px;
  --shadow-blur: 5px;
  --shadow-spread: 1px;
  --shadow-opacity: 0.06;
  --shadow-color: hsl(0 0% 0%);
  --shadow-2xs: 1px 2px 5px 1px hsl(0 0% 0% / 0.03);
  --shadow-xs: 1px 2px 5px 1px hsl(0 0% 0% / 0.03);
  --shadow-sm:
    1px 2px 5px 1px hsl(0 0% 0% / 0.06), 1px 1px 2px 0px hsl(0 0% 0% / 0.06);
  --shadow:
    1px 2px 5px 1px hsl(0 0% 0% / 0.06), 1px 1px 2px 0px hsl(0 0% 0% / 0.06);
  --shadow-md:
    1px 2px 5px 1px hsl(0 0% 0% / 0.06), 1px 2px 4px 0px hsl(0 0% 0% / 0.06);
  --shadow-lg:
    1px 2px 5px 1px hsl(0 0% 0% / 0.06), 1px 4px 6px 0px hsl(0 0% 0% / 0.06);
  --shadow-xl:
    1px 2px 5px 1px hsl(0 0% 0% / 0.06), 1px 8px 10px 0px hsl(0 0% 0% / 0.06);
  --shadow-2xl: 1px 2px 5px 1px hsl(0 0% 0% / 0.15);
  --tracking-normal: 0em;
  --spacing: 0.25rem;

  /* Theme-specific accent glow (for buttons, focus states) */
  --accent-glow: oklch(0.6104 0.0767 299.7335 / 0.3);
  --accent-dim: oklch(0.6104 0.0767 299.7335 / 0.1);
}

.dark,
.theme-default.dark {
  --background: oklch(0.2166 0.0215 292.8474);
  --foreground: oklch(0.9053 0.0245 293.557);
  --card: oklch(0.2544 0.0301 292.7315);
  --card-foreground: oklch(0.9053 0.0245 293.557);
  --popover: oklch(0.2544 0.0301 292.7315);
  --popover-foreground: oklch(0.9053 0.0245 293.557);
  --primary: oklch(0.7058 0.0777 302.0489);
  --primary-foreground: oklch(0.2166 0.0215 292.8474);
  --secondary: oklch(0.4604 0.0472 295.5578);
  --secondary-foreground: oklch(0.9053 0.0245 293.557);
  --muted: oklch(0.256 0.032 294.838);
  --muted-foreground: oklch(0.6974 0.0282 300.0614);
  --accent: oklch(0.3181 0.0321 308.6149);
  --accent-foreground: oklch(0.8391 0.0692 2.6681);
  --destructive: oklch(0.6875 0.142 21.4566);
  --destructive-foreground: oklch(0.2166 0.0215 292.8474);
  --border: oklch(0.3063 0.0359 293.3367);
  --input: oklch(0.2847 0.0346 291.2726);
  --ring: oklch(0.7058 0.0777 302.0489);
  --chart-1: oklch(0.7058 0.0777 302.0489);
  --chart-2: oklch(0.8391 0.0692 2.6681);
  --chart-3: oklch(0.7321 0.0749 169.867);
  --chart-4: oklch(0.854 0.0882 76.8292);
  --chart-5: oklch(0.7857 0.0645 258.0839);
  --sidebar: oklch(0.1985 0.02 293.6639);
  --sidebar-foreground: oklch(0.9053 0.0245 293.557);
  --sidebar-primary: oklch(0.7058 0.0777 302.0489);
  --sidebar-primary-foreground: oklch(0.2166 0.0215 292.8474);
  --sidebar-accent: oklch(0.3181 0.0321 308.6149);
  --sidebar-accent-foreground: oklch(0.8391 0.0692 2.6681);
  --sidebar-border: oklch(0.2847 0.0346 291.2726);
  --sidebar-ring: oklch(0.7058 0.0777 302.0489);
  --success: oklch(0.7321 0.0749 169.867);
  --success-foreground: oklch(0.9053 0.0245 293.557);
  --warning: oklch(0.854 0.0882 76.8292);
  --warning-foreground: oklch(0.2166 0.0215 292.8474);
  --info: oklch(0.7058 0.0777 302.0489);
  --info-foreground: oklch(0.2166 0.0215 292.8474);
  --font-sans: Geist, sans-serif;
  --font-serif: "Lora", Georgia, serif;
  --font-mono: "Fira Code", "Courier New", monospace;
  --font-display: var(--font-sans);
  --radius: 0.5rem;
  --shadow-x: 1px;
  --shadow-y: 2px;
  --shadow-blur: 5px;
  --shadow-spread: 1px;
  --shadow-opacity: 0.06;
  --shadow-color: hsl(0 0% 0%);
  --shadow-2xs: 1px 2px 5px 1px hsl(0 0% 0% / 0.03);
  --shadow-xs: 1px 2px 5px 1px hsl(0 0% 0% / 0.03);
  --shadow-sm:
    1px 2px 5px 1px hsl(0 0% 0% / 0.06), 1px 1px 2px 0px hsl(0 0% 0% / 0.06);
  --shadow:
    1px 2px 5px 1px hsl(0 0% 0% / 0.06), 1px 1px 2px 0px hsl(0 0% 0% / 0.06);
  --shadow-md:
    1px 2px 5px 1px hsl(0 0% 0% / 0.06), 1px 2px 4px 0px hsl(0 0% 0% / 0.06);
  --shadow-lg:
    1px 2px 5px 1px hsl(0 0% 0% / 0.06), 1px 4px 6px 0px hsl(0 0% 0% / 0.06);
  --shadow-xl:
    1px 2px 5px 1px hsl(0 0% 0% / 0.06), 1px 8px 10px 0px hsl(0 0% 0% / 0.06);
  --shadow-2xl: 1px 2px 5px 1px hsl(0 0% 0% / 0.15);

  /* Theme-specific accent glow (for buttons, focus states) */
  --accent-glow: oklch(0.7058 0.0777 302.0489 / 0.3);
  --accent-dim: oklch(0.7058 0.0777 302.0489 / 0.1);
}

/* ============================================
   SYNC OR SWIM THEME
   Dark mode only - techy SaaS aesthetic
   Neon green accent, monospace-heavy
   ============================================ */

.theme-sync-or-swim,
.theme-sync-or-swim.dark {
  /* Core backgrounds - deep dark with slight blue undertone */
  --background: oklch(0.13 0.01 270);
  --foreground: oklch(0.98 0 0);

  /* Card/Surface colors - elevated surfaces */
  --card: oklch(0.16 0.01 270);
  --card-foreground: oklch(0.98 0 0);
  --popover: oklch(0.18 0.012 270);
  --popover-foreground: oklch(0.98 0 0);

  /* Primary - Neon green (the signature color) */
  --primary: oklch(0.85 0.2 155);
  --primary-foreground: oklch(0.13 0.01 270);

  /* Secondary - Subtle dark surface */
  --secondary: oklch(0.22 0.01 270);
  --secondary-foreground: oklch(0.85 0.02 270);

  /* Muted - For disabled/subtle elements */
  --muted: oklch(0.18 0.01 270);
  --muted-foreground: oklch(0.6 0.01 270);

  /* Accent - Same as primary for this theme */
  --accent: oklch(0.25 0.02 155);
  --accent-foreground: oklch(0.85 0.2 155);

  /* Destructive - Red-pink */
  --destructive: oklch(0.65 0.22 10);
  --destructive-foreground: oklch(0.98 0 0);

  /* Borders and inputs */
  --border: oklch(0.28 0.015 270);
  --input: oklch(0.2 0.01 270);
  --ring: oklch(0.85 0.2 155);

  /* Charts - vibrant colors that pop on dark */
  --chart-1: oklch(0.85 0.2 155);
  --chart-2: oklch(0.75 0.15 220);
  --chart-3: oklch(0.65 0.22 10);
  --chart-4: oklch(0.8 0.15 75);
  --chart-5: oklch(0.7 0.18 300);

  /* Sidebar - slightly darker than main bg */
  --sidebar: oklch(0.11 0.01 270);
  --sidebar-foreground: oklch(0.98 0 0);
  --sidebar-primary: oklch(0.85 0.2 155);
  --sidebar-primary-foreground: oklch(0.13 0.01 270);
  --sidebar-accent: oklch(0.22 0.02 155);
  --sidebar-accent-foreground: oklch(0.85 0.2 155);
  --sidebar-border: oklch(0.25 0.015 270);
  --sidebar-ring: oklch(0.85 0.2 155);

  /* Semantic colors */
  --success: oklch(0.85 0.2 155);
  --success-foreground: oklch(0.13 0.01 270);
  --warning: oklch(0.8 0.15 75);
  --warning-foreground: oklch(0.13 0.01 270);
  --info: oklch(0.75 0.15 220);
  --info-foreground: oklch(0.13 0.01 270);

  /* Typography - techy fonts */
  --font-sans: "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;
  --font-display: "Space Grotesk", ui-sans-serif, system-ui, sans-serif;
  --font-serif: "IBM Plex Sans", Georgia, serif;
  --font-mono: "JetBrains Mono", "Fira Code", ui-monospace, monospace;

  /* Slightly larger radius for modern feel */
  --radius: 0.5rem;

  /* Deeper shadows for dark theme */
  --shadow-2xs: 0 1px 2px 0 oklch(0 0 0 / 0.3);
  --shadow-xs: 0 1px 3px 0 oklch(0 0 0 / 0.4);
  --shadow-sm: 0 2px 4px 0 oklch(0 0 0 / 0.4);
  --shadow: 0 4px 6px -1px oklch(0 0 0 / 0.4);
  --shadow-md: 0 6px 10px -2px oklch(0 0 0 / 0.5);
  --shadow-lg: 0 10px 15px -3px oklch(0 0 0 / 0.5);
  --shadow-xl: 0 20px 25px -5px oklch(0 0 0 / 0.5);
  --shadow-2xl: 0 25px 50px -12px oklch(0 0 0 / 0.6);

  /* Glow effects - signature neon glow */
  --accent-glow: oklch(0.85 0.2 155 / 0.3);
  --accent-dim: oklch(0.85 0.2 155 / 0.1);
}

/* Sync or Swim specific enhancements */
.theme-sync-or-swim {
  /* Opt-in glow effect for primary CTA buttons */
  /* Add .btn-glow class to buttons that should have the neon glow effect */
  & .btn-glow {
    box-shadow: 0 0 20px var(--accent-glow);
    transition: box-shadow 0.3s ease, transform 0.2s ease;
  }

  & .btn-glow:hover {
    box-shadow: 0 0 30px var(--accent-glow), 0 0 60px var(--accent-dim);
    transform: translateY(-1px);
  }

  /* Focus rings with glow */
  & *:focus-visible {
    outline: none;
    box-shadow: 0 0 0 2px var(--background), 0 0 0 4px var(--primary), 0 0 20px var(--accent-glow);
  }

  /* Links get the accent color */
  & a:not([class]) {
    color: var(--primary);
    text-decoration: none;
    transition: color 0.2s ease;
  }

  & a:not([class]):hover {
    color: var(--info);
  }

  /* Code blocks get special treatment */
  & pre,
  & code {
    font-family: var(--font-mono);
  }

  /* Headers use display font */
  & h1, & h2, & h3, & h4, & h5, & h6 {
    font-family: var(--font-display);
    letter-spacing: -0.02em;
  }

  /* Monospace elements for that techy feel */
  & .mono,
  & [class*="font-mono"] {
    font-family: var(--font-mono);
    letter-spacing: -0.01em;
  }
}

/* ============================================
   EXTENDED THEME PALETTES
   Each palette supports light and dark modes.
   ============================================ */

.theme-glacier,
.theme-evergreen,
.theme-terracotta,
.theme-graphite {
  --background: var(--theme-background);
  --foreground: var(--theme-foreground);
  --card: var(--theme-card);
  --card-foreground: var(--theme-card-foreground);
  --popover: var(--theme-popover);
  --popover-foreground: var(--theme-popover-foreground);
  --primary: var(--theme-primary);
  --primary-foreground: var(--theme-primary-foreground);
  --secondary: var(--theme-secondary);
  --secondary-foreground: var(--theme-secondary-foreground);
  --muted: var(--theme-muted);
  --muted-foreground: var(--theme-muted-foreground);
  --accent: var(--theme-accent);
  --accent-foreground: var(--theme-accent-foreground);
  --destructive: var(--theme-destructive);
  --destructive-foreground: var(--theme-destructive-foreground);
  --border: var(--theme-border);
  --input: var(--theme-input);
  --ring: var(--theme-ring);
  --chart-1: var(--theme-chart-1);
  --chart-2: var(--theme-chart-2);
  --chart-3: var(--theme-chart-3);
  --chart-4: var(--theme-chart-4);
  --chart-5: var(--theme-chart-5);
  --sidebar: var(--theme-sidebar);
  --sidebar-foreground: var(--theme-sidebar-foreground);
  --sidebar-primary: var(--theme-primary);
  --sidebar-primary-foreground: var(--theme-primary-foreground);
  --sidebar-accent: var(--theme-sidebar-accent);
  --sidebar-accent-foreground: var(--theme-sidebar-accent-foreground);
  --sidebar-border: var(--theme-sidebar-border);
  --sidebar-ring: var(--theme-ring);
  --success: var(--theme-success);
  --success-foreground: var(--theme-success-foreground);
  --warning: var(--theme-warning);
  --warning-foreground: var(--theme-warning-foreground);
  --info: var(--theme-info);
  --info-foreground: var(--theme-info-foreground);
  --accent-glow: color-mix(in oklch, var(--primary) 30%, transparent);
  --accent-dim: color-mix(in oklch, var(--primary) 10%, transparent);
}

/* Glacier: clear blues and cold aqua accents. */
.theme-glacier {
  --theme-background: #f4f8fb;
  --theme-foreground: #172b3a;
  --theme-card: #ffffff;
  --theme-card-foreground: #172b3a;
  --theme-popover: #ffffff;
  --theme-popover-foreground: #172b3a;
  --theme-primary: #1677a6;
  --theme-primary-foreground: #ffffff;
  --theme-secondary: #dcecf3;
  --theme-secondary-foreground: #173b4c;
  --theme-muted: #e9f0f4;
  --theme-muted-foreground: #567080;
  --theme-accent: #cfede8;
  --theme-accent-foreground: #145b55;
  --theme-destructive: #b64242;
  --theme-destructive-foreground: #ffffff;
  --theme-border: #c9d9e2;
  --theme-input: #dce7ed;
  --theme-ring: #1677a6;
  --theme-chart-1: #1677a6;
  --theme-chart-2: #159a8c;
  --theme-chart-3: #d6803a;
  --theme-chart-4: #7a62b3;
  --theme-chart-5: #d05d78;
  --theme-sidebar: #eaf2f6;
  --theme-sidebar-foreground: #173443;
  --theme-sidebar-accent: #d4e7ed;
  --theme-sidebar-accent-foreground: #145b55;
  --theme-sidebar-border: #c3d7e0;
  --theme-success: #257a58;
  --theme-success-foreground: #ffffff;
  --theme-warning: #9a5b0f;
  --theme-warning-foreground: #ffffff;
  --theme-info: #1677a6;
  --theme-info-foreground: #ffffff;
  --font-sans: "Manrope", ui-sans-serif, system-ui, sans-serif;
  --font-display: var(--font-sans);
  --font-serif: Georgia, serif;
  --font-mono: ui-monospace, "SFMono-Regular", Menlo, monospace;
  --radius: 0.75rem;
  --shadow-2xs: 0 1px 2px rgb(19 59 76 / 0.04);
  --shadow-xs: 0 1px 3px rgb(19 59 76 / 0.07);
  --shadow-sm: 0 2px 6px rgb(19 59 76 / 0.08);
  --shadow: 0 4px 10px rgb(19 59 76 / 0.09);
  --shadow-md: 0 8px 18px rgb(19 59 76 / 0.1);
  --shadow-lg: 0 14px 28px rgb(19 59 76 / 0.12);
  --shadow-xl: 0 22px 42px rgb(19 59 76 / 0.14);
  --shadow-2xl: 0 30px 60px rgb(19 59 76 / 0.18);
}

.theme-glacier.dark {
  --theme-background: #0e1d26;
  --theme-foreground: #e4f0f4;
  --theme-card: #142833;
  --theme-card-foreground: #e4f0f4;
  --theme-popover: #182e39;
  --theme-popover-foreground: #e4f0f4;
  --theme-primary: #65bce5;
  --theme-primary-foreground: #09202d;
  --theme-secondary: #213b48;
  --theme-secondary-foreground: #e1eff3;
  --theme-muted: #19313c;
  --theme-muted-foreground: #9bb1bb;
  --theme-accent: #174940;
  --theme-accent-foreground: #8fe2d4;
  --theme-destructive: #e17272;
  --theme-destructive-foreground: #1b1111;
  --theme-border: #294653;
  --theme-input: #1d3743;
  --theme-ring: #65bce5;
  --theme-chart-1: #65bce5;
  --theme-chart-2: #55c9b8;
  --theme-chart-3: #eba15d;
  --theme-chart-4: #a58cda;
  --theme-chart-5: #e68198;
  --theme-sidebar: #0a1820;
  --theme-sidebar-foreground: #e4f0f4;
  --theme-sidebar-accent: #173842;
  --theme-sidebar-accent-foreground: #8fe2d4;
  --theme-sidebar-border: #223d49;
  --theme-success: #72c49a;
  --theme-success-foreground: #0e1d26;
  --theme-warning: #e8b55f;
  --theme-warning-foreground: #221707;
  --theme-info: #65bce5;
  --theme-info-foreground: #09202d;
}

/* Evergreen: soft sage surfaces with forest and gold accents. */
.theme-evergreen {
  --theme-background: #f5f6ef;
  --theme-foreground: #253328;
  --theme-card: #fcfdf8;
  --theme-card-foreground: #253328;
  --theme-popover: #fcfdf8;
  --theme-popover-foreground: #253328;
  --theme-primary: #356b4b;
  --theme-primary-foreground: #ffffff;
  --theme-secondary: #dde8dc;
  --theme-secondary-foreground: #294a35;
  --theme-muted: #e9ece3;
  --theme-muted-foreground: #5f6b60;
  --theme-accent: #eaddbc;
  --theme-accent-foreground: #624c1e;
  --theme-destructive: #b64f4a;
  --theme-destructive-foreground: #ffffff;
  --theme-border: #ced8cb;
  --theme-input: #dde4d8;
  --theme-ring: #356b4b;
  --theme-chart-1: #356b4b;
  --theme-chart-2: #769f4b;
  --theme-chart-3: #c68b3d;
  --theme-chart-4: #4e8192;
  --theme-chart-5: #9c5c79;
  --theme-sidebar: #eaf0e5;
  --theme-sidebar-foreground: #294032;
  --theme-sidebar-accent: #dce6d5;
  --theme-sidebar-accent-foreground: #305a41;
  --theme-sidebar-border: #c7d5c3;
  --theme-success: #397650;
  --theme-success-foreground: #ffffff;
  --theme-warning: #9a681d;
  --theme-warning-foreground: #ffffff;
  --theme-info: #3e7282;
  --theme-info-foreground: #ffffff;
  --font-sans: "Source Sans 3", ui-sans-serif, system-ui, sans-serif;
  --font-display: "Source Serif 4", Georgia, serif;
  --font-serif: "Source Serif 4", Georgia, serif;
  --font-mono: ui-monospace, "SFMono-Regular", Menlo, monospace;
  --radius: 0.625rem;
  --shadow-2xs: 0 1px 2px rgb(37 51 40 / 0.04);
  --shadow-xs: 0 1px 3px rgb(37 51 40 / 0.06);
  --shadow-sm: 0 2px 6px rgb(37 51 40 / 0.07);
  --shadow: 0 4px 10px rgb(37 51 40 / 0.08);
  --shadow-md: 0 8px 18px rgb(37 51 40 / 0.09);
  --shadow-lg: 0 14px 28px rgb(37 51 40 / 0.11);
  --shadow-xl: 0 22px 42px rgb(37 51 40 / 0.13);
  --shadow-2xl: 0 30px 60px rgb(37 51 40 / 0.17);
}

.theme-evergreen.dark {
  --theme-background: #162019;
  --theme-foreground: #e7eee3;
  --theme-card: #1e2b22;
  --theme-card-foreground: #e7eee3;
  --theme-popover: #233128;
  --theme-popover-foreground: #e7eee3;
  --theme-primary: #80c99a;
  --theme-primary-foreground: #122017;
  --theme-secondary: #2b3c2f;
  --theme-secondary-foreground: #e7eee3;
  --theme-muted: #233328;
  --theme-muted-foreground: #aab8aa;
  --theme-accent: #4a4024;
  --theme-accent-foreground: #f2d589;
  --theme-destructive: #e27770;
  --theme-destructive-foreground: #25110f;
  --theme-border: #35483a;
  --theme-input: #293b2f;
  --theme-ring: #80c99a;
  --theme-chart-1: #80c99a;
  --theme-chart-2: #a7cb73;
  --theme-chart-3: #e0ad5e;
  --theme-chart-4: #70acbd;
  --theme-chart-5: #cf8eaa;
  --theme-sidebar: #111a14;
  --theme-sidebar-foreground: #e7eee3;
  --theme-sidebar-accent: #293a2e;
  --theme-sidebar-accent-foreground: #b6dfc2;
  --theme-sidebar-border: #2e4134;
  --theme-success: #80c99a;
  --theme-success-foreground: #122017;
  --theme-warning: #e0ad5e;
  --theme-warning-foreground: #251a08;
  --theme-info: #70acbd;
  --theme-info-foreground: #102028;
}

/* Terracotta: warm paper, clay, and ink. */
.theme-terracotta {
  --theme-background: #fbf6ef;
  --theme-foreground: #3a2c29;
  --theme-card: #fffdf9;
  --theme-card-foreground: #3a2c29;
  --theme-popover: #fffdf9;
  --theme-popover-foreground: #3a2c29;
  --theme-primary: #a94f3d;
  --theme-primary-foreground: #ffffff;
  --theme-secondary: #f0dfd2;
  --theme-secondary-foreground: #56382e;
  --theme-muted: #f2eae2;
  --theme-muted-foreground: #74635e;
  --theme-accent: #eac8a3;
  --theme-accent-foreground: #684316;
  --theme-destructive: #af3f45;
  --theme-destructive-foreground: #ffffff;
  --theme-border: #e2d2c5;
  --theme-input: #eddfd3;
  --theme-ring: #a94f3d;
  --theme-chart-1: #a94f3d;
  --theme-chart-2: #d28b57;
  --theme-chart-3: #ae8b32;
  --theme-chart-4: #4d817a;
  --theme-chart-5: #8b5b84;
  --theme-sidebar: #f5ebdd;
  --theme-sidebar-foreground: #4b342d;
  --theme-sidebar-accent: #ead8c6;
  --theme-sidebar-accent-foreground: #783d30;
  --theme-sidebar-border: #ddcbbb;
  --theme-success: #4d795b;
  --theme-success-foreground: #ffffff;
  --theme-warning: #986117;
  --theme-warning-foreground: #ffffff;
  --theme-info: #4d777e;
  --theme-info-foreground: #ffffff;
  --font-sans: "DM Sans", ui-sans-serif, system-ui, sans-serif;
  --font-display: "Fraunces", Georgia, serif;
  --font-serif: "Fraunces", Georgia, serif;
  --font-mono: ui-monospace, "SFMono-Regular", Menlo, monospace;
  --radius: 0.875rem;
  --shadow-2xs: 0 1px 2px rgb(90 55 42 / 0.04);
  --shadow-xs: 0 2px 4px rgb(90 55 42 / 0.06);
  --shadow-sm: 0 3px 8px rgb(90 55 42 / 0.07);
  --shadow: 0 6px 14px rgb(90 55 42 / 0.08);
  --shadow-md: 0 10px 22px rgb(90 55 42 / 0.1);
  --shadow-lg: 0 16px 32px rgb(90 55 42 / 0.12);
  --shadow-xl: 0 24px 46px rgb(90 55 42 / 0.14);
  --shadow-2xl: 0 32px 64px rgb(90 55 42 / 0.18);
}

.theme-terracotta.dark {
  --theme-background: #251a18;
  --theme-foreground: #f4e7df;
  --theme-card: #31221e;
  --theme-card-foreground: #f4e7df;
  --theme-popover: #382722;
  --theme-popover-foreground: #f4e7df;
  --theme-primary: #e58d74;
  --theme-primary-foreground: #2a1712;
  --theme-secondary: #483029;
  --theme-secondary-foreground: #f5e7de;
  --theme-muted: #382723;
  --theme-muted-foreground: #bfa9a1;
  --theme-accent: #5a3d22;
  --theme-accent-foreground: #f2c982;
  --theme-destructive: #e27579;
  --theme-destructive-foreground: #2b1114;
  --theme-border: #503630;
  --theme-input: #422c27;
  --theme-ring: #e58d74;
  --theme-chart-1: #e58d74;
  --theme-chart-2: #e9aa72;
  --theme-chart-3: #d7b861;
  --theme-chart-4: #79b1a8;
  --theme-chart-5: #c590bd;
  --theme-sidebar: #1d1412;
  --theme-sidebar-foreground: #f4e7df;
  --theme-sidebar-accent: #402a25;
  --theme-sidebar-accent-foreground: #f1b09d;
  --theme-sidebar-border: #452f2a;
  --theme-success: #86bd8d;
  --theme-success-foreground: #172019;
  --theme-warning: #e2b55f;
  --theme-warning-foreground: #271b08;
  --theme-info: #79b1b8;
  --theme-info-foreground: #102126;
}

/* Graphite: neutral surfaces with precise cobalt accents. */
.theme-graphite {
  --theme-background: #f5f5f4;
  --theme-foreground: #202022;
  --theme-card: #ffffff;
  --theme-card-foreground: #202022;
  --theme-popover: #ffffff;
  --theme-popover-foreground: #202022;
  --theme-primary: #2c2c30;
  --theme-primary-foreground: #fafafa;
  --theme-secondary: #e7e7e5;
  --theme-secondary-foreground: #303033;
  --theme-muted: #ececea;
  --theme-muted-foreground: #66666b;
  --theme-accent: #dce6ff;
  --theme-accent-foreground: #1e3a78;
  --theme-destructive: #b42335;
  --theme-destructive-foreground: #ffffff;
  --theme-border: #d4d4d2;
  --theme-input: #e1e1df;
  --theme-ring: #3d63c9;
  --theme-chart-1: #3d63c9;
  --theme-chart-2: #0f7b7d;
  --theme-chart-3: #b9631f;
  --theme-chart-4: #754fb1;
  --theme-chart-5: #b43e67;
  --theme-sidebar: #ebebe9;
  --theme-sidebar-foreground: #29292c;
  --theme-sidebar-accent: #dce2f2;
  --theme-sidebar-accent-foreground: #1e3a78;
  --theme-sidebar-border: #cdcdca;
  --theme-success: #2f7655;
  --theme-success-foreground: #ffffff;
  --theme-warning: #8d5b12;
  --theme-warning-foreground: #ffffff;
  --theme-info: #3d63c9;
  --theme-info-foreground: #ffffff;
  --font-sans: "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;
  --font-display: var(--font-sans);
  --font-serif: Georgia, serif;
  --font-mono: "IBM Plex Mono", ui-monospace, monospace;
  --radius: 0.375rem;
  --shadow-2xs: 0 1px 1px rgb(32 32 34 / 0.05);
  --shadow-xs: 0 1px 2px rgb(32 32 34 / 0.07);
  --shadow-sm: 0 2px 4px rgb(32 32 34 / 0.08);
  --shadow: 0 3px 7px rgb(32 32 34 / 0.09);
  --shadow-md: 0 6px 12px rgb(32 32 34 / 0.1);
  --shadow-lg: 0 10px 20px rgb(32 32 34 / 0.12);
  --shadow-xl: 0 16px 30px rgb(32 32 34 / 0.14);
  --shadow-2xl: 0 24px 46px rgb(32 32 34 / 0.18);
}

.theme-graphite.dark {
  --theme-background: #18181a;
  --theme-foreground: #eeeeef;
  --theme-card: #222225;
  --theme-card-foreground: #eeeeef;
  --theme-popover: #27272a;
  --theme-popover-foreground: #eeeeef;
  --theme-primary: #f1f1f2;
  --theme-primary-foreground: #1c1c1e;
  --theme-secondary: #303034;
  --theme-secondary-foreground: #efeff0;
  --theme-muted: #29292d;
  --theme-muted-foreground: #aaaab0;
  --theme-accent: #263963;
  --theme-accent-foreground: #bfd0ff;
  --theme-destructive: #e05262;
  --theme-destructive-foreground: #250e12;
  --theme-border: #3b3b40;
  --theme-input: #323237;
  --theme-ring: #83a4ff;
  --theme-chart-1: #83a4ff;
  --theme-chart-2: #50c4b7;
  --theme-chart-3: #eaa15a;
  --theme-chart-4: #b596ee;
  --theme-chart-5: #e37c9b;
  --theme-sidebar: #131315;
  --theme-sidebar-foreground: #eeeeef;
  --theme-sidebar-accent: #252d43;
  --theme-sidebar-accent-foreground: #bfd0ff;
  --theme-sidebar-border: #343438;
  --theme-success: #63bd8b;
  --theme-success-foreground: #102017;
  --theme-warning: #e4af5b;
  --theme-warning-foreground: #251906;
  --theme-info: #83a4ff;
  --theme-info-foreground: #11182a;
}

.theme-evergreen :is(h1, h2, h3),
.theme-terracotta :is(h1, h2, h3) {
  font-family: var(--font-display);
  letter-spacing: -0.02em;
}

.theme-graphite :is(h1, h2, h3, h4, h5, h6) {
  letter-spacing: -0.015em;
}

@theme inline {
  --color-background: var(--background);
  --color-foreground: var(--foreground);
  --color-card: var(--card);
  --color-card-foreground: var(--card-foreground);
  --color-popover: var(--popover);
  --color-popover-foreground: var(--popover-foreground);
  --color-primary: var(--primary);
  --color-primary-foreground: var(--primary-foreground);
  --color-secondary: var(--secondary);
  --color-secondary-foreground: var(--secondary-foreground);
  --color-muted: var(--muted);
  --color-muted-foreground: var(--muted-foreground);
  --color-accent: var(--accent);
  --color-accent-foreground: var(--accent-foreground);
  --color-destructive: var(--destructive);
  --color-destructive-foreground: var(--destructive-foreground);
  --color-border: var(--border);
  --color-input: var(--input);
  --color-ring: var(--ring);
  --color-chart-1: var(--chart-1);
  --color-chart-2: var(--chart-2);
  --color-chart-3: var(--chart-3);
  --color-chart-4: var(--chart-4);
  --color-chart-5: var(--chart-5);
  --color-sidebar: var(--sidebar);
  --color-sidebar-foreground: var(--sidebar-foreground);
  --color-sidebar-primary: var(--sidebar-primary);
  --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
  --color-sidebar-accent: var(--sidebar-accent);
  --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
  --color-sidebar-border: var(--sidebar-border);
  --color-sidebar-ring: var(--sidebar-ring);
  --color-success: var(--success);
  --color-success-foreground: var(--success-foreground);
  --color-warning: var(--warning);
  --color-warning-foreground: var(--warning-foreground);
  --color-info: var(--info);
  --color-info-foreground: var(--info-foreground);

  /* Glow effects for themes */
  --color-accent-glow: var(--accent-glow);
  --color-accent-dim: var(--accent-dim);

  --font-sans: var(--font-sans);
  --font-mono: var(--font-mono);
  --font-serif: var(--font-serif);
  --font-display: var(--font-display);

  --radius-sm: calc(var(--radius) - 4px);
  --radius-md: calc(var(--radius) - 2px);
  --radius-lg: var(--radius);
  --radius-xl: calc(var(--radius) + 4px);

  --shadow-2xs: var(--shadow-2xs);
  --shadow-xs: var(--shadow-xs);
  --shadow-sm: var(--shadow-sm);
  --shadow: var(--shadow);
  --shadow-md: var(--shadow-md);
  --shadow-lg: var(--shadow-lg);
  --shadow-xl: var(--shadow-xl);
  --shadow-2xl: var(--shadow-2xl);
}
