:root{color-scheme:light dark;--bg: #fbfbfd;--fg: #16161a;--muted: #6b6b76;--card: #fff;--line: #e4e4ea;--coles: #1e46b8;--woolworths: #74a6ee;--buy: #128a3e;--wait: #6b6b76;--half: #f2c317;--half-ink: #221d00}@media(prefers-color-scheme:dark){:root{--bg: #1c1c22;--fg: #f2f2f5;--muted: #a9a9b4;--card: #26262e;--line: #3a3a46;--coles: #6d9bf7;--woolworths: #c7ddfa;--buy: #4ad07f;--wait: #9a9aa6;--half: #ffd34d;--half-ink: #241f00}}:root[data-theme=light]{--bg: #fbfbfd;--fg: #16161a;--muted: #6b6b76;--card: #fff;--line: #e4e4ea;--coles: #1e46b8;--woolworths: #74a6ee;--buy: #128a3e;--wait: #6b6b76;--half: #f2c317;--half-ink: #221d00}:root[data-theme=dark]{--bg: #1c1c22;--fg: #f2f2f5;--muted: #a9a9b4;--card: #26262e;--line: #3a3a46;--coles: #6d9bf7;--woolworths: #c7ddfa;--buy: #4ad07f;--wait: #9a9aa6;--half: #ffd34d;--half-ink: #241f00}*{box-sizing:border-box}body{margin:0;padding:.75rem 1rem calc(5rem + env(safe-area-inset-bottom));background:var(--bg);color:var(--fg);font:15px/1.55 -apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif}main{max-width:860px;margin:0 auto}h1{font-size:1.3rem;margin:0 0 .25rem}code{font-size:.9em}.sub{color:var(--muted);margin:0 0 1.5rem;font-size:.9rem}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem;margin-bottom:1rem}.vendors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.vendors:has(.vcard:only-child){grid-template-columns:minmax(0,1fr)}.vcard{min-width:0}.vcard+.vcard{border-left:1px solid var(--line);padding-left:.75rem}.vendor-name{font-weight:650;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);display:flex;align-items:center;gap:.4rem}.vcard.coles .vendor-name{color:var(--coles)}.vcard.woolworths .vendor-name{color:var(--woolworths)}.cheaper-badge{font-weight:700;font-size:.64rem;letter-spacing:.04em;text-transform:uppercase;color:var(--buy);border:1px solid currentColor;border-radius:999px;padding:.05rem .4rem}.vendor-logo{display:block;height:15px;width:auto}.tl-head .vendor-logo{margin-left:auto}@media(prefers-color-scheme:dark){.vendor-logo.woolworths{filter:grayscale(1) brightness(0) invert(1)}}:root[data-theme=dark] .vendor-logo.woolworths{filter:grayscale(1) brightness(0) invert(1)}:root[data-theme=light] .vendor-logo.woolworths{filter:none}.price{font-size:1.65rem;font-weight:680;letter-spacing:-.02em;margin:.1rem 0 .3rem;font-variant-numeric:tabular-nums}.price.cheaper{font-size:1.8rem}.price.costlier{color:var(--muted)}.half-price{display:inline-block;vertical-align:.3em;margin-left:.35rem;padding:.05rem .35rem;border-radius:5px;font-size:.6rem;font-weight:700;letter-spacing:.02em;color:var(--half-ink);background:var(--half)}.half-price.sm{font-size:.58rem;vertical-align:baseline;margin-left:.25rem;padding:0 .25rem}.vcard-meta{display:flex;flex-direction:column;flex-wrap:nowrap;align-items:flex-start;gap:.3rem}.hl{font-size:.78rem;font-weight:620;color:var(--fg)}.hl-chip{display:inline-block;padding:.1rem .45rem;border-radius:999px;font-size:.7rem;font-weight:700;color:var(--half-ink);background:var(--half)}.typical{color:var(--muted);font-size:.78rem;margin:-.15rem 0 .4rem;font-variant-numeric:tabular-nums}.range{color:var(--muted);font-size:.76rem;margin-top:.45rem;font-variant-numeric:tabular-nums}.verdict{display:inline-block;padding:.1rem .45rem;border-radius:999px;font-size:.66rem;font-weight:650;text-transform:uppercase;letter-spacing:.04em;border:1px solid currentColor}.verdict.buy{color:var(--buy)}.verdict.wait{color:var(--wait)}.verdict.neutral{color:var(--muted)}.reason{font-size:.8rem;color:var(--muted);margin-top:.6rem}.timeline{margin-top:.5rem;font-variant-numeric:tabular-nums}.tl-head,.tl-row{display:grid;grid-template-columns:minmax(0,1fr) repeat(var(--cols, 2),minmax(0,1fr));gap:.5rem;align-items:baseline}.tl-head{padding-bottom:.3rem;border-bottom:1px solid var(--line)}.tl-head .vendor-name{text-align:right}.vendor-name.coles{color:var(--coles)}.vendor-name.woolworths{color:var(--woolworths)}.tl-row{padding:.32rem 0;border-bottom:1px solid var(--line);font-size:.85rem}.tl-row:last-child{border-bottom:0}.tl-when{color:var(--muted);font-size:.78rem}.tl-when b{font-weight:550;color:var(--fg)}.tl-when i{font-style:normal;margin-left:.35rem}.tl-price{text-align:right;font-weight:620}.tl-price.dim{opacity:.38;font-weight:500}.chart{width:auto;margin:0 -1.1rem;touch-action:pan-y}.chart-foot,.slot-detail{padding-inline:1.1rem}svg{display:block;width:100%;height:auto;user-select:none;-webkit-user-select:none}svg:active{cursor:grabbing!important}.grid{stroke:var(--line);stroke-width:1}.axis{fill:var(--muted);font-size:11px}.slot-active{fill:currentColor;opacity:.06}.slot rect{transition:opacity .15s ease}@media(prefers-reduced-motion:reduce){.slot rect{transition:none}}.store-tabs{display:grid;grid-template-columns:repeat(var(--cols, 2),minmax(0,1fr));gap:.5rem;margin-bottom:.9rem}.store-tab{display:flex;align-items:center;justify-content:center;font:inherit;cursor:pointer;padding:.5rem .75rem;border-radius:8px;background:transparent;border:1px solid var(--line)}.store-tab .vendor-logo{height:17px;opacity:.45}.store-tab.on .vendor-logo{opacity:1}.store-tab.on{border-color:currentColor;background:color-mix(in srgb,currentColor 6%,transparent)}.store-tab.on.coles{color:var(--coles)}.store-tab.on.woolworths{color:var(--woolworths)}.bar-price{fill:var(--fg);font-size:11px;font-weight:620}.axis.y-tick{font-size:10px}.axis.days{font-size:11px;font-weight:620;fill:var(--fg);opacity:.6}.axis.when{font-size:9.5px;opacity:.75}.axis.days.on{opacity:1}.axis.when.on{fill:var(--fg);opacity:1;font-weight:620}.slot-label{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.chart-foot{display:flex;flex-wrap:wrap;gap:.6rem 1.1rem;align-items:baseline;justify-content:space-between;margin-top:.4rem}.legend{display:flex;flex-wrap:wrap;gap:1.1rem;font-size:.82rem;color:var(--muted)}.swatch{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:.35rem}.swatch-half{background:var(--half)}.pan-hint{font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums}.slot-detail{margin-top:.8rem;padding-top:.8rem;border-top:1px solid var(--line)}.slot-date{font-weight:650;margin-bottom:.5rem}.slot-vendors{display:grid;grid-template-columns:repeat(var(--cols, 2),minmax(0,1fr));gap:.75rem}.slot-price{min-width:0;color:var(--muted);font-variant-numeric:tabular-nums}.slot-price+.slot-price{border-left:1px solid var(--line);padding-left:.75rem}.slot-amount{display:block;margin-top:.2rem;font-size:1.05rem;font-weight:620;color:var(--fg)}details{margin-top:1rem}summary{cursor:pointer;color:var(--muted);font-size:.85rem}pre{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:.8rem;overflow-x:auto;font-size:11.5px;max-height:380px}.status{color:var(--muted);padding:1.5rem 0}.error{color:#c0392b}.topbar{position:sticky;top:0;z-index:20;max-width:860px;margin:-.75rem -1rem 1rem;padding:.5rem 1rem;display:flex;align-items:center;gap:.5rem;min-height:2.75rem;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}@media(min-width:892px){.topbar{margin-inline:auto;padding-inline:0}}.topbar h1{font-size:1.05rem;margin:0}.product-hero{display:flex;justify-content:center;align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:.75rem;margin-bottom:1rem}.product-hero img{max-width:100%;max-height:12rem;object-fit:contain}.icon-btn{flex:none;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;font:inherit;font-size:1.05rem;line-height:1;cursor:pointer;color:var(--fg);background:var(--card);border:1px solid var(--line);border-radius:999px}.icon-btn:first-child{font-size:1.4rem;padding-bottom:.15rem}.marquee{flex:1;min-width:0;overflow:hidden}.marquee:has(.rolling){-webkit-mask-image:linear-gradient(90deg,transparent,#000 16px,#000 calc(100% - 16px),transparent);mask-image:linear-gradient(90deg,transparent,#000 16px,#000 calc(100% - 16px),transparent)}.marquee-track{display:flex;width:max-content;gap:2.5rem}.marquee-track:not(.rolling){width:100%}.marquee-track:not(.rolling) [aria-hidden]{display:none}.marquee-text{flex:none;white-space:nowrap;font-size:.92rem;font-weight:620}.marquee-track.rolling{animation:marquee var(--marquee-duration) linear infinite}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(calc(-1 * var(--marquee-distance)))}}@media(prefers-reduced-motion:reduce){.marquee-track.rolling{animation:none}}.tabs{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(3,1fr);gap:.25rem;padding:.35rem .5rem calc(.35rem + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line)}.row-remove{font:inherit;cursor:pointer;color:var(--fg);background:var(--card);border:1px solid var(--line);border-radius:8px}.tabs button{display:flex;flex-direction:column;align-items:center;gap:.1rem;font:inherit;font-size:.68rem;padding:.35rem .25rem;cursor:pointer;color:var(--muted);background:transparent;border:0;border-radius:10px}.tabs .tab-icon{font-size:30px;line-height:1}.tabs button[aria-pressed=true]{color:var(--fg);font-weight:620}.sheet{border:none;padding:0;background:transparent;color:var(--fg);width:100%;max-width:26rem;margin:auto auto 0}.sheet::backdrop{background:#00000073}.sheet-body{background:var(--card);border:1px solid var(--line);border-radius:16px 16px 0 0;padding:1.1rem 1.1rem 1.4rem;display:flex;flex-direction:column;gap:.7rem}.sheet-body h2{font-size:1.05rem;margin:0}.sheet-body p{margin:0;font-size:.9rem;color:var(--muted)}.sheet-actions{display:flex;gap:.6rem;align-items:center;margin-top:.2rem}.sheet-actions .cta,.profile .cta{font:inherit;font-size:.9rem;padding:.55rem 1.1rem;cursor:pointer;text-decoration:none;color:var(--fg);background:var(--bg);border:1px solid currentColor;border-radius:10px;font-weight:620}.sheet-actions .ghost{font:inherit;font-size:.9rem;padding:.55rem .9rem;cursor:pointer;background:transparent;border:1px solid transparent;border-radius:10px;color:var(--muted)}@media(min-width:480px){.sheet{margin:auto}.sheet-body{border-radius:16px}}.profile{max-width:860px;margin:0 auto;display:grid;gap:1rem}.profile h2{font-size:1.1rem;margin:0}.profile .panel{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1rem;display:flex;flex-direction:column;align-items:flex-start;gap:.7rem}.profile h3{font-size:.95rem;margin:0}.theme-picker{display:flex;gap:.5rem;flex-wrap:wrap}.theme-opt{font:inherit;font-size:.85rem;cursor:pointer;padding:.5rem .9rem;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:999px}.theme-opt.on{border-color:var(--coles);color:var(--coles);font-weight:620}.profile p{margin:0;font-size:.9rem;color:var(--muted)}.profile .status{padding:0}.steps{margin:0;padding-left:1.2rem;font-size:.9rem;color:var(--muted)}.steps li+li{margin-top:.3rem}.search{display:flex;align-items:stretch;gap:.5rem;margin-bottom:1.2rem}.search label{flex:1;min-width:0}.paste{flex:none;font:inherit;font-size:.85rem;cursor:pointer;padding:0 .9rem;white-space:nowrap;color:var(--fg);background:var(--card);border:1px solid var(--line);border-radius:10px}.search input{width:100%;font:inherit;padding:.7rem .9rem;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--fg)}.search input:focus-visible{outline:2px solid var(--coles);outline-offset:1px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.rows{display:flex;flex-direction:column;gap:.5rem}.row{display:flex;align-items:center;gap:.8rem;width:100%;text-align:left;font:inherit;color:var(--fg);cursor:pointer;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.7rem .8rem}.row:hover{border-color:var(--muted)}.row-static{cursor:default}.row-main{flex:1;display:flex;text-align:left;font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;min-width:0}.row-img{border-radius:8px;object-fit:contain;background:#fff;flex:none}.row-img-empty{width:56px;height:56px;background:var(--line)}.row-body{min-width:0;flex:1}.row-title{font-weight:560;line-height:1.3}.row-prices{display:flex;flex-wrap:wrap;gap:.1rem .7rem;margin-top:.25rem;font-size:.82rem;font-variant-numeric:tabular-nums}.row-price.coles{color:var(--coles)}.row-price.woolworths{color:var(--woolworths)}.row-note,.muted{color:var(--muted);font-size:.78rem}.row-remove{flex:none;padding:.3rem .55rem;color:var(--muted)}.fav.on{border-color:var(--half);color:var(--half-ink);background:var(--half)}.stale{font-size:.78rem;color:var(--muted);margin:-.4rem 0 .8rem}.empty{color:var(--muted);padding:2rem 0}.empty p{margin:0 0 .5rem}.legend-static{display:inline-flex;align-items:center}.hero{text-align:center;padding:2rem 1rem 1.5rem}.hero-icon{font-size:40px!important;color:var(--coles);padding:.55rem;border-radius:14px;background:color-mix(in srgb,var(--coles) 10%,transparent)}.hero h2{font-size:1.55rem;line-height:1.2;letter-spacing:-.02em;margin:.9rem 0 .5rem;text-wrap:balance}.hero p{color:var(--muted);font-size:.92rem;margin:0 auto 1.2rem;max-width:30rem;text-wrap:pretty}.hero-cta{display:inline-flex;align-items:center;gap:.45rem;font:inherit;font-size:.92rem;font-weight:620;cursor:pointer;padding:.65rem 1.15rem;border-radius:999px;border:0;color:var(--card);background:var(--coles)}.deals{margin-top:.5rem}.deals-head{font-size:.74rem;font-weight:650;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 .5rem}.deal-list{display:grid;gap:.5rem}.deal{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.7rem;width:100%;text-align:left;font:inherit;cursor:pointer;padding:.7rem .85rem;color:var(--fg);background:var(--card);border:1px solid var(--line);border-radius:12px}.deal-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem}.deal-price{font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}.deal-off{display:inline-block;margin-left:.35rem;padding:.05rem .3rem;border-radius:5px;font-size:.62rem;font-weight:700;color:var(--buy);border:1px solid currentColor}.scan-btn{display:flex;align-items:center;padding:0 .75rem;font-size:1.25rem}.hero-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.hero-cta.ghost{color:var(--fg);background:var(--card);border:1px solid var(--line)}.scanner{position:relative;aspect-ratio:3 / 4;margin-bottom:.9rem;border-radius:14px;overflow:hidden;background:#000}.scan-video{width:100%;height:100%;object-fit:cover;display:block}.scan-frame{position:absolute;top:22%;right:10%;bottom:22%;left:10%;border-radius:10px;border:2px solid rgb(255 255 255 / .85);box-shadow:0 0 0 100vmax #00000059}.scan-hint{position:absolute;left:0;right:0;bottom:.8rem;margin:0;text-align:center;font-size:.85rem;color:#fff;text-shadow:0 1px 3px rgb(0 0 0 / .6)}.scan-switch{position:absolute;top:.7rem;right:.7rem;background:#00000073;border-color:#ffffff59;color:#fff}.scan-cancel{display:flex;align-items:center;justify-content:center;gap:.4rem;width:100%;font:inherit;font-size:.88rem;cursor:pointer;padding:.6rem;border-radius:10px;color:var(--fg);background:var(--card);border:1px solid var(--line)}.scan-note h2{font-size:1rem;margin:0 0 .4rem}.scan-note p{margin:0 0 .8rem;color:var(--muted);font-size:.9rem}.scan-note code{font-variant-numeric:tabular-nums;color:var(--fg)}.scan-manual{display:grid;gap:.6rem}.scan-manual-label{display:flex;align-items:center;gap:.35rem;margin-bottom:.35rem;font-size:.78rem;font-weight:650;color:var(--muted)}.scan-manual input{width:100%;font:inherit;padding:.7rem .9rem;letter-spacing:.04em;font-variant-numeric:tabular-nums;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--fg)}.scan-manual button{font:inherit;font-weight:620;cursor:pointer;padding:.65rem;border-radius:10px;border:0;color:var(--card);background:var(--coles)}.scan-manual button:disabled{opacity:.45;cursor:not-allowed}.icon-btn.ghost{visibility:hidden}
