* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    height: 100%;
}

body {
    min-height: 100%;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: #fff;
    font-family: "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
    color: #2c3e50;
}

a {
    text-decoration: none;
    color: inherit;
}

/* ===== 顶部导航：通栏结构（底色由 edition CSS 设置） ===== */
.site-header {
    width: 100%;
    height: 46px;
}

    .site-header .container {
        height: 46px;
        display: flex;
        align-items: center;
        justify-content: space-between;
    }

.container {
    width: 1400px;
    max-width: 100%;
    margin: 0 auto;
    padding: 0 20px;
}

.brand {
    display: flex;
    align-items: center;
    gap: 12px;
}

    .brand img {
        display: block;
        width: 31px;
        height: 31px;
    }

.brand-name {
    font-size: 21.34px;
    font-weight: 400;
    color: #1a2b3c;
    letter-spacing: 0.5px;
}

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

    .btn-login img {
        display: block;
        width: 127px;
        height: 34px;
    }

/* ===== 英雄区结构（背景由 edition CSS 设置，原尺寸 1920×466） ===== */
.hero-wrap {
    width: 100%;
    height: 466px;
    background-repeat: no-repeat;
    background-position: center top;
    background-size: 1920px 466px;
    /* visible：PC 端 form 倒影可探出下沿，由 features 叠盖 */
    overflow: visible;
}

.hero {
    position: relative;
    display: flex;
    align-items: flex-start;
    height: 466px;
    padding-top: 70px; /* 配合 features 上叠 -111px，文案整体上移 */
}

/* 与导航 logo 左对齐，标题与按钮共用同一左缘 */
.hero-copy {
    position: relative;
    z-index: 3;
    max-width: 720px;
    padding-left: 0;
}

.hero-title {
    font-size: 58px;
    font-weight: 700;
    line-height: 1.35;
    color: #333333;
    margin-bottom: 14px;
    letter-spacing: 0.5px;
    white-space: nowrap;
}

    .hero-title .title-edition {
        font-size: 41px;
    }

.hero-sub {
    font-size: 22px;
    line-height: 1.7;
    color: #333333;
    /*margin-bottom: 12px;*/
}

/* 非官方提示：与正文区分，偏警示橙 */
.hero-notice {
    font-size: 16px;
    color: #333333;
}

/* 试用按钮：原图 324×109，不缩放 */
.btn-trial {
    display: inline-block;
    line-height: 0;
    border: none;
    padding: 0;
    background: transparent;
    cursor: pointer;
}

    .btn-trial img {
        display: block;
        width: 324px;
        height: 109px;
    }

/* PC：右侧产品截图 + 倒影（图本身含圆角/光晕） */
.hero-visual {
    display: block;
    position: absolute;
    right: 0;
    top: 28px;
    width: 490px;
    z-index: 2; /* 高于 features，倒影可叠在功能区上沿 */
    pointer-events: none;
    line-height: 0;
}

.hero-visual picture {
    display: block;
}

.hero-visual__img {
    display: block;
    width: 100%;
    height: auto;
}

/* 倒影：翻转底部截图 + 渐隐
   注意：scaleY(-1) 会连同 mask 一起翻转，故本地渐变需写成「上透明 → 下不透明」，
   翻转后才是「靠近实图最实，向下渐隐」 */
.hero-visual::after {
    content: "";
    display: block;
    height: 100px;
    margin-top: -30px;
    background-image: var(--hero-form-img);
    background-repeat: no-repeat;
    background-position: center bottom;
    background-size: 100% auto;
    transform: scaleY(-1);
    opacity: 0.65;
    -webkit-mask-image: linear-gradient(
        to bottom,
        transparent 0%,
        rgba(0, 0, 0, 0.2) 35%,
        rgba(0, 0, 0, 0.85) 100%
    );
    mask-image: linear-gradient(
        to bottom,
        transparent 0%,
        rgba(0, 0, 0, 0.2) 35%,
        rgba(0, 0, 0, 0.85) 100%
    );
    pointer-events: none;
}

/* ===== 中间功能大卡片：上沿叠在英雄区底部 ===== */
.features-wrap {
    position: relative;
    z-index: 2;
    margin-top: -111px;
    padding: 0 0 48px;
}

.features-panel {
    width: 1400px;
    max-width: 100%;
    margin: 0 auto;
    background: #fff;
    border: 1px solid #d7e9fb;
    border-radius: 24px;
    /* PS投影：#4fb7ff / 64% / 距离0 / 大小16 */
    box-shadow: 0 0 16px rgb(79 183 255 / 64%); /* #4fb7ff */
    padding: 40px 36px;
    display: grid;
    /* 左栏 177×3+间距，右栏 663（固定，避免长说明撑开） */
    grid-template-columns: calc(177px * 3 + 8px * 2) 663px;
    justify-content: space-between;
    gap: 40px;
    align-items: start;
}

/* 左右两栏统一顶栏高度，保证下方网格起点对齐 */
.features-col {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.section-title {
    font-size: 28px;
    font-weight: 800;
    color: #2b2e38;
    line-height: 40px;
    height: 40px;
    margin-bottom: 10px;
}

.section-desc {
    font-size: 16px;
    color: #7a8a9a;
    line-height: 1.6;
    min-height: calc(16px * 1.6 * 2);
    margin-bottom: 24px;
    max-width: 100%;
}

.features-col--left .section-desc {
    max-width: calc(177px * 3 + 8px * 2);
}

.features-col--right .section-desc {
    max-width: 663px;
}

.feat-grid {
    display: grid;
    gap: 8px;
}

/* 左侧小卡：统一行高，图标/标题/描述对齐 */
.features-col--left .feat-grid {
    grid-template-columns: repeat(3, 177px);
    grid-auto-rows: 132px;
    align-items: stretch;
    width: calc(177px * 3 + 8px * 2);
    row-gap: 8px;
    column-gap: 8px;
}

.features-col--left .feat-card {
    width: 177px;
    height: 100%;
    min-height: 0;
    max-height: 122px;
    justify-content: flex-start;
    background-color: #f9fcff;
    background-image: none;
    border: 1px solid #d7e9fb;
    box-shadow: 0 4px 10px rgb(100 140 180 / 10%);
}

/* 右侧小卡：同高；通栏大卡单独占一行 */
.features-col--right .feat-grid {
    grid-template-columns: repeat(3, 212px);
    grid-auto-rows: minmax(132px, auto);
    align-items: stretch;
    column-gap: 13.5px; /* (663 - 212×3) / 2 */
    row-gap: 8px;
    width: 663px;
}

.features-col--right .feat-card:not(.feat-card--precheck) {
    width: 212px;
    height: 100%;
    min-height: 122px;
    max-height: 122px;
    background-color: #f1f8ff;
    background-image: none;
    border: 1px solid #d0e4f7;
    box-shadow: 0 4px 10px rgb(100 140 180 / 12%);
    justify-content: flex-start;
    padding: 10px 10px 8px;
    gap: 4px;
}

.features-col--right .feat-card .feat-body {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    min-width: 0;
    width: 100%;
    flex: 1;
}

.features-col--right .feat-card .feat-title {
    font-size: 14px;
    line-height: 1.35;
}

.features-col--right .feat-card .feat-sub {
    font-size: 12px;
    color: #8a97a8;
    line-height: 1.35;
}

.feat-card {
    position: relative;
    overflow: hidden;
    box-sizing: border-box;
    border: 1px solid #bfd0e7;
    border-radius: 12px;
    padding: 10px 10px 8px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 4px;
    /* PS 底色保留，叠加左上角白→透明渐变（等同蒙版高光） */
    background-color: #eff2f6;
    background-image: radial-gradient( 160px 120px at 0% 0%, rgb(255 255 255 / 90%) 0%, transparent 70% );
    /* PS内发光：白色 / 84% / 边缘 / 大小4 + 轻微外阴影 */
    box-shadow: 0 4px 12px rgb(79 183 255 / 18%), inset 0 0 4px rgb(255 255 255 / 84%);
}

    /* 图标槽：统一高度，各种尺寸图标居中对齐 */
    .feat-card > img:not(.feat-star) {
        display: block;
        flex-shrink: 0;
        height: 36px;
        width: auto;
        max-width: 68px;
        object-fit: contain;
        margin: 0 auto;
    }

    .feat-card .feat-body {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 2px;
        min-width: 0;
        width: 100%;
        flex: 1;
    }

    .feat-card .feat-title {
        font-size: 14px;
        color: #333333;
        font-weight: 600;
        line-height: 1.35;
        width: 100%;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
        overflow: hidden;
        word-break: break-word;
    }

    .feat-card .feat-sub {
        font-size: 12px;
        color: #8a97a8;
        font-weight: 400;
        line-height: 1.35;
        width: 100%;
        min-height: calc(12px * 1.35 * 2);
        /* 描述最多 2 行，占位固定，减少留白 */
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
        overflow: hidden;
        word-break: break-word;
    }

/* 右上角三角星标：原图 86×36 */
.feat-star {
    position: absolute;
    top: 0;
    right: 0;
    display: block;
    width: 86px;
    height: 36px;
    z-index: 2;
    pointer-events: none;
}

/* 通栏大卡：恢复与右侧小卡同色，勿走默认灰底 */
.features-col--right .feat-card--precheck {
    grid-column: 1 / -1;
    width: 663px;
    height: auto;
    min-height: 117px;
    max-height: 122px;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: 20px;
    padding: 16px 24px;
    text-align: left;
    margin-top: 0;
    background-color: #f1f8ff;
    background-image: none;
    border: 1px solid #d0e4f7;
    box-shadow: 0 4px 10px rgb(100 140 180 / 12%);
}

    .features-col--right .feat-card--precheck > img:not(.feat-star) {
        height: 50px;
        max-width: 56px;
    }

.feat-card--precheck .feat-title,
.feat-card--precheck .feat-sub {
    min-height: 0;
    -webkit-line-clamp: unset;
    display: block;
    overflow: visible;
}

.feat-card--precheck .feat-text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
    width: auto;
    min-width: 0;
}

.feat-card--precheck .feat-title-row {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 12px;
}

.features-col--right .feat-card--precheck .feat-title {
    font-size: 20px;
    font-weight: 700;
    color: #333;
    line-height: 1.2;
}

.features-col--right .feat-card--precheck .feat-sub {
    font-size: 13px;
    color: #8a97a8;
    font-weight: 400;
}

.features-col--right .feat-card--precheck .feat-foot {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    font-size: 12px;
    color: #8a97a8;
    font-weight: 400;
    line-height: 1.5;
}

.badge {
    display: none;
}

.footer-tip {
    text-align: center;
    color: #8a97a8;
    font-size: 22px;
    margin-top: 28px;
}

.site-footer {
    width: 100%;
    min-height: 71px;
    margin-top: auto;
    flex-shrink: 0;
    padding: 18px 16px;
    box-sizing: border-box;
    background: #f0f3f6;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #666666;
    font-size: 16px;
    line-height: 1.5;
    text-align: center;
}

    .site-footer .footer-company {
        margin: 0 0 8px;
        font-size: 16px;
        color: #666;
        text-align: center;
    }

    .site-footer .footer-links {
        margin: 0 0 8px;
        font-size: 14px;
        text-align: center;
    }

        .site-footer .footer-links a {
            color: #666;
            text-decoration: none;
        }

            .site-footer .footer-links a:hover {
                color: #06aef1;
                text-decoration: underline;
            }

    .site-footer .footer-copyright {
        margin: 0;
        font-size: 13px;
        color: #666;
        text-align: center;
        max-width: 1280px;
        width: 100%;
        white-space: nowrap;
    }

        .site-footer .footer-copyright a {
            color: #666;
            text-decoration: none;
        }

            .site-footer .footer-copyright a:hover {
                color: #06aef1;
                text-decoration: underline;
            }

/* ===== <1400：弹性布局，不定死卡片尺寸 ===== */
@media (max-width: 1399px) {
    .container,
    .features-panel {
        width: calc(100% - 40px);
        max-width: 100%;
    }

    .hero-wrap {
        height: auto;
        min-height: 360px;
        background-size: cover;
        background-position: 32% center; /* 略偏左，避开右侧倒影 */
    }

    .hero {
        height: auto;
        min-height: 320px;
        padding: 48px 0 80px;
    }

    .hero-copy {
        max-width: min(560px, 55%);
        padding-right: 16px;
    }

    .hero-visual {
        width: min(490px, 42%);
        top: 36px;
    }

    .hero-title {
        font-size: 42px;
        white-space: normal;
    }

        .hero-title .title-edition {
            font-size: 32px;
        }

    .hero-sub {
        font-size: 18px;
        max-width: 28em;
    }

    .btn-trial img {
        max-width: min(324px, 100%);
        width: auto;
        height: auto;
    }

    .features-panel {
        grid-template-columns: 1fr 1fr;
        justify-content: stretch;
        gap: 24px;
        padding: 28px 20px;
    }

    .features-col--left .feat-grid,
    .features-col--right .feat-grid {
        width: 100%;
        grid-template-columns: repeat(3, 1fr);
        grid-auto-rows: auto;
        column-gap: 12px;
        row-gap: 12px;
    }

    .features-col--left .feat-card,
    .features-col--right .feat-card,
    .features-col--right .feat-card:not(.feat-card--precheck) {
        width: 100%;
        height: auto;
        min-height: 160px;
        max-height: none;
    }

    .features-col--right .feat-card--precheck {
        width: 100%;
        height: auto;
        min-height: 110px;
        padding: 16px 20px;
    }

    .section-title {
        height: auto;
        line-height: 1.3;
    }

    .section-desc {
        min-height: 0;
        font-size: 14px;
        max-width: 100%;
    }

    .features-col--left .section-desc,
    .features-col--right .section-desc {
        max-width: 100%;
    }
}

/* 中屏：功能区改单栏 */
@media (max-width: 992px) {
    .features-panel {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .hero-wrap {
        /* 继承 1399 的 cover；略再偏左一点，勿用 left 以免裁切过多 */
        background-position: 40% center;
        min-height: 0;
    }

    .hero {
        position: relative;
        min-height: 0;
        padding: 36px 0 56px;
    }

    .hero-copy {
        position: relative;
        z-index: 3;
        max-width: 100%;
        padding-right: 0;
    }

    /* ≤992：统一用 form_min 贴右下，无倒影（消除 641–992 断档） */
    .hero-visual {
        display: block;
        position: absolute;
        left: auto;
        top: auto;
        right: -20px; /* 抵消 .container padding，与功能卡片右缘对齐 */
        bottom: 0;
        width: min(220px, 40vw);
        z-index: 1;
        margin: 0;
        opacity: 1;
        overflow: visible;
        pointer-events: none;
        line-height: 0;
    }

    .hero-visual::after {
        display: none;
    }

    .hero-visual picture,
    .hero-visual__img {
        display: block;
        width: 100%;
        height: auto;
    }

    .hero-visual__img {
        object-fit: contain;
        object-position: right bottom;
        opacity: 0.85;
        filter: none;
        pointer-events: none;
        user-select: none;
    }

    .hero-title {
        font-size: 32px;
        margin-bottom: 10px;
    }

        .hero-title .title-edition {
            font-size: 26px;
        }

    .hero-sub {
        font-size: 15px;
        max-width: none;
        /*margin-bottom: 10px;*/
    }

    .hero-notice {
        font-size: 15px;
        /*margin-bottom: 12px;*/
    }

    .btn-trial img {
        max-width: min(280px, 72vw);
    }

    .features-wrap {
        margin-top: -48px;
    }

    .footer-tip {
        font-size: 18px;
        margin-top: 20px;
    }
}

/* 小屏：压缩英雄区 + 三列改两列 */
@media (max-width: 640px) {
    .container,
    .features-panel {
        width: calc(100% - 24px);
    }

    .features-col--left .feat-grid,
    .features-col--right .feat-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .brand-name {
        font-size: 15px;
    }

    .site-header,
    .site-header .container {
        height: 40px;
    }

        .site-header .container {
            padding: 0 12px;
        }

    .brand {
        gap: 6px;
        min-width: 0;
    }

        .brand img {
            width: 24px;
            height: 24px;
        }

    .btn-login img {
        width: 100px;
        height: auto;
    }

    .hero-wrap {
        min-height: 0;
        background-position: 36% center;
    }

    .hero {
        position: relative;
        min-height: 0;
        padding: 20px 0 28px;
        flex-direction: column;
        align-items: stretch;
    }

    .hero-copy {
        position: relative;
        z-index: 3;
        max-width: 100%;
        padding-right: 8px;
    }

    .hero-title {
        font-size: 22px;
        line-height: 1.35;
        margin-bottom: 8px;
        white-space: normal;
    }

        .hero-title .title-edition {
            font-size: 18px;
        }

    .hero-sub {
        font-size: 13px;
        line-height: 1.5;
        /*margin-bottom: 8px;*/
        max-width: 100%;
    }

    .hero-notice {
        font-size: 13px;
        /*margin-bottom: 10px;*/
    }

    .btn-trial img {
        max-width: min(220px, 68vw);
        width: 100%;
        height: auto;
    }

    /* 小屏：form_min 略缩小 */
    .hero-visual {
        width: min(200px, 48vw);
    }

    .features-wrap {
        margin-top: -36px;
        padding-bottom: 24px;
    }

    .features-panel {
        padding: 14px 10px 16px;
        border-radius: 14px;
        gap: 22px;
    }

    .section-title {
        font-size: 18px;
        line-height: 1.3;
        height: auto;
        margin-bottom: 4px;
    }

    .section-desc {
        font-size: 12px;
        line-height: 1.45;
        margin-bottom: 10px;
        min-height: 0;
    }

    .features-col--left .feat-grid,
    .features-col--right .feat-grid {
        grid-template-columns: repeat(2, 1fr);
        column-gap: 8px;
        row-gap: 8px;
    }

    .features-col--left .feat-card,
    .features-col--right .feat-card {
        width: 100%;
        height: auto;
        min-height: 0;
        max-height: none;
        padding: 8px 6px;
        gap: 4px;
        border-radius: 10px;
    }

        .features-col--right .feat-card:not(.feat-card--precheck) {
            min-height: 0;
            max-height: none;
            height: auto;
            padding: 8px 6px;
            gap: 4px;
        }

    .feat-card .feat-title,
    .feat-card .feat-sub {
        min-height: 0;
    }

    .feat-card > img:not(.feat-star) {
        max-height: 36px;
        height: 36px;
        width: auto;
    }

    .feat-card .feat-title {
        font-size: 12px;
        line-height: 1.3;
    }

    .features-col--right .feat-card .feat-title {
        font-size: 12px;
    }

    /* 左右栏描述字号统一，避免手机端左 12 / 右 10 */
    .feat-card .feat-sub,
    .features-col--right .feat-card .feat-sub {
        font-size: 12px;
        line-height: 1.35;
    }

    .feat-star {
        top: 0;
        right: 0;
        width: 48px;
        height: 20px;
    }

    .features-col--right .feat-card--precheck {
        min-height: 0;
        padding: 10px 12px;
    }

        .features-col--right .feat-card--precheck .feat-title {
            font-size: 14px;
        }

        .features-col--right .feat-card--precheck .feat-sub,
        .features-col--right .feat-card--precheck .feat-foot {
            font-size: 11px;
            gap: 0px;
        }
}


/* ===== 登录 / 注册 / 忘记密码（与功能区同位置大圆角壳） ===== */
.auth-wrap {
    display: none;
    position: relative;
    z-index: 2;
    margin-top: -111px;
    padding: 0 0 48px;
}

body.page-login .features-wrap,
body.page-forgot .features-wrap,
body.page-register .features-wrap {
    display: none;
}

body.page-login .auth-wrap,
body.page-forgot .auth-wrap,
body.page-register .auth-wrap {
    display: block;
}

.auth-panel {
    width: 600px;
    max-width: 100%;
    margin: 0 auto;
    background: #fff;
    border: 1px solid #d7e9fb;
    border-radius: 24px;
    box-shadow: 0 0 16px rgb(79 183 255 / 64%);
    overflow: hidden;
    padding-bottom: 36px;
}

/* 注册页（桌面）：加宽白卡片，表单块水平居中；小屏沿用下方 media 规则 */
@media (min-width: 993px) {
    body.page-register .auth-panel {
        width: 800px;
        max-width: calc(100% - 40px);
    }

    body.page-register .auth-form--compact {
        width: 410px;
        max-width: calc(100% - 48px);
        margin-left: auto;
        margin-right: auto;
    }
}

.auth-view {
    display: none;
}

body.page-login .auth-view--login,
body.page-forgot .auth-view--forgot,
body.page-register .auth-view--register {
    display: block;
}

.auth-head {
    height: 87px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.auth-title {
    margin: 0;
    color: #2b2e38;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.2;
}

.auth-line {
    display: block;
    width: calc(100% - 64px);
    max-width: 1336px;
    height: 2px;
    margin: 0 auto;
    border: 0;
    object-fit: fill;
}

.auth-form {
    /* 112 + 12 + 252 + 12 + 115，整块水平居中 */
    width: 430px;
    max-width: calc(100% - 48px);
    margin: 42px auto 0;
}

.auth-form--compact {
    /* 无侧栏链接时：112 + 12 + 252 */
    width: 410px;
}

.auth-row,
.auth-actions {
    display: grid;
    /* 右对齐标签 | 输入列 | 侧栏（忘记密码 / 新用户注册） */
    grid-template-columns: 112px 252px 115px;
    column-gap: 12px;
    align-items: center;
    margin-bottom: 22px;
}

.auth-form--compact .auth-row,
.auth-form--compact .auth-actions {
    grid-template-columns: 112px 252px;
}

.auth-label {
    color: #2b2e38;
    font-size: 16px;
    text-align: right;
    white-space: nowrap;
    justify-self: stretch;
}

.auth-field {
    width: 252px;
    justify-self: start;
}

.auth-field--code {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.auth-text {
    display: flex;
    align-items: center;
    min-height: 40px;
    color: #2b2e38;
    font-size: 16px;
    line-height: 1.2;
}

.auth-input {
    display: block;
    width: 252px;
    height: 40px;
    padding: 0 12px;
    box-sizing: border-box;
    border: none;
    outline: none;
    border-radius: 5px;
    background: #cfd9e8;
    color: #2b2e38;
    font-size: 16px;
    font-family: inherit;
    box-shadow: inset 0 3px 3px rgb(213 213 213 / 35%);
}

.auth-input--code {
    width: 121px;
    flex-shrink: 0;
}

.auth-input:focus {
    background: #e4ebf4;
}

.auth-side {
    justify-self: start;
    display: flex;
    align-items: center;
    min-height: 37px;
    width: 115px;
}

.auth-link {
    color: #77b4f4;
    font-size: 14px;
    text-decoration: underline;
    white-space: nowrap;
    cursor: pointer;
}

.auth-btn-code {
    width: 115px;
    height: 37px;
    border: 1px solid #c8cbcf;
    border-radius: 18.5px;
    background: #f3f6fa;
    color: #666;
    font-size: 14px;
    font-family: inherit;
    cursor: pointer;
    flex-shrink: 0;
    padding: 0;
}

    .auth-btn-code:hover {
        background: #eef2f8;
    }

.auth-actions {
    margin: 30px 0 24px;
}

.auth-btn-submit {
    width: 228px;
    height: 47px;
    border: 1px solid #669fdc;
    border-radius: 16px;
    background: #7bb5f4;
    color: #fff;
    font-size: 18px;
    font-weight: 600;
    font-family: inherit;
    letter-spacing: 4px;
    cursor: pointer;
    box-shadow: inset 0 0 4px rgb(255 255 255 / 84%);
    justify-self: start;
    grid-column: 2;
}

.auth-form--compact .auth-btn-submit {
    letter-spacing: 2px;
}

.auth-btn-submit:hover {
    filter: brightness(1.04);
}

.auth-actions .auth-link {
    grid-column: 3;
    justify-self: start;
}

.auth-agree {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    cursor: pointer;
    user-select: none;
}

    .auth-agree input {
        position: absolute;
        opacity: 0;
        width: 0;
        height: 0;
    }

.auth-agree__box {
    display: block;
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    background: url("../images/index_qy/checkbox_uncheck.png") center / contain no-repeat;
}

.auth-agree input:checked + .auth-agree__box {
    background-image: url("../images/index_qy/checkbox_check.png");
}

.auth-agree__text {
    color: #666666;
    font-size: 14px;
    line-height: 1.4;
}

.auth-agree__link {
    color: inherit;
    text-decoration: underline;
    cursor: pointer;
}

/* 登录：账号 / 手机验证码模式切换 */
.auth-view--login[data-login-mode="pwd"] .login-mode--sms,
.auth-view--login[data-login-mode="pwd"] .login-switch--to-pwd {
    display: none;
}

.auth-view--login[data-login-mode="sms"] .login-mode--pwd,
.auth-view--login[data-login-mode="sms"] .login-switch--to-sms {
    display: none;
}

.auth-login-footer {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 20px;
    /* 与标签列对齐后，相对输入列（252px）居中 */
    width: 252px;
    max-width: calc(100% - 124px);
    margin: 8px 0 0 124px; /* 112px 标签 + 12px 间距 */
}

.auth-form--compact .auth-login-footer,
.auth-login-footer--compact {
    width: 252px;
    max-width: 100%;
    margin: 16px auto 0;
}

.auth-login-footer .auth-link {
    color: #77b4f4;
    font-size: 14px;
    text-decoration: underline;
    white-space: nowrap;
    cursor: pointer;
}

@media (max-width: 640px) {
    .auth-login-footer {
        width: auto;
        max-width: none;
        margin-left: 0;
        margin-right: 0;
    }
}

@media (max-width: 1399px) {
    .auth-wrap {
        margin-top: -80px;
    }

    .auth-panel {
        width: calc(100% - 40px);
    }
}

@media (max-width: 992px) {
    .auth-wrap {
        margin-top: -48px;
    }

    .auth-head {
        height: 72px;
    }

    .auth-form {
        width: 503px;
        max-width: calc(100% - 40px);
    }

    .auth-form--compact {
        width: 376px;
    }

    .auth-line {
        width: calc(100% - 40px);
    }
}

@media (max-width: 640px) {
    .auth-wrap {
        margin-top: -36px;
        padding-bottom: 24px;
    }

    .auth-panel {
        width: calc(100% - 24px);
        border-radius: 14px;
        padding-bottom: 24px;
    }

    .auth-head {
        height: 56px;
    }

    .auth-title {
        font-size: 20px;
    }

    .auth-form {
        /* 整表共享两列：标签列=最长文案宽度，再整体居中 */
        display: grid;
        grid-template-columns: max-content minmax(168px, 220px);
        column-gap: 10px;
        row-gap: 16px;
        width: max-content;
        max-width: calc(100% - 32px);
        margin: 24px auto 0;
        box-sizing: border-box;
        align-items: center;
    }

    .auth-form--compact {
        width: max-content;
        max-width: calc(100% - 32px);
    }

    .auth-row {
        display: contents;
    }

    .auth-label {
        font-size: 14px;
        text-align: right;
        white-space: nowrap;
        justify-self: end;
        width: auto;
        padding-right: 0;
    }

    .auth-field {
        width: 100%;
        min-width: 0;
        justify-self: stretch;
    }

    .auth-input {
        width: 100%;
        max-width: none;
        box-sizing: border-box;
    }

    .auth-field--code {
        width: 100%;
        gap: 8px;
    }

    .auth-input--code {
        width: 100%;
        max-width: none;
        flex: 1;
        min-width: 0;
    }

    .auth-side[aria-hidden="true"] {
        display: none;
    }

    .auth-side:not([aria-hidden="true"]) {
        grid-column: 2;
        justify-self: end;
        width: auto;
        min-height: 0;
        margin: 0;
    }

    .auth-btn-code {
        width: auto;
        min-width: 96px;
        padding: 0 10px;
        flex-shrink: 0;
    }

    .auth-actions {
        grid-column: 1 / -1;
        display: flex;
        justify-content: center;
        align-items: center;
        margin: 4px 0 2px;
    }

    .auth-actions > span[aria-hidden="true"] {
        display: none;
    }

    .auth-btn-submit {
        grid-column: auto;
        justify-self: auto;
        width: 100%;
        max-width: 228px;
        height: 44px;
        font-size: 16px;
    }

    .auth-actions .auth-link {
        grid-column: auto;
        justify-self: auto;
    }

    .auth-agree {
        grid-column: 1 / -1;
        margin-top: 4px;
    }

    .auth-login-footer {
        grid-column: 1 / -1;
        width: 100%;
        max-width: none;
        margin: 4px auto 0;
        justify-content: center;
    }
}

@media (max-width: 640px) {
    .footer-tip {
        font-size: 14px;
        line-height: 1.5;
        margin-top: 16px;
        padding: 0 12px;
    }

    .site-footer {
        padding: 16px 12px;
    }

        .site-footer .footer-company {
            font-size: 14px;
            margin-bottom: 6px;
        }

        .site-footer .footer-copyright {
            font-size: 12px;
            line-height: 1.6;
            white-space: normal;
            max-width: 100%;
        }
}

/* ===== 用户协议页 ===== */
.page-agreement {
    min-height: 100vh;
    background: #f3f6fa;
}

.agreement-wrap {
    padding: 28px 16px 40px;
}

.agreement-panel {
    max-width: 860px;
    margin: 0 auto;
    padding: 28px 32px 36px;
    box-sizing: border-box;
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 8px 28px rgb(60 90 130 / 8%);
}

.agreement-title {
    margin: 0 0 6px;
    color: #222;
    font-size: 26px;
    font-weight: 700;
    text-align: center;
    line-height: 1.3;
}

.agreement-edition {
    margin: 0 0 22px;
    color: #888;
    font-size: 14px;
    text-align: center;
}

.agreement-h {
    margin: 22px 0 10px;
    color: #1a1a1a;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.4;
}

.agreement-p {
    margin: 0 0 12px;
    color: #333;
    font-size: 14px;
    line-height: 1.75;
    text-align: justify;
}

@media (max-width: 640px) {
    .agreement-panel {
        padding: 20px 16px 28px;
        border-radius: 12px;
    }

    .agreement-title {
        font-size: 22px;
    }
}

/* ===== 首页微信客服浮层 ===== */
.site-contact__panel {
    position: fixed;
    right: 18px;
    top: 50%;
    z-index: 1200;
    transform: translateY(-50%);
    box-sizing: border-box;
    width: 159px;
    height: 217px;
    border: 2px solid #fff;
    border-radius: 16px;
    background: linear-gradient(180deg, #edf2f6 0%, #f7fafc 42%, #ffffff 100%);
    box-shadow: 0 0 16px rgb(79 183 255 / 64%);
}

.site-contact.is-closed .site-contact__panel {
    display: none;
}

.site-contact__hd {
    height: 49px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 28px;
}

.site-contact__title {
    color: #333;
    font-size: 18px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0.5px;
}

.site-contact__close {
    position: absolute;
    top: -5px;
    right: 0;
    z-index: 2;
    border: none;
    background: transparent;
    color: #6fabf7;
    font-size: 38px;
    font-weight: 500;
    line-height: 1;
    cursor: pointer;
    padding: 0;
}

.site-contact__divider {
    height: 2px;
    background: linear-gradient(to bottom, #e1e9f0 0 50%, #ffffff 50% 100%);
}

.site-contact__bd {
    padding: 8px 0 0;
    text-align: center;
}

.site-contact__qr {
    box-sizing: content-box;
    width: 105px;
    height: 105px;
    margin: 0 auto 10px;
    background: #f5f8fc;
    border: 5px solid #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #9aa8b8;
    font-size: 12px;
}

.site-contact__qr .js_qrcode {
    width: 105px;
    height: 105px;
    line-height: 0;
}

.site-contact__qr img,
.site-contact__qr canvas,
.site-contact__qr svg,
.site-contact__qr table {
    display: block;
    width: 105px !important;
    height: 105px !important;
    max-width: 100%;
    object-fit: contain;
}

.site-contact__qr-empty {
    padding: 0 6px;
    text-align: center;
    line-height: 1.4;
}

.site-contact__tip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    font-size: 16px;
    color: #999;
    line-height: 1.2;
}

.site-contact__wx {
    display: inline-block;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    background: url("../images/index_qy/ico_wx.png") center / contain no-repeat;
}

.site-contact__fab {
    display: none;
    position: fixed;
    right: 12px;
    top: 50%;
    z-index: 1200;
    transform: translateY(-50%);
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    width: 52px;
    height: 52px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: linear-gradient(180deg, #7ec8ff 0%, #3a9aef 100%);
    box-shadow:
        0 4px 14px rgb(58 154 239 / 45%),
        inset 0 1px 0 rgb(255 255 255 / 40%);
    color: #fff;
    cursor: pointer;
}

.site-contact.is-closed .site-contact__fab {
    display: inline-flex;
}

.site-contact__fab-ico {
    display: block;
    width: 22px;
    height: 22px;
    background: url("../images/index_qy/ico_wx.png") center / contain no-repeat;
    filter: brightness(0) invert(1);
}

.site-contact__fab-txt {
    font-size: 10px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0.5px;
}

@media (max-width: 640px) {
    .site-contact__panel {
        top: auto;
        bottom: 76px;
        right: 10px;
        transform: none;
        width: 148px;
        height: auto;
        min-height: 217px;
        padding-bottom: 12px;
    }

    .site-contact__bd {
        padding: 8px 0 4px;
    }

    .site-contact__fab {
        top: auto;
        bottom: 20px;
        right: 12px;
        transform: none;
        width: 48px;
        height: 48px;
    }
}

/* ===== 公共弹窗（开通服务等） ===== */
body.site-dialog-open {
    overflow: hidden;
}

.site-dialog {
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: 10050;
}

.site-dialog__mask {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: rgba(20, 36, 58, 0.45);
}

.site-dialog__main {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    z-index: 1;
    pointer-events: none;
}

.site-dialog__panel {
    position: relative;
    pointer-events: auto;
    width: 380px;
    max-width: calc(100vw - 32px);
    padding: 28px 24px 22px;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 12px 40px rgba(30, 60, 100, 0.18);
    text-align: center;
}

.site-dialog__close {
    position: absolute;
    top: 8px;
    right: 10px;
    width: 32px;
    height: 32px;
    border: none;
    background: none;
    color: #8a96a8;
    font-size: 24px;
    line-height: 32px;
    cursor: pointer;
}

.site-dialog__close:hover {
    color: #2b2e38;
}

.site-dialog__msg {
    margin: 0 4px 18px;
    color: #e54d42;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.4;
    white-space: nowrap;
}

.site-dialog__qr {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 140px;
    margin: 0 auto;
}

.site-dialog__qrcode {
    display: inline-block;
    padding: 8px;
    border: 1px solid #e6eef6;
    border-radius: 8px;
    background: #fff;
}

.site-dialog__qr-empty {
    color: #8a96a8;
    font-size: 13px;
}

.site-dialog__tip {
    margin-top: 12px;
    color: #5a6a7e;
    font-size: 13px;
}

.footer-company {
    margin-bottom: 10px;
    font-size: 16px;
    color: #666;
    text-align: center;
}

.footer-copyright {
    font-size: 16px;
    color: #666;
    text-align: center;
}
