/* Tab navigation has a slim indicator. Touch and mouse retain normal controls. */
:root { --piki-focus-color: #ad512f; }
:where(#sidebar, .air-hero, .pm-dark, .menu-business-header, .pf-login-story) { --piki-focus-color: #edc4ab; }

html:not([data-piki-focus]) :focus-visible:not(.business-tour-target),
html[data-piki-focus="keyboard"] :focus:not(.business-tour-target) {
  outline: 1.5px solid var(--piki-focus-color) !important;
  outline-offset: 2px !important;
}

html[data-piki-focus="pointer"] :focus:not(.business-tour-target) {
  outline: none !important;
}

/* Remove only field halos; preserve button elevation and autofill backgrounds. */
html[data-piki-focus] :is(input, select, textarea):focus {
  box-shadow: none !important;
}

html[data-piki-focus] :is(.pos-search, .pos-money-input, .pos-delivery-search,
  .accounts-search, .e5-search, .e5-money-field, .management-money,
  .search-overlay):focus-within:not(.business-tour-target) {
  box-shadow: none !important;
}

html[data-piki-focus="pointer"] :is(.pos-search, .pos-money-input, .pos-delivery-search,
  .accounts-search, .e5-search, .e5-money-field, .management-money,
  .search-overlay):focus-within:not(.business-tour-target) {
  outline: none !important;
}

html[data-piki-focus="keyboard"] :is(.pos-search, .pos-money-input, .pos-delivery-search,
  .accounts-search, .e5-search, .e5-money-field, .management-money,
  .search-overlay):has(:is(input, select, textarea):focus):not(.business-tour-target) {
  outline: 1.5px solid var(--piki-focus-color) !important;
  outline-offset: 2px !important;
}

html[data-piki-focus="keyboard"] :is(.pos-search, .pos-money-input, .pos-delivery-search,
  .accounts-search, .e5-search, .e5-money-field, .management-money,
  .search-overlay) :is(input, select, textarea):focus {
  outline: none !important;
}

html[data-piki-focus] :is(.config-form-group, .ee-form, .campo)
  input:focus:not([aria-invalid="true"]) {
  border-color: #bf6946;
}

html[data-piki-focus] .pf-login-page input:-webkit-autofill:focus {
  box-shadow: 0 0 0 1000px #fbf9f4 inset !important;
}

/* These controls put their visible focus on a switch, choice or upload surface. */
html[data-piki-focus="pointer"] :is(
  input:focus + .slider,
  input:focus + .pm-switch,
  input:focus + .opcion-required-box,
  input:focus + .bo-day-switch,
  input:focus + .bo-schedule-track,
  input:focus + .checkbox-custom,
  .pos-type-grid input:focus + span,
  .pv-choice:focus-within,
  .pb-dropzone:focus-within
):not(.business-tour-target) {
  outline: none !important;
  box-shadow: none !important;
}

html[data-piki-focus="keyboard"] :is(
  input:focus + .slider,
  input:focus + .pm-switch,
  input:focus + .opcion-required-box,
  input:focus + .bo-day-switch,
  input:focus + .bo-schedule-track,
  input:focus + .checkbox-custom,
  .pos-type-grid input:focus + span,
  .pv-choice:focus-within,
  .pb-dropzone:focus-within
):not(.business-tour-target) {
  outline: 1.5px solid var(--piki-focus-color) !important;
  outline-offset: 2px !important;
  box-shadow: none !important;
}

html[data-piki-focus="keyboard"] :is(.pv-choice, .pb-dropzone) input:focus {
  outline: none !important;
}

@media (forced-colors: active) {
  html[data-piki-focus="keyboard"] { --piki-focus-color: Highlight; }
  html[data-piki-focus="keyboard"] :where(#sidebar, .air-hero, .pm-dark, .menu-business-header, .pf-login-story) {
    --piki-focus-color: Highlight;
  }
}
