/* Work Zone brand v2 — LIGHT-first, mono-blue.
   Overrides the Modernist tokens with the Work Zone palette while keeping the
   structural grammar (grid, 2px rules, Archivo, zero radius, flush-left).
   Loaded LAST on every page so these :root values win the cascade. */

:root {
  --color-bg: #f6f8fb;
  --color-surface: #ffffff;
  --color-text: #1c2637;
  --color-divider: #e2e8f2;

  /* azure accent ramp (base 500 = #2f7fd1), deep step 700 = navy #1c3d6e */
  --color-accent: #2f7fd1;
  --color-accent-100: #eaf2fb;
  --color-accent-200: #cfe1f6;
  --color-accent-300: #a9c9ee;
  --color-accent-400: #6ea6e0;
  --color-accent-500: #2f7fd1;
  --color-accent-600: #2668ad;
  --color-accent-700: #1c3d6e;
  --color-accent-800: #163256;
  --color-accent-900: #10233c;

  --color-accent-2: #2f7fd1;
  --color-accent-2-100: #eaf2fb;
  --color-accent-2-200: #cfe1f6;
  --color-accent-2-300: #a9c9ee;
  --color-accent-2-400: #6ea6e0;
  --color-accent-2-500: #2f7fd1;
  --color-accent-2-600: #2668ad;
  --color-accent-2-700: #1c3d6e;
  --color-accent-2-800: #163256;
  --color-accent-2-900: #10233c;

  --color-neutral-100: #eef2f7;
  --color-neutral-200: #e2e8f2;
  --color-neutral-300: #cfd7e4;
  --color-neutral-400: #aab6c8;
  --color-neutral-500: #8593a8;
  --color-neutral-600: #667389;
  --color-neutral-700: #4b586d;
  --color-neutral-800: #333f52;
  --color-neutral-900: #1c2637;

  /* functional signal colors (from the product brief) */
  --sig-op: #177a4b;   --sig-op-bg: #ecf7f1;
  --sig-warn: #c23a3a; --sig-warn-bg: #fdf0f0;
  --sig-dir: #8a6a16;  --sig-dir-bg: #fbf6e9;
}

/* softer surface on the near-white ground */
body { background: var(--color-bg); }

/* — signal marks recolored to the three functional signal colors — */
.mark.op { background: var(--sig-op); border: 0; }
.mark.warn { background: var(--sig-warn); }
.mark.dir { background: var(--sig-dir); transform: none; }

/* signal column headers carry their signal color (app + landing board) */
.sigcols .sigcol:nth-of-type(1) > .h { color: var(--sig-op); }
.sigcols .sigcol:nth-of-type(2) > .h { color: var(--sig-warn); }
.sigcols .sigcol:nth-of-type(3) > .h { color: var(--sig-dir); }
.sigcols .sigcol:nth-of-type(1) { border-top: 3px solid var(--sig-op); }
.sigcols .sigcol:nth-of-type(2) { border-top: 3px solid var(--sig-warn); }
.sigcols .sigcol:nth-of-type(3) { border-top: 3px solid var(--sig-dir); }

.board-cols .board-col:nth-of-type(1) .col-h { color: var(--sig-op); }
.board-cols .board-col:nth-of-type(2) .col-h { color: var(--sig-warn); }
.board-cols .board-col:nth-of-type(3) .col-h { color: var(--sig-dir); }

/* brief signal headings use the same marks/colors — inherit automatically */

/* — freshness / alert bar reads as a warning (red), not azure — */
.freshbar { background: var(--sig-warn-bg); border-color: var(--sig-warn); }
.freshbar svg { stroke: var(--sig-warn); }
.freshbar b { color: var(--sig-warn); }

/* — the poster close & login aside run as a deep NAVY field (not azure) — */
.close { background: var(--color-accent-700); }
.aside { background: var(--color-accent-700); }
.tier.featured { background: var(--color-accent-700); }

/* channel labels: keep the ad highlight in azure, others as ink outlines */
.clabel.ads { border-color: var(--color-accent); color: var(--color-accent-700); }
