[data-theme="bristol"] {
/* Entity tab colours on light grounds (strong / soft / ink). */
  --tab-1: oklch(0.56 0.13 255); --tab-1-soft: oklch(0.955 0.03 255); --tab-1-ink: oklch(0.40 0.12 255);
  --tab-2: oklch(0.56 0.13 195); --tab-2-soft: oklch(0.955 0.03 195); --tab-2-ink: oklch(0.40 0.12 195);
  --tab-3: oklch(0.56 0.13 150); --tab-3-soft: oklch(0.955 0.03 150); --tab-3-ink: oklch(0.40 0.12 150);
  --tab-4: oklch(0.56 0.13 95); --tab-4-soft: oklch(0.955 0.03 95); --tab-4-ink: oklch(0.40 0.12 95);
  --tab-5: oklch(0.56 0.13 60); --tab-5-soft: oklch(0.955 0.03 60); --tab-5-ink: oklch(0.40 0.12 60);
  --tab-6: oklch(0.56 0.13 25); --tab-6-soft: oklch(0.955 0.03 25); --tab-6-ink: oklch(0.40 0.12 25);
  --tab-7: oklch(0.56 0.13 350); --tab-7-soft: oklch(0.955 0.03 350); --tab-7-ink: oklch(0.40 0.12 350);
  --tab-8: oklch(0.56 0.13 300); --tab-8-soft: oklch(0.955 0.03 300); --tab-8-ink: oklch(0.40 0.12 300);
/* Bristol: white cards on a pale grey ground, one clear blue; neutral
   greys with a hint of blue (contrasts WCAG AA: text 16:1, muted text
   5.5:1 on the rail, links 5.1:1, white on the accent 4.9:1, input edges
   3.4:1). */
  color-scheme: light;
  --ground: oklch(0.973 0.002 265);
  --surface: oklch(1 0 0);
  --surface-2: oklch(0.982 0.002 265);
  --text: oklch(0.22 0.006 265);
  --text-muted: oklch(0.49 0.01 265);
  --border: oklch(0.915 0.004 265);
  --border-strong: oklch(0.64 0.008 265);
  --accent: oklch(0.555 0.19 257);
  --accent-hover: oklch(0.5 0.18 257);
  --on-accent: oklch(1 0 0);
  --accent-text: oklch(0.525 0.18 257);
  --accent-soft: oklch(0.95 0.025 257);
  --focus: oklch(0.555 0.19 257);
  --selection: oklch(0.9 0.05 257);
  --danger: oklch(0.53 0.2 27);
  --danger-soft: oklch(0.965 0.025 27);
  --success: oklch(0.5 0.12 150);
  --success-soft: oklch(0.965 0.03 150);
  --shadow: oklch(0.25 0.02 265 / 0.08);
  --rail-bg: oklch(0.955 0.003 265);
  --rail-text: var(--text);
  --rail-muted: var(--text-muted);
  --rail-hover: oklch(0.925 0.004 265);
  --rail-active-bg: var(--surface);
  --rail-active-text: var(--accent-text);
  --rail-border: oklch(0.905 0.004 265);
}
[data-theme="sauge"] {
/* Entity tab colours on light grounds (strong / soft / ink). */
  --tab-1: oklch(0.56 0.13 255); --tab-1-soft: oklch(0.955 0.03 255); --tab-1-ink: oklch(0.40 0.12 255);
  --tab-2: oklch(0.56 0.13 195); --tab-2-soft: oklch(0.955 0.03 195); --tab-2-ink: oklch(0.40 0.12 195);
  --tab-3: oklch(0.56 0.13 150); --tab-3-soft: oklch(0.955 0.03 150); --tab-3-ink: oklch(0.40 0.12 150);
  --tab-4: oklch(0.56 0.13 95); --tab-4-soft: oklch(0.955 0.03 95); --tab-4-ink: oklch(0.40 0.12 95);
  --tab-5: oklch(0.56 0.13 60); --tab-5-soft: oklch(0.955 0.03 60); --tab-5-ink: oklch(0.40 0.12 60);
  --tab-6: oklch(0.56 0.13 25); --tab-6-soft: oklch(0.955 0.03 25); --tab-6-ink: oklch(0.40 0.12 25);
  --tab-7: oklch(0.56 0.13 350); --tab-7-soft: oklch(0.955 0.03 350); --tab-7-ink: oklch(0.40 0.12 350);
  --tab-8: oklch(0.56 0.13 300); --tab-8-soft: oklch(0.955 0.03 300); --tab-8-ink: oklch(0.40 0.12 300);
/* Sauge: sage green, calm. */
  color-scheme: light;
  --ground: oklch(0.962 0.007 150);
  --surface: oklch(0.997 0.002 150);
  --surface-2: oklch(0.975 0.007 150);
  --text: oklch(0.24 0.02 150);
  --text-muted: oklch(0.46 0.02 150);
  --border: oklch(0.89 0.01 150);
  --border-strong: oklch(0.62 0.015 150);
  --accent: oklch(0.48 0.09 158);
  --accent-hover: oklch(0.42 0.09 158);
  --on-accent: oklch(0.99 0 0);
  --accent-text: oklch(0.44 0.09 158);
  --accent-soft: oklch(0.945 0.03 155);
  --focus: oklch(0.44 0.09 158);
  --selection: oklch(0.945 0.03 155);
  --danger: oklch(0.51 0.18 27);
  --danger-soft: oklch(0.955 0.03 27);
  --success: oklch(0.47 0.11 150);
  --success-soft: oklch(0.955 0.035 150);
  --shadow: oklch(0.3 0.03 150 / 0.09);
  --rail-bg: var(--surface);
  --rail-text: var(--text);
  --rail-muted: var(--text-muted);
  --rail-hover: var(--surface-2);
  --rail-active-bg: var(--accent-soft);
  --rail-active-text: oklch(0.36 0.08 158);
  --rail-border: var(--border);
}
[data-theme="ardoise"] {
/* Entity tab colours on light grounds (strong / soft / ink). */
  --tab-1: oklch(0.56 0.13 255); --tab-1-soft: oklch(0.955 0.03 255); --tab-1-ink: oklch(0.40 0.12 255);
  --tab-2: oklch(0.56 0.13 195); --tab-2-soft: oklch(0.955 0.03 195); --tab-2-ink: oklch(0.40 0.12 195);
  --tab-3: oklch(0.56 0.13 150); --tab-3-soft: oklch(0.955 0.03 150); --tab-3-ink: oklch(0.40 0.12 150);
  --tab-4: oklch(0.56 0.13 95); --tab-4-soft: oklch(0.955 0.03 95); --tab-4-ink: oklch(0.40 0.12 95);
  --tab-5: oklch(0.56 0.13 60); --tab-5-soft: oklch(0.955 0.03 60); --tab-5-ink: oklch(0.40 0.12 60);
  --tab-6: oklch(0.56 0.13 25); --tab-6-soft: oklch(0.955 0.03 25); --tab-6-ink: oklch(0.40 0.12 25);
  --tab-7: oklch(0.56 0.13 350); --tab-7-soft: oklch(0.955 0.03 350); --tab-7-ink: oklch(0.40 0.12 350);
  --tab-8: oklch(0.56 0.13 300); --tab-8-soft: oklch(0.955 0.03 300); --tab-8-ink: oklch(0.40 0.12 300);
/* Ardoise: slate, almost colourless. */
  color-scheme: light;
  --ground: oklch(0.962 0.003 250);
  --surface: oklch(0.997 0.002 250);
  --surface-2: oklch(0.975 0.003 250);
  --text: oklch(0.24 0.02 250);
  --text-muted: oklch(0.46 0.02 250);
  --border: oklch(0.89 0.01 250);
  --border-strong: oklch(0.62 0.015 250);
  --accent: oklch(0.36 0.03 255);
  --accent-hover: oklch(0.30 0.03 255);
  --on-accent: oklch(0.99 0 0);
  --accent-text: oklch(0.38 0.04 255);
  --accent-soft: oklch(0.93 0.008 255);
  --focus: oklch(0.38 0.04 255);
  --selection: oklch(0.93 0.008 255);
  --danger: oklch(0.51 0.18 27);
  --danger-soft: oklch(0.955 0.03 27);
  --success: oklch(0.47 0.11 150);
  --success-soft: oklch(0.955 0.035 150);
  --shadow: oklch(0.3 0.03 250 / 0.09);
  --rail-bg: var(--surface);
  --rail-text: var(--text);
  --rail-muted: var(--text-muted);
  --rail-hover: var(--surface-2);
  --rail-active-bg: var(--accent-soft);
  --rail-active-text: oklch(0.28 0.03 255);
  --rail-border: var(--border);
}
[data-theme="nuit"] {
/* Entity tab colours on dark grounds (strong / soft / ink). */
  --tab-1: oklch(0.72 0.12 255); --tab-1-soft: oklch(0.31 0.05 255); --tab-1-ink: oklch(0.87 0.08 255);
  --tab-2: oklch(0.72 0.12 195); --tab-2-soft: oklch(0.31 0.05 195); --tab-2-ink: oklch(0.87 0.08 195);
  --tab-3: oklch(0.72 0.12 150); --tab-3-soft: oklch(0.31 0.05 150); --tab-3-ink: oklch(0.87 0.08 150);
  --tab-4: oklch(0.72 0.12 95); --tab-4-soft: oklch(0.31 0.05 95); --tab-4-ink: oklch(0.87 0.08 95);
  --tab-5: oklch(0.72 0.12 60); --tab-5-soft: oklch(0.31 0.05 60); --tab-5-ink: oklch(0.87 0.08 60);
  --tab-6: oklch(0.72 0.12 25); --tab-6-soft: oklch(0.31 0.05 25); --tab-6-ink: oklch(0.87 0.08 25);
  --tab-7: oklch(0.72 0.12 350); --tab-7-soft: oklch(0.31 0.05 350); --tab-7-ink: oklch(0.87 0.08 350);
  --tab-8: oklch(0.72 0.12 300); --tab-8-soft: oklch(0.31 0.05 300); --tab-8-ink: oklch(0.87 0.08 300);
/* Nuit: deep blue-grey night. */
  color-scheme: dark;
  --ground: oklch(0.19 0.016 255);
  --surface: oklch(0.235 0.016 255);
  --surface-2: oklch(0.21 0.016 255);
  --text: oklch(0.94 0.008 255);
  --text-muted: oklch(0.75 0.015 255);
  --border: oklch(0.34 0.016 255);
  --border-strong: oklch(0.55 0.016 255);
  --accent: oklch(0.74 0.11 250);
  --accent-hover: oklch(0.80 0.10 250);
  --on-accent: oklch(0.17 0.02 255);
  --accent-text: oklch(0.79 0.10 250);
  --accent-soft: oklch(0.33 0.05 255);
  --focus: oklch(0.79 0.10 250);
  --selection: oklch(0.33 0.05 255);
  --danger: oklch(0.72 0.15 25);
  --danger-soft: oklch(0.31 0.06 25);
  --success: oklch(0.77 0.12 150);
  --success-soft: oklch(0.30 0.05 150);
  --shadow: oklch(0 0 0 / 0.35);
  --rail-bg: oklch(0.215 0.016 255);
  --rail-text: var(--text);
  --rail-muted: var(--text-muted);
  --rail-hover: oklch(0.27 0.016 255);
  --rail-active-bg: var(--accent-soft);
  --rail-active-text: oklch(0.92 0.05 255);
  --rail-border: var(--border);
}
[data-theme="graphite"] {
/* Entity tab colours on dark grounds (strong / soft / ink). */
  --tab-1: oklch(0.72 0.12 255); --tab-1-soft: oklch(0.31 0.05 255); --tab-1-ink: oklch(0.87 0.08 255);
  --tab-2: oklch(0.72 0.12 195); --tab-2-soft: oklch(0.31 0.05 195); --tab-2-ink: oklch(0.87 0.08 195);
  --tab-3: oklch(0.72 0.12 150); --tab-3-soft: oklch(0.31 0.05 150); --tab-3-ink: oklch(0.87 0.08 150);
  --tab-4: oklch(0.72 0.12 95); --tab-4-soft: oklch(0.31 0.05 95); --tab-4-ink: oklch(0.87 0.08 95);
  --tab-5: oklch(0.72 0.12 60); --tab-5-soft: oklch(0.31 0.05 60); --tab-5-ink: oklch(0.87 0.08 60);
  --tab-6: oklch(0.72 0.12 25); --tab-6-soft: oklch(0.31 0.05 25); --tab-6-ink: oklch(0.87 0.08 25);
  --tab-7: oklch(0.72 0.12 350); --tab-7-soft: oklch(0.31 0.05 350); --tab-7-ink: oklch(0.87 0.08 350);
  --tab-8: oklch(0.72 0.12 300); --tab-8-soft: oklch(0.31 0.05 300); --tab-8-ink: oklch(0.87 0.08 300);
/* Graphite: neutral dark with an amber accent. */
  color-scheme: dark;
  --ground: oklch(0.19 0.005 70);
  --surface: oklch(0.235 0.005 70);
  --surface-2: oklch(0.21 0.005 70);
  --text: oklch(0.94 0.008 70);
  --text-muted: oklch(0.75 0.015 70);
  --border: oklch(0.34 0.005 70);
  --border-strong: oklch(0.55 0.005 70);
  --accent: oklch(0.80 0.13 75);
  --accent-hover: oklch(0.85 0.12 78);
  --on-accent: oklch(0.17 0.02 70);
  --accent-text: oklch(0.83 0.12 78);
  --accent-soft: oklch(0.33 0.04 75);
  --focus: oklch(0.83 0.12 78);
  --selection: oklch(0.33 0.04 75);
  --danger: oklch(0.72 0.15 25);
  --danger-soft: oklch(0.31 0.06 25);
  --success: oklch(0.77 0.12 150);
  --success-soft: oklch(0.30 0.05 150);
  --shadow: oklch(0 0 0 / 0.35);
  --rail-bg: oklch(0.215 0.005 70);
  --rail-text: var(--text);
  --rail-muted: var(--text-muted);
  --rail-hover: oklch(0.27 0.005 70);
  --rail-active-bg: var(--accent-soft);
  --rail-active-text: oklch(0.92 0.05 70);
  --rail-border: var(--border);
}
[data-theme="encre"] {
/* Entity tab colours on light grounds (strong / soft / ink). */
  --tab-1: oklch(0.56 0.13 255); --tab-1-soft: oklch(0.955 0.03 255); --tab-1-ink: oklch(0.40 0.12 255);
  --tab-2: oklch(0.56 0.13 195); --tab-2-soft: oklch(0.955 0.03 195); --tab-2-ink: oklch(0.40 0.12 195);
  --tab-3: oklch(0.56 0.13 150); --tab-3-soft: oklch(0.955 0.03 150); --tab-3-ink: oklch(0.40 0.12 150);
  --tab-4: oklch(0.56 0.13 95); --tab-4-soft: oklch(0.955 0.03 95); --tab-4-ink: oklch(0.40 0.12 95);
  --tab-5: oklch(0.56 0.13 60); --tab-5-soft: oklch(0.955 0.03 60); --tab-5-ink: oklch(0.40 0.12 60);
  --tab-6: oklch(0.56 0.13 25); --tab-6-soft: oklch(0.955 0.03 25); --tab-6-ink: oklch(0.40 0.12 25);
  --tab-7: oklch(0.56 0.13 350); --tab-7-soft: oklch(0.955 0.03 350); --tab-7-ink: oklch(0.40 0.12 350);
  --tab-8: oklch(0.56 0.13 300); --tab-8-soft: oklch(0.955 0.03 300); --tab-8-ink: oklch(0.40 0.12 300);
/* Encre: the rail drenched in ink blue. */
  color-scheme: light;
  --ground: oklch(0.962 0.012 262);
  --surface: oklch(0.997 0.002 262);
  --surface-2: oklch(0.975 0.012 262);
  --text: oklch(0.24 0.02 262);
  --text-muted: oklch(0.46 0.02 262);
  --border: oklch(0.89 0.01 262);
  --border-strong: oklch(0.62 0.015 262);
  --accent: oklch(0.45 0.15 262);
  --accent-hover: oklch(0.39 0.15 262);
  --on-accent: oklch(0.99 0 0);
  --accent-text: oklch(0.44 0.15 262);
  --accent-soft: oklch(0.94 0.035 262);
  --focus: oklch(0.44 0.15 262);
  --selection: oklch(0.94 0.035 262);
  --danger: oklch(0.51 0.18 27);
  --danger-soft: oklch(0.955 0.03 27);
  --success: oklch(0.47 0.11 150);
  --success-soft: oklch(0.955 0.035 150);
  --shadow: oklch(0.3 0.03 262 / 0.09);
  --rail-bg: oklch(0.33 0.11 262);
  --rail-text: oklch(0.98 0.008 262);
  --rail-muted: oklch(0.86 0.035 262);
  --rail-hover: oklch(0.39 0.11 262);
  --rail-active-bg: oklch(0.98 0.008 262);
  --rail-active-text: oklch(0.33 0.11 262);
  --rail-border: oklch(0.43 0.11 262);
}
[data-theme="foret"] {
/* Entity tab colours on light grounds (strong / soft / ink). */
  --tab-1: oklch(0.56 0.13 255); --tab-1-soft: oklch(0.955 0.03 255); --tab-1-ink: oklch(0.40 0.12 255);
  --tab-2: oklch(0.56 0.13 195); --tab-2-soft: oklch(0.955 0.03 195); --tab-2-ink: oklch(0.40 0.12 195);
  --tab-3: oklch(0.56 0.13 150); --tab-3-soft: oklch(0.955 0.03 150); --tab-3-ink: oklch(0.40 0.12 150);
  --tab-4: oklch(0.56 0.13 95); --tab-4-soft: oklch(0.955 0.03 95); --tab-4-ink: oklch(0.40 0.12 95);
  --tab-5: oklch(0.56 0.13 60); --tab-5-soft: oklch(0.955 0.03 60); --tab-5-ink: oklch(0.40 0.12 60);
  --tab-6: oklch(0.56 0.13 25); --tab-6-soft: oklch(0.955 0.03 25); --tab-6-ink: oklch(0.40 0.12 25);
  --tab-7: oklch(0.56 0.13 350); --tab-7-soft: oklch(0.955 0.03 350); --tab-7-ink: oklch(0.40 0.12 350);
  --tab-8: oklch(0.56 0.13 300); --tab-8-soft: oklch(0.955 0.03 300); --tab-8-ink: oklch(0.40 0.12 300);
/* Forêt: the rail in deep forest green. */
  color-scheme: light;
  --ground: oklch(0.962 0.01 158);
  --surface: oklch(0.997 0.002 158);
  --surface-2: oklch(0.975 0.01 158);
  --text: oklch(0.24 0.02 158);
  --text-muted: oklch(0.46 0.02 158);
  --border: oklch(0.89 0.01 158);
  --border-strong: oklch(0.62 0.015 158);
  --accent: oklch(0.46 0.10 158);
  --accent-hover: oklch(0.40 0.10 158);
  --on-accent: oklch(0.99 0 0);
  --accent-text: oklch(0.43 0.10 158);
  --accent-soft: oklch(0.945 0.035 155);
  --focus: oklch(0.43 0.10 158);
  --selection: oklch(0.945 0.035 155);
  --danger: oklch(0.51 0.18 27);
  --danger-soft: oklch(0.955 0.03 27);
  --success: oklch(0.47 0.11 150);
  --success-soft: oklch(0.955 0.035 150);
  --shadow: oklch(0.3 0.03 158 / 0.09);
  --rail-bg: oklch(0.34 0.07 160);
  --rail-text: oklch(0.98 0.008 160);
  --rail-muted: oklch(0.86 0.035 160);
  --rail-hover: oklch(0.4 0.07 160);
  --rail-active-bg: oklch(0.98 0.008 160);
  --rail-active-text: oklch(0.34 0.07 160);
  --rail-border: oklch(0.44 0.07 160);
}
[data-theme="prune"] {
/* Entity tab colours on light grounds (strong / soft / ink). */
  --tab-1: oklch(0.56 0.13 255); --tab-1-soft: oklch(0.955 0.03 255); --tab-1-ink: oklch(0.40 0.12 255);
  --tab-2: oklch(0.56 0.13 195); --tab-2-soft: oklch(0.955 0.03 195); --tab-2-ink: oklch(0.40 0.12 195);
  --tab-3: oklch(0.56 0.13 150); --tab-3-soft: oklch(0.955 0.03 150); --tab-3-ink: oklch(0.40 0.12 150);
  --tab-4: oklch(0.56 0.13 95); --tab-4-soft: oklch(0.955 0.03 95); --tab-4-ink: oklch(0.40 0.12 95);
  --tab-5: oklch(0.56 0.13 60); --tab-5-soft: oklch(0.955 0.03 60); --tab-5-ink: oklch(0.40 0.12 60);
  --tab-6: oklch(0.56 0.13 25); --tab-6-soft: oklch(0.955 0.03 25); --tab-6-ink: oklch(0.40 0.12 25);
  --tab-7: oklch(0.56 0.13 350); --tab-7-soft: oklch(0.955 0.03 350); --tab-7-ink: oklch(0.40 0.12 350);
  --tab-8: oklch(0.56 0.13 300); --tab-8-soft: oklch(0.955 0.03 300); --tab-8-ink: oklch(0.40 0.12 300);
/* Prune: the rail in plum. */
  color-scheme: light;
  --ground: oklch(0.962 0.01 340);
  --surface: oklch(0.997 0.002 340);
  --surface-2: oklch(0.975 0.01 340);
  --text: oklch(0.24 0.02 340);
  --text-muted: oklch(0.46 0.02 340);
  --border: oklch(0.89 0.01 340);
  --border-strong: oklch(0.62 0.015 340);
  --accent: oklch(0.47 0.14 340);
  --accent-hover: oklch(0.41 0.14 340);
  --on-accent: oklch(0.99 0 0);
  --accent-text: oklch(0.45 0.14 340);
  --accent-soft: oklch(0.95 0.03 340);
  --focus: oklch(0.45 0.14 340);
  --selection: oklch(0.95 0.03 340);
  --danger: oklch(0.51 0.18 27);
  --danger-soft: oklch(0.955 0.03 27);
  --success: oklch(0.47 0.11 150);
  --success-soft: oklch(0.955 0.035 150);
  --shadow: oklch(0.3 0.03 340 / 0.09);
  --rail-bg: oklch(0.33 0.09 335);
  --rail-text: oklch(0.98 0.008 335);
  --rail-muted: oklch(0.86 0.035 335);
  --rail-hover: oklch(0.39 0.09 335);
  --rail-active-bg: oklch(0.98 0.008 335);
  --rail-active-text: oklch(0.33 0.09 335);
  --rail-border: oklch(0.43 0.09 335);
}
[data-theme="vivid"] {
/* Entity tab colours on light grounds (strong / soft / ink). */
  --tab-1: oklch(0.56 0.13 255); --tab-1-soft: oklch(0.955 0.03 255); --tab-1-ink: oklch(0.40 0.12 255);
  --tab-2: oklch(0.56 0.13 195); --tab-2-soft: oklch(0.955 0.03 195); --tab-2-ink: oklch(0.40 0.12 195);
  --tab-3: oklch(0.56 0.13 150); --tab-3-soft: oklch(0.955 0.03 150); --tab-3-ink: oklch(0.40 0.12 150);
  --tab-4: oklch(0.56 0.13 95); --tab-4-soft: oklch(0.955 0.03 95); --tab-4-ink: oklch(0.40 0.12 95);
  --tab-5: oklch(0.56 0.13 60); --tab-5-soft: oklch(0.955 0.03 60); --tab-5-ink: oklch(0.40 0.12 60);
  --tab-6: oklch(0.56 0.13 25); --tab-6-soft: oklch(0.955 0.03 25); --tab-6-ink: oklch(0.40 0.12 25);
  --tab-7: oklch(0.56 0.13 350); --tab-7-soft: oklch(0.955 0.03 350); --tab-7-ink: oklch(0.40 0.12 350);
  --tab-8: oklch(0.56 0.13 300); --tab-8-soft: oklch(0.955 0.03 300); --tab-8-ink: oklch(0.40 0.12 300);
/* Vivid: a soft gradient ground, frosted panels, shadows tinted by the
   accent, a deeper indigo. Contrasts WCAG AA: text 15:1, muted text
   5.2:1, links 5.3:1, white on the accent 5.6:1. The ground is a
   gradient: `--surface-glass` and `--glass-blur` make panels translucent
   over it (see app.css). */
  color-scheme: light;
  --ground-a: oklch(0.975 0.02 300);
  --ground-b: oklch(0.97 0.025 230);
  --ground-c: oklch(0.975 0.02 160);
  --ground: linear-gradient(135deg, var(--ground-a) 0%, var(--ground-b) 45%, var(--ground-c) 100%) fixed;
  --ground-color: var(--ground-b);
  --surface: oklch(1 0 0);
  --surface-glass: oklch(1 0 0 / 0.68);
  --glass-blur: 16px;
  --surface-2: oklch(0.975 0.01 270);
  --text: oklch(0.23 0.02 280);
  --text-muted: oklch(0.5 0.03 280);
  --border: oklch(0.9 0.015 270);
  --border-strong: oklch(0.62 0.03 270);
  --accent: oklch(0.5 0.22 285);
  --accent-hover: oklch(0.44 0.22 285);
  --on-accent: oklch(1 0 0);
  --accent-text: oklch(0.47 0.2 285);
  --accent-soft: oklch(0.94 0.04 285);
  --focus: oklch(0.5 0.22 285);
  --selection: oklch(0.9 0.06 285);
  --danger: oklch(0.53 0.2 27);
  --danger-soft: oklch(0.965 0.025 27);
  --success: oklch(0.5 0.13 150);
  --success-soft: oklch(0.965 0.03 150);
  --shadow: oklch(0.35 0.1 285 / 0.1);
  --rail-bg: oklch(1 0 0 / 0.55);
  --rail-text: var(--text);
  --rail-muted: var(--text-muted);
  --rail-hover: oklch(1 0 0 / 0.7);
  --rail-active-bg: var(--surface);
  --rail-active-text: var(--accent-text);
  --rail-border: oklch(1 0 0 / 0.6);
  --radius-sm: 9px;
  --radius: 13px;
  --radius-lg: 20px;
}
@media (prefers-color-scheme: dark) {
[data-theme-dark="nuit"] {
/* Entity tab colours on dark grounds (strong / soft / ink). */
  --tab-1: oklch(0.72 0.12 255); --tab-1-soft: oklch(0.31 0.05 255); --tab-1-ink: oklch(0.87 0.08 255);
  --tab-2: oklch(0.72 0.12 195); --tab-2-soft: oklch(0.31 0.05 195); --tab-2-ink: oklch(0.87 0.08 195);
  --tab-3: oklch(0.72 0.12 150); --tab-3-soft: oklch(0.31 0.05 150); --tab-3-ink: oklch(0.87 0.08 150);
  --tab-4: oklch(0.72 0.12 95); --tab-4-soft: oklch(0.31 0.05 95); --tab-4-ink: oklch(0.87 0.08 95);
  --tab-5: oklch(0.72 0.12 60); --tab-5-soft: oklch(0.31 0.05 60); --tab-5-ink: oklch(0.87 0.08 60);
  --tab-6: oklch(0.72 0.12 25); --tab-6-soft: oklch(0.31 0.05 25); --tab-6-ink: oklch(0.87 0.08 25);
  --tab-7: oklch(0.72 0.12 350); --tab-7-soft: oklch(0.31 0.05 350); --tab-7-ink: oklch(0.87 0.08 350);
  --tab-8: oklch(0.72 0.12 300); --tab-8-soft: oklch(0.31 0.05 300); --tab-8-ink: oklch(0.87 0.08 300);
/* Nuit: deep blue-grey night. */
  color-scheme: dark;
  --ground: oklch(0.19 0.016 255);
  --surface: oklch(0.235 0.016 255);
  --surface-2: oklch(0.21 0.016 255);
  --text: oklch(0.94 0.008 255);
  --text-muted: oklch(0.75 0.015 255);
  --border: oklch(0.34 0.016 255);
  --border-strong: oklch(0.55 0.016 255);
  --accent: oklch(0.74 0.11 250);
  --accent-hover: oklch(0.80 0.10 250);
  --on-accent: oklch(0.17 0.02 255);
  --accent-text: oklch(0.79 0.10 250);
  --accent-soft: oklch(0.33 0.05 255);
  --focus: oklch(0.79 0.10 250);
  --selection: oklch(0.33 0.05 255);
  --danger: oklch(0.72 0.15 25);
  --danger-soft: oklch(0.31 0.06 25);
  --success: oklch(0.77 0.12 150);
  --success-soft: oklch(0.30 0.05 150);
  --shadow: oklch(0 0 0 / 0.35);
  --rail-bg: oklch(0.215 0.016 255);
  --rail-text: var(--text);
  --rail-muted: var(--text-muted);
  --rail-hover: oklch(0.27 0.016 255);
  --rail-active-bg: var(--accent-soft);
  --rail-active-text: oklch(0.92 0.05 255);
  --rail-border: var(--border);
}
[data-theme-dark="graphite"] {
/* Entity tab colours on dark grounds (strong / soft / ink). */
  --tab-1: oklch(0.72 0.12 255); --tab-1-soft: oklch(0.31 0.05 255); --tab-1-ink: oklch(0.87 0.08 255);
  --tab-2: oklch(0.72 0.12 195); --tab-2-soft: oklch(0.31 0.05 195); --tab-2-ink: oklch(0.87 0.08 195);
  --tab-3: oklch(0.72 0.12 150); --tab-3-soft: oklch(0.31 0.05 150); --tab-3-ink: oklch(0.87 0.08 150);
  --tab-4: oklch(0.72 0.12 95); --tab-4-soft: oklch(0.31 0.05 95); --tab-4-ink: oklch(0.87 0.08 95);
  --tab-5: oklch(0.72 0.12 60); --tab-5-soft: oklch(0.31 0.05 60); --tab-5-ink: oklch(0.87 0.08 60);
  --tab-6: oklch(0.72 0.12 25); --tab-6-soft: oklch(0.31 0.05 25); --tab-6-ink: oklch(0.87 0.08 25);
  --tab-7: oklch(0.72 0.12 350); --tab-7-soft: oklch(0.31 0.05 350); --tab-7-ink: oklch(0.87 0.08 350);
  --tab-8: oklch(0.72 0.12 300); --tab-8-soft: oklch(0.31 0.05 300); --tab-8-ink: oklch(0.87 0.08 300);
/* Graphite: neutral dark with an amber accent. */
  color-scheme: dark;
  --ground: oklch(0.19 0.005 70);
  --surface: oklch(0.235 0.005 70);
  --surface-2: oklch(0.21 0.005 70);
  --text: oklch(0.94 0.008 70);
  --text-muted: oklch(0.75 0.015 70);
  --border: oklch(0.34 0.005 70);
  --border-strong: oklch(0.55 0.005 70);
  --accent: oklch(0.80 0.13 75);
  --accent-hover: oklch(0.85 0.12 78);
  --on-accent: oklch(0.17 0.02 70);
  --accent-text: oklch(0.83 0.12 78);
  --accent-soft: oklch(0.33 0.04 75);
  --focus: oklch(0.83 0.12 78);
  --selection: oklch(0.33 0.04 75);
  --danger: oklch(0.72 0.15 25);
  --danger-soft: oklch(0.31 0.06 25);
  --success: oklch(0.77 0.12 150);
  --success-soft: oklch(0.30 0.05 150);
  --shadow: oklch(0 0 0 / 0.35);
  --rail-bg: oklch(0.215 0.005 70);
  --rail-text: var(--text);
  --rail-muted: var(--text-muted);
  --rail-hover: oklch(0.27 0.005 70);
  --rail-active-bg: var(--accent-soft);
  --rail-active-text: oklch(0.92 0.05 70);
  --rail-border: var(--border);
}
}
