/* Feed page - Multi-column grid, square images, like/comment/save actions */ .feed-main { background: transparent !important; padding: 20px 32px !important; margin: 0 auto !important; width: 100%; max-width: 1400px; } /* Feed Header (centered) */ .feed-header { text-align: center; margin-bottom: 24px; } .feed-header h1 { font-size: 2rem; font-weight: 700; margin-bottom: 8px; } .feed-header p { color: #64748b; font-size: 1rem; } /* Filter Buttons (centered) */ .filter-buttons { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; margin-bottom: 32px; border-bottom: 1px solid #e5e7eb; padding-bottom: 16px; } .filter-btn { background: transparent; border: none; padding: 8px 20px; font-size: 0.9rem; font-weight: 600; color: #64748b; cursor: pointer; border-radius: 30px; transition: all 0.2s; } .filter-btn.active { background: var(--gradient); color: white; } .filter-btn:hover:not(.active) { background: #f1f5f9; } /* Posts Grid - multi‑column like marketplace */ .posts-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 24px; } /* Post Card */ .post-card { background: #fff; border-radius: 18px; box-shadow: 0 2px 8px rgba(59, 130, 246, 0.06); overflow: hidden; transition: transform 0.2s, box-shadow 0.2s; cursor: pointer; display: flex; flex-direction: column; } .post-card:hover, .post-card:focus-within { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(59, 130, 246, 0.12); } .post-card-link { color: inherit; display: flex; flex: 1; flex-direction: column; text-decoration: none; } /* Post Header */ .post-header { display: flex; align-items: center; gap: 12px; padding: 12px; border-bottom: 1px solid #f0f2f5; } .post-avatar { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; } .post-author { flex: 1; display: flex; flex-direction: column; } .post-name { font-weight: 700; font-size: 0.9rem; } .post-handle { font-size: 0.7rem; color: #64748b; } .post-date { font-size: 0.7rem; color: #94a3b8; } /* Post Content */ .post-content { padding: 12px; flex: 1; } .post-title { font-size: 1.1rem; font-weight: 700; margin: 10px 0 6px 0; } .post-description { color: #334155; font-size: 0.85rem; line-height: 1.4; margin-bottom: 12px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } /* Square image */ .post-image { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 12px; margin-top: 8px; } /* Post Actions */ .post-actions { display: flex; gap: 20px; padding: 10px 12px 12px 12px; border-top: 1px solid #f0f2f5; } .action-btn { background: none; border: none; display: flex; align-items: center; gap: 6px; font-size: 0.8rem; color: #64748b; cursor: pointer; transition: color 0.2s; } .action-btn i { font-size: 1.1rem; } .action-btn.active { font-weight: 700; } .like-btn.active { color: #ef4444; } .save-btn.active { color: #f59e0b; } .like-btn:hover { color: #ef4444; } .comment-btn:hover { color: #3b82f6; } .share-btn:hover { color: #10b981; } .save-btn:hover { color: #f59e0b; } /* Responsive: single column on small screens */ @media (max-width: 700px) { .posts-grid { grid-template-columns: 1fr; } } @media (max-width: 768px) { .feed-main { padding: 16px !important; } .filter-buttons { gap: 8px; } .filter-btn { padding: 6px 14px; font-size: 0.8rem; } } /* Avatar initials fallback */ .post-avatar-initials { width: 40px; height: 40px; border-radius: 50%; background: var(--primary, #6366f1); color: #fff; font-weight: 700; font-size: 1rem; display: flex; align-items: center; justify-content: center; flex-shrink: 0; } /* Locked post */ .post-locked { opacity: 0.75; } .post-image-locked { filter: blur(6px); pointer-events: none; } .post-locked-msg { color: #94a3b8; font-size: 0.85rem; margin: 6px 0 0; } /* Star rating */ .post-rating { display: flex; align-items: center; gap: 3px; color: #f59e0b; font-size: 0.85rem; margin-top: 6px; } .post-rating span { color: #64748b; margin-left: 4px; } @media (max-width: 480px) { .feed-main { padding: 12px !important; } .post-header { padding: 10px; } .post-content { padding: 10px; } .post-title { font-size: 1rem; } .post-actions { padding: 8px 10px 10px 10px; } }