page {
    background: #F4F6F0;
    height: 100vh;
    display: flex;
    flex-direction: column;
}

.level-detail-page {
    height: 100%;
    display: flex;
    flex-direction: column;
}

.header-card {
    background: linear-gradient(135deg, #2c3e50, #4ca1af);
    padding: 60rpx 40rpx;
    color: white;
    text-align: center;
    border-radius: 0 0 40rpx 40rpx;
    box-shadow: 0 10rpx 30rpx rgba(44, 62, 80, 0.2);
    margin-bottom: 40rpx;
    flex-shrink: 0;
}

.header-title {
    font-size: 28rpx;
    opacity: 0.8;
    margin-bottom: 12rpx;
}

.header-value {
    font-size: 64rpx;
    font-weight: 800;
}

.timeline-scroll {
    flex: 1;
    overflow-y: auto;
}

.timeline {
    padding: 0 40rpx;
}

.timeline-item {
    display: flex;
    position: relative;
    min-height: 140rpx;
}

.timeline-left {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 60rpx;
    margin-right: 20rpx;
}

.dot-line-top, .dot-line-bottom {
    width: 4rpx;
    background: #E0E0E0;
    flex: 1;
}

.timeline-item:first-child .dot-line-top {
    visibility: hidden;
}

.timeline-item:last-child .dot-line-bottom {
    visibility: hidden;
}

.status-dot {
    width: 40rpx;
    height: 40rpx;
    border-radius: 50%;
    background: #E0E0E0;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 8rpx 0;
    z-index: 1;
    flex-shrink: 0;
}

.timeline-item.active .status-dot {
    background: #4CAF50;
    box-shadow: 0 0 0 6rpx rgba(76, 175, 80, 0.2);
}

/* Logic for lines:
   The top line of THIS item should be green if THIS item is active.
   Wait, if item 2 is active, item 1 is also active.
   Line connecting 1 and 2 is bottom of 1 and top of 2.
   If 2 is active, top of 2 is green.
   If 1 is active, bottom of 1 is green?
   Easier: make lines background #E0E0E0.
   Use a pseudo element or simply rely on active class.
*/

.timeline-item.active .dot-line-top {
    background: #4CAF50;
}

/* If next item is active, make this item's bottom line green */
/* CSS cannot select based on next sibling easily without :has */
/* So just color top line of active item green. Bottom line stays gray? No. */
/* Just color all lines of active items green, EXCEPT the line connecting active to inactive. */
/* For simplicity, let's keep lines gray or improve logic. */
/* If I color .timeline-item.active .dot-line-bottom green, then if next is NOT active, it looks weird. */
/* Correct way: .timeline-item.active .dot-line-top is Green. */

.timeline-content {
    flex: 1;
    padding-bottom: 40rpx;
}

.level-card {
    background: white;
    border-radius: 20rpx;
    padding: 24rpx;
    border: 2rpx solid transparent;
    box-shadow: 0 4rpx 16rpx rgba(0,0,0,0.02);
}

.level-card.current {
    border-color: #4CAF50;
    background: #F1F8E9;
}

.card-header {
    display: flex;
    align-items: center;
    margin-bottom: 16rpx;
}

.card-lv {
    background: #eceff1;
    color: #546e7a;
    font-size: 20rpx;
    padding: 4rpx 12rpx;
    border-radius: 8rpx;
    font-weight: 700;
    margin-right: 16rpx;
}

.timeline-item.active .card-lv {
    background: #4CAF50;
    color: white;
}

.card-title {
    font-size: 30rpx;
    font-weight: 700;
    color: #333;
}

.flex-spacer {
    flex: 1;
}

.card-sun {
    font-size: 24rpx;
    color: #999;
    font-weight: 600;
}

.card-perks {
    font-size: 26rpx;
    color: #666;
    line-height: 1.4;
    padding-top: 16rpx;
    border-top: 2rpx dashed #eee;
}

.level-card.current .card-perks {
    border-top-color: rgba(76, 175, 80, 0.2);
    color: #388E3C;
}
