/* ===== 商企智链 H5 用户端（高端大气版） ===== */
:root{
  --pri:#2563eb; --pri2:#0ea5e9; --deep:#1e40af;
  --accent:#8b5cf6; --gold:#f59e0b;
  --bg:#f8fafc; --card:#ffffff; --line:#e2e8f0;
  --txt:#0f172a; --mut:#475569; --mut2:#94a3b8;
  --ok:#10b981; --warn:#f59e0b; --bad:#ef4444;
  --grad:linear-gradient(135deg,#2563eb 0%,#0ea5e9 100%);
  --grad2:linear-gradient(135deg,#8b5cf6 0%,#ec4899 100%);
  --grad-gold:linear-gradient(135deg,#f59e0b 0%,#ef4444 100%);
  --radius:14px; --radius-sm:10px; --radius-lg:18px;
  --shadow:0 1px 3px rgba(15,23,42,.06),0 1px 2px rgba(15,23,42,.04);
  --shadow-md:0 4px 16px rgba(15,23,42,.08);
  --shadow-lg:0 12px 32px rgba(15,23,42,.12);
  --shadow-glow:0 4px 20px rgba(37,99,235,.25);
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Helvetica Neue","Microsoft YaHei",sans-serif;color:var(--txt);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}
.app{max-width:520px;margin:0 auto;min-height:100vh;position:relative;background:var(--bg)}
.icon{display:inline-flex;width:18px;height:18px;flex-shrink:0;vertical-align:-2px}
.icon svg{width:100%;height:100%}

/* 顶部栏 */
.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;height:52px;padding:0 16px;
  background:rgba(255,255,255,.95);backdrop-filter:blur(20px);border-bottom:1px solid var(--line);color:var(--txt)}
.tb-brand{font-size:18px;font-weight:700;letter-spacing:.5px;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.tb-back{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:10px;color:var(--txt);transition:all .2s}
.tb-back:active{background:var(--bg);transform:scale(.95)}
.tb-back .icon{width:20px;height:20px}
.tb-title{font-size:16px;font-weight:600}
.tb-holder{width:36px}

/* 底部栏 */
.bottombar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:520px;min-height:60px;
  background:#fff;display:flex;border-top:1px solid var(--line);z-index:60;
  padding:6px 0 calc(6px + env(safe-area-inset-bottom));box-sizing:border-box}
.tab-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--mut2);cursor:pointer;gap:2px;transition:color .2s;height:100%}
.tab-item .tab-ic{display:flex;width:24px;height:24px;align-items:center;justify-content:center}
.tab-item .tab-ic svg{width:22px;height:22px}
.tab-item .tab-lb{font-size:11px;font-weight:500;line-height:1.2}
.tab-item.on{color:var(--pri)}
.tab-item.on .tab-ic{transform:translateY(-1px)}

/* 区块标题 */
.sec-head{display:flex;justify-content:space-between;align-items:center;padding:20px 16px 12px}
.sec-head h3{font-size:17px;font-weight:700;color:var(--txt);display:flex;align-items:center;gap:8px}
.sec-head h3::before{content:'';width:4px;height:18px;background:var(--grad);border-radius:2px}
.sec-head a{color:var(--mut2);font-size:13px;text-decoration:none;display:flex;align-items:center;gap:2px}

/* 通用卡片 */
.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;margin:0 12px 12px}
.card-title{font-size:16px;font-weight:600;color:var(--txt);margin-bottom:12px;display:flex;align-items:center;gap:8px}
.card-title::before{content:'';width:3px;height:16px;background:var(--grad);border-radius:2px}

/* 按钮 */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 20px;border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;outline:none;font-family:inherit}
.btn:active{transform:scale(.97)}
.btn.primary{background:var(--grad);color:#fff;box-shadow:var(--shadow-glow)}
.btn.primary:hover{box-shadow:0 6px 24px rgba(37,99,235,.35)}
.btn.ghost{background:#f1f5f9;color:var(--mut)}
.btn.ghost:active{background:#e2e8f0}
.btn.danger{background:#fef2f2;color:var(--bad)}
.btn.danger:active{background:#fee2e2}
.btn.sm{padding:6px 14px;font-size:12px;border-radius:8px}
.btn.big{padding:14px 28px;font-size:16px;border-radius:12px;width:100%}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}

/* 内容 */
.content{padding-bottom:80px;min-height:calc(100vh - 50px)}
.loading,.empty{text-align:center;color:var(--mut2);padding:50px 20px;font-size:14px}
.center{text-align:center}

/* 首页 */
.home-hero{background:linear-gradient(160deg,#1e3a8a 0%,#2563eb 50%,#0ea5e9 100%);padding:24px 16px 28px;color:#fff;position:relative;overflow:hidden}
.home-hero::before{content:'';position:absolute;top:-60px;right:-40px;width:200px;height:200px;border-radius:50%;background:rgba(255,255,255,.08)}
.home-hero::after{content:'';position:absolute;bottom:-80px;left:-30px;width:160px;height:160px;border-radius:50%;background:rgba(255,255,255,.06)}
.hero-title{font-size:22px;font-weight:700;margin-bottom:6px;position:relative;z-index:1}
.hero-sub{font-size:13px;opacity:.85;position:relative;z-index:1}
.hero-search{display:flex;gap:10px;margin-top:18px;position:relative;z-index:1}
.hero-search .input{flex:1;height:44px;border-radius:12px;border:none;padding:0 16px;font-size:14px;background:rgba(255,255,255,.95);box-shadow:0 4px 16px rgba(0,0,0,.1)}
.hero-search .btn{height:44px;padding:0 20px;border-radius:12px;background:#fff;color:var(--pri);font-weight:600;border:none;box-shadow:0 4px 16px rgba(0,0,0,.1)}

/* 入口图标 */
.home-entries{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:16px 12px;background:#fff;margin:0 12px;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-top:-20px;position:relative;z-index:2}
.hm-item{display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px 4px;cursor:pointer;transition:all .2s;border-radius:12px}
.hm-item:active{transform:scale(.95);background:#f8fafc}
.hm-ic{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:22px;color:#fff;box-shadow:0 4px 12px rgba(0,0,0,.12)}
.hm-item:nth-child(1) .hm-ic{background:linear-gradient(135deg,#2563eb,#0ea5e9)}
.hm-item:nth-child(2) .hm-ic{background:linear-gradient(135deg,#8b5cf6,#ec4899)}
.hm-item:nth-child(3) .hm-ic{background:linear-gradient(135deg,#f59e0b,#ef4444)}
.hm-item:nth-child(4) .hm-ic{background:linear-gradient(135deg,#10b981,#06b6d4)}
.hm-lb{font-size:12px;font-weight:500;color:var(--txt)}

/* 入口宣传页 */
.splash{position:fixed;inset:0;z-index:9999}
.splash-bg{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff}
.splash-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.splash-logo{font-size:28px;font-weight:700;letter-spacing:1px}
.splash-tip{font-size:13px;opacity:.85;margin-top:10px;padding:0 40px;text-align:center;line-height:1.6}
.splash-count{position:absolute;top:20px;right:20px;font-size:12px;opacity:.8;background:rgba(0,0,0,.2);padding:4px 10px;border-radius:10px}
.splash-skip{position:absolute;bottom:30px;left:0;right:0;text-align:center;font-size:13px;opacity:.85;cursor:pointer}
.hero-brand{display:flex;align-items:baseline;gap:8px;margin-bottom:14px}
.brand-logo{font-size:20px;font-weight:700;letter-spacing:.5px}
.brand-tag{font-size:11px;opacity:.7;background:rgba(255,255,255,.12);padding:2px 8px;border-radius:4px}
.hero-search{display:flex;align-items:center;gap:8px;background:#fff;border-radius:10px;padding:5px 6px 5px 12px;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.hs-input{flex:1;background:transparent;border:none;outline:none;color:var(--txt);font-size:13px;height:32px}
.hs-input::placeholder{color:var(--mut2)}
.hs-btn{background:var(--pri);color:#fff;border:none;border-radius:8px;padding:7px 14px;font-size:12px;font-weight:600;cursor:pointer}
.hs-ph{color:rgba(255,255,255,.85);font-size:13px}

/* 首页 Banner 轮播 */
.home-banner{position:relative;overflow:hidden;margin:12px 14px 0;border-radius:var(--radius);box-shadow:var(--shadow)}
.hb-track{display:flex;transition:transform .5s ease}
.hb-slide{min-width:100%;height:112px}
.hb-slide img{width:100%;height:112px;object-fit:cover;display:block}
.hb-text{height:112px;display:flex;flex-direction:column;justify-content:center;padding:0 22px;color:#fff;cursor:pointer}
.hb-t1{font-size:17px;font-weight:800}
.hb-t2{font-size:12px;opacity:.9;margin-top:8px}
.hb-dots{position:absolute;bottom:8px;left:0;right:0;display:flex;justify-content:center;gap:6px}
.hb-dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.55);cursor:pointer;transition:.2s}
.hb-dot.on{width:16px;border-radius:3px;background:#fff}
.hero-modules{display:flex;justify-content:space-around;margin-top:20px}
.hm-item{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:12px;cursor:pointer}
.hm-item .icon{width:24px;height:24px;opacity:.95}
.cats-strip{display:flex;gap:10px;overflow-x:auto;background:var(--card);padding:12px 14px;margin:12px 0}
.cs-item{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:56px;font-size:12px;color:var(--mut);cursor:pointer}
.cs-ic{width:38px;height:38px;border-radius:12px;background:#eef2ff;color:var(--pri);display:flex;align-items:center;justify-content:center}
.cs-ic .icon{width:20px;height:20px}

.sec-head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px 6px}
.sec-head h3{font-size:16px;font-weight:700}
.sec-head a{color:var(--pri);font-size:12px;text-decoration:none}
.proj-list{padding:0 14px}
.proj-card{background:#fff;border-radius:14px;padding:14px 16px;margin-bottom:10px;cursor:pointer}
.proj-card:active{background:#fafafa}
.proj-name{font-size:15px;font-weight:600;color:#333}
.proj-sub{font-size:13px;color:#999;margin-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.proj-foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px}
.proj-price{color:#e11d48;font-weight:600;font-size:16px}
.proj-price small{font-size:11px;color:#999;margin-left:2px;font-weight:400}
.proj-cta{color:#999;font-size:13px}

/* 分类页 */
.cat-page{display:flex;height:calc(100vh - 108px)}
.cat-side{width:96px;background:var(--card);overflow-y:auto;flex-shrink:0;border-right:1px solid var(--line)}
.cat-side .cs{padding:18px 12px;font-size:13px;color:var(--mut);cursor:pointer;text-align:center}
.cat-side .cs.on{color:var(--pri);font-weight:700;background:#f8faff}
.cat-main{flex:1;overflow-y:auto;padding:12px}
.cat-main .proj-card{margin-bottom:10px}
.cat-search{display:flex;gap:8px;margin-bottom:10px}
.cat-search .input{flex:1;height:40px}
.cat-search .btn{height:40px}
.cat-kw-tip{font-size:12px;color:var(--mut);padding:2px 2px 10px}
.page-sub{font-size:12.5px;color:var(--mut);margin:-6px 0 10px;line-height:1.6}
.row{display:flex;align-items:center;gap:10px;margin:14px 0}
.row label{font-size:12.5px;color:var(--mut);flex-shrink:0}

/* 嘉奖值 */
.merit-hero{background:linear-gradient(150deg,#7c3aed,#db2777 120%);padding:26px 20px;color:#fff;text-align:center}
.mh-t{font-size:13px;opacity:.9}
.mh-score{font-size:42px;font-weight:800;margin-top:8px}
.mh-score em{font-size:15px;font-style:normal;font-weight:500;opacity:.85}
.mh-sub{font-size:12px;opacity:.85;margin-top:8px}
.merit-dims{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:14px;background:var(--card);border-radius:var(--radius);padding:14px 10px;box-shadow:var(--shadow)}
.md-item{text-align:center}
.md-v{font-size:20px;font-weight:800;color:var(--pri)}
.md-n{font-size:11px;font-weight:600;margin-top:4px}
.md-d{font-size:10px;color:var(--mut2);margin-top:3px;line-height:1.4}
.merit-log{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.merit-log:last-child{border-bottom:none}
.ml-n{font-size:13.5px}
.ml-t{font-size:11px;color:var(--mut2);margin-top:3px}
.ml-v{font-weight:800;font-size:15px}
.ml-v.up{color:#16a34a}.ml-v.down{color:#dc2626}
.rule-line{padding:9px 0;border-bottom:1px solid var(--line);font-size:12.5px}
.rule-line:last-child{border-bottom:none}
.rl-name{font-weight:700}
.rl-val{color:var(--pri);font-weight:700;margin-top:2px}
.rl-note{color:var(--mut);margin-top:2px}

/* 详情/下单 */
.detail-hero{position:relative;background:var(--grad);padding:28px 20px;color:#fff}
.dh-name{font-size:22px;font-weight:800}
.dh-sub{font-size:13px;opacity:.9;margin-top:6px;line-height:1.6}
.dh-price{font-size:20px;font-weight:800;margin-top:14px}
.order-head{background:var(--grad);padding:22px 20px;color:#fff;display:flex;justify-content:space-between;align-items:center}
.oh-name{font-size:18px;font-weight:800}
.oh-price{font-size:17px;font-weight:800}

.card{background:var(--card);border-radius:var(--radius);margin:12px 14px;padding:16px;box-shadow:var(--shadow);border:1px solid var(--line)}
.card-title{font-size:15px;font-weight:600;margin-bottom:12px;color:var(--txt)}
.text{font-size:13.5px;color:var(--mut);line-height:1.7}
.divider{height:1px;background:var(--line);margin:12px 0}
.kv{display:flex;justify-content:space-between;padding:8px 0;font-size:13.5px}
.kv .k{color:var(--mut)} .kv .v{color:var(--txt);font-weight:500}
.fl{display:block;font-size:12.5px;color:var(--mut);margin:12px 0 6px;font-weight:500}
.input{width:100%;height:44px;border:1px solid var(--line);border-radius:var(--radius-sm);padding:0 14px;font-size:14px;background:#fff;outline:none;transition:all .15s ease;box-sizing:border-box;color:var(--txt)}
.input:focus{border-color:var(--pri);box-shadow:0 0 0 3px rgba(26,86,219,.1)}
.input::placeholder{color:#b0b8c4}
.textarea{width:100%;min-height:110px;border:1.5px solid #e8ecf1;border-radius:14px;padding:14px 16px;font-size:14.5px;background:#fff;outline:none;resize:vertical;line-height:1.7;transition:all .2s ease;box-sizing:border-box;color:#1a1a2e}
.textarea:focus{border-color:#667eea;box-shadow:0 0 0 4px rgba(102,126,234,.12)}
.textarea::placeholder{color:#b0b8c4}
select.input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}
/* 搜索框优化 */
.cat-search{display:flex;gap:10px;margin-bottom:14px;align-items:center}
.cat-search .input{flex:1;height:44px;border-radius:22px;padding-left:40px;background:#f7f8fa url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cpath d='m21 21-4.35-4.35'%3E%3C/path%3E%3C/svg%3E") no-repeat 14px center;border:1.5px solid transparent}
.cat-search .input:focus{background-color:#fff;border-color:#667eea;box-shadow:0 2px 12px rgba(102,126,234,.15)}
.cat-search .btn{height:44px;border-radius:22px;padding:0 22px}
/* 搜索历史/热门搜索 */
.search-panel{background:#fff;border-radius:16px;padding:16px;margin:0 14px 14px;box-shadow:0 2px 12px rgba(0,0,0,.06)}
.sp-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.sp-title span{font-size:13px;font-weight:600;color:#333}
.sp-clear{font-size:12px;color:#999;cursor:pointer}
.sp-tags{display:flex;flex-wrap:wrap;gap:8px}
.sp-tag{background:#f5f6f8;color:#555;font-size:12.5px;padding:7px 14px;border-radius:16px;cursor:pointer;transition:all .15s;border:1px solid transparent}
.sp-tag:hover{background:#eef0ff;color:#667eea;border-color:#dfe3ff}
.sp-tag.hot{background:#fff5f5;color:#ff4757;border-color:#ffe0e0}

/* 分类页商城商品网格 */
.cat-mall-tip{font-size:13px;color:#667eea;font-weight:600;margin-bottom:10px;padding:4px 0}
.cat-mall-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cm-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.06);cursor:pointer;transition:transform .15s}
.cm-card:active{transform:scale(.97)}
.cm-img{height:100px;display:flex;align-items:center;justify-content:center;font-size:32px;color:#fff}
.cm-info{padding:8px 10px}
.cm-name{font-size:13px;font-weight:600;color:#1a1a2e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cm-merchant{font-size:11px;color:#999;margin-top:2px}
.cm-price{font-size:15px;font-weight:700;color:#ff4757;margin-top:4px}

/* 实名认证 */
.id-hero{background:linear-gradient(135deg,#667eea,#764ba2);padding:32px 20px;color:#fff;text-align:center;margin-bottom:16px}
.id-ico{font-size:48px;margin-bottom:12px}
.id-title{font-size:20px;font-weight:700}
.id-sub{font-size:13px;opacity:.85;margin-top:6px}

/* 订单页头部 */
.orders-head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px 6px}
.oh-title{font-size:18px;font-weight:700}

/* 首页发布需求横幅 */
.publish-banner{display:flex;align-items:center;justify-content:space-between;margin:12px 14px;padding:14px 16px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:14px;color:#fff;cursor:pointer;box-shadow:0 4px 14px rgba(102,126,234,.3)}
.pb-title{font-size:15px;font-weight:700}
.pb-sub{font-size:12px;opacity:.85;margin-top:3px}
.pb-btn{background:#fff;color:#667eea;padding:8px 14px;border-radius:18px;font-size:13px;font-weight:600;white-space:nowrap}

/* 评价页面 */
.rv-hero{background:linear-gradient(135deg,#667eea,#764ba2);padding:28px 20px;color:#fff;text-align:center;margin-bottom:16px}
.rv-title{font-size:20px;font-weight:700}
.rv-sub{font-size:13px;opacity:.85;margin-top:6px}
.rv-label{font-size:14px;font-weight:600;margin-bottom:10px;color:#333}
.rv-stars-input{display:flex;gap:8px}
.rv-stars-input .star{font-size:32px;cursor:pointer;color:#ddd;transition:color .2s}
.rv-done{text-align:center;padding:40px 20px}
.rv-done .rv-ico{width:64px;height:64px;line-height:64px;border-radius:50%;background:#52c41a;color:#fff;font-size:32px;margin:0 auto 16px}
.rv-done .rv-title{font-size:18px;font-weight:700;margin-bottom:8px}
.rv-done .rv-stars{font-size:24px;color:#ffb400;margin-bottom:12px}
.rv-done .rv-content{color:#666;font-size:14px;line-height:1.6;margin-bottom:12px}
.rv-reply{background:#f5f7fa;padding:12px;border-radius:8px;text-align:left;font-size:13px;color:#555;margin-top:12px}

/* 发布需求 */
.pub-hero{background:linear-gradient(135deg,#667eea,#764ba2);padding:28px 20px;color:#fff;margin-bottom:16px}
.pub-title{font-size:20px;font-weight:700}
.pub-sub{font-size:13px;opacity:.85;margin-top:6px}
.req{color:#ff4757;margin-left:2px}

/* 需求广场 */
.dm-head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px 6px}
.dm-title{font-size:18px;font-weight:700}
.dm-search{display:flex;gap:8px;padding:0 16px 12px}
.dm-search .input{flex:1}
.dm-card{background:#fff;border-radius:12px;padding:14px 16px;margin:0 14px 10px;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.dm-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.dm-title2{font-size:15px;font-weight:600;flex:1;margin-right:10px}
.dm-budget{color:#ff4757;font-weight:700;font-size:14px;white-space:nowrap}
.dm-desc{font-size:13px;color:#666;line-height:1.5;margin-bottom:10px}
.dm-foot{display:flex;gap:12px;font-size:12px;color:#999}

/* 需求详情 */
.dm-detail-head{background:linear-gradient(135deg,#667eea,#764ba2);padding:24px 20px;color:#fff;margin-bottom:16px}
.dd-status{display:inline-block;background:rgba(255,255,255,.2);padding:4px 12px;border-radius:12px;font-size:12px;margin-bottom:10px}
.dd-title{font-size:18px;font-weight:700;margin-bottom:8px}
.dd-budget{font-size:14px;opacity:.9;margin-bottom:8px}
.dd-meta{display:flex;gap:14px;font-size:12px;opacity:.8}
.dd-desc{font-size:14px;line-height:1.7;color:#333;white-space:pre-wrap}
.quote-card{border:1px solid #eee;border-radius:10px;padding:12px;margin-bottom:10px}
.q-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.q-provider{font-weight:600;font-size:14px}
.q-price{color:#ff4757;font-weight:700;font-size:16px}
.q-meta{font-size:12px;color:#999;margin-bottom:6px}
.q-content{font-size:13px;color:#666;line-height:1.5;margin-bottom:8px}

/* 诚意金 */
.earnest-box{background:#fff8e6;border:1px solid #ffd666;border-radius:10px;padding:12px;margin-bottom:12px}
.eb-tip{font-size:12px;color:#8c6d1f;line-height:1.6;margin-bottom:10px}
.eb-amount{position:relative}
.eb-suggest{display:block;font-size:11px;color:#999;margin-top:6px;cursor:pointer}
.tag-earnest{display:inline-block;background:#52c41a;color:#fff;font-size:11px;padding:2px 8px;border-radius:10px;margin-left:8px;vertical-align:middle}

/* 项目详情评价列表 */
.rv-summary{font-size:12px;color:#ffb400;font-weight:normal;margin-left:8px}
.review-item{padding:12px 0;border-bottom:1px solid #f0f0f0}
.review-item:last-child{border-bottom:none}
.ri-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.ri-user{font-size:13px;font-weight:600;color:#333}
.ri-stars{font-size:13px;color:#ffb400}
.ri-content{font-size:13px;color:#666;line-height:1.6;margin-bottom:6px}
.ri-reply{background:#f5f7fa;padding:8px 10px;border-radius:6px;font-size:12px;color:#555;margin-bottom:6px;line-height:1.5}
.ri-time{font-size:11px;color:#999}

/* 发票 */
.inv-hero{background:linear-gradient(135deg,#667eea,#764ba2);padding:28px 20px;color:#fff;margin-bottom:16px}
.inv-title{font-size:20px;font-weight:700}
.inv-sub{font-size:13px;opacity:.85;margin-top:6px}
.inv-card{background:#fff;border-radius:12px;padding:14px 16px;margin:0 14px 10px;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.inv-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.inv-order{font-size:14px;font-weight:600}
.inv-status{font-size:12px;padding:2px 8px;border-radius:10px;background:#f0f0f0;color:#999}
.inv-status.ok{background:#e8f5e9;color:#52c41a}
.inv-status.bad{background:#ffebee;color:#ff4757}
.inv-project{font-size:13px;color:#666;margin-bottom:8px}
.inv-foot{display:flex;gap:10px;font-size:12px;color:#999;align-items:center}
.inv-reject{font-size:12px;color:#ff4757;margin-top:8px;background:#fff0f0;padding:6px 10px;border-radius:6px}
.inv-url{margin-top:8px}
.inv-url a{color:#667eea;font-size:13px;text-decoration:none}

/* 优惠券 */
.cp-hero{background:linear-gradient(135deg,#ff6b6b,#ee5a24);padding:28px 20px;color:#fff;margin-bottom:16px}
.cp-title{font-size:20px;font-weight:700}
.cp-sub{font-size:13px;opacity:.85;margin-top:6px}
.cp-list{padding:0 14px}
.cp-card{display:flex;background:#fff;border-radius:12px;margin-bottom:12px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.cp-card.cp-disabled{opacity:.5}
.cp-left{width:110px;background:linear-gradient(135deg,#ff6b6b,#ee5a24);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px 8px;position:relative}
.cp-left::after{content:'';position:absolute;right:-6px;top:50%;transform:translateY(-50%);width:12px;height:12px;background:#f5f5f5;border-radius:50%}
.cp-amount{font-size:28px;font-weight:800;line-height:1}
.cp-amount small{font-size:14px;font-weight:600}
.cp-condition{font-size:11px;margin-top:6px;opacity:.9}
.cp-right{flex:1;padding:14px 16px;display:flex;flex-direction:column;justify-content:space-between}
.cp-name{font-size:15px;font-weight:600;color:#333}
.cp-valid{font-size:12px;color:#999;margin-top:4px}
.cp-scope{font-size:11px;color:#667eea;margin-top:2px}
.cp-status{font-size:12px;color:#52c41a;margin-top:6px}
.cp-btn{align-self:flex-end;margin-top:8px}
.cp-tabs{display:flex;background:#fff;padding:0 14px;border-bottom:1px solid #f0f0f0}
.cp-tab{flex:1;padding:14px 0;text-align:center;font-size:14px;color:#666;border:none;background:none;position:relative}
.cp-tab.on{color:#ff6b6b;font-weight:600}
.cp-tab.on::after{content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:24px;height:3px;background:#ff6b6b;border-radius:2px}

/* 支付页优惠券选择 */
.cp-select{margin-bottom:12px}
.cp-opt{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid #f5f5f5;cursor:pointer}
.cp-opt:last-child{border-bottom:none}
.cp-opt .cp-name{font-size:14px;color:#333}
.cp-radio{width:18px;height:18px;border:2px solid #ddd;border-radius:50%;position:relative;flex-shrink:0}
.cp-radio.on{border-color:#667eea}
.cp-radio.on::after{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:10px;height:10px;background:#667eea;border-radius:50%}
.pay-summary{border-top:1px solid #f0f0f0;padding-top:12px;margin-top:8px}
.ps-row{display:flex;justify-content:space-between;padding:4px 0;font-size:14px;color:#666}
.ps-total{font-size:16px;color:#333;font-weight:600;margin-top:4px}

/* 首页公告条 */
.home-announce{display:flex;align-items:center;background:#fff;border-radius:10px;margin:10px 12px;padding:10px 12px;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.ha-ic{color:#f59e0b;margin-right:8px;flex-shrink:0}
.ha-track{flex:1;overflow:hidden;height:20px;position:relative}
.ha-item{font-size:13px;color:#555;line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ha-more{font-size:12px;color:#999;margin-left:8px;flex-shrink:0}

/* 商企智电 */
.zd-hero{background:linear-gradient(135deg,#f59e0b,#ef4444);padding:24px 16px;color:#fff}
.zd-badge{display:inline-flex;align-items:center;gap:4px;background:rgba(255,255,255,.2);padding:4px 10px;border-radius:12px;font-size:12px}
.zd-title{font-size:22px;font-weight:700;margin-top:10px}
.zd-sub{font-size:13px;opacity:.9;margin-top:6px}
.zd-sec{margin:12px}
.zd-sec-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.zd-sec-head span{font-size:16px;font-weight:600;color:#333}
.zd-sec-more{font-size:13px;color:#999;cursor:pointer}
.zd-cats{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;margin-bottom:10px}
.zd-cat{padding:6px 14px;background:#f5f5f5;border-radius:16px;font-size:13px;color:#666;white-space:nowrap;cursor:pointer}
.zd-cat.on{background:linear-gradient(135deg,#f59e0b,#ef4444);color:#fff}
.zd-list{display:flex;flex-direction:column;gap:10px}
.zd-card{background:#fff;border-radius:12px;padding:14px;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.zd-card-top{display:flex;gap:12px;align-items:center}
.zd-ic{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}
.zd-card-info{flex:1;min-width:0}
.zd-card-name{font-size:15px;font-weight:600;color:#333}
.zd-card-desc{font-size:12px;color:#999;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zd-card-foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding-top:10px;border-top:1px solid #f5f5f5}
.zd-price{font-size:16px;font-weight:700;color:#ef4444}
.zd-cta{font-size:13px;color:#f59e0b}
.zd-order{background:#fff;border-radius:10px;padding:12px;margin-bottom:8px}
.zd-order-top{display:flex;justify-content:space-between;align-items:center}
.zd-order-name{font-size:14px;font-weight:600;color:#333}
.zd-order-sub{font-size:12px;color:#999;margin-top:4px}
.zd-device{display:flex;align-items:center;gap:12px;background:#fff;border-radius:10px;padding:12px;margin-bottom:8px}
.zd-dev-ic{width:40px;height:40px;border-radius:8px;background:linear-gradient(135deg,#f59e0b,#ef4444);display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}
.zd-dev-info{flex:1;min-width:0}
.zd-dev-name{font-size:14px;font-weight:600;color:#333}
.zd-dev-sub{font-size:12px;color:#999;margin-top:2px}
.zd-dev-status{font-size:12px;padding:3px 8px;border-radius:10px;background:#f0f0f0;color:#999}
.zd-dev-status.on{background:#dcfce7;color:#16a34a}
.zd-detail-hero{background:linear-gradient(135deg,#f59e0b,#ef4444);padding:30px 16px;color:#fff;text-align:center}
.zd-detail-ic{font-size:48px;margin-bottom:10px}
.zd-detail-name{font-size:20px;font-weight:700}
.zd-detail-cat{font-size:13px;opacity:.9;margin-top:6px}
.zd-detail-price{font-size:24px;font-weight:700;margin-top:10px}
.zd-guarantee{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.zd-g-item{display:flex;align-items:center;gap:8px;font-size:13px;color:#666}
.zd-book-service{display:flex;align-items:center;gap:12px}
.zd-book-ic{width:48px;height:48px;border-radius:10px;background:linear-gradient(135deg,#f59e0b,#ef4444);display:flex;align-items:center;justify-content:center;color:#fff}
.zd-book-info{flex:1}
.zd-book-name{font-size:15px;font-weight:600;color:#333}
.zd-book-price{font-size:16px;font-weight:700;color:#ef4444;margin-top:4px}
.zd-bottom-bar{position:fixed;bottom:0;left:0;right:0;background:#fff;padding:10px 16px;display:flex;gap:10px;box-shadow:0 -2px 10px rgba(0,0,0,.06);z-index:100}
.zd-bottom-bar .btn{flex:1}
.zd-order-detail{padding-bottom:80px}
.zd-order-status{text-align:center;padding:20px;background:linear-gradient(135deg,#f59e0b,#ef4444)}
.zd-timeline{padding:10px 0}
.zd-tl-item{display:flex;gap:12px;padding:8px 0;position:relative}
.zd-tl-dot{width:12px;height:12px;border-radius:50%;background:#e5e7eb;flex-shrink:0;margin-top:4px}
.zd-tl-item.done .zd-tl-dot{background:#10b981}
.zd-tl-item.active .zd-tl-dot{background:#f59e0b}
.zd-tl-text{font-size:14px;color:#333}
.zd-tl-text span{display:block;font-size:12px;color:#999;margin-top:2px}

/* 每日签到 */
.checkin-page{min-height:100vh;background:#f5f7fa}
.ci-hero{background:linear-gradient(135deg,#667eea,#764ba2);padding:30px 16px;color:#fff;text-align:center}
.ci-title{font-size:22px;font-weight:700}
.ci-sub{font-size:13px;opacity:.9;margin-top:6px}
.ci-stats{display:flex;justify-content:space-around;margin:20px 0}
.ci-stat{text-align:center}
.ci-num{font-size:24px;font-weight:700}
.ci-lbl{font-size:12px;opacity:.8;margin-top:4px}
.ci-btn{background:#fff;color:#667eea;border:none;padding:12px 40px;border-radius:24px;font-size:16px;font-weight:600;cursor:pointer}
.ci-btn.done{background:rgba(255,255,255,.3);color:#fff;cursor:default}
.ci-tip{font-size:12px;opacity:.9;margin-top:10px}
.ci-week{display:flex;justify-content:space-between;gap:6px}
.ci-day{flex:1;text-align:center;padding:10px 4px;background:#f8f9fa;border-radius:8px}
.ci-day.checked{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}
.ci-day-name{font-size:12px}
.ci-day-ic{font-size:20px;margin:6px 0}
.ci-day-reward{font-size:11px;font-weight:600}
.ci-rules{font-size:13px;color:#666;line-height:2}

/* 智电评价 */
.zd-review{padding:10px 0}
.zd-rating{font-size:24px;color:#ff9800;margin-bottom:8px}
.zd-review-text{font-size:14px;color:#666;line-height:1.6}
.zd-star-input{font-size:32px;cursor:pointer}
.zd-star{color:#ddd;margin-right:8px;transition:color .2s}
.zd-star:hover{color:#ff9800}
.zd-service-note{background:#f0f7ff;padding:12px;border-radius:8px;font-size:13px;color:#555;margin-top:12px;line-height:1.6}
.tips{font-size:12px;color:var(--mut2);padding:0 18px;line-height:1.7}

/* 按钮 */
.btn{border:none;border-radius:var(--radius-sm);padding:9px 16px;font-size:13.5px;cursor:pointer;font-weight:500;transition:all .15s;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.btn:active{transform:scale(.97)}
.btn.primary{background:var(--pri);color:#fff}
.btn.primary:hover{background:var(--deep)}
.btn.ghost{background:var(--bg);color:var(--mut);border:1px solid var(--line)}
.btn.ghost:hover{background:#eef1f5}
.btn.warn{background:#fef2f2;color:var(--bad)}
.btn.big{width:100%;height:46px;border-radius:var(--radius-sm);font-size:15px;font-weight:600}
.btn.sm{font-size:12px;padding:5px 12px;border-radius:6px}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.bottom-bar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:520px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line);z-index:55}

/* 状态标签 */
.st{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:500}
.st-o{background:#fef3c7;color:var(--warn)} .st-b{background:#dbeafe;color:var(--pri)}
.st-p{background:#ede9fe;color:#7c3aed} .st-g{background:#dcfce7;color:var(--ok)}
.st-r{background:#fee2e2;color:var(--bad)} .st-gr{background:#f1f5f9;color:var(--mut)}

/* 订单 */
.seg{display:flex;background:var(--card);padding:10px;gap:8px;margin-bottom:8px}
.seg-item{flex:1;text-align:center;font-size:13.5px;color:var(--mut);padding:9px 0;border-radius:10px;cursor:pointer}
.seg-item.on{background:var(--grad);color:#fff;font-weight:700}
.sub-seg{display:flex;background:var(--card);padding:0 14px 10px;gap:24px}
.ss{font-size:12.5px;color:var(--mut);padding-bottom:6px;border-bottom:2px solid transparent;cursor:pointer}
.ss.on{color:var(--pri);font-weight:700;border-bottom-color:var(--pri)}
.list{padding:8px 14px}
.o-card{background:var(--card);border-radius:var(--radius);padding:14px 16px;margin-bottom:10px;box-shadow:var(--shadow);cursor:pointer;position:relative;border:1px solid var(--line);transition:all .15s}
.o-card:active{transform:scale(.99);box-shadow:var(--shadow-md)}
.o-card.demand-card{border-left:3px solid var(--warn);background:linear-gradient(to right,#fffbeb,var(--card))}
.o-top{display:flex;justify-content:space-between;align-items:center}
.o-name{font-size:14.5px;font-weight:600}
.o-no{font-size:11.5px;color:var(--mut2);margin-top:6px;font-family:monospace}
.o-foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px}
.o-amt{font-weight:700;font-size:15px;color:var(--txt)}
.o-time{font-size:11.5px;color:var(--mut2)}
.o-cta{position:absolute;right:14px;bottom:14px;color:var(--pri);font-size:12.5px;font-weight:600}

/* 订单详情 */
.head-card{padding:24px 20px;color:#fff;background:var(--grad)}
.head-card.ok{background:linear-gradient(135deg,#15803d,#22c55e)}
.head-card.bad{background:linear-gradient(135deg,#b91c1c,#f87171)}
.hc-status .st{background:rgba(255,255,255,.2);color:#fff}
.hc-name{font-size:20px;font-weight:800;margin-top:8px}
.hc-amt{font-size:22px;font-weight:800;margin-top:10px}
.hc-no{font-size:12px;opacity:.85;margin-top:6px;font-family:monospace}
.node{display:flex;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.node:last-child{border-bottom:none}
.node-dot{width:9px;height:9px;border-radius:50%;background:#cbd5e1;flex-shrink:0;margin-right:12px}
.node-dot.done{background:var(--ok)} .node-dot.bad{background:var(--bad)}
.node-main{flex:1;min-width:0}
.node-name{font-size:14px;font-weight:600}
.node-sub{font-size:11.5px;color:var(--mut2);margin-top:4px}
.node-actions{display:flex;gap:8px}
.rec-amt{font-weight:800;color:var(--ok)}
.rec-amt.minus{color:var(--bad)}

/* 钱包 */
.wallet-hero{background:var(--grad);padding:28px 20px;color:#fff}
.wh-label{font-size:13px;opacity:.9}
.wh-amt{font-size:34px;font-weight:800;margin-top:6px}
.wh-sub{font-size:12px;opacity:.85;margin-top:10px}

/* 我的 */
.mine-hero{background:linear-gradient(160deg,#1a365d 0%,#2b6cb0 100%);padding:24px 18px;color:#fff;display:flex;align-items:center}
.mine-av{width:54px;height:54px;border-radius:50%;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:600}
.mine-info{flex:1;margin-left:12px}
.mine-name{font-size:18px;font-weight:600}
.mine-phone{font-size:12px;opacity:.8;margin-top:4px}
.mine-invite{background:rgba(255,255,255,.14);border-radius:8px;padding:8px 12px;text-align:center;cursor:pointer}
.mi-l{font-size:10px;opacity:.8;display:block}
.mi-c{font-size:14px;font-weight:600;letter-spacing:.5px}
.wallet-mini{background:var(--card);margin:12px 14px;border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow);display:flex;justify-content:space-between;align-items:center;cursor:pointer;border:1px solid var(--line)}
.wm-l{font-size:12.5px;color:var(--mut);margin-right:10px}
.wm-amt{font-size:20px;font-weight:700;color:var(--txt)}
.wm-arrow{font-size:12px;color:var(--mut2)}
.menu-group{background:var(--card);margin:12px 14px;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line)}
.menu-cell{display:flex;align-items:center;padding:13px 16px;border-bottom:1px solid var(--line);cursor:pointer;font-size:13.5px;color:var(--txt);transition:background .15s}
.menu-cell:active{background:var(--bg)}
.menu-cell:last-child{border-bottom:none}
.menu-cell .mc-ic{width:20px;height:20px;color:var(--pri);margin-right:12px;display:flex;align-items:center}
.mc-lb{flex:1}
.mc-ar{color:var(--mut2);font-size:12px}
.mc-val{color:var(--mut);font-size:12.5px}
.menu-cell.danger{color:var(--bad)}
.menu-cell.danger .mc-ic{color:var(--bad)}

/* 登录 */
.login-page{min-height:calc(100vh - 48px);background:var(--bg);padding:40px 22px}
.login-brand{text-align:center;color:var(--txt);margin-bottom:30px}
.lb-logo{font-size:26px;font-weight:700;letter-spacing:1px;color:var(--pri)}
.lb-sub{font-size:13px;color:var(--mut);margin-top:8px}
.login-card{background:var(--card);border-radius:var(--radius);padding:24px 20px;box-shadow:var(--shadow-md);border:1px solid var(--line)}
.mode-seg{display:flex;background:#f1f5f9;border-radius:12px;padding:4px;margin-bottom:18px}
.mode{flex:1;text-align:center;font-size:14.5px;color:var(--mut);padding:10px 0;border-radius:9px;cursor:pointer}
.mode.on{background:#fff;color:var(--pri);font-weight:700;box-shadow:0 2px 8px rgba(15,23,42,.08)}
.code-row{display:flex;gap:10px;margin-top:12px}
.code-row .input{flex:1}
.code-row .btn{width:110px;flex-shrink:0}
.agree{text-align:center;font-size:11px;color:var(--mut2);margin-top:16px}
.recharge-amt{flex:1;padding:10px 0;border:1px solid #e2e8f0;border-radius:10px;background:#fff;color:#475569;font-size:14px;cursor:pointer;transition:.2s}
.recharge-amt.on{border-color:var(--pri);background:#eff6ff;color:var(--pri);font-weight:600}
.pay-opt{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:12px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;cursor:pointer;transition:.2s;font-size:14px}
.pay-opt.on{border-color:var(--pri);background:#eff6ff;color:var(--pri);font-weight:600}
.po-ic{font-size:16px}
.wx-divider{display:flex;align-items:center;margin:20px 0 14px;color:var(--mut);font-size:12px}
.wx-divider::before,.wx-divider::after{content:'';flex:1;height:1px;background:#e2e8f0}
.wx-divider span{padding:0 14px}
.wx-login{background:linear-gradient(135deg,#07c160,#06ad56);color:#fff;border:none;display:flex;align-items:center;justify-content:center;gap:8px;font-weight:600}
.wx-login:hover{opacity:.92}
.wx-ico{font-size:18px}

/* 转化/团队 */
.tip{background:#eff6ff;color:var(--pri);font-size:12.5px;padding:12px 16px;margin:12px 14px;border-radius:12px;line-height:1.6}
.t-num{font-size:40px;font-weight:800;color:var(--pri)}
.t-lbl{font-size:13px;color:var(--mut);margin-top:6px}
.ok-txt{color:var(--ok);font-weight:700}

/* 弹窗 */
.modal-mask{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:100;padding:24px}
.modal{width:100%;max-width:320px;background:#fff;border-radius:var(--radius);padding:20px;animation:pop .18s ease;box-shadow:var(--shadow-lg)}
@keyframes pop{from{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}
.modal-title{font-size:16px;font-weight:600;text-align:center;color:var(--txt)}
.modal-body{font-size:13.5px;color:var(--mut);line-height:1.7;margin-top:12px;white-space:pre-line;max-height:56vh;overflow-y:auto}
.mb-sub{text-align:center;color:var(--pri);font-weight:600;margin-bottom:10px}
.modal-foot{display:flex;gap:10px;margin-top:18px}
.modal-foot .btn{flex:1}

/* toast */
.toast{position:fixed;top:14%;left:50%;transform:translate(-50%,-10px);background:rgba(26,32,44,.92);color:#fff;padding:9px 18px;border-radius:8px;font-size:13px;z-index:200;opacity:0;transition:.2s;pointer-events:none;max-width:80%;text-align:center;box-shadow:var(--shadow-md)}
.toast.show{opacity:1;transform:translate(-50%,0)}
.toast.ok{background:rgba(14,159,110,.95)}

/* 客服 */
.float-kf{position:fixed;right:14px;bottom:80px;width:48px;height:48px;border-radius:50%;background:var(--pri);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:var(--shadow-md);z-index:50}
.float-kf .icon{width:20px;height:20px}
.float-kf span{font-size:9px;margin-top:1px}
.support-hero{background:linear-gradient(160deg,#1a365d 0%,#2b6cb0 100%);color:#fff;padding:24px 20px 28px;text-align:center}
.sh-title{font-size:18px;font-weight:600}
.sh-sub{font-size:12px;opacity:.8;margin-top:6px}
.sh-actions{display:flex;gap:10px;margin-top:18px}
.sh-btn{flex:1;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);border-radius:var(--radius-sm);padding:12px 8px;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer}
.sh-ic{width:32px;height:32px;border-radius:8px;background:rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center}
.sh-ic .icon{width:18px;height:18px}
.sh-btn b{font-size:14px}
.sh-t{font-size:11px;opacity:.8}
.faq-item{padding:13px 2px;border-bottom:1px solid #f1f5f9}
.faq-q{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:600;cursor:pointer}
.faq-ar{color:var(--mut2);transition:.2s}
.faq-item.open .faq-ar{transform:rotate(90deg)}
.faq-a{font-size:12.5px;color:#475569;line-height:1.8;margin-top:8px;padding:10px 12px;background:#f8fafc;border-radius:10px}
.more-link{text-align:center;font-size:12.5px;color:var(--pri);padding:12px 0 4px}
.msg-badge{display:inline-block;min-width:18px;height:18px;line-height:18px;text-align:center;background:var(--bad);color:#fff;font-size:11px;border-radius:9px;margin-left:8px;padding:0 5px}
.o-sub{font-size:12px;color:var(--mut);margin-top:6px;line-height:1.6}

/* 聊天 */
.chat-page{display:flex;flex-direction:column;height:calc(100vh - 96px)}
.chat-log{flex:1;overflow-y:auto;padding:14px 14px 8px}
.chat-msg{margin-bottom:12px;display:flex;flex-direction:column}
.chat-msg .cm-bubble{max-width:78%;padding:10px 13px;border-radius:14px;font-size:14px;line-height:1.6;white-space:pre-wrap;word-break:break-word}
.chat-msg.u{align-items:flex-end}
.chat-msg.u .cm-bubble{background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff;border-bottom-right-radius:4px}
.chat-msg.s{align-items:flex-start}
.chat-msg.s .cm-bubble{background:#f1f5f9;color:#334155;border-bottom-left-radius:4px}
.chat-msg.a{align-items:flex-start}
.chat-msg.a .cm-bubble{background:#dcfce7;color:#166534;border-bottom-left-radius:4px}
.chat-msg .cm-time{font-size:10.5px;color:var(--mut2);margin-top:4px}
.chat-loading{text-align:center;color:var(--mut2);font-size:12px;padding:20px}
.chat-input-bar{display:flex;gap:8px;padding:10px 14px;background:#fff;border-top:1px solid #eef2f7;align-items:flex-end}
.chat-input-bar textarea{flex:1;border:1px solid #e2e8f0;border-radius:12px;padding:9px 12px;font-size:14px;resize:none;line-height:1.5;font-family:inherit}
.chat-input-bar .btn{height:44px;width:74px;flex-shrink:0}
.chat-quick{display:flex;gap:8px;flex-wrap:wrap;padding:8px 14px 12px;background:#fff}
.cq{font-size:12px;color:var(--pri);background:#eff6ff;border:1px solid #dbeafe;padding:5px 12px;border-radius:16px;cursor:pointer}

/* 内容页 */
.doc-page{padding:20px 18px 30px}
.doc-title{font-size:18px;font-weight:800;text-align:center;margin-bottom:18px}
.doc-body p{font-size:13.5px;line-height:1.9;color:#334155;margin-bottom:10px}

/* 收银台 */
.pay-hero{background:linear-gradient(135deg,#1e3a8a,#2563eb);color:#fff;padding:34px 22px;text-align:center}
.ph-label{font-size:13px;opacity:.85}
.ph-amt{font-size:38px;font-weight:800;margin-top:6px;letter-spacing:1px}
.ph-no{font-size:12px;opacity:.75;margin-top:8px}
.pay-channel{display:flex;align-items:center;gap:12px;padding:14px 4px;border-bottom:1px solid #f1f5f9;cursor:pointer}
.pay-channel:last-child{border-bottom:none}
.pc-badge{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#2563eb,#06b6d4);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.pc-main{flex:1;display:flex;flex-direction:column}
.pc-main b{font-size:14.5px}
.pc-sub{font-size:11.5px;color:var(--mut);margin-top:2px}
.pc-radio{width:20px;height:20px;border-radius:50%;border:2px solid #cbd5e1;flex-shrink:0;position:relative}
.pay-channel.on .pc-radio{border-color:var(--pri)}
.pay-channel.on .pc-radio::after{content:'';position:absolute;inset:3px;border-radius:50%;background:var(--pri)}
.pay-channel.on{background:#f8faff}
.pay-done{text-align:center;padding:60px 30px}
.pd-ico{width:72px;height:72px;border-radius:50%;background:#dcfce7;color:var(--ok);display:flex;align-items:center;justify-content:center;margin:0 auto}
.pd-ico .icon{width:38px;height:38px}
.pd-t{font-size:19px;font-weight:800;margin-top:16px}
.pd-s{font-size:12.5px;color:var(--mut);margin:8px 0 26px}

/* 分类页-小类联动 */
.cat-subs-bar{display:flex;gap:8px;flex-wrap:wrap;padding:10px 12px;background:#fff;border-bottom:1px solid #f1f5f9}
.csub{font-size:12.5px;padding:6px 12px;border-radius:20px;background:#f1f5f9;color:#475569;cursor:pointer;font-weight:500}
.csub.on{background:var(--primary);color:#fff;font-weight:700}

/* 交付方信用 */
.credit-row{display:flex;align-items:center;gap:12px;padding:6px 0}
.cr-av{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--primary),#7c3aed);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:800;flex:none}
.cr-main{flex:1;min-width:0}
.cr-name{font-size:15px;font-weight:800;color:var(--ink)}
.cr-stars{font-size:13px;margin-top:3px}
.cr-sub{font-size:12px;color:var(--muted);margin-top:2px}
.stars{color:#f59e0b;letter-spacing:1px}
.credit-promise{display:flex;gap:8px;margin-top:10px;padding-top:10px;border-top:1px dashed #e2e8f0}
.credit-promise span{font-size:11.5px;color:#15803d;background:#f0fdf4;border:1px solid #dcfce7;border-radius:6px;padding:4px 8px}
/* 评价 */
.rate-box{display:flex;flex-direction:column;gap:10px}
.rate-label{font-size:13px;color:#475569;font-weight:600}
.rate-stars{display:flex;gap:4px;font-size:26px;color:#f59e0b}
.rate-stars .rs{cursor:pointer;transition:transform .12s}
.rate-stars .rs:active{transform:scale(1.2)}
.rate-stars .rs.on{color:#f59e0b}
.rate-stars .rs{color:#cbd5e1}
.review-done{font-size:13.5px;color:#334155;padding:6px 0}
.review-list{display:flex;flex-direction:column;gap:10px;margin-top:12px;border-top:1px dashed #e2e8f0;padding-top:12px}
.review-item{background:#f8fafc;border-radius:10px;padding:10px 12px}
.ri-head{display:flex;align-items:center;gap:8px}
.ri-name{font-size:12.5px;font-weight:700;color:#334155}
.ri-head .stars{font-size:12px}
.ri-time{font-size:11px;color:#94a3b8;margin-left:auto}
.ri-content{font-size:12.5px;color:#475569;margin-top:5px;line-height:1.6}
/* 退款 */
.refund-tip{margin:0 14px 8px}
.rt-inner{font-size:12.5px;border-radius:10px;padding:9px 12px;background:#fffbeb;border:1px solid #fde68a;color:#92400e}
.rt-inner.g{background:#f0fdf4;border-color:#bbf7d0;color:#166534}
.rt-inner.r{background:#fef2f2;border-color:#fecaca;color:#991b1b}

/* 我的信用 */
.credit-hero{display:flex;align-items:center;gap:14px;padding:20px 16px;background:linear-gradient(135deg,var(--primary),#7c3aed);color:#fff}
.ch-av{width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:800;flex:none}
.ch-t{font-size:13px;opacity:.85}
.ch-score{font-size:30px;font-weight:900;line-height:1.1}
.ch-score em{font-size:14px;font-weight:500;opacity:.75;font-style:normal}
.ch-rate{display:flex;gap:12px;font-size:12px;margin-top:2px;opacity:.95}
.credit-stats{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border-bottom:1px solid #f1f5f9;padding:14px 6px}
.credit-stats div{text-align:center}
.credit-stats b{display:block;font-size:18px;font-weight:800;color:var(--ink)}
.credit-stats span{font-size:11px;color:var(--muted)}

/* 板块差异化（FE-024/025） */
.cat-banner{padding:22px 20px;color:#fff}
.cb-name{font-size:20px;font-weight:800}
.cb-tag{font-size:13px;opacity:.92;margin-top:6px;line-height:1.6}
.feature-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.feature-item{display:flex;align-items:center;gap:8px;font-size:13px;color:#334155;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:10px 12px}
.feature-item svg{width:18px;height:18px;color:#16a34a;flex-shrink:0}


/* 推广二维码（FE-062） */
.share-mask{position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:120;display:flex;align-items:flex-end;justify-content:center}
.share-sheet{width:100%;max-width:420px;background:#fff;border-radius:20px 20px 0 0;padding:22px 20px 28px;display:flex;flex-direction:column;align-items:center;gap:12px}
.share-title{font-size:17px;font-weight:800;color:#1e293b}
.share-qr{width:210px;height:210px;background:#fff;border:1px solid #e2e8f0;border-radius:14px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.share-code{font-size:14px;color:#334155}
.share-code b{color:#2563eb;font-size:16px}
.share-copy{color:#2563eb;font-size:13px;margin-left:8px;border:1px solid #bfdbfe;padding:2px 10px;border-radius:8px}
.share-tip{font-size:12px;color:#94a3b8;text-align:center;line-height:1.6}
.share-url{font-size:11px;color:#94a3b8;word-break:break-all;text-align:center;max-width:90%}
.share-done{width:100%;margin-top:4px}

/* ===================== 商城（智礼） ===================== */
.mall-top{background:linear-gradient(150deg,#7c2d12 0%,#b45309 45%,#d97706 100%);color:#fff;padding-bottom:14px}
.mt-bar{display:flex;align-items:center;justify-content:space-between;padding:14px 14px 6px;position:relative;z-index:2}
.mt-back{background:rgba(255,255,255,.16);border:none;color:#fff;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center}
.mt-back svg{width:19px;height:19px}
.mt-title{font-size:17px;font-weight:700;letter-spacing:1px}
.mt-cart{background:rgba(255,255,255,.16);border:none;color:#fff;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative}
.mt-cart svg{width:19px;height:19px}
.mt-cart em{position:absolute;top:-3px;right:-3px;background:#e11d48;color:#fff;font-size:10px;font-style:normal;border-radius:9px;min-width:16px;height:16px;line-height:16px;padding:0 4px;text-align:center}
.mt-hero{padding:6px 16px 10px}
.mt-h1{font-size:24px;font-weight:800;letter-spacing:2px}
.mt-h2{font-size:12px;opacity:.88;margin-top:4px;letter-spacing:.5px}
.mt-search{display:flex;gap:8px;padding:0 14px;align-items:center}
.mt-search .input{flex:1;background:rgba(255,255,255,.96);border:none;border-radius:22px;padding:10px 14px;font-size:13px}
.mt-search .icon{color:#b45309;margin-left:12px;position:absolute}
.mt-search .input:focus{outline:none}
.mt-search .btn{border-radius:20px;padding:10px 18px}
.mall-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;padding:12px 12px 92px}
.mall-item{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 3px 14px rgba(124,45,18,.08);cursor:pointer;transition:transform .15s}
.mall-item:active{transform:scale(.97)}
.mi-img{height:150px;background:#faf3e8;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.mi-img img{width:100%;height:100%;object-fit:cover}
.mi-ph{color:#e7cfa8;display:flex;align-items:center;justify-content:center;width:100%;height:100%}
.mi-ph svg{width:46px;height:46px}
.mi-body{padding:9px 10px 11px}
.mi-name{font-size:13.5px;font-weight:600;line-height:1.35;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.mi-mer{font-size:10.5px;color:#a08a6a;margin:3px 0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mi-foot{display:flex;align-items:center;justify-content:space-between}
.mi-price{color:#d97706;font-weight:800;font-size:16px}

.mi-buy{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#b45309,#d97706);color:#fff;display:flex;align-items:center;justify-content:center}
.mi-buy svg{width:15px;height:15px}
.mall-fab{position:fixed;right:18px;bottom:28px;width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,#b45309,#d97706);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 22px rgba(217,119,6,.45);z-index:30}
.mall-fab svg{width:23px;height:23px}
.mall-fab em{position:absolute;top:-3px;right:-3px;background:#e11d48;color:#fff;font-size:10px;font-style:normal;border-radius:9px;min-width:17px;height:17px;line-height:17px;padding:0 4px;text-align:center}
.md-img{height:300px;background:#faf3e8;display:flex;align-items:center;justify-content:center;overflow:hidden}
.md-img img{width:100%;height:100%;object-fit:cover}
.md-ph{color:#e7cfa8;display:flex;align-items:center;justify-content:center;width:100%;height:100%}
.md-ph svg{width:72px;height:72px}
.md-card{margin:12px;border-radius:16px;padding:16px}
.md-name{font-size:19px;font-weight:800;line-height:1.35}
.md-mer{font-size:12px;color:#a08a6a;margin:6px 0 10px}
.md-price{font-size:24px;color:#d97706;font-weight:800}

.md-stock{font-size:12px;color:#94a3b8;font-weight:400;margin-left:8px}
.md-specs{display:flex;align-items:center;gap:8px;margin-top:14px;flex-wrap:wrap}
.md-specs .k{font-size:12px;color:#64748b}
.spec-btn{border:1px solid #f0e0c8;padding:7px 14px;border-radius:10px;font-size:12px;background:#fffbf4;color:#7c2d12}
.md-sec-title{font-size:14px;font-weight:700;margin:4px 0 8px}
.md-text{font-size:13px;color:#475569;line-height:1.8}
.md-bar{position:fixed;left:0;right:0;bottom:0;display:flex;gap:10px;padding:12px 14px calc(12px + env(safe-area-inset-bottom));background:#fff;box-shadow:0 -4px 18px rgba(0,0,0,.07);z-index:20;max-width:520px;margin:0 auto}
.md-bar .btn{flex:1;border-radius:24px}
.md-cart{display:flex;align-items:center;justify-content:center;gap:6px}
.md-cart svg{width:18px;height:18px}
.cart-list{padding:12px 12px 100px}
.cart-item{display:flex;gap:12px;background:#fff;border-radius:16px;padding:12px;margin-bottom:11px;box-shadow:0 2px 10px rgba(124,45,18,.06);position:relative}
.ci-img{width:84px;height:84px;background:#faf3e8;border-radius:12px;overflow:hidden;flex-shrink:0}
.ci-img img{width:100%;height:100%;object-fit:cover}
.ci-info{flex:1;min-width:0;padding-right:34px}
.ci-name{font-size:14px;font-weight:600;line-height:1.3}
.ci-mer{font-size:11px;color:#a08a6a;margin:3px 0 6px}
.ci-row{display:flex;align-items:center;justify-content:space-between}
.ci-price{color:#d97706;font-weight:800;font-size:16px}

.ci-qty{display:flex;align-items:center;gap:8px}
.qty-btn{width:24px;height:24px;border-radius:8px;border:1px solid #ead9bf;background:#fffbf4;color:#7c2d12;font-size:15px;line-height:1}
.qty-num{font-size:14px;min-width:18px;text-align:center}
.ci-del{position:absolute;top:10px;right:10px;border:none;background:none;color:#cbd5e1;font-size:11px}
.cart-bar{position:fixed;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:space-between;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:#fff;box-shadow:0 -4px 18px rgba(0,0,0,.07);z-index:20;max-width:520px;margin:0 auto}
.cb-total{font-size:13px;color:#64748b}
.cb-total b{color:#d97706;font-size:20px;font-weight:800}

.cart-bar .btn{border-radius:24px;padding:11px 26px}
.mo-tabs{display:flex;gap:8px;padding:12px 12px 4px;overflow-x:auto}
.mo-tab{padding:7px 18px;border-radius:20px;background:#f1f5f9;color:#64748b;font-size:13px;white-space:nowrap}
.mo-tab.on{background:linear-gradient(135deg,#b45309,#d97706);color:#fff}
.mo-list{padding:8px 12px 90px}
.mo-card{background:#fff;border-radius:16px;padding:14px;margin-bottom:11px;box-shadow:0 2px 10px rgba(124,45,18,.06)}
.mo-top{display:flex;justify-content:space-between;align-items:center}
.mo-name{font-size:14px;font-weight:600}
.mo-st{font-size:11px;padding:3px 10px;border-radius:12px}
.mo-no{font-size:12px;color:#94a3b8;margin-top:6px}
.mo-code{font-size:13px;margin-top:6px;background:#fffbf4;border:1px dashed #e7cf9f;border-radius:10px;padding:7px 10px;color:#7c2d12}
.mo-code b{letter-spacing:2px;font-size:15px;color:#b45309}
.mo-time{font-size:11px;color:#cbd5e1;margin-top:6px}
.mo-acts{display:flex;gap:10px;margin-top:10px;justify-content:flex-end}

/* ============ 商企智脑（zn-*） ============ */
.zn-hero{background:linear-gradient(135deg,#4f46e5 0%,#7c3aed 45%,#06b6d4 100%);padding:22px 16px 20px;color:#fff}
.zn-hero.sm{padding:18px 16px 16px}
.zn-hero-badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.25);border-radius:20px;padding:4px 10px;margin-bottom:10px}
.zn-hero-badge .icon{width:13px;height:13px}
.zn-hero-title{font-size:18px;font-weight:700;line-height:1.4}
.zn-hero-sub{font-size:12px;opacity:.85;margin-top:5px}
.zn-hero-plan{margin-top:14px;display:inline-flex;align-items:center;gap:6px;font-size:12px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);border-radius:10px;padding:7px 12px}
.zn-hero-plan .icon{width:14px;height:14px}
.zn-plan-more{margin-left:8px;font-weight:600;text-decoration:underline}
.zn-sec{margin:14px 14px 0}
.zn-sec-head{display:flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:700;color:#0f172a;margin-bottom:10px}
.zn-sec-more{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:500;color:#4f46e5}
.zn-sec-more .icon{width:13px;height:13px}
.zn-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:12px;margin-bottom:10px;box-shadow:0 1px 3px rgba(15,23,42,.04)}
.zn-card-top{display:flex;align-items:center;gap:10px}
.zn-avatar{width:42px;height:42px;border-radius:12px;color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;flex:none}
.zn-avatar.sm{width:34px;height:34px;font-size:14px;border-radius:10px}
.zn-card-info{flex:1;min-width:0}
.zn-card-name{font-size:14px;font-weight:600;color:#0f172a}
.zn-card-desc{font-size:12px;color:#64748b;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zn-state{font-size:11px;padding:3px 9px;border-radius:20px;background:#f1f5f9;color:#64748b;flex:none}
.zn-state.on{background:#ecfdf5;color:#059669}
.zn-card-actions{display:flex;gap:10px;margin-top:10px}
.zn-card-actions button{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 0;border-radius:10px;border:1px solid #e2e8f0;background:#f8fafc;color:#334155;font-size:12px;font-weight:600}
.zn-card-actions button .icon{width:14px;height:14px}
.zn-card-actions button:first-child{background:linear-gradient(135deg,#4f46e5,#06b6d4);color:#fff;border:none}
.zn-empty{background:#fff;border:1px dashed #cbd5e1;border-radius:12px;padding:16px;text-align:center;font-size:12px;color:#94a3b8}
.zn-kb-row{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:11px 12px;margin-bottom:8px}
.zn-kb-ic{color:#4f46e5;display:flex}
.zn-kb-ic .icon{width:18px;height:18px}
.zn-kb-name{flex:1;font-size:13px;font-weight:600;color:#0f172a}
.zn-kb-cnt{font-size:11px;color:#94a3b8}
.zn-kb-ar{color:#cbd5e1;font-size:16px}
.zn-feat{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.zn-feat-item{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:12px 6px;text-align:center}
.zn-feat-item .icon{width:20px;height:20px;color:#4f46e5}
.zn-feat-t{font-size:12px;font-weight:600;color:#0f172a;margin-top:7px}
.zn-feat-d{font-size:10px;color:#94a3b8;margin-top:3px;line-height:1.4}
.zn-form{background:#f8fafc;min-height:100vh;padding:14px}
.zn-form-tip{font-size:13px;color:#475569;margin-bottom:12px;padding:10px 12px;background:linear-gradient(135deg,#eef2ff,#ecfeff);border-radius:10px}
.zn-fg{margin-bottom:14px}
.zn-fg label{display:block;font-size:12px;color:#475569;margin-bottom:6px;font-weight:600}
.zn-fg input,.zn-fg textarea,.zn-fg select{width:100%;box-sizing:border-box;border:1px solid #e2e8f0;border-radius:10px;padding:10px 12px;font-size:14px;background:#fff;outline:none}
.zn-fg input:focus,.zn-fg textarea:focus{border-color:#4f46e5}
.zn-radio{display:flex;flex-direction:column;gap:8px}
.zn-radio label{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:400;color:#334155}
.zn-btn{width:100%;padding:12px 0;border:none;border-radius:12px;background:linear-gradient(135deg,#4f46e5,#06b6d4);color:#fff;font-size:15px;font-weight:700}
.zn-chat{display:flex;flex-direction:column;height:calc(100vh - 52px);background:#f8fafc}
.zn-chat-head{display:flex;align-items:center;gap:10px;padding:12px 14px;background:#fff;border-bottom:1px solid #e2e8f0}
.zn-chat-name{font-size:14px;font-weight:700;color:#0f172a}
.zn-chat-status{font-size:11px;color:#94a3b8;margin-top:2px}
.zn-chat-body{flex:1;overflow-y:auto;padding:14px}
.zn-chat-empty{text-align:center;color:#94a3b8;font-size:12px;margin-top:60px}
.zn-bubble{display:flex;margin-bottom:12px}
.zn-bubble.me{justify-content:flex-end}
.zn-bubble-in{max-width:78%;padding:10px 13px;border-radius:14px;font-size:14px;line-height:1.6;color:#0f172a;background:#fff;border:1px solid #e2e8f0;word-break:break-word}
.zn-bubble.me .zn-bubble-in{background:linear-gradient(135deg,#4f46e5,#06b6d4);color:#fff;border:none}
.zn-typing{color:#94a3b8;font-size:13px}
.zn-chat-input{display:flex;gap:8px;padding:10px 12px;background:#fff;border-top:1px solid #e2e8f0}
.zn-chat-input input{flex:1;border:1px solid #e2e8f0;border-radius:20px;padding:9px 14px;font-size:14px;outline:none}
.zn-chat-input button{display:flex;align-items:center;gap:4px;border:none;border-radius:20px;padding:0 16px;background:linear-gradient(135deg,#4f46e5,#06b6d4);color:#fff;font-size:13px;font-weight:600}
.zn-chat-input button .icon{width:14px;height:14px}
.zn-kb-entry{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:11px 12px;margin-bottom:8px}
.zn-kb-q{font-size:13px;font-weight:600;color:#0f172a}
.zn-kb-a{font-size:12px;color:#64748b;margin-top:4px;line-height:1.5}
.zn-kb-eact{display:flex;align-items:center;justify-content:space-between;margin-top:8px}
.zn-kb-hit{font-size:11px;color:#94a3b8}
.zn-kb-eact button{border:none;background:#fef2f2;color:#dc2626;font-size:11px;border-radius:8px;padding:4px 10px}
.zn-kb-list{margin-top:16px}
.zn-plan-grid{display:flex;flex-direction:column;gap:12px;padding:16px 14px}
.zn-plan{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:16px}
.zn-plan.cur{border:2px solid #4f46e5;background:linear-gradient(135deg,#eef2ff,#ecfeff)}
.zn-plan-name{font-size:15px;font-weight:700;color:#0f172a}
.zn-plan-price{font-size:26px;font-weight:800;color:#4f46e5;margin-top:8px}
.zn-plan-u{font-size:12px;font-weight:400;color:#94a3b8;margin-left:4px}
.zn-plan-desc{font-size:12px;color:#64748b;margin-top:6px}
.zn-plan-btn{margin-top:12px;width:100%;padding:10px 0;border:none;border-radius:10px;background:linear-gradient(135deg,#4f46e5,#06b6d4);color:#fff;font-size:14px;font-weight:600}
.zn-plan-state{margin-top:12px;text-align:center;font-size:12px;color:#4f46e5;font-weight:600}

/* ============ 商家入驻（ma-*） ============ */
.mt-apply{margin:10px 16px 2px;display:flex;align-items:center;gap:10px;background:#fff7ed;border:1px dashed #f59e0b;border-radius:12px;padding:10px 12px}
.mt-apply>span{color:#f59e0b;display:flex}
.mt-apply>span .icon{width:20px;height:20px}
.mt-apply-t{flex:1}
.mt-apply-t b{font-size:13px;color:#92400e}
.mt-apply-t i{display:block;font-style:normal;font-size:11px;color:#b45309;margin-top:2px}
.mt-apply em{font-style:normal;font-size:12px;color:#f59e0b;font-weight:600}
.ma-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:16px}
.ma-row{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px dashed #eef2f7;font-size:13px}
.ma-row span{color:#94a3b8}
.ma-row b{color:#0f172a}
.ma-reject{margin-top:12px;background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;font-size:12px;border-radius:10px;padding:10px 12px}
.ma-note{margin-top:12px;font-size:11px;color:#94a3b8;text-align:center;line-height:1.6}

/* 商家核销 */
.mv-wrap{display:flex;flex-direction:column;align-items:center;padding:36px 24px;gap:14px}
.mv-icon{width:64px;height:64px;border-radius:20px;background:linear-gradient(135deg,#0ea5e9,#2563eb);display:flex;align-items:center;justify-content:center;color:#fff}
.mv-icon svg{width:34px;height:34px}
.mv-tip{font-size:13px;color:#64748b;text-align:center;line-height:1.6}
.mv-input{width:100%;height:50px;border:1px solid #e2e8f0;border-radius:12px;text-align:center;font-size:20px;letter-spacing:6px;outline:none;background:#fff;color:#0f172a}
.mv-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.mv-result-wrap{width:100%}
.mv-ok{margin-top:14px;width:100%;background:#f0fdf4;border:1px solid #bbf7d0;color:#15803d;border-radius:12px;padding:16px;font-size:13px;line-height:1.8;text-align:center}
.mv-err{margin-top:14px;width:100%;background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;border-radius:12px;padding:14px;font-size:13px;text-align:center}

/* 满意度评价卡片（FE-166） */
.rate-card{margin:12px;padding:16px;background:#fff;border:1px solid #e2e8f0;border-radius:14px}
.rc-title{font-size:14px;font-weight:600;color:#0f172a;margin-bottom:12px;text-align:center}
.rc-row{display:flex;gap:12px;margin-bottom:12px}
.rc-btn{flex:1;height:40px;border-radius:10px;border:1px solid #e2e8f0;background:#f8fafc;font-size:14px;color:#334155}
.rc-btn.on.ok{background:#dcfce7;border-color:#86efac;color:#15803d}
.rc-btn.on.no{background:#fee2e2;border-color:#fca5a5;color:#b91c1c}
.rc-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.rc-tag{padding:6px 12px;border-radius:8px;background:#f1f5f9;font-size:12px;color:#475569;border:1px solid #e2e8f0}
.rc-tag.on{background:#dbeafe;border-color:#93c5fd;color:#1d4ed8}
.rc-note{width:100%;box-sizing:border-box;min-height:52px;border:1px solid #e2e8f0;border-radius:10px;padding:10px;font-size:13px;margin-bottom:12px;resize:none;font-family:inherit}
.rc-submit{width:100%}
.rc-thanks{padding:20px;text-align:center;font-size:14px;color:#16a34a}
/* 群聊 */
.gc-info{padding:10px 14px;background:#eff6ff;color:#1d4ed8;font-size:12px;border-bottom:1px solid #dbeafe}

/* ========== 全局视觉质感升级（渐变卡片 / 立体按钮 / 彩色图标底座） ========== */
:root{
  --grad2:linear-gradient(135deg,#3b82f6,#06b6d4);
  --grad3:linear-gradient(135deg,#8b5cf6,#ec4899);
  --grad4:linear-gradient(135deg,#f59e0b,#ef4444);
  --card-grad:linear-gradient(180deg,#ffffff,#fbfdff);
}
/* 卡片：渐变高光边 + 立体投影 + 更大圆角 */
.card,.o-card,.menu-group,.wallet-mini,.home-banner,.poster-sheet{
  border:1px solid rgba(37,99,235,.08);
  box-shadow:0 6px 22px rgba(30,64,175,.07), 0 1px 3px rgba(15,23,42,.04);
  background-image:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%);
}
/* 卡片标题带品牌渐变 */
.card-title{color:#1e3a8a;letter-spacing:.3px}
/* 主按钮：品牌渐变 + 光晕 */
.btn.primary{background:var(--grad2);box-shadow:0 6px 18px rgba(37,99,235,.32)}
.btn.big.primary{letter-spacing:2px}
/* 次级按钮：渐变描边 + 微渐变底，替代灰色 ghost */
.btn.ghost{
  background:linear-gradient(180deg,#ffffff,#eef2f9);
  color:#334155;
  border:1px solid #dbe4f0;
  box-shadow:0 2px 6px rgba(15,23,42,.05);
}
.btn-ok{background:var(--grad2);color:#fff;border:none;box-shadow:0 4px 12px rgba(37,99,235,.25)}
.btn-danger{background:linear-gradient(135deg,#f87171,#ef4444);color:#fff;border:none}
/* 列表菜单项：图标渐变圆底 + hover 上浮 */
.menu-cell{border-bottom:1px solid rgba(232,237,244,.7)}
.menu-cell:active{background:linear-gradient(90deg,#eef4ff,#f8fbff)}
.mc-ic{
  width:34px;height:34px;border-radius:11px;color:#fff !important;
  background:linear-gradient(135deg,#3b82f6,#06b6d4);
  display:flex;align-items:center;justify-content:center;margin-right:12px;
  box-shadow:0 3px 8px rgba(37,99,235,.25);
}
.mc-ic{color:#fff !important}
/* 首页分类图标：彩色渐变圆底 */
.hm-item .hm-ic,.hm-ic{
  width:46px;height:46px;border-radius:15px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#3b82f6,#22d3ee);color:#fff;
  box-shadow:0 5px 14px rgba(37,99,235,.28);
}
.hm-item:nth-child(2n) .hm-ic{background:linear-gradient(135deg,#8b5cf6,#ec4899);box-shadow:0 5px 14px rgba(139,92,246,.28)}
.hm-item:nth-child(3n) .hm-ic{background:linear-gradient(135deg,#f59e0b,#ef4444);box-shadow:0 5px 14px rgba(245,158,11,.28)}
.hm-item:nth-child(4n) .hm-ic{background:linear-gradient(135deg,#10b981,#06b6d4);box-shadow:0 5px 14px rgba(16,185,129,.28)}
/* 标签：柔和渐变胶囊 */
.tag{border:none;font-weight:600;padding:3px 10px;border-radius:20px;box-shadow:0 1px 3px rgba(15,23,42,.08)}
.tag-green{background:linear-gradient(135deg,#d1fae5,#a7f3d0);color:#065f46}
.tag-blue{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1d4ed8}
.tag-orange{background:linear-gradient(135deg,#ffedd5,#fed7aa);color:#9a3412}
.tag-red{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#b91c1c}
.tag-purple{background:linear-gradient(135deg,#ede9fe,#ddd6fe);color:#6d28d9}
.tag-gray{background:linear-gradient(135deg,#f1f5f9,#e2e8f0);color:#475569}
/* 输入框：聚焦光晕 */
.input{border-radius:12px;border-color:#e2e8f0;background:#fff;transition:.2s}
.input:focus{border-color:var(--pri);box-shadow:0 0 0 3px rgba(37,99,235,.12);background:#fff}
/* 智律列表项 / 项目卡片（简洁版，去掉左侧竖杠） */
.zl-item,.proj-card,.zl-std{
  border-radius:14px;border:1px solid #eee;
  background:#fff;margin-bottom:10px;padding:14px 16px;
}
/* 去掉左侧渐变竖杠 */
.zl-item:before,.proj-card:before{display:none}
/* 金额/数值 */
.big-num{background:var(--grad2);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:800}
/* 钱包入口 */
.wallet-mini{background:linear-gradient(120deg,#eff6ff,#f0fdfa);border:1px solid rgba(37,99,235,.12)}
.wallet-mini .wm-l{color:#1e40af;font-weight:700}
/* 按钮按下反馈 */
.btn:active{transform:scale(.97)}
.menu-cell:active,.o-card:active{transform:scale(.99)}

/* 收藏（FE-028） */
.dh-fav{position:absolute;top:16px;right:16px;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.92);color:#8a94a6;font-size:22px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(31,45,61,.18);cursor:pointer;z-index:5;transition:.2s}
.dh-fav.on{color:#ff5b6e}
.dh-fav:active{transform:scale(.9)}
.pc-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pc-foot .btn.sm{font-size:12px;padding:4px 10px;margin-left:auto}

/* ===== 智律详情 ===== */
.zl-ch-row{display:flex;gap:8px;margin:10px 0;flex-wrap:wrap}
.zl-ch{flex:1;min-width:70px;text-align:center;padding:8px 6px;border:1px solid var(--line,#e3e6f0);border-radius:10px;font-size:13px;color:#5a6276;background:#fff;cursor:pointer}
.zl-ch.on{border-color:var(--accent,#4f46e5);color:var(--accent,#4f46e5);background:rgba(79,70,229,.06);font-weight:600}
.zl-ms{margin:12px 0;border:1px solid var(--line,#e3e6f0);border-radius:12px;padding:12px;background:#fafbfe}
.zl-ms-head{display:flex;justify-content:space-between;align-items:center;font-weight:600;font-size:14px;margin-bottom:8px}
.zl-ms-bar{height:6px;border-radius:4px;background:#eef0f6;overflow:hidden;margin-bottom:10px}
.zl-ms-bar>div{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--accent,#4f46e5),#06b6d4);transition:width .4s}
.zl-node{border-top:1px dashed #e6e9f2;padding:8px 0}
.zl-node:first-of-type{border-top:none}
.zn-line{display:flex;align-items:flex-start;gap:8px}
.zn-dot{width:8px;height:8px;border-radius:50%;background:#c6cbd8;margin-top:5px;flex:none}
.zn-dot.ok{background:#22c55e}
.zn-dot.warn{background:#f59e0b}
.zn-name{font-size:14px;color:#2b3040}
.zn-ops{display:flex;gap:8px;margin:6px 0 2px 16px}
.zl-alloc{margin-top:8px;border:1px solid #e3e6f0;border-radius:10px;padding:10px;background:#fff}
.zl-alloc-row{display:flex;justify-content:space-between;align-items:center;font-weight:600;font-size:13px}
.zl-rule-row{font-size:13px;color:#5a6276;padding:3px 0}

/* ===== 智脑服务项目卡片 / 付费搭建引导 ===== */
.zn-svc{border:1px solid var(--line,#e3e6f0);border-radius:12px;padding:12px;margin:8px 0;background:#fff;cursor:pointer}
.zn-svc-name{font-weight:600;font-size:15px;color:#2b3040}
.zn-svc-desc{font-size:12px;color:#8a91a5;margin:4px 0}
.zn-svc-foot{font-size:12px;color:var(--accent,#4f46e5);margin-top:4px}
.zn-build-banner{display:flex;align-items:center;gap:8px;margin:0 14px 12px;padding:12px 14px;border-radius:12px;background:linear-gradient(90deg,#4f46e5,#06b6d4);color:#fff;font-size:13px;cursor:pointer}

/* ===== 商城首页增强（轮播 + 分类） ===== */
.mall-banner-wrap{position:relative;margin:10px 12px 0;border-radius:14px}
.mall-banner-slider{position:relative;border-radius:14px;overflow:hidden}
.mbs-slide{display:none;height:118px;border-radius:14px;color:#fff;padding:20px;cursor:pointer;position:relative;align-items:flex-end;overflow:hidden}
.mbs-slide.on{display:flex}
.mbs-slide::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 25%,rgba(0,0,0,.38))}
.mbs-txt{position:relative;z-index:2;font-size:16px;font-weight:700;text-shadow:0 1px 6px rgba(0,0,0,.3)}
.mbs-dots{display:flex;justify-content:center;gap:6px;padding:8px 0 0}
.mbs-dots i{width:6px;height:6px;border-radius:3px;background:#e7d7c3;transition:all .25s}
.mbs-dots i.on{width:16px;background:#f59e0b}
.mall-cats{display:flex;gap:8px;padding:12px 12px 2px;overflow-x:auto;scrollbar-width:none}
.mall-cats::-webkit-scrollbar{display:none}
.mc-t{flex-shrink:0;padding:7px 16px;border-radius:20px;background:#faf3e8;color:#92400e;font-size:13px;cursor:pointer;font-weight:600}
.mc-t.on{background:linear-gradient(135deg,#f59e0b,#ef4444);color:#fff;box-shadow:0 2px 8px rgba(245,158,11,.35)}


/* ===== 全局输入框质感增强 ===== */
.input:focus,textarea:focus,select:focus{
  box-shadow:0 0 0 3px rgba(180,83,9,.10);
  background:#fff;
}
.zn-fg input:focus,.zn-fg textarea:focus,.zn-fg select:focus{
  box-shadow:0 0 0 3px rgba(79,70,229,.10);
}
/* 通用筛选胶囊（若页面使用 .filter-tab） */
.filter-tab{
  display:inline-flex;align-items:center;gap:6px;
  padding:7px 16px;border-radius:999px;
  background:#f1f5f9;color:#64748b;font-size:13px;font-weight:500;
  cursor:pointer;transition:all .18s;border:1px solid transparent;
}
.filter-tab.on{
  background:linear-gradient(135deg,#b45309,#d97706);color:#fff;
  box-shadow:0 3px 10px rgba(180,83,9,.25);
}


/* ============================================================
   全局表单视觉升级（h5 用户端）
   ============================================================ */
body input, body select, body textarea {
  padding: 11px 14px !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 12px !important;
  font-size: 14px !important;
  background: #f8fafc !important;
  color: #0f172a !important;
  outline: none !important;
  transition: border-color .18s, box-shadow .18s, background .18s !important;
  font-family: inherit !important;
  box-sizing: border-box;
}
body input:focus, body select:focus, body textarea:focus {
  border-color: #b45309 !important;
  background: #fff !important;
  box-shadow: 0 0 0 3px rgba(180,83,9,.12) !important;
}
body input::placeholder, body textarea::placeholder {
  color: #94a3b8;
}
body select {
  appearance: none !important;
  -webkit-appearance: none !important;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>") !important;
  background-repeat: no-repeat !important;
  background-position: right 12px center !important;
  padding-right: 34px !important;
  cursor: pointer;
}
body input[type="checkbox"], body input[type="radio"] {
  width: 16px !important;
  height: 16px !important;
  padding: 0 !important;
  border-radius: 4px !important;
  accent-color: #b45309;
  vertical-align: middle;
  margin-right: 6px;
}
body input[type="radio"] { border-radius: 50% !important; }
body label {
  font-size: 13px !important;
  font-weight: 600 !important;
  color: #475569 !important;
  display: block;
  margin-bottom: 6px;
}


/* ===== 详情页右上角操作（收藏+分享） ===== */
.dh-actions{position:absolute;top:14px;right:14px;display:flex;gap:10px;z-index:2}
.dh-actions .dh-fav,.dh-actions .dh-share{
  position:static;width:36px;height:36px;border-radius:50%;
  background:rgba(255,255,255,.25);backdrop-filter:blur(8px);
  display:flex;align-items:center;justify-content:center;
  font-size:18px;color:#fff;cursor:pointer;transition:all .2s;
  border:1px solid rgba(255,255,255,.3);
}
.dh-fav:hover,.dh-share:hover{background:rgba(255,255,255,.4);transform:scale(1.08)}
.dh-fav.on{color:#f43f5e;background:rgba(255,255,255,.9)}
.dh-share{font-size:16px}

/* ========================================
   全局 UI/UX 优化层 v2
   ======================================== */

/* --- 设计令牌升级 --- */
:root{
  --pri:#4f46e5; --pri2:#06b6d4; --deep:#312e81;
  --bg:#f8fafc; --card:#ffffff; --line:#e8ecf4;
  --txt:#0f172a; --mut:#64748b; --mut2:#94a3b8;
  --ok:#10b981; --warn:#f59e0b; --bad:#ef4444;
  --grad:linear-gradient(135deg,#6366f1 0%,#8b5cf6 50%,#06b6d4 100%);
  --grad2:linear-gradient(135deg,#4f46e5,#06b6d4);
  --radius:18px; --radius-sm:12px;
  --shadow:0 4px 20px rgba(79,70,229,.08);
  --shadow-lg:0 8px 30px rgba(79,70,229,.12);
  --shadow-sm:0 2px 8px rgba(15,23,42,.06);
}

/* --- 全局字体平滑 --- */
*{ -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }
body{ letter-spacing:.2px; }

/* --- 卡片升级 --- */
.card{
  background:var(--card);
  border-radius:var(--radius);
  box-shadow:var(--shadow-sm);
  padding:18px;
  margin:12px 14px;
  border:1px solid rgba(232,236,244,.8);
  transition:box-shadow .25s, transform .25s;
}
.card:active{ transform:scale(.99); box-shadow:var(--shadow); }
.card-title{
  font-size:16px; font-weight:700; color:var(--txt);
  display:flex; align-items:center; gap:8px;
  margin-bottom:14px; padding-bottom:12px;
  border-bottom:1px solid var(--line);
}
.card-title::before{
  content:''; width:4px; height:16px; border-radius:2px;
  background:var(--grad2);
}

/* --- 按钮升级 --- */
.btn{
  border:none; border-radius:var(--radius-sm);
  padding:10px 18px; font-size:14px; font-weight:600;
  cursor:pointer; transition:all .2s;
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
}
.btn.primary{
  background:var(--grad2); color:#fff;
  box-shadow:0 4px 14px rgba(79,70,229,.3);
}
.btn.primary:hover{ box-shadow:0 6px 20px rgba(79,70,229,.4); transform:translateY(-1px); }
.btn.primary:active{ transform:translateY(0); box-shadow:0 2px 8px rgba(79,70,229,.3); }
.btn.primary:disabled{ opacity:.5; cursor:not-allowed; transform:none; }
.btn.ghost{
  background:#f1f5f9; color:var(--mut);
}
.btn.ghost:hover{ background:#e2e8f0; color:var(--txt); }
.btn.big{ width:100%; padding:14px; font-size:15px; border-radius:14px; }
.btn.sm{ padding:6px 12px; font-size:12px; border-radius:8px; }

/* --- 输入框升级 --- */
.input{
  width:100%; padding:12px 14px;
  border:1.5px solid var(--line); border-radius:var(--radius-sm);
  font-size:14px; color:var(--txt); background:#fafbfc;
  transition:all .2s; outline:none;
}
.input:focus{
  border-color:var(--pri); background:#fff;
  box-shadow:0 0 0 4px rgba(79,70,229,.1);
}
.input::placeholder{ color:var(--mut2); }

/* --- 表单标签 --- */
.fl{ font-size:13px; font-weight:600; color:#475569; margin-bottom:6px; display:block; }

/* --- 列表项升级 --- */
.list{ margin:0 14px; }
.node{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 0; border-bottom:1px solid var(--line);
}
.node:last-child{ border-bottom:none; }
.node-main{ flex:1; min-width:0; }
.node-name{ font-size:14px; font-weight:600; color:var(--txt); }
.node-sub{ font-size:12px; color:var(--mut); margin-top:3px; }

/* --- 标签升级 --- */
.tag{
  display:inline-flex; align-items:center;
  padding:3px 10px; border-radius:999px;
  font-size:11px; font-weight:600;
}
.tag-earnest{ background:#fef3c7; color:#b45309; }

/* --- 空状态 --- */
.empty{
  text-align:center; padding:50px 20px;
  color:var(--mut2); font-size:14px;
}
.empty::before{
  content:''; display:block; width:64px; height:64px;
  margin:0 auto 16px; border-radius:50%;
  background:linear-gradient(135deg,#f1f5f9,#e2e8f0);
}

/* --- 底部导航升级 --- */
.bottombar{
  background:rgba(255,255,255,.98);
  backdrop-filter:blur(20px);
  box-shadow:0 -4px 24px rgba(15,23,42,.08);
  border-top:1px solid rgba(232,236,244,.8);
}
.tab-item{ transition:all .2s; }
.tab-item.on{ color:var(--pri); }
.tab-item.on .tab-ic{ transform:scale(1.1); }
.tab-item:active{ transform:scale(.95); }

/* --- 顶部栏升级 --- */
.topbar{
  background:var(--grad2);
  box-shadow:0 2px 12px rgba(79,70,229,.2);
}

/* --- 首页英雄区升级 --- */
.home-hero{
  background:var(--grad);
  padding:16px 18px 20px;
  position:relative; overflow:hidden;
}
.home-hero::before{
  content:''; position:absolute; top:-50%; right:-20%;
  width:300px; height:300px; border-radius:50%;
  background:rgba(255,255,255,.08);
}
.hero-search{
  background:rgba(255,255,255,.2);
  backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.25);
}
.hs-btn{
  background:#fff; color:var(--pri);
  font-weight:700; box-shadow:0 2px 8px rgba(0,0,0,.1);
}

/* --- 分类快捷入口 --- */
.cats-strip{
  background:var(--card); border-radius:var(--radius);
  margin:12px 14px; padding:16px;
  box-shadow:var(--shadow-sm);
}
.cs-ic{
  background:linear-gradient(135deg,#eef2ff,#e0e7ff);
  color:var(--pri); border-radius:14px;
  transition:transform .2s;
}
.cs-item:active .cs-ic{ transform:scale(.92); }

/* --- 首页操作卡片 --- */
.home-actions{
  display:flex; gap:10px; margin:12px 14px;
}
.ha-card{
  flex:1; border-radius:var(--radius);
  padding:14px; display:flex; align-items:center; gap:12px;
  box-shadow:var(--shadow); cursor:pointer;
  transition:all .15s; border:1px solid var(--line);
  background:var(--card);
}
.ha-card:active{ transform:scale(.98); box-shadow:var(--shadow-md); }
.ha-publish .ha-ico{ background:#eef2ff; color:var(--pri); }
.ha-merchant .ha-ico{ background:#ecfdf5; color:var(--pri2); }
.ha-ico{
  width:38px; height:38px; border-radius:10px;
  display:flex; align-items:center; justify-content:center;
  font-size:18px; flex-shrink:0;
}
.ha-title{ font-size:14px; font-weight:600; color:var(--txt); }
.ha-sub{ font-size:11px; color:var(--mut2); margin-top:2px; }

/* --- 需求列表 --- */
.demand-list{
  margin:0 14px 12px;
}
.demand-list .dm-card{
  margin-bottom:10px;
}

/* --- 发布横幅 --- */
.publish-banner{
  margin:12px 14px; padding:18px;
  border-radius:var(--radius);
  background:linear-gradient(135deg,#fef3c7,#fde68a);
  display:flex; align-items:center; justify-content:space-between;
  box-shadow:var(--shadow-sm); cursor:pointer;
  transition:transform .2s;
}
.publish-banner:active{ transform:scale(.98); }
.pb-title{ font-size:16px; font-weight:700; color:#92400e; }
.pb-sub{ font-size:12px; color:#b45309; margin-top:4px; }
.pb-btn{
  background:#92400e; color:#fff;
  padding:8px 16px; border-radius:20px;
  font-size:13px; font-weight:600;
}

/* --- 需求卡片 --- */
.dm-card{
  background:var(--card); border-radius:var(--radius);
  padding:14px; margin-bottom:10px;
  box-shadow:var(--shadow); border:1px solid var(--line);
  cursor:pointer; transition:all .15s;
}
.dm-card:active{ transform:scale(.99); }
.dm-top{ display:flex; justify-content:space-between; align-items:flex-start; gap:10px; }
.dm-title2{ font-size:14px; font-weight:600; color:var(--txt); line-height:1.4; }
.tag-earnest{ display:inline-block; background:#ecfdf5; color:var(--ok); font-size:10px; padding:1px 6px; border-radius:4px; margin-left:6px; font-weight:500; }
.dm-budget{ font-size:13px; font-weight:600; color:var(--warn); flex-shrink:0; }
.dm-desc{ font-size:12.5px; color:var(--mut); margin-top:8px; line-height:1.6; }
.dm-foot{ display:flex; gap:12px; margin-top:10px; font-size:11px; color:var(--mut2); }

/* --- 项目卡片（简洁版） --- */
.proj-card{
  background:#fff; border-radius:8px;
  margin:0 14px 10px; padding:14px 16px;
  border:1px solid #eee;
  cursor:pointer;
}
.proj-card:active{ background:#f9f9f9; }
.proj-name{ font-size:15px; font-weight:600; color:#333; }
.proj-sub{ font-size:13px; color:#999; margin-top:6px; line-height:1.5; }
.proj-foot{ display:flex; justify-content:space-between; align-items:center; margin-top:10px; }
.proj-price{ font-size:16px; font-weight:600; color:#e11d48; }
.proj-price small{ font-size:11px; color:#999; margin-left:2px; font-weight:400; }
.proj-cta{ font-size:13px; color:#999; }

/* --- 弹窗升级 --- */
.modal-mask{
  position:fixed; inset:0; z-index:1000;
  background:rgba(15,23,42,.5);
  backdrop-filter:blur(4px);
  display:flex; align-items:center; justify-content:center;
  animation:fadeIn .2s;
}
.modal{
  background:#fff; border-radius:20px;
  width:90%; max-width:420px;
  padding:24px; box-shadow:0 20px 60px rgba(0,0,0,.2);
  animation:slideUp .25s;
}
.modal-title{
  font-size:17px; font-weight:700; margin-bottom:16px;
  display:flex; align-items:center; gap:8px;
}
.modal-title::before{
  content:''; width:4px; height:18px; border-radius:2px; background:var(--grad2);
}
.modal-body{ margin-bottom:18px; }
.modal-actions{ display:flex; gap:10px; }
.modal-actions .btn{ flex:1; }

@keyframes fadeIn{ from{opacity:0} to{opacity:1} }
@keyframes slideUp{ from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:translateY(0)} }

/* --- Toast 升级 --- */
.toast{
  position:fixed; top:50%; left:50%;
  transform:translate(-50%,-50%);
  background:rgba(15,23,42,.9); color:#fff;
  padding:12px 24px; border-radius:12px;
  font-size:14px; z-index:2000;
  backdrop-filter:blur(10px);
  box-shadow:0 8px 30px rgba(0,0,0,.2);
  animation:toastIn .25s;
}
@keyframes toastIn{ from{opacity:0;transform:translate(-50%,-40%)} to{opacity:1;transform:translate(-50%,-50%)} }

/* --- 钱包页面 --- */
.wallet-hero{
  background:var(--grad);
  padding:24px 20px; color:#fff;
  position:relative; overflow:hidden;
}
.wallet-hero::before{
  content:''; position:absolute; top:-30%; right:-10%;
  width:200px; height:200px; border-radius:50%;
  background:rgba(255,255,255,.1);
}
.wh-label{ font-size:13px; opacity:.85; }
.wh-amt{ font-size:32px; font-weight:800; margin:8px 0; letter-spacing:1px; }
.wh-sub{ font-size:12px; opacity:.8; }
.wh-actions{ margin-top:14px; }
.wh-link{
  display:inline-block; padding:6px 14px;
  background:rgba(255,255,255,.2); border-radius:20px;
  font-size:12px; cursor:pointer;
}

/* --- 充值金额选择 --- */
.recharge-amt{
  flex:1; padding:12px 0;
  border:1.5px solid var(--line); border-radius:12px;
  background:#fafbfc; color:var(--mut);
  font-size:14px; font-weight:600;
  cursor:pointer; transition:all .2s;
}
.recharge-amt.on{
  border-color:var(--pri); background:#eef2ff;
  color:var(--pri); box-shadow:0 0 0 3px rgba(79,70,229,.1);
}
.pay-opt{
  flex:1; display:flex; align-items:center; justify-content:center;
  gap:8px; padding:14px;
  border:1.5px solid var(--line); border-radius:12px;
  background:#fafbfc; cursor:pointer; transition:all .2s;
  font-size:14px; font-weight:600; color:var(--mut);
}
.pay-opt.on{
  border-color:var(--pri); background:#eef2ff;
  color:var(--pri); box-shadow:0 0 0 3px rgba(79,70,229,.1);
}

/* --- 搜索面板 --- */
.search-panel{
  position:absolute; top:100%; left:0; right:0;
  background:#fff; border-radius:0 0 16px 16px;
  box-shadow:var(--shadow-lg); padding:16px;
  z-index:100; animation:slideDown .2s;
}
@keyframes slideDown{ from{opacity:0;transform:translateY(-8px)} to{opacity:1;transform:translateY(0)} }
.sp-title{ font-size:13px; font-weight:600; color:var(--mut); margin-bottom:10px; display:flex; justify-content:space-between; }
.sp-clear{ color:var(--pri); cursor:pointer; font-weight:500; }
.sp-tags{ display:flex; flex-wrap:wrap; gap:8px; }
.sp-tag{
  padding:6px 14px; background:#f1f5f9;
  border-radius:20px; font-size:12px;
  color:var(--mut); cursor:pointer; transition:all .2s;
}
.sp-tag:hover{ background:#e2e8f0; }
.sp-tag.hot{ background:#fef2f2; color:#ef4444; }

/* --- 订单状态标签 --- */
.order-status{
  display:inline-flex; align-items:center; gap:4px;
  padding:4px 10px; border-radius:20px;
  font-size:11px; font-weight:600;
}

/* --- 分段控制器 --- */
.seg{
  display:flex; background:#f1f5f9; border-radius:12px;
  padding:4px; margin:0 14px 12px;
}
.seg-item{
  flex:1; text-align:center; padding:8px;
  font-size:13px; font-weight:600; color:var(--mut);
  border-radius:9px; cursor:pointer; transition:all .2s;
}
.seg-item.on{ background:#fff; color:var(--pri); box-shadow:var(--shadow-sm); }

/* --- 安全区域 --- */
@supports(padding:max(0px)){
  .content{ padding-bottom:calc(78px + env(safe-area-inset-bottom)); }
}

/* ===== 分享面板 ===== */
.share-mask{position:fixed;inset:0;background:rgba(15,23,42,.5);z-index:999;display:flex;align-items:flex-end;justify-content:center;opacity:0;transition:opacity .25s}
.share-mask.show{opacity:1}
.share-panel{
  width:100%;max-width:480px;background:#fff;border-radius:20px 20px 0 0;
  padding:24px 20px 28px;transform:translateY(100%);transition:transform .3s cubic-bezier(.32,.72,0,1);
}
.share-mask.show .share-panel{transform:translateY(0)}
.sp-title{font-size:17px;font-weight:700;color:#0f172a;margin-bottom:6px}
.sp-sub{font-size:13px;color:#64748b;margin-bottom:14px}
.sp-url{
  background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;
  padding:10px 14px;font-size:12px;color:#475569;word-break:break-all;
  margin-bottom:18px;line-height:1.5;
}
.sp-actions{display:flex;gap:10px}
.sp-actions .btn{flex:1}

.mt-share{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(255,255,255,.15);cursor:pointer;transition:all .2s;color:#fff}
.mt-share:hover{background:rgba(255,255,255,.3);transform:scale(1.08)}
.mt-share .icon{width:16px;height:16px}

/* 商城评价 */
.md-review-list{margin-top:8px}
.md-review-item{padding:12px 0;border-bottom:1px solid #f0f0f0}
.md-review-item:last-child{border-bottom:none}
.md-r-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.md-r-user{font-size:14px;color:#333;font-weight:500}
.md-r-stars{color:#ff9500;font-size:14px;letter-spacing:2px}
.md-r-content{font-size:13px;color:#555;line-height:1.6;margin-bottom:4px}
.md-r-time{font-size:11px;color:#999}

/* 消息分类 */
.msg-tabs{display:flex;background:#fff;border-bottom:1px solid #f0f0f0;position:sticky;top:0;z-index:10}
.msg-tab{flex:1;text-align:center;padding:12px 0;font-size:14px;color:#666;cursor:pointer;position:relative;transition:all .2s}
.msg-tab.on{color:#1a1a2e;font-weight:600}
.msg-tab.on::after{content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:24px;height:3px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:2px}
.msg-tab em{background:#ff4757;color:#fff;font-size:10px;font-style:normal;border-radius:8px;padding:1px 5px;margin-left:3px;min-width:16px;display:inline-block;text-align:center}

/* 灵工代发记录 */
.lp-hero{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);padding:24px 20px;color:#fff;margin-bottom:12px}
.lp-row{display:flex;justify-content:space-around;margin-bottom:12px}
.lp-item{text-align:center}
.lp-val{font-size:22px;font-weight:700;margin-bottom:4px}
.lp-val.lp-pending{color:#ffd700}
.lp-lbl{font-size:12px;opacity:.85}
.lp-tip{font-size:12px;opacity:.8;background:rgba(255,255,255,.15);padding:8px 12px;border-radius:8px;line-height:1.5}
.wh-actions{margin-top:12px;text-align:right}
.wh-link{font-size:13px;color:rgba(255,255,255,.9);text-decoration:underline;cursor:pointer}
