/* ==================================================
   参考图对齐：筛选面板
   ================================================== */
.filter-sheet { display: flex; flex-direction: column; max-height: 84vh; background: #fff; border-radius: 18px 18px 0 0; overflow: hidden; }
.filter-sheet__body { flex: 1; overflow-y: auto; padding: 16px 16px 12px; -webkit-overflow-scrolling: touch; }
.fs-group + .fs-group { margin-top: 20px; }
.fs-group__title { font-size: 16px; font-weight: 700; color: #1b1f1c; }
.fs-group__sub { margin: 12px 0 8px; font-size: 12.5px; font-weight: 600; color: #6d746e; }
.fs-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 10px; }
.fs-group__sub + .fs-grid { margin-top: 0; }
.fs-chip {
  height: 40px;
  border-radius: 4px;
  background: #f9f9f9;
  font-size: 14px;
  color: #272727;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* 常见农活：原站只多一圈浅黄描边，底色与其它瓦片相同 */
.fs-chip--warm { box-shadow: inset 0 0 0 1px #f1d9a0; }
.fs-chip.is-on { background: #1f6feb; color: #fff; font-weight: 600; box-shadow: none; }
.filter-sheet__foot {
  flex: none;
  display: flex;
  justify-content: center;
  gap: 0;
  padding: 10px 16px calc(14px + env(safe-area-inset-bottom, 0px));
  background: #fff;
  border-top: 1px solid #f2f3f0;
}
/* 原站的「重置 / 确定」是一枚连体胶囊：左半白底描边、右半蓝底，各占一半 */
.fs-btn { flex: 0 0 100px; height: 40px; font-size: 15px; font-weight: 600; }
.fs-btn--ghost { border-radius: 20px 0 0 20px; color: #3c423d; background: #fff; box-shadow: inset 0 0 0 1px #dfe3e8; }
.fs-btn--main { border-radius: 0 20px 20px 0; color: #fff; background: #2f6fd6; }
/* 车队筛选：两枚各占一半、中间留缝的全圆角按钮（原站 04/05 两张截图一致） */
.filter-sheet__foot--split { gap: 10px; }
.filter-sheet__foot--split .fs-btn { flex: 1 1 0; border-radius: 999px; }

/* ==================================================
   参考图对齐：浅色品牌头 / 农机列表
   ================================================== */
.hero-soft {
  padding: 6px 14px 14px;
  background: var(--hero-bg);
  color: #16281d;
}
.hero-soft__bar { display: flex; align-items: center; height: 44px; }
.hero-soft .brand__name { color: #16281d; }
.brand__logo--solid {
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: linear-gradient(140deg, #4fae6b, #2f8f4f);
}
.brand__tag--orange { border-color: #f0c47f; color: #c26a12; background: #fdf1de; }
.hero-soft__bell {
  margin-left: auto;
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  color: #3d5a45;
  background: rgba(255, 255, 255, 0.72);
}
.hero-soft__bell svg { width: 19px; height: 19px; }
.hero-soft .hero-search { box-shadow: 0 2px 8px rgba(20, 60, 35, 0.06); }
.hero-soft .hero-search__btn { height: 30px; padding: 0 18px; border-radius: 6px; background: #3aa757; }

.machine-tabs { display: flex; gap: 24px; padding: 12px 14px 0; background: #fff; }
.machine-tabs__item { position: relative; padding-bottom: 9px; font-size: 16px; color: #8a8f8a; }
.machine-tabs__item.is-active { color: #141414; font-weight: 700; }
.machine-tabs__item.is-active::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 2px;
  width: 22px;
  height: 3px;
  border-radius: 2px;
  transform: translateX(-50%);
  background: #2f6fd6;
}
.machine-filterbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0;
  padding: 9px 14px 11px;
  background: #fff;
  border-bottom: 1px solid #f0f1ee;
}
.mfilter { flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 2px; font-size: 13.5px; color: #5e6c7b; white-space: nowrap; }
.mfilter svg { width: 11px; height: 11px; opacity: 0.45; }
.mfilter.is-active { color: #2f6fd6; font-weight: 600; }

.machine-list { display: flex; flex-direction: column; gap: 10px; padding: 10px 12px 0; }
.mcard { display: flex; gap: 11px; padding: 10px; background: #fff; border-radius: 11px; box-shadow: var(--shadow-card); }
/* 我的农机：置顶/刷新按钮必须放在 <a> 外面，外壳只管纵向排布 */
.mcard-wrap { display: flex; flex-direction: column; gap: 6px; }
.mcard-wrap .boost-row { margin: 0; padding: 0 2px; border-top: 0; }
.mcard__img { position: relative; flex: none; width: 132px; height: 100px; border-radius: 9px; overflow: hidden; background: #eceee9; }
.mcard__img img { width: 100%; height: 100%; object-fit: cover; }
.mcard__body { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.mcard__top { display: flex; align-items: center; gap: 5px; }
.mcard__brand { font-size: 15px; font-weight: 680; color: #1b1f1c; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mcard__tag { flex: none; height: 18px; padding: 0 4px; border-radius: 3px; font-size: 10.5px; line-height: 18px; color: #2f6fd6; background: #eaf4fd; }
/* 原站价格色实测 #e46d1a（偏砖红），不是我们之前的 #f08122 */
.mcard__price { margin-left: auto; flex: none; font-size: 17px; font-weight: 750; color: #e46d1a; font-variant-numeric: tabular-nums; }
.mcard__price i { font-style: normal; margin-right: 1px; font-size: 11px; }
.mcard__price small { margin-left: 1px; font-size: 11px; font-weight: 600; }
/* 原站第二行是「类型 型号 年份 小时数」一整句，放不下折到第二行，不用省略号截断 */
.mcard__desc {
  margin-top: 5px;
  font-size: 12px;
  line-height: 1.45;
  color: #6d746e;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
/* 地区独立成行，与参数行同色（原站实测两行同为中性偏绿的灰） */
.mcard__area { margin-top: 3px; font-size: 11.5px; line-height: 1.45; color: #6d746e; overflow-wrap: anywhere; }
/* 原站在地区行与「时间+浏览」行之间有一条细线，只走文字列宽 */
.mcard__foot {
  margin-top: 7px;
  padding-top: 6px;
  border-top: 1px solid #ecf2f2;
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 11px;
  color: #9aa09a;
}
.mcard__views { display: inline-flex; align-items: center; gap: 3px; }
.mcard__views svg { width: 12px; height: 12px; }

/* 群横幅：三头像 + 99+ */
.group-banner__thumbs { position: relative; flex: none; display: flex; align-items: center; padding-top: 7px; }
.group-banner__thumbs img { width: 26px; height: 26px; margin-left: -9px; border: 2px solid #fff; border-radius: 50%; object-fit: cover; }
.group-banner__thumbs img:first-of-type { margin-left: 0; }
.group-banner__badge {
  position: absolute;
  top: -6px;
  left: -3px;
  padding: 0 4px;
  height: 15px;
  border-radius: 8px;
  background: #e5433a;
  color: #fff;
  font-size: 9px;
  font-style: normal;
  line-height: 15px;
  box-shadow: 0 0 0 2px var(--cream);
}

/* ==================================================
   参考图对齐：农机详情
   ================================================== */
.navbar--blue { background: #2f7dfa; color: #fff; border-bottom: 0; }
.navbar--blue .navbar__back { color: #fff; }
.navbar--blue .navbar__title { font-size: 17px; font-weight: 650; }
.page--blue-detail { background: #f5f6f8; }
.md-hero { position: relative; background: #e8ebe8; }
.md-hero img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.md-hero__count {
  position: absolute;
  right: 12px;
  bottom: 24px;
  padding: 2px 9px;
  border-radius: 11px;
  background: rgba(0, 0, 0, 0.34);
  color: #fff;
  font-size: 11px;
}
.md-card { margin: 10px 12px 0; padding: 15px 14px; background: #fff; border-radius: 12px; box-shadow: 0 1px 2px rgba(20, 26, 22, 0.04); }
.md-card--overlap { position: relative; margin-top: -20px; padding-top: 16px; border-radius: 14px; }
.md-title { font-size: 17px; font-weight: 700; line-height: 1.42; color: #1b1f1c; }
.md-price { display: flex; align-items: baseline; justify-content: space-between; margin-top: 10px; }
.md-price__label { font-size: 12px; color: #9aa09a; }
.md-price__value { font-size: 24px; font-weight: 780; color: #f08122; font-variant-numeric: tabular-nums; }
.md-price__value i { font-style: normal; margin-right: 2px; font-size: 14px; }
.md-price__value small { margin-left: 1px; font-size: 13px; font-weight: 600; }
.md-desc { margin-top: 12px; font-size: 14px; line-height: 1.75; color: #3c423d; }
.md-seller { display: flex; align-items: center; gap: 10px; margin-top: 14px; padding-top: 13px; border-top: 1px solid #f0f1ee; }
.md-seller__avatar { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: #eef0ed; color: #a8afa8; }
.md-seller__avatar svg { width: 19px; height: 19px; }
.md-seller__name { font-size: 13px; color: #6d746e; }
.md-seller__meta { display: flex; align-items: center; gap: 10px; margin-top: 3px; font-size: 11.5px; color: #9aa09a; }
.md-seller__meta span { display: inline-flex; align-items: center; gap: 3px; }
.md-seller__meta svg { width: 12px; height: 12px; }
.md-card__title { display: flex; align-items: center; gap: 5px; font-size: 15px; font-weight: 700; }
.md-card__title svg { width: 15px; height: 15px; color: #7b827b; }
.md-params { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 12px; }
.md-param { padding: 9px 10px; border-radius: 8px; background: #f7f8fa; }
.md-param__label { display: flex; align-items: center; gap: 4px; font-size: 11px; color: #9aa09a; }
.md-param__label svg { width: 12px; height: 12px; }
.md-param__value { margin-top: 4px; font-size: 14px; font-weight: 600; color: #1b1f1c; }
.md-reco { display: flex; gap: 10px; margin-top: 12px; }
.md-reco img { flex: none; width: 96px; height: 70px; border-radius: 8px; object-fit: cover; }
.md-reco__name { font-size: 13.5px; font-weight: 600; line-height: 1.4; color: #1b1f1c; }
.md-reco__meta { margin-top: 6px; font-size: 11px; color: #9aa09a; }
.page--blue-detail .action-bar__main { background: #2f7dfa; }
.page--blue-detail .action-bar__side { padding: 0 8px; background: transparent; color: #5b6470; font-weight: 500; }

/* ==================================================
   参考图对齐：车队
   ================================================== */
.fleet-searchwrap { background: #fff; padding: 10px 12px 4px; }
.fleet-search2 { display: flex; align-items: center; gap: 7px; height: 38px; padding-left: 11px; border-radius: 8px; background: #f4f6f3; }
.fleet-search2 svg { width: 16px; height: 16px; color: #a9b0a9; }
.fleet-search2 input { flex: 1; min-width: 0; height: 100%; border: 0; outline: 0; background: transparent; font-size: 13.5px; color: var(--ink-900); }
.fleet-search2__btn { flex: none; height: 30px; margin-right: 4px; padding: 0 18px; border-radius: 6px; font-size: 13px; font-weight: 600; color: #fff; background: #2f7dfa; }
.fleet-sfilter { display: flex; align-items: center; gap: 9px; margin: 10px 12px 0; padding: 12px; background: #fff; border-radius: 11px; box-shadow: var(--shadow-card); }
.fleet-sfilter__icon { flex: none; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 8px; background: #f2f4f1; color: #6d746e; }
.fleet-sfilter__icon svg { width: 17px; height: 17px; }
.fleet-sfilter__body { flex: 1; min-width: 0; }
.fleet-sfilter__title { font-size: 14px; font-weight: 650; }
.fleet-sfilter__sub { margin-top: 1px; font-size: 11px; color: #9aa09a; }
.fleet-chip {
  flex: none;
  display: inline-flex;
  align-items: center;
  gap: 2px;
  height: 28px;
  padding: 0 9px;
  border-radius: 6px;
  box-shadow: inset 0 0 0 1px #e6e8e3;
  font-size: 12px;
  color: #4a504b;
  white-space: nowrap;
}
.fleet-chip svg { width: 11px; height: 11px; opacity: 0.5; }
.fleet-chip.is-active { color: #2276bf; background: #f2f8ff; box-shadow: inset 0 0 0 1px #b7d8f5; }

.fleet-list { display: flex; flex-direction: column; gap: 10px; padding: 10px 12px 0; }
.driver-card { display: block; padding: 13px 13px 11px; background: #fff; border-radius: 12px; box-shadow: var(--shadow-card); }
.driver-card__head { display: flex; align-items: flex-start; gap: 11px; }
.driver-avatar { width: 52px; }
.driver-avatar .avatar { width: 52px; height: 52px; font-size: 19px; }
.driver-card__name { display: flex; align-items: center; gap: 6px; font-weight: 700; }
.driver-card__line {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: 4px;
  font-size: 12px;
  color: #6d746e;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.driver-card__line svg { width: 12px; height: 12px; color: #a2a8a2; }
.driver-contact {
  flex: none;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  height: 28px;
  padding: 0 10px;
  border-radius: 15px;
  font-size: 12px;
  font-weight: 600;
  color: #2f88d8;
  background: #eef6ff;
}
.driver-contact svg { width: 12px; height: 12px; }
.driver-card__stats {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 11px;
  padding-top: 9px;
  border-top: 1px solid #f2f3f0;
  font-size: 10.5px;
  color: #9aa09a;
}
.driver-stat b { margin-right: 2px; color: #4a504b; font-size: 11.5px; font-weight: 700; }
.driver-verified {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 2px 6px;
  border-radius: 4px;
  background: #eefaf1;
  color: #3f9c63;
  font-size: 10px;
}
.driver-verified svg { width: 11px; height: 11px; }

/* ==================================================
   参考图对齐：我的
   ================================================== */
.me-hero--soft {
  padding: 4px 14px 16px;
  background: linear-gradient(180deg, #e6f4e6 0%, #f4faf2 100%);
  color: #16281d;
}
.me-hero__titlebar {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 42px;
  font-size: 17px;
  font-weight: 700;
  color: #1b1f1c;
}
.me-hero--soft .me-hero__row { width: 100%; padding: 2px 0; text-align: left; color: #16281d; }
.me-hero__avatar--light {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  border: 2px solid #fff;
  background: #e9ece7;
  color: #b3b9b2;
  font-size: 0;
}
.me-hero__avatar--light svg { width: 32px; height: 32px; }
.me-hero__info { flex: 1; min-width: 0; }
.me-hero--soft .me-hero__name { font-size: 18px; font-weight: 700; color: #1b1f1c; }
.me-hero--soft .verify-chip { border-radius: 4px; background: #eef0ec; color: #8a918b; font-weight: 500; }
.me-hero--soft .me-hero__id { display: block; margin-top: 3px; font-size: 11.5px; color: #8a918b; }
.me-hero__edit { display: inline-flex; align-items: center; gap: 1px; font-size: 12px; color: #7a817b; }
.me-hero__edit svg { width: 14px; height: 14px; }

.vip-card {
  position: relative;
  display: flex;
  align-items: center;
  width: calc(100% - 24px);
  margin: -8px 12px 0;
  padding: 14px;
  text-align: left;
  border-radius: 12px;
  overflow: hidden;
  background: linear-gradient(120deg, #fdf2d6 0%, #f9e3b0 58%, #f4d189 100%);
  box-shadow: 0 4px 12px rgba(200, 150, 50, 0.12);
}
.vip-card__body { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.vip-card__label { font-size: 10.5px; color: #a3834f; }
.vip-card__title { margin-top: 2px; font-size: 15.5px; font-weight: 750; color: #5a3d12; }
.vip-card__sub { margin-top: 3px; font-size: 11px; color: #a3834f; }
.vip-card__btn {
  margin-top: 9px;
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 2px;
  height: 26px;
  padding: 0 10px;
  border-radius: 13px;
  background: #fff;
  color: #8a5a12;
  font-size: 11.5px;
  font-weight: 600;
}
.vip-card__btn svg { width: 12px; height: 12px; }
.vip-card__art { flex: none; width: 78px; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.vip-card__crown {
  display: grid;
  place-items: center;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: linear-gradient(140deg, #f3c463, #e0a63b);
  color: #fff;
  box-shadow: 0 6px 14px rgba(200, 140, 40, 0.25);
}
.vip-card__crown svg { width: 27px; height: 27px; }
.vip-card__word { margin-top: 5px; font-size: 10.5px; font-weight: 800; letter-spacing: 2px; color: #c08a2e; }

.me-rowcard {
  display: flex;
  align-items: center;
  gap: 11px;
  width: calc(100% - 24px);
  margin: 10px 12px 0;
  padding: 12px 13px;
  background: #fff;
  border-radius: 11px;
  box-shadow: var(--shadow-card);
  text-align: left;
}
.me-rowcard__icon {
  flex: none;
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: #fdf3dc;
  color: #d9a02c;
}
.me-rowcard__icon svg { width: 21px; height: 21px; }
.me-rowcard__body { flex: 1; min-width: 0; }
.me-rowcard__title { display: block; font-size: 14.5px; font-weight: 700; }
.me-rowcard__sub { display: block; margin-top: 2px; font-size: 11.5px; color: #9aa09a; }
.me-rowcard__chev { color: #c2c7c1; }
.me-rowcard__chev svg { width: 16px; height: 16px; }

.menu-card--grid { padding-bottom: 6px; }
.menu-card--grid .menu-card__title { padding-bottom: 2px; }
.me-grid { display: grid; padding: 4px 4px 6px; }
.me-grid--3 { grid-template-columns: repeat(3, 1fr); }
.me-grid--4 { grid-template-columns: repeat(4, 1fr); }
.me-cell { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 8px 2px; }
.me-cell__icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 14px; }
.me-cell__icon svg { width: 23px; height: 23px; }
.me-cell__icon--green { color: #2fa45f; background: #eef8f0; }
.me-cell__icon--gold { color: #d99a22; background: #fdf4e0; }
.me-cell__label { font-size: 11.5px; color: #3c423d; white-space: nowrap; }

.vip-hero__title { flex: 1; text-align: center; font-size: 16px; font-weight: 650; letter-spacing: 0.3px; }

/* ==================================================
   本轮对齐：栏目 / 分类标签与字号
   ================================================== */
.chip--kind { color: #1f8a4d; background: #e7f6ec; }
.chip--cat { color: #2270b8; background: #eaf3fe; }
.chip--kind svg,
.chip--cat svg { width: 11px; height: 11px; }

/* 标题字号字重回到 pages.css 单点定义（这里曾留一条 font-size: 16px 覆盖，会把加大后的字重新压回 16px） */
.work-card__tags { margin-top: 8px; }
.work-card__tags .chip { height: 23px; padding: 0 8px; border-radius: 5px; font-size: 11.5px; }
.work-card__meta { margin-top: 11px; font-size: 12.5px; }
.work-card__views { font-size: 12px; }
.call-btn { width: auto; height: 30px; padding: 0 12px; border-radius: 15px; font-size: 12.5px; font-weight: 400; }

/* 已选地区 */
.active-filters { display: flex; flex-wrap: wrap; gap: 8px; padding: 10px 14px 0; background: #fff; }
.active-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 26px;
  padding: 0 9px;
  border-radius: 4px;
  font-size: 12.5px;
  color: #2f6fd6;
  background: #eef4ff;
}
.active-chip svg { width: 11px; height: 11px; }

/* 农活详情：通栏白底 */
.page--green-detail { background: #fff; }
.page--green-detail .detail-card {
  margin: 0;
  padding: 15px 16px;
  border-radius: 0;
  box-shadow: none;
  background: #fff;
}
.page--green-detail .detail-card + .detail-card { border-top: 1px solid #f1f3f5; }
.page--green-detail .detail-h1 { font-size: 17.5px; font-weight: 700; line-height: 1.5; }
.page--green-detail .detail-meta { margin-top: 12px; font-size: 13px; color: #3d4640; }
.page--green-detail .detail-meta > span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.page--green-detail .detail-meta__area svg { width: 14px; height: 14px; color: #5c665f; }
.page--green-detail .detail-meta__area em { font-style: normal; }
.page--green-detail .detail-nav-btn {
  height: 30px;
  padding: 0 12px;
  border-radius: 15px;
  font-size: 12.5px;
  font-weight: 600;
  color: #357c43;
  background: #f0f7ed;
}
.page--green-detail .detail-nav-btn svg { width: 11px; height: 11px; stroke-width: 2.2; }
.detail-sub { margin-top: 8px; font-size: 12px; color: #99a1ad; }
.page--green-detail .publisher-row { gap: 12px; }
.page--green-detail .publisher-row__logo {
  flex: none;
  display: grid;
  place-items: center;
  width: 46px;
  height: 40px;
  color: #26332c;
}
.page--green-detail .publisher-row__logo svg { width: 44px; height: 40px; stroke-width: 2.2; }
.page--green-detail .publisher-row__name { font-size: 15px; font-weight: 700; color: #1b1f1c; }
.page--green-detail .publisher-row__role { margin-top: 2px; font-size: 11.5px; color: #8a918b; }
.page--green-detail .notice {
  display: block;
  margin-top: 14px;
  padding: 13px 14px;
  border: 1px solid #efe4cc;
  border-radius: 10px;
  background: #fdf8ef;
  font-size: 12.5px;
  line-height: 1.85;
  color: #6f6a60;
}
.notice__head { display: flex; align-items: center; gap: 5px; }
.notice__head svg { width: 15px; height: 15px; color: #9c8544; }
.page--green-detail .notice__head b { font-size: 14px; font-weight: 700; color: #2b322d; }
.notice__text { margin-top: 6px; }
.page--green-detail .join-card {
  margin-top: 0;
  padding: 12px;
  gap: 10px;
  border: 1px solid #f5e6a3;
  border-radius: 10px;
  background: #fffbeb;
  box-shadow: none;
}
.join-card__avatars { position: relative; flex: none; display: flex; padding-left: 3px; }
.join-card__ava {
  display: block;
  width: 30px;
  height: 30px;
  margin-left: -11px;
  border-radius: 50%;
  overflow: hidden;
  box-shadow: 0 0 0 1.5px #fdf8ef;
}
.join-card__ava:first-child { margin-left: 0; }
.join-card__ava img { display: block; width: 100%; height: 100%; object-fit: cover; }
.join-card__count {
  position: absolute;
  top: -8px;
  left: -4px;
  padding: 1px 5px;
  border-radius: 8px;
  font-size: 8.5px;
  font-weight: 700;
  color: #fff;
  background: #e53935;
  box-shadow: 0 0 0 1.5px #fdf8ef;
}
.page--green-detail .join-card__body b { font-size: 14.5px; font-weight: 700; color: #2b322d; }
.page--green-detail .join-card__body i {
  margin-top: 2px;
  font-size: 11.5px;
  line-height: 1.45;
  color: #8a918b;
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
}
.page--green-detail .join-card__action {
  height: 34px;
  padding: 0 15px;
  border-radius: 17px;
  font-size: 13px;
  font-weight: 600;
  color: #fff;
  background: #1e88e5;
}
.page--green-detail .action-bar__main { background: #25a24f; border-radius: 6px; height: 44px; font-size: 16px; }
.page--green-detail .action-bar__side {
  flex-direction: column;
  gap: 2px;
  width: 44px;
  padding: 0;
  height: auto;
  font-size: 10px;
  font-weight: 400;
  color: #6b7280;
  background: transparent;
}
.page--green-detail .action-bar__icon { font-size: 10px; }
.page--green-detail .detail-card--more { padding-top: 16px; }
.detail-more__title {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 17px;
  font-weight: 750;
  color: #1f8a4d;
}
.detail-more__title::before {
  content: "";
  width: 4px;
  height: 16px;
  border-radius: 2px;
  background: #25a24f;
}
.page--green-detail .more-item { display: block; padding: 12px 0; }
.page--green-detail .more-item::before { display: none; }
.page--green-detail .more-item__tags { display: flex; gap: 6px; margin-bottom: 6px; }
.page--green-detail .more-item__tags .chip {
  height: 22px;
  padding: 0 8px;
  font-size: 11.5px;
  overflow: visible;
  text-overflow: clip;
  white-space: nowrap;
}
.page--green-detail .more-item__row { display: flex; align-items: center; gap: 9px; }
.page--green-detail .more-item__row > span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.detail-h1 { font-size: 19px; line-height: 1.5; }
.detail-tags { margin-top: 9px; }
.detail-tags .chip { height: 24px; padding: 0 8px; font-size: 12px; }
.detail-meta { margin-top: 11px; font-size: 13px; }
.detail-body { margin-top: 12px; font-size: 15px; line-height: 1.78; }

/* 内容页加群入口 */
.join-card {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  margin-top: 12px;
  padding: 11px 12px;
  border-radius: 10px;
  background: #f5f9f2;
  box-shadow: inset 0 0 0 1px #e4ecdc;
  text-align: left;
}
.join-card__icon {
  flex: none;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 9px;
  color: #fff;
  background: linear-gradient(140deg, #34a865, #1e8a4d);
}
.join-card__icon svg { width: 19px; height: 19px; }
.join-card__body { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.join-card__body b { font-size: 13.5px; font-weight: 650; color: #1b1f1c; }
.join-card__body i {
  margin-top: 2px;
  font-style: normal;
  font-size: 11px;
  color: #8a918b;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.join-card__action {
  flex: none;
  height: 26px;
  padding: 0 11px;
  border-radius: 13px;
  font-size: 12px;
  font-weight: 600;
  color: #2f8f4f;
  background: #fff;
  box-shadow: inset 0 0 0 1px #cfe3d4;
}

/* ==================================================
   居中弹窗壳
   ================================================== */
.modal-mask {
  position: fixed;
  inset: 0;
  z-index: 90;
  background: rgba(15, 20, 16, 0.46);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease;
}
.modal-mask.is-open { opacity: 1; pointer-events: auto; }

.modal {
  position: fixed;
  left: 50%;
  top: 50%;
  z-index: 91;
  width: min(340px, 86vw);
  max-height: 82vh;
  overflow-y: auto;
  transform: translate(-50%, -50%) scale(0.94);
  opacity: 0;
  pointer-events: none;
  transition: transform 0.24s cubic-bezier(0.34, 1.28, 0.64, 1), opacity 0.18s ease;
  -webkit-overflow-scrolling: touch;
}
.modal.is-open {
  transform: translate(-50%, -50%) scale(1);
  opacity: 1;
  pointer-events: auto;
}

/* ==================================================
   安全提示弹窗
   ================================================== */
.safety-dialog {
  position: relative;
  padding: 30px 16px 14px;
  border-radius: 16px;
  background: #fff;
  text-align: center;
  box-shadow: 0 18px 48px rgba(15, 25, 18, 0.22);
}
.safety-dialog__x {
  position: absolute;
  top: 10px;
  right: 10px;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  color: #9aa09a;
  background: #f4f5f4;
}
.safety-dialog__x svg { width: 13px; height: 13px; }
.safety-dialog__shield {
  display: grid;
  place-items: center;
  width: 50px;
  height: 50px;
  margin: 2px auto 0;
  border-radius: 50%;
  color: #fff;
  background: #3aa55b;
  box-shadow: 0 0 0 9px #eef8f0;
}
.safety-dialog__shield svg { width: 26px; height: 26px; }
.safety-dialog__title { margin-top: 15px; font-size: 17.5px; font-weight: 750; color: #1b1f1c; }
.safety-dialog__lead { margin-top: 6px; font-size: 12px; line-height: 1.6; color: #8d948e; }
.safety-note {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 13px;
  padding: 12px;
  border-radius: 10px;
  text-align: left;
  box-shadow: inset 0 0 0 1px #e9ece7;
}
.safety-note__row {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  font-size: 12px;
  line-height: 1.55;
  color: #4b504c;
}
.safety-note__dot {
  flex: none;
  display: grid;
  place-items: center;
  width: 15px;
  height: 15px;
  margin-top: 1px;
  border-radius: 50%;
  color: #fff;
}
.safety-note__dot svg { width: 10px; height: 10px; stroke-width: 2.6; }
.safety-note__dot--green { background: #3aa55b; }
.safety-note__dot--orange { background: #f08a24; }
.safety-note__row .is-warn { color: #df541d; }
.safety-dialog__note {
  margin-top: 12px;
  text-align: left;
  font-size: 10.5px;
  line-height: 1.75;
  color: #9aa09a;
}
.safety-dialog__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  width: 100%;
  height: 38px;
  margin-top: 12px;
  border-radius: 8px;
  font-size: 15px;
  font-weight: 650;
  color: #fff;
  background: #2e9e50;
  box-shadow: 0 6px 14px rgba(46, 158, 80, 0.2);
}
.safety-dialog__btn svg { width: 16px; height: 16px; }

/* ==================================================
   会员收银弹层（下单结果按后台返回的 pay.type 分三种形态）
   ================================================== */
.pay-dialog {
  position: relative;
  padding: 30px 16px 14px;
  border-radius: 16px;
  background: #fff;
  text-align: center;
  box-shadow: 0 18px 48px rgba(15, 25, 18, 0.22);
}
.pay-dialog__x {
  position: absolute;
  top: 10px;
  right: 10px;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  color: #9aa09a;
  background: #f4f5f4;
}
.pay-dialog__x svg { width: 13px; height: 13px; }
.pay-dialog__shield {
  display: grid;
  place-items: center;
  width: 50px;
  height: 50px;
  margin: 2px auto 0;
  border-radius: 50%;
  color: #fff;
  background: #3aa55b;
  box-shadow: 0 0 0 9px #eef8f0;
}
.pay-dialog__shield svg { width: 26px; height: 26px; }
.pay-dialog__title { margin-top: 13px; font-size: 16px; font-weight: 700; color: #1b1f1c; }
.pay-dialog__amount {
  margin-top: 6px;
  font-size: 30px;
  font-weight: 800;
  line-height: 1.2;
  color: #df541d;
}
.pay-dialog__amount em { margin-right: 2px; font-size: 16px; font-style: normal; }
.pay-dialog__meta {
  display: flex;
  flex-direction: column;
  gap: 3px;
  margin-top: 8px;
  font-size: 11px;
  line-height: 1.6;
  color: #8d948e;
}
/* 渠道按钮：数量完全跟后台「支持支付方式」（单选微信 / 单选支付宝 / 两种都显示），
   只有一个时靠 flex 自动居中，不用为单渠道另写一套版式（参照站 :only-child 同理） */
.pay-dialog__tabs {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 14px;
}
.pay-tab {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 112px;
  height: 40px;
  padding: 0 12px;
  border-radius: 10px;
  font-size: 13.5px;
  font-weight: 600;
  color: #4b504c;
  background: #f6f7f6;
  box-shadow: inset 0 0 0 1px #e9ece7;
}
.pay-tab__badge {
  display: grid;
  place-items: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  font-size: 11px;
  font-style: normal;
  color: #fff;
}
.pay-tab__badge--wechat { background: #1aad19; }
.pay-tab__badge--alipay { background: #1677ff; }
.pay-tab.is-on {
  color: #21261f;
  background: #eef8f0;
  box-shadow: inset 0 0 0 1.5px #2e9e50;
}
/* 二维码块：图片由 /api/pay/qrcode?token= 出，白底衬托（同参照站 .qrcode background:#fff） */
.pay-dialog__qr {
  display: grid;
  place-items: center;
  width: 200px;
  height: 200px;
  margin: 14px auto 0;
  border-radius: 10px;
  background: #fff;
  box-shadow: inset 0 0 0 1px #e9ece7;
}
.pay-dialog__qr img { display: block; border-radius: 4px; }
.pay-dialog__wait {
  margin-top: 16px;
  font-size: 12.5px;
  line-height: 1.7;
  color: #8d948e;
}
.pay-dialog__go {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 38px;
  margin-top: 14px;
  border-radius: 8px;
  font-size: 15px;
  font-weight: 650;
  color: #fff;
  background: #2e9e50;
  box-shadow: 0 6px 14px rgba(46, 158, 80, 0.2);
}
.pay-dialog__copy {
  width: 100%;
  height: 34px;
  margin-top: 8px;
  border-radius: 8px;
  font-size: 13.5px;
  font-weight: 600;
  color: #2e9e50;
  background: #eef8f0;
}
.pay-dialog__hint {
  margin-top: 10px;
  font-size: 10.5px;
  line-height: 1.75;
  color: #9aa09a;
}
/* 下单/出码失败时把原因显示出来，不用弹窗静默留在空白态 */
.pay-dialog__hint.is-error { color: #c0623a; }
.pay-dialog__done {
  width: 100%;
  height: 38px;
  margin-top: 12px;
  border-radius: 8px;
  font-size: 14.5px;
  font-weight: 650;
  color: #2e9e50;
  background: #fff;
  box-shadow: inset 0 0 0 1px #cfe6d6;
}

/* ==================================================
   置顶天数选择弹窗（档位与单价由后台下发，最多 6 档）
   ================================================== */
.boostday-dialog {
  position: relative;
  padding: 30px 16px 14px;
  border-radius: 16px;
  background: #fff;
  text-align: center;
  box-shadow: 0 18px 48px rgba(15, 25, 18, 0.22);
}
.boostday-dialog__x {
  position: absolute;
  top: 10px;
  right: 10px;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  color: #9aa09a;
  background: #f4f5f4;
}
.boostday-dialog__x svg { width: 13px; height: 13px; }
.boostday-dialog__icon {
  display: grid;
  place-items: center;
  width: 50px;
  height: 50px;
  margin: 2px auto 0;
  border-radius: 50%;
  color: #fff;
  background: #e46d1a;
  box-shadow: 0 0 0 9px #fdf1e6;
}
.boostday-dialog__icon svg { width: 24px; height: 24px; }
.boostday-dialog__title { margin-top: 13px; font-size: 16.5px; font-weight: 750; color: #1b1f1c; }
.boostday-dialog__name {
  margin-top: 5px;
  font-size: 12px;
  color: #8d948e;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.boostday-dialog__quota { margin-top: 10px; padding: 7px 10px; border-radius: 8px; background: #f4faf5; font-size: 11.5px; color: #2f5c46; }
.boostday-dialog__quota b { color: #e46d1a; }
.boostday-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(92px, 1fr));
  gap: 8px;
  margin-top: 12px;
}
.boostday {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  padding: 9px 6px;
  border: 1px solid #dfe6dc;
  border-radius: 10px;
  background: #fff;
}
.boostday:active { border-color: #e46d1a; background: #fff8f1; }
.boostday__days { font-size: 12px; color: #5a615a; }
.boostday__days b { font-size: 17px; font-weight: 750; color: #1b1f1c; }
.boostday__price { font-size: 13.5px; font-weight: 700; color: #e46d1a; }
.boostday__price em { font-size: 11px; font-style: normal; }
.boostday__price i { font-style: normal; color: #2e9e50; }
.boostday__sub { font-size: 10px; color: #a3a79f; }
/* 自定义天数：档位之外的天数也能顶，合计随填写实时变 */
.boostday-custom {
  margin-top: 12px;
  padding: 10px 12px;
  border: 1px solid #dfe6dc;
  border-radius: 10px;
  background: #fafcfa;
}
.boostday-custom__row { display: flex; align-items: center; gap: 8px; }
.boostday-custom__label { font-size: 12px; color: #5a615a; }
.boostday-custom__field { display: flex; align-items: center; gap: 4px; margin-left: auto; }
.boostday-custom__field em { font-style: normal; font-size: 12px; color: #5a615a; }
.boostday-custom__input {
  width: 62px;
  height: 28px;
  padding: 0 6px;
  border: 1px solid #dfe6dc;
  border-radius: 6px;
  background: #fff;
  font-size: 14px;
  font-weight: 700;
  color: #1b1f1c;
  text-align: center;
}
.boostday-custom__input:focus { border-color: #e46d1a; outline: none; }
.boostday-custom__total { min-width: 78px; font-size: 13px; font-weight: 700; color: #e46d1a; text-align: right; }
.boostday-custom__go {
  margin-top: 10px;
  width: 100%;
  height: 38px;
  border: 0;
  border-radius: 19px;
  background: #2e9e50;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
}
.boostday-custom__go:active { background: #27883f; }
.boostday-custom__tip { margin-top: 8px; font-size: 10.5px; line-height: 1.5; color: #9aa09a; }
.boostday-dialog__hint {
  margin-top: 12px;
  font-size: 11px;
  line-height: 1.6;
  color: #9aa09a;
  text-align: left;
}

/* ==================================================
   企业微信二维码卡片（.wecom-card / .wecom-foot）已整段删除：
   后台「交流群」只剩 群名称 / 群简介 / 二维码 三个业务参数，公司名、品牌、部门、
   logo、底部提示语这些拼名片的字段没了，这张名片在代码里拼不出来；
   加群页与详情页弹窗一律直接上后台上传的那张海报图（见下面 .qr-page / .qr-modal 两段）。
   ================================================== */

/* 详情页二维码弹窗 */
.modal--wide { width: 86vw; max-width: 430px; }
.qr-modal { padding: 0 0 16px; border-radius: 14px; background: #fff; }
.qr-modal__head { display: flex; align-items: center; gap: 8px; padding: 12px 16px 8px; }
.qr-modal__title { flex: 1; font-size: 17px; font-weight: 700; color: #23282f; }
.qr-modal__x {
  flex: none;
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  color: #8b8b86;
  background: #f4f4f2;
}
.qr-modal__x svg { width: 14px; height: 14px; }
/* 详情页那张「加入群聊」弹窗：后台「交流群 → 二维码」存的就是一张带画布的海报，
   弹窗里也只剩这张图。以前这里是一个 198×270 的裁切框 + .wecom-card scale(0.66)，
   靠代码把公司名 / 部门 / 提示语拼成名片——那三个字段本轮已从后台移除，
   拼不出东西了；且拼出来的名片与海报里那张必然长得不一样，两处会自相矛盾。
   灰底与上下内边距也一起去掉：海报自己就带 #f8f8f8 画布和那两行灰字。 */
.qr-modal__stage { width: 234px; margin: 0 auto; }
.qr-modal__img { display: block; width: 100%; height: auto; border-radius: 10px; }
.qr-modal__hint { padding: 14px 16px 0; text-align: center; font-size: 13px; color: #5f5f5c; }

/* ==================================================
   信息海报弹窗（农机详情页「生成海报」）
   图是后台 NqPoster 现合成的 750×1080 PNG，前端只是取回来显示，
   所以这里按「图 + 一个保存入口」排版，不再前端拼名片。
   ================================================== */
.poster-dialog { padding: 0 0 16px; border-radius: 14px; background: #fff; }
.poster-dialog__head { display: flex; align-items: center; gap: 8px; padding: 12px 16px 8px; }
.poster-dialog__title {
  flex: 1;
  min-width: 0;
  font-size: 17px;
  font-weight: 700;
  color: #23282f;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.poster-dialog__x {
  flex: none;
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  color: #8b8b86;
  background: #f4f4f2;
}
.poster-dialog__x svg { width: 14px; height: 14px; }
/* 首次合成要一秒上下，骨架先占住这段高度：图回来时弹窗不会从一小条猛长成大块 */
.poster-dialog__body {
  min-height: 190px;
  padding: 4px 16px 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
}
/* 图上屏保持后端那张 750×1080 的比例：宽度与高度都写 auto，只用 max-* 夹。
   上一版写的是 width:min(100%,320px) + max-height:46vh，两个约束分别命中不同边，
   浏览器按「各自夹」算，于是 303×388 上屏（比例 0.781），人脸和二维码一起被压扁。
   改成 width/height 都 auto 后，max-width 与 max-height 谁先到谁生效，另一边按比例跟着缩。 */
.poster-dialog__img {
  display: block;
  width: auto;
  height: auto;
  max-width: min(100%, 320px);
  max-height: 56vh;
  margin: 0 auto;
  border-radius: 10px;
  box-shadow: 0 6px 18px rgba(20, 40, 25, 0.10);
}
.poster-dialog__tools { display: flex; justify-content: center; padding-top: 2px; }
.poster-dialog__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 132px;
  height: 40px;
  padding: 0 18px;
  border-radius: 20px;
  font-size: 15px;
  font-weight: 600;
  color: #fff;
  background: #2aa55e;
}
.poster-dialog__wait,
.poster-dialog__tip { margin: 0; font-size: 13px; color: #5f5f5c; text-align: center; }
.poster-dialog__tip.is-error { color: #d03b2f; }

/* 加群二维码页 */
.qr-page { background: radial-gradient(118% 62% at 16% 0%, #d6ead0 0%, #e5f1e0 34%, #f1f5ed 68%, #f5f7f1 100%); }
/* 海报不再「撑满一屏」。以前 .qr-page__poster 的 min-height 跟着 100vh 长、padding-top 写死 112px，
   于是屏幕越高灰盒越高，上边永远空 129px、下边从 26px 一路涨到 151px；375×667 上整页 855px，
   提示语被顶到屏外。舞台高度照旧扣掉顶栏与吸底菜单占的那一段（保证页面底铺满一屏、
   菜单不压图），但海报本身贴顶放，余量留在海报下方——见下面 .qr-page__poster 那条。 */
.qr-page__stage {
  /* 逐项减掉：顶栏 --nav-h（46px，写死 44px 会多撑 2px 让整页刚好滚得动）、
     吸底菜单 --tabbar-h（58px）、iPhone 底部安全区。
     .page--plain 原来还替菜单多留了 24px，那 24px 会加在图片下方，本页把那段留白收进
     --tabbar-h 一项（见下面那条覆盖），舞台底边正好落在吸底菜单顶边上。 */
  min-height: calc(100vh - var(--nav-h) - var(--tabbar-h) - env(safe-area-inset-bottom, 0px));
  display: flex;
  flex-direction: column;
}
body.has-tabbar .qr-page.page--plain {
  padding-bottom: calc(var(--tabbar-h) + env(safe-area-inset-bottom, 0px));
}
/* 顶边钉在「导航底往下 4.8% 视口宽」，左右居中，下方不留——余量全落到海报底下。
   上一版纵向也写的 auto，于是海报在舞台里垂直居中：398×661 顶上空 43px、398×860 空 143px、
   414×896 空 151px，屏幕越高顶上越空；而原站那张不管屏幕多高都只空 19px。
   4.8% 是原站拼接图右半逐像素量的：屏幕宽 398、导航白带底 102、海报顶 122 → 19/398 = 4.77%。
   用百分比而不是写死 19px，是为了跟着 88.7% 那条宽度口径一起缩放（375 屏上就是 18px）。
   宽按原站那张行业海报逐像素量：海报块 353px 宽 / 视口 398px = 88.7%，左右各空约 5.6%。
   海报自己带画布白边与那两行字，外层不再叠灰盒、不再补白衬。
   说明写在规则外面：闸门用 $cssProp 从声明块里读回值，块内注释里出现「属性: 值」这种字样
   会被当成真声明读走（本轮 V 第一版就栽在这儿，判据报的是注释而不是 CSS 的真实值）。 */
.qr-page__poster {
  width: 88.7%;
  margin: 4.8% auto 0;
}
/* 后台「交流群 → 二维码」那张海报原样上屏：宽 = 上面海报框的 100%，高按图片自身比例走。
   上一版在这里写死 width:216px + padding:16px + 白底圆角，是把「一张自己带画布的海报」
   当成「一个裸码」在配框，结果码外又套了一层白框、上下留白也全错。
   原站那张海报的圆角实测约 10px（顶边往下第 7 行才满宽），这里同值。 */
.qr-page__img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 10px;
}
.qr-page__empty {
  padding: 48px 24px;
  text-align: center;
  font-size: 14px;
  line-height: 1.7;
  color: #5f5f5c;
  background: rgba(255, 255, 255, .72);
  border-radius: 10px;
}

/* ==================================================
   会员引导弹窗（拨打次数用完）
   ================================================== */
.upsell { background: #fff; padding-bottom: env(safe-area-inset-bottom, 0px); }
.upsell__hero {
  position: relative;
  margin: 2px 12px 0;
  padding: 12px;
  border-radius: 12px;
  background: linear-gradient(158deg, #fff8f1 0%, #ffefe2 100%);
  overflow: hidden;
}
.upsell__hero::after {
  content: "";
  position: absolute;
  top: -46px;
  right: -34px;
  width: 126px;
  height: 126px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0));
}
.upsell__badge {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  height: 20px;
  padding: 0 8px;
  border-radius: 10px;
  font-size: 10.5px;
  font-weight: 650;
  color: #f2502a;
  background: #fff;
  box-shadow: 0 1px 4px rgba(255, 120, 40, 0.18);
}
.upsell__badge svg { width: 11px; height: 11px; color: #ff7a18; }
.upsell__brandrow {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
}
.upsell__logo {
  flex: none;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  color: #fff;
  background: linear-gradient(150deg, #ffa63c, #ff6a0f);
  box-shadow: 0 4px 10px rgba(255, 120, 30, 0.28);
}
.upsell__logo svg { width: 20px; height: 20px; }
.upsell__brandtext { min-width: 0; display: flex; flex-direction: column; }
.upsell__brandtext b { font-size: 15.5px; font-weight: 750; color: #2a211c; }
.upsell__brandtext i {
  margin-top: 2px;
  font-style: normal;
  font-size: 10.5px;
  color: #b08e79;
}
.upsell__alert {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 5px;
  height: 30px;
  margin-top: 11px;
  padding: 0 9px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 600;
  color: #e8442a;
  background: #ffe8e3;
}
.upsell__alert svg { flex: none; width: 12px; height: 12px; }
.upsell__perks {
  position: relative;
  z-index: 1;
  display: flex;
  gap: 6px;
  margin-top: 9px;
}
.upsell__perks span {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  height: 30px;
  border-radius: 15px;
  font-size: 10.5px;
  color: #4a4038;
  background: #fff;
  box-shadow: inset 0 0 0 1px #ffe2cf;
}
.upsell__perks svg { width: 12px; height: 12px; color: #ff7a18; }
.upsell__body { padding: 13px 12px 14px; background: #fff; }
.upsell__labelrow {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
}
.upsell__labelrow b { font-size: 15px; font-weight: 750; color: #241f1b; }
.upsell__labelrow i { font-style: normal; font-size: 10.5px; color: #a9a29b; }
.upsell__plans {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 9px;
}
.upsell-plan {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 0;
  padding: 17px 5px 10px;
  border-radius: 10px;
  background: #fffaf4;
  text-align: center;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px #f6e3d3;
}
.upsell-plan.is-on {
  background: linear-gradient(180deg, #fff8ef, #fff3e6);
  box-shadow: inset 0 0 0 1.5px #ff8a3c;
}
.upsell-plan__ribbon,
.upsell-plan__save {
  position: absolute;
  top: 0;
  padding: 2px 7px;
  font-size: 9px;
  font-weight: 600;
  color: #fff;
}
.upsell-plan__ribbon { left: 0; border-radius: 10px 0 8px 0; background: linear-gradient(135deg, #ffa63c, #ff7a18); }
.upsell-plan__save { right: 0; border-radius: 0 10px 0 8px; background: linear-gradient(135deg, #ff5f3f, #f8422c); }
.upsell-plan__title { font-size: 12.5px; font-weight: 650; color: #3a2f28; }
.upsell-plan__price {
  margin-top: 2px;
  font-size: 22px;
  font-weight: 800;
  line-height: 1.2;
  color: #ff4a1c;
  font-variant-numeric: tabular-nums;
}
.upsell-plan__price em { margin-right: 1px; font-style: normal; font-size: 12px; }
.upsell-plan__unit { margin-top: 1px; font-style: normal; font-size: 9.5px; color: #b3a79c; }
.upsell-plan__pick {
  display: flex;
  align-items: center;
  gap: 3px;
  margin-top: 7px;
  font-size: 10px;
  color: #a9a29b;
}
.upsell-plan.is-on .upsell-plan__pick { color: #ff6a18; }
.upsell-plan__pick b { font-weight: 600; }
.upsell-plan__circle {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 1px solid #d9d3cc;
}
.upsell-plan__check {
  display: grid;
  place-items: center;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  color: #fff;
  background: #ff7a18;
}
.upsell-plan__check svg { width: 8px; height: 8px; stroke-width: 3.2; }
.upsell__cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 176px;
  height: 34px;
  margin: 14px auto 0;
  border-radius: 17px;
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(135deg, #ffab3f, #ff5c00);
  box-shadow: 0 6px 14px rgba(255, 100, 10, 0.28);
}
.upsell__cta svg { width: 11px; height: 11px; opacity: 0.95; }
.upsell__pay {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 3px;
  margin-top: 9px;
  font-size: 10px;
  color: #b3aca4;
}
.upsell__pay svg { width: 11px; height: 11px; }

/* ==================================================
   农机筛选面板
   ================================================== */
.machine-filterwrap { background: #fff; }
.mp-panel {
  padding: 10px 13px 14px;
  border-bottom: 1px solid #eef2f6;
  background: #fff;
  animation: mpIn 0.18s ease;
}
@keyframes mpIn {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: none; }
}
.mp-row { display: flex; flex-wrap: wrap; gap: 7px; }
.mp-row + .mp-sub { margin-top: 14px; }
.mp-sub { margin: 14px 0 8px; font-size: 13px; color: #8d949c; }
.mp-chip {
  height: 34px;
  min-width: 66px;
  padding: 0 12px;
  border-radius: 6px;
  font-size: 13px;
  text-align: center;
  color: #566556;
  background: #f7f9fc;
  box-shadow: inset 0 -1px 0 #e8edf3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.mp-chip.is-on { color: #fff; font-weight: 600; background: #2f7dfa; box-shadow: none; }
.mfilter.is-open { color: #2f7dfa; }
.mfilter.is-open svg { transform: rotate(180deg); }

/* ==================================================
   三级地区选择面板
   ================================================== */
.r3-sheet {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #fff;
  border-radius: 18px 18px 0 0;
}
.r3-ttl { flex: none; padding: 12px 16px 4px; }
.r3-title-row { display: flex; align-items: center; gap: 4px; }
.r3-back {
  display: inline-grid;
  place-items: center;
  width: 24px;
  height: 24px;
  margin-left: -6px;
  color: #5f6875;
}
.r3-back svg { width: 17px; height: 17px; }
.r3-title { flex: 1; font-size: 17px; font-weight: 700; color: #23282f; }
.r3-sub { margin-top: 4px; font-size: 12.5px; color: #9aa3b0; }
.r3-x {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  margin-right: -6px;
  color: #9aa3b0;
  background: none;
}
.r3-x svg { width: 17px; height: 17px; }
.r3-body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 0 16px calc(18px + env(safe-area-inset-bottom, 0px));
  -webkit-overflow-scrolling: touch;
}
.r3-group { padding-top: 10px; }
.r3-group + .r3-group { margin-top: 10px; border-top: 1px solid #f0f3f9; }
.r3-group__head { display: flex; align-items: flex-start; gap: 8px; padding: 10px 0 12px; }
.r3-group__icon { flex: none; display: block; width: 17px; height: 17px; margin-top: 1px; color: #8fa4c6; }
.r3-group__icon svg { display: block; width: 100%; height: 100%; }
.r3-group__text { flex: 1; min-width: 0; }
.r3-group__name { font-size: 15px; font-weight: 600; color: #3d4652; }
.r3-group__note { margin-top: 2px; font-size: 11px; color: #a8b0bc; }
.r3-group__count { flex: none; margin-top: 4px; font-size: 11.5px; color: #a8b0bc; }
.r3-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.r3-grid--two { grid-template-columns: repeat(2, 1fr); gap: 8px; }
.r3-grid--abroad { grid-template-columns: repeat(2, 1fr); gap: 8px; }
.r3-item {
  position: relative;
  height: 46px;
  padding: 0 8px;
  border-radius: 4px;
  font-size: 15px;
  color: #3d444e;
  background: #f8faff;
  border: 1px solid #e3e9f6;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.r3-grid--two .r3-item {
  height: 52px;
  padding: 0 14px 0 16px;
  text-align: left;
  font-size: 15px;
  background: #fff;
  border-color: #e9ecf1;
}
.r3-item.is-on { color: #2f6fd6; border-color: #2f6fd6; background: #eef4ff; }
.r3-grid--abroad .r3-item { height: 46px; }
.r3-arrow {
  position: absolute;
  top: 50%;
  right: 12px;
  display: flex;
  transform: translateY(-50%);
  color: #c4cad4;
}
.r3-arrow svg { width: 14px; height: 14px; }
.r3-bar {
  margin: 0 -16px 12px;
  padding: 11px 16px;
  font-size: 13px;
  color: #4b525c;
  background: #f6f7f8;
}

/* ==================================================
   发布农机表单
   ================================================== */
.pm-page { padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px)); background: #fff; }
.pm-form {
  margin: 0;
  padding: 0 12px 24px;
  background: #fff;
}
.pm-note { padding: 10px 0 0; font-size: 12.5px; color: #8d949c; }
.pm-note i { margin-right: 3px; font-style: normal; color: #f0443b; }
.pm-page .pub-label { position: relative; margin: 25px 0 6px; font-size: 13.5px; font-weight: 400; color: #5b636e; }
.pm-form > .pub-label::before {
  content: "";
  position: absolute;
  top: -12px;
  left: -12px;
  right: -12px;
  height: 1px;
  background: #edf2fa;
}
.pm-form > .pub-label:first-child::before,
.pm-note + .pub-label::before { display: none; }
.pm-note + .pub-label { margin-top: 3px; }
.pm-page .pub-label i { margin-right: 3px; font-style: normal; color: #f0443b; }
.pm-page .pub-label--row { display: flex; align-items: center; justify-content: space-between; }
.pm-page .pub-label--row .pub-locate { margin-bottom: 0; }
.pm-page .pub-field,
.pm-page .pub-input,
.pm-page .pub-textarea {
  height: 37px;
  border: 1px solid #e3e9f6;
  border-radius: 0;
  background: #f8faff;
  font-size: 13.5px;
  color: #23282f;
}
.pm-page .pub-field span { color: #23282f; }
.pm-page .pub-field.is-empty span { color: #9aa3b2; }
.pm-page .pub-field svg { width: 14px; height: 14px; color: #c0c7d1; }
.pm-page .pub-input::placeholder,
.pm-page .pub-textarea::placeholder { color: #9aa3b2; }
.pm-page .pub-field:focus,
.pm-page .pub-input:focus,
.pm-page .pub-textarea:focus { border-color: #b9c7da; background: #fff; }
.pm-page .pub-textarea { height: auto; min-height: 96px; }
.pm-page .pub-locate { color: #2f6fd6; font-size: 12.5px; }
.pm-two {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin: 14px -12px 0;
  padding: 10px 12px 0;
  border-top: 1px solid #edf2fa;
}
.pm-two__item { display: flex; flex-direction: column; min-width: 0; }
.pm-two__item > .pub-label { margin: 0 0 6px; font-weight: 400; color: #5b636e; }
.pm-two .pub-input { flex: none; }
.pm-cover {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 76px;
  height: 76px;
  border-radius: 0;
  overflow: hidden;
  background: #f8fbff;
  box-shadow: none;
  border: 1px dashed #b8c9ea;
}
.pm-cover img { width: 100%; height: 100%; object-fit: cover; }
.pm-cover--empty { flex-direction: column; gap: 5px; color: #8b98ad; font-size: 12px; }
.pm-cover--empty svg { width: 21px; height: 21px; color: #8fa4c6; }
.pm-cover__del,
.pm-photo__del {
  position: absolute;
  top: 5px;
  right: 5px;
  display: grid;
  place-items: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  color: #fff;
  background: rgba(20, 26, 22, 0.55);
}
.pm-cover__del svg,
.pm-photo__del svg { width: 11px; height: 11px; }
.pm-photos { display: grid; grid-template-columns: repeat(4, 76px); gap: 8px; }
.pm-photo {
  position: relative;
  width: 76px;
  height: 76px;
  border-radius: 2px;
  overflow: hidden;
  background: #f4f6f3;
}
.pm-photo img { width: 100%; height: 100%; object-fit: cover; }
.pm-photo--add {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  font-size: 11px;
  color: #8b98ad;
  background: #f8fbff;
  border: 1px dashed #b8c9ea;
  box-shadow: none;
}
.pm-photo--add svg { width: 19px; height: 19px; color: #8fa4c6; }
.pm-owner { display: flex; gap: 8px; }
.pm-owner__chip {
  height: 35px;
  padding: 0 16px;
  border-radius: 0;
  font-size: 13.5px;
  color: #2f6fd6;
  background: #eef4ff;
  border: 1px solid #d8e4f8;
}
.pm-owner__chip.is-on {
  color: #fff;
  font-weight: 600;
  background: #2f6fd6;
  border-color: #2f6fd6;
}
.pm-page .pub-phone { gap: 8px; }
.pm-page .pub-phone .pub-input { border-radius: 0; }
.pm-page .pub-phone__btn {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: auto;
  height: 37px;
  padding: 0 13px;
  border: 1px solid #e3e9f6;
  border-radius: 0;
  background: #f2f6ff;
  font-size: 12.5px;
  color: #2f6fd6;
}
.pm-page .pub-phone__btn svg { width: 14px; height: 14px; }
.pm-foot {
  position: fixed;
  left: 50%;
  bottom: 0;
  z-index: 45;
  width: 100%;
  max-width: 430px;
  transform: translateX(-50%);
  padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
  background: #fff;
  border-top: 1px solid #f0f1ee;
}
.pm-submit {
  display: block;
  width: 184px;
  margin: 0 auto;
  height: 45px;
  border-radius: 4px;
  font-size: 15px;
  font-weight: 600;
  color: #fff;
  background: #2f6fd6;
}

/* 发布农机：品牌 / 类型选择面板 */
.pm-pick { flex: 1; min-height: 0; display: flex; flex-direction: column; background: #fff; }
.pm-pick__title { flex: none; padding: 6px 16px 12px; font-size: 17px; font-weight: 700; color: #1b1f24; }
.pm-pick__body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 0 16px calc(22px + env(safe-area-inset-bottom, 0px));
  -webkit-overflow-scrolling: touch;
}
.pm-pick__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.pm-pick__chip {
  height: 36px;
  padding: 0 4px;
  border-radius: 0;
  font-size: 13px;
  color: #3d444e;
  background: #f4f7fd;
  border: 1px solid #e2eaf7;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pm-pick__chip.is-on { color: #2f6fd6; font-weight: 600; background: #eef4ff; border-color: #2f6fd6; }

/* ==================================================
   2026-10-29 车队页：筛选卡 / 当前筛选 / 列表
   ================================================== */
.fleet-sfilter {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 10px 12px 0;
  padding: 9px 12px;
  background: #fff;
  border-radius: 12px;
  box-shadow: var(--shadow-card);
}
.fleet-sfilter__icon {
  flex: none;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 8px;
  background: #eaf2ff;
  color: #2f6fd6;
}
.fleet-sfilter__icon svg { width: 17px; height: 17px; }
.fleet-sfilter__title { font-size: 15px; line-height: 19px; font-weight: 700; color: #1b1f1c; }
.fleet-sfilter__sub { margin-top: 1px; font-size: 11.5px; line-height: 15px; color: #8a918b; }
.fleet-sfilter__sub.is-picked { color: #2f6fd6; }

.fleet-pill {
  flex: none;
  display: inline-flex;
  align-items: center;
  gap: 2px;
  height: 29px;
  padding: 0 9px;
  border-radius: 6px;
  font-size: 12.5px;
  font-weight: 600;
  color: #2f6fd6;
  background: #eaf2ff;
  white-space: nowrap;
}
.fleet-pill svg { width: 12px; height: 12px; }
.fleet-pill.is-ghost { background: #fff; box-shadow: inset 0 0 0 1px #e1e9f2; }
.fleet-pill.is-picked { box-shadow: inset 0 0 0 1px #b9d3f8; }

.fleet-curfilter {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 8px 12px 0;
  padding: 6px 10px 6px 12px;
  border-radius: 8px;
  background: #f7faff;
  box-shadow: inset 0 0 0 1px #e3eefb;
}
.fleet-curfilter__label { flex: none; font-size: 12px; color: #5f6c7e; }
.fleet-curfilter__chips { flex: 1; min-width: 0; display: flex; gap: 6px; overflow-x: auto; }
.fleet-curfilter__chips::-webkit-scrollbar { display: none; }
.fleet-curfilter__chip {
  flex: none;
  height: 22px;
  padding: 0 8px;
  border-radius: 4px;
  background: #e5f0ff;
  color: #2f6fd6;
  font-size: 12px;
  line-height: 22px;
  white-space: nowrap;
}
.fleet-curfilter__clear { flex: none; font-size: 12px; color: #8593a5; }

.fleet-banner .group-banner {
  padding: 10px 12px;
  gap: 10px;
  background: #fffbeb;
  border: 1px solid #f5e6a3;
  border-radius: 12px;
}
.fleet-banner .group-banner__thumbs img { width: 34px; height: 34px; }
.fleet-banner .group-banner__badge { box-shadow: 0 0 0 2px #fffbeb; }
.fleet-banner .group-banner__title { font-size: 15.5px; line-height: 20px; font-weight: 700; color: #23282f; }
.fleet-banner .group-banner__sub { margin-top: 2px; font-size: 11.5px; line-height: 17px; color: #7d8580; }
.fleet-banner .group-banner__btn {
  height: 32px;
  padding: 0 12px;
  border-radius: 16px;
  font-size: 13px;
  font-weight: 600;
  background: #2f7dfa;
}

.driver-card { display: flex; align-items: flex-start; gap: 11px; padding: 11px 12px; }
.driver-card__left {
  flex: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 72px;
}
.driver-card .driver-avatar { position: relative; width: 72px; height: 72px; }
.driver-card .driver-avatar .avatar {
  width: 72px;
  height: 72px;
  font-size: 25px;
  border: 2px solid #f5c64f;
  background-clip: padding-box;
}
.driver-card .driver-avatar__crown {
  top: -7px;
  left: auto;
  right: -3px;
  transform: none;
  color: #f4c24c;
  filter: drop-shadow(0 1px 1px rgba(150, 100, 10, 0.35));
}
.driver-card .driver-avatar__crown svg { width: 23px; height: 23px; }
.driver-card__rank {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1px;
  margin-top: 5px;
  font-size: 11px;
  line-height: 14px;
  color: #8a918b;
  white-space: nowrap;
}
.driver-card__rank b { font-weight: 600; color: #6d746e; }

.driver-card__main { flex: 1; min-width: 0; padding-top: 1px; }
.driver-card__top { display: flex; align-items: center; gap: 8px; }
.driver-card__name {
  display: flex;
  align-items: center;
  gap: 6px;
  font-weight: 700;
}
.driver-card .driver-card__name { flex: 1; min-width: 0; flex-wrap: wrap; }
.driver-card .badge-member {
  height: 18px;
  padding: 0 6px;
  border-radius: 5px;
  font-size: 10px;
  color: #edc45f;
  background: linear-gradient(180deg, #4a3a17, #33270d);
  box-shadow: inset 0 0 0 1px #8a6a25;
}
.driver-card .badge-member svg { width: 10px; height: 10px; color: #edc45f; }
.driver-contact {
  height: 28px;
  padding: 0 11px;
  border-radius: 14px;
  font-size: 12px;
  font-weight: 600;
  color: #2f6fd6;
  background: #eef4ff;
}
.driver-contact svg { width: 13px; height: 13px; }
.driver-card__line { margin-top: 3px; font-size: 12.5px; line-height: 18px; color: #6d746e; gap: 5px; }
.driver-card__line svg { width: 14px; height: 14px; color: #9aa4a4; }
.driver-card__stats {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 11px;
  margin-top: 6px;
  padding-top: 0;
  border-top: 0;
  font-size: 11px;
  line-height: 18px;
  color: #8a918b;
}
.driver-stat { display: inline-flex; align-items: center; gap: 3px; }
.driver-stat svg { width: 13px; height: 13px; color: #9aa4a4; }
.driver-stat b { margin: 0; color: #4a504b; font-size: 11.5px; font-weight: 600; }
.driver-verified {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  height: 20px;
  padding: 0 7px;
  border-radius: 4px;
  background: #edf9f2;
  color: #3f9c63;
  font-size: 10.5px;
}
.driver-verified svg { width: 11px; height: 11px; }
.driver-verified.is-off { background: #f3f5f2; color: #8a918b; margin-left: auto; }
.driver-verified:not(.is-off) { margin-left: auto; }

/* 车队筛选抽屉：已选条件 + 三列网格 */
.fleet-fs__picked {
  padding: 12px;
  border-radius: 8px;
  background: #f5f9ff;
  box-shadow: inset 0 0 0 1px #e0ecfc;
}
.fleet-fs__picked-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 14px;
  font-weight: 700;
  color: #1b1f1c;
}
.fleet-fs__picked-row span { font-size: 13px; font-weight: 600; color: #2f6fd6; }
.fleet-fs__picked-sub { margin-top: 4px; font-size: 11.5px; color: #8a97a8; }
.fleet-fs__picked + .fs-group { margin-top: 18px; }
.fs-grid--three { grid-template-columns: repeat(3, 1fr); gap: 8px; }
/* 原站车队筛选里「身份」是两列，农机类型 / 作业类型才是三列 */
.fs-grid--two { grid-template-columns: repeat(2, 1fr); gap: 8px; }
.fs-tile {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 4px;
  border-radius: 6px;
  background: #f3f5f7;
  font-size: 12.5px;
  line-height: 1.3;
  color: #3d444e;
  text-align: center;
}
.fs-tile.is-on {
  background: #f5f9ff;
  color: #2f6fd6;
  font-weight: 600;
  box-shadow: inset 0 0 0 1px #cfe0f7;
}

/* ==================================================
   2026-10-29 发布信息：身份选择弹层
   ================================================== */
.pub-identity { padding: 4px 16px calc(14px + env(safe-area-inset-bottom, 0px)); }
.pub-identity__title { text-align: center; font-size: 17px; font-weight: 700; color: #23282f; }
.pub-identity__sub { margin-top: 5px; text-align: center; font-size: 12px; color: #9aa3b0; }
.pub-identity__list { display: flex; flex-direction: column; gap: 10px; margin-top: 16px; }
.pub-identity__card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px;
  border-radius: 10px;
  background: #f9fbfd;
  border: 1px solid #e2e8f0;
  text-align: left;
}
.pub-identity__icon {
  flex: none;
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 10px;
  color: #fff;
}
.pub-identity__icon.is-blue { background: linear-gradient(160deg, #4b8fe8, #2f6fd6); }
.pub-identity__icon.is-green { background: linear-gradient(160deg, #5cb861, #3e8c49); }
.pub-identity__icon svg { width: 22px; height: 22px; }
.pub-identity__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.pub-identity__name { font-size: 16px; font-weight: 700; color: #23282f; }
.pub-identity__desc { font-size: 12px; color: #8a97a8; }
.pub-identity__arrow { color: #c3ccd8; }
.pub-identity__arrow svg { width: 16px; height: 16px; }
.pub-identity__cancel {
  display: block;
  width: 50%;
  max-width: 210px;
  height: 40px;
  margin: 14px auto 0;
  border-radius: 6px;
  background: #f1f4f7;
  font-size: 14px;
  color: #4c5563;
}

/* ==================================================
   2026-10-29 发布信息：向导页与表单
   ================================================== */
.pub-wizard {
  background: linear-gradient(180deg, #f1f8ed 0%, #f4f9f0 36%, #f3f5f2 100%);
  padding-bottom: calc(88px + env(safe-area-inset-bottom, 0px));
}
.pub-wizard .wizard-steps { padding: 13px 10px 12px; background: #fff; border-bottom: 0; }
.pub-wizard .wizard-step { font-size: 11px; color: #9aa697; }
.pub-wizard .wizard-step__dot { width: 25px; height: 25px; font-size: 12px; background: #edf1ea; color: #9aa697; }
.pub-wizard .wizard-step.is-done { color: #3e8c49; font-weight: 600; }
.pub-wizard .wizard-step.is-done .wizard-step__dot { background: #3e8c49; }
.pub-wizard .wizard-step.is-active { color: #2c6b36; font-weight: 700; }
.pub-wizard .wizard-step.is-active .wizard-step__dot { background: #3e8c49; box-shadow: none; }
.pub-wizard .wizard-step + .wizard-step::before { top: 12px; height: 1px; background: #e6ede2; }
.pub-wizard .wizard-step.is-done + .wizard-step::before,
.pub-wizard .wizard-step.is-active + .wizard-step::before { background: #a9d3a9; }
.pub-wizard .wizard-body { padding: 10px 12px 0; }

.pub-card { margin: 0 0 12px; padding: 16px 14px; background: #fff; border-radius: 14px; }
.pub-card__title { font-size: 18px; font-weight: 700; color: #1b1f1c; }
.pub-card__sub { margin-top: 4px; font-size: 12.5px; color: #8a918b; }

.pf-label {
  display: flex;
  align-items: center;
  margin: 18px 0 8px;
  font-size: 14.5px;
  font-weight: 600;
  color: #3c423d;
}
.pf-label i { margin-right: 2px; font-style: normal; color: #f04438; }
.pf-label em { margin-left: 4px; font-style: normal; font-size: 12px; font-weight: 400; color: #9aa09a; }
.pf-label--sm { margin: 12px 0 6px; font-size: 13px; }
.pf-label--row { justify-content: space-between; }

.pf-input,
.pf-select {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
  height: 48px;
  padding: 0 12px;
  border: 0;
  outline: 0;
  border-radius: 8px;
  background: #f9fcf7;
  box-shadow: inset 0 0 0 1px #dcead6;
  font-size: 14px;
  color: #23282f;
  text-align: left;
}
input.pf-input { display: block; }
input.pf-input:focus { box-shadow: inset 0 0 0 1px #9cc78f; }
.pf-input::placeholder { color: #aab4aa; }
.pf-select span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pf-select svg { width: 14px; height: 14px; color: #b9c2b8; }
.pf-select.is-empty span { color: #aab4aa; }

.pf-phone { display: flex; align-items: center; gap: 10px; }
.pf-phone .pf-input { flex: 1; min-width: 0; }
.pf-getphone {
  flex: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 48px;
  padding: 0 14px;
  border-radius: 8px;
  background: #f0f8ea;
  box-shadow: inset 0 0 0 1px #d7e8cf;
  font-size: 13px;
  font-weight: 600;
  color: #4a7c46;
}
.pf-getphone svg { width: 14px; height: 14px; }

.pf-textarea {
  position: relative;
  padding: 10px 12px 26px;
  border-radius: 8px;
  background: #f9fcf7;
  box-shadow: inset 0 0 0 1px #dcead6;
}
.pf-textarea textarea {
  display: block;
  width: 100%;
  min-height: 92px;
  border: 0;
  outline: 0;
  resize: none;
  background: transparent;
  font-size: 13.5px;
  line-height: 1.75;
  color: #23282f;
}
.pf-counter { position: absolute; right: 10px; bottom: 8px; font-size: 11.5px; color: #9aa09a; }

.pf-section {
  margin-top: 18px;
  padding: 14px 12px;
  border-radius: 12px;
  background: #f1f8ee;
  box-shadow: inset 0 0 0 1px #ddebd4;
}
.pf-section__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.pf-section__title { display: flex; align-items: center; font-size: 15.5px; font-weight: 700; color: #2b3a2c; }
.pf-section__title i { margin-right: 2px; font-style: normal; color: #f04438; }
.pf-section__sub { margin-top: 3px; font-size: 11.5px; color: #8b9a8b; }
.pf-section__count {
  flex: none;
  height: 24px;
  padding: 0 9px;
  border-radius: 12px;
  background: #fff;
  box-shadow: inset 0 0 0 1px #ddebd4;
  font-size: 11.5px;
  line-height: 24px;
  color: #5d7a5d;
}
.pf-machine {
  margin-top: 12px;
  padding: 12px;
  border-radius: 10px;
  background: #fff;
  box-shadow: inset 0 0 0 1px #e6efe0;
}
.pf-machine__head { display: flex; align-items: center; gap: 5px; font-size: 14px; color: #2b3a2c; }
.pf-machine__head svg { width: 15px; height: 15px; color: #7a8f7a; }
.pf-machine__head b { font-weight: 700; }
.pf-machine__del { margin-left: auto; font-size: 12px; color: #9aa09a; }
.pf-addmachine {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  width: 100%;
  height: 42px;
  margin-top: 12px;
  border-radius: 8px;
  border: 1px dashed #b9d6af;
  background: #fbfef9;
  font-size: 13px;
  color: #4a7c46;
}
.pf-addmachine svg { width: 14px; height: 14px; }

.pf-photohead { display: flex; align-items: baseline; justify-content: space-between; margin: 18px 0 9px; }
.pf-photohead span { font-size: 14.5px; font-weight: 600; color: #3c423d; }
.pf-photohead em { font-style: normal; font-size: 12px; color: #9aa09a; }
.pf-uploads { display: flex; flex-wrap: wrap; gap: 10px; }
.pf-photo,
.pf-addphoto {
  position: relative;
  width: 90px;
  height: 90px;
  border-radius: 8px;
  overflow: hidden;
}
.pf-photo--life,
.pf-addphoto--life { width: 121px; height: 149px; }
.pf-photo img { width: 100%; height: 100%; object-fit: cover; }
.pf-photo__del {
  position: absolute;
  top: 4px;
  right: 4px;
  display: grid;
  place-items: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: rgba(20, 26, 22, 0.55);
  color: #fff;
}
.pf-photo__del svg { width: 11px; height: 11px; }
.pf-addphoto {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  border: 1px dashed #bbd8b0;
  background: #fafdf7;
  font-size: 12px;
  color: #6f8a6f;
}
.pf-addphoto svg { width: 21px; height: 21px; color: #7fa97a; }

.pf-locate {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 12.5px;
  font-weight: 400;
  color: #3e8c49;
}
.pf-locate svg { width: 13px; height: 13px; }
.pf-hint { margin-top: 8px; font-size: 11.5px; color: #9aa09a; }
.pf-warn {
  display: flex;
  align-items: center;
  gap: 5px;
  margin: 8px 0 10px;
  padding: 9px 10px;
  border-radius: 6px;
  background: #fff7e8;
  box-shadow: inset 0 0 0 1px #f6dfb7;
  font-size: 12px;
  color: #b45420;
}
.pf-warn svg { width: 14px; height: 14px; color: #ed8a36; }

.pf-confirm {
  margin-top: 18px;
  padding: 12px;
  border-radius: 10px;
  background: #f5f9f3;
  box-shadow: inset 0 0 0 1px #e1ebe0;
}
.pf-confirm__title { font-size: 15px; font-weight: 700; color: #2b3a2c; }
.pf-confirm__row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin-top: 8px;
  font-size: 13px;
  color: #8a918b;
}
.pf-confirm__row b { font-weight: 500; color: #3c423d; text-align: right; }
.pf-confirm__list { display: flex; flex-direction: column; gap: 4px; margin-top: 6px; padding-left: 14px; font-size: 13px; color: #3c423d; }

.pub-wizard .wizard-bar {
  padding: 10px 12px calc(12px + env(safe-area-inset-bottom, 0px));
  background: #f7fbf4;
  border-top: 1px solid #e7f0e2;
}
.pub-wizard .wizard-bar .btn { flex: 1; height: 46px; border-radius: 7px; font-size: 16px; }
.pub-wizard .wizard-bar .btn--prev { flex: 1; background: #fff; color: #3c423d; box-shadow: inset 0 0 0 1px #dde4d8; }
.pub-wizard .wizard-bar .btn--green { flex: 1; background: #3e8c49; font-weight: 600; }

/* ==================================================
   2026-10-29 发布信息：农机类型 / 作业类型弹层
   ================================================== */
.sheet--pub-pick { background: #f7faf5; }
.pub-pick { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.pub-pick__ttl {
  flex: none;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  padding: 4px 16px 12px;
}
.pub-pick__title { font-size: 19px; font-weight: 700; color: #23282f; }
.pub-pick__sub { margin-top: 5px; font-size: 12px; color: #8a918b; }
.pub-pick__tag {
  flex: none;
  height: 24px;
  margin-top: 2px;
  padding: 0 10px;
  border-radius: 12px;
  background: #e9f5e7;
  box-shadow: inset 0 0 0 1px #d8ead6;
  font-size: 11.5px;
  font-weight: 600;
  line-height: 22px;
  color: #2f7540;
}
.pub-pick__body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 0 16px 12px;
  -webkit-overflow-scrolling: touch;
}
.pub-pick__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.pub-tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  min-height: 56px;
  padding: 4px;
  border-radius: 8px;
  background: #fff;
  box-shadow: inset 0 0 0 1px #dce7db;
  font-size: 13.5px;
  line-height: 1.25;
  text-align: center;
  color: #3e5542;
}
.pub-tile em {
  font-style: normal;
  display: inline-block;
  margin-top: 2px;
  padding: 0 6px;
  border-radius: 999px;
  background: #e2f1dc;
  font-size: 10.5px;
  line-height: 16px;
  color: #4a8a52;
}
.pub-tile.is-on { background: #3e8c49; box-shadow: none; color: #fff; font-weight: 600; }
.pub-tile.is-on:not(.pub-tile--warm) {
  background: #f4faef;
  box-shadow: inset 0 0 0 1px #438f50;
  color: #2f6b39;
}
.pub-tile--warm {
  min-height: 50px;
  background: #fffcf2;
  box-shadow: inset 0 0 0 1px #eee2bd;
  font-size: 15.5px;
  color: #4a4033;
}
.pub-tile--warm.is-on { background: #3e8c49; box-shadow: none; color: #fff; }
.pub-other {
  margin-top: 10px;
  padding: 10px 12px 12px;
  border-radius: 8px;
  background: #f3f9ef;
  box-shadow: inset 0 0 0 1px #dcebd4;
}
.pub-other__label { font-size: 12.5px; font-weight: 600; color: #3c423d; }
.pub-other__input {
  display: block;
  width: 100%;
  height: 40px;
  margin-top: 8px;
  padding: 0 10px;
  border: 0;
  outline: 0;
  border-radius: 6px;
  background: #fff;
  box-shadow: inset 0 0 0 1px #dce7db;
  font-size: 13px;
}
.pub-other__input::placeholder { color: #a8b2a8; }
.pub-pick__foot {
  flex: none;
  display: flex;
  gap: 10px;
  padding: 10px 16px calc(12px + env(safe-area-inset-bottom, 0px));
  background: #f7faf5;
  border-top: 1px solid #e9f0e5;
}
.pub-btn { flex: 1; height: 48px; border-radius: 8px; font-size: 15px; font-weight: 600; }
.pub-btn--ghost { flex: none; width: 40%; background: #fff; box-shadow: inset 0 0 0 1px #e3e8e0; color: #5b6460; }
.pub-btn--green { background: #3e8c49; color: #fff; }

/* ==================================================
   2026-10-29 三级地区：新头部（公共基础 + 发布流程绿色主题）
   ================================================== */
.r3-top { flex: none; padding: 2px 16px 0; }
.r3-head { display: flex; align-items: flex-start; gap: 8px; }
.r3-head .r3-title { flex: 1; }
.r3-backrow { display: flex; align-items: center; gap: 8px; margin: 2px 0 10px; }
.r3-backpill {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  height: 28px;
  padding: 0 10px 0 7px;
  border-radius: 14px;
  background: #eef4ff;
  color: #2f6fd6;
  font-size: 12px;
  font-weight: 600;
}
.r3-backpill svg { width: 13px; height: 13px; }
.r3-backrow .r3-x { margin-left: auto; margin-right: -4px; }
.r3-crumb {
  margin: 0 0 10px;
  padding: 9px 12px;
  border-radius: 6px;
  background: #f3f6fb;
  font-size: 13.5px;
  color: #3d4652;
}
.r3-crumb i { margin: 0 3px; font-style: normal; color: #a8b0bc; }
.r3-tick { display: none; }

.sheet--pub { background: #f6f9f4; }
.sheet--pub .r3-sheet { background: #f6f9f4; }
.sheet--pub .r3-title { font-size: 19px; color: #1c3220; }
.sheet--pub .r3-sub { color: #7e8e7e; font-size: 12px; }
.sheet--pub .r3-x {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  margin-top: 1px;
  margin-right: -2px;
  border-radius: 50%;
  background: #f1f4ef;
  color: #7c8a7c;
}
.sheet--pub .r3-x svg { width: 15px; height: 15px; }
.sheet--pub .r3-backpill { background: #e9f4e6; color: #35753e; font-size: 12.5px; }
.sheet--pub .r3-body { padding: 4px 16px calc(18px + env(safe-area-inset-bottom, 0px)); }
.sheet--pub .r3-group { padding-top: 6px; }
.sheet--pub .r3-group + .r3-group { margin-top: 12px; border-top: 1px solid #e7f0e2; }
.sheet--pub .r3-group__head { padding: 12px 0; }
.sheet--pub .r3-group__icon { width: 19px; height: 19px; color: #5f9366; }
.sheet--pub .r3-group__name { font-size: 16px; font-weight: 700; color: #2c4430; }
.sheet--pub .r3-group__note,
.sheet--pub .r3-group__count { color: #8e9c8e; }
.sheet--pub .r3-grid { gap: 8px; }
.sheet--pub .r3-item {
  height: 50px;
  border-radius: 7px;
  border-color: #e4ede0;
  background: #fff;
  font-size: 15.5px;
  color: #263d2a;
}
.sheet--pub .r3-item.is-on { border-color: #6baf62; background: #f0f8ec; color: #35753e; }
.sheet--pub .r3-grid--two .r3-item {
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-radius: 7px;
  border-color: #e4ede0;
  background: #fff;
}
.sheet--pub .r3-crumb {
  padding: 10px 12px;
  border-radius: 7px;
  background: #eaf4e7;
  font-size: 15px;
  font-weight: 600;
  color: #263d2a;
}
.sheet--pub .r3-tick { display: grid; place-items: center; width: 18px; height: 18px; margin-left: 8px; color: #6baf62; }
.sheet--pub .r3-tick svg { width: 16px; height: 16px; stroke-width: 2.4; }

/* ================= 车队详情（第六轮） ================= */
.fleet-detail { background: #f3f7f1; padding-bottom: calc(72px + env(safe-area-inset-bottom, 0px)); }
.fleet-detail .navbar { background: #f3f7f1; border-bottom: 0; }
.fleet-detail .navbar__title { font-size: 17px; font-weight: 700; color: #16251a; }

.fd-hero {
  display: flex;
  align-items: center;
  gap: 15px;
  margin: 8px 10px 0;
  padding: 14px;
  background: linear-gradient(96deg, #fff 42%, #f3f8f0 100%);
  border-radius: 12px;
}
.fd-hero__avatar { position: relative; flex: none; }
.fd-hero__avatar .avatar--fd { width: 76px; height: 76px; font-size: 27px; }
.fd-hero__body { flex: 1; min-width: 0; }
.fd-hero__name {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  font-size: 21px;
  line-height: 1.3;
  font-weight: 700;
  color: #16251a;
}
.fd-hero__name .badge-member { height: 18px; padding: 0 6px; font-size: 10px; }
.fd-hero__tags { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 9px; }
.fd-tag {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 24px;
  padding: 0 9px;
  border-radius: 12px;
  font-size: 12px;
  color: #667569;
  background: #fbfdf9;
  box-shadow: inset 0 0 0 1px #e0e9df;
}
.fd-tag svg { width: 13px; height: 13px; }
.fd-tag--blue { color: #34699b; background: #eff6fc; box-shadow: none; }
.fd-tag--green { color: #3d7d4c; background: #eef7ec; box-shadow: none; }

.fd-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin: 12px 10px 0;
  padding: 14px 0 0;
  background: #fff;
  border-radius: 12px;
}
.fd-stat { position: relative; padding: 0 2px 12px; text-align: center; }
.fd-stat b { display: block; font-size: 20px; line-height: 26px; font-weight: 700; letter-spacing: -0.2px; color: #2f4934; }
.fd-stat--gold b { color: #7d5618; }
.fd-stat span { display: flex; align-items: center; justify-content: center; gap: 3px; margin-top: 3px; font-size: 11.5px; color: #819285; }
.fd-stat--gold span { color: #a18a61; }
.fd-stat span svg { width: 12px; height: 12px; }
.fd-stat + .fd-stat::before { content: ""; position: absolute; left: 0; top: 4px; bottom: 16px; width: 1px; background: #edf1ea; }
.fd-rank {
  grid-column: 1 / -1;
  justify-self: center;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  position: relative;
  width: 46%;
  max-width: 200px;
  height: 38px;
  margin: 6px 0 12px;
  border-radius: 7px;
  font-size: 13.5px;
  font-weight: 600;
  color: #387743;
  background: #f2f8f0;
  box-shadow: inset 0 0 0 1px #e1ecdd;
}
.fd-rank svg { width: 15px; height: 15px; }
.fd-rank svg:last-child { position: absolute; right: 11px; width: 14px; height: 14px; color: #7f9382; }

.fd-card { margin: 12px 10px 0; padding: 12px 14px; background: #fff; border-radius: 12px; }
.fd-card__head { display: flex; align-items: center; gap: 10px; font-size: 15px; font-weight: 700; color: #203824; }
.fd-card__head--split .fd-card__count { margin-left: auto; font-size: 12px; font-weight: 400; color: #8b978d; }
.fd-ic { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; flex: none; }
.fd-ic svg { width: 16px; height: 16px; }
.fd-ic--green { color: #4c8a55; background: #eaf6e7; }
.fd-ic--beige { color: #b98b4c; background: #fbf3df; }
.fd-ic--blue { color: #4a8ac6; background: #eaf3fb; }
.fd-ic--violet { color: #8a6cb3; background: #f3eef9; }
.fd-card--region { display: flex; align-items: center; gap: 12px; }
.fd-region { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.fd-region__label { font-size: 12.5px; line-height: 17px; color: #7f8f81; }
.fd-region__value { font-size: 15.5px; line-height: 22px; font-weight: 700; color: #203824; }
.fd-card__box {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  padding: 9px 12px;
  border-radius: 8px;
  font-size: 14.5px;
  line-height: 1.65;
  color: #314c36;
  background: #f5f9f3;
}
.fd-card__box svg { width: 16px; height: 16px; flex: none; color: #b98b4c; }
.fd-card__box--beige { background: #fdfbf3; box-shadow: inset 0 0 0 1px #f2e9cf; }
.fd-card__box--para { display: block; line-height: 1.75; }
.fd-photos { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin-top: 10px; }
.fd-photos .photo { aspect-ratio: 4 / 3; border-radius: 10px; }
.fd-photos:not(.is-multi) { grid-template-columns: 1fr; }

.fd-bar { gap: 10px; padding: 8px 12px calc(8px + env(safe-area-inset-bottom, 0px)); background: #fff; border-top: 1px solid #e8eee5; }
.fd-share {
  flex: 0 0 38%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 46px;
  border-radius: 10px;
  font-size: 15px;
  font-weight: 600;
  color: #35643c;
  background: #f3f8f1;
  box-shadow: inset 0 0 0 1px #dce9d8;
}
.fd-share svg { width: 17px; height: 17px; }
.fd-call {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 46px;
  border-radius: 10px;
  font-size: 16px;
  font-weight: 600;
  color: #fff;
  background: #3e8e4f;
}
.fd-call svg { width: 17px; height: 17px; }

/* 联系前需求询问弹层 */
.need { padding: 12px 20px calc(16px + env(safe-area-inset-bottom, 0px)); text-align: center; }
.need__icon { display: grid; place-items: center; width: 52px; height: 52px; margin: 8px auto 0; border-radius: 13px; color: #4c8a55; background: #edf7eb; }
.need__icon svg { width: 25px; height: 25px; }
.need__title { margin: 15px 0 0; font-size: 18px; line-height: 22px; font-weight: 700; color: #16251a; }
.need__desc { margin: 7px auto 0; font-size: 13px; line-height: 1.5; color: #7b8a7e; text-wrap: balance; }
.need__actions { display: flex; flex-direction: column; gap: 9px; margin-top: 12px; }
.need__btn { width: 190px; max-width: 62%; margin: 0 auto; height: 44px; border-radius: 10px; font-size: 15px; font-weight: 600; }
.need__btn--green { color: #fff; background: #3e8e4f; }
.need__btn--grey { color: #3c4b41; background: #f1f4f1; }

/* ================= 第八轮：排行榜 / 我的农机 / 记录 / 收藏 / 通知 / 关注提醒 ================= */

/* ---- 车队积分排行榜 ---- */
.rk-page { background: #f6f7f5; }
.rk-page .navbar { background: #f6f7f5; border-bottom: 0; }
.rk-page .navbar__title { font-size: 17px; font-weight: 700; color: #16251a; }

.rk-hero {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  gap: 13px;
  margin: 4px 10px 10px;
  padding: 14px 16px;
  border-radius: 12px;
  color: #fff;
  background: linear-gradient(100deg, #3a6244 0%, #33583c 58%, #3f6a49 100%);
}
.rk-hero::after {
  content: '';
  position: absolute;
  right: -38px;
  top: -50px;
  width: 150px;
  height: 150px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
}
.rk-hero__icon {
  flex: none;
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 11px;
  background: rgba(255, 255, 255, 0.13);
  color: #f3d489;
}
.rk-hero__icon svg { width: 26px; height: 26px; }
.rk-hero__body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.rk-hero__title { font-size: 17px; font-weight: 700; letter-spacing: 0.3px; }
.rk-hero__sub { font-size: 12px; color: rgba(255, 255, 255, 0.72); }

.rk-list { display: flex; flex-direction: column; gap: 8px; padding: 0 10px 20px; }
.rk-card {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 12px 12px 10px;
  border-radius: 11px;
  background: #fff;
  color: inherit;
  box-shadow: 0 1px 2px rgba(24, 30, 25, 0.03);
}
.rk-card--1 { background: #fff8e2; }
.rk-card--2 { background: #f5f7f9; }
.rk-card--3 { background: #fbf1e8; }
.rk-no { flex: none; width: 26px; text-align: center; font-size: 16px; font-weight: 700; color: #8c948d; }
.rk-medal { display: block; width: 26px; height: 30px; margin: 0 auto; }
.rk-card--1 .rk-medal { color: #cf9a1d; }
.rk-card--2 .rk-medal { color: #98a3aa; }
.rk-card--3 .rk-medal { color: #c2814f; }
.rk-ava { flex: none; display: flex; }
.rk-ava .avatar {
  width: 50px;
  height: 50px;
  font-size: 18px;
  border: 2px solid #fff;
  box-shadow: 0 0 0 1px rgba(24, 30, 25, 0.05);
}
.rk-card--1 .rk-ava .avatar { box-shadow: 0 0 0 2px #e7c46a; }
.rk-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.rk-name { display: flex; align-items: center; gap: 6px; font-size: 15.5px; font-weight: 700; color: #1b241c; }
.rk-name i {
  font-style: normal;
  font-size: 11px;
  font-weight: 500;
  color: #5c8a61;
  background: #e9f3e5;
  border-radius: 4px;
  padding: 1px 5px;
}
.rk-line {
  display: flex;
  align-items: flex-start;
  gap: 4px;
  font-size: 12px;
  line-height: 1.4;
  color: #8b938c;
  /* 长县名（如「前郭尔罗斯蒙古族自治县」）一行放不下，改成折行显示，不用省略号截断数据 */
  overflow-wrap: anywhere;
}
.rk-line svg { flex: none; width: 12px; height: 12px; margin-top: 2px; color: #a7ada6; }
.rk-score { flex: none; display: flex; flex-direction: column; align-items: flex-end; gap: 1px; padding-right: 2px; }
.rk-score b { font-size: 19px; font-weight: 750; line-height: 1.1; color: #ef8a1e; font-variant-numeric: tabular-nums; }
.rk-score span { font-size: 11px; color: #9aa09a; }
.rk-chev { flex: none; color: #c8cdc8; }
.rk-chev svg { width: 13px; height: 13px; }

/* ---- 顶部胶囊标签页（我的农机 / 我的记录 / 消息通知 / 浏览记录） ---- */
.mm-page, .rc-page, .nt-page, .fav-page { background: #f6f7f5; }
.mm-page .navbar, .rc-page .navbar, .nt-page .navbar, .fav-page .navbar { background: #fff; }

.mm-searchrow { display: flex; gap: 9px; padding: 8px 12px 0; }
.mm-search {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 7px;
  height: 44px;
  padding: 0 13px;
  border-radius: 22px;
  background: #fff;
}
.mm-search svg { flex: none; width: 16px; height: 16px; color: #b6bcc3; }
.mm-search input { flex: 1; min-width: 0; border: 0; background: transparent; font-size: 14px; color: #1b241c; outline: none; }
.mm-search input::placeholder { color: #a9b0b8; }
.mm-searchbtn {
  flex: none;
  width: 66px;
  height: 44px;
  border: 0;
  border-radius: 9px;
  background: #e8f0fd;
  color: #2f6fdd;
  font-size: 14.5px;
  font-weight: 600;
}

.rt-tabs { display: flex; align-items: center; gap: 8px; padding: 12px 12px 4px; flex-wrap: wrap; }
.rt-tab {
  height: 31px;
  padding: 0 16px;
  border-radius: 16px;
  border: 1px solid #e6e8ee;
  background: #fff;
  font-size: 13.5px;
  color: #3b4148;
}
.rt-tab.is-on { border-color: #dbe8fd; background: #e9f1fe; color: #2f6fdd; font-weight: 600; }

/* ---- 我的记录 / 浏览记录 ---- */
.rc-list { display: flex; flex-direction: column; gap: 8px; padding: 6px 12px 12px; }
.rc-card { display: block; padding: 11px 13px 12px; border-radius: 10px; background: #fff; color: inherit; }
.rc-card__top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.rc-card__title { font-size: 15px; font-weight: 700; color: #1b241c; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.rc-card__tag { flex: none; font-size: 11.5px; color: #3b78d8; background: #eaf1fd; border-radius: 6px; padding: 2px 7px; }
.rc-card__meta { margin-top: 5px; font-size: 12.5px; color: #7d858b; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.rc-card__time { margin-top: 3px; font-size: 12.5px; color: #8b9399; }
.rc-empty { padding: 46px 0 0; text-align: center; font-size: 13.5px; color: #a3aab1; }
.rc-foot { padding: 12px 0 22px; text-align: center; font-size: 12.5px; color: #a3aab1; }

.br-hint {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 10px 12px 0;
  padding: 10px 12px;
  border-radius: 8px;
  background: #edf4ff;
  color: #2f6fdd;
  font-size: 12.5px;
}
.br-hint svg { flex: none; width: 15px; height: 15px; }

/* ---- 我的收藏 ---- */
.fav-banner {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 10px 12px 0;
  padding: 14px 16px;
  border-radius: 12px;
  color: #fff;
  background: linear-gradient(100deg, #f9b13c 0%, #f79a2c 62%, #f6a434 100%);
}
.fav-banner::after {
  content: '';
  position: absolute;
  right: -30px;
  bottom: -56px;
  width: 150px;
  height: 150px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.14);
}
.fav-banner__icon {
  flex: none;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 11px;
  background: #fff;
  color: #f5a52f;
}
.fav-banner__icon svg { width: 24px; height: 24px; }
.fav-banner__body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.fav-banner__body b { font-size: 16px; font-weight: 700; }
.fav-banner__body span { font-size: 12px; color: rgba(255, 255, 255, 0.92); }
.fav-empty { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 76px 24px 0; text-align: center; }
.fav-empty svg { width: 48px; height: 48px; color: #f2a93d; stroke-width: 1.3; }
.fav-empty b { margin-top: 4px; font-size: 14.5px; font-weight: 600; color: #303833; }
.fav-empty span { font-size: 12px; color: #9aa1a7; }

/* ---- 消息通知 ---- */
.nt-bar { display: flex; align-items: center; gap: 8px; padding: 10px 12px 2px; }
.nt-bar .rt-tabs { flex: 1; padding: 0; flex-wrap: nowrap; }
.nt-readall { flex: none; border: 0; background: none; font-size: 13px; color: #2f6fdd; padding: 4px 0 4px 6px; }

/* ---- 关注提醒三步向导 ---- */
.gw-page {
  background: linear-gradient(180deg, #eef4ea 0%, #edf3e9 46%, #eef4ea 100%);
  padding-bottom: calc(88px + env(safe-area-inset-bottom, 0px));
}
.gw-page .navbar { background: transparent; border-bottom: 0; }
.gw-page .navbar__title { font-size: 16px; font-weight: 700; color: #16251a; }

.gw-steps { display: flex; padding: 6px 30px 0; }
.gw-step { position: relative; flex: 1; display: flex; flex-direction: column; align-items: center; gap: 6px; }
.gw-step__line { position: absolute; top: 12px; right: 50%; width: 100%; height: 1px; background: #d8e2d4; }
.gw-step__line.is-done { background: #8bb48a; }
.gw-step__dot {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #e3e9df;
  color: #93a08f;
  font-size: 12.5px;
  font-weight: 600;
}
.gw-step__dot svg { width: 13px; height: 13px; stroke-width: 2.4; }
.gw-step.is-on .gw-step__dot { background: #347348; color: #fff; box-shadow: 0 0 0 3px rgba(52, 115, 72, 0.13); }
.gw-step.is-done .gw-step__dot { background: #4c8a5c; color: #fff; }
.gw-step__label { font-size: 12px; color: #8e9a8b; }
.gw-step.is-on .gw-step__label, .gw-step.is-done .gw-step__label { color: #2f6c42; font-weight: 600; }

.gw-stepnum { margin: 14px 20px 0; font-size: 12.5px; color: #7f8b7c; letter-spacing: 0.4px; }
.gw-h1 { margin: 7px 20px 0; font-size: 22px; font-weight: 800; letter-spacing: 0.2px; color: #14291a; }
.gw-sub { margin: 6px 20px 0; font-size: 13px; color: #63735f; }
.gw-card { margin: 16px 12px 0; padding: 16px; border-radius: 14px; background: #fff; box-shadow: 0 1px 2px rgba(24, 40, 25, 0.03); }
.gw-card__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.gw-card__head b { font-size: 16.5px; font-weight: 700; color: #1b241c; }
.gw-card__head > span { font-size: 12.5px; color: #8b978a; }
.gw-edit { border: 0; background: none; font-size: 13px; color: #2f8a4a; padding: 2px 0; }

.gw-follow { position: relative; padding: 22px 16px 20px; text-align: center; }
.gw-follow__tag {
  position: absolute;
  top: 12px;
  right: 12px;
  font-size: 11.5px;
  color: #b18a35;
  background: #fdf5e0;
  border-radius: 5px;
  padding: 3px 7px;
}
.gw-follow__icon {
  display: grid;
  place-items: center;
  width: 76px;
  height: 76px;
  margin: 6px auto 0;
  border-radius: 18px;
  background: #e9f4e6;
  color: #3f8a4e;
}
.gw-follow__icon svg { width: 42px; height: 36px; }
.gw-follow__name { margin-top: 16px; font-size: 17px; font-weight: 700; color: #16251a; }
.gw-follow__desc { margin-top: 5px; font-size: 13px; color: #8b978a; }
.gw-follow__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 40px;
  margin-top: 16px;
  padding: 0 20px;
  border: 0;
  border-radius: 8px;
  background: #e9f4e6;
  color: #2f6c42;
  font-size: 14.5px;
  font-weight: 700;
}
.gw-follow__btn svg { width: 15px; height: 15px; }

/* 第 1 步「去关注」之后：卡片换成公众号名 + 二维码，量参照图二维码黑块 161px / 视口 415px = 38.8%，
   按 375 设计宽折算 145px，再加 8px 白底留白（二维码要留静区，不能贴边）。 */
.gw-follow__qr {
  display: block;
  margin: 18px auto 0;
  padding: 8px;
  border: 1px solid #edf0ea;
  border-radius: 10px;
  background: #fff;
  line-height: 0;
}
.gw-follow__qr img { display: block; width: 145px; height: 145px; }
.gw-follow__hint { margin-top: 15px; font-size: 13px; color: #62775b; }
.gw-follow__tip { margin-top: 8px; font-size: 12.5px; color: #7a8b71; }
.gw-follow__noqr {
  margin: 18px auto 0;
  padding: 18px 14px;
  border: 1px dashed #d8e2d4;
  border-radius: 10px;
  font-size: 12.5px;
  line-height: 1.6;
  color: #8b978a;
}

/* 点开二维码的放大层：微信里要长按这张大图才能「识别里面的公众号」 */
.gw-qrview {
  position: relative;
  padding: 30px 16px 20px;
  border-radius: 16px;
  background: #fff;
  text-align: center;
  box-shadow: 0 18px 48px rgba(15, 25, 18, 0.22);
}
.gw-qrview__x {
  position: absolute;
  top: 10px;
  right: 10px;
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border: 0;
  background: none;
  color: #8b978a;
}
.gw-qrview__x svg { width: 16px; height: 16px; }
.gw-qrview__name { font-size: 16px; font-weight: 700; color: #243c2c; }
.gw-qrview__img {
  display: block;
  width: 216px;
  height: 216px;
  margin: 16px auto 0;
  padding: 8px;
  border: 1px solid #edf0ea;
  border-radius: 10px;
  background: #fff;
}
.gw-qrview__empty { margin-top: 16px; padding: 40px 0; font-size: 13px; color: #8b978a; }
.gw-qrview__tip { margin-top: 14px; font-size: 12.5px; line-height: 1.6; color: #7a8b71; }

/* 后台查不到关注状态时的二次确认弹层 */
.gw-ask {
  padding: 22px 18px 14px;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 18px 48px rgba(15, 25, 18, 0.22);
}
.gw-ask__title { font-size: 17px; font-weight: 700; color: #243c2c; }
.gw-ask__lead { margin-top: 10px; font-size: 13.5px; line-height: 1.65; color: #4a5a48; }
.gw-ask__sub { margin-top: 8px; font-size: 13px; line-height: 1.65; color: #8b978a; }
.gw-ask__foot { display: flex; gap: 10px; margin-top: 18px; }
.gw-ask__btn {
  flex: 1;
  height: 42px;
  border: 0;
  border-radius: 8px;
  font-size: 15px;
  font-weight: 600;
}
.gw-ask__btn--ghost { background: #f2f5f0; color: #3c4a3a; box-shadow: inset 0 0 0 1px #e2e9de; }
.gw-ask__btn--ok { background: #347348; color: #fff; }

.gw-kinds { display: flex; gap: 10px; margin-top: 13px; }
.gw-kind {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 8px;
  height: 46px;
  padding: 0 12px;
  border: 1px solid #e6e9e3;
  border-radius: 9px;
  background: #fff;
  color: #4a5a48;
}
.gw-kind__icon { display: flex; }
.gw-kind__icon svg { width: 17px; height: 17px; }
.gw-kind__name { flex: 1; text-align: left; font-size: 15px; font-weight: 600; }
.gw-kind__dot { display: grid; place-items: center; width: 18px; height: 18px; border: 1.2px solid #d2d8cf; border-radius: 50%; }
.gw-kind__dot svg { width: 11px; height: 11px; stroke-width: 2.8; }
.gw-kind.is-on { background: #edf5e9; border-color: #7fae7c; color: #2f6c42; }
.gw-kind.is-on .gw-kind__dot { background: #4f8f5c; border-color: #4f8f5c; color: #fff; }

.gw-region {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  margin-top: 12px;
  padding: 10px 12px;
  border: 0;
  border-radius: 9px;
  background: #f6f8f4;
  text-align: left;
}
.gw-region__body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.gw-region__body i { font-style: normal; font-size: 13.5px; font-weight: 600; color: #33402f; }
.gw-region__body em { font-style: normal; font-size: 13px; color: #3f7c4f; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.gw-region__body em.is-empty { color: #a3ada1; }
.gw-region > svg { flex: none; width: 15px; height: 15px; color: #9aa697; }

.gw-subhead { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 16px; }
.gw-subhead b { font-size: 15px; font-weight: 700; color: #1b241c; }
.gw-subhead span { font-size: 12.5px; color: #8b978a; }
.gw-cats { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 11px; }
.gw-cat {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  height: 34px;
  padding: 0 11px;
  border: 1px solid #e6e9e3;
  border-radius: 8px;
  background: #fff;
  font-size: 13.5px;
  color: #3c443a;
}
.gw-cat.is-on { background: #edf5e9; border-color: #7fae7c; color: #2f6c42; font-weight: 600; }
.gw-cat svg { width: 12px; height: 12px; stroke-width: 2.6; }

.gw-jobblock { margin-top: 16px; padding-top: 4px; border-top: 1px solid #eef1ec; }
.gw-jobgroup { margin-top: 10px; }
.gw-jobgroup__label { font-size: 13px; color: #7c887a; }
.gw-jobs { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 9px; }
.gw-job {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 3px;
  min-width: 56px;
  height: 34px;
  padding: 0 10px;
  border: 1px solid #e6e9e3;
  border-radius: 8px;
  background: #fff;
  font-size: 13px;
  color: #3c443a;
  white-space: nowrap;
}
.gw-job.is-on { background: #edf5e9; border-color: #7fae7c; color: #2f6c42; font-weight: 600; }
.gw-job svg { flex: none; width: 11px; height: 11px; stroke-width: 2.6; }

.gw-sumkind { display: flex; gap: 12px; margin-top: 12px; }
.gw-sumkind__item { display: inline-flex; align-items: center; gap: 6px; font-size: 15px; font-weight: 600; color: #2f6c42; }
.gw-sumkind__item svg { width: 16px; height: 16px; }
.gw-sumkind__item.is-empty { color: #a3ada1; font-weight: 400; }
.gw-sumprov { margin-top: 8px; font-size: 13px; color: #8b978a; }
.gw-sumtags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.gw-sumtag { padding: 5px 10px; border-radius: 7px; background: #e9f3e5; font-size: 12.5px; color: #2f7a45; }
.gw-sumfollow {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 14px;
  padding-top: 13px;
  border-top: 1px solid #eef1ec;
  font-size: 12.5px;
  color: #8b978a;
}
.gw-sumfollow svg { width: 15px; height: 15px; color: #4f8f5c; }
.gw-sumfollow b { flex: 1; font-size: 13px; font-weight: 500; color: #5a6858; }
.gw-notifycard__desc { margin-top: 6px; font-size: 12.5px; color: #9aa698; }
.gw-switch {
  position: relative;
  width: 44px;
  height: 25px;
  border: 0;
  border-radius: 13px;
  background: #dfe5dc;
  transition: background 0.18s;
}
.gw-switch::after {
  content: '';
  position: absolute;
  top: 2px;
  left: 2px;
  width: 21px;
  height: 21px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
  transition: transform 0.18s;
}
.gw-switch.is-on { background: #347348; }
.gw-switch.is-on::after { transform: translateX(19px); }

.gw-bar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 45;
  display: flex;
  gap: 10px;
  width: 100%;
  max-width: 430px;
  margin: 0 auto;
  padding: 10px 12px calc(12px + env(safe-area-inset-bottom, 0px));
  background: #eef4ea;
}
.gw-btn {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 48px;
  border: 0;
  border-radius: 8px;
  font-size: 16px;
  font-weight: 600;
}
.gw-btn--ghost { flex: 0 0 30%; background: #fbfcf9; color: #3c4a3a; box-shadow: inset 0 0 0 1px #e2e9de; }
.gw-btn--primary { background: #347348; color: #fff; }
.gw-btn svg { width: 16px; height: 16px; stroke-width: 2.2; }

/* 保存完成的第 4 屏（参照图第四张）：这一屏没有步骤条，标题直接顶到导航栏下面 */
.gw-page--done { padding-top: 4px; }
.gd-ok {
  display: flex;
  align-items: center;
  gap: 5px;
  margin: 14px 20px 0;
  font-size: 13px;
  font-weight: 700;
  color: #4d8a4f;
}
.gd-ok svg { width: 15px; height: 15px; stroke-width: 2.6; }
.gd-h1 { margin: 8px 20px 0; font-size: 22px; font-weight: 800; letter-spacing: 0.2px; color: #243c2c; }
.gd-sub { margin: 6px 20px 0; font-size: 13px; color: #63735f; }
.gd-pill {
  font-size: 12.5px;
  font-weight: 600;
  color: #8b978a;
  background: #f2f5f0;
  border-radius: 5px;
  padding: 3px 8px;
}
.gd-pill.is-on { color: #2f6c42; background: #e9f4e6; }
.gd-view {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 3px;
  width: calc(100% - 40px);
  margin: 18px 20px 0;
  padding: 10px 0;
  border: 0;
  background: none;
  font-size: 14px;
  font-weight: 600;
  color: #4a5a48;
}
.gd-view svg { width: 14px; height: 14px; color: #8b978a; }

.gp { padding: 4px 18px calc(14px + env(safe-area-inset-bottom, 0px)); }
.gp__head { display: flex; align-items: center; justify-content: space-between; padding-top: 8px; }
.gp__head b { font-size: 19px; font-weight: 700; color: #16251a; }
.gp__close { display: grid; place-items: center; width: 28px; height: 28px; border: 0; background: none; color: #8b978a; }
.gp__close svg { width: 16px; height: 16px; }
.gp__sub { margin-top: 4px; font-size: 12.5px; color: #8b978a; }
.gp__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 9px;
  max-height: min(46vh, 330px);
  margin-top: 14px;
  padding-right: 2px;
  overflow-y: auto;
}
.gp__item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 3px;
  height: 38px;
  border: 1px solid #e9ece7;
  border-radius: 7px;
  background: #f8f9f6;
  font-size: 13.5px;
  color: #3c443a;
}
.gp__item.is-on { background: #edf5e9; border-color: #7fae7c; color: #2f6c42; font-weight: 600; }
.gp__item svg { width: 11px; height: 11px; stroke-width: 2.6; }
.gp__foot { display: flex; justify-content: center; margin-top: 14px; }
.gp__ok { width: 190px; height: 44px; border: 0; border-radius: 8px; background: #347348; color: #fff; font-size: 15.5px; font-weight: 600; }

/* ================= 第九轮：我的客服 / 实名认证 / 个人资料 ================= */

/* ---------- 我的客服 ---------- */
.sv-page {
  min-height: 100vh;
  background: linear-gradient(180deg, #d8ead2 0%, #e6f0de 16%, #f0f5ea 34%, #f7f8f2 50%, #f4f7ef 100%);
}
.sv-wrap { padding: 22px 23px 40px; }
.sv-card {
  padding: 104px 21px 112px;
  background: #f8f8f8;
  border-radius: 10px;
  box-shadow: 0 1px 2px rgba(32, 48, 32, 0.04);
}
.sv-paper {
  padding: 18px 16px 16px;
  background-color: #f9f9f9;
  background-image: repeating-linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.75) 0 1px,
    rgba(0, 0, 0, 0) 1px 3px
  );
  border-radius: 5px;
}
.sv-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.sv-company {
  padding: 2px 0 0 18px;
  font-size: 14px;
  letter-spacing: 0.3px;
  color: #7d7d7d;
}
.sv-logo { display: block; text-align: center; }
.sv-logo svg { width: 40px; height: 40px; margin: 0 auto; }
.sv-logo i {
  display: block;
  margin-top: 1px;
  font-style: normal;
  font-size: 8.5px;
  line-height: 1.25;
  letter-spacing: 0.2px;
  color: #2f8b48;
  white-space: nowrap;
}
.sv-dept {
  margin: 94px 0 22px;
  padding-left: 4px;
  font-size: 20.5px;
  line-height: 1.3;
  letter-spacing: 0.6px;
  color: #8b8b8b;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sv-qrbox {
  position: relative;
  display: grid;
  place-items: center;
  padding: 21px 0;
  background: #fff;
  border-radius: 2px;
}
.sv-qrbox > svg { width: 58%; height: auto; aspect-ratio: 1 / 1; }
/* 客服二维码改成后台上传的真实图片：等比放进 58% 方块里，中心徽标压在图上 */
.sv-qrbox__img {
  display: block;
  width: 58%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: contain;
}
.sv-qrbox__empty {
  display: grid;
  place-items: center;
  width: 58%;
  aspect-ratio: 1 / 1;
  padding: 0 10px;
  font-size: 12px;
  line-height: 1.5;
  text-align: center;
  color: #9c9c96;
}
.sv-qrbox__mark {
  position: absolute;
  left: 50%;
  top: 50%;
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border-radius: 11px;
  background: #fff;
  color: #111;
  transform: translate(-50%, -50%);
}
.sv-qrbox__mark svg { width: 36px; height: 36px; }
.sv-tip {
  margin-top: 48px;
  text-align: center;
  font-size: 13.5px;
  letter-spacing: 0.3px;
  color: #b3b3b3;
}
.sv-channel {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  margin-top: 26px;
  font-size: 13.5px;
  color: #bdbdbd;
}
.sv-channel svg { width: 17px; height: 17px; }

/* ---------- 实名认证 ---------- */
.vf-page { background: #f5f7fb; }
.vf-hero {
  position: relative;
  margin: 0 8px;
  padding: 24px 110px 26px 20px;
  background: linear-gradient(104deg, #eef7e9 0%, #f1f9f2 44%, #f6fbfb 100%);
  border-radius: 8px;
}
.vf-hero h1 {
  margin: 0;
  font-size: clamp(18px, 4.9vw, 20px);
  line-height: 1.35;
  font-weight: 700;
  letter-spacing: -0.2px;
  color: #1d2420;
}
.vf-hero p {
  margin: 8px 0 0;
  font-size: 13px;
  line-height: 1.7;
  color: #7c867e;
}
.vf-hero__orb {
  position: absolute;
  top: 20px;
  right: 24px;
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  border-radius: 50%;
  color: #fff;
  background: radial-gradient(circle at 32% 26%, #5a9cf2, #2f7de1 78%);
  box-shadow: 0 6px 14px rgba(47, 125, 225, 0.24);
}
.vf-hero__orb svg { width: 27px; height: 27px; }
@media (max-width: 390px) {
  .vf-hero { padding-right: 88px; }
}
.vf-card {
  margin: 15px 8px 0;
  padding: 16px;
  background: #fff;
  border-radius: 9px;
}
.vf-status { display: flex; align-items: center; gap: 12px; }
.vf-status__ico {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #eef5ff;
  color: #2f7de1;
}
.vf-status__ico svg { width: 20px; height: 20px; }
.vf-status__body i {
  display: block;
  font-style: normal;
  font-size: 12px;
  color: #8f96a0;
}
.vf-status__body b {
  display: block;
  margin-top: 1px;
  font-size: 17px;
  font-weight: 700;
  color: #1e2328;
}
.vf-notes h2 {
  margin: 0 0 12px;
  font-size: 15.5px;
  font-weight: 700;
  color: #1e2328;
}
.vf-notes li {
  position: relative;
  padding-left: 13px;
  margin-top: 11px;
  font-size: 13px;
  line-height: 1.7;
  color: #5a6167;
}
.vf-notes li::before {
  content: '';
  position: absolute;
  left: 1px;
  top: 8px;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #2f7de1;
}
.vf-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  width: 190px;
  height: 42px;
  margin: 26px auto 0;
  border-radius: 999px;
  font-size: 15.5px;
  font-weight: 600;
  color: #fff;
  background: linear-gradient(180deg, #4d8ae8, #2f6bd6);
  box-shadow: 0 6px 14px rgba(47, 107, 214, 0.22);
}
.vf-cta svg { width: 17px; height: 17px; }

/* ---------- 个人资料 ---------- */
.prf-page {
  min-height: 100vh;
  padding-bottom: calc(78px + env(safe-area-inset-bottom, 0px));
  background: #f5f7f6;
}
.prf-card {
  margin: 12px;
  padding: 16px;
  background: #fff;
  border-radius: 12px;
}
.prf-card__title {
  margin: 0;
  font-size: 16.5px;
  font-weight: 700;
  letter-spacing: -0.1px;
  color: #22272a;
}
.prf-card__head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.prf-card__title--line {
  padding-bottom: 13px;
  border-bottom: 1px solid #eff2ed;
}
.prf-tag {
  padding: 5px 10px;
  border-radius: 999px;
  background: #f1f2f0;
  font-size: 12px;
  color: #9a9d97;
}

.prf-nick { display: flex; align-items: center; gap: 12px; margin-top: 12px; }
.prf-nick__ava {
  position: relative;
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #eef3ea;
  color: #a7bfa0;
  flex: none;
}
.prf-nick__ava > svg { width: 30px; height: 30px; }
.prf-nick__badge {
  position: absolute;
  right: -1px;
  bottom: -1px;
  display: grid;
  place-items: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 2px solid #fff;
  background: #2fb268;
  color: #fff;
}
.prf-nick__badge svg { width: 12px; height: 12px; }
.prf-nick__body { display: block; flex: 1; min-width: 0; }
.prf-nick__body > span { display: block; font-size: 12px; color: #8b928c; }
.prf-nick__body input {
  width: 100%;
  padding: 2px 0 0;
  border: 0;
  background: none;
  outline: none;
  font-size: 15px;
  color: #2a2f2c;
}

.prf-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 0;
  border-bottom: 1px solid #f2f3f0;
}
.prf-card .prf-row:first-of-type { padding-top: 16px; }
.prf-row__label { flex: none; width: 70px; font-size: 14px; color: #33383b; }
.prf-row__value {
  flex: 1;
  min-width: 0;
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0.2px;
  color: #2f3437;
}
/* 点「更换」后同一行换成填写框，位置与字号跟只读值保持一致 */
.prf-row input {
  flex: 1;
  min-width: 0;
  border: 0;
  background: none;
  outline: none;
  font-size: 15px;
  color: #2f3437;
}
.prf-chip {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  flex: none;
  height: 29px;
  padding: 0 11px;
  border-radius: 7px;
  background: #e9f3e5;
  font-size: 12.5px;
  color: #35814b;
}
.prf-chip svg { width: 13px; height: 13px; }
.prf-box {
  margin-top: 14px;
  border: 1px solid #f1f2ee;
  border-radius: 8px;
  background: #f8f9f6;
}
.prf-field { display: block; width: 100%; padding: 11px 12px; text-align: left; }
.prf-field + .prf-field { border-top: 1px solid #eeefeb; }
.prf-field i { display: block; font-style: normal; font-size: 11.5px; color: #9aa09a; }
.prf-field em {
  display: block;
  margin-top: 3px;
  font-style: normal;
  font-size: 14.5px;
  color: #3c423d;
}
.prf-field em.is-empty { color: #b0b5af; }
.prf-field--input input {
  width: 100%;
  margin-top: 3px;
  padding: 0;
  border: 0;
  background: none;
  outline: none;
  font-size: 14.5px;
  color: #3c423d;
}

.prf-line {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 16px 0;
  border-bottom: 1px solid #f2f3f0;
}
.prf-line > span { flex: none; width: 70px; font-size: 14px; color: #33383b; }
.prf-line input {
  flex: 1;
  min-width: 0;
  border: 0;
  background: none;
  outline: none;
  font-size: 14.5px;
  color: #33383b;
}
.prf-label { margin: 16px 0 10px; font-size: 14px; color: #33383b; }
.prf-roles { display: flex; gap: 9px; }
.prf-role {
  flex: 1;
  height: 40px;
  border: 1px solid #e7ebe6;
  border-radius: 7px;
  background: #fafcfa;
  font-size: 14.5px;
  color: #4b554d;
}
.prf-role.is-on {
  border-color: #cfe4c7;
  background: #eaf4e6;
  color: #2f7d45;
}
.prf-photohead {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 18px 0 10px;
  font-size: 14px;
  color: #33383b;
}
.prf-photohead em { font-style: normal; font-size: 13px; color: #a3a8a2; }
.prf-photos { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.prf-upload {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
  height: 106px;
  border: 1px dashed #d7dad3;
  border-radius: 8px;
  background: #fff;
  font-size: 13.5px;
  color: #8d9a88;
}
.prf-upload svg { width: 57px; height: 46px; color: #aab7a5; }
/* 已上传的证件照直接显示缩略图（尺寸与原占位图形一致，不撑高方框） */
.prf-upload img { width: 57px; height: 46px; object-fit: cover; border-radius: 4px; }
.prf-privacy {
  display: block;
  margin: 18px auto 0;
  font-size: 13px;
  color: #7d8a7a;
}
.prf-bar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 45;
  width: 100%;
  max-width: 430px;
  margin: 0 auto;
  padding: 0 12px env(safe-area-inset-bottom, 0px);
}
.prf-save {
  display: block;
  width: 100%;
  height: 58px;
  border-radius: 10px 10px 0 0;
  background: #347c48;
  font-size: 17px;
  font-weight: 600;
  color: #fff;
}
.prf-card > .prf-line:last-child { border-bottom: 0; padding-bottom: 4px; }

/* 登录页：微信一键 → 短信验证码 / 密码，显示哪些由后台开关决定 */
.lg-page { min-height: 100vh; padding-bottom: 36px; background: #fff; }
.lg-hero { padding: 30px 20px 20px; text-align: center; }
.lg-hero__logo {
  display: inline-grid;
  place-items: center;
  width: 60px;
  height: 60px;
  border-radius: 18px;
  background: #eef5ec;
  color: #2f6c42;
}
.lg-hero__logo svg { width: 32px; height: 32px; }
.lg-hero__title { margin: 14px 0 0; font-size: 22px; font-weight: 700; color: #1b1f1c; }
.lg-hero__sub { margin: 6px 0 0; font-size: 13px; color: #8a918b; }

.lg-card {
  margin: 0 12px;
  padding: 18px 16px 20px;
  border: 1px solid #f1f2ee;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(24, 30, 25, 0.04), 0 6px 18px rgba(24, 30, 25, 0.045);
}

.lg-wechat {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  height: 48px;
  border-radius: 10px;
  background: #2f6c42;
  font-size: 15.5px;
  font-weight: 600;
  color: #fff;
}
.lg-wechat__ico { display: inline-flex; }
.lg-wechat__ico svg { width: 20px; height: 20px; }

.lg-or {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 16px 0 6px;
  font-size: 11.5px;
  color: #9aa09a;
}
.lg-or::before, .lg-or::after { content: ''; flex: 1; height: 1px; background: #f0f1ed; }

.lg-tabs {
  display: flex;
  gap: 3px;
  margin-top: 12px;
  padding: 3px;
  border-radius: 9px;
  background: #f4f6f2;
}
.lg-tab {
  flex: 1;
  height: 36px;
  border-radius: 7px;
  font-size: 13.5px;
  color: #6d746e;
}
.lg-tab.is-on {
  background: #fff;
  font-weight: 600;
  color: #2f6c42;
  box-shadow: 0 1px 3px rgba(24, 30, 25, 0.08);
}

.lg-form { display: grid; gap: 12px; margin-top: 14px; }
.lg-field { display: block; }
.lg-field__label { display: block; margin-bottom: 6px; font-size: 12.5px; color: #6d746e; }
.lg-input {
  display: block;
  width: 100%;
  height: 46px;
  padding: 0 12px;
  border: 1px solid #e9ebe6;
  border-radius: 9px;
  background: #fafbf9;
  font-size: 15px;
  color: #1b1f1c;
  outline: none;
}
.lg-input:focus { border-color: #bcdcc0; background: #fff; }
.lg-code { display: flex; gap: 8px; }
.lg-code .lg-input { flex: 1; min-width: 0; }
.lg-code__btn {
  flex: none;
  height: 46px;
  padding: 0 13px;
  border: 1px solid #cfe4c7;
  border-radius: 9px;
  background: #eef5ec;
  font-size: 13.5px;
  color: #2f6c42;
}
.lg-code__btn.is-off { border-color: #e9ebe6; background: #f4f6f2; color: #9aa09a; }

.lg-submit {
  width: 100%;
  height: 48px;
  margin-top: 4px;
  border-radius: 10px;
  background: #2f6c42;
  font-size: 16px;
  font-weight: 600;
  color: #fff;
}
.lg-switch { justify-self: center; font-size: 13px; color: #6d746e; }

.lg-card--user { margin-top: 16px; }
.lg-user { display: flex; align-items: center; gap: 12px; }
.lg-user__ava {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: #eef5ec;
  color: #2f6c42;
}
.lg-user__ava svg { width: 28px; height: 28px; }
.lg-user__body { flex: 1; min-width: 0; }
.lg-user__body b { display: block; font-size: 17px; font-weight: 700; color: #1b1f1c; }
.lg-user__body i { display: block; margin-top: 3px; font-style: normal; font-size: 12.5px; color: #8a918b; }
.lg-out {
  width: 100%;
  height: 44px;
  margin-top: 18px;
  border: 1px solid #e9ebe6;
  border-radius: 9px;
  background: #fff;
  font-size: 15px;
  color: #6d746e;
}

/* ---------- 富文本编辑器（发布表单正文，与后台 summernote 同一份 HTML 口径） ---------- */
/* 编辑器不是独立控件，是「一个高一点的输入框」：底色/边框/圆角/占位色全部跟它所在表单的
   同级输入框同源（基准取发布农活 .pub-input：#ecece6 边、4px 圆角、#fafaf7 底、#b3b8b2 占位）。
   工具条不自带底色（此前是 #fff 一条白条，字段是彩底时就割裂），按钮不自带药丸底
   （此前五个统一 #f2f4f0 灰块，与绿色系/蓝色系表单都脱节），只靠字形与按压反馈区分。 */
.rt {
  position: relative;
  border: 1px solid #ecece6;
  border-radius: 4px;
  background: #fafaf7;
  overflow: hidden;
}
.rt:focus-within { border-color: #2f5c46; background: #fff; }
.rt-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 7px 9px;
  border-bottom: 1px solid #ecece6;
  background: transparent;
}
.rt-btn {
  min-width: 30px;
  height: 28px;
  padding: 0 8px;
  border: 0;
  border-radius: 4px;
  background: transparent;
  font-size: 13px;
  line-height: 1;
  color: #55604f;
  cursor: pointer;
}
.rt-btn:active { background: #e3efe0; color: #2f6c42; }
/* 字形本身表意，不再靠灰底药丸 */
.rt-btn[data-rt-cmd="bold"] { font-weight: 700; }
.rt-btn[data-rt-cmd="italic"] { font-style: italic; }
.rt-btn[data-rt-cmd="underline"] { text-decoration: underline; }
.rt-body {
  min-height: 118px;
  padding: 12px 13px;
  font-size: 14px;
  line-height: 1.65;
  color: #23281f;
  outline: 0;
  word-break: break-word;
}
.rt-body:empty::before {
  content: attr(data-placeholder);
  color: #b3b8b2;
  pointer-events: none;
}
.rt-count {
  padding: 0 12px 8px;
  text-align: right;
  font-size: 11.5px;
  color: #a9a9a2;
}
/* 发布向导（绿色系 #/join）：对齐 .pf-input */
.rt--pf {
  border: 0;
  border-radius: 8px;
  background: #f9fcf7;
  box-shadow: inset 0 0 0 1px #dcead6;
}
.rt--pf:focus-within { box-shadow: inset 0 0 0 1px #9cc78f; background: #f9fcf7; }
.rt--pf .rt-bar { border-bottom: 1px solid #e4efdd; }
.rt--pf .rt-btn { color: #4b584b; }
.rt--pf .rt-btn:active { background: #e3efe0; color: #2f6c42; }
.rt--pf .rt-body { min-height: 92px; font-size: 13.5px; line-height: 1.75; color: #23282f; }
.rt--pf .rt-body:empty::before { color: #aab4aa; }
.rt--pf .rt-count { color: #9aa09a; }
/* 发布农机（蓝色系 #/publish-machine）：对齐 .pm-page .pub-input */
.rt--pm {
  border-color: #e3e9f6;
  border-radius: 0;
  background: #f8faff;
}
.rt--pm:focus-within { border-color: #b9c7da; background: #fff; }
.rt--pm .rt-bar { border-bottom-color: #e3e9f6; }
.rt--pm .rt-btn { color: #5b636e; }
.rt--pm .rt-btn:active { background: #eaf1fd; color: #2f6fd6; }
.rt--pm .rt-body { min-height: 96px; font-size: 13.5px; line-height: 1.7; color: #23282f; }
.rt--pm .rt-body:empty::before { color: #9aa3b2; }
.rt--pm .rt-count { color: #8d949c; }

/* 详情页正文按富文本排版：列表、图片、引用、小标题都要能正常显示 */
.detail-body.is-rich,
.md-desc.is-rich,
.fd-intro { line-height: 1.78; word-break: break-word; }
.detail-body.is-rich p,
.md-desc.is-rich p,
.fd-intro p { margin: 0 0 8px; }
.detail-body.is-rich p:last-child,
.md-desc.is-rich p:last-child,
.fd-intro p:last-child { margin-bottom: 0; }
.detail-body.is-rich img,
.md-desc.is-rich img,
.fd-intro img { display: block; max-width: 100%; height: auto; margin: 10px 0; border-radius: 8px; }
.detail-body.is-rich ul,
.detail-body.is-rich ol,
.md-desc.is-rich ul,
.md-desc.is-rich ol,
.fd-intro ul,
.fd-intro ol { margin: 8px 0; padding-left: 20px; }
.detail-body.is-rich li,
.md-desc.is-rich li,
.fd-intro li { margin: 3px 0; }
.detail-body.is-rich blockquote,
.md-desc.is-rich blockquote,
.fd-intro blockquote {
  margin: 10px 0;
  padding: 8px 12px;
  border-left: 3px solid #cfe3c7;
  background: #f7fbf4;
  color: #4a5349;
}
.detail-body.is-rich h2,
.detail-body.is-rich h3,
.detail-body.is-rich h4,
.md-desc.is-rich h2,
.md-desc.is-rich h3,
.md-desc.is-rich h4,
.fd-intro h2,
.fd-intro h3,
.fd-intro h4 { margin: 12px 0 6px; font-size: 16px; font-weight: 700; color: #1b1f1c; }
.detail-body.is-rich a,
.md-desc.is-rich a,
.fd-intro a { color: #2f6c42; text-decoration: underline; }
.fd-range { display: block; }
.fd-intro + .fd-intro:not(:empty) { margin-top: 6px; }

/* ==================================================
   支付结果页：网关付款页付完同步跳回 /h5/#/pay-result?order_no=xxx 的落点
   （正文那一小块由 payResultBodyHtml() 按查单结果重绘，这里只出四态的色）
   ================================================== */
.pr-card {
  margin: 10px 12px 0;
  padding: 28px 18px 26px;
  background: #fff;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  text-align: center;
}
.pr-state__ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  border-radius: 50%;
}
.pr-state__ico svg { width: 27px; height: 27px; stroke-width: 2.1; }
.pr-state.is-ok .pr-state__ico { background: #e7f7ee; color: #17854a; }
.pr-state.is-wait .pr-state__ico { background: #e9f3fd; color: #2f88d8; }
.pr-state.is-warn .pr-state__ico { background: #fdf1e2; color: #e07f18; }
.pr-state__title { margin-top: 13px; font-size: 17px; font-weight: 700; line-height: 1.5; color: #1b1f1c; }
.pr-state__line { margin-top: 6px; font-size: 12.5px; line-height: 1.7; color: #6d746e; }
.pr-state + .pr-btn, .pr-card .pr-btn { margin-top: 16px; width: 100%; }
.pr-no {
  margin: 12px 12px 0;
  padding: 10px 12px;
  border-radius: 10px;
  background: #f7f8f5;
  font-size: 12px;
  color: #6d746e;
  text-align: center;
}
.pr-no b { font-weight: 600; letter-spacing: 0.3px; color: #1b1f1c; }
.pr-foot { display: flex; gap: 10px; margin: 14px 12px 0; }
.pr-btn {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 44px;
  border: 0;
  border-radius: 10px;
  font-size: 15px;
  font-weight: 600;
}
.pr-btn--primary { background: #21a05a; color: #fff; }
.pr-btn--ghost { background: #fff; color: #3c423d; box-shadow: inset 0 0 0 1px var(--line-strong); }
.pr-btn[disabled] { opacity: 0.5; }

/* ==================================================
   会员中心「广告推广」：可售广告位列表（价格与尺寸都由后台下发）
   ================================================== */
.adp-page { background: #f6f7f5; }
.adp-page .navbar { background: #fff; }
.adp-intro {
  position: relative;
  overflow: hidden;
  margin: 10px 12px 0;
  padding: 16px 16px 15px;
  border-radius: 12px;
  color: #fff;
  background: linear-gradient(100deg, #2e9e50 0%, #3aa55b 58%, #46b06b 100%);
}
.adp-intro::after {
  content: '';
  position: absolute;
  right: -28px;
  bottom: -58px;
  width: 148px;
  height: 148px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.13);
}
.adp-intro__title { position: relative; font-size: 16px; font-weight: 700; }
.adp-intro__desc { position: relative; margin-top: 5px; font-size: 12px; line-height: 1.7; color: rgba(255, 255, 255, 0.92); }
.adp-list { display: flex; flex-direction: column; gap: 8px; padding: 10px 12px 0; }
.adp-item { padding: 13px 14px 14px; border-radius: 12px; background: #fff; }
.adp-item__head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.adp-item__name { min-width: 0; font-size: 15px; font-weight: 700; color: #1b241c; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.adp-item__price { flex: none; font-size: 19px; font-weight: 800; color: #df541d; }
.adp-item__price em { margin-right: 1px; font-size: 12px; font-style: normal; }
.adp-item__size { margin-top: 6px; font-size: 12px; line-height: 1.6; color: #8b9399; }
/* 位置预览（本轮AH）：左侧迷你页面图 + 右侧位置说明与尺寸。
   块高与间距按 88×118 的框算过，各位置最多 118px，超出部分裁掉（overflow:hidden）不撑破卡片。 */
.adp-item__preview { display: flex; align-items: center; gap: 12px; margin-top: 10px; }
.adp-mock {
  flex: none;
  display: flex;
  flex-direction: column;
  gap: 4px;
  width: 88px;
  height: 118px;
  padding: 5px;
  overflow: hidden;
  border: 1px solid #e4e8e2;
  border-radius: 8px;
  background: #fff;
}
.adp-mock i { display: block; flex: none; border-radius: 2px; background: #eef1ec; }
.adp-mock__nav { height: 9px; background: #e2e8e1 !important; }
.adp-mock__search { width: 82%; height: 8px; background: #f1f4f0 !important; }
.adp-mock__banner { height: 16px; background: #e7efe6 !important; }
.adp-mock__tabs { width: 58%; height: 8px; }
.adp-mock__filter { height: 13px; }
.adp-mock__hero { height: 26px; background: #eaeeea !important; }
.adp-mock__title { width: 56%; height: 6px; background: #dfe5df !important; }
.adp-mock__card { height: 16px; }
.adp-mock__join { height: 13px; background: #eaf2e8 !important; }
.adp-mock__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 3px; }
.adp-mock__grid i { height: 12px; border-radius: 3px; }
.adp-mock__photos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3px; }
.adp-mock__photos i { height: 14px; border-radius: 3px; }
.adp-mock__lines { display: flex; flex-direction: column; gap: 3px; }
.adp-mock__lines i { height: 4px; }
.adp-mock__lines i + i { width: 72%; }
.adp-mock__slot {
  display: grid;
  flex: none;
  gap: 2px;
  padding: 2px;
  border: 1px dashed #3f9c58;
  border-radius: 3px;
  background: rgba(63, 156, 88, 0.12);
}
.adp-mock__slot b {
  display: grid;
  place-items: center;
  aspect-ratio: 2 / 1;
  border-radius: 2px;
  background: #3f9c58;
  color: #fff;
  font-size: 8px;
  font-weight: 600;
  line-height: 1;
}
.adp-mock--home .adp-mock__slot b { aspect-ratio: 15 / 7; }
.adp-item__meta { display: flex; flex: 1; flex-direction: column; gap: 4px; min-width: 0; }
.adp-item__where { font-size: 12px; line-height: 1.55; color: #5d655f; }
.adp-item__where b { color: #1f7a3d; font-weight: 600; }
.adp-item__preview .adp-item__size { margin-top: 0; }
.adp-item__hint { font-size: 11px; line-height: 1.6; color: #9aa09a; }
.adp-item__buy {
  width: 100%;
  height: 38px;
  margin-top: 11px;
  border: 0;
  border-radius: 9px;
  font-size: 14.5px;
  font-weight: 650;
  color: #fff;
  background: #2e9e50;
  box-shadow: 0 6px 14px rgba(46, 158, 80, 0.18);
}
.adp-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 12px 12px 0;
  padding: 11px 13px;
  border-radius: 10px;
  background: #eef8f0;
  font-size: 11.5px;
  line-height: 1.6;
  color: #3c6b4b;
}
.adp-foot__btn {
  flex: none;
  height: 30px;
  padding: 0 13px;
  border: 0;
  border-radius: 15px;
  font-size: 12.5px;
  font-weight: 600;
  color: #2e9e50;
  background: #fff;
  box-shadow: inset 0 0 0 1px #cfe6d6;
}

/* 广告位付款成功弹层：没有自动到账的权益，靠这里把客服二维码递到付款人手里 */
.adp-paid {
  position: relative;
  padding: 30px 18px 16px;
  border-radius: 16px;
  background: #fff;
  text-align: center;
  box-shadow: 0 18px 48px rgba(15, 25, 18, 0.22);
}
.adp-paid__x {
  position: absolute;
  top: 10px;
  right: 10px;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  color: #9aa09a;
  background: #f4f5f4;
}
.adp-paid__x svg { width: 13px; height: 13px; }
.adp-paid__ico {
  display: grid;
  place-items: center;
  width: 50px;
  height: 50px;
  margin: 2px auto 0;
  border-radius: 50%;
  color: #fff;
  background: #3aa55b;
  box-shadow: 0 0 0 9px #eef8f0;
}
.adp-paid__ico svg { width: 26px; height: 26px; }
.adp-paid__title { margin-top: 13px; font-size: 17px; font-weight: 700; color: #1b1f1c; }
.adp-paid__lead { margin-top: 7px; font-size: 12.5px; line-height: 1.75; color: #6d746e; }
.adp-paid__no {
  margin-top: 8px;
  font-size: 11px;
  line-height: 1.6;
  color: #8d948e;
  word-break: break-all;
}
.adp-paid__qrbox {
  display: grid;
  place-items: center;
  width: 190px;
  min-height: 190px;
  margin: 14px auto 0;
  padding: 8px;
  border-radius: 10px;
  background: #fff;
  box-shadow: inset 0 0 0 1px #e9ece7;
}
.adp-paid__qr { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; border-radius: 4px; object-fit: contain; }
.adp-paid__empty { padding: 0 8px; font-size: 11.5px; line-height: 1.7; color: #9aa09a; }
.adp-paid__ok {
  width: 100%;
  height: 40px;
  margin-top: 14px;
  border: 0;
  border-radius: 9px;
  font-size: 15px;
  font-weight: 650;
  color: #fff;
  background: #2e9e50;
}
/* 支付结果页同款二维码块（#/pay-result 场景 ad） */
.pr-qr { display: flex; justify-content: center; margin-top: 14px; }
