/* ============================================================
   revenueify operations: the tokens, and only the tokens.

   Lifted from demo/public/css/base.css rather than retyped, so the
   operations app and the member app are one product and a change
   to the brand lands in two files rather than twenty.

   Brand: BUILD-SYSTEM.md v2.0. Montserrat only. White sections,
   #f9f7f4 cards, #1a1a1a dark, gradient CTA with the white arrow
   chip. Tan and cream are banned.

   Three states, not two. An explicit choice stamps data-theme on
   the root; the default "system" setting stamps nothing, so most
   viewers only ever hit the media query. Every token is declared
   in the bare :root first, then redefined in both places.

   TWO FIXES the member app has not had, measured in handoff 01:

   1. --muted is the same #8a8378 in light and dark, so a caption
      that passes contrast on white fails on #1a1a1a. It swaps here.
   2. There were no tint tokens, so every soft background in the
      mockups was an inline color-mix. They are named here.
   ============================================================ */

:root{
  /* brand, fixed in both themes */
  --gold:#fdb745; --red:#ee2f4c; --amber:#f4a460; --brown:#6b4423;
  --grad:linear-gradient(95deg,#fdb745 -28.7%,#ee2f4c 127.95%);

  /* surfaces */
  --bg:#ffffff; --panel:#f9f7f4; --card:#f9f7f4; --raise:#ffffff;

  /* ink */
  --head:#1a1a1a; --body:#54575f; --sub:#555555; --muted:#7a746a;
  --hair:#e0e0e0; --link:#6b4423;

  /* semantic, kept away from the accent so "good" never reads as "brand" */
  --ok:#1f7a4d; --warn:#b8621b; --bad:#c0273f;

  /* tints. named once so a soft background is a token, not an inline mix */
  --sel:rgba(238,47,76,.07);
  --tint-ok:rgba(31,122,77,.09);
  --tint-warn:rgba(184,98,27,.09);
  --tint-bad:rgba(238,47,76,.08);

  /* the rail, which is dark in both themes on purpose: it is the frame,
     and a frame that changes colour with the content is a frame you notice */
  --rail:#1a1a1a; --railtx:#c9c5bd; --railon:#ffffff; --railhair:#333130;
  --railsec:#6f6a62; --railhov:rgba(255,255,255,.06); --railon-bg:rgba(255,255,255,.10);
  --fly:#262523; --flyhair:#38352f;

  /* type scale. seven rungs, replacing the twenty six ad hoc font sizes
     handoff 01 counted in the mockups */
  --t-micro:10px; --t-label:11px; --t-small:12.5px; --t-body:13.5px;
  --t-lead:15px; --t-head:22px; --t-page:26px;

  /* radii, by role rather than one value stamped on everything */
  --r-chip:99px; --r-control:10px; --r-card:16px; --r-panel:18px;
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#1a1a1a; --panel:#151515; --card:#2a2a2a; --raise:#232323;
    --head:#ffffff; --body:#cccccc; --sub:#aaaaaa; --muted:#9a948a;
    --hair:#3a3a3a; --link:#f4a460;
    --ok:#5fc28e; --warn:#e9a05a; --bad:#ff7089;
    --sel:rgba(244,164,96,.10);
    --tint-ok:rgba(95,194,142,.12);
    --tint-warn:rgba(233,160,90,.12);
    --tint-bad:rgba(255,112,137,.12);
    --rail:#111111; --railtx:#a8a49c; --railon:#ffffff; --railhair:#2b2b2b;
    --railsec:#77726a;
    --fly:#1e1d1c; --flyhair:#332f2a;
  }
}

:root[data-theme="dark"]{
  --bg:#1a1a1a; --panel:#151515; --card:#2a2a2a; --raise:#232323;
  --head:#ffffff; --body:#cccccc; --sub:#aaaaaa; --muted:#9a948a;
  --hair:#3a3a3a; --link:#f4a460;
  --ok:#5fc28e; --warn:#e9a05a; --bad:#ff7089;
  --sel:rgba(244,164,96,.10);
  --tint-ok:rgba(95,194,142,.12);
  --tint-warn:rgba(233,160,90,.12);
  --tint-bad:rgba(255,112,137,.12);
  --rail:#111111; --railtx:#a8a49c; --railon:#ffffff; --railhair:#2b2b2b;
  --railsec:#77726a;
  --fly:#1e1d1c; --flyhair:#332f2a;
}
