:root{--blue:#1677ff;--blue-dark:#0958d9;--blue-soft:#e6f0ff;--price:#ff4d4f;--red:#ff4d4f;--line:#ececec;--bg:#f5f6f8;--text:#1f2329;--text-sub:#8a8f99;--nav-h:60px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei","Hiragino Sans GB",sans-serif;color:var(--text);background:var(--bg);line-height:1.6}a{text-decoration:none;color:inherit}header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}.nav{height:var(--nav-h);display:flex;align-items:center;padding:0 28px;gap:26px}.logo{display:flex;align-items:center;gap:8px;font-size:21px;font-weight:800;color:#1f2329;white-space:nowrap}.logo .cloud{font-size:24px}.nav-menu{display:flex;align-items:center;gap:24px;font-size:15px}.nav-menu a{position:relative;padding:18px 0;color:#3a3f47;display:flex;align-items:center;gap:5px}.nav-menu a:hover{color:var(--blue)}.nav-menu a.active{color:var(--blue);font-weight:600}.nav-menu a.open{color:var(--blue);font-weight:600}.nav-menu a.active::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--blue);border-radius:2px 2px 0 0}.hot{background:var(--red);color:#fff;font-size:10px;padding:1px 4px;border-radius:3px;font-weight:700;line-height:1.4}.rec{background:#ff8f1f;color:#fff;font-size:10px;padding:1px 4px;border-radius:3px;font-weight:700;line-height:1.4}.nav-right{margin-left:auto;display:flex;align-items:center;gap:14px;font-size:14px;color:#4a4f57}.nav-search{display:flex;align-items:center;border:1px solid var(--line);border-radius:8px;padding:6px 10px;color:var(--text-sub);font-size:13px;background:#fafbfc}.nav-search input{border:none;outline:none;background:transparent;font-size:13px;width:120px;color:var(--text)}.nav-right a:hover{color:var(--blue)}.btn-reg{background:var(--blue);color:#fff;padding:7px 16px;border-radius:8px;font-weight:600}.btn-reg:hover{background:var(--blue-dark);color:#fff}.eco-promo{width:240px;flex-shrink:0;background:linear-gradient(135deg,#f0f7ff,#e6f4ff);border-radius:12px;padding:20px;display:flex;flex-direction:column;justify-content:center;gap:10px;margin-left:20px}.eco-promo h4{font-size:16px;font-weight:700;color:#1f2329}.eco-promo p{font-size:13px;color:#5a5f67;line-height:1.6}.eco-promo .promo-img{height:80px;background:radial-gradient(circle at 70% 50%,rgba(22,119,255,.25),transparent 70%),radial-gradient(circle at 30% 40%,rgba(22,119,255,.15),transparent 60%);border-radius:10px}.nav-menu a .arr{font-size:10px;color:var(--text-sub);margin-left:-2px;transition:transform .2s}.nav-menu a.open .arr,.nav-menu a:hover .arr{color:var(--blue)}.nav-menu a.open .arr{transform:rotate(180deg)}.crumb{padding:14px 28px;font-size:13px;color:var(--text-sub);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.crumb .back{color:var(--blue);font-weight:600}.crumb b{color:#3a3f47}.main{padding:0 28px 60px;display:flex;gap:18px;align-items:flex-start}.side{width:220px;flex-shrink:0;background:#fff;border:1px solid var(--line);border-radius:8px;padding:14px;position:sticky;top:74px}.side-search{display:flex;align-items:center;border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin-bottom:14px}.side-search input{border:none;outline:none;font-size:13px;width:100%;color:var(--text)}.side-search .ic{color:var(--text-sub);margin-right:6px}.cat-title{font-size:14px;font-weight:700;color:#1f2329;display:flex;align-items:center;gap:6px;padding:8px 6px;cursor:pointer}.cat-title .arr{margin-left:auto;color:var(--text-sub);font-size:12px;transition:transform .2s}.cat-title.collapsed .arr{transform:rotate(-90deg)}.cat-title .dot{width:6px;height:6px;border-radius:50%;background:var(--red)}.cat-list{margin-top:4px}.cat-list.hide{display:none}.cat-item{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:7px;font-size:14px;color:#3a3f47;cursor:pointer;position:relative}.cat-item:hover{background:#f5f7fa}.cat-item .ric{color:var(--red);font-size:13px}.cat-item.active{background:var(--blue-soft);color:var(--blue);font-weight:600}.cat-item.active::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;background:var(--blue);border-radius:0 2px 2px 0}.cat-collapse{padding:8px 10px;font-size:14px;color:#3a3f47;cursor:pointer;border-radius:7px;display:flex;align-items:center;gap:6px}.cat-collapse:hover{background:#f5f7fa}.cat-collapse .arr{margin-left:auto;color:var(--text-sub);font-size:12px;transition:transform .2s}.cat-collapse.collapsed .arr{transform:rotate(-90deg)}.sub-list{margin-left:6px}.sub-list.hide{display:none}.sub-item{padding:7px 10px 7px 18px;font-size:13px;color:#5a5f67;cursor:pointer;border-radius:6px}.sub-item:hover{background:#f5f7fa;color:var(--blue)}.content{flex:1;min-width:0}.info-banner{background:var(--blue-soft);border:1px solid #c9e0ff;color:#1f4fb0;font-size:13px;padding:11px 16px;border-radius:8px;margin-bottom:16px;display:flex;align-items:center;gap:6px}.info-banner a{color:var(--blue);font-weight:600}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}@media(max-width:560px){.grid{grid-template-columns:1fr}}.card{background:#fff;border:1px solid var(--line);border-radius:6px;padding:16px;display:flex;flex-direction:column;transition:box-shadow .15s}.card:hover{box-shadow:0 6px 20px rgba(22,119,255,.12);border-color:#c9d8f5}.card h3{font-size:17px;font-weight:700;color:#1f2329}.specs{margin:12px 0;font-size:13px;color:#6b7078}.specs div{display:flex;gap:8px;padding:2px 0}.specs div b{color:#3a3f47;font-weight:600;min-width:34px}.tags{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px;font-size:13px;color:var(--red)}.card-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:8px}.price{color:var(--price);font-weight:800}.price .num{font-size:22px}.price .unit{font-size:12px;color:var(--text-sub);font-weight:400}.buy{background:var(--blue);color:#fff;border:none;padding:8px 16px;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap}.buy:hover{background:var(--blue-dark)}.cs{position:fixed;right:16px;top:42%;transform:translateY(-50%);z-index:40;display:flex;flex-direction:column;align-items:center;gap:10px}.cs-online{background:var(--blue);color:#fff;border-radius:24px;padding:10px 8px;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:12px;width:58px;cursor:pointer;box-shadow:0 4px 14px rgba(22,119,255,.35)}.cs-online .av{width:30px;height:30px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;font-size:16px}.cs-icon{width:42px;height:42px;background:#fff;border:1px solid var(--line);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.06)}.cs-icon:hover{border-color:var(--blue);color:var(--blue)}

/* footer（与首页同款浅色背景） */
footer{padding:46px 32px;background:#fff;color:var(--text);border-top:1px solid var(--line)}
.ft-inner{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1.6fr repeat(4,1fr);gap:32px}@media(max-width:900px){.ft-inner{grid-template-columns:1fr 1fr}}
.ft-info p{font-size:12px;color:#64748b;line-height:2}
.ft-info .qr{display:flex;gap:12px;margin-top:14px}
.ft-info .qr div{width:70px;height:70px;background:#f1f5f9;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:11px;color:#64748b;text-align:center}
.ft-col h4{font-size:14px;font-weight:800;margin-bottom:14px;color:var(--text)}
.ft-col a{display:block;font-size:13px;color:#64748b;padding:5px 0;transition:.15s}
.ft-col a:hover{color:var(--blue)}
.ft-bottom{max-width:1280px;margin:30px auto 0;padding-top:22px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;gap:20px;font-size:12px;color:#64748b}
.ft-bottom .tag{background:#f1f5f9;padding:4px 11px;border-radius:6px;color:#475569}


/* 商品卡统一视觉（覆盖上游注入 HTML 样式，不动 DB 里的 card_html） */
.card {
  background: #fff;
  border: 1px solid #e8e8e8;
  border-radius: 10px;
  padding: 20px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.04);
}
.card:hover {
  box-shadow: 0 6px 20px rgba(22,119,255,.1);
  border-color: #d0e3ff;
}
.card h3 {
  font-size: 20px;
  font-weight: 700;
  color: #1f2329;
  margin-bottom: 14px;
  line-height: 1.4;
}
.card-body {
  flex: 1;
  min-height: 0;
}
.spec-list {
  margin-bottom: 4px;
}
.spec-row {
  display: flex;
  align-items: baseline;
  gap: 10px;
  padding: 5px 0;
  font-size: 14px;
  line-height: 1.6;
}
.spec-label {
  font-weight: 700;
  color: #1f2329;
  min-width: 40px;
  flex-shrink: 0;
}
.spec-value {
  color: #4a4f57;
  font-weight: 400;
}
.card-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 10px;
  font-size: 14px;
  color: #ff4d4f;
}
.card-tags span {
  display: inline;
  font-weight: 500;
}
.card-foot {
  margin-top: auto;
  padding-top: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.price .num {
  font-size: 24px;
  font-weight: 800;
}
.price .unit {
  font-size: 13px;
  color: #8a8f99;
  font-weight: 400;
}
/* 无固定价格（如弹性云）的占位文案 */
.price.no-price {
  color: #8a8f99;
  font-size: 13px;
}
.buy {
  margin-left: auto;
  padding: 9px 18px;
  border-radius: 8px;
  font-size: 14px;
}
