.loader[data-v-a3201d8e]{display:flex;justify-content:center;gap:6px}.loader__dot[data-v-a3201d8e]{width:8px;height:8px;border-radius:50%;background:var(--color-accent);animation:loaderBounce-a3201d8e 1s ease-in-out infinite}.loader__dot[data-v-a3201d8e]:nth-child(2){animation-delay:.15s}.loader__dot[data-v-a3201d8e]:nth-child(3){animation-delay:.3s}@keyframes loaderBounce-a3201d8e{0%,80%,to{transform:scale(.6);opacity:.5}40%{transform:scale(1);opacity:1}}.product-card[data-v-9787462a]{display:flex;flex-direction:column;overflow:hidden;transition:box-shadow .2s ease,transform .2s ease}.product-card[data-v-9787462a]:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)}.product-card__image-wrap[data-v-9787462a]{position:relative;aspect-ratio:1/1;background:var(--color-sand)}.product-card__image[data-v-9787462a]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.product-card__image--placeholder[data-v-9787462a]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:2.4rem}.product-card__discount[data-v-9787462a]{position:absolute;top:10px;right:10px}.product-card__oos[data-v-9787462a]{position:absolute;top:10px;left:10px}.product-card__body[data-v-9787462a]{padding:14px 14px 16px;display:flex;flex-direction:column;gap:5px}.product-card__category[data-v-9787462a]{font-size:.72rem}.product-card__title[data-v-9787462a]{font-size:.95rem;font-weight:700;line-height:1.4;min-height:2.6em}.product-card__vendor[data-v-9787462a]{font-size:.72rem;color:var(--color-primary);font-weight:600}.product-card__price[data-v-9787462a]{margin-top:4px;display:flex;align-items:baseline;gap:8px}.product-detail-page[data-v-d62a326c]{padding:36px 20px 60px}.product-detail[data-v-d62a326c]{display:grid;grid-template-columns:1fr 1fr;gap:48px}.gallery__main[data-v-d62a326c]{aspect-ratio:1/1;background:var(--color-sand);border-radius:var(--radius);overflow:hidden}.gallery__main img[data-v-d62a326c]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.gallery__placeholder[data-v-d62a326c]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:4rem}.gallery__thumbs[data-v-d62a326c]{display:flex;gap:10px;margin-top:12px}.gallery__thumb[data-v-d62a326c]{width:64px;height:64px;border-radius:var(--radius-sm);overflow:hidden;border:2px solid transparent;padding:0;cursor:pointer}.gallery__thumb.active[data-v-d62a326c]{border-color:var(--color-accent)}.gallery__thumb img[data-v-d62a326c]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.info h1[data-v-d62a326c]{font-size:1.7rem;margin:8px 0 14px}.vendor-link[data-v-d62a326c]{display:inline-block;font-size:.83rem;font-weight:700;color:var(--color-primary);background:var(--color-sand);padding:5px 12px;border-radius:20px;margin-bottom:16px}.price-row[data-v-d62a326c]{display:flex;align-items:center;gap:12px;margin-bottom:18px}.price-row .price[data-v-d62a326c]{font-size:1.4rem;color:var(--color-primary)}.description[data-v-d62a326c]{color:var(--color-text-muted);margin-bottom:22px}.rating-summary[data-v-d62a326c]{display:flex;align-items:center;gap:8px;margin-bottom:16px}.rating-stars[data-v-d62a326c]{display:flex;gap:2px}.star[data-v-d62a326c]{color:var(--color-border);font-size:1.1rem}.star.filled[data-v-d62a326c]{color:#f59e0b}.star.small[data-v-d62a326c]{font-size:.9rem}.rating-text[data-v-d62a326c]{font-weight:700;font-size:.9rem}.rating-count[data-v-d62a326c]{color:var(--color-text-muted);font-size:.82rem}.rating-distribution[data-v-d62a326c]{padding:24px;margin:40px 0;border-radius:var(--radius)}.rating-distribution h3[data-v-d62a326c]{margin:0 0 16px;font-size:1.1rem}.dist-row[data-v-d62a326c]{display:flex;align-items:center;gap:10px;margin-bottom:8px}.dist-label[data-v-d62a326c]{width:36px;font-size:.82rem;font-weight:700;text-align:center}.dist-bar[data-v-d62a326c]{flex:1;height:8px;background:var(--color-sand);border-radius:4px;overflow:hidden}.dist-fill[data-v-d62a326c]{height:100%;background:#f59e0b;border-radius:4px;transition:width .4s}.dist-count[data-v-d62a326c]{width:28px;text-align:center;font-size:.82rem;color:var(--color-text-muted)}.variant-groups[data-v-d62a326c]{margin-bottom:20px}.variant-group[data-v-d62a326c]{margin-bottom:14px}.variant-group label[data-v-d62a326c]{display:block;font-size:.85rem;font-weight:700;margin-bottom:8px}.variant-options[data-v-d62a326c]{display:flex;flex-wrap:wrap;gap:8px}.variant-option[data-v-d62a326c]{border:1.5px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-sm);padding:8px 16px;font-size:.87rem;font-weight:600;cursor:pointer}.variant-option.active[data-v-d62a326c]{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.variant-option.disabled[data-v-d62a326c]{opacity:.4;text-decoration:line-through}.qty-row[data-v-d62a326c]{display:flex;align-items:center;gap:14px;margin-bottom:22px}.qty-row label[data-v-d62a326c]{font-size:.85rem;font-weight:700}.qty-control[data-v-d62a326c]{display:flex;align-items:center;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.qty-control button[data-v-d62a326c]{width:34px;height:34px;background:var(--color-sand);border:none;font-size:1rem;font-weight:700;cursor:pointer}.qty-control span[data-v-d62a326c]{width:40px;text-align:center;font-weight:700}.stock-note[data-v-d62a326c]{font-size:.8rem}.reviews-section[data-v-d62a326c]{margin-top:48px}.section-title[data-v-d62a326c]{font-size:1.3rem;margin-bottom:24px;padding-bottom:12px;border-bottom:2px solid var(--color-border)}.review-form[data-v-d62a326c]{padding:24px;margin-bottom:24px;border-radius:var(--radius)}.review-form h4[data-v-d62a326c]{margin:0 0 16px}.review-rating-input[data-v-d62a326c]{display:flex;align-items:center;gap:12px;margin-bottom:16px}.rating-label[data-v-d62a326c]{font-weight:700;font-size:.88rem}.stars-input[data-v-d62a326c]{display:flex;gap:4px}.star-btn[data-v-d62a326c]{background:none;border:none;font-size:1.5rem;color:var(--color-border);cursor:pointer;transition:color .15s;padding:0}.star-btn.filled[data-v-d62a326c]{color:#f59e0b}.review-title-input[data-v-d62a326c]{width:100%;padding:10px 14px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-family:inherit;font-size:.9rem;margin-bottom:12px}.review-title-input[data-v-d62a326c]:focus{outline:none;border-color:var(--color-primary)}.review-textarea[data-v-d62a326c]{width:100%;padding:10px 14px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-family:inherit;font-size:.9rem;resize:vertical;margin-bottom:12px}.review-textarea[data-v-d62a326c]:focus{outline:none;border-color:var(--color-primary)}.login-prompt[data-v-d62a326c]{padding:20px;text-align:center;border-radius:var(--radius)}.login-prompt a[data-v-d62a326c]{color:var(--color-primary);font-weight:700}.reviews-list[data-v-d62a326c]{display:flex;flex-direction:column;gap:16px}.review-item[data-v-d62a326c]{padding:20px;border-radius:var(--radius)}.review-header[data-v-d62a326c]{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.review-user[data-v-d62a326c]{display:flex;align-items:center;gap:10px}.avatar[data-v-d62a326c]{width:36px;height:36px;border-radius:50%;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem}.review-name[data-v-d62a326c]{display:block;font-weight:700;font-size:.88rem}.review-date[data-v-d62a326c]{font-size:.78rem;color:var(--color-text-muted)}.review-stars[data-v-d62a326c]{display:flex;gap:1px}.review-title[data-v-d62a326c]{margin:0 0 6px;font-size:.95rem}.review-comment[data-v-d62a326c]{margin:0;color:var(--color-text-muted);font-size:.9rem;line-height:1.7}.empty-reviews[data-v-d62a326c]{text-align:center;padding:30px;color:var(--color-text-muted)}.similar-section[data-v-d62a326c]{margin-top:48px}.similar-grid[data-v-d62a326c]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px}.empty-state[data-v-d62a326c]{text-align:center;padding:80px 20px}.empty-state .icon[data-v-d62a326c]{font-size:3rem;margin-bottom:12px}@media (max-width:800px){.product-detail[data-v-d62a326c]{grid-template-columns:1fr;gap:26px}.similar-grid[data-v-d62a326c]{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}}