:root{--primary: #237954;--primary-dark: #0A4D47;--secondary: #12b981;--accent: rgba(15, 118, 110, .1);--food-orange: #f97316;--food-yellow: #f3a719;--dark: #2d3748;--light: #f8fafc;--lighter: #ffffff;--success: #10b981;--danger: #ef4444;--border: #e2e8f0;--text-primary: #1a1a1a;--text-secondary: #6b7280;--grey-color: #9ca3af;--text-muted: #9ca3af;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--radius-sm: 8px;--radius: 12px;--radius-lg: 16px;--transition: all .2s ease;--bs-primary: #0f766e !important}.products-section{padding:20px 0}.products-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;padding:0}.product-card{background:var(--lighter);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);transition:var(--transition);cursor:pointer;border:1px solid rgba(0,0,0,.06);position:relative;display:flex;flex-direction:column;height:100%}.product-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl);border-color:#23795433}.product-card:active{transform:translateY(-2px)}.product-image-wrapper{position:relative;width:100%;overflow:hidden}.product-image{position:relative;width:100%;height:220px;overflow:hidden;background:linear-gradient(135deg,#f5f5f5,#e8e8e8)}.product-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s cubic-bezier(.4,0,.2,1)}.product-card:hover .product-image img{transform:scale(1.05)}.image-overlay{position:absolute;bottom:0;left:0;right:0;height:50%;background:linear-gradient(to top,rgba(0,0,0,.3) 0%,transparent 100%);pointer-events:none;opacity:0;transition:opacity .3s ease}.product-card:hover .image-overlay{opacity:1}.discount-badge{position:absolute;top:12px;left:12px;background:var(--danger);color:#fff;padding:6px 12px;border-radius:20px;font-size:.75rem;font-weight:700;box-shadow:0 2px 8px #ef44444d;z-index:10;letter-spacing:.02em}.category-tag{position:absolute;top:12px;left:12px;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--text-primary);padding:6px 12px;border-radius:20px;font-size:.7rem;font-weight:600;box-shadow:var(--shadow-sm);z-index:9;border:1px solid rgba(0,0,0,.08)}.product-card:has(.discount-badge) .category-tag{top:50px}.favourite-btn{position:absolute;top:12px;right:12px;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:none;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition);color:var(--text-muted);z-index:10;box-shadow:var(--shadow-sm);border:1px solid rgba(0,0,0,.08)}.favourite-btn:hover{background:#fff;transform:scale(1.08);box-shadow:var(--shadow-md)}.favourite-btn i.fas.fa-heart{color:var(--danger);animation:heartBeat .3s ease}.favourite-btn i{font-size:1rem}@keyframes heartBeat{0%,to{transform:scale(1)}25%{transform:scale(1.2)}50%{transform:scale(1)}}.click-more-badge{position:absolute;bottom:12px;right:12px;background:var(--food-yellow);color:#fff;padding:8px 14px;border-radius:20px;font-size:.75rem;font-weight:600;display:flex;align-items:center;gap:6px;box-shadow:0 4px 12px #2379544d;z-index:10;opacity:1;transform:translateY(8px);transition:all .3s ease}.product-card:hover .click-more-badge{opacity:1;transform:translateY(0)}.click-more-badge svg{width:14px;height:14px}.product-content{padding:16px;display:flex;flex-direction:column;gap:12px;flex:1}.merchant-header{display:flex;align-items:flex-start;gap:12px;min-height:44px}.merchant-logo{width:44px;height:44px;border-radius:50%;object-fit:cover;border:2px solid var(--border);background:var(--light);flex-shrink:0;box-shadow:var(--shadow-sm)}.merchant-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.product-name{font-size:1rem;font-weight:700;color:var(--primary-dark);margin:0 0 4px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;letter-spacing:-.01em}.merchant-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.merchant-name{font-size:.8rem;font-weight:500;color:var(--text-secondary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px;text-transform:uppercase;flex-shrink:1}.merchant-rating{display:flex;align-items:center;gap:4px;font-size:.75rem;color:#fbbf24;white-space:nowrap;flex-shrink:0}.merchant-rating .stars{display:flex;gap:2px}.merchant-rating .stars i{font-size:.75rem}.merchant-rating .rating-val{font-weight:600;color:var(--text-primary);font-size:.75rem}.merchant-rating .review-count{color:var(--text-muted);font-size:.7rem}.share-btn{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:none;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition);color:var(--text-muted);box-shadow:var(--shadow-sm);border:1px solid rgba(0,0,0,.08);flex-shrink:0;margin-left:auto;margin-top:4px}.share-btn:hover{background:#fff;transform:scale(1.08);box-shadow:var(--shadow-md);color:var(--primary)}.share-btn i{font-size:.9rem}.product-description{font-size:.85rem;color:var(--text-secondary);line-height:1.5;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.info-grid{display:flex;flex-direction:column;gap:8px;padding:12px 0;border-top:1px solid rgba(0,0,0,.06);border-bottom:1px solid rgba(0,0,0,.06)}.info-item{display:flex;align-items:center;gap:10px;font-size:.8rem;color:var(--text-secondary);line-height:1.4}.info-item i{width:16px;font-size:.85rem;color:var(--text-muted);flex-shrink:0;text-align:center}.info-item.highlight{color:var(--primary);font-weight:600}.info-item.highlight i{color:var(--primary)}.info-item.stock{color:var(--success);font-weight:500}.info-item.stock i{color:var(--success)}.info-item span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.product-footer{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-top:auto;padding-top:4px}.price-section{flex:1;min-width:0}.price-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.current-price{font-size:1.25rem;font-weight:800;color:var(--primary);letter-spacing:-.02em;line-height:1}.original-price{font-size:.9rem;color:var(--text-muted);text-decoration:line-through;font-weight:500}.savings-text{font-size:.75rem;color:var(--success);font-weight:600;margin-top:4px;display:block}.add-btn{background:var(--primary);color:#fff;border:none;border-radius:24px;padding:12px 24px;font-size:.9rem;font-weight:700;display:flex;align-items:center;gap:8px;cursor:pointer;transition:var(--transition);box-shadow:0 4px 12px #23795440;white-space:nowrap}.add-btn:hover:not(:disabled){background:var(--primary-dark);transform:translateY(-2px);box-shadow:0 6px 16px #23795459}.add-btn:active:not(:disabled){transform:translateY(0)}.add-btn:disabled{background:var(--text-muted);cursor:not-allowed;box-shadow:none;opacity:.6}.add-btn i{font-size:.85rem}.cart-controls{display:flex;align-items:center;gap:4px;background:#23795414;border-radius:24px;padding:4px;border:1.5px solid rgba(35,121,84,.2)}.qty-btn{width:32px;height:32px;border-radius:50%;border:none;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition);font-size:.8rem}.qty-btn:hover{background:var(--primary-dark);transform:scale(1.08)}.qty-btn:active{transform:scale(.95)}.qty-value{min-width:32px;text-align:center;font-size:.95rem;font-weight:700;color:var(--text-primary);padding:0 4px}@media (min-width: 768px) and (max-width: 1023px){.products-grid{grid-template-columns:repeat(2,1fr);gap:20px}.product-image{height:200px}.product-content{padding:16px}.product-name{font-size:.95rem}.current-price{font-size:1.2rem}}@media (min-width: 1024px){.products-grid{grid-template-columns:repeat(3,1fr);gap:24px}.product-image{height:240px}.product-content{padding:18px;gap:14px}}@media (min-width: 1280px){.products-grid{grid-template-columns:repeat(4,1fr)}}@media (min-width: 1536px){.products-grid{grid-template-columns:repeat(5,1fr)}}@media (max-width: 767px){.products-grid{grid-template-columns:repeat(2,1fr);gap:12px}.product-image{height:160px}.product-content{padding:12px;gap:10px}.merchant-header{gap:10px}.merchant-logo{width:38px;height:38px}.product-name{font-size:.85rem}.merchant-name{font-size:.75rem}.product-description{font-size:.8rem;-webkit-line-clamp:2}.info-grid{gap:6px;padding:10px 0}.info-item{font-size:.75rem;gap:8px}.info-item i{font-size:.8rem;width:14px}.current-price{font-size:1.1rem}.original-price{font-size:.8rem}.add-btn{padding:10px 18px;font-size:.85rem}.cart-controls{padding:3px}.qty-btn{width:28px;height:28px;font-size:.75rem}.qty-value{font-size:.85rem;min-width:28px}.discount-badge,.category-tag{padding:5px 10px;font-size:.7rem;top:10px}.category-tag{left:10px}.product-card:has(.discount-badge) .category-tag{top:42px}.favourite-btn{width:36px;height:36px;top:10px;right:10px}.favourite-btn i{font-size:.9rem}.click-more-badge{padding:6px 10px;font-size:.7rem;bottom:10px;right:10px}}@media (max-width: 575px){.products-grid{grid-template-columns:1fr;gap:16px}.product-card{max-width:100%}.product-image{height:220px}.product-content{padding:14px}.merchant-header{gap:12px}.merchant-logo{width:42px;height:42px}.product-name{font-size:.95rem}.merchant-name{font-size:.8rem}.product-description{font-size:.85rem}.info-grid{gap:8px}.info-item{font-size:.8rem}.current-price{font-size:1.3rem}.product-footer{flex-direction:row;align-items:center}.add-btn{padding:12px 20px;font-size:.9rem}}@media (max-width: 399px){.product-image{height:200px}.product-content{padding:12px;gap:10px}.merchant-logo{width:40px;height:40px}.product-name{font-size:.9rem}.merchant-name{font-size:.75rem}.product-description{font-size:.8rem;-webkit-line-clamp:2}.info-item{font-size:.75rem}.current-price{font-size:1.15rem}.add-btn{padding:10px 16px;font-size:.85rem;gap:6px}.add-btn i{font-size:.8rem}}.product-image img{background:linear-gradient(90deg,#f0f0f0,#e8e8e8,#f0f0f0);background-size:200% 100%;animation:shimmer 1.5s infinite}.product-image img.loaded{animation:none;background:none}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.product-card:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.favourite-btn:focus-visible,.add-btn:focus-visible,.qty-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.loading-overlay{position:fixed;inset:0;background:#fffffff7;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:9999;overflow:none!important}.logo-beat{animation:logo-pulse 1.5s ease-in-out infinite}.logo-beat img{width:100px;height:auto}@keyframes logo-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background-color:var(--light);color:var(--dark);line-height:1.6}html{scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--primary) var(--light)}.app-container{min-height:100vh;position:relative}.global-loading{position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);opacity:7!important;display:flex;align-items:center;justify-content:center;z-index:9999;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.loading-content{text-align:center;color:var(--lighter)}.logo-loading{margin-bottom:2rem}.loading-logo{width:80px;height:80px;margin:0 auto 1rem;background:var(--lighter);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-lg);animation:bounce 2s infinite}.logo-img{width:60px;height:60px;border-radius:50%}.logo-loading h3{font-size:1.5rem;font-weight:700;margin:0;color:var(--light)}.spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.3);border-top:3px solid var(--light);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem}.loading-spinner p{margin:0;font-weight:500;opacity:.9}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}:host{display:block}html{scroll-behavior:smooth}*,*:before,*:after{box-sizing:border-box}.main-content{margin-top:15%}body{margin:0;padding:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--light);color:var(--dark);line-height:1.6}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--light)}::-webkit-scrollbar-thumb{background:var(--primary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--primary-dark)}::selection{background:var(--accent);color:var(--primary-dark)}.add-to-cart-btn:active,.btn-primary:active{background-color:var(--primary-dark)!important}.btn-primary:disabled{background-color:var(--dark)!important}.container{max-width:1200px;margin:0 auto;padding:0 15px}.btn{padding:10px 20px;border:none;border-radius:var(--radius);font-weight:600;cursor:pointer;transition:var(--transition);display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn-primary{background-color:var(--primary);color:#fff}.btn-primary:hover,.btn-primary:active{background-color:var(--primary-dark)}.btn btn-primary:active{background-color:var(--primary-dark)}.btn-outline{background-color:transparent;border:2px solid var(--primary);color:var(--primary)}.btn-outline:hover{background-color:var(--accent)}.badge{padding:4px 8px;border-radius:20px;font-size:.75rem;font-weight:600}.badge-success{background-color:var(--success);color:#fff}.badge-danger{background-color:var(--danger);color:#fff}.badge-warning{background-color:var(--food-yellow);color:#fff}.card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;transition:var(--transition)}.card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}.section-title{font-size:1.5rem;font-weight:700;margin-bottom:1rem;color:var(--dark)}.text-muted{color:#6b7280}.main-content{padding-bottom:80px}@media (min-width: 768px){.main-content{padding-bottom:30px}}@media (max-width: 700px){.main-content{margin-top:43%!important}}.error-message{color:#ff4d4f;background:#ff4d4f1a;border:1px solid #ff4d4f;border-radius:6px;padding:10px;margin:10px 0;font-size:.9rem;text-align:center}.is-invalid{border-color:#ff4d4f!important}.invalid-feedback{color:#ff4d4f;font-size:.8rem;margin-top:4px}.btn-outline-primary{border:1px solid var(--primary)!important;color:var(--primary)!important;background:transparent}.btn-outline-primary:hover{background-color:var(--primary)!important;color:var(--lighter)!important}.form-control{border-radius:var(--radius);border:1px solid var(--border);padding:.6rem .9rem;box-shadow:none!important;transition:var(--transition)}.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 .25rem #1a5d5440}.text-primary{color:var(--primary)!important}.form-label{font-weight:500;color:var(--dark)}.icons-primary{color:var(--primary)}a{text-decoration:none!important}.form-check-input{width:1.1rem;height:1.1rem;cursor:pointer;border-radius:4px;border:1.5px solid var(--border);background-color:var(--lighter);transition:var(--transition);appearance:none;position:relative}.form-check-input:checked{background-color:var(--primary);border-color:var(--primary)}.form-check-input:checked:after{content:"";position:absolute;top:.15rem;left:.35rem;width:.25rem;height:.55rem;border:solid var(--lighter);border-width:0 .15rem .15rem 0;transform:rotate(45deg)}.form-check-input:focus{box-shadow:0 0 0 .25rem #1a5d5440}.form-check-label{margin-left:.35rem;color:var(--dark);font-weight:400}.alert{border-radius:var(--radius);border:none;box-shadow:var(--shadow)}.alert-primary{background-color:var(--accent);color:var(--primary)}.alert-danger{background-color:#ef44441a;color:var(--danger)}a{color:var(--primary);text-decoration:none;transition:var(--transition)}a:hover{color:var(--secondary);text-decoration:underline}.modal-content{border-radius:var(--radius);border:none;box-shadow:var(--shadow-lg)}.modal-header{border-bottom:1px solid var(--border)}.modal-footer{border-top:1px solid var(--border)}.table{border-color:var(--border)}.table th{background-color:var(--accent);color:var(--primary-dark)}.table td{color:var(--dark)}.card,.dropdown-menu,.list-group-item{border-radius:var(--radius);box-shadow:var(--shadow);transition:var(--transition)}.bg-primary{background-color:var(--primary)!important}.bg-light{background-color:var(--light)!important}.bg-dark{background-color:var(--dark)!important}.golden-badge-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:5;pointer-events:none;display:flex;align-items:center;justify-content:center}.golden-badge{position:absolute;top:90%;left:25%;transform:translate(-50%,-50%);background:linear-gradient(135deg,gold,#ffc700,#fa0,#f90,#f80);width:120px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;box-shadow:0 0 20px #ffd700cc,0 4px 12px #0000004d,inset 0 2px 4px #fff9,inset 0 -2px 4px #0003;border:2px solid rgba(255,255,255,.4);z-index:6;overflow:hidden}.golden-badge:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(45deg,transparent 30%,rgba(255,255,255,.3) 50%,transparent 70%);animation:badge-shine 3s infinite linear}.badge-text{font-size:.65rem;font-weight:800;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5),0 0 4px rgba(255,165,0,.8);letter-spacing:.5px;text-transform:uppercase;padding:4px 8px;position:relative;z-index:2}@keyframes badge-shine{0%{transform:translate(-100%) translateY(-100%) rotate(45deg)}to{transform:translate(100%) translateY(100%) rotate(45deg)}}@media (max-width: 575px){.golden-badge{width:100px;height:32px;top:90%;left:45%}.badge-text{font-size:.5rem;padding:3px 6px}.category-badge{top:8px;left:8px;font-size:.6rem;padding:4px 8px;max-width:calc(100% - 80px)}.discount-badge{top:8px;right:8px;font-size:.6rem;padding:4px 8px}}.product-card:hover .golden-badge{animation:badge-beat .8s infinite ease-in-out}.product-card:hover .golden-badge:before{animation:badge-shine 1.5s infinite linear}
