@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&display=swap');
:root {
  color-scheme: light;
  --page: #F6F6F6;
  --surface: #FFFFFF;
  --surface-soft: #EFEFEF;
  --surface-raised: #FAFAFA;
  --selected: #EAF1FD;
  --ink: #171717;
  --muted: #5A5A5A;
  --subtle: #636363;
  --placeholder: #6B6B6B;
  --line: #DEDEDE;
  --control-line: #8A8A8A;
  --review-gold: #7A5B12;
  --accent: #1F5FBF;
  --accent-ink: #FFFFFF;
  --link: #1F5FBF;
  --ok: #1E7A3E;
  --unknown: #666666;
  --out: #B3261E;
  --out-bg: #FBEAE8;
  --focus: #1F5FBF;
  --btn-bg: #171717;
  --btn-ink: #FFFFFF;
  --sans: 'DM Sans', 'Avenir Next', Avenir, sans-serif;
  --mono: 'DM Mono', ui-monospace, monospace;
  --radius: 8px;
  --radius-control: 6px;
  font-family: var(--sans);
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --page: #0E0E0E;
  --surface: #171717;
  --surface-soft: #1F1F1F;
  --surface-raised: #1B1B1B;
  --selected: #1A2232;
  --ink: #EDEDED;
  --muted: #A8A8A8;
  --subtle: #9A9A9A;
  --placeholder: #9A9A9A;
  --line: #2E2E2E;
  --control-line: #7A7A7A;
  --review-gold: #E0B86A;
  --accent: #8AB4F8;
  --accent-ink: #0E0E0E;
  --link: #8AB4F8;
  --ok: #6FCF8B;
  --unknown: #A0A0A0;
  --out: #F28B82;
  --out-bg: #3A1F1D;
  --focus: #8AB4F8;
  --btn-bg: #EDEDED;
  --btn-ink: #0E0E0E;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--page); scroll-padding-top: 72px; }
body { margin: 0; background: var(--page); color: var(--ink); font: 400 14px/1.5 var(--sans); -webkit-font-smoothing: antialiased; }
::selection { background: var(--accent); color: var(--accent-ink); }
button, input, select { font: inherit; }
button, a, select, input { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration-color: color-mix(in srgb, currentColor 42%, transparent); text-underline-offset: 3px; }
button { color: inherit; }
:focus-visible { outline: 3px solid var(--focus) !important; outline-offset: 2px; }
input { caret-color: var(--accent); }
.visually-hidden, .search-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
:root { scrollbar-color: var(--control-line) transparent; }

/* Slim top bar: brand and theme only. */
.topbar { min-height: 52px; display: flex; align-items: center; gap: 28px; padding: 0 clamp(16px, 2.4vw, 32px); border-bottom: 1px solid var(--line); background: var(--surface); color: var(--ink); position: sticky; top: 0; z-index: 10; }
.brand { display: inline-flex; align-items: center; gap: 10px; flex: 0 0 auto; font-size: 17px; line-height: 1; letter-spacing: -.03em; font-weight: 700; text-decoration: none; }
.brand-mark { width: 28px; height: 28px; display: grid; place-items: center; color: var(--btn-ink); background: var(--btn-bg); border-radius: var(--radius-control); font-size: 15px; font-weight: 700; }
.topbar nav { display: flex; align-items: center; gap: clamp(18px, 3vw, 40px); }
.topbar nav a { color: var(--muted); font-size: 13px; font-weight: 600; text-decoration: none; }
.topbar nav a:hover { color: var(--ink); }
.topbar-tools { margin-left: auto; display: flex; align-items: center; gap: 20px; }
.theme-control { display: inline-flex; align-items: center; gap: 8px; color: var(--muted); font-size: 12px; }
.theme-control select { border: 1px solid var(--control-line); border-radius: var(--radius-control); min-height: 34px; color: var(--ink); background: var(--surface); padding: 0 8px; }
.top-link { color: var(--muted); font-size: 12px; }
main { max-width: 1760px; margin: 0 auto; padding: 0 clamp(16px, 2.4vw, 32px); }
.fieldbook { padding: 18px 0 28px; }
.catalog-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.catalog-head h1 { margin: 0; font-size: 20px; line-height: 1.2; letter-spacing: -.02em; font-weight: 700; }
.catalog-meta { margin: 3px 0 0; color: var(--muted); font-size: 12px; }
.catalog-meta strong { color: var(--ink); font-weight: 600; }
.reset-button { border: 1px solid var(--control-line); border-radius: var(--radius-control); min-height: 34px; padding: 0 12px; background: var(--surface); color: var(--ink); font-size: 12px; font-weight: 600; cursor: pointer; white-space: nowrap; }
.reset-button:hover { background: var(--surface-soft); }
.mobile-search { display: none; }

/* Split view: filters | compact list | selected-offer detail. */
.fieldbook-layout { display: grid; grid-template-columns: 256px minmax(0, 1fr) clamp(360px, 28vw, 460px); align-items: start; gap: 16px; }
[data-view="database"] .fieldbook-layout { grid-template-columns: 256px minmax(0, 1fr); }
[data-view="database"] .evidence-rail { display: none; }
.filter-rail, .evidence-rail { position: sticky; top: 68px; max-height: calc(100vh - 84px); overflow: auto; scrollbar-width: thin; scrollbar-color: var(--line) transparent; }
.rail-heading { display: none; }
.filter-panel { padding: 14px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
.search-field { height: 40px; border: 1px solid var(--control-line); border-radius: var(--radius-control); display: flex; gap: 8px; align-items: center; padding: 0 10px; color: var(--muted); background: var(--surface); }
.search-icon { width: 18px; height: 18px; flex: 0 0 18px; }
.search-icon svg { display: block; width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; }
.search-field input { width: 100%; min-width: 0; border: 0; outline: 0; color: var(--ink); font-size: 13px; background: transparent; }
.search-field:focus-within { outline: 3px solid var(--focus); outline-offset: 2px; }
.search-field input::placeholder { color: var(--placeholder); opacity: 1; }
kbd { color: var(--muted); background: var(--surface-soft); border: 1px solid var(--line); border-radius: 4px; padding: 1px 5px; font: 12px var(--sans); white-space: nowrap; }
.filter-grid { display: grid; grid-template-columns: 1fr; gap: 12px; margin-top: 14px; }
.filter-control { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.filter-control > span { color: var(--muted); font-size: 12px; font-weight: 600; }
.filter-control select, .filter-control > input, .price-input { height: 36px; width: 100%; min-width: 0; border: 1px solid var(--control-line); border-radius: var(--radius-control); background-color: var(--surface); color: var(--ink); font-size: 13px; padding: 0 10px; }
.filter-control select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23888888' stroke-width='1.4'/%3E%3C/svg%3E"); background-position: right 11px center; background-repeat: no-repeat; padding-right: 28px; }
.filter-control input::placeholder { color: var(--placeholder); opacity: 1; }
.price-input { display: flex; align-items: center; gap: 6px; color: var(--muted); font-family: var(--mono); font-size: 12px; }
.price-input:focus-within { outline: 3px solid var(--focus); outline-offset: 2px; }
.price-input input { border: 0; outline: 0 !important; width: 100%; min-width: 0; color: var(--ink); background: transparent; font: 13px var(--mono); }
.advanced-filters { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.advanced-filters summary { cursor: pointer; color: var(--link); font-size: 13px; font-weight: 600; padding: 2px 0; }
.advanced-filter-grid { margin-top: 12px; }
.filter-footer { display: grid; gap: 10px; padding-top: 12px; margin-top: 12px; border-top: 1px solid var(--line); }
.checkbox-line { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 12px; cursor: pointer; }
.checkbox-line input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.fake-check { width: 17px; height: 17px; flex: 0 0 17px; border: 1px solid var(--control-line); border-radius: 4px; background: var(--surface); position: relative; }
.checkbox-line input:checked + .fake-check { background: var(--btn-bg); border-color: var(--btn-bg); }
.checkbox-line input:checked + .fake-check:after { content: ''; position: absolute; left: 5px; top: 1px; width: 4px; height: 9px; border: solid var(--btn-ink); border-width: 0 2px 2px 0; transform: rotate(45deg); }
.checkbox-line input:focus-visible + .fake-check { outline: 3px solid var(--focus); outline-offset: 2px; }
.filters-context { color: var(--subtle); font-size: 12px; }
.rail-foot { margin-top: 12px; padding: 10px 2px 4px; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; line-height: 1.55; }

/* Results toolbar */
.results-top { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px 12px; padding: 0 0 10px; color: var(--muted); font-size: 12px; }
.results-top strong { color: var(--ink); font-size: 14px; font-weight: 700; }
.results-tools { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.results-tools > button, #column-chooser > summary { min-height: 34px; display: inline-flex; align-items: center; border: 1px solid var(--control-line); border-radius: var(--radius-control); padding: 0 10px; background: var(--surface); color: var(--ink); font: 600 12px var(--sans); cursor: pointer; list-style: none; white-space: nowrap; }
.results-tools > button:hover, #column-chooser > summary:hover { background: var(--surface-soft); }
.results-tools > button[aria-pressed="true"] { background: var(--btn-bg); border-color: var(--btn-bg); color: var(--btn-ink); }
[data-view="database"] #column-chooser, [data-view="database"] #reset-column-widths, .results-tools > button[hidden] { display: none; }
#column-chooser { position: relative; }
#column-chooser > summary::-webkit-details-marker { display: none; }
.column-menu { position: absolute; z-index: 4; right: 0; top: calc(100% + 6px); width: 220px; max-height: min(65vh, 420px); overflow: auto; padding: 8px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.column-menu label { display: flex; align-items: center; gap: 8px; padding: 7px 6px; color: var(--ink); font-size: 12px; cursor: pointer; }
.column-menu input { accent-color: var(--accent); }
.column-hidden { display: none !important; }
.sort-control { display: flex; gap: 8px; align-items: center; color: var(--muted); font-size: 12px; font-weight: 600; white-space: nowrap; }
.sort-control select { max-width: 240px; border: 1px solid var(--control-line); border-radius: var(--radius-control); min-height: 34px; padding: 0 8px; background: var(--surface); color: var(--ink); font-size: 12px; }
#result-status { margin: 0; white-space: nowrap; color: var(--muted); font-size: 12px; }
#result-status strong { color: var(--ink); font-size: 14px; }
.term-hint { color: var(--muted); font-size: 12px; margin: 4px 0 0; }.term-hint[hidden] { display: none; }.term-hint button { padding: 0; border: 0; background: transparent; color: var(--link); text-decoration: underline; text-underline-offset: 2px; cursor: pointer; font: 600 12px var(--sans); }

/* Compact offer list */
.offer-records { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); overflow: hidden; }
.offer-records[hidden] { display: none; }
.offer-record { position: relative; min-width: 0; padding: 12px 16px 10px; border-bottom: 1px solid var(--line); background: var(--surface); }
.offer-record:last-child { border-bottom: 0; }
.offer-record:hover { background: var(--surface-raised); }
.offer-record.is-selected, .offer-record.is-selected:hover { background: var(--selected); }
.offer-record > .select-offer { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; padding: 0; border: 0; border-radius: 0; background: transparent; color: transparent; font-size: 0; cursor: pointer; }
.offer-record > .select-offer:focus-visible { outline-offset: -3px; }
.record-main { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 4px 16px; }
.offer-cell { min-width: 0; display: flex; align-items: center; gap: 12px; }
.record-identity { min-width: 0; display: flex; align-items: center; gap: 10px; }
.provider-avatar { width: 36px; height: 36px; flex: 0 0 36px; display: grid; place-items: center; position: relative; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface-raised); color: var(--ink); font-size: 14px; font-weight: 700; }
.provider-avatar img { width: 100%; height: 100%; object-fit: contain; position: absolute; inset: 0; background: var(--surface); }
.avatar-green { color: #286b48; }.avatar-blue { color: #3f5f9a; }.avatar-purple { color: #6e4d8a; }.avatar-orange { color: #965a1c; }.avatar-red { color: #a34d49; }
.offer-info { min-width: 0; display: flex; flex-direction: column; gap: 0; }
.offer-info strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink); font-size: 15px; font-weight: 700; line-height: 1.3; }
.offer-info span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink); font-size: 14px; line-height: 1.35; }
.stock-status { display: none; flex: 0 0 auto; border-radius: 999px; padding: 2px 8px; background: var(--out-bg); color: var(--out); font-size: 12px; font-weight: 700; }
.stock-observation, .stock-evidence, .stock-details { display: none; }
.stock-observation-detail { margin: 0; padding: 8px 0; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.stock-observation-detail strong { color: var(--ink); }
.record-price { min-width: 120px; display: flex; flex-direction: column; align-items: flex-end; text-align: right; }
.record-price strong { color: var(--ink); font: 500 18px/1.25 var(--mono); letter-spacing: -.02em; white-space: nowrap; }
.record-price strong small { color: var(--muted); font: 500 12px var(--sans); letter-spacing: 0; }
.price-flag { margin-top: 2px; padding: 0 6px; border: 1px solid var(--control-line); border-radius: 999px; color: var(--muted); font: 500 12px/1.4 var(--sans); white-space: nowrap; }
.fact-more { display: inline-flex; align-items: center; min-height: 22px; padding: 0 6px; color: var(--muted); font-size: 12px; white-space: nowrap; }
.provider-button { display: inline-flex; min-height: 28px; align-items: center; gap: 4px; padding: 0; border: 0; background: transparent; color: var(--link); font-size: 13px; font-weight: 500; text-decoration: none; cursor: pointer; }
.provider-button:hover { text-decoration: underline; }
.provider-button.affiliate-button { padding: 0 10px; min-height: 30px; border-radius: var(--radius-control); background: var(--accent); color: var(--accent-ink); font-weight: 600; }
.provider-button.affiliate-button:hover { text-decoration: none; opacity: .9; }
.affiliate-disclosure { max-width: 44ch; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.35; }
.affiliate-detail, .affiliate-offer { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 10px 0; }.affiliate-detail .affiliate-disclosure, .affiliate-offer .affiliate-disclosure { max-width: 68ch; }
.provider-purchase { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 12px 0; }.provider-purchase .affiliate-offer { margin: 0; }.provider-purchase .affiliate-disclosure { max-width: 68ch; text-align: left; }
.record-specs, .record-facts { margin-left: 48px; }
.record-specs { display: block; margin-top: 0; margin-bottom: 0; padding: 0; color: var(--muted); font-size: 13px; line-height: 1.4; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.record-specs > div { display: inline; }
.record-specs > div:not(:last-child)::after { content: ' · '; white-space: pre; }
.record-specs span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.record-specs strong { color: var(--muted); font-weight: 400; }
.record-specs [data-column="commitment"] { display: none; }
.location-qualifier { margin-left: 6px; color: var(--unknown); font-size: 12px; }
.record-facts { display: flex; flex-wrap: nowrap; gap: 6px; padding: 6px 0 0; overflow: hidden; }
.fact-status { min-width: 0; white-space: nowrap; display: inline-flex; align-items: center; gap: 6px; min-height: 22px; padding: 0 8px; border: 1px solid var(--line); border-radius: 999px; background: var(--surface-soft); color: var(--ink); font-size: 12px; line-height: 1.3; }
.fact-status i { width: 7px; height: 7px; border-radius: 50%; display: inline-block; flex: 0 0 7px; background: transparent; border: 1.5px solid var(--unknown); }
.fact-status.verified i { background: var(--ok); border-color: var(--ok); }
.fact-status.out i { background: var(--out); border-color: var(--out); }
.fact-status.unknown { color: var(--muted); }
.review-score { display: inline-block; max-width: 100%; color: var(--muted); font-size: 12px; line-height: 1.45; text-decoration: none; }
.review-score > span { color: var(--review-gold); }
.review-none { color: var(--unknown); font-size: 12px; }
.details-button, .shortlist-toggle { min-height: 30px; border: 0; padding: 3px 0; background: transparent; color: var(--link); font: 500 13px var(--sans); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.shortlist-toggle[aria-pressed="true"] { color: var(--ink); font-weight: 700; }
.detail-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 18px; padding: 10px 0 0; }

/* Selected-offer detail pane */
.evidence-heading { display: none; }
.selected-evidence { padding: 20px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
.selected-head { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 14px; }
.selected-head .provider-avatar { width: 52px; height: 52px; flex-basis: 52px; }
.selected-title { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.selected-title strong { color: var(--ink); font-size: 20px; line-height: 1.25; letter-spacing: -.015em; overflow-wrap: anywhere; }
.selected-title span { color: var(--muted); font-size: 15px; overflow-wrap: anywhere; }
.selected-head .provider-button, .detail-links a.provider-button { display: inline-flex; min-height: 40px; align-items: center; justify-content: center; gap: 6px; padding: 0 16px; border: 1px solid var(--btn-bg); border-radius: var(--radius-control); background: var(--btn-bg); color: var(--btn-ink); font-size: 13px; font-weight: 600; text-decoration: none; white-space: nowrap; }
.selected-head .provider-button:hover, .detail-links a.provider-button:hover { opacity: .88; text-decoration: none; }
.selection-empty { color: var(--muted); font-size: 13px; }
.detail-price { display: flex; flex-direction: column; gap: 4px; padding: 16px 0 14px; }
.detail-price strong { color: var(--ink); font: 500 34px/1.15 var(--mono); letter-spacing: -.03em; overflow-wrap: anywhere; }
.detail-price strong small { display: block; margin-top: 4px; color: var(--muted); font: 500 13px/1.4 var(--sans); letter-spacing: 0; }
.detail-price > span { color: var(--muted); font-size: 12px; line-height: 1.45; }
.detail-price > .source-charge { color: var(--ink); font-weight: 600; }
.detail-section { margin-top: 14px; padding: 4px 14px 6px; border: 1px solid var(--line); border-radius: var(--radius); }
.detail-section h3 { margin: 10px 0 2px; font-size: 14px; font-weight: 700; }
.detail-grid { display: grid; grid-template-columns: 1fr; }
.specs .detail-grid { grid-template-columns: 1fr 1fr; column-gap: 16px; }
.specs .detail-grid > div { grid-template-columns: 1fr; gap: 2px; }
.specs .detail-grid > div.wide { grid-column: 1 / -1; }
.specs .detail-grid > div:nth-last-child(2) { border-bottom: 1px solid var(--line); }
.detail-grid > div { display: grid; grid-template-columns: minmax(130px, 38%) minmax(0, 1fr); gap: 12px; align-items: baseline; padding: 9px 0; border-bottom: 1px solid var(--line); }
.detail-grid > div:last-child { border-bottom: 0; }
.detail-grid span { color: var(--muted); font-size: 13px; }
.detail-grid b { color: var(--ink); font-size: 13px; font-weight: 500; overflow-wrap: anywhere; }
.detail-note { margin: 14px 0 0; padding: 0; color: var(--muted); font-size: 13px; line-height: 1.55; overflow-wrap: anywhere; }
.detail-links { display: flex; flex-wrap: wrap; gap: 8px 14px; margin-top: 12px; }
.detail-links a { color: var(--link); font-size: 13px; font-weight: 500; }
.detail-links a.provider-button { color: var(--btn-ink); }

/* Database mode */
[data-view="database"] .fieldbook-layout { grid-template-columns: 216px minmax(0, 1fr); }
.table-scroll { width: 100%; max-width: 100%; max-height: calc(100vh - 150px); overflow: auto; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); overscroll-behavior-inline: contain; }
.table-scroll:focus-visible { outline-offset: -3px; }
#offers-table { width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 0; text-align: left; font-size: 12.5px; }
#offers-table th, #offers-table td { min-width: 0; max-width: none; padding: 6px 8px; border-bottom: 1px solid var(--line); vertical-align: middle; font-size: 12.5px; line-height: 1.3; overflow-wrap: anywhere; }
#offers-table thead th { position: sticky; top: 0; z-index: 2; padding: 8px; background: var(--surface-soft); color: var(--muted); font-size: 12px; font-weight: 600; line-height: 1.25; }
#offers-table th[data-column="provider"] { width: 9%; } #offers-table th[data-column="plan"] { width: 12%; } #offers-table th[data-column="cpu"] { width: 5%; }
#offers-table th[data-column="ram"] { width: 6%; } #offers-table th[data-column="disk"] { width: 8%; } #offers-table th[data-column="location"] { width: 9%; }
#offers-table th[data-column="price"] { width: 8%; } #offers-table th[data-column="price-per-gb-ram"] { width: 7%; } #offers-table th[data-column="term"] { width: 8%; }
#offers-table th[data-column="evidence"] { width: 8%; } #offers-table th[data-column="caveats"] { width: 12%; } #offers-table th[data-column="actions"] { width: 8%; }
#offers-table td[data-column="actions"] { padding: 4px; }
#offers-table tbody tr:last-child td { border-bottom: 0; }
#offers-table tbody tr:hover td { background: var(--surface-raised); }
#offers-table .num { text-align: right; font-variant-numeric: tabular-nums; }
#offers-table td.num { font-family: var(--mono); font-size: 12px; }
#offers-table td.price-cell { color: var(--ink); font-weight: 500; }
#offers-table .price-flag { display: block; margin: 2px 0 0 auto; width: max-content; }
#offers-table td[data-column="provider"] { font-weight: 700; }
.clip { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.cell-sub { display: block; color: var(--muted); font-family: var(--sans); font-size: 12px; }
.tag-list { display: block; color: var(--muted); font-size: 12px; }
.tag { color: var(--ink); font-size: 12px; }
.tag + .tag::before { content: ' · '; color: var(--muted); }
.tag-out { color: var(--out); font-weight: 600; }
.tag-none { color: var(--muted); font-size: 12px; }
.row-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: nowrap; gap: 2px; }
.row-actions:has(.affiliate-button) { flex-wrap: wrap; }
#offers-table .row-actions .provider-button, #offers-table .row-actions button { min-width: 22px; min-height: 26px; padding: 0 2px; border: 1px solid var(--line); border-radius: var(--radius-control); background: var(--surface); color: var(--ink); font: 600 13px var(--sans); text-decoration: none; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
#offers-table .row-actions .provider-button { color: var(--link); }
#offers-table .row-actions .provider-button.affiliate-button { min-width: 0; padding: 0 6px; background: var(--accent); color: var(--accent-ink); border-color: var(--accent); }
#offers-table .row-actions button:hover, #offers-table .row-actions .provider-button:hover { background: var(--surface-soft); }
#offers-table .affiliate-disclosure { max-width: none; text-align: left; margin-top: 4px; }

.table-legend { display: flex; flex-direction: column; gap: 6px; padding: 12px 2px; color: var(--muted); font-size: 12px; }.table-legend span { display: flex; align-items: flex-start; gap: 8px; }.legend-dot { width: 8px; height: 8px; flex: 0 0 8px; margin-top: 5px; background: var(--ok); border: 1.5px solid var(--ok); border-radius: 50%; }.legend-dot.pending { background: transparent; border: 1.5px solid var(--unknown); }
.catalog-note { display: flex; gap: 10px; align-items: baseline; margin: 4px 0 14px; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); color: var(--muted); font-size: 12px; line-height: 1.5; }.catalog-note strong { flex: 0 0 auto; color: var(--ink); }
.empty-state { padding: 48px 18px; text-align: center; color: var(--muted); border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }.empty-state[hidden] { display: none; }.empty-state h3 { color: var(--ink); font-size: 16px; }.empty-state p { font-size: 13px; }
.empty-state > div { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; }
.empty-state button { min-height: 40px; border: 1px solid var(--control-line); padding: 0 13px; border-radius: var(--radius-control); background: var(--surface); color: var(--ink); font-size: 12px; font-weight: 600; cursor: pointer; }
.empty-state button:hover { background: var(--surface-soft); }
.method { display: grid; grid-template-columns: 1fr 1.6fr; gap: 38px; align-items: start; padding: 32px 0; border-top: 1px solid var(--line); }.method h2 { margin: 0; font-size: 20px; letter-spacing: -.02em; }.method p { max-width: 65ch; color: var(--muted); font-size: 13px; line-height: 1.65; margin: 0; }.method-steps { display: flex; flex-wrap: wrap; gap: 8px 18px; color: var(--muted); font-size: 12px; grid-column: 1 / -1; }
.method > div:first-child { display: contents; }
.source-section { padding: 36px 0 32px; display: grid; grid-template-columns: 1fr 1.6fr; gap: 24px; border-top: 1px solid var(--line); }.source-heading h2 { margin: 0; font-size: 22px; line-height: 1.25; letter-spacing: -.02em; }.source-heading em { font-style: normal; color: var(--muted); }.source-cards { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }.source-card { min-width: 0; padding: 12px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); display: flex; flex-direction: column; gap: 4px; text-decoration: none; }.source-card:hover { background: var(--surface-soft); }.source-number { color: var(--muted); font-size: 12px; }.source-name { color: var(--ink); font-size: 13px; font-weight: 600; }.source-description { color: var(--muted); font-size: 12px; line-height: 1.5; }.source-arrow { align-self: end; color: var(--link); font-size: 13px; }
.candidate-wrap { grid-column: 1/-1; border-top: 1px solid var(--line); padding-top: 14px; }.candidate-heading { display: flex; justify-content: space-between; color: var(--muted); font-size: 12px; font-weight: 600; }.candidate-heading b { color: var(--ink); font-weight: 600; }.candidate-list { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }.candidate-pill { padding: 4px 10px; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); color: var(--muted); font-size: 12px; }.candidate-pill i { font-style: normal; color: var(--ok); font-size: 12px; margin-left: 6px; }.candidate-covered { background: var(--surface-soft); }.candidate-foot { color: var(--muted); font-size: 12px; line-height: 1.5; margin: 10px 0 0; }
footer { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 24px; min-height: 64px; padding: 16px 0; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; }.footer-brand { color: var(--ink); font-size: 14px; }.footer-brand .brand-mark { width: 24px; height: 24px; font-size: 13px; }.footer-brand .brand-light { color: var(--muted); }
.footer-nav { display: flex; flex-wrap: wrap; gap: 6px 20px; }.footer-nav a { color: var(--ink); font-size: 13px; font-weight: 500; }.footer-note { margin-left: auto; }
footer > a:last-child { color: var(--link); font-weight: 600; }
dialog { max-height: 88vh; overflow: auto; border: 1px solid var(--line); border-radius: var(--radius); padding: 20px; width: min(600px, calc(100% - 28px)); color: var(--ink); background: var(--surface); }dialog::backdrop { background: #000000A6; }.dialog-head { display: flex; justify-content: space-between; align-items: start; }.dialog-head h2 { font-size: 20px; margin: 2px 0 0; }.dialog-close { border: 1px solid var(--control-line); background: var(--surface); width: 40px; height: 40px; border-radius: var(--radius-control); color: var(--ink); font-size: 22px; cursor: pointer; }
dialog .detail-section { margin-top: 12px; }
.catalog-failure { max-width: 760px; margin: 18px auto; padding: 16px 18px; border: 1px solid var(--out); border-radius: var(--radius); background: var(--out-bg); color: var(--ink); }
.catalog-failure[hidden] { display: none; }
.catalog-failure p { margin: 5px 0 12px; }
.catalog-failure button { min-height: 40px; padding: 0 13px; border: 1px solid var(--control-line); border-radius: var(--radius-control); background: var(--surface); color: var(--ink); font-weight: 600; cursor: pointer; }

/* Shortlist and comparison */
.shortlist-toggle, #shortlist-open, #shortlist-close, #comparison-open, .shortlist-item button { }
#shortlist-open, #shortlist-close, #comparison-open, .shortlist-item button { min-height: 34px; border: 1px solid var(--control-line); border-radius: var(--radius-control); padding: 0 10px; background: var(--surface); color: var(--ink); font: 600 12px var(--sans); cursor: pointer; }
#shortlist-open:hover, #shortlist-close:hover, #comparison-open:hover, .shortlist-item button:hover { background: var(--surface-soft); }
#comparison-open:disabled { color: var(--muted); cursor: default; }
.shortlist-section { min-width: 0; margin: 0 0 10px; }
.shortlist-heading, .comparison-heading { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.shortlist-heading { min-height: 38px; padding: 2px 0; color: var(--muted); font-size: 12px; }
.comparison-panel { min-width: 0; margin-top: 8px; padding: 12px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.comparison-panel[hidden], #comparison-view[hidden] { display: none; }
.comparison-heading { margin-bottom: 8px; }
.comparison-heading h2 { margin: 0; font-size: 15px; }
.shortlist-items { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 10px; }
.shortlist-item { display: inline-flex; align-items: center; gap: 6px; min-width: 0; max-width: 100%; padding: 3px 4px 3px 9px; border: 1px solid var(--line); border-radius: var(--radius-control); color: var(--ink); font-size: 12px; }
.shortlist-item > span { min-width: 0; overflow-wrap: anywhere; }
.shortlist-item button { flex: 0 0 auto; min-height: 30px; padding-inline: 8px; }
.shortlist-status { min-height: 0; margin: 0; color: var(--muted); font-size: 12px; }
.shortlist-status:empty { display: none; }
.comparison-scroll { width: 100%; min-width: 0; max-width: 100%; overflow: auto; overscroll-behavior-inline: contain; border: 1px solid var(--line); border-radius: var(--radius-control); }
.comparison-scroll:focus-visible { outline-offset: -3px; }
.comparison-table { width: 100%; min-width: var(--comparison-min-width, 100%); table-layout: fixed; border-collapse: collapse; color: var(--ink); font-size: 12px; }
.comparison-table th, .comparison-table td { min-width: 155px; padding: 9px 10px; border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); text-align: left; vertical-align: top; overflow-wrap: anywhere; }
.comparison-table thead th:first-child, .comparison-table tbody th { position: sticky; left: 0; z-index: 1; min-width: 130px; background: var(--surface); }
.comparison-table thead th { background: var(--surface-soft); font-weight: 700; }
.comparison-table thead th:first-child { z-index: 2; background: var(--surface-soft); }
.comparison-table thead th strong, .comparison-table thead th span { display: block; margin-bottom: 4px; overflow-wrap: anywhere; }
.comparison-table [data-different="true"] td { background: var(--surface-soft); }
.comparison-table td strong, .comparison-table td span { display: block; margin-bottom: 4px; }
.comparison-table .comparison-source { display: inline-block; margin-top: 3px; color: var(--link); font-weight: 700; }
.comparison-empty { margin: 8px 0; color: var(--muted); font-size: 12px; }
.comparison-context { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; align-items: end; }
.comparison-context .filter-control { min-width: 0; }
.comparison-context select, .comparison-context input { width: 100%; min-height: 38px; border: 1px solid var(--control-line); border-radius: var(--radius-control); padding: 0 9px; background: var(--surface); color: var(--ink); }
.comparison-offer-list { display: flex; flex-wrap: wrap; gap: 7px; margin: 16px 0 10px; }
.comparison-warning { margin: 12px 0; color: var(--out); font-size: 13px; }
.comparison-warning[hidden], .comparison-browse[hidden] { display: none; }
.comparison-share { margin: 9px 0 0; font-size: 12px; }
.comparison-share a { color: var(--link); font-weight: 700; }
.comparison-main .static-section { min-width: 0; }
.comparison-table-host { width: 100%; min-width: 0; }
.comparison-page .static-note { max-width: none; }
@media (max-width: 680px) {
  .comparison-context { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .comparison-offer-list .shortlist-item { width: 100%; justify-content: space-between; }
  .comparison-main { overflow-x: clip; }
}
.offer-index { width: 100%; min-width: 0; max-width: 100%; }

/* Dark provider avatar letters */
:root[data-theme="dark"] .avatar-green { color: #9FD6AE; }
:root[data-theme="dark"] .avatar-blue { color: #9DB8E6; }
:root[data-theme="dark"] .avatar-purple { color: #C7AEE6; }
:root[data-theme="dark"] .avatar-orange { color: #E6B17A; }
:root[data-theme="dark"] .avatar-red { color: #F0A39F; }

/* Responsive */
@media (max-width: 1179px) {
  .fieldbook-layout, [data-view="database"] .fieldbook-layout { grid-template-columns: 240px minmax(0, 1fr); }
  .evidence-rail { display: none; }
}
@media (max-width: 680px) {
  html { scroll-padding-top: 60px; }
  .topbar { min-height: 52px; gap: 0; padding: 0 14px; }
  .topbar nav, .top-link, .theme-control > span { display: none; }
  main { padding: 0 12px; }
  .fieldbook { padding: 12px 0 20px; }
  .catalog-head { margin-bottom: 10px; }
  .catalog-head h1 { font-size: 18px; }
  .mobile-search { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; margin-bottom: 10px; }
  .mobile-search .search-field { min-width: 0; height: 44px; }
  .mobile-filter-trigger { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; padding: 0 14px; border: 1px solid var(--control-line); border-radius: var(--radius-control); background: var(--surface); color: var(--ink); font-size: 13px; font-weight: 600; cursor: pointer; }
  .mobile-filter-trigger svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; }
  .mobile-filter-trigger[aria-expanded="true"] { background: var(--btn-bg); border-color: var(--btn-bg); color: var(--btn-ink); }
  .fieldbook-layout, [data-view="database"] .fieldbook-layout { display: flex; flex-direction: column; gap: 0; }
  .filter-rail { position: static; width: 100%; max-height: none; overflow: visible; }
  .filter-rail:not(.filter-rail-open) .filter-panel { display: none; }
  .filter-rail.filter-rail-open { margin-bottom: 12px; }
  .rail-foot { margin-top: 0; padding: 0 2px 10px; border-top: 0; }
  .filter-rail.filter-rail-open .rail-foot { padding-top: 10px; }
  .filter-panel { padding: 12px; }
  .filter-panel > .search-field { display: none; }
  .filter-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px 8px; margin-top: 0; }
  .filter-control select, .filter-control > input, .price-input { height: 40px; }
  .results-top { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; align-items: start; }
  .results-tools { width: 100%; justify-content: flex-start; }
  .sort-control { flex: 1 1 100%; justify-content: space-between; }
  .sort-control select { flex: 1; min-width: 0; max-width: none; }
  .results-tools { position: relative; }
  #column-chooser { position: static; }
  .column-menu { left: 0; right: auto; width: min(220px, calc(100vw - 24px)); }
  .offer-record { padding: 10px 12px 8px; }
  .record-specs, .record-facts { margin-left: 0; }
  .record-specs { white-space: normal; padding-top: 4px; max-height: calc(2.8em + 4px); }
  .record-price strong { font-size: 16px; }
  .selected-evidence { display: none; }
  .comparison-panel { padding: 9px; }
  .comparison-table th, .comparison-table td { min-width: 145px; padding: 8px; }
  .table-scroll { max-height: calc(100vh - 120px); }
  #offers-table { width: 1240px; }
  .catalog-note { flex-direction: column; gap: 4px; }
  .method, .source-section { grid-template-columns: 1fr; gap: 12px; padding: 24px 0; }
  .source-cards { grid-template-columns: 1fr 1fr; gap: 6px; }
  footer { gap: 10px 16px; }
  .footer-note { margin-left: 0; flex: 1 0 100%; }
  dialog { padding: 16px; }
  .detail-grid > div { grid-template-columns: minmax(96px, 36%) minmax(0, 1fr); }
  .catalog-failure { margin: 12px 14px; }
}
@media (max-width: 350px) {
  main { padding-inline: 10px; }
  .topbar { padding-inline: 11px; }
  .mobile-search { gap: 6px; }
  .mobile-filter-trigger { padding: 0 10px; }
  .search-field { padding-inline: 8px; gap: 6px; }
  .results-tools { display: grid; grid-template-columns: max-content max-content minmax(0, 1fr); gap: 5px; }
  .sort-control { grid-column: 1 / -1; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; } }

/* Static provider and offer pages use the same Fieldbook surfaces and theme tokens. */
.static-main { width: min(100% - 36px, 1040px); padding: 26px 0 56px; }
.informational-main { width: min(100%, 72ch); max-width: 75ch; }
.static-topbar { position: static; }
.static-heading { max-width: 72ch; padding: 24px 0 20px; border-bottom: 1px solid var(--line); }
.static-heading h1 { margin: 0; color: var(--ink); font-size: clamp(28px, 4vw, 42px); line-height: 1.12; letter-spacing: -.03em; overflow-wrap: anywhere; }
.static-heading p { margin: 10px 0 0; color: var(--muted); max-width: 70ch; }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 9px; color: var(--muted); font-size: 12px; }
.breadcrumbs a, .static-section a, .page-return a { color: var(--link); font-weight: 600; text-underline-offset: 3px; }
:root[data-theme="dark"] .breadcrumbs a, :root[data-theme="dark"] .static-section a, :root[data-theme="dark"] .page-return a { color: var(--link); }
.static-section { padding: 24px 0; border-bottom: 1px solid var(--line); }
.static-section h2 { margin: 0 0 14px; font-size: 20px; line-height: 1.25; letter-spacing: -.02em; }
.static-section h3 { margin: 0 0 8px; font-size: 16px; }
.price-history-series { padding: 17px 0 19px; border-top: 1px solid var(--line); }
.price-history-series > h3 { margin: 0 0 5px; font-size: 16px; }
.history-series-context { display: flex; flex-wrap: wrap; gap: 4px 20px; margin: 0 0 8px; color: var(--muted); font-size: 12px; }
.history-observations, .history-events ul { margin: 0; padding: 0; list-style: none; }
.history-observation { padding: 12px 0; border-top: 1px solid var(--line); }
.history-observation time { color: var(--ink); font-size: 13px; font-weight: 700; font-variant-numeric: tabular-nums; }
.history-observation > p, .history-events li > p { margin: 5px 0; color: var(--muted); font-size: 12px; overflow-wrap: anywhere; }
.history-observation strong { color: var(--ink); font-weight: 600; }
.history-source-links { display: flex; flex-wrap: wrap; gap: 4px 12px; }
.history-fx-note { color: var(--ink) !important; font-weight: 600; }
.history-source-detail { margin-top: 6px; color: var(--muted); font-size: 12px; }
.history-source-detail summary { width: fit-content; color: var(--link); cursor: pointer; font-weight: 600; text-underline-offset: 3px; }
:root[data-theme="dark"] .history-source-detail summary { color: var(--link); }
.history-source-detail p { max-width: 72ch; margin: 5px 0 0; overflow-wrap: anywhere; }
.history-empty { margin: 8px 0; color: var(--muted); font-size: 12px; }
.history-events { margin-top: 9px; padding-top: 11px; border-top: 1px solid var(--line); }
.history-events h4 { margin: 0 0 6px; font-size: 13px; }
.history-events li { padding: 5px 0; }
.history-events li > strong { color: var(--ink); font-size: 12px; }
.history-events time { color: var(--muted); font-variant-numeric: tabular-nums; }
.fact-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; gap: 0 28px; }
.fact-list > div { display: grid; grid-template-columns: minmax(100px, .65fr) minmax(0, 1.35fr); gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.fact-list dt { color: var(--muted); font-size: 12px; }
.fact-list dd { margin: 0; color: var(--ink); font-size: 13px; overflow-wrap: anywhere; }
.static-note { max-width: 72ch; margin: 18px 0 0; padding: 12px 14px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface-soft); color: var(--muted); font-size: 12px; }
.source-list { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.source-list li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.source-list li > span { color: var(--ink); overflow-wrap: anywhere; }
.source-list p { flex-basis: 100%; margin: 3px 0 0; color: var(--muted); font-size: 12px; }
.operational-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 28px; }
.operational-category { min-width: 0; padding: 15px 0; border-top: 1px solid var(--line); }
.operational-category h3 { color: var(--ink); font-size: 14px; }
.operational-category > p, .operational-records > li > p { margin: 6px 0; color: var(--muted); font-size: 12px; line-height: 1.55; overflow-wrap: anywhere; }
.operational-records { margin: 0; padding: 0; list-style: none; }
.operational-records > li { padding: 4px 0 10px; }
.operational-records dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px 14px; margin: 9px 0; }
.operational-records dl > div { min-width: 0; }
.operational-records dt { color: var(--muted); font-size: 12px; }
.operational-records dd { margin: 2px 0 0; color: var(--ink); font-size: 12px; overflow-wrap: anywhere; }
.operational-links { display: flex; flex-wrap: wrap; gap: 4px 10px; }
.offer-index { min-width: 0; max-width: 100%; overflow-x: auto; }
.offer-index:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.scroll-hint { margin: 7px 0 0; color: var(--muted); font-size: 12px; }
.offer-index table { width: 100%; border-collapse: collapse; text-align: left; }
.offer-index th, .offer-index td { min-width: 110px; max-width: 340px; padding: 11px 13px; border-bottom: 1px solid var(--line); vertical-align: top; font-size: 12px; overflow-wrap: anywhere; }
.offer-index th { color: var(--muted); font-weight: 600; }
.offer-index tbody th { color: var(--ink); font-weight: 700; }
.offer-index tbody tr:last-child > * { border-bottom: 0; }
.resource-entry { padding: 15px 0; border-top: 1px solid var(--line); }
.resource-entry > p { color: var(--muted); font-size: 12px; }
.provider-index { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; margin: 0; padding: 0; list-style: none; }
.provider-index li { display: flex; flex-direction: column; gap: 3px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.provider-index li a { width: fit-content; font-weight: 700; }
.provider-index li span { color: var(--muted); font-size: 12px; }
.page-return { margin: 24px 0 0; }
.static-footer { max-width: 1040px; margin: 0 auto; padding: 16px 0 20px; }
.static-footer > span { max-width: 48ch; }
@media (max-width: 680px) {
  .static-main { width: calc(100% - 28px); padding-top: 18px; }
  .informational-main { width: 100%; max-width: calc(100% - 28px); }
  .static-heading { padding: 20px 0 16px; }
  .static-heading h1 { font-size: 29px; }
  .static-section { padding: 20px 0; }
  .fact-list { grid-template-columns: 1fr; }
  .fact-list > div { grid-template-columns: minmax(92px, .7fr) minmax(0, 1.3fr); gap: 8px; }
  .operational-grid { grid-template-columns: 1fr; }
  .operational-records dl { grid-template-columns: 1fr 1fr; }
  .provider-index { grid-template-columns: 1fr; }
  .static-footer { width: calc(100% - 28px); }
  .static-topbar { min-height: 58px; padding: 0 14px; }
}

.reset-button { white-space: nowrap; }
