:root {
  --alerta: rgb(223, 135, 135);
}

/* effect */
.campo_invalido,
input.campo_invalido {
  color: tomato;
  border-bottom: 3px solid tomato;
}

input.campo_invalido:-webkit-autofill,
input.campo_invalido:-webkit-autofill:hover,
input.campo_invalido:-webkit-autofill:focus,
input.campo_invalido:-webkit-autofill:active {
  box-shadow: 0 0 0px 1000px grey inset;
  -webkit-box-shadow: 0 0 0px 1000px grey inset;
  -webkit-text-stroke-color: rgba(0, 0, 0, .0);
  -webkit-text-fill-color: tomato;
}

.campo_valido,
input.campo_valido {
  color: #000;
  border-bottom: 3px solid rgba(79, 206, 93, 1);
}

input.campo_valido:-webkit-autofill,
input.campo_valido:-webkit-autofill:hover,
input.campo_valido:-webkit-autofill:focus,
input.campo_valido:-webkit-autofill:active {
  box-shadow: 0 0 0px 1000px grey inset;
  -webkit-box-shadow: 0 0 0px 1000px grey inset;
  -webkit-text-stroke-color: rgba(0, 0, 0, .0);
  -webkit-text-fill-color: rgba(0, 0, 0, 1);
}

.mensaje_aprobado {
  color: rgba(79, 206, 93, 1);
  border-color: rgba(79, 206, 93, 1);
}

.mensaje_denegado {
  color: tomato;
  border-color: tomato;
}

.mensaje_atencion {
  color: rgb(255, 174, 0);
  border-color: rgb(255, 174, 0);
}

.rotate_cero {
  transform: rotate(0deg);
  transition: all .3s ease;
}

.rotate_cuarenta_cinco {
  transform: rotate(45deg);
  transition: all .3s ease;
}

.rotate_noventa {
  transform: rotate(90deg);
  transition: all .3s ease;
}

.rotate_ciento_ochenta {
  transform: rotate(180deg);
  transition: all .3s ease;
}

.rotate_menos_ciento_ochenta {
  transform: rotate(-180deg);
  transition: all .3s ease;
}

.rotate_trecientos_secenta {
  transform: rotate(360deg);
  transition: all .3s ease;
}

.active_flex {
  display: flex;
}

.no_flex {
  display: flex;
}

.no_scroll {
  overflow: hidden;
  -webkit-overflow-scrolling: auto;
}

.no_select {
  pointer-events: none;
  user-select: none;
  box-sizing: border-box;
}

.flip_h {
  transform: scaleX(-1);
}

.hide {
  display: none;
}

.hide_top {
  transform: translateY(-100vh);
  transition: all .5s ease;
}

.hide_left {
  transform: translateX(-100vh);
  transition: all .5s ease;
}

.hide_right {
  transform: translateX(100vh);
  transition: all .5s ease;
}

.hide_bottom {
  transform: translateY(100vh);
  transition: all .5s ease;
}

.opacity_cero {
  opacity: 0;
  transition: all .3s ease;
}

.opacity_punto_cinco {
  opacity: .5;
  transition: all .3s ease;
}

.opacity_uno {
  opacity: 1;
  transition: all .3s ease;
}

.color_tomato path,
.color_tomato svg {
  fill: tomato;
  opacity: .8;
}

.z_atras {
  z-index: -1;
}

.filter {
  -webkit-backdrop-filter: grayscale() blur(10px);
  /* Safari 9+ */
  backdrop-filter: blur(8px);
  /* Chrome and Opera */
  background-color: rgba(255, 255, 255, 0.3);
}

.filter_invert {
  filter: invert(0%);
}

.filter_borrar {
  filter: invert(94%) sepia(91%) saturate(694%) hue-rotate(308deg) brightness(96%) contrast(81%);
}

.move_up {
  position: absolute;
  animation-name: move_up;
  animation-duration: 2s;
  animation-iteration-count: infinite;
}

@keyframes move_up {
  0% {
    transform: translateY(0px);
    opacity: 1;
  }

  100% {
    transform: translateY(-20px);
    opacity: 0;
  }
}

.jump_slow {
  position: absolute;
  animation-name: jump_slow;
  animation-duration: 2s;
  animation-iteration-count: infinite;
}

@keyframes jump_slow {
  0% {
    transform: translateY(0px);
    opacity: 1;
  }

  100% {
    transform: translateY(20px);
    opacity: 0;
  }
}

.jump_fast {
  position: absolute;
  animation-name: jump_fast;
  animation-duration: .7s;
  animation-iteration-count: infinite;
}

@keyframes jump_fast {
  0% {
    transform: translateY(20px);
    opacity: 1;
  }

  100% {
    transform: translateY(-20px);
    opacity: 0;
  }
}

.shake_h {
  animation-name: shake_h;
  animation-duration: .1s;
  animation-iteration-count: 2;
  transition: all .1s ease;
}

@keyframes shake_h {
  0% {
    transform: translateX(8px);
  }

  25% {
    transform: translateX(-8px);
  }

  50% {
    transform: translateX(5px);
  }

  75% {
    transform: translateX(-5px);
  }

  100% {
    transform: translateX(0px);
  }
}

.capa_multi_idioma {
  z-index: 99999;
  display: flex;
  position: absolute;
  top: 0;
  right: 0;
  width: 10px;
  height: 10px;
  background-color: red;
}

.expancion {
  animation-name: expancion;
  animation-duration: .5s;
  animation-iteration-count: 1;
  animation-fill-mode: forwards;
  transition: all .1s ease;
}

@keyframes expancion {
  0% {

    position: absolute;
    top: 0;
    right: 0;
    width: 1px;
    height: 1px;
    background-color: transparent;
    border-radius: 50% 0 50% 50%;
  }

  90% {
    width: 1000px;
    height: 1000px;
    background-color: red;
  }

  95% {
    width: 1000px;
    height: 1000px;
    background-color: red;
  }

  100% {
    width: 0px;
    height: 0px;
    background-color: red;
  }
}

.salir_de_abajo img {
  animation-name: salir_de_abajo;
  animation-duration: .2s;
  animation-iteration-count: 1;
  transition: all .1s ease;
}

@keyframes salir_de_abajo {
  0% {
    transform: translateY(300px);
    filter: blur(100px) brightness(1.75);
  }

  100% {
    transform: translateY(0px);
    filter: blur(0) brightness(1);
  }
}

.shake_v {
  animation-name: shake_v;
  animation-duration: .1s;
  animation-iteration-count: 2;
  transition: all .1s ease;
}

@keyframes shake_v {
  0% {
    transform: translateY(8px);
  }

  25% {
    transform: translateY(-8px);
  }

  50% {
    transform: translateY(5px);
  }

  75% {
    transform: translateY(-5px);
  }

  100% {
    transform: translateY(0px);
  }
}

.vibrar,
.vibrar svg {
  animation-name: vibrar;
  animation-duration: 4s;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}

@keyframes vibrar {
  00.0% {
    transform: rotate(0deg);
  }

  50.0% {
    transform: rotate(0deg);
  }

  50.1% {
    transform: scale(1.3)
  }

  /* =========== shake1 ===========*/
  51.0% {
    transform: rotate(20deg);
  }

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

  /* =========== shake2 ===========*/
  53.0% {
    transform: rotate(20deg);
  }

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

  /* =========== shake3 ===========*/
  55.0% {
    transform: rotate(20deg);
  }

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

  /* ===========  ===========*/
  57.0% {
    transform: rotate(0deg);
  }

  58.0% {
    transform: scale(1)
  }

  100% {
    transform: rotate(0deg);
  }
}

.active svg {
  fill: var(--active);
  transform: translateX(5px);
  transition: all .3s ease;
  animation-name: active_menu;
  animation-duration: .8s;
  animation-timing-function: ease;
  animation-iteration-count: infinite;
}

@keyframes active_menu {
  0% {
    opacity: 0;
    transform: translateX(-3px);
  }

  50% {
    opacity: 1;
    transform: translateX(3px);
  }

  100% {
    opacity: 0;
    transform: translateX(-3px);
  }
}

.active img {
  filter: invert(100%);
  transform: translateX(5px);
  transition: all .3s ease;
  animation-name: active_menu_img;
  animation-duration: .8s;
  animation-timing-function: ease;
  animation-iteration-count: infinite;
  filter: var(--img_active);
}

@keyframes active_menu_img {
  0% {
    opacity: 0;
    transform: translateX(-3px);
  }

  50% {
    opacity: 1;
    transform: translateX(3px);
  }

  100% {
    opacity: 0;
    transform: translateX(-3px);
  }
}

.blink {
  fill: rgba(79, 206, 93, 1);
  transform: translateX(5px);
  transition: all .3s ease;
  animation-name: blink_active;
  animation-duration: .8s;
  animation-timing-function: ease;
  animation-iteration-count: infinite;
}

@keyframes blink_active {
  0% {
    opacity: 1;
    transform: scale(.9);
  }

  50% {
    opacity: 1;
    transform: scale(1);
    filter: invert(50%);
  }

  100% {
    opacity: 1;
    transform: scale(.9);
  }
}

.flip_light {
  animation-name: flip_light;
  animation-duration: 1.3s;
  animation-iteration-count: infinite;
  transition: all .1s ease;
}

@keyframes flip_light {
  0% {
    transform: rotateY(0deg);
    filter: brightness(100%);
  }

  1% {
    transform: rotateY(0deg);
    filter: brightness(200%);
  }

  2% {
    transform: rotateY(0deg);
    filter: brightness(100%);
  }

  50% {
    transform: rotateY(180deg);
    filter: brightness(100%);
  }

  51% {
    transform: rotateY(180deg);
    filter: brightness(200%);
  }

  52% {
    transform: rotateY(180deg);
    filter: brightness(100%);
  }

  100% {
    transform: rotateY(360deg);
    filter: brightness(100%);
  }
}

.flip_slow {
  animation-name: flip_slow;
  animation-duration: 10s;
  animation-iteration-count: infinite;
  transition: all 1s ease-in-out;
}

@keyframes flip_slow {
  0% {
    transform: rotateY(0deg);
    filter: brightness(100%);
  }

  5% {
    transform: rotateY(180deg);
    filter: brightness(10%);
  }

  10% {
    transform: rotateY(360deg);
    filter: brightness(100%);
  }

  100% {
    transform: rotateY(360deg);
    filter: brightness(100%);
  }
}

.look_me {
  transition: all .3s ease;
  animation-name: look_me;
  animation-duration: .2s;
  animation-timing-function: ease;
  animation-iteration-count: 2;
}

@keyframes look_me {
  0% {
    color: 0;
    background: rgba(255, 255, 255, .5);
  }

  50% {
    color: rgba(79, 206, 93, 1);
    background: rgba(0, 0, 0, .5);
  }

  100% {
    color: 0;
    background: rgba(255, 255, 255, .5);
  }
}

.look_me_text {
  transition: all .3s ease;
  animation-name: look_me_text;
  animation-duration: .2s;
  animation-timing-function: ease;
  animation-iteration-count: 5;
}

@keyframes look_me_text {
  0% {
    color: 0;
  }

  50% {
    color: rgba(79, 206, 93, 1);
  }

  100% {
    color: 0;
  }
}

.hey {
  transition: all .3s ease;
  animation-name: hey;
  animation-duration: .2s;
  animation-timing-function: ease;
  animation-iteration-count: 2;
}

@keyframes hey {
  0% {
    opacity: 0;
  }

  50% {
    opacity: 1;
  }

  100% {
    opacity: 0;
  }
}

.entrada_suave {
  opacity: 1;
  animation-name: entrada_suave;
  animation-duration: .3s;
  animation-timing-function: ease-in;
  animation-iteration-count: 1;
}

@keyframes entrada_suave {
  0% {
    opacity: 0;
    background-color: transparent;
  }

  100% {
    opacity: 1;
    background-color: transparent
  }
}

.parpadeo {
  opacity: 1;
  animation-name: parpadeo;
  animation-duration: .2s;
  animation-timing-function: ease;
  animation-iteration-count: infinite;
}

@keyframes parpadeo {
  0% {
    opacity: 0;
    background-color: transparent;
  }

  100% {
    opacity: 1;
    background-color: transparent
  }
}

.parpadeo_v2 {
  opacity: 1;
  animation-name: parpadeo_v2;
  animation-duration: .9s;
  animation-timing-function: ease;
  animation-iteration-count: infinite;
}

@keyframes parpadeo_v2 {
  0% {
    opacity: 1;
  }

  25% {
    opacity: 1;
  }

  50% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

.invoque_light {
  animation-name: invoque_light;
  animation-duration: .5s;
  animation-timing-function: ease-out;
  animation-fill-mode: forwards;
}

@keyframes invoque_light {
  0% {
    visibility: hidden;
    opacity: 0;
  }

  100% {
    visibility: visible;
    opacity: 1;
  }
}

.invoque {
  color: transparent;
  animation-name: invoque;
  animation-duration: .5s;
  animation-timing-function: ease-out;
  animation-fill-mode: forwards;
}

@keyframes invoque {
  0% {
    color: transparent;
    opacity: 0;
  }

  100% {
    color: grey;
    opacity: 1;
  }
}

.ghost {
  color: transparent;
  animation-name: ghost;
  animation-duration: .5s;
  animation-timing-function: ease-out;
  animation-fill-mode: forwards;
}

@keyframes ghost {
  0% {
    color: transparent;
    opacity: 1;
  }

  100% {
    color: grey;
    opacity: 0;
  }
}

.ocultar_placeholder::-webkit-input-placeholder {
  opacity: 0;
}

.mostrar_placeholder::-webkit-input-placeholder {
  opacity: 1;
}

.zoom {
  position: absolute;
  animation-name: zoom;
  animation-duration: 1s;
  animation-iteration-count: 1;
}

@keyframes zoom {
  0% {
    transform: scale(1);
    opacity: 1;
    text-align: right;
  }

  100% {
    transform: scale(1.5);
    opacity: 0;
    text-align: right;
  }
}

.push_me:before {
  display: none;
  position: absolute;
  z-index: -1;
  content: '';
  width: 0px;
  height: 0px;
  border-radius: 50%;
  opacity: 0;
  transform: translate(2px);
  background-color: var(--destacado);
  animation-name: push_me;
  animation-duration: 1.8s;
  animation-iteration-count: infinite;
  user-select: none;
}

@keyframes push_me {
  0% {
    width: 10px;
    height: 10px;
    opacity: .7;
  }

  100% {
    width: 50px;
    height: 50px;
    opacity: 0;
  }

}

/* Ripple effect */
.ripple {
  background-position: center;
  transition: background 0.8s;
}

.ripple:hover {
  background: rgba(0, 0, 0, .1) radial-gradient(circle, transparent 1%, rgba(0, 0, 0, .1) 1%) center/15000%;
}

.ripple:active {
  background-size: 100%;
  transition: background 0s;
}

.sombra_animada {
  animation-name: sombra_animada;
  animation-duration: 1s;
  animation-timing-function: ease-out;
  animation-iteration-count: infinite;
}

@keyframes sombra_animada {
  0% {
    box-shadow: 0 0 50px rgba(79, 206, 93, .8);
  }

  50% {
    box-shadow: 0 0 0 rgba(79, 206, 93, 0);
  }

  100% {
    box-shadow: 0 0 50px rgba(79, 206, 93, .8);
  }
}

.full_ancho {
  width: 100%;
}

.popap img {
  width: 100%;
  height: auto;
  border-radius: .5em;
}

.popap {
  z-index: 5;
  position: fixed;
  top: 0;
  left: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  width: 100vw;
  height: 100vh;
  padding: 0;
  margin: 0;
  color: #fff;
  background-color: rgba(0, 0, 0, .8);
  box-sizing: border-box;
  transition: all .5s ease-in-out;
}

.popap_box {
  opacity: 1;
}

.popap_small_group {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  width: 250px;
}

img.popup_small {
  width: 250px;
  height: 250px;
  object-position: center center;
  overflow: hidden;
  background-color: #f5f5f5;
}

.popup_small_name {
  display: flex;
  width: 100%;
  margin: .5em 0 .3em 0;
  font-size: 1.5rem;
  line-height: 1.1em;
  text-transform: capitalize;
}

.popup_small_pais {
  height: 30px;
  margin-right: .4em;
}

.popup_small_pais img {
  height: 100%;
  border-radius: 5px;
}

.popup_small_descripcion {
  margin-top: .5em;
  font-size: 1rem;
  padding-right: 1.2em;
  padding-bottom: 3em;
  max-height: calc(150px);
  overflow: hidden;
  overflow-y: scroll;
}

.imagen_de_referencia {
  position: absolute;
  width: 100%;
  padding: 2em 1em;
  font-size: .8rem;
  color: var(--destacado);
  background-color: var(--base);
  line-height: 1.1em;
  text-align: center;
  bottom: 0px;
  border-radius: 1em 1em 0 0;
  box-sizing: border-box;
}

.mensaje_exceso {
  font-size: .8rem;
}

img.idmenu_popup_small {
  position: absolute;
  bottom: calc(250px - 42px);
  left: calc(250px - 0px);
  width: 40px;
  height: 40px;
  padding: .3em;
  background-color: #000;
}

input.red_focus {
  color: rgb(247, 148, 148);
  animation-name: red_focus;
  animation-duration: 1s;
  animation-timing-function: ease-out;
  animation-iteration-count: infinite;
  transition: all .3s ease;
}

.tachado {
  text-decoration: line-through;
  color: var(--alerta);
}

.bloqueado {
  cursor: not-allowed;
}

.hora_bloqueada {
  opacity: .5;
  pointer-events: none;
  user-select: none;
}

.input_blocked {
  opacity: .5;
  pointer-events: none;
  user-select: none;
}

.sesion_terminada {
  color: #EA4C89;
  background-color: #FFE4E4;
}


button.inabilitado,
.inabilitado {
  color: var(--alerta);
  border: 1px solid var(--alerta);
}

.no_usable {
  opacity: 0;
  user-select: none;
  pointer-events: none;
}

@keyframes red_focus {
  0% {
    box-shadow: 0 0 0px rgb(247, 148, 148);
  }

  50% {
    box-shadow: 0 0 5px rgb(247, 148, 148);
  }

  100% {
    box-shadow: 0 0 0px rgb(247, 148, 148);
  }
}

.b1 {
  border: 1px solid turquoise;
  box-sizing: border-box;
}

.b2 {
  border: 1px solid magenta;
  box-sizing: border-box;
}

.b3 {
  border: 1px solid rgba(74, 255, 74);
  box-sizing: border-box;
}

.b4 {
  border: 1px solid rgb(255, 255, 255);
  box-sizing: border-box;
}

.b5 {
  border: 1px solid gold;
  box-sizing: border-box;
}

.b6 {
  border: 1px solid red;
  box-sizing: border-box;
}

.b7 {
  border: 1px solid blue;
  box-sizing: border-box;
}

.prueba {
  border: 1px solid turquoise;
  box-sizing: border-box;
  filter: var(--img_active);
}

.no_se_ve{
  visibility: hidden;
  border:1px solid turquoise; box-sizing: border-box;
}

.modulo_modal{
  z-index: 99;
  position: fixed; top: 0; left: 0;
  display: flex; justify-content: center; align-items: center;
  width: 100vw;
  height: 100vh;
  cursor: pointer;
}





.modal_box{
  display: flex; justify-content: center; align-items: center;
  width: min-content; height: min-content;
  max-width: 100%;
  max-height: 100%;
  color: #fff;
  background-color: red;
  animation: animacion-modal 0.5s ease forwards;
  
}
@keyframes animacion-modal {
  0% {
    display: flex; justify-content: center; align-items: center;
    width: 0;
    height: 0;
    background-color: rgba(0, 0, 0, 0);
    opacity: 0;
  }
  100% {
    display: flex; justify-content: center; align-items: center;
    background-color: rgba(0, 0, 0, .9);
    opacity: 1;
    width: 100%;
    height: 100%;
  }
}