/* Abacus design tokens — adapted from arcsystem colors_and_type.css.
   LIGHT by default (no OS dark auto-switch). Orange-anchored; ink + paper scale;
   gear accents used sparingly for status/tiers. Shared by the editor and public themes. */
@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@400;500;600;700;800&family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&family=Rubik:wght@400;500;600;700&display=swap');

:root {
  /* brand */
  --brand-orange: #FF7F00; --brand-orange-deep: #E5650A; --brand-orange-soft: #FFE7CC; --brand-orange-wash: #FFF6EC;
  /* ink */
  --ink-1000:#0B0E14; --ink-900:#14181F; --ink-800:#1F242E; --ink-700:#2E3440; --ink-600:#4A5260;
  --ink-500:#6B7280; --ink-400:#9AA1AD; --ink-300:#C7CCD4; --ink-200:#E2E6EB; --ink-150:#ECEEF2;
  --ink-100:#F4F5F7; --ink-50:#FAFAFB;
  /* paper */
  --paper:#FFFFFF; --paper-warm:#FAF8F4; --paper-warmer:#F4EFE6;
  /* gear accents */
  --gear-yellow:#FFC000; --gear-yellow-deep:#C99500; --gear-red:#E5342B; --gear-red-deep:#B92019;
  --gear-blue:#0E6FBE; --gear-blue-deep:#0A5491;
  /* semantic */
  --bg:var(--paper-warm); --bg-elev:var(--paper); --bg-sunken:var(--ink-100); --bg-inverse:var(--ink-900);
  --fg:var(--ink-900); --fg-muted:var(--ink-600); --fg-subtle:var(--ink-500); --fg-inverse:var(--paper);
  --border:var(--ink-200); --border-strong:var(--ink-300); --divider:var(--ink-150);
  --accent:var(--brand-orange); --accent-deep:var(--brand-orange-deep); --accent-soft:var(--brand-orange-soft);
  --chip:var(--ink-100);
  --success:#2F8F3E; --warning:var(--gear-yellow-deep); --danger:var(--gear-red-deep); --info:var(--gear-blue);
  --ok:#1f6b3a; --ok-bg:#eafaf0; --warn:#8a1f1f; --warn-bg:#fdecec;
  /* fonts */
  --font-display:"Archivo","Inter",system-ui,sans-serif;
  --font-body:"Rubik","Inter",system-ui,sans-serif;
  --font-serif:"Libre Baskerville",Georgia,"Times New Roman",serif;  /* long-form article prose */
  --font-mono:"Cousine",Consolas,ui-monospace,monospace;
  /* radii */
  --r-sm:4px; --r-md:6px; --r-lg:8px; --r-xl:12px; --r-2xl:16px; --r-pill:999px;
  /* shadows */
  --shadow-xs:0 1px 2px rgba(15,20,30,.06);
  --shadow-sm:0 2px 6px rgba(15,20,30,.06),0 1px 2px rgba(15,20,30,.04);
  --shadow-md:0 8px 20px -8px rgba(15,20,30,.16),0 2px 6px rgba(15,20,30,.05);
  --shadow-lg:0 24px 48px -20px rgba(15,20,30,.22),0 4px 10px rgba(15,20,30,.06);
  --shadow-focus:0 0 0 3px rgba(255,127,0,.30);
  /* motion */
  --ease-out:cubic-bezier(.22,.61,.36,1); --dur-fast:120ms; --dur-base:200ms;
}

/* Dark theme (opt-in via data-theme="dark" — light is the default). */
:root[data-theme="dark"] {
  --bg:#0F1319; --bg-elev:#1B2027; --bg-sunken:#0A0D12; --paper:#1B2027; --paper-warm:#0F1319; --paper-warmer:#232A33;
  --fg:#E7EAF0; --fg-muted:#9AA4B2; --fg-subtle:#6B7686;
  --border:#2A313B; --border-strong:#3A424E; --divider:#232A33; --chip:#232A33;
  --accent:#FF8C1A; --accent-deep:#FFA64D; --accent-soft:#3A2A18; --brand-orange-wash:#221913;
  --ok:#7fe0a3; --ok-bg:#12331f; --warn:#f3b5b5; --warn-bg:#3a1717;
}
/* High contrast — stronger borders + full-strength muted text. */
:root[data-contrast="high"] { --border:#111; --border-strong:#000; --fg-muted:var(--ink-800); --fg-subtle:var(--ink-700); }
:root[data-theme="dark"][data-contrast="high"] { --border:#fff; --border-strong:#fff; --fg-muted:#F2F4F8; --fg-subtle:#D8DEE6; }
