/* Predefined colour themes. Each theme overrides the surface + accent tokens
   for both light and dark; the light/dark toggle still chooses which half.
   The default 'amber' theme lives in base.css and needs nothing here.

   Dark tokens are written twice on purpose (same pattern as base.css): once
   under the OS dark-mode media query, once for an explicit data-theme="dark". */

/* ============================ Slate ============================ */
:root[data-palette='slate'] {
  --paper: #F7F8FA;
  --ink: #191C21;
  --muted: #656C77;
  --line: #E1E4E9;
  --accent: #3B6EA5;
  --accent-strong: #2B527C;
  --accent-soft: #E5EDF6;
  --on-accent: #FFFFFF;
  --sk-base: #E6E9EE;
  --sk-shine: #F1F3F6;
}
:root[data-palette='slate'][data-theme='dark'] {
  --paper: #12151A;
  --ink: #E7EAEF;
  --muted: #8A929E;
  --line: #262B33;
  --accent: #6098D0;
  --accent-strong: #86B4E0;
  --accent-soft: #1B2733;
  --on-accent: #0A0E13;
  --sk-base: #1D222A;
  --sk-shine: #262C35;
}
@media (prefers-color-scheme: dark) {
  :root[data-palette='slate']:not([data-theme='light']) {
    --paper: #12151A;
    --ink: #E7EAEF;
    --muted: #8A929E;
    --line: #262B33;
    --accent: #6098D0;
    --accent-strong: #86B4E0;
    --accent-soft: #1B2733;
    --on-accent: #0A0E13;
    --sk-base: #1D222A;
    --sk-shine: #262C35;
  }
}

/* ============================ Forest =========================== */
:root[data-palette='forest'] {
  --paper: #F8FAF6;
  --ink: #1A1E18;
  --muted: #646B5F;
  --line: #E3E8DD;
  --accent: #3F7D3B;
  --accent-strong: #2C5A2A;
  --accent-soft: #E6F1E2;
  --on-accent: #FFFFFF;
  --sk-base: #E7ECE2;
  --sk-shine: #F1F5EC;
}
:root[data-palette='forest'][data-theme='dark'] {
  --paper: #12160F;
  --ink: #E8ECE3;
  --muted: #8A9382;
  --line: #262C22;
  --accent: #63AB5D;
  --accent-strong: #88C583;
  --accent-soft: #1B2717;
  --on-accent: #08120A;
  --sk-base: #1D231A;
  --sk-shine: #262D22;
}
@media (prefers-color-scheme: dark) {
  :root[data-palette='forest']:not([data-theme='light']) {
    --paper: #12160F;
    --ink: #E8ECE3;
    --muted: #8A9382;
    --line: #262C22;
    --accent: #63AB5D;
    --accent-strong: #88C583;
    --accent-soft: #1B2717;
    --on-accent: #08120A;
    --sk-base: #1D231A;
    --sk-shine: #262D22;
  }
}

/* ============================= Plum ============================ */
:root[data-palette='plum'] {
  --paper: #FAF7FA;
  --ink: #1E1A1F;
  --muted: #6C6470;
  --line: #E9E2EA;
  --accent: #8046A5;
  --accent-strong: #5F3080;
  --accent-soft: #F0E6F5;
  --on-accent: #FFFFFF;
  --sk-base: #ECE5EE;
  --sk-shine: #F5EFF6;
}
:root[data-palette='plum'][data-theme='dark'] {
  --paper: #16121A;
  --ink: #ECE7EF;
  --muted: #948B9C;
  --line: #2B2531;
  --accent: #AC74CB;
  --accent-strong: #C497DD;
  --accent-soft: #261B2C;
  --on-accent: #100A14;
  --sk-base: #221B27;
  --sk-shine: #2C2432;
}
@media (prefers-color-scheme: dark) {
  :root[data-palette='plum']:not([data-theme='light']) {
    --paper: #16121A;
    --ink: #ECE7EF;
    --muted: #948B9C;
    --line: #2B2531;
    --accent: #AC74CB;
    --accent-strong: #C497DD;
    --accent-soft: #261B2C;
    --on-accent: #100A14;
    --sk-base: #221B27;
    --sk-shine: #2C2432;
  }
}

/* ============================ Ocean =========================== */
:root[data-palette='ocean'] {
  --paper: #F5F9FA;
  --ink: #171E20;
  --muted: #5F6C6F;
  --line: #DDE7E9;
  --accent: #0E7C86;
  --accent-strong: #06585F;
  --accent-soft: #DDF0F1;
  --on-accent: #FFFFFF;
  --sk-base: #E2ECEE;
  --sk-shine: #EEF4F5;
}
:root[data-palette='ocean'][data-theme='dark'] {
  --paper: #0F1618;
  --ink: #E4EDEE;
  --muted: #849396;
  --line: #232E30;
  --accent: #33A9B3;
  --accent-strong: #62C6CE;
  --accent-soft: #11262A;
  --on-accent: #03100F;
  --sk-base: #192426;
  --sk-shine: #222E30;
}
@media (prefers-color-scheme: dark) {
  :root[data-palette='ocean']:not([data-theme='light']) {
    --paper: #0F1618;
    --ink: #E4EDEE;
    --muted: #849396;
    --line: #232E30;
    --accent: #33A9B3;
    --accent-strong: #62C6CE;
    --accent-soft: #11262A;
    --on-accent: #03100F;
    --sk-base: #192426;
    --sk-shine: #222E30;
  }
}

/* =========================== Graphite ========================= */
:root[data-palette='graphite'] {
  --paper: #F7F7F6;
  --ink: #17181A;
  --muted: #666869;
  --line: #E4E4E2;
  --accent: #3A3D42;
  --accent-strong: #17181A;
  --accent-soft: #E7E7E6;
  --on-accent: #FFFFFF;
  --sk-base: #E9E9E7;
  --sk-shine: #F2F2F1;
}
:root[data-palette='graphite'][data-theme='dark'] {
  --paper: #131315;
  --ink: #E9E9E7;
  --muted: #8A8B8D;
  --line: #29292C;
  --accent: #B9BCC0;
  --accent-strong: #D6D8DB;
  --accent-soft: #232326;
  --on-accent: #0A0A0B;
  --sk-base: #1F1F22;
  --sk-shine: #29292C;
}
@media (prefers-color-scheme: dark) {
  :root[data-palette='graphite']:not([data-theme='light']) {
    --paper: #131315;
    --ink: #E9E9E7;
    --muted: #8A8B8D;
    --line: #29292C;
    --accent: #B9BCC0;
    --accent-strong: #D6D8DB;
    --accent-soft: #232326;
    --on-accent: #0A0A0B;
    --sk-base: #1F1F22;
    --sk-shine: #29292C;
  }
}

/* ============================= OLED ============================ */
/* Maximum contrast: pure white in light mode, true black in dark mode
   (no backlight glow on OLED panels), and fully saturated semantic colours. */
:root[data-palette='oled'] {
  --paper: #FFFFFF;
  --ink: #000000;
  --muted: #5A5A5A;
  --line: #D8D8D8;
  --accent: #0A6CFF;
  --accent-strong: #0A50C0;
  --accent-soft: #E6EFFF;
  --on-accent: #FFFFFF;
  --sk-base: #ECECEC;
  --sk-shine: #F7F7F7;
  --positive: #00FF00;
  --negative: #FF0000;
  --upcoming-in: #0000FF;
  --upcoming-out: #FF7F00;
  --danger: #FF0000;
}
:root[data-palette='oled'][data-theme='dark'] {
  --paper: #000000;
  --ink: #F2F2F2;
  --muted: #8A8A8A;
  --line: #1E1E1E;
  --accent: #4C9DFF;
  --accent-strong: #82BBFF;
  --accent-soft: #0B1524;
  --on-accent: #001225;
  --sk-base: #121212;
  --sk-shine: #1E1E1E;
  --positive: #00FF00;
  --negative: #FF0000;
  --upcoming-in: #0000FF;
  --upcoming-out: #FF7F00;
  --danger: #FF0000;
}
@media (prefers-color-scheme: dark) {
  :root[data-palette='oled']:not([data-theme='light']) {
    --paper: #000000;
    --ink: #F2F2F2;
    --muted: #8A8A8A;
    --line: #1E1E1E;
    --accent: #4C9DFF;
    --accent-strong: #82BBFF;
    --accent-soft: #0B1524;
    --on-accent: #001225;
    --sk-base: #121212;
    --sk-shine: #1E1E1E;
    --positive: #00FF00;
    --negative: #FF0000;
    --upcoming-in: #0000FF;
    --upcoming-out: #FF7F00;
    --danger: #FF0000;
  }
}
