/* latin-ext */
@font-face {
    font-family: "Lato";
    font-style: normal;
    font-weight: 300;
    src: local("Lato Light"), local("Lato-Light"), url(https://fonts.gstatic.com/s/lato/v14/S6u9w4BMUTPHh7USSwaPGR_p.woff2) format("woff2");
    unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
    font-family: "Lato";
    font-style: normal;
    font-weight: 300;
    src: local("Lato Light"), local("Lato-Light"), url(https://fonts.gstatic.com/s/lato/v14/S6u9w4BMUTPHh7USSwiPGQ.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;
}
/* latin-ext */
@font-face {
    font-family: "Lato";
    font-style: normal;
    font-weight: 400;
    src: local("Lato Regular"), local("Lato-Regular"), url(https://fonts.gstatic.com/s/lato/v14/S6uyw4BMUTPHjxAwXjeu.woff2) format("woff2");
    unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
    font-family: "Lato";
    font-style: normal;
    font-weight: 400;
    src: local("Lato Regular"), local("Lato-Regular"), url(https://fonts.gstatic.com/s/lato/v14/S6uyw4BMUTPHjx4wXg.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;
}
/* latin-ext */
@font-face {
    font-family: "Lato";
    font-style: normal;
    font-weight: 900;
    src: local("Lato Black"), local("Lato-Black"), url(https://fonts.gstatic.com/s/lato/v14/S6u9w4BMUTPHh50XSwaPGR_p.woff2) format("woff2");
    unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
    font-family: "Lato";
    font-style: normal;
    font-weight: 900;
    src: local("Lato Black"), local("Lato-Black"), url(https://fonts.gstatic.com/s/lato/v14/S6u9w4BMUTPHh50XSwiPGQ.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;
}

html {
    -webkit-text-size-adjust: none; /* Prevent font scaling in landscape */
}

html, body {
    height: 100%;
    min-height: 100%;
}

body {
    margin: 0;
    font-family: "Lato", sans-serif;
    font-size: 16px;
    background-color: #fff;
    color: #292a24;
    display: grid;
    grid-template:
        "navbar" auto
        "main" 1fr
        "footer" auto / 1fr;
    grid-gap: 0;
    height: 100%;
    min-height: 100%;
}

body > .top-navbar {
    background-color: #292a24;
    color: #fff;
    padding: 1.5rem;
    grid-area: navbar;
}

body > .top-navbar > nav .navbar-brand > a > img {
    height: 1rem;
}

body > .footer {
    background-color: #292a24;
    color: #fff;
    grid-area: footer;
    display: flex;
}

@media (max-width: 600px) {
    body > .footer {
        font-size: 14px;
    }
}

body > .footer > footer {
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
    padding: 1rem;
    background-color: #292a24;
    padding: 1rem;
    color: #d6d6d6;
    text-align: center;
    line-height: 24px;
}

body > .footer > footer a {
    color: #FFEC00;
    text-decoration: none;
}

body > main {
    padding: 1rem 0;
    grid-area: main;
    background: white;
}

textarea:focus, input:focus {
    outline: none;
}

body > .dialog-container {
    display: none;
    position: fixed;
}

h3 {
    font-size: 2rem;
    font-weight: 500;
}

@media (max-width: 600px) {
    h3 {
        font-size: 1.5rem;
        font-weight: 500;
    }
}

.align-center {
    text-align: center;
}

/* Forms */

form.boxed {
    text-align: center;
    width: 100%;
    max-width: 25rem;
    background-color: #EDEDED;
    border-radius: 3px;
    border: 1px solid lightgrey;
    padding: 1rem 3rem;
    border-bottom: 1px solid #747474;
    border-radius: 0.25rem;
    margin: 2rem auto;
    display: flex;
    flex-direction: column;
    -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
    -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
}

@media (max-width: 600px) {
    form.boxed {
        text-align: center;
        width: 100%;
        max-width: -webkit-fill-available;
        max-width: -moz-available;
        background-color: transparent;
        border-radius: 0;
        border: none;
        padding: 1rem;
        border-bottom: none;
        border-radius: 0;
        margin: 0;
        display: flex;
        flex-direction: column;
        -webkit-box-shadow: none;
        -moz-box-shadow: none;
        box-shadow: none;
    }
}

form.boxed .form-field {
    margin: 0.5em 0;
}

form.boxed .form-field label {
    width: 100%;
    display: flex;
    flex-direction: column;
    text-align: left;
}

form.boxed .form-field .field-input {
    flex-grow: 1;
    justify-content: flex-start;
    display: flex;
    flex-direction: row;
    align-items: center;
    border-radius: 0.25rem;
}

form.boxed .form-field .field-input.password-field {
    align-items: stretch;
}

form.boxed .form-field .field-input.password-field input {
    border-bottom-left-radius: 0.25rem;
    border-top-left-radius: 0.25rem;
    border-bottom-right-radius: 0;
    border-top-right-radius: 0;
}

form.boxed .form-field .field-input input {
    min-width: 0;
    border-bottom-right-radius: 0;
    border-top-right-radius: 0;
    display: block;
    width: 100%;
    border: none;
    border-bottom: 1px solid #747474;
    border-radius: 0.25rem;
    padding: 0.6rem;
}

.form-field .field-input.password-field > .show-password-eye {
    font-size: 21px;
    padding: 0.2rem;
    color: darkgray;
    background-color: white;
    cursor: pointer;
    border-bottom-right-radius: 0.25rem;
    border-top-right-radius: 0.25rem;
    border: none;
    padding-left: 0.6rem;
    border-bottom: 1px solid #747474;
    padding-right: 0.6rem;
    display: flex;
}

form.boxed .action-bar {
    margin: 1rem 0;
}

form.boxed .action-bar button {
    cursor: pointer;
    font-weight: 700;
    text-transform: uppercase;
    line-height: 1.2em;
    fill: #FFEC00;
    color: #FFEC00;
    background-color: #292a24;
    border-style: solid;
    border-width: 1px;
    border-radius: 5px 5px 5px 5px;
    padding: 0.5rem;
    width: -webkit-fill-available;
    width: -moz-available;
}

form.boxed .action-bar button:hover {
    fill: #292a24;
    color: #292a24;
    background-color: #FFEC00;
}

/* Login */

.login-form .secondary-action {
    font-size: 14px;
}

.login-form .secondary-action a {
    color: #10518E;
    text-decoration: underline;
    cursor: pointer;
}

.login-form .secondary-action a:hover {
    color: #125699;
    text-decoration: none;
}

.login-form #logo {
    margin: 1rem auto 1.5rem;
    max-width: 20rem;
}

@media (max-width: 340px) {
    .login-form #logo {
        margin: 1rem auto;
        max-width: 15rem;
    }
}

.show-password-eye img {
    width: 20px;
}

input[type="password"]::-ms-reveal {
    display: none;
}

input[type="password"]::-ms-clear {
    display: none;
}

/* Account recovery */

[data-page="recoverypreview"] {
    align-self: center;
}

[data-page=recoverypreview] .preview-container {
    text-align: center;
    padding: 2rem;
}

[data-page=recoverypreview] .preview-container .buttons-container {
    display: flex;
    gap: 2rem;
    align-items: stretch;
    justify-content: center;
    max-width: 50rem;
    margin: 0 auto;
}

@media (max-width: 600px) {
    [data-page=recoverypreview] .preview-container .buttons-container {
        display: flex;
        gap: 2rem;
        align-items: center;
        justify-content: center;
        max-width: 50rem;
        margin: 0 auto;
        flex-direction: column;
    }
}

[data-page=recoverypreview] .preview-container .buttons-container .button {
    cursor: pointer;
    font-weight: 700;
    text-transform: uppercase;
    line-height: 1.2em;
    fill: #FFEC00;
    color: #FFEC00;
    background-color: #292a24;
    border-style: solid;
    border-width: 1px;
    border-radius: 5px 5px 5px 5px;
    padding: 1rem;
    width: -webkit-fill-available;
    width: -moz-available;
    text-decoration: none;
}

[data-page=recoverypreview] .preview-container .buttons-container .button:hover {
    fill: #292a24;
    color: #292a24;
    background-color: #FFEC00;
    text-decoration: none;
}

[data-page=passwordrecovery] form {
    text-align: center;
    width: 100%;
    max-width: 25rem;
    background-color: #EDEDED;
    border-radius: 3px;
    border: 1px solid lightgrey;
    padding: 1rem 3rem;
    border-bottom: 1px solid #747474;
    border-radius: 0.25rem;
    margin: 2rem auto;
    display: flex;
    flex-direction: column;
    -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
    -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
}

@media (max-width: 600px) {
    [data-page=passwordrecovery] form {
        text-align: center;
        width: 100%;
        max-width: -webkit-fill-available;
        max-width: -moz-available;
        background-color: transparent;
        border-radius: 0;
        border: none;
        padding: 1rem;
        border-bottom: none;
        border-radius: 0;
        margin: 0;
        display: flex;
        flex-direction: column;
        -webkit-box-shadow: none;
        -moz-box-shadow: none;
        box-shadow: none;
    }
}

[data-page=passwordrecovery] form .form-field {
    margin: 0.5em 0;
}

/* Account activation*/

[data-page=activate] h2 {
    margin: 0.5em;
    font-size: 1.5em;
    font-weight: normal;
}

@media (min-width: 426px) {
    [data-page=activate] h2 {
        font-size: 2.8em;
        font-weight: normal;
    }
}

[data-page=activate] > p {
    padding: 1em;
}

[data-page=activate] h2 {
    margin: 0.5em;
    font-size: 1.5em;
}

@media (min-width: 426px) {
    [data-page=activate] h2 {
        font-size: 2.8em;
    }
}

[data-page=activate] > p {
    padding: 1em;
}

/* MFA */

[data-page=mfa] {
    padding: 1rem;
}

[data-page=mfa] .mfa-instructions {
    max-width: 60rem;
    margin: 0 auto;
}

[data-page=mfa] .mfa-instructions h3 {
    text-align: center;
}

[data-page=mfa] .mfa-instructions img {
    width: 10rem;
    margin: 0 auto;
    display: block;
}

[data-page=mfa] .mfa-instructions ul {
    padding: 1rem;
}

/* Messages */
.message {
    background-color: #EDEDED;
    color: #292a24;
    border: 1px solid #CDCDCD;
    border-radius: 3px;
    padding: 1rem;
    margin: 1rem 2rem;
}

.message.error {
    text-align: center;
    background-color: hsl(0deg, 90%, 90%);
    border-color: hsl(0deg, 90%, 50%);
    color: darkred;
}


.message.error h3 {
    margin: 0 0 1.5rem;
}

.message.error a {
    display: inline-block;
}

.message.error a:visited, .message.error a:active {
    color: #FFEC00;
}

.message.error a:hover {
    color: #292a24;
}

.message.error .button {
    cursor: pointer;
    text-transform: uppercase;
    line-height: 1.2em;
    fill: #FFEC00;
    color: #FFEC00;
    background-color: #292a24;
    border-style: solid;
    border-width: 1px;
    border-radius: 5px 5px 5px 5px;
    padding: 0.5rem;
    text-decoration: none;
    font-weight: 600;
    margin-top: 2rem;
    font-size: 14px;
}

.message.error .button:hover {
    fill: #292a24;
    color: #292a24;
    background-color: #FFEC00;
    text-decoration: none;
}

.message.success {
    background-color: hsl(120deg, 90%, 95%);
    border-color: hsl(120deg, 90%, 50%);
}

.message p {
    margin: 0;
    text-align: center;
}

.information-panel {
    margin: 1rem auto 0 auto;
    max-width: 40rem;
    padding: 0 1.5rem 0 1.5rem;
    text-align: justify;
}

#cookieConsent {
    background-color: #323232;
    color: white;
    text-align: center;
    width: 80%;
    margin: auto;
    border: 1px solid white;
    border-radius: 10px;
    padding: 1rem;
    position: absolute !important;
    z-index: 10;
    left: 0;
    right: 0;
    margin-top: 0.5rem;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=90)";
    filter: alpha(opacity=90);
    -moz-opacity: 0.9;
    -khtml-opacity: 0.9;
    opacity: 0.9;
}

#cookieConsent p {
    margin: 0;
}

#cookieConsent a {
    color: dodgerblue !important;
}

#cookieConsent button {
    cursor: pointer;
    font-weight: 700;
    text-transform: uppercase;
    line-height: 1.2em;
    border-style: solid;
    fill: #292a24;
    color: #292a24;
    background-color: #FFEC00;
    border-width: 1px;
    border-radius: 5px 5px 5px 5px;
    padding: 0.5rem;
    margin-top: 1rem;
}

.browser-message {
    text-align: center;
    margin-bottom: 3rem;
}

.browser-message > .browsers-list {
    margin-top: 2rem;
}

.browser-message > .browsers-list > a > img {
    padding: 1rem;
}

/* Miscellaneous */

.link {
    color: #10518E;
    text-decoration: none;
    cursor: pointer;
}

.link:hover {
    color: #125699;
    text-decoration: none;
}