/* ==========================================================================
   MainSDK — design tokens
   Starter values are brand-neutral. Replace every VALUE for the brand; keep the NAMES.
   Prefs on <html>: data-theme light|dark · data-accent <id> · data-density comfortable|compact
                    data-radius soft|sharp · data-text sm|md|lg · data-motion full|reduced · lang / dir
   Rules: accents never carry status · semantic colours are fixed · no weight 800+
   ========================================================================== */
@import url("fonts.css");

:root{
  /* Surface: HubXero monochrome; neutrals carry the UI */
  --bg:#ffffff; --surface:#ffffff; --surface-2:#fafafa; --well:#f4f4f5; --hover:#f4f4f5;
  --line:#e4e4e7; --line-2:#d4d4d8;
  --ink:#0a0a0a; --ink-2:#27272a; --muted:#52525b; --faint:#6b6b74;
  --on-ink:#fafafa; --scrim:rgba(255,255,255,.86);
  /* Code surfaces stay dark in both themes */
  --code-bg:#0a0a0a; --code-line:#27272a; --code-ink:#d4d4d8; --code-strong:#fafafa; --code-muted:#a1a1aa; --code-accent:#ff563c; --code-crit:#f87171;

  /* Accent: the one red. UI roles only (focus, cursor, selected, links); never body text */
  --accent:#ec3013; --accent-ink:#b8240d; --accent-50:#fdecea; --accent-100:#fbd5cf; --accent-rgb:236,48,19;

  /* Semantics: fixed, never follow the accent. Good is the "fixed" tick */
  --crit:#dc2626; --crit-ink:#b91c1c; --crit-50:#fef2f2;
  --warn:#d97706; --warn-ink:#b45309; --warn-50:#fffbeb;
  --good:#15803d; --good-ink:#166534; --good-50:#f6fdf8;
  --info:#0369a1; --info-ink:#075985; --info-50:#f0f9ff;

  /* Type: Outfit display, Geist interface, Geist Mono code */
  --font:"Geist",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-display:"Outfit","Geist",ui-sans-serif,system-ui,sans-serif;
  --mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --text-scale:1;
  --t-xs:calc(12px * var(--text-scale)); --t-sm:calc(13px * var(--text-scale)); --t-base:calc(15px * var(--text-scale)); --t-md:calc(16px * var(--text-scale)); --t-lg:calc(19px * var(--text-scale)); --t-xl:calc(24px * var(--text-scale));
  --t-2xl:calc(32px * var(--text-scale)); --t-3xl:calc(44px * var(--text-scale)); --t-4xl:calc(58px * var(--text-scale)); --t-5xl:calc(74px * var(--text-scale));

  /* Space (4px base) */
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:20px; --s6:24px; --s7:32px; --s8:40px; --s9:56px; --s10:96px;

  /* Shape: 8 for controls, 12 for cards, hairlines over shadows */
  --r-sm:6px; --r-md:8px; --r-lg:12px; --r-xl:16px; --pill:999px;
  --shadow:0 0 0 1px rgba(10,10,10,.04);
  --shadow-lift:0 1px 2px rgba(10,10,10,.04),0 12px 32px -16px rgba(10,10,10,.18);

  /* Motion */
  --ease:cubic-bezier(.2,.7,.2,1); --spring:cubic-bezier(.3,1.6,.5,1); --dur:.18s;

  /* Layout */
  --sidebar:240px; --topbar:60px; --head-h:64px; --content:1200px; --docs-nav:260px; --docs-toc:220px;
  color-scheme:light;
}

/* Accent options: the brand red by default, mono for people who want none */
[data-accent="mono"]{--accent:#0a0a0a;--accent-ink:#0a0a0a;--accent-50:#f4f4f5;--accent-100:#e4e4e7;--accent-rgb:10,10,10}

[data-theme="dark"]{
  --bg:#0a0a0a; --surface:#111113; --surface-2:#18181b; --well:#18181b; --hover:#1f1f23;
  --line:#27272a; --line-2:#3f3f46;
  --ink:#fafafa; --ink-2:#e4e4e7; --muted:#a1a1aa; --faint:#8b8b94;
  --on-ink:#0a0a0a; --scrim:rgba(10,10,10,.82);
  --code-bg:#000000; --code-line:#27272a; --code-crit:#f87171;
  --accent:#ff563c; --accent-ink:#ff8a75; --accent-50:#2a120d; --accent-100:#3a1810; --accent-rgb:255,86,60;
  --crit:#f87171; --crit-ink:#fca5a5; --crit-50:#2a1416;
  --warn:#fbbf24; --warn-ink:#fcd34d; --warn-50:#2a2110;
  --good:#16a34a; --good-ink:#4ade80; --good-50:#0c1a11;
  --info:#38bdf8; --info-ink:#7dd3fc; --info-50:#0c1f2b;
  --shadow:0 0 0 1px rgba(255,255,255,.04);
  --shadow-lift:0 0 0 1px rgba(255,255,255,.06),0 24px 48px -18px rgba(0,0,0,.85);
  color-scheme:dark;
}
[data-theme="dark"][data-accent="mono"]{--accent:#fafafa;--accent-ink:#fafafa;--accent-50:#18181b;--accent-100:#27272a;--accent-rgb:250,250,250}

/* Density: compact tightens rhythm, never the type scale */
[data-density="compact"]{--s4:12px;--s5:16px;--s6:18px;--s7:24px;--s8:28px;--s9:40px;--s10:56px;--topbar:48px}
/* Radius style */
[data-radius="sharp"]{--r-sm:3px;--r-md:4px;--r-lg:6px;--r-xl:8px}
/* Text size: scales the whole type scale, never the spacing */
[data-text="sm"]{--text-scale:.92}
[data-text="lg"]{--text-scale:1.14}
