/* Shared field focus: follow the existing rounded border without changing layout.
   Checkboxes, radios, sliders and action buttons retain their own keyboard cues. */
:is(html[data-divers-appearance],html:has(#shop),html:has(.eshop-admin)) body {
  --field-focus-color:#39758a;
}
:is(html[data-divers-appearance],html:has(#shop),html:has(.eshop-admin))[data-theme=dark] body {
  --field-focus-color:#91c6d5;
}
:is(html[data-divers-appearance],html:has(#shop),html:has(.eshop-admin)) body :is(input:not(:where([type=checkbox],[type=radio],[type=range],[type=button],[type=submit],[type=reset],[type=image],[type=color],[type=file],[type=hidden])),textarea,select):focus {
  outline:none;
  box-shadow:0 0 0 2px var(--field-focus-color);
}
/* Compound controls highlight the outer shell, never the inner text rectangle. */
:is(html[data-divers-appearance],html:has(#shop),html:has(.eshop-admin)) body :is(.search-shell,.divers-search-field,.detail-buy-row .quantity):focus-within {
  box-shadow:0 0 0 2px var(--field-focus-color);
}
:is(html[data-divers-appearance],html:has(#shop),html:has(.eshop-admin)) body :is(.search-shell,.divers-search-field,.detail-buy-row .quantity) input:focus {
  outline:none;box-shadow:none;
}
/* Dialog containers receive programmatic focus; their controls carry the cue. */
:is(html[data-divers-appearance],html:has(#shop),html:has(.eshop-admin)) body dialog:focus {
  outline:none;
}
