/* Theme tokens — set on <html data-theme="…"> */

[data-theme="midnight"] {
  --bg: #0a0f14;
  --bg-elevated: #111b21;
  --panel: #152028;
  --panel-hover: #1c2a33;
  --border: rgba(255, 255, 255, 0.08);
  --border-focus: rgba(0, 168, 132, 0.55);
  --accent: #00a884;
  --accent-dim: #008f6f;
  --accent-glow: rgba(0, 168, 132, 0.25);
  --text: #e9edef;
  --text-soft: #aebac1;
  --muted: #667781;
  --danger: #f15c6d;
  --danger-bg: rgba(241, 92, 109, 0.12);
  --bubble-user: #005c4b;
  --bubble-assistant: #1f2c33;
  --auth-gradient-a: rgba(0, 168, 132, 0.08);
  --auth-gradient-b: rgba(0, 120, 200, 0.06);
  --shell-gradient: rgba(0, 168, 132, 0.06);
  --sidebar-bg: rgba(17, 27, 33, 0.72);
  --manuscript-bg: rgba(10, 15, 20, 0.96);
  --meta-theme-color: #0a0f14;
  --badge-accent-bg: rgba(0, 168, 132, 0.2);
  --badge-accent-text: #7dcea0;
  --badge-muted-bg: rgba(100, 140, 180, 0.2);
  --badge-muted-text: #9ec5e8;
  --overlay-backdrop: rgba(0, 0, 0, 0.55);
  --shadow-lg: 0 24px 48px rgba(0, 0, 0, 0.4);
  --accent-subtle-bg: rgba(0, 168, 132, 0.08);
  --accent-subtle-border: rgba(0, 168, 132, 0.35);
  --warn: #e8b84a;
  --warn-bg: rgba(255, 193, 7, 0.12);
  --warn-border: rgba(232, 184, 74, 0.45);
  --info-bg: rgba(13, 110, 253, 0.1);
  --info-border: rgba(13, 110, 253, 0.25);
  --info-accent: #0d6efd;
  --danger-border: rgba(241, 92, 109, 0.35);
  --danger-text-soft: #ffb4bc;
  --messages-pattern: rgba(0, 168, 132, 0.03);
  --messages-stripe: rgba(255, 255, 255, 0.012);
  --backdrop-dim: rgba(8, 12, 16, 0.35);
  --separator-accent: rgba(0, 168, 132, 0.35);
  --accent-active-bg: rgba(0, 168, 132, 0.12);
  --accent-active-border: rgba(0, 168, 132, 0.4);
  --pressed-ring-muted: rgba(148, 163, 184, 0.55);
}

/* Solarized-inspired calm dark — long-session readability */
[data-theme="solar"] {
  --bg: #002b36;
  --bg-elevated: #073642;
  --panel: #0a3d4a;
  --panel-hover: #0e4a58;
  --border: rgba(147, 161, 161, 0.14);
  --border-focus: rgba(42, 161, 152, 0.55);
  --accent: #2aa198;
  --accent-dim: #1f8a82;
  --accent-glow: rgba(42, 161, 152, 0.25);
  --text: #eee8d5;
  --text-soft: #93a1a1;
  --muted: #657b83;
  --danger: #dc322f;
  --danger-bg: rgba(220, 50, 47, 0.14);
  --bubble-user: #0d4f5c;
  --bubble-assistant: #073642;
  --auth-gradient-a: rgba(42, 161, 152, 0.1);
  --auth-gradient-b: rgba(38, 139, 210, 0.08);
  --shell-gradient: rgba(42, 161, 152, 0.07);
  --sidebar-bg: rgba(7, 54, 66, 0.82);
  --manuscript-bg: rgba(0, 43, 54, 0.96);
  --meta-theme-color: #002b36;
  --badge-accent-bg: rgba(42, 161, 152, 0.22);
  --badge-accent-text: #7dcec8;
  --badge-muted-bg: rgba(101, 123, 131, 0.22);
  --badge-muted-text: #93a1a1;
  --overlay-backdrop: rgba(0, 0, 0, 0.55);
  --shadow-lg: 0 24px 48px rgba(0, 0, 0, 0.4);
  --accent-subtle-bg: rgba(42, 161, 152, 0.08);
  --accent-subtle-border: rgba(42, 161, 152, 0.35);
  --warn: #b58900;
  --warn-bg: rgba(181, 137, 0, 0.12);
  --warn-border: rgba(181, 137, 0, 0.45);
  --info-bg: rgba(38, 139, 210, 0.1);
  --info-border: rgba(38, 139, 210, 0.25);
  --info-accent: #268bd2;
  --danger-border: rgba(220, 50, 47, 0.35);
  --danger-text-soft: #f0a8a6;
  --messages-pattern: rgba(42, 161, 152, 0.03);
  --messages-stripe: rgba(255, 255, 255, 0.012);
  --backdrop-dim: rgba(0, 20, 28, 0.35);
  --separator-accent: rgba(42, 161, 152, 0.35);
  --accent-active-bg: rgba(42, 161, 152, 0.12);
  --accent-active-border: rgba(42, 161, 152, 0.4);
  --pressed-ring-muted: rgba(147, 161, 161, 0.55);
}

/* Warm literary dark — lamp-lit night writing */
[data-theme="ink"] {
  --bg: #1a1814;
  --bg-elevated: #222018;
  --panel: #2a261e;
  --panel-hover: #343024;
  --border: rgba(255, 245, 220, 0.08);
  --border-focus: rgba(212, 168, 75, 0.55);
  --accent: #d4a84b;
  --accent-dim: #b8903a;
  --accent-glow: rgba(212, 168, 75, 0.25);
  --text: #f0ebe0;
  --text-soft: #b8ad98;
  --muted: #7a7260;
  --danger: #e07060;
  --danger-bg: rgba(224, 112, 96, 0.14);
  --bubble-user: #3d3520;
  --bubble-assistant: #2e2a22;
  --auth-gradient-a: rgba(212, 168, 75, 0.1);
  --auth-gradient-b: rgba(160, 120, 60, 0.08);
  --shell-gradient: rgba(212, 168, 75, 0.07);
  --sidebar-bg: rgba(26, 24, 20, 0.78);
  --manuscript-bg: rgba(22, 20, 16, 0.96);
  --meta-theme-color: #1a1814;
  --badge-accent-bg: rgba(212, 168, 75, 0.22);
  --badge-accent-text: #e8c878;
  --badge-muted-bg: rgba(120, 110, 90, 0.2);
  --badge-muted-text: #c4b8a0;
  --overlay-backdrop: rgba(0, 0, 0, 0.55);
  --shadow-lg: 0 24px 48px rgba(0, 0, 0, 0.4);
  --accent-subtle-bg: rgba(212, 168, 75, 0.08);
  --accent-subtle-border: rgba(212, 168, 75, 0.35);
  --warn: #d4a843;
  --warn-bg: rgba(212, 168, 67, 0.12);
  --warn-border: rgba(212, 168, 67, 0.45);
  --info-bg: rgba(120, 150, 200, 0.1);
  --info-border: rgba(120, 150, 200, 0.25);
  --info-accent: #8aa8d0;
  --danger-border: rgba(224, 112, 96, 0.35);
  --danger-text-soft: #f0b0a8;
  --messages-pattern: rgba(212, 168, 75, 0.03);
  --messages-stripe: rgba(255, 255, 255, 0.012);
  --backdrop-dim: rgba(12, 10, 8, 0.35);
  --separator-accent: rgba(212, 168, 75, 0.35);
  --accent-active-bg: rgba(212, 168, 75, 0.12);
  --accent-active-border: rgba(212, 168, 75, 0.4);
  --pressed-ring-muted: rgba(160, 150, 130, 0.55);
}

[data-theme="paper"] {
  --bg: #f6f4ef;
  --bg-elevated: #ffffff;
  --panel: #ffffff;
  --panel-hover: #f0ece4;
  --border: rgba(30, 30, 30, 0.1);
  --border-focus: rgba(0, 130, 100, 0.45);
  --accent: #007a5e;
  --accent-dim: #00624a;
  --accent-glow: rgba(0, 122, 94, 0.18);
  --text: #1a1f1c;
  --text-soft: #4a554f;
  --muted: #7a8680;
  --danger: #c43d4a;
  --danger-bg: rgba(196, 61, 74, 0.1);
  --bubble-user: #d8ebe4;
  --bubble-assistant: #ece8e1;
  --auth-gradient-a: rgba(0, 122, 94, 0.06);
  --auth-gradient-b: rgba(180, 160, 120, 0.08);
  --shell-gradient: rgba(0, 122, 94, 0.05);
  --sidebar-bg: #ebe8e2;
  --manuscript-bg: #ffffff;
  --meta-theme-color: #f6f4ef;
  --badge-accent-bg: rgba(0, 122, 94, 0.14);
  --badge-accent-text: #004d3b;
  --badge-muted-bg: rgba(60, 90, 120, 0.12);
  --badge-muted-text: #2a4a66;
  --overlay-backdrop: rgba(20, 30, 40, 0.35);
  --shadow-lg: 0 24px 48px rgba(0, 0, 0, 0.12);
  --accent-subtle-bg: rgba(0, 122, 94, 0.08);
  --accent-subtle-border: rgba(0, 122, 94, 0.28);
  --warn: #b8860b;
  --warn-bg: rgba(184, 134, 11, 0.1);
  --warn-border: rgba(184, 134, 11, 0.35);
  --info-bg: rgba(40, 100, 180, 0.08);
  --info-border: rgba(40, 100, 180, 0.22);
  --info-accent: #2870b8;
  --danger-border: rgba(196, 61, 74, 0.3);
  --danger-text-soft: #a83240;
  --messages-pattern: rgba(0, 122, 94, 0.04);
  --messages-stripe: rgba(0, 0, 0, 0.025);
  --backdrop-dim: rgba(20, 30, 40, 0.2);
  --separator-accent: rgba(0, 122, 94, 0.28);
  --accent-active-bg: rgba(0, 122, 94, 0.1);
  --accent-active-border: rgba(0, 122, 94, 0.32);
  --pressed-ring-muted: rgba(100, 120, 140, 0.45);
}

/* Warm parchment light — iA Writer / Kindle sepia */
[data-theme="sepia"] {
  --bg: #f0e6d2;
  --bg-elevated: #faf4e8;
  --panel: #faf4e8;
  --panel-hover: #ebe0ca;
  --border: rgba(70, 50, 30, 0.12);
  --border-focus: rgba(140, 100, 40, 0.5);
  --accent: #9a7230;
  --accent-dim: #7d5c26;
  --accent-glow: rgba(154, 114, 48, 0.2);
  --text: #3d3225;
  --text-soft: #6b5c48;
  --muted: #9a8a74;
  --danger: #b84030;
  --danger-bg: rgba(184, 64, 48, 0.1);
  --bubble-user: #e8dcc4;
  --bubble-assistant: #e6dfd0;
  --auth-gradient-a: rgba(154, 114, 48, 0.08);
  --auth-gradient-b: rgba(180, 150, 100, 0.1);
  --shell-gradient: rgba(154, 114, 48, 0.06);
  --sidebar-bg: #e8dcc8;
  --manuscript-bg: #faf6ec;
  --meta-theme-color: #f0e6d2;
  --badge-accent-bg: rgba(154, 114, 48, 0.16);
  --badge-accent-text: #5c4218;
  --badge-muted-bg: rgba(100, 80, 60, 0.12);
  --badge-muted-text: #4a3d30;
  --overlay-backdrop: rgba(40, 30, 20, 0.35);
  --shadow-lg: 0 24px 48px rgba(0, 0, 0, 0.12);
  --accent-subtle-bg: rgba(154, 114, 48, 0.08);
  --accent-subtle-border: rgba(154, 114, 48, 0.28);
  --warn: #a07020;
  --warn-bg: rgba(160, 112, 32, 0.1);
  --warn-border: rgba(160, 112, 32, 0.35);
  --info-bg: rgba(100, 80, 50, 0.08);
  --info-border: rgba(100, 80, 50, 0.22);
  --info-accent: #8a6530;
  --danger-border: rgba(184, 64, 48, 0.3);
  --danger-text-soft: #a03020;
  --messages-pattern: rgba(154, 114, 48, 0.04);
  --messages-stripe: rgba(0, 0, 0, 0.025);
  --backdrop-dim: rgba(40, 30, 20, 0.2);
  --separator-accent: rgba(154, 114, 48, 0.28);
  --accent-active-bg: rgba(154, 114, 48, 0.1);
  --accent-active-border: rgba(154, 114, 48, 0.32);
  --pressed-ring-muted: rgba(120, 100, 80, 0.4);
}

/* Crisp minimal light — distraction-free drafting */
[data-theme="focus"] {
  --bg: #f8f8f6;
  --bg-elevated: #ffffff;
  --panel: #ffffff;
  --panel-hover: #f0f0ee;
  --border: rgba(0, 0, 0, 0.08);
  --border-focus: rgba(60, 60, 60, 0.35);
  --accent: #3d3d3d;
  --accent-dim: #2a2a2a;
  --accent-glow: rgba(60, 60, 60, 0.15);
  --text: #1a1a1a;
  --text-soft: #555555;
  --muted: #888888;
  --danger: #c43d4a;
  --danger-bg: rgba(196, 61, 74, 0.1);
  --bubble-user: #ececea;
  --bubble-assistant: #f2f2f0;
  --auth-gradient-a: rgba(0, 0, 0, 0.03);
  --auth-gradient-b: rgba(0, 0, 0, 0.02);
  --shell-gradient: rgba(0, 0, 0, 0.02);
  --sidebar-bg: #f0f0ee;
  --manuscript-bg: #ffffff;
  --meta-theme-color: #f8f8f6;
  --badge-accent-bg: rgba(60, 60, 60, 0.1);
  --badge-accent-text: #2a2a2a;
  --badge-muted-bg: rgba(100, 100, 100, 0.1);
  --badge-muted-text: #555555;
  --overlay-backdrop: rgba(20, 20, 20, 0.35);
  --shadow-lg: 0 24px 48px rgba(0, 0, 0, 0.1);
  --accent-subtle-bg: rgba(60, 60, 60, 0.06);
  --accent-subtle-border: rgba(60, 60, 60, 0.22);
  --warn: #b8860b;
  --warn-bg: rgba(184, 134, 11, 0.1);
  --warn-border: rgba(184, 134, 11, 0.35);
  --info-bg: rgba(60, 90, 120, 0.08);
  --info-border: rgba(60, 90, 120, 0.22);
  --info-accent: #4a6a8a;
  --danger-border: rgba(196, 61, 74, 0.3);
  --danger-text-soft: #a83240;
  --messages-pattern: rgba(0, 0, 0, 0.02);
  --messages-stripe: rgba(0, 0, 0, 0.02);
  --backdrop-dim: rgba(20, 20, 20, 0.18);
  --separator-accent: rgba(60, 60, 60, 0.22);
  --accent-active-bg: rgba(60, 60, 60, 0.08);
  --accent-active-border: rgba(60, 60, 60, 0.28);
  --pressed-ring-muted: rgba(100, 100, 100, 0.4);
}