/*
 * Theme tokens.
 *
 * All fourteen palettes, carried over from the old inline <script> in
 * header.ejs. Previously the JS wrote every custom property onto
 * document.documentElement one at a time and a second pile of
 * `body[data-theme=...] ... !important` rules in the stylesheet tried to patch
 * up whatever that missed. Now the palette *is* CSS: switching themes sets one
 * attribute on <html> and nothing else.
 *
 * Each theme defines the same nine tokens. Everything else in the UI is derived
 * from them below, so a new theme never needs more than these nine lines.
 */

:root {
    /* ---- Palette (overridden per theme) ---- */
    --bg: #1e1b4d;
    --text: #d1fae5;
    --accent: linear-gradient(135deg, #4c1d95 0%, #06b6d4 100%);
    --accent-solid: #06b6d4;
    --panel: rgba(76, 29, 149, 0.15);
    --line: rgba(76, 29, 149, 0.25);
    --hover: rgba(76, 29, 149, 0.2);
    --ok: #34d399;
    --bad: #f87171;
    --warn: #facc15;

    /* ---- Derived: surfaces ---- */
    --surface: color-mix(in srgb, var(--text) 5%, transparent);
    --surface-raised: color-mix(in srgb, var(--text) 9%, transparent);
    --surface-solid: color-mix(in srgb, var(--bg) 92%, var(--text));
    --line-soft: color-mix(in srgb, var(--text) 12%, transparent);

    /* ---- Derived: text ---- */
    --text-muted: color-mix(in srgb, var(--text) 62%, transparent);
    --text-faint: color-mix(in srgb, var(--text) 38%, transparent);
    --on-accent: #fff;

    /* ---- Owner colours (identity, not theme) ---- */
    --myriam: #f472b6;
    --richard: #60a5fa;

    /* ---- Shape ---- */
    --r-sm: 6px;
    --r: 10px;
    --r-lg: 16px;
    --shadow: 0 4px 16px rgba(0, 0, 0, .28);
    --shadow-lg: 0 12px 40px rgba(0, 0, 0, .42);
    --ring: 0 0 0 3px color-mix(in srgb, var(--accent-solid) 45%, transparent);

    /* ---- Type ---- */
    --font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    --mono: ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace;
}

[data-theme="monokai"] {
    --bg: #272822; --text: #f8f8f2;
    --accent: linear-gradient(135deg, #66d9ef 0%, #fd971f 100%); --accent-solid: #66d9ef;
    --panel: rgba(102, 217, 239, .15); --line: rgba(102, 217, 239, .25); --hover: rgba(102, 217, 239, .2);
    --ok: #a6e22e; --bad: #f92672; --warn: #e6db74;
    --on-accent: #272822;
}

[data-theme="dracula"] {
    --bg: #282a36; --text: #f8f8f2;
    --accent: linear-gradient(135deg, #bd93f9 0%, #ff79c6 100%); --accent-solid: #bd93f9;
    --panel: rgba(189, 147, 249, .15); --line: rgba(189, 147, 249, .25); --hover: rgba(189, 147, 249, .2);
    --ok: #50fa7b; --bad: #ff5555; --warn: #f1fa8c;
    --on-accent: #282a36;
}

[data-theme="vscode"] {
    --bg: #1e1e1e; --text: #d4d4d4;
    --accent: linear-gradient(135deg, #007acc 0%, #00b7d4 100%); --accent-solid: #007acc;
    --panel: rgba(0, 122, 204, .15); --line: rgba(0, 122, 204, .25); --hover: rgba(0, 122, 204, .2);
    --ok: #4ec9b0; --bad: #d16969; --warn: #d7ba7d;
}

[data-theme="github"] {
    --bg: #f6f8fa; --text: #24292e;
    --accent: linear-gradient(135deg, #0366d6 0%, #28a745 100%); --accent-solid: #0366d6;
    --panel: rgba(3, 102, 214, .08); --line: rgba(3, 102, 214, .22); --hover: rgba(3, 102, 214, .14);
    --ok: #28a745; --bad: #d73a49; --warn: #b08800;
    --myriam: #c2185b; --richard: #1565c0;
}

[data-theme="atom"] {
    --bg: #21252b; --text: #abb2bf;
    --accent: linear-gradient(135deg, #528bff 0%, #98c379 100%); --accent-solid: #528bff;
    --panel: rgba(82, 139, 255, .15); --line: rgba(82, 139, 255, .25); --hover: rgba(82, 139, 255, .2);
    --ok: #98c379; --bad: #e06c75; --warn: #d19a66;
}

[data-theme="solarized_dark"] {
    --bg: #002b36; --text: #93a1a1;
    --accent: linear-gradient(135deg, #2aa198 0%, #b58900 100%); --accent-solid: #2aa198;
    --panel: rgba(42, 161, 152, .15); --line: rgba(42, 161, 152, .25); --hover: rgba(42, 161, 152, .2);
    --ok: #859900; --bad: #dc322f; --warn: #b58900;
}

[data-theme="solarized_light"] {
    --bg: #fdf6e3; --text: #586e75;
    --accent: linear-gradient(135deg, #268bd2 0%, #b58900 100%); --accent-solid: #268bd2;
    --panel: rgba(38, 139, 210, .08); --line: rgba(38, 139, 210, .22); --hover: rgba(38, 139, 210, .14);
    --ok: #859900; --bad: #dc322f; --warn: #b58900;
    --myriam: #c2185b; --richard: #1565c0;
}

[data-theme="ocean_breeze"] {
    --bg: #2c5364; --text: #e6f3ff;
    --accent: linear-gradient(135deg, #3a7bd5 0%, #00ddeb 100%); --accent-solid: #00ddeb;
    --panel: rgba(230, 243, 255, .12); --line: rgba(230, 243, 255, .24); --hover: rgba(230, 243, 255, .18);
    --ok: #00ddeb; --bad: #ff6b6b; --warn: #ffd700;
    --on-accent: #06283d;
}

[data-theme="sunset_vibes"] {
    --bg: #4b2a5a; --text: #fff5e1;
    --accent: linear-gradient(135deg, #ff7e5f 0%, #feb47b 100%); --accent-solid: #ff7e5f;
    --panel: rgba(255, 245, 225, .12); --line: rgba(255, 245, 225, .24); --hover: rgba(255, 245, 225, .18);
    --ok: #00b894; --bad: #e17055; --warn: #fdcb6e;
    --on-accent: #40203f;
}

[data-theme="forest_magic"] {
    --bg: #1a3c34; --text: #e8f5e9;
    --accent: linear-gradient(135deg, #2e7d32 0%, #4caf50 100%); --accent-solid: #4caf50;
    --panel: rgba(232, 245, 233, .12); --line: rgba(232, 245, 233, .24); --hover: rgba(232, 245, 233, .18);
    --ok: #4caf50; --bad: #ef5350; --warn: #ffca28;
}

[data-theme="cyber_neon"] {
    --bg: #1a0d2e; --text: #00ffcc;
    --accent: linear-gradient(135deg, #ff00cc 0%, #00f0ff 100%); --accent-solid: #00f0ff;
    --panel: rgba(0, 240, 255, .12); --line: rgba(0, 240, 255, .3); --hover: rgba(0, 240, 255, .2);
    --ok: #00ffcc; --bad: #ff0066; --warn: #ffea00;
    --on-accent: #12002b;
    --myriam: #ff00cc; --richard: #00f0ff;
}

[data-theme="cotton_candy"] {
    --bg: #fff0f5; --text: #4a2e2a;
    --accent: linear-gradient(135deg, #ffb6c1 0%, #b5ead7 100%); --accent-solid: #e58fa0;
    --panel: rgba(74, 46, 42, .06); --line: rgba(74, 46, 42, .18); --hover: rgba(74, 46, 42, .1);
    --ok: #3f9142; --bad: #d81b60; --warn: #c67c00;
    --on-accent: #4a2e2a;
    --myriam: #c2185b; --richard: #1565c0;
}

[data-theme="aurora_night"] {
    --bg: #1e1b4d; --text: #d1fae5;
    --accent: linear-gradient(135deg, #4c1d95 0%, #06b6d4 100%); --accent-solid: #06b6d4;
    --panel: rgba(209, 250, 229, .1); --line: rgba(209, 250, 229, .22); --hover: rgba(209, 250, 229, .16);
    --ok: #34d399; --bad: #f87171; --warn: #facc15;
}

[data-theme="royal_gold"] {
    --bg: #2d1b69; --text: #f8e1b0;
    --accent: linear-gradient(135deg, #ffd700 0%, #c69749 100%); --accent-solid: #ffd700;
    --panel: rgba(255, 215, 0, .12); --line: rgba(255, 215, 0, .26); --hover: rgba(255, 215, 0, .18);
    --ok: #6ac47a; --bad: #ef5350; --warn: #ffb300;
    --on-accent: #2d1b69;
}
