/* Rating System Styles for BCards */ /* Star Rating Component */ .star-rating { display: inline-flex; gap: 0.5rem; font-size: 2.5rem; user-select: none; cursor: pointer; } .star-rating i { cursor: pointer; transition: all 0.2s ease; color: #e0e0e0; } .star-rating i:hover { transform: scale(1.2); } .star-rating i.fas { color: #ffc107; } .star-rating i.text-warning { color: #ffc107 !important; } /* Rating Modal Customizations */ #ratingModal .modal-content { border-radius: 1rem; border: none; box-shadow: 0 0.5rem 2rem rgba(0, 0, 0, 0.2); } #ratingModal .modal-header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; border-radius: 1rem 1rem 0 0; padding: 1.5rem; border-bottom: none; } #ratingModal .modal-title { font-weight: 600; font-size: 1.25rem; } #ratingModal .btn-close { filter: brightness(0) invert(1); opacity: 0.8; } #ratingModal .btn-close:hover { opacity: 1; } #ratingModal .modal-body { padding: 2rem; } /* Form Styling */ #ratingForm .form-label { font-weight: 500; color: #495057; margin-bottom: 0.5rem; } #ratingForm .form-control { border-radius: 0.5rem; border: 1px solid #dee2e6; padding: 0.75rem 1rem; transition: all 0.2s ease; } #ratingForm .form-control:focus { border-color: #667eea; box-shadow: 0 0 0 0.2rem rgba(102, 126, 234, 0.25); outline: none; } #ratingForm textarea.form-control { resize: vertical; min-height: 100px; } /* Submit Button */ #submitRatingBtn { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border: none; border-radius: 0.5rem; padding: 0.875rem 1.5rem; font-weight: 600; transition: all 0.3s ease; color: white; } #submitRatingBtn:hover:not(:disabled) { transform: translateY(-2px); box-shadow: 0 0.5rem 1rem rgba(102, 126, 234, 0.3); background: linear-gradient(135deg, #5568d3 0%, #6a3f8f 100%); } #submitRatingBtn:active:not(:disabled) { transform: translateY(0); } #submitRatingBtn:disabled { opacity: 0.6; cursor: not-allowed; } /* Alert Messages */ #ratingSuccessAlert, #ratingErrorAlert { border-radius: 0.75rem; padding: 1rem 1.25rem; animation: slideIn 0.3s ease; } #ratingSuccessAlert { background-color: #d4edda; border-color: #c3e6cb; color: #155724; } #ratingErrorAlert { background-color: #f8d7da; border-color: #f5c6cb; color: #721c24; } @keyframes slideIn { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } } /* Character Counter */ .form-text { font-size: 0.875rem; } #commentCounter { font-weight: 600; color: #667eea; } /* Invalid Feedback */ .invalid-feedback { display: none; margin-top: 0.25rem; font-size: 0.875rem; color: #dc3545; } .invalid-feedback.d-block { display: block !important; } /* Responsive Adjustments */ @media (max-width: 576px) { .star-rating { font-size: 2rem; gap: 0.25rem; } #ratingModal .modal-body { padding: 1.5rem; } #ratingModal .modal-header { padding: 1rem; } #ratingModal .modal-title { font-size: 1.1rem; } #submitRatingBtn { padding: 0.75rem 1.25rem; font-size: 0.9rem; } }