/* ============================================================
   FreightOmen design tokens — the single source of truth.
   Consumed by app.html (linked) and drawer.css (@import).
   v7 "paper ledger" language: light paper surfaces, navy + amber,
   IBM Plex, hairline rules, zero radius. Honesty hues stay the
   product's language — recalibrated for a light ground.
   ============================================================ */
:root {
  /* surfaces — paper, not pixels */
  --bg:#ECECE6;
  --surface-1:#FFFFFF;
  --surface-2:#F0F0EA;
  --surface-3:#E3E3DB;
  --line:#CCCCC5;
  --line-strong:#B4B4AB;
  --text:#14202E;
  --dim:#5A6572;
  --faint:#8A99A8;

  /* brand + honesty semantics */
  --navy:#1B3A5C;
  --brand:#D97A00;
  --sourced:#1E7A3C;
  --inferred:#B26A00;
  --analog:#1B5FA8;
  --lens:#D97A00;              /* persona accent, swapped by lens */
  --accent:var(--lens);        /* legacy alias — rules referencing --accent now resolve */

  /* elevation — a ledger sits flat; borders carry the structure */
  --shadow-1:0 1px 2px rgba(20,32,46,.05);
  --shadow-2:0 2px 8px rgba(20,32,46,.10), 0 8px 24px rgba(20,32,46,.06);
  --shadow-3:0 4px 12px rgba(20,32,46,.12), 0 16px 48px rgba(20,32,46,.10);

  /* radius — v7: everything is square */
  --r-sm:0; --r-md:0; --r-lg:0; --r-xl:0;

  /* spacing */
  --space-1:4px; --space-2:8px; --space-3:12px;
  --space-4:16px; --space-5:24px; --space-6:32px;

  /* motion */
  --ease:cubic-bezier(.2,.8,.2,1);
  --t-fast:150ms;
  --t-med:240ms;

  /* type — brand stacks */
  --font-display:'IBM Plex Sans',system-ui,sans-serif;
  --font-body:'IBM Plex Sans',system-ui,sans-serif;
  --font-mono:'IBM Plex Mono',ui-monospace,monospace;
}

/* v7 signature: no rounded corners anywhere. The .ring exception keeps
   the boot spinner a circle — a spinning square reads as a glitch. */
*:not(.ring){border-radius:0!important}

/* numbers are ALWAYS mono + tabular */
.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}

/* one focus language everywhere */
:focus-visible{outline:2px solid var(--navy);outline-offset:2px}

/* touch: no 300ms double-tap-zoom delay on anything tappable */
button,a,select,input,textarea,summary,[role="button"],[tabindex]{touch-action:manipulation}

/* motion respect: entrance animations and transitions die here */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
}
