/* nvllst — Web Awesome theme mapping
 *
 * Ports snglst/global.css §1–3 to nvllst's Stone-Parchment neutral
 * palette and Fathom/Ember/Grove brand scales.
 *
 * Load this AFTER tokens.css so our --brand-* variables are available,
 * and AFTER the WA kit script. :root specificity (0,1,0) beats the
 * kit's injected html rules (0,0,1), so our overrides win.
 *
 * Architecture mirrors snglst exactly:
 *   1. Raw tint scales  (--wa-color-neutral-{0-100})
 *   2. Semantic tokens  (fill / border / on × loud/moderate/normal/quiet)
 *   3. Surfaces + text
 *   Dark-mode block flips all semantic assignments.
 */


/* ==========================================================================
   1. RAW SCALES
   ========================================================================== */

:root {

  /* ─── Neutral: Stone-Parchment (warm near-achromatic) ─────────────────── */

  --wa-color-neutral-0:   #111110;   /* stone-dark     — ink-dark bg     */
  --wa-color-neutral-05:  #111110;
  --wa-color-neutral-10:  #111110;   /* stone-dark                        */
  --wa-color-neutral-20:  #262523;   /* stone          — dark card        */
  --wa-color-neutral-30:  #383633;   /* stone-light    — dark elevation   */
  --wa-color-neutral-40:  #54524E;   /* ash-dark       — dark border      */
  --wa-color-neutral-50:  #A09E9A;   /* ash            — muted text       */
  --wa-color-neutral-60:  #A09E9A;   /* ash (no 60 in palette — reuse 50) */
  --wa-color-neutral-70:  #C4C2BE;   /* ash-light      — light border     */
  --wa-color-neutral-80:  #DDDBD7;   /* parch-dark     — quiet border     */
  --wa-color-neutral-90:  #EBE9E3;   /* parchment      — well / lowered   */
  --wa-color-neutral-95:  #F1F0EB;   /* parch-mid      — page bg          */
  --wa-color-neutral-100: #F7F6F1;   /* parch-light    — card / white     */


  /* ─── Brand scale — points at --brand-* so Fathom/Ember/Grove switch ─── */

  --wa-color-brand-20:  var(--brand-20);
  --wa-color-brand-30:  var(--brand-30);
  --wa-color-brand-40:  var(--brand-40);
  --wa-color-brand-50:  var(--brand-50);
  --wa-color-brand-60:  var(--brand-60);
  --wa-color-brand-70:  var(--brand-70);
  --wa-color-brand-80:  var(--brand-80);
  --wa-color-brand-90:  var(--brand-90);
  --wa-color-brand-100: var(--brand-100);


  /* ─── Success, Warning, Danger — identical values to snglst ───────────── */

  --wa-color-success-30: #256A2E;  --wa-color-success-40: #318A3D;
  --wa-color-success-50: #3DA64A;  --wa-color-success-60: #5DBF6A;
  --wa-color-success-70: #89D393;  --wa-color-success-80: #B5E4BB;
  --wa-color-success-90: #DFF3E1;  --wa-color-success-100: #F4FAF5;
  --wa-color-success-20: #1A4A20;  --wa-color-success-10: #0F2B12;
  --wa-color-success-0:  #071207;

  --wa-color-warning-40: #BD9520;  --wa-color-warning-50: #D4A828;
  --wa-color-warning-60: #DFB94D;  --wa-color-warning-70: #E8CD7D;
  --wa-color-warning-80: #F1E0AD;  --wa-color-warning-90: #F9F1D9;
  --wa-color-warning-100: #FDFAF0; --wa-color-warning-30: #947318;
  --wa-color-warning-20: #6B5210;  --wa-color-warning-10: #3D2F08;
  --wa-color-warning-0:  #141003;

  --wa-color-danger-30: #9E2424;   --wa-color-danger-40: #BF3434;
  --wa-color-danger-50: #D44040;   --wa-color-danger-60: #DF6060;
  --wa-color-danger-70: #E88C8C;   --wa-color-danger-80: #F1B5B5;
  --wa-color-danger-90: #F9DCDC;   --wa-color-danger-100: #FDF4F4;
  --wa-color-danger-20: #6E1A1A;   --wa-color-danger-10: #3D0F0F;
  --wa-color-danger-0:  #140505;


/* ==========================================================================
   2. SEMANTIC TOKENS — light mode
   ========================================================================== */

  /* Brand */
  --wa-color-brand-fill-loud:       var(--wa-color-brand-30);
  --wa-color-brand-fill-moderate:   var(--wa-color-brand-20);
  --wa-color-brand-fill-normal:     var(--wa-color-brand-80);
  --wa-color-brand-fill-quiet:      var(--wa-color-brand-90);
  --wa-color-brand-border-loud:     var(--wa-color-brand-30);
  --wa-color-brand-border-moderate: var(--wa-color-brand-60);
  --wa-color-brand-border-normal:   var(--wa-color-brand-70);
  --wa-color-brand-border-quiet:    var(--wa-color-brand-80);
  --wa-color-brand-on-loud:         var(--wa-color-neutral-100);
  --wa-color-brand-on-moderate:     var(--wa-color-neutral-100);
  --wa-color-brand-on-normal:       var(--wa-color-brand-30);
  --wa-color-brand-on-quiet:        var(--wa-color-brand-20);

  /* Neutral */
  --wa-color-neutral-fill-loud:       var(--wa-color-neutral-10);
  --wa-color-neutral-fill-moderate:   var(--wa-color-neutral-30);
  --wa-color-neutral-fill-normal:     var(--wa-color-neutral-80);
  --wa-color-neutral-fill-quiet:      var(--wa-color-neutral-90);
  --wa-color-neutral-border-loud:     var(--wa-color-neutral-40);
  --wa-color-neutral-border-moderate: var(--wa-color-neutral-60);
  --wa-color-neutral-border-normal:   var(--wa-color-neutral-80);
  --wa-color-neutral-border-quiet:    var(--wa-color-neutral-90);
  --wa-color-neutral-on-loud:         var(--wa-color-neutral-100);
  --wa-color-neutral-on-moderate:     var(--wa-color-neutral-100);
  --wa-color-neutral-on-normal:       var(--wa-color-neutral-20);
  --wa-color-neutral-on-quiet:        var(--wa-color-neutral-10);

  /* Success */
  --wa-color-success-fill-loud:       var(--wa-color-success-30);
  --wa-color-success-fill-moderate:   var(--wa-color-success-20);
  --wa-color-success-fill-normal:     var(--wa-color-success-80);
  --wa-color-success-fill-quiet:      var(--wa-color-success-90);
  --wa-color-success-border-loud:     var(--wa-color-success-30);
  --wa-color-success-border-moderate: var(--wa-color-success-60);
  --wa-color-success-border-normal:   var(--wa-color-success-70);
  --wa-color-success-border-quiet:    var(--wa-color-success-80);
  --wa-color-success-on-loud:         var(--wa-color-neutral-100);
  --wa-color-success-on-moderate:     var(--wa-color-neutral-100);
  --wa-color-success-on-normal:       var(--wa-color-success-30);
  --wa-color-success-on-quiet:        var(--wa-color-success-20);

  /* Warning */
  --wa-color-warning-fill-loud:       var(--wa-color-warning-40);
  --wa-color-warning-fill-moderate:   var(--wa-color-warning-30);
  --wa-color-warning-fill-normal:     var(--wa-color-warning-80);
  --wa-color-warning-fill-quiet:      var(--wa-color-warning-90);
  --wa-color-warning-border-loud:     var(--wa-color-warning-40);
  --wa-color-warning-border-moderate: var(--wa-color-warning-60);
  --wa-color-warning-border-normal:   var(--wa-color-warning-70);
  --wa-color-warning-border-quiet:    var(--wa-color-warning-80);
  --wa-color-warning-on-loud:         var(--wa-color-neutral-0);
  --wa-color-warning-on-moderate:     var(--wa-color-neutral-0);
  --wa-color-warning-on-normal:       var(--wa-color-warning-30);
  --wa-color-warning-on-quiet:        var(--wa-color-warning-20);

  /* Danger */
  --wa-color-danger-fill-loud:       var(--wa-color-danger-30);
  --wa-color-danger-fill-moderate:   var(--wa-color-danger-20);
  --wa-color-danger-fill-normal:     var(--wa-color-danger-80);
  --wa-color-danger-fill-quiet:      var(--wa-color-danger-90);
  --wa-color-danger-border-loud:     var(--wa-color-danger-30);
  --wa-color-danger-border-moderate: var(--wa-color-danger-60);
  --wa-color-danger-border-normal:   var(--wa-color-danger-70);
  --wa-color-danger-border-quiet:    var(--wa-color-danger-80);
  --wa-color-danger-on-loud:         var(--wa-color-neutral-100);
  --wa-color-danger-on-moderate:     var(--wa-color-neutral-100);
  --wa-color-danger-on-normal:       var(--wa-color-danger-30);
  --wa-color-danger-on-quiet:        var(--wa-color-danger-20);

  /* Generic variant defaults */
  --wa-color-fill-loud:       var(--wa-color-neutral-fill-loud);
  --wa-color-fill-moderate:   var(--wa-color-neutral-fill-moderate);
  --wa-color-fill-normal:     var(--wa-color-neutral-fill-normal);
  --wa-color-fill-quiet:      var(--wa-color-neutral-fill-quiet);
  --wa-color-border-loud:     var(--wa-color-neutral-border-loud);
  --wa-color-border-moderate: var(--wa-color-neutral-border-moderate);
  --wa-color-border-normal:   var(--wa-color-neutral-border-normal);
  --wa-color-border-quiet:    var(--wa-color-neutral-border-quiet);
  --wa-color-on-loud:         var(--wa-color-neutral-on-loud);
  --wa-color-on-moderate:     var(--wa-color-neutral-on-moderate);
  --wa-color-on-normal:       var(--wa-color-neutral-on-normal);
  --wa-color-on-quiet:        var(--wa-color-neutral-on-quiet);


/* ==========================================================================
   3. SURFACES + TEXT — light mode
   ========================================================================== */

  --wa-color-surface-base:    var(--wa-color-neutral-95);  /* parch-mid — page bg   */
  --wa-color-surface-default: var(--wa-color-neutral-100); /* parch-light — inputs  */
  --wa-color-surface-raised:  var(--wa-color-neutral-100); /* parch-light — cards   */
  --wa-color-surface-lowered: var(--wa-color-neutral-90);  /* parchment — wells     */
  --wa-color-surface-overlay: rgba(17, 17, 16, 0.5);
  --wa-color-surface-border:  var(--wa-color-neutral-80);

  --wa-color-text:           var(--wa-color-neutral-10);
  --wa-color-text-normal:    var(--wa-color-neutral-10);
  --wa-color-text-quiet:     var(--wa-color-neutral-40);
  --wa-color-text-link:      var(--wa-color-brand-40);
  --wa-color-text-secondary: var(--wa-color-neutral-40);
  --wa-color-text-tertiary:  var(--wa-color-neutral-50);
  --wa-color-text-inverse:   var(--wa-color-neutral-100);
  --wa-color-text-brand:     var(--wa-color-brand-30);

  --wa-color-focus: var(--wa-color-brand-50);
  --wa-color-mix-hover:  black 10%;
  --wa-color-mix-active: black 20%;

  /* Fonts — literal stacks (WA kit overwrites --wa-font-* after us) */
  --wa-font-sans:  'IBM Plex Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  --wa-font-serif: 'IBM Plex Serif', Georgia, 'Times New Roman', serif;
  --wa-font-mono:  'IBM Plex Mono', 'SF Mono', Menlo, Consolas, monospace;

  accent-color: var(--wa-color-brand-fill-loud);
  color-scheme: light;
}


/* ==========================================================================
   DARK MODE — flip semantic assignments
   ========================================================================== */

[data-theme="dark"],
.wa-dark {

  /* Brand */
  --wa-color-brand-fill-loud:       var(--wa-color-brand-40);
  --wa-color-brand-fill-moderate:   var(--wa-color-brand-30);
  --wa-color-brand-fill-normal:     var(--wa-color-brand-20);
  --wa-color-brand-fill-quiet:      var(--wa-color-brand-20);
  --wa-color-brand-border-loud:     var(--wa-color-brand-50);
  --wa-color-brand-border-moderate: var(--wa-color-brand-40);
  --wa-color-brand-border-normal:   var(--wa-color-brand-30);
  --wa-color-brand-border-quiet:    var(--wa-color-brand-20);
  --wa-color-brand-on-loud:         var(--wa-color-neutral-100);
  --wa-color-brand-on-moderate:     var(--wa-color-neutral-100);
  --wa-color-brand-on-normal:       var(--wa-color-brand-70);
  --wa-color-brand-on-quiet:        var(--wa-color-brand-80);

  /* Neutral (flipped — loud = lighter) */
  --wa-color-neutral-fill-loud:       var(--wa-color-neutral-90);
  --wa-color-neutral-fill-moderate:   var(--wa-color-neutral-70);
  --wa-color-neutral-fill-normal:     var(--wa-color-neutral-30);
  --wa-color-neutral-fill-quiet:      var(--wa-color-neutral-20);
  --wa-color-neutral-border-loud:     var(--wa-color-neutral-60);
  --wa-color-neutral-border-moderate: var(--wa-color-neutral-40);
  --wa-color-neutral-border-normal:   var(--wa-color-neutral-30);
  --wa-color-neutral-border-quiet:    var(--wa-color-neutral-20);
  --wa-color-neutral-on-loud:         var(--wa-color-neutral-0);
  --wa-color-neutral-on-moderate:     var(--wa-color-neutral-0);
  --wa-color-neutral-on-normal:       var(--wa-color-neutral-80);
  --wa-color-neutral-on-quiet:        var(--wa-color-neutral-90);

  /* Success */
  --wa-color-success-fill-loud:       var(--wa-color-success-40);
  --wa-color-success-fill-moderate:   var(--wa-color-success-30);
  --wa-color-success-fill-normal:     var(--wa-color-success-10);
  --wa-color-success-fill-quiet:      var(--wa-color-success-0);
  --wa-color-success-border-loud:     var(--wa-color-success-50);
  --wa-color-success-border-moderate: var(--wa-color-success-40);
  --wa-color-success-border-normal:   var(--wa-color-success-30);
  --wa-color-success-border-quiet:    var(--wa-color-success-20);
  --wa-color-success-on-loud:         var(--wa-color-neutral-100);
  --wa-color-success-on-moderate:     var(--wa-color-neutral-100);
  --wa-color-success-on-normal:       var(--wa-color-success-70);
  --wa-color-success-on-quiet:        var(--wa-color-success-80);

  /* Warning */
  --wa-color-warning-fill-loud:       var(--wa-color-warning-50);
  --wa-color-warning-fill-moderate:   var(--wa-color-warning-40);
  --wa-color-warning-fill-normal:     var(--wa-color-warning-10);
  --wa-color-warning-fill-quiet:      var(--wa-color-warning-0);
  --wa-color-warning-border-loud:     var(--wa-color-warning-50);
  --wa-color-warning-border-moderate: var(--wa-color-warning-40);
  --wa-color-warning-border-normal:   var(--wa-color-warning-30);
  --wa-color-warning-border-quiet:    var(--wa-color-warning-20);
  --wa-color-warning-on-loud:         var(--wa-color-neutral-0);
  --wa-color-warning-on-moderate:     var(--wa-color-neutral-0);
  --wa-color-warning-on-normal:       var(--wa-color-warning-70);
  --wa-color-warning-on-quiet:        var(--wa-color-warning-80);

  /* Danger */
  --wa-color-danger-fill-loud:       var(--wa-color-danger-40);
  --wa-color-danger-fill-moderate:   var(--wa-color-danger-30);
  --wa-color-danger-fill-normal:     var(--wa-color-danger-10);
  --wa-color-danger-fill-quiet:      var(--wa-color-danger-0);
  --wa-color-danger-border-loud:     var(--wa-color-danger-50);
  --wa-color-danger-border-moderate: var(--wa-color-danger-40);
  --wa-color-danger-border-normal:   var(--wa-color-danger-30);
  --wa-color-danger-border-quiet:    var(--wa-color-danger-20);
  --wa-color-danger-on-loud:         var(--wa-color-neutral-100);
  --wa-color-danger-on-moderate:     var(--wa-color-neutral-100);
  --wa-color-danger-on-normal:       var(--wa-color-danger-70);
  --wa-color-danger-on-quiet:        var(--wa-color-danger-80);

  /* Generic variant defaults */
  --wa-color-fill-loud:       var(--wa-color-neutral-fill-loud);
  --wa-color-fill-moderate:   var(--wa-color-neutral-fill-moderate);
  --wa-color-fill-normal:     var(--wa-color-neutral-fill-normal);
  --wa-color-fill-quiet:      var(--wa-color-neutral-fill-quiet);
  --wa-color-border-loud:     var(--wa-color-neutral-border-loud);
  --wa-color-border-moderate: var(--wa-color-neutral-border-moderate);
  --wa-color-border-normal:   var(--wa-color-neutral-border-normal);
  --wa-color-border-quiet:    var(--wa-color-neutral-border-quiet);
  --wa-color-on-loud:         var(--wa-color-neutral-on-loud);
  --wa-color-on-moderate:     var(--wa-color-neutral-on-moderate);
  --wa-color-on-normal:       var(--wa-color-neutral-on-normal);
  --wa-color-on-quiet:        var(--wa-color-neutral-on-quiet);

  /* Surfaces — dark stone backgrounds */
  --wa-color-surface-base:    var(--wa-color-neutral-10);  /* stone-dark — page bg  */
  --wa-color-surface-default: var(--wa-color-neutral-20);  /* stone — form controls */
  --wa-color-surface-raised:  var(--wa-color-neutral-20);  /* stone — cards         */
  --wa-color-surface-lowered: var(--wa-color-neutral-0);
  --wa-color-surface-overlay: rgba(0, 0, 0, 0.6);
  --wa-color-surface-border:  var(--wa-color-neutral-20);

  /* Text — light on dark */
  --wa-color-text:           var(--wa-color-neutral-90);
  --wa-color-text-normal:    var(--wa-color-neutral-90);
  --wa-color-text-quiet:     var(--wa-color-neutral-60);
  --wa-color-text-link:      var(--wa-color-brand-60);
  --wa-color-text-secondary: var(--wa-color-neutral-60);
  --wa-color-text-tertiary:  var(--wa-color-neutral-50);
  --wa-color-text-inverse:   var(--wa-color-neutral-10);
  --wa-color-text-brand:     var(--wa-color-brand-60);

  --wa-color-focus: var(--wa-color-brand-50);
  --wa-color-mix-hover:  black 8%;
  --wa-color-mix-active: black 16%;

  accent-color: var(--wa-color-brand-50);
  color-scheme: dark;
}
