
:root{
  --teal-900:#063B5F;
  --teal-800:#0A517F;
  --teal-700:#0368AC;
  --teal-600:#1580BE;
  --teal-500:#1E88C9;
  --teal-100:#CFE6F5;
  --teal-50:#E9F4FB;
  --amber:#E39B2E;
  --amber-50:#FDF3E3;
  --red:#D6455A;
  --blue:#0368AC;
  --ink:#10222F;
  --ink-2:#4C5F70;
  --ink-3:#8A9AA8;
  --line:#E7EDF2;
  --bg:#F4F7F9;
  --card:#FFFFFF;
  --shadow:0 2px 10px rgba(16,49,44,.05);
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{
  font-family:var(--font-sans,-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif);
  background:#EDF1EF;color:var(--ink);font-size:14px;line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img,svg{display:block}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}

/* ============ 画布 ============ */
.app{display:flex;min-height:100vh}
.side{
  width:286px;flex:0 0 286px;background:#fff;border-right:1px solid var(--line);
  position:sticky;top:0;height:100vh;overflow:auto;padding:26px 20px 30px;
}
.brand{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.brand .logo{
  width:34px;height:34px;border-radius:11px;background:linear-gradient(140deg,#1E88C9,#0368AC);
  display:flex;align-items:center;justify-content:center;box-shadow:0 6px 14px rgba(18,130,116,.28)
}
.brand h1{font-size:15px;font-weight:700;letter-spacing:.2px}
.side .sub{font-size:11.5px;color:var(--ink-3);margin-bottom:20px;letter-spacing:.3px}
.navgroup{margin-bottom:16px}
.navgroup .gl{
  font-size:10.5px;font-weight:700;color:var(--ink-3);letter-spacing:1.4px;
  text-transform:uppercase;margin-bottom:7px;padding-left:2px
}
.navitem{
  display:flex;align-items:center;gap:8px;width:100%;text-align:left;
  padding:7px 10px;border-radius:8px;font-size:13px;color:var(--ink-2);
  transition:.15s;margin-bottom:2px
}
.navitem:hover{background:var(--teal-50);color:var(--teal-800)}
.navitem.on{background:var(--teal-50);color:var(--teal-800);font-weight:600}
.navitem .n{font-size:10.5px;color:#B7C8D6;font-variant-numeric:tabular-nums;width:16px}
.navitem.on .n{color:var(--teal-500)}
.sidenote{
  margin-top:22px;padding:13px 14px;background:#F7FAFB;border:1px solid var(--line);
  border-radius:11px;font-size:11.5px;color:var(--ink-3);line-height:1.7
}
.sidenote b{color:var(--ink-2);font-weight:600}
.dots{display:flex;gap:5px;margin-top:10px}
.dot{width:11px;height:11px;border-radius:50%}
.stage{
  flex:1;display:flex;align-items:center;justify-content:center;
  padding:30px;overflow:auto;
}
.phone{
  width:390px;height:844px;flex:0 0 auto;background:#fff;border-radius:44px;
  box-shadow:0 0 0 10px #10231F,0 0 0 11px #2C3B38,0 30px 60px rgba(10,63,58,.25);
  display:flex;flex-direction:column;overflow:hidden;position:relative;
}
@media (max-height:960px){ .phone{transform:scale(.86);transform-origin:center center} }
@media (max-height:820px){ .phone{transform:scale(.74)} }

/* ============ 手机内部 ============ */
.statusbar{
  height:46px;flex:0 0 46px;display:flex;align-items:flex-end;justify-content:space-between;
  padding:0 24px 6px;font-size:13px;font-weight:600;letter-spacing:.3px;
  background:#fff;position:relative;z-index:6
}
.statusbar .r{display:flex;align-items:center;gap:5px}
.viewport{flex:1;position:relative;overflow:hidden;background:var(--bg)}
.screen{
  position:absolute;inset:0;display:none;flex-direction:column;background:var(--bg);
}
.screen.active{display:flex;animation:fade .22s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.s-body{flex:1;overflow-y:auto;overflow-x:hidden;padding-bottom:18px}
.s-body::-webkit-scrollbar{width:0}
.has-tab .s-body{padding-bottom:84px}

/* 导航条 */
.s-head{
  height:48px;flex:0 0 48px;display:flex;align-items:center;padding:0 14px;gap:10px;
  background:#fff;border-bottom:1px solid var(--line);position:relative;z-index:5
}
.s-head .back{
  width:30px;height:30px;display:flex;align-items:center;justify-content:center;
  border-radius:9px;margin-left:-4px
}
.s-head .back:active{background:#F0F4F2}
.s-head .title{font-size:15px;font-weight:600}
.s-head .right{margin-left:auto;font-size:12.5px;color:var(--ink-3);display:flex;gap:12px}

/* 通用 */
.wrap{padding:0 16px}
.card{background:var(--card);border-radius:16px;box-shadow:var(--shadow);padding:16px}
.mt12{margin-top:12px}.mt8{margin-top:8px}.mt16{margin-top:16px}.mt20{margin-top:20px}
.muted{color:var(--ink-3);font-size:12px}
.sec-title{display:flex;align-items:center;justify-content:space-between;padding:20px 16px 10px}
.sec-title h3{font-size:15.5px;font-weight:700;letter-spacing:.2px}
.sec-title span{font-size:12px;color:var(--ink-3)}
.btn{
  display:flex;align-items:center;justify-content:center;gap:6px;
  height:46px;border-radius:23px;font-size:15px;font-weight:600;width:100%;
}
.btn-primary{background:linear-gradient(135deg,#1E88C9,#0466A6);color:#fff;box-shadow:0 8px 20px rgba(3,104,172,.26)}
.btn-primary:active{transform:translateY(1px)}
.btn-ghost{background:#fff;color:var(--teal-700);border:1px solid var(--teal-100)}
.btn-soft{background:var(--teal-50);color:var(--teal-800)}
.btn-sm{height:34px;border-radius:17px;font-size:12.5px;padding:0 15px;width:auto;font-weight:600}
.tag{
  display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:6px;
  font-size:11px;font-weight:600;background:var(--teal-50);color:var(--teal-700)
}
.tag.amber{background:var(--amber-50);color:#A66A10}
.tag.gray{background:#F1F4F6;color:var(--ink-3)}
.tag.red{background:#FDECEE;color:#B93B4E}

/* ============ 首页 ============ */
.home-top{
  background:linear-gradient(180deg,#0368AC 0%,#1580BE 46%,#0A78B8 100%);
  padding:6px 16px 74px;color:#fff;position:relative;overflow:hidden
}
.home-top::after{
  content:"";position:absolute;right:-52px;top:-40px;width:190px;height:190px;border-radius:50%;
  background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.16),transparent 68%)
}
.ht-brand{display:flex;align-items:center;gap:8px;font-size:13px;opacity:.94;margin-bottom:20px}
.ht-brand .mk{
  width:24px;height:24px;border-radius:8px;background:rgba(255,255,255,.18);
  display:flex;align-items:center;justify-content:center
}
.ht-brand .loc{margin-left:auto;font-size:11.5px;opacity:.8;display:flex;align-items:center;gap:3px}
.hero h2{font-size:25px;line-height:1.34;font-weight:800;letter-spacing:.4px}
.hero p{font-size:12.5px;opacity:.82;margin-top:9px;line-height:1.6}
.hero .cta{display:flex;gap:10px;margin-top:18px}
.hero .cta .btn-primary{
  background:#fff;color:var(--teal-800);box-shadow:0 10px 22px rgba(0,0,0,.16);
  width:auto;padding:0 20px;height:44px;font-size:14.5px;flex:0 0 auto
}
.hero .cta .ghost{
  height:44px;border-radius:22px;border:1px solid rgba(255,255,255,.42);
  color:#fff;font-size:13.5px;padding:0 16px;display:flex;align-items:center
}
.pull-up{margin-top:-58px;position:relative;z-index:2}
.quick{
  display:grid;grid-template-columns:repeat(4,1fr);gap:4px;
  background:#fff;border-radius:18px;padding:16px 6px;box-shadow:0 8px 24px rgba(16,49,44,.08)
}
.quick button{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:11.5px;color:var(--ink-2)}
.quick .qi{
  width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  background:var(--teal-50);color:var(--teal-700)
}
.quick button:nth-child(2) .qi{background:#FDF3E3;color:#C07E17}
.quick button:nth-child(3) .qi{background:#EDF2FE;color:#3A63C0}
.quick button:nth-child(4) .qi{background:#F7EFF6;color:#9A5A88}

.report-mini{
  margin:14px 16px 0;background:#fff;border-radius:16px;padding:15px 16px;box-shadow:var(--shadow);
  border-left:3px solid var(--teal-500)
}
.rm-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.rm-top b{font-size:14px}
.rm-line{font-size:12.5px;color:var(--ink-2);margin-top:3px}
.rm-line em{font-style:normal;color:var(--red);font-weight:600}

.chips-scroll{display:flex;gap:8px;overflow-x:auto;padding:2px 16px 4px;scrollbar-width:none}
.chips-scroll::-webkit-scrollbar{display:none}
.mini-prod{
  flex:0 0 148px;background:#fff;border-radius:15px;padding:10px;box-shadow:var(--shadow)
}
.mini-prod .art{
  height:96px;border-radius:11px;background:linear-gradient(160deg,#F0F7FA,#E3F0F6);
  display:flex;align-items:center;justify-content:center;margin-bottom:9px
}
.mini-prod .nm{font-size:13px;font-weight:600}
.mini-prod .pr{font-size:12.5px;color:var(--red);font-weight:700;margin-top:3px}
.mini-prod .pr small{font-size:10px;color:var(--ink-3);font-weight:400;margin-left:2px}

.exp-row{display:flex;gap:10px;padding:0 16px}
.exp-card{
  flex:1;background:#fff;border-radius:14px;padding:12px;display:flex;align-items:center;gap:10px;
  box-shadow:var(--shadow)
}
.avatar{
  width:40px;height:40px;border-radius:50%;flex:0 0 40px;display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:700;color:#fff;background:linear-gradient(140deg,#3E93C9,#0368AC)
}
.avatar.a2{background:linear-gradient(140deg,#7C8FD8,#4C5FB0)}
.avatar.a3{background:linear-gradient(140deg,#E0A85E,#C07E17)}
.avatar.a4{background:linear-gradient(140deg,#C98BAE,#9A5A88)}
.avatar.a5{background:linear-gradient(140deg,#63B79B,#2C8E6F)}
.avatar.a6{background:linear-gradient(140deg,#8FA2B3,#5D7286)}
.guarantee{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:0 16px 8px}
.gu{
  background:#fff;border-radius:12px;padding:11px 12px;font-size:11.5px;color:var(--ink-2);
  display:flex;align-items:center;gap:7px;box-shadow:var(--shadow)
}
.gu i{width:6px;height:6px;border-radius:50%;background:var(--teal-500);flex:0 0 6px}

/* ============ Tabbar ============ */
.tabbar{
  height:62px;flex:0 0 62px;background:rgba(255,255,255,.97);border-top:1px solid var(--line);
  display:none;padding:6px 4px 0;backdrop-filter:blur(12px);z-index:8
}
.phone[data-tabbar="on"] .tabbar{display:flex}
.tabbar button{
  flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;
  font-size:10.5px;color:#9AA9B5;padding-top:2px
}
.tabbar button.on{color:var(--teal-700);font-weight:600}
.tabbar svg{width:23px;height:23px}

/* ============ AI 对话 ============ */
.ai-head{
  background:#fff;padding:12px 16px;display:flex;align-items:center;gap:11px;border-bottom:1px solid var(--line)
}
.ai-head .bot{
  width:38px;height:38px;border-radius:13px;background:linear-gradient(140deg,#1E88C9,#0466A6);
  display:flex;align-items:center;justify-content:center;box-shadow:0 5px 12px rgba(3,104,172,.28)
}
.ai-head b{font-size:14.5px}
.ai-head .st{font-size:11px;color:var(--teal-600);display:flex;align-items:center;gap:4px}
.pulse{width:5px;height:5px;border-radius:50%;background:#22A5CF;animation:pl 1.6s infinite}
@keyframes pl{0%,100%{opacity:1}50%{opacity:.25}}

.chat{padding:14px 14px 6px;display:flex;flex-direction:column;gap:12px}
.bubble{
  max-width:83%;padding:11px 13px;border-radius:14px;font-size:13.5px;line-height:1.62;
  background:#fff;box-shadow:var(--shadow);align-self:flex-start;border-top-left-radius:5px
}
.bubble.me{
  align-self:flex-end;background:linear-gradient(135deg,#1E88C9,#046FB4);color:#fff;
  border-top-left-radius:14px;border-top-right-radius:5px
}
.bubble .hl{color:var(--teal-700);font-weight:600}
.reply-chips{display:flex;flex-wrap:wrap;gap:8px;padding:2px 0 2px 2px}
.chip{
  padding:7px 13px;border-radius:16px;background:#fff;border:1px solid var(--teal-100);
  color:var(--teal-800);font-size:12.5px;font-weight:500;box-shadow:0 1px 3px rgba(16,49,44,.04)
}
.chip:active{background:var(--teal-50)}
.chip.done{background:var(--teal-50);color:#9AB1AB;border-color:transparent}

.upload-zone{
  margin:0 14px;background:#fff;border-radius:16px;padding:16px;box-shadow:var(--shadow)
}
.uz-t{font-size:13px;font-weight:600;margin-bottom:11px}
.uz-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.uz-item{
  border:1px dashed #C8DCD7;border-radius:12px;padding:13px 4px;display:flex;flex-direction:column;
  align-items:center;gap:7px;font-size:11.5px;color:var(--ink-2);background:#FAFCFB
}
.uz-item:active{background:var(--teal-50);border-color:var(--teal-500)}
.uz-item svg{color:var(--teal-600)}
.uz-note{font-size:11px;color:var(--ink-3);line-height:1.65;margin-top:12px;display:flex;gap:6px}
.uz-note svg{flex:0 0 13px;margin-top:2px}

/* 解析中 */
.scan-wrap{padding:44px 24px}
.scan-ring{
  width:96px;height:96px;border-radius:50%;margin:0 auto 22px;position:relative;
  background:conic-gradient(from 0deg,#1E88C9,#0368AC,#1E88C9);
  display:flex;align-items:center;justify-content:center;animation:spin 2.4s linear infinite
}
@keyframes spin{to{transform:rotate(360deg)}}
.scan-ring::after{
  content:"";position:absolute;inset:6px;border-radius:50%;background:var(--bg)
}
.scan-ring .ic{position:relative;z-index:2}
.scan-t{text-align:center;font-size:16px;font-weight:700}
.scan-s{text-align:center;font-size:12px;color:var(--ink-3);margin-top:6px}
.steps{margin-top:26px;background:#fff;border-radius:14px;padding:6px 16px;box-shadow:var(--shadow)}
.step{
  display:flex;align-items:center;gap:11px;padding:14px 0;font-size:13px;color:var(--ink-3);
  border-bottom:1px solid #F1F5F4
}
.step:last-child{border-bottom:0}
.step .dot{
  width:19px;height:19px;border-radius:50%;background:#EDF3F7;display:flex;align-items:center;
  justify-content:center;flex:0 0 19px;font-size:10px
}
.step.done{color:var(--ink)}
.step.done .dot{background:var(--teal-500);color:#fff}
.step.now{color:var(--teal-800);font-weight:600}
.step.now .dot{background:var(--teal-100);color:var(--teal-700)}

/* 报告卡 */
.report-card{background:#fff;border-radius:16px;box-shadow:var(--shadow);overflow:hidden;margin:0 14px}
.rc-head{padding:14px 16px 10px;display:flex;align-items:flex-start;justify-content:space-between}
.rc-head h4{font-size:14.5px;font-weight:700}
.rc-head .m{font-size:11px;color:var(--ink-3);margin-top:3px}
.rc-body{padding:0 8px 6px}
.audiogram{width:100%}
.rc-foot{
  display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);
}
.rc-foot div{padding:11px 4px;text-align:center;position:relative}
.rc-foot div+div::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:1px;background:var(--line)}
.rc-foot b{display:block;font-size:14px;font-weight:700}
.rc-foot span{font-size:10.5px;color:var(--ink-3)}
.rc-foot .neg{color:#B93B4E}

/* 推荐 */
.plan-hero{
  margin:0 14px;background:linear-gradient(150deg,#0368AC,#1580BE);border-radius:16px;padding:17px;
  color:#fff;position:relative;overflow:hidden
}
.plan-hero::after{content:"";position:absolute;right:-30px;bottom:-46px;width:140px;height:140px;border-radius:50%;background:rgba(255,255,255,.07)}
.plan-hero .lb{font-size:11px;opacity:.78;letter-spacing:.5px}
.plan-hero h3{font-size:17px;margin-top:6px;line-height:1.5;font-weight:700;position:relative;z-index:1}
.plan-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;position:relative;z-index:1}
.plan-tags span{font-size:11px;padding:4px 9px;border-radius:7px;background:rgba(255,255,255,.16)}

.prod-card{
  margin:0 14px 12px;background:#fff;border-radius:16px;padding:14px;box-shadow:var(--shadow);
  display:flex;gap:13px;position:relative;overflow:hidden
}
.prod-card.top{border:1.5px solid var(--teal-500)}
.prod-card .pa{
  width:88px;flex:0 0 88px;height:96px;border-radius:12px;
  background:linear-gradient(160deg,#F0F7FB,#E2F0F7);display:flex;align-items:center;justify-content:center
}
.prod-card .pi{flex:1;min-width:0}
.prod-card h4{font-size:14.5px;font-weight:700}
.prod-card .desc{font-size:11.5px;color:var(--ink-3);margin-top:4px;line-height:1.5}
.prod-card .price{font-size:16px;color:#B93B4E;font-weight:800;margin-top:7px}
.prod-card .price small{font-size:10.5px;font-weight:400;color:var(--ink-3);margin-left:3px}
.match{
  position:absolute;right:12px;top:12px;text-align:center
}
.match b{font-size:17px;color:var(--teal-700);font-weight:800;letter-spacing:-.5px}
.match b i{font-size:10px;font-style:normal}
.match span{display:block;font-size:9.5px;color:var(--ink-3);letter-spacing:.5px}
.why{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.why span{font-size:10.5px;color:var(--teal-700);background:var(--teal-50);padding:2px 7px;border-radius:5px}
.why span.warn{color:#A66A10;background:var(--amber-50)}
.ribbon{
  position:absolute;left:0;top:0;background:linear-gradient(135deg,#1E88C9,#0466A6);color:#fff;
  font-size:10px;padding:3px 10px;border-bottom-right-radius:10px;letter-spacing:.4px;font-weight:600
}
.disclaimer{
  margin:16px 16px 0;font-size:11px;color:var(--ink-3);line-height:1.7;
  background:#F7FAFB;border-radius:10px;padding:11px 13px;border:1px solid var(--line)
}

/* ============ 线下网点 / 验配师交接 ============ */
.store-hero{background:linear-gradient(160deg,#0368AC,#1580BE);padding:14px 16px 18px;color:#fff;position:relative;overflow:hidden}
.store-hero::after{content:"";position:absolute;right:-46px;top:-56px;width:170px;height:170px;border-radius:50%;background:rgba(255,255,255,.09)}
.store-hero .sh-row{display:flex;align-items:center;justify-content:space-between;position:relative;z-index:1}
.store-hero .sh-row b{font-size:19px;font-weight:800;letter-spacing:.3px}
.store-hero .sh-city{font-size:11.5px;background:rgba(255,255,255,.16);border-radius:11px;padding:4px 10px;display:flex;align-items:center;gap:4px}
.store-hero .sh-sub{font-size:11.5px;opacity:.86;margin-top:7px;position:relative;z-index:1;line-height:1.5}
.store-hero .sh-near{display:flex;align-items:center;gap:6px;margin-top:12px;background:rgba(255,255,255,.15);border-radius:10px;padding:8px 11px;font-size:11.5px;position:relative;z-index:1}
.store-card{background:#fff;border-radius:16px;box-shadow:var(--shadow);margin:10px 16px 0;padding:14px 14px 13px}
.sc-top{display:flex;align-items:flex-start;gap:10px}
.sc-nm{font-size:14.5px;font-weight:700;display:flex;align-items:center;gap:6px;flex-wrap:wrap;line-height:1.5}
.sc-meta{font-size:11px;color:var(--ink-3);margin-top:4px}
.sc-nav{font-size:11px;color:var(--teal-700);border:1px solid var(--teal-100);border-radius:9px;padding:5px 9px;display:flex;align-items:center;gap:4px;flex:0 0 auto;background:#fff}
.sc-addr{font-size:12.5px;color:var(--ink-2);line-height:1.55;margin-top:9px;display:flex;gap:6px}
.sc-info{display:flex;flex-wrap:wrap;gap:12px;font-size:11px;color:var(--ink-3);margin-top:8px}
.sc-slots{margin-top:10px;background:#F5FAFD;border:1px solid #E3EFF6;border-radius:9px;padding:7px 10px;font-size:11px;color:var(--teal-800);line-height:1.5}
.sc-slots b{color:var(--teal-700);font-size:12.5px}
.sc-slots.full{background:#FBF7EF;border-color:#F1E4CB;color:#8A6A25}
.sc-slots.full b{color:#A66A10}
.sc-act{display:flex;gap:8px;margin-top:12px}
.sc-act .btn{height:38px;border-radius:19px;font-size:13px}

.ho-list{display:flex;flex-direction:column;gap:9px;margin-top:16px}
.ho-item{display:flex;align-items:center;gap:11px;text-align:left;padding:12px 13px;border-radius:13px;border:1px solid var(--line);background:#fff;width:100%}
.ho-item.primary{background:linear-gradient(135deg,#EAF4FC,#F7FCFE);border-color:#CFE6F5}
.ho-ic{width:34px;height:34px;border-radius:11px;display:flex;align-items:center;justify-content:center;flex:0 0 34px;background:var(--teal-50);color:var(--teal-700)}
.ho-item.primary .ho-ic{background:linear-gradient(135deg,#1E88C9,#0466A6);color:#fff}
.ho-tx{flex:1;min-width:0}
.ho-item b{font-size:13.5px;display:flex;align-items:center;gap:6px}
.ho-item b .rec{font-size:9px;font-weight:700;color:#fff;background:#22A5CF;border-radius:4px;padding:1px 5px;letter-spacing:.3px}
.ho-tx>span{display:block;font-size:11px;color:var(--ink-3);margin-top:3px;line-height:1.5}
.ho-foot{font-size:10.5px;color:var(--ink-3);text-align:center;margin-top:14px;line-height:1.6}

.bm-label{font-size:12px;font-weight:600;color:var(--ink-2);margin:14px 0 7px;display:flex;align-items:center;gap:6px}
.bm-label span{font-weight:400;font-size:10.5px;color:var(--ink-3)}
.bm-chips{display:flex;flex-wrap:wrap;gap:7px}
.bm-chip{font-size:12px;padding:7px 11px;border-radius:9px;border:1px solid var(--line);background:#fff;color:var(--ink-2)}
.bm-chip.on{border-color:var(--teal-700);background:var(--teal-50);color:var(--teal-800);font-weight:600}
.bm-input{width:100%;height:44px;border-radius:11px;border:1px solid var(--line);background:#FAFCFD;padding:0 12px;font-size:14px;color:var(--ink);font-family:inherit}
.bm-tip{font-size:10.5px;color:var(--ink-3);line-height:1.6;margin-top:10px}
.bm-close{width:28px;height:28px;border-radius:50%;background:#F2F6F9;display:flex;align-items:center;justify-content:center;flex:0 0 28px;color:var(--ink-3)}
.bm-err{display:none;font-size:11px;color:#B93B4E;margin-top:8px}
.book-ok{width:48px;height:48px;border-radius:50%;background:var(--teal-50);display:flex;align-items:center;justify-content:center;margin:0 auto 10px}
.bk-row{display:flex;justify-content:space-between;gap:12px;font-size:12.5px;padding:9px 1px;border-bottom:1px dashed var(--line)}
.bk-row span{color:var(--ink-3);flex:0 0 auto}
.bk-row b{font-weight:600;text-align:right;line-height:1.45}

.ai-handoff{margin:12px 16px 0;border-radius:16px;background:linear-gradient(160deg,#F0F8FD,#FBFDFE);border:1px solid #CFE6F5;padding:14px 15px}
.ai-handoff .ah-head{display:flex;align-items:center;gap:8px}
.ai-handoff .ah-av{width:24px;height:24px;border-radius:8px;background:linear-gradient(140deg,#1E88C9,#0466A6);color:#fff;font-size:9.5px;font-weight:700;display:flex;align-items:center;justify-content:center;letter-spacing:.4px;flex:0 0 24px}
.ai-handoff .ah-head b{font-size:13.5px;line-height:1.4}
.ai-handoff .ah-body{font-size:12px;color:var(--ink-2);line-height:1.7;margin-top:8px}
.ai-handoff .ah-act{display:flex;gap:8px;margin-top:12px}
.ai-handoff .ah-act .btn{height:38px;border-radius:19px;font-size:12.5px}
.handoff-bar{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:11px 13px;box-shadow:var(--shadow)}
.handoff-bar .hb-ic{width:30px;height:30px;border-radius:10px;background:var(--teal-50);color:var(--teal-700);display:flex;align-items:center;justify-content:center;flex:0 0 30px}
.handoff-bar .hb-tx{flex:1;min-width:0}
.handoff-bar .hb-tx b{font-size:12.5px;display:block}
.handoff-bar .hb-tx span{font-size:10.5px;color:var(--ink-3);display:block;margin-top:2px}
.tabbar button.ic5{font-size:9.8px}

/* ===== 匹配校验：无报告空态 ===== */
.mc-empty-card{margin:0 14px;background:#fff;border-radius:16px;box-shadow:var(--shadow);padding:20px 16px 17px;text-align:center}
.mc-ic{width:60px;height:60px;border-radius:50%;background:var(--teal-50);display:flex;align-items:center;justify-content:center;margin:0 auto 12px}
.mc-tt{font-size:16px;font-weight:800;letter-spacing:.2px}
.mc-ds{font-size:12.5px;color:var(--ink-2);line-height:1.8;margin-top:8px}
.mc-ds b{color:var(--ink);font-weight:600}
.mc-flow{display:flex;align-items:flex-start;justify-content:center;margin:15px 0 2px}
.mc-flow .n{display:flex;flex-direction:column;align-items:center;gap:6px;width:62px;flex:0 0 62px}
.mc-flow .n i{width:22px;height:22px;border-radius:50%;background:var(--teal-50);color:var(--teal-700);
  font-size:11px;font-style:normal;font-weight:700;display:flex;align-items:center;justify-content:center}
.mc-flow .n span{font-size:10.5px;color:var(--ink-3);white-space:nowrap}
.mc-flow .ln{flex:1;height:1px;background:var(--line);margin-top:11px}
.mc-cap{font-size:11.5px;color:var(--ink-3);text-align:left;margin:14px 0 9px}
.mc-demo{display:flex;align-items:center;gap:10px;background:#F7FAFC;border:1px solid var(--line);
  border-radius:12px;padding:11px 12px;margin-top:11px;text-align:left}
.mc-demo .t{flex:1;min-width:0}
.mc-demo .t b{font-size:12.5px;display:block;font-weight:600}
.mc-demo .t span{font-size:10.5px;color:var(--ink-3);display:block;margin-top:2px}
.up-intent{display:none;margin:10px 14px 0;background:var(--teal-50);border:1px solid var(--teal-100);
  border-radius:12px;padding:10px 12px;align-items:center;gap:9px}
.up-intent.show{display:flex}
.up-intent .t{flex:1;min-width:0;font-size:11.5px;color:var(--teal-800);line-height:1.6}
.up-intent .t b{font-weight:700}
/* 演示视角切换 */
.demobar{margin:0 0 20px;padding-top:14px;border-top:1px solid var(--line)}
.demobar .dl{font-size:9.5px;letter-spacing:1.6px;color:#8A9AA8;font-weight:700;margin-bottom:7px}
.dseg{display:flex;gap:5px;flex-wrap:wrap}
.dseg button{font:inherit;font-size:10.5px;padding:5px 8px;border-radius:7px;background:#F3F7FA;
  color:#4C5F70;border:1px solid transparent;cursor:pointer;transition:.15s}
.dseg button.on{background:#E9F4FB;border-color:#CFE6F5;color:#0A517F;font-weight:600}

/* ADD_SCREENS */


/* ===== 商城 ===== */
.searchbar{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#fff}
.sb-input{
  flex:1;height:36px;background:#F4F7F9;border-radius:18px;display:flex;align-items:center;
  gap:7px;padding:0 13px;font-size:12.5px;color:var(--ink-3)
}
.filter-row{display:flex;gap:7px;overflow-x:auto;padding:4px 14px 10px;background:#fff;border-bottom:1px solid var(--line)}
.filter-row::-webkit-scrollbar{display:none}
.fchip{
  flex:0 0 auto;height:29px;padding:0 13px;border-radius:15px;background:#F4F7F9;
  font-size:12px;color:var(--ink-2);display:flex;align-items:center;gap:4px
}
.fchip.on{background:var(--teal-700);color:#fff;font-weight:600}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px 14px}
.pcard{background:#fff;border-radius:14px;overflow:hidden;box-shadow:var(--shadow);position:relative}
.pcard .pimg{
  height:112px;background:linear-gradient(160deg,#F0F7FB,#E1EFF6);
  display:flex;align-items:center;justify-content:center;position:relative
}
.pcard .pinfo{padding:9px 10px 11px}
.pcard h4{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pcard .pdesc{font-size:10.5px;color:var(--ink-3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pcard .pprice{font-size:14.5px;color:#B93B4E;font-weight:800;margin-top:6px}
.pcard .pprice small{font-size:9.5px;font-weight:400;color:var(--ink-3)}
.badge-match{
  position:absolute;left:8px;top:8px;background:rgba(255,255,255,.94);border-radius:6px;
  padding:2px 7px;font-size:9.5px;font-weight:700;color:var(--teal-700);
  box-shadow:0 1px 4px rgba(0,0,0,.06)
}

/* ===== 商品详情 ===== */
.pd-hero{
  height:250px;background:linear-gradient(170deg,#F3FAFC,#DDEDF4);
  display:flex;align-items:center;justify-content:center;position:relative
}
.pd-price{background:#fff;padding:15px 16px 14px}
.pd-price .top{display:flex;align-items:baseline;gap:8px}
.pd-price .now{font-size:26px;font-weight:800;color:#B93B4E;letter-spacing:-.5px}
.pd-price .now i{font-size:13px;font-style:normal}
.pd-price .was{font-size:12px;color:#B7C8D6;text-decoration:line-through}
.pd-price h2{font-size:17px;font-weight:700;margin-top:6px}
.pd-price .sub{font-size:12px;color:var(--ink-3);margin-top:5px;line-height:1.6}
.spec{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border-radius:12px;overflow:hidden}
.spec div{background:#fff;padding:11px 13px}
.spec span{display:block;font-size:10.5px;color:var(--ink-3);margin-bottom:2px}
.spec b{font-size:12.5px;font-weight:600}
.pdp{position:sticky;bottom:0;display:flex;gap:9px;padding:10px 14px 14px;background:rgba(255,255,255,.97);border-top:1px solid var(--line);backdrop-filter:blur(10px)}
.pdp .ico{width:46px;height:46px;flex:0 0 46px;border-radius:14px;background:#F4F7F9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-size:9px;color:var(--ink-2)}

/* ===== 匹配校验 ===== */
.score-wrap{display:flex;align-items:center;gap:18px;padding:20px 18px}
.ring{position:relative;width:96px;height:96px;flex:0 0 96px}
.ring .val{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.ring .val b{font-size:26px;font-weight:800;letter-spacing:-1px;color:var(--teal-700)}
.ring .val b i{font-size:11px;font-style:normal;font-weight:600}
.ring .val span{font-size:10px;color:var(--ink-3)}
.bullets{padding:0 18px 6px}
.bl{display:flex;gap:9px;padding:9px 0;font-size:12.5px;line-height:1.65;align-items:flex-start;border-bottom:1px solid #F2F6F9}
.bl:last-child{border-bottom:0}
.bl .ic{width:17px;height:17px;border-radius:50%;flex:0 0 17px;display:flex;align-items:center;justify-content:center;margin-top:1px}
.bl.ok .ic{background:var(--teal-100);color:var(--teal-700)}
.bl.warn .ic{background:var(--amber-50);color:#B4770F}

/* ===== 验配师 ===== */
.expert-card{
  background:#fff;border-radius:16px;padding:15px;margin:0 14px 11px;box-shadow:var(--shadow)
}
.ec-top{display:flex;gap:12px}
.ec-top .avatar{width:52px;height:52px;flex:0 0 52px;font-size:17px}
.ec-name{display:flex;align-items:center;gap:6px}
.ec-name b{font-size:15px}
.ec-meta{font-size:11.5px;color:var(--ink-3);margin-top:4px;line-height:1.6}
.ec-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}
.ec-act{display:flex;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid #F2F6F9}
.ec-online{display:flex;align-items:center;gap:5px;font-size:10.5px;margin-top:5px}
#expFilter{gap:6px;padding-left:14px;padding-right:14px}
#expFilter .fchip{padding:0 9px;font-size:10.5px;height:27px}
.ec-dot{position:absolute;right:3px;bottom:3px;width:11px;height:11px;border-radius:50%;border:2px solid #fff}
.ec-intro{font-size:11.5px;color:var(--ink-2);line-height:1.8;margin-top:10px;letter-spacing:.1px}
.ec-fit{margin-top:10px;background:#F6FAFC;border-radius:11px;padding:9px 11px 10px;border:1px solid #EDF4F9}
.ec-fit .h{font-size:10px;color:var(--ink-3);font-weight:700;letter-spacing:.3px;margin-bottom:2px}
.ec-fi{display:flex;gap:6px;font-size:11px;color:var(--ink-2);line-height:1.65;margin-top:5px}
.ec-fi i{width:13px;height:13px;border-radius:50%;background:var(--teal-100);color:var(--teal-700);flex:0 0 13px;display:flex;align-items:center;justify-content:center;font-style:normal;font-size:8px;font-weight:800;margin-top:2px}
.ec-stats{display:flex;margin-top:11px;padding-top:10px;border-top:1px dashed #EAF0F5}
.ec-stats div{flex:1;text-align:center}
.ec-stats div+div{border-left:1px solid #F0F4F8}
.ec-stats b{font-size:13px;display:block;color:var(--ink);letter-spacing:-.2px}
.ec-stats span{font-size:9.5px;color:var(--ink-3);display:block;margin-top:1px}
.ec-tags .lb{font-size:9.5px;color:var(--ink-3);align-self:center;margin-right:1px}
/* 团队概览 */
.exp-hero{margin:11px 14px 0;background:linear-gradient(140deg,#0A517F,#2183B8);border-radius:16px;padding:14px 15px 12px;color:#fff;box-shadow:0 6px 18px rgba(10,81,127,.18);position:relative;overflow:hidden}
.exp-hero::after{content:"";position:absolute;right:-38px;top:-56px;width:150px;height:150px;border-radius:50%;background:rgba(255,255,255,.07)}
.exp-hero .t{font-size:12.5px;font-weight:700;position:relative;z-index:1}
.exp-hero .s{font-size:10.5px;line-height:1.7;opacity:.85;margin-top:5px;position:relative;z-index:1}
.exp-hero .n{display:flex;margin-top:12px;padding-top:11px;border-top:1px solid rgba(255,255,255,.16);position:relative;z-index:1}
.exp-hero .n div{flex:1;text-align:center}
.exp-hero .n b{font-size:14.5px;display:block;letter-spacing:-.2px}
.exp-hero .n span{font-size:9px;opacity:.76;display:block;margin-top:2px}
/* 留言咨询 */
.msg-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px}
.msg-chip{height:28px;padding:0 10px;border-radius:14px;border:1px solid var(--line);font-size:11px;color:var(--ink-2);display:flex;align-items:center;background:#fff}
.msg-chip.on{background:var(--teal-700);border-color:var(--teal-700);color:#fff;font-weight:600}
.msg-ta{width:100%;height:88px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:12.5px;font-family:inherit;resize:none;background:#FAFCFD;line-height:1.7;color:var(--ink);margin-top:10px;box-sizing:border-box}
.msg-ta::placeholder{color:#A9B7C4}
.msg-ok{width:46px;height:46px;border-radius:50%;background:var(--teal-100);color:var(--teal-700);display:flex;align-items:center;justify-content:center;margin:6px auto 13px}
.modal{
  position:absolute;inset:0;background:rgba(8,30,27,.5);display:none;
  align-items:center;justify-content:center;padding:0 26px;z-index:30
}
.modal.on{display:flex}
.modal .box{background:#fff;border-radius:20px;padding:24px 20px 18px;width:100%;text-align:center}
.qr-frame{
  width:150px;height:150px;margin:14px auto;border-radius:12px;border:1px solid var(--line);
  padding:8px;background:#fff;box-shadow:0 4px 14px rgba(16,49,44,.06)
}

/* ===== 我的 ===== */
.me-top{
  background:linear-gradient(160deg,#0368AC,#1580BE);padding:8px 18px 54px;color:#fff;position:relative;overflow:hidden
}
.me-top::after{content:"";position:absolute;right:-40px;top:-60px;width:170px;height:170px;border-radius:50%;background:rgba(255,255,255,.08)}
.me-user{display:flex;align-items:center;gap:13px;position:relative;z-index:1}
.me-user .av{
  width:54px;height:54px;border-radius:50%;background:rgba(255,255,255,.22);
  border:1.5px solid rgba(255,255,255,.45);display:flex;align-items:center;justify-content:center;
  font-size:18px;font-weight:700
}
.me-user b{font-size:17px}
.me-user .id{font-size:11.5px;opacity:.8;margin-top:3px}
.me-stats{display:flex;gap:0;margin-top:16px;position:relative;z-index:1}
.me-stats div{flex:1;text-align:center}
.me-stats b{font-size:16px;font-weight:700}
.me-stats span{display:block;font-size:10.5px;opacity:.78;margin-top:2px}
.me-panel{margin:-40px 14px 0;background:#fff;border-radius:16px;box-shadow:0 6px 20px rgba(16,49,44,.09);padding:4px 0;position:relative;z-index:2}
.cell{display:flex;align-items:center;gap:11px;padding:13px 15px;border-bottom:1px solid #F4F7F9;font-size:13.5px}
.cell:last-child{border-bottom:0}
.cell .ci{width:32px;height:32px;border-radius:10px;background:var(--teal-50);display:flex;align-items:center;justify-content:center;flex:0 0 32px;color:var(--teal-700)}
.cell .arrow{margin-left:auto;color:#CBD8E4}
.cell .badge{background:#FDECEE;color:#B93B4E;font-size:10px;padding:2px 6px;border-radius:5px;font-weight:600}

/* ===== 档案 ===== */
.rep-item{
  background:#fff;border-radius:14px;padding:14px;margin:0 14px 10px;box-shadow:var(--shadow);
  display:flex;gap:12px;align-items:center;position:relative
}
.rep-item .tl{
  width:3px;position:absolute;left:0;top:14px;bottom:14px;border-radius:3px;background:var(--teal-500)
}
.rep-item .ico{
  width:44px;height:52px;border-radius:8px;background:#F3F8FA;border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;flex:0 0 44px
}
.rep-item h5{font-size:13.5px;font-weight:600}
.rep-item .m{font-size:11px;color:var(--ink-3);margin-top:3px}
.cmp-legend{display:flex;gap:14px;justify-content:center;font-size:10.5px;color:var(--ink-3);padding:2px 0 6px}
.cmp-legend i{display:inline-block;width:14px;height:0;border-top:2px solid;margin-right:4px;vertical-align:middle}
.delta{display:flex;gap:8px;padding:0 14px}
.delta div{flex:1;background:#fff;border-radius:12px;padding:11px;text-align:center;box-shadow:var(--shadow)}
.delta b{display:block;font-size:16px;font-weight:700;color:#B93B4E}
.delta span{font-size:10px;color:var(--ink-3)}

/* ===== 响应式 ===== */
@media (max-width:1120px){
  .side{width:236px;flex:0 0 236px;padding:22px 14px 26px}
  .stage{padding:16px}
}
@media (max-width:900px){
  .app{flex-direction:column}
  .side{width:100%;flex:none;height:auto;position:static;border-right:0;border-bottom:1px solid var(--line)}
  .side .sidenote,.side .sub{display:none}
  .navgroup{display:inline-block;vertical-align:top;margin:0 12px 6px 0}
  .navgroup .gl{margin-bottom:3px;font-size:9.5px}
  .navitem{display:inline-flex;width:auto;margin:0 3px 0 0}
  .navitem .n{display:none}
  .stage{padding:12px;overflow:visible}
}

/* ===== 对话式问诊 ===== */
.chat-input-bar{background:#fff;border-top:1px solid var(--line);padding:8px 12px 12px}
.sug-row{display:flex;gap:7px;overflow-x:auto;padding-bottom:8px;scrollbar-width:none}
.sug-row::-webkit-scrollbar{display:none}
.sug{flex:0 0 auto;font-size:12px;color:var(--teal-800);background:var(--teal-50);padding:6px 11px;border-radius:14px;font-weight:500}
.ci-row{display:flex;align-items:center;gap:8px}
.ci-row input{
  flex:1;height:40px;border:1px solid var(--line);border-radius:20px;padding:0 15px;
  font:inherit;font-size:13.5px;outline:none;background:#F6F9FB;color:var(--ink);min-width:0
}
.ci-row input:focus{border-color:var(--teal-100);background:#fff}
.ci-row .mic,.ci-row .send{
  width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:0 0 40px
}
.ci-row .mic{background:#F1F6F9;color:var(--teal-700)}
.ci-row .send{background:linear-gradient(135deg,#1E88C9,#046FB4);color:#fff;box-shadow:0 4px 10px rgba(3,104,172,.3)}
.typing{display:flex;gap:4px;padding:14px 16px;background:#fff;border-radius:14px;border-top-left-radius:5px;box-shadow:var(--shadow);align-self:flex-start;width:fit-content}
.typing i{width:6px;height:6px;border-radius:50%;background:#B7C8D6;animation:tp 1.2s infinite}
.typing i:nth-child(2){animation-delay:.18s}
.typing i:nth-child(3){animation-delay:.36s}
@keyframes tp{0%,100%{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}
.voice-layer{position:absolute;inset:0;background:rgba(8,30,27,.55);display:none;align-items:center;justify-content:center;z-index:40}
.voice-layer.on{display:flex}
.voice-layer .vbox{background:#fff;border-radius:20px;padding:26px 30px;text-align:center;width:220px}
.vwave{display:flex;align-items:center;justify-content:center;gap:4px;height:42px;margin:14px 0}
.vwave i{width:4px;border-radius:2px;background:var(--teal-500);animation:vw 1s infinite ease-in-out}
.vwave i:nth-child(1){height:10px}
.vwave i:nth-child(2){height:20px;animation-delay:.12s}
.vwave i:nth-child(3){height:32px;animation-delay:.24s}
.vwave i:nth-child(4){height:22px;animation-delay:.36s}
.vwave i:nth-child(5){height:34px;animation-delay:.48s}
.vwave i:nth-child(6){height:18px;animation-delay:.6s}
.vwave i:nth-child(7){height:10px;animation-delay:.72s}
@keyframes vw{0%,100%{transform:scaleY(.6);opacity:.5}50%{transform:scaleY(1.25);opacity:1}}
.chat-cta{align-self:stretch;margin-top:2px}
.chat-cta .btn{height:44px;font-size:14px}

/* ===== 企微会话 ===== */
.wx-head{background:#fff;padding:11px 14px;display:flex;align-items:center;gap:11px;border-bottom:1px solid var(--line)}
.wx-head .wtag{font-size:9.5px;color:#fff;background:#07C160;border-radius:4px;padding:1px 5px;font-weight:600;vertical-align:2px}
.sysline{align-self:center;font-size:10.5px;color:#9AA9B5;background:#E9EFEA;padding:4px 11px;border-radius:9px;margin:2px 0}
.card-b{padding:0;overflow:hidden;width:88%;max-width:88%}
.cb-head{padding:11px 13px;background:var(--teal-50);display:flex;align-items:center;gap:9px}
.cb-head b{font-size:13px;color:var(--teal-800)}
.cb-head span{font-size:10px;color:var(--teal-600)}
.cb-body{padding:12px 13px;font-size:12.5px;color:var(--ink-2);line-height:1.7}
.cb-act{display:flex;border-top:1px solid var(--line)}
.cb-act button{flex:1;padding:10px 0;font-size:12px;color:var(--teal-700);font-weight:600}
.cb-act button+button{border-left:1px solid var(--line)}
.transfer-tip{display:flex;gap:8px;align-items:flex-start;background:#E9F4FB;border:1px solid #CFE6F5;border-radius:12px;padding:10px 12px;margin:10px 14px 0;font-size:11px;color:var(--teal-800);line-height:1.6}
.transfer-tip svg{flex:0 0 15px;margin-top:1px}

/* ===== 评分明细 ===== */
.dimbar{display:flex;align-items:center;gap:10px;margin-bottom:11px;font-size:12px}
.dimbar .k{width:70px;flex:0 0 70px;color:var(--ink-2)}
.dimbar .t{flex:1;height:7px;border-radius:4px;background:#EDF3F7;overflow:hidden}
.dimbar .t i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,#1E88C9,#0368AC)}
.dimbar b{width:62px;text-align:right;font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums;font-weight:600}
.rankrow{display:flex;align-items:center;gap:11px;background:#fff;border-radius:12px;padding:12px 14px;box-shadow:var(--shadow);border:1.5px solid transparent}
.rankrow.sel{border-color:var(--teal-500)}
.rankrow .n{font-size:12px;font-weight:700;color:#B7C8D6;width:14px;flex:0 0 14px}
.rankrow .rr{flex:1;min-width:0}
.rankrow .rr b{font-size:13px;font-weight:600;display:block}
.rankrow .rr span{font-size:11px;color:var(--ink-3)}
.rankrow em{font-style:normal;font-size:15px;font-weight:800;color:var(--teal-700);font-variant-numeric:tabular-nums}
.rankrow.dim{opacity:.62}
.rankrow.dim em{color:#8A9AA8}
.rankrow.bad em{color:#A66A10}
.rankrow.bad .rr b{color:#4C5F70}


/* ===== 产品库 ===== */
.lib-head{display:flex;align-items:center;gap:10px;padding:8px 14px 0}
.lib-head .t{font-size:19px;font-weight:800;letter-spacing:.3px}
.lib-head .rt{margin-left:auto;display:flex;gap:13px;color:var(--ink-2)}
.lib-ctx{margin:11px 14px 0;padding:11px 12px;border-radius:13px;background:var(--teal-50);border:1px solid #D6E8F5;display:flex;align-items:center;gap:10px}
.lib-ctx .ci{width:32px;height:32px;border-radius:10px;background:#fff;color:var(--teal-700);display:flex;align-items:center;justify-content:center;flex:0 0 32px}
.lib-ctx .ct{font-size:12.5px;font-weight:700}
.lib-ctx .cs{font-size:10.5px;color:var(--ink-2);margin-top:1px}
.lib-ctx .go{margin-left:auto;font-size:11px;font-weight:700;color:var(--teal-700);white-space:nowrap}
.lib-up{margin:11px 14px 0;padding:14px;border-radius:14px;background:linear-gradient(135deg,#0A6FAF,#1E88C9);color:#fff;position:relative;overflow:hidden}
.lib-up::after{content:"";position:absolute;right:-34px;top:-42px;width:124px;height:124px;border-radius:50%;background:rgba(255,255,255,.1)}
.lib-up h4{font-size:15px;font-weight:800}
.lib-up p{font-size:11px;opacity:.9;margin-top:4px;line-height:1.55}
.lib-up .acts{display:flex;gap:8px;margin-top:11px;position:relative;z-index:2}
.lib-up .a1{background:#fff;color:var(--teal-800);height:34px;border-radius:17px;padding:0 14px;font-size:12.5px;font-weight:800;display:flex;align-items:center;gap:5px}
.lib-up .a2{height:34px;border-radius:17px;border:1px solid rgba(255,255,255,.45);color:#fff;padding:0 12px;font-size:11.5px;display:flex;align-items:center}
.lib-sort{display:flex;align-items:center;gap:8px;padding:13px 14px 7px}
.lib-sort .s{display:flex;align-items:center;gap:4px;font-size:13px;font-weight:800;color:var(--teal-800)}
.lib-sort .c{margin-left:auto;font-size:10.5px;color:var(--ink-3)}
.lib-sort .f{display:flex;align-items:center;gap:4px;font-size:11.5px;font-weight:700;color:var(--ink-2);background:#fff;border:1px solid var(--line);height:28px;padding:0 10px;border-radius:14px}
.lib-chips{display:flex;gap:6px;overflow-x:auto;padding:0 14px 10px}
.lib-chips::-webkit-scrollbar{display:none}
.lib-chips .ch{flex:0 0 auto;height:28px;padding:0 11px;border-radius:14px;background:#fff;border:1px solid var(--line);font-size:11.5px;font-weight:600;color:var(--ink-2);display:flex;align-items:center}
.lib-chips .ch.on{background:var(--teal-700);border-color:var(--teal-700);color:#fff}
.lib-guide{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:2px 14px 4px}
.lib-guide .g{background:#fff;border-radius:12px;padding:9px 6px 10px;text-align:center;box-shadow:var(--shadow)}
.lib-guide .g .im{height:48px;display:flex;align-items:center;justify-content:center}
.lib-guide .g b{font-size:11.5px;display:block}
.lib-guide .g span{font-size:9px;color:var(--ink-3);display:block;margin-top:2px;line-height:1.4}
.lib-guide .g em{font-style:normal;font-size:9px;color:var(--teal-600);font-weight:700;display:block;margin-top:3px}
.lib-sub{display:flex;align-items:baseline;justify-content:space-between;padding:14px 14px 8px}
.lib-sub b{font-size:14px}
.lib-sub span{font-size:10.5px;color:var(--ink-3)}

/* 产品列表卡 */
.plcard{display:flex;gap:11px;margin:0 14px 9px;background:#fff;border-radius:14px;padding:11px;box-shadow:var(--shadow);position:relative}
.plcard .thumb{width:74px;height:74px;border-radius:11px;background:linear-gradient(150deg,#F2F7FB,#E6F0F8);flex:0 0 74px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.plcard .info{flex:1;min-width:0}
.plcard .b{font-size:10px;color:var(--ink-3);font-weight:600}
.plcard .nm{font-size:14.5px;font-weight:800;margin-top:1px;line-height:1.3;letter-spacing:-.2px}
.plcard .tl{display:flex;gap:4px;margin-top:5px;flex-wrap:wrap}
.plcard .pr{font-size:13px;font-weight:800;margin-top:6px}
.plcard .pr i{font-size:9.5px;font-style:normal;color:var(--ink-3);font-weight:600;margin-left:2px}
.plcard .rg{position:relative;width:50px;height:50px;flex:0 0 50px;align-self:flex-start;margin-top:2px}
.plcard .rg .v{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:800;font-variant-numeric:tabular-nums}
.plcard .rg .v i{font-size:8px;font-style:normal;margin-left:1px}
.plcard.dim{opacity:.72}
.plcard.dim .nm{color:var(--ink-2)}
.plcard .why{font-size:9.5px;line-height:1.45;color:var(--ink-2);background:#F7FAFC;border-radius:6px;padding:5px 7px;margin-top:5px}

/* ===== 产品详情（决策页） ===== */
.dp-hero{height:196px;position:relative;background:linear-gradient(160deg,#EAF3FA,#DCEBF7 55%,#E8F0F7);overflow:hidden}
.dp-hero .dev{position:absolute;left:38%;top:48%;transform:translate(-50%,-50%);width:196px;height:124px}
.dp-hero .badge{position:absolute;right:12px;bottom:12px;background:#fff;border-radius:11px;padding:6px 9px;display:flex;align-items:center;gap:8px;box-shadow:0 6px 16px rgba(16,34,47,.14)}
.dp-hero .badge .lb{font-size:8.5px;color:var(--ink-3);font-weight:700}
.dp-hero .badge b{font-size:16px;font-weight:800;color:#1E8E6A;line-height:1.1;display:block}
.dp-info{background:#fff;padding:13px 15px 0}
.dp-info .br{font-size:11px;color:var(--ink-3);font-weight:600}
.dp-info h2{font-size:20px;font-weight:800;letter-spacing:-.3px;margin-top:2px}
.dp-info .pr{margin-top:6px;font-size:15px;font-weight:800}
.dp-info .pr span{font-size:9.5px;color:var(--ink-3);font-weight:600;margin-left:5px}
.dp-match{margin:11px 14px 0;background:#fff;border-radius:14px;padding:12px;border:1px solid #E2EFF8;box-shadow:0 4px 14px rgba(3,104,172,.07)}
.dp-match .top{display:flex;gap:11px;align-items:center}
.dp-match .rg{position:relative;width:62px;height:62px;flex:0 0 62px}
.dp-match .rg .v{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}
.dp-match .rg .v b{font-size:19px;font-weight:800;color:#1E8E6A}
.dp-match .rg .v span{font-size:7.5px;color:var(--ink-3);margin-top:2px;font-weight:600}
.dp-match .lv{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:800}
.dp-match .rs{margin-top:4px}
.dp-match .rs div{font-size:10.5px;color:var(--ink-2);line-height:1.5;padding-left:11px;position:relative;margin-top:2px}
.dp-match .rs div::before{content:"";position:absolute;left:0;top:6px;width:4px;height:4px;border-radius:50%;background:var(--teal-500)}
.dp-warn{margin-top:8px;background:var(--amber-50);border-radius:8px;padding:7px 8px;display:flex;gap:5px;font-size:10px;color:#8A5A0B;line-height:1.45}
.dp-pos{margin:9px 14px 0;background:#FBF7EF;border-radius:11px;padding:10px 12px;display:flex;gap:8px;align-items:flex-start}
.dp-pos p{font-size:11.5px;font-weight:700;color:#6B4A11;line-height:1.55}
.dp-pos em{font-style:normal;font-weight:800;color:#8A5A0B}
.dp-tabs{display:flex;gap:18px;margin:13px 14px 0;border-bottom:1px solid var(--line)}
.dp-tabs b{font-size:12.5px;font-weight:700;color:var(--ink-3);padding-bottom:8px;position:relative;cursor:pointer}
.dp-tabs b.on{color:var(--ink);font-weight:800}
.dp-tabs b.on::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2.5px;border-radius:2px;background:var(--teal-700)}
.dp-rows{margin:0 14px;background:#fff;border-radius:0 0 12px 12px;padding:2px 12px 4px}
.dp-rows .r{display:flex;gap:9px;align-items:center;padding:9px 0;border-bottom:1px solid #F3F6F9}
.dp-rows .r:last-child{border-bottom:0}
.dp-rows .ri{width:26px;height:26px;border-radius:8px;background:var(--teal-50);color:var(--teal-700);display:flex;align-items:center;justify-content:center;flex:0 0 26px}
.dp-rows .rl{font-size:10.5px;color:var(--ink-3);font-weight:600}
.dp-rows .rv{font-size:11.5px;font-weight:700;margin-top:1px}
.dp-fit{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:11px 14px 0}
.dp-fit .fx{border-radius:11px;padding:10px}
.dp-fit .yes{background:#E8F6F0}
.dp-fit .no{background:#FCF1F3}
.dp-fit h5{font-size:10.5px;font-weight:800;margin-bottom:5px}
.dp-fit .yes h5{color:#1E8E6A}
.dp-fit .no h5{color:#B93B4E}
.dp-fit p{font-size:10px;line-height:1.6;color:var(--ink-2)}
.dp-video{display:flex;gap:9px;align-items:center;margin:11px 14px 0;background:#fff;border-radius:12px;padding:9px;box-shadow:var(--shadow)}
.dp-video .vt{width:70px;height:44px;border-radius:8px;background:linear-gradient(120deg,#123A55,#2C6E96);position:relative;flex:0 0 70px}
.dp-video .vt .d{position:absolute;right:4px;bottom:4px;background:rgba(0,0,0,.5);color:#fff;font-size:8px;padding:0 4px;border-radius:3px}
.dp-video .vi{flex:1;min-width:0;font-size:11px;font-weight:700;line-height:1.45}
.dp-video .vi span{display:block;font-size:9.5px;color:var(--ink-3);font-weight:600;margin-top:2px}

/* ===== 产品对比 ===== */
.cmp-tip{margin:10px 14px 0;background:var(--amber-50);border-radius:10px;padding:8px 10px;font-size:10.5px;color:#8A5A0B;line-height:1.5}
.cmp-table{margin:10px 14px 0;background:#fff;border-radius:14px;overflow:hidden;box-shadow:var(--shadow)}
.cmp-h{display:grid;grid-template-columns:62px 1fr 1fr 1fr;border-bottom:1px solid var(--line)}
.cmp-h .h{text-align:center;padding:10px 3px}
.cmp-h .h .im{height:42px;display:flex;align-items:center;justify-content:center}
.cmp-h .h .cn{font-size:10px;font-weight:800;line-height:1.25;margin-top:2px}
.cmp-h .h .cm{font-size:10px;font-weight:800;color:var(--teal-700);margin-top:2px}
.cmp-row{display:grid;grid-template-columns:62px 1fr 1fr 1fr;border-bottom:1px solid #F1F5F8}
.cmp-row:last-child{border-bottom:0}
.cmp-row .lab{font-size:10px;color:var(--ink-3);font-weight:700;padding:10px 5px;background:#FAFCFD;display:flex;align-items:center}
.cmp-row .c{font-size:10.5px;font-weight:700;text-align:center;padding:10px 3px;line-height:1.3;display:flex;align-items:center;justify-content:center}
.cmp-row .c.diff{background:#FDF7EC;color:#8A5A0B}
.cmp-row .c.best{background:var(--teal-50);color:var(--teal-800)}
.cmp-row .c.mut{color:var(--ink-3);font-weight:600}
.cmp-concl{margin:11px 14px 0;background:#fff;border-radius:12px;padding:11px 12px;box-shadow:var(--shadow)}
.cmp-concl b{font-size:11.5px}
.cmp-concl p{font-size:10.5px;color:var(--ink-2);line-height:1.65;margin-top:4px}

/* ===== 视频评测 ===== */
.vid-tabs{display:flex;gap:7px;padding:10px 14px 2px;overflow-x:auto}
.vid-tabs::-webkit-scrollbar{display:none}
.vid-tabs .v{flex:0 0 auto;height:29px;padding:0 12px;border-radius:15px;font-size:11.5px;font-weight:700;background:#fff;border:1px solid var(--line);color:var(--ink-2);display:flex;align-items:center}
.vid-tabs .v.on{background:var(--ink);border-color:var(--ink);color:#fff}
.vid-hero{margin:9px 14px 0;height:172px;border-radius:14px;overflow:hidden;position:relative;background:linear-gradient(120deg,#123A55,#1C5B7F 55%,#2A6E96)}
.vid-hero .pl{position:absolute;left:50%;top:47%;transform:translate(-50%,-50%);width:46px;height:46px;border-radius:23px;background:rgba(255,255,255,.95);display:flex;align-items:center;justify-content:center;color:var(--teal-800);box-shadow:0 8px 18px rgba(0,0,0,.2)}
.vid-hero .dur{position:absolute;right:9px;top:9px;background:rgba(15,30,45,.6);color:#fff;font-size:9px;font-weight:700;padding:2px 5px;border-radius:4px}
.vid-hero .cap{position:absolute;left:0;right:0;bottom:0;padding:10px 11px;background:linear-gradient(transparent,rgba(8,22,34,.82))}
.vid-hero .cap b{color:#fff;font-size:12.5px;display:block;line-height:1.4}
.vid-hero .cap span{color:rgba(255,255,255,.72);font-size:9px;display:block;margin-top:2px}
.vid-concl{margin:9px 14px 0;background:#fff;border-radius:12px;padding:11px 12px;box-shadow:var(--shadow)}
.vid-concl .h{display:flex;align-items:center;gap:5px;font-size:10px;font-weight:800;color:var(--teal-700)}
.vid-concl p{font-size:10.5px;color:var(--ink-2);line-height:1.7;margin-top:6px}
.vid-list{margin:10px 14px 0}
.vid-row{display:flex;gap:10px;padding:9px 0;border-bottom:1px solid #EFF3F6}
.vid-row .vt{width:92px;height:56px;border-radius:9px;background:linear-gradient(130deg,#1B4A66,#2A6E96);position:relative;flex:0 0 92px}
.vid-row .vt .d{position:absolute;right:4px;bottom:4px;background:rgba(0,0,0,.5);color:#fff;font-size:8px;padding:0 4px;border-radius:3px}
.vid-row .vi{flex:1;min-width:0}
.vid-row .vi b{font-size:11.5px;line-height:1.45;display:block}
.vid-row .vi .c{font-size:9.5px;color:var(--ink-2);background:#F6F9FB;border-radius:5px;padding:4px 6px;margin-top:4px;line-height:1.5}
.vid-row .vi .c em{font-style:normal;color:var(--teal-700);font-weight:700}

/* ===== 筛选弹层 ===== */
.modal.down{align-items:flex-end;padding:0}
.modal.down .box{border-radius:18px 18px 0 0;padding:14px 16px 10px;text-align:left;max-height:88%;overflow:auto}
.fg{padding:11px 0;border-bottom:1px solid #F1F5F8}
.fg:last-child{border-bottom:0}
.fg .fl{font-size:11.5px;font-weight:800;margin-bottom:8px;display:flex;gap:6px;align-items:center}
.fg .fl em{font-style:normal;font-size:9.5px;font-weight:600;color:var(--ink-3)}
.fgrid6{display:grid;grid-template-columns:repeat(6,1fr);gap:5px}
.fitem{border:1px solid var(--line);border-radius:9px;padding:6px 2px;text-align:center;background:#fff}
.fitem b{font-size:9px;display:block;margin-top:2px;color:var(--ink-2);font-weight:700}
.fitem .fi{display:flex;align-items:center;justify-content:center;height:24px;color:var(--ink-2)}
.fitem.on{border-color:var(--teal-700);background:var(--teal-50)}
.fitem.on b{color:var(--teal-800)}
.fchips{display:flex;flex-wrap:wrap;gap:6px}
.fchips .ch2{height:27px;padding:0 10px;border-radius:14px;border:1px solid var(--line);font-size:10.5px;font-weight:600;color:var(--ink-2);display:flex;align-items:center;background:#fff}
.fchips .ch2.on{background:var(--teal-700);border-color:var(--teal-700);color:#fff}
.fchips .ch2.off{opacity:.4}
.modal.down .mfoot{padding:10px 0 2px}

/* ===== 首页轮播（视频 / 政策 / 新品） ===== */
.hcar{position:relative;margin:0 14px}
.hcar-track{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:1px 0 3px}
.hcar-track::-webkit-scrollbar{display:none}
.hslide{flex:0 0 100%;scroll-snap-align:center;height:148px;border-radius:16px;overflow:hidden;position:relative;box-shadow:0 8px 20px rgba(6,59,95,.16);cursor:pointer}
.hslide .sbg{position:absolute;inset:0}
.hslide .sbg::before{content:"";position:absolute;right:26px;top:-54px;width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,.09)}
.hslide .sbg::after{content:"";position:absolute;right:-36px;bottom:-60px;width:158px;height:158px;border-radius:50%;background:rgba(255,255,255,.10)}
.hslide .tx{position:absolute;left:14px;right:106px;top:13px;color:#fff;z-index:2}
.hslide .kb{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 8px;border-radius:10px;background:rgba(255,255,255,.2);font-size:9.5px;font-weight:700;letter-spacing:.3px}
.hslide .tt{font-size:16px;font-weight:800;line-height:1.4;margin-top:8px;letter-spacing:.1px}
.hslide .ss{font-size:10.5px;opacity:.86;margin-top:6px;line-height:1.5}
.hslide .go{position:absolute;left:14px;bottom:12px;font-size:10.5px;font-weight:700;color:#fff;z-index:2}
.hslide .art{position:absolute;right:6px;bottom:4px;width:98px;height:98px;display:flex;align-items:center;justify-content:center;z-index:1;opacity:.96}
.hslide .art .plinth{width:82px;height:82px;border-radius:50%;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.24);display:flex;align-items:center;justify-content:center}
.hslide .play{position:absolute;right:26px;bottom:38px;width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.93);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 18px rgba(0,0,0,.2);z-index:2}
.hcar-dots{display:flex;align-items:center;justify-content:center;gap:5px;padding:10px 0 0}
.hcar-dots i{width:5px;height:5px;border-radius:3px;background:#CBD8E2;transition:.25s}
.hcar-dots i.on{width:16px;background:var(--teal-700)}

/* ===== 首页 · 验配师团队轮播 ===== */
.hcar.exp .hslide{height:104px;display:flex;align-items:center;gap:12px;padding:0 14px;box-shadow:0 6px 16px rgba(6,59,95,.14)}
.hcar.exp .eav{width:52px;height:52px;border-radius:50%;flex:0 0 52px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:19px;font-weight:800;background:linear-gradient(140deg,#3E93C9,#0368AC);box-shadow:0 4px 12px rgba(0,0,0,.18);position:relative;z-index:2}
.hcar.exp .eav.a2{background:linear-gradient(140deg,#7C8FD8,#4C5FB0)}
.hcar.exp .eav.a3{background:linear-gradient(140deg,#E0A85E,#C07E17)}
.hcar.exp .eav.a4{background:linear-gradient(140deg,#C98BAE,#9A5A88)}
.hcar.exp .eav i{position:absolute;right:-1px;bottom:0;width:11px;height:11px;border-radius:50%;background:#2FBE7E;border:2px solid #fff}
.hcar.exp .eav i.off{background:#C3D2DE}
.hcar.exp .einfo{flex:1;min-width:0;color:#fff;position:relative;z-index:2}
.hcar.exp .enm{font-size:15px;font-weight:800;display:flex;align-items:center;gap:6px}
.hcar.exp .enm em{font-style:normal;font-size:9px;font-weight:700;background:rgba(255,255,255,.22);padding:2px 7px;border-radius:9px}
.hcar.exp .emt{font-size:10px;opacity:.88;margin-top:3px}
.hcar.exp .etg{font-size:9.5px;opacity:.78;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hcar.exp .ego{flex:0 0 auto;color:#fff;font-size:10.5px;font-weight:700;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.3);height:28px;padding:0 11px;border-radius:14px;display:flex;align-items:center;position:relative;z-index:2}

/* ===== 产品库 · 分类导航 ===== */
.lib-navwrap{position:sticky;top:0;z-index:6;background:var(--bg);padding:12px 14px 2px;margin-top:-2px}
.lib-nav{background:#fff;border-radius:14px;box-shadow:var(--shadow)}
.navrow{display:flex;align-items:center;gap:7px;padding:6px 10px}
.navrow+.navrow{border-top:1px solid #F3F7FA}
.navrow .nl{flex:0 0 26px;font-size:10px;font-weight:800;color:var(--ink-3);letter-spacing:1px}
.nc{display:flex;gap:6px;overflow-x:auto;flex:1;padding:1px 0;scrollbar-width:none}
.nc::-webkit-scrollbar{display:none}
.navch{flex:0 0 auto;height:27px;padding:0 9px;border-radius:14px;border:1px solid var(--line);background:#fff;font-size:11.5px;font-weight:600;color:var(--ink-2);display:flex;align-items:center;gap:3px;white-space:nowrap}
.navch em{font-style:normal;font-size:9px;color:var(--ink-3);font-weight:600}
.navch i{font-style:normal;font-size:9px;font-weight:700;color:var(--ink-3)}
.navch.two{flex-direction:column;align-items:center;justify-content:center;height:34px;gap:0;line-height:1.15;padding:0 8px}
.navch.two em{font-size:8px;line-height:1.3;margin-top:1px}
.plcard .rg .v{font-size:14px}
/* 无报告：卡片右侧「测匹配」上传按钮 */
.plcard .rg-up{
  flex:0 0 auto;width:52px;height:56px;border:1.4px dashed #7FB5D6;border-radius:12px;background:var(--teal-50);
  color:var(--teal-800);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  font-size:10px;font-weight:800;cursor:pointer
}
.navch.on{background:var(--teal-700);border-color:var(--teal-700);color:#fff}
.navch.on em,.navch.on i{color:rgba(255,255,255,.78)}

/* 品牌库 */
.brow{display:flex;gap:8px;overflow-x:auto;padding:0 14px 4px;scrollbar-width:none}
.brow::-webkit-scrollbar{display:none}
.bcard{flex:0 0 106px;background:#fff;border-radius:13px;padding:10px;box-shadow:var(--shadow);border:1px solid transparent;cursor:pointer}
.bcard.on{border-color:var(--teal-700);background:var(--teal-50)}
.bcard .bl{width:26px;height:26px;border-radius:8px;background:linear-gradient(135deg,#0A517F,#1E88C9);color:#fff;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center}
.bcard .bl.dom{background:linear-gradient(135deg,#8A5110,#D9973A)}
.bcard b{display:block;font-size:12.5px;margin-top:7px;letter-spacing:-.1px}
.bcard span{display:block;font-size:9.5px;color:var(--ink-3);margin-top:2px}
.bcard em{display:block;font-style:normal;font-size:10px;font-weight:700;color:var(--teal-700);margin-top:6px}

/* 品牌内视图 */
.bhero{margin:12px 14px 0;background:#fff;border-radius:14px;box-shadow:var(--shadow);padding:12px 13px}
.bhero .top{display:flex;align-items:center;gap:10px}
.bhero .lg{width:40px;height:40px;border-radius:11px;background:linear-gradient(135deg,#0A517F,#1E88C9);color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:800;flex:0 0 40px}
.bhero .lg.dom{background:linear-gradient(135deg,#8A5110,#D9973A)}
.bhero .nm{font-size:16px;font-weight:800;letter-spacing:-.2px}
.bhero .nm em{font-style:normal;font-size:10px;color:var(--ink-3);font-weight:600;margin-left:4px;letter-spacing:.4px}
.bhero .mt{font-size:10.5px;color:var(--ink-2);margin-top:2px}
.bhero .exit{margin-left:auto;height:26px;padding:0 10px;border-radius:13px;background:var(--teal-50);color:var(--teal-800);font-size:10.5px;font-weight:700;flex:0 0 auto}
.bhero p{font-size:10.5px;color:var(--ink-2);line-height:1.65;margin-top:9px;padding-top:9px;border-top:1px solid #F3F7FA}

/* 已选条件 */
.lib-active{display:flex;gap:6px;flex-wrap:wrap;padding:2px 14px 4px}
.lib-active:empty{display:none}
.lib-active .ap{display:flex;align-items:center;gap:4px;height:24px;padding:0 9px;border-radius:12px;background:var(--teal-50);color:var(--teal-800);font-size:10.5px;font-weight:700}
.lib-active .rs{height:24px;padding:0 9px;border-radius:12px;border:1px solid var(--line);color:var(--ink-2);font-size:10.5px;display:flex;align-items:center;background:#fff}

/* 列表空态 */
.lib-empty{margin:6px 14px;background:#fff;border-radius:14px;padding:22px 18px;text-align:center;box-shadow:var(--shadow)}
.lib-empty b{font-size:14px}
.lib-empty p{font-size:11px;color:var(--ink-2);line-height:1.6;margin-top:6px}
.lib-empty button{margin-top:12px;border:0;height:32px;padding:0 16px;border-radius:16px;background:var(--teal-50);color:var(--teal-800);font-size:12px;font-weight:700}

/* 排序面 */
.sortopts .so{display:flex;align-items:center;gap:6px;padding:13px 2px;border-bottom:1px solid #F3F7FA;font-size:13px;color:var(--ink-2)}
.sortopts .so:last-child{border-bottom:0}
.sortopts .so em{font-style:normal;font-size:10px;color:var(--ink-3)}
.sortopts .so.on{color:var(--teal-800);font-weight:800}
.sortopts .so.on::after{content:"✓";margin-left:auto;color:var(--teal-700);font-weight:800}
.sortopts .so.off{opacity:.42}

/* ===== 活动 / 政策详情 ===== */
.cp-media{position:relative;height:196px;overflow:hidden}
.cp-media::before{content:"";position:absolute;right:16px;top:-48px;width:134px;height:134px;border-radius:50%;background:rgba(255,255,255,.12)}
.cp-media::after{content:"";position:absolute;left:-42px;bottom:-72px;width:184px;height:184px;border-radius:50%;background:rgba(255,255,255,.08)}
.cp-media .bdg{position:absolute;left:16px;top:64px;color:#fff;z-index:2}
.cp-media .bdg small{font-size:11px;opacity:.86;display:block;letter-spacing:1px}
.cp-media .bdg b{font-size:37px;font-weight:800;display:block;line-height:1.06;letter-spacing:-1px}
.cp-media .bdg span{font-size:11px;opacity:.9;display:block;margin-top:7px}
.cp-media .corner{position:absolute;right:14px;bottom:12px;color:#fff;font-size:9.5px;background:rgba(255,255,255,.2);border-radius:9px;padding:3px 8px;z-index:2}
.cp-media .deco{position:absolute;right:8px;top:24px;width:120px;height:120px;display:flex;align-items:center;justify-content:center;opacity:.9;z-index:1}
.cp-info{background:#fff;padding:14px 15px 13px}
.cp-info .kb{display:inline-flex;height:20px;align-items:center;padding:0 8px;border-radius:10px;background:var(--amber-50);color:#9A6413;font-size:9.5px;font-weight:800}
.cp-info h2{font-size:19px;font-weight:800;line-height:1.4;margin-top:8px;letter-spacing:-.2px}
.cp-info .mt{font-size:10.5px;color:var(--ink-3);margin-top:6px}
.cp-card{margin:11px 14px 0;background:#fff;border-radius:14px;padding:3px 13px;box-shadow:var(--shadow)}
.cp-card .li{display:flex;gap:8px;padding:10px 0;border-bottom:1px solid #F3F7FA;font-size:11.5px;line-height:1.55;color:var(--ink-2)}
.cp-card .li:last-child{border-bottom:0}
.cp-card .li i{font-style:normal;color:var(--teal-700);font-weight:800;flex:0 0 12px}
.cp-card .li b{color:var(--ink)}
.cp-text{padding:14px 16px 0;font-size:12px;line-height:1.8;color:var(--ink-2)}
.cp-text p+p{margin-top:8px}
.cp-text b{color:var(--ink)}
.cp-note{padding:12px 16px 0;font-size:10px;color:var(--ink-3);line-height:1.6}
.cp-bar{position:absolute;left:0;right:0;bottom:0;display:flex;gap:9px;padding:10px 14px 16px;background:linear-gradient(180deg,rgba(244,247,249,0),#F4F7F9 42%);z-index:4}
.cp-bar button{flex:1;height:44px;border-radius:22px;font-size:14px;font-weight:700}
.cp-bar .b1{background:linear-gradient(135deg,#1E88C9,#0466A6);color:#fff;box-shadow:0 8px 18px rgba(3,104,172,.24)}
.cp-bar .b2{background:#fff;color:var(--teal-800);border:1px solid var(--teal-100)}

/* ===== 服务全流程 ===== */
.flow-hero{margin:12px 14px 0;background:linear-gradient(135deg,#0A517F,#1E88C9);border-radius:16px;padding:15px 16px;color:#fff;position:relative;overflow:hidden;box-shadow:0 8px 20px rgba(6,59,95,.16)}
.flow-hero::before{content:"";position:absolute;right:-30px;top:-46px;width:130px;height:130px;border-radius:50%;background:rgba(255,255,255,.09)}
.flow-hero::after{content:"";position:absolute;right:34px;bottom:-58px;width:110px;height:110px;border-radius:50%;background:rgba(255,255,255,.07)}
.flow-hero h3{font-size:17px;font-weight:800;letter-spacing:.2px;position:relative;z-index:1}
.flow-hero p{font-size:11px;opacity:.88;margin-top:5px;line-height:1.6;position:relative;z-index:1}
.flow-hero .chips{display:flex;gap:6px;margin-top:10px;position:relative;z-index:1}
.flow-hero .chips i{font-style:normal;font-size:9.5px;font-weight:700;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.24);padding:3px 9px;border-radius:10px}
.flowline{margin:16px 14px 0;position:relative}
.flowline::before{content:"";position:absolute;left:17px;top:10px;bottom:26px;width:2px;background:linear-gradient(#9CC6DF,#D8E7F0)}
.fstep{position:relative;display:flex;gap:12px;margin-bottom:10px}
.fno{width:36px;height:36px;border-radius:50%;flex:0 0 36px;background:var(--teal-700);color:#fff;font-weight:800;font-size:14px;display:flex;align-items:center;justify-content:center;z-index:1;box-shadow:0 0 0 4px var(--bg)}
.fstep.alt .fno{background:#fff;color:var(--teal-800);border:2px solid var(--teal-500)}
.fcard{flex:1;min-width:0;background:#fff;border-radius:14px;box-shadow:var(--shadow);padding:12px 13px}
.fcard .ft{font-size:13.5px;font-weight:800;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.fcard .ft .tm{font-style:normal;font-size:9px;font-weight:700;color:var(--ink-3);background:#F0F5F8;padding:2px 7px;border-radius:8px}
.fcard .fd{font-size:11px;color:var(--ink-2);line-height:1.72;margin-top:5px}
.fcard .fd b{color:var(--ink)}
.fcard .flink{display:inline-flex;align-items:center;gap:4px;margin-top:9px;height:27px;padding:0 12px;border-radius:14px;background:var(--teal-50);color:var(--teal-800);font-size:11px;font-weight:700;border:0;cursor:pointer}
.fcard .flink.ghost{background:#fff;border:1px solid var(--line);color:var(--ink-2)}

/* ==========================================================================
   多页面 App 适配：把原型里的“桌面手机预览”改为全屏移动端页面
   ========================================================================== */
html, body { height: 100%; }
body.app-body { background: #fff; }
.app { display: block; min-height: 100vh; }
.side, .stage { display: none; }
.phone.app-phone {
  width: 100%; max-width: 100%; height: 100dvh; min-height: 100vh;
  border-radius: 0; box-shadow: none; transform: none !important;
}
.phone.app-phone .statusbar { display: none; }
@media (min-width: 560px) {
  body.app-body { background: #E9EFF3; padding: 0; }
  .phone.app-phone { max-width: 430px; margin: 0 auto; box-shadow: 0 0 0 1px rgba(16,34,47,.06), 0 18px 50px rgba(16,34,47,.14); }
}
.screen.active { display: flex; }
.screen .s-body { -webkit-overflow-scrolling: touch; }
a { color: inherit; text-decoration: none; }

/* 通用表单 */
.field { display: block; margin-top: 12px; }
.field .lb { font-size: 12px; color: var(--ink-2); font-weight: 600; margin-bottom: 6px; display: block; }
.input, .select, .textarea {
  width: 100%; height: 44px; border: 1px solid var(--line); border-radius: 12px;
  padding: 0 13px; font-size: 14px; color: var(--ink); background: #fff; outline: none;
}
.textarea { height: 92px; padding: 11px 13px; resize: vertical; line-height: 1.6; }
.input:focus, .select:focus, .textarea:focus { border-color: var(--teal-500); box-shadow: 0 0 0 3px rgba(30,136,201,.12); }
.input::placeholder, .textarea::placeholder { color: #A9B7C2; }

/* 登录 / 注册 */
.auth-wrap { min-height: 100%; display: flex; flex-direction: column; background: linear-gradient(180deg, #0368AC 0%, #1580BE 42%, #F4F7F9 42%, #F4F7F9 100%); }
.auth-hero { padding: 46px 26px 34px; color: #fff; }
.auth-hero .logo { width: 46px; height: 46px; border-radius: 15px; background: rgba(255,255,255,.18); display: flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.auth-hero h1 { font-size: 23px; font-weight: 800; letter-spacing: .4px; }
.auth-hero p { font-size: 12.5px; opacity: .85; margin-top: 8px; line-height: 1.7; }
.auth-card { margin: 0 18px 20px; background: #fff; border-radius: 18px; box-shadow: 0 14px 34px rgba(9,63,95,.13); padding: 20px 18px; }
.auth-card h2 { font-size: 17px; font-weight: 700; }
.auth-card .sub { font-size: 12px; color: var(--ink-3); margin-top: 4px; }
.auth-card .btn { margin-top: 18px; }
.auth-foot { text-align: center; font-size: 12.5px; color: var(--ink-2); padding: 4px 0 26px; }
.auth-foot a { color: var(--teal-700); font-weight: 600; }
.auth-alert { margin-top: 12px; font-size: 12.5px; color: #B93B4E; background: #FDECEE; border-radius: 10px; padding: 9px 12px; }

/* 提示与弹层 */
.toast {
  position: fixed; left: 50%; bottom: 92px; transform: translate(-50%, 12px);
  max-width: 78%; padding: 10px 16px; border-radius: 12px; background: rgba(16,34,47,.92);
  color: #fff; font-size: 13px; line-height: 1.5; text-align: center; opacity: 0;
  pointer-events: none; transition: .24s; z-index: 60;
}
.toast.show { opacity: 1; transform: translate(-50%, 0); }
.mask { position: fixed; inset: 0; background: rgba(10,26,38,.42); display: none; z-index: 40; }
.mask.show { display: block; }
.sheet {
  position: fixed; left: 50%; bottom: 0; width: 100%; max-width: 430px; transform: translate(-50%, 100%);
  background: #fff; border-radius: 20px 20px 0 0; padding: 18px 18px 22px; z-index: 50;
  transition: transform .26s ease; max-height: 86vh; overflow-y: auto;
}
.sheet.show { transform: translate(-50%, 0); }
.sheet .sheet-h { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.sheet .sheet-h h3 { font-size: 16px; font-weight: 700; }
.sheet .close { width: 28px; height: 28px; border-radius: 9px; background: #F2F6F9; color: var(--ink-3); display: flex; align-items: center; justify-content: center; font-size: 16px; }
.sheet .btn { margin-top: 14px; }

/* 空态 / 载入 */
.empty { text-align: center; padding: 46px 24px; color: var(--ink-3); font-size: 15px; }
.empty .em-ic { width: 58px; height: 58px; border-radius: 50%; background: var(--teal-50); color: var(--teal-700); display: flex; align-items: center; justify-content: center; margin: 0 auto 14px; }
.empty p { font-size: 15px; font-weight: 700; color: var(--ink-2); }
.empty span { display: block; font-size: 12px; margin-top: 7px; line-height: 1.7; }
.empty .btn { margin-top: 16px; }
.skeleton { height: 84px; border-radius: 14px; margin: 10px 14px 0; background: linear-gradient(90deg,#EEF3F6 25%,#F7FAFB 37%,#EEF3F6 63%); background-size: 400% 100%; animation: sk 1.4s ease infinite; }
@keyframes sk { 0% { background-position: 100% 50%; } 100% { background-position: 0 50%; } }

/* 产品列表 / 筛选 */
.lib-search { padding: 10px 14px 0; }
.searchbar { display: flex; align-items: center; gap: 8px; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 0 12px; height: 42px; }
.searchbar input { flex: 1; border: 0; outline: none; font-size: 13.5px; background: transparent; }
.prod-card .meta-line { font-size: 11px; color: var(--ink-3); margin-top: 4px; }
.prod-card .cmp-pick { position: absolute; right: 12px; bottom: 12px; }
.lib-empty { text-align: center; color: var(--ink-3); font-size: 12.5px; padding: 34px 20px; }

/* 详情页参数行补充 */
.dp-rows .r + .r { border-top: 1px solid #F1F5F8; }
.dp-rows .r { padding: 12px 16px; }
.dp-rows .r .rl { font-size: 11px; color: var(--ink-3); }
.dp-rows .r .rv { font-size: 13px; margin-top: 2px; }

/* 对比表 */
.cmp-table-wrap { overflow-x: auto; padding: 0 14px 8px; }
.cmp-table { width: 100%; border-collapse: collapse; background: #fff; border-radius: 14px; overflow: hidden; }
.cmp-table th, .cmp-table td { padding: 10px 8px; font-size: 11.5px; text-align: center; border-bottom: 1px solid #F1F5F8; vertical-align: top; }
.cmp-table th { background: #F7FAFB; font-weight: 700; color: var(--ink-2); }
.cmp-table td:first-child, .cmp-table th:first-child { text-align: left; color: var(--ink-3); font-weight: 600; width: 78px; }
.cmp-table .nm { font-weight: 700; font-size: 12.5px; color: var(--ink); }

/* 我的页面小补充 */
.me-user .av { overflow: hidden; }
.cell { display: flex; align-items: center; gap: 11px; padding: 14px; cursor: pointer; }
.cell + .cell { border-top: 1px solid #F2F6F9; }
.cell:active { background: #FAFCFD; }
.cell .ci { width: 32px; height: 32px; border-radius: 10px; background: var(--teal-50); color: var(--teal-700); display: flex; align-items: center; justify-content: center; flex: 0 0 32px; }

/* 报告 / 方案里的通用列表块 */
.info-block { background: #fff; border-radius: 14px; box-shadow: var(--shadow); padding: 14px; margin: 10px 14px 0; }
.info-block h4 { font-size: 13.5px; font-weight: 700; margin-bottom: 8px; }
.info-block p { font-size: 12.5px; color: var(--ink-2); line-height: 1.8; }
.kv { display: flex; justify-content: space-between; gap: 12px; font-size: 12.5px; padding: 7px 0; border-bottom: 1px solid #F3F7FA; }
.kv:last-child { border-bottom: 0; }
.kv span { color: var(--ink-3); }
.kv b { font-weight: 600; text-align: right; }
