/* Kalori — design tokens
   Every value here is the literal value used in the screens.
   Drop this in as-is; nothing in the designs uses a color or size not listed. */

:root {
  /* ---- surfaces ------------------------------------------------------- */
  --kal-bg:            #FFFFFF;  /* page */
  --kal-surface:       #F7F6F3;  /* quiet panels, inset cards */
  --kal-photo-bg:      #F1F0EC;  /* photo placeholder blocks */
  --kal-line:          #E9E8E3;  /* hairline borders */
  --kal-line-dashed:   #D8D7D0;  /* dashed "empty slot" borders */
  --kal-track:         #EFEEE9;  /* progress ring / bar track */
  --kal-viewfinder:    #141412;  /* camera screen only */

  /* ---- ink ------------------------------------------------------------ */
  --kal-ink:           #1A1A17;  /* 16.4:1 on white — headings, numbers */
  --kal-ink-2:         #55554D;  /*  7.7:1 — body copy */
  --kal-ink-3:         #6E6E66;  /*  5.2:1 — captions, smallest text allowed */
  --kal-ink-4:         #A6A59C;  /*  decorative icons ONLY, never text */

  /* ---- accent and status ---------------------------------------------- */
  --kal-accent:        #24704F;  /* 5.6:1 — primary actions, ring, active tab */
  --kal-accent-press:  #1A5539;  /* pressed / hover */
  --kal-accent-soft:   #EAF3EE;  /* accent wash behind badges and icons */
  --kal-accent-tint:   #F7FBF9;  /* selected row background */
  --kal-accent-pale:   #A9C7B8;  /* "already eaten" segment in the before/after bar */
  --kal-warn:          #B4690E;  /* 4.6:1 — over goal */
  --kal-warn-soft:     #FBF1E2;
  --kal-warn-ink:      #8A5109;  /* text on --kal-warn-soft */
  --kal-danger:        #B4261E;  /* 6.5:1 — destructive */
  --kal-danger-line:   #F0DAD7;

  /* ---- macro series (colorblind-checked, always label-paired) ---------- */
  --kal-protein:       #4A62B8;
  --kal-carbs:         #C2542F;
  --kal-fat:           #2F9E63;

  /* ---- type ----------------------------------------------------------- */
  --kal-font: 'Plus Jakarta Sans', ui-sans-serif, system-ui, sans-serif;
  --kal-size-total:    46px;  /* weight 800, tracking -0.035em, line-height 1 */
  --kal-size-total-sm: 42px;  /* the ring on Today */
  --kal-size-title:    30px;  /* weight 800, tracking -0.025em */
  --kal-size-sheet:    22px;  /* weight 800, tracking -0.02em */
  --kal-size-action:   16px;  /* weight 700 — button labels */
  --kal-size-row:      15px;  /* weight 600–700 */
  --kal-size-body:     14px;  /* weight 500 */
  --kal-size-caption:  12px;  /* weight 500 */
  --kal-size-eyebrow:  12px;  /* weight 700, tracking 0.08em, uppercase */
  --kal-size-micro:    11px;  /* weight 600–700 — tab labels, unit suffixes */

  /* ---- space ---------------------------------------------------------- */
  --kal-space-1:  4px;
  --kal-space-2:  8px;
  --kal-space-3: 12px;
  --kal-space-4: 16px;
  --kal-space-5: 20px;   /* screen gutter */
  --kal-space-6: 24px;
  --kal-space-7: 32px;
  --kal-space-8: 40px;

  /* ---- radius --------------------------------------------------------- */
  --kal-radius-sm:   12px;  /* small controls, steppers */
  --kal-radius-md:   14px;  /* list rows, inputs */
  --kal-radius-lg:   16px;  /* cards, buttons */
  --kal-radius-xl:   24px;  /* the ring card */
  --kal-radius-sheet:28px;  /* bottom sheets — top corners only */
  --kal-radius-pill: 999px;

  /* ---- layout --------------------------------------------------------- */
  --kal-frame-w:   390px;
  --kal-frame-h:   844px;
  --kal-top-pad:    56px;  /* content starts here; the real status bar sits above */
  --kal-bottom-pad: 26px;
  --kal-tabbar-h:   92px;
  --kal-fab:        64px;
  --kal-touch-min:  44px;

  /* ---- elevation ------------------------------------------------------ */
  --kal-shadow-fab: 0 8px 20px rgba(26, 26, 23, 0.18);

  /* ---- motion --------------------------------------------------------- */
  --kal-motion-sheet: 240ms;  /* ease-out */
  --kal-motion-count: 400ms;  /* ring sweep and number count-up */
}

/* The designs are light-only by intent (the brief was "white and clean").
   If dark mode is added later it is a separate, validated set of steps —
   not an automatic inversion of the values above. */
