/* =====================================================================
   Distribot — the shop window's board, trade card, product page and the
   checkout return pages (RWD-LRD-0089..0103). Ported from the verified
   Claude Design handoff (docs/design/distribot/2026-09-05-shop-window-
   handoff/ ShopWindow-Board.dc.html + ShopWindow-ProductPage.dc.html)
   under PORTING.md S1–S12: @container → @media one for one (719 /
   720–1079 / 1079), the container pins dropped (clamp() yields them at a
   real 375 px viewport), no deal treatment (RWD-LRD-0099), the shipped
   tokens only — every colour is a var(--dw-*) from landing.css's .dw-mk
   block (RWD-LRD-0092), every radius from its --dw-radius-* scale (S11).
   Loads AFTER landing.css (the tokens, the nav, the buttons live there).
   ===================================================================== */

/* ---------- Board ---------- */

.dw-board { max-width: var(--dw-page-max); margin: 0 auto; padding: 40px var(--dw-gutter) 72px; }
.dw-board__head { max-width: 720px; margin-bottom: 28px; }
.dw-board__eyebrow { margin: 0 0 10px; font-size: var(--dw-meta); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--dw-primary); }
.dw-board__title { margin: 0 0 12px; font-size: var(--dw-h2); line-height: 1.08; font-weight: 700; letter-spacing: -.02em; color: var(--dw-ink); }
.dw-board__title--form { font-size: var(--dw-h3); }
.dw-board__lede { margin: 0; max-width: 640px; font-size: var(--dw-body); line-height: 1.55; color: var(--dw-ink-soft); text-wrap: pretty; }
@media (max-width: 719px) {
  .dw-board { padding-top: 22px; }
  .dw-board__head { margin-bottom: 18px; }
  .dw-board__lede { font-size: 15.5px; }
}

/* ---------- The ask header (RWD-LRD-0089) ----------
   Inset ground; meta text on it is --dw-meta-ink (4.80 / 5.88), never
   --dw-muted (4.21). A plain GET form: q + product_type. */

.dw-board__ask { background: var(--dw-surface-low); border: 1px solid var(--dw-line); border-radius: var(--dw-radius-panel); padding: 18px 20px; margin-bottom: 34px; }
.dw-board__askLabel { display: block; margin: 0 0 10px; font-size: 18px; font-weight: 700; letter-spacing: -.01em; color: var(--dw-ink); }
.dw-board__askForm { display: grid; grid-template-columns: minmax(0, 1fr) 200px auto; gap: 10px; }
.dw-board__askInput, .dw-board__askType { min-height: 48px; padding: 11px 14px; border-radius: var(--dw-radius-control); border: 1px solid var(--dw-line); background: var(--dw-surface); color: var(--dw-ink); font-size: 16px; width: 100%; }
.dw-board__askInput::placeholder { color: var(--dw-muted); }
.dw-board__askInput:hover, .dw-board__askType:hover { border-color: var(--outline); }
.dw-board__askInput:focus-visible, .dw-board__askType:focus-visible { outline: 2px solid var(--dw-primary); outline-offset: 1px; border-color: var(--dw-primary); }
.dw-board__askSubmit { min-height: 48px; }
.dw-board__askHelp { margin: 10px 0 0; font-size: 13.5px; color: var(--dw-meta-ink); }
.dw-board__askError { margin: 10px 0 0; display: flex; gap: 9px; align-items: flex-start; padding: 10px 12px; border-radius: var(--dw-radius-control); background: var(--dw-error-strip-bg); border: 1px solid var(--dw-error-strip-line); color: var(--dw-error-strip-ink); font-size: 14px; line-height: 1.45; }
.dw-board__askGlyph { flex: none; margin-top: 2px; }
.dw-board__askNotice { margin: 10px 0 0; font-size: 14px; color: var(--dw-ink-soft); }
@media (max-width: 1079px) {
  .dw-board__askForm { grid-template-columns: minmax(0, 1fr) auto; }
  .dw-board__askType { grid-column: 1 / -1; order: 3; }
}
@media (max-width: 719px) {
  .dw-board__ask { padding: 16px; margin-bottom: 24px; }
  .dw-board__askForm { grid-template-columns: 1fr; }
  .dw-board__askType { order: 0; }
  .dw-board__askSubmit { width: 100%; }
  .dw-board__askLabel { font-size: 17px; }
}

/* ---------- The match report — the verdict strip + the same trade cards ---------- */

.dw-board__report { margin-bottom: 26px; }
.dw-board__reportStrip { display: flex; align-items: flex-start; gap: 12px; padding: 14px 18px; border-radius: var(--dw-radius-panel); border: 1px solid var(--dw-line); margin-bottom: 18px; }
.dw-board__reportStrip--exact { background: var(--dw-primary-soft); border-color: var(--dw-primary-soft); color: var(--dw-pill-ok-ink); }
.dw-board__reportStrip--partial { background: var(--dw-stone-weak); border-color: var(--dw-stone-soft); color: var(--dw-pill-warn-ink); }
.dw-board__reportStrip--none { background: var(--dw-surface-low); color: var(--dw-ink); }
.dw-board__reportDot { width: 9px; height: 9px; border-radius: 50%; flex: none; margin-top: 8px; background: currentColor; }
.dw-board__reportText { flex: 1; min-width: 0; }
.dw-board__reportTitle { margin: 0; font-size: 17px; font-weight: 700; line-height: 1.35; }
.dw-board__reportQuery { margin: 2px 0 0; font-family: var(--dw-font-mono); font-size: 13px; color: var(--dw-ink-soft); }
.dw-board__reportNote { margin: 6px 0 0; font-size: 13.5px; line-height: 1.45; color: var(--dw-ink-soft); }
.dw-board__reportCta { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; padding: 18px 20px; border-radius: var(--dw-radius-card); background: var(--dw-surface); border: 1px solid var(--dw-line); box-shadow: var(--dw-shadow-soft); margin-top: 18px; }
.dw-board__reportCtaText { flex: 1; min-width: 240px; }
.dw-board__reportCtaTitle { margin: 0 0 3px; font-size: 17px; font-weight: 700; color: var(--dw-ink); }
.dw-board__reportCtaBody { margin: 0; font-size: 15px; color: var(--dw-ink-soft); line-height: 1.5; }
.dw-board__reportDivider { display: flex; align-items: center; gap: 14px; margin: 34px 0 18px; font-size: var(--dw-meta); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--dw-meta-ink); }
.dw-board__reportDivider::after { content: ""; flex: 1; height: 1px; background: var(--dw-line); }
@media (max-width: 719px) { .dw-board__reportCta .dw-btn { width: 100%; } }

/* ---------- Grid ---------- */

.dw-board__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 18px; }
@media (max-width: 719px) { .dw-board__grid { grid-template-columns: 1fr; gap: 14px; } }
@media (min-width: 720px) and (max-width: 1079px) { .dw-board__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---------- Trade card (RWD-LRD-0090): price first ---------- */

.dw-listing { position: relative; display: flex; flex-direction: column; gap: 12px; min-width: 0; padding: 20px; background: var(--dw-surface); border: 1px solid var(--dw-line); border-radius: var(--dw-radius-card); box-shadow: var(--dw-shadow-soft); transition: box-shadow 160ms ease, transform 160ms ease, border-color 120ms ease; }
.dw-listing:hover { box-shadow: var(--dw-shadow-lift); transform: translateY(-2px); }
.dw-listing:focus-within { border-color: var(--dw-primary); box-shadow: 0 0 0 2px var(--dw-primary), var(--dw-shadow-soft); }
.dw-listing:active { transform: translateY(0); box-shadow: var(--dw-shadow-subtle); }
.dw-listing__price { display: flex; align-items: flex-start; gap: 12px; }
.dw-listing__priceText { flex: 1; min-width: 0; }
.dw-listing__priceLabel { display: block; font-size: 26px; line-height: 1.15; font-weight: 700; letter-spacing: -.02em; color: var(--dw-ink); overflow-wrap: anywhere; }
.dw-listing__priceLabel--soft { color: var(--dw-ink-soft); }
.dw-listing__exact { display: block; margin-top: 3px; font-size: 13px; font-family: var(--dw-font-mono); color: var(--dw-muted); }
.dw-listing__chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.dw-listing__chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: var(--dw-radius-pill); font-size: var(--dw-meta); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; line-height: 1.3; background: var(--dw-primary-mist); border: 1px solid var(--dw-primary-soft); color: var(--dw-primary); }
/* Terms: clay fill, --dw-pill-warn-ink (4.91 / 7.29) — the fix for the live 2.99 defect. */
.dw-listing__chip--terms { background: var(--dw-stone-weak); border-color: var(--dw-stone-soft); color: var(--dw-pill-warn-ink); }
/* Status (Pre-order · Negotiable): --dw-ink-soft on the page ground (8.89 / 11.02) — replaces muted's 4.51. */
.dw-listing__chip--status { background: var(--dw-bg); border-color: var(--dw-line); color: var(--dw-ink-soft); }
.dw-listing__chipDot { width: 7px; height: 7px; border-radius: 50%; background: var(--dw-status-staged); }
.dw-listing__name { margin: 0; font-size: var(--dw-h3); line-height: 1.25; font-weight: 700; letter-spacing: -.015em; overflow-wrap: anywhere; }
.dw-listing__name a { color: var(--dw-ink); }
.dw-listing__name a:hover { color: var(--dw-primary); }
.dw-listing__name a:focus-visible { outline: 2px solid var(--dw-primary); outline-offset: 3px; border-radius: 4px; }
.dw-listing__tagline { margin: -4px 0 0; font-size: 15px; line-height: 1.5; color: var(--dw-ink-soft); text-wrap: pretty; }
.dw-listing__seller { margin: 0; font-size: 14px; color: var(--dw-ink-soft); }
.dw-listing__seller b { font-weight: 700; color: var(--dw-ink); }
.dw-listing__gaps { margin: 0; padding: 10px 12px; list-style: none; display: flex; flex-direction: column; gap: 4px; border-radius: var(--dw-radius-control); background: var(--dw-stone-weak); border: 1px solid var(--dw-stone-soft); }
.dw-listing__gap { font-size: 13.5px; line-height: 1.45; color: var(--dw-ink-soft); }
.dw-listing__gap b { font-weight: 700; color: var(--dw-pill-warn-ink); }
.dw-listing__cta { margin-top: auto; align-self: flex-start; }
@media (max-width: 719px) {
  .dw-listing { padding: 18px; }
  .dw-listing__priceLabel { font-size: 24px; }
  .dw-listing__cta { align-self: stretch; }
}

/* ---------- Empty + foot ---------- */

.dw-board__empty { padding: 34px 28px; border: 1px dashed var(--dw-line); border-radius: var(--dw-radius-card); background: var(--dw-surface); color: var(--dw-ink-soft); font-size: 16px; line-height: 1.55; max-width: 720px; }
.dw-board__empty b { color: var(--dw-ink); font-weight: 700; }
.dw-board__foot { margin-top: 48px; padding-top: 22px; border-top: 1px solid var(--dw-line); }
.dw-board__footNote { margin: 0; font-size: 14px; line-height: 1.55; color: var(--dw-meta-ink); }
.dw-board__footNote a { font-weight: 600; }

/* ---------- Product page: 840 measure (RWD-LRD-0098 header · RWD-LRD-0091 band) ---------- */

.dw-product { max-width: 840px; margin: 0 auto; padding: 36px var(--dw-gutter) 72px; display: flex; flex-direction: column; gap: 28px; }
@media (max-width: 719px) { .dw-product { padding-top: 20px; gap: 20px; } }
.dw-product__head { display: flex; flex-direction: column; gap: 12px; }
.dw-product__title { margin: 0; font-size: var(--dw-h2); line-height: 1.08; font-weight: 700; letter-spacing: -.02em; color: var(--dw-ink); overflow-wrap: anywhere; }
.dw-product__tagline { margin: 0; font-size: 20px; line-height: 1.45; color: var(--dw-ink-soft); text-wrap: pretty; }
.dw-product__seller { margin: 0; font-size: 15px; color: var(--dw-ink-soft); }
.dw-product__seller b { font-weight: 700; color: var(--dw-ink); }
@media (max-width: 719px) {
  .dw-product__tagline { font-size: 17px; }
  .dw-product__head { gap: 10px; }
}

/* The price band. The price is the shared partial's listing block, sized up
   for the page (one partial, one vocabulary — RWD-LRD-0098). */
.dw-product__price { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; padding: 22px 24px; background: var(--dw-surface); border: 1px solid var(--dw-line); border-radius: var(--dw-radius-card); box-shadow: var(--dw-shadow-soft); }
.dw-product__price > .dw-listing__priceText { flex: 1; min-width: 200px; }
.dw-product__price .dw-listing__priceLabel { font-size: 28px; }
.dw-product__price .dw-listing__exact { margin-top: 4px; }
.dw-product__actions { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.dw-product__buy { display: contents; }
/* The refusal is a sentence in the band, never a greyed button. */
.dw-product__refusal { flex-basis: 100%; display: flex; gap: 10px; align-items: flex-start; margin: 0; padding: 12px 14px; border-radius: var(--dw-radius-control); background: var(--dw-surface-low); border: 1px solid var(--dw-line); font-size: 15px; line-height: 1.5; color: var(--dw-ink-soft); }
.dw-product__refusalDot { width: 8px; height: 8px; border-radius: 50%; flex: none; margin-top: 8px; background: var(--dw-status-archived); }
.dw-product__refusal a { font-weight: 600; }
.dw-product__refusal b { font-weight: 700; color: var(--dw-ink); }
@media (max-width: 719px) {
  .dw-product__price { padding: 18px; gap: 14px; }
  .dw-product__price .dw-listing__priceLabel { font-size: 26px; }
  .dw-product__actions { flex-basis: 100%; flex-direction: column; align-items: stretch; }
  .dw-product__actions .dw-btn { width: 100%; }
}

.dw-product__desc { margin: 0; max-width: 680px; font-size: var(--dw-body); line-height: 1.6; color: var(--dw-ink-soft); text-wrap: pretty; }
.dw-product__h2 { margin: 0 0 8px; font-size: var(--dw-h3); font-weight: 700; letter-spacing: -.015em; color: var(--dw-ink); }
.dw-product__contractNote { margin: 0 0 14px; font-size: 15px; line-height: 1.5; color: var(--dw-meta-ink); max-width: 680px; }
.dw-product__specs { margin: 0; display: grid; grid-template-columns: minmax(140px, 200px) minmax(0, 1fr); border: 1px solid var(--dw-line); border-radius: var(--dw-radius-panel); overflow: hidden; background: var(--dw-surface); }
.dw-product__spec { display: contents; }
.dw-product__spec dt, .dw-product__spec dd { margin: 0; padding: 11px 14px; font-family: var(--dw-font-mono); font-size: 13.5px; border-top: 1px solid var(--dw-line); }
.dw-product__spec:first-child dt, .dw-product__spec:first-child dd { border-top: none; }
.dw-product__spec dt { color: var(--dw-meta-ink); background: var(--dw-surface-low); }
.dw-product__spec dd { color: var(--dw-ink); overflow-wrap: anywhere; }
.dw-product__spec code { font-family: inherit; }
@media (max-width: 719px) {
  .dw-product__specs { grid-template-columns: 1fr; }
  .dw-product__spec dd { border-top: none; padding-top: 0; }
}

/* ---------- Negotiate (RWD-PLAN-0007 T6; the human anchor lands here) ---------- */

.dw-product__next p { margin: 0 0 12px; font-size: 15px; line-height: 1.55; color: var(--dw-ink-soft); max-width: 680px; }
.dw-product__negotiate { border: 1px solid var(--dw-line); border-radius: var(--dw-radius-panel); background: var(--dw-surface); overflow: hidden; }
.dw-product__negotiate summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 10px; padding: 14px 16px; font-size: 15px; font-weight: 700; color: var(--dw-ink); }
.dw-product__negotiate summary::-webkit-details-marker { display: none; }
.dw-product__negotiate summary::before { content: ""; width: 8px; height: 8px; border-right: 2px solid var(--dw-primary); border-bottom: 2px solid var(--dw-primary); transform: rotate(-45deg); transition: transform 140ms ease; margin-left: 2px; }
.dw-product__negotiate[open] summary::before { transform: rotate(45deg); }
.dw-product__negotiate summary:hover { background: var(--dw-surface-low); }
.dw-product__negotiateBody { padding: 0 16px 16px; }
.dw-product__negotiateBody pre { margin: 0 0 12px; padding: 14px; border-radius: var(--dw-radius-control); background: var(--dw-sunken); border: 1px solid var(--dw-line); font-family: var(--dw-font-mono); font-size: 12.5px; line-height: 1.6; color: var(--dw-ink); overflow: auto; }
.dw-product__negotiateLead { margin: 0 0 12px; font-size: 15px; line-height: 1.5; color: var(--dw-ink-soft); }

/* ---------- Checkout return pages — server-rendered siblings (RWD-LRD-0103) ---------- */

.dw-checkoutSuccess { min-height: 70vh; display: flex; align-items: flex-start; justify-content: center; padding: 56px var(--dw-gutter) 72px; }
.dw-checkoutSuccess__inner { width: 100%; max-width: 640px; display: flex; flex-direction: column; gap: 18px; }
.dw-checkoutSuccess__brand { display: inline-flex; align-items: center; gap: 9px; font-weight: 700; color: var(--dw-ink); }
.dw-checkoutSuccess__card { padding: 26px 28px; background: var(--dw-surface); border: 1px solid var(--dw-line); border-radius: var(--dw-radius-card); box-shadow: var(--dw-shadow-soft); display: flex; flex-direction: column; gap: 14px; }
/* The 4.07 green-on-green pair is gone: --dw-pill-ok-ink on --dw-primary-soft (6.71 / 5.79). */
.dw-checkoutSuccess__pill { align-self: flex-start; display: inline-flex; align-items: center; gap: 7px; padding: 5px 11px; border-radius: var(--dw-radius-pill); font-size: var(--dw-meta); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; background: var(--dw-primary-soft); color: var(--dw-pill-ok-ink); }
.dw-checkoutSuccess__pill::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.dw-checkoutSuccess__pill--cancel { background: var(--dw-surface-low); color: var(--dw-ink-soft); }
.dw-checkoutSuccess__cardTitle { margin: 0; font-size: var(--dw-h2); line-height: 1.1; font-weight: 700; letter-spacing: -.02em; color: var(--dw-ink); }
.dw-checkoutSuccess__cardSub { margin: 0; font-size: var(--dw-body); line-height: 1.55; color: var(--dw-ink-soft); text-wrap: pretty; }
.dw-checkoutSuccess__cardSub b { color: var(--dw-ink); font-weight: 700; }
.dw-checkoutSuccess__facts { margin: 0; display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 8px 14px; padding: 14px 16px; border-radius: var(--dw-radius-panel); background: var(--dw-surface-low); border: 1px solid var(--dw-line); font-size: 15px; }
.dw-checkoutSuccess__facts dt { color: var(--dw-meta-ink); }
.dw-checkoutSuccess__facts dd { margin: 0; color: var(--dw-ink); font-weight: 600; overflow-wrap: anywhere; }
.dw-checkoutSuccess__mono { font-family: var(--dw-font-mono); font-weight: 500; }
.dw-checkoutSuccess__consent { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 14px 16px; border-radius: var(--dw-radius-panel); border: 1px solid var(--dw-line); font-size: 15px; line-height: 1.5; color: var(--dw-ink-soft); }
.dw-checkoutSuccess__consentLabel { display: flex; gap: 11px; align-items: flex-start; }
.dw-checkoutSuccess__consentLabel input { margin-top: 4px; width: 18px; height: 18px; flex: none; accent-color: var(--dw-primary); }
.dw-checkoutSuccess__consent b { color: var(--dw-ink); font-weight: 700; }
.dw-checkoutSuccess__consentNote { margin: 0; font-size: 13.5px; line-height: 1.45; color: var(--dw-meta-ink); }
.dw-checkoutSuccess__consent .dw-btn { align-self: flex-start; }
.dw-checkoutSuccess__consent--done { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 10px 12px; }
.dw-checkoutSuccess__actions { display: flex; gap: 10px; flex-wrap: wrap; }
.dw-checkoutSuccess__note { margin: 0; font-size: 14px; color: var(--dw-meta-ink); }
@media (max-width: 719px) {
  .dw-checkoutSuccess { padding-top: 28px; }
  .dw-checkoutSuccess__card { padding: 20px; }
  .dw-checkoutSuccess__facts { grid-template-columns: 1fr; gap: 2px 0; }
  .dw-checkoutSuccess__facts dd { margin-bottom: 8px; }
  .dw-checkoutSuccess__actions .dw-btn { width: 100%; }
}

/* ---------- Landing marketplace strip (shares tokens via .dw-mk) ---------- */

.dw-market__grid { list-style: none; margin: 32px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px; }
.dw-market__browse { margin-top: 24px; }
