body { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); min-height: 100vh; display: flex; align-items: center; justify-content: center; font-family: 'Microsoft YaHei', sans-serif; } .card-container { background: rgba(255, 255, 255, 0.95); border-radius: 15px; box-shadow: 0 15px 35px rgba(0, 0, 0, 0.2); padding: 40px; width: 100%; max-width: 500px; backdrop-filter: blur(10px); } .header { text-align: center; margin-bottom: 30px; } .header h1 { color: #333; font-size: 28px; margin-bottom: 10px; font-weight: 300; } .header p { color: #666; font-size: 14px; } .progress-container { margin-bottom: 30px; } .progress-steps { display: flex; justify-content: space-between; margin-bottom: 20px; position: relative; } .progress-steps::before { content: ''; position: absolute; top: 20px; left: 20px; right: 20px; height: 2px; background: #e6e6e6; z-index: 1; } .progress-line { position: absolute; top: 20px; left: 20px; height: 2px; background: #5FB878; transition: width 0.5s ease; z-index: 2; width: 0%; } .step { position: relative; z-index: 3; text-align: center; flex: 1; } .step-circle { width: 40px; height: 40px; border-radius: 50%; background: #e6e6e6; color: #999; display: flex; align-items: center; justify-content: center; margin: 0 auto 10px; font-weight: bold; transition: all 0.3s ease; } .step.active .step-circle { background: #5FB878; color: white; } .step.completed .step-circle { background: #5FB878; color: white; } .step-text { font-size: 12px; color: #666; } .step.active .step-text { color: #5FB878; font-weight: bold; } .form-container { margin-top: 20px; } .form-item { margin-bottom: 20px; } .form-item label { display: block; margin-bottom: 8px; color: #333; font-weight: 500; } .layui-input { border-radius: 8px; border: 1px solid #e6e6e6; padding: 12px 15px; font-size: 14px; transition: border-color 0.3s ease; } .layui-input:focus { border-color: #5FB878; box-shadow: 0 0 0 2px rgba(95, 184, 120, 0.2); } .submit-btn { width: 100%; height: 45px; background: linear-gradient(45deg, #5FB878, #42B983); color: white; border: none; border-radius: 8px; font-size: 16px; font-weight: 500; cursor: pointer; transition: all 0.3s ease; margin-top: 20px; } .submit-btn:hover { transform: translateY(-2px); box-shadow: 0 5px 15px rgba(95, 184, 120, 0.4); } .submit-btn:disabled { background: #ccc; cursor: not-allowed; transform: none; box-shadow: none; } .hidden { display: none; } .loading { text-align: center; padding: 20px; } .loading-spinner { width: 40px; height: 40px; border: 4px solid #f3f3f3; border-top: 4px solid #5FB878; border-radius: 50%; animation: spin 1s linear infinite; margin: 0 auto 15px; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* 修复 select 下拉在某些浏览器中文字垂直被裁剪问题 */ select.layui-input, select.layui-select { /* 统一高度,避免被 padding 挤压导致文字显示不全 */ height: 40px; line-height: 40px; /* 对多数浏览器有效,确保文字垂直居中 */ padding: 0 15px; /* 与 .layui-input 保持一致的水平内边距 */ box-sizing: border-box; /* 使高度计算更可控,不受 padding 影响 */ vertical-align: middle; } /* 兼容性优化:在部分内核下 select 需要明确字体大小与行高匹配 */ select.layui-input option, select.layui-select option { line-height: 40px; }