$theme-color: #ff6b35;
$text-color: #333;
$text-color-light: #666;
$text-color-lighter: #999;
$border-color: #eee;

.flex {
  display: flex;
}
.flex-a-c {
  align-items: center;
}
.flex-j-sb {
  justify-content: space-between;
}

.live-detail-page {
  display: flex;
  flex-direction: column;
  height: 100vh;
  overflow: hidden;
  background: #fff;
}

.live-container {
  width: 100%;
  background: #000;
}

.live-box {
  position: relative;
  width: 100%;
  overflow: hidden;

  &.layout-horizontal {
    height: 420rpx;
  }

  &.layout-triple {
    height: 560rpx;
  }

  > video,
  > live-player,
  > .stream-player {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }
}

.live-cover-wrap,
.cover-wrap {
  position: absolute;
  inset: 0;
  z-index: 2;
}

.live-cover,
.cover-img {
  width: 100%;
  height: 100%;
}

.cover-mask {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.45);
}

.status-tag {
  padding: 12rpx 32rpx;
  border-radius: 100rpx;
  font-size: 28rpx;
  color: #fff;
  background: rgba(255, 255, 255, 0.2);
  margin-bottom: 24rpx;

  &.living {
    background: linear-gradient(90deg, #ff6b35, #ff9f28);
  }
  &.pending {
    background: rgba(96, 98, 102, 0.8);
  }
  &.paused {
    background: rgba(255, 159, 40, 0.85);
  }
  &.ended {
    background: rgba(96, 98, 102, 0.6);
  }
}

.tips-text {
  font-size: 26rpx;
  color: rgba(255, 255, 255, 0.85);
  margin-top: 8rpx;
}

.nav-back {
  position: fixed;
  top: calc(var(--status-bar-height, 44px) + 12rpx);
  left: 24rpx;
  z-index: 100;
  width: 64rpx;
  height: 64rpx;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
}

.bottom-container {
  flex: 1;
  display: flex;
  flex-direction: column;
  position: relative;
  background: #fff;
  min-height: 0;
  overflow: hidden;

  &.has-chat-bar {
    padding-bottom: calc(104rpx + env(safe-area-inset-bottom));
  }
}

.tab-container {
  background: #fff;
  border-bottom: 1rpx solid $border-color;
}

.tab-items {
  display: flex;
}

.tab-item {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 88rpx;
  font-size: 30rpx;
  color: $text-color-light;
  position: relative;

  &.active {
    color: $theme-color;
    font-weight: 600;

    &::after {
      content: "";
      position: absolute;
      bottom: 0;
      left: 50%;
      transform: translateX(-50%);
      width: 48rpx;
      height: 4rpx;
      border-radius: 2rpx;
      background: $theme-color;
    }
  }
}

.message-container {
  flex: 1;
  min-height: 0;
  height: 0;
  overflow: hidden;
}

.message-scroll,
.live-intro-scroll {
  height: 100%;
  padding: 0 24rpx;
  box-sizing: border-box;
}

.message-item {
  display: flex;
  align-items: flex-start;
  padding: 20rpx 0;
  border-bottom: 1rpx solid #f5f5f5;
}

.user-avatar {
  width: 72rpx;
  height: 72rpx;
  border-radius: 50%;
  flex-shrink: 0;
  margin-right: 16rpx;
  background: #f0f0f0;
}

.message-content {
  flex: 1;
  min-width: 0;
}

.username {
  font-size: 26rpx;
  color: $text-color-light;
  margin-bottom: 8rpx;
  display: block;
}

.message-text {
  font-size: 28rpx;
  color: $text-color;
  word-break: break-all;
  line-height: 1.5;
}

.floating-right-container {
  position: absolute;
  right: 24rpx;
  bottom: 180rpx;
  z-index: 50;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 24rpx;
}

.floating-recommend-card {
  width: 260rpx;
  background: rgba(255, 255, 255, 0.95);
  border-radius: 20rpx;
  padding: 12rpx;
  box-shadow: 0 8rpx 32rpx rgba(0, 0, 0, 0.12);
}

.floating-recommend-img-wrap {
  width: 100%;
  height: 236rpx;
  border-radius: 14rpx;
  overflow: hidden;
  position: relative;
  background: #f8f8f8;
}

.floating-recommend-img {
  width: 100%;
  height: 100%;
}

.floating-recommend-tag {
  position: absolute;
  top: 0;
  left: 0;
  background: linear-gradient(135deg, #ff3b30, #ff2d55);
  color: #fff;
  font-size: 20rpx;
  padding: 6rpx 14rpx;
  border-radius: 0 0 14rpx 0;
  font-weight: 700;
}

.floating-recommend-info {
  display: flex;
  flex-direction: column;
  gap: 6rpx;
  padding: 0 4rpx 4rpx;
}

.floating-recommend-name {
  font-size: 26rpx;
  color: #1c1c1e;
  font-weight: 600;
  margin-top: 12rpx;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.floating-recommend-price {
  color: #ff3b30;
  font-weight: 700;
  font-size: 34rpx;
  margin-top: 6rpx;
}

.cart-btn {
  display: flex;
  justify-content: flex-end;
  flex-shrink: 0;
}

.cart-btn-inner {
  width: 96rpx;
  height: 96rpx;
  background: linear-gradient(135deg, #ff6b35, #ff9f28);
  border-radius: 50%;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8rpx 24rpx rgba(255, 107, 53, 0.35);
  transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);

  &:active {
    transform: scale(0.92);
  }
}

.bottom-actions {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 60;
  display: flex;
  align-items: center;
  padding: 16rpx 24rpx;
  padding-bottom: calc(16rpx + env(safe-area-inset-bottom));
  background: #fff;
  border-top: 1rpx solid #f0f0f0;
}

.input-box {
  flex: 1;
  height: 72rpx;
  background: #f5f5f5;
  border-radius: 36rpx;
  padding: 0 24rpx;
  margin-right: 16rpx;
  display: flex;
  align-items: center;
}

.input-content {
  width: 100%;
  font-size: 28rpx;
  color: $text-color;
}

.chat-coupon-btn {
  width: 72rpx;
  height: 72rpx;
  margin-right: 16rpx;
  border-radius: 50%;
  background: #fff5f0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.send-btn-small {
  padding: 0 28rpx;
  height: 72rpx;
  line-height: 72rpx;
  border-radius: 36rpx;
  font-size: 28rpx;
  color: #fff;
  background: linear-gradient(90deg, #ff6b35, #ff9f28);

  &.disabled {
    opacity: 0.5;
  }
}

.live-intro-wrapper {
  padding: 24rpx;
}

.live-title {
  font-size: 36rpx;
  font-weight: 600;
  color: $text-color;
  margin-bottom: 16rpx;
}

.live-time {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 26rpx;
  color: $text-color-light;
  margin-bottom: 24rpx;
}

.live-intro-title {
  font-size: 28rpx;
  font-weight: 600;
  color: $text-color;
  margin-bottom: 12rpx;
  padding-top: 24rpx;
  border-top: 1rpx solid $border-color;
}

.live-intro-content-text {
  font-size: 26rpx;
  color: $text-color-light;
  line-height: 1.6;
}

.dialog-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 999;
}

.goods-list-container,
.coupon-list-container {
  width: 100%;
  max-height: 75vh;
  background: #f7f8fa;
  border-radius: 32rpx 32rpx 0 0;
  position: absolute;
  bottom: 0;
  display: flex;
  flex-direction: column;
}

.coupon-list-container {
  max-height: 80vh;
  box-shadow: 0 -10rpx 40rpx rgba(0, 0, 0, 0.08);
}

.goods-list-header,
.coupon-list-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 32rpx 40rpx;
  background: #fff;
  border-radius: 32rpx 32rpx 0 0;
}

.coupon-list-header {
  padding: 40rpx 40rpx 32rpx;
  background: #f7f8fa;
  border-bottom: 1rpx solid #eceef2;
}

.goods-list-title,
.coupon-list-title {
  font-size: 34rpx;
  font-weight: 700;
  color: #333;
}

.coupon-list-title {
  font-size: 36rpx;
  font-weight: 800;
  color: #111;
  letter-spacing: 1rpx;
}

.goods-list-close,
.coupon-list-close {
  font-size: 36rpx;
  color: #999;
  padding: 8rpx;
}

.coupon-list-close {
  width: 56rpx;
  height: 56rpx;
  padding: 0;
  background: #e5e6eb;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 28rpx;
  color: #666;
  font-weight: bold;
  line-height: 1;

  &:active {
    background: #d5d6db;
  }
}

.goods-list-scroll,
.coupon-list-scroll {
  flex: 1;
  max-height: calc(75vh - 110rpx);
}

.goods-list {
  padding: 24rpx;
}

.goods-item-row {
  margin-bottom: 24rpx;
}

.goods-item-content {
  display: flex;
  padding: 24rpx;
  background: #fff;
  border-radius: 24rpx;
  box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.03);
}

.goods-image-container {
  width: 200rpx;
  height: 200rpx;
  border-radius: 16rpx;
  overflow: hidden;
  background: #f5f5f5;
  flex-shrink: 0;
}

.goods-image {
  width: 100%;
  height: 100%;
}

.goods-right {
  flex: 1;
  margin-left: 24rpx;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.goods-name {
  font-size: 28rpx;
  color: #333;
  font-weight: 600;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.hot-tag {
  display: inline-block;
  background: linear-gradient(135deg, #ff7a18, #ffb11b);
  color: #fff;
  font-size: 20rpx;
  padding: 4rpx 12rpx;
  border-radius: 8rpx;
  margin-right: 8rpx;
}

.goods-bottom {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-top: 16rpx;
}

.current-price {
  color: #ff4b2b;
  font-size: 36rpx;
  font-weight: 700;
}

.price-symbol {
  font-size: 24rpx;
}

.original-price-text {
  font-size: 24rpx;
  color: #999;
  text-decoration: line-through;
}

.goods-btn {
  padding: 12rpx 32rpx;
  border-radius: 32rpx;
  font-size: 26rpx;
  font-weight: 600;

  &.btn-active {
    background: linear-gradient(135deg, #ff4b2b, #ff416c);
    color: #fff;
  }

  &.btn-sold-out {
    background: #f0f0f0;
    color: #999;
  }
}

.goods-empty,
.coupon-empty {
  text-align: center;
  padding: 100rpx 0;
  font-size: 28rpx;
  color: #999;
}

.coupon-empty {
  padding: 120rpx 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24rpx;
  color: #8a8f99;
  font-weight: 500;
}

.coupon-list-inner {
  padding: 24rpx 32rpx 48rpx;
}

.coupon-card {
  display: flex;
  align-items: stretch;
  background: #fff;
  border-radius: 24rpx;
  margin-bottom: 24rpx;
  position: relative;
  box-shadow: 0 8rpx 24rpx rgba(0, 0, 0, 0.06);
  border: 1rpx solid #f0f1f5;
  overflow: hidden;
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease;

  &:active {
    transform: scale(0.98);
  }

  &::before,
  &::after {
    content: "";
    position: absolute;
    width: 32rpx;
    height: 32rpx;
    background: #f7f8fa;
    border-radius: 50%;
    left: 204rpx;
    z-index: 2;
    box-shadow: inset 0 0 0 1rpx #eceef2;
  }

  &::before {
    top: -16rpx;
  }

  &::after {
    bottom: -16rpx;
  }
}

.coupon-card-left {
  width: 220rpx;
  min-height: 180rpx;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #ff3b30;
  position: relative;
  background: linear-gradient(135deg, #fff5f5 0%, #ffecec 100%);
}

.coupon-price-symbol {
  font-size: 32rpx;
  font-weight: 700;
  margin-right: 4rpx;
}

.coupon-price-value {
  font-size: 56rpx;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -1rpx;
}

.coupon-divider {
  position: absolute;
  left: 220rpx;
  top: 24rpx;
  bottom: 24rpx;
  width: 0;
  border-left: 2rpx dashed #e5e6eb;
  z-index: 1;
}

.coupon-card-right {
  flex: 1;
  padding: 32rpx 32rpx 32rpx 40rpx;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20rpx;
  background: #fff;
}

.coupon-info {
  display: flex;
  flex-direction: column;
  gap: 12rpx;
  flex: 1;
  min-width: 0;
}

.coupon-card-name {
  font-size: 30rpx;
  color: #111;
  font-weight: 700;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.coupon-card-desc {
  font-size: 24rpx;
  color: #8a8f99;
  font-weight: 500;
}

.coupon-claim-btn {
  flex-shrink: 0;
  padding: 16rpx 32rpx;
  border-radius: 40rpx;
  font-size: 26rpx;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(135deg, #ff6b35, #ff4b2b);
  box-shadow: 0 8rpx 16rpx rgba(255, 75, 43, 0.25);

  &.disabled {
    background: #eceef2;
    color: #8a8f99;
    box-shadow: none;
    border: 1rpx solid #dfe1e6;
  }
}

.loading-wrap {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 200;
  background: rgba(0, 0, 0, 0.3);
}

// 售罄置灰
.goods-item-row.is-sold-out,
.product-showcase.is-sold-out,
.floating-recommend-card.is-sold-out {
  opacity: 0.55;
  filter: grayscale(0.85);
  pointer-events: none;
}

.current-price.price-sold-out {
  color: #999 !important;
}

// 左上角优惠券浮标
@keyframes coupon-shake {
  0%,
  100% {
    transform: rotate(0deg);
  }
  10% {
    transform: rotate(-8deg);
  }
  20% {
    transform: rotate(8deg);
  }
  30% {
    transform: rotate(-6deg);
  }
  40% {
    transform: rotate(6deg);
  }
  50% {
    transform: rotate(-3deg);
  }
  60% {
    transform: rotate(3deg);
  }
  70%,
  100% {
    transform: rotate(0deg);
  }
}

.coupon-float-btn {
  position: fixed;
  top: calc(var(--status-bar-height, 44px) + 88rpx);
  left: 24rpx;
  z-index: 100;
  width: 72rpx;
  height: 72rpx;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 8rpx 24rpx rgba(255, 107, 53, 0.25);
  display: flex;
  align-items: center;
  justify-content: center;

  &.shake-animation {
    animation: coupon-shake 1.2s ease-in-out infinite;
    animation-delay: 0.5s;
  }
}

.coupon-float-btn-horizontal {
  top: calc(var(--status-bar-height, 44px) + 12rpx);
  left: 100rpx;
}

.recommend-coupon-overlay {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 48rpx 32rpx;
  box-sizing: border-box;
}

.recommend-coupon-container.white-theme {
  width: 600rpx;
  max-width: 100%;
  background: #fff;
  border-radius: 32rpx;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 24rpx 64rpx rgba(0, 0, 0, 0.15);
  animation: coupon-pop-up 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
}

@keyframes coupon-pop-up {
  0% {
    transform: scale(0.8) translateY(40rpx);
    opacity: 0;
  }
  100% {
    transform: scale(1) translateY(0);
    opacity: 1;
  }
}

.rc-header {
  position: relative;
  padding: 48rpx 0 32rpx;
  text-align: center;
}

.rc-title {
  font-size: 36rpx;
  font-weight: 700;
  color: #333;
}

.rc-close {
  position: absolute;
  top: 24rpx;
  right: 24rpx;
  width: 48rpx;
  height: 48rpx;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 32rpx;
  color: #999;
}

.rc-body {
  padding: 0 40rpx 40rpx;
}

.rc-ticket-box {
  background: #fff5f5;
  border: 2rpx solid #ffe0e0;
  border-radius: 16rpx;
  display: flex;
  height: 180rpx;
  overflow: hidden;
  position: relative;
}

.rc-ticket-left {
  width: 180rpx;
  flex-shrink: 0;
  display: flex;
  align-items: baseline;
  justify-content: center;
  color: #ff4b2b;
  background: linear-gradient(135deg, #fff5f5 0%, #ffecec 100%);
  border-right: 2rpx dashed #ffcaca;
  position: relative;
}

.rc-symbol {
  font-size: 32rpx;
  font-weight: 600;
  margin-right: 4rpx;
}

.rc-value {
  font-size: 56rpx;
  font-weight: 800;
  line-height: 180rpx;
}

.rc-ticket-right {
  flex: 1;
  padding: 0 24rpx;
  display: flex;
  align-items: center;
  background: #fff;
}

.rc-name {
  font-size: 30rpx;
  color: #111;
  font-weight: 700;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.4;
}

.rc-footer {
  padding: 0 40rpx 48rpx;
}

.rc-btn {
  width: 100%;
  height: 88rpx;
  border-radius: 44rpx;
  background: linear-gradient(135deg, #ff4b2b, #ff416c);
  color: #fff;
  font-size: 32rpx;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8rpx 24rpx rgba(255, 65, 108, 0.25);

  &.disabled {
    background: #eceef2;
    color: #8a8f99;
    box-shadow: none;
    border: 1rpx solid #dfe1e6;
  }
}
