/* GMAP V604 — WCAG 2.2 Level A + AA final accessibility hardening.
   Loaded after all legacy/page styles. Designed to preserve layout and functionality. */
:root{
  --gmap-v604-text:#17362f;
  --gmap-v604-muted:#53665e;
  --gmap-v604-muted-blue:#53636d;
  --gmap-v604-control-border:#687d75;
  --gmap-v604-focus:#0a5bd3;
  --gmap-v604-link:#075fa8;
}

/* 1.4.3 Contrast (Minimum): common muted/helper copy on light surfaces. */
:where(.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,.member-directory-search-wrap input::placeholder){
  color:var(--gmap-v604-muted)!important;
  opacity:1!important;
}

/* Placeholder text is user-facing text and must retain normal-text contrast. */
:where(input,textarea)::placeholder{
  color:#596971!important;
  opacity:1!important;
}

/* Gold/amber copy used on pale backgrounds: retain brand hue with AA-safe dark shade. */
:where(.v501-reg-kicker,.v501-payment-note,.v502-payment-pending,
.member-constitution-kicker,.member-constitution h4){
  color:#765600!important;
}

/* 1.4.11 Non-text Contrast: authored field boundaries must be distinguishable from white/light surfaces. */
:where(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]),select,textarea){
  border-color:var(--gmap-v604-control-border)!important;
}
:where(input[type="checkbox"],input[type="radio"]){
  outline-offset:2px;
}

/* 2.4.7 / 2.4.11: strong focus indicator and space around focused controls. */
:where(a,button,input,select,textarea,summary,[role="button"],[role="checkbox"],[role="switch"],[tabindex]):focus-visible{
  outline:3px solid var(--gmap-v604-focus)!important;
  outline-offset:3px!important;
  box-shadow:0 0 0 2px #fff!important;
  position:relative;
  z-index:3;
}

/* 2.5.8 Target Size (Minimum): keep interactive controls at least 24 CSS px. */
:where(button,input:not([type="hidden"]),select,textarea,summary,[role="button"],[role="checkbox"],[role="switch"]){
  min-block-size:24px;
}
:where(nav a,.nav a,.sidebar a,.header-actions a,.quick-actions a){
  min-block-size:24px;
}

/* 1.4.1 Use of Color + 2.4.4 Link Purpose: contextual links remain visually identifiable without color alone. */
:where(main p a,main li a,.content p a,.content li a,.policy-card p a,.policy-card li a){
  text-decoration:underline;
  text-decoration-thickness:.09em;
  text-underline-offset:.16em;
}

/* 1.4.10 / 1.4.12: reflow and text-spacing resilience without changing default layout. */
:where(main,.content,.page,.card,.panel,.dialog,.modal-card,.gmapa-modal-card){min-inline-size:0}
:where(p,li,td,th,label,small,.helper,.hint,.note){overflow-wrap:anywhere}
:where(img,video,iframe,canvas,svg){max-inline-size:100%}

/* Homepage Spotlight pause/resume control for SC 2.2.2. */
#eventSpotlightPause{
  width:42px;
  height:42px;
  min-width:42px;
  min-height:42px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.72)!important;
  background:rgba(7,66,52,.88)!important;
  color:#fff!important;
  display:grid;
  place-items:center;
  font-size:16px;
  font-weight:900;
  cursor:pointer;
}
#eventSpotlightPause:hover{background:#063f32!important}

/* Status messages must stay readable on light success/error surfaces. */
:where([role="status"],[role="alert"]){text-wrap:pretty}

@media (max-width:400px){
  :where(table){max-inline-size:100%}
  :where(input,select,textarea,button){max-inline-size:100%}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
@media (forced-colors:active){
  :where(a,button,input,select,textarea,summary,[role="button"],[tabindex]):focus-visible{outline:3px solid Highlight!important;box-shadow:none!important}
}
:where(input[type="checkbox"],input[type="radio"]){min-inline-size:24px;min-block-size:24px}
