/* ============================================================
   智简魔方 V10 购物车主题 · 商品列表页（goodsList）  v20261027
   设计语言：腾讯云风格 · 简约浅蓝（与 goods/settlement 同一套规范）
   规范：主色 #0052d9 / 价格红 #f0142f / 卡片 12px 圆角 /
        按钮实心无渐变 / 本文件为唯一视觉来源，禁止再叠加补丁
   注意：PC 端尺寸用 rem（html font-size 由系统按视口设置），
        移动端断点(<=768px)内用 px 精确控制
   ============================================================ */

:root {
  --cz-primary: #3d7bff;
  --cz-primary-hover: #2b6de5;
  --cz-primary-light: #ecf2fe;
  --cz-bg: #f4f6fa;
  --cz-card: #ffffff;
  --cz-text: #232a3d;
  --cz-text-2: #5c6780;
  --cz-text-3: #939cad;
  --cz-border: #e5e9f2;
  --cz-price: #f0142f;
  --cz-danger: #e54545;
  --cz-warning: #ff7d00;
  --cz-success: #16b779;
  --cz-radius: 12px;
  --cz-radius-s: 8px;
  --cz-shadow: 0 1px 4px rgba(15, 34, 87, 0.06);
  --cz-shadow-md: 0 4px 16px rgba(15, 34, 87, 0.08);
}

/* ============ 页面容器 ============ */
/* 修复：shell-redesign 的 .el-main padding-top:76px 与 element-comment 的
   margin-top:calc(40px+0.24rem) 是为会员中心页设计的；购物车页 body 顶部
   已有自身留白，两段叠加会把内容整体下推约 134px，这里统一收回 */
.el-main {
  background: var(--cz-bg);
  /* 24px：与悬浮顶栏(12+56)保持约 50px 间距；body 顶部另有约 1.45rem 的注入占位 */
  padding-top: 84px !important;
  margin-top: 0 !important;
}
.gl-page {
  box-sizing: border-box;
  width: 100%;
  max-width: 14.6rem;
  margin: 0 auto;
  padding-bottom: 0.4rem;
}

/* ============ 公告栏（购物车说明） ============ */
.gl-notice {
  position: relative;
  box-sizing: border-box;
  margin-bottom: 0.16rem;
  padding: 0.1rem 0.18rem 0.1rem 0.42rem;
  border-radius: var(--cz-radius-s);
  background: var(--cz-primary-light);
  border: 1px solid #d6e2fb;
  color: var(--cz-text-2);
  font-size: 0.14rem;
  line-height: 1.6;
}
.gl-notice::before {
  content: "";
  position: absolute;
  left: 0.17rem;
  top: 50%;
  transform: translateY(-50%);
  width: 0.08rem;
  height: 0.08rem;
  border-radius: 50%;
  background: var(--cz-primary);
  box-shadow: 0 0 0 4px rgba(0, 82, 217, 0.12);
}
.gl-notice * {
  all: revert;
}

/* ============ Hero 搜索区 ============ */
.gl-hero {
  position: relative;
  overflow: hidden;
  border-radius: var(--cz-radius);
  background: var(--cz-card);
  border: 1px solid var(--cz-border);
  box-shadow: var(--cz-shadow);
  padding: 0.2rem 0.26rem;
  color: var(--cz-text);
  margin-bottom: 0.18rem;
}
.gl-hero__title {
  position: relative;
  margin: 0 0 0.14rem 0;
  font-size: 0.18rem;
  font-weight: 600;
  letter-spacing: 0.01rem;
  color: var(--cz-text);
  display: flex;
  align-items: center;
}
.gl-hero__title i {
  display: inline-block;
  width: 0.08rem;
  height: 0.08rem;
  margin-right: 0.08rem;
  border-radius: 50%;
  background: var(--cz-primary);
  vertical-align: 0;
}

/* 搜索条卡片（浅色一体化） */
.gl-search {
  position: relative;
  margin-top: 0;
  display: flex;
  align-items: center;
  gap: 0;
  box-sizing: border-box;
  padding: 0.04rem 0.04rem 0.04rem 0.16rem;
  border-radius: 10px;
  background: var(--cz-bg);
  border: 1px solid var(--cz-border);
  transition: all 0.2s ease;
}
.gl-search:focus-within {
  border-color: var(--cz-primary);
  box-shadow: 0 0 0 3px rgba(0, 82, 217, 0.08);
}
.gl-search__cat {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}
.gl-search__cat .el-select {
  width: 1.6rem;
}
.gl-search__cat .el-select .el-input__inner {
  border: none !important;
  box-shadow: none !important;
  background: transparent;
  height: 0.36rem;
  line-height: 0.36rem;
  color: var(--cz-text);
  font-size: 0.13rem;
  font-weight: 600;
  text-align: center;
}
.gl-search__cat .el-select .el-input__suffix .el-input__icon {
  line-height: 0.36rem;
  color: var(--cz-primary);
}
.gl-search__sep {
  width: 1px;
  height: 0.2rem;
  background: var(--cz-border);
  margin: 0 0.04rem;
  flex-shrink: 0;
}
.gl-search__input {
  flex: 1;
  min-width: 0;
}
.gl-search__input .el-input__inner {
  border: none !important;
  box-shadow: none !important;
  background: transparent;
  height: 0.36rem;
  line-height: 0.36rem;
  font-size: 0.13rem;
  color: var(--cz-text);
}
.gl-search__input .el-input__inner::-webkit-input-placeholder {
  color: var(--cz-text-3);
}
.gl-search__input .el-input__suffix .el-input__icon {
  line-height: 0.36rem;
  color: var(--cz-text-3);
}
.gl-search__btn {
  flex-shrink: 0;
  margin-left: 0.04rem !important;
  border: none !important;
  border-radius: var(--cz-radius-s);
  height: 0.36rem;
  line-height: 0.36rem;
  padding: 0 0.22rem;
  background: var(--cz-primary) !important;
  color: #fff !important;
  font-size: 0.13rem;
  font-weight: 600;
  letter-spacing: 0.02rem;
  transition: background 0.2s ease;
}
.gl-search__btn:hover,
.gl-search__btn:focus {
  background: var(--cz-primary-hover) !important;
  color: #fff !important;
}
.gl-search__btn.is-loading {
  opacity: 0.8;
}

/* 下拉弹层美化 */
.gl-popper.el-select-dropdown {
  border: 1px solid var(--cz-border) !important;
  border-radius: 10px !important;
  box-shadow: 0 8px 28px rgba(15, 34, 87, 0.12) !important;
  overflow: hidden;
}
.gl-popper .el-select-dropdown__item {
  font-size: 0.17rem !important;
  color: var(--cz-text-2) !important;
  height: 0.48rem !important;
  line-height: 0.48rem !important;
  padding: 0 0.2rem !important;
}
.gl-popper .el-select-dropdown__item.hover,
.gl-popper .el-select-dropdown__item:hover {
  background: var(--cz-primary-light);
  color: var(--cz-primary);
}
.gl-popper .el-select-dropdown__item.selected {
  color: var(--cz-primary);
  font-weight: 600;
  background: var(--cz-primary-light);
}
/* 兜底：无论 popper-class 是否命中，弹层文字都要够大 */
body .el-select-dropdown .el-select-dropdown__item {
  font-size: 0.17rem !important;
  height: 0.48rem !important;
  line-height: 0.48rem !important;
}

/* ============ 二级分类描述 ============ */
.gl-desc {
  margin-top: 0.18rem;
  height: 0.4rem;
  display: flex;
  align-items: center;
  box-sizing: border-box;
  padding: 0 0.16rem;
  border-radius: var(--cz-radius-s);
  font-size: 0.13rem;
  color: #e2574c;
  background: #fff5f5;
  border: 1px solid #ffdada;
}

/* ============ 商品区域 ============ */
.gl-goods {
  margin-top: 0.2rem;
  min-height: 3rem;
  box-sizing: border-box;
}
.gl-empty {
  padding: 0.8rem 0;
}
.gl-empty .el-empty__description p {
  color: var(--cz-text-3);
}

.gl-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(3.2rem, 1fr));
  gap: 0.18rem;
}

/* ============ 商品卡片 ============ */
.gl-card {
  position: relative;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  min-height: 3.1rem;
  padding: 0.18rem 0.2rem 0.16rem;
  border-radius: var(--cz-radius);
  background: var(--cz-card);
  border: 1px solid var(--cz-border);
  box-shadow: var(--cz-shadow);
  font-size: 0.14rem;
  line-height: 1.5;
  overflow: hidden;
  transition: box-shadow 0.25s ease, border-color 0.25s ease;
}
.gl-card:hover {
  border-color: #d0dcf3;
  box-shadow: var(--cz-shadow-md);
}

/* 顶部：状态徽章 + 标签 */
.gl-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.08rem;
  min-height: 0.26rem;
}
.gl-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.06rem;
  padding: 0.03rem 0.1rem;
  border-radius: 999px;
  font-size: 0.12rem;
  font-weight: 500;
  white-space: nowrap;
  flex-shrink: 0;
}
.gl-badge .dot {
  width: 0.06rem;
  height: 0.06rem;
  border-radius: 50%;
  background: currentColor;
}
.gl-badge--ok {
  color: #0e9f6e;
  background: rgba(22, 183, 121, 0.1);
}
.gl-badge--off {
  color: var(--cz-danger);
  background: rgba(229, 69, 69, 0.08);
}
.gl-badge--sale {
  color: var(--cz-primary);
  background: var(--cz-primary-light);
}
/* 右上角：库存剩余（中性灰，与左侧状态角标区分） */
.gl-card__top-right {
  display: flex;
  align-items: center;
  gap: 0.06rem;
  min-width: 0;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.gl-badge--stock {
  color: #5c6780;
  background: #f2f4f9;
}
.gl-badge--stock .dot {
  background: #9aa8c7;
  box-shadow: none;
}
.gl-badge--stock-off {
  color: var(--cz-danger);
  background: rgba(229, 69, 69, 0.08);
}
.gl-badge--stock-off .dot {
  background: var(--cz-danger);
}
.gl-card__tags {
  display: flex;
  align-items: center;
  gap: 0.06rem;
  justify-content: flex-end;
}
.gl-tag {
  display: inline-flex;
  align-items: center;
  padding: 0.025rem 0.09rem;
  border-radius: 6px;
  font-size: 0.11rem;
  color: #fff;
  white-space: nowrap;
  background: var(--cz-primary);
}
.gl-tag--fire {
  background: var(--cz-warning);
}

/* 推荐设置角标（后台商品管理-推荐设置，默认色 var(--cz-primary)） */
.gl-card__recommend {
  display: inline-flex;
  align-items: center;
  padding: 0.03rem 0.12rem;
  border-radius: 999px;
  color: #fff;
  font-size: 0.12rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  white-space: nowrap;
  flex-shrink: 0;
}

/* 客户端专属角标 */
.gl-card__client {
  position: absolute;
  top: 0;
  right: 0;
  padding: 0.03rem 0.1rem;
  border-radius: 0 12px 0 10px;
  background: var(--cz-primary);
  color: #fff;
  font-size: 0.12rem;
  z-index: 2;
}

/* 商品名 */
.gl-card__name {
  margin-top: 0.12rem;
  font-size: 0.16rem;
  font-weight: 600;
  color: var(--cz-text);
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  word-break: break-all;
}
.gl-card__name.is-off {
  color: var(--cz-text-3);
}

/* 配置参数（description 增强渲染 / 表格兜底）
   注意：描述区一律使用固定 px 字号，避免因窗口/屏幕缩放导致字体大小不一致 */
.gl-card__desc {
  margin-top: 0.1rem;
  flex: 1;
  box-sizing: border-box;
  border-radius: var(--cz-radius-s);
  background: #f7f9fc;
  border: 1px solid #eef1f7;
  padding: 0.04rem 0.12rem 0.06rem;
}
.gl-card__desc .gl-spec {
  display: flex;
  flex-direction: column;
}
.gl-card__desc .gl-spec__row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.12rem;
  padding: 0.06rem 0;
  line-height: 1.5;
  border-bottom: 1px dashed #e9edf5;
}
.gl-card__desc .gl-spec__row:last-child {
  border-bottom: none;
}
.gl-card__desc .gl-spec__label {
  flex-shrink: 0;
  color: var(--cz-text-3);
  font-size: 13px;
}
.gl-card__desc .gl-spec__value {
  text-align: right;
  color: var(--cz-text);
  font-weight: 500;
  word-break: break-all;
  font-size: 13px;
}
/* 无法拆成"标签：值"的整行（如提示类文案） */
.gl-card__desc .gl-spec__row--full {
  justify-content: flex-start;
}
.gl-card__desc .gl-spec__row--full .gl-spec__value {
  text-align: left;
  color: var(--cz-text-2);
  font-weight: 400;
}
/* 描述为表格时的兜底样式 */
.gl-card__desc table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.gl-card__desc table tr td,
.gl-card__desc table tr th {
  padding: 0.06rem 0;
  text-align: left;
  vertical-align: top;
  color: var(--cz-text);
  font-size: 13px;
}
.gl-card__desc table tr td:first-child,
.gl-card__desc table tr th:first-child {
  color: var(--cz-text-3);
  width: 34%;
}
.gl-card__desc img {
  max-width: 100%;
  border-radius: 8px;
}
.gl-card__desc p {
  margin: 0.06rem 0;
  font-size: 13px;
  line-height: 1.55;
  color: var(--cz-text-2);
}
/* 兜底：后端注入的任意内联元素统一 13px，杜绝混排时字号不一致 */
.gl-card__desc p,
.gl-card__desc span,
.gl-card__desc div,
.gl-card__desc b,
.gl-card__desc strong,
.gl-card__desc em,
.gl-card__desc font,
.gl-card__desc small,
.gl-card__desc a,
.gl-card__desc ul,
.gl-card__desc li {
  font-size: 13px !important;
  line-height: 1.55 !important;
}

/* 活动标签 */
.gl-card__active {
  margin-top: 0.1rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.06rem;
}
.gl-active {
  display: inline-flex;
  align-items: center;
  padding: 0.02rem 0.08rem;
  border-radius: 6px;
  font-size: 0.11rem;
  color: var(--cz-primary);
  background: var(--cz-primary-light);
  cursor: pointer;
}
.gl-active--promo {
  color: #d4522f;
  background: #fff4ec;
}
.gl-active.is-placeholder {
  opacity: 0;
  pointer-events: none;
}
.active-item {
  font-size: 0.13rem;
  color: var(--cz-text-2);
  line-height: 1.7;
}

/* 底部：价格 + 库存 + 购买 */
.gl-card__foot {
  margin-top: 0.12rem;
  padding-top: 0.12rem;
  border-top: 1px solid var(--cz-border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.1rem;
}
/* 右下角：库存徽章 + 购买按钮 */
.gl-card__foot-right {
  display: flex;
  align-items: center;
  gap: 0.1rem;
  flex-shrink: 0;
  min-width: 0;
}
.gl-card__price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  column-gap: 0.08rem;
  min-width: 0;
}
.gl-price {
  font-size: 0.2rem;
  font-weight: 700;
  color: var(--cz-price);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  line-height: 1;
}
.gl-price__prefix {
  font-size: 0.12rem;
  font-weight: 600;
  line-height: 1;
}
.gl-price__cycle {
  font-size: 0.12rem;
  font-weight: 500;
  color: var(--cz-text-2);
  line-height: 1;
}
.gl-price__old {
  display: inline-flex;
  align-items: baseline;
  font-size: 0.11rem;
  color: var(--cz-text-3);
  text-decoration: line-through;
  white-space: nowrap;
  line-height: 1;
}
.gl-price__old .gl-price__prefix {
  font-size: 0.11rem;
}
.gl-price__tag {
  display: inline-block;
  margin-left: 0.06rem;
  padding: 0.02rem 0.07rem;
  font-size: 0.11rem;
  font-weight: 500;
  line-height: 1.2;
  color: var(--cz-primary);
  background: rgba(61, 123, 255, 0.1);
  border: 1px solid rgba(61, 123, 255, 0.35);
  border-radius: 3px;
  vertical-align: 0.02rem;
  white-space: nowrap;
}
html[data-mode='dark'] .gl-price__tag {
  background: rgba(61, 123, 255, 0.18);
  border-color: rgba(61, 123, 255, 0.45);
}
.gl-buy {
  flex-shrink: 0;
  border: none !important;
  border-radius: var(--cz-radius-s);
  height: 0.36rem;
  line-height: 0.36rem;
  padding: 0 0.2rem;
  background: var(--cz-primary) !important;
  color: #fff !important;
  font-size: 0.13rem;
  font-weight: 600;
  transition: background 0.2s ease;
}
.gl-buy:hover,
.gl-buy:focus {
  background: var(--cz-primary-hover) !important;
  color: #fff !important;
}
.gl-buy.is-disabled,
.gl-buy.is-disabled:hover {
  background: #e9edf5 !important;
  color: #a9b3c9 !important;
}

/* ============ 卡片交互动画（顶部流光 + 点击反馈） ============ */
/* 顶部流光边框：2px 渐变线常驻，高光从中心向两侧扩散循环 */
.gl-card::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    var(--cz-primary) 35%,
    #7fb0ff 50%,
    var(--cz-primary) 65%,
    transparent 100%
  );
  background-size: 200% 100%;
  background-position: 50% 0;
  opacity: 0.45;
  transition: opacity 0.3s ease;
  pointer-events: none;
  animation: gl-card-beam 3.2s ease-in-out infinite;
}
@keyframes gl-card-beam {
  0%,
  100% {
    background-position: 120% 0;
    opacity: 0.3;
  }
  50% {
    background-position: -20% 0;
    opacity: 0.75;
  }
}
.gl-card:hover::after {
  opacity: 1;
  animation-duration: 1.6s;
}
/* 点击反馈：整卡边框转蓝 + 光晕脉冲（由 JS 加 .is-tapped 类触发） */
.gl-card.is-tapped {
  border-color: var(--cz-primary) !important;
  box-shadow:
    0 0 0 1px var(--cz-primary),
    0 0 0 6px rgba(61, 123, 255, 0.14),
    var(--cz-shadow-md) !important;
}
.gl-card.is-tapped::after {
  opacity: 1;
  animation: gl-card-tap-beam 0.7s ease-out;
}
@keyframes gl-card-tap-beam {
  0% {
    background-position: 50% 0;
    opacity: 1;
    height: 2px;
  }
  35% {
    height: 3px;
    opacity: 1;
  }
  100% {
    background-position: 50% 0;
    opacity: 0.9;
    height: 2px;
  }
}
/* 移除被禁用（售罄）卡片的点击反馈 */
.gl-card.is-tapped:has(.gl-buy.is-disabled) {
  border-color: var(--cz-border) !important;
  box-shadow: var(--cz-shadow) !important;
}

/* 加载更多提示 */
.gl-more {
  margin: 0.24rem 0 0;
  text-align: center;
  font-size: 0.13rem;
  color: var(--cz-text-3);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.08rem;
}
.gl-more::before {
  content: "";
  width: 0.14rem;
  height: 0.14rem;
  border-radius: 50%;
  border: 2px solid rgba(0, 82, 217, 0.2);
  border-top-color: var(--cz-primary);
  animation: gl-spin 0.9s linear infinite;
}
@keyframes gl-spin {
  to { transform: rotate(360deg); }
}

/* ============================================================
   域名模式（isDomain）
   ============================================================ */
.gl-domain {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 3.5rem;
  gap: 0.2rem;
  align-items: start;
}
.gl-domain__main,
.gl-domain__side {
  background: var(--cz-card);
  border: 1px solid var(--cz-border);
  border-radius: var(--cz-radius);
  box-shadow: var(--cz-shadow);
  box-sizing: border-box;
}
.gl-domain__main {
  padding: 0.2rem;
}
.gl-domain__side {
  padding: 0.18rem 0.18rem 0;
  position: sticky;
  top: 0.2rem;
}

/* 查询方式 Tab */
.gl-reg-tabs {
  display: inline-flex;
  padding: 0.04rem;
  border-radius: var(--cz-radius-s);
  background: #eef1f7;
  gap: 0.04rem;
  margin-bottom: 0.16rem;
}
.gl-reg-tab {
  padding: 0.06rem 0.2rem;
  border-radius: 6px;
  font-size: 0.13rem;
  color: var(--cz-text-2);
  cursor: pointer;
  transition: all 0.2s ease;
  user-select: none;
}
.gl-reg-tab.is-act {
  background: #fff;
  color: var(--cz-primary);
  font-weight: 600;
}

/* 单个查询 */
.gl-domain-search {
  display: flex;
  gap: 0.1rem;
}
.gl-domain-search .el-input {
  flex: 1;
}
.gl-domain-search .el-input .el-input__inner {
  height: 0.46rem;
  line-height: 0.46rem;
  border-radius: var(--cz-radius-s);
  border-color: var(--cz-border);
  font-size: 0.14rem;
}
.gl-domain-search .el-input .el-input__inner:focus {
  border-color: var(--cz-primary);
}
.suffix-box {
  display: inline-flex;
  align-items: center;
  gap: 0.04rem;
  color: var(--cz-primary);
  font-weight: 600;
  cursor: pointer;
  user-select: none;
}
.suffix-box .select-btn {
  font-size: 0.12rem;
}
.gl-search-button {
  flex-shrink: 0;
  border: none !important;
  border-radius: var(--cz-radius-s);
  height: 0.46rem;
  line-height: 0.46rem;
  padding: 0 0.28rem;
  background: var(--cz-primary) !important;
  color: #fff !important;
  font-size: 0.14rem;
  font-weight: 600;
}
.gl-search-button:hover {
  background: var(--cz-primary-hover) !important;
}
.suffix-list {
  position: absolute;
  z-index: 30;
  top: 0.52rem;
  left: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.06rem;
  max-width: 5rem;
  padding: 0.12rem;
  background: #fff;
  border: 1px solid var(--cz-border);
  border-radius: 10px;
  box-shadow: 0 8px 28px rgba(15, 34, 87, 0.12);
}
.suffix-item {
  padding: 0.04rem 0.12rem;
  border-radius: 6px;
  font-size: 0.13rem;
  color: var(--cz-text-2);
  cursor: pointer;
  border: 1px solid transparent;
  transition: all 0.15s ease;
}
.suffix-item:hover {
  color: var(--cz-primary);
  background: var(--cz-primary-light);
}
.suffix-item.suffix-active {
  color: var(--cz-primary);
  background: var(--cz-primary-light);
  border-color: #c6d6f5;
}

/* 批量查询 */
.gl-batch {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.12rem;
  align-items: stretch;
}
.gl-batch .input-batch textarea {
  border-radius: var(--cz-radius-s);
  border-color: var(--cz-border);
  font-size: 0.13rem;
  line-height: 1.7;
  resize: none;
}
.gl-batch .input-batch textarea:focus {
  border-color: var(--cz-primary);
}
.gl-batch__right {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  align-items: stretch;
  justify-content: center;
}
.gl-upload-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.06rem;
  height: 0.4rem;
  border-radius: var(--cz-radius-s);
  border: 1px dashed #a9c2ef;
  color: var(--cz-primary);
  background: #f8faff;
  font-size: 0.13rem;
  cursor: pointer;
  transition: all 0.2s ease;
}
.gl-upload-btn:hover {
  background: var(--cz-primary-light);
}
.gl-batch .el-button--primary {
  border: none !important;
  border-radius: var(--cz-radius-s);
  background: var(--cz-primary) !important;
  font-weight: 600;
}

/* 查询结果 */
.gl-search-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.12rem;
  font-size: 0.14rem;
  font-weight: 600;
  color: var(--cz-text);
}
.gl-search-fillter {
  display: inline-flex;
  align-items: center;
  gap: 0.04rem;
  font-size: 0.12rem;
  font-weight: 400;
  color: var(--cz-text-3);
  cursor: pointer;
  transition: color 0.2s;
}
.gl-search-fillter:hover,
.gl-search-fillter.is-select {
  color: var(--cz-primary);
}
.gl-fillter-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.06rem;
  margin-bottom: 0.12rem;
}
.gl-fillter-item {
  padding: 0.03rem 0.12rem;
  border-radius: 999px;
  font-size: 0.12rem;
  color: var(--cz-text-2);
  background: #f2f4f9;
  cursor: pointer;
  transition: all 0.15s ease;
}
.gl-fillter-item:hover {
  color: var(--cz-primary);
}
.gl-fillter-item.is-select {
  color: #fff;
  background: var(--cz-primary);
}

.gl-domain-list {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}
.gl-domain-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.14rem;
  padding: 0.13rem 0.15rem;
  border-radius: 10px;
  background: #fbfcfe;
  border: 1px solid #eef1f7;
  transition: all 0.2s ease;
}
.gl-domain-item:hover {
  border-color: #c9d7f2;
}
.gl-domain-item__left {
  display: flex;
  align-items: center;
  gap: 0.1rem;
  min-width: 0;
}
.gl-domain-name {
  font-size: 0.15rem;
  font-weight: 600;
  color: var(--cz-text);
  word-break: break-all;
}
.gl-domain-status {
  flex-shrink: 0;
  font-size: 0.12rem;
  color: var(--cz-danger);
}
.gl-domain-item__right {
  display: flex;
  align-items: center;
  gap: 0.1rem;
  flex-shrink: 0;
}
.gl-premium-type {
  padding: 0.02rem 0.1rem;
  border-radius: 999px;
  font-size: 0.11rem;
  color: #b45309;
  background: #fff7ec;
  border: 1px solid #ffdfb2;
}
.gl-pirce-box {
  cursor: pointer;
  font-size: 0.14rem;
  font-weight: 600;
  color: var(--cz-text);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.gl-pirce-box .el-icon-arrow-down {
  color: var(--cz-text-3);
  font-size: 0.12rem;
  margin-left: 0.04rem;
}
.gl-add-btn {
  border: none !important;
  border-radius: 6px;
  height: 0.34rem;
  line-height: 0.34rem;
  padding: 0 0.16rem;
  background: var(--cz-primary) !important;
  font-size: 0.12rem;
  font-weight: 600;
}
.gl-add-btn:hover {
  background: var(--cz-primary-hover) !important;
}
.gl-add-btn.is-plain,
.gl-add-btn.is-plain:hover {
  background: #e9edf5 !important;
  color: #a9b3c9 !important;
}
.gl-whois-box {
  font-size: 0.12rem;
  color: var(--cz-primary);
  cursor: pointer;
}
.gl-domain-unknown {
  font-size: 0.12rem;
  color: var(--cz-text-3);
}
.price-list {
  font-size: 0.13rem;
  color: var(--cz-text-2);
}
.price-list .price-item {
  display: grid;
  grid-template-columns: 0.8rem 1rem 1rem;
  gap: 0.08rem;
  padding: 0.04rem 0;
  line-height: 1.6;
}
.price-list .price-item:first-child {
  font-weight: 600;
  color: var(--cz-text);
  border-bottom: 1px solid #eef1f7;
}

/* 域名空状态 */
.gl-domain-empty {
  padding: 0.5rem 0 0.3rem;
  text-align: center;
  color: var(--cz-text-3);
  font-size: 0.13rem;
}
.gl-domain-empty svg {
  display: block;
  margin: 0 auto 0.16rem;
  opacity: 0.8;
}

/* 批量查询结果 */
.gl-batch-result {
  margin-top: 0.14rem;
}
.gl-avail-list,
.gl-unavail-list {
  display: flex;
  flex-direction: column;
  gap: 0.08rem;
  margin-bottom: 0.14rem;
}
.gl-batch-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.12rem;
  padding: 0.1rem 0.14rem;
  border-radius: var(--cz-radius-s);
  background: #fbfcfe;
  border: 1px solid #eef1f7;
}
.gl-batch-item .el-checkbox {
  margin-right: 0;
}
.gl-batch-item .el-checkbox__label {
  font-size: 0.13rem;
  color: var(--cz-text);
  padding-left: 0.08rem;
}
.gl-all-check {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.1rem;
  padding: 0.12rem 0.14rem;
  border-radius: var(--cz-radius-s);
  background: #f5f7fb;
  margin-bottom: 0.1rem;
}
.gl-all-check .el-button {
  border: none !important;
  border-radius: 6px;
  background: var(--cz-primary) !important;
  font-size: 0.12rem;
  height: 0.32rem;
  line-height: 0.32rem;
  padding: 0 0.18rem;
}
.gl-unavail-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.13rem;
  color: var(--cz-text-2);
}
.gl-unavail-title .open-text {
  color: var(--cz-primary);
  font-size: 0.12rem;
}
.gl-unavail-item {
  display: flex;
  justify-content: space-between;
  gap: 0.1rem;
  padding: 0.07rem 0.1rem;
  font-size: 0.13rem;
  color: var(--cz-text-2);
}
.gl-unavail-item .unavail-name {
  color: var(--cz-text);
  font-weight: 500;
}
.gl-unavail-item .unavail-reason {
  color: var(--cz-danger);
  font-size: 0.12rem;
}

/* 右侧购物车 */
.gl-car-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 0.14rem;
  border-bottom: 1px solid var(--cz-border);
  font-size: 0.15rem;
  font-weight: 600;
  color: var(--cz-text);
}
.gl-car-title .gl-car-clear {
  display: inline-flex;
  align-items: center;
  gap: 0.04rem;
  font-size: 0.12rem;
  font-weight: 400;
  color: var(--cz-text-3);
  cursor: pointer;
  transition: color 0.2s;
}
.gl-car-title .gl-car-clear:hover {
  color: var(--cz-danger);
}
.gl-car-box {
  max-height: 5.2rem;
  overflow-y: auto;
  padding: 0.06rem 0;
}
.gl-car-box::-webkit-scrollbar {
  width: 4px;
}
.gl-car-box::-webkit-scrollbar-thumb {
  background: #d6dcea;
  border-radius: 4px;
}
.gl-car-no {
  padding: 0.5rem 0;
  text-align: center;
  color: var(--cz-text-3);
  font-size: 0.13rem;
  line-height: 2;
}
.gl-car-no .blue-a-text {
  color: var(--cz-primary);
  cursor: pointer;
}
.gl-car-list {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
}
.gl-car-item {
  padding: 0.13rem;
  border-radius: 10px;
  background: #fbfcfe;
  border: 1px solid #eef1f7;
  transition: border-color 0.2s;
}
.gl-car-item:hover {
  border-color: #c9d7f2;
}
.gl-car-item__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.08rem;
}
.gl-car-name {
  min-width: 0;
}
.gl-car-name .el-checkbox {
  margin-right: 0;
}
.gl-car-name .el-checkbox__label {
  font-size: 0.13rem;
  font-weight: 600;
  color: var(--cz-text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding-left: 0.06rem;
}
.gl-car-del {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.03rem;
  font-size: 0.11rem;
  color: var(--cz-text-3);
  cursor: pointer;
  transition: color 0.2s;
}
.gl-car-del:hover {
  color: var(--cz-danger);
}
.gl-car-item__year {
  margin-top: 0.08rem;
}
.gl-car-item__year .el-select {
  width: 100%;
}
.gl-car-item__year .el-input__inner {
  height: 0.32rem;
  line-height: 0.32rem;
  border-radius: 6px;
  border-color: var(--cz-border);
  font-size: 0.12rem;
}
.gl-car-item__bottom {
  margin-top: 0.08rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.12rem;
  color: var(--cz-text-3);
}
.gl-car-price {
  font-size: 0.15rem;
  font-weight: 700;
  color: var(--cz-price);
  font-variant-numeric: tabular-nums;
}
.gl-car-money {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.08rem;
  padding: 0.13rem 0;
  border-top: 1px solid var(--cz-border);
  margin-top: 0.06rem;
}
.gl-car-money .el-checkbox__label {
  font-size: 0.13rem;
  color: var(--cz-text-2);
}
.gl-car-money .money-text {
  font-size: 0.18rem;
  font-weight: 700;
  color: var(--cz-price);
  font-variant-numeric: tabular-nums;
}
.gl-car-money .original-price {
  display: block;
  text-align: right;
  font-size: 0.12rem;
  color: var(--cz-text-3);
  text-decoration: line-through;
}
.gl-car-settle {
  padding-bottom: 0.16rem;
}
.gl-car-settle .el-button {
  width: 100%;
  border: none !important;
  border-radius: var(--cz-radius-s);
  height: 0.44rem;
  line-height: 0.44rem;
  background: var(--cz-primary) !important;
  font-size: 0.15rem;
  font-weight: 600;
}
.gl-car-settle .el-button:hover {
  background: var(--cz-primary-hover) !important;
}

/* 上传弹窗 */
.up-dialog .el-dialog {
  border-radius: 12px;
  overflow: hidden;
}
.up-dialog .el-dialog__header {
  display: none;
}
.up-dialog .el-dialog__body {
  padding: 0.24rem 0.26rem 0.2rem;
}
.dia-title {
  font-size: 0.17rem;
  font-weight: 600;
  color: var(--cz-text);
}
.dia-concent {
  margin-top: 0.14rem;
}
.up-tips {
  font-size: 0.13rem;
  color: var(--cz-text-2);
  margin-bottom: 0.12rem;
}
.file-box {
  display: flex;
  align-items: center;
  gap: 0.1rem;
}
.file-name {
  flex: 1;
  height: 0.4rem;
  line-height: 0.4rem;
  box-sizing: border-box;
  padding: 0 0.14rem;
  border: 1px solid var(--cz-border);
  border-radius: var(--cz-radius-s);
  font-size: 0.13rem;
  color: var(--cz-text-2);
  background: #fbfcfe;
}
.file-btn {
  flex-shrink: 0;
  height: 0.4rem;
  line-height: 0.4rem;
  padding: 0 0.2rem;
  border-radius: var(--cz-radius-s);
  background: var(--cz-primary);
  color: #fff;
  font-size: 0.13rem;
  cursor: pointer;
}
.dia-foter {
  margin-top: 0.18rem;
  display: flex;
  justify-content: flex-end;
  gap: 0.1rem;
}
.dia-foter .confim-btn {
  border: none;
  border-radius: var(--cz-radius-s);
  background: var(--cz-primary);
  color: #fff;
  height: 0.4rem;
  line-height: 0.4rem;
  padding: 0 0.24rem;
}
.dia-foter .cancel-btn {
  border: 1px solid var(--cz-border);
  border-radius: var(--cz-radius-s);
  background: #fff;
  color: var(--cz-text-2);
  height: 0.4rem;
  line-height: 0.4rem;
  padding: 0 0.24rem;
}

/* ============ 响应式 ============ */
@media screen and (max-width: 1100px) {
  .gl-domain {
    grid-template-columns: 1fr;
  }
  .gl-domain__side {
    position: static;
  }
}

/* ============ 移动端特调（<=768px） ============ */
@media screen and (max-width: 768px) {
  .el-main {
    padding-top: 1.66rem !important;
    padding-left: 0.14rem !important;
    padding-right: 0.14rem !important;
    padding-bottom: 0.3rem !important;
    overflow-x: hidden !important;
  }
  .gl-page {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* Hero 搜索区 */
  .gl-hero {
    padding: 0.14rem 0.14rem !important;
    border-radius: 10px !important;
    margin-bottom: 0.12rem !important;
  }
  .gl-hero__title {
    font-size: 16px !important;
    margin-bottom: 0.1rem !important;
  }
  /* 搜索栏：第一行分类下拉，第二行输入框+按钮同行（按钮不再被拉伸为全宽） */
  .gl-search {
    padding: 6px !important;
    border-radius: 8px !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 6px !important;
  }
  .gl-search__cat {
    width: 100% !important;
    border-bottom: 1px solid var(--cz-border) !important;
    padding-bottom: 6px !important;
    display: flex !important;
  }
  .gl-search__cat .el-select {
    flex: 1 !important;
  }
  .gl-search__cat .el-select .el-input__inner {
    height: 38px !important;
    line-height: 38px !important;
    font-size: 13px !important;
  }
  /* 第二行：输入框 + 查询按钮同行等高 */
  .gl-search__input {
    flex: 1 !important;
    min-width: 0 !important;
  }
  .gl-search__input .el-input__inner {
    height: 38px !important;
    line-height: 38px !important;
    font-size: 13px !important;
  }
  .gl-search__btn {
    height: 38px !important;
    line-height: 38px !important;
    padding: 0 20px !important;
    font-size: 13px !important;
    border-radius: 8px !important;
    flex-shrink: 0 !important;
  }
  /* 移动端下拉弹层：取消 PC 端"大字兜底"，恢复常规尺寸（宽随触发器、限幅） */
  body .el-select-dropdown .el-select-dropdown__item {
    font-size: 14px !important;
    height: 40px !important;
    line-height: 40px !important;
    padding: 0 14px !important;
  }
  .gl-popper.el-select-dropdown {
    max-width: 92vw !important;
  }

  /* 公告栏 */
  .gl-notice {
    padding: 0.08rem 0.12rem 0.08rem 0.36rem !important;
    font-size: 0.11rem !important;
    border-radius: 8px !important;
    margin-bottom: 0.1rem !important;
  }
  .gl-desc {
    margin-top: 0.12rem;
    font-size: 12px;
  }

  /* 商品卡：移动端固定 1 列 */
  .gl-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.12rem;
  }
  .gl-card {
    padding: 0.14rem !important;
    min-height: 0;
    min-width: 0;
    border-radius: 10px !important;
  }
  .gl-card__name {
    font-size: 0.15rem !important;
    margin-top: 0.08rem !important;
  }
  .gl-card__desc {
    padding: 0.02rem 0.1rem 0.04rem !important;
    margin-top: 0.08rem !important;
  }
  .gl-card__desc .gl-spec__row {
    gap: 0.1rem;
    padding: 0.055rem 0;
  }
  .gl-card__desc .gl-spec__label {
    max-width: 44%;
    word-break: break-all;
  }
  .gl-card__foot {
    margin-top: 0.1rem !important;
    padding-top: 0.1rem !important;
    flex-wrap: wrap;
    gap: 0.08rem;
  }
  /* 购买按钮：收窄一档，与价格视觉平衡 */
  .gl-buy {
    height: 38px !important;
    line-height: 1 !important;
    padding: 0 18px !important;
    font-size: 14px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 8px !important;
  }
  /* 价格：卡片底部主视觉，放大突出（高权重选择器，终结同文件多规则竞争） */
  .gl-card .gl-card__price .gl-price,
  .gl-price {
    font-size: 26px !important;
    font-weight: 700 !important;
  }
  .gl-card .gl-card__price .gl-price .gl-price__prefix,
  .gl-price__prefix {
    font-size: 15px !important;
    font-weight: 700 !important;
  }
  .gl-price__cycle {
    font-size: 13px !important;
  }
  /* 状态徽章（在售/售罄）：参照腾讯云做小做轻，只作辅助信息不抢视觉 */
  .gl-badge {
    font-size: 11px !important;
    padding: 2px 8px !important;
    height: 20px !important;
    box-sizing: border-box !important;
    border-radius: 4px !important;
  }
  .gl-badge .dot {
    width: 5px !important;
    height: 5px !important;
  }
  /* 商品标题：卡片主视觉，放大加粗 */
  .gl-card__name {
    font-size: 17px !important;
    font-weight: 600 !important;
  }
  /* 库存徽章：弱化为纯文字，不做胶囊底 */
  .gl-badge--stock {
    background: transparent !important;
    padding: 2px 0 !important;
    height: auto !important;
    color: var(--cz-text-3) !important;
  }
  .gl-badge--stock .dot {
    width: 4px !important;
    height: 4px !important;
  }
  /* 卡片头：徽章行与标题层级拉开 */
  .gl-card__top {
    min-height: 20px !important;
  }
  /* 底部行：价格左、库存+购买右，垂直居中 */
  .gl-card__foot {
    align-items: center !important;
  }
  .gl-card__foot-right {
    align-items: center !important;
    gap: 10px !important;
  }

  /* 域名模式 */
  .gl-domain__main,
  .gl-domain__side {
    padding: 0.14rem !important;
    border-radius: 10px !important;
  }
  .gl-domain-item {
    flex-direction: column;
    align-items: flex-start;
  }
  .gl-domain-item__right {
    width: 100%;
    justify-content: flex-end;
  }
  .gl-domain-search {
    flex-wrap: wrap;
  }
  .gl-domain-search .el-input {
    flex: 1 1 100%;
  }
  .gl-domain-search .el-input .el-input__inner {
    height: 0.4rem;
    line-height: 0.4rem;
  }
  .gl-search-button {
    width: 100%;
    height: 0.4rem;
    line-height: 0.4rem;
  }
  .gl-batch {
    grid-template-columns: 1fr;
  }
  .gl-batch__right {
    flex-direction: row;
  }
  .gl-batch__right .el-button--primary {
    flex: 1;
  }
  /* 右侧域名购物车吸顶取消 */
  .gl-car-box {
    max-height: 3rem;
  }
}

/* ============================================================
   v17 修复：防止结算页底部栏残留到产品列表页
   ============================================================ */
.st-footer,
.st-footer__inner {
  display: none !important;
}

/* 按钮文字垂直居中（flex 方案，避免 line-height 换算偏差） */
.gl-buy,
.gl-search__btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
}