/* Web theme of the product. Single token system shared by every page.
   Same family as Security Scanner; this product leads with teal where Security Scanner leads with rust. */

/* ---------- Fonts (self-hosted, latin subset) ---------- */
@font-face{font-family:"Fraunces";font-style:normal;font-weight:300 600;font-display:swap;src:url("/fonts/fraunces-300-600.woff2") format("woff2")}
@font-face{font-family:"Fraunces";font-style:italic;font-weight:300;font-display:swap;src:url("/fonts/fraunces-italic-300.woff2") format("woff2")}
@font-face{font-family:"Manrope";font-style:normal;font-weight:400 700;font-display:swap;src:url("/fonts/manrope-400-700.woff2") format("woff2")}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/jetbrains-mono-500.woff2") format("woff2")}

/* ---------- Tokens ----------
   Colors are tokens only: every rule below uses var(--…), so the dark scheme is the two blocks after the light one (docs/brand.md,
   "Light and dark"). The light values are the default. The dark values apply when the system asks for dark and no choice was made
   (prefers-color-scheme, guarded by :root:not([data-theme="light"])), and when the switch chose dark (:root[data-theme="dark"]).
   Both dark blocks hold the same values (tests/test_theme.py). Print is always light: the dark blocks are for the screen only.
   Two kinds of dark-looking tokens: --ink is the color of headings (light in the dark scheme); --band and --ink-2/-3/-line are the
   surfaces of the dark bands (sidebar, sign-in rail, dark panels), which stay dark in both schemes, with --on-dark-* text on them. */
:root{
  color-scheme:light;
  --paper:#F5F2EC;--card:#FFFFFF;--paper-2:#FAF8F3;--tint:#F0EBE1;--line:#E3DED3;--line-2:#DDD8CE;--border:#C9C2B4;
  --ink:#0E1B1F;--ink-soft:#23383E;--text:#17272C;--muted:#4E5F64;--label:#4E5F64;
  --ink-2:#16282E;--ink-3:#23383E;--ink-line:#2E464D;--band:#0E1B1F;--band-line:#0E1B1F;
  --on-dark-strong:#F5F2EC;--on-dark:#B9C8C5;--on-dark-muted:#9FB3B0;--on-dark-faint:#7A8F8B;--on-light:#0E1B1F;--on-accent:#FFFFFF;
  --accent:#1F6B5E;--accent-hover:#174F46;--link:#1F6B5E;--link-hover:#174F46;--focus-ring:rgba(31,107,94,.2);
  --rust:#A64B24;--rust-fill:#A64B24;--sand:#D9C3A5;--teal:#1F6B5E;--mint:#9BD5C2;--teal-tint:#E3F1EE;--teal-line:#B5D6CE;--pick-bg:#F1F7F5;
  --mark-body:#0E1B1F;--mark-cap:#9BD5C2;--mark-point:#1F6B5E;--product:#1F6B5E;
  --fail:#AC3043;--fail-bg:#FBEDEF;--fail-line:#E7C4CA;--danger:#AC3043;--danger-hover:#8C2535;--pass:#246C4B;--pass-bg:#EAF4EE;--pass-line:#BFE0CC;
  --review:#795A12;--review-bg:#FAF3DE;--review-line:#E6D5A6;--unset:#8A5C11;--unset-bg:#FBF2DF;
  --unavailable:#86551C;--unavailable-bg:#FBF0E3;--inconclusive:#885321;--inconclusive-bg:#F9EEE3;--error:#85415E;--error-bg:#F7EAF0;--na:#566571;--na-bg:#EFF2F4;
  --info:#2D5580;--info-bg:#E7F0FA;--diff-before:#7E2433;--diff-before-bg:#FDF6F7;--diff-after:#1B5439;--diff-after-bg:#F2F9F5;
  --placeholder:#7A8A8F;--input-hover:#B3AB9C;--crumb-sep:#8A8272;--backdrop:rgba(14,27,31,.55);--select-arrow:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%234E5F64' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
  --shadow-sm:0 1px 2px rgba(14,27,31,.05);--shadow-md:0 12px 30px rgba(14,27,31,.10);--shadow-lg:0 30px 60px rgba(14,27,31,.12);--shadow-dark:0 40px 80px rgba(14,27,31,.28);
}
@media screen and (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --paper:#0B1417;--card:#132328;--paper-2:#0F1B1F;--tint:#1B2F35;--line:#22383F;--line-2:#2A434B;--border:#3A5760;
    --ink:#F1EEE6;--ink-soft:#CBD6D3;--text:#E1E7E3;--muted:#C6D0CE;--label:#B6C4C1;
    --ink-2:#16282E;--ink-3:#23383E;--ink-line:#2E464D;--band:#060E10;--band-line:#22383F;
    --on-dark-strong:#F5F2EC;--on-dark:#B9C8C5;--on-dark-muted:#9FB3B0;--on-dark-faint:#7A8F8B;--on-light:#0E1B1F;--on-accent:#FFFFFF;
    --accent:#2A8070;--accent-hover:#1F6B5E;--link:#86D1BD;--link-hover:#B3E4D6;--focus-ring:rgba(134,209,189,.32);
    --rust:#E39A73;--rust-fill:#B9532A;--sand:#D9C3A5;--teal:#7CCBB6;--mint:#9BD5C2;--teal-tint:#17332F;--teal-line:#2F6F62;--pick-bg:#152C2B;
    --mark-body:#F1EEE6;--mark-cap:#9BD5C2;--mark-point:#9BD5C2;--product:#86D1BD;
    --fail:#F0A3AE;--fail-bg:#3A1D23;--fail-line:#5E2C35;--danger:#C4485A;--danger-hover:#A93A4B;--pass:#8FD3B0;--pass-bg:#16302A;--pass-line:#2C5A47;
    --review:#E9CD84;--review-bg:#332A12;--review-line:#5A4A1E;--unset:#EDBB69;--unset-bg:#33280F;
    --unavailable:#E2AF74;--unavailable-bg:#35261A;--inconclusive:#DEA978;--inconclusive-bg:#34251A;--error:#E3A6C0;--error-bg:#351E2A;--na:#A9B6BF;--na-bg:#1B2A30;
    --info:#9CC3EA;--info-bg:#17283A;--diff-before:#F0A3AE;--diff-before-bg:#2A171C;--diff-after:#8FD3B0;--diff-after-bg:#13271F;
    --placeholder:#7F9491;--input-hover:#4C6B74;--crumb-sep:#6F8480;--backdrop:rgba(0,0,0,.65);--select-arrow:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23A4B5B2' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
    --shadow-sm:0 1px 2px rgba(0,0,0,.4);--shadow-md:0 12px 30px rgba(0,0,0,.4);--shadow-lg:0 30px 60px rgba(0,0,0,.45);--shadow-dark:0 40px 80px rgba(0,0,0,.5);
  }
}
@media screen{
  :root[data-theme="dark"]{
    color-scheme:dark;
    --paper:#0B1417;--card:#132328;--paper-2:#0F1B1F;--tint:#1B2F35;--line:#22383F;--line-2:#2A434B;--border:#3A5760;
    --ink:#F1EEE6;--ink-soft:#CBD6D3;--text:#E1E7E3;--muted:#C6D0CE;--label:#B6C4C1;
    --ink-2:#16282E;--ink-3:#23383E;--ink-line:#2E464D;--band:#060E10;--band-line:#22383F;
    --on-dark-strong:#F5F2EC;--on-dark:#B9C8C5;--on-dark-muted:#9FB3B0;--on-dark-faint:#7A8F8B;--on-light:#0E1B1F;--on-accent:#FFFFFF;
    --accent:#2A8070;--accent-hover:#1F6B5E;--link:#86D1BD;--link-hover:#B3E4D6;--focus-ring:rgba(134,209,189,.32);
    --rust:#E39A73;--rust-fill:#B9532A;--sand:#D9C3A5;--teal:#7CCBB6;--mint:#9BD5C2;--teal-tint:#17332F;--teal-line:#2F6F62;--pick-bg:#152C2B;
    --mark-body:#F1EEE6;--mark-cap:#9BD5C2;--mark-point:#9BD5C2;--product:#86D1BD;
    --fail:#F0A3AE;--fail-bg:#3A1D23;--fail-line:#5E2C35;--danger:#C4485A;--danger-hover:#A93A4B;--pass:#8FD3B0;--pass-bg:#16302A;--pass-line:#2C5A47;
    --review:#E9CD84;--review-bg:#332A12;--review-line:#5A4A1E;--unset:#EDBB69;--unset-bg:#33280F;
    --unavailable:#E2AF74;--unavailable-bg:#35261A;--inconclusive:#DEA978;--inconclusive-bg:#34251A;--error:#E3A6C0;--error-bg:#351E2A;--na:#A9B6BF;--na-bg:#1B2A30;
    --info:#9CC3EA;--info-bg:#17283A;--diff-before:#F0A3AE;--diff-before-bg:#2A171C;--diff-after:#8FD3B0;--diff-after-bg:#13271F;
    --placeholder:#7F9491;--input-hover:#4C6B74;--crumb-sep:#6F8480;--backdrop:rgba(0,0,0,.65);--select-arrow:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23A4B5B2' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
    --shadow-sm:0 1px 2px rgba(0,0,0,.4);--shadow-md:0 12px 30px rgba(0,0,0,.4);--shadow-lg:0 30px 60px rgba(0,0,0,.45);--shadow-dark:0 40px 80px rgba(0,0,0,.5);
  }
}
/* An explicit light choice needs no tokens of its own (the light values are the default); it only tells the browser. */
:root[data-theme="light"]{color-scheme:light}
:root{
  --font-display:"Fraunces",Georgia,"Times New Roman",serif;
  --font-body:"Manrope","Segoe UI",system-ui,sans-serif;
  --font-mono:"JetBrains Mono",Consolas,"Courier New",monospace;
  --fs-xs:11px;--fs-sm:12px;--fs-md:13px;--fs-base:15px;--fs-lg:16px;--fs-xl:19px;
  --fs-h3:20px;--fs-h2:34px;--fs-h1:44px;--fs-hero:66px;--fs-stat:40px;
  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-7:28px;--sp-8:36px;--sp-9:48px;--sp-10:64px;--sp-11:96px;
  --r-xs:5px;--r-sm:6px;--r:8px;--r-md:10px;--r-lg:14px;--r-xl:20px;--r-pill:999px;
  --gutter:16px;--ease:180ms ease;
}
