/* ==== app.css ==== */
/* ===== 一针十线 · 月老相亲 原型样式 =====
   微信内置浏览器优先：100vh、单层滚动、-webkit- 前缀
*/

* { margin: 0; padding: 0; box-sizing: border-box; -webkit-tap-highlight-color: transparent; }

html, body {
  height: 100%;
  overflow: hidden;
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  background: #f5f3ef;
  color: #2b2b2b;
  -webkit-font-smoothing: antialiased;
}

:root {
  --ink: #2b2b2b;
  --ink-2: #6b6b6b;
  --ink-3: #9a9a9a;
  --gold: #b8894a;
  --gold-soft: #f0e3d2;
  --red: #a63b2f;
  --line: #e6e0d6;
  --card: #fffdf9;
  --ok: #4a7c59;
  --warn: #c08a2e;
}

#app {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* ===== 顶栏 ===== */
.topbar {
  flex: 0 0 auto;
  height: 48px;
  display: flex;
  align-items: center;
  padding: 0 14px;
  background: #2b2b2b;
  color: #f0e3d2;
  position: relative;
}
.topbar .back {
  width: 40px;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
}
.topbar .title {
  flex: 1;
  text-align: center;
  font-size: 16px;
  letter-spacing: 2px;
  font-weight: 500;
}
.topbar .right {
  width: 40px;
  text-align: right;
  font-size: 12px;
  color: #c9b48f;
}

/* ===== 单层滚动区 ===== */
.scroll {
  flex: 1 1 auto;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 24px;
}

/* ===== 首页头部 ===== */
.hero {
  background: #2b2b2b;
  color: #f0e3d2;
  padding: 18px 20px 26px;
  position: relative;
}
.hero h1 {
  font-size: 21px;
  letter-spacing: 3px;
  font-weight: 500;
  margin-bottom: 6px;
}
.hero p {
  font-size: 12px;
  color: #a89madd;
  color: #a89a7e;
  line-height: 1.7;
  letter-spacing: 1px;
}
.hero .seal {
  position: absolute;
  right: 18px;
  top: 16px;
  width: 54px;
  height: 54px;
  border: 1px solid #6b5a3e;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  color: #8a7characters;
  color: #8a7a5e;
  line-height: 1.2;
  text-align: center;
  letter-spacing: 1px;
}

/* ===== 筛选 ===== */
.filters {
  display: flex;
  gap: 8px;
  padding: 14px 16px 10px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  background: #f5f3ef;
}
.filters::-webkit-scrollbar { display: none; }
.chip {
  flex: 0 0 auto;
  padding: 7px 15px;
  border: 1px solid var(--line);
  border-radius: 20px;
  font-size: 13px;
  background: #fff;
  color: var(--ink-2);
  cursor: pointer;
  transition: all .15s;
}
.chip.on {
  background: #2b2b2b;
  color: #f0e3d2;
  border-color: #2b2b2b;
}

/* ===== 月老卡片 ===== */
.cards { padding: 4px 16px; }

.ycard {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 12px;
  box-shadow: 0 1px 2px rgba(0,0,0,.03);
  cursor: pointer;
}

.yc-head {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding-bottom: 12px;
  border-bottom: 1px dashed var(--line);
}

.avatar {
  flex: 0 0 auto;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: linear-gradient(135deg, #d8c9b0, #b8a382);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  color: #fff;
  font-weight: 500;
  letter-spacing: 1px;
}

.yc-info { flex: 1; min-width: 0; }
.yc-name {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 5px;
}
.yc-name b {
  font-size: 16px;
  font-weight: 600;
}
.level {
  font-size: 10px;
  padding: 1px 6px;
  border-radius: 3px;
  background: var(--gold-soft);
  color: var(--gold);
  border: 1px solid #e0d0b8;
}
.level.gold { background: #fbeccb; color: #a5731b; }
.level.senior { background: #e9e4f5; color: #5f4b8b; }
.level.formal { background: #e4eef5; color: #3d6b8a; }

.yc-meta {
  font-size: 12px;
  color: var(--ink-3);
  line-height: 1.6;
}
.yc-score {
  flex: 0 0 auto;
  text-align: center;
  padding-left: 8px;
}
.yc-score .num {
  font-size: 20px;
  color: var(--ok);
  font-weight: 600;
  line-height: 1;
}
.yc-score .lbl {
  font-size: 10px;
  color: var(--ink-3);
  margin-top: 3px;
}

.yc-word {
  font-size: 13px;
  color: var(--ink);
  line-height: 1.75;
  padding: 12px 0 10px;
  font-style: italic;
}
.yc-word::before {
  content: "「";
  color: var(--gold);
}
.yc-word::after {
  content: "」";
  color: var(--gold);
}

.yc-pool {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 10px 0;
  border-top: 1px dashed var(--line);
}
.pooltag {
  font-size: 11px;
  padding: 3px 8px;
  background: #f5f1ea;
  color: var(--ink-2);
  border-radius: 4px;
}
.pooltag b { color: var(--gold); font-weight: 600; }

.yc-actions {
  display: flex;
  gap: 8px;
  padding-top: 12px;
  border-top: 1px dashed var(--line);
}
.btn {
  flex: 1;
  padding: 10px;
  border: none;
  border-radius: 8px;
  font-size: 14px;
  cursor: pointer;
  font-family: inherit;
  transition: opacity .15s;
}
.btn:active { opacity: .8; }
.btn-main { background: #2b2b2b; color: #f0e3d2; }
.btn-ghost { background: #f0ebe3; color: var(--ink-2); }

/* ===== 详情页 ===== */
.detail-head {
  background: #2b2b2b;
  color: #f0e3d2;
  padding: 20px;
  display: flex;
  gap: 14px;
  align-items: center;
}
.detail-head .avatar {
  width: 64px; height: 64px; font-size: 22px;
  background: linear-gradient(135deg, #6b5a3e, #4a3f2b);
}
.detail-head .dh-info b { font-size: 19px; }
.detail-head .dh-info .sub {
  font-size: 12px;
  color: #a89a7e;
  margin-top: 5px;
  line-height: 1.6;
}

.section {
  background: var(--card);
  margin: 12px 16px;
  border-radius: 12px;
  border: 1px solid var(--line);
  padding: 16px;
}
.section h3 {
  font-size: 14px;
  color: var(--gold);
  margin-bottom: 12px;
  font-weight: 600;
  letter-spacing: 1px;
}
.section h3 small {
  color: var(--ink-3);
  font-weight: 400;
  font-size: 11px;
  margin-left: 6px;
  letter-spacing: 0;
}

.kv {
  display: flex;
  justify-content: space-between;
  padding: 8px 0;
  font-size: 13px;
  border-bottom: 1px solid #f2ede5;
}
.kv:last-child { border-bottom: none; }
.kv .k { color: var(--ink-2); }
.kv .v { color: var(--ink); font-weight: 500; }

/* 人的牌 */
.pool-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}
.pool-cell {
  background: #f9f6f1;
  border-radius: 8px;
  padding: 10px;
  text-align: center;
}
.pool-cell .n {
  font-size: 19px;
  color: var(--gold);
  font-weight: 600;
  line-height: 1.2;
}
.pool-cell .t {
  font-size: 11px;
  color: var(--ink-3);
  margin-top: 3px;
}

/* 不接什么 */
.refuse {
  background: #fdf6f4;
  border-left: 3px solid var(--red);
  padding: 10px 12px;
  font-size: 13px;
  color: #8a4a3f;
  line-height: 1.7;
  border-radius: 4px;
}

/* 活动 */
.act {
  display: flex;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px dashed var(--line);
  cursor: pointer;
}
.act:last-child { border-bottom: none; }
.act-date {
  flex: 0 0 auto;
  width: 52px;
  text-align: center;
  background: #2b2b2b;
  color: #f0e3d2;
  border-radius: 8px;
  padding: 8px 0;
}
.act-date .d { font-size: 18px; font-weight: 600; line-height: 1; }
.act-date .m { font-size: 10px; opacity: .7; margin-top: 3px; }
.act-body { flex: 1; min-width: 0; }
.act-body b { font-size: 14px; display: block; margin-bottom: 5px; }
.act-body .am { font-size: 12px; color: var(--ink-3); line-height: 1.6; }
.act-price {
  flex: 0 0 auto;
  text-align: right;
  font-size: 15px;
  color: var(--red);
  font-weight: 600;
  align-self: center;
}
.act-price small { display: block; font-size: 10px; color: var(--ink-3); font-weight: 400; margin-top: 2px; }

/* ===== 报名页 ===== */
.fee-sheet {
  background: var(--card);
  margin: 12px 16px;
  border-radius: 12px;
  border: 1px solid var(--line);
  overflow: hidden;
}
.fee-row {
  display: flex;
  justify-content: space-between;
  padding: 14px 16px;
  font-size: 14px;
  border-bottom: 1px solid #f2ede5;
}
.fee-row .lbl { color: var(--ink-2); }
.fee-row .lbl small {
  display: block;
  font-size: 11px;
  color: var(--ink-3);
  margin-top: 3px;
}
.fee-row .amt { font-weight: 500; }
.fee-row.aa { background: #f7f7f5; }
.fee-row.aa .amt { color: var(--ink-2); }
.fee-row.total {
  background: #2b2b2b;
  color: #f0e3d2;
  border-bottom: none;
  font-size: 16px;
}
.fee-row.total .lbl { color: #c9b48f; }
.fee-row.total .amt { color: #f0e3d2; font-size: 20px; font-weight: 600; }
.fee-note {
  padding: 10px 16px;
  font-size: 11px;
  color: var(--ink-3);
  background: #faf8f4;
  line-height: 1.7;
  border-top: 1px solid #f2ede5;
}

/* ===== 底部按钮 ===== */
.footbar {
  flex: 0 0 auto;
  padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
  background: #fffdf9;
  border-top: 1px solid var(--line);
}
.footbar .btn { padding: 14px; font-size: 16px; letter-spacing: 1px; }

/* ===== 我的 ===== */
.wallet {
  margin: 12px 16px;
  background: #2b2b2b;
  color: #f0e3d2;
  border-radius: 14px;
  padding: 20px;
}
.wallet .wb { font-size: 12px; color: #a89a7e; letter-spacing: 1px; }
.wallet .balance {
  font-size: 34px;
  font-weight: 600;
  margin: 8px 0 4px;
  letter-spacing: 1px;
}
.wallet .balance small { font-size: 14px; opacity: .7; margin-left: 4px; }
.wallet .wsub { font-size: 12px; color: #a89a7e; }
.wallet .btns { display: flex; gap: 8px; margin-top: 16px; }
.wallet .btns button {
  flex: 1;
  padding: 9px;
  border: 1px solid #6b5a3e;
  background: transparent;
  color: #f0e3d2;
  border-radius: 8px;
  font-size: 13px;
  font-family: inherit;
  cursor: pointer;
}

.ledger-item {
  display: flex;
  justify-content: space-between;
  padding: 13px 0;
  border-bottom: 1px solid #f2ede5;
  font-size: 13px;
}
.ledger-item:last-child { border-bottom: none; }
.lg-l .t { color: var(--ink); margin-bottom: 4px; }
.lg-l .d { font-size: 11px; color: var(--ink-3); }
.lg-r { text-align: right; }
.lg-r .a { font-weight: 600; color: var(--red); }
.lg-r .a.in { color: var(--ok); }

/* 储值档 */
.tier {
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 14px;
  margin-bottom: 10px;
  background: #fff;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.tier.best {
  border-color: var(--gold);
  background: #fffdf6;
  box-shadow: 0 0 0 1px var(--gold) inset;
}
.tier .ti-name { font-size: 15px; font-weight: 600; margin-bottom: 4px; }
.tier .ti-desc { font-size: 11px; color: var(--ink-3); line-height: 1.6; }
.tier .ti-price {
  text-align: right;
}
.tier .ti-price .p { font-size: 22px; color: var(--red); font-weight: 600; }
.tier .ti-price .u { font-size: 11px; color: var(--ink-3); }

/* ===== 空态 / 提示 ===== */
.toast {
  position: fixed;
  left: 50%;
  bottom: 90px;
  transform: translateX(-50%);
  background: rgba(43,43,43,.92);
  color: #f0e3d2;
  padding: 10px 20px;
  border-radius: 20px;
  font-size: 13px;
  z-index: 100;
  white-space: nowrap;
  animation: fadein .2s;
}
@keyframes fadein { from { opacity: 0; transform: translate(-50%, 8px); } to { opacity: 1; transform: translate(-50%, 0); } }

.tip-line {
  text-align: center;
  font-size: 11px;
  color: var(--ink-3);
  padding: 16px;
  line-height: 1.8;
}

.badge-ok {
  display: inline-block;
  font-size: 10px;
  padding: 2px 6px;
  border-radius: 3px;
  background: #e8f2ea;
  color: var(--ok);
  margin-left: 4px;
}

;
/* ==== extra.css ==== */
﻿/* ==== 补充样式：月老端 & 通用组件 ==== */

/* 钱包按钮 */
.wallet .btns .wbtn {
  flex: 1; padding: 9px; border: 1px solid #6b5a3e; background: transparent;
  color: #f0e3d2; border-radius: 8px; font-size: 13px; font-family: inherit; cursor: pointer;
}

/* 底部导航 */
.bottomnav {
  flex: 0 0 auto; display: flex; background: #fffdf9;
  border-top: 1px solid var(--line); padding-bottom: env(safe-area-inset-bottom);
}
.bottomnav .nv { flex: 1; text-align: center; padding: 8px 0 7px; font-size: 10px; color: var(--ink-3); cursor: pointer; }
.bottomnav .nv.on { color: #2b2b2b; font-weight: 600; }
.bottomnav .ni { display: block; font-size: 15px; line-height: 1.4; margin-bottom: 1px; }

/* 待办 */
.todo { display: flex; align-items: center; gap: 8px; padding: 12px 0; border-bottom: 1px solid #f2ede5; font-size: 13px; cursor: pointer; }
.todo:last-child { border-bottom: none; }
.todo .dot { flex: 0 0 auto; width: 7px; height: 7px; border-radius: 50%; background: #c9c1b4; }
.todo.urgent .dot { background: var(--red); }
.todo .txt { flex: 1; color: var(--ink); line-height: 1.5; }
.todo .arrow { color: var(--ink-3); font-size: 16px; }

/* 快捷入口 */
.quick { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin: 12px 16px; }
.quick .qi { background: var(--card); border: 1px solid var(--line); border-radius: 10px; padding: 14px 0; text-align: center; cursor: pointer; }
.quick .qi:active { background: #f7f4ee; }
.quick .ic { font-size: 18px; color: var(--gold); line-height: 1.3; }
.quick .il { font-size: 11px; color: var(--ink-2); margin-top: 3px; }

/* 会员卡（月老端） */
.mcard { background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 14px; margin: 0 16px 12px; }
.mc-head { display: flex; gap: 10px; align-items: center; }
.avatar.sm { width: 40px; height: 40px; font-size: 15px; flex: 0 0 auto; }
.mc-info { flex: 1; min-width: 0; }
.mc-name b { font-size: 15px; }
.mc-name .tagst { font-size: 11px; color: var(--ink-3); margin-left: 6px; }
.mc-meta { font-size: 11px; color: var(--ink-3); margin-top: 3px; }
.mc-right { text-align: center; flex: 0 0 auto; }
.mc-served { font-size: 18px; color: var(--gold); font-weight: 600; line-height: 1; }
.mc-slbl { font-size: 9px; color: var(--ink-3); margin-top: 2px; }
.mc-note { font-size: 12px; color: var(--ink-2); line-height: 1.65; padding: 10px 0; border-top: 1px dashed var(--line); margin-top: 10px; }
.mc-actions { display: flex; gap: 8px; padding-top: 10px; border-top: 1px dashed var(--line); }
.btn.sm { padding: 8px; font-size: 13px; }

/* 共享池 */
.scard { background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 14px; margin: 0 16px 12px; }
.scard.mine { border-color: #cfd9e2; background: #fafcfd; }
.sc-head { display: flex; gap: 10px; align-items: center; }
.sc-info { flex: 1; min-width: 0; }
.sc-name b { font-size: 15px; }
.sc-name .tagst { font-size: 11px; color: var(--ink-3); margin-left: 6px; }
.sc-owner { font-size: 11px; color: var(--ink-3); margin-top: 3px; }
.badge-mine { font-size: 9px; background: #e4eef5; color: #3d6b8a; padding: 1px 5px; border-radius: 3px; }
.sc-tags { display: flex; flex-wrap: wrap; gap: 5px; padding: 10px 0 8px; }
.sc-want { font-size: 12px; color: var(--ink-2); background: #f7f4ee; border-radius: 6px; padding: 8px 10px; line-height: 1.6; }
.sc-want b { color: var(--gold); }
.sc-note { font-size: 12px; color: var(--ink-2); line-height: 1.65; padding: 9px 0 0; font-style: italic; }
.sc-foot { display: flex; align-items: center; justify-content: space-between; padding-top: 10px; margin-top: 10px; border-top: 1px dashed var(--line); }
.sc-replies { font-size: 11px; color: var(--ink-3); }
.sc-self { font-size: 11px; color: var(--ink-3); }
.sc-foot .btn { flex: 0 0 auto; padding: 8px 14px; }

/* 消息列表 */
.chatrow { display: flex; gap: 10px; align-items: center; padding: 13px 0; border-bottom: 1px solid #f2ede5; cursor: pointer; }
.chatrow:last-child { border-bottom: none; }
.ch-info { flex: 1; min-width: 0; }
.ch-top { display: flex; justify-content: space-between; align-items: baseline; }
.ch-top b { font-size: 14px; }
.ch-time { font-size: 10px; color: var(--ink-3); }
.ch-last { font-size: 12px; color: var(--ink-3); margin-top: 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ch-badge { flex: 0 0 auto; min-width: 17px; height: 17px; line-height: 17px; text-align: center; background: var(--red); color: #fff; border-radius: 9px; font-size: 10px; padding: 0 5px; }

/* 合作账 */
.collab { padding: 11px 0; border-bottom: 1px dashed var(--line); }
.collab:last-child { border-bottom: none; }
.cb-top { display: flex; justify-content: space-between; align-items: center; }
.cb-top b { font-size: 14px; }
.cb-status { font-size: 10px; padding: 2px 7px; border-radius: 3px; }
.cb-status.ok { background: #e8f2ea; color: var(--ok); }
.cb-status.wait { background: #fdf0d9; color: var(--warn); }
.cb-body { font-size: 13px; color: var(--ink); margin-top: 5px; }
.cb-split { font-size: 11px; color: var(--ink-3); margin-top: 4px; }

/* 聊天气泡 */
.msglist { padding: 4px 16px 20px; }
.bubble-row { margin-bottom: 14px; }
.bubble-row.me { text-align: right; }
.bubble { display: inline-block; max-width: 76%; padding: 10px 13px; border-radius: 12px; font-size: 13px; line-height: 1.65; text-align: left; word-break: break-word; }
.b-other { background: #fffdf9; border: 1px solid var(--line); border-top-left-radius: 3px; }
.b-me { background: #2b2b2b; color: #f0e3d2; border-top-right-radius: 3px; }
.b-time { font-size: 10px; color: var(--ink-3); margin-top: 4px; padding: 0 4px; }

/* 聊天输入 */
.chatfoot { display: flex; gap: 8px; align-items: center; }
.chatfoot .chatinput { flex: 1; padding: 11px 13px; border: 1px solid var(--line); border-radius: 8px; font-size: 14px; font-family: inherit; background: #fff; color: var(--ink); outline: none; }
.chatfoot .btn { flex: 0 0 auto; padding: 11px 18px; }

/* 表单 */
.formrow { display: flex; align-items: center; padding: 11px 0; border-bottom: 1px solid #f2ede5; font-size: 13px; }
.formrow:last-child { border-bottom: none; }
.formrow label { flex: 0 0 96px; color: var(--ink-2); }
.formrow input, .formrow select { flex: 1; border: none; outline: none; font-size: 13px; font-family: inherit; color: var(--ink); background: transparent; padding: 4px 0; }
.formrow input::placeholder { color: #c4bdb1; }

/* ===== 动态流（活动上首页） ===== */
.cfilters { display: flex; gap: 7px; padding: 12px 16px 6px; overflow-x: auto; -webkit-overflow-scrolling: touch; background: #f5f3ef; }
.cfilters::-webkit-scrollbar { display: none; }
.cfilters .chip { padding: 6px 13px; font-size: 12px; }
.feed { padding: 6px 16px 0; }
.fitem { background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 14px; margin-bottom: 12px; cursor: pointer; }
.fi-top { display: flex; align-items: center; gap: 9px; padding-bottom: 10px; }
.fi-av { width: 34px; height: 34px; border-radius: 50%; background: linear-gradient(135deg, #d8c9b0, #b8a382); color: #fff; font-size: 13px; display: flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.fi-who { flex: 1; min-width: 0; }
.fi-who b { font-size: 13px; }
.fi-who .lv { font-size: 9px; padding: 1px 5px; border-radius: 3px; background: var(--gold-soft); color: var(--gold); border: 1px solid #e0d0b8; margin-left: 5px; }
.fi-who .city { font-size: 10px; color: var(--ink-3); margin-top: 2px; }
.fi-when { font-size: 10px; color: var(--ink-3); flex: 0 0 auto; }
.fi-title { font-size: 16px; font-weight: 600; line-height: 1.45; margin-bottom: 6px; color: var(--ink); }
.fi-desc { font-size: 12px; color: var(--ink-2); line-height: 1.65; margin-bottom: 10px; }
.fi-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 11px; }
.fi-tag { font-size: 10px; padding: 3px 8px; background: #f5f1ea; color: var(--ink-2); border-radius: 4px; }
.fi-tag.hot { background: #fdf0d9; color: var(--warn); }
.fi-tag.new { background: #e8f2ea; color: var(--ok); }
.fi-bar { display: flex; align-items: center; justify-content: space-between; padding-top: 11px; border-top: 1px dashed var(--line); }
.fi-price { font-size: 17px; color: var(--red); font-weight: 600; }
.fi-price small { font-size: 10px; color: var(--ink-3); font-weight: 400; margin-left: 2px; }
.fi-btn { padding: 8px 16px; background: #2b2b2b; color: #f0e3d2; border: none; border-radius: 8px; font-size: 13px; font-family: inherit; cursor: pointer; }
.fi-left { font-size: 11px; color: var(--ok); }

/* 城市切换 */
.citybar { display: flex; align-items: center; gap: 6px; padding: 10px 16px; background: #f5f3ef; font-size: 12px; color: var(--ink-2); border-bottom: 1px solid var(--line); }
.citybar .cb-city { font-weight: 600; color: var(--ink); font-size: 13px; }
.citybar .cb-hint { color: var(--ink-3); font-size: 11px; }
.citybar .cb-all { margin-left: auto; padding: 3px 10px; border: 1px solid var(--line); border-radius: 12px; background: #fff; font-size: 11px; cursor: pointer; color: var(--ink-2); }
.citybar .cb-all.on { background: #2b2b2b; color: #f0e3d2; border-color: #2b2b2b; }

/* 分段（月老墙 / 活动动态） */
.segbar { display: flex; background: #f5f3ef; padding: 0 16px; gap: 4px; border-bottom: 1px solid var(--line); }
.segbar .sg { flex: 1; text-align: center; padding: 12px 0 10px; font-size: 14px; color: var(--ink-3); border-bottom: 2px solid transparent; cursor: pointer; }
.segbar .sg.on { color: var(--ink); font-weight: 600; border-bottom-color: #2b2b2b; }

/* ===== 认证（平台审 + 月老审） ===== */
.authrow { display: flex; gap: 9px; align-items: flex-start; padding: 10px 0; border-bottom: 1px solid #f2ede5; }
.authrow:last-of-type { border-bottom: none; }
.authrow .achk { flex: 0 0 18px; height: 18px; line-height: 18px; text-align: center; border-radius: 50%; font-size: 11px; background: #e8f2ea; color: #4a7c59; font-weight: 700; }
.authrow.ng .achk { background: #fce4e4; color: #a63b2f; }
.authrow .atxt b { font-size: 13px; display: block; }
.authrow .atxt small { font-size: 11px; color: #9a9a9a; }
.authcheck { border: 1px solid #e6e0d6; border-radius: 8px; overflow: hidden; }
.ac-item { display: flex; justify-content: space-between; align-items: center; padding: 11px 12px; border-bottom: 1px solid #f2ede5; font-size: 13px; }
.ac-item:last-child { border-bottom: none; }
.ac-l { color: #2b2b2b; }
.ac-r { display: flex; gap: 6px; }
.ac-r .yn { padding: 2px 10px; border: 1px solid #e6e0d6; border-radius: 4px; font-size: 11px; color: #9a9a9a; }
.ac-r .yn.yes { background: #e8f2ea; color: #4a7c59; border-color: #c5dfcd; }
.ac-r .yn.no { background: #fce4e4; color: #a63b2f; border-color: #eec7c7; }
.signed-box { margin: 12px 16px 20px; background: #e8f2ea; border: 1px solid #c5dfcd; border-radius: 12px; padding: 18px; text-align: center; }
.signed-box .sb-title { font-size: 16px; color: #4a7c59; font-weight: 600; margin-bottom: 6px; }
.signed-box .sb-sub { font-size: 12px; color: #6b8a72; }

/* ===== 红娘 / 月老 偏好与标签 ===== */
.prefbar { display: flex; align-items: center; gap: 7px; padding: 10px 16px 4px; font-size: 12px; color: #6b6b6b; }
.prefbar .pb-label { flex: 0 0 auto; }
.prefbar .pb { padding: 5px 12px; border: 1px solid #e6e0d6; border-radius: 14px; background: #fff; font-size: 12px; color: #6b6b6b; cursor: pointer; }
.prefbar .pb.on { background: #2b2b2b; color: #f0e3d2; border-color: #2b2b2b; }
.prefbar .pb-switch { margin-left: auto; font-size: 11px; color: #b8894a; cursor: pointer; flex: 0 0 auto; }
.roletag { display: inline-block; font-size: 10px; padding: 1px 6px; border-radius: 3px; margin-right: 4px; }
.roletag.female { background: #fbe9ef; color: #a8416b; }
.roletag.male { background: #e6eef6; color: #35618c; }
.roleline { margin-top: 4px; }
.oppo-box { background: #f7f4ee; border-left: 3px solid #b8894a; padding: 9px 12px; font-size: 12px; color: #5b5b5b; line-height: 1.7; border-radius: 4px; margin-bottom: 12px; }
.oppo-box b { color: #a63b2f; font-size: 15px; padding: 0 2px; }

/* ===== 进门：选身份 ===== */
.gate { padding: 46px 16px 18px; text-align: center; }
.gate-title { font-size: 23px; color: #2b2b2b; letter-spacing: 1px; margin-bottom: 8px; }
.gate-sub { font-size: 12px; color: #9a9a9a; }
.gate-cards { padding: 0 16px; }
.gcard { background: #fffdf9; border: 1px solid #e6e0d6; border-radius: 14px; padding: 22px 18px; margin-bottom: 14px; cursor: pointer; text-align: center; }
.gcard:active { background: #f7f4ee; }
.gc-ic { width: 46px; height: 46px; line-height: 46px; border-radius: 50%; margin: 0 auto 12px; background: #f0ece4; color: #8a7a5f; font-size: 19px; }
.gc-t { font-size: 17px; color: #2b2b2b; margin-bottom: 8px; }
.gc-d { font-size: 12px; color: #7a7a7a; line-height: 1.8; }
.gc-d span { color: #b8894a; }

/* ===== 会员「三不要」硬条件 ===== */
.ng-intro {
  padding: 18px 16px 14px;
  font-size: 13px;
  line-height: 1.9;
  color: #5b5b5b;
  background: #faf8f4;
  border-bottom: 1px solid #e6e0d6;
}
.ng-intro b { color: #a63b2f; }
.ng-intro span { font-size: 11px; color: #9a9a9a; }

.ng-list { padding: 10px 16px; }
.ng-item {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 13px 14px;
  border: 1px solid #e6e0d6;
  border-radius: 10px;
  margin-bottom: 9px;
  background: #fffdf9;
  cursor: pointer;
}
.ng-item.on {
  border-color: #c08a2e;
  background: #fffaf0;
}
.ng-check {
  flex: 0 0 20px;
  height: 20px;
  line-height: 20px;
  text-align: center;
  border: 1px solid #d8d0c4;
  border-radius: 50%;
  font-size: 12px;
  color: #fff;
  background: #fff;
}
.ng-item.on .ng-check {
  background: #c08a2e;
  border-color: #c08a2e;
}
.ng-txt b { font-size: 14px; display: block; color: #2b2b2b; }
.ng-txt small { font-size: 11px; color: #9a9a9a; }

.ng-preview {
  position: relative;
  padding: 12px 26px 12px 0;
  cursor: pointer;
  line-height: 2;
}
.ng-tag {
  display: inline-block;
  font-size: 11px;
  padding: 3px 9px;
  background: #fff3e0;
  color: #a63b2f;
  border: 1px solid #f0dcc0;
  border-radius: 4px;
  margin: 0 5px 5px 0;
}
.ng-tag.sm { font-size: 10px; padding: 2px 7px; margin: 0 4px 3px 0; }
.ng-empty { font-size: 12px; color: #b0a89c; }
.ng-arrow {
  position: absolute;
  right: 0;
  top: 50%;
  margin-top: -10px;
  color: #c4bdb1;
  font-size: 18px;
}

.mc-ngo {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 9px 0;
  border-bottom: 1px dashed #f2ede5;
  font-size: 13px;
}
.mc-ngo:last-child { border-bottom: none; }
.mc-ngo b {
  flex: 0 0 64px;
  font-size: 13px;
  color: #2b2b2b;
  padding-top: 2px;
}
.ngo-tags { flex: 1; }


.ng-note {
  font-size: 11px;
  color: #a63b2f;
  background: #fdf4f2;
  border-left: 3px solid #e0b0a8;
  padding: 8px 10px;
  border-radius: 4px;
  margin: 8px 0 4px;
  line-height: 1.7;
}


/* ===== 核验：加购 / 任务 / 分数 ===== */
.vf-intro {
  padding: 16px;
  font-size: 13px;
  line-height: 1.9;
  color: #5b5b5b;
  background: #faf8f4;
  border-bottom: 1px solid #e6e0d6;
}
.vf-intro b { color: #a63b2f; }
.vf-intro span { font-size: 11px; color: #9a9a9a; }

.vf-base {
  margin: 12px 16px 4px;
  border: 1px solid #e6e0d6;
  border-radius: 12px;
  padding: 14px;
  background: #fffdf9;
}
.vf-base.on { border-color: #c08a2e; background: #fffaf0; }
.vb-head { display: flex; justify-content: space-between; align-items: baseline; }
.vb-head b { font-size: 15px; color: #2b2b2b; }
.vb-price { font-size: 18px; color: #a63b2f; font-weight: 600; }
.vb-desc { font-size: 12px; color: #7a7a7a; margin-top: 6px; }
.vb-note { font-size: 11px; color: #b8894a; margin-top: 6px; }

.vf-list { margin: 0; }
.vf-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border-bottom: 1px solid #f2ede5;
  background: #fff;
  cursor: pointer;
}
.vf-item.on { background: #fffaf0; }
.vi-main { flex: 1; min-width: 0; }
.vi-main b { font-size: 14px; display: block; color: #2b2b2b; }
.vi-main small { font-size: 11px; color: #9a9a9a; }
.vi-right { flex: 0 0 auto; display: flex; align-items: center; gap: 9px; }
.vi-price { font-size: 14px; color: #a63b2f; width: 46px; text-align: right; }
.vi-split { font-size: 10px; color: #b0a89c; width: 66px; text-align: right; }
.vi-check {
  width: 22px; height: 22px; line-height: 22px; text-align: center;
  border: 1px solid #d8d0c4; border-radius: 50%; font-size: 12px;
  color: #c4bdb1; background: #fff;
}
.vf-item.on .vi-check { background: #c08a2e; border-color: #c08a2e; color: #fff; }

.vf-foot { display: flex; align-items: center; gap: 10px; }
.vff-left { flex: 1; }
.vff-total { font-size: 17px; color: #a63b2f; font-weight: 600; }
.vff-split { font-size: 10px; color: #9a9a9a; margin-top: 2px; }

/* 月老端核验任务 */
.vt-stat { display: flex; text-align: center; padding: 12px 0 4px; }
.vt-stat .vs-cell { flex: 1; }
.vt-stat .vs-cell .n { font-size: 22px; color: #b8894a; font-weight: 600; line-height: 1.2; }
.vt-stat .vs-cell .t { font-size: 11px; color: #9a9a9a; margin-top: 3px; }

.vt-item {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #fffdf9;
  border: 1px solid #e6e0d6;
  border-radius: 10px;
  padding: 12px 14px;
  margin-bottom: 10px;
}
.vt-item.done { background: #f6f9f6; border-color: #ccdccf; }
.vt-left { flex: 1; min-width: 0; }
.vt-left b { font-size: 14px; display: block; color: #2b2b2b; }
.vt-left small { font-size: 11px; color: #9a9a9a; }
.vt-addr { font-size: 11px; color: #c4bdb1; margin-top: 3px; }
.vt-right { flex: 0 0 auto; text-align: center; }
.vt-money { font-size: 15px; color: #a63b2f; font-weight: 600; }
.vt-btn {
  margin-top: 5px; padding: 6px 14px; background: #2b2b2b; color: #f0e3d2;
  border: none; border-radius: 6px; font-size: 12px; font-family: inherit; cursor: pointer;
}
.vt-done { margin-top: 5px; font-size: 11px; color: #4a7c59; }

/* 详情页：核实成绩 */
.vscore-box {
  background: #f7f4ee;
  border-radius: 10px;
  padding: 12px 14px;
  margin-bottom: 12px;
}
.vsb-top { display: flex; align-items: baseline; gap: 8px; }
.vsb-num { font-size: 24px; color: #b8894a; font-weight: 600; }
.vsb-lbl { font-size: 11px; color: #9a9a9a; }
.vsb-line { font-size: 12px; color: #5b5b5b; margin-top: 5px; }
.vsb-warn { font-size: 11px; color: #a63b2f; margin-top: 6px; }


/* ===== 基础资料页 ===== */
.bs-intro {
  padding: 16px;
  font-size: 13px;
  line-height: 1.9;
  color: #5b5b5b;
  background: #faf8f4;
  border-bottom: 1px solid #e6e0d6;
}
.bs-intro b { color: #a63b2f; }
.bs-intro span { color: #2b2b2b; font-weight: 600; }
.bs-intro small { font-size: 11px; color: #9a9a9a; }

.bs-list { padding: 4px 16px 0; }
.bs-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 13px 0;
  border-bottom: 1px solid #f2ede5;
}
.bs-item:last-child { border-bottom: none; }
.bs-label {
  flex: 0 0 76px;
  font-size: 13px;
  color: #7a7a7a;
}
.bs-label .req { color: #a63b2f; font-style: normal; margin-left: 2px; }
.bs-val {
  flex: 1;
  font-size: 14px;
  color: #2b2b2b;
  text-align: right;
}
.bs-val .ph { color: #c4bdb1; font-size: 13px; }
.bs-flag {
  flex: 0 0 40px;
  text-align: center;
  font-size: 10px;
  color: #c4bdb1;
}
.bs-flag.ok { color: #4a7c59; }

.bs-item.empty .bs-val { color: #a63b2f; }

.bs-miss {
  margin: 14px 16px;
  padding: 12px 14px;
  background: #fdf4f2;
  border-left: 3px solid #e0b0a8;
  border-radius: 6px;
  font-size: 13px;
  color: #a63b2f;
  line-height: 1.8;
}
.bs-miss small { font-size: 11px; color: #b08080; }

.bs-ok {
  margin: 14px 16px;
  padding: 12px 14px;
  background: #f2f8f3;
  border-left: 3px solid #c5dfcd;
  border-radius: 6px;
  font-size: 12px;
  color: #4a7c59;
  line-height: 1.8;
}


.bs-entry {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 13px 14px;
  background: #fffdf9;
  border: 1px solid #e6e0d6;
  border-radius: 10px;
  font-size: 13px;
  cursor: pointer;
}
.bs-entry:active { background: #f7f4ee; }
.bs-e-left { color: #2b2b2b; }
.bs-e-right { color: #b8894a; font-size: 12px; }


.bs-flag.no { color: #a63b2f; }
.strict-note { color: #a63b2f; }


/* ===== 两档核验包 ===== */
.pack-title {
  padding: 14px 16px 6px;
  font-size: 13px;
  color: #7a7a7a;
  font-weight: 600;
}
.vf-base { cursor: pointer; position: relative; }
.vf-base.best { border-color: #c08a2e; background: #fffaf0; }
.vf-base.on { border-color: #c08a2e; background: #fffaf0; }
.vf-base.on::after {
  content: "已选";
  position: absolute;
  top: 10px;
  right: 12px;
  font-size: 10px;
  color: #fff;
  background: #c08a2e;
  padding: 1px 7px;
  border-radius: 3px;
}
.vb-save {
  font-size: 10px;
  color: #fff;
  background: #a63b2f;
  padding: 1px 6px;
  border-radius: 3px;
  margin-left: 6px;
}


/* ===== 代验 ===== */
.px-intro {
  padding: 16px;
  font-size: 13px;
  line-height: 1.9;
  color: #5b5b5b;
  background: #faf8f4;
  border-bottom: 1px solid #e6e0d6;
}
.px-intro b { color: #a63b2f; }
.px-intro span { font-size: 11px; color: #9a9a9a; }

.px-list { padding: 8px 16px 0; }
.px-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 13px 14px;
  border: 1px solid #e6e0d6;
  border-radius: 10px;
  margin-bottom: 9px;
  background: #fffdf9;
  cursor: pointer;
}
.px-item.on { border-color: #c08a2e; background: #fffaf0; }
.px-main { flex: 1; min-width: 0; }
.px-main b { font-size: 14px; display: block; color: #2b2b2b; }
.px-main small { font-size: 11px; color: #9a9a9a; }
.px-main .must {
  font-style: normal; font-size: 9px; background: #a63b2f; color: #fff;
  padding: 1px 5px; border-radius: 3px; margin-left: 6px;
}
.px-right { flex: 0 0 auto; display: flex; align-items: center; gap: 9px; }
.px-price { font-size: 14px; color: #a63b2f; width: 46px; text-align: right; }
.px-check {
  width: 22px; height: 22px; line-height: 22px; text-align: center;
  border: 1px solid #d8d0c4; border-radius: 50%; font-size: 12px;
  color: #c4bdb1; background: #fff;
}
.px-item.on .px-check { background: #c08a2e; border-color: #c08a2e; color: #fff; }

.px-ban {
  margin: 14px 16px;
  padding: 12px 14px;
  background: #fdf4f2;
  border-left: 3px solid #e0b0a8;
  border-radius: 6px;
  font-size: 12px;
  color: #8a5a50;
  line-height: 1.9;
}
.px-ban b { color: #a63b2f; display: block; margin-bottom: 4px; }
.px-ban small { font-size: 11px; color: #b08080; }

/* 代验卡片 */
.pc-card {
  background: #fffdf9;
  border: 1px solid #e6e0d6;
  border-radius: 12px;
  padding: 14px;
  margin: 0 16px 12px;
}
.pc-top { display: flex; align-items: center; gap: 10px; }
.pc-ava {
  width: 38px; height: 38px; line-height: 38px; text-align: center;
  border-radius: 50%; background: linear-gradient(135deg, #d8c9b0, #b8a382);
  color: #fff; font-size: 15px; flex: 0 0 auto;
}
.pc-name { flex: 1; min-width: 0; }
.pc-name b { font-size: 15px; color: #2b2b2b; }
.pc-items { font-size: 11px; color: #9a9a9a; margin-top: 3px; }
.pc-status { flex: 0 0 auto; font-size: 10px; padding: 2px 8px; border-radius: 3px; }
.pc-status.wait { background: #fdf0d9; color: #a67918; }
.pc-status.ok { background: #e8f2ea; color: #4a7c59; }
.pc-status.no { background: #fce4e4; color: #a63b2f; }

.pc-report { margin-top: 11px; padding-top: 10px; border-top: 1px dashed #e6e0d6; }
.pc-row {
  display: flex; justify-content: space-between; align-items: center;
  padding: 6px 0; font-size: 13px; color: #5b5b5b;
}
.pc-row b { font-size: 12px; }
.pc-row b.ok { color: #4a7c59; }
.pc-row b.fail { color: #a63b2f; }
.pc-row b.nm { color: #b8894a; }
.pc-foot { font-size: 10px; color: #b0a89c; margin-top: 8px; padding-top: 8px; border-top: 1px dashed #f0ece4; }
.pc-note { font-size: 11px; color: #9a9a9a; line-height: 1.8; margin-top: 10px; padding-top: 9px; border-top: 1px dashed #e6e0d6; }

/* 授权卡 */
.ct-card {
  background: #fffdf9;
  border: 1px solid #c08a2e;
  border-radius: 12px;
  padding: 16px;
  margin: 0 16px 14px;
}
.ct-head { font-size: 15px; color: #2b2b2b; font-weight: 600; line-height: 1.6; margin-bottom: 10px; }
.ct-items { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.ct-tag { font-size: 11px; background: #f5f1ea; color: #5b5b5b; padding: 3px 9px; border-radius: 4px; }
.ct-money { font-size: 17px; color: #a63b2f; font-weight: 600; margin-bottom: 10px; }
.ct-explain { font-size: 12px; color: #7a7a7a; line-height: 1.9; padding: 10px 0; border-top: 1px dashed #e6e0d6; }
.ct-explain b { color: #2b2b2b; }
.ct-btns { display: flex; gap: 10px; margin-top: 6px; }
.ct-btns button {
  flex: 1; padding: 12px; border-radius: 8px; font-size: 14px;
  font-family: inherit; cursor: pointer; border: 1px solid #d8d0c4;
  background: #fff; color: #7a7a7a;
}
.ct-btns .ct-yes { background: #2b2b2b; color: #f0e3d2; border-color: #2b2b2b; }

/* 我的页入口 */
.px-entry {
  display: flex; justify-content: space-between; align-items: center;
  padding: 13px 14px; background: #fffdf9; border: 1px solid #e6e0d6;
  border-radius: 10px; font-size: 13px; color: #2b2b2b; cursor: pointer;
  margin-bottom: 8px;
}
.px-entry:last-child { margin-bottom: 0; }
.px-entry.hot { border-color: #c08a2e; background: #fffaf0; }
.px-e-r { color: #b8894a; font-size: 12px; }
.px-entry.hot .px-e-r { color: #a63b2f; font-weight: 600; }

