/* One keyboard-focus treatment across The Buzz. These focus-only properties
   override legacy page rules without changing control geometry or selected states. */
:root{--buzz-focus-ink:#171717;--buzz-focus-halo:#e7e7e7}
:where(a[href],button,input,textarea,select,summary,[tabindex]:not([tabindex="-1"]),[role="button"],[role="combobox"],[role="radio"],[role="checkbox"],[role="switch"],[role="slider"]):focus-visible{
 outline:2px solid var(--buzz-focus-ink)!important;
 outline-offset:2px!important;
 box-shadow:0 0 0 6px var(--buzz-focus-halo)!important;
}
:where(input:not([type="radio"],[type="checkbox"],[type="range"],[type="color"],[type="file"],[type="button"],[type="submit"],[type="reset"],[type="image"],[type="hidden"]),textarea,select,[data-slot="select-trigger"]):focus{
 outline:2px solid var(--buzz-focus-ink)!important;
 outline-offset:0!important;
 box-shadow:0 0 0 5px var(--buzz-focus-halo)!important;
}
:where(input,textarea,select)[aria-invalid="true"]:focus{
 outline-color:#9d2520!important;
}
/* Radio cards show the cue on the visible option, not their hidden input. */
:where(.template-option,.student-template-option):has(input:focus-visible),
:where(.buzz-currency-picker,.buzz-lab-options) input:focus-visible+span{
 outline:2px solid var(--buzz-focus-ink)!important;
 outline-offset:2px!important;
 box-shadow:0 0 0 6px var(--buzz-focus-halo)!important;
}
:where(.template-option,.student-template-option) input:focus-visible{
 outline:none!important;box-shadow:none!important;
}
/* Clipped design overlays keep focus on the readable upload prompt. */
:where(.preview-photo-upload,.template-preview-media-drop):focus-visible{
 outline:none!important;box-shadow:none!important;
}
:where(.preview-photo-upload,.template-preview-media-drop):focus-visible>span{
 outline:2px solid var(--buzz-focus-ink)!important;
 outline-offset:2px!important;
 box-shadow:0 0 0 6px var(--buzz-focus-halo)!important;
}
/* In-canvas manipulation must stay inside the clipped artwork. */
:where(.photo-adjustment-overlay,.logo-area-move,.preview-photo-button):focus-visible{
 outline-offset:-2px!important;
 box-shadow:inset 0 0 0 6px var(--buzz-focus-halo)!important;
}
/* Compound inputs have one focus cue around the whole field. */
[data-focus-group]:focus-within{
 outline:2px solid var(--buzz-focus-ink)!important;
 outline-offset:0!important;
 box-shadow:0 0 0 5px var(--buzz-focus-halo)!important;
}
[data-focus-group]:has([aria-invalid="true"]):focus-within{outline-color:#9d2520!important}
[data-focus-group] input:focus{outline:none!important;box-shadow:none!important}
/* Keep the approved inverse treatment legible on dark footer surfaces. */
:where(.site-footer,.buzz-footer){--buzz-focus-ink:#f5f5f5;--buzz-focus-halo:#555}
@media(forced-colors:active){
 :where(a[href],button,input,textarea,select,summary,[tabindex]:not([tabindex="-1"])):focus-visible,
 :where(input,textarea,select):focus,
 :where(.template-option,.student-template-option):has(input:focus-visible),
 :where(.preview-photo-upload,.template-preview-media-drop):focus-visible>span,
 [data-focus-group]:focus-within{outline-color:Highlight!important;box-shadow:none!important}
}
