/*
 * Product-wide finish layer.
 * Keeps the frozen IA/DOM intact and only refines tokens, surfaces, states and motion.
 */

body {
  background:
    radial-gradient(circle at 12% -8%, color-mix(in srgb, var(--nx-blue-soft) 66%, transparent), transparent 31rem),
    var(--nx-page);
  font-feature-settings: "kern" 1, "ss01" 1;
  letter-spacing: -.012em;
}

::selection { background: color-mix(in srgb, var(--nx-blue) 24%, transparent); }

:where(button, a, input, select, summary) { touch-action: manipulation; }
:where(button, a, summary) { transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease, box-shadow 180ms ease, transform 180ms ease; }

/* Deferred and unknown routes remain visibly unavailable while sharing the
   finished product language. */
.nx-placeholder { position: relative; isolation: isolate; }
.nx-placeholder::before {
  position: absolute;
  z-index: -1;
  inset: 7% -9% auto auto;
  width: min(44vw, 620px);
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle, rgb(91 104 207 / 12%), transparent 68%);
  content: "";
  pointer-events: none;
}
.nx-placeholder__copy h1 { color: var(--nx-navy); }
.nx-placeholder__copy p { color: var(--nx-sub); }
.nx-placeholder__copy .nx-eyebrow { color: var(--nx-blue-strong); }
.nx-placeholder__art {
  border-color: color-mix(in srgb, var(--nx-blue) 18%, var(--nx-line));
  background:
    radial-gradient(circle at 30% 27%, rgb(255 255 255 / 88%) 0 12%, transparent 13%),
    linear-gradient(145deg, #f7f8ff, #e8ebff 58%, #e5f5f1);
  color: var(--nx-blue-strong);
  box-shadow: var(--nx-shadow-xl);
}
.nx-button { border-color: var(--nx-line); background: var(--nx-paper); color: var(--nx-ink); box-shadow: var(--nx-shadow-sm); }
.nx-button--primary { border-color: transparent; background: linear-gradient(135deg, var(--nx-blue-fill-strong), var(--nx-blue-fill)); color: #fff; }

/* Shared shell */
.nx-header {
  background: color-mix(in srgb, var(--nx-paper) 91%, transparent);
  border-bottom-color: color-mix(in srgb, var(--nx-line) 72%, transparent);
  box-shadow: 0 1px 0 rgb(255 255 255 / 45%);
}
.nx-header__inner { gap: clamp(12px, 1.7vw, 24px); }
.nx-brand { color: var(--nx-blue-strong); }
.nx-brand b { color: var(--nx-navy); font-weight: 900; letter-spacing: -.07em; }
.nx-nav { gap: 4px; }
.nx-nav a,
.nx-nav button { border-radius: 13px; color: var(--nx-sub); height: 44px; padding-inline: 11px; }
.nx-nav a:hover,
.nx-nav button:hover { background: var(--nx-paper-soft); color: var(--nx-navy); }
.nx-nav a[aria-current=page],
.nx-nav button[aria-pressed=true] { color: var(--nx-blue-strong); }
.nx-nav a[aria-current=page]::after { left: 11px; right: 11px; height: 3px; }
.nx-nav:not(.nx-nav--map) a:last-child {
  border-color: color-mix(in srgb, var(--nx-blue) 18%, var(--nx-line));
  background: var(--nx-blue-soft);
  color: var(--nx-blue-strong);
}
.nx-nav--map { border-color: var(--nx-line); background: var(--nx-paper-soft); }
.nx-nav--map button[aria-pressed=true] { background: var(--nx-paper-elevated); box-shadow: var(--nx-shadow-sm); color: var(--nx-blue-strong); }
/* 닫힌 표면의 개수 뱃지 — 테두리는 뱃지가 앉은 판(도크)의 색이어야 도크에서 떠 보인다.
   토큰으로 칠하므로 다크에서도 같은 규칙이 그대로 성립한다. */
.nx-nav-badge { background: var(--nx-blue-fill); border-color: var(--nx-paper-soft); color: #fff; }
.nx-nav--map button[aria-pressed=true] .nx-nav-badge { border-color: var(--nx-paper-elevated); }
.nx-mobile-nav .nx-nav-badge { border-color: var(--nx-paper); }
.nx-global-search {
  border-color: var(--nx-line);
  background: var(--nx-paper-soft);
  color: var(--nx-sub);
}
.nx-global-search:focus-within { border-color: color-mix(in srgb, var(--nx-blue) 52%, var(--nx-line)); background: var(--nx-paper-elevated); box-shadow: 0 0 0 4px color-mix(in srgb, var(--nx-blue) 10%, transparent); }
.nx-global-search > .nx-icon,
.nx-global-search button { color: var(--nx-blue); }
.nx-global-search input { color: var(--nx-ink); }
.nx-global-search button { background: var(--nx-paper-elevated); box-shadow: var(--nx-shadow-sm); }
.nx-icon-button { background: var(--nx-paper-soft); color: var(--nx-sub); }
.nx-icon-button:hover { background: var(--nx-blue-soft); color: var(--nx-blue-strong); transform: translateY(-1px); }
.nx-review-menu > summary { border-color: var(--nx-line); background: var(--nx-paper); color: var(--nx-ink); }
.nx-review-menu > summary:hover { border-color: var(--nx-line-strong); background: var(--nx-paper-soft); }
.nx-review-menu__panel,
.nx-search-results:not(.mnp-suggestions) { border-color: var(--nx-line); background: color-mix(in srgb, var(--nx-paper-elevated) 96%, transparent); box-shadow: var(--nx-shadow-float); }
.nx-review-menu__panel > header,
.nx-search-results__footer { border-color: var(--nx-line); }
.nx-review-menu__panel > header strong,
.nx-search-results__item strong { color: var(--nx-navy); }
.nx-review-menu__panel > header span,
.nx-search-results__item small,
.nx-search-results__footer p { color: var(--nx-sub); }
.nx-review-menu__group a { color: var(--nx-ink); }
.nx-review-menu__more > summary { color: var(--nx-sub); }
.nx-review-menu__more > div { border-left-color: var(--nx-line); }
.nx-review-menu__group a:hover,
.nx-search-results__item:hover,
.nx-search-results__item[data-active] { background: var(--nx-blue-soft); color: var(--nx-blue-strong); }
.nx-search-results__recent { border-bottom-color: var(--nx-line); }
.nx-search-results__recent h3,
.nx-search-results .nx-search-results__recent button.nx-search-results__recent-clear,
.nx-search-results .nx-search-results__recent button.nx-search-results__recent-drop { background: transparent; color: var(--nx-sub); }
.nx-search-results .nx-search-results__recent button.nx-search-results__recent-clear:hover,
.nx-search-results .nx-search-results__recent button.nx-search-results__recent-clear:focus-visible,
.nx-search-results .nx-search-results__recent button.nx-search-results__recent-drop:hover,
.nx-search-results .nx-search-results__recent button.nx-search-results__recent-drop:focus-visible { background: var(--nx-blue-soft); color: var(--nx-blue-strong); }

/* Map every screen-local palette onto one product language. */
.tone-home-final { --hf-indigo: var(--nx-blue); --hf-indigo-deep: var(--nx-blue-strong); --hf-ink: var(--nx-navy); --hf-sub: var(--nx-sub); --hf-muted: var(--nx-muted); --hf-line: var(--nx-line); --hf-page: var(--nx-page); --hf-soft: var(--nx-blue-soft); --hf-paper: var(--nx-paper); }
.prices-final-a { --pfa-blue: var(--nx-blue); --pfa-blue-dark: var(--nx-blue-strong); --pfa-ink: var(--nx-navy); --pfa-sub: var(--nx-sub); --pfa-line: var(--nx-line); --pfa-page: var(--nx-page); }
.tone-sido-fable-clean-a { --sida-indigo: var(--nx-blue); --sida-indigo-deep: var(--nx-blue-strong); --sida-ink: var(--nx-navy); --sida-copy: var(--nx-sub); --sida-line: var(--nx-line); --sida-page: var(--nx-page); }
.tone-gu-fable-clean-a { --gua-indigo: var(--nx-blue); --gua-indigo-deep: var(--nx-blue-strong); --gua-ink: var(--nx-navy); --gua-sub: var(--nx-sub); --gua-muted: var(--nx-muted); --gua-line: var(--nx-line); --gua-page: var(--nx-page); --gua-soft: var(--nx-blue-soft); }
.tone-trend-fable-clean-b { --trb-indigo: var(--nx-blue); --trb-indigo-deep: var(--nx-blue-strong); --trb-navy: var(--nx-navy); --trb-ink: var(--nx-ink); --trb-sub: var(--nx-sub); --trb-muted: var(--nx-muted); --trb-line: var(--nx-line); --trb-page: var(--nx-page); --trb-soft: var(--nx-blue-soft); }
.tone-report-fable-clean-b { --rfb-indigo: var(--nx-blue); --rfb-indigo-deep: var(--nx-blue-strong); --rfb-navy: var(--nx-navy); --rfb-copy: var(--nx-sub); --rfb-muted: var(--nx-muted); --rfb-line: var(--nx-line); --rfb-page: var(--nx-page); --rfb-soft: var(--nx-blue-soft); }
.tone-personal-final { --pfs-indigo: var(--nx-blue); --pfs-indigo-deep: var(--nx-blue-strong); --pfs-ink: var(--nx-navy); --pfs-sub: var(--nx-sub); --pfs-muted: var(--nx-muted); --pfs-line: var(--nx-line); --pfs-page: var(--nx-page); --pfs-soft: var(--nx-blue-soft); }
.tone-account-fable-final-a { --affa-indigo: var(--nx-blue); --affa-indigo-deep: var(--nx-blue-strong); --affa-ink: var(--nx-navy); --affa-sub: var(--nx-sub); --affa-muted: var(--nx-muted); --affa-line: var(--nx-line); --affa-page: var(--nx-page); --affa-soft: var(--nx-blue-soft); }
.tone-cheongyak-fable-a { --cfa-indigo: var(--nx-blue); --cfa-indigo-deep: var(--nx-blue-strong); --cfa-ink: var(--nx-navy); --cfa-sub: var(--nx-sub); --cfa-muted: var(--nx-muted); --cfa-line: var(--nx-line); --cfa-page: var(--nx-page); --cfa-soft: var(--nx-blue-soft); }
.tone-cheongyak-detail-final-a { --cdfa-indigo: var(--nx-blue); --cdfa-indigo-deep: var(--nx-blue-strong); --cdfa-ink: var(--nx-navy); --cdfa-sub: var(--nx-sub); --cdfa-muted: var(--nx-muted); --cdfa-line: var(--nx-line); --cdfa-page: var(--nx-page); --cdfa-soft: var(--nx-blue-soft); }
.tone-compare-final-a { --cpa-indigo: var(--nx-blue); --cpa-indigo-deep: var(--nx-blue-strong); --cpa-navy: var(--nx-navy); --cpa-ink: var(--nx-ink); --cpa-sub: var(--nx-sub); --cpa-muted: var(--nx-muted); --cpa-line: var(--nx-line); --cpa-page: var(--nx-page); --cpa-paper: var(--nx-paper); --cpa-soft: var(--nx-blue-soft); }
.tone-calc-hub-fable-clean-a { --cha-indigo: var(--nx-blue); --cha-indigo-deep: var(--nx-blue-strong); --cha-navy: var(--nx-navy); --cha-ink: var(--nx-ink); --cha-sub: var(--nx-sub); --cha-muted: var(--nx-muted); --cha-line: var(--nx-line); --cha-page: var(--nx-page); --cha-soft: var(--nx-blue-soft); --cha-paper: var(--nx-paper); }
.tone-calc-detail-fable-a { --cda-indigo: var(--nx-blue); --cda-indigo-deep: var(--nx-blue-strong); --cda-navy: var(--nx-navy); --cda-ink: var(--nx-ink); --cda-sub: var(--nx-sub); --cda-muted: var(--nx-muted); --cda-line: var(--nx-line); --cda-page: var(--nx-page); --cda-soft: var(--nx-blue-soft); --cda-paper: var(--nx-paper); }
.tone-scorecard-fable-final-a { --sfa-indigo: var(--nx-blue); --sfa-indigo-deep: var(--nx-blue-strong); --sfa-navy: var(--nx-navy); --sfa-ink: var(--nx-ink); --sfa-sub: var(--nx-sub); --sfa-muted: var(--nx-muted); --sfa-line: var(--nx-line); --sfa-page: var(--nx-page); --sfa-soft: var(--nx-blue-soft); --sfa-paper: var(--nx-paper); }
.tone-budget-final-a { --bfa-indigo: var(--nx-blue); --bfa-indigo-deep: var(--nx-blue-strong); --bfa-navy: var(--nx-navy); --bfa-ink: var(--nx-ink); --bfa-sub: var(--nx-sub); --bfa-muted: var(--nx-muted); --bfa-line: var(--nx-line); --bfa-page: var(--nx-page); --bfa-soft: var(--nx-blue-soft); --bfa-paper: var(--nx-paper); }
.tone-content-index-fable-final-a { --cia-indigo: var(--nx-blue); --cia-indigo-deep: var(--nx-blue-strong); --cia-ink: var(--nx-navy); --cia-sub: var(--nx-sub); --cia-muted: var(--nx-muted); --cia-line: var(--nx-line); --cia-page: var(--nx-page); --cia-soft: var(--nx-blue-soft); }
.tone-article-final-b { --afb-indigo: var(--nx-blue); --afb-indigo-deep: var(--nx-blue-strong); --afb-ink: var(--nx-navy); --afb-sub: var(--nx-sub); --afb-muted: var(--nx-muted); --afb-line: var(--nx-line); --afb-page: var(--nx-page); --afb-soft: var(--nx-blue-soft); }
.tone-method-fable-final-a { --mffa-indigo: var(--nx-blue); --mffa-indigo-deep: var(--nx-blue-strong); --mffa-ink: var(--nx-navy); --mffa-copy: var(--nx-sub); --mffa-muted: var(--nx-muted); --mffa-line: var(--nx-line); --mffa-page: var(--nx-page); --mffa-soft: var(--nx-blue-soft); }
.mnp-root { --mnp-ink: var(--nx-navy); --mnp-copy: var(--nx-sub); --mnp-muted: var(--nx-muted); --mnp-line: var(--nx-line); --mnp-line-strong: var(--nx-line-strong); --mnp-indigo: var(--nx-blue); --mnp-indigo-deep: var(--nx-blue-strong); --mnp-indigo-soft: var(--nx-blue-soft); --mnp-shadow: var(--nx-shadow-float); }

/* Airier, more tactile light surfaces. */
:is(
  .tone-home-final :is(.hfa-today, .hfa-popular, .hfa-nation, .hfa-tools a, .hfa-article),
  .prices-final-a :is(.pfa-summary, .pfa-ranking, .pfa-movers, .pfa-distribution, .pfa-regions),
  .tone-sido-fable-clean-a :is(.sida-ranking, .sida-trend),
  .tone-gu-fable-clean-a :is(.gua-trend, .gua-dongs, .gua-complexes, .gua-recent),
  .tone-personal-final :is(.pfs-library, .pfs-cheongyak, .pfs-tool),
  .tone-account-fable-final-a :is(.affa-overview, .affa-notice),
  .tone-cheongyak-fable-a :is(.cfa-filters, .cfa-master, .cfa-detail),
  .tone-cheongyak-detail-final-a :is(.cdfa-fact-sheet, .cdfa-exits),
  .tone-compare-final-a :is(.cpa-picker, .cpa-metrics, .cpa-trend, .cpa-area, .cpa-exits),
  .tone-calc-detail-fable-a :is(.cda-input, .cda-result, .cda-basis, .cda-related-link),
  .tone-scorecard-fable-final-a :is(.sfa-input, .sfa-facts, .sfa-disclaimer, .sfa-exit),
  .tone-budget-final-a :is(.bfa-input, .bfa-results, .bfa-assumptions),
  .tone-content-index-fable-final-a .cia-list-surface,
  .tone-article-final-b :is(.afb-body, .afb-state),
  .tone-method-fable-final-a .mffa-section,
  .tone-trend-fable-clean-b .trb-section
) {
  border-color: color-mix(in srgb, var(--nx-line) 92%, transparent);
  box-shadow: var(--nx-shadow-sm);
}

:is(
  .tone-home-final .hfa-nation-link,
  .tone-home-final .hfa-tools a,
  .tone-home-final .hfa-article,
  .tone-calc-hub-fable-clean-a .cha-tool,
  .tone-calc-detail-fable-a .cda-related-link,
  .tone-personal-final .pfs-tool,
  .tone-compare-final-a .cpa-exit-card
):hover { box-shadow: var(--nx-shadow-sm); transform: translateY(-3px); }

.tone-home-final .hfa-search > span { border-color: color-mix(in srgb, var(--nx-blue) 18%, var(--nx-line)); box-shadow: var(--nx-shadow-lg); }
.tone-home-final .hfa-search button,
.tone-scorecard-fable-final-a .sfa-submit { background: linear-gradient(135deg, var(--nx-blue-fill-strong), var(--nx-blue-fill)); box-shadow: 0 10px 24px color-mix(in srgb, var(--nx-blue) 27%, transparent); }
.tone-home-final .hfa-saved { background: linear-gradient(135deg, #eef0ff 0%, #f4f3ff 55%, #eef9f6 100%); border-color: #daddff; box-shadow: 0 14px 38px rgb(51 62 150 / 9%); }
.tone-home-final .hfa-tools .hfa-play { background: linear-gradient(135deg, #f2f3ff 0%, #f7f4ff 56%, #f0faf7 100%); border-color: #dfe2ff; }
.tone-home-final .hfa-nation-link { border-radius: 20px; }
.tone-home-final .hfa-nation-link__art { border-radius: 15px; }
.tone-home-final .hfa-tools a > i { background: linear-gradient(145deg, #eef0ff, #f4f6ff); }

/* Honest states gain their own visual character without hiding their labels. */
.tone-personal-final .pfs-library-empty,
.tone-content-index-fable-final-a .cia-empty,
.tone-article-final-b .afb-state {
  background-color: #f1f3ff;
  background-image: linear-gradient(90deg, #f1f3ff 0 58%, rgb(241 243 255 / 74%) 70%, transparent 88%), url("/assets/illustrations/state-empty-search-v1-210w.webp");
  background-image: linear-gradient(90deg, #f1f3ff 0 58%, rgb(241 243 255 / 74%) 70%, transparent 88%), image-set(url("/assets/illustrations/state-empty-search-v1-210w.webp") 1x, url("/assets/illustrations/state-empty-search-v1-560w.webp") 2x);
  background-position: 0 0, right center;
  background-repeat: no-repeat;
  background-size: auto, 210px 210px;
  border: 1px solid #dfe2ff;
  min-height: 188px;
  padding-right: 220px;
}
.tone-article-final-b[data-data-state="invalid"] .afb-state,
.tone-article-final-b[data-data-state="unavailable"] .afb-state,
.tone-content-index-fable-final-a[data-data-state="invalid"] .cia-empty,
.tone-content-index-fable-final-a[data-data-state="unavailable"] .cia-empty {
  background-color: #edf7f5;
  background-image: linear-gradient(90deg, #edf7f5 0 58%, rgb(237 247 245 / 74%) 70%, transparent 88%), url("/assets/illustrations/state-unavailable-signal-v1-210w.webp");
  background-image: linear-gradient(90deg, #edf7f5 0 58%, rgb(237 247 245 / 74%) 70%, transparent 88%), image-set(url("/assets/illustrations/state-unavailable-signal-v1-210w.webp") 1x, url("/assets/illustrations/state-unavailable-signal-v1-560w.webp") 2x);
  border-color: #d2ebe6;
}
.mnp-ranking-empty,
.mnp-results-empty {
  background: linear-gradient(180deg, rgb(237 247 245 / 24%), #edf7f5), url("/assets/illustrations/state-unavailable-signal-v1-210w.webp") center 18px / 132px 132px no-repeat;
  background: linear-gradient(180deg, rgb(237 247 245 / 24%), #edf7f5), image-set(url("/assets/illustrations/state-unavailable-signal-v1-210w.webp") 1x, url("/assets/illustrations/state-unavailable-signal-v1-560w.webp") 2x) center 18px / 132px 132px no-repeat;
  border: 1px solid #d7ebe7;
  border-radius: 22px;
  margin: 0 20px 20px;
  min-height: 330px;
  padding-top: 142px;
}
.mnp-ranking-empty > span,
.mnp-results-empty > span { display: none; }

/* Map chrome: calmer canvas, stronger floating hierarchy. */
.mnp-root { --mnp-page: #e8eef2; }
.mnp-canvas { background: linear-gradient(145deg, #e8eff3, #dfe9ee); }
.mnp-map-plane { opacity: .72; }
.mnp-omni,
.mnp-card,
.mnp-my,
.mnp-list,
.mnp-layers,
.mnp-guide { backdrop-filter: blur(22px) saturate(1.1); border-color: color-mix(in srgb, var(--nx-line) 74%, white); box-shadow: var(--nx-shadow-float); }
.mnp-omni { border-radius: 28px; }
.mnp-ai-close { background: var(--nx-paper-elevated); border-color: var(--nx-line); color: var(--nx-sub); }
.mnp-ai-close:hover { background: var(--nx-paper); color: var(--nx-ink); }
.mnp-search > div:first-of-type { border-radius: 18px; }
.mnp-search button[type="submit"] { background: linear-gradient(135deg, var(--nx-blue-fill-strong), var(--nx-blue-fill)); box-shadow: 0 9px 22px color-mix(in srgb, var(--nx-blue) 28%, transparent); }
.mnp-condition-chip,
.mnp-condition-strip > button { border-color: color-mix(in srgb, var(--nx-blue) 20%, var(--nx-line)); }
.mnp-card { border-radius: 28px 0 0 28px; }
.mnp-space-switch { border-radius: 20px; box-shadow: var(--nx-shadow-float); }

/* Dark mode: all screens remain fully usable, not merely inverted. */
/* Narrow screens lay copy over the illustration. Protect the copy's upper-left
   reading zone, then release the scrim toward the lower-right where the art
   carries the hero. A full-height veil made the illustration disappear. */
@media (prefers-color-scheme: light) and (max-width: 760px) {
  :is(
    .tone-home-final .hf-hero-art,
    .prices-final-a .pfa-hero-art,
    .tone-personal-final .pfs-heading__art,
    .tone-account-fable-final-a .affa-hero__art,
    .tone-cheongyak-fable-a .cfa-hero__art,
    .tone-cheongyak-detail-final-a .cdfa-hero__art,
    .tone-compare-final-a .cpa-hero__art,
    .tone-calc-hub-fable-clean-a .cha-hero__visual,
    .tone-calc-detail-fable-a .cda-hero__visual,
    .tone-scorecard-fable-final-a .sfa-hero__visual,
    .tone-content-index-fable-final-a .cia-hero__art,
    .tone-article-final-b .afb-hero__art,
    .tone-method-fable-final-a .mffa-hero-art,
    .tone-trend-fable-clean-b .trb-basis figure,
    .tone-sido-fable-clean-a .sida-context,
    .tone-gu-fable-clean-a .gua-head,
    .tone-report-fable-clean-b .rfb-identity
  )::after {
    background: linear-gradient(132deg,
      var(--nx-paper) 0 31%,
      color-mix(in srgb, var(--nx-paper) 96%, transparent) 45%,
      color-mix(in srgb, var(--nx-paper) 72%, transparent) 61%,
      color-mix(in srgb, var(--nx-paper) 24%, transparent) 79%,
      transparent 96%);
  }
}

@media (prefers-color-scheme: dark) {
  html { background: var(--nx-page); }
  body { color: var(--nx-ink); }
  body::after { background: linear-gradient(145deg, #19275f, #3d4ac0 58%, #6373e3); }
  .nx-header { box-shadow: 0 1px 0 rgb(255 255 255 / 4%), 0 14px 34px rgb(0 0 0 / 10%); }
  .nx-global-search button,
  .nx-review-menu__panel > header button { background: var(--nx-paper-elevated); color: var(--nx-blue-strong); }
  .nx-search-results__item > i,
  .nx-search-results__item > em,
  .nx-search-results .nx-search-results__submit { background: var(--nx-blue-soft); color: var(--nx-blue-strong); }
  .nx-review-menu__group h2 { color: var(--nx-muted); }
  .nx-review-menu__more > summary { color: var(--nx-muted); }

  :is(
    .tone-home-final .hf,
    .prices-final-a,
    .tone-sido-fable-clean-a,
    .tone-gu-fable-clean-a,
    .tone-trend-fable-clean-b .trb-page,
    .tone-report-fable-clean-b,
    .tone-personal-final .pfs,
    .tone-account-fable-final-a .affa,
    .tone-cheongyak-fable-a,
    .tone-cheongyak-detail-final-a .cdfa,
    .tone-compare-final-a .cpa-page,
    .tone-calc-hub-fable-clean-a .cha-page,
    .tone-calc-detail-fable-a .cda-page,
    .tone-scorecard-fable-final-a .sfa-page,
    .tone-budget-final-a .bfa-page,
    .tone-content-index-fable-final-a,
    .tone-article-final-b,
    .tone-method-fable-final-a
  ) { background: var(--nx-page); color: var(--nx-ink); }

  :is(
    .tone-home-final .hfa-search-hero,
    .prices-final-a .pfa-context,
    .tone-sido-fable-clean-a .sida-context,
    .tone-gu-fable-clean-a .gua-head,
    .tone-trend-fable-clean-b .trb-basis,
    .tone-personal-final .pfs-heading,
    .tone-account-fable-final-a .affa-hero,
    .tone-cheongyak-fable-a .cfa-hero,
    .tone-cheongyak-detail-final-a .cdfa-hero,
    .tone-compare-final-a .cpa-hero,
    .tone-calc-hub-fable-clean-a .cha-hero,
    .tone-calc-detail-fable-a .cda-hero,
    .tone-scorecard-fable-final-a .sfa-hero,
    .tone-budget-final-a .bfa-hero,
    .tone-content-index-fable-final-a .cia-hero,
    .tone-article-final-b .afb-hero,
    .tone-method-fable-final-a .mffa-hero
  ) { background: var(--nx-paper); border-color: var(--nx-line); }

  :is(
    .tone-home-final .hf-hero-art,
    .prices-final-a .pfa-hero-art,
    .tone-sido-fable-clean-a .sida-artboard,
    .tone-gu-fable-clean-a .gua-head-art,
    .tone-trend-fable-clean-b .trb-basis figure,
    .tone-personal-final .pfs-heading__art,
    .tone-account-fable-final-a .affa-hero__art,
    .tone-cheongyak-fable-a .cfa-hero__art,
    .tone-cheongyak-detail-final-a .cdfa-hero__art,
    .tone-compare-final-a .cpa-hero__art,
    .tone-calc-hub-fable-clean-a .cha-hero__visual,
    .tone-calc-detail-fable-a .cda-hero__visual,
    .tone-scorecard-fable-final-a .sfa-hero__visual,
    .tone-budget-final-a .bfa-hero__art,
    .tone-content-index-fable-final-a .cia-hero__art,
    .tone-article-final-b .afb-hero__art,
    .tone-method-fable-final-a .mffa-hero-art,
    .tone-report-fable-clean-b .rfb-identity-art
  ) img { filter: brightness(var(--nx-art-dim, .45)) saturate(.82) contrast(1.05); }

  .tone-home-final .hf-hero-art::after,
  .prices-final-a .pfa-hero-art::after,
  .tone-personal-final .pfs-heading__art::after,
  .tone-account-fable-final-a .affa-hero__art::after,
  .tone-cheongyak-fable-a .cfa-hero__art::after,
  .tone-cheongyak-detail-final-a .cdfa-hero__art::after,
  .tone-compare-final-a .cpa-hero__art::after,
  .tone-calc-hub-fable-clean-a .cha-hero__visual::after,
  .tone-calc-detail-fable-a .cda-hero__visual::after,
  .tone-scorecard-fable-final-a .sfa-hero__visual::after,
  .tone-budget-final-a .bfa-hero__art::after,
  .tone-content-index-fable-final-a .cia-hero__art::after,
  .tone-article-final-b .afb-hero__art::after,
  .tone-method-fable-final-a .mffa-hero-art::after { background: linear-gradient(90deg, var(--nx-paper) 0 38%, color-mix(in srgb, var(--nx-paper) 92%, transparent) 50%, color-mix(in srgb, var(--nx-paper) 42%, transparent) 72%, transparent 94%); }
  .tone-sido-fable-clean-a .sida-context::after,
  .tone-gu-fable-clean-a .gua-head::after { background: linear-gradient(90deg, var(--nx-paper) 0 38%, color-mix(in srgb, var(--nx-paper) 90%, transparent) 53%, color-mix(in srgb, var(--nx-paper) 36%, transparent) 76%, transparent 96%); }
  .tone-report-fable-clean-b .rfb-identity::after { background: linear-gradient(90deg, var(--nx-paper) 0 36%, color-mix(in srgb, var(--nx-paper) 90%, transparent) 52%, color-mix(in srgb, var(--nx-paper) 28%, transparent) 78%, transparent); }

  :is(
    .tone-home-final :is(.hfa-today, .hfa-popular, .hfa-nation, .hfa-tools a, .hfa-article),
    .prices-final-a :is(.pfa-summary, .pfa-ranking, .pfa-movers, .pfa-distribution, .pfa-regions),
    .tone-sido-fable-clean-a :is(.sida-ranking, .sida-trend),
    .tone-gu-fable-clean-a :is(.gua-trend, .gua-dongs, .gua-complexes, .gua-recent),
    .tone-trend-fable-clean-b .trb-section,
    .tone-personal-final :is(.pfs-library, .pfs-card, .pfs-cheongyak, .pfs-tool),
    .tone-account-fable-final-a :is(.affa-overview, .affa-notice, .affa-notice__rows > section),
    .tone-cheongyak-fable-a :is(.cfa-filters, .cfa-data-state, .cfa-master, .cfa-detail, .cfa-notice),
    .tone-cheongyak-detail-final-a :is(.cdfa-data-state, .cdfa-fact-sheet, .cdfa-exits),
    .tone-compare-final-a :is(.cpa-picker, .cpa-metrics, .cpa-trend, .cpa-area, .cpa-exits, .cpa-exit-card),
    .tone-calc-hub-fable-clean-a :is(.cha-tool, .cha-index),
    .tone-calc-detail-fable-a :is(.cda-input, .cda-result, .cda-basis, .cda-related-link),
    .tone-scorecard-fable-final-a :is(.sfa-input, .sfa-facts, .sfa-disclaimer, .sfa-exit),
    .tone-budget-final-a :is(.bfa-input, .bfa-results, .bfa-assumptions),
    .tone-content-index-fable-final-a .cia-list-surface,
    .tone-article-final-b :is(.afb-body, .afb-state),
    .tone-method-fable-final-a .mffa-section
  ) { background: var(--nx-paper); border-color: var(--nx-line); color: var(--nx-ink); }

  :is(
    .tone-home-final .hfa-popular__head,
    .prices-final-a .pfa-table__head,
    .tone-sido-fable-clean-a .sida-table-head,
    .tone-gu-fable-clean-a .gua-table-head,
    .tone-compare-final-a .cpa-table__head
  ) { background: var(--nx-paper-soft); color: var(--nx-sub); }
  :is(
    .tone-home-final .hfa-popular__row,
    .prices-final-a .pfa-row,
    .tone-sido-fable-clean-a .sida-row,
    .tone-gu-fable-clean-a :is(.gua-dong-row, .gua-complex-row),
    .tone-cheongyak-fable-a .cfa-notice
  ) { border-color: var(--nx-line); }
  :is(
    .prices-final-a .pfa-row:hover,
    .tone-sido-fable-clean-a .sida-row:hover,
    .tone-gu-fable-clean-a :is(.gua-dong-row, .gua-complex-row):hover
  ) { background: var(--nx-paper-soft); }

  :is(
    .tone-home-final .hfa-search > span,
    .prices-final-a .pfa-criteria,
    .tone-sido-fable-clean-a .sida-criteria,
    .tone-gu-fable-clean-a .gua-criteria,
    .tone-trend-fable-clean-b .trb-basis dl,
    .tone-cheongyak-fable-a .cfa-basis,
    .tone-cheongyak-detail-final-a .cdfa-hero__copy > dl > div,
    .tone-calc-detail-fable-a .cda-control,
    .tone-scorecard-fable-final-a .sfa-control,
    .tone-budget-final-a .bfa-control,
    .tone-personal-final .pfs-controls select,
    .tone-gu-fable-clean-a .gua-controls select,
    .tone-sido-fable-clean-a .sida-table-tools select
  ) { background: color-mix(in srgb, var(--nx-paper-elevated) 92%, transparent); border-color: var(--nx-line); color: var(--nx-ink); }
  :is(input, select) { color-scheme: dark; }
  :is(input, select)::placeholder { color: var(--nx-muted); }

  .tone-home-final .hfa-saved { background: linear-gradient(135deg, #252c52, #222946 58%, #173b3a); border-color: #39446f; }
  .tone-home-final .hfa-tools .hfa-play { background: linear-gradient(135deg, #252c52, #222946 58%, #173b3a); border-color: #39446f; }
  .tone-home-final .hfa-today dl { background: var(--nx-paper-soft); border-color: var(--nx-line); }
  .tone-home-final .hfa-today dl > div { background: var(--nx-paper-soft); }
  .tone-home-final .hfa-today dl > div + div { border-color: var(--nx-line); }
  .tone-personal-final .pfs { background: linear-gradient(180deg, var(--nx-paper) 0, var(--nx-paper) 270px, var(--nx-page) 650px); }
  .tone-personal-final .pfs-cheongyak[data-capability-state="unavailable"] { background: var(--nx-paper); }
  .tone-home-final .hfa-nation-link,
  .tone-scorecard-fable-final-a .sfa-facts__body article,
  .tone-calc-detail-fable-a .cda-basis__items article,
  .tone-method-fable-final-a .mffa-source-facts > div { background: var(--nx-paper-soft); border-color: var(--nx-line); }
  .tone-home-final .hfa-nation-link__go,
  .tone-home-final :is(.hfa-data-state, .hfa-popular__row--state) button,
  .tone-personal-final .pfs-library-empty > span,
  .tone-personal-final .pfs-library-empty a { background: var(--nx-paper-elevated); border-color: var(--nx-line-strong); }
  .tone-home-final :is(.hfa-nation-link__art, .hfa-article__image) img { filter: brightness(.76) saturate(.82); }

  .tone-personal-final .pfs-library-empty,
  .tone-content-index-fable-final-a .cia-empty { color: #172b4d; }
  .tone-personal-final .pfs-library-empty :is(strong, p),
  .tone-content-index-fable-final-a .cia-empty :is(strong, p) { color: #172b4d; }
  .tone-article-final-b .afb-state { color: var(--nx-ink); }
  .tone-article-final-b .afb-state :is(strong, p) { color: var(--nx-ink); }

  .prices-final-a .pfa-sort,
  .prices-final-a .pfa-ranking__foot { background: var(--nx-paper-soft); border-color: var(--nx-line); }
  .prices-final-a .pfa-sort button[aria-pressed="true"] { background: var(--nx-paper-elevated); color: var(--nx-blue-strong); }
  .prices-final-a .pfa-method { background: linear-gradient(135deg, #222e44, #263a5c); border: 1px solid var(--nx-line); color: var(--nx-ink); }
  .prices-final-a .pfa-method p { color: var(--nx-sub); }

  .tone-report-fable-clean-b :is(.rfb-trend-answer, .rfb-data-state, .rfb-fact-note),
  .tone-report-fable-clean-b .rfb-calc-grid a {
    background: var(--nx-paper-soft);
    border-color: var(--nx-line);
  }
  .tone-report-fable-clean-b .rfb-plot {
    background-color: var(--nx-paper-soft);
    background-image: linear-gradient(rgb(67 82 104 / 34%) 1px, transparent 1px), linear-gradient(90deg, rgb(67 82 104 / 34%) 1px, transparent 1px);
    border-color: var(--nx-line);
  }
  .tone-report-fable-clean-b .rfb-table th { background: var(--nx-paper-soft); color: var(--nx-sub); }
  .tone-report-fable-clean-b .rfb-notes,
  .tone-trend-fable-clean-b .trb-notes,
  .tone-sido-fable-clean-a .sida-method,
  .tone-gu-fable-clean-a .gua-outro aside {
    background: linear-gradient(135deg, #202b40, #26364f);
    color: var(--nx-ink);
  }

  .tone-cheongyak-detail-final-a :is(.cdfa-comparison, .cdfa-exits) { background: var(--nx-paper); border-color: var(--nx-line); }
  .tone-cheongyak-detail-final-a :is(.cdfa-fact-grid, .cdfa-exit-unavailable, .cdfa-row-detail td) { background: var(--nx-paper-soft); border-color: var(--nx-line); }

  .tone-compare-final-a :is(.cpa-search, .cpa-slots) { background: var(--nx-paper-soft); border-color: var(--nx-line); }
  .tone-compare-final-a .cpa-search--unavailable input:disabled,
  .tone-compare-final-a .cpa-slot:disabled,
  .tone-compare-final-a .cpa-exits :is(button, .cpa-exit-card),
  .tone-compare-final-a .cpa-exits :is(button:disabled, .cpa-exit-card--disabled) {
    background: var(--nx-paper-elevated);
    border-color: var(--nx-line);
    color: var(--nx-sub);
  }
  .tone-compare-final-a .cpa-search--unavailable button:disabled,
  .tone-compare-final-a .cpa-slot:disabled > span { background: var(--nx-paper-soft); color: var(--nx-muted); }
  .tone-compare-final-a .cpa-exits :is(button, .cpa-exit-card) strong { color: var(--nx-ink); }

  .tone-sido-fable-clean-a .sida-summary { background: var(--nx-paper); border-color: var(--nx-line); }
  .tone-sido-fable-clean-a .sida-view,
  .tone-gu-fable-clean-a .gua-type-tabs { background: var(--nx-paper-soft); }
  .tone-sido-fable-clean-a .sida-view button[aria-pressed="true"],
  .tone-gu-fable-clean-a .gua-type-tab[aria-pressed="true"] { background: var(--nx-paper-elevated); color: var(--nx-blue-strong); }

  .tone-trend-fable-clean-b :is(.trb-chart__plot, .trb-mini__plot) {
    background-color: var(--nx-paper-soft);
    background-image: linear-gradient(to right, rgb(67 82 104 / 34%) 1px, transparent 1px), linear-gradient(to bottom, rgb(67 82 104 / 34%) 1px, transparent 1px);
    border-color: var(--nx-line-strong);
  }
  .tone-calc-hub-fable-clean-a .cha-index > div > button.is-current { background: var(--nx-paper-elevated); color: var(--nx-blue-strong); }

  .tone-calc-detail-fable-a .cda-result { background: linear-gradient(145deg, #202942, #252d50); border-color: #39446f; }
  .tone-calc-detail-fable-a .cda-result .cda-step-mark { background: var(--nx-paper-elevated); }
  .tone-calc-detail-fable-a .cda-step-mark b { background: var(--nx-paper-elevated); }
  .tone-calc-detail-fable-a .cda-control { background: var(--nx-paper-soft); }
  .tone-calc-detail-fable-a .cda-control:has(:disabled),
  .tone-scorecard-fable-final-a .sfa-control:has(input:disabled) { background: var(--nx-paper-soft); border-color: var(--nx-line); }
  .tone-calc-detail-fable-a .cda-control :is(input, select) { color: var(--nx-ink); }
  .tone-calc-detail-fable-a .cda-control:focus-within { background: var(--nx-paper-elevated); }

  .mnp-root { --mnp-page: #111a25; }
  .mnp-canvas,
  .mnp-map-host { background: linear-gradient(145deg, #17222f, #101a25); }
  .mnp-canvas::before { background-image: linear-gradient(rgb(126 150 170 / 8%) 1px, transparent 1px), linear-gradient(90deg, rgb(126 150 170 / 8%) 1px, transparent 1px); }
  .mnp-map-plane { filter: none; opacity: .68; }
  .mnp-map-plane::before,
  .mnp-map-plane::after { background: rgb(38 51 66 / 84%); border-color: rgb(89 107 126 / 34%); }
  .mnp-map-plane .water { background: #20394a; border-color: #2a475a; }
  .mnp-map-plane .road-one,
  .mnp-map-plane .road-two,
  .mnp-map-plane .road-three { border-color: rgb(105 123 141 / 32%); }
  .mnp-omni,
  .mnp-card,
  .mnp-my,
  .mnp-list,
  .mnp-layers,
  .mnp-guide,
  .mnp-layer-legend,
  .mnp-space-switch { background: color-mix(in srgb, var(--nx-paper) 95%, transparent); border-color: var(--nx-line); color: var(--nx-ink); }
  .mnp-search > div:first-of-type,
  .mnp--a .mnp-search > div:first-of-type,
  .mnp-suggestions,
  .mnp-suggestions button,
  .mnp-condition-builder button,
  .mnp-layer-legend button,
  .mnp-card-actions { background: var(--nx-paper-elevated); border-color: var(--nx-line); }

  /* 카드 안쪽 면들은 밝은 값이 코드에 박혀 있었다(#f4f7fa·#f7f9fb·#f3f1ff·#fff).
   * 다크에서 글자만 --nx-ink 로 밝아지니 밝은 판 위에 밝은 글자가 되어 대표 실거래가·
   * 대표 면적·최근 거래·내 부담이 사실상 안 보였다(실측 캡처로 확인). 판을 함께 뒤집는다 —
   * 글자를 어둡게 되돌리면 카드 바깥의 다크 문맥과 어긋난다. */
  .mnp-card-facts { background: var(--nx-paper-soft); border-color: var(--nx-line); }
  .mnp-card-facts > div + div { border-left-color: var(--nx-line); }
  .mnp-card-trades > div,
  .mnp-card-head > div:last-child button,
  .mnp-card-actions > button,
  .mnp-card-actions > div > button { background: var(--nx-paper-elevated); border-color: var(--nx-line); color: var(--nx-ink); }
  .mnp-card-burden { background: var(--nx-blue-soft); border-color: var(--nx-line-strong); }
  .mnp-card-burden > i,
  .mnp-card-burden > a { background: var(--nx-paper-elevated); border-color: var(--nx-line); color: var(--nx-ink); }
  .mnp-card-head p i { color: var(--nx-muted); }
  /* 2026-08-24 카드 블록 배선으로 늘어난 면들. 같은 규율이다 — 판을 함께 뒤집는다. */
  .mnp-card-trade-list { border-top-color: var(--nx-line); }
  .mnp-card-trade-list li + li { border-top-color: var(--nx-line); }
  .mnp-card-context { background: var(--nx-paper-soft); border-color: var(--nx-line); color: var(--nx-sub); }
  /* 2026-08-24 등기 근거·생활 문맥 블록. 같은 규율 — 밝은 값이 박힌 면을 함께 뒤집는다. */
  .mnp-card-registration > div,
  .mnp-card-place dl > div,
  .mnp-card-place .mnp-card-context { border-top-color: var(--nx-line); }
  .mnp-card-place { border-color: var(--nx-line); }
  .mnp-card-trade-list li > i { background: color-mix(in srgb, #ff8f99 18%, transparent); border-color: color-mix(in srgb, #ff8f99 34%, transparent); color: #ff8f99; }
  .mnp-card-verdict[data-verdict="held"],
  .mnp-card-verdict[data-verdict="unavailable"] { background: var(--nx-paper-soft); color: var(--nx-ink); }
  .mnp-card-verdict[data-verdict="held"] > div span,
  .mnp-card-verdict[data-verdict="unavailable"] > div span { background: var(--nx-paper-elevated); border-color: var(--nx-line); color: var(--nx-blue); }
  .mnp-card-verdict[data-verdict="held"] > button,
  .mnp-card-verdict[data-verdict="unavailable"] > button { color: var(--nx-blue); }
  /* 등락색은 밝은 배경용으로 짙게 잡혀 있다. 어두운 판 위에서는 같은 뜻을 밝은 쪽으로 옮긴다. */
  .mnp-card-movement header strong[data-tone="rise"],
  .mnp-card-movement > div b[data-tone="rise"] { color: var(--nx-rise-dark); }
  .mnp-card-movement header strong[data-tone="fall"],
  .mnp-card-movement > div b[data-tone="fall"] { color: var(--nx-fall-dark); }
  .mnp-card-burden > a[aria-disabled="true"] { background: var(--nx-paper-soft); border-color: var(--nx-line); color: var(--nx-muted); }
  /* 비활성 버튼도 밝은 값이 박혀 있었다(#f2f4f8/#e1e6ef). 다크에서 밝은 알약 위 흰 글자가 된다. */
  .mnp-card-actions > button:disabled,
  .mnp-card-actions > div button:disabled,
  .mnp-card-actions [data-mnp-card-report][aria-disabled="true"] { background: var(--nx-paper-soft); border-color: var(--nx-line); color: var(--nx-muted); }
  .mnp--a .mnp-omni.is-expanded::after { background: linear-gradient(100deg, color-mix(in srgb, var(--nx-paper) 98%, transparent), color-mix(in srgb, var(--nx-paper) 78%, transparent) 62%, transparent); }
  .mnp--a .mnp-ai-robot img { filter: brightness(.55) saturate(.76); }
  .mnp-list-tabs,
  .mnp-ranking-controls > div { background: var(--nx-paper-soft); }
  .mnp-list-tabs button[aria-selected="true"],
  .mnp-ranking-controls [aria-pressed="true"] { background: var(--nx-paper-elevated); color: var(--nx-blue-strong); }
  .mnp-ranking-empty,
  .mnp-results-empty { color: #172b4d; }
  .mnp--a .mnp-condition-strip,
  .mnp-axis-menu,
  .mnp-condition-status button,
  .mnp-chip-row > button { background: var(--nx-paper-elevated); border-color: var(--nx-line); color: var(--nx-ink); }
  .mnp-condition-chip,
  .mnp-axis-menu button { background: var(--nx-blue-soft); border-color: var(--nx-line-strong); color: var(--nx-blue-strong); }
  .mnp-condition-chip--ghost { background: transparent; border-color: var(--nx-line-strong); color: var(--nx-sub); }
  .mnp-condition-notice { background: var(--nx-blue-soft); color: var(--nx-blue-strong); }
  .mnp-condition-status,
  .mnp-share-toggle { color: var(--nx-sub); }
  .mnp-condition-status strong { color: var(--nx-ink); }

  /* Accent bands keep their indigo identity, but as a deep fill the light copy
     on top can actually be read. */
  .tone-cheongyak-fable-a .cfa-detail__head { background: linear-gradient(145deg, var(--nx-blue-fill-strong), var(--nx-blue-fill)); }


  .tone-compare-final-a .cpa-picker__actions > button:not(:disabled) { background: var(--nx-paper-elevated); border-color: var(--nx-line-strong); }
  .tone-report-fable-clean-b .rfb-actions button { background: var(--nx-paper-elevated); border-color: var(--nx-line-strong); }
  .tone-account-fable-final-a .affa-saved > a { background: var(--nx-paper-elevated); border-color: var(--nx-line-strong); }
  .tone-gu-fable-clean-a .gua-trend-svg path { stroke: var(--nx-line-strong); }
  .tone-gu-fable-clean-a .gua-trend-svg polyline { stroke: var(--nx-blue); }
  .tone-gu-fable-clean-a .gua-trend-svg circle { fill: var(--nx-paper); stroke: var(--nx-blue); }
  .tone-report-fable-clean-b .rfb-identity-art img { opacity: .42; }

  /* Panels, chips and scrims still painted with light-theme white. */
  .tone-calc-hub-fable-clean-a .cha-group--deal .cha-tool { background: linear-gradient(145deg, var(--nx-paper), color-mix(in srgb, var(--nx-orange-soft) 62%, var(--nx-paper))); }
  .tone-calc-hub-fable-clean-a .cha-index > div > button small { background: var(--nx-paper-soft); color: var(--nx-muted); }
  .tone-calc-hub-fable-clean-a .cha-index > div > button.is-current { background: var(--nx-paper-elevated); }
  .tone-trend-fable-clean-b .trb-basis figure::after { background: linear-gradient(90deg, var(--nx-paper) 0 42%, color-mix(in srgb, var(--nx-paper) 96%, transparent) 49%, color-mix(in srgb, var(--nx-paper) 48%, transparent) 64%, transparent 80%); }
  :is(
    .prices-final-a .pfa-type-tabs button[aria-pressed="true"],
    .tone-sido-fable-clean-a .sida-type-tabs button[aria-pressed="true"],
    .tone-report-fable-clean-b .rfb-segment button[aria-pressed="true"]
  ) { background: var(--nx-paper-elevated); color: var(--nx-blue-strong); }
  .tone-report-fable-clean-b .rfb-segment { background: var(--nx-paper-soft); }
  .tone-account-fable-final-a .affa-notice > footer { background: var(--nx-paper-soft); }
  .tone-content-index-fable-final-a .cia-route-nav span[aria-disabled="true"] { background: var(--nx-paper-soft); }
  .tone-content-index-fable-final-a .cia-route-nav span[aria-disabled="true"][aria-current="page"] { background: var(--nx-paper-elevated); }
  :is(
    .tone-account-fable-final-a .affa-state,
    .tone-compare-final-a .cpa-search__label small,
    .tone-personal-final :is(.pfs-compare, .pfs-mobile-compare):disabled,
    .tone-calc-detail-fable-a .cda-submit:disabled,
    .tone-calc-detail-fable-a .cda-submit:disabled:hover,
    .tone-scorecard-fable-final-a .sfa-submit:disabled,
    .tone-scorecard-fable-final-a .sfa-submit:disabled:hover,
    .tone-scorecard-fable-final-a .sfa-exit__actions > a[aria-disabled="true"]
  ) { background: var(--nx-paper-soft); border-color: var(--nx-line); color: var(--nx-muted); }

  /* Control labels and accents that were pinned to light-theme greys. */
  :is(
    .prices-final-a :is(.pfa-type-tabs button, .pfa-sort button),
    .tone-sido-fable-clean-a .sida-type-tabs button,
    .tone-report-fable-clean-b .rfb-segment button,
    .tone-account-fable-final-a .affa-state,
    .tone-compare-final-a .cpa-search__label small,
    .mnp--a .mnp-command-head small,
    .nx-mobile-nav .nx-space-switch a
  ) { color: var(--nx-muted); }
  .tone-sido-fable-clean-a .sida-row { color: var(--nx-sub); }
  /* Empty/unavailable state cards kept the light theme's paper. */
  :is(
    .tone-sido-fable-clean-a .sida-state,
    .tone-gu-fable-clean-a .gua-state,
    .tone-report-fable-clean-b .rfb-data-state,
    .tone-cheongyak-fable-a .cfa-data-state,
    .tone-cheongyak-detail-final-a .cdfa-data-state
  ) { background: var(--nx-paper-soft); border-color: var(--nx-line-strong); }
  :is(
    .tone-sido-fable-clean-a .sida-state-retry,
    .tone-gu-fable-clean-a .gua-state-retry,
    .tone-report-fable-clean-b .rfb-data-state button
  ) { background: var(--nx-paper-elevated); border-color: var(--nx-line-strong); }

  .tone-report-fable-clean-b .rfb-basis span { color: var(--nx-teal); }
  .tone-report-fable-clean-b .rfb-basis span i { background: var(--nx-teal); }

  /* Panels the light theme tinted with near-white indigo had stayed light. */
  .tone-report-fable-clean-b .rfb-metric:nth-child(2) { background: linear-gradient(145deg, var(--nx-paper-elevated), var(--nx-blue-soft)); }
  .tone-report-fable-clean-b .rfb-ledger-state { background: linear-gradient(135deg, var(--nx-paper-soft), var(--nx-paper-elevated)); border-color: var(--nx-line); }
  .tone-report-fable-clean-b :is(.rfb-ledger-state > span, .rfb-trend-answer em) { background: var(--nx-blue-soft); color: var(--nx-blue-strong); }
  .tone-personal-final .pfs-alerts { background: linear-gradient(145deg, var(--nx-paper), var(--nx-blue-soft)); border-color: var(--nx-line); }
  .tone-personal-final .pfs-alerts__empty { background: color-mix(in srgb, var(--nx-paper-elevated) 86%, transparent); border-color: var(--nx-line-strong); }
  .tone-method-fable-final-a .mffa-data-exits { background: linear-gradient(135deg, var(--nx-paper-soft), var(--nx-blue-soft)); border-color: var(--nx-line); }
  .tone-method-fable-final-a .mffa-data-exits a { background: var(--nx-paper-elevated); border-color: var(--nx-line-strong); }

  .nx-placeholder__copy h1 { color: var(--nx-ink); }
  .nx-placeholder__art {
    border-color: var(--nx-line-strong);
    background:
      radial-gradient(circle at 30% 27%, rgb(255 255 255 / 9%) 0 12%, transparent 13%),
      linear-gradient(145deg, #252d50, #202a43 58%, #173b3a);
    color: #aeb8ff;
  }
  @media (max-width: 760px) {
    :root { --nx-art-dim: .66; }
    .nx-mobile-nav .nx-space-switch[data-active=map] .nx-space-switch__thumb { background: linear-gradient(145deg, var(--nx-blue-fill-strong), color-mix(in srgb, var(--nx-blue-fill) 88%, #ffffff)); }
  }

  .nx-button { border-color: var(--nx-line); background: var(--nx-paper-elevated); color: var(--nx-ink); }
  .nx-button--primary { border-color: transparent; color: #fff; }
}

@media (max-width: 760px) {
  .nx-header { background: color-mix(in srgb, var(--nx-paper) 96%, transparent); }
  .nx-mobile-nav {
    border-top-color: color-mix(in srgb, var(--nx-line) 82%, transparent);
    background: color-mix(in srgb, var(--nx-paper) 94%, transparent);
    box-shadow: 0 -16px 44px rgb(19 37 70 / 10%);
  }
  .nx-mobile-nav a,
  .nx-mobile-nav button { color: var(--nx-muted); }
  .nx-mobile-nav a[aria-current=page],
  .nx-mobile-nav button[aria-pressed=true] { background: var(--nx-blue-soft); color: var(--nx-blue-strong); }
  .nx-mobile-nav .nx-space-switch { border-color: var(--nx-line); background: var(--nx-paper-soft); }
  .nx-mobile-nav .nx-space-switch__thumb { background: linear-gradient(145deg, var(--nx-blue-fill-strong), var(--nx-blue-fill)); }
  .nx-mobile-nav .nx-space-switch[data-active=map] .nx-space-switch__thumb { background: linear-gradient(145deg, var(--nx-blue-fill-strong), #6673e4); }

  .tone-personal-final .pfs-library-empty,
  .tone-content-index-fable-final-a .cia-empty,
  .tone-article-final-b .afb-state,
  .tone-article-final-b[data-data-state="invalid"] .afb-state,
  .tone-article-final-b[data-data-state="unavailable"] .afb-state,
  .tone-content-index-fable-final-a[data-data-state="invalid"] .cia-empty,
  .tone-content-index-fable-final-a[data-data-state="unavailable"] .cia-empty {
    background-image: none;
    min-height: 0;
    padding-right: 18px;
  }
  .mnp-ranking-empty,
  .mnp-results-empty { margin-inline: 14px; }

  /* Supporting copy is small text, so give it the stronger theme ink instead
     of extending the image veil across the whole hero. */
  .tone-home-final .hfa-search-hero__copy > p,
  .prices-final-a .pfa-title-row > p,
  .tone-personal-final .pfs-heading__inner > div > p,
  .tone-account-fable-final-a .affa-hero__copy > p,
  .tone-compare-final-a .cpa-hero__inner > p,
  .tone-calc-hub-fable-clean-a .cha-hero__inner > p,
  .tone-calc-detail-fable-a .cda-hero__inner > p,
  .tone-scorecard-fable-final-a .sfa-hero__inner > p,
  .tone-trend-fable-clean-b .trb-basis__inner > p,
  .tone-game-hub-fable-a .gha-hero__inner > p { color: var(--nx-ink); }
}

@media (prefers-color-scheme: dark) and (max-width: 760px) {
  :is(
    .tone-home-final .hf-hero-art,
    .prices-final-a .pfa-hero-art,
    .tone-personal-final .pfs-heading__art,
    .tone-account-fable-final-a .affa-hero__art,
    .tone-cheongyak-fable-a .cfa-hero__art,
    .tone-cheongyak-detail-final-a .cdfa-hero__art,
    .tone-compare-final-a .cpa-hero__art,
    .tone-calc-hub-fable-clean-a .cha-hero__visual,
    .tone-calc-detail-fable-a .cda-hero__visual,
    .tone-scorecard-fable-final-a .sfa-hero__visual,
    .tone-content-index-fable-final-a .cia-hero__art,
    .tone-article-final-b .afb-hero__art,
    .tone-method-fable-final-a .mffa-hero-art,
    .tone-trend-fable-clean-b .trb-basis figure,
    .tone-sido-fable-clean-a .sida-context,
    .tone-gu-fable-clean-a .gua-head,
    .tone-report-fable-clean-b .rfb-identity
  )::after {
    background: linear-gradient(132deg,
      var(--nx-paper) 0 31%,
      color-mix(in srgb, var(--nx-paper) 96%, transparent) 45%,
      color-mix(in srgb, var(--nx-paper) 72%, transparent) 61%,
      color-mix(in srgb, var(--nx-paper) 24%, transparent) 79%,
      transparent 96%);
  }
}

@media (prefers-reduced-motion: no-preference) {
  .tone-home-final .hf-hero-art img,
  .tone-content-index-fable-final-a .cia-hero__art img,
  .tone-method-fable-final-a .mffa-hero-art img { animation: nx-art-settle 700ms cubic-bezier(.16, 1, .3, 1) both; }
  @keyframes nx-art-settle { from { opacity: .72; transform: scale(1.018); } to { opacity: 1; transform: scale(1); } }
}
