/* Shared stylesheet, retained at the established asset URL. */
:root { color-scheme: light; --ink:#192c38; --muted:#50616b; --accent:#17636a; --accent-dark:#10494f; --paper:#f6f5f1; --surface:#fff; --tint:#eaf2f0; --line:#ced6d5; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; font-size:100%; line-height:1.65; }
* { box-sizing:border-box; }
body { margin:0; background:var(--paper); color:var(--ink); }
a { color:var(--accent); text-underline-offset:.2em; text-decoration-thickness:1px; overflow-wrap:anywhere; }
a:hover { color:var(--accent-dark); text-decoration-thickness:2px; }
a:focus-visible, [tabindex]:focus-visible { outline:3px solid var(--accent); outline-offset:4px; border-radius:2px; }
p,ul,ol,dl { margin:0 0 1.25rem; }
ul,ol { padding-left:1.4rem; }
li + li { margin-top:.5rem; }
h1,h2,h3 { line-height:1.2; letter-spacing:-.025em; margin:0 0 1rem; text-wrap:balance; }
h1 { font-size:clamp(2rem,4vw,3.1rem); font-weight:750; }
h2 { font-size:clamp(1.45rem,2.4vw,1.85rem); }
h3 { font-size:1.25rem; }
strong { font-weight:700; }
.container { width:min(100% - 3rem,72rem); margin-inline:auto; }
.skip-link { position:absolute; left:1rem; top:.5rem; z-index:10; padding:.75rem 1rem; background:white; transform:translateY(-180%); }
.skip-link:focus { transform:translateY(0); }
.masthead { background:var(--surface); border-top:4px solid var(--accent); border-bottom:1px solid var(--line); }
.masthead-inner { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.75rem 2rem; padding-block:1.15rem; }
.wordmark { display:inline-block; color:var(--ink); font-size:1.35rem; font-weight:800; letter-spacing:-.045em; text-decoration:none; line-height:1.35; padding-block:.35rem; }
.brand-note { display:block; color:var(--muted); font-size:.75rem; letter-spacing:.08em; text-transform:uppercase; margin-top:.1rem; }
.primary-nav ul,.footer-nav ul { list-style:none; display:flex; flex-wrap:wrap; gap:.25rem 1.5rem; padding:0; margin:0; }
.primary-nav li,.footer-nav li { margin:0; }
.primary-nav a { display:block; padding-block:.7rem; text-decoration:none; color:var(--ink); font-weight:600; }
.primary-nav a:hover,.primary-nav a[aria-current] { color:var(--accent); text-decoration:underline; text-decoration-thickness:2px; }
main { padding-block:2.75rem 4rem; }
.eyebrow { color:var(--accent); font-size:.75rem; font-weight:750; letter-spacing:.11em; text-transform:uppercase; margin-bottom:.9rem; }
.lead { color:var(--muted); font-size:1.15rem; max-width:65ch; }
.intro-grid { display:grid; grid-template-columns:minmax(0,1.8fr) minmax(0,1fr); gap:3.5rem; align-items:start; }
.intro h1 { max-width:19ch; }
.intro .lead { max-width:54ch; }
.actions { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem 1.5rem; margin-top:1.5rem; }
.button { display:inline-block; padding:.75rem 1.1rem; border:1px solid var(--accent); background:var(--accent); color:white; border-radius:3px; font-weight:650; text-decoration:none; }
.button:hover { color:white; background:var(--accent-dark); }
.text-link { display:inline-block; padding-block:.65rem; font-weight:650; }
.check-panel { background:var(--surface); border:1px solid var(--line); border-top:3px solid var(--accent); padding:1.5rem; }
.check-panel h2 { font-size:1.3rem; }
.check-panel ol { margin-bottom:0; }
.check-panel li { padding-left:.25rem; }
.check-panel li::marker { color:var(--accent); font-weight:700; }
.funding-note { border-left:3px solid var(--accent); padding:1rem 1.25rem; background:var(--tint); font-size:.9rem; margin-block:2rem; }
.funding-note p:last-child { margin-bottom:0; }
.section { margin-top:2.75rem; }
.section-heading { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:.5rem 1.5rem; margin-bottom:1.25rem; }
.section-heading h2,.section-heading p { margin:0; }
.cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; }
.card { display:flex; flex-direction:column; background:var(--surface); border:1px solid var(--line); border-radius:3px; padding:1.75rem; }
.card h2,.card h3 { font-size:1.5rem; max-width:30ch; }
.card h2 a,.card h3 a { color:var(--ink); text-decoration:none; }
.card h2 a:hover,.card h3 a:hover { color:var(--accent); text-decoration:underline; }
.card p:not(.eyebrow) { color:var(--muted); }
.card .card-detail { border-top:1px solid var(--line); padding-top:1rem; margin-top:auto; margin-bottom:0; font-size:.85rem; }
.split-section { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:3rem; border-top:1px solid var(--line); padding-top:2rem; }
.split-section p { color:var(--muted); }
.status-panel { background:var(--surface); border:1px solid var(--line); padding:1.75rem; max-width:75ch; }
.status-panel p:last-child { margin-bottom:0; }
.breadcrumb { font-size:.85rem; color:var(--muted); margin-bottom:1.25rem; }
.article-header { max-width:75ch; margin-bottom:2rem; }
.article-header h1 { font-size:clamp(2rem,3.8vw,2.8rem); }
.article-meta { font-size:.85rem; color:var(--muted); }
.article-layout { display:grid; grid-template-columns:minmax(0,75ch) minmax(0,1fr); gap:3rem; align-items:start; }
.prose { min-width:0; max-width:75ch; background:var(--surface); border:1px solid var(--line); padding:2rem; grid-column:1; grid-row:1; }
.prose h2 { margin-top:2.25rem; font-size:1.5rem; }
.prose h2:first-child { margin-top:0; }
.prose h3 { margin-top:1.5rem; }
.prose > :last-child { margin-bottom:0; }
.prose section + section { margin-top:2.25rem; }
.prose section > :last-child { margin-bottom:0; }
.prose section > h2 { scroll-margin-top:1.5rem; }
.contents { padding:1.25rem 0; border-top:2px solid var(--accent); grid-column:2; grid-row:1; }
.contents h2 { font-size:1rem; }
.contents ol { font-size:.9rem; }
.contents a { display:inline-block; padding-block:.3rem; }
.callout { background:var(--tint); border-left:3px solid var(--accent); padding:1rem 1.25rem; margin-block:1.5rem; }
.callout p:last-child { margin-bottom:0; }
.sources { border-top:1px solid var(--line); padding-top:1.5rem; font-size:.9rem; }
.sources h2 { margin-top:0; }
.related { border-top:1px solid var(--line); margin-top:2rem; padding-top:1.5rem; }
.ad-label { display:inline-block; background:var(--ink); color:white; font-size:.8rem; font-weight:750; padding:.15rem .5rem; border-radius:2px; vertical-align:baseline; }
.site-footer { border-top:1px solid var(--line); background:var(--surface); padding-block:2rem; font-size:.85rem; }
.footer-top { display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem 2rem; }
.footer-title { font-weight:750; color:var(--ink); }
.site-footer p { color:var(--muted); max-width:72ch; }
.footer-nav a { display:inline-block; padding-block:.65rem; }
.footer-bottom { border-top:1px solid var(--line); padding-top:1rem; margin-top:1rem; }
.footer-bottom p { margin:0; }
@media (max-width:850px) {
  .intro-grid { gap:2rem; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); }
  .article-layout { grid-template-columns:minmax(0,1fr); gap:1.25rem; }
  .contents { grid-column:1; grid-row:1; max-width:75ch; }
  .contents + .prose { grid-row:2; }
  .contents ol { columns:2; column-gap:2rem; }
  .contents li { break-inside:avoid; }
}
@media (max-width:620px) {
  .container { width:calc(100% - 2rem); }
  .masthead-inner { gap:.25rem; padding-block:.8rem .35rem; }
  .primary-nav { width:100%; }
  .primary-nav ul { gap:.25rem 1.25rem; }
  main { padding-block:1.75rem 2.5rem; }
  .intro-grid,.cards,.split-section { grid-template-columns:minmax(0,1fr); gap:1.25rem; }
  .intro h1 { max-width:22ch; }
  .check-panel,.card,.status-panel { padding:1.25rem; }
  .funding-note { padding:.9rem 1rem; margin-block:1.5rem; }
  .section { margin-top:2rem; }
  .prose { padding:1.25rem; }
  .contents ol { columns:1; }
  .lead { font-size:1.05rem; }
  .footer-top { display:block; }
}
@media print {
  .masthead,.site-footer,.actions,.contents,.skip-link { display:none; }
  body,.prose { background:white; color:black; }
  .container,.prose { width:100%; max-width:none; padding:0; border:0; }
  .article-layout { display:block; }
  a { color:black; text-decoration:underline; }
}

/* Builder styles */

.page-build .build-toolbar { margin-bottom: 0.5rem; }
.page-build .share-permalink {
  margin-top: 0.85rem;
  padding: 0.75rem 0 0;
  border-top: 1px solid var(--line);
}
.page-build .share-permalink label {
  display: block;
  margin: 0 0 0.35rem;
  font-size: 0.85rem;
  font-weight: 650;
  color: var(--muted);
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
.page-build .share-permalink-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: stretch;
}
.page-build .share-url {
  flex: 1 1 14rem;
  min-width: 0;
  padding: 0.55rem 0.75rem;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  background: var(--paper);
  color: var(--ink);
  font: inherit;
  font-size: 0.9rem;
}
.page-build .metrics-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.75rem;
  align-items: center;
  margin: 0 0 1rem;
  padding: 0.65rem 0.85rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
}
.page-build .metric-pill {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  border: 1px solid var(--line);
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--muted);
}
.page-build .metric-pill[data-tone="warn"] {
  border-color: #f0c9a0;
  color: var(--warn);
  background: #fffaf4;
}
.page-build .metric-pill[data-tone="match"] {
  border-color: #c5d4cc;
  color: var(--muted);
  background: #f7faf8;
}
.page-build .empty-honesty {
  margin: 0 0 1rem;
  padding: 0.55rem 0.75rem;
  border-left: 3px solid var(--line-strong);
  color: var(--muted);
}
.page-build .button-ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  padding: 0.65rem 1.1rem;
  border-radius: var(--radius);
  border: 1px solid var(--line-strong);
  background: var(--surface);
  color: var(--ink);
  font: inherit;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
}
.page-build .button-ghost:hover {
  border-color: var(--accent-strong);
  color: #0f766e;
}
.page-build .button {
  cursor: pointer;
  border: 0;
  font: inherit;
}
.build-rows {
  display: grid;
  gap: 0.55rem;
}
.build-row {
  display: grid;
  grid-template-columns: 7.25rem 1fr;
  gap: 0.65rem 0.9rem;
  align-items: center;
  padding: 0.7rem 0.9rem;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}
.build-row.is-chosen { border-color: #b7cfc9; background: #fbfefd; }
.build-row-label {
  margin: 0;
  font-size: 0.82rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--muted);
}
.build-row-name { margin: 0 0 0.15rem; font-weight: 650; font-size: 0.98rem; }
.build-row-meta { margin: 0; font-size: 0.88rem; }
.build-row-empty { margin: 0 0 0.45rem; color: var(--muted); font-size: 0.9rem; }
.build-row-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.5rem;
  align-items: center;
  margin-top: 0.4rem;
}
.build-row-actions .button-ghost {
  padding: 0.4rem 0.75rem;
  font-size: 0.9rem;
}
.build-row-prices {
  margin-left: 0.15rem;
  font-weight: 650;
  font-size: 0.92rem;
}
.build-row-choose {
  padding: 0.45rem 0.9rem;
  font-size: 0.92rem;
}
.compat-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 0.65rem;
}
.compat-item {
  display: grid;
  grid-template-columns: 9.5rem 1fr;
  gap: 0.75rem;
  padding: 0.85rem 1rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
}
.compat-badge {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  align-self: start;
}
.compat-warn { border-color: #f0c9a0; background: #fffaf4; }
.compat-warn .compat-badge { color: var(--warn); }
.compat-match { border-color: #c5d4cc; background: #f7faf8; }
.compat-match .compat-badge { color: var(--muted); }
.compat-unknown { border-color: var(--line); }
.compat-unknown .compat-badge { color: var(--muted); }
.build-picker {
  border: 1px solid var(--line-strong);
  border-radius: 6px;
  padding: 0;
  max-width: min(36rem, calc(100vw - 2rem));
  width: 100%;
  background: var(--surface);
  color: var(--ink);
}
.build-picker::backdrop { background: rgba(7, 11, 18, 0.55); }
.build-picker-inner { margin: 0; }
.build-picker-inner header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: 1rem 1.15rem;
  border-bottom: 1px solid var(--line);
}
.build-picker-inner h2 { margin: 0; font-size: 1.2rem; }
.build-picker-options {
  display: grid;
  gap: 0.5rem;
  padding: 1rem 1.15rem 1.25rem;
  max-height: min(60vh, 28rem);
  overflow: auto;
}
.build-picker-option {
  display: grid;
  gap: 0.2rem;
  text-align: left;
  padding: 0.85rem 1rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--paper);
  cursor: pointer;
  font: inherit;
}
.build-picker-option:hover,
.build-picker-option.is-selected {
  border-color: var(--accent-strong);
  background: var(--tint);
}
.build-picker-option.is-incompatible {
  opacity: 0.55;
  border-style: dashed;
  background: #f6f4f1;
}
.build-picker-option.is-incompatible:hover {
  border-color: #d4a574;
  background: #fffaf4;
  opacity: 0.85;
}
.build-picker-option .picker-reason {
  display: block;
  margin-top: 0.25rem;
  font-size: 0.82rem;
  color: var(--warn);
  font-weight: 600;
}
.picker-toggle {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.65rem 1.15rem 0;
  font-size: 0.9rem;
  color: var(--muted);
  cursor: pointer;
  user-select: none;
}
.picker-toggle input { accent-color: var(--accent-strong); }
.compat-groups {
  display: grid;
  gap: 1.25rem;
}
.compat-group-title {
  margin: 0 0 0.5rem;
  font-size: 0.95rem;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--muted);
}
.compat-group-warn .compat-group-title { color: var(--warn); }
.compat-item.compat-empty {
  color: var(--muted);
  font-style: italic;
  display: block;
}
.replace-conflict {
  margin: 0 0 1rem;
  padding: 1rem 1.15rem;
  border: 1px solid #f0c9a0;
  border-radius: var(--radius);
  background: #fffaf4;
}
.replace-conflict-title { margin: 0 0 0.35rem; }
.replace-conflict-actions { margin-top: 0.75rem; }
@media (max-width: 720px) {
  .build-row,
  .compat-item { grid-template-columns: 1fr; }
  .build-row { align-items: stretch; }
  .build-row-actions {
    flex-direction: column;
    align-items: stretch;
  }
  .build-row-actions .button-ghost,
  .build-row-choose,
  .build-row-prices {
    width: 100%;
    text-align: center;
    justify-content: center;
  }
  .page-build .share-permalink-row { flex-direction: column; }
  .page-build .share-permalink-row .button-ghost { width: 100%; }
}

@media print {
  .masthead,
  .site-footer,
  .actions,
  .contents,
  .skip-link,
  .home-hero,
  .hero-spike-panel { display: none; }
  body,
  .prose { background: white; color: black; }
  .container,
  .prose { width: 100%; max-width: none; padding: 0; border: 0; }
  .article-layout { display: block; }
  a { color: black; text-decoration: underline; }
}

/* Extensions to the established live publication design. */
:root { --line-strong:#abbab9; --radius:3px; --warn:#8b390e; --accent-strong:var(--accent); }
[hidden] { display:none !important; }
button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
button,input,select { font:inherit; }
.catalogue-filters { display:flex; flex-wrap:wrap; gap:1rem; margin:1.5rem 0; }
.catalogue-filters label { display:grid; gap:.35rem; flex:1 1 16rem; font-weight:650; }
.catalogue-filters input,.catalogue-filters select { width:100%; padding:.75rem; border:1px solid var(--line-strong); border-radius:3px; color:var(--ink); background:white; }
.catalogue-list { display:grid; gap:.75rem; }
.catalogue-row { display:grid; grid-template-columns:1fr 13rem; gap:1rem; padding:1.25rem; border:1px solid var(--line); background:var(--surface); }
.catalogue-row h2 { font-size:1.15rem; }
.catalogue-row p { margin-bottom:.5rem; }
.catalogue-row .eyebrow { font-size:.875rem; }
.meta { color:var(--muted); font-size:.9rem; }
.table-scroll { overflow:auto; border:1px solid var(--line); background:var(--surface); }
.table-scroll table { width:100%; border-collapse:collapse; min-width:44rem; }
.table-scroll th,.table-scroll td { text-align:left; padding:.85rem; border-bottom:1px solid var(--line); vertical-align:top; }
.table-scroll th { background:var(--tint); }
dt { font-weight:650; } dd { margin:0 0 .75rem; }
.page-build .article-header { max-width:75ch; margin-bottom:1rem; }
.page-build .build-toolbar { margin-top:1rem; }
.page-build .build-scope { margin-bottom:1rem; }
.page-build .build-scope summary { cursor:pointer; color:var(--accent); }
.page-build .build-scope p { margin-top:.75rem; }
.page-build .build-row-label,.page-build .compat-badge { font-size:.875rem; }
.page-build .build-picker-option.is-incompatible { opacity:1; }
@media(max-width:650px) { .catalogue-row { grid-template-columns:1fr; } }
#delivered-offers details { margin: .75rem 0; padding: .75rem; border: 1px solid var(--line, #d9dfe2); border-radius: .4rem; }
#delivered-offers details a { overflow-wrap: anywhere; }
#delivered-offers table td:not(:first-child) { white-space: nowrap; }
#delivered-offers .table-scroll { margin-bottom: 1rem; }

/* Progressive catalogue browsing; shared publication styles above stay intact. */
.catalogue-filters,.catalogue-extra-grid { min-width:0; }
.catalogue-filters label,.catalogue-filters input,.catalogue-filters select { min-width:0; }
.catalogue-advanced { border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); padding:1rem; margin:0 0 1rem; }
.catalogue-advanced > summary { cursor:pointer; font-weight:650; }
.catalogue-extra-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin-top:1rem; }
.catalogue-extra-grid:empty { display:none; }
.catalogue-extra-grid label { display:grid; gap:.35rem; min-width:0; font-weight:650; }
.catalogue-extra-grid select { width:100%; min-width:0; min-height:44px; padding:.65rem; border:1px solid var(--line-strong); border-radius:var(--radius); color:var(--ink); background:var(--paper); }
.catalogue-advanced .meta { margin-top:1rem; }
.catalogue-advanced button { min-height:44px; margin-top:.5rem; }
.catalogue-price-scope { max-width:95ch; }
.catalogue-row > div { min-width:0; }
.catalogue-row { overflow-wrap:anywhere; }
.catalogue-delivered { font-weight:700; font-size:1rem; }
.catalogue-live-price .meta,.catalogue-spec-notes .meta { font-size:.8rem; line-height:1.45; }
.catalogue-spec-notes { margin-top:.6rem; }
.catalogue-retained { color:var(--warn); font-size:.85rem; font-weight:650; }
.catalogue-row a:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
@media(max-width:800px) { .catalogue-extra-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:500px) { .catalogue-extra-grid { grid-template-columns:minmax(0,1fr); } }

/* Shared graphite shell and light comparison workbench. */
:root { --ink:#17252d; --muted:#4f626d; --accent:#096a65; --accent-dark:#07524e; --paper:#f0f4f5; --surface:#fff; --tint:#e4f3f0; --line:#cdd9dd; --line-strong:#9bafb5; --radius:5px; --warn:#923c0f; line-height:1.55; }
body { text-rendering:optimizeLegibility; }
button,input,select { font:inherit; }
button,summary { cursor:pointer; }
.container { width:min(100% - 3rem,80rem); }
.masthead { background:#101d24; border-top:3px solid #3dd6bf; border-bottom:1px solid #2d414b; }
.masthead-inner { padding-block:1rem; gap:1rem 2rem; }
.wordmark,.wordmark:hover { color:#f5fafb; font-size:1.35rem; letter-spacing:-.045em; }
.brand-dot { color:#52e0c8; }
.brand-note { color:#b8c9cf; font-size:.8125rem; text-transform:none; letter-spacing:.035em; }
.primary-nav ul { gap:.25rem 1.5rem; }
.primary-nav a { color:#dfebed; padding:.6rem .1rem; font-size:.9375rem; }
.primary-nav a:hover,.primary-nav a[aria-current] { color:#77ebd7; text-decoration:underline; text-underline-offset:.6rem; }
.masthead a:focus-visible { outline-color:#77ebd7; }
:focus-visible { outline:3px solid var(--accent); outline-offset:4px; }
main { padding-block:2.25rem 4rem; }
h1 { letter-spacing:-.045em; }
.eyebrow { font-size:.8125rem; letter-spacing:.09em; margin-bottom:.6rem; }
.button,.page-build .button { border-radius:var(--radius); font-weight:650; min-height:44px; }
.button-ghost { display:inline-flex; justify-content:center; align-items:center; padding:.55rem .85rem; border:1px solid var(--line-strong); border-radius:var(--radius); color:var(--ink); background:var(--surface); font-weight:600; min-height:44px; }
.button-ghost:hover { border-color:var(--accent); color:var(--accent); }
.meta { font-size:.875rem; }
.intro { background:#172b35; color:#f3f8fa; padding:2.25rem; border-radius:var(--radius); border-left:4px solid #46d6bc; }
.intro .eyebrow { color:#79e7d4; }
.intro .lead { color:#d2dfe3; }
.intro h1 { font-size:clamp(2.1rem,4vw,3.25rem); }
.intro .button { background:#69e4cd; border-color:#69e4cd; color:#0b2e2a; }
.intro .button:hover { background:#a6f4e5; }
.intro .button:focus-visible { outline-color:#a6f4e5; }
.intro-grid { grid-template-columns:minmax(0,1.8fr) minmax(0,1fr); gap:1.5rem; align-items:stretch; }
.check-panel { border-radius:var(--radius); padding:1.75rem; }
.funding-note { font-size:.875rem; }
.site-footer { background:#e6eef0; font-size:.875rem; }
.footer-nav { max-width:38rem; }
.footer-nav ul { gap:.15rem 1.25rem; }
.catalogue-filters { background:var(--surface); padding:1.25rem; border:1px solid var(--line); border-radius:var(--radius); }
.catalogue-list { gap:0; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
.catalogue-row { border:0; border-bottom:1px solid var(--line); padding:1.1rem 1.25rem; }
.catalogue-row:last-child { border-bottom:0; }
.catalogue-row h2 { margin-bottom:.4rem; }
.catalogue-row h2 a { color:var(--ink); text-decoration:none; }
.catalogue-row h2 a:hover { color:var(--accent); text-decoration:underline; }
.product-summary { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:1.5rem; align-items:center; padding:1.5rem; background:var(--surface); border:1px solid var(--line); border-top:3px solid var(--accent); border-radius:var(--radius); }
.product-summary h1 { font-size:clamp(1.8rem,3vw,2.6rem); }
.product-summary p:last-child { margin-bottom:0; }
.product-action { max-width:16rem; }
.product-action .button { display:block; text-align:center; }
.product-action .meta { margin-top:.65rem; }
.product-specs { display:flex; flex-wrap:wrap; gap:.6rem 1.5rem; margin:1rem 0 0; }
.product-specs div { min-width:6rem; }
.product-specs dt { color:var(--muted); font-size:.875rem; font-weight:400; }
.product-specs dd { margin:.1rem 0 0; font-weight:650; }
.evidence-details { margin-top:1rem; padding:1rem 1.25rem; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); }
.evidence-details > summary { font-weight:650; }
.evidence-details[open] > summary { margin-bottom:1rem; }
.evidence-details p:last-child { margin-bottom:0; }
.page-build .article-header { max-width:none; margin-bottom:1.5rem; }
.page-build .article-header .lead { max-width:65ch; margin-bottom:0; }
.build-workspace { display:grid; grid-template-columns:minmax(0,1fr) 21rem; align-items:start; gap:1.5rem; }
.build-parts { grid-column:1; grid-row:1; min-width:0; }
.build-summary { grid-column:2; grid-row:1; position:sticky; top:1rem; min-width:0; padding:1.25rem; background:var(--surface); border:1px solid var(--line); border-top:3px solid var(--accent); border-radius:var(--radius); }
.build-summary h2 { font-size:1.25rem; margin-bottom:.85rem; }
.build-summary > summary { font-size:1.125rem; font-weight:700; }
.build-price-preview { display:block; margin-top:.6rem; font-size:1rem; line-height:1.5; font-variant-numeric:tabular-nums; }
.build-price-basis { display:block; margin-top:.25rem; color:var(--muted); font-size:.8125rem; font-weight:400; line-height:1.5; }
.build-summary-content { margin-top:1rem; }
.build-summary #build-total { color:var(--ink); margin-bottom:1rem; }
.build-summary .metrics-strip { border:0; padding:0; gap:.4rem; }
.build-summary .metric-pill { border-radius:4px; padding:.3rem .45rem; }
.build-summary .summary-link { display:inline-block; padding:.5rem 0; font-weight:650; }
.build-summary .share-permalink { margin-top:1rem; padding-top:1rem; }
.build-summary summary { font-size:.9375rem; font-weight:650; }
.build-summary > summary { font-size:1.125rem; font-weight:700; }
.build-summary .share-permalink-row { margin-top:.75rem; }
.build-summary .share-url { width:100%; flex-basis:100%; }
.build-summary #share-status:empty { display:none; }
.build-summary #share-status { margin:.65rem 0 0; }
.build-save-status { margin:.75rem 0 0; }
.build-feedback p { margin:0 0 .75rem; }
.build-feedback p:empty { display:none; }
button:disabled { cursor:wait; opacity:.65; }
.build-parts .section-heading { margin-bottom:.8rem; }
.build-parts .section-heading h2 { font-size:1.25rem; }
.build-rows { gap:0; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; container-type:inline-size; container-name:build-parts; }
.build-row { border:0; border-bottom:1px solid var(--line); border-radius:0; grid-template-columns:6.5rem minmax(0,1fr); gap:1rem; padding:.85rem 1rem; align-items:start; }
@container build-parts (max-width:36rem) {
  .build-row { grid-template-columns:1fr; gap:.4rem; }
}
.build-row:last-child { border-bottom:0; }
.build-row.is-chosen { background:#fff; }
.build-row > div { min-width:0; }
.page-build .build-row-label { font-size:.875rem; letter-spacing:0; text-transform:none; font-weight:650; color:var(--ink); }
.build-row-name { font-size:1rem; }
.build-row-meta,.build-row-sources { font-size:.875rem; }
.build-row-identity { margin:.25rem 0 .4rem; font-size:.875rem; }
.build-row-price { margin:.3rem 0 .5rem; font-size:.9375rem; font-weight:650; font-variant-numeric:tabular-nums; }
.build-row-price[data-price-state="current"] { color:var(--accent-dark); }
.build-row-price[data-price-state="unpriced"] { color:var(--muted); font-weight:400; }
.build-row-sources { margin:.4rem 0 0; }
.build-row-empty { display:none; }
.build-row-choose { background:#e8f5f2; color:var(--accent-dark); }
.build-row-choose:hover { color:#fff; }
.build-row-actions { flex-direction:row; align-items:center; gap:.5rem; }
.page-build .build-row-actions .button-ghost { padding:.4rem .7rem; min-height:44px; }
.build-row-prices { display:inline-flex; align-items:center; min-height:44px; margin-left:.3rem; }
.build-examples { margin-top:1rem; padding:.75rem 1rem; border:1px solid var(--line); border-radius:var(--radius); }
.build-examples summary { color:var(--muted); }
.build-examples .actions { margin-top:.75rem; }
.compatibility-section { margin-top:2rem; }
.page-build .compatibility-section .compat-item { grid-template-columns:8rem minmax(0,1fr); }
.compat-slot-actions { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.75rem; }
.page-build .compat-slot-action,.page-build .compat-return { min-height:44px; padding:.45rem .75rem; white-space:normal; text-align:left; }
.compat-return { margin:.25rem 0 .5rem; }
.product-photo { max-width:60rem; margin:1.5rem 0 2rem; }
.product-photo img { display:block; max-width:100%; height:auto; border-radius:var(--radius); }
.product-photo figcaption { margin-top:.75rem; color:var(--muted); font-size:.9rem; line-height:1.6; overflow-wrap:anywhere; }
.product-photo figcaption a { text-underline-offset:.15em; }
.page-build .build-scope { margin:1rem 0; }
.page-build .picker-reason { font-size:.875rem; }
.page-build .build-picker-option.is-incompatible:hover { opacity:1; }
@media(max-width:1000px) {
  .build-workspace { grid-template-columns:minmax(0,1fr) 18rem; gap:1rem; }
  .build-summary { padding:1rem; }
}
@media(max-width:800px) {
  .build-workspace { display:flex; flex-direction:column; }
  .build-summary { position:static; width:100%; }
  .build-parts { width:100%; }
  .build-summary #build-total { max-width:70ch; }
  .product-summary { grid-template-columns:minmax(0,1fr); }
  .product-action { max-width:none; }
  .product-action .button { display:inline-block; }
}
@media(max-width:620px) {
  .container { width:calc(100% - 2rem); }
  .masthead-inner { padding-block:.8rem; gap:.5rem; }
  .primary-nav ul { gap:0 1rem; }
  .primary-nav a { font-size:.875rem; padding-block:.6rem; }
  .intro-grid { grid-template-columns:minmax(0,1fr); }
  .intro,.product-summary { padding:1.25rem; }
  .build-row { grid-template-columns:1fr; gap:.4rem; }
  .build-row-actions .button-ghost,.build-row-prices,.build-row-choose { width:auto; }
  .build-row-actions { flex-direction:row; align-items:center; }
  .page-build .compatibility-section .compat-item { grid-template-columns:1fr; gap:.3rem; }
  .catalogue-row { grid-template-columns:minmax(0,1fr); }
  .page-build .article-header h1 { font-size:2rem; }
  .build-picker { max-height:calc(100dvh - 2rem); overflow:auto; }
}
@media print {
  .build-workspace { display:block; }
  .build-summary { position:static; }
  .build-examples,.share-permalink,.build-row-actions { display:none; }
}
.picker-search-label { display:block; margin:.9rem 1.15rem .35rem; font-size:.875rem; font-weight:650; }
#picker-search { display:block; width:calc(100% - 2.3rem); margin:0 1.15rem .35rem; padding:.6rem .75rem; border:1px solid var(--line-strong); border-radius:var(--radius); background:#fff; color:var(--ink); }
#add-part-dialog .build-picker-inner > p { padding:1rem 1.15rem 0; margin:0; }
#add-part-dialog button { min-height:44px; }
.compat-evidence { margin-top: .55rem; font-size: .88rem; }
.compat-evidence summary { cursor: pointer; font-weight: 650; }
.compat-evidence p { margin: .55rem 0; overflow-wrap: anywhere; }
.compat-item > div { min-width: 0; }
.compat-item > div > p { margin: 0; }
.home-search { margin: 1.25rem 0 0; max-width: 38rem; }
.home-search label { display:block; font-weight:650; color:#f3f8fa; margin-bottom:.35rem; }
.home-search #home-search-hint { color:#b8c9cf; margin:0 0 .65rem; }
.home-search-row { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; }
.home-search input[type="search"] { flex:1 1 12rem; min-width:0; width:100%; min-height:44px; height:auto; padding:.6rem .75rem; border:1px solid #9bafb5; border-radius:var(--radius); background:#fff; color:var(--ink); }
.home-search button { flex:0 1 auto; white-space:normal; }
.home-entry-actions { margin-top:1rem; }
.intro .home-entry-actions .text-link { color:#d5eef0; }
.intro .home-entry-actions .text-link:hover { color:#a6f4e5; }
.home-categories { margin-top:1.5rem; }
.home-categories h2 { font-size:1.15rem; color:#f3f8fa; margin-bottom:.75rem; }
.home-categories ul { list-style:none; display:flex; flex-wrap:wrap; gap:.5rem; padding:0; margin:0; }
.home-categories li { margin:0; }
.home-categories li + li { margin-top:0; }
.home-categories a { display:inline-flex; flex-wrap:wrap; align-items:center; min-height:44px; max-width:100%; padding:.35rem .75rem; border:1px solid #5d7a82; border-radius:var(--radius); background:#102229; color:#f3f8fa; text-decoration:none; font-weight:600; overflow-wrap:anywhere; }
.home-categories a:hover { border-color:#77ebd7; color:#77ebd7; }
.home-categories a .meta { color:#b8c9cf; margin:0 0 0 .35rem; font-weight:500; }
.home-search-noscript { color:#d2dfe3; margin:1rem 0 0; }
.intro .home-search input:focus,
.intro .home-search input:focus-visible,
.intro .home-search button:focus,
.intro .home-search button:focus-visible,
.intro .home-entry-actions a:focus,
.intro .home-entry-actions a:focus-visible,
.intro .home-categories a:focus,
.intro .home-categories a:focus-visible { outline:3px solid #a6f4e5; outline-offset:4px; }
@media(max-width:620px) {
  .home-search-row { flex-direction:column; align-items:stretch; }
  .home-search input[type="search"] { flex:0 0 auto; width:100%; }
  .home-search button { width:100%; }
}
