/* Pointer and restored focus keep their semantics without a keyboard halo.
   Invalid fields retain their own error treatment; borders and selection are
   deliberately not reset. Native :focus-visible remains the keyboard default. */
@media screen {
  html[data-focus-modality="pointer"] :focus:not([aria-invalid="true"]):not(:user-invalid) {
    outline:none!important;
  }

  /* These controls have no resting shadow; remove only their focus ring. Button
     rings are gated at their source so decorative and pending shadows survive. */
  html[data-focus-modality="pointer"] :is(input,select,textarea,.unit-trigger,.date-picker-trigger,.date-picker-day,.date-picker-nav,.date-picker-quick-option,.date-picker-clear,.date-picker-today):focus:not([aria-invalid="true"]):not(:user-invalid) {
    box-shadow:none!important;
  }
  html[data-focus-modality="pointer"] .item-action-target:focus-visible:not(.is-connected) {
    box-shadow:none;
  }

  /* Some search fields and hidden choices draw the ring on a sibling/parent. */
  html[data-focus-modality="pointer"] :is(.catalog-search-panel,.mof-search,.help-guide-search-field,.supplier-directory-search,.team-people-search,.employee-home-search,.employee-permission-option,.invoice-import-file,.supplier-logo-upload,.inventory-quick-category):focus-within:not(:has([aria-invalid="true"],:user-invalid)),
  html[data-focus-modality="pointer"] :is(.photo-dropzone,.employee-clinic-toggle):has(input:focus),
  html[data-focus-modality="pointer"] .employee-role-options label:has(input:focus)>span,
  html[data-focus-modality="pointer"] .expiry-toggle input:focus+.toggle-track,
  html[data-focus-modality="pointer"] .tax-accounting-choice input:focus+span,
  html[data-focus-modality="pointer"] :is(.inventory-select-visible,.inventory-item-select) input:focus+span,
  html[data-focus-modality="pointer"] .mo-metric-open:focus::after {
    outline:none!important;
  }
  html[data-focus-modality="pointer"] #content .inventory-page .catalog-search-panel:focus-within {
    border-bottom-color:var(--erp-line);
    box-shadow:none;
  }

  /* Dialog headings receive focus for announcement, not keyboard interaction. */
  html :is(h1,h2,h3,h4,h5,h6)[tabindex="-1"]:focus {
    outline:none!important;
    box-shadow:none!important;
  }
}
