/**
 * Site-wide text contrast hardening.
 * Loaded after each page theme so mute/placeholder/dark-panel copy stays readable.
 */

/* Stronger mute tokens (WCAG AA on light paper) */
body.a63-store { --qf-mute: #3d4654; }
body.nx-body { --nx-mute: #3d4654; --nx-steel: #5c6678; }
body.ir-chamber { --ir-mute: #3d4654; }
body.hx-beacon { --hx-mute: #3d4654; }
body.rm-reel { --rm-mute: #3d4654; }
body.cs-cord { --cs-mute: #3d4654; }
body.cd-dock { --cd-mute: #3d4654; }
body.fx-flux { --fx-mute: #3d4654; }
body.sp-seal { --sp-mute: #3d4654; }
body.ob-orbit { --ob-mute: #3d4654; }
body.hs-halo { --hs-mute: #3d4654; }
body.rl-relay { --rl-mute: #3d4654; }
body.sk-spark { --sk-mute: #3d4654; }
body.lf-lode { --lf-mute: #4a4038; }
body.cf-chord { --cf-mute: #3d4654; }

/* Placeholders — readable on white inputs */
body.ir-chamber .ir-field input::placeholder,
body.rm-reel .rm-seek input::placeholder,
body.hx-beacon .hx-command input::placeholder,
body.cs-cord .cs-field input::placeholder,
body.cd-dock .cd-hatch-body input::placeholder,
body.sp-seal .sp-field input::placeholder,
body.sp-seal .sp-field textarea::placeholder,
body.ob-orbit .ob-field input::placeholder,
body.ob-orbit .ob-field textarea::placeholder,
body.rl-relay .rl-field input::placeholder,
body.rl-relay .rl-field textarea::placeholder,
body.a63-store input::placeholder,
body.a63-store textarea::placeholder {
  color: #5c6678 !important;
  opacity: 1;
}

/* Dark-panel secondary copy — never below ~0.78 white */
body.rm-reel .rm-meter dt,
body.rm-reel .rm-frame span {
  color: rgba(255, 255, 255, 0.82) !important;
  opacity: 1 !important;
}

body.cd-dock .cd-meter span,
body.cd-dock .cd-raft-grand span {
  opacity: 0.85 !important;
}
body.cd-dock .cd-raft-row {
  color: rgba(255, 255, 255, 0.82) !important;
}
body.cd-dock .cd-raft-note {
  color: rgba(255, 255, 255, 0.78) !important;
}

body.hx-beacon .hx-radar-label {
  opacity: 0.85 !important;
}
body.hx-beacon .hx-radar-node,
body.hx-beacon .hx-desk-card > p {
  color: rgba(255, 255, 255, 0.82) !important;
}

body.cs-cord .cs-kpi-cell span {
  opacity: 0.85 !important;
}
body.cs-cord .cs-chamber-card span {
  color: rgba(255, 255, 255, 0.8) !important;
}
body.cs-cord .cs-chamber.is-wait .cs-chamber-card {
  opacity: 0.82 !important;
}
body.cs-cord .cs-chamber.is-wait .cs-chamber-card strong {
  color: rgba(255, 255, 255, 0.92) !important;
}

body.fx-flux .fx-stat span {
  opacity: 0.85 !important;
}
body.fx-flux .fx-plate.tone-packed .fx-beacon {
  color: #8a5500 !important;
}

body.ob-orbit .ob-map-meta em {
  opacity: 0.85 !important;
}
body.ob-orbit .ob-dest span {
  color: #9a4a12 !important;
}

body.sp-seal .sp-back-dock {
  color: rgba(255, 255, 255, 0.88) !important;
}
body.sp-seal .sp-ship-note {
  color: #6ee7b7 !important;
}

body.nx-body .nx-lede {
  color: rgba(255, 255, 255, 0.9) !important;
}
body.nx-body .nx-signal-list span {
  color: rgba(255, 255, 255, 0.84) !important;
}
body.nx-body .nx-kpi-label {
  color: #3d4654 !important;
}

body.lf-lode .lf-mission-body {
  color: rgba(232, 228, 222, 0.94) !important;
}
body.lf-lode .lf-hours {
  color: rgba(232, 238, 246, 0.92) !important;
}

body.hs-halo .hs-kin-copy em {
  color: #67e8f9 !important;
}

body.rm-reel .rm-frame.is-on em {
  color: #7a2a12 !important;
}

body.rl-relay .rl-channels-head .rl-kicker {
  color: #e8f5ef !important;
}

/* Form labels / fine print on light shells */
body.ir-chamber .ir-field label,
body.sp-seal .sp-field label,
body.ob-orbit .ob-field label,
body.rl-relay .rl-field label,
body.cs-cord .cs-field label,
body.cd-dock .cd-hatch-body label {
  color: #3d4654 !important;
}

/* Policy / Quarry long-form */
body.a63-store .pl63-sheet p,
body.a63-store .pl63-sheet li {
  color: var(--qf-ink) !important;
}
body.a63-store .a63-nav-link {
  color: #3d4654 !important;
}
body.a63-store .a63-nav-link.is-active,
body.a63-store .a63-nav-link:hover {
  color: var(--qf-ink) !important;
}
