* {
  padding: 0;
  margin: 0;
  color: #1a1f36;
  box-sizing: border-box;
  word-wrap: break-word;
  font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Ubuntu,sans-serif;
}

html, body {
  height: 100%;
}

body {
  min-height: 100%;
  background-color: #ffffff;
}

h1 {
  letter-spacing: -1px;
}

a {
  color: #5469d4;
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

.login-root {
  background: #fff;
  display: flex;
  width: 100%;
  min-height: 100vh;
  overflow: hidden;
}

.loginbackground {
  min-height: 692px;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  top: 0;
  z-index: 0;
  overflow: hidden;
}

.flex-flex {
  display: flex;
}

.align-center {
  align-items: center;
}

.center-center {
  align-items: center;
  justify-content: center;
}

.box-root {
  box-sizing: border-box;
}

.flex-direction--column {
  flex-direction: column;
}

.loginbackground-gridContainer {
  display: grid;
  grid-template-columns: [start] 1fr [left-gutter] repeat(16,86.6px) [left-gutter] 1fr [end];
  grid-template-rows: [top] 1fr [top-gutter] repeat(8,64px) [bottom-gutter] 1fr [bottom];
  justify-content: center;
  margin: 0 -2%;
  transform: rotate(-12deg) skew(-12deg);
}

.box-divider--light-all-2 {
  box-shadow: inset 0 0 0 2px #e3e8ee;
}

.box-background--blue {
  background-color: #5469d4;
}

.box-background--white {
  background-color: #ffffff;
}

.box-background--blue800 {
  background-color: #212d63;
}

.box-background--gray100 {
  background-color: #e3e8ee;
}

.box-background--cyan200 {
  background-color: #7fd3ed;
}

.padding-top--64 {
  padding-top: 64px;
}

.padding-top--24 {
  padding-top: 24px;
}

.padding-top--48 {
  padding-top: 48px;
}

.padding-bottom--24 {
  padding-bottom: 24px;
}

.padding-horizontal--48 {
  padding: 48px;
}

.padding-bottom--15 {
  padding-bottom: 15px;
}

.flex-justifyContent--center {
  justify-content: center;
}

/* Contenedor formulario */

.formbg-outer {
  margin: 0 auto;
  width: 100%;
  max-width: 480px;
}

.formbg {
  margin: 0 auto;
  width: 100%;
  max-width: 448px;
  background: #ffffff;
  border-radius: 8px;
  box-shadow:
    rgba(60, 66, 87, 0.12) 0px 7px 14px 0px,
    rgba(0, 0, 0, 0.12) 0px 3px 6px 0px;
}

.formbg-inner {
  width: 100%;
}

span {
  display: block;
  font-size: 20px;
  line-height: 28px;
  color: #1a1f36;
}

.subcopy {
  font-size: 14px;
  line-height: 20px;
  color: #6b7280;
  margin-top: 6px;
}

/* Campos */

.field {
  width: 100%;
}

.field + .field {
  margin-top: 8px;
}

label {
  margin-bottom: 10px;
  font-size: 14px;
  font-weight: 600;
  display: block;
  color: #4b5563;
}

.reset-pass a,
label {
  font-size: 14px;
  font-weight: 600;
  display: block;
}

.reset-pass > a {
  text-align: right;
  margin-bottom: 10px;
}

.grid--50-50 {
  display: grid;
  grid-template-columns: 50% 50%;
  align-items: center;
  column-gap: 12px;
}

/* Inputs */

.field input,
.field textarea {
  font-size: 16px;
  line-height: 24px;
  padding: 8px 16px;
  width: 100%;
  min-height: 44px;
  border-radius: 4px;
  border: none;
  outline-color: rgb(84 105 212 / 0.5);
  background-color: #ffffff;
  box-shadow:
    rgba(0, 0, 0, 0) 0px 0px 0px 0px,
    rgba(60, 66, 87, 0.16) 0px 0px 0px 1px;
}

.field textarea {
  resize: vertical;
}

/* Botón principal (button + input submit por compatibilidad) */

input[type="submit"],
#btn-register {
  background-color: #5469d4;
  box-shadow:
    rgba(0, 0, 0, 0.12) 0px 1px 1px 0px,
    #5469d4 0px 0px 0px 1px,
    rgba(60, 66, 87, 0.08) 0px 2px 5px 0px;
  color: #fff;
  font-weight: 600;
  cursor: pointer;
  border: none;
  border-radius: 4px;
  padding: 10px 16px;
  width: 100%;
  min-height: 44px;
  transition: background-color 0.15s ease, box-shadow 0.15s ease, transform 0.05s ease;
}

input[type="submit"]:hover,
#btn-register:hover {
  background-color: #4353b3;
  box-shadow:
    rgba(60, 66, 87, 0.35) 0px 4px 10px 0px;
  transform: translateY(-1px);
}

input[type="submit"]:disabled,
#btn-register:disabled {
  opacity: 0.7;
  cursor: default;
}

/* Checkbox */

.field-checkbox input {
  width: 18px;
  height: 18px;
  margin-right: 8px;
  box-shadow: none;
  min-height: unset;
}

.field-checkbox label {
  display: flex;
  align-items: center;
  margin: 0;
  font-size: 13px;
  font-weight: 500;
}

/* Caja de mensajes del registro */

.msg-box {
  margin-bottom: 16px;
  padding: 10px 12px;
  border-radius: 6px;
  font-size: 13px;
  line-height: 1.4;
}

.msg-box.error {
  background-color: #fef2f2;
  color: #b91c1c;
  box-shadow: 0 0 0 1px #fecaca;
}

.msg-box.ok {
  background-color: #ecfdf5;
  color: #047857;
  box-shadow: 0 0 0 1px #a7f3d0;
}

.hidden {
  display: none;
}

/* Footer */

.footer-link span {
  font-size: 14px;
  text-align: center;
}

.footer-link span a {
  font-weight: 600;
}

.listing a {
  color: #697386;
  font-weight: 600;
  margin: 0 10px;
}

/* Animaciones del fondo */

.animationRightLeft {
  animation: animationRightLeft 2s ease-in-out infinite;
}

.animationLeftRight {
  animation: animationLeftRight 2s ease-in-out infinite;
}

.tans3s {
  animation: animationLeftRight 3s ease-in-out infinite;
}

.tans4s {
  animation: animationLeftRight 4s ease-in-out infinite;
}

@keyframes animationLeftRight {
  0% {
    transform: translateX(0px);
  }
  50% {
    transform: translateX(1000px);
  }
  100% {
    transform: translateX(0px);
  }
}

@keyframes animationRightLeft {
  0% {
    transform: translateX(0px);
  }
  50% {
    transform: translateX(-1000px);
  }
  100% {
    transform: translateX(0px);
  }
}

/* Responsivo */

@media (max-width: 600px) {
  .padding-horizontal--48 {
    padding: 32px 20px;
  }

  .loginbackground {
    display: none;
  }

  .box-root.padding-top--24.flex-flex.flex-direction--column {
    padding-top: 16px;
  }
}
