:root{--step--2:clamp(.7813rem, .7736rem + .0341vw, .8rem);--step--1:clamp(.9375rem, .9119rem + .1136vw, 1rem);--step-0:clamp(1.125rem, 1.0739rem + .2273vw, 1.25rem);--step-1:clamp(1.35rem, 1.2631rem + .3864vw, 1.5625rem);--step-2:clamp(1.62rem, 1.4837rem + .6057vw, 1.9531rem);--step-3:clamp(1.944rem, 1.7405rem + .9044vw, 2.4414rem);--step-4:clamp(2.3328rem, 2.0387rem + 1.3072vw, 3.0518rem);--step-5:clamp(2.7994rem, 2.384rem + 1.8461vw, 3.8147rem);--space-3xs:clamp(.3125rem, .3125rem + 0vw, .3125rem);--space-2xs:clamp(.5625rem, .5369rem + .1136vw, .625rem);--space-xs:clamp(.875rem, .8494rem + .1136vw, .9375rem);--space-s:clamp(1.125rem, 1.0739rem + .2273vw, 1.25rem);--space-m:clamp(1.6875rem, 1.6108rem + .3409vw, 1.875rem);--space-l:clamp(2.25rem, 2.1477rem + .4545vw, 2.5rem);--space-xl:clamp(3.375rem, 3.2216rem + .6818vw, 3.75rem);--space-2xl:clamp(4.5rem, 4.2955rem + .9091vw, 5rem);--space-3xl:clamp(6.75rem, 6.4432rem + 1.3636vw, 7.5rem);--space-3xs-2xs:clamp(.3125rem, .1847rem + .5682vw, .625rem);--space-2xs-xs:clamp(.5625rem, .4091rem + .6818vw, .9375rem);--space-xs-s:clamp(.875rem, .7216rem + .6818vw, 1.25rem);--space-s-m:clamp(1.125rem, .8182rem + 1.3636vw, 1.875rem);--space-m-l:clamp(1.6875rem, 1.3551rem + 1.4773vw, 2.5rem);--space-l-xl:clamp(2.25rem, 1.6364rem + 2.7273vw, 3.75rem);--space-xl-2xl:clamp(3.375rem, 2.7102rem + 2.9545vw, 5rem);--space-2xl-3xl:clamp(4.5rem, 3.2727rem + 5.4545vw, 7.5rem);--space-layout-page-block:var(--space-s-m);--space-layout-page-inline:var(--space-xs-s);--space-layout-section-gap:var(--space-s-m);--space-layout-panel-gap:var(--space-2xs-xs);--space-layout-panel-pad:var(--space-xs-s);--space-layout-title-gap:var(--space-2xs);--space-layout-title-offset:var(--space-xs-s);--space-layout-control-gap:var(--space-2xs);--space-layout-row-gap:var(--space-2xs-xs);--space-layout-row-pad-y:var(--space-2xs);--space-layout-row-pad-x:var(--space-2xs-xs);--space-layout-meta-top:var(--space-3xs);--space-layout-summary-top:var(--space-xs-s);--space-layout-summary-pad-top:var(--space-2xs-xs);--space-layout-subtle-top:var(--space-3xs);--space-layout-subtle-gap:var(--space-3xs);--space-layout-indent:var(--space-2xs);--space-layout-pill-pad-y:calc(var(--space-3xs) / 2);--space-layout-pill-pad-x:var(--space-2xs);--space-layout-button-pad-y:var(--space-3xs);--space-layout-button-pad-x:var(--space-2xs);--size-radius-card:var(--space-2xs);--size-radius-control:var(--space-3xs-2xs);--app-max-width:64rem;--app-content-gap:var(--space-layout-section-gap);--panel-min-width:22rem;--color-slate-50:#f8fafc;--color-slate-100:#f1f5f9;--color-slate-200:#e2e8f0;--color-slate-300:#cbd5e1;--color-slate-400:#94a3b8;--color-slate-500:#64748b;--color-slate-600:#475569;--color-slate-700:#334155;--color-slate-900:#0f172a;--color-emerald-50:#ecfdf5;--color-emerald-300:#6ee7b7;--color-emerald-700:#047857;--color-red-50:#fef2f2;--color-red-200:#fecaca;--color-red-700:#b91c1c;--color-shadow:#0f172a0d}*{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{margin:0;font-family:Seravek,Gill Sans Nova,Ubuntu,Calibri,DejaVu Sans,source-sans-pro,sans-serif;font-weight:400;font-size:var(--step--1)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}.app-shell{min-height:100vh;padding:var(--space-layout-page-block) var(--space-layout-page-inline);background:var(--color-slate-50);color:var(--color-slate-900)}.app-frame{width:min(100%, var(--app-max-width));margin-inline:auto}.app-header{margin-bottom:var(--space-layout-section-gap)}.app-title{margin:0;font-size:var(--step-1);line-height:2rem;font-weight:600;letter-spacing:-.025em}.app-layout{display:grid;gap:var(--app-content-gap);grid-template-columns:repeat(auto-fit, minmax(min(100%, var(--panel-min-width)), 1fr));align-items:start}.products-panel,.basket-panel{min-width:0}.basket-panel{scroll-margin-top:var(--step-3)}.basket-panel-content{position:relative}.basket-panel-main{position:relative}.panel-header{display:flex;align-items:center;gap:var(--space-layout-title-gap);margin-bottom:var(--space-layout-title-gap)}.panel-title{margin:0;font-size:var(--step-0);line-height:1.75rem;font-weight:600}.panel-title-spaced{margin-bottom:var(--space-layout-title-gap)}.panel-title-offset,.panel-title-leading{padding-left:var(--space-layout-title-offset)}.basket-title-label{display:inline-flex;align-items:center;gap:var(--space-layout-subtle-gap)}.basket-title-icon{width:var(--space-s);height:var(--space-s);flex-shrink:0}.panel-title-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-layout-panel-gap)}.panel-title-trailing{padding-right:var(--space-layout-title-offset);text-align:right}.panel-card{border:1px solid var(--color-slate-200);border-radius:var(--size-radius-card);background:#fff;padding:var(--space-layout-panel-pad);box-shadow:0 1px 2px 0 var(--color-shadow)}.products-list,.basket-lines{margin:0;padding:0;list-style:none;display:grid;gap:var(--space-layout-panel-gap)}.panel-meta{margin:var(--space-layout-meta-top) 0 0;width:100%;padding-right:var(--space-layout-control-gap);display:flex;align-items:center;justify-content:flex-end;gap:var(--space-layout-subtle-gap);font-size:var(--step--2);line-height:1rem;color:var(--color-slate-400)}.panel-meta-notes{padding:0 var(--space-layout-panel-pad);margin:var(--space-layout-panel-gap) 0 0;display:grid;gap:var(--space-layout-subtle-gap);font-size:var(--step--2);line-height:1rem;color:var(--color-slate-500)}.panel-meta-notes dt{margin:0;color:var(--color-slate-600);font-weight:600}.panel-meta-notes dd{margin:0 0 var(--space-layout-subtle-gap)}.panel-meta-download{border:none;padding:0;margin:0;background:0 0;color:inherit;font:inherit;display:inline-flex;align-items:center;gap:.2rem;cursor:pointer;text-decoration:underline;text-underline-offset:.1rem}.panel-meta-download:hover{color:var(--color-slate-600)}.panel-meta-download:focus-visible{outline:1px solid var(--color-slate-500);outline-offset:2px;border-radius:.2rem}.panel-meta-download-icon{width:.8rem;height:.8rem;flex-shrink:0}.panel-spinner{display:inline-flex;color:var(--color-slate-500);animation:1s linear infinite spin}.repo-corner-link{position:fixed;top:0;right:0;width:4.5rem;height:4.5rem;background:#000;color:#fff;clip-path:polygon(100% 0,0 0,100% 100%);z-index:100}.repo-corner-link:hover{background:#111827}.repo-corner-link:focus-visible{outline:none;box-shadow:inset 0 0 0 2px #fff}.repo-corner-icon{position:absolute;top:.85rem;right:.75rem;width:1.1rem;height:1.1rem;transform:rotate(45deg)}@media (width<=48rem){.app-shell{padding-bottom:calc(var(--space-layout-page-block) + 4.5rem + env(safe-area-inset-bottom))}.basket-panel{position:relative;z-index:30}.basket-panel-content{z-index:1}.basket-panel-main{z-index:2}}.product-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-layout-row-gap);border:1px solid var(--color-slate-200);border-radius:var(--size-radius-control);background:#fff;padding:var(--space-layout-row-pad-y) var(--space-layout-row-pad-x)}.product-row-favorable{background:var(--color-emerald-50);box-shadow:inset 0 0 0 1px var(--color-emerald-300)}.product-row>:first-child{min-width:0}.product-name{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--step--1);line-height:1.25rem;font-weight:500}.product-savings-line{min-height:1rem;margin:0;font-size:var(--step--2);line-height:1rem;color:var(--color-emerald-700)}.product-savings-line-hidden{visibility:hidden}.product-price-summary{display:flex;align-items:center;gap:var(--space-layout-control-gap)}.product-row>:last-child{display:flex;align-items:center;gap:var(--space-layout-control-gap);flex-shrink:0}.product-shelf-price{font-size:var(--step--2);line-height:1rem;color:var(--color-slate-500)}.product-impact-price{font-size:var(--step--1);line-height:1.25rem;font-weight:500;color:var(--color-slate-700)}.icon-button{display:inline-flex;align-items:center;justify-content:center;position:relative;border:1px solid #0000;border-radius:var(--size-radius-control);cursor:pointer;font-weight:500;transition:background-color .15s}.icon-button-icon-stack{display:inline-grid;place-items:center}.icon-button-icon{grid-area:1/1;opacity:1}.icon-button-icon-check{opacity:0}.icon-button-confirmed .icon-button-icon-original{animation:.5s both icon-button-original-confirm}.icon-button-confirmed .icon-button-icon-check{animation:.5s both icon-button-check-confirm}.icon-button-primary{background:var(--color-slate-900);color:#fff}.icon-button-primary:hover{background:var(--color-slate-700)}.icon-button-secondary{border-color:var(--color-slate-300);color:var(--color-slate-700);background:0 0}.icon-button-secondary:hover{background:var(--color-slate-100)}.icon-button-product{padding:var(--space-layout-button-pad-y) var(--space-layout-button-pad-x);font-size:var(--step--1);line-height:1.25rem}.icon-button-compact{padding:var(--space-layout-button-pad-y) var(--space-layout-button-pad-x);font-size:var(--step--2);line-height:1rem}.icon-button:focus-visible,.basket-savings-summary:focus-visible{outline:none;box-shadow:0 0 0 2px var(--color-slate-500), 0 0 0 4px white}.basket-empty{margin:0;font-size:var(--step--1);line-height:1.25rem;color:var(--color-slate-600)}.basket-line-content{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:var(--space-layout-control-gap)}.basket-line-content>:first-child{min-width:0;flex:14rem}.basket-line-header{display:flex;align-items:center;gap:var(--space-layout-row-gap)}.basket-line-name{margin:0;min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--step--1);line-height:1.25rem;font-weight:500}.basket-line-price{flex-shrink:0;text-align:right}.basket-line-base-price{margin-right:var(--space-layout-control-gap);font-size:var(--step--2);line-height:1rem;color:var(--color-slate-500);text-decoration:line-through}.basket-line-final-price{font-size:var(--step--1);line-height:1.25rem;color:var(--color-slate-700)}.basket-line-pills{margin-top:var(--space-layout-subtle-top);display:flex;flex-wrap:wrap;gap:var(--space-layout-subtle-gap)}.basket-line-pills-empty:before{content:".";display:inline-flex;align-items:center;border:1px solid #0000;border-radius:9999px;padding:var(--space-layout-pill-pad-y) var(--space-layout-pill-pad-x);font-size:var(--step--2);font-weight:500;visibility:hidden;pointer-events:none}.basket-line-pill{display:inline-flex;align-items:center;border:1px solid;border-radius:9999px;padding:var(--space-layout-pill-pad-y) var(--space-layout-pill-pad-x);font-size:var(--step--2);font-weight:500}.basket-line-content>:last-child{display:flex;align-items:center;gap:var(--space-layout-control-gap);margin-left:auto;flex:none}.basket-summary{margin-top:var(--space-layout-summary-top);border-top:1px solid var(--color-slate-200);padding-top:var(--space-layout-summary-pad-top)}.basket-summary-row,.basket-total-row{margin:0;display:flex;align-items:center;justify-content:space-between;font-size:var(--step--1);line-height:1.25rem}.basket-summary-row>:first-child{color:var(--color-slate-600)}.basket-savings{margin-top:var(--space-layout-subtle-top);font-size:var(--step--1);line-height:1.25rem;color:var(--color-slate-600)}.basket-savings-summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;list-style:none}.basket-savings-summary::-webkit-details-marker{display:none}.basket-savings-summary::marker{content:""}.basket-savings-summary>span:first-child{display:inline-flex;align-items:center;gap:var(--space-layout-subtle-gap)}.basket-savings-summary svg{width:var(--space-xs);height:var(--space-xs);flex-shrink:0;color:var(--color-slate-500);transition:transform .15s}.basket-savings[open] .basket-savings-summary svg{transform:rotate(90deg)}.basket-savings-body{margin:var(--space-layout-control-gap) 0;display:grid;gap:var(--space-layout-subtle-gap);font-size:var(--step--2);line-height:1rem;color:var(--color-slate-700)}.basket-savings-body>p{margin:0}.basket-savings-body ul{margin:0;padding:0;list-style:none;display:grid;gap:var(--space-layout-subtle-gap)}.basket-savings-body ul li{display:flex;align-items:center;justify-content:space-between;gap:var(--space-layout-row-gap);margin-left:var(--space-layout-indent);padding-bottom:var(--space-layout-subtle-gap);border-bottom:1px dashed var(--color-slate-300)}.basket-total-row{margin-top:var(--space-layout-subtle-top);font-weight:600}.basket-mobile-dock{display:none}@media (width<=48rem){.basket-mobile-dock{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--space-layout-subtle-gap) var(--space-layout-row-gap);border-top:1px solid var(--color-slate-200);background:#fffffff5;padding:var(--space-layout-row-pad-y) var(--space-layout-page-inline) calc(var(--space-layout-row-pad-y) + env(safe-area-inset-bottom));box-shadow:0 -8px 24px -16px #0f172a66;backdrop-filter:blur(8px);z-index:3;font-weight:700;color:inherit;text-decoration:none;cursor:pointer;opacity:1;transition:opacity .14s,transform .14s}.basket-mobile-dock-label,.basket-mobile-dock-total,.basket-mobile-dock-meta{margin:0}.basket-mobile-dock-label{font-size:var(--step-0);line-height:1rem}.basket-mobile-dock-total{font-size:var(--step-0);line-height:1.25rem;color:var(--color-slate-900);font-weight:600;text-align:right}.basket-mobile-dock-meta{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--space-layout-row-gap);font-size:var(--step--2);font-weight:400;line-height:1rem;color:var(--color-slate-500)}.basket-mobile-dock-meta-label{justify-self:start;text-align:left}.basket-mobile-dock-meta-value{grid-column:2;justify-self:end;text-align:right}.basket-mobile-dock-hidden{opacity:0;pointer-events:none;transform:translateY(.2rem)}}.app-error{width:min(100%,48rem);border:1px solid var(--color-red-200);border-radius:var(--size-radius-card);background:var(--color-red-50);padding:var(--space-layout-panel-pad)}.error-text{margin:0;font-size:var(--step--1);line-height:1.25rem;color:var(--color-red-700)}@keyframes icon-button-original-confirm{0%{opacity:1}20%{opacity:0}80%{opacity:0}to{opacity:1}}@keyframes icon-button-check-confirm{0%{opacity:0}20%{opacity:1}80%{opacity:1}to{opacity:0}}@keyframes spin{to{transform:rotate(360deg)}}