/**
* @description Versión revisada de css fichapp con estilos renovados para la 2.0
* @version 2.0 (25w39e)
*/
/*******************************************************************************
*                               MARK: [Principal]                              *
*******************************************************************************/

* {
    font-family: 'Ubuntu', Helvetica, Arial, Lucida, sans-serif !important;
    scroll-behavior: smooth;
}

::placeholder {
    color: light-dark(#999, #ccc) !important;
    opacity: 1;
}

/* View-transitions automáticas para navegación entre páginas */
@view-transition {
    navigation: auto;
}

::view-transition-group(*) {
    animation-duration: .6s;
}

/* Esto mejor que sea como opción para más adelante quizás
::view-transition-group(cristal),
::view-transition-group(encabezado),
::view-transition-group(btnheader)
 {
    animation-duration: 1s;
}


::view-transition-old(cristal) {
    animation: slide-out-to-bottom 1s forwards;
}

::view-transition-new(cristal) {
    z-index: 999;
    animation: slide-in-from-top 1s forwards;
}

@keyframes slide-out-to-bottom {
    from {
        transform: translateY(0);
    }

    to {
        transform: translateY(300%);
        opacity: 0;
    }
}

@keyframes slide-in-from-top {
    from {
        transform: translateY(-300%);
        opacity: 0;
    }

    to {
        transform: translateY(0);
    }
}*/

:root {
    --rojo: light-dark(#c70039, #ee1956);
    --negro: #1e1e1e;
    --gris-oscuro: #1d2327;
    --gris-suave-fondo: #ededed;
    --gris-texto: #f0f0f1;
    --principal: rgb(3 94 177);
    --principal-opacidad: rgb(3 94 177 /.8);
    --azul: light-dark(rgb(3 94 177), rgb(140, 200, 255));
    --morado-oscuro: #1d1c40;
    --verde: #02814a;
    --letra: 'Ubuntu', Helvetica, Arial, Lucida, sans-serif;
    --cambio-colores: light-dark(var(--gris-oscuro), var(--morado-oscuro));
    --glow: 120 119 198;
    color-scheme: light dark;
    scrollbar-color: light-dark(#1e1e1e, #ffffff) light-dark(transparent, transparent);
}

html {
    overflow: hidden;
}

body {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    font-family: var(--letra);
    margin: 0;
    width: 100%;
    height: 100dvh;
    background-color: light-dark(rgb(252, 252, 252), var(--negro));
    color: light-dark(black, white);
    overflow-x: hidden;

    background-image: radial-gradient(ellipse 80% 80% at 90% 90%, #7877c64d, #fff0),
        linear-gradient(to right, rgba(0, 0, 0, 0.03) 0%, rgba(0, 0, 0, 0.01) 50%, rgba(0, 0, 0, 0.01) 100%);
    background-blend-mode: hard-light;
    background-size: cover, 2px 2px;

}

:root[data-theme="light"] body {
    background-blend-mode: normal;
    background-image: radial-gradient(ellipse 80% 80% at 90% 90%, rgba(3, 93, 177, 0.479), #fff0),
        linear-gradient(to right, rgba(0, 0, 0, 0.03) 0%, rgba(0, 0, 0, 0.01) 50%, rgba(0, 0, 0, 0.01) 100%);
}


:root.theme-ready body {
    transition: color .3s ease, background-color .3s ease-in-out;
}

/* Fondo de imagen para todas las páginas excepto el fichador */
body:not(.fichador)::before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url('../img/fondo.webp');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 0.5;
    filter: blur(3px);
    z-index: -1;
    pointer-events: none;
}

:root[data-theme="dark"] body:not(.fichador)::before {
    background-image: url('../img/fondo_oscuro.webp');
    opacity: 0.5;
}

abbr {
    cursor: help;
}

hr {
    width: 100%;
    border: 1px solid light-dark(var(--gris-oscuro), white);
    margin-top: .2rem;
    margin-bottom: .2rem;
    border-radius: 100%;
    transition: .3s;
    animation: ancheando 1s ease forwards 1;
}

@keyframes ancheando {
    from {
        width: 0%;
    }

    to {
        width: 100%;
    }

}

button {
    font-family: var(--letra);
    cursor: pointer;
}

svg {
    width: 1.2em;
    height: 1.2em;
}


img,
video {
    border-radius: .3rem;
}

h1 {
    color: light-dark(var(--negro), white);
    font-size: 2.5rem;
    margin: 0;
    text-align: center;
}

h2,
h3,
h4,
h5,
h6 {
    margin: 0;
    text-align: center;
}

/*******************************************************************************
 *                                MARK:[Colores]                               *
 *******************************************************************************/
.rojo {
    color: var(--rojo) !important;
    fill: var(--rojo) !important;
}

.verde {
    color: var(--verde) !important;
    fill: var(--verde) !important;
}

.blanco {
    color: var(--gris-texto) !important;
    fill: var(--gris-suave-fondo) !important;
}

.azul {
    color: var(--azul) !important;
    fill: var(--azul) !important;
}

.resaltado {
    color: light-dark(var(--negro), white);
}

.texto-gris {
    color: #4D5656;
}

.dorado {
    color: goldenrod;
    fill: goldenrod;
}

/*******************************************************************************
*                                  MARK: [Flex]                                *
*******************************************************************************/

.flex {
    display: flex;
}

.anchocompleto {
    width: 100%;
}

.caja {
    width: 80%;
}

.row {
    flex-direction: row;
}

.column {
    flex-direction: column;
}

.textocentrado {
    text-align: center;
}

.justificado {
    justify-content: center;
}

.between {
    justify-content: space-between;
}

.alineado {
    align-items: center;
}

.supercentrado {
    align-items: center;
    justify-content: center;
}

.alturacompleta {
    height: 100%;
}

.wrap {
    flex-wrap: wrap;
}

/*******************************************************************************
*                                MARK: [Flex gap]                              *
*******************************************************************************/

.gap02 {
    gap: .2rem;
}

.gap05 {
    gap: .5rem;
}

.gap1 {
    gap: 1rem;
}

.gap2 {
    gap: 2rem;
}

.gap3 {
    gap: 3rem;
}

.gap4 {
    gap: 4rem;
}

.gap5 {
    gap: 5rem;
}

.gap6 {
    gap: 6rem;
}

.gap7 {
    gap: 7rem;
}

.gap8 {
    gap: 8rem;
}

/*******************************************************************************
*                             MARK: [Flex padding]                             *
*******************************************************************************/

.pa02 {
    padding: .2rem;
}

.pa05 {
    padding: .5rem;
}

.pa1 {
    padding: 1rem;
}

.pa2 {
    padding: 2rem;
}

.pa3 {
    padding: 3rem;
}

.pa4 {
    padding: 4rem;
}

.pa5 {
    padding: 5rem;
}

/*******************************************************************************
 *                              MARK:[Encabezado]                              *
 *******************************************************************************/
#menu {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 3rem;
    background-color: light-dark(var(--principal), rgb(255 255 255 / 5%));
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    padding: 20px;
    overflow: hidden;
}

#logo {
    height: 4rem;
    width: auto;
}

#btn-lateral {
    position: fixed;
    left: 0;
    top: 0;
    border: none;
    background-color: transparent;
    width: 3rem;
    height: 3rem;
    padding-left: .5rem;
    fill: var(--gris-texto);
    z-index: 22;
    cursor: pointer;
}

#encabezado-lateral {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 12rem;
    height: 100%;
    background-color: light-dark(var(--negro), var(--gris-oscuro));
    position: fixed;
    left: -9rem;
    top: 0;
    box-shadow: rgba(60, 64, 67, 0.3) 2px 1px 2px 0px, rgba(60, 64, 67, 0.15) 3px 1px 3px 1px;
    transition: .3s ease-in-out;
    overflow-x: hidden;
    overflow-y: hidden;
    z-index: 20;
}

#segundo-menu {
    padding-top: 0 !important;
}


#encabezado-lateral.activo~main {
    padding-left: 24rem;
}

#encabezado-lateral section {
    padding-top: 3rem;
}

#encabezado-lateral.activo {
    left: 0;
}

#encabezado-lateral a {
    width: 100%;
    height: 2.5rem;
    gap: .5rem;
    background-color: var(--cambio-colores);
    color: white;
    fill: white;
    text-decoration: none;
    transition: .4s;
    align-items: center;
    padding-left: 2rem;
    cursor: pointer;
}

#icono-incidencias-count,
b,
#encabezado-lateral a svg {
    text-decoration: none !important;
    transition: fill .3s ease;
}

#encabezado-lateral #cerrar_sesion {
    background-color: var(--rojo);
    fill: white;
    margin-bottom: 1rem;
}

#encabezado-lateral section a.activo {
    background-color: var(--gris-suave-fondo);
    color: var(--negro);
    fill: var(--negro);
}

#encabezado-lateral a:where(:hover, :focus) {
    background-color: light-dark(var(--negro), white);
    color: light-dark(white, var(--negro));
}

#encabezado-lateral a:where(:hover, :focus) svg {
    fill: light-dark(white, var(--negro));
}

#encabezado-lateral a.activo:where(:hover, :focus) svg {
    fill: var(--azul);
}

#claro-oscuro {
    background-color: light-dark(var(--gris-suave-fondo), var(--negro)) !important;
    color: light-dark(var(--negro), var(--gris-suave-fondo)) !important;
}

#claro-oscuro svg {
    fill: light-dark(var(--negro), var(--gris-suave-fondo)) !important;
}

#encabezado-lateral:not(.activo) a {
    width: auto;
    padding-right: 1rem;
    margin-right: -10rem;
    padding-left: 10rem;
    gap: 2rem;
}

#encabezado-lateral:not(.activo) a span {
    transition: .1s;
    visibility: hidden;
}

#encabezado-lateral:not(.activo) a #icono-incidencias-count {
    left: -3.3rem;
}

#btn-lateral svg {
    transform: rotate(0deg);
    transition: transform .3s ease, fill .3s ease;
    transform-origin: 50% 50%;
    transform-box: fill-box;
}

.activo~#btn-lateral svg {
    transform: rotate(180deg);
}

/*******************************************************************************
 *                                MARK:[Cuerpo]                                *
*******************************************************************************/
main {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    padding-bottom: 6rem;
    transition: .3s ease-in-out;
    padding-top: 2rem;
    gap: 1rem;
}

.cristal,
.cristal-peque {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    border-radius: 1rem;
    background: rgb(255 255 255 / 10%);
    backdrop-filter: blur(10px);
    border-radius: 15px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37);
    overflow: hidden;
    padding: 20px;
    animation: aparicion_cristal 1s ease forwards 1;
    transition: 1s;
}


@keyframes aparicion_cristal {
    from {
        opacity: 0;
        transform: translateY(-2rem);
    }

    to {
        opacity: 1;
    }

}

.cristal-peque {
    padding: .5rem;
    background-color: light-dark(#ffffff75, #ffffffab);
    transition: .3s;
}

.cristal-peque a {
    color: light-dark(var(--negro), var(--gris-oscuro));
    width: 100%;
    height: 100%;
    text-align: center;
    align-items: center;
}

.cristal-peque * {
    color: light-dark(var(--negro), var(--gris-oscuro));
    align-items: center;
}

.cristal-peque:where(:hover, :focus) {
    background-color: light-dark(#ffffffab, #ffffffd8);
}

.animacion-izq-drch {
    display: flex;
    animation: roll-in-left 1s ease-out both;
}

@keyframes roll-in-left {
    0% {
        -webkit-transform: translateX(-200px) rotate(-240deg);
        transform: translateX(-200px) rotate(-240deg);
        opacity: 0;
    }

    100% {
        -webkit-transform: translateX(0) rotate(0deg);
        transform: translateX(0) rotate(0deg);
        opacity: 1;
    }
}

.enlace {
    color: light-dark(var(--negro), white);
}

ul {
    list-style: none;
}

li {
    position: relative;
    padding-left: 1.5rem;
    /* Espacio para el marcador */
    padding-bottom: 1rem;
}

li::before {
    content: "➤";
    /* Símbolo de flecha. Puedes usar otros símbolos o un icono con Unicode */
    position: absolute;
    left: 0;
    top: 0;
    color: light-dark(var(--negro), white);
    /* Color de la flecha */
}


#login img {
    width: 20rem;
    height: fit-content;
    margin-bottom: .5rem;
}

#login h1 {
    text-align: center;
    padding-bottom: 1rem;
}

#login form {
    padding: 0 5dvw;
}

#login footer {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

#iniciar-sesion {
    margin-top: .5rem;
    box-shadow: 0 2px 6px 0 hsla(0, 0%, 0%, 0.2);
    cursor: pointer;
    transition: .3s;
    border-radius: .3rem;
}

#iniciar-sesion:where(:focus, :hover) {
    box-shadow: none;
}

.modificadoresficha {
    display: flex;
    justify-content: space-around;
    align-items: center;
    gap: 1rem;
}

#no-hay-datos {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 1rem;
    background-color: var(--rojo);
    color: white;
    fill: white;
    padding: .5rem;
    border-radius: .3rem;
    border: 1px solid #ccc;
    width: 12rem;
    box-shadow: rgba(0, 0, 0, 0.16) 0px 3px 6px, rgba(0, 0, 0, 0.23) 0px 3px 6px;
    user-select: none;
}

/*Incidencias*/
.men-incidencia {
    background-color: gray;
    color: white;
    font-size: 1rem;
    padding: .3rem;
    border-radius: .3rem;
box-shadow: rgba(50, 50, 93, 0.25) 0px 2px 5px -1px, rgba(0, 0, 0, 0.3) 0px 1px 3px -1px;
}

sup.men-incidencia {
    font-size: 0.6rem;
    padding: 0.15rem 0.3rem;
    margin-top: -1.6rem;
    margin-left: 0rem;
    margin-right: -2.3rem;
    vertical-align: super;
    box-shadow: none; /* Optional: remove shadow if it looks too heavy on sup */
    border: none;
}

.incidencia-impar {
    background-color: goldenrod;
}

.incidencia-ocho- {
    background-color: #E74C3C;
}

.incidencia-ocho-mas {
    background-color: #d42626;
}

.incidencia-finde {
    background-color: var(--gris-oscuro);
}

.incidencia-no-trabajo {
    background-color: blueviolet;
}

/*Días inhábiles*/
.dias-in-entidad {
    display: flex;
    flex-direction: row;
    gap: 1rem;
    font-size: 1.4rem;
}

.dias-in-entidad label {
    cursor: pointer;
}

.dias-in-entidad input[type="radio"] {
    display: none;
}

.rotar {
    animation: rotacion 1s linear infinite;
}

.agitar {
    animation: agitar 1s linear infinite;
}

@keyframes agitar {
    40% {
        transform: rotate(20deg);
    }

    80% {
        transform: rotate(-20deg);
    }
}

@keyframes rotacion {
    to {
        transform: rotate(360deg);
    }
}



.vacaciones {
    display: flex;
    flex-direction: row;
    align-items: center;
    min-width: 45rem;
    padding: .5rem 1rem;
    color: light-dark(#202020, white);
    border-radius: 1rem;
    box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
    font-size: 1.4rem;
    background-color: light-dark(white, var(--negro));
    position: relative;
}

.vac-empleado .anotacion {
    background-color: light-dark(white, var(--gris-oscuro));
}

.vac-grupo .anotacion {
    background-color: light-dark(white, var(--gris-oscuro));
}


.nombre {
    display: flex;
    width: 19rem;
    font-style: italic;
}

.fechas {
    display: flex;
    width: fit-content;
    padding: 0 .2rem;
}

.anotacion {
    display: flex;
    position: relative;
    align-items: center;
    justify-content: center;
    font-size: .8rem;
    background-color: whitesmoke;
    color: light-dark(var(--gris-oscuro), white);
    border-radius: .2rem;
    border: 1px solid gray;
    text-align: center;
    padding: .5rem;
    width: 4rem;
}

.linea {
    display: flex;
    flex-direction: row;
    width: 100%;
    flex-wrap: nowrap;
}

#calendario {
    --ancho: 80dvw;
    width: var(--ancho);
    /*Actualizado beta 25w13d*/
    height: 110dvh;
    transition: .3s;
}

.c-nombre {
    background-color: light-dark(#ccc, var(--gris-oscuro));
    color: light-dark(#202020, white);
    text-align: center;
    font-weight: bold;
    padding: .2rem 0;
    transition: .3s;
}

.c-nombre,
.c-dia {
    width: calc(var(--ancho)/7);
    border: 1px solid #c4c4c4;
}

#calendario .c-vacio {
    background-color: light-dark(#ccc, #252525be);
}

.c-dia {
    height: 18dvh;
    display: flex;
    gap: .2rem;
    flex-direction: column;
    text-align: start;
    background-color: light-dark(#cccccc57, #41414177);
    transition: .1s;
}

.c-dia:where(:hover, :focus-within),
#calendario .c-dia:hover,
#calendario .c-dia:focus-within {
    z-index: 1000 !important;
    position: relative;
}

.linea:where(:hover, :focus-within),
#calendario .linea:hover,
#calendario .linea:focus-within {
    z-index: 1000 !important;
    position: relative;
}

.c-hoy {
    background-color: light-dark(#cfe4ff, #37505a);
}

.c-incidencia {
    border: 1px solid #e54b3c !important;
}

.c-fds {
    background-color: light-dark(#ffeccf, #5a4b37);
}

.c-num-dia {
    display: flex;
    justify-content: flex-end;
    width: 100%;
    height: fit-content;
    position: relative;
    right: .2rem;
    font-size: 1.8rem;
    color: light-dark(#202020e0, #e9e9e9e0);
}

.c-horas-totales {
    display: flex;
    flex-direction: row;
    color: light-dark(#374151, #9db7e0);
    margin-bottom: .5rem;
}

.c-horas {
    display: flex;
    flex-direction: column;
    gap: .2rem;
    width: 100%;
    align-items: center;
    color: var(--colortema);
}

.c-incidencia-dia {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    height: 100%;
}

.c-incidencia-dia svg {
    background-color: #e54b3c;
    fill: white;
    padding: .5rem;
    box-shadow: rgba(0, 0, 0, 0.4) 0px 2px 4px, rgba(0, 0, 0, 0.3) 0px 7px 13px -3px, rgba(0, 0, 0, 0.2) 0px -3px 0px inset;
    cursor: pointer;
}

.c-linea-horas {
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: .5rem;
}

/*Crear registro*/
.c-crear-registro,
.c-editar-registro

/*Agregado beta 24w21b*/
    {
    position: relative;
    left: 0;
    top: 0;
    margin-bottom: -2.2rem;
    z-index: 2;
}

.c-crear-registro:where(:hover, :focus, :focus-within),
.c-editar-registro:where(:hover, :focus, :focus-within) {
    z-index: 1000; /* Evita que el tooltip se tape por el siguiente .c-dia */
}

.c-crear-registro svg,
.c-editar-registro svg

/*Agregado beta 24w21b*/
    {
    background-color: light-dark(#36cc9f, var(--verde));
    fill: white;
    padding: .5rem;
    cursor: pointer;
    box-shadow: rgba(0, 0, 0, 0.4) 0px 2px 4px, rgba(0, 0, 0, 0.3) 0px 7px 13px -3px, rgba(0, 0, 0, 0.2) 0px -3px 0px inset;
}

.c-editar-registro svg {
    background-color: light-dark(var(--azul), var(--gris-oscuro));
}


/*Modificaciones*/
.selectores-hora {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    height: 1rem;
    gap: .4rem;
}

.localiza,
.t-hora-modificada {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background-color: light-dark(rgb(255 255 255 / 70%), rgb(29 35 39 / 70%));
    width: .8em;
    height: .8em;
    padding: .2rem;
    border-radius: 50%;
    transition: .3s;
}

.localiza svg,
.t-hora-modificada svg {
    width: .8em;
    height: .8em;
    fill: light-dark(rgb(29 35 39 / 70%), rgb(255 255 255 / 70%));
}

.cursiva {
    font-style: italic;
}

/*******************************************************************************
 *                             MARK:[Documentación]                            *
 *******************************************************************************/
#documentacion .cristal {
    width: 90%;
}

#documentacion p {
    max-width: 25rem;
    line-height: 1.8rem;
    font-size: 1.2rem;
}

#documentacion :is(h1, h2) {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: .5rem;
    text-align: start;
    width: 100%;
}

#documentacion .p-completo {
    max-width: 50rem;
}

.img-documentacion {
    max-width: 20dvw;
    height: auto;
    border-radius: .3rem;
    box-shadow: rgba(0, 0, 0, 0.02) 0px 1px 3px 0px, rgba(27, 31, 35, 0.15) 0px 0px 0px 1px;
}

#documentacion .img-documentacion.img-completo {
    max-width: 40dvw;
}

/*******************************************************************************
 *                                 MARK:[Notas]                                *
 *******************************************************************************/

.tooltip-nota {
    position: relative;
    top: .2rem;
    /* debajo del trigger */
    left: 6.5rem;
    transform: translate(-50%, 6px);
    font-style: italic;
    font-weight: 500;
    min-width: max(180px, 12ch);
    max-width: 320px;
    padding: .5rem .7rem;
    border-radius: .5rem;
    background: light-dark(gold, goldenrod);
    color: light-dark(var(--negro), white);
    font-size: .875rem;
    line-height: 1.2;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .22);
    z-index: 1000;

    /* estado oculto */
    opacity: 0;
    visibility: hidden;
    pointer-events: auto;

    transition:
        opacity .15s ease .5s,
        transform .15s ease .5s,
        visibility 0s linear .6s;
}

/* Mostrar el tooltip al pasar el cursor por el hermano .nota-tooltip */
.nota-tooltip:hover+.tooltip-nota,
.tooltip-nota:where(:hover, :focus, :focus-within) {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translate(-50%, 0);
    transition:
        opacity .5s ease,
        transform .5s ease,
        visibility 0s;
    /* sin retraso al mostrar */
}



/*******************************************************************************
 *                               MARK:[tooltips]                               *
 *******************************************************************************/

.tooltip {
    position: relative;
    top: 2.5rem;
    left: 20rem;
    transform: translate(-50%, 6px);
    font-style: italic;
    font-weight: 500;
    min-width: max(180px, 12ch);
    max-width: 320px;
    padding: .5rem .7rem;
    border-radius: .5rem;
    background: light-dark(gold, goldenrod);
    color: light-dark(var(--negro), white);
    font-size: .875rem;
    line-height: 1.2;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .22);
    z-index: 1000;
    margin-left: -14.8rem;
    width: 13rem;

    /* estado oculto */
    opacity: 0;
    visibility: hidden;
    pointer-events: auto;

    transition:
        opacity .15s ease .5s,
        transform .15s ease .5s,
        visibility 0s linear .6s;
}

/* Mostrar el tooltip al pasar el cursor por el hermano .trigger-tooltip */
.trigger-tooltip:where(:hover, :focus)+.tooltip,
.tooltip:where(:hover, :focus, :focus-within) {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translate(-50%, 0);
    transition:
        opacity .5s ease,
        transform .5s ease,
        visibility 0s;
}

#calendario .linea .c-dia .tooltip {
    top: 1.5rem;
    margin-bottom: -2rem;
}

/*******************************************************************************
 *                               MARK:[Botones]                                *
 *******************************************************************************/
.btn-p,
.btn-s,
.btn-t,
.btn-d {
    border: none;
    font-size: 1.4rem;
    text-decoration: none;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    padding: .5rem 1rem;
    min-width: 8rem;
    cursor: pointer;
    transition: .3s;
    user-select: none;
}

.btn-p {
    background-color: var(--cambio-colores);
    color: white;
    border-radius: .3rem;
    box-shadow: 0 2px 6px 0 light-dark(hsla(0, 0%, 0%, 0.2), hsla(255, 100%, 100%, 0.2));
}

.btn-s {
    background-color: transparent;
    color: light-dark(var(--negro), white);
    outline: 1px solid light-dark(#13477ad0, #a7c8e9d0);
    border-radius: .3rem;
    transition: .3s;

    &:where(:hover, :focus) {
        color: var(--azul);
    }
}

.btn-t {
    background-color: transparent;
    color: light-dark(#484848, #d1d1d1);
    font-size: 1.1rem;
    font-weight: bold;
}

.btn-d {
    color: white;
    background-color: #f05a5a;
    border-radius: .3rem;
}

.btn-p svg {
    fill: white;
    transition: .3s;
}

.btn-p:where(:hover, :focus) svg {
    fill: light-dark(var(--morado-oscuro), white);
}

.btn-p:where(:hover, :focus) {
    background-color: light-dark(white, var(--negro));
    color: light-dark(var(--morado-oscuro), white) !important;
}



.btn-circle-glass {
    display: flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    margin: auto;
    background: light-dark(rgb(255 255 255 / 70%), rgb(29 35 39 / 90%)) !important;
    backdrop-filter: blur(10px);
    border-radius: 15px;
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
    box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37);
    padding: .1rem;
    transition: .3s;
}



.btn-modificar svg {
    width: 1.5rem;
    height: 1.5rem;
}


.btn-nota {
    background-color: transparent;
    border: none;
    fill: goldenrod;

}

.btn-nota.nota-agregar {
    fill: var(--verde);
}

#btn-inicio {
    left: 1rem;
    right: auto;
}

.modificar {
    border: none;
    background-color: transparent;
    fill: var(--azul);
}

.eliminar {
    background-color: transparent;
    border: none;
    fill: var(--rojo);
}

.seleccionado {
    background-color: gold;
    transition: background-color 0.5s ease;
}

.deseleccionado {
    background-color: whitesmoke;
    transition: background-color 0.5s ease;
}

/*******************************************************************************
 *                             MARK:[Notificación]                             *
 *******************************************************************************/
#notificacion {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-start;
    position: fixed;
    top: -5rem;
    left: 3.5rem;
    opacity: 0;
    background-color: #fff8ed;
    color: #3f2c01;
    border-left: 5px solid gold;
    border-radius: .3rem;
    gap: .5rem;
    padding: .2rem .5rem;
    font-size: 1rem;
    max-width: 90%;
    transition: .3s;
    animation: 8s notificacion 1 ease-in;
    z-index: 102;
}

@keyframes notificacion {
    0% {}

    10%,
    85% {
        opacity: 1;
        top: 5rem;
    }

    20%,
    80% {
        box-shadow: 0 2px 6px 0 hsla(0, 0%, 0%, 0.2);
    }

    100% {}
}

#noti-ico svg {
    width: 1.2rem;
    height: 1.2rem;
    border-radius: 50%;
    padding: .1rem;
}

#noti-ico {
    line-height: 1px;
}

.noti-correcto {
    fill: seagreen;
}

.noti-error {
    fill: #c70039;
}

.noti-advertencia {
    fill: goldenrod;
}

.noti-info {
    fill: #17a2b8;
}

/* Notificaciones fijas a distintas alturas (como la original pero sin superponerse) */
.notificacion-fija {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-start;
    position: fixed;
    left: 3.5rem;
    opacity: 0;
    background-color: #fff8ed;
    color: #3f2c01;
    border-left: 5px solid gold;
    border-radius: .3rem;
    gap: .5rem;
    padding: .2rem .5rem;
    font-size: 1rem;
    max-width: 90%;
    transition: .3s;
    z-index: 102;
}

/* Diferentes alturas para cada nivel */
.notificacion-fija.nivel-1 {
    animation: 8s notificacion-nivel1 1 ease-in;
}

.notificacion-fija.nivel-2 {
    animation: 8s notificacion-nivel2 1 ease-in;
    animation-delay: 0.2s;
}

.notificacion-fija.nivel-3 {
    animation: 8s notificacion-nivel3 1 ease-in;
    animation-delay: 0.4s;
}

@keyframes notificacion-nivel1 {
    0% {
        top: -5rem;
        opacity: 0;
    }

    10%,
    85% {
        opacity: 1;
        top: 8rem;
    }

    20%,
    80% {
        box-shadow: 0 2px 6px 0 hsla(0, 0%, 0%, 0.2);
    }

    100% {
        top: -5rem;
        opacity: 0;
    }
}

@keyframes notificacion-nivel2 {
    0% {
        top: -5rem;
        opacity: 0;
    }

    10%,
    85% {
        opacity: 1;
        top: 11rem;
    }

    20%,
    80% {
        box-shadow: 0 2px 6px 0 hsla(0, 0%, 0%, 0.2);
    }

    100% {
        top: -5rem;
        opacity: 0;
    }
}

@keyframes notificacion-nivel3 {
    0% {
        top: -5rem;
        opacity: 0;
    }

    10%,
    85% {
        opacity: 1;
        top: 14rem;
    }

    20%,
    80% {
        box-shadow: 0 2px 6px 0 hsla(0, 0%, 0%, 0.2);
    }

    100% {
        top: -5rem;
        opacity: 0;
    }
}

.notificacion-fija.nivel-4 {
    animation: 8s notificacion-nivel4 1 ease-in;
    animation-delay: 0.6s;
}

@keyframes notificacion-nivel4 {
    0% {
        top: -5rem;
        opacity: 0;
    }

    10%,
    85% {
        opacity: 1;
        top: 17rem;
    }

    20%,
    80% {
        box-shadow: 0 2px 6px 0 hsla(0, 0%, 0%, 0.2);
    }

    100% {
        top: -5rem;
        opacity: 0;
    }
}

.notificacion-fija.noti-info {
    background-color: light-dark(#e7f5ff, #1e3a4c);
    color: light-dark(#0c5460, #a8dadc);
    border-left-color: #17a2b8;
}

.notificacion-fija.noti-error {
    background-color: light-dark(#ffe8e8, #4c1e1e);
    color: light-dark(#721c24, #f5c6cb);
    border-left-color: #c70039;
}

#nada {
    background-color: #1a73e8;
    border: 2px solid black;
    border-radius: .4rem;
    padding: .1rem 1rem;
    margin-top: 2rem;
    color: white;
}

.pre {
    display: none !important;
}

.no-seleccionable {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.solomovil {
    display: none;
}

/*******************************************************************************
 *                               MARK:[Bienvenida]                             *
 *******************************************************************************/

:is(.logo-blanco, .logo-negro) svg {
    width: 15rem;
    height: 5rem;
}

:root[data-theme="light"] #logo-bienvenida .logo-blanco {
    display: none;
}

:root[data-theme="light"] #logo-bienvenida .logo-negro {
    display: inline-flex;
}

:root[data-theme="dark"] #logo-bienvenida .logo-negro {
    display: none;
}

:root[data-theme="dark"] #logo-bienvenida .logo-blanco {
    display: inline-flex;
}

/*******************************************************************************
 *                               MARK:[Acordeones]                             *
 *******************************************************************************/

details {
    overflow: hidden;
    transition: max-height 0.5s ease-in-out, padding 0.5s ease-in-out;
    max-height: 2.5em;
    max-width: 45rem;
    padding: 0.5em 0.5em 0;
    background: #ffffff75;
    backdrop-filter: blur(10px);
    border-radius: 15px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.1);
}

summary:where(:hover, :focus) {
    cursor: pointer;
}


summary {
    font-weight: bold;
    /*margin: -.4em -.4em 0;*/
    margin-top: -.1rem;
    padding: 0.5em;
    text-align: left;
    background-color: var(--gris);
    transition: .5s;
    border-radius: .3rem;
}

summary section:first-child {
    margin-top: -1.6rem;
    margin-bottom: -.2rem;
    padding-left: 1rem;
    justify-content: space-between;
}

details[open] {
    max-height: 9999rem;
    padding: 0.5em;
    background-color: light-dark(rgb(255 255 255 / 70%), rgb(29 35 39 / 70%));
    animation: .3s desplegando 1 ease-in;
}

details[open] summary {
    background-color: var(--principal);
    color: white;
    margin-bottom: .5rem;
}

@keyframes desplegando {
    from {
        max-height: 3rem;
    }

    to {
        max-height: 50rem;
    }
}

summary .titulo-summary {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    font-size: 1.4rem;
}

summary .modificadoresficha {
    padding-top: .1rem;
}

/*******************************************************************************
 *                                MARK:[Dialogs]                               *
 *******************************************************************************/
#showdialog {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background-color: rgb(0 0 0 / .3);
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 100;
    padding: 0;
    margin: 0;
    overflow: hidden;
    display: none;
    opacity: 1;
    animation: .2s aparecer 1 ease-in-out;
}

.desaparecer {
    opacity: 1;
    animation: .3s desaparecer 1 ease-in-out;
}

/*Animación aparecer*/
@keyframes aparecer {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

/*Animación desaparecer*/
@keyframes desaparecer {
    from {
        opacity: 1;
    }

    to {
        opacity: 0;
    }
}

dialog {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    width: fit-content;
    padding: 1rem 1.2rem;
    border: none;
    border-radius: .3rem;
    box-shadow: rgba(0, 0, 0, 0.2) 0px 20px 30px;
    gap: 0;
    opacity: 1;
    animation: .2s aparecer-arriba 1 ease-in-out;
    max-height: 90%;
}

dialog.cristal {
    background: light-dark(rgb(255 255 255 / 70%), rgb(29 35 39 / 70%));
}

dialog.cristal>section.cristal {
    height: 40rem !important;
    min-height: 40rem;
    flex: 0 0 auto;
    /* si el padre es flex, evita que el hijo se contraiga */
    overflow-y: auto !important;
    /* habilita scroll vertical */
    overflow-x: hidden !important;
    box-sizing: border-box;
}

.desaparecer-abajo {
    opacity: 1;
    margin-top: 0;
    animation: .3s desaparecer-abajo 1 ease-in-out;
}

/*Animación aparecer arriba*/
@keyframes aparecer-arriba {
    from {
        opacity: 0;
        margin-top: 5rem;
    }

    to {
        opacity: 1;
        margin-top: 0;
    }
}

/*Animación desaparecer abajo*/
@keyframes desaparecer-abajo {
    from {
        opacity: 1;
        margin-top: 0;
    }

    to {
        opacity: 0;
        margin-top: 5rem;
    }
}

dialog header {
    align-items: flex-end;
    justify-content: flex-end;
    margin-bottom: -2.5rem;
}

dialog b {
    color: var(--rojo);
}

/*******************************************************************************
 *                               MARK:[Cargando]                               *
 *******************************************************************************/
#cargando svg {
    fill: var(--azul);
    animation: 1.2s rotacion infinite ease-in-out;
}

@keyframes rotacion {
    100% {
        transform: rotate(360deg);
    }
}

/*******************************************************************************
*                              MARK: [Formulario]                              *
*******************************************************************************/

label {
    font-size: 1.5rem;
    color: light-dark(var(--negro), white);
    opacity: .9;
}

/* ── OLD INPUT STYLES (commented out 26/03/2026) ──
/*Actualizado 25w34b*/
/*
input,
select {
    font-size: 1.4rem;
    box-shadow: inset 0 2px 4px 0 hsla(0, 0%, 0%, 0.1);
    border-radius: .3rem;
    border: none;
    padding: .2rem .3rem;
    transition: .3s;
    outline: 1px solid #ccc;
}

:is(input, select):where(:focus, :hover) {
    outline: 1px solid #696969;
}

input[type="radio"] {
    outline: none;
}

input#password {
    padding: .05rem;
    border-radius: 0;
    border-top-left-radius: .3rem;
    border-bottom-left-radius: .3rem;
    margin-top: .1rem;
}

input:valid {
    border-color: var(--verde);
    background-color: rgba(117, 204, 46, 0.1);
}

input:invalid {
    border-color: var(--rojo);
    background-color: rgb(204 46 46 /.1);
}

#login input {
    width: 20rem;
    height: 2rem;
}

#login #contraseña {
    width: calc(20rem - 3rem);
}

#horario {
    padding-top: 3rem;
}

#horario,
.horas,
.opcioneshoras,
#formulariohoras,
#fichaje {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    margin: 1rem;
    margin-top: -2rem;
}

#horario,
.opcioneshoras {
    flex-direction: column;
}

.horas {
    margin-top: -1.5rem;
}

.horas label {
    color: light-dark(#202020, white);
}

.opcioneshoras {
    margin: 1rem .5rem;
    gap: 1rem;
}

select::-ms-expand {
    display: none;
}

select {
    background: light-dark(rgb(255 255 255 / 70%), rgb(29 35 39 / 70%));
}

select:hover,
option:hover {
    background: light-dark(#dfdfdf, var(--negro));
    cursor: pointer;
}

select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    font-size: 1rem;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    padding: .5rem;
    border-radius: .4rem;
}

option {
    text-align: center;
}

input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
*/
/* ── FIN OLD INPUT STYLES ── */

/* ── REDESIGNED INPUT STYLES (26/03/2026) ── */
input,
select {
    font-size: 1.4rem;
    border-radius: .4rem;
    border: none;
    padding: .3rem .5rem;
    transition: all .2s ease;
    outline: 1.5px solid light-dark(#d0d5dd, #555);
    background-color: light-dark(#fff, #2a2d32);
    color: light-dark(#1a1a1a, #e8e8e8);
    box-shadow: light-dark(
        inset 0 1px 3px 0 hsla(0, 0%, 0%, 0.06),
        inset 0 1px 3px 0 hsla(0, 0%, 0%, 0.25)
    );
}

:is(input, select):where(:focus, :hover) {
    outline: 1.5px solid light-dark(#4a90d9, #7ab3ef);
    background-color: light-dark(#fff, #32363c);
    box-shadow: light-dark(
        0 0 0 3px rgba(74, 144, 217, 0.15),
        0 0 0 3px rgba(122, 179, 239, 0.12)
    );
}

input[type="radio"] {
    outline: none;
    box-shadow: none;
}

input#password {
    padding: .3rem .5rem;
    border-radius: 0;
    border-top-left-radius: .4rem;
    border-bottom-left-radius: .4rem;
}

input:valid {
    border-color: var(--verde);
    background-color: light-dark(rgba(117, 204, 46, 0.08), rgba(117, 204, 46, 0.08));
}

input:invalid {
    border-color: var(--rojo);
    background-color: light-dark(rgb(204 46 46 /.08), rgb(204 46 46 /.08));
}

#login input {
    width: auto;
    height: 2rem;
}

#login #contraseña {
    width: calc(20rem - 3rem);
}

#horario {
    padding-top: 3rem;
}

#horario,
.horas,
.opcioneshoras,
#formulariohoras,
#fichaje {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    margin: 1rem;
    margin-top: -2rem;
}

#horario,
.opcioneshoras {
    flex-direction: column;
}

.horas {
    margin-top: -1.5rem;
}

.horas label {
    color: light-dark(#202020, #e8e8e8);
}

.opcioneshoras {
    margin: 1rem .5rem;
    gap: 1rem;
}

select::-ms-expand {
    display: none;
}

select {
    background: light-dark(#fff, #2a2d32);
    cursor: pointer;
}

select:hover,
option:hover {
    background: light-dark(#f0f2f5, #3a3d42);
    cursor: pointer;
}

select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    font-size: 1rem;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    padding: .5rem;
    border-radius: .4rem;
}

option {
    text-align: center;
    background-color: light-dark(#fff, #2a2d32);
    color: light-dark(#1a1a1a, #e8e8e8);
}

input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
/* ── FIN REDESIGNED INPUT STYLES ── */


/*Recaptcha*/
.grecaptcha-badge {
    width: 70px !important;
    overflow: hidden !important;
    transition: all 0.3s ease !important;
    left: -2px !important;
    bottom: 20px !important;
}

.grecaptcha-badge:hover {
    width: 256px !important;
}


/*Switch*/
.toggle-checkbox {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}

.toggle-slot {
    font-size: 10px;
    position: relative;
    height: 3.5em;
    width: 7em;
    border: 0px solid transparent;
    border-radius: 10em;
    background-color: rgb(225, 225, 225);
    transition: background-color 250ms;
    cursor: pointer;
}

.toggle-checkbox:checked~.toggle-slot {
    background-color: #374151;
}

.toggle-button {
    transform: translate(0.3em, 0.25em);
    position: absolute;
    height: 3em;
    width: 3em;
    border-radius: 50%;
    background-color: #ffeccf;
    box-shadow: inset 0px 0px 0px 0.75em #ffbb52;
    transition: background-color 250ms, border-color 250ms, transform 500ms cubic-bezier(.26, 2, .46, .71);
}

.toggle-checkbox:checked~.toggle-slot .toggle-button {
    background-color: #485367;
    box-shadow: inset 0px 0px 0px 0.75em white;
    transform: translate(3.65em, 0.25em);
}

.sun-icon {
    position: absolute;
    height: 6em;
    width: 6em;
    color: #ffbb52;
}

.sun-icon-wrapper {
    position: absolute;
    height: 6em;
    width: 6em;
    opacity: 1;
    transform: translate(2em, 2em) rotate(15deg);
    transform-origin: 50% 50%;
    transition: opacity 150ms, transform 500ms cubic-bezier(.26, 2, .46, .71);
}

.toggle-checkbox:checked~.toggle-slot .sun-icon-wrapper {
    opacity: 0;
    transform: translate(3em, 2em) rotate(0deg);
}

.moon-icon {
    position: absolute;
    height: 6em;
    width: 6em;
    color: white;
}

.moon-icon-wrapper {
    position: absolute;
    height: 6em;
    width: 6em;
    opacity: 0;
    transform: translate(11em, 2em) rotate(0deg);
    transform-origin: 50% 50%;
    transition: opacity 150ms, transform 500ms cubic-bezier(.26, 2.5, .46, .71);
}

.toggle-checkbox:checked~.toggle-slot .moon-icon-wrapper {
    opacity: 1;
    transform: translate(2em, 2em) rotate(-15deg);
}


/*Form motivos*/
#resolucion,
#horas,
.horasinput {
    display: flex !important;
    text-align: center;
    width: 4rem;
    outline: none;
}

#horas,
.horasinput {
    width: 6rem;
}

.horasinput:where(:hover, :focus) {
    outline: none;
}

#menos,
#mas,
.resta,
.mas {
    z-index: 20;
    background-color: #ccc;
    border: none;
}

:is(#menos, #mas, .resta, .mas) svg {
    width: 1rem;
    height: 1rem;
}

#menos,
.resta {
    margin-right: -1.5rem;
    border-radius: .3rem 0 0 .3rem;
}

#mas,
.mas {
    margin-left: -1.5rem;
    border-radius: 0 .3rem .3rem 0;
}


textarea {
    resize: none;
    field-sizing: content;
    min-height: 5rem;
    min-width: 20rem;
    font-size: 1.4rem;
    width: 100%;
    height: auto;
    margin: 0;
    border-radius: .4rem;
    border: none;
    background-color: light-dark(#fff, #2a2d32);
    color: light-dark(#1a1a1a, #e8e8e8);
    padding: .5rem;
    box-sizing: border-box;
    transition: all .2s ease;
    outline: 1.5px solid light-dark(#d0d5dd, #555);
    box-shadow: light-dark(
        inset 0 1px 3px 0 hsla(0, 0%, 0%, 0.06),
        inset 0 1px 3px 0 hsla(0, 0%, 0%, 0.25)
    );
}

textarea:where(:hover, :focus) {
    background-color: light-dark(#fff, #32363c);
    outline: 1.5px solid light-dark(#4a90d9, #7ab3ef);
    border: none;
    box-shadow: light-dark(
        0 0 0 3px rgba(74, 144, 217, 0.15),
        0 0 0 3px rgba(122, 179, 239, 0.12)
    );
}

/*******************************************************************************
*                                MARK: [Checkbox]                              *
*******************************************************************************/
.chk {
    cursor: pointer;
    display: flex;
    flex-direction: row;
    gap: 1rem;
    align-items: center;
    box-shadow: light-dark(
        rgb(0 0 0 / .05) 0px 0px 0px 1px,
        rgb(255 255 255 / .08) 0px 0px 0px 1px
    ), light-dark(
        rgb(209 213 219) 0px 0px 0px 1px inset,
        rgb(80 85 92) 0px 0px 0px 1px inset
    );
    padding: .5rem .8rem;
    border-radius: .4rem;
    width: fit-content;
    transition: .2s ease;
}


label.chk {
    background-color: light-dark(rgb(255 255 255 / 70%), rgb(29 35 39 / 70%));
}

.chk input[type='checkbox'] {
    display: none;
}

.chk svg {
    overflow: visible;
}

.chk .path {
    fill: none;
    stroke: light-dark(var(--negro), white);
    stroke-width: 6;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: stroke-dasharray 0.5s ease, stroke-dashoffset 0.5s ease;
    stroke-dasharray: 241 9999999;
    stroke-dashoffset: 0;
}

.chk input:checked~svg .path {
    stroke-dasharray: 70.5096664428711 9999999;
    stroke-dashoffset: -262.2723388671875;
    stroke: var(--verde);
}

.chk-horas {
    display: none;
}

.chk .info {
    fill: light-dark(var(--azul), white);
    width: 1.2rem;
    height: 1.2rem;
    margin-left: -1rem;
    margin-top: -.2rem;
    padding-bottom: 1rem;
}


/*******************************************************************************
 *                              MARK:[Contraseña]                              *
 *******************************************************************************/

/* Eliminado #campocontra conflictivo */

#login #contraseña {
    flex: 1;
    display: block;
    outline: none;
    border-radius: .4rem 0 0 .4rem;
}

#mostrarcontra {
    box-shadow: none;
    background: var(--principal);
    width: 3.5rem;
    flex-shrink: 0;
    border-radius: 0 .4rem .4rem 0;
    fill: whitesmoke;
    border: none;
    outline: none;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    margin: 0;
    align-self: stretch;
    transition: background-color 0.2s;
    cursor: pointer;
}


/*******************************************************************************
 *                           MARK:[Radios invisibles]                          *
 *******************************************************************************/
input[type="radio"] {
    display: none;
}

label {
    cursor: pointer;
}

#label-empleado,
#label-fechas,
#label-grupo,
.label-radio {
    transition: .3s;
    border-radius: .3rem;
    padding: .5rem;
}

#iempleado:checked~#label-empleado,
#ifechas:checked~#label-fechas,
#igrupo:checked~#label-grupo,
.radio:checked~.label-radio {
    background-color: var(--principal);
    color: white;
    box-shadow: rgba(0, 0, 0, 0.16) 0px 10px 36px 0px, rgba(0, 0, 0, 0.06) 0px 0px 0px 1px;
    pointer-events: none;
    cursor: default;
}

.radio:checked~.label-radio.pendiente,
span.pendiente {
    background-color: light-dark(gold, goldenrod);
    color: light-dark(var(--gris-oscuro), white);
}

.radio:checked~.label-radio.aprobado,
span.aprobado {
    background-color: light-dark(var(--verde), rgb(21 115 5));
    color: white;
}

.radio:checked~.label-radio.desaprobado,
span.desaprobado {
    background-color: light-dark(var(--rojo), rgb(176 34 50));
    color: white;
}


span:is(.pendiente, .aprobado, .desaprobado),
.tipo-aprobacion-crear,
.tipo-aprobacion-modificar,
.tipo-aprobacion-eliminar {
    transition: .3s;
    padding: .2rem .4rem;
    border-radius: .4rem;
    text-transform: capitalize;
}

.tipo-aprobacion-crear {
    background-color: light-dark(lightgreen, var(--verde));
}

.tipo-aprobacion-modificar {
    background-color: light-dark(deepskyblue, rgb(0, 111, 148));
}

.tipo-aprobacion-eliminar {
    background-color: light-dark(lightcoral, rgb(177, 58, 58));
}


/*******************************************************************************
 *                           MARK:[Exportar PDF/CSV]                           *
 *******************************************************************************/
#convertirpdf,
#convertircsv {
    font-size: .8rem;
    color: light-dark(rgb(50 50 93 / 0.8), white);
    background-color: light-dark(white, var(--morado-oscuro));
    border: none;
    border-radius: .3rem;
    padding: .5rem .3rem;
    transition: .3s;
    font-weight: bold;
    cursor: pointer;
    margin-top: 0;
    text-decoration: none;
    font-size: 1.4rem;
    box-shadow: 0 2px 6px 0 light-dark(hsla(0, 0%, 0%, 0.2), hsla(255, 100%, 100%, 0.2));
    transition: .3s;
}

:is(#convertirpdf, #convertircsv) svg:nth-of-type(1) {
    z-index: 1 !important;
    margin-left: 1rem;
    width: 2rem;
    height: 2rem;
    fill: light-dark(var(--negro), white);
    transition: .3s;
}


:is(#convertirpdf, #convertircsv) svg:nth-of-type(2) {
    width: 1rem;
    height: 1rem;
    margin-left: -2.9rem;
    margin-bottom: -.4rem;
    margin-right: 1.5rem;

    z-index: 3 !important;
    fill: var(--verde);
    transform: rotate(90deg);
    transition: .3s;
}

#convertirpdf svg:nth-of-type(2) {
    fill: var(--rojo);
}


#convertirpdf:where(:focus, :hover) {
    background-color: white;
    color: #e00241 !important;
}

#convertircsv:where(:focus, :hover) {
    background-color: white;
    color: var(--verde) !important;
}


#convertirpdf:where(:focus, :hover) svg:nth-of-type(1) {
    fill: #e00241;
}

#convertircsv:where(:focus, :hover) svg:nth-of-type(1) {
    fill: var(--verde);
}


/*******************************************************************************
*                                 MARK: [Tabla]                                *
*******************************************************************************/
/*Actualizado 25w34b*/
table {
    border-collapse: separate;
    border-spacing: 0;
    border: 1px solid #ccc;
    border-radius: .5rem;
    overflow: hidden;
    font-size: 1.2rem;
    box-shadow: rgba(9, 30, 66, 0.25) 0px 4px 8px -2px, rgba(9, 30, 66, 0.08) 0px 0px 0px 1px;
    overflow: visible;
}

/*Actualizado 25w34b*/
th,
td {
    padding: 8px;
}

thead tr td {
    font-weight: bold;
}

td {
    text-align: center;
    padding: .4rem;
}

.gap {
    gap: .3rem;
}

td:hover {
    background-color: rgb(26 115 232 / .6);
}

.no-hover td {
    pointer-events: none;
}

thead tr {
    transition: .3s;
    background-color: light-dark(rgb(210 210 210 / .8), var(--negro)) !important;
}

tr:last-child {
    margin-bottom: 0 !important;
}


thead tr:first-child td:first-child {
    border-top-left-radius: .4rem;
}

thead tr:first-child td:last-child {
    border-top-right-radius: .4rem;
}

tbody tr:last-child td:first-child {
    border-bottom-left-radius: .4rem;
}

tbody tr:last-child td:last-child {
    border-bottom-right-radius: .4rem;
}



tr:nth-child(even) {
    background-color: rgb(3 94 177 / .2);
}

tr:nth-child(odd) {
    background-color: rgb(2 129 74 / .2);
}

.nuevo {
    background-color: rgba(47, 104, 1, 0.8);
    border: 4px solid rgba(255, 215, 0, .9);
    color: white;
}

td a svg {
    color: #F4B400;
}

.nopuntual {
    color: white;
    font-weight: bold;
    animation-name: vivo;
    animation-iteration-count: infinite;
    animation-duration: 6s;
    transition: .3s;
}

@keyframes vivo {
    0% {
        background-color: light-dark(rgb(204, 46, 46), rgb(129, 24, 24));
    }

    50% {
        background-color: light-dark(rgb(129, 24, 24), rgb(87, 16, 16));
    }

    100% {
        background-color: light-dark(rgb(204, 46, 46), rgb(129, 24, 24));
    }
}

/*******************************************************************************
*                               MARK: [Imprimir]                               *
*******************************************************************************/
#cuerpo.impr {
    margin-top: 0 !important;
    box-shadow: none;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

#cuerpo .pagina table tbody tr td {
    font-size: .8rem !important;
    padding: .1rem;
}

#imprbody,
.impr {
    height: auto !important;
    padding: 0 !important;
    margin: 0 !important;
}

.impr {
    display: flex;
    justify-content: flex-start !important;
}

.pagina:first-child {
    display: none;
}

.pagina {
    height: 21cm !important;
}

.encabezadopag {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    flex-wrap: nowrap;
}

.encabezadopag section:first-child {
    display: flex;
    justify-content: space-between;
}


/*******************************************************************************
*                                   [Versión]                                  *
*******************************************************************************/

#muestraversion {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: fixed;
    bottom: .5rem;
    right: 1rem;
    background: light-dark(rgb(255 255 255 / 70%), rgb(29 35 39 / 70%));
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37);
    border-radius: .4rem;
    padding: .2rem .5rem;
    transition: .3s;
}

#muestraversion span {
    color: light-dark(#202020, white);
}

/*******************************************************************************
*                              MARK: [Responsive]                              *
*******************************************************************************/

/*Tablets*/
@media (width<=950px) {
    main {
        padding-top: 4rem;
    }

    /*Encabezado*/
    #encabezado-lateral {
        height: 3rem;
        right: 0;
        left: 0;
        width: 100%;
        flex-direction: row;
        overflow-x: auto;
        overflow-y: hidden;
    }

    #encabezado-lateral section {
        padding: 0;
    }

    #encabezado-lateral>.gap05 {
        gap: 0;
        justify-content: space-between;
    }

    #encabezado-lateral .column {
        flex-direction: row;
    }

    #encabezado-lateral .column a {
        width: 2.5rem;
        padding: 0;
        margin: 0;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
    }
    #primer-menu a{
        height: 100%;
    }

    #encabezado-lateral a span {
        display: none;
    }

    #encabezado-lateral.activo~main {
        padding-left: 0;
    }

    #btn-lateral {
        display: none;
    }

    #primer-menu {
        width: 100%;
    }

    #segundo-menu {
        position: fixed;
        left: 0;
        bottom: 0;
        flex-direction: column !important;
    }

    #encabezado-lateral #cerrar_sesion {
        margin-bottom: 0;
    }

    #segundo-menu {
        width: fit-content;
    }


    /*Calendario*/

    #cont-cal-anterior {
        order: 1;
    }

    #cont-cal-nombre {
        order: 0;
    }

    #cont-cal-siguiente {
        order: 2;
    }

    #calendario {
        height: auto;
    }

    #calendario>.linea .c-nombre {
        display: none;
    }

    #calendario .linea {
        flex-direction: column;
    }

    #calendario .linea .c-dia {
        width: 100%;
    }

    #calendario .btn-circle-glass {
        left: 0;
    }

    #calendario .c-linea-horas {
        flex-direction: row;
    }

    #calendario .c-vacio {
        display: none;
    }

    /*Tablas*/
    table {
        border: none;
        box-shadow: none;
    }

    table,
    thead,
    tbody,
    th,
    td,
    tr {
        display: block;
    }

    thead tr {
        display: none;
    }

    tr {
        margin-bottom: 1rem;
        border-radius: 8px;
        padding: 0.5rem;
        box-shadow: rgba(9, 30, 66, 0.25) 0px 4px 8px -2px, rgba(9, 30, 66, 0.08) 0px 0px 0px 1px;
    }


    td {
        display: flex;
        justify-content: start;
        padding: 0.5rem;
        border: none;
    }

    td::before {
        content: attr(data-label);
        font-weight: bold;
    }

    td.td-vacio {
        display: none;
    }

    td:is(.nopuntual, .puntual, .trabajando) {
        text-align: center !important;
    }

    td:is(.nopuntual, .puntual, .trabajando)>span {
        width: 100%;
    }

    /*Festivos*/
    .vacaciones {
        flex-direction: column;
        min-width: auto;
        width: calc(100% - 2rem);
        padding: 1rem;
        gap: .5rem;
        text-align: center;
        background: linear-gradient(135deg, rgba(2, 129, 74, 0.4), rgba(3, 94, 177, 0.4));
    }

    .vacaciones .nombre {
        width: 100%;
        justify-content: center;
        font-size: 1.2rem;
    }

    .vacaciones .anotacion {
        margin: 0 auto;
    }

    .vacaciones>section {
        flex-direction: column;
        align-items: center;
        gap: .3rem;
    }

    .vacaciones button {
        position: absolute;
        top: .5rem;
        right: .5rem;
    }
}

/*Móviles*/
@media (width<=720px) {
    h1 {
        font-size: 1.6rem;
    }

    h2 {
        font-size: 1.4rem;
    }

    /*Fichador*/
    #menu {
        height: 1rem;
    }

    #logo {
        height: 2.5rem;
    }

    /*Notificaciones*/
    #notificacion {
        left: .2rem;
    }

    /*Cuerpo*/
    .cristal {
        padding: 1rem;
        margin: 0 1rem;
    }

    .row-column {
        flex-direction: column !important;
    }

    .column-row {
        flex-direction: row;
    }

    .solomovil {
        display: flex;
    }

    .movilno {
        display: none;
    }

    /*Acordeones*/
    summary .titulo-summary {
        font-size: 1rem;
    }

    /*Tooltips*/
    .tooltip {
        left: 15rem;
    }



    /*Formularios*/
    label {
        font-size: 1.4rem;
    }

    /*Dialogs*/

    dialog .gap5 {
        gap: 1rem;
    }

    /*Versión*/
    #muestraversion {
        display: none;
    }

    /*Página de Ajustes - Responsive*/
    .cristal>section.cristal {
        width: calc(100% - 2rem);
        margin: 0;
    }

    .cristal>section.cristal>article.flex.column {
        width: 100%;
    }

    label.chk {
        flex-wrap: wrap;
        font-size: 1rem;
        padding: .4rem .6rem;
        gap: .5rem;
        width: 100%;
        box-sizing: border-box;
    }

    label.chk svg:first-of-type {
        width: 1.5em;
        height: 1.5em;
    }

    label.chk input[type="number"] {
        width: 4rem;
        font-size: 1rem;
    }

    label.chk abbr {
        display: none;
    }

    label.chk~span {
        font-size: .9rem;
    }

    label.chk~span svg {
        width: .9em;
        height: .9em;
    }

    #preview-imagen {
        padding: .5rem;
    }

    #preview-imagen img {
        max-width: 100% !important;
        height: auto !important;
    }

    /*Documentación*/
    #documentacion img {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
    }
}

.c-incidencia-dia {
    position: absolute;
}