/* ------------------------------------------------------------------------
   FinVentures design tokens.

   These are the single source of truth for colour, type, spacing, radius,
   elevation and motion. Component CSS must reference these variables and
   never inline a raw hex value — that is what makes a rebrand a one-file
   change instead of a search-and-replace.

   Values marked ASSUMED were not given explicit hex codes in the design
   handoff; they are standard slate ramp values chosen to sit correctly
   alongside --fv-navy (#0F172A). Replace them from the authoritative
   tokens/colors.css in the design system when available.
   ------------------------------------------------------------------------ */

:root {
    /* --- Brand ------------------------------------------------------- */
    --fv-navy: #0F172A;
    --fv-navy-800: #1E293B;
    --fv-yellow: #FFFF21;
    --fv-gold: #FEC601;
    --fv-white: #FFFFFF;
    --fv-black: #000000;

    /* --- Neutrals (ASSUMED) ------------------------------------------ */
    --fv-slate-100: #F1F5F9;
    --fv-slate-200: #E2E8F0;
    --fv-slate-400: #94A3B8;
    --fv-slate-500: #64748B;

    /* --- Semantic ---------------------------------------------------- */
    --fv-success: #198754;
    --fv-danger: #DC3545;

    /* Warning foreground (ASSUMED). There was a --state-warning-bg but no
       colour to sit on it, so .badge--warning carried the hex inline — the one
       place in the sheet that named a colour outside this block. Both use this
       now. Dark enough to clear 4.5:1 on the warning background. */
    --fv-warning: #8A6D00;

    /* --- Type colours (ASSUMED except headings) ---------------------- */
    --text-heading: #0F172A;
    --text-body: #334155;
    --text-muted: #64748B;

    /* Placeholder data — figures that are NOT from the API.

       RED ON PURPOSE, and temporarily so. This was a muted grey, which
       de-emphasised invented figures so they receded. That is the right
       treatment for a product in front of a merchant and the wrong one for a
       build in progress: grey is easy to stop noticing, and the whole job
       right now is spotting at a glance which numbers are still fake.

       So this is deliberately alarming. It is development scaffolding, not a
       brand colour, and it should go back to a muted tone before anyone
       outside the team sees the portal — or better, disappear entirely as the
       last endpoint is wired and the .ph class stops being used.

       Contrast against white is ~4.5:1, so unlike the old grey it does at
       least meet WCAG AA for body text while it is here. */
    --text-placeholder: #DC3545;
    --text-link: #0F172A;
    --text-link-hover: #1E293B;

    /* --- Surfaces and borders ---------------------------------------- */
    --surface-card: #FFFFFF;
    --surface-subtle: #F8FAFC;
    --border-subtle: #E2E8F0;
    --border-default: #CBD5E1;

    /* --- Alert icon backgrounds -------------------------------------- */
    --state-success-bg: #E8F3EC;
    --state-danger-bg: #FBEAEC;
    --state-warning-bg: #FFF6DA;

    /* --- Typography --------------------------------------------------
       No webfont ships with the brand; the stack falls back to Arial. */
    --font-primary: Helvetica, Arial, sans-serif;
    --weight-regular: 400;
    --weight-semibold: 600;
    --weight-bold: 700;
    --tracking-wide: 0.04em;
    --tracking-caps: 0.08em;

    /* --- Radius ------------------------------------------------------- */
    --radius-card: 12px;
    --radius-input: 8px;
    --radius-md: 8px;
    --radius-pill: 999px;

    /* --- Elevation ---------------------------------------------------- */
    --shadow-sm: 0 1px 3px rgba(15, 23, 42, .08);
    --shadow-md: 0 4px 12px rgba(15, 23, 42, .10);
    --shadow-lg: 0 12px 32px rgba(15, 23, 42, .18);
    --scrim: rgba(15, 23, 42, .45);

    /* --- Motion -------------------------------------------------------
       120ms hover/press, 180ms toggles and shadows, 280ms drawers. */
    --motion-fast: 120ms;
    --motion-base: 180ms;
    --motion-slow: 280ms;
    --ease: cubic-bezier(.2, 0, .2, 1);
}