/* 对照源站 uni-app 750 设计稿：1 设计单位 = 100vw/750 */
:root {
    --m-red: #f63e3d;
    --dw: 100vw;
    --r: calc(100vw / 750);
}

* {
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
    font-family: SimHei, "Heiti SC", "WenQuanYi Hei", PingFangSC-Regular, "PingFang SC", "Microsoft YaHei", sans-serif;
}

html, body {
    margin: 0;
    padding: 0;
    background: #faf1f0;
    color: #333;
    font-size: calc(32 * var(--r));
    font-weight: 400;
    -webkit-font-smoothing: antialiased;
}

a { text-decoration: none; color: inherit; }
button, input {
    font-family: inherit;
    border: 0;
    outline: none;
    background: none;
    -webkit-appearance: none;
    appearance: none;
}

.m-app {
    width: var(--dw);
    max-width: 100%;
    margin: 0 auto;
    background: #faf1f0;
    min-height: 100vh;
    min-height: 100dvh;
    position: relative;
    overflow-x: hidden;
}

.m-page.m-home {
    position: relative;
    padding-bottom: calc(100 * var(--r));
    background: #faf1f0;
}

/* ===== 头图：源站 754×589 ===== */
.home-main-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: calc(754 * var(--r));
    max-width: none;
    height: calc(589 * var(--r));
    z-index: 0;
    background: url(../../img/marriage/src/home-bg-1.png) 0 0 / 100% 100% no-repeat;
}
.home-main-hidden {
    width: 100%;
    height: calc(589 * var(--r));
    position: relative;
    z-index: 0;
}

.flexbox {
    display: flex;
    flex-wrap: wrap;
}
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.align-item-center { align-items: center; }
.flex-wrap { flex-wrap: wrap; }
.flexfull { flex: 1; min-width: 0; }

/* ===== 卡片：689 / 圆角20 / 内边距48·44，首卡上浮-162 ===== */
.box-card {
    width: calc(689 * var(--r));
    background: #fff;
    border-radius: calc(20 * var(--r));
    padding: calc(48 * var(--r)) calc(44 * var(--r));
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    margin-top: calc(32 * var(--r));
    z-index: 2;
}
.box-card.first-box-card {
    margin-top: calc(-162 * var(--r));
    padding-top: calc(20 * var(--r));
}
/* 源站婚配情况卡：padding:40px 0 */
.box-card.padding-top {
    padding: calc(40 * var(--r)) 0;
}
/* 为什么选择我们：居中 */
.box-card.why-box-card {
    text-align: center;
}

/* ===== 公告：高48、底距32、粉底圆角24、左右20上下10 ===== */
.notice {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    height: calc(48 * var(--r));
    width: 100%;
    margin: 0 auto calc(32 * var(--r));
    overflow: hidden;
    font-size: calc(28 * var(--r));
    background-color: #fff3f3;
    border-radius: calc(24 * var(--r));
    padding: calc(10 * var(--r)) calc(20 * var(--r));
}
.notice-icon-img {
    width: calc(48 * var(--r));
    height: calc(24 * var(--r));
    object-fit: contain;
    object-position: left center;
    display: block;
    flex-shrink: 0;
    margin-right: calc(12 * var(--r));
}
.notice-swiper {
    flex: 1;
    min-width: 0;
    border-left: 1px solid #c5010a;
    padding-left: calc(12 * var(--r));
    height: calc(28 * var(--r));
    line-height: calc(28 * var(--r));
    overflow: hidden;
    position: relative;
}
.notice-swiper-track {
    display: flex;
    flex-direction: column;
    animation: notice-scroll 10s ease-in-out infinite;
}
.notice-swiper .swiper-item {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: clip;
    color: #333;
    font-size: calc(24 * var(--r));
    line-height: calc(28 * var(--r));
    height: calc(28 * var(--r));
    font-weight: 400;
}
@keyframes notice-scroll {
    0%, 42% { transform: translateY(0); }
    50%, 92% { transform: translateY(calc(-28 * var(--r))); }
    100% { transform: translateY(0); }
}

/* ===== 输入框：601×86、字号32、内边距20·32 ===== */
.home-input {
    display: block;
    width: 100%;
    height: calc(86 * var(--r));
    background: #fff;
    border: 1px solid #c2c2c2;
    border-radius: calc(6 * var(--r));
    padding: 0 calc(32 * var(--r));
    font-size: calc(32 * var(--r));
    line-height: calc(86 * var(--r));
    color: #333;
    font-weight: 400;
}
.home-input::placeholder {
    color: #a9a9a9;
    opacity: 1;
    font-size: calc(32 * var(--r));
    font-weight: 400;
    line-height: calc(86 * var(--r));
}

/* ===== 协议：顶距32、字号24、黑色正文；图标无边框 ===== */
.agreement-item {
    width: 100%;
    margin: calc(32 * var(--r)) auto 0;
    font-size: calc(24 * var(--r));
    color: #000;
    align-items: center;
    flex-wrap: nowrap;
}
.agree-icon {
    width: calc(28 * var(--r));
    height: calc(28 * var(--r));
    margin-right: calc(14 * var(--r));
    margin-top: calc(4 * var(--r));
    flex-shrink: 0;
    cursor: pointer;
    overflow: hidden;
    background: transparent;
}
.agree-icon img {
    width: 100%;
    height: 100%;
    display: block;
}
.agree-icon:not(.is-checked) {
    border: 1px solid #f63e3d;
    border-radius: calc(4 * var(--r));
    background: #fff;
}
.agree-icon:not(.is-checked) img {
    visibility: hidden;
}
.agree-content,
.agree-line-height {
    font-size: calc(24 * var(--r));
    color: #000;
    line-height: calc(34 * var(--r));
    font-weight: 400;
    text-align: left;
}
.agree-content .marry {
    color: #f63e3d;
}

/* ===== 立即查询：顶距60、高88、字号36 ===== */
.home-submit {
    margin-top: calc(60 * var(--r));
    width: 100%;
    height: calc(88 * var(--r));
    text-align: center;
    line-height: calc(88 * var(--r));
    background-color: #f63e3d;
    color: #fff;
    font-size: calc(36 * var(--r));
    letter-spacing: 0;
    font-weight: 700;
    border-radius: calc(6 * var(--r));
    cursor: pointer;
}
.home-submit:active { opacity: .92; }

/* ===== 客服/订单/样例：顶距48、字号28、项间距34×2 ===== */
.form-footer {
    margin-top: calc(48 * var(--r));
    flex-wrap: nowrap;
}
.form-footer-item {
    font-size: calc(28 * var(--r));
    text-decoration: underline;
    text-underline-offset: calc(4 * var(--r));
    text-align: left;
    color: #f63e3d;
    line-height: calc(40 * var(--r));
    margin: 0 calc(34 * var(--r));
    cursor: pointer;
    white-space: nowrap;
    font-weight: 400;
}
.item-icon {
    width: calc(32 * var(--r));
    height: calc(32 * var(--r));
    margin-right: calc(12 * var(--r));
    display: block;
    flex-shrink: 0;
}

/* ===== 婚配情况 ===== */
.box-card-header {
    width: 100%;
}
.footer-title {
    margin: 0 auto;
    width: calc(444 * var(--r));
    height: calc(52 * var(--r));
    display: block;
    object-fit: contain;
}
.box-card-body {
    flex-wrap: wrap;
}
.justify-between-item {
    text-align: center;
    flex: 0 0 33.33%;
    margin-top: calc(48 * var(--r));
    font-size: calc(30 * var(--r));
    color: #333;
    line-height: 1.3;
    font-weight: 400;
}
.jbt-icon {
    width: calc(80 * var(--r));
    height: calc(80 * var(--r));
    margin: 0 auto calc(20 * var(--r));
    display: block;
    object-fit: contain;
}

/* ===== 为什么选择我们：标题粉底高亮线 ===== */
.title_advantage {
    font-size: calc(36 * var(--r));
    font-weight: 700;
    text-align: center;
    border-bottom: calc(22 * var(--r)) solid #fff0f0;
    display: inline-block;
    line-height: calc(4 * var(--r));
    padding: 0 calc(7 * var(--r));
    color: #333;
    margin: 0 auto;
}
.advantages {
    margin-top: calc(20 * var(--r));
    text-align: left;
}
.advantages > .adv-item {
    padding-left: calc(82 * var(--r));
    width: 46%;
    font-size: calc(26 * var(--r));
    margin-top: calc(40 * var(--r));
    background-repeat: no-repeat;
    background-position: 0 0;
    background-size: calc(68 * var(--r));
    min-height: calc(68 * var(--r));
    box-sizing: border-box;
}
.advantages > .adv-item .t1 {
    font-weight: 700;
    font-size: calc(32 * var(--r));
    color: #333;
    line-height: 1.25;
}
.advantages > .adv-item .t2 {
    color: #999;
    font-size: calc(26 * var(--r));
    line-height: 1.35;
    font-weight: 400;
}
.advantages .jscx { background-image: url(../../img/marriage/src/idverify_12.png); }
.advantages .ysaq { background-image: url(../../img/marriage/src/idverify_13.png); }
.advantages .dwsj { background-image: url(../../img/marriage/src/idverify_14.png); }
.advantages .jdjy { background-image: url(../../img/marriage/src/idverify_15.png); }

/* ===== 页脚备案 ===== */
.company {
    text-align: center;
    margin-top: calc(48 * var(--r));
    color: #d3d3d3;
    font-size: calc(24 * var(--r));
    line-height: calc(36 * var(--r));
    font-weight: 400;
}
.company a { color: #d3d3d3; }

.m-tips {
    text-align: center;
    color: #f63e3d;
    font-size: calc(24 * var(--r));
    margin-top: calc(16 * var(--r));
    line-height: 1.4;
}
.m-tips:empty { display: none; margin: 0; }

/* 源站 uni-toast：居中深色圆角提示 */
.m-toast {
    position: fixed;
    left: 50%;
    top: 50%;
    z-index: 999;
    display: none;
    transform: translate(-50%, -50%);
    color: #fff;
    background: rgba(17, 17, 17, .7);
    padding: 10px 20px;
    border-radius: 5px;
    font-size: 13px;
    line-height: 1.4;
    text-align: center;
    max-width: 80%;
    pointer-events: none;
    white-space: nowrap;
}
.m-toast.show { display: block; }

/* ===== 短信验证码弹层（对照源站图1） ===== */
.m-mask {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, .35);
    z-index: 100;
    display: none;
}
.m-mask.show { display: block; }
.m-sheet {
    position: fixed;
    left: 50%;
    top: 50%;
    bottom: auto;
    transform: translate(-50%, -50%);
    width: calc(600 * var(--r));
    background: #fff;
    border-radius: calc(12 * var(--r));
    padding: calc(48 * var(--r)) calc(40 * var(--r)) calc(48 * var(--r));
    z-index: 101;
    display: none;
    box-shadow: 0 calc(8 * var(--r)) calc(40 * var(--r)) rgba(0, 0, 0, .12);
}
.m-sheet.show { display: block; }
.m-sheet-title {
    text-align: center;
    font-size: calc(34 * var(--r));
    font-weight: 700;
    color: #333;
    line-height: 1.4;
    margin: 0;
}
.m-sheet-sub {
    text-align: center;
    color: #999;
    font-size: calc(26 * var(--r));
    line-height: 1.4;
    margin: calc(20 * var(--r)) 0 0;
    font-weight: 400;
}
.m-captcha-row {
    display: flex;
    align-items: center;
    gap: calc(16 * var(--r));
    margin-top: calc(48 * var(--r));
    border-bottom: 1px solid #e5e5e5;
}
.m-captcha-row .home-input {
    flex: 1;
    margin: 0;
    border: 0;
    border-radius: 0;
    padding: calc(20 * var(--r)) 0;
    height: auto;
    line-height: calc(44 * var(--r));
    font-size: calc(28 * var(--r));
    background: transparent;
}
.m-captcha-row .home-input::placeholder {
    color: #ccc;
}
.m-btn-code {
    min-width: calc(160 * var(--r));
    height: calc(44 * var(--r));
    border: 0;
    color: #f63e3d;
    font-size: calc(28 * var(--r));
    white-space: nowrap;
    padding: 0;
    cursor: pointer;
    flex-shrink: 0;
    background: transparent;
}
.m-btn-code:disabled { opacity: .55; color: #999; }
.m-sheet .home-submit {
    width: 100%;
    max-width: 100%;
    height: calc(80 * var(--r));
    line-height: calc(80 * var(--r));
    margin: calc(56 * var(--r)) auto 0;
    font-size: calc(32 * var(--r));
    border-radius: calc(8 * var(--r));
}
.m-sheet .m-tips {
    margin-top: calc(16 * var(--r));
    text-align: center;
    color: #f63e3d;
    font-size: calc(24 * var(--r));
    min-height: calc(24 * var(--r));
}

/* ===== 内页 ===== */
.m-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: calc(88 * var(--r));
    padding: 0 calc(24 * var(--r));
    background: #fff;
    border-bottom: 1px solid #f0f0f0;
    position: sticky;
    top: 0;
    z-index: 10;
}
.m-nav h1 {
    margin: 0;
    font-size: calc(32 * var(--r));
    font-weight: 600;
}
.m-nav-back, .m-nav-right {
    width: calc(100 * var(--r));
    color: #f63e3d;
    font-size: calc(48 * var(--r));
    line-height: 1;
}
.m-nav-right {
    text-align: right;
    font-size: calc(26 * var(--r));
    line-height: calc(88 * var(--r));
}
.m-card {
    width: calc(689 * var(--r));
    margin: calc(24 * var(--r)) auto;
    background: #fff;
    border-radius: calc(20 * var(--r));
    padding: calc(40 * var(--r)) calc(36 * var(--r));
}
.m-card.m-center { text-align: center; }
.m-field { margin-bottom: calc(24 * var(--r)); }
.m-field label {
    display: block;
    margin-bottom: calc(10 * var(--r));
    color: #888;
    font-size: calc(24 * var(--r));
}
.m-check {
    display: flex;
    gap: calc(12 * var(--r));
    font-size: calc(24 * var(--r));
    color: #666;
    margin: calc(16 * var(--r)) 0 calc(24 * var(--r));
}
.m-price-inline {
    text-align: center;
    margin-bottom: calc(20 * var(--r));
    color: #999;
    font-size: calc(26 * var(--r));
}
.m-price-inline strong {
    color: #f63e3d;
    font-size: calc(40 * var(--r));
    margin-left: calc(8 * var(--r));
}
.m-placeholder-title {
    font-size: calc(32 * var(--r));
    font-weight: 600;
    margin: calc(12 * var(--r)) 0 calc(20 * var(--r));
}
.m-link {
    display: inline-block;
    margin-top: calc(28 * var(--r));
    font-size: calc(26 * var(--r));
    color: #f63e3d;
}
.m-kv { list-style: none; margin: 0; padding: 0; }
.m-kv li {
    display: flex;
    justify-content: space-between;
    padding: calc(22 * var(--r)) 0;
    border-bottom: 1px solid #f0f0f0;
    font-size: calc(28 * var(--r));
}
.m-kv li span { color: #999; }
.m-kv li em { font-style: normal; }
.m-article {
    font-size: calc(28 * var(--r));
    color: #333;
    line-height: 1.7;
}
.m-btn-red, .m-btn-primary {
    display: block;
    width: 100%;
    height: calc(88 * var(--r));
    line-height: calc(88 * var(--r));
    text-align: center;
    background: #f63e3d;
    color: #fff;
    font-size: calc(32 * var(--r));
    font-weight: 700;
    border-radius: calc(6 * var(--r));
    cursor: pointer;
}
.m-btn-red.block, .m-btn-primary.block { text-decoration: none; }
.m-btn-ghost {
    display: block;
    width: 100%;
    height: calc(80 * var(--r));
    margin-top: calc(20 * var(--r));
    border: 1px solid #f63e3d;
    border-radius: calc(6 * var(--r));
    background: #fff;
    color: #f63e3d;
    font-size: calc(28 * var(--r));
}
.m-input {
    width: 100%;
    height: calc(86 * var(--r));
    border: 1px solid #c2c2c2;
    border-radius: calc(6 * var(--r));
    padding: 0 calc(24 * var(--r));
    font-size: calc(30 * var(--r));
}

/* ===== 报告页（对照源站 example.png 750×1756 实测） ===== */
.m-app:has(.m-report) {
    background: #f5f5f5;
}
.m-page.m-report {
    background: #f5f5f5;
    min-height: 100vh;
    padding-bottom: calc(40 * var(--r));
}

/* 标题栏：对照 uni-page-head —— 44px、fixed 吸顶、标题 16px/700 */
.m-page.m-report .m-nav {
    position: fixed;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: var(--dw);
    max-width: 100%;
    height: 44px;
    height: calc(44px + env(safe-area-inset-top, 0px));
    padding: 7px 3px;
    padding-top: calc(7px + env(safe-area-inset-top, 0px));
    box-sizing: border-box;
    z-index: 998;
    background: #fff;
    border-bottom: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    overflow: hidden;
}
.m-page.m-report .m-nav-placeholder {
    width: 100%;
    height: 44px;
    height: calc(44px + env(safe-area-inset-top, 0px));
    flex-shrink: 0;
    background: #fff;
}
.m-page.m-report .m-nav h1 {
    position: absolute;
    left: 70px;
    right: 70px;
    margin: 0;
    font-size: 16px;
    font-weight: 700;
    line-height: 30px;
    text-align: center;
    color: #000;
    opacity: 1;
    font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.m-page.m-report .m-nav-back {
    position: relative;
    z-index: 1;
    width: auto;
    min-width: 32px;
    margin: 0 2px;
    padding: 0 6px;
    color: #000;
    font-size: 27px;
    line-height: 30px;
    font-weight: 400;
    font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Helvetica Neue", sans-serif;
}
.m-page.m-report .m-nav-right {
    position: relative;
    z-index: 1;
    width: 70px;
    min-width: 70px;
    height: 30px;
    line-height: 30px;
}

.rpt-page {
    position: relative;
    background: #f5f5f5;
}

/* 样例页：源站整图，宽度铺满 */
.rpt-example-shot {
    line-height: 0;
}
.rpt-example-img {
    display: block;
    width: 100%;
    height: auto;
    vertical-align: top;
}

.rpt-banner {
    position: relative;
    width: 100%;
    height: calc(338 * var(--r));
    overflow: hidden;
    background: #f63e3d;
}
.rpt-banner-bg {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
}

/* 卡片顶对齐源图 y=205；红底侧边到 y≈340 → 上浮 133 */
.rpt-body {
    position: relative;
    z-index: 2;
    margin-top: calc(-133 * var(--r));
    padding: 0 calc(32 * var(--r));
}

/* 汇总卡：顶 50 / 底 76，圆角 16，块间距 32 */
.rpt-summary {
    background: #fff;
    border-radius: calc(16 * var(--r));
    padding: calc(50 * var(--r)) calc(24 * var(--r)) calc(76 * var(--r));
    text-align: center;
    margin-bottom: calc(32 * var(--r));
}
.rpt-summary-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: calc(8 * var(--r));
    color: #333;
    font-size: calc(28 * var(--r));
    line-height: calc(30 * var(--r));
    font-weight: 400;
}
.rpt-heart {
    display: block;
    width: calc(32 * var(--r));
    height: calc(32 * var(--r));
    object-fit: contain;
    flex-shrink: 0;
}
.rpt-summary-status {
    margin-top: calc(64 * var(--r));
    color: #f63e3d;
    font-size: calc(56 * var(--r));
    font-weight: 700;
    line-height: calc(56 * var(--r));
    letter-spacing: calc(4 * var(--r));
}

.rpt-section {
    margin-bottom: calc(32 * var(--r));
    border-radius: calc(16 * var(--r));
    overflow: hidden;
    background: #fff;
}
.rpt-section-hd {
    background: #f63e3d;
    color: #fff;
    text-align: center;
    font-size: calc(32 * var(--r));
    font-weight: 700;
    height: calc(90 * var(--r));
    line-height: calc(90 * var(--r));
}
.rpt-section-bd {
    position: relative;
    background: #fff;
    padding: calc(32 * var(--r)) calc(32 * var(--r)) 0;
}

/* 粉底校验区 #FFF4F4，内边距约 28·24 */
.rpt-verify {
    background: #fff4f4;
    border-radius: calc(8 * var(--r));
    padding: calc(28 * var(--r)) calc(20 * var(--r)) calc(24 * var(--r));
    text-align: center;
}
.rpt-verify-tip {
    color: #666;
    font-size: calc(28 * var(--r));
    line-height: calc(30 * var(--r));
    font-weight: 400;
}
.rpt-verify-ok {
    margin-top: calc(30 * var(--r));
    color: #f63e3d;
    font-size: calc(36 * var(--r));
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: calc(10 * var(--r));
    line-height: 1;
}
.rpt-verify-icon {
    display: inline-flex;
    width: calc(36 * var(--r));
    height: calc(36 * var(--r));
    border-radius: 50%;
    border: calc(3 * var(--r)) solid #f63e3d;
    align-items: center;
    justify-content: center;
    font-size: calc(24 * var(--r));
    line-height: 1;
    font-weight: 700;
    box-sizing: border-box;
}

.rpt-rows {
    width: 100%;
}
.rpt-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    min-height: calc(94 * var(--r));
    padding: 0 calc(4 * var(--r));
    border-bottom: 1px solid #d8d8d8;
    font-size: calc(28 * var(--r));
    color: #333;
    line-height: 1.3;
    font-weight: 400;
}
.rpt-row:last-child {
    border-bottom: 0;
}
.rpt-k {
    color: #333;
    flex-shrink: 0;
}
.rpt-v {
    color: #333;
    text-align: right;
    word-break: break-all;
    padding-left: calc(24 * var(--r));
}

.rpt-section-bd--time {
    padding-bottom: calc(40 * var(--r));
}
.rpt-note {
    margin-top: calc(36 * var(--r));
    text-align: center;
    color: #999;
    font-size: calc(24 * var(--r));
    line-height: 1.4;
}

.rpt-section-seal .rpt-section-bd {
    min-height: calc(220 * var(--r));
    padding-bottom: calc(24 * var(--r));
}
.rpt-seal {
    position: absolute;
    right: calc(20 * var(--r));
    bottom: calc(20 * var(--r));
    width: calc(180 * var(--r));
    height: calc(180 * var(--r));
    opacity: .9;
    pointer-events: none;
    object-fit: contain;
}

.rpt-disclaimer {
    text-align: center;
    color: #c0c0c0;
    font-size: calc(22 * var(--r));
    line-height: 1.6;
    padding: calc(8 * var(--r)) calc(20 * var(--r)) calc(40 * var(--r));
}

/* =========================================================
 * 查询页：按源站截图像素对齐（433 宽 → 750 稿）
 * 页灰 #f5f5f5 / 按钮红 #f53d3d / 步骤珊瑚红 #e85a5a
 * 步骤灰 #999 / 协议链 #c75c64 / 说明 #999
 * ========================================================= */
.q-page {
    --q-red: #f53d3d;
    --q-step: #e85a5a;
    --q-gray: #f5f5f5;
    background: var(--q-gray);
    min-height: 100vh;
    min-height: 100dvh;
    color: #333;
    font-size: calc(28 * var(--r));
    font-weight: 400;
    /* 贴近源站移动端字体，避免 SimHei 过粗 */
    font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
    position: relative;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
}

/* 顶栏步骤：白底通栏固定在视口顶部；当前步 + 后接箭头为珊瑚红，其余 #999 */
.q-steps {
    position: fixed;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: var(--dw);
    max-width: 100%;
    z-index: 50;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(16 * var(--r));
    background: #fff;
    /* 高度 = 上下 padding + 字号，供下方占位使用 */
    padding: calc(32 * var(--r)) 0;
    font-size: calc(28 * var(--r));
    line-height: 1;
    color: #999;
    font-weight: 400;
    box-shadow: 0 1px 0 rgba(0, 0, 0, .04);
    box-sizing: border-box;
}
/* 为 fixed 步骤条留出等高占位，避免内容被挡住 */
.q-page::before {
    content: "";
    display: block;
    height: calc(92 * var(--r)); /* 32+28+32 */
}
.q-step.on {
    color: var(--q-step);
}
.q-arr {
    color: #999;
    font-size: calc(26 * var(--r));
    line-height: 1;
    transform: translateY(calc(-1 * var(--r)));
}
.q-arr.q-arr--on {
    color: var(--q-step);
}

/* 灰底内容区：左右边距 ≈16px */
.q-body {
    padding: calc(28 * var(--r)) calc(32 * var(--r)) calc(60 * var(--r));
}

/* Banner */
.q-banner {
    width: 100%;
    border-radius: calc(16 * var(--r));
    overflow: hidden;
    line-height: 0;
    background: #ff4d8a;
}
.q-banner-img {
    display: block;
    width: 100%;
    height: auto;
    vertical-align: top;
}

/* 白卡片：提示 + 表单 + 按钮 + 协议 */
.q-card {
    margin-top: calc(28 * var(--r));
    background: #fff;
    border-radius: calc(16 * var(--r));
    padding: calc(40 * var(--r)) calc(36 * var(--r)) calc(36 * var(--r));
    box-sizing: border-box;
}

/* 红字提示 ≈12~13px，左对齐 */
.q-need {
    margin: 0 0 calc(28 * var(--r));
    color: var(--q-red);
    font-size: calc(24 * var(--r));
    line-height: 1.45;
    font-weight: 400;
    text-align: left;
}

/* 表单行高 ≈52px */
.q-form {
    width: 100%;
}
.q-row {
    display: flex;
    align-items: center;
    min-height: calc(104 * var(--r));
    border-bottom: 1px solid #efefef;
}
.q-label {
    flex: none;
    width: calc(150 * var(--r));
    color: #333;
    font-size: calc(30 * var(--r));
    line-height: 1.2;
    white-space: nowrap;
    font-weight: 700;
}
.q-input {
    flex: 1;
    min-width: 0;
    height: calc(104 * var(--r));
    border: 0;
    outline: none;
    background: transparent;
    font-size: calc(30 * var(--r));
    color: #333;
    padding: 0;
    -webkit-appearance: none;
    appearance: none;
    font-weight: 400;
    font-family: inherit;
}
.q-input::placeholder {
    color: #b8b8b8;
    font-weight: 400;
}

/* 立即查询 */
.q-btn {
    display: block;
    width: 100%;
    margin: calc(44 * var(--r)) 0 0;
    height: calc(88 * var(--r));
    line-height: calc(88 * var(--r));
    text-align: center;
    background: var(--q-red);
    color: #fff;
    border: 0;
    border-radius: calc(10 * var(--r));
    font-size: calc(34 * var(--r));
    font-weight: 700;
    letter-spacing: calc(2 * var(--r));
    cursor: pointer;
    padding: 0;
    font-family: inherit;
}
.q-btn:active {
    opacity: .92;
}
.q-btn-modal {
    margin-top: calc(28 * var(--r));
}

/* 协议：正文 #888，链接 #c75c64；红底白勾 */
.q-agree {
    display: flex;
    align-items: flex-start;
    gap: calc(10 * var(--r));
    margin-top: calc(28 * var(--r));
    cursor: pointer;
    line-height: 1.55;
}
.q-agree input {
    display: none;
}
.q-agree-box {
    flex: none;
    width: calc(26 * var(--r));
    height: calc(26 * var(--r));
    margin-top: calc(5 * var(--r));
    border: 1px solid var(--q-red);
    border-radius: calc(4 * var(--r));
    background: #fff;
    box-sizing: border-box;
    position: relative;
}
.q-agree-box.is-checked {
    background: var(--q-red);
    border-color: var(--q-red);
}
.q-agree-box.is-checked::after {
    content: "";
    position: absolute;
    left: calc(7 * var(--r));
    top: calc(2 * var(--r));
    width: calc(7 * var(--r));
    height: calc(13 * var(--r));
    border: solid #fff;
    border-width: 0 calc(3 * var(--r)) calc(3 * var(--r)) 0;
    transform: rotate(45deg);
}
.q-agree-txt {
    flex: 1;
    font-size: calc(24 * var(--r));
    color: #888;
    text-align: left;
    font-weight: 400;
}
.q-link {
    color: #c75c64;
    text-decoration: none;
}

/* 说明：卡片外灰底 */
.q-desc {
    margin-top: calc(40 * var(--r));
    font-size: calc(24 * var(--r));
    color: #999;
    line-height: 1.75;
    font-weight: 400;
}
.q-desc p {
    margin: 0 0 calc(4 * var(--r));
}

.q-tips {
    text-align: center;
    color: var(--q-red);
    font-size: calc(24 * var(--r));
    min-height: calc(36 * var(--r));
    margin: calc(8 * var(--r)) calc(32 * var(--r)) 0;
}

/* 右侧浮钮：靠下侧（约页面 68% 高度） */
.q-float {
    position: fixed;
    right: 0;
    top: auto;
    bottom: calc(180 * var(--r));
    transform: none;
    z-index: 40;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: calc(14 * var(--r));
}
.q-fab {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(6 * var(--r));
    height: calc(56 * var(--r));
    padding: 0 calc(14 * var(--r)) 0 calc(12 * var(--r));
    border-radius: calc(28 * var(--r)) 0 0 calc(28 * var(--r));
    color: #fff;
    font-size: calc(22 * var(--r));
    line-height: 1;
    text-decoration: none;
    box-shadow: -2px 2px 6px rgba(0, 0, 0, .1);
    white-space: nowrap;
}
.q-fab-ico {
    display: block;
    width: calc(26 * var(--r));
    height: calc(26 * var(--r));
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    flex-shrink: 0;
}
.q-fab-order { background: #4a9aef; }
.q-fab-order .q-fab-ico {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round'%3E%3Crect x='5' y='3' width='14' height='18' rx='2'/%3E%3Cpath d='M8 8h8M8 12h8M8 16h5'/%3E%3C/svg%3E");
}
.q-fab-cs { background: #3cb878; }
.q-fab-cs .q-fab-ico {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 12a8 8 0 0 1 16 0'/%3E%3Cpath d='M4 12v3a2 2 0 0 0 2 2h1v-5H4zm16 0v3a2 2 0 0 1-2 2h-1v-5h3z'/%3E%3Cpath d='M14 19h-2a2 2 0 0 1-2-2'/%3E%3C/svg%3E");
}
.q-fab-complaint { background: #f5a623; }
.q-fab-complaint .q-fab-ico {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 3l9 16H3L12 3z'/%3E%3Cpath d='M12 10v4M12 17h.01'/%3E%3C/svg%3E");
}

/* 授权弹窗：粉底顶区 + 红盾 + 温馨提示 */
.q-modal-mask {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, .55);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 99;
    padding: calc(48 * var(--r)) calc(40 * var(--r));
}
.q-modal {
    background: #fff;
    width: 100%;
    max-width: calc(620 * var(--r));
    border-radius: calc(24 * var(--r));
    padding: 0 calc(36 * var(--r)) calc(40 * var(--r));
    text-align: center;
    position: relative;
    overflow: hidden;
}
/* 顶部淡粉渐变装饰 */
.q-modal-hd {
    position: relative;
    height: calc(180 * var(--r));
    margin: 0 calc(-36 * var(--r));
    background:
        radial-gradient(ellipse 80% 70% at 20% 30%, rgba(255, 180, 180, .55), transparent 60%),
        radial-gradient(ellipse 70% 60% at 80% 40%, rgba(255, 200, 190, .5), transparent 55%),
        linear-gradient(180deg, #ffe8e4 0%, #fff5f3 55%, #fff 100%);
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding-bottom: calc(8 * var(--r));
}
.q-shield-img {
    width: calc(112 * var(--r));
    height: calc(130 * var(--r));
    display: block;
    object-fit: contain;
    flex-shrink: 0;
    filter: drop-shadow(0 calc(6 * var(--r)) calc(10 * var(--r)) rgba(230, 58, 58, .35));
}
.q-close {
    position: absolute;
    right: calc(18 * var(--r));
    top: calc(14 * var(--r));
    z-index: 2;
    width: calc(48 * var(--r));
    height: calc(48 * var(--r));
    font-size: calc(44 * var(--r));
    color: #c8c8c8;
    text-decoration: none;
    line-height: calc(44 * var(--r));
    text-align: center;
}
.q-modal-title {
    margin: calc(20 * var(--r)) 0 calc(24 * var(--r));
    font-size: calc(36 * var(--r));
    color: #222;
    font-weight: 700;
    line-height: 1.2;
}
.q-modal-txt {
    font-size: calc(26 * var(--r));
    line-height: 1.75;
    text-align: left;
    color: #333;
    margin: 0;
    font-weight: 400;
}
.q-modal-txt b {
    font-weight: 700;
    color: #222;
}
.q-btn-modal {
    margin-top: calc(36 * var(--r));
    border-radius: calc(12 * var(--r));
}

/* =========================================================
 * 查询等待页：火箭 + 文案 + 右侧浮钮（客服橙 / 投诉蓝 / 首页绿）
 * ========================================================= */
.w-page {
    min-height: 100vh;
    min-height: 100dvh;
    background: #f5f5f5;
    position: relative;
}
.w-page::before {
    display: none;
}
.w-main {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    padding-top: calc(220 * var(--r));
    box-sizing: border-box;
}
.w-rocket {
    display: block;
    width: calc(280 * var(--r));
    height: auto;
    object-fit: contain;
}
.w-title {
    margin: calc(72 * var(--r)) 0 0;
    color: #333;
    font-size: calc(34 * var(--r));
    font-weight: 500;
    line-height: 1.4;
    text-align: center;
}
.w-sub {
    margin: calc(20 * var(--r)) 0 0;
    color: #333;
    font-size: calc(28 * var(--r));
    font-weight: 400;
    line-height: 1.45;
    text-align: center;
    padding: 0 calc(40 * var(--r));
}
.w-float {
    position: fixed;
    right: 0;
    bottom: calc(220 * var(--r));
    z-index: 40;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: calc(16 * var(--r));
}
.w-fab {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(6 * var(--r));
    height: calc(56 * var(--r));
    padding: 0 calc(16 * var(--r)) 0 calc(14 * var(--r));
    border-radius: calc(28 * var(--r)) 0 0 calc(28 * var(--r));
    color: #fff;
    font-size: calc(22 * var(--r));
    line-height: 1;
    text-decoration: none;
    box-shadow: -2px 2px 6px rgba(0, 0, 0, .1);
    white-space: nowrap;
}
.w-fab-ico {
    display: block;
    width: calc(26 * var(--r));
    height: calc(26 * var(--r));
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    flex-shrink: 0;
}
.w-fab-cs { background: #ee962a; }
.w-fab-cs .w-fab-ico {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 12a8 8 0 0 1 16 0'/%3E%3Cpath d='M4 12v3a2 2 0 0 0 2 2h1v-5H4zm16 0v3a2 2 0 0 1-2 2h-1v-5h3z'/%3E%3Cpath d='M14 19h-2a2 2 0 0 1-2-2'/%3E%3C/svg%3E");
}
.w-fab-complaint { background: #418bf8; }
.w-fab-complaint .w-fab-ico {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l8 3v5c0 5-3.5 8.5-8 10-4.5-1.5-8-5-8-10V6l8-3z'/%3E%3C/svg%3E");
}
.w-fab-home { background: #2ac18a; }
.w-fab-home .w-fab-ico {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round'%3E%3Crect x='5' y='3' width='14' height='18' rx='2'/%3E%3Cpath d='M8 8h8M8 12h8M8 16h5'/%3E%3C/svg%3E");
}

/* =========================================================
 * 确认支付页：金额 / 支付方式 / 立即支付
 * 页灰 #f5f5f5；按钮红 #f53d3d；选中勾 #f63e3d
 * ========================================================= */
.p-page {
    padding-bottom: calc(48 * var(--r));
}
.p-body {
    padding: calc(48 * var(--r)) calc(32 * var(--r)) calc(8 * var(--r));
}
.p-amount {
    text-align: center;
    margin-bottom: calc(48 * var(--r));
}
.p-amount-label {
    margin: 0;
    color: #999;
    font-size: calc(28 * var(--r));
    line-height: 1.4;
    font-weight: 400;
}
.p-amount-value {
    margin: calc(16 * var(--r)) 0 0;
    color: #333;
    line-height: 1.1;
    font-weight: 700;
}
.p-yen {
    font-size: calc(36 * var(--r));
    font-weight: 700;
    margin-right: calc(6 * var(--r));
    vertical-align: 0.08em;
}
.p-num {
    font-size: calc(68 * var(--r));
    font-weight: 700;
    letter-spacing: calc(1 * var(--r));
}
.p-amount-tip {
    margin: calc(18 * var(--r)) 0 0;
    color: #b0b0b0;
    font-size: calc(24 * var(--r));
    line-height: 1.4;
    font-weight: 400;
}

.p-methods {
    display: flex;
    flex-direction: column;
    gap: calc(24 * var(--r));
}
.p-method {
    display: flex;
    align-items: center;
    background: #fff;
    border-radius: calc(16 * var(--r));
    min-height: calc(100 * var(--r));
    padding: 0 calc(28 * var(--r));
    box-sizing: border-box;
    cursor: pointer;
    -webkit-user-select: none;
    user-select: none;
}
.p-method-ico {
    width: calc(48 * var(--r));
    height: calc(48 * var(--r));
    object-fit: contain;
    display: block;
    flex-shrink: 0;
    margin-right: calc(20 * var(--r));
}
.p-method-name {
    flex: 1;
    min-width: 0;
    color: #333;
    font-size: calc(30 * var(--r));
    font-weight: 400;
    line-height: 1.2;
}
.p-method-check {
    width: calc(40 * var(--r));
    height: calc(40 * var(--r));
    border-radius: 50%;
    border: calc(2 * var(--r)) solid #c9c9c9;
    box-sizing: border-box;
    flex-shrink: 0;
    position: relative;
    background: #fff;
}
.p-method.is-on .p-method-check {
    border-color: #f63e3d;
    background: #f63e3d;
}
.p-method.is-on .p-method-check::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 45%;
    width: calc(10 * var(--r));
    height: calc(18 * var(--r));
    border: solid #fff;
    border-width: 0 calc(3 * var(--r)) calc(3 * var(--r)) 0;
    transform: translate(-50%, -50%) rotate(45deg);
}

.p-btn-pay {
    display: block;
    width: 100%;
    margin: calc(56 * var(--r)) 0 0;
    height: calc(96 * var(--r));
    line-height: calc(96 * var(--r));
    text-align: center;
    background: #f53d3d;
    color: #fff;
    border: 0;
    border-radius: calc(96 * var(--r));
    font-size: calc(34 * var(--r));
    font-weight: 700;
    letter-spacing: calc(2 * var(--r));
    cursor: pointer;
    padding: 0;
    font-family: inherit;
}
.p-btn-pay:active {
    opacity: .92;
}
.p-page .box-card {
    margin-top: calc(40 * var(--r));
}
.p-page .box-card.why-box-card {
    margin-bottom: calc(24 * var(--r));
}

/* ===== 电子签字页 ===== */
html.is-sign,
html.is-sign body,
html.is-sign .m-app {
    height: 100%;
    height: 100dvh;
    max-height: 100%;
    max-height: 100dvh;
    overflow: hidden;
}
.s-page {
    display: flex;
    flex-direction: column;
    height: 100%;
    max-height: 100%;
    overflow: hidden;
}
.s-shell {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    padding: calc(16 * var(--r)) calc(24 * var(--r)) calc(20 * var(--r));
    overflow: hidden;
}
.s-card {
    flex: 1 1 auto;
    min-height: 0;
    background: #fff;
    border-radius: calc(20 * var(--r));
    padding: calc(28 * var(--r)) calc(28 * var(--r)) calc(24 * var(--r));
    display: flex;
    flex-direction: column;
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .04);
}
.s-head {
    flex: none;
    text-align: center;
    margin-bottom: calc(16 * var(--r));
}
.s-title {
    margin: 0;
    font-size: calc(32 * var(--r));
    font-weight: 700;
    color: #222;
    letter-spacing: calc(1 * var(--r));
}
.s-ver {
    margin: calc(8 * var(--r)) 0 0;
    font-size: calc(20 * var(--r));
    color: #bbb;
}
.s-doc-wrap {
    flex: 1 1 auto;
    min-height: 0;
    position: relative;
    overflow: hidden;
}
.s-doc {
    font-size: calc(26 * var(--r));
    color: #555;
    line-height: 1.8;
    text-align: justify;
}
.s-doc p {
    margin: 0 0 calc(18 * var(--r));
    text-indent: 2em;
}
.s-doc p:first-child {
    text-indent: 0;
    font-weight: 600;
    color: #333;
}
.s-doc p:last-child {
    text-indent: 0;
    margin-bottom: 0;
}
.s-doc .s-sign-line {
    text-indent: 0;
    word-break: break-all;
}
.s-hl {
    color: #e63a3a;
    font-weight: 700;
}
.s-blank {
    display: inline-block;
    min-width: calc(88 * var(--r));
    height: 1em;
    border-bottom: 1px solid #d0d0d0;
    vertical-align: baseline;
    color: transparent !important;
}
.s-hl.is-in,
.s-doc strong.is-in {
    animation: sInk .45s ease;
}
@keyframes sInk {
    from { background: #ffe4e4; }
    to { background: transparent; }
}
.s-doc-scroll {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    overflow-x: hidden;
    overflow-y: auto;
    background: #fafafa;
    border-radius: calc(12 * var(--r));
    padding: calc(24 * var(--r)) calc(22 * var(--r)) calc(48 * var(--r));
    box-sizing: border-box;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    touch-action: pan-y;
}
.s-doc-fade {
    pointer-events: none;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: calc(72 * var(--r));
    border-radius: 0 0 calc(12 * var(--r)) calc(12 * var(--r));
    background: linear-gradient(to bottom, rgba(250,250,250,0), #fafafa);
    transition: opacity .2s;
}
.s-doc-fade.is-end {
    opacity: 0;
}
.s-doc strong {
    color: #222;
    font-weight: 700;
}
.s-doc-tip {
    color: #f53d3d !important;
    margin-top: calc(8 * var(--r)) !important;
}
.s-foot {
    flex: none;
    padding-top: calc(16 * var(--r));
}
.s-progress {
    height: calc(6 * var(--r));
    background: #f0f0f0;
    border-radius: 99px;
    overflow: hidden;
    margin-bottom: calc(12 * var(--r));
}
.s-progress i {
    display: block;
    height: 100%;
    width: 0;
    background: #f53d3d;
    border-radius: 99px;
    transition: width .12s linear;
}
.s-hint {
    margin: 0 0 calc(16 * var(--r));
    text-align: center;
    font-size: calc(22 * var(--r));
    color: #999;
    min-height: calc(32 * var(--r));
}
.s-page.is-read .s-hint {
    color: #f53d3d;
}
.s-page.is-signed .s-hint {
    color: #2ea36a;
}
.s-stamp {
    display: none;
    align-items: center;
    gap: calc(20 * var(--r));
    margin: 0 0 calc(16 * var(--r));
    padding: calc(12 * var(--r)) calc(20 * var(--r));
    background: #fff8f8;
    border: 1px solid #ffd9d9;
    border-radius: calc(12 * var(--r));
}
.s-page.is-signed .s-stamp {
    display: flex;
    animation: sPop .32s ease;
}
@keyframes sPop {
    from { opacity: 0; transform: translateY(8px) scale(.96); }
    to { opacity: 1; transform: none; }
}
.s-stamp-name {
    flex: none;
    font-family: "STKaiti", "KaiTi", "Kaiti SC", "楷体", "华文楷体", serif;
    font-size: calc(44 * var(--r));
    color: #1a3a7c;
    line-height: 1.1;
    letter-spacing: calc(4 * var(--r));
    transform: rotate(-6deg);
}
.s-stamp-meta {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: calc(4 * var(--r));
    font-size: calc(20 * var(--r));
    color: #999;
}
.s-stamp-meta span:first-child {
    color: #f53d3d;
    font-weight: 600;
    font-size: calc(22 * var(--r));
}
.s-btn-main {
    margin: 0;
}
.s-btn-main:disabled {
    background: #e8e8e8;
    color: #aaa;
    cursor: not-allowed;
}
.s-resign {
    display: block;
    width: 100%;
    margin-top: calc(10 * var(--r));
    background: none;
    border: 0;
    color: #999;
    font-size: calc(22 * var(--r));
    line-height: calc(40 * var(--r));
    cursor: pointer;
}
.s-page:not(.is-signed) .s-resign {
    display: none;
}
.s-page .q-tips {
    min-height: calc(28 * var(--r));
    margin: calc(8 * var(--r)) 0 0;
    text-align: center;
    color: #f53d3d;
    font-size: calc(22 * var(--r));
}
.s-page--public {
    height: auto;
    max-height: none;
    overflow: visible;
}
.s-page--public .s-shell {
    overflow: visible;
    padding-bottom: calc(40 * var(--r));
}
.s-page--public .s-card {
    flex: none;
    min-height: auto;
    overflow: visible;
}
.s-page--public .s-doc {
    background: #fafafa;
    border-radius: calc(12 * var(--r));
    padding: calc(24 * var(--r)) calc(22 * var(--r));
}
.s-page--public .s-doc p:last-child {
    margin-bottom: 0;
}

/* 我的订单 */
.o-page .m-nav { background: #fff; }
.o-list {
    padding: calc(16 * var(--r)) calc(24 * var(--r)) calc(40 * var(--r));
}
.o-card {
    background: #fff;
    border-radius: calc(16 * var(--r));
    padding: calc(28 * var(--r)) calc(28 * var(--r)) calc(20 * var(--r));
    margin-bottom: calc(20 * var(--r));
}
.o-card-hd {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: calc(16 * var(--r));
    padding-bottom: calc(16 * var(--r));
    border-bottom: 1px solid #f3f3f3;
}
.o-no {
    color: #999;
    font-size: calc(24 * var(--r));
}
.o-pay {
    font-size: calc(24 * var(--r));
    color: #f63e3d;
}
.o-pay-paid { color: #2db55d; }
.o-pay-closed, .o-pay-refunded { color: #999; }
.o-row {
    display: flex;
    justify-content: space-between;
    font-size: calc(26 * var(--r));
    line-height: 1.8;
    color: #888;
}
.o-row strong { color: #333; font-weight: 500; }
.o-amt { color: #f63e3d !important; }
.o-actions {
    margin-top: calc(20 * var(--r));
    text-align: right;
}
.o-btn {
    display: inline-block;
    min-width: calc(160 * var(--r));
    height: calc(64 * var(--r));
    line-height: calc(64 * var(--r));
    text-align: center;
    border-radius: calc(32 * var(--r));
    font-size: calc(26 * var(--r));
}
.o-btn-red {
    background: #f63e3d;
    color: #fff;
}
.o-btn-disabled {
    background: #eee;
    color: #aaa;
}
.o-more {
    display: block;
    text-align: center;
    color: #f63e3d;
    font-size: calc(26 * var(--r));
    padding: calc(16 * var(--r)) 0 calc(32 * var(--r));
}

/* 查询页强制灰底（覆盖首页粉底） */
html.is-query,
html.is-query body,
html.is-query .m-app,
.m-app:has(.q-page),
body:has(.q-page) {
    background: #f5f5f5 !important;
}

/* 大屏按 480 宽展示（电脑端整体放大），手机保持满屏自适应 */
@media (min-width: 540px) {
    :root {
        --dw: 560px;
        --r: calc(560px / 750);
    }
    body {
        padding: 24px 0;
        background: #e8e8e8;
    }
    .m-app {
        border-radius: 0;
        box-shadow: 0 4px 24px rgba(0, 0, 0, .08);
    }
    body:has(.q-page) {
        background: #e8e8e8;
    }
}
