/* GMAP V982 — Phase 6: contrast and visual accessibility hardening.
   Targeted overrides only; preserves component surfaces and brand styling.
   This stylesheet must load after page styles. Static source review is not a conformance claim. */
:root {
  --gmap-v982-text: #17362f;
  --gmap-v982-muted: #425650;
  --gmap-v982-muted-secondary: #4b5b63;
  --gmap-v982-control-border: #687d75;
  --gmap-v982-link: #075fa8;
  --gmap-v982-gold-text: #624700;
  --gmap-v982-green-text: #07523d;
}

/* Normal-size supporting copy that appears on the site's common light cards/panels. */
:where(.empty, .loading, .v372-empty, .v373-empty-compact, .v493-empty,
  .picnic-empty-mini, .v270-empty, .v281-empty, .v254-preview-empty,
  .picnic-inline-loading, .v499-empty, .picnic-empty,
  .member-directory-no-results, .active-members-preview-empty,
  .member-directory-result-meta, .member-directory-intro-copy p,
  .member-directory-tagline, .member-directory-summary-copy small,
  .member-directory-detail-copy span, .member-directory-detail-copy small,
  .member-directory-footer > div, .member-directory-quickfacts small,
  .field-help, .sms-compose-meta, .v270-candidate small, .v276-meta-card span,
  .v281-request-meta span, .executive-report-copy > span,
  .executive-report-copy > small, .member-report-footer,
  .member-report-approval span, .member-report-summary span,
  .member-report-banner p, .picnic-route-intro span, .v277-kpi span,
  .v372-row-sub, .v372-donut-center span, .v372-activity-copy span,
  .v372-tool span, .v373-tool-card span, .v373-ann-copy span,
  .v492-metric small, .v501-ticket-public-row small, .v501-reg-intro) {
  color: var(--gmap-v982-muted) !important;
  opacity: 1;
}

/* Gold text on light backgrounds and gold-filled controls: use dark foregrounds. */
:where(.v501-reg-kicker, .v501-payment-note, .v502-payment-pending,
  .member-constitution-kicker, .member-constitution h4,
  .service-round-gold, .resource-quick-bylaws, .all-resource-arrow,
  .member-constitution-icon, .v373-ann-ico) {
  color: var(--gmap-v982-gold-text) !important;
  -webkit-text-fill-color: var(--gmap-v982-gold-text) !important;
}
:where(.btn.gold, .smallgold, .event-spotlight-cta, .amount.selected,
  .donatebtn, .email button, .hero-buttons .gold, .choice.sel, .contrib,
  .v499-preview-cta, .v499-btn.gold, .v254-rank, .gold-btn, .primary-gold) {
  color: var(--gmap-v982-text) !important;
  -webkit-text-fill-color: var(--gmap-v982-text) !important;
}

/* Status text on common pale status chips; do not rely on color alone for meaning. */
:where(.v401-status-pill, .v401-status-pill span, .active-pill,
  .v372-status-approved, .v372-status-pending, .v372-status-inactive,
  .v372-next-badge, .v372-chip-gold, .member-directory-active-badge) {
  opacity: 1;
}
.v372-status-approved { color: #14532d !important; }
.v372-status-pending, .v372-next-badge, .v372-chip-gold { color: #624700 !important; }
.v372-status-inactive { color: #42515a !important; }
:where(.v401-status-pill, .active-pill, .member-directory-active-badge) { color: #07523d !important; }

/* Placeholder copy and authored field boundaries must remain distinguishable. */
:where(input, textarea)::placeholder {
  color: var(--gmap-v982-muted-secondary) !important;
  opacity: 1 !important;
}
:where(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]), select, textarea) {
  border-color: var(--gmap-v982-control-border) !important;
}

/* Links in prose are identifiable without color being the sole cue. */
:where(main p a, main li a, .content p a, .content li a,
  .policy-card p a, .policy-card li a) {
  text-decoration-line: underline !important;
  text-decoration-thickness: .09em;
  text-underline-offset: .16em;
}

/* Explicit contrast-safe colors for common pale-surface icon/text accents. */
:where(.showcase-icon, .service-round, .member-directory-fact-icon,
  .member-directory-detail-icon, .member-directory-intro-icon, .status-mark) {
  color: #07523d !important;
}
:where(.member-directory-quickfacts strong, .member-directory-detail-copy strong,
  .member-directory-private-name, .member-directory-summary-copy strong) {
  color: #163831 !important;
}

@media (forced-colors: active) {
  :where(a, button, input, select, textarea, summary, [role="button"],
    [role="link"], [role="checkbox"], [role="radio"], [role="switch"]) {
    forced-color-adjust: auto;
  }
}
