page { background: #F4F6F0; } .orders-page { height: 100vh; display: flex; flex-direction: column; overflow: hidden; } .page-scroll { flex: 1; height: 0; } /* ========== Status Tabs ========== */ .status-tabs-wrap { flex-shrink: 0; background: #F4F6F0; padding: 20rpx 0 12rpx; } .status-tabs { display: flex; white-space: nowrap; padding-left: 32rpx; height: 88rpx; width: 100%; box-sizing: border-box; } .status-tab { display: inline-flex; align-items: center; justify-content: center; padding: 0 28rpx; height: 72rpx; background: #fff; border-radius: 36rpx; margin-right: 16rpx; font-size: 26rpx; color: #546E7A; font-weight: 600; box-shadow: 0 4rpx 12rpx rgba(0,0,0,0.04); transition: all 0.2s cubic-bezier(0.25, 0.8, 0.25, 1); flex-shrink: 0; border: 2rpx solid transparent; } .status-tab:active { transform: scale(0.95); } .status-tab.active { background: #558B2F; color: #fff; font-weight: 700; box-shadow: 0 8rpx 20rpx rgba(85, 139, 47, 0.3); border-color: #558B2F; } /* ========== Orders List ========== */ .orders-list { padding: 12rpx 32rpx; } .order-card { background: #fff; border-radius: 20rpx; padding: 28rpx; margin-bottom: 16rpx; box-shadow: 0 4rpx 12rpx rgba(0,0,0,0.03); } .order-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20rpx; padding-bottom: 16rpx; border-bottom: 1rpx solid #F3F4F6; } .order-time { font-size: 24rpx; color: #9CA3AF; font-weight: 500; } .order-body { display: flex; gap: 20rpx; } .order-img-wrap { width: 120rpx; height: 120rpx; border-radius: 16rpx; overflow: hidden; flex-shrink: 0; background: #F8FAF5; } .order-img { width: 100%; height: 100%; } .order-img-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #F1F8E9, #E8F5E9); } .order-info { flex: 1; min-width: 0; display: flex; flex-direction: column; justify-content: center; gap: 8rpx; } .order-item-name { font-size: 28rpx; font-weight: 600; color: #1F2937; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .order-type-tag { display: inline-block; width: fit-content; font-size: 20rpx; color: #6B7280; background: #F3F4F6; padding: 2rpx 14rpx; border-radius: 10rpx; font-weight: 500; } .order-cost-row { display: flex; align-items: center; gap: 6rpx; } .order-cost-sun { font-size: 22rpx; } .order-cost-val { font-size: 28rpx; font-weight: 800; color: #E65100; } .order-qty { font-size: 22rpx; color: #9CA3AF; margin-left: 4rpx; } /* Shipping */ .order-shipping { margin-top: 16rpx; padding-top: 16rpx; border-top: 1rpx solid #F3F4F6; display: flex; align-items: center; gap: 8rpx; } .tracking-text { font-size: 24rpx; color: #558B2F; font-weight: 600; } /* ========== Empty & Footer States ========== */ .empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 120rpx 40rpx 80rpx; } .empty-icon { font-size: 100rpx; margin-bottom: 24rpx; } .empty-title { font-size: 30rpx; font-weight: 700; color: #374151; margin-bottom: 12rpx; } .empty-desc { font-size: 24rpx; color: #9CA3AF; font-weight: 500; } .state-footer { padding: 40rpx; display: flex; justify-content: center; align-items: center; } .no-more { font-size: 24rpx; color: #D1D5DB; font-weight: 500; }