.list-dialog { width: min(620px, calc(100vw - 24px)); }
.list-dialog[data-view="history"] { height: min(560px, calc(100dvh - 32px)); overflow: hidden; }
.list-dialog[data-view="history"][open] { display: flex; flex-direction: column; }
.list-dialog[data-view="history"] .comparison-heading { flex: 0 0 auto; }
.list-dialog[data-view="history"] #list-dialog-content { min-height: 0; overflow-y: auto; scrollbar-gutter: stable; }
.list-dialog .comparison-heading { margin-bottom: 8px; }
.list-context { margin: 0 0 20px; font-size: 13px; line-height: 1.5; }
.list-caption { color: var(--muted); font: 400 12px/1.5 var(--font-body); margin: 8px 0; }
.list-metrics { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 16px 0 12px; }
.list-metrics.savings-only { grid-template-columns: 1fr; }
.list-metric { display: grid; align-content: start; gap: 8px; padding: 16px; border-radius: var(--radius-control); color: var(--forest); background: var(--forest-soft); }
.list-metric.savings { color: white; background: var(--forest); }
.list-metric > span { font: 500 12px/1.4 var(--font-body); }
.list-metric > strong { font: 700 28px/1.2 var(--font-body); font-variant-numeric: tabular-nums; }
.list-action { min-height: 44px; padding: 12px 16px; border: 1px solid var(--rule); border-radius: var(--radius-control); color: var(--forest); background: var(--panel); font: 600 13px/1.4 var(--font-body); cursor: pointer; }
.list-action:hover { border-color: var(--forest); }
.list-action.primary { color: white; background: var(--forest); border-color: var(--forest); }
.list-action:disabled, .saved-list-row:disabled { opacity: .6; cursor: wait; }
.list-text-action { min-height: 44px; padding: 8px 0; border: 0; background: transparent; color: var(--forest); font: 500 12px/1.4 var(--font-body); text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.list-dialog-actions { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 16px; margin-top: 20px; }
.export-choices { display: grid; grid-template-columns: 1fr; }
.danger { color: var(--danger); }
.list-empty { margin: 24px 0; font-size: 14px; line-height: 1.6; }
.list-dialog-status { margin: 16px 0 0; color: var(--forest); font: 500 13px/1.5 var(--font-body); }
.list-dialog-status:empty { display: none; }
.saved-list-rows { margin: 20px 0; }
.saved-list-tabs { display: flex; gap: 8px; margin: 16px 0; }
.saved-list-tabs .list-action[aria-pressed="true"] { color: white; background: var(--forest); border-color: var(--forest); }
.saved-list-entry { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 16px; border-top: 1px solid var(--rule); }
.saved-list-entry .saved-list-row { border-top: 0; }
.saved-list-archive { padding: 8px 12px; font-size: 12px; }
@media (max-width: 480px) {
  .saved-list-entry { grid-template-columns: minmax(0, 1fr); gap: 0; padding-bottom: 12px; }
  .saved-list-archive { justify-self: end; }
}
.saved-list-row { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 16px; padding: 16px 0; border: 0; border-top: 1px solid var(--rule); background: transparent; text-align: left; color: var(--ink); cursor: pointer; }
.saved-list-row:hover .saved-list-label strong { color: var(--forest); text-decoration: underline; text-underline-offset: 3px; }
.saved-list-label, .saved-list-amounts { display: grid; gap: 6px; }
.saved-list-label strong { font: 600 14px/1.4 var(--font-body); }
.saved-list-label small, .saved-list-amounts small { font: 400 12px/1.4 var(--font-body); color: var(--muted); }
.saved-list-amounts { text-align: right; font-variant-numeric: tabular-nums; }
.saved-list-amounts strong { font: 600 17px/1.4 var(--font-body); color: var(--forest); }
.savings-item { border-top: 1px solid var(--rule); margin-top: 12px; }
.savings-item summary { display: grid; grid-template-columns: minmax(0, 1fr) auto 14px; align-items: center; gap: 10px; list-style: none; min-height: 64px; padding: 14px 0; cursor: pointer; }
.savings-item summary::-webkit-details-marker { display: none; }
.savings-item[open] .disclosure-icon { transform: rotate(180deg); }
.savings-item-label { display: grid; gap: 5px; }
.savings-item-label strong { font: 600 14px/1.4 var(--font-body); }
.savings-item-label small { color: var(--muted); font: 400 12px/1.4 var(--font-body); }
.savings-item-value, .savings-item-none { font: 600 12px/1.4 var(--font-body); color: var(--forest); text-align: right; }
.savings-item-none { color: var(--muted); font-weight: 400; }
.savings-item-detail { padding: 0 0 14px; }
.savings-prices { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px 16px; padding: 14px; margin: 0; border-radius: var(--radius-control); background: var(--forest-soft); font: 400 12px/1.5 var(--font-body); }
.savings-prices dd { margin: 0; text-align: right; font-weight: 600; font-variant-numeric: tabular-nums; }
.list-section-title { margin: 20px 0 8px; font: 600 14px var(--font-body); }
.list-notes { font-size: 13px; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; }
@media (max-width: 400px) {
  .list-metric { padding: 12px; }
  .list-metric > strong { font-size: 23px; }
  .saved-list-row { gap: 10px; }
  .saved-list-label strong { font-size: 13px; }
  .saved-list-amounts small { max-width: 100px; }
  .savings-item summary { grid-template-columns: minmax(0, 1fr) 14px; }
  .savings-item-value, .savings-item-none { grid-row: 2; text-align: left; }
  .savings-item .disclosure-icon { grid-row: 1 / 3; grid-column: 2; }
}
@media print { .list-dialog { display: none; } }
.results-tools { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 12px 0 16px; }
.results-tools button { min-height: 40px; padding: 9px 12px; border: 1px solid var(--rule); border-radius: var(--radius-control); background: var(--panel); color: var(--forest); font: 500 12px/1.4 var(--font-body); cursor: pointer; }
.results-tools button[aria-pressed="true"] { color: white; background: var(--forest); border-color: var(--forest); }
.product-history, .comparison-proof { min-height: 32px; padding: 4px 0; border: 0; background: none; text-align: left; font: 500 12px/1.4 var(--font-body); color: var(--forest); text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.comparison-proof { min-height: 44px; }
.comparison-metadata .comparison-proof { margin-left: auto; }
.selected-item .selected-saving { color: var(--forest); font: 500 11px/1.4 var(--font-body); margin-top: 3px; }
.history-select-label { display: block; margin: 16px 0 6px; font-size: 12px; font-weight: 500; }
.history-select { width: 100%; min-width: 0; min-height: 44px; padding: 10px var(--dropdown-inset); border: 1px solid var(--rule); border-radius: var(--radius-control); background: var(--panel); color: var(--forest); font: 500 13px/1.4 var(--font-body); }
.history-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 10px; margin-top: 10px; }
.history-controls > * { min-width: 0; }
#price-history-dialog { overflow: auto; overscroll-behavior: contain; }
#price-history-dialog .comparison-heading { position: sticky; top: -20px; z-index: 2; padding: 8px 0; background: var(--panel); }
#price-history-content { min-width: 0; overflow-wrap: anywhere; }
.history-latest-price { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 16px; margin: 20px 0; padding: 14px 16px; border-radius: var(--radius-control); background: var(--forest-soft); color: var(--forest); }
.history-latest-price span { font-size: 13px; line-height: 1.5; }
.history-latest-price strong { font-size: 24px; line-height: 1.3; font-variant-numeric: tabular-nums; }
.price-chart { display: block; width: 100%; height: auto; margin: 12px 0; overflow: visible; }
.chart-rule { stroke: var(--rule); stroke-width: 1; }
.chart-label { fill: var(--muted); font: 12px var(--font-body); }
.chart-line { fill: none; stroke: var(--forest); stroke-width: 2.5; }
.chart-point { fill: var(--panel); stroke: var(--forest); stroke-width: 2; }
.chart-current { fill: var(--forest); stroke: var(--forest-soft); stroke-width: 3; }
.chart-point:focus, .chart-current:focus { outline: 2px solid var(--ochre); outline-offset: 3px; }
.history-records { margin-top: 12px; font-size: 12px; }
.history-records summary { min-height: 44px; padding: 12px 0; cursor: pointer; }
.history-records table { width: 100%; border-collapse: collapse; }
.history-records th, .history-records td { text-align: left; padding: 9px 0; border-top: 1px solid var(--rule); }
.history-records th:last-child, .history-records td:last-child { text-align: right; }
#offer-proof-image { margin-top: 16px; }
#offer-proof-image .offer-proof { display: block; width: 100%; height: auto; max-height: 65dvh; object-fit: contain; }
@media (max-width: 600px) {
  .results-tools button, .product-history { min-height: 44px; }
  #price-history-dialog .comparison-heading { top: -16px; }
}
@media (max-width: 480px) {
  #history-search { font-size: 16px; }
}

.comparison-equivalent { margin: 0; padding: 0 0 10px; color: var(--forest); font: 500 13px/1.5 var(--font-body); }
.price-context { margin-top: 20px; }
.price-context:first-child { margin-top: 0; }
.price-context-key { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px 32px; margin: 16px 0 0; text-align: center; color: var(--forest); font: 500 12px/1.5 var(--font-body); }
.price-context-key dt { color: var(--muted); }
.price-context-key dd { margin: 4px 0 0; font-size: 15px; font-weight: 600; font-variant-numeric: tabular-nums; }

/* Full archive browser, separate from the current-week shopping filters. */
#price-history-dialog { width: min(1060px, calc(100vw - 24px)); }
.history-coverage { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px 20px; margin: 16px 0 20px; padding: 14px 16px; background: var(--forest-soft); border-radius: var(--radius-control); color: var(--forest); }
.history-coverage-summary { display: grid; gap: 6px; }
.history-filter-count { margin: 0; text-align: right; font: 500 13px/1.5 var(--font-body); font-variant-numeric: tabular-nums; }
.history-coverage strong { font-size: 16px; }
.history-coverage span { font-size: 12px; line-height: 1.5; }
.history-field { display: grid; min-width: 0; gap: 6px; font-size: 12px; color: var(--muted); }
.history-search-field { margin-bottom: 12px; }
#price-history-dialog .history-controls { grid-template-columns: repeat(3, minmax(0, 1fr)) auto; margin-bottom: 20px; }
.history-select { padding-right: 30px; text-overflow: ellipsis; }
.history-change-filter { align-self: end; min-height: 44px; font-size: 12px; white-space: nowrap; }
.history-change-filter[aria-pressed="true"] { color: white; background: var(--forest); }
.history-workspace { display: grid; grid-template-columns: minmax(220px, .8fr) minmax(0, 1.5fr); gap: 24px; align-items: start; }
.history-sidebar, .history-display { min-width: 0; }
.history-results { max-height: 570px; overflow-y: auto; border: 1px solid var(--rule); border-radius: var(--radius-control); }
.history-result { display: grid; grid-template-columns: 56px minmax(0, 1fr); align-items: center; gap: 12px; width: 100%; padding: 12px; border: 0; border-bottom: 1px solid var(--rule); background: var(--panel); text-align: left; color: var(--ink); cursor: pointer; }
.history-result:last-child { border-bottom: 0; }
.history-result:hover { background: var(--page); }
.history-result[aria-pressed="true"] { background: var(--forest-soft); box-shadow: inset 3px 0 var(--forest); }
.history-result strong { font: 600 13px/1.4 var(--font-body); overflow-wrap: anywhere; }
.history-result span { font: 400 12px/1.4 var(--font-body); color: var(--muted); }
.history-result small { font: 400 11px/1.4 var(--font-body); color: var(--muted); }
.history-result-copy { display: grid; gap: 5px; min-width: 0; }
.history-result-photo { display: grid; place-items: center; height: 64px; border-radius: 6px; background: white; overflow: hidden; }
.history-proof-image { display: block; width: 100%; height: 100%; object-fit: contain; }
.history-result .history-photo-missing { padding: 4px; font-size: 10px; text-align: center; }
.history-product-overview { display: grid; grid-template-columns: 144px minmax(0, 1fr); align-items: center; gap: 20px; margin-bottom: 16px; }
.history-product-photo { margin: 0; }
.history-photo-button { display: block; width: 100%; height: 128px; padding: 8px; border: 1px solid var(--rule); border-radius: var(--radius-control); background: white; cursor: zoom-in; }
.history-photo-button:hover { border-color: var(--forest); }
.history-product-photo figcaption { margin-top: 6px; color: var(--muted); font: 400 11px/1.4 var(--font-body); text-align: center; }
.history-product-photo > .history-photo-missing { display: grid; place-items: center; min-height: 96px; padding: 12px; border-radius: var(--radius-control); background: var(--page); color: var(--muted); font-size: 12px; text-align: center; }
.history-pagination { display: flex; gap: 8px; justify-content: space-between; align-items: center; margin-top: 8px; }
.history-pagination .list-action { padding: 8px; font-size: 12px; }
.history-pagination .list-action:disabled { opacity: .45; cursor: default; }
.history-product-title { margin: 0 0 8px; font: 600 20px/1.35 var(--font-body); }
.history-series-meta { margin: 0; font-size: 13px; line-height: 1.5; color: var(--muted); }
.history-point-banner { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 16px 12px; background: var(--forest-soft); border-radius: var(--radius-control); container-type: inline-size; }
.history-point-detail { display: grid; min-width: 0; gap: 4px; text-align: center; color: var(--forest); line-height: 1.4; }
.history-point-detail span { font-size: 13px; }
.history-point-detail strong { font-size: 24px; line-height: 1.2; font-variant-numeric: tabular-nums; }
.history-point-detail small { margin-top: 4px; font-size: 12px; color: var(--muted); text-wrap: balance; }
.history-point-step { display: inline-flex; align-items: center; justify-content: center; gap: 6px; width: 104px; min-width: 44px; padding: 8px; font-size: 11px; white-space: nowrap; }
.history-point-step:disabled { opacity: .4; cursor: default; }
.history-point-step .previous { transform: rotate(90deg); }
.history-point-step .next { transform: rotate(-90deg); }
@container (max-width: 480px) {
  .history-point-step { width: 44px; }
  .history-point-step-label { display: none; }
}
@container (max-width: 320px) {
  .history-point-detail strong { font-size: 20px; }
  .history-point-detail span, .history-point-detail small { font-size: 11px; }
}
.chart-hit { cursor: pointer; }
.chart-target { fill: transparent; }
.chart-hit[aria-pressed="true"] .chart-point { fill: var(--forest); stroke-width: 3px; }
.chart-hit:focus-visible .chart-target { stroke: var(--ochre); stroke-width: 2px; }
@media (max-width: 900px) {
  #price-history-dialog .history-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .history-workspace { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .history-results { max-height: 220px; }
  .history-display { scroll-margin-top: 80px; }
}
@media (max-width: 600px) {
  .history-coverage { grid-template-columns: minmax(0, 1fr); }
  .history-filter-count { text-align: left; }
}
@media (max-width: 480px) {
  #price-history-dialog .history-controls { grid-template-columns: minmax(0, 1fr); }
  .history-product-overview { grid-template-columns: 96px minmax(0, 1fr); gap: 12px; }
  .history-photo-button { height: 96px; }
  .history-product-title { font-size: 17px; }
}
@media (max-width: 600px) {
  .price-chart .chart-label { font-size: 20px; }
}
