/*
 * @file JDB brand CSS served by the CDN (the --theme-* variables + self-hosted @font-face faces).
 * @description Brand artifact loaded by every browser surface. The `@font-face` and `--theme-*` blocks
 * between the `GENERATED:*` markers are DERIVED from runtime-config/{env}/theme.yaml (the authoritative
 * source): edit the brand there and run `pnpm --filter @apps/theming generate:brand`; the drift check
 * (brand-generation.test.ts) fails if these regions go stale. Everything OUTSIDE the markers is hand-owned.
 * The SPA brand fonts are Poppins (body, --theme-font) and Outfit (titles/accents, --theme-serif-font);
 * Manrope + Libre Caslon Text are retained only for the auth-email / Cognito Hosted-UI theming (the
 * emailTheme.* block), independent of the SPA brand. The hand-owned --reachup-* block below carries the
 * Reach-Up product accents (curve, KPI tints, rank medals) so those colours are sourced here, not in the
 * Reach-Up component stylesheets.
 */

/* GENERATED:brand-fonts — do not edit by hand; run `pnpm --filter @apps/theming generate:brand` */
/* Poppins 400 normal */
@font-face {
    font-family: "Poppins";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("fonts/Poppins-Regular.woff2") format("woff2");
}

/* Poppins 500 normal */
@font-face {
    font-family: "Poppins";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url("fonts/Poppins-Medium.woff2") format("woff2");
}

/* Poppins 600 normal */
@font-face {
    font-family: "Poppins";
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url("fonts/Poppins-SemiBold.woff2") format("woff2");
}

/* Poppins 700 normal */
@font-face {
    font-family: "Poppins";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("fonts/Poppins-Bold.woff2") format("woff2");
}

/* Poppins 800 normal */
@font-face {
    font-family: "Poppins";
    font-style: normal;
    font-weight: 800;
    font-display: swap;
    src: url("fonts/Poppins-ExtraBold.woff2") format("woff2");
}

/* Outfit 400 normal */
@font-face {
    font-family: "Outfit";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("fonts/Outfit-Regular.woff2") format("woff2");
}

/* Outfit 500 normal */
@font-face {
    font-family: "Outfit";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url("fonts/Outfit-Medium.woff2") format("woff2");
}

/* Outfit 600 normal */
@font-face {
    font-family: "Outfit";
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url("fonts/Outfit-SemiBold.woff2") format("woff2");
}

/* Outfit 700 normal */
@font-face {
    font-family: "Outfit";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("fonts/Outfit-Bold.woff2") format("woff2");
}

/* Outfit 800 normal */
@font-face {
    font-family: "Outfit";
    font-style: normal;
    font-weight: 800;
    font-display: swap;
    src: url("fonts/Outfit-ExtraBold.woff2") format("woff2");
}

/* Manrope 400 normal */
@font-face {
    font-family: "Manrope";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("fonts/Manrope-Regular.woff2") format("woff2");
}

/* Manrope 700 normal */
@font-face {
    font-family: "Manrope";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("fonts/Manrope-Bold.woff2") format("woff2");
}

/* Libre Caslon Text 400 normal */
@font-face {
    font-family: "Libre Caslon Text";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("fonts/LibreCaslonText-Regular.woff2") format("woff2");
}

/* Libre Caslon Text 700 normal */
@font-face {
    font-family: "Libre Caslon Text";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("fonts/LibreCaslonText-Bold.woff2") format("woff2");
}
/* GENERATED:brand-fonts:end */

/* JDB brand token contract — GENERATED from theme.yaml; run `pnpm --filter @apps/theming generate:brand`. */
:root {
    /* GENERATED:brand-vars — do not edit by hand; run `pnpm --filter @apps/theming generate:brand` */
    --theme-font: "Poppins", "Inter", system-ui, sans-serif;
    --theme-serif-font: "Outfit", "Inter", system-ui, sans-serif;
    --theme-primary: #2d190d;
    --theme-primary-hover: #5f3f38;
    --theme-primary-light: rgb(150, 119, 97);
    --theme-primary-light-shadow: rgba(83, 48, 23, 0.6);
    --theme-primary-extra-light: rgb(248, 241, 233);
    --theme-secondary: #54bcbf;
    --theme-secondary-soft: #c4f0f0;
    --theme-secondary-light: rgb(133, 221, 223);
    --theme-secondary-light-shadow: rgba(84, 188, 191, 0.6);
    --theme-secondary-extra-light: rgb(213, 246, 247);
    --theme-background: #ffffff;
    --theme-surface: #ffffff;
    --theme-surface-muted: #f4f2ec;
    --theme-border: #e7ddd2;
    --theme-text: #495057;
    --theme-text-muted: #8a8a8a;
    --theme-text-strong: #2d190d;
    --theme-text-inverse: #ffffff;
    --theme-shadow: rgba(45, 25, 13, 0.1);
    --theme-subtle-shadow: rgba(84, 188, 191, 0.25);
    --theme-subtle-border: rgb(219, 240, 240);
    --theme-success: rgb(57, 191, 79);
    --theme-error: rgb(255, 95, 95);
    --theme-warning: rgb(255, 176, 32);
    /* GENERATED:brand-vars:end */

    /* Admin overlay tint resolved from the teal accent (app-owned, not a shared brand token). */
    --admin-overlay-tint: var(--theme-secondary);
    /* Admin table row-flash highlight (app-owned). */
    --admin-row-flash-color: #c4f0f0;

    /* Reach-Up product accents — the sales dashboard + challenges colours, sourced here (not in components). */
    /* KPI graph — current-day series (brown). */
    --reachup-kpi-graph-current: #6f4e37;
    /* KPI graph — comparison-day series (teal). */
    --reachup-kpi-graph-comparison: #1fb8ad;
    /* KPI row current-value cell tint (beige). */
    --reachup-current-tint: #fff4e6;
    /* Comparison tint — the KPI comparison cell + the comparison period chip (teal). */
    --reachup-comparison-tint: #e6fcf5;
    /* Comparison period-chip border (teal). */
    --reachup-comparison-border: #96f2d7;
    /* Period-chip base border (neutral grey). */
    --reachup-chip-border: #dee2e6;
    /* Positive KPI delta (teal). */
    --reachup-delta-up: #0c8599;
    /* Negative KPI delta (red). */
    --reachup-delta-down: #e03131;
    /* Rank medal — neutral badge + ranks beyond the podium (grey). */
    --reachup-medal-neutral: #adb5bd;
    /* Rank medal — first place (gold). */
    --reachup-medal-gold: rgb(253, 189, 77);
    /* Rank medal — second place (silver). */
    --reachup-medal-silver: rgb(175, 176, 194);
    /* Rank medal — third place (bronze). */
    --reachup-medal-bronze: rgb(250, 138, 76);
    /* Dashboard headline money icon (gold). */
    --reachup-headline-icon: #f4c430;
    /* Challenges page accent badge (coral red). */
    --reachup-challenge-accent: #f5564a;
    /* Podium row/card tint — the gold medal colour at 0.09 alpha. */
    --reachup-background-gold: rgba(253, 189, 77, 0.12);
    /* Podium row/card tint — the silver medal colour at 0.09 alpha. */
    --reachup-background-silver: rgba(175, 176, 194, 0.12);
    /* Podium row/card tint — the bronze medal colour at 0.09 alpha. */
    --reachup-background-bronze: rgba(250, 138, 76, 0.12);
    /* Off-podium / default rank tint — the primary light colour (--theme-primary-light) at 0.09 alpha. */
    --theme-primary-light-background: rgba(150, 119, 97, 0.12);
}
