@import url(https://fonts.googleapis.com/css2?family=Manrope:wght@300&family=Space+Grotesk:wght@300;400;500;600;700&display=swap);:root{--color-primary:#1a1f36;--color-secondary:#64748b;--color-accent:#fbbf24;--color-background:#f1f5f9;--color-surface:#fff;--color-text:#0f172a;--color-success:#10b981;--color-error:#ef4444;--color-warning:#f59e0b;--color-info:#3b82f6;--coles-color:#f33;--woolworths-color:#00a000;--font-primary:"Space Grotesk",sans-serif;--font-secondary:"Manrope",sans-serif;--transition-duration:0.3s;--transition-timing:cubic-bezier(0.16,1,0.3,1)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f1f5f9;background-color:var(--color-background);color:#0f172a;color:var(--color-text);font-family:Space Grotesk,sans-serif;font-family:var(--font-primary);font-size:16px;line-height:1.5}h1,h2,h3,h4,h5,h6{font-family:Manrope,sans-serif;font-family:var(--font-secondary);font-weight:300}h1{font-size:clamp(2rem,5vw,3rem)}h2{font-size:clamp(1.5rem,4vw,2.5rem)}h3{font-size:clamp(1.25rem,3vw,2rem)}h4{font-size:clamp(1rem,2.5vw,1.5rem)}h5{font-size:clamp(.875rem,2vw,1.25rem)}h6{font-size:clamp(.75rem,1.5vw,1rem)}.flex{display:flex}.flex-column{flex-direction:column}.flex-center{align-items:center;justify-content:center}.transition-all{transition:all .3s ease-in-out;transition:all var(--transition-duration) ease-in-out}.transition-transform{transition:transform .3s ease-in-out;transition:transform var(--transition-duration) ease-in-out}@keyframes slideInFromBottom{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease-in-out;animation:fadeIn var(--transition-duration) ease-in-out}.slide-in{animation:slideInFromBottom .3s ease-in-out;animation:slideInFromBottom var(--transition-duration) ease-in-out}@media print{body{background:#fff;background:var(--color-surface);font-size:12pt;line-height:1.4}a,body{color:#0f172a;color:var(--color-text)}a{text-decoration:underline}.no-print{display:none}}.footer{background-color:var(--color-background);border-top:1px solid #00000014;font-family:var(--font-primary);margin-top:auto;padding:clamp(1.5rem,3vw,2rem) 0;width:100%}.footer-container{margin:0 auto;max-width:1200px;padding:0 clamp(1rem,2vw,2rem)}.footer-content{align-items:center;display:flex;flex-direction:column;gap:1.5rem;text-align:center}.footer-nav{display:flex;flex-wrap:wrap;gap:clamp(1.5rem,3vw,2.5rem);justify-content:center;margin:0;padding:0}.footer-link{color:var(--color-secondary);font-size:clamp(.875rem,1.6vw,.95rem);font-weight:400;padding:.25rem 0;position:relative;text-decoration:none;transition:color var(--transition-duration) ease}.footer-link:focus,.footer-link:hover{color:var(--color-primary)}.footer-link:focus{border-radius:2px;outline:2px solid var(--color-accent);outline-offset:2px}.footer-info{align-items:center;display:flex;flex-direction:column;gap:.5rem;max-width:600px}.copyright{color:var(--color-primary);font-size:clamp(.875rem,1.6vw,.9rem);font-weight:400;margin:0}.disclaimer{color:var(--color-secondary);font-size:clamp(.75rem,1.4vw,.8rem);font-weight:300;line-height:1.4;margin:0}body,html{height:100%}body{margin:0;padding:0}#root,.App{display:flex;flex-direction:column;min-height:100vh}.App{flex:1 1}.main-content{display:flex;flex:1 1;flex-direction:column}@media (min-width:768px){.footer-content{align-items:center;flex-direction:row;justify-content:space-between;text-align:left}.footer-info{align-items:flex-end;text-align:right}}@media (max-width:480px){.footer{padding:1.25rem 0}.footer-content,.footer-nav{gap:1.25rem}}@media (prefers-reduced-motion:reduce){.footer-link{transition:none}}@media print{.footer{border-top:1px solid var(--color-secondary);break-inside:avoid;page-break-inside:avoid}.footer-nav{display:none}.footer-content{justify-content:center}.footer-info{align-items:center;text-align:center}}@media (prefers-contrast:high){.footer{border-top:2px solid var(--color-primary)}.footer-link{color:var(--color-primary)}.footer-link:focus,.footer-link:hover{background-color:var(--color-accent);color:var(--color-primary)}}.header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:var(--color-background);border-bottom:1px solid #64748b1a;position:sticky;top:0;transition:all var(--transition-duration) var(--transition-timing);z-index:1000}.header-content{justify-content:space-between;margin:0 auto;max-width:1200px;min-height:80px;padding:20px 28px 20px 20px}.header-content,.logo{align-items:center;display:flex}.logo{gap:16px;position:relative;text-decoration:none;transition:all var(--transition-duration) var(--transition-timing)}.logo:hover{transform:translateY(-1px)}.logo-icon-container{align-items:center;background:linear-gradient(135deg,var(--color-primary) 50%,var(--color-accent) 100%);border-radius:12px;box-shadow:0 4px 12px #1a1f3640;display:flex;height:48px;justify-content:center;transition:all var(--transition-duration) var(--transition-timing);width:48px}.logo:hover .logo-icon-container{box-shadow:0 6px 20px #1a1f3659;transform:scale(1.05)}.logo-icon{color:var(--color-surface);filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.logo-text{display:flex;flex-direction:column;line-height:1}.logo-halfprice{font-size:28px;font-weight:700}.logo-grocery,.logo-halfprice{color:var(--color-primary);font-family:var(--font-primary);letter-spacing:-.5px}.logo-grocery{font-weight:300}.logo-tagline{color:var(--color-secondary);font-family:var(--font-secondary);font-size:12px;font-weight:500;letter-spacing:1.5px;opacity:.8;text-transform:uppercase}.heart-button{background:none;border:none;color:var(--color-error);cursor:pointer;position:relative;transition:color var(--transition-duration) ease,transform var(--transition-duration) ease}.heart-button:hover{transform:scale(1.1)}.heart-count{align-items:center;background-color:var(--color-accent);border-radius:12px;color:var(--color-text);display:flex;font-size:12px;height:18px;justify-content:center;min-width:18px;padding:2px 6px;position:absolute;right:-5px;top:-5px;transition:transform var(--transition-duration) ease}.heart-button:hover .favorites-count{transform:scale(1.1)}@media (max-width:768px){.header-content{min-height:72px;padding:16px 26px 16px 24px}.logo{gap:12px}.logo-icon-container{box-shadow:0 3px 10px #1a1f3633;height:44px;width:44px}.logo-tagline{font-size:11px}}@media (max-width:600px){.header{box-shadow:0 1px 2px #0f172a0d}.header-content{min-height:64px;padding:12px 20px 12px 16px}.logo{gap:10px}.logo-icon-container{border-radius:10px;box-shadow:0 2px 8px #1a1f3626;height:40px;width:40px}}@media (max-width:375px){.header-content{min-height:60px;padding:10px 16px 10px 12px}.logo-icon-container{height:36px;width:36px}}.favorites-modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#0009;display:grid;inset:0;overscroll-behavior:contain;place-items:center;position:fixed;touch-action:none;transition:opacity .3s ease;z-index:1000}.favorites-modal{background-color:var(--color-background);border-radius:16px;display:flex;flex-direction:column;isolation:isolate;max-height:90vh;max-width:800px;overflow:hidden;position:relative;touch-action:auto;width:95%}.favorites-modal,.favorites-modal.visible{animation:slideUp .3s cubic-bezier(.16,1,.3,1)}.favorites-modal-content{display:flex;flex-direction:column;height:100%;position:relative;touch-action:pan-y}.swipe-indicator{flex-shrink:0;margin:8px auto 6px}.favorites-header{align-items:center;display:flex;flex-shrink:0;justify-content:space-between;padding:6px 16px;position:relative}.favorites-content{-webkit-overflow-scrolling:touch;flex:1 1;overflow-y:auto;overscroll-behavior:contain;padding:8px}.no-favorites{color:var(--color-secondary);font-size:1rem;font-style:italic;padding:32px 16px;text-align:center}.favorites-grid{grid-gap:4px;display:grid;gap:4px;grid-template-columns:repeat(auto-fill,minmax(150px,2fr))}.favorites-header-content{align-items:center;display:flex;justify-content:space-between;width:100%}.favorites-actions{align-items:center;display:flex;gap:.75rem}@media (max-width:600px){.favorites-modal{border-radius:0 0 20px 20px;height:100%;margin-top:auto;max-height:100vh;width:100%}.swipe-indicator{background-color:#fff6;height:5px;margin:12px auto 8px;width:50px}.favorites-header{padding:6px 16px}.favorites-content{padding:6px}}.favorites-modal:not(.visible){animation:slideDown .3s cubic-bezier(.4,0,.6,1)}@keyframes slideDown{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(20px)}}.close-button{-webkit-tap-highlight-color:transparent;align-items:center;background:none;border:none;border-radius:8px;color:var(--color-text);cursor:pointer;display:flex;justify-content:center;min-height:32px;min-width:32px;opacity:.7;padding:6px;position:absolute;right:8px;top:6px;touch-action:manipulation;transition:all .2s ease;-webkit-user-select:none;user-select:none}.close-button:hover{background-color:#ffffff1a;color:var(--color-primary);opacity:1;transform:rotate(90deg) scale(1.05)}.close-button:active{transform:rotate(90deg) scale(.95);transition-duration:.1s}.close-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}@media (hover:none) and (pointer:coarse){.close-button:hover{background-color:initial;transform:none}}.favorites-tabs{display:flex;gap:24px;padding:20px 0 0}.favorites-tab{background:none;border:none;color:var(--color-secondary);cursor:pointer;font-size:18px;font-weight:400;padding:16px 24px;position:relative;transition:all .2s ease}.favorites-tab:after{background:var(--color-accent);bottom:0;content:"";height:2px;left:0;position:absolute;transform:scaleX(0);transition:transform .2s ease;width:100%}.favorites-tab.active{color:var(--color-primary)}.favorites-tab.active:after{transform:scaleX(1)}.tab-count{align-items:center;background:var(--color-accent);border-radius:10px;color:var(--color-primary);display:inline-flex;font-size:12px;font-weight:500;height:20px;justify-content:center;min-width:20px;padding:0 6px;position:absolute;right:2px;top:4px}@media (max-width:768px){.favorites-tabs{margin:0;padding:20px}#thisWeekFavorites{padding:25px 20px 20px 0}#allTimeFavorites{padding:20px 35px 20px 20px}.tab-count{right:25px}}.product-card{background-color:var(--color-surface);border-radius:6px;display:flex;flex-direction:column;overflow:hidden;position:relative}.product-image-container{flex:0 0 auto;margin-top:10px;overflow:hidden;padding:10px;position:relative}.product-image{height:140px;object-fit:contain;transition:transform .3s ease-in-out;width:100%;will-change:transform}.product-card:hover .product-image{transform:scale(1.05)}.savings-badge{background-color:var(--color-accent);border-radius:24px;box-shadow:0 2px 4px #0003;color:var(--color-primary);font-size:.9rem;overflow:hidden;padding:4px 8px;position:absolute;right:10px;top:10px;transform:rotate(-5deg);transition:transform .3s ease;z-index:2}.savings-badge:hover{transform:rotate(0deg) scale(1.05)}.brand-logo{background-color:#fffc;border-radius:4px;bottom:10px;height:auto;left:15px;padding:2px;position:absolute;width:50px}.product-info-container{background-color:var(--color-background);display:flex;flex-direction:column;flex-grow:1;justify-content:space-between;padding:.8rem}.product-card .product-name{color:var(--color-primary);font-size:1.125rem;font-weight:300;line-height:1.3;margin-bottom:5px}.price-container{align-items:baseline;display:flex;flex-wrap:wrap;gap:.5rem}.product-card .current-price,.product-card .original-price{margin:5px 0}.product-card .current-price{color:var(--color-primary);font-size:1.125rem;font-weight:500}.price-and-actions-container{align-items:center;display:flex;justify-content:space-between;margin-bottom:5px}.product-card .original-price{color:var(--color-secondary);-webkit-text-decoration:line-through solid #6c6c6c;-moz-text-decoration:line-through solid #6c6c6c;text-decoration:line-through solid #6c6c6c;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-decoration-thickness:1px}.price-per-unit{color:var(--color-secondary);font-size:.8rem;margin:0}.product-actions{display:flex;gap:5px}.favorite-button,.price-history-button{background:none;border:none;color:var(--color-primary);cursor:pointer;padding:0;transition:color .2s ease-in-out,transform .2s ease-in-out}.favorite-button:hover,.price-history-button:hover{transform:scale(1.3)}@media (max-width:767px){.product-image{height:160px}.savings-badge{font-size:.6rem}.product-card .product-name{font-size:1rem;line-height:1.2}}@media (min-width:900px){.product-image{height:180px}.product-card .current-price,.product-card .product-name{font-size:1.1rem}}.price-history-modal{align-items:center;animation:fadeIn .3s cubic-bezier(.16,1,.3,1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background-color:#0009;display:flex;height:100%;justify-content:center;left:0;outline:none;overscroll-behavior:contain;position:fixed;top:0;touch-action:none;transition:opacity .3s ease;width:100%;z-index:1100}.price-history-modal.visible{opacity:1}.price-history-modal:not(.visible){opacity:0}.price-history-content{animation:slideUp .4s cubic-bezier(.16,1,.3,1);background-color:var(--color-surface);border:1px solid #ffffff14;border-radius:24px;box-shadow:0 16px 32px #0003,0 0 0 1px #ffffff1a;isolation:isolate;max-height:90vh;max-width:900px;outline:none;overflow:hidden;padding:0;position:relative;touch-action:pan-y;transform:translateZ(0);width:92%}.price-history-modal:focus-visible{outline:3px solid var(--color-primary);outline-offset:-3px}.modal-header{align-items:flex-start;display:flex;justify-content:space-between;padding:8px 16px 0;position:relative}.swipe-indicator{background-color:#ffffff4d;border-radius:2px;cursor:grab;height:4px;left:50%;position:absolute;top:8px;transform:translateX(-50%);width:40px}.swipe-indicator:active{cursor:grabbing}@media (hover:hover) and (pointer:fine){.price-history-modal{cursor:pointer}.price-history-content{cursor:default}.swipe-indicator{display:none}.modal-header{padding:12px 20px 0}}.price-history-title{color:var(--color-primary);font-size:1.75rem;font-weight:800;letter-spacing:-.02em;margin:12px 16px 20px;padding-right:40px}.price-history-subtitle{color:var(--color-secondary);display:block;font-size:1.2rem;font-weight:600;letter-spacing:-.01em;margin-top:.75em}.price-summary{grid-gap:20px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:var(--color-background);border:1px solid #ffffff0f;border-radius:16px;display:grid;gap:20px;grid-template-columns:repeat(3,1fr);margin:20px 16px;padding:20px}.price-history-content>:last-child{-webkit-overflow-scrolling:touch;margin:0 16px 16px;overflow-y:auto;overscroll-behavior:contain}.keyboard-hint{bottom:16px;color:var(--color-secondary);font-size:.75rem;left:50%;opacity:.7;pointer-events:none;position:absolute;transform:translateX(-50%)}body.modal-open{overflow:hidden!important;position:fixed!important;width:100%!important}@media (max-width:768px){.keyboard-hint{display:none}}@media (max-width:480px){.price-history-content{border-radius:0 0 20px 20px;height:100%;margin-top:auto;max-height:100vh;padding:0;width:100%}.modal-header{padding:12px 16px 0}.swipe-indicator{background-color:#fff6;display:block;height:5px;top:12px;width:50px}.price-history-title{font-size:1.3rem;margin:12px 16px;padding-right:20px}.price-history-subtitle{font-size:1rem}.price-summary{gap:12px;margin:16px 12px;padding:16px}.price-history-content>:last-child{margin:0 12px 12px}}@media (min-width:1024px){.price-history-content{max-width:1000px}.price-history-title{font-size:2rem;margin:16px 24px 24px}.modal-header{padding:16px 24px 0}.price-summary{margin:24px;padding:24px}.price-history-content>:last-child{margin:0 24px 24px}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (prefers-contrast:high){.price-history-modal:focus-visible{outline:3px solid #000}}@media (prefers-reduced-motion:reduce){.price-history-content,.price-history-modal{animation:none;transition:none}}.product-grid{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));margin:0;padding:0}@media (min-width:540px){.product-grid{gap:8px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}@media (min-width:768px){.product-grid{gap:10px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}}@media (min-width:1024px){.product-grid{gap:12px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}@media (min-width:1200px){.product-grid{gap:14px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}}.product-grid>*{margin:0;padding:0}.loading-spinner-container{align-items:center;display:flex;flex-direction:column;height:100vh;justify-content:center}.loading-spinner{animation:spin 1s linear infinite;border-top:3px solid var(--color-surface);border:3px solid var(--color-surface);border-radius:50%;border-top-color:var(--color-primary);height:50px;width:50px;will-change:transform}.loading-text{color:var(--color-primary);font-size:1.2rem;margin-top:20px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
/*# sourceMappingURL=main.2525903b.css.map*/