/* Pointer-only overrides; normal borders, selected states, caret and errors are retained.
 * High specificity is intentional: existing as-ui and description rules use !important.
 * No global outline reset: without JavaScript the original accessible styles remain.
 */
html[data-as-input="pointer"] body:not(#as-focus-policy#as-focus-policy#as-focus-policy) :focus {
    outline: none !important;
}
html[data-as-input="pointer"] body:not(#as-focus-policy#as-focus-policy#as-focus-policy) :is(.autool-model-option, .abrv-upload-add, .abnw-card):focus-within {
    outline: none !important;
}
/* Only transient control rings; do not reset selected variation/card shadows or validation. */
html[data-as-input="pointer"] body:not(#as-focus-policy#as-focus-policy#as-focus-policy) :is(a, button, input, select, textarea):focus:not([aria-invalid="true"]):not(.error):not(.is-invalid):not(.aspd-option):not([aria-pressed="true"]):not([aria-selected="true"]):not(:where(.woocommerce-invalid, .ff-el-is-error, .has-error) *) {
    box-shadow: none !important;
}
html[data-as-input="pointer"] body:not(#as-focus-policy#as-focus-policy#as-focus-policy) :is(.autool-pages-privacy-option, .ff-el-ratings label):focus-within {
    box-shadow: none !important;
}
html[data-as-input="pointer"] body:not(#as-focus-policy#as-focus-policy#as-focus-policy) .cmplz-consent-checkbox:focus + .cmplz-label::before {
    box-shadow: none !important;
}
html[data-as-input="pointer"] body:not(#as-focus-policy#as-focus-policy#as-focus-policy) input:focus + :is(.abco-box, .abco-ship-dot) {
    outline: none !important;
}
/* Retain the existing keyboard theme, and fill gaps in components that reset outlines. */
html[data-as-input="keyboard"] body:not(#as-focus-policy#as-focus-policy#as-focus-policy) :focus-visible {
    outline: 2px solid var(--as-pointer-keyboard-color, #191919) !important;
    outline-offset: 3px !important;
}
html[data-as-input="keyboard"] :where(.asbh-s--dark, .asdb-strip, [data-autool-surface="dark"], .as-btn--on-dark) {
    --as-pointer-keyboard-color: #fff;
}
/* Touch flash is a separate browser effect, not a selected/pressed state. */
html body :where(a, button, input, select, textarea, summary, [tabindex], [role="button"]) {
    -webkit-tap-highlight-color: transparent;
}

/* Round 2: a keyboard-focused control can retain :focus-visible after a pointer
 * clicks it again. Reset only the audited visual proxies, never their checked state. */
html[data-as-input="pointer"] body:not(#as-focus-policy#as-focus-policy#as-focus-policy) .abpvc-switch input:focus + .abpvc-switch__ui,
html[data-as-input="pointer"] body:not(#as-focus-policy#as-focus-policy#as-focus-policy) .abtc-cb:focus + .abtc-box,
html[data-as-input="pointer"] body:not(#as-focus-policy#as-focus-policy#as-focus-policy) .absp-opt input:focus + .absp-card,
html[data-as-input="pointer"] body:not(#as-focus-policy#as-focus-policy#as-focus-policy) .abms-chip input:focus + span,
html[data-as-input="pointer"] body:not(#as-focus-policy#as-focus-policy#as-focus-policy) .abtd-opt input:focus + span,
html[data-as-input="pointer"] body:not(#as-focus-policy#as-focus-policy#as-focus-policy) .abco-methods input.input-radio:focus + .abco-method-l .abco-radio,
html[data-as-input="pointer"] body:not(#as-focus-policy#as-focus-policy#as-focus-policy) #payment input[type="radio"]:focus + label::before,
html[data-as-input="pointer"] body:not(#as-focus-policy#as-focus-policy#as-focus-policy) .rll-youtube-player:focus-within {
    outline: none !important;
}
html[data-as-input="pointer"] body:not(#as-focus-policy#as-focus-policy#as-focus-policy) .autool-slider-progress:focus::before {
    box-shadow: none !important;
}
/* Imported campaign cards draw an extra focus border on a pseudo-element.
 * Preserve desktop hover feedback; suppress retained keyboard focus after a click. */
html[data-as-input="pointer"] body:not(#as-focus-policy#as-focus-policy#as-focus-policy) .autool-ct-product-card:focus:not(:hover)::after {
    border-color: transparent !important;
    box-shadow: none !important;
}
@media (hover: none) {
    html[data-as-input="pointer"] body:not(#as-focus-policy#as-focus-policy#as-focus-policy) .autool-ct-product-card:focus::after {
        border-color: transparent !important;
        box-shadow: none !important;
    }
}
