html,
body {
    margin: 0;
    min-height: 100%;
}

body.vsb-confirm-email-page {
    min-height: 100vh;
    background: #ffffff;
    color: #171412;
}

.vsb-confirm-page-shell {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.vsb-confirm-brand-header {
    width: min(100% - 40px, 760px);
    margin: 0 auto;

    padding:
        max(22px, env(safe-area-inset-top))
        0
        24px;

    box-sizing: border-box;

    border-bottom:
        1px solid
        rgba(23, 20, 18, 0.08);
}

.vsb-confirm-brand {
    display: flex;
    align-items: center;
    justify-content: center;

    gap: 18px;

    min-height: 66px;
}

.vsb-confirm-brand-name {
    color: #171412;

    font-size:
        clamp(22px, 4.2vw, 30px);

    font-weight: 750;
    line-height: 1.15;

    white-space: nowrap;
}

.vsb-confirm-brand-logo {
    display: block;

    width: auto;
    height: 64px;
    max-width: 96px;

    object-fit: contain;

    flex: 0 0 auto;
}

.vsb-confirm-email-main {
    flex: 1;

    width: 100%;

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

    padding:
        44px
        18px
        64px;

    box-sizing: border-box;
}

.vsb-confirm-email-card {
    width: min(100%, 560px);

    box-sizing: border-box;

    padding:
        clamp(30px, 5vw, 44px);

    background: #ffffff;

    border:
        1px solid
        rgba(23, 20, 18, 0.10);

    border-radius: 20px;

    box-shadow:
        0 20px 54px
        rgba(23, 20, 18, 0.08);

    text-align: center;
}

.vsb-confirm-email-card h1 {
    margin:
        0
        0
        22px;

    color: #171412;

    font-size:
        clamp(30px, 6vw, 42px);

    font-weight: 750;
    line-height: 1.2;
}

.vsb-confirm-email-address {
    margin:
        0
        0
        28px;

    padding:
        14px
        16px;

    border:
        1px solid
        rgba(23, 20, 18, 0.10);

    border-radius: 12px;

    background: #faf9f7;

    color: #171412;

    font-size:
        clamp(16px, 4vw, 20px);

    font-weight: 650;
    line-height: 1.4;

    overflow-wrap: anywhere;
}

.vsb-confirm-email-alert {
    margin:
        0
        0
        22px;

    padding:
        14px
        16px;

    border:
        1px solid
        rgba(228, 0, 43, 0.20);

    border-radius: 12px;

    background:
        rgba(228, 0, 43, 0.06);

    color: #9e1b2c;

    font-size: 15px;
    font-weight: 650;
    line-height: 1.5;
}

.vsb-confirm-email-alert[hidden] {
    display: none !important;
}

.vsb-confirm-email-button {
    width: 100%;
    min-height: 56px;

    padding:
        14px
        22px;

    border:
        1px solid
        #e4002b;

    border-radius: 14px;

    background:
        #e4002b;

    color:
        #ffffff;

    font: inherit;

    font-size:
        17px;

    font-weight:
        750;

    cursor:
        pointer;

    transition:
        background 160ms ease,
        border-color 160ms ease,
        opacity 160ms ease,
        transform 160ms ease;
}

.vsb-confirm-email-button:hover {
    background: #c60026;
    border-color: #c60026;
}

.vsb-confirm-email-button:active {
    transform: translateY(1px);
}

.vsb-confirm-email-button:disabled {
    cursor: wait;
    opacity: 0.58;
}

[dir="rtl"]
.vsb-confirm-email-card,
[dir="rtl"]
.vsb-confirm-email-button,
[dir="rtl"]
.vsb-confirm-email-alert {
    font-family:
        "SF Arabic",
        "Geeza Pro",
        "Noto Sans Arabic",
        "Segoe UI",
        Arial,
        sans-serif;
}

@media (max-width: 680px) {

    .vsb-confirm-brand-header {
        width:
            calc(100% - 30px);

        padding-bottom:
            20px;
    }

    .vsb-confirm-brand {
        gap:
            14px;

        min-height:
            58px;
    }

    .vsb-confirm-brand-logo {
        height:
            52px;

        max-width:
            78px;
    }

    .vsb-confirm-brand-name {
        font-size:
            clamp(20px, 5.5vw, 25px);
    }

    .vsb-confirm-email-main {
        padding:
            34px
            16px
            54px;
    }

    .vsb-confirm-email-card {
        padding:
            28px
            20px;

        border-radius:
            16px;
    }

    .vsb-confirm-email-card h1 {
        font-size:
            clamp(29px, 9vw, 38px);
    }

    .vsb-confirm-email-button {
        min-height:
            54px;
    }
}

@media (prefers-reduced-motion: reduce) {

    .vsb-confirm-email-button {
        transition: none;
    }
}

/* EMAIL_CONFIRMATION_MOTION_V2 */
@keyframes vsb-confirm-email-spin {
    to {
        transform: rotate(360deg);
    }
}

@keyframes vsb-confirm-email-working-pulse {
    0%,
    100% {
        box-shadow:
            0 0 0 0
            rgba(228, 0, 43, 0.12);
    }

    50% {
        box-shadow:
            0 0 0 8px
            rgba(228, 0, 43, 0.08);
    }
}

.vsb-confirm-email-button.is-loading {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;

    opacity: 0.78;

    animation:
        vsb-confirm-email-working-pulse
        1.25s
        ease-in-out
        infinite;
}

.vsb-confirm-email-button.is-loading::before {
    content: "";

    width: 18px;
    height: 18px;

    flex:
        0 0 18px;

    border:
        2px solid
        rgba(255, 255, 255, 0.42);

    border-top-color:
        #ffffff;

    border-radius:
        50%;

    animation:
        vsb-confirm-email-spin
        0.72s
        linear
        infinite;
}

@media (prefers-reduced-motion: reduce) {
    .vsb-confirm-email-button.is-loading {
        animation:
            none;
    }

    .vsb-confirm-email-button.is-loading::before {
        animation-duration:
            1.4s;
    }
}
