/*ESTILOS GENERALES*/
html{
	box-sizing: border-box;
}
*, *:before, *:after{
	box-sizing: inherit;
}
#toppage.gmx{
	height: 59px;
}
body{
	font-family: "Montserrat" !important;
	color: #191919 !important;

}
body::-webkit-scrollbar {
	scrollbar-width: none;
}
a, a:hover{
	text-decoration: none !important;
}
p {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}
button {
	outline: none;
	border: 0;
	cursor: pointer;
}
main{
	position: relative !important;
	/* margin-top: -7px; */
}
.row{
	margin-right: 0 !important;
	margin-left: 0 !important;
}
.t-c{
	text-align: center;
}
.t-r{
	text-align: right;
}
.t-l{
	text-align: left;
}
.t-j{
	text-align: justify;
}
.form-control:focus{
	box-shadow: none;
}
.ma{
	margin: auto;
}
.ma-g{
	margin-bottom: 10px !important;
}
.ma-b2{
	margin-bottom: 20px !important;
}
.ma-b3{
	margin-bottom: 30px !important;
}
.ma-t{
	margin-top: 10px !important;
}
.ma-t2{
	margin-top: 20px !important;
}
.ma-t3{
	margin-top: 30px !important;
}
.cnt{
	position: absolute;
	transform: translate(-50%, -50%);
	top: 50%;
	left: 50%;
}
.pr{
	position: relative;
}
.sp{
	padding-left: 0;
	padding-right: 0;
}
.pa-10{
	padding: 10px;
}
.ocultar {
	display: none !important;
}
.mostrar {
	display: block !important;
}

/*COLORES BACK*/
.verde{
	background: #235B4E;
}
.verde_o{
	background: #10312B;
}
.oro{
	background: #BB965C;
}
.oro_c{
	background: #DDC9A5;
}
.guinda{
	background: #9F1F41;
}
.vino{
	background: #681B33;
}
.verde_b{
	background: #159d15;
}
.rojo{
	background: #cc171e;
}
.gris_c{
	background: #d2d1d1;
}
.blanco{
	background: #fff;
}

/*COLORES TEXT*/

.verde_t{
	color: #235B4E;
}
.verde_o_t{
	color: #10312B;
}
.oro_t{
	color: #BB965C;
}
.oro_c_t{
	color: #DDC9A5;
}
.guinda_t{
	color: #9F1F41;
}
.vino_t{
	color: #681B33;
}
.verde_b_t{
	color: #159d15;
}
.rojo_t{
	color: #cc171e;
}
.blanco_t{
	color: #fff;
}
.gris_c_t{
	color: #d2d1d1;
}

.fw-7{
    font-weight: 700;
}

.header {
    display: block;
    margin: 0px;
    padding: 0px;
    background-color: #fff;
    font-family: 'Montserrat';
    font-size: 18px;
    line-height: 1.428571429;
    color: #404041;
    font-weight: 300;
    word-wrap: break-word;
    position: relative;
    top: -4px;
    z-index: 1000;
}

.header .navbar{
    padding-top: 0px;
    padding-bottom: 0px;
}
.bg-sisac {
    background:#235B4E;
}
.header-logo{
    background-size: cover;
    background-repeat: no-repeat;
    width: 150px;
    height: auto;
}
.header-dashboard{
    background-size: cover;
    background-repeat: no-repeat;
    width: 250px;
    height: auto;
}

.prinLogo{
    width: 250px;
}

.navbar-head{
    border-radius: 100px;
}
.icon-head{
    width: 25px;
}
.text-head{
    font-size: 16px;
    font-weight: 500;
}

/*inicio de pleca verde*/
.plecaVerde {
    width: 100%;
    padding: 10px;
    align-content: center;
    border-radius: 50px;
    color: #fff;
    font-weight: 800;
    font-size: 20px;
    display: flex;
    align-items: center; 
	margin: 20px;
	height: 66px;
}

.plecaVerde .btn {
    margin: 0 5px; 
}

.plecaVerde .btnSec, .plecaVerde .btnSecGuinda {
    margin: 0 5px; 
}

.btn:hover, .btnSec:hover, .btnSecGuinda:hover {
    color: #fff;
}
.plecaVerde a {
    color: inherit;
    text-decoration: none; 
}
.plecaVerde a:hover {
    color: inherit; 
    text-decoration: none; 
}

/*fin de pleca verde*/

/*LINEAS*/
.l-div{
	position: relative;
	height: 5px;
	width: 100%;
}
.l-div-bis{
	position: relative;
	height: 10px;
	width: 100%;
}
.borde-izq{
	width: calc(50% - 5px);
	height: 5px;
	float: left;
	position: relative;
}
.borde-izq .diagonal{
    position: absolute;
	width: 5px;
	height: 5px;
    bottom: 0;
    right: -5px;
    border-bottom: 5px solid;
    border-right: 5px solid transparent;
}
.borde-der{
	width: calc(50% - -5px);
	height: 5px;
	float: right;
}
.l-div-bis .borde-izq, .l-div-bis .borde-der {
	height: 10px;
}
.l-div-bis .borde-izq .diagonal{
	width: 10px;
	height: 10px;
    right:  -10px;
    border-bottom: 10px solid;
    border-right: 10px solid transparent;
}
.oro{
	background: #BC955C;
}
.oro_c{
	background: #DDC9A5;
}
/*fin lineas*/
/* BTN SECUNDARIO */
.btnSec {
    height: 35px;
    background: #bb965c;
    color: #fff;
    padding: 5px 8px;
    font-size: 11px;
    font-weight: 600;
	line-height: 23px;
    border-radius: 8px;
    transition: all .5s;
}
a.btnSec{
	display: inline-flex;
	text-align: center;
	color: #fff;
	padding: 10px;
	cursor: pointer;
}
.btnSec img{
	width: 17px;
	margin-left: 2px;
	transition: .5s all;
}
.btnSec i{
	font-size: 13px;
	margin-left: 2px;
	transition: .5s all;
}
.btnSec:hover{
	background: #691c32;
}
.btnSec:hover:focus{
	transform: scale(.85);
}
.btnSec:hover img, .btnSec:hover i{
	margin-left: 7px;
}
.btnSec img{
	width: 20px;
	margin-left: 2px;
	transition: .5s all;
}
.btnSec i{
	font-size: 15px;
	margin-left: 2px;
	transition: .5s all;
}
.btnSec:hover{
	background: #691c32;
}
.btnSec:hover:focus{
	transform: scale(.85);
}
.btnSec:hover img, .btnSec:hover i{
	margin-left: 7px;
}

.fondo-login{
    background-image: url(../img/bg-login.png);
    background-size: cover;
    background-repeat: no-repeat;
    width: 100%;
	height: 100vh; 
    margin: 0; 
	
}
.cont-logo{
    background-color: #eeeeec;
    border-radius: 20px 0px 0px 20px;
    text-align: center;
    padding: 30px;
}
.box-login{
    background: #eeeeec;
    border-radius: 40px 0px 0px 40px;
    border-left: 5px solid #bb965c;
    min-height: 600px;
	height: 100vh;
    margin: 0; 
}
.login{
    width: 60%;
    margin: auto;
    padding: 20px;
	align-self: center;
	margin-top: 50px;
}
.login-logimb img{
    width: 350px;
    text-align: center;
    align-content: center;
}
.login-logimb{
    text-align: center;
    align-content: center;
}
.form-sesion {
    text-align: left;
    margin-bottom: 10px;
}
.tit-input {
    font-size: 13px;
    font-weight: 700;
    text-align: left;
    color: #005046;
    padding-left: 18px;
}
.input-icon {
    height: 42px;
    background: #fff;
    border: 2px solid #BB965C;
    border-radius: 30px;
}
.icon-l{
    width: 40px;
    height: 40px;
    float: left;
    padding: 10px;
}
/* BTN SECUNDARIO */
.btnSecGuinda {
	height: 40px;
	background: #9f2241;
	color: #fff;
	padding: 5px 10px;
	font-size: 14px;
	font-weight: 600;
	border-radius: 10px;
	transition: all .5s;
	margin-top: 5px;
}
.btnSecGuinda img{
	width: 20px;
	margin-left: 2px;
	transition: .5s all;
}
.btnSecGuinda i{
	font-size: 15px;
	margin-left: 2px;
	transition: .5s all;
}
.btnSecGuinda:hover{
	background: #691c32;
}

.btnSecGuinda:hover:focus{
	transform: scale(.85);
}
.btnSecGuinda:hover img, .btnSec:hover i{
	margin-left: 7px;
}

/*FORMULARIO BASE*/
.secTit{
	font-weight: 700;
	font-size: 14px;
	margin-bottom: 2px;
	margin-top: 5px;
	color: #4D4D4D;
}
label.titForm{
	display: block;
	font-size: 13px !important;
	font-weight: 700 !important;
	line-height: 1;
	padding-left: 15px !important;
}
label.titForm em{
	font-size: 12px;
	color: #9F804E;
}
label.titForm img{
	width: 18px;
	margin-right: 5px;
}
.form-control.form-basic, .form-select.form-basic, .form-basic {
	margin-top: 5px;
	border-radius: 10px;
	height: 40px;
	border: 2px solid #d2d1d1;
	font-weight: 600;
	font-size: 13px;
}
.form-select select{
    padding: 5px;
}
.form-select option{
    padding: 2px 0;
    font-size: 15px;
    font-weight: 500;
}

/*TABLAS*/
.table-containrer{
    width: 80%;
    margin: auto;
}
.headTable{
    padding: 5px 10px;
    height: 60px;
    line-height: 40px;
    text-align:center; 
    align-content: center;
}
.headTable h4{
    font-size: 25px;
}
#bandejaUsu{
    background: #fff;
    box-shadow: 0 0 3px gray;
    border-radius: 15px;
	padding: 0 !important;
}

.formLabel{
    display: block;
    font-size: 15px;
    font-weight: 700;
    text-align: left;
}
.table-head{
    vertical-align: middle;
    font-size: 13px;
    font-weight: 700;
    text-align: center;
    color: #fff;
    border-bottom: 3px solid #ddc9a5;
}
#table-gral th, #table-gral td{
    vertical-align: middle;
    font-size: 14px;
    text-align: center;
    padding: 4px 10px;
}
#table-gral td{
    font-weight: 500;
}
#table-gral tr{
    border-bottom: 2px solid #d5d5d5;
}
.tablaGral tbody td {
	font-size: 12px !important;
	font-weight: 500 !important;
	text-align: center !important;
	vertical-align: middle !important;
  }
.alignBtn {
    display: grid;
    gap: 0 20px;
    grid-auto-flow: dense;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    margin: 5px 0;
}
.btnModulo {
    min-width: 245px;
    max-width: 280px;
    height: 80px;
    background: #fff;
    box-shadow: 0 0 5px grey;
    border-radius: 15px;
    padding: 0;
    transition: .8s all;
    margin: 10px auto;
}
.p-left {
    position: relative;
    display: flex;
    width: 70px;
    height: 80px;
    float: left;
    border-radius: 15px 15px 45px 15px;
    vertical-align: middle;
    z-index: 1;
}
.p-left img {
    width: 40px;
    height: 40px;
    position: absolute;
    transform: translate(-50%, -50%);
    transition: .5s all;
    top: 42%;
    left: 50%;
}
.p-right {
    width: calc(100% - 70px);
    height: 80px;
    float: right;
    padding: 15px 10px;
    text-align: center;
}
.p-right .tit.user {
    text-align: left;
    font-size: 17px;
    font-weight: 700;
    position: relative;
    transform: translateY(-50%);
    transition: .5s all;
    top: 35%;
}
.p-right .subtit {
    font-size: 11.5px;
    text-align: left;
    color: #4d4d4d;
    line-height: 1.1;
}


.titulo_seccion{
    display: block;
    float: left;
    position: relative;
    top: 10px;
    color: #fff;
    margin-right: 5px;
	font-weight: 1000 !important;
}
.oro_borde{
    border: 2px solid #ea5300;
}
/*BOTONES*/

/*BTN GRAL*/
.btnGral{
	position: relative;
	background: #fff;
	border: 3px solid;
	border-radius: 10px;
	min-width: 150px;
	height: 42px;
	padding: 0;
	margin: 0 10px auto;
	transition: .8s all;
}
.btnGral p{
	width: calc(100% - 48px);
	float: left;
	line-height: 40px;
	font-size: 16px ;
	font-weight: 700;
	padding: 0 5px 0 10px;
}
.btnGral .btnIcon{
	position: relative;
	width: 48px;
	float: left;
	top: -1px;
	right: -1px;
}
.btnGral .btnIcon .boxIcon{
	position: relative;
	width: 30px;
	height: 40px;
	float: right;
	border-radius: 0 9px 9px 0;
	transition: .5s all;
}
.btnGral .btnIcon .boxIcon img {
	z-index: 10;
	position: absolute;
	transform: translate(-50%, -50%);
	width: 20px;
	left: 12px;
	top: 50%;
}
.btnGral .btnIcon span{
	position: absolute;
	left: 5px;
	border-style: solid;
	border-width: 20px 15px 20px 0px;
	transform: rotate(0deg);
}
.btnGral .btnIcon span.s-oro{
	border-color: transparent #BB965C transparent transparent;
	transition: .5s all;
}
.btnGral .btnIcon span.s-verde{
	border-color: transparent #235B4E transparent transparent;
	transition: .5s all;
}
.btnGral .btnIcon span.s-guinda{
	border-color: transparent #9F1F41 transparent transparent;
	transition: .5s all;
}
.btnGral .btnIcon span.s-blanco{
	border-color: transparent #fff transparent transparent;
	transition: .5s all;
}
.btnGral .btnIcon span.s-gris{
	border-color: transparent #d2d1d1 transparent transparent;
	transition: .5s all;
}
/* NUEVO 20-02-24 */
.btnGral .btnIcon span.s-verde_b{
	border-color: transparent #159d15 transparent transparent;
	transition: .5s all;
}
.btnGral .btnIcon span.s-rojo{
	border-color: transparent #cc171e transparent transparent;
	transition: .5s all;
}
/* NUEVO 20-02-24 */
.btnGral:hover{
	transform: scale(.85);
	color: #681B33;
}
.btnGral:hover .btnIcon span{
	border-color: transparent #681B33 transparent transparent;
}
.btnGral:hover .boxIcon{
	background: #681B33 !important;
}

/*BTN REGRESAR*/
.btnReg{
	position: relative;
	background: #fff;
	border: 3px solid;
	border-radius: 10px;
	min-width: 150px;
	height: 42px;
	padding: 0;
	margin: 0 10px auto;
	transition: .8s all;
}
.btnReg p{
	width: calc(100% - 48px);
	float: right;
	line-height: 40px;
	font-size: 16px ;
	font-weight: 700;
	padding: 0 10px 0 5px;
}
.btnReg .btnIcon{
	position: relative;
	width: 48px;
	float: left;
	top: -1px;
	left: -1px;
}
.btnReg .btnIcon .boxIcon{
	position: relative;
	width: 30px;
	height: 40px;
	float: left;
	border-radius: 9px 0 0 9px;
	transition: .5s all;
}
.btnReg .btnIcon .boxIcon img {
	z-index: 10;
	position: absolute;
	transform: translate(-50%, -50%);
	width: 20px;
	left: 17px;
	top: 50%;
}
.btnReg .btnIcon span{
	position: absolute;
	left: 29px;
	border-style: solid;
	border-width: 20px 0px 20px 15px;
	transform: rotate(0deg);
}
.btnReg .btnIcon span.s-verde{
	border-color: transparent transparent transparent #235B4E;
	transition: .5s all;
}
.btnReg .btnIcon span.s-oro{
	border-color: transparent transparent transparent #BB965C;
	transition: .5s all;
}
.btnReg .btnIcon span.s-guinda{
	border-color: transparent transparent transparent #9F1F41;
	transition: .5s all;
}
/* NUEVO 20-02-24 */
.btnReg .btnIcon span.s-rojo{
	border-color: transparent transparent transparent #cc171e;
	transition: .5s all;
}
/* NUEVO 20-02-24 */
.btnReg:hover{
	transform: scale(.85);
	color: #681B33;
}
.btnReg:hover .btnIcon span{
	border-color: transparent transparent transparent  #681B33;
}
.btnReg:hover .boxIcon{
	background: #681B33 !important;
}

/* BTN SECUNDARIO */
.btnSec {
	height: 40px;
	background: #bb965c;
	color: #fff;
	padding: 5px 10px;
	font-size: 14px;
	font-weight: 600;
	border-radius: 10px;
	transition: all .5s;
	margin-top: 5px;
}
.btnSec.guinda {
	height: 40px;
	background: #9F1F41;
	color: #fff;
	padding: 5px 10px;
	font-size: 14px;
	font-weight: 600;
	border-radius: 10px;
	transition: all .5s;
	margin-top: 5px;
}
.btnSec.verde {
	height: 40px;
	background: #235B4E;
	color: #fff;
	padding: 5px 10px;
	font-size: 14px;
	font-weight: 600;
	border-radius: 10px;
	transition: all .5s;
	margin-top: 5px;
}
.btnSec img{
	width: 20px;
	margin-left: 2px;
	transition: .5s all;
}
.btnSec i{
	font-size: 15px;
	margin-left: 2px;
	transition: .5s all;
}
.btnSec:hover{
	background: #691c32;
}
.btnSec:hover:focus{
	transform: scale(.85);
}
.btnSec:hover img, .btnSec:hover i{
	margin-left: 7px;
}
.btnSec.desactivado{
    opacity: .5;
	cursor: not-allowed;
}
.btnSec.guinda.desactivado {
	opacity: .5;
	cursor: not-allowed;
}
.btnSec.verde.desactivado {
	opacity: .5;
	cursor: not-allowed;
}
.btnSec.desactivado:hover {
	background: #bb965c;
	transform: none;
}
.btnSec.guinda.desactivado:hover {
	background: #9F1F41;
	transform: none;
}
.btnSec.verde.desactivado:hover {
	background: #235B4E;
	transform: none;
}

/* BOTONES CARGA Y DESCARGA (Refactorizado con Flexbox) */
#btnCarga,
#btnDescarga,
.btnCarga2,
.btnDescarga2 {
    position: relative;
    z-index: 0;
    display: flex;
    width: 100%;
    min-width: auto;
    max-width: 450px;
    margin-top: 5px;
}

#btnCargaBorrar {
    display: none;
    width: 100px;
    float: left;
    padding-left: 15px;
}
/* Parte izquierda (Nombre del archivo) */
.docsLeft {
    position: relative;
    flex-grow: 1;
    min-width: 100px;
    height: 40px;
    background: white;
    color: #4d4d4d;
    border: 2px solid;
    border-right: none;
    border-radius: 10px 0 0 10px;
    padding: 8px 15px;
    font-size: 12px;
    font-weight: 500;
    margin-bottom: 15px;
}

/* Parte derecha (Botón "CARGAR") */
.docsRight {
    position: relative;
    flex-shrink: 0;
    width: 110px;
    height: 40px;
    color: white;
    text-align: center;
    border-radius: 0 10px 10px 0;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}

/* --- Estilos de borde y hover (sin cambios) --- */
#btnCarga .docsLeft {
    border: 2px solid #005046;
}
.btnCarga2 .docsLeft {
    border: 2px solid #005046;
}
#btnDescarga .docsLeft {
    border: 2px solid #BC955C;
}
.btnDescarga2 .docsLeft {
    border: 2px solid #BC955C;
}
#btnCarga .docsLeft.correcto {
    border: 2px solid #127c12;
}
.cargar {
    z-index: 1;
    overflow: hidden;
    display: inline-block;
    background: #005046;
    border: 2px solid #005046;
    transition: .5s background;
}
.cargado {
    z-index: 1;
    overflow: hidden;
    display: inline-block;
    background: #127c12;
    border: 2px solid #127c12;
    transition: .5s background;
}
.descargar {
    z-index: 1;
    overflow: hidden;
    display: inline-block;
    background: #BC955C;
    border: 2px solid #BC955C;
    transition: .5s background;
}
.cargar:hover,
.descargar:hover {
    border: 2px solid #96663D;
}
.cargar::after,
.descargar::after {
    content: "";
    background: #96663D; /* color de fondo hover */
    position: absolute;
    z-index: -1;
    padding: 16px 20px;
    display: block;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    transform: skewX(-45deg) scale(0, 1);
    transition: all 0.5s ease;
}
.cargar:hover::after,
.descargar:hover::after {
    transition: all 0.3s ease-out;
    transform: skewX(-45deg) scale(1.5, 1.5);
}
.cen {
    width: 95%;
    position: absolute;
    transform: translate(-50%, -50%);
    top: 50%;
    left: 50%;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
}
p.cen {
    font-weight: 600;
}
.docsRight .input-file {
    position: absolute;
    width: 110px;
    top: 5px;
    left: 0;
    height: 30px;
    cursor: pointer;
    opacity: 0;
    z-index: 5;
}
.img_docs {
    width: 14px;
    margin: 4px 0px;
}
.cargado .img_docs {
    width: 17px;
    margin: 0;
}


/*BTN VALIDAR*/
.btnVal {
	width: 150px;
	height: 35px;
	background: #bb965c;
	color: #fff;
	padding: 5px 10px;
	margin-top: 5px;
	font-size: 14px;
	font-weight: 600;
	border-radius: 10px;
	transition: all .5s;
}
.btnVal:hover{
	background: #691c32;
}
.btnVal:hover:focus{
	transform: scale(.85);
}
.gralCard{
    border-radius: 15px 15px 15px 15px;
	width: 100%;
    box-shadow: 0 0 5px black;
}

.cardHead {
    z-index: 2;
    padding: 10px;
    text-align: center;
    font-size: 14px;
    font-weight: 700;
    color: #fff;
	border-radius: 15px 15px 0px 0px;
}
.cardHead i, .cardHead img{
    margin-right: 5px;
}
.cardBody{
    background: #fff;
    padding: 20px;
    border-radius: 0px 0px 15px 15px;
}
.r-down{
    border-radius: 0 0 10px 10px;
}
.box-form{
    min-height: 40px;
    width: 100%;
    padding: 4px 10px;
    border: 2px solid #BB965C;
    border-radius: 8px;
}
.box-form label{
    display: block;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.2;
    color: #BB965C;
}
.box-form p{
    font-size: 13px;
    font-weight: 600;
    line-height: 1.1;
    margin-top: 0px;
    color: #4d4d4d;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    word-wrap: break-word;
}
.subenun{
	position: relative;
	margin-top: 15px;
	margin-bottom: 20px;
	padding: 0;
}
.subenun p{
	border-bottom: 2px solid #BB965C;
	/*border-color: #BB965C;
	line-height: 1.2;*/
}
.subenun span{
	display: block;
	position: absolute;
	bottom: -5px;
	left: 0;
	width: 20px;
	height: 6px;
	background: #BB965C;
}
.cardBody.row{
	margin-left: 0;
	margin-right: 0;
}


.btnAct{
	position: relative;
	overflow: hidden;
	width: 70px;
	height: 38px;
	line-height: 40px;
	border-radius: 8px;
	color: #fff;
	font-weight: 600;
	transition: .8s background;
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
}
.btnAct:hover, .btnAct:focus{
	cursor: pointer;
	background: #6F1228;
}
.btnAct i{
	font-size: 20px;
	padding: 5px;
}
.btnAct:hover i, .btnAct:hover img{
	opacity: 0;
}
.btnAct:hover:before{
	opacity: 1;
	-webkit-transform: translate(0,0);
	transform: translate(0,0);
}
.btnAct:before{
	content: attr(data-hover);
	position: absolute;
	top: 0; 
	left: 0;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 30px;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-weight: 700;
	font-size: 12px;
	opacity: 0;
	-webkit-transform: translate(-100%,0);
	transform: translate(-100%,0);
	-webkit-transition: all .3s ease-in-out;
	transition: all .5s ease-in-out;
	text-align: center;
}

/*MODAL*/
.modal-contenido{
	translate: (50% - 50%);
	background: #fff !important;
	border-radius: 20px !important;
	padding: 0 !important;
	margin-top: 10% !important;
	position: fixed;
	z-index: 10000; 
}
.modal-header {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1rem;
    border-bottom: 1px solid #dee2e6;
    border-top-left-radius: calc(.3rem - 1px);
    border-top-right-radius: calc(.3rem - 1px);
	border-radius: 20px 20px 0px 0px !important;
}

.modal-header {
	border-radius: 20px 20px 0px 0px !important;
}
.modal-header{
	text-align: center;
}
.modal-header h5 {
    width: 100%;
    font-size: 15px;
    font-weight: 700;
    color: #fff;
    text-align: center;
}

.modal-content {
    border-radius: 20px !important;
	position: relative;
	display: flex;
	flex-direction: column;
	width: 100%;
	pointer-events: auto;
	background-color: #fff;
	background-clip: padding-box;
	border: 1px solid rgba(0,0,0,.2);
	border-radius: .3rem;
	outline: 0;
}
.modal-body{
	background: #fff;
	margin: 0;
	padding: 15px;
	border-radius: 0px 0px 20px 20px;
}

.footer-modal{
	border-top: 2px solid #ccc9c9;
	padding: 20px;
	border-radius: 0px 0px 20px 20px;
}

.modalcontenido{
	background: transparent !important;
}
button.btn-close {
    background: none !important; 
    border: none !important; 
    padding: 0 !important; 
    appearance: none !important; 
}

button.btn-close::before {
    content: none !important; 
}
.modal-content .btn-close {
	width: 25px;
	height: 25px;
	padding: 10px;
	background: transparent;
	opacity: .60;
	transition: .3s all;
  }




.btnCarga{
	position: relative;
	margin: auto;
	width: 100px;
	height: 100px;
	border-radius: 30px;
	padding: 20px;
	background: #BB965C;
}
.btnCarga .input-file {
	position: absolute;
	width: 100px;
	height: 100px;
	top: 0;
	left: 0;
	cursor: pointer;
	opacity: 0;
	z-index: 5;
}
#btnCarga, #btnDescarga{
	position: relative;
	z-index: 0;
	width: calc(100% - 100px);
	max-width: 450px;
	min-width: 220px;
	margin-top: 5px;
	float: left;
}
#btnCargaBorrar{
	display: none;
	width: 100px;
	float: left;
	padding-left: 15px;
}
.docsLeft {
	position: relative;
	width: calc(100% - 110px);
	min-width: 110px;
	height: 40px;
	float: left;
	background: white;
	color: #4d4d4d;
	border: 2px solid;
	border-right: none;
	border-radius: 10px 0 0 10px;
	padding: 8px 15px;
	font-size: 12px;
	font-weight: 500;
	margin-bottom: 15px;
}
#btnCarga .docsLeft {
	border: 2px solid #005046;
}
#btnDescarga .docsLeft {
	border: 2px solid #BC955C;
}
#btnCarga .docsLeft.correcto {
	border: 2px solid #127c12;
}
.docsRight{
	position: relative;
	width: 110px;
	height: 40px;
	float: left;
	color: white;
	text-align: center;
	border-radius: 0 10px 10px 0;
	font-size: 12px;
	font-weight: 700;
	cursor: pointer;
}
.cargar {
	z-index: 1;
	overflow: hidden;
	display: inline-block;
	background: #005046;
	border: 2px solid #005046;
	transition: .5s background;
}
.cargado {
	z-index: 1;
	overflow: hidden;
	display: inline-block;
	background: #127c12;
	border: 2px solid #127c12;
	transition: .5s background;
}
.descargar {
	z-index: 1;
	overflow: hidden;
	display: inline-block;
	background: #BC955C;
	border: 2px solid #BC955C;
	transition: .5s background;
}
.cargar:hover, .descargar:hover{
	border: 2px solid #96663D;
} 
.cargar::after, .descargar::after {
	content: "";
	background: #96663D; /* color de fondo hover */
	position: absolute;
	z-index: -1;
	padding: 16px 20px;
	display: block;
	left: 0;
	right: 0;
	top: 0;
	bottom: 0;
	transform: skewX(-45deg) scale(0, 1);
	transition: all 0.5s ease;
}
.cargar:hover::after, .descargar:hover::after{
	transition: all 0.3s ease-out;
	transform: skewX(-45deg) scale(1.5, 1.5);
}
.cen {
	width: 95%;
	position: absolute;
	transform: translate(-50%, -50%);
	top: 50%;
	left: 50%;
	white-space: nowrap;
	text-overflow: ellipsis;
	overflow: hidden;
}
p.cen{
	font-weight: 600;
}
.docsRight .input-file {
	position: absolute;
	width: 110px;
	top: 5px;
	left: 0;
	height: 30px;
	cursor: pointer;
	opacity: 0;
	z-index: 5;
}
.img_docs {
	width: 14px;
	margin: 4px 0px;
}
.cargado .img_docs {
	width: 17px;
	margin: 0;
}

/*MENÚ IMSS-BIENESTAR*/
.main-layout-wrapper {
	display: flex;
	position: relative;
}
.contenedor {
	flex-grow: 1;
	min-width: 0;
	height: calc(100vh - 58px);
	background: #F2F2F2;
	-ms-overflow-style: none;
}
#menuIzq {
    display: block;
    position: relative;
    width: 260px;
    height: calc(100vh - 58px);
    flex-shrink: 0;
    background: #fff;
    box-shadow: 0 0 5px black;
    z-index: 31;
    transition: width 0.35s ease;
}
#contRight {
    flex-grow: 1;
    height: calc(100vh - 58px);
    overflow-y: auto;
    overflow-x: hidden;
	padding: 30px;
	background: #F2F2F2;
	-ms-overflow-style: none;
    /* transition: width 0.35s ease; */
	min-width: 0;
}
.btnCollapseMovil {
	display: none;
}
.menu-backdrop {
	display: none;
}
a.mList {
    display: flex;
    align-items: center;
    width: 100%;
    padding: 12px 20px;
    text-decoration: none;
    color: #333;
    transition: background-color 0.2s;
}
a.mList:hover {
    background-color: #f4f4f4;
}
a.mList .iPr {
    margin-right: 20px !important;
    width: 30px;
    text-align: center;
}
body.menu-collapsed #menuIzq {
    width: 70px;
}
#menuIzq.collapsed .mList span,
#menuIzq.collapsed .datDer,
#menuIzq.collapsed .img-logo,
#menuIzq.collapsed .bodyMenu>p {
    display: none;
}
#menuIzq.collapsed .mList {
    padding: 12px 0;
}
#menuIzq.collapsed .mList .iPr {
    margin-left: 20px;
    font-size: 20px;
}
#menuIzq.collapsed .logoSeccion {
    justify-content: center;
    padding: 10px 0;
}
#menuIzq.collapsed .usuario .datDer {
    display: none;
}
#menuIzq.collapsed .usuario {
    display: flex;
    justify-content: center;
    padding: 15px 0;
}
#menuIzq.collapsed .usuario .imgIzq {
    width: 44px;
    height: 44px;
    background-color: #f0f0f0;
    border: 1px solid #e0e0e0;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
}
#menuIzq.collapsed .usuario .imgIzq img {
    width: 23px !important;
    height: 23px !important;
    opacity: 1;
}
#menuIzq.collapsed .footMenu .btnClose {
    width: 100%;
    border-radius: 0;
}
#menuIzq.collapsed .footMenu .btnClose::before {
    display: none;
}
#menuIzq.collapsed #menuGral li.current-item a.mList {
    padding-left: 0;
}
.custom-tooltip-menu {
    --bs-tooltip-bg: #343a40;
    --bs-tooltip-color: #fff;
    --bs-tooltip-opacity: 1;
    --bs-tooltip-arrow-width: .8rem;
    --bs-tooltip-arrow-height: .4rem;
}
#menuGral li.current-item {
    border-left: 4px solid #BB965C;
}
#menuGral li.current-item a.mList {
    background-color: #e9ecef;
    font-weight: 600;
    color: #681c32;
    padding-left: 16px;
}
a.mList .iPr {
    flex-shrink: 0;
    margin-right: 20px !important;
    width: 30px;
    text-align: center;
}
a.mList span {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
#templateGral{
	width: 100%;
	padding: 15px 50px;
}
.logoSeccion{
	position: relative;
	text-align: center;
	padding: 7px 0;
	height: 90px;
}
.img-logo{
	height: 100%;
}
.usuario{
	padding: 10px 20px;
	color: #4d4d4d;
	border-bottom: 1px solid #00000050;
}
.imgIzq{
	width: 60px;
	height: 60px;
	padding: 0;
	float: left;
	border-radius: 10px;
	background: #F4F4F4;
	border: 2px solid #BC955C;
}
.imgIzq img{
	object-fit: cover;
	height: 100%;
	width: 100%;
}
.datDer{
	width: calc(100% - 60px);
	float: left;
	padding-top: 10px;
	padding-left: 12px;
	line-height: 1;
}
.datDer p{
	font-size: 12px;
	font-weight: 700;
}
.datDer label{
	font-size: 11px;
	font-weight: 600;
}
.bodyMenu{
	height: calc(100vh - 285px);
	overflow-y: auto;
}
.bodyMenu::-webkit-scrollbar, #contRight::-webkit-scrollbar {
	width: 12px;
}
.bodyMenu::-webkit-scrollbar-thumb, #contRight::-webkit-scrollbar-thumb {
	background-color: #666666;
	border-radius: 20px;
	border: 3px solid #F2F2F2;
}
.bodyMenu p{
	padding: 10px;
	font-size: 12px;
	font-weight: 700;
	color: #BB965C;
}
.footMenu{
	position: absolute;
	bottom: 0;
	width: 100%;
	height: 35px;
	text-align: center;
	border-top: 1px solid #00000050;
}
.btnClose{
	position: relative;
	overflow: hidden;
	width: 100%;
	height: 35px;
	line-height: 35px;
	background: #9f1f41;
	color: #fff;
	font-weight: 600;
	transition: .8s background;
}
.btnClose:focus{
	cursor: pointer;
	background: #6F1228;
}
.btnClose i{
	font-size: 20px;
}
.btnClose:hover i, .btnClose:hover img{
	opacity: 0;
}
.btnClose:hover:before{
	opacity: 1;
	-webkit-transform: translate(0,0);
	transform: translate(0,0);
}
.btnClose:before{
	content: attr(data-hover);
	position: absolute;
	top: 0; 
	left: 0;
	width: 100%;
	line-height: 35px;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-weight: 700;
	font-size: 12px;
	opacity: 0;
	-webkit-transform: translate(-100%,0);
	transform: translate(-100%,0);
	-webkit-transition: all .3s ease-in-out;
	transition: all .5s ease-in-out;
}
.boxA ul li{
	height: 45px;
}
.boxA ul li.active{
	background: #ddc9a582;
}
.boxA ul li a {
	display: inline-block;
	width: 100%;
	text-decoration: none;
	position: relative;
	padding: 8px 10px 8px 10px;
	border-bottom: 1px solid #bc955c20;
	transition: all .5s ease-out;
}
.boxA ul li a:hover {
	background: #bc955c;
}
.iPr {
	width: 30px;
	height: 30px;
	float: left;
	font-size: 15px;
	padding: 5px;
	border-radius: 10px;
	background: #f4f4f4;
	transition: .5s all;
}
.boxA ul{
	padding-left: 0;
}
.boxA ul li{
	list-style-type: none;
}
.boxA ul li a span {
	display: block;
	position: absolute;
	transform: translateY(-50%);
	left: 40px;
	top: 50%;
	width: calc(100% - 40px);
	float: left;
	color: #4d4d4d;
	font-size: 12px;
	line-height: 1.2;
	font-weight: 700;
	padding-left: 5px;
	transition: all .3s;
}
.boxA ul li a:hover span {
	color: #fff;
	font-weight: 700;
}
.boxA a:hover .iPr {
	padding: 3px;
}
.boxA ul li.disabled a:hover {
	background: unset;
}
.boxA ul li.disabled a span{color: #d2d1d1;}
.boxA ul li.disabled a:hover span {
	color: #d2d1d1;
}
.boxA ul li.disabled a:hover .iPr {
	padding: 5px;
}
.btnCollapse{
	width: 40px;
	height: 40px;
	border-radius: 30px 0 0 30px;
	position: absolute;
	transform: translateY(-50%);
	top: 50%;
	right: 0;
	font-size: 22px;
	padding-right: 0px;
	color: #fff;
	background: #BB965C;
	transition: all .5s ease-in-out;
}
.btnCollapse:hover{
	width: 50px;
	background: #681c32;
	padding-right: 15px;
}
.btnCollapseMovil{
	display: none;
	width: 40px;
	height: 40px;
	border-radius: 0 30px 30px 0;
	position: absolute;
	transform: translateY(-50%);
	top: 30px;
	left: 0;
	font-size: 22px;
	padding-right: 0px;
	color: #fff;
	background: #BB965C;
	transition: all .5s ease-in-out;
	z-index: 100;
}
.btnCollapseMovil, .btnCollapse{
	padding: 5px;
}
.btnCollapseMovil:hover, .btnCollapse:hover{
	width: 50px;
	background: #681c32;
	padding: 5px;
}

a.nav-link.registro .p-registro{
	line-height: 1;
    font-size: 18px;
    color: #005046;
}
a.nav-link.registro.active .p-registro, a.nav-link.sesion.active .p-sesion, a.nav-link.sesion.active .label-sesion{
    color: #fff;
}

a.nav-link.sesion .label-sesion{
	font-size: 13px;
    line-height: 1;
    font-weight: 700;
    color: #000000;
}
a.nav-link.sesion .p-sesion{
	line-height: 1;
    font-size: 18px;
    color: #9f1f41;
}
.bor-down{
	border-bottom:5px solid #235b4e;
}
.boxA ul li.active {
    background: #c69658;
}
.boxA ul li.active a {
    color: white;
}
.boxA ul li.active a span {
    color: white;
}
.boxA ul li.active a .iPr {
    background: #f4f4f4;
}
.limit-gral{
	padding: 30px 50px;
}
.titEnun{
	font-size: 14px;
	font-weight: 600;
	color: #4d4d4d;
	border-bottom: 2px solid #ba955c;
	margin-bottom: 10px;
}

.dataTables_wrapper label{
	padding-top: 15px!important;

}
#tabla_lenght{
	margin: 10px !important;
}
.dataTables_wrapper .dataTables_filter {
    float: right;
    text-align: right;
    padding: 10px !important;

}
.dataTables_wrapper .dataTables_length, .dataTables_wrapper .dataTables_filter, .dataTables_wrapper .dataTables_info, .dataTables_wrapper .dataTables_processing, .dataTables_wrapper .dataTables_paginate {
    color: inherit;
    padding: 10px;
}
.form-check-input:checked {
    background-color: #235B4E !important;
    border-color: #235B4E !important;
}

/*Recuperar contraseña*/
.card{
	border-radius: 20px !important;
}
.card-header{
	background: #335b50 !important;
	border-radius: 20px 20px 0px 0px !important;
	border-bottom: 7px solid #b49664 !important;
	color: #fff !important;
}
h5 .tit-recup{
	font-weight: 800 !important;
	color: #d9c9a8 !important;
}
.recup-input{
	border: 2px solid #bb965c !important;
	border-radius: 20px !important;
	background: #f5f5f5 !important;
}
.titRecup{
	display: block;
	font-size: 13px !important;
	font-weight: 700 !important;
	line-height: 1;
	padding-left: 15px !important;
	color: #235c50;
}

/**/
.content-main{
	max-width: 1170px;
	margin: auto;
	width: 80%;
}

.table>:not(:first-child) {
    border-top: 2px solid currentColor;
    font-size: 12px;
	font-weight: 400;
}

.head-secundario-table{
	text-align: center;
	color: #9f2241;
	font-weight: 700;
	border-bottom: 4px solid #9f2241;
}
.areasDestino .form-check-input {
    width: 40px !important;
    height: 40px !important;
    border-radius: 50% !important;
    margin-top: 0px !important;
    margin-left: 0px !important;
    background-color: #fff !important;
    border: 2px solid #d2d1d1 !important;
    box-shadow: none !important;

    transition: .5s all !important;
}
.areasDestino .form-check-input:checked {
    background-color: #fff !important; 
    background-image: radial-gradient(
        circle,
        #235B4E 45%,
        transparent 46%
    ) !important;
    border-color: #235B4E !important;
}
.areasDestino .form-check-label {
    font-size: 20px;
    font-weight: 700;
	color: #4d4d4d;
	margin-left: 10px;
	margin-top: 5px;
	cursor: pointer;
}

.check-w {
width: 230px;
	/*margin: auto;*/
}
.note{
	background: #235B4E;
	color: #fff;
	text-align: center;
	padding: 15px;
	border-radius: 20px;
	width:100%
}
.border_guinda{
	border-bottom: 3px solid #9F2241;
}

/* Nomenclatura */
.nomenclatura-container {
    background-color: #013e38;
    border-radius: 20px;
    padding: 20px;
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: 15px;
    width: 90%;
    max-width: 900px;
    box-sizing: border-box;
}

.nomenclatura-group {
    display: flex;
    flex-direction: column; 
    align-items: center;
    gap: 10px;
    flex-grow: 1;
    flex-basis: 0;
    min-width: 120px;
}

.item-box {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 12px 25px;
    border-radius: 30px;
    font-size: 24px;
    font-weight: bold;
    text-align: center;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    white-space: nowrap;
    width: 100%;
}
.item-box.verde {
    background-color: #1e5b4f;
    color: #fff;
}
.item-box.beige {
    background-color: #f8f1e6;
    color: #bb965c;
}
.item-box.blanco {
    background-color: #fff;
    color: #8c2a3f;
}
.label-text {
    color: #f8f1e6;
    font-size: 16px;
    text-align: center;
    width: 100%;
}

@media (max-width: 1200px) {
	html { font-size: 15px; }
	.content-main, #templateGral, .limit-gral { width: 95% !important; padding: 10px !important; }
	.table-containrer { width: 98% !important; }
}

@media (max-width: 992px) {
	html { font-size: 14px; }
	.header, .plecaVerde, .main, .card, .box-login, .cont-logo { padding: 10px !important; }
	.table-containrer, .content-main, #templateGral, .limit-gral { width: 100% !important; padding: 5px !important; }
	.row, .cardBody.row { margin-left: 0 !important; margin-right: 0 !important; }
	.alignBtn { grid-template-columns: 1fr !important; }
	.btnGral, .btnReg, .btnSec, .btnSecGuinda { min-width: 120px !important; font-size: 13px !important; }
	.btnCollapse { display: none; }
	.btnCollapseMovil { display: block; position: fixed; top: 78px; left: 0px; z-index: 1030; border-radius: 8px; width: 45px; height: 45px; padding: 0; border-radius: 0 30px 30px 0; }
	.menu-backdrop { display: block; position: fixed; top: 0; left: 0; width: 100%; height: 100vh; background: rgba(0, 0, 0, 0.5); z-index: 1040; opacity: 0; pointer-events: none; transition: opacity 0.3s ease-in-out; }
	#menuIzq { display: block !important; position: fixed; top: 0; left: 0; width: 280px; max-width: 80%; height: 100vh; z-index: 1050; float: none; transform: translateX(-100%); transition: transform 0.3s ease-in-out, width 0s; }
	.bodyMenu { height: calc(100vh - 207px); overflow-y: auto; }
	body.menu-movil-abierto #menuIzq { transform: translateX(0); }
	body.menu-movil-abierto .menu-backdrop { opacity: 1; pointer-events: auto; }
}

@media (max-width: 768px) {
	html { font-size: 13px; }
	.login { width: 95%; padding: 15px; margin-top: 20px; margin-bottom: 40px; }
	.login-logimb { padding-top: 40px;padding-bottom: 20px;display: flex;justify-content: center; align-items: center; }
	.login-logimb img { max-width: 250px;width: 80%;height: auto; }
	.box-login { border-radius: 0 !important; border-left: none !important; height: auto !important; min-height: auto !important;  padding: 10px 5px !important; }
	.fondo-login { height: auto; min-height: 100vh; }
	.title-login, .leyendainicia{ font-size: 16px; }
	.txtpass{ font-size: 14px; }
	.header, .plecaVerde, .main, .card, .box-login, .cont-logo { padding: 5px !important; }
	.table-containrer, .content-main, #templateGral, .limit-gral { width: 100% !important; padding: 2px !important; }
	.row, .cardBody.row { margin-left: 0 !important; margin-right: 0 !important; }
	.alignBtn { grid-template-columns: 1fr !important; }
	.btnGral, .btnReg, .btnSec, .btnSecGuinda { min-width: 100px !important; font-size: 12px !important; }
	.preview-modal { max-width: 98vw !important; height: 95vh !important; }
	.checkbox-grid-container { grid-template-columns: 1fr !important; padding: 10px !important; }
	.nomenclatura-container { flex-direction: column; gap: 15px; padding: 15px; }
    .nomenclatura-group { width: 100%; min-width: unset; }
    .item-box { font-size: 20px; padding: 10px 15px; width: 100%;  max-width: 400px; }
    .label-text { font-size: 14px; }
}

@media (max-width: 576px) {
	html { font-size: 12px; }
	.header, .plecaVerde, .main, .card, .box-login, .cont-logo { padding: 2px !important; }
	.table-containrer, .content-main, #templateGral, .limit-gral { width: 100% !important; padding: 0 !important; }
	.row, .cardBody.row { margin-left: 0 !important; margin-right: 0 !important; }
	.alignBtn { grid-template-columns: 1fr !important; }
	.btnGral, .btnReg, .btnSec, .btnSecGuinda { min-width: 90px !important; font-size: 11px !important; }
	.preview-modal { max-width: 100vw !important; height: 100vh !important; border-radius: 0 !important; }
	.checkbox-grid-container { grid-template-columns: 1fr !important; padding: 5px !important; }
	.modal-contenido, .modal-content { margin-top: 5% !important; border-radius: 10px !important; }
	.plecaVerde { flex-direction: column !important; height: auto !important; }
}

@media (max-width: 400px) {
	html { font-size: 11px; }
	.btnGral, .btnReg, .btnSec, .btnSecGuinda { min-width: 70px !important; font-size: 10px !important; }
	.preview-modal { padding: 0 !important; }
	.item-box { font-size: 18px; padding: 8px 10px; }
	.label-text { font-size: 12px; }
}

.preview-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(16, 49, 43, 0.8);
    z-index: 1040;
}
.preview-modal {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 90%;
    max-width: 1000px;
    height: 90vh;
    background-color: #fff;
    border-radius: 15px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.3);
    z-index: 1050;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    animation: slideDown 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.preview-header {
    display: flex;
    align-items: center;
    padding: 12px 20px;
    background-color: #235B4E;
    color: #fff;
    flex-shrink: 0;
}
.preview-title {
    flex-grow: 1;
    text-align: center;
    font-size: 1.1rem;
    font-weight: 700;
}
.preview-close-btn {
    background: transparent;
    border: none;
    padding: 5px;
    opacity: 0.8;
    transition: all 0.2s ease;
}
.preview-close-btn:hover {
    opacity: 1;
    transform: scale(1.1);
}
.preview-body {
    padding: 20px;
    flex-grow: 1;
    overflow-y: auto;
    background-color: #f0f2f5;
}
.preview-iframe {
    width: 100%;
    height: 100%;
    border: 1px solid #d2d1d1;
    border-radius: 8px;
}

.link-tabla {
	font-size: 1.1em;
	color: #235B4E;
	font-weight: 700;
	text-decoration: none;
	transition: color 0.2s, text-decoration 0.2s;
	padding: 2px 6px;
	border-radius: 6px;
	display: inline-block;
}
.link-tabla:hover,
.link-tabla:focus {
	color: #9F1F41;
	text-decoration: underline;
	outline: none;
}

/* --- NUEVO COMPONENTE: BADGE DE ESTADO --- */
.status-badge {
    display: inline-block;
    padding: 6px 12px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    text-align: center;
    white-space: nowrap;
    vertical-align: baseline;
    border-radius: 20px; /* Forma de píldora */
    color: #fff;
}

/* Modificadores de color usando TUS clases existentes */
.badge-vencido {
    background-color: #cc171e;
}
.badge-por-vencer {
    background-color: #BB965C;
}
.badge-vigente {
    background-color: #159d15;
}
.badge-conocimiento {
    background-color: #666666;
    color: #fff;
}
.badge-invalido {
    background-color: #d2d1d1;
    color: #191919;
}

.nav-tabs-custom {
    border-bottom: 3px solid #DDC9A5;
    display: flex;
    gap: 8px;
	flex-wrap: nowrap;
}
.nav-tabs-custom::-webkit-scrollbar {
    display: none;
}
.nav-item-custom {
    list-style: none;
    flex-grow: 1;
    text-align: center;
	flex-basis: 0;
}
.nav-link-custom {
    border: 2px solid transparent;
    border-bottom: none;
    background-color: #f2f2f2;
    color: #4d4d4d;
    padding: 12px 24px;
    font-size: 15px;
    font-weight: 700;
    border-radius: 10px 10px 0 0;
    cursor: pointer;
    transition: all 0.3s ease-in-out;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
}
.nav-link-custom:hover {
    background-color: #e9ecef;
    color: #10312B;
}
.nav-link-custom.active {
    background-color: #fff;
    color: #235B4E;
    border-color: #DDC9A5 #DDC9A5 transparent #DDC9A5;
    position: relative;
    top: 3px;
}
.tab-content {
    padding: 25px 10px;
}

.checkbox-grid-container {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 15px;
    padding: 20px;
    background-color: #F8F9FA;
    border-radius: 8px;
    border: 2px solid #e9ecef;
}
.checkbox-grid-container .form-check-label {
    cursor: pointer;
    font-weight: 500;
}
.checkbox-grid-container .select-all-switch {
    grid-column: 1 / -1;
    margin-bottom: 10px;
    padding-bottom: 15px;
    border-bottom: 2px dashed #d2d1d1;
}
.action-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 20px;
}
.input-group-custom {
    display: flex;
    flex-direction: column;
    gap: 5px;
    flex: 1 1 250px;
}
.action-row .btnGral {
    flex-shrink: 0;
}

#modalCancelar {
    z-index: 1060;
}

/* Estilos tabla expandible (Turnados) */

td.details-control {
    cursor: pointer;
    width: 30px;
    text-align: center;
}

td.details-control::before {
    content: '\f055'; /* fa-plus-circle */
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    color: #28a745;
}

tr.shown td.details-control::before {
    content: '\f056'; /* fa-minus-circle */
    color: #dc3545;
}
/* LockScreen */
/*ESTILOS GENERALES*/
html{
	box-sizing: border-box;
}
*, *:before, *:after{
	box-sizing: inherit;
}
#toppage.gmx{
	height: 59px;
}
body{
	font-family: "Montserrat" !important;
	color: #191919 !important;

}
body::-webkit-scrollbar {
	scrollbar-width: none;
}
a, a:hover{
	text-decoration: none !important;
}
p {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}
button {
	outline: none;
	border: 0;
	cursor: pointer;
}
main{
	position: relative !important;
	/* margin-top: -7px; */
}
.row{
	margin-right: 0 !important;
	margin-left: 0 !important;
}
.t-c{
	text-align: center;
}
.t-r{
	text-align: right;
}
.t-l{
	text-align: left;
}
.t-j{
	text-align: justify;
}
.form-control:focus{
	box-shadow: none;
}
.ma{
	margin: auto;
}
.ma-g{
	margin-bottom: 10px !important;
}
.ma-b2{
	margin-bottom: 20px !important;
}
.ma-b3{
	margin-bottom: 30px !important;
}
.ma-t{
	margin-top: 10px !important;
}
.ma-t2{
	margin-top: 20px !important;
}
.ma-t3{
	margin-top: 30px !important;
}
.cnt{
	position: absolute;
	transform: translate(-50%, -50%);
	top: 50%;
	left: 50%;
}
.pr{
	position: relative;
}
.sp{
	padding-left: 0;
	padding-right: 0;
}
.pa-10{
	padding: 10px;
}
.ocultar {
	display: none !important;
}
.mostrar {
	display: block !important;
}

/*COLORES BACK*/
.verde{
	background: #235B4E;
}
.verde_o{
	background: #10312B;
}
.oro{
	background: #BB965C;
}
.oro_c{
	background: #DDC9A5;
}
.guinda{
	background: #9F1F41;
}
.vino{
	background: #681B33;
}
.verde_b{
	background: #159d15;
}
.rojo{
	background: #cc171e;
}
.gris_c{
	background: #d2d1d1;
}
.blanco{
	background: #fff;
}

/*COLORES TEXT*/

.verde_t{
	color: #235B4E;
}
.verde_o_t{
	color: #10312B;
}
.oro_t{
	color: #BB965C;
}
.oro_c_t{
	color: #DDC9A5;
}
.guinda_t{
	color: #9F1F41;
}
.vino_t{
	color: #681B33;
}
.verde_b_t{
	color: #159d15;
}
.rojo_t{
	color: #cc171e;
}
.blanco_t{
	color: #fff;
}
.gris_c_t{
	color: #d2d1d1;
}

.fw-7{
    font-weight: 700;
}

.header {
    display: block;
    margin: 0px;
    padding: 0px;
    background-color: #fff;
    font-family: 'Montserrat';
    font-size: 18px;
    line-height: 1.428571429;
    color: #404041;
    font-weight: 300;
    word-wrap: break-word;
    position: relative;
    top: -4px;
    z-index: 1000;
}

.header .navbar{
    padding-top: 0px;
    padding-bottom: 0px;
}
.bg-sisac {
    background:#235B4E;
}
.header-logo{
    background-size: cover;
    background-repeat: no-repeat;
    width: 150px;
    height: auto;
}
.header-dashboard{
    background-size: cover;
    background-repeat: no-repeat;
    width: 250px;
    height: auto;
}

.prinLogo{
    width: 250px;
}

.navbar-head{
    border-radius: 100px;
}
.icon-head{
    width: 25px;
}
.text-head{
    font-size: 16px;
    font-weight: 500;
}

/*inicio de pleca verde*/
.plecaVerde {
    width: 100%;
    padding: 10px;
    align-content: center;
    border-radius: 50px;
    color: #fff;
    font-weight: 800;
    font-size: 20px;
    display: flex;
    align-items: center; 
	margin: 20px;
	height: 66px;
}

.plecaVerde .btn {
    margin: 0 5px; 
}

.plecaVerde .btnSec, .plecaVerde .btnSecGuinda {
    margin: 0 5px; 
}

.btn:hover, .btnSec:hover, .btnSecGuinda:hover {
    color: #fff;
}
.plecaVerde a {
    color: inherit;
    text-decoration: none; 
}
.plecaVerde a:hover {
    color: inherit; 
    text-decoration: none; 
}

/*fin de pleca verde*/

/*LINEAS*/
.l-div{
	position: relative;
	height: 5px;
	width: 100%;
}
.l-div-bis{
	position: relative;
	height: 10px;
	width: 100%;
}
.borde-izq{
	width: calc(50% - 5px);
	height: 5px;
	float: left;
	position: relative;
}
.borde-izq .diagonal{
    position: absolute;
	width: 5px;
	height: 5px;
    bottom: 0;
    right: -5px;
    border-bottom: 5px solid;
    border-right: 5px solid transparent;
}
.borde-der{
	width: calc(50% - -5px);
	height: 5px;
	float: right;
}
.l-div-bis .borde-izq, .l-div-bis .borde-der {
	height: 10px;
}
.l-div-bis .borde-izq .diagonal{
	width: 10px;
	height: 10px;
    right:  -10px;
    border-bottom: 10px solid;
    border-right: 10px solid transparent;
}
.oro{
	background: #BC955C;
}
.oro_c{
	background: #DDC9A5;
}
/*fin lineas*/
/* BTN SECUNDARIO */
.btnSec {
    height: 35px;
    background: #bb965c;
    color: #fff;
    padding: 5px 8px;
    font-size: 11px;
    font-weight: 600;
	line-height: 23px;
    border-radius: 8px;
    transition: all .5s;
}
a.btnSec{
	display: inline-flex;
	text-align: center;
	color: #fff;
	padding: 10px;
	cursor: pointer;
}
.btnSec img{
	width: 17px;
	margin-left: 2px;
	transition: .5s all;
}
.btnSec i{
	font-size: 13px;
	margin-left: 2px;
	transition: .5s all;
}
.btnSec:hover{
	background: #691c32;
}
.btnSec:hover:focus{
	transform: scale(.85);
}
.btnSec:hover img, .btnSec:hover i{
	margin-left: 7px;
}
.btnSec img{
	width: 20px;
	margin-left: 2px;
	transition: .5s all;
}
.btnSec i{
	font-size: 15px;
	margin-left: 2px;
	transition: .5s all;
}
.btnSec:hover{
	background: #691c32;
}
.btnSec:hover:focus{
	transform: scale(.85);
}
.btnSec:hover img, .btnSec:hover i{
	margin-left: 7px;
}

.fondo-login{
    background-image: url(../img/bg-login.png);
    background-size: cover;
    background-repeat: no-repeat;
    width: 100%;
	height: 100vh; 
    margin: 0; 
	
}
.cont-logo{
    background-color: #eeeeec;
    border-radius: 20px 0px 0px 20px;
    text-align: center;
    padding: 30px;
}
.box-login{
    background: #eeeeec;
    border-radius: 40px 0px 0px 40px;
    border-left: 5px solid #bb965c;
    min-height: 600px;
	height: 100vh;
    margin: 0; 
}
.login{
    width: 60%;
    margin: auto;
    padding: 20px;
	align-self: center;
	margin-top: 50px;
}
.login-logimb img{
    width: 350px;
    text-align: center;
    align-content: center;
}
.login-logimb{
    text-align: center;
    align-content: center;
}
.form-sesion {
    text-align: left;
    margin-bottom: 10px;
}
.tit-input {
    font-size: 13px;
    font-weight: 700;
    text-align: left;
    color: #005046;
    padding-left: 18px;
}
.input-icon {
    height: 42px;
    background: #fff;
    border: 2px solid #BB965C;
    border-radius: 30px;
}
.icon-l{
    width: 40px;
    height: 40px;
    float: left;
    padding: 10px;
}
/* BTN SECUNDARIO */
.btnSecGuinda {
	height: 40px;
	background: #9f2241;
	color: #fff;
	padding: 5px 10px;
	font-size: 14px;
	font-weight: 600;
	border-radius: 10px;
	transition: all .5s;
	margin-top: 5px;
}
.btnSecGuinda img{
	width: 20px;
	margin-left: 2px;
	transition: .5s all;
}
.btnSecGuinda i{
	font-size: 15px;
	margin-left: 2px;
	transition: .5s all;
}
.btnSecGuinda:hover{
	background: #691c32;
}

.btnSecGuinda:hover:focus{
	transform: scale(.85);
}
.btnSecGuinda:hover img, .btnSec:hover i{
	margin-left: 7px;
}

/*FORMULARIO BASE*/
.secTit{
	font-weight: 700;
	font-size: 14px;
	margin-bottom: 2px;
	margin-top: 5px;
	color: #4D4D4D;
}
label.titForm{
	display: block;
	font-size: 13px !important;
	font-weight: 700 !important;
	line-height: 1;
	padding-left: 15px !important;
}
label.titForm em{
	font-size: 12px;
	color: #9F804E;
}
label.titForm img{
	width: 18px;
	margin-right: 5px;
}
.form-control.form-basic, .form-select.form-basic, .form-basic {
	margin-top: 5px;
	border-radius: 10px;
	height: 40px;
	border: 2px solid #d2d1d1;
	font-weight: 600;
	font-size: 13px;
}
.form-select select{
    padding: 5px;
}
.form-select option{
    padding: 2px 0;
    font-size: 15px;
    font-weight: 500;
}

/*TABLAS*/
.table-containrer{
    width: 80%;
    margin: auto;
}
.headTable{
    padding: 5px 10px;
    height: 60px;
    line-height: 40px;
    text-align:center; 
    align-content: center;
}
.headTable h4{
    font-size: 25px;
}
#bandejaUsu{
    background: #fff;
    box-shadow: 0 0 3px gray;
    border-radius: 15px;
	padding: 0 !important;
}

.formLabel{
    display: block;
    font-size: 15px;
    font-weight: 700;
    text-align: left;
}
.table-head{
    vertical-align: middle;
    font-size: 13px;
    font-weight: 700;
    text-align: center;
    color: #fff;
    border-bottom: 3px solid #ddc9a5;
}
#table-gral th, #table-gral td{
    vertical-align: middle;
    font-size: 14px;
    text-align: center;
    padding: 4px 10px;
}
#table-gral td{
    font-weight: 500;
}
#table-gral tr{
    border-bottom: 2px solid #d5d5d5;
}
.tablaGral tbody td {
	font-size: 12px !important;
	font-weight: 500 !important;
	text-align: center !important;
	vertical-align: middle !important;
  }
.alignBtn {
    display: grid;
    gap: 0 20px;
    grid-auto-flow: dense;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    margin: 5px 0;
}
.btnModulo {
    min-width: 245px;
    max-width: 280px;
    height: 80px;
    background: #fff;
    box-shadow: 0 0 5px grey;
    border-radius: 15px;
    padding: 0;
    transition: .8s all;
    margin: 10px auto;
}
.p-left {
    position: relative;
    display: flex;
    width: 70px;
    height: 80px;
    float: left;
    border-radius: 15px 15px 45px 15px;
    vertical-align: middle;
    z-index: 1;
}
.p-left img {
    width: 40px;
    height: 40px;
    position: absolute;
    transform: translate(-50%, -50%);
    transition: .5s all;
    top: 42%;
    left: 50%;
}
.p-right {
    width: calc(100% - 70px);
    height: 80px;
    float: right;
    padding: 15px 10px;
    text-align: center;
}
.p-right .tit.user {
    text-align: left;
    font-size: 17px;
    font-weight: 700;
    position: relative;
    transform: translateY(-50%);
    transition: .5s all;
    top: 35%;
}
.p-right .subtit {
    font-size: 11.5px;
    text-align: left;
    color: #4d4d4d;
    line-height: 1.1;
}


.titulo_seccion{
    display: block;
    float: left;
    position: relative;
    top: 10px;
    color: #fff;
    margin-right: 5px;
	font-weight: 1000 !important;
}
.oro_borde{
    border: 2px solid #ea5300;
}
/*BOTONES*/

/*BTN GRAL*/
.btnGral{
	position: relative;
	background: #fff;
	border: 3px solid;
	border-radius: 10px;
	min-width: 150px;
	height: 42px;
	padding: 0;
	margin: 0 10px auto;
	transition: .8s all;
}
.btnGral p{
	width: calc(100% - 48px);
	float: left;
	line-height: 40px;
	font-size: 16px ;
	font-weight: 700;
	padding: 0 5px 0 10px;
}
.btnGral .btnIcon{
	position: relative;
	width: 48px;
	float: left;
	top: -1px;
	right: -1px;
}
.btnGral .btnIcon .boxIcon{
	position: relative;
	width: 30px;
	height: 40px;
	float: right;
	border-radius: 0 9px 9px 0;
	transition: .5s all;
}
.btnGral .btnIcon .boxIcon img {
	z-index: 10;
	position: absolute;
	transform: translate(-50%, -50%);
	width: 20px;
	left: 12px;
	top: 50%;
}
.btnGral .btnIcon span{
	position: absolute;
	left: 5px;
	border-style: solid;
	border-width: 20px 15px 20px 0px;
	transform: rotate(0deg);
}
.btnGral .btnIcon span.s-oro{
	border-color: transparent #BB965C transparent transparent;
	transition: .5s all;
}
.btnGral .btnIcon span.s-verde{
	border-color: transparent #235B4E transparent transparent;
	transition: .5s all;
}
.btnGral .btnIcon span.s-guinda{
	border-color: transparent #9F1F41 transparent transparent;
	transition: .5s all;
}
.btnGral .btnIcon span.s-blanco{
	border-color: transparent #fff transparent transparent;
	transition: .5s all;
}
.btnGral .btnIcon span.s-gris{
	border-color: transparent #d2d1d1 transparent transparent;
	transition: .5s all;
}
/* NUEVO 20-02-24 */
.btnGral .btnIcon span.s-verde_b{
	border-color: transparent #159d15 transparent transparent;
	transition: .5s all;
}
.btnGral .btnIcon span.s-rojo{
	border-color: transparent #cc171e transparent transparent;
	transition: .5s all;
}
/* NUEVO 20-02-24 */
.btnGral:hover{
	transform: scale(.85);
	color: #681B33;
}
.btnGral:hover .btnIcon span{
	border-color: transparent #681B33 transparent transparent;
}
.btnGral:hover .boxIcon{
	background: #681B33 !important;
}

/*BTN REGRESAR*/
.btnReg{
	position: relative;
	background: #fff;
	border: 3px solid;
	border-radius: 10px;
	min-width: 150px;
	height: 42px;
	padding: 0;
	margin: 0 10px auto;
	transition: .8s all;
}
.btnReg p{
	width: calc(100% - 48px);
	float: right;
	line-height: 40px;
	font-size: 16px ;
	font-weight: 700;
	padding: 0 10px 0 5px;
}
.btnReg .btnIcon{
	position: relative;
	width: 48px;
	float: left;
	top: -1px;
	left: -1px;
}
.btnReg .btnIcon .boxIcon{
	position: relative;
	width: 30px;
	height: 40px;
	float: left;
	border-radius: 9px 0 0 9px;
	transition: .5s all;
}
.btnReg .btnIcon .boxIcon img {
	z-index: 10;
	position: absolute;
	transform: translate(-50%, -50%);
	width: 20px;
	left: 17px;
	top: 50%;
}
.btnReg .btnIcon span{
	position: absolute;
	left: 29px;
	border-style: solid;
	border-width: 20px 0px 20px 15px;
	transform: rotate(0deg);
}
.btnReg .btnIcon span.s-verde{
	border-color: transparent transparent transparent #235B4E;
	transition: .5s all;
}
.btnReg .btnIcon span.s-oro{
	border-color: transparent transparent transparent #BB965C;
	transition: .5s all;
}
.btnReg .btnIcon span.s-guinda{
	border-color: transparent transparent transparent #9F1F41;
	transition: .5s all;
}
/* NUEVO 20-02-24 */
.btnReg .btnIcon span.s-rojo{
	border-color: transparent transparent transparent #cc171e;
	transition: .5s all;
}
/* NUEVO 20-02-24 */
.btnReg:hover{
	transform: scale(.85);
	color: #681B33;
}
.btnReg:hover .btnIcon span{
	border-color: transparent transparent transparent  #681B33;
}
.btnReg:hover .boxIcon{
	background: #681B33 !important;
}

/* BTN SECUNDARIO */
.btnSec {
	height: 40px;
	background: #bb965c;
	color: #fff;
	padding: 5px 10px;
	font-size: 14px;
	font-weight: 600;
	border-radius: 10px;
	transition: all .5s;
	margin-top: 5px;
}
.btnSec.guinda {
	height: 40px;
	background: #9F1F41;
	color: #fff;
	padding: 5px 10px;
	font-size: 14px;
	font-weight: 600;
	border-radius: 10px;
	transition: all .5s;
	margin-top: 5px;
}
.btnSec.verde {
	height: 40px;
	background: #235B4E;
	color: #fff;
	padding: 5px 10px;
	font-size: 14px;
	font-weight: 600;
	border-radius: 10px;
	transition: all .5s;
	margin-top: 5px;
}
.btnSec img{
	width: 20px;
	margin-left: 2px;
	transition: .5s all;
}
.btnSec i{
	font-size: 15px;
	margin-left: 2px;
	transition: .5s all;
}
.btnSec:hover{
	background: #691c32;
}
.btnSec:hover:focus{
	transform: scale(.85);
}
.btnSec:hover img, .btnSec:hover i{
	margin-left: 7px;
}
.btnSec.desactivado{
    opacity: .5;
	cursor: not-allowed;
}
.btnSec.guinda.desactivado {
	opacity: .5;
	cursor: not-allowed;
}
.btnSec.verde.desactivado {
	opacity: .5;
	cursor: not-allowed;
}
.btnSec.desactivado:hover {
	background: #bb965c;
	transform: none;
}
.btnSec.guinda.desactivado:hover {
	background: #9F1F41;
	transform: none;
}
.btnSec.verde.desactivado:hover {
	background: #235B4E;
	transform: none;
}

/* BOTONES CARGA Y DESCARGA (Refactorizado con Flexbox) */
#btnCarga,
#btnDescarga,
.btnCarga2,
.btnDescarga2 {
    position: relative;
    z-index: 0;
    display: flex;
    width: 100%;
    min-width: auto;
    max-width: 450px;
    margin-top: 5px;
}

#btnCargaBorrar {
    display: none;
    width: 100px;
    float: left;
    padding-left: 15px;
}
/* Parte izquierda (Nombre del archivo) */
.docsLeft {
    position: relative;
    flex-grow: 1;
    min-width: 100px;
    height: 40px;
    background: white;
    color: #4d4d4d;
    border: 2px solid;
    border-right: none;
    border-radius: 10px 0 0 10px;
    padding: 8px 15px;
    font-size: 12px;
    font-weight: 500;
    margin-bottom: 15px;
}

/* Parte derecha (Botón "CARGAR") */
.docsRight {
    position: relative;
    flex-shrink: 0;
    width: 110px;
    height: 40px;
    color: white;
    text-align: center;
    border-radius: 0 10px 10px 0;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}

/* --- Estilos de borde y hover (sin cambios) --- */
#btnCarga .docsLeft {
    border: 2px solid #005046;
}
.btnCarga2 .docsLeft {
    border: 2px solid #005046;
}
#btnDescarga .docsLeft {
    border: 2px solid #BC955C;
}
.btnDescarga2 .docsLeft {
    border: 2px solid #BC955C;
}
#btnCarga .docsLeft.correcto {
    border: 2px solid #127c12;
}
.cargar {
    z-index: 1;
    overflow: hidden;
    display: inline-block;
    background: #005046;
    border: 2px solid #005046;
    transition: .5s background;
}
.cargado {
    z-index: 1;
    overflow: hidden;
    display: inline-block;
    background: #127c12;
    border: 2px solid #127c12;
    transition: .5s background;
}
.descargar {
    z-index: 1;
    overflow: hidden;
    display: inline-block;
    background: #BC955C;
    border: 2px solid #BC955C;
    transition: .5s background;
}
.cargar:hover,
.descargar:hover {
    border: 2px solid #96663D;
}
.cargar::after,
.descargar::after {
    content: "";
    background: #96663D; /* color de fondo hover */
    position: absolute;
    z-index: -1;
    padding: 16px 20px;
    display: block;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    transform: skewX(-45deg) scale(0, 1);
    transition: all 0.5s ease;
}
.cargar:hover::after,
.descargar:hover::after {
    transition: all 0.3s ease-out;
    transform: skewX(-45deg) scale(1.5, 1.5);
}
.cen {
    width: 95%;
    position: absolute;
    transform: translate(-50%, -50%);
    top: 50%;
    left: 50%;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
}
p.cen {
    font-weight: 600;
}
.docsRight .input-file {
    position: absolute;
    width: 110px;
    top: 5px;
    left: 0;
    height: 30px;
    cursor: pointer;
    opacity: 0;
    z-index: 5;
}
.img_docs {
    width: 14px;
    margin: 4px 0px;
}
.cargado .img_docs {
    width: 17px;
    margin: 0;
}


/*BTN VALIDAR*/
.btnVal {
	width: 150px;
	height: 35px;
	background: #bb965c;
	color: #fff;
	padding: 5px 10px;
	margin-top: 5px;
	font-size: 14px;
	font-weight: 600;
	border-radius: 10px;
	transition: all .5s;
}
.btnVal:hover{
	background: #691c32;
}
.btnVal:hover:focus{
	transform: scale(.85);
}
.gralCard{
    border-radius: 15px 15px 15px 15px;
	width: 100%;
    box-shadow: 0 0 5px black;
}

.cardHead {
    z-index: 2;
    padding: 10px;
    text-align: center;
    font-size: 14px;
    font-weight: 700;
    color: #fff;
	border-radius: 15px 15px 0px 0px;
}
.cardHead i, .cardHead img{
    margin-right: 5px;
}
.cardBody{
    background: #fff;
    padding: 20px;
    border-radius: 0px 0px 15px 15px;
}
.r-down{
    border-radius: 0 0 10px 10px;
}
.box-form{
    min-height: 40px;
    width: 100%;
    padding: 4px 10px;
    border: 2px solid #BB965C;
    border-radius: 8px;
}
.box-form label{
    display: block;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.2;
    color: #BB965C;
}
.box-form p{
    font-size: 13px;
    font-weight: 600;
    line-height: 1.1;
    margin-top: 0px;
    color: #4d4d4d;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    word-wrap: break-word;
}
.subenun{
	position: relative;
	margin-top: 15px;
	margin-bottom: 20px;
	padding: 0;
}
.subenun p{
	border-bottom: 2px solid #BB965C;
	/*border-color: #BB965C;
	line-height: 1.2;*/
}
.subenun span{
	display: block;
	position: absolute;
	bottom: -5px;
	left: 0;
	width: 20px;
	height: 6px;
	background: #BB965C;
}
.cardBody.row{
	margin-left: 0;
	margin-right: 0;
}


.btnAct{
	position: relative;
	overflow: hidden;
	width: 70px;
	height: 38px;
	line-height: 40px;
	border-radius: 8px;
	color: #fff;
	font-weight: 600;
	transition: .8s background;
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
}
.btnAct:hover, .btnAct:focus{
	cursor: pointer;
	background: #6F1228;
}
.btnAct i{
	font-size: 20px;
	padding: 5px;
}
.btnAct:hover i, .btnAct:hover img{
	opacity: 0;
}
.btnAct:hover:before{
	opacity: 1;
	-webkit-transform: translate(0,0);
	transform: translate(0,0);
}
.btnAct:before{
	content: attr(data-hover);
	position: absolute;
	top: 0; 
	left: 0;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 30px;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-weight: 700;
	font-size: 12px;
	opacity: 0;
	-webkit-transform: translate(-100%,0);
	transform: translate(-100%,0);
	-webkit-transition: all .3s ease-in-out;
	transition: all .5s ease-in-out;
	text-align: center;
}

/*MODAL*/
.modal-contenido{
	translate: (50% - 50%);
	background: #fff !important;
	border-radius: 20px !important;
	padding: 0 !important;
	margin-top: 10% !important;
	position: fixed;
	z-index: 10000; 
}
.modal-header {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1rem;
    border-bottom: 1px solid #dee2e6;
    border-top-left-radius: calc(.3rem - 1px);
    border-top-right-radius: calc(.3rem - 1px);
	border-radius: 20px 20px 0px 0px !important;
}

.modal-header {
	border-radius: 20px 20px 0px 0px !important;
}
.modal-header{
	text-align: center;
}
.modal-header h5 {
    width: 100%;
    font-size: 15px;
    font-weight: 700;
    color: #fff;
    text-align: center;
}

.modal-content {
    border-radius: 20px !important;
	position: relative;
	display: flex;
	flex-direction: column;
	width: 100%;
	pointer-events: auto;
	background-color: #fff;
	background-clip: padding-box;
	border: 1px solid rgba(0,0,0,.2);
	border-radius: .3rem;
	outline: 0;
}
.modal-body{
	background: #fff;
	margin: 0;
	padding: 15px;
	border-radius: 0px 0px 20px 20px;
}

.footer-modal{
	border-top: 2px solid #ccc9c9;
	padding: 20px;
	border-radius: 0px 0px 20px 20px;
}

.modalcontenido{
	background: transparent !important;
}
button.btn-close {
    background: none !important; 
    border: none !important; 
    padding: 0 !important; 
    appearance: none !important; 
}

button.btn-close::before {
    content: none !important; 
}
.modal-content .btn-close {
	width: 25px;
	height: 25px;
	padding: 10px;
	background: transparent;
	opacity: .60;
	transition: .3s all;
  }




.btnCarga{
	position: relative;
	margin: auto;
	width: 100px;
	height: 100px;
	border-radius: 30px;
	padding: 20px;
	background: #BB965C;
}
.btnCarga .input-file {
	position: absolute;
	width: 100px;
	height: 100px;
	top: 0;
	left: 0;
	cursor: pointer;
	opacity: 0;
	z-index: 5;
}
#btnCarga, #btnDescarga{
	position: relative;
	z-index: 0;
	width: calc(100% - 100px);
	max-width: 450px;
	min-width: 220px;
	margin-top: 5px;
	float: left;
}
#btnCargaBorrar{
	display: none;
	width: 100px;
	float: left;
	padding-left: 15px;
}
.docsLeft {
	position: relative;
	width: calc(100% - 110px);
	min-width: 110px;
	height: 40px;
	float: left;
	background: white;
	color: #4d4d4d;
	border: 2px solid;
	border-right: none;
	border-radius: 10px 0 0 10px;
	padding: 8px 15px;
	font-size: 12px;
	font-weight: 500;
	margin-bottom: 15px;
}
#btnCarga .docsLeft {
	border: 2px solid #005046;
}
#btnDescarga .docsLeft {
	border: 2px solid #BC955C;
}
#btnCarga .docsLeft.correcto {
	border: 2px solid #127c12;
}
.docsRight{
	position: relative;
	width: 110px;
	height: 40px;
	float: left;
	color: white;
	text-align: center;
	border-radius: 0 10px 10px 0;
	font-size: 12px;
	font-weight: 700;
	cursor: pointer;
}
.cargar {
	z-index: 1;
	overflow: hidden;
	display: inline-block;
	background: #005046;
	border: 2px solid #005046;
	transition: .5s background;
}
.cargado {
	z-index: 1;
	overflow: hidden;
	display: inline-block;
	background: #127c12;
	border: 2px solid #127c12;
	transition: .5s background;
}
.descargar {
	z-index: 1;
	overflow: hidden;
	display: inline-block;
	background: #BC955C;
	border: 2px solid #BC955C;
	transition: .5s background;
}
.cargar:hover, .descargar:hover{
	border: 2px solid #96663D;
} 
.cargar::after, .descargar::after {
	content: "";
	background: #96663D; /* color de fondo hover */
	position: absolute;
	z-index: -1;
	padding: 16px 20px;
	display: block;
	left: 0;
	right: 0;
	top: 0;
	bottom: 0;
	transform: skewX(-45deg) scale(0, 1);
	transition: all 0.5s ease;
}
.cargar:hover::after, .descargar:hover::after{
	transition: all 0.3s ease-out;
	transform: skewX(-45deg) scale(1.5, 1.5);
}
.cen {
	width: 95%;
	position: absolute;
	transform: translate(-50%, -50%);
	top: 50%;
	left: 50%;
	white-space: nowrap;
	text-overflow: ellipsis;
	overflow: hidden;
}
p.cen{
	font-weight: 600;
}
.docsRight .input-file {
	position: absolute;
	width: 110px;
	top: 5px;
	left: 0;
	height: 30px;
	cursor: pointer;
	opacity: 0;
	z-index: 5;
}
.img_docs {
	width: 14px;
	margin: 4px 0px;
}
.cargado .img_docs {
	width: 17px;
	margin: 0;
}

/*MENÚ IMSS-BIENESTAR*/
.main-layout-wrapper {
	display: flex;
	position: relative;
}
.contenedor {
	flex-grow: 1;
	min-width: 0;
	height: calc(100vh - 58px);
	background: #F2F2F2;
	-ms-overflow-style: none;
}
#menuIzq {
    display: block;
    position: relative;
    width: 260px;
    height: calc(100vh - 58px);
    flex-shrink: 0;
    background: #fff;
    box-shadow: 0 0 5px black;
    z-index: 31;
    transition: width 0.35s ease;
}
#contRight {
    flex-grow: 1;
    height: calc(100vh - 58px);
    overflow-y: auto;
    overflow-x: hidden;
	padding: 30px;
	background: #F2F2F2;
	-ms-overflow-style: none;
    /* transition: width 0.35s ease; */
	min-width: 0;
}
.btnCollapseMovil {
	display: none;
}
.menu-backdrop {
	display: none;
}
a.mList {
    display: flex;
    align-items: center;
    width: 100%;
    padding: 12px 20px;
    text-decoration: none;
    color: #333;
    transition: background-color 0.2s;
}
a.mList:hover {
    background-color: #f4f4f4;
}
a.mList .iPr {
    margin-right: 20px !important;
    width: 30px;
    text-align: center;
}
body.menu-collapsed #menuIzq {
    width: 70px;
}
#menuIzq.collapsed .mList span,
#menuIzq.collapsed .datDer,
#menuIzq.collapsed .img-logo,
#menuIzq.collapsed .bodyMenu>p {
    display: none;
}
#menuIzq.collapsed .mList {
    padding: 12px 0;
}
#menuIzq.collapsed .mList .iPr {
    margin-left: 20px;
    font-size: 20px;
}
#menuIzq.collapsed .logoSeccion {
    justify-content: center;
    padding: 10px 0;
}
#menuIzq.collapsed .usuario .datDer {
    display: none;
}
#menuIzq.collapsed .usuario {
    display: flex;
    justify-content: center;
    padding: 15px 0;
}
#menuIzq.collapsed .usuario .imgIzq {
    width: 44px;
    height: 44px;
    background-color: #f0f0f0;
    border: 1px solid #e0e0e0;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
}
#menuIzq.collapsed .usuario .imgIzq img {
    width: 23px !important;
    height: 23px !important;
    opacity: 1;
}
#menuIzq.collapsed .footMenu .btnClose {
    width: 100%;
    border-radius: 0;
}
#menuIzq.collapsed .footMenu .btnClose::before {
    display: none;
}
#menuIzq.collapsed #menuGral li.current-item a.mList {
    padding-left: 0;
}
.custom-tooltip-menu {
    --bs-tooltip-bg: #343a40;
    --bs-tooltip-color: #fff;
    --bs-tooltip-opacity: 1;
    --bs-tooltip-arrow-width: .8rem;
    --bs-tooltip-arrow-height: .4rem;
}
#menuGral li.current-item {
    border-left: 4px solid #BB965C;
}
#menuGral li.current-item a.mList {
    background-color: #e9ecef;
    font-weight: 600;
    color: #681c32;
    padding-left: 16px;
}
a.mList .iPr {
    flex-shrink: 0;
    margin-right: 20px !important;
    width: 30px;
    text-align: center;
}
a.mList span {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
#templateGral{
	width: 100%;
	padding: 15px 50px;
}
.logoSeccion{
	position: relative;
	text-align: center;
	padding: 7px 0;
	height: 90px;
}
.img-logo{
	height: 100%;
}
.usuario{
	padding: 10px 20px;
	color: #4d4d4d;
	border-bottom: 1px solid #00000050;
}
.imgIzq{
	width: 60px;
	height: 60px;
	padding: 0;
	float: left;
	border-radius: 10px;
	background: #F4F4F4;
	border: 2px solid #BC955C;
}
.imgIzq img{
	object-fit: cover;
	height: 100%;
	width: 100%;
}
.datDer{
	width: calc(100% - 60px);
	float: left;
	padding-top: 10px;
	padding-left: 12px;
	line-height: 1;
}
.datDer p{
	font-size: 12px;
	font-weight: 700;
}
.datDer label{
	font-size: 11px;
	font-weight: 600;
}
.bodyMenu{
	height: calc(100vh - 285px);
	overflow-y: auto;
}
.bodyMenu::-webkit-scrollbar, #contRight::-webkit-scrollbar {
	width: 12px;
}
.bodyMenu::-webkit-scrollbar-thumb, #contRight::-webkit-scrollbar-thumb {
	background-color: #666666;
	border-radius: 20px;
	border: 3px solid #F2F2F2;
}
.bodyMenu p{
	padding: 10px;
	font-size: 12px;
	font-weight: 700;
	color: #BB965C;
}
.footMenu{
	position: absolute;
	bottom: 0;
	width: 100%;
	height: 35px;
	text-align: center;
	border-top: 1px solid #00000050;
}
.btnClose{
	position: relative;
	overflow: hidden;
	width: 100%;
	height: 35px;
	line-height: 35px;
	background: #9f1f41;
	color: #fff;
	font-weight: 600;
	transition: .8s background;
}
.btnClose:focus{
	cursor: pointer;
	background: #6F1228;
}
.btnClose i{
	font-size: 20px;
}
.btnClose:hover i, .btnClose:hover img{
	opacity: 0;
}
.btnClose:hover:before{
	opacity: 1;
	-webkit-transform: translate(0,0);
	transform: translate(0,0);
}
.btnClose:before{
	content: attr(data-hover);
	position: absolute;
	top: 0; 
	left: 0;
	width: 100%;
	line-height: 35px;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-weight: 700;
	font-size: 12px;
	opacity: 0;
	-webkit-transform: translate(-100%,0);
	transform: translate(-100%,0);
	-webkit-transition: all .3s ease-in-out;
	transition: all .5s ease-in-out;
}
.boxA ul li{
	height: 45px;
}
.boxA ul li.active{
	background: #ddc9a582;
}
.boxA ul li a {
	display: inline-block;
	width: 100%;
	text-decoration: none;
	position: relative;
	padding: 8px 10px 8px 10px;
	border-bottom: 1px solid #bc955c20;
	transition: all .5s ease-out;
}
.boxA ul li a:hover {
	background: #bc955c;
}
.iPr {
	width: 30px;
	height: 30px;
	float: left;
	font-size: 15px;
	padding: 5px;
	border-radius: 10px;
	background: #f4f4f4;
	transition: .5s all;
}
.boxA ul{
	padding-left: 0;
}
.boxA ul li{
	list-style-type: none;
}
.boxA ul li a span {
	display: block;
	position: absolute;
	transform: translateY(-50%);
	left: 40px;
	top: 50%;
	width: calc(100% - 40px);
	float: left;
	color: #4d4d4d;
	font-size: 12px;
	line-height: 1.2;
	font-weight: 700;
	padding-left: 5px;
	transition: all .3s;
}
.boxA ul li a:hover span {
	color: #fff;
	font-weight: 700;
}
.boxA a:hover .iPr {
	padding: 3px;
}
.boxA ul li.disabled a:hover {
	background: unset;
}
.boxA ul li.disabled a span{color: #d2d1d1;}
.boxA ul li.disabled a:hover span {
	color: #d2d1d1;
}
.boxA ul li.disabled a:hover .iPr {
	padding: 5px;
}
.btnCollapse{
	width: 40px;
	height: 40px;
	border-radius: 30px 0 0 30px;
	position: absolute;
	transform: translateY(-50%);
	top: 50%;
	right: 0;
	font-size: 22px;
	padding-right: 0px;
	color: #fff;
	background: #BB965C;
	transition: all .5s ease-in-out;
}
.btnCollapse:hover{
	width: 50px;
	background: #681c32;
	padding-right: 15px;
}
.btnCollapseMovil{
	display: none;
	width: 40px;
	height: 40px;
	border-radius: 0 30px 30px 0;
	position: absolute;
	transform: translateY(-50%);
	top: 30px;
	left: 0;
	font-size: 22px;
	padding-right: 0px;
	color: #fff;
	background: #BB965C;
	transition: all .5s ease-in-out;
	z-index: 100;
}
.btnCollapseMovil, .btnCollapse{
	padding: 5px;
}
.btnCollapseMovil:hover, .btnCollapse:hover{
	width: 50px;
	background: #681c32;
	padding: 5px;
}

a.nav-link.registro .p-registro{
	line-height: 1;
    font-size: 18px;
    color: #005046;
}
a.nav-link.registro.active .p-registro, a.nav-link.sesion.active .p-sesion, a.nav-link.sesion.active .label-sesion{
    color: #fff;
}

a.nav-link.sesion .label-sesion{
	font-size: 13px;
    line-height: 1;
    font-weight: 700;
    color: #000000;
}
a.nav-link.sesion .p-sesion{
	line-height: 1;
    font-size: 18px;
    color: #9f1f41;
}
.bor-down{
	border-bottom:5px solid #235b4e;
}
.boxA ul li.active {
    background: #c69658;
}
.boxA ul li.active a {
    color: white;
}
.boxA ul li.active a span {
    color: white;
}
.boxA ul li.active a .iPr {
    background: #f4f4f4;
}
.limit-gral{
	padding: 30px 50px;
}
.titEnun{
	font-size: 14px;
	font-weight: 600;
	color: #4d4d4d;
	border-bottom: 2px solid #ba955c;
	margin-bottom: 10px;
}

.dataTables_wrapper label{
	padding-top: 15px!important;

}
#tabla_lenght{
	margin: 10px !important;
}
.dataTables_wrapper .dataTables_filter {
    float: right;
    text-align: right;
    padding: 10px !important;

}
.dataTables_wrapper .dataTables_length, .dataTables_wrapper .dataTables_filter, .dataTables_wrapper .dataTables_info, .dataTables_wrapper .dataTables_processing, .dataTables_wrapper .dataTables_paginate {
    color: inherit;
    padding: 10px;
}
.form-check-input:checked {
    background-color: #235B4E !important;
    border-color: #235B4E !important;
}

/*Recuperar contraseña*/
.card{
	border-radius: 20px !important;
}
.card-header{
	background: #335b50 !important;
	border-radius: 20px 20px 0px 0px !important;
	border-bottom: 7px solid #b49664 !important;
	color: #fff !important;
}
h5 .tit-recup{
	font-weight: 800 !important;
	color: #d9c9a8 !important;
}
.recup-input{
	border: 2px solid #bb965c !important;
	border-radius: 20px !important;
	background: #f5f5f5 !important;
}
.titRecup{
	display: block;
	font-size: 13px !important;
	font-weight: 700 !important;
	line-height: 1;
	padding-left: 15px !important;
	color: #235c50;
}

/**/
.content-main{
	max-width: 1170px;
	margin: auto;
	width: 80%;
}

.table>:not(:first-child) {
    border-top: 2px solid currentColor;
    font-size: 12px;
	font-weight: 400;
}

.head-secundario-table{
	text-align: center;
	color: #9f2241;
	font-weight: 700;
	border-bottom: 4px solid #9f2241;
}
.areasDestino .form-check-input {
    width: 40px !important;
    height: 40px !important;
    border-radius: 50% !important;
    margin-top: 0px !important;
    margin-left: 0px !important;
    background-color: #fff !important;
    border: 2px solid #d2d1d1 !important;
    box-shadow: none !important;

    transition: .5s all !important;
}
.areasDestino .form-check-input:checked {
    background-color: #fff !important; 
    background-image: radial-gradient(
        circle,
        #235B4E 45%,
        transparent 46%
    ) !important;
    border-color: #235B4E !important;
}
.areasDestino .form-check-label {
    font-size: 20px;
    font-weight: 700;
	color: #4d4d4d;
	margin-left: 10px;
	margin-top: 5px;
	cursor: pointer;
}

.check-w {
width: 230px;
	/*margin: auto;*/
}
.note{
	background: #235B4E;
	color: #fff;
	text-align: center;
	padding: 15px;
	border-radius: 20px;
	width:100%
}
.border_guinda{
	border-bottom: 3px solid #9F2241;
}

/* Nomenclatura */
.nomenclatura-container {
    background-color: #013e38;
    border-radius: 20px;
    padding: 20px;
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: 15px;
    width: 90%;
    max-width: 900px;
    box-sizing: border-box;
}

.nomenclatura-group {
    display: flex;
    flex-direction: column; 
    align-items: center;
    gap: 10px;
    flex-grow: 1;
    flex-basis: 0;
    min-width: 120px;
}

.item-box {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 12px 25px;
    border-radius: 30px;
    font-size: 24px;
    font-weight: bold;
    text-align: center;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    white-space: nowrap;
    width: 100%;
}
.item-box.verde {
    background-color: #1e5b4f;
    color: #fff;
}
.item-box.beige {
    background-color: #f8f1e6;
    color: #bb965c;
}
.item-box.blanco {
    background-color: #fff;
    color: #8c2a3f;
}
.label-text {
    color: #f8f1e6;
    font-size: 16px;
    text-align: center;
    width: 100%;
}

@media (max-width: 1200px) {
	html { font-size: 15px; }
	.content-main, #templateGral, .limit-gral { width: 95% !important; padding: 10px !important; }
	.table-containrer { width: 98% !important; }
}

@media (max-width: 992px) {
	html { font-size: 14px; }
	.header, .plecaVerde, .main, .card, .box-login, .cont-logo { padding: 10px !important; }
	.table-containrer, .content-main, #templateGral, .limit-gral { width: 100% !important; padding: 5px !important; }
	.row, .cardBody.row { margin-left: 0 !important; margin-right: 0 !important; }
	.alignBtn { grid-template-columns: 1fr !important; }
	.btnGral, .btnReg, .btnSec, .btnSecGuinda { min-width: 120px !important; font-size: 13px !important; }
	.btnCollapse { display: none; }
	.btnCollapseMovil { display: block; position: fixed; top: 78px; left: 0px; z-index: 1030; border-radius: 8px; width: 45px; height: 45px; padding: 0; border-radius: 0 30px 30px 0; }
	.menu-backdrop { display: block; position: fixed; top: 0; left: 0; width: 100%; height: 100vh; background: rgba(0, 0, 0, 0.5); z-index: 1040; opacity: 0; pointer-events: none; transition: opacity 0.3s ease-in-out; }
	#menuIzq { display: block !important; position: fixed; top: 0; left: 0; width: 280px; max-width: 80%; height: 100vh; z-index: 1050; float: none; transform: translateX(-100%); transition: transform 0.3s ease-in-out, width 0s; }
	.bodyMenu { height: calc(100vh - 207px); overflow-y: auto; }
	body.menu-movil-abierto #menuIzq { transform: translateX(0); }
	body.menu-movil-abierto .menu-backdrop { opacity: 1; pointer-events: auto; }
}

@media (max-width: 768px) {
	html { font-size: 13px; }
	.login { width: 95%; padding: 15px; margin-top: 20px; margin-bottom: 40px; }
	.login-logimb { padding-top: 40px;padding-bottom: 20px;display: flex;justify-content: center; align-items: center; }
	.login-logimb img { max-width: 250px;width: 80%;height: auto; }
	.box-login { border-radius: 0 !important; border-left: none !important; height: auto !important; min-height: auto !important;  padding: 10px 5px !important; }
	.fondo-login { height: auto; min-height: 100vh; }
	.title-login, .leyendainicia{ font-size: 16px; }
	.txtpass{ font-size: 14px; }
	.header, .plecaVerde, .main, .card, .box-login, .cont-logo { padding: 5px !important; }
	.table-containrer, .content-main, #templateGral, .limit-gral { width: 100% !important; padding: 2px !important; }
	.row, .cardBody.row { margin-left: 0 !important; margin-right: 0 !important; }
	.alignBtn { grid-template-columns: 1fr !important; }
	.btnGral, .btnReg, .btnSec, .btnSecGuinda { min-width: 100px !important; font-size: 12px !important; }
	.preview-modal { max-width: 98vw !important; height: 95vh !important; }
	.checkbox-grid-container { grid-template-columns: 1fr !important; padding: 10px !important; }
	.nomenclatura-container { flex-direction: column; gap: 15px; padding: 15px; }
    .nomenclatura-group { width: 100%; min-width: unset; }
    .item-box { font-size: 20px; padding: 10px 15px; width: 100%;  max-width: 400px; }
    .label-text { font-size: 14px; }
}

@media (max-width: 576px) {
	html { font-size: 12px; }
	.header, .plecaVerde, .main, .card, .box-login, .cont-logo { padding: 2px !important; }
	.table-containrer, .content-main, #templateGral, .limit-gral { width: 100% !important; padding: 0 !important; }
	.row, .cardBody.row { margin-left: 0 !important; margin-right: 0 !important; }
	.alignBtn { grid-template-columns: 1fr !important; }
	.btnGral, .btnReg, .btnSec, .btnSecGuinda { min-width: 90px !important; font-size: 11px !important; }
	.preview-modal { max-width: 100vw !important; height: 100vh !important; border-radius: 0 !important; }
	.checkbox-grid-container { grid-template-columns: 1fr !important; padding: 5px !important; }
	.modal-contenido, .modal-content { margin-top: 5% !important; border-radius: 10px !important; }
	.plecaVerde { flex-direction: column !important; height: auto !important; }
}

@media (max-width: 400px) {
	html { font-size: 11px; }
	.btnGral, .btnReg, .btnSec, .btnSecGuinda { min-width: 70px !important; font-size: 10px !important; }
	.preview-modal { padding: 0 !important; }
	.item-box { font-size: 18px; padding: 8px 10px; }
	.label-text { font-size: 12px; }
}

.preview-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(16, 49, 43, 0.8);
    z-index: 1040;
}
.preview-modal {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 90%;
    max-width: 1000px;
    height: 90vh;
    background-color: #fff;
    border-radius: 15px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.3);
    z-index: 1050;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    animation: slideDown 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.preview-header {
    display: flex;
    align-items: center;
    padding: 12px 20px;
    background-color: #235B4E;
    color: #fff;
    flex-shrink: 0;
}
.preview-title {
    flex-grow: 1;
    text-align: center;
    font-size: 1.1rem;
    font-weight: 700;
}
.preview-close-btn {
    background: transparent;
    border: none;
    padding: 5px;
    opacity: 0.8;
    transition: all 0.2s ease;
}
.preview-close-btn:hover {
    opacity: 1;
    transform: scale(1.1);
}
.preview-body {
    padding: 20px;
    flex-grow: 1;
    overflow-y: auto;
    background-color: #f0f2f5;
}
.preview-iframe {
    width: 100%;
    height: 100%;
    border: 1px solid #d2d1d1;
    border-radius: 8px;
}

.link-tabla {
	font-size: 1.1em;
	color: #235B4E;
	font-weight: 700;
	text-decoration: none;
	transition: color 0.2s, text-decoration 0.2s;
	padding: 2px 6px;
	border-radius: 6px;
	display: inline-block;
}
.link-tabla:hover,
.link-tabla:focus {
	color: #9F1F41;
	text-decoration: underline;
	outline: none;
}

/* --- NUEVO COMPONENTE: BADGE DE ESTADO --- */
.status-badge {
    display: inline-block;
    padding: 6px 12px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    text-align: center;
    white-space: nowrap;
    vertical-align: baseline;
    border-radius: 20px; /* Forma de píldora */
    color: #fff;
}

/* Modificadores de color usando TUS clases existentes */
.badge-vencido {
    background-color: #cc171e;
}
.badge-por-vencer {
    background-color: #BB965C;
}
.badge-vigente {
    background-color: #159d15;
}
.badge-conocimiento {
    background-color: #666666;
    color: #fff;
}
.badge-invalido {
    background-color: #d2d1d1;
    color: #191919;
}

.nav-tabs-custom {
    border-bottom: 3px solid #DDC9A5;
    display: flex;
    gap: 8px;
	flex-wrap: nowrap;
}
.nav-tabs-custom::-webkit-scrollbar {
    display: none;
}
.nav-item-custom {
    list-style: none;
    flex-grow: 1;
    text-align: center;
	flex-basis: 0;
}
.nav-link-custom {
    border: 2px solid transparent;
    border-bottom: none;
    background-color: #f2f2f2;
    color: #4d4d4d;
    padding: 12px 24px;
    font-size: 15px;
    font-weight: 700;
    border-radius: 10px 10px 0 0;
    cursor: pointer;
    transition: all 0.3s ease-in-out;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
}
.nav-link-custom:hover {
    background-color: #e9ecef;
    color: #10312B;
}
.nav-link-custom.active {
    background-color: #fff;
    color: #235B4E;
    border-color: #DDC9A5 #DDC9A5 transparent #DDC9A5;
    position: relative;
    top: 3px;
}
.tab-content {
    padding: 25px 10px;
}

.checkbox-grid-container {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 15px;
    padding: 20px;
    background-color: #F8F9FA;
    border-radius: 8px;
    border: 2px solid #e9ecef;
}
.checkbox-grid-container .form-check-label {
    cursor: pointer;
    font-weight: 500;
}
.checkbox-grid-container .select-all-switch {
    grid-column: 1 / -1;
    margin-bottom: 10px;
    padding-bottom: 15px;
    border-bottom: 2px dashed #d2d1d1;
}
.action-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 20px;
}
.input-group-custom {
    display: flex;
    flex-direction: column;
    gap: 5px;
    flex: 1 1 250px;
}
.action-row .btnGral {
    flex-shrink: 0;
}

#modalCancelar {
    z-index: 1060;
}

/* Estilos tabla expandible (Turnados) */

td.details-control {
    cursor: pointer;
    width: 30px;
    text-align: center;
}

td.details-control::before {
    content: '\f055'; /* fa-plus-circle */
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    color: #28a745;
}

tr.shown td.details-control::before {
    content: '\f056'; /* fa-minus-circle */
    color: #dc3545;
}
/* LockScreen */

.blockscreen {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 9999;
    background: rgba(0, 0, 0, 0.75);
    margin: 0;
    padding: 0;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
.blockscreen[style*="display: block"], 
.blockscreen[style*="display:block"] {
    display: flex !important;
}

/* Estilos internos */
.blockscreen h2 {
    color: #fff;
    font-size: 2em;
    font-weight: 400;
    margin: 0;
    text-align: center;
}