/* Warden — theme palettes.
 *
 * Each theme is a complete set of semantic CSS custom properties consumed by
 * the Tailwind semantic utilities (see tailwind-config.js) and by styles.css.
 * Values are SPACE-SEPARATED RGB CHANNELS so Tailwind opacity modifiers work:
 *   rgb(var(--theme-surface) / <alpha-value>)  →  bg-surface/60, etc.
 *
 * Adding a fourth theme is one registry entry (registry.json) + one block
 * below with the full variable set. No per-theme JS or markup is required.
 *
 * :root carries the Warden palette as the root fallback so an invalid or
 * missing data-theme attribute can never leave a variable undefined. The
 * accent (blue) family is intentionally identical across every theme — only
 * the neutral surfaces/text change between Warden, True Black and Graphite.
 */

:root,
[data-theme="warden"] {
  color-scheme: dark;

  --theme-page: 2 6 23;          /* slate-950 */
  --theme-surface: 15 23 42;     /* slate-900 */
  --theme-raised: 30 41 59;      /* slate-800 */
  --theme-line: 51 65 85;        /* slate-700 */
  --theme-faint: 92 107 132;     /* ≥3:1 on surface; slate-600 fails at 2.36 */
  --theme-muted: 100 116 139;    /* slate-500 */
  --theme-dim: 148 163 184;      /* slate-400 */
  --theme-soft: 203 213 225;     /* slate-300 */
  --theme-body: 226 232 240;     /* slate-200 */
  --theme-bright: 241 245 249;   /* slate-100 */

  --theme-accent: 59 130 246;        /* brand-500 */
  --theme-accent-strong: 37 99 235;  /* brand-600 */
  --theme-accent-light: 89 156 255;  /* brand-400 */
  --theme-accent-soft: 142 192 255;  /* brand-300 */
  --theme-accent-pale: 188 217 255;  /* brand-200 */
  --theme-accent-faint: 217 234 255; /* brand-100 */
  --theme-accent-deep: 30 58 138;    /* brand-900 */

  --theme-elevated: 23 29 41;         /* account menu surface */
  --theme-hover: 41 50 68;            /* menu item hover */
  --theme-scrollbar: 51 65 85;
  --theme-scrollbar-hover: 71 85 105;
  --theme-focus: 59 130 246;
  --theme-shadow: 0 0 0;
  --theme-console: 2 6 23;
}

[data-theme="true-black"] {
  color-scheme: dark;

  --theme-page: 0 0 0;
  --theme-surface: 10 10 10;
  --theme-raised: 22 22 22;
  --theme-line: 38 38 38;
  --theme-faint: 100 100 100;
  --theme-muted: 133 133 133;
  --theme-dim: 163 163 163;
  --theme-soft: 212 212 212;
  --theme-body: 229 229 229;
  --theme-bright: 250 250 250;

  --theme-accent: 59 130 246;
  --theme-accent-strong: 37 99 235;
  --theme-accent-light: 96 165 250;
  --theme-accent-soft: 147 197 253;
  --theme-accent-pale: 191 219 254;
  --theme-accent-faint: 219 234 254;
  --theme-accent-deep: 30 58 138;

  --theme-elevated: 28 28 28;
  --theme-hover: 38 38 38;
  --theme-scrollbar: 51 51 51;
  --theme-scrollbar-hover: 77 77 77;
  --theme-focus: 59 130 246;
  --theme-shadow: 0 0 0;
  --theme-console: 0 0 0;
}

[data-theme="graphite"] {
  color-scheme: dark;

  --theme-page: 26 26 26;
  --theme-surface: 33 33 33;
  --theme-raised: 43 43 43;
  --theme-line: 54 54 54;
  --theme-faint: 115 115 115;
  --theme-muted: 143 143 143;
  --theme-dim: 174 174 174;
  --theme-soft: 205 205 205;
  --theme-body: 222 222 222;
  --theme-bright: 244 244 244;

  --theme-accent: 59 130 246;
  --theme-accent-strong: 37 99 235;
  --theme-accent-light: 96 165 250;
  --theme-accent-soft: 147 197 253;
  --theme-accent-pale: 191 219 254;
  --theme-accent-faint: 219 234 254;
  --theme-accent-deep: 30 58 138;

  --theme-elevated: 40 40 40;
  --theme-hover: 51 51 51;
  --theme-scrollbar: 62 62 62;
  --theme-scrollbar-hover: 82 82 82;
  --theme-focus: 59 130 246;
  --theme-shadow: 0 0 0;
  --theme-console: 22 22 22;
}
