:root{--navy:#0F2A43;--navy2:#16385A;--navy3:#1D4E7A;--head:#0F2A43;--head2:#16385A;--head3:#1D4E7A;--gold:#C9A063;--gold2:#E3C78C;--gold-d:#A8843F;--bg:#F3F5F8;--bg2:#F7F9FC;--card:#fff;--line:#E7EBF1;--txt:#1E2A38;--sub:#6B7A8C;--sub2:#41536A;--muted:#8593A3;--red:#D64545;--green:#2E9E6B;--blue:#2F6FED;--orange:#E8833A;--ok-bg:#E9F6EF;--warn-bg:#FFF8E6;--warn-line:#F0DFB8;--warn-txt:#8A6A35;--danger-bg:#FDECEC;--info-bg:#EFF4FB;--info-txt:#2F5FB3;--purple-bg:#F7F0FA;--chip:#EEF1F5;--chip-line:#D6E0EE;--chip-txt:#24456B;--purple-txt:#6B46A8;--sh:0 1px 4px rgba(15,42,67,.05);--ok-line:#CFE8DB;--r-lg:16px;--r-md:12px;--r-sm:10px}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;background:var(--bg);color:var(--txt);font-size:14px}
button{font-family:inherit;border:none;cursor:pointer;background:none}
input,select,textarea{font-family:inherit;font-size:14px;border:1px solid var(--line);border-radius:8px;padding:10px 12px;outline:none;background:var(--card);width:100%}
input:focus,select:focus,textarea:focus{border-color:var(--head2)}
.hidden{display:none!important}
/* 顶栏 */
.topbar{position:relative;z-index:50;background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;padding:14px 16px 12px;box-shadow:0 2px 10px rgba(15,42,67,.25)}
.topbar .row{display:flex;align-items:center;gap:10px}
.logo{display:flex;align-items:center;gap:8px}
.logo .badge{width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,var(--gold),var(--gold-d));display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,.92)}
.logo .name{font-size:16px;font-weight:700;letter-spacing:1px;text-align:center}
.logo .name small{display:block;font-size:10px;font-weight:400;opacity:.75;letter-spacing:2px;text-align:center}
.searchbar{margin-top:10px;display:flex;gap:8px}
.searchbar input{flex:1;border:1px solid var(--line);border-radius:18px;padding:8px 14px;font-size:13px;background:var(--card);box-shadow:0 1px 2px rgba(15,42,67,.04)}
.searchbar input:focus{border-color:var(--head2)}
.searchbar .btn{background:rgba(255,255,255,.15);color:#fff;border-radius:18px;padding:0 14px;font-size:13px}
/* 主体 */
.main{padding:96px 0 66px;max-width:560px;margin:0 auto}
/* 顶栏用 sticky（占位、不遮挡）；底部 tabbar/fbar 为 fixed，给内容留底部空间 */
#homeView,#mineView,#projView,#custView,#setView,#vidsView,#posterView,#toolsView,#debtView,#legalView{padding-bottom:74px}
#dBody{padding-bottom:84px}
.card{background:var(--card);border-radius:var(--r-lg);margin:10px 12px;padding:14px;box-shadow:var(--sh)}
/* 分类 */
.cats{display:flex;gap:8px;overflow-x:auto;padding:10px 12px 2px;scrollbar-width:none}
/* P0 门户：数据看板 / 找房 / 工具 */
.statbar{display:flex;gap:8px;padding:10px 12px 2px}
.statc{flex:1;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:9px 4px;text-align:center;box-shadow:var(--sh);cursor:pointer}
.statc:active{transform:scale(.97)}
.statc .n{font-size:18px;font-weight:800;line-height:1.1}
.statc .l{font-size:11px;color:var(--sub);margin-top:3px}
.band{background:var(--card);margin:8px 12px 0;border:1px solid var(--line);border-radius:var(--r-lg);padding:10px 12px;box-shadow:var(--sh)}
.band .bh{font-size:13px;font-weight:800;color:var(--head);display:flex;align-items:center;gap:6px;margin-bottom:8px}
.dchips{display:flex;flex-wrap:wrap;gap:7px}
.dchip{font-size:12px;padding:5px 11px;border:1px solid var(--chip-line);border-radius:16px;color:var(--chip-txt);background:var(--card)}
.dchip.on{background:var(--navy);color:#fff;border-color:var(--head);font-weight:600}
.toolrow{display:flex;gap:8px}
.tool{flex:1;display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--card);font-size:13px;font-weight:600;color:var(--head2)}
.tool:active{transform:scale(.98)}
.tool .ti{font-size:18px}
.ic-btn.fav-on{color:var(--gold-d);font-weight:700}
.cats::-webkit-scrollbar{display:none}
.cat{flex:0 0 auto;display:inline-flex;align-items:center;min-height:34px;padding:7px 14px;border-radius:17px;background:var(--card);border:1px solid var(--line);color:var(--sub);font-size:13px;white-space:nowrap}
.cat.on{background:var(--navy);color:#fff;border-color:var(--head);font-weight:600}
.f-badge{position:absolute;top:-5px;right:-5px;background:var(--red);color:#fff;font-size:10px;min-width:16px;height:16px;line-height:16px;border-radius:9px;padding:0 4px;text-align:center;font-weight:700}
#filterSummary{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:8px 12px 0}
.fs-chip{background:var(--info-bg);color:var(--info-txt);font-size:12px;padding:3px 10px;border-radius:14px}
.fs-clear{font-size:12px;color:var(--red);padding:3px 8px}
/* 资产卡 */
.asset{display:flex;gap:12px;background:var(--card);border-radius:var(--r-lg);margin:10px 12px;padding:12px;box-shadow:var(--sh);cursor:pointer}
.athumb{width:96px;height:96px;border-radius:10px;flex:0 0 96px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;font-size:34px;position:relative;overflow:hidden}
.athumb .cname{font-size:10px;font-weight:600;margin-top:4px}
.atbody{flex:1;min-width:0}
.atbody .t{font-size:15px;font-weight:600;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.atbody .m{font-size:12px;color:var(--sub);margin-top:4px;display:flex;gap:6px;flex-wrap:wrap}
.price{color:var(--red);font-weight:700;font-size:16px}
.price small{font-size:11px;font-weight:400;color:var(--sub);margin-left:4px}
.status-tag{font-size:10px;padding:2px 7px;border-radius:10px;background:var(--warn-bg);color:var(--warn-txt);font-weight:600}
.status-tag.ongoing{background:var(--ok-bg);color:var(--green)}
.tagline{display:flex;gap:5px;margin-top:5px;flex-wrap:wrap}
.tag{font-size:10px;padding:2px 7px;border-radius:6px;background:var(--info-bg);color:var(--head2)}
.tag.gold{background:var(--warn-bg);color:var(--gold-d)}
.tag.ok{background:var(--ok-bg);color:var(--green)}
.tag.info{background:var(--info-bg);color:var(--info-txt)}
.tag.danger{background:var(--danger-bg);color:var(--red)}
.tag.muted{background:var(--chip);color:var(--sub2)}
/* 底部导航 */
.tabbar{position:fixed;bottom:0;left:0;right:0;background:var(--card);border-top:1px solid var(--line);display:flex;z-index:50;padding-bottom:env(safe-area-inset-bottom)}
.tab{flex:1;text-align:center;padding:9px 0 7px;color:var(--sub);font-size:11px}
.tab .ic{font-size:20px;display:block}
.tab.on{color:var(--head);font-weight:600}
/* 详情 */
.detail-hero{height:170px;border-radius:0 0 20px 20px;display:flex;align-items:center;justify-content:center;color:#fff;position:relative}
.detail-hero .big{font-size:56px}
.detail-hero .cname{position:absolute;bottom:14px;left:16px;background:rgba(0,0,0,.35);padding:4px 12px;border-radius:12px;font-size:13px;font-weight:600}
.d-back{position:fixed;top:12px;left:12px;z-index:60;width:34px;height:34px;border-radius:50%;background:rgba(0,0,0,.35);color:#fff;font-size:16px;display:flex;align-items:center;justify-content:center}
.d-title{margin:16px 16px 4px;font-size:18px;font-weight:700;line-height:1.4}
.d-price{margin:6px 16px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.fav-icon{margin-left:auto;align-self:center;border:none;background:none;font-size:22px;line-height:1;color:var(--muted);padding:0 2px;cursor:pointer}
.fav-icon.on{color:var(--red)}
.d-price .n{color:var(--red);font-size:26px;font-weight:800}
.d-tags{margin:8px 16px;display:flex;gap:6px;flex-wrap:wrap}
.info-sec{margin:12px;background:var(--card);border-radius:var(--r-lg);padding:14px}
.info-sec h3{font-size:15px;font-weight:700;margin-bottom:10px;display:flex;align-items:center;gap:6px}
.info-sec h3::before{content:'';width:4px;height:14px;background:var(--gold);border-radius:2px}
.kv{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px dashed var(--chip);font-size:13px;gap:12px}
.kv:last-child{border-bottom:none}
.kv .k{color:var(--sub);flex:0 0 auto}
.kv .v{text-align:right;color:var(--txt);font-weight:500}
.lock{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;background:var(--bg2);border-radius:8px;color:var(--sub);font-size:13px;margin-top:8px}
.lock .btn{background:var(--gold);color:#fff;border-radius:6px;padding:4px 10px;font-size:12px;font-weight:600}
/* 按钮 */
.btn-primary{background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;width:100%;padding:13px;border-radius:10px;font-size:15px;font-weight:700;letter-spacing:.6px}
.btn-gold{background:linear-gradient(135deg,var(--gold),var(--gold-d));color:#fff;width:100%;padding:13px;border-radius:10px;font-size:15px;font-weight:700;letter-spacing:2px}
.btn-ghost{background:var(--card);border:1px solid var(--line);width:100%;padding:12px;border-radius:10px;font-size:14px;color:var(--sub)}
.fbar{position:fixed;bottom:0;left:0;right:0;background:var(--card);border-top:1px solid var(--line);display:flex;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));z-index:50}
.fbar .btn-primary,.fbar .btn-gold{width:auto;flex:1;padding:11px;font-size:14px;letter-spacing:0}
.fbar .ic-btn{width:46px;flex:0 0 46px;border-radius:10px;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:11px;color:var(--sub)}
.fbar .ic-btn .i{font-size:18px}
/* 我的 */
.me-head{background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;padding:20px 16px;border-radius:0 0 20px 20px}
.me-head .row{display:flex;align-items:center;gap:12px}
.avatar{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,var(--gold),var(--gold-d));display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;overflow:hidden}
.avatar img{width:100%;height:100%;object-fit:cover;display:block}
.av-wrap{position:relative;flex:0 0 auto;cursor:pointer;line-height:0}
.av-edit{position:absolute;right:-3px;bottom:-3px;width:20px;height:20px;border-radius:50%;background:linear-gradient(135deg,var(--gold),var(--gold-d));color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid rgba(255,255,255,.95);box-shadow:0 1px 3px rgba(0,0,0,.3);z-index:2}
.av-big{width:104px;height:104px;border-radius:50%;margin:0 auto;background:linear-gradient(135deg,var(--gold),var(--gold-d));display:flex;align-items:center;justify-content:center;font-size:42px;font-weight:700;color:#fff;overflow:hidden}
.av-big img{width:100%;height:100%;object-fit:cover;display:block}
.set-blk{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.set-blk.first{border-top:none;padding-top:4px;margin-top:10px}
.set-h{font-size:14px;font-weight:800;color:var(--head);margin-bottom:10px;display:flex;align-items:center;gap:6px}
.set-row{display:flex;align-items:center;gap:14px}
.set-row .avatar{width:60px;height:60px;flex:0 0 60px;font-size:24px}
.set-info{flex:1;min-width:0}
.set-name{font-size:15px;font-weight:700;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.set-btn{flex:0 0 auto;background:linear-gradient(135deg,var(--gold),var(--gold-d));color:#fff;border-radius:10px;padding:9px 15px;font-size:13px;font-weight:700;cursor:pointer}
.theme-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.theme-item{border:1.5px solid var(--line);border-radius:12px;padding:10px 6px;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;background:var(--card)}
.theme-item.on{border-color:var(--head);box-shadow:0 0 0 3px rgba(15,42,67,.08)}
.theme-item .chip{width:30px;height:30px;border-radius:50%;border:1px solid rgba(0,0,0,.06)}
.theme-item .nm{font-size:12px;color:var(--sub2)}
.theme-item.on .nm{color:var(--head);font-weight:700}
.theme-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.theme-dot{width:34px;height:34px;border-radius:50%;border:2px solid var(--line);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--sub)}
.theme-dot.on{border-color:var(--head);box-shadow:0 0 0 3px rgba(15,42,67,.12)}
.me-head .nm{font-size:16px;font-weight:700}
.me-head .ph{font-size:12px;opacity:.8;margin-top:3px}
.me-role{font-size:11px;background:rgba(255,255,255,.2);padding:2px 8px;border-radius:8px}
.me-quit{background:rgba(255,255,255,.15);color:#fff;border-radius:10px;padding:8px 12px;font-size:12px;flex:0 0 auto}
.me-warn{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--warn-bg);border-color:var(--warn-line);color:var(--gold-d);font-size:13px}
.me-warn button{margin-left:auto;color:var(--head);font-weight:700;text-decoration:underline;font-size:12px;background:none}
.me-tools{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;padding:8px 4px}
.me-tool{display:flex;flex-direction:column;align-items:center;gap:5px;padding:8px 2px;border-radius:10px;cursor:pointer}
.me-tool:active{background:var(--chip)}
.me-tool .i{font-size:20px}
.me-tool .t{font-size:12px;color:var(--sub2)}
.me-stats{display:flex;justify-content:space-around;padding:14px 4px}
.me-stats .ms{text-align:center}
.me-stats .n{font-size:20px;font-weight:800;color:var(--head)}
.me-stats .l{font-size:11px;color:var(--sub);margin-top:2px}
.sec-h{font-size:14px;font-weight:700;color:var(--head);display:flex;align-items:center;gap:10px;margin-bottom:2px}
.sec-h .more{margin-left:auto;font-size:12px;color:var(--blue);font-weight:400}
.sec-sub{font-size:12px;color:var(--sub);margin:4px 0 6px;line-height:1.6}
.cust-card{border:1px solid var(--chip);border-radius:12px;padding:12px;margin-bottom:10px;background:var(--card);cursor:pointer}
.cust-card:active{background:var(--bg2)}
.cust-hd{display:flex;align-items:center;gap:10px}
.cust-av{width:38px;height:38px;border-radius:50%;background:var(--info-bg);color:var(--info-txt);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;flex:0 0 38px}
.cust-nm{font-size:14px;font-weight:700}
.cust-ph{font-size:12px;font-weight:400;color:var(--sub)}
.cust-last{font-size:11px;color:var(--sub);margin-top:3px}
.cust-go{color:var(--muted);font-size:20px;flex:0 0 auto}
.cust-stats{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--sub2);margin-top:9px}
/* ===== 资产图片 ===== */
.img-pick{display:inline-flex;align-items:center;gap:6px;border:1px dashed var(--navy3);color:var(--head3);border-radius:10px;padding:9px 14px;font-size:13px;cursor:pointer;font-weight:600}
.img-prev{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.img-thumb{position:relative;width:74px;height:74px;border-radius:10px;overflow:hidden;border:1px solid var(--line)}
.img-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.img-thumb b{position:absolute;top:2px;right:2px;background:rgba(0,0,0,.55);color:#fff;width:18px;height:18px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:11px;cursor:pointer;font-weight:400}
.athumb img{width:100%;height:100%;object-fit:cover;display:block}
.athumb.hasimg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.athumb.hasimg .cname{position:absolute;left:0;right:0;bottom:0;margin:0;padding:3px 0 4px;background:linear-gradient(transparent,rgba(0,0,0,.6));text-shadow:0 1px 2px rgba(0,0,0,.5);z-index:1}
.athumb .vbadge{position:absolute;right:4px;bottom:4px;z-index:2;width:20px;height:20px;border-radius:50%;background:rgba(0,0,0,.66);color:#fff;display:flex;align-items:center;justify-content:center;font-size:10px;line-height:1;padding-left:2px;box-shadow:0 1px 3px rgba(0,0,0,.45)}
.detail-hero.withimg{padding:0;background:none;height:auto;min-height:250px}
.dgallery{position:relative}
.dstrip{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
.dslide{flex:0 0 100%;scroll-snap-align:center}
.dslide img{width:100%;height:250px;object-fit:cover;display:block}
.ddots{position:absolute;bottom:26px;left:0;right:0;display:flex;justify-content:center;gap:5px}
.ddots span{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.55)}
.ddots span.on{background:#fff;width:16px;border-radius:3px}
.dgal-cap{position:absolute;left:0;right:0;bottom:0;padding:22px 16px 8px;font-size:12px;color:#fff;background:linear-gradient(to top,rgba(12,20,32,.72),rgba(12,20,32,0))}
.me-flash{box-shadow:0 0 0 3px rgba(15,42,67,.14) !important;transition:box-shadow .25s ease}
.cust-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}
/* 卡片内列表行：去掉额外左右边距与嵌套白底，收紧两侧留白 */
.card .row-item,.me-sec .row-item{background:none;box-shadow:none;margin:0;padding:10px 0;border-radius:0;border-bottom:1px solid var(--chip)}
.card .row-item:last-child,.me-sec .row-item:last-child{border-bottom:none}
.card .row-item .ic,.me-sec .row-item .ic{width:34px;height:34px;font-size:16px}
/* ===== 我的页精致化（覆盖） ===== */
.me-head{padding:24px 18px 22px}
.me-head .row{gap:14px}
.me-head .nm{font-size:18px;font-weight:800;display:flex;align-items:center;gap:8px;flex-wrap:wrap;line-height:1.3}
.me-head .nm .me-role{font-size:11px;background:rgba(255,255,255,.22);padding:2px 9px;border-radius:20px;font-weight:600}
.me-head .avatar{width:56px;height:56px;flex:0 0 56px;box-shadow:0 0 0 3px rgba(255,255,255,.22);font-size:22px}
.me-head .ph{font-size:12px;opacity:.85;margin-top:5px;letter-spacing:.3px}
.me-head .lv-tag{display:inline-block;margin-top:9px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.22);padding:3px 11px;border-radius:20px;font-size:11px}
.me-quit{background:rgba(255,255,255,.14);color:#fff;border-radius:20px;padding:7px 14px;font-size:12px;flex:0 0 auto}
.me-warn{margin-top:12px}
.me-tools{gap:6px;padding:14px 8px}
.me-tool{padding:10px 2px;gap:7px;border-radius:12px}
.me-tool .i{width:40px;height:40px;border-radius:13px;background:var(--chip);display:flex;align-items:center;justify-content:center;font-size:20px}
.me-tool .t{font-size:12px;color:var(--sub2);font-weight:600}
.me-cta{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,var(--gold),var(--gold-d));color:#fff;border:none;box-shadow:0 10px 22px rgba(168,132,63,.30);cursor:pointer;padding:16px;margin-top:12px}
.me-cta:active{transform:scale(.985)}
.me-cta .cta-ic{width:46px;height:46px;border-radius:14px;background:rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center;font-size:22px;flex:0 0 46px}
.me-cta .cta-bd{flex:1;min-width:0}
.me-cta .cta-t{font-size:16px;font-weight:800;letter-spacing:.5px}
.me-cta .cta-s{font-size:12px;opacity:.94;margin-top:3px}
.me-cta .cta-go{font-size:13px;font-weight:700;background:rgba(255,255,255,.2);padding:7px 12px;border-radius:20px;white-space:nowrap;flex:0 0 auto}
.me-sec .sec-h{font-size:15px;font-weight:800;color:var(--head);margin-bottom:6px}
.me-sec{margin:10px 10px;padding:12px 10px}
.me-tools{margin:10px 10px}
.me-stats{padding:6px 2px 2px}
.me-stats .n{font-size:22px}
.me-stats .l{font-size:11px;letter-spacing:.3px}
.lv-tag{display:inline-block;font-size:10px;padding:2px 8px;border-radius:9px;background:rgba(201,160,99,.25);color:var(--gold2);margin-top:6px;font-weight:600}
.stats{display:flex;background:var(--card);border-radius:12px;margin:14px 12px 0;padding:14px 0;box-shadow:var(--sh)}
.stat{flex:1;text-align:center}
.stat .n{font-size:20px;font-weight:800;color:var(--head)}
.stat .l{font-size:11px;color:var(--sub);margin-top:2px}
.section-title{margin:16px 14px 8px;font-size:15px;font-weight:700;display:flex;justify-content:space-between;align-items:center}
.section-title .more{font-size:12px;color:var(--sub);font-weight:400}
/* 客户/行为行 */
.row-item{display:flex;align-items:center;gap:10px;background:var(--card);border-radius:10px;margin:0 0 8px;padding:12px;box-shadow:0 1px 3px rgba(15,42,67,.04)}
.row-item .ic{width:38px;height:38px;border-radius:10px;flex:0 0 38px;display:flex;align-items:center;justify-content:center;font-size:18px}
.row-item .bd{flex:1;min-width:0}
.row-item .bd .t{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row-item .bd .s{font-size:12px;color:var(--sub);margin-top:3px}
.row-item .rt{text-align:right;flex:0 0 auto}
.row-item .rt .n{font-weight:700;color:var(--head);font-size:15px}
/* 弹层 */
.mask{position:fixed;inset:0;background:rgba(10,20,32,.55);z-index:100;display:flex;align-items:flex-end;justify-content:center}
.sheet{background:var(--card);width:100%;max-width:560px;border-radius:16px 16px 0 0;padding:18px 13px calc(18px + env(safe-area-inset-bottom));max-height:82vh;overflow-y:auto;animation:up .22s ease}
@keyframes up{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
.sheet h2{font-size:16px;font-weight:700;margin-bottom:4px}
.sheet .sub{font-size:12px;color:var(--sub);margin-bottom:12px}
.center-mask{display:flex;align-items:center;justify-content:center}
.center-box{width:86%;max-width:380px;border-radius:14px;padding:22px;text-align:center}
/* 套餐 */
.plan{border:1.5px solid var(--line);border-radius:12px;padding:14px;margin-bottom:10px;background:var(--card);position:relative}
.plan.hot{border-color:var(--gold);box-shadow:0 4px 14px rgba(201,160,99,.2)}
.plan .pname{font-weight:700;font-size:15px}
.plan .pprice{color:var(--red);font-weight:800;font-size:22px;margin-top:6px}
.plan .pprice small{font-size:11px;color:var(--sub);font-weight:400}
.plan .pdesc{font-size:12px;color:var(--sub);margin-top:6px;line-height:1.5}
.plan .hot-tag{position:absolute;top:-9px;right:14px;background:linear-gradient(135deg,var(--gold),var(--gold-d));color:#fff;font-size:10px;padding:2px 10px;border-radius:9px;font-weight:600}
.plan.cur{border-color:var(--green)}
.plan.cur .cur-tag{position:absolute;top:10px;right:12px;background:var(--ok-bg);color:var(--green);font-size:10px;padding:2px 8px;border-radius:8px;font-weight:600}
/* 提示条 */
.toast{position:fixed;top:16%;left:50%;transform:translateX(-50%);background:rgba(20,30,42,.92);color:#fff;padding:10px 20px;border-radius:24px;font-size:13px;z-index:300;max-width:84%;text-align:center;animation:up .2s ease}
.alert-warn{background:var(--warn-bg);border:1px solid var(--warn-line);color:var(--gold-d);font-size:12px;padding:10px 12px;border-radius:8px;margin:10px 12px;display:flex;gap:8px;line-height:1.5}
.alert-warn::before{content:'⚠️';flex:0 0 auto}
/* 登录 */
.auth-wrap{min-height:100vh;background:linear-gradient(160deg,var(--navy) 0%,var(--navy2) 55%,var(--navy3) 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px 22px 88px}
.auth-logo{width:49px;height:49px;border-radius:14px;background:linear-gradient(135deg,var(--gold),var(--gold-d));display:flex;align-items:center;justify-content:center;font-size:24px;color:#fff;font-weight:800;box-shadow:0 8px 24px rgba(0,0,0,.28),0 0 0 3px rgba(255,255,255,.92)}
.auth-brand{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:24px}
.auth-brand .auth-name{text-align:center}
.auth-brand .auth-title{font-size:25px}
.auth-en{font-size:11px;letter-spacing:3px;color:rgba(255,255,255,.72);margin-top:1px}
.auth-title{color:#fff;font-size:22px;font-weight:800;letter-spacing:2px}
.auth-sub{color:rgba(255,255,255,.7);font-size:12px;margin:8px 0 26px;letter-spacing:1px}
.auth-card{background:var(--card);width:100%;max-width:400px;border-radius:16px;padding:22px 18px;box-shadow:0 20px 50px rgba(0,0,0,.3)}
.auth-tabs{display:flex;background:var(--chip);border-radius:9px;padding:3px;margin-bottom:16px}
.auth-tab{flex:1;text-align:center;padding:8px;border-radius:7px;font-size:14px;color:var(--sub);font-weight:600}
.auth-tab.on{background:var(--card);color:var(--head);box-shadow:0 1px 4px rgba(0,0,0,.08)}
.auth-input{position:relative;margin-bottom:12px}
.auth-input .pre{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:15px}
.auth-input input{padding-left:38px;background:var(--bg2);border-color:transparent}
.form-tip{font-size:12px;color:var(--sub);text-align:center;margin-top:12px;line-height:1.6}
.auth-foot{font-size:11.5px;color:var(--sub);text-align:center;margin-top:16px;padding-top:12px;border-top:1px solid var(--line);line-height:1.7}
.link{color:var(--blue)}
.empty{text-align:center;color:var(--sub);padding:40px 0;font-size:13px;line-height:1.7}
.empty .e{font-size:34px;display:block;margin-bottom:8px}
.role-pick{display:flex;gap:10px;margin-bottom:12px}
.role-pick button{flex:1;padding:11px;border-radius:10px;border:1.5px solid var(--line);font-size:13px;color:var(--sub);background:var(--card)}
.role-pick button.on{border-color:var(--head);color:var(--head);font-weight:700;background:var(--info-bg)}
/* 注册页美化 */
.reg-h{font-size:13px;color:var(--sub);text-align:center;margin:-2px 0 12px}
.role-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}
.role-grid .rc{border:1.5px solid var(--line);border-radius:12px;padding:11px 5px;text-align:center;background:var(--card);cursor:pointer;transition:.15s}
.role-grid .rc .ri{font-size:18px;display:block;line-height:1;margin-bottom:5px}
.role-grid .rc .rt{font-size:12px;font-weight:700;color:var(--sub);line-height:1.15;display:block}
.role-grid .rc .rs{font-size:10px;color:var(--muted);margin-top:3px;line-height:1.2;display:block}
.role-grid .rc.on{border-color:var(--head);background:var(--info-bg);box-shadow:0 0 0 3px rgba(15,42,67,.06)}
.role-grid .rc.on .rt{color:var(--head)}
.role-grid .rc.on .rs{color:var(--head2)}
.reg-panel{border:1px solid var(--line);background:var(--bg2);border-radius:12px;padding:12px 12px 1px;margin-bottom:12px}
.reg-panel .rp-h{font-size:12px;font-weight:700;color:var(--head);margin-bottom:10px;display:flex;align-items:center;gap:6px}
.reg-panel .auth-input input,.reg-panel .auth-input select{background:var(--card);border-color:var(--line)}
.reg-panel select{padding-left:38px}
.reg-panel .auth-input:last-child{margin-bottom:12px}
.wx-badge{display:inline-block;background:#09BB07;color:#fff;border-radius:4px;font-size:10px;padding:1px 4px;margin-left:4px;vertical-align:1px}
/* V2 品牌露出：未认证私域项目不露平台品牌 */
/* 未登录（游客）：顶栏右侧动作（管理端/消息/我的）无意义，隐藏；改显平台名 */
body.guest .topbar .auth-only{display:none}
.guest-only{display:none;color:rgba(255,255,255,.9);font-size:12px;letter-spacing:.5px;white-space:nowrap}
body.guest .guest-only{display:block}
body.no-brand .logo .badge,body.no-brand .logo .name{display:none}
body.no-brand .logo::after{content:'专属项目';font-weight:800;color:var(--head);font-size:16px}
/* ===== 经纪人「我的」页 V1（轻·卡片化） ===== */
.mnp{padding:12px 12px 86px}
/* 专业人员工作台 / 记忆页：底部留白收缩（页面填满到底栏，无多余空拖） */
#ecustView .mnp,#esetView .mnp,#memView .mnp{padding-bottom:70px;min-height:calc(100vh - 56px);box-sizing:border-box}
#ecustView,#esetView,#memView{padding-bottom:0}
.mnp-hero{position:relative;border-radius:18px;padding:18px 16px 16px;color:#fff;background:linear-gradient(135deg,var(--navy) 0%,var(--navy2) 60%,var(--gold-d) 150%);box-shadow:0 12px 28px -16px rgba(15,42,67,.7);overflow:hidden;margin-bottom:12px}
.mnp-hero::after{content:'';position:absolute;right:-46px;top:-46px;width:158px;height:158px;border-radius:50%;background:radial-gradient(circle,rgba(201,160,99,.4),transparent 70%)}
.mnp-hero .r1{display:flex;align-items:center;gap:13px;position:relative;z-index:1}
.mnp-av{width:56px;height:56px;border-radius:50%;background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:800;overflow:hidden;border:2px solid rgba(255,255,255,.42);flex:0 0 56px;box-shadow:0 8px 18px -10px rgba(0,0,0,.5)}
.mnp-av img{width:100%;height:100%;object-fit:cover}
.mnp-nm{font-size:17px;font-weight:800;display:flex;align-items:center;gap:6px;letter-spacing:.3px}
.mnp-role{font-size:11px;font-weight:600;background:rgba(255,255,255,.2);padding:2px 8px;border-radius:20px}
.mnp-ph{font-size:12px;opacity:.82;margin-top:3px}
.mnp-sub{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.24);padding:5px 11px;border-radius:20px;white-space:nowrap;max-width:100%}
.mnp-sub.warn{background:rgba(232,131,58,.26);border-color:rgba(232,131,58,.5)}
.mnp-hero .subs{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px;padding-top:14px;border-top:1px solid rgba(255,255,255,.14);position:relative;z-index:1}
.mnp-hact{display:flex;align-items:center;gap:8px;align-self:flex-start;position:relative;z-index:1}
.mnp-bell{position:relative;width:36px;height:36px;border-radius:10px;background:rgba(255,255,255,.14);color:#fff;border:none;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.mnp-dot{display:none;position:absolute;top:-5px;right:-5px;background:var(--red);color:#fff;font-size:10px;line-height:1;min-width:16px;height:16px;border-radius:8px;align-items:center;justify-content:center;padding:0 4px;font-weight:700;box-shadow:0 0 0 1.5px rgba(255,255,255,.55)}
.mnp-dot.on{display:flex}
/* 我的项目 / 设置 页 */
.pg-head{display:flex;align-items:center;padding:14px 2px 12px}
.pg-head .pg-t{font-size:18px;font-weight:800;color:var(--head)}
.pg-head .pg-sub{margin-left:auto;font-size:12px;color:var(--sub)}
.pg-head .pg-link{margin-left:auto;font-size:13px;color:var(--blue);cursor:pointer}
/* 经纪人端「我的项目 / 我的客户」顶部留白收紧 */
#projView .mnp,#custView .mnp,#toolsView .mnp,#ecustView .mnp,#esetView .mnp,#memView .mnp{padding-top:4px}
#projView .pg-head,#custView .pg-head,#toolsView .pg-head,#ecustView .pg-head,#esetView .pg-head,#memView .pg-head{padding-top:8px;padding-bottom:10px}
.pg-actions{display:flex;gap:8px;margin-bottom:12px}
.pg-actions .btn-primary,.pg-actions .btn-ghost{margin:0;flex:1;width:auto;letter-spacing:0;font-size:13px;padding:10px 6px}
.bp-card{background:var(--card);border-radius:var(--r-lg);padding:12px;margin-bottom:10px;box-shadow:var(--sh)}
.bp-top{display:flex;gap:11px;align-items:center;cursor:pointer}
.bp-thumb{width:56px;height:56px;border-radius:11px;overflow:hidden;flex:0 0 56px;background:var(--info-bg);display:flex;align-items:center;justify-content:center;font-size:20px}
.bp-thumb img{width:100%;height:100%;object-fit:cover}
.bp-bd{flex:1;min-width:0}
.bp-title{font-size:14px;font-weight:700;color:var(--txt);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.35}
.bp-sub{font-size:12px;color:var(--sub);margin-top:3px}
.bp-st{flex:0 0 auto;align-self:flex-start}
.bp-acts{display:flex;gap:6px;margin-top:10px;border-top:1px solid var(--chip);padding-top:9px;flex-wrap:wrap}
.bp-acts button{flex:1;min-width:0;background:var(--bg2);border:1px solid var(--line);border-radius:9px;padding:7px 2px;font-size:11px;color:var(--sub2);cursor:pointer;white-space:nowrap}
.bp-acts button:active{background:var(--chip)}
.bp-acts a{flex:1;min-width:0;background:var(--bg2);border:1px solid var(--line);border-radius:9px;padding:7px 2px;font-size:11px;color:var(--sub2);cursor:pointer;white-space:nowrap;text-align:center;text-decoration:none;display:block}
.bp-acts .bp-del{color:var(--red)}
.pg-back{font-size:15px;color:var(--blue);cursor:pointer;font-weight:700}
.pg-bell{position:relative;margin-left:auto;width:34px;height:34px;border-radius:10px;background:var(--bg2);border:1px solid var(--line);color:var(--sub2);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex:0 0 34px}
.legal{font-size:13px;line-height:1.75;color:var(--txt)}
.legal h2{font-size:15px;font-weight:800;color:var(--head);margin:2px 0 10px}
.legal h3{font-size:14px;font-weight:700;color:var(--sub2);margin:13px 0 5px}
.legal p{margin:6px 0;color:var(--sub)}
.legal ul{margin:6px 0 6px 18px;padding:0}
.legal li{margin:4px 0;color:var(--sub)}
.legal a{color:var(--blue)}
.legal-sec{margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.legal-sec:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}
.mnp-duo{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.mnp-duo-card{background:var(--card);border-radius:16px;padding:16px 12px;box-shadow:var(--sh);text-align:center;cursor:pointer;transition:transform .12s}
.mnp-duo-card:active{transform:scale(.98)}
.mnp-duo-card .i{font-size:26px;line-height:1}
.mnp-duo-card .t{font-size:14px;font-weight:800;color:var(--head);margin-top:7px}
.mnp-duo-card .s{font-size:12px;color:var(--sub);margin-top:3px}
/* 债权测算（App 内原生） */
.df-sec{background:var(--card);border-radius:16px;padding:14px;margin-bottom:12px;box-shadow:var(--sh)}
.df-gt{font-size:13px;font-weight:800;color:var(--head);margin:0 0 10px;display:flex;align-items:center;gap:6px}
.df-gt::before{content:'';width:3px;height:12px;background:var(--gold);border-radius:2px}
.df-field{margin-bottom:9px}
.df-field label{font-size:12px;color:var(--sub);display:block;margin-bottom:4px}
.df-field input,.df-field select{width:100%;box-sizing:border-box;padding:10px 11px;border:1px solid var(--line);border-radius:10px;font-size:14px;background:var(--card);transition:.15s}
.df-field input:focus,.df-field select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,160,99,.16)}
.df-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.df-kpi{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.df-k{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:11px 12px}
.df-k b{display:block;font-size:16px;font-weight:900;color:var(--head);line-height:1.25}
.df-k span{font-size:12px;color:var(--sub);display:block;margin-top:3px}
.df-tag{display:inline-block;padding:3px 12px;border-radius:999px;font-size:12px;font-weight:800}
.df-tag.go{background:var(--ok-bg);color:var(--green);border:1px solid #B7E4CC}
.df-tag.watch{background:var(--warn-bg);color:var(--warn-txt);border:1px solid var(--warn-line)}
.df-tag.drop{background:var(--danger-bg);color:var(--red);border:1px solid #F5C6C6}
.df-hint{font-size:12px;color:var(--sub);line-height:1.6;margin-top:8px}
.df-warn{background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:12px;padding:10px 12px;font-size:13px;color:var(--warn-txt);margin-top:12px}
.df-ul{margin:2px 0 0 18px;padding:0;font-size:13px;line-height:1.8}
.df-tblwrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
.df-tblwrap table{width:100%;border-collapse:collapse;font-size:12px}
.df-tblwrap th,.df-tblwrap td{padding:7px 8px;text-align:left;white-space:nowrap;border-bottom:1px solid var(--line)}
.df-tblwrap th{background:var(--chip);color:var(--sub2);font-size:12px;font-weight:700}
.df-tblwrap tr:last-child td{border-bottom:0}
/* 骨架屏 + 工具类（设计系统收敛） */
.skel{background:linear-gradient(90deg,#EEF1F5 25%,#E4E9F0 37%,#EEF1F5 63%);background-size:400% 100%;animation:sk 1.2s ease infinite;border-radius:8px}
@keyframes sk{0%{background-position:100% 0}100%{background-position:0 0}}
.skc{background:var(--card);border-radius:var(--r-lg);margin:10px 12px;padding:12px;display:flex;gap:12px;box-shadow:var(--sh)}
.skc .a{width:96px;height:96px;flex:0 0 96px;border-radius:10px}
.skc .b{flex:1;display:flex;flex-direction:column;gap:9px;justify-content:center}
.skc .b i{display:block;height:12px;border-radius:6px}
.btn-auto{width:auto;letter-spacing:0}
.mt8{margin-top:8px}.mt10{margin-top:10px}.mt12{margin-top:12px}.mt16{margin-top:16px}
.mb8{margin-bottom:8px}.ml8{margin-left:8px}.f1{flex:1}.t-muted{color:var(--muted)}.t-sub{color:var(--sub)}
.bg-info{background:var(--info-bg)}.sp6{height:6px}.sp10{height:10px}.sp12{height:12px}
.mnp-foot{text-align:center;color:var(--muted);font-size:12px;line-height:1.9;padding:18px 8px 8px}
.ai-btn{font-size:11px;padding:4px 9px;border-radius:8px;border:1px solid var(--line);background:var(--card);color:var(--blue);cursor:pointer;white-space:nowrap}
.cust-rt{display:flex;flex-direction:column;align-items:flex-end;gap:5px}
.epf{font-size:13px}
.epf input,.epf select,.epf textarea{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:9px;padding:8px;font-size:13px}
.field-l{font-size:13px;font-weight:600;color:var(--txt);margin:10px 0 5px}
.chip-fold{max-height:68px;overflow:hidden}
.chip-wrap.open .chip-fold{max-height:none}
.chip-more{font-size:12px;color:var(--blue);cursor:pointer;font-weight:700;border:1px solid var(--line);border-radius:20px;padding:2px 10px;background:var(--bg2)}
.flabel2{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted);font-weight:600;margin:9px 0 6px}
.flabel{font-size:12px;color:var(--muted);font-weight:600;margin:9px 0 6px}
.mnp-sub.warn{background:rgba(255,120,120,.28);border-color:rgba(255,255,255,.35)}
.mnp-quit{margin-left:auto;align-self:flex-start;background:rgba(255,255,255,.14);color:#fff;border:none;border-radius:10px;padding:7px 12px;font-size:12px;cursor:pointer}
.mnp-stats{display:grid;grid-template-columns:repeat(5,1fr);background:var(--card);border-radius:16px;padding:13px 6px;margin-bottom:12px;box-shadow:var(--sh)}
.mnp-stats .s{text-align:center;cursor:pointer}
.mnp-stats .s .n{font-size:16px;font-weight:800;color:var(--head)}
.mnp-stats .s .l{font-size:11px;color:var(--sub);margin-top:2px}
.mnp-acts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}
.mnp-act{background:var(--card);border-radius:14px;padding:12px 4px;text-align:center;box-shadow:var(--sh);cursor:pointer;transition:transform .12s}
.mnp-act:active{transform:scale(.96)}
.mnp-act .i{font-size:20px;display:block;line-height:1;margin-bottom:6px}
.mnp-act .t{font-size:11px;color:var(--txt);font-weight:600;line-height:1.2}
.mnp-todo{background:linear-gradient(180deg,var(--warn-bg),var(--card));border:1px solid var(--warn-line);border-left:4px solid var(--gold);border-radius:14px;padding:12px 14px;margin-bottom:12px}
.mnp-todo .h{font-size:13px;font-weight:800;color:var(--warn-txt);margin-bottom:9px}
.mnp-todo .chips{display:flex;flex-wrap:wrap;gap:8px}
.mnp-tchip{display:inline-flex;align-items:center;gap:7px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:7px 11px;font-size:12px;cursor:pointer}
.mnp-tchip .n{font-weight:800;color:var(--gold-d)}
.mnp-sec{background:var(--card);border-radius:16px;padding:14px;margin-bottom:12px;box-shadow:var(--sh)}
.mnp-sec .hd{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.mnp-sec .hd .t{font-size:15px;font-weight:800;color:var(--head)}
.mnp-sec .hd .more{margin-left:auto;font-size:12px;color:var(--blue);cursor:pointer}
.mnp-sec .sub{font-size:12px;color:var(--sub);margin:-2px 0 10px}
.mnp-hscroll{display:flex;gap:9px;overflow-x:auto;padding-bottom:3px;-webkit-overflow-scrolling:touch}
.mnp-ccard{flex:0 0 132px;border:1px solid var(--line);border-radius:13px;padding:10px;background:var(--bg2);cursor:pointer}
.mnp-ccard .n{font-size:13px;font-weight:700;color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mnp-ccard .p{font-size:11px;color:var(--muted);margin-top:2px}
.mnp-ccard .m{font-size:11px;color:var(--sub);margin-top:7px}
.mnp-empty{text-align:center;color:var(--sub);font-size:13px;padding:24px 8px;line-height:1.7}
.mnp-mem{border:1px solid var(--line);border-radius:11px;padding:10px 11px;margin-bottom:8px;background:var(--card)}
.mnp-mem .tx{font-size:13px;color:var(--txt);line-height:1.55;word-break:break-word}
.mnp-mem .mt{display:flex;align-items:center;gap:7px;margin-top:7px;font-size:11px;color:var(--muted);flex-wrap:wrap}
.mnp-mem.pending{border-color:var(--warn-line);background:var(--warn-bg)}
.mnp-mem.off{opacity:.6}
.mnp-badge{font-size:10px;padding:1px 7px;border-radius:8px;background:var(--chip);color:var(--sub2)}
.mnp-badge.auto{background:var(--info-bg);color:var(--info-txt)}
.mnp-badge.pend{background:var(--warn-bg);color:var(--warn-txt)}
.mnp-badge.on{background:var(--ok-bg);color:var(--green)}
.mnp-ops{display:flex;gap:14px;margin-top:9px}
.mnp-ops span{font-size:12px;color:var(--blue);cursor:pointer}
.mnp-ops span.del{color:var(--red)}
.mnp-chips{display:flex;gap:7px;flex-wrap:wrap}
.mnp-chip{padding:5px 12px;border-radius:20px;border:1px solid var(--line);font-size:12px;color:var(--sub2);background:var(--card);cursor:pointer}
.mnp-chip.on{border-color:var(--head);background:var(--info-bg);color:var(--head);font-weight:700}
.mnp-row{display:flex;align-items:center;gap:11px;padding:11px 0;border-bottom:1px solid var(--chip);cursor:pointer}
.mnp-row:last-child{border-bottom:none}
.mnp-row .ic{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:16px;flex:0 0 38px;overflow:hidden;background:var(--info-bg)}
.mnp-row .ic img{width:100%;height:100%;object-fit:cover}
.mnp-row .bd{flex:1;min-width:0}
.mnp-row .bd .t{font-size:14px;font-weight:700;color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mnp-row .bd .s{font-size:12px;color:var(--sub);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lead-text{font-size:13px;color:var(--sub2);line-height:1.55;margin-top:3px;white-space:normal;word-break:break-word}
.mnp-row .rt{text-align:right;flex:0 0 auto}
.mnp-search{display:flex;align-items:center;gap:7px;background:var(--card);border:1px solid var(--line);border-radius:11px;padding:9px 12px;margin-bottom:10px}
.mnp-search input{flex:1;border:none;background:none;font-size:13px;outline:none}
.mnp-ghead{font-size:12px;font-weight:800;color:var(--sub2);margin:12px 2px 6px;display:flex;align-items:center;gap:6px}
@media(max-width:360px){.mnp-acts{gap:6px}.mnp-act .t{font-size:10px}.mnp-stats .s .n{font-size:15px}}
/* ===== AI 经纪助理浮窗（2026-09-03 A+C） ===== */
/* 在线客服：内嵌为底部菜单第二项（不做浮层弹窗） */
/* 在线客服：原生整页对话（参考华鸣AI大管家·管家对话，无卡片外框） */
#csView{display:flex;flex-direction:column;height:calc(100vh - 56px);height:calc(100dvh - 56px - env(safe-area-inset-bottom));background:var(--bg)}
.cs-head{flex:0 0 auto;display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--card);border-bottom:1px solid var(--line)}
.cs-head .cs-av{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;flex:0 0 38px;overflow:hidden}
.cs-head .cs-av img{width:100%;height:100%;object-fit:cover}
.cs-head .cs-t{font-size:15px;font-weight:800;color:var(--head);line-height:1.25}
.cs-head .aiSub{font-size:11px;color:var(--sub);margin-top:2px}
.cs-head .cs-clr{margin-left:auto;font-size:12px;color:var(--sub);padding:6px 10px;border-radius:16px;background:var(--chip);flex:0 0 auto}
/* 专业服务页 */
#pvView{padding-bottom:80px}
.pv-head{padding:16px 16px 8px}
.pv-backbar{padding:12px 16px 0;background:var(--card)}
.pv-head .pv-t{font-size:18px;font-weight:800;color:var(--head)}
.pv-head .pv-sub{font-size:12px;color:var(--sub);margin-top:4px;line-height:1.5}
#pvBody{padding:0 12px}
.pv-sec{font-size:15px;font-weight:800;color:var(--head);margin:14px 2px 8px}
.pv-org{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:8px;box-shadow:var(--sh);cursor:pointer}
.pv-org:active{background:var(--bg2)}
.pv-ic{width:44px;height:44px;border-radius:12px;background:var(--chip);display:flex;align-items:center;justify-content:center;font-size:20px;flex:0 0 44px}
.pv-av{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;flex:0 0 40px}
.pv-nm{font-size:14px;font-weight:700;color:var(--txt)}
.pv-tag{font-size:11px;background:var(--chip);color:var(--chip-txt);padding:1px 7px;border-radius:10px;font-weight:600;white-space:nowrap}
.pv-s{font-size:12px;color:var(--sub);margin-top:3px}
.pv-intro{font-size:12px;color:var(--sub2);margin-top:4px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pv-go{color:var(--muted);font-size:12px;white-space:nowrap;font-weight:600}
/* 专业服务·经纪人/专家 2列表格卡 */
.bc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.bcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 8px;box-shadow:var(--sh);cursor:pointer;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px}
.bcard:active{background:var(--bg2)}
.bcard-av{width:54px;height:54px;border-radius:50%;background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:20px;overflow:hidden;flex:0 0 54px}
.bcard-av img{width:100%;height:100%;object-fit:cover}
.bcard-nm{font-size:14px;font-weight:800;color:var(--txt);line-height:1.25}
.bcard-sub{font-size:11px;color:var(--sub);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:30px}
.bcard-meta{font-size:11px;color:var(--gold-d);background:var(--warn-bg);padding:2px 9px;border-radius:8px;font-weight:700}
/* 经纪人主页（大 HERO · 无顶栏 · 浮动返回） */
.bhome-back-f{position:fixed;top:12px;left:12px;z-index:40;width:36px;height:36px;border-radius:50%;background:rgba(15,42,67,.42);color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;cursor:pointer;line-height:1;box-shadow:var(--sh)}
.bhome-back-f:active{background:rgba(15,42,67,.62)}
.bhome-fav-f{position:fixed;top:12px;right:12px;z-index:40;height:36px;padding:0 14px;border-radius:18px;background:rgba(15,42,67,.42);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;cursor:pointer;box-shadow:var(--sh);white-space:nowrap}
.bhome-fav-f:active{background:rgba(15,42,67,.62)}
.bhome-fav-f.on{background:linear-gradient(135deg,var(--gold),var(--gold-d));color:#fff}
.bhome-body{padding:0 12px 92px}
.bhome-body .bsec-h:first-child{margin-top:14px}
.bhero{background:linear-gradient(160deg,var(--navy) 0%,var(--navy2) 55%,var(--gold-d) 160%);color:#fff;border-radius:0 0 20px 20px;padding:38px 16px 24px;margin:0 -12px;text-align:center;box-shadow:0 14px 30px -16px rgba(15,42,67,.7);position:relative;overflow:hidden}
.bhero::after{content:'';position:absolute;right:-42px;top:-42px;width:152px;height:152px;border-radius:50%;background:radial-gradient(circle,rgba(201,160,99,.32),transparent 70%)}
.bhero-av{width:80px;height:80px;border-radius:50%;background:rgba(255,255,255,.16);border:3px solid rgba(255,255,255,.45);display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:800;overflow:hidden;margin:0 auto;position:relative;z-index:1;box-shadow:0 8px 20px -10px rgba(0,0,0,.55)}
.bhero-av img{width:100%;height:100%;object-fit:cover}
.bhero-nm{font-size:20px;font-weight:800;margin-top:12px;position:relative;z-index:1;letter-spacing:.3px}
.bhero-role{font-size:13px;font-weight:700;color:#EAD9B5;margin-top:6px;position:relative;z-index:1;letter-spacing:.3px}
.bhero-org{font-size:12px;opacity:.85;margin-top:5px;position:relative;z-index:1}
.bhero-divider{width:36px;height:2px;border-radius:2px;background:rgba(255,255,255,.26);margin:14px auto 0;position:relative;z-index:1}
.bhero-intro{font-size:13px;opacity:.94;margin:12px auto 0;line-height:1.65;max-width:340px;position:relative;z-index:1}
.bhero-cta{display:flex;gap:10px;margin-top:16px;position:relative;z-index:1}
.bhero-cta button{flex:1;border-radius:var(--r-sm);padding:10px;font-size:14px;font-weight:700;letter-spacing:.6px;cursor:pointer;transition:transform .15s,background .15s}
.bhero-cta button:active{transform:scale(.985)}
.bhero-cta .p{background:linear-gradient(135deg,rgba(201,160,99,.34),rgba(168,132,63,.20));color:#fff;border:1px solid rgba(201,160,99,.55)}
.bhero-cta .g{background:rgba(255,255,255,.06);color:rgba(255,255,255,.92);border:1px solid rgba(255,255,255,.28)}
.bhero-tags{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:9px;position:relative;z-index:1}
.bhero-tag{font-size:11px;font-weight:600;color:#fff;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.28);padding:2px 10px;border-radius:20px}
.bsec-h{display:flex;align-items:center;font-size:15px;font-weight:800;color:var(--head);margin:16px 2px 8px}
.bsec-h .more{margin-left:auto;font-size:12px;color:var(--blue);font-weight:600;cursor:pointer}
.cs-input{flex:0 0 auto;display:flex;gap:8px;align-items:center;padding:10px 12px;background:var(--card);border-top:1px solid var(--line);box-shadow:0 -2px 12px rgba(15,23,42,.06)}
.cs-input input{flex:1;border:1px solid var(--line);border-radius:20px;padding:9px 14px;font-size:14px;outline:none;min-width:0}
.cs-input button{border:none;background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;border-radius:20px;padding:9px 18px;font-size:14px;cursor:pointer;flex:0 0 auto;font-weight:600}
.aiHead{background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;padding:12px 14px;font-weight:700;display:flex;align-items:center;gap:9px;flex-shrink:0}
.aiHead .x{margin-left:auto;cursor:pointer;opacity:.9;font-size:16px;font-weight:400}
.aiHead .aiSub{font-weight:400;opacity:.85;font-size:11px;margin-top:2px}
#aiMsgs{flex:1;min-height:0;overflow-y:auto;padding:14px 12px 6px;background:var(--bg);display:flex;flex-direction:column;gap:10px}
.aiMsg{max-width:86%;padding:10px 13px;border-radius:14px;font-size:14px;line-height:1.65;word-break:break-word}
/* 消息行：用户消息右侧带头像 */
#aiMsgs .aiLine{display:flex;gap:8px;align-items:flex-start;width:100%}
#aiMsgs .aiLine.user{justify-content:flex-end}
#aiMsgs .aiLine.bot .aiMsg{flex:1;max-width:none;width:auto}
.aiUav{width:32px;height:32px;border-radius:50%;overflow:hidden;flex:0 0 32px;background:var(--info-bg);color:var(--info-txt);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;border:1px solid var(--chip-line)}
.aiUav img{width:100%;height:100%;object-fit:cover;display:block}
.aiMsg.user{max-width:74%;flex:0 0 auto;background:var(--navy2);color:#fff;border-radius:14px;border-bottom-right-radius:4px;white-space:pre-wrap}
.aiMsg.bot{align-self:stretch;max-width:none;width:100%;background:var(--card);border:1px solid var(--line);border-radius:14px;color:var(--txt);white-space:pre-wrap;box-shadow:0 1px 2px rgba(15,42,67,.04)}
.aiMsg.bot b{color:var(--head)}
.aiTyping{display:inline-flex;align-items:center;color:var(--sub);font-size:14px}
.aiTyping .d{display:inline-block;font-weight:800;animation:aiDot 1.15s infinite ease-in-out}
.aiTyping .d:nth-child(2){animation-delay:.18s}
.aiTyping .d:nth-child(3){animation-delay:.36s}
@keyframes aiDot{0%,80%,100%{opacity:.2;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
.aiMsg.bot .h{display:block;font-weight:700;color:var(--head);margin:6px 0 2px}
.aiQuick{display:flex;flex-wrap:wrap;gap:6px;padding:6px 12px 8px;flex-shrink:0;background:var(--bg)}
.aiQuick button{border:1px solid var(--chip-line);background:var(--chip);color:var(--chip-txt);border-radius:999px;font-size:11px;padding:4px 10px;cursor:pointer;line-height:1.4}
.aiInputBar{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--line);background:var(--card);flex-shrink:0}
.aiInputBar input{flex:1;border:1px solid var(--line);border-radius:10px;padding:8px 12px;font-size:13px;outline:none;min-width:0}
.aiInputBar button{border:none;background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;border-radius:10px;padding:8px 16px;font-size:13px;cursor:pointer;flex-shrink:0}
/* ==================== 🌙 深色主题（白天/夜晚切换） 2026-10-15 ==================== */
html[data-theme="dark"]{
  color-scheme:dark;
  --bg:#0E141B;--bg2:#121A23;--card:#1A232E;--line:#2B3646;
  --txt:#E6EDF5;--sub:#9DAFC2;--sub2:#C4D2E1;--muted:#8394A7;
  --head:#E8EEF6;--head2:#CFDCEA;--head3:#B9CADD;
  --chip:#222D3A;--chip-line:#33455A;--chip-txt:#BFD2E6;
  --ok-bg:#14261D;--ok-line:#27472F;--warn-bg:#2A2412;--warn-line:#4A3E20;--warn-txt:#E2C67E;
  --danger-bg:#2C1717;--info-bg:#142334;--info-txt:#8FB6EC;
  --purple-bg:#241B2E;--purple-txt:#C6A6E6;
  --sh:0 1px 4px rgba(0,0,0,.5);
}
body{transition:background .25s ease,color .25s ease}
html[data-theme="dark"] .topbar{box-shadow:0 2px 12px rgba(0,0,0,.5)}
html[data-theme="dark"] .searchbar input{box-shadow:none}
html[data-theme="dark"] .logo .badge,html[data-theme="dark"] .auth-logo{box-shadow:0 0 0 2px rgba(255,255,255,.15)}
