/* The Iris Daily — design tokens (primitives → semantic). Colours sampled from Faaiz's reference JPGs; see handoff.md §1. */
@font-face{font-family:"Fraunces";src:url(../assets/fonts/Fraunces-Variable.ttf) format("truetype");font-weight:100 900;font-display:swap}
@font-face{font-family:"Bricolage Grotesque";src:url(../assets/fonts/Bricolage-Variable.ttf) format("truetype");font-weight:200 800;font-display:swap}
@font-face{font-family:"Space Mono";src:url(../assets/fonts/SpaceMono-Regular.ttf) format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:"Space Mono";src:url(../assets/fonts/SpaceMono-Bold.ttf) format("truetype");font-weight:700;font-display:swap}
:root{
  /* primitives */
  --p-paper-50:#F6F8EF; --p-paper-100:#EEF2E3; --p-paper-200:#E2E8D3; --p-paper-300:#D9E1C9; --p-white:#FCFDF8;
  --p-ink-900:#14141F; --p-ink-700:#3A3C47; --p-ink-600:#4E515C; --p-ink-400:#8A8D96;
  --p-indigo-900:#211C68; --p-indigo-700:#302A90; --p-indigo-600:#352D94; --p-indigo-100:#E4E2F6;
  --p-green-900:#0B3D22; --p-green-700:#085B31; --p-green-600:#1E6B3F; --p-green-100:#DCEBD3;
  --p-lime-500:#8FC152; --p-lime-300:#B4D28A; --p-lime-100:#E6F0D4;
  --p-red-700:#B42318; --p-red-600:#C8321F; --p-red-100:#FBE3DD;
  --p-night-900:#121026;
  /* semantic */
  --bg-page:var(--p-paper-100); --bg-card:var(--p-white); --bg-sunken:var(--p-paper-50); --bg-inverse:var(--p-night-900);
  --text-strong:var(--p-ink-900); --text-body:var(--p-ink-700); --text-muted:var(--p-ink-600);
  --text-brand:var(--p-indigo-700); --text-accent:var(--p-green-700); --text-danger:var(--p-red-700); --text-on-inverse:var(--p-lime-500); --text-on-brand:#FFFFFF;
  --rule-strong:var(--p-ink-900); --rule-soft:#C9D1B8; --rule-contour:var(--p-paper-300);
  --fill-highlight:var(--p-lime-300); --fill-brand:var(--p-indigo-700); --fill-accent:var(--p-green-700); --fill-lime:var(--p-lime-500);
  --status-paid-fg:var(--p-green-700); --status-paid-bg:var(--p-green-100);
  --status-pending-fg:var(--p-indigo-700); --status-pending-bg:var(--p-indigo-100);
  --status-overdue-fg:var(--p-red-700); --status-overdue-bg:var(--p-red-100);
  --status-corrected-fg:var(--p-ink-900); --status-corrected-bg:#ECECEA;
  /* type */
  --font-display:"Fraunces",Georgia,serif; --font-head:"Bricolage Grotesque","Helvetica Neue",Arial,sans-serif; --font-mono:"Space Mono",ui-monospace,Menlo,monospace;
  --fs-masthead:4.5rem; --fs-h1:2.75rem; --fs-h2:1.75rem; --fs-h3:1.25rem; --fs-money-xl:2.5rem; --fs-body:0.9375rem; --fs-small:0.8125rem; --fs-label:0.75rem;
  /* space (8pt, 4pt half steps) */
  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:24px; --s-6:32px; --s-7:48px; --s-8:64px;
  /* borders, radius, elevation */
  --bw-heavy:2.5px; --bw:1.5px; --bw-hair:1px; --radius:2px; --radius-pill:999px;
  --shadow-1:3px 3px 0 var(--p-ink-900);
  --focus:0 0 0 3px var(--p-paper-100),0 0 0 6px var(--p-indigo-700);
  --tap:44px; --container:1376px;
}
@media (max-width:900px){:root{--fs-masthead:3.25rem;--fs-h1:2.125rem;--fs-h2:1.5rem}}
@media (max-width:560px){:root{--fs-masthead:2rem;--fs-h1:1.75rem;--fs-h2:1.375rem;--fs-money-xl:2rem;--fs-body:0.9375rem}}
/* Figures font (added 2 Nov 2026): IBM Plex Mono, clearer 3/5/6/8/9 than Space Mono at small sizes; monospaced = tabular */
@font-face{font-family:"IBM Plex Mono";src:url(../assets/fonts/IBMPlexMono-Regular.ttf) format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url(../assets/fonts/IBMPlexMono-Medium.ttf) format("truetype");font-weight:500;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url(../assets/fonts/IBMPlexMono-SemiBold.ttf) format("truetype");font-weight:600 700;font-display:swap}
:root{--font-figures:"IBM Plex Mono",ui-monospace,Menlo,monospace;--fs-figure:.9375rem}
