/* Shared interaction states. No hard focus frame on tap, click or text entry.
   Keep focus/caret and keyboard navigation native; do not blur active controls. */
:root {
  --focus-halo: 0 0 8px 2px #4c9aba70, 0 0 20px 4px #9bdcf770;
}

:focus { outline: none; }

:where(a[href],button,input,select,textarea,summary,[tabindex],[contenteditable="true"]) {
  -webkit-tap-highlight-color: transparent;
}

:where(a[href],button,input,select,textarea,summary,[tabindex]:not([tabindex="-1"]),[contenteditable="true"]):focus-visible {
  box-shadow: var(--focus-halo);
}

/* A composite field highlights its rounded shell, never the rectangular input. */
:where(.search-field,.mod-search,.procurement-search,.coverage-search-field,.contact-select,.contact-phone-field,.contact-upload,.contact-textarea):focus-within {
  box-shadow: var(--focus-halo);
}

:where(.search-field,.mod-search,.procurement-search,.coverage-search-field,.contact-select,.contact-phone-field,.contact-upload,.contact-textarea) :is(input,select,textarea):focus-visible {
  box-shadow: none;
}

.project-mobile-context button { border-radius: 9px; }
.project-mobile-context button:focus-visible { background: #dcedf6; }

/* System high-contrast mode suppresses shadows: use a fill and text accent. */
@media (forced-colors: active) {
  :is(a[href],button,input,select,textarea,summary,[tabindex]:not([tabindex="-1"]),[contenteditable="true"]):focus-visible {
    background-color: Highlight;
    color: HighlightText;
    text-decoration: underline;
    text-underline-offset: .2em;
  }
}
