/* Import the Open Sans font family */
/* cyrillic-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/opensans/v34/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4taVIGxA.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/opensans/v34/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4kaVIGxA.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/opensans/v34/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4saVIGxA.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/opensans/v34/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4jaVIGxA.woff2) format('woff2');
  unicode-range: U+0370-03FF;
}
/* hebrew */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/opensans/v34/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4iaVIGxA.woff2) format('woff2');
  unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
/* vietnamese */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/opensans/v34/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4vaVIGxA.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/opensans/v34/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4uaVIGxA.woff2) format('woff2');
  unicode-range: U+0100-02AF, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/opensans/v34/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4gaVI.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


/* Import the Montserrat font family */
/* cyrillic-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Hw0aXpsog.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Hw9aXpsog.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Hw2aXpsog.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Hw3aXpsog.woff2) format('woff2');
  unicode-range: U+0100-02AF, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Hw5aXo.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


/* Use the Open Sans font family for body text */
body {
  padding:0;
  margin:0;
  font-family: 'Open Sans', sans-serif;
  background-image:asset-url("images/authBg.jpg");
  background-color:#002147;
  background-size:cover;
  background-attachment:fixed;
  background-position:center center;
  background-repeat:no-repeat;
}

body:before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to bottom right, #001023, #001732, #002b5e);
  opacity: 1;
  z-index: 99;
  animation: fade-out 1s ease-out 0.42s forwards;
}

/* Use the Montserrat font family for headings */
h1, h2, h3 {
  font-family: 'Montserrat', sans-serif;
}

.container {
  position:relative;
  z-index: 9999;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh; /* Set container height to viewport height */
}

.centered {
  /* Optional styles to make the element look centered */
  max-width: 80%;
  
  /* Set initial width for smaller screens */
  width: 80%;
  
  /* Center the element horizontally */
  margin: auto;

  /* Set top margin to 28% */
  margin-top: 14vh;
  opacity:0;
  transform:translateY(48px);
  animation: fade-in 1s cubic-bezier(0.42, 0, 0.58, 1) 0.5s forwards, rise-up 0.5s cubic-bezier(0.42, 0, 0.58, 1) 0.5s forwards;
}

.centered .inner {  
  background: #fff;
  border-radius: 10px;
  box-sizing: border-box;
  box-shadow: 8px 8px 0px #ff5b00, 14px 14px 0px #ffffff;
  padding: 20px;
}

.centered .additional {
  padding-top:16px;
  color:#eaeaea;
  text-align:center;
  font-size:0.85em;
}

.centered .additional a {
  color:#ff5b00;;
  text-decoration:none;
}
.centered .additional a:hover {
  color:lighten(#ff5b00,18%);
}

.centered.logout .header h1 {
  display:block;
  border:2px solid green;
  padding:10px;
  color:green;
  background-color:rgb(230, 255, 230);
}

/* Media query for screens larger than 576px (small devices) */
@media (min-width: 576px) {
  .centered {
    /* Increase width for small devices */
    width: 90%;
  }
}

/* Media query for screens larger than 768px (tablets) */
@media (min-width: 768px) {
  .centered {
    /* Increase width for tablets */
    width: 420px;
  }
}

/* Media query for screens larger than 992px (medium desktops) */
@media (min-width: 992px) {
  .centered {
    /* Increase width for medium desktops */
    width: 420px;
  }
  .centered.logout {
    /* Increase width for medium desktops */
    width: 640px;
  }
}

/* Media query for screens larger than 1200px (large desktops) */
@media (min-width: 1200px) {
  .centered {
    /* Increase width for large desktops */
    width: 420px;
  }
  .centered.logout {
    /* Increase width for medium desktops */
    width: 640px;
  }
}

@keyframes fade-out {
  from {
    opacity: 0.8;
  }
  to {
    opacity: 0;
  }
}

@keyframes fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes rise-up {
  from {
    transform: translateY(48px);
  }
  to {
    transform: translateY(0);
  }
}

/* FORM ELEMENTS */
.header h1 {
  font-size:1.5em;
  text-align:center;
  margin-top:8px;
}

.form {
  display: flex;
  flex-direction: column;
  align-items: center;
  width:100%;
}

.form form {
  width:100%;
}

.fields {
  display:flex;
  width:100%;
}

.fields > .field {
  margin-top:0;
}
.fields > .field:last-child {
  padding-left:10px;
}

.field {
  display: flex;
  flex-direction: column;
  width: 100%;
}

.form form > .field:not(:first-child){
  margin-top:14px;
}
.form form > .field:last-child{
  margin-top:36px;
}

.directions p.signup {
  font-size:0.9em;
  margin-bottom:2rem;
}

label {
  font-size: 0.8em;
  margin-bottom: 2px;
  color:#000;
  transition: color 0.2s ease-in-out; /* Add a smooth transition effect */
}

.field:focus-within label {
  color: #ff5a00; /* Change the label color when the field is focused */
}

input:not([type="submit"]) {
  border: 1px solid #ddd;
  border-radius: 7px;
  padding: 7px;
  transition: border-color 0.2s ease-in-out; /* Add a smooth transition effect */
  outline: none;
}

input:not([type="submit"]):focus {
  border-color: #ff5a00;
}

input[type="submit"] {
  background-color: #ff5a00;
  color: #fff;
  padding: 10px 20px;
  border: none;
  border-radius: 5px;
  cursor: pointer;
  font-weight:bold;
  font-size:1em;
}

input[type="submit"]:hover,
a.button:hover {
  background-color: lighten(#ff5a00, 20%);
}

a.button { 
  display:block;
  background-color: #ff5a00;
  color: #fff;
  padding: 10px 20px;
  border: none;
  border-radius: 5px;
  cursor: pointer;
  font-weight:bold;
  font-size:1em;
  text-decoration:none;
  margin-top:20px;
}

.alert.alert-danger {
  border:1px solid #d3272f;
  background-color: #ffd8d8;
  color:rgb(100, 14, 18);
  font-size:11px;
  padding:7px;
}

.alert.alert-success {
  border:1px solid #27d335;
  background-color: #d8ffde;
  color:rgb(14, 100, 25);
  font-size:11px;
  padding:7px;
}

/* CONFIRMATION */
.confirmation_fields {
  display: flex;
  justify-content: space-between;
}

.confirmation_fields input[type="text"] {
  font-size: 24px;
  text-align: center;
  width: calc(100% / 6 - 10px);
  max-width: 50px;
  border: 1px solid #ccc;
  border-radius: 5px;
  padding: 10px;
  box-sizing: border-box;
}

.confirmation_fields input[type="text"]:focus {
  border-color: #ff5b00;
  outline: none;
}


#password-input.pass:focus {
  border-color:green;
}
#password-label.pass {
  color:green;
}
#password-label.pass::before {
  content: '✓ ';
}

#confirm-password-input.pass:focus {
  border-color:green;
}
#confirm-password-label.pass {
  color:green;
}
#confirm-password-label.pass::before {
  content: '✓ ';
}

#passwordMeter {
  height:auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  opacity: 1;
}

#passwordMeter.pass {
  height:0px;
  overflow:hidden;
}

#passwordMeter > div {
  position: relative;
  padding-left: 20px;
  margin-bottom: 8px;
  font-size: 14px;
  font-weight: bold;
  color: #333;
}

#passwordMeter > div.pass {
  color: green;
}

@media only screen and (max-width: 480px) and (orientation: portrait) {
  .centered {
    margin-top: 4vh;
  }
  .fields {
    flex-direction:column;
  }
  .fields > .field:last-child {
    padding-left:0px;
  }
}