/* =========================================================
   COMPATIBILIDAD ENTRE NAVEGADORES
   Chrome, Edge, Firefox, Safari y navegadores móviles.
   No redefine el diseño de escritorio de cada módulo.
   ========================================================= */

html{
    -webkit-text-size-adjust:100%;
    text-size-adjust:100%;
    scroll-behavior:smooth;
}

*,*::before,*::after{box-sizing:border-box}

body{
    margin:0;
    min-width:0;
    overflow-x:hidden;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
    text-rendering:optimizeLegibility;
}

img,svg,video,canvas{
    display:block;
    max-width:100%;
}

img{
    height:auto;
    image-orientation:from-image;
}

button,input,select,textarea{
    max-width:100%;
    font:inherit;
}

button,[type="button"],[type="submit"],[type="reset"]{
    -webkit-appearance:none;
    appearance:none;
}

input,select,textarea{
    -webkit-appearance:none;
    appearance:none;
    border-radius:0;
}

input[type="checkbox"],input[type="radio"]{
    -webkit-appearance:auto;
    appearance:auto;
}

a,button{
    -webkit-tap-highlight-color:transparent;
}

table{
    max-width:100%;
}

.table-wrapper,.container.table-wrapper{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
}

/* Fallback cuando un navegador no soporta blur de fondo. */
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
    .featured-employee,
    .ida-mobile-panel,
    [class*="glass"],
    [class*="blur"]{
        background-color:rgba(255,255,255,.94);
    }
}

/* Safari requiere el prefijo para algunos efectos. */
.featured-employee,
.ida-mobile-panel{
    -webkit-backdrop-filter:blur(8px);
}

/* Evita que textos largos rompan tarjetas o tablas. */
.card,.empleado-card,.project-card,.dashboard-panel,
.favoritos-table td,.favoritos-table th{
    min-width:0;
    overflow-wrap:anywhere;
}

/* Mantiene visibles los controles de contraseña en motores distintos. */
input::-ms-reveal,
input::-ms-clear{
    display:none;
}

/* Normalización enfocada a móvil sin alterar medidas de escritorio. */
@media (max-width:768px){
    html,body{
        width:100%;
        max-width:100%;
        overflow-x:hidden;
    }

    img,video,svg,canvas{
        max-width:100%;
    }

    input,select,textarea,button{
        font-size:16px;
    }
}

@media (prefers-reduced-motion:reduce){
    *,*::before,*::after{
        scroll-behavior:auto!important;
        animation-duration:.01ms!important;
        animation-iteration-count:1!important;
        transition-duration:.01ms!important;
    }
}
