/* ============================================
   BOOST - H5 抢单系统样式
   ============================================ */
* , *::before, *::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    --green-from: #27B16D;
    --green-to: #08944F;
    --green-dark: #068D4B;
    --green-mid: #27B16D;
    --ad-bg: #DEFFEF;
    --ad-title: #3E7FFF;
    --merchant-bg: #F5F5F5;
    --grab-red: #FF4502;
    --gray-text: #353535;
    --footer-gray: #B3B3B3;
}

html, body {
    font-family: "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Microsoft YaHei", sans-serif;
    background: #fff;
    color: #000;
    line-height: 1.5;
    font-size: 14px;
    -webkit-font-smoothing: antialiased;
    -webkit-tap-highlight-color: transparent;
}

a { text-decoration: none; color: inherit; }
img { max-width: 150%; display: block; }
ul, ol { list-style: none; }
input, textarea, button { font-family: inherit; outline: none; border: none; }

/* ============================================
   Header
   ============================================ */
.boost-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: linear-gradient(to right, var(--green-from), var(--green-to));
    padding: 12px 16px calc(16px + env(safe-area-inset-top)) ;
    /* PC 适配：内容居中 */
    max-width: 768px;
    margin: 0 auto;
    width: 100%;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

/* 上模块 */
.header-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 14px;
}

.header-logo {
    display: flex;
    align-items: center;
}
.header-logo .icon-1BOOST {
    font-size: 14px;
    color: #fff;
    line-height: 1;
}
.header-logo-img {
    display: block;
    height: 30px;
    max-width: 120px;
    width: auto;
    object-fit: contain;
    object-position: left center;
}

.header-location {
    display: flex;
    align-items: center;
    gap: 5px;
    background: var(--green-dark);
    color: #fff;
    font-size: 14px;
    padding: 0 12px;
    border-radius: 18px;
}
.header-location .icon-1dingwei {
    font-size: 16px;
    color: #fff;
}

/* 下模块 */
.header-bottom {
    display: flex;
    align-items: center;
    gap: 12px;
}

.search-box {
    position: relative;
    flex: 1;
    display: flex;
    align-items: center;
}
.search-box input {
    width: 100%;
    height: 32px;
    background: rgba(255, 255, 255, 0.35);
    border-radius: 20px;
    padding: 0 44px 0 18px;
    color: #fff;
    font-size: 14px;
    /* box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); */
    transition: background 0.3s;
}
.search-box input::placeholder {
    color: #fff;
    transition: opacity 0.3s;
}
/* 聚焦时隐藏 placeholder，失焦且为空时才显示 */
.search-box input:focus::placeholder {
    opacity: 0;
}
.search-box .icon-1sousuo {
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 16px;
    color: #fff;
    pointer-events: none;
}

.service-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    text-decoration: none;
    height: 40px;
    border-radius: 20px;
    /* background: rgba(255, 255, 255, 0.35);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); */
    cursor: pointer;
}
.service-btn .icon-1kefu {
    font-size: 30px;
    color: #fff;
}

/* ============================================
   广告位模块
   ============================================ */
.ad-section {
    background: var(--ad-bg);
    padding: 14px 0 14px 14px;
    overflow: hidden;
    max-width: 768px;
    margin: 0 auto;
}
.ad-list {
    display: flex;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    padding: 0 16px;
    /* 滚动条隐藏 */
    scrollbar-width: none;
}
.ad-list::-webkit-scrollbar {
    display: none;
}

.ad-card {
    flex-shrink: 0;
    width: calc(100% - 90px);
    background: #fff;
    border-radius: 12px;
    margin-right: 12px;
    padding: 14px;
    scroll-snap-align: start;
    cursor: pointer;
    /* 每张宽度留出 90px 展示区，让下一张露出一部分（peek 效果） */
}
.ad-card:first-child {
    max-width: 300px;
}

.ad-title {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 12px;
}
.ad-title img.ad-title-icon {
    width: 18px;
    height: 18px;
    object-fit: contain;
}
.ad-title span {
    font-size: 15px;
    font-weight: 700;
    color: var(--ad-title);
}

.ad-img {
    border-radius: 8px;
    overflow: hidden;
    margin-bottom: 10px;
    /* 固定高度，避免图片尺寸不一致导致卡片高度参差 */
    height: 150px;
}
.ad-img img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ad-desc {
    font-size: 13px;
    color: #000;
    word-break: break-all;
    line-height: 1.5;
}

/* ============================================
   商户模块
   ============================================ */
.merchant-section {
    background: #fff;
    padding: 0 16px;
    max-width: 768px;
    margin: 0 auto;
    padding-bottom: 80px; /* 给底部导航留足空间，避免滑动不完全 */
}

/* ---- 商户分类 ---- */
.category-wrap {
    position: sticky;
    top: 0; /* 由 JS 动态设置为 header 高度 */
    z-index: 99;
    background: #fff;
    padding: 16px 0;
    /* margin-bottom: 4px; */
}
.category-list {
    display: flex;
    flex-direction: column;
    gap: 10px; /* 两行之间的垂直间距固定 */
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}
.category-row {
    display: flex;
    gap: 10px; /* 行内分类框间距固定 */
    width: max-content; /* 行宽随内容，超出时整体横向滑动 */
}
.category-list::-webkit-scrollbar {
    display: none;
}

.category-item {
    position: relative;
    display: flex;
    align-items: center;
    flex-shrink: 0; /* 框宽由内容决定，不被压缩 */
    padding: 8px 18px;
    border: 1px solid #CDCDCD;
    border-radius: 5px;
    font-size: 14px;
    color: #000;
    cursor: pointer;
    transition: all 0.2s ease;
}
.category-item .category-check {
    display: none;
    position: absolute;
    right: -1px;
    bottom: -1px;
    width: 24px;
    height: auto;
}

/* 选中状态 */
.category-item.active {
    background: #F0FFF8;
    border-color: var(--green-mid);
    color: var(--green-mid);
    box-shadow: 0 2px 10px rgba(39, 177, 109, 0.25);
}
.category-item.active .category-check {
    display: block;
}

/* ---- 商户列表 ---- */
.merchant-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}

.merchant-card {
    background: var(--merchant-bg);
    border-radius: 10px;
    padding: 10px;
    overflow: hidden;
    cursor: pointer;
}

/* 商户头部 */
.merchant-head {
    margin-bottom: 8px;
}
.merchant-info {
    display: flex;
    align-items: center;
    gap: 6px;
}
.merchant-icon {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    flex-shrink: 0;
}
.merchant-name {
    font-size: 12px;
    color: #000;
    font-weight: 600;
    flex-shrink: 0;
}
.merchant-level {
    font-size: 20px;
    color: #FF4502;
    line-height: 1;
}
/* 大厅商户列表：商户等级 svg 图标（替代 iconfont 用户等级图标） */
img.merchant-level {
    height: 14px;
    width: auto;
    flex-shrink: 0;
    display: inline-block;
    vertical-align: middle;
}
/* 大厅商户列表头部：头像 + 右侧两行文本（第一行=名称+收藏按钮，第二行=商户等级左对齐） */
.merchant-list .merchant-head {
    position: relative;
}
.merchant-list .merchant-info {
    flex: 1;
    min-width: 0;
    align-items: flex-start; /* 头像对齐第一行名称 */
}
.merchant-list .merchant-text {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.merchant-list .merchant-name-row {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}
.merchant-list .merchant-name {
    flex: 1;
    min-width: 0;              /* 允许收缩，配合省略号 */
    overflow: hidden;
    text-overflow: ellipsis;   /* 名称过长用 ... 代替 */
    white-space: nowrap;
}
.merchant-list .merchant-level {
    align-self: flex-start;     /* 等级在名称下方左对齐 */
}
/* 收藏按钮：与名称同行，不再绝对定位 */
.merchant-list .merchant-fav {
    position: static;
    flex-shrink: 0;
}
/* 收藏五角星：默认灰色，收藏后 #27B16D */
.merchant-fav {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    flex-shrink: 0;
    cursor: pointer;
    user-select: none;
    color: #C8C8C8;
}
.merchant-fav .merchant-fav-star {
    font-style: normal;
    font-family: "iconfont";
    font-size: 18px;
    line-height: 1;
    color: inherit;
}
.merchant-fav .merchant-fav-num {
    font-style: normal;
    font-size: 12px;
    color: #999;
}
.merchant-fav.active {
    color: #27B16D;
}
.merchant-fav.active .merchant-fav-num {
    color: #27B16D;
}
/* 抢单满员后按钮置灰 */
.grab-btn-closed {
    color: #C8C8C8 !important;
    cursor: default;
    pointer-events: none;
}

/* 商品图片 */
.merchant-img {
    border-radius: 8px;
    overflow: hidden;
    margin-bottom: 8px;
}
.merchant-img {
    height: 140px;
}
.merchant-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* 描述 */
.merchant-desc {
    font-size: 12px;
    color: #000;
    margin-bottom: 10px;
    word-break: break-all;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* 抢单模块 */
.grab-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.grab-progress {
    display: flex;
    align-items: center;
    gap: 4px;
    border: 1px solid #CDCDCD;
    border-radius: 20px;
    padding: 0 7px;
}
.grab-progress .icon-1dianji {
    font-size: 15px;
    color: #FF4502;
}
.grab-progress .grab-num {
    font-size: 14px;
    font-weight: 700;
    color: #FF4502;
}
.grab-progress .grab-total {
    font-size: 13px;
    color: var(--gray-text);
}

.grab-btn {
    font-size: 15px;
    font-weight: 700;
    color: var(--grab-red);
    cursor: pointer;
    /* padding: 4px 6px; */
    transition: opacity 0.2s;
}
.grab-btn:active {
    opacity: 0.6;
}
/* 商户详情页订单按钮状态色（复用抢单按钮，替换为状态文字） */
.grab-btn.grab-state-go {
    color: #27B16D;
}
.grab-btn.grab-state-pass {
    color: #27B16D;
}
.grab-btn.grab-state-reject {
    color: #E74646;
}
.grab-btn.grab-state-fixed {
    color: #959595;
    cursor: default;
    pointer-events: none;
}

/* ============================================
   活动模块
   ============================================ */
.activity-section {
    margin-top: 20px;
    overflow: hidden;
    position: relative; /* 左滑提示气泡的定位基准 */
}
/* 左滑提示气泡：活动超过两个（列表可横向滚动）时显示在右下角，
   半透明黑底胶囊 + 循环向左滑动的双箭头动效，用户滚动或 6 秒后自动淡出 */
.activity-swipe-tip {
    position: absolute;
    right: 10px;
    bottom: 14px;
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    border-radius: 16px;
    background: rgba(0, 0, 0, 0.55);
    z-index: 5;
    pointer-events: none; /* 不拦截活动卡片的点击 */
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: opacity 0.35s, transform 0.35s, visibility 0.35s;
}
.activity-swipe-tip.show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    animation: tipBreath 1.6s ease-in-out 0.35s infinite;
}
@keyframes tipBreath {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-3px); }
}
.activity-swipe-arrows {
    display: flex;
    align-items: center;
}
.activity-swipe-arrows svg {
    width: 13px;
    height: 13px;
    display: block;
    margin-left: -3px;
    animation: swipeArrowMove 1.2s linear infinite;
}
.activity-swipe-arrows svg:last-child {
    animation-delay: 0.18s;
}
@keyframes swipeArrowMove {
    0% { transform: translateX(5px); opacity: 0; }
    35% { opacity: 1; }
    100% { transform: translateX(-4px); opacity: 0; }
}
.activity-swipe-text {
    font-size: 11px;
    color: #fff;
    white-space: nowrap;
}
.activity-list {
    display: flex;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    padding-bottom: 6px;
    /* 滚动条隐藏 */
    scrollbar-width: none;
}
.activity-list::-webkit-scrollbar {
    display: none;
}
/* 一行默认两个，超出向右滑动展示（宽度=容器一半减去间距） */
.activity-card {
    flex: 0 0 calc((100% - 12px) / 2);
    scroll-snap-align: start;
    display: flex;
    align-items: stretch;
    gap: 8px;
    padding: 8px;
    margin-right: 12px;
    border-radius: 12px;
    background: linear-gradient(180deg, #FFF2EE 0%, #ECFFF6 100%);
    cursor: pointer;
}
/* 左 3/4 封面图 */
.activity-cover {
    flex: 3;
    min-width: 0;
}
.activity-cover img {
    /* width: 100%; */
    height: 92px;
    object-fit: cover;
    border-radius: 8px;
    display: block;
}
/* 右 1/4 进入按钮：置于卡片底部 */
.activity-entry {
    flex: 1;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding-bottom: 2px;
}
.activity-entry-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: linear-gradient(180deg, #7EFCBE 0%, #27B16D 100%);
    box-shadow: 0 2px 6px rgba(39, 177, 109, 0.35);
}
.activity-entry-btn svg {
    width: 18px;
    height: 14px;
    display: block;
}

/* ============================================
   商户排行榜
   ============================================ */
.rank-section {
    margin-top: 20px;
    overflow: hidden;
}
.rank-title {
    font-size: 16px;
    font-weight: 700;
    color: #000000;
    text-align: left;
    margin-bottom: 12px;
}
.rank-list {
    display: flex;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 6px;
    scrollbar-width: none;
}
.rank-list::-webkit-scrollbar {
    display: none;
}
.rank-card {
    flex-shrink: 0;
    width: 110px;
    margin-right: 12px;
    border-radius: 12px;
    background: linear-gradient(180deg, #EAF8E5 0%, #A8FFCF 55%, #EEFFF5 100%);
    padding: 14px 12px;
    display: flex;
    flex-direction: column;
    align-items: center;
    scroll-snap-align: start;
}
.rank-no {
    width: 100%;
    text-align: left;
    font-size: 20px;
    font-weight: 700;
    color: #27B16D;
    line-height: 1.2;
    margin-bottom: 14px;
}
/* 头像 + 等级 */
.rank-avatar-wrap {
    position: relative;
    margin-bottom: 12px;
}
.rank-avatar {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    display: block;
    object-fit: cover;
    /* 2px 间距 + 4px 外框 */
    box-shadow: 0 0 0 2px #fff, 0 0 0 6px #F8AD21;
}
/* 无头像占位：灰底圆 + 人形剪影，沿用 .rank-avatar 尺寸/外框，与"我的"页面一致 */
.rank-no-avatar {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #F0F2F5;
    color: #C0C4CC;
    overflow: hidden;
}
.rank-no-avatar .iconfont {
    font-size: 32px;
    line-height: 1;
}
/* 商户排行榜等级角标：rank-lv1~5.svg（与详情/大厅列表所用等级图标不同）
   样式同用户排行榜 .rank-level：浅黄圆底 + 2px 黄色外圈，徽章略小 */
.rank-level-badge {
    position: absolute;
    right: -5px;
    bottom: -5px;
    z-index: 2; /* 层级在头像之上 */
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #FFF1DC;
    box-shadow: 0 0 0 2px #F8AD21;
    display: flex;
    align-items: center;
    justify-content: center;
}
.rank-level-badge .rank-level-svg {
    width: 16px;
    height: 16px;
    display: block;
}
.rank-level {
    position: absolute;
    right: -4px;
    bottom: -4px;
    z-index: 2; /* 层级在头像之上 */
    font-size: 20px;
    color: #FF4502;
    background: #FFF1DC;
    border-radius: 50%;
    line-height: 1;
    /* 2px 外框 */
    box-shadow: 0 0 0 2px #F8AD21;
    padding: 2px;
}
.rank-name {
    font-size: 14px;
    font-weight: 700;
    color: #000000;
    text-align: center;
    margin: 6px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}
.rank-views {
    font-size: 16px;
    font-weight: 700;
    color: #27B16D;
    text-align: center;
}

/* ============================================
   用户排行榜（复用商户排行榜样式 + 个性化覆盖）
   ============================================ */
.user-rank-section {
    margin-top: 20px;
}
.user-rank-card {
    background: linear-gradient(180deg, #FFE0B3 0%, #FFD18F 55%, #FFF4E5 100%);
}
.user-rank-card .rank-no {
    color: #E17C10;
}
.user-rank-views {
    display: flex;
    align-items: center;
    gap: 4px;
    color: #E17C10;
}
.user-rank-views .icon-1jifen {
    font-size: 15px;
    color: #E17C10;
    line-height: 1;
}

/* ============================================
   底部简介模块
   ============================================ */
.about-section {
    margin-top: 20px;
    border-top: 1px solid #DCDCDC; /* 与用户排行榜之间的灰色分割线 */
    padding: 24px 0 0;
}
.about-logo {
    text-align: left;
    margin-bottom: 12px;
}
.about-logo img {
    display: block;
    height: 32px; /* 与原图标字号一致，保持底部模块紧凑 */
    max-width: 240px;
    width: auto;
    object-fit: contain;
    object-position: left center;
}
.about-desc {
    font-size: 16px;
    color: #C0C0C0;
    text-align: left;
    line-height: 1.6;
    margin-bottom: 20px;
}
.about-links {
    display: flex;
    flex-wrap: wrap; /* 一行两个 */
    width: 100%;
}
.about-links a {
    font-size: 14px;
    color: #000000;
    width: 50%;
    box-sizing: border-box;
    padding: 8px 0;
    text-align: left;
}

/* ============================================
   底部社交 + 版权模块
   ============================================ */
.foot-section {
    margin-top: 20px;
    border-top: 1px solid #C0C0C0; /* 与简介模块之间的灰色分割线 */
    padding: 24px 0 0;
}
.social-icons {
    display: flex;
    align-items: center;
    justify-content: space-between; /* 6 个图标平均分布 */
    margin: 0 30px 24px 30px;
}
.social-icons .iconfont {
    font-size: 34px;
    width: 1em;
    height: 1em;
    line-height: 1;
    vertical-align: -0.1em;
    display: inline-block;
}
.legal-links {
    display: flex;
    align-items: center;
    justify-content: center; /* 居中 */
    gap: 28px;
    margin-bottom: 14px;
}
.legal-links a {
    font-size: 13px;
    color: #000000;
}
.copyright {
    font-size: 14px;
    color: #000000;
    text-align: center;
}

/* ============================================
   Footer 导航
   ============================================ */
.boost-footer {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    max-width: 768px;
    margin: 0 auto;
    background: #fff;
    display: flex;
    justify-content: space-around;
    align-items: center;
    padding: 8px 0 calc(8px + env(safe-area-inset-bottom));
    box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.08);
    z-index: 999;
}

.footer-nav {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    cursor: pointer;
    color: var(--footer-gray);
    transition: color 0.2s;
    padding: 4px 0;
    flex: 1;
}
.footer-nav .iconfont {
    font-size: 24px;
    line-height: 1;
}
.footer-nav span {
    font-size: 15px;
}
.footer-nav.active {
    color: var(--green-mid);
}

/* ============================================
   商户详情页
   ============================================ */
.detail-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: #fff;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-bottom: 1px solid #F0F0F0;
    max-width: 768px;
    margin: 0 auto;
}
.detail-back {
    position: absolute;
    left: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #000;
    width: 32px;
    height: 32px;
}
.back-icon {
    width: 24px;
    height: 24px;
}
.detail-title {
    font-size: 17px;
    font-weight: 600;
    color: #000;
    text-align: center;
}

.detail-section {
    background: #fff;
    padding: 16px;
    max-width: 768px;
    margin: 0 auto;
    padding-bottom: 80px;
}

/* 商户信息卡片 */
.detail-card {
    border: 1px solid #F4F4F4;
    border-radius: 8px;
    padding: 14px;
    margin-bottom: 20px;
}

.detail-head {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 14px;
}
.detail-icon {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    flex-shrink: 0;
}
.detail-name-wrap {
    display: flex;
    align-items: center;
    gap: 4px;
}
.detail-name {
    font-size: 14px;
    font-weight: 600;
    color: #000;
}
.detail-level {
    font-size: 20px;
    width: 1em;
    height: 1em;
    color: #FF4502;
    fill: currentColor;
    line-height: 1;
    vertical-align: -0.1em;
    display: inline-block;
}

.detail-intro,
.detail-time,
.detail-address {
    padding-left: 34px; /* 与商户名称左对齐：28px logo + 6px gap */
    text-align: left;
    line-height: 1.5;
}
.detail-intro {
    display: flex;
    align-items: baseline;
    margin-bottom: 10px;
    overflow: hidden;
}
.detail-time {
    display: flex;
    align-items: baseline;
    font-size: 13px;
    color: #999;
    margin-bottom: 10px;
}
.detail-address {
    display: flex;
    align-items: baseline;
    font-size: 13px;
}
.detail-label {
    color: #000;
    flex-shrink: 0;
}
.detail-text {
    color: #999;
}
.detail-intro .detail-text {
    flex: 1;
    word-break: break-all; /* 长串内容自动换行，不截断省略 */
}
/* 商户信息卡片：链接地址（后台商户广告配置了才显示） */
.detail-link {
    margin-top: 10px;
}
.detail-link-url {
    color: #27B16D;
    font-size: 13px;
    word-break: break-all;
    text-decoration: none;
}
.detail-link-url:active {
    opacity: 0.7;
}

/* 任务列表 */
.detail-task-title {
    font-size: 16px;
    font-weight: 700;
    color: #000;
    text-align: left;
    margin-bottom: 12px;
}

/* 任务列表空状态 */
.task-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 60px 0;
}
.task-empty-icon {
    width: 120px;
    height: 120px;
    margin-bottom: 16px;
}
.task-empty-text {
    font-size: 14px;
    color: #6A6A6A;
}

/* ============================================
   订单详情页
   ============================================ */
/* 卡片去背景色 */
.order-detail-card {
    background: #fff;
    border-radius: 10px;
    padding: 0;
    overflow: hidden;
    cursor: pointer;
}
.order-detail-card .merchant-head {
    margin-bottom: 10px;
}
/* 图片在描述上方 */
.order-detail-img {
    margin-bottom: 12px;
}
/* 订单详情页描述不省略：覆盖列表卡片 .merchant-desc 的两行截断，有多少展示多少 */
.order-detail-desc {
    margin-bottom: 10px;
    display: block;
    -webkit-line-clamp: unset;
    overflow: visible;
}
.order-detail-img {
    margin-bottom: 12px;
}
/* 订单详情页：内容过长需要滚动时，抢单模块（进度+按钮）固定在屏幕底部，
   仅详情内容滚动；数据不多不用滚动时保持原样（由 JS 动态加/删 grab-row-fixed 类） */
.grab-row-fixed {
    position: fixed;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    max-width: 768px; /* 与 .detail-section 同宽，宽屏居中 */
    bottom: 0;
    z-index: 99;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #fff;
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); /* 兼容 iPhone 底部安全区 */
    box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.06);
}

/* ============================================
   订单提交页
   ============================================ */
/* Header */
.order-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: #1AA561;
    max-width: 768px;
    margin: 0 auto;
    width: 100%;
}
.order-header-inner {
    position: relative;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-top: env(safe-area-inset-top);
}
.order-logo {
    position: absolute;
    left: 16px;
    font-size: 14px;
    color: #fff;
    line-height: 1;
}
.order-logo-img {
    display: block;
    height: 14px;
    max-width: 120px;
    width: auto;
    object-fit: contain;
    object-position: left center;
}
.order-title {
    font-size: 17px;
    font-weight: 600;
    color: #fff;
    text-align: center;
}

/* 页面主体 */
.order-section {
    background: #fff;
    padding: 16px;
    max-width: 768px;
    margin: 0 auto;
    padding-bottom: 90px;
}

/* Tab 切换 */
.order-tabs {
    display: flex;
    gap: 12px;
    margin-bottom: 16px;
}
.order-tab {
    flex: 1;
    text-align: center;
    padding: 8px 0;
    background: #F2F2F2;
    border-radius: 8px;
    font-size: 14px;
    color: #000;
    cursor: pointer;
    transition: all 0.2s;
}
.order-tab.active {
    background: #27B16D;
    color: #fff;
}

/* 订单详情模块 */
.order-detail {
    display: flex;
    background: #F5F5F5;
    border-radius: 8px;
    padding: 12px;
    margin-bottom: 20px;
}
.order-detail-left {
    flex: 1.5;
    padding-right: 10px;
}
.order-detail-right {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}
.order-detail-left .merchant-head {
    margin-bottom: 10px;
}
.order-detail-text {
    font-size: 12px;
    color: #000;
    line-height: 1.5;
    word-break: break-all;
    margin-bottom: 10px;
    padding-left: 34px; /* 与商户名称左对齐：28px logo + 6px gap */
}
/* 订单描述：最多展示 4 行，超出省略号截断（order.html 进行中/审核中/已关闭订单） */
#processingContent .order-detail-text,
#reviewingContent .order-detail-text,
#closedContent .order-detail-text {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    overflow: hidden;
}
/* 点击"查看详情"后展开展示全部 */
#processingContent .order-detail-text.expanded,
#reviewingContent .order-detail-text.expanded,
#closedContent .order-detail-text.expanded {
    display: block;
    -webkit-line-clamp: unset;
    overflow: visible;
}
/* 描述下方的"查看详情/收起"展开链接：与页面按钮同款绿色 */
.order-desc-toggle {
    display: inline-block;
    font-size: 12px;
    color: #27B16D;
    font-weight: 600;
    line-height: 1.5;
    cursor: pointer;
    padding-left: 34px; /* 与描述文字左对齐 */
    margin-bottom: 10px;
    -webkit-user-select: none;
    user-select: none;
}
.order-detail-time {
    font-size: 12px;
    color: #999;
    padding-left: 34px; /* 与商户名称左对齐 */
}
.order-detail-img {
    width: 100%;
    border-radius: 6px;
    overflow: hidden;
    margin-bottom: 10px;
}
.order-detail-img img {
    width: 100%;
    object-fit: cover;
}
.order-download-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: #27B16D;
    border-radius: 6px;
    padding: 6px 10px;
    color: #fff;
    font-size: 12px;
    cursor: pointer;
}
.order-download-btn .download-icon {
    width: 14px;
    height: 14px;
}

/* 通用模块块 */
.order-block {
    margin-bottom: 20px;
}
/* 进行中订单：内联提交表单（与上方订单详情卡片分隔） */
.order-submit-form {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid #F0F0F0;
}
.order-block-title {
    font-size: 15px;
    font-weight: 700;
    color: #000;
    text-align: left;
    margin-bottom: 12px;
}

/* 选择网格（社交平台/素材类型） */
.order-select-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}
.order-select {
    position: relative;
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px;
    border: 1px solid #CDCDCD;
    border-radius: 8px;
    font-size: 13px;
    color: #000;
    cursor: pointer;
    transition: all 0.2s;
}
.order-select .order-select-icon {
    font-size: 20px;
    width: 1em;
    height: 1em;
    line-height: 1;
    flex-shrink: 0;
}
.order-select-icon.iconfont {
    color: #000;
}
.order-select .order-select-check {
    display: none;
    position: absolute;
    right: -1px;
    bottom: -1px;
    width: 24px;
    height: auto;
}
.order-select.active {
    border-color: #27B16D;
    background: #F0FFF8;
    color: #27B16D;
}
.order-select.active .order-select-icon.iconfont {
    color: #27B16D;
}
.order-select.active .order-select-check {
    display: block;
}

/* 素材类型单选按钮文字居中 */
.order-select[data-single] {
    justify-content: center;
}
/* 素材类型单选：按钮宽度跟随文字内容自适应，文字强制单行，避免多语言长文案（如英文）换行臃肿 */
#orderSubmitMaterial.order-select-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}
#orderSubmitMaterial .order-select {
    min-width: 120px;
    white-space: nowrap;
}

/* 任务链接 */
.order-link-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.order-link-row {
    display: flex;
    align-items: center;
    gap: 8px;
}
/* 输入框容器，粘贴按钮定位在内部右侧 */
.order-link-field {
    position: relative;
    flex: 1;
}
.order-link-input {
    width: 100%;
    height: 36px;
    border: 1px solid #CDCDCD;
    border-radius: 6px;
    padding: 0 64px 0 12px; /* 右侧预留粘贴按钮空间 */
    font-size: 13px;
    color: #000;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis; /* 超长内容用省略号代替 */
}
.order-link-input::placeholder {
    color: #B2B2B2;
}
.order-paste-btn {
    position: absolute;
    right: 4px;
    top: 50%;
    transform: translateY(-50%);
    height: 28px;
    padding: 0 14px;
    background: #27B16D;
    border-radius: 6px;
    color: #fff;
    font-size: 13px;
    cursor: pointer;
    flex-shrink: 0;
}

/* 订单收益 */
.order-profit {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
}
.order-profit-label {
    font-size: 14px;
    color: #000;
    text-align: left;
}
.order-profit-value {
    font-size: 20px;
    font-weight: 700;
    color: #FF4502;
    text-align: right;
}

/* 提交订单按钮 */
.order-submit-wrap {
    display: flex;
    justify-content: center;
    margin-bottom: 20px;
}
.order-submit-btn {
    width: 70%;
    padding: 12px 0;
    background: #27B16D;
    border-radius: 24px;
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    transition: opacity 0.2s;
}
/* 空态下的"去抢单"引导按钮：以 a 标签复用 .order-submit-btn 绿色圆角样式 */
.order-grab-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    box-sizing: border-box;
}
.order-submit-btn:active {
    opacity: 0.7;
}
/* 用户发布关闭（boost_setting.user_publish_switch=0）时，确认提交按钮置灰不可点击 */
.order-submit-btn:disabled {
    background: #C7C9CD;
    color: #fff;
    cursor: not-allowed;
    opacity: 1;
    transition: none;
}

/* 审核中订单信息 */
.order-review-info {
    padding: 4px 0;
}
.order-review-row {
    display: flex;
    align-items: center;
    margin-bottom: 10px;
    font-size: 14px;
    line-height: 1.5;
}
.order-review-row:last-child {
    margin-bottom: 0;
}
.order-review-label {
    color: #000;
    flex-shrink: 0;
    font-size: 15px;
    font-weight: 700;
}
.order-review-value {
    color: #000;
}
.order-review-profit {
    color: #EC2828;
    font-size: 16px;
    font-weight: 700;
}

/* 审核中订单：提交平台块 / 任务链接展示卡片 / 取消按钮 */
.order-review-block {
    margin-bottom: 16px;
}
/* 审核中平台仅展示，默认选中，不可点击 */
.order-review-block .order-select {
    cursor: default;
}
/* 任务链接展示卡片：左右布局，左标题右链接 */
.order-link-view-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    background: #FCFCFC;
    border: 1px solid #E7E7E7;
    border-radius: 8px;
}
.order-link-view-name {
    font-size: 14px;
    font-weight: 600;
    color: #000;
    flex-shrink: 0;
}
.order-link-view-url {
    flex: 1;
    font-size: 13px;
    color: #3E7FFF;
    text-align: right;
    word-break: break-all;
    overflow-wrap: anywhere;
    text-decoration: underline;
}
.order-link-view-url:active {
    opacity: 0.7;
}
/* 订单取消按钮（与提交按钮同款，白底灰边灰字） */
.order-cancel-wrap {
    display: flex;
    justify-content: center;
    margin: 16px 0 4px;
}
.order-cancel-btn {
    width: 70%;
    padding: 12px 0;
    background: #fff;
    border: 1px solid #848484;
    border-radius: 24px;
    color: #848484;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    transition: opacity 0.2s;
}
.order-cancel-btn:active {
    opacity: 0.7;
}
.order-cancel-btn:disabled {
    opacity: 0.5;
}

/* 已关闭订单列表 */
/* 上模块：保留原左右布局，去掉下圆角与下间距，与下方信息模块贴合 */
.closed-order-card {
    margin-bottom: 0;
    border-radius: 8px 8px 0 0;
    flex-wrap: wrap;          /* 允许底部的 closed-order-earn 作为 flex:0 0 100% 独占整卡宽度一行 */
}
.closed-order-card .order-detail-left {
    display: flex;
    flex-direction: column;
}
.closed-order-card .order-detail-left .order-detail-text {
    flex: 1;
}
.closed-order-card .order-detail-left .order-detail-time {
    margin-top: 2px;
}
/* 状态文字与左侧底部对齐（提交时间那一行） */
.closed-order-card .order-status {
    margin-top: auto;
}
/* 订单状态文字（已通过/未通过） */
.order-status {
    font-size: 14px;
    font-weight: 600;
    white-space: nowrap;
}
.order-status.passed {
    color: #27B16D;
}
.order-status.rejected {
    color: #E74646;
}
.order-status.cancelled {
    color: #959595;
}

/* 已关闭订单：下面独立模块（分割线 + 三列信息：抢单时间 / 取消时间或审核时间 / 状态） */
.closed-order-info {
    display: flex;
    align-items: flex-start;
    background: #F5F5F5;
    border-radius: 0 0 8px 8px;
    border-top: 1px solid #E7E7E7;
    padding: 12px;
    margin-bottom: 12px;
}
.closed-order-info-item {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.closed-order-info-title {
    font-size: 12px;
    color: #000;
    font-weight: 600;
}
.closed-order-info-value {
    font-size: 14px;
    color: #000;
    word-break: break-all;
}
.closed-order-info-status {
    align-self: stretch; /* 覆盖父容器 align-items: flex-start，拉伸到与最高列等高，垂直居中才有空间 */
    align-items: flex-end;
    justify-content: center;
}
.closed-order-status {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 14px;
    font-weight: 600;
    white-space: nowrap;
}
.closed-order-status.passed {
    color: #27B16D;
}
.closed-order-status.rejected {
    color: #E74646;
}
.closed-order-status.cancelled {
    color: #959595;
}

/* 已关闭订单·已通过：状态文字后的下拉箭头（点击展开/收起链接审核状态） */
.closed-audit-toggle {
    font-size: 14px;
    cursor: pointer;
    line-height: 1;
    transition: transform 0.2s ease;
}
.closed-audit-toggle.open {
    transform: rotate(180deg);
}
/* 展开链接审核模块时，上方灰条下圆角与底距取消，与展开模块无缝衔接 */
.closed-order-info.has-audit.expanded {
    border-radius: 0;
    margin-bottom: 0;
}
/* 展开模块：社交平台链接审核状态（与上方灰条以分割线分隔，灰色卡片背景保持一致） */
.closed-link-audit {
    display: none;
    border-top: 1px solid #E7E7E7;
    padding: 12px;
    margin-bottom: 12px;
    background: var(--merchant-bg);
    border-radius: 0 0 8px 8px;
}
.closed-link-audit.show {
    display: block;
}
.closed-link-audit-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px 8px;
}
.closed-link-audit-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    min-width: 0;
    text-align: center;
}
.closed-link-audit-name {
    font-size: 12px;
    color: #000;
    font-weight: 600;
    max-width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.closed-link-audit-status {
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
}
.closed-link-audit-status.passed {
    color: #27B16D;
}
.closed-link-audit-status.failed {
    color: #E74646;
}
.closed-link-audit-status.pending {
    color: #999;
}

/* 已关闭订单·底部整行（独占一行、占满卡片整宽）：曝光度阶梯 在左，订单收益 右推同行展示，多语言长文案同行不换行 */
.closed-order-earn {
    flex: 0 0 100%;            /* 独占整卡宽度一行（跨左右两列），避免订单收益被窄左列挤到下一行 */
    display: flex;
    align-items: center;
    column-gap: 8px;
    min-width: 0;
    padding-left: 34px;        /* 与商户名称/订单描述左对齐 */
    padding-right: 0;          /* 订单收益右推至卡片内容区右缘（与原右侧列底部对齐一致） */
    font-size: 12px;
    line-height: 20px;
    color: #000;
}
.closed-order-earn-label,
.closed-order-earn-tier,
.closed-order-earn-none {
    white-space: nowrap;       /* 曝光度阶梯文字保持一行 */
}
.closed-order-earn-tier {
    color: #27B16D;
    font-weight: 600;
}
.closed-order-earn-none {
    color: #000;
}
.closed-order-profit {
    margin-left: auto;         /* 与曝光度阶梯同一行并右推至行尾 */
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;            /* 不压缩自身，保持整块同行展示 */
    white-space: nowrap;
    word-break: keep-all;
}
.closed-order-profit-label {
    color: #000;
}
.closed-order-profit-value {
    color: #EC2828;
    font-weight: 600;
    margin-left: 4px;
}

/* 提交订单弹层：底部弹出 */
.order-submit-mask {
    position: fixed;
    inset: 0;
    z-index: 2100;
    background: rgba(0, 0, 0, 0.5);
    display: none;
    align-items: flex-end;
    justify-content: center;
}
.order-submit-dialog {
    width: 100%;
    max-width: 768px;
    background: #fff;
    border-radius: 16px 16px 0 0;
    overflow: hidden;
}
.order-submit-head {
    position: relative;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #27B16D;
}
.order-submit-title {
    font-size: 16px;
    font-weight: 600;
    color: #fff;
}
.order-submit-close {
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 20px;
    color: #fff;
    cursor: pointer;
    line-height: 1;
}
.order-submit-body {
    max-height: 72vh;
    overflow-y: auto;
    padding: 16px;
    box-sizing: border-box;
}
.order-submit-merchant {
    background: #F5F5F5;
    border-radius: 8px;
    padding: 12px;
    margin-bottom: 16px;
}
.order-submit-merchant .merchant-head {
    margin-bottom: 8px;
}
.order-submit-merchant .order-detail-text {
    margin-bottom: 0;
}

/* 商户素材弹层列表（图片/视频预览 + 下载按钮） */
.order-material-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.order-material-item {
    border: 1px solid #F0F0F0;
    border-radius: 8px;
    overflow: hidden;
}
.order-material-media {
    width: 100%;
    max-height: 260px;
    object-fit: cover;
    background: #F5F5F5;
    display: block;
}
.order-material-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 12px;
}
.order-material-name {
    font-size: 14px;
    color: #000;
}
.order-material-download {
    display: inline-block;
    padding: 6px 18px;
    background: #27B16D;
    border-radius: 16px;
    color: #fff;
    font-size: 13px;
    text-decoration: none;
}
.order-material-download:active {
    opacity: 0.7;
}

/* ============================================
   社区页
   ============================================ */
/* Header 最右侧：定位国家 + 定位图标 */
.community-location {
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    gap: 4px;
    color: #fff;
    cursor: pointer;
}
.community-country {
    font-size: 13px;
    line-height: 1;
    max-width: 90px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.community-location-icon {
    font-size: 16px;
    line-height: 1;
}

/* 页面主体 */
.community-section {
    background: #fff;
    padding: 12px 16px;
    max-width: 768px;
    margin: 0 auto;
    padding-bottom: 160px;
}

/* 悬浮发布按钮（fixed 定位，悬浮于底部导航上方，不影响列表布局） */
.community-publish-btn {
    position: fixed;
    bottom: calc(88px + env(safe-area-inset-bottom));
    left: 50%;
    transform: translateX(-50%);
    z-index: 1000;
    padding: 13px 52px;
    background: #27B16D;
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    border: none;
    border-radius: 30px;
    box-shadow: 0 4px 16px rgba(39, 177, 109, 0.35);
    cursor: pointer;
    white-space: nowrap;
}
.community-publish-btn:active {
    transform: translateX(-50%) scale(0.96);
    opacity: 0.9;
}
/* 被禁止发布：置灰不可点击 */
.community-publish-btn-disabled,
.community-publish-btn-disabled:active {
    background: #b4babf;
    box-shadow: none;
    cursor: not-allowed;
    opacity: .92;
    transform: translateX(-50%);
    pointer-events: auto; /* 保留事件以便 JS 拦截，本身已无跳转 */
}

/* Google 地图 */
.community-map-wrap {
    position: relative; /* 地图搜索框悬浮定位的锚点 */
    margin-bottom: 14px;
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid #EEEEEE;
}
.community-map {
    width: 100%;
    height: 200px;
    background: #F7F7F7;
}

/* 地图搜索框：悬浮在地图顶部（输入地点后地图定位过去） */
.community-map-search {
    position: absolute;
    top: 10px;
    left: 10px;
    right: 10px;
    z-index: 10;
    display: flex;
    align-items: center;
    gap: 8px;
    height: 40px;
    padding: 0 14px;
    background: #fff;
    border-radius: 20px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, .18);
}
.community-map-search svg {
    width: 16px;
    height: 16px;
    flex: none;
}
.community-map-search input {
    flex: 1;
    min-width: 0;
    height: 100%;
    border: none;
    outline: none;
    background: transparent;
    font-size: 14px;
    color: #262B33;
}
.community-map-search input::placeholder {
    color: #B0B3B8;
}
/* 隐藏 Google 地图右下角自带的 键盘快捷键 / Map data ©2026 / 条款 等版权链接 */
.community-map .gm-style-cc,
.community-map .gmnoprint a[href*="terms_maps.html"],
.community-map .gmnoprint a[href*="maps.google.com"],
.community-map .gmnoprint button[title="Keyboard shortcuts"] {
    display: none !important;
}
.community-map-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    color: #999;
    font-size: 13px;
}
/* 距离筛选 tab */
.community-distance {
    margin-bottom: 16px;
}
.community-distance-tabs {
    display: flex;
    gap: 8px;
}
.community-distance-tab {
    position: relative;
    flex: 1;
    text-align: center;
    padding: 9px 0;
    border: 1px solid #CDCDCD;
    border-radius: 6px;
    font-size: 13px;
    color: #000;
    cursor: pointer;
    transition: all 0.2s ease;
    white-space: nowrap;
}
.community-distance-tab.active {
    background: #F0FFF8;
    border-color: var(--green-mid);
    color: var(--green-mid);
    font-weight: 600;
}
.community-distance-check {
    position: absolute;
    right: -1px;
    bottom: -1px;
    width: 24px;
    height: auto;
    display: none;
}
.community-distance-tab.active .community-distance-check {
    display: block;
}

/* i18n 语言首帧防闪烁：lang-prevent.js 在非中文模式给 <html> 加此标记，
   翻译完成前隐藏页面，避免"先中文后英文/阿拉伯语"闪烁 */
html.i18n-hidden,
html.i18n-hidden body {
    visibility: hidden;
}

/* 为你推荐 */
.community-recommend {
    margin-bottom: 12px;
}
.community-recommend-title {
    font-size: 16px;
    font-weight: 700;
    color: #000;
    text-align: left;
    margin-bottom: 12px;
}

/* 推荐列表：一行两个 */
.community-post-list {
    display: flex;
    gap: 12px;
    align-items: flex-start;
}

/* 左右两列，卡片各自独立往下排，形成不规则瀑布流 */
.community-post-col {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* 帖子卡片：高度按实际内容 */
.community-post-card {
    background: #F7F7F7;
    border-radius: 8px;
    padding: 10px 10px 0;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
}

/* 上面部分：商户信息（左右） */
.community-post-head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}
.community-post-merchant-icon {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    flex-shrink: 0;
    object-fit: cover;
}
/* 未设置头像时的占位图标：灰色圆形 + 人形剪影 */
.community-post-no-avatar {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e8e8e8;
    color: #b8b8b8;
    font-size: 18px;
}
.community-post-no-avatar .iconfont {
    font-size: 18px;
    line-height: 1;
}
.community-post-merchant-info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}
.community-post-merchant-name {
    display: flex;
    align-items: center;
    gap: 3px;
    min-width: 0;
}
.community-post-merchant-text {
    font-size: 13px;
    font-weight: 600;
    color: #000;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.community-post-merchant-level {
    font-size: 14px;
    color: #FF4502;
    line-height: 1;
    flex-shrink: 0;
}
/* 附近页帖子：用户等级 svg 徽章（同"我的"页面等级图标，按 level 0-4 显示） */
img.community-post-merchant-level {
    height: 16px;
    width: auto;
    display: inline-block;
    vertical-align: middle;
    align-self: flex-start; /* 父容器是 flex column，防止被 stretch 拉满整行宽度（否则 svg 居中缩放两侧出现大片留白） */
}
/* 帖子作者区：等级徽章 svg 自身 viewBox 左侧留白（约 78/1658 ≈ 2px），负 margin 让徽章与名称左缘对齐 */
.community-post-author img.community-post-merchant-level {
    margin-left: -2px;
}
.community-post-views {
    font-size: 11px;
    color: #999;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* 发布者资料行（位于内容下方）：左=头像+名称+等级，右=点赞icon+数量 */
.community-post-author {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    border-top: 1px solid #F2F2F2;
    margin-top: 8px;
    padding: 10px 0 4px;
}
.community-post-author-left {
    display: flex;
    align-items: flex-start; /* 头像对齐第一行名称（右侧为名称+等级两行结构） */
    gap: 8px;
    flex: 1;
    min-width: 0;
}
.community-post-author-right {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}
/* 点赞：默认灰色，点赞后 #27B16D，数量颜色同步 */
.community-post-like {
    display: flex;
    align-items: center;
    gap: 3px;
    color: #BDBDBD;
    font-size: 16px;
    cursor: pointer;
    padding: 2px 4px;
    -webkit-user-select: none;
    user-select: none;
}
.community-post-like-icon {
    font-size: 18px;
    line-height: 1;
    display: block;
    flex-shrink: 0;
    color:#A0A0A0;
}
.community-post-like.liked,
.community-post-like.liked .community-post-like-count,
.community-post-like.liked .community-post-like-icon {
    color: #27B16D;
}

/* 下面部分：商户简介（文字 + 图片） */
.community-post-body {
    position: relative; /* 广告标签绝对定位的锚点（图片右上角） */
    display: flex;
    flex-direction: column;
    gap: 8px;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}
/* 广告帖标签：图片右上角，translate 使约一半溢出图片边缘（黑底半透明+白字+圆角） */
.community-post-ad-tag {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 2;
    transform: translate(30%, -40%);
    padding: 1px 7px;
    font-size: 11px;
    line-height: 16px;
    color: #fff;
    background: rgba(0, 0, 0, .6);
    border-radius: 4px;
    white-space: nowrap;
    pointer-events: none; /* 不拦截图片点击 */
}
.community-post-body:active { opacity: .85; }
/* 文字最多两行，超出用省略号 */
.community-post-text {
    font-size: 12px;
    color: #000;
    line-height: 1.5;
    word-break: break-all;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
/* 帖子位置：定位图标(#27B16D) + 地址文字，单行展示，过长省略号截断（无地址不渲染） */
.community-post-address {
    display: flex;
    align-items: center;
    gap: 3px;
    min-width: 0;
}
.community-post-address-icon {
    font-size: 14px;
    color: #27B16D;
    flex-shrink: 0;
    line-height: 1;
}
.community-post-address-text {
    flex: 1;
    min-width: 0;
    font-size: 12px;
    color: #999;
    line-height: 1.4;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
/* 图片独占一行 */
.community-post-imgs {
    display: flex;
    flex-direction: column;
    gap: 4px;
    width: 100%;
}
.community-post-imgs img {
    width: 100%;
    height: 72px;
    object-fit: cover;
    border-radius: 4px;
    flex-shrink: 0;
    display: block;
}

/* 参与讨论模块：贴底通栏，无圆角，宽度100% */
.community-post-discuss {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #E2E2E2;
    border-radius: 0;
    padding: 8px 0;
    margin: 8px -10px 0;
    cursor: pointer;
}
.community-post-discuss-text {
    font-size: 12px;
    color: #0F0F0F;
}
.community-post-discuss-arrow {
    position: absolute;
    right: 10px;
    font-size: 14px;
    color: #0F0F0F;
    line-height: 1;
}

/* ============================================
   社区讨论详情页（聊天室）
   ============================================ */
.cd-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: #fff;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
}
.cd-header-inner {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    max-width: 768px;
    margin: 0 auto;
    height: 50px;
    padding: 0 12px;
    box-sizing: border-box;
}
.cd-back {
    position: absolute;
    left: 12px;
    font-size: 22px;
    color: #000;
    cursor: pointer;
}
.cd-title {
    font-size: 17px;
    font-weight: 600;
    color: #000;
    margin: 0;
}
.cd-header-right {
    position: absolute;
    right: 12px;
    width: 22px;
}

/* 页面主体 */
.cd-page {
    max-width: 768px;
    margin: 0 auto;
    min-height: 100vh;
    box-sizing: border-box;
    background: #fff;
    padding-bottom: 70px;
}

/* 话题详情 */
.cd-topic {
    position: relative; /* 广告标签定位锚点（首图右上角） */
    padding: 12px;
}
/* 广告帖标签：首图右上角，约一半溢出图片（黑底半透明+白字+圆角） */
.cd-topic-ad-tag {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 2;
    transform: translate(40%, -40%);
    padding: 2px 9px;
    font-size: 12px;
    line-height: 18px;
    color: #fff;
    background: rgba(0, 0, 0, .6);
    border-radius: 9px;
    white-space: nowrap;
    pointer-events: none;
}
.cd-topic-img {
    width: 100%;
    max-height: 220px;
    border-radius: 8px;
    display: block;
    margin-bottom: 8px;
    object-fit: contain;
    background: #F2F2F2;
    cursor: zoom-in;
    -webkit-tap-highlight-color: transparent;
}
.cd-topic-img:last-child {
    margin-bottom: 0;
}

/* ============ 帖子图片全屏查看器 ============ */
.cd-img-viewer {
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: rgba(0, 0, 0, .92);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s ease;
    -webkit-tap-highlight-color: transparent;
}
.cd-img-viewer.show {
    opacity: 1;
    pointer-events: auto;
}
.cd-img-viewer-img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    transform: scale(.96);
    transition: transform .25s ease;
    user-select: none;
    -webkit-user-drag: none;
    /* 图片也作为关闭触发器：禁止浏览器默认图片行为（拖拽/选中） */
    pointer-events: auto;
}
.cd-img-viewer.show .cd-img-viewer-img {
    transform: scale(1);
}
.cd-img-viewer-counter {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    padding: calc(env(safe-area-inset-top, 0px) + 14px) 16px 12px;
    color: rgba(255, 255, 255, .7);
    font-size: 13px;
    text-align: center;
    pointer-events: none;
}
.cd-img-viewer-close {
    position: absolute;
    top: calc(env(safe-area-inset-top, 0px) + 8px);
    right: 12px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .15);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    z-index: 2;
}
.cd-topic-detail {
    font-size: 14px;
    color: #333;
    line-height: 1.6;
    margin-top: 10px;
    word-break: break-word;
}

/* 聊天室消息列表 */
.cd-chat {
    background: #fff;
    padding: 12px;
    min-height: 300px;
    border-top: 1px solid #EEEEEE;
}
.cd-chat-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-height: 60vh;
    overflow-y: auto;
}

/* 单条消息 */
.cd-msg {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    max-width: 85%;
}
.cd-msg-me {
    align-self: flex-end;
    flex-direction: row-reverse;
}
.cd-msg-other {
    align-self: flex-start;
}
.cd-msg-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
}
.cd-msg-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
/* 无头像占位（与"我的页面" mine-avatar-empty 一致：灰底圆 + 用户图标） */
.cd-msg-avatar-empty {
    background: #F0F2F5;
    color: #C0C4CC;
    display: flex;
    align-items: center;
    justify-content: center;
}
.cd-msg-avatar-empty i {
    font-size: 20px;
    line-height: 1;
}
.cd-msg-body {
    min-width: 0;
}
.cd-msg-me .cd-msg-body {
    text-align: right;
}
.cd-msg-me .cd-msg-name {
    justify-content: flex-end;
}
.cd-msg-name {
    display: flex;
    align-items: center;
    font-size: 14px;
    color: #999;
    margin-bottom: 4px;
    white-space: nowrap;
    max-width: 100%;
    overflow: hidden;
}
.cd-msg-name > span:first-child {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}
.cd-msg-level {
    height: 24px;
    width: auto;
    flex-shrink: 0;
    margin: 0 4px;
    vertical-align: middle;
}
.cd-msg-time {
    color: #bbb;
    margin-left: 4px;
    flex-shrink: 0;
}
.cd-msg-bubble {
    display: inline-block;
    font-size: 14px;
    color: #000;
    border-radius: 8px;
    padding: 8px 12px;
    word-break: break-word;
    line-height: 1.5;
    max-width: 100%;
}
.cd-msg-me .cd-msg-bubble {
    background: #BEFFCC;
}
.cd-msg-other .cd-msg-bubble {
    background: #FFE4C1;
}

/* 底部输入栏 */
.cd-input-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    max-width: 768px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
    background: #fff;
    box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.06);
    z-index: 999;
    box-sizing: border-box;
}
.cd-input {
    flex: 1;
    height: 40px;
    border: 1px solid #E0E0E0;
    border-radius: 20px;
    padding: 0 14px;
    font-size: 14px;
    outline: none;
    box-sizing: border-box;
}
.cd-send {
    flex-shrink: 0;
    height: 40px;
    padding: 0 20px;
    background: #27B16D;
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    border: none;
    border-radius: 20px;
    cursor: pointer;
}

/* ============================================
   我的页
   ============================================ */
.mine-section {
    background: #fff;
    padding: 16px;
    max-width: 768px;
    margin: 0 auto;
    padding-bottom: 90px;
}

/* 模块一：个人资料 */
.mine-profile {
    display: flex;
    gap: 12px;
    padding: 16px;
    background: #fff;
}
.mine-avatar-wrap {
    flex-shrink: 0;
}
.mine-avatar {
    width: 90px;
    height: 90px;
    border-radius: 50%;
    object-fit: cover;
}
/* 无头像占位 */
.mine-avatar-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #F0F2F5;
    color: #C0C4CC;
    overflow: hidden;
}
.mine-avatar-empty i {
    font-size: 34px;
    line-height: 1;
}
.mine-avatar-tip {
    font-size: 10px;
    margin-top: 2px;
    color: #B0B3B8;
}
/* 点击更换头像 */
.mine-avatar-wrap {
    cursor: pointer;
    position: relative;
}
/* 个人简介超长省略 */
.mine-bio-clamp {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.mine-profile-right {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}
/* 名称 + 符号 + 等级 */
.mine-name-row {
    display: flex;
    align-items: center;
    gap: 6px;
}
.mine-name {
    font-size: 16px;
    font-weight: 600;
    color: #000;
    text-decoration: none;
}
.mine-name-arrow {
    font-size: 16px;
    color: #999;
}
.mine-level {
    display: inline-flex;
    align-items: center;
}
.mine-level-icon-svg {
    display: inline-block;
    width: 66px;
    height: auto;
    vertical-align: middle;
    flex-shrink: 0;
}
/* 个人简介 */
.mine-bio {
    font-size: 13px;
    color: #8D8D8D;
    margin-top: 4px;
    text-decoration: none;
    display: block;
}
/* 两个按钮 */
.mine-btn-row {
    display: flex;
    gap: 10px;
    margin-top: 10px;
}
.mine-btn {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    height: 36px;
    padding: 0 16px;
    border-radius: 5px;
    font-size: 14px;
    white-space: nowrap;
}
.mine-btn-left {
    background: #E9F7F0;
    color: #000;
}
.mine-btn-left .iconfont {
    color: #27B16D;
    font-size: 16px;
}
.mine-btn-right {
    background: #27B16D;
    color: #fff;
}
.mine-btn-right .iconfont {
    color: #fff;
    font-size: 16px;
}

/* 首次登录新手引导：灰色遮罩 + 积分按钮白虚线框 + 箭头气泡（mine 页） */
.mine-guide-mask {
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.55); /* 页面灰色背景 */
    z-index: 1000;
}
.mine-guide-frame {
    position: fixed;
    z-index: 1001;
    border: 1.5px dashed #fff;
    border-radius: 6px;
    box-sizing: border-box;
    pointer-events: none;
}
.mine-guide-pop {
    position: fixed;
    z-index: 1001;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    pointer-events: none;
    max-width: calc(100vw - 40px);
}
.mine-guide-arrow {
    width: 0;
    height: 0;
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
    border-bottom: 10px solid #fff;
}
.mine-guide-text {
    margin-top: 6px;
    padding: 9px 14px;
    background: #fff;
    color: #333;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    border-radius: 8px;
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.18);
}
/* 较长的引导提示语：限制宽度并自动换行，避免超出屏幕 */
.mine-guide-text-wrap {
    white-space: normal;
    width: max-content;
    max-width: 220px;
    text-align: center;
    line-height: 1.4;
}

/* ==================== 附近页（community）首次进入新手引导 ==================== */
/* 灰色遮罩 + 白虚线框 + 箭头气泡 + 上下滑动提示 + 下一步按钮 */
.cg-mask {
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.55); /* 页面灰色背景 */
    z-index: 1000;
}
.cg-frame {
    position: fixed;
    z-index: 1001;
    border: 1.5px dashed #fff;
    border-radius: 8px;
    box-sizing: border-box;
    pointer-events: none;
}
.cg-pop {
    position: fixed;
    z-index: 1001;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    pointer-events: none;
    max-width: calc(100vw - 40px);
}
/* 提示在锚点上方：整体向上平移自身高度，箭头朝下指向锚点 */
.cg-pop-above {
    transform: translate(-50%, -100%);
}
.cg-arrow {
    width: 0;
    height: 0;
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
    border-bottom: 10px solid #fff; /* 箭头朝上（提示在锚点下方） */
}
.cg-arrow-down {
    border-bottom: none;
    border-top: 10px solid #fff; /* 箭头朝下（提示在锚点上方） */
}
.cg-text {
    padding: 9px 14px;
    background: #fff;
    color: #333;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    border-radius: 8px;
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.18);
}
.cg-text-wrap {
    white-space: normal;
    width: max-content;
    max-width: 220px;
    text-align: center;
    line-height: 1.4;
}
/* 页面中下位置：上下滑动提示（双箭头动效 + 文字） */
.cg-swipe {
    position: fixed;
    left: 50%;
    top: 60%;
    transform: translateX(-50%);
    z-index: 1001;
    display: flex;
    flex-direction: column;
    align-items: center;
    pointer-events: none;
}
.cg-swipe-icon {
    position: relative;
    width: 26px;
    height: 40px;
    animation: cgSwipeUpDown 1.4s ease-in-out infinite;
}
.cg-swipe-icon::before,
.cg-swipe-icon::after {
    content: '';
    position: absolute;
    left: 50%;
    width: 13px;
    height: 13px;
    border-right: 3px solid #fff;
    border-bottom: 3px solid #fff;
    border-radius: 2px;
}
.cg-swipe-icon::before {
    top: 0;
    transform: translateX(-50%) rotate(-135deg); /* 指向上的箭头 */
}
.cg-swipe-icon::after {
    bottom: 0;
    transform: translateX(-50%) rotate(45deg); /* 指向下的箭头 */
}
@keyframes cgSwipeUpDown {
    0%, 100% { transform: translateY(-4px); }
    50% { transform: translateY(4px); }
}
.cg-swipe-text {
    margin-top: 10px;
    padding: 7px 12px;
    background: #fff;
    color: #333;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    border-radius: 8px;
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.18);
}
/* 「(1/2) 下一步」按钮：样式与"立即发布"按钮保持一致 */
.cg-next-btn {
    position: fixed;
    left: 50%;
    transform: translateX(-50%);
    bottom: calc(88px + env(safe-area-inset-bottom));
    z-index: 1003;
    padding: 13px 52px;
    background: #27B16D;
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    line-height: 1;
    border: none;
    border-radius: 30px;
    box-shadow: 0 4px 16px rgba(39, 177, 109, 0.35);
    cursor: pointer;
    white-space: nowrap;
}
.cg-next-btn:active {
    transform: translateX(-50%) scale(0.96);
    opacity: 0.9;
}
/* 大厅页引导：定位到指定点并居中的滑动提示容器 */
.cg-swipe-c {
    position: fixed;
    z-index: 1001;
    display: flex;
    flex-direction: column;
    align-items: center;
    pointer-events: none;
    transform: translate(-50%, -50%);
}
/* 左右滑动提示：横向双箭头动效 */
.cg-swipe-icon-lr {
    position: relative;
    width: 46px;
    height: 22px;
    animation: cgSwipeLR 1.4s ease-in-out infinite;
}
.cg-swipe-icon-lr::before,
.cg-swipe-icon-lr::after {
    content: '';
    position: absolute;
    top: 50%;
    width: 13px;
    height: 13px;
    border-top: 3px solid #fff;
    border-right: 3px solid #fff;
    border-radius: 2px;
}
.cg-swipe-icon-lr::before {
    left: 2px;
    transform: translateY(-50%) rotate(-135deg); /* 指向左 */
}
.cg-swipe-icon-lr::after {
    right: 2px;
    transform: translateY(-50%) rotate(45deg); /* 指向右 */
}
@keyframes cgSwipeLR {
    0%, 100% { transform: translateX(-5px); }
    50% { transform: translateX(5px); }
}

/* 模块二：邀请好友 + 开通商户 */
.mine-invite-row {
    display: flex;
    gap: 12px;
    margin-top: 16px;
}
.mine-invite-card {
    flex: 1;
    position: relative;
    border-radius: 10px;
    padding: 16px 12px;
    overflow: hidden;
}
.mine-invite-green {
    background: #E9F9F0;
}
.mine-invite-orange {
    background: #FAF5EF;
}
/* 左上角半圆图标容器 */
.mine-invite-icon-wrap {
    position: absolute;
    left: 0;
    top: 0;
    width: 40px;
    height: 40px;
    border-bottom-right-radius: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.mine-invite-green .mine-invite-icon-wrap {
    background: transparent;
    border-bottom-right-radius: 0;
}
.mine-invite-orange .mine-invite-icon-wrap {
    background: transparent;
    border-bottom-right-radius: 0;
}
.mine-invite-icon-wrap .iconfont {
    font-size: 18px;
}
.mine-invite-green .mine-invite-icon-wrap .iconfont {
    color: #27B16D;
}
.mine-invite-img {
    width: 40px;
    height: 40px;
    display: block;
}
.mine-invite-orange .mine-invite-icon-wrap .iconfont {
    color: #FF4502;
}
.mine-invite-title {
    font-size: 16px;
    font-weight: 700;
    margin-left: 32px;
    margin-top: 4px;
}
.mine-invite-green .mine-invite-title {
    color: #27B16D;
}
.mine-invite-orange .mine-invite-title {
    color: #FF4502;
}
.mine-invite-desc {
    font-size: 12px;
    font-weight: 600;
    margin-left: 32px;
    margin-top: 4px;
}
.mine-invite-green .mine-invite-desc {
    color: #086939;
}
.mine-invite-orange .mine-invite-desc {
    color: #491116;
}

/* 模块三~五：导航栏 */
.mine-nav-group {
    background: #fff;
    margin-top: 5px;
    overflow: hidden;
}
.mine-nav-group + .mine-nav-group {
    box-shadow: 0 -5px 0 #F5F5F5;
}
.mine-nav-item {
    display: flex;
    align-items: center;
    height: 50px;
    padding: 0 16px;
    position: relative;
}
.mine-nav-item .iconfont:first-child {
    font-size: 20px;
    color: #000000;
    margin-right: 10px;
}
.mine-nav-item .mine-nav-svg {
    width: 20px;
    height: 20px;
    margin-right: 10px;
    flex-shrink: 0;
}
.mine-nav-item span {
    flex: 1;
    font-size: 15px;
    color: #000;
}
.mine-nav-item .mine-nav-arrow {
    flex: 0 0 auto;
    font-size: 14px;
    color: #000000;
}
.mine-nav-item .mine-nav-value {
    flex: 0 0 auto;
    font-size: 14px;
    font-weight: 600;
    color: #FF4502;
    margin-right: 6px;
}
.mine-nav-item .mine-nav-dot {
    flex: 0 0 auto;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #FF4502;
    margin-right: 6px;
}

/* ============================================
   个人资料页
   ============================================ */
.profile-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: #fff;
    max-width: 768px;
    margin: 0 auto;
    width: 100%;
    border-bottom: 1px solid #F0F0F0;
}
.profile-header-inner {
    position: relative;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-top: env(safe-area-inset-top);
}
.profile-back {
    position: absolute;
    left: 16px;
    font-size: 18px;
    color: #000;
    line-height: 1;
    text-decoration: none;
}
.profile-title {
    font-size: 17px;
    font-weight: 600;
    color: #000;
    text-align: center;
}
.profile-section {
    background: #fff;
    max-width: 768px;
    margin: 0 auto;
    padding: 24px 16px 40px;
}
.profile-avatar-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin-bottom: 10px;
    cursor: pointer;
}
.profile-avatar-tip-text {
    margin-top: 10px;
    font-size: 16px;
    color: #27B16D;
    text-align: center;
}
.profile-avatar {
    width: 96px;
    height: 96px;
    border-radius: 50%;
    object-fit: cover;
    border: 1px solid #F0F0F0;
}
.profile-avatar-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #F5F5F5;
    color: #B0B0B0;
}
.profile-avatar-empty .iconfont {
    font-size: 40px;
    line-height: 1;
}
.profile-avatar-tip {
    margin-top: 6px;
    font-size: 11px;
}
.profile-label {
    display: block;
    font-size: 16px;
    font-weight: 600;
    color: #000;
    margin-bottom: 10px;
}
.profile-required {
    color: #E21D1D;
}
.profile-input {
    width: 100%;
    box-sizing: border-box;
    height: 44px;
    border: 1px solid #CFCFCF;
    border-radius: 8px;
    padding: 0 12px;
    font-size: 14px;
    color: #000;
    margin-bottom: 24px;
    outline: none;
}
.profile-input::placeholder {
    color: #CFCFCF;
}
.profile-textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #CFCFCF;
    border-radius: 8px;
    padding: 12px;
    font-size: 14px;
    color: #000;
    font-family: inherit;
    resize: none;
    margin-bottom: 40px;
    outline: none;
}
.profile-textarea::placeholder {
    color: #CFCFCF;
}
.profile-save {
    display: block;
    width: 70%;
    height: 44px;
    margin: 0 auto;
    border: none;
    border-radius: 22px;
    background: #27B16D;
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
}

/* ============================================
   设置页 / 密码修改页
   ============================================ */
.settings-section {
    background: #fff;
    max-width: 768px;
    margin: 0 auto;
    padding: 8px 0 40px;
}
.settings-nav-group {
    margin: 0;
}
.settings-nav-item {
    display: flex;
    align-items: center;
    height: 56px;
    padding: 0 16px;
    border-bottom: 1px solid #F0F0F0;
    text-decoration: none;
    color: #000;
}
.settings-nav-item:active {
    background: #F7F7F7;
}
.settings-nav-icon {
    font-size: 20px;
    color: #000;
    margin-right: 12px;
}
.settings-nav-title {
    flex: 1;
    font-size: 15px;
    color: #000;
}
.settings-nav-arrow {
    font-size: 16px;
    color: #C0C0C0;
}

/* 密码修改表单 */
.password-section {
    background: #fff;
    max-width: 768px;
    margin: 0 auto;
    padding: 24px 16px 40px;
}
.password-field .auth-input {
    border-radius: 8px;
    background: #efefef;
}

/* ============================================
   用户等级页
   ============================================ */
.level-page {
    max-width: 768px;
    margin: 0 auto;
    padding: 16px;
    background: #fff;
    min-height: 100vh;
}

/* 模块一：用户信息 */
.level-user {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 10px 4px;
    margin-bottom: 16px;
    text-align: center;
}
.level-user-avatar {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    object-fit: cover;
    flex: 0 0 auto;
}
/* 无头像占位 */
.level-user-avatar-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #F0F2F5;
    color: #C0C4CC;
    overflow: hidden;
}
.level-user-avatar-empty i {
    font-size: 28px;
    line-height: 1;
}
.level-user-info {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
.level-user-name {
    font-size: 18px;
    font-weight: 600;
    color: #000;
}

/* 模块二：等级列表 */
.level-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.level-card {
    position: relative;
    background-size: cover;
    background-position: center;
    border-radius: 12px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    overflow: hidden;
}
.level-card-current {
    position: absolute;
    top: 0;
    left: 0;
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
    padding: 6px 10px;
    border-bottom-right-radius: 8px;
}
.level-card-title {
    font-size: 20px;
    font-weight: 700;
    text-align: left;
    margin-top: 4px;
}
.level-card-info {
    align-self: flex-start;
    background: rgba(0, 0, 0, 0.35);
    color: #fff;
    font-size: 13px;
    padding: 6px 12px;
    border-radius: 4px;
    white-space: nowrap;
}

/* ============================================
   积分兑换页
   ============================================ */
.exchange-page {
    max-width: 768px;
    margin: 0 auto;
    padding: 16px;
    background: #fff;
    min-height: 100vh;
}

/* 模块一：积分收益 */
.exchange-banner {
    background-size: cover;
    background-position: center;
    border-radius: 12px;
    padding: 24px 20px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 20px;
    overflow: hidden;
}
.exchange-banner-title {
    font-size: 16px;
    color: #fff;
    text-align: left;
}
.exchange-banner-value {
    display: flex;
    align-items: center;
    gap: 6px;
    color: #fff;
    font-size: 22px;
    font-weight: 700;
}
.exchange-banner-value .iconfont {
    font-size: 22px;
    color: #fff;
}

/* 模块二：银行账户 */
.exchange-bank {
    margin-bottom: 20px;
}
.exchange-bank-title {
    font-size: 15px;
    color: #000;
    font-weight: 600;
    text-align: left;
    margin-bottom: 12px;
}
.exchange-bank-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.exchange-bank-left {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    color: #000;
}
.exchange-bank-icon {
    width: 24px;
    height: 24px;
    flex: 0 0 auto;
    object-fit: contain; /* 等比完整显示，避免宽幅 logo（VISA）被拉伸 */
}
.exchange-bank-right {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    color: #000;
}
.exchange-bank-right .iconfont {
    font-size: 14px;
    color: #000;
}
/* 银行账户行整行可点击（进入选择账户页） */
a.exchange-bank-row {
    text-decoration: none;
}
a.exchange-bank-row:active {
    opacity: 0.85;
}

/* 模块三：提现金额 */
.exchange-amount {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #F9F9F9;
    border: 1px solid #DEDEDE;
    border-radius: 10px;
    padding: 16px;
    margin-bottom: 12px;
}
/* 自定义金额超过可兑换上限时的提示（默认隐藏） */
.exchange-amount-error {
    display: none;
    font-size: 12px;
    color: #E94F4F;
    line-height: 1.4;
    text-align: left;
}
.exchange-amount-error.show {
    display: block;
}
.exchange-amount-left {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.exchange-amount-label {
    font-size: 14px;
    color: #000;
    font-weight: 700;
}
.exchange-amount-input-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
}
.exchange-amount-currency {
    font-size: 16px;
    color: #000;
    font-weight: 700;
}
.exchange-amount-input {
    width: 120px;
    font-size: 16px;
    font-weight: 700;
    color: #000;
    background: transparent;
    border: none;
    outline: none;
}
.exchange-amount-input::placeholder {
    color: #9A9A9A;
    font-weight: 700;
}
.exchange-amount-all {
    font-size: 18px;
    color: #27B16D;
    font-weight: 700;
    cursor: pointer;
    user-select: none;
    -webkit-user-select: none;
}

/* 可兑换金额预览：全部积分按当前币种换算、扣除手续费后的预计到账 */
.exchange-preview {
    display: flex;
    flex-direction: column;
    gap: 6px;
    background: #F9F9F9;
    border-radius: 10px;
    padding: 12px 16px;
    margin-bottom: 28px;
}
.exchange-preview-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
}
.exchange-preview-label {
    font-size: 13px;
    color: #8A8A8A;
}
.exchange-preview-value {
    font-size: 18px;
    color: #27B16D;
    font-weight: 700;
    text-align: right;
}
.exchange-preview-value em {
    font-style: normal;
    font-size: 12px;
    font-weight: 600;
    color: #27B16D;
    margin-left: 2px;
}
.exchange-preview-rate {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 2px 10px;
    font-size: 12px;
    color: #9A9A9A;
    text-align: left;
}
.exchange-preview-rate b {
    font-weight: 600;
}
.exchange-preview-rate-item.warn,
.exchange-preview-rate-item.warn b {
    color: #E94F4F;
}

/* 模块四：立即兑换按钮 */
.exchange-btn {
    display: block;
    width: 70%;
    height: 46px;
    margin: 0 auto 32px;
    border: none;
    border-radius: 23px;
    background: #27B16D;
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
}
/* 被禁止提现 / 审核中：置灰不可点击 */
.exchange-btn:disabled,
.exchange-btn-disabled {
    background: #b4babf;
    cursor: not-allowed;
}
/* 提款处理中：文案较长，缩小字号避免超出按钮 */
.exchange-btn.exchange-btn-wait {
    font-size: 13px;
    line-height: 1.4;
    padding: 0 10px;
}

/* 模块五：提现说明 */
.exchange-notes {
    padding: 0 4px;
}
.exchange-notes p {
    font-size: 14px;
    color: #8A8A8A;
    line-height: 1.9;
    text-align: left;
}

/* ============================================
   社交账户页
   ============================================ */
.social-page {
    max-width: 768px;
    margin: 0 auto;
    padding: 20px 16px 0 16px;
    background: #fff;
    min-height: 100vh;
}

/* 模块一：提示模块 */
.social-tip {
    background: #ffeded;
    padding: 14px 16px;
    margin-bottom: 16px;
    border-radius: 6px;
}
.social-tip p {
    font-size: 13px;
    color: #E03131;
    line-height: 1.8;
    text-align: left;
}

/* 模块二：表单模块 */
.social-form {
    border-radius: 12px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.social-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #f7f7f7;
    padding: 12px 14px;
}
.social-row-label {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    font-weight: 600;
    color: #000;
}
.social-row-icon {
    width: 20px;
    height: 20px;
    flex: 0 0 auto;
}
.social-row-right {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 3px;
    min-width: 0;
}
.social-audit-tag {
    flex: 0 0 auto;
    font-size: 11px;
    color: #F12C2C;
    border: 1px solid #F12C2C;
    border-radius: 4px;
    padding: 1px 5px;
    line-height: 1.4;
    white-space: nowrap;
}
.social-row-input {
    width: 130px;
    min-width: 40px;
    text-align: right;
    padding: 0;
    font-size: 15px;
    color: #000;
    background: transparent;
    border: none;
    outline: none;
}
.social-row-input::placeholder {
    color: #B0B0B0;
}
.social-row-input[readonly] {
    color: #333;
}

/* 保存账户按钮 */
.social-save {
    display: block;
    width: 70%;
    height: 44px;
    margin: 4px auto 0;
    border: none;
    border-radius: 22px;
    background: #27B16D;
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
}

/* 修改账户联系客服 */
.social-contact {
    margin-top: 20px;
    text-align: center;
}
.social-contact-text {
    font-size: 13px;
    color: #000;
}
.social-contact-link {
    font-size: 13px;
    color: #27B16D;
    text-decoration: underline;
    margin-left: 4px;
}

/* ============================================
   邀请好友页
   ============================================ */
.invite-page {
    max-width: 768px;
    margin: 0 auto;
    background: #fff;
    min-height: 100vh;
}

/* 模块一：主图区 */
.invite-hero {
    width: 100%;
    height: 45vh;
    background: #E9F7F0;
    border-bottom-left-radius: 12px;
    border-bottom-right-radius: 12px;
    position: relative;
}
.invite-hero-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    height: 100%;
    padding: 0 16px;
}
.invite-hero-img {
    width: 80%;
    max-width: 260px;
    margin-top: -60px;
}
.invite-hero-text {
    font-size: 18px;
    font-weight: 600;
    color: #27B16D;
    text-align: center;
}

/* 模块二：邀请数据卡（浮在模块一底部） */
.invite-card {
    border: 1px solid #27B16D;
    border-radius: 12px;
    overflow: hidden;
    margin: -80px 35px 24px;
    position: relative;
    z-index: 2;
}
.invite-card-top {
    background: #E9F7F0;
    display: flex;
    align-items: center;
    justify-content: space-around;
    padding: 20px 16px;
}
.invite-stat {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}
.invite-stat-value {
    font-size: 26px;
    font-weight: 700;
    color: #015E30;
}
.invite-stat-label {
    font-size: 14px;
    color: #27B16D;
}
.invite-card-bottom {
    background: #27B16D;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 40px;
}
.invite-card-points {
    font-size: 16px;
    color: #fff;
    font-weight: 600;
}
.invite-card-btn {
    border: 1px solid #098347;
    border-radius: 20px;
    background: #E6FFF3;
    color: #27B16D;
    font-size: 16px;
    font-weight: 600;
    padding: 2px 24px;
    cursor: pointer;
    white-space: nowrap; /* 文字强制单行：英文等长文案（如 No reward yet）不折行 */
    flex-shrink: 0;      /* 不被 flex 容器压缩，避免按钮被压窄导致文字换行 */
}

/* 模块三：二维码 */
.invite-qrcode {
    background: #E9F7F0;
    border-radius: 12px;
    margin: 0 35px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
}
.invite-qrcode-img {
    width: 120px;
    height: 120px;
}
.invite-qrcode-text {
    font-size: 16px;
    color: #27B16D;
    text-align: center;
}

/* ============================================
   兑换记录页
   ============================================ */
.elist-page {
    max-width: 768px;
    margin: 0 auto;
    padding: 16px;
    background: #fff;
    min-height: 100vh;
}

/* 模块一：Tab 切换 */
.elist-tabs {
    display: flex;
    gap: 4px;
    background: #fff;
    border-radius: 10px;
    padding: 4px;
    margin-bottom: 16px;
}
.elist-tab {
    flex: 1 1 0; /* 三按钮等宽，不受文案长度影响（中英文阿语都能放下） */
    min-width: 0;
    text-align: center;
    padding: 10px 6px;
    font-size: 14px;
    color: #000;
    background: #F2F2F2;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.2s;
    /* 文案统一为短英文词，CSS 强制大写+紧凑字符间距，视觉更整齐 */
    text-transform: uppercase;
    letter-spacing: 0.5px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis; /* 极端兜底：万一未来换长文案，截断显示不被遮 */
}
.elist-tab.active {
    background: #27B16D;
    color: #fff;
}

/* 模块二：记录列表 */
.elist-list {
    display: flex;
    flex-direction: column;
    gap: 28px;
}
.elist-tab-content {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.elist-card {
    background: #fff;
    border: 1px solid #DFDFDF;
    border-radius: 10px;
    padding: 14px;
}
.elist-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 12px;
    margin-bottom: 12px;
}
.elist-card-title {
    font-size: 14px;
    font-weight: 600;
    color: #000;
}
.elist-card-time {
    font-size: 12px;
    color: #9A9A9A;
}
.elist-card-body {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.elist-card-data {
    flex: 1;
    display: grid;
    grid-template-columns: 1.8fr 1fr 1fr;
    gap: 8px;
}
.elist-data-col {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}
.elist-data-label {
    font-size: 12px;
    color: #9A9A9A;
}
.elist-data-value {
    font-size: 13px;
    color: #000;
    word-break: break-all;
}

/* 状态按钮 */
.elist-status {
    flex: 0 0 auto;
    border-radius: 18px;
    padding: 4px 16px;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
}
.elist-status.success {
    background: #27B16D;
    color: #fff;
}
.elist-status.cancelled {
    background: #C5C5C5;
    color: #fff;
}
.elist-status.processing {
    background: #fff;
    border: 1px solid #27B16D;
    color: #27B16D;
}

/* ============================================
   信用积分页
   ============================================ */
.credit-page {
    max-width: 768px;
    margin: 0 auto;
    padding: 16px;
    background: #fff;
    min-height: 100vh;
}

/* 模块一：会员信用卡片 */
.credit-card {
    background-size: cover;
    background-position: center;
    border-radius: 12px;
    padding: 24px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 24px;
    overflow: hidden;
}
.credit-card-left {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.credit-card-label {
    font-size: 14px;
    color: #FFFBE6;
}
.credit-card-value {
    font-size: 30px;
    font-weight: 700;
    color: #fff;
}
.credit-card-icon {
    width: 64px;
    height: 64px;
}

/* 模块二：积分变化 */
.credit-list-title {
    font-size: 16px;
    font-weight: 600;
    color: #000;
    text-align: left;
    margin-bottom: 14px;
}
.credit-item {
    background: #fff;
    border: 1px solid #DFDFDF;
    border-radius: 10px;
    padding: 14px;
    margin-bottom: 12px;
}
.credit-item-time {
    font-size: 13px;
    color: #000;
    text-align: left;
}
.credit-item-body {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.credit-item-label {
    font-size: 13px;
    color: #000;
}
.credit-item-value {
    font-size: 13px;
    font-weight: 600;
}
.credit-item-value.plus {
    color: #27B16D;
}
.credit-item-value.minus {
    color: #E03131;
}

/* ============================================
   平台规则页
   ============================================ */
.rules-page {
    max-width: 768px;
    margin: 0 auto;
    padding: 16px;
    background: #fff;
    min-height: 100vh;
}
.rules-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #fff;
    border: 1px solid #DFDFDF;
    border-radius: 10px;
    padding: 16px;
    margin-bottom: 12px;
    text-decoration: none;
}
.rules-item-title {
    font-size: 15px;
    font-weight: 600;
    color: #000;
}
.rules-item-arrow {
    font-size: 16px;
    color: #B0B0B0;
}
.rule-list-empty {
    padding: 60px 0;
    text-align: center;
    font-size: 14px;
    color: #999;
}

/* 规则详情弹窗（底部弹出） */
.rule-modal-mask {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 1000;
    display: none;
}
.rule-modal-mask.show {
    display: block;
}
.rule-modal {
    position: fixed;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 100%;
    max-width: 768px;
    background: #fff;
    border-radius: 16px 16px 0 0;
    z-index: 1001;
    display: flex;
    flex-direction: column;
    max-height: 80vh;
    visibility: hidden;
    opacity: 0;
    transition: opacity 0.2s ease, visibility 0.2s ease;
}
.rule-modal.show {
    visibility: visible;
    opacity: 1;
}
.rule-modal-head {
    position: relative;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-bottom: 1px solid #F0F0F0;
    padding-top: env(safe-area-inset-top);
    flex: 0 0 auto;
}
.rule-modal-title {
    font-size: 16px;
    font-weight: 600;
    color: #000;
    max-width: 70%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.rule-modal-close {
    position: absolute;
    right: 16px;
    font-size: 24px;
    color: #999;
    line-height: 1;
    cursor: pointer;
}
.rule-modal-body {
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: 16px;
    padding-bottom: calc(16px + env(safe-area-inset-bottom));
}
.rule-modal-empty {
    padding: 40px 0;
    text-align: center;
    font-size: 14px;
    color: #999;
}
/* 富文本：图片自适应、段落/文字统一排版 */
.rule-modal-richtext {
    font-size: 14px;
    line-height: 1.7;
    color: #333;
    word-break: break-word;
}
.rule-modal-richtext img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 8px 0;
    border-radius: 6px;
}
.rule-modal-richtext p {
    margin: 0 0 10px;
}

/* ============================================
   规则详情页
   ============================================ */
.rdetail-page {
    max-width: 768px;
    margin: 0 auto;
    padding: 16px;
    background: #fff;
    min-height: 100vh;
}
.rdetail-item {
    background: #fff;
    border: 1px solid #DFDFDF;
    border-radius: 10px;
    padding: 16px;
    margin-bottom: 12px;
}
.rdetail-text {
    font-size: 14px;
    line-height: 1.7;
    color: #4A4A4A;
    margin-bottom: 12px;
}
.rdetail-text:last-child {
    margin-bottom: 0;
}
/* 富文本：图片自适应、段落/文字统一排版 */
.rdetail-richtext {
    font-size: 14px;
    line-height: 1.7;
    color: #333;
    word-break: break-word;
}
.rdetail-richtext img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 8px 0;
    border-radius: 6px;
}
.rdetail-richtext p {
    margin: 0 0 10px;
}
/* 底部规则详情页（bottomRuleDetail）：整屏图片，无内边距 */
.rdetail-nopad {
    max-width: 100%;
    padding: 0;
}
.rdetail-nopad .rdetail-item {
    padding: 0;
    margin-bottom: 0;
    border: none;
    border-radius: 0;
}
.rdetail-nopad .rdetail-richtext img {
    width: 100%;
    max-width: 100%;
    margin: 0;
    border-radius: 0;
    display: block;
}
.rdetail-nopad .rdetail-richtext p {
    margin: 0;
}

/* ============================================
   站内信（收件箱）页
   ============================================ */
.inbox-page {
    max-width: 768px;
    margin: 0 auto;
    padding: 2px 16px 24px;
    background: #fff;
    min-height: 100vh;
}
/* 消息为无边框列表行，每条之间以分割线区分 */
.inbox-item {
    padding: 16px 0;
}
.inbox-item + .inbox-item {
    border-top: 1px solid #EFEFEF;
}
.inbox-title {
    font-size: 15px;
    font-weight: 600;
    color: #000;
    text-align: left;
    margin-bottom: 6px;
}
/* 三语消息：默认隐藏，JS 按当前语言显示对应语种（未填写的语种回退中文） */
.inbox-lang {
    display: none;
}
.inbox-content {
    font-size: 14px;
    line-height: 1.6;
    color: #4A4A4A;
    text-align: left;
    word-break: break-all;
}
.inbox-time {
    margin-top: 8px;
    font-size: 12px;
    color: #999;
    text-align: left;
}

/* ============================================
   我的关注页
   ============================================ */
.follow-page {
    max-width: 768px;
    margin: 0 auto;
    padding: 16px;
    background: #fff;
    min-height: 100vh;
}
.follow-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}
.follow-card {
    position: relative;
}
/* 收藏页卡片：与首页商户列表一致 —— 商户资料左 + 收藏图标悬浮头部右上角 */
.follow-card .merchant-head {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}
.follow-card .merchant-info {
    flex: 1;
    min-width: 0;
    padding-right: 24px; /* 给收藏图标留出空间，避免遮挡名称 */
}
.follow-card .merchant-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* 收藏按钮：同首页商户列表，脱离同行布局，定位于头部右上角并上移约自身高度一半 */
.follow-card .merchant-fav {
    position: absolute;
    right: 0;
    bottom: 54%;
    z-index: 1;
    left: 92%;
}
.follow-star {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 20px;
    height: 20px;
    z-index: 2;
    cursor: pointer;
}

/* ============================================
   开通商户页
   ============================================ */
.mapply-page {
    max-width: 768px;
    margin: 0 auto;
    padding: 0 16px 16px;
    background: #fff;
    min-height: 100vh;
}
.mapply-tip {
    background: #FFF1EC;
    color: #FF4502;
    font-size: 14px;
    line-height: 1.6;
    border-radius: 6px;
    padding: 12px 14px;
    margin-bottom: 16px;
}
.mapply-form {
    padding: 0 16px;
}
.mapply-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 0;
    border-bottom: 1px solid #EFEFEF;
}
.mapply-row:last-of-type {
    border-bottom: none;
}
.mapply-label {
    font-size: 14px;
    color: #000;
    flex-shrink: 0;
}
.mapply-input {
    flex: 1;
    text-align: right;
    border: none;
    outline: none;
    background: transparent;
    font-size: 14px;
    color: #4A4A4A;
    margin-left: 16px;
}
.mapply-input::placeholder {
    color: #B0B0B0;
}
.mapply-logo {
    border: none;
    outline: none;
    background: transparent;
    font-size: 14px;
    color: #27B16D;
    cursor: pointer;
    margin-left: 16px;
}
.mapply-industry.has-value {
    color: #4A4A4A;
}
.mapply-desc {
    padding: 16px 0;
}
.mapply-desc .mapply-label {
    display: block;
    margin-bottom: 10px;
}
.mapply-textarea {
    width: 100%;
    box-sizing: border-box;
    height: 96px;
    border: 1px solid #DFDFDF;
    border-radius: 8px;
    padding: 10px;
    font-size: 14px;
    color: #4A4A4A;
    resize: none;
    outline: none;
    font-family: inherit;
}
.mapply-textarea::placeholder {
    color: #B0B0B0;
}
.mapply-btn {
    display: block;
    width: 70%;
    margin: 32px auto 24px;
    padding: 14px 0;
    background: #27B16D;
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    border: none;
    border-radius: 30px;
    cursor: pointer;
}
.mapply-btn:disabled {
    opacity: 0.6;
}

/* 提交成功后的审核中页面：图标 + 文案 + 返回大厅按钮，水平垂直居中 */
.mapply-review {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: calc(100vh - 60px);
    text-align: center;
    padding: 0 16px;
    box-sizing: border-box;
}
.mapply-review-icon {
    font-size: 96px;
    line-height: 1;
    color: #D6D6D6;
}
.mapply-review-title {
    font-size: 18px;
    font-weight: 600;
    color: #000;
}
.mapply-review-sub {
    font-size: 17px;
    color: #27B16D;
}
.mapply-review-btn {
    width: 70%;
    margin: 8px auto 0;
}

/* 通用隐藏：配合模板条件/JS 控制模块显隐 */
.mapply-hide {
    display: none !important;
}

/* 商户LOGO图预览（上传成功后显示，点击可换图） */
.mapply-logo.uploading {
    color: #999;
}
.mapply-logo.has-logo {
    position: relative;
    padding: 0;
    margin-left: 16px;
}
.mapply-logo-preview {
    display: block;
    width: 64px;
    height: 64px;
    border-radius: 8px;
    object-fit: cover;
    border: 1px solid #EFEFEF;
}
.mapply-logo-change {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    color: #fff;
    font-size: 11px;
    text-align: center;
    line-height: 20px;
    border-radius: 0 0 8px 8px;
}

/* 商户地址行：定位图标 + 可编辑输入 */
.mapply-addr-row {
    display: flex;
    align-items: center;
    flex: 1;
    min-width: 0;
    margin-left: 16px;
}
.mapply-addr-input {
    flex: 1;
    min-width: 0;
    text-align: right;
    border: none;
    outline: none;
    background: transparent;
    font-size: 14px;
    color: #4A4A4A;
}
.mapply-addr-input::placeholder {
    color: #B0B0B0;
}
.mapply-loc-btn {
    border: none;
    outline: none;
    background: transparent;
    padding: 0 0 0 8px;
    font-size: 16px;
    color: #27B16D;
    cursor: pointer;
    line-height: 1;
    flex-shrink: 0;
}

/* 商户行业选择弹层 */
.mapply-industry-mask {
    position: fixed;
    inset: 0;
    z-index: 2000;
    background: rgba(0, 0, 0, 0.5);
    display: none;
    align-items: flex-end;
    justify-content: center;
}
.mapply-industry-dialog {
    width: 100%;
    max-width: 768px;
    background: #fff;
    border-radius: 16px 16px 0 0;
    padding: 0 0 calc(16px + env(safe-area-inset-bottom));
}
.mapply-industry-head {
    position: relative;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    font-weight: 600;
    color: #000;
}
.mapply-industry-close {
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 20px;
    color: #999;
    cursor: pointer;
    line-height: 1;
}
.mapply-industry-list {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    padding: 8px 16px 0;
    max-height: 45vh;
    overflow-y: auto;
}
.mapply-industry-item {
    padding: 8px 18px;
    border: 1px solid #E5E5E5;
    border-radius: 20px;
    font-size: 14px;
    color: #333;
    background: #fff;
    cursor: pointer;
}
.mapply-industry-item.active {
    border-color: #27B16D;
    color: #27B16D;
    background: #EAF9F1;
}

/* 申请成功两行 toast：灰色半透明底，第一行白、第二行绿，居中 */
.mapply-toast {
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    background: rgba(0, 0, 0, 0.75);
    border-radius: 8px;
    padding: 18px 28px;
    z-index: 3000;
    opacity: 0;
    transition: opacity 0.3s;
    pointer-events: none;
    text-align: center;
}
.mapply-toast.show {
    opacity: 1;
}
.mapply-toast-line1 {
    font-size: 16px;
    font-weight: 600;
    color: #fff;
}
.mapply-toast-line2 {
    font-size: 13px;
    color: #27B16D;
    margin-top: 8px;
}

/* ============================================
   商户行业选择页
   ============================================ */
.industry-page {
    max-width: 768px;
    margin: 0 auto;
    padding: 16px;
    background: #fff;
    min-height: 100vh;
}
.industry-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}
.industry-item {
    background: #fff;
    border: 1px solid #CDCDCD;
    border-radius: 6px;
    padding: 14px 0;
    text-align: center;
    font-size: 14px;
    color: #000;
    cursor: pointer;
}
.industry-item:active {
    opacity: 0.6;
}

/* ============================================
   登录 / 注册页
   ============================================ */
.auth-page {
    max-width: 768px;
    margin: 0 auto;
    padding: 0 24px 24px;
    background: #fff;
    min-height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
}
.auth-close {
    position: fixed;
    top: 40px;
    right: 25px;
    z-index: 100;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}
.auth-close .iconfont {
    font-size: 22px;
    color: #D2D2D2;
}
.auth-card {
    position: relative;
    width: 100%;
    max-width: 420px;
    background: #fff;
    /* box-shadow: 0 4px 24px rgba(0, 0, 0, 0.12); */
    border-radius: 16px;
    padding: 80px 24px;
    text-align: center;
}
.auth-logo {
    margin-bottom: 20px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: left;
    overflow: hidden;
}
.auth-logo-img {
    height: 49px;
}
.auth-title {
    font-size: 22px;
    font-weight: 700;
    color: #838383;
    margin-bottom: 50px;
    text-align: left;
}
/* 网站标题（site_title，后台英文固定） */
.auth-title-site { color: #27B16D; }
.auth-subtitle {
    font-size: 16px;
    color: #B6B6B6;
    margin-bottom: 20px;
    text-align: left;
}
.auth-form {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin-bottom: 20px;
}
.auth-field {
    position: relative;
}
.auth-field-icon {
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 18px;
    color: #B2B2B2;
    pointer-events: none;
}
.auth-input {
    width: 100%;
    box-sizing: border-box;
    padding: 14px 44px 14px 44px;
    border: 1px solid #DFDFDF;
    border-radius: 8px;
    font-size: 15px;
    color: #000;
    outline: none;
    background: #fff;
}
/* 去掉浏览器自动填充（autofill）自带的灰/蓝色背景：
   Chrome 用内部样式给 :-webkit-autofill 上色且 !important，普通 background 覆盖不掉，
   需用足够大的内阴影模拟原背景色 + 关闭其过渡动画 */
.auth-input:-webkit-autofill,
.auth-input:-webkit-autofill:hover,
.auth-input:-webkit-autofill:focus {
    -webkit-box-shadow: 0 0 0 1000px #fff inset;
    box-shadow: 0 0 0 1000px #fff inset;
    -webkit-text-fill-color: #000;
    caret-color: #000;
    -webkit-transition: background-color 9999s ease-out;
    transition: background-color 9999s ease-out;
}
/* 登录/注册输入框校验错误：红色边框（输入正确后由 JS 移除该 class） */
.auth-input.input-error {
    border-color: #E62D2D;
}
.auth-input::placeholder {
    color: #B0B0B0;
}
.auth-eye {
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 24px;
    color: #C4C4C4;
    cursor: pointer;
}
.auth-eye.active {
    color: #27B16D;
}
.auth-btn {
    width: 80%;
    margin: 0 auto 0;
    padding: 12px 0;
    background: #27B16D;
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    border: none;
    border-radius: 30px;
    cursor: pointer;
}
.auth-switch {
    font-size: 16px;
    color: #5F5F5F;
    text-align: center;
    margin-bottom: 50px;
}
.auth-switch a {
    color: #000000;
    text-decoration: underline;
}
/* 服务条款勾选未选时摇晃提示 */
@keyframes authShake {
    0%, 100% { transform: translateX(0); }
    15%, 45%, 75% { transform: translateX(-6px); }
    30%, 60%, 90% { transform: translateX(6px); }
}
.auth-agree-shake {
    animation: authShake 0.45s ease-in-out;
}

/* 服务条款：协议 + 已满18岁，两行左对齐，勾选框与"记住密码"单选框对齐 */
.auth-agree {
    padding: 0 16px;
    text-align: left;
}
.auth-agree-item {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    font-size: 16px;
    color: #1A1A1A;
    line-height: 1.6;
    word-break: break-all;
    cursor: pointer;
    user-select: none;
}
.auth-agree-item + .auth-agree-item {
    margin-top: 10px;
}
/* 单选框与文字第一行对齐：文字行高 13*1.6≈21px，图标 18px，差值约 3px，上移一半居中于首行 */
.auth-agree-item .auth-remember-icon {
    flex-shrink: 0;
    line-height: 1;
    margin-top: 3px;
}
.auth-agree a {
    color: #000000;
    text-decoration: underline;
    margin: 0 5px;
}

/* 记住密码 / 忘记密码 */
.auth-remember {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 16px;
}
.auth-remember-left {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: #5E5E5E;
    cursor: pointer;
    user-select: none;
}
.auth-remember-icon {
    font-size: 18px;
    color: #D2D2D2;
}
.auth-remember-icon.checked {
    color: #27B16D;
}
.auth-forget {
    font-size: 13px;
    color: #5E5E5E;
    cursor: pointer;
}

/* 协议弹窗 */
.auth-mask {
    position: fixed;
    inset: 0;
    z-index: 200;
    background: rgba(0, 0, 0, 0.5);
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
}
.auth-dialog {
    width: 100%;
    max-width: 420px;
    background: #fff;
    border-radius: 16px;
    padding: 24px;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.2);
}
.auth-dialog-title {
    font-size: 18px;
    font-weight: 700;
    color: #000;
    text-align: center;
    margin-bottom: 16px;
}
.auth-dialog-body {
    font-size: 14px;
    line-height: 1.7;
    color: #4A4A4A;
    text-align: left;
    max-height: 50vh;
    overflow-y: auto;
    margin-bottom: 20px;
}
.auth-dialog-btn {
    display: block;
    width: 70%;
    margin: 0 auto;
    padding: 12px 0;
    background: #27B16D;
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    border: none;
    border-radius: 30px;
    cursor: pointer;
}
.auth-dialog-btn-row {
    display: flex;
    gap: 12px;
}
.auth-dialog-btn-row .auth-dialog-btn,
.auth-dialog-btn-row .auth-dialog-cancel {
    flex: 1;
    width: auto;
    margin: 0;
}
.auth-dialog-cancel {
    display: block;
    width: 70%;
    margin: 12px auto 0;
    padding: 12px 0;
    background: #F0F0F0;
    color: #555;
    font-size: 15px;
    font-weight: 600;
    border: none;
    border-radius: 30px;
    cursor: pointer;
}

/* 退出登录弹窗 */
.logout-dialog {
    position: relative;
    width: 300px;
    max-width: 85%;
    background: #E2F0E9;
    border-radius: 16px;
    padding: 32px 24px 24px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.2);
}
.logout-dialog-close {
    position: absolute;
    top: 2px;
    left: 12px;
    font-size: 22px;
    color: #27B16D;
    cursor: pointer;
    padding: 4px;
}
.logout-dialog-logo {
    width: 120px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.logout-dialog-logo .iconfont {
    font-size: 42px;
    color: #fff;
    line-height: 1;
}

.logout-dialog-text {
    font-size: 16px;
    font-weight: 600;
    color: #27B16D;
    text-align: center;
}
.logout-dialog-btn-row {
    display: flex;
    flex-direction: row;
    gap: 12px;
    width: 100%;
}
.logout-dialog-btn {
    width: 100%;
    padding: 12px 0;
    font-size: 15px;
    font-weight: 600;
    background: transparent;
    border-radius: 8px;
    cursor: pointer;
    box-sizing: border-box;
}
.logout-dialog-confirm {
    border: 1px solid #27B16D;
    color: #27B16D;
}
.logout-dialog-cancel {
    border: 1px solid #fff;
    color: #fff;
    background-color: #27B16D;
}

/* toast */
.auth-toast {
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    /* left:50% 定位下可用宽度只有视口一半，导致长提示被挤换行；
       显式按内容取宽、上限视口-32px，能一行放下的不再换行 */
    width: max-content;
    max-width: calc(100vw - 32px);
    background: #E2F0E9;
    color: #27B16D;
    font-size: 14px;
    padding: 12px 20px;
    border-radius: 8px;
    z-index: 300;
    opacity: 0;
    transition: opacity 0.3s;
    pointer-events: none;
    box-sizing: border-box;
}
.auth-toast.show {
    opacity: 1;
}

/* ============================================
   PC 适配（宽度 > 768px，仍保持 H5 样式）
   ============================================ */
@media (min-width: 769px) {
    body {
        background: #f0f2f5;
    }
    .boost-header,
    .ad-section,
    .merchant-section,
    .boost-footer {
        box-shadow: 0 0 24px rgba(0, 0, 0, 0.06);
    }
    .boost-footer {
        border-radius: 16px 16px 0 0;
    }
}

/* ============================================
   发布帖子页
   ============================================ */
.publish-form-wrap {
    max-width: 768px;
    margin: 0 auto;
    background: #fff;
    min-height: 100vh;
    padding: 12px 16px 40px;
    box-sizing: border-box;
}

/* 文本域（背景 #F7F7F7，内含添加图片图标） */
.pf-textarea-box {
    background: #F7F7F7;
    border-radius: 10px;
    padding: 12px;
}
.pf-textarea {
    width: 100%;
    box-sizing: border-box;
    background: transparent;
    border: none;
    outline: none;
    resize: none;
    font-size: 14px;
    color: #000;
    line-height: 1.6;
    min-height: 110px;
}
.pf-textarea::placeholder {
    color: #999;
}

/* 工具栏：添加图片图标在左，预览图在右（位于文本域上方） */
.pf-toolbar {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 12px;
}
.pf-add-img {
    width: 64px;
    height: 64px;
    border-radius: 8px;
    background: #fff;
    border: 1px dashed #27B16D;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    box-sizing: border-box;
}
/* 添加图片按钮禁用态：图片达到 3 张上限时置灰 + 红色禁止图标（删除一张后自动恢复） */
.pf-add-img {
    position: relative;
}
.pf-add-img.pf-add-img-disabled {
    cursor: not-allowed;
    border-color: #C5C5C5;
}
.pf-add-img.pf-add-img-disabled svg {
    opacity: .3;
}
.pf-add-img.pf-add-img-disabled::before {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    width: 34px;
    height: 34px;
    margin: -17px 0 0 -17px;
    border: 3px solid #E5484D;
    border-radius: 50%;
}
.pf-add-img.pf-add-img-disabled::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    width: 26px;
    height: 3px;
    margin: -1.5px 0 0 -13px;
    background: #E5484D;
    transform: rotate(-45deg);
    border-radius: 2px;
}
.pf-img-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    flex: 1;
    min-width: 0;
}
.pf-img-item {
    position: relative;
    width: 64px;
    height: 64px;
    border-radius: 8px;
    overflow: hidden;
    flex-shrink: 0;
    border: 1px solid #E8E8E8;
    box-sizing: border-box;
    background: #fff;
}
.pf-img-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.pf-img-del {
    position: absolute;
    top: 2px;
    right: 2px;
    font-size: 14px;
    color: #fff;
    background: rgba(0, 0, 0, 0.5);
    border-radius: 50%;
    padding: 1px;
    cursor: pointer;
    line-height: 1;
}

/* 位置选择行 */
.pf-location {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 2px;
    border-bottom: 1px solid #F0F0F0;
    cursor: pointer;
}
.pf-location-left {
    display: flex;
    align-items: center;
    gap: 6px;
}
.pf-location-icon {
    font-size: 16px;
    color: #27B16D;
    line-height: 1;
}
.pf-location-title {
    font-size: 15px;
    color: #000;
    font-weight: 500;
}
.pf-location-right {
    display: flex;
    align-items: center;
    gap: 4px;
    max-width: 62%;
}
.pf-location-text {
    font-size: 14px;
    color: #666;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.pf-location-arrow {
    font-size: 14px;
    color: #BBB;
    line-height: 1;
}

/* 地图选点弹层 */
.pf-map-mask {
    position: fixed;
    inset: 0;
    z-index: 2000;
    background: rgba(0, 0, 0, 0.5);
    display: none;
    align-items: flex-end;
    justify-content: center;
}
.pf-map-dialog {
    width: 100%;
    max-width: 768px;
    background: #fff;
    border-radius: 16px 16px 0 0;
    overflow: hidden;
}
.pf-map-head {
    position: relative;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.pf-map-title {
    font-size: 16px;
    font-weight: 600;
    color: #000;
}
.pf-map-close {
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 20px;
    color: #000;
    cursor: pointer;
    line-height: 1;
}
.pf-map-body {
    position: relative;
    height: 55vh;
}
.pf-map {
    width: 100%;
    height: 100%;
}
.pf-map-placeholder {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #F7F7F7;
    color: #999;
    font-size: 14px;
    text-align: center;
    padding: 20px;
    box-sizing: border-box;
}
.pf-map-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 16px;
    padding-bottom: calc(12px + env(safe-area-inset-bottom));
}
.pf-map-addr {
    flex: 1;
    min-width: 0;
    font-size: 13px;
    color: #666;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.pf-map-confirm {
    flex-shrink: 0;
    padding: 10px 28px;
    background: #27B16D;
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    border: none;
    border-radius: 30px;
    cursor: pointer;
}

/* ============================================
   语言切换底部弹层
   ============================================ */
.lang-mask {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(0, 0, 0, 0.5);
    display: none;
    align-items: flex-end;
    justify-content: center;
}
.lang-mask.show {
    display: flex;
}
.lang-sheet {
    width: 100%;
    max-width: 420px;
    background: #fff;
    border-radius: 16px 16px 0 0;
    padding: 8px 0 calc(16px + env(safe-area-inset-bottom));
    animation: langSheetUp 0.25s ease-out;
}
@keyframes langSheetUp {
    from { transform: translateY(100%); }
    to   { transform: translateY(0); }
}
.lang-sheet-item {
    display: block;
    width: 100%;
    padding: 16px 24px;
    font-size: 16px;
    color: #000;
    text-align: center;
    background: none;
    border: none;
    border-bottom: 1px solid #f0f0f0;
    cursor: pointer;
}
.lang-sheet-item:last-child {
    border-bottom: none;
}
.lang-sheet-item:active {
    background: #f7f7f7;
}
.lang-sheet-cancel {
    display: block;
    width: 100%;
    padding: 16px 24px;
    font-size: 16px;
    color: #727272;
    text-align: center;
    background: none;
    border: none;
    border-top: 8px solid #f0f0f0;
    cursor: pointer;
}
.lang-sheet-cancel:active {
    background: #f7f7f7;
}

/* ============================================
   账户管理页
   ============================================ */
.account-section {
    background: #fff;
    max-width: 768px;
    margin: 0 auto;
    min-height: 100vh;
    padding: 24px 16px 40px;
    box-sizing: border-box;
}
.account-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.account-card {
    position: relative;
    border-radius: 12px;
    padding: 16px;
    box-sizing: border-box;
    box-shadow: 0 6px 18px rgba(30, 60, 120, 0.10), 0 2px 6px rgba(30, 60, 120, 0.06);
}
.account-card:active {
    box-shadow: 0 3px 10px rgba(30, 60, 120, 0.08), 0 1px 3px rgba(30, 60, 120, 0.05);
}
.account-card-blue {
    background: #D2DEFA;
}
.account-card-green {
    background: #B5EED7;
}
.account-card-usdt {
    background: #B5EED7;
}
.account-card-usdt .account-bank-name,
.account-card-usdt .account-number {
    color: #348E69;
}
.account-status-tag {
    flex-shrink: 0;
    padding: 5px 14px;
    font-size: 13px;
    line-height: 1.4;
    border-radius: 999px;
    white-space: nowrap;
}
/* 审核中：琥珀色 */
.account-status-tag.account-status-0 {
    color: #B26A00;
    background: rgba(255, 173, 51, 0.16);
    border: 1px solid rgba(255, 173, 51, 0.45);
}
/* 已驳回：红色 */
.account-status-tag.account-status-2 {
    color: #D4380D;
    background: rgba(255, 77, 79, 0.10);
    border: 1px solid rgba(255, 77, 79, 0.38);
}
.account-audit-tip {
    margin-top: 10px;
    font-size: 12px;
    color: #999;
}
.account-badge {
    position: absolute;
    top: 0;
    right: 0;
    padding: 4px 10px;
    font-size: 14px;
    background: #EDF2FF;
    color: #0A2566;
    border-radius: 0 8px 0 8px;
}
.account-card-green .account-badge {
    color: #348E69;
    background: #EDF2FF;
}
.account-card-top {
    display: flex;
    align-items: center;
    gap: 12px;
}
.account-bank-logo {
    width: 40px;
    height: 40px;
    padding: 4px;
    box-sizing: border-box;
    border-radius: 8px;
    background: #fff;
    object-fit: contain;
}
.account-bank-name {
    font-size: 16px;
    font-weight: 600;
    color: #0A2566;
}
.account-card-green .account-bank-name {
    color: #348E69;
}
.account-card-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 14px;
}
.account-number {
    min-width: 0;
    flex: 1;
    margin-right: 10px;
    font-size: 22px;
    color: #0A2566;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.account-card-green .account-number {
    color: #348E69;
}
.account-unbind {
    padding: 4px 22px;
    font-size: 14px;
    color: #072669;
    border: 1px solid #072669;
    border-radius: 4px;
    background: transparent;
    cursor: pointer;
}
.account-card-green .account-unbind {
    color: #348E69;
    border-color: #348E69;
}
.account-unbind:active {
    opacity: 0.7;
}
.account-unbind:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}
.account-add-btn {
    display: block;
    width: 70%;
    margin: 24px auto 0;
    padding: 14px 0;
    font-size: 16px;
    font-weight: 600;
    color: #fff;
    text-align: center;
    text-decoration: none;
    background: #27B16D;
    border: none;
    border-radius: 30px;
    cursor: pointer;
}
.account-add-btn:active {
    opacity: 0.85;
}

/* 默认账户：浅蓝背景模块，仅左下角圆角 */
.account-card-default {
    border-radius: 12px;
}
.account-card-default .account-bank-name,
.account-card-default .account-number {
    color: #0A2566;
}

/* 设为默认（右上角，样式同默认账户标志） */
.account-set-default {
    position: absolute;
    top: 0;
    right: 0;
    padding: 4px 10px;
    font-size: 14px;
    line-height: 1.4;
    color: #0A2566;
    background: #EDF2FF;
    border: none;
    border-radius: 0 8px 0 8px;
    white-space: nowrap;
    cursor: pointer;
}
.account-set-default:active {
    opacity: 0.7;
}

/* 修改（已驳回账户） */
.account-modify {
    flex-shrink: 0;
    padding: 4px 22px;
    font-size: 14px;
    color: #072669;
    border: 1px solid #072669;
    border-radius: 4px;
    background: transparent;
    text-decoration: none;
    cursor: pointer;
}
.account-modify:active {
    opacity: 0.7;
}

/* ============================================
   选择卡类型页
   ============================================ */
.cardtype-section {
    background: #fff;
    max-width: 768px;
    margin: 0 auto;
    min-height: 100vh;
    padding: 0 24px 40px;
    box-sizing: border-box;
}
.cardtype-list {
    background: #fff;
}
.cardtype-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 0;
    cursor: pointer;
}
.cardtype-item + .cardtype-item {
    border-top: 1px solid #F0F0F0;
}
.cardtype-left {
    display: flex;
    align-items: center;
    gap: 12px;
}
.cardtype-logo-wrap {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    padding: 6px;
}
.cardtype-logo-bank {
    border: 2px solid #008089;
}
.cardtype-logo-usdt {
    border: 2px solid #4F9E7E;
}
.cardtype-logo-visa {
    border: 2px solid #142C97;
}
.cardtype-logo {
    width: 20px;
    height: 20px;
    /* contain：等比完整显示，避免宽幅 logo（如 VISA 56x18）被裁切 */
    object-fit: contain;
    display: block;
}
.cardtype-name {
    font-size: 15px;
    font-weight: 500;
    color: #000;
}
.cardtype-check {
    font-size: 20px;
    color: #C8C8C8;
}
.cardtype-item.selected .cardtype-check {
    color: #27B16D;
}
/* 选择账户页：左图标 +（卡类型 / 加密卡号上下分布），右单选图标 */
.select-card-info {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    min-width: 0;
}
.select-card-type {
    font-size: 15px;
    font-weight: 600;
    color: #000;
}
.select-card-no {
    font-size: 13px;
    color: #666;
    white-space: nowrap;
}
.cardtype-confirm-btn {
    display: block;
    width: 70%;
    margin: 32px auto 0;
    padding: 14px 0;
    font-size: 16px;
    font-weight: 600;
    color: #fff;
    text-align: center;
    text-decoration: none;
    background: #27B16D;
    border: none;
    border-radius: 30px;
    cursor: pointer;
}
.cardtype-confirm-btn:active {
    opacity: 0.85;
}

/* ============================================
   绑定卡片信息页
   ============================================ */
.bind-section {
    background: #fff;
    max-width: 768px;
    margin: 0 auto;
    padding: 24px 24px 8px;
    box-sizing: border-box;
}
.bind-tip {
    font-size: 15px;
    font-weight: 600;
    color: #000;
    text-align: left;
    margin: 0 0 16px;
}
.bind-field {
    margin-bottom: 16px;
}
.bind-input {
    width: 100%;
    box-sizing: border-box;
    padding: 12px 14px;
    border: 1px solid #CACACA;
    border-radius: 8px;
    font-size: 15px;
    color: #000;
    background: #fff;
    outline: none;
}
.bind-input::placeholder {
    color: #B5B5B5;
}
.bind-input:focus {
    border-color: #27B16D;
}
/* 卡号：左标题 + 输入 + 右图标 */
.bind-field-cardno {
    display: flex;
    align-items: center;
    border: 1px solid #CACACA;
    border-radius: 8px;
    padding: 0 14px;
    background: #fff;
}
.bind-cardno-label {
    font-size: 15px;
    color: #000;
    white-space: nowrap;
    margin-right: 12px;
}
.bind-cardno-input {
    flex: 1;
    min-width: 0;
    border: none;
    outline: none;
    padding: 12px 0;
    font-size: 15px;
    color: #000;
    background: transparent;
}
.bind-cardno-input::placeholder {
    color: #B5B5B5;
}
.bind-cardno-icons {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 16px;
    color: #9AA0A6;
}
/* 卡号右侧 SVG 图标（viewBox 1228x1024，等比缩放到 22px 宽） */
.bind-cardno-icons .bind-cardno-svg {
    width: 22px;
    height: auto;
    display: block;
    flex-shrink: 0;
}
/* MM/YY 时间选择器 */
.bind-date-field {
    position: relative;
    cursor: pointer;
}
.bind-date-input {
    cursor: pointer;
    background: #fff;
}
.bind-date-arrow {
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: #9AA0A6;
    font-size: 12px;
    pointer-events: none;
}
/* MM/YY 弹层 */
.bind-date-mask {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 999;
}
.bind-date-mask.show {
    display: flex;
}
.bind-date-pop {
    width: 80%;
    max-width: 320px;
    background: #fff;
    border-radius: 12px;
    padding: 18px;
    box-sizing: border-box;
}
.bind-date-pop-title {
    text-align: center;
    font-size: 16px;
    font-weight: 600;
    color: #000;
    margin-bottom: 14px;
}
.bind-date-pop-body {
    display: flex;
    gap: 12px;
    margin-bottom: 16px;
}
.bind-date-col {
    flex: 1;
}
.bind-date-col-title {
    font-size: 13px;
    color: #666;
    margin-bottom: 6px;
    text-align: center;
}
.bind-date-col select {
    width: 100%;
    padding: 8px;
    border: 1px solid #CACACA;
    border-radius: 6px;
    font-size: 15px;
    color: #000;
    background: #fff;
    outline: none;
}
.bind-date-pop-footer {
    display: flex;
    gap: 12px;
}
.bind-date-btn {
    flex: 1;
    text-align: center;
    padding: 10px 0;
    border-radius: 20px;
    font-size: 15px;
    color: #666;
    background: #F5F5F5;
    cursor: pointer;
}
.bind-date-btn-ok {
    color: #fff;
    background: #27B16D;
}
/* 协议文字 */
.bind-agree {
    font-size: 12px;
    color: #999;
    text-align: center;
    margin: 20px 0 0;
    line-height: 1.6;
}
.bind-agree-link {
    color: #27B16D;
}
/* USDT 表单 */
.bind-usdt-title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 24px;
}
.bind-usdt-icon {
    font-size: 22px;
    color: #26A17B;
}
.bind-usdt-title span {
    font-size: 17px;
    font-weight: 700;
    color: #000;
}
.bind-protocol-tabs {
    margin-bottom: 20px;
}
.bind-protocol-tab {
    position: relative;
}
.bind-protocol-check {
    position: absolute;
    right: -1px;
    bottom: -1px;
    width: 24px;
    height: auto;
    display: none;
}
.bind-protocol-tab.active .bind-protocol-check {
    display: block;
}
/* 钱包地址：无边框，左标题 */
.bind-field-addr {
    display: flex;
    align-items: center;
    margin-bottom: 20px;
}
.bind-addr-label {
    font-size: 15px;
    font-weight: 500;
    color: #000;
    white-space: nowrap;
    margin-right: 12px;
}
.bind-addr-input {
    flex: 1;
    min-width: 0;
    border: none;
    outline: none;
    padding: 12px 0;
    font-size: 15px;
    color: #000;
    background: transparent;
    text-align: right;
}
.bind-addr-input::placeholder {
    color: #B5B5B5;
}
/* 收款码标题 */
.bind-receipt-title {
    font-size: 15px;
    font-weight: 500;
    color: #000;
    text-align: left;
    margin: 0 0 12px;
}
/* 收款码标题 + 上传按钮同一行 */
.bind-receipt-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}
.bind-receipt-row .bind-receipt-title {
    margin: 0;
}
/* 上传收款码按钮 */
.bind-upload-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 15px;
    color: #27B16D;
    cursor: pointer;
    padding: 6px 0;
}
.bind-upload-btn .iconfont {
    font-size: 18px;
    color: #27B16D;
}
.bind-upload-btn:active {
    opacity: 0.8;
}
.bind-upload-preview-img {
    width: 60px;
    height: 60px;
    object-fit: contain;
    border: 1px solid #F0F0F0;
    border-radius: 8px;
    display: block;
}

/* ============================================
   商户系统
   ============================================ */
.merchant-page {
    max-width: 768px;
    margin: 0 auto;
    min-height: 100vh;
    box-sizing: border-box;
    padding-bottom: 70px;
}
.merchant-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    font-size: 16px;
    color: #999;
}
/* 商户 Footer 导航：三个【主页、订单、订阅】 */
.merchant-footer .footer-nav {
    color: #B3B3B3;
}
.merchant-footer .footer-nav.active {
    color: #27B16D;
}

/* ============================================
   商户主页
   ============================================ */
/* 页面背景白色 */
.merchant-home {
    background: #fff;
    padding-bottom: 80px;
}
.merchant-home-body {
    padding: 0 16px;
}

/* Header */
.merchant-header {
    position: sticky;
    top: 0;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    padding: 14px 16px;
}
.merchant-header-title {
    font-size: 17px;
    font-weight: 600;
    color: #000;
}
.merchant-header-back {
    position: absolute;
    left: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #000;
    width: 32px;
    height: 32px;
}
.merchant-header-service {
    position: absolute;
    right: 16px;
    font-size: 22px;
    color: #000;
    cursor: pointer;
    text-decoration: none;
}
.merchant-header-service .icon-1kefu {
    font-size: 22px;
}

/* 通用卡片 */
.mh-card {
    background: #fff;
}

/* 模块1：商户信息 */
.mh-empty {
    padding: 24px 0;
    text-align: center;
    font-size: 14px;
    color: #999;
}
.mh-info {
    display: flex;
    align-items: center;
    padding: 12px 16px;
}
.mh-info-left {
    margin-right: 12px;
}
.mh-logo {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    object-fit: cover;
    display: block;
}
/* 商户 Logo 点击上传（成功后立即生效） */
.mh-logo-wrap {
    position: relative;
    width: 64px;
    height: 64px;
    cursor: pointer;
    flex-shrink: 0;
}
.mh-logo-edit {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #27B16D;
    border: 2px solid #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
}
.mh-logo-edit svg {
    width: 11px;
    height: 11px;
    color: #fff;
    display: block;
}
.mh-info-right {
    flex: 1;
    min-width: 0;
}
.mh-name-row {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 6px;
}
.mh-name {
    font-size: 16px;
    font-weight: 600;
    color: #000;
    line-height: 1.2;
    display: inline-flex;
    align-items: center;
}
.mh-level {
    height: 22px;
    width: auto;
    flex-shrink: 0;
    display: block;
}
.mh-level-link {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
}
.mh-line {
    display: flex;
    align-items: center;
    margin-top: 3px;
}
.mh-line-title {
    font-size: 13px;
    color: #000;
}
.mh-line-value {
    font-size: 13px;
    color: #999;
}

/* 模块2：商户描述 */
.mh-desc {
    display: flex;
    padding: 14px 16px;
    border-top: 1px solid #F0F0F0;
    line-height: 1.6;
}
.mh-desc-title {
    font-size: 14px;
    font-weight: 600;
    color: #000;
    flex-shrink: 0;
}
.mh-desc-content {
    font-size: 14px;
    color: #333;
    word-break: break-word;
    white-space: normal;
}

/* 模块3：商户详情 */
.mh-detail-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 16px;
}
.mh-detail-row:first-child {
    border-top: 1px solid #F0F0F0;
}
.mh-detail-title {
    font-size: 14px;
    color: #000;
}
.mh-detail-value {
    font-size: 14px;
    color: #333;
}

/* 模块4：数据小模块 */
.mh-stat {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #FAFAFA;
    border: 1px solid #EEEEEE;
    border-radius: 8px;
    padding: 14px 16px;
    margin-top: 10px;
}
.mh-stat:first-child {
    margin-top: 0;
}
.mh-stat-title {
    font-size: 14px;
    color: #000;
}
.mh-stat-value {
    font-size: 14px;
    font-weight: 600;
    color: #E12727;
}
.mh-stat-link {
    display: flex;
    align-items: center;
    text-decoration: none;
    color: #999;
    font-size: 18px;
}

/* 模块5：图片 */
.mh-banner {
    padding-top: 12px;
}
.mh-banner-img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 10px;
}

/* 模块6：订阅按钮 */
.mh-subscribe-btn {
    display: block;
    width: 70%;
    margin: 20px auto 0;
    padding: 14px 0;
    background: #27B16D;
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    text-align: center;
    border-radius: 30px;
    text-decoration: none;
    cursor: pointer;
}

/* ============================================
   商户订单页
   ============================================ */
.merchant-order-page {
    background: #fff;
    padding-bottom: 80px;
}
.merchant-order-body {
    padding: 0 16px;
}

/* 顶部 Tab：发布订单 / 订单记录 */
.mo-top-tabs {
    display: flex;
    background: #F2F2F2;
    border-radius: 8px;
    padding: 4px;
    margin-bottom: 18px;
}
.mo-top-tab {
    flex: 1;
    text-align: center;
    padding: 10px 0;
    font-size: 14px;
    font-weight: 600;
    color: #000;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.2s;
}
.mo-top-tab.active {
    background: #27B16D;
    color: #fff;
}
.mo-top-tab.disabled {
    background: #F2F2F2;
    color: #B9B9B9;
    cursor: not-allowed;
}
.mo-ban-block {
    margin-bottom: 18px;
    padding: 14px 16px;
    font-size: 14px;
    line-height: 22px;
    color: #FF4502;
    background: #FFF1F0;
    border: 1px solid #FFD6D2;
    border-radius: 8px;
}

/* 表单字段 */
.mo-field {
    margin-bottom: 20px;
}
.mo-field-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
}
.mo-field-title {
    font-size: 15px;
    font-weight: 600;
    color: #000;
}
.mo-title-block {
    display: block;
    margin-bottom: 8px;
}
.mo-cover-upload {
    font-size: 14px;
    color: #27B16D;
    cursor: pointer;
}
.mo-cover-right {
    display: flex;
    align-items: center;
    gap: 8px;
}
/* 封面小预览图（与"上传封面"并排，点击可换图） */
.mo-cover-preview {
    display: none;
}
.mo-cover-preview.has-preview {
    display: block;
    cursor: pointer;
}
.mo-cover-preview img {
    width: 100px;
    height: 60px;
    object-fit: cover;
    border-radius: 6px;
    display: block;
    border: 1px solid #EFEFEF;
}

/* 文本域 */
.mo-textarea {
    width: 100%;
    box-sizing: border-box;
    background: #F0F0F0;
    border: none;
    border-radius: 8px;
    padding: 12px;
    font-size: 14px;
    color: #000;
    resize: none;
    outline: none;
}

/* 单选 Tab（素材 / 抢单时间） */
.mo-opt-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.mo-opt-tab {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 18px;
    border: 1px solid #5F5F5F;
    border-radius: 8px;
    font-size: 14px;
    color: #000;
    cursor: pointer;
    transition: all 0.2s;
}
.mo-opt-tab.active {
    border-color: #27B16D;
    background: #F0FFF8;
    color: #000;
}
.mo-opt-check {
    position: absolute;
    right: -1px;
    bottom: -1px;
    width: 24px;
    height: auto;
    display: none;
}
.mo-opt-tab.active .mo-opt-check {
    display: block;
}

/* 选项被禁用（商户被禁止发布素材时，"提供素材"置灰） */
.mo-opt-tab.disabled {
    border-color: #E5E5E5;
    background: #F6F6F6;
    color: #B9B9B9;
    cursor: not-allowed;
}

/* 抢单时间：四个按钮平均分布 */
.mo-time-tabs {
    display: flex;
    gap: 10px;
}
.mo-time-tabs .mo-opt-tab {
    flex: 1;
    padding: 10px 0;
    box-sizing: border-box;
}

/* 抢单人数：三个按钮平均分布 */
.mo-people-tabs {
    display: flex;
    gap: 10px;
}
.mo-people-tabs .mo-opt-tab {
    flex: 1;
    padding: 10px 0;
    box-sizing: border-box;
}

/* 抢单人数 */
.mo-people {
    font-size: 14px;
    font-weight: 600;
    color: #FF4502;
}

/* 素材上传提示 */
.mo-upload-tip {
    font-size: 14px;
    color: #FF4502;
}

/* 上传按钮 + 预览图（按钮在左，预览在右） */
.mo-upload-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}
.mo-upload-area {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    flex-shrink: 0;
    padding: 8px 22px;
    border: 1px solid #27B16D;
    border-radius: 6px;
    color: #27B16D;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    background: #fff;
    box-sizing: border-box;
}
.mo-upload-plus {
    font-size: 18px;
    color: #27B16D;
    line-height: 1;
}
.mo-upload-text {
    color: #27B16D;
}

/* 上传预览列表 */
.mo-upload-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    flex: 1;
    min-width: 0;
}
.mo-upload-item {
    position: relative;
    width: 80px;
    height: 80px;
    border: 1px solid #E0E0E0;
    border-radius: 6px;
    overflow: hidden;
    box-sizing: border-box;
}
.mo-upload-item img,
.mo-upload-item video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
/* 素材上传中占位 */
.mo-upload-item.mo-uploading .mo-upload-ing {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    font-size: 12px;
    color: #999;
    background: #F5F5F5;
}
.mo-upload-del {
    position: absolute;
    top: 2px;
    right: 2px;
    font-size: 16px;
    color: #fff;
    background: rgba(0, 0, 0, 0.5);
    border-radius: 50%;
    padding: 2px;
    cursor: pointer;
    line-height: 1;
    z-index: 2;
}

/* 发布任务按钮 */
.mo-submit-btn {
    display: block;
    width: 70%;
    margin: 24px auto 0;
    padding: 14px 0;
    background: #27B16D;
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    border: none;
    border-radius: 30px;
    text-align: center;
    cursor: pointer;
}
/* 被禁止发布：置灰不可点击 */
.mo-submit-btn:disabled,
.mo-submit-btn-disabled {
    background: #b4babf;
    cursor: not-allowed;
}

/* 订单记录占位：图标 + 提示语，页面垂直居中展示 */
.mo-record-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    color: #DFDFDF;
    min-height: 62vh;
    padding: 0;
    width: 100%;
    box-sizing: border-box;
}
/* grid 多列布局下空状态跨整行，保证水平居中 */
.mo-record-empty.follow-empty,
.follow-list .mo-record-empty {
    grid-column: 1 / -1;
}
.mo-record-empty-icon {
    font-size: 64px;
    line-height: 1;
}
.mo-record-empty-text {
    font-size: 16px;
}

/* ==================== 我的帖子页（每行两个模块） ==================== */
.myposts-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
/* 单个帖子模块：背景 #F7F7F7（左右两列瀑布流布局，宽度由列决定，高度按实际内容） */
.mypost-card {
    width: 100%;
    box-sizing: border-box;
    background: #F7F7F7;
    border-radius: 10px;
    padding: 8px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
/* 第一部分：帖子图片，多图上下分布展示 */
/* 图片过多时折叠：容器固定最大高度，超出隐藏，出现展开/收起图标 */
.mypost-imgs {
    max-height: 220px;
    overflow: hidden;
}
.mypost-imgs.expanded {
    max-height: none;
    overflow: visible;
}
/* 展开/收起图标（图片容器下方居中，绿色圆形，箭头朝下=展开，展开后旋转180°=收起） */
.mypost-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    margin: 6px auto 2px;
    border-radius: 50%;
    background: #27B16D;
    cursor: pointer;
    -webkit-user-select: none;
    user-select: none;
    flex-shrink: 0;
}
.mypost-toggle svg {
    transition: transform 0.2s;
}
.mypost-toggle.open svg {
    transform: rotate(180deg);
}
.mypost-imgs img {
    display: block;
    width: 100%;
    border-radius: 6px;
    margin-bottom: 6px;
}
.mypost-imgs img:last-child {
    margin-bottom: 0;
}
/* 第二部分：文字内容（黑色，最多3行省略） */
.mypost-text {
    color: #000;
    font-size: 13px;
    line-height: 1.5;
    word-break: break-all;
    margin: 2px 0 8px;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
}
/* 第三部分：底部 审核状态(左) + 删除图标(右) 左右分布 */
.mypost-foot {
    margin-top: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.mypost-status {
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
}
.mypost-status.st-auditing {
    color: #FF9900;
}
.mypost-status.st-passed {
    color: #27B16D;
}
.mypost-status.st-rejected {
    color: #E74646;
}
/* 删除按钮外层模块：浅灰背景 + 小圆角 */
.mypost-del-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    padding: 4px 6px;
    line-height: 1;
}
.mypost-del {
    font-size: 20px;
    line-height: 1;
    color: #C3C3C3;
    cursor: pointer;
}

/* 订单记录列表 */
.mo-record-card {
    background: #fff;
    border: 1px solid #DFDFDF;
    border-radius: 8px;
    padding: 12px;
    margin-bottom: 12px;
}
/* 第一个模块：订单描述（单行省略） */
.mo-record-desc {
    font-size: 14px;
    color: #000;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
/* 第二个模块：素材 + 图片（左占6 右占4，避免英文环境文案换行） */
.mo-record-mid {
    display: flex;
    align-items: start;
    gap: 12px;
    margin-top: 10px;
}
.mo-record-left {
    flex: 6;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
}
.mo-record-material {
    display: flex;
    align-items: center;
    gap: 4px;
}
.mo-rm-title {
    font-size: 14px;
    color: #000;
}
.mo-rm-value {
    font-size: 14px;
    color: #27B16D;
}
.mo-record-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    border: 1px solid #C6C6C6;
    border-radius: 20px;
    padding: 4px 10px;
    font-size: 12px;
    line-height: 1.4;
    box-sizing: border-box;
}
.mo-rec-people {
    color: #FF4502;
}
/* 已抢人数/抢单总数：5 橙色 /10 黑色 */
.mo-rec-num {
    display: inline-flex;
    align-items: baseline;
    font-size: 12px;
}
.mo-rec-rob {
    color: #FF4502;
    font-weight: 600;
}
.mo-rec-total {
    color: #000;
}
.mo-record-btn .iconfont {
    font-size: 14px;
    line-height: 1;
}
.mo-rec-star {
    color: #27B16D;
    font-family: "iconfont";
    font-size: 15px;
    line-height: 1;
}
.mo-rec-collect {
    color: #000;
}
.mo-rec-fav {
    cursor: default;
}
.mo-record-right {
    flex: 4;
    min-width: 0;
    display: flex;
    justify-content: flex-end;
}
.mo-record-right img {
    width: 140px;
    max-width: 100%;
    height: 70px;
    object-fit: cover;
    border-radius: 6px;
    display: block;
}
/* 独立按钮行：抢单/收藏 + 取消发布/推广详情 一行展示，四个按钮高度一致 */
.mo-record-btn-row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
}
.mo-record-btns {
    display: flex;
    align-items: center;
    gap: 8px;
}
/* 操作按钮组：取消发布 + 推广详情（靠右） */
.mo-record-actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}
.mo-record-actions .mo-close-publish {
    margin-left: 0;
    padding: 4px 10px;
}
/* 推广详情按钮：绿色底白字（透明边框占位，与其他按钮高度一致） */
.mo-promo-btn {
    flex-shrink: 0;
    padding: 4px 10px;
    background: #27B16D;
    color: #fff;
    border: 1px solid transparent;
    border-radius: 20px;
    font-size: 12px;
    line-height: 1.4;
    box-sizing: border-box;
    cursor: pointer;
    white-space: nowrap;
}
/* 第三个模块：时间信息 + 取消发布按钮同一行，按钮垂直居中 */
.mo-record-info {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    border-top: 1px solid #DFDFDF;
    margin-top: 10px;
    padding: 8px 0;
}
.mo-rec-info-item {
    flex: 1 1 0;
    min-width: 0;
    box-sizing: border-box;
    padding-right: 8px;
}
.mo-rec-info-title {
    display: block;
    font-size: 12px;
    color: #000;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.mo-rec-info-value {
    display: block;
    font-size: 12px;
    color: #999;
    margin-top: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
/* 订单记录：取消发布按钮（仅进行中订单显示；字体与边框同色 #9A9A9A） */
.mo-close-publish {
    flex-shrink: 0;
    margin-left: auto;
    padding: 4px 10px;
    background: #fff;
    color: #9A9A9A;
    border: 1px solid #9A9A9A;
    border-radius: 20px;
    font-size: 12px;
    line-height: 1.4;
    box-sizing: border-box;
    cursor: pointer;
    white-space: nowrap;
}

/* ============================================
   推广详情页（商户查看订单推广情况）
   ============================================ */
.pd-page {
    background: #fff;
    min-height: 100vh;
    padding-bottom: 30px;
}
.pd-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: #fff;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
}
.pd-header-inner {
    display: flex;
    align-items: center;
    height: 46px;
    padding: 0 12px;
}
.pd-back {
    font-size: 20px;
    color: #333;
    cursor: pointer;
    flex-shrink: 0;
}
.pd-title {
    flex: 1;
    text-align: center;
    font-size: 16px;
    font-weight: 600;
    color: #1f2d3d;
    padding-right: 20px; /* 平衡左侧返回图标宽度，使标题视觉居中 */
}

/* 模块一：统计 */
.pd-stats {
    margin: 12px 16px 0;
    padding: 14px 16px;
    background: #F5F5F5;
    border-radius: 8px;
    font-size: 14px;
    color: #000;
    text-align: left;
}
.pd-stats-num {
    color: #F22A2A;
}

/* 模块二：抢单列表 */
.pd-list {
    padding: 12px 16px 0;
}
.pd-card {
    background: #F5F5F5;
    border-radius: 8px;
    padding: 12px;
    margin-bottom: 12px;
}
/* 上半部分：左用户资料/描述/时间 + 右封面图 */
.pd-card-top {
    display: flex;
    gap: 10px;
}
.pd-card-left {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 6px;
}
.pd-user {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}
.pd-avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}
.pd-no-avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #e2e2e2;
    color: #999;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    flex-shrink: 0;
}
.pd-user-name {
    font-size: 13px;
    color: #000;
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.pd-user-level {
    height: 14px;
    flex-shrink: 0;
}
.pd-desc {
    font-size: 12px;
    color: #333;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.pd-time {
    font-size: 12px;
    color: #000;
}
.pd-card-right {
    flex-shrink: 0;
    width: 100px;
    display: flex;
}
/* 封面图高度与左侧模块高度一致 */
.pd-card-right img {
    width: 100px;
    flex: 1;
    min-height: 0;
    object-fit: cover;
    border-radius: 6px;
    display: block;
}
/* 下半部分：绑定的任务链接类型列表（一行三个，超过一行换行并在两排之间加分割线） */
.pd-links {
    display: flex;
    flex-wrap: wrap;
    margin-top: 10px;
}
.pd-link-item {
    width: 33.333%;
    box-sizing: border-box;
    padding: 6px 10px 6px 0;
}
.pd-link-item.pd-link-row2 {
    border-top: 1px solid #E6E6E6; /* 第二排与第一排之间的分割线 */
}
.pd-link-head {
    display: flex;
    align-items: center;
    gap: 5px;
    min-width: 0;
}
.pd-link-name {
    font-size: 13px;
    color: #000;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.pd-link-copy {
    flex-shrink: 0;
    cursor: pointer;
    display: flex;
    align-items: center;
    color: #999;
}
.pd-link-copy svg {
    width: 13px;
    height: 13px;
    color: #666666;
}
.pd-view {
    display: inline-block;
    margin-top: 3px;
    font-size: 12px;
    color: #27B16D;
    text-decoration: none;
    word-break: break-all;
}

/* ============================================
   商户订阅页
   ============================================ */
.merchant-subscribe-page {
    background: #fff;
    padding-bottom: 80px;
}
.merchant-subscribe-body {
    padding: 0 16px;
}

/* 订阅套餐列表 */
.ms-pkg-empty {
    padding: 40px 0;
    text-align: center;
    font-size: 14px;
    color: #999;
}
.ms-package-item {
    position: relative;
    border: 1px solid #E4E4E4;
    border-radius: 8px;
    padding: 14px 16px;
    margin-bottom: 12px;
    cursor: pointer;
    transition: all 0.2s;
    box-sizing: border-box;
}
.ms-package-item.active {
    border-color: #27B16D;
    background: #F0FFF8;
}
.ms-pkg-name-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
/* 免费套餐徽标：名称旁展示 免费(剩余/10) */
.ms-pkg-free {
    font-size: 12px;
    font-weight: 600;
    color: #27B16D;
    background: #F0FFF8;
    border: 1px solid #27B16D;
    border-radius: 10px;
    padding: 1px 8px;
    line-height: 1.5;
    white-space: nowrap;
    margin-left: 8px;
}
.ms-pkg-current {
    position: absolute;
    top: 0;
    right: 0;
    font-size: 12px;
    color: #fff;
    background: #27B16D;
    padding: 3px 10px;
    line-height: 1.5;
    border-bottom-left-radius: 8px;
    display: none;
}
.ms-package-item.active .ms-pkg-current {
    display: block;
}
.ms-pkg-name {
    font-size: 18px;
    font-weight: 600;
    color: #27B16D;
    text-align: left;
}
.ms-pkg-price {
    font-size: 15px;
    font-weight: 600;
    color: #000;
    text-align: left;
    margin-top: 6px;
}
.ms-pkg-amount {
    color: #27B16D;
}
.ms-pkg-desc {
    font-size: 14px;
    color: #7D7D7D;
    text-align: left;
    margin-top: 4px;
}
.ms-pkg-limits {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 13px;
    color: #000;
    margin-top: 4px;
}
.ms-pkg-check {
    position: absolute;
    right: -1px;
    bottom: -1px;
    width: 24px;
    height: auto;
    display: none;
}
.ms-package-item.active .ms-pkg-check {
    display: block;
}

/* 订阅记录列表 */
.ms-record-card {
    background: #fff;
    border: 1px solid #DFDFDF;
    border-radius: 8px;
    padding: 12px;
    margin-bottom: 12px;
}
.ms-rec-badge {
    display: inline-block;
    background: #F0FFF8;
    color: #27B16D;
    font-size: 13px;
    font-weight: 600;
    border-radius: 6px;
    padding: 5px 16px;
}
.ms-rec-mid {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 10px;
}
.ms-rec-price {
    font-size: 14px;
    color: #000;
}
.ms-rec-status {
    background: #F0FFF8;
    color: #27B16D;
    font-size: 13px;
    font-weight: 600;
    border-radius: 6px;
    padding: 5px 16px;
}
.ms-rec-count {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-top: 10px;
    font-size: 13px;
    color: #000;
}

/* ============================================
   商户等级页
   ============================================ */
.merchant-level-page {
    background: #fff;
    padding-bottom: 80px;
}
.ml-body {
    padding: 0 16px;
}

/* 模块1：商户信息（logo + 名称 + 等级icon 居中） */
.ml-merchant {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0 0 28px 0;
}
.ml-logo {
    width: 76px;
    height: 76px;
    border-radius: 50%;
    object-fit: cover;
    background: #f2f2f2;
    display: block;
}
.ml-name-row {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 14px;
}
.ml-name {
    font-size: 18px;
    font-weight: 600;
    color: #000;
    line-height: 1.2;
}
.ml-level-icon {
    height: 22px;
    width: auto;
    display: block;
}

/* 模块2：商户等级列表 */
.ml-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.ml-item {
    position: relative;
    border-radius: 18px;
    overflow: hidden;
    background-color: #f6f6f6;
    background-size: 100% 100%;
    background-position: center;
    background-repeat: no-repeat;
    /* 背景图尺寸 677×189，按原比例撑开容器，确保图片完整展示 */
    padding: 27.92% 16px 0;
    box-sizing: border-box;
}
/* 背景图左侧的等级内容模块 */
.ml-badge-card {
    position: absolute;
    top: 40%;
    left: 16px;
    transform: translateY(-50%);
    width: 58%;
    border-radius: 20px;
    padding: 12px 14px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
/* 当前等级标签（左上角，右下角圆角） */
.ml-current-tag {
    position: absolute;
    top: 0;
    left: 0;
    color: #fff;
    font-size: 12px;
    line-height: 1;
    padding: 6px 12px;
    border-bottom-right-radius: 14px;
    border-top-left-radius: 20px;
}
/* 顶部：等级 icon + Level N */
.ml-badge-top {
    display: flex;
    align-items: center;
    gap: 6px;
}
.ml-badge-icon {
    font-size: 20px;
    line-height: 1;
}
.ml-badge-name {
    font-size: 20px;
    font-weight: 600;
    line-height: 1;
}
/* 底部：等级配置（发布次数 / 累计充值金额）——背景色由背景图自带的底部色块提供，文字单行定位到色块上 */
.ml-badge-bottom {
    position: absolute;
    left: 32px;
    bottom: 13px;
    font-size: 14px;
    color: #fff;
    white-space: nowrap;
    line-height: 1.4;
    letter-spacing: 0.5px;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
}
/* 小屏适配，避免内容超出背景图 */
@media (max-width: 360px) {
    .ml-badge-card {
        padding: 10px 12px;
        gap: 6px;
    }
    .ml-badge-icon {
        font-size: 18px;
    }
    .ml-badge-name {
        font-size: 15px;
    }
    .ml-badge-bottom {
        font-size: 10px;
    }
}

/* ============================================
   抢单成功弹窗
   ============================================ */
.grab-success-mask {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 24px;
}
.grab-success-dialog {
    width: 100%;
    max-width: 330px;
    background: #E2F0E9;
    border-radius: 10px;
    padding: 16px;
    box-sizing: border-box;
}
/* 第一部分：标题 + 关闭（icon 与标题均为 #27B16D） */
.gs-head {
    position: relative;
    text-align: center;
    margin-bottom: 14px;
}
.gs-title {
    font-size: 19px;
    font-weight: 600;
    color: #27B16D;
    line-height: 1.4;
}
/* 关闭按钮：右上角 */
.gs-close {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    font-size: 20px;
    color: #27B16D;
    line-height: 1;
    cursor: pointer;
    user-select: none;
}
/* 第二部分：商户信息（背景 #A2D6BC） */
.gs-merchant {
    display: flex;
    align-items: center;
    gap: 8px;
    background: #A2D6BC;
    border-radius: 8px;
    padding: 10px 12px;
    margin-bottom: 12px;
}
.gs-merchant-logo {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    flex-shrink: 0;
    object-fit: cover;
}
.gs-merchant-name {
    min-width: 0;
    font-size: 16px;
    font-weight: 600;
    color: #000;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    /* 等级图标紧贴名称，不推到最右 */
    margin-right: 2px;
}
.gs-merchant-level {
    height: 24px;
    width: auto;
    flex-shrink: 0;
}
/* 第三部分：商户简介（#27B16D，居中，自动换行） */
.gs-intro {
    text-align: center;
    color: #27B16D;
    font-size: 15px;
    line-height: 1.6;
    word-break: break-all;
    margin-bottom: 12px;
}
/* 第四/五部分：通用行（圆角 + 边框 #27B16D） */
.gs-row {
    display: flex;
    align-items: center;
    border: 1px solid #27B16D;
    border-radius: 8px;
    padding: 10px 12px;
    box-sizing: border-box;
}
.gs-row + .gs-row {
    margin-top: 10px;
}
.gs-row-left {
    flex: 1;
    min-width: 0;
}
.gs-make-title {
    font-size: 15px;
    color: #000;
    line-height: 1.4;
}
.gs-make-tip {
    font-size: 14px;
    color: #FF4502;
    line-height: 1.4;
    margin-top: 2px;
    /* 与第一行"自己"左对齐（"制作："=3个汉字宽度） */
    padding-left: 3em;
}
.gs-row-icon {
    font-size: 24px;
    color: #27B16D;
    line-height: 1;
    flex-shrink: 0;
}
/* 第五部分：素材行（文字与 icon 均为 #1D9E5E，icon 与第四部分右对齐） */
.gs-material-text {
    flex: 1;
    min-width: 0;
    font-size: 15px;
    color: #1D9E5E;
    line-height: 1.4;
}
.gs-material .gs-row-icon {
    color: #1D9E5E;
}
