/* ============================================================
   Estate — Color tokens
   Warm-neutral, stone-based grayscale + ink-only action.
   The ONLY chroma in the product is the per-property gradient mood
   (atmosphere, never a fill). Semantic green/amber/red appear in status
   only, always as a labelled, tinted chip — never bare color.
   Tier 1 (primitives) → Tier 2 (semantic aliases). Components use Tier 2.
   ============================================================ */

:root {
  /* ---- Tier 1: Surfaces — warm off-white stack ---- */
  --bg:             #fafaf9;  /* page floor / app background */
  --surface:        #f3f2ef;  /* recessed panels, alternating bands, hover */
  --surface-strong: #ebeae6;  /* pressed/active surface, badge plates */
  --paper:          #ffffff;  /* cards, switcher, raised content */
  --surface-dark:   #0c0a09;  /* dark surfaces (concierge launcher) */
  --surface-dark-elev: #1c1917;

  /* ---- Tier 1: Ink — warm near-black → stone text ramp ---- */
  --ink:   #0c0a09;  /* display + primary text — 18.9:1 on bg (AAA) */
  --ink-2: #292524;  /* body-strong, emphasis, button fill — 14.5:1 (AAA) */
  --ink-3: #4e4e4e;  /* default running text — 8.0:1 (AAA) */
  --ink-4: #777169;  /* sub-labels, captions — 4.6:1 (AA) */
  --ink-5: #a8a29e;  /* disabled / faint meta — 2.4:1, decorative/large only */

  /* ---- Tier 1: Hairlines (warm) ---- */
  --rule-soft:   #f0efed;
  --rule:        #e7e5e4;
  --rule-strong: #d6d3d1;

  /* ---- Tier 1: Semantic (status only — pair with a label + tinted chip) ---- */
  --green: #16a34a;  /* ready / success */
  --amber: #b88a2c;  /* warning / pending */
  --red:   #dc2626;  /* error / destructive */

  /* Status-chip plates — warm-tinted bg + readable fg (AA on the plate) */
  --chip-ok-bg:    #e8f1e8; --chip-ok-fg:    #186a3b;
  --chip-warn-bg:  #f6ecd9; --chip-warn-fg:  #8a651a;
  --chip-error-bg: #f8e7e6; --chip-error-fg: #b42318;

  /* Confidential — reserved oxblood, deliberately outside the neutral family */
  --oxblood:      #7a2e3a;
  --oxblood-wash: #f3e7ea;

  /* ============================================================
     Tier 2: Semantic aliases — THIS is what components consume.
     Re-point these to re-skin/theme without touching components.
     ============================================================ */

  /* Action — deliberately ink; the product has no saturated brand-action color */
  --accent:      var(--ink-2);  /* primary action fill = ink */
  --accent-deep: var(--ink);    /* pressed */
  --accent-warm: #4e4e4e;       /* tertiary ink accent */
  --gold:        #a8a29e;       /* muted metallic accent, used sparingly */

  /* Text roles */
  --text:         var(--ink);
  --text-body:    var(--ink-3);
  --text-muted:   var(--ink-4);
  --text-on-dark: var(--paper);

  /* Surface roles */
  --color-bg:    var(--bg);
  --color-paper: var(--paper);
  --color-rule:  var(--rule);

  /* Status scopes (the Badge/Toast components consume these) */
  --status-success-bg:  var(--chip-ok-bg);     --status-success-fg:  var(--chip-ok-fg);
  --status-progress-bg: var(--surface-strong); --status-progress-fg: var(--ink-3);
  --status-pending-bg:  var(--chip-warn-bg);   --status-pending-fg:  var(--chip-warn-fg);
  --status-error-bg:    var(--chip-error-bg);  --status-error-fg:    var(--chip-error-fg);
  --status-neutral-bg:  var(--surface-strong); --status-neutral-fg:  var(--ink-4);

  /* Confidential — reserved oxblood scope (chip + lock + left rule) */
  --confidential-bg:   var(--oxblood-wash);
  --confidential-fg:   var(--oxblood);
  --confidential-rule: var(--oxblood);
}
