:root{
	--primary-color: #003D79;
	--primary-light-color: #0062C4;
	--primary-dark-color: #001C38;

	--second-color: #00656C;
	--second-light-color: #44939A;
	--second-dark-color: #003a41;
	
	--agregar-color-transparent: rgba(202,156,29,0.9);
	--background-color:#F1F1F1;
	--danger-color: #8f0d0d;
	--danger-light-color:#bf1313;
	--success-color: #00bb00;
	--warning-color: #EC942C;
}
html,body,section{
	height: 100%;
	width: 100%;
	font-family: sans-serif !important;
	font-size: 16px;
}
html,body,section,article{
	margin: 0;

}
body{
	background-image: url("png/fondo.png");
    background-repeat: repeat;
    background-size: 16px 16px;
}

.hidden{
	visibility: hidden;
}
.first-button{
	border:solid 1px var(--second-color);
	border:none;
	width: 100%;
	height: 32px;
	border-radius: 5px;
	background-color: white;
	font-size: 20px;
	font-weight: bold;
	color: var(--second-color);
	letter-spacing: 2px;
}
.first-button:hover{
	background-color: var(--second-color);
	color:white;
	cursor:pointer;
}
.first-button:focus{
	box-shadow: 0px 1px 1px 0px var(--second-light-color);
}
.first-button:focus-visible{
	outline-color:var(--second-light-color);
}
.blur{
	filter: blur(5px);
}
.d-none{
	display: none !important;
}
.disabled{
	color: gray !important;
}
.alert{
	position: fixed;
	bottom: 1em;
	right: 5em;
	padding: 0.5em 2em;
	color: white;
	border-radius: 5px;
	z-index: 1000;
}
.alert.alert-success{
	background-color: rgb(0,100,0);
	box-shadow: 0px 0px 5px 2px rgba(0,200,0,0.5);
}
.alert.alert-danger{
	background-color: rgb(100,0,0);
    box-shadow: 0px 0px 5px 2px rgba(200,0,0,0.5);
}
#link-reenviar{
	cursor: pointer;
	text-decoration: underline;
    color: var(--primary-light-color);
}
section.main{
	display: flex;
	flex-direction: row;
}
section.main article.logo{
	width: 50%;
	height: 100%;
	background-color:var(--primary-dark-color);
	display: flex;
	flex-direction: row;
	justify-content: center;
	align-items: center;
}
section.main article.logo figure{
	margin:0 88px;
}
section.main article.logo img{
	width: 100%;
	height: auto;
}

section.main article.form{
	width: 50%;
	height: 100%;
}
section.main article.form div.form-border{
	padding: 3em;
    border-radius: 10px;
    background-color: white;
    box-shadow: 0px 0px 5px 1px rgba(150,150,150,0.2);
}
section.main article.form div.form-border.validar{
	padding: 3em 3em 7em;
}

section.main article.form{
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	color: var(--second-color);
}
section.main article.form .titulo{
	font-size: 	33px;
	padding-bottom: 64px;
}
section.main article.form .usuario,
section.main article.form .password,
.recuperar .usuario{
	width: 320px;
}
section.main article.form .usuario .text,
.recuperar .usuario{
	font-size: 14px;
	font-weight: bold;
}
section.main article.form .usuario .text.efecto,
section.main article.form .password .text.efecto,
.recuperar .usuario .text.efecto{
	animation-name: efecto1;
	animation-duration: 2s;
}
section.main article.form .usuario input,
.recuperar .usuario input{
	border:0;
	border-bottom: solid 1px var(--primary-color);
	font-size: 1rem;
	background-image:url(svg/person-fill.svg);
	background-repeat:no-repeat;
	background-position:center;
	background-position-x:4px;
	margin-top:16px;
	padding:8px 32px 8px 24px;
	width: 264px;
}
section.main article.form .password{
	position: relative;
}
section.main article.form .password img{
	position: absolute;
	top: 70px;
	right: 6px;
	width: auto;
	height: 20px;
	cursor: pointer;
}
section.main article.form .password .text{
	font-size: 14px;
	font-weight: bold;
	padding-top:32px;
}
section.main article.form .password input{
	border:0;
	border-bottom: solid 1px var(--primary-color);
	font-size: 1rem;
	background-image:url(svg/lock-fill.svg);
	background-repeat:no-repeat;
	background-position:center;
	background-position-x:4px;
	margin-top:16px;
	padding:8px 32px 8px 24px;
	width: 264px;
}
section.main article.form .recuperar_password{
	padding:32px 0;
	width: 320px;
	text-align: right;
	text-decoration: underline;
	cursor: pointer;
}
section.main article.form .enviar{
	padding-top: 32px;
	width: 320px;
	position: relative;
}
section.main article.form #e_carga_img{
	position: absolute;
	bottom: -90px;
	width: 100%;
	padding: 1em;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	font-size: 0.8rem;
	font-weight: bold;
}
section.main article.form #e_carga_img img,
.validacion #carga_img img,
.recuperar #r_carga_img img{
	width:30px;
	padding: 0.5rem;
}
section.main article.form input:focus,
.recuperar input:focus{
	border:solid 1px var(--primary-light-color);
	box-shadow: 0px 0px 5px 0px var(--primary-light-color);
}
section.main article.form input:focus-visible,
.recuperar input:focus{
	outline-color:var(--primary-light-color);
}

/* Mensajes de sistema */

div.system-msg{
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 100;
	display: flex;
	flex-direction: row;
	justify-content: center;
	align-items: center;
	background-color: rgba(0,0,0,0.5);
}
div.system-msg div.main{
	width: 416px;
	height: 300px;
	border-radius:5px;
	box-shadow: 0px 0px 10px 0px black;
	border:solid 1px gray;
	overflow: hidden;
	background-color: white;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}
div.system-msg div.main div.header{
	border:0;
	border-bottom: solid 1px var(--second-light-color);
	color: var(--second-color);
	font-size: 21px;
	font-weight: bold;
	width: calc(100% - 64px);
	height: 48px;
	display: flex;
	flex-direction: row;
	align-items: center;
	letter-spacing: 1px;
	padding: 0px 32px;
}
div.system-msg div.main div.header img{
	height: 24px;
	width: auto;
	padding-right: 16px;
}
div.system-msg div.main div.header.error{
	background-color: var(--danger-color);
	color: white;
	border-bottom: solid 1px var(--danger-light-color);
}
div.system-msg div.main div.header.info{
	background-color: var(--second-color);
	color: white;
	border-bottom: solid 1px var(--second-light-color);
}
div.system-msg div.main div.content{
	width: calc(100% - 64px);
	padding: 0px 32px;
	color: var(--primary-color);
	font-size: 18px;
	font-weight: bold;
}
div.system-msg div.main div.footer{
	width: calc(100% - 64px);
	height: 48px;
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: flex-end;
	padding: 0px 32px;
	border-top:solid 1px rgb(220, 220, 220);
}
div.system-msg div.main div.footer div.f1{
	width: 	120px;
}

/* Validacion de dos pasos */

div.validacion,div.recuperar{
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 100;
	display: flex;
	flex-direction: row;
	justify-content: center;
	align-items: center;
	background-color: rgba(0,0,0,0.5);
}
div.validacion div.main,div.recuperar div.main{
	width: 416px;
	height: 256px;
	border-radius:5px;
	box-shadow: 0px 0px 10px 0px black;
	border:solid 1px gray;
	overflow: hidden;
	background-color: white;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}
div.validacion div.main div.header,
div.recuperar div.main div.header{
	background-color: var(--primary-color);
	border:0;
	border-bottom: solid 1px var(--primary-light-color);
	color: white;
	font-size: 21px;
	font-weight: bold;
	width: calc(100% - 64px);
	height: 48px;
	display: flex;
	flex-direction: row;
	align-items: center;
	letter-spacing: 1px;
	padding: 0px 32px;
}
div.validacion div.main div.header img,
div.recuperar div.main div.header img{
	height: 24px;
	width: auto;
	padding-right: 16px;
}
/*div.validacion div.main div.header.error{
	background-color: var(--danger-color);
	color: white;
	border-bottom: solid 1px var(--danger-light-color);
}*/
div.validacion div.main div.content,
div.recuperar div.main div.content{
	width: calc(100% - 64px);
	padding: 0px 32px;
	color: var(--primary-color);
	font-size: 18px;
	font-weight: bold;
}
div.validacion div.main div.content div.codigo{
	display: flex;
	flex-direction: row;
	justify-content: space-between;
}
div.validacion div.main div.content div.codigo div{
	width: 32px;
	height: 32px;
	border-bottom: solid 2px var(--primary-color);
	padding-top: 28px;
	padding-bottom:4px;
	font-size: 	33px;
	color: var(--second-color);
	text-align: center;
	overflow: hidden;
}
div.validacion div.main div.content div.codigo div:focus-visible{
	outline: none;
}
div.validacion div.main div.footer,
div.recuperar div.main div.footer{
	width: calc(100% - 64px);
	height: 48px;
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: flex-end;
	padding: 0px 32px;
	border-top:solid 1px rgb(220, 220, 220);
	display: flex;
	flex-direction: row;
	justify-content: space-between;
}
div.validacion div.main div.footer div.f1{
	width: 	120px;
}
div.validacion div.main div.footer div.f2 a{
	color: var(--primary-color) !important;
}
div.validacion div.main div.footer div.f3,
.recuperar div.f3{
	display: flex;
	flex-direction: row !important;
	justify-content: center;
	align-items: center;
	width: 100%;
	font-weight: bold;
}


/*Validacion de formulario*/

button.disabled{
	background-color: rgb(200,200,200) !important;
	border-color: rgb(220, 220, 220) !important;
	color:black !important;
}
input.required.invalid{
	border-bottom:solid 2px var(--danger-light-color) !important;
}
input.required.valid{
	border-bottom:solid 2px var(--success-color) !important;
}


/*strength password*/
div.strength{
	width: 100%;
	margin-top: 0.5rem;
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	margin-bottom: 1rem;
	background-color: var(--background-color);
	height: 3px;
}
div.strength div{
	height: 100%;
	width: 100%;
}
div.strength div::after{
	display: flex;
    flex-direction: row;
    justify-content: flex-start;
    align-items: center;
    height: 2rem;
    font-size: 0.8rem;
}
div.strength .weak{
	background-color: var(--danger-light-color);
	width: 30%;
}
div.strength .weak::after{
	content: "weak";
    color: var(--danger-color);
}
div.strength .medium{
	background-color: var(--warning-color);
	width: 60%;
}
div.strength .medium::after{
	content: "medium";
    color: var(--warning-color);
}
div.strength .dificult{
	background-color: var(--success-color);
	width: 100%;
}
div.strength .dificult::after{
	content: "dificult";
    color: var(--success-color);
}
/**/

/** BADGE INFO **/
.badge-info.badge-titulo{
	border-radius: 50%;
	background-color: var(--primary-dark-color);
	color: white;
	font-weight: bold;
	padding: 1px 5px;
	text-align: center;
	cursor: pointer;
	position: relative;
	display: inline;
}
.badge-info.badge-descripcion{
	position: absolute;
	z-index: 500;
	top: 1rem;
	left: 1rem;
	padding: 1rem 0;
	background-color: var(--primary-dark-color);
	color: white;
	font-size: 0.8rem;
	border-radius: 5px;
	box-shadow: 0 0 3px 1px var(--primary-light-color);
	min-width: 250px;
}
.badge-info.badge-descripcion ul{
	text-align: left;
}



/***/

@keyframes efecto1{
	0%{
		opacity: 0;
	}
	100%{
		opacity: 1;
	}
}