/*
  Aqonix design tokens ("Signal" theme).
  Primitives first, then semantic roles. Components and pages reference the
  semantic roles only, so a theme can be swapped by redefining this file.
  Fonts are self-hosted (copied from @fontsource packages at build time);
  no third-party font requests are made.
*/

@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;src:url("../fonts/inter-latin-wght-normal.woff2") format("woff2-variations")}
@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/instrument-serif-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;src:url("../fonts/instrument-serif-latin-400-italic.woff2") format("woff2")}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:100 800;font-display:swap;src:url("../fonts/jetbrains-mono-latin-wght-normal.woff2") format("woff2-variations")}

:root{
  /* ---- Primitives: ink (night to paper) ---- */
  --aq-ink-1000:#05070c;
  --aq-ink-950:#0a0d14;
  --aq-ink-900:#10141f;
  --aq-ink-850:#141927;
  --aq-ink-800:#171b26; /* original brand ink */
  --aq-ink-700:#232a3b;
  --aq-ink-600:#343d52;
  --aq-slate-500:#5b6479;
  --aq-slate-400:#8a93a6;
  --aq-slate-300:#b8c0ce;
  --aq-slate-200:#dce1e7;
  --aq-slate-100:#eef1f5;
  --aq-paper:#f7f9fc;
  --aq-white:#ffffff;

  /* ---- Primitives: signal blue (brand accent family) ---- */
  --aq-signal-50:#f2f9ff;
  --aq-signal-100:#e3f2ff;
  --aq-signal-200:#c8e7fc;
  --aq-signal-300:#9ed5ff; /* original brand accent */
  --aq-signal-400:#6bbcf7;
  --aq-signal-500:#3a9ae6;
  --aq-signal-600:#2577c2;
  --aq-signal-700:#1b5a94;
  --aq-signal-800:#123e68;

  /* ---- Primitives: iris (AI / agent accent, used sparingly) ---- */
  --aq-iris-200:#d9d6ff;
  --aq-iris-300:#b9b3ff;
  --aq-iris-400:#958cf7;
  --aq-iris-500:#7466e8;
  --aq-iris-700:#473bb0;

  /* ---- Status (reserved: never used as a data series) ---- */
  --aq-status-ok:#3a9ae6;       /* paired with a check icon */
  --aq-status-review:#fab219;   /* paired with an eye / ! icon */
  --aq-status-missing:#d03b3b; /* paired with a dashed outline + label */
  --aq-status-idle:#8a93a6;

  /* ---- Type ---- */
  --aq-font-sans:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --aq-font-display:"Instrument Serif",ui-serif,Georgia,"Times New Roman",serif;
  --aq-font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;

  --aq-text-2xs:.6875rem; /* 11 */
  --aq-text-xs:.75rem;    /* 12 */
  --aq-text-sm:.875rem;   /* 14 */
  --aq-text-md:1rem;      /* 16 */
  --aq-text-lg:1.1875rem; /* 19 */
  --aq-text-xl:1.5rem;    /* 24 */
  --aq-text-2xl:clamp(1.75rem,1.2rem + 2vw,2.5rem);
  --aq-text-3xl:clamp(2.25rem,1.4rem + 3.4vw,4rem);
  --aq-text-hero:clamp(2.75rem,1.2rem + 6vw,6.5rem);

  --aq-leading-tight:1.02;
  --aq-leading-snug:1.2;
  --aq-leading-body:1.6;
  --aq-tracking-tight:-.035em;
  --aq-tracking-label:.14em;

  /* ---- Space (4px grid) ---- */
  --aq-space-1:4px;--aq-space-2:8px;--aq-space-3:12px;--aq-space-4:16px;--aq-space-5:20px;
  --aq-space-6:24px;--aq-space-8:32px;--aq-space-10:40px;--aq-space-12:48px;--aq-space-16:64px;
  --aq-space-24:96px;--aq-space-32:128px;
  --aq-gutter:clamp(16px,5vw,64px);
  --aq-max:1280px;

  /* ---- Radius, elevation, motion ---- */
  --aq-radius-xs:4px;--aq-radius-sm:8px;--aq-radius-md:12px;--aq-radius-lg:18px;--aq-radius-xl:26px;--aq-radius-pill:999px;
  --aq-shadow-1:0 1px 2px rgb(10 13 20 / .06),0 2px 8px rgb(10 13 20 / .05);
  --aq-shadow-2:0 8px 24px rgb(10 13 20 / .10),0 2px 6px rgb(10 13 20 / .06);
  --aq-shadow-3:0 30px 80px rgb(10 13 20 / .22),0 8px 24px rgb(10 13 20 / .10);
  --aq-glow:0 0 0 1px rgb(158 213 255 / .18),0 20px 60px rgb(58 154 230 / .20);
  --aq-ease-out:cubic-bezier(.16,1,.3,1);
  --aq-ease-in-out:cubic-bezier(.65,0,.35,1);
  --aq-dur-1:160ms;--aq-dur-2:320ms;--aq-dur-3:700ms;--aq-dur-4:1200ms;

  /* ---- Semantic roles: light surfaces (default) ---- */
  --aq-bg:var(--aq-paper);
  --aq-surface:var(--aq-white);
  --aq-surface-2:var(--aq-slate-100);
  --aq-border:var(--aq-slate-200);
  --aq-text:var(--aq-ink-800);
  --aq-text-2:#4b5467;
  --aq-text-3:#6b7488;
  --aq-accent:var(--aq-signal-600);
  --aq-accent-soft:var(--aq-signal-100);
  --aq-focus:#276b9e;
  /* Logo (Keystone): roof, rising cash-flow line, ground line */
  --aq-logo-roof:var(--aq-signal-600);
  --aq-logo-line:var(--aq-ink-800);
  --aq-logo-base:var(--aq-signal-400);

  /* ---- Data-viz roles (validated for the light app-window surface) ---- */
  /* Categorical order validated (CVD + normal-vision) on white: income, expense, market. */
  --aq-viz-income:#2a78d6;
  --aq-viz-expense:#eb6834;
  --aq-viz-market:#1baf7a;
  --aq-viz-net:var(--aq-signal-700);
  --aq-viz-grid:#e8ecf1;
  --aq-viz-axis:#8a93a6;
}

/* Dark surfaces: opt in per region with .aq-dark (the product "night" look). */
.aq-dark{
  --aq-bg:var(--aq-ink-950);
  --aq-surface:var(--aq-ink-850);
  --aq-surface-2:var(--aq-ink-700);
  --aq-border:rgb(158 213 255 / .14);
  --aq-text:#f3f6fb;
  --aq-text-2:#b8c0ce;
  --aq-text-3:#a1a9b8;
  --aq-accent:var(--aq-signal-300);
  --aq-accent-soft:rgb(158 213 255 / .12);
  --aq-focus:var(--aq-signal-300);
  --aq-logo-roof:var(--aq-signal-300);
  --aq-logo-line:var(--aq-signal-100);
  --aq-logo-base:var(--aq-signal-500);
  --aq-viz-income:#3987e5;
  --aq-viz-expense:#d95926;
  --aq-viz-market:#199e70;
  --aq-viz-net:var(--aq-signal-200);
  --aq-viz-grid:rgb(255 255 255 / .07);
  --aq-viz-axis:#8a93a6;
}
