.review-form-container{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:1.5rem}.review-form-title{color:#111827;margin:0 0 .25rem;font-size:1.25rem;font-weight:600}.review-form-subtitle{color:#6b7280;margin:0 0 1.25rem;font-size:.875rem}.login-notice,.anonymous-notice,.reviewer-info{border-radius:8px;margin-bottom:1rem;padding:.75rem 1rem;font-size:.875rem}.login-notice{color:#92400e;background:#fef3c7}.anonymous-notice{color:#4b5563;background:#f3f4f6}.reviewer-info{color:#065f46;background:#ecfdf5}.login-notice a,.anonymous-notice a{font-weight:500;text-decoration:none}.login-notice a:hover,.anonymous-notice a:hover{text-decoration:underline}.review-form{flex-direction:column;gap:1.25rem;display:flex}.form-group{flex-direction:column;gap:.375rem;display:flex}.form-label{color:#374151;font-size:.875rem;font-weight:500}.form-label.required:after{content:" *";color:#ef4444}.form-hint{color:#9ca3af;margin-top:.25rem;font-size:.75rem}.form-input,.form-textarea{border:1px solid #d1d5db;border-radius:8px;padding:.75rem;font-family:inherit;font-size:.875rem;transition:border-color .2s,box-shadow .2s}.form-input:focus,.form-textarea:focus{border-color:#3b82f6;outline:none;box-shadow:0 0 0 3px #3b82f61a}.form-input.invalid,.form-textarea.invalid{border-color:#ef4444}.form-input:disabled,.form-textarea:disabled{cursor:not-allowed;background:#f9fafb}.form-textarea{resize:vertical;min-height:80px}.char-count{color:#9ca3af;text-align:right;font-size:.75rem}.char-count.warning{color:#f59e0b}.chars-needed{color:#ef4444}.error-message{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:.75rem 1rem;font-size:.875rem}.success-message{text-align:center;padding:2rem 1rem}.success-icon{color:#16a34a;background:#dcfce7;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;margin:0 auto 1rem;font-size:1.5rem;display:flex}.success-message h3{color:#111827;margin:0 0 .5rem;font-size:1.125rem}.success-message p{color:#6b7280;margin:0 0 1rem;font-size:.875rem}.write-another-btn{cursor:pointer;background:0 0;border:none;padding:0;font-size:.875rem;font-weight:500}.write-another-btn:hover{text-decoration:underline}.login-prompt{text-align:center;padding:2rem 1rem}.login-prompt h3{color:#111827;margin:0 0 .5rem;font-size:1.125rem}.login-prompt p{color:#6b7280;margin:0 0 1.5rem;font-size:.875rem}.login-prompt-actions{justify-content:center;gap:.75rem;display:flex}.login-btn{color:#fff;border-radius:8px;justify-content:center;align-items:center;padding:.625rem 1.5rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:opacity .2s;display:inline-flex}.login-btn:hover{opacity:.9}.cancel-btn{color:#374151;cursor:pointer;background:#f3f4f6;border:none;border-radius:8px;padding:.625rem 1.5rem;font-size:.875rem;font-weight:500;transition:background .2s}.cancel-btn:hover{background:#e5e7eb}.submit-btn{color:#fff;cursor:pointer;background:#d1d5db;border:none;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;padding:.875rem 1.5rem;font-size:.9375rem;font-weight:600;transition:all .2s;display:flex}.submit-btn:not(:disabled):hover{opacity:.9;transform:translateY(-1px)}.submit-btn:disabled{cursor:not-allowed;opacity:.7}.submitting{align-items:center;gap:.5rem;display:flex}.spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.moderation-notice{color:#9ca3af;text-align:center;margin:.75rem 0 0;font-size:.75rem}@media (prefers-color-scheme:dark){.review-form-container{background:#1f2937;border-color:#374151}.review-form-title{color:#f9fafb}.review-form-subtitle{color:#9ca3af}.login-notice{color:#fcd34d;background:#451a03}.anonymous-notice{color:#d1d5db;background:#374151}.reviewer-info{color:#a7f3d0;background:#064e3b}.form-label{color:#e5e7eb}.form-input,.form-textarea{color:#f9fafb;background:#111827;border-color:#4b5563}.form-input:focus,.form-textarea:focus{border-color:#60a5fa;box-shadow:0 0 0 3px #60a5fa1a}.form-input:disabled,.form-textarea:disabled{background:#374151}.error-message{color:#fca5a5;background:#450a0a;border-color:#991b1b}.success-message h3,.login-prompt h3{color:#f9fafb}.success-message p,.login-prompt p{color:#9ca3af}.cancel-btn{color:#e5e7eb;background:#374151}.cancel-btn:hover{background:#4b5563}}[data-theme=dark] .review-form-container,.dark .review-form-container{background:#1f2937;border-color:#374151}[data-theme=dark] .review-form-title,.dark .review-form-title{color:#f9fafb}[data-theme=dark] .form-input,.dark .form-input,[data-theme=dark] .form-textarea,.dark .form-textarea{color:#f9fafb;background:#111827;border-color:#4b5563}@media (max-width:640px){.review-form-container{padding:1rem}.login-prompt-actions{flex-direction:column}.login-btn,.cancel-btn{width:100%}}
.reviews-list-container{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:1.5rem}.reviews-list-loading{color:#6b7280;flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:3rem 1rem;display:flex}.loading-spinner{border:3px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.reviews-empty{text-align:center;padding:3rem 1rem}.empty-icon{margin-bottom:1rem;font-size:3rem}.reviews-empty h3{color:#111827;margin:0 0 .5rem;font-size:1.25rem}.reviews-empty p{color:#6b7280;margin:0;font-size:.875rem}.reviews-list-header{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;display:flex}.reviews-count{color:#111827;margin:0;font-size:1.125rem;font-weight:600}.sort-dropdown{align-items:center;display:flex}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.sort-select{appearance:none;cursor:pointer;background:#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e") right .5rem center/1rem no-repeat;border:1px solid #d1d5db;border-radius:6px;padding:.5rem 2rem .5rem .75rem;font-size:.875rem}.sort-select:focus{border-color:#3b82f6;outline:none;box-shadow:0 0 0 3px #3b82f61a}.reviews-list{flex-direction:column;gap:1.5rem;display:flex}.review-card{border-bottom:1px solid #f3f4f6;padding-bottom:1.5rem}.review-card:last-child{border-bottom:none;padding-bottom:0}.review-author{align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.author-avatar{background:#e5e7eb;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex;overflow:hidden}.author-avatar img{object-fit:cover;width:100%;height:100%}.avatar-initial{color:#6b7280;font-size:1rem;font-weight:600}.author-info{flex:1;min-width:0}.author-name-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.author-name{color:#111827;font-size:.9375rem;font-weight:600}.author-badge{border-radius:9999px;padding:.125rem .5rem;font-size:.6875rem;font-weight:500}.author-level{color:#9ca3af;font-size:.6875rem;font-weight:500}.review-date{color:#9ca3af;margin-top:.125rem;font-size:.75rem;display:block}.review-rating-row{align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.review-title{color:#111827;margin:0;font-size:.9375rem;font-weight:600}.review-content{color:#374151;margin:0 0 .75rem;font-size:.875rem;line-height:1.6}.review-pros-cons{background:#f9fafb;border-radius:8px;flex-direction:column;gap:.5rem;margin-bottom:.75rem;padding:.75rem;display:flex}.pros,.cons{gap:.5rem;font-size:.8125rem;display:flex}.pros-label,.cons-label{flex-shrink:0;font-weight:500}.pros-content,.cons-content{color:#4b5563}.review-footer{align-items:center;gap:1rem;display:flex}.helpful-btn{color:#6b7280;cursor:pointer;background:0 0;border:1px solid #d1d5db;border-radius:6px;align-items:center;gap:.375rem;padding:.375rem .75rem;font-size:.8125rem;transition:all .2s;display:inline-flex}.helpful-btn:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af}.helpful-btn.voted{color:#059669;cursor:default;background:#ecfdf5;border-color:#10b981}.helpful-icon{font-size:.875rem}.helpful-count{color:#9ca3af}.verified-badge{color:#10b981;font-size:.75rem;font-weight:500}.load-more-container{border-top:1px solid #e5e7eb;justify-content:center;margin-top:1.5rem;padding-top:1.5rem;display:flex}.load-more-btn{cursor:pointer;background:#fff;border:2px solid;border-radius:8px;align-items:center;gap:.5rem;padding:.625rem 1.5rem;font-size:.875rem;font-weight:500;transition:all .2s;display:inline-flex}.load-more-btn:hover:not(:disabled){opacity:.8}.load-more-btn:disabled{opacity:.7;cursor:not-allowed}.btn-spinner{border:2px solid;border-top-color:#0000;border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin}@media (prefers-color-scheme:dark){.reviews-list-container{background:#1f2937;border-color:#374151}.reviews-list-header{border-color:#374151}.reviews-count,.author-name,.review-title,.reviews-empty h3{color:#f9fafb}.reviews-empty p,.review-date,.helpful-count,.author-level{color:#9ca3af}.review-content{color:#d1d5db}.review-card{border-color:#374151}.review-pros-cons{background:#111827}.pros-content,.cons-content{color:#9ca3af}.sort-select{color:#f9fafb;background-color:#374151;border-color:#4b5563}.helpful-btn{color:#9ca3af;border-color:#4b5563}.helpful-btn:hover:not(:disabled){background:#374151}.helpful-btn.voted{color:#34d399;background:#064e3b;border-color:#10b981}.load-more-container{border-color:#374151}.load-more-btn{background:#374151}.avatar-initial{color:#9ca3af}.author-avatar{background:#374151}}[data-theme=dark] .reviews-list-container,.dark .reviews-list-container{background:#1f2937;border-color:#374151}[data-theme=dark] .reviews-count,.dark .reviews-count,[data-theme=dark] .author-name,.dark .author-name,[data-theme=dark] .review-title,.dark .review-title{color:#f9fafb}[data-theme=dark] .review-content,.dark .review-content{color:#d1d5db}@media (max-width:640px){.reviews-list-container{padding:1rem}.reviews-list-header{flex-direction:column;align-items:flex-start;gap:.75rem}.author-name-row{flex-wrap:wrap}.review-rating-row{flex-direction:column;align-items:flex-start;gap:.5rem}.review-footer{flex-wrap:wrap}}
.rating-distribution-container{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:1.5rem}.rating-summary{text-align:center;border-bottom:1px solid #f3f4f6;margin-bottom:1.5rem;padding-bottom:1rem}.average-section{flex-direction:column;align-items:center;gap:.5rem;display:flex}.average-number{color:#111827;font-size:3rem;font-weight:700;line-height:1}.total-reviews{color:#6b7280;font-size:.875rem}.distribution-bars{flex-direction:column;gap:.625rem;display:flex}.rating-bar-row{text-align:left;background:0 0;border:none;border-radius:6px;grid-template-columns:60px 1fr 40px 45px;align-items:center;gap:.75rem;padding:.375rem .5rem;font-family:inherit;transition:background .15s;display:grid}.rating-bar-row.clickable{cursor:pointer}.rating-bar-row.clickable:hover{background:#f9fafb}.rating-bar-row.active{background:#f3f4f6}.rating-bar-row:disabled{cursor:default}.rating-label{color:#6b7280;white-space:nowrap;font-size:.8125rem}.bar-container{background:#e5e7eb;border-radius:6px;height:12px;overflow:hidden}.bar-fill{border-radius:6px;min-width:2px;height:100%;transition:width .3s}.rating-count{color:#374151;text-align:right;font-size:.8125rem;font-weight:500}.rating-percentage{color:#9ca3af;text-align:right;font-size:.75rem}.active-filter-notice{color:#6b7280;border-top:1px solid #e5e7eb;justify-content:center;align-items:center;gap:.75rem;margin-top:1rem;padding-top:1rem;font-size:.8125rem;display:flex}.clear-filter-btn{cursor:pointer;background:0 0;border:none;padding:0;font-size:.8125rem;font-weight:500}.clear-filter-btn:hover{text-decoration:underline}.rating-compact{align-items:center;gap:.5rem;display:flex}.compact-text{color:#9ca3af;font-size:.75rem}@media (prefers-color-scheme:dark){.rating-distribution-container{background:#1f2937;border-color:#374151}.rating-summary{border-color:#374151}.average-number{color:#f9fafb}.total-reviews{color:#9ca3af}.rating-bar-row.clickable:hover,.rating-bar-row.active{background:#374151}.rating-label{color:#9ca3af}.bar-container{background:#374151}.rating-count{color:#d1d5db}.rating-percentage{color:#6b7280}.active-filter-notice{color:#9ca3af;border-color:#374151}.compact-text{color:#6b7280}}[data-theme=dark] .rating-distribution-container,.dark .rating-distribution-container{background:#1f2937;border-color:#374151}[data-theme=dark] .average-number,.dark .average-number{color:#f9fafb}[data-theme=dark] .bar-container,.dark .bar-container{background:#374151}[data-theme=dark] .rating-count,.dark .rating-count{color:#d1d5db}@media (max-width:480px){.rating-distribution-container{padding:1rem}.rating-bar-row{grid-template-columns:55px 1fr 35px 40px;gap:.5rem}.rating-label,.rating-count,.rating-percentage{font-size:.75rem}.bar-container{height:10px}.average-number{font-size:2.5rem}}
.reviews-section{border-top:1px solid var(--border,#e5e7eb);margin-top:32px;padding:48px 0}.reviews-section-header{align-items:center;gap:12px;margin-bottom:24px;display:flex}.section-title{color:var(--text,#1f2937);margin:0;font-size:1.5rem;font-weight:700}.review-count-badge{background:var(--surface,#f3f4f6);color:var(--text-muted,#6b7280);border-radius:16px;align-items:center;padding:4px 12px;font-size:.875rem;font-weight:500;display:inline-flex}.reviews-loading{flex-direction:column;gap:24px;display:flex}.loading-skeleton-block{background:linear-gradient(90deg,var(--border,#e5e7eb)25%,var(--surface,#f3f4f6)50%,var(--border,#e5e7eb)75%);background-size:200% 100%;border-radius:12px;height:120px;animation:1.5s infinite shimmer}.loading-skeleton-block.tall{height:200px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.reviews-summary-row{grid-template-columns:1fr 1fr;gap:32px;margin-bottom:32px;display:grid}.rating-distribution-wrapper{align-items:flex-start;display:flex}.write-review-wrapper{flex-direction:column;justify-content:flex-start;align-items:flex-start;display:flex}.write-review-btn{color:#fff;cursor:pointer;border:none;border-radius:8px;padding:12px 24px;font-size:1rem;font-weight:600;transition:opacity .2s,transform .15s}.write-review-btn:hover{opacity:.9;transform:translateY(-1px)}.write-review-btn:active{transform:translateY(0)}.review-form-container{background:var(--surface,#fff);border:1px solid var(--border,#e5e7eb);border-radius:12px;width:100%;max-width:500px;overflow:hidden;box-shadow:0 4px 12px #0000000d}.form-header{background:var(--background,#f9fafb);border-bottom:1px solid var(--border,#e5e7eb);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.form-header h3{color:var(--text,#1f2937);margin:0;font-size:1.125rem;font-weight:600}.close-form-btn{width:32px;height:32px;color:var(--text-muted,#6b7280);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;font-size:1.5rem;transition:background-color .15s;display:flex}.close-form-btn:hover{background:var(--border,#e5e7eb)}.review-form-container>.review-form-container{box-shadow:none;border:none;border-radius:0;padding:0}.reviews-list-wrapper{margin-top:16px}@media (prefers-color-scheme:dark){.reviews-section{border-top-color:#374151}.section-title{color:#f9fafb}.review-count-badge{color:#9ca3af;background:#374151}.loading-skeleton-block{background:linear-gradient(90deg,#374151 25%,#4b5563 50%,#374151 75%) 0 0/200% 100%}.review-form-container{background:#1f2937;border-color:#374151}.form-header{background:#111827;border-bottom-color:#374151}.form-header h3{color:#f9fafb}.close-form-btn{color:#9ca3af}.close-form-btn:hover{background:#374151}}@media (max-width:768px){.reviews-section{margin-top:24px;padding:32px 0}.reviews-summary-row{grid-template-columns:1fr;gap:24px}.section-title{font-size:1.25rem}.write-review-wrapper{align-items:stretch}.write-review-btn{width:100%}.review-form-container{max-width:100%}}@media (max-width:480px){.reviews-section-header{flex-direction:column;align-items:flex-start;gap:8px}.form-header{padding:12px 16px}}
.similar-businesses{max-width:80rem;margin:2rem auto;padding:0 1rem}@media (min-width:768px){.similar-businesses{padding:0 2rem}}.similar-businesses-heading{color:#111827;margin:0 0 1rem;font-size:1.375rem;font-weight:700}.similar-businesses-grid{grid-template-columns:1fr;gap:1rem;display:grid}@media (min-width:480px){.similar-businesses-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:768px){.similar-businesses-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width:1024px){.similar-businesses-grid{grid-template-columns:repeat(4,1fr)}}.similar-card{color:inherit;background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;flex-direction:column;text-decoration:none;transition:box-shadow .2s,transform .2s;display:flex;overflow:hidden}.similar-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.similar-card-image-wrapper{aspect-ratio:16/9;background:#f3f4f6;position:relative;overflow:hidden}.similar-card-image{object-fit:cover}.similar-card-placeholder{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.similar-card-match-badge{color:#fff;z-index:1;border-radius:9999px;align-items:center;padding:.125rem .5rem;font-size:.6875rem;font-weight:600;display:inline-flex;position:absolute;top:.5rem;right:.5rem}.similar-card-streetview-badge{color:#fff;z-index:1;background:#0009;border-radius:.25rem;padding:.125rem .375rem;font-size:.625rem;font-weight:600;position:absolute;bottom:.375rem;left:.375rem}.similar-card-body{flex-direction:column;flex:1;gap:.25rem;padding:.75rem;display:flex}.similar-card-name{color:#111827;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.9375rem;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.similar-card-location{color:#6b7280;align-items:center;gap:.25rem;margin:0;font-size:.8125rem;display:flex}.similar-card-rating{color:#374151;align-items:center;gap:.25rem;font-size:.8125rem;font-weight:500;display:flex}.similar-card-rating svg{flex-shrink:0}@media (prefers-reduced-motion:reduce){.similar-card:hover{transform:none}}
.breadcrumb{color:#6b7280;padding:1rem 0;font-size:.875rem}.breadcrumb a{color:var(--color-primary,#22c55e)}.breadcrumb span{margin:0 .5rem}
