/*
 * GENERATED FILE -- do not edit.
 *
 * Source: src/brand/aide-brand.ts
 * Regenerate: npm run aide:brand-tokens
 *
 * Edits here are lost on the next run, and a test fails if this file has parted
 * from its source. The palette lived in four files before this one existed; the
 * point of generating it is that there is now exactly one place a color can be
 * decided.
 */
:root {
  /* "only light" and not "light": it also refuses a browser's forced-dark mode,
     which would otherwise invert a palette that was contrast-checked in one
     direction. See the note above brandTokensCss. */
  color-scheme: only light;
  --font-stack: Inter, Aptos, Arial, Helvetica, sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  /* Headings and the strongest type on the page. 16.31:1 on white. */
  --navy: #07185a;
  /* Body text. */
  --ink: #0a1438;
  /* Secondary type: captions, help text, table meta. */
  --muted: #4e668d;
  /* The brand blue. Fills, borders, focus rings and accent-color only -- it is 4.08:1 on white and fails WCAG AA as type. Use blue-dark for text. */
  --blue: #0b78ff;
  /* Links and blue type. 6.77:1 on white. */
  --blue-dark: #245aa8;
  /* Pass, healthy, complete. Darkened from #24a35a on 2026-08-21, which was 3.25:1 and failed as type. */
  --green: #1a7d45;
  /* Fail, blocked, destructive. Darkened from #dc242b on 2026-08-21: the old value cleared white and the soft panel and then landed on 4.45:1 against the tinted one, which is the kind of miss no eye finds and no reviewer forgives. Now 4.82:1 at its worst. */
  --red: #d31f26;
  /* Warn. Darkened from the reporting palette's #c2410c, which is 4.15:1 on white and fails as type by a margin small enough that nobody checked. */
  --amber: #a1490b;
  /* An accent, and only an accent: one rule and three fills. It was the color of every emphasised word until 2026-08-21, which is how the site came to read as purple. Nothing here is a contrast problem -- purple is 5.78:1 -- so this is a decision about which color speaks, not a fix. */
  --purple: #8138e5;
  /* Panel borders and dividers. */
  --line: #d3e1f2;
  /* Gridlines inside an operational table, which are deliberately darker than --line. Genesis requires dark gridlines on dense finance tables and the dashboard inherited Genesis's slate #344456 for it. This keeps the rule and drops the borrowed value: a navy-derived mid tone that reads as a grid at 1px without printing as a black cage. */
  --grid: #8fa6c4;
  /* Pass badge and healthy row background. */
  --green-tint: #e8f8ee;
  /* Pass badge border. */
  --green-line: #9ed8b1;
  /* Warn badge and attention row background. */
  --amber-tint: #fff4df;
  /* Warn badge border. */
  --amber-line: #edc56f;
  /* Fail badge and error row background. */
  --red-tint: #ffe9ea;
  /* Fail badge border. */
  --red-line: #ffb8bf;
  /* The unfilled part of a meter or progress ring. */
  --track: #e7eefa;
  /* The page. */
  --white: #ffffff;
  /* Panel background. */
  --soft: #f5f9ff;
  /* Tinted panel background, one step stronger than soft. */
  --soft-2: #eef6ff;
  /* Primary action, from doc 150. 6.46:1 on white, 5.93:1 on canvas, and white label text on it reads 6.46:1 -- so it carries as a filled button and as type. */
  --indigo: #4f39f6;
  /* Console body text, from doc 150. 16.81:1 on white. */
  --body: #1a1d27;
  /* Secondary console type: captions, meta, table headers. Doc 150 specifies #6b7280; darkened five points to clear 4.5:1 on canvas, where his value reads 4.43. */
  --secondary: #667085;
  /* Form field labels, from doc 150. 10.31:1 on white. */
  --field-label: #374151;
  /* The console page background, from doc 150. Listed as a color as well as a surface because the gate reads BRAND_SURFACES and the stylesheet reads the emitted variables -- a surface that is only in the former is checked and then unusable. */
  --canvas: #f4f5f7;
  /* The single border weight doc 150 uses everywhere, as the solid equivalent of its rgba(0,0,0,0.08) over canvas. Solid rather than alpha so it is a token like every other and composites predictably on both surfaces. */
  --hairline: #ebebec;
  /* A chart axis, and any line that must read stronger than a gridline without competing with type. The one value this palette was genuinely missing: the archaeology report had been reaching for a #c3c2b7 of its own because there was nothing between hairline and secondary to reach for. */
  --rule: #c9ccd2;

  /* The value worth reading first in a panel: a score, a name, a total. */
  --emphasis: var(--navy);
  /* Card and report background. Named separately so dark mode can move it. */
  --surface: var(--white);

  /* Raised card. */
  --shadow: 0 20px 48px rgba(16, 45, 92, 0.13);
  /* Resting card. */
  --soft-shadow: 0 10px 26px rgba(23, 74, 140, 0.08);

  /*
     The marks. Paths only; the artwork lives under public/aide/assets/brand/
     and the source of these names is BRAND_MARKS in src/brand/aide-brand.ts.
  */
  /* Product lockup for white surfaces: navy wordmark, blue symbol. */
  --mark-lockup-light: url("/aide/assets/brand/daleen-product-lockup-light.svg");
  /* Product lockup for navy surfaces: all white. */
  --mark-lockup-dark: url("/aide/assets/brand/daleen-product-lockup-dark.svg");
  /* Blue symbol alone. */
  --mark-symbol: url("/aide/assets/brand/daleen-symbol-light.svg");
  /* Navy symbol for small icons on light backgrounds. */
  --mark-symbol-navy: url("/aide/assets/brand/daleen-symbol-navy.svg");
  /* White symbol for navy surfaces. */
  --mark-symbol-dark: url("/aide/assets/brand/daleen-symbol-dark.svg");
  /* Product lockup aspect ratio, for aspect-ratio on a sized box. */
  --mark-lockup-ratio: 69.87155705 / 12.20134228;

  /*
     The Genesis table palette. Outside .aide-app on purpose: a table opts in
     with .ui-table--genesis and keeps these values while the cards around it
     take the indigo palette below.
  */
  /* Genesis's table header fill, measured from its own stylesheet. */
  --g-table-header-bg: #dfe5ed;
  /* Header type. Genesis navy, which is what makes the band read as a header rather than as a shaded first row. */
  --g-table-header-text: #07185a;
  /* Under the header band. Heavier than a body rule so the head detaches when the body scrolls. */
  --g-table-header-rule: #8fa6c4;
  /* Body type. Near-black rather than navy: navy on white at 12px is the one pairing here that reads tiring over ten rows. */
  --g-table-body-text: #0a1438;
  /* Every rule inside the body. */
  --g-table-grid: #c7d3e4;
  /* Zebra. Two points off white -- enough to track a row across nine columns, not enough to compete with hover, which is the shading that means something. */
  --g-table-row-alt: #f7f9fc;
  /* The identifying column, tinted so the eye finds its place after scrolling sideways. */
  --g-table-key-col: #eef2f8;
  /* Row hover. */
  --g-table-row-hover: #e8eef7;
  /* Row selection. Stronger than hover because it persists. */
  --g-table-row-selected: #d8e4f5;
}

/*
   The application palette. Doc 150 applies to what a customer signs into or
   receives -- console, onboarding, report -- and the marketing site keeps navy.
   A surface opts in with class="aide-app" on its body.
*/
.aide-app {
  /* Cards and panels. */
  --surface: var(--white);
  /* Recessed fills and row hover. */
  --soft: var(--canvas);
  /* Table header band, total row. */
  --soft-2: var(--canvas);
  /* Every border. */
  --line: var(--hairline);
  /* Every table rule. */
  --grid: var(--hairline);
  /* The unfilled part of a progress pip or score bar. Found by measuring the rendered page: it was the one navy-derived value still resolving on the onboarding flow. */
  --track: var(--hairline);
  /* Body text. */
  --ink: var(--body);
  /* Headings and identifier cells. The strongest type is #1a1d27 here, not #07185a. */
  --navy: var(--body);
  /* Captions, meta, table headers. */
  --muted: var(--secondary);
  /* The value worth reading first. */
  --emphasis: var(--indigo);
  /* Accents and focus rings. */
  --blue: var(--indigo);
  /* Accent type. */
  --blue-dark: var(--indigo);

  /* Chart card background. */
  --surface-1: var(--white);
  /* The report page. */
  --plane: var(--canvas);
  /* Headings and figures. */
  --text-primary: var(--body);
  /* Labels and axis text. */
  --text-secondary: var(--field-label);
  /* The quietest tier. */
  --text-muted: var(--secondary);
  /* Chart gridlines. */
  --gridline: var(--hairline);
  /* The axis itself. */
  --baseline: var(--rule);
  /* Card borders. */
  --border: var(--hairline);
  /* First data series. */
  --series-1: var(--indigo);
  /* Second data series. */
  --series-2: var(--amber);
  /* Critical findings. */
  --critical: var(--red);
  /* Warnings. Was #fab219, which failed AA as type. */
  --warning: var(--amber);
  /* Sanctioned, passing, no drift. */
  --good: var(--green);

  background: var(--canvas);
  color: var(--body);
}
