/* Color tokens. Each theme overrides the same set of variables. */
:root, [data-theme="dark"] {
  --bg-primary: #080808;
  --bg-surface: #111111;
  --bg-elevated: #1a1a1a;
  --bg-hover: #222222;
  --bg-active: #2c2c2c;
  --border: #2e2e2e;
  --border-subtle: #1c1c1c;
  --accent: #c8c8c8;
  --accent-dim: #909090;
  --accent-faint: rgba(200, 200, 200, 0.11);
  --accent-text: #0a0a0a;
  --text-primary: #f2f2f2;
  --text-secondary: #909090;
  --text-dim: #606060;
  --danger: #e05555;
  --danger-dim: rgba(224, 85, 85, 0.15);
  --success: #5dbb7d;
  --warning: #e0a552;
  --overlay: rgba(0, 0, 0, 0.55);
  --shadow-md: 0 8px 40px rgba(0, 0, 0, 0.88);
  --shadow-sm: 0 2px 12px rgba(0, 0, 0, 0.65);
  --grad-bg: linear-gradient(150deg, #040404 0%, #0a0a0a 60%, #080808 100%);
  --grad-panel: linear-gradient(180deg, #131313 0%, #0e0e0e 100%);
  --sub-bg: rgba(255, 255, 255, 0.06);

  --radius-xs: 3px;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --radius-xl: 18px;
  --font-ui: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-mono: 'JetBrains Mono', 'Cascadia Mono', Consolas, monospace;
  --transition: 110ms ease;
}

[data-theme="light"] {
  --bg-primary: #f5f1eb;
  --bg-surface: #ffffff;
  --bg-elevated: #edeae3;
  --bg-hover: #e4dfd6;
  --bg-active: #d8d2c8;
  --border: #d2ccc2;
  --border-subtle: #e8e4de;
  --accent: #8b5e30;
  --accent-dim: #724c24;
  --accent-faint: rgba(139, 94, 48, 0.10);
  --accent-text: #ffffff;
  --text-primary: #2a2420;
  --text-secondary: #6a605a;
  --text-dim: #a09688;
  --danger: #c04040;
  --danger-dim: rgba(192, 64, 64, 0.12);
  --overlay: rgba(40, 30, 20, 0.35);
  --shadow-md: 0 8px 32px rgba(60, 40, 20, 0.14);
  --shadow-sm: 0 2px 8px rgba(60, 40, 20, 0.08);
  --grad-bg: linear-gradient(150deg, #f2ece4 0%, #f7f3ed 60%, #f5f1eb 100%);
  --grad-panel: linear-gradient(180deg, #f0ece4 0%, #ece7df 100%);
  --sub-bg: rgba(0, 0, 0, 0.08);
}

[data-theme="olivia-dark"] {
  --bg-primary: #07060c;
  --bg-surface: #0f0d16;
  --bg-elevated: #1a1724;
  --bg-hover: #221e2e;
  --bg-active: #2c2838;
  --border: #332740;
  --border-subtle: #1e1828;
  --accent: #e84d8e;
  --accent-dim: #c03272;
  --accent-faint: rgba(232, 77, 142, 0.14);
  --accent-text: #ffffff;
  --text-primary: #f8f0f8;
  --text-secondary: #a888a8;
  --text-dim: #6c5678;
  --danger: #ff6060;
  --danger-dim: rgba(255, 96, 96, 0.15);
  --overlay: rgba(0, 0, 0, 0.6);
  --shadow-md: 0 8px 40px rgba(0, 0, 0, 0.90);
  --shadow-sm: 0 2px 12px rgba(0, 0, 0, 0.68);
  --grad-bg: linear-gradient(150deg, #040308 0%, #0b0912 60%, #07060c 100%);
  --grad-panel: linear-gradient(180deg, #11101c 0%, #0c0b14 100%);
  --sub-bg: rgba(255, 255, 255, 0.06);
}

[data-theme="olivia-white"] {
  --bg-primary: #fdf8fc;
  --bg-surface: #ffffff;
  --bg-elevated: #f4eaf5;
  --bg-hover: #f0e4f2;
  --bg-active: #e8d8ec;
  --border: #e0cce8;
  --border-subtle: #f0e8f4;
  --accent: #c8285c;
  --accent-dim: #a81e4c;
  --accent-faint: rgba(200, 40, 92, 0.09);
  --accent-text: #ffffff;
  --text-primary: #120810;
  --text-secondary: #6a4870;
  --text-dim: #c0a8c8;
  --danger: #c02828;
  --danger-dim: rgba(192, 40, 40, 0.12);
  --overlay: rgba(60, 20, 50, 0.3);
  --shadow-md: 0 8px 32px rgba(100, 30, 70, 0.12);
  --shadow-sm: 0 2px 10px rgba(100, 30, 70, 0.07);
  --grad-bg: linear-gradient(150deg, #faf4fb 0%, #fefbff 60%, #fdf8fc 100%);
  --grad-panel: linear-gradient(180deg, #faf4fb 0%, #f6eef8 100%);
  --sub-bg: rgba(0, 0, 0, 0.08);
}

[data-theme="marine-white"] {
  --bg-primary: #f0f6fc;
  --bg-surface: #ffffff;
  --bg-elevated: #e4eef8;
  --bg-hover: #d8e8f4;
  --bg-active: #ccdeed;
  --border: #b8d4ea;
  --border-subtle: #ddeaf6;
  --accent: #1868b0;
  --accent-dim: #0f5494;
  --accent-faint: rgba(24, 104, 176, 0.09);
  --accent-text: #ffffff;
  --text-primary: #0c1e38;
  --text-secondary: #4a6880;
  --text-dim: #8aaac4;
  --danger: #c03030;
  --danger-dim: rgba(192, 48, 48, 0.12);
  --overlay: rgba(10, 30, 60, 0.3);
  --shadow-md: 0 8px 32px rgba(8, 40, 80, 0.12);
  --shadow-sm: 0 2px 10px rgba(8, 40, 80, 0.06);
  --grad-bg: linear-gradient(150deg, #e8f2fb 0%, #f4f9fe 60%, #f0f6fc 100%);
  --grad-panel: linear-gradient(180deg, #edf4fb 0%, #e6eff8 100%);
  --sub-bg: rgba(0, 0, 0, 0.08);
}

[data-theme="marine-black"] {
  --bg-primary: #040c18;
  --bg-surface: #081422;
  --bg-elevated: #0e1e32;
  --bg-hover: #182840;
  --bg-active: #20324e;
  --border: #1e3452;
  --border-subtle: #121e38;
  --accent: #4da8f0;
  --accent-dim: #2c88d0;
  --accent-faint: rgba(77, 168, 240, 0.13);
  --accent-text: #041020;
  --text-primary: #ddeeff;
  --text-secondary: #7aa2c4;
  --text-dim: #486882;
  --danger: #e05858;
  --danger-dim: rgba(224, 88, 88, 0.15);
  --overlay: rgba(0, 8, 28, 0.6);
  --shadow-md: 0 8px 40px rgba(0, 8, 28, 0.90);
  --shadow-sm: 0 2px 12px rgba(0, 8, 28, 0.68);
  --grad-bg: linear-gradient(150deg, #020810 0%, #060e1c 60%, #040c18 100%);
  --grad-panel: linear-gradient(180deg, #0a1626 0%, #06101e 100%);
  --sub-bg: rgba(255, 255, 255, 0.06);
}

[data-theme="sakura"] {
  --bg-primary: #fdf3f5;
  --bg-surface: #fffafa;
  --bg-elevated: #f8e8ed;
  --bg-hover: #f2dee6;
  --bg-active: #ead2dc;
  --border: #e4c4d0;
  --border-subtle: #f0dde5;
  --accent: #c04878;
  --accent-dim: #a03860;
  --accent-faint: rgba(192, 72, 120, 0.09);
  --accent-text: #ffffff;
  --text-primary: #280e18;
  --text-secondary: #7a4c60;
  --text-dim: #c8a4b0;
  --danger: #b01e40;
  --danger-dim: rgba(176, 30, 64, 0.12);
  --overlay: rgba(80, 30, 50, 0.3);
  --shadow-md: 0 8px 32px rgba(120, 40, 64, 0.12);
  --shadow-sm: 0 2px 8px rgba(120, 40, 64, 0.07);
  --grad-bg: linear-gradient(150deg, #faecf0 0%, #fdf8fa 60%, #fdf3f5 100%);
  --grad-panel: linear-gradient(180deg, #faeff4 0%, #f6e8ee 100%);
  --sub-bg: rgba(0, 0, 0, 0.08);
}
