/* ============================================
   早安电台 — 全局样式
   品牌主色: #FF9D42  背景: #F6F6F6
   ============================================ */

/* TDesign 主题变量覆盖 */
page {
  /* 品牌色 */
  --td-brand-color: #FF9D42;
  --td-brand-color-light: rgba(255, 157, 66, 0.1);
  --td-brand-color-focus: rgba(255, 157, 66, 0.2);
  --td-brand-color-active: #E88A35;
  --td-brand-color-disabled: rgba(255, 157, 66, 0.4);

  /* 成功色（森林绿） */
  --td-success-color: #2D5A27;
  --td-success-color-light: rgba(45, 90, 39, 0.1);

  /* 警告色 */
  --td-warning-color: #E34D59;

  /* 圆角 */
  --td-radius-default: 16rpx;
  --td-radius-large: 32rpx;
  --td-radius-extra-large: 40rpx;
  --td-radius-round: 999rpx;

  /* 自定义品牌变量 */
  --color-primary: #FF9D42;
  --color-primary-light: rgba(255, 157, 66, 0.08);
  --color-primary-bg: rgba(255, 157, 66, 0.12);
  --color-success: #2D5A27;
  --color-warning: #E34D59;
  --color-bg-page: #F6F6F6;
  --color-bg-card: #FFFFFF;
  --color-bg-container: #FEFEFE;
  --color-text-primary: #333333;
  --color-text-secondary: #666666;
  --color-text-placeholder: #999999;
  --color-text-disabled: #CCCCCC;
  --color-border: #EEEEEE;
  --color-border-light: #F5F5F5;

  /* 页面背景 */
  background-color: var(--color-bg-page);
  font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue',
               'PingFang SC', 'Microsoft YaHei', sans-serif;
  font-size: 28rpx;
  color: var(--color-text-primary);
  line-height: 1.6;
  box-sizing: border-box;
}

/* ========== 通用工具类 ========== */

/* Flex */
.flex { display: flex; }
.flex-col { display: flex; flex-direction: column; }
.flex-row { display: flex; flex-direction: row; }
.flex-wrap { flex-wrap: wrap; }
.flex-1 { flex: 1; }
.flex-shrink-0 { flex-shrink: 0; }
.items-center { align-items: center; }
.items-start { align-items: flex-start; }
.items-end { align-items: flex-end; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.justify-around { justify-content: space-around; }
.justify-end { justify-content: flex-end; }
.self-center { align-self: center; }

/* 间距 */
.gap-sm { gap: 16rpx; }
.gap-md { gap: 24rpx; }
.gap-lg { gap: 32rpx; }

/* 文字 */
.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }
.text-bold { font-weight: 700; }
.text-medium { font-weight: 500; }
.text-xs { font-size: 20rpx; }
.text-sm { font-size: 24rpx; }
.text-base { font-size: 28rpx; }
.text-lg { font-size: 32rpx; }
.text-xl { font-size: 36rpx; }
.text-2xl { font-size: 44rpx; }
.text-3xl { font-size: 56rpx; }
.text-primary { color: var(--color-primary); }
.text-secondary { color: var(--color-text-secondary); }
.text-placeholder { color: var(--color-text-placeholder); }
.text-white { color: #FFFFFF; }

/* 单行省略 */
.ellipsis {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* 多行省略 */
.line-clamp-1 {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
}
.line-clamp-2 {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

/* ========== 卡片 ========== */
.card {
  background: var(--color-bg-card);
  border-radius: var(--td-radius-extra-large);
  padding: 32rpx;
  box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.03);
  border: 1rpx solid var(--color-border-light);
}

/* ========== 按钮 ========== */
.btn-primary {
  background: var(--color-primary);
  color: #FFFFFF;
  border: none;
  border-radius: var(--td-radius-round);
  padding: 20rpx 48rpx;
  font-size: 28rpx;
  font-weight: 600;
  text-align: center;
  line-height: 1.4;
}
.btn-primary::after { border: none; }

.btn-outline {
  background: transparent;
  color: var(--color-primary);
  border: 2rpx solid var(--color-primary);
  border-radius: var(--td-radius-round);
  padding: 20rpx 48rpx;
  font-size: 28rpx;
  font-weight: 600;
  text-align: center;
}

.btn-ghost {
  background: var(--color-primary-light);
  color: var(--color-primary);
  border: none;
  border-radius: var(--td-radius-round);
  padding: 16rpx 32rpx;
  font-size: 24rpx;
  font-weight: 600;
}
.btn-ghost::after { border: none; }

/* 按钮点击反馈 */
.btn-primary:active,
.btn-outline:active,
.btn-ghost:active,
.tap-active:active {
  opacity: 0.85;
  transform: scale(0.97);
}

/* ========== 安全区 ========== */
.safe-area-bottom {
  padding-bottom: env(safe-area-inset-bottom);
}
.safe-area-top {
  padding-top: env(safe-area-inset-top);
}

/* ========== 全局隐藏滚动条 ========== */
page {
  -webkit-overflow-scrolling: touch;
  overflow: auto;
}

/* 隐藏所有 webkit 滚动条 */
::-webkit-scrollbar {
  display: none;
  width: 0 !important;
  height: 0 !important;
  color: transparent;
  background: transparent;
}

/* 通用滚动容器滚动条隐藏 */
page,
view,
scroll-view {
  scrollbar-width: none;           /* Firefox */
  -ms-overflow-style: none;        /* IE / Edge */
}

page::-webkit-scrollbar,
view::-webkit-scrollbar,
scroll-view::-webkit-scrollbar {
  display: none;
  width: 0 !important;
  height: 0 !important;
}

/* ========== 动画 ========== */
@keyframes rotate {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(20rpx); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.5; }
}
@keyframes bounce {
  0%, 100% { transform: scaleY(0.4); }
  50% { transform: scaleY(1); }
}

.anim-rotate {
  animation: rotate 10s linear infinite;
}
.anim-rotate-paused {
  animation-play-state: paused;
}
.anim-fade-in {
  animation: fadeIn 0.5s ease-out forwards;
}
.anim-pulse {
  animation: pulse 1.5s ease-in-out infinite;
}
