:root {
  --q-color-primary: #1976D2;
  --q-color-pink: #E91E63;
  --q-color-blue: #2196F3;
}

html {
  color: #606266;
}

body {
  font-size: 12px;
  background: #f0f1f5;
  font-family: "Arial", "-apple-system", "Helvetica Neue", Helvetica, Arial, sans-serif;
}

/* 禁止图片被选中 */
img {
  width: 100%;
  user-select: none;
  -webkit-user-select: none; /* Safari */
  -moz-user-select: none; /* Firefox */
  display: block;
}

.container {
  width: 1280px !important;
  margin: 0 auto;
}

@media (max-width: 1280px) {
  .container {
    width: 100%!important;
  }
}

.fixed-full-width {
  width: 100vw !important;
}

.fixed-full-height {
  height: 100vh !important;
}

.col-fixed {
  flex: auto;
}

.grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
}

.grid .full-col {
  grid-column: 1 / -1;
}

.grid .full-col-1 {
  grid-column: span 1;
}

.grid .full-col-2 {
  grid-column: span 2;
}

.grid .full-col-3 {
  grid-column: span 3;
}

.grid .full-col-4 {
  grid-column: span 4;
}

.grid .full-col-5 {
  grid-column: span 5;
}

.grid .full-col-6 {
  grid-column: span 6;
}

.grid-xs {
  grid-template-columns: repeat(auto-fit, minmax(6rem, 1fr));
}

.grid-sm {
  grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
}

.grid-md {
  grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
}

.grid-lg {
  grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
}

.grid-xl {
  grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));
}

.grid-cols-1 {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}

.grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.grid-cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.grid-cols-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.grid-cols-5 {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.grid-cols-6 {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.grid-cols-7 {
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.grid-cols-8 {
  grid-template-columns: repeat(8, minmax(0, 1fr));
}

.grid-cols-9 {
  grid-template-columns: repeat(9, minmax(0, 1fr));
}

.grid-cols-10 {
  grid-template-columns: repeat(10, minmax(0, 1fr));
}

.grid-cols-11 {
  grid-template-columns: repeat(11, minmax(0, 1fr));
}

.grid-cols-12 {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}

@media (max-width: 30rem) {

  .full-col-1,
  .full-col-2,
  .full-col-3,
  .full-col-4,
  .full-col-5,
  .full-col-6 {
    grid-column: 1 / -1 !important;
  }
}

@media (min-width: 30rem) and (max-width: 60rem) {

  .grid-lg .full-col-2,
  .grid-xl .full-col-2 {
    grid-column: 1 / -1 !important;
  }

  .full-col-3,
  .full-col-4,
  .full-col-5,
  .full-col-6 {
    grid-column: 1 / -1 !important;
  }
}

@media (min-width: 60rem) and (max-width: 100rem) {

  .grid-md .full-col-5,
  .grid-md .full-col-6,
  .grid-lg .full-col-5,
  .grid-lg .full-col-6,
  .grid-xl .full-col-5,
  .grid-xl .full-col-6 {
    grid-column: 1 / -1 !important;
  }

  .grid-lg .full-col-4,
  .grid-xl .full-col-4 {
    grid-column: 1 / -1 !important;
  }

  .grid-xl .full-col-3 {
    grid-column: 1 / -1 !important;
  }
}

@media (min-width: 100rem) and (max-width: 150rem) {
  .grid-xl .full-col-5,
  .grid-xl .full-col-6 {
    grid-column: 1 / -1 !important;
  }
}

.gap {
  gap: 1rem;
}

.gap-xs {
  gap: 0.25rem;
}

.gap-sm {
  gap: 0.5rem;
}

.gap-md {
  gap: 1.5rem;
}

.gap-lg {
  gap: 2rem;
}

.gap-xl {
  gap: 2.5rem;
}

.item-label {
  display: flex;
  align-items: center;
  min-width: 5rem;
}

.item-label.text-left {
  text-align: left;
  justify-content: start;
}

.item-label.text-right {
  text-align: right;
  justify-content: end;
}

.item-size {
  min-width: 5rem;
}

.item-size-xs {
  min-width: 2rem;
}

.item-size-sm {
  min-width: 4rem;
}

.item-size-md {
  min-width: 6rem;
}

.item-size-lg {
  min-width: 8rem;
}

.item-size-xl {
  min-width: 10rem;
}

.item-value {
  display: flex;
  align-items: center;
  width: 12rem;
}

.item-must:before {
  content: '*';
  color: red;
}

.font-xs {
  font-size: 0.5rem;
}

.font-sm {
  font-size: 0.75rem;
}

.font-md {
  font-size: 1.25rem;
}

.font-lg {
  font-size: 1.5rem;
}

.font-xl {
  font-size: 2rem;
}

.radius {
  overflow: hidden;
  border-radius: 1rem;
}

.radius-xs {
  overflow: hidden;
  border-radius: 0.25rem;
}

.radius-sm {
  overflow: hidden;
  border-radius: 0.5rem;
}

.radius-md {
  overflow: hidden;
  border-radius: 1.25rem;
}

.radius-lg {
  overflow: hidden;
  border-radius: 1.5rem;
}

.radius-xl {
  overflow: hidden;
  border-radius: 2rem;
}

.border-none {
  border: none !important;
}

.triangle-up {
  width: 0;
  height: 0;
  border-left: 50px solid transparent;
  border-right: 50px solid transparent;
  border-bottom: 100px solid #165DFF;
}

/* 方法2：向上的三角形 */
.triangle-down {
  width: 0;
  height: 0;
  border-left: 50px solid transparent;
  border-right: 50px solid transparent;
  border-top: 100px solid #36CFC9;
}

/* 方法3：向左的三角形 */
.triangle-right {
  width: 0;
  height: 0;
  border-top: 50px solid transparent;
  border-bottom: 50px solid transparent;
  border-left: 100px solid #FAAD14;
}

/* 方法4：向右的三角形 */
.triangle-left {
  width: 0;
  height: 0;
  border-top: 50px solid transparent;
  border-bottom: 50px solid transparent;
  border-right: 100px solid #FF4D4F;
}

.shadow-box {
  box-shadow: 0 1px 5px rgba(0, 0, 0, 0.2), 0 2px 2px rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12)
}

/* 上划线 */
.text-line-through {
  text-decoration: overline;
}

/* 删除线 */
.text-line-through {
  text-decoration: line-through;
}

/* 下划线 */
.text-underline {
  text-decoration: underline;
}

/* 波浪線 */
.custom-underline {
  text-decoration: underline;
  text-decoration-color: #ff0000; /* 颜色 */
  text-decoration-style: wavy; /* 样式：solid(实线)、dashed(虚线)、dotted(点线)、wavy(波浪线) */
  text-decoration-thickness: 2px; /* 厚度 */
  text-underline-offset: 4px; /* 下划线偏移量（距离文本的距离） */
}

/* 边框 */
.border {
  border: 1px solid #333;
}

.border-top {
  border-top: 1px solid #333;
}

.border-right {
  border-right: 1px solid #333;
}

.border-bottom {
  border-bottom: 1px solid #333;
}

.border-left {
  border-left: 1px solid #333;
}

/* 文本省略 */
.ellipsis-1, .ellipsis-2, .ellipsis-3 {
  /* 核心样式：限制行数并显示省略号 */
  display: -webkit-box;
  -webkit-box-orient: vertical; /* 设置盒子内子元素的排列方式 */
  /* 超出部分隐藏 */
  overflow: hidden;
  /* 可选：设置行高，确保多行显示正常 */
  line-height: 1.5;
  /* 可选：设置文本对齐方式 */
  text-align: left;
}

.ellipsis-1 {
  -webkit-line-clamp: 1; /* 限制显示的行数 */
}

.ellipsis-2 {
  -webkit-line-clamp: 2; /* 限制显示的行数 */
}

.ellipsis-3 {
  -webkit-line-clamp: 3; /* 限制显示的行数 */
}

.expand {
  transform: scale(1.5);
}

.expand-xs {
  transform: scale(1.1);
}

.expand-sm {
  transform: scale(1.3);
}

.expand-md {
  transform: scale(1.8);
}

.expand-lg {
  transform: scale(2);
}

.expand-xl {
  transform: scale(2.5);
}

/* 定义角度变量，从30°到360°，每次递增30° */
:root {
  --angle-30: 30deg;
  --angle-60: 60deg;
  --angle-90: 90deg;
  --angle-120: 120deg;
  --angle-150: 150deg;
  --angle-180: 180deg;
  --angle-210: 210deg;
  --angle-240: 240deg;
  --angle-270: 270deg;
  --angle-300: 300deg;
  --angle-330: 330deg;
  --angle-360: 360deg;
}

/* 使用循环逻辑生成各个角度的样式类 */
/* 旋转效果示例 */
.rotate-30 {
  transform: rotate(var(--angle-30));
}

.rotate-60 {
  transform: rotate(var(--angle-60));
}

.rotate-90 {
  transform: rotate(var(--angle-90));
}

.rotate-120 {
  transform: rotate(var(--angle-120));
}

.rotate-150 {
  transform: rotate(var(--angle-150));
}

.rotate-180 {
  transform: rotate(var(--angle-180));
}

.rotate-210 {
  transform: rotate(var(--angle-210));
}

.rotate-240 {
  transform: rotate(var(--angle-240));
}

.rotate-270 {
  transform: rotate(var(--angle-270));
}

.rotate-300 {
  transform: rotate(var(--angle-300));
}

.rotate-330 {
  transform: rotate(var(--angle-330));
}

.rotate-360 {
  transform: rotate(var(--angle-360));
}

/* 角度相关的其他样式示例 - 渐变角度 */
.gradient-30 {
  background: linear-gradient(var(--angle-30), #ff0000, #00ff00);
}

.gradient-60 {
  background: linear-gradient(var(--angle-60), #ff0000, #00ff00);
}

.gradient-90 {
  background: linear-gradient(var(--angle-90), #ff0000, #00ff00);
}

.gradient-120 {
  background: linear-gradient(var(--angle-120), #ff0000, #00ff00);
}

.gradient-150 {
  background: linear-gradient(var(--angle-150), #ff0000, #00ff00);
}

.gradient-180 {
  background: linear-gradient(var(--angle-180), #ff0000, #00ff00);
}

.gradient-210 {
  background: linear-gradient(var(--angle-210), #ff0000, #00ff00);
}

.gradient-240 {
  background: linear-gradient(var(--angle-240), #ff0000, #00ff00);
}

.gradient-270 {
  background: linear-gradient(var(--angle-270), #ff0000, #00ff00);
}

.gradient-300 {
  background: linear-gradient(var(--angle-300), #ff0000, #00ff00);
}

.gradient-330 {
  background: linear-gradient(var(--angle-330), #ff0000, #00ff00);
}

.gradient-360 {
  background: linear-gradient(var(--angle-360), #ff0000, #00ff00);
}

.safe-area-container {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  /* 关键：将按钮放置在安全区域之上 */
  padding-bottom: constant(safe-area-inset-bottom); /* 适用于 iOS 11.0 - 11.2 */
  padding-bottom: env(safe-area-inset-bottom); /* 适用于 iOS 11.2+ */
  /* 为了兼容性，两者都写上。CSS的层叠规则会让后一条声明在支持时覆盖前一条 */
}

.position-top {
  top: 0;
}

.position-bottom {
  bottom: 0;
}

.position-left {
  left: 0;
}

.position-right {
  right: 0;
}

.goods-specification {
  position: relative;
}

.goods-specification:before {
  content: '';
  position: absolute;
  top: 0;
  height: 4px;
  width: 100%;
  background-image: linear-gradient(to right,
  #8c9eff 0%, #536dfe 25%,
  #FFF 25%, #FFF 50%,
  #ff80ab 50%, #ff4081 75%,
  #FFF 75%, #FFF 100%);
  background-size: 20px 4px;
  background-repeat: repeat-x;
}


.home-icon {
  height: 4rem;
}

.home-icon img {
  height: 100%;
  width: auto;
}
