/* ==========================================================================
   THEME: OUR LIST
   --------------------------------------------------------------------------
   The only branded file. It does two things:
     1. Declares the body font (vendored woff2, no external requests).
     2. Overrides --pulse-* tokens.
   Load order: pulse-core.css FIRST, then this file.

   Design intent. This board is read by someone who is busy, usually on a
   phone, and often at the end of a long day. So the palette is deliberately
   quiet: warm paper rather than clinical white, sage rather than corporate
   blue, and a muted brick instead of a fire-engine red. Nothing on screen
   should raise a pulse. Urgency is carried by a date and by ordering, not by
   colour shouting.

   Every text colour below was contrast-checked against the white surface and
   clears WCAG AA (4.5:1) for normal text. The faint tone is 5.0:1, which is
   why it is #756E63 and not the lighter grey it wants to be.
   ========================================================================== */

/* ------------------------------------------------------------------
   1. Body font. Open Sans, vendored, including the Vietnamese subset
   so HCMC place names and Vietnamese text render correctly.
   ------------------------------------------------------------------ */
@font-face {
  font-family: 'Open Sans Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 300 800;
  src: url('./fonts/open-sans-latin-wght-normal.woff2') format('woff2-variations');
  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: 'Open Sans Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 300 800;
  src: url('./fonts/open-sans-latin-ext-wght-normal.woff2') format('woff2-variations');
  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: 'Open Sans Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 300 800;
  src: url('./fonts/open-sans-vietnamese-wght-normal.woff2') format('woff2-variations');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* ------------------------------------------------------------------
   2. Token overrides
   ------------------------------------------------------------------ */
:root {
  /* Locked to light. The vendored component library is light-first, and a
     half-inverted UI on her phone at night would be worse than no dark mode
     at all. Revisit as a whole-system change, not a media query. */
  color-scheme: light;

  /* Brand: a soft eucalyptus green. Calm, warm, and not the blue every
     admin tool in the world uses. */
  --pulse-brand: #4A6B57;
  --pulse-brand-strong: #3A5645;
  --pulse-brand-soft: #EDF2EE;
  --pulse-accent: #C1704B;          /* warm clay, for the few things that invite a tap */
  --pulse-accent-strong: #A25C3C;
  --pulse-accent-soft: #FAF0EA;

  /* Surfaces and text: warm paper, never blue-white. */
  --pulse-bg: #FAF7F2;
  --pulse-surface: #FFFFFF;
  --pulse-surface-sunken: #F1EDE6;
  --pulse-border: #E7E0D6;
  --pulse-border-strong: #D3C9BA;
  --pulse-text: #33302B;            /* warm near-black, softer than #000 */
  --pulse-text-muted: #6B655C;      /* 5.8:1 on white */
  --pulse-text-faint: #756E63;      /* 5.0:1 on white, AA for small meta text */
  --pulse-text-invert: #FFFFFF;
  --pulse-link: #3A5645;
  --pulse-focus: #4A6B57;

  /* Feedback. Muted on purpose: this board never shouts. */
  --pulse-success: #3F7D4F;
  --pulse-warning: #96631A;
  --pulse-danger: #B4453C;          /* muted brick, used sparingly */
  --pulse-info: #3E6F8A;

  /* Type. One face, no display font: a wordmark in a geometric display face
     would make this read as a product. It is a shared list, not a brand. */
  --pulse-font-body: 'Open Sans Variable', 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --pulse-font-heading: var(--pulse-font-body);
  --pulse-font-display: var(--pulse-font-body);
  --pulse-font-wordmark: var(--pulse-font-body);

  /* Shape: softer than Cargonomics. Rounded reads friendlier under a thumb. */
  --pulse-radius-s: 8px;
  --pulse-radius-m: 12px;
  --pulse-radius-l: 18px;

  /* Depth: warm-tinted shadow channels, so elevation does not read grey. */
  --pulse-shadow-color: 51 48 43;

  /* Toasts */
  --pulse-toast-bg: #33302B;
  --pulse-toast-text: #FFFFFF;

  /* The active view-switch segment uses chart-1 in pulse-core; point it at
     the brand so the control reads sage, not the CRM's default blue. */
  --pulse-chart-1: var(--pulse-brand);

  /* ----------------------------------------------------------------
     Category tones. Referenced by slug from the database `tone`
     column, so adding a category is a data change, never a code change.
     All AA on white.
     ---------------------------------------------------------------- */
  --list-tone-rose:   #B0526B;
  --list-tone-violet: #7A5AA6;
  --list-tone-amber:  #96631A;
  --list-tone-teal:   #2F7D74;
  --list-tone-sky:    #3E6F8A;
  --list-tone-indigo: #4F5DA8;
  --list-tone-slate:  #6B655C;

  /* Stage tones, used by the five board columns and the stage pills. */
  --list-status-todo:    #6B655C;
  --list-status-doing:   #3E6F8A;
  --list-status-blocked: #96631A;
  --list-status-ready:   #A25C3C;
  --list-status-done:    #3F7D4F;

  /* Person tones. These carry white text on a solid pill rather than tinted
     text on a soft one, so each clears 4.5:1 against white as a background. */
  --list-who-her:  #7A3B55;
  --list-who-him:  #3A5645;
  --list-who-both: #57514A;
}
