.container { min-height: 100vh; background: linear-gradient(145deg, #f8f9ff 0%, #f0f2f6 100%); position: relative; } /* 背景装饰 */ .bg-decoration { position: fixed; top: 0; left: 0; right: 0; bottom: 0; pointer-events: none; z-index: 0; } .circle { position: absolute; border-radius: 50%; background: linear-gradient(135deg, rgba(7, 193, 96, 0.1) 0%, rgba(7, 193, 96, 0.05) 100%); } .circle-1 { width: 400rpx; height: 400rpx; top: -100rpx; right: -100rpx; background: linear-gradient(135deg, rgba(64, 169, 255, 0.1) 0%, rgba(64, 169, 255, 0.05) 100%); } .circle-2 { width: 300rpx; height: 300rpx; bottom: 100rpx; left: -100rpx; background: linear-gradient(135deg, rgba(255, 184, 0, 0.1) 0%, rgba(255, 184, 0, 0.05) 100%); } /* 切换卡片 */ .tab-card { margin: 30rpx 30rpx 20rpx; background: rgba(255, 255, 255, 0.9); backdrop-filter: blur(20px); border-radius: 60rpx; padding: 10rpx; box-shadow: 0 20rpx 40rpx rgba(0, 0, 0, 0.06), 0 8rpx 20rpx rgba(0, 0, 0, 0.03), inset 0 2rpx 4rpx rgba(255, 255, 255, 0.8); border: 1px solid rgba(255, 255, 255, 0.9); position: relative; z-index: 10; transition: all 0.3s ease; } /* 内层标签容器 */ .category-tab { display: flex; background: rgba(0, 0, 0, 0.02); border-radius: 56rpx; padding: 6rpx; gap: 6rpx; } /* 单个标签项 */ .tab-item { flex: 1; text-align: center; padding: 24rpx 0; position: relative; border-radius: 50rpx; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); cursor: pointer; overflow: hidden; } /* 标签文字 */ .tab-text { font-size: 30rpx; font-weight: 500; color: #666; letter-spacing: 2rpx; position: relative; z-index: 2; transition: all 0.3s ease; } /* 选中状态 - 渐变背景 */ .tab-item.active { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); box-shadow: 0 10rpx 20rpx rgba(102, 126, 234, 0.3), 0 4rpx 8rpx rgba(0, 0, 0, 0.1), inset 0 2rpx 4rpx rgba(255, 255, 255, 0.5); transform: translateY(-2rpx); } /* 选中状态的文字 */ .tab-item.active .tab-text { color: #ffffff; font-weight: 600; text-shadow: 0 2rpx 4rpx rgba(0, 0, 0, 0.2); } /* 添加光泽效果 */ .tab-item.active::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(45deg, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.2) 20%, transparent 50%); border-radius: 50rpx; pointer-events: none; z-index: 1; } /* 添加微光动画 */ .tab-item.active::after { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: radial-gradient(circle, rgba(255, 255, 255, 0.3) 0%, transparent 70%); opacity: 0.5; animation: shimmer 3s infinite; pointer-events: none; z-index: 1; } /* 悬停效果 */ @media (hover: hover) { .tab-item:hover:not(.active) { background: rgba(255, 255, 255, 0.8); transform: translateY(-2rpx); box-shadow: 0 8rpx 16rpx rgba(0, 0, 0, 0.05); } .tab-item:hover:not(.active) .tab-text { color: #333; } } /* 点击效果 */ .tab-item:active { transform: scale(0.98); } /* 微光动画 */ @keyframes shimmer { 0% { transform: translateX(-100%) translateY(-100%) rotate(45deg); opacity: 0; } 20% { opacity: 0.5; } 40% { transform: translateX(100%) translateY(100%) rotate(45deg); opacity: 0; } 100% { transform: translateX(100%) translateY(100%) rotate(45deg); opacity: 0; } } .tab-item.active:nth-child(1) { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); } .tab-item.active:nth-child(2) { background-image: linear-gradient(to right, #f78ca0 0%, #f9748f 19%, #fd868c 60%, #fe9a8b 100%); } .tab-item.active-bottom { position: relative; } .tab-item.active-bottom::after { content: ''; position: absolute; bottom: -10rpx; left: 50%; transform: translateX(-50%); width: 60rpx; height: 4rpx; background: linear-gradient(90deg, #667eea, #764ba2); border-radius: 4rpx; animation: slideIn 0.3s ease; } /* 表单容器 */ .form-container { padding: 0 30rpx 40rpx; position: relative; z-index: 10; } .form-card { background: rgba(255, 255, 255, 0.9); backdrop-filter: blur(20px); border-radius: 32rpx; margin-bottom: 20rpx; padding: 30rpx; box-shadow: 0 10rpx 30rpx rgba(0, 0, 0, 0.02), 0 2rpx 8rpx rgba(0, 0, 0, 0.01); border: 1px solid rgba(255, 255, 255, 0.8); } .form-item { width: 100%; } .label-wrapper { display: flex; align-items: center; margin-bottom: 20rpx; } .label { font-size: 28rpx; font-weight: 600; color: #333; margin-right: 8rpx; } .required { font-size: 24rpx; color: #ff6b6b; margin-left: 8rpx; } .optional { font-size: 24rpx; color: #999; background: rgba(0, 0, 0, 0.03); padding: 4rpx 12rpx; border-radius: 20rpx; margin-left: 8rpx; } .input { width: 100%; height: 88rpx; background: #f8f9fc; border-radius: 20rpx; padding: 0 30rpx; font-size: 28rpx; color: #333; border: 2rpx solid transparent; box-sizing: border-box; } .input:focus { border-color: #07c160; background: #fff; } .placeholder { color: #b8b8b8; font-size: 28rpx; } .textarea { width: 100%; min-height: 240rpx; background: #f8f9fc; border-radius: 20rpx; padding: 24rpx 30rpx; font-size: 28rpx; color: #333; border: 2rpx solid transparent; box-sizing: border-box; } .textarea:focus { border-color: #07c160; background: #fff; } .word-count { display: block; text-align: right; font-size: 24rpx; color: #999; margin-top: 12rpx; } /* 分类选择器 */ .category-selector { width: 100%; min-height: 88rpx; display: flex; align-items: center; } .category-badge { display: inline-block; padding: 16rpx 32rpx; border-radius: 40rpx; color: #648ac2; font-size: 28rpx; font-weight: 500; box-shadow: 0 8rpx 16rpx rgba(0, 0, 0, 0.1); letter-spacing: 1rpx; } .category-placeholder { width: 100%; height: 88rpx; background: #f8f9fc; border-radius: 20rpx; padding: 0 30rpx; font-size: 28rpx; line-height: 88rpx; color: #b8b8b8; border: 2rpx solid transparent; display: flex; align-items: center; justify-content: space-between; } .category-placeholder .arrow { font-size: 40rpx; color: #999; transform: rotate(90deg); display: inline-block; } /* 上传器 */ .uploader-wrapper { display: flex; flex-direction: column; align-items: flex-start; } .uploader { width: 220rpx; height: 220rpx; background: #f8f9fc; border-radius: 24rpx; display: flex; align-items: center; justify-content: center; overflow: hidden; border: 2rpx dashed #ddd; } .preview { width: 100%; height: 100%; object-fit: cover; } .upload-placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; } .upload-placeholder .plus { font-size: 60rpx; color: #ccc; line-height: 1; margin-bottom: 8rpx; } .upload-placeholder .hint { font-size: 22rpx; color: #999; } .upload-tip { font-size: 22rpx; color: #999; margin-top: 12rpx; } /* 视频选择器 */ .video-picker { width: 100%; min-height: 120rpx; background: #f8f9fc; border-radius: 20rpx; padding: 20rpx 30rpx; box-sizing: border-box; border: 2rpx dashed #ddd; } .video-info { display: flex; align-items: center; } .video-name { font-size: 26rpx; color: #333; flex: 1; word-break: break-all; } .video-placeholder { display: flex; align-items: center; justify-content: center; gap: 16rpx; height: 80rpx; } .video-placeholder .plus { font-size: 40rpx; color: #ccc; } .video-placeholder .hint { font-size: 26rpx; color: #999; } /* 提交按钮 */ .btn-wrapper { margin-top: 40rpx; padding: 0 20rpx; } .submit-btn { width: 100%; height: 96rpx; background: linear-gradient(135deg, #07c160 0%, #08994d 100%); color: #ffffff; font-size: 32rpx; font-weight: 600; border-radius: 48rpx; display: flex; align-items: center; justify-content: center; box-shadow: 0 20rpx 40rpx rgba(7, 193, 96, 0.3); border: none; } .submit-btn.disabled { background: linear-gradient(135deg, #c0c0c0 0%, #a0a0a0 100%); box-shadow: 0 10rpx 20rpx rgba(0, 0, 0, 0.1); }