@layer login-content, login-form;

@layer login-content {
    .login-page__content {
        display: grid;
        align-content: start;
        width: 100%;
        height: 100%;
        padding:
            clamp(3rem, 7vh, 5rem) clamp(1.5rem, 4vw, 4rem);
        overflow-y: auto;
        overscroll-behavior: contain;
    }

    .login-page__header {
        margin-bottom: clamp(1rem, 1vh, 1rem);
    }

    .login-page__eyebrow {
        display: flex;
        align-items: center;
        gap: 1rem;
        margin: 0 0 1.5rem;
        color: rgb(255 255 255 / 60%);
        font-family: var(--site-font-mono);
        font-size: 0.85rem;
        line-height: 1.4;
        letter-spacing: 0.4em;
        text-transform: uppercase;
    }

    .login-page__eyebrow::after {
        flex: 1;
        height: 1px;
        background: rgb(255 255 255 / 20%);
        content: "";
    }

    .login-page__introduction {
        max-width: 100ch;
        margin: 0 0 0.25rem;
        color: rgb(255 255 255 / 82%);
        font-size: clamp(1rem, 1.3vw, 1.125rem);
        font-weight: 400;
        line-height: 1.75;
    }
}

@layer login-form {
    .login-page__form {
        display: grid;
        width: min(100%, 35rem);
        gap: 1.25rem;
    }

    .login-page__field {
        display: grid;
        gap: 0.5rem;
    }

    .login-page__field label {
        color: rgb(255 255 255 / 72%);
        font-family: var(--site-font-mono);
        font-size: 0.75rem;
        letter-spacing: 0.14em;
        text-transform: uppercase;
    }

    .login-page__field input {
        width: 100%;
        min-height: 3.25rem;
        padding: 0.75rem 1rem;
        border: 1px solid rgb(255 255 255 / 20%);
        border-radius: 0.625rem;
        outline: 0;
        background: rgb(255 255 255 / 6%);
        color: var(--site-foreground);
        caret-color: var(--site-accent);
        transition:
            border-color 180ms ease,
            background-color 180ms ease,
            box-shadow 180ms ease;
    }

    .login-page__field input:focus-visible {
        border-color: var(--site-accent);
        background: rgb(255 255 255 / 9%);
        box-shadow: 0 0 0 0.1875rem rgb(170 243 230 / 14%);
    }

    .login-page__form-errors,
    .login-page__field-errors {
        color: #ffb4b4;
        font-size: 0.875rem;
        line-height: 1.5;
    }

    .login-page__form-errors {
        padding: 0.875rem 1rem;
        border: 1px solid rgb(255 180 180 / 32%);
        border-radius: 0.625rem;
        background: rgb(90 0 0 / 22%);
    }

    .login-page__form-errors ul,
    .login-page__field-errors ul {
        margin: 0;
        padding: 0;
        list-style: none;
    }

    .login-page__actions {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.75rem;
        margin-top: 0.5rem;
    }

    .login-page__submit,
    .login-page__sso {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: fit-content;
        min-height: 2.75rem;
        padding: 0.625rem 1rem;
        border: 1px solid rgb(170 243 230 / 45%);
        border-radius: 999px;
        background: rgb(0 0 0 / 62%);
        color: var(--site-foreground);
        font-family: inherit;
        font-size: 0.6875rem;
        font-weight: 600;
        letter-spacing: 0.14em;
        text-decoration: none;
        text-transform: uppercase;
        cursor: pointer;
        backdrop-filter: blur(0.75rem);
        transition:
            border-color 180ms ease,
            background-color 180ms ease,
            color 180ms ease;
    }

    .login-page__sso:disabled {
        cursor: not-allowed;
    }

    .login-page__submit:focus-visible,
    .login-page__submit:active,
    .login-page__sso:not(:disabled):focus-visible,
    .login-page__sso:not(:disabled):active {
        border-color: var(--site-accent);
        background: var(--site-accent);
        color: #07110f;
    }

    .login-page__submit:focus-visible,
    .login-page__sso:not(:disabled):focus-visible {
        outline: 0.125rem solid var(--site-accent);
        outline-offset: 0.25rem;
    }

    @media (hover: hover) {

        .login-page__submit:hover,
        .login-page__sso:not(:disabled):hover {
            border-color: var(--site-accent);
            background: var(--site-accent);
            color: #07110f;
        }
    }
}

@media (max-width: 48rem) {
    .login-page__content {
        align-content: start;
        padding: 3rem 1.25rem;
    }

    .login-page__header {
        margin-bottom: 2rem;
    }
}