/* ============================================================
   大江实验室 · 报价系统 样式
   ============================================================ */
:root{
  --navy:#0f3b57; --navy-2:#0a2a3f; --teal:#0e8a96; --teal-l:#e6f4f5;
  --cta:#e8833a; --cta-d:#d2702a;
  --bg:#f4f7fa; --card:#fff; --line:#e2e8f0; --line-2:#cfd8e3;
  --ink:#15202b; --ink-2:#3d4c5c; --muted:#71808f; --muted-2:#96a3b0;
  --ok:#12805c; --warn:#b45309; --danger:#c0392b;
  --r:14px; --r-s:9px;
  --shadow:0 1px 2px rgba(16,32,48,.05),0 8px 24px -12px rgba(16,32,48,.18);
  --mono:"SF Mono",Consolas,"Liberation Mono",monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit;color:inherit}
h1,h2,h3,h4{margin:0;line-height:1.25;letter-spacing:-.01em}
p{margin:0}
.wrap{max-width:1240px;margin:0 auto;padding:0 22px}
.muted{color:var(--muted)}
.small{font-size:12px}

/* ---------- header ---------- */
.hdr{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.hdr-in{display:flex;align-items:center;gap:26px;height:66px}
.brand{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.logo{width:38px;height:38px;border-radius:11px;background:linear-gradient(150deg,var(--navy),var(--teal));color:#fff;display:grid;place-items:center;font-weight:800;font-size:19px;letter-spacing:-1px}
.bt{display:flex;flex-direction:column;line-height:1.2}
.bt b{font-size:16px;letter-spacing:.2px}
.bt i{font-style:normal;font-size:10.5px;color:var(--muted);letter-spacing:.6px}
.nav{display:flex;gap:22px;margin-left:auto;font-size:14px;color:var(--ink-2)}
.nav a:hover{color:var(--teal)}
.hdr-tel{font-size:14px;font-weight:700;color:var(--navy);white-space:nowrap;padding:8px 14px;border:1px solid var(--line-2);border-radius:999px}
.hdr-tel:hover{border-color:var(--teal);color:var(--teal)}

/* ---------- hero ---------- */
.hero{background:
  radial-gradient(900px 420px at 12% -10%,rgba(14,138,150,.16),transparent 60%),
  radial-gradient(700px 380px at 92% 0%,rgba(232,131,58,.13),transparent 60%),
  linear-gradient(180deg,#fbfdff,#f4f7fa);border-bottom:1px solid var(--line)}
.hero-in{display:grid;grid-template-columns:1.25fr .9fr;gap:44px;padding:52px 22px 46px;align-items:center}
.eyebrow{display:inline-block;font-size:12.5px;letter-spacing:.12em;color:var(--teal);font-weight:700;margin-bottom:14px}
.hero h1{font-size:clamp(30px,4.2vw,48px);font-weight:800;letter-spacing:-.02em}
.hero h1 em{font-style:normal;background:linear-gradient(100deg,var(--teal),#17a2a2 60%,var(--cta));-webkit-background-clip:text;background-clip:text;color:transparent}
.lead{margin-top:16px;color:var(--ink-2);font-size:15.5px;max-width:33em}
.lead b{color:var(--ink)}
.hero-actions{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap}
.hero-stats{display:flex;gap:34px;margin:30px 0 0;padding:0;list-style:none}
.hero-stats li{display:flex;flex-direction:column}
.hero-stats b{font-size:23px;letter-spacing:-.02em}
.hero-stats span{font-size:12.5px;color:var(--muted)}
.hero-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:var(--shadow)}
.hc-title{font-size:13px;font-weight:700;color:var(--muted);letter-spacing:.08em;margin-bottom:14px}
.steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.steps li{display:flex;gap:12px;align-items:flex-start}
.steps i{flex:0 0 26px;height:26px;border-radius:8px;background:var(--teal-l);color:var(--teal);display:grid;place-items:center;font-style:normal;font-weight:800;font-size:13px}
.steps div{display:flex;flex-direction:column}
.steps b{font-size:14.5px}
.steps span{font-size:12.5px;color:var(--muted)}
.hc-foot{margin-top:16px;padding-top:14px;border-top:1px dashed var(--line-2);font-size:12px;color:var(--muted)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:10px;padding:11px 18px;font-size:14px;font-weight:700;cursor:pointer;transition:.15s;background:#fff;white-space:nowrap}
.btn-primary{background:var(--cta);color:#fff;box-shadow:0 6px 16px -8px rgba(232,131,58,.9)}
.btn-primary:hover{background:var(--cta-d)}
.btn-ghost{border-color:var(--line-2);color:var(--ink-2)}
.btn-ghost:hover{border-color:var(--teal);color:var(--teal)}
.btn:active{transform:translateY(1px)}
.link-btn{background:none;border:0;padding:0;color:var(--muted);font-size:12.5px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.link-btn:hover{color:var(--danger)}

/* ---------- layout ---------- */
.layout{display:grid;grid-template-columns:minmax(0,1fr) 372px;gap:28px;padding:38px 22px 10px;align-items:start}
.layout>*{min-width:0}
.quote-layout>*{min-width:0}
.paper-wrap{min-width:0}
.sec-head{display:flex;align-items:baseline;gap:12px;margin-bottom:16px}
.sec-head h2{font-size:20px}
.sec-sub{font-size:12.5px;color:var(--muted)}

/* ---------- tabs ---------- */
.tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;margin-bottom:18px;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tab{border:1px solid var(--line-2);background:#fff;border-radius:999px;padding:8px 15px;font-size:13.5px;cursor:pointer;white-space:nowrap;color:var(--ink-2)}
.tab.on{background:var(--navy);border-color:var(--navy);color:#fff;font-weight:700}

/* ---------- product grid ---------- */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;transition:.18s}
.card:hover{box-shadow:var(--shadow);transform:translateY(-2px);border-color:var(--line-2)}
.thumb{aspect-ratio:16/10;background:#eef2f7;position:relative;overflow:hidden}
.thumb img{width:100%;height:100%;object-fit:cover}
.tag{position:absolute;left:10px;top:10px;background:rgba(15,59,87,.86);color:#fff;font-size:11px;padding:3px 8px;border-radius:6px;backdrop-filter:blur(4px)}
.card-b{padding:14px 14px 16px;display:flex;flex-direction:column;flex:1}
.card h4{font-size:15px}
.card .spec{font-size:12px;color:var(--muted);margin-top:3px}
.card .note{font-size:11.5px;color:var(--muted-2);margin-top:6px;line-height:1.45}
.card .row{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-top:auto;padding-top:12px}
.price{font-size:20px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.price small{font-size:12px;font-weight:600;color:var(--muted);margin-left:2px}
.price .from{font-size:11.5px;font-weight:600;color:var(--muted);margin-right:3px}
.ctrl{display:flex;gap:8px;margin-top:12px}
.ctrl .inp{width:88px;border:1px solid var(--line-2);border-radius:8px;padding:8px 9px;font-size:13px;text-align:right;font-variant-numeric:tabular-nums}
.ctrl select{flex:1;min-width:0;border:1px solid var(--line-2);border-radius:8px;padding:8px 9px;font-size:13px;background:#fff}
.ctrl .add{flex:1;background:var(--navy);color:#fff;border:0;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;padding:9px 10px}
.ctrl .add:hover{background:var(--teal)}

/* ---------- cart ---------- */
.cart{position:sticky;top:84px;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}
.cart-head{display:flex;align-items:center;justify-content:space-between;padding:15px 16px;border-bottom:1px solid var(--line)}
.cart-head h3{font-size:15px;display:flex;align-items:center;gap:8px}
.pill{background:var(--teal);color:#fff;font-size:11.5px;border-radius:999px;padding:1px 8px;font-weight:700}
.cart-body{max-height:44vh;overflow:auto}
.empty{text-align:center;padding:34px 16px;color:var(--muted)}
.empty-ico{font-size:26px;opacity:.35;margin-bottom:6px}
.empty p{font-size:13px}
.empty span{font-size:12px;color:var(--muted-2)}
.cline{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:12px 16px;border-bottom:1px solid #f0f3f7}
.cline:last-child{border-bottom:0}
.cline .nm{font-size:13.5px;font-weight:600;line-height:1.35}
.cline .sp{font-size:11.5px;color:var(--muted)}
.cline .amt{font-size:14px;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}
.cline .ops{grid-column:1/-1;display:flex;align-items:center;gap:8px;margin-top:6px}
.stepper{display:inline-flex;align-items:center;border:1px solid var(--line-2);border-radius:7px;overflow:hidden}
.stepper button{width:26px;height:26px;border:0;background:#f8fafc;cursor:pointer;font-size:15px;line-height:1;color:var(--ink-2)}
.stepper button:hover{background:var(--teal-l);color:var(--teal)}
.stepper span{min-width:30px;text-align:center;font-size:12.5px;font-variant-numeric:tabular-nums}
.del{margin-left:auto;background:none;border:0;color:var(--muted-2);cursor:pointer;font-size:12px}
.del:hover{color:var(--danger)}
.cart-sum{padding:14px 16px 16px;border-top:1px solid var(--line);background:#fbfcfe}
.cart-sum .row{display:flex;justify-content:space-between;font-size:13px;color:var(--ink-2);padding:3px 0}
.cart-sum .row b{font-variant-numeric:tabular-nums;font-weight:600}
.cart-sum .row.total{border-top:1px dashed var(--line-2);margin-top:8px;padding-top:10px;font-size:16px;color:var(--ink)}
.cart-sum .row.total b{font-size:21px;font-weight:800;color:var(--cta)}
.hint{font-size:11.5px;color:var(--muted-2);margin-top:8px;line-height:1.4}
.cart-actions{margin-top:12px}
.cart-actions .btn{width:100%}

/* ---------- quote ---------- */
.quote-sec{padding:46px 0 30px;border-top:1px solid var(--line);margin-top:34px;background:linear-gradient(180deg,#fff,var(--bg))}
.quote-layout{display:grid;grid-template-columns:392px minmax(0,1fr);gap:26px;align-items:start}
.qform{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:20px;box-shadow:var(--shadow);position:sticky;top:84px}
.field{margin-bottom:12px}
.field label{display:block;font-size:12.5px;color:var(--ink-2);font-weight:600;margin-bottom:5px}
.field input,.field select{width:100%;border:1px solid var(--line-2);border-radius:9px;padding:10px 11px;font-size:14px;background:#fff;outline:none}
.field input:focus,.field select:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(14,138,150,.12)}
.field-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.req{color:var(--danger)}
.unit-tip{font-size:12px;color:var(--muted);margin-left:4px}
.checks{display:flex;flex-direction:column;gap:7px;margin:4px 0 12px}
.chk{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2);cursor:pointer}
.chk input{width:16px;height:16px;accent-color:var(--teal)}
.qform-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.qform-actions .btn{padding:9px 13px;font-size:13px}
.form-tip{font-size:11.5px;color:var(--muted-2);margin-top:10px;line-height:1.45}

/* ---------- paper ---------- */
.paper-wrap{overflow:auto}
.paper{background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 10px 40px -22px rgba(16,32,48,.35);padding:34px 36px 30px;font-size:12.5px;color:#1c2733;max-width:860px;margin:0 auto}
.p-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;border-bottom:2px solid var(--navy);padding-bottom:14px}
.p-brand{display:flex;gap:11px;align-items:center}
.p-logo{width:40px;height:40px;border-radius:10px;background:linear-gradient(150deg,var(--navy),var(--teal));color:#fff;display:grid;place-items:center;font-weight:800;font-size:20px}
.p-brand b{display:block;font-size:16px;letter-spacing:.3px}
.p-brand span{font-size:10.5px;color:var(--muted);letter-spacing:.08em}
.p-title{text-align:right}
.p-title h2{font-size:22px;letter-spacing:.28em;color:var(--navy);font-weight:800}
.p-title .no{font-size:11.5px;color:var(--muted);margin-top:5px;font-family:var(--mono)}
.p-info{display:grid;grid-template-columns:1fr 1fr;gap:2px 26px;margin:16px 0 14px;font-size:12px}
.p-info .k{color:var(--muted);display:inline-block;width:62px}
.p-info .v{color:#111;font-weight:600}
.p-table{width:100%;border-collapse:collapse;font-size:12px}
.p-table th{background:#eef3f8;color:var(--navy);font-weight:700;text-align:left;padding:8px 9px;border:1px solid #d7e0ea;white-space:nowrap}
.p-table td{padding:7px 9px;border:1px solid #e3eaf2;vertical-align:top}
.p-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.p-table .c{text-align:center}
.p-table tbody tr:nth-child(even){background:#fbfcfe}
.p-empty{text-align:center;color:var(--muted);padding:26px 0}
.p-tot{margin-left:auto;width:300px;margin-top:12px;font-size:12.5px}
.p-tot .r{display:flex;justify-content:space-between;padding:4px 0;color:var(--ink-2)}
.p-tot .r b{font-variant-numeric:tabular-nums}
.p-tot .grand{border-top:2px solid var(--navy);margin-top:6px;padding-top:8px;font-size:15px;color:var(--navy);font-weight:800}
.p-tot .grand b{font-size:20px;color:var(--cta)}
.p-terms{margin-top:16px;border-top:1px dashed var(--line-2);padding-top:11px;font-size:11.5px;color:var(--ink-2);line-height:1.75}
.p-terms b{color:var(--ink)}
.p-sign{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:26px;font-size:11.5px;color:var(--muted)}
.p-sign div{border-top:1px solid var(--line-2);padding-top:40px}
.p-foot{margin-top:14px;font-size:10.5px;color:var(--muted-2);display:flex;justify-content:space-between;gap:10px}

/* ---------- about / contact ---------- */
.about{padding:52px 0;border-top:1px solid var(--line);background:#fff}
.about-in{display:grid;grid-template-columns:1.15fr .85fr;gap:44px;align-items:center}
.about h2{font-size:26px;margin-bottom:12px}
.about p{color:var(--ink-2);margin-bottom:10px;font-size:14.5px}
.about-list{list-style:none;padding:0;margin:14px 0 0;display:flex;flex-direction:column;gap:7px;font-size:14px;color:var(--ink-2)}
.about-img img{border-radius:16px;box-shadow:var(--shadow);aspect-ratio:4/3;object-fit:cover}
.contact{padding:40px 0;background:var(--navy);color:#fff}
.contact-in{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.contact h2{font-size:24px}
.contact .muted{color:#a9c2d4;font-size:13.5px;margin-top:6px}
.contact-card{text-align:right}
.contact-card .tel{font-size:clamp(26px,3.4vw,38px);font-weight:800;letter-spacing:.02em;color:#fff;display:block;line-height:1.1}
.contact-card .tel:hover{color:#ffcf9e}
.foot{background:var(--navy-2);color:#9db4c6;font-size:12.5px;padding:16px 0}
.foot-in{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.foot-r{display:flex;gap:14px;align-items:center}
.foot .link-btn{color:#7f9aae}

/* ---------- drawer ---------- */
.mask{position:fixed;inset:0;background:rgba(10,25,38,.45);z-index:80}
.mask[hidden]{display:none}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,94vw);background:#fff;z-index:81;display:flex;flex-direction:column;box-shadow:-20px 0 60px -30px rgba(0,0,0,.5)}
.drawer[hidden]{display:none}
.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line)}
.drawer-head h3{font-size:16px}
.icon-btn{border:1px solid var(--line-2);background:#fff;width:30px;height:30px;border-radius:8px;cursor:pointer;color:var(--muted)}
.drawer-body{padding:18px 20px;overflow:auto}
.admin-block{margin-bottom:24px}
.admin-block h4{font-size:13px;color:var(--navy);margin-bottom:10px;display:flex;gap:8px;align-items:baseline}
.admin-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0;font-size:13px;color:var(--ink-2)}
.admin-row input,.admin-row select{width:150px;border:1px solid var(--line-2);border-radius:8px;padding:7px 9px;font-size:13px;text-align:right}
.cost-table{max-height:46vh;overflow:auto;border:1px solid var(--line);border-radius:10px}
.crow{display:grid;grid-template-columns:1fr 96px;gap:8px;align-items:center;padding:7px 10px;border-bottom:1px solid #f0f3f7;font-size:12.5px}
.crow:last-child{border-bottom:0}
.crow:nth-child(even){background:#fbfcfe}
.crow .nm{line-height:1.3}
.crow .nm i{font-style:normal;color:var(--warn);font-size:11px}
.crow input{width:100%;border:1px solid var(--line-2);border-radius:6px;padding:5px 7px;font-size:12.5px;text-align:right;font-variant-numeric:tabular-nums}

/* ---------- toast ---------- */
.toast{position:fixed;left:50%;bottom:34px;transform:translateX(-50%);background:#15202b;color:#fff;padding:11px 20px;border-radius:10px;font-size:13.5px;z-index:99;box-shadow:0 12px 30px -12px rgba(0,0,0,.6)}

/* ---------- responsive ---------- */
@media(max-width:1000px){
  .layout{grid-template-columns:1fr}
  .cart{position:static}
  .cart-body{max-height:none}
  .quote-layout{grid-template-columns:1fr}
  .qform{position:static}
  .hero-in{grid-template-columns:1fr;gap:26px;padding-top:36px}
  .hero-card{max-width:560px}
  .about-in{grid-template-columns:1fr;gap:24px}
}
@media(max-width:720px){
  body{font-size:14.5px}
  .wrap{padding:0 16px}
  .nav{display:none}
  .hdr-in{height:60px;gap:10px}
  .hdr-tel span{display:none}
  .hdr-tel{padding:8px 11px}
  .hero h1{font-size:30px}
  .hero-stats{gap:22px}
  .grid{grid-template-columns:1fr}
  .paper{padding:20px 16px}
  .p-info{grid-template-columns:1fr}
  .p-title h2{font-size:18px;letter-spacing:.2em}
  .p-tot{width:100%}
  .contact-in{align-items:flex-start}
  .contact-card{text-align:left}
}

/* ---------- print ---------- */
@media print{
  @page{size:A4;margin:0}
  html,body{background:#fff!important;height:auto!important}
  body{background:#fff!important}
  .hdr,.hero,.catalog,.cart,.catnav,.layout,.qform,.about,.contact,.foot,.drawer,.mask,.toast,.sec-head,.form-tip,.quote-sec>.wrap>.quote-layout>.qform,.smart-box,.p-toolbar{display:none!important}
  .quote-sec{padding:0!important;margin:0!important;border:0!important;background:#fff!important}
  .quote-sec .wrap{padding:0!important;max-width:none!important}
  .quote-layout{display:block!important;margin:0!important;padding:0!important;gap:0!important}
  .paper{border:0!important;border-radius:0!important;padding:12mm 10mm!important;max-width:none!important;margin:0!important;font-size:11.5pt;box-shadow:none!important}
  .paper-wrap{overflow:visible!important}
  .p-table{font-size:10.5pt}
  /* 信息块：打印时横排（标签在上、值在下），自适应列宽，避免挤成一列 */
  .p-info{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:7px 16px!important;margin:12px 0 12px!important;font-size:10pt!important}
  .p-info>div{min-width:0}
  .p-info .k{display:block!important;width:auto!important;font-size:8.5pt!important;color:#7b8792!important;margin-bottom:1px}
  .p-info .v{display:block!important;font-size:10pt!important;font-weight:700!important;word-break:break-all}
  a[href]:after{content:""}
}

/* ---------- 加微信弹窗 ---------- */
.btn-wechat{margin:10px 0 8px;background:#07c160;color:#fff;border:0;border-radius:999px;padding:10px 24px;font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 8px 20px -10px rgba(7,193,96,.9)}
.btn-wechat:hover{background:#06ad56}
.wx-mask{position:fixed;inset:0;background:rgba(10,25,38,.55);z-index:120;display:flex;align-items:center;justify-content:center;padding:20px}
.wx-mask[hidden]{display:none}
.wx-modal{position:relative;background:#fff;border-radius:18px;width:min(360px,92vw);padding:26px 24px 20px;text-align:center;box-shadow:0 30px 80px -30px rgba(0,0,0,.5)}
.wx-modal h3{font-size:18px;margin-bottom:6px}
.wx-sub{font-size:12.5px;color:var(--muted);margin-bottom:16px}
.wx-close{position:absolute;right:12px;top:10px;border:0;background:none;font-size:16px;color:var(--muted);cursor:pointer}
.wx-qr{width:220px;height:220px;margin:0 auto;border:1px solid var(--line);border-radius:12px;display:grid;place-items:center;overflow:hidden;background:#fafcff}
.wx-qr img{width:100%;height:100%;object-fit:contain}
.wx-qr-empty{font-size:12px;color:var(--muted);line-height:1.6;padding:10px;display:none}
.wx-qr-empty span{font-size:11px;color:var(--muted-2)}
.wx-id{display:flex;align-items:center;justify-content:center;gap:10px;margin:16px 0 10px;font-size:15px;font-weight:700}
.wx-id button{border:1px solid var(--line-2);background:#fff;border-radius:8px;padding:6px 10px;font-size:12px;cursor:pointer;color:var(--teal);font-weight:600}
.wx-id button:hover{border-color:var(--teal)}
.wx-open{display:block;background:#07c160;color:#fff;border-radius:10px;padding:10px;font-size:13.5px;font-weight:700;margin-top:6px}
.wx-open:hover{background:#06ad56}
.wx-tip{font-size:11px;color:var(--muted-2);margin-top:10px;line-height:1.5}

/* 修正：二维码未上传时隐藏 img，绿色按钮仅在手机显示 */
.wx-qr img{display:block}
.wx-open{display:none;text-decoration:none}
@media(max-width:720px){.wx-open{display:block}}

/* 二维码可点开放大 */
#wxQrLink{display:block;width:100%;height:100%}
.wx-qr{width:240px;height:240px}

.wx-call{display:block;margin-top:8px;font-size:12.5px;color:var(--muted);text-decoration:underline;text-underline-offset:3px}

/* 右下角常驻微信按钮 */
.wx-fab{position:fixed;right:22px;bottom:22px;z-index:95;background:#07c160;color:#fff;border:0;border-radius:999px;padding:12px 20px;font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 10px 26px -10px rgba(7,193,96,.95);display:inline-flex;align-items:center;gap:8px}
.wx-fab:before{content:"";width:16px;height:16px;background:#fff;border-radius:50%;opacity:.95}
.wx-fab:hover{background:#06ad56}
@media print{.wx-fab{display:none!important}}

/* ---------- AI 报价助手 ---------- */
.ai-fab{position:fixed;right:22px;bottom:82px;z-index:95;background:var(--navy);color:#fff;border:0;border-radius:999px;padding:12px 20px;font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 10px 26px -10px rgba(15,59,87,.9)}
.ai-fab:hover{background:var(--teal)}
.ai-panel{position:fixed;right:22px;bottom:140px;width:350px;height:500px;max-height:calc(100vh - 170px);background:#fff;border-radius:16px;box-shadow:0 30px 70px -30px rgba(0,0,0,.45);display:flex;flex-direction:column;overflow:hidden;z-index:96;border:1px solid var(--line)}
.ai-panel[hidden]{display:none}
.ai-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:var(--navy);color:#fff}
.ai-head b{font-size:14.5px;display:block}
.ai-head span{font-size:11px;opacity:.75}
.ai-head button{background:none;border:0;color:#fff;font-size:15px;cursor:pointer;opacity:.8}
.ai-body{flex:1;overflow:auto;padding:14px;background:#f7fafc}
.ai-msg{max-width:88%;padding:9px 12px;border-radius:12px;font-size:13px;line-height:1.6;margin-bottom:10px;white-space:pre-wrap}
.ai-msg.bot{background:#fff;border:1px solid #e6edf4;border-bottom-left-radius:4px}
.ai-msg.user{background:var(--teal);color:#fff;margin-left:auto;border-bottom-right-radius:4px}
.ai-act{display:inline-block;margin:0 0 10px;border:1px solid var(--teal);color:var(--teal);background:#fff;border-radius:999px;padding:5px 12px;font-size:12px;cursor:pointer;font-weight:600}
.ai-act:hover{background:var(--teal);color:#fff}
.ai-chips{display:flex;gap:6px;flex-wrap:wrap;padding:8px 12px;border-top:1px solid #eef2f6;background:#fff}
.ai-chips button{font-size:12px;border:1px solid #d8e2ec;background:#fff;border-radius:999px;padding:5px 10px;cursor:pointer;color:var(--ink-2)}
.ai-chips button:hover{border-color:var(--teal);color:var(--teal)}
.ai-input{display:flex;gap:8px;padding:10px 12px;border-top:1px solid #eef2f6;background:#fff}
.ai-input input{flex:1;border:1px solid #d8e2ec;border-radius:9px;padding:9px 10px;font-size:13px;outline:none}
.ai-input input:focus{border-color:var(--teal)}
.ai-input button{background:var(--navy);color:#fff;border:0;border-radius:9px;padding:0 16px;font-size:13px;font-weight:700;cursor:pointer}
@media(max-width:720px){.ai-panel{right:10px;left:10px;width:auto;bottom:140px;height:64vh}.ai-fab{right:16px;bottom:84px;padding:10px 16px}.wx-fab{right:16px;bottom:22px}}
@media print{.ai-fab,.ai-panel{display:none!important}}

.ai-more{display:block;padding:8px 14px;font-size:12px;color:var(--teal);background:#f2fbfb;border-top:1px solid #e6f3f4;text-decoration:none}
.ai-more:hover{background:#e6f7f8}

.ai-more{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:7px 14px}

.ai-note{font-size:10.5px;color:var(--muted-2);padding:6px 14px 0;background:#fff;line-height:1.4}
.ai-msg.typing{color:#8a97a4;font-size:12px}

/* ---------- 聊天窗口放大（覆盖前面） ---------- */
.ai-panel{width:440px;height:620px;max-height:calc(100vh - 160px);bottom:132px}
.ai-body{padding:16px}
.ai-msg{font-size:13.5px;line-height:1.75;max-width:92%}
.ai-head{padding:14px 16px}
.ai-head b{font-size:15px}
.ai-chips{padding:10px 14px}
.ai-input{padding:12px 14px}
.ai-input input{padding:10px 12px;font-size:13.5px}
@media(max-width:720px){
  .ai-panel{right:8px;left:8px;width:auto;height:72vh;bottom:120px;max-height:none}
  .ai-msg{font-size:13px}
}
