.preview-img,.review-image-item img{object-fit:cover}.review-form-wrapper{margin-bottom:var(--spacing-lg);animation:fadeIn .3s ease}.review-form-container{background-color:var(--gray-50);border-radius:0;box-shadow:none;overflow:hidden;border-bottom:1px solid var(--gray-300)}.review-form{padding:var(--spacing-xlg) var(--spacing-lg)}.form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.form-header h3{font-size:var(--title-size-sm);font-weight:700;color:var(--gray-900);margin:0}.form-group label,.rating-value,.review-text{font-size:var(--text-size-sm)}.form-group,.form-group label{margin-bottom:var(--spacing-sm)}.close-btn{background:0 0;border:none;color:var(--gray-550);cursor:pointer;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;transition:background-color var(--transition-base)}.close-btn:hover{background-color:var(--gray-200);color:var(--gray-900)}.form-group label{display:block;font-weight:600;color:var(--gray-700)}.rating-input,.review-actions{margin-bottom:var(--spacing-xs)}.rating-input{display:flex;align-items:center;gap:var(--spacing-md)}.star-rating{display:flex;gap:2px}.star{cursor:pointer;color:var(--yellow-400);display:flex;align-items:center;justify-content:center;transition:transform var(--transition-fast)}.star:hover{transform:scale(1.2)}.rating-value{color:var(--gray-550)}.review-text{width:100%;padding:var(--spacing-md);border-radius:var(--radius-md);border:1px solid var(--gray-300);resize:vertical;min-height:120px;transition:border-color var(--transition-base)}.review-text:focus{outline:0;border-color:var(--color-primary)}.cancel-btn,.image-upload-btn{border:1px solid var(--gray-300)}.error-message{color:var(--red-600);font-size:var(--text-size-xsm);margin-top:var(--spacing-xs);min-height:20px}.image-upload-container{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.image-upload-btn{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--gray-100);border-radius:var(--radius-md);color:var(--gray-700);font-size:var(--text-size-sm);cursor:pointer;transition:all var(--transition-base)}.image-upload-btn:hover{background-color:var(--gray-200)}.image-upload-btn i{font-size:18px}.uploaded-images-preview{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.image-preview-item{position:relative;width:80px;height:80px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--gray-300)}.preview-img,.preview-loading,.review-image-item img,.review-image-viewer,.viewer-backdrop{width:100%;height:100%}.image-preview-item.loading{background-color:var(--gray-100)}.preview-loading{position:absolute;top:0;left:0;display:flex;align-items:center;justify-content:center;background-color:rgba(255,255,255,.7)}.remove-image-btn{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:50%;background-color:rgba(0,0,0,.5);color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity var(--transition-base)}.remove-image-btn i{font-size:12px}.image-preview-item:hover .remove-image-btn{opacity:1}.remove-image-btn:disabled{cursor:not-allowed;opacity:.5}.cancel-btn,.submit-btn{padding:var(--spacing-sm) var(--spacing-lg);cursor:pointer;transition:all var(--transition-base);font-size:var(--text-size-sm)}.form-actions{display:flex;justify-content:flex-end;gap:var(--spacing-md);margin-top:var(--spacing-lg)}.cancel-btn{background:0 0;border-radius:var(--radius-md);color:var(--gray-700)}.cancel-btn:hover{background-color:var(--gray-100)}.submit-btn{background-color:var(--color-primary);border:none;border-radius:var(--radius-md);color:#fff;font-weight:500;min-width:120px;display:flex;align-items:center;justify-content:center}.submit-btn:hover{background-color:var(--color-secondary)}.submit-btn:disabled{opacity:.7;cursor:not-allowed}.loading-indicator{display:flex;align-items:center;gap:var(--spacing-sm)}.review-extensions{margin-top:var(--spacing-xs);animation:fadeIn .3s ease}.review-extensions i{font-size:18px}.review-images-container{margin-bottom:var(--spacing-md)}.review-images-grid{display:grid;gap:var(--spacing-xs);grid-template-columns:repeat(5,1fr);grid-template-rows:1fr}.review-images-grid.count-1{grid-template-columns:1fr}.review-images-grid.count-2{grid-template-columns:repeat(2,1fr)}.review-images-grid.count-3{grid-template-columns:repeat(3,1fr)}.review-images-grid.count-4{grid-template-columns:repeat(4,1fr)}.review-image-item{aspect-ratio:1/1;border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;border:1px solid var(--gray-200);transition:transform var(--transition-base)}.review-image-item:hover{transform:scale(1.03)}.review-actions{display:flex;gap:var(--spacing-sm);align-items:center;justify-content:end}.delete-button,.edit-button,.like-button,.report-button{background:0 0;border:none;display:flex;align-items:center;gap:var(--spacing-xs);color:var(--gray-550);font-size:var(--text-size-sm);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-base)}.edit-button:hover,.like-button:hover{color:var(--color-primary);background-color:var(--blue-100)}.delete-button:hover,.report-button:hover{color:var(--red-500);background-color:var(--red-100)}.like-button.liked{color:var(--color-primary)}.report-button.reported{color:var(--red-500)}.likes-count{font-size:var(--text-size-sm);transition:color var(--transition-base)}.author-actions{display:flex;gap:var(--spacing-sm);margin-left:auto}.add-review-button-container{margin-top:var(--spacing-md);text-align:center}.add-review-button,.cancel-review-button{padding:6px 13px;border-radius:var(--radius-md);font-size:var(--text-size-sm);display:inline-flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;transition:all var(--transition-base)}.add-review-button i,.cancel-review-button i{font-size:18px}.add-review-button{background-color:var(--color-background);color:var(--color-primary);border:1px solid var(--gray-400)}.add-review-button:hover,.cancel-review-button,.cancel-review-button:hover{background-color:var(--gray-100)}.cancel-review-button{color:var(--gray-700);border:1px solid var(--gray-300)}.add-review-button.empty-state{margin-top:var(--spacing-lg)}.review-submit-success{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--green-100);border:1px solid var(--green-200);border-radius:var(--radius-md);margin:var(--spacing-md) 0;animation:fadeIn .3s ease}.success-icon{color:var(--green-500);font-size:24px}.success-message h4{color:var(--green-600);margin:0;font-size:var(--text-size-md)}.success-message p{margin:var(--spacing-xs) 0 0;color:var(--green-500);font-size:var(--text-size-sm)}.review-image-viewer{position:fixed;top:0;left:0;z-index:2000;display:none;overflow:hidden}.review-image-viewer.open{display:block;animation:fadeIn .3s ease}.viewer-backdrop{position:absolute;top:0;left:0;background-color:rgba(0,0,0,.8)}.viewer-content{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);max-width:90%;max-height:90%;overflow:auto}.viewer-close{position:absolute;top:20px;right:20px;width:40px;height:40px;border-radius:50%;background-color:rgba(0,0,0,.5);color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10}.viewer-close i{font-size:24px}.viewer-image{max-width:100%;max-height:90vh;display:block;margin:0 auto;border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}@media (max-width:768px){.review-form{padding:var(--spacing-md)}.form-actions{flex-direction:column}.cancel-btn,.submit-btn{width:100%}.review-images-grid{grid-template-columns:repeat(3,1fr)}.review-images-grid.count-4,.review-images-grid.count-5{grid-template-columns:repeat(2,1fr)}.viewer-content{width:95%}}@media (max-width:480px){.rating-input{flex-direction:column;align-items:flex-start}.review-actions{flex-wrap:wrap}.author-actions{margin-left:0;margin-top:var(--spacing-sm);width:100%;justify-content:flex-end}.review-images-grid.count-3,.review-images-grid.count-4,.review-images-grid.count-5{grid-template-columns:repeat(2,1fr)}}