*{box-sizing:border-box}body{margin:0;background:#f6f2ee;color:#231b1b;font-family:-apple-system,BlinkMacSystemFont,'PingFang TC','Noto Sans TC','Microsoft JhengHei',Arial,sans-serif}.app{max-width:520px;min-height:100vh;margin:0 auto;background:#fff;box-shadow:0 0 35px rgba(0,0,0,.08);padding-bottom:28px}.top{position:sticky;top:0;z-index:10;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid #eee}.top b{display:block;font-size:18px}.top span{display:block;font-size:11px;color:#8b7d75;margin-top:2px}.top em{font-style:normal;font-size:12px;color:#6a5d55;display:flex;align-items:center;gap:5px}.top i{display:inline-block;width:8px;height:8px;background:#17b26a;border-radius:50%;box-shadow:0 0 0 4px rgba(23,178,106,.12)}.homeIntro{padding:22px 18px 8px}.homeIntro h1{margin:0;font-size:28px;line-height:1.15}.homeIntro p{margin:8px 0 0;font-size:13px;color:#756760;line-height:1.65}.avatarGrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:12px 14px 4px}.avatarCard{background:#fff;border:1px solid #eee;border-radius:24px;padding:15px 10px 14px;text-align:center;box-shadow:0 8px 22px rgba(0,0,0,.055);cursor:pointer;transition:.15s}.avatarCard:active{transform:scale(.98)}.avatarWrap{width:116px;height:116px;margin:0 auto 10px;border-radius:50%;padding:4px;background:linear-gradient(135deg,#fff,#ffe8db);box-shadow:0 8px 22px rgba(0,0,0,.1);position:relative}.avatarWrap img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}.avatarWrap .dot{position:absolute;right:10px;bottom:10px;width:15px;height:15px;border-radius:50%;background:#17b26a;border:3px solid #fff}.avatarName{font-size:18px;font-weight:900;line-height:1.2}.avatarAge{font-size:13px;font-weight:800;color:#7d6e67;margin-top:5px}.avatarKm{display:inline-block;margin-top:8px;background:#f2f7f3;color:#217b44;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:900}.statusMini{display:flex;flex-wrap:wrap;justify-content:center;gap:5px;margin-top:9px}.statusMini b{font-size:10px;line-height:1;background:#fff4ea;color:#9a4b15;border:1px solid #f1d1bd;border-radius:999px;padding:4px 6px}.detailStatus{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.detailStatus b{font-size:12px;background:#fff4ea;color:#9a4b15;border:1px solid #f1d1bd;border-radius:999px;padding:6px 9px}
.more,.line{width:100%;border:0;border-radius:18px;background:#06c755;color:#fff;font-size:17px;font-weight:900;padding:16px;box-shadow:0 10px 24px rgba(6,199,85,.25)}.more{display:block;margin:18px auto;width:calc(100% - 28px);background:#211816;box-shadow:none}.modal{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.68);display:flex;align-items:flex-end;justify-content:center}.hidden{display:none}.detailPage,.verifyBox{width:100%;max-width:520px;background:#fff;border-radius:28px 28px 0 0;padding:18px;position:relative;max-height:92vh;overflow:auto}.x{position:absolute;right:16px;top:12px;border:0;background:#f3f3f3;width:34px;height:34px;border-radius:50%;font-size:22px;color:#777;z-index:3}.detailHead{display:flex;gap:13px;align-items:center;padding:6px 44px 16px 2px;border-bottom:1px solid #eee}.detailHead img{width:70px;height:70px;border-radius:50%;object-fit:cover}.detailHead h2{margin:0;font-size:24px}.detailHead p{margin:5px 0 0;color:#756760;font-size:13px;font-weight:800}.profileFacts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.profileFacts span{background:#f7f4f2;border-radius:12px;padding:10px 9px;font-size:13px;color:#4e4440;font-weight:800}.feeBox{border:1px dashed #e7b38f;border-radius:15px;background:#fff7f1;color:#9a4b15;padding:12px;font-size:14px;font-weight:900;line-height:1.55;margin-bottom:15px}.sectionTitle{font-size:17px;margin:18px 0 10px}.photoGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mediaBox{position:relative;width:100%;aspect-ratio:3/4;border-radius:17px;overflow:hidden;background:#eee}.mediaBox img,.mediaBox video{width:100%;height:100%;object-fit:cover;display:block}.videoList{display:grid;grid-template-columns:1fr;gap:12px}.videoList .mediaBox{aspect-ratio:16/10}.play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:58px;height:58px;border-radius:50%;border:2px solid rgba(255,255,255,.86);background:rgba(0,0,0,.42);color:#fff;font-size:24px;display:flex;align-items:center;justify-content:center}.reserve{margin-top:18px;position:sticky;bottom:0}.verifyBox{text-align:center;padding:32px 22px}.lock{font-size:42px}.verifyBox h3{font-size:24px;margin:8px 0}.verifyBox p{color:#6a5e58;line-height:1.7}.verifyBox small{display:block;margin-top:13px;color:#aaa}@media(max-width:380px){.avatarGrid{gap:10px;padding:10px}.avatarWrap{width:102px;height:102px}.avatarName{font-size:16px}.homeIntro h1{font-size:25px}.photoGrid{gap:8px}.detailPage{padding:15px}}

/* v6: fixed profile header + scrollable media body */
.detailPage{padding:0;overflow:hidden;display:flex;flex-direction:column;max-height:92vh}.detailFixed{position:sticky;top:0;z-index:4;background:#fff;padding:18px 18px 12px;border-radius:28px 28px 0 0;border-bottom:1px solid #eee}.detailScroll{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px 18px 18px;flex:1}.detailPage .x{position:absolute;right:16px;top:12px}.detailFixed .detailHead{padding:4px 44px 0 2px;border-bottom:0}.reserve{flex-shrink:0}

/* v7: top fixed message reminder */
.msgFloat{position:fixed;left:50%;top:66px;transform:translateX(-50%);z-index:45;width:calc(100% - 28px);max-width:492px;background:rgba(255,255,255,.97);backdrop-filter:blur(12px);border:1px solid #eee;border-radius:18px;padding:11px 14px;box-shadow:0 12px 34px rgba(0,0,0,.14);display:flex;gap:12px;align-items:center;cursor:pointer}.msgFloat.hidden{display:none}.msgFloat:active{transform:translateX(-50%) scale(.98)}.msgDot{width:34px;height:34px;border-radius:50%;background:#e11d48;color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:900;box-shadow:0 0 0 6px rgba(225,29,72,.12)}.msgFloat b{display:block;font-size:15px}.msgFloat small{display:block;color:#6a5d55;margin-top:3px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:360px}.chatPage{width:100%;max-width:520px;background:#fff;border-radius:28px 28px 0 0;position:relative;max-height:92vh;overflow:hidden;display:flex;flex-direction:column}.chatFixedHead{padding:20px 56px 14px 18px;border-bottom:1px solid #eee;background:#fff}.chatFixedHead h3{font-size:24px;margin:0}.chatFixedHead p{margin:6px 0 0;color:#7b6d66;font-size:13px;font-weight:800}.greenDot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#17b26a;margin-right:5px}.chatList{flex:1;overflow-y:auto;background:#f7f4f2;padding:14px 12px 92px}.chatItem{display:flex;gap:10px;align-items:flex-start;margin-bottom:12px;animation:chatIn .22s ease-out}.chatItem img{width:42px;height:42px;border-radius:50%;object-fit:cover;flex-shrink:0;border:2px solid #fff;box-shadow:0 4px 12px rgba(0,0,0,.1)}.chatBubble{background:#fff;border:1px solid #eee;border-radius:18px 18px 18px 4px;padding:10px 12px;max-width:78%;box-shadow:0 5px 14px rgba(0,0,0,.04)}.chatBubble b{display:block;font-size:12px;color:#9a4b15;margin-bottom:4px}.chatBubble p{margin:0;font-size:14px;font-weight:800;line-height:1.5;color:#302624}.chatPage .reserve{position:absolute;left:18px;right:18px;bottom:14px;width:auto;margin:0}@keyframes chatIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}

@media(max-width:380px){.msgFloat{top:62px;width:calc(100% - 20px)}}

/* v9 fixes: message bar no longer covers text; profile header/action fixed, body scrolls */
.app{position:relative;overflow:visible}.msgFloat{position:sticky;top:58px;left:auto;transform:none;z-index:20;width:calc(100% - 28px);max-width:none;margin:12px 14px 0;background:rgba(255,255,255,.98);backdrop-filter:blur(12px);border:1px solid #eee;border-radius:18px;padding:11px 14px;box-shadow:0 8px 22px rgba(0,0,0,.1);display:flex;gap:12px;align-items:center;cursor:pointer}.msgFloat.hidden{display:none}.msgFloat:active{transform:scale(.99)}.msgFloat small{max-width:390px}.homeIntro{padding-top:18px}.detailPage{height:92vh;max-height:92vh;padding:0;overflow:hidden;display:flex;flex-direction:column}.detailFixed{flex-shrink:0;position:relative;top:auto;z-index:4;background:#fff;padding:18px 18px 12px;border-radius:28px 28px 0 0;border-bottom:1px solid #eee}.detailFixed .detailHead{padding:4px 44px 0 2px;border-bottom:0}.detailFixed .detailHead p,.detailFixed .detailStatus{display:none}.detailScroll{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px 18px 22px}.detailActions{flex-shrink:0;background:#fff;padding:12px 18px calc(12px + env(safe-area-inset-bottom));border-top:1px solid #eee;box-shadow:0 -8px 18px rgba(0,0,0,.045)}.detailActions .reserve{position:static;width:100%;margin:0}.detailScroll .reserve{display:none}.detailPage .x{position:absolute;right:16px;top:12px;z-index:8}@media(max-width:380px){.msgFloat{top:54px;width:calc(100% - 20px);margin-left:10px;margin-right:10px}.msgFloat small{max-width:260px}}


/* v10 definitive layout fixes */
.app{position:relative;overflow:visible;padding-bottom:28px;}
.top{position:sticky;top:0;z-index:40;}
.msgFloat{
  position:sticky !important;
  top:58px !important;
  left:auto !important;
  transform:none !important;
  z-index:35 !important;
  width:calc(100% - 28px) !important;
  max-width:none !important;
  margin:12px 14px 0 !important;
  display:flex;
}
.msgFloat.hidden{display:none !important;}
.msgFloat:active{transform:scale(.99) !important;}
#detail.modal{align-items:flex-end;}
#detail .detailPage{
  height:92vh !important;
  max-height:92vh !important;
  overflow:hidden !important;
  display:flex !important;
  flex-direction:column !important;
  padding:0 !important;
}
#detailContent{
  height:100% !important;
  min-height:0 !important;
  display:flex !important;
  flex-direction:column !important;
  overflow:hidden !important;
}
#detailContent .detailFixed{
  flex:0 0 auto !important;
  position:relative !important;
  background:#fff !important;
  z-index:5 !important;
}
#detailContent .detailScroll{
  flex:1 1 auto !important;
  min-height:0 !important;
  overflow-y:auto !important;
  -webkit-overflow-scrolling:touch !important;
  padding-bottom:22px !important;
}
#detailContent .detailActions{
  flex:0 0 auto !important;
  position:relative !important;
  background:#fff !important;
  z-index:6 !important;
}
#detailContent .detailActions .reserve{
  display:block !important;
  position:static !important;
  width:100% !important;
  margin:0 !important;
}
@media(max-width:380px){.msgFloat{top:54px !important;width:calc(100% - 20px) !important;margin-left:10px !important;margin-right:10px !important;}}

.chatAvatarLine{cursor:pointer;box-shadow:0 0 0 3px rgba(6,199,85,.14),0 4px 12px rgba(0,0,0,.1)!important}.chatAvatarLine:active{transform:scale(.94)}

/* loading overlay */
#loadingOverlay{display:flex !important}.loadingBox{text-align:center;color:#fff}.loadingSpinner{width:48px;height:48px;margin:0 auto 16px;border:4px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.progressBar{width:220px;height:6px;background:rgba(255,255,255,.15);border-radius:999px;margin:12px auto 0;overflow:hidden}.progressFill{height:100%;width:0;background:linear-gradient(90deg,#06c755,#06c755);border-radius:999px;transition:width .05s linear}
.conversationList{flex:1;overflow-y:auto;background:#f7f4f2;padding:12px 12px 92px;-webkit-overflow-scrolling:touch}.convItem{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #eee;border-radius:18px;padding:11px;margin-bottom:10px;box-shadow:0 5px 14px rgba(0,0,0,.04);cursor:pointer}.convItem:active{transform:scale(.99)}.convAvatarBox{position:relative;flex-shrink:0}.convAvatarBox img{width:54px;height:54px;border-radius:50%;object-fit:cover;border:2px solid #fff;box-shadow:0 4px 12px rgba(0,0,0,.12)}.convAvatarBox i{position:absolute;right:2px;bottom:3px;width:12px;height:12px;border-radius:50%;background:#17b26a;border:2px solid #fff}.convMain{flex:1;min-width:0}.convMain div{display:flex;justify-content:space-between;gap:8px;align-items:center}.convMain b{font-size:15px;color:#241b19}.convMain span{font-size:11px;color:#aaa;font-weight:800;flex-shrink:0}.convMain p{margin:5px 0 0;color:#756760;font-size:13px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.convItem em{min-width:22px;height:22px;border-radius:50%;background:#e11d48;color:#fff;font-style:normal;font-size:12px;font-weight:900;display:flex;align-items:center;justify-content:center}.singleChatHead{flex:0 0 auto;display:flex;align-items:center;gap:11px;padding:16px 56px 12px 14px;border-bottom:1px solid #eee;background:#fff}.singleChatHead button{width:32px;height:32px;border:0;border-radius:50%;background:#f3f3f3;color:#333;font-size:24px;line-height:1}.singleChatHead img{width:46px;height:46px;border-radius:50%;object-fit:cover;border:2px solid #17b26a;cursor:pointer}.singleChatHead h3{margin:0;font-size:20px}.singleChatHead p{margin:4px 0 0;color:#7b6d66;font-size:12px;font-weight:800}.chatList.single{padding-bottom:92px}.chatPage .x{z-index:9}.chatPage .reserve{z-index:8}
