.layout-spacer {
    width: 2rem;
    flex: 0 0 2rem;
    display: none;
    position: relative;
}

.layout-spacer:after {
    position: absolute;
    content: "";
    left: calc(50% - 0.05rem);
    top: 0;
    bottom: 0;
    width: .1rem;
    background-color: var(--kzvn-green-color-shade-20pct);
}

/* breakpoints */

@media (min-width: 1280px) {

    .layout-spacer.desktop {
        display: flex;
    }

    .kzvn-recovery-content.desktop {
        flex: 1 1 100%;
        max-height: 100%;
        overflow-y: auto;
        overflow-x: clip;
    }


    .kzvn-recovery-content.tablet,
    .kzvn-recovery-content.mobile {
        display: none;
    }

    /* container for recovery */
    .kzvn-login-container:has(.kzvn-recovery-content) {
        padding: 3rem 1rem;
    }

    /* content for recovery page */
    .kzvn-login-container-content:has(.kzvn-recovery-content) {
        width: min(80rem, 100%);
        height: min(60rem, 100%);
    }
}

@media (min-width: 810px) and (max-width: 1279px) {

    .kzvn-recovery-content.desktop,
    .kzvn-recovery-content.mobile {
        display: none;
    }

    /* container for recovery */
    .kzvn-login-container:has(.kzvn-recovery-content.tablet) {
        padding: 2rem;
        flex: 1;
        height: unset;
    }

    /* content for recovery page */
    .kzvn-login-container-content:has(.kzvn-recovery-content) {
        flex: 1;
        height: 100%;
    }

}

@media (max-width: 809px) {
    .kzvn-recovery-content.tablet,
    .kzvn-recovery-content.desktop {
        display: none;
    }

    /* container for recovery */
    .kzvn-login-container:has(.kzvn-recovery-content) {
        padding: 0;
        flex: 1;
    }

    /* content for recovery page */
    .kzvn-login-container-content:has(.kzvn-recovery-content) {
        padding: 1rem 1rem 2rem;
        flex: 1;
        overflow: auto;
    }
}

.kzvn-login-container-content:has(.kzvn-recovery-content) .kzvn-alert {
    max-width: unset;
}

.kzvn-recovery-content {
    flex: 1;
    display: flex;
    flex-direction: row;
    align-items: stretch;
}


.kzvn-recovery-content.tablet,
.kzvn-recovery-content.mobile {
    flex-direction: column;
}

@supports not (gap: 1rem) {
    .kzvn-recovery-content.tablet > *,
    .kzvn-recovery-content.mobile > * {
        margin-bottom: 1rem;
    }

    .kzvn-recovery-content.tablet > * :last-child,
    .kzvn-recovery-content.mobile > *:last-child {
        margin-bottom: 0;
    }
}

@supports (gap: 1rem) {
    .kzvn-recovery-content.tablet,
    .kzvn-recovery-content.mobile {
        gap: 1rem;
    }
}

.kzvn-recovery-section {
    background-color: var(--white-color);
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    gap: 1.5rem;
}

@supports not (gap: 2rem) {
    .kzvn-recovery-section > * {
        margin-bottom: 1.5rem;
    }

    .kzvn-recovery-section > *:last-child {
        margin-bottom: 0;
    }
}

@supports (gap: 2rem) {
    .kzvn-recovery-section {
        gap: 1.5rem;
    }
}


.kzvn-recovery-section.desktop:first-child {
    flex: 0 1 50%
}

.kzvn-recovery-section.desktop:last-child {
    flex: 0 1 50%
}

.kzvn-recovery-section.tablet:last-child {
    border-top: var(--border-basic);
}


.kzvn-recovery-section.tablet {
    padding: 1rem 0;
}

.kzvn-recovery-section.mobile {
    padding: 0;
}


.kzvn-recovery-section-left-confirm-container {
    flex: 1;
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

@supports not (gap: 1rem) {
    .kzvn-recovery-section-left-confirm-container > * {
        margin-bottom: 0.5rem;
    }

    .kzvn-recovery-section-left-confirm-container > *:last-child {
        margin-bottom: 0;
    }
}

@supports (gap: 1rem) {
    .kzvn-recovery-section-left-confirm-container {
        gap: 0.5rem;
    }
}

.kzvn-recovery-section-header {
    max-width: 80%;
    display: flex;
    flex-direction: column;
}

@supports not (gap: 1.5rem) {
    .kzvn-recovery-section-header > * {
        margin-bottom: 1.5rem;
    }

    .kzvn-recovery-section-header > *:last-child {
        margin-bottom: 0;
    }
}

@supports (gap: 1.5rem) {
    .kzvn-recovery-section-header {
        gap: 1.5rem;
    }
}

.kzvn-recovery-section-header * {
    text-align: center;
}

.kzvn-recovery-section-left-confirm-form {
    display: flex;
    flex-direction: column;
}

@supports not (gap: 1rem) {
    .kzvn-recovery-section-left-confirm-form > * {
        margin-bottom: 1rem;
    }

    .kzvn-recovery-section-left-confirm-form > *:last-child {
        margin-bottom: 0;
    }
}

@supports (gap: 1rem) {
    .kzvn-recovery-section-left-confirm-form {
        gap: 1rem;
    }
}


.kzvn-recovery-images-wrapper {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.kzvn-recovery-images-wrapper span {
    width: 6rem;
    height: 6rem;
    border-radius: 4rem;
    padding: 1rem;
    background-color: var(--kzvn-blue-color-shade-200);
}

.kzvn-recovery-text {
    line-height: 1.5rem;
}

.kzvn-recovery-codes-list-container {
    width: 100%;
    border: 1rem solid var(--white-color);
    border-image: repeating-linear-gradient(
            -45deg, transparent, transparent 5px,
            var(--contrast-color) 6px,
            var(--contrast-color) 10px) 25;
}

.kzvn-recovery-codes-list {
    padding: 1rem;
    background-color: var(--white-color);
    border: var(--border-2px);
    display: flex;
    flex-wrap: wrap;
    opacity: 0.6;
}

/* Fallback for browsers that don't support gap properties */
@supports not ((column-gap: 10%) and (row-gap: 1rem)) {
    .kzvn-recovery-codes-list > * {
        margin-right: 5%;
        margin-bottom: 1rem;
    }

    /* Remove right margin from items at the end of a row */
    .kzvn-recovery-codes-list > *:nth-child(2n) {
        margin-right: 0;
    }

    /* Remove bottom margin from items in the last row */
    .kzvn-recovery-codes-list > *:nth-last-child(-n+2) {
        margin-bottom: 0;
    }
}

/* Styles for browsers that support gap properties */
@supports (column-gap: 10%) and (row-gap: 1rem) {
    .kzvn-recovery-codes-list {
        column-gap: 5%;
        row-gap: 1rem;
    }
}

.kzvn-recovery-codes-list-item {
    min-width: 45%;
    display: flex;
}

@supports not (gap: 0.5rem) {
    .kzvn-recovery-codes-list-item > * {
        margin-right: 0.5rem;
    }

    .kzvn-recovery-codes-list-item > *:last-child {
        margin-right: 0;
    }
}

@supports (gap: 0.5rem) {
    .kzvn-recovery-codes-list-item {
        gap: 0.5rem;
    }
}


.pf-c-alert.pf-m-warning {
    --pf-c-alert--BorderTopColor: unset;
}

.kc-recovery-codes-actions {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    width: 100%;
}

@media (max-width: 810px) {
    .kc-recovery-codes-actions {
        justify-content: flex-start;
        align-items: flex-start;
        flex-wrap: wrap;
    }
}

@media (max-width: 500px) {
    .kc-recovery-codes-actions * {
        flex: 1 0 100%;
    }
}

@supports not (gap: 0.5rem) {
    .kc-recovery-codes-actions > * {
        margin-right: 0.5rem;
    }

    .kc-recovery-codes-actions > *:last-child {
        margin-right: 0;
    }
}

@supports (gap: 0.5rem) {
    .kc-recovery-codes-actions {
        gap: 0.5rem;
    }
}

.kzvn-recovery-section.mobile .kc-recovery-codes-actions {
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 1rem;
}

.kzvn-recovery-section.mobile .kc-recovery-codes-actions {
    flex-wrap: wrap;
    justify-content: flex-start;
}

@supports not (gap: 1rem) {
    .kzvn-recovery-section.mobile .kc-recovery-codes-actions > * {
        margin-right: 1rem;
    }

    .kzvn-recovery-section.mobile .kc-recovery-codes-actions > *:last-child {
        margin-right: 0;
    }
}

@supports (gap: 1rem) {
    .kzvn-recovery-section.mobile .kc-recovery-codes-actions {
        gap: 1rem;
    }
}


.kc-recovery-codes-warning {
    color: var(--alert-warning-text-color);
    background-color: var(--alert-warning-bkg-color);
    padding: 0.7rem 1rem;
    border-radius: 0.3rem;
    width: 100%;
}

.kc-recovery-codes-warning .pf-c-alert__title {
    font-weight: bold;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 0.5rem;
}


.recovery-msg-second-paragraph-padding {
    padding-bottom: 2rem;
}

/* Alternative using DPPX */
@media (min-resolution: 1.09dppx) and (max-resolution: 1.49dppx) {

    .kzvn-recovery-section.desktop {
        gap: 0.4rem
    }

    .kzvn-recovery-images-wrapper span {
        width: 4rem;
        height: 4rem;
        border-radius: 2rem;
        padding: 0.5rem;
    }

    .kzvn-login-container-content-header-h2 {
        font-size: 1.1rem;
    }

    .recovery-msg-second-paragraph-padding {
        padding-bottom: 1rem;
    }

    .kzvn-recovery-codes-list {
        padding: 0.4rem;
        row-gap: 0.4rem;
    }

    .kc-recovery-codes-warning {
        padding: 0.4rem 1rem;
    }

    .outline-btn {
        font-size: 12px;
    }
}

.recovery-codes-confirmation-check:disabled{
    border-color: var(--contrast-color);
    cursor: default;
    transition-delay: 0.2s;
}

.outline-btn{
    display: inline;
    text-align: center;
}

.center{
    align-self: center;
}