.products-container[data-v-0dad63d8]{max-width:1400px;margin:0 auto;padding:30px 20px}.header-section[data-v-0dad63d8]{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.add-cart-toast[data-v-0dad63d8]{position:fixed;top:80px;left:50%;transform:translate(-50%);padding:10px 20px;background:#8b5cf6f2;color:#fff;border-radius:8px;font-size:14px;z-index:1000;animation:fadeInOut-0dad63d8 2.5s ease-out forwards}@keyframes fadeInOut-0dad63d8{0%,15%{opacity:0;transform:translate(-50%) translateY(-8px)}20%,80%{opacity:1;transform:translate(-50%) translateY(0)}85%,to{opacity:0;transform:translate(-50%) translateY(-8px)}}.page-title[data-v-0dad63d8]{color:#8b5cf6;font-size:2rem;font-weight:700;margin:0}.filter-section[data-v-0dad63d8]{display:flex;align-items:center}.category-filter[data-v-0dad63d8]{padding:10px 20px;border:2px solid #8B5CF6;border-radius:6px;background-color:#fff;color:#8b5cf6;font-size:1rem;cursor:pointer;outline:none;transition:all .3s ease}.category-filter[data-v-0dad63d8]:hover{background-color:#8b5cf6;color:#fff}.products-wrapper[data-v-0dad63d8]{margin-bottom:30px}.products-grid[data-v-0dad63d8]{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;width:100%}.product-card[data-v-0dad63d8]{background-color:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden;transition:all .3s ease;position:relative;display:flex;flex-direction:column}.product-card[data-v-0dad63d8]:hover{transform:translateY(-5px);box-shadow:0 8px 20px #8b5cf633}.product-image[data-v-0dad63d8]{width:100%;height:240px;background-color:#f9f9f9;display:flex;align-items:center;justify-content:center;overflow:hidden}.product-image img[data-v-0dad63d8]{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.product-info[data-v-0dad63d8]{padding:15px}.product-name[data-v-0dad63d8]{font-size:1.1rem;font-weight:700;color:#333;margin:0 0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-price[data-v-0dad63d8]{color:#8b5cf6;font-size:1.4rem;font-weight:700;margin:0 0 10px}.product-meta[data-v-0dad63d8]{display:flex;gap:15px;margin-bottom:15px;font-size:.85rem;color:#666}.meta-item[data-v-0dad63d8]{color:#999}.product-actions[data-v-0dad63d8]{display:flex;gap:10px}.btn[data-v-0dad63d8]{flex:1;padding:8px 12px;border:none;border-radius:6px;font-size:.9rem;cursor:pointer;transition:all .3s ease;font-weight:500}.btn-cart[data-v-0dad63d8]{background-color:#f3f4f6;color:#333}.btn-cart[data-v-0dad63d8]:hover{background-color:#e5e7eb;transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.btn-buy[data-v-0dad63d8]{background-color:#8b5cf6;color:#fff}.btn-buy[data-v-0dad63d8]:hover{background-color:#7c3aed;transform:translateY(-2px);box-shadow:0 4px 12px #8b5cf666}.preview-popup[data-v-0dad63d8]{position:absolute;width:280px;background:#fff;border-radius:12px;box-shadow:0 8px 24px #00000026;z-index:1000;padding:15px;animation:fadeIn-0dad63d8 .3s ease}@keyframes fadeIn-0dad63d8{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.preview-images[data-v-0dad63d8]{display:flex;gap:10px;margin-bottom:15px}.preview-cover[data-v-0dad63d8],.preview-page[data-v-0dad63d8]{flex:1;height:120px;-o-object-fit:contain;object-fit:contain;background-color:#f9f9f9;border-radius:6px}.preview-info[data-v-0dad63d8]{font-size:.9rem}.preview-name[data-v-0dad63d8]{font-size:1rem;font-weight:700;color:#333;margin:0 0 8px}.preview-price[data-v-0dad63d8]{color:#8b5cf6;font-size:1.2rem;font-weight:700;margin:0 0 12px}.preview-details[data-v-0dad63d8]{margin-bottom:12px;padding-top:12px;border-top:1px solid #eee}.detail-item[data-v-0dad63d8]{display:flex;margin-bottom:6px;font-size:.85rem}.detail-label[data-v-0dad63d8]{color:#666;min-width:70px}.detail-value[data-v-0dad63d8]{color:#333}.preview-desc-full[data-v-0dad63d8]{color:#666;line-height:1.6;font-size:.85rem;margin:0 0 12px;white-space:normal}.preview-rating[data-v-0dad63d8]{display:flex;align-items:center;gap:8px;padding-top:12px;border-top:1px solid #eee}.stars[data-v-0dad63d8]{display:flex;gap:2px}.stars .fa-star[data-v-0dad63d8]{color:#ddd;font-size:.85rem}.stars .fa-star.active[data-v-0dad63d8]{color:#fbbf24}.rating-score[data-v-0dad63d8]{color:#333;font-weight:600;font-size:.9rem}.rating-count[data-v-0dad63d8]{color:#999;font-size:.85rem}.pagination[data-v-0dad63d8]{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:30px}.page-btn[data-v-0dad63d8]{padding:10px 20px;border:2px solid #8B5CF6;border-radius:6px;background-color:#fff;color:#8b5cf6;font-size:1rem;cursor:pointer;transition:all .3s ease}.page-btn[data-v-0dad63d8]:hover:not(:disabled){background-color:#8b5cf6;color:#fff;transform:translateY(-2px)}.page-btn[data-v-0dad63d8]:disabled{opacity:.5;cursor:not-allowed}.page-info[data-v-0dad63d8]{color:#666;font-size:1rem;font-weight:500}@media(max-width:1200px){.products-grid[data-v-0dad63d8]{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.header-section[data-v-0dad63d8]{flex-direction:column;gap:15px;align-items:flex-start}.products-grid[data-v-0dad63d8]{grid-template-columns:repeat(2,1fr);gap:15px}}@media(max-width:480px){.products-grid[data-v-0dad63d8]{grid-template-columns:1fr}}.pay-modal-overlay[data-v-0dad63d8]{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.pay-modal[data-v-0dad63d8]{background:#fff;border-radius:12px;padding:0;max-width:360px;width:90%;box-shadow:0 20px 25px -5px #00000026}.pay-modal-header[data-v-0dad63d8]{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid #eee}.pay-modal-header h3[data-v-0dad63d8]{margin:0;font-size:1.125rem;font-weight:600}.pay-modal-close[data-v-0dad63d8]{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#666;line-height:1;padding:0 .25rem}.pay-modal-body[data-v-0dad63d8]{padding:1.25rem;text-align:center}.pay-qr[data-v-0dad63d8]{width:256px;height:256px;margin:0 auto 1rem;display:block}.pay-tip[data-v-0dad63d8]{font-size:.875rem;color:#666;margin-bottom:.5rem}.pay-status[data-v-0dad63d8]{font-size:.875rem;color:#333}.pay-error[data-v-0dad63d8]{color:#dc2626;font-size:.9375rem}.pay-loading[data-v-0dad63d8]{color:#666;font-size:.9375rem}
