/* =========================================================
   相亲大集 · 自包含视觉（不依赖平台 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%)}
.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}}

/* 散步的人：单向循环，不来回反向行走；走到右边缘后瞬移回左起点（非回走），营造热闹人流 */
.pk-walker{position:absolute;font-size:22px;z-index:8;pointer-events:none;
  animation:stroll linear infinite;filter:drop-shadow(0 3px 4px rgba(0,0,0,.2))}
@keyframes stroll{
  0%{transform:translate3d(-40px,0,0) scaleX(-1)}
  100%{transform:translate3d(380px,0,0) scaleX(-1)}}

/* ============ 顶部 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-search{position:relative;flex:1;max-width:133px;margin-left:auto}
.pk-search input{width:100%;height:32px;border:0;border-radius:16px;padding:0 34px 0 12px;font-size:13px;color:#5C4A34;background:rgba(255,255,255,.92);outline:none;box-shadow:inset 0 1px 2px rgba(0,0,0,.08)}
.pk-search input::placeholder{color:#B09A7A;font-size:12px}
.pk-search button{position:absolute;right:2px;top:2px;width:28px;height:28px;border:0;border-radius:50%;background:linear-gradient(135deg,#FF7E9C,#FF4D77);color:#fff;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.pk-age-btns{display:flex;gap:8px;margin-top:8px;padding:0 2px}
.pk-age-btns button{flex:1;height:34px;border:0;border-radius:18px;font-size:16px;color:#fff;cursor:pointer;transition:transform .12s,box-shadow .2s;display:flex;align-items:center;justify-content:center;gap:4px;box-shadow:0 3px 8px rgba(0,0,0,.15)}
.pk-age-btns button:active{transform:scale(.97)}
.pk-age-btns button span{font-size:14px}
.pk-age-btns .age-youth{background:linear-gradient(135deg,#42A5F5,#1E88E5)}
.pk-age-btns .age-middle{background:linear-gradient(135deg,#FFA726,#FB8C00)}
.pk-age-btns .age-senior{background:linear-gradient(135deg,#AB47BC,#8E24AA)}
.pk-age-btns button.on{box-shadow:inset 0 2px 6px rgba(0,0,0,.25),0 4px 10px rgba(0,0,0,.2);transform:scale(1.02)}
/* ============ 逛的区域 ============ */
.pk-walk{position:absolute;left:0;right:0;top:120px;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}

.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:328px;max-width:calc(100% - 28px);flex-shrink:0;
  background:rgba(250,250,250,.6);border-radius:8px;margin:6px auto 14px;border:1px dashed #ddd}
.pk-rail{position:relative;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;
  padding:18px 14px 6px}
.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，每行 4 张卡、每行单独画一根绳） */
.zone-on .pk-line,.zone-off .pk-line,.zone-top .pk-line{display:flex;align-items:flex-start;gap:12px;position:relative;padding-top:6px}

/* ============ 相亲卡（挂在绳上的纸牌） ============ */
.pk-hang{flex:none;width:104px;transform:translateY(var(--dy,0px));will-change:transform}
.pk-clip{position:relative;z-index:3;width:16px;height:20px;margin:0 auto -6px;border-radius:3px;
  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:3px;right:3px;top:8px;height:2px;background:rgba(255,255,255,.42);border-radius:2px}
.pk-card{position:relative;transform-origin:50% -6px;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:7px 7px 8px;border-radius:9px;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:104px;border-radius:6px;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:3px}
.pk-sexbar.m{background:linear-gradient(90deg,#7FB2FF,#4E8BF5)}
.pk-sexbar.f{background:linear-gradient(90deg,#FF9CB6,#FF668A)}
.pk-corner{position:absolute;left:4px;top:4px;padding:1px 5px;border-radius:6px;font-size:9.5px;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:5px;font-size:12.5px;font-weight:800;color:#4A3A28;line-height:1.2;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pk-meta{margin-top:2px;font-size:10px;color:#8B7A62;line-height:1.35;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pk-stallno{margin-top:3px;font-size:9.5px;font-weight:700;color:#FF668A;line-height:1.2;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pk-hot{position:absolute;right:5px;top:5px;font-size:10px}
.pk-topbadge{position:absolute;right:4px;bottom:4px;padding:1px 6px;border-radius:999px;font-size:9px;font-weight:800;color:#fff;
  background:linear-gradient(135deg,#FF7E9C,#FF4D77);box-shadow:0 2px 6px rgba(255,77,119,.4);white-space:nowrap;z-index:2}
.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{flex:none;width:104px;padding-top:12px}
.pk-stall .body{position:relative;height:150px;border-radius:10px;padding:10px 8px;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:30px;line-height:1;filter:drop-shadow(0 3px 5px rgba(0,0,0,.16))}
.pk-stall .t{margin-top:6px;font-size:12px;font-weight:800;color:#FF4D77}
.pk-stall .d{margin-top:4px;font-size:10px;color:#9A7F62;line-height:1.4}
.pk-stall .go{margin-top:8px;display:inline-block;padding:4px 10px;border-radius:999px;font-size:10.5px;font-weight:700;
  color:#fff;background:linear-gradient(135deg,#FF7E9C,#FF4D77)}

/* ============ 底部操作条 ============ */
.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-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)}
.pk-act{margin-top:8px;font-size:11px;color:#A8895F}
.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}
.pk-sec p{font-size:12.5px;color:#5C4A34;line-height:1.65}
.pk-sh-btns{display:flex;gap:9px;padding:14px 16px calc(16px + env(safe-area-inset-bottom))}
.pk-sh-btns .b{flex:1;height:44px;display:flex;align-items:center;justify-content:center;gap:5px;
  border-radius:13px;font-size:13.5px;font-weight:800;transition:transform .14s;border:0}
.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)}
/* 喜欢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{position:absolute;left:12px;bottom:58px;z-index:19;font-size:14px;color:#7A6144;opacity:.75;pointer-events:none}

/* ============ 生活元素容器 ============ */
.pk-life{position:absolute;inset:0;pointer-events:none;z-index:8}

/* ============ 在架徽标 ============ */
.pk-shelf{position:absolute;left:5px;bottom:5px;font-size:9.5px;font-weight:800;color:#fff;
  padding:1px 5px;border-radius:6px;background:linear-gradient(135deg,#FFB25E,#FF8A3D);box-shadow:0 1px 3px rgba(0,0,0,.25)}

/* ============ 公告板（左侧固定小喇叭图标 + 右侧滚动字幕，最新10条连在一起循环） ============ */
.pk-feed{position:absolute;left:12px;right:12px;top:104px;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,.pp-cancel,.pp-ok{height:44px;border:0;border-radius:13px;font-size:14px;font-weight:800}
.pm-ok{width:80%;max-width:260px}
.pm-cancel,.pp-cancel{flex:1;background:rgba(120,90,50,.1);color:#7A5B3C}
.pm-ok,.pp-ok{background:linear-gradient(135deg,#FF7E9C,#FF4D77);color:#fff;box-shadow:0 5px 14px rgba(255,77,119,.34)}

/* 认证引导弹窗（需求3&4）：现代居中卡片，区别于底部抽屉，仅一个确定按钮 */
.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)}

/* 免费逛园倒计时进度条（迁自首页 park_entry.css，2026-08-07） */
.pk-free-bar{position:relative;z-index:12;margin:6px 12px 0;padding:9px 11px;border-radius:12px;
  background:rgba(255,255,255,.82);box-shadow:0 2px 8px rgba(120,90,50,.12);
  border:1px solid rgba(255,102,138,.28)}
.pk-free-txt{font-size:11.5px;font-weight:700;color:#C2466B;margin-bottom:7px;line-height:1.4}
.pk-free-track{height:8px;border-radius:99px;background:linear-gradient(90deg,#FFE3EC,#FFD2E0);overflow:hidden}
.pk-free-fill{height:100%;width:100%;border-radius:99px;
  background:linear-gradient(90deg,#FF8EB0,#FF668A);transition:width 1s linear}
/* 最顶部 HUD 进度条：显示时自动把标题栏和逛区压下来，避免重叠 */
.pk-free-bar--hud{position:relative;z-index:25;margin:0 0 8px;border-radius:0;border-left:0;border-right:0;border-top:0;
  padding:6px 12px;background:rgba(255,255,255,.96);box-shadow:0 2px 6px rgba(120,90,50,.1)}
/* 我的赶集 Sheet 内迷你进度条 */
.pk-free-mini{margin-top:8px}
.pk-free-mini .pk-free-track{height:6px;border-radius:99px;background:linear-gradient(90deg,#FFE3EC,#FFD2E0);overflow:hidden}
.pk-free-mini .pk-free-fill{height:100%;width:100%;border-radius:99px;
  background:linear-gradient(90deg,#FF8EB0,#FF668A);transition:width 1s linear}

/* 上架套餐项 */
.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}

/* 支付弹层 */
.pp-hd{font-size:16px;font-weight:800;color:#3E3020;text-align:center}
.pp-money{margin-top:10px;text-align:center;font-size:14px;color:#5C4A34}
.pp-money b{color:#FF4D77;font-size:18px}
.pp-pays{margin-top:14px;display:flex;flex-direction:column;gap:10px}
.pp-li{display:flex;align-items:center;gap:8px;padding:12px 14px;border-radius:12px;font-size:14px;color:#5C4A34;
  background:rgba(255,255,255,.9);border:1px solid rgba(190,160,120,.3)}
.pp-li input{margin-right:4px}
/* 支付按钮：单按钮全宽居中（去掉"取消"后） */
.pp-btns{display:flex;justify-content:center;margin-top:18px}
.pp-ok.full{width:80%;max-width:320px;height:48px;border:0;border-radius:14px;font-size:15px;font-weight:800;letter-spacing:.5px;
  color:#fff;background:linear-gradient(135deg,#FF7E9C,#FF4D77);box-shadow:0 6px 18px rgba(255,77,119,.4)}

/* ============ 聊天层（RPG 长椅） ============ */
.pk-chat{position:absolute;inset:0;z-index:45;display:flex;flex-direction:column;
  background:linear-gradient(180deg,#FFF1E2 0%,#FFE6CC 100%);transform:translateY(102%);
  transition:transform .32s cubic-bezier(.22,.9,.3,1),visibility 0s .32s;overflow:hidden;
  visibility:hidden;pointer-events:none}
.pk-chat.on{transform:translateY(0);visibility:visible;pointer-events:auto;transition:transform .32s cubic-bezier(.22,.9,.3,1)}
.pc-hd{display:flex;align-items:center;gap:8px;padding:14px 14px 10px;background:linear-gradient(180deg,rgba(255,247,232,.96),rgba(255,247,232,0))}
.pc-back{font-size:14px;color:#FF4D77;font-weight:700;flex:none}
.pc-title{flex:1;font-size:14px;font-weight:800;color:#3E3020;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pc-status{font-size:11px;color:#FF8A3D;flex:none}
.pc-bench{position:relative;height:190px;margin:4px 14px 0;border-radius:16px;overflow:hidden;
  background:url(../img/park_bench_scene.png) center bottom/cover no-repeat;
  box-shadow:inset 0 -8px 16px rgba(80,110,50,.25)}
.pc-seat{position:absolute;bottom:51px;display:flex;flex-direction:column;align-items:center;gap:5px;width:84px}
.pc-seat.left{left:24%}.pc-seat.right{right:24%}
.pc-ava{width:83px;height:83px;border-radius:50%;background-size:cover;background-position:center;
  border:3px solid #fff;box-shadow:0 4px 12px rgba(60,90,40,.3);background-color:#EFE6D6}
.pc-name{font-size:16px;font-weight:800;color:#3E3020;background:rgba(255,255,255,.82);padding:2px 9px;border-radius:9px;white-space:nowrap;max-width:100px;overflow:hidden;text-overflow:ellipsis}
.pc-msgs{flex:1;overflow-y:auto;padding:14px;scrollbar-width:none;display:flex;flex-direction:column;gap:0;-webkit-overflow-scrolling:touch}
.pc-msgs::-webkit-scrollbar{display:none}
.pc-bubble{max-width:95%;padding:10px 14px;border-radius:14px;font-size:16px;line-height:1.55;word-break:break-word;
  background:#fff;color:#3E3020;box-shadow:0 2px 6px rgba(90,70,40,.14)}
.pc-bubble.mine{align-self:flex-end;background:#FFF0F3;color:#3E3020;border:1px solid rgba(255,102,138,.22)}
.pc-bubble.theirs{align-self:flex-start}
.pc-msg-row .pc-bubble{align-self:auto}
.pc-emote{align-self:center;font-size:12px;color:#7A5B3C;background:rgba(255,255,255,.72);padding:3px 10px;border-radius:10px}
/* 动作表情：像微信表情包一样只显示图标 */
.pc-emote-icon{align-self:center;font-size:48px;line-height:1;padding:4px 6px;cursor:default;user-select:none;display:flex;align-items:center;justify-content:center}
.pc-emote-icon.mine{align-self:flex-end}
.pc-emote-icon.theirs{align-self:flex-start}
.pc-emote-img{width:26px;height:26px;object-fit:contain;display:block}
.pc-sys{align-self:center;font-size:12px;color:#A8895F;font-style:italic;margin:4px 0}
/* 单条消息行：头像 + 气泡/时间（参考 AI 对话布局） */
.pc-msg-row{display:flex;align-items:flex-start;gap:8px;margin-bottom:12px}
.pc-msg-row.mine{flex-direction:row-reverse}
.pc-msg-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;background:#EFE6D6;flex-shrink:0}
.pc-msg-body{display:flex;flex:1;flex-direction:column;max-width:calc(95% - 56px)}
.pc-msg-row.mine .pc-msg-body{align-items:flex-end}
.pc-msg-row.theirs .pc-msg-body{align-items:flex-start}
.pc-msg-time{font-size:10px;color:#A8895F;margin-top:4px;line-height:1.2;white-space:nowrap}
.pc-msg-row.mine .pc-msg-time{text-align:right}
.pc-inline-emo{width:24px;height:24px;object-fit:contain;vertical-align:middle;display:inline-block;margin:0 1px}
/* 系统聊天表情包面板（点击😊展开/收起，点空白处关闭；52个 8列×7行 一屏显全） */
.pc-emotes{display:none;grid-template-columns:repeat(8,1fr);gap:8px 4px;padding:10px 12px;
  background:rgba(255,247,232,.97);border-top:1px solid rgba(190,160,120,.25);max-height:290px;overflow-y:auto;-webkit-overflow-scrolling:touch}
.pc-emotes.on{display:grid}
.pc-emotes .pc-emo{width:26px;height:26px;object-fit:contain;cursor:pointer;transition:transform .12s;border-radius:4px;margin:0 auto}
.pc-emotes .pc-emo:active{transform:scale(1.12)}
.pc-input{display:flex;align-items:center;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(255,247,232,.96);border-top:1px solid rgba(190,160,120,.22)}
.pc-input .pc-editable{flex:1;min-height:40px;max-height:180px;overflow-y:auto;border:1px solid rgba(190,155,110,.4);border-radius:12px;padding:9px 12px;font-size:16px;line-height:1.5;color:#3E3020;background:#FFF9EC;outline:none;word-break:break-word;-webkit-user-select:text;user-select:text}
.pc-input .pc-editable:focus{border-color:#FF668A}
.pc-input .pc-editable:empty::before{content:attr(placeholder);color:#B09A7A;pointer-events:none}
.pc-input .pc-editable .pc-inline-emo{width:24px;height:24px;vertical-align:middle;display:inline-block;margin:0 1px}
.pc-input button{flex:none;width:64px;height:34px;border:0;border-radius:12px;font-size:14px;font-weight:800;color:#fff;background:linear-gradient(135deg,#FF7E9C,#FF4D77)}
.pc-input .pc-emo-btn{flex:none;width:38px;min-width:38px;height:26px;border:0;background:transparent;font-size:26px;line-height:26px;cursor:pointer;padding:0 2px}

/* ============ 送礼网格（资料浮层内） ============ */
.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}

/* ============ 我的摊位按钮 + 聊天列表 ============ */
.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-my-btns .b.gift{color:#2E7D46;background:rgba(70,180,110,.14);border:1px solid rgba(70,180,110,.36)}
.pk-chatlist{margin:4px 16px 16px;display:flex;flex-direction:column;gap:8px}
.pk-cl-item{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:12px;background:rgba(255,255,255,.9);
  border:1px solid rgba(190,160,120,.28);cursor:pointer}
.pk-cl-item img{width:42px;height:42px;border-radius:50%;object-fit:cover;background:#EFE6D6}
.pk-cl-item span{flex:1;font-size:13.5px;font-weight:700;color:#3E3020;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pk-cl-item i{font-style:normal;min-width:18px;height:18px;padding:0 5px;border-radius:9px;font-size:11px;color:#fff;background:#FF4D77;
  display:inline-flex;align-items:center;justify-content:center}
.pk-cl-item em{font-style:normal;font-size:10.5px;color:#FF8A3D;background:rgba(255,138,61,.14);padding:1px 6px;border-radius:6px}

/* ============ 前台筛选栏（后台开关控制显隐） ============ */
.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}
