.review-summary { display:inline-flex; align-items:center; flex-wrap:wrap; gap:8px; font-size:12px; color:var(--ink-soft); margin:4px 0 16px; width:fit-content; }
.review-summary:hover { color:var(--ink); }.review-stars { display:inline-flex; gap:2px; align-items:center; flex-shrink:0; }
.review-stars svg { width:16px; height:16px; fill:transparent; stroke:var(--muted); stroke-width:1.2; }.review-stars svg.filled { fill:var(--ink); stroke:var(--ink); }
.product-reviews { max-width:1600px; width:calc(100% - 2*clamp(24px,4vw,80px)); margin:0 auto 80px; padding:32px 0; scroll-margin-top:140px; border-top:1px solid var(--line); }
.reviews-heading { display:flex; justify-content:space-between; align-items:center; gap:24px; }.reviews-heading h2 { font-size:clamp(28px,3vw,40px); margin:8px 0 18px; }
.review-overview { display:flex; flex-wrap:wrap; align-items:center; gap:12px; font-size:14px; }.review-overview>span:last-child { color:var(--muted); }.review-overview .review-stars svg { width:20px; height:20px; }
.review-toolbar { display:flex; align-items:center; gap:18px; flex-wrap:wrap; padding:24px 0 18px; border-bottom:1px solid var(--line); }.review-toolbar label { display:flex; gap:10px; align-items:center; font-size:12px; color:var(--muted); }.review-toolbar select { padding:10px 30px 10px 12px; border-radius:10px; font-size:13px; }.review-toolbar>span { margin-left:auto; font-size:12px; color:var(--muted); }
.product-review { padding:22px 0; border-bottom:1px solid var(--line); }.review-meta { display:flex; align-items:center; gap:16px; margin-bottom:8px; font-size:13px; }.review-meta time { margin-left:auto; font-size:12px; color:var(--muted); }.product-review h3 { font-size:16px; margin:8px 0; }.product-review>p { font-size:14px; line-height:1.6; color:var(--ink-soft); margin:8px 0; max-width:850px; overflow-wrap:anywhere; }
.review-images { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }.review-photo { width:72px; height:72px; padding:0; border:0; border-radius:10px; overflow:hidden; background:var(--surface); cursor:pointer; }.review-photo img { width:100%; height:100%; object-fit:cover; }.review-video { display:block; width:min(300px,100%); max-height:190px; margin-top:12px; border-radius:12px; background:#090a0e; }
.review-thread { margin-top:12px; max-width:850px; }.review-thread summary { width:fit-content; display:flex; align-items:center; gap:8px; font-size:12px; font-weight:600; color:var(--ink-soft); cursor:pointer; list-style:none; }.review-thread summary::-webkit-details-marker { display:none; }.review-thread summary .moxy-icon { width:16px; height:16px; }.review-thread[open] summary .moxy-icon { transform:rotate(90deg); }.review-thread>div { margin:12px 0 0 12px; padding-left:16px; border-left:2px solid var(--line); }
.review-message { padding:14px 18px; border-radius:14px; background:var(--surface); margin-top:10px; }.review-message>div { display:flex; gap:10px; align-items:center; flex-wrap:wrap; font-size:12px; }.review-message span { color:var(--pink); }.review-message time { color:var(--muted); margin-left:auto; }.review-message p { font-size:13px; line-height:1.6; margin:8px 0 0; overflow-wrap:anywhere; }
.reviews-empty { padding:28px 0; }.reviews-empty p { font-size:17px; margin-bottom:8px; }.reviews-empty span { display:block; max-width:700px; color:var(--muted); font-size:14px; line-height:1.6; }.review-pagination { display:flex; justify-content:center; align-items:center; gap:18px; margin-top:22px; font-size:12px; }.review-pagination button:disabled { opacity:.35; cursor:default; }
.review-preview-note { font-size:12px; padding:12px 16px; border-radius:10px; background:var(--surface); color:var(--muted); }
.review-dialog { width:min(620px,calc(100% - 32px)); max-height:calc(100dvh - 32px); overflow:auto; padding:36px; border:1px solid var(--line); border-radius:24px; background:var(--paper); color:var(--ink); }.review-dialog h2 { font-size:28px; margin:0 30px 20px 0; }.review-dialog>p { color:var(--ink-soft); font-size:14px; line-height:1.6; }.review-form { display:grid; gap:16px; }.review-form label { display:grid; gap:8px; font-size:13px; }.review-form input:not([type=radio]),.review-form textarea { width:100%; background:var(--surface); color:var(--ink); border:1px solid var(--line); border-radius:10px; padding:12px; font:inherit; }.review-form input[type=file] { font-size:12px; }.review-form fieldset { padding:0; border:0; margin:0; }.review-form legend { font-size:13px; margin-bottom:8px; }.review-form-note { font-size:12px; line-height:1.5; color:var(--muted); }.review-form-error { color:var(--pink); font-size:13px; margin:0; }
.rating-picker { display:flex; gap:4px; position:relative; }.rating-picker input { position:absolute; opacity:0; width:1px; height:1px; }.rating-picker label { display:grid; place-items:center; width:42px; height:42px; border-radius:8px; cursor:pointer; }.rating-picker svg { width:28px; height:28px; fill:none; stroke:var(--muted); stroke-width:1; }.rating-picker .is-selected svg { fill:var(--ink); stroke:var(--ink); }.rating-picker input:focus-visible+label { outline:2px solid var(--ink); outline-offset:2px; }.review-enlarged { display:block; width:100%; max-height:75dvh; object-fit:contain; }
.rating-picker .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media(max-width:600px) { .reviews-heading { align-items:flex-start; flex-direction:column; gap:16px; }.review-toolbar { gap:12px; }.review-toolbar label { flex:1; flex-direction:column; align-items:stretch; }.review-toolbar>span { margin-left:0; flex-basis:100%; }.review-dialog { padding:28px 22px; }.product-reviews { width:calc(100% - 32px); margin-bottom:40px; }.review-message>div { gap:6px; }.review-message time { width:100%; margin-left:0; } }
