/*
 * Plumbline brand tokens: the Laser palette (ultramarine and signal yellow), chosen by Mike on 8 Oct 2026.
 * Source of truth: the brand guide (plumbline/brand/plumbline-tokens.css in the project folder). Shared by
 * the console, sign-in, rater page, API docs and homepage. Light by default, dark from the system setting,
 * and either can be forced with <html data-theme="light|dark">.
 *
 * Every text pairing clears 4.5:1 on --bg and --surface in both modes; marks clear 3:1. Signal yellow is too
 * pale to be a mark on light grounds: on light it is a fill behind ink text, and the logo bob gets an ink
 * outline (--bob-stroke). Human = the brand colour; the AI judge and Plumbline Assist = teal (--ai, --assist).
 * --forecast marks the forecast and its range on the charts.
 *
 * Neutrals (bg, surface, raised, code, rule, muted, ink) are tinted with the ultramarine: one scale at its OKLCH hue
 * (269.5), chroma 0.005 to 0.064, lightness matched to the earlier greys (Mike, 19 Oct 2026; concept in
 * plumbline/design-concepts/tinted-neutrals). --forecast stays a plain cool grey on purpose: the ultramarine means
 * "human" on the charts, so the forecast and automatic events must not look like it.
 *
 * Type: Schibsted Grotesk ExtraBold for the wordmark and headings, Onest for body text, Martian Mono for ids,
 * numbers and labels. All three are variable fonts under the SIL OFL (fonts/LICENSE.txt).
 */
@font-face {
  font-family: "Schibsted Grotesk";
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url("/assets/fonts/schibsted-grotesk-latin-0a37e4d0.woff2") format("woff2");
}
@font-face {
  font-family: "Onest";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/assets/fonts/onest-latin-9debe597.woff2") format("woff2");
}
@font-face {
  font-family: "Martian Mono";
  font-style: normal;
  font-weight: 100 800;
  font-stretch: 75% 112.5%;
  font-display: swap;
  src: url("/assets/fonts/martian-mono-latin-49ce8d69.woff2") format("woff2");
}

:root {
  --bg: #EFF3FF; --surface: #FCFDFF; --raised: #F6F9FF; --ink: #060917; --muted: #4A567C;
  --rule: #D4DCF1; --tint: #E9E9FE; --code: #E9EEFC;
  --accent: #2E2BF5; --on-accent: #FFFFFF; --accent-tint: #E9E9FE;
  --signal: #FFD400; --on-signal: #060917; --bob: #FFD400; --bob-stroke: #060917;
  --human: #2E2BF5; --ai: #00747E;
  --good: #1F7A4A; --warn: #B54708; --bad: #C0213A;
  --forecast: #50546A; --forecast-tint: #E9E9FE;
  --assist: #00747E; --on-assist: #FFFFFF; --assist-tint: #E2F3F4;
  --series-1: #2E2BF5; --series-2: #EB6834; --series-3: #1BAF7A; --series-4: #EDA100;
  --series-5: #E87BA4; --series-6: #008300; --series-7: #9A3FB8; --series-8: #E34948;
  --shadow: rgba(3, 5, 14, .14);

  --f-display: "Schibsted Grotesk", "Onest", system-ui, sans-serif;
  --f-body: "Onest", system-ui, -apple-system, "Segoe UI", sans-serif;
  --f-mono: "Martian Mono", ui-monospace, Menlo, monospace;
  --t-11: 11px; --t-13: 13px; --t-15: 15px; --t-17: 17px; --t-20: 20px;
  --t-24: 24px; --t-30: 30px; --t-42: 42px; --t-56: 56px;

  --s-1: 4px; --s-2: 8px; --s-3: 12px; --s-4: 16px; --s-5: 24px; --s-6: 32px; --s-7: 48px; --s-8: 64px;
  --r-sm: 3px; --r-md: 6px; --r-lg: 10px; --r-xl: 12px;
  --e-1: 0 1px 2px var(--shadow); --e-2: 0 6px 20px var(--shadow);
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #060917; --surface: #10162A; --raised: #151D34; --ink: #E9EEFC; --muted: #919EC1;
    --rule: #202844; --tint: #1C1C45; --code: #090E1F;
    --accent: #8483FF; --on-accent: #060917; --accent-tint: #1C1C45;
    --signal: #FFD400; --on-signal: #060917; --bob: #FFD400; --bob-stroke: none;
    --human: #8483FF; --ai: #3CCFD8;
    --good: #4CC38A; --warn: #F38744; --bad: #FF6B7E;
    --forecast: #9A9DB2; --forecast-tint: #1C1C45;
    --assist: #3CCFD8; --on-assist: #060917; --assist-tint: #0B2326;
    --series-1: #5C5BFF; --series-2: #D95926; --series-3: #199E70; --series-4: #C98500;
    --series-5: #D55181; --series-6: #008300; --series-7: #B06BD6; --series-8: #E66767;
    --shadow: rgba(0, 0, 0, .55);
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --bg: #060917; --surface: #10162A; --raised: #151D34; --ink: #E9EEFC; --muted: #919EC1;
  --rule: #202844; --tint: #1C1C45; --code: #090E1F;
  --accent: #8483FF; --on-accent: #060917; --accent-tint: #1C1C45;
  --signal: #FFD400; --on-signal: #060917; --bob: #FFD400; --bob-stroke: none;
  --human: #8483FF; --ai: #3CCFD8;
  --good: #4CC38A; --warn: #F38744; --bad: #FF6B7E;
  --forecast: #9A9DB2; --forecast-tint: #1C1C45;
  --assist: #3CCFD8; --on-assist: #060917; --assist-tint: #0B2326;
  --series-1: #5C5BFF; --series-2: #D95926; --series-3: #199E70; --series-4: #C98500;
  --series-5: #D55181; --series-6: #008300; --series-7: #B06BD6; --series-8: #E66767;
  --shadow: rgba(0, 0, 0, .55);
  color-scheme: dark;
}
