/* ==========================================================================
   Design tokens — THE single source of truth for colour.

   Change a value here and it changes everywhere. Nothing else in this
   codebase may contain a raw hex colour: app.css uses var() throughout,
   and apps/core/branding.py mirrors these values for the Python side,
   with a test that fails if the two drift.

   Palette
   -------
   Moody Bible Institute's official global brand style guide, read out of
   the PDF's own colour specifications rather than sampled from a
   screenshot. Every value below is quoted, not approximated.

     PMS 302   #003B5C  Dark Blue      master brand
     PMS 633   #007396  Medium Blue
     PMS 7459  #4298B5  Light Blue     dominant signal for education
     PMS 7458  #72B5CC  Pale Blue
     PMS 160   #A1561C  Rust           school accent
     PMS 7550  #D19000  Gold           school accent
     PMS 7551  #B47E00  Dark Gold
     PMS 7628  #9E2A2B  Red            school accent
     PMS 404   #776E64  Dark Gray      support
     PMS 401   #AFA9A0  Light Gray     support

   The warm family — rust and gold — is what carries Moody's section
   rules and calls to action against the blues. Without it the palette
   reads as cold and corporate.

   Contrast on white, measured, deciding what each colour may do:

     302   11.80:1  text and buttons
     7628   7.45:1  text and buttons
     160    5.44:1  text and buttons
     633    5.39:1  text and buttons
     404    5.00:1  secondary text
     7551   3.54:1  large text only
     7459   3.29:1  large elements, tints
     7550   2.73:1  decorative rules and fills only, never text
     401    2.33:1  borders and fills only
   ========================================================================== */

:root {
  /* --- brand, exactly as published --------------------------------- */
  --pantone-302:   #003B5C;
  --pantone-633:   #007396;
  --pantone-7459:  #4298B5;
  --pantone-7458:  #72B5CC;
  --pantone-160:   #A1561C;
  --pantone-7550:  #D19000;
  --pantone-7551:  #B47E00;
  --pantone-7628:  #9E2A2B;
  --pantone-404:   #776E64;
  --pantone-401:   #AFA9A0;

  /* --- primary: master dark blue ----------------------------------- */
  --brand:         #003B5C;
  --brand-dark:    #002B43;
  --brand-darker:  #001C2C;
  --brand-light:   #007396;
  --brand-tint:    #E6EFF4;
  --brand-tint-2:  #CCDFE9;
  /* Bootstrap needs the channels separately for its alpha helpers.
     Kept beside the colour it mirrors so the two cannot drift. */
  --brand-rgb:     0, 59, 92;
  --rust-rgb:      161, 86, 28;

  /* --- secondary: medium blue, AA-safe as published ---------------- */
  --secondary:      #007396;
  --secondary-dark: #005C78;
  --secondary-tint: #E0EFF4;

  /* --- accent: light blue, the education signal -------------------- */
  --accent:        #4298B5;
  --accent-soft:   #72B5CC;
  --accent-tint:   #ECF5F8;

  /* --- warm accents: rust and gold --------------------------------- */
  --rust:          #A1561C;
  --rust-dark:     #7F430F;
  --rust-tint:     #F7EDE5;
  --gold:          #D19000;
  --gold-dark:     #B47E00;
  --gold-tint:     #FBF2DE;

  --gradient:      linear-gradient(135deg, #003B5C 0%, #007396 100%);
  --gradient-soft: linear-gradient(135deg, #007396 0%, #4298B5 100%);
  --gradient-warm: linear-gradient(135deg, #A1561C 0%, #D19000 100%);

  /* --- status ------------------------------------------------------ */
  --success:       #4A7729;   /* PMS 364, from the same guide */
  --success-tint:  #EAF1E4;
  --danger:        #9E2A2B;   /* PMS 7628 */
  --danger-dark:   #7C2529;   /* PMS 1815 */
  --danger-tint:   #F6E9E9;
  --warning:       #B47E00;   /* PMS 7551 */
  --warning-tint:  #FBF2DE;
  --info:          #007396;
  --info-tint:     #E0EFF4;

  /* --- neutrals ---------------------------------------------------- */
  --page:          #F4F7F9;
  --surface:       #FFFFFF;
  --surface-alt:   #F5F5F4;   /* the quiet card fill Moody uses */
  --text:          #1F2A30;
  --text-muted:    #776E64;   /* PMS 404 */
  --text-faint:    #AFA9A0;   /* PMS 401 */
  --border:        #DFE5E9;
  --border-strong: #C4CDD3;

  /* --- shape ------------------------------------------------------- */
  --radius-sm:     4px;
  --radius:        6px;
  --radius-lg:     8px;

  /* --- elevation --------------------------------------------------- */
  --shadow-sm:     0 1px 2px rgba(0, 59, 92, .06);
  --shadow:        0 2px 10px rgba(0, 59, 92, .08);
  --shadow-lg:     0 10px 28px rgba(0, 59, 92, .12);
  --shadow-brand:  0 4px 16px rgba(0, 59, 92, .25);

  /* --- type -------------------------------------------------------- */
  --font-body: "Source Sans 3", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-head: "Source Serif 4", Georgia, "Times New Roman", serif;

  /* --- layout ------------------------------------------------------ */
  --navbar-h:      72px;
  --sidebar-w:     288px;
  --content-max:   1440px;
  --rule-w:        3px;       /* the gold rule under section headings */
}
