:root{--rating-star-active:gold;--rating-star-inactive:#e0e0e0;--rating-star-hover:#ffed4e;--rating-excellent:#4caf50;--rating-good:#8bc34a;--rating-average:#ff9800;--rating-poor:#f44336;--review-card-bg:#fff;--review-card-border:#e0e0e0;--review-card-shadow:0 2px 8px #0000001a;--review-card-hover-shadow:0 4px 12px #00000026;--form-border:#d1d5db;--form-border-focus:#3b82f6;--form-bg:#fff;--form-error:#ef4444;--form-success:#10b981;--btn-primary:#3b82f6;--btn-primary-hover:#2563eb;--btn-secondary:#6b7280;--btn-secondary-hover:#4b5563;--btn-danger:#ef4444;--btn-danger-hover:#dc2626;--text-primary:#111827;--text-secondary:#6b7280;--text-muted:#9ca3af}.rating-display{align-items:center;gap:8px;display:flex}.rating-display.interactive{cursor:pointer}.rating-stars{gap:2px;display:flex}.rating-star{color:var(--rating-star-inactive);-webkit-user-select:none;user-select:none;transition:color .2s,transform .1s}.rating-star.filled{color:var(--rating-star-active)}.rating-star.half-filled{background:linear-gradient(90deg,var(--rating-star-active)50%,var(--rating-star-inactive)50%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.rating-star.interactive{cursor:pointer}.rating-star.interactive:hover{color:var(--rating-star-hover);transform:scale(1.1)}.rating-star.small{font-size:16px}.rating-star.medium{font-size:20px}.rating-star.large{font-size:24px}.rating-value{color:var(--text-primary);font-size:.9em;font-weight:600}.review-card{background:var(--review-card-bg);border:1px solid var(--review-card-border);box-shadow:var(--review-card-shadow);border-radius:12px;margin-bottom:16px;padding:20px;transition:box-shadow .2s}.review-card:hover{box-shadow:var(--review-card-hover-shadow)}.review-header{justify-content:space-between;align-items:flex-start;margin-bottom:12px;display:flex}.review-author{align-items:center;gap:12px;display:flex}.author-avatar{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:16px;font-weight:600;display:flex}.author-name{color:var(--text-primary);font-size:14px;font-weight:600}.review-date{color:var(--text-muted);font-size:12px}.review-content{margin:16px 0}.review-text{color:var(--text-primary);margin:0;font-size:14px;line-height:1.6}.review-actions{border-top:1px solid var(--review-card-border);gap:8px;margin-top:12px;padding-top:12px;display:flex}.review-updated{border-top:1px solid var(--review-card-border);margin-top:8px;padding-top:8px}.review-stats{background:var(--review-card-bg);border-radius:12px;margin-bottom:24px;padding:24px}.review-stats.no-reviews{text-align:center;padding:32px 24px}.stats-summary{align-items:center;gap:16px;margin-bottom:20px;display:flex}.stats-text{flex-direction:column;gap:4px;display:flex}.review-count{color:var(--text-primary);font-size:18px;font-weight:600}.review-prompt{color:var(--text-secondary);font-size:14px}.rating-description{color:var(--text-secondary);font-size:14px;font-weight:500}.rating-distribution{margin-top:20px}.distribution-title{color:var(--text-primary);margin-bottom:12px;font-size:16px;font-weight:600}.distribution-bars{flex-direction:column;gap:8px;display:flex}.distribution-row{align-items:center;gap:12px;display:flex}.star-label{min-width:32px;color:var(--text-secondary);font-size:14px}.distribution-bar{background:var(--rating-star-inactive);border-radius:4px;flex:1;height:8px;overflow:hidden}.distribution-fill{background:var(--rating-star-active);height:100%;transition:width .3s}.distribution-count{min-width:32px;color:var(--text-muted);text-align:right;font-size:12px}.review-form-container{margin-bottom:24px}.review-form{background:var(--form-bg);border:1px solid var(--form-border);border-radius:12px;padding:24px}.review-form.login-prompt{text-align:center;padding:32px 24px}.form-header{margin-bottom:20px}.form-header h3{color:var(--text-primary);margin:0 0 8px;font-size:20px}.form-subtitle{color:var(--text-secondary);margin:0;font-size:14px}.form-group{margin-bottom:20px}.form-label{color:var(--text-primary);margin-bottom:8px;font-size:14px;font-weight:600;display:block}.required{color:var(--form-error)}.rating-input{flex-direction:column;gap:8px;display:flex}.rating-help{color:var(--text-secondary);font-size:13px;font-style:italic}.form-textarea{border:1px solid var(--form-border);resize:vertical;border-radius:8px;width:100%;padding:12px;font-family:inherit;font-size:14px;line-height:1.5;transition:border-color .2s}.form-textarea:focus{border-color:var(--form-border-focus);outline:none}.character-count{color:var(--text-muted);justify-content:space-between;align-items:center;margin-top:4px;font-size:12px;display:flex}.count-warning{color:var(--form-error)}.form-actions{gap:12px;margin-top:20px;display:flex}.form-footer{border-top:1px solid var(--form-border);margin-top:16px;padding-top:16px}.review-list{margin-bottom:24px}.user-review-section{border-bottom:2px solid var(--review-card-border);margin-bottom:32px;padding-bottom:24px}.user-review-card h4{color:var(--text-primary);margin:0 0 16px;font-size:16px}.create-review-section{text-align:center;padding:24px}.btn-review{border-radius:8px;padding:12px 24px;font-size:16px}.reviews-content{margin-top:20px}.reviews-header h4{color:var(--text-primary);margin:0;font-size:18px}.review-sort{align-items:center;gap:12px;display:flex}.sort-label{color:var(--text-secondary);font-size:14px}.sort-buttons{gap:8px;display:flex}.sort-btn{border:1px solid var(--form-border);background:var(--form-bg);cursor:pointer;border-radius:6px;padding:6px 12px;font-size:13px;transition:all .2s}.sort-btn:hover{border-color:var(--btn-primary)}.sort-btn.active{background:var(--btn-primary);color:#fff;border-color:var(--btn-primary)}.reviews-grid{flex-direction:column;gap:16px;display:flex}.no-reviews{text-align:center;color:var(--text-secondary);padding:48px 24px}.no-reviews-icon{margin-bottom:16px;font-size:48px}.no-reviews h5{color:var(--text-primary);margin:0 0 8px}.no-reviews p{margin:0;font-size:14px}.pagination{justify-content:center;align-items:center;gap:8px;margin-top:24px;padding:20px 0;display:flex}.pagination-btn{border:1px solid var(--form-border);background:var(--form-bg);cursor:pointer;border-radius:6px;min-width:40px;padding:8px 12px;font-size:14px;transition:all .2s}.pagination-btn:hover:not(:disabled){border-color:var(--btn-primary);background:var(--btn-primary);color:#fff}.pagination-btn.active{background:var(--btn-primary);color:#fff;border-color:var(--btn-primary)}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.pagination-ellipsis{color:var(--text-muted);padding:8px 4px}.reviews-section{background:var(--review-card-bg);border-radius:12px;margin-bottom:24px;padding:24px}.reviews-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.reviews-header.collapsible{cursor:pointer;-webkit-user-select:none;user-select:none}.reviews-title{color:var(--text-primary);align-items:center;gap:12px;margin:0;font-size:22px;display:flex}.review-count-badge{background:var(--btn-primary);color:#fff;border-radius:12px;padding:4px 8px;font-size:12px;font-weight:500}.expand-toggle{cursor:pointer;background:0 0;border:none;border-radius:50%;padding:8px;transition:background-color .2s}.expand-toggle:hover{background:var(--review-card-border)}.toggle-icon{transition:transform .2s;display:inline-block}.toggle-icon.expanded{transform:rotate(180deg)}.reviews-stats-container{margin-bottom:24px}.stats-loading,.stats-error{background:var(--review-card-border);border-radius:8px;align-items:center;gap:8px;padding:16px;font-size:14px;display:flex}.retry-btn{border:1px solid var(--form-border);background:var(--form-bg);cursor:pointer;border-radius:4px;margin-left:8px;padding:4px 8px;font-size:12px}.reviews-preview{text-align:center;padding:16px 0}.preview-stats{color:var(--text-secondary);justify-content:center;align-items:center;gap:8px;font-size:14px;display:flex}.preview-rating{font-weight:600}.review-loading,.loading-overlay{color:var(--text-secondary);flex-direction:column;align-items:center;gap:12px;padding:40px 20px;display:flex}.loading-overlay{z-index:10;background:#fffc;position:absolute;inset:0}.loading-spinner{border:3px solid var(--review-card-border);border-top:3px solid var(--btn-primary);border-radius:50%;width:32px;height:32px;animation:1s linear infinite spin}.loading-spinner.small{border-width:2px;width:20px;height:20px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.alert{border-radius:8px;align-items:center;gap:8px;margin-bottom:16px;padding:12px 16px;font-size:14px;display:flex}.alert-error{color:var(--form-error);background:#fef2f2;border:1px solid #fecaca}.alert-success{color:var(--form-success);background:#f0fdf4;border:1px solid #bbf7d0}.alert-icon{font-size:16px}.btn{cursor:pointer;border:none;border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-size:14px;font-weight:500;text-decoration:none;transition:all .2s;display:inline-flex}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--btn-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--btn-primary-hover)}.btn-secondary{background:var(--btn-secondary);color:#fff}.btn-secondary:hover:not(:disabled){background:var(--btn-secondary-hover)}.btn-outline{color:var(--btn-secondary);border:1px solid var(--btn-secondary);background:0 0}.btn-outline:hover:not(:disabled){background:var(--btn-secondary);color:#fff}.btn-danger{background:var(--btn-danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--btn-danger-hover)}.btn-sm{padding:6px 12px;font-size:12px}.text-muted{color:var(--text-muted)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.review-filters-simple{background:var(--review-card-bg);border:1px solid var(--review-card-border);border-radius:8px;margin-bottom:20px;padding:16px}.simple-sort{align-items:center;gap:12px;display:flex}.simple-sort .sort-label{color:var(--text-secondary);font-size:14px;font-weight:500}.simple-sort .sort-buttons{gap:8px;display:flex}.simple-sort .sort-btn{border:1px solid var(--form-border);background:var(--form-bg);cursor:pointer;color:var(--text-secondary);border-radius:6px;padding:6px 12px;font-size:13px;transition:all .2s}.simple-sort .sort-btn:hover{border-color:var(--btn-primary);color:var(--btn-primary)}.simple-sort .sort-btn.active{background:var(--btn-primary);color:#fff;border-color:var(--btn-primary)}.review-filters-basic{background:var(--review-card-bg);border:1px solid var(--review-card-border);border-radius:8px;margin-bottom:20px;padding:16px}.basic-sort{align-items:center;gap:12px;display:flex}.basic-sort .sort-label{color:var(--text-secondary);font-size:14px;font-weight:500}.sort-select{border:1px solid var(--form-border);background:var(--form-bg);color:var(--text-primary);cursor:pointer;border-radius:6px;padding:6px 12px;font-size:14px}.review-filters{background:var(--review-card-bg);border:1px solid var(--review-card-border);border-radius:12px;margin-bottom:24px;padding:20px}.filters-header{border-bottom:1px solid var(--review-card-border);justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:12px;display:flex}.filters-title{color:var(--text-primary);margin:0;font-size:16px;font-weight:600}.filters-actions{gap:8px;display:flex}.reset-btn,.toggle-advanced{padding:4px 8px;font-size:12px}.filters-content,.basic-filters,.advanced-filters{gap:16px;display:grid}.filter-group{flex-direction:column;gap:8px;display:flex}.filter-label{color:var(--text-primary);margin:0;font-size:14px;font-weight:500}.filter-select,.filter-input{border:1px solid var(--form-border);background:var(--form-bg);border-radius:6px;padding:8px 12px;font-size:14px;transition:border-color .2s}.filter-select:focus,.filter-input:focus{border-color:var(--form-border-focus);outline:none}.rating-range,.date-range{align-items:center;gap:8px;display:flex}.range-separator{color:var(--text-secondary);padding:0 4px;font-size:12px}.sort-controls{align-items:center;gap:8px;display:flex}.sort-order-btn{border:1px solid var(--form-border);background:var(--form-bg);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;min-width:40px;padding:8px 12px;font-size:16px;transition:all .2s;display:flex}.sort-order-btn:hover{border-color:var(--btn-primary);background:var(--btn-primary);color:#fff}.sort-order-btn.desc{color:var(--btn-primary)}.sort-order-btn.asc{color:var(--rating-average)}.search-group{grid-column:1/-1}.search-input-wrapper{position:relative}.search-input{width:100%;padding-right:40px}.clear-search-btn{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:4px;padding:4px;font-size:14px;transition:all .2s;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.clear-search-btn:hover{background:var(--review-card-border);color:var(--text-primary)}.date-input{min-width:140px}.text-filter{gap:8px;display:flex}.active-filters{border-top:1px solid var(--review-card-border);margin-top:16px;padding-top:16px}.active-filters-label{color:var(--text-secondary);margin-bottom:8px;font-size:12px;display:block}.active-filter-tags{flex-wrap:wrap;gap:6px;display:flex}.filter-tag{background:var(--btn-primary);color:#fff;border-radius:12px;align-items:center;gap:4px;padding:4px 8px;font-size:12px;font-weight:500;display:inline-flex}.filter-tag button{color:#fff;cursor:pointer;background:0 0;border:none;border-radius:2px;justify-content:center;align-items:center;width:16px;height:16px;margin-left:4px;padding:0;font-size:12px;transition:background-color .2s;display:flex}.filter-tag button:hover{background:#fff3}@media (max-width:768px){.reviews-section,.review-card,.review-form{padding:16px}.reviews-header{flex-direction:column;align-items:flex-start;gap:12px}.review-sort{justify-content:flex-end;width:100%}.stats-summary{text-align:left;flex-direction:column;align-items:flex-start;gap:12px}.review-header{flex-direction:column;align-items:flex-start;gap:8px}.review-actions{flex-wrap:wrap}.form-actions{flex-direction:column}.pagination{flex-wrap:wrap}.author-avatar{width:36px;height:36px;font-size:14px}.review-filters{padding:16px}.filters-header{flex-direction:column;align-items:flex-start;gap:8px}.filters-actions{justify-content:flex-end;width:100%}.rating-range,.date-range{flex-direction:column;gap:8px}.range-separator{display:none}.sort-controls{flex-direction:column;align-items:stretch;gap:8px}.active-filter-tags{justify-content:flex-start}.filter-tag{font-size:11px}.user-dashboard{padding:16px}.dashboard-header{text-align:center;margin-bottom:20px}.analytics-grid{grid-template-columns:1fr;gap:12px}.analytics-card{padding:16px}.breakdown-bars{gap:8px}.breakdown-row{font-size:12px}.dashboard-sort{flex-direction:column;align-items:stretch;gap:8px}.sort-buttons{justify-content:space-between}}.user-dashboard{background:var(--review-card-bg);border-radius:12px;margin-bottom:24px;padding:24px}.dashboard-header{text-align:center;border-bottom:1px solid var(--review-card-border);margin-bottom:32px;padding-bottom:20px}.dashboard-title{color:var(--text-primary);margin:0 0 8px;font-size:24px;font-weight:600}.dashboard-subtitle{color:var(--text-secondary);margin:0;font-size:14px}.dashboard-message{text-align:center;padding:40px 20px}.dashboard-message h3{color:var(--text-primary);margin:0 0 12px}.dashboard-message p{color:var(--text-secondary);margin:0}.user-analytics{border:1px solid var(--review-card-border);background:linear-gradient(135deg,#f8fafc 0%,#e2e8f0 100%);border-radius:12px;margin-bottom:32px;padding:24px}.analytics-title{color:var(--text-primary);text-align:center;margin:0 0 20px;font-size:18px;font-weight:600}.analytics-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin-bottom:24px;display:grid}.analytics-card{background:var(--review-card-bg);text-align:center;border:1px solid var(--review-card-border);border-radius:10px;padding:20px;box-shadow:0 2px 4px #0000000d}.analytics-value{color:var(--btn-primary);justify-content:center;align-items:center;gap:8px;margin-bottom:4px;font-size:24px;font-weight:700;display:flex}.analytics-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:500}.rating-breakdown{margin-top:24px}.rating-breakdown h4{color:var(--text-primary);margin:0 0 16px;font-size:16px;font-weight:600}.breakdown-bars{flex-direction:column;gap:12px;display:flex}.breakdown-row{align-items:center;gap:12px;font-size:14px;display:flex}.breakdown-rating{min-width:32px;color:var(--text-secondary);font-weight:500}.breakdown-bar{background:var(--review-card-border);border-radius:4px;flex:1;height:8px;overflow:hidden}.breakdown-fill{background:linear-gradient(90deg,var(--rating-star-active)0%,var(--rating-excellent)100%);height:100%;transition:width .3s}.breakdown-count{text-align:right;min-width:40px;color:var(--text-muted);font-size:12px}.dashboard-sort{align-items:center;gap:12px;margin-bottom:20px;display:flex}.dashboard-sort .sort-label{color:var(--text-secondary);font-size:14px;font-weight:500}.dashboard-sort .sort-buttons{gap:8px;display:flex}.dashboard-sort .sort-btn{border:1px solid var(--form-border);background:var(--form-bg);cursor:pointer;color:var(--text-secondary);border-radius:6px;padding:6px 12px;font-size:13px;transition:all .2s}.dashboard-sort .sort-btn:hover{border-color:var(--btn-primary);color:var(--btn-primary)}.dashboard-sort .sort-btn.active{background:var(--btn-primary);color:#fff;border-color:var(--btn-primary)}.edit-review-section{background:#fffbf0;border:1px solid #fbbf24;border-radius:12px;margin-bottom:32px;padding:24px}.edit-review-section h3{color:var(--text-primary);margin:0 0 16px;font-size:18px}.dashboard-loading{color:var(--text-secondary);flex-direction:column;align-items:center;gap:16px;padding:60px 20px;display:flex}.dashboard-loading .loading-spinner{border-width:3px;width:40px;height:40px}.user-dashboard .reviews-section{background:0 0;border-radius:0;margin-bottom:0;padding:0}.user-dashboard .reviews-header{border-bottom:1px solid var(--review-card-border);margin-bottom:24px;padding-bottom:16px}.user-dashboard .reviews-header h3{color:var(--text-primary);margin:0;font-size:20px}.user-dashboard .no-reviews{background:var(--form-bg);border:1px solid var(--review-card-border);border-radius:12px;padding:60px 24px}.user-dashboard .no-reviews h4{color:var(--text-primary);margin:0 0 8px;font-size:18px}.user-dashboard .no-reviews p{color:var(--text-secondary);margin:0;line-height:1.5}
