/* 购买页骨架屏 — 贴近真实布局的 shimmer 占位 */

@keyframes buy-skel-shimmer {
  0% { background-position: 100% 0; }
  100% { background-position: -100% 0; }
}

.buy-skel-page {
  pointer-events: none;
  user-select: none;
}

.buy-skel-bar {
  height: 14px;
  border-radius: 4px;
  background: linear-gradient(90deg, #f2f3f5 25%, #e9ebef 37%, #f2f3f5 63%);
  background-size: 400% 100%;
  animation: buy-skel-shimmer 1.4s ease infinite;
}

.buy-skel-bar--lg { height: 16px; }
.buy-skel-bar--chip {
  height: 32px;
  border-radius: 4px;
}
.buy-skel-bar--tag {
  width: 52px;
  height: 20px;
  border-radius: 4px;
  flex-shrink: 0;
}
.buy-skel-bar--price { height: 26px; }
.buy-skel-bar--icon {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  flex-shrink: 0;
}
.buy-skel-bar--btn {
  width: 100%;
  height: 40px;
  margin-top: 12px;
  border-radius: 4px;
}

.buy-skel-left {
  border-radius: 8px;
  border: 1px solid #e4e7ed;
  background: #fff;
  overflow: hidden;
}

.buy-skel-intro {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 14px;
  margin-bottom: 16px;
  border-radius: 4px;
  background: #f4f4f5;
  border: 1px solid #e9e9eb;
}

.buy-skel-intro-lines {
  flex: 1;
  min-width: 0;
  padding-top: 2px;
}

.buy-skel-section {
  border-bottom: 1px solid #ebeef5;
  padding-bottom: 22px;
  margin-bottom: 22px;
}

.buy-skel-section--last {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}

.buy-skel-row {
  display: flex;
  align-items: flex-start;
}

.buy-skel-label {
  width: 64px;
  flex-shrink: 0;
  padding-top: 9px;
}

.buy-skel-type-list {
  flex: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.buy-skel-region-grid {
  flex: 1;
  width: 100%;
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.buy-skel-region-card {
  display: block;
  height: 44px;
  min-height: 44px;
  padding: 0;
  border: 1px solid #ebedf0;
  border-radius: 0;
  background: linear-gradient(90deg, #f2f3f5 25%, #e9ebef 37%, #f2f3f5 63%);
  background-size: 400% 100%;
  animation: buy-skel-shimmer 1.4s ease infinite;
  box-sizing: border-box;
}

/* 区域内条仅作兼容，默认隐藏，卡片本身已是实心块 */
.buy-skel-region-card > .buy-skel-bar {
  display: none;
}

.buy-skel-module-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
}

.buy-skel-sku-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.buy-skel-sku-card {
  padding: 14px 16px;
  border: 1px solid #e4e7ed;
  border-radius: 6px;
  background: #fff;
}

.buy-skel-sku-top,
.buy-skel-sku-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.buy-skel-sku-bottom {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px dashed #e4e7ed;
  align-items: flex-end;
}

.buy-skel-config {
  border-radius: 8px;
  border: 1px solid #e4e7ed;
  background: #fff;
  overflow: hidden;
  position: sticky;
  top: 0;
}

.buy-skel-config .el-card__header,
.buy-skel-config > .el-card__header {
  padding: 14px 20px;
  background: #fafbfc;
  border-bottom: 1px solid #ebeef5;
}

.buy-skel-config-title {
  display: flex;
  align-items: center;
  gap: 8px;
}

.buy-skel-spec-list {
  padding: 16px 20px 8px;
}

.buy-skel-spec-item {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.buy-skel-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #dcdfe6;
  flex-shrink: 0;
}

.buy-skel-price-box {
  padding: 14px 20px 18px;
  border-top: 1px solid #ebeef5;
  background: linear-gradient(180deg, #fafcff 0%, #fff 100%);
}

.buy-skel-price-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

@media (max-width: 1100px) {
  .buy-skel-region-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .buy-skel-config {
    position: static;
  }
}

@media (max-width: 768px) {
  .buy-skel-row {
    flex-direction: column;
  }
  .buy-skel-label {
    width: 100%;
    padding-top: 0;
    margin-bottom: 8px;
  }
  .buy-skel-region-grid {
    width: 100%;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
  }
  .buy-skel-sku-grid {
    grid-template-columns: 1fr;
  }
  .buy-skel-region-card {
    height: 40px;
    min-height: 40px;
    padding: 0;
  }
}
