/* ================================================================
   Reset DEFINITIVO del outline/border programatico Blazor SSR.
   Cargado al final del head para ganar especificidad/cascada a
   Radzen, Bootstrap5, Syncfusion y output.css.
   Blazor Enhanced Navigation pone focus en el primer elemento
   focusable de la pagina (tipicamente cabeceras o un contenedor
   con tabindex=-1) y los navegadores dibujan el outline de A11Y.
   Lo suprimimos en cabeceras y contenedores no interactivos. Los
   botones, inputs y links siguen mostrando :focus-visible.
   ================================================================ */
h1:focus, h2:focus, h3:focus, h4:focus, h5:focus, h6:focus,
[tabindex="-1"]:focus, [tabindex="0"]:focus,
section:focus, article:focus, header:focus, main:focus, footer:focus, aside:focus, nav:focus,
div:focus, span:focus, p:focus, ul:focus, ol:focus, li:focus,
figure:focus, figcaption:focus {
    outline: 0 none transparent !important;
    outline-width: 0 !important;
    outline-style: none !important;
    outline-color: transparent !important;
    box-shadow: none !important;
}

h1:focus:not(:focus-visible), h2:focus:not(:focus-visible),
h3:focus:not(:focus-visible), h4:focus:not(:focus-visible),
h5:focus:not(:focus-visible), h6:focus:not(:focus-visible),
[tabindex="-1"]:focus:not(:focus-visible),
[tabindex="0"]:focus:not(:focus-visible),
section:focus:not(:focus-visible), article:focus:not(:focus-visible),
header:focus:not(:focus-visible), main:focus:not(:focus-visible),
footer:focus:not(:focus-visible), aside:focus:not(:focus-visible),
nav:focus:not(:focus-visible),
div:focus:not(:focus-visible), span:focus:not(:focus-visible),
p:focus:not(:focus-visible), ul:focus:not(:focus-visible),
ol:focus:not(:focus-visible), li:focus:not(:focus-visible) {
    outline: 0 none transparent !important;
    outline-width: 0 !important;
    outline-style: none !important;
    outline-color: transparent !important;
    box-shadow: none !important;
}

/* Bloqueo extra: Radzen/Material a veces dibuja un ::before/::after
   con borde para marcar el contenedor activo cuando el focus llega
   por SSR. Lo neutralizamos en cabeceras y wrappers no interactivos. */
h1:focus::before, h1:focus::after,
h2:focus::before, h2:focus::after,
h3:focus::before, h3:focus::after,
main:focus::before, main:focus::after,
section:focus::before, section:focus::after,
article:focus::before, article:focus::after,
div:focus::before, div:focus::after {
    border: 0 none transparent !important;
    outline: 0 none transparent !important;
    box-shadow: none !important;
}

/* Algunos temas Material aplican un border al wrapper del primer focusable
   dentro del contenedor principal. Lo cortamos solo cuando el focus es programatico. */
main *:focus:not(:focus-visible):not(button):not(a):not(input):not(textarea):not(select):not([role="button"]):not([role="link"]):not([role="tab"]):not([role="menuitem"]) {
    outline: 0 none transparent !important;
    box-shadow: none !important;
    border-color: transparent !important;
}
