:root {
/** Remix variables */
    --es-header-font-family: 'Sebenta', serif;
    --es-text-font-family: 'Inter', sans-serif;

    --es-color-background-base: #121418;
    --es-color-background-inverse: #ffffff;
    --es-color-background-elevation: #292C33;
    --es-color-background-floating: #3F4349;
    --es-color-background-positive: #5AD363;
    --es-color-background-negative: #FF6138;

    --es-color-text-primary: #ffffff;
    --es-color-text-secondary: rgba(255,255,255,.72157);
    --es-color-text-inverse: #0F0F0F;

    --es-color-input-default: rgba(207,214,229,.16078);
    --es-color-input-hovered: rgba(207,214,229,.23922);

    --es-color-border-primary: #FFFFFF;

    --es-color-action-primary: #FFFFFF;
    --es-color-action-primary-hovered: #E7E7E7;
    --es-color-action-primary-pressed: #CFCFCF;
    --es-color-action-primary-disabled: rgba(207,214,229,.16078);

    --es-color-action-secondary: rgba(207,214,229,.16078);
    --es-color-action-secondary-hovered: rgba(207,214,229,.23922);
    --es-color-action-secondary-pressed: rgba(207,214,229,.32157);
    --es-color-action-secondary-disabled: rgba(207,214,229,.16078);

    --es-color-icon-primary: #FFFFFF;
    --es-color-icon-secondary: rgba(255,255,255,.6);
    --es-color-icon-positive: #57F866;

    --es-color-misc-divider: rgba(207,214,229,.16078);

    /** Keycloak theme variables */
    --button-border-radius: 0;
    --button-disabled-text-color: var(--es-color-text-secondary);
}

@font-face {
    font-family: "Epidemic";
    font-weight: 500;
    src: url("../fonts/Epidemic-Medium.woff2") format("woff2");
}

@font-face {
    font-family: "Epidemic";
    font-weight: 700;
    src: url("../fonts/Epidemic-Bold.woff2") format("woff2");
}

@font-face {
    font-family: "Epidemic";
    font-weight: 600;
    src: url("../fonts/Epidemic-SemiBold.woff2") format("woff2");
}

@font-face {
    font-family: 'Sebenta';
    src: url('../fonts/Sebenta-Medium.woff2') format('woff2');
}

@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/inter/v18/UcCo3FwrK3iLTcviYwYZ8UA3.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

*, *:before, *:after {
    box-sizing: inherit;
}

html {
    box-sizing: border-box;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

html, body {
    margin: 0;
    min-height: 100%;
    background-color: var(--es-color-background-base);
    font-family: var(--es-text-font-family);
    font-size: 1rem;
    line-height: 1.66;
    color: var(--es-color-text-primary);
}

p {
    margin: 0 0 0.625rem 0;
    color: var(--es-color-text-secondary);
}

p:last-child {
    margin-bottom: 0;
}

h1, h2, h3, h4, h5 {
    line-height: 1.1;
    font-family: var(--es-header-font-family);
}

h1 {
    margin-top: 2rem;
    margin-bottom: 0.5rem;
    font-size: 3rem;
    line-height: 3.5rem;
    font-weight: 500;
    letter-spacing: -0.02em;
    color: var(--es-color-text-primary);
    text-align: left;
}

img {
    border: 0;
    vertical-align: middle;
}

a {
    color: var(--es-color-text-primary);
    margin-bottom: 0;
    text-decoration: underline;
    background-color: transparent;
}

a:focus,
a:hover {
    text-decoration: underline;
}

a:active, a:hover {
    outline: 0;
}

#input-error > a {
    color: var(--es-color-text-inverse);
}

button, input, select, textarea {
    font: inherit;
    line-height: inherit;
}

/* Prevent autofill styling to be applied */
input:-webkit-autofill,
input:-webkit-autofill:focus {
    transition: background-color 0s 600000s, color 0s 600000s;
}

ul, ol {
    margin: 0;
    padding: 0;
    list-style-type: none;
}

form {
    margin: 0;
}

.page-header {
    margin: 0;
    padding: 0;
    width: 100%;
    border: none;
    align-self: start;
}

.form-header {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 2rem;
}

.kc-form {
    margin-bottom: 1.5rem;
}

#kc-attempted-username {
    color: var(--es-color-text-primary);
}

.form-group {
    display: block;
    position: relative;
    height: 100%;
    cursor: inherit;
    background-color: var(--es-color-input-default);
    cursor: text;
    border: 1px solid transparent;
}

.form-group:focus-within {
    border-color: var(--es-color-border-primary);
}

.form-label {
    color: var(--es-color-text-secondary);
    position: absolute;
    top: 1.08333rem;
    left: 1rem;
    line-height: 1.33333;
    margin: 0px;
    transform-origin: left top;
    transition-property: max-width, transform;
    transition-duration: 0.2s;
    transition-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);
    max-width: calc(100% - 2rem);
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    cursor: inherit;
}

.form-group > input:not(:placeholder-shown) + .form-label,
.form-group > input:-webkit-autofill + .form-label {
    transform: translate3d(0px, -34.375%, 0px) scale(0.75);
}

.form-group:hover {
    background-color: var(--es-color-input-hovered);
    border-color: none;
}

.input-field {
    box-sizing: border-box;
    width: 100%;
    font-family: var(--es-text-font-family);
    font-size: 1rem;
    line-height: 1.5;
    color: var(--es-color-text-primary);
    background: transparent;
    border: none;
    padding: calc(1rem - 1px) 1rem;
    outline: none;
}

.input-field:not([value=""]), .input-field:not(:placeholder-shown) {
    padding-top: 1.5625rem;
    padding-bottom: 0.4375rem;
}

.input-field.password {
    padding-right: 3rem;
}

.remix-logo {
    height: 20px;
    margin-bottom: 0;
}

.button {
    text-decoration: none;

    box-sizing: border-box;

    position: relative;

    display: flex;
    align-items: center;
    justify-content: center;

    word-break: break-word;
    hyphens: auto;

    min-height: 3.5rem;
    min-width: 4.75rem;

    border: 0px;
    border-radius: var(--button-border-radius);

    cursor: pointer;

    font-size: 1rem;
    line-height: 1.125rem;
    font-family: var(--es-text-font-family);
    font-weight: 600;

    color: var(--button-text-color);
    background: var(--button-background-color);
}

.button::-moz-focus-inner {
    border: none;
}

.button-inner {
    padding: 0.25rem 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

.button:hover {
    background: var(--button-background-hover-color);
    text-decoration: none;
}

.button:active {
    background: var(--button-background-active-color);
}

.button:disabled {
    cursor: not-allowed;
    color: var(--button-disabled-text-color);
    background: var(--es-color-action-primary-disabled);
}

.button.fullWidth {
    width: 100%;
}

.button:focus {
    outline: 2px solid #fff;
    outline-offset: 2px;
    text-decoration: none;
}

.button.accent {
    --button-text-color: #ffffff;
    --button-background-color: #3959ff;
    --button-background-hover-color: #3552e7;
    --button-background-active-color: #314acf;
}

.button.primary {
    --button-text-color: var(--es-color-text-inverse);
    --button-background-color: var(--es-color-action-primary);
    --button-background-hover-color: var(--es-color-action-primary-hovered);
    --button-background-active-color: var(--es-color-action-primary-pressed);
}

.button.secondary {
    --button-text-color: var(--es-color-text-primary);
    --button-background-color: var(--es-color-action-secondary);
    --button-background-hover-color: var(--es-color-action-secondary-hovered);
    --button-background-active-color: var(--es-color-action-secondary-pressed);
}

.form-options {
    background-color: var(--es-color-background-elevation);
    display: flex;
    justify-content: space-around;
    align-items: flex-start;
    flex-direction: column;
    gap: 0.625rem;
}

.alert {
    position: relative;
    margin-bottom: 1.25rem;
    display: flex;
    width: 100%;
    align-items: center;
    gap: 0.625rem;
    padding: 1.25rem 0.625rem;
    border: none;
    border-radius: 1px;
    word-wrap: break-word;
    text-align: left;
    color: var(--es-color-text-inverse);
}

.alert-success,
.alert-info {
    background: var(--es-color-background-positive);
    border-color: var(--es-color-background-positive);
    padding: 1rem 1.5rem;
    gap: 1.5rem;
}

.alert-warning {
    background: var(--es-color-background-negative);
    border-color: var(--es-color-background-negative);
}

.alert-error {
    background: var(--es-color-background-negative);
    border-color: var(--es-color-background-negative);
    padding: 1rem 1.5rem;
    gap: 1.5rem;
}

.alert-info {
    background: var(--es-color-background-positive);
    border-color: var(--es-color-background-positive);
}

.error {
    color: var(--es-color-text-inverse);
}

.grecaptcha-badge { 
    visibility: hidden; 
}

@media (max-width: 480px) {
    .button {
        width: 100%;
    }
}

@media (max-width: 992px) {
    .form-options {
        align-items: center;
    }
}

@media (max-width: 1150px) {
    h1 {
        margin-bottom: 0.5rem;
        text-align: center;
    }

    .form-header {
        flex-direction: column;
        justify-content: space-between;
    }
}
