/* =========================================================
   公园相亲角 · 自包含视觉（不依赖平台 m.css）
   视觉参考 docs/park_demo.html，移植为真实页面
   ========================================================= */
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
  background:#1b1f24;overflow:hidden}
body{position:relative}

/* ============ 场景 ============ */
.pk-stage{position:fixed;inset:0;overflow:hidden;
  background:linear-gradient(180deg,#FFDDB8 0%,#FFEAD2 26%,#FFF6E6 44%,#EAF3DA 58%,#CFE6A9 72%,#AED188 100%)}
/* 【2026-10-15 亮哥】相亲卡等比放大系数：卡片宽度 104→108px、高度（图片区 / 字号 / 内外边距 / 圆角）按同一系数。
   卡片内所有尺寸都写 calc(原值 * var(--pk-s))，以后只改这一个数即可再调比例。 */
.pk-stage{--pk-s:1.0385}
.pk-sun{position:absolute;right:30px;top:48px;width:92px;height:92px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,246,214,.98) 0%,rgba(255,224,150,.62) 42%,rgba(255,210,130,0) 72%);
  animation:sunGlow 6s ease-in-out infinite;pointer-events:none;z-index:1}
@keyframes sunGlow{0%,100%{transform:scale(1);opacity:.95}50%{transform:scale(1.08);opacity:1}}
.pk-hills{position:absolute;left:-8%;top:30%;width:116%;height:130px;pointer-events:none;z-index:1;
  background:radial-gradient(60% 100% at 22% 100%,#BBD69A 0 60%,transparent 61%),
             radial-gradient(52% 100% at 62% 100%,#A9CB8A 0 60%,transparent 61%),
             radial-gradient(46% 100% at 92% 100%,#C2DBA3 0 60%,transparent 61%);opacity:.85}
.pk-ground{position:absolute;left:0;right:0;bottom:0;height:36%;pointer-events:none;z-index:1;
  background:linear-gradient(180deg,#BEDB98 0%,#A6CC7E 38%,#93BF6C 100%)}
.pk-pathway{position:absolute;left:-14%;bottom:-6%;width:128%;height:170px;pointer-events:none;z-index:1;
  background:linear-gradient(180deg,rgba(238,228,205,0),rgba(238,228,205,.92) 40%,rgba(228,215,188,.98));
  border-radius:52% 52% 0 0/34% 34% 0 0;box-shadow:inset 0 3px 0 rgba(255,255,255,.4)}
.pk-pathway:after{content:"";position:absolute;inset:14px 0 0;
  background:repeating-linear-gradient(92deg,rgba(205,190,160,.55) 0 2px,transparent 2px 46px);border-radius:inherit;opacity:.7}

/* 树 */
.pk-tree{position:absolute;bottom:26%;z-index:2;pointer-events:none}
.pk-tree .trunk{position:absolute;left:50%;bottom:0;width:15px;height:78px;margin-left:-7px;border-radius:5px;
  background:linear-gradient(90deg,#6B4B2E,#8C6540 46%,#5E4128)}
.pk-tree .crown{position:absolute;left:50%;bottom:56px;transform:translateX(-50%);width:132px;height:104px;
  background:radial-gradient(42% 52% at 30% 58%,#5FA352 0 68%,transparent 69%),
             radial-gradient(46% 56% at 66% 52%,#4E9047 0 68%,transparent 69%),
             radial-gradient(40% 50% at 48% 30%,#6DB25C 0 68%,transparent 69%);
  filter:drop-shadow(0 6px 10px rgba(60,90,40,.28));animation:breathe 7s ease-in-out infinite}
@keyframes breathe{0%,100%{transform:translateX(-50%) scale(1)}50%{transform:translateX(-50%) scale(1.02)}}
.pk-tree.t1{left:-24px}.pk-tree.t2{right:-26px;bottom:29%}.pk-tree.t2 .crown{width:112px;height:88px}
.pk-tree.t3{left:44%;bottom:33%;opacity:.55;transform:scale(.62)}

/* 花瓣 + 光斑 */
.pk-petals{position:absolute;inset:0;pointer-events:none;z-index:6;overflow:hidden}
.pk-petal{position:absolute;top:-18px;width:9px;height:9px;border-radius:50% 0 50% 50%;
  background:rgba(255,168,190,.85);animation:fall linear infinite;will-change:transform}
@keyframes fall{0%{transform:translate3d(0,-20px,0) rotate(0)}100%{transform:translate3d(38px,880px,0) rotate(420deg)}}
.pk-bokeh{position:absolute;border-radius:50%;background:rgba(255,255,255,.55);filter:blur(1px);
  animation:floatUp linear infinite;pointer-events:none;z-index:5}
@keyframes floatUp{0%{transform:translate3d(0,0,0);opacity:0}18%{opacity:.9}100%{transform:translate3d(-26px,-180px,0);opacity:0}}

/* ============ 顶部 HUD ============ */
.pk-hud{position:absolute;left:0;right:0;top:0;z-index:20;padding:12px 12px 8px;
  background:linear-gradient(180deg,rgba(255,247,232,.94),rgba(255,247,232,0))}
.pk-board{display:flex;align-items:center;gap:9px;padding:8px 12px;border-radius:12px;
  background:linear-gradient(180deg,#A9764A,#8A5C36);box-shadow:0 4px 12px rgba(94,60,30,.32),inset 0 1px 0 rgba(255,255,255,.28)}
.pk-board .tt{color:#FFF6E4;font-size:20px;font-weight:800;letter-spacing:.5px;text-shadow:0 1px 0 rgba(0,0,0,.25);white-space:nowrap}
.pk-board .tt .bk{font-size:18px}
.pk-board .sub{color:rgba(255,240,220,.85);font-size:11px;margin-left:auto;text-align:right;line-height:1.35;white-space:nowrap}
/* ============ 逛的区域 ============ */
.pk-walk{position:absolute;left:0;right:0;top:84px;bottom:62px;z-index:15;overflow-y:auto;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;padding:6px 0 24px}
.pk-walk::-webkit-scrollbar{display:none}
/* 上架区/下架区统一标题栏：左（图标+名称+人数）右（提示），结构一致，仅底色不同 */
.pk-zone{position:relative;margin-bottom:12px;padding-bottom:10px;border-bottom:1px dashed rgba(150,130,100,.2)}
.pk-zone:last-child{border-bottom:none}
.pk-zone-tag{display:flex;align-items:center;justify-content:space-between;margin:8px 14px 4px;padding:8px 14px;border-radius:12px;
  font-size:14px;font-weight:700;cursor:pointer;transition:transform .12s;-webkit-tap-highlight-color:transparent;
  border:1px solid rgba(255,255,255,.25);box-shadow:0 3px 8px rgba(0,0,0,.12)}
.pk-zone-tag:active{transform:scale(.99)}
.pk-zone-tag .tag-left{display:flex;align-items:center;gap:5px}
.pk-zone-tag .tag-icon{font-size:18px;line-height:1}
.pk-zone-tag .tag-label{font-size:15px;font-weight:800}
.pk-zone-tag .tag-count{font-style:normal;font-size:12px;font-weight:600;padding:3px 10px;border-radius:10px;margin-left:2px;background:rgba(255,255,255,.25)}
.pk-zone-tag .tag-tip{font-size:13px;font-weight:400;opacity:.92}

/* 分页控件（每页40人，需求4） */
.pk-pager{display:flex;align-items:center;justify-content:center;gap:10px;margin:10px 14px 2px;
  padding:8px 12px;border-radius:12px;background:rgba(255,255,255,.72);box-shadow:0 2px 8px rgba(120,90,50,.1)}
.pk-pager-info{font-size:12px;color:#8a6d4b;font-weight:600;white-space:nowrap}
.pk-pg{height:32px;padding:0 14px;border:0;border-radius:16px;font-size:13px;font-weight:700;color:#fff;
  background:linear-gradient(135deg,#FF7E9C,#FF4D77);box-shadow:0 3px 8px rgba(255,77,119,.28);cursor:pointer;transition:transform .12s}
.pk-pg:active{transform:scale(.96)}
.pk-pg[disabled]{color:#B5A48C;background:rgba(200,190,175,.5);box-shadow:none;cursor:not-allowed}
.pk-pg[disabled]:active{transform:none}

/* 【2026-10-13 亮哥·需求2/4】首页「查看全部 N 人 ›」→ 进专区列表页（比翻页按钮宽一点） */
.pk-more{height:34px;padding:0 22px;border:0;border-radius:17px;font-size:13px;font-weight:800;color:#fff;
  background:linear-gradient(135deg,#FF7E9C,#FF4D77);box-shadow:0 3px 8px rgba(255,77,119,.28);cursor:pointer;transition:transform .12s}
.pk-more:active{transform:scale(.96)}
/* 专区列表页 HUD：返回箭头 + 缩一号标题（标题带专区名，20px 会溢出木牌） */
.pk-board .tt .pk-back{display:inline-block;width:24px;height:24px;line-height:22px;text-align:center;
  font-size:24px;font-weight:700;color:#FFF6E4;text-decoration:none;margin-right:2px;vertical-align:-3px;-webkit-tap-highlight-color:transparent}
.pk-board .tt .pk-back:active{opacity:.65}
.pk-board .tt.tt-sm{font-size:16px}

.zone-on .pk-zone-tag{color:#fff;background:linear-gradient(90deg,#66BB6A,#43A047);box-shadow:0 3px 8px rgba(67,160,71,.25)}
.zone-on .pk-zone-tag .tag-count{background:rgba(255,255,255,.28)}
.zone-off .pk-zone-tag{color:#fff;background:linear-gradient(90deg,#90A4AE,#78909C);box-shadow:0 3px 8px rgba(120,144,156,.25)}
.zone-off .pk-zone-tag .tag-count{background:rgba(255,255,255,.28)}
.zone-top .pk-zone-tag{color:#fff;background:linear-gradient(90deg,#FF7E9C,#FF4D77);box-shadow:0 3px 8px rgba(255,77,119,.28)}
.zone-top .pk-zone-tag .tag-count{background:rgba(255,255,255,.28)}
/* 空状态 */
.pk-empty{text-align:center;padding:24px 12px;color:#aaa;font-size:13px;width:calc(328px * var(--pk-s));max-width:100%;flex-shrink:0;
  background:rgba(250,250,250,.6);border-radius:8px;margin:6px auto 14px;border:1px dashed #ddd}
/* 【2026-10-15 亮哥】卡片宽 108px + 卡片间距 15px ⇒ 一行 3 张共 354px，
   375px 屏两侧各余约 10.5px（行整体居中）。屏宽 <354px 的老机型会退回原有的横向滚动兜底，不会挤压卡片。 */
/* 【2026-10-15 亮哥·底部被切】rail 是 overflow-y:hidden 的横向滚动容器，卡片又被 --dy 下移
   （park.js: -5~+8px / index4.php: -4~+6px）+ sway 旋转（底部角再沉 ~1.3px）+ box-shadow 向下延伸 20px
   ⇒ 原来 padding-bottom 只有 6px，卡片底部投影被硬切出一条直线。改 6→16px（小程序同系数 12→32rpx）。 */
.pk-rail{position:relative;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;
  padding:18px 0 16px}
.pk-rail::-webkit-scrollbar{display:none}
.pk-rope{position:absolute;left:0;top:12px;pointer-events:none;overflow:visible;z-index:2}
/* 上架区/下架区：每行一个独立 .pk-rail + flex 单行（完全照抄 index4.php 的 .pk-entry-rail/.pk-line，
   3 行 = 3 个 rail，每行 3 张卡、每行单独画一根绳）；width:max-content + margin:0 auto = 一行不足屏宽时居中，
   超宽（窄屏）时退回可横向滚动（左边缘不被裁） */
.zone-on .pk-line,.zone-off .pk-line,.zone-top .pk-line{display:flex;align-items:flex-start;gap:15px;position:relative;padding-top:6px;width:max-content;max-width:100%;margin:0 auto}

/* ============ 相亲卡（挂在绳上的纸牌） ============ */
/* 【2026-10-15 亮哥】整卡等比放大：宽度 104→108px，图片区高度 / 字号 / 内外边距 / 圆角全部按同一系数。
   ⛔ 只能用 calc 换算，不能用 zoom 或 transform:scale：
     · zoom 会改变 offsetWidth / offsetLeft 的取整口径 ⇒ park.js::drawRopes() 靠 el.offsetLeft+el.offsetWidth/2
       算绳结坐标，会整体错位；
     · transform:scale 不占布局 ⇒ 卡片之间会互相重叠、行宽不变。
   ⛔ --pk-s 在卡片根元素上也定义一份（不只靠 .pk-stage 继承），卡片被复用到别处时尺寸不会塌成 auto。 */
.pk-hang{--pk-s:1.0385;flex:none;width:calc(104px * var(--pk-s));transform:translateY(var(--dy,0px));will-change:transform}
.pk-clip{position:relative;z-index:3;width:calc(16px * var(--pk-s));height:calc(20px * var(--pk-s));margin:0 auto calc(-6px * var(--pk-s));border-radius:calc(3px * var(--pk-s));
  background:linear-gradient(180deg,#D7A15F,#A9743C);box-shadow:0 2px 4px rgba(90,60,25,.35),inset 0 1px 0 rgba(255,255,255,.4)}
.pk-clip:after{content:"";position:absolute;left:calc(3px * var(--pk-s));right:calc(3px * var(--pk-s));top:calc(8px * var(--pk-s));height:calc(2px * var(--pk-s));background:rgba(255,255,255,.42);border-radius:calc(2px * var(--pk-s))}
.pk-card{position:relative;transform-origin:50% calc(-6px * var(--pk-s));animation:sway var(--dur,4.2s) ease-in-out infinite;
  animation-delay:var(--dly,0s);will-change:transform;cursor:pointer;-webkit-backface-visibility:hidden;backface-visibility:hidden;
  transform:translateZ(0)} /* 硬件加速层，消除动画旋转时的子元素模糊 */
@keyframes sway{0%,100%{transform:rotate(calc(var(--amp,1.4deg) * -1))}50%{transform:rotate(var(--amp,1.4deg))}}
.pk-paper{position:relative;padding:calc(7px * var(--pk-s)) calc(7px * var(--pk-s)) calc(8px * var(--pk-s));border-radius:calc(9px * var(--pk-s));overflow:hidden;
  background:linear-gradient(160deg,#FFFEF9 0%,#FFF9EC 58%,#FDF2DF 100%);
  box-shadow:0 6px 14px rgba(90,70,40,.26),0 1px 0 rgba(255,255,255,.9) inset;
  border:1px solid rgba(190,160,120,.35);transition:box-shadow .2s,transform .2s;
  transform:translateZ(0)} /* 独立合成层，防止父级动画影响子元素清晰度 */
.pk-card:active .pk-paper{transform:translateY(-4px) scale(1.03);box-shadow:0 14px 26px rgba(90,70,40,.34)}
.pk-pic{position:relative;width:100%;height:calc(104px * var(--pk-s));border-radius:calc(6px * var(--pk-s));overflow:hidden;background:#EFE6D6}
.pk-pic img{width:100%;height:100%;object-fit:cover;display:block;image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges;-webkit-backface-visibility:hidden;transform:translateZ(0)}
.pk-sexbar{position:absolute;left:0;right:0;bottom:0;height:calc(3px * var(--pk-s))}
.pk-sexbar.m{background:linear-gradient(90deg,#7FB2FF,#4E8BF5)}
.pk-sexbar.f{background:linear-gradient(90deg,#FF9CB6,#FF668A)}
.pk-corner{position:absolute;left:calc(4px * var(--pk-s));top:calc(4px * var(--pk-s));padding:calc(1px * var(--pk-s)) calc(5px * var(--pk-s));border-radius:calc(6px * var(--pk-s));font-size:calc(9.5px * var(--pk-s));font-weight:700;color:#fff;
  background:rgba(0,0,0,.42);backdrop-filter:blur(2px)}
.pk-corner.par{background:linear-gradient(135deg,#FF7E9C,#FF4D77)}
.pk-nm{margin-top:calc(5px * var(--pk-s));font-size:calc(12.5px * var(--pk-s));font-weight:800;color:#4A3A28;line-height:1.2;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pk-meta{margin-top:calc(2px * var(--pk-s));font-size:calc(10px * var(--pk-s));color:#8B7A62;line-height:1.35;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pk-stallno{margin-top:calc(3px * var(--pk-s));font-size:calc(9.5px * var(--pk-s));font-weight:700;color:#FF668A;line-height:1.2;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pk-hot{position:absolute;right:calc(5px * var(--pk-s));top:calc(5px * var(--pk-s));font-size:calc(10px * var(--pk-s))}
/* .pk-topbadge（「🔝 优先展示 · 剩N天」角标）已按需求7删除 */
.pk-card-hl{animation:sway var(--dur,4.2s) ease-in-out infinite, pkTopHl 1s ease-in-out 3!important;z-index:5}
@keyframes pkTopHl{0%,100%{box-shadow:0 8px 20px rgba(90,70,40,.24)}50%{box-shadow:0 0 0 3px #FF4D77,0 10px 26px rgba(255,77,119,.5)}}

/* 摊位（红娘）：与相亲卡同一等比系数，两行卡片视觉尺寸保持一致 */
.pk-stall{--pk-s:1.0385;flex:none;width:calc(104px * var(--pk-s));padding-top:calc(12px * var(--pk-s))}
.pk-stall .body{position:relative;height:calc(150px * var(--pk-s));border-radius:calc(10px * var(--pk-s));padding:calc(10px * var(--pk-s)) calc(8px * var(--pk-s));text-align:center;
  background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(255,244,228,.86));border:1px dashed rgba(255,102,138,.5);
  box-shadow:0 6px 14px rgba(90,70,40,.16)}
.pk-stall .umb{font-size:calc(30px * var(--pk-s));line-height:1;filter:drop-shadow(0 3px 5px rgba(0,0,0,.16))}
.pk-stall .t{margin-top:calc(6px * var(--pk-s));font-size:calc(12px * var(--pk-s));font-weight:800;color:#FF4D77}
.pk-stall .d{margin-top:calc(4px * var(--pk-s));font-size:calc(10px * var(--pk-s));color:#9A7F62;line-height:1.4}
.pk-stall .go{margin-top:calc(8px * var(--pk-s));display:inline-block;padding:calc(4px * var(--pk-s)) calc(10px * var(--pk-s));border-radius:999px;font-size:calc(10.5px * var(--pk-s));font-weight:700;
  color:#fff;background:linear-gradient(135deg,#FF7E9C,#FF4D77)}

/* ============ 底部操作条 ============ */
/* 【2026-10-12 定稿】底栏按钮下方保留约 10px 间距（亮哥 11:15 纠正：「按钮不能完全到底，
   要有一定间距」，参照图实测 9px）；iPhone 安全区在此之上叠加，不是替代 */
.pk-dock{position:absolute;left:0;right:0;bottom:0;z-index:22;display:flex;align-items:center;gap:8px;
  padding:10px 12px calc(10px + env(safe-area-inset-bottom));
  background:linear-gradient(180deg,rgba(255,247,232,0),rgba(255,247,232,.96) 42%)}
.pk-btn{flex:1;height:40px;border:0;border-radius:12px;font-size:13.5px;font-weight:800;color:#7A5B3C;
  background:rgba(255,255,255,.92);box-shadow:0 3px 10px rgba(120,90,50,.18);transition:transform .14s}
.pk-btn:active{transform:scale(.96)}
.pk-btn.main{color:#fff;background:linear-gradient(135deg,#FF7E9C,#FF4D77);box-shadow:0 5px 14px rgba(255,77,119,.36)}
.pk-btn.ico{flex:none;width:44px;font-size:17px}
.pk-btn.ico.on{color:#fff;background:linear-gradient(135deg,#FF7E9C,#FF4D77);box-shadow:0 3px 12px rgba(255,77,119,.45);animation:pSoundPulse 1.4s ease-in-out infinite}
@keyframes pSoundPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
.pk-brand{position:absolute;left:0;right:0;bottom:52px;z-index:21;text-align:center;
  font-size:10px;color:#7A6144;opacity:.6;pointer-events:none}

/* ============ 资料浮层 ============ */
.pk-mask{position:absolute;inset:0;z-index:30;background:rgba(38,26,16,.5);backdrop-filter:blur(3px);
  opacity:0;pointer-events:none;transition:opacity .18s ease}
.pk-mask.on{opacity:1;pointer-events:auto}
.pk-sheet{position:absolute;left:0;right:0;bottom:0;z-index:31;max-height:82%;overflow-y:auto;
  border-radius:20px 20px 0 0;background:linear-gradient(180deg,#FFFDF8,#FFF7EC);
  box-shadow:0 -10px 34px rgba(60,40,20,.3);scrollbar-width:none;
  opacity:0;visibility:hidden;transition:opacity .18s ease}
.pk-sheet::-webkit-scrollbar{display:none}
.pk-sheet.on{opacity:1;visibility:visible;pointer-events:auto}
.pk-grip{width:38px;height:4px;border-radius:3px;background:rgba(150,120,90,.3);margin:9px auto 4px}
.pk-sh-hd{display:flex;gap:12px;padding:8px 16px 0}
.pk-sh-hd .ph{flex:none;width:96px;height:128px;border-radius:12px;overflow:hidden;background:#EFE6D6;
  box-shadow:0 6px 16px rgba(90,70,40,.24)}
.pk-sh-hd .ph img{width:100%;height:100%;object-fit:cover;display:block}
.pk-sh-hd .info{flex:1;min-width:0;padding-top:2px}
.pk-sh-hd h3{font-size:19px;font-weight:800;color:#3E3020;display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.pk-badge{padding:2px 7px;border-radius:6px;font-size:10.5px;font-weight:700;color:#fff}
.pk-badge.m{background:linear-gradient(135deg,#7FB2FF,#4E8BF5)}
.pk-badge.f{background:linear-gradient(135deg,#FF9CB6,#FF668A)}
.pk-badge.par{background:linear-gradient(135deg,#FFB25E,#FF8A3D)}
.pk-badge.on{background:linear-gradient(135deg,#66BB6A,#43A047)}
.pk-detail-btn{display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 14px;border-radius:12px;font-size:14px;font-weight:700;color:#fff;background:linear-gradient(135deg,#26A69A,#00897B);box-shadow:0 2px 6px rgba(0,137,123,.25);text-decoration:none}
.pk-detail-btn:active{transform:scale(.95)}
.pk-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.pk-chip{padding:4px 9px;border-radius:8px;font-size:11.5px;font-weight:600;color:#7A6144;
  background:rgba(255,236,210,.9);border:1px solid rgba(190,155,110,.28)}
/* 【2026-10-15 亮哥】详细资料按钮独立成行（原接在「编号 N」后会在中途换行）；按钮尺寸回到 .pk-detail-btn 基础档 */
/* 【2026-10-18 亮哥】「近期活跃」行与「详细资料」按钮两行改为居左（m.css:11 body 全局 text-align:center 会把它们顶到中间，
   故必须显式 text-align:left）；「近期活跃」字号 11px → 12px → 14px（2026-10-18 二次调整） */
.pk-act{margin-top:8px;font-size:14px;color:#A8895F;text-align:left}
.pk-detail-row{margin-top:8px;text-align:left}
.pk-sec{margin:14px 16px 0;padding:11px 12px;border-radius:12px;background:rgba(255,255,255,.86);
  border:1px solid rgba(190,160,120,.24)}
.pk-sec h4{font-size:12px;font-weight:800;color:#FF4D77;margin-bottom:5px;display:flex;align-items:center;gap:5px}
/* 【2026-10-13 亮哥·需求】自我介绍 / 择偶要求 最多 200 字（超出由 park.js::clip200() 截断加省略号），
   浮层按内容自动撑高 ⇒ 已移除原 6 行 -webkit-line-clamp 限制；
   ⛔ 必须显式 text-align:left：m.css:11 的 body 带全局 text-align:center，段落会跟着居中，这里强制回左 */
.pk-sec p{font-size:12.5px;color:#5C4A34;line-height:1.65;text-align:left;word-break:break-all}
/* 【2026-10-12 需求9】喜欢TA / 送礼物 / 聊聊天 / 联系TA 四个按钮强制一行不换行：整体收窄字号与内边距 */
.pk-sh-btns{display:flex;flex-wrap:nowrap;gap:6px;padding:14px 16px calc(16px + env(safe-area-inset-bottom))}
.pk-sh-btns .b{flex:1;min-width:0;height:44px;display:flex;align-items:center;justify-content:center;gap:3px;
  padding:0 4px;border-radius:12px;font-size:12px;font-weight:800;transition:transform .14s;border:0;white-space:nowrap}
.pk-sh-btns .b:active{transform:scale(.95)}
.pk-sh-btns .b.hi{color:#FF4D77;background:rgba(255,102,138,.12);border:1px solid rgba(255,102,138,.35)}
/* 聊聊天：蓝绿色（与 like/gift 区分） */
.pk-sh-btns .b.chat{color:#fff;background:linear-gradient(135deg,#4FC3F7,#2196F3);box-shadow:0 5px 14px rgba(33,150,243,.34)}
.pk-sh-btns .b.wx{color:#2E7D46;background:rgba(70,180,110,.14);border:1px solid rgba(70,180,110,.36)}
/* 【2026-10-12 需求9】联系TA（= 互换手机号）：沿用互换的绿色语义色 */
.pk-sh-btns .b.contact{color:#2E7D46;background:rgba(70,180,110,.14);border:1px solid rgba(70,180,110,.36)}
.pk-sh-btns .b.contact .ico-hh{font-size:12px}
/* 喜欢TA：默认浅粉，点击后变深粉（已喜欢态） */
.pk-sh-btns .b.like{color:#FF4D77;background:rgba(255,102,138,.1);border:1px solid rgba(255,102,138,.32)}
.pk-sh-btns .b.like.liked{color:#fff;background:linear-gradient(135deg,#FF7E9C,#FF4D77);
  box-shadow:0 5px 14px rgba(255,77,119,.34);border-color:transparent}
/* 送礼物：金色（不是灰色） */
.pk-sh-btns .b.gift{color:#C77A00;background:linear-gradient(180deg,#FFF3DC,#FFE5B0);border:1px solid rgba(217,167,60,.5);
  box-shadow:0 2px 6px rgba(217,167,60,.18)}

/* ============ 互换微信弹层 ============ */
.pk-ex{position:absolute;left:50%;top:50%;z-index:40;width:84%;max-width:340px;transform:translate(-50%,-50%) scale(.9);
  opacity:0;pointer-events:none;transition:.22s;border-radius:16px;padding:18px 16px;
  background:#FFFDF8;box-shadow:0 18px 50px rgba(40,26,16,.4)}
.pk-ex.on{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
.pk-ex-hd{font-size:15px;font-weight:800;color:#3E3020}
.pk-ex-tip{margin-top:8px;font-size:12px;color:#8B7A62;line-height:1.6}
.pk-ex-input{width:100%;margin-top:12px;height:42px;border:1px solid rgba(190,155,110,.4);border-radius:10px;
  padding:0 12px;font-size:14px;color:#3E3020;background:#FFF9EC;outline:none}
.pk-ex-input:focus{border-color:#FF668A}
.pk-ex-btns{display:flex;gap:10px;margin-top:14px}
.pk-ex-cancel,.pk-ex-ok{flex:1;height:42px;border:0;border-radius:11px;font-size:14px;font-weight:800}
.pk-ex-cancel{background:rgba(120,90,50,.1);color:#7A5B3C}
.pk-ex-ok{background:linear-gradient(135deg,#FF7E9C,#FF4D77);color:#fff}

/* toast */
.pk-toast{position:absolute;left:50%;bottom:96px;z-index:60;transform:translate(-50%,12px);
  padding:9px 16px;border-radius:11px;font-size:12.5px;color:#fff;background:rgba(40,28,18,.9);
  opacity:0;pointer-events:none;transition:.24s;max-width:80%;text-align:center}
.pk-toast.on{opacity:1;transform:translate(-50%,0)}

/* 加载 / 空态 */
.pk-loading{position:absolute;left:0;right:0;top:50%;z-index:18;text-align:center;color:#7A5B3C;font-size:13px;
  transform:translateY(-50%)}
.pk-spin{display:inline-block;width:18px;height:18px;border:2px solid rgba(120,90,50,.25);border-top-color:#FF668A;
  border-radius:50%;animation:spin .8s linear infinite;vertical-align:-3px;margin-right:7px}
@keyframes spin{to{transform:rotate(360deg)}}
.pk-empty-center{position:absolute;left:0;right:0;top:50%;z-index:18;text-align:center;color:#7A5B3C;font-size:13px;
  transform:translateY(-50%);padding:0 30px;line-height:1.7}
/* .pk-hint（左下角「👆 点牌子看资料」浮层）已按需求1删除 */

/* ============ 在架徽标：卡片角标已按需求6/7全部下线（年龄 / 在挂牌 / 优先展示·剩N天） ============ */

/* ============ 公告板（左侧固定小喇叭图标 + 右侧滚动字幕，最新10条连在一起循环） ============ */
.pk-feed{position:absolute;left:12px;right:12px;top:62px;z-index:25;height:18px;
  display:flex;align-items:center;overflow:hidden;pointer-events:none}
.pk-feed-ico{flex-shrink:0;font-size:12px;line-height:18px;margin-right:5px;color:#9a9a9a}
.pk-feed-mask{flex:1;position:relative;height:18px;overflow:hidden}
.pk-feed-track{position:absolute;left:0;top:0;white-space:nowrap;font-size:12px;line-height:18px;color:#9a9a9a;
  animation:feedMarquee 40s linear infinite}
.pk-feed-track span{display:inline-block;margin-left:20px;white-space:nowrap}
@keyframes feedMarquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* ============ 通用弹层（挂牌 / 优先展示）底部抽屉 ============ */
.pk-modal,.pk-pay{position:absolute;left:0;right:0;bottom:0;z-index:41;max-height:84%;overflow-y:auto;scrollbar-width:none;
  border-radius:20px 20px 0 0;background:linear-gradient(180deg,#FFFDF8,#FFF7EC);
  box-shadow:0 -10px 34px rgba(60,40,20,.3);padding:18px 16px calc(20px + env(safe-area-inset-bottom))}
/* 弹层瞬时定位 + 仅透明度淡入（避免动画中途"显示不全"误判） */
.pk-modal,.pk-pay{opacity:0;visibility:hidden;transform:none;
  transition:opacity .18s ease}
.pk-modal.on,.pk-pay.on{opacity:1;visibility:visible;pointer-events:auto}
.pk-modal::-webkit-scrollbar,.pk-pay::-webkit-scrollbar{display:none}
.pm-hd{font-size:17px;font-weight:800;color:#3E3020;text-align:center}
.pm-tip{margin-top:9px;font-size:12.5px;color:#8B7A62;line-height:1.6;text-align:center;padding:0 6px}
.pm-price{margin-top:12px;text-align:center;font-size:14px;font-weight:800;color:#FF4D77}
.pm-prices{margin-top:12px;display:flex;flex-direction:column;gap:9px}
.pm-btns{display:flex;justify-content:center;gap:10px;margin-top:16px}
.pm-cancel,.pm-ok{height:44px;border:0;border-radius:13px;font-size:14px;font-weight:800}
.pm-ok{width:80%;max-width:260px}
.pm-cancel{flex:1;background:rgba(120,90,50,.1);color:#7A5B3C}
.pm-ok{background:linear-gradient(135deg,#FF7E9C,#FF4D77);color:#fff;box-shadow:0 5px 14px rgba(255,77,119,.34)}

/* 居中卡片弹窗（仅积分不足用）：区别于底部抽屉 */
.pk-cert.pk-modal{left:50%;right:auto;bottom:auto;top:50%;transform:translate(-50%,-50%) scale(.92);width:84%;max-width:322px;max-height:none;padding:26px 20px 20px;background:#fff;border-radius:18px;box-shadow:0 18px 50px rgba(0,0,0,.28);opacity:0;visibility:hidden;transition:transform .28s cubic-bezier(.2,.8,.3,1),opacity .28s}
.pk-cert.pk-modal.on{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
.pk-cert-ico{width:64px;height:64px;margin:0 auto 12px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:30px;background:linear-gradient(135deg,#FFE3EC,#FFD0DE);box-shadow:0 6px 16px rgba(255,77,119,.28)}
.pk-cert-tt{text-align:center;font-size:18px;font-weight:800;color:#3E3020}
.pk-cert-msg{margin-top:10px;text-align:center;font-size:14px;color:#8B7A62;line-height:1.65;padding:0 4px}
.pk-cert .pm-btns{margin-top:20px}
.pk-cert .pm-ok{width:100%;max-width:none;height:46px;border-radius:13px;font-size:15px;background:linear-gradient(135deg,#FF7E9C,#FF4D77);color:#fff;box-shadow:0 6px 16px rgba(255,77,119,.34)}
.pk-cert .pm-ok:active{transform:scale(.97)}
.pk-cert-close{position:absolute;top:10px;right:10px;width:26px;height:26px;line-height:24px;border:0;border-radius:50%;background:rgba(120,90,50,.08);color:#8B7A62;font-size:16px;text-align:center;cursor:pointer;-webkit-tap-highlight-color:transparent}
.pk-cert-close:active{background:rgba(120,90,50,.18);transform:scale(.92)}

/* 积分不足弹窗（需求2）：双按钮「我再看看 / 充值积分」 */
.pk-nolb-ico{background:linear-gradient(135deg,#FFEFD0,#FFE0A8);box-shadow:0 6px 16px rgba(217,167,60,.3)}
.pk-nolb .pk-cert-msg{color:#6A4A2C}
.pk-nolb-btns{gap:10px}
.pk-nolb-btns .pm-cancel{flex:1;height:46px;border-radius:13px;font-size:15px}
.pk-nolb-btns .pm-ok{flex:1;width:auto;max-width:none;height:46px;border-radius:13px;font-size:15px}
/* 【2026-10-12 需求9】互换手机号弹窗不另写样式：直接复用系统 hhbox_form（res/m/css/u.css）
   + ZeaiM.div2 的弹层样式（res/m/css/m.css），与 m/u2.php 的互换手机号完全同一套外观 */

/* 上架套餐项 */
.pp-item{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:12px;
  background:rgba(255,255,255,.9);border:1px solid rgba(190,160,120,.3);cursor:pointer}
.pp-item.on{border-color:#FF668A;background:rgba(255,102,138,.08);box-shadow:0 3px 10px rgba(255,102,138,.2)}
.pp-item .pp-d{font-size:15px;font-weight:800;color:#FF4D77;flex:none;width:54px}
.pp-item .pp-t{flex:1;font-size:12.5px;color:#6A4A2C;min-width:0}
.pp-item .pp-m{font-size:15px;font-weight:800;color:#3E3020}
.pp-item .pp-lb{display:block;margin-top:3px;font-style:normal;font-size:11px;color:#B08A5E}
.pp-item.off{opacity:.5;cursor:not-allowed;background:rgba(240,236,230,.9)}
.pp-item.off .pp-d,.pp-item.off .pp-m{color:#A79A8A}
.pp-item.off .pp-lb{color:#D0674F}

/* 支付弹层已移除（需求2：改为纯扣积分，积分不足时走 .pk-nolb 弹窗） */

/* ============ 送礼网格（资料浮层内） ============ */
.pk-gift-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;padding:14px 16px;
  max-height:50vh;overflow-y:auto}
.pk-gift{display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 4px;border-radius:12px;
  background:rgba(255,255,255,.9);border:1px solid rgba(190,160,120,.3);cursor:pointer}
.pk-gift.on{border-color:#FF668A;background:rgba(255,102,138,.1)}
.pk-gift img{width:46px;height:46px;object-fit:cover;border-radius:8px}
.pk-gift span{font-size:11px;color:#5C4A34;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.pk-gift b{font-size:10.5px;color:#FF8A3D;font-weight:700}

/* ============ 我的摊位按钮（聊天列表已删除，需求7：直接调系统功能） ============ */
.pk-my-btns{display:flex;flex-direction:column;gap:9px;padding:14px 16px}
.pk-my-btns .b{height:44px;border:0;border-radius:13px;font-size:14px;font-weight:800}
.pk-my-btns .b.chat{color:#fff;background:linear-gradient(135deg,#FF7E9C,#FF4D77)}
.pk-my-btns .b.like{color:#FF4D77;background:rgba(255,102,138,.12);border:1px solid rgba(255,102,138,.35)}

/* ============ 前台筛选栏（后台开关控制显隐） ============ */
.pk-filter{display:none;padding:7px 10px;background:rgba(255,247,232,.94);border-bottom:1px solid rgba(190,160,120,.28);
  position:sticky;top:0;z-index:20}
.pk-filter-bar{display:flex;flex-direction:column;gap:5px}
.pf-row{display:flex;align-items:center;gap:5px;justify-content:space-between}
.pf-group{display:flex;align-items:center;gap:4px;flex:none}
.pf-label{font-size:12.5px;color:#8a6d4b;white-space:nowrap;font-weight:600}
.pf-in{height:30px;border:1px solid #d9c4a3;border-radius:7px;padding:0 7px;font-size:13px;background:#fff;color:#3E3020}
.pf-in.pf-age{width:48px}
.pf-in.pf-area{width:86px}
.pf-in.pf-love{width:72px}
.pf-in.pf-job{width:86px}
.pf-in.pf-pay{width:72px}
.pf-unit{font-size:12px;color:#8a6d4b}
.pf-sep{color:#b09a7a;font-size:13px;padding:0 1px}
.pf-btns{display:flex;gap:5px;flex:none}
.pf-btn{height:30px;padding:0 12px;border:0;border-radius:15px;background:linear-gradient(135deg,#FF7E9C,#FF4D77);color:#fff;font-size:13px;font-weight:700;cursor:pointer}
.pf-btn.pf-reset{background:#e8dcc8;color:#7a6248}
