/* TradeWorks — Color tokens
   Warm industrial palette. Graphite neutrals (never cool slate) carry the
   NEUTRAL DEFAULT brand: primary actions are dark graphite, with torch orange
   demoted to the accent role — so the unbranded system is unmistakably
   distinct from any customer skin (see tokens/skins.css). Every text-on-surface
   pairing here meets WCAG AA (4.5:1). No light-gray text on white — muted text
   bottoms out at gray-600. */

:root {
  /* ---- Warm neutral ramp (graphite) ---- */
  --gray-50:  #FAF9F7;
  --gray-100: #F4F2EE;
  --gray-200: #E8E4DC;
  --gray-300: #D5CFC4;
  --gray-400: #ADA593;
  --gray-500: #7C7566;
  --gray-600: #5E5749;  /* darkest "muted" — AA on white (7.0:1) */
  --gray-700: #443F35;
  --gray-800: #2D2A23;
  --gray-900: #1B1A15;
  --white:    #FFFFFF;
  --black:    #131210;

  /* ---- Brand: Torch orange (the white-label swap point) ---- */
  --orange-50:  #FEF4EE;
  --orange-100: #FBE2D2;
  --orange-200: #F6C4A2;
  --orange-300: #EF9E6B;
  --orange-400: #E5763B;
  --orange-500: #D0561C;
  --orange-600: #B4380B;  /* primary fill — white text AA (5.3:1) */
  --orange-700: #922C08;
  --orange-800: #722308;

  /* ---- Blueprint blue (links, info) ---- */
  --blue-50:  #EEF5FA;
  --blue-100: #D3E5F1;
  --blue-200: #A6C9E1;
  --blue-500: #2B78AE;
  --blue-600: #175A8A;  /* link/info — white text AA (5.6:1) */
  --blue-700: #114869;

  /* ---- Green (pass / complete / active) ---- */
  --green-50:  #EDF6EF;
  --green-100: #CFE8D5;
  --green-200: #A3D3AE;
  --green-600: #15803D;  /* white text AA (4.9:1) */
  --green-700: #106230;

  /* ---- Red (fail / overdue / destructive) ---- */
  --red-50:  #FCEEED;
  --red-100: #F7D3D1;
  --red-200: #EFA9A6;
  --red-600: #C81E1E;  /* white text AA (5.4:1) */
  --red-700: #9E1616;

  /* ---- Amber (warning / attention) ---- */
  --amber-50:  #FDF6E7;
  --amber-100: #F9E8BF;
  --amber-200: #F1CE7A;
  --amber-500: #E39A0B;  /* fills — use dark text */
  --amber-700: #92610A;  /* warning text — AA on white (5.0:1) */

  /* ================= Semantic aliases ================= */

  /* Brand (theming: substitute these to white-label).
     Neutral default = graphite-dominant: graphite fills for primary actions,
     warm torch tint for selected/soft-brand surfaces, torch orange as accent.
     Dark AA-safe oranges drift red, so the unbranded default avoids an orange
     primary entirely — skins bring the color. */
  --brand-primary:          var(--gray-800);
  --brand-primary-hover:    var(--gray-900);
  --brand-primary-active:   var(--black);
  --brand-primary-contrast: var(--white);
  --brand-tint:             var(--orange-50);
  --brand-tint-border:      var(--orange-200);
  --brand-accent:           var(--orange-400);   /* torch — always paired with --brand-accent-contrast text */
  --brand-accent-contrast:  var(--gray-900);

  /* Surfaces */
  --surface-app:     var(--gray-100);
  --surface-card:    var(--white);
  --surface-sunken:  var(--gray-200);
  --surface-raised:  var(--white);
  --surface-inverse: var(--gray-900);
  --surface-hover:   var(--gray-100);
  --surface-active:  var(--gray-200);

  /* Text */
  --text-strong:  var(--gray-900);
  --text-body:    var(--gray-800);
  --text-muted:   var(--gray-600);
  --text-inverse: var(--gray-50);
  --text-on-brand: var(--brand-primary-contrast);
  --text-link:    var(--blue-600);
  --text-link-hover: var(--blue-700);

  /* Borders */
  --border-subtle:  var(--gray-200);
  --border-default: var(--gray-300);
  --border-strong:  var(--gray-400);
  --border-brand:   var(--brand-primary);

  /* Focus */
  --focus-ring:        var(--blue-600);
  --focus-ring-brand:  var(--brand-primary);

  /* Status: text / fill / tint-surface / tint-border */
  --status-success-fg:     var(--green-700);
  --status-success-solid:  var(--green-600);
  --status-success-tint:   var(--green-50);
  --status-success-border: var(--green-200);

  --status-danger-fg:      var(--red-700);
  --status-danger-solid:   var(--red-600);
  --status-danger-tint:    var(--red-50);
  --status-danger-border:  var(--red-200);

  --status-warning-fg:     var(--amber-700);
  --status-warning-solid:  var(--amber-500);
  --status-warning-tint:   var(--amber-50);
  --status-warning-border: var(--amber-200);

  --status-info-fg:        var(--blue-600);
  --status-info-solid:     var(--blue-600);
  --status-info-tint:      var(--blue-50);
  --status-info-border:    var(--blue-200);

  --status-neutral-fg:     var(--gray-700);
  --status-neutral-solid:  var(--gray-600);
  --status-neutral-tint:   var(--gray-100);
  --status-neutral-border: var(--gray-300);
}
