/* GENERATED by scripts/gen-backoffice-tokens.mjs — DO NOT EDIT.
 *
 * Source: design/tokens/laundry.tokens.json — the one place a colour is authored.
 * Change it THERE and run `make tokens`. CI fails if this file drifts from its
 * source, so a hand edit here is caught by the build rather than discovered a
 * month later, when the till and the backoffice are two different purples.
 *
 * Contrast is NOT asserted here. It is GATED — every rendered pair is declared in
 * design/tokens/contrast.pairs.json and enforced by scripts/contrast-check.mjs on
 * every commit. The file this replaces carried the header "Contrast validated
 * WCAG AA (light 6/6, dark 6/6) on 2026-07-12". That sentence was true when it was
 * written and said nothing at all about the pixels you are looking at now.
 */

:root,
html[data-theme="light"] {
  --sn-primary: #5E61FF;
  --sn-on-primary: #FFFFFF;
  --sn-primary-container: #E7E7FF;
  --sn-on-primary-container: #2B2D7A;
  --sn-primary-text: #595CF2;
  --sn-secondary: #69788C;
  --sn-on-secondary: #FFFFFF;
  --sn-secondary-container: #E4E8EC;
  --sn-on-secondary-container: #33404F;
  --sn-secondary-text: #647285;
  --sn-success: #71DD37;
  --sn-on-success: #22303E;
  --sn-success-container: #E4F9D6;
  --sn-on-success-container: #2F6B12;
  --sn-success-text: #3E8617;
  --sn-info: #03C3EC;
  --sn-on-info: #22303E;
  --sn-info-container: #D6F5FD;
  --sn-on-info-container: #01576B;
  --sn-info-text: #02819C;
  --sn-warning: #FFAB00;
  --sn-on-warning: #22303E;
  --sn-warning-container: #FFEFD0;
  --sn-on-warning-container: #7A5200;
  --sn-warning-text: #A16C00;
  --sn-error: #E82200;
  --sn-on-error: #FFFFFF;
  --sn-error-container: #FFE0DB;
  --sn-on-error-container: #8B1400;
  --sn-error-text: #E82200;
  --sn-background: #F5F5F9;
  --sn-surface: #FFFFFF;
  --sn-on-surface: #22303E;
  --sn-on-surface-variant: #627183;
  --sn-surface-container-low: #FAFAFA;
  --sn-surface-container: #F5F5F5;
  --sn-surface-container-high: #EEEEEE;
  --sn-outline: #858D9B;
  --sn-outline-variant: #E0E0E0;
  --sn-inverse-surface: #22303E;
  --sn-inverse-on-surface: #F5F5F9;
  --sn-scrim: #22303E;
  --sn-grey-50: #FAFAFA;
  --sn-grey-100: #F5F5F5;
  --sn-grey-200: #EEEEEE;
  --sn-grey-300: #E0E0E0;
  --sn-grey-400: #BDBDBD;
  --sn-grey-500: #9E9E9E;
  --sn-grey-600: #757575;
  --sn-grey-700: #616161;
  --sn-grey-800: #424242;
  --sn-grey-900: #212121;
  --sn-chart-1: #5E61FF;
  --sn-chart-2: #03C3EC;
  --sn-chart-3: #71DD37;
  --sn-chart-4: #FFAB00;
  --sn-chart-5: #69788C;
  --sn-chart-6: #B4B5FF;
  --sn-shadow-key-umbra: #22303E;
  --sn-shadow-opacity-xs: 0.06;
  --sn-shadow-opacity-sm: 0.08;
  --sn-shadow-opacity-md: 0.1;
  --sn-shadow-opacity-lg: 0.14;
  --sn-shadow-opacity-xl: 0.18;
  --sn-state-hover: 0.06;
  --sn-state-focus: 0.1;
  --sn-state-selected: 0.08;
  --sn-state-disabled: 0.4;
  --sn-state-border-opacity: 0.12;
  --sn-state-scrim-opacity: 0.5;
  --sn-shadow-rgb: 34 48 62;

  --sn-font-family: "Public Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --sn-type-h1-size: 2.375rem;
  --sn-type-h1-line: 3rem;
  --sn-type-h1-weight: 500;
  --sn-type-h2-size: 2rem;
  --sn-type-h2-line: 2.625rem;
  --sn-type-h2-weight: 500;
  --sn-type-h3-size: 1.625rem;
  --sn-type-h3-line: 2.25rem;
  --sn-type-h3-weight: 500;
  --sn-type-h4-size: 1.375rem;
  --sn-type-h4-line: 1.875rem;
  --sn-type-h4-weight: 500;
  --sn-type-h5-size: 1.125rem;
  --sn-type-h5-line: 1.625rem;
  --sn-type-h5-weight: 500;
  --sn-type-h6-size: 0.9375rem;
  --sn-type-h6-line: 1.375rem;
  --sn-type-h6-weight: 500;
  --sn-type-subtitle-1-size: 1rem;
  --sn-type-subtitle-1-line: 1.5rem;
  --sn-type-subtitle-1-weight: 400;
  --sn-type-subtitle-2-size: 0.875rem;
  --sn-type-subtitle-2-line: 1.375rem;
  --sn-type-subtitle-2-weight: 500;
  --sn-type-body-1-size: 0.9375rem;
  --sn-type-body-1-line: 1.375rem;
  --sn-type-body-1-weight: 400;
  --sn-type-body-2-size: 0.8125rem;
  --sn-type-body-2-line: 1.25rem;
  --sn-type-body-2-weight: 400;
  --sn-type-button-size: 0.9375rem;
  --sn-type-button-line: 1.375rem;
  --sn-type-button-weight: 500;
  --sn-type-button-transform: capitalize;
  --sn-type-caption-size: 0.8125rem;
  --sn-type-caption-line: 1.25rem;
  --sn-type-caption-weight: 400;
  --sn-type-overline-size: 0.75rem;
  --sn-type-overline-line: 1rem;
  --sn-type-overline-weight: 400;
  --sn-type-overline-transform: uppercase;
  --sn-shape-corner-root: 6px;
  --sn-shape-corner-small: 4px;
  --sn-shape-corner-medium: 6px;
  --sn-shape-corner-large: 8px;
  --sn-shape-corner-x-large: 12px;
  --sn-shape-corner-2x-large: 16px;
  --sn-shape-corner-3x-large: 18px;
  --sn-shape-corner-full: 999px;
  --sn-admin-button-height: 38px;
  --sn-admin-input-height: 38px;
  --sn-admin-nav-width: 260px;
  --sn-admin-nav-width-collapsed: 84px;
  --sn-admin-navbar-height: 64px;
  --sn-admin-card-padding: 24px;
  --sn-admin-table-row-height: 50px;
  --sn-admin-table-header-height: 56px;
  --sn-auth-brand-gradient-from: #8487FF;
  --sn-auth-brand-gradient-to: #3B3C93;
  --sn-motion-duration-short: 150ms;
  --sn-motion-duration-medium: 300ms;
  --sn-motion-duration-long: 600ms;
  --sn-elevation-0: 0 0 0 0 rgb(var(--sn-shadow-rgb) / 0);
  --sn-elevation-1: 0 2px 4px rgb(var(--sn-shadow-rgb) / 0.12);
  --sn-elevation-2: 0 1px 5px rgb(var(--sn-shadow-rgb) / 0.06);
  --sn-elevation-3: 0 3px 8px rgb(var(--sn-shadow-rgb) / 0.14);
  --sn-elevation-4: 0 2px 6px rgb(var(--sn-shadow-rgb) / 0.08);
  --sn-elevation-5: 0 4px 10px rgb(var(--sn-shadow-rgb) / 0.15);
  --sn-elevation-6: 0 3px 8px rgb(var(--sn-shadow-rgb) / 0.1);
  --sn-elevation-7: 0 4px 18px rgb(var(--sn-shadow-rgb) / 0.1);
  --sn-elevation-8: 0 4px 12px rgb(var(--sn-shadow-rgb) / 0.14);
  --sn-elevation-9: 0 5px 14px rgb(var(--sn-shadow-rgb) / 0.18);
  --sn-elevation-10: 0 5px 22px rgb(var(--sn-shadow-rgb) / 0.18);
  --sn-elevation-11: 0 5px 16px rgb(var(--sn-shadow-rgb) / 0.2);
  --sn-elevation-12: 0 6px 17px rgb(var(--sn-shadow-rgb) / 0.22);
  --sn-elevation-16: 0 7px 21px rgb(var(--sn-shadow-rgb) / 0.26);
  --sn-elevation-24: 0 10px 30px rgb(var(--sn-shadow-rgb) / 0.34);
}

html[data-theme="dark"] {
  --sn-primary: #8789FF;
  --sn-on-primary: #22303E;
  --sn-primary-container: #3B3D6B;
  --sn-on-primary-container: #E7E7FF;
  --sn-primary-text: #8789FF;
  --sn-secondary: #8B97A8;
  --sn-on-secondary: #22303E;
  --sn-secondary-container: #3A4552;
  --sn-on-secondary-container: #E4E8EC;
  --sn-secondary-text: #8B97A8;
  --sn-success: #71DD37;
  --sn-on-success: #22303E;
  --sn-success-container: #2C4A18;
  --sn-on-success-container: #D7F7C4;
  --sn-success-text: #71DD37;
  --sn-info: #03C3EC;
  --sn-on-info: #22303E;
  --sn-info-container: #0B4A58;
  --sn-on-info-container: #C2EFFA;
  --sn-info-text: #03C3EC;
  --sn-warning: #FFAB00;
  --sn-on-warning: #22303E;
  --sn-warning-container: #5A3D00;
  --sn-on-warning-container: #FFE7B8;
  --sn-warning-text: #FFAB00;
  --sn-error: #FF654A;
  --sn-on-error: #22303E;
  --sn-error-container: #6B1000;
  --sn-on-error-container: #FFD6CF;
  --sn-error-text: #FF654A;
  --sn-background: #232333;
  --sn-surface: #2B2C40;
  --sn-on-surface: #E6E6F1;
  --sn-on-surface-variant: #AAB3DE;
  --sn-surface-container-low: #2F3349;
  --sn-surface-container: #313246;
  --sn-surface-container-high: #41415F;
  --sn-outline: #7983BB;
  --sn-outline-variant: #4A5072;
  --sn-inverse-surface: #E6E6F1;
  --sn-inverse-on-surface: #2B2C40;
  --sn-scrim: #1D1D2A;
  --sn-grey-50: #26293A;
  --sn-grey-100: #2F3349;
  --sn-grey-200: #26293A;
  --sn-grey-300: #4A5072;
  --sn-grey-400: #5E6692;
  --sn-grey-500: #7983BB;
  --sn-grey-600: #AAB3DE;
  --sn-grey-700: #B6BEE3;
  --sn-grey-800: #CFD3EC;
  --sn-grey-900: #E7E9F6;
  --sn-chart-1: #8789FF;
  --sn-chart-2: #03C3EC;
  --sn-chart-3: #71DD37;
  --sn-chart-4: #FFAB00;
  --sn-chart-5: #8B97A8;
  --sn-chart-6: #3B3D6B;
  --sn-shadow-key-umbra: #14141D;
  --sn-shadow-opacity-xs: 0.18;
  --sn-shadow-opacity-sm: 0.2;
  --sn-shadow-opacity-md: 0.22;
  --sn-shadow-opacity-lg: 0.24;
  --sn-shadow-opacity-xl: 0.26;
  --sn-state-hover: 0.06;
  --sn-state-focus: 0.1;
  --sn-state-selected: 0.08;
  --sn-state-disabled: 0.4;
  --sn-state-border-opacity: 0.12;
  --sn-state-scrim-opacity: 0.6;
  --sn-shadow-rgb: 20 20 29;
}

@media (prefers-color-scheme: dark) {
  html:not([data-theme="light"]) {
    --sn-primary: #8789FF;
    --sn-on-primary: #22303E;
    --sn-primary-container: #3B3D6B;
    --sn-on-primary-container: #E7E7FF;
    --sn-primary-text: #8789FF;
    --sn-secondary: #8B97A8;
    --sn-on-secondary: #22303E;
    --sn-secondary-container: #3A4552;
    --sn-on-secondary-container: #E4E8EC;
    --sn-secondary-text: #8B97A8;
    --sn-success: #71DD37;
    --sn-on-success: #22303E;
    --sn-success-container: #2C4A18;
    --sn-on-success-container: #D7F7C4;
    --sn-success-text: #71DD37;
    --sn-info: #03C3EC;
    --sn-on-info: #22303E;
    --sn-info-container: #0B4A58;
    --sn-on-info-container: #C2EFFA;
    --sn-info-text: #03C3EC;
    --sn-warning: #FFAB00;
    --sn-on-warning: #22303E;
    --sn-warning-container: #5A3D00;
    --sn-on-warning-container: #FFE7B8;
    --sn-warning-text: #FFAB00;
    --sn-error: #FF654A;
    --sn-on-error: #22303E;
    --sn-error-container: #6B1000;
    --sn-on-error-container: #FFD6CF;
    --sn-error-text: #FF654A;
    --sn-background: #232333;
    --sn-surface: #2B2C40;
    --sn-on-surface: #E6E6F1;
    --sn-on-surface-variant: #AAB3DE;
    --sn-surface-container-low: #2F3349;
    --sn-surface-container: #313246;
    --sn-surface-container-high: #41415F;
    --sn-outline: #7983BB;
    --sn-outline-variant: #4A5072;
    --sn-inverse-surface: #E6E6F1;
    --sn-inverse-on-surface: #2B2C40;
    --sn-scrim: #1D1D2A;
    --sn-grey-50: #26293A;
    --sn-grey-100: #2F3349;
    --sn-grey-200: #26293A;
    --sn-grey-300: #4A5072;
    --sn-grey-400: #5E6692;
    --sn-grey-500: #7983BB;
    --sn-grey-600: #AAB3DE;
    --sn-grey-700: #B6BEE3;
    --sn-grey-800: #CFD3EC;
    --sn-grey-900: #E7E9F6;
    --sn-chart-1: #8789FF;
    --sn-chart-2: #03C3EC;
    --sn-chart-3: #71DD37;
    --sn-chart-4: #FFAB00;
    --sn-chart-5: #8B97A8;
    --sn-chart-6: #3B3D6B;
    --sn-shadow-key-umbra: #14141D;
    --sn-shadow-opacity-xs: 0.18;
    --sn-shadow-opacity-sm: 0.2;
    --sn-shadow-opacity-md: 0.22;
    --sn-shadow-opacity-lg: 0.24;
    --sn-shadow-opacity-xl: 0.26;
    --sn-state-hover: 0.06;
    --sn-state-focus: 0.1;
    --sn-state-selected: 0.08;
    --sn-state-disabled: 0.4;
    --sn-state-border-opacity: 0.12;
    --sn-state-scrim-opacity: 0.6;
    --sn-shadow-rgb: 20 20 29;
  }
}
