/* 通用用户信息收集弹窗 */
.user-info-modal { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(0,0,0,0.75); backdrop-filter: blur(8px); opacity: 0; visibility: hidden; transition: opacity 0.25s, visibility 0.25s; }
.user-info-modal.show { opacity: 1; visibility: visible; }
.user-info-box { width: 100%; max-width: 440px; max-height: 90vh; overflow-y: auto; background: linear-gradient(145deg, #1e293b, #0f172a); border: 1px solid rgba(255,255,255,0.1); border-radius: 20px; padding: 28px 24px; box-shadow: 0 25px 80px rgba(0,0,0,0.5), 0 0 60px rgba(99,102,241,0.15); transform: scale(0.95) translateY(20px); transition: transform 0.3s cubic-bezier(0.34,1.56,0.64,1); }
.user-info-modal.show .user-info-box { transform: scale(1) translateY(0); }
.user-info-head { text-align: center; margin-bottom: 22px; }
.user-info-icon { font-size: 3rem; margin-bottom: 10px; }
.user-info-title { font-size: 1.35rem; font-weight: 700; color: #f8fafc; margin-bottom: 6px; }
.user-info-subtitle { font-size: 0.9rem; color: #94a3b8; }
.user-info-hint { display: none; align-items: center; gap: 6px; margin-bottom: 16px; padding: 10px 12px; background: rgba(16,185,129,0.1); border: 1px solid rgba(16,185,129,0.25); border-radius: 10px; font-size: 0.85rem; color: #34d399; }
.user-info-hint.show { display: flex; }
.user-info-form { display: flex; flex-direction: column; gap: 16px; }
.user-info-field { text-align: left; }
.user-info-label { display: block; font-size: 0.95rem; color: #cbd5e1; margin-bottom: 6px; font-weight: 500; }
.user-info-label .required { color: #f97316; margin-left: 2px; }
.user-info-input { width: 100%; padding: 12px 14px; background: rgba(0,0,0,0.3); border: 1px solid rgba(255,255,255,0.12); border-radius: 10px; color: #f8fafc; font-size: 1rem; transition: all 0.2s; }
.user-info-input:focus { outline: none; border-color: #6366f1; box-shadow: 0 0 0 3px rgba(99,102,241,0.15); }
.user-info-input::placeholder { color: #64748b; }
.user-info-input.error { border-color: #ef4444; box-shadow: 0 0 0 3px rgba(239,68,68,0.12); }
.user-info-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.user-info-error { color: #ef4444; font-size: 0.85rem; margin-top: 6px; min-height: 1.2em; }
.user-info-actions { display: flex; flex-direction: column; gap: 10px; margin-top: 8px; }
.user-info-btn { width: 100%; padding: 13px 20px; border: none; border-radius: 10px; font-size: 1rem; font-weight: 600; cursor: pointer; transition: all 0.2s; }
.user-info-btn.primary { background: linear-gradient(135deg, #6366f1, #8b5cf6); color: #fff; }
.user-info-btn.primary:hover:not(:disabled) { transform: translateY(-1px); box-shadow: 0 8px 24px rgba(99,102,241,0.35); }
.user-info-btn.primary:disabled { opacity: 0.5; cursor: not-allowed; }
.user-info-btn.text { background: transparent; color: #94a3b8; font-weight: 500; }
.user-info-btn.text:hover { color: #f8fafc; }
.user-info-tip { display: flex; align-items: flex-start; gap: 8px; margin-top: 14px; padding: 10px 12px; background: rgba(255,255,255,0.04); border-radius: 10px; font-size: 0.82rem; color: #94a3b8; line-height: 1.5; }
.user-info-tip-icon { color: #6366f1; flex-shrink: 0; }
@media (max-width: 480px) { .user-info-box { padding: 24px 18px; border-radius: 16px; } .user-info-row { grid-template-columns: 1fr; } .user-info-title { font-size: 1.2rem; } }
