.rating-section{margin-top:var(--space-10);padding-top:var(--space-8);border-top:1px solid var(--wood-200)}.rating-section h2{font-size:var(--text-xl);margin:0 0 var(--space-6);color:var(--wood-800)}.ratings-list{margin-bottom:var(--space-8)}.loading-text,.no-ratings,.error-text{color:var(--stone-500);font-style:italic}.ratings-summary{display:flex;align-items:center;gap:var(--space-5);margin-bottom:var(--space-6);padding:var(--space-5);background:linear-gradient(135deg,var(--amber-50) 0%,var(--wood-50) 100%);border-radius:var(--radius-lg);border:1px solid var(--amber-200)}.ratings-score-card{display:flex;align-items:baseline;gap:var(--space-1)}.avg-rating{font-size:var(--text-4xl);font-weight:var(--font-bold);color:var(--amber-600);line-height:1}.avg-max{font-size:var(--text-lg);font-weight:var(--font-medium);color:var(--stone-400)}.ratings-meta{display:flex;flex-direction:column;gap:var(--space-2)}.rating-count{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--stone-600)}.rating-stars{display:flex;gap:3px}.star{width:8px;height:8px;border-radius:2px;background:var(--wood-200)}.star.filled{background:var(--amber-500)}.ratings-items{display:flex;flex-direction:column;gap:var(--space-4)}.rating-item{padding:var(--space-5);background:#fff;border-radius:var(--radius-lg);border:1px solid var(--wood-200);box-shadow:var(--shadow-xs)}.rating-item-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}.rating-badge{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:linear-gradient(135deg,var(--amber-500) 0%,var(--amber-600) 100%);color:#fff;font-weight:var(--font-bold);font-size:var(--text-sm);border-radius:var(--radius-md)}.rating-author{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--stone-700)}.rating-content{display:flex;flex-direction:column;gap:var(--space-2);padding-left:calc(36px + var(--space-3))}.rating-feedback{display:flex;align-items:flex-start;gap:var(--space-2);font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--stone-600)}.feedback-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:var(--radius-full);font-weight:var(--font-bold);font-size:var(--text-xs);flex-shrink:0}.rating-feedback.positive .feedback-icon{background:var(--forest-100);color:var(--forest-600)}.rating-feedback.negative .feedback-icon{background:var(--stone-100);color:var(--stone-500)}.rating-form-container{padding:var(--space-6);background:#fff;border:1px solid var(--wood-200);border-radius:var(--radius-lg)}.rating-form-container h3{font-size:var(--text-lg);margin:0 0 var(--space-5);color:var(--wood-800)}.form-group{margin-bottom:var(--space-4)}.form-group label{display:block;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--stone-700);margin-bottom:var(--space-2)}.rating-input{display:flex;align-items:center;gap:var(--space-3)}.rating-input input[type=range]{flex:1;height:8px;-webkit-appearance:none;appearance:none;background:var(--wood-200);border-radius:var(--radius-full);outline:none}.rating-input input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:24px;height:24px;background:var(--amber-500);border-radius:50%;cursor:pointer}.rating-value{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--amber-600);min-width:2ch;text-align:center}input[type=text],textarea{width:100%;padding:var(--space-3);border:1px solid var(--wood-200);border-radius:var(--radius-md);font-family:inherit;font-size:var(--text-sm);resize:vertical}input[type=text]:focus,textarea:focus{outline:none;border-color:var(--amber-400)}.submit-btn{width:100%;padding:var(--space-3) var(--space-4);background:var(--amber-500);color:#fff;font-weight:var(--font-semibold);border:none;border-radius:var(--radius-md);cursor:pointer;transition:background .15s ease}.submit-btn:hover:not(:disabled){background:var(--amber-600)}.submit-btn:disabled{opacity:.6;cursor:not-allowed}.form-message{margin-top:var(--space-3);font-size:var(--text-sm);text-align:center}.form-message.success{color:var(--forest-600)}.form-message.error{color:#dc2626}
