/* Loopa Glass design tokens (direction "Ohnisko", round V0). Loaded FIRST.
   Section 1: fonts. Section 2: new tokens (colour, shape, type, motion). Section 3: aliases keeping every old name alive.
   Do not define tokens anywhere else; a second :root block silently overrides this one. */

/* ---- 1. Fonts: self-hosted, latin + latin-ext, variable. Weights used: 400 / 500 / 600 only. ---- */@font-face{font-family:"Bricolage Grotesque";font-style:normal;font-weight:200 800;font-display:swap;
  src:url("/static/glass/fonts/bricolage-grotesque-latin-ext-opsz-normal.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Bricolage Grotesque";font-style:normal;font-weight:200 800;font-display:swap;
  src:url("/static/glass/fonts/bricolage-grotesque-latin-opsz-normal.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Geist";font-style:normal;font-weight:100 900;font-display:swap;
  src:url("/static/glass/fonts/geist-latin-ext-wght-normal.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Geist";font-style:normal;font-weight:100 900;font-display:swap;
  src:url("/static/glass/fonts/geist-latin-wght-normal.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Geist Mono";font-style:normal;font-weight:100 900;font-display:swap;
  src:url("/static/glass/fonts/geist-mono-latin-ext-wght-normal.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Geist Mono";font-style:normal;font-weight:100 900;font-display:swap;
  src:url("/static/glass/fonts/geist-mono-latin-wght-normal.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* Fallback faces sized to the web fonts so a verdict does not jump when the font arrives (local system fonts, no request). */@font-face{font-family:"Bricolage Fallback";src:local("Arial");size-adjust:104%;ascent-override:90%;descent-override:23%;line-gap-override:0%}
@font-face{font-family:"Geist Fallback";src:local("Arial");size-adjust:101%;ascent-override:94%;descent-override:25%;line-gap-override:0%}
@font-face{font-family:"Geist Mono Fallback";src:local("Menlo"),local("Courier New");size-adjust:100%;ascent-override:95%;descent-override:26%;line-gap-override:0%}

:root{
  /* ---- 2a. Layers ---- */
  --well:#04060A;      /* well: tables, charts, code */
  --canvas:#06090E;    /* page */
  --panel:#0D131C;     /* matte panel */
  --raised:#151D29;    /* hover, selected row, field */
  --glass:#0F1620B8;   /* glass, with backdrop-filter; fallback --panel */
  /* text (contrast against --panel: 17.2 / 12.1 / 7.7 / 6.2) */
  --text:#F4F6F9;--text2:#C8D1DD;--muted:#9BA8BB;--faint:#8A96A8;
  /* lines */
  --line:#BED5F01F;--line-strong:#BED5F038;--rim:#ECF5FF2E;
  /* brand and interaction */
  --accent:#A9C8F0;--accent-hi:#D4E6FF;--btn:#F4F6F9;--btn-ink:#0B1119;
  /* severity: -ink for text and icons, -sig for dots, chart fills, borders, light */
  --crit-ink:#FF8A8F;--crit-sig:#FF4D57;
  --high-ink:#FFA36B;--high-sig:#FF7A2F;
  --watch-ink:#F2C14E;--watch-sig:#F2C14E;
  --info-ink:#8FA6CC;--info-sig:#8FA6CC;
  --ok-ink:#6FD6A8;--ok-sig:#35C48B;
  --violet:#B692F0;    /* categorical purple, the one non-severity hue */
  --tint:#C6DAFA;      /* base for hairlines and washes: always colour-mix(in srgb,var(--tint) N%,transparent) */
  --unchecked:#8A96A8;  /* always with hatch, never a fill */
  --hatch:repeating-linear-gradient(135deg,#8A96A833 0 2px,transparent 2px 7px);
  /* shape: 6 chip, 10 control and well, 16 panel, 24 lens only */
  --r-chip:6px;--r-ctl:10px;--r-panel:16px;--r-lens:24px;--r-pill:999px;
  /* new spacing scale (named --space-* because the old --sp-1..5 below are in use at other values) */
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:40px;--space-7:64px;

  /* ---- 2b. Type: three families, 8 steps, weights 400/500/600 ---- */
  --font-display:"Bricolage Grotesque","Bricolage Fallback",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --font-sans:"Geist","Geist Fallback",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --font-mono:"Geist Mono","Geist Mono Fallback",ui-monospace,SFMono-Regular,Menlo,monospace;
  --fw-regular:400;--fw-medium:500;--fw-semi:600;
  --t-verdict:clamp(36px,4.2vw,56px);--t-verdict-lh:1.02;--t-verdict-ls:-.035em;--t-verdict-opsz:96;
  --t-screen:30px;--t-screen-lh:1.1;--t-screen-ls:-.025em;--t-screen-opsz:48;
  --t-section:20px;--t-section-lh:1.25;--t-section-ls:-.015em;--t-section-opsz:24;
  --t-heading:15px;--t-heading-lh:1.35;
  --t-lead:16px;--t-lead-lh:1.5;
  --t-body:14px;--t-body-lh:1.55;
  --t-small:12.5px;--t-small-lh:1.45;
  --t-data:12.5px;--t-data-lh:1.4;--t-readout:32px;--t-readout-lh:1;

  /* ---- 2c. Motion ---- */
  --d-1:120ms;--d-2:200ms;--d-3:320ms;--d-4:520ms;--d-5:900ms;
  --e-out:cubic-bezier(.16,1,.3,1);--e-move:cubic-bezier(.65,0,.35,1);--e-in:cubic-bezier(.5,0,.75,0);--e-snap:cubic-bezier(.3,1.3,.5,1);

  /* ---- 3. Aliases: old names, new values (988 existing var(--...) uses keep working) ---- */
  --surface:var(--panel);--card:var(--panel);
  --line2:var(--line);--meta:var(--muted);
  --critical:var(--crit-ink);--high:var(--high-ink);--watch:var(--watch-ink);--info:var(--info-ink);--ok:var(--ok-ink);--partial:var(--muted);
  --sev-critical:var(--crit-ink);--sev-high:var(--high-ink);--sev-medium:var(--watch-ink);--sev-low:var(--info-ink);--sev-ok:var(--ok-ink);
  --mono:var(--font-mono);
  --fs-verdict:var(--t-verdict);--fs-section:var(--t-section);--fs-body:var(--t-body);--fs-caption:var(--t-small);--fs-mono:var(--t-data);
  --lh-verdict:var(--t-verdict-lh);--lh-section:var(--t-section-lh);--lh-body:var(--t-body-lh);--lh-caption:var(--t-small-lh);
  --r-xs:var(--r-chip);--r-sm:var(--r-ctl);--r-md:var(--r-ctl);--r-lg:var(--r-panel);--r-xl:var(--r-panel);--r-hero:var(--r-lens);
  --ease:var(--e-out);
  /* old spacing 4 / 8 / 16 / 24 / 40: unchanged, because screens use them at these values (V1+ migrates to --space-*) */
  --sp-1:4px;--sp-2:8px;--sp-3:16px;--sp-4:24px;--sp-5:40px;
}
