html,
body {
    width: 100% !important;
    min-height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* 在JS完成前隐藏原页面，避免刷新闪现。 */
html.fy-login-v3-loading body {
    opacity: 0 !important;
    background: #eef6fb !important;
}

html.fy-login-v3-loading.fy-login-v3-failed body {
    opacity: 1 !important;
}

/* 新登录页成功以后显示。 */
html.fy-login-v3-ready body {
    opacity: 1 !important;
    margin: 0 !important;
    background: #eef6fb !important;
    overflow-x: hidden !important;
    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        "PingFang SC",
        "Microsoft YaHei",
        Arial,
        sans-serif !important;
}

html.fy-login-v3-ready body
> *:not(#fy-login-v3-app):not(script):not(style):not(link) {
    display: none !important;
}

#fy-login-v3-app {
    display: grid !important;
    box-sizing: border-box !important;
    width: 100% !important;
    min-height: 100vh !important;
    grid-template-columns:
        minmax(420px, 0.92fr)
        minmax(560px, 1.08fr) !important;
    background: #eef6fb !important;
}

/* 左侧 */

.fy-login-v3-hero {
    position: relative !important;
    display: flex !important;
    box-sizing: border-box !important;
    min-width: 0 !important;
    min-height: 100vh !important;
    padding: 64px clamp(48px, 5vw, 94px) !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    color: #fff !important;
    background:
        radial-gradient(
            circle at 88% 12%,
            rgba(104, 216, 255, 0.30),
            transparent 32%
        ),
        linear-gradient(
            140deg,
            #064d98 0%,
            #0878cb 52%,
            #2dbbef 100%
        ) !important;
    overflow: hidden !important;
}

.fy-login-v3-hero::before,
.fy-login-v3-hero::after {
    content: "" !important;
    position: absolute !important;
    border: 1px solid rgba(255,255,255,0.15) !important;
    border-radius: 50% !important;
    pointer-events: none !important;
}

.fy-login-v3-hero::before {
    width: 500px !important;
    height: 500px !important;
    top: -220px !important;
    right: -170px !important;
}

.fy-login-v3-hero::after {
    width: 760px !important;
    height: 760px !important;
    right: -390px !important;
    bottom: -510px !important;
}

.fy-login-v3-brand {
    position: relative !important;
    z-index: 2 !important;
    display: flex !important;
    margin: 0 0 70px !important;
    align-items: center !important;
    gap: 16px !important;
}

.fy-login-v3-brand-icon {
    position: relative !important;
    display: flex !important;
    width: 72px !important;
    height: 72px !important;
    align-items: center !important;
    justify-content: center !important;
    border: 1px solid rgba(255,255,255,0.23) !important;
    border-radius: 20px !important;
    background: rgba(255,255,255,0.10) !important;
}

.fy-login-v3-brand-icon::before {
    content: "" !important;
    width: 39px !important;
    height: 25px !important;
    background: #fff !important;
    clip-path:
        polygon(
            0% 62%,
            42% 10%,
            100% 0%,
            74% 38%,
            100% 52%,
            49% 58%,
            14% 100%
        ) !important;
}

.fy-login-v3-brand-copy {
    display: flex !important;
    flex-direction: column !important;
    gap: 7px !important;
}

.fy-login-v3-brand-name {
    color: #fff !important;
    font-size: 30px !important;
    font-weight: 1000 !important;
    line-height: 1 !important;
}

.fy-login-v3-brand-sub {
    color: rgba(255,255,255,0.84) !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    letter-spacing: 2px !important;
}

.fy-login-v3-title {
    position: relative !important;
    z-index: 2 !important;
    width: 100% !important;
    max-width: 760px !important;
    min-height: 190px !important;
    margin: 0 !important;
    color: #fff !important;
    font-size: clamp(52px, 5vw, 84px) !important;
    font-weight: 1000 !important;
    line-height: 1.08 !important;
    letter-spacing: -2px !important;
    word-break: keep-all !important;
}

.fy-login-v3-caret {
    display: inline-block !important;
    width: 5px !important;
    height: 0.88em !important;
    margin-left: 8px !important;
    vertical-align: -0.06em !important;
    background: #fff !important;
    animation: fy-login-v3-blink .86s steps(1) infinite !important;
}

@keyframes fy-login-v3-blink {
    0%, 48% {
        opacity: 1;
    }

    49%, 100% {
        opacity: 0;
    }
}

/* 右侧 */

.fy-login-v3-panel {
    display: flex !important;
    box-sizing: border-box !important;
    min-width: 0 !important;
    min-height: 100vh !important;
    padding: 42px clamp(30px, 5vw, 88px) !important;
    align-items: center !important;
    justify-content: center !important;
    background:
        radial-gradient(
            circle at 72% 12%,
            rgba(45,184,237,0.11),
            transparent 35%
        ),
        #eef6fb !important;
}

.fy-login-v3-card {
    display: block !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 760px !important;
    margin: 0 auto !important;
    padding: 54px 56px 48px !important;
    border: 1px solid rgba(14,91,153,0.10) !important;
    border-radius: 34px !important;
    background: rgba(255,255,255,0.98) !important;
    box-shadow: 0 24px 64px rgba(16,77,129,0.14) !important;
}

.fy-login-v3-card h2 {
    margin: 0 0 13px !important;
    color: #103b60 !important;
    font-size: 39px !important;
    font-weight: 1000 !important;
    line-height: 1.16 !important;
}

.fy-login-v3-description {
    margin: 0 0 32px !important;
    color: #7b91a5 !important;
    font-size: 16px !important;
    line-height: 1.8 !important;
}

.fy-login-v3-form {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
}

.fy-login-v3-field {
    display: block !important;
    width: 100% !important;
    margin: 0 0 19px !important;
}

.fy-login-v3-field label {
    display: block !important;
    margin: 0 0 9px !important;
    color: #123c62 !important;
    font-size: 15px !important;
    font-weight: 900 !important;
    line-height: 1.5 !important;
}

.fy-login-v3-input {
    display: block !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 62px !important;
    margin: 0 !important;
    padding: 0 18px !important;
    border: 1px solid #d2e1eb !important;
    border-radius: 15px !important;
    outline: none !important;
    background: #f6fafc !important;
    color: #153d61 !important;
    font-size: 17px !important;
    box-shadow: none !important;
}

.fy-login-v3-input:focus {
    border-color: #2ba8e7 !important;
    background: #fff !important;
    box-shadow: 0 0 0 4px rgba(43,168,231,0.12) !important;
}

.fy-login-v3-remember {
    display: flex !important;
    margin: 5px 0 20px !important;
    align-items: center !important;
    color: #123c62 !important;
    font-size: 15px !important;
    font-weight: 800 !important;
}

.fy-login-v3-remember input {
    width: 18px !important;
    height: 18px !important;
    margin: 0 8px 0 0 !important;
}

.fy-login-v3-submit {
    display: flex !important;
    box-sizing: border-box !important;
    width: 100% !important;
    min-height: 60px !important;
    margin: 0 !important;
    padding: 0 20px !important;
    align-items: center !important;
    justify-content: center !important;
    border: 0 !important;
    border-radius: 15px !important;
    background:
        linear-gradient(
            135deg,
            #0a5ead 0%,
            #31b8ed 100%
        ) !important;
    color: #fff !important;
    font-size: 19px !important;
    font-weight: 1000 !important;
    cursor: pointer !important;
    box-shadow: 0 15px 29px rgba(13,108,188,0.23) !important;
}

.fy-login-v3-links {
    display: flex !important;
    margin: 17px 0 0 !important;
    align-items: center !important;
    justify-content: center !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
}

.fy-login-v3-links a {
    display: inline-flex !important;
    min-height: 46px !important;
    padding: 0 21px !important;
    align-items: center !important;
    justify-content: center !important;
    border: 1px solid #d4e2ec !important;
    border-radius: 13px !important;
    background: #fff !important;
    color: #627b92 !important;
    font-size: 15px !important;
    font-weight: 900 !important;
    text-decoration: none !important;
}

.fy-login-v3-alert {
    display: block !important;
    box-sizing: border-box !important;
    width: 100% !important;
    margin: 0 0 18px !important;
    padding: 14px 16px !important;
    border: 1px solid #f3b8b8 !important;
    border-radius: 14px !important;
    background: #fff3f3 !important;
    color: #b84242 !important;
    font-size: 14px !important;
}

/* 手机 */

@media (max-width: 768px) {
    #fy-login-v3-app {
        display: block !important;
        width: 100% !important;
        min-height: 100vh !important;
    }

    .fy-login-v3-hero {
        width: 100% !important;
        min-height: 225px !important;
        height: auto !important;
        padding: 22px 20px 26px !important;
        justify-content: center !important;
    }

    .fy-login-v3-hero::before {
        width: 270px !important;
        height: 270px !important;
        top: -165px !important;
        right: -125px !important;
    }

    .fy-login-v3-hero::after {
        display: none !important;
    }

    .fy-login-v3-brand {
        margin: 0 0 22px !important;
        gap: 11px !important;
    }

    .fy-login-v3-brand-icon {
        width: 57px !important;
        height: 57px !important;
        border-radius: 16px !important;
    }

    .fy-login-v3-brand-icon::before {
        width: 31px !important;
        height: 20px !important;
    }

    .fy-login-v3-brand-name {
        font-size: 24px !important;
    }

    .fy-login-v3-brand-sub {
        font-size: 11px !important;
        letter-spacing: 1.5px !important;
    }

    .fy-login-v3-title {
        min-height: 74px !important;
        font-size: clamp(29px, 8.5vw, 39px) !important;
        line-height: 1.18 !important;
        letter-spacing: -1px !important;
    }

    .fy-login-v3-panel {
        display: block !important;
        width: 100% !important;
        min-height: 0 !important;
        padding: 11px 12px 27px !important;
    }

    .fy-login-v3-card {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 25px 18px 23px !important;
        border-radius: 23px !important;
        box-shadow: 0 15px 34px rgba(16,76,128,0.13) !important;
    }

    .fy-login-v3-card h2 {
        margin: 0 0 9px !important;
        font-size: 27px !important;
    }

    .fy-login-v3-description {
        margin: 0 0 21px !important;
        font-size: 14px !important;
        line-height: 1.7 !important;
    }

    .fy-login-v3-input {
        height: 55px !important;
        padding: 0 15px !important;
        border-radius: 13px !important;
        font-size: 16px !important;
    }

    .fy-login-v3-submit {
        min-height: 55px !important;
        border-radius: 13px !important;
        font-size: 18px !important;
    }

    .fy-login-v3-links {
        display: block !important;
    }

    .fy-login-v3-links a {
        display: flex !important;
        width: 100% !important;
        box-sizing: border-box !important;
        margin: 0 0 9px !important;
    }
}
