/* User Modal Styles */ .user-modal { display: flex; flex-direction: column; gap: 20px; min-width: 400px; max-width: 500px; padding: 24px; } .user-modal-error { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; padding: 40px; text-align: center; color: var(--color-text-secondary); } /* Header Section */ .user-modal-header { display: flex; gap: 16px; align-items: flex-start; } .user-modal-avatar-wrapper { flex-shrink: 0; } .user-modal-avatar-wrapper .avatar { width: 80px; height: 80px; border-radius: 50%; overflow: hidden; border: 3px solid var(--color-border); transition: transform 0.2s ease, border-color 0.2s ease; } .user-modal-avatar-wrapper .avatar:hover { transform: scale(1.05); border-color: var(--color-primary); } .user-modal-avatar-wrapper .avatar img, .user-modal-avatar-wrapper .avatar canvas { width: 100%; height: 100%; object-fit: cover; } .user-modal-info { flex: 1; display: flex; flex-direction: column; gap: 8px; min-width: 0; } .user-modal-name { margin: 0; font-size: 24px; font-weight: 600; color: var(--color-text); word-wrap: break-word; } .user-modal-id-row { display: flex; align-items: center; gap: 8px; } .user-modal-id { font-size: 14px; color: var(--color-text-secondary); font-family: "Source Code Pro", monospace; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .user-modal-copy-icon { flex-shrink: 0; color: var(--color-text-secondary); transition: color 0.2s ease; } .user-modal-copy-icon:hover { color: var(--color-primary); } /* Badges */ .user-modal-badge { display: flex; gap: 6px; flex-wrap: wrap; } .badge { display: inline-flex; align-items: center; padding: 4px 10px; font-size: 12px; font-weight: 500; border-radius: 12px; text-transform: uppercase; letter-spacing: 0.5px; } .badge-urbit { background: var(--color-primary); color: white; } .badge-nostr { background: #8e44ad; color: white; } .badge-me { background: var(--color-accent); color: white; } .badge-follows { background: var(--color-surface); color: var(--color-text-secondary); border: 1px solid var(--color-border); } /* About Section */ .user-modal-about { padding: 16px; background: var(--color-surface); border-radius: 8px; border-left: 3px solid var(--color-primary); } .user-modal-about p { margin: 0; color: var(--color-text); line-height: 1.6; white-space: pre-wrap; word-wrap: break-word; } /* Stats */ .user-modal-stats { display: flex; gap: 24px; padding: 16px; background: var(--color-surface); border-radius: 8px; } .stat { display: flex; flex-direction: column; align-items: center; gap: 4px; } .stat-value { font-size: 20px; font-weight: 600; color: var(--color-text); } .stat-label { font-size: 12px; color: var(--color-text-secondary); text-transform: uppercase; letter-spacing: 0.5px; } /* Custom Fields */ .user-modal-custom-fields { padding: 16px; background: var(--color-surface); border-radius: 8px; } .user-modal-custom-fields h4 { margin: 0 0 12px 0; font-size: 14px; font-weight: 600; color: var(--color-text); text-transform: uppercase; letter-spacing: 0.5px; } .custom-field-item { display: flex; gap: 8px; margin-bottom: 8px; font-size: 14px; } .custom-field-item:last-child { margin-bottom: 0; } .custom-field-item .field-key { font-weight: 500; color: var(--color-text); min-width: 100px; } .custom-field-item .field-value { color: var(--color-text-secondary); word-wrap: break-word; flex: 1; } /* Action Buttons */ .user-modal-actions { display: flex; gap: 12px; padding-top: 8px; border-top: 1px solid var(--color-border); } .user-modal-actions .action-btn { flex: 1; display: flex; align-items: center; justify-content: center; gap: 8px; padding: 12px 20px; border: 2px solid; border-radius: 8px; font-size: 14px; font-weight: 600; cursor: pointer; transition: all 0.2s ease; background: transparent; } .user-modal-actions .action-btn:disabled { opacity: 0.5; cursor: not-allowed; } .user-modal-actions .action-btn.follow { border-color: var(--color-primary); color: var(--color-primary); } .user-modal-actions .action-btn.follow:hover:not(:disabled) { background: var(--color-primary); color: white; transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); } .user-modal-actions .action-btn.following { border-color: var(--color-success); background: var(--color-success); color: white; } .user-modal-actions .action-btn.following:hover:not(:disabled) { background: var(--color-error); border-color: var(--color-error); transform: translateY(-1px); } .user-modal-actions .action-btn.secondary { border-color: var(--color-border); color: var(--color-text); } .user-modal-actions .action-btn.secondary:hover:not(:disabled) { border-color: var(--color-text-secondary); background: var(--color-surface); transform: translateY(-1px); } /* Responsive adjustments */ @media (max-width: 480px) { .user-modal { min-width: 320px; max-width: 100%; padding: 16px; } .user-modal-name { font-size: 20px; } .user-modal-actions { flex-direction: column; } .user-modal-actions .action-btn { width: 100%; } } /* Modal background improvements for user modal */ #modal-background { background: rgba(0, 0, 0, 0.6); backdrop-filter: blur(4px); } #modal { background: var(--color-background); border-radius: 16px; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); max-height: 90vh; overflow-y: auto; }