
/* 页面淡入 */
body{animation:pageFade .25s ease-out}
@keyframes pageFade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
/* 卡片懒加载淡入 */
.lcard{animation:cardFade .3s ease-out}
@keyframes cardFade{from{opacity:0}to{opacity:1}}
.map-loc-btn{position:absolute;top:10px;right:10px;z-index:100;width:40px;height:40px;border-radius:50%;background:#fff;border:1px solid rgba(0,0,0,.12);box-shadow:0 2px 6px rgba(0,0,0,.18);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;outline:none}.map-loc-btn:active{background:#f3f4f6}.map-loc-btn svg{width:20px;height:20px}
/* 地图容器自成层，内部 pane(200~700) 不外泄；控件抬到弹窗层(700)之上，但整体仍在客服(55)/底栏(60)之下 */
.leaflet-container{z-index:0;position:relative}
/* 详情页地图 popup：纯文字在标识右侧，无背景无箭头 */
.leaflet-popup-content-wrapper{
  background:#fff!important;
  box-shadow:0 2px 8px rgba(0,0,0,.15)!important;
  border-radius:8px!important;
  padding:4px 10px!important;
}
.leaflet-popup-content{margin:0!important;line-height:1.4!important;font-size:12px!important;color:#111827!important}
.leaflet-popup-tip-container{display:none!important}
.leaflet-top,.leaflet-bottom{position:absolute;z-index:100 !important;pointer-events:auto}
/* ===== 租房推荐网站 共享样式（贝壳风·移动优先） ===== */
:root{
  --blue:#1E3A8A; --blue2:#2746a3; --orange:#F97316; --gray:#6B7280;
  --bg:#F3F4F6; --card:#FFFFFF; --line:#E5E7EB; --txt:#111827; --sub:#6B7280;
  --green:#10B981; --red:#EF4444; --radius:14px;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%}
body{
  background:var(--bg); color:var(--txt);
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Segoe UI",sans-serif;
  font-size:15px; line-height:1.5;
  padding-bottom:calc(68px + env(safe-area-inset-bottom));
  padding-top:env(safe-area-inset-top);
}
img{display:block}
a{color:var(--blue);text-decoration:none}

/* ===== 顶部栏 ===== */
.topbar{
  position:sticky; top:0; z-index:50;
  background:var(--blue); color:#fff;
  padding:6px 14px; display:flex; align-items:center; gap:10px;
  box-shadow:0 2px 8px rgba(30,58,138,.25);
}
.topbar .title{flex:1; min-width:0; font-size:17px; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.topbar .sub{font-size:12px; opacity:.85; font-weight:400}
.topbar .back{
  width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,.15);
  display:flex; align-items:center; justify-content:center; color:#fff; cursor:pointer; flex:none;
}
.topbar .back:active{background:rgba(255,255,255,.3)}
.topbar .back svg{width:18px;height:18px}
.topbar .act{
  flex:none; color:#fff; font-size:13px; cursor:pointer; padding:6px 10px;
  border-radius:999px; background:rgba(255,255,255,.15);
}
.topbar .act:active{background:rgba(255,255,255,.3)}

/* ===== 公告 ===== */
.notice{
  background:#FFF7ED; color:#9A3412; font-size:13px;
  padding:8px 14px; display:flex; align-items:center; gap:6px; overflow:hidden;
  border-bottom:1px solid #FED7AA;
}
.notice .tag{flex:none; background:var(--orange); color:#fff; font-size:11px; padding:1px 6px; border-radius:4px}
.notice .marquee{flex:1; overflow:hidden; white-space:nowrap; position:relative}
.notice .marquee span{display:inline-block; padding-left:100%; animation:scrollx 16s linear infinite}
@keyframes scrollx{0%{transform:translateX(0)}100%{transform:translateX(-100%)}}

/* ===== 区块 ===== */
.sec{margin:14px 0}
.sec-hd{display:flex; align-items:center; justify-content:space-between; padding:0 14px; margin-bottom:10px}
.sec-hd .t{font-size:15px; font-weight:700; flex:1; min-width:0; line-height:1.5}
.sec-hd .more{font-size:12px; color:var(--gray); cursor:pointer; flex-shrink:0; white-space:nowrap; margin-left:8px; align-self:center}
.pad{padding:0 14px}

/* ===== 广告位 ===== */
.ad{
  margin:8px 14px; background:linear-gradient(120deg,#1E3A8A,#2746a3); color:#fff;
  border-radius:var(--radius); padding:8px 12px; display:flex; align-items:center; gap:10px;
  box-shadow:0 4px 12px rgba(30,58,138,.25);
}
.ad .txt{flex:1; font-size:14px; font-weight:600}
.ad .go{flex:none; font-size:12px; background:var(--orange); padding:5px 12px; border-radius:999px}
.ad img{width:64px;height:64px;border-radius:10px;object-fit:cover;flex:none}

/* 轮播广告位：宽度满屏，高度固定200px，图片cover铺满 */
.ad-carousel{position:relative;margin:0;height:80px;border-radius:0;overflow:hidden;background:#f3f4f6;cursor:pointer}
.ad-carousel .ad-slide{width:100%;height:100%;object-fit:fill;display:block}
.ad-carousel .ad-slide:not(:first-child){position:absolute;top:0;left:0;opacity:0;transition:opacity .6s}
.ad-carousel .ad-slide.active{opacity:1}
.ad-carousel .ad-dots{position:absolute;bottom:6px;right:8px;display:flex;gap:4px}
.ad-carousel .ad-dots i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.6)}
.ad-carousel .ad-dots i.on{background:#fff}

/* ===== 搜索 & 筛选 ===== */
.searchbar{
  margin:8px 14px; display:flex; gap:8px;
  background:#fff; border-radius:12px; padding:6px;
  box-shadow:0 1px 4px rgba(0,0,0,.05);
}
.searchbar input{
  flex:1; border:none; outline:none; font-size:15px; background:transparent; min-width:0;
}
.searchbar .go{
  flex:none; background:var(--blue); color:#fff; border:none; border-radius:9px;
  padding:9px 16px; font-size:14px; cursor:pointer;
}
.filters{display:flex; gap:8px; overflow-x:auto; padding:0 14px 4px; -webkit-overflow-scrolling:touch}
.filters::-webkit-scrollbar{display:none}
.fchip{
  flex:none; padding:7px 14px; border-radius:999px; font-size:13px; cursor:pointer;
  background:#fff; border:1px solid var(--line); color:var(--txt); white-space:nowrap;
}
/* 筛选按键 6 列网格：自动适应屏幕宽度，每行 6 个，超出自动换行 */
#filterRow, #featRow{
  display:grid; grid-template-columns:repeat(6,1fr); gap:8px;
  overflow:visible; padding:0 14px 4px; flex-wrap:nowrap;
}
#filterRow .fchip, #featRow .fchip{
  width:100%; text-align:center; padding:7px 4px; overflow:hidden;
  text-overflow:ellipsis;
}
/* 窄屏（手机/APP）：6 列按钮文字完整显示，缩小字号与内边距，避免被截断成省略号 */
@media (max-width:480px){
  #filterRow, #featRow{ gap:6px; padding:0 8px 4px; }
  #filterRow .fchip, #featRow .fchip{
    font-size:11px; padding:5px 1px; line-height:1.4;
  }
}
.fchip.on{background:var(--blue); border-color:var(--blue); color:#fff}
/* 4行选择按钮选中色：距离-橙 / 筛选-绿 / 特色-红 / 切换-黄 */
#kmRow .fchip.on{background:#F97316; border-color:#F97316; color:#fff}
#filterRow .fchip.on{background:#10B981; border-color:#10B981; color:#fff}
#featRow .fchip.on{background:#EF4444; border-color:#EF4444; color:#fff}
.viewswitch .vs.on{background:#F59E0B; color:#fff; font-weight:600; box-shadow:0 1px 3px rgba(0,0,0,.12)}
.fchip .arrow{font-size:10px; margin-left:4px; opacity:.7}

/* ===== 区域下拉 ===== */
.row3{display:flex; gap:8px}
.fsel{
  flex:1; min-width:0; padding:8px 10px; font-size:13px; color:var(--txt);
  border:1px solid var(--line); border-radius:8px; background:#fff;
  -webkit-appearance:none; appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,#9CA3AF 50%),linear-gradient(135deg,#9CA3AF 50%,transparent 50%);
  background-position:calc(100% - 16px) 50%,calc(100% - 11px) 50%;
  background-size:5px 5px; background-repeat:no-repeat;
}

.loc-btn{
  display:inline-block; padding:6px 14px; font-size:13px; color:#fff;
  background:linear-gradient(135deg,#1E3A8A,#2748B8); border-radius:999px; cursor:pointer;
}

/* ===== 全部房源 / 地图房源 切换 ===== */
.viewswitch{
  display:flex; margin:0 14px 12px; background:#fff;
  border:1.5px solid #E5E7EB; border-radius:12px; padding:4px;
}
.viewswitch .vs{
  flex:1; text-align:center; padding:8px 0; font-size:14px; color:#374151; cursor:pointer;
  border-radius:9px; background:#F3F4F6; border:1px solid #E5E7EB;
}
.viewswitch .vs + .vs{margin-left:6px}
.viewswitch .vs.on{background:#F59E0B; border-color:#F59E0B; color:#fff; font-weight:600; box-shadow:0 1px 3px rgba(0,0,0,.12)}

/* ===== 房源卡片 ===== */
.grid{display:grid; grid-template-columns:repeat(2,1fr); gap:12px; padding:0 14px; align-items:start}
.cols{display:flex;align-items:flex-start;gap:12px;padding:0 14px}
.col{flex:1;min-width:0;display:flex;flex-direction:column;gap:12px}

.lcard{
  background:var(--card); border-radius:var(--radius); overflow:hidden; cursor:pointer;
  box-shadow:0 1px 4px rgba(0,0,0,.06); position:relative;
}
.lcard:active{transform:scale(.98)}
.lcard .cover{position:relative; aspect-ratio:4/3; background:#EDEFF2}
.lcard .cover img,.lcard .cover video{width:100%;height:100%;object-fit:cover}
.lcard .cover .ph,.hcard .cover .ph{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:#B0B7C3;
}
.lcard .cover .ph svg,.hcard .cover .ph svg{width:34px;height:34px}
.lcard .badge,.hcard .badge{
  position:absolute; top:8px; left:8px; z-index:2;
  font-size:11px; padding:2px 8px; border-radius:999px; color:#fff;
}
.lcard .badge.b-off,.hcard .badge.b-off{background:rgba(17,24,39,.65)}
.lcard .badge.b-pend,.hcard .badge.b-pend{background:#F97316}
.lcard .badge.b-paid,.hcard .badge.b-paid{background:var(--orange)}
.lcard .badge.b-pin,.hcard .badge.b-pin{background:var(--red)}
.lcard .play,.hcard .play{
  position:absolute; inset:0; margin:auto; width:34px; height:34px;
  background:rgba(0,0,0,.45); border-radius:50%; display:flex; align-items:center; justify-content:center;
}
.lcard .play svg,.hcard .play svg{width:14px;height:14px;fill:#fff;margin-left:2px}
.lcard .info,.hcard .info{padding:5px 10px 11px}
.lcard .price,.hcard .price{font-size:17px; font-weight:700; color:var(--orange)}
.lcard .price i,.hcard .price i{font-style:normal; font-size:11px; font-weight:400; color:var(--gray); margin-left:4px}
.lcard .room,.hcard .room{font-size:14px; font-weight:600; margin:1px 0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.lcard .meta,.hcard .meta{font-size:11px; color:var(--gray); display:flex; justify-content:space-between; margin-top:1px}
.lcard .meta .shop,.hcard .meta .shop{max-width:60%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.lcard .tags,.hcard .tags{display:flex; gap:4px; margin-top:2px; flex-wrap:wrap; align-content:flex-start}
.lcard .tags span,.hcard .tags span{flex:0 0 calc((100% - 8px)/3); box-sizing:border-box; text-align:center; font-size:10px; color:var(--blue); background:#EEF2FF; padding:1px 4px; border-radius:4px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; line-height:1.4}
.lcard .tags span.ph,.hcard .tags span.ph{background:transparent; color:transparent}
.share-tip{display:flex; align-items:center; justify-content:center; margin:4px 0 2px; font-size:11px; color:#9A3412; background:#FFF7ED; border:1px solid #FED7AA; padding:6px 4px; border-radius:8px; line-height:1.4; font-weight:600}
.share-btn{margin:6px 2px 2px; background:#07C160; color:#fff; text-align:center; font-size:12px; padding:7px 0; border-radius:8px; font-weight:600; line-height:1.4}

/* 置顶推荐横滑 */
.hscroll{display:flex; gap:12px; overflow-x:auto; padding:0 14px 6px; -webkit-overflow-scrolling:touch}
.hscroll::-webkit-scrollbar{display:none}
.hcard{flex:none; width:46vw; background:#fff; border-radius:14px; overflow:hidden; box-shadow:0 1px 4px rgba(0,0,0,.06)}
.hcard .cover{position:relative; aspect-ratio:4/3; background:#EDEFF2}
.hcard .cover img,.hcard .cover video{width:100%;height:100%;object-fit:cover}

/* ===== 按钮 ===== */
.btn{
  display:block; width:100%; text-align:center; border:none; cursor:pointer;
  padding:12px; border-radius:12px; font-size:15px; font-weight:600; color:#fff;
}
.btn:active{opacity:.85}
.btn-primary{background:var(--blue)}
.btn-orange{background:var(--orange)}
.btn-ghost{background:#fff; color:var(--blue); border:1px solid var(--blue)}
.btn-gray{background:#E5E7EB; color:var(--sub)}
.btn-wx{background:#07C160}
.btn-wx-disabled{background:#E5E7EB; color:#9CA3AF}
.btn-red{background:var(--red)}
.btn-sm{display:inline-block; width:auto; padding:6px 14px; font-size:13px; border-radius:9px}
.btn:disabled{opacity:.5}

/* ===== 表单 ===== */
.form{background:#fff; border-radius:16px; margin:12px 14px; padding:16px}
.field{margin-bottom:14px}
.field:last-child{margin-bottom:4px}
.field label{display:block; font-size:13px; color:var(--sub); margin-bottom:6px}
.field label b{color:var(--red); font-weight:400}
.field input,.field select,.field textarea{
  width:100%; padding:11px 12px; border:1px solid var(--line); border-radius:10px;
  font-size:15px; background:#fff; outline:none; color:var(--txt);
}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue)}
.field.dim input,.field.dim input:focus{background:#F3F4F6;color:#9CA3AF;cursor:not-allowed;border-color:var(--line)}
.field textarea{min-height:70px; resize:vertical}
.field .tip{font-size:11px; color:var(--gray); margin-top:4px}
.chips{display:flex; flex-wrap:wrap; gap:8px}
.chip{
  padding:7px 14px; border:1px solid var(--line); border-radius:999px; font-size:13px;
  cursor:pointer; background:#fff; color:var(--txt); user-select:none;
}
.chip.on{background:var(--blue); border-color:var(--blue); color:#fff}
.upload-box{
  border:1.5px dashed var(--line); border-radius:12px; padding:18px; text-align:center;
  color:var(--gray); font-size:13px; cursor:pointer; background:#FAFAFB;
}
.upload-box:active{border-color:var(--blue); color:var(--blue)}
.upload-preview{display:flex; gap:8px; flex-wrap:wrap; margin-top:10px}
.upload-preview .item{position:relative; width:72px; height:72px; border-radius:10px; overflow:hidden; background:#eee}
.upload-preview .item img,.upload-preview .item video{width:100%;height:100%;object-fit:cover}
.upload-preview .item .del{
  position:absolute; top:2px; right:2px; width:20px; height:20px; border-radius:50%;
  background:rgba(0,0,0,.6); color:#fff; display:flex; align-items:center; justify-content:center; font-size:12px;
}

/* ===== 底部导航 ===== */
.tabbar{
  position:fixed; left:0; right:0; bottom:0; z-index:200;
  background:#fff; border-top:1px solid var(--line);
  display:flex; height:calc(60px + env(safe-area-inset-bottom));
  padding-bottom:env(safe-area-inset-bottom);
  transform: translateZ(0);
  -webkit-transform: translateZ(0);
}
.tab{flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; color:var(--gray); font-size:11px; cursor:pointer}
.tab svg{width:23px; height:23px}
.tab.active{color:var(--blue)}
.tab .plus{
  width:44px; height:44px; border-radius:50%; background:var(--orange); color:#fff;
  display:flex; align-items:center; justify-content:center; margin-top:-22px;
  box-shadow:0 4px 10px rgba(249,115,22,.4);
}
.tab .plus svg{width:22px;height:22px}

/* ===== 客服悬浮 ===== */
.kefu{
  position:fixed; right:16px; bottom:calc(76px + env(safe-area-inset-bottom)); z-index:210;
  width:52px; height:52px; border-radius:50%; background:#07C160; color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 14px rgba(7,193,96,.5); cursor:pointer;
}
.kefu svg{width:24px;height:24px}
.kefu-pop{
  position:fixed; right:16px; bottom:calc(138px + env(safe-area-inset-bottom)); z-index:210;
  background:#fff; border-radius:14px; box-shadow:0 8px 30px rgba(0,0,0,.18);
  width:auto; padding:8px; display:none; white-space:nowrap;
}
.kefu-pop.show{display:block}
.kefu-pop .item{display:flex; align-items:center; gap:10px; padding:11px 12px; border-radius:10px; cursor:pointer; font-size:14px}
.kefu-pop .item:active{background:#F3F4F6}
.kefu-pop .item .ic{
  width:32px; height:32px; border-radius:9px; display:flex; align-items:center; justify-content:center; flex:none;
}
.kefu-pop .item .ic svg{width:17px;height:17px;color:#fff}

/* ===== 详情页 ===== */
.video-hero{position:relative; background:#000; aspect-ratio:16/10}
.video-hero video{width:100%; height:100%; object-fit:contain}
.video-hero img{width:100%; height:100%; object-fit:cover}
.dcard{background:#fff; border-radius:14px; margin:12px 14px; padding:14px 16px}
.dcard .price{font-size:24px; font-weight:800; color:var(--orange)}
.dcard .room{font-size:17px; font-weight:700; margin-top:4px}
.dcard .meta-row{display:flex; flex-wrap:wrap; gap:6px 14px; margin-top:8px; font-size:13px; color:var(--sub)}
.dcard .meta-row .kv b{color:var(--txt); font-weight:600}
.tag-row{display:flex; flex-wrap:wrap; gap:6px; margin-top:10px}
.tag-line{display:flex; flex-wrap:wrap; gap:6px; align-items:center; flex:0 0 100%}
.tag-line .tag-label{background:none; color:#111827; padding:0; font-weight:600}
.tag-row span{font-size:12px; background:#EEF2FF; color:var(--blue); padding:4px 10px; border-radius:6px}
.tag-row span.f{background:#FFF7ED; color:#9A3412}
.desc{font-size:14px; color:#374151; line-height:1.7; margin-top:8px; white-space:pre-wrap}
.action-row{display:flex; gap:10px; margin:14px}
.action-row .btn{flex:1; display:flex; align-items:center; justify-content:center; gap:6px}
.action-row .btn svg{width:17px;height:17px}

/* ===== 留言 ===== */
.msg-item{padding:6px 0; border-bottom:1px solid var(--line)}
.msg-item:last-child{border-bottom:none}
.msg-item .head{display:flex; align-items:center; gap:6px; margin-bottom:3px}
.avatar{
  width:30px; height:30px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  color:#fff; font-size:13px; font-weight:700; flex:none;
}
.msg-item .head .nm{font-size:13px; font-weight:600}
.msg-item .head .tm{font-size:11px; color:var(--gray)}
.msg-item .content{font-size:14px; line-height:1.4}
.msg-item .reply{
  margin-top:3px; font-size:13px; color:#4B5563;
}
.msg-input{display:flex; gap:8px; margin-top:12px}
.msg-input input{
  flex:1; border:1px solid var(--line); border-radius:999px; padding:9px 14px; font-size:14px; outline:none;
}
.msg-input .send{flex:none; background:var(--blue); color:#fff; border:none; border-radius:999px; padding:0 18px; font-size:14px; cursor:pointer}

/* ===== 我的 ===== */
.me-head{
  background:linear-gradient(135deg,#1E3A8A,#2746a3); color:#fff; padding:24px 16px 20px;
  display:flex; align-items:center; gap:14px;
}
.me-head .avatar{width:56px; height:56px; font-size:22px; border-radius:50%; background:rgba(255,255,255,.2)}
.me-head .nm{font-size:18px; font-weight:700}
.me-head .role{font-size:12px; opacity:.85; margin-top:3px}
.me-head .login-btn{background:rgba(255,255,255,.2); padding:8px 18px; border-radius:999px; font-size:14px; cursor:pointer}
.menu{background:#fff; border-radius:14px; margin:12px 14px; overflow:hidden}
.menu .mi{display:flex; align-items:center; gap:12px; padding:14px 16px; border-bottom:1px solid var(--line); cursor:pointer}
.menu .mi:last-child{border-bottom:none}
.menu .mi:active{background:#F9FAFB}
.menu .mi .ic{width:34px; height:34px; border-radius:10px; display:flex; align-items:center; justify-content:center; flex:none}
.menu .mi .ic svg{width:18px; height:18px; color:#fff}
.menu .mi .tx{flex:1; font-size:14px}
.menu .mi .arr{color:#D1D5DB; font-size:12px}
.menu .mi .st{font-size:12px; color:var(--orange)}
.mi-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:6px; padding:0; margin:0; background:transparent; border-radius:0}
.mi-grid .tx{text-align:center; padding:10px 2px; font-size:12px; border-radius:8px; background:#F9FAFB; cursor:pointer; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.mi-grid .tx:active{background:#E5E7EB}

/* ===== 弹层 ===== */
.mask{position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:9999; display:none; align-items:center; justify-content:center; padding:24px}
.mask.show{display:flex}
.sheet{background:#fff; border-radius:18px; width:100%; max-width:380px; max-height:82vh; overflow-y:auto; padding:18px}
.sheet .shd{font-size:16px; font-weight:700; margin-bottom:14px; text-align:center}
.mask .close{position:absolute; top:20px; right:20px; color:#fff; font-size:26px; cursor:pointer; z-index:10000}

/* ===== toast ===== */
#toast{
  position:fixed; left:50%; top:50%; transform:translate(-50%,-50%);
  background:rgba(17,24,39,.92); color:#fff; font-size:14px; padding:12px 22px;
  border-radius:12px; z-index:99999; opacity:0; transition:all .2s; pointer-events:none;
  white-space:nowrap; text-align:center; box-shadow:0 4px 20px rgba(0,0,0,.2);
}
#toast.show{opacity:1}

/* ===== 骨架屏 ===== */
.skel{background:linear-gradient(90deg,#EDEFF2 25%,#F6F7F9 37%,#EDEFF2 63%); background-size:400% 100%; animation:skel 1.2s infinite}
@keyframes skel{0%{background-position:100% 0}100%{background-position:-100% 0}}
.skel-card{border-radius:14px; overflow:hidden}
.skel-card .s1{height:110px}
.skel-card .s2{height:14px; margin:10px; border-radius:4px}
.skel-card .s3{height:14px; margin:0 10px 12px; width:50%; border-radius:4px}

/* ===== 空状态 ===== */
.empty{text-align:center; color:var(--gray); padding:50px 20px; font-size:14px}
.empty svg{width:52px; height:52px; color:#D1D5DB; margin-bottom:10px}

/* ===== 其他 ===== */
.row{display:flex; gap:10px}
.row .btn{flex:1}
.divider{height:8px; background:var(--bg)}
.tag-pill{display:inline-block; font-size:11px; padding:2px 8px; border-radius:999px; background:#EEF2FF; color:var(--blue)}
.tag-pill.gray{background:#F3F4F6; color:var(--gray)}
.upload-box.off{background:#F3F4F6; color:#9CA3AF; cursor:not-allowed; border-color:#E5E7EB; opacity:.7}
.tag-pill.red{background:#FEE2E2; color:#DC2626}
.btn-danger{background:#FEE2E2; color:#DC2626; border:1px solid #FECACA}
.hidden{display:none!important}

#locText{font-weight:400}

.v-eye{width:13px;height:13px;vertical-align:-2px;margin-right:1px}
.lcard .meta .views,.hcard .meta .views{display:flex;align-items:center;gap:1px;margin-left:14px;white-space:nowrap}



/* ===== 底部导航（首页/房源/发布/我的） ===== */
.web-tabbar{
  position:fixed; left:0; right:0; bottom:0; z-index:999;
  display:flex; background:#fff;
  border-top:1px solid #EBEFF2;
  padding:7px 0 calc(7px + env(safe-area-inset-bottom));
  box-shadow:0 -2px 10px rgba(15,23,42,.06);
}
.web-tabbar .wt-item{
  flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:2px; text-decoration:none; color:#6B7280; font-size:11px; padding:1px 0;
}
.web-tabbar .wt-item .wt-ic{font-size:20px; line-height:1}
.web-tabbar .wt-item .wt-tx{line-height:1.2}
