:root{--green-900: #0f3d2e;--green-700: #157347;--green-600: #178841;--green-500: #22a04f;--green-100: #e4f6ea;--green-50: #f2fbf5;--amber: #f59e0b;--amber-bg: #fff7e6;--red: #e01a22;--ink: #16211c;--ink-soft: #52605a;--line: #e5ebe7;--surface: #ffffff;--bg: #f6f8f6;--shadow: 0 1px 2px rgba(16, 40, 28, .04), 0 8px 24px rgba(16, 40, 28, .06);--radius: 16px;--radius-sm: 10px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--ink)}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);-webkit-font-smoothing:antialiased}.app{max-width:1180px;margin:0 auto;padding:24px 20px 64px}.app-header{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;padding:8px 4px 20px}.app-header__brand{display:flex;align-items:center;gap:14px}.app-header__logo{font-size:40px;line-height:1;filter:drop-shadow(0 4px 8px rgba(16,40,28,.15))}.app-header h1{margin:0;font-size:26px;letter-spacing:-.02em;color:var(--green-900)}.app-header__tagline{margin:2px 0 0;color:var(--ink-soft);font-size:14px}.app-header__location{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.pill{background:var(--green-100);color:var(--green-700);padding:6px 12px;border-radius:999px;font-weight:600;font-size:14px}.app-header__stores{font-size:13px;color:var(--ink-soft)}.pill--button{border:none;cursor:pointer;font:inherit;font-weight:600;font-size:14px}.pill--button:hover{background:#d3efdc}.postcode-input{width:90px;border:1.5px solid var(--green-500);border-radius:999px;padding:6px 12px;font:inherit;font-size:14px;outline:none;text-align:center}.live-toggle{border:1px solid var(--line);background:var(--surface);color:var(--ink-soft);border-radius:999px;padding:5px 12px;font:inherit;font-size:13px;cursor:pointer}.live-toggle.is-on{background:var(--amber-bg);border-color:var(--amber);color:#b45309;font-weight:600}.live-toggle:disabled{opacity:.5;cursor:not-allowed}.live-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--amber-bg);border:1px solid var(--amber);color:#92400e;border-radius:var(--radius-sm);padding:10px 14px;font-size:14px;margin-bottom:14px;line-height:1.45}.live-banner__close{border:none;background:transparent;color:inherit;cursor:pointer;font-size:14px;padding:2px 6px}.search__section-empty{padding:4px 12px 10px;font-size:13px;color:var(--ink-soft)}.search{position:relative;margin-bottom:24px}.search__box{display:flex;align-items:center;gap:10px;background:var(--surface);border:1.5px solid var(--line);border-radius:14px;padding:4px 16px;box-shadow:var(--shadow);transition:border-color .15s}.search__box:focus-within{border-color:var(--green-500)}.search__icon{font-size:18px}.search__box input{flex:1;border:none;outline:none;padding:14px 0;font-size:16px;background:transparent;color:var(--ink)}.search__results{position:absolute;z-index:20;top:calc(100% + 6px);left:0;right:0;margin:0;padding:6px;list-style:none;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);max-height:360px;overflow-y:auto}.search__empty{padding:16px;color:var(--ink-soft);text-align:center}.search__spinner{font-size:14px}.search__section-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);padding:8px 12px 4px}.search__section-list{list-style:none;margin:0;padding:0}.search__result{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;background:transparent;border:none;border-radius:10px;padding:10px 12px;cursor:pointer;text-align:left;font:inherit}.search__result:hover{background:var(--green-50)}.search__result-main{display:flex;flex-direction:column}.search__result-name{font-weight:600}.search__result-meta{font-size:13px;color:var(--ink-soft)}.search__result-price{display:flex;flex-direction:column;align-items:flex-end;font-size:13px;color:var(--ink-soft);white-space:nowrap}.search__result-add{color:var(--green-600);font-weight:700}.layout{display:grid;grid-template-columns:360px 1fr;gap:20px;align-items:start}.layout__cart{display:flex;flex-direction:column;gap:20px;position:sticky;top:20px}.layout__results{display:flex;flex-direction:column;gap:20px;min-width:0}@media (max-width: 900px){.layout{grid-template-columns:1fr}.layout__cart{position:static}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.card__header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:16px}.card__header h2{margin:0;font-size:18px;letter-spacing:-.01em;color:var(--green-900)}.cart__count{font-size:13px;font-weight:600;color:var(--green-700);background:var(--green-100);padding:3px 10px;border-radius:999px}.cart__empty{color:var(--ink-soft);margin:4px 0}.cart__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.cart__item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.cart__item:last-child{border-bottom:none}.cart__item-info{display:flex;flex-direction:column;min-width:0}.cart__item-name{font-weight:600;font-size:14px}.cart__item-meta{font-size:12px;color:var(--ink-soft)}.cart__item-controls{display:flex;align-items:center;gap:8px}.stepper{display:flex;align-items:center;border:1px solid var(--line);border-radius:999px;overflow:hidden}.stepper button{border:none;background:var(--green-50);color:var(--green-700);width:28px;height:28px;font-size:16px;cursor:pointer;line-height:1}.stepper button:hover{background:var(--green-100)}.stepper span{min-width:26px;text-align:center;font-weight:600;font-size:14px}.cart__remove{border:none;background:transparent;color:var(--ink-soft);cursor:pointer;font-size:14px;padding:4px;border-radius:6px}.cart__remove:hover{color:var(--red);background:#fdeceb}.cart__clear{margin-top:14px;width:100%;border:1px solid var(--line);background:transparent;color:var(--ink-soft);padding:8px;border-radius:var(--radius-sm);cursor:pointer;font:inherit}.cart__clear:hover{border-color:var(--red);color:var(--red)}.controls__row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.controls__label{font-size:14px;font-weight:500}.toggle{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:3px;gap:2px}.toggle__btn{border:none;background:transparent;padding:6px 12px;border-radius:999px;cursor:pointer;font:inherit;font-size:13px;color:var(--ink-soft)}.toggle__btn.is-active{background:var(--green-600);color:#fff;font-weight:600}.controls select{border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px 10px;font:inherit;background:var(--surface)}.controls__hint{margin:6px 0 0;font-size:12px;color:var(--ink-soft);line-height:1.5}.summary{background:linear-gradient(135deg,var(--green-700),var(--green-500));color:#fff;border:none}.summary__headline{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.summary__eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:700;opacity:.8}.summary__plan{margin:4px 0 0;font-size:24px;letter-spacing:-.02em}.summary__total{text-align:right}.summary__total-value{font-size:30px;font-weight:800;letter-spacing:-.02em;display:block}.summary__total-label{font-size:13px;opacity:.85}.summary__metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px}.metric{background:#ffffff24;border-radius:var(--radius-sm);padding:12px 14px}.metric--save{background:#ffffff38}.metric__value{display:block;font-size:20px;font-weight:800}.metric__label{font-size:12px;opacity:.9;line-height:1.35;display:block;margin-top:2px}.summary__missing{margin:16px 0 0;background:#00000026;border-radius:var(--radius-sm);padding:10px 12px;font-size:13px}@media (max-width: 560px){.summary__metrics{grid-template-columns:1fr}}.store-chip{display:inline-flex;align-items:center;gap:6px;color:#fff;font-weight:700;font-size:13px;padding:4px 10px;border-radius:999px;white-space:nowrap}.store-chip--sm{font-size:12px;padding:3px 8px}.guide__stop-num{background:#ffffff4d;border-radius:999px;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;font-size:11px}.tag{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:999px;margin-left:8px;vertical-align:middle}.tag--special{background:var(--amber-bg);color:#b45309}.tag--cheapest,.tag--best{background:var(--green-100);color:var(--green-700)}.guide__subtitle,.compare__subtitle{font-size:13px;color:var(--ink-soft)}.guide__stops{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}.guide__stop{border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}.guide__stop-head{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--green-50);flex-wrap:wrap}.guide__stop-meta{font-size:12px;color:var(--ink-soft)}.guide__stop-subtotal{margin-left:auto;font-weight:800;color:var(--green-900)}.guide__items{list-style:none;margin:0;padding:4px 14px 10px}.guide__item{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-bottom:1px dashed var(--line)}.guide__item:last-child{border-bottom:none}.guide__item-name{font-size:14px}.guide__item-qty{font-weight:700;color:var(--green-700);margin-right:6px}.guide__item-price{text-align:right;white-space:nowrap}.guide__item-price>span:first-child{font-weight:600;display:block}.guide__item-unit{font-size:11px;color:var(--ink-soft)}.guide__totals{margin-top:16px;border-top:2px solid var(--line);padding-top:12px}.guide__totals-row{display:flex;justify-content:space-between;padding:4px 0;font-size:14px}.guide__totals-row--muted{color:var(--ink-soft);font-size:13px}.guide__totals-row--grand{font-weight:800;font-size:17px;color:var(--green-900);border-top:1px solid var(--line);margin-top:6px;padding-top:10px}.compare__list{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:14px}.compare__row-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.compare__row-total{font-weight:800;color:var(--green-900)}.compare__bar-track{background:var(--green-50);border-radius:999px;height:10px;overflow:hidden}.compare__bar{height:100%;border-radius:999px;transition:width .3s ease}.compare__row-meta{display:flex;justify-content:space-between;gap:10px;margin-top:5px;font-size:12px;color:var(--ink-soft)}.compare__complete{color:var(--green-600);font-weight:600}.compare__partial{color:var(--amber)}.compare__specials{color:var(--ink-soft)}.compare__plans{margin-top:20px;border-top:1px solid var(--line);padding-top:16px}.compare__plans h3{margin:0 0 10px;font-size:14px;color:var(--ink-soft);font-weight:600}.plans-table{width:100%;border-collapse:collapse;font-size:14px}.plans-table th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);padding:6px 8px;font-weight:600}.plans-table th:nth-child(n+2),.plans-table td:nth-child(n+2){text-align:right}.plans-table td{padding:10px 8px;border-top:1px solid var(--line)}.plans-table tr.is-recommended td{background:var(--green-50)}.plans-table tr.is-recommended td:first-child{border-left:3px solid var(--green-600);border-radius:8px 0 0 8px}.deals__count{font-size:13px;font-weight:600;color:#b45309;background:var(--amber-bg);padding:3px 10px;border-radius:999px}.deals__empty{color:var(--ink-soft);margin:0;line-height:1.5}.deals__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.deal{display:flex;align-items:center;gap:12px;padding:10px 4px;border-bottom:1px solid var(--line)}.deal:last-child{border-bottom:none}.deal__info{display:flex;flex-direction:column;min-width:0;flex:1}.deal__name{font-weight:600;font-size:14px}.deal__meta{font-size:12px;color:var(--amber)}.deal__prices{display:flex;align-items:baseline;gap:8px;white-space:nowrap}.deal__now{font-weight:800;color:var(--green-900)}.deal__was{font-size:12px;color:var(--ink-soft);text-decoration:line-through}.deal__pct{font-size:12px;font-weight:700;color:#fff;background:var(--red);padding:2px 6px;border-radius:6px}.empty-state{text-align:center;padding:64px 24px;color:var(--ink-soft);background:var(--surface);border:1px dashed var(--line);border-radius:var(--radius)}.empty-state__icon{font-size:48px}.empty-state h2{margin:12px 0 6px;color:var(--ink)}.app-footer{margin-top:40px;text-align:center;font-size:12px;color:var(--ink-soft);line-height:1.6;max-width:640px;margin-left:auto;margin-right:auto}
