.page { min-height: 100vh; background: #E8C3D4; } /* 顶部导航栏已移除,改用全局 unified-header */ .wrap { padding: 0 32rpx; } .tabs-fixed { position: fixed; left: 0; right: 0; height: 120rpx; background: #ffffff; display: flex; align-items: center; justify-content: space-around; z-index: 100; border-bottom: 2rpx solid #f3f4f6; } .tab-item { font-size: 28rpx; color: #6b7280; font-weight: 600; position: relative; height: 80rpx; line-height: 100rpx; } .tab-item.active { color: #b06ab3; font-weight: 900; } .tab-item.active::after { content: ''; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 40rpx; height: 6rpx; background: #b06ab3; border-radius: 3rpx; } .card { background: #ffffff; border-radius: 40rpx; padding: 24rpx; box-shadow: 0 10rpx 20rpx rgba(17, 24, 39, 0.04); } .loading, .empty { text-align: center; color: #9ca3af; font-weight: 800; padding: 80rpx 0; } .row { padding: 24rpx 8rpx; display: flex; align-items: center; justify-content: space-between; border-bottom: 2rpx solid #f3f4f6; } .row:last-child { border-bottom: 0; } .row-left { flex: 1; min-width: 0; } .row-title { display: block; font-size: 34rpx; font-weight: 900; color: #111827; } .row-sub { display: block; margin-top: 10rpx; font-size: 26rpx; color: #9ca3af; font-weight: 600; } .row-right { text-align: right; } .row-amount { display: block; font-size: 36rpx; font-weight: 900; color: #b06ab3; } .row-status { display: block; margin-top: 10rpx; font-size: 26rpx; color: #6b7280; font-weight: 700; } .status-completed { color: #10B981; } .status-paid { color: #3B82F6; } .status-pending { color: #F59E0B; } .status-cancelled { color: #9CA3AF; } .status-refunded { color: #EF4444; }