/* Ledger tokens as CSS variables, compiled from the system's tokens.json (Paper on :root, Desk on [data-theme="desk"]). Fonts load from ./fonts/. */
/* Ledger webfonts, self-hosted from fonts/. Archivo variable (wdth + wght axes) for everything;
   Courier Prime only for typed values (serials, ZIPs, times, amounts, phone numbers). */
@font-face {
  font-family: "Archivo";
  src: url("fonts/Archivo-Variable.woff2") format("woff2");
  font-weight: 400 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Courier Prime";
  src: url("fonts/CourierPrime-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Courier Prime";
  src: url("fonts/CourierPrime-Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
/* Ledger 1.0 tokens. Generated from tokens/tokens.json (the source); do not edit by hand.
   Paper is the default theme (:root); Desk applies under [data-theme="desk"]. */
:root, [data-theme="paper"] {
  --navy-50: #f8faff;
  --navy-100: #dae1f6;
  --navy-200: #bfc9e5;
  --navy-300: #a5b1d4;
  --navy-400: #8c9ac3;
  --navy-500: #7383b2;
  --navy-600: #5c6ca1;
  --navy-700: #455690;
  --navy-800: #30407f;
  --navy-900: #1d2a6e;
  --navy-950: #060c29;
  --blue-50: #eef1fb;
  --blue-100: #e9ecfa;
  --blue-200: #bbc6f6;
  --blue-300: #8fa0f0;
  --blue-400: #748ae9;
  --blue-500: #5973e1;
  --blue-600: #3f5bd8;
  --blue-700: #2438a8;
  --blue-800: #18267f;
  --blue-900: #0c1659;
  --blue-950: #040635;
  --ink-50: #f9faff;
  --ink-100: #d3d6e4;
  --ink-200: #afb3c9;
  --ink-300: #8c92ae;
  --ink-400: #6b7194;
  --ink-500: #5f668c;
  --ink-600: #4c5580;
  --ink-700: #3a4266;
  --ink-800: #292f4d;
  --ink-900: #191e35;
  --ink-950: #0b0e1f;
  --canary-50: #fcfaf3;
  --canary-100: #fff6c7;
  --canary-200: #ffeea5;
  --canary-300: #ffe680;
  --canary-400: #ffe14d;
  --canary-500: #ddc03d;
  --canary-600: #bca12d;
  --canary-700: #9c821e;
  --canary-800: #7d650e;
  --canary-900: #5e4a00;
  --canary-950: #160e00;
  --pink-50: #fdf9fa;
  --pink-100: #fce3ea;
  --pink-200: #f9c5d2;
  --pink-300: #f4a7b9;
  --pink-400: #db8c9e;
  --pink-500: #c37183;
  --pink-600: #aa5769;
  --pink-700: #923d50;
  --pink-800: #7a2238;
  --pink-900: #5a1428;
  --pink-950: #21040b;
  --red-50: #fcf9f9;
  --red-100: #fbe6e4;
  --red-200: #f8b9b2;
  --red-300: #f08a80;
  --red-400: #e36f65;
  --red-500: #d65349;
  --red-600: #c8322b;
  --red-700: #a3241e;
  --red-800: #78110e;
  --red-900: #4f0102;
  --red-950: #270000;
  --edge-control: #858cb2;
  --edge-strong: #9ba3cc;
  --line-2: #cdd1e4;
  --line: #e2e4ee;
  --grey-100: #ecedf2;
  --page: #f4f5f9;
  --white: #ffffff;
  --paper: #fbfaf6;
  --desk: #15161a;
  --desk-rail: #0f1013;
  --desk-card: #1c1e24;
  --desk-hover: #24262d;
  --desk-line: #2a2c33;
  --desk-text: #f4f1ea;
  --desk-muted: #b3aea0;
  --desk-muted-2: #9c978a;
  --desk-control: #6e7590;
  --pink-ink: var(--pink-800);
  --pink-ink-strong: var(--pink-900);
  --amber-ink: var(--canary-900);
  --bg-page: var(--page);
  --bg-surface: var(--white);
  --bg-sunken: #f8f9fc;
  --bg-paper: var(--paper);
  --bg-hover: #e8eaf2;
  --bg-selected: var(--blue-50);
  --text-primary: var(--navy-900);
  --text-secondary: var(--ink-600);
  --text-muted: var(--ink-500);
  --text-placeholder: var(--ink-400);
  --text-link: var(--blue-700);
  --text-value: var(--blue-700);
  --text-on-accent: var(--white);
  --text-on-publish: var(--navy-900);
  --sheet-text: var(--navy-900);
  --sheet-muted: var(--ink-600);
  --sheet-value: var(--blue-700);
  --sheet-rule: var(--navy-900);
  --sheet-line: var(--line-2);
  --border-subtle: var(--line);
  --border-default: var(--line-2);
  --border-control: var(--edge-control);
  --border-draft: var(--edge-strong);
  --accent: var(--blue-700);
  --accent-subtle: var(--blue-100);
  --action-publish: var(--canary-400);
  --accent-hover: var(--blue-800);
  --accent-active: var(--blue-900);
  --publish-hover: var(--canary-300);
  --publish-active: var(--canary-500);
  --copilot-bg: var(--canary-300);
  --copilot-tint: var(--canary-100);
  --focus-ring: var(--blue-700);
  --focus-halo: #1d2a6e00;
  --stamp-approve: var(--blue-700);
  --stamp-deny: var(--red-600);
  --stamp-neutral: var(--ink-500);
  --serial: var(--red-600);
  --status-live-bg: var(--blue-100);
  --status-live-fg: var(--blue-700);
  --status-needs-bg: var(--red-100);
  --status-needs-fg: var(--red-700);
  --status-backup-bg: var(--pink-100);
  --status-backup-fg: var(--pink-ink);
  --status-off-bg: var(--grey-100);
  --status-off-fg: var(--ink-600);
  --status-draft-bg: var(--white);
  --status-draft-fg: var(--ink-600);
  --status-copilot-bg: var(--canary-100);
  --status-copilot-fg: var(--amber-ink);
  --viz-1: #3f5bd8;
  --viz-2: #d94b7a;
  --viz-3: #c27a00;
  --viz-4: #0f9a78;
  --viz-5: #5b3fa8;
  --viz-other: #b4b9ce;
  --viz-grid: #eeeff4;
  --viz-baseline: #d9dce8;
  --viz-hover: #eef1fb;
  --viz-track: #dde1f1;
  --shadow-e1: 0 1px 2px rgba(15,18,34,.06);
  --shadow-e2: 0 18px 36px -24px rgba(0,0,0,.85);
  --shadow-e3: 0 10px 24px -10px rgba(15,18,34,.45);
}
[data-theme="desk"] {
  --pink-ink: var(--pink-800);
  --pink-ink-strong: var(--pink-900);
  --amber-ink: var(--canary-900);
  --bg-page: var(--desk);
  --bg-surface: var(--desk-card);
  --bg-sunken: var(--desk-rail);
  --bg-paper: var(--paper);
  --bg-hover: var(--desk-hover);
  --bg-selected: #262b45;
  --text-primary: var(--desk-text);
  --text-secondary: var(--desk-muted);
  --text-muted: var(--desk-muted-2);
  --text-placeholder: var(--desk-muted-2);
  --text-link: var(--blue-300);
  --text-value: var(--blue-300);
  --text-on-accent: var(--navy-900);
  --text-on-publish: var(--navy-900);
  --sheet-text: var(--navy-900);
  --sheet-muted: var(--ink-600);
  --sheet-value: var(--blue-700);
  --sheet-rule: var(--navy-900);
  --sheet-line: var(--line-2);
  --border-subtle: var(--desk-line);
  --border-default: #3a3c44;
  --border-control: var(--desk-control);
  --border-draft: #5c6070;
  --accent: var(--canary-400);
  --accent-subtle: #262b45;
  --action-publish: var(--canary-400);
  --accent-hover: var(--canary-300);
  --accent-active: var(--canary-500);
  --publish-hover: var(--canary-300);
  --publish-active: var(--canary-500);
  --copilot-bg: var(--canary-300);
  --copilot-tint: #3a3313;
  --focus-ring: var(--canary-400);
  --focus-halo: var(--navy-900);
  --stamp-approve: var(--blue-700);
  --stamp-deny: var(--red-600);
  --stamp-neutral: var(--ink-500);
  --serial: var(--red-600);
  --status-live-bg: #222a4d;
  --status-live-fg: #a9b6f5;
  --status-needs-bg: #3a1d1c;
  --status-needs-fg: #f4a39b;
  --status-backup-bg: #3a1f2a;
  --status-backup-fg: #f5b8c8;
  --status-off-bg: var(--desk-line);
  --status-off-fg: #c9c4b8;
  --status-draft-bg: #00000000;
  --status-draft-fg: var(--desk-muted);
  --status-copilot-bg: #3a3313;
  --status-copilot-fg: var(--canary-300);
  --viz-1: #5873e6;
  --viz-2: #d95884;
  --viz-3: #c4860c;
  --viz-4: #1c9f80;
  --viz-5: #8466dc;
  --viz-other: #5a5f70;
  --viz-grid: var(--desk-line);
  --viz-baseline: #3a3c44;
  --viz-hover: #262b45;
  --viz-track: #2a2c33;
}
/* Ledger 1.0 tokens. Generated from tokens/tokens.json (the source); do not edit by hand.
   Paper is the default theme (:root); Desk applies under [data-theme="desk"]. */
:root {
  /* spacing */
  --space-2: 2px;
  --space-4: 4px;
  --space-6: 6px;
  --space-8: 8px;
  --space-10: 10px;
  --space-12: 12px;
  --space-14: 14px;
  --space-16: 16px;
  --space-18: 18px;
  --space-20: 20px;
  --space-24: 24px;
  --space-28: 28px;
  --space-32: 32px;
  --space-40: 40px;
  --space-48: 48px;
  --space-56: 56px;
  --space-64: 64px;
  /* radius */
  --radius-paper: 4px;
  --radius-stamp: 5px;
  --radius-b-button: 6px;
  --radius-control: 10px;
  --radius-segmented: 11px;
  --radius-side-card: 12px;
  --radius-card: 14px;
  --radius-bar: 4px;
  --radius-pill: 999px;
  /* duration */
  --duration-fast: 120ms;
  --duration-base: 200ms;
  --duration-panel: 320ms;
  /* easing */
  --ease-ledger: cubic-bezier(0.16, 1, 0.3, 1);
  /* opacity */
  --opacity-refetch: 0.6;
  /* layout */
  --topbar-height: 64px;
  --sidebar-width: 232px;
  --desk-rail-width: 216px;
  --copilot-column: 340px;
  --inspector-width: 320px;
  --target-min: 44px;
  --sheet-max: 880px;
  /* breakpoint */
  --bp-sm: 560px;
  --bp-md: 720px;
  --bp-lg: 900px;
  --bp-xl: 1180px;
  --bp-2xl: 1440px;
}
/* Ledger 1.0 tokens. Generated from tokens/tokens.json (the source); do not edit by hand.
   Paper is the default theme (:root); Desk applies under [data-theme="desk"]. */
:root {
  --font-sans: "Archivo", "Arial Narrow", sans-serif;
  --font-value: "Courier Prime", "Courier New", monospace;
}
/* Headings */
.display {
  font-family: var(--font-sans);
  font-size: 5rem;
  line-height: 0.92;
  font-weight: 850;
  letter-spacing: -0.01em;
}
.sheet-title {
  font-family: var(--font-sans);
  font-size: 2.75rem;
  line-height: 1.05;
  font-weight: 800;
  letter-spacing: 0;
}
.desk-title {
  font-family: var(--font-sans);
  font-size: 2rem;
  line-height: 1.1;
  font-weight: 800;
  letter-spacing: 0;
}
.h1 {
  font-family: var(--font-sans);
  font-size: 2rem;
  line-height: 1.1;
  font-weight: 800;
  letter-spacing: 0;
}
.h2-sheet {
  font-family: var(--font-sans);
  font-size: 1.625rem;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: 0;
}
.h2-card {
  font-family: var(--font-sans);
  font-size: 1.125rem;
  line-height: 1.3;
  font-weight: 800;
  letter-spacing: 0;
}
.h3 {
  font-family: var(--font-sans);
  font-size: 1.25rem;
  line-height: 1.3;
  font-weight: 800;
  letter-spacing: 0;
}
/* Text */
.body {
  font-family: var(--font-sans);
  font-size: 1rem;
  line-height: 1.5;
  font-weight: 400;
  letter-spacing: 0;
}
.body-dense {
  font-family: var(--font-sans);
  font-size: 0.9375rem;
  line-height: 1.45;
  font-weight: 400;
  letter-spacing: 0;
}
.label {
  font-family: var(--font-sans);
  font-size: 0.875rem;
  line-height: 1.3;
  font-weight: 700;
  letter-spacing: 0;
}
.caption {
  font-family: var(--font-sans);
  font-size: 0.8125rem;
  line-height: 1.3;
  font-weight: 700;
  letter-spacing: 0;
}
/* Typed values */
.value {
  font-family: var(--font-value);
  font-size: 1rem;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: 0;
}
/* Stat and stamp */
.stat-value {
  font-family: var(--font-sans);
  font-size: 2rem;
  line-height: 1.1;
  font-weight: 800;
  letter-spacing: 0;
}
.stamp {
  font-family: var(--font-sans);
  font-size: 1.375rem;
  line-height: 1;
  font-weight: 800;
  letter-spacing: 0.06em;
}
