// 备选方案:美观的卡片式布局样式 .materials-section.alternative-layout { // 文本输入区域 - 独立一行 .text-upload-section { margin-bottom: 2rem; .upload-item.text-item { background: white; border: 1px solid #e5e5e7; border-radius: 12px; padding: 1.5rem; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04); h5 { margin: 0 0 1rem 0; font-size: 1rem; font-weight: 600; color: #1d1d1f; display: flex; align-items: center; gap: 0.5rem; &::before { content: "📝"; font-size: 1.2rem; } } textarea { width: 100%; padding: 1rem; border: 1px solid #d2d2d7; border-radius: 8px; font-size: 0.9rem; resize: vertical; margin-bottom: 1rem; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; line-height: 1.5; &:focus { outline: none; border-color: #007aff; box-shadow: 0 0 0 3px rgba(0, 122, 255, 0.1); } &::placeholder { color: #86868b; } } .btn-primary { background: linear-gradient(135deg, #007aff 0%, #0051d5 100%); border: none; border-radius: 8px; padding: 0.75rem 1.5rem; color: white; font-weight: 500; font-size: 0.9rem; cursor: pointer; transition: all 0.2s ease; &:hover:not(:disabled) { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0, 122, 255, 0.3); } &:disabled { opacity: 0.5; cursor: not-allowed; } } } } // 参考图片和CAD图纸 - 美观卡片式并排布局 .file-upload-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; // 移动端响应式 @media (max-width: 768px) { grid-template-columns: 1fr; gap: 1rem; } .upload-card { background: white; border: 1px solid #e5e5e7; border-radius: 16px; overflow: hidden; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06); transition: all 0.3s ease; &:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12); } .card-header { padding: 1.25rem 1.5rem 1rem 1.5rem; border-bottom: 1px solid #f2f2f7; display: flex; align-items: center; gap: 0.75rem; .card-icon { width: 40px; height: 40px; border-radius: 10px; display: flex; align-items: center; justify-content: center; &.image-icon { background: linear-gradient(135deg, #ff9500 0%, #ff6b00 100%); color: white; } &.cad-icon { background: linear-gradient(135deg, #007aff 0%, #0051d5 100%); color: white; } } h5 { margin: 0; font-size: 1.1rem; font-weight: 600; color: #1d1d1f; } } .card-body { padding: 1.5rem; .file-upload-zone { border: 2px dashed #d2d2d7; border-radius: 12px; padding: 2rem 1rem; text-align: center; cursor: pointer; transition: all 0.3s ease; background: #fafafa; min-height: 140px; display: flex; align-items: center; justify-content: center; &:hover { border-color: #007aff; background: rgba(0, 122, 255, 0.02); transform: scale(1.02); } .upload-content { .upload-icon { margin-bottom: 1rem; svg { color: #86868b; transition: color 0.2s ease; } } p { margin: 0 0 0.5rem 0; font-size: 1rem; color: #1d1d1f; font-weight: 500; } .hint { font-size: 0.85rem; color: #86868b; line-height: 1.4; } } &:hover .upload-content { .upload-icon svg { color: #007aff; } } } } // 特定卡片样式 &.image-card { .file-upload-zone:hover { border-color: #ff9500; background: rgba(255, 149, 0, 0.02); .upload-content .upload-icon svg { color: #ff9500; } } } &.cad-card { .file-upload-zone:hover { border-color: #007aff; background: rgba(0, 122, 255, 0.02); .upload-content .upload-icon svg { color: #007aff; } } } } } } // 深色模式支持 @media (prefers-color-scheme: dark) { .materials-section.alternative-layout { .text-upload-section .upload-item.text-item, .file-upload-cards .upload-card { background: #1c1c1e; border-color: #38383a; h5 { color: #f2f2f7; } textarea { background: #2c2c2e; border-color: #48484a; color: #f2f2f7; &::placeholder { color: #8e8e93; } } .file-upload-zone { background: #2c2c2e; border-color: #48484a; .upload-content { p { color: #f2f2f7; } .hint { color: #8e8e93; } .upload-icon svg { color: #8e8e93; } } } } } }