/* ============================================================================
 * Go~ · 同路 OnTrail —— 唯一皮肤真源
 *
 * 令牌直接取自《宜宇_手机版_户外社交版_设计稿.html》，一个色值都没改。
 * 这里与主站 www.anyiyu.site 的 app.css **完全不共用** —— Go~ 有自己的视觉语言，
 * 两边 DOM/类名不同，共用只会互相污染。
 *
 * 改动规矩（与发版流程绑定）：
 *   改这里 → commit → bump ASSET_VER（nuxt.config.ts）→ 重新 build → 重启 go-web。
 *   不 bump 的话 <link href="/css/go.css?v=..."> 不变，用户端命中旧缓存，改了等于没改。
 * ========================================================================== */

:root {
  --bg: #FAFCFA; --card: #FFFFFF; --soft: #F4F8F5;
  --ink: #1F2A24; --ink2: #4A5A51; --ink3: #64786D; --ink4: #8C9A92;
  --line: #E2EBE4; --line2: #EDF2EE;
  --g600: #3F7D5C; --g500: #4C8F6B; --g100: #E7F1EA; --g50: #F2F8F4;
  --a700: #A9603A; --a600: #B96C43; --a100: #FBEDE2; --a50: #FDF6EF;
  --b600: #357197; --b100: #E9F1F7;
  --p600: #6B4790; --p100: #F1EBF7;
  --o600: #8C5024; --o100: #FBE6D2;
  --danger: #C4453B; --danger-bg: #FBEEED;
  --r: 16px; --r2: 20px; --r3: 12px; --r4: 8px;
  --sh: 0 1px 2px rgba(31, 42, 36, .05);
  --sh2: 0 2px 8px rgba(31, 42, 36, .06);
  --tb-h: 60px;
  --sb-h: env(safe-area-inset-top, 0px);
}

* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }

html, body { margin: 0; padding: 0; height: 100%; }

body {
  background: var(--bg);
  color: var(--ink);
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei",
               "Segoe UI", Roboto, sans-serif;
  font-size: 14px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

a { color: inherit; text-decoration: none; }
button { font-family: inherit; border: 0; background: none; cursor: pointer; color: inherit; }
img { display: block; max-width: 100%; }

/* ---------- 应用骨架 ---------- */
/* min-height 写两遍是刻意的：100dvh 不被支持时会整条声明作废，落到 100vh 仍有完整高度 */
.go-app { display: flex; flex-direction: column; min-height: 100vh; min-height: 100dvh; }
.go-scr { flex: 1; overflow-y: auto; overflow-x: hidden; -webkit-overflow-scrolling: touch; }

.go-statusbar {
  height: calc(44px + var(--sb-h)); flex: none;
  display: flex; align-items: flex-end; justify-content: space-between;
  padding: 0 22px 6px; font-size: 13px; font-weight: 600; background: var(--bg);
}
.go-statusbar .rt { display: flex; align-items: center; gap: 5px; }

/* ---------- 顶栏 ---------- */
.go-bar {
  height: 48px; flex: none; display: flex; align-items: center; gap: 10px;
  padding: 0 16px; background: var(--bg);
}
.go-bar .t { font-size: 17px; font-weight: 650; letter-spacing: -.2px; }
/* 未定位时位置栏可点（重新请求授权）—— 给个明确的可点击暗示 */
.go-bar .t.tap { cursor: pointer; color: var(--g600); border-bottom: 1px dashed var(--g500); }
.go-bar .sp { flex: 1; }
.go-iconbtn {
  width: 34px; height: 34px; border-radius: 11px; background: #fff;
  border: 1px solid var(--line); display: flex; align-items: center;
  justify-content: center; color: var(--ink2);
}

/* ---------- 底栏（五槽：搭子 / 活动 / 发起 / 消息 / 我的） ---------- */
.go-tb {
  flex: none; background: #fff; border-top: 1px solid var(--line);
  display: flex; align-items: stretch; padding-bottom: env(safe-area-inset-bottom, 0px);
}
.go-tb .it {
  flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 3px; padding: 8px 0 7px; color: var(--ink4); font-size: 10px; position: relative;
}
.go-tb .it.on { color: var(--g600); font-weight: 600; }
.go-tb .mid {
  width: 46px; height: 46px; border-radius: 16px; background: var(--g600); color: #fff;
  display: flex; align-items: center; justify-content: center; margin-top: -14px;
  box-shadow: 0 2px 8px rgba(63, 125, 92, .28);
}
.go-tb .it:active { opacity: .6; }
.go-tb .mid:active { transform: scale(.94); }
.go-tb .mid { transition: transform .14s ease; }
.go-dot {
  position: absolute; top: 6px; left: 50%; margin-left: 6px; min-width: 15px; height: 15px;
  padding: 0 4px; background: var(--danger); color: #fff; border-radius: 999px; font-size: 10px;
  font-weight: 600; display: flex; align-items: center; justify-content: center;
}

/* ---------- 通用组件 ---------- */
.go-ic { width: 18px; height: 18px; stroke: currentColor; fill: none; stroke-width: 1.8;
         stroke-linecap: round; stroke-linejoin: round; flex: none; }
.go-ic.s { width: 14px; height: 14px; }
.go-ic.l { width: 22px; height: 22px; }

.go-seg { display: flex; background: var(--soft); border-radius: 11px; padding: 3px; margin: 0 16px 12px; }
.go-seg button {
  flex: 1; font-size: 13px; padding: 7px 0; border-radius: 9px; background: transparent;
  color: var(--ink3); transition: all .16s ease;
}
.go-seg button.on { background: #fff; color: var(--g600); font-weight: 600; box-shadow: var(--sh); }

.go-card { background: var(--card); border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--sh); }
.go-pad { padding: 14px; }
.go-mx { margin: 0 16px 12px; }

.go-chip {
  display: inline-flex; align-items: center; gap: 4px; font-size: 11px; padding: 4px 9px;
  border-radius: 999px; background: var(--g50); color: #37714F; border: 1px solid #D8E8DE;
  white-space: nowrap;
}
.go-chip.a { background: var(--a50); color: #8C5024; border-color: #F0DCC9; }
.go-chip.b { background: var(--b100); color: #2F627F; border-color: #D6E5EF; }
.go-chip.n { background: #F4F6F5; color: #566B5F; border-color: var(--line2); }
.go-chip.o { background: var(--o100); color: var(--o600); border-color: #F0DCC0; }
.go-chip.p { background: var(--p100); color: var(--p600); border-color: #E3D8EF; }
/* 直线距离：用主色描边区分于其它中性 chip，一眼能认出「同城由近到远」的依据 */
.go-chip.k { background: var(--g50); color: var(--g600); border-color: var(--g100); }

.go-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  font-size: 14px; font-weight: 600; padding: 10px 16px; border-radius: var(--r3);
  background: var(--g600); color: #fff; transition: all .16s ease;
}
.go-btn:active { transform: translateY(1px); }
.go-btn.ghost { background: #fff; color: var(--g600); border: 1px solid #CFE0D5; }
.go-btn.amber { background: var(--a600); color: #fff; }
.go-btn.sm { font-size: 12.5px; padding: 7px 12px; }
.go-btn.block { width: 100%; }
.go-btn[disabled] { opacity: .55; pointer-events: none; }

/* ---------- 表单（发起页） ---------- */
.go-form { padding: 4px 16px 24px; }
.go-field { display: block; position: relative; margin-bottom: 16px; }
.go-label { display: block; font-size: 12.5px; color: var(--ink3); margin-bottom: 6px; font-weight: 600; }
.go-input {
  width: 100%; font-family: inherit; font-size: 15px; color: var(--ink); background: #fff;
  border: 1px solid var(--line); border-radius: var(--r3); padding: 11px 12px; outline: none;
}
.go-input::placeholder { color: var(--ink4); }
.go-input:focus { border-color: #A9C9B6; box-shadow: 0 0 0 3px rgba(76, 143, 107, .12); }
.go-ta { resize: none; line-height: 1.6; }
.go-count { position: absolute; right: 10px; bottom: 8px; font-size: 11px; color: var(--ink4); }

.go-pick { display: flex; gap: 8px; flex-wrap: wrap; }
.go-pick button {
  font-size: 13px; padding: 8px 14px; border-radius: 999px; background: #fff;
  border: 1px solid var(--line); color: var(--ink3); transition: all .16s ease;
}
.go-pick button.on { background: var(--g600); border-color: var(--g600); color: #fff; font-weight: 600; }

.go-err {
  margin: 0 0 12px; padding: 10px 12px; border-radius: var(--r4);
  background: var(--danger-bg); border: 1px solid #F0D5D2;
  color: #96332B; font-size: 12.5px; line-height: 1.6;
}

.go-av { border-radius: 50%; object-fit: cover; background: var(--soft); flex: none; }
.go-avgrp { display: flex; }
.go-avgrp .go-av { border: 2px solid #fff; margin-left: -8px; }
.go-avgrp .go-av:first-child { margin-left: 0; }

.go-empty { padding: 56px 24px; text-align: center; color: var(--ink3); }
.go-empty .big { font-size: 15px; color: var(--ink2); margin-bottom: 6px; }
.go-empty .sm { font-size: 12.5px; line-height: 1.7; }

.go-note {
  margin: 14px 16px; padding: 12px 14px; background: #F2F8F4; border: 1px solid #DCEAE0;
  border-radius: var(--r3); font-size: 12px; color: #3E5A4C; line-height: 1.7;
}
.go-note b { color: #2C4A3B; }

/* ---------- 搭子卡（首页主角） ---------- */
.go-buddy {
  background: var(--card); border: 1px solid var(--line); border-radius: var(--r);
  box-shadow: var(--sh); margin: 0 16px 12px; padding: 14px; display: flex; gap: 12px;
}
.go-buddy .ph { width: 62px; height: 62px; border-radius: 18px; object-fit: cover; flex: none; }
.go-buddy .bd { flex: 1; min-width: 0; }
.go-buddy .nm { font-size: 15.5px; font-weight: 650; display: flex; align-items: center; gap: 6px; }
.go-buddy .fit {
  margin-left: auto; font-size: 11px; font-weight: 700; color: var(--g600);
  background: var(--g100); border-radius: 999px; padding: 3px 8px; flex: none;
}
.go-buddy .want {
  margin-top: 6px; font-size: 13px; color: var(--ink2); line-height: 1.55;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.go-buddy .meta { margin-top: 8px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.go-buddy .acts { margin-top: 10px; display: flex; gap: 8px; }
.go-tip { margin: 8px 0 0; font-size: 11.5px; color: var(--g600); }
.go-empty .go-btn { margin-top: 4px; }

/* ---------- 活动卡 ---------- */
.go-act { margin: 0 16px 14px; border-radius: var(--r2); overflow: hidden; background: var(--card);
          border: 1px solid var(--line); box-shadow: var(--sh); }
.go-act .cover { position: relative; height: 168px; background: var(--soft); }
.go-act .cover img { width: 100%; height: 100%; object-fit: cover; }
.go-act .who {
  position: absolute; left: 12px; bottom: 12px; display: flex; align-items: center; gap: 8px;
  background: rgba(255, 255, 255, .94); border-radius: 999px; padding: 4px 10px 4px 4px;
  box-shadow: var(--sh2);
}
.go-act .who .n { font-size: 11.5px; color: var(--ink2); font-weight: 600; }
.go-act .body { padding: 12px 14px 14px; }
.go-act .ti { font-size: 15.5px; font-weight: 650; line-height: 1.4; }
.go-act .row { margin-top: 8px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }

/* ---------- 消息行 ---------- */
.go-mi { display: flex; align-items: center; gap: 10px; padding: 13px 14px; background: #fff;
         border-bottom: 1px solid var(--line2); }
.go-mi .bd { flex: 1; min-width: 0; }
.go-mi .nm { font-size: 14.5px; font-weight: 600; }
.go-mi .pv { margin-top: 2px; font-size: 12.5px; color: var(--ink3); overflow: hidden;
             text-overflow: ellipsis; white-space: nowrap; }

/* ---------- 我的 / 个人主页 ---------- */
.go-phdr { padding: 16px 16px 4px; display: flex; align-items: center; gap: 14px; }
.go-mstat { display: flex; gap: 0; margin: 12px 16px; background: #fff; border: 1px solid var(--line);
            border-radius: var(--r); overflow: hidden; box-shadow: var(--sh); }
.go-mstat .c { flex: 1; text-align: center; padding: 12px 0; }
.go-mstat .c + .c { border-left: 1px solid var(--line2); }
.go-mstat .v { font-size: 18px; font-weight: 700; color: var(--ink); font-variant-numeric: tabular-nums; }
.go-mstat .k { margin-top: 2px; font-size: 11.5px; color: var(--ink3); }

.go-cell { display: flex; align-items: center; gap: 10px; padding: 14px; font-size: 14px; color: var(--ink2); }
.go-cell + .go-cell { border-top: 1px solid var(--line2); }
.go-cell .sp { flex: 1; }
.go-cell .rt { color: var(--ink4); font-size: 12.5px; }

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
}


/* ==========================================================
   20260923g13 · 搭子卡对齐《同路人_手机版_社交版_设计稿》
   ★ 纯增量：新增选择器，不覆盖任何既有规则（ui整改.md 红线 5）
   ★ 令牌沿用既有 :root —— 与基准稿逐字一致，未改任何 token 名
   ★ 无 emoji / 无渐变 / 阴影只用既有 --sh --sh2
   ========================================================== */

/* 路线块：人是主角，路线是佐证。浅绿内嵌卡，图片 58 裁切不拉伸 */
.go-buddy .rt{
  margin-top:12px; display:flex; gap:10px; padding:10px;
  background:var(--g50); border-radius:var(--r3); border:1px solid #E4EFE8;
}
.go-buddy .rt .ri{
  width:58px; height:58px; border-radius:10px; object-fit:cover;
  flex:none; background:var(--soft);
}
.go-buddy .rt .rb{flex:1;min-width:0}
.go-buddy .rt .rt1{font-size:13px;font-weight:600;line-height:1.35;color:var(--ink)}
.go-buddy .rt .rt2{margin-top:2px;font-size:12px;color:var(--ink3)}
.go-buddy .rt .rt3{margin-top:5px;display:flex;gap:6px;align-items:center}
/* 缺几人：橙字强调（#A9603A 对 --g50 底对比度达标） */
.go-buddy .rt .need{font-size:12px;font-weight:600;color:var(--a700)}
.go-buddy .rt .have{font-size:11px;color:var(--ink4)}

/* 开场白建议：点一下直接发，省掉「第一句说什么」的空白
   高度取 36px（红线：按钮最小 36px），不用设计稿那种 26px 小 chip */
.go-buddy .opener{margin-top:10px;display:flex;gap:6px;flex-wrap:wrap}
.go-buddy .opener button{
  font-family:inherit; font-size:11px; padding:0 11px; min-height:36px;
  border-radius:999px; cursor:pointer; background:#F4F6F5; color:#566B5F;
  border:1px solid var(--line2); transition:all .16s ease;
}
.go-buddy .opener button:hover{border-color:#CBD9D0;color:var(--ink)}
.go-buddy .opener button:disabled{opacity:.45;cursor:not-allowed}
.go-buddy .opener .hint{
  flex:0 0 100%; margin-top:7px; font-size:11px; color:var(--ink4);
}

@media (prefers-reduced-motion: reduce){
  .go-buddy .opener button{transition:none}
}


/* ===== 20260923g17 我的页 1:1（纯增量，删掉本段即回滚；不覆盖任何既有选择器） ===== */
.go-mhdr { padding: 6px 16px 14px; display: flex; gap: 13px; align-items: center; }
.go-mhdr .av-lg { width: 68px; height: 68px; font-size: 25px; }
.go-mhdr .bd { flex: 1; min-width: 0; }
.go-mhdr .nm { font-size: 17px; font-weight: 650; display: flex; align-items: center; gap: 6px; }
.go-mhdr .sub { margin-top: 4px; font-size: 12px; color: var(--ink3); }
.go-mhdr .tags { margin-top: 5px; display: flex; gap: 5px; flex-wrap: wrap; }
.go-mstat .c .sub { margin-top: 2px; font-size: 10.5px; color: var(--ink4); }
.go-mstat .v.dim { color: var(--ink4); }
.go-amber { margin: 14px 16px 0; padding: 14px; background: var(--a50); border: 1px solid #F2E2D2;
  border-radius: var(--r); display: flex; align-items: center; gap: 12px; }
.go-amber .k { font-size: 11px; color: #8C5024; }
.go-amber .v { margin-top: 2px; font-size: 26px; font-weight: 650; color: #7A4520;
  letter-spacing: -.5px; font-variant-numeric: tabular-nums; }
.go-sec { padding: 14px 16px 8px; }
.go-sec h3 { margin: 0; font-size: 14px; font-weight: 650; color: var(--ink); }
.go-cell.lnk { min-height: 48px; text-decoration: none; transition: background .16s ease; }
.go-cell.lnk:active { background: var(--soft); }
@media (prefers-reduced-motion: reduce) { .go-cell.lnk { transition: none; } }


/* ===== 20260923g17 我的页 1:1（纯增量，删掉本段即回滚；不覆盖任何既有选择器） ===== */
.go-mhdr { padding: 6px 16px 14px; display: flex; gap: 13px; align-items: center; }
.go-mhdr .av-lg { width: 68px; height: 68px; font-size: 25px; }
.go-mhdr .bd { flex: 1; min-width: 0; }
.go-mhdr .nm { font-size: 17px; font-weight: 650; display: flex; align-items: center; gap: 6px; }
.go-mhdr .sub { margin-top: 4px; font-size: 12px; color: var(--ink3); }
.go-mhdr .tags { margin-top: 5px; display: flex; gap: 5px; flex-wrap: wrap; }
.go-mstat .c .sub { margin-top: 2px; font-size: 10.5px; color: var(--ink4); }
.go-mstat .v.dim { color: var(--ink4); }
.go-amber { margin: 14px 16px 0; padding: 14px; background: var(--a50); border: 1px solid #F2E2D2;
  border-radius: var(--r); display: flex; align-items: center; gap: 12px; }
.go-amber .k { font-size: 11px; color: #8C5024; }
.go-amber .v { margin-top: 2px; font-size: 26px; font-weight: 650; color: #7A4520;
  letter-spacing: -.5px; font-variant-numeric: tabular-nums; }
.go-sec { padding: 14px 16px 8px; }
.go-sec h3 { margin: 0; font-size: 14px; font-weight: 650; color: var(--ink); }
.go-cell.lnk { min-height: 48px; text-decoration: none; transition: background .16s ease; }
.go-cell.lnk:active { background: var(--soft); }
@media (prefers-reduced-motion: reduce) { .go-cell.lnk { transition: none; } }


/* ===== 20260923g21 全站 App 级手势（配套 plugins/gesture.client.ts；纯增量，删掉本段即回滚） =====
   · 只提供手势的状态反馈，不覆盖任何既有选择器；
   · 指示器 pointer-events:none，不拦点击；尊重 prefers-reduced-motion。 */
.go-gst { position: fixed; left: 50%; top: 10px; z-index: 90; transform: translate(-50%, -14px);
  display: flex; align-items: center; gap: 6px; padding: 7px 13px; border-radius: 999px;
  background: rgba(24, 32, 28, .86); color: #fff; font-size: 12.5px; line-height: 1;
  opacity: 0; pointer-events: none; transition: opacity .16s ease, transform .16s ease; }
.go-gst.on { opacity: 1; transform: translate(-50%, 0); }
.go-gst .ico { width: 13px; height: 13px; display: block; transition: transform .16s ease; }
.go-gst.flip .ico { transform: rotate(180deg); }
.go-gst .tx { font-style: normal; }
/* 滚到顶继续下拉时，不要触发浏览器自身的橡皮筋回弹，与网页手势二选一 */
.go-scr { overscroll-behavior-y: contain; }
@media (prefers-reduced-motion: reduce) {
  .go-gst, .go-gst .ico { transition: none; }
}



/* ===== 20260923g23 消息页 + 个人主页 1:1（纯增量；删掉本段即完整回滚，不覆盖任何既有选择器） =====
   ★ 令牌沿用既有 :root，未改任何 token 值
   ★ 无 emoji / 无渐变 / 阴影只用既有 --sh --sh2 / 动效 ≤ .16s
   ------------------------------------------------------------------ */

/* 首字母头像：没有真实头像时的兜底，纯装饰，不冒充照片 */
.go-av.txt {
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-weight: 600; font-size: 13px; border-radius: 50%; flex: none;
}
.go-av.txt.lg { width: 64px; height: 64px; font-size: 23px; }

/* ---------- 消息页 ---------- */
.go-sect { padding: 4px 16px 6px; font-size: 12px; color: var(--ink3); font-weight: 600; }
.go-lst { overflow: hidden; }
.go-mirow { display: flex; align-items: baseline; gap: 6px; }
.go-mirow .sp { flex: 1; }
.go-mirow .tm, .go-req .tm { font-size: 11px; color: var(--ink4); flex: none; }

/* 未读角标：数字来自 yiyu_yq_chat_thread.unread，真实值 */
.go-ud {
  min-width: 18px; height: 18px; padding: 0 5px; background: var(--danger); color: #fff;
  border-radius: 9px; font-size: 11px; line-height: 18px; text-align: center; flex: none;
}

/* 申请快捷入口 */
.go-reqentry {
  margin: 0 16px 12px; display: flex; align-items: center; gap: 10px; padding: 12px 14px;
  background: var(--a50); border: 1px solid #F0DCC9; border-radius: var(--r);
  transition: background .16s ease;
}
.go-reqentry:active { background: var(--a100); }
.go-reqentry .tx { flex: 1; font-size: 13px; color: #7A4520; font-weight: 600; }
.go-reqentry .arw { color: #8C5024; }
.go-reqentry .go-av.txt { width: 26px; height: 26px; font-size: 10px; }

/* 申请卡 */
.go-req .hd { display: flex; gap: 10px; align-items: flex-start; }
.go-req .hd .bd { flex: 1; min-width: 0; }
.go-req .r1 { display: flex; align-items: center; gap: 5px; }
.go-req .nm { font-size: 14px; font-weight: 600; }
.go-req .r1 .sp { flex: 1; }
.go-req .sub { margin-top: 3px; font-size: 12px; color: var(--ink3); }
.go-req .msg {
  margin-top: 8px; padding: 9px 11px; background: var(--soft); border-radius: 10px;
  font-size: 13px; color: var(--ink2); line-height: 1.6;
}
.go-req .acts { margin-top: 10px; display: flex; gap: 8px; }
.go-req .ig { flex: 0 0 76px; padding-left: 0; padding-right: 0; }
.go-req .done { margin-top: 10px; }

/* ---------- 个人主页 ---------- */
.go-uhead { position: relative; height: 150px; background: var(--g100); flex: none; overflow: hidden; }
.go-uhead .mnt {
  position: absolute; left: 0; bottom: 0; width: 100%; height: 96px;
  stroke: var(--g500); stroke-width: 1.8; fill: none; opacity: .45;
}
.go-ufab {
  position: absolute; left: 12px; top: 10px; width: 32px; height: 32px; border-radius: 11px;
  background: rgba(255, 255, 255, .92); display: flex; align-items: center;
  justify-content: center; color: var(--ink);
}
.go-ucard { padding: 0 16px 12px; }
.go-ucard .uc { padding-top: 22px; }
.go-ucard .top { display: flex; gap: 12px; align-items: flex-start; }
.go-ucard .lg { margin-top: -40px; border: 3px solid #fff; box-shadow: 0 1px 5px rgba(31, 42, 36, .14); }
.go-ucard .bd { flex: 1; min-width: 0; padding-top: 8px; }
.go-ucard .nm { font-size: 17px; font-weight: 650; }
.go-ucard .sub { margin-top: 4px; font-size: 12px; color: var(--ink3); }

.go-ustat {
  margin-top: 12px; display: flex; text-align: center;
  border-top: 1px solid var(--line2); padding-top: 11px;
}
.go-ustat .c { flex: 1; min-width: 0; }
.go-ustat .v { font-size: 16px; font-weight: 650; font-variant-numeric: tabular-nums; }
.go-ustat .v.dim { color: var(--ink4); }
.go-ustat .k { margin-top: 2px; font-size: 11px; color: var(--ink3); }

.go-common { background: var(--g50); border-color: #DCEAE0; }
.go-common .k { font-size: 12px; color: #37654E; font-weight: 600; margin-bottom: 8px; }
.go-common .chips { display: flex; gap: 6px; flex-wrap: wrap; }

@media (prefers-reduced-motion: reduce) {
  .go-reqentry { transition: none; }
}


/* ===== 20260923g24 · 底栏固定 + 详情页头像外移 + 报名内联（纯增量，删本段即回滚） =====
   ★ 令牌沿用既有 :root；无 emoji / 无渐变；阴影只用既有 --sh --sh2
   ------------------------------------------------------------------ */

/* ---------- P0：底栏常驻底部 ----------
   根因：.go-app 写的是 min-height —— 内容一长，容器被撑得比视口还高，
   .go-scr 的 overflow-y:auto 失去高度约束、根本不发生内部滚动，
   整页改由 body 滚动，底栏被推到文档流最底部跟着一起滚走。
   修法：给 .go-app 固定视口高度，.go-scr 才有确定高度并在内部滚动，底栏常驻。
   ★ 这是本批唯一一处「必须覆盖既有声明」的改动：只追加同权重规则不会生效。 */
.go-app { height: 100vh; height: 100dvh; }
.go-scr { min-height: 0; }

/* ---------- 活动详情：报名人头像组从封面上挪到封面下方 ----------
   原先是 absolute 白色胶囊压在封面左下，会挡住封面主体画面。 */
.go-who2 { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.go-who2 .n { font-size: 12px; color: var(--ink3); }

/* ---------- 首页顶栏左上角：城市 ---------- */
.go-bar .city { display: inline-flex; align-items: center; gap: 4px; }
.go-bar .city .pin { width: 13px; height: 13px; color: var(--g600); flex: none; }
.go-bar .city .sw { font-size: 11px; color: var(--ink4); font-weight: 400; }

/* ---------- 报名补手机号：内联输入行 ----------
   ★ 替代 window.prompt：原生弹框在 WebView 里既丑又常被禁用，像上个世纪的东西。 */
.go-telrow { margin-top: 10px; display: flex; gap: 8px; align-items: center; }
.go-telrow .go-input { flex: 1; }
.go-telrow .go-btn { flex: none; }


/* ===== 20260923g25 私信聊天页 /msg/:id（纯增量，删掉本段即完整回滚） =====
   ★ 令牌沿用既有 :root；无 emoji / 无渐变；阴影只用既有 --sh
   ★ .go-chat 必须撑满 .go-scr 的高度，消息区才会在内部滚动而不是整页滚，
     输入栏才能常驻底部（与 g24 底栏固定同一个道理）
   ------------------------------------------------------------------ */
.go-chat { display: flex; flex-direction: column; height: 100%; min-height: 100%; }
.go-cbody { flex: 1; min-height: 0; overflow-y: auto; -webkit-overflow-scrolling: touch;
            overscroll-behavior-y: contain; padding: 12px 14px 16px; }
.go-cmsg { display: flex; align-items: flex-end; gap: 8px; margin-bottom: 12px; }
.go-cmsg.me { flex-direction: row-reverse; }
.go-cmsg .go-av { width: 30px; height: 30px; flex: none; }
.go-cmsg .col { max-width: 74%; min-width: 0; }
.go-cmsg.me .col { display: flex; flex-direction: column; align-items: flex-end; }
.go-bub { display: inline-block; padding: 8px 11px; border-radius: 14px;
          background: var(--card); border: 1px solid var(--line); box-shadow: var(--sh);
          font-size: 14px; line-height: 1.55; color: var(--ink); text-align: left;
          white-space: pre-wrap; word-break: break-word; }
.go-cmsg.me .go-bub { background: var(--g600); border-color: var(--g600); color: #fff; }
/* 撤回的消息：如实显示，不把内容再吐出来 */
.go-bub.rec { color: var(--ink4); font-style: italic; }
.go-cmsg .tm { margin-top: 4px; font-size: 11px; color: var(--ink4); }
.go-cin { flex: none; display: flex; gap: 8px; align-items: center; padding: 8px 12px;
          padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px));
          background: var(--card); border-top: 1px solid var(--line); }
.go-cin .go-input { flex: 1; min-width: 0; }
.go-cin .go-btn { flex: none; }
/* 会话行可点（进聊天页）：只加游标，不动 .go-mi 既有布局 */
.go-mi.lnk { cursor: pointer; }


/* ===== 20260923g26 搭子申请双向（收到的 / 我发出的）=====
   ★ 纯增量：只加 .go-subseg 修饰类与 .go-req.go-out 作用域样式，
     删掉本段即完整回滚，不影响任何既有选择器。
   ------------------------------------------------------------------ */
.go-seg.go-subseg { margin: 0 16px 12px; }
.go-seg.go-subseg button { font-size: 12.5px; padding: 6px 0; }
/* 我发出的申请卡：状态可能有多个 chip（等对方处理 + 需求已结束），要能换行 */
.go-req.go-out .done { display: flex; flex-wrap: wrap; gap: 6px; }


/* ===== 20260923g27 系统通知（真实事件源）=====
   ★ 纯增量：只加 .go-not / .go-notdot，删掉本段即完整回滚，
     不覆盖任何既有选择器。
   ------------------------------------------------------------------ */
.go-not { display: flex; align-items: center; gap: 10px; padding: 12px 14px;
          background: #fff; border-bottom: 1px solid var(--line2); cursor: pointer; }
.go-not:last-child { border-bottom: 0; }
.go-not .bd { flex: 1; min-width: 0; }
.go-not .tx { font-size: 14px; color: var(--ink); line-height: 1.45; }
.go-not .tm { margin-top: 4px; font-size: 11.5px; color: var(--ink4); }
/* 未读圆点：读的是 yiyu_member_notice.isnew 真值，不是编的 */
.go-notdot { flex: none; width: 7px; height: 7px; border-radius: 50%; background: transparent; }
.go-not.un .go-notdot { background: var(--g600); }
.go-not.un .tx { font-weight: 600; }
.go-not .go-btn { flex: none; }

/* ==========================================================================
 * g28（20260923g28）—— 个人主页数据补齐：等级标 / 打招呼 / 徽章墙 / 三个列表
 * 纯增量：删掉本段即完整回滚，未覆盖任何既有选择器。
 * ======================================================================== */
.go-lvtag {
  display: inline-block; margin-left: 6px; padding: 1px 7px;
  border: 1px solid var(--line); border-radius: 999px;
  font-size: 11px; font-weight: 600; line-height: 1.6;
  color: var(--g600); background: var(--g50); vertical-align: middle;
}
.go-uact { margin-top: 14px; display: flex; gap: 8px; }
.go-uact > * { flex: 1; }
.go-bdgbox .k { font-size: 12px; font-weight: 600; color: var(--ink3); margin-bottom: 10px; }
.go-bdgs { display: flex; flex-wrap: wrap; gap: 8px; }
.go-bdg {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 5px 11px; border-radius: 999px;
  border: 1px solid var(--line); background: var(--card);
  font-size: 12px; font-weight: 600; color: var(--ink2);
}
.go-bdg i { width: 7px; height: 7px; border-radius: 50%; flex: none; }
.go-bdg.worn { background: var(--g50); border-color: var(--g100); color: var(--g600); }
.go-plist { padding: 0 0 8px; }
.go-pitem { display: block; margin-bottom: 8px; }
.go-pitem .tx { font-size: 13.5px; color: var(--ink); line-height: 1.55; word-break: break-word; }
.go-pitem .mt { margin-top: 5px; font-size: 11.5px; color: var(--ink4); }


/* ===== 20260925g2 城市选择页 /city（纯增量，删掉本段即完整回滚） =====
   ★ 令牌沿用既有 :root；无 emoji / 无渐变
   ★ 只新增三个类：分组标题 / 城市网格 / 城市按钮
   ------------------------------------------------------------------ */
.go-citysect { margin: 16px 16px 8px; font-size: 12.5px; font-weight: 600; color: var(--ink3); }
.go-citygrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 0 16px 12px; }
.go-citybtn {
  font-family: inherit; font-size: 13px; padding: 9px 4px; border-radius: var(--r3);
  background: #fff; border: 1px solid var(--line); color: var(--ink2);
  transition: all .16s ease;
}
.go-citybtn:active { transform: translateY(1px); }
.go-citybtn.on { background: var(--g50); border-color: var(--g600); color: var(--g600); font-weight: 600; }
