@charset "utf-8";
/* CSS Document */

* {
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}
@keyframes blink {
    0% {
        opacity: 1;
    }
    50% {
        opacity: 0.5;
    }
    100% {
        opacity: 1;
    }
}

:root
{
    --gap: 18px;
    --bg: #e4e4e4;
    --square-bg: #f6f8f9;
    --accent: #0f6b3b; /* verde bambú recomendado */
    --text: #1e2427;
}


/* OCULTAR FLECHAS EN INGRESOS NUMERICOS */
/* Chrome, Safari, Edge, Opera */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
/* Firefox */
input[type=number] {
  -webkit-appearance: textfield;
  appearance: textfield;
}

/* ESTILOS DE ELEMENTOS COMUNES */
body {
	font-family: 'Lato', sans-serif;
	color: #444;
	margin: 0;
}

input[type=submit],
input[type=button],
button
{
	-webkit-border-radius: 3px;
    border-radius: 3px;
	padding: 5px 10px 5px 10px;
	background: #333; 
    border: 0 none; 
	font-size: 11px;
	font-weight: bold;
	font-family: Tahoma, Geneva, sans-serif;
	color: #CCCCCC;
}
input[type=submit]:disabled,
input[type=button]:disabled,
button:disabled {
	background: #E2E2E2; 
	color: #CECECE;
}
input[type=image]
{
	border: 0px;
}

/* CONTENEDOR PRINCIPAL */
#Pagina
{
	display: flex;
	justify-content: center;
	flex-direction: row;
	width: 100%;
	min-height: 100vh;
}
#Menu
{
	width: 225px;
	background: #333;
    color: white;
	height: 100%;
	position: fixed;
    top: 0;
	left: 0;
	background-repeat: no-repeat;
	background-position: center bottom;
}
#Contenido
{
	width: calc(100% - 225px);
	height: 100%;
	margin-left: 240px;
	margin-right: 15px;
	
}

/* Estilos del menú */
.Menu ul
{
    list-style-type: none;
    padding-left: 0px;
    margin-left: 0px;
}
.Menu li 
{
    margin: 8px 0;
    cursor: pointer;
    font-size: 1.3em;
}
.Menu li > ul
{
    padding-left: 15px;
}
.Menu a, .Menu .MenuItem
{
    text-decoration: none;
    display: block;
    padding: 5px 8px;
}
.Menu > ul a:hover, .Menu .MenuItem:hover
{
    background-color: #12656e;
    color: white;
}
.MenuSubmenu 
{
    display: none;
    overflow: hidden;
    transition: max-height 0.3s ease;
    margin-left: 15px;
}
.MenuSubmenu li 
{
    font-family: 'Barlow', sans-serif;
    font-size: 0.8em;
    font-style: italic;
}
.MenuSubmenu a 
{
	text-decoration: none;
    padding: 5px 15px;
    color: #ddd;
}
.MenuToggle
{
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    background-color: #333;
    color: white;
    border: none;
    padding: 10px 15px;
    font-size: 16px;
    cursor: pointer;
    z-index: 1001;
}
.MenuLogos
{
	width: 100%;
	display: flex;
    justify-content: center;
}
.MenuLogos img
{
	vertical-align: middle;
}
.MenuLogoCela
{
	vertical-align: middle;
}
.MenuLogoBambu
{
    text-align: center;
    margin-left: -10px;
}
.MenuLogoICG
{
    position: absolute;
	bottom: 30px;
    left: 35px;
}
.MenuBienvenida
{
	font-size: 14px;
	margin-top: 20px;
	width: 100%;
	text-align: center;
    white-space: pre-line;
}
.MenuBienvenida span
{
	color: yellow;
	font-weight: bold;
}
.MenuLogout
{
	position: absolute;
	bottom: 2px;
	text-align: center;
	font-size: 12px;
    width: 100%;
}
.MenuLogout a
{
    text-decoration: none;
}
.MenuLogout a,
.MenuLogout a:visited
{
    color: white;
}
/* Estilos de formuarios */
.FormContenedor
{
    display: block;
}
.FormLinea
{
    max-width: 500px;
    margin-top: 15px;
    margin-bottom: 15px;
}
.FormEtiqueta
{
    display: inline-block;
    text-align: right;
    width: 200px;
}
.FormCampo
{
    display: inline-block;
    text-align: left;
    width: 200px;
}
/* Estilos de autenticación */
.AuthContenedor
{
	display: block;
	top: 100px;
	width: 350px;
	height: auto;
	padding: 20px;
}
.AuthEtiqueta
{
    width: 100px;
	text-align: right;
	display: inline-block;
	margin-bottom: 15px;
}
.AuthCampo
{
	width: 190px;
	text-align: left;
	display: inline-block;
	margin-bottom: 15px;
	margin-left: 10px;
}
.AuthCampo input
{
	width: 150px;
}
.AuthOpciones
{
	width: 100%;
	margin-bottom: 15px;
	text-align: center;
	font-size: 12px;
}
.AuthBotones
{
	width: 100%;
	margin-bottom: 15px;
	text-align: center;
}
.AuthMsj
{
	width: 100%;
	text-align: center;
	font-size: 12px;
	font-weight: bold;
}
.AuthMsj img
{
	vertical-align: middle;
}

/* Estilos para dashboard */
.DashBoardContenedor 
{
    width: 100%;
    max-width: 1200px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(2, 1fr);
    gap: 16px;
    padding: 32px;
}
.DashBoardCubiculo 
{
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 0.75;
    background-color: rgb(241, 241, 241);
    border: 1px solid #000;
    border-radius: 15px;
    overflow: hidden;
}
.DashBoardCubiculoTitulo 
{
    margin-top: 20px;
    height: 25px;
    width: 100%;
    text-align: center;
}
.DashBoardCubiculoTitulo h3 
{
    margin: 0;
    font-size: 1.5rem;
}
.DashBoardCubiculo > .DashBoardCubiculoContenido 
{
    margin: 20px;
    position: absolute;
    inset: 0;
    display: flex;
    justify-content: center;
    flex-direction: column;
    padding: 0;        
    gap: 8px;            
    text-align: center;
}
.DashBoardCubiculo > .DashBoardCubiculoContenido div
{
    flex-direction: row;
}
.DashBoardCubiculoEtiqueta
{
    width: 250px;
	text-align: right;
	display: inline-block;
	margin-bottom: 15px;
}
.DashBoardCubiculoCampo
{
	width: 150px;
	text-align: left;
	display: inline-block;
	margin-bottom: 15px;
	margin-left: 10px;
    font-weight: bold;
}
.DashBoardLoader
{
    margin: auto;
    text-align: center;
}

/* Estilos de formularios dentro del dashboard */

.ControlHorarioHora
{
    font-size: 3em;
    font-weight: bold;
}
.ControlHorarioBtnEnt {
	box-shadow:inset 0px 1px 0px 0px #9acc85;
	background:linear-gradient(to bottom, #74ad5a 5%, #588a3f 100%);
	background-color:#74ad5a;
	border-radius:5px;
	border:2px solid #3b6e22;
	display:inline-block;
	cursor:pointer;
	color:#ffffff;
	font-family:Trebuchet MS;
	font-size:28px;
	font-weight:bold;
	width: 150px;
    height: 60px;
	text-decoration:none;
    margin: 10px;
}
.ControlHorarioBtnEnt:not(:disabled):hover {
	background:linear-gradient(to bottom, #588a3f 5%, #74ad5a 100%);
	background-color:#588a3f;
}
.ControlHorarioBtnEnt:active {
	position:relative;
	top:1px;
}
.ControlHorarioBtnEnt:disabled {
    box-shadow: none;
    background-color: #cccccc; /* gris */
    color: #bbbbbb;             /* texto más claro */
    cursor: not-allowed;        /* cursor de “prohibido” */
    opacity: 0.6;               /* un poco transparente */
    border:2px solid #bbbbbb;
}
.ControlHorarioBtnSal {
	box-shadow:inset 0px 1px 0px 0px #fa5050;
	background:linear-gradient(to bottom, #d90303 5%, #9c0202 100%);
	background-color:#d90303;
	border-radius:5px;
	border:2px solid #5c0101;
	display:inline-block;
	cursor:pointer;
	color:#ffffff;
	font-family:Trebuchet MS;
	font-size:28px;
	font-weight:bold;
	width: 150px;
    height: 60px;
	text-decoration:none;
    margin: 10px;
}
.ControlHorarioBtnSal:not(:disabled):hover {
	background:linear-gradient(to bottom, #9c0202 5%, #d90303 100%);
	background-color:#9c0202;
}
.ControlHorarioBtnSal:active {
	position:relative;
	top:1px;
}
.ControlHorarioBtnSal:disabled {
    box-shadow: none;
    background-color: #cccccc; /* gris */
    color: #bbbbbb;             /* texto más claro */
    cursor: not-allowed;        /* cursor de “prohibido” */
    opacity: 0.6;               /* un poco transparente */
    border:2px solid #bbbbbb;
}
.ControlHorarioMsj img
{
    vertical-align: middle;
    margin-right: 10px;
    width: 16px;   
    height: 16px;
}

/*Estilos para módulo de colaboradores*/
.ColaboradoresContenedor
{
    width: 100%;
}
.ColaboradoresTabla
{
    display: flex;
    flex-direction: column;
    border: 1px solid #ccc;
    font-family: sans-serif;
    max-width: 1200px;
}
.ColaboradoresTablaEnc
{
    display: flex;
    background: #f0f0f0;
    font-weight: bold;
    border-bottom: 1px solid #ccc;
}
.ColaboradoresTablaFila
{
    display: flex;
}
.ColaboradoresTablaFila:nth-child(even) 
{
    background: #fafafa;
}
.ColaboradoresTablaCelda 
{
    padding: 8px 12px;
    border-right: 1px solid #ccc;
    box-sizing: border-box;
    min-width: 0;              /* importante para que no rompa el ancho */
    overflow: hidden;          /* opcional: recorta contenido largo */
    text-overflow: ellipsis;   /* opcional: agrega "..." */
    white-space: nowrap;  
    vertical-align: middle;
    text-align: center;
}
.ColaboradoresTablaCelda:last-child 
{
    border-right: none;
}
.ColaboradoresTablaCol1
{
    flex: 0 0 5%;
}
.ColaboradoresTablaCol2 
{ 
    flex: 0 0 5%; 
}
.ColaboradoresTablaCol3
{ 
    flex: 0 0 30%; 
}
.ColaboradoresTablaCol4
{ 
    flex: 0 0 35%;
}
.ColaboradoresTablaFila > .ColaboradoresTablaCelda.ColaboradoresTablaCol4
{
    font-size: 0.75em;
    text-align: left;
    white-space: pre-line;
    line-height: 1.3;
}
.ColaboradoresTablaCol5
{ 
    flex: 0 0 25%; 
}
.ColaboradoresTablaBotones 
{
    width: 24px;
    height: 24px;
    margin-left: 5px;
    margin-right: 5px;
    vertical-align: middle;
}
.ColaboradoresTablaActivo
{
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 1px solid #666;
    margin: auto;
}
.ColaboradoresTablaActivo.Activo
{
    background-color: greenyellow;
}
.ColaboradoresTablaActivo.Inactivo
{
    background-color: gray;
}

/* Estilos para edición de colaboradores */
.ColaboradoresEdicionId
{
    width: 50px;
    text-align: center;
    font-size: 1.1em;
}
.ColaboradoresEdicionNombres
{
    width: 200px;
}
.ColaboradoresEdicionApellido
{
    width: 150px;
}
.ColaboradoresEdicionRun
{
    width: 90px;
}
/***********************/
/* Estilos responsivos */
/***********************/
@media (max-width: 1000px) 
{
    #Pagina 
    {
        margin-top: 20px;
        vertical-align: top;
    }
    #Menu 
    {
        position: absolute;
        width: 100%;
        display: none;
        overflow: hidden;
        height: 100vh;
        z-index: 1000;
    }
    #Contenido 
    {
        width: 100%;
        margin: 0;
        padding: 15px;
    }
    h1 
    {
        font-size: 1.5em;
    }
    .MenuBienvenida 
    {
        margin-top: 35px;
        white-space: nowrap;
    }
    .MenuLogoBambu
    {
        position: absolute;
        bottom: 30px;
        left: calc(50% - 75px);
    }
    .MenuLogoICG
    {
        display: none;
    }
    .MenuToggle 
    {
        display: block;
    }
   
    /* Estilos para dashboard */
    .DashBoardContenedor 
    {
        display: flex;
        flex-direction: column;
        padding: 10px
    }
    .DashBoardCubiculo 
    {
        aspect-ratio: initial;
        margin: 5px;
    }
    .DashBoardCubiculoTitulo 
    {
        height: 20px;
    }
    .DashBoardCubiculoTitulo h3 
    {
        margin: 0;
        font-size: 1.3rem;
    }
    .DashBoardCubiculo > .DashBoardCubiculoContenido
    {
        position: initial
    }
    .DashBoardCubiculo > .DashBoardCubiculoContenido div
    {
        flex-direction: column;
    }
    .DashBoardCubiculoEtiqueta
    {
        width: calc(70% - 40px);
        font-size: 0.9em;
    }
    .DashBoardCubiculoCampo
    {
        width: 30%;
        font-size: 0.9em;
    }
    /* Estilos de formularios dentro del dashboard */

    .ControlHorarioHora
    {
        font-size: 2em;
    }
    .ControlHorarioBtnEnt 
    {
        font-size:1em;
        font-weight:bold;
        width: 40%;
        height: 45px;
    }
    .ControlHorarioBtnSal 
    {
        font-size:1em;
        font-weight:bold;
        width: 40%;
        height: 45px;
    }
    .ControlHorarioMsj
    {
        font-size: 0.8em;
    }
    /*Estilos para módulo de colaboradores*/
    .ColaboradoresTablaCol1
    {
        flex: 0 0 15%;
    }
    .ColaboradoresTablaCol2
    {
        flex: 0 0 15%;
    }
    .ColaboradoresTablaCol3
    {
        flex: 0 0 30%;
    }
    .ColaboradoresTablaCol4
    { 
       display: none !important;
    }
    .ColaboradoresTablaCol5
    {
        flex: 0 0 40%;
    }
    
}