/*
 * Zenind colour systems. Every host except lp (its sets own their palettes) loads this one file, which
 * holds every system as a block of the same --zds-color-* variables, one block per system under
 * :root[data-zds="<name>"]. Which block applies is chosen in the browser: the inline boot script that
 * precedes this stylesheet ({{ zds.boot }}, built by get_zds_colors() in app/system/helper/common.php)
 * reads the "zds" cookie on the root domain and sets data-zds on <html> before first paint; the colour
 * dots on the account overview let the person pick (window.zdsColorSystem.set(name)). With no choice,
 * the default block (also on bare :root) applies; the default's name lives in
 * get_zds_default_color_system().
 *
 * Contract: every block defines exactly the same variables (tests/colors-guard.test.cjs checks), named
 * --zds-color-<group>[-<variant>]; -rgb triplets for transparency (rgb(var(--zds-color-accent-rgb) / .12)).
 * Templates and stylesheets reference these names, never a hex value. No gradients.
 *
 * GENERATED by tools/colors-systems.cjs from the specs in that file: edit a spec there and run it, never
 * this file. It checks every text pair at 4.5:1 and the control outline at 3:1 before writing.
 */

/* ink: no brand colour: the accent is the ink itself, so actions are black on white and colour means status */
:root[data-zds="ink"] {
    --zds-color-accent-rgb: 17 17 21;
    --zds-color-accent: rgb(var(--zds-color-accent-rgb));
    --zds-color-accent-hover: #2b2d3a;
    --zds-color-accent-text: rgb(var(--zds-color-accent-rgb));
    --zds-color-accent-contrast: #ffffff;
    --zds-color-accent-soft: #8a8d9c;
    --zds-color-accent-tint: #eeeff2;
    --zds-color-accent-wash: #f6f6f8;
    --zds-color-accent-border: #c9ccd6;
    --zds-color-focus-ring: rgb(var(--zds-color-accent-rgb) / .14);

    --zds-color-text-strong-rgb: 17 17 21;
    --zds-color-text-strong: rgb(var(--zds-color-text-strong-rgb));
    --zds-color-text: #3b3f4d;
    --zds-color-text-muted: #5c6070;
    --zds-color-text-placeholder: #9ba0ad;
    --zds-color-text-inverse: #ffffff;

    --zds-color-surface-rgb: 255 255 255;
    --zds-color-surface: rgb(var(--zds-color-surface-rgb));
    --zds-color-surface-canvas: #f4f4f6;
    --zds-color-surface-sunken: #f1f1f4;
    --zds-color-surface-hover: #ebebef;
    --zds-color-surface-inverse: #111115;

    --zds-color-border-strong: #bfc2cc;
    --zds-color-border: #dcdee4;
    --zds-color-border-subtle: #e7e8ee;
    --zds-color-border-faint: #eeeff3;
    --zds-color-border-control: #7f8595;

    --zds-color-success-rgb: 43 191 127;
    --zds-color-success: rgb(var(--zds-color-success-rgb));
    --zds-color-success-text: #177a4f;
    --zds-color-success-tint: #e6f7ef;
    --zds-color-warning-rgb: 250 139 12;
    --zds-color-warning: rgb(var(--zds-color-warning-rgb));
    --zds-color-warning-text: #9a5600;
    --zds-color-warning-tint: #fdf1e0;
    --zds-color-danger-rgb: 255 77 79;
    --zds-color-danger: rgb(var(--zds-color-danger-rgb));
    --zds-color-danger-text: #c22126;
    --zds-color-danger-tint: #fff0f0;

    --zds-color-highlight: #ffd200;

    --zds-color-shadow-rgb: 17 17 21;
    --zds-color-shadow-soft-rgb: 41 45 60;
}

/* electric: the blue the site shipped with (2026) (the default: applies with no choice made) */
:root,
:root[data-zds="electric"] {
    --zds-color-accent-rgb: 0 82 255;
    --zds-color-accent: rgb(var(--zds-color-accent-rgb));
    --zds-color-accent-hover: #0548e4;
    --zds-color-accent-text: rgb(var(--zds-color-accent-rgb));
    --zds-color-accent-contrast: #ffffff;
    --zds-color-accent-soft: #6895fd;
    --zds-color-accent-tint: #eef3ff;
    --zds-color-accent-wash: #f4f8ff;
    --zds-color-accent-border: #c3d2f8;
    --zds-color-focus-ring: rgb(var(--zds-color-accent-rgb) / .12);

    --zds-color-text-strong-rgb: 17 17 21;
    --zds-color-text-strong: rgb(var(--zds-color-text-strong-rgb));
    --zds-color-text: #3d425c;
    --zds-color-text-muted: #5a5f7d;
    --zds-color-text-placeholder: #9aa4bd;
    --zds-color-text-inverse: #ffffff;

    --zds-color-surface-rgb: 255 255 255;
    --zds-color-surface: rgb(var(--zds-color-surface-rgb));
    --zds-color-surface-canvas: #f4f5f7;
    --zds-color-surface-sunken: #f5f7fc;
    --zds-color-surface-hover: #f0f2f7;
    --zds-color-surface-inverse: #111115;

    --zds-color-border-strong: #bfc4cf;
    --zds-color-border: #dee0e6;
    --zds-color-border-subtle: #e7eaf3;
    --zds-color-border-faint: #edf0f6;
    --zds-color-border-control: #7d8ea7;

    --zds-color-success-rgb: 43 191 127;
    --zds-color-success: rgb(var(--zds-color-success-rgb));
    --zds-color-success-text: #177a4f;
    --zds-color-success-tint: #e6f7ef;
    --zds-color-warning-rgb: 250 139 12;
    --zds-color-warning: rgb(var(--zds-color-warning-rgb));
    --zds-color-warning-text: #9a5600;
    --zds-color-warning-tint: #fdf1e0;
    --zds-color-danger-rgb: 255 77 79;
    --zds-color-danger: rgb(var(--zds-color-danger-rgb));
    --zds-color-danger-text: #c22126;
    --zds-color-danger-tint: #fff0f0;

    --zds-color-highlight: #ffd200;

    --zds-color-shadow-rgb: 4 4 52;
    --zds-color-shadow-soft-rgb: 41 45 80;
}

/* emerald: deep green on neutral greys, from the category-standard landing set (lp f6c41643) */
:root[data-zds="emerald"] {
    --zds-color-accent-rgb: 11 122 85;
    --zds-color-accent: rgb(var(--zds-color-accent-rgb));
    --zds-color-accent-hover: #08664a;
    --zds-color-accent-text: #075e41;
    --zds-color-accent-contrast: #ffffff;
    --zds-color-accent-soft: #5fbf9b;
    --zds-color-accent-tint: #eaf6f1;
    --zds-color-accent-wash: #f5faf8;
    --zds-color-accent-border: #b7ddcc;
    --zds-color-focus-ring: rgb(var(--zds-color-accent-rgb) / .16);

    --zds-color-text-strong-rgb: 13 17 23;
    --zds-color-text-strong: rgb(var(--zds-color-text-strong-rgb));
    --zds-color-text: #4b5563;
    --zds-color-text-muted: #646b77;
    --zds-color-text-placeholder: #9ca3af;
    --zds-color-text-inverse: #ffffff;

    --zds-color-surface-rgb: 255 255 255;
    --zds-color-surface: rgb(var(--zds-color-surface-rgb));
    --zds-color-surface-canvas: #f6f7f9;
    --zds-color-surface-sunken: #f1f3f6;
    --zds-color-surface-hover: #eef0f3;
    --zds-color-surface-inverse: #0d1117;

    --zds-color-border-strong: #b5bcc6;
    --zds-color-border: #d0d5dc;
    --zds-color-border-subtle: #e5e7eb;
    --zds-color-border-faint: #eef0f3;
    --zds-color-border-control: #8591a3;

    --zds-color-success-rgb: 13 148 136;
    --zds-color-success: rgb(var(--zds-color-success-rgb));
    --zds-color-success-text: #0f766e;
    --zds-color-success-tint: #e6f7f5;
    --zds-color-warning-rgb: 245 158 11;
    --zds-color-warning: rgb(var(--zds-color-warning-rgb));
    --zds-color-warning-text: #9a5600;
    --zds-color-warning-tint: #fef3e2;
    --zds-color-danger-rgb: 217 45 32;
    --zds-color-danger: rgb(var(--zds-color-danger-rgb));
    --zds-color-danger-text: #b42318;
    --zds-color-danger-tint: #fef3f2;

    --zds-color-highlight: #ffd200;

    --zds-color-shadow-rgb: 13 17 23;
    --zds-color-shadow-soft-rgb: 31 41 55;
}

/* navy: institutional dark blue, the register of banks and law firms */
:root[data-zds="navy"] {
    --zds-color-accent-rgb: 30 58 138;
    --zds-color-accent: rgb(var(--zds-color-accent-rgb));
    --zds-color-accent-hover: #172c6b;
    --zds-color-accent-text: rgb(var(--zds-color-accent-rgb));
    --zds-color-accent-contrast: #ffffff;
    --zds-color-accent-soft: #6f86c9;
    --zds-color-accent-tint: #e9eef9;
    --zds-color-accent-wash: #f4f6fc;
    --zds-color-accent-border: #bcc9ea;
    --zds-color-focus-ring: rgb(var(--zds-color-accent-rgb) / .14);

    --zds-color-text-strong-rgb: 15 23 42;
    --zds-color-text-strong: rgb(var(--zds-color-text-strong-rgb));
    --zds-color-text: #334155;
    --zds-color-text-muted: #525f75;
    --zds-color-text-placeholder: #94a3b8;
    --zds-color-text-inverse: #ffffff;

    --zds-color-surface-rgb: 255 255 255;
    --zds-color-surface: rgb(var(--zds-color-surface-rgb));
    --zds-color-surface-canvas: #f4f6f9;
    --zds-color-surface-sunken: #f1f4f8;
    --zds-color-surface-hover: #eaeef4;
    --zds-color-surface-inverse: #0f172a;

    --zds-color-border-strong: #b8c1cf;
    --zds-color-border: #d6dce5;
    --zds-color-border-subtle: #e4e8ef;
    --zds-color-border-faint: #edf0f5;
    --zds-color-border-control: #7a879c;

    --zds-color-success-rgb: 22 163 74;
    --zds-color-success: rgb(var(--zds-color-success-rgb));
    --zds-color-success-text: #166534;
    --zds-color-success-tint: #e7f6ec;
    --zds-color-warning-rgb: 245 158 11;
    --zds-color-warning: rgb(var(--zds-color-warning-rgb));
    --zds-color-warning-text: #92400e;
    --zds-color-warning-tint: #fdf1e0;
    --zds-color-danger-rgb: 220 38 38;
    --zds-color-danger: rgb(var(--zds-color-danger-rgb));
    --zds-color-danger-text: #b91c1c;
    --zds-color-danger-tint: #fee2e2;

    --zds-color-highlight: #ffd200;

    --zds-color-shadow-rgb: 15 23 42;
    --zds-color-shadow-soft-rgb: 30 41 59;
}

/* clay: terracotta on warm paper greys, from the Drawn landing set (lp ebda1bb4) */
:root[data-zds="clay"] {
    --zds-color-accent-rgb: 194 65 12;
    --zds-color-accent: rgb(var(--zds-color-accent-rgb));
    --zds-color-accent-hover: #9a3412;
    --zds-color-accent-text: #9a3412;
    --zds-color-accent-contrast: #ffffff;
    --zds-color-accent-soft: #f0956e;
    --zds-color-accent-tint: #fdeee6;
    --zds-color-accent-wash: #fef7f3;
    --zds-color-accent-border: #f1c3ad;
    --zds-color-focus-ring: rgb(var(--zds-color-accent-rgb) / .16);

    --zds-color-text-strong-rgb: 28 25 23;
    --zds-color-text-strong: rgb(var(--zds-color-text-strong-rgb));
    --zds-color-text: #44403c;
    --zds-color-text-muted: #655f5a;
    --zds-color-text-placeholder: #a8a29e;
    --zds-color-text-inverse: #ffffff;

    --zds-color-surface-rgb: 255 255 255;
    --zds-color-surface: rgb(var(--zds-color-surface-rgb));
    --zds-color-surface-canvas: #f7f4f0;
    --zds-color-surface-sunken: #f3efea;
    --zds-color-surface-hover: #ede8e2;
    --zds-color-surface-inverse: #1c1917;

    --zds-color-border-strong: #c7c0b8;
    --zds-color-border: #dcd6cf;
    --zds-color-border-subtle: #e8e3dd;
    --zds-color-border-faint: #f0ece7;
    --zds-color-border-control: #8c857d;

    --zds-color-success-rgb: 22 163 74;
    --zds-color-success: rgb(var(--zds-color-success-rgb));
    --zds-color-success-text: #166534;
    --zds-color-success-tint: #e9f7ee;
    --zds-color-warning-rgb: 217 119 6;
    --zds-color-warning: rgb(var(--zds-color-warning-rgb));
    --zds-color-warning-text: #92400e;
    --zds-color-warning-tint: #fdf0d9;
    --zds-color-danger-rgb: 220 38 38;
    --zds-color-danger: rgb(var(--zds-color-danger-rgb));
    --zds-color-danger-text: #b91c1c;
    --zds-color-danger-tint: #fdebe9;

    --zds-color-highlight: #facc15;

    --zds-color-shadow-rgb: 28 25 23;
    --zds-color-shadow-soft-rgb: 68 64 60;
}

/* violet: saturated purple on faintly cool greys */
:root[data-zds="violet"] {
    --zds-color-accent-rgb: 109 40 217;
    --zds-color-accent: rgb(var(--zds-color-accent-rgb));
    --zds-color-accent-hover: #5b21b6;
    --zds-color-accent-text: #5b21b6;
    --zds-color-accent-contrast: #ffffff;
    --zds-color-accent-soft: #a78bfa;
    --zds-color-accent-tint: #f0ebfe;
    --zds-color-accent-wash: #f8f5ff;
    --zds-color-accent-border: #d4c5fb;
    --zds-color-focus-ring: rgb(var(--zds-color-accent-rgb) / .14);

    --zds-color-text-strong-rgb: 20 17 31;
    --zds-color-text-strong: rgb(var(--zds-color-text-strong-rgb));
    --zds-color-text: #3f3b52;
    --zds-color-text-muted: #5f5a74;
    --zds-color-text-placeholder: #a09bb4;
    --zds-color-text-inverse: #ffffff;

    --zds-color-surface-rgb: 255 255 255;
    --zds-color-surface: rgb(var(--zds-color-surface-rgb));
    --zds-color-surface-canvas: #f5f4f8;
    --zds-color-surface-sunken: #f3f1f8;
    --zds-color-surface-hover: #ecebf3;
    --zds-color-surface-inverse: #14111f;

    --zds-color-border-strong: #c3c0cf;
    --zds-color-border: #dedbe7;
    --zds-color-border-subtle: #e8e6f0;
    --zds-color-border-faint: #efeef5;
    --zds-color-border-control: #837e96;

    --zds-color-success-rgb: 22 163 74;
    --zds-color-success: rgb(var(--zds-color-success-rgb));
    --zds-color-success-text: #166534;
    --zds-color-success-tint: #e8f7ee;
    --zds-color-warning-rgb: 245 158 11;
    --zds-color-warning: rgb(var(--zds-color-warning-rgb));
    --zds-color-warning-text: #92400e;
    --zds-color-warning-tint: #fdf1dc;
    --zds-color-danger-rgb: 220 38 38;
    --zds-color-danger: rgb(var(--zds-color-danger-rgb));
    --zds-color-danger-text: #b91c1c;
    --zds-color-danger-tint: #fde8e8;

    --zds-color-highlight: #ffd200;

    --zds-color-shadow-rgb: 20 17 31;
    --zds-color-shadow-soft-rgb: 49 46 72;
}

/* rose: deep crimson on faintly warm greys */
:root[data-zds="rose"] {
    --zds-color-accent-rgb: 190 18 60;
    --zds-color-accent: rgb(var(--zds-color-accent-rgb));
    --zds-color-accent-hover: #9f1239;
    --zds-color-accent-text: rgb(var(--zds-color-accent-rgb));
    --zds-color-accent-contrast: #ffffff;
    --zds-color-accent-soft: #ee7a97;
    --zds-color-accent-tint: #fdedf1;
    --zds-color-accent-wash: #fff5f7;
    --zds-color-accent-border: #f3c3cf;
    --zds-color-focus-ring: rgb(var(--zds-color-accent-rgb) / .14);

    --zds-color-text-strong-rgb: 26 17 20;
    --zds-color-text-strong: rgb(var(--zds-color-text-strong-rgb));
    --zds-color-text: #4a3f44;
    --zds-color-text-muted: #6a5f64;
    --zds-color-text-placeholder: #a89ca2;
    --zds-color-text-inverse: #ffffff;

    --zds-color-surface-rgb: 255 255 255;
    --zds-color-surface: rgb(var(--zds-color-surface-rgb));
    --zds-color-surface-canvas: #f7f4f5;
    --zds-color-surface-sunken: #f4f0f2;
    --zds-color-surface-hover: #eee8eb;
    --zds-color-surface-inverse: #1a1114;

    --zds-color-border-strong: #c9c0c4;
    --zds-color-border: #ded6da;
    --zds-color-border-subtle: #e9e2e5;
    --zds-color-border-faint: #f0ebee;
    --zds-color-border-control: #8a7f85;

    --zds-color-success-rgb: 22 163 74;
    --zds-color-success: rgb(var(--zds-color-success-rgb));
    --zds-color-success-text: #166534;
    --zds-color-success-tint: #e9f7ee;
    --zds-color-warning-rgb: 245 158 11;
    --zds-color-warning: rgb(var(--zds-color-warning-rgb));
    --zds-color-warning-text: #92400e;
    --zds-color-warning-tint: #fdf1e0;
    --zds-color-danger-rgb: 220 38 38;
    --zds-color-danger: rgb(var(--zds-color-danger-rgb));
    --zds-color-danger-text: #b91c1c;
    --zds-color-danger-tint: #fde8e8;

    --zds-color-highlight: #ffd200;

    --zds-color-shadow-rgb: 26 17 20;
    --zds-color-shadow-soft-rgb: 60 48 54;
}

/* teal: blue-green on cool greys, between emerald and the blues */
:root[data-zds="teal"] {
    --zds-color-accent-rgb: 15 118 110;
    --zds-color-accent: rgb(var(--zds-color-accent-rgb));
    --zds-color-accent-hover: #115e59;
    --zds-color-accent-text: rgb(var(--zds-color-accent-rgb));
    --zds-color-accent-contrast: #ffffff;
    --zds-color-accent-soft: #4fb3a9;
    --zds-color-accent-tint: #e6f4f2;
    --zds-color-accent-wash: #f2faf9;
    --zds-color-accent-border: #b7dcd8;
    --zds-color-focus-ring: rgb(var(--zds-color-accent-rgb) / .14);

    --zds-color-text-strong-rgb: 15 23 30;
    --zds-color-text-strong: rgb(var(--zds-color-text-strong-rgb));
    --zds-color-text: #334049;
    --zds-color-text-muted: #55636c;
    --zds-color-text-placeholder: #94a3ab;
    --zds-color-text-inverse: #ffffff;

    --zds-color-surface-rgb: 255 255 255;
    --zds-color-surface: rgb(var(--zds-color-surface-rgb));
    --zds-color-surface-canvas: #f3f6f6;
    --zds-color-surface-sunken: #eff4f4;
    --zds-color-surface-hover: #e8eeee;
    --zds-color-surface-inverse: #0f171e;

    --zds-color-border-strong: #b9c4c7;
    --zds-color-border: #d6dfe0;
    --zds-color-border-subtle: #e3eaeb;
    --zds-color-border-faint: #ecf1f1;
    --zds-color-border-control: #78898f;

    --zds-color-success-rgb: 22 163 74;
    --zds-color-success: rgb(var(--zds-color-success-rgb));
    --zds-color-success-text: #166534;
    --zds-color-success-tint: #e7f6ec;
    --zds-color-warning-rgb: 245 158 11;
    --zds-color-warning: rgb(var(--zds-color-warning-rgb));
    --zds-color-warning-text: #92400e;
    --zds-color-warning-tint: #fdf1e0;
    --zds-color-danger-rgb: 220 38 38;
    --zds-color-danger: rgb(var(--zds-color-danger-rgb));
    --zds-color-danger-text: #b91c1c;
    --zds-color-danger-tint: #fee2e2;

    --zds-color-highlight: #ffd200;

    --zds-color-shadow-rgb: 15 23 30;
    --zds-color-shadow-soft-rgb: 31 50 57;
}

/* slate: a quiet blue-grey: the accent is a mid grey, so colour means status, as in ink, but softer */
:root[data-zds="slate"] {
    --zds-color-accent-rgb: 71 85 105;
    --zds-color-accent: rgb(var(--zds-color-accent-rgb));
    --zds-color-accent-hover: #334155;
    --zds-color-accent-text: rgb(var(--zds-color-accent-rgb));
    --zds-color-accent-contrast: #ffffff;
    --zds-color-accent-soft: #94a3b8;
    --zds-color-accent-tint: #eceff3;
    --zds-color-accent-wash: #f5f7fa;
    --zds-color-accent-border: #c5cdd8;
    --zds-color-focus-ring: rgb(var(--zds-color-accent-rgb) / .14);

    --zds-color-text-strong-rgb: 15 23 42;
    --zds-color-text-strong: rgb(var(--zds-color-text-strong-rgb));
    --zds-color-text: #334155;
    --zds-color-text-muted: #525f75;
    --zds-color-text-placeholder: #94a3b8;
    --zds-color-text-inverse: #ffffff;

    --zds-color-surface-rgb: 255 255 255;
    --zds-color-surface: rgb(var(--zds-color-surface-rgb));
    --zds-color-surface-canvas: #f4f6f8;
    --zds-color-surface-sunken: #f0f3f6;
    --zds-color-surface-hover: #e9edf2;
    --zds-color-surface-inverse: #0f172a;

    --zds-color-border-strong: #b8c1cf;
    --zds-color-border: #d6dce5;
    --zds-color-border-subtle: #e4e8ef;
    --zds-color-border-faint: #edf0f5;
    --zds-color-border-control: #7a879c;

    --zds-color-success-rgb: 22 163 74;
    --zds-color-success: rgb(var(--zds-color-success-rgb));
    --zds-color-success-text: #166534;
    --zds-color-success-tint: #e7f6ec;
    --zds-color-warning-rgb: 245 158 11;
    --zds-color-warning: rgb(var(--zds-color-warning-rgb));
    --zds-color-warning-text: #92400e;
    --zds-color-warning-tint: #fdf1e0;
    --zds-color-danger-rgb: 220 38 38;
    --zds-color-danger: rgb(var(--zds-color-danger-rgb));
    --zds-color-danger-text: #b91c1c;
    --zds-color-danger-tint: #fee2e2;

    --zds-color-highlight: #ffd200;

    --zds-color-shadow-rgb: 15 23 42;
    --zds-color-shadow-soft-rgb: 30 41 59;
}
