/* Postie · tokens/colors.css — THE FIXED PALETTE (colourway 4 · charcoal + oxblood).
   Every value in this file is a P2-proven value carried over unchanged from
   components/tokens.working.css (formalised P3 step 5, after the green-light). These values
   never change per theme — only their ROLES swap (themes.css). Each chromatic value carries its
   on-colour ink annotation (the trailing `on:` comment naming its ground — read by the pack gate) with the
   measured WCAG ratio; the comment line above an ink lists every legal ground it may sit on.
   Text floor 4.5:1 · UI edge / large / non-text floor 3:1. No opacity on text, anywhere.

   Naming: a ground is a place (charcoal · night · paper · oxblood); an ink is `<step>-on-<ground>`.
   Roles (--postie-ground, --postie-surface, --postie-ink …) are mapped in themes.css. */
:root {
  /* ---- brand ground · charcoal (theme-invariant: chrome-bar, masthead-band, hero, agent card, brand-tone buttons) ---- */
  --postie-charcoal:          #1F1D1E; /* the chrome — the same in both themes */
  --postie-charcoal-deep:     #141213; /* raised on the chrome, dark theme: search well, avatar, chips */
  --postie-charcoal-lift:     #282627; /* raised on the chrome, light theme: a lighter step of the chrome */

  /* ---- working ground · night (dark theme: list, message, tables, dense reading) ---- */
  --postie-night:             #111011;
  --postie-night-raised:      #1A1819; /* rail, panels, buttons, bottom bar */
  --postie-night-selected:    #231B1D; /* selected row · triage-band tint (dark) */
  --postie-night-rule:        #2A2526; /* decorative separator — dense tables only, never a UI edge */
  --postie-night-edge:        #6E6566; /* the only visible UI border on night: 3.36:1 on night · 3.13:1 on night-raised (UI edge floor 3:1) — never text */
  --postie-night-pebble-1:    #2F292A; /* account-pebble tonal step 1 */
  --postie-night-pebble-2:    #3D3536; /* account-pebble tonal step 2 */

  /* ---- working ground · paper (light theme: the same roles, inverted) ---- */
  --postie-paper:             #FBFAFA;
  --postie-paper-raised:      #EEEDED; /* rail, panels, buttons, bottom bar */
  --postie-paper-selected:    #F2DCDF; /* selected row — an oxblood tint */
  --postie-paper-rule:        #E4E2E2; /* decorative separator — dense tables only, never a UI edge */
  --postie-paper-edge:        #8A8788; /* the only visible UI border on paper: 3.42:1 on paper · 3.05:1 on paper-raised (UI edge floor 3:1) — never text */
  --postie-paper-pebble-1:    #DAD8D8; /* account-pebble tonal step 1 */
  --postie-paper-pebble-2:    #C7C4C5; /* account-pebble tonal step 2 */

  /* ---- text ramp on charcoal (three solid steps; also legal on charcoal-deep / charcoal-lift / night-pebble-1 / night-pebble-2) ---- */
  /* ink-on-charcoal: charcoal 14.33 · charcoal-deep 15.95 · charcoal-lift 12.85 · night-pebble-1 12.20 · night-pebble-2 10.19 */
  --postie-ink-on-charcoal:   #F1ECEC; /* on: --postie-charcoal */
  /* body-on-charcoal: charcoal 9.22 · charcoal-deep 10.26 · charcoal-lift 8.27 */
  --postie-body-on-charcoal:  #C7BEBF; /* on: --postie-charcoal */
  /* muted-on-charcoal: charcoal 5.15 · charcoal-deep 5.73 · charcoal-lift 4.62 (the lowest legal light pairing) — also the ghost-button edge on the chrome */
  --postie-muted-on-charcoal: #978C8D; /* on: --postie-charcoal-lift */

  /* ---- text ramp on night (three solid steps; also legal on night-raised / night-selected) ---- */
  /* ink-on-night: night 15.51 · night-raised 14.43 · night-selected 13.76 */
  --postie-ink-on-night:      #ECE7E7; /* on: --postie-night */
  /* body-on-night: night 9.16 · night-raised 8.52 · night-selected 8.13 */
  --postie-body-on-night:     #BBB2B3; /* on: --postie-night */
  /* muted-on-night: night 5.30 · night-raised 4.94 · night-selected 4.71 */
  --postie-muted-on-night:    #8F8586; /* on: --postie-night-selected */

  /* ---- text ramp on paper (three solid steps; also legal on paper-raised / paper-selected / paper-pebble-1 / paper-pebble-2) ---- */
  /* ink-on-paper: paper 17.79 · paper-raised 15.86 · paper-selected 14.19 · paper-pebble-1 13.06 · paper-pebble-2 10.71 */
  --postie-ink-on-paper:      #141314; /* on: --postie-paper */
  /* body-on-paper: paper 8.71 · paper-raised 7.77 · paper-selected 6.95 */
  --postie-body-on-paper:     #4A4849; /* on: --postie-paper */
  /* muted-on-paper: paper 5.88 · paper-raised 5.24 · paper-selected 4.69 */
  --postie-muted-on-paper:    #646162; /* on: --postie-paper-selected */

  /* ---- the one signal · oxblood (≈5% of any view: primary action, live dot, link, count, triage-band fill on light) ---- */
  --postie-oxblood:           #8A1E2B; /* FILL on charcoal and night; FILL and accent-as-TEXT on paper: paper 8.76 · paper-raised 7.81 · paper-selected 6.99 */
  --postie-ink-on-oxblood:    #F6EDED; /* on: --postie-oxblood */
  /* oxblood-lift — the accent-as-TEXT face on every charcoal/night ground: charcoal 4.94 · charcoal-deep 5.50 · night 5.60 · night-raised 5.21 · night-selected 4.97.
     On charcoal-lift it measures 4.43 — icon stroke / non-text only there. NEVER text on paper (3.26). */
  --postie-oxblood-lift:      #E4606C; /* on: --postie-charcoal */
  /* oxblood-lift-hover — hover of the lifted face: charcoal 6.19 · night 7.01. Never on paper (2.60). */
  --postie-oxblood-lift-hover:#EE7A85; /* on: --postie-charcoal */
  /* oxblood-deep — hover of oxblood-as-text and of the primary fill, on paper: 11.11 */
  --postie-oxblood-deep:      #6F1622; /* on: --postie-paper */
}

/* ---- Where alpha is legal ----
   none. The working set uses no rgba(), no hsla(), no #RRGGBBAA and no `opacity` anywhere in the
   token layer; the components draw the ghost-button edge with a solid inset box-shadow in a solid
   edge token. Opacity on text is forbidden everywhere — de-emphasis steps down the ramp
   (ink → body → muted). Separation is a tonal step of the ground, never a translucent overlay.

   ---- Illegal pairings (recorded so nobody re-tries them; phase-2/pairings.md) ----
   oxblood on night 2.08 · oxblood on charcoal 1.84 · oxblood on charcoal-lift 1.65 — oxblood is never text on any charcoal; use oxblood-lift.
   oxblood-lift on paper 3.26 · oxblood-lift-hover on paper 2.60 · oxblood-lift on paper-selected 2.60 — the lifted faces are never used on paper; the accent-as-text face on paper IS oxblood.
   ink-on-paper on oxblood 2.03 — charcoal ink never sits on the oxblood fill; always ink-on-oxblood.
   muted-on-charcoal on paper-selected 2.49 / on paper 3.12 — the two muted faces are not interchangeable.
   night-edge / paper-edge as text — an edge is an edge (3:1 class), never text.
   oxblood fill silhouette on night 2.08 / on charcoal 1.84 — accepted non-text case: a primary button is read by its light ink and pill shape, not its edge. */
