.page { padding:32rpx; background:var(--color-primary-lighter); min-height:100vh; } .header { text-align:center; margin-bottom:32rpx; } .title { font-size:36rpx; font-weight:bold; color:var(--color-text-strong); } .loading-state, .error-state { text-align:center; padding:80rpx; color:var(--color-text-tertiary); } .checkin-card { background:var(--color-bg-card); border-radius:24rpx; padding:40rpx; margin-bottom:24rpx; } .activity-info { text-align:center; margin-bottom:32rpx; } .activity-title { display:block; font-size:32rpx; font-weight:bold; color:var(--color-text-strong); margin-bottom:8rpx; } .activity-location { display:block; font-size:26rpx; color:var(--color-text-tertiary); } .qr-section { text-align:center; padding:32rpx 0; border-top:1rpx solid var(--color-divider); border-bottom:1rpx solid var(--color-divider); margin-bottom:32rpx; } .qr-placeholder { width:300rpx; height:300rpx; margin:0 auto 20rpx; background:var(--color-bg-subtle); border-radius:16rpx; display:flex; align-items:center; justify-content:center; } .qr-icon { font-size:120rpx; color:var(--color-text-disabled); } .qr-hint { font-size:26rpx; color:var(--color-text-tertiary); } .token-section { margin-bottom:24rpx; } .token-label { font-size:26rpx; color:var(--color-text-secondary); display:block; margin-bottom:12rpx; } .token-value { display:block; font-size:24rpx; color:var(--color-text-primary); background:var(--color-bg-subtle); padding:20rpx; border-radius:12rpx; word-break:break-all; margin-bottom:16rpx; } .btn-copy { width:100%; min-height:var(--tap-min); line-height:var(--tap-min); background:var(--color-primary-light); color:var(--color-primary-strong); border-radius:36rpx; font-size:26rpx; border:none; min-width:var(--tap-min);} .expire-info { text-align:center; font-size:24rpx; color:var(--color-warning-strong); padding:16rpx; background:var(--color-warning-light); border-radius:12rpx; } .btn-refresh-page { background:var(--color-primary-solid); color:var(--color-text-inverse); border-radius:44rpx; height:88rpx; line-height:88rpx; font-size:30rpx; margin-top:24rpx; } .btn-refresh { margin-top:24rpx; background:var(--color-primary-solid); color:var(--color-text-inverse); border-radius:44rpx; min-height:var(--tap-min); line-height:var(--tap-min); font-size:28rpx; border:none; min-width:var(--tap-min);}