:root{
    --color-main-contrast: white;
    --color-secondary: #008EBB;
    --color-dark: #101010;
    --color-dark-contrast: white;
    --color-secondary-contrast: white;
    --color-secondary-shade: #00709C;
    --color-secondary-tint: #56A3BB;
    --color-bg-disabled: #D0D5DD;
    --color-text-disabled: #98A2B3;
    --fs-xs: 13px;
    --fs-sm: 14px;
    --fs-md: 15px;
    --fs-lg: 16px;
    --fs-xl: 18px;
    --fs-huge: 32px;
}
/* Fuentes */
@font-face{
    font-family: Inter-Light;
    src: url("/vista/fonts/Inter-Light.ttf");
}
@font-face{
    font-family: Inter-Bold;
    src: url("/vista/fonts/Inter-Bold.ttf");
}
* {
    box-sizing: border-box;
    font-family: Inter-Light;
}
a, a:hover, a:focus {
    text-decoration: none;
    outline: none;
}
ul{
    list-style: none;
    margin: 0;
    padding: 0;
}
.fs-xs{
    font-size: var(--fs-xs);
}
.fs-sm{
    font-size: var(--fs-sm);
}
.fs-md{
    font-size: var(--fs-md);
}
.fs-lg{
    font-size: var(--fs-lg);
}
.fs-xl{
    font-size: var(--fs-xl);
}
.fs-huge{
    font-size: var(--fs-huge);
}
.inter-bold{
    font-family: Inter-Bold;
}
.inter-light{
    font-family: Inter-Light;
}
.text-secondary{
    color: var(--color-secondary);
}
.text-gray{
    color: #939698;
}
.text-red{
    color: #D92A2A;
}
.text-black, .text-black:hover, .text-black:active{
    color: black;
}
/* Fin Fuentes */
/* Colores */
.bg-color-main{
    background: var(--color-main);
    color: var(--color-main-contrast);
}
.bg-color-dark{
    background: var(--color-dark);
    color: var(--color-dark-contrast);
}
.bg-white{
    background: white;
}
/* Fin colores */

.cursor-pointer{
    cursor: pointer;
}

.logo-plataforma{
    max-width: 360px;
    max-height: 90px;
}

/* Botones */

/* Botón default state */
.button-base{
    outline: none;
    border: 0;
    font-size: var(--fs-lg);
    padding: 0 10px;
}
.button-primary{
    background: var(--color-main-tint);
    border-radius: 26px;
    width: 142px;
    height: 40px;
    line-height: 40px;
    color: var(--color-main-contrast);
}
.button-secondary{
    background: var(--color-secondary-tint);
    border-radius: 26px;
    width: 142px;
    height: 40px;
    line-height: 40px;
    color: var(--color-secondary-contrast);
}
.button-default{
    color: var(--color-secondary);
    background: transparent;
}
.button-secondary-outline{
    width: 142px;
    height: 40px;
    line-height: 40px;
    border-radius: 4px;
    border: 1px solid var(--color-secondary);
    background: var(--color-secondary-contrast);
    color: var(--color-secondary);
}
.button-default > ion-icon {
    font-size: 21px;
    vertical-align: middle;
}

/* Botón hold state */
.button-primary:hover{
    background: var(--color-main);
    color: var(--color-main-contrast);
}
.button-secondary:hover{
    background: var(--color-secondary);
    color: var(--color-secondary-contrast);
}
.button-default:hover{
    color: var(--color-secondary-tint);
    text-decoration: underline;
    text-underline-offset: 4px;
}
.button-secondary-outline:hover{
    background: var(--color-secondary);
    color: var(--color-secondary-contrast);
}

/* Botón click state */
.button-primary:active{
    background: var(--color-main-shade);
}
.button-secondary:active{
    background: var(--color-secondary-shade);
}
.button-secondary-outline:active{
    background: var(--color-secondary-shade);
}

/* Botón disabled state */
.button-primary:disabled{
    background: var(--color-bg-disabled);
    color: var(--color-text-disabled);
}

/* Botones tamaños */
.button-sm{
    font-size: var(--fs-xs);
    height: 30px;
    line-height: 30px;
}

/* No limita el ancho del botón */
.button-block{
    width: unset;
    display: inline-block;
}
/* Fin Botones */

/* CSS TABS / PESTAÑAS */
a.tab-main {
    color: var(--color-main-contrast);
}
.tabs-main{
    overflow-y: hidden;
}
.tab-main{
    transform: translateY(5px);
    border-radius: 10px 10px 0 0;
}
.tab-main > span {
    opacity: 0.8;
}
.tab-login{
    margin-right: -15px;
}
.tab-autoregistro{
    margin-left: -15px;
}
.tab-main.active{
    z-index: 1;
    transform: translateY(0);
}
.tab-main:not(.active):hover > span{
    opacity: 0.9;
}
.tab-main.active > span, .tab-main:not(.active):active > span {
    opacity: 1;
}

/* Forms */
input[type="text"] ~ ion-icon.text-red[slot="end"],
input[type="email"] ~ ion-icon.text-red[slot="end"],
input[type="password"] ~ ion-icon.text-red[slot="end"]{
    display: none;
}

input[type="text"].touched:not(:focus):invalid,
input[type="password"].touched:not(:focus):invalid,
input[type="email"].touched:not(:focus):invalid,
select.touched:not(:focus):invalid{
    border: 1px solid #D92A2A;
}

input[type="text"].touched:not(:focus):invalid ~  ion-icon.text-red[slot="end"],
input[type="password"].touched:not(:focus):invalid ~ ion-icon.text-red[slot="end"],
input[type="email"].touched:not(:focus):invalid ~ ion-icon.text-red[slot="end"]{
    display: inline-block;
}
.form-field{
    display: inline-block;
    position: relative;
}
.form-field > ion-icon{
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    font-size: 21px;
    line-height: 0;
}
.form-field > ion-icon[slot="end"]{
    right: 12px;
}
.form-field > ion-icon[slot="start"]{
    left: 12px;
}
.form-field-file{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    position: relative;
    width: 135px;
    height: 85px;
    border-radius: 8px;
    border: 1px solid #B9BEC0;
    color: var(--color-secondary)
}
.form-field-file input[type="file"]{
    position: absolute;
    bottom: 0;
    width: 100%;
    height: 0;
    border-bottom: 1px solid transparent;
    outline: none;
}
.form-field-file:not(.success) > ion-icon:nth-of-type(2),
.form-field-file.success > ion-icon:first-of-type,
.form-field-file:not(.error) > ion-icon:nth-of-type(3),
.form-field-file.error > ion-icon:first-of-type{
    display: none;
}
.form-field-file.success{
    background: var(--color-secondary);
    color: var(--color-secondary-contrast);
}
.form-field-file.on-drop{
    border: 1px dashed #24AEDA;
    background: #E2F5FC;
    color: var(--color-secondary)
}
.form-field-file.error {
    border: 2px solid #D92A2A;
    color: #D92A2A;
}

.form-field input:disabled,
.form-field select:disabled{
    color: var(--color-text-disabled);
    border: 1px solid var(--color-bg-disabled);
    background: var(--color-bg-disabled);
    opacity: 1;
}

.form-field input,
.form-field select{
    width: 100%;
    height: 40px;
    background: #FFFFFF;
    text-align: center;
    border: 1px solid #B9BEC0;
    border-radius: 4px;
    font-size: var(--fs-lg);
    appearance: none;
}

.form-field input:hover,
.form-field select:hover{
    background: #F8FAFC;
    border: 1px solid #EAECF0;
}
.form-field input:focus-visible, .form-field select:focus-visible{
    background: #FFFFFF;
    outline: none;
    border: 1px solid var(--color-secondary);
}

#tabAutoregistro .form-field input:not(#inputAutoregistroEnviarVerificacion),
#tabAutoregistro .form-field select,
#formCambioContrasena .form-field input{
    width: 310px;
}

#tabLogin .form-field input:not(#inputOperacionMatematica), #inputAutoregistroEnviarVerificacion{
    width: 230px;
}
/* Fin Forms */

/* CSS Elementos del DOM */
.header{
    height: 150px;
    border-top: 3px solid rgba(255,255,255,0.3);
    border-bottom: 4px solid rgba(255, 255, 255, 0.3);
    display: flex;
    flex-direction: column;
    justify-content: center;
}
#inputOperacionMatematica {
    width: 90px;
}
.jlottie{
    height: 160px;
}
.form-divider{
    background: #F4F4F4;
    padding: 1px;
}
.box-max-width{
    width: 360px;
    box-shadow: 3px 6px 10px rgb(0 0 0 / 20%);
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
}
.bottom-radius {
    border-bottom-right-radius: 10px;
    border-bottom-left-radius: 10px;
}
.top-radius {
    border-top-right-radius: 10px;
    border-top-left-radius: 10px;
}
.w-100{
    width: 100% !important;
}
#contenedorSeguridadContrasena{
    width: 250px;
    flex-wrap: wrap;
}
#contenedorSeguridadContrasena p{
    width: 100%;
    height: 4px;
    background: #D9D9D9;
    border-radius: 6px;
}
#contenedorSeguridadContrasena span{
    width: calc(100% / 3);
    text-align: center;
    font-size: var(--fs-xs);
    opacity: .6;
    color: var(--color-secondary);
}
#contenedorSeguridadContrasena[data-seguridad="debil"] p{
    background: #D92A2A;
}
#contenedorSeguridadContrasena[data-seguridad="medio"] p{
    background: #f1c644;
}
#contenedorSeguridadContrasena[data-seguridad="fuerte"] p{
    background: #8BC53F;
}
#contenedorSeguridadContrasena[data-seguridad="debil"] span:first-of-type,
#contenedorSeguridadContrasena[data-seguridad="medio"] span:nth-of-type(2),
#contenedorSeguridadContrasena[data-seguridad="fuerte"] span:last-of-type{
    opacity: 1;
}
#contenedorVideoIntroduccion{
    width: 100%;
    padding-top: 56.25%;
    height: 0;
    position: relative;
}
#contenedorVideoIntroduccion > iframe{
    position: absolute;
    top: 0;
    left:0;
    width: 100%;
    height: 100%;
    border-radius: 10px;
}
.icono-recomendaciones {
    font-size: 45px;
    width: 60px;
}
#tabAutoregistroRecomendaciones .header ion-icon{
    position: absolute;
    top: 0;
    left: 20%;
    font-size: 70px;
}