/* 助教看板页 — H5 px × 2 × 0.875 精确转换 */

/* ===== 三态 ===== */
.page-loading,
.page-empty,
.page-error {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 60vh;
}

.retry-btn {
  margin-top: 24rpx;
  padding: 16rpx 48rpx;
  font-size: 28rpx;
  color: #0052d9;
  border: 2rpx solid #0052d9;
  border-radius: 44rpx;
}

/* ===== 看板 Tab py-3=12px→22rpx, text-sm=14px→26rpx(视觉校准+2) ===== */
.board-tabs {
  display: flex;
  background: #ffffff;
  border-bottom: 2rpx solid #eeeeee;
  position: sticky;
  top: 0;
  z-index: 20;
}

/* text-sm=14px→24rpx, line-height 匹配 Tailwind 默认 1.25rem=20px→36rpx */
.board-tab {
  flex: 1;
  text-align: center;
  padding: 22rpx 0;
  font-size: 24rpx;
  line-height: 34rpx;
  font-weight: 500;
  color: #8b8b8b;
  position: relative;
}

.board-tab--active {
  color: #0052d9;
  font-weight: 600;
}

/* w-24px→42rpx, h-3px→5rpx（H5 实际渲染偏细） */
.board-tab--active::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 42rpx;
  height: 5rpx;
  background: linear-gradient(90deg, #0052d9, #5b9cf8);
  border-radius: 3rpx;
}

/* px-4=16px→28rpx, py-2=8px→14rpx, sticky top-[44px]→77rpx */
.filter-bar {
  background: #f3f3f3;
  padding: 14rpx 28rpx;
  position: sticky;
  top: 77rpx;
  z-index: 15;
  border-bottom: 2rpx solid #eeeeee;
  transition: transform 220ms ease, opacity 220ms ease;
}

.filter-bar--hidden {
  opacity: 0;
  transform: translateY(-110%);
  pointer-events: none;
}

/* p-1.5=6px→10rpx, gap-2=8px→14rpx, rounded-lg=8px→14rpx */
.filter-bar-inner {
  display: flex;
  align-items: center;
  gap: 14rpx;
  background: #ffffff;
  border-radius: 16rpx;
  padding: 10rpx;
  border: 2rpx solid #eeeeee;
  box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.03);
}

.filter-item {
  flex: 1;
  min-width: 0;
}

.filter-item--wide {
  flex: 2;
}

/* p-4=16px→28rpx, space-y-3=12px→22rpx — 四边一致 */
.coach-list {
  padding: 13rpx 28rpx 28rpx 28rpx;
}

/* p-4=16px→28rpx, rounded-2xl=16px→32rpx（border-radius: px×2，不乘0.875） */
.coach-card {
  background: #ffffff;
  border-radius: 32rpx;
  padding: 28rpx;
  margin-bottom: 22rpx;
  box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.05);
}

.coach-card--hover {
  opacity: 0.96;
  transform: scale(0.98);
}

/* gap-3=12px→20rpx, items-center 忠于 H5 原型 */
.card-row {
  display: flex;
  align-items: center;
  gap: 20rpx;
}

/* w-11 h-11=44px→78rpx, text-base=16px→28rpx — items-center 对齐，无需 margin-top */
.card-avatar {
  width: 78rpx;
  height: 78rpx;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.avatar-text {
  color: #ffffff;
  font-size: 28rpx;
  font-weight: 600;
}

/* 头像渐变色由 app.wxss 全局 .avatar-{key} 统一提供（VI §8） */

/* ===== 信息区 ===== */
.card-info {
  flex: 1;
  min-width: 0;
}

/* gap-1.5=6px→10rpx */
.card-name-row {
  display: flex;
  align-items: center;
  gap: 10rpx;
  flex-wrap: nowrap;
}

/* text-base=16px→28rpx, line-height: 1.5→42rpx（匹配 Tailwind 默认） */
.card-name {
  font-size: 28rpx;
  line-height: 42rpx;
  font-weight: 600;
  color: #242424;
  flex-shrink: 0;
}

/* ===== 等级标签 px-1.5=6px→10rpx, py-0.5=2px→4rpx, text-xs=12px→22rpx ===== */
.level-tag {
  padding: 4rpx 10rpx;
  font-size: 22rpx;
  border-radius: 8rpx;
  flex-shrink: 0;
  font-weight: 500;
}

.level--star {
  background: linear-gradient(to right, #fbbf24, #f97316);
  color: #ffffff;
}

.level--high {
  background: linear-gradient(to right, #a78bfa, #8b5cf6);
  color: #ffffff;
}

.level--mid {
  background: linear-gradient(to right, #60a5fa, #6366f1);
  color: #ffffff;
}

.level--low {
  background: linear-gradient(to right, #9ca3af, #6b7280);
  color: #ffffff;
}

/* ===== 技能标签 ===== */
.skill-tag {
  padding: 4rpx 10rpx;
  font-size: 22rpx;
  border-radius: 8rpx;
  flex-shrink: 0;
}

.skill--chinese { background: rgba(0, 82, 217, 0.1); color: #0052d9; }
.skill--snooker { background: rgba(0, 168, 112, 0.1); color: #00a870; }
.skill--mahjong { background: rgba(237, 123, 47, 0.1); color: #ed7b2f; }
.skill--karaoke { background: rgba(227, 77, 89, 0.1); color: #e34d59; }

/* ml-auto, gap-2=8px→14rpx */
.card-right {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 14rpx;
  flex-shrink: 0;
  white-space: nowrap;
}

/* text-xs=12px→22rpx — "定档"标签文字 */
.right-text {
  font-size: 22rpx;
  color: #8b8b8b;
  font-weight: 400;
}

/* text-sm=14px→24rpx — 定档数值加粗 */
.right-highlight {
  font-size: 24rpx;
  font-weight: 700;
  color: #0052d9;
}

/* "折前"/"储值" 辅助文字 — text-xs=12px→22rpx, gray-6=#a6a6a6 */
.right-sub {
  font-size: 22rpx;
  color: #a6a6a6;
  font-weight: 400;
}

.right-sub-val {
  color: #8b8b8b;
  font-weight: 400;
}

/* 工资维度 */
.salary-tag {
  padding: 4rpx 10rpx;
  background: rgba(237, 123, 47, 0.1);
  color: #ed7b2f;
  font-size: 22rpx;
  border-radius: 6rpx;
}

/* text-lg=18px→32rpx, line-height: 28px→50rpx（匹配 Tailwind text-lg 的 1.75rem） */
.salary-amount {
  font-size: 32rpx;
  line-height: 50rpx;
  font-weight: 700;
  color: #242424;
}

/* mt-1.5=6px→10rpx, text-xs=12px→22rpx */
.card-bottom-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 10rpx;
}

/* gap-2=8px→14rpx */
.customer-list {
  display: flex;
  align-items: center;
  gap: 14rpx;
  overflow: hidden;
  flex: 1;
  min-width: 0;
}

.customer-item {
  font-size: 22rpx;
  color: #a6a6a6;
  white-space: nowrap;
}

.bottom-right {
  font-size: 22rpx;
  font-weight: 500;
  flex-shrink: 0;
}

.bottom-right--warning {
  color: #ed7b2f;
}

.bottom-right--success {
  color: #00a870;
}

.bottom-right-group {
  display: flex;
  align-items: center;
  gap: 10rpx;
  flex-shrink: 0;
}

.bottom-perf {
  font-size: 22rpx;
  color: #4b4b4b;
  font-weight: 600;
}

.bottom-perf-val {
  font-weight: 700;
  color: #4b4b4b;
}

.bottom-sub {
  font-size: 22rpx;
  color: #8b8b8b;
}

.bottom-sub-val {
  color: #8b8b8b;
}

.bottom-divider {
  font-size: 22rpx;
  color: #c5c5c5;
}

/* ===== 底部安全区（自定义导航栏高度 100rpx + safe-area） ===== */
.safe-bottom {
  height: 200rpx;
  padding-bottom: env(safe-area-inset-bottom);
}
