/**index.wxss**/ page { background-color: #f0f5fa; min-height: 100vh; } .page { padding: 40rpx 32rpx; } .header { display: flex; flex-direction: column; align-items: center; padding: 60rpx 0 40rpx; } .header-icon { font-size: 100rpx; margin-bottom: 24rpx; line-height: 1; } /* 登录失败提示条(不遮挡页面) */ .login-fail-bar { display: flex; align-items: center; justify-content: space-between; background: #fff3e0; color: #e6a23c; font-size: 24rpx; padding: 16rpx 24rpx; border-radius: 12rpx; margin-bottom: 20rpx; } .login-fail-bar .retry-link { color: #5b9bd5; font-weight: 600; flex-shrink: 0; margin-left: 20rpx; } .header-title { font-size: 44rpx; font-weight: 700; color: #2c3e50; margin-bottom: 12rpx; letter-spacing: 4rpx; } .header-subtitle { font-size: 26rpx; color: #7f8fa6; letter-spacing: 2rpx; } /* 功能卡片 */ .action-list { margin-top: 24rpx; } .action-card { display: flex; align-items: center; background: #ffffff; border-radius: 24rpx; padding: 36rpx 32rpx; margin-bottom: 20rpx; box-shadow: 0 4rpx 20rpx rgba(91, 155, 213, 0.08); } .action-card:active { background: #f7fafd; } .action-icon-wrap { width: 88rpx; height: 88rpx; border-radius: 20rpx; display: flex; align-items: center; justify-content: center; margin-right: 28rpx; flex-shrink: 0; } .action-icon-blue { background: rgba(91, 155, 213, 0.12); } .action-icon-green { background: rgba(110, 198, 160, 0.12); } .action-icon-text { font-size: 44rpx; } .action-info { flex: 1; display: flex; flex-direction: column; } .action-title { font-size: 32rpx; font-weight: 600; color: #2c3e50; margin-bottom: 8rpx; } .action-desc { font-size: 24rpx; color: #7f8fa6; } .action-arrow { font-size: 40rpx; color: #b8c9db; margin-left: 16rpx; } /* 最新预约卡片 */ .latest-card { background: #ffffff; border-radius: 24rpx; padding: 28rpx 32rpx; margin-top: 8rpx; box-shadow: 0 4rpx 20rpx rgba(91, 155, 213, 0.08); } .latest-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20rpx; padding-bottom: 16rpx; border-bottom: 1rpx solid #e8eef5; } .latest-header-right { display: flex; align-items: center; gap: 12rpx; } .latest-header-left { display: flex; align-items: center; gap: 16rpx; } .qrcode-btn { font-size: 22rpx; color: #fff; background: linear-gradient(135deg, #5b9bd5, #4a8bc2); padding: 8rpx 24rpx; border-radius: 30rpx; letter-spacing: 1rpx; box-shadow: 0 4rpx 12rpx rgba(91, 155, 213, 0.25); } .qrcode-btn:active { opacity: 0.85; } .latest-title { font-size: 28rpx; font-weight: 600; color: #2c3e50; } .status-tag { font-size: 22rpx; padding: 4rpx 16rpx; border-radius: 20rpx; font-weight: 500; margin-left: auto; } .status-pending { background: rgba(240, 164, 93, 0.12); color: #e6a23c; } .status-approved { background: rgba(110, 198, 160, 0.12); color: #52c41a; } .status-rejected { background: rgba(239, 83, 80, 0.1); color: #ef5350; } .status-cancelled { background: rgba(127, 143, 166, 0.1); color: #7f8fa6; } .latest-body { margin-bottom: 8rpx; } .latest-row { display: flex; justify-content: space-between; align-items: center; padding: 8rpx 0; } .latest-label { font-size: 24rpx; color: #7f8fa6; } .latest-value { font-size: 24rpx; color: #2c3e50; } .latest-footer { padding-top: 16rpx; border-top: 1rpx solid #e8eef5; text-align: center; } .latest-link { font-size: 24rpx; color: #5b9bd5; letter-spacing: 1rpx; } .footer { margin-top: 120rpx; text-align: center; } .footer-text { font-size: 22rpx; color: #b8c9db; letter-spacing: 4rpx; } /* 骨架屏 */ .skeleton-row { display: flex; justify-content: flex-start; align-items: center; padding: 8rpx 0; } .skeleton-bar { height: 24rpx; border-radius: 8rpx; background: linear-gradient(90deg, #e8eef5 25%, #dbeafe 50%, #e8eef5 75%); background-size: 200% 100%; animation: skeleton-pulse 1.5s ease-in-out infinite; } @keyframes skeleton-pulse { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }