/* 宜居 YIJU · 高端置业平台 — 深墨绿×香槟金奢华主题 */
:root{
  --ink:#0e1f1a; --ink2:#132a23; --card:#16291f;
  --gold:#d4b476; --gold2:#b3944f; --cream:#f3ead8;
  --txt:#e9e4d6; --dim:#8a9a90; --line:rgba(212,180,118,.18);
  --ok:#5fbf8f; --warn:#e0a458;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{font-family:"PingFang SC","Noto Serif SC",serif;background:var(--ink);color:var(--txt);font-size:15px;line-height:1.5}
#app{max-width:480px;margin:0 auto;min-height:100vh;position:relative;padding-bottom:76px}

/* ---------- 顶部 ---------- */
.hero{position:relative;padding:38px 20px 24px;background:
  radial-gradient(1200px 500px at 85% -10%, rgba(212,180,118,.14), transparent 60%),
  linear-gradient(160deg,#0b1814 0%, #132a23 55%, #0e1f1a 100%);}
.hero .brand{font-size:30px;letter-spacing:8px;font-weight:700;color:var(--gold)}
.hero .brand-sub{font-size:11px;letter-spacing:3px;color:var(--dim);margin-top:4px}
.hero .slogan{margin-top:14px;font-size:13px;color:var(--cream);opacity:.85}
.searchbar{display:flex;align-items:center;gap:8px;margin-top:16px;background:rgba(255,255,255,.06);
  border:1px solid var(--line);border-radius:26px;padding:10px 16px}
.searchbar input{flex:1;background:none;border:none;outline:none;color:var(--txt);font-size:14px}
.searchbar input::placeholder{color:var(--dim)}
.searchbar .go{color:var(--gold);font-size:14px;font-weight:600}

.chips{display:flex;gap:10px;padding:14px 20px 4px;overflow-x:auto}
.chip{flex-shrink:0;padding:7px 18px;border-radius:20px;font-size:13px;color:var(--dim);
  border:1px solid var(--line);cursor:pointer;transition:.2s}
.chip.on{background:linear-gradient(135deg,var(--gold),var(--gold2));color:#1b150a;font-weight:700;border-color:transparent}

/* ---------- 房源卡片 ---------- */
.list{padding:10px 16px}
.pcard{background:linear-gradient(150deg,var(--card),#101f19);border:1px solid var(--line);
  border-radius:16px;overflow:hidden;margin-bottom:14px;cursor:pointer;transition:transform .15s}
.pcard:active{transform:scale(.985)}
.pcard .img{height:170px;background:#0a1512;position:relative;overflow:hidden}
.pcard .img img{width:100%;height:100%;object-fit:cover;display:block}
.pcard .img .ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;
  font-size:34px;color:#22382e;background:linear-gradient(135deg,#0d1d16,#14271f)}
.tag-type{position:absolute;top:10px;left:10px;padding:3px 12px;border-radius:14px;font-size:11px;
  background:rgba(14,31,26,.78);color:var(--gold);border:1px solid var(--line);backdrop-filter:blur(4px)}
.tag-status{position:absolute;top:10px;right:10px;padding:3px 12px;border-radius:14px;font-size:11px;
  background:rgba(14,31,26,.78);color:var(--ok);border:1px solid var(--line)}
.pbody{padding:12px 14px 14px}
.ptitle{font-size:16px;font-weight:600;color:var(--cream);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.paddr{font-size:12px;color:var(--dim);margin-top:3px}
.pmeta{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.pmeta span{font-size:11px;color:var(--gold);border:1px solid var(--line);padding:2px 9px;border-radius:10px}
.pfoot{display:flex;justify-content:space-between;align-items:baseline;margin-top:10px}
.price{font-size:20px;font-weight:700;color:var(--gold)}
.price small{font-size:11px;color:var(--dim);font-weight:400;margin-left:2px}
.agency{font-size:11px;color:var(--dim)}

/* ---------- 详情页 ---------- */
.overlay{position:fixed;inset:0;background:var(--ink);z-index:60;overflow-y:auto;max-width:480px;margin:0 auto}
.ov-hero{height:250px;position:relative;background:#0a1512}
.ov-hero img{width:100%;height:100%;object-fit:cover}
.ov-hero .ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:56px;color:#22382e}
.ov-back{position:absolute;top:16px;left:14px;width:34px;height:34px;border-radius:50%;background:rgba(10,20,16,.65);
  border:1px solid var(--line);color:var(--cream);display:flex;align-items:center;justify-content:center;font-size:17px;cursor:pointer;z-index:2}
.ov-price-bar{display:flex;align-items:baseline;gap:10px;padding:16px 20px 0}
.ov-price-bar .price{font-size:26px}
.ov-title{padding:4px 20px 0;font-size:19px;font-weight:700;color:var(--cream)}
.ov-addr{padding:4px 20px 0;font-size:13px;color:var(--dim)}
.ov-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:14px;overflow:hidden;margin:16px 20px}
.ov-grid .cell{background:var(--ink2);padding:12px 8px;text-align:center}
.ov-grid .cell .k{font-size:11px;color:var(--dim)}
.ov-grid .cell .v{font-size:14px;color:var(--cream);margin-top:3px;font-weight:600}
.sec{margin:6px 20px 14px}
.sec h3{font-size:15px;color:var(--gold);letter-spacing:2px;margin-bottom:10px;display:flex;align-items:center;gap:8px}
.sec h3::after{content:"";flex:1;height:1px;background:var(--line)}
.app-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.app-item{background:var(--ink2);border:1px solid var(--line);border-radius:12px;padding:10px 4px;text-align:center}
.app-item .ico{font-size:20px}
.app-item .nm{font-size:11px;color:var(--txt);margin-top:4px}
.desc{font-size:13px;color:#c9c2b2;white-space:pre-wrap}
.agent-card{display:flex;align-items:center;gap:12px;background:var(--ink2);border:1px solid var(--line);
  border-radius:14px;padding:12px 14px}
.agent-card .av{width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,var(--gold),var(--gold2));
  display:flex;align-items:center;justify-content:center;font-size:20px;color:#1b150a;font-weight:700}
.agent-card .info{flex:1}
.agent-card .nm{font-size:14px;color:var(--cream);font-weight:600}
.agent-card .in{font-size:11px;color:var(--dim)}
.deal-bar{position:fixed;bottom:0;left:0;right:0;max-width:480px;margin:0 auto;display:flex;gap:10px;
  padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:rgba(10,20,16,.92);backdrop-filter:blur(10px);
  border-top:1px solid var(--line);z-index:61}
.btn-gold{flex:1;padding:12px;border:none;border-radius:24px;font-size:15px;font-weight:700;cursor:pointer;
  background:linear-gradient(135deg,var(--gold),var(--gold2));color:#1b150a;font-family:inherit}
.btn-line{flex:1;padding:12px;border:1px solid var(--gold2);border-radius:24px;font-size:14px;
  background:none;color:var(--gold);cursor:pointer;font-family:inherit}

/* ---------- 表单 ---------- */
.form{padding:16px 20px}
.form .lbl{font-size:12px;color:var(--dim);margin:14px 0 6px}
.form input,.form textarea,.form select{width:100%;background:rgba(255,255,255,.05);border:1px solid var(--line);
  border-radius:12px;padding:11px 14px;color:var(--txt);font-size:14px;outline:none;font-family:inherit}
.form textarea{min-height:90px;resize:vertical}
.form input:focus,.form textarea:focus{border-color:var(--gold2)}
.seg{display:flex;gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.seg div{flex:1;text-align:center;padding:10px;color:var(--dim);cursor:pointer;font-size:14px}
.seg div.on{background:linear-gradient(135deg,var(--gold),var(--gold2));color:#1b150a;font-weight:700}
.imgrow{display:flex;gap:8px;flex-wrap:wrap}
.imgrow .add{width:72px;height:72px;border:1px dashed var(--gold2);border-radius:12px;display:flex;
  align-items:center;justify-content:center;font-size:24px;color:var(--gold);cursor:pointer}
.imgrow .shot{width:72px;height:72px;border-radius:12px;overflow:hidden;position:relative;border:1px solid var(--line)}
.imgrow .shot img{width:100%;height:100%;object-fit:cover}
.imgrow .shot .x{position:absolute;top:2px;right:2px;width:18px;height:18px;border-radius:50%;background:rgba(0,0,0,.6);
  color:#fff;font-size:11px;display:flex;align-items:center;justify-content:center}
.aprow{display:flex;flex-wrap:wrap;gap:8px}
.aprow .ap{padding:6px 14px;border:1px solid var(--line);border-radius:18px;font-size:12px;color:var(--dim);cursor:pointer}
.aprow .ap.on{background:rgba(212,180,118,.16);color:var(--gold);border-color:var(--gold2)}

.sel{width:100%;background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:12px;padding:11px 14px;color:var(--txt);font-size:14px;outline:none;font-family:inherit;-webkit-appearance:none;appearance:none}
.sel:focus{border-color:var(--gold2)}
.commission-box{border:1px solid rgba(212,180,118,.4);background:rgba(212,180,118,.08);border-radius:14px;padding:14px 16px;margin-top:18px}

/* ---------- 浮窗 AI 客服 ---------- */
.ai-fab{position:fixed;right:16px;bottom:96px;width:56px;height:56px;border-radius:50%;cursor:pointer;z-index:55;
  background:radial-gradient(circle at 32% 28%,#f0d9a8,var(--gold) 45%,var(--gold2));box-shadow:0 6px 24px rgba(212,180,118,.35);
  display:flex;align-items:center;justify-content:center;font-size:26px;animation:pulse 2.4s infinite}
@keyframes pulse{0%,100%{box-shadow:0 6px 24px rgba(212,180,118,.35)}50%{box-shadow:0 6px 34px rgba(212,180,118,.6)}}
.ai-panel{position:fixed;right:12px;bottom:160px;width:320px;max-width:calc(100vw - 24px);height:440px;z-index:70;
  background:linear-gradient(170deg,#12251d,#0d1b15);border:1px solid var(--gold2);border-radius:18px;overflow:hidden;
  display:flex;flex-direction:column;box-shadow:0 18px 50px rgba(0,0,0,.5)}
.ai-head{padding:12px 16px;background:linear-gradient(135deg,var(--gold),var(--gold2));color:#1b150a;
  font-weight:700;display:flex;justify-content:space-between;align-items:center;font-size:14px}
.ai-head .x{cursor:pointer;font-size:18px}
.ai-body{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px}
.ai-msg{max-width:82%;padding:9px 13px;border-radius:14px;font-size:13px;line-height:1.55}
.ai-msg.user{align-self:flex-end;background:rgba(212,180,118,.18);color:var(--cream);border-bottom-right-radius:4px}
.ai-msg.bot{align-self:flex-start;background:rgba(255,255,255,.06);color:var(--txt);border-bottom-left-radius:4px}
.ai-foot{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--line)}
.ai-foot input{flex:1;background:rgba(255,255,255,.06);border:1px solid var(--line);border-radius:20px;
  padding:9px 14px;color:var(--txt);font-size:13px;outline:none}
.ai-foot button{background:linear-gradient(135deg,var(--gold),var(--gold2));border:none;border-radius:20px;
  padding:0 18px;color:#1b150a;font-weight:700;cursor:pointer}

/* ---------- 底部导航 ---------- */
.tabbar{position:fixed;bottom:0;left:0;right:0;max-width:480px;margin:0 auto;height:64px;z-index:50;
  background:rgba(10,20,16,.94);backdrop-filter:blur(12px);border-top:1px solid var(--line);
  display:flex;padding-bottom:env(safe-area-inset-bottom)}
.tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  font-size:10px;color:var(--dim);cursor:pointer}
.tab .ic{font-size:20px}
.tab.on{color:var(--gold)}
.tab.post .ic{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--gold),var(--gold2));
  color:#1b150a;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;margin-top:-18px;
  box-shadow:0 6px 18px rgba(212,180,118,.4)}

/* ---------- 我的 ---------- */
.me-head{padding:34px 20px 20px;display:flex;align-items:center;gap:14px}
.me-head .av{width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,var(--gold),var(--gold2));
  display:flex;align-items:center;justify-content:center;font-size:26px;color:#1b150a}
.me-head .nm{font-size:18px;font-weight:700;color:var(--cream)}
.me-head .sub{font-size:12px;color:var(--dim);margin-top:2px}
.menu{margin:8px 16px;background:var(--ink2);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.menu .mi{display:flex;justify-content:space-between;align-items:center;padding:15px 16px;
  border-bottom:1px solid rgba(212,180,118,.08);font-size:14px;cursor:pointer}
.menu .mi:last-child{border-bottom:none}
.menu .mi .l{display:flex;align-items:center;gap:10px}
.menu .mi .arr{color:var(--dim);font-size:12px}
.empty{padding:60px 20px;text-align:center;color:var(--dim);font-size:13px}
.empty .eico{font-size:44px;margin-bottom:10px;opacity:.6}
.toast{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);background:rgba(10,20,16,.92);
  border:1px solid var(--gold2);color:var(--cream);padding:12px 24px;border-radius:12px;font-size:13px;z-index:99}
.fab-add{position:fixed;right:16px;bottom:170px;width:48px;height:48px;border-radius:50%;z-index:54;
  background:var(--ink2);border:1px solid var(--gold2);color:var(--gold);font-size:22px;cursor:pointer}
