/* ── Tool resets inside the .nap shell ───────────────────────────────
   The NFL tools are token-driven off the site's theme tokens, so they
   already follow the light / dim / dark toggle on their own — nothing here
   should pin a palette. What they do need is to stop fighting the shell
   for layout: each carries a margin-top to clear the fixed site chrome
   (the shell already does that) and paints its own page background (which
   would tile a slab over the shell surface). */
.nap .nx-page,
.nap .mu-page,
.nap .rk-page,
.nap .prof-page,
.nap .nopt { margin-top: 0; }

.nap .nx-page,
.nap .mu-page,
.nap .rk-page,
.nap .prof-page { background: transparent; }

/* ── Optimizer ───────────────────────────────────────────────────────
   optimizer.css hardcodes a dark navy palette with a single light-theme
   override and no dim variant, so it ignored the site toggle. Alias its
   tokens to the site's instead. `:root .nap .nopt` is deliberate: it has to
   outrank optimizer.css's own `:root[data-theme="light"] .nopt`. */
:root .nap .nopt {
  --n-bg:      var(--bg-base);
  --n-bg2:     var(--bg-surface);
  --n-panel:   var(--bg-card);
  --n-panel2:  var(--bg-card-h);
  --n-line:    var(--border-card);
  --n-line2:   var(--border);
  --n-text:    var(--text-1);
  --n-text2:   var(--text-2);
  --n-text3:   var(--text-3);
  --n-accent:  var(--brand);
  --n-accent2: var(--brand);
}
/* Semantics keep their meaning but need different weights on light vs dark. */
:root[data-theme="light"] .nap .nopt { --n-green: #16a34a; --n-red: #dc2626; --n-amber: #b45309; }
:root:not([data-theme="light"]) .nap .nopt { --n-green: #35d07f; --n-red: #ff5f56; --n-amber: #ffb020; }
