/* Authentication routes */
.login-page,
.signup-page {
    min-height: 100dvh;
}

/* Template presentation extracted from markup. */
.auth-error-visible {
    display: block;
}

/* Domain styles moved from the former monolithic stylesheet. */
/*login*/

.login .center-box {
    display: flex;
    position: relative;
    overflow: hidden;
    max-width: 750px;
    width: 750px;
    margin: 0 auto;
}

.login-form-flow .disclaimer-box {
    background-color: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    padding: 16px;
    margin-bottom: 20px;
    font-size: 14px;
    line-height: 1.4;
    color: #495057;
}

.login-form-flow .disclaimer-box__title {
    margin-bottom: 12px;
    font-weight: 600;
}

.login-form-flow .disclaimer-box__text {
    margin: 0;
}

.login-form-flow .disclaimer-box__list {
    margin: 12px 0 12px 20px;
    padding: 0;
}

.login-form-flow .disclaimer-box__item {
    margin-bottom: 8px;
}

.login-form-flow .disclaimer-box__item:last-child {
    margin-bottom: 0;
}

/* Dark mode styles for disclaimer box */
.dark-mode .login-form-flow .disclaimer-box {
    background-color: rgba(26, 27, 69, 0.81);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #fff;
}

.login-flow .center-box {
    max-width: 100%;
    width: 100%;
    flex-direction: column;
}

.login .column {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.login .divider {
    position: absolute;
    top: 30px;
    bottom: 30px;
    left: 50%;
    width: 1px;
    background-color: rgba(21, 15, 77, 0.1);
    transform: translateX(-50%);
}

.dark-mode .login .divider {
    background-color: rgba(98, 108, 177, 0.24);
}

.login .divider::before {
    content: "or";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: #fff;
    width: 36px;
    height: 36px;
    color: #150f4d;
    border: 1px solid rgba(21, 15, 77, 0.1);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
}

.dark-mode .login .divider::before {
    background: rgba(26, 27, 69, 0.81);
    color: #fff;
    border: solid 1px rgba(98, 108, 177, 0.24);
}

.login .email-row,
.login-form-flow .password-row {
    width: 100%;
    max-width: 220px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.login-flow .email-row,
.login-form-flow .password-row {
    max-width: 100%;
}

.login .email-row input,
.login-form-flow .password-row input {
    padding: 10px 10px 10px 14px;
    border-radius: 10px;
    border: solid 1px rgba(98, 108, 177, 0.24);
    width: 100%;
    box-sizing: border-box;
    opacity: 0.7;
    line-height: 1.5;
    font-size: 16px;
    color: #150f4d;
}

.dark-mode .login .email-row input,
.dark-mode .login-form-flow .password-row input,
.dark-mode .popup input {
    background-color: transparent;
    opacity: 1;
    color: #fff;
    border: solid 1px rgba(185, 185, 185, 0.7);
}

.email-row input:focus,
.password-row input:focus,
.password-row input.focus-live {
    border-color: #621fc8;
}

.login .email-row .error-text,
.login-form-flow .password-row .error-text,
.password-strength {
    color: #150f4d;
    padding-left: 3px;
    font-size: 9px;
    opacity: 1;
    display: none;
}

.low-strength-color {
    color: #ff4a23;
    font-weight: 500;
}

.medium-strength-color {
    color: #8f66ce;
    font-weight: 500;
}

.dark-mode .medium-strength-color {
    color: #b29af2;
}

.high-strength-color {
    color: #108a00;
    font-weight: 500;
}

.dark-mode .high-strength-color {
    color: #18dc44;
}

.email-row.valid-field input,
.password-row.valid-field input,
.popup input.popup-valid-input,
.password-wrapper.valid-field input {
    border-color: #18dc44;
}

.email-row.error-field input,
.password-row.error-field input,
.popup input.popup-error-input,
.password-wrapper.error-field input {
    border-color: #ff4a23;
}

.email-row.error-field .error-text,
.password-row.error-field .error-text {
    display: block;
}

.login .email-row button,
.login-form-flow button {
    padding: 10px;
    background-color: #e026c7;
    color: #fff;
    border: none;
    border-radius: 10px;
    cursor: pointer;
    width: 100%;
    box-sizing: border-box;
    font-size: 16px;
}

.login .email-container {
    position: relative;
}

.login .google-btn {
    margin-bottom: 20px;
}

.login .google-btn a {
    display: inline-block;
    line-height: 0;
}

.login .google-btn img {
    display: block;
    height: 40px;
    width: auto;
}

.login .google-btn .dark-image,
.dark-mode .login .google-btn .light-image {
    display: none;
}

.dark-mode .login .google-btn .dark-image {
    display: block;
}

.login .ms-button {
    background: #ffffff;
    color: #5e5e5e;
    border: 1px solid #8c8c8c;
    height: 41px;
    border-radius: 2px;
    font-size: 15px;
    font-family: "Segoe UI", sans-serif;
    padding: 0 20px;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
    transition: background-color 0.2s ease;
}

.login .ms-button:hover {
    background: #f3f2f1;
    border-color: #8c8c8c;
}

.login .ms-button:active {
    background: #edebe9;
    border-color: #8c8c8c;
}

.login .ms-button:focus {
    outline: 2px solid #0078d4;
    outline-offset: 2px;
}

.login .ms-button:disabled {
    background: #f3f2f1;
    border-color: #c8c6c4;
    color: #a19f9d;
    cursor: not-allowed;
}

.login .ms-logo-red {
    fill: #f25022;
}
.login .ms-logo-blue {
    fill: #00a4ef;
}
.login .ms-logo-green {
    fill: #7fba00;
}
.login .ms-logo-yellow {
    fill: #ffb900;
}

.dark-mode .login .ms-button {
    background: #2d2d2d;
    color: #ffffff;
    border: 1px solid #666666;
    transition: background-color 0.2s ease;
}

.dark-mode .login .ms-button:hover {
    background: #3d3d3d;
    border-color: #666666;
}

.dark-mode .login .ms-button:active {
    background: #484848;
    border-color: #666666;
}

.dark-mode .login .ms-button:focus {
    outline: 2px solid #60cdff;
    outline-offset: 2px;
}

.dark-mode .login .ms-button:disabled {
    background: #333333;
    border-color: #404040;
    color: #666666;
    cursor: not-allowed;
}

.dark-mode .login .ms-logo-red {
    fill: #f25022;
}
.dark-mode .login .ms-logo-blue {
    fill: #00a4ef;
}
.dark-mode .login .ms-logo-green {
    fill: #7fba00;
}
.dark-mode .login .ms-logo-yellow {
    fill: #ffb900;
}

.dark-mode .g_id_signin [role="button"] {
    background-color: #202124;
    color: #e8eaed;
    border: 1px solid #5e6272;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}

.g_id_signin [role="button"]:hover,
.g_id_signin [role="button"]:focus-visible {
    opacity: 0.92;
    box-shadow: 0 1px 5px rgba(0, 0, 0, 0.15);
}

.login-form-flow {
    max-width: 600px;
    width: 600px;
    margin: 0 auto;
}

.login-form-flow .form-input-wrapper {
    display: flex;
    justify-content: center;
    width: 100%;
    gap: 20px;
    margin-bottom: 12px;
}

.login-form-flow .forgot-password {
    appearance: none;
    background: none;
    border: 0;
    font-size: 15px;
    line-height: 28px;
    text-decoration: underline;
    color: #e026c7;
    font-weight: 500;
    margin: 0px 0 20px 0;
    padding: 0;
    float: right;
    cursor: pointer;
}

.login-flow .back-text {
    opacity: 0.702;
    font-size: 14px;
    line-height: 29px;
    color: #150f4d;
    font-weight: 300;
    text-decoration: none;
    position: absolute;
    top: 15px;
    margin-bottom: 12px;
}

.dark-mode .login-flow .back-text,
.dark-mode .login-flow .back-text svg {
    color: #fff;
    fill: #fff;
}

.login-flow .back-text svg {
    transform: rotate(180deg);
    padding-left: 3px;
}

.login-flow .password-container {
    position: relative;
}

.login-form-flow .password-row input {
    padding-right: 30px;
}

.login-flow .toggle-password {
    position: absolute;
    right: 10px;
    top: 50%;
    width: 15px;
    height: 15px;
    transform: translateY(-50%);
    background: url("/images/password-hide-8eeee3a51962bf9828aadc743c41b9a5.svg") no-repeat center;
    background-size: contain;
    border: none;
    padding: 0;
    cursor: pointer;
}

.dark-mode .login-flow .toggle-password {
    background: url("/images/password-hide-dark-44d568e6b4118fee7fa7c660d30e118f.svg") no-repeat center;
}

.login-flow .toggle-password.show {
    background: url("/images/password-show-1e1a997bf78f422998773bb54b06ad37.svg") no-repeat center;
    background-size: contain;
}

.dark-mode .login-flow .toggle-password.show {
    background: url("/images/password-show-dark-316ac3d7c6b482d974e43956f923b0a7.svg") no-repeat center;
}

/* Last sign-in method message styling */
.last-signin-message {
    margin: 16px 0 8px 0;
}

.last-signin-message p {
    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
    color: #666;
    margin: 0;
}

.last-signin-message strong {
    font-weight: 600;
    color: #150f4d;
}

.dark-mode .last-signin-message p {
    color: #aaa;
}

.dark-mode .last-signin-message strong {
    color: #fff;
}

.login .cta-compute-box {
    width: 750px;
    max-width: 750px;
}

.login-flow .cta-compute-box,
.login-flow .boxes {
    width: 72%;
    max-width: 72%;
}

.login .burst-mode .cta-content::after {
    left: calc(70% + 75px);
}

.login-flow .burst-mode .cta-content::after {
    left: calc(77% + 75px);
}

.login .cta-compute-box.burst-mode .cta-rocket-wrapper {
    padding: 12px;
}

.login .cta-compute-box.burst-mode .cta-rocket-icon {
    background-image: url(/images/saturn-9916db26a4c8691a5ae76a9fb3a0ca37.svg);
    background-size: 60px;
    width: 60px;
    height: 60px;
}

.dark-mode .login .cta-compute-box.burst-mode .cta-rocket-icon {
    background-image: url(/images/saturn-dark-8e4024cfbe94f64c1a0e19b016ef062b.svg);
}

.login-flow .cta-compute-box.cta-transmission-box .cta-rocket-icon {
    background-image: url(/images/transmission-74249e449c28df1865053b43485b6d45.svg);
}

.dark-mode .login-flow .cta-compute-box.cta-transmission-box .cta-rocket-icon {
    background-image: url(/images/transmission-dark-664c2b17facf4eb9918719bc4ab39d94.svg);
}

.login-flow .cta-transmission-box .transmission-action {
    appearance: none;
    background: none;
    border: 0;
    color: #ed14c8;
    cursor: pointer;
    font-size: 15px;
    font-weight: 500;
    line-height: 29px;
    padding: 0;
    text-decoration: underline;
    transition: font-weight 0.1s linear;
}

.login-flow .cta-transmission-box .transmission-action:hover,
.login-flow .cta-transmission-box .transmission-action:focus {
    font-weight: 700;
}

.dark-mode .login-flow .cta-transmission-box .transmission-action {
    color: #fff;
}

.login-flow .cta-compute-box.burst-mode .cta-rocket-icon {
    background-image: url(/images/orbit-855389d5e3e959d27b621c9e36039b85.svg);
}

.dark-mode .login-flow .cta-compute-box.burst-mode .cta-rocket-icon {
    background-image: url(/images/orbit-dark-mode-811451b6419aabd1ddfa7986357ba3f5.svg);
}

.signup-flow .cta-compute-box.burst-mode .cta-rocket-icon {
    background-image: url(/images/moon-rover-71a63cdf6afd0c98da8e6a4c222d7c0a.svg);
}

.dark-mode .signup-flow .cta-compute-box.burst-mode .cta-rocket-icon {
    background-image: url(/images/moon-rover-dark-fc0dce91a6f6b30adf79b9ddc1058d2d.svg);
}

.warpbox-exit-container {
    display: flex;
    justify-content: center;
    margin-top: 45px;
}

.warpbox-exit-button {
    align-items: center;
    background: var(--primary, #2a6ef1);
    border-radius: 999px;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
    color: #fff;
    display: inline-flex;
    font-size: 1rem;
    font-weight: 600;
    justify-content: center;
    padding: 12px 28px;
    text-decoration: none;
}

.warpbox-exit-button:hover,
.warpbox-exit-button:focus {
    filter: brightness(0.94);
    text-decoration: none;
}

@media (max-width: 991px) {
    .login-flow .cta-compute-box,
    .login-flow .boxes,
    .login .cta-compute-box,
    .login .boxes,
    .login .center-box {
        max-width: 100%;
        width: 100%;
    }

    .login .center-box {
        flex-direction: column;
        padding: 20px;
    }

    .login .divider {
        background-color: transparent;
        bottom: auto;
        margin: 20px 0;
        position: relative;
        top: auto;
        transform: none;
    }

    .login-form-flow .form-input-wrapper {
        flex-direction: column;
    }

    .login-form-flow {
        max-width: 80%;
        width: 80%;
    }

    .login-flow .back-text {
        position: relative;
        top: auto;
    }
}

@media (max-width: 640px) {
    .login-wrapper,
    .signup-wrapper {
        width: min(100%, 32rem);
        padding-inline: 1rem;
    }
}
