/*
 * LINEHOUND v1 design tokens -- values transcribed verbatim from
 * design/linehound-v1/LINEHOUND Design System Handoff.dc.html section 02
 * (color), 03 (type), 04 (spacing/geometry/radii), 08 (motion). This file
 * is the contract; nothing here is invented. Amendments belong in that
 * handoff document, not silently in this file (see its closing section).
 *
 * Chamfers replace border-radius everywhere except the 42px mobile
 * device-frame radius: components set `--r` and apply the `.chamfer`
 * utility from base.css rather than `border-radius`.
 */

:root {
  color-scheme: dark;

  /* ---- ground and surface -------------------------------------- */
  --ground: #0B0C0E;
  --rail: #0D0E11;
  --rail-top: #14161A;
  --tile-base: #0E1013;
  --surface-1-a: rgba(255, 255, 255, .045);
  --surface-1-b: rgba(255, 255, 255, .012);
  --edge-1: rgba(255, 255, 255, .07);
  --scanline: rgba(255, 255, 255, .03);
  --carbon: rgba(255, 255, 255, .026);

  /* ---- hot red: the money moment (reserved -- price advantage only) */
  --money: #FF3D57;
  --money-2: #FF7A45; /* retired (gradients) -- kept, still referenced outside foundation; use --primary for new rules */
  --money-lit: #FF6274; /* retired as a TEXT color (under 4.5:1) -- kept, still referenced outside foundation */
  --money-soft: #FF9AA6; /* retired as a TEXT color (under 4.5:1) -- kept, still referenced outside foundation */
  --money-label: #FFB3BD;
  --money-ink: #22060A;

  /* ---- ice cyan: live, changed, analytical (reserved) ------------ */
  --live: #00E0FF;
  --live-2: #0090C8;
  --live-lit: #A8F4FF;
  --live-label: #9FE9F5;
  --live-badge: #8FE9FA;
  --live-ink: #03222B;

  /* ---- text -------------------------------------------------------*/
  --text-hi: #F6F7FA;
  --text: #F2F4F8;
  --text-2: #D6DBE4;
  --text-3: #B9C0CC;
  --text-mute: #8A919E;
  --text-dim: #6F7682; /* retired as a TEXT color (under 4.5:1) -- kept, still referenced outside foundation */
  /* same contrast lift as the --v-t5..t7 rungs below */
  --text-faint: #7C8390;
  --text-ghost: #6C737E; /* retired as a TEXT color (under 4.5:1) -- kept, still referenced outside foundation */

  /* ---- team accents (identity only -- never a status color) ------ */
  --team-pit: #FDB827;
  --team-mil: #FFC52F;
  --team-block-a: #12284B;
  --team-block-b: #1A4A57;

  /* ---- typography -------------------------------------------------*/
  --font-display: 'Barlow Condensed', 'Arial Narrow', sans-serif;
  --font-body: 'Instrument Sans', -apple-system, 'Segoe UI', sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', Consolas, monospace;

  /* ---- spacing scale ------------------------------------------- */
  --sp-1: 2px;
  --sp-2: 6px;
  --sp-3: 8px;
  --sp-4: 10px;
  --sp-5: 12px;
  --sp-6: 14px;
  --sp-7: 16px;
  --sp-8: 18px;
  --sp-9: 20px;
  --sp-10: 22px;
  --sp-11: 26px;
  --sp-12: 32px;
  --sp-13: 40px;
  --sp-14: 44px;
  --sp-15: 56px;
  --sp-16: 74px;
  --sp-17: 84px;

  /* ---- chamfer radii ("R" values, section 04) -------------------- */
  --r-marker: 4px;
  --r-chip: 6px;
  --r-badge: 8px;
  --r-btn: 12px;
  --r-panel: 16px;
  --r-tile: 18px;
  --r-lg: 20px;
  --r-xl: 24px;
  --r-frame: 42px; /* the one true border-radius in the system */

  /* ---- motion: durations and easings (section 08) ---------------- */
  --ease-rise: cubic-bezier(.16, .84, .3, 1);
  --ease-draw: cubic-bezier(.22, .72, .2, 1);
  --ease-beat: cubic-bezier(.34, 1.4, .5, 1);
  --ease-seam: cubic-bezier(.4, 0, .5, 1);
  --ease-ping: cubic-bezier(0, 0, .2, 1);

  --dur-grise: 720ms;
  --dur-gtile: 660ms;
  --dur-gprice: 1050ms;
  --dur-gprice-delay: 340ms;
  --dur-gbeat: 620ms;
  --dur-gdraw: 1500ms;
  --dur-gdraw-delay: 120ms;
  --dur-chart-fill: 800ms;
  --dur-chart-fill-delay: 700ms;
  --dur-gseam: 11000ms;
  --dur-gsheen: 5500ms;
  --dur-gbreathe: 2600ms;
  --dur-gping: 2800ms;
  --dur-gcaret: 1100ms;
  --dur-gtype: 2600ms;
  --dur-hover-lift: 200ms;
  --dur-tile-lift: 340ms;
  --dur-tile-sweep: 1100ms;
  --dur-seam-side: 500ms;
  --dur-ring-bloom: 300ms;
  --dur-segment: 250ms;

  /* ---- layout constants ------------------------------------------*/
  --rail-width: 228px;
  --gutter-desktop: 40px;
  --gutter-mobile: 16px;
  --topbar-height: 64px;
  --tabbar-height: 60px;
  --mobile-breakpoint: 900px;
  --strip-height-phone: 56px;
  --sportrow-height: 44px;

  /* =================================================================
   * LINEHOUND V2 TOKENS -- ADDITIVE ONLY. Nothing above this point is
   * touched, removed, or renamed by this block.
   *
   * Transcribed verbatim from design/linehound-v2/'LINEHOUND V2 Full
   * Product.dc.html' section 01 (Design Tokens). Used by the V2 Odds /
   * Market Board reproduction (web/js/odds.js, screens.css's "ODDS V2"
   * section) so that screen can be graded against its own artboard
   * without touching any other screen's colors.
   *
   * Amber (--v-warn-*) is the one genuinely NEW signal color V2 adds --
   * V1 has no caution/pending/unavailable color and used hot red for
   * that job, which the V2 canvas calls a correction, not a restyle:
   * "Stale quotes, projected-not-confirmed lineups, awaiting settlement,
   * and NOT YET AVAILABLE all read amber. It means know this, not
   * danger -- red stays for risk to the bet itself." The money/live
   * hex values are unchanged from V1's --money/--live families; they
   * are repeated here under --v- names only so a V2 screen's stylesheet
   * never has to reach across to V1 tokens to draw its own reserved
   * colors.
   * ================================================================= */

  /* ---- ground and surface ---------------------------------------- */
  --v-ground: #0A0A0B;
  --v-s1: #121214;
  --v-s2: #17171A;
  --v-s3: #1D1D21;
  --v-fill-a: rgba(255, 255, 255, .045);
  --v-fill-b: rgba(255, 255, 255, .012);
  --v-edge: rgba(255, 255, 255, .07);
  --v-scan: rgba(255, 255, 255, .028);
  --v-carbon: rgba(255, 255, 255, .024);

  /* ---- hot red: a genuinely better price, or the one primary action
     per region (reserved -- unchanged from V1's --money family) ------ */
  --v-money: #FF3D57;
  --v-money-2: #FF7A45;
  --v-money-lit: #FF6274;
  --v-money-soft: #FF9AA6;
  --v-money-label: #FFB3BD;
  --v-money-ink: #22060A;

  /* ---- ice cyan: measurement, movement, live (reserved) ------------ */
  --v-live: #00E0FF;
  --v-live-2: #0090C8;
  --v-live-lit: #A8F4FF;
  --v-live-label: #9FE9F5;
  --v-live-ink: #03222B;

  /* ---- amber: caution, pending, unavailable (new in V2) ------------ */
  --v-warn: #FFB020;
  --v-warn-2: #E08A00;
  --v-warn-lit: #FFD98A;
  --v-warn-label: #FFCF6B;
  --v-warn-ink: #2A1A00;

  /* ---- green: a settled paper WIN, and ONLY a settled win (new,
     2026-09-07, web/css/screens.css's RECORD STRIP / MATCHUP GRID /
     DAILY RECAP section) -- none of the trio above fits a settlement
     outcome (money is a price advantage, live is analytical/movement,
     warn is caution/absence). Paired with --v-money as the one other
     deliberate use of red beyond a price advantage anywhere in this
     system: a settled LOSS is a real, booked negative outcome, not a
     caution -- see that section's own comment. Never used for anything
     else (never "found", never "available", never a live/status dot --
     those stay --v-live). ------------------------------------------- */
  --v-win: #2ED47A;
  --v-win-2: #17A863;
  --v-win-lit: #8CF0BB;
  --v-win-label: #7BE8AC;
  --v-win-ink: #05230F;

  /* ---- type ---------------------------------------------------------*/
  --v-t0: #F7F7F9;
  --v-t1: #F0F1F4;
  --v-t2: #D5D7DE;
  --v-t3: #B7BAC4;
  /* The bottom three rungs were measured against the app background at
     3.0:1, 2.6:1 and 2.3:1 -- below the 4.5:1 a body-size reader needs and
     well below it at the 9.5-11px these rungs are usually set in. They are
     lifted here rather than per-rule so every surface gains at once. The
     ordering and the intent of the scale are unchanged: t5 is still the
     quiet rung, t7 still the quietest. */
  --v-t4: #949AA5;
  --v-t5: #848A96;
  --v-t6: #767C87;
  --v-t7: #6A707B; /* retired as a TEXT color (under 4.5:1) -- kept, still referenced outside foundation */

  /* =================================================================
   * LINEHOUND REDESIGN (2026-09-15) -- ROLE ALIASES, ADDITIVE ONLY.
   * Nothing above this point is touched, removed, or renamed by this
   * block (docs/DESIGN_SYSTEM.md section 2). New rules use these role
   * names, never --v-* or --money* directly.
   * ================================================================= */

  /* ---- surface roles --------------------------------------------- */
  --panel-3: var(--tile-base);          /* #0E1013 -- chrome: strip, rail, tab bar, banner */
  --panel: #111317;                     /* cards */
  --panel-2: #15171B;                   /* nested / breakdown boxes */

  /* ---- edge roles --------------------------------------------------*/
  --edge-soft: var(--edge-1);           /* white .07 -- row dividers */
  --edge: rgba(255, 255, 255, .10);     /* panel borders */
  --edge-hi: rgba(255, 255, 255, .28);  /* secondary buttons, neutral chips, rank-1 edge */

  /* ---- signal roles --------------------------------------------------
     Red is never a better price, a loss, staleness, an error or
     decoration. Cyan is never a button fill. Loss/push/void are
     neutral, not red -- a customer's own bad night is not a warning
     colour. ------------------------------------------------------- */
  --primary: var(--money);              /* #FF3D57 -- brand mark, selected item, one primary action, COMING SOON */
  --primary-soft: rgba(255, 61, 87, .13);
  --fresh: var(--live);                 /* #00E0FF -- confirmed inputs, times, links, focus ring */
  --fresh-text: var(--live-badge);      /* #8FE9FA */
  --caution: var(--v-warn);             /* #FFB020 -- waiting on an input: lineup, starter, an older quote */
  --caution-text: var(--v-warn-label);  /* #FFCF6B */
  --caution-soft: rgba(255, 176, 32, .10);
  --win: var(--v-win-label);            /* #7BE8AC -- the word "Win" only */

  /* ---- type scale ----------------------------------------------------*/
  --fs-meta: 13px;   /* desktop labels only */
  --fs-small: 15px;
  --fs-body: 17px;
  --fs-lead: 19px;
  --fs-h3: 22px;
  --fs-h2: 26px;
  --fs-h1: 34px;
  --fs-hero: clamp(40px, 6vw, 72px);
}
