/* ==========================================================================
   1. RESETS GLOBALES
   Elimina estilos predefinidos del navegador para una base consistente.
   ========================================================================== */

* {
margin: 0;
padding: 0;
border: none;
outline: none;
box-sizing: border-box;
color: inherit;
background-color: inherit;
font-size: inherit;
font-weight: inherit;
font-style: normal;
text-decoration: none;
}

html {
scroll-behavior: smooth;
overscroll-behavior: none;
-webkit-tap-highlight-color: transparent;
-webkit-text-size-adjust: 100%;
}

/* ==========================================================================
   2. RESETS DE ELEMENTOS DE CONTENIDO
   Estilos base para elementos comunes de contenido y multimedia.
   ========================================================================== */

body{
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}

ul {
list-style-type: none;
list-style-position: inside;
}

table {
max-width: 100%;
border-collapse: collapse;
}

img,
video {
max-inline-size: 100%;
block-size: auto;
}

iframe {
width: 100%;
max-inline-size: 100%;
border: none;
overflow: hidden;
}

sup,
sub {
font-size: initial;
}

/* ==========================================================================
   3. RESETS Y ESTILOS PARA FORMULARIOS
   Normalización de estilos para elementos de formulario.
   ========================================================================== */

/* Eliminar sombras de validación por defecto */
:invalid,
:-moz-submit-invalid,
:-moz-ui-invalid {
box-shadow: none;
}

/* Evitar bordes y outlines en estados específicos */
button:active,
input:invalid,
input:required,
.input:focus {
border: none;
outline: none;
background-color: inherit;
}

textarea {
resize: none;
font-family: inherit;
font-weight: inherit;
color: inherit;
font-size: inherit;
background: inherit;
-moz-appearance: textfield;
-webkit-appearance: textfield;
}

::placeholder {
color: inherit;
opacity: 0.6;
}

/* Ocultar botones de incremento/decremento en inputs numéricos */
input[type=number] {
-moz-appearance: textfield; /* Firefox */
-webkit-appearance: textfield;
}

input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
margin: 0;
-webkit-appearance: none;
}

/* Estilo para el botón de limpiar en inputs de búsqueda (WebKit) */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-results-button,
input[type="search"]::-webkit-search-results-decoration {
opacity: 0.85;
color: inherit;
position: absolute;
right: 0;
padding: 0px 6px;
}

/* ==========================================================================
   4. ESTILOS PARA COMPONENTES ESPECÍFICOS DEL NAVEGADOR
   ========================================================================== */

/* Forzar barra indeterminada a tener ancho cero en Firefox */
:indeterminate::-moz-progress-bar {
width: 0;
}
