.container { height: 100vh; background-color: #f6f7f9; display: flex; flex-direction: column; padding: 0; align-items: stretch; } /* 聚会信息 */ .room-info { background-color: transparent; padding: 30rpx 80rpx; } .room-title { font-size: 44rpx; font-weight: bold; color: #333; text-align: center; margin-bottom: 20rpx; } .room-tags { display: flex; justify-content: center; align-items: center; gap: 16rpx; flex-wrap: wrap; } .time-tag-picker { display: flex; gap: 12rpx; } .time-picker { display: inline-block; } .tag { font-size: 26rpx; background-color: #e8f7f0; color: #07c160; padding: 10rpx 24rpx; border-radius: 30rpx; white-space: nowrap; } .keyword-tag { cursor: pointer; user-select: none; } .time-tag { background-color: #f0f0f0; color: #666; } .requirements-section { margin-top: 20rpx; padding: 20rpx; background-color: #fff; border-radius: 12rpx; border: 1rpx solid #e5e5e5; } .requirements-section.empty { background-color: #f8f9fa; border-style: dashed; } .requirements-label { font-size: 24rpx; color: #999; margin-bottom: 8rpx; } .requirements-text { font-size: 28rpx; color: #333; line-height: 1.6; } .requirements-section.empty .requirements-text { color: #999; text-align: center; } .requirements-textarea { width: 100%; min-height: 120rpx; font-size: 28rpx; color: #333; line-height: 1.6; padding: 0; border: none; background-color: transparent; } /* 顶部统计 */ .header { padding: 10rpx 80rpx 30rpx; background-color: transparent; } .stats { display: flex; align-items: center; justify-content: center; font-size: 32rpx; font-weight: 500; color: #333; } .stat-item { font-size: 32rpx; } .stat-divider { margin: 0 20rpx; color: #ddd; } .ready-count { color: #07c160; } /* 成员列表 */ .member-list { flex: 1; padding: 20rpx 40rpx; padding-bottom: 20rpx; box-sizing: border-box; } .member-item { display: flex; align-items: center; background-color: #fff; padding: 24rpx; border-radius: 20rpx; margin-bottom: 20rpx; box-shadow: 0 2rpx 10rpx rgba(0,0,0,0.04); transition: all 0.3s; box-sizing: border-box; width: 100%; } .member-item.ready { border-left: 4rpx solid #07c160; } .member-item.waiting { border-left: 4rpx solid #ddd; } .avatar { width: 80rpx; height: 80rpx; border-radius: 50%; margin-right: 20rpx; background-color: #f0f0f0; flex-shrink: 0; overflow: hidden; } .info { flex: 1; min-width: 0; } .nickname { font-size: 32rpx; font-weight: 500; color: #333; margin-bottom: 8rpx; } .me-tag { font-size: 24rpx; color: #07c160; font-weight: normal; margin-left: 8rpx; } .status { font-size: 26rpx; color: #666; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .status-icon { font-size: 40rpx; color: #07c160; flex-shrink: 0; } .member-item.waiting .status-icon { color: #ddd; } /* 测试浮动按钮 */ .test-float-btn { position: fixed; right: 30rpx; bottom: 350rpx; width: 80rpx; height: 80rpx; background-color: rgba(0, 0, 0, 0.1); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 40rpx; z-index: 999; } /* 底部操作按钮 */ .footer-actions { padding: 20rpx 80rpx; padding-bottom: calc(20rpx + constant(safe-area-inset-bottom)); padding-bottom: calc(20rpx + env(safe-area-inset-bottom)); background-color: transparent; display: grid; grid-template-columns: 1fr 1fr; gap: 20rpx; } .action-btn { border-radius: 40rpx; font-size: 28rpx; padding: 20rpx 16rpx; border: none; display: flex; align-items: center; justify-content: center; min-height: 80rpx; box-sizing: border-box; width: 100%; } .action-btn::after { border: none; } .primary-btn { background-color: #07c160; color: white; } .secondary-btn { background-color: #fff; color: #07c160; border: 2rpx solid #07c160; } .warning-btn { background-color: #fff; color: #fa5151; border: 2rpx solid #fa5151; } .result-btn { background-color: #fff; color: #07c160; border: 2rpx solid #07c160; } .result-btn.disabled { background-color: #f5f5f5; color: #999; border: 2rpx solid #ddd; } /* 用户信息填写弹窗 */ .user-info-modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 1000; } .modal-mask { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.6); } .modal-content { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 600rpx; background-color: #fff; border-radius: 24rpx; padding: 40rpx; box-sizing: border-box; } .modal-title { font-size: 36rpx; font-weight: 600; color: #333; text-align: center; margin-bottom: 40rpx; } .modal-body { display: flex; flex-direction: column; align-items: center; gap: 30rpx; } .avatar-section { display: flex; flex-direction: column; align-items: center; } .user-info-modal .avatar-wrapper { padding: 0; margin: 0; border: none; background: none; line-height: 1; display: flex; flex-direction: column; align-items: center; gap: 16rpx; } .user-info-modal .avatar-wrapper::after { border: none; } .user-info-modal .avatar { width: 160rpx; height: 160rpx; border-radius: 50%; background-color: #f0f0f0; border: 2rpx solid #e5e5e5; } .avatar-tip { font-size: 24rpx; color: #999; } .nickname-input-modal { width: 100%; font-size: 32rpx; color: #333; border: 1rpx solid #e5e5e5; border-radius: 12rpx; padding: 20rpx; text-align: center; box-sizing: border-box; } .modal-footer { display: flex; gap: 20rpx; margin-top: 40rpx; } .modal-btn { flex: 1; font-size: 32rpx; padding: 24rpx 0; border-radius: 50rpx; } .modal-btn.cancel { background-color: #f5f5f5; color: #666; } .modal-btn.confirm { background-color: #07c160; color: white; }