/* ============================================================================
   זמינה / Zmina — Design Tokens (warm / LIGHT)
   Brand: זמינה / Zmina (owner decision 2026-07-08). Owner-locked direction: warm, human, LIGHT,
   rounded-friendly, caring Israeli service brand — never dark, never dev-tool.
   Consumed directly by the Wave-2 landing + console agents. Production-usable.

   This is a LIGHT-ONLY system by owner mandate. There is intentionally no dark
   theme. Do not add one without owner sign-off.

   Fonts: Rubik (display/wordmark/headings) + Assistant (body/UI). Both are
   Hebrew-first, OFL-licensed, with strong Hebrew glyphs. SELF-HOSTED from
   public/landing/fonts/ (woff2, Hebrew + Latin + Latin-ext subsets, weights
   400/500/600/700). No Google Fonts call — visitor IPs are not leaked. Subset
   files + unicode-range mirror Google's own subsetting (via @fontsource).
   ========================================================================== */

/* ---- Rubik (display) ---- */
@font-face { font-family: 'Rubik'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('fonts/rubik-hebrew-400-normal.woff2') format('woff2');
  unicode-range: U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F; }
@font-face { font-family: 'Rubik'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('fonts/rubik-latin-400-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Rubik'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('fonts/rubik-latin-ext-400-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Rubik'; font-style: normal; font-weight: 500; font-display: swap;
  src: url('fonts/rubik-hebrew-500-normal.woff2') format('woff2');
  unicode-range: U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F; }
@font-face { font-family: 'Rubik'; font-style: normal; font-weight: 500; font-display: swap;
  src: url('fonts/rubik-latin-500-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Rubik'; font-style: normal; font-weight: 500; font-display: swap;
  src: url('fonts/rubik-latin-ext-500-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Rubik'; font-style: normal; font-weight: 600; font-display: swap;
  src: url('fonts/rubik-hebrew-600-normal.woff2') format('woff2');
  unicode-range: U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F; }
@font-face { font-family: 'Rubik'; font-style: normal; font-weight: 600; font-display: swap;
  src: url('fonts/rubik-latin-600-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Rubik'; font-style: normal; font-weight: 600; font-display: swap;
  src: url('fonts/rubik-latin-ext-600-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Rubik'; font-style: normal; font-weight: 700; font-display: swap;
  src: url('fonts/rubik-hebrew-700-normal.woff2') format('woff2');
  unicode-range: U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F; }
@font-face { font-family: 'Rubik'; font-style: normal; font-weight: 700; font-display: swap;
  src: url('fonts/rubik-latin-700-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Rubik'; font-style: normal; font-weight: 700; font-display: swap;
  src: url('fonts/rubik-latin-ext-700-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }

/* ---- Assistant (body / UI) ---- */
@font-face { font-family: 'Assistant'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('fonts/assistant-hebrew-400-normal.woff2') format('woff2');
  unicode-range: U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F; }
@font-face { font-family: 'Assistant'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('fonts/assistant-latin-400-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Assistant'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('fonts/assistant-latin-ext-400-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Assistant'; font-style: normal; font-weight: 500; font-display: swap;
  src: url('fonts/assistant-hebrew-500-normal.woff2') format('woff2');
  unicode-range: U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F; }
@font-face { font-family: 'Assistant'; font-style: normal; font-weight: 500; font-display: swap;
  src: url('fonts/assistant-latin-500-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Assistant'; font-style: normal; font-weight: 500; font-display: swap;
  src: url('fonts/assistant-latin-ext-500-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Assistant'; font-style: normal; font-weight: 600; font-display: swap;
  src: url('fonts/assistant-hebrew-600-normal.woff2') format('woff2');
  unicode-range: U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F; }
@font-face { font-family: 'Assistant'; font-style: normal; font-weight: 600; font-display: swap;
  src: url('fonts/assistant-latin-600-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Assistant'; font-style: normal; font-weight: 600; font-display: swap;
  src: url('fonts/assistant-latin-ext-600-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Assistant'; font-style: normal; font-weight: 700; font-display: swap;
  src: url('fonts/assistant-hebrew-700-normal.woff2') format('woff2');
  unicode-range: U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F; }
@font-face { font-family: 'Assistant'; font-style: normal; font-weight: 700; font-display: swap;
  src: url('fonts/assistant-latin-700-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Assistant'; font-style: normal; font-weight: 700; font-display: swap;
  src: url('fonts/assistant-latin-ext-700-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }

:root {
  /* ---------------------------------------------------------------------------
     PALETTE — warm neutrals (backgrounds & surfaces)
     Warm ivory/peach base. Never pure white as the page; warm-white for cards.
     ------------------------------------------------------------------------- */
  --color-bg:            #FFFBF5; /* page background — warm ivory */
  --color-bg-tint:       #FDF3E8; /* alternating section — soft peach cream */
  --color-bg-sunken:     #F6ECDF; /* recessed wells, inputs-on-tint */
  --color-surface:       #FFFDFA; /* card / panel — warm white */
  --color-surface-2:     #FBF3EA; /* raised/hover surface */
  --color-surface-3:     #F4E9DB; /* deeper raised / selected */
  --color-overlay:       rgba(42, 33, 28, 0.44); /* modal scrim — warm, not black */

  /* Text — warm charcoal, never pure black */
  --color-text:          #2A211C; /* primary — warm espresso */
  --color-text-secondary:#6B5D54; /* secondary — warm taupe */
  --color-text-muted:    #9A8B80; /* muted / captions / placeholders */
  --color-text-on-accent:#FFFFFF; /* text on coral/teal fills */
  --color-text-on-dark:  #FFF7EE; /* rare: text on a warm-dark chip */

  /* Borders & dividers — warm hairlines */
  --color-border:        #EFE2D2; /* default hairline */
  --color-border-strong: #E3D2BE; /* emphasized divider / input border */
  --color-border-accent: #F3C3B2; /* coral-tinted border (focus-adjacent) */

  /* ---------------------------------------------------------------------------
     BRAND ACCENTS
     Primary = warm coral/clay (human, caring, confident — the CTA + brand color).
     Support = calm teal-green (available / answered / trust — status, calendar).
     Tertiary = honey/amber (soft highlight, retail warmth).
     ------------------------------------------------------------------------- */
  --color-accent:        #EF6C4D; /* PRIMARY — warm coral */
  --color-accent-hover:  #DE5B3C; /* hover / pressed-lite */
  --color-accent-active: #C74E31; /* active / pressed */
  --color-accent-soft:   #FCE6DD; /* tinted background (chips, soft fills) */
  --color-accent-softer: #FDF1EB; /* very soft wash (section highlight) */
  --color-accent-ink:    #8E3A22; /* accessible text/icon in coral family */

  --color-calm:          #2FA98C; /* SUPPORT — calm teal-green ("answered/live") */
  --color-calm-hover:    #279079; /* hover */
  --color-calm-soft:     #DCF1EA; /* tinted background */
  --color-calm-ink:      #1C5F4F; /* accessible text/icon in teal family */

  --color-honey:         #F2A65A; /* TERTIARY — warm honey highlight */
  --color-honey-soft:    #FCEBD5; /* tinted background */
  --color-honey-ink:     #93591C; /* accessible text/icon in honey family */

  /* ---------------------------------------------------------------------------
     SEMANTIC — all tuned warm (never cold crimson / clinical green / harsh blue)
     ------------------------------------------------------------------------- */
  --color-success:       #2FA98C; /* = calm teal, warm success */
  --color-success-soft:  #DCF1EA;
  --color-success-ink:   #1C5F4F;
  --color-warn:          #E4972B; /* warm amber */
  --color-warn-soft:     #FBEACB;
  --color-warn-ink:      #7E5310;
  --color-error:         #D9553F; /* warm red — not clinical crimson */
  --color-error-soft:    #FADFD8;
  --color-error-ink:     #8C2E1D;
  --color-info:          #3E8FA6; /* warm-leaning teal-blue (rare, info only) */
  --color-info-soft:     #DCEEF3;
  --color-info-ink:      #235663;

  /* Live-call / status dots (product) */
  --status-live:         var(--color-calm);
  --status-idle:         var(--color-text-muted);
  --status-captured:     var(--color-calm);
  --status-listening:    var(--color-honey);
  --status-invalid:      var(--color-error);

  /* ---------------------------------------------------------------------------
     RADIUS — rounded, friendly
     ------------------------------------------------------------------------- */
  --radius-xs:   6px;
  --radius-sm:   10px;
  --radius-md:   14px;   /* default control / input */
  --radius-lg:   20px;   /* cards */
  --radius-xl:   28px;   /* hero cards / panels */
  --radius-2xl:  36px;   /* big feature blocks */
  --radius-pill: 999px;  /* buttons, chips, tabs */
  --radius-circle: 50%;  /* avatars, status dots */

  /* ---------------------------------------------------------------------------
     SHADOWS — soft, warm-tinted (alpha of warm brown 66,42,30 — never cold gray)
     ------------------------------------------------------------------------- */
  --shadow-xs:  0 1px 2px rgba(66, 42, 30, 0.06);
  --shadow-sm:  0 2px 8px rgba(66, 42, 30, 0.08);
  --shadow-md:  0 6px 20px rgba(66, 42, 30, 0.10);
  --shadow-lg:  0 14px 40px rgba(66, 42, 30, 0.12);
  --shadow-xl:  0 28px 70px rgba(66, 42, 30, 0.16);
  --shadow-inset: inset 0 1px 2px rgba(66, 42, 30, 0.06);
  --shadow-accent: 0 10px 30px rgba(239, 108, 77, 0.28); /* coral CTA glow */
  --shadow-calm:   0 10px 30px rgba(47, 169, 140, 0.24); /* teal live-glow */

  /* ---------------------------------------------------------------------------
     SPACING — 4px base
     ------------------------------------------------------------------------- */
  --space-0:   0;
  --space-1:   4px;
  --space-2:   8px;
  --space-3:   12px;
  --space-4:   16px;
  --space-5:   20px;
  --space-6:   24px;
  --space-8:   32px;
  --space-10:  40px;
  --space-12:  48px;
  --space-16:  64px;
  --space-20:  80px;
  --space-24:  96px;
  --space-32:  128px;

  /* ---------------------------------------------------------------------------
     TYPOGRAPHY
     Display/headings/wordmark → Rubik (rounded, warm, humanist; strong Hebrew).
     Body/UI → Assistant (clean, warm-neutral, superb Hebrew legibility, wide weights).
     Numeric → Rubik with tabular figures for dashboards.
     Rationale: Rubik's rounded terminals carry the "rounded-friendly warm" anchor
     in the most-seen elements (logo + H1); Assistant keeps long Hebrew paragraphs
     calm and legible where Heebo/Noto read colder and Secular One can't do body.
     ------------------------------------------------------------------------- */
  --font-display: 'Rubik', 'Assistant', -apple-system, 'Segoe UI', Arial, sans-serif;
  --font-body:    'Assistant', 'Rubik', -apple-system, 'Segoe UI', Arial, sans-serif;
  --font-numeric: 'Rubik', 'Assistant', ui-monospace, sans-serif;
  --font-mono:    'IBM Plex Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;

  /* Type scale — display heads use clamp() for fluid responsiveness */
  --text-display: clamp(2.5rem, 1.6rem + 4vw, 4rem);     /* hero H1 */
  --text-h1:      clamp(2rem, 1.5rem + 2.4vw, 3rem);
  --text-h2:      clamp(1.5rem, 1.2rem + 1.5vw, 2.25rem);
  --text-h3:      1.5rem;    /* 24 */
  --text-xl:      1.25rem;   /* 20 */
  --text-lg:      1.125rem;  /* 18 */
  --text-base:    1rem;      /* 16 — body default */
  --text-sm:      0.9375rem; /* 15 */
  --text-xs:      0.8125rem; /* 13 */
  --text-caption: 0.75rem;   /* 12 */

  /* Weights */
  --fw-regular:  400;
  --fw-medium:   500;
  --fw-semibold: 600;
  --fw-bold:     700;

  /* Line heights — Hebrew body benefits from a slightly looser measure */
  --lh-tight:   1.15; /* display / large heads */
  --lh-snug:    1.3;  /* sub-heads */
  --lh-normal:  1.6;  /* body */
  --lh-relaxed: 1.75; /* long-form / small text */

  /* Letter spacing — Hebrew takes NO tracking; only apply to Latin display/labels */
  --tracking-tight:  -0.01em; /* Latin display */
  --tracking-normal: 0;       /* Hebrew + default */
  --tracking-label:  0.04em;  /* Latin small-caps labels only */

  /* ---------------------------------------------------------------------------
     COMPONENT / SEMANTIC ALIASES (ready for landing + console consumption)
     ------------------------------------------------------------------------- */
  --cta-bg:            var(--color-accent);
  --cta-bg-hover:      var(--color-accent-hover);
  --cta-text:          var(--color-text-on-accent);
  --cta-shadow:        var(--shadow-accent);
  --cta-radius:        var(--radius-pill);

  --link-color:        var(--color-accent-ink);
  --link-hover:        var(--color-accent-active);

  --focus-ring:        0 0 0 3px rgba(239, 108, 77, 0.40); /* coral focus */
  --focus-ring-calm:   0 0 0 3px rgba(47, 169, 140, 0.38);

  --card-bg:           var(--color-surface);
  --card-border:       var(--color-border);
  --card-radius:       var(--radius-lg);
  --card-shadow:       var(--shadow-md);

  --input-bg:          var(--color-surface);
  --input-border:      var(--color-border-strong);
  --input-radius:      var(--radius-md);
  --input-text:        var(--color-text);
  --input-placeholder: var(--color-text-muted);

  /* Chat bubbles (messaging UI — WhatsApp/iMessage-like, warm) */
  --bubble-in-bg:      var(--color-surface-2);   /* caller / agent-incoming */
  --bubble-in-text:    var(--color-text);
  --bubble-out-bg:     var(--color-accent-soft); /* owner / outgoing */
  --bubble-out-text:   var(--color-text);
  --bubble-agent-bg:   var(--color-calm-soft);   /* Koliya's own turns */
  --bubble-agent-text: var(--color-text);
  --bubble-radius:     var(--radius-lg);

  /* Layout */
  --page-max-width:    1200px;
  --content-max-width: 720px;   /* readable Hebrew measure */
  --gutter:            var(--space-6);
  --header-height:     72px;

  /* Motion — gentle, warm, never flashy */
  --ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
  --ease-out:      cubic-bezier(0.16, 1, 0.3, 1);
  --dur-fast:      140ms;
  --dur-base:      220ms;
  --dur-slow:      360ms;

  /* Z-index scale */
  --z-base: 0;
  --z-dropdown: 100;
  --z-sticky: 200;
  --z-overlay: 900;
  --z-modal: 1000;
  --z-toast: 1100;
}

/* ============================================================================
   BASE — apply the brand to the document. Product is Hebrew-first / RTL.
   Tokens themselves are direction-agnostic; set dir="rtl" on <html> for the app.
   ========================================================================== */
html {
  font-family: var(--font-body);
  font-size: 16px;
  color: var(--color-text);
  background: var(--color-bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body {
  margin: 0;
  line-height: var(--lh-normal);
  background: var(--color-bg);
  color: var(--color-text);
}

h1, h2, h3, .u-display {
  font-family: var(--font-display);
  font-weight: var(--fw-semibold);
  line-height: var(--lh-tight);
  letter-spacing: var(--tracking-normal);
  color: var(--color-text);
  margin: 0 0 var(--space-4);
}
h1 { font-size: var(--text-h1); }
h2 { font-size: var(--text-h2); line-height: var(--lh-snug); }
h3 { font-size: var(--text-h3); line-height: var(--lh-snug); }

p { margin: 0 0 var(--space-4); }
a { color: var(--link-color); text-decoration: none; }
a:hover { color: var(--link-hover); }

:focus-visible { outline: none; box-shadow: var(--focus-ring); border-radius: var(--radius-sm); }

/* ---- Utility classes the landing/console can lean on ---------------------- */
.u-hero        { font-family: var(--font-display); font-size: var(--text-display); font-weight: var(--fw-bold); line-height: var(--lh-tight); }
.u-lead        { font-size: var(--text-lg); color: var(--color-text-secondary); line-height: var(--lh-relaxed); }
.u-muted       { color: var(--color-text-muted); }
.u-caption     { font-size: var(--text-caption); color: var(--color-text-muted); }

.u-card {
  background: var(--card-bg);
  border: 1px solid var(--card-border);
  border-radius: var(--card-radius);
  box-shadow: var(--card-shadow);
  padding: var(--space-6);
}

.btn {
  font-family: var(--font-body);
  font-weight: var(--fw-semibold);
  font-size: var(--text-base);
  border: none;
  border-radius: var(--radius-pill);
  padding: var(--space-3) var(--space-6);
  cursor: pointer;
  transition: background var(--dur-fast) var(--ease-standard),
              transform var(--dur-fast) var(--ease-standard),
              box-shadow var(--dur-base) var(--ease-standard);
}
.btn-primary {
  background: var(--cta-bg);
  color: var(--cta-text);
  box-shadow: var(--cta-shadow);
}
.btn-primary:hover { background: var(--cta-bg-hover); transform: translateY(-1px); }
.btn-secondary {
  background: var(--color-surface);
  color: var(--color-text);
  border: 1px solid var(--color-border-strong);
}
.btn-secondary:hover { background: var(--color-surface-2); }

.badge {
  display: inline-flex; align-items: center; gap: var(--space-1);
  font-size: var(--text-xs); font-weight: var(--fw-semibold);
  padding: var(--space-1) var(--space-3);
  border-radius: var(--radius-pill);
}
.badge-live    { background: var(--color-calm-soft);  color: var(--color-calm-ink); }
.badge-warm    { background: var(--color-accent-soft); color: var(--color-accent-ink); }
.badge-honey   { background: var(--color-honey-soft); color: var(--color-honey-ink); }

/* Numeric / dashboard figures — tabular, aligned */
.u-num { font-family: var(--font-numeric); font-variant-numeric: tabular-nums; }
