/* Shared product preference: retain focus behavior, without extra control rings.
   Text, date and number fields keep their existing editing focus treatment. */
#idphotoApp :is(button, select, [role="button"], [role="combobox"], [role="switch"], input[type="checkbox"], input[type="radio"]):focus-visible {
    outline: none;
    outline-offset: 0;
    transition-property: background-color, color, border-color, transform, filter, opacity;
}
#idphotoApp :is(button, select, [role="button"], [role="combobox"], [role="switch"]):focus-visible,
#idphotoApp select:focus,
#idphotoApp .sunny-select-trigger:focus {
    box-shadow: none;
}
#idphotoApp :is(.switch-row, .simple-unlimited-length-option, .simple-cut-extension-toggle, .layout-cut-extension-toggle, .batch-cut-extension-toggle):has(input:focus-visible),
#idphotoApp :is(.switch-row, .spec-head-width-toggle, .spec-output-ppi-toggle):has(input:focus-visible) .switch-control,
#idphotoApp :is(input[type="checkbox"], input[type="radio"]):focus-visible + span {
    outline: none;
    box-shadow: none;
    transition-property: background-color, color, border-color, transform, filter, opacity;
}
#idphotoApp :is(.source-file-picker, .ugem-upload-path-shell):has(button:focus-visible) {
    outline: none;
    box-shadow: none;
}
/* These prompts have ID-scoped component rules; preserve that explicit scope. */
#idphotoApp #initInfoModal.is-ugem-context #btnInitConfirm:focus-visible,
#idphotoApp #initInfoModal.is-ugem-context .sunny-date-trigger:focus-visible,
#idphotoApp .ugem-upload-prompt :is(#btnUgemPromptSecondary, #btnUgemPromptConfirm, #btnUgemPromptCancel):focus-visible {
    outline: none;
    box-shadow: none;
}
