:root {
  color-scheme: light;
  --bg: #f6f7f4;
  --paper: #ffffff;
  --card: #ffffff;
  --ink: #18231d;
  --muted: #687468;
  --line: #e0e5de;
  --green: #2f7d4a;
  --green-soft: #e3f1e7;
  --blue: #1468b8;
  --blue-soft: #e4eef6;
  --amber: #e7aa39;
  --amber-soft: #fff3d4;
  --red: #c84b3b;
  --red-soft: #f7dfda;
  --shadow: 0 12px 28px rgba(31, 38, 30, 0.08);
  --bb-text-xs: 0.75rem;
  --bb-text-sm: 0.875rem;
  --bb-text-base: 0.95rem;
  --bb-text-md: 1rem;
  --bb-text-lg: 1.125rem;
  --bb-text-xl: 1.25rem;
  --bb-text-2xl: 1.5rem;
  --bb-text-3xl: 1.75rem;
  --bb-space-1: 0.25rem;
  --bb-space-2: 0.5rem;
  --bb-space-3: 0.75rem;
  --bb-space-4: 1rem;
  --bb-space-5: 1.25rem;
  --bb-space-6: 1.5rem;
  --bb-space-7: 2rem;
  --bb-space-8: 2.5rem;
  --bb-radius-sm: 0.625rem;
  --bb-radius-md: 0.875rem;
  --bb-radius-lg: 1rem;
  --bb-radius-xl: 1.25rem;
  --bb-card-padding-mobile: 0.78rem;
  --bb-card-padding-desktop: 1rem;
  --bb-card-gap: 0.5rem;
  --bb-button-height-sm: 2.75rem;
  --bb-button-height-md: 3rem;
  --bb-button-padding-x: 0.8rem;
  --bb-button-font-size: 0.95rem;
  --bb-page-bg: #f7f4ed;
  --bb-surface: #fffefa;
  --bb-surface-muted: #f3f1ea;
  --bb-border: #ded8cc;
  --bb-text: #17251d;
  --bb-text-muted: #647268;
  --bb-shadow-sm: 0 8px 20px rgba(31, 38, 30, 0.08);
  --bb-shadow-md: 0 14px 34px rgba(31, 38, 30, 0.12);
  --bb-cream-bg: #f7f4ed;
  --bb-card-bg: #fffefa;
  --bb-card-border: #ded8cc;
  --bb-text-main: #17251d;
  --bb-text-muted: #647268;
  --bb-green: #2f7d4a;
  --bb-green-soft: #edf7ef;
  --bb-amber: #b7791f;
  --bb-amber-soft: #fff4d8;
  --bb-red: #b7493c;
  --bb-red-soft: #fff0ec;
  --bb-neutral-soft: #f3f1ea;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  min-width: 320px;
  margin: 0;
  padding: 0 0 92px;
  color: var(--ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: var(--bg);
}

button,
input,
select,
textarea {
  font: inherit;
}

button {
  cursor: pointer;
}

button:active {
  transform: translateY(1px);
}

img {
  display: block;
  max-width: 100%;
}

.app-frame {
  width: min(760px, 100%);
  margin: 0 auto;
  padding: 16px 14px 28px;
}

.screen {
  display: none;
}

.screen.is-active {
  display: block;
}

.scan-screen.is-active {
  display: flex;
  min-height: calc(100svh - 96px);
  flex-direction: column;
}

.brand-header {
  display: flex;
  justify-content: center;
  padding: 6px 0 18px;
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: inherit;
  text-decoration: none;
}

.brand-mark {
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border-radius: 12px;
  color: #fff;
  font-weight: 950;
  background: var(--green);
}

.brand strong,
.brand small {
  display: block;
}

.brand strong {
  font-size: 1.08rem;
  line-height: 1.1;
}

.brand small {
  max-width: 250px;
  margin-top: 3px;
  color: var(--muted);
  font-size: 0.78rem;
}

.landing-copy,
.scan-start {
  padding: 16px 4px 14px;
  text-align: center;
}

.landing-copy h1,
.scan-start h1 {
  max-width: 620px;
  margin: 0 auto;
  font-size: 2.6rem;
  line-height: 1;
  letter-spacing: 0;
}

.landing-copy p,
.scan-start p {
  max-width: 520px;
  margin: 14px auto 0;
  color: #39453d;
  font-size: 1.04rem;
  line-height: 1.45;
}

.hero-actions {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  margin: 4px 0 12px;
}

.primary-action,
.secondary-action,
.primary-button,
.secondary-button,
.text-button,
.icon-button {
  min-height: 46px;
  border-radius: 14px;
  font-weight: 850;
}

.primary-action,
.secondary-action {
  min-height: 58px;
  font-size: 1.04rem;
}

.primary-action,
.primary-button {
  border: 0;
  color: #fff;
  background: var(--green);
}

.secondary-action,
.secondary-button,
.text-button,
.icon-button {
  border: 1px solid var(--line);
  color: var(--ink);
  background: var(--card);
}

.primary-action,
.secondary-action,
.primary-button,
.secondary-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 0 16px;
}

.primary-button.full,
.secondary-button.full {
  width: 100%;
}

.text-button {
  min-height: 38px;
  padding: 0 12px;
  color: var(--blue);
}

.icon-button {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  padding: 0;
  font-size: 1.35rem;
}

.scan-icon {
  width: 19px;
  height: 19px;
  border: 2px solid currentColor;
  border-radius: 6px;
  box-shadow:
    inset 0 5px 0 rgba(255, 255, 255, 0.32),
    inset 0 -5px 0 rgba(255, 255, 255, 0.32);
}

.search-card,
.result-card,
.product-summary,
.verdict-card,
.detail-panel,
.compare-card,
.empty-card,
.preferences-card,
.early-access-card,
.scanner-panel,
.report-panel,
.list-panel,
.price-card,
.swap-card,
.list-card,
.list-row {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--card);
  box-shadow: var(--shadow);
}

.search-card {
  display: grid;
  gap: 11px;
  padding: 13px;
}

.search-screen .search-card {
  border: 0;
  margin: 4px 0 24px;
  padding: 0;
  background: transparent;
  box-shadow: none;
}

.search-screen .search-card label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
}

.search-card.compact {
  margin-bottom: 14px;
}

.search-card label,
.field-label {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.search-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 9px;
}

.search-card input,
.scanner-panel input,
.list-panel input,
.early-access-form input,
.early-access-form select,
.report-panel select,
.report-panel textarea {
  width: 100%;
  min-height: 48px;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 0 12px;
  color: var(--ink);
  background: #fff;
}

.search-screen .search-card input {
  min-height: 56px;
  border: 0;
  border-radius: 18px;
  padding-inline: 16px;
  background: #ebefec;
  font-size: 1rem;
}

.search-screen .search-card .primary-button {
  min-height: 56px;
  border-radius: 18px;
}

.popular-searches {
  margin: 0 -14px;
  padding: 0 14px;
}

.popular-list {
  display: grid;
  border-top: 1px solid var(--line);
}

.pill,
.mini-score,
.swap-meta span {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  border-radius: 999px;
  padding: 5px 10px;
  font-size: 0.82rem;
  font-weight: 820;
}

.popular-list button {
  display: flex;
  width: 100%;
  min-height: 56px;
  align-items: center;
  justify-content: space-between;
  border: 0;
  border-bottom: 1px solid var(--line);
  padding: 0;
  color: var(--blue);
  background: transparent;
  font-size: 1.12rem;
  font-weight: 680;
  text-align: left;
}

.popular-list button::after {
  content: "›";
  color: #a4aca4;
  font-size: 1.25rem;
  font-weight: 700;
}

.beta-note,
.source-note,
.form-status {
  color: var(--muted);
  font-size: 0.88rem;
  line-height: 1.45;
}

.beta-note {
  max-width: 520px;
  margin: 16px auto 0;
  text-align: center;
}

.screen-header {
  position: sticky;
  top: 0;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 0 14px;
  background: var(--bg);
}

.screen-header span {
  font-weight: 900;
  font-size: 1.08rem;
}

.loading-state {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 120px;
  color: var(--muted);
}

.loader {
  width: 22px;
  height: 22px;
  border: 3px solid var(--line);
  border-top-color: var(--green);
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

.results-heading {
  margin: 10px 2px 10px;
}

.results-heading h2,
.compare-card h2,
.empty-card h2,
.preferences-card h2,
.early-access-card h2,
.detail-panel h2,
.verdict-card h2 {
  margin: 0 0 8px;
}

.result-card {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 12px;
  align-items: stretch;
  margin-bottom: 12px;
  padding: 10px;
}

.result-image,
.product-photo {
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: 8px;
  background: #f0ede3;
}

.result-image {
  min-height: 132px;
}

.result-image img,
.product-photo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.image-placeholder {
  display: grid;
  min-height: 120px;
  place-items: center;
  padding: 10px;
  color: var(--muted);
  text-align: center;
  font-weight: 820;
}

.result-copy h3 {
  margin: 7px 0 5px;
  font-size: 1.08rem;
  line-height: 1.15;
}

.result-brand,
.result-reason {
  margin: 0;
  color: #5f6c62;
  line-height: 1.45;
}

.result-brand {
  font-weight: 800;
}

.result-reason {
  font-size: 0.92rem;
}

.result-copy p,
.verdict-card p,
.swap-card p,
.empty-card p,
.preferences-card p,
.early-access-card p,
.compare-card p {
  margin: 0 0 10px;
  color: #3b473f;
  line-height: 1.48;
}

.result-row,
.simple-price,
.score-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.result-row {
  margin: 9px 0;
}

.result-actions,
.product-actions,
.missing-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}

.product-summary {
  display: grid;
  gap: 14px;
  padding: 12px;
}

.product-photo {
  min-height: 260px;
}

.product-summary-copy h1,
.missing-product h1 {
  margin: 8px 0 4px;
  font-size: 2rem;
  line-height: 1.05;
  letter-spacing: 0;
}

.product-summary-copy p {
  margin: 0 0 12px;
  color: var(--muted);
}

.score-pill {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border-radius: 999px;
  padding: 8px 12px;
  color: #fff;
}

.score-pill strong {
  font-size: 1.4rem;
}

.score-pill span {
  font-weight: 900;
}

.mini-score.great,
.score-pill.great {
  background: var(--green);
  color: #fff;
}

.mini-score.good,
.score-pill.good {
  background: var(--green-soft);
  color: var(--green);
}

.mini-score.mixed,
.score-pill.mixed {
  background: var(--amber-soft);
  color: #73500f;
}

.mini-score.poor,
.score-pill.poor {
  background: var(--red-soft);
  color: var(--red);
}

.pill {
  color: var(--blue);
  background: var(--blue-soft);
}

.verdict-card,
.detail-panel,
.compare-card,
.empty-card,
.preferences-card,
.early-access-card {
  margin-top: 12px;
  padding: 14px;
}

.simple-price {
  border-radius: 8px;
  padding: 12px;
  background: var(--blue-soft);
}

.simple-price span {
  color: var(--blue);
  font-weight: 850;
}

.product-actions {
  margin: 12px 0;
}

.detail-tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
  margin: 12px 0;
}

.detail-tabs button {
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  background: #fff;
  font-weight: 850;
}

.detail-tabs button.is-active {
  border-color: var(--green);
  color: #fff;
  background: var(--green);
}

.detail-panel {
  display: none;
}

.detail-panel.is-active {
  display: block;
}

.inside-list,
.price-list,
.swap-list,
.saved-products {
  display: grid;
  gap: 10px;
}

.inside-item {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  border-radius: 8px;
  padding: 11px;
  background: #f4f0e7;
}

.inside-item span {
  color: var(--muted);
  font-weight: 820;
}

.price-card {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 9px;
  align-items: center;
  padding: 11px;
  box-shadow: none;
}

.price-card.best {
  border-color: var(--green);
  background: #f7fbf8;
}

.price-card small,
.price-card span,
.list-row small,
.swap-card .swap-meta,
.source-note {
  display: block;
  color: var(--muted);
}

.price-card .secondary-button {
  grid-column: 1 / -1;
}

.swap-card {
  padding: 12px;
  box-shadow: none;
}

.swap-comparison {
  margin-bottom: 12px;
}

.swap-card h3 {
  margin: 0 0 6px;
}

.swap-products {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  margin-bottom: 12px;
}

.swap-product {
  min-width: 0;
  text-align: center;
}

.swap-product strong,
.swap-product span {
  display: block;
}

.swap-product strong {
  margin-top: 7px;
  overflow: hidden;
  font-size: 0.9rem;
  line-height: 1.15;
  text-overflow: ellipsis;
}

.swap-product span {
  margin-top: 3px;
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 800;
}

.swap-product-better span {
  color: var(--green);
}

.swap-image {
  display: grid;
  min-height: 104px;
  place-items: center;
  overflow: hidden;
  border-radius: 8px;
  background: #f0ede3;
}

.swap-image img {
  width: 100%;
  height: 104px;
  object-fit: contain;
}

.swap-image.image-placeholder {
  min-height: 104px;
  color: var(--green);
  background: var(--green-soft);
  font-size: 0.82rem;
}

.swap-arrow {
  color: var(--muted);
  font-weight: 900;
}

.swap-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 8px 0 10px;
}

.swap-meta span {
  color: var(--green);
  background: var(--green-soft);
}

.list-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  margin: 12px 0;
}

.metric {
  border-radius: 8px;
  padding: 11px;
  background: #f4f0e7;
}

.metric span {
  display: block;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 850;
}

.metric strong {
  display: block;
  margin-top: 4px;
}

.list-row {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 11px;
  box-shadow: none;
}

.history-screen .list-row,
.lists-screen .list-row,
.alerts-screen .list-row {
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
}

.list-row::after {
  content: "›";
  color: #a4aca4;
  font-size: 1.5rem;
  font-weight: 700;
}

.list-row[data-action] {
  cursor: pointer;
}

.list-row .secondary-button {
  justify-self: start;
}

.row-image {
  display: grid;
  min-height: 72px;
  place-items: center;
  overflow: hidden;
  border-radius: 8px;
  background: #f0ede3;
}

.row-image .image-placeholder {
  min-height: 72px;
  font-size: 0.75rem;
}

.list-row h3,
.list-card h3 {
  margin: 0 0 4px;
  font-size: 1rem;
}

.list-row p,
.list-card p {
  margin: 0 0 4px;
  color: var(--muted);
  line-height: 1.4;
}

.row-copy {
  min-width: 0;
}

.row-copy small {
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--muted);
}

.score-dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  flex: 0 0 10px;
  border-radius: 999px;
  background: var(--amber);
}

.score-dot.great,
.score-dot.good {
  background: var(--green);
}

.score-dot.mixed {
  background: var(--amber);
}

.score-dot.poor {
  background: var(--red);
}

.row-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 7px;
}

.list-section {
  margin-top: 14px;
}

.list-section h2 {
  margin: 0 0 10px;
}

.list-card {
  display: grid;
  gap: 4px;
  margin-top: 10px;
  padding: 12px;
  box-shadow: none;
}

.list-card small {
  color: var(--muted);
}

.list-actions,
.list-choices {
  display: grid;
  gap: 9px;
  margin: 10px 0;
}

.create-list-tile {
  display: grid;
  width: 100%;
  min-height: 128px;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  margin: 10px 0;
  padding: 16px;
  color: var(--ink);
  background: #fff;
}

.create-list-tile span {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 2px solid currentColor;
  border-radius: 999px;
  font-size: 1.5rem;
  font-weight: 900;
}

.create-list-tile strong {
  margin-top: 8px;
  font-size: 1.05rem;
}

.preference-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.toggle-chip {
  position: relative;
  display: inline-flex;
}

.toggle-chip input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.toggle-chip span {
  display: inline-flex;
  min-height: 38px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 8px 12px;
  background: #fff;
  color: var(--muted);
  font-weight: 850;
}

.toggle-chip input:checked + span {
  border-color: var(--green);
  color: var(--green);
  background: var(--green-soft);
}

.consent-line {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 11px;
  background: #fff;
}

.consent-line input {
  width: 18px;
  height: 18px;
  margin-top: 2px;
  accent-color: var(--green);
}

.consent-line span {
  color: var(--muted);
  font-weight: 680;
  line-height: 1.4;
}

.eyebrow {
  margin: 0 0 6px;
  color: var(--green);
  font-size: 0.76rem;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.early-access-form {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}

.hidden-field {
  display: none;
}

.report-panel textarea {
  min-height: 110px;
  padding-top: 10px;
  resize: vertical;
}

.scanner-dialog,
.report-dialog,
.list-dialog {
  width: min(430px, calc(100vw - 24px));
  border: 0;
  border-radius: 12px;
  padding: 0;
  color: var(--ink);
  background: transparent;
}

.scanner-dialog::backdrop,
.report-dialog::backdrop,
.list-dialog::backdrop {
  background: rgba(24, 35, 29, 0.32);
}

.scanner-panel,
.report-panel,
.list-panel {
  padding: 14px;
}

.dialog-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.dialog-heading h2 {
  margin: 0;
  font-size: 1.4rem;
  line-height: 1.1;
}

.scanner-window {
  position: relative;
  display: grid;
  height: 190px;
  place-items: center;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #101914;
}

.scanner-window video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.scanner-window span {
  position: relative;
  z-index: 1;
  width: 78%;
  height: 2px;
  background: #75d88d;
  box-shadow: 0 0 18px #75d88d;
  animation: scanLine 1.6s ease-in-out infinite alternate;
}

@keyframes scanLine {
  from {
    transform: translateY(-64px);
  }
  to {
    transform: translateY(64px);
  }
}

.toast {
  position: fixed;
  left: 14px;
  right: 14px;
  bottom: calc(92px + env(safe-area-inset-bottom));
  z-index: 8;
  max-width: min(360px, calc(100vw - 32px));
  margin: 0 auto;
  padding: 10px 13px;
  border-radius: 12px;
  color: #fff;
  background: var(--ink);
  box-shadow: var(--shadow);
  opacity: 0;
  transform: translateY(12px);
  pointer-events: none;
  transition: opacity 150ms ease, transform 150ms ease;
}

.toast.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.bottom-nav {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 6;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  background: rgba(255, 253, 248, 0.97);
}

.bottom-nav button {
  display: grid;
  min-height: 64px;
  place-items: center;
  border: 0;
  color: var(--muted);
  background: transparent;
  font-size: 0.76rem;
  font-weight: 850;
}

.bottom-nav button span {
  font-size: 1.05rem;
}

.bottom-nav button.is-active {
  color: var(--green);
}

.bottom-nav .nav-scan {
  margin-top: -18px;
  border-radius: 18px 18px 0 0;
  color: #fff;
  background: var(--green);
  box-shadow: 0 -8px 22px rgba(47, 125, 74, 0.18);
}

.bottom-nav .nav-scan.is-active {
  color: #fff;
}

.legal-footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px 12px;
  width: min(760px, 100%);
  margin: 0 auto;
  padding: 0 14px 24px;
  color: var(--muted);
  font-size: 0.82rem;
}

.legal-footer a {
  color: var(--blue);
  font-weight: 800;
  text-decoration: none;
}

.topbar {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px 14px;
  border-bottom: 1px solid var(--line);
  background: var(--paper);
}

.legal-shell {
  max-width: 860px;
  margin: 0 auto;
  padding: 24px 14px 46px;
}

.legal-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 22px;
  background: var(--paper);
  box-shadow: var(--shadow);
}

.legal-card h1 {
  margin: 0 0 10px;
  font-size: 2.3rem;
  line-height: 1.05;
}

.legal-card h2 {
  margin: 24px 0 8px;
  color: var(--blue);
}

.legal-card p,
.legal-card li {
  line-height: 1.65;
}

.legal-card a {
  color: var(--blue);
  font-weight: 800;
}

.legal-note {
  border-left: 4px solid var(--amber);
  margin: 18px 0;
  padding: 12px 14px;
  background: var(--amber-soft);
}

.site-footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 14px;
  max-width: 860px;
  margin: 0 auto;
  padding: 0 14px 36px;
  color: var(--muted);
}

.site-footer p {
  max-width: 560px;
  margin: 5px 0 0;
  line-height: 1.45;
}

.site-footer nav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.site-footer a {
  color: var(--blue);
  font-weight: 800;
  text-decoration: none;
}

@media (hover: hover) {
  button:hover {
    filter: brightness(0.98);
  }
}

@media (min-width: 760px) {
  body {
    padding-bottom: 112px;
  }

  .app-frame {
    padding-top: 30px;
  }

  .hero-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .landing-copy h1 {
    font-size: 2.35rem;
  }

  .product-summary {
    grid-template-columns: 300px minmax(0, 1fr);
    align-items: center;
  }

  .product-photo {
    min-height: 320px;
  }

  .bottom-nav {
    right: 50%;
    left: 50%;
    width: min(760px, calc(100% - 28px));
    transform: translateX(-50%);
    border: 1px solid var(--line);
    border-radius: 16px;
    bottom: 14px;
    overflow: hidden;
    box-shadow: var(--shadow);
  }

  .legal-footer {
    padding-bottom: 98px;
  }
}

@media (max-width: 390px) {
  .landing-copy h1 {
    font-size: 2.28rem;
  }

  .search-row,
  .result-card,
  .result-actions,
  .product-actions,
  .missing-actions,
  .list-metrics {
    grid-template-columns: 1fr;
  }

  .result-image {
    min-height: 176px;
  }

  .detail-tabs {
    grid-template-columns: 1fr;
  }

  .popular-list button {
    font-size: 1.02rem;
  }
}

@media (max-width: 340px) {
  .app-frame {
    padding-inline: 10px;
  }

  .landing-copy h1 {
    font-size: 2.05rem;
  }

  .brand small {
    max-width: 210px;
  }

  .bottom-nav button {
    font-size: 0.7rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  * {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}

/* BasketBalance clean launch polish */
.contact-form {
  display: grid;
  gap: 12px;
  margin: 18px 0 24px;
}

.contact-form input,
.contact-form select,
.contact-form textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 13px 14px;
  color: var(--ink);
  background: #fff;
  font: inherit;
}

.contact-form textarea {
  resize: vertical;
  min-height: 130px;
}

.legal-footer span,
.site-footer p {
  color: var(--muted);
}

.beta-note {
  max-width: 30rem;
}

@media (max-width: 760px) {
  .legal-footer {
    padding-bottom: calc(92px + env(safe-area-inset-bottom));
  }
}


/* Traffic asset launch additions */
.asset-intro,
.guide-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  margin: 18px 0;
}

.asset-card,
.traffic-section,
.guide-links,
.highlight-panel {
  border: 1px solid var(--line);
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.86);
  box-shadow: var(--shadow);
}

.asset-card {
  padding: 14px;
}

.asset-card strong,
.asset-card span {
  display: block;
}

.asset-card span {
  margin-top: 4px;
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.45;
}

.traffic-section,
.guide-links,
.highlight-panel {
  margin: 18px 0;
  padding: 18px;
}

.traffic-section h2,
.guide-links h2,
.highlight-panel h2 {
  margin: 4px 0 8px;
  font-size: 1.25rem;
  line-height: 1.15;
}

.traffic-section p,
.highlight-panel p {
  color: var(--muted);
  line-height: 1.55;
}

.inline-signup {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}

.inline-signup input,
.inline-signup select {
  min-height: 46px;
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 0 12px;
  color: var(--ink);
  background: #fff;
}

.guide-grid a {
  display: block;
  padding: 13px 14px;
  border: 1px solid var(--line);
  border-radius: 16px;
  color: var(--ink);
  text-decoration: none;
  background: #fff;
  font-weight: 800;
}

.guide-grid a:hover {
  border-color: var(--green);
}

@media (min-width: 720px) {
  .asset-intro {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .guide-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .inline-signup {
    grid-template-columns: 1.2fr 1fr auto;
    align-items: center;
  }
}

/* Human design polish batch - keep this block near the end so it overrides older launch styles. */
:root {
  --bg: #fbf7ee;
  --paper: #fffdf8;
  --card: #ffffff;
  --ink: #18241d;
  --muted: #657162;
  --line: #e8dfcf;
  --green: #287846;
  --green-2: #1f6b44;
  --green-soft: #e8f3ea;
  --cream: #fff6de;
  --peach: #ffe7dc;
  --blue: #1e617d;
  --blue-soft: #e7f3f4;
  --amber: #efb64b;
  --amber-soft: #fff4d7;
  --shadow: 0 18px 42px rgba(35, 46, 34, 0.10);
  --soft-shadow: 0 8px 24px rgba(35, 46, 34, 0.07);
  --radius: 24px;
}

html {
  background: var(--bg);
}

body {
  padding-bottom: 156px;
  font-family: "Plus Jakarta Sans", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background:
    radial-gradient(circle at 12% 4%, rgba(255, 230, 183, 0.78), transparent 34rem),
    radial-gradient(circle at 88% 11%, rgba(219, 242, 224, 0.95), transparent 31rem),
    linear-gradient(180deg, #fffaf0 0%, #f8faf4 48%, #fbf7ee 100%);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1,
h2,
h3,
.brand strong,
.screen-header span,
.legal-card h1,
.page-hero h1 {
  font-family: "Fraunces", Georgia, serif;
  letter-spacing: -0.035em;
}

.app-frame {
  width: min(640px, calc(100% - 24px));
  padding: 14px 0 34px;
}

.scan-screen.is-active {
  min-height: auto;
}

.brand-header {
  padding: 8px 0 10px;
}

.brand {
  gap: 12px;
  padding: 8px 12px;
  border: 1px solid rgba(232, 223, 207, 0.75);
  border-radius: 999px;
  background: rgba(255, 253, 248, 0.72);
  box-shadow: var(--soft-shadow);
}

.brand-mark {
  width: 42px;
  height: 42px;
  border-radius: 15px;
  background: linear-gradient(135deg, #2e8a54, #195f3d);
  box-shadow: inset 0 -6px 14px rgba(0,0,0,.12);
}

.brand strong {
  font-size: 1.02rem;
}

.brand small {
  max-width: 310px;
  font-size: 0.78rem;
  line-height: 1.3;
}

.scan-start {
  padding: 12px 2px 10px;
}

.hero-visual {
  width: min(390px, 92%);
  margin: 0 auto 10px;
}

.hero-visual img {
  width: 100%;
  height: auto;
}

.eyebrow {
  margin-bottom: 8px;
  color: var(--green-2);
  font-size: 0.73rem;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.landing-copy h1,
.scan-start h1,
.page-hero h1,
.legal-card h1 {
  font-size: clamp(1.75rem, 3vw, 2.4rem);
  line-height: 0.94;
}

.scan-start p,
.landing-copy p,
.page-hero p,
.legal-card p,
.content-card p,
.content-card li {
  font-size: 1rem;
  line-height: 1.62;
}

.scan-start p {
  max-width: 31rem;
  margin-top: 14px;
  color: #3d4a40;
}

.hero-actions {
  width: min(560px, 100%);
  margin: 14px auto 10px;
  gap: 10px;
}

.primary-action,
.secondary-action,
.primary-button,
.secondary-button,
.text-button,
.icon-button {
  border-radius: 17px;
}

.primary-action,
.secondary-action {
  min-height: 58px;
}

.primary-action,
.primary-button {
  background: linear-gradient(135deg, #2f8a55, #1f6b44);
  box-shadow: 0 12px 24px rgba(40, 120, 70, 0.18);
}

.secondary-action,
.secondary-button,
.text-button,
.icon-button {
  border-color: rgba(207, 196, 178, .9);
  background: rgba(255,255,255,.82);
}

.beta-note {
  width: fit-content;
  max-width: calc(100% - 12px);
  margin: 8px auto 14px;
  padding: 8px 12px;
  border: 1px solid #f0dfb5;
  border-radius: 999px;
  color: #766133;
  background: rgba(255, 246, 222, 0.72);
  font-size: 0.79rem;
  text-align: center;
}

.asset-intro,
.guide-grid {
  gap: 12px;
}

.asset-card,
.traffic-section,
.guide-links,
.highlight-panel,
.search-card,
.result-card,
.product-summary,
.verdict-card,
.detail-panel,
.compare-card,
.empty-card,
.preferences-card,
.early-access-card,
.scanner-panel,
.report-panel,
.list-panel,
.price-card,
.swap-card,
.list-card,
.list-row,
.legal-card,
.content-card {
  border-color: rgba(232, 223, 207, 0.95);
  border-radius: var(--radius);
  background: rgba(255, 253, 248, 0.92);
  box-shadow: var(--soft-shadow);
}

.asset-card {
  padding: 16px 15px 17px;
}

.card-icon {
  display: grid !important;
  width: 42px;
  height: 42px;
  place-items: center;
  margin-bottom: 10px;
  border-radius: 15px;
  background: var(--green-soft);
  font-size: 1.22rem;
}

.asset-card strong {
  font-size: 1.02rem;
}

.asset-card span:not(.card-icon) {
  font-size: 0.92rem;
}

.traffic-section,
.guide-links,
.highlight-panel,
.early-access-card,
.preferences-card,
.search-card {
  width: min(560px, 100%);
  margin-left: auto;
  margin-right: auto;
  padding: clamp(18px, 4.5vw, 26px);
}

.traffic-section {
  background:
    linear-gradient(135deg, rgba(255,255,255,.94), rgba(255,246,222,.72));
}

.guide-links {
  background:
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(232,243,234,.76));
}

.highlight-panel {
  background:
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(231,243,244,.75));
}

.traffic-section h2,
.guide-links h2,
.highlight-panel h2,
.early-access-card h2,
.preferences-card h2,
.dialog-heading h2,
.content-card h2 {
  margin: 4px 0 10px;
  font-size: clamp(1.28rem, 4vw, 1.72rem);
  line-height: 1.08;
}

.traffic-section p,
.highlight-panel p,
.early-access-card p,
.preferences-card p {
  font-size: 0.98rem;
  line-height: 1.62;
}

.inline-signup input,
.inline-signup select,
.contact-form input,
.contact-form select,
.contact-form textarea,
.search-row input,
#manualBarcode,
#newListName,
.report-panel textarea,
.report-panel select,
.early-access-form input,
.early-access-form select {
  min-height: 50px;
  border: 1px solid rgba(207, 196, 178, .95);
  border-radius: 16px;
  background: #fffefa;
  color: var(--ink);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7);
}

.inline-signup select,
.contact-form select,
.early-access-form select,
.report-panel select {
  appearance: none;
  padding-right: 42px;
  background-image: linear-gradient(45deg, transparent 50%, #294333 50%), linear-gradient(135deg, #294333 50%, transparent 50%);
  background-position: calc(100% - 22px) 21px, calc(100% - 14px) 21px;
  background-size: 8px 8px, 8px 8px;
  background-repeat: no-repeat;
}

.guide-grid a {
  position: relative;
  min-height: 54px;
  padding: 15px 16px 15px 52px;
  border-color: rgba(207, 196, 178, .95);
  border-radius: 18px;
  background: rgba(255,255,255,.8);
  font-size: 0.94rem;
  transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}

.guide-more {
  margin-top: 1rem;
  border: 1px solid rgba(207, 196, 178, .95);
  border-radius: 18px;
  background: rgba(255,255,255,.72);
  padding: .85rem 1rem;
}
.guide-more summary {
  cursor: pointer;
  font-weight: 900;
  color: #244131;
}
.guide-group-grid {
  display: grid;
  gap: 1rem;
  margin-top: 1rem;
}
.guide-group-grid h3 {
  margin: 0 0 .45rem;
  font-size: .95rem;
  color: #2f7d4a;
}
.guide-group-grid a {
  display: block;
  padding: .45rem 0;
  color: #294333;
  font-weight: 800;
  text-decoration: none;
  border-top: 1px solid rgba(207, 196, 178, .55);
}
@media (min-width: 760px) {
  .guide-group-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.guide-grid a::before {
  position: absolute;
  top: 50%;
  left: 14px;
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 10px;
  background: var(--cream);
  transform: translateY(-50%);
  content: "";
  font-size: 0.95rem;
}

.guide-grid a:nth-child(3)::before,
.guide-grid a:nth-child(7)::before,
.guide-grid a:nth-child(8)::before,
.guide-grid a:nth-child(4)::before,
.guide-grid a:nth-child(5)::before,
.guide-grid a:nth-child(6)::before { content: ""; }

.guide-grid a:hover,
.guide-grid a:focus-visible {
  border-color: rgba(40, 120, 70, 0.65);
  box-shadow: 0 12px 22px rgba(40, 120, 70, .10);
  transform: translateY(-1px);
}

.screen-header,
.topbar {
  border-color: rgba(232, 223, 207, .95);
  background: rgba(255, 253, 248, .86);
  backdrop-filter: blur(10px);
}

.bottom-nav {
  right: 50%;
  left: 50%;
  width: min(560px, calc(100% - 24px));
  bottom: 12px;
  overflow: hidden;
  border: 1px solid rgba(207, 196, 178, .95);
  border-radius: 22px;
  background: rgba(255, 253, 248, .94);
  box-shadow: 0 16px 42px rgba(35,46,34,.16);
  transform: translateX(-50%);
  backdrop-filter: blur(14px);
}

.bottom-nav button {
  min-height: 66px;
  font-size: 0.72rem;
}

.bottom-nav button span {
  margin-bottom: 2px;
  font-size: 1.05rem;
}

.bottom-nav .nav-scan {
  margin-top: 0;
  border-radius: 0;
}

.legal-footer {
  width: min(640px, calc(100% - 24px));
  padding: 10px 0 132px;
  line-height: 1.5;
}

.page-shell,
.legal-shell {
  width: min(860px, calc(100% - 24px));
  padding: 22px 0 54px;
}

.page-hero {
  padding: clamp(26px, 6vw, 54px) 0 20px;
  text-align: left;
}

.page-hero h1 {
  max-width: 720px;
  margin: 0;
}

.page-hero p {
  max-width: 650px;
  color: #3d4a40;
}

.guide-mini-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin: 0 0 16px;
}

.guide-mini-grid div {
  display: grid;
  grid-template-columns: 44px 1fr;
  column-gap: 12px;
  align-items: center;
  padding: 15px;
  border: 1px solid rgba(232, 223, 207, .95);
  border-radius: 20px;
  background: rgba(255,253,248,.9);
  box-shadow: var(--soft-shadow);
}

.guide-mini-grid span {
  grid-row: span 2;
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border-radius: 15px;
  background: var(--green-soft);
}

.guide-mini-grid strong {
  line-height: 1.15;
}

.guide-mini-grid small {
  color: var(--muted);
  line-height: 1.4;
}

.content-card,
.legal-card {
  padding: clamp(20px, 4vw, 32px);
}

.content-card + .content-card,
.legal-card + .legal-card {
  margin-top: 16px;
}

.site-footer {
  width: min(860px, calc(100% - 24px));
  padding: 0 0 54px;
}

.site-footer nav,
.legal-footer {
  gap: 10px 14px;
}

.site-footer a,
.legal-footer a,
.legal-card a {
  color: var(--green-2);
}

@media (min-width: 720px) {
  .app-frame {
    width: min(680px, calc(100% - 36px));
    padding-top: 24px;
  }
  .asset-intro {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: min(640px, 100%);
    margin-left: auto;
    margin-right: auto;
  }
  .guide-mini-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .guide-mini-grid div {
    grid-template-columns: 1fr;
    align-items: start;
  }
  .guide-mini-grid span {
    grid-row: auto;
    margin-bottom: 10px;
  }
}

@media (max-width: 520px) {
  body {
    padding-bottom: 160px;
  }
  .app-frame {
    width: min(430px, calc(100% - 22px));
  }
  .hero-visual {
    width: min(330px, 94%);
  }
  .landing-copy h1,
  .scan-start h1,
  .page-hero h1,
  .legal-card h1 {
    font-size: clamp(1.62rem, 8vw, 2rem);
  }
  .hero-actions,
  .inline-signup,
  .search-row,
  .result-actions,
  .product-actions,
  .missing-actions,
  .list-metrics {
    grid-template-columns: 1fr !important;
  }
  .traffic-section,
  .guide-links,
  .highlight-panel {
    margin: 16px auto;
  }
  .bottom-nav {
    width: min(390px, calc(100% - 16px));
    bottom: 8px;
    border-radius: 19px;
  }
  .bottom-nav button {
    min-height: 62px;
    font-size: 0.66rem;
  }
  .legal-footer {
    padding-bottom: 126px;
  }
}

@media (max-width: 340px) {
  .app-frame {
    width: calc(100% - 16px);
  }
  .bottom-nav button {
    font-size: 0.62rem;
  }
}


/* Batch 2: human touch, richer homepage, mobile consistency and traffic-asset polish. */
:root {
  --bb-max: 640px;
}

.hero-visual {
  position: relative;
}

.hero-visual::after {
  position: absolute;
  right: 8%;
  bottom: -8px;
  padding: 8px 11px;
  border: 1px solid rgba(232, 223, 207, .95);
  border-radius: 999px;
  background: rgba(255,253,248,.92);
  box-shadow: var(--soft-shadow);
  color: #334336;
  content: "price + product notes";
  font-size: .72rem;
  font-weight: 900;
}

.product-preview-section,
.soft-cta-panel {
  width: min(620px, 100%);
  margin: 18px auto;
  padding: clamp(18px, 4.5vw, 28px);
  border: 1px solid rgba(232, 223, 207, 0.95);
  border-radius: var(--radius);
  background: rgba(255, 253, 248, 0.90);
  box-shadow: var(--soft-shadow);
}

.product-preview-section {
  background:
    linear-gradient(135deg, rgba(255,255,255,.94), rgba(255,231,220,.55));
}

.section-heading p:not(.eyebrow) {
  margin: 0 0 16px;
  color: var(--muted);
  font-size: .98rem;
  line-height: 1.6;
}

.preview-card-grid {
  display: grid;
  gap: 12px;
}

.preview-product-card {
  position: relative;
  display: grid;
  gap: 12px;
  padding: 15px;
  border: 1px solid rgba(207, 196, 178, .85);
  border-radius: 22px;
  background: rgba(255,255,255,.82);
  box-shadow: 0 8px 20px rgba(35, 46, 34, .055);
}

.preview-tag {
  width: fit-content;
  padding: 5px 9px;
  border-radius: 999px;
  color: #6b542b;
  background: var(--amber-soft);
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.preview-product-top {
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 12px;
  align-items: center;
}

.product-emoji {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border-radius: 17px;
  background: var(--green-soft);
  font-size: 1.45rem;
}

.preview-product-card h3 {
  margin: 0 0 4px;
  font-size: 1.08rem;
  line-height: 1.1;
}

.preview-product-card p,
.preview-product-card small {
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
}

.preview-meter {
  overflow: hidden;
  height: 10px;
  border-radius: 999px;
  background: #eef0e9;
}

.preview-meter span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--green), var(--amber));
}

.signup-reasons {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 13px;
}

.signup-reasons span {
  padding: 8px 10px;
  border: 1px solid rgba(207, 196, 178, .75);
  border-radius: 999px;
  color: #344739;
  background: rgba(255,255,255,.72);
  font-size: .78rem;
  font-weight: 800;
}

.soft-cta-panel {
  display: grid;
  grid-template-columns: 46px 1fr;
  gap: 12px;
  align-items: center;
  background:
    linear-gradient(135deg, rgba(232,243,234,.72), rgba(255,246,222,.72));
}

.soft-cta-panel > span {
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border-radius: 16px;
  background: #fffefa;
  box-shadow: inset 0 -5px 12px rgba(40,120,70,.08);
}

.soft-cta-panel h2 {
  margin: 0 0 4px;
  font-size: clamp(1.18rem, 4vw, 1.55rem);
  line-height: 1.07;
}

.soft-cta-panel p {
  margin: 0;
  color: var(--muted);
  line-height: 1.5;
}

.soft-cta-panel .secondary-button {
  grid-column: 1 / -1;
  min-height: 48px;
}

.asset-card,
.preview-product-card,
.guide-grid a,
.traffic-section,
.guide-links,
.highlight-panel,
.product-preview-section,
.soft-cta-panel {
  max-width: 100%;
}

.brand-header,
.scan-start,
.hero-actions,
.asset-intro,
.product-preview-section,
.traffic-section,
.guide-links,
.highlight-panel,
.soft-cta-panel {
  animation: bb-soft-in .35s ease both;
}

@keyframes bb-soft-in {
  from { opacity: 0; transform: translateY(7px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (min-width: 720px) {
  .preview-card-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .preview-product-top {
    grid-template-columns: 1fr;
    align-items: start;
  }
  .soft-cta-panel {
    grid-template-columns: 52px 1fr auto;
  }
  .soft-cta-panel .secondary-button {
    grid-column: auto;
    white-space: nowrap;
  }
}

@media (max-width: 520px) {
  .product-preview-section,
  .soft-cta-panel {
    width: min(430px, 100%);
    margin: 16px auto;
  }
  .preview-card-grid {
    gap: 10px;
  }
  .preview-product-card {
    padding: 14px;
    border-radius: 20px;
  }
  .signup-reasons span {
    width: 100%;
  }
}

.guide-next-card {
  background: linear-gradient(135deg, rgba(255,253,248,.94), rgba(232,243,234,.72));
}
.guide-next-card .hero-actions {
  justify-content: flex-start;
  margin-top: 14px;
}

/* Product result polish: inspired by clear product-labelling apps, without copying any one app */
.product-hero-card {
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  gap: 18px;
  align-items: center;
  background: linear-gradient(135deg, #fffaf0 0%, #ffffff 54%, #eef8f0 100%);
  border: 1px solid rgba(34, 92, 58, 0.14);
  border-radius: 28px;
  padding: 18px;
  box-shadow: var(--shadow-soft);
}
.product-photo.framed {
  min-height: 132px;
  border-radius: 24px;
  background: #fff;
  box-shadow: inset 0 0 0 1px rgba(24, 52, 35, 0.08);
}
.product-photo.framed img {
  object-fit: contain;
  padding: 10px;
}
.brand-line {
  margin-top: -4px;
  color: var(--muted);
  font-weight: 700;
}
.score-strip {
  display: flex;
  align-items: center;
  gap: 12px;
  width: fit-content;
  max-width: 100%;
  margin: 12px 0;
  padding: 10px 14px;
  border-radius: 999px;
  background: #eef3ef;
  color: #213327;
}
.score-strip div {
  display: flex;
  align-items: baseline;
  gap: 2px;
}
.score-strip strong {
  font-family: var(--display-font);
  font-size: clamp(1.35rem, 4vw, 1.8rem);
  line-height: 1;
}
.score-strip p {
  margin: 0;
  font-weight: 900;
}
.score-strip.great,
.score-strip.good {
  background: #dff4e7;
  color: #14582f;
}
.score-strip.mixed {
  background: #fff0cf;
  color: #76500b;
}
.score-strip.poor {
  background: #ffe2dc;
  color: #8a2d1b;
}
.quick-action-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 14px;
}
.product-breakdown-panel .section-heading.compact {
  margin-bottom: 12px;
}
.breakdown-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.breakdown-tile {
  border-radius: 20px;
  padding: 13px;
  background: #f6f3ec;
  border: 1px solid rgba(33, 44, 36, 0.08);
}
.breakdown-tile span,
.breakdown-tile small {
  display: block;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 800;
}
.breakdown-tile strong {
  display: block;
  margin: 6px 0 4px;
  font-family: var(--display-font);
  font-size: 1.18rem;
  line-height: 1;
}
.breakdown-tile.good {
  background: #e8f8ed;
  border-color: rgba(47, 125, 74, 0.2);
}
.breakdown-tile.medium {
  background: #fff4dd;
  border-color: rgba(217, 150, 45, 0.24);
}
.breakdown-tile.watch,
.breakdown-tile.poor {
  background: #ffe9e1;
  border-color: rgba(196, 78, 47, 0.22);
}
.two-column-detail {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
.check-list {
  list-style: none;
  margin: 12px 0 0;
  padding: 0;
  display: grid;
  gap: 9px;
}
.check-list li {
  position: relative;
  padding: 10px 10px 10px 34px;
  border-radius: 16px;
  background: #f8f6ef;
  color: var(--ink);
  font-weight: 700;
}
.check-list li::before {
  position: absolute;
  left: 11px;
  top: 10px;
  font-weight: 900;
}
.positive-list li::before {
  content: "✓";
  color: #2f7d4a;
}
.watch-list li::before {
  content: "!";
  color: #c05b2f;
}
.recommendation-panel {
  background: linear-gradient(135deg, #eef8f0, #fffaf0);
}

@media (max-width: 720px) {
  .product-hero-card {
    grid-template-columns: 1fr;
    padding: 14px;
    border-radius: 24px;
  }
  .product-photo.framed {
    width: min(100%, 190px);
    min-height: 160px;
    margin: 0 auto;
  }
  .score-strip {
    width: 100%;
    justify-content: space-between;
    border-radius: 20px;
  }
  .breakdown-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .two-column-detail {
    grid-template-columns: 1fr;
  }
  .quick-action-row > button {
    flex: 1 1 120px;
  }
}


/* Final BasketBalance one-big-deploy polish */
.how-it-works-panel,
.family-panel,
.trust-panel,
.quick-links-panel,
.suggest-mini-panel {
  width: min(560px, 100%);
  margin: 14px auto;
  padding: clamp(18px, 4.5vw, 26px);
  border: 1px solid rgba(232, 223, 207, 0.95);
  border-radius: 28px;
  background: rgba(255, 253, 248, 0.94);
  box-shadow: var(--soft-shadow, 0 18px 45px rgba(35,46,34,.10));
}

.how-it-works-panel {
  background: linear-gradient(145deg, rgba(255,255,255,.96), rgba(232,243,234,.82));
}

.works-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 16px;
}

.works-grid article {
  min-width: 0;
  padding: 15px;
  border: 1px solid rgba(207, 196, 178, .85);
  border-radius: 20px;
  background: rgba(255,255,255,.78);
}

.works-grid article span {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  margin-bottom: 10px;
  border-radius: 12px;
  color: #fff;
  background: #2f7d4a;
  font-weight: 900;
}

.works-grid article strong,
.quick-links-panel a strong {
  display: block;
  font-size: .98rem;
  line-height: 1.18;
}

.works-grid article small,
.quick-links-panel a small {
  display: block;
  margin-top: 5px;
  color: var(--muted);
  line-height: 1.45;
}

.inline-link-card,
.quick-links-panel a {
  display: block;
  margin-top: 14px;
  padding: 14px 16px;
  border: 1px solid rgba(207, 196, 178, .9);
  border-radius: 18px;
  color: inherit;
  background: rgba(255,255,255,.82);
  text-decoration: none;
}

.family-panel {
  display: grid;
  gap: 16px;
  background: linear-gradient(145deg, rgba(255,246,222,.92), rgba(255,255,255,.92));
}

.family-panel h2,
.trust-panel h2,
.how-it-works-panel h2,
.suggest-mini-panel h2 {
  margin: 4px 0 10px;
  font-size: clamp(1.28rem, 4vw, 1.78rem);
  line-height: 1.08;
}

.family-panel p,
.trust-panel p,
.how-it-works-panel p,
.suggest-mini-panel p {
  color: #3d4a40;
  line-height: 1.62;
}

.family-tags,
.trust-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.family-tags span,
.trust-badges span {
  padding: 8px 11px;
  border: 1px solid rgba(207, 196, 178, .85);
  border-radius: 999px;
  background: rgba(255,255,255,.78);
  font-size: .84rem;
  font-weight: 800;
}

.trust-panel {
  background: linear-gradient(145deg, rgba(255,255,255,.96), rgba(231,243,244,.82));
}

.quick-links-panel {
  display: grid;
  gap: 10px;
  padding: 14px;
  background: rgba(255,255,255,.66);
}

.quick-links-panel a {
  position: relative;
  margin: 0;
  padding-left: 54px;
}

.quick-links-panel a::before {
  position: absolute;
  left: 14px;
  top: 50%;
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 11px;
  background: var(--green-soft);
  transform: translateY(-50%);
  content: "✨";
}

.quick-links-panel a:nth-child(2)::before { content: "➕"; background: var(--amber-soft); }
.quick-links-panel a:nth-child(3)::before { content: "🤝"; background: var(--blue-soft); }

.suggest-mini-panel {
  display: grid;
  gap: 14px;
  align-items: center;
  background: linear-gradient(145deg, rgba(255,255,255,.95), rgba(255,246,222,.86));
}

.suggest-mini-panel .secondary-button {
  justify-self: start;
  min-height: auto;
  padding: 13px 18px;
  text-decoration: none;
}

.bottom-nav {
  width: min(540px, calc(100% - 22px)) !important;
  bottom: 12px !important;
  left: 50% !important;
  right: auto !important;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  overflow: visible;
  border: 1px solid rgba(209, 198, 180, .95) !important;
  border-radius: 24px !important;
  background: rgba(255, 253, 248, .96) !important;
  box-shadow: 0 16px 44px rgba(32, 45, 35, .18) !important;
  transform: translateX(-50%) !important;
  backdrop-filter: blur(18px);
}

.bottom-nav button {
  position: relative;
  display: flex !important;
  min-height: 64px !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 7px 3px 8px;
  border: 0 !important;
  border-radius: 18px;
  color: #738073;
  background: transparent !important;
  font-size: .69rem !important;
  letter-spacing: -.01em;
}

.bottom-nav button small {
  font-size: .69rem;
  font-weight: 900;
  line-height: 1;
}

.bottom-nav .nav-icon,
.bottom-nav button span {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  margin: 0 !important;
  border-radius: 11px;
  background: rgba(47, 125, 74, .08);
  font-size: .98rem !important;
}

.bottom-nav button.is-active {
  color: #1f6b44 !important;
}

.bottom-nav button.is-active::after {
  position: absolute;
  right: 13px;
  bottom: 6px;
  left: 13px;
  height: 3px;
  border-radius: 99px;
  background: #2f7d4a;
  content: "";
}

.bottom-nav .nav-scan {
  margin-top: -18px !important;
  border-radius: 22px !important;
  color: #fff !important;
  background: linear-gradient(135deg, #2f8a55, #1f6b44) !important;
  box-shadow: 0 12px 30px rgba(47, 125, 74, .28);
}

.bottom-nav .nav-scan .nav-icon,
.bottom-nav .nav-scan span {
  width: 34px;
  height: 34px;
  background: rgba(255,255,255,.18);
}

.product-actions [data-action="share-current"]::before,
.screen-header [data-action="share-current"]::before {
  content: "↗ ";
}

.share-prompt-card {
  margin-top: 12px;
  padding: 13px 14px;
  border: 1px dashed rgba(47, 125, 74, .35);
  border-radius: 18px;
  background: rgba(232, 243, 234, .7);
  color: #2f4938;
  font-size: .92rem;
  line-height: 1.45;
}

@media (max-width: 520px) {
  .works-grid { grid-template-columns: 1fr; }
  .how-it-works-panel,
  .family-panel,
  .trust-panel,
  .quick-links-panel,
  .suggest-mini-panel {
    width: min(100%, 430px);
    border-radius: 24px;
  }
  .bottom-nav {
    width: min(430px, calc(100% - 18px)) !important;
    bottom: 10px !important;
  }
  .bottom-nav button {
    min-height: 60px !important;
    font-size: .64rem !important;
  }
  .bottom-nav button small { font-size: .64rem; }
  .bottom-nav .nav-icon,
  .bottom-nav button span {
    width: 25px;
    height: 25px;
    font-size: .9rem !important;
  }
}

.page-link-grid {
  display: grid;
  gap: 12px;
  margin: 20px 0;
}

.page-link-grid a,
.info-step,
.partner-card {
  display: block;
  padding: 16px;
  border: 1px solid rgba(232, 223, 207, 0.95);
  border-radius: 20px;
  background: rgba(255, 253, 248, 0.92);
  color: inherit;
  text-decoration: none;
}

.info-step strong,
.partner-card strong {
  display: block;
  margin-bottom: 6px;
}

.product-example-layout {
  display: grid;
  gap: 14px;
}

.example-score-card {
  padding: 18px;
  border-radius: 24px;
  background: linear-gradient(145deg, rgba(232,243,234,.95), rgba(255,255,255,.95));
}

.example-score-card .score-number {
  display: inline-grid;
  width: 74px;
  height: 74px;
  place-items: center;
  margin-bottom: 10px;
  border-radius: 50%;
  color: #fff;
  background: #2f7d4a;
  font-size: 1.4rem;
  font-weight: 950;
}


/* Final mobile/navigation QA fixes: Home tab, camera action, tighter panels, readable CTAs. */
html, body {
  max-width: 100%;
  overflow-x: hidden;
}

.app-frame,
.screen,
.page-shell {
  max-width: 100%;
  box-sizing: border-box;
}

.screen:not(.scan-screen) {
  padding: 18px 14px 132px;
  border: 1px solid rgba(226, 216, 198, .9);
  border-radius: 28px;
  background: rgba(255, 253, 248, .92);
  box-shadow: 0 16px 42px rgba(43, 51, 39, .08);
}

.screen-header {
  display: flex;
  min-height: 54px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 18px;
  padding: 12px 14px;
  border: 1px solid rgba(226, 216, 198, .9);
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(255,255,255,.95), rgba(255,247,226,.72));
}

.screen-header > span {
  display: block;
  color: #203326;
  font-family: Fraunces, Georgia, serif;
  font-size: clamp(1.45rem, 6vw, 2rem);
  font-weight: 750;
  letter-spacing: -.035em;
  line-height: 1.05;
}

.screen-header .text-button {
  flex: 0 0 auto;
  padding: 9px 12px;
  border-radius: 999px;
  background: rgba(232, 243, 234, .92);
  color: #1f6b44;
  font-weight: 900;
  text-decoration: none;
}

.search-screen,
.history-screen,
.swaps-screen,
.lists-screen {
  width: min(100%, 560px);
  margin-inline: auto;
}

.search-row {
  width: 100%;
  min-width: 0;
}

.search-card,
.search-card form,
.search-row,
.search-row input,
.search-row button,
#searchResults,
.result-card,
.popular-searches,
.popular-list {
  max-width: 100%;
  box-sizing: border-box;
}

.search-screen .search-card {
  width: 100%;
  overflow: hidden;
}

.search-screen .search-card input {
  min-width: 0;
}

.primary-button,
.primary-action,
a.primary-button,
a.primary-action,
button.primary-button,
button.primary-action {
  color: #fff !important;
}

.secondary-action,
a.secondary-action,
button.secondary-action {
  color: #1f6b44 !important;
}

.bottom-nav {
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  width: min(540px, calc(100% - 14px)) !important;
  padding: 7px !important;
}

.bottom-nav button {
  min-width: 0;
  min-height: 58px !important;
  padding: 7px 2px 8px !important;
  color: #5f6f62 !important;
}

.bottom-nav button small {
  font-size: .61rem !important;
  letter-spacing: -.02em;
}

.bottom-nav button.is-active:not(.nav-scan) {
  color: #183d2a !important;
  background: linear-gradient(180deg, #fff7e2, #e8f3ea) !important;
  box-shadow: inset 0 0 0 1px rgba(47, 125, 74, .15);
}

.bottom-nav button.is-active:not(.nav-scan) .nav-icon {
  background: #ffffff;
  color: #1f6b44 !important;
}

.bottom-nav button.is-active::after {
  display: none !important;
}

.bottom-nav .nav-scan {
  margin-top: -16px !important;
  color: #fff !important;
  background: linear-gradient(135deg, #f2a23a, #2f8a55) !important;
  box-shadow: 0 13px 30px rgba(128, 87, 26, .24) !important;
}

.bottom-nav .nav-scan small,
.bottom-nav .nav-scan .nav-icon {
  color: #fff !important;
}

.bottom-nav .nav-scan:focus-visible {
  outline: 3px solid rgba(242, 162, 58, .45);
  outline-offset: 3px;
}

.detail-panel,
.empty-state,
.list-card,
.swap-card,
.result-card {
  border-radius: 22px;
}

.empty-state,
#historyPanel,
#swapsPanel,
#listsPanel,
#searchResults {
  padding-inline: 2px;
}

/* Keep every guide/legal page using the same warm card layout. */
.page-shell {
  width: min(720px, calc(100% - 24px));
  margin: 0 auto;
  padding: 20px 0 118px;
}

.page-shell > .page-hero,
.page-shell > .content-card,
.guide-mini-grid,
.guide-next-card {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.page-hero {
  border: 1px solid rgba(226, 216, 198, .92);
  border-radius: 30px;
  padding: clamp(22px, 7vw, 42px);
  background: linear-gradient(145deg, rgba(255,253,248,.98), rgba(255,245,220,.72));
  box-shadow: 0 18px 48px rgba(43, 51, 39, .08);
}

.page-hero h1 {
  color: #203326;
  font-family: Fraunces, Georgia, serif;
  font-size: clamp(1.75rem, 3vw, 2.4rem);
  letter-spacing: -.055em;
  line-height: .95;
}

.page-hero p {
  max-width: 62ch;
  color: #5c675d;
  font-size: clamp(1rem, 3.8vw, 1.12rem);
  line-height: 1.6;
}

.guide-mini-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 18px 0;
}

.guide-mini-grid article,
.content-card {
  border: 1px solid rgba(226, 216, 198, .9);
  border-radius: 24px;
  padding: 18px;
  background: rgba(255,253,248,.95);
  box-shadow: 0 12px 32px rgba(43, 51, 39, .06);
}

.content-card p,
.content-card li {
  color: #536055;
  line-height: 1.62;
}

@media (max-width: 520px) {
  .app-frame {
    padding-inline: 10px;
  }

  .screen:not(.scan-screen) {
    padding: 14px 10px 132px;
    border-radius: 24px;
  }

  .screen-header {
    padding: 11px 12px;
  }

  .search-row {
    grid-template-columns: 1fr;
  }

  .search-screen .search-card .primary-button {
    width: 100%;
  }

  .popular-searches {
    margin-inline: 0;
    padding-inline: 0;
  }

  .popular-list button {
    padding: 0 4px;
    font-size: 1rem;
  }

  .bottom-nav {
    width: min(430px, calc(100% - 10px)) !important;
    border-radius: 22px !important;
    gap: 1px;
  }

  .bottom-nav button {
    min-height: 56px !important;
  }

  .bottom-nav .nav-icon,
  .bottom-nav button span {
    width: 24px !important;
    height: 24px !important;
    font-size: .84rem !important;
    border-radius: 9px !important;
  }

  .bottom-nav .nav-scan .nav-icon,
  .bottom-nav .nav-scan span {
    width: 30px !important;
    height: 30px !important;
  }

  .guide-mini-grid {
    grid-template-columns: 1fr;
  }
}

/* Final launch fixes: signup state and cleaner public UX */
.already-registered-card {
  margin-top: 1rem;
  padding: 1rem;
  border-radius: 22px;
  background: linear-gradient(135deg, #f0fff5, #fff7e8);
  border: 1px solid rgba(47, 125, 74, .18);
  box-shadow: 0 14px 34px rgba(22, 49, 32, .08);
  color: #173524;
  display: grid;
  gap: .35rem;
}
.already-registered-card span {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: #2f7d4a;
  color: #fff;
  font-weight: 900;
}
.already-registered-card strong { font-size: 1.02rem; }
.already-registered-card p { margin: 0; color: #486154; line-height: 1.5; }
.signup-confirmation-dialog::backdrop { background: rgba(14, 32, 22, .42); backdrop-filter: blur(5px); }
.signup-confirmation-dialog {
  border: 0;
  border-radius: 28px;
  padding: 0;
  max-width: min(92vw, 420px);
  box-shadow: 0 32px 90px rgba(17, 37, 26, .26);
}
.signup-confirmation-panel {
  padding: 1.4rem;
  background: #fffdf6;
  display: grid;
  gap: .9rem;
  text-align: center;
}
.confirmation-icon {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  justify-self: center;
  border-radius: 999px;
  background: linear-gradient(135deg, #2f7d4a, #68b985);
  color: #fff;
  font-size: 1.5rem;
  font-weight: 900;
}
.signup-confirmation-panel h2 { margin: 0; font-family: var(--display-font, inherit); font-size: clamp(1.45rem, 5vw, 2rem); }
.signup-confirmation-panel p { margin: 0; color: #526457; line-height: 1.55; }
form[data-signup-form][hidden] { display: none !important; }


/* Final product-result journey fixes */
body { overflow-x: hidden; }
.app-frame, .screen, .product-result, .detail-panel, .product-hero-card { max-width: 100%; }
.product-summary-copy, .product-summary-copy h1, #resultTitle, .inside-item strong, .priority-item b { min-width: 0; overflow-wrap: anywhere; word-break: break-word; hyphens: auto; }
.product-summary-copy h1 { font-size: clamp(1.55rem, 4.6vw, 2.35rem); line-height: .98; }
.product-summary-copy > p:not(.brand-line) { font-size: clamp(1rem, 4vw, 1.18rem); line-height: 1.45; }
.priority-panel { background: linear-gradient(135deg, #fffdf7, #eef9f1); }
.priority-list { display: grid; gap: 10px; }
.priority-item { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 14px; border-radius: 20px; border: 1px solid rgba(33,44,36,.08); background: #f5f2ea; }
.priority-item strong, .priority-item small { display: block; }
.priority-item strong { font-size: 1.05rem; }
.priority-item small { margin-top: 2px; color: #6b756b; font-weight: 750; }
.priority-item b { font-size: 1rem; text-align: right; }
.priority-dot { width: 16px; height: 16px; border-radius: 999px; background: #9aa49a; box-shadow: 0 0 0 5px rgba(154,164,154,.14); }
.priority-item.good { background: #eaf8ee; }
.priority-item.good .priority-dot { background: #29b86a; box-shadow: 0 0 0 5px rgba(41,184,106,.16); }
.priority-item.medium { background: #fff5de; }
.priority-item.medium .priority-dot { background: #e0a52d; box-shadow: 0 0 0 5px rgba(224,165,45,.18); }
.priority-item.watch, .priority-item.poor { background: #ffe8e2; }
.priority-item.watch .priority-dot, .priority-item.poor .priority-dot { background: #df3f2f; box-shadow: 0 0 0 5px rgba(223,63,47,.15); }
.breakdown-tile { position: relative; overflow: hidden; }
.breakdown-tile::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; opacity: .9; }
.breakdown-tile.good::before { background: #2dbb70; }
.breakdown-tile.medium::before { background: #e0a52d; }
.breakdown-tile.watch::before, .breakdown-tile.poor::before { background: #df3f2f; }
.breakdown-tile span { font-size: .9rem; }
.breakdown-tile strong { font-size: clamp(1.45rem, 6vw, 2rem); }
.inside-item { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.25fr); align-items: start; }
.inside-item strong { text-align: right; }
.price-card { border-radius: 22px; padding: 16px; }
.price-card div:last-of-type strong { color: var(--green); }
.swap-card { border-radius: 22px; }
.list-panel { max-height: min(86vh, 680px); overflow: auto; }
.list-choices { display: grid; gap: 10px; }
.list-choices button { justify-content: flex-start; padding-inline: 18px; }
.signup-confirmation-dialog { z-index: 40; }
.signup-confirmation-panel { padding: 2rem 1.45rem; }
.signup-confirmation-panel h2 { font-size: clamp(1.25rem, 2.4vw, 1.65rem); }
.confirmation-icon { width: 66px; height: 66px; font-size: 2rem; }
.toast { display: none; }
.scanner-dialog { width: min(96vw, 520px); }
.scanner-panel { padding: 18px; }
.scanner-window { height: min(58svh, 520px); border-radius: 28px; }
.scanner-window::before { content: ""; position: absolute; z-index: 2; inset: 18%; border: 4px solid rgba(255,255,255,.88); border-radius: 22px; box-shadow: 0 0 0 999px rgba(0,0,0,.24); }
.scanner-window span { width: 68%; height: 3px; z-index: 3; }
@media (max-width: 720px) {
  .app-frame { padding-inline: 12px; }
  .product-hero-card { overflow: hidden; }
  .product-photo.framed { width: min(100%, 260px); min-height: 210px; }
  .quick-action-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quick-action-row button:last-child { grid-column: 1 / -1; }
  .priority-item { grid-template-columns: auto minmax(0,1fr); }
  .priority-item b { grid-column: 2; text-align: left; font-size: 1.08rem; }
  .inside-item { grid-template-columns: 1fr; }
  .inside-item strong { text-align: left; margin-top: 4px; }
  .scanner-dialog { width: 100vw; max-width: none; height: 100dvh; max-height: none; margin: 0; border-radius: 0; }
  .scanner-panel { min-height: 100dvh; border-radius: 0; grid-template-rows: auto 1fr auto auto auto auto; }
  .scanner-window { height: auto; min-height: 58dvh; }
}

.scan-loading-card {
  min-height: 55vh;
  display: grid;
  place-items: center;
  text-align: center;
  padding: clamp(2rem, 9vw, 4rem);
}
.scan-loading-card h1 {
  margin: 0.25rem 0 0.6rem;
  max-width: 11ch;
}
.scan-loading-card p:not(.eyebrow) {
  max-width: 32rem;
  margin-inline: auto;
}
.scan-loading-icon {
  width: 4.5rem;
  height: 4.5rem;
  display: grid;
  place-items: center;
  border-radius: 1.6rem;
  background: linear-gradient(135deg, rgba(39, 137, 79, 0.16), rgba(222, 172, 51, 0.22));
  box-shadow: 0 18px 44px rgba(20, 41, 30, 0.12);
  font-size: 2rem;
  margin-bottom: 1rem;
}

/* Next deploy: additive-first result screen and price-feed ready state */
.additive-focus-panel {
  border: 1px solid rgba(33,44,36,.08);
  background: linear-gradient(135deg, #fff8ea, #f4fbf0);
}
.additive-focus-panel.watch {
  background: linear-gradient(135deg, #fff2ea, #ffe7df);
  border-color: rgba(210, 75, 44, .18);
}
.additive-focus-panel.medium {
  background: linear-gradient(135deg, #fff8e4, #fff2cf);
  border-color: rgba(211, 151, 37, .2);
}
.additive-focus-panel.good {
  background: linear-gradient(135deg, #eaf8ee, #fbfff8);
  border-color: rgba(41, 184, 106, .18);
}
.additive-status-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 16px 0;
  padding: 14px 16px;
  border-radius: 20px;
  background: #fff;
  border: 1px solid rgba(33,44,36,.08);
  box-shadow: 0 12px 30px rgba(24, 43, 31, .08);
}
.additive-status-strip span {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  border-radius: 999px;
  padding: 0 12px;
  font-weight: 900;
  font-size: .82rem;
  letter-spacing: .02em;
  text-transform: uppercase;
}
.additive-status-strip strong { font-size: 1.08rem; text-align: right; }
.additive-status-strip.good span { background: #dff7e7; color: #116d39; }
.additive-status-strip.medium span { background: #ffe8ad; color: #7a4c00; }
.additive-status-strip.watch span,
.additive-status-strip.poor span { background: #ffd5ca; color: #8d2517; }
.additive-list {
  display: grid;
  gap: 10px;
}
.additive-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  padding: 14px;
  border-radius: 20px;
  background: #fff;
  border: 1px solid rgba(33,44,36,.08);
}
.additive-card b {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 58px;
  height: 38px;
  border-radius: 14px;
  background: #edf3ec;
  color: #1f3b2d;
  font-weight: 950;
}
.additive-card strong,
.additive-card small { display: block; min-width: 0; overflow-wrap: anywhere; }
.additive-card small { margin-top: 4px; color: #5f6c62; line-height: 1.45; font-weight: 750; }
.additive-card.medium b { background: #fff0bd; color: #7a4c00; }
.additive-card.watch b,
.additive-card.poor b { background: #ffd6cc; color: #8d2517; }
.empty-soft-card {
  padding: 14px;
  border-radius: 18px;
  background: rgba(255,255,255,.72);
  border: 1px dashed rgba(33,44,36,.18);
  color: #5f6c62;
  font-weight: 800;
}
@media (max-width: 560px) {
  .additive-status-strip { align-items: flex-start; flex-direction: column; }
  .additive-status-strip strong { text-align: left; }
  .additive-card { grid-template-columns: 1fr; }
  .additive-card b { justify-content: flex-start; padding-inline: 12px; width: fit-content; }
}

/* Nearby stores service */
.local-stores-panel,
.local-stores-note {
  display: grid;
  gap: 14px;
  margin-top: 14px;
}

.store-search-form {
  display: grid;
  gap: 9px;
}

.store-search-form label {
  font-size: .84rem;
  font-weight: 900;
  color: #314537;
}

.store-input-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
}

.store-input-row input {
  min-width: 0;
  min-height: 48px;
  border: 1px solid rgba(47,125,74,.22);
  border-radius: 16px;
  padding: 0 14px;
  background: rgba(255,255,255,.92);
  font: inherit;
  font-weight: 800;
}

.store-results {
  display: grid;
  gap: 10px;
}

.store-result-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: start;
  padding: 14px;
  border: 1px solid rgba(207,196,178,.8);
  border-radius: 18px;
  background: rgba(255,255,255,.86);
  box-shadow: 0 10px 26px rgba(40,55,44,.08);
}

.store-result-card strong,
.store-result-card span,
.store-result-card small,
.store-result-meta b {
  display: block;
}

.store-result-card span,
.store-result-card small {
  color: #657365;
  line-height: 1.38;
}

.store-result-meta {
  min-width: 86px;
  text-align: right;
}

.store-result-meta b {
  color: #1f6b44;
  font-size: .9rem;
}

.asset-card-button {
  width: 100%;
  border: 1px solid rgba(47,125,74,.16);
  text-align: left;
  cursor: pointer;
  font: inherit;
}

@media (max-width: 560px) {
  .store-input-row,
  .store-result-card {
    grid-template-columns: 1fr;
  }
  .store-result-meta {
    text-align: left;
  }
  .store-input-row .primary-button {
    width: 100%;
  }
  .bottom-nav {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  }
  .bottom-nav button small {
    font-size: .58rem !important;
  }
}


/* Signup gate */
.signup-gate-dialog::backdrop { background: rgba(20, 30, 24, 0.52); backdrop-filter: blur(4px); }
.signup-gate-dialog { border: 0; border-radius: 28px; padding: 0; max-width: min(92vw, 460px); width: 100%; box-shadow: 0 24px 70px rgba(21, 49, 35, 0.28); }
.signup-gate-panel { padding: 24px; background: #fffdf7; }
.signup-gate-panel > p { color: #42564a; line-height: 1.55; }
.signup-gate-panel input[type=email] { width: 100%; border: 1px solid rgba(47,125,74,.25); border-radius: 16px; padding: 14px 15px; font: inherit; margin: 8px 0 14px; }
.forgot-password-dialog::backdrop { background: rgba(20, 30, 24, 0.48); backdrop-filter: blur(4px); }
.forgot-password-dialog { border: 0; border-radius: 28px; padding: 0; max-width: min(92vw, 440px); width: 100%; box-shadow: 0 24px 70px rgba(21, 49, 35, 0.26); }
.forgot-password-panel { display: grid; gap: 12px; padding: 24px; background: #fffdf7; }
.forgot-password-panel > p { margin: 0; color: #42564a; line-height: 1.55; }
.forgot-password-panel input[type=email] { width: 100%; border: 1px solid rgba(47,125,74,.25); border-radius: 16px; padding: 14px 15px; font: inherit; }
button[disabled] { opacity: .62; cursor: not-allowed; }

.member-note {
  margin: 10px 0 0;
  color: #4b6256;
  font-size: 0.9rem;
  line-height: 1.45;
}
.muted-small {
  color: #728276;
  font-weight: 500;
  font-size: 0.86em;
}

/* AVH traffic launch cleanup: search-led home, lighter signup, five-tab app nav. */
.launch-home {
  width: min(640px, 100%);
  margin: 0 auto;
  padding-top: 18px;
}

.launch-home h1 {
  max-width: 640px;
  font-size: clamp(1.75rem, 3vw, 2.4rem);
  line-height: .96;
}

.launch-home p {
  max-width: 560px;
}

.home-search-card {
  display: grid;
  width: min(640px, 100%);
  gap: 12px;
  margin: 18px auto 10px;
  border: 1px solid rgba(232, 223, 207, 0.95);
  border-radius: 26px;
  padding: clamp(14px, 4vw, 20px);
  background: rgba(255, 253, 248, .96);
  box-shadow: 0 18px 44px rgba(43, 51, 39, .1);
}

.home-search-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
}

.home-search-row input {
  width: 100%;
  min-height: 58px;
  border: 1px solid rgba(207, 196, 178, .95);
  border-radius: 18px;
  padding: 0 15px;
  background: #fffefa;
  color: var(--ink);
  font: inherit;
}

.home-search-row .primary-action {
  width: 100%;
}

.home-support-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.home-support-actions .secondary-action {
  min-height: 52px;
  text-decoration: none;
}

.home-value-grid {
  width: min(760px, 100%);
  margin: 18px auto;
}

.compact-trust-panel {
  display: grid;
  width: min(640px, 100%);
  gap: 14px;
  align-items: center;
  margin: 18px auto 0;
  border: 1px solid rgba(232, 223, 207, 0.95);
  border-radius: 26px;
  padding: clamp(16px, 4vw, 22px);
  background: rgba(255, 253, 248, .92);
  box-shadow: var(--soft-shadow);
}

.compact-trust-panel h2 {
  margin: 4px 0 8px;
}

.compact-trust-panel p:last-child {
  margin-bottom: 0;
}

.inline-signup .primary-button,
.early-access-form .primary-button,
.signup-gate-panel .primary-button {
  min-height: 52px;
}

@media (min-width: 700px) {
  .home-search-row {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .home-search-row .primary-action {
    width: auto;
    white-space: nowrap;
  }

  .compact-trust-panel {
    grid-template-columns: minmax(0, 1fr) auto;
  }
}

@media (max-width: 380px) {
  .home-support-actions {
    grid-template-columns: 1fr;
  }

  .home-search-card {
    border-radius: 20px;
  }
}

.signup-gate-panel input[type=text], .early-access-form input[type=text], .inline-signup input[type=text] {
  width: 100%;
  border: 1px solid rgba(47,125,74,.25);
  border-radius: 16px;
  padding: 14px 15px;
  font: inherit;
  margin: 8px 0 14px;
  background: #fffef9;
}
.inline-signup input[type=text] {
  min-width: 0;
}


/* BasketBalance final QA lock: homepage navigation, member forms and no broken mobile layout. */
html,
body {
  max-width: 100%;
  overflow-x: hidden !important;
}

.global-app-home {
  display: flex;
  justify-content: center;
  margin: 0 auto 14px;
  padding: 10px 0 4px;
}
.global-app-home .brand {
  width: min(100%, 520px);
  justify-content: flex-start;
  padding: 12px 14px;
  border: 1px solid rgba(226, 216, 198, .9);
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(255,247,226,.78));
  box-shadow: 0 10px 28px rgba(43, 51, 39, .08);
}
.scan-screen > .brand-header {
  display: none !important;
}
.screen-header {
  min-width: 0;
}
.screen-header::before {
  flex: 0 0 auto;
}

.inline-signup,
.early-access-form,
.signup-gate-panel {
  display: grid !important;
  grid-template-columns: 1fr !important;
  width: 100% !important;
  max-width: 520px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  gap: 12px !important;
  align-items: stretch !important;
}
.inline-signup input,
.inline-signup select,
.inline-signup button,
.early-access-form input,
.early-access-form select,
.early-access-form button,
.signup-gate-panel input,
.signup-gate-panel select,
.signup-gate-panel button,
.report-panel input,
.report-panel select,
.report-panel textarea,
.list-panel input,
.list-panel button {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
}
.consent-line,
.compact-consent {
  display: grid !important;
  grid-template-columns: 22px minmax(0, 1fr) !important;
  gap: 10px !important;
  align-items: start !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 12px 13px !important;
  border-radius: 16px !important;
  background: rgba(255,255,255,.72) !important;
  border: 1px solid rgba(226,216,198,.85) !important;
}
.consent-line input,
.compact-consent input {
  width: 18px !important;
  height: 18px !important;
  min-height: 18px !important;
  margin: 2px 0 0 !important;
  padding: 0 !important;
}
.consent-line span,
.compact-consent span {
  min-width: 0 !important;
  overflow-wrap: anywhere !important;
  line-height: 1.45 !important;
}
.signin-inline-button,
.text-button.full[data-action="toggle-auth-mode"] {
  justify-self: center !important;
  min-height: auto !important;
  padding: 10px 14px !important;
}
.bottom-nav {
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  width: min(640px, calc(100% - 12px)) !important;
}
.bottom-nav button {
  min-width: 0 !important;
  padding-inline: 2px !important;
}
.bottom-nav .nav-camera {
  margin-top: -14px !important;
  border-radius: 18px 18px 10px 10px !important;
  color: #fff !important;
  background: var(--green) !important;
  box-shadow: 0 -8px 22px rgba(47,125,74,.18) !important;
}
.bottom-nav .nav-camera .nav-icon {
  background: rgba(255,255,255,.16) !important;
}
.bottom-nav .nav-scan {
  margin-top: 0 !important;
  color: inherit !important;
  background: transparent !important;
  box-shadow: none !important;
}
@media (max-width: 420px) {
  .global-app-home .brand {
    padding: 10px 12px;
  }
  .brand-mark {
    width: 40px !important;
    height: 40px !important;
  }
  .brand small {
    font-size: .72rem !important;
  }
  .bottom-nav {
    width: calc(100% - 8px) !important;
    bottom: 8px !important;
    border-radius: 18px !important;
  }
  .bottom-nav button {
    min-height: 58px !important;
    gap: 2px !important;
    font-size: .58rem !important;
  }
  .bottom-nav button small {
    font-size: .57rem !important;
  }
  .bottom-nav .nav-icon,
  .bottom-nav button span {
    width: 24px !important;
    height: 24px !important;
    font-size: .85rem !important;
  }
  .traffic-section,
  .early-access-card,
  .signup-gate-panel {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }
}

/* BasketBalance scan-result simplification and stronger home CTAs */
.home-search-row .primary-action,
a.primary-action[href="#scan"],
button[data-action="open-scan"],
button[data-action="open-camera"] {
  background: linear-gradient(135deg, #0f9f6e, #066c4d) !important;
  color: #fff !important;
  border: 0 !important;
  box-shadow: 0 14px 32px rgba(6, 108, 77, .22) !important;
}

.secondary-action[href="#member-account"],
a.secondary-action[href$="#member-account"],
.inline-signup .primary-button,
.early-access-form .primary-button,
.signup-gate-panel .primary-button {
  background: linear-gradient(135deg, #f5a524, #d97706) !important;
  color: #2d1600 !important;
  border: 0 !important;
  box-shadow: 0 14px 32px rgba(217, 119, 6, .18) !important;
}

.additive-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0 14px;
}

.legend-pill {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 8px 11px;
  font-size: .82rem;
  font-weight: 850;
  border: 1px solid var(--line);
  background: var(--card);
}

.legend-pill.good { color: #12663f; background: rgba(34, 197, 94, .12); }
.legend-pill.medium { color: #7c4a03; background: rgba(245, 158, 11, .16); }
.legend-pill.watch { color: #8f1d1d; background: rgba(239, 68, 68, .12); }

.compact-additives {
  display: grid;
  gap: 10px;
}

.compact-additives .additive-card {
  display: block;
  padding: 0;
  overflow: hidden;
}

.compact-additives .additive-card summary {
  cursor: pointer;
  list-style: none;
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 13px 14px;
}

.compact-additives .additive-card summary::-webkit-details-marker { display: none; }

.compact-additives .additive-card summary em {
  font-style: normal;
  font-size: .75rem;
  font-weight: 900;
  border-radius: 999px;
  padding: 6px 8px;
  background: rgba(255,255,255,.7);
}

.traffic-dot {
  width: 12px;
  height: 12px;
  border-radius: 999px;
  display: inline-block;
}

.traffic-dot.good { background: #22c55e; }
.traffic-dot.medium { background: #f59e0b; }
.traffic-dot.watch { background: #ef4444; }
.traffic-dot.unknown { background: #94a3b8; }

.additive-explainer {
  border-top: 1px solid var(--line);
  padding: 12px 14px 14px 46px;
  background: rgba(255,255,255,.56);
}

.additive-explainer p {
  margin: 4px 0;
}

.additive-card.good { border-color: rgba(34,197,94,.38); background: rgba(34,197,94,.08); }
.additive-card.medium { border-color: rgba(245,158,11,.42); background: rgba(245,158,11,.10); }
.additive-card.watch { border-color: rgba(239,68,68,.42); background: rgba(239,68,68,.10); }

.simplified-shopper-check .section-heading p,
.additive-focus-panel .section-heading p {
  max-width: 62ch;
}

@media (max-width: 520px) {
  .compact-additives .additive-card summary {
    grid-template-columns: auto auto minmax(0, 1fr);
  }
  .compact-additives .additive-card summary em {
    grid-column: 2 / -1;
    width: fit-content;
  }
  .additive-explainer { padding-left: 14px; }
}


/* BasketBalance deploy patch: make scan primary, reduce product image height, simplify colour language */
.home-support-actions {
  display: grid;
  grid-template-columns: 1.35fr .85fr;
  gap: 10px;
  align-items: stretch;
}
.home-support-actions .scan-action-primary {
  min-height: 72px;
  justify-content: flex-start;
  gap: 12px;
  padding: 14px 18px !important;
  border-radius: 24px !important;
  background: linear-gradient(135deg, #0f9f6e, #066c4d) !important;
  color: #fff !important;
  border: 0 !important;
  box-shadow: 0 18px 42px rgba(6, 108, 77, .28) !important;
}
.scan-action-primary .scan-icon {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 16px;
  background: rgba(255,255,255,.18);
  font-size: 1.35rem;
}
.scan-action-primary span:last-child {
  display: grid;
  gap: 2px;
  text-align: left;
}
.scan-action-primary strong {
  font-size: 1.05rem;
  line-height: 1;
}
.scan-action-primary small {
  color: rgba(255,255,255,.84);
  font-weight: 800;
  font-size: .74rem;
}
.home-search-row .primary-action {
  background: #fff !important;
  color: #0f5f43 !important;
  border: 2px solid rgba(15, 95, 67, .2) !important;
  box-shadow: none !important;
}
.product-hero-card {
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 14px;
  padding: 14px;
}
.product-photo.framed {
  width: 112px;
  min-height: 112px;
  max-height: 122px;
  border-radius: 20px;
}
.product-photo.framed img {
  padding: 6px;
}
.score-strip.great {
  background: #d8f5e1;
  color: #0f6a39;
}
.score-strip.good {
  background: #e8f8ed;
  color: #14582f;
}
.additive-focus-panel.good,
.additive-card.good {
  background: linear-gradient(135deg, #e9f9ef, #fafff9) !important;
  border-color: rgba(34,197,94,.30) !important;
}
.compact-additives .additive-card summary {
  grid-template-columns: auto auto minmax(0, 1fr) auto;
}
.compact-additives .additive-card summary small {
  grid-column: 3 / -1;
  color: #28734a;
  font-size: .78rem;
  font-weight: 850;
}
.coming-soon-panel {
  background: #fffdf7;
}
.coming-soon-panel h2::after {
  content: "Coming soon";
  display: inline-flex;
  vertical-align: middle;
  margin-left: 8px;
  padding: 5px 8px;
  border-radius: 999px;
  background: #eef3ef;
  color: #456252;
  font-family: var(--body-font);
  font-size: .72rem;
  font-weight: 900;
}
@media (max-width: 720px) {
  .product-hero-card {
    grid-template-columns: 96px minmax(0, 1fr) !important;
    align-items: start;
  }
  .product-photo.framed {
    width: 96px !important;
    min-height: 96px !important;
    max-height: 108px !important;
    margin: 0 !important;
  }
  .product-summary-copy h1 {
    font-size: clamp(1.55rem, 8vw, 2.15rem);
  }
  .score-strip {
    width: 100%;
    padding: 9px 12px;
  }
  .home-support-actions {
    grid-template-columns: 1fr;
  }
  .home-support-actions .scan-action-primary {
    min-height: 78px;
  }
  .compact-additives .additive-card summary {
    grid-template-columns: auto auto minmax(0, 1fr);
  }
  .compact-additives .additive-card summary em,
  .compact-additives .additive-card summary small {
    grid-column: 3 / -1;
  }
}


/* BasketBalance mobile product hero fix: image first, text below, score wraps cleanly */
.product-hero-card {
  align-items: start;
}
.score-strip.poor {
  background: #ffe2dc;
  color: #7f1d1d;
  border: 1px solid rgba(185, 28, 28, .18);
}
.score-strip.poor p {
  color: #7f1d1d;
}
@media (max-width: 720px) {
  .product-hero-card {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    padding: 16px !important;
  }
  .product-photo.framed {
    width: min(100%, 160px) !important;
    min-height: 150px !important;
    max-height: 170px !important;
    margin: 0 !important;
    justify-self: start !important;
  }
  .product-photo.framed img {
    padding: 7px !important;
  }
  .product-summary-copy {
    width: 100% !important;
  }
  .product-summary-copy h1 {
    font-size: clamp(1.45rem, 6.7vw, 1.98rem) !important;
    line-height: 1.02 !important;
  }
  .score-strip {
    width: 100% !important;
    min-width: 0 !important;
    border-radius: 22px !important;
    justify-content: flex-start !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 12px 14px !important;
  }
  .score-strip div {
    flex: 0 0 auto !important;
  }
  .score-strip strong {
    font-size: clamp(2rem, 11vw, 3rem) !important;
  }
  .score-strip p {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    hyphens: manual !important;
    line-height: 1.12 !important;
    font-size: clamp(1rem, 5.2vw, 1.45rem) !important;
  }
  .quick-action-row {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
  }
  .quick-action-row .secondary-button.full,
  .quick-action-row button:nth-child(3) {
    grid-column: 1 / -1 !important;
  }
}


/* BasketBalance scan result polish: clearer product hero, stronger alerts, better wrapping */
.product-hero-card {
  overflow: visible;
}
.score-strip {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 14px !important;
  width: 100% !important;
  border: 1px solid rgba(33, 44, 36, 0.08);
}
.score-strip div {
  white-space: nowrap !important;
  min-width: max-content !important;
}
.score-strip p {
  min-width: 0 !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
}
.score-strip.poor {
  background: #fecaca !important;
  color: #7f1d1d !important;
  border-color: rgba(185, 28, 28, .35) !important;
}
.score-strip.poor p,
.score-strip.poor strong {
  color: #7f1d1d !important;
}
.product-summary-copy h1 {
  overflow-wrap: anywhere;
}
.additive-card.good {
  background: linear-gradient(135deg, #e9f9ef, #ffffff) !important;
  border-color: rgba(34,197,94,.34) !important;
}
.additive-card.medium {
  background: #fff7e6 !important;
  border-color: rgba(245,158,11,.48) !important;
}
.additive-focus-panel.medium {
  background: #fffaf0 !important;
  border-color: rgba(245,158,11,.34) !important;
}
@media (max-width: 720px) {
  .product-hero-card {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    padding: 18px !important;
  }
  .product-photo.framed {
    width: min(100%, 215px) !important;
    min-height: 200px !important;
    max-height: 235px !important;
    justify-self: start !important;
  }
  .product-photo.framed img {
    padding: 8px !important;
    max-height: 225px !important;
  }
  .product-summary-copy h1 {
    font-size: clamp(1.78rem, 8.6vw, 2.62rem) !important;
    line-height: 1.04 !important;
    letter-spacing: -0.02em !important;
  }
  .score-strip {
    grid-template-columns: auto minmax(0, 1fr) !important;
    border-radius: 24px !important;
    padding: 13px 16px !important;
  }
  .score-strip strong {
    font-size: clamp(1.58rem, 8.6vw, 2.05rem) !important;
  }
  .score-strip p {
    font-size: clamp(1.1rem, 5vw, 1.55rem) !important;
    line-height: 1.12 !important;
  }
  .compact-additives .additive-card summary {
    grid-template-columns: auto auto minmax(0, 1fr) !important;
    align-items: center !important;
  }
  .compact-additives .additive-card summary strong {
    overflow-wrap: anywhere;
  }
}
@media (max-width: 390px) {
  .product-photo.framed {
    width: min(100%, 195px) !important;
    min-height: 180px !important;
  }
  .product-summary-copy h1 {
    font-size: clamp(1.65rem, 8vw, 2.25rem) !important;
  }
  .score-strip {
    gap: 10px !important;
    padding: 12px 13px !important;
  }
  .score-strip strong {
    font-size: clamp(1.58rem, 8.6vw, 2.05rem) !important;
  }
  .score-strip p {
    font-size: clamp(1rem, 4.6vw, 1.32rem) !important;
  }
}

/* BasketBalance QA pass: calmer limited-data wording, tighter mobile titles */
@media (max-width: 720px) {
  .product-summary-copy h1 {
    font-size: clamp(1.62rem, 7.2vw, 2.18rem) !important;
    line-height: 1.06 !important;
    overflow-wrap: anywhere !important;
  }
  .product-photo.framed {
    width: min(100%, 225px) !important;
    min-height: 210px !important;
    max-height: 245px !important;
  }
  .score-strip p {
    overflow-wrap: normal !important;
    word-break: keep-all !important;
    hyphens: none !important;
  }
  .priority-item b {
    overflow-wrap: anywhere !important;
  }
}
@media (max-width: 390px) {
  .product-summary-copy h1 {
    font-size: clamp(1.45rem, 6.7vw, 1.98rem) !important;
  }
}
.additive-focus-panel.unknown {
  background: #fffdf8 !important;
  border-color: rgba(141, 126, 98, .28) !important;
}
.traffic-dot.unknown,
.priority-item.unknown .priority-dot {
  background: #94a39a !important;
}
.priority-item.unknown {
  background: #f7f4ec !important;
  border-color: rgba(141, 126, 98, .22) !important;
}
.empty-soft-card {
  color: #5f6c62 !important;
}
.coming-soon-panel h2::after {
  white-space: nowrap !important;
}


/* BasketBalance QA polish - 29 Jun */
.topbar .text-button, .hero-actions a, .guide-grid a { text-decoration: none; }
.bottom-nav { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.close-text-button {
  border: 1px solid var(--border);
  border-radius: 999px;
  background: rgba(255,255,255,.92);
  color: var(--ink);
  font-weight: 900;
  padding: .85rem 1.1rem;
  min-width: auto;
}
.signup-gate-panel .dialog-heading { align-items: flex-start; gap: 1rem; }
.score-strip {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  column-gap: 1.1rem;
  padding: 1rem 1.15rem;
  border-radius: 1.5rem;
}
.score-strip div { display: flex; align-items: baseline; gap: .2rem; white-space: nowrap; }
.score-strip strong { font-size: clamp(1.72rem, 3.8vw, 2.28rem); line-height: .95; }
.score-strip p { font-size: clamp(1.25rem, 5vw, 2rem); line-height: 1.05; margin: 0; overflow-wrap: anywhere; }
.score-strip.poor { background: #ffd5d5; border-color: #ee7777; color: #8b1818; }
.score-strip.mixed { background: #fff0c9; border-color: #efc96d; color: #805600; }
.score-strip.good, .score-strip.great { background: #d9f8e4; border-color: #74d798; color: #0b7138; }
.priority-item.good { background: #dff8e8; border-color: #9de5b7; }
.priority-item.medium { background: #fff0c9; border-color: #efc96d; }
.priority-item.watch { background: #ffd6d6; border-color: #ef7777; }
.priority-item.good .priority-dot { background: #19bf6b; box-shadow: 0 0 0 .42rem rgba(25,191,107,.16); }
.priority-item.medium .priority-dot { background: #e8a40e; box-shadow: 0 0 0 .42rem rgba(232,164,14,.16); }
.priority-item.watch .priority-dot { background: #e63b31; box-shadow: 0 0 0 .42rem rgba(230,59,49,.16); }
.priority-item small { font-size: 1rem; font-weight: 900; }
.priority-item b { font-size: clamp(1.6rem, 7vw, 2.35rem); }
.colour-key { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .85rem !important; font-size: .88rem !important; line-height: 1.1 !important; }
.colour-key span { border-radius: 999px; padding: .48rem .68rem; font-weight: 900; }
.key-good { background: #dff8e8; color: #0b7138; }
.key-medium { background: #fff0c9; color: #805600; }
.key-watch { background: #ffd6d6; color: #8b1818; }
.product-actions .secondary-button[data-action="watch-current"] { display: none; }
.additive-focus-panel .empty-soft-card { display: none; }
@media (max-width: 560px) {
  .product-summary-copy h1 { font-size: clamp(1.62rem, 8vw, 2rem); line-height: .98; }
  .score-strip { padding: .9rem 1rem; }
}

/* BasketBalance product page tidy pass - 29 Jun PM */
.bottom-nav {
  width: min(560px, calc(100% - 10px)) !important;
  padding: 10px 9px calc(10px + env(safe-area-inset-bottom)) !important;
  gap: 6px !important;
}
.bottom-nav button {
  min-height: 66px !important;
  padding: 9px 4px 10px !important;
  border-radius: 20px !important;
}
.bottom-nav .nav-icon {
  font-size: 1.35rem !important;
  width: 2.45rem !important;
  height: 2.45rem !important;
}
.bottom-nav button small,
.bottom-nav button span {
  font-size: .76rem !important;
  line-height: 1.05 !important;
  font-weight: 900 !important;
}
.bottom-nav .nav-scan {
  min-height: 82px !important;
  margin-top: -22px !important;
  border-radius: 24px !important;
}
.bottom-nav .nav-scan .nav-icon {
  font-size: 1.55rem !important;
}

.quick-action-row,
.product-actions {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px !important;
}
.quick-action-row > button,
.product-actions > button {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 58px !important;
  padding-left: .7rem !important;
  padding-right: .7rem !important;
}
.quick-action-row button:last-child,
.quick-action-row button:nth-child(2),
.product-actions button:nth-child(2) {
  grid-column: auto !important;
}
.product-actions [data-action="share-current"] {
  grid-column: 1 / -1 !important;
}

.score-strip {
  display: grid !important;
  grid-template-columns: minmax(96px, .75fr) minmax(0, 1fr) !important;
  gap: .75rem !important;
  align-items: stretch !important;
  border-radius: 22px !important;
  padding: .82rem .92rem !important;
}
.score-number-block,
.score-reason-block {
  min-width: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
}
.score-number-block small,
.score-reason-block small {
  display: block !important;
  margin-bottom: .25rem !important;
  font-family: var(--body-font, inherit) !important;
  font-size: .68rem !important;
  line-height: 1 !important;
  letter-spacing: .09em !important;
  text-transform: uppercase !important;
  font-weight: 900 !important;
  opacity: .74 !important;
}
.score-number-line {
  display: inline-flex !important;
  align-items: baseline !important;
  gap: .12rem !important;
  white-space: nowrap !important;
}
.score-strip strong {
  font-size: clamp(1.72rem, 3.8vw, 2.28rem) !important;
  line-height: .9 !important;
}
.score-number-line > span {
  font-size: clamp(1rem, 4.2vw, 1.28rem) !important;
  font-weight: 800 !important;
}
.score-reason-block p,
.score-strip p {
  font-size: clamp(1.05rem, 4.4vw, 1.42rem) !important;
  line-height: 1.05 !important;
  margin: 0 !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
}

.coming-soon-panel .secondary-button[data-action="watch-current"] { display: none !important; }

@media (max-width: 390px) {
  .bottom-nav button small,
  .bottom-nav button span { font-size: .7rem !important; }
  .bottom-nav button { min-height: 62px !important; }
  .bottom-nav .nav-scan { min-height: 78px !important; }
  .score-strip { grid-template-columns: minmax(86px, .7fr) minmax(0, 1fr) !important; gap: .55rem !important; }
  .score-strip strong { font-size: clamp(1.58rem, 8.6vw, 2.05rem) !important; }
  .score-reason-block p { font-size: clamp(.95rem, 4vw, 1.2rem) !important; }
}

/* BasketBalance QA polish - footer buttons, colour key, quick check icons, signup modal */
.bottom-nav {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(58px, 1fr)) !important;
  justify-content: center !important;
  justify-items: center !important;
  align-items: center !important;
  gap: 10px !important;
  width: min(560px, calc(100% - 14px)) !important;
  padding: 10px 10px calc(10px + env(safe-area-inset-bottom)) !important;
}
.bottom-nav button,
.bottom-nav .nav-camera,
.bottom-nav .nav-scan {
  width: clamp(58px, 15.5vw, 74px) !important;
  height: clamp(58px, 15.5vw, 74px) !important;
  min-width: clamp(58px, 15.5vw, 74px) !important;
  min-height: clamp(58px, 15.5vw, 74px) !important;
  max-width: 78px !important;
  max-height: 78px !important;
  aspect-ratio: 1 / 1 !important;
  margin: 0 !important;
  padding: 6px !important;
  border-radius: 18px !important;
  display: inline-flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 3px !important;
}
.bottom-nav .nav-camera,
.bottom-nav .nav-scan {
  transform: translateY(-14px) !important;
  border-radius: 20px !important;
}
.bottom-nav .nav-icon {
  width: 2.05rem !important;
  height: 2.05rem !important;
  min-width: 2.05rem !important;
  min-height: 2.05rem !important;
  font-size: 1.15rem !important;
}
.bottom-nav button small,
.bottom-nav button span:not(.nav-icon) {
  font-size: .68rem !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

.colour-key {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: .4rem !important;
  width: 100% !important;
  margin-top: .75rem !important;
}
.colour-key span {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  min-height: 34px !important;
  padding: .38rem .35rem !important;
  font-size: clamp(.62rem, 2.7vw, .78rem) !important;
  white-space: nowrap !important;
}

.priority-item {
  grid-template-columns: auto auto minmax(0, 1fr) auto !important;
  padding: 1rem !important;
  gap: .7rem !important;
}
.priority-icon {
  width: 2.25rem !important;
  height: 2.25rem !important;
  border-radius: .85rem !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: rgba(255,255,255,.58) !important;
  border: 1px solid rgba(22,45,31,.08) !important;
  font-size: 1.15rem !important;
  font-weight: 900 !important;
  color: #173225 !important;
}
.priority-dot {
  width: 1rem !important;
  height: 1rem !important;
  flex: 0 0 auto !important;
}
.priority-item b {
  font-size: clamp(1.2rem, 5.5vw, 1.75rem) !important;
  white-space: nowrap !important;
}

.signup-gate-dialog {
  max-width: min(92vw, 460px) !important;
  max-height: min(86dvh, 720px) !important;
  overflow: hidden !important;
}
.signup-gate-panel {
  max-height: min(86dvh, 720px) !important;
  overflow-y: auto !important;
  padding: 22px 22px 26px !important;
}
.signup-gate-panel .dialog-heading {
  display: grid !important;
  grid-template-columns: 1fr auto !important;
  gap: .8rem !important;
  align-items: start !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 5 !important;
  background: #fffdf7 !important;
  padding-bottom: .75rem !important;
}
.close-text-button {
  width: auto !important;
  min-width: 76px !important;
  height: auto !important;
  min-height: 44px !important;
  padding: .65rem .95rem !important;
  border-radius: 999px !important;
  border: 2px solid rgba(23,50,37,.2) !important;
  background: #ffffff !important;
  color: #173225 !important;
  font-weight: 900 !important;
  box-shadow: 0 6px 18px rgba(20, 34, 26, .08) !important;
}
.signup-gate-panel .primary-button,
.signup-gate-panel .text-button {
  pointer-events: auto !important;
  position: relative !important;
  z-index: 3 !important;
}
.signup-gate-panel .form-status {
  display: block !important;
  min-height: 1.4rem !important;
  margin: .7rem 0 !important;
  font-weight: 900 !important;
  color: #7a2a1d !important;
}

@media (max-width: 390px) {
  .bottom-nav { gap: 7px !important; padding-left: 7px !important; padding-right: 7px !important; }
  .bottom-nav button,
  .bottom-nav .nav-camera,
  .bottom-nav .nav-scan {
    width: clamp(54px, 15vw, 62px) !important;
    height: clamp(54px, 15vw, 62px) !important;
    min-width: clamp(54px, 15vw, 62px) !important;
    min-height: clamp(54px, 15vw, 62px) !important;
    border-radius: 16px !important;
  }
  .priority-item { grid-template-columns: auto auto minmax(0, 1fr) !important; }
  .priority-item b { grid-column: 3; text-align: left !important; }
}

/* BasketBalance QA fix - footer squares, compact signal key, reliable signup - 29 Jun */
.bottom-nav {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  align-items: center !important;
  justify-items: center !important;
  width: min(560px, calc(100% - 12px)) !important;
  padding: 12px 12px calc(12px + env(safe-area-inset-bottom)) !important;
  gap: 8px !important;
}
.bottom-nav button,
.bottom-nav .nav-camera,
.bottom-nav .nav-scan {
  width: clamp(62px, 17vw, 76px) !important;
  height: clamp(62px, 17vw, 76px) !important;
  min-width: clamp(62px, 17vw, 76px) !important;
  min-height: clamp(62px, 17vw, 76px) !important;
  max-width: 78px !important;
  max-height: 78px !important;
  aspect-ratio: 1 / 1 !important;
  border-radius: 20px !important;
  padding: 7px 5px !important;
  margin: 0 auto !important;
  transform: none !important;
}
.bottom-nav .nav-scan {
  width: clamp(76px, 20vw, 88px) !important;
  height: clamp(76px, 20vw, 88px) !important;
  min-width: clamp(76px, 20vw, 88px) !important;
  min-height: clamp(76px, 20vw, 88px) !important;
  max-width: 90px !important;
  max-height: 90px !important;
  transform: translateY(-9px) !important;
}
.bottom-nav .nav-icon,
.bottom-nav button span:not(.nav-icon) {
  width: 2rem !important;
  height: 2rem !important;
  min-width: 2rem !important;
  min-height: 2rem !important;
  font-size: 1.05rem !important;
  margin: 0 !important;
}
.bottom-nav button small {
  font-size: .74rem !important;
  line-height: .95 !important;
  white-space: nowrap !important;
  margin: 0 !important;
}

.colour-key {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: .35rem !important;
  width: 100% !important;
  overflow: hidden !important;
}
.colour-key span {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: .22rem !important;
  min-width: 0 !important;
  min-height: 32px !important;
  padding: .35rem .25rem !important;
  border-radius: 999px !important;
  font-size: clamp(.62rem, 2.45vw, .76rem) !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  letter-spacing: -0.03em !important;
}
.colour-key span b {
  width: .55rem !important;
  height: .55rem !important;
  border-radius: 999px !important;
  display: inline-block !important;
  flex: 0 0 auto !important;
}
.key-good b { background: #17bf68 !important; }
.key-medium b { background: #e8a40e !important; }
.key-watch b { background: #e63b31 !important; }

.priority-item {
  grid-template-columns: auto auto minmax(0, 1fr) auto !important;
  align-items: center !important;
  padding: 1rem !important;
  gap: .65rem !important;
}
.priority-icon {
  width: 2.35rem !important;
  height: 2.35rem !important;
  min-width: 2.35rem !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.68) !important;
  border: 1px solid rgba(23,50,37,.12) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: .82rem !important;
  line-height: 1 !important;
  font-weight: 950 !important;
  color: #173225 !important;
  letter-spacing: -.04em !important;
}
.priority-icon[data-signal="sugar"] { color: #8b1818 !important; }
.priority-icon[data-signal="salt"] { color: #0b7138 !important; }
.priority-icon[data-signal="saturated-fat"] { color: #805600 !important; }
.priority-item strong { font-size: clamp(1.15rem, 5vw, 1.55rem) !important; }
.priority-item small { font-size: clamp(.86rem, 3.5vw, 1rem) !important; }
.priority-item b { font-size: clamp(1.3rem, 6vw, 2rem) !important; }

.signup-gate-dialog {
  z-index: 9999 !important;
  width: min(92vw, 470px) !important;
  max-height: 88dvh !important;
  border: 0 !important;
}
.signup-gate-panel {
  display: flex !important;
  flex-direction: column !important;
  gap: .85rem !important;
  max-height: 88dvh !important;
  overflow-y: auto !important;
  padding: 20px 20px max(30px, env(safe-area-inset-bottom)) !important;
  -webkit-overflow-scrolling: touch !important;
}
.signup-gate-panel .dialog-heading {
  position: sticky !important;
  top: 0 !important;
  z-index: 10 !important;
  background: #fffdf7 !important;
  padding-top: .15rem !important;
}
.close-text-button {
  min-width: 84px !important;
  min-height: 46px !important;
  cursor: pointer !important;
  pointer-events: auto !important;
}
.signup-gate-panel button,
.signup-gate-panel input,
.signup-gate-panel label {
  pointer-events: auto !important;
}
.signup-gate-panel .primary-button.full,
.signup-gate-panel .text-button.full {
  width: 100% !important;
  min-height: 54px !important;
  position: relative !important;
  z-index: 12 !important;
}
.signup-gate-panel .text-button.full {
  border: 2px solid rgba(23,50,37,.14) !important;
  border-radius: 999px !important;
  background: #fff !important;
}
.signup-gate-panel .form-status:not(:empty) {
  background: #fff5dc !important;
  border: 1px solid #efc96d !important;
  border-radius: 1rem !important;
  padding: .75rem .9rem !important;
}

.password-field-wrapper {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
}
.password-field-wrapper input {
  width: 100%;
  padding-right: 76px !important;
}
.password-visibility-button {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  min-width: 56px;
  min-height: 38px;
  border: 0;
  border-radius: 999px;
  background: #eef4ef;
  color: #173225;
  font: inherit;
  font-size: .88rem;
  font-weight: 900;
  cursor: pointer;
}

@media (max-width: 380px) {
  .colour-key span { font-size: .58rem !important; padding-left: .15rem !important; padding-right: .15rem !important; }
  .priority-item { grid-template-columns: auto auto minmax(0, 1fr) !important; }
  .priority-item b { grid-column: 3 !important; justify-self: start !important; }
}

/* BasketBalance tightening pass: auth, search, quick checks and mobile spacing. */
.toast {
  display: block !important;
  position: fixed;
  left: 50%;
  bottom: calc(112px + env(safe-area-inset-bottom));
  transform: translateX(-50%) translateY(12px);
  z-index: 9999;
  max-width: min(86vw, 360px);
  padding: 10px 14px;
  border-radius: 999px;
  background: rgba(24, 45, 31, .96);
  color: #fff;
  font-size: .92rem;
  font-weight: 900;
  line-height: 1.25;
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s ease, transform .2s ease;
  box-shadow: 0 18px 42px rgba(0,0,0,.18);
}
.toast.is-visible { opacity: 1; transform: translateX(-50%) translateY(0); }
.form-status:not(:empty) {
  display: block;
  padding: 10px 12px;
  border-radius: 14px;
  background: #fff5de;
  color: #7d5600;
  font-weight: 850;
  line-height: 1.35;
}
.is-signed-in .secondary-action[href="#member-account"],
.is-signed-in a.secondary-action[href$="#member-account"] { display: none !important; }
.forgot-password-button { margin-top: -4px !important; }

.colour-key {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px !important;
  align-items: stretch;
  margin: 14px 0 18px !important;
}
.colour-key span {
  min-width: 0 !important;
  display: inline-flex !important;
  justify-content: center;
  align-items: center;
  gap: 5px !important;
  white-space: nowrap;
  padding: 9px 6px !important;
  border-radius: 999px;
  font-size: clamp(.72rem, 3vw, .92rem) !important;
  line-height: 1 !important;
  font-weight: 900 !important;
}
.colour-key b { flex: 0 0 auto; width: 9px !important; height: 9px !important; border-radius: 50%; }

.priority-list { gap: 12px !important; }
.priority-item {
  grid-template-columns: auto auto minmax(0, 1fr) auto !important;
  gap: 12px !important;
  align-items: center !important;
  padding: 16px !important;
}
.priority-icon {
  width: 44px !important;
  height: 44px !important;
  border-radius: 16px !important;
  display: inline-grid !important;
  place-items: center !important;
  background: rgba(255,255,255,.82) !important;
  border: 1px solid rgba(33,44,36,.10) !important;
  font-size: .92rem !important;
  font-weight: 950 !important;
  color: #8b201e !important;
}
.priority-item strong { font-size: clamp(1.1rem, 4.5vw, 1.35rem) !important; }
.priority-item small { font-size: .9rem !important; }
.priority-item b {
  font-size: clamp(1.45rem, 6vw, 2.1rem) !important;
  line-height: 1 !important;
  white-space: nowrap;
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
}
.priority-item.watch, .priority-item.poor { background: #ffd9d9 !important; border-color: #ef6b6b !important; }
.priority-item.medium { background: #fff0c7 !important; border-color: #efc25e !important; }
.priority-item.good { background: #dcf8e6 !important; border-color: #80dba4 !important; }

@media (max-width: 520px) {
  .priority-item {
    grid-template-columns: auto auto minmax(0, 1fr) !important;
  }
  .priority-item b {
    grid-column: 2 / -1 !important;
    text-align: left !important;
    margin-top: 6px;
  }
  .priority-item div { min-width: 0; }
  .bottom-nav {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    justify-items: center !important;
    gap: 6px !important;
    padding: 10px 8px calc(10px + env(safe-area-inset-bottom)) !important;
  }
  .bottom-nav button {
    width: min(62px, 17vw) !important;
    min-width: min(62px, 17vw) !important;
    height: min(62px, 17vw) !important;
    min-height: min(62px, 17vw) !important;
    border-radius: 16px !important;
    padding: 4px !important;
  }
  .bottom-nav .nav-camera {
    width: min(78px, 19vw) !important;
    min-width: min(78px, 19vw) !important;
    height: min(78px, 19vw) !important;
    min-height: min(78px, 19vw) !important;
    margin-top: -20px !important;
    border-radius: 20px !important;
  }
}

/* 2026-06-30 History/list tidy pass: tighter rows, consistent type rhythm. */
.history-screen .screen-header {
  align-items: center;
}
#historyPanel {
  padding: 8px 4px 156px !important;
}
.history-screen .list-row,
.lists-screen .list-row {
  grid-template-columns: 86px minmax(0, 1fr) 20px !important;
  gap: 14px !important;
  align-items: center !important;
  padding: 14px 8px !important;
  min-height: 118px !important;
  border-bottom: 1px solid rgba(219, 207, 187, .95) !important;
}
.history-screen .row-image,
.lists-screen .row-image {
  width: 86px !important;
  height: 86px !important;
  min-height: 86px !important;
  border-radius: 14px !important;
  background: #f1eee4 !important;
}
.history-screen .row-image img,
.lists-screen .row-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}
.history-screen .row-copy,
.lists-screen .row-copy {
  min-width: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  gap: 5px !important;
}
.history-screen .row-copy h3,
.lists-screen .row-copy h3 {
  margin: 0 !important;
  font-size: clamp(1.08rem, 4.35vw, 1.38rem) !important;
  line-height: 1.14 !important;
  letter-spacing: -.025em !important;
  max-width: 100% !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}
.history-screen .row-copy p,
.lists-screen .row-copy p {
  margin: 0 !important;
  font-size: 1rem !important;
  line-height: 1.2 !important;
  color: #647061 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
.history-screen .row-copy small,
.lists-screen .row-copy small {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin-top: 3px !important;
  font-size: .92rem !important;
  line-height: 1.18 !important;
  color: #647061 !important;
}
.history-screen .score-dot,
.lists-screen .score-dot {
  width: 11px !important;
  height: 11px !important;
  flex: 0 0 11px !important;
}
.history-screen .list-row::after,
.lists-screen .list-row::after {
  align-self: center !important;
  justify-self: end !important;
  font-size: 2rem !important;
  line-height: 1 !important;
  color: #a6afa5 !important;
}

@media (max-width: 380px) {
  .history-screen .list-row,
  .lists-screen .list-row {
    grid-template-columns: 76px minmax(0, 1fr) 18px !important;
    gap: 12px !important;
    min-height: 108px !important;
  }
  .history-screen .row-image,
  .lists-screen .row-image {
    width: 76px !important;
    height: 76px !important;
    min-height: 76px !important;
  }
  .history-screen .row-copy h3,
  .lists-screen .row-copy h3 { font-size: 1.02rem !important; }
  .history-screen .row-copy p,
  .lists-screen .row-copy p { font-size: .92rem !important; }
  .history-screen .row-copy small,
  .lists-screen .row-copy small { font-size: .82rem !important; }
}

.forgot-password-panel input[type=password] { width: 100%; border: 1px solid rgba(47,125,74,.25); border-radius: 16px; padding: 14px 15px; font: inherit; }

/* Auth journey cleanup: sign-in mode must never show create-account-only fields. */
form[data-signup-form].is-login-mode .consent-line,
form[data-signup-form].is-login-mode input[name="consent"],
form[data-signup-form].is-login-mode input[name="name"],
form[data-signup-form].is-login-mode input[name="postcode"],
form[data-signup-form].is-login-mode select[name="interest"],
form[data-signup-form].is-login-mode label[for$="Name"],
form[data-signup-form].is-login-mode label[for$="Postcode"] {
  display: none !important;
}

/* Static page layout fix: keep legal/support pages aligned with the main BasketBalance layout. */
.page-topbar {
  justify-content: space-between;
  gap: 12px;
  width: min(860px, calc(100% - 24px));
  margin: 12px auto 0;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: rgba(255, 253, 248, 0.92);
  box-shadow: var(--shadow);
}

.page-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  justify-content: flex-end;
}

.contact-form {
  display: grid;
  gap: 12px;
  margin-top: 20px;
}

.contact-form input,
.contact-form select,
.contact-form textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 13px 14px;
  color: var(--ink);
  background: #fff;
  outline: none;
}

.contact-form textarea {
  min-height: 140px;
  resize: vertical;
}

.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(47, 125, 74, 0.12);
}

.form-helper {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: .95rem;
}

.form-success {
  margin-top: 16px;
  border: 1px solid rgba(47, 125, 74, 0.22);
  border-radius: 16px;
  padding: 13px 14px;
  color: var(--green);
  background: var(--green-soft);
  font-weight: 850;
}

@media (max-width: 560px) {
  .page-topbar {
    align-items: flex-start;
    border-radius: 20px;
  }

  .page-actions {
    width: 100%;
    justify-content: stretch;
  }

  .page-actions .text-button {
    flex: 1;
  }
}


.homepage-faq { margin-top: 18px; }
.homepage-faq h3 { margin: 20px 0 6px; color: var(--blue); font-family: var(--font-body); font-size: 1.02rem; font-weight: 900; }
.homepage-faq p { margin-top: 0; }

/* BasketBalance v11 QA hotfix: prevent mobile score overlap and keep product-type sections honest */
.score-strip {
  min-width: 0 !important;
  overflow: hidden !important;
}
.score-number-block,
.score-reason-block,
.score-number-line {
  min-width: 0 !important;
}
.score-reason-block small,
.score-number-block small {
  white-space: normal !important;
}
.score-reason-block p {
  max-width: 100% !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
}
@media (max-width: 560px) {
  .score-strip {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .72rem !important;
    align-items: start !important;
    padding: 1rem !important;
  }
  .score-number-block,
  .score-reason-block {
    width: 100% !important;
  }
  .score-number-line {
    justify-content: flex-start !important;
  }
  .score-strip strong {
    font-size: clamp(1.58rem, 8.6vw, 2.05rem) !important;
  }
  .score-number-line > span {
    font-size: clamp(1.1rem, 5.8vw, 1.55rem) !important;
  }
  .score-reason-block p {
    font-size: clamp(1.15rem, 5.8vw, 1.65rem) !important;
    line-height: 1.08 !important;
  }
}
@media (max-width: 390px) {
  .score-strip strong {
    font-size: clamp(1.5rem, 8vw, 1.95rem) !important;
  }
}

/* BasketBalance v12 explanation and display polish */
.explanation-panel {
  background: #fffdf8;
  border-color: rgba(41, 122, 72, .16);
}
.explanation-panel h2 { margin-bottom: .55rem; }
.plain-check-list {
  margin: .85rem 0 0;
  padding-left: 1.1rem;
  color: #4f5e52;
  font-weight: 750;
  line-height: 1.45;
}
.plain-check-list li + li { margin-top: .45rem; }
@media (max-width: 560px) {
  .score-strip {
    grid-template-columns: 1fr !important;
    overflow: visible !important;
  }
  .score-number-block small,
  .score-reason-block small {
    font-size: .72rem !important;
    letter-spacing: .12em !important;
  }
  .score-reason-block p {
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }
}


/* BasketBalance v14 product page design polish: calmer, less AI-looking product pages */
.product-hero-card {
  gap: clamp(1rem, 3vw, 2rem) !important;
}
.product-summary-copy h1,
.product-result h1,
#resultTitle {
  font-size: clamp(1.55rem, 4.6vw, 2.35rem) !important;
  line-height: 1.12 !important;
  letter-spacing: -0.035em !important;
  max-width: 760px;
}
.product-summary-copy .brand-line,
.brand-line {
  font-size: clamp(1rem, 2.2vw, 1.22rem) !important;
  line-height: 1.35 !important;
  color: #5f6d60 !important;
  font-weight: 800 !important;
}
.product-summary-copy > p:not(.brand-line),
.detail-panel p,
.inside-item,
.priority-item small,
.additive-card summary small,
.additive-explainer p {
  font-size: clamp(.94rem, 1.8vw, 1.05rem) !important;
  line-height: 1.55 !important;
}
.product-photo.framed,
.product-photo {
  max-width: min(100%, 390px) !important;
}
.product-photo img,
.result-image img,
.bb-product-image {
  object-fit: contain !important;
  background: #fff !important;
  border-radius: 22px !important;
}
.score-strip {
  display: grid !important;
  grid-template-columns: minmax(96px, .55fr) minmax(0, 1.45fr) !important;
  gap: .85rem !important;
  align-items: center !important;
  padding: .95rem 1.05rem !important;
  border-radius: 24px !important;
}
.score-number-block small,
.score-reason-block small {
  font-size: .66rem !important;
  letter-spacing: .12em !important;
  line-height: 1.25 !important;
  white-space: normal !important;
}
.score-number-line {
  display: inline-flex !important;
  align-items: baseline !important;
  gap: .12rem !important;
}
.score-strip strong {
  font-size: clamp(1.72rem, 3.8vw, 2.28rem) !important;
  line-height: .95 !important;
  letter-spacing: -0.045em !important;
}
.score-number-line > span {
  font-size: clamp(.95rem, 2.5vw, 1.25rem) !important;
  font-weight: 900 !important;
}
.score-reason-block p,
.score-strip p {
  font-size: clamp(1rem, 2.4vw, 1.32rem) !important;
  line-height: 1.18 !important;
  font-weight: 850 !important;
  margin: .18rem 0 0 !important;
}
.detail-panel h2,
.section-heading h2 {
  font-size: clamp(1.35rem, 3.2vw, 2rem) !important;
  line-height: 1.15 !important;
  letter-spacing: -0.025em !important;
}
.priority-item b {
  font-size: clamp(1.45rem, 5vw, 2.35rem) !important;
  line-height: 1 !important;
}
.bb-product-illustration {
  display: grid;
  place-items: center;
  min-height: 220px;
  aspect-ratio: 1 / 1;
  width: 100%;
  border-radius: 24px;
  background: linear-gradient(145deg, #fffaf0, #eaf7ed);
  border: 1px solid rgba(47, 125, 74, .16);
  color: #2f7d4a;
  text-align: center;
  font-weight: 900;
  gap: .35rem;
}
.bb-product-illustration svg {
  width: 64%;
  max-width: 170px;
  height: auto;
}
.bb-product-illustration rect {
  fill: rgba(255,255,255,.72);
  stroke: rgba(47,125,74,.18);
  stroke-width: 2;
}
.bb-product-illustration path {
  fill: currentColor;
  opacity: .82;
}
.bb-product-illustration span {
  font-size: .95rem;
  color: #5f6d60;
}
.additive-focus-panel h2 {
  font-size: clamp(1.35rem, 3vw, 1.9rem) !important;
}
.additive-card summary {
  gap: .55rem !important;
}
.additive-card summary strong {
  font-size: 1rem !important;
}
.additive-card summary em {
  font-size: .82rem !important;
  white-space: nowrap;
}
@media (max-width: 680px) {
  .product-hero-card {
    padding: 1.05rem !important;
  }
  .product-summary-copy h1,
  #resultTitle {
    font-size: clamp(1.65rem, 8vw, 2.35rem) !important;
  }
  .score-strip {
    grid-template-columns: minmax(82px, .45fr) minmax(0, 1fr) !important;
    padding: .85rem !important;
    gap: .7rem !important;
  }
  .score-strip strong {
    font-size: clamp(1.58rem, 8.6vw, 2.05rem) !important;
  }
  .score-reason-block p,
  .score-strip p {
    font-size: clamp(.98rem, 4.6vw, 1.18rem) !important;
  }
  .product-photo.framed,
  .product-photo {
    max-width: 100% !important;
  }
  .bb-product-illustration {
    min-height: 190px;
  }
  .priority-item {
    padding: .9rem !important;
  }
  .priority-item b {
    font-size: clamp(1.35rem, 7vw, 2rem) !important;
  }
}
@media (max-width: 390px) {
  .score-strip {
    grid-template-columns: 1fr !important;
  }
  .score-number-line { justify-content: flex-start !important; }
}

/* BasketBalance v16 controlled polish: calmer product pages and safe fallback product art */
.product-result .product-summary-copy h1,
.product-result #resultTitle {
  font-size: clamp(1.55rem, 4.6vw, 2.35rem) !important;
  line-height: 1.14 !important;
  letter-spacing: 0 !important;
}
.product-result .brand-line {
  font-size: clamp(.95rem, 2vw, 1.08rem) !important;
  letter-spacing: 0 !important;
}
.product-result .score-strip {
  grid-template-columns: minmax(8.2rem, .8fr) minmax(0, 1.2fr) !important;
  gap: .7rem !important;
  padding: .82rem .9rem !important;
  align-items: center !important;
}
.product-result .score-number-block small,
.product-result .score-reason-block small {
  font-size: .64rem !important;
  letter-spacing: 0 !important;
}
.product-result .score-strip strong {
  font-size: clamp(1.72rem, 3.8vw, 2.28rem) !important;
  letter-spacing: 0 !important;
}
.product-result .score-number-line > span {
  font-size: clamp(.9rem, 2vw, 1.08rem) !important;
}
.product-result .score-reason-block p,
.product-result .score-strip p {
  font-size: clamp(.92rem, 2.2vw, 1.12rem) !important;
  line-height: 1.22 !important;
}
.product-result .detail-panel h2,
.product-result .section-heading h2 {
  font-size: clamp(1.16rem, 2.8vw, 1.56rem) !important;
  letter-spacing: 0 !important;
}
.data-quality-note {
  padding: .78rem .9rem;
  border-radius: 16px;
  border: 1px solid rgba(141, 126, 98, .26);
  background: #fffaf0;
  color: #5f5848;
  font-size: .92rem !important;
  line-height: 1.45 !important;
  font-weight: 760;
}
.bb-product-illustration,
.image-failed::after {
  display: grid;
  place-items: center;
  min-height: 12rem;
  width: 100%;
  border-radius: 24px;
  background: linear-gradient(145deg, #fffaf0, #eaf7ed);
  border: 1px solid rgba(47, 125, 74, .16);
  color: #315640;
  text-align: center;
  font-weight: 900;
}
.image-failed::after {
  content: "Image not available yet.";
  padding: 1rem;
}
.bb-product-illustration .bb-illustration-shape {
  width: min(42%, 8rem);
  aspect-ratio: 3 / 4;
  border-radius: 22px;
  background: linear-gradient(160deg, rgba(47,125,74,.18), rgba(222,172,51,.22));
  border: 2px solid rgba(47,125,74,.22);
  box-shadow: inset 0 0 0 14px rgba(255,255,255,.45);
}
.bb-product-illustration.bottle .bb-illustration-shape,
.bb-product-illustration.spray .bb-illustration-shape {
  width: min(26%, 5rem);
  border-radius: 18px 18px 24px 24px;
}
.bb-product-illustration.tube .bb-illustration-shape {
  width: min(55%, 9rem);
  aspect-ratio: 3.5 / 1;
  border-radius: 999px 18px 18px 999px;
}
.bb-product-illustration.pack .bb-illustration-shape {
  width: min(52%, 9rem);
  aspect-ratio: 4 / 3;
}
.bb-product-illustration span:last-child {
  margin-top: .65rem;
  color: #657568;
  font-size: .88rem;
}
@media (max-width: 560px) {
  .product-result .score-strip {
    grid-template-columns: 1fr;
    gap: .58rem;
  }
  .product-result .score-strip strong {
    font-size: clamp(2rem, 11vw, 2.7rem);
  }
  .product-result .score-reason-block p,
  .product-result .score-strip p {
    font-size: clamp(.95rem, 4.2vw, 1.08rem);
  }
}

/* BasketBalance v18 polish: softer consumer product result pages */
.product-result .product-hero-card {
  background: linear-gradient(145deg, #fffdf8, #f6f4ed);
  border-color: rgba(83, 92, 77, .12);
  box-shadow: 0 18px 48px rgba(31, 43, 34, .10);
}
.product-result .product-summary-copy h1,
.product-result #resultTitle {
  font-size: clamp(1.42rem, 4.1vw, 2.08rem);
  line-height: 1.18;
  letter-spacing: 0;
}
.product-result .score-strip {
  border-radius: 20px;
  padding: .78rem .85rem;
  box-shadow: none;
}
.product-result .score-strip strong {
  font-size: clamp(1.72rem, 4.8vw, 2.48rem);
}
.product-result .score-number-line > span {
  font-size: clamp(.82rem, 1.9vw, 1rem);
}
.product-result .score-reason-block p,
.product-result .score-strip p {
  font-size: clamp(.9rem, 2vw, 1.04rem);
}
.product-result .score-strip.mixed,
.product-result .score-strip.poor,
.additive-focus-panel.unknown {
  background: #fff8ea;
  border-color: rgba(191, 137, 38, .24);
  color: #67480f;
}
.product-result .score-strip.good,
.product-result .score-strip.great,
.additive-focus-panel.good {
  background: #edf8ef;
  border-color: rgba(47, 125, 74, .20);
  color: #1f5d36;
}
.score-why-card {
  display: grid;
  gap: .25rem;
  margin-top: .8rem;
  padding: .82rem .9rem;
  border-radius: 16px;
  border: 1px solid rgba(141, 126, 98, .24);
  background: #f7f4ed;
  color: #4e594f;
}
.score-why-card strong {
  color: #26382d;
  font-size: .86rem;
  font-weight: 900;
}
.score-why-card p {
  margin: 0;
  font-size: .91rem;
  line-height: 1.48;
}
.additive-focus-panel.watch,
.additive-focus-panel.medium {
  background: #fff8ea;
  border-color: rgba(191, 137, 38, .24);
}
.compact-additives .additive-card.watch,
.compact-additives .additive-card.medium {
  background: #fffaf1;
  border-color: rgba(191, 137, 38, .24);
}
.compact-additives .additive-card.good {
  background: #f2faf4;
  border-color: rgba(47, 125, 74, .20);
}
.additive-explainer p {
  color: #4f5d53;
}
.bb-product-illustration {
  background: linear-gradient(145deg, #fffaf1, #edf7ef);
}
.bb-product-illustration small {
  display: block;
  margin-top: .2rem;
  color: #879084;
  font-size: .72rem;
  font-weight: 850;
}
.bb-product-illustration.stick .bb-illustration-shape {
  width: min(27%, 5.5rem);
  aspect-ratio: 1 / 2.2;
  border-radius: 26px 26px 18px 18px;
}
.bb-product-illustration.generic .bb-illustration-shape,
.bb-product-illustration.box .bb-illustration-shape {
  width: min(44%, 8rem);
  aspect-ratio: 4 / 5;
}
@media (max-width: 560px) {
  .product-result .product-summary-copy h1,
  .product-result #resultTitle {
    font-size: clamp(1.36rem, 6.4vw, 1.92rem);
  }
  .product-result .score-strip strong {
    font-size: clamp(1.58rem, 8.6vw, 2.05rem);
  }
}

/* BasketBalance v19: calmer typography and mobile product checks */
.landing-copy h1,
.scan-start h1,
.page-hero h1,
.legal-card h1,
.product-result h1,
.product-summary-copy h1,
#resultTitle {
  font-size: clamp(1.75rem, 3vw, 2.4rem) !important;
  line-height: 1.16 !important;
  letter-spacing: 0 !important;
}

.detail-panel h2,
.section-heading h2,
.legal-card h2,
.guide-copy-page h2,
.homepage-faq h2,
.dialog-heading h2 {
  font-size: clamp(1.25rem, 2.4vw, 1.65rem) !important;
  line-height: 1.22 !important;
  letter-spacing: 0 !important;
}

.legal-card h3,
.guide-copy-page h3,
.homepage-faq h3,
.asset-card strong,
.inside-item strong {
  font-size: clamp(1rem, 1.8vw, 1.18rem) !important;
  line-height: 1.28 !important;
  letter-spacing: 0 !important;
}

.landing-copy p,
.scan-start p,
.legal-card p,
.detail-panel p,
.product-summary-copy > p,
.inside-item,
.guide-copy-page li {
  font-size: clamp(.98rem, 1.45vw, 1.08rem) !important;
  line-height: 1.55 !important;
}

.product-result .product-hero-card {
  gap: clamp(.9rem, 2vw, 1.35rem) !important;
  padding: clamp(.95rem, 2.4vw, 1.35rem) !important;
}

.product-result .product-summary-copy h1,
.product-result #resultTitle {
  font-size: clamp(1.38rem, 2.8vw, 1.9rem) !important;
  line-height: 1.17 !important;
}

.product-main-summary {
  margin: .55rem 0 0;
  color: #48594c;
  font-weight: 760;
}

.score-strip,
.product-result .score-strip {
  grid-template-columns: minmax(7.2rem, .72fr) minmax(0, 1fr) !important;
  gap: .7rem !important;
  align-items: center !important;
  padding: .78rem .86rem !important;
  border-radius: 18px !important;
}

.score-strip strong,
.product-result .score-strip strong {
  font-size: clamp(1.72rem, 3.8vw, 2.28rem) !important;
  line-height: .95 !important;
  letter-spacing: 0 !important;
}

.score-number-line > span,
.product-result .score-number-line > span {
  font-size: clamp(.78rem, 1.7vw, .98rem) !important;
  font-weight: 900 !important;
}

.score-reason-block p,
.score-strip p,
.product-result .score-strip p {
  font-size: clamp(.92rem, 1.8vw, 1.06rem) !important;
  line-height: 1.22 !important;
  font-weight: 850 !important;
}

.score-strip.data-limited,
.product-result .score-strip.data-limited {
  background: #f7f4ec !important;
  border-color: rgba(120, 111, 92, .24) !important;
  color: #4f594f !important;
}

.product-info-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: .75rem;
}

.compact-info-button {
  min-height: 42px !important;
  padding: .58rem .8rem !important;
  border-radius: 999px !important;
  font-size: .88rem !important;
}

.product-info-dialog::backdrop {
  background: rgba(20, 30, 24, .48);
  backdrop-filter: blur(4px);
}

.product-info-dialog {
  width: min(92vw, 520px);
  max-height: 82dvh;
  border: 0;
  border-radius: 26px;
  padding: 0;
  box-shadow: 0 24px 70px rgba(21, 49, 35, .26);
}

.product-info-panel {
  display: grid;
  gap: .95rem;
  max-height: 82dvh;
  overflow-y: auto;
  padding: 20px 20px max(24px, env(safe-area-inset-bottom));
  background: #fffdf7;
}

.product-info-body {
  display: grid;
  gap: .75rem;
  color: #405347;
}

.product-info-body p {
  margin: 0;
  font-size: 1rem;
  line-height: 1.55;
}

.check-chip-panel {
  padding-top: 1rem !important;
}

.check-chip-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
  gap: .6rem;
}

.check-chip {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr);
  align-items: center;
  gap: .55rem;
  min-height: 58px;
  padding: .64rem .72rem;
  border-radius: 18px;
  border: 1px solid rgba(42, 64, 48, .1);
  background: #f7f4ec;
  color: #27382d;
}

.check-chip strong,
.check-chip small {
  display: block;
  min-width: 0;
}

.check-chip strong {
  font-size: .88rem;
  line-height: 1.1;
}

.check-chip small {
  margin-top: .16rem;
  color: #647165;
  font-size: .76rem;
  line-height: 1.1;
}

.check-chip-icon {
  width: 2rem;
  height: 2rem;
  padding: .35rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, .78);
  color: currentColor;
  stroke: currentColor;
  stroke-width: 1.7;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.check-chip.good {
  background: #edf8ef;
  border-color: rgba(47, 125, 74, .18);
  color: #245f39;
}

.check-chip.medium,
.check-chip.watch {
  background: #fff6df;
  border-color: rgba(191, 137, 38, .24);
  color: #70500d;
}

.check-chip.unknown {
  background: #f8f6ef;
  color: #59645b;
}

.ingredient-guidance-list {
  display: grid;
  gap: .7rem;
}

.ingredient-guidance-card {
  display: grid;
  grid-template-columns: 2.35rem minmax(0, 1fr);
  gap: .75rem;
  padding: .82rem .9rem;
  border-radius: 18px;
  border: 1px solid rgba(42, 64, 48, .1);
  background: #fffaf1;
}

.ingredient-guidance-card h3 {
  margin: 0 0 .18rem;
  font-size: 1rem !important;
}

.ingredient-guidance-card strong {
  display: inline-flex;
  margin-bottom: .35rem;
  color: #75530f;
  font-size: .8rem;
  font-weight: 900;
}

.ingredient-guidance-card p,
.ingredient-guidance-card small {
  display: block;
  margin: 0;
  line-height: 1.45;
}

.ingredient-guidance-card p {
  color: #415247;
  font-size: .94rem !important;
}

.ingredient-guidance-card small {
  margin-top: .35rem;
  color: #6d756d;
  font-size: .82rem;
  font-weight: 760;
}

.guidance-icon {
  display: inline-grid;
  place-items: center;
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, .82);
  color: #315f3f;
}

.guidance-icon .check-chip-icon {
  background: transparent;
}

.image-failed::before {
  content: "";
  width: min(44%, 8rem);
  aspect-ratio: 4 / 5;
  border-radius: 22px;
  background: linear-gradient(160deg, rgba(47,125,74,.18), rgba(222,172,51,.22));
  border: 2px solid rgba(47,125,74,.22);
  box-shadow: inset 0 0 0 14px rgba(255,255,255,.45);
}

.image-failed::after {
  content: "Image not available yet. Illustrative image" !important;
  white-space: pre-line;
}

.guide-copy-page {
  max-width: 840px;
}

.guide-cta-panel {
  margin: 1.4rem 0;
  padding: 1rem;
  border-radius: 18px;
  border: 1px solid rgba(47, 125, 74, .18);
  background: #f5fbf6;
}

@media (max-width: 560px) {
  .landing-copy h1,
  .scan-start h1,
  .page-hero h1,
  .legal-card h1,
  .product-result h1,
  .product-summary-copy h1,
  #resultTitle {
    font-size: clamp(1.62rem, 8vw, 2rem) !important;
  }

  .product-result .product-summary-copy h1,
  .product-result #resultTitle {
    font-size: clamp(1.32rem, 6.2vw, 1.72rem) !important;
  }

  .detail-panel h2,
  .section-heading h2,
  .legal-card h2,
  .guide-copy-page h2 {
    font-size: clamp(1.15rem, 5.2vw, 1.42rem) !important;
  }

  .product-result .product-hero-card {
    grid-template-columns: 1fr !important;
    padding: .85rem !important;
  }

  .product-result .product-photo.framed {
    width: min(100%, 190px) !important;
    min-height: 168px !important;
    max-height: 205px !important;
    justify-self: start !important;
  }

  .product-result .score-strip {
    grid-template-columns: minmax(6.3rem, .78fr) minmax(0, 1fr) !important;
    gap: .52rem !important;
    padding: .68rem .72rem !important;
  }

  .product-result .score-strip strong {
    font-size: clamp(1.58rem, 8.6vw, 2.05rem) !important;
  }

  .product-info-buttons {
    display: grid;
    grid-template-columns: 1fr;
  }

  .check-chip-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .5rem;
  }

  .check-chip {
    grid-template-columns: 1.8rem minmax(0, 1fr);
    min-height: 54px;
    padding: .58rem .62rem;
  }

  .check-chip-icon {
    width: 1.8rem;
    height: 1.8rem;
  }

  .product-info-dialog {
    width: min(calc(100vw - 16px), 520px);
    margin-bottom: 8px;
    border-radius: 24px 24px 18px 18px;
  }
}

/* BasketBalance v19.3: compact mobile product page polish */
.product-screen .screen-header {
  margin-bottom: 10px !important;
}

.product-screen .screen-header > span {
  font-size: clamp(1.05rem, 4.6vw, 1.28rem) !important;
  line-height: 1.05 !important;
  letter-spacing: 0 !important;
}

.product-screen .screen-header .text-button,
.product-screen .screen-header .icon-button {
  min-height: 34px !important;
  padding: 6px 10px !important;
  font-size: .82rem !important;
}

.product-result {
  display: grid;
  gap: .72rem;
}

.product-result .detail-panel,
.product-result .check-chip-panel,
.product-result .additive-focus-panel,
.product-result .coming-soon-panel,
.product-result .recommendation-panel {
  padding: .78rem .86rem !important;
  border-radius: 18px !important;
}

.product-result .section-heading.compact,
.product-result .section-heading {
  gap: .24rem !important;
  margin-bottom: .55rem !important;
}

.product-result .section-heading .eyebrow,
.product-result .eyebrow {
  font-size: .62rem !important;
  letter-spacing: .08em !important;
}

.product-result .section-heading h2,
.product-result .detail-panel h2 {
  margin: 0 !important;
  font-size: clamp(1rem, 2.5vw, 1.18rem) !important;
  line-height: 1.18 !important;
  letter-spacing: 0 !important;
}

.product-result .section-heading p:not(.eyebrow),
.product-result .detail-panel p,
.product-result .product-main-summary,
.product-result .source-note,
.product-result .share-prompt-card {
  font-size: .84rem !important;
  line-height: 1.36 !important;
}

.product-result .product-main-summary {
  margin: .42rem 0 0 !important;
  font-weight: 740 !important;
}

.product-result .pill {
  padding: .28rem .54rem !important;
  font-size: .68rem !important;
  line-height: 1 !important;
}

.product-result .brand-line {
  margin-top: .18rem !important;
  font-size: .82rem !important;
  line-height: 1.22 !important;
  font-weight: 780 !important;
}

.product-result .product-info-buttons {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: .42rem !important;
  margin-top: 0 !important;
}

.product-result .compact-info-button {
  min-height: 36px !important;
  padding: .42rem .5rem !important;
  border-radius: 13px !important;
  font-size: .76rem !important;
  line-height: 1.08 !important;
  box-shadow: none !important;
}

.product-result .quick-action-row,
.product-result .product-actions {
  gap: .5rem !important;
}

.product-result .quick-action-row > button,
.product-result .product-actions > button,
.product-result .primary-button,
.product-result .secondary-button {
  min-height: 42px !important;
  padding: .52rem .62rem !important;
  border-radius: 14px !important;
  font-size: .8rem !important;
  line-height: 1.1 !important;
}

.product-result .text-button {
  min-height: 34px !important;
  padding: .36rem .2rem !important;
  font-size: .78rem !important;
}

.product-result .product-hero-card {
  gap: .68rem !important;
  padding: .76rem !important;
  border-radius: 20px !important;
  box-shadow: 0 10px 28px rgba(31, 43, 34, .08) !important;
}

.product-result .product-photo.framed {
  width: min(100%, 150px) !important;
  min-height: 132px !important;
  max-height: 160px !important;
  border-radius: 17px !important;
  padding: .35rem !important;
}

.product-result .product-photo.framed img,
.product-result .bb-product-image {
  max-height: 145px !important;
  padding: 4px !important;
  border-radius: 14px !important;
}

.product-result .bb-product-illustration {
  min-height: 128px !important;
  border-radius: 17px !important;
}

.product-result .product-summary-copy {
  gap: .36rem !important;
}

.product-result .product-summary-copy h1,
.product-result #resultTitle {
  margin: .12rem 0 0 !important;
  font-size: clamp(1.08rem, 3.8vw, 1.32rem) !important;
  line-height: 1.12 !important;
  letter-spacing: 0 !important;
}

.product-result .score-strip {
  display: grid !important;
  grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr) !important;
  align-items: start !important;
  gap: .46rem !important;
  margin-top: .38rem !important;
  padding: .58rem .64rem !important;
  border-radius: 16px !important;
  overflow: visible !important;
  box-shadow: none !important;
}

.product-result .score-number-block,
.product-result .score-reason-block {
  display: grid !important;
  gap: .2rem !important;
  align-items: start !important;
  min-width: 0 !important;
  width: 100% !important;
  white-space: normal !important;
}

.product-result .score-number-block small,
.product-result .score-reason-block small {
  display: block !important;
  font-size: .56rem !important;
  line-height: 1.05 !important;
  letter-spacing: .06em !important;
  white-space: normal !important;
}

.product-result .score-number-line {
  display: inline-flex !important;
  align-items: baseline !important;
  justify-content: flex-start !important;
  gap: .1rem !important;
  min-width: 0 !important;
}

.product-result .score-strip strong {
  font-size: clamp(1.22rem, 5.9vw, 1.58rem) !important;
  line-height: .96 !important;
}

.product-result .score-number-line > span {
  font-size: clamp(.62rem, 2.8vw, .78rem) !important;
  line-height: 1 !important;
}

.product-result .score-strip p,
.product-result .score-reason-block p {
  margin: 0 !important;
  font-size: clamp(.78rem, 3.45vw, .94rem) !important;
  line-height: 1.12 !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
}

.product-result .score-strip.poor {
  background: #fff0ec !important;
  border-color: rgba(192, 71, 55, .24) !important;
  color: #8a2f24 !important;
}

.product-result .score-strip.mixed {
  background: #fff7e5 !important;
  border-color: rgba(196, 142, 35, .24) !important;
  color: #6a5018 !important;
}

.product-result .score-strip.good,
.product-result .score-strip.great {
  background: #eef8f0 !important;
  border-color: rgba(47, 125, 74, .18) !important;
  color: #235c38 !important;
}

.product-result .check-chip-grid,
.product-result .inside-list,
.product-result .simplified-shopper-check .priority-list {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: .46rem !important;
}

.product-result .check-chip,
.product-result .inside-item,
.product-result .priority-item {
  min-height: 0 !important;
  padding: .52rem .56rem !important;
  border-radius: 15px !important;
  border: 1px solid rgba(42, 64, 48, .10) !important;
  box-shadow: none !important;
}

.product-result .check-chip {
  grid-template-columns: 1.52rem minmax(0, 1fr) !important;
  gap: .4rem !important;
}

.product-result .check-chip-icon {
  width: 1.52rem !important;
  height: 1.52rem !important;
  padding: .28rem !important;
}

.product-result .check-chip strong,
.product-result .priority-item strong,
.product-result .inside-item span {
  font-size: .76rem !important;
  line-height: 1.08 !important;
}

.product-result .check-chip small,
.product-result .priority-item small {
  margin-top: .12rem !important;
  font-size: .66rem !important;
  line-height: 1.08 !important;
  font-weight: 760 !important;
}

.product-result .simplified-shopper-check .priority-item {
  display: grid !important;
  grid-template-columns: 1.4rem minmax(0, 1fr) !important;
  gap: .34rem .42rem !important;
  align-items: start !important;
}

.product-result .priority-dot {
  display: none !important;
}

.product-result .priority-icon {
  width: 1.4rem !important;
  height: 1.4rem !important;
  border-radius: 999px !important;
  font-size: .58rem !important;
}

.product-result .priority-item div {
  min-width: 0 !important;
}

.product-result .priority-item b {
  grid-column: 1 / -1 !important;
  justify-self: start !important;
  margin-top: .08rem !important;
  font-size: .88rem !important;
  line-height: 1.05 !important;
  text-align: left !important;
  white-space: normal !important;
}

.product-result .priority-item.good,
.product-result .check-chip.good {
  background: #eff8f1 !important;
  border-color: rgba(47, 125, 74, .16) !important;
}

.product-result .priority-item.medium,
.product-result .priority-item.watch,
.product-result .check-chip.medium,
.product-result .check-chip.watch {
  background: #fff7e5 !important;
  border-color: rgba(196, 142, 35, .20) !important;
  color: #684e16 !important;
}

.product-result .priority-item.poor {
  background: #fff0ec !important;
  border-color: rgba(192, 71, 55, .22) !important;
  color: #7d332a !important;
}

.product-result .colour-key {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: .34rem !important;
  margin: .44rem 0 .52rem !important;
}

.product-result .colour-key span {
  min-height: 26px !important;
  padding: .3rem .34rem !important;
  font-size: .62rem !important;
  line-height: 1 !important;
}

.product-result .colour-key b {
  width: 6px !important;
  height: 6px !important;
}

.product-result .inside-item {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: .16rem !important;
  align-items: start !important;
  background: #f8f5ed !important;
}

.product-result .inside-item strong {
  margin: 0 !important;
  font-size: .82rem !important;
  line-height: 1.12 !important;
  text-align: left !important;
  overflow-wrap: anywhere !important;
}

.product-result .ingredient-guidance-list {
  gap: .48rem !important;
}

.product-result .ingredient-guidance-card {
  grid-template-columns: 1.8rem minmax(0, 1fr) !important;
  gap: .52rem !important;
  padding: .58rem .64rem !important;
  border-radius: 15px !important;
}

.product-result .guidance-icon {
  width: 1.8rem !important;
  height: 1.8rem !important;
}

.product-result .ingredient-guidance-card h3 {
  font-size: .84rem !important;
  line-height: 1.1 !important;
}

.product-result .ingredient-guidance-card strong,
.product-result .ingredient-guidance-card small {
  font-size: .66rem !important;
}

.product-result .ingredient-guidance-card p {
  font-size: .76rem !important;
  line-height: 1.3 !important;
}

.product-result .coming-soon-panel {
  display: grid !important;
  gap: .18rem !important;
  background: #fffdf7 !important;
}

.product-result .coming-soon-panel h2 {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: .36rem !important;
}

.product-result .coming-soon-panel h2::after {
  margin-left: 0 !important;
  padding: .22rem .42rem !important;
  font-size: .58rem !important;
}

.product-result .share-prompt-card {
  padding: .62rem .7rem !important;
  border-radius: 14px !important;
}

@media (min-width: 721px) {
  .product-result .product-info-buttons {
    max-width: 560px;
  }
}

@media (max-width: 720px) {
  .product-screen {
    padding-top: 10px !important;
  }

  .product-screen .screen-header {
    min-height: 42px !important;
    margin: 0 0 .55rem !important;
    padding: .42rem .52rem !important;
    border-radius: 15px !important;
  }

  .product-result {
    gap: .58rem !important;
  }

  .product-result .product-hero-card {
    grid-template-columns: 1fr !important;
    gap: .56rem !important;
    padding: .66rem !important;
  }

  .product-result .product-photo.framed {
    width: min(100%, 136px) !important;
    min-height: 118px !important;
    max-height: 144px !important;
    justify-self: start !important;
  }

  .product-result .product-photo.framed img,
  .product-result .bb-product-image {
    max-height: 130px !important;
  }

  .product-result .bb-product-illustration {
    min-height: 116px !important;
  }

  .product-result .product-summary-copy h1,
  .product-result #resultTitle {
    font-size: clamp(1rem, 5.25vw, 1.28rem) !important;
  }

  .product-result .score-strip {
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr) !important;
    padding: .54rem .58rem !important;
  }

  .product-result .product-info-buttons {
    grid-template-columns: 1fr !important;
  }

  .product-result .compact-info-button {
    text-align: left !important;
    justify-content: flex-start !important;
  }
}

@media (max-width: 390px) {
  .product-result .product-photo.framed {
    width: min(100%, 126px) !important;
    min-height: 108px !important;
    max-height: 132px !important;
  }

  .product-result .score-strip {
    gap: .38rem !important;
    padding: .5rem .52rem !important;
  }

  .product-result .score-strip strong {
    font-size: clamp(1.1rem, 5.6vw, 1.4rem) !important;
  }

  .product-result .score-strip p {
    font-size: clamp(.72rem, 3.45vw, .86rem) !important;
  }

  .product-result .check-chip-grid,
  .product-result .inside-list,
  .product-result .simplified-shopper-check .priority-list {
    gap: .38rem !important;
  }
}

/* BasketBalance v19.4: site-wide design scale and product-page polish */
body {
  background: var(--bb-cream-bg);
  color: var(--bb-text-main);
}

.app-frame {
  padding-inline: clamp(12px, 3.7vw, 18px);
}

.primary-action,
.secondary-action,
.primary-button,
.secondary-button,
.text-button,
.icon-button {
  min-height: var(--bb-button-height-md);
  border-radius: var(--bb-radius-md);
  font-size: var(--bb-button-font-size);
  letter-spacing: 0;
}

.secondary-button,
.secondary-action,
.text-button,
.search-card,
.home-search-card,
.result-card,
.empty-card,
.asset-card,
.guide-cta-panel,
.product-info-dialog,
.detail-panel {
  border-color: var(--bb-card-border);
}

.landing-copy h1,
.scan-start h1 {
  font-size: clamp(2rem, 8vw, 2.6rem);
  letter-spacing: 0;
}

.guide-copy-page h1 {
  font-size: clamp(2rem, 5.5vw, 2.7rem);
  line-height: 1.04;
}

.guide-copy-page h2,
.section-heading h2 {
  font-size: clamp(1.35rem, 3.7vw, 1.8rem);
  line-height: 1.14;
}

.guide-copy-page h3 {
  font-size: clamp(1.05rem, 2.6vw, 1.24rem);
}

.guide-copy-page p,
.guide-copy-page li,
.guide-copy-page a {
  font-size: var(--bb-text-base);
  line-height: 1.56;
}

.product-screen .screen-header {
  background: var(--bb-card-bg) !important;
  border: 1px solid var(--bb-card-border) !important;
}

.product-screen .screen-header > span {
  font-size: clamp(1.35rem, 6vw, 1.75rem) !important;
  font-weight: 900 !important;
}

.product-result {
  gap: var(--bb-card-gap) !important;
}

.product-result .product-hero-card,
.product-result .detail-panel,
.product-result .check-chip-panel,
.product-result .additive-focus-panel,
.product-result .ingredient-guidance-panel,
.product-result .coming-soon-panel,
.product-result .recommendation-panel {
  border: 1px solid var(--bb-card-border) !important;
  background: var(--bb-card-bg) !important;
  border-radius: var(--bb-radius-xl) !important;
  box-shadow: 0 8px 22px rgba(34, 44, 36, .055) !important;
}

.product-result .product-hero-card {
  padding: var(--bb-card-padding-mobile) !important;
  gap: var(--bb-space-3) !important;
}

.product-result .detail-panel,
.product-result .check-chip-panel,
.product-result .additive-focus-panel,
.product-result .ingredient-guidance-panel {
  padding: var(--bb-card-padding-mobile) !important;
}

.product-result .product-photo.framed {
  width: min(100%, 132px) !important;
  min-height: 112px !important;
  max-height: 138px !important;
  padding: var(--bb-space-2) !important;
  border-radius: var(--bb-radius-lg) !important;
  background: #ffffff !important;
  border-color: var(--bb-card-border) !important;
}

.product-result .product-photo.framed img,
.product-result .bb-product-image {
  max-height: 122px !important;
}

.product-result .bb-product-illustration {
  min-height: 110px !important;
}

.product-result .product-summary-copy h1,
.product-result #resultTitle {
  font-size: clamp(1.25rem, 5.7vw, 1.5rem) !important;
  line-height: 1.12 !important;
  font-weight: 920 !important;
}

.product-result .brand-line {
  color: var(--bb-text-muted) !important;
  font-size: clamp(.88rem, 3.8vw, 1rem) !important;
}

.product-result .pill {
  border: 1px solid rgba(47, 125, 74, .18) !important;
  background: var(--bb-green-soft) !important;
  color: var(--bb-green) !important;
  font-size: var(--bb-text-xs) !important;
}

.product-result .section-heading.compact,
.product-result .section-heading {
  margin-bottom: var(--bb-space-2) !important;
  gap: var(--bb-space-1) !important;
}

.product-result .section-heading .eyebrow,
.product-result .eyebrow {
  color: var(--bb-text-muted) !important;
  font-size: var(--bb-text-xs) !important;
  letter-spacing: .08em !important;
}

.product-result .section-heading h2,
.product-result .detail-panel h2 {
  color: var(--bb-text-main) !important;
  font-size: clamp(1.08rem, 4.8vw, 1.32rem) !important;
  line-height: 1.16 !important;
  font-weight: 920 !important;
}

.product-result .section-heading p:not(.eyebrow),
.product-result .detail-panel p,
.product-result .product-main-summary,
.product-result .source-note,
.product-result .share-prompt-card {
  color: var(--bb-text-muted) !important;
  font-size: var(--bb-text-sm) !important;
  line-height: 1.38 !important;
}

.product-result .product-main-summary {
  color: #324238 !important;
  font-weight: 720 !important;
}

.product-result .score-strip {
  grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr) !important;
  gap: var(--bb-space-2) !important;
  margin-top: var(--bb-space-2) !important;
  padding: var(--bb-space-3) !important;
  border-radius: var(--bb-radius-lg) !important;
  border: 1px solid var(--bb-card-border) !important;
  background: var(--bb-neutral-soft) !important;
  color: var(--bb-text-main) !important;
}

.product-result .score-number-block,
.product-result .score-reason-block {
  gap: .18rem !important;
}

.product-result .score-number-block small,
.product-result .score-reason-block small {
  color: var(--bb-text-muted) !important;
  font-size: .68rem !important;
  line-height: 1.05 !important;
  letter-spacing: .075em !important;
}

.product-result .score-strip strong {
  font-size: min(2rem, 9vw) !important;
  line-height: .95 !important;
}

.product-result .score-number-line > span {
  color: var(--bb-text-muted) !important;
  font-size: min(1.1rem, 4.7vw) !important;
}

.product-result .score-strip p,
.product-result .score-reason-block p {
  color: var(--bb-text-main) !important;
  font-size: clamp(.92rem, 4vw, 1.05rem) !important;
  font-weight: 850 !important;
}

.product-result .score-strip.good,
.product-result .score-strip.great {
  background: var(--bb-green-soft) !important;
  border-color: rgba(47, 125, 74, .18) !important;
}

.product-result .score-strip.mixed {
  background: var(--bb-amber-soft) !important;
  border-color: rgba(183, 121, 31, .22) !important;
}

.product-result .score-strip.poor {
  background: var(--bb-red-soft) !important;
  border-color: rgba(183, 73, 60, .22) !important;
}

.product-result .score-strip.data-limited {
  background: var(--bb-neutral-soft) !important;
  border-color: var(--bb-card-border) !important;
}

.product-result .check-chip-grid,
.product-result .inside-list,
.product-result .simplified-shopper-check .priority-list {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: var(--bb-space-2) !important;
}

.product-result .check-chip,
.product-result .inside-item,
.product-result .priority-item {
  min-height: 58px !important;
  padding: .58rem .62rem !important;
  border-radius: var(--bb-radius-lg) !important;
  border: 1px solid var(--bb-card-border) !important;
  background: #ffffff !important;
  color: var(--bb-text-main) !important;
}

.product-result .check-chip {
  grid-template-columns: 1.75rem minmax(0, 1fr) !important;
  gap: var(--bb-space-2) !important;
}

.product-result .check-chip-icon {
  width: 1.75rem !important;
  height: 1.75rem !important;
  padding: .34rem !important;
  border-radius: 999px !important;
  color: currentColor !important;
  stroke-width: 1.75 !important;
  background: rgba(255, 255, 255, .75) !important;
}

.product-result .check-chip strong,
.product-result .priority-item strong,
.product-result .inside-label {
  color: var(--bb-text-main) !important;
  font-size: var(--bb-text-sm) !important;
  line-height: 1.12 !important;
  font-weight: 850 !important;
}

.product-result .check-chip small,
.product-result .priority-item small {
  color: var(--bb-text-muted) !important;
  font-size: var(--bb-text-xs) !important;
  line-height: 1.12 !important;
}

.product-result .check-chip.good,
.product-result .priority-item.good {
  background: var(--bb-green-soft) !important;
  border-color: rgba(47, 125, 74, .18) !important;
  color: var(--bb-green) !important;
}

.product-result .check-chip.medium,
.product-result .check-chip.watch,
.product-result .priority-item.medium,
.product-result .priority-item.watch {
  background: var(--bb-amber-soft) !important;
  border-color: rgba(183, 121, 31, .2) !important;
  color: var(--bb-amber) !important;
}

.product-result .priority-item.poor {
  background: var(--bb-red-soft) !important;
  border-color: rgba(183, 73, 60, .2) !important;
  color: var(--bb-red) !important;
}

.product-result .check-chip.unknown,
.product-result .priority-item.unknown,
.product-result .inside-item {
  background: var(--bb-neutral-soft) !important;
  color: var(--bb-text-main) !important;
}

.product-result .simplified-shopper-check .priority-item,
.product-result .inside-item {
  display: grid !important;
  grid-template-columns: 1.75rem minmax(0, 1fr) !important;
  gap: .28rem var(--bb-space-2) !important;
  align-items: center !important;
}

.product-result .priority-icon,
.product-result .inside-icon {
  display: grid !important;
  place-items: center !important;
  width: 1.75rem !important;
  height: 1.75rem !important;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, .72) !important;
  color: currentColor !important;
  font-size: 0 !important;
}

.product-result .priority-icon .check-chip-icon,
.product-result .inside-icon .check-chip-icon {
  width: 1.45rem !important;
  height: 1.45rem !important;
  padding: .22rem !important;
  background: transparent !important;
}

.product-result .priority-item b,
.product-result .inside-item strong {
  grid-column: 2 !important;
  color: var(--bb-text-main) !important;
  font-size: clamp(.95rem, 4vw, 1.08rem) !important;
  line-height: 1.12 !important;
  font-weight: 900 !important;
  text-align: left !important;
}

.product-result .inside-label {
  grid-column: 2 !important;
}

.product-result .colour-key {
  gap: var(--bb-space-2) !important;
  margin: var(--bb-space-2) 0 var(--bb-space-3) !important;
}

.product-result .colour-key span {
  background: #ffffff !important;
  border: 1px solid var(--bb-card-border) !important;
  color: var(--bb-text-muted) !important;
  font-size: .7rem !important;
}

.product-result .ingredient-guidance-card {
  grid-template-columns: 1.95rem minmax(0, 1fr) !important;
  gap: var(--bb-space-2) !important;
  padding: .62rem .68rem !important;
  border-color: var(--bb-card-border) !important;
  background: #ffffff !important;
}

.product-result .guidance-icon {
  width: 1.95rem !important;
  height: 1.95rem !important;
  color: var(--bb-green) !important;
}

.product-result .ingredient-guidance-card h3 {
  font-size: var(--bb-text-sm) !important;
}

.product-result .ingredient-guidance-card p {
  color: var(--bb-text-muted) !important;
  font-size: var(--bb-text-xs) !important;
}

.product-result .product-info-buttons {
  gap: var(--bb-space-2) !important;
}

.product-result .compact-info-button,
.product-result .quick-action-row > button,
.product-result .product-actions > button,
.product-result .primary-button,
.product-result .secondary-button {
  min-height: var(--bb-button-height-sm) !important;
  padding: .5rem var(--bb-button-padding-x) !important;
  border-radius: var(--bb-radius-md) !important;
  font-size: var(--bb-button-font-size) !important;
  box-shadow: none !important;
}

.product-result .compact-info-button {
  background: #ffffff !important;
  border: 1px solid var(--bb-card-border) !important;
  color: var(--bb-text-main) !important;
}

.product-result .compact-coming-soon-card {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: .2rem var(--bb-space-2) !important;
  padding: .62rem .7rem !important;
  border-radius: var(--bb-radius-lg) !important;
  background: var(--bb-neutral-soft) !important;
  box-shadow: none !important;
}

.product-result .compact-coming-soon-card h2 {
  grid-column: 1 !important;
  grid-row: 1 !important;
  font-size: var(--bb-text-base) !important;
  line-height: 1.1 !important;
}

.product-result .compact-coming-soon-card .feature-status {
  grid-column: 2 !important;
  grid-row: 1 !important;
  padding: .22rem .46rem !important;
  border-radius: 999px !important;
  border: 1px solid var(--bb-card-border) !important;
  background: #ffffff !important;
  color: var(--bb-text-muted) !important;
  font-size: .66rem !important;
  font-weight: 900 !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
}

.product-result .compact-coming-soon-card p {
  grid-column: 1 / -1 !important;
  margin: 0 !important;
  font-size: var(--bb-text-xs) !important;
}

.product-result .coming-soon-panel h2::after {
  content: none !important;
}

.product-result .share-prompt-card {
  background: var(--bb-neutral-soft) !important;
  border: 1px solid var(--bb-card-border) !important;
}

@media (min-width: 721px) {
  .product-result .product-hero-card {
    grid-template-columns: 150px minmax(0, 1fr) !important;
    padding: var(--bb-card-padding-desktop) !important;
  }

  .product-result .detail-panel,
  .product-result .check-chip-panel,
  .product-result .additive-focus-panel,
  .product-result .ingredient-guidance-panel {
    padding: var(--bb-card-padding-desktop) !important;
  }
}

@media (max-width: 720px) {
  .product-screen .screen-header {
    min-height: 44px !important;
    padding: .48rem .56rem !important;
  }

  .product-result .product-info-buttons {
    grid-template-columns: 1fr !important;
  }

  .product-result .check-chip-grid,
  .product-result .inside-list,
  .product-result .simplified-shopper-check .priority-list {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 360px) {
  .product-result .check-chip-grid,
  .product-result .inside-list,
  .product-result .simplified-shopper-check .priority-list {
    grid-template-columns: 1fr !important;
  }

  .product-result .score-strip {
    grid-template-columns: 1fr !important;
  }
}

/* BasketBalance v19.5: deduped product checks, aligned icons and modal rows */
.product-result .product-hero-card {
  overflow: hidden !important;
}

.product-result .product-photo.framed {
  display: grid !important;
  place-items: center !important;
  aspect-ratio: 1 / 1 !important;
  width: min(100%, 136px) !important;
  min-height: auto !important;
  max-height: none !important;
  background: #fff !important;
  box-shadow: inset 0 0 0 1px rgba(31, 43, 34, .04) !important;
}

.product-result .product-photo.framed img {
  width: 100% !important;
  height: 100% !important;
  max-height: 124px !important;
  object-fit: contain !important;
  object-position: center !important;
  padding: .2rem !important;
}

.product-result .bb-product-illustration {
  width: 100% !important;
  min-height: 112px !important;
  border: 1px solid var(--bb-card-border) !important;
  background: linear-gradient(145deg, #ffffff, var(--bb-neutral-soft)) !important;
}

.product-result .bb-product-illustration span:not(.bb-illustration-shape) {
  font-size: var(--bb-text-xs) !important;
}

.product-result .bb-product-illustration small {
  font-size: .66rem !important;
}

.product-result .product-summary-copy {
  gap: .46rem !important;
}

.product-result .pill {
  justify-self: start !important;
}

.product-result .status-strip {
  display: grid !important;
  gap: .18rem !important;
  margin-top: .05rem !important;
  padding: .62rem .68rem !important;
  border: 1px solid var(--bb-card-border) !important;
  border-radius: var(--bb-radius-lg) !important;
  background: var(--bb-neutral-soft) !important;
}

.product-result .status-strip strong,
.product-result .status-strip span {
  display: block !important;
  min-width: 0 !important;
}

.product-result .status-strip strong {
  color: var(--bb-text-main) !important;
  font-size: var(--bb-text-base) !important;
  line-height: 1.1 !important;
  font-weight: 930 !important;
}

.product-result .status-strip span {
  color: var(--bb-text-muted) !important;
  font-size: var(--bb-text-sm) !important;
  line-height: 1.3 !important;
  overflow-wrap: anywhere !important;
}

.product-result .status-strip.good {
  background: var(--bb-green-soft) !important;
  border-color: rgba(47, 125, 74, .18) !important;
}

.product-result .status-strip.mixed {
  background: var(--bb-amber-soft) !important;
  border-color: rgba(183, 121, 31, .22) !important;
}

.product-result .status-strip.poor {
  background: var(--bb-red-soft) !important;
  border-color: rgba(183, 73, 60, .22) !important;
}

.product-result .status-strip.data-limited {
  background: var(--bb-neutral-soft) !important;
}

.product-result .score-strip {
  margin-top: .06rem !important;
}

.product-result .check-chip-grid {
  align-items: stretch !important;
}

.product-result .check-chip {
  grid-template-columns: 1.7rem minmax(0, 1fr) !important;
  align-items: center !important;
  gap: .56rem !important;
}

.product-result .check-chip > span:last-child,
.product-result .additive-copy,
.product-result .ingredient-guidance-card > div,
.product-result .more-detail-row > span:nth-child(2) {
  min-width: 0 !important;
}

.product-result .check-chip strong,
.product-result .check-chip small,
.product-result .additive-copy strong,
.product-result .additive-copy small {
  overflow-wrap: anywhere !important;
}

.product-result .additive-focus-panel,
.product-result .ingredient-guidance-panel,
.product-result .more-details-panel {
  padding: var(--bb-card-padding-mobile) !important;
}

.product-result .compact-additives,
.product-result .ingredient-guidance-list,
.product-result .more-details-list {
  display: grid !important;
  gap: .45rem !important;
}

.product-result .additive-card,
.product-result .ingredient-guidance-card,
.product-result .more-detail-row {
  width: 100% !important;
  min-height: 48px !important;
  margin: 0 !important;
  padding: .54rem .6rem !important;
  border: 1px solid var(--bb-card-border) !important;
  border-radius: var(--bb-radius-lg) !important;
  background: #ffffff !important;
  color: var(--bb-text-main) !important;
  display: grid !important;
  grid-template-columns: 1.75rem minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: .58rem !important;
  text-align: left !important;
  box-shadow: none !important;
  appearance: none !important;
}

.product-result .additive-card.good,
.product-result .ingredient-guidance-card.useful-note {
  background: var(--bb-green-soft) !important;
  border-color: rgba(47, 125, 74, .18) !important;
}

.product-result .additive-card.medium,
.product-result .ingredient-guidance-card.check-label,
.product-result .ingredient-guidance-card.worth-checking {
  background: var(--bb-amber-soft) !important;
  border-color: rgba(183, 121, 31, .2) !important;
}

.product-result .additive-card.watch,
.product-result .additive-card.poor {
  background: var(--bb-red-soft) !important;
  border-color: rgba(183, 73, 60, .2) !important;
}

.product-result .additive-icon,
.product-result .guidance-icon,
.product-result .more-detail-icon {
  display: grid !important;
  place-items: center !important;
  width: 1.75rem !important;
  height: 1.75rem !important;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, .78) !important;
  color: currentColor !important;
}

.product-result .additive-icon .check-chip-icon,
.product-result .guidance-icon .check-chip-icon,
.product-result .more-detail-icon .check-chip-icon {
  width: 1.45rem !important;
  height: 1.45rem !important;
  padding: .22rem !important;
  background: transparent !important;
}

.product-result .additive-copy strong,
.product-result .ingredient-guidance-card h3,
.product-result .more-detail-row > span:nth-child(2) {
  display: block !important;
  margin: 0 !important;
  color: var(--bb-text-main) !important;
  font-size: var(--bb-text-sm) !important;
  line-height: 1.15 !important;
  font-weight: 880 !important;
}

.product-result .additive-copy small,
.product-result .ingredient-guidance-card strong {
  display: block !important;
  margin: .12rem 0 0 !important;
  color: var(--bb-text-muted) !important;
  font-size: var(--bb-text-xs) !important;
  line-height: 1.12 !important;
  font-weight: 820 !important;
}

.product-result .row-chevron,
.product-result .more-detail-row small {
  color: var(--bb-text-muted) !important;
  font-size: 1.28rem !important;
  line-height: 1 !important;
  font-weight: 800 !important;
}

.product-result .more-details-panel h2 {
  margin-bottom: .5rem !important;
}

.product-info-panel {
  background: var(--bb-card-bg) !important;
}

.product-info-body {
  gap: .62rem !important;
}

.product-info-body p {
  padding: .62rem .68rem !important;
  border: 1px solid var(--bb-card-border) !important;
  border-radius: var(--bb-radius-md) !important;
  background: var(--bb-neutral-soft) !important;
  color: var(--bb-text-main) !important;
  font-size: var(--bb-text-sm) !important;
  line-height: 1.42 !important;
}

.product-result .compact-coming-soon-card {
  min-height: 0 !important;
  padding: .5rem .62rem !important;
}

.product-result .compact-coming-soon-card h2 {
  font-size: var(--bb-text-sm) !important;
}

.product-result .compact-coming-soon-card p {
  display: none !important;
}

.product-result .product-actions {
  gap: .42rem !important;
}

@media (min-width: 721px) {
  .product-result .product-hero-card {
    grid-template-columns: 136px minmax(0, 1fr) !important;
  }
}

@media (max-width: 720px) {
  .product-result .product-photo.framed {
    justify-self: center !important;
  }

  .product-result .check-chip-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 390px) {
  .product-result .check-chip-grid {
    grid-template-columns: 1fr !important;
  }
}

/* BasketBalance v20: mobile product page UX and app-wide design-system polish */
:root {
  --bb-v20-edge: clamp(12px, 4vw, 16px);
  --bb-v20-card-radius: 16px;
  --bb-v20-card-pad: clamp(0.72rem, 3vw, 0.95rem);
  --bb-v20-shadow: 0 6px 18px rgba(34, 44, 36, .055);
}

html,
body {
  width: 100%;
  overflow-x: hidden;
}

.app-frame {
  width: min(820px, 100%) !important;
  padding-right: var(--bb-v20-edge) !important;
  padding-left: var(--bb-v20-edge) !important;
  padding-bottom: calc(104px + env(safe-area-inset-bottom, 0px)) !important;
}

.screen:not(.scan-screen) {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 10px 0 calc(104px + env(safe-area-inset-bottom, 0px)) !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.search-screen,
.history-screen,
.lists-screen,
.alerts-screen,
.profile-screen,
.product-screen {
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
}

.screen-header {
  margin-bottom: .7rem !important;
  padding: .62rem .7rem !important;
  border-radius: var(--bb-v20-card-radius) !important;
  box-shadow: none !important;
}

.screen-header > span {
  font-size: clamp(1.18rem, 5vw, 1.48rem) !important;
  letter-spacing: 0 !important;
}

.search-screen .search-card,
.result-card,
.list-card,
.list-row,
.empty-card,
.detail-panel,
.product-result .product-hero-card,
.product-result .detail-panel,
.product-result .check-chip-panel,
.product-result .additive-focus-panel,
.product-result .ingredient-guidance-panel,
.product-result .coming-soon-panel,
.product-result .recommendation-panel {
  width: 100% !important;
  max-width: none !important;
  border-radius: var(--bb-v20-card-radius) !important;
  box-shadow: var(--bb-v20-shadow) !important;
}

#searchResults,
#historyPanel,
#listsPanel,
#watchPanel,
.product-result {
  width: 100% !important;
  max-width: none !important;
  padding-inline: 0 !important;
}

.product-screen .screen-header {
  position: sticky;
  top: 0;
  z-index: 4;
}

.product-result {
  gap: .5rem !important;
}

.product-result .product-hero-card {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: .58rem !important;
  padding: var(--bb-v20-card-pad) !important;
  background: var(--bb-card-bg) !important;
  border-color: var(--bb-card-border) !important;
}

.product-result .product-photo.framed {
  justify-self: center !important;
  width: min(48vw, 174px) !important;
  min-width: 136px !important;
  max-width: 174px !important;
  aspect-ratio: 1 / 1 !important;
  min-height: auto !important;
  max-height: none !important;
  padding: .55rem !important;
  border-radius: var(--bb-v20-card-radius) !important;
  background: #fff !important;
  border: 1px solid var(--bb-card-border) !important;
}

.product-result .product-photo.framed img,
.product-result .bb-product-image {
  width: 100% !important;
  height: 100% !important;
  max-height: none !important;
  padding: 0 !important;
  object-fit: contain !important;
  object-position: center !important;
}

.product-result .bb-product-illustration {
  min-height: 100% !important;
  border-radius: calc(var(--bb-v20-card-radius) - 4px) !important;
  background: linear-gradient(145deg, #ffffff, #f4f2eb) !important;
}

.product-result .product-summary-copy {
  display: grid !important;
  gap: .42rem !important;
}

.product-result .product-summary-copy h1,
.product-result #resultTitle {
  font-size: clamp(1.24rem, 5.8vw, 1.6rem) !important;
  line-height: 1.1 !important;
  font-weight: 900 !important;
}

.product-result .brand-line {
  margin: 0 !important;
  font-size: clamp(.86rem, 3.7vw, .98rem) !important;
  line-height: 1.18 !important;
  font-weight: 760 !important;
}

.product-result .product-type-pill {
  display: inline-flex !important;
  align-items: center !important;
  gap: .36rem !important;
  width: fit-content !important;
  min-height: 30px !important;
  padding: .26rem .52rem !important;
  border-radius: 999px !important;
}

.product-result .product-type-pill .check-chip-icon {
  width: 1.25rem !important;
  height: 1.25rem !important;
  padding: .18rem !important;
  background: rgba(255, 255, 255, .78) !important;
}

.product-result .status-strip {
  display: grid !important;
  gap: .42rem !important;
  margin: .02rem 0 0 !important;
  padding: .52rem !important;
  border-radius: var(--bb-v20-card-radius) !important;
  border: 1px solid var(--bb-card-border) !important;
  background: #fff !important;
}

.product-result .traffic-status-options {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: .32rem !important;
}

.product-result .traffic-status-pill {
  display: grid !important;
  min-height: 30px !important;
  place-items: center !important;
  padding: .24rem .25rem !important;
  border: 1px solid var(--bb-card-border) !important;
  border-radius: 999px !important;
  color: var(--bb-text-muted) !important;
  background: var(--bb-neutral-soft) !important;
  font-size: .68rem !important;
  font-weight: 900 !important;
  line-height: 1.05 !important;
  text-align: center !important;
  opacity: .62 !important;
}

.product-result .traffic-status-pill.green.is-active {
  color: #14663a !important;
  border-color: rgba(47, 125, 74, .26) !important;
  background: var(--bb-green-soft) !important;
  opacity: 1 !important;
}

.product-result .traffic-status-pill.amber.is-active {
  color: #805600 !important;
  border-color: rgba(183, 121, 31, .28) !important;
  background: #fff1c9 !important;
  opacity: 1 !important;
}

.product-result .traffic-status-pill.red.is-active {
  color: #8b241c !important;
  border-color: rgba(183, 73, 60, .28) !important;
  background: #ffe3dd !important;
  opacity: 1 !important;
}

.product-result .status-strip p {
  margin: 0 !important;
  color: var(--bb-text-main) !important;
  font-size: .84rem !important;
  line-height: 1.28 !important;
  font-weight: 760 !important;
  overflow-wrap: anywhere !important;
}

.product-result .score-strip {
  display: grid !important;
  grid-template-columns: minmax(92px, .72fr) minmax(0, 1fr) !important;
  gap: .52rem !important;
  width: 100% !important;
  margin: 0 !important;
  padding: .62rem .68rem !important;
  border-radius: var(--bb-v20-card-radius) !important;
  background: #fff !important;
  border: 1px solid var(--bb-card-border) !important;
  color: var(--bb-text-main) !important;
}

.product-result .score-number-block small,
.product-result .score-reason-block small {
  font-size: .62rem !important;
  letter-spacing: .06em !important;
}

.product-result .score-strip strong {
  font-size: clamp(1.46rem, 7.2vw, 1.96rem) !important;
}

.product-result .score-number-line > span {
  font-size: .92rem !important;
}

.product-result .score-strip p,
.product-result .score-reason-block p {
  font-size: clamp(.86rem, 3.8vw, 1rem) !important;
  line-height: 1.14 !important;
}

.product-result .detail-panel,
.product-result .check-chip-panel,
.product-result .additive-focus-panel,
.product-result .ingredient-guidance-panel {
  padding: var(--bb-v20-card-pad) !important;
}

.product-result .section-heading h2,
.product-result .detail-panel h2 {
  font-size: clamp(1.02rem, 4.6vw, 1.22rem) !important;
}

.product-result .check-chip-grid,
.product-result .inside-list,
.product-result .simplified-shopper-check .priority-list {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: .42rem !important;
}

.product-result .check-chip,
.product-result .inside-item,
.product-result .priority-item,
.product-result .additive-card,
.product-result .ingredient-guidance-card,
.product-result .more-detail-row {
  min-height: 46px !important;
  padding: .5rem .56rem !important;
  border-radius: 14px !important;
}

.product-result .check-chip-icon,
.product-result .priority-icon,
.product-result .inside-icon,
.product-result .additive-icon,
.product-result .guidance-icon,
.product-result .more-detail-icon {
  width: 1.55rem !important;
  height: 1.55rem !important;
}

.product-result .check-chip-icon {
  padding: .28rem !important;
}

.product-result .additive-icon .check-chip-icon,
.product-result .guidance-icon .check-chip-icon,
.product-result .more-detail-icon .check-chip-icon,
.product-result .priority-icon .check-chip-icon,
.product-result .inside-icon .check-chip-icon {
  width: 1.28rem !important;
  height: 1.28rem !important;
  padding: .16rem !important;
}

.product-result .quick-action-row,
.product-result .product-actions {
  gap: .42rem !important;
}

.product-result .quick-action-row > button,
.product-result .product-actions > button,
.product-result .primary-button,
.product-result .secondary-button {
  min-height: 40px !important;
  border-radius: 13px !important;
  font-size: .88rem !important;
}

.product-result .compact-coming-soon-card {
  min-height: 0 !important;
  padding: .48rem .56rem !important;
  border-radius: 14px !important;
}

.product-result .compact-coming-soon-card h2 {
  font-size: .92rem !important;
}

.product-result .compact-coming-soon-card p {
  display: none !important;
}

.product-info-dialog,
.scanner-dialog,
.list-dialog,
.report-dialog,
.signup-gate-dialog,
.forgot-password-dialog,
.signup-confirmation-dialog {
  padding: 0 var(--bb-v20-edge) !important;
}

.product-info-panel,
.scanner-panel,
.list-panel,
.report-panel,
.signup-gate-panel,
.forgot-password-panel,
.signup-confirmation-panel {
  width: min(100%, 520px) !important;
  border-radius: 20px !important;
}

.bottom-nav {
  width: min(560px, calc(100% - 14px)) !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 6px !important;
  padding: 7px !important;
  border-radius: 22px 22px 0 0 !important;
}

.bottom-nav button,
.bottom-nav .nav-camera,
.bottom-nav .nav-scan {
  min-width: 0 !important;
  min-height: 58px !important;
  aspect-ratio: 1 / .82;
  padding: 6px 2px !important;
  border-radius: 14px !important;
}

.bottom-nav .nav-camera,
.bottom-nav .nav-scan {
  min-height: 72px !important;
  margin-top: -15px !important;
  aspect-ratio: 1 / 1;
  border-radius: 18px !important;
}

.bottom-nav .nav-icon {
  font-size: 1.22rem !important;
  line-height: 1 !important;
}

.bottom-nav small {
  font-size: .66rem !important;
  line-height: 1 !important;
}

@media (min-width: 721px) {
  .screen:not(.scan-screen) {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }

  .product-result .product-hero-card {
    grid-template-columns: 176px minmax(0, 1fr) !important;
    align-items: start !important;
  }

  .product-result .product-photo.framed {
    width: 176px !important;
    max-width: 176px !important;
  }
}

@media (max-width: 370px) {
  .product-result .product-photo.framed {
    width: min(52vw, 156px) !important;
    min-width: 128px !important;
  }

  .product-result .traffic-status-pill {
    font-size: .62rem !important;
  }

  .product-result .check-chip-grid,
  .product-result .inside-list,
  .product-result .simplified-shopper-check .priority-list {
    grid-template-columns: 1fr !important;
  }

  .product-result .score-strip {
    grid-template-columns: 1fr !important;
  }
}

/* BasketBalance v21: shared image and product-card refinement */
:root {
  --bb-card-radius: var(--bb-radius-lg);
  --bb-card-padding: 0.72rem;
  --bb-card-gap: 0.68rem;
  --bb-image-bg: #fbfaf6;
}

body {
  background: var(--bb-page-bg);
}

.bb-ui-icon,
.scan-icon.bb-ui-icon,
.card-icon.bb-ui-icon,
.nav-icon.bb-ui-icon {
  display: inline-grid;
  place-items: center;
  width: 1.28rem;
  height: 1.28rem;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  color: currentColor;
}

.bb-ui-icon svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.asset-card .card-icon.bb-ui-icon {
  width: 2.25rem;
  height: 2.25rem;
  margin-bottom: 0.55rem;
  padding: 0.52rem;
  border-radius: 0.9rem;
  background: var(--bb-green-soft);
  color: var(--bb-green);
}

.bottom-nav .nav-icon.bb-ui-icon {
  width: 1.34rem;
  height: 1.34rem;
  margin-bottom: 0.12rem;
}

.bottom-nav .nav-camera .nav-icon.bb-ui-icon {
  width: 1.58rem;
  height: 1.58rem;
}

#searchResults {
  display: grid;
  gap: 0.66rem;
}

#searchResults .results-heading {
  margin-bottom: 0;
}

.product-card {
  display: grid;
  width: 100%;
  grid-template-columns: minmax(76px, 92px) minmax(0, 1fr);
  gap: var(--bb-card-gap);
  align-items: center;
  border: 1px solid var(--bb-border);
  border-radius: var(--bb-card-radius);
  padding: var(--bb-card-padding);
  background: var(--bb-surface);
  box-shadow: var(--bb-shadow-sm);
  color: var(--bb-text);
}

.product-card[role="button"] {
  cursor: pointer;
}

.product-card[role="button"]:hover {
  border-color: rgba(47, 125, 74, 0.34);
  box-shadow: var(--bb-shadow-md);
}

.product-card[role="button"]:focus-visible,
.list-mini-product:focus-visible,
.bottom-nav button:focus-visible {
  outline: 3px solid rgba(47, 125, 74, 0.28);
  outline-offset: 3px;
}

.result-card.product-card,
.history-screen .product-card.list-row,
.lists-screen .product-card.list-row,
.alerts-screen .product-card.list-row {
  margin: 0;
  border: 1px solid var(--bb-border);
  border-radius: var(--bb-card-radius);
  background: var(--bb-surface);
  box-shadow: var(--bb-shadow-sm);
}

.history-screen .product-card.list-row,
.lists-screen .product-card.list-row,
.alerts-screen .product-card.list-row {
  grid-template-columns: minmax(70px, 82px) minmax(0, 1fr);
  min-height: 96px;
}

.product-card.list-row::after {
  content: none;
}

.product-card-image,
.result-image,
.row-image,
.product-photo,
.swap-image,
.list-mini-image {
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(222, 216, 204, 0.86);
  border-radius: var(--bb-radius-md);
  background: var(--bb-image-bg);
}

.product-card-image {
  width: 100%;
  min-height: 0;
  aspect-ratio: 1 / 1;
  padding: 0.32rem;
}

.result-image {
  min-height: 0;
}

.row-image {
  min-height: 0;
}

.product-card-image img,
.row-image img,
.result-image img,
.product-photo img,
.swap-image img,
.bb-product-image {
  width: 100%;
  height: 100%;
  max-height: 100%;
  object-fit: contain;
}

.bb-product-illustration {
  display: grid;
  width: 100%;
  height: 100%;
  min-height: 68px;
  aspect-ratio: auto;
  place-items: center;
  align-content: center;
  gap: 0.22rem;
  padding: 0.35rem;
  border: 0;
  border-radius: calc(var(--bb-radius-md) - 2px);
  color: #294333;
  text-align: center;
}

.bb-product-illustration .bb-fallback-art {
  width: min(64px, 76%);
  height: auto;
}

.bb-product-illustration span {
  color: var(--bb-text);
  font-size: clamp(0.66rem, 2.8vw, 0.78rem);
  font-weight: 900;
  line-height: 1.1;
}

.bb-product-illustration small {
  color: var(--bb-text-muted);
  font-size: 0.61rem;
  font-weight: 800;
  line-height: 1.1;
}

.bb-product-illustration.snacks,
.bb-product-illustration.chocolate {
  background: #fff8e7;
}

.bb-product-illustration.drink,
.bb-product-illustration.toothpaste,
.bb-product-illustration.shampoo {
  background: #edf6f8;
}

.bb-product-illustration.baby,
.bb-product-illustration.skincare {
  background: #f6f2fb;
}

.bb-product-illustration.household,
.bb-product-illustration.laundry {
  background: #eef5ef;
}

.image-failed::before,
.image-failed::after {
  content: none !important;
}

.product-card-copy {
  min-width: 0;
  display: grid;
  gap: 0.28rem;
}

.product-card-copy h3 {
  margin: 0;
  color: var(--bb-text);
  font-size: clamp(0.96rem, 3.9vw, 1.08rem);
  font-weight: 900;
  line-height: 1.16;
  overflow-wrap: anywhere;
}

.product-card-copy p {
  margin: 0;
}

.product-card-copy .result-brand,
.product-card-copy > p {
  color: var(--bb-text-muted);
  font-size: var(--bb-text-sm);
  font-weight: 760;
  line-height: 1.3;
}

.product-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.32rem;
  align-items: center;
}

.product-type-pill.compact,
.card-status-chip,
.mini-score {
  min-height: 1.62rem;
  border-radius: 999px;
  padding: 0.28rem 0.52rem;
  font-size: 0.72rem;
  font-weight: 900;
  line-height: 1;
  white-space: nowrap;
}

.product-type-pill.compact {
  gap: 0.28rem;
  border: 1px solid rgba(222, 216, 204, 0.82);
  background: var(--bb-surface-muted);
  color: var(--bb-text-muted);
}

.product-type-pill.compact .check-chip-icon {
  width: 0.9rem;
  height: 0.9rem;
  padding: 0;
  border: 0;
  background: transparent;
}

.card-status-chip.green,
.mini-score.great,
.mini-score.good {
  background: var(--bb-green-soft);
  color: var(--bb-green);
}

.card-status-chip.amber,
.mini-score.mixed {
  background: var(--bb-amber-soft);
  color: #805500;
}

.card-status-chip.red,
.mini-score.poor {
  background: var(--bb-red-soft);
  color: var(--bb-red);
}

.card-status-chip.limited,
.mini-score.data-limited,
.traffic-status-pill.limited.is-active {
  border: 1px solid rgba(100, 114, 104, 0.18);
  background: var(--bb-neutral-soft);
  color: var(--bb-text-muted);
}

.result-reason {
  display: -webkit-box;
  color: var(--bb-text-muted);
  font-size: 0.8rem;
  font-weight: 760;
  line-height: 1.32;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.data-trust-line {
  margin: -0.1rem 0 0.18rem;
  color: var(--bb-text-muted);
  font-size: 0.78rem;
  font-weight: 820;
  line-height: 1.25;
}

.product-card-footer {
  display: flex;
  flex-wrap: wrap;
  gap: 0.42rem;
  margin-top: 0.15rem;
}

.product-card-footer .primary-button,
.product-card-footer .secondary-button,
.product-card-footer .text-button {
  min-height: var(--bb-button-height-sm);
  border-radius: var(--bb-radius-md);
  padding-inline: var(--bb-button-padding-x);
  font-size: 0.82rem;
}

.row-copy small {
  display: flex;
  flex-wrap: wrap;
  gap: 0.36rem;
  align-items: center;
  color: var(--bb-text-muted);
}

.row-copy small .mini-score {
  display: inline-flex;
}

.list-card {
  display: grid;
  gap: 0.54rem;
  border-color: var(--bb-border);
  border-radius: var(--bb-card-radius);
  background: var(--bb-surface);
  box-shadow: var(--bb-shadow-sm);
}

.list-mini-products {
  display: grid;
  gap: 0.42rem;
}

.list-mini-product {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 0.55rem;
  align-items: center;
  width: 100%;
  border: 1px solid rgba(222, 216, 204, 0.8);
  border-radius: var(--bb-radius-md);
  padding: 0.42rem;
  background: var(--bb-image-bg);
  color: inherit;
  text-align: left;
}

.list-mini-image {
  width: 48px;
  height: 48px;
  padding: 0.18rem;
}

.list-mini-product strong,
.list-mini-product small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.list-mini-product strong {
  font-size: 0.88rem;
  line-height: 1.15;
}

.list-mini-product small {
  margin-top: 0.12rem;
  color: var(--bb-text-muted);
  font-size: 0.74rem;
  font-weight: 760;
}

.guide-grid a::before,
.guide-grid a:nth-child(3)::before,
.guide-grid a:nth-child(4)::before,
.guide-grid a:nth-child(5)::before,
.guide-grid a:nth-child(6)::before,
.guide-grid a:nth-child(7)::before,
.guide-grid a:nth-child(8)::before {
  content: "";
  border: 1px solid rgba(47, 125, 74, 0.2);
  background: radial-gradient(circle at center, rgba(47, 125, 74, 0.22) 0 34%, transparent 36%);
}

.scan-loading-icon .check-chip-icon {
  width: 2.8rem;
  height: 2.8rem;
  padding: 0.7rem;
  border-radius: 1rem;
  background: var(--bb-green-soft);
  color: var(--bb-green);
}

@media (max-width: 390px) {
  .product-card {
    grid-template-columns: minmax(68px, 82px) minmax(0, 1fr);
    gap: 0.55rem;
    padding: 0.62rem;
  }

  .product-card-meta {
    gap: 0.26rem;
  }

  .product-type-pill.compact,
  .card-status-chip,
  .mini-score {
    font-size: 0.67rem;
    padding-inline: 0.46rem;
  }
}

/* BasketBalance v22.2.1 mobile auth UI hotfix - 13 Jul 2026 */
.signup-gate-panel .password-field-wrapper {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
}
.signup-gate-panel .password-field-wrapper input {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 56px !important;
  margin: 0 !important;
  padding: 14px 94px 14px 15px !important;
  box-sizing: border-box !important;
}
.signup-gate-panel .password-visibility-button {
  position: absolute !important;
  top: 50% !important;
  right: 8px !important;
  left: auto !important;
  transform: translateY(-50%) !important;
  z-index: 20 !important;
  width: auto !important;
  max-width: 78px !important;
  min-width: 64px !important;
  min-height: 40px !important;
  margin: 0 !important;
  padding: 0 13px !important;
  border: 1px solid rgba(23, 50, 37, .12) !important;
  border-radius: 999px !important;
  background: #eef4ef !important;
  color: #173225 !important;
  line-height: 1 !important;
  font-size: .88rem !important;
  font-weight: 900 !important;
  white-space: nowrap !important;
}
.signup-gate-panel .auth-form-status[hidden],
.signup-gate-panel .auth-form-status:empty {
  display: none !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}
.signup-gate-panel .auth-form-status:not(:empty) {
  display: block !important;
  width: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: .75rem .9rem !important;
  border: 1px solid #efc96d !important;
  border-radius: 1rem !important;
  background: #fff5dc !important;
  color: #7a2a1d !important;
  font-size: .95rem !important;
  font-weight: 850 !important;
  line-height: 1.4 !important;
  overflow-wrap: anywhere !important;
  scroll-margin: 18px !important;
  box-sizing: border-box !important;
}
@media (max-width: 560px) {
  .signup-gate-dialog {
    width: min(92vw, 460px) !important;
    max-height: 90dvh !important;
  }
  .signup-gate-panel {
    max-height: 90dvh !important;
    padding-bottom: max(34px, env(safe-area-inset-bottom)) !important;
  }
  .signup-gate-panel .password-visibility-button {
    min-width: 62px !important;
    min-height: 40px !important;
    font-size: .84rem !important;
  }
}



/* BasketBalance v22.2.2 auth popup and illustrative image repair - 13 Jul 2026 */
.signup-gate-dialog {
  position: relative !important;
}
.auth-popup[hidden] {
  display: none !important;
}
.auth-popup {
  position: fixed;
  top: max(18px, env(safe-area-inset-top));
  left: 50%;
  z-index: 2147483647;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: .7rem;
  width: min(88vw, 420px);
  padding: .85rem .9rem;
  border: 1px solid rgba(137, 43, 31, .22);
  border-radius: 18px;
  background: #fffaf3;
  color: #6f241b;
  box-shadow: 0 20px 60px rgba(20, 34, 26, .25);
  opacity: 0;
  transform: translateX(-50%) translateY(-12px) scale(.98);
  pointer-events: none;
  transition: opacity .18s ease, transform .18s ease;
}
.auth-popup.is-visible {
  opacity: 1;
  transform: translateX(-50%) translateY(0) scale(1);
  pointer-events: auto;
}
.auth-popup-icon {
  display: inline-grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 999px;
  background: #8f2d21;
  color: #fff;
  font-weight: 950;
  line-height: 1;
}
.auth-popup p {
  margin: 0;
  font-size: .95rem;
  font-weight: 850;
  line-height: 1.35;
}
.auth-popup-close {
  display: inline-grid;
  width: 34px;
  height: 34px;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(143, 45, 33, .09);
  color: #6f241b;
  font: inherit;
  font-size: 1.3rem;
  font-weight: 900;
  cursor: pointer;
}
.signup-gate-panel .auth-form-status,
.signup-gate-panel .auth-form-status:not(:empty) {
  display: none !important;
}

.bb-product-illustration {
  --bb-art-ink: #234936;
  --bb-art-fill: #dcecdf;
  --bb-art-soft: #f4f8f4;
  --bb-art-accent: #9bc7a8;
  background: linear-gradient(145deg, #fbfdf9 0%, var(--bb-art-soft) 100%) !important;
  color: var(--bb-art-ink) !important;
  padding: .45rem !important;
  gap: .12rem !important;
}
.bb-product-illustration .bb-fallback-art {
  width: min(86px, 82%) !important;
  max-height: 82% !important;
  overflow: visible;
}
.bb-product-illustration .bb-art-backdrop {
  fill: var(--bb-art-soft);
  stroke: color-mix(in srgb, var(--bb-art-ink) 12%, transparent);
  stroke-width: 1.5;
}
.bb-product-illustration .bb-art-fill {
  fill: var(--bb-art-fill);
  stroke: var(--bb-art-ink);
  stroke-width: 3.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.bb-product-illustration .bb-art-accent {
  fill: var(--bb-art-accent);
  stroke: var(--bb-art-ink);
  stroke-width: 3.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.bb-product-illustration .bb-art-line {
  fill: none;
  stroke: var(--bb-art-ink);
  stroke-width: 3.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.bb-product-illustration .bb-fallback-label {
  margin: 0 !important;
  color: var(--bb-art-ink) !important;
  font-size: clamp(.62rem, 2.6vw, .74rem) !important;
  font-weight: 900 !important;
  line-height: 1.05 !important;
}
.row-image .bb-fallback-label,
.result-image .bb-fallback-label,
.product-card-image .bb-fallback-label,
.list-mini-image .bb-fallback-label,
.swap-image .bb-fallback-label {
  display: none !important;
}
.bb-product-illustration.snacks,
.bb-product-illustration.chocolate {
  --bb-art-ink: #67441d;
  --bb-art-fill: #f4d29a;
  --bb-art-soft: #fff8ea;
  --bb-art-accent: #e8b75f;
}
.bb-product-illustration.drink,
.bb-product-illustration.toothpaste,
.bb-product-illustration.shampoo {
  --bb-art-ink: #24536a;
  --bb-art-fill: #cfe7ef;
  --bb-art-soft: #f0f8fb;
  --bb-art-accent: #84c4d5;
}
.bb-product-illustration.baby,
.bb-product-illustration.skincare,
.bb-product-illustration.deodorant {
  --bb-art-ink: #59406d;
  --bb-art-fill: #e3d8ed;
  --bb-art-soft: #f8f3fb;
  --bb-art-accent: #c6a8dc;
}
.bb-product-illustration.household,
.bb-product-illustration.laundry {
  --bb-art-ink: #285244;
  --bb-art-fill: #d6e9de;
  --bb-art-soft: #f1f8f3;
  --bb-art-accent: #8fc7aa;
}
.bb-product-illustration.food,
.bb-product-illustration.cereal,
.bb-product-illustration.ready-meal {
  --bb-art-ink: #65531d;
  --bb-art-fill: #efe2a9;
  --bb-art-soft: #fffbed;
  --bb-art-accent: #d8bf5f;
}
@media (max-width: 560px) {
  .auth-popup {
    top: max(12px, env(safe-area-inset-top));
    width: min(92vw, 420px);
    padding: .78rem .82rem;
  }
}


/* BasketBalance v22.2.3 auth popup hard fix - 13 Jul 2026 */
.signup-gate-panel .form-status,
.signup-gate-panel .form-status:not(:empty),
.signup-gate-panel .auth-form-status,
.signup-gate-panel .auth-form-status:not(:empty),
.signup-gate-panel .auth-form-status[hidden] {
  display: none !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.auth-popup {
  position: absolute !important;
  top: 16px !important;
  left: 16px !important;
  right: 16px !important;
  width: auto !important;
  max-width: none !important;
  z-index: 40 !important;
  transform: translateY(-12px) scale(.98) !important;
}
.auth-popup.is-visible {
  transform: translateY(0) scale(1) !important;
}
@media (max-width: 560px) {
  .auth-popup {
    top: max(12px, env(safe-area-inset-top)) !important;
    left: 12px !important;
    right: 12px !important;
    padding: .82rem .85rem !important;
  }
  .auth-popup p {
    font-size: .92rem !important;
  }
}

/* BasketBalance v22.2.4 iPhone modal positioning fix - 13 Jul 2026 */
.signup-gate-dialog {
  position: fixed !important;
  inset: 0 !important;
  margin: auto !important;
  width: min(92vw, 470px) !important;
  max-height: 90dvh !important;
}

@media (max-width: 560px) {
  .signup-gate-dialog {
    width: min(92vw, 460px) !important;
    max-height: 90dvh !important;
  }
}


/* BasketBalance v22.2.5 homepage sign-in journey - 14 Jul 2026 */
.home-account-actions {
  display: grid;
  gap: 10px;
  min-width: 0;
}
.home-account-actions .secondary-action {
  width: 100%;
}
.home-signin-action {
  min-height: 52px !important;
  border: 2px solid rgba(15, 95, 67, .22) !important;
  background: #ffffff !important;
  color: #0f5f43 !important;
  box-shadow: none !important;
  font-weight: 900 !important;
}
.home-signin-action:hover,
.home-signin-action:focus-visible {
  background: #f2f8f3 !important;
}
.is-signed-in .home-account-actions {
  display: none !important;
}
.is-signed-in .home-support-actions {
  grid-template-columns: 1fr !important;
}
@media (max-width: 560px) {
  .home-account-actions {
    gap: 10px;
  }
  .home-signin-action {
    min-height: 58px !important;
  }
}

/* BasketBalance v23 ingredient intelligence */
.data-confidence-line {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  width: fit-content;
  margin: .2rem 0 .45rem;
  padding: .38rem .62rem;
  border: 1px solid rgba(47, 125, 74, .18);
  border-radius: 999px;
  background: #f4faf5;
  color: #24463b;
  font-size: .78rem;
  font-weight: 800;
}
.data-confidence-line span {
  color: #64756b;
  font-weight: 700;
}
.data-confidence-line strong {
  color: #145f43;
}
.ingredient-intelligence-panel {
  border-color: rgba(47, 125, 74, .16);
}
.ingredient-intelligence-list {
  display: grid;
  gap: .72rem;
}
.ingredient-intelligence-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  align-items: center;
  gap: .72rem;
  width: 100%;
  min-height: 68px;
  padding: .78rem .82rem;
  border: 1px solid rgba(26, 50, 39, .12);
  border-radius: 16px;
  background: #fffefa;
  color: #172117;
  text-align: left;
  box-shadow: 0 10px 26px rgba(28, 42, 32, .06);
}
.ingredient-intelligence-card:hover,
.ingredient-intelligence-card:focus-visible {
  border-color: rgba(47, 125, 74, .34);
  background: #f8fcf6;
}
.ingredient-intelligence-copy {
  display: grid;
  gap: .14rem;
  min-width: 0;
}
.ingredient-intelligence-copy strong {
  display: block;
  overflow: hidden;
  color: #172117;
  font-size: .95rem;
  font-weight: 900;
  line-height: 1.16;
  text-overflow: ellipsis;
}
.ingredient-intelligence-copy small,
.ingredient-intelligence-copy span {
  display: block;
  color: #637268;
  font-size: .78rem;
  font-weight: 700;
  line-height: 1.25;
}
.ingredient-intelligence-copy span {
  color: #435348;
  font-weight: 650;
}
.intel-badges {
  display: grid;
  justify-items: end;
  gap: .24rem;
  min-width: 82px;
}
.intel-badges small,
.intel-badges em {
  width: fit-content;
  max-width: 118px;
  padding: .22rem .44rem;
  border-radius: 999px;
  background: #eef7ef;
  color: #176544;
  font-size: .68rem;
  font-style: normal;
  font-weight: 900;
  line-height: 1.1;
  text-align: center;
}
.intel-badges em {
  background: #f3f0e8;
  color: #6b604c;
}
.ingredient-intelligence-card.extra-care .intel-badges small {
  background: #ffe1dc;
  color: #9a2f1d;
}
.ingredient-intelligence-card.worth-checking .intel-badges small {
  background: #fff0c9;
  color: #805600;
}
.ingredient-intelligence-card.information-limited .intel-badges small {
  background: #eef0f2;
  color: #53616a;
}
.ingredient-intelligence-card.generally-fine .intel-badges small {
  background: #daf7e5;
  color: #12683d;
}
.product-info-body a {
  color: #0f6f4c;
  font-weight: 900;
  text-decoration: underline;
  text-underline-offset: 3px;
}
@media (max-width: 520px) {
  .ingredient-intelligence-card {
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: start;
    gap: .62rem;
  }
  .ingredient-intelligence-card .row-chevron {
    grid-column: 3;
    grid-row: 1;
  }
  .intel-badges {
    grid-column: 2 / 4;
    grid-row: 2;
    display: flex;
    justify-content: flex-start;
    min-width: 0;
  }
  .intel-badges small,
  .intel-badges em {
    max-width: none;
  }
}


/* BasketBalance v23.1 correction: concise additive inventory */
.additive-inventory-row {
  cursor: default !important;
  pointer-events: none !important;
}
.additive-inventory-row .additive-copy small {
  color: var(--muted, #607064) !important;
  font-style: normal !important;
}

/* BasketBalance v23.2: restore additive drill-down interaction */
.additive-inventory-row {
  cursor: pointer !important;
  pointer-events: auto !important;
}
.additive-inventory-row:focus-visible {
  outline: 3px solid rgba(47, 125, 74, .32) !important;
  outline-offset: 2px !important;
}

/* BasketBalance v24 better alternatives - 14 Jul 2026 */
.better-alternatives-panel {
  overflow: hidden;
}
.alternative-heading {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 1rem !important;
}
.alternative-heading .text-button {
  width: auto !important;
  min-height: 42px !important;
  flex: 0 0 auto !important;
}
.alternative-loading {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: .9rem;
  padding: 1rem;
  border: 1px solid rgba(23, 50, 37, .11);
  border-radius: 18px;
  background: rgba(244, 248, 244, .72);
}
.alternative-loading .loader {
  width: 30px;
  height: 30px;
}
.alternative-loading strong,
.alternative-empty-card strong {
  display: block;
  color: #173225;
  font-size: 1rem;
  line-height: 1.25;
}
.alternative-loading p,
.alternative-empty-card p {
  margin: .25rem 0 0;
}
.alternative-intro {
  margin: -.15rem 0 1rem;
  color: #53665a;
  line-height: 1.5;
}
.alternative-empty-card {
  padding: 1.1rem;
  border: 1px solid rgba(23, 50, 37, .11);
  border-radius: 20px;
  background: #f8fbf7;
}
.alternative-empty-card .secondary-button {
  margin-top: .9rem;
}
.alternative-card-grid {
  display: grid;
  gap: 1rem;
}
.alternative-product-card {
  display: grid;
  grid-template-columns: minmax(108px, 30%) minmax(0, 1fr);
  gap: 1rem;
  padding: 1rem;
  border: 1px solid rgba(23, 50, 37, .12);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(28, 55, 39, .07);
}
.alternative-product-image {
  min-height: 150px;
  border-radius: 18px;
  overflow: hidden;
  background: #f2f6f1;
}
.alternative-product-image img,
.alternative-product-image .bb-product-illustration {
  width: 100% !important;
  height: 100% !important;
  min-height: 150px !important;
  object-fit: contain !important;
}
.alternative-product-copy {
  min-width: 0;
}
.alternative-card-topline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .45rem;
  margin-bottom: .55rem;
}
.alternative-confidence,
.alternative-score-delta {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: .34rem .65rem;
  border-radius: 999px;
  font-size: .76rem;
  font-weight: 900;
  line-height: 1;
}
.alternative-confidence.high {
  background: #e5f5e9;
  color: #176333;
}
.alternative-confidence.medium {
  background: #fff2cf;
  color: #725000;
}
.alternative-score-delta {
  background: #eef4ef;
  color: #173225;
}
.alternative-score-delta.lower {
  background: #fff0dc;
  color: #7a4212;
}
.alternative-product-card h3 {
  margin: 0;
  color: #173225;
  font-size: clamp(1.05rem, 4.3vw, 1.3rem);
  line-height: 1.2;
  overflow-wrap: anywhere;
}
.alternative-brand {
  margin: .3rem 0 .7rem;
  color: #647169;
  font-weight: 700;
}
.alternative-score-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: .8rem;
  padding: .68rem .75rem;
  border-radius: 14px;
  background: #f4f8f4;
}
.alternative-score-row span {
  color: #59685f;
  font-size: .82rem;
  font-weight: 750;
}
.alternative-score-row strong {
  color: #173225;
  font-size: 1.05rem;
}
.alternative-reasons {
  display: grid;
  gap: .48rem;
  margin: .8rem 0;
  padding: 0;
  list-style: none;
}
.alternative-reasons li {
  position: relative;
  padding-left: 1.15rem;
  color: #30483a;
  font-size: .9rem;
  line-height: 1.4;
}
.alternative-reasons li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: #23824a;
  font-weight: 950;
}
.alternative-caveat {
  margin: 0 0 .85rem;
  color: #68736c;
  font-size: .8rem;
  line-height: 1.4;
}
.alternative-footer-note {
  margin-top: 1rem !important;
}
@media (min-width: 760px) {
  .alternative-card-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .alternative-product-card {
    grid-template-columns: 1fr;
  }
  .alternative-product-image {
    min-height: 190px;
  }
}
@media (max-width: 520px) {
  .alternative-product-card {
    grid-template-columns: 92px minmax(0, 1fr);
    gap: .8rem;
    padding: .85rem;
    border-radius: 19px;
  }
  .alternative-product-image,
  .alternative-product-image img,
  .alternative-product-image .bb-product-illustration {
    min-height: 118px !important;
  }
  .alternative-heading {
    align-items: center !important;
  }
  .alternative-heading .text-button {
    min-width: 94px !important;
    padding-left: .7rem !important;
    padding-right: .7rem !important;
  }
  .alternative-product-card .primary-button {
    min-height: 46px !important;
  }
}
@media (max-width: 370px) {
  .alternative-product-card {
    grid-template-columns: 1fr;
  }
  .alternative-product-image {
    min-height: 160px !important;
  }
}
.alternative-data-confidence {
  margin: .42rem 0 0;
  color: #647169;
  font-size: .78rem;
  font-weight: 800;
}

/* BasketBalance v25 verified price comparison and price watch - 14 Jul 2026 */
.price-comparison-panel {
  overflow: hidden;
}
.price-section-heading {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 1rem !important;
}
.price-section-heading > div {
  min-width: 0;
}
.verified-feed-badge,
.lowest-price-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  border-radius: 999px;
  font-weight: 900;
  line-height: 1.1;
}
.verified-feed-badge {
  flex: 0 0 auto;
  padding: .5rem .7rem;
  border: 1px solid rgba(23, 50, 37, .14);
  background: #eef5ef;
  color: #173225;
  font-size: .76rem;
  text-align: center;
}
.price-loading {
  display: flex;
  align-items: center;
  gap: .75rem;
  min-height: 86px;
  padding: 1rem;
  border: 1px solid rgba(23, 50, 37, .1);
  border-radius: 18px;
  background: #f8fbf7;
  color: #405b4b;
  font-weight: 800;
}
.price-loading .loader {
  width: 24px;
  height: 24px;
  flex: 0 0 auto;
}
.price-summary-strip {
  display: grid;
  grid-template-columns: minmax(128px, auto) minmax(0, 1fr);
  align-items: center;
  gap: 1rem;
  padding: 1rem;
  border: 1px solid rgba(23, 50, 37, .12);
  border-radius: 20px;
  background: linear-gradient(135deg, #eef7f0, #fbfdf9);
}
.price-summary-strip > div {
  display: grid;
  gap: .25rem;
}
.price-summary-strip small {
  color: #557060;
  font-size: .78rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.price-summary-strip strong {
  color: #173225;
  font-size: clamp(1.55rem, 6vw, 2.1rem);
  line-height: 1;
}
.price-summary-strip p {
  margin: 0;
  color: #405b4b;
  line-height: 1.45;
}
.retailer-price-list {
  display: grid;
  gap: .75rem;
  margin-top: .9rem;
}
.retailer-price-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
  padding: .95rem;
  border: 1px solid rgba(23, 50, 37, .11);
  border-radius: 18px;
  background: #fff;
}
.retailer-price-row.is-lowest {
  border-color: rgba(28, 132, 72, .32);
  box-shadow: inset 4px 0 0 #2a9b59;
}
.retailer-price-copy {
  display: grid;
  gap: .28rem;
  min-width: 0;
}
.retailer-price-heading {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .45rem;
}
.retailer-price-heading strong {
  color: #173225;
  font-size: 1rem;
}
.lowest-price-badge {
  padding: .32rem .5rem;
  background: #daf1df;
  color: #176b39;
  font-size: .7rem;
}
.retailer-price-amount {
  color: #173225;
  font-size: 1.45rem;
  font-weight: 950;
  line-height: 1.05;
}
.retailer-price-copy small,
.retailer-price-meta {
  color: #607467;
  font-size: .82rem;
}
.retailer-price-meta,
.retailer-promotion {
  margin: 0;
}
.retailer-promotion {
  width: fit-content;
  padding: .35rem .55rem;
  border-radius: 10px;
  background: #fff4d8;
  color: #705000;
  font-size: .82rem;
  font-weight: 800;
}
.retailer-visit-button {
  min-width: 118px;
  text-align: center;
  text-decoration: none;
}
.price-empty-state {
  display: grid;
  gap: .75rem;
  padding: 1rem;
  border: 1px dashed rgba(23, 50, 37, .2);
  border-radius: 18px;
  background: #fafbf8;
}
.price-empty-state > p {
  margin: 0;
}
.price-watch-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: .8rem;
  margin-top: 1rem;
  padding: .85rem;
  border-radius: 16px;
  background: #f2f6f2;
}
.price-watch-row p {
  margin: 0;
  color: #4b6254;
  font-size: .88rem;
  line-height: 1.4;
}
.price-watch-button {
  white-space: nowrap;
}
.affiliate-disclosure {
  margin: .85rem 0 .25rem;
  padding: .7rem .8rem;
  border-left: 4px solid #d9a63a;
  border-radius: 10px;
  background: #fff9e9;
  color: #62501d;
  font-size: .82rem;
  line-height: 1.45;
}
.price-history-details {
  margin-top: .9rem;
  border: 1px solid rgba(23, 50, 37, .11);
  border-radius: 16px;
  background: #fff;
  overflow: hidden;
}
.price-history-details summary {
  cursor: pointer;
  padding: .85rem 1rem;
  color: #173225;
  font-weight: 900;
}
.price-history-details[open] summary {
  border-bottom: 1px solid rgba(23, 50, 37, .09);
}
.price-history-details > p {
  padding: 0 1rem;
}
.price-history-list {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}
.price-history-list li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .2rem .7rem;
  padding: .7rem 1rem;
  border-top: 1px solid rgba(23, 50, 37, .07);
}
.price-history-list li:first-child {
  border-top: 0;
}
.price-history-list strong {
  color: #173225;
}
.price-history-list small {
  grid-column: 1 / -1;
  color: #697b70;
}
.price-watch-summary-card {
  display: grid;
  gap: .6rem;
}
.price-watch-summary-card h2,
.price-watch-summary-card p {
  margin: 0;
}
.price-alerts-section,
.watch-products-section {
  display: grid;
  gap: .75rem;
  margin-bottom: 1rem;
}
.price-alerts-section h2,
.watch-products-section h2 {
  margin: -.35rem 0 0;
}
.price-alert-list,
.watch-product-list {
  display: grid;
  gap: .75rem;
}
.price-alert-card {
  display: grid;
  gap: .22rem;
  padding: .9rem;
  border: 1px solid rgba(23, 50, 37, .11);
  border-radius: 16px;
  background: #fff;
}
.price-alert-card.is-new {
  border-color: rgba(28, 132, 72, .35);
  background: #f2fbf4;
}
.price-alert-card > span {
  width: fit-content;
  padding: .25rem .48rem;
  border-radius: 999px;
  background: #daf1df;
  color: #176b39;
  font-size: .72rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.price-alert-card p,
.price-alert-card small {
  margin: 0;
}
.price-alert-card small {
  color: #6a7d71;
}
.watch-product-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: .65rem !important;
  padding: .65rem !important;
}
.watch-product-open {
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr);
  align-items: center;
  gap: .75rem;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.watch-product-open .row-image {
  width: 82px !important;
  height: 82px !important;
}
.watch-current-price {
  margin-top: .35rem;
  color: #176b39;
  font-size: .86rem;
  font-weight: 850;
}
.watch-remove-button {
  align-self: center;
}

@media (max-width: 560px) {
  .price-section-heading {
    align-items: center !important;
  }
  .verified-feed-badge {
    max-width: 112px;
    font-size: .68rem;
  }
  .price-summary-strip {
    grid-template-columns: 1fr;
    gap: .6rem;
  }
  .retailer-price-row {
    grid-template-columns: 1fr;
  }
  .retailer-visit-button {
    width: 100%;
  }
  .price-watch-row {
    grid-template-columns: 1fr;
  }
  .price-watch-button {
    width: 100%;
  }
  .watch-product-row {
    grid-template-columns: 1fr !important;
  }
  .watch-remove-button {
    width: 100%;
  }
}
.affiliate-link-label {
  display: inline-flex;
  width: fit-content;
  padding: .25rem .45rem;
  border-radius: 999px;
  background: #f1edf8;
  color: #5c4676;
  font-size: .7rem;
  font-weight: 850;
}

/* BasketBalance v25.1 - Open Prices observations and community evidence */
.price-comparison-panel .price-section-heading {
  align-items: flex-start !important;
}
.price-source-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .8rem;
  margin-bottom: .8rem;
}
.price-source-heading h3 {
  margin: .15rem 0 0;
  font-size: clamp(1.05rem, 4vw, 1.25rem);
}
.price-source-kicker {
  display: block;
  color: #557062;
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.verified-price-section,
.observed-price-section {
  border: 1px solid rgba(23, 50, 37, .1);
  border-radius: 20px;
  padding: 1rem;
  background: rgba(255,255,255,.72);
}
.observed-price-section {
  margin-top: 1rem;
  background: #f7faf5;
}
.open-prices-badge,
.observation-freshness-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: .34rem .65rem;
  border-radius: 999px;
  background: #e7f2e8;
  color: #245238;
  font-size: .76rem;
  font-weight: 900;
  white-space: nowrap;
}
.observed-price-summary {
  display: grid;
  grid-template-columns: auto minmax(0,1fr);
  gap: 1rem;
  align-items: center;
  padding: .85rem;
  border-radius: 16px;
  background: #fff;
  border: 1px solid rgba(23, 50, 37, .08);
}
.observed-price-summary div {
  display: grid;
  gap: .18rem;
}
.observed-price-summary small {
  color: #65776c;
  font-weight: 800;
}
.observed-price-summary strong {
  font-size: 1.5rem;
  color: #173225;
}
.observed-price-summary p {
  margin: 0;
  line-height: 1.45;
}
.observed-price-list {
  display: grid;
  gap: .7rem;
  margin-top: .8rem;
}
.observed-price-row {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: .8rem;
  align-items: center;
  padding: .9rem;
  border: 1px solid rgba(23,50,37,.09);
  border-radius: 16px;
  background: #fff;
}
.observed-price-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .65rem;
}
.observed-price-heading strong {
  min-width: 0;
  overflow-wrap: anywhere;
}
.observed-price-amount {
  display: block;
  margin-top: .32rem;
  color: #173225;
  font-size: 1.35rem;
  font-weight: 950;
}
.observed-old-price {
  display: block;
  color: #6b756e;
  font-size: .78rem;
  text-decoration: line-through;
}
.observed-price-row p {
  margin: .3rem 0 .12rem;
  color: #42594c;
  line-height: 1.4;
}
.observed-price-row small {
  color: #6a7c70;
  font-weight: 750;
}
.freshness-historical .observation-freshness-badge {
  background: #f2eee5;
  color: #725a2d;
}
.freshness-recent .observation-freshness-badge {
  background: #ddf4e4;
  color: #126a34;
}
.observed-source-link {
  min-width: 92px;
  text-align: center;
}
.open-prices-attribution {
  margin: .85rem 0 0;
  color: #617167;
  font-size: .78rem;
  line-height: 1.45;
}
.price-action-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
}
.price-action-buttons > * {
  flex: 1 1 170px;
}
.community-price-dialog {
  width: min(92vw, 520px);
  max-height: 90dvh;
  padding: 0;
  border: 0;
  border-radius: 24px;
  background: #fffdf7;
  box-shadow: 0 24px 70px rgba(21,49,35,.28);
}
.community-price-dialog::backdrop {
  background: rgba(20,30,24,.54);
  backdrop-filter: blur(4px);
}
.community-price-panel {
  display: flex;
  flex-direction: column;
  gap: .78rem;
  max-height: 90dvh;
  overflow-y: auto;
  padding: 22px 22px max(30px, env(safe-area-inset-bottom));
  -webkit-overflow-scrolling: touch;
}
.community-price-panel .dialog-heading {
  position: sticky;
  top: 0;
  z-index: 5;
  background: #fffdf7;
  padding-bottom: .55rem;
}
.community-price-panel input[readonly] {
  background: #f2f5f1;
  color: #506158;
}
.community-price-field-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .75rem;
}
.community-price-field-grid > div {
  min-width: 0;
}
.community-price-panel input[type="file"] {
  width: 100%;
  padding: .75rem;
  border: 1px dashed rgba(23,50,37,.28);
  border-radius: 14px;
  background: #f8faf7;
}
.community-price-panel .form-status:not(:empty) {
  margin: 0;
  padding: .75rem .9rem;
  border-radius: 14px;
  background: #fff5de;
  color: #7d5600;
  font-weight: 850;
}
@media (max-width: 560px) {
  .observed-price-summary,
  .observed-price-row {
    grid-template-columns: 1fr;
  }
  .observed-price-heading {
    align-items: flex-start;
  }
  .observed-source-link {
    width: 100%;
  }
  .community-price-field-grid {
    grid-template-columns: 1fr;
  }
  .community-price-dialog {
    width: min(94vw, 520px);
    max-height: 92dvh;
  }
  .community-price-panel {
    max-height: 92dvh;
    padding: 18px 18px max(34px, env(safe-area-inset-bottom));
  }
}

/* BasketBalance v25.2 food scoring calibration and compact snapshot - 15 Jul 2026 */
.product-result {
  padding-bottom: calc(170px + env(safe-area-inset-bottom)) !important;
}
.product-result > :last-child {
  margin-bottom: 2.5rem !important;
}
.food-snapshot-panel {
  padding: var(--bb-v20-card-pad) !important;
}
.food-snapshot-list {
  display: grid;
  gap: 0;
  overflow: hidden;
  border: 1px solid var(--bb-card-border);
  border-radius: 18px;
  background: #fff;
}
.food-snapshot-row {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto 14px 18px;
  align-items: center;
  gap: .62rem;
  width: 100%;
  min-height: 68px;
  padding: .66rem .74rem;
  border: 0;
  border-bottom: 1px solid rgba(23, 50, 37, .10);
  background: #fff;
  color: var(--bb-text-main);
  text-align: left;
  cursor: pointer;
}
.food-snapshot-row:last-child {
  border-bottom: 0;
}
.food-snapshot-row:focus-visible {
  outline: 3px solid rgba(31, 129, 73, .28);
  outline-offset: -3px;
}
.food-snapshot-icon {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 999px;
  background: #f2f5f1;
  color: #5a685f;
}
.food-snapshot-icon .check-chip-icon {
  width: 25px !important;
  height: 25px !important;
  padding: 0 !important;
  stroke-width: 1.7;
}
.food-snapshot-copy {
  min-width: 0;
  display: grid;
  gap: .12rem;
}
.food-snapshot-copy strong {
  font-size: 1rem;
  line-height: 1.15;
}
.food-snapshot-copy small {
  color: var(--bb-text-muted);
  font-size: .82rem;
  line-height: 1.2;
}
.food-snapshot-value {
  color: var(--bb-text-muted);
  font-size: .92rem;
  white-space: nowrap;
  text-align: right;
}
.food-snapshot-dot {
  width: 12px;
  height: 12px;
  border-radius: 999px;
  background: #b3bab5;
}
.food-snapshot-row.good .food-snapshot-dot { background: #21b96c; }
.food-snapshot-row.medium .food-snapshot-dot { background: #e0a31a; }
.food-snapshot-row.watch .food-snapshot-dot { background: #d85545; }
.food-snapshot-row.unknown .food-snapshot-dot { background: #9aa39d; }
.food-snapshot-row.good .food-snapshot-icon { background: #edf8f1; color: #1d7b49; }
.food-snapshot-row.medium .food-snapshot-icon { background: #fff6dc; color: #9a6900; }
.food-snapshot-row.watch .food-snapshot-icon { background: #fff0ec; color: #a83e31; }
.food-snapshot-row .row-chevron {
  color: #66756b;
  font-size: 1.5rem;
  line-height: 1;
}
.is-collapsed-food-intelligence .ingredient-intelligence-list {
  gap: .55rem !important;
}
.is-collapsed-food-intelligence .ingredient-intelligence-card {
  min-height: 0 !important;
}
@media (max-width: 420px) {
  .food-snapshot-row {
    grid-template-columns: 36px minmax(0, 1fr) auto 12px 14px;
    gap: .48rem;
    min-height: 64px;
    padding: .58rem .62rem;
  }
  .food-snapshot-icon {
    width: 34px;
    height: 34px;
  }
  .food-snapshot-icon .check-chip-icon {
    width: 22px !important;
    height: 22px !important;
  }
  .food-snapshot-copy strong { font-size: .94rem; }
  .food-snapshot-copy small { font-size: .76rem; }
  .food-snapshot-value { font-size: .84rem; }
}


/* BasketBalance v25.3 additive traffic-light consistency */
.traffic-result-heading {
  margin: 0 0 .5rem;
  color: var(--muted, #607064);
  font-size: .76rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.additive-traffic-summary {
  margin-top: .7rem !important;
  padding: .75rem .85rem;
  border-radius: 14px;
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(23,50,37,.1);
  color: var(--muted, #607064);
  font-size: .9rem;
  line-height: 1.45;
}
.additive-inventory-row {
  grid-template-columns: auto minmax(0, 1fr) auto auto !important;
  align-items: center;
}
.additive-row-status {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: .38rem;
  min-width: 0;
  font-size: .76rem;
  font-weight: 900;
  white-space: nowrap;
}
.additive-row-dot {
  width: .68rem;
  height: .68rem;
  flex: 0 0 .68rem;
  border-radius: 999px;
  background: #9ca6a0;
  box-shadow: 0 0 0 4px rgba(156,166,160,.12);
}
.additive-row-status.good { color: #137a45; }
.additive-row-status.good .additive-row-dot { background: #28bd6b; box-shadow: 0 0 0 4px rgba(40,189,107,.12); }
.additive-row-status.medium { color: #805400; }
.additive-row-status.medium .additive-row-dot { background: #e5a313; box-shadow: 0 0 0 4px rgba(229,163,19,.14); }
.additive-row-status.watch { color: #a53327; }
.additive-row-status.watch .additive-row-dot { background: #df4c3f; box-shadow: 0 0 0 4px rgba(223,76,63,.12); }
.additive-row-status.unknown { color: #66716b; }
@media (max-width: 430px) {
  .additive-inventory-row {
    grid-template-columns: auto minmax(0, 1fr) auto !important;
  }
  .additive-row-status {
    grid-column: 2;
    justify-content: flex-start;
    margin-top: .25rem;
  }
  .additive-inventory-row .row-chevron {
    grid-column: 3;
    grid-row: 1 / span 2;
  }
}

/* v26.2 scoring trust */
.score-withheld-line {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
}
.score-withheld-line strong {
  font-size: clamp(1.05rem, 4.2vw, 1.45rem) !important;
  line-height: 1.1 !important;
}
.scoring-version-note {
  margin: .45rem 0 0;
  color: #657064;
  font-size: .78rem;
  line-height: 1.35;
}
.product-result .score-strip.data-limited {
  background: #f4f1e9 !important;
  border-color: #d8d1c2 !important;
  color: #4d554d !important;
}

/* v26.3 scanner speed/orientation and limited-data presentation */
.scanner-window::before {
  display: none !important;
}

.scanner-reticle {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: grid;
  place-items: center;
  pointer-events: none;
}

.scanner-guide {
  position: absolute;
  border: 3px solid rgba(255,255,255,.92);
  border-radius: 20px;
  box-shadow: 0 0 0 1px rgba(15,31,22,.18), 0 0 24px rgba(255,255,255,.14);
}

.scanner-guide-horizontal {
  width: min(78%, 410px);
  height: min(34%, 170px);
  box-shadow: 0 0 0 999px rgba(0,0,0,.28), 0 0 24px rgba(255,255,255,.16);
}

.scanner-guide-vertical {
  width: min(38%, 190px);
  height: min(70%, 360px);
  border-style: dashed;
  opacity: .48;
}

.scanner-sweep {
  position: absolute;
  width: min(68%, 360px) !important;
  height: 3px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: #75d88d;
  box-shadow: 0 0 18px #75d88d;
  animation: scanLineFast 1.15s ease-in-out infinite alternate;
}

@keyframes scanLineFast {
  from { transform: translateY(-64px); }
  to { transform: translateY(64px); }
}

.scanner-direction-note {
  margin: 10px 0 2px;
  color: var(--muted);
  font-size: .9rem;
  font-weight: 750;
  text-align: center;
}

.score-withheld-line {
  display: block;
  margin-top: .18rem;
  line-height: 1.15;
}

.score-withheld-line strong {
  display: inline-block;
  font-size: clamp(1rem, 4vw, 1.2rem) !important;
  line-height: 1.15 !important;
  white-space: nowrap;
}

.score-strip.data-limited .score-number-block {
  align-content: center;
}

.food-snapshot-row.unverified {
  background: #f5f3ee;
}

.food-snapshot-row.unverified .food-snapshot-dot {
  background: #98a098 !important;
  box-shadow: 0 0 0 4px rgba(152,160,152,.14) !important;
}

.food-snapshot-row.unverified .food-snapshot-icon {
  color: #5f695f;
  background: #ecebe6;
}

.food-snapshot-row.unverified .food-snapshot-copy small,
.food-snapshot-row.unverified .food-snapshot-value {
  color: #687168;
}

@media (max-width: 720px) {
  .scanner-guide-horizontal { width: 82%; height: 30%; }
  .scanner-guide-vertical { width: 42%; height: 62%; }
}

/* =========================================================
   BasketBalance v27 — friendly consumer redesign
   Colourful, clearer and less box-heavy while preserving UX.
   ========================================================= */
:root {
  --v27-ink: #23352c;
  --v27-ink-strong: #163126;
  --v27-muted: #66756c;
  --v27-cream: #fff8ed;
  --v27-cream-deep: #f8eddd;
  --v27-paper: #fffdf8;
  --v27-green: #247454;
  --v27-green-dark: #15583d;
  --v27-mint: #d9f2e2;
  --v27-mint-strong: #8bd5aa;
  --v27-coral: #ff7764;
  --v27-coral-soft: #ffe1da;
  --v27-yellow: #ffd86f;
  --v27-yellow-soft: #fff2bc;
  --v27-lilac: #d9ceff;
  --v27-lilac-soft: #f0ebff;
  --v27-sky: #ccecff;
  --v27-sky-soft: #eaf7ff;
  --v27-line: rgba(35, 53, 44, .13);
  --v27-shadow: 0 20px 55px rgba(44, 59, 49, .12);
  --v27-shadow-soft: 0 12px 30px rgba(44, 59, 49, .08);
  --v27-radius-xl: 34px;
  --v27-radius-lg: 26px;
  --v27-radius-md: 20px;
}

.v27-friendly {
  color: var(--v27-ink);
  font-family: "Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background:
    radial-gradient(circle at 8% 4%, rgba(255, 216, 111, .38), transparent 24rem),
    radial-gradient(circle at 94% 18%, rgba(204, 236, 255, .48), transparent 28rem),
    linear-gradient(180deg, #fffaf2 0%, #fffdf9 45%, #f9f5ed 100%);
}

.v27-friendly::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: .34;
  background-image: radial-gradient(rgba(36, 116, 84, .18) .75px, transparent .75px);
  background-size: 23px 23px;
  mask-image: linear-gradient(to bottom, #000 0%, transparent 70%);
}

.v27-friendly h1,
.v27-friendly h2,
.v27-friendly h3,
.v27-friendly .screen-header > span,
.v27-friendly .results-heading h2 {
  color: var(--v27-ink-strong);
  font-family: "Fraunces", Georgia, serif;
  letter-spacing: -.025em;
}

.v27-friendly p,
.v27-friendly li {
  line-height: 1.66;
}

.v27-friendly .app-frame {
  width: min(980px, 100%);
  padding: 18px clamp(14px, 3vw, 30px) 42px;
}

.v27-friendly .scan-screen.is-active {
  min-height: calc(100svh - 92px);
}

/* Brand */
.v27-friendly .brand-header,
.v27-friendly .global-app-home {
  padding: 6px 0 20px;
}

.v27-friendly .brand {
  gap: 12px;
}

.v27-friendly .brand-mark {
  width: 48px;
  height: 48px;
  border-radius: 18px 18px 12px 18px;
  background: linear-gradient(145deg, var(--v27-green) 0%, #2d9a69 100%);
  box-shadow: 0 10px 22px rgba(36, 116, 84, .24);
  transform: rotate(-3deg);
}

.v27-friendly .brand-mark::after {
  content: "";
  position: absolute;
  width: 8px;
  height: 8px;
  margin: -31px 0 0 38px;
  border-radius: 50%;
  background: var(--v27-yellow);
  box-shadow: 0 0 0 5px rgba(255, 216, 111, .25);
}

.v27-friendly .brand strong {
  color: var(--v27-ink-strong);
  font-size: 1.03rem;
  font-weight: 900;
}

.v27-friendly .brand small {
  color: var(--v27-muted);
  font-size: .76rem;
}

/* Homepage hero */
.v27-friendly .launch-home {
  position: relative;
  overflow: hidden;
  margin: 0 0 18px;
  padding: clamp(28px, 6vw, 62px) clamp(22px, 6vw, 68px);
  border: 0;
  border-radius: 42px 42px 18px 42px;
  text-align: left;
  background:
    radial-gradient(circle at 92% 17%, rgba(255,255,255,.76) 0 55px, transparent 56px),
    linear-gradient(135deg, #d8f3e2 0%, #f7efd0 54%, #ffdcd4 100%);
  box-shadow: var(--v27-shadow);
}

.v27-friendly .launch-home::before,
.v27-friendly .launch-home::after {
  content: "";
  position: absolute;
  border-radius: 999px;
  pointer-events: none;
}

.v27-friendly .launch-home::before {
  width: 170px;
  height: 170px;
  right: -58px;
  bottom: -72px;
  background: rgba(217, 206, 255, .72);
  transform: rotate(18deg);
}

.v27-friendly .launch-home::after {
  width: 64px;
  height: 64px;
  right: 17%;
  top: 16%;
  border: 16px solid rgba(255, 119, 100, .25);
}

.v27-hero-badges {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 18px;
}

.v27-hero-badges span {
  display: inline-flex;
  min-height: 30px;
  align-items: center;
  padding: 6px 11px;
  border: 1px solid rgba(22, 49, 38, .1);
  border-radius: 999px;
  color: var(--v27-ink-strong);
  background: rgba(255, 255, 255, .68);
  backdrop-filter: blur(6px);
  font-size: .72rem;
  font-weight: 850;
}

.v27-friendly .launch-home h1 {
  position: relative;
  z-index: 1;
  max-width: 690px;
  margin: 0;
  font-size: clamp(2.55rem, 7vw, 5.2rem);
  line-height: .97;
  letter-spacing: -.055em;
}

.v27-friendly .launch-home > p {
  position: relative;
  z-index: 1;
  max-width: 680px;
  margin: 20px 0 0;
  color: #354c40;
  font-size: clamp(1rem, 2vw, 1.18rem);
  line-height: 1.58;
}

.v27-hero-doodles span {
  position: absolute;
  z-index: 0;
  display: block;
  border-radius: 999px;
}

.v27-hero-doodles span:nth-child(1) {
  width: 18px;
  height: 18px;
  right: 10%;
  top: 28%;
  background: var(--v27-coral);
}
.v27-hero-doodles span:nth-child(2) {
  width: 30px;
  height: 8px;
  right: 7%;
  top: 39%;
  background: var(--v27-green);
  transform: rotate(-18deg);
}
.v27-hero-doodles span:nth-child(3) {
  width: 10px;
  height: 38px;
  right: 18%;
  bottom: 14%;
  background: var(--v27-yellow);
  transform: rotate(36deg);
}

/* Primary scan/search area */
.v27-friendly .home-search-card {
  position: relative;
  display: grid;
  gap: 14px;
  margin: 0;
  padding: clamp(18px, 4vw, 28px);
  border: 0;
  border-radius: 20px 36px 36px 36px;
  background: rgba(255, 253, 248, .94);
  box-shadow: var(--v27-shadow);
}

.v27-primary-actions {
  display: grid;
}

.v27-friendly .scan-action-primary {
  min-height: 84px;
  justify-content: flex-start;
  gap: 16px;
  padding: 16px 22px;
  border: 0;
  border-radius: 24px 24px 12px 24px;
  color: #fff;
  background: linear-gradient(135deg, #ff806e 0%, #fa6254 100%);
  box-shadow: 0 14px 28px rgba(242, 98, 84, .26);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}

.v27-friendly .scan-action-primary:hover {
  transform: translateY(-2px) rotate(-.35deg);
  box-shadow: 0 18px 34px rgba(242, 98, 84, .3);
  filter: saturate(1.04);
}

.v27-friendly .scan-action-primary .scan-icon {
  display: grid;
  width: 52px;
  height: 52px;
  flex: 0 0 52px;
  place-items: center;
  border-radius: 18px;
  color: #fff;
  background: rgba(255,255,255,.18);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.24);
}

.v27-friendly .scan-action-primary .scan-icon svg {
  width: 29px;
  height: 29px;
}

.v27-friendly .scan-action-primary span:last-child {
  display: grid;
  gap: 3px;
  text-align: left;
}

.v27-friendly .scan-action-primary strong {
  font-size: clamp(1.12rem, 2.4vw, 1.38rem);
}

.v27-friendly .scan-action-primary small {
  color: rgba(255,255,255,.86);
  font-size: .82rem;
}

.v27-action-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #7a857d;
  font-size: .75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.v27-action-divider::before,
.v27-action-divider::after {
  content: "";
  height: 1px;
  flex: 1;
  background: linear-gradient(90deg, transparent, rgba(35,53,44,.18));
}
.v27-action-divider::after { background: linear-gradient(90deg, rgba(35,53,44,.18), transparent); }

.v27-friendly .field-label,
.v27-friendly .home-search-card > label {
  color: var(--v27-ink-strong);
  font-size: .8rem;
  font-weight: 900;
  letter-spacing: .02em;
}

.v27-friendly .home-search-row,
.v27-friendly .search-row {
  gap: 10px;
}

.v27-friendly input,
.v27-friendly select,
.v27-friendly textarea {
  border: 2px solid transparent;
  border-radius: 18px;
  color: var(--v27-ink-strong);
  background: #f3f5f1;
  box-shadow: inset 0 0 0 1px rgba(35,53,44,.05);
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}

.v27-friendly input:focus,
.v27-friendly select:focus,
.v27-friendly textarea:focus {
  outline: 0;
  border-color: var(--v27-green);
  background: #fff;
  box-shadow: 0 0 0 5px rgba(36,116,84,.12);
}

.v27-friendly .home-search-row input {
  min-height: 58px;
  padding-inline: 18px;
}

.v27-friendly .home-search-row .primary-action {
  min-width: 120px;
  border-radius: 18px 18px 18px 8px;
  background: linear-gradient(135deg, var(--v27-green) 0%, #31966a 100%);
  box-shadow: 0 10px 20px rgba(36,116,84,.2);
}

.v27-account-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding-top: 3px;
}

.v27-account-row > span {
  color: var(--v27-muted);
  font-size: .82rem;
  font-weight: 700;
}

.v27-friendly .home-account-actions {
  display: flex;
  gap: 8px;
}

.v27-friendly .home-account-actions .secondary-action {
  min-height: 38px;
  padding: 8px 12px;
  border: 0;
  border-radius: 999px;
  color: var(--v27-green-dark);
  background: var(--v27-mint);
  font-size: .75rem;
  box-shadow: none;
}

.v27-friendly .home-account-actions .home-signin-action {
  background: var(--v27-lilac-soft);
}

.v27-friendly .beta-note {
  max-width: 700px;
  margin: 13px auto 0;
  color: var(--v27-muted);
  font-size: .78rem;
  text-align: center;
}

/* Benefit cards */
.v27-friendly .home-value-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin: 26px 0 42px;
}

.v27-friendly .asset-card {
  min-height: 165px;
  align-content: start;
  gap: 10px;
  padding: 22px;
  border: 0;
  border-radius: 26px 26px 14px 26px;
  box-shadow: var(--v27-shadow-soft);
  transform-origin: center;
}

.v27-friendly .asset-card:nth-child(1) {
  background: var(--v27-yellow-soft);
  transform: rotate(-1deg);
}
.v27-friendly .asset-card:nth-child(2) {
  background: var(--v27-sky-soft);
  transform: translateY(8px) rotate(.7deg);
}
.v27-friendly .asset-card:nth-child(3) {
  background: var(--v27-lilac-soft);
  transform: rotate(-.7deg);
}

.v27-friendly .asset-card .card-icon {
  width: 46px;
  height: 46px;
  border-radius: 16px;
  color: var(--v27-ink-strong);
  background: rgba(255,255,255,.62);
}

.v27-friendly .asset-card strong {
  color: var(--v27-ink-strong);
  font-size: 1.18rem;
}

.v27-friendly .asset-card > span:last-child {
  color: #516158;
  font-size: .88rem;
  line-height: 1.55;
}

/* Headings and guide discovery */
.v27-friendly .section-heading:not(.compact) {
  margin-bottom: 20px;
}

.v27-friendly .section-heading h2 {
  margin-top: 4px;
  font-size: clamp(2rem, 5vw, 3.35rem);
  line-height: 1.03;
}

.v27-friendly .eyebrow {
  color: var(--v27-green);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .12em;
}

.v27-friendly .guide-links {
  margin: 22px 0 42px;
  padding: clamp(18px, 4vw, 34px);
  border: 0;
  border-radius: 36px 18px 36px 36px;
  background: rgba(255,255,255,.63);
  box-shadow: var(--v27-shadow-soft);
}

.v27-guide-spotlight {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 14px;
}

.v27-guide-feature {
  display: grid;
  grid-template-columns: auto minmax(0,1fr);
  gap: 16px;
  min-height: 170px;
  align-items: center;
  padding: 22px;
  border: 0;
  border-radius: 30px 30px 16px 30px;
  color: var(--v27-ink-strong);
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease;
}

.v27-guide-feature:hover {
  transform: translateY(-4px) rotate(-.3deg);
  box-shadow: var(--v27-shadow-soft);
}

.v27-guide-feature.v27-coral { background: var(--v27-coral-soft); }
.v27-guide-feature.v27-sky { background: var(--v27-sky-soft); }

.v27-guide-icon {
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  border-radius: 20px 20px 12px 20px;
  color: var(--v27-ink-strong);
  background: rgba(255,255,255,.72);
  font-size: 1.55rem;
  font-style: normal;
  font-weight: 900;
}

.v27-guide-feature > span:last-child {
  display: grid;
  gap: 5px;
}
.v27-guide-feature small {
  color: #5c6a62;
  font-size: .7rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.v27-guide-feature strong {
  font-family: "Fraunces", Georgia, serif;
  font-size: 1.35rem;
  line-height: 1.1;
}
.v27-guide-feature em {
  color: #54645b;
  font-size: .84rem;
  font-style: normal;
  line-height: 1.5;
}

.v27-friendly .v27-guide-tiles {
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

.v27-friendly .v27-guide-tiles a {
  display: flex;
  min-height: 76px;
  align-items: center;
  gap: 10px;
  padding: 14px;
  border: 0;
  border-radius: 18px;
  color: var(--v27-ink-strong);
  background: #f6f3ec;
  font-weight: 800;
  text-decoration: none;
  transition: transform .18s ease, background .18s ease;
}

.v27-friendly .v27-guide-tiles a:nth-child(2n) { background: #eef8f1; }
.v27-friendly .v27-guide-tiles a:nth-child(3n) { background: #f2edff; }
.v27-friendly .v27-guide-tiles a:hover { transform: translateY(-2px); background: #fff; }
.v27-friendly .v27-guide-tiles a span {
  display: grid;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  place-items: center;
  border-radius: 12px;
  background: rgba(255,255,255,.86);
  font-weight: 900;
}

.v27-friendly .guide-more {
  margin-top: 16px;
  border: 0;
  border-radius: 22px;
  background: var(--v27-cream);
}

.v27-friendly .guide-more > summary {
  padding: 18px 20px;
  color: var(--v27-green-dark);
  font-weight: 900;
}

.v27-friendly .guide-group-grid {
  gap: 14px;
  padding: 0 16px 18px;
}

.v27-friendly .guide-group-grid > div {
  padding: 18px;
  border: 0;
  border-radius: 20px;
  background: #fff;
}

.v27-friendly .guide-group-grid a {
  border-bottom-color: rgba(35,53,44,.09);
}

/* Member / trust / FAQ */
.v27-friendly .why-join-section {
  position: relative;
  overflow: hidden;
  padding: clamp(24px, 5vw, 44px);
  border: 0;
  border-radius: 36px 36px 36px 16px;
  background: linear-gradient(135deg, #d9ceff 0%, #eee9ff 48%, #d9f2e2 100%);
  box-shadow: var(--v27-shadow-soft);
}

.v27-friendly .why-join-section::after {
  content: "";
  position: absolute;
  right: -55px;
  top: -55px;
  width: 160px;
  height: 160px;
  border-radius: 50%;
  background: rgba(255,255,255,.36);
}

.v27-friendly .why-join-section > * { position: relative; z-index: 1; }

.v27-friendly .why-join-section h2 {
  max-width: 600px;
  margin: 5px 0 8px;
  font-size: clamp(2rem, 5vw, 3.25rem);
  line-height: 1.02;
}

.v27-friendly .inline-signup {
  margin-top: 20px;
  padding: 18px;
  border-radius: 24px;
  background: rgba(255,255,255,.72);
  backdrop-filter: blur(8px);
}

.v27-friendly .inline-signup .primary-button {
  background: var(--v27-green);
}

.v27-friendly .signup-reasons {
  gap: 8px;
  margin-top: 16px;
}
.v27-friendly .signup-reasons span {
  border: 0;
  color: var(--v27-ink-strong);
  background: rgba(255,255,255,.62);
}

.v27-friendly .compact-trust-panel {
  margin-top: 18px;
  padding: clamp(22px, 4vw, 34px);
  border: 0;
  border-radius: 18px 34px 34px 34px;
  background: var(--v27-yellow-soft);
  box-shadow: var(--v27-shadow-soft);
}

.v27-friendly .compact-trust-panel h2 {
  font-size: clamp(1.8rem, 4vw, 2.7rem);
}

.v27-friendly .homepage-faq {
  margin-top: 18px;
  padding: clamp(22px, 4vw, 34px);
  border: 0;
  border-radius: 34px 34px 18px 34px;
  background: var(--v27-sky-soft);
  box-shadow: var(--v27-shadow-soft);
}

.v27-friendly .homepage-faq h2 {
  font-size: clamp(1.9rem, 4vw, 2.8rem);
}

.v27-faq-list {
  display: grid;
  gap: 8px;
  margin-top: 18px;
}

.v27-faq-list details {
  overflow: hidden;
  border: 0;
  border-radius: 18px;
  background: rgba(255,255,255,.78);
}

.v27-faq-list summary {
  padding: 16px 18px;
  color: var(--v27-ink-strong);
  font-weight: 900;
  cursor: pointer;
}

.v27-faq-list p {
  margin: 0;
  padding: 0 18px 18px;
  color: #56665d;
}

/* Shared screen headers and controls */
.v27-friendly .screen-header {
  position: relative;
  min-height: 66px;
  margin-bottom: 14px;
  padding: 10px 4px;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.v27-friendly .screen-header > span {
  font-size: clamp(1.7rem, 5vw, 2.45rem);
}

.v27-friendly .text-button,
.v27-friendly .icon-button,
.v27-friendly .secondary-button {
  border-color: transparent;
  color: var(--v27-green-dark);
  background: rgba(255,255,255,.76);
  box-shadow: 0 6px 16px rgba(44,59,49,.07);
}

.v27-friendly .text-button:hover,
.v27-friendly .icon-button:hover,
.v27-friendly .secondary-button:hover {
  background: #fff;
}

.v27-friendly .primary-button,
.v27-friendly .primary-action {
  border: 0;
  background: linear-gradient(135deg, var(--v27-green) 0%, #31966a 100%);
  box-shadow: 0 9px 20px rgba(36,116,84,.18);
  transition: transform .18s ease, box-shadow .18s ease;
}

.v27-friendly .primary-button:hover,
.v27-friendly .primary-action:hover {
  transform: translateY(-2px);
  box-shadow: 0 13px 25px rgba(36,116,84,.23);
}

/* Search screen */
.v27-friendly .search-screen,
.v27-friendly .history-screen,
.v27-friendly .lists-screen,
.v27-friendly .profile-screen,
.v27-friendly .alerts-screen,
.v27-friendly .product-screen {
  padding-top: 4px;
}

.v27-friendly .search-card {
  padding: 20px;
  border: 0;
  border-radius: 30px 30px 14px 30px;
  background: linear-gradient(135deg, var(--v27-sky-soft), #fff);
  box-shadow: var(--v27-shadow-soft);
}

.v27-friendly .search-card label {
  color: var(--v27-ink-strong);
  font-weight: 900;
}

.v27-friendly .search-row input {
  min-height: 58px;
  padding-inline: 18px;
}

.v27-friendly .search-row .primary-button {
  min-width: 110px;
  border-radius: 18px 18px 18px 8px;
}

.v27-friendly .loading-state {
  min-height: 92px;
  margin: 14px 0;
  border: 0;
  border-radius: 22px;
  color: var(--v27-muted);
  background: rgba(255,255,255,.58);
}

.v27-friendly .results-heading {
  margin: 20px 0 12px;
}

.v27-friendly .result-card {
  grid-template-columns: 100px minmax(0,1fr);
  gap: 18px;
  margin-bottom: 12px;
  padding: 16px;
  border: 0;
  border-radius: 28px 28px 14px 28px;
  background: rgba(255,255,255,.9);
  box-shadow: var(--v27-shadow-soft);
  transition: transform .18s ease, box-shadow .18s ease;
}

.v27-friendly .result-card:nth-of-type(3n+1) { background: linear-gradient(135deg, #fff, var(--v27-yellow-soft)); }
.v27-friendly .result-card:nth-of-type(3n+2) { background: linear-gradient(135deg, #fff, var(--v27-sky-soft)); }
.v27-friendly .result-card:nth-of-type(3n) { background: linear-gradient(135deg, #fff, var(--v27-lilac-soft)); }

.v27-friendly .result-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--v27-shadow);
}

.v27-friendly .result-image {
  overflow: hidden;
  width: 100px;
  height: 100px;
  border-radius: 22px 22px 10px 22px;
  background: rgba(255,255,255,.75);
  box-shadow: inset 0 0 0 1px rgba(35,53,44,.08);
}

.v27-friendly .result-copy h3 {
  margin: 0 0 2px;
  font-size: 1.25rem;
}

.v27-friendly .product-card-meta {
  gap: 6px;
  margin-top: 8px;
}

.v27-friendly .product-card-meta > * {
  border: 0 !important;
  box-shadow: none !important;
}

.v27-friendly .result-reason {
  color: #5c6a62;
  font-size: .85rem;
}

.v27-friendly .result-actions .primary-button {
  min-height: 38px;
  padding-inline: 18px;
  border-radius: 999px;
  font-size: .78rem;
}

.v27-friendly .popular-searches {
  margin-top: 22px;
  padding: 20px;
  border: 0;
  border-radius: 28px 16px 28px 28px;
  background: var(--v27-coral-soft);
  box-shadow: var(--v27-shadow-soft);
}

.v27-friendly .popular-list {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 10px;
}

.v27-friendly .popular-list button {
  width: auto;
  min-height: 42px;
  padding: 9px 14px;
  border: 0;
  border-radius: 999px;
  color: var(--v27-ink-strong);
  background: rgba(255,255,255,.78);
  font-size: .82rem;
  font-weight: 850;
  box-shadow: 0 5px 12px rgba(44,59,49,.07);
}

.v27-friendly .popular-list button::after { content: none; }
.v27-friendly .popular-list button:hover { transform: translateY(-2px) rotate(-1deg); }

/* Product page — answer first, detail second */
.v27-friendly .product-result {
  display: grid;
  gap: 16px;
}

.v27-friendly .product-hero-card {
  position: relative;
  overflow: hidden;
  grid-template-columns: minmax(170px, 230px) minmax(0,1fr);
  gap: clamp(20px, 4vw, 36px);
  align-items: start;
  padding: clamp(18px, 4vw, 32px);
  border: 0;
  border-radius: 38px 38px 18px 38px;
  background:
    radial-gradient(circle at 92% 8%, rgba(255,255,255,.72) 0 55px, transparent 56px),
    linear-gradient(135deg, #fff 0%, #fff6dc 52%, #e9f7ee 100%);
  box-shadow: var(--v27-shadow);
}

.v27-friendly .product-hero-card::after {
  content: "";
  position: absolute;
  width: 150px;
  height: 150px;
  right: -70px;
  bottom: -65px;
  border-radius: 50%;
  background: rgba(217,206,255,.44);
}

.v27-friendly .product-hero-card > * { position: relative; z-index: 1; }

.v27-friendly .product-photo.framed {
  width: 100%;
  aspect-ratio: 1 / 1;
  padding: 10px;
  border: 0;
  border-radius: 28px 28px 12px 28px;
  background: rgba(255,255,255,.88);
  box-shadow: 0 16px 34px rgba(44,59,49,.12);
  transform: rotate(-1.1deg);
}

.v27-friendly .product-photo.framed img {
  border-radius: 20px 20px 8px 20px;
}

.v27-friendly .product-summary-copy h1 {
  margin: 0 0 2px;
  font-size: clamp(2rem, 5vw, 3.3rem);
  line-height: 1.02;
}

.v27-friendly .brand-line {
  margin: 0 0 10px;
  color: var(--v27-muted);
  font-size: 1rem;
  font-weight: 800;
}

.v27-friendly .product-type-pill,
.v27-friendly .data-confidence-line,
.v27-friendly .status-strip,
.v27-friendly .mini-score,
.v27-friendly .card-status-chip {
  border: 0 !important;
  box-shadow: none !important;
}

.v27-friendly .data-trust-line {
  margin: 12px 0 7px;
  color: #4f6157;
}

.v27-friendly .data-confidence-line {
  width: fit-content;
  padding: 7px 11px;
  border-radius: 999px;
  background: rgba(255,255,255,.72);
}

.v27-friendly .status-strip {
  margin-top: 14px;
  padding: 12px 14px;
  border-radius: 18px;
  background: rgba(255,255,255,.78);
}

.v27-friendly .status-strip.green { background: #dff5e7; }
.v27-friendly .status-strip.amber { background: #fff0c5; }
.v27-friendly .status-strip.red { background: #ffe0da; }
.v27-friendly .status-strip.neutral { background: #f2f0e9; }

.v27-friendly .score-strip {
  margin-top: 12px;
  padding: 14px 16px;
  border: 0;
  border-radius: 22px 22px 10px 22px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(44,59,49,.08);
}

.v27-friendly .score-strip.great,
.v27-friendly .score-strip.good { background: linear-gradient(135deg, #dbf3e3, #fff); }
.v27-friendly .score-strip.mixed { background: linear-gradient(135deg, #fff0bd, #fff); }
.v27-friendly .score-strip.poor,
.v27-friendly .score-strip.bad { background: linear-gradient(135deg, #ffe0d9, #fff); }
.v27-friendly .score-strip.data-limited { background: linear-gradient(135deg, #f2efe6, #fff) !important; }

.v27-friendly .score-number-line strong {
  font-family: "Fraunces", Georgia, serif;
  font-size: clamp(2.3rem, 7vw, 4rem);
}

.v27-friendly .score-withheld-line strong {
  padding: 7px 11px;
  border-radius: 999px;
  color: #596159;
  background: rgba(255,255,255,.75);
  font-size: .98rem !important;
}

.v27-friendly .scoring-version-note {
  color: #7a837d;
  font-size: .72rem;
}

.v27-friendly .quick-action-row {
  gap: 10px;
  margin-top: 16px;
}

.v27-friendly .quick-action-row .primary-button,
.v27-friendly .quick-action-row .secondary-button,
.v27-friendly .product-actions .primary-button,
.v27-friendly .product-actions .secondary-button {
  min-height: 50px;
  border-radius: 17px;
}

.v27-friendly .detail-panel {
  overflow: hidden;
  padding: clamp(18px, 3vw, 26px);
  border: 0;
  border-radius: 30px 30px 16px 30px;
  box-shadow: var(--v27-shadow-soft);
}

.v27-friendly .food-snapshot-panel,
.v27-friendly .check-chip-panel { background: var(--v27-sky-soft); }
.v27-friendly .ingredient-intelligence-panel { background: var(--v27-lilac-soft); }
.v27-friendly .additive-focus-panel { background: var(--v27-coral-soft); }
.v27-friendly .more-details-panel { background: #fff; }
.v27-friendly .price-comparison-panel { background: var(--v27-yellow-soft); }
.v27-friendly .better-alternatives-panel { background: var(--v27-mint); }
.v27-friendly .product-result > .detail-panel:last-child { background: #fff; }

.v27-friendly .detail-panel .section-heading h2,
.v27-friendly .detail-panel > h2 {
  font-size: clamp(1.45rem, 4vw, 2.15rem);
}

.v27-friendly .food-snapshot-list,
.v27-friendly .ingredient-intelligence-card,
.v27-friendly .additive-inventory-row,
.v27-friendly .more-details-row,
.v27-friendly .price-source-section,
.v27-friendly .verified-price-section,
.v27-friendly .observed-price-section {
  border: 0;
  background: rgba(255,255,255,.78);
  box-shadow: none;
}

.v27-friendly .food-snapshot-list {
  border-radius: 24px;
}

.v27-friendly .food-snapshot-row {
  min-height: 72px;
  border-bottom-color: rgba(35,53,44,.08);
  background: transparent;
}

.v27-friendly .food-snapshot-row:hover { background: rgba(255,255,255,.7); }

.v27-friendly .ingredient-intelligence-card,
.v27-friendly .more-details-row,
.v27-friendly .additive-inventory-row {
  border-radius: 18px;
}

.v27-friendly .share-prompt-card {
  border: 0;
  border-radius: 18px;
  background: var(--v27-sky-soft);
}

/* Empty and list cards */
.v27-friendly .empty-card,
.v27-friendly .list-card,
.v27-friendly .history-card,
.v27-friendly .saved-product-card,
.v27-friendly .watch-card,
.v27-friendly .preferences-card,
.v27-friendly .early-access-card {
  border: 0;
  border-radius: 30px 30px 16px 30px;
  background: rgba(255,255,255,.88);
  box-shadow: var(--v27-shadow-soft);
}

.v27-friendly .empty-card {
  background: linear-gradient(135deg, var(--v27-yellow-soft), #fff);
}

/* Bottom navigation */
.v27-friendly .bottom-nav {
  left: 50%;
  right: auto;
  width: min(620px, calc(100% - 24px));
  bottom: max(12px, env(safe-area-inset-bottom));
  padding: 8px;
  border: 0;
  border-radius: 26px 26px 16px 26px;
  background: rgba(255,253,248,.9);
  box-shadow: 0 18px 50px rgba(40,55,47,.22);
  backdrop-filter: blur(18px);
  transform: translateX(-50%);
}

.v27-friendly .bottom-nav button {
  min-height: 58px;
  border-radius: 18px;
  color: #607067;
}

.v27-friendly .bottom-nav button.is-active,
.v27-friendly .bottom-nav button[aria-current="page"] {
  color: var(--v27-green-dark);
  background: var(--v27-mint);
}

.v27-friendly .bottom-nav .nav-camera {
  min-height: 66px;
  margin-top: -16px;
  border-radius: 22px 22px 12px 22px;
  color: #fff;
  background: linear-gradient(135deg, var(--v27-coral), #f45f51);
  box-shadow: 0 14px 26px rgba(244,95,81,.28);
}

.v27-friendly .bottom-nav .nav-camera.is-active,
.v27-friendly .bottom-nav .nav-camera[aria-current="page"] {
  color: #fff;
  background: linear-gradient(135deg, var(--v27-coral), #f45f51);
}

/* Scanner dialog */
.v27-friendly .scanner-dialog {
  width: min(94vw, 690px);
  border-radius: 34px 34px 18px 34px;
  background: #171f1b;
  box-shadow: 0 28px 90px rgba(8,18,13,.4);
}

.v27-friendly .scanner-panel {
  padding: 18px 18px max(26px, env(safe-area-inset-bottom));
  color: #fff;
}

.v27-friendly .scanner-panel h2 { color: #fff; }
.v27-friendly .scanner-panel .eyebrow { color: #aee8c4; }
.v27-friendly .scanner-panel .icon-button {
  color: #fff;
  background: rgba(255,255,255,.12);
}

.v27-friendly .scanner-window {
  overflow: hidden;
  border-radius: 26px 26px 12px 26px;
  background: #000;
  box-shadow: 0 15px 36px rgba(0,0,0,.28);
}

.v27-friendly .scanner-guide-horizontal {
  border-color: rgba(255,255,255,.96);
  border-radius: 24px;
}

.v27-friendly .scanner-guide-vertical {
  border-color: var(--v27-yellow);
}

.v27-friendly .scanner-sweep {
  background: var(--v27-coral);
  box-shadow: 0 0 18px var(--v27-coral);
}

.v27-friendly .scanner-direction-note { color: #dce8e0; }
.v27-friendly .scanner-panel > p:not(.eyebrow):not(.scanner-direction-note) { color: #c5d0c9; }

/* Dialogs */
.v27-friendly dialog:not(.scanner-dialog) {
  border: 0;
  border-radius: 32px 32px 18px 32px;
  background: var(--v27-paper);
  box-shadow: 0 28px 90px rgba(31,45,37,.28);
}

/* Guide / legal / supporting pages */
.v27-friendly .topbar {
  max-width: 980px;
  margin: 0 auto;
  padding: 18px clamp(16px, 4vw, 32px) 8px;
}

.v27-friendly .legal-shell {
  width: min(900px, calc(100% - 28px));
  margin: 0 auto;
  padding: 8px 0 54px;
}

.v27-friendly .legal-card {
  overflow: hidden;
  padding: clamp(24px, 5vw, 54px);
  border: 0;
  border-radius: 42px 42px 18px 42px;
  background: rgba(255,253,248,.94);
  box-shadow: var(--v27-shadow);
}

.v27-friendly .guide-copy-page > .eyebrow:first-child {
  display: inline-flex;
  padding: 7px 11px;
  border-radius: 999px;
  background: var(--v27-mint);
}

.v27-friendly .guide-copy-page > h1:first-of-type,
.v27-friendly .legal-card > h1:first-of-type {
  max-width: 760px;
  margin: 12px 0 16px;
  font-size: clamp(2.55rem, 7vw, 5rem);
  line-height: .98;
  letter-spacing: -.05em;
}

.v27-friendly .guide-copy-page > p:nth-of-type(2) a {
  display: inline-flex;
  margin: 4px 3px 4px 0;
  padding: 8px 11px;
  border-radius: 999px;
  color: var(--v27-green-dark);
  background: var(--v27-sky-soft);
  text-decoration: none;
  font-size: .8rem;
  font-weight: 850;
}

.v27-friendly .legal-note {
  margin: 22px 0;
  padding: 18px;
  border: 0;
  border-radius: 22px 22px 10px 22px;
  background: var(--v27-yellow-soft);
}

.v27-friendly .guide-copy-page h2,
.v27-friendly .legal-card h2 {
  position: relative;
  margin-top: 2.2em;
  padding-left: 17px;
  font-size: clamp(1.65rem, 4vw, 2.45rem);
}

.v27-friendly .guide-copy-page h2::before,
.v27-friendly .legal-card h2::before {
  content: "";
  position: absolute;
  left: 0;
  top: .16em;
  width: 7px;
  height: .86em;
  border-radius: 999px;
  background: var(--v27-coral);
  transform: rotate(7deg);
}

.v27-friendly .guide-copy-page h2:nth-of-type(3n+2)::before { background: var(--v27-green); }
.v27-friendly .guide-copy-page h2:nth-of-type(3n)::before { background: #8f78e8; }

.v27-friendly .guide-copy-page ul,
.v27-friendly .legal-card ul {
  padding: 20px 22px 20px 42px;
  border-radius: 24px;
  background: var(--v27-sky-soft);
}

.v27-friendly .guide-copy-page li::marker,
.v27-friendly .legal-card li::marker { color: var(--v27-coral); }

.v27-friendly .guide-cta-panel {
  margin: 30px 0;
  padding: clamp(22px, 4vw, 34px);
  border: 0;
  border-radius: 30px 30px 14px 30px;
  background: linear-gradient(135deg, var(--v27-coral-soft), var(--v27-yellow-soft));
  box-shadow: var(--v27-shadow-soft);
}

.v27-friendly .guide-cta-panel h2 { margin-top: 0; }

.v27-friendly .site-footer {
  width: min(900px, calc(100% - 28px));
  margin: 0 auto 30px;
  padding: 24px;
  border: 0;
  border-radius: 28px 28px 14px 28px;
  background: var(--v27-ink-strong);
  color: #fff;
}

.v27-friendly .site-footer p { color: #cbd9d1; }
.v27-friendly .site-footer a { color: #fff; }

/* Reduce motion where requested */
@media (prefers-reduced-motion: reduce) {
  .v27-friendly *,
  .v27-friendly *::before,
  .v27-friendly *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

@media (max-width: 760px) {
  .v27-friendly .app-frame { padding: 12px 12px 32px; }
  .v27-friendly .launch-home {
    padding: 28px 22px 34px;
    border-radius: 34px 34px 14px 34px;
  }
  .v27-friendly .launch-home h1 { font-size: clamp(2.55rem, 13vw, 4rem); }
  .v27-friendly .launch-home > p { font-size: .98rem; }
  .v27-hero-badges span:nth-child(3) { display: none; }
  .v27-friendly .home-value-grid { grid-template-columns: 1fr; }
  .v27-friendly .asset-card,
  .v27-friendly .asset-card:nth-child(2) { min-height: 0; transform: none; }
  .v27-guide-spotlight { grid-template-columns: 1fr; }
  .v27-friendly .v27-guide-tiles { grid-template-columns: 1fr 1fr; }
  .v27-friendly .product-hero-card { grid-template-columns: 118px minmax(0,1fr); gap: 16px; }
  .v27-friendly .product-summary-copy h1 { font-size: clamp(1.55rem, 7vw, 2.2rem); }
  .v27-friendly .score-strip { grid-template-columns: 1fr; gap: 10px; }
  .v27-friendly .score-reason-block { border-left: 0; padding-left: 0; }
}

@media (max-width: 560px) {
  .v27-friendly { padding-bottom: 104px; }
  .v27-friendly .brand-header { padding-bottom: 14px; }
  .v27-friendly .brand-mark { width: 43px; height: 43px; border-radius: 16px 16px 10px 16px; }
  .v27-friendly .brand small { max-width: 210px; }
  .v27-friendly .launch-home {
    text-align: left;
    box-shadow: 0 15px 38px rgba(44,59,49,.1);
  }
  .v27-friendly .launch-home::after { right: 9%; top: 22%; width: 46px; height: 46px; border-width: 11px; }
  .v27-hero-badges { gap: 6px; margin-bottom: 15px; }
  .v27-hero-badges span { min-height: 27px; padding: 5px 9px; font-size: .65rem; }
  .v27-friendly .home-search-card { padding: 16px; border-radius: 18px 28px 28px 28px; }
  .v27-friendly .scan-action-primary { min-height: 76px; padding: 13px 16px; border-radius: 21px 21px 10px 21px; }
  .v27-friendly .scan-action-primary .scan-icon { width: 46px; height: 46px; flex-basis: 46px; }
  .v27-friendly .home-search-row,
  .v27-friendly .search-row { grid-template-columns: minmax(0,1fr) auto; }
  .v27-friendly .home-search-row .primary-action,
  .v27-friendly .search-row .primary-button { min-width: 84px; padding-inline: 13px; }
  .v27-account-row { align-items: flex-start; flex-direction: column; }
  .v27-friendly .home-account-actions { width: 100%; }
  .v27-friendly .home-account-actions > * { flex: 1; }
  .v27-friendly .guide-links { padding: 17px; border-radius: 28px 14px 28px 28px; }
  .v27-friendly .v27-guide-tiles { grid-template-columns: 1fr; }
  .v27-guide-feature { min-height: 0; padding: 18px; }
  .v27-friendly .inline-signup { grid-template-columns: 1fr; }
  .v27-friendly .compact-trust-panel { grid-template-columns: 1fr; }
  .v27-friendly .result-card {
    grid-template-columns: 82px minmax(0,1fr);
    gap: 12px;
    padding: 13px;
    border-radius: 24px 24px 12px 24px;
  }
  .v27-friendly .result-image { width: 82px; height: 82px; border-radius: 18px 18px 8px 18px; }
  .v27-friendly .result-copy h3 { font-size: 1.08rem; }
  .v27-friendly .product-card-meta { gap: 5px; }
  .v27-friendly .product-hero-card {
    grid-template-columns: 92px minmax(0,1fr);
    padding: 14px;
    border-radius: 28px 28px 14px 28px;
  }
  .v27-friendly .product-photo.framed { border-radius: 20px 20px 9px 20px; padding: 6px; }
  .v27-friendly .product-summary-copy h1 { font-size: 1.48rem; }
  .v27-friendly .brand-line { font-size: .86rem; }
  .v27-friendly .data-trust-line { font-size: .78rem; }
  .v27-friendly .data-confidence-line { font-size: .72rem; }
  .v27-friendly .status-strip { grid-column: 1 / -1; }
  .v27-friendly .score-strip { grid-column: 1 / -1; }
  .v27-friendly .scoring-version-note { grid-column: 1 / -1; }
  .v27-friendly .quick-action-row { grid-column: 1 / -1; }
  .v27-friendly .detail-panel { padding: 15px; border-radius: 25px 25px 12px 25px; }
  .v27-friendly .bottom-nav { width: calc(100% - 18px); padding: 6px; border-radius: 22px 22px 12px 22px; }
  .v27-friendly .bottom-nav button { min-height: 54px; font-size: .7rem; }
  .v27-friendly .bottom-nav .nav-camera { min-height: 62px; margin-top: -13px; }
  .v27-friendly .legal-shell { width: calc(100% - 20px); }
  .v27-friendly .legal-card { padding: 22px 18px 34px; border-radius: 30px 30px 14px 30px; }
  .v27-friendly .guide-copy-page > h1:first-of-type,
  .v27-friendly .legal-card > h1:first-of-type { font-size: clamp(2.35rem, 12vw, 3.6rem); }
}

@media (max-width: 390px) {
  .v27-friendly .product-hero-card { grid-template-columns: 78px minmax(0,1fr); gap: 11px; }
  .v27-friendly .product-summary-copy h1 { font-size: 1.28rem; }
  .v27-friendly .score-withheld-line strong { font-size: .88rem !important; }
  .v27-friendly .bottom-nav small { font-size: .63rem; }
}
.v27-friendly .visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.v27-friendly .v27-cluster-back a {
  display: inline-flex;
  padding: 11px 15px;
  border-radius: 999px;
  color: var(--v27-green-dark);
  background: var(--v27-mint);
  font-weight: 850;
  text-decoration: none;
}
.v27-friendly .brand-mark { position: relative; }
.v27-friendly .brand-mark::after {
  top: -3px;
  right: -4px;
  margin: 0;
}


/* BasketBalance v27.1 polished action feedback and distinct discovery links */
.v27-friendly .popular-searches {
  margin-top: 20px;
  padding: 20px;
  border: 0;
  border-radius: 30px 30px 14px 30px;
  background: linear-gradient(145deg, rgba(237,248,241,.96), rgba(239,245,255,.94));
  box-shadow: var(--v27-shadow-soft);
}
.v27-friendly .popular-searches .eyebrow {
  display: inline-flex;
  margin: 0 0 12px;
  padding: 7px 11px;
  border-radius: 999px;
  background: rgba(255,255,255,.82);
  color: var(--v27-green-dark);
}
.v27-friendly .popular-list {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}
.v27-friendly .popular-list button {
  width: auto;
  min-height: 42px;
  padding: 9px 14px;
  border: 1px solid rgba(42,91,63,.1);
  border-radius: 999px;
  background: rgba(255,255,255,.92);
  color: var(--v27-ink-strong);
  font-weight: 850;
  text-align: left;
  box-shadow: 0 8px 18px rgba(44,59,49,.06);
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}
.v27-friendly .popular-list button:nth-child(4n+1) { background: var(--v27-yellow-soft); }
.v27-friendly .popular-list button:nth-child(4n+2) { background: var(--v27-coral-soft); }
.v27-friendly .popular-list button:nth-child(4n+3) { background: var(--v27-sky-soft); }
.v27-friendly .popular-list button:nth-child(4n) { background: var(--v27-mint); }
.v27-friendly .popular-list button:hover,
.v27-friendly .popular-list button:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(44,59,49,.1);
}

.v27-friendly .toast {
  display: grid !important;
  grid-template-columns: 42px minmax(0,1fr) 34px;
  align-items: center;
  gap: 11px;
  left: 50%;
  right: auto;
  bottom: calc(108px + env(safe-area-inset-bottom));
  width: min(390px, calc(100vw - 28px));
  max-width: none;
  min-height: 72px;
  margin: 0;
  padding: 12px 12px 14px;
  overflow: hidden;
  border: 1px solid rgba(35,68,49,.12);
  border-radius: 24px 24px 12px 24px;
  background: rgba(255,253,248,.97);
  color: var(--v27-ink-strong);
  box-shadow: 0 22px 52px rgba(28,47,36,.22);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  opacity: 0;
  pointer-events: none;
  transform: translateX(-50%) translateY(16px) scale(.98);
  transition: opacity .2s ease, transform .2s ease;
}
.v27-friendly .toast.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0) scale(1);
}
.v27-friendly .toast-icon {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 15px 15px 7px 15px;
  background: var(--v27-sky-soft);
  color: #315b73;
  font-size: 1.05rem;
  font-weight: 950;
}
.v27-friendly .toast-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}
.v27-friendly .toast-title {
  color: var(--v27-ink-strong);
  font-family: var(--display-font, Georgia, serif);
  font-size: 1rem;
  line-height: 1.15;
}
.v27-friendly .toast-message {
  color: #607066;
  font-size: .84rem;
  font-weight: 700;
  line-height: 1.35;
}
.v27-friendly .toast-close {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(41,75,54,.07);
  color: #577063;
  font: inherit;
  font-size: 1.15rem;
  font-weight: 850;
  cursor: pointer;
}
.v27-friendly .toast-progress {
  position: absolute;
  right: 12px;
  bottom: 6px;
  left: 12px;
  height: 3px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(43,78,57,.08);
}
.v27-friendly .toast-progress::after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  background: #5b8ea7;
  transform-origin: left;
  animation: bb-toast-progress 4.2s linear forwards;
}
.v27-friendly .toast.is-visible .toast-progress::after { animation-name: bb-toast-progress; }
.v27-friendly .toast[data-tone="success"] { border-color: rgba(41,136,78,.18); }
.v27-friendly .toast[data-tone="success"] .toast-icon { background: #dff4e5; color: #237744; }
.v27-friendly .toast[data-tone="success"] .toast-progress::after { background: #3b9a5d; }
.v27-friendly .toast[data-tone="warning"] { border-color: rgba(202,141,33,.2); }
.v27-friendly .toast[data-tone="warning"] .toast-icon { background: #fff0c8; color: #8a6117; }
.v27-friendly .toast[data-tone="warning"] .toast-progress::after { background: #d49b36; }
.v27-friendly .toast[data-tone="error"] { border-color: rgba(190,72,59,.2); }
.v27-friendly .toast[data-tone="error"] .toast-icon { background: #ffe3df; color: #a73f34; }
.v27-friendly .toast[data-tone="error"] .toast-progress::after { background: #cf6558; }
@keyframes bb-toast-progress { from { transform: scaleX(1); } to { transform: scaleX(0); } }

.v27-friendly .auth-popup {
  grid-template-columns: 42px minmax(0,1fr) 34px !important;
  gap: 11px !important;
  padding: 12px 12px 14px !important;
  overflow: hidden;
  border: 1px solid rgba(190,72,59,.18) !important;
  border-radius: 24px 24px 12px 24px !important;
  background: rgba(255,253,248,.985) !important;
  color: var(--v27-ink-strong) !important;
  box-shadow: 0 22px 52px rgba(28,47,36,.2) !important;
}
.v27-friendly .auth-popup-icon {
  width: 42px !important;
  height: 42px !important;
  border-radius: 15px 15px 7px 15px !important;
  background: #ffe3df !important;
  color: #a73f34 !important;
}
.v27-friendly .auth-popup-copy { display: grid; gap: 2px; min-width: 0; }
.v27-friendly .auth-popup-title {
  color: var(--v27-ink-strong);
  font-family: var(--display-font, Georgia, serif);
  font-size: 1rem;
  line-height: 1.15;
}
.v27-friendly .auth-popup p {
  color: #68756d !important;
  font-size: .84rem !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
}
.v27-friendly .auth-popup-close {
  width: 32px !important;
  height: 32px !important;
  background: rgba(41,75,54,.07) !important;
  color: #577063 !important;
  font-size: 1.15rem !important;
}
.v27-friendly .auth-popup[data-tone="warning"] { border-color: rgba(202,141,33,.2) !important; }
.v27-friendly .auth-popup[data-tone="warning"] .auth-popup-icon { background: #fff0c8 !important; color: #8a6117 !important; }
.v27-friendly .auth-popup[data-tone="success"] { border-color: rgba(41,136,78,.18) !important; }
.v27-friendly .auth-popup[data-tone="success"] .auth-popup-icon { background: #dff4e5 !important; color: #237744 !important; }

.v27-friendly .signup-confirmation-dialog {
  overflow: hidden;
  border-radius: 34px 34px 15px 34px !important;
  background: transparent;
  box-shadow: 0 34px 90px rgba(21,49,35,.28) !important;
}
.v27-friendly .signup-confirmation-panel {
  position: relative;
  gap: 12px;
  padding: 30px 24px 24px !important;
  overflow: hidden;
  background: linear-gradient(145deg, #fffdf8 55%, #eaf6ee 100%) !important;
}
.v27-friendly .signup-confirmation-panel::before {
  content: "";
  position: absolute;
  top: -44px;
  right: -34px;
  width: 130px;
  height: 130px;
  border-radius: 50%;
  background: rgba(255,211,102,.33);
}
.v27-friendly .confirmation-icon {
  position: relative;
  width: 64px !important;
  height: 64px !important;
  border-radius: 22px 22px 10px 22px !important;
  background: linear-gradient(135deg, #2f8a54, #63b879) !important;
  box-shadow: 0 15px 30px rgba(47,138,84,.2);
}
.v27-friendly .signup-confirmation-panel h2 { position: relative; font-size: clamp(1.6rem, 6vw, 2.2rem) !important; }
.v27-friendly .signup-confirmation-panel p { position: relative; max-width: 32ch; justify-self: center; }
.v27-friendly .signup-confirmation-panel .primary-button { position: relative; min-height: 50px; border-radius: 17px; }

@media (max-width: 560px) {
  .v27-friendly .popular-searches { padding: 16px; border-radius: 26px 26px 12px 26px; }
  .v27-friendly .popular-list { gap: 7px; }
  .v27-friendly .popular-list button { min-height: 39px; padding: 8px 11px; font-size: .78rem; }
  .v27-friendly .toast {
    bottom: calc(101px + env(safe-area-inset-bottom));
    width: calc(100vw - 24px);
    min-height: 68px;
    border-radius: 22px 22px 11px 22px;
  }
}

/* BasketBalance v27.2 uniform actions and refined feedback system */
.v27-friendly .v27-account-row {
  gap: 12px;
}
.v27-friendly .v27-account-row > span {
  color: #52655a;
  font-size: .94rem;
  font-weight: 750;
  line-height: 1.35;
}
.v27-friendly .home-account-actions {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px !important;
  width: min(430px, 100%);
}
.v27-friendly .home-account-actions .secondary-action,
.v27-friendly .home-account-actions a.secondary-action[href="#member-account"],
.v27-friendly .home-account-actions a.secondary-action[href$="#member-account"],
.v27-friendly .home-account-actions .home-signin-action {
  width: 100% !important;
  min-height: 54px !important;
  padding: 12px 16px !important;
  border-radius: 18px !important;
  font-family: inherit !important;
  font-size: .98rem !important;
  font-weight: 850 !important;
  line-height: 1.1 !important;
  letter-spacing: 0 !important;
  text-align: center !important;
  text-decoration: none !important;
  box-shadow: none !important;
}
.v27-friendly .home-account-actions a.secondary-action[href="#member-account"],
.v27-friendly .home-account-actions a.secondary-action[href$="#member-account"] {
  border: 2px solid var(--v27-green) !important;
  color: #fff !important;
  background: var(--v27-green) !important;
}
.v27-friendly .home-account-actions .home-signin-action {
  border: 2px solid rgba(36, 116, 84, .28) !important;
  color: var(--v27-green-dark) !important;
  background: #fffdf8 !important;
}
.v27-friendly .home-account-actions a.secondary-action[href="#member-account"]:hover,
.v27-friendly .home-account-actions a.secondary-action[href="#member-account"]:focus-visible,
.v27-friendly .home-account-actions a.secondary-action[href$="#member-account"]:hover,
.v27-friendly .home-account-actions a.secondary-action[href$="#member-account"]:focus-visible,
.v27-friendly .home-account-actions .home-signin-action:hover,
.v27-friendly .home-account-actions .home-signin-action:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(34, 90, 60, .12) !important;
}
.v27-friendly .home-account-actions .secondary-action:active {
  transform: translateY(0) scale(.985);
}

/* One modern notification language for success, information, warning and error. */
.v27-friendly .toast {
  position: fixed !important;
  top: calc(14px + env(safe-area-inset-top)) !important;
  right: auto !important;
  bottom: auto !important;
  left: 50% !important;
  z-index: 2147483647 !important;
  display: grid !important;
  grid-template-columns: 36px minmax(0, 1fr) 30px !important;
  align-items: center !important;
  gap: 11px !important;
  width: min(410px, calc(100vw - 24px)) !important;
  min-height: 62px !important;
  padding: 11px 11px 11px 12px !important;
  overflow: hidden !important;
  border: 1px solid rgba(29, 69, 46, .13) !important;
  border-radius: 18px !important;
  background: rgba(255, 254, 250, .985) !important;
  color: var(--v27-ink-strong) !important;
  box-shadow: 0 18px 46px rgba(27, 50, 36, .18) !important;
  backdrop-filter: blur(20px) saturate(1.1) !important;
  -webkit-backdrop-filter: blur(20px) saturate(1.1) !important;
  opacity: 0;
  pointer-events: none;
  transform: translateX(-50%) translateY(-12px) scale(.985) !important;
  transition: opacity .18s ease, transform .2s ease !important;
}
.v27-friendly .toast::before,
.v27-friendly .auth-popup::before {
  content: "";
  position: absolute;
  top: 10px;
  bottom: 10px;
  left: 0;
  width: 4px;
  border-radius: 0 999px 999px 0;
  background: #6f9eb5;
}
.v27-friendly .toast.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0) scale(1) !important;
}
.v27-friendly .toast-icon,
.v27-friendly .auth-popup-icon {
  display: grid !important;
  width: 36px !important;
  height: 36px !important;
  place-items: center !important;
  border-radius: 50% !important;
  background: #e7f1f6 !important;
  color: #315c70 !important;
  font-family: Arial, Helvetica, sans-serif !important;
  font-size: .96rem !important;
  font-weight: 900 !important;
}
.v27-friendly .toast-copy,
.v27-friendly .auth-popup-copy {
  display: grid !important;
  gap: 2px !important;
  min-width: 0 !important;
}
.v27-friendly .toast-title,
.v27-friendly .auth-popup-title {
  color: #183c2a !important;
  font-family: Arial, Helvetica, sans-serif !important;
  font-size: .92rem !important;
  font-weight: 850 !important;
  line-height: 1.2 !important;
  letter-spacing: 0 !important;
}
.v27-friendly .toast-message,
.v27-friendly .auth-popup p {
  margin: 0 !important;
  color: #5c6b62 !important;
  font-family: Arial, Helvetica, sans-serif !important;
  font-size: .8rem !important;
  font-weight: 650 !important;
  line-height: 1.35 !important;
}
.v27-friendly .toast-close,
.v27-friendly .auth-popup-close {
  display: grid !important;
  width: 30px !important;
  height: 30px !important;
  place-items: center !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: transparent !important;
  color: #6c7971 !important;
  font-family: Arial, Helvetica, sans-serif !important;
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  cursor: pointer !important;
}
.v27-friendly .toast-close:hover,
.v27-friendly .toast-close:focus-visible,
.v27-friendly .auth-popup-close:hover,
.v27-friendly .auth-popup-close:focus-visible {
  background: rgba(31, 73, 48, .07) !important;
  color: #173c2a !important;
}
.v27-friendly .toast-progress {
  display: none !important;
}
.v27-friendly .toast[data-tone="success"]::before,
.v27-friendly .auth-popup[data-tone="success"]::before { background: #2f9255; }
.v27-friendly .toast[data-tone="success"] .toast-icon,
.v27-friendly .auth-popup[data-tone="success"] .auth-popup-icon {
  background: #e0f3e6 !important;
  color: #237444 !important;
}
.v27-friendly .toast[data-tone="warning"]::before,
.v27-friendly .auth-popup[data-tone="warning"]::before { background: #d39a2e; }
.v27-friendly .toast[data-tone="warning"] .toast-icon,
.v27-friendly .auth-popup[data-tone="warning"] .auth-popup-icon {
  background: #fff1cf !important;
  color: #855c12 !important;
}
.v27-friendly .toast[data-tone="error"]::before,
.v27-friendly .auth-popup[data-tone="error"]::before { background: #cf5e50; }
.v27-friendly .toast[data-tone="error"] .toast-icon,
.v27-friendly .auth-popup[data-tone="error"] .auth-popup-icon {
  background: #ffe6e1 !important;
  color: #a54135 !important;
}

/* Form feedback inside the account dialog follows the same visual system. */
.v27-friendly .auth-popup {
  position: absolute !important;
  top: 12px !important;
  right: 12px !important;
  left: 12px !important;
  z-index: 80 !important;
  display: grid !important;
  grid-template-columns: 36px minmax(0, 1fr) 30px !important;
  align-items: center !important;
  gap: 11px !important;
  width: auto !important;
  min-height: 62px !important;
  padding: 11px 11px 11px 12px !important;
  overflow: hidden !important;
  border: 1px solid rgba(29, 69, 46, .13) !important;
  border-radius: 18px !important;
  background: rgba(255, 254, 250, .99) !important;
  color: var(--v27-ink-strong) !important;
  box-shadow: 0 16px 40px rgba(27, 50, 36, .17) !important;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-10px) scale(.985) !important;
  transition: opacity .18s ease, transform .2s ease !important;
}
.v27-friendly .auth-popup.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0) scale(1) !important;
}

@media (max-width: 560px) {
  .v27-friendly .v27-account-row {
    gap: 10px;
  }
  .v27-friendly .home-account-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }
  .v27-friendly .home-account-actions .secondary-action,
  .v27-friendly .home-account-actions a.secondary-action[href="#member-account"],
  .v27-friendly .home-account-actions a.secondary-action[href$="#member-account"],
  .v27-friendly .home-account-actions .home-signin-action {
    min-height: 52px !important;
    padding: 10px 11px !important;
    font-size: .9rem !important;
  }
  .v27-friendly .toast {
    top: calc(10px + env(safe-area-inset-top)) !important;
    width: calc(100vw - 20px) !important;
  }
}

/* BasketBalance v27.3 - clearer, friendlier product pages - 20 Jul 2026 */
.v27-friendly .product-result .product-hero-card {
  background:
    radial-gradient(circle at 92% 7%, rgba(255,255,255,.78) 0 58px, transparent 59px),
    radial-gradient(circle at 8% 92%, rgba(255,205,106,.22) 0 88px, transparent 89px),
    linear-gradient(140deg, #fffaf0 0%, #eef9f2 52%, #edf5ff 100%);
}

.v27-friendly .product-result .ingredient-intelligence-panel {
  background: linear-gradient(145deg, #f4efff 0%, #eef8ff 100%);
}

.v27-friendly .product-result .ingredient-intelligence-panel .section-heading > p:last-child {
  max-width: 34rem;
  margin-top: .3rem;
  color: #5d6970;
  font-size: .93rem;
  line-height: 1.35;
}

.v27-friendly .product-result .ingredient-intelligence-list {
  gap: 10px;
}

.v27-friendly .product-result .ingredient-intelligence-card {
  min-height: 76px;
  padding: 13px 14px;
  border: 0;
  border-left: 7px solid #91a0aa;
  border-radius: 20px 20px 10px 20px;
  background: rgba(255,255,255,.88);
  box-shadow: 0 9px 22px rgba(50,55,78,.08);
}

.v27-friendly .product-result .ingredient-intelligence-card.worth-checking {
  border-left-color: #e7ad27;
  background: linear-gradient(135deg, #fff8df, #fff);
}

.v27-friendly .product-result .ingredient-intelligence-card.extra-care {
  border-left-color: #ef6f61;
  background: linear-gradient(135deg, #ffe8e3, #fff);
}

.v27-friendly .product-result .ingredient-intelligence-card.generally-fine {
  border-left-color: #35a86d;
  background: linear-gradient(135deg, #e4f8ec, #fff);
}

.v27-friendly .product-result .ingredient-intelligence-card.information-limited {
  border-left-color: #7298bc;
  background: linear-gradient(135deg, #e9f3fc, #fff);
}

.v27-friendly .product-result .ingredient-intelligence-card .guidance-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 15px 15px 7px 15px;
  color: #1e5e46;
  background: rgba(255,255,255,.82);
}

.v27-friendly .product-result .ingredient-intelligence-copy strong {
  font-size: 1.04rem;
}

.v27-friendly .product-result .ingredient-intelligence-copy small {
  color: #50615a;
  font-size: .82rem;
}

.v27-friendly .product-result .ingredient-intelligence-copy span {
  margin-top: 2px;
  color: #67736d;
  font-size: .78rem;
  line-height: 1.25;
}

/* Evidence detail remains available inside the pop-up; keep the card itself quick to scan. */
.v27-friendly .product-result .ingredient-intelligence-panel .intel-badges em {
  display: none;
}

.v27-friendly .product-result .ingredient-intelligence-panel .intel-badges small {
  padding: 7px 10px;
  font-size: .72rem;
}

.v27-friendly .product-result .additive-focus-panel {
  background: linear-gradient(145deg, #fff0e9 0%, #fff8df 100%);
}

.v27-friendly .product-result .additive-inventory-row {
  border: 0;
  border-left: 6px solid #e7ad27;
  border-radius: 20px 20px 10px 20px;
  background: rgba(255,255,255,.9);
  box-shadow: 0 8px 20px rgba(74,54,35,.07);
}

.v27-friendly .product-result .additive-traffic-summary {
  border: 0;
  border-radius: 18px 18px 8px 18px;
  background: rgba(255,255,255,.72);
}

.v27-friendly .product-result .price-empty-state {
  display: grid;
  gap: 16px;
  padding: 18px;
  border: 0;
  border-radius: 24px 24px 12px 24px;
  background: rgba(255,255,255,.78);
}

.v27-friendly .product-result .price-empty-copy strong {
  display: block;
  color: var(--v27-ink-strong);
  font-family: "Fraunces", Georgia, serif;
  font-size: 1.35rem;
}

.v27-friendly .product-result .price-empty-copy p {
  margin: 5px 0 0;
  color: #5e6d64;
  line-height: 1.4;
}

.v27-friendly .product-result .price-action-buttons {
  display: grid;
  grid-template-columns: minmax(0,1.25fr) minmax(0,.75fr);
  gap: 10px;
}

.v27-friendly .product-result .price-action-buttons > * {
  min-height: 54px;
  border: 0;
  border-radius: 18px 18px 8px 18px;
  font-size: .98rem;
  font-weight: 900;
}

.v27-friendly .product-result .price-action-buttons [data-action="open-community-price"] {
  color: #573311;
  background: linear-gradient(135deg, #ffd56d, #ffb74f);
  box-shadow: 0 9px 18px rgba(208,128,31,.18);
}

.v27-friendly .product-result .price-action-buttons [data-action="open-community-price"]::before {
  content: "+ ";
}

.v27-friendly .product-result .alternative-empty-card {
  padding: 18px;
  border: 0;
  border-radius: 24px 24px 12px 24px;
  background: rgba(255,255,255,.78);
}

.v27-friendly .product-result .alternative-empty-card strong {
  font-family: "Fraunces", Georgia, serif;
  font-size: 1.35rem;
}

.v27-friendly .product-result .alternative-empty-card p {
  max-width: 38rem;
  color: #5a6a61;
  line-height: 1.4;
}

.v27-friendly .product-result .alternative-heading .text-button {
  border: 0;
  color: #4d3d78;
  background: #eee7ff;
  box-shadow: 0 7px 16px rgba(84,65,131,.11);
}

.v27-friendly .product-result .product-actions-panel {
  background: linear-gradient(145deg, #fff 0%, #eef9f2 55%, #fff3e8 100%) !important;
}

.v27-friendly .product-result .action-section-heading {
  margin-bottom: 14px;
}

.v27-friendly .product-result .product-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 10px;
}

.v27-friendly .product-result .product-actions > button {
  min-height: 56px;
  border: 0 !important;
  border-radius: 19px 19px 9px 19px !important;
  font-size: 1rem;
  font-weight: 900;
  box-shadow: 0 9px 20px rgba(38,68,51,.12) !important;
}

.v27-friendly .product-result .product-actions [data-action="save-current"] {
  color: #fff;
  background: linear-gradient(135deg, #237f58, #37a875) !important;
}

.v27-friendly .product-result .product-actions [data-action="save-current"]::before {
  content: "♡ ";
}

.v27-friendly .product-result .product-actions [data-action="add-current-to-list"] {
  color: #443469;
  background: linear-gradient(135deg, #e7ddff, #d7c9ff) !important;
}

.v27-friendly .product-result .product-actions [data-action="add-current-to-list"]::before {
  content: "+ ";
}

.v27-friendly .product-result .product-actions [data-action="share-current"] {
  grid-column: 1 / -1;
  color: #174d64;
  background: linear-gradient(135deg, #dff4ff, #c6ebff) !important;
}

.v27-friendly .product-result .product-actions [data-action="share-current"]::before {
  content: "↗ ";
}

.v27-friendly .product-result .product-actions-panel > [data-action="report-current"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 50px;
  margin-top: 10px;
  border: 0;
  border-radius: 18px 18px 8px 18px;
  color: #843a31;
  background: #ffe7e2;
  box-shadow: 0 8px 18px rgba(129,66,55,.09);
  font-size: .94rem;
  font-weight: 900;
  text-decoration: none;
}

.v27-friendly .product-result .product-actions-panel > [data-action="report-current"]::before {
  content: "! ";
}

.v27-friendly .product-result .share-prompt-card {
  display: grid;
  gap: 3px;
  margin-top: 14px;
  padding: 16px 18px;
  border: 0;
  border-radius: 20px 20px 9px 20px;
  color: #46584e;
  background: rgba(255,255,255,.72);
}

.v27-friendly .product-result .share-prompt-card strong {
  color: var(--v27-ink-strong);
  font-size: 1rem;
}

.v27-friendly .product-result .share-prompt-card span {
  line-height: 1.4;
}

/* Make pale secondary controls visibly intentional throughout product pages. */
.v27-friendly .product-result .quick-action-row [data-action="add-current-to-list"] {
  border: 0 !important;
  color: #443469;
  background: #e7ddff !important;
}

@media (max-width: 560px) {
  .v27-friendly .product-result .ingredient-intelligence-card {
    grid-template-columns: auto minmax(0,1fr) auto;
  }

  .v27-friendly .product-result .ingredient-intelligence-card .intel-badges {
    grid-column: 2 / 4;
  }

  .v27-friendly .product-result .price-action-buttons,
  .v27-friendly .product-result .product-actions {
    grid-template-columns: 1fr 1fr;
  }

  .v27-friendly .product-result .price-action-buttons > * {
    min-width: 0;
    padding-inline: 10px;
  }
}


/* BasketBalance v27.4 - supermarket-speed product decisions - 20 Jul 2026 */
.v27-friendly .result-card.product-card {
  align-items: center;
}
.v27-friendly .result-card .result-copy {
  display: grid;
  align-content: center;
  gap: 7px;
  min-width: 0;
}
.v27-friendly .result-card .result-copy h3,
.v27-friendly .result-card .result-brand,
.v27-friendly .result-card .result-reason {
  margin: 0;
}
.v27-friendly .result-score-row {
  display: flex;
  align-items: center;
  min-height: 38px;
}
.v27-friendly .result-score-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 36px;
  padding: 7px 12px;
  border-radius: 999px;
  font-weight: 900;
  line-height: 1;
  white-space: nowrap;
}
.v27-friendly .result-score-badge strong { font-size: 1.04rem; }
.v27-friendly .result-score-badge span { font-size: .86rem; }
.v27-friendly .result-score-badge.poor { color: #a43d32; background: #ffe7e1; }
.v27-friendly .result-score-badge.mixed { color: #765300; background: #fff0be; }
.v27-friendly .result-score-badge.good,
.v27-friendly .result-score-badge.great { color: #176b43; background: #ddf4e6; }
.v27-friendly .result-score-badge.data-limited { color: #59645d; background: #eeefe9; }
.v27-friendly .result-card .result-reason {
  color: #52645b;
  font-size: .9rem;
  font-weight: 750;
  line-height: 1.3;
}

.v27-friendly .product-result .simplified-product-hero {
  align-items: start;
}
.v27-friendly .product-result .simplified-product-hero .product-summary-copy {
  display: grid;
  gap: 10px;
}
.v27-friendly .product-result .simplified-product-hero .brand-line,
.v27-friendly .product-result .simplified-product-hero .product-type-pill {
  margin: 0;
}
.v27-friendly .limited-data-alert {
  margin: 0;
  padding: 10px 13px;
  border-radius: 14px;
  color: #705a22;
  background: #fff3cd;
  font-size: .9rem;
  font-weight: 800;
}
.v27-friendly .shopper-result-panel {
  display: grid;
  grid-template-columns: minmax(128px, .72fr) minmax(0, 1.28fr);
  gap: 14px;
  align-items: stretch;
  padding: 16px;
  border: 1px solid rgba(35, 75, 53, .12);
  border-radius: 24px 24px 12px 24px;
  background: linear-gradient(135deg, rgba(255,255,255,.94), rgba(244,249,246,.92));
  box-shadow: 0 12px 28px rgba(35, 67, 47, .08);
}
.v27-friendly .shopper-result-panel.poor { background: linear-gradient(135deg, #ffe8e2, #fff); }
.v27-friendly .shopper-result-panel.mixed { background: linear-gradient(135deg, #fff1c8, #fff); }
.v27-friendly .shopper-result-panel.good,
.v27-friendly .shopper-result-panel.great { background: linear-gradient(135deg, #def4e6, #fff); }
.v27-friendly .shopper-result-panel.data-limited { background: linear-gradient(135deg, #f1efe8, #fff); }
.v27-friendly .shopper-score-block {
  display: grid;
  align-content: center;
  gap: 7px;
  min-width: 0;
}
.v27-friendly .shopper-score-block > small {
  color: #617168;
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.v27-friendly .shopper-score-line {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 4px 7px;
  min-width: 0;
}
.v27-friendly .shopper-score-line strong {
  color: #173c2d;
  font-family: "Fraunces", Georgia, serif;
  font-size: clamp(2.25rem, 7vw, 3.25rem);
  line-height: .92;
}
.v27-friendly .shopper-score-line > span {
  color: #607067;
  font-size: 1.1rem;
  font-weight: 900;
}
.v27-friendly .shopper-score-line em {
  width: 100%;
  color: #314d40;
  font-size: 1rem;
  font-style: normal;
  font-weight: 900;
}
.v27-friendly .shopper-score-line.is-withheld strong {
  font-family: inherit;
  font-size: 1.35rem;
  line-height: 1.05;
}
.v27-friendly .shopper-score-line.is-withheld em { font-size: .86rem; }
.v27-friendly .shopper-highlight-list {
  display: grid;
  gap: 8px;
  align-content: center;
}
.v27-friendly .shopper-highlight {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: center;
  gap: 9px;
  min-height: 46px;
  padding: 8px 11px;
  border-radius: 16px 16px 8px 16px;
  color: #29463a;
  background: rgba(255,255,255,.76);
  font-size: .88rem;
  font-weight: 850;
  line-height: 1.25;
}
.v27-friendly .shopper-highlight-icon {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 12px;
  background: rgba(255,255,255,.86);
}
.v27-friendly .shopper-highlight-icon svg { width: 21px; height: 21px; }
.v27-friendly .shopper-highlight.red { color: #923b31; background: #ffe6e0; }
.v27-friendly .shopper-highlight.amber { color: #70510d; background: #fff0bd; }
.v27-friendly .shopper-highlight.good { color: #176b43; background: #def4e6; }
.v27-friendly .shopper-highlight.limited,
.v27-friendly .shopper-highlight.neutral { color: #59645d; background: #eef0eb; }

.v27-friendly .product-result .additive-inventory-panel {
  background: linear-gradient(145deg, #fff5da 0%, #fffaf0 100%);
}
.v27-friendly .product-result .additive-inventory-panel .section-heading {
  margin-bottom: 12px;
}
.v27-friendly .product-result .additive-inventory-panel .section-heading > p:last-child {
  margin: 4px 0 0;
  color: #5f6d64;
  font-size: .92rem;
}
.v27-friendly .product-result .ingredient-intelligence-panel .section-heading > p:last-child {
  margin-top: 2px;
  font-size: .86rem;
}
.v27-friendly .product-result .is-collapsed-food-intelligence .ingredient-intelligence-card {
  grid-template-columns: 42px minmax(0,1fr) 22px;
}
.v27-friendly .product-result .is-collapsed-food-intelligence .ingredient-intelligence-copy small {
  font-size: .82rem;
  line-height: 1.25;
}

.v27-friendly .product-result .price-action-buttons {
  grid-template-columns: repeat(2, minmax(0,1fr));
}
.v27-friendly .product-result .price-action-buttons > * {
  width: 100%;
  min-width: 0;
  white-space: normal;
  text-align: center;
}
.v27-friendly .product-result .price-watch-button {
  padding-inline: 12px;
}

.v27-friendly .product-report-row {
  display: flex;
  justify-content: center;
  padding: 4px 16px 18px;
}
.v27-friendly .product-report-row .text-button {
  min-height: 44px;
  padding: 10px 14px;
  border: 0;
  border-radius: 999px;
  color: #7a3d35;
  background: #ffe9e4;
  font-size: .88rem;
  font-weight: 850;
  text-decoration: none;
}

@media (max-width: 620px) {
  .v27-friendly .shopper-result-panel {
    grid-template-columns: 1fr;
  }
  .v27-friendly .shopper-score-line em { width: auto; }
  .v27-friendly .shopper-highlight-list {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 430px) {
  .v27-friendly .result-card.product-card {
    grid-template-columns: 112px minmax(0,1fr);
  }
  .v27-friendly .result-score-badge {
    min-height: 34px;
    padding: 6px 10px;
  }
  .v27-friendly .product-result .price-action-buttons {
    grid-template-columns: 1fr;
  }
}


/* BasketBalance v28 — Interaction and conversion polish */
.v28-interaction .field-error-message {
  display: block;
  margin: -6px 2px 12px;
  color: #a83f35;
  font-size: .88rem;
  font-weight: 750;
  line-height: 1.35;
}
.v28-interaction input[aria-invalid="true"],
.v28-interaction select[aria-invalid="true"],
.v28-interaction textarea[aria-invalid="true"],
.v28-interaction .has-field-error {
  border-color: #cf6255 !important;
  box-shadow: 0 0 0 4px rgba(207,98,85,.12) !important;
}
.v28-interaction .guest-device-button {
  min-height: 52px;
  border: 1.5px dashed rgba(28,105,64,.32);
  border-radius: 17px;
  background: #f3fbf5;
  color: #17643e;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}
.v28-interaction .guest-device-button:hover,
.v28-interaction .guest-device-button:focus-visible { background: #e8f7ec; transform: translateY(-1px); }
.v28-interaction .guest-save-banner {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 16px;
  padding: 20px;
  margin-bottom: 20px;
  border: 1px solid rgba(48,128,77,.18);
  border-radius: 25px;
  background: linear-gradient(135deg,#eaf8ed,#fff8dc);
  box-shadow: 0 16px 34px rgba(39,86,58,.09);
}
.v28-interaction .guest-save-banner div { display:grid; gap:4px; }
.v28-interaction .guest-save-banner strong { font-size:1.08rem; }
.v28-interaction .guest-save-banner span { color:#52665a; }

.v28-interaction .preference-wizard { overflow:hidden; }
.v28-interaction .preference-wizard-progress {
  display:flex; align-items:center; justify-content:center; gap:12px; margin-bottom:20px;
}
.v28-interaction .preference-wizard-progress span {
  width:34px; height:34px; display:grid; place-items:center; border-radius:50%;
  background:#edf1ec; color:#637268; font-weight:850; transition:.2s ease;
}
.v28-interaction .preference-wizard-progress span.is-active { background:#23804d; color:white; transform:scale(1.08); }
.v28-interaction .preference-wizard-progress span.is-complete { background:#d8f1df; color:#17643e; }
.v28-interaction .preference-step { animation:bb-card-rise .24s ease both; }
.v28-interaction .preference-step > h2 { margin:.2rem 0 .45rem; }
.v28-interaction .preference-step > p:not(.eyebrow):not(.source-note) { color:#586b60; margin-top:0; }
.v28-interaction .preference-choice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:18px; }
.v28-interaction .preference-choice {
  position:relative; min-height:88px; display:flex; align-items:center; gap:11px; padding:16px;
  border:1.5px solid rgba(39,98,62,.14); border-radius:21px; background:#fffdfa; cursor:pointer;
  box-shadow:0 10px 24px rgba(43,74,55,.06); transition:.18s ease;
}
.v28-interaction .preference-choice:nth-child(3n+1) { background:#fff4cf; }
.v28-interaction .preference-choice:nth-child(3n+2) { background:#eaf6ff; }
.v28-interaction .preference-choice:nth-child(3n+3) { background:#f0eaff; }
.v28-interaction .preference-choice input { position:absolute; opacity:0; pointer-events:none; }
.v28-interaction .preference-choice-mark { width:27px; height:27px; display:grid; place-items:center; flex:0 0 auto; border-radius:50%; background:rgba(255,255,255,.72); color:transparent; border:1px solid rgba(25,95,57,.16); }
.v28-interaction .preference-choice.is-selected { border-color:#27804d; box-shadow:0 0 0 4px rgba(39,128,77,.1),0 12px 28px rgba(43,74,55,.09); transform:translateY(-1px); }
.v28-interaction .preference-choice.is-selected .preference-choice-mark { background:#27804d; color:#fff; }
.v28-interaction .preference-summary-chips { display:flex; flex-wrap:wrap; gap:10px; margin:18px 0; }
.v28-interaction .preference-summary-chips span { padding:10px 14px; border-radius:999px; background:#e6f5ea; color:#17643e; font-weight:800; }
.v28-interaction .preference-wizard-actions { display:flex; gap:12px; margin-top:22px; }
.v28-interaction .preference-wizard-actions button { flex:1; min-height:54px; }

.v28-interaction .post-scan-actions {
  margin-top:18px; padding:16px; border-radius:22px;
  background:linear-gradient(135deg,#f5fbf6,#fff8d9 52%,#f1eaff);
  border:1px solid rgba(41,107,67,.12);
}
.v28-interaction .post-scan-actions .eyebrow { margin:0 0 10px; }
.v28-interaction .post-scan-actions .quick-action-row { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.v28-interaction .watch-action-button {
  min-height:52px; border:0; border-radius:17px; padding:0 14px; background:#ffd46d; color:#5d3e05; font:inherit; font-weight:850; cursor:pointer; box-shadow:0 10px 24px rgba(170,117,8,.12);
}
.v28-interaction .watch-action-button:disabled { opacity:.62; cursor:default; }

.v28-interaction .search-skeleton-list { display:grid; gap:14px; }
.v28-interaction .search-skeleton-card { display:grid; grid-template-columns:92px 1fr; gap:16px; padding:18px; min-height:142px; border-radius:25px; background:#fffdfa; border:1px solid rgba(34,87,54,.08); overflow:hidden; animation:bb-card-rise .25s ease both; }
.v28-interaction .skeleton-image, .v28-interaction .skeleton-copy i { position:relative; overflow:hidden; background:#e9eeea; border-radius:16px; }
.v28-interaction .skeleton-image { height:96px; }
.v28-interaction .skeleton-copy { display:grid; align-content:center; gap:12px; }
.v28-interaction .skeleton-copy i { display:block; height:17px; }
.v28-interaction .skeleton-copy i:nth-child(2) { width:62%; }
.v28-interaction .skeleton-copy i:nth-child(3) { width:42%; height:36px; border-radius:999px; }
.v28-interaction .skeleton-image::after, .v28-interaction .skeleton-copy i::after { content:""; position:absolute; inset:0; transform:translateX(-100%); background:linear-gradient(90deg,transparent,rgba(255,255,255,.72),transparent); animation:bb-skeleton 1.15s infinite; }
.v28-interaction .skeleton-delay-1 { animation-delay:.06s; } .v28-interaction .skeleton-delay-2 { animation-delay:.12s; }
@keyframes bb-skeleton { to { transform:translateX(100%); } }
@keyframes bb-card-rise { from { opacity:0; transform:translateY(9px); } to { opacity:1; transform:translateY(0); } }
.v28-interaction .result-card, .v28-interaction .product-hero-card, .v28-interaction .detail-panel { animation:bb-card-rise .24s ease both; }
.v28-interaction button:active { transform:translateY(1px) scale(.99); }
.v28-interaction .toast-progress { display:none !important; }

@media (max-width:640px) {
  .v28-interaction .guest-save-banner { grid-template-columns:1fr; }
  .v28-interaction .preference-choice-grid { grid-template-columns:1fr; }
  .v28-interaction .post-scan-actions .quick-action-row { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) {
  .v28-interaction *, .v28-interaction *::before, .v28-interaction *::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; transition-duration:.001ms !important; }
}
@media (max-width:640px) {
  .v28-interaction .post-scan-actions .quick-action-row { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .v28-interaction .post-scan-actions .watch-action-button { grid-column:1 / -1; }
}

/* BasketBalance v28.1 — scanner recovery and sitewide visual consistency */
.v28-sitewide {
  min-height: 100vh;
  background:
    radial-gradient(circle at 8% 5%, rgba(255, 221, 112, .34), transparent 30rem),
    radial-gradient(circle at 94% 24%, rgba(190, 229, 255, .38), transparent 28rem),
    radial-gradient(circle at 16% 82%, rgba(211, 196, 255, .26), transparent 26rem),
    #fbf7ee;
  color: #173c2a;
}
.v28-sitewide::before,
.v28-sitewide::after {
  content: "";
  position: fixed;
  z-index: -1;
  width: 150px;
  height: 150px;
  border-radius: 42% 58% 62% 38%;
  opacity: .34;
  filter: blur(1px);
  pointer-events: none;
}
.v28-sitewide::before { top: 18%; left: -72px; background: #ffd0c8; transform: rotate(24deg); }
.v28-sitewide::after { right: -64px; bottom: 14%; background: #ccefd8; transform: rotate(-18deg); }

.v28-sitewide .topbar {
  width: min(900px, calc(100% - 28px));
  padding: 20px 0 12px;
}
.v28-sitewide .topbar .brand {
  width: fit-content;
  max-width: 100%;
  padding: 11px 18px 11px 11px;
  border: 1px solid rgba(31, 91, 57, .12);
  border-radius: 25px 25px 13px 25px;
  background: rgba(255, 253, 248, .88);
  box-shadow: 0 14px 36px rgba(37, 66, 49, .11);
  backdrop-filter: blur(14px);
}
.v28-sitewide .topbar .brand-mark {
  width: 50px;
  height: 50px;
  border-radius: 18px 18px 10px 18px;
  box-shadow: 0 10px 22px rgba(34, 126, 75, .2);
}
.v28-sitewide .topbar .brand strong { font-size: 1.02rem; }
.v28-sitewide .topbar .brand small { color: #697b71; }

.v28-sitewide .legal-shell { padding-top: 12px; }
.v28-sitewide .legal-card {
  position: relative;
  isolation: isolate;
  border: 1px solid rgba(31, 91, 57, .08);
  background: rgba(255, 253, 248, .94);
  box-shadow: 0 24px 65px rgba(46, 68, 53, .13);
  transform: translateY(10px);
  opacity: 0;
  transition: opacity .32s ease, transform .32s ease;
}
.v28-sitewide.sitewide-ready .legal-card { transform: none; opacity: 1; }
.v28-sitewide .legal-card::after {
  content: "";
  position: absolute;
  z-index: -1;
  top: -46px;
  right: -32px;
  width: 150px;
  height: 150px;
  border-radius: 50%;
  border: 30px solid rgba(255, 208, 95, .18);
}
.v28-sitewide .legal-card > .eyebrow:first-child,
.v28-sitewide .guide-copy-page > .eyebrow:first-child {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 8px 13px;
  border-radius: 999px;
  background: #dcf3e4;
  color: #17633c;
  font-weight: 900;
  letter-spacing: .1em;
}
.v28-sitewide .legal-card > h1:first-of-type,
.v28-sitewide .guide-copy-page > h1:first-of-type {
  text-wrap: balance;
  color: #173c2a;
}
.v28-sitewide .legal-card > h1:first-of-type + p,
.v28-sitewide .guide-copy-page > h1:first-of-type + p {
  max-width: 760px;
  font-size: clamp(1.04rem, 2.3vw, 1.22rem);
  line-height: 1.7;
  color: #56695e;
}
.v28-sitewide .legal-card h2,
.v28-sitewide .guide-copy-page h2 {
  width: fit-content;
  max-width: 100%;
  padding: 10px 16px 11px 23px;
  border-radius: 18px 18px 8px 18px;
  background: #fff1c5;
}
.v28-sitewide .legal-card h2:nth-of-type(3n+2),
.v28-sitewide .guide-copy-page h2:nth-of-type(3n+2) { background: #e3f4ff; }
.v28-sitewide .legal-card h2:nth-of-type(3n),
.v28-sitewide .guide-copy-page h2:nth-of-type(3n) { background: #efe8ff; }
.v28-sitewide .legal-card h2::before,
.v28-sitewide .guide-copy-page h2::before { left: 9px; top: .43em; height: .58em; }
.v28-sitewide .legal-card h2 + p,
.v28-sitewide .guide-copy-page h2 + p {
  padding: 17px 18px;
  border-radius: 19px 19px 9px 19px;
  background: rgba(246, 250, 247, .88);
  border: 1px solid rgba(31, 91, 57, .08);
}
.v28-sitewide .legal-note {
  border: 1px solid rgba(157, 113, 20, .13);
  background: linear-gradient(135deg, #fff2bc, #fff9e5);
  box-shadow: 0 12px 26px rgba(126, 94, 28, .08);
}
.v28-sitewide .guide-cta-panel {
  background: linear-gradient(135deg, #ffd8d1 0%, #fff0b9 55%, #dcf3e4 100%);
  box-shadow: 0 20px 42px rgba(58, 75, 62, .12);
}
.v28-sitewide .guide-cta-panel .primary-button,
.v28-sitewide .legal-card .primary-button {
  min-height: 54px;
  padding: 14px 21px;
  border: 0;
  border-radius: 17px 17px 9px 17px;
  background: linear-gradient(135deg, #248653, #17643d);
  color: #fff;
  box-shadow: 0 13px 26px rgba(30, 110, 66, .22);
  text-decoration: none;
}
.v28-sitewide .guide-grid { gap: 13px; }
.v28-sitewide .guide-grid a {
  min-height: 82px;
  display: flex;
  align-items: center;
  border: 0;
  border-radius: 22px 22px 10px 22px;
  background: #fff1c5;
  box-shadow: 0 10px 24px rgba(49, 68, 54, .08);
}
.v28-sitewide .guide-grid a:nth-child(3n+2) { background: #e2f4ff; }
.v28-sitewide .guide-grid a:nth-child(3n) { background: #eee7ff; }
.v28-sitewide .guide-grid a:hover,
.v28-sitewide .guide-grid a:focus-visible { transform: translateY(-2px); box-shadow: 0 16px 30px rgba(49, 68, 54, .13); }

.v28-sitewide .contact-form,
.v28-sitewide .reset-form {
  padding: clamp(18px, 4vw, 28px);
  border-radius: 27px 27px 13px 27px;
  background: linear-gradient(145deg, rgba(229, 245, 255, .9), rgba(238, 232, 255, .78));
  box-shadow: inset 0 0 0 1px rgba(31, 91, 57, .07);
}
.v28-sitewide .contact-form input,
.v28-sitewide .contact-form select,
.v28-sitewide .contact-form textarea,
.v28-sitewide .reset-form input {
  min-height: 54px;
  border: 1.5px solid rgba(31, 91, 57, .16);
  border-radius: 17px;
  background: rgba(255,255,255,.9);
  font-size: 1rem;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.v28-sitewide .contact-form textarea { min-height: 150px; }
.v28-sitewide .contact-form input:focus,
.v28-sitewide .contact-form select:focus,
.v28-sitewide .contact-form textarea:focus,
.v28-sitewide .reset-form input:focus {
  border-color: #258452;
  box-shadow: 0 0 0 5px rgba(37, 132, 82, .12);
  transform: translateY(-1px);
}
.v28-sitewide .form-success {
  padding: 18px 20px;
  border: 1px solid rgba(28, 109, 65, .15);
  border-radius: 20px 20px 10px 20px;
  background: #ddf5e5;
  color: #165f39;
  font-weight: 800;
}

.v28-sitewide .site-footer {
  margin-bottom: 96px;
  background: linear-gradient(145deg, #173c2a, #214d37);
  box-shadow: 0 20px 48px rgba(23, 60, 42, .2);
}
.v28-sitewide .site-footer nav { gap: 8px 12px; }
.v28-sitewide .site-footer a {
  display: inline-flex;
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  text-decoration: none;
}

.sitewide-bottom-nav {
  position: fixed;
  z-index: 90;
  left: 50%;
  bottom: max(10px, env(safe-area-inset-bottom));
  display: none;
  grid-template-columns: repeat(4, 1fr);
  width: min(560px, calc(100% - 18px));
  padding: 7px;
  border: 1px solid rgba(31, 91, 57, .12);
  border-radius: 24px 24px 13px 24px;
  background: rgba(255, 253, 248, .93);
  box-shadow: 0 18px 48px rgba(38, 62, 47, .23);
  backdrop-filter: blur(18px);
  transform: translateX(-50%);
}
.sitewide-bottom-nav a {
  min-height: 54px;
  display: grid;
  place-items: center;
  gap: 2px;
  border-radius: 17px;
  color: #607067;
  text-decoration: none;
  font-size: .68rem;
  font-weight: 850;
}
.sitewide-bottom-nav svg { width: 24px; height: 24px; }
.sitewide-bottom-nav a.is-active { background: #e1f2e6; color: #17643d; }
.sitewide-bottom-nav .sitewide-scan-link {
  margin-top: -13px;
  min-height: 64px;
  color: #fff;
  background: linear-gradient(135deg, #ff7568, #f45e51);
  box-shadow: 0 12px 25px rgba(244, 94, 81, .25);
}

@media (max-width: 760px) {
  .v28-sitewide { padding-bottom: 94px; }
  .v28-sitewide .site-footer { margin-bottom: 20px; }
  .sitewide-bottom-nav { display: grid; }
  .v28-sitewide .topbar { width: calc(100% - 20px); }
  .v28-sitewide .topbar .brand { width: 100%; }
  .v28-sitewide .legal-card h2,
  .v28-sitewide .guide-copy-page h2 { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .v28-sitewide .legal-card { opacity: 1; transform: none; transition: none; }
}


/* BasketBalance v28.3 — secure member authentication and compact guide navigation */
.v28-sitewide.is-guide-page .topbar {
  width: min(820px, calc(100% - 22px));
  padding: 10px 0 6px;
}
.v28-sitewide.is-guide-page .topbar .brand {
  width: auto;
  padding: 8px 14px 8px 8px;
  border-radius: 20px 20px 11px 20px;
}
.v28-sitewide.is-guide-page .topbar .brand-mark {
  width: 42px;
  height: 42px;
  border-radius: 15px 15px 9px 15px;
}
.v28-sitewide.is-guide-page .topbar .brand strong { font-size: .96rem; }
.v28-sitewide.is-guide-page .topbar .brand small { font-size: .72rem; }
.v28-sitewide.is-guide-page .legal-shell {
  width: min(820px, calc(100% - 22px));
  padding-top: 6px;
}
.v28-sitewide.is-guide-page .legal-card {
  padding: clamp(18px, 4.6vw, 30px);
  border-radius: 30px 30px 15px 30px;
}
.v28-sitewide.is-guide-page .legal-card::after {
  top: -70px;
  right: -62px;
  width: 140px;
  height: 140px;
  border-width: 24px;
}
.v28-sitewide.is-guide-page .guide-copy-page > .eyebrow:first-child {
  min-height: 30px;
  margin-bottom: 14px;
  padding: 6px 11px;
  font-size: .72rem;
}
.v28-sitewide.is-guide-page .guide-copy-page > h1:first-of-type {
  max-width: 680px;
  margin: 0 0 14px;
  font-size: clamp(2.15rem, 8.4vw, 4.2rem);
  line-height: .98;
  letter-spacing: -.035em;
}
.v28-sitewide.is-guide-page .guide-copy-page > h1:first-of-type + p {
  margin: 0 0 15px;
  font-size: clamp(.98rem, 3.8vw, 1.12rem);
  line-height: 1.55;
}
.guide-quick-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 14px 0 16px;
}
.guide-quick-links a {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 8px 12px;
  border: 1px solid rgba(31, 91, 57, .13);
  border-radius: 999px;
  background: rgba(255,255,255,.82);
  color: #17643d;
  font-size: .82rem;
  font-weight: 850;
  text-decoration: none;
  box-shadow: 0 7px 18px rgba(42, 66, 50, .07);
}
.guide-quick-links a:nth-child(2) { background: #e2f4ff; }
.guide-quick-links a:nth-child(3) { background: #fff1c5; }
.v28-sitewide.is-guide-page .legal-note {
  margin: 14px 0 20px;
  padding: 14px 16px;
  border-radius: 19px 19px 10px 19px;
  font-size: .93rem;
  line-height: 1.5;
}
.v28-sitewide.is-guide-page .guide-copy-page h2 {
  padding: 9px 14px 10px 21px;
  border-radius: 16px 16px 8px 16px;
  font-size: clamp(1.25rem, 5vw, 1.7rem);
}
.v28-sitewide.is-guide-page .guide-copy-page h2 + p {
  padding: 14px 15px;
  border-radius: 17px 17px 9px 17px;
}
.v28-sitewide.is-guide-page .site-footer { margin-bottom: 76px; }

@media (max-width: 760px) {
  .v28-sitewide.is-guide-page { padding-bottom: 76px; }
  .v28-sitewide.is-guide-page .topbar .brand { width: 100%; }
  .v28-sitewide.is-guide-page .sitewide-bottom-nav {
    width: min(410px, calc(100% - 24px));
    bottom: max(7px, env(safe-area-inset-bottom));
    padding: 5px;
    gap: 3px;
    border-radius: 19px 19px 11px 19px;
  }
  .v28-sitewide.is-guide-page .sitewide-bottom-nav a {
    min-height: 46px;
    gap: 1px;
    border-radius: 14px;
    font-size: .62rem;
  }
  .v28-sitewide.is-guide-page .sitewide-bottom-nav svg {
    width: 20px;
    height: 20px;
  }
  .v28-sitewide.is-guide-page .sitewide-bottom-nav .sitewide-scan-link {
    margin-top: 0;
    min-height: 46px;
    color: #607067;
    background: transparent;
    box-shadow: none;
  }
  .v28-sitewide.is-guide-page .sitewide-bottom-nav a.is-active {
    color: #17643d;
    background: #dcf3e4;
    box-shadow: inset 0 0 0 1px rgba(31, 91, 57, .08);
  }
}

/* BasketBalance v28.5 — Shopping Confidence Update */
.v27-friendly .confidence-product-card,
.v27-friendly .confidence-history-card,
.v27-friendly .confidence-saved-card {
  overflow: hidden;
  border-width: 2px !important;
  position: relative;
}
.v27-friendly .confidence-product-card.avoid,
.v27-friendly .confidence-history-card.avoid,
.v27-friendly .confidence-saved-card.avoid {
  border-color: #b42318 !important;
  background: linear-gradient(145deg, #fff1ef 0%, #ffd8d3 100%) !important;
  box-shadow: 0 14px 30px rgba(180,35,24,.19) !important;
}
.v27-friendly .confidence-product-card.poor,
.v27-friendly .confidence-history-card.poor,
.v27-friendly .confidence-saved-card.poor {
  border-color: #d84c2f !important;
  background: linear-gradient(145deg, #fff5ed 0%, #ffe1d1 100%) !important;
}
.v27-friendly .confidence-product-card.mixed,
.v27-friendly .confidence-history-card.mixed,
.v27-friendly .confidence-saved-card.mixed {
  border-color: #d89b00 !important;
  background: linear-gradient(145deg, #fff9e8 0%, #ffefb8 100%) !important;
}
.v27-friendly .confidence-product-card.good,
.v27-friendly .confidence-product-card.great,
.v27-friendly .confidence-history-card.good,
.v27-friendly .confidence-history-card.great,
.v27-friendly .confidence-saved-card.good,
.v27-friendly .confidence-saved-card.great {
  border-color: #16845b !important;
  background: linear-gradient(145deg, #effcf5 0%, #d7f4e4 100%) !important;
}
.v27-friendly .confidence-product-card.data-limited,
.v27-friendly .confidence-history-card.data-limited,
.v27-friendly .confidence-saved-card.data-limited {
  border-color: #8a938d !important;
  background: linear-gradient(145deg, #f8f8f5 0%, #eceee9 100%) !important;
}
.v27-friendly .confidence-card-heading {
  width: 100%;
  min-height: 58px;
  padding: 13px 16px;
  display: grid;
  grid-template-columns: 34px minmax(0,1fr) auto;
  align-items: center;
  gap: 10px;
  color: #fff;
  text-transform: uppercase;
  letter-spacing: .035em;
}
.v27-friendly .confidence-card-heading.avoid { background: #a9150d; }
.v27-friendly .confidence-card-heading.poor { background: #c94727; }
.v27-friendly .confidence-card-heading.mixed { background: #c78d00; color: #251b00; }
.v27-friendly .confidence-card-heading.good,
.v27-friendly .confidence-card-heading.great { background: #137451; }
.v27-friendly .confidence-card-heading.data-limited { background: #66716b; }
.v27-friendly .confidence-card-heading strong { font-size: clamp(1rem,4.7vw,1.25rem); line-height: 1.05; }
.v27-friendly .confidence-icon {
  width: 31px;
  height: 31px;
  display: inline-grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(255,255,255,.22);
  font-weight: 950;
  font-size: 1.25rem;
}
.v27-friendly .confidence-card-score { font-size: 1.45rem; font-weight: 950; white-space: nowrap; }
.v27-friendly .confidence-card-score small { font-size: .72rem; font-weight: 800; }
.v27-friendly .confidence-card-body { display: grid; grid-template-columns: 104px minmax(0,1fr); gap: 14px; padding: 15px; align-items: center; }
.v27-friendly .confidence-product-card .result-image { width: 104px; min-height: 112px; }
.v27-friendly .confidence-product-card .result-copy h3 { font-size: 1.05rem; margin-bottom: 3px; }
.v27-friendly .confidence-reasons { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 2px; }
.v27-friendly .confidence-reasons span { background: rgba(255,255,255,.76); border: 1px solid rgba(30,35,31,.11); border-radius: 999px; padding: 6px 9px; font-size: .78rem; font-weight: 800; line-height: 1.15; }
.v27-friendly .shopping-confidence-recommendation {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 4px 0 8px;
  font-size: clamp(1.28rem,5vw,1.85rem);
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .025em;
}
.v27-friendly .shopping-confidence-recommendation.avoid { color: #9d160f; }
.v27-friendly .shopping-confidence-recommendation.poor { color: #b63b21; }
.v27-friendly .shopping-confidence-recommendation.mixed { color: #6b4d00; }
.v27-friendly .shopping-confidence-recommendation.good,
.v27-friendly .shopping-confidence-recommendation.great { color: #126d4b; }
.v27-friendly .shopping-confidence-recommendation.data-limited { color: #5b6660; }
.v27-friendly .shopper-result-panel.avoid { background: linear-gradient(135deg,#ffd6d0,#fff4f2) !important; border: 2px solid #b42318 !important; box-shadow: 0 16px 34px rgba(180,35,24,.18); }
.v27-friendly .shopper-result-panel.poor { background: linear-gradient(135deg,#ffe0d0,#fff7f2) !important; border: 2px solid #d84c2f !important; }
.v27-friendly .shopper-result-panel.mixed { background: linear-gradient(135deg,#ffefb8,#fffaf0) !important; border: 2px solid #d89b00 !important; }
.v27-friendly .shopper-result-panel.good,
.v27-friendly .shopper-result-panel.great { border: 2px solid #16845b !important; }
.v27-friendly .shopper-score-line { margin-top: 0; }
.v27-friendly .shopper-score-line strong { font-size: clamp(2.9rem,14vw,4.7rem) !important; line-height: .95; }
.v27-friendly .shopping-advice-line { margin: 12px 0 0; padding: 11px 13px; background: rgba(255,255,255,.76); border-radius: 14px; font-weight: 800; line-height: 1.35; }
.v27-friendly .card-status-chip { font-weight: 900 !important; gap: 5px; }
.v27-friendly .card-status-chip.red { color: #fff !important; background: #b42318 !important; border-color: #b42318 !important; }
.v27-friendly .card-status-chip.amber { color: #2a1c00 !important; background: #ffc94a !important; border-color: #d89b00 !important; }
.v27-friendly .card-status-chip.green { color: #fff !important; background: #16845b !important; border-color: #16845b !important; }
.v27-friendly .card-status-icon { font-weight: 950; }
.v27-friendly .mini-score.avoid { color: #fff !important; background: #991b13 !important; border-color: #991b13 !important; }
.v27-friendly .mini-score.poor { color: #fff !important; background: #c94727 !important; border-color: #c94727 !important; }
.v27-friendly .mini-score strong { font-size: 1rem; }
.v27-friendly .mini-score span { font-size: .72rem; }
.v27-friendly .history-confidence-strip {
  grid-column: 1 / -1;
  margin: -1px -1px 0;
  padding: 9px 13px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  text-transform: uppercase;
  letter-spacing: .025em;
}
.v27-friendly .confidence-history-card.avoid .history-confidence-strip { background:#a9150d; color:#fff; }
.v27-friendly .confidence-history-card.poor .history-confidence-strip { background:#c94727; color:#fff; }
.v27-friendly .confidence-history-card.mixed .history-confidence-strip { background:#ffc94a; color:#251b00; }
.v27-friendly .confidence-history-card.good .history-confidence-strip,
.v27-friendly .confidence-history-card.great .history-confidence-strip { background:#16845b; color:#fff; }
.v27-friendly .confidence-history-card.data-limited .history-confidence-strip { background:#66716b; color:#fff; }
.v27-friendly .history-confidence-strip strong { font-size:.82rem; font-weight:950; }
.v27-friendly .history-confidence-strip span { font-size:1rem; font-weight:950; }
.v27-friendly .history-confidence-strip small { font-size:.65rem; }
.v27-friendly .confidence-history-card { display:grid !important; grid-template-columns: 92px minmax(0,1fr) !important; padding:0 12px 12px !important; }
.v27-friendly .confidence-history-card .row-image { margin-top:12px; }
.v27-friendly .confidence-history-card .row-copy { padding-top:12px; }
.v27-friendly .unknown-barcode { font-size:.76rem !important; color:#57615b !important; word-break:break-all; }
@media (max-width: 420px) {
  .v27-friendly .confidence-card-body { grid-template-columns: 86px minmax(0,1fr); padding: 12px; gap: 11px; }
  .v27-friendly .confidence-product-card .result-image { width: 86px; min-height: 98px; }
  .v27-friendly .confidence-card-heading { padding: 11px 12px; grid-template-columns: 30px minmax(0,1fr) auto; }
  .v27-friendly .confidence-card-score { font-size: 1.18rem; }
}

/* BasketBalance v28.7 — Premium Card Correction
   Replaces the oversized traffic-light banners with calm, clear, compact cards. */
.v27-friendly {
  --bb-status-avoid: #b42318;
  --bb-status-poor: #d24b2a;
  --bb-status-mixed: #a96f00;
  --bb-status-good: #16734d;
  --bb-status-limited: #68736d;
  --bb-card-line: rgba(24, 58, 43, .11);
  --bb-card-shadow: 0 10px 26px rgba(34, 50, 42, .075);
  --bb-nav-clearance: calc(112px + env(safe-area-inset-bottom, 0px));
}
.v27-friendly .app-frame,
.v27-friendly main,
.v27-friendly .screen {
  padding-bottom: var(--bb-nav-clearance) !important;
}
.v27-friendly .global-app-home { padding-bottom: 6px !important; }
.v27-friendly .history-screen .screen-header,
.v27-friendly .search-screen .screen-header,
.v27-friendly .lists-screen .screen-header {
  min-height: 58px !important;
  margin: 0 0 10px !important;
  padding: 6px 4px !important;
}
.v27-friendly #historyPanel,
.v27-friendly #searchResults {
  display: grid;
  gap: 12px;
  padding: 2px 0 var(--bb-nav-clearance) !important;
}

/* Shared compact status tokens. */
.v27-friendly .status-dot {
  width: 9px;
  height: 9px;
  flex: 0 0 9px;
  border-radius: 999px;
  background: currentColor;
  box-shadow: 0 0 0 4px rgba(255,255,255,.38);
}
.v27-friendly .history-status-badge,
.v27-friendly .result-status-badge,
.v27-friendly .shopping-confidence-recommendation {
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  width: fit-content;
  min-height: 34px;
  margin: 0 !important;
  padding: 7px 11px;
  border-radius: 999px;
  font-family: "Plus Jakarta Sans", ui-sans-serif, system-ui, sans-serif !important;
  font-size: .78rem !important;
  font-weight: 900 !important;
  line-height: 1.05 !important;
  letter-spacing: .018em !important;
  text-transform: uppercase;
  white-space: nowrap;
}
.v27-friendly .history-status-badge.avoid,
.v27-friendly .result-status-badge.avoid,
.v27-friendly .shopping-confidence-recommendation.avoid { color: #fff !important; background: var(--bb-status-avoid) !important; }
.v27-friendly .history-status-badge.poor,
.v27-friendly .result-status-badge.poor,
.v27-friendly .shopping-confidence-recommendation.poor { color: #fff !important; background: var(--bb-status-poor) !important; }
.v27-friendly .history-status-badge.mixed,
.v27-friendly .result-status-badge.mixed,
.v27-friendly .shopping-confidence-recommendation.mixed { color: #3f2a00 !important; background: #ffd56a !important; }
.v27-friendly .history-status-badge.good,
.v27-friendly .history-status-badge.great,
.v27-friendly .result-status-badge.good,
.v27-friendly .result-status-badge.great,
.v27-friendly .shopping-confidence-recommendation.good,
.v27-friendly .shopping-confidence-recommendation.great { color: #fff !important; background: var(--bb-status-good) !important; }
.v27-friendly .history-status-badge.data-limited,
.v27-friendly .result-status-badge.data-limited,
.v27-friendly .shopping-confidence-recommendation.data-limited { color: #fff !important; background: var(--bb-status-limited) !important; }

/* History: premium white cards with a clear accent, no giant coloured banner. */
.v27-friendly .confidence-history-card {
  display: block !important;
  width: 100% !important;
  min-height: 0 !important;
  padding: 0 !important;
  overflow: hidden;
  border: 1px solid var(--bb-card-line) !important;
  border-left-width: 5px !important;
  border-radius: 24px !important;
  background: rgba(255,255,255,.94) !important;
  box-shadow: var(--bb-card-shadow) !important;
  transition: transform .18s ease, box-shadow .18s ease;
}
.v27-friendly .confidence-history-card:hover { transform: translateY(-1px); box-shadow: 0 14px 30px rgba(34,50,42,.1) !important; }
.v27-friendly .confidence-history-card.avoid { border-left-color: var(--bb-status-avoid) !important; background: linear-gradient(90deg,#fff4f2 0%,rgba(255,255,255,.97) 42%) !important; }
.v27-friendly .confidence-history-card.poor { border-left-color: var(--bb-status-poor) !important; background: linear-gradient(90deg,#fff7f2 0%,rgba(255,255,255,.97) 42%) !important; }
.v27-friendly .confidence-history-card.mixed { border-left-color: #e0a21b !important; background: linear-gradient(90deg,#fffaf0 0%,rgba(255,255,255,.97) 42%) !important; }
.v27-friendly .confidence-history-card.good,
.v27-friendly .confidence-history-card.great { border-left-color: var(--bb-status-good) !important; background: linear-gradient(90deg,#f3fbf6 0%,rgba(255,255,255,.97) 42%) !important; }
.v27-friendly .confidence-history-card.data-limited { border-left-color: #89938d !important; background: linear-gradient(90deg,#f6f7f5 0%,rgba(255,255,255,.97) 42%) !important; }
.v27-friendly .history-card-status {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px 5px;
}
.v27-friendly .history-score,
.v27-friendly .result-confidence-score {
  color: var(--v27-ink-strong);
  font-size: 1.42rem;
  font-weight: 950;
  line-height: 1;
  white-space: nowrap;
}
.v27-friendly .history-score small,
.v27-friendly .result-confidence-score small {
  color: #69756e;
  font-size: .68rem;
  font-weight: 850;
}
.v27-friendly .history-card-main {
  display: grid;
  grid-template-columns: 88px minmax(0,1fr);
  align-items: center;
  gap: 14px;
  padding: 7px 16px 16px;
}
.v27-friendly .confidence-history-card .row-image {
  width: 88px !important;
  height: 88px !important;
  min-height: 88px !important;
  margin: 0 !important;
  border: 1px solid rgba(40,68,54,.1) !important;
  border-radius: 18px !important;
  background: #f7f8f5 !important;
  box-shadow: none !important;
}
.v27-friendly .confidence-history-card .row-copy { min-width: 0; padding: 0 !important; }
.v27-friendly .confidence-history-card .row-copy h3 {
  margin: 0 0 3px !important;
  color: var(--v27-ink-strong) !important;
  font-size: clamp(1.08rem, 3.7vw, 1.28rem) !important;
  line-height: 1.14 !important;
}
.v27-friendly .history-brand {
  margin: 0 !important;
  color: #68746d !important;
  font-size: .88rem !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
}
.v27-friendly .unknown-barcode {
  margin: 5px 0 0 !important;
  color: #65716a !important;
  font-size: .75rem !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  word-break: break-all;
}
.v27-friendly .history-card-details {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 10px;
}
.v27-friendly .history-card-details .product-type-pill {
  min-height: 30px !important;
  padding: 5px 9px !important;
  font-size: .72rem !important;
  background: #f2f5f1 !important;
}
.v27-friendly .history-date {
  color: #738078;
  font-size: .76rem;
  font-weight: 750;
  white-space: nowrap;
}

/* Search results: same calm hierarchy as History. */
.v27-friendly .confidence-product-card {
  display: block !important;
  padding: 0 !important;
  overflow: hidden;
  border: 1px solid var(--bb-card-line) !important;
  border-left-width: 5px !important;
  border-radius: 24px !important;
  background: rgba(255,255,255,.96) !important;
  box-shadow: var(--bb-card-shadow) !important;
}
.v27-friendly .confidence-product-card.avoid { border-left-color: var(--bb-status-avoid) !important; background: linear-gradient(90deg,#fff5f3,#fff 45%) !important; }
.v27-friendly .confidence-product-card.poor { border-left-color: var(--bb-status-poor) !important; background: linear-gradient(90deg,#fff7f3,#fff 45%) !important; }
.v27-friendly .confidence-product-card.mixed { border-left-color: #e0a21b !important; background: linear-gradient(90deg,#fffaf0,#fff 45%) !important; }
.v27-friendly .confidence-product-card.good,
.v27-friendly .confidence-product-card.great { border-left-color: var(--bb-status-good) !important; background: linear-gradient(90deg,#f4fbf6,#fff 45%) !important; }
.v27-friendly .confidence-product-card.data-limited { border-left-color: #89938d !important; }
.v27-friendly .result-confidence-line {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 15px 3px;
}
.v27-friendly .confidence-card-body {
  display: grid !important;
  grid-template-columns: 92px minmax(0,1fr) !important;
  gap: 14px !important;
  padding: 9px 15px 15px !important;
}
.v27-friendly .confidence-product-card .result-image {
  width: 92px !important;
  height: 92px !important;
  min-height: 92px !important;
  border-radius: 18px !important;
}
.v27-friendly .confidence-reasons { margin: 9px 0 2px !important; }
.v27-friendly .confidence-reasons span {
  padding: 5px 8px !important;
  border: 0 !important;
  background: #f2f5f1 !important;
  font-size: .73rem !important;
}

/* Product page: clear recommendation, but no billboard-sized warning panel. */
.v27-friendly .shopper-result-panel {
  position: relative;
  margin-top: 14px !important;
  padding: 18px !important;
  border: 1px solid var(--bb-card-line) !important;
  border-left-width: 6px !important;
  border-radius: 24px !important;
  background: rgba(255,255,255,.96) !important;
  box-shadow: var(--bb-card-shadow) !important;
}
.v27-friendly .shopper-result-panel.avoid { border-left-color: var(--bb-status-avoid) !important; background: linear-gradient(105deg,#fff3f1,#fff 48%) !important; }
.v27-friendly .shopper-result-panel.poor { border-left-color: var(--bb-status-poor) !important; background: linear-gradient(105deg,#fff6f1,#fff 48%) !important; }
.v27-friendly .shopper-result-panel.mixed { border-left-color: #e0a21b !important; background: linear-gradient(105deg,#fff9ea,#fff 48%) !important; }
.v27-friendly .shopper-result-panel.good,
.v27-friendly .shopper-result-panel.great { border-left-color: var(--bb-status-good) !important; background: linear-gradient(105deg,#f2fbf5,#fff 48%) !important; }
.v27-friendly .shopper-result-panel.data-limited { border-left-color: #89938d !important; }
.v27-friendly .shopper-score-block > small {
  display: block;
  margin-bottom: 10px;
  color: #68746d;
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.v27-friendly .shopping-confidence-topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}
.v27-friendly .shopper-score-line { display: flex; align-items: baseline; gap: 4px; margin: 0 !important; }
.v27-friendly .shopper-score-line strong {
  color: var(--v27-ink-strong) !important;
  font-size: clamp(2.6rem, 10vw, 3.7rem) !important;
  line-height: .9 !important;
}
.v27-friendly .shopper-score-line span {
  color: #68746d !important;
  font-size: 1rem !important;
  font-weight: 900 !important;
}
.v27-friendly .shopper-highlight-list { margin-top: 16px !important; gap: 8px !important; }
.v27-friendly .shopper-highlight {
  min-height: 48px !important;
  padding: 10px 12px !important;
  border: 1px solid rgba(35,62,49,.08) !important;
  border-radius: 15px !important;
  background: rgba(248,249,246,.94) !important;
  font-size: .88rem !important;
}
.v27-friendly .shopping-advice-line {
  margin: 12px 0 0 !important;
  padding: 0 !important;
  color: #5f6b64 !important;
  background: transparent !important;
  font-size: .86rem !important;
  font-weight: 700 !important;
  line-height: 1.45 !important;
}

/* Better alternatives: decision first, technical confidence secondary. */
.v27-friendly .alternative-better-label {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 6px 10px;
  border-radius: 999px;
  color: #12633f;
  background: #e4f4e9;
  font-size: .73rem;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .02em;
}
.v27-friendly .alternative-score-row { background: #f1f6f2 !important; border: 1px solid rgba(19,83,54,.08) !important; }
.v27-friendly .alternative-data-confidence { margin-top: 5px !important; color: #6d7971 !important; font-size: .75rem !important; }

/* Keep the floating navigation compact and leave content visible above it. */
.v27-friendly .bottom-nav {
  width: min(560px, calc(100% - 22px)) !important;
  padding: 6px !important;
  border-radius: 24px !important;
}
.v27-friendly .bottom-nav button { min-height: 52px !important; }
.v27-friendly .bottom-nav .nav-camera { min-height: 62px !important; margin-top: -13px !important; }

@media (max-width: 480px) {
  .v27-friendly .history-card-status { padding: 12px 12px 4px; }
  .v27-friendly .history-card-main { grid-template-columns: 78px minmax(0,1fr); gap: 12px; padding: 7px 12px 13px; }
  .v27-friendly .confidence-history-card .row-image { width: 78px !important; height: 78px !important; min-height: 78px !important; border-radius: 16px !important; }
  .v27-friendly .history-score,
  .v27-friendly .result-confidence-score { font-size: 1.28rem; }
  .v27-friendly .history-status-badge,
  .v27-friendly .result-status-badge,
  .v27-friendly .shopping-confidence-recommendation { min-height: 32px; padding: 6px 9px; font-size: .7rem !important; }
  .v27-friendly .history-card-details { align-items: flex-end; }
  .v27-friendly .confidence-card-body { grid-template-columns: 80px minmax(0,1fr) !important; padding: 8px 12px 13px !important; gap: 12px !important; }
  .v27-friendly .confidence-product-card .result-image { width: 80px !important; height: 80px !important; min-height: 80px !important; }
  .v27-friendly .result-confidence-line { padding: 12px 12px 3px; }
  .v27-friendly .shopping-confidence-topline { align-items: flex-end; }
  .v27-friendly .shopper-result-panel { padding: 15px !important; }
}

@media (max-width: 360px) {
  .v27-friendly .history-card-main { grid-template-columns: 68px minmax(0,1fr); }
  .v27-friendly .confidence-history-card .row-image { width: 68px !important; height: 68px !important; min-height: 68px !important; }
  .v27-friendly .history-status-badge,
  .v27-friendly .result-status-badge { max-width: 70%; overflow: hidden; text-overflow: ellipsis; }
}


/* BasketBalance v28.8 — Saved Lists Card Reset
   The Lists page must stay neutral and compact. Status is communicated by
   a restrained rail and badge, never by colouring the whole card. */
.v27-friendly .lists-screen .list-section {
  margin-top: 18px !important;
}
.v27-friendly .lists-screen .list-section > h2 {
  margin: 0 0 12px !important;
  font-size: clamp(1.45rem, 5vw, 2rem) !important;
  line-height: 1.05 !important;
}
.v27-friendly .lists-screen .confidence-saved-card {
  display: grid !important;
  grid-template-columns: 82px minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 14px !important;
  width: 100% !important;
  min-height: 112px !important;
  margin: 0 0 10px !important;
  padding: 14px !important;
  overflow: hidden !important;
  border: 1px solid rgba(31, 68, 50, .13) !important;
  border-left: 4px solid #a5aea8 !important;
  border-radius: 20px !important;
  background: rgba(255, 255, 255, .96) !important;
  box-shadow: 0 8px 22px rgba(32, 51, 42, .065) !important;
}
.v27-friendly .lists-screen .confidence-saved-card:hover {
  transform: translateY(-1px) !important;
  border-color: rgba(31, 68, 50, .2) !important;
  box-shadow: 0 12px 26px rgba(32, 51, 42, .09) !important;
}
.v27-friendly .lists-screen .confidence-saved-card.avoid { border-left-color: #b42318 !important; background: rgba(255,255,255,.97) !important; }
.v27-friendly .lists-screen .confidence-saved-card.poor { border-left-color: #d14a2a !important; background: rgba(255,255,255,.97) !important; }
.v27-friendly .lists-screen .confidence-saved-card.mixed { border-left-color: #d39a18 !important; background: rgba(255,255,255,.97) !important; }
.v27-friendly .lists-screen .confidence-saved-card.good,
.v27-friendly .lists-screen .confidence-saved-card.great { border-left-color: #16845b !important; background: rgba(255,255,255,.97) !important; }
.v27-friendly .lists-screen .confidence-saved-card.data-limited { border-left-color: #87918b !important; background: rgba(255,255,255,.97) !important; }

.v27-friendly .lists-screen .confidence-saved-card .product-card-image,
.v27-friendly .lists-screen .confidence-saved-card .row-image {
  width: 82px !important;
  height: 82px !important;
  min-height: 82px !important;
  margin: 0 !important;
  padding: 4px !important;
  border: 1px solid rgba(31, 68, 50, .1) !important;
  border-radius: 16px !important;
  background: #f7f8f5 !important;
  box-shadow: none !important;
}
.v27-friendly .lists-screen .confidence-saved-card .row-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  border-radius: 12px !important;
}
.v27-friendly .lists-screen .confidence-saved-card .row-copy {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  min-width: 0 !important;
  gap: 3px !important;
  padding: 0 !important;
}
.v27-friendly .lists-screen .confidence-saved-card .row-copy h3 {
  display: -webkit-box !important;
  margin: 0 !important;
  overflow: hidden !important;
  color: var(--v27-ink-strong) !important;
  font-size: clamp(1.04rem, 3.8vw, 1.24rem) !important;
  font-weight: 850 !important;
  line-height: 1.14 !important;
  letter-spacing: -.018em !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
}
.v27-friendly .lists-screen .confidence-saved-card .row-copy > p {
  margin: 0 0 5px !important;
  overflow: hidden !important;
  color: #6b7770 !important;
  font-size: .86rem !important;
  font-weight: 750 !important;
  line-height: 1.2 !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}
.v27-friendly .lists-screen .confidence-saved-card .product-card-meta {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 6px !important;
  margin: 1px 0 0 !important;
}
.v27-friendly .lists-screen .confidence-saved-card .product-type-pill,
.v27-friendly .lists-screen .confidence-saved-card .card-status-chip,
.v27-friendly .lists-screen .confidence-saved-card .mini-score {
  min-height: 27px !important;
  padding: 4px 8px !important;
  border-radius: 999px !important;
  font-size: .68rem !important;
  line-height: 1 !important;
}
.v27-friendly .lists-screen .confidence-saved-card .card-status-icon {
  display: none !important;
}
.v27-friendly .lists-screen .confidence-saved-card .card-status-chip {
  gap: 0 !important;
  letter-spacing: 0 !important;
}
.v27-friendly .lists-screen .confidence-saved-card .mini-score strong {
  font-size: .82rem !important;
}
.v27-friendly .lists-screen .confidence-saved-card .mini-score span {
  font-size: .62rem !important;
}
.v27-friendly .lists-screen .confidence-saved-card .product-card-footer,
.v27-friendly .lists-screen .confidence-saved-card .row-actions {
  display: flex !important;
  justify-content: flex-start !important;
  margin: 3px 0 0 !important;
}
.v27-friendly .lists-screen .confidence-saved-card [data-remove-saved] {
  width: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 3px 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: #69756e !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: .72rem !important;
  font-weight: 800 !important;
  line-height: 1.1 !important;
  text-decoration: underline !important;
  text-decoration-color: rgba(105,117,110,.4) !important;
  text-underline-offset: 3px !important;
}
.v27-friendly .lists-screen .confidence-saved-card [data-remove-saved]:hover {
  color: #9a2a22 !important;
  text-decoration-color: currentColor !important;
}

/* Keep the fixed navigation from visually crowding the last saved card. */
.v27-friendly .lists-screen #listsPanel {
  padding-bottom: calc(var(--bb-nav-clearance) + 24px) !important;
}

@media (max-width: 420px) {
  .v27-friendly .lists-screen .confidence-saved-card {
    grid-template-columns: 72px minmax(0, 1fr) !important;
    gap: 11px !important;
    min-height: 102px !important;
    padding: 12px !important;
    border-radius: 18px !important;
  }
  .v27-friendly .lists-screen .confidence-saved-card .product-card-image,
  .v27-friendly .lists-screen .confidence-saved-card .row-image {
    width: 72px !important;
    height: 72px !important;
    min-height: 72px !important;
    border-radius: 14px !important;
  }
  .v27-friendly .lists-screen .confidence-saved-card .row-copy h3 {
    font-size: 1rem !important;
  }
  .v27-friendly .lists-screen .confidence-saved-card .product-type-pill,
  .v27-friendly .lists-screen .confidence-saved-card .card-status-chip,
  .v27-friendly .lists-screen .confidence-saved-card .mini-score {
    min-height: 25px !important;
    padding: 4px 7px !important;
    font-size: .64rem !important;
  }
}

/* BasketBalance v28.9 — Account State and Typography Refinement
   Use the display serif only for brand/marketing moments. Product and app UI
   typography uses Plus Jakarta Sans for a cleaner, more premium interface. */
.v27-friendly {
  --bb-ui-font: "Plus Jakarta Sans", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* App navigation and screen headings */
.v27-friendly .screen-header,
.v27-friendly .screen-header > span,
.v27-friendly .lists-screen .list-section > h2,
.v27-friendly .lists-screen .screen-header,
.v27-friendly .history-screen .screen-header,
.v27-friendly .search-screen .screen-header,
.v27-friendly .product-screen .screen-header,
.v27-friendly .preferences-screen .screen-header {
  font-family: var(--bb-ui-font) !important;
  font-weight: 800 !important;
  letter-spacing: -.025em !important;
}

/* Product names and brands should read like a modern shopping app, not an editorial poster. */
.v27-friendly .confidence-saved-card .row-copy h3,
.v27-friendly .confidence-history-card .row-copy h3,
.v27-friendly .confidence-product-card h3,
.v27-friendly .product-result h1,
.v27-friendly .product-result .product-title,
.v27-friendly .list-mini-product strong,
.v27-friendly .list-card h3 {
  font-family: var(--bb-ui-font) !important;
  font-weight: 800 !important;
  letter-spacing: -.025em !important;
}
.v27-friendly .confidence-saved-card .row-copy > p,
.v27-friendly .confidence-history-card .history-brand,
.v27-friendly .confidence-product-card .result-brand {
  font-family: var(--bb-ui-font) !important;
  font-weight: 650 !important;
  letter-spacing: -.01em !important;
}

/* Balanced metadata pills: identical height, centred copy and calmer weight. */
.v27-friendly .lists-screen .confidence-saved-card .product-card-meta {
  align-items: center !important;
  row-gap: 7px !important;
}
.v27-friendly .lists-screen .confidence-saved-card .product-type-pill,
.v27-friendly .lists-screen .confidence-saved-card .card-status-chip,
.v27-friendly .lists-screen .confidence-saved-card .mini-score {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 30px !important;
  min-height: 30px !important;
  padding: 0 10px !important;
  font-family: var(--bb-ui-font) !important;
  font-size: .69rem !important;
  font-weight: 750 !important;
  line-height: 1 !important;
  text-align: center !important;
  vertical-align: middle !important;
}
.v27-friendly .lists-screen .confidence-saved-card .card-status-chip {
  min-width: 104px !important;
  white-space: nowrap !important;
}
.v27-friendly .lists-screen .confidence-saved-card .mini-score {
  min-width: 66px !important;
}
.v27-friendly .lists-screen .confidence-saved-card .mini-score strong,
.v27-friendly .lists-screen .confidence-saved-card .mini-score span {
  display: inline-block !important;
  line-height: 1 !important;
}

/* Signed-in homepage state: never show a misleading Sign in action. */
.v27-friendly.is-signed-in .v27-account-row {
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: center !important;
  padding: 12px 14px !important;
  border: 1px solid rgba(31, 113, 75, .13) !important;
  border-radius: 16px !important;
  background: #f3faf5 !important;
}
.v27-friendly.is-signed-in .v27-account-row > span {
  overflow: hidden !important;
  color: #315f49 !important;
  font-family: var(--bb-ui-font) !important;
  font-size: .84rem !important;
  font-weight: 700 !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}
.v27-friendly.is-signed-in .home-account-actions {
  display: block !important;
  width: auto !important;
}
.v27-friendly.is-signed-in .home-account-actions .home-signin-action.is-sign-out {
  width: auto !important;
  min-height: 38px !important;
  padding: 8px 12px !important;
  border: 1px solid rgba(31, 113, 75, .18) !important;
  border-radius: 12px !important;
  color: #1e6848 !important;
  background: #fff !important;
  font-size: .78rem !important;
  font-weight: 750 !important;
}

@media (max-width: 420px) {
  .v27-friendly .lists-screen .confidence-saved-card .product-type-pill,
  .v27-friendly .lists-screen .confidence-saved-card .card-status-chip,
  .v27-friendly .lists-screen .confidence-saved-card .mini-score {
    height: 28px !important;
    min-height: 28px !important;
    padding: 0 8px !important;
    font-size: .64rem !important;
  }
  .v27-friendly .lists-screen .confidence-saved-card .card-status-chip {
    min-width: 96px !important;
  }
  .v27-friendly.is-signed-in .v27-account-row {
    grid-template-columns: minmax(0, 1fr) auto !important;
  }
  .v27-friendly.is-signed-in .v27-account-row > span {
    font-size: .76rem !important;
  }
}

/* BasketBalance v29.0 — Unified App Cards, Lists Integrity and Mobile Layout
   Consumer app screens use a restrained sans-serif system. Serif remains for
   the BasketBalance wordmark and selected marketing headlines only. */
.v27-friendly {
  --bb-v29-font: "Plus Jakarta Sans", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --bb-v29-line: rgba(25, 57, 43, .12);
  --bb-v29-shadow: 0 8px 24px rgba(31, 49, 40, .07);
  --bb-v29-surface: rgba(255, 255, 255, .97);
}

/* Safe-area and fixed navigation clearance. */
.v27-friendly .history-screen,
.v27-friendly .lists-screen,
.v27-friendly .search-screen,
.v27-friendly .product-screen,
.v27-friendly .alerts-screen,
.v27-friendly .profile-screen {
  padding-top: max(14px, env(safe-area-inset-top, 0px)) !important;
  padding-bottom: calc(var(--bb-nav-clearance) + 34px) !important;
}
.v27-friendly #listsPanel,
.v27-friendly #watchPanel,
.v27-friendly .product-result {
  padding-bottom: calc(var(--bb-nav-clearance) + 42px) !important;
}

/* A signed-in member must never see another account acquisition panel. */
.v27-friendly.is-signed-in .alerts-screen > .early-access-card {
  display: none !important;
}

/* App typography: no editorial serif inside functional product interfaces. */
.v27-friendly .alerts-screen h2,
.v27-friendly .alerts-screen h3,
.v27-friendly .watch-product-card h3,
.v27-friendly .watch-product-card p,
.v27-friendly .lists-screen h2,
.v27-friendly .lists-screen h3,
.v27-friendly .lists-screen p,
.v27-friendly .list-mini-product,
.v27-friendly .product-result h1,
.v27-friendly .product-result h2,
.v27-friendly .product-result h3,
.v27-friendly .product-result p,
.v27-friendly .product-result button,
.v27-friendly .compact-recommendation {
  font-family: var(--bb-v29-font) !important;
}

/* One compact recommendation token combines verdict and score. */
.v27-friendly .compact-recommendation {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  max-width: 100%;
  padding: 5px 10px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -.01em;
  text-align: center;
  white-space: nowrap;
}
.v27-friendly .compact-recommendation strong {
  font-size: .78rem;
  font-weight: 850;
  line-height: 1;
}
.v27-friendly .compact-recommendation small {
  font-size: .58rem;
  font-weight: 800;
}
.v27-friendly .compact-recommendation.great,
.v27-friendly .compact-recommendation.good {
  color: #126846;
  border-color: rgba(22, 115, 77, .12);
  background: #e8f5ec;
}
.v27-friendly .compact-recommendation.mixed {
  color: #684600;
  border-color: rgba(211, 154, 24, .18);
  background: #fff2cc;
}
.v27-friendly .compact-recommendation.poor {
  color: #a63b24;
  border-color: rgba(210, 75, 42, .15);
  background: #fff0ea;
}
.v27-friendly .compact-recommendation.avoid {
  color: #9e2118;
  border-color: rgba(180, 35, 24, .14);
  background: #fde9e6;
}
.v27-friendly .compact-recommendation.data-limited {
  color: #59655e;
  border-color: rgba(89, 101, 94, .12);
  background: #f0f2ef;
}

/* Saved products — stable two-column grid, quiet status rail, no pill clutter. */
.v27-friendly .lists-screen .confidence-saved-card {
  display: block !important;
  min-height: 0 !important;
  margin: 0 0 12px !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 1px solid var(--bb-v29-line) !important;
  border-left: 3px solid #8c9991 !important;
  border-radius: 20px !important;
  background: var(--bb-v29-surface) !important;
  box-shadow: var(--bb-v29-shadow) !important;
}
.v27-friendly .lists-screen .confidence-saved-card.great,
.v27-friendly .lists-screen .confidence-saved-card.good { border-left-color: #17845b !important; }
.v27-friendly .lists-screen .confidence-saved-card.mixed { border-left-color: #d39a18 !important; }
.v27-friendly .lists-screen .confidence-saved-card.poor { border-left-color: #d24b2a !important; }
.v27-friendly .lists-screen .confidence-saved-card.avoid { border-left-color: #b42318 !important; }
.v27-friendly .lists-screen .saved-product-open {
  display: grid !important;
  grid-template-columns: 88px minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 14px !important;
  width: 100% !important;
  padding: 14px 14px 8px !important;
  border: 0 !important;
  color: inherit !important;
  background: transparent !important;
  text-align: left !important;
  cursor: pointer;
}
.v27-friendly .lists-screen .confidence-saved-card .row-image {
  width: 88px !important;
  height: 88px !important;
  min-height: 88px !important;
  margin: 0 !important;
  padding: 4px !important;
  border: 1px solid rgba(31, 68, 50, .1) !important;
  border-radius: 16px !important;
  background: #f7f8f5 !important;
}
.v27-friendly .lists-screen .confidence-saved-card .row-copy {
  display: block !important;
  min-width: 0 !important;
  padding: 0 !important;
}
.v27-friendly .lists-screen .confidence-saved-card .row-copy h3 {
  margin: 0 0 3px !important;
  color: #123f2d !important;
  font-size: clamp(1.02rem, 4vw, 1.22rem) !important;
  font-weight: 800 !important;
  line-height: 1.16 !important;
  letter-spacing: -.025em !important;
}
.v27-friendly .lists-screen .confidence-saved-card .row-copy > p {
  margin: 0 0 9px !important;
  color: #6b7770 !important;
  font-size: .84rem !important;
  font-weight: 650 !important;
  line-height: 1.2 !important;
}
.v27-friendly .lists-screen .saved-card-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
}
.v27-friendly .lists-screen .saved-card-meta .product-type-pill {
  order: 2;
  min-height: 30px !important;
  padding: 5px 9px !important;
  border: 0 !important;
  background: #f3f4ef !important;
  font-family: var(--bb-v29-font) !important;
  font-size: .69rem !important;
  font-weight: 700 !important;
}
.v27-friendly .lists-screen .saved-remove-button {
  width: auto !important;
  margin: 0 0 10px 116px !important;
  padding: 3px 0 !important;
  border: 0 !important;
  color: #758078 !important;
  background: transparent !important;
  font-family: var(--bb-v29-font) !important;
  font-size: .72rem !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  cursor: pointer;
}
.v27-friendly .lists-screen .saved-remove-button:hover { color: #9e2118 !important; }

/* Shopping lists — unique counts, clear controls and compact product rows. */
.v27-friendly .shopping-list-card {
  padding: 18px !important;
  border: 1px solid var(--bb-v29-line) !important;
  border-radius: 22px !important;
  background: var(--bb-v29-surface) !important;
  box-shadow: var(--bb-v29-shadow) !important;
}
.v27-friendly .shopping-list-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 12px;
}
.v27-friendly .shopping-list-heading h3 {
  margin: 0 0 4px !important;
  font-size: 1.12rem !important;
  font-weight: 800 !important;
  letter-spacing: -.02em !important;
}
.v27-friendly .shopping-list-heading p {
  margin: 0 !important;
  color: #768078 !important;
  font-size: .82rem !important;
}
.v27-friendly .shopping-list-actions {
  display: flex;
  gap: 9px;
  flex: 0 0 auto;
}
.v27-friendly .shopping-list-actions button {
  padding: 2px 0;
  border: 0;
  color: #587064;
  background: transparent;
  font-family: var(--bb-v29-font);
  font-size: .7rem;
  font-weight: 750;
  cursor: pointer;
}
.v27-friendly .shopping-list-actions button:last-child { color: #9c3b31; }
.v27-friendly .list-mini-products { display: grid; gap: 9px; }
.v27-friendly .list-mini-product {
  display: grid !important;
  grid-template-columns: 64px minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 12px !important;
  width: 100% !important;
  padding: 9px !important;
  border: 1px solid rgba(28, 58, 44, .1) !important;
  border-radius: 16px !important;
  color: inherit !important;
  background: #fbfcfa !important;
  text-align: left !important;
}
.v27-friendly .list-mini-image {
  width: 64px !important;
  height: 64px !important;
  border-radius: 13px !important;
}
.v27-friendly .list-mini-copy { min-width: 0; }
.v27-friendly .list-mini-copy > strong {
  display: block;
  margin: 0 0 2px;
  overflow: hidden;
  color: #173f30;
  font-size: .92rem;
  font-weight: 800;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v27-friendly .list-mini-copy > small {
  display: block;
  margin-bottom: 6px;
  overflow: hidden;
  color: #748078;
  font-size: .72rem;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v27-friendly .list-mini-copy .compact-recommendation {
  min-height: 25px;
  padding: 4px 8px;
  font-size: .64rem;
}
.v27-friendly .empty-list-copy { margin: 0 !important; color: #78837c !important; font-size: .82rem !important; }

/* Price watch — same restrained card system as Lists. */
.v27-friendly .alerts-screen .screen-header,
.v27-friendly .alerts-screen .screen-header > span {
  font-family: var(--bb-v29-font) !important;
  font-weight: 800 !important;
  letter-spacing: -.025em !important;
}
.v27-friendly .price-alerts-section,
.v27-friendly .watch-products-section { margin-top: 18px !important; }
.v27-friendly .price-alerts-section h2,
.v27-friendly .watch-products-section h2 {
  margin: 4px 0 14px !important;
  font-size: clamp(1.45rem, 5vw, 2rem) !important;
  font-weight: 800 !important;
  line-height: 1.08 !important;
  letter-spacing: -.03em !important;
}
.v27-friendly .watch-product-list { display: grid; gap: 12px; }
.v27-friendly .watch-product-card {
  overflow: hidden;
  border: 1px solid var(--bb-v29-line);
  border-left: 3px solid #8c9991;
  border-radius: 20px;
  background: var(--bb-v29-surface);
  box-shadow: var(--bb-v29-shadow);
}
.v27-friendly .watch-product-card.great,
.v27-friendly .watch-product-card.good { border-left-color: #17845b; }
.v27-friendly .watch-product-card.mixed { border-left-color: #d39a18; }
.v27-friendly .watch-product-card.poor { border-left-color: #d24b2a; }
.v27-friendly .watch-product-card.avoid { border-left-color: #b42318; }
.v27-friendly .watch-product-open {
  display: grid !important;
  grid-template-columns: 88px minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 14px !important;
  width: 100% !important;
  padding: 14px 14px 8px !important;
  border: 0 !important;
  color: inherit !important;
  background: transparent !important;
  text-align: left !important;
}
.v27-friendly .watch-product-card .row-image {
  width: 88px !important;
  height: 88px !important;
  min-height: 88px !important;
  margin: 0 !important;
  padding: 4px !important;
  border: 1px solid rgba(31, 68, 50, .1) !important;
  border-radius: 16px !important;
  background: #f7f8f5 !important;
}
.v27-friendly .watch-product-card .row-copy { min-width: 0; }
.v27-friendly .watch-product-card h3 {
  margin: 0 0 3px !important;
  color: #123f2d !important;
  font-size: clamp(1.02rem, 4vw, 1.2rem) !important;
  font-weight: 800 !important;
  line-height: 1.16 !important;
  letter-spacing: -.025em !important;
}
.v27-friendly .watch-product-card .row-copy > p {
  margin: 0 0 9px !important;
  color: #6b7770 !important;
  font-size: .84rem !important;
  font-weight: 650 !important;
}
.v27-friendly .watch-card-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
}
.v27-friendly .watch-card-meta .product-type-pill {
  min-height: 30px !important;
  padding: 5px 9px !important;
  border: 0 !important;
  background: #f3f4ef !important;
  font-size: .69rem !important;
  font-weight: 700 !important;
}
.v27-friendly .watch-current-price {
  margin-top: 8px !important;
  color: #557063 !important;
  font-size: .75rem !important;
  font-weight: 700 !important;
}
.v27-friendly .watch-remove-button {
  width: auto !important;
  margin: 0 0 11px 116px !important;
  padding: 3px 0 !important;
  border: 0 !important;
  color: #758078 !important;
  background: transparent !important;
  font-family: var(--bb-v29-font) !important;
  font-size: .72rem !important;
  font-weight: 700 !important;
  cursor: pointer;
}
.v27-friendly .watch-remove-button:hover { color: #9e2118 !important; }

/* Product result — compact decision card, clear reasons, no duplicated sentence. */
.v27-friendly .product-result .simplified-product-hero {
  padding: 16px !important;
  border: 1px solid var(--bb-v29-line) !important;
  border-radius: 22px !important;
  background: var(--bb-v29-surface) !important;
  box-shadow: var(--bb-v29-shadow) !important;
}
.v27-friendly .product-result .product-summary-copy h1 {
  margin: 12px 0 3px !important;
  color: #123f2d !important;
  font-size: clamp(1.55rem, 6vw, 2.25rem) !important;
  font-weight: 800 !important;
  line-height: 1.08 !important;
  letter-spacing: -.035em !important;
}
.v27-friendly .product-result .brand-line {
  margin: 0 0 10px !important;
  color: #6a766f !important;
  font-size: .98rem !important;
  font-weight: 650 !important;
}
.v27-friendly .product-result .shopper-result-panel {
  margin-top: 16px !important;
  padding: 16px !important;
  border: 1px solid var(--bb-v29-line) !important;
  border-left: 4px solid #8c9991 !important;
  border-radius: 20px !important;
  background: #fff !important;
  box-shadow: none !important;
}
.v27-friendly .product-result .shopper-result-panel.great,
.v27-friendly .product-result .shopper-result-panel.good { border-left-color: #17845b !important; }
.v27-friendly .product-result .shopper-result-panel.mixed { border-left-color: #d39a18 !important; }
.v27-friendly .product-result .shopper-result-panel.poor { border-left-color: #d24b2a !important; }
.v27-friendly .product-result .shopper-result-panel.avoid { border-left-color: #b42318 !important; }
.v27-friendly .product-result .shopper-score-block > small {
  margin-bottom: 9px !important;
  color: #78837c !important;
  font-family: var(--bb-v29-font) !important;
  font-size: .67rem !important;
  font-weight: 800 !important;
  letter-spacing: .06em !important;
}
.v27-friendly .product-result .shopping-confidence-topline {
  align-items: center !important;
  gap: 12px !important;
}
.v27-friendly .product-result .shopping-confidence-recommendation {
  min-height: 36px !important;
  padding: 7px 11px !important;
  font-family: var(--bb-v29-font) !important;
  font-size: .76rem !important;
  font-weight: 800 !important;
}
.v27-friendly .product-result .shopper-score-line strong {
  font-family: var(--bb-v29-font) !important;
  font-size: clamp(2.25rem, 10vw, 3.25rem) !important;
  font-weight: 800 !important;
  letter-spacing: -.05em !important;
}
.v27-friendly .product-result .shopper-highlight-list {
  display: grid !important;
  gap: 0 !important;
  margin-top: 14px !important;
  overflow: hidden !important;
  border: 1px solid rgba(31, 68, 50, .09) !important;
  border-radius: 15px !important;
  background: #fafbf8 !important;
}
.v27-friendly .product-result .shopper-highlight {
  min-height: 0 !important;
  padding: 11px 12px !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(31, 68, 50, .08) !important;
  border-radius: 0 !important;
  background: transparent !important;
  font-family: var(--bb-v29-font) !important;
  font-size: .82rem !important;
  font-weight: 700 !important;
}
.v27-friendly .product-result .shopper-highlight:last-child { border-bottom: 0 !important; }
.v27-friendly .product-result .shopping-advice-line {
  margin: 11px 0 0 !important;
  color: #68746d !important;
  font-size: .78rem !important;
  font-weight: 600 !important;
  line-height: 1.45 !important;
}
.v27-friendly .product-result .post-scan-actions {
  margin-top: 14px !important;
  padding-bottom: 18px !important;
}

@media (max-width: 420px) {
  .v27-friendly .lists-screen .saved-product-open,
  .v27-friendly .watch-product-open {
    grid-template-columns: 76px minmax(0, 1fr) !important;
    gap: 11px !important;
    padding: 12px 12px 7px !important;
  }
  .v27-friendly .lists-screen .confidence-saved-card .row-image,
  .v27-friendly .watch-product-card .row-image {
    width: 76px !important;
    height: 76px !important;
    min-height: 76px !important;
    border-radius: 14px !important;
  }
  .v27-friendly .lists-screen .saved-remove-button,
  .v27-friendly .watch-remove-button {
    margin-left: 99px !important;
  }
  .v27-friendly .compact-recommendation {
    min-height: 28px;
    padding: 5px 8px;
    font-size: .66rem;
  }
  .v27-friendly .shopping-list-heading {
    align-items: flex-start;
  }
  .v27-friendly .shopping-list-actions {
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
  }
  .v27-friendly .product-result .shopping-confidence-topline {
    align-items: center !important;
  }
}

/* BasketBalance v30.0 — Premium Product UI Reset
   Functional app screens use a compact, familiar system typeface, white product
   surfaces and saturated status text. No tinted traffic-light card backgrounds. */
body.v30-premium {
  --v30-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --v30-bg: #f5f6f4;
  --v30-surface: #ffffff;
  --v30-text: #15372a;
  --v30-muted: #69766f;
  --v30-line: #e2e7e3;
  --v30-shadow: 0 6px 20px rgba(20, 42, 31, .06);
  --v30-great: #087a47;
  --v30-good: #167a50;
  --v30-mixed: #a85a00;
  --v30-poor: #d14a25;
  --v30-avoid: #c81919;
  --v30-limited: #67736d;
  margin: 0;
  padding-bottom: 94px;
  color: var(--v30-text);
  font-family: var(--v30-font) !important;
  background: var(--v30-bg) !important;
}
body.v30-premium button,
body.v30-premium input,
body.v30-premium select,
body.v30-premium textarea { font-family: var(--v30-font) !important; }
body.v30-premium .app-frame {
  width: min(720px, 100%);
  padding: calc(10px + env(safe-area-inset-top, 0px)) 16px 30px;
}
body.v30-premium .global-app-home {
  margin: 0 0 22px !important;
  padding: 0 !important;
}
body.v30-premium .global-app-home .brand,
body.v30-premium .brand-header .brand {
  width: 100%;
  min-height: 70px;
  padding: 12px 16px !important;
  border: 1px solid var(--v30-line) !important;
  border-radius: 20px !important;
  background: rgba(255,255,255,.96) !important;
  box-shadow: 0 4px 14px rgba(20,42,31,.04) !important;
}
body.v30-premium .global-app-home .brand-mark,
body.v30-premium .brand-header .brand-mark {
  width: 48px !important;
  height: 48px !important;
  border-radius: 14px !important;
  font-family: var(--v30-font) !important;
  font-size: 1.05rem !important;
  font-weight: 850 !important;
}
body.v30-premium .global-app-home .brand strong,
body.v30-premium .brand-header .brand strong {
  font-family: "Fraunces", Georgia, serif !important;
  font-size: 1.27rem !important;
  line-height: 1.05 !important;
}
body.v30-premium .global-app-home .brand small,
body.v30-premium .brand-header .brand small {
  margin-top: 3px !important;
  font-family: var(--v30-font) !important;
  font-size: .78rem !important;
  font-weight: 500 !important;
  color: var(--v30-muted) !important;
}

/* Compact page headings and spacing. */
body.v30-premium .history-screen,
body.v30-premium .lists-screen,
body.v30-premium .search-screen,
body.v30-premium .product-screen,
body.v30-premium .alerts-screen,
body.v30-premium .profile-screen {
  padding-top: 0 !important;
  padding-bottom: calc(102px + env(safe-area-inset-bottom, 0px)) !important;
}
body.v30-premium .screen-header {
  min-height: 48px !important;
  margin: 0 0 16px !important;
  padding: 0 2px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
body.v30-premium .screen-header > span,
body.v30-premium .screen-header #historyTitle,
body.v30-premium .screen-header #listsTitle,
body.v30-premium .screen-header #searchTitle {
  color: var(--v30-text) !important;
  font-family: var(--v30-font) !important;
  font-size: clamp(1.45rem, 5.4vw, 1.85rem) !important;
  font-weight: 820 !important;
  line-height: 1.05 !important;
  letter-spacing: -.035em !important;
}
body.v30-premium .screen-header .text-button,
body.v30-premium .screen-header .icon-button {
  min-height: 40px !important;
  padding: 8px 13px !important;
  border: 1px solid var(--v30-line) !important;
  border-radius: 12px !important;
  color: #165f40 !important;
  background: #fff !important;
  box-shadow: none !important;
  font-size: .82rem !important;
  font-weight: 760 !important;
}
body.v30-premium .list-section { margin: 0 0 28px !important; }
body.v30-premium .list-section > h2,
body.v30-premium .results-heading h2,
body.v30-premium .price-alerts-section h2,
body.v30-premium .watch-products-section h2 {
  margin: 0 0 12px !important;
  color: var(--v30-text) !important;
  font-family: var(--v30-font) !important;
  font-size: clamp(1.15rem, 4.6vw, 1.4rem) !important;
  font-weight: 800 !important;
  line-height: 1.15 !important;
  letter-spacing: -.025em !important;
}
body.v30-premium .eyebrow {
  color: #347258 !important;
  font-family: var(--v30-font) !important;
  font-size: .68rem !important;
  font-weight: 800 !important;
  letter-spacing: .09em !important;
}

/* New product-row system: white cards, strong status text, no traffic-light fills. */
body.v30-premium .bb-product-row {
  --status-colour: var(--v30-limited);
  position: relative;
  margin: 0 0 10px !important;
  border: 1px solid var(--v30-line) !important;
  border-top: 3px solid var(--status-colour) !important;
  border-radius: 16px !important;
  background: var(--v30-surface) !important;
  box-shadow: var(--v30-shadow) !important;
  overflow: hidden !important;
}
body.v30-premium .bb-product-row.great { --status-colour: var(--v30-great); }
body.v30-premium .bb-product-row.good { --status-colour: var(--v30-good); }
body.v30-premium .bb-product-row.mixed { --status-colour: var(--v30-mixed); }
body.v30-premium .bb-product-row.poor { --status-colour: var(--v30-poor); }
body.v30-premium .bb-product-row.avoid { --status-colour: var(--v30-avoid); }
body.v30-premium .bb-product-row.data-limited { --status-colour: var(--v30-limited); }
body.v30-premium .confidence-history-card,
body.v30-premium .result-card {
  display: grid !important;
  grid-template-columns: 82px minmax(0, 1fr) 70px !important;
  gap: 13px !important;
  align-items: center !important;
  padding: 13px !important;
}
body.v30-premium .bb-product-thumb,
body.v30-premium .confidence-history-card .bb-product-thumb,
body.v30-premium .confidence-saved-card .bb-product-thumb,
body.v30-premium .result-card .bb-product-thumb {
  width: 82px !important;
  height: 82px !important;
  min-height: 82px !important;
  overflow: hidden !important;
  border: 1px solid #e5e9e6 !important;
  border-radius: 13px !important;
  background: #f8f9f7 !important;
}
body.v30-premium .bb-product-thumb img,
body.v30-premium .bb-product-thumb svg,
body.v30-premium .bb-product-thumb .image-placeholder {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
}
body.v30-premium .bb-product-copy {
  min-width: 0 !important;
  padding: 0 !important;
}
body.v30-premium .bb-product-copy h3,
body.v30-premium .confidence-history-card h3,
body.v30-premium .confidence-saved-card h3,
body.v30-premium .result-card h3 {
  margin: 0 0 3px !important;
  color: var(--v30-text) !important;
  font-family: var(--v30-font) !important;
  font-size: clamp(.98rem, 4vw, 1.12rem) !important;
  font-weight: 780 !important;
  line-height: 1.16 !important;
  letter-spacing: -.025em !important;
}
body.v30-premium .bb-product-brand {
  margin: 0 0 8px !important;
  color: var(--v30-muted) !important;
  font-size: .79rem !important;
  font-weight: 620 !important;
  line-height: 1.2 !important;
}
body.v30-premium .bb-product-meta {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  color: #7a857f !important;
  font-size: .7rem !important;
  font-weight: 650 !important;
}
body.v30-premium .bb-product-type {
  color: #66726c !important;
}
body.v30-premium .bb-product-meta time { white-space: nowrap; }
body.v30-premium .bb-product-score {
  min-width: 0 !important;
  align-self: center !important;
  justify-self: end !important;
  display: grid !important;
  grid-template-columns: auto auto !important;
  align-items: baseline !important;
  justify-content: end !important;
  color: var(--status-colour) !important;
  text-align: right !important;
}
body.v30-premium .bb-product-score strong {
  font-size: 1.65rem !important;
  font-weight: 850 !important;
  line-height: .95 !important;
  letter-spacing: -.055em !important;
}
body.v30-premium .bb-product-score small {
  margin-left: 2px !important;
  font-size: .64rem !important;
  font-weight: 780 !important;
}
body.v30-premium .bb-product-score > span:not(.bb-product-verdict) {
  grid-column: 1 / -1;
  font-size: .72rem;
  font-weight: 780;
}
body.v30-premium .bb-product-verdict {
  grid-column: 1 / -1 !important;
  margin-top: 5px !important;
  color: var(--status-colour) !important;
  font-size: .62rem !important;
  font-weight: 850 !important;
  line-height: 1.05 !important;
  letter-spacing: .02em !important;
  text-transform: uppercase !important;
  white-space: normal !important;
}
body.v30-premium .unknown-barcode {
  margin: 0 0 6px !important;
  color: #7a857f !important;
  font-size: .68rem !important;
  word-break: break-all;
}

/* Saved products use the same compact row, with a quiet remove action. */
body.v30-premium .confidence-saved-card { padding: 0 !important; }
body.v30-premium .confidence-saved-card .saved-product-open {
  display: grid !important;
  grid-template-columns: 82px minmax(0, 1fr) 70px !important;
  gap: 13px !important;
  align-items: center !important;
  width: 100% !important;
  min-height: 0 !important;
  padding: 13px 13px 30px !important;
  border: 0 !important;
  color: inherit !important;
  background: transparent !important;
  text-align: left !important;
}
body.v30-premium .confidence-saved-card .saved-remove-button {
  position: absolute !important;
  right: 13px !important;
  bottom: 8px !important;
  width: auto !important;
  margin: 0 !important;
  padding: 2px 0 !important;
  border: 0 !important;
  color: #78827d !important;
  background: transparent !important;
  font-size: .67rem !important;
  font-weight: 680 !important;
  text-decoration: none !important;
}
body.v30-premium .confidence-saved-card .saved-remove-button:hover { color: var(--v30-avoid) !important; }

/* Search cards: same product hierarchy, compact evidence and action. */
body.v30-premium .result-card {
  grid-template-areas:
    "thumb copy score"
    "thumb copy action" !important;
  align-items: start !important;
}
body.v30-premium .result-card .bb-product-thumb { grid-area: thumb; }
body.v30-premium .result-card .bb-product-copy { grid-area: copy; }
body.v30-premium .result-card .bb-product-score { grid-area: score; }
body.v30-premium .result-card .bb-product-action {
  grid-area: action;
  justify-self: end;
  align-self: end;
}
body.v30-premium .result-card .bb-product-action button {
  padding: 4px 0 !important;
  border: 0 !important;
  color: #176844 !important;
  background: transparent !important;
  font-size: .7rem !important;
  font-weight: 780 !important;
}
body.v30-premium .bb-product-findings {
  margin: 8px 0 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
body.v30-premium .bb-product-findings li {
  margin: 2px 0 !important;
  color: #6d7872 !important;
  font-size: .68rem !important;
  line-height: 1.3 !important;
}

/* Compact inline recommendation for list rows and price watch. */
body.v30-premium .compact-recommendation {
  display: inline-flex !important;
  align-items: baseline !important;
  gap: 7px !important;
  min-height: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--v30-limited) !important;
  font-family: var(--v30-font) !important;
  font-size: .68rem !important;
  font-weight: 760 !important;
  line-height: 1.1 !important;
  white-space: nowrap !important;
}
body.v30-premium .compact-recommendation.great { color: var(--v30-great) !important; }
body.v30-premium .compact-recommendation.good { color: var(--v30-good) !important; }
body.v30-premium .compact-recommendation.mixed { color: var(--v30-mixed) !important; }
body.v30-premium .compact-recommendation.poor { color: var(--v30-poor) !important; }
body.v30-premium .compact-recommendation.avoid { color: var(--v30-avoid) !important; }
body.v30-premium .compact-recommendation strong {
  color: currentColor !important;
  font-size: .72rem !important;
  font-weight: 850 !important;
}
body.v30-premium .compact-recommendation small { font-size: .56rem !important; }

/* Shopping lists: cleaner section cards and rows. */
body.v30-premium .shopping-list-card,
body.v30-premium .price-watch-summary-card {
  margin: 0 0 12px !important;
  padding: 15px !important;
  border: 1px solid var(--v30-line) !important;
  border-radius: 16px !important;
  background: #fff !important;
  box-shadow: var(--v30-shadow) !important;
}
body.v30-premium .shopping-list-heading { margin-bottom: 10px !important; }
body.v30-premium .shopping-list-heading h3 {
  margin: 0 0 2px !important;
  color: var(--v30-text) !important;
  font-size: 1rem !important;
  font-weight: 780 !important;
}
body.v30-premium .shopping-list-heading p {
  margin: 0 !important;
  color: var(--v30-muted) !important;
  font-size: .72rem !important;
}
body.v30-premium .shopping-list-actions button {
  color: #61736a !important;
  font-size: .65rem !important;
  font-weight: 700 !important;
}
body.v30-premium .shopping-list-actions button:last-child { color: var(--v30-avoid) !important; }
body.v30-premium .list-mini-products { gap: 7px !important; }
body.v30-premium .list-mini-product {
  display: grid !important;
  grid-template-columns: 54px minmax(0,1fr) !important;
  gap: 10px !important;
  align-items: center !important;
  width: 100% !important;
  padding: 8px !important;
  border: 1px solid #e7ebe8 !important;
  border-radius: 12px !important;
  color: inherit !important;
  background: #fff !important;
  box-shadow: none !important;
  text-align: left !important;
}
body.v30-premium .list-mini-image {
  width: 54px !important;
  height: 54px !important;
  border-radius: 10px !important;
  overflow: hidden !important;
  background: #f7f8f6 !important;
}
body.v30-premium .list-mini-copy > strong {
  margin: 0 0 2px !important;
  color: var(--v30-text) !important;
  font-size: .82rem !important;
  font-weight: 760 !important;
  line-height: 1.15 !important;
}
body.v30-premium .list-mini-copy > small {
  margin: 0 0 5px !important;
  color: var(--v30-muted) !important;
  font-size: .66rem !important;
  font-weight: 600 !important;
}
body.v30-premium .create-list-tile {
  min-height: 54px !important;
  margin: 0 0 12px !important;
  padding: 10px 13px !important;
  border: 1px dashed #b9c5be !important;
  border-radius: 14px !important;
  color: #176844 !important;
  background: #fff !important;
  box-shadow: none !important;
  font-size: .78rem !important;
}
body.v30-premium .list-actions { gap: 8px !important; margin-bottom: 10px !important; }
body.v30-premium .list-actions button { min-height: 38px !important; font-size: .72rem !important; }

/* Price watch rows adopt the same white product-card treatment. */
body.v30-premium .watch-product-card {
  --status-colour: var(--v30-limited);
  position: relative;
  margin: 0 0 10px !important;
  border: 1px solid var(--v30-line) !important;
  border-top: 3px solid var(--status-colour) !important;
  border-radius: 16px !important;
  background: #fff !important;
  box-shadow: var(--v30-shadow) !important;
  overflow: hidden !important;
}
body.v30-premium .watch-product-card.great { --status-colour: var(--v30-great); }
body.v30-premium .watch-product-card.good { --status-colour: var(--v30-good); }
body.v30-premium .watch-product-card.mixed { --status-colour: var(--v30-mixed); }
body.v30-premium .watch-product-card.poor { --status-colour: var(--v30-poor); }
body.v30-premium .watch-product-card.avoid { --status-colour: var(--v30-avoid); }
body.v30-premium .watch-product-open {
  display: grid !important;
  grid-template-columns: 82px minmax(0,1fr) !important;
  gap: 13px !important;
  align-items: center !important;
  width: 100% !important;
  padding: 13px 13px 32px !important;
  border: 0 !important;
  color: inherit !important;
  background: transparent !important;
  text-align: left !important;
}
body.v30-premium .watch-product-card .row-image {
  width: 82px !important;
  height: 82px !important;
  min-height: 82px !important;
  margin: 0 !important;
  border: 1px solid #e5e9e6 !important;
  border-radius: 13px !important;
  background: #f8f9f7 !important;
}
body.v30-premium .watch-product-card h3 {
  margin: 0 0 3px !important;
  color: var(--v30-text) !important;
  font-size: 1rem !important;
  font-weight: 780 !important;
  line-height: 1.16 !important;
}
body.v30-premium .watch-product-card .row-copy > p {
  margin: 0 0 8px !important;
  color: var(--v30-muted) !important;
  font-size: .78rem !important;
  font-weight: 620 !important;
}
body.v30-premium .watch-card-meta .product-type-pill { display: none !important; }
body.v30-premium .watch-current-price {
  margin-top: 7px !important;
  color: #6e7973 !important;
  font-size: .68rem !important;
  font-weight: 620 !important;
}
body.v30-premium .watch-remove-button {
  position: absolute !important;
  right: 13px !important;
  bottom: 8px !important;
  width: auto !important;
  margin: 0 !important;
  padding: 2px 0 !important;
  border: 0 !important;
  color: #78827d !important;
  background: transparent !important;
  font-size: .67rem !important;
  font-weight: 680 !important;
}

/* Product page: keep the good structure, simplify type, spacing and status colours. */
body.v30-premium .product-result .simplified-product-hero {
  padding: 16px !important;
  border: 1px solid var(--v30-line) !important;
  border-radius: 18px !important;
  background: #fff !important;
  box-shadow: var(--v30-shadow) !important;
}
body.v30-premium .product-result .product-summary-copy h1 {
  margin: 12px 0 3px !important;
  color: var(--v30-text) !important;
  font-family: var(--v30-font) !important;
  font-size: clamp(1.45rem, 6vw, 2rem) !important;
  font-weight: 800 !important;
  line-height: 1.08 !important;
  letter-spacing: -.04em !important;
}
body.v30-premium .product-result .brand-line {
  margin: 0 0 10px !important;
  color: var(--v30-muted) !important;
  font-size: .88rem !important;
  font-weight: 620 !important;
}
body.v30-premium .product-result .shopper-result-panel {
  --status-colour: var(--v30-limited);
  margin-top: 14px !important;
  padding: 15px !important;
  border: 1px solid var(--v30-line) !important;
  border-top: 4px solid var(--status-colour) !important;
  border-radius: 16px !important;
  background: #fff !important;
  box-shadow: none !important;
}
body.v30-premium .product-result .shopper-result-panel.great { --status-colour: var(--v30-great); }
body.v30-premium .product-result .shopper-result-panel.good { --status-colour: var(--v30-good); }
body.v30-premium .product-result .shopper-result-panel.mixed { --status-colour: var(--v30-mixed); }
body.v30-premium .product-result .shopper-result-panel.poor { --status-colour: var(--v30-poor); }
body.v30-premium .product-result .shopper-result-panel.avoid { --status-colour: var(--v30-avoid); }
body.v30-premium .product-result .shopping-confidence-recommendation {
  min-height: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: var(--status-colour) !important;
  background: transparent !important;
  font-size: .8rem !important;
  font-weight: 850 !important;
  letter-spacing: .025em !important;
}
body.v30-premium .product-result .shopping-confidence-recommendation .status-dot {
  width: 8px !important;
  height: 8px !important;
  background: var(--status-colour) !important;
}
body.v30-premium .product-result .shopper-score-line { color: var(--status-colour) !important; }
body.v30-premium .product-result .shopper-score-line strong {
  font-family: var(--v30-font) !important;
  font-size: clamp(2.45rem, 10vw, 3.3rem) !important;
  font-weight: 850 !important;
  letter-spacing: -.065em !important;
}
body.v30-premium .product-result .shopper-highlight-list {
  margin-top: 13px !important;
  border: 1px solid #e6eae7 !important;
  border-radius: 13px !important;
  background: #fff !important;
}
body.v30-premium .product-result .shopper-highlight {
  padding: 10px 11px !important;
  color: #485951 !important;
  font-size: .77rem !important;
  font-weight: 650 !important;
}
body.v30-premium .product-result .shopping-advice-line {
  margin: 10px 0 0 !important;
  padding: 0 !important;
  color: #6d7872 !important;
  background: transparent !important;
  font-size: .74rem !important;
  font-weight: 560 !important;
}
body.v30-premium .detail-panel,
body.v30-premium .recommendation-panel,
body.v30-premium .price-panel {
  border-radius: 17px !important;
  box-shadow: var(--v30-shadow) !important;
}

/* Recommended alternatives: only genuine green recommendations are rendered. */
body.v30-premium .alternative-product-card {
  display: grid !important;
  grid-template-columns: 96px minmax(0,1fr) !important;
  gap: 14px !important;
  padding: 14px !important;
  border: 1px solid var(--v30-line) !important;
  border-top: 3px solid var(--v30-good) !important;
  border-radius: 16px !important;
  background: #fff !important;
  box-shadow: none !important;
}
body.v30-premium .alternative-product-image {
  width: 96px !important;
  height: 112px !important;
  border: 1px solid #e5e9e6 !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  background: #f8f9f7 !important;
}
body.v30-premium .alternative-product-card h3 {
  margin: 6px 0 2px !important;
  color: var(--v30-text) !important;
  font-size: 1rem !important;
  font-weight: 780 !important;
}
body.v30-premium .alternative-better-label {
  color: var(--v30-good) !important;
  background: transparent !important;
  border: 0 !important;
  font-size: .68rem !important;
  font-weight: 850 !important;
  text-transform: uppercase !important;
}
body.v30-premium .alternative-score-delta {
  color: #61736a !important;
  background: transparent !important;
  border: 0 !important;
  font-size: .66rem !important;
}
body.v30-premium .alternative-score-row {
  padding: 8px 0 !important;
  border: 0 !important;
  border-top: 1px solid #e8ece9 !important;
  border-bottom: 1px solid #e8ece9 !important;
  border-radius: 0 !important;
  background: transparent !important;
}
body.v30-premium .alternative-reasons { padding-left: 17px !important; }
body.v30-premium .alternative-reasons li,
body.v30-premium .alternative-caveat,
body.v30-premium .alternative-data-confidence { font-size: .72rem !important; }

/* Search discovery: neutral chips, less empty pastel styling. */
body.v30-premium .search-card,
body.v30-premium .popular-searches {
  padding: 14px !important;
  border: 1px solid var(--v30-line) !important;
  border-radius: 16px !important;
  background: #fff !important;
  box-shadow: var(--v30-shadow) !important;
}
body.v30-premium .search-card label { font-size: .72rem !important; font-weight: 760 !important; }
body.v30-premium .search-row input {
  min-height: 46px !important;
  border: 1px solid #dce2de !important;
  border-radius: 12px !important;
  background: #fff !important;
  font-size: .9rem !important;
}
body.v30-premium .search-row button { min-height: 46px !important; border-radius: 12px !important; }
body.v30-premium .popular-searches { margin-top: 16px !important; }
body.v30-premium .popular-list { gap: 8px !important; }
body.v30-premium .popular-list button {
  min-height: 36px !important;
  padding: 7px 11px !important;
  border: 1px solid #dfe5e1 !important;
  border-radius: 999px !important;
  color: #315c49 !important;
  background: #fff !important;
  box-shadow: none !important;
  font-size: .72rem !important;
  font-weight: 700 !important;
}

/* Scanner: high contrast, practical and compact. */
body.v30-premium .scanner-dialog {
  width: min(92vw, 520px) !important;
  max-height: 92svh !important;
  margin: auto !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 22px !important;
  background: transparent !important;
  overflow: visible !important;
}
body.v30-premium .scanner-dialog::backdrop { background: rgba(7, 17, 12, .78) !important; }
body.v30-premium .scanner-panel {
  max-height: 92svh !important;
  overflow-y: auto !important;
  padding: 18px !important;
  border: 1px solid rgba(255,255,255,.2) !important;
  border-radius: 22px !important;
  color: var(--v30-text) !important;
  background: #fff !important;
  box-shadow: 0 24px 70px rgba(0,0,0,.3) !important;
}
body.v30-premium .scanner-panel h2 {
  color: var(--v30-text) !important;
  font-family: var(--v30-font) !important;
  font-size: 1.35rem !important;
  font-weight: 800 !important;
  line-height: 1.15 !important;
}
body.v30-premium .scanner-panel .eyebrow { color: #23704f !important; }
body.v30-premium .scanner-panel .icon-button {
  color: #1f4c39 !important;
  border: 1px solid #dfe5e1 !important;
  background: #fff !important;
}
body.v30-premium .scanner-window {
  min-height: 330px !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  background: #111 !important;
}
body.v30-premium .scanner-direction-note,
body.v30-premium .scanner-panel > p:not(.eyebrow) {
  color: #5f6e66 !important;
  font-size: .8rem !important;
  line-height: 1.45 !important;
}
body.v30-premium .scanner-panel input {
  min-height: 46px !important;
  border: 1px solid #dce2de !important;
  border-radius: 12px !important;
  color: var(--v30-text) !important;
  background: #fff !important;
}

/* Bottom navigation: lighter and slightly smaller. */
body.v30-premium .bottom-nav {
  width: min(680px, calc(100% - 24px)) !important;
  bottom: max(8px, env(safe-area-inset-bottom, 0px)) !important;
  min-height: 68px !important;
  padding: 6px !important;
  gap: 4px !important;
  border: 1px solid #dce2de !important;
  border-radius: 20px !important;
  background: rgba(255,255,255,.97) !important;
  box-shadow: 0 12px 34px rgba(18,36,27,.14) !important;
  backdrop-filter: blur(16px) !important;
}
body.v30-premium .bottom-nav button,
body.v30-premium .bottom-nav .nav-camera,
body.v30-premium .bottom-nav .nav-scan {
  min-height: 56px !important;
  margin: 0 !important;
  border-radius: 14px !important;
  background: transparent !important;
  box-shadow: none !important;
}
body.v30-premium .bottom-nav .nav-camera {
  color: #fff !important;
  background: #207a4c !important;
}
body.v30-premium .bottom-nav button.is-active:not(.nav-camera) {
  color: #176844 !important;
  background: #edf5f0 !important;
}
body.v30-premium .bottom-nav .nav-icon { width: 23px !important; height: 23px !important; }
body.v30-premium .bottom-nav small {
  font-family: var(--v30-font) !important;
  font-size: .64rem !important;
  font-weight: 700 !important;
}

@media (max-width: 520px) {
  body.v30-premium .app-frame { padding-left: 12px; padding-right: 12px; }
  body.v30-premium .confidence-history-card,
  body.v30-premium .result-card {
    grid-template-columns: 72px minmax(0, 1fr) 62px !important;
    gap: 10px !important;
    padding: 11px !important;
  }
  body.v30-premium .confidence-saved-card .saved-product-open {
    grid-template-columns: 72px minmax(0, 1fr) 62px !important;
    gap: 10px !important;
    padding: 11px 11px 29px !important;
  }
  body.v30-premium .bb-product-thumb,
  body.v30-premium .confidence-history-card .bb-product-thumb,
  body.v30-premium .confidence-saved-card .bb-product-thumb,
  body.v30-premium .result-card .bb-product-thumb {
    width: 72px !important;
    height: 72px !important;
    min-height: 72px !important;
  }
  body.v30-premium .bb-product-copy h3 { font-size: .95rem !important; }
  body.v30-premium .bb-product-brand { font-size: .74rem !important; margin-bottom: 7px !important; }
  body.v30-premium .bb-product-score strong { font-size: 1.45rem !important; }
  body.v30-premium .bb-product-verdict { font-size: .55rem !important; }
  body.v30-premium .bb-product-meta { font-size: .64rem !important; }
  body.v30-premium .alternative-product-card { grid-template-columns: 82px minmax(0,1fr) !important; padding: 12px !important; gap: 11px !important; }
  body.v30-premium .alternative-product-image { width: 82px !important; height: 100px !important; }
}

@media (max-width: 380px) {
  body.v30-premium .confidence-history-card,
  body.v30-premium .result-card,
  body.v30-premium .confidence-saved-card .saved-product-open {
    grid-template-columns: 64px minmax(0, 1fr) 56px !important;
    gap: 8px !important;
  }
  body.v30-premium .bb-product-thumb,
  body.v30-premium .confidence-history-card .bb-product-thumb,
  body.v30-premium .confidence-saved-card .bb-product-thumb,
  body.v30-premium .result-card .bb-product-thumb {
    width: 64px !important;
    height: 64px !important;
    min-height: 64px !important;
  }
  body.v30-premium .bb-product-copy h3 { font-size: .88rem !important; }
  body.v30-premium .bb-product-score strong { font-size: 1.3rem !important; }
}

/* High-specificity reset over legacy v28/v29 traffic-light card rules. */
body.v30-premium.v27-friendly .confidence-history-card,
body.v30-premium.v27-friendly .confidence-saved-card,
body.v30-premium.v27-friendly .confidence-product-card {
  border: 1px solid var(--v30-line) !important;
  border-top: 3px solid var(--status-colour) !important;
  border-left: 1px solid var(--v30-line) !important;
  background: #fff !important;
  box-shadow: var(--v30-shadow) !important;
}
body.v30-premium.v27-friendly .confidence-history-card.great,
body.v30-premium.v27-friendly .confidence-history-card.good,
body.v30-premium.v27-friendly .confidence-saved-card.great,
body.v30-premium.v27-friendly .confidence-saved-card.good,
body.v30-premium.v27-friendly .confidence-product-card.great,
body.v30-premium.v27-friendly .confidence-product-card.good { --status-colour: var(--v30-good); }
body.v30-premium.v27-friendly .confidence-history-card.mixed,
body.v30-premium.v27-friendly .confidence-saved-card.mixed,
body.v30-premium.v27-friendly .confidence-product-card.mixed { --status-colour: var(--v30-mixed); }
body.v30-premium.v27-friendly .confidence-history-card.poor,
body.v30-premium.v27-friendly .confidence-saved-card.poor,
body.v30-premium.v27-friendly .confidence-product-card.poor { --status-colour: var(--v30-poor); }
body.v30-premium.v27-friendly .confidence-history-card.avoid,
body.v30-premium.v27-friendly .confidence-saved-card.avoid,
body.v30-premium.v27-friendly .confidence-product-card.avoid { --status-colour: var(--v30-avoid); }
body.v30-premium.v27-friendly .confidence-history-card.data-limited,
body.v30-premium.v27-friendly .confidence-saved-card.data-limited,
body.v30-premium.v27-friendly .confidence-product-card.data-limited { --status-colour: var(--v30-limited); }

/* BasketBalance v30.1 — Recommendation typography consistency
   Use the same Plus Jakarta Sans treatment as the Food Snapshot throughout
   the shopping recommendation panel. Layout, scoring and status colours stay unchanged. */
body.v30-premium .food-snapshot-panel,
body.v30-premium .food-snapshot-panel button,
body.v30-premium .food-snapshot-panel strong,
body.v30-premium .food-snapshot-panel small,
body.v30-premium .food-snapshot-panel span,
body.v30-premium .product-result .shopper-result-panel,
body.v30-premium .product-result .shopper-result-panel small,
body.v30-premium .product-result .shopping-confidence-recommendation,
body.v30-premium .product-result .shopper-score-line,
body.v30-premium .product-result .shopper-score-line strong,
body.v30-premium .product-result .shopper-score-line span,
body.v30-premium .product-result .shopper-highlight,
body.v30-premium .product-result .shopping-advice-line {
  font-family: "Plus Jakarta Sans", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}
body.v30-premium .product-result .shopper-score-block > small {
  font-family: "Plus Jakarta Sans", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-weight: 800 !important;
}
body.v30-premium .product-result .shopping-confidence-recommendation {
  font-weight: 800 !important;
  letter-spacing: 0 !important;
}
body.v30-premium .product-result .shopper-score-line strong {
  font-weight: 800 !important;
}
body.v30-premium .product-result .shopper-highlight {
  font-weight: 700 !important;
}
body.v30-premium .product-result .shopping-advice-line {
  font-weight: 500 !important;
}

/* BasketBalance v30.2 — Exact Food Snapshot typography match
   v30.1 declared Plus Jakarta Sans, but older recommendation rules still forced
   uppercase text, synthetic 850 weights and tighter tracking. These overrides
   match the Food Snapshot's real typography treatment, not only its font family. */
body.v30-premium .product-result .shopper-result-panel,
body.v30-premium .product-result .shopper-result-panel * {
  font-family: "Plus Jakarta Sans", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-synthesis: none;
}

body.v30-premium .product-result .shopper-score-block > small {
  font-size: .78rem !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: .075em !important;
}

body.v30-premium .product-result .shopping-confidence-recommendation,
body.v30-premium .product-result .shopping-confidence-recommendation strong {
  font-size: 1rem !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

body.v30-premium .product-result .shopper-score-line,
body.v30-premium .product-result .shopper-score-line strong,
body.v30-premium .product-result .shopper-score-line span {
  font-family: "Plus Jakarta Sans", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-synthesis: none;
}
body.v30-premium .product-result .shopper-score-line strong {
  font-weight: 800 !important;
  letter-spacing: -.045em !important;
}
body.v30-premium .product-result .shopper-score-line span {
  font-weight: 700 !important;
  letter-spacing: 0 !important;
}

body.v30-premium .product-result .shopper-highlight,
body.v30-premium .product-result .shopper-highlight span {
  font-size: .88rem !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
  letter-spacing: 0 !important;
}
body.v30-premium .product-result .shopping-advice-line {
  font-size: .86rem !important;
  font-weight: 500 !important;
  line-height: 1.45 !important;
  letter-spacing: 0 !important;
}

/* BasketBalance v30.3 — compact product identity, visible watch state and stronger navigation
   The product page now follows a familiar mobile-detail pattern: image on the left,
   product identity and score on the right, then concise reasons below. */

/* Make the product back action unmistakable. */
body.v30-premium .product-screen .screen-header {
  position: sticky !important;
  top: 0 !important;
  z-index: 20 !important;
  min-height: 58px !important;
  margin-bottom: 10px !important;
  padding: 7px 2px !important;
  background: rgba(248, 250, 248, .96) !important;
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
}
body.v30-premium .product-screen .screen-header > span {
  font-family: "Plus Jakarta Sans", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: 1.2rem !important;
  font-weight: 800 !important;
  letter-spacing: -.025em !important;
}
body.v30-premium .product-screen .product-back-button {
  display: inline-grid !important;
  place-items: center !important;
  width: 46px !important;
  min-width: 46px !important;
  height: 46px !important;
  min-height: 46px !important;
  padding: 0 !important;
  border: 1.5px solid #bccbc3 !important;
  border-radius: 14px !important;
  color: #0f5136 !important;
  background: #fff !important;
  box-shadow: 0 5px 14px rgba(17, 58, 40, .11) !important;
  opacity: 1 !important;
}
body.v30-premium .product-screen .product-back-button span {
  display: block !important;
  transform: translateY(-1px) !important;
  font-family: Arial, Helvetica, sans-serif !important;
  font-size: 1.65rem !important;
  font-weight: 700 !important;
  line-height: 1 !important;
}
body.v30-premium .product-screen .screen-header [data-action="share-current"] {
  min-height: 42px !important;
  color: #0f5136 !important;
  background: #fff !important;
  border-color: #cbd7d0 !important;
  font-size: .78rem !important;
}

/* Compact product identity: photograph beside the name, brand and decision. */
body.v30-premium .product-result .simplified-product-hero {
  display: block !important;
  padding: 14px !important;
  border-radius: 18px !important;
}
body.v30-premium .product-result .product-overview-row {
  display: grid !important;
  grid-template-columns: 122px minmax(0, 1fr) !important;
  gap: 16px !important;
  align-items: stretch !important;
  min-width: 0 !important;
}
body.v30-premium .product-result .product-photo.framed {
  width: 122px !important;
  min-width: 122px !important;
  height: 154px !important;
  min-height: 154px !important;
  margin: 0 !important;
  padding: 6px !important;
  border: 1px solid #e1e7e3 !important;
  border-radius: 15px !important;
  background: #f8faf8 !important;
  box-shadow: none !important;
  overflow: hidden !important;
}
body.v30-premium .product-result .product-photo.framed img,
body.v30-premium .product-result .product-photo.framed .bb-product-image,
body.v30-premium .product-result .product-photo.framed .bb-product-illustration {
  width: 100% !important;
  height: 100% !important;
  max-height: none !important;
  object-fit: contain !important;
  border-radius: 10px !important;
}
body.v30-premium .product-result .product-summary-copy {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  min-width: 0 !important;
  gap: 0 !important;
}
body.v30-premium .product-result .product-summary-copy h1 {
  width: 100% !important;
  margin: 1px 0 4px !important;
  font-family: "Plus Jakarta Sans", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: clamp(1.2rem, 4.9vw, 1.55rem) !important;
  font-weight: 800 !important;
  line-height: 1.12 !important;
  letter-spacing: -.035em !important;
}
body.v30-premium .product-result .brand-line {
  margin: 0 0 9px !important;
  font-family: "Plus Jakarta Sans", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: .84rem !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
}
body.v30-premium .product-result .product-summary-copy .product-type-pill {
  min-height: 30px !important;
  margin: 0 !important;
  padding: 5px 10px !important;
  font-size: .7rem !important;
  font-weight: 700 !important;
}
body.v30-premium .product-result .product-decision-summary {
  --status-colour: var(--v30-limited);
  width: 100% !important;
  margin-top: auto !important;
  padding-top: 11px !important;
  border-top: 1px solid #e6ebe8 !important;
  font-family: "Plus Jakarta Sans", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}
body.v30-premium .product-result .product-decision-summary.great { --status-colour: var(--v30-great); }
body.v30-premium .product-result .product-decision-summary.good { --status-colour: var(--v30-good); }
body.v30-premium .product-result .product-decision-summary.mixed { --status-colour: var(--v30-mixed); }
body.v30-premium .product-result .product-decision-summary.poor { --status-colour: var(--v30-poor); }
body.v30-premium .product-result .product-decision-summary.avoid { --status-colour: var(--v30-avoid); }
body.v30-premium .product-result .product-decision-summary > small {
  display: block !important;
  margin: 0 0 5px !important;
  color: #748079 !important;
  font-size: .61rem !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  letter-spacing: .07em !important;
  text-transform: uppercase !important;
}
body.v30-premium .product-result .product-decision-summary .shopping-confidence-topline {
  display: flex !important;
  align-items: flex-end !important;
  justify-content: space-between !important;
  gap: 8px !important;
  width: 100% !important;
}
body.v30-premium .product-result .product-decision-summary .shopping-confidence-recommendation,
body.v30-premium .product-result .product-decision-summary .shopping-confidence-recommendation strong {
  min-width: 0 !important;
  color: var(--status-colour) !important;
  font-size: .78rem !important;
  font-weight: 800 !important;
  line-height: 1.18 !important;
}
body.v30-premium .product-result .product-decision-summary .shopping-confidence-recommendation .status-dot {
  width: 8px !important;
  height: 8px !important;
  flex: 0 0 8px !important;
  background: var(--status-colour) !important;
}
body.v30-premium .product-result .product-decision-summary .shopper-score-line {
  flex: 0 0 auto !important;
  color: var(--status-colour) !important;
  white-space: nowrap !important;
}
body.v30-premium .product-result .product-decision-summary .shopper-score-line strong {
  font-size: 2.05rem !important;
  font-weight: 800 !important;
  line-height: .92 !important;
  letter-spacing: -.06em !important;
}
body.v30-premium .product-result .product-decision-summary .shopper-score-line span {
  font-size: .82rem !important;
  font-weight: 700 !important;
}

/* Reasons now read like a compact information list instead of a second hero card. */
body.v30-premium .product-result .shopper-result-panel {
  display: block !important;
  margin-top: 14px !important;
  padding: 0 !important;
  border: 1px solid #e1e6e3 !important;
  border-top: 1px solid #e1e6e3 !important;
  border-radius: 14px !important;
  background: #fff !important;
  overflow: hidden !important;
}
body.v30-premium .product-result .score-reasons-label {
  display: block !important;
  padding: 11px 13px 8px !important;
  color: #748079 !important;
  font-family: "Plus Jakarta Sans", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: .65rem !important;
  font-weight: 800 !important;
  letter-spacing: .075em !important;
  text-transform: uppercase !important;
}
body.v30-premium .product-result .shopper-highlight-list {
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}
body.v30-premium .product-result .shopper-highlight {
  min-height: 50px !important;
  padding: 11px 13px !important;
  border-top: 1px solid #edf0ee !important;
  font-size: .82rem !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
}
body.v30-premium .product-result .shopper-highlight-icon {
  width: 30px !important;
  height: 30px !important;
}
body.v30-premium .product-result .shopping-advice-line {
  margin: 0 !important;
  padding: 11px 13px 13px !important;
  border-top: 1px solid #edf0ee !important;
  font-size: .78rem !important;
  font-weight: 500 !important;
  line-height: 1.45 !important;
}
body.v30-premium .product-result .post-scan-actions {
  margin-top: 13px !important;
  padding-top: 12px !important;
  border-top: 1px solid #e7ebe8 !important;
}

/* A selected price watch is a positive, clearly visible state, not a faded disabled button. */
body.v30-premium .watch-action-button.is-watching:disabled,
body.v30-premium .price-watch-button.is-watching:disabled,
body.v30-premium button[data-action="watch-current"].is-watching:disabled {
  opacity: 1 !important;
  color: #fff !important;
  border-color: #176b43 !important;
  background: #176b43 !important;
  box-shadow: 0 5px 14px rgba(23, 107, 67, .18) !important;
  cursor: default !important;
}

/* History now behaves like a polished native list rather than a stack of coloured cards. */
body.v30-premium #historyPanel {
  border: 1px solid #e1e6e3 !important;
  border-radius: 18px !important;
  background: #fff !important;
  box-shadow: 0 9px 24px rgba(20, 43, 32, .06) !important;
  overflow: hidden !important;
}
body.v30-premium.v27-friendly .confidence-history-card,
body.v30-premium .confidence-history-card {
  min-height: 112px !important;
  margin: 0 !important;
  padding: 12px 14px !important;
  grid-template-columns: 82px minmax(0, 1fr) 74px !important;
  gap: 13px !important;
  align-items: center !important;
  border: 0 !important;
  border-bottom: 1px solid #e8ece9 !important;
  border-radius: 0 !important;
  background: #fff !important;
  box-shadow: none !important;
}
body.v30-premium .confidence-history-card:last-child { border-bottom: 0 !important; }
body.v30-premium .confidence-history-card .bb-product-thumb {
  width: 82px !important;
  height: 88px !important;
  min-height: 88px !important;
  border: 0 !important;
  border-radius: 10px !important;
  background: #f8faf8 !important;
}
body.v30-premium .confidence-history-card .bb-product-thumb img {
  object-fit: contain !important;
}
body.v30-premium .confidence-history-card .bb-product-copy h3 {
  margin-bottom: 3px !important;
  font-size: 1rem !important;
  font-weight: 750 !important;
  line-height: 1.18 !important;
  letter-spacing: -.02em !important;
}
body.v30-premium .confidence-history-card .bb-product-brand {
  margin-bottom: 8px !important;
  font-size: .76rem !important;
  font-weight: 550 !important;
}
body.v30-premium .confidence-history-card .bb-product-meta {
  font-size: .66rem !important;
  font-weight: 550 !important;
}
body.v30-premium .confidence-history-card .bb-product-score {
  align-self: center !important;
}
body.v30-premium .confidence-history-card .bb-product-score strong {
  font-size: 1.55rem !important;
  font-weight: 800 !important;
  line-height: .95 !important;
}
body.v30-premium .confidence-history-card .bb-product-verdict {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 5px !important;
  font-size: .56rem !important;
  font-weight: 800 !important;
  line-height: 1.15 !important;
}
body.v30-premium .confidence-history-card .bb-product-verdict::before {
  content: "" !important;
  width: 6px !important;
  height: 6px !important;
  flex: 0 0 6px !important;
  border-radius: 50% !important;
  background: currentColor !important;
}

@media (max-width: 430px) {
  body.v30-premium .product-result .product-overview-row {
    grid-template-columns: 104px minmax(0, 1fr) !important;
    gap: 13px !important;
  }
  body.v30-premium .product-result .product-photo.framed {
    width: 104px !important;
    min-width: 104px !important;
    height: 140px !important;
    min-height: 140px !important;
  }
  body.v30-premium .product-result .product-summary-copy h1 {
    font-size: 1.18rem !important;
  }
  body.v30-premium .product-result .product-decision-summary .shopping-confidence-recommendation,
  body.v30-premium .product-result .product-decision-summary .shopping-confidence-recommendation strong {
    font-size: .72rem !important;
  }
  body.v30-premium .product-result .product-decision-summary .shopper-score-line strong {
    font-size: 1.82rem !important;
  }
  body.v30-premium.v27-friendly .confidence-history-card,
  body.v30-premium .confidence-history-card {
    grid-template-columns: 72px minmax(0, 1fr) 66px !important;
    gap: 10px !important;
    min-height: 102px !important;
    padding: 10px 12px !important;
  }
  body.v30-premium .confidence-history-card .bb-product-thumb {
    width: 72px !important;
    height: 78px !important;
    min-height: 78px !important;
  }
}

@media (max-width: 355px) {
  body.v30-premium .product-result .product-overview-row {
    grid-template-columns: 92px minmax(0, 1fr) !important;
    gap: 11px !important;
  }
  body.v30-premium .product-result .product-photo.framed {
    width: 92px !important;
    min-width: 92px !important;
    height: 126px !important;
    min-height: 126px !important;
  }
  body.v30-premium .product-result .product-decision-summary .shopping-confidence-topline {
    align-items: flex-start !important;
    flex-direction: column !important;
  }
  body.v30-premium .product-result .product-decision-summary .shopper-score-line {
    align-self: flex-start !important;
  }
}


/* BasketBalance v30.4 — consolidated mobile typography and product-row refinement
   Implements the final review batch across History, Saved products, Search,
   Product detail and account dialogs. */

body.v30-premium {
  --v30-font: "Plus Jakarta Sans", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* Functional app screens use one familiar sans-serif system. */
body.v30-premium .history-screen,
body.v30-premium .lists-screen,
body.v30-premium .search-screen,
body.v30-premium .product-screen,
body.v30-premium .alerts-screen,
body.v30-premium .profile-screen,
body.v30-premium .history-screen *,
body.v30-premium .lists-screen *,
body.v30-premium .search-screen *,
body.v30-premium .product-screen *,
body.v30-premium .alerts-screen *,
body.v30-premium .profile-screen * {
  font-family: var(--v30-font) !important;
  font-synthesis: none;
}
body.v30-premium .screen-header > span,
body.v30-premium .screen-header #historyTitle,
body.v30-premium .screen-header #listsTitle,
body.v30-premium .screen-header #searchTitle {
  font-size: clamp(1.35rem, 5vw, 1.65rem) !important;
  font-weight: 800 !important;
  line-height: 1.08 !important;
  letter-spacing: -.035em !important;
}
body.v30-premium .list-section > h2,
body.v30-premium .results-heading h2,
body.v30-premium .price-alerts-section h2,
body.v30-premium .watch-products-section h2 {
  font-size: clamp(1.12rem, 4.2vw, 1.3rem) !important;
  margin-bottom: 11px !important;
}

/* Empty History state: compact and intentional rather than a large blank panel. */
body.v30-premium #historyPanel {
  min-height: 0 !important;
}
body.v30-premium #historyPanel .empty-card {
  min-height: 0 !important;
  margin: 0 !important;
  padding: 24px !important;
  border: 1px solid #e1e7e3 !important;
  border-radius: 18px !important;
  background: #fff !important;
  box-shadow: 0 8px 24px rgba(20, 43, 32, .055) !important;
}
body.v30-premium #historyPanel .empty-card h2 {
  margin: 0 0 8px !important;
  font-size: 1.18rem !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  letter-spacing: -.025em !important;
}
body.v30-premium #historyPanel .empty-card p {
  margin: 0 0 18px !important;
  font-size: .92rem !important;
  line-height: 1.55 !important;
}
body.v30-premium #historyPanel:has(.empty-card) {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
}

/* History: image left, all readable information and status in one text column. */
body.v30-premium.v27-friendly .confidence-history-card,
body.v30-premium .confidence-history-card {
  grid-template-columns: 88px minmax(0, 1fr) !important;
  gap: 15px !important;
  min-height: 126px !important;
  padding: 14px 16px !important;
  border: 0 !important;
  border-bottom: 1px solid #e8ece9 !important;
  border-radius: 0 !important;
  background: #fff !important;
  box-shadow: none !important;
}
body.v30-premium .confidence-history-card .bb-product-thumb {
  width: 88px !important;
  height: 94px !important;
  min-height: 94px !important;
  border: 1px solid #edf0ee !important;
  border-radius: 12px !important;
  background: #fafbf9 !important;
}
body.v30-premium .confidence-history-card .bb-product-copy,
body.v30-premium .confidence-saved-card .bb-product-copy {
  min-width: 0 !important;
  align-self: center !important;
}
body.v30-premium .confidence-history-card .bb-product-copy h3,
body.v30-premium .confidence-saved-card .bb-product-copy h3 {
  margin: 0 0 4px !important;
  font-size: 1.05rem !important;
  font-weight: 800 !important;
  line-height: 1.17 !important;
  letter-spacing: -.025em !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
}
body.v30-premium .confidence-history-card .bb-product-brand,
body.v30-premium .confidence-saved-card .bb-product-brand {
  margin: 0 0 5px !important;
  color: #64716a !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
}
body.v30-premium .confidence-history-card .bb-product-meta,
body.v30-premium .confidence-saved-card .bb-product-meta {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  color: #738079 !important;
  font-size: .9rem !important;
  font-weight: 550 !important;
  line-height: 1.3 !important;
}
body.v30-premium .bb-product-inline-score {
  --status-colour: var(--v30-limited);
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
  margin-top: 8px !important;
  color: var(--status-colour) !important;
  font-size: .84rem !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
}
body.v30-premium .bb-product-inline-score.great { --status-colour: var(--v30-great); }
body.v30-premium .bb-product-inline-score.good { --status-colour: var(--v30-good); }
body.v30-premium .bb-product-inline-score.mixed { --status-colour: #a75a00; }
body.v30-premium .bb-product-inline-score.poor { --status-colour: #cf4727; }
body.v30-premium .bb-product-inline-score.avoid { --status-colour: #d0171d; }
body.v30-premium .bb-product-inline-score.data-limited { --status-colour: #68746e; }
body.v30-premium .bb-product-inline-score .status-dot {
  width: 8px !important;
  height: 8px !important;
  flex: 0 0 8px !important;
  border-radius: 50% !important;
  background: currentColor !important;
}
body.v30-premium .bb-product-inline-score strong {
  font-size: inherit !important;
  font-weight: 800 !important;
}
body.v30-premium .bb-product-inline-score span:last-child {
  font-weight: 750 !important;
}
body.v30-premium .confidence-history-card .bb-product-score,
body.v30-premium .confidence-history-card .bb-product-verdict,
body.v30-premium .confidence-saved-card .bb-product-score,
body.v30-premium .confidence-saved-card .bb-product-verdict {
  display: none !important;
}

/* Saved products mirror History and remove the isolated score column. */
body.v30-premium.v27-friendly .confidence-saved-card,
body.v30-premium .confidence-saved-card {
  margin: 0 0 10px !important;
  border: 1px solid #e1e7e3 !important;
  border-top: 1px solid #e1e7e3 !important;
  border-radius: 17px !important;
  background: #fff !important;
  box-shadow: 0 7px 20px rgba(20, 43, 32, .05) !important;
}
body.v30-premium .confidence-saved-card .saved-product-open {
  display: grid !important;
  grid-template-columns: 88px minmax(0, 1fr) !important;
  gap: 15px !important;
  align-items: center !important;
  min-height: 130px !important;
  padding: 14px 16px 38px !important;
}
body.v30-premium .confidence-saved-card .bb-product-thumb {
  width: 88px !important;
  height: 94px !important;
  min-height: 94px !important;
  border: 1px solid #edf0ee !important;
  border-radius: 12px !important;
  background: #fafbf9 !important;
}
body.v30-premium .confidence-saved-card .saved-remove-button {
  right: 16px !important;
  bottom: 10px !important;
  padding: 4px 0 !important;
  color: #69756f !important;
  font-size: .78rem !important;
  font-weight: 650 !important;
  text-decoration: none !important;
}
body.v30-premium .confidence-saved-card .saved-remove-button::before {
  content: "×";
  margin-right: 5px;
  font-size: .95em;
}

/* Search loading and Explore card: compact, aligned and consistent. */
body.v30-premium .search-screen .loading-state {
  min-height: 88px !important;
  margin: 12px 0 18px !important;
  padding: 20px !important;
  border: 1px solid #e3e8e5 !important;
  border-radius: 18px !important;
  background: #fff !important;
  box-shadow: 0 7px 20px rgba(20, 43, 32, .045) !important;
  color: #66736c !important;
  font-size: .95rem !important;
  font-weight: 500 !important;
}
body.v30-premium .search-screen .loading-state .loader {
  width: 22px !important;
  height: 22px !important;
}
body.v30-premium .popular-searches {
  margin-top: 20px !important;
  padding: 20px !important;
  border: 1px solid #e1e7e3 !important;
  border-radius: 18px !important;
  background: #fff !important;
  box-shadow: 0 7px 20px rgba(20, 43, 32, .045) !important;
}
body.v30-premium .popular-searches .eyebrow {
  margin: 0 0 16px !important;
  padding: 0 0 14px !important;
  border-bottom: 1px solid #e8ece9 !important;
  color: #286d50 !important;
  font-size: .8rem !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  letter-spacing: .06em !important;
}
body.v30-premium .popular-searches .popular-list {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px !important;
}
body.v30-premium .popular-searches button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 44px !important;
  margin: 0 !important;
  padding: 9px 12px !important;
  border: 1px solid #d9e2dd !important;
  border-radius: 13px !important;
  color: #245f46 !important;
  background: #fff !important;
  font-size: .86rem !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  text-align: center !important;
}
body.v30-premium .popular-searches button:hover,
body.v30-premium .popular-searches button:focus-visible {
  border-color: #9fc5b1 !important;
  background: #f4faf6 !important;
}

/* Product identity and decision: less space, no broken words, clear back action. */
body.v30-premium .product-screen .product-back-button {
  border: 2px solid #176844 !important;
  color: #0f5136 !important;
  background: #fff !important;
  box-shadow: 0 4px 14px rgba(17, 58, 40, .13) !important;
}
body.v30-premium .product-screen .product-back-button span {
  font-size: 1.8rem !important;
  font-weight: 800 !important;
}
body.v30-premium .product-result .simplified-product-hero {
  padding: 13px !important;
  border-radius: 18px !important;
}
body.v30-premium .product-result .product-overview-row {
  grid-template-columns: 108px minmax(0, 1fr) !important;
  gap: 14px !important;
  align-items: start !important;
}
body.v30-premium .product-result .product-photo.framed {
  width: 108px !important;
  min-width: 108px !important;
  height: 136px !important;
  min-height: 136px !important;
  padding: 5px !important;
  border-radius: 14px !important;
}
body.v30-premium .product-result .product-summary-copy h1 {
  margin: 0 0 4px !important;
  font-size: clamp(1.08rem, 4.4vw, 1.34rem) !important;
  font-weight: 800 !important;
  line-height: 1.14 !important;
  letter-spacing: -.03em !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
}
body.v30-premium .product-result .brand-line {
  margin: 0 0 7px !important;
  font-size: .93rem !important;
  font-weight: 600 !important;
}
body.v30-premium .product-result .product-summary-copy .product-type-pill {
  min-height: 28px !important;
  padding: 4px 9px !important;
  font-size: .76rem !important;
}
body.v30-premium .product-result .product-decision-summary {
  margin-top: 10px !important;
  padding-top: 9px !important;
}
body.v30-premium .product-result .product-decision-summary > small {
  margin-bottom: 5px !important;
  font-size: .67rem !important;
  font-weight: 750 !important;
  letter-spacing: .045em !important;
}
body.v30-premium .product-result .product-decision-summary .shopping-confidence-topline {
  align-items: center !important;
  gap: 10px !important;
}
body.v30-premium .product-result .product-decision-summary .shopping-confidence-recommendation,
body.v30-premium .product-result .product-decision-summary .shopping-confidence-recommendation strong {
  font-size: .9rem !important;
  font-weight: 750 !important;
  line-height: 1.2 !important;
}
body.v30-premium .product-result .product-decision-summary .shopper-score-line strong {
  font-size: 1.72rem !important;
  font-weight: 800 !important;
}
body.v30-premium .product-result .product-decision-summary .shopper-score-line span {
  font-size: .76rem !important;
}

/* Why this score: compact information rows with balanced typography. */
body.v30-premium .product-result .shopper-result-panel {
  margin-top: 11px !important;
  border-radius: 14px !important;
}
body.v30-premium .product-result .score-reasons-label {
  padding: 10px 12px 8px !important;
  font-size: .72rem !important;
  font-weight: 750 !important;
  letter-spacing: .05em !important;
}
body.v30-premium .product-result .shopper-highlight {
  min-height: 45px !important;
  padding: 9px 12px !important;
  gap: 10px !important;
  font-size: .86rem !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
}
body.v30-premium .product-result .shopper-highlight-icon {
  width: 27px !important;
  height: 27px !important;
  flex: 0 0 27px !important;
}
body.v30-premium .product-result .shopping-advice-line {
  padding: 10px 12px 12px !important;
  font-size: .82rem !important;
  line-height: 1.45 !important;
}

/* Secondary product panels should not fall back to large serif headings. */
body.v30-premium .product-result .detail-panel h2,
body.v30-premium .product-result .recommendation-panel h2,
body.v30-premium .product-result .price-comparison-panel h2,
body.v30-premium .product-result .alternative-empty-card strong,
body.v30-premium .product-result .price-empty-copy strong,
body.v30-premium .product-result .section-heading h2 {
  font-family: var(--v30-font) !important;
  font-weight: 800 !important;
  letter-spacing: -.025em !important;
}
body.v30-premium .product-result .alternative-empty-card,
body.v30-premium .product-result .price-empty-state {
  padding: 18px !important;
  border-radius: 15px !important;
}
body.v30-premium .product-result .alternative-empty-card strong,
body.v30-premium .product-result .price-empty-copy strong {
  font-size: 1.08rem !important;
  line-height: 1.25 !important;
}
body.v30-premium .product-result .alternative-empty-card p,
body.v30-premium .product-result .price-empty-copy p {
  font-size: .88rem !important;
  line-height: 1.5 !important;
}
body.v30-premium .product-report-row .text-button {
  color: #176844 !important;
  background: transparent !important;
  border: 1px solid #dce5df !important;
  border-radius: 12px !important;
  font-size: .78rem !important;
  font-weight: 650 !important;
}

/* Watching must remain visible after selection. */
body.v30-premium .price-action-buttons .price-watch-button.is-watching,
body.v30-premium .price-action-buttons .price-watch-button.is-watching:disabled,
body.v30-premium .watch-action-button.is-watching,
body.v30-premium .watch-action-button.is-watching:disabled {
  opacity: 1 !important;
  color: #fff !important;
  border-color: #176b43 !important;
  background: #176b43 !important;
  box-shadow: 0 5px 14px rgba(23, 107, 67, .18) !important;
  -webkit-text-fill-color: #fff !important;
}

/* Account dialog: compact, readable, no overlapping Close/Show controls. */
body.v30-premium .signup-gate-dialog {
  width: min(92vw, 440px) !important;
  max-height: min(88dvh, 760px) !important;
  margin: auto !important;
  border: 0 !important;
  border-radius: 22px !important;
  overflow: auto !important;
  background: #fff !important;
  box-shadow: 0 24px 70px rgba(16, 36, 27, .28) !important;
}
body.v30-premium .signup-gate-panel {
  padding: 22px !important;
  background: #fff !important;
  font-family: var(--v30-font) !important;
}
body.v30-premium .signup-gate-panel .dialog-heading {
  position: static !important;
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 16px !important;
  margin-bottom: 10px !important;
}
body.v30-premium .signup-gate-panel .dialog-heading h2 {
  margin: 4px 0 0 !important;
  font-family: var(--v30-font) !important;
  font-size: 1.32rem !important;
  font-weight: 800 !important;
  line-height: 1.18 !important;
  letter-spacing: -.03em !important;
}
body.v30-premium .signup-gate-panel .close-text-button {
  position: static !important;
  flex: 0 0 auto !important;
  min-height: 38px !important;
  padding: 7px 12px !important;
  border: 1px solid #cfdad4 !important;
  border-radius: 11px !important;
  color: #154f36 !important;
  background: #fff !important;
  font-size: .78rem !important;
  font-weight: 750 !important;
}
body.v30-premium .signup-gate-panel > p,
body.v30-premium .signup-gate-panel .member-note {
  font-size: .85rem !important;
  line-height: 1.5 !important;
}
body.v30-premium .signup-gate-panel .field-label {
  margin-top: 11px !important;
  font-size: .76rem !important;
  font-weight: 750 !important;
  letter-spacing: .03em !important;
}
body.v30-premium .signup-gate-panel input[type="text"],
body.v30-premium .signup-gate-panel input[type="email"],
body.v30-premium .signup-gate-panel input[type="password"] {
  min-height: 48px !important;
  margin: 6px 0 4px !important;
  padding: 11px 13px !important;
  border: 1px solid #d5dfd9 !important;
  border-radius: 12px !important;
  background: #fff !important;
  font-size: .92rem !important;
}
body.v30-premium .signup-gate-panel .password-field-wrapper {
  position: relative !important;
  margin: 0 !important;
}
body.v30-premium .signup-gate-panel .password-field-wrapper input {
  padding-right: 70px !important;
}
body.v30-premium .signup-gate-panel .password-visibility-button {
  position: absolute !important;
  top: 50% !important;
  right: 7px !important;
  transform: translateY(-50%) !important;
  min-width: 54px !important;
  min-height: 34px !important;
  padding: 5px 9px !important;
  border: 1px solid #d6e0da !important;
  border-radius: 9px !important;
  color: #165f40 !important;
  background: #f4f8f5 !important;
  font-size: .72rem !important;
  font-weight: 750 !important;
}
body.v30-premium .signup-gate-panel .consent-line {
  display: grid !important;
  grid-template-columns: 22px minmax(0, 1fr) !important;
  gap: 10px !important;
  align-items: start !important;
  margin: 15px 0 !important;
  padding: 13px !important;
  border: 1px solid #e0e5e2 !important;
  border-radius: 13px !important;
  background: #fafbf9 !important;
}
body.v30-premium .signup-gate-panel .consent-line input {
  width: 20px !important;
  height: 20px !important;
  margin: 1px 0 0 !important;
}
body.v30-premium .signup-gate-panel .consent-line span {
  font-size: .82rem !important;
  font-weight: 550 !important;
  line-height: 1.45 !important;
}
body.v30-premium .signup-gate-panel .primary-button.full,
body.v30-premium .signup-gate-panel .text-button.full,
body.v30-premium .signup-gate-panel .guest-device-button.full {
  min-height: 48px !important;
  margin-top: 9px !important;
  border-radius: 12px !important;
  font-size: .9rem !important;
  font-weight: 750 !important;
}
body.v30-premium .signup-gate-panel .primary-button.full {
  color: #fff !important;
  background: #176b43 !important;
  border-color: #176b43 !important;
}

@media (min-width: 720px) {
  body.v30-premium .popular-searches .popular-list {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 430px) {
  body.v30-premium.v27-friendly .confidence-history-card,
  body.v30-premium .confidence-history-card {
    grid-template-columns: 78px minmax(0, 1fr) !important;
    gap: 12px !important;
    min-height: 116px !important;
    padding: 12px !important;
  }
  body.v30-premium .confidence-history-card .bb-product-thumb,
  body.v30-premium .confidence-saved-card .bb-product-thumb {
    width: 78px !important;
    height: 84px !important;
    min-height: 84px !important;
  }
  body.v30-premium .confidence-saved-card .saved-product-open {
    grid-template-columns: 78px minmax(0, 1fr) !important;
    gap: 12px !important;
    min-height: 120px !important;
    padding: 12px 12px 36px !important;
  }
  body.v30-premium .confidence-history-card .bb-product-copy h3,
  body.v30-premium .confidence-saved-card .bb-product-copy h3 {
    font-size: 1rem !important;
  }
  body.v30-premium .confidence-history-card .bb-product-brand,
  body.v30-premium .confidence-saved-card .bb-product-brand {
    font-size: .94rem !important;
  }
  body.v30-premium .confidence-history-card .bb-product-meta,
  body.v30-premium .confidence-saved-card .bb-product-meta {
    font-size: .84rem !important;
  }
  body.v30-premium .bb-product-inline-score {
    font-size: .8rem !important;
  }
  body.v30-premium .product-result .product-overview-row {
    grid-template-columns: 96px minmax(0, 1fr) !important;
    gap: 12px !important;
  }
  body.v30-premium .product-result .product-photo.framed {
    width: 96px !important;
    min-width: 96px !important;
    height: 124px !important;
    min-height: 124px !important;
  }
  body.v30-premium .product-result .product-summary-copy h1 {
    font-size: 1.05rem !important;
  }
  body.v30-premium .product-result .brand-line {
    font-size: .88rem !important;
  }
  body.v30-premium .product-result .product-decision-summary .shopping-confidence-recommendation,
  body.v30-premium .product-result .product-decision-summary .shopping-confidence-recommendation strong {
    font-size: .82rem !important;
  }
  body.v30-premium .product-result .product-decision-summary .shopper-score-line strong {
    font-size: 1.55rem !important;
  }
  body.v30-premium .signup-gate-dialog {
    width: calc(100vw - 24px) !important;
    max-height: calc(100dvh - 28px) !important;
    border-radius: 20px !important;
  }
  body.v30-premium .signup-gate-panel {
    padding: 18px !important;
  }
}

@media (max-width: 355px) {
  body.v30-premium .popular-searches .popular-list {
    grid-template-columns: 1fr !important;
  }
  body.v30-premium .product-result .product-decision-summary .shopping-confidence-topline {
    flex-direction: row !important;
    align-items: center !important;
  }
}

/* BasketBalance v30.5 — unified Search, Lists, dialogs and return navigation */
body.v30-premium {
  --v305-border: #dfe6e2;
  --v305-soft: #f6f8f6;
  --v305-text: #113d2d;
  --v305-muted: #68766f;
  --v305-shadow: 0 10px 28px rgba(18, 54, 39, .07);
}

/* Product back navigation must be obvious and must describe its destination. */
body.v30-premium .product-screen .product-back-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 7px !important;
  width: auto !important;
  min-width: 92px !important;
  min-height: 44px !important;
  padding: 9px 13px !important;
  border: 1.5px solid #176b43 !important;
  border-radius: 13px !important;
  color: #0f5136 !important;
  background: #fff !important;
  box-shadow: 0 5px 16px rgba(17, 75, 50, .12) !important;
  font-family: var(--v30-font) !important;
  font-size: .8rem !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}
body.v30-premium .product-screen .product-back-arrow {
  font-size: 1.2rem !important;
  line-height: 1 !important;
}
body.v30-premium .product-screen .product-back-label {
  display: inline !important;
}
body.v30-premium .product-screen .screen-header {
  grid-template-columns: auto minmax(0, 1fr) auto !important;
  gap: 10px !important;
}

/* Search page: balanced headings and compact loading/explore panels. */
body.v30-premium .search-screen .search-card {
  padding: 16px !important;
  border: 1px solid var(--v305-border) !important;
  border-radius: 18px !important;
  background: #fff !important;
  box-shadow: var(--v305-shadow) !important;
}
body.v30-premium .search-screen .search-card label {
  margin-bottom: 8px !important;
  color: var(--v305-text) !important;
  font-size: .82rem !important;
  font-weight: 750 !important;
}
body.v30-premium .search-screen .loading-state {
  min-height: 76px !important;
  margin: 14px 0 20px !important;
  padding: 17px 18px !important;
  gap: 10px !important;
  font-size: .95rem !important;
}
body.v30-premium .results-heading {
  margin: 24px 0 12px !important;
}
body.v30-premium .results-heading .eyebrow {
  margin-bottom: 5px !important;
  font-size: .72rem !important;
  letter-spacing: .06em !important;
}
body.v30-premium .results-heading h2 {
  margin: 0 !important;
  font-size: 1.28rem !important;
  line-height: 1.2 !important;
  letter-spacing: -.025em !important;
}
body.v30-premium .popular-searches {
  margin-top: 24px !important;
  padding: 18px !important;
}
body.v30-premium .popular-searches .eyebrow {
  margin: 0 0 14px !important;
  padding: 0 0 12px !important;
  font-size: .76rem !important;
  letter-spacing: .045em !important;
}
body.v30-premium .popular-searches .popular-list {
  gap: 9px !important;
}
body.v30-premium .popular-searches button {
  min-height: 43px !important;
  padding: 9px 10px !important;
  font-size: .82rem !important;
}

/* Search results follow the same compact product-row language as History and Lists. */
body.v30-premium.v27-friendly .result-card,
body.v30-premium .result-card {
  display: grid !important;
  grid-template-columns: 92px minmax(0, 1fr) !important;
  grid-template-areas:
    "thumb copy"
    "thumb action" !important;
  gap: 8px 15px !important;
  align-items: start !important;
  min-height: 0 !important;
  margin: 0 0 12px !important;
  padding: 14px 15px !important;
  border: 1px solid var(--v305-border) !important;
  border-radius: 18px !important;
  background: #fff !important;
  box-shadow: var(--v305-shadow) !important;
}
body.v30-premium .result-card .bb-product-thumb {
  grid-area: thumb !important;
  width: 92px !important;
  height: 104px !important;
  min-height: 104px !important;
  border: 1px solid #e8edea !important;
  border-radius: 13px !important;
  background: #fafbf9 !important;
}
body.v30-premium .result-card .bb-product-copy {
  grid-area: copy !important;
  min-width: 0 !important;
}
body.v30-premium .result-card .bb-product-copy h3 {
  margin: 0 0 4px !important;
  color: var(--v305-text) !important;
  font-size: 1.04rem !important;
  font-weight: 800 !important;
  line-height: 1.18 !important;
  letter-spacing: -.025em !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
}
body.v30-premium .result-card .bb-product-brand {
  margin: 0 0 5px !important;
  color: var(--v305-muted) !important;
  font-size: .96rem !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
}
body.v30-premium .result-card .bb-product-meta {
  margin: 0 !important;
  color: #718078 !important;
  font-size: .88rem !important;
  font-weight: 600 !important;
}
body.v30-premium .result-card .bb-product-inline-score {
  margin-top: 7px !important;
  font-size: .84rem !important;
}
body.v30-premium .result-card .bb-product-findings {
  display: grid !important;
  gap: 2px !important;
  margin: 7px 0 0 !important;
  padding: 0 !important;
  list-style: none !important;
  color: #5d6b64 !important;
  font-size: .82rem !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
}
body.v30-premium .result-card .bb-product-findings li {
  margin: 0 !important;
  padding: 0 !important;
}
body.v30-premium .result-card .bb-product-findings li::before {
  content: none !important;
}
body.v30-premium .result-card .bb-product-score,
body.v30-premium .result-card > .bb-product-verdict {
  display: none !important;
}
body.v30-premium .result-card .bb-product-action {
  grid-area: action !important;
  justify-self: start !important;
  align-self: end !important;
  margin: 0 !important;
}
body.v30-premium .result-card .bb-product-action button {
  min-height: 34px !important;
  padding: 6px 12px !important;
  border: 1px solid #cddbd3 !important;
  border-radius: 10px !important;
  color: #176844 !important;
  background: #fff !important;
  font-family: var(--v30-font) !important;
  font-size: .78rem !important;
  font-weight: 750 !important;
}

/* Lists: one clear parent card, separator rows, compact actions. */
body.v30-premium .lists-screen #listsPanel {
  display: grid !important;
  gap: 20px !important;
}
body.v30-premium .list-section {
  margin: 0 !important;
}
body.v30-premium .list-section-heading {
  display: flex !important;
  align-items: flex-end !important;
  justify-content: space-between !important;
  gap: 14px !important;
  margin: 0 0 11px !important;
}
body.v30-premium .list-section-heading .eyebrow {
  margin: 0 0 3px !important;
  font-size: .7rem !important;
  letter-spacing: .06em !important;
}
body.v30-premium .list-section-heading h2 {
  margin: 0 !important;
  font-size: 1.25rem !important;
  line-height: 1.15 !important;
  letter-spacing: -.03em !important;
}
body.v30-premium .list-section-heading > span {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 32px !important;
  height: 32px !important;
  padding: 0 9px !important;
  border-radius: 999px !important;
  color: #176844 !important;
  background: #edf6f0 !important;
  font-size: .8rem !important;
  font-weight: 800 !important;
}
body.v30-premium .list-section-heading-actions {
  align-items: center !important;
}
body.v30-premium .compact-button {
  min-height: 40px !important;
  padding: 8px 13px !important;
  border-radius: 11px !important;
  font-size: .8rem !important;
  font-weight: 750 !important;
}
body.v30-premium .list-toolbar {
  display: flex !important;
  justify-content: flex-end !important;
  margin: -2px 0 10px !important;
}
body.v30-premium .shopping-list-card {
  margin: 0 0 12px !important;
  padding: 0 !important;
  border: 1px solid var(--v305-border) !important;
  border-radius: 18px !important;
  background: #fff !important;
  box-shadow: var(--v305-shadow) !important;
  overflow: visible !important;
}
body.v30-premium .shopping-list-heading {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 14px !important;
  margin: 0 !important;
  padding: 15px 16px 13px !important;
  border-bottom: 1px solid #e8ece9 !important;
}
body.v30-premium .shopping-list-heading h3 {
  margin: 0 0 3px !important;
  color: var(--v305-text) !important;
  font-size: 1.06rem !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  letter-spacing: -.025em !important;
}
body.v30-premium .shopping-list-heading p {
  margin: 0 !important;
  color: var(--v305-muted) !important;
  font-size: .84rem !important;
  line-height: 1.3 !important;
}
body.v30-premium .list-card-menu {
  position: relative !important;
  flex: 0 0 auto !important;
}
body.v30-premium .list-card-menu summary {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 40px !important;
  height: 40px !important;
  border: 1px solid #d9e2dd !important;
  border-radius: 11px !important;
  color: #315e49 !important;
  background: #fff !important;
  cursor: pointer !important;
  font-size: 1rem !important;
  font-weight: 800 !important;
  list-style: none !important;
}
body.v30-premium .list-card-menu summary::-webkit-details-marker { display: none !important; }
body.v30-premium .list-card-menu-popover {
  position: absolute !important;
  z-index: 40 !important;
  top: 46px !important;
  right: 0 !important;
  display: grid !important;
  min-width: 130px !important;
  padding: 6px !important;
  border: 1px solid #dce4df !important;
  border-radius: 12px !important;
  background: #fff !important;
  box-shadow: 0 14px 34px rgba(20, 43, 32, .16) !important;
}
body.v30-premium .list-card-menu-popover button {
  min-height: 36px !important;
  padding: 8px 10px !important;
  border: 0 !important;
  border-radius: 8px !important;
  color: #174e36 !important;
  background: transparent !important;
  font-size: .78rem !important;
  font-weight: 700 !important;
  text-align: left !important;
}
body.v30-premium .list-card-menu-popover button:hover { background: #f3f7f4 !important; }
body.v30-premium .list-card-menu-popover .danger-action { color: #c92229 !important; }
body.v30-premium .list-mini-products {
  display: grid !important;
  gap: 0 !important;
  padding: 0 14px !important;
}
body.v30-premium .list-mini-product {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 70px minmax(0, 1fr) 18px !important;
  gap: 12px !important;
  align-items: center !important;
  width: 100% !important;
  min-height: 96px !important;
  margin: 0 !important;
  padding: 12px 0 !important;
  border: 0 !important;
  border-bottom: 1px solid #e8ece9 !important;
  border-radius: 0 !important;
  color: inherit !important;
  background: transparent !important;
  text-align: left !important;
}
body.v30-premium .list-mini-product:last-child { border-bottom: 0 !important; }
body.v30-premium .list-mini-image {
  width: 70px !important;
  height: 72px !important;
  border: 1px solid #e8edea !important;
  border-radius: 11px !important;
  background: #fafbf9 !important;
  overflow: hidden !important;
}
body.v30-premium .list-mini-copy {
  display: block !important;
  min-width: 0 !important;
}
body.v30-premium .list-mini-copy > strong {
  display: block !important;
  margin: 0 0 3px !important;
  color: var(--v305-text) !important;
  font-size: .98rem !important;
  font-weight: 800 !important;
  line-height: 1.18 !important;
  letter-spacing: -.02em !important;
}
body.v30-premium .list-mini-copy > small {
  display: block !important;
  margin: 0 !important;
  color: var(--v305-muted) !important;
  font-size: .87rem !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
}
body.v30-premium .list-mini-copy .bb-product-inline-score {
  margin-top: 7px !important;
  font-size: .79rem !important;
}
body.v30-premium .list-row-chevron {
  color: #9aa49f !important;
  font-size: 1.4rem !important;
  font-weight: 400 !important;
}
body.v30-premium .compact-empty-state {
  display: grid !important;
  justify-items: start !important;
  gap: 6px !important;
  padding: 18px !important;
  border: 1px solid var(--v305-border) !important;
  border-radius: 16px !important;
  background: #fff !important;
  box-shadow: 0 7px 20px rgba(20, 43, 32, .04) !important;
}
body.v30-premium .compact-empty-state strong {
  color: var(--v305-text) !important;
  font-size: 1rem !important;
  font-weight: 800 !important;
}
body.v30-premium .compact-empty-state span {
  color: var(--v305-muted) !important;
  font-size: .86rem !important;
  line-height: 1.45 !important;
}
body.v30-premium .list-empty-state {
  margin: 14px 0 !important;
  box-shadow: none !important;
}
body.v30-premium .price-watch-summary-card {
  padding: 16px !important;
  border: 1px solid var(--v305-border) !important;
  border-radius: 18px !important;
  background: #fff !important;
  box-shadow: var(--v305-shadow) !important;
}

/* Saved-product rows share the cleaner product-row rhythm. */
body.v30-premium .confidence-saved-card .saved-product-open {
  grid-template-columns: 82px minmax(0, 1fr) !important;
  gap: 13px !important;
  min-height: 116px !important;
  padding: 13px 15px 34px !important;
}
body.v30-premium .confidence-saved-card .bb-product-thumb {
  width: 82px !important;
  height: 88px !important;
  min-height: 88px !important;
}
body.v30-premium .confidence-saved-card .saved-remove-button {
  right: 15px !important;
  bottom: 8px !important;
  color: #68766f !important;
  font-size: .75rem !important;
}

/* Add-to-list and compare dialogs: compact mobile sheets with usable controls. */
body.v30-premium .list-dialog,
body.v30-premium .compare-list-dialog {
  width: min(92vw, 480px) !important;
  max-width: 480px !important;
  max-height: min(88dvh, 760px) !important;
  margin: auto !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 22px !important;
  overflow: hidden !important;
  background: #fff !important;
  box-shadow: 0 24px 70px rgba(16, 36, 27, .28) !important;
}
body.v30-premium .list-dialog::backdrop,
body.v30-premium .compare-list-dialog::backdrop {
  background: rgba(16, 31, 24, .54) !important;
  backdrop-filter: blur(5px) !important;
}
body.v30-premium .list-panel,
body.v30-premium .compare-list-panel {
  max-height: min(88dvh, 760px) !important;
  padding: 20px !important;
  overflow: auto !important;
  background: #fff !important;
  font-family: var(--v30-font) !important;
}
body.v30-premium .list-panel .dialog-heading,
body.v30-premium .compare-list-panel .dialog-heading {
  position: sticky !important;
  z-index: 4 !important;
  top: -20px !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 14px !important;
  align-items: start !important;
  margin: -20px -20px 16px !important;
  padding: 20px !important;
  border-bottom: 1px solid #e8ece9 !important;
  background: #fff !important;
}
body.v30-premium .list-panel .dialog-heading .eyebrow,
body.v30-premium .compare-list-panel .dialog-heading .eyebrow {
  margin: 0 0 4px !important;
  font-size: .7rem !important;
  letter-spacing: .06em !important;
}
body.v30-premium .list-panel .dialog-heading h2,
body.v30-premium .compare-list-panel .dialog-heading h2 {
  margin: 0 !important;
  color: var(--v305-text) !important;
  font-family: var(--v30-font) !important;
  font-size: 1.28rem !important;
  font-weight: 800 !important;
  line-height: 1.18 !important;
  letter-spacing: -.03em !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
}
body.v30-premium .modal-close-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 42px !important;
  height: 42px !important;
  min-width: 42px !important;
  min-height: 42px !important;
  padding: 0 !important;
  border: 1px solid #d6dfda !important;
  border-radius: 12px !important;
  color: #174f37 !important;
  background: #fff !important;
  font-family: var(--v30-font) !important;
  font-size: 1.25rem !important;
  font-weight: 700 !important;
  line-height: 1 !important;
}
body.v30-premium .list-section-label {
  margin: 0 0 9px !important;
  color: #5d6b64 !important;
  font-size: .84rem !important;
  font-weight: 650 !important;
}
body.v30-premium .list-choices {
  display: grid !important;
  gap: 8px !important;
  margin: 0 0 16px !important;
}
body.v30-premium .list-choice-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 28px !important;
  gap: 12px !important;
  align-items: center !important;
  width: 100% !important;
  min-height: 58px !important;
  padding: 10px 13px !important;
  border: 1px solid #dfe6e2 !important;
  border-radius: 13px !important;
  color: #174f37 !important;
  background: #fff !important;
  text-align: left !important;
}
body.v30-premium .list-choice-row.is-selected {
  border-color: #27825a !important;
  background: #f0f8f3 !important;
  box-shadow: inset 0 0 0 1px #27825a !important;
}
body.v30-premium .list-choice-copy strong {
  display: block !important;
  font-size: .93rem !important;
  font-weight: 750 !important;
}
body.v30-premium .list-choice-copy small {
  display: block !important;
  margin-top: 2px !important;
  color: #738078 !important;
  font-size: .75rem !important;
}
body.v30-premium .list-choice-check {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 25px !important;
  height: 25px !important;
  border-radius: 50% !important;
  color: #fff !important;
  background: #27825a !important;
  font-size: .78rem !important;
  font-weight: 800 !important;
}
body.v30-premium .list-choice-row:not(.is-selected) .list-choice-check {
  background: #eef2ef !important;
}
body.v30-premium .list-confirm-button {
  margin: 0 0 18px !important;
}
body.v30-premium .new-list-section {
  padding-top: 15px !important;
  border-top: 1px solid #e8ece9 !important;
}
body.v30-premium .list-dialog.is-create-only .new-list-section {
  padding-top: 0 !important;
  border-top: 0 !important;
}
body.v30-premium .list-create-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 9px !important;
  align-items: stretch !important;
}
body.v30-premium .list-create-row input {
  min-height: 48px !important;
  margin: 0 !important;
  padding: 11px 13px !important;
  border: 1px solid #d4ded8 !important;
  border-radius: 12px !important;
  font-size: .9rem !important;
}
body.v30-premium .list-create-row button {
  min-height: 48px !important;
  padding: 10px 14px !important;
  border-radius: 12px !important;
  white-space: nowrap !important;
  font-size: .82rem !important;
}
body.v30-premium .compare-list-intro {
  margin: 0 0 14px !important;
  color: #5f6e66 !important;
  font-size: .86rem !important;
  line-height: 1.5 !important;
}
body.v30-premium .compare-product-list {
  display: grid !important;
  gap: 0 !important;
  border: 1px solid #e1e7e3 !important;
  border-radius: 15px !important;
  overflow: hidden !important;
}
body.v30-premium .compare-product-row {
  display: grid !important;
  grid-template-columns: 64px minmax(0, 1fr) 18px !important;
  gap: 11px !important;
  align-items: center !important;
  width: 100% !important;
  min-height: 88px !important;
  padding: 11px !important;
  border: 0 !important;
  border-bottom: 1px solid #e8ece9 !important;
  color: inherit !important;
  background: #fff !important;
  text-align: left !important;
}
body.v30-premium .compare-product-row:last-child { border-bottom: 0 !important; }
body.v30-premium .compare-product-image {
  width: 64px !important;
  height: 66px !important;
  border: 1px solid #e8edea !important;
  border-radius: 10px !important;
  overflow: hidden !important;
}
body.v30-premium .compare-product-copy strong {
  display: block !important;
  color: var(--v305-text) !important;
  font-size: .92rem !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
}
body.v30-premium .compare-product-copy small {
  display: block !important;
  margin-top: 2px !important;
  color: var(--v305-muted) !important;
  font-size: .8rem !important;
}
body.v30-premium .compare-product-copy .bb-product-inline-score {
  margin-top: 6px !important;
  font-size: .74rem !important;
}

/* Account modal: no squeezed title, no overlapping controls, clear scroll area. */
body.v30-premium .signup-gate-dialog {
  width: min(92vw, 460px) !important;
  max-height: min(90dvh, 780px) !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: #fff !important;
}
body.v30-premium .signup-gate-panel {
  max-height: min(90dvh, 780px) !important;
  padding: 20px !important;
  overflow: auto !important;
  background: #fff !important;
}
body.v30-premium .signup-gate-panel .dialog-heading {
  position: sticky !important;
  z-index: 5 !important;
  top: -20px !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 14px !important;
  align-items: start !important;
  margin: -20px -20px 14px !important;
  padding: 20px !important;
  border-bottom: 1px solid #e8ece9 !important;
  background: #fff !important;
}
body.v30-premium .signup-gate-panel .dialog-heading h2 {
  max-width: none !important;
  margin: 0 !important;
  font-size: 1.3rem !important;
  line-height: 1.18 !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
}
body.v30-premium .signup-gate-panel .dialog-heading .eyebrow {
  margin: 0 0 4px !important;
  font-size: .7rem !important;
}
body.v30-premium .signup-gate-panel > p {
  margin: 0 0 13px !important;
}
body.v30-premium .signup-gate-panel .member-note {
  margin: 14px 0 0 !important;
}

@media (max-width: 430px) {
  body.v30-premium.v27-friendly .result-card,
  body.v30-premium .result-card {
    grid-template-columns: 80px minmax(0, 1fr) !important;
    gap: 7px 12px !important;
    padding: 12px !important;
  }
  body.v30-premium .result-card .bb-product-thumb {
    width: 80px !important;
    height: 94px !important;
    min-height: 94px !important;
  }
  body.v30-premium .result-card .bb-product-copy h3 { font-size: .98rem !important; }
  body.v30-premium .result-card .bb-product-brand { font-size: .9rem !important; }
  body.v30-premium .result-card .bb-product-meta { font-size: .83rem !important; }
  body.v30-premium .result-card .bb-product-findings { font-size: .78rem !important; }
  body.v30-premium .product-screen .product-back-button {
    min-width: 44px !important;
    padding: 9px 10px !important;
  }
  body.v30-premium .product-screen .product-back-label {
    display: none !important;
  }
  body.v30-premium .list-create-row {
    grid-template-columns: 1fr !important;
  }
  body.v30-premium .list-create-row button {
    width: 100% !important;
  }
  body.v30-premium .list-panel,
  body.v30-premium .compare-list-panel,
  body.v30-premium .signup-gate-panel {
    padding: 17px !important;
  }
  body.v30-premium .list-panel .dialog-heading,
  body.v30-premium .compare-list-panel .dialog-heading,
  body.v30-premium .signup-gate-panel .dialog-heading {
    top: -17px !important;
    margin: -17px -17px 14px !important;
    padding: 17px !important;
  }
}

/* BasketBalance v30.6 — product header overlap hotfix
   Keep destination-aware back navigation, but present it as a compact icon so
   the centred page title and Share action can never collide. */
body.v30-premium .product-screen .screen-header {
  display: grid !important;
  grid-template-columns: 48px minmax(0, 1fr) 92px !important;
  align-items: center !important;
  justify-content: initial !important;
  gap: 8px !important;
  min-height: 60px !important;
  padding: 7px 0 !important;
}
body.v30-premium .product-screen .product-back-button {
  grid-column: 1 !important;
  justify-self: start !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 46px !important;
  min-width: 46px !important;
  max-width: 46px !important;
  height: 46px !important;
  min-height: 46px !important;
  padding: 0 !important;
  gap: 0 !important;
  overflow: hidden !important;
  border: 2px solid #176844 !important;
  border-radius: 14px !important;
  color: #0f5136 !important;
  background: #fff !important;
  box-shadow: 0 5px 15px rgba(17, 75, 50, .12) !important;
}
body.v30-premium .product-screen .product-back-label {
  display: none !important;
}
body.v30-premium .product-screen .product-back-arrow {
  display: block !important;
  transform: none !important;
  font-family: Arial, Helvetica, sans-serif !important;
  font-size: 1.58rem !important;
  font-weight: 700 !important;
  line-height: 1 !important;
}
body.v30-premium .product-screen .screen-header > span {
  grid-column: 2 !important;
  justify-self: center !important;
  min-width: 0 !important;
  margin: 0 !important;
  text-align: center !important;
  white-space: nowrap !important;
}
body.v30-premium .product-screen .screen-header [data-action="share-current"] {
  grid-column: 3 !important;
  justify-self: end !important;
  width: auto !important;
  min-width: 88px !important;
  max-width: 92px !important;
  min-height: 44px !important;
  padding: 9px 12px !important;
  white-space: nowrap !important;
}

/* Keep product actions and following content above the fixed app navigation. */
body.v30-premium .product-screen {
  padding-bottom: calc(170px + env(safe-area-inset-bottom, 0px)) !important;
}
body.v30-premium .product-screen .product-result {
  padding-bottom: calc(118px + env(safe-area-inset-bottom, 0px)) !important;
}
body.v30-premium .product-result .post-scan-actions {
  margin-bottom: 24px !important;
}

@media (max-width: 380px) {
  body.v30-premium .product-screen .screen-header {
    grid-template-columns: 46px minmax(0, 1fr) 82px !important;
    gap: 6px !important;
  }
  body.v30-premium .product-screen .screen-header > span {
    font-size: 1.08rem !important;
  }
  body.v30-premium .product-screen .screen-header [data-action="share-current"] {
    min-width: 80px !important;
    max-width: 82px !important;
    padding-inline: 9px !important;
    font-size: .75rem !important;
  }
}


/* BasketBalance v30.7 — definitive product-header back-button repair.
   The text label is removed from the markup; these rules also neutralise any
   stale/cached legacy positioning that could push the control off-screen. */
body.v30-premium .product-screen .screen-header {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 10px !important;
  padding-right: 10px !important;
  overflow: visible !important;
  grid-template-columns: 48px minmax(0, 1fr) 92px !important;
}
body.v30-premium .product-screen .product-back-button {
  position: static !important;
  inset: auto !important;
  left: auto !important;
  right: auto !important;
  transform: none !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  overflow: visible !important;
  text-indent: 0 !important;
  white-space: normal !important;
}
body.v30-premium .product-screen .product-back-button .product-back-label,
body.v30-premium .product-screen .product-back-button span:not(.product-back-arrow) {
  display: none !important;
  width: 0 !important;
  max-width: 0 !important;
  overflow: hidden !important;
}
body.v30-premium .product-screen .product-back-arrow {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: translateY(-1px) !important;
}
body.v30-premium .product-screen .screen-header > span {
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
@media (max-width: 430px) {
  body.v30-premium .product-screen .screen-header {
    grid-template-columns: 46px minmax(0, 1fr) 86px !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
}

/* BasketBalance v30.8 — responsive product-detail layout hotfix
   Keeps the v30.7 header repair, while ensuring long product names, verdicts,
   scores and the final actions stay readable on narrow iPhone viewports. */
body.v30-premium .product-result .simplified-product-hero,
body.v30-premium .product-result .product-overview-row,
body.v30-premium .product-result .product-summary-copy,
body.v30-premium .product-result .product-decision-summary,
body.v30-premium .product-result .shopping-confidence-topline {
  box-sizing: border-box !important;
  max-width: 100% !important;
  min-width: 0 !important;
}

body.v30-premium .product-result .simplified-product-hero {
  width: 100% !important;
  overflow: hidden !important;
}

body.v30-premium .product-result .product-overview-row {
  width: 100% !important;
  grid-template-columns: minmax(96px, 122px) minmax(0, 1fr) !important;
  align-items: start !important;
}

body.v30-premium .product-result .product-summary-copy {
  width: 100% !important;
  overflow: hidden !important;
}

body.v30-premium .product-result .product-summary-copy h1,
body.v30-premium .product-result #resultTitle {
  display: block !important;
  max-width: 100% !important;
  overflow: visible !important;
  white-space: normal !important;
  overflow-wrap: break-word !important;
  word-break: normal !important;
  hyphens: none !important;
  text-wrap: balance !important;
}

body.v30-premium .product-result .brand-line,
body.v30-premium .product-result .product-summary-copy .product-type-pill {
  max-width: 100% !important;
}

body.v30-premium .product-result .product-decision-summary {
  overflow: hidden !important;
}

body.v30-premium .product-result .product-decision-summary .shopping-confidence-topline {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: 8px 12px !important;
  width: 100% !important;
  overflow: hidden !important;
}

body.v30-premium .product-result .product-decision-summary .shopping-confidence-recommendation {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  width: auto !important;
  max-width: 100% !important;
  min-width: 0 !important;
  overflow: hidden !important;
}

body.v30-premium .product-result .product-decision-summary .shopping-confidence-recommendation strong {
  display: block !important;
  min-width: 0 !important;
  max-width: 100% !important;
  white-space: normal !important;
  overflow-wrap: break-word !important;
  word-break: normal !important;
}

body.v30-premium .product-result .product-decision-summary .shopper-score-line {
  display: inline-flex !important;
  align-items: baseline !important;
  justify-content: flex-start !important;
  justify-self: end !important;
  max-width: 100% !important;
  min-width: 0 !important;
  padding-right: 2px !important;
  overflow: visible !important;
  white-space: nowrap !important;
}

/* Reserve enough scrollable space for the fixed app navigation and Safari bar.
   This keeps the final actions and report link reachable above the navigation. */
body.v30-premium .product-screen {
  scroll-padding-bottom: calc(190px + env(safe-area-inset-bottom, 0px)) !important;
  padding-bottom: calc(250px + env(safe-area-inset-bottom, 0px)) !important;
}
body.v30-premium .product-screen .product-result {
  padding-bottom: calc(230px + env(safe-area-inset-bottom, 0px)) !important;
}
body.v30-premium .product-result .post-scan-actions,
body.v30-premium .product-result .detail-panel,
body.v30-premium .product-result .recommendation-panel,
body.v30-premium .product-result .product-report-row {
  scroll-margin-bottom: calc(150px + env(safe-area-inset-bottom, 0px)) !important;
}
body.v30-premium .product-result .product-report-row {
  margin-bottom: 36px !important;
}

@media (max-width: 430px) {
  body.v30-premium .product-screen .screen-header {
    grid-template-columns: 42px minmax(0, 1fr) 84px !important;
    gap: 7px !important;
    padding-left: 6px !important;
    padding-right: 6px !important;
  }
  body.v30-premium .product-screen .product-back-button {
    width: 42px !important;
    min-width: 42px !important;
    max-width: 42px !important;
    height: 42px !important;
    min-height: 42px !important;
    border-radius: 13px !important;
  }
  body.v30-premium .product-screen .product-back-arrow {
    font-size: 1.42rem !important;
  }
  body.v30-premium .product-screen .screen-header > span {
    font-size: 1.14rem !important;
  }
  body.v30-premium .product-screen .screen-header [data-action="share-current"] {
    min-width: 82px !important;
    max-width: 84px !important;
    min-height: 42px !important;
    padding: 8px 9px !important;
    font-size: .73rem !important;
  }

  body.v30-premium .product-result .simplified-product-hero {
    padding: 12px !important;
  }
  body.v30-premium .product-result .product-overview-row {
    grid-template-columns: 92px minmax(0, 1fr) !important;
    gap: 10px !important;
  }
  body.v30-premium .product-result .product-photo.framed {
    width: 92px !important;
    min-width: 92px !important;
    height: 120px !important;
    min-height: 120px !important;
    padding: 5px !important;
  }
  body.v30-premium .product-result .product-summary-copy h1,
  body.v30-premium .product-result #resultTitle {
    margin-top: 0 !important;
    font-size: clamp(1.04rem, 5.2vw, 1.23rem) !important;
    line-height: 1.14 !important;
    letter-spacing: -.028em !important;
  }
  body.v30-premium .product-result .brand-line {
    margin-bottom: 7px !important;
    font-size: .86rem !important;
  }
  body.v30-premium .product-result .product-summary-copy .product-type-pill {
    min-height: 28px !important;
    padding: 4px 9px !important;
    font-size: .68rem !important;
  }
  body.v30-premium .product-result .product-decision-summary {
    margin-top: 9px !important;
    padding-top: 9px !important;
  }
  body.v30-premium .product-result .product-decision-summary > small {
    margin-bottom: 6px !important;
    font-size: .58rem !important;
  }
  body.v30-premium .product-result .product-decision-summary .shopping-confidence-topline {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 5px !important;
    align-items: start !important;
  }
  body.v30-premium .product-result .product-decision-summary .shopping-confidence-recommendation,
  body.v30-premium .product-result .product-decision-summary .shopping-confidence-recommendation strong {
    font-size: .82rem !important;
    line-height: 1.2 !important;
  }
  body.v30-premium .product-result .product-decision-summary .shopper-score-line {
    justify-self: start !important;
    padding-right: 0 !important;
  }
  body.v30-premium .product-result .product-decision-summary .shopper-score-line strong {
    font-size: 1.62rem !important;
    line-height: 1 !important;
    letter-spacing: -.045em !important;
  }
  body.v30-premium .product-result .product-decision-summary .shopper-score-line span {
    font-size: .74rem !important;
  }
}

@media (max-width: 350px) {
  body.v30-premium .product-result .product-overview-row {
    grid-template-columns: 82px minmax(0, 1fr) !important;
    gap: 9px !important;
  }
  body.v30-premium .product-result .product-photo.framed {
    width: 82px !important;
    min-width: 82px !important;
    height: 108px !important;
    min-height: 108px !important;
  }
  body.v30-premium .product-result .product-summary-copy h1,
  body.v30-premium .product-result #resultTitle {
    font-size: 1rem !important;
  }
}


/* BasketBalance v30.9 — SEO consolidation and high-impression guide polish */
.anchor-target {
  display: block;
  position: relative;
  top: -12px;
  width: 1px;
  height: 0;
  overflow: hidden;
  visibility: hidden;
}
.seo-growth-guide .seo-guide-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 22px;
  align-items: center;
  margin: 18px 0 20px;
  padding: clamp(18px, 4vw, 28px);
  border: 1px solid rgba(31, 91, 57, .1);
  border-radius: 24px;
  background: linear-gradient(135deg, rgba(226, 244, 255, .9), rgba(255, 242, 188, .72));
  box-shadow: 0 14px 34px rgba(49, 68, 54, .09);
}
.seo-growth-guide .seo-guide-hero .eyebrow {
  margin: 0 0 7px;
  color: #17643d;
  font: 800 .74rem/1.2 "Plus Jakarta Sans", system-ui, sans-serif;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.v28-sitewide.is-guide-page .seo-growth-guide .seo-guide-hero h2 {
  width: auto;
  margin: 0 0 8px;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: #173c2a;
  font: 800 clamp(1.32rem, 4.8vw, 1.9rem)/1.15 "Plus Jakarta Sans", system-ui, sans-serif;
}
.v28-sitewide.is-guide-page .seo-growth-guide .seo-guide-hero h2::before { display: none; }
.seo-growth-guide .seo-guide-hero p:last-child {
  margin: 0;
  color: #56695e;
  line-height: 1.55;
}
.guide-action-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}
.seo-guide-hero .guide-action-row { justify-content: flex-end; }
.secondary-guide-button {
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 13px 19px;
  border: 1.5px solid rgba(31, 91, 57, .2);
  border-radius: 16px;
  background: rgba(255,255,255,.9);
  color: #17643d !important;
  font: 800 .94rem/1 "Plus Jakarta Sans", system-ui, sans-serif;
  text-decoration: none !important;
  box-shadow: 0 8px 20px rgba(49, 68, 54, .07);
}
.guide-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 22px 0 30px;
}
.guide-summary-grid > div {
  min-width: 0;
  padding: 17px;
  border: 1px solid rgba(31, 91, 57, .09);
  border-radius: 19px;
  background: #f8fbf9;
}
.guide-summary-grid > div:nth-child(2) { background: #fff8db; }
.guide-summary-grid > div:nth-child(3) { background: #eef6ff; }
.guide-summary-grid strong,
.guide-summary-grid span { display: block; }
.guide-summary-grid strong {
  margin-bottom: 6px;
  color: #173c2a;
  font: 800 .96rem/1.35 "Plus Jakarta Sans", system-ui, sans-serif;
}
.guide-summary-grid span {
  color: #607067;
  font: 500 .88rem/1.55 "Plus Jakarta Sans", system-ui, sans-serif;
}
.guide-step-list {
  counter-reset: bb-guide-step;
  display: grid;
  gap: 10px;
  padding: 0;
  list-style: none;
}
.guide-step-list li {
  position: relative;
  min-height: 52px;
  padding: 14px 15px 14px 58px;
  border: 1px solid rgba(31, 91, 57, .09);
  border-radius: 17px;
  background: #f8fbf9;
}
.guide-step-list li::before {
  counter-increment: bb-guide-step;
  content: counter(bb-guide-step);
  position: absolute;
  left: 14px;
  top: 13px;
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #17643d;
  color: #fff;
  font: 800 .82rem/1 "Plus Jakarta Sans", system-ui, sans-serif;
}
.seo-growth-guide .guide-cta-panel .guide-action-row { margin-top: 14px; }
@media (max-width: 680px) {
  .seo-growth-guide .seo-guide-hero { grid-template-columns: 1fr; gap: 14px; }
  .seo-guide-hero .guide-action-row { justify-content: flex-start; }
  .guide-summary-grid { grid-template-columns: 1fr; }
  .guide-action-row > a { width: 100%; }
}
