/* Admin Comments Interface Styles */ .comments-admin-list { margin-top: 1rem; } .comment-admin-item { background: white; border: 1px solid #e9ecef; border-radius: 8px; margin-bottom: 1.5rem; overflow: hidden; transition: box-shadow 0.2s ease; } .comment-admin-item:hover { box-shadow: 0 2px 8px rgba(0,0,0,0.1); } .comment-admin-item.pending { border-left: 4px solid #ffc107; } .comment-admin-item.approved { border-left: 4px solid #28a745; } .comment-admin-item.rejected { border-left: 4px solid #dc3545; } .comment-header { display: flex; justify-content: space-between; align-items: flex-start; padding: 1rem 1.5rem; background: #f8f9fa; border-bottom: 1px solid #e9ecef; flex-wrap: wrap; gap: 1rem; } .comment-meta { flex: 1; min-width: 250px; } .comment-author { display: block; font-weight: 600; color: #2c3e50; margin-bottom: 0.25rem; } .comment-author strong { color: #2c3e50; } .comment-author small { color: #6c757d; font-weight: normal; } .comment-date { color: #6c757d; font-size: 0.875rem; display: block; margin-bottom: 0.25rem; } .comment-status { display: inline-block; padding: 0.25rem 0.75rem; border-radius: 12px; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; } .status-pending { background: #fff3cd; color: #856404; } .status-approved { background: #d4edda; color: #155724; } .status-rejected { background: #f8d7da; color: #721c24; } .comment-actions { display: flex; gap: 0.5rem; flex-wrap: wrap; align-items: center; } .comment-actions .btn { padding: 0.375rem 0.75rem; font-size: 0.875rem; border: none; border-radius: 4px; cursor: pointer; transition: background-color 0.2s ease, transform 0.1s ease; text-decoration: none; display: inline-block; } .comment-actions .btn:hover { transform: translateY(-1px); } .btn-success { background: #28a745; color: white; } .btn-success:hover { background: #218838; } .btn-warning { background: #ffc107; color: #212529; } .btn-warning:hover { background: #e0a800; } .btn-primary { background: #007bff; color: white; } .btn-primary:hover { background: #0069d9; } .btn-danger { background: #dc3545; color: white; } .btn-danger:hover { background: #c82333; } .btn-secondary { background: #6c757d; color: white; } .btn-secondary:hover { background: #5a6268; } .comment-content { padding: 1.5rem; color: #495057; line-height: 1.6; } .comment-content p { margin: 0; } .comment-publication { padding: 0 1.5rem 1rem; background: #f8f9fa; border-top: 1px solid #e9ecef; } .comment-publication small { color: #6c757d; } .comment-publication a { color: #007bff; text-decoration: none; } .comment-publication a:hover { text-decoration: underline; } /* Reply Form Styles */ .reply-form-container { background: #e3f2fd; border-top: 1px solid #bbdefb; padding: 1.5rem; } .reply-form .form-group { margin-bottom: 1rem; } .reply-form label { display: block; margin-bottom: 0.5rem; font-weight: 600; color: #495057; } .reply-form textarea { width: 100%; padding: 0.75rem; border: 1px solid #ced4da; border-radius: 4px; font-size: 0.875rem; resize: vertical; min-height: 80px; font-family: inherit; } .reply-form textarea:focus { outline: none; border-color: #007bff; box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1); } .reply-form .form-actions { display: flex; gap: 0.75rem; align-items: center; } .reply-indicator { padding: 0.5rem 1.5rem; background: #f8f9fa; border-top: 1px solid #e9ecef; font-style: italic; color: #6c757d; } /* Filter Section */ .filter-section { background: white; border: 1px solid #e9ecef; border-radius: 8px; padding: 1rem 1.5rem; margin-bottom: 1.5rem; } .filter-form { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; } .filter-form label { font-weight: 600; color: #495057; margin: 0; } .filter-form select { padding: 0.5rem; border: 1px solid #ced4da; border-radius: 4px; font-size: 0.875rem; background: white; cursor: pointer; } .filter-form select:focus { outline: none; border-color: #007bff; box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1); } /* Header Stats */ .header-stats { display: flex; gap: 2rem; align-items: center; flex-wrap: wrap; } .stat-item { font-size: 0.875rem; color: #6c757d; } .stat-item strong { color: #2c3e50; font-weight: 600; } /* Pagination */ .pagination { display: flex; justify-content: space-between; align-items: center; padding: 1.5rem 0; border-top: 1px solid #e9ecef; margin-top: 2rem; } .page-info { color: #6c757d; font-size: 0.875rem; } /* No Comments State */ .no-comments { text-align: center; padding: 3rem; color: #6c757d; font-style: italic; background: #f8f9fa; border-radius: 8px; border: 1px solid #e9ecef; } /* Responsive Design */ @media (max-width: 768px) { .comment-header { flex-direction: column; align-items: flex-start; } .comment-actions { width: 100%; justify-content: flex-start; } .header-stats { flex-direction: column; gap: 0.5rem; align-items: flex-start; } .filter-form { flex-direction: column; align-items: flex-start; } .pagination { flex-direction: column; gap: 1rem; text-align: center; } .reply-form .form-actions { flex-direction: column; align-items: stretch; } } /* Button Loading States */ .btn.loading { position: relative; pointer-events: none; opacity: 0.7; } .btn.loading::after { content: ''; position: absolute; top: 50%; left: 50%; width: 12px; height: 12px; margin: -6px 0 0 -6px; border: 2px solid transparent; border-top: 2px solid currentColor; border-radius: 50%; animation: spin 1s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* Success/Error States */ .comment-admin-item.success { border-left-color: #28a745; background: #f8fff8; } .comment-admin-item.error { border-left-color: #dc3545; background: #fff8f8; } /* Bulk Actions */ .bulk-actions { background: white; border: 1px solid #e9ecef; border-radius: 8px; padding: 1rem 1.5rem; margin-bottom: 1.5rem; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem; } .bulk-actions .form-group { display: flex; align-items: center; gap: 0.5rem; } .bulk-actions select { padding: 0.5rem; border: 1px solid #ced4da; border-radius: 4px; font-size: 0.875rem; } /* Comment Count Badge */ .comment-count-badge { background: #007bff; color: white; padding: 0.25rem 0.5rem; border-radius: 12px; font-size: 0.75rem; font-weight: 600; margin-left: 0.5rem; } /* Search Box */ .search-box { background: white; border: 1px solid #e9ecef; border-radius: 8px; padding: 1rem 1.5rem; margin-bottom: 1.5rem; } .search-box form { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; } .search-box input[type="text"] { flex: 1; min-width: 200px; padding: 0.5rem; border: 1px solid #ced4da; border-radius: 4px; font-size: 0.875rem; } .search-box input[type="text"]:focus { outline: none; border-color: #007bff; box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1); }