/* =========================================================================
   SOGAY · 搜同雷達 —— 赛博霓虹 / 暗黑拟物玻璃
   纯黑底 · 霓虹绿主调 · 彩虹点缀 · 玻璃质感
   ========================================================================= */
:root{
  --bg:#0d1626;             /* 海军蓝底（对标 Sniffies） */
  --ink:#eaf1fb;
  --muted:#8695ad;
  --neon:#3d8bff;            /* 主色：蓝（常规用户/按钮/状态） */
  --neon-dim:#1c4f99;
  --violet:#7b6cff;
  --cyan:#33d6ff;
  --magenta:#ff4d8d;
  --gold:#ff9d3d;            /* PLUS / VIP：暖橙 */
  --glass:rgba(18,28,48,.66);
  --glass-2:rgba(20,32,56,.85);
  --stroke:rgba(140,175,235,.18);
  --rainbow:linear-gradient(90deg,#ff4d8d,#ff9d3d,#ffe04a,#3ddc84,#33d6ff,#7b6cff);
  --radius:20px;
  --shadow:0 24px 60px rgba(0,0,0,.55);
  font-synthesis:none;
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
[hidden]{display:none!important}   /* 让 hidden 属性始终生效，压过 id 选择器的 display */
html,body{height:100%}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:"Inter","PingFang SC","Noto Sans CJK SC","Hiragino Sans","Malgun Gothic","Noto Sans Thai",system-ui,sans-serif;
  overflow:hidden;overscroll-behavior:none;
  -webkit-font-smoothing:antialiased;
}
button{font:inherit;color:inherit;cursor:pointer;border:none;background:none}
code{font-family:"SFMono-Regular",ui-monospace,Menlo,Consolas,monospace}

/* ----------------------------------------------------------------- 地图 */
#map{position:fixed;top:0;bottom:0;left:0;right:0;width:100%;height:100%;background:#070d1c;z-index:0}
.maplibregl-map{position:absolute;top:0;bottom:0;left:0;right:0;width:100%;height:100%;background:#070d1c}
.maplibregl-canvas-container{width:100%!important;height:100%!important}
.maplibregl-canvas{width:100%!important;height:100%!important;outline:none}
.maplibregl-marker{cursor:pointer}
/* 版权信息：小而暗，只留右下角 */
.maplibregl-ctrl-attrib{background:rgba(0,0,0,.4)!important;font-size:9px!important;padding:0 4px!important}
.maplibregl-ctrl-attrib a{color:#56627a!important}
.maplibregl-ctrl-attrib-button{display:none!important}
.maplibregl-ctrl-top-left,.maplibregl-ctrl-top-right,.maplibregl-ctrl-bottom-left{display:none}

/* 免费用户 2km 边界环：极淡，不抢镜 */
#lockRing{
  position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);
  border-radius:50%;pointer-events:none;z-index:3;
  border:1px solid rgba(120,160,220,.20);
}

/* ----------------------------------------------------- 地图标记（neon dots）*/
/* 水滴头像钉：渐变描边 + 右上角徽章（对标 Sniffies） */
.pin{position:relative;width:48px;height:58px;filter:drop-shadow(0 4px 6px rgba(0,0,0,.55))}

/* 渐变描边环：靠 padding + 渐变背景做出彩色边框（常规=蓝→青→紫） */
.pin-ring{
  position:absolute;left:2px;top:0;width:44px;height:44px;border-radius:50%;
  padding:2.5px;                          /* 描边厚度 */
  background:linear-gradient(135deg,#3d8bff,#33d6ff 55%,#7b6cff);
  box-shadow:0 0 12px rgba(61,139,255,.55);
}
.pin-ring::after{                          /* 水滴尖角 */
  content:"";position:absolute;left:50%;bottom:-8px;transform:translateX(-50%);
  width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;
  border-top:11px solid #3d8bff;
}
.pin-body{                                 /* 内圈盖住渐变中心，只露出描边 */
  width:100%;height:100%;border-radius:50%;overflow:hidden;
  background:#0d1626;display:grid;place-items:center;
}
.pin-av{width:100%;height:100%;object-fit:cover;display:block}
.pin-av.ph{display:grid;place-items:center;width:100%;height:100%;font-size:18px}

/* VIP=橙金渐变 / 自己=彩虹渐变 */
.pin.vip .pin-ring{background:linear-gradient(135deg,#ffd24a,#ff8a3d 60%,#ff4d8d);box-shadow:0 0 14px rgba(255,157,61,.6)}
.pin.vip .pin-ring::after{border-top-color:#ff8a3d}
.pin.me .pin-ring{background:linear-gradient(135deg,#ff4d8d,#ff9d3d,#ffe04a,#3ddc84,#33d6ff,#7b6cff);box-shadow:0 0 18px rgba(123,108,255,.6)}
.pin.me .pin-ring::after{border-top-color:#7b6cff}

/* 右上角徽章：数字(数量) 或 小图标(状态)，绝对定位 */
.pin-badge{
  position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;padding:0 5px;
  display:grid;place-items:center;border-radius:9px;
  font-size:11px;font-weight:800;line-height:1;color:#fff;
  background:linear-gradient(135deg,#ff4d8d,#ff2d6f);
  border:1.5px solid #0d1626;box-shadow:0 2px 6px rgba(0,0,0,.5);
}
.pin-badge.gold{background:linear-gradient(135deg,#ffd24a,#ff9d3d);color:#1a1200}
.pin-badge.icon{background:rgba(13,22,38,.94);border-color:rgba(140,175,235,.45)}

/* ----------------------------------------------------------------- 顶部栏 */
#topbar{
  position:fixed;top:0;left:0;right:0;z-index:20;
  display:flex;align-items:center;justify-content:space-between;
  padding:max(10px,env(safe-area-inset-top)) 14px 10px;
  background:linear-gradient(#05060aee,#05060a00);
}
.brand{display:flex;align-items:center;gap:7px;font-size:18px;letter-spacing:.5px}
.brand .logo{color:var(--neon);text-shadow:0 0 12px var(--neon);animation:blink 2.5s infinite}
@keyframes blink{50%{opacity:.45}}
.brand b{font-weight:800}
.brand i{font-style:normal;font-size:12px;color:var(--muted);letter-spacing:2px}
.top-right{display:flex;gap:8px}
.ghost{
  position:relative;
  display:grid;place-items:center;min-width:40px;height:40px;padding:0 10px;
  background:var(--glass);border:1px solid var(--stroke);border-radius:13px;
  backdrop-filter:blur(12px);font-size:14px;color:var(--ink);
}
.badge{
  position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 5px;
  border-radius:9px;background:#ff3b5c;color:#fff;font-size:11px;font-weight:700;
  display:grid;place-items:center;box-shadow:0 0 8px rgba(255,59,92,.6)
}
.ghost:active{transform:scale(.94)}
#meAvatar{font-size:18px}
#meBtn img{width:26px;height:26px;border-radius:50%;object-fit:cover}

.menu{
  position:absolute;top:58px;right:14px;z-index:25;min-width:150px;
  background:var(--glass-2);border:1px solid var(--stroke);border-radius:14px;
  backdrop-filter:blur(18px);box-shadow:var(--shadow);overflow:hidden;
}
.menu button{display:block;width:100%;text-align:left;padding:11px 16px;font-size:14px}
.menu button:hover{background:rgba(61,139,255,.10)}
.menu button.active{color:var(--neon)}

/* ----------------------------------------------------------------- 底部状态 */
#statusbar{
  position:fixed;left:0;right:0;bottom:0;z-index:20;
  display:flex;align-items:center;gap:8px;
  padding:10px 16px max(10px,env(safe-area-inset-bottom));
  font-size:12px;color:var(--muted);
  background:linear-gradient(#05060a00,#05060aee);
}
.online{width:8px;height:8px;border-radius:50%;background:#3ddc84;box-shadow:0 0 8px #3ddc84}
.online.off{background:#ff4d4d;box-shadow:0 0 8px #ff4d4d}
.pill{ /* 默认 = 免费用户的「解锁全城」CTA */
  margin-left:auto;padding:4px 12px;border-radius:999px;font-size:11px;font-weight:700;
  color:#fff;background:linear-gradient(90deg,var(--violet),var(--magenta));
  box-shadow:0 0 12px rgba(168,85,255,.45)
}
.pill.vip-on{ /* VIP = 金色光环 */
  color:#1a1200;background:linear-gradient(90deg,var(--gold),#ff9d2a);
  box-shadow:0 0 12px rgba(255,157,61,.55)
}

/* ----------------------------------------------------------- 弹窗 / 玻璃卡 */
.overlay{
  position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:18px;
  background:rgba(2,3,6,.72);backdrop-filter:blur(6px);
  animation:fade .25s ease;
}
.overlay[hidden]{display:none}
@keyframes fade{from{opacity:0}}

/* 底部上拉面板（bottom sheet）：不全屏盖地图，从底部滑出，上方地图可见 */
.overlay.sheet{display:flex;align-items:flex-end;justify-content:center;padding:0;background:rgba(2,4,10,.4);backdrop-filter:none}
.overlay.sheet .card{
  width:100%;max-width:560px;max-height:70vh;margin:0 0 70px;   /* 抬高 70px，停在底部黑栏上方 */
  border-radius:18px 18px 0 0;          /* 仅圆上方两角 */
  animation:sheetUp .3s cubic-bezier(.2,.9,.25,1);
}
.overlay.sheet .card.chat{height:60vh}  /* 聊天/动态/房间：固定较矮，像底部面板 */
.overlay.sheet .card::after{            /* 顶部抓手 */
  content:"";position:absolute;left:50%;top:7px;transform:translateX(-50%);
  width:38px;height:4px;border-radius:3px;background:rgba(255,255,255,.22);
}
@keyframes sheetUp{from{transform:translateY(100%)}}

/* 桌面端：浮块抬到底栏上方，并贴近各自按钮 —— 动态左 / VIP·房间·资料卡 中 / 消息·聊天 右 */
@media(min-width:780px){
  .overlay.sheet .card{max-width:420px;margin:0 0 80px;border-radius:18px}   /* 全圆角浮块，抬到黑栏上沿 */
  #momentsOverlay{justify-content:flex-start}
  #momentsOverlay .card{margin-left:16px}
  #inboxOverlay,#chatOverlay{justify-content:flex-end}
  #inboxOverlay .card,#chatOverlay .card{margin-right:16px}
  /* payOverlay / roomOverlay / personOverlay 继承居中 */
}

/* 地图头像悬停预览卡 */
#pinHover{position:fixed;z-index:30;transform:translate(-50%,-100%);pointer-events:none;
  display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:13px;white-space:nowrap;max-width:300px;
  background:var(--glass-2);border:1px solid rgba(var(--glow-rgb),.45);backdrop-filter:blur(16px);
  box-shadow:0 8px 22px rgba(0,0,0,.55), 0 0 14px rgba(var(--glow-rgb),.2)}
#pinHover[hidden]{display:none}
#pinHover .ph-av{width:40px;height:40px;flex:0 0 auto;border-radius:50%;object-fit:cover;background:#0a0f14;border:2px solid var(--neon)}
#pinHover b{font-size:14px;display:block;line-height:1.2}
#pinHover small{font-size:11px;color:var(--muted)}

/* 来消息弹窗（顶部横幅，粉色霓虹边，点击进对话） */
#msgNotif{position:fixed;top:calc(env(safe-area-inset-top) + 60px);left:50%;transform:translateX(-50%);z-index:60;
  display:flex;align-items:center;gap:12px;width:min(380px,92vw);padding:11px 14px;border-radius:16px;cursor:pointer;
  background:var(--glass-2);border:1px solid rgba(255,77,141,.55);backdrop-filter:blur(18px);
  box-shadow:0 12px 32px rgba(0,0,0,.55), 0 0 20px rgba(255,77,141,.4)}
#msgNotif[hidden]{display:none}
#msgNotif:not([hidden]){animation:notifDrop .35s cubic-bezier(.2,.9,.25,1)}
#msgNotif #mnAvatar{width:42px;height:42px;flex:0 0 auto;border-radius:50%;object-fit:cover;background:#0a0f14;border:2px solid var(--magenta)}
#msgNotif .mn-info{flex:1;min-width:0}
#msgNotif .mn-info b{display:block;font-size:14px}
#msgNotif .mn-info span{display:block;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#msgNotif .mn-ic{flex:0 0 auto;color:var(--magenta)}
@keyframes notifDrop{from{transform:translate(-50%,-130%);opacity:0}}

/* 有未读 → 消息图标闪烁变色 */
@keyframes navFlash{0%,100%{color:var(--ink)}50%{color:var(--magenta)}}
.nav-ico.flash{animation:navFlash 1s ease-in-out infinite;border-color:rgba(255,77,141,.5);box-shadow:0 0 12px rgba(255,77,141,.4)}
.glass.card{
  position:relative;width:min(420px,100%);max-height:92vh;overflow:auto;
  padding:26px 22px 22px;border-radius:var(--radius);
  background:
    linear-gradient(160deg,rgba(61,139,255,.06),transparent 40%),
    var(--glass-2);
  border:1px solid var(--stroke);
  box-shadow:var(--shadow),0 0 0 1px rgba(255,255,255,.03) inset;
  backdrop-filter:blur(22px) saturate(1.2);
  animation:rise .35s cubic-bezier(.2,.9,.25,1);
}
@keyframes rise{from{transform:translateY(24px) scale(.97);opacity:0}}
.glass.card::before{ /* 顶部一缕彩虹高光 */
  content:"";position:absolute;left:18px;right:18px;top:0;height:2px;border-radius:2px;
  background:var(--rainbow);opacity:.8;filter:blur(.3px)
}
.card h1,.card h2{margin:0 0 4px;font-size:22px;font-weight:800}
.neon{color:#fff;text-shadow:0 0 18px rgba(61,139,255,.55)}
.sub{margin:0 0 18px;color:var(--muted);font-size:13px;line-height:1.5}
.x{position:absolute;top:12px;right:14px;font-size:24px;color:var(--muted);line-height:1}

.field{display:block;margin:14px 0}
.field>span{display:block;margin-bottom:6px;font-size:12px;color:var(--muted)}
.row{display:flex;gap:8px}
input:not([type=range]):not([type=checkbox]),select{
  width:100%;padding:12px 14px;border-radius:13px;color:var(--ink);font-size:15px;
  background:rgba(0,0,0,.35);border:1px solid var(--stroke);outline:none;
  transition:border-color .2s,box-shadow .2s;
}
input:not([type=range]):not([type=checkbox]):focus,select:focus{border-color:var(--neon);box-shadow:0 0 0 3px rgba(61,139,255,.15)}
select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 18px) 19px,calc(100% - 13px) 19px;background-size:5px 5px;background-repeat:no-repeat}
.dice,.row>button{flex:0 0 auto;padding:0 16px;border-radius:13px;background:rgba(61,139,255,.12);border:1px solid var(--stroke);color:var(--neon)}

/* 头像选择 */
.avatar-pick{
  margin:6px auto 4px;width:104px;height:104px;border-radius:50%;
  display:grid;place-items:center;cursor:pointer;position:relative;text-align:center;
  background:rgba(0,0,0,.35);
  border:2px dashed rgba(61,139,255,.4);color:var(--muted);
  transition:transform .15s,border-color .2s;
}
.avatar-pick:active{transform:scale(.96)}
.avatar-pick:hover{border-color:var(--neon)}
.avatar-pick #avatarPlus{font-size:30px;color:var(--neon);line-height:1}
.avatar-pick small{position:absolute;bottom:14px;font-size:10px}
.avatar-pick img{width:100%;height:100%;border-radius:50%;object-fit:cover}

/* 主行动按钮 */
.enter-btn{
  width:100%;margin-top:18px;padding:15px;border-radius:15px;font-size:16px;font-weight:800;
  color:#0a0014;background:linear-gradient(100deg,var(--violet),var(--magenta) 55%,var(--neon));
  box-shadow:0 10px 30px rgba(168,85,255,.45),0 0 0 1px rgba(255,255,255,.15) inset;
  letter-spacing:.5px;transition:transform .12s,filter .2s;
}
.enter-btn:active{transform:translateY(1px) scale(.99)}
.enter-btn:hover{filter:brightness(1.08)}
.enter-btn.wide{margin-top:14px}
.ghost.wide{width:100%;height:auto;padding:13px;border-radius:14px;margin-top:12px}

.tiny{margin:12px 2px 0;font-size:11px;color:var(--muted);line-height:1.5;text-align:center}
.tiny.warn{color:#ffcf6a;text-align:left}
.muted{color:var(--muted);font-size:13px}

/* 恢复暗号 */
.restore{margin-top:16px;border-top:1px solid var(--stroke);padding-top:12px}
.restore summary{font-size:12px;color:var(--cyan);cursor:pointer;list-style:none}
.restore summary::-webkit-details-marker{display:none}
.restore .row{margin-top:10px}

/* 我的资料卡 */
.me-head{display:flex;align-items:center;gap:14px;margin:6px 0 16px}
.me-head img{width:64px;height:64px;border-radius:50%;object-fit:cover;border:2px solid var(--neon);box-shadow:0 0 14px rgba(61,139,255,.5)}
.me-head b{font-size:18px;display:block}
.token-box{background:rgba(0,0,0,.35);border:1px solid var(--stroke);border-radius:14px;padding:14px}
.token-box>label{font-size:12px;color:var(--cyan)}
.token-box code{display:block;flex:1;padding:10px 12px;background:rgba(0,0,0,.4);border-radius:10px;font-size:12px;word-break:break-all;color:var(--neon)}
.token-box .row{margin-top:8px;align-items:stretch}
.token-box button{white-space:nowrap}

/* 付费卡 */
.perks{display:flex;flex-direction:column;gap:8px;margin:14px 0}
.perks span{position:relative;padding-left:24px;font-size:14px}
.perks span::before{content:"✦";position:absolute;left:0;color:var(--neon);text-shadow:0 0 8px var(--neon)}
.buy-hint{margin:8px 0 0;padding:12px;border-radius:12px;font-size:13px;line-height:1.6;
  background:linear-gradient(100deg,rgba(168,85,255,.14),rgba(51,214,255,.10));
  border:1px solid var(--stroke)}
#payMsg{min-height:16px}
#payMsg.ok{color:var(--neon)}#payMsg.err{color:#ff6b6b}

/* Toast */
#toast{
  position:fixed;left:50%;bottom:74px;transform:translateX(-50%);z-index:60;
  max-width:86vw;padding:12px 18px;border-radius:14px;font-size:13px;
  background:var(--glass-2);border:1px solid var(--stroke);backdrop-filter:blur(16px);
  box-shadow:var(--shadow);animation:rise .3s;
}
#toast[hidden]{display:none}

/* ----------------------------------------------------- 筛选抽屉 */
.drawer{
  position:fixed;top:0;left:0;bottom:0;z-index:45;width:min(330px,86vw);
  display:flex;flex-direction:column;
  background:linear-gradient(180deg,rgba(20,26,38,.94),rgba(8,10,16,.96));
  border-right:1px solid var(--stroke);backdrop-filter:blur(22px) saturate(1.2);
  box-shadow:18px 0 60px rgba(0,0,0,.6);
  animation:slideIn .32s cubic-bezier(.2,.9,.25,1);
}
@keyframes slideIn{from{transform:translateX(-100%);opacity:.6}}
.drawer-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:max(16px,env(safe-area-inset-top)) 18px 14px;border-bottom:1px solid var(--stroke);
}
.drawer-head b{font-size:18px}
.drawer-head .x{position:static}
.drawer-body{padding:18px;overflow:auto;display:flex;flex-direction:column;gap:20px}
.filter-group>label{display:block;font-size:12px;color:var(--muted);margin-bottom:9px}
.range-row{display:flex;align-items:center;gap:8px}
.range-row .dash{color:var(--muted)}
.accent{color:var(--neon)}
.lock{display:block;margin-top:7px;color:#ffcf6a}
.filter-count{font-size:12px;color:var(--cyan);text-align:center;letter-spacing:.5px}

/* 霓虹滑杆 */
input[type=range]{
  -webkit-appearance:none;appearance:none;width:100%;height:4px;padding:0;border:none;
  background:linear-gradient(90deg,var(--neon),var(--cyan));border-radius:99px;
  box-shadow:0 0 10px rgba(61,139,255,.4);outline:none;
}
input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none;width:20px;height:20px;border-radius:50%;cursor:pointer;
  background:#0a0f14;border:2px solid var(--neon);box-shadow:0 0 12px var(--neon);
}
input[type=range]::-moz-range-thumb{
  width:18px;height:18px;border-radius:50%;cursor:pointer;
  background:#0a0f14;border:2px solid var(--neon);box-shadow:0 0 12px var(--neon);
}
input[type=range]:disabled{opacity:.35;filter:grayscale(.6)}

/* 霓虹开关 */
.toggle{display:flex;align-items:center;justify-content:space-between;font-size:14px;cursor:pointer}
.toggle input{display:none}
.toggle i{
  position:relative;flex:0 0 auto;width:46px;height:26px;border-radius:99px;
  background:rgba(255,255,255,.12);border:1px solid var(--stroke);transition:background .25s;
}
.toggle i::after{
  content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;
  background:#cdd6df;transition:transform .24s,background .25s;
}
.toggle input:checked + i{background:linear-gradient(90deg,var(--neon-dim),var(--neon));box-shadow:0 0 12px rgba(61,139,255,.5)}
.toggle input:checked + i::after{transform:translateX(20px);background:#04120c}

/* ----------------------------------------------------- 附近用户资料卡 */
.card.person{text-align:center;width:min(360px,100%)}
.person-hero{position:relative;width:128px;height:128px;margin:8px auto 14px}
.person-hero img{width:100%;height:100%;border-radius:50%;object-fit:cover;background:#0a0f14;
  border:3px solid var(--neon);box-shadow:0 0 26px rgba(61,139,255,.5)}
.person-hero .halo{position:absolute;right:0;bottom:6px;font-size:26px;filter:drop-shadow(0 0 8px var(--gold))}
.person-meta b{font-size:22px}
.person-meta .muted{margin-left:8px;font-size:16px}
.person-stats{display:flex;justify-content:center;gap:12px;margin:18px 0 4px}
.person-stats .stat{flex:1;background:rgba(0,0,0,.3);border:1px solid var(--stroke);border-radius:14px;padding:13px 6px}
.person-stats .stat b{display:block;font-size:17px;color:var(--neon)}
.person-stats .stat small{display:block;margin-top:5px;font-size:11px;color:var(--muted)}
.person-stats .stat .online{display:inline-block;width:11px;height:11px}

/* ----------------------------------------------------- 私信聊天 */
.card.chat{width:min(420px,100%);height:min(82vh,640px);max-height:none;padding:0;display:flex;flex-direction:column;overflow:hidden}
.chat-head{display:flex;align-items:center;gap:10px;padding:16px 18px;border-bottom:1px solid var(--stroke)}
.chat-head .x{position:static;order:3;margin-left:auto}
.chat-head img{width:38px;height:38px;border-radius:50%;object-fit:cover;background:#0a0f14;border:2px solid var(--neon);box-shadow:0 0 10px rgba(61,139,255,.5)}
.chat-head b{font-size:16px}
.chat-head .online{width:9px;height:9px}
.chat-body{flex:1;min-height:0;overflow-y:auto;padding:16px 16px 8px;display:flex;flex-direction:column;gap:8px}
.chat-empty{margin:auto;color:var(--muted);font-size:13px}
.bubble{max-width:78%;padding:9px 13px;border-radius:16px;font-size:14px;line-height:1.45;word-break:break-word;animation:rise .2s}
.bubble.them{align-self:flex-start;background:rgba(255,255,255,.08);border:1px solid var(--stroke);border-bottom-left-radius:5px}
.bubble.me{align-self:flex-end;color:#04120c;background:linear-gradient(100deg,var(--cyan),var(--neon));border-bottom-right-radius:5px}
.chat-burn{margin:0!important;padding:7px 16px;text-align:center;color:#ff9d6a!important}
.chat-input{display:flex;gap:8px;padding:12px 14px max(12px,env(safe-area-inset-bottom));border-top:1px solid var(--stroke)}
.chat-input input{flex:1}
.send-btn{flex:0 0 auto;width:48px;border-radius:13px;font-size:18px;color:#04120c;
  background:linear-gradient(100deg,var(--violet),var(--neon));box-shadow:0 6px 18px rgba(168,85,255,.4)}
.send-btn:active{transform:scale(.94)}
.send-btn.alt{color:var(--neon);background:rgba(61,139,255,.12);border:1px solid var(--stroke);box-shadow:none;font-size:16px}
.send-btn.alt.flash{color:#ff9d4a;background:rgba(255,157,74,.14)}
.bubble.imgmsg{padding:4px}
.chat-img{display:block;max-width:200px;max-height:240px;border-radius:12px;cursor:pointer}

/* 今日动态列表 */
.moment-row{display:flex;gap:12px;padding:11px 6px;border-bottom:1px solid var(--stroke)}
.moment-row.mine{background:rgba(43,217,255,.07);border-radius:12px;border-bottom-color:transparent}
.moment-row .m-av{width:46px;height:46px;flex:0 0 auto;border-radius:50%;object-fit:cover;background:#0a0f14;border:2px solid var(--neon);box-shadow:0 0 8px rgba(61,139,255,.4)}
.moment-row .info{flex:1;min-width:0}
.moment-row .m-top{display:flex;align-items:center;gap:8px}
.moment-row .m-top b{font-size:15px}
.tag-chip.mini{padding:1px 8px;font-size:10px}
.moment-row .info small{display:block;color:var(--muted);font-size:11px;margin:2px 0 4px}
.moment-row .m-text{margin:0;font-size:13px;line-height:1.45;color:var(--ink);word-break:break-word}
.moment-row .m-act{flex:0 0 auto;align-self:center;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-size:16px;color:var(--ink);background:rgba(61,139,255,.16);border:1px solid var(--stroke)}
.moment-row .m-act:active{transform:scale(.92)}
.photo-viewer .burn-hint{font-size:15px;font-weight:700}

/* 闪照气泡 */
.bubble.photo{cursor:default;font-size:13px}
.bubble.photo.locked{cursor:pointer;color:#fff;border:1px dashed var(--neon);
  background:repeating-linear-gradient(45deg,rgba(168,85,255,.20),rgba(168,85,255,.20) 9px,rgba(51,214,255,.20) 9px,rgba(51,214,255,.20) 18px)}
.bubble.photo.burned{opacity:.55;font-style:italic;background:rgba(255,255,255,.05);color:var(--muted)}

/* 闪照查看器 */
.photo-viewer{background:rgba(0,0,0,.94)}
.photo-viewer img{max-width:94vw;max-height:78vh;border-radius:12px;box-shadow:0 0 50px rgba(0,0,0,.9)}
.photo-viewer .x{position:absolute;top:max(16px,env(safe-area-inset-top));right:22px;font-size:30px;color:#fff;z-index:2}
.photo-viewer .burn-hint{color:#ff9d6a!important;margin-top:16px!important}

/* ----------------------------------------------------- 收件箱 */
.inbox-list{display:flex;flex-direction:column;gap:8px;margin:16px 0 6px;max-height:62vh;overflow:auto}
.inbox-row{display:flex;align-items:center;gap:12px;padding:10px;border:1px solid var(--stroke);
  border-radius:14px;background:rgba(0,0,0,.3);cursor:pointer;transition:transform .12s}
.inbox-row:active{transform:scale(.99)}
.inbox-row img{width:44px;height:44px;border-radius:50%;object-fit:cover;flex:0 0 auto;
  background:#0a0f14;border:2px solid var(--neon);box-shadow:0 0 8px rgba(61,139,255,.4)}
.inbox-row .info{flex:1;min-width:0}
.inbox-row .info b{display:block;font-size:15px}
.inbox-row .info small{display:block;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inbox-row .un{flex:0 0 auto;min-width:18px;height:18px;padding:0 5px;border-radius:9px;
  background:#ff3b5c;color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center}

/* ----------------------------------------------------- 落地页 hero */
.hero{text-align:center;margin:-4px 0 14px}
.hero-logo{font-size:40px;color:var(--neon);text-shadow:0 0 22px var(--neon);line-height:1;animation:blink 2.5s infinite}
.hero-word{margin:6px 0 12px;font-weight:800;letter-spacing:3px;font-size:15px}
.hero-word i{font-style:normal;color:var(--muted);letter-spacing:2px;font-size:11px}
.hero h1{font-size:20px}

/* 角色/身材标签 */
.person-tags{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:4px 0 2px;min-height:0}
.tag-chip{padding:4px 12px;border-radius:999px;font-size:12px;font-weight:600;color:var(--cyan);
  background:rgba(51,214,255,.12);border:1px solid var(--stroke)}

/* 底部 nav 小按钮 */
.navmini{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;font-size:16px;
  background:var(--glass);border:1px solid var(--stroke);color:var(--ink)}
.navmini:active{transform:scale(.92)}

/* 设置 */
.set-group{margin:16px 0}
.set-group>label{display:block;font-size:12px;color:var(--muted);margin-bottom:9px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{padding:8px 14px;border-radius:12px;font-size:13px;color:var(--ink);
  background:rgba(0,0,0,.3);border:1px solid var(--stroke)}
.chip.on{color:var(--neon);border-color:var(--neon);box-shadow:0 0 10px rgba(61,139,255,.2)}
.seg{display:inline-flex;border:1px solid var(--stroke);border-radius:12px;overflow:hidden}
.seg button{padding:9px 22px;font-size:14px;color:var(--muted)}
.seg button.on{color:#04120c;background:var(--neon);font-weight:700}
.ghost.wide.danger{color:#ff6b6b;border-color:rgba(255,107,107,.4)}

/* 地点/群组 行图标 + 群聊昵称 */
.place-ic{width:44px;height:44px;flex:0 0 auto;display:grid;place-items:center;font-size:20px;
  border-radius:50%;background:rgba(61,139,255,.1);border:1px solid var(--stroke)}
.room-ic{font-size:20px;margin-right:2px}
.room-nick{display:block;font-size:11px;color:var(--cyan);margin-bottom:2px;font-weight:700}

/* PLUS 落地 */
.plus-hero{text-align:center;margin:2px 0 12px}
.plus-hero .crown{display:block;font-size:40px;filter:drop-shadow(0 0 12px var(--gold))}
.plus-hero b{display:block;margin-top:6px;letter-spacing:2px}
.plus-hero .plus-days{display:inline-block;margin-top:8px;padding:4px 14px;border-radius:999px;font-size:12px;font-weight:700;
  color:#1a1200;background:linear-gradient(90deg,var(--gold),#ff9d2a);box-shadow:0 0 12px rgba(255,157,61,.5)}

/* ============================ Sniffies 式外壳 ============================ */
#topbar{justify-content:space-between;padding:max(10px,env(safe-area-inset-top)) 12px 8px;
  background:rgba(9,16,30,.9);border-bottom:1px solid var(--stroke);backdrop-filter:blur(14px)}
.avatar-pill{position:relative;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;
  background:var(--glass);border:1px solid var(--stroke);backdrop-filter:blur(12px);color:var(--ink)}
.avatar-pill #meAvatar{font-size:20px}
.avatar-pill img{width:38px;height:38px;border-radius:50%;object-fit:cover}
.avatar-pill .live{position:absolute;right:-1px;bottom:-1px;width:11px;height:11px;border-radius:50%;
  background:#3ddc84;border:2px solid #0a1120;box-shadow:0 0 7px #3ddc84}
.brand{position:absolute;left:50%;top:max(12px,env(safe-area-inset-top));transform:translateX(-50%);
  display:flex;align-items:center;gap:5px;color:var(--ink);font-size:19px;height:42px}
.brand b{font-weight:800;letter-spacing:1px;text-shadow:0 0 14px rgba(61,139,255,.4)}
.brand .caret{font-style:normal;font-size:12px;color:var(--neon)}
.burger{font-size:18px}
#statusPill{position:fixed;left:50%;top:calc(env(safe-area-inset-top) + 52px);transform:translateX(-50%);
  z-index:19;display:flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;font-size:11px;color:var(--muted);
  background:rgba(8,10,16,.72);border:1px solid var(--stroke);backdrop-filter:blur(10px)}

/* 右侧菜单抽屉 */
.drawer.right{left:auto;right:0;border-right:none;border-left:1px solid var(--stroke);
  box-shadow:-18px 0 60px rgba(0,0,0,.6);animation:slideInR .32s cubic-bezier(.2,.9,.25,1)}
@keyframes slideInR{from{transform:translateX(100%);opacity:.6}}
.sub2{font-style:normal;font-size:11px;color:var(--muted);letter-spacing:2px}
.menu-list{gap:8px}
.menu-row{display:flex;align-items:center;gap:14px;padding:14px 12px;border-radius:14px;
  background:rgba(0,0,0,.25);border:1px solid var(--stroke);color:var(--ink);font-size:15px;text-align:left}
.menu-row span{font-size:20px;width:26px;text-align:center}
.menu-row:active{transform:scale(.99);background:rgba(61,139,255,.1)}
.menu-row.gold{background:linear-gradient(100deg,rgba(255,157,61,.16),rgba(255,157,42,.10));border-color:rgba(255,157,61,.35)}
.menu-row.gold span{filter:drop-shadow(0 0 6px var(--gold))}

/* 底部导航 */
#bottomnav{position:fixed;left:0;right:0;bottom:0;z-index:20;
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 26px max(12px,env(safe-area-inset-bottom));
  background:rgba(9,16,30,.92);border-top:1px solid var(--stroke);backdrop-filter:blur(14px)}
.nav-ico{position:relative;width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font-size:20px;
  color:var(--ink);background:var(--glass);border:1px solid var(--stroke);backdrop-filter:blur(12px)}
.nav-ico:active{transform:scale(.92)}
.plus-cta{padding:12px 34px;border-radius:999px;font-weight:800;font-size:15px;letter-spacing:1px;color:#1a1200;
  background:linear-gradient(90deg,var(--gold),#ff9d2a);box-shadow:0 8px 24px rgba(255,157,42,.45)}
.plus-cta:active{transform:translateY(1px) scale(.98)}

/* 桌面端把卡片收窄居中、地图当背景 */
@media(min-width:780px){
  .overlay{padding:40px}
}

/* ============================ 全站霓虹蓝一体化 ============================ */
/* 基准霓虹蓝（与地图街道同色相） */
:root{ --glow:#2bd9ff; --glow-rgb:43,217,255; }

/* 顶栏：1px 蓝下边框 + 蓝色发光 */
#topbar{
  border-bottom:1px solid rgba(var(--glow-rgb),.45);
  box-shadow:0 1px 16px rgba(var(--glow-rgb),.16);
}
/* 底栏：1px 蓝上边框 + 蓝色发光 */
#bottomnav{
  border-top:1px solid rgba(var(--glow-rgb),.45);
  box-shadow:0 -1px 16px rgba(var(--glow-rgb),.16);
}
/* 状态小药丸描边同色 */
#statusPill{ border-color:rgba(var(--glow-rgb),.32) }

/* 玻璃卡片：蓝色霓虹光晕 */
.glass.card{
  box-shadow:var(--shadow), 0 0 16px rgba(var(--glow-rgb),.22), 0 0 0 1px rgba(var(--glow-rgb),.12) inset;
}
/* 右侧菜单抽屉也带一缕蓝光，保持统一 */
.drawer{ box-shadow:18px 0 60px rgba(0,0,0,.6), 0 0 22px rgba(var(--glow-rgb),.14) }
.drawer.right{ box-shadow:-18px 0 60px rgba(0,0,0,.6), 0 0 22px rgba(var(--glow-rgb),.14) }

/* 顶栏图标/头像药丸描边微微透蓝，呼应主色 */
.ghost,.nav-ico,.avatar-pill{ border-color:rgba(var(--glow-rgb),.28) }

/* 「尊享 VIP」按钮：暗蓝 → 霓虹蓝渐变（与全站色相统一） */
.plus-cta{
  color:#04121a;
  background:linear-gradient(100deg,#0b3a52,#1f8fc0 46%,#2bd9ff);
  box-shadow:0 6px 22px rgba(var(--glow-rgb),.40);
}
.plus-cta.vip{ background:linear-gradient(100deg,#0b3a52,#2bd9ff) }

/* ==================== 全宽黑色通栏 + 栏内图标 60px 内缩 ==================== */
/* 顶部通栏：100% 宽、实色暗蓝黑底、蓝光下边框；内容左右各内缩 60px */
#topbar{
  position:fixed;top:0;left:0;right:0;width:100%;z-index:20;
  display:flex;align-items:center;justify-content:space-between;
  padding:max(10px,env(safe-area-inset-top)) 60px 10px;
  background:rgba(9,16,30,.94);
  border-bottom:1px solid rgba(var(--glow-rgb),.45);
  box-shadow:0 2px 18px rgba(var(--glow-rgb),.16);
  backdrop-filter:blur(14px);
}
/* 底部通栏：100% 宽、实色底、蓝光上边框；内容左右各内缩 60px */
#bottomnav{
  position:fixed;bottom:0;left:0;right:0;width:100%;z-index:20;
  display:flex;align-items:center;justify-content:space-between;
  padding:9px 60px max(11px,calc(env(safe-area-inset-bottom) + 3px));
  background:rgba(9,16,30,.94);
  border-top:1px solid rgba(var(--glow-rgb),.45);
  box-shadow:0 -2px 18px rgba(var(--glow-rgb),.16);
  backdrop-filter:blur(14px);
}

/* 中：SOGAY 搜同雷达，水平+垂直绝对居中 */
.brand{ left:50%; top:50%; transform:translate(-50%,-50%); font-size:20px; gap:0 }
.brand b{ font-weight:800; letter-spacing:1px; text-shadow:0 0 14px rgba(var(--glow-rgb),.55) }
.brand .radar{ font-size:11px; color:var(--muted); letter-spacing:1px; margin:0 4px 0 6px }
.brand .caret{ color:var(--glow); transition:transform .22s; transform-origin:center }
.brand.open .caret{ transform:rotate(90deg) }   /* 下拉打开 → > 旋转指向下方 */
.avatar-pill{ border-color:rgba(var(--glow-rgb),.5) }

/* 右上：语言切换 + 菜单 并排 */
.top-actions{ display:flex; align-items:center; gap:8px }
.lang-btn{ min-width:auto; height:40px; padding:0 12px; font-size:13px; letter-spacing:.5px }
/* 语言下拉：定位到右上角语言按钮下方 */
#langMenu{ left:auto; right:60px; transform:none; top:calc(env(safe-area-inset-top) + 54px); min-width:140px }

/* 品牌信息下拉面板（居中于品牌正下方，对标 Sniffies） */
.brand-menu{
  position:fixed; left:50%; transform:translateX(-50%);
  top:calc(env(safe-area-inset-top) + 54px); z-index:25;
  width:min(340px,92vw); max-height:78vh; overflow-y:auto;
  background:var(--glass-2); border:1px solid rgba(var(--glow-rgb),.4);
  border-radius:16px; backdrop-filter:blur(20px);
  box-shadow:var(--shadow), 0 0 18px rgba(var(--glow-rgb),.22);
  padding:14px;
}
.bm-card{ background:rgba(0,0,0,.3); border:1px solid var(--stroke); border-radius:14px; padding:14px; margin-bottom:10px }
.bm-img{ display:block; width:100%; height:140px; object-fit:cover; border-radius:11px; margin-bottom:10px; background:#0a1322 }
.bm-card b{ display:block; font-size:15px; margin-bottom:5px }
.bm-card p{ margin:0; font-size:12px; color:var(--muted); line-height:1.55; white-space:pre-line }
.bm-card.bm-vip{ background:linear-gradient(110deg,rgba(43,217,255,.14),rgba(11,58,82,.25)); border-color:rgba(var(--glow-rgb),.35) }
.bm-btn{ margin-top:11px; padding:9px 18px; border-radius:11px; font-weight:700; font-size:13px; color:#04121a; background:linear-gradient(100deg,#1f8fc0,#2bd9ff) }
.bm-btn:active{ transform:scale(.97) }
.bm-links{ display:flex; justify-content:center; gap:8px; flex-wrap:wrap; margin:10px 0 6px; font-size:12px }
.bm-links a{ color:var(--cyan); text-decoration:none }
.bm-links span{ color:var(--muted) }
.bm-copy{ text-align:center; font-size:10px; color:var(--muted); margin:4px 0 }
.bm-report{ display:block; text-align:center; font-size:11px; color:var(--cyan); margin-top:5px }

/* 筛选芯片：4 列网格，让「角色」「体型」两排整齐对齐 */
#fRoleChips,#fBodyChips{ display:grid; grid-template-columns:repeat(4,1fr); gap:8px }
#fRoleChips .chip,#fBodyChips .chip{ padding:9px 4px; text-align:center; font-size:13px }

/* 底部中央：尊享 VIP 绝对居中，雷打不动（相对底栏绝对定位） */
.plus-cta{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
.plus-cta:active{transform:translate(-50%,-50%) scale(.97)}

/* 顶部通栏下方：实时连接药丸居中 */
#statusPill{top:calc(env(safe-area-inset-top) + 56px)}

/* 两侧广告位占位（默认 hidden，需要时去掉 hidden 即可） */
.adslot{position:fixed;top:0;bottom:0;width:60px;z-index:5}
#adLeft{left:0}
#adRight{right:0}

/* 移动端：黑栏内缩降到 16px，避免太挤 */
@media(max-width:780px){
  #topbar{padding-left:16px;padding-right:16px}
  #bottomnav{padding-left:16px;padding-right:16px}
  .bb-txt small{display:none}
}
