/** * Health Profile Card Styles * * Matches the Reports page design language: * - Light background with subtle border (like upload-dropzone) * - #6b9175 as primary accent color * - Consistent typography and spacing */ /* Base Card - matches upload-dropzone style */ .profile-card { background: #fafafa; border: 2px dashed #d0d0d0; border-radius: 12px; padding: 24px; min-height: 200px; display: flex; flex-direction: column; transition: all 0.2s ease; } .profile-card:hover { border-color: #6b9175; background: rgba(107, 145, 117, 0.03); } .profile-card-loading { display: flex; align-items: center; justify-content: center; gap: 12px; color: #666; font-size: 0.9rem; min-height: 200px; } /* Card Header */ .profile-card-header { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 16px; } .profile-card-icon { width: 44px; height: 44px; border-radius: 8px; background: rgba(107, 145, 117, 0.12); display: flex; align-items: center; justify-content: center; color: #6b9175; flex-shrink: 0; } .profile-card-icon-success { background: rgba(107, 145, 117, 0.15); color: #5a7d64; } .profile-card-header h3 { font-size: 1rem; font-weight: 600; color: #1a1a2e; margin: 0 0 4px 0; font-family: 'DM Sans', sans-serif; } .profile-card-header p { font-size: 0.875rem; color: #666; margin: 0; } .profile-card-content { flex: 1; } .profile-card-content h3 { font-size: 0.9rem; font-weight: 600; color: #1a1a2e; margin: 0 0 2px 0; } .profile-card-content p { font-size: 0.8rem; color: #666; margin: 0; } /* Benefits List - subtle styling matching page helper text */ .profile-card-benefits { list-style: none; padding: 0; margin: 0 0 16px 0; flex: 1; } .profile-card-benefits li { display: flex; align-items: center; gap: 10px; padding: 6px 0; font-size: 0.85rem; color: #666; } .profile-card-benefits li svg { color: #6b9175; flex-shrink: 0; width: 16px; height: 16px; } /* Actions */ .profile-card-actions { display: flex; flex-direction: column; gap: 8px; margin-top: auto; } /* Buttons - matches Reports page button styles */ .profile-card-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 10px 20px; font-size: 0.875rem; font-weight: 500; border-radius: 8px; cursor: pointer; transition: all 0.2s ease; width: 100%; font-family: 'DM Sans', sans-serif; } /* Primary button - solid green matching app accent */ .profile-card-btn-primary { background: #6b9175; color: white; border: 1px solid #6b9175; } .profile-card-btn-primary:hover { background: #5a7d64; border-color: #5a7d64; } /* Text/tertiary button - matches btn-secondary style */ .profile-card-btn-text { background: white; color: #666; border: 1px solid #e0e0e0; } .profile-card-btn-text:hover { color: #333; background: #f5f5f5; border-color: #ccc; } /* Progress Bar */ .profile-progress-bar { height: 6px; background: #e0e0e0; border-radius: 3px; overflow: hidden; margin-bottom: 16px; } .profile-progress-fill { height: 100%; background: #6b9175; border-radius: 3px; transition: width 0.3s ease; } /* Complete Card */ .profile-card-complete .profile-card-header { position: relative; } .profile-edit-btn { position: absolute; top: 0; right: 0; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; background: white; border: 1px solid #e0e0e0; border-radius: 8px; color: #666; cursor: pointer; transition: all 0.2s ease; } .profile-edit-btn:hover { background: #f5f5f5; border-color: #ccc; color: #333; } .profile-complete-status { display: flex; align-items: center; gap: 8px; } .status-badge { font-size: 0.75rem; font-weight: 500; background: rgba(107, 145, 117, 0.15); color: #5a7d64; padding: 2px 8px; border-radius: 4px; display: inline-flex; align-items: center; gap: 4px; } .status-badge-success { background: rgba(107, 145, 117, 0.15); color: #5a7d64; } .status-badge-success svg { width: 12px; height: 12px; } /* Profile Summary */ .profile-summary { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; padding: 12px; background: white; border: 1px solid #e0e0e0; border-radius: 8px; margin-bottom: 12px; } .profile-summary-item { display: flex; flex-direction: column; gap: 2px; } .summary-label { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.05em; color: #999; } .summary-value { font-size: 0.875rem; font-weight: 500; color: #1a1a2e; text-transform: capitalize; } /* Card Footer */ .profile-card-footer { margin-top: auto; padding-top: 12px; } /* Secondary button - outline style */ .profile-card-btn-secondary { background: white; color: #6b9175; border: 1px solid #6b9175; } .profile-card-btn-secondary:hover { background: rgba(107, 145, 117, 0.05); } .profile-card-btn-secondary svg { width: 16px; height: 16px; } /* Missing Alert */ .profile-missing-alert { display: flex; align-items: center; gap: 8px; padding: 10px 12px; background: #fffbeb; border: 1px solid #fde68a; border-radius: 8px; font-size: 0.8rem; color: #92400e; } .profile-missing-alert svg { color: #d97706; flex-shrink: 0; } .profile-missing-alert span { flex: 1; } .profile-missing-alert button { font-size: 0.8rem; font-weight: 500; color: #6b9175; background: transparent; border: none; cursor: pointer; text-decoration: underline; } .profile-missing-alert button:hover { color: #5a7d64; } /* Skipped Card - compact inline style */ .profile-card-skipped { display: flex; align-items: center; gap: 12px; padding: 16px 20px; min-height: auto; } .profile-card-skipped .profile-card-icon { width: 36px; height: 36px; border-radius: 8px; } .profile-card-skipped .profile-card-content { flex: 1; } .profile-card-skipped .profile-card-content h3 { font-size: 0.875rem; margin-bottom: 2px; } .profile-card-skipped .profile-card-content p { font-size: 0.8rem; } .profile-card-skipped .profile-card-btn-text { width: auto; padding: 8px 12px; white-space: nowrap; } /* Wizard Modal */ .profile-wizard-modal { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.4); display: flex; align-items: center; justify-content: center; z-index: 1000; padding: 20px; } .profile-wizard-container { position: relative; width: 100%; max-width: 700px; max-height: 90vh; background: white; border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 4px 24px rgba(0, 0, 0, 0.15); } .profile-wizard-close { position: absolute; top: 16px; right: 16px; width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; background: white; border: 1px solid #e0e0e0; border-radius: 8px; color: #666; cursor: pointer; z-index: 10; transition: all 0.2s ease; } .profile-wizard-close:hover { background: #f5f5f5; border-color: #ccc; color: #333; } /* Animation */ .animate-spin { animation: spin 1s linear infinite; } @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } /* Mobile Responsive */ @media (max-width: 640px) { .profile-card { padding: 16px; min-height: 160px; } .profile-card-header { flex-direction: column; align-items: flex-start; } .profile-summary { grid-template-columns: 1fr 1fr; gap: 8px; } .profile-wizard-modal { padding: 10px; } .profile-wizard-container { max-height: 95vh; border-radius: 12px; } }